pychess-0.12.2/0000755000175000017470000000000012653231274013555 5ustar tamasusers00000000000000pychess-0.12.2/glade/0000755000175000017470000000000012653231274014631 5ustar tamasusers00000000000000pychess-0.12.2/glade/white.png0000755000175000017470000000075012641567764016501 0ustar tamasusers00000000000000PNG  IHDRasBIT|d pHYs B(xtEXtSoftwarewww.inkscape.org<eIDAT8J`%IE(d"֥J.!H)|ઋ-:Xbpxq.ͭzònm)ADI`xAƣeY'csCmg|Oys{Ap+r촳qtGƠL]ametDQ[:DjVNQ5)a;) "H%s>'Rs(mĠ`ÀR2`[`Q""W1%dr.0W]}_a(./z1 &uտg}~g,t}w6 è7 @YIENDB`pychess-0.12.2/glade/panel_moves.svg0000755000175000017470000004114212641567764017704 0ustar tamasusers00000000000000 image/svg+xml pychess-0.12.2/glade/piece-white.png0000755000175000017470000000470212641567764017565 0ustar tamasusers00000000000000PNG  IHDR.0neHsRGBbKGD pHYs f fItIME+1 BIDAThřYlT3cxjH Ic 8mV"joi4Qߦ#MF꒴yJUJH $68ZCBhҲ6x SƶS>ijX|GL rt ?uZ3eM kxtc|β,BZ<-# =!ضUW~>UXlBLgc \';}s;xTL\8N#v:Y\LNMd̛71)URɦbE(lٺ?t`<:t"iW)JwYwk4Ģ BD׍ ݄EC]#5S pbZKuy?׋낦i>\,3KX81ş&}?v 3:Мz/ΝYr\bP8Pvq;wίO'Ӯ:+fq)ٷo}x*HwњnWxuǙXveu[qGԞ ՁqB?^?WV5焻L%3kYƓxtэ^<4ګq ruoߏţLi'˓Lᎎ=VZ]ھپ @MH):'N&RoN<~5lذmA (Kv' 9XαwfZ׀~ֵO6L0M85}ko&O=F) mbRU~cWHUZk$\vŊr \ZnG0iB`Kųի4[e+Wf .VuL>rR{=CC;SGC7Od#Nu)ڕ u XABuo.<y4"u/.LZZk[Z۬{^rOj_ YG~rZZ,M3͖.W4-,+ahZE߉YpdGV*r0PYڹ|ڦjU@dPoObf4MJܺߩjWwS{OE( Eٳp|N@Q/^|qтyU'OvsylHu]TEEgHXefaa&ab&niBbdd|Ou]EB@p67i|^nf,`0ZAL2+0js]VǕ8e+)qD:e .^𰷓|ώ(,V+gKkWmŽKׇBt][k߃ `1 Wop-1>u1m False 12 PyChess - Connect to Internet Chess False center-on-parent pychess dialog True False True False 8 False True False 4 6 True True 0 True False 0 <b><big>Connect to the Free Online Chess Server</big></b> True False False 1 True False True False globe.png True True 0 True False 6 True False 6 True False 8 2 6 4 True True False True False False 1 2 3 4 True True True 25 False False 1 2 2 3 True False 1 _Password: True passEntry 3 4 True False 1 _Name: True 2 3 True False 1 True False 2 1 2 GTK_EXPAND True False 1 1 True False 2 4 5 Log on as _Guest True True False True True 1 2 GTK_FILL True True True freechess.org False False 1 2 5 6 True False 1 Host: True hostEntry 5 6 True True True 5000, 23 False False 1 2 6 7 True False 1 Po_rts: True portsEntry 6 7 Auto login on startup True True False True True 1 2 7 8 GTK_FILL True True 0 False False 0 False 0 1 1 True False True False 0.050000000745099998 True True 1 True True 1 True True 2 True True 0 True False 6 True False 0 0 S_ign up 100 True True True False True True True 0 True False True False 3 gtk-cancel 110 True True True False True False True 0 gtk-connect 110 True True True True False True False True 1 gtk-stop 110 True True False True False True 2 False True 1 True True 1 pychess-0.12.2/glade/promotion.glade0000755000175000017470000003151712641567764017704 0ustar tamasusers00000000000000 False 3 Promotion False pychess dialog True False True False end 60 True True True False True False True False True True 0 True False Queen False False 1 False False 0 60 True True True False True False True False True True 0 True False Rook False False 1 False False 1 60 True True True False True False True False True True 0 True False Bishop False False 1 False False 2 60 True True True False True False True False True True 0 True False Knight False False 1 False False 3 60 True True True True True False True False True True 0 True False King False False 1 False False 4 False True end 0 True False 0 13 6 <b><big>Promote pawn to what?</big></b> True False False 1 button1 button2 button3 button4 button5 pychess-0.12.2/glade/stock_alarm.svg0000644000175000017470000001135012641567764017666 0ustar tamasusers00000000000000 pychess-0.12.2/glade/discovererDialog.glade0000755000175000017470000001263512641567764021143 0ustar tamasusers00000000000000 False 12 False pychess True False 12 True False <big><b>PyChess is discovering your engines. Please wait.</b></big> True False True 0 True False 3 2 6 3 True False 0.10000000149 1 2 2 3 True False 0.10000000149 1 2 1 2 True False 0.10000000149 1 2 True False 1 PyChess.py: 1 2 True False 1 ShredderLinuxChess: 2 3 True False 1 gnuchess: False True 1 True False 0 0 True True 2 pychess-0.12.2/glade/board.png0000755000175000017470000000067312641567764016454 0ustar tamasusers00000000000000PNG  IHDRasBIT|d pHYs B(xtEXtSoftwarewww.inkscape.org<8IDAT8J@ d2vEXۺs)mA=xD$V Lf$"X(`x8GA6:} n@N_ ӟDAfŝRif2@DR cP<ӗBqi,HuW7EӶ($4;ޒTɖ)ј-qv~qXw ?3ffF׭bJ'RBE%cCgLj7dKTQUT $H׫Μ"XR$32DP\0+EXds*9%IENDB`pychess-0.12.2/glade/panel_score.svg0000755000175000017470000003647312641567764017701 0ustar tamasusers00000000000000 image/svg+xml pychess-0.12.2/glade/throbber.svg0000755000175000017470000004363512641567764017214 0ustar tamasusers00000000000000 image/svg+xml pychess-0.12.2/glade/about.png0000755000175000017470000007477112641567764016511 0ustar tamasusers00000000000000PNG  IHDR#ZU1HbKGD pHYs B(xtIME (0No IDATx}y]04^#dxE$nlMo7$1u52x Y(Ǩ%}?ia|q~ߧ%QWߴK?7)!o#Ait|P؝`UlaoM°0 ی~pWg4}ɨf , 50̀a#}x}B lS]noY`q|v#. ǻ>V0l% @ tmض'[:p k6Fo`;0o-ܛeuM~oQh>ě]K3HL6Q<#[\^zfDGG;v-v3/o 喜x JbM>H~V#h%÷aFnp.a =uw/qe?,7.Bv02 "(ecc9F4yhтQ|76G52@ P(2޶!oۇOF+T0DZ@-KDY O(4G\9QuݑFz6p_f/o*0okyxF<p1iC͢S Dqt9RLJݚ">+o23:f}>(Yd6pF̤AUL(wI ¨ID BpC:WKڇOFuĵ_uD[ 8D'!Bj2xA!c x( W,H+Q&#dEr2mUI ɨY.e0&p Q*Ob zƂmԸ0?/a>.!w՟DžJYe^SEU CD J@H/w0zZ=Iƅg[,A |gRd53woQcz.-j L[PZ@hT;tʨ唿Y~!okq 䰉㲵@>=4A!տˠʨeڵQ0|iɧD÷w| 5us$KD< H+ h^fu>9|hRv :$I( x.ug渝\p<8z܇. B+c@{@&8hA.vP!\Y71*<2mYKJ`̃F/&~ w~/M>Fd_CK-'m^@ͫ0R]隢(@+[:{3RBu1q5Veu\dRzu` #yOKEl;::xykYZ%ForyeMW**c6L݄H,۲|l`[6L~U<P0W~g_>|2ɫ=Rpx8B^,.‘@^h`d,XֈGQ!K}/W>y872$YrD ,BV<3BHcpl޿R1rhyǁ)KN~F7bAQ""ԟ$$`_wD+xl}dTnsy1J4åσ_f҆g#/i'|}HK21:.dU/%Yĩ; sN#f=m?oV?eӂ*@2Le[&wXՖ}K60y`4 U?3 ݄eTvI-@)Toi{']ޢ¸kWฅ3h Mэ7^~< {M87|ծ}wԟsȼPuS,y,ǏƐNpq-&J^15g:^}~,Ƽ3\PP."0ϚS?g^z:lcGjxήKAOF-vzޔy7c <Ǎ"c: 4 OƧoҊ?ta]8STUKOعuIƦ]AMFG[:2x‘%b.BK8B G| qNfJZt3sUo qБqh-UwVj,˅eڞ,$q :DJ='D_7q__~^~x$3x{?CΞj;_>:25j*ytc!-8zƄҊ5C/϶eu[MP1! tn !m ESLv~։ם}ұpC'3G95xnp_>_Ҿ>^[bE=i2C4TaGb tZ/[8 p HYJ^{^C?۟ފ^pQ.fi|o v>oY<ʅK%ePAHq,>B&#f`?Y AA)כMlL$ۿά:Bpn|0ed|pKCލG~/>6lrgWgfLɟ=:t1@&z\?4}`eG-;01`8XTQ idt)h4-`hS2F1@cp,5-BӟȈxso~X;{/߁&>iVo-OM l3^پY߹k,,k-| Q:ei[Sk0QuWmM_c?tL$(~R l17se6z9n_ZuBSfz1ޞ8lˆH7߃6IzKadLd2≪Xq[^}h<)K\jo'jU&h-w shkk*|$3twK#'^rsFe qXO|.a]g{[n/mn@Xe` t16hήNE*nF]I@#ڹ`+7ܵ>U/ߩtL "\"v.zp$BVu)zzJeFBJSe ?z춲zMο[WT=4,ab &6Ba65kyRխ3).)f~Ǻ}2Ϝe 4UXQjȎڡj %]EowJd-pM%_>{Ǟ"3tzƀe]Rut䷖aYlZD(`h{+ׯ>U}}1$%Z2KDC| c貄B0qR˨5@.҂CZbKaԃOo]ȯq\d2tݬ '0]vf+dTM[xB "0L$Vm}=|5Zf^c6Lӆc;mDbaL8і(c0wow?$Y:e9Xutsz0gW>yK /gӰ&LB4H%7__O1C*Bڶ =cBͺV|s@PPTrA QDHY!J"RLAVY#?[9;o4"M2j!"H#d1" [SD4K-u6Rt2%b?DTHnAB.)YL݂68~cQ($ `N"k|˨=k6汖H]\+C7ߗ@KkPq">eZqρ9GȠ\W+Kb`R(@]CvQV˘=} @EHI>gO-Y~*KdX~yuK8)$hfD#wl!AzC?9r`8PUX+eT*S7xHY )"x8Пvԏ}hCi[OU.!cs"llÄđ( . <GDWqE*ڶj lHaKpYDPT(x*ií@wve˜m0ۢ%5q\dRBB8n\Pm@8BZ* !YG!IRV4;_-(D9<B2꘷4"s3^p0@]7 H4mH`}ûޞjG.CV O}q B/{ `;dA@u@L՘XW7ɨ"_1b0qhY?/R7En$@Q(TC5dgw_=K)cv+lW88Wz=^ (e;EIc;%e[ۅ$ {0RZHD" j$q<C@3S }nylӎ.߽ѕ~*{jͤu8[qAB*AmT]\?ATTz+ߐqT_+}qd-bB=-EtlXg629YA|R"bhHSppLX@8. ,aljqgU2,+ol' kxJsUj(2d2FE+ihu30Edni}X֯x_-c2r S~Bxh gQfl@ lA&4l1<_A-  @V%u)R Id2pD o`F5,O(A (#Apj@J=mʿmFgP)__| xM|gSxqӲm HFC \ׅeڰsBG eҫv؁ よ >*MDdg[6z{psAX 3;a4L xÜSôS>ܶ^ #Su1SKm#:8?\K9ia9 JǘJ GpC T(/Lƀ>dIP8IaY6&i0~`X7YBr!GI 9拓iv>="+ zC߽ /=ܶ,3}_q?aQc=ac+L 90dKl(@/  iF{y>;1 9Dž6ິPñ(2iҩLDC-kW#J< N@ךW >OMS ņ5D MIqG>5>@ڻwx߻ #Ԫ FXƃU4JE9 P6!P8'hƞݽHSu=2+@{v!Ou'NxIoF~r6s*Ûˏb >-3f2t̬ B52Aԡm(s\]5iVڇ9Ɂݼ0ij?Iڿ?0h!pfhAFr d] vJf.issij!,eXeY](ќT: Z2⫘4DUD#1|@V%lf[we{vk߀T" Ӱpeg ;qx᩵$di8Mwɧqe7֢Kq8I<: GB&5#FR$i݋tZoHܴl&gW/|s IDATRImK6s^un׫^LFAp?v>/<ܗS8##Տ=J;R:-x ihЌp$bI]@ ݻI#nb,;gO?*EUXYW= OywV>ܶ:9z_ذc{*S|jgd * 7xY+ŽA`XQcYk+GJKHgw_.4E| U*|fNW :/+%\ Ξ;>'.{mj~.g^z:6'_ֳ-[B0ɧLj ZVZҾ@[Y2Ѣ)q]pcsQQ2@PE "ёN鹶 B!-[E*Yo6)QxǜgS#gwoqј鳦y.,/=~eӏX[k=綇3kz[^{I>53(bql=ƫ @ hCS,s tC&cĔt@KQ)O|SǗ~x3N:g~u__Rtn0krhA5¢#Ix;IRJ/*+aYF9FF^RFmc{6GFUMct* Ӵ8.I$ih4+wG[" pS=M=Xx}{n)f-oϟY y#~JsugY u\⧏ɕc!GL'A8X^*wvbӺ!Y kg}jd4Pua(R癆UQ8EWVDJ @7di*&«>J$z33f'#۲/C2}MK[&i>=ƞa|if-ГϠlM)GX 7N|EXmlMVpLD0sy7 ~^RVwcּ(?ήΌO ;+Uih1oZ_}Jߖ8&$N?S,ہ,jB\-YeLZHkX9Bx~VR}w m90L us)FE8Ual OE8´S=ߓR_yj@(U-;]V[ښFUMTUjdi{%#'eNESNC?h`3>jÊ|ѢeƮ)exqۃLFWtLr5u"Qݔ"Ȕ,TUXxc7@:#֡*YkeKX5 dE /?dᾸr[ycĦAZT!hJU")jIaVuFU4T]( U7MHvH8j%x8m۰Lo[5ֹ$' Kr*RgecGV]`pA!a̧zтwᦪdPe8dNP5tӰȃ9u36._@(`Pˍ&"E.>O:N<"wKO֕ C{|OzƄJ8r.{8 Ip)v(#==(6T+u .-в3.zR7*ʦ(٘52FC`68Ěe~U5)ֽ`H3kܷm|\"B:9~5dEDKP2mWwJ5Ec!O3(e#-&BZexq ձh|bw~!LdT.BVy!;.-S#B HPUvTxPT_g ڨVex4F\"ޟFK[U]SYIN|FC#HijMh0;-AdRyO8mن֍c}PBFE&1-0Qd:RRַ2jțhA $&y-ƐLfnwUv]UsKh{q@yQ!)b~P^$ާȲh,\@t{]LCCW|gTc<1es@ȡ Tb~{|@sVQ;iΝyf\7x;a9e{Shz 5ʓmPdðoNAࡨw~$*CO߫GDCpl(fU2!QBmHfUJyqC"=`o5w,λy"AV$XT*]1M tC (׍ͼ@ ._g;T,:J|ћQ괠k7|hؖэAyJ?a l=8G:#O͋Z˨z KB A l9*Z"%];+m+wΪs|6Ʌr3QsP\>˸fme}[kg!ct] M8"wo>cQ\foA #ód(6A{p&lݑWU4*vԭUEҩqBBbaΊ"r}g^BF->KG*1_|M)v Kݑ[\cQC|'ւʰʌrh6>QPd&Nj-hC9p$U!?g6Ƃ!(vu/ZҧwJ/2B^EDT%"8a8k+e,䖰-=rdTPJ]2_,Eʤq_Z3RNj^V) h،HS*ԕcY6lӂHȎyhz\||~xWwD3yYmD|Z?]WnZ!7tUDQoW9fmD}d>(C8X&K*MEd`;~NȽ@Dq5oN:X\sOFdԐɢY)\'mٞQk T <8+Q" TR"4x sռ(*pl,KD?jH2׼5 f蹇5TwePS ~`T>ɭظ9NEG^QWj[^41Lc,ޭU&9΍8WaI&Bz%>-]+߁a0h O|2ڻLTh۩NF RaXP,˃__ b䲕J\=4F%r{~WǏ݋Vi҇͘gISgZFk,(7R߇6Fդ0l; bڰ ĕՌ}2pPvquc02& lV1W12ytmV (zuvIY%Hs/Q-I)C*3DGu-H,N9hqMVMiHurVٜ8܊ל= S]>|._*W¥>?W{SJa[2)x˲!Hʊ~e2N먥Ky*(˂+eCOAZM{{Jcj\& ?闀N~B9-8j`5Ɇε{:L 7B ɋ0sФl)BJ3 ;m{cx #AHBrz9JNzb$YHeڰ,r̀䬣`{)@0@&cq\%k-pd0R ڮ4lp< S+EMat1rV>IJeN]w[ H8kl"ܴʺ2&?}t3\Ӛ`Z{h&v"c%<Ǟm剨N2l8N( H2Ԑ%  ޟeZHS#*JfA <, &rqYOe#DoHBMc{YyWz{8v4H_7>CL#'"҂r3J,|;Q4M{hUhۛ8OAfYr$Ŏ4UkWgFmEd'Î0hjN.1=ZaK<䒂oԥLzb E.q.Gw"ʒ=W P.=-KF)lCC+=XG>eMVTURG"[xc!$Q!!TSQzTEZLWO nusT1qPFtL=}=ǑժBPp*9qnje4v'ޫ/EtpkM>xr# FجJQ!'C|R:{k@P-f*kY]K % h1TZ[Ur]o.> ӫ>IBʘL𾒐]w`+ ,2Y,Q̼ ^焣L:^fS3O2 )CW1t12-We7k aacz3Bj}ܕxhu I p ʛ*SӺQbWOJ h[0m$ H$2݋@de]ȂJ䎭Tf5+2; ak.]n/ 4YVهy=U"YvMl￸qs[{sѨhƝ_80>,yK6l(z<1ߛ@K[4o ZURxJYkuܚ#wq na `BI ݂ɐd O@]˲DTY~%~V;qm 'Q la=bjӬQ=5%ٷ \Y2։xTJ$*oZB,l+q]=.OB@u}}5AU"?8{¸/RR:z38RɌ{a ;"*T o/ Mڳn?? xuNh솓QǼ͎<=㻖l&eHӈ%KXPTDFi㢷'n2 DJnafeGŠѪ93&JL^5\w=?#s37o0_YGQa'n~aogPБnv9ɏCTqaZY&mʷm'_.z{0Зw Gp;;`W~ 020J?,E״ IDAT +ƺdi?45;ב0zFt߸;[X ϼ_iy\S|2okQ8 Ɔ//VVՔ!QG|͐U]7ѽ={1ПD&ML@2B_ovԤ@Snrr]GO6(gZoT M:eT Sb$ jDzic׋7/ι[[_+>#FNK:S:7KڗnP%\k-ӆ eqD$z&1= " X?D˄XٺHRV0`h['rFe#~C*swJ?CvtY+}1;֋w'_?g?zy*(pT|b)oNz_g1netI7̬DD\'²޺n"O-IF<T9qHB]8aDs\I%$UVrA}2v1C UŴqKD0ij3ZxC~{C2Owp.cxձ6}7s~TqE5e{YYIWӚ)5W{ۖ!VM ! u)wH&ʺ @ކ 0DMx+$K@nzhr蘷4"q(BHǘx㡗~\i Pv:b!<`wqY55ko/7WD+ѕ7WRQ5aqD (um$@ӆJm ZۄXYJfJ*[SYMB__آSx5" -F˴Sr]ytuSb i tE3Y r"%߁ɵwt\ 1ӰaLF&eTQ[;mY58UϨ)nFe *}XH& .0U !A^`bR,=)WjE5Lʹ{GvG0`'߃S \PHke]?~DT7>92\ ʮcL("<AM0Z'4mR3&LnA[GP䳖Zw5N*~?PtwcUujT񸄳 O$N}8q،h?c&k?M-5͆+t>9&gЂ*4M87j!h#;tvݪPN5kFBKEiq \`C* D4_/os#\fXZ;tdyq ,Uw7 !Y5QE8ֆ5f]!I#߼xZb5nVlzZ+$z@Y+w-ڱH7sOPTÁY\bd.[gY#&jDsܨQօOhL iE\lՈ2=uф ѫQ,<)UK Ʊ|;M #" yy-S[M#VKw.Z}&qдx5UC:)4Q6s| }ygy~u5}!iFeɖvđ,%$ `k0$.n~"6`!Xd]$D `Y-KuKsguU}3dMWutwWWuU}|~nmֽ̐Q&\X~B4/(֏x'#*!x*kABGGRko]Hy*"!^|M5U3 iպ%hss46J5Wή<*uDQ&'ǙBbVQxI8d)pYf2 j.P_s`%0YOF;ַhq q4Ew*4Ys_w%*t%åڱJSV VFz,;Yykdo Փ$[EUh$\rqFS%J tq(ƭT̻^R#!Ob< 4͏z1C5DXJ隦9(l,ɐr& K)1:<5wͲldQ ϲYGA7ˍ`⃥+B ƄE47f2b4:]iVUuz\!i0$r9jFRE\WB㏯xIzql7ѹed(=#nbg "`Me*OFi,3(TeZ PKa d2]r&Z*Vs' t_Y27,cwi7F!4:4]>lM+JF{Gnpf"Zl:#N/SJf /N%E02MD{aUU+3Å03#2 PLYHS+Si_#-0tx ۽1֙<-}xJW[y/>+Ejbu{# ~h}W~w?zOא u#![8}׮L"3IF1.kv&]^%G:_g_T|xgpnVm5d;Yԟ$9`]ZM?*MZl: sκ!h`XW1PZW;yM;ܶ;JbM᪖_}Eޘgsa-m 4΋"U=+=qU%cߚhNWM#Ʒ=YLQ*Vz',业 xnʌQ=)}{%nkU .a|bY1!AQWtq; UUxeKr9ciRTN10̱DF-#Hqm•mI- !K4M1UH k?ۙ;mMw.⑳ΕUF%02*XZ0'a-^96zqD_OAc隘ʔLfDDd.ND96#>#Β} % 缶$sOY-BXE%X)3NjϜ)EdWZ d~@ -h$ȤN B.LkA([j/e7uiӬLlÙp:찞31#r! HyNJ&"#i^X'4wlj eقf\..<!  x]'=(! 4B50 uYٴs'M!iW"-{ld4n< t$2\Y'48GrA@@ -_6Ή1 e߶<vp%h>uZ;|&2b5n<&[1I{xK8|%=ޅTehfӽ^l:'׀x4/ Xu߃w<ˬ)!`{i׉eʪst=l9ul#2taCj4m%Iri ˔\ -lvBѱu+Lޕ]%Nm첦{y:QAKC\ͻF۴UD03a)r8-a[69y33g#oZȤipaYLv w"vllpemQ7v04M5L>f'FfwxR}7b&?0t`qV[X5ǻ.PMUN2o{?Zf$ F Gk'>wc{?3#9TU)PT@Q>Q: t8%7߁_ɿoZ h񊖚]19эp9AhMھ;^QbS_.uF/\ 33,˂eYh!(B!!=Rq8H8 q`ۅ4"*aCHm[jsͯԹ_XrGJ@( 7ڹ:}8 ^g[vq DqRӬHW)Z"4NRB@Q:_ :K)p9N6WHɕX>Rm׷Wx'7N*Wݺ" !O瘸UhH6ݴo?nk y G"7v'f @v۲`ɐRBo/W 9{=-$h {zJyЄ7-xe=*3D@˨t#GtX5>Cdw(]:yہ6l)9E՗1_ESY*o~  c w - lxڪ6~tC*џRݞ[)_CًeAN!Ì;'Ꚍ 13MHD84Ź\jm۰mY܎7>s=ym{2* OPz:yfa,+?o \si"h,G2FxH/ˏ9eP7/ Pv{g:O32%_Y:aHb.i>zxT[RlRs2^;)6ZnqbB`]>0$H%^SخqD(gF*Kqc rBxv\jغW>pۦmiVܸ.3?=e>О4k}>¸y 3;u G2oakV.qv}rIF\F^Ne ^`ZȤsIVm ~0A%]Rv dY<)ܲGH]"EbEF}hjuęŸq* (3kHk`/jR`/)+j"U7VecR~_ ` 2 t@7nSoUT?Z}۷*jƊ7K[C];r{#Bq.|ъ,}9RbHS94%]-3`|%@u/?80Zh U:|ft&vkw3nެOݸt5sᎮ]^|~HmS4bIDATz#ւi-7 DM!EUqZew_闺})⎮<)wc{ E%QDYyB2coW}˯Mm]~m˚|m[v3kᙟסNōXMH\8Ջ!zNuCFv2rW:mJR@=4|օڞ:D߻,_rDE`m˪Ap4EQ82p dy?3kմ@B  uqLF:`8Ƀg䉾oc? PwAƨs+4QK/q1σ̏O*r1:+ppj6i)!9v<GqXEz{=ZE>qy 􌺍LlR(0Ah{P 署(@ν2N4C;>,'`ؔ*BdYdҦWu: ;كTME'@<р~ZRj۶:؃mY,_`@0l\cm9rHȌN&͸fɰ׾McanS $7ޱ e#=f"5{GKytl@cvXVo߮y|U$"$|l<6" va׿߅]k v`ixSU͘J,L23W=ѡ4F҈5j*bM*bM }&Sq6nVmiAUah0 ݫ̦;4~^e߇ѾlpYXq%AEEhi_eE%GH=l L98kbSQuޣtKg]*|!‘uHwUo{o$"R5mf hliU pݫ+06@Ti8e"?mhi\ "b PP!4flqn(DuР(#]M)e^H-ٷȞ4H7G} j+bmJ¥8JI],hn4͋BٴwbC_lbMĸjnu[e0w6Q9k> (_;3яA_|\Y^QdqXvc.{yEC'J Kɷ ^EX}sqѡ:P)TC}IH&|aLo:A^kcrXEč,8Œ,XB+wdžcU8a~[3|~˚OL}gEQ_R-¼ĜN©RHOt?C!իF0ҩN^Xh>$T9_YSt oeO.q*%3@AJ-~4?lwѧXZ䥫Xa9"c\:m)5m7On 9b q9b )3g ;͏*zMT}?4#j_o ֶ9 BD7oZq,Z\Rp.fq/OAkY2z./N1WJG \ހ)Zcޡf׾<%uPM+ _N©V֞e/wV}`4z@0?\S8mXBdy.uQ@ɨ˙d,o2>ֻW!>3?yBp^iy߁}:TWG-_TQr^=1e"U7-nh-WWn~N;-5z0U' g @p¼)'ExM !!?rJ8 ɀd f|Ռ>w3X7Gp͋0R2erOAvb6o'_0h6qDj A|^x"ZM-h[ڄo\+畾*Ms[Jڈ|G"rnVܴKVcӕxhׯ.5@C]cV"Sd3M~uTVp T_U#d<߶K Ya"z* '6!? Xߨ)Bi^7U"rE>؁gA ߰_-"PkwtY1vUASs'9l,9/ WNJdEѿUNzJbo4w}gZ /ě#y bq)`/HY;3[s7 (/y\;yx ݃F>o#bfOUpahiaBX`sm{ooLF" ^paOE,u凑 W8/v^K;j?|^ƚtGmSa4$Yb 8AiMUuA7tBغ{@f_ch֢X ö%x\SʂTe9-VF6c^Ӷ ? +NFʪbT|Y qD,/,q^YRJd9ƲPze7v`nTL!%wQpciB]'B  a&ܼq6F,\\JeNW4i^)T=C&H뗘Ǟ9b]0iú = wӈ}&Q3sY2j MU*U@Q(keDsud|Da]g7EҖ@_gr5Ih<iLK_VJ 39 *@J" !  ~)\h!B3`Y[2cA ]42` 14͏]W=wjmW e7'bY]D QH@^" +,U `Xg&3%-qe$ q?B O{)&c^ $TzNGj?LuCE4AK[M|y HűghwhϷ]dغ[">Yc4]fhTUW*TM^U]U =v17ϞPgC:F|X;S]yl<)*PB (EQR5ʈE)= E)MDNp_Oi ,%lہw`-2\D6e̕r}|2=(Ck!b=Pl@R AW֕_ ES@{$0<,<۲]lkr 8#\~XplYQ=Y[GۿF  !pAg> mpy>t+G'#EyԆVD]jxAݏa'#3w~ Q-$n%&WX}9OA;ӽ߳q}LnKMKph㯼<0>7mա]J |ʪ2- "Yp3@͐< [[3B`!'# m:ku#J ((#j@AaF!>_ԫ'Q# @b gii1E$W}2q`.yh d!XƤ"Y& XLXf"bѸƠxoĈ1XLαP %Lcpf<4H Fxp>4E#(:be#ĵ}3fk$IENDB`pychess-0.12.2/glade/clear.png0000755000175000017470000047132612641567764016462 0ustar tamasusers00000000000000PNG  IHDRebKGD̿ pHYs  tIME  8 IDATx<ێ$K$&"j̪szzfrg?X,?BbItẅpw3Ugs&"TxOH $֚o0*v'vUl@wܑ솢Jˆ@sL34+KN“B+S J`أЪVpⳁ2X[:&C{$me`Х-s_m^Mjv\ٖ}L/;8jцZs^1CC^5Xk[?{sKkf0]MK]hхD70 =  dsbREL {DRzF6 ԚKMم5e&'?;}M`MX(ޒ}l͂|-@`Z'?# goGk l%-^5z4$D CyhM ?w~ScG:B&q?k$oM^J:,>x]Ct l:VZ?:P ?+qREBd(7/ L`lM e0-DGMr!̢ iLXgTlLnnDU+$Rr'ţm$]LrЫ4vrWZ{-k#&`,n^bPG3눗&^qw/?h~WJWHסG<#E)QxFQZ䤰T{(%'{ 8t&=Rp7ы86њ=%xzu'ŽJʋ!j. TZghRqq1|Յ"1iv/5?z/Z`$At2T$H#T(!يiӁN h!)Rbh (LDaW+B&Isqsaq!Y[4-UDwDN^ 8-N6eg}\,E$pY(U<|6!? g[2qͅh^jh)k5 Z|/{M߲;Q4fXyk9Y<pBQn(^{5O6!T+/,]kR@X .%dZ@3 fyӡKk˗퍛_s0|hr%4qŗKm,Ō,<p֋C7_-ţh{қ]K-E\$*h @X@sG4O,SxiTRu^ |gzbIɥɢpK]K_sk(ppʼnɥĆ?a\ ʆ5YL-^j -S"kAHHb$۸RD gyx#"R+ h0Ku Wh .&U (YlDb2u[ڹu~!هKey{Z+yuzş˯~DJ)?Fl]Lk&:_2 I!G_1"*)r|j L[v.NwEw}o3Եb%:8R]XW:= I!lS`c c8uISI yČlDՎR{yk2NY <!6&Kdoe %'1Qq)2T2 :WcrSLa=R>/_U`Ua0!t`HS/uCSᓲ@30ϳ)"`Sy0@y"T<ԊV 0P (`˲*prB  Y*f%I Ls#\풔렼+eBALa[,=<͛)y&'^SpW,,6ܪegrlڣsŒԊį]='KocW ]b=|@³q>ŷ!4~qj5 E`ѯTKm3^4J3/򵚗*޲pCZk('ē:S]A'/o>G7P*wZio+xpCCkQ*6>dyť֊j~Qbp *5-%/%.9y=w]뒇wgÓ] YnNMQC΢fVCG7_:0)L:u)b &vݻt`3NSp6~) \=9˿nL,N tC]ȐCҜl Ƥ-I E9 5)Q0 tКnKj,ia1@;֊2BC$@lNS=/oy䳙0^Z{5j ,f~EkB,M>]$59+$8G;bo㖋Fj{5!LtG캟=k :a4-!pn`Zh! l uKJ{:]dZ0Y,v0PԡM2)9)a2ՋOan§=^LƏucZ랿[vo*u|Kz1e-ug'<lj&xthn¿۔K%o)L>Հ[ NQԩetfb׮^ %mo@{=?K%ݧ@<(dԉ L/5O3g%OP©Ʉu~BA _[Ji FΦFy%,4HpE$ɠ([i̢Аhٵ%'kU3>b!yxgA`՛>یZq?^>bLѩfQ4!|ũ=(tLs]cS`h<8=THMZL#&(CvkA(sͽń冥d0d(lSċDA:{JCkɩ]ͷ _/"с?{;̤9dq^nmktUzC 糵S+@84^P"1H2O-$/(LZ^?gqSbN5gئ;G*@XG Tf ׹uޅ@Q`v,`iVh:SayTdZpw5X595,^ꈂܼԡV^3]϶pAcM(qZQEP6mumZ5]+9|ŝȏ~ɩ{:=_WŮgZX,\p uƛ,п8.@^\\ WNOߧ<T ]P?:=u4<3їDM@Cŷ^Wb-g-z}F~rLN^] [7[# ѧ LTWЫaM.fy5^1YZsJV \؁v`ճPK=8gG[sRh{,~Dʾ\VCPbhp.+HQ@aQR ~Q(fPL jyĥ%:Bn9kB(L^k?>NR,>H~۔ghU0zEak[G[E ]jͿSX;U ,˓X{C^ʟw_BNLGs)Y)'8]o>"='<Ԫ{ pOh| O rkjG=^Ktz GJX1Xa^׌CB.\j$xMԽ XشԦNYg\tg( ѽtN}u~vtkr <{LcubRC@䏶&P|zbT^3*/#Z̩R Ұw; S=U0Z ˪$"Y D*Qkr!Q rD0ҩJ3f߇O=A#55/U<P׸[x `,a 0uс%{5hiokS}®]='ͩ2xYn^k ]G/z2}jZyWJ!SQbhիT +n^V͇eXg۴}.cc^@E  >:p^yzɫ:sn2gu)a,L^uAyk]lũIf|E%CHܴ`p||\8svve,\q&dtN:P6T/6fC <\P'e Nè[] 69#Gz\h>CQC'~EM*KeDxm6 zm$&ϭ-߳_pMt\z䦡I&ek]G?UzɟXjGy-~KwW8y>.>jCKFMX R?}t[Zj#8Gp*9X\L^&*̠UO-oY'3>Qߊ~E-[.܉sऊS2<(_WIK~d@+^fqK}W)y2JxفiM32T^桄t/&&q /fD1T|K0}גuW!z + O 3Uh%h-RSIP:2ut*q 4%H/ZT 00t-s $qԉ3%8H;hE`gCCG ?i_JllT=bj(]uZNK|Eص9Hh6jDx)'W>ۡC-O6=ǵ^+mkKrWwq)߫lxpT|[^99؝ ǿgb.$sM˓BOҁ(Ō-6[-&t݀Xy[^1ۊp㊂l %oTΔ6hZY*1Sh1FO.5c| dA F󡧤 R< IDATyư N'aCABg 3yfytdsGqSXkuV98ixM`+?5 &0L+UlnfIfR׺ k-5gRSgZ8tpGkm ʮ3s%[5S1tNlg+j~ ZS6WtT ¥Π%smNmhCQMͻsT ayMأגG&zA0UCMr oix1ԪP&?Z,l{gw:՗&tvk>0Tܢ֒,&cs}2ʔe~}hq 켦 Z)@㥵֯!|p$[8ѓ,fz玲§yǩ76_=5aHj&Pclk[,jJZ_*^k /=T-75o+]W*ל4#SC)TR,4mSvN{KW?-› Qg6 ,79x@ g+L :z][y#.9)q=G-\#bW%X2|Ϸ,ͥgo..(K=[kWI_kWSk~ť.dEx,6bӥ ;/ΫWb[\Y\R8Q pAsjoyT 3_u_̵T;]=y;,W4GjKOfyɞv F}/>7TUnb@5OtUh՗ iQ;aahͥCC~i|T~&Q*a _2 $JaH>LuRu)$^Q#l4#ZWv^go_L/`maڨosx3+bT9\*yBqH柎^%!Cµ KY$h~eGZZxΝ7?Q$K\jfYU(`8 ,Ip32Ă E8${33LpEע3 ymc8LNn-ۗ=<,Y;akRtzزeGA^Fbϑ[=kygOr2Je϶=T-nI#e~Y{3ٯ-hѩll x4l>5o[l99TߖP/xZSAW–M4*(.%`#bXʬLnRL&2Et {IP.7ucz Jl:eԊ 6ȖSmO2v4bjQh!Y&sIb3ޑa3-kL=w4.m?5}s1X#LiȋKotgC=$Cr-5!4Mv[CTbXwĉpO`E(e̙4R6<,H&'-i=KsdsmJlZ|sJt fJ-aL6%uȮ?4,O/!^n<پ[)Ŏq[̇'.lZ)[n lTd=fmx"l%~=>[chꂾ8R[N+௳֟B/3}.}zgiZ^pÛFnHс-Oy-Ŧdi8촤]z? |`j9XۻiУI-uM/1䉡`@6"DH)p$aX\!yB EЌ].!( rوaH6m)s$X$05tVCx->G>m-N˾]dVM{+pj\jxx{3ljju4c2di%}"A7mdnag3}$ۛR2l&4Ga-.[zf=nJbwGN++6Ů ZnGlJտ7XX´Mii}/aӦ% 2q3#iG+3Ͳoc"c˷(n84rȴǞО?:lqly[~igCֹy e-~>s_"[iq-Yg𒺊yEj|{7&mqhi_-Q'p&O {[@/7l:8rd[0,Qpפ4<8_χjMZ&Mb-Ġ%ZJCg_TρDKALPO@ =6Z*$1|;{0$ܲ_$"dOX|F1JYmBu gn:Xf1iā̦o&HiZ$,lMtwOD\̕X ᑊa2e(Ք9[6-vGOp%cⰳ`tic.Flm-/z -~ td@Ӗ>=V;Oa4|"p-f|/<= J~kח򴷘|b˟ d#+F!6kAXI`ɇ8mdӷTF׈w˗fJQ->Ó=KIKU^憚Sv,G6}әH*c.p&2a,s% >( EYޖ+x["z[a=ȚL,>mҏZ--':얁$2PM2O4t-}:i[ 0 ?-F_Gs - { 4+hŗUh{h*ˁLjʒyY;SzVOY8 -'ޗkq-G>*GAXץl?u9>'hvO.+2M'th 5D"yBC;MxelĐ3Htn!5P;Cay8J81cϧ'oz&!Ppвg{#lVVɇO0<Ubdܲ$<'\ebX M"(4s8!'垂_95SS']·=wkex8>= Ihړ$F~@|L.ˉ 񲵾Pr]97bx0-.-ag{*!ɷayY4 tݖ떥 eYs()ivoъ{]4Ov-2<4d\FN[Fuˡ&qO}yώ&ǩYTPw2GLn2f M_G4 $%feA \ܲT'Hۜ .>5.t 30t{F =$vW&e*=pc] a;&r6=̃o|ieLha-Nȿ$lⷻt+ޙ21 {, H"m\*Kec AP[`@cWEb1M1/9Y@ Om _Ŋ6{ܯXp9[Vi 1pˑMIM==l FIӖuM ˞&.N.;F@L+dрbL=Xt*|E%Y18 yOGЖ 8[:/97 ,x4²Ar&Y:Ґx:cb{|MCZ%4S-Ut-bSϿ5ҙG6e=vТYbdWɢEjPz9MMd8lKVaV+2=EP ={Ve\aҖ}v2pM+Y&1tX[V LV5c8f0>%ӛӉ-oq,|_g:ZE.zRCAѲM\zW~G_%`{nyXIGǧ@ lrKSe~MvOǻt4|y-R?zuز[$DFhq+dVJ[ɔrY}Ϻ^T+]/M``&7ĞjU*?[S!E/ÇEڢ2aŋ.k*;_0!abb;GfVh-NEʗUѬNFV.:2a ²Qh “ 94mqhy!i; ]e$ZIL)jz!xڸd2/ : \j=٧a[,N>ljx[oషg6Ӷ&U/xŗ|4C15Ua к aYGdbxM,G藱sS6VN6ǁ5lLJ_K0$< %e aJR$-'`yK#FU`SE]pv#x UvdyZv)خBc--_A"|a[L/[_YRɖW0!7 n9g 45T`ȹŧXFj/*C(a5dC"X]qW) MT@G"9YziMi/r܀Xȳeq+'0DMC-u[Meo-O &aBkr/fM=@2qS5w+v9`c߷NurE-= $ _0Ҭ9k.!Lk@,̀HϺ2ZЄ4 Ip-MGA< 2<,9[MT¢:jPK: ?D .Oًz(;f A3VB*K[ UNгEW7[*Al Ev w;c"=L˾=\X]o1$ޣ|~5NڦM.b˼ 8C{ ˒+vSD+M j>ᴫxyRCӆpG!BLxV"?q1\jU+\YMh߭`Iq < z[njFa-{) ЧmE^WϊIզ9 8=DCM9Tjd\Gu(a~)Lo Z|:8NlӺ{kC`_sٴKtj+Хd{-U4}˿-e = "_Y,pUQ{z\*#WLNL/Wķ>bY핐Z@ٵkwyu??#ʕ5Y -CFr6T RA:z (qIݐuO)Y޷eY1`p4.`D>@ŁÛGuxïsS{m`UhE=-p[(`hoDThEvOt׭ x8Ҙ[yI.b[vUΩ\nӊayǬm$?֧y-úMwOu=/*M?g n %i@GhcTP W@T-IJzlaa+josiWiHDbˁ0tGm!Yզdif@_3|,鋻LI20rr hyZR(F8<-ݧt}.J>\e60*~Y^貊y~epbBTUXי $TS9_氫pi#*^xxT -nYpN%d] ӖXܯDR#LU\a=\44oRU{.iQE vp)޻Ӌ;2p=ى^?mrbKcM.+X_jE  tg 6,5\xeqZIG&nYĚ\Tٺ%x-~a{M[#\WōlX6gSpϒd abBz+($gQ IDATɘö 1hZ/|bV^du =U^2r/x]/NnqKpU]cRˡe ƴE4,xB˾Ċ|^L%V$fe0U~oy6TbrI[7z {uO^IxiVNG[ֳSMb{F(iU,ˠYBu WُUIF:B,$^i)PU%pٲ /N_H(YoĮҹ N4ô€M[( z:'pKG`rbӓ S~-;, 0īj-.Sl EiWN̅=lϓoYO Oz*HRq>C[ O&fYiX#"=k|AIYL$SLD{~:2E 6Cuw:2fH4s$ Y8}a{>Y~-€N3,s ,Hu˿ Ӵ!]&i& %>}a Ͼ\YԐtk0GWo2"<=ȩ zsU߯p\~Ӛn_e~M^u+&[#eBWKvTVyUY1a;J5T0ȁ$tӿi?-U3ta!òH2qZbaӿ}ZP<)2~5ѕHIL#ݣ Hh!QJ{$[tR.$S2/Ӟ=O;-çQM?"xhJ}Ӿ[{+xвiVl9L㸲,@<O<=^mO+ѭK09WֳR.5,K ?j3^35\4L+D#Mteʼ_"={K/m卂(.b5Dvy)˜]_F%[Uzfb/_U* W[䖸LU'=&Jh)4kE>;x촧z֭pe9KE+vZDi48\Pj)5mY;5J"0M@u1:r-p/oQna:a: [vVz aPBa-qVxtW}kX_+xش-N tM ?F!. nITC@""ke'#rז%:}%ⴏ|þ}[ntI*y0e8zW%KmP9~2dMf=-ej|(q+vٖ^"X~U/翋/50m<.i쇅yMB+ x4i8NkO^*ݺ bN iM.䦆RĄtuL;k-O{*^'ۗwҫ' #hNEQLѾa µi[E|:_[ܮ$ue[L`Zc{8FyCps{0rZ\aBGbd(ƻםosY\Z@,U'Q`]a"^wkUB_=2n NWH6!# a{\4:c~e[GFo+#tb˦œ߽oE=tOj9$|M?잇KI&2ڔ\?_7ר9I! %QZ#nZ\JS^5[v" 6a/R!x88/TҲ 91:}QT=#M@yKcUSj1eZ۴zz,5{1Q*W yq-zZ\nX^9"Y`W[mO!Jr ܲ"*^ S |4lWG0ʥ!.9j k1oqIUشE=˖_02sE]O]iOS'?^B(51M#$U_a]^ia~i.0i׮1rW%xZ^I"8-^_6_-vO'?po|UNSuwGK[+vM>mo\#DbqT嵥lzX իYK#2HlyXXiH,_eNK-.94aM\6$ia{=ޢB%^ʳ-FlX`R2av BKM.-vjbQ׮.:F1~M0@gӐ_$V vM෫4~Z\fmˡ^q1&&a]aeW_Y))Vv,s!qx-$+ ,ڰ=z\uL5醓MH vm=nr`b-a-g9hO>v>a-e6YA+7l4f?<ݖUsWHfUdpM[ YqFe'-f8ҨXqi^ NN9'Mj+85dmm\MoDܮKjshi]Iʆd}BGE:5p4ӦY M&Q,0155m]XV7Y2 {=#q+JD5q=? E]iמuv?>pK`M%}x ].6A4}!t.G +'a[?So+ɱ$뙻GdV&G`s ¹9ze :!תʌp7]Xd5/6$OVdg}2[N–l#lM ME[׸{Z+0m8#e:$0W@i{j0j+ZV鴏L?힚˜ z 7>]^ް}#io<==l-|EzȲδ []A]4ð%}gPS-iÂ4FEDhb m+e6:-m: tL~̱DZ\&[mJ2hKBK{`& n V;4Bzf}tt ̎G#{6roy+(߳ż9]GG-2߲Z\#m\Uh2HF| %5J}F: ?^0CHImҼ j~AbTmZXβ8tgX&2)E*ԑ-Qa>8N,Wɤ ۋ4g!8W 3C#@7/_-Ͱ3^G> )`ZpD#5mAYI㴝eaӾao?HVÏ2^~Ӊψw:|zVR0>pbX5a[;GL7ҷJ 6*{˕5l Xki˂"kzp_'&lRlu">W06尝!054r^>MY/W+ت3^* GHqVPDRNcN@g rdm)b\uic4l5}Z_vie6:jz*GHc .)Vir 廿Q@u=^ .6[z}YPl0ߋ܋?_%n&V&[N_cj~>߷g a| ^'t(CtWsibX)s:b>VOꁭ: Ff%>9lD`jdW1;1nuZfPVJ*ݘKLkQKeԽo/'ؗ.֘=6c/)Op[ʧ<{6>,e}U LlDN{FY2|{#_,}ciLS$S.y0>fͧh+yNw^xڀ%d=f k"ʥ i@>miEsJ`Cp>rqcg;VA5( 1`c1# m=#æm8g㭜eǝV>#Ɵ"#8rb;)n5ܫ7Q-ki4_g8eNn¯gyK4E68FCvz!DzkW:kG2NB4Ђ\&P6}+D+.p Rzi`1q%dN_tX\iZn.grx x0RRcT#N!l*'-)'gCF)G)w.e[§%}2s\׌NWp|VӮ<|yZw xe?C skjiWr3Wvio9mxT G:;Js_ccm5yU i\K7_.5+!/-I5mfe:I8 y*8,`}Ɵ1P4Gq6M=qVO̷b+v(ـou;ժ l g"6qܷNeCY{9(\K^T]` 080\'"VNl-"{^2ڲ0XwEsщ6|\XMcYW/v0ClS"8ll@iVlOkIE^lю0~KF#ouG>HiV| ?oQ2dSh :8o F@kzZgl4LW^r5kdH: w$5IֱNJj+v+ح`{ux{^ri_1Q&&ۄll<h6L<;GdJBm:lD) (өy^LsDGZ ߫U IDAT:?jpct~yyDHȸj2M{glo֑4ui-O̘H\[#֤4iRȝBjNK;ݰ-ˆ?gF<ᑏ2k7Ӧihll Oܘ>ٜۼOO?}d\tQOw6 +*^y&>cβ ~L:nBfLkRg]Z}r2p$X QaJ:\r|˄nVsN:I.0#r_(aW2 i^ D}@?۴/W6?)Ut:o,JgX^Mw>ԑr/0l"#1r_=˽^!xV+,+Siݧ 8Rfy4ժhhya1mh \ (H,?pU(z|BM%48Y?4XgV>=oeL;]M8ujG:FNo*tU.ۙïsO5: #)y.^NJ-vZx}A/Oo;}dsgs:_!{jܡ?{̝@yX[ߍ+DGWo\{M^s݈mVz{iWL"j[(5 V)h6/WVM5>jReI|$1<5XgnhiÕ6Ç~+ V.즑 j*N_-mWLFGy?˱Ətʊit.>+Ao)Ć5a4Z)E:ےlzYoF`34NpmOrYSBdBl>V},r3N[&j\-2v.-p_p:h0mT1W`[)E H) Wt9<]-vF Ï(ꑗ%3r `u`5 L2: e4KLWVT[cE4_9ă{JTM9}s"6nR r{=aę^[Z+C,!eı4+pþW޷yg+_lNֺƶbMS+0ؖcpzrr( *mo0=7<ј&ZD\p".0"բ[!A䲷帷a;KoSP[Ѿ+Ds;DpH QjS\uǍÇ#|ڴfK߲dY&lZ=pQ{ ѽUgz*-PW~#V\`)Ls(©ar$ȧ ^ ^nv+Ysj棂V4Gi+HLR)Ii3 nΣOo=_Qo0 nVĶ 0/G:ڷ)4g3>yex`ZXzzq?T;Okνtg=?*Bh[ ظQ[1C (2Ԃ9Bu=㽰?v>*ҁvq4] 3Creii׻ףP~B`*Aí|9k%?3Gg[>?gїk4x?D\Vh(3>AY[(\} YWFRq*9KD[OvZ: :lgө 1¯-\lSp?s߻bkxyT=k"̱q>6n p iA+񈧛}'eg_^a`Z4n+v \.xpmcmu%3d.;8Ͼ-_?B;S¬~`cca6KTë{paWFۡ<:~W|V_qVOO,}zFkj٫pHG%wM#<%rv Jag^mlo;ϱ>Զt~䴧.|?jkڰk 2XVq>lX+t$:<([Wݞ{6|`W:hzFq2`͈" ޡŽX\r|O;V!xDK#ʜ ireB%w D`"/ace2^qVxoi0Zs1.ԴyF M|);ܥs)t60,j{\6q9;$08 oTwm |=U*vn{I#Ya"O|_]Vf{2k(Zݘ"gV\-[@9/xW[ 1 lG8}jpG{F:åT\+XpiyywLF%)I w\E9 Nahƀ<%eeձ2hwVRym0iN[}o) j'm2 QbⰧ;iGaΉ ggG-[[=qKDŽ[p?c_Q?Fmo("֐tëM{.3^{>.Aԧ@-zF5^/)^:NB6]O}|KY-?avzԺ֛nZ͗4&T̲//et.0 k dgNot5*n^K{)GJ袟nAF;VW#PHO|Y&)gװЬwzidӣg8ulLb\%Pp 榑`+Ow^Vh 鬅4Tc: 2%HsIjީ%{ƥ&l| \ڗnXCŽT9T}UqK`/%:c ) 8{jEyW{MOmU?ut ;7b }Ӧt^f>nNo7lz [ SY/%D%^6(ou*/9ֆ};6tZѪ {)]ܥXNeTop[.e}8qi{Zv1RmTb#e+kO^Lvmjt<Րv#* gg<{{r'|Vp.JaqoyiWI!GáG=om+g M[^ט=}_SWHd7\".̴^_FܒycxK>mp-l @eD6px.}kXt%5R'\ŸY*D l/G&ȝOn e ėm_biZJ xĒ~K}TαY( 댵 ><]QsF#}! nYEV[⵲|8~VZo"^m?Z,^/Pl uÜ}35 V3tKt-U^h=u>ӎت%"Nic)z%3js8O5^|%~nuE#(+ ?U& X76a_10.Q}ejߦVv=AcKc+àËFݸ-dg/L@]/"^O~_̍/c^q+й}I鷰P:u(ˆ9vՠ)}d^9~{3ZM;3_,`\h\+~2@Z-oPŮԮ۩жrW˽jΎ]dax{2Վ( eNX/j{H /y\,\4îZ{-QqYҟٹ^i(mXVb bkuJvS23bz->@ق̨G6׹>3xj+tLwt{KO?}+?xT~:-49i?Ψ`}mW,v.0ߴ3>F{EyýbIZ)J s#/qOJ:_WSל-i48Fe\R1ۂ5;cQSRSQt&Qi8]7zVKS|ZAyJ9\t<, ِhHK(>@~EcCHݺ /vkb!DӝƏz:L))+: kt}VP ^B1Rض eՐqk@X`zKwQLK |׭f5+P>^Xwϱ0Xv&Ҝi x'jixJ7/LXO7Rbi$Up,\=ƽ= i;mr}m%L d6 IDATW795lK&9sZ:|NtZ˔R&v@hj~7{)%oÌF Eh|*:6J^;}+hiH3xWt&2ΧsٕA-;;(g-ݍ :k)QFZ+OW9y%$$ u:yX2(g~/7 xg4|T5i#ӿB0F7 -b0@Bv#| pz:d'jIfX ˘>\gq+ ?eްe&%^k*A|)t<J-z9 @phءmITZ4 8CO$>LG<2-r]vr ǙN f8 liW(Tax7θ’ycMւ>T(2ᥝ:1fօЏ[E)ֱq3%nrٸ^ְՌiO^3ȴj)(Q `F~8@z;ٞt紶Xi F%efJyZ9Ӕا*W V_8{nuA%N֜8W+WA@bmz!Y\ެg$΋lґs`t;=-Ώ|?e>xFف$1 `N` .p/0EH{x|}7[˝rwMfPaa@jbֲin(eKBoB@$^ݜD <]#*P'`S?Y\ihxϞe[K4K-IaW?w>. :^ۛvt@cdg4:OmنiƏFgp`[' #_n|~DٷrUx@JtF{E?7NujSIRZ; Jt6˧,NA{K󹿽o`hI۬lVt^׹7,QvNaK_9ZZ!K\la[:Qia#0jxZyG-Ei5tαrԷRd'DP2oC9/4Bs@dU-!7apO6QƊa58LԗbsZ`vpÝ7A [O}4;})tTɷ/mti Mч]7eۋw1W*a}Cӟ=e/xG-՜͍駡>D#%xȪB)gxFB-Wl%sWꮟ{^m=W4|9H(2EiG|YWoF_BY2/yuh :eRy@t𽢆T<ðe#M/fPpONP5Ad;[+h8v:uK#A=i~a;'f0QkY*PF%NGA^ڮ>rZZJ.tK?QZ@__i|kpշ'?+hƕkii÷U!FZbXc_"+:nϦ騸%^0G$`|/?^DZ3=m66(;;=MTbu4tbB+6l,~ܭh?ڽeimez u_|$Rq nu4 KRzpQxg|3[6Nk; s7b1l~_ꂍ d:<[.~fmtp6hEx\ D-if/KF>Vb*KAǭumY-)i4­փ/6.X˘0Sdh,RCyMpq^O3HbUOV#ol셽|+|73(:jQ[?Cr+:f8b_MC4>8G iD@"5P ٰ: 4G?V a?Uo#K$鉨Gdf7QvvXz;]uNfB#O_\TTfF'Weau+e9zN{͸闃wdŗ lՓp*ba>W?f&l]z>w=?7ꖂ`l9Hih:m*.Ata[֣ľrמÚ"F/ i6͆~Btw` jcr Uxeߖ7yt}YzՎç/t!ː`H-z/! 7Y{ Yx0)W&S_~*Ӷf&Xe}#\9GX0^0u9G hB,Nvz);LטLv~_f*88SoHNAa8,$ɢ ,sٟLC(iuZ++}azj5c*emxg3u}=K{=r-24V:kYsxZ5- GA/-u 0x$28eIA |ɽ̹oQM|eM+aLmf?oG =f1ʃ!||K  ڦQg '`J`8岗|ibl"7~ϖbBaɏi2PmJKG k1nӳ}M鯶҆D=OE)GpdU<~a.(04LJ _T(ra \~נzv.!`0D Ln'0ɟl_9IL˞:B}Ax\OkU5t0 l@'3,'kXnhz0Ú~y0}zkBp+qq[}?.=in˨^ ){,^^ú6$w?4ʾ>o{dNb:mˬ"c@O7-&;#qEː$ 2e%jp.vs C/Ϩ{b# JG'?EcEF#>MD1;z,nM6ͫyTe}uݴIXscW\[&8*kXի>㸮j9J$jYLp@jW]]Ӵk.`b[-4j=hEX:ޗQaӶ. QE9'$2𨄂Z 迯-Κ_k&:m0oK }?cVCh!0ɫPQ{a_t2!J{zf_a 2@v# *#eO=AG0lZ]+c쥞 ڼzM_+K`$:m&mp= 7ЮVrT_>Wݵ8ǪX6-~Wi^{sB 0ZV)eȆ:,覝HjVH~*c,5Vn+ -2k1%/j|iɶFϝ.+mɴH [1kS\س {ڦ-2;0n V&=_=-R7m6[ LĒ|xi`|Z!4S핕EK&e/pd~6,>wJZ{iZOנ . 5M+1͑\d^ M9!nquBqؕ*'O52fȆk˚@ Kl2,&"޻hXZ Yyb`C744N>yg8MٟۼGҾ_v/5)5z9X+NuXn ^6`מ bc6)nQ,&ai[t $_),r^y=^z(5|}sJru=max6)SZci?;pbpZӴ*7 Z]77fEYGb)9uFhY&-vbw&?, g%kbϏHʹgؘ&L4-] =J :w vrj%I z, &}r=ELklL8v"q2aXpDLvK$@׵hM:g Q9Bqf2&W2ѵM7 Ks(cI#UH{5 @MQ/,"%/柱I3E[]`-#z!6ixPe NܣkfUBhTR'RKh x b+~VZzV3~q1pQzlhд}D]VT;GqS0GSӲ1yG qXw kfA/N\ x wdYf21 2jbGrx[4mZ8JI*8 sѰx`\ \oliqM-l֝eCY~)E՝%(O/ =+>OrYgI/H/("2ȏ 'E\`*ʎiY7T~1Jի-8R*Eޯ !  ![XAҾբdJC iӔgopCk!j'8L,=妮$̎ѴɫW!Z/;(Ä V-\|@GE7[Flm O&A>;?f69HxN[V+M{[H}%!v`vA?/ Q1+ĩ(DSa"ipHFecGV6I4iSM-";9&2C)1bV2dP rxyR7I.L˒?l=4$*`)ޔ5Ңp=5q "LMO1Д%˂ut %T[6Zpq^CLl3<ʫcgg0p0l(NV[̺^K4!=MՊXO?A92c6l:5%ŮѤ1v֯O_<-Y_Vuč f5OF[|z)2p{4eW (4:'n󲖀!H4Ůl.BitA +R%HCdMAkFZlѮ6tRVk{duK뛜.t[Fm%G+t{-O+ a ~YW`ʩ.:OZ,E*8Jwޕ 0-aHrv -ǚy*JiųALP0U #^PVN$0*| y=T5TXA[- 0lh2"?mn1g=Z8ҥŧH@i9}=ޕH>cWoLKU}o]oz6PeW}XT͕FlWYz†_؜ >-_Ʌx/dѢgW5=mZ0)_Zaq(QܜB\n/S7p37x8 `<=EnA|4khvx[grOkD|5oķpr_ŒB:LA+;M-.u?-Q(-{2ͷ5^`/#,19"_Wd~Y/ϵ %Sy+"l>R1=6$h-H䎝PF#]R蕾 i50͔B<ϋGdV[IeAMtE/E{i9RYFh47&?ւW0D\i5 NNXo`GoOc0nL_?ͪ &>d[!k-nD %\Ը?AO`~45-tyRæ9:4+A 9,Qt2-T2[N*ۅE@ ~ʉaI2lUaӆ92~$̸XG" Ꙙ 2zFTMXKuشg3W2Kzbv\Jr v0VlHDiIv~i qZ6$,Œ{m_P\I?m7,R$L"8EY?dJnӁe^Er9 8W+^Wui/Þn7Pv gB}|$Y  OCYw eq_gKjҢd"Uk,p}H1h\@PK;B6wOB}'WG6u}cNԸӞNb@4J-O" H_n ¬<e6q Q yz v-LN8a~_Q4i0yV M_LNrni[V_ćT +˷8m* .k:p9!_pBWÿ_ДN۵EdLӠ{|MӶuL~ :3@%8]Z5 }^4$oa`E7odsM'u2e.UZYrӠI쑮M) 9f0_d+gbUtpCh+t/!B dy~!7ox|0[+id~m:dp}l\xryxiʳxc)=m`0F2^X]-N%Д-L׷3[%{O727}zŗo+.c#n´Ya}u-<|ʺO9*mj.sX\Fɑ 熊beoeLs-Lq2DYjnmT^1ruLi' 7΁%``@{ N# 5 laLael96[qZoTa,@Ol1D4N>TgZ/S9L+CLLnml[<}-r_L(1 z%]J@[qC=> [p\q1.,JP_,'FGf7u9T&} Zd\MB)ٯ K2۽(8-U^05ue"tLdSW{*Դ)lӶzM$7ŧ~-N6kc:m+iNC,Hecl}Ѱ/&Л֔cQ[ds4[Y!ΕMDY&Ot N[ 3W=2tFL $ZH1ţaʮJNvpٮlF8lQy.3tM2:lR1+"opSɌr+Uw);m4,'E`e=M 5m+ p$[TMbCTe75lÉɷ` {#2rkaSWqZӗ?RK˶e|l꺯D[$N6-2m!Ma0,_H2QY ]\I^281O]EM{PXf*,96!& dA4AXއ9pvAZ،U4<._TAS.Fv_A1&RQ4{𶆉 Ä]|.{en䤺DQW\e=B1<-%[pe }|͊aܴI)A@lqhEI@Zpo1tVѤk1 3kB Z4$]VZ!BJ p)˭ ;w dwr,X{WD~ۧ)%HĭM&C&rԻcG-r伋˨-WiX8aXcM.2)+geYj.ߗ ])3 \8(LWhbZzDIL9IPKL#D9VXQie<-vg5=p[$-o #k%LL$> tKӂ\teu/Ha!C(v9'Nt-8mJE9Ti5\(i->G>0Pzx2ӈ.J0N3u)=[,v=oX/.n`W'n&'N4䕭bZ|RXB/2IN=x˗(%Y1LR -&?ە=JO7vHį&l-٭'ִ?r`O3jŽ-: s.t9V)$fx*48Tۦ]Mz Y9\n2Kb\:BxeMK-n밮 Q]?fU-v- b$ €L0 . F4ƅPs GBEiv*`qW/k g1LQ#o;.t%YF&#ůZ&QOb-uu*8y=زfaT!$8ged=-T`^˴`691j=-}҆P6,0زO@hJrRTm^?t['À{ uevD Ⱝ-,_i [UV(.Zau6lr/]>w5(IH3aiN$#f|8uJj\nB,( x I6@#mhR(GTԽӛ&8y5Mx2l1Wò9z[_EVQ#B&ń521BǗ0Dh釗黹>sT{!3o+'ZmqXKڪ~L;F3lLROLBzg aoW7[0m1 RWpAɱkǠ0J=6J)7*U)b9u2S3,KW2Ejyo3'6܁+V!s b8yO8cXT]Dhi]m-/} 2T`ȹ}rt*̴8 bC ,fnB9羭ciMP0l+ϠAǫ#^D#=^ yh}ҸMgL- :ni-hZ2sNj?#pȅt- Ա6J8li޴}}dez}Wntfi=֮"Қ4S&Ƴi_$C-c1@睺Ų{xcL~u9ysW4vsQH7ώUvu䇷*y-hgiOԵ0/jZK`<-hkVϜECS6㾆6YvNL6=׼~ձ:,pZG}ckGPC fw$HX>\|KeiXI7-`q M=rOb[4mi^bf`Hy-'Y]kTVP@h0X:uD*Adc,%Qc܅ul-7xX9=pki9KJJ!)2ٶtu/u Je僓n?o8O`@[d]ZUV>̰*)?T}IWޗôch1,8duXKЮf'?vBW YiLݶ ںmuzK,W.[;٫}?wrtzŢÕV& F)f*=go˕=n Onۖjz_frVەb- Ona'ԇߔpsk]8=~~1.G.JngXpS0 u{ p`jm/C$O7b&mE:kqص'[vRVcr}^yWPOWWW2hSD$a8:s_#o{ |caᱰ ,o4Na =7.D4vb`\m p)|ɄܫYY(P֫V3J/^f|9k~G~V+Y؄LUb lEjpF 0,61(A. W-ʐkɴǮxFq/[5p ?MNz-\mz_qbbU6-ʞƓΣ{8uk_ӅBEQIO_ܵE&HlऋrbgFд=+*imIjx/僒ZUT[]ڦ%]=Q=v-\$.„D_-N)JPm꺅`)e0la3сN&$7Ǜv%Z"4>MF0@J. M[)_ "Z!s6`_Ɇ{&M)I]ɞaNJ@1Or4S94.&b 0=}aea{ڪγRS}'[8f DaOsi<ׇE@{>xniźouеU5udy M<:KaY_B  H>|rbC 4zR- z 8=`7vy@Pj2Q)r ZȆ¥vBsLK =UVD '5mʨO dl2=q'#+m@Td Ǻ0ßh[TQtR$`h[|[/F@cr<:{ qg[*Nb~̧Q[/wO_{8 5Q 8m?->yO3Q'3a=) 6%j֝m% uC9*1'02c=lΏ͇-8fpbAeZN 3QA9ڃ5q-E~-94mqyA .]z$7n+y=qVLBuXn\i)ȳ5:d-`xm[5yz ?i+3}$9CW/ⴶv T=JoV'; ",:N{lF@صu\a 8f4qpm/X-]K@K\- y̐P%^jN-B/IBA85\z뵃 ^ qTY3i[X|aQ$ޮW%Z="sSoHOF+.HAyŤp7[\GH>:sgF<'{Βia-t$ QAN#320er-O{b 7p&ll.,ɧWz-ߤ{5FװaS2rW?g^‹[T-xd]^p *%)-[Ŧo9ۢ}B +H]: hTQQ8d핹aE]+(c ]7 5ڑM.Ս/F%# `RK%'06tM"Pkud21I>]Fmh:Ow$:ξaRVzU@Bb8|Ɇ &)kUv >={%(@˴ UmQ&rEpr&eW#Yszd`!X[WKJAK%Ĵo#\Ĥi񴂧N;M01V1YޜV"t&] py HvI}`gh_a0m=u˯,&vg\G[v `W A^koN\`_A=e{|L-č- JA-'R,Sm䲷a.*U V%6)0zdkً(ʆa\;:]|ZRD[Zz4=|ug`Q} XVT[$>lWl55)m1fG;GUk'aɗ T$y3hh*Q儮]:&ǯg`M;Ζivi |JbOvjړ+bhǵ rmV\_IS]㛶uYևk+z]k'Ojͮ|s\5]Ğ'66L`KiOxQ_.>Xҧ%}̒ 'a{.0͝ 0- .8_n_60cV K$0VRXk~d$=VprK۷`1liW**/t5^_rU98(Oz)s y+7Ur/`2(Ɂ=>r[ ,%=:*Z)W|h08x!0)10W3}I[&&w_oYu]FK`tp.t8H֡3٥뺅NCIϊ4>XtlJ-W% dϧOx=&EzGk=z ŠVoAеRi`=E,$~LK2PB:3f %;-wXrwWB}Weu^6[M7{ izy`cឞ(—m:L5r=A##שS*^!G{<[t@X#a$ܙKw- 6xX MO@5mil^\5c.GbOb]>#"LӪ޼eǜxY y?M2:N۲`-tܫ@B0#ykB)r~WZxm۷(K-_~<r+\`pv) Q&\[4`2"BWb[1e }2l(jFx3|Ypfpp [3t3{Nu>8b2Y]#oYô`iU5P p0=vh)5 䰉 &::\[X)LX%z@8+㾶ԅJ:İaV\l(ً?x({3VM, bͥz¶6cbq&op˛LԳ-{CAmDF,p&4)7B[S%(cӞ 2 {lh8l&e!==]72hyN[KۗANjWI6-MD%ᱠbT29|id/q5>m\=j96ꭦ&WEI.A1A ziPpX-DfLKXaӇ?* 4 ;84Wפ`68MFn[x> EKIK(8<d8qSkdhq_\obTR*+żc+r_s]] O$sZ8kICbJkN"¨3=J2Y򈻌'':.M@OUO/ C=`oInyIg:YZ­`U6օ[~ D2J3QNZ-G"HxJ& njN_H8ѹ>=&>84KÈ455Ք:kr!/o;E]nWճE'_-*cR"Q2 ;q]/p=kjnYnMqZеGKaZRjmkcZɯm?ckSIiuB:2r!g =T NMn)WQ|z{NfŬٳ|^Ceg'={^O} `Onl?۷v Gz&L…SGs匌"_u=]S> -<,QP{1724DA`vkYC/+mҏ{+d][vQ]5MXu:רvWu˗o P`d-sE+{%[9UN@l2c뙕S{|Ã/Ŵ߲p}-6ǖa '˟np6׃pZū+*Π 5N-[U_GCpan[6`uڒ[*t6%NT{=(ں7hAJ;<{k=WrA}^PR}= KxX`e˫!Ed򮃓d"T<'05pjSII*7 x紏#ã r)=p) N3 Di[V%M?fÖ S%r7Ch0%w n٣#_6=sjw>6O:4$ONkY-} :\`㰚zyS79R!Ot<,1WzڪP*bˁaEUJ%s\f^a.-2Z_@YtA/a Y?b]5x3kQՠr!.U h{ ;V"eOlM"-#j7Rg͌sNk:$pxiC-?M=dK(.{2[V򴫺W@=w]Mtd 4 C `2Ju<=k>f8zrD WgZom'o=خQij({eN OL.RJ~6áA<þROfX{!szL(G47TЁa@z9lAqKYL8 Q"`" Q1iIuӪ ~R1V'7Ƕ!$@/{y=Dnz?c*T\@e^8FEԹv}Ò߂VPRPJtLU""JqD]Jİ|䠖qZEG4oỊiz,0J'4/#KlY @-dqjS b%TgҌ]x,F^V1f1f ue3&"r00kKMkTiMNsha=0[diՒib)8e-|25EV*lu*gsumCLMMm[>,7D\kMwrIɧOŦ'%Z07;(9-Mo Uɯj]M[ (VI`D HVHR<|ZGevZ09 wa'[i=b úRu*vqXeMOvUd]|B9! ]tԳG1 )jaD:FVsຯGn`pU^merbp,O2Gw\۰Z@jϤc4VSF%WI^nx4c~skhov/wYi;oiן$s1 ggo^;W9]C/r([WdB:[dÖ_NZ=(yd▦Na-kG~pg3/j{TmH1`:9M`K@R-MOhuff_M8b02jWx%gEb$ *py0-U7ua[%3N sy%%+'4&2d횷A2L I[OK-֜&5VLh9"LTyE(牦Zܧ@g=/v!QY ;LbUc ػ= =OkJ<|' pRgˠkO IDAT&$QveM]&ىMtT5:*LOO aviWޝ[ZB d.MaTX]%"UHFDWUR4{ԅx˒w}(ӚOe]"1.8O/HPq˿Oװ䳱cV6쏓hG^dʻaz>l?at2N.tO7sԚŋ|m*Bi&Ӥ,V`ȓ[Ƞ=M - 4_ZxdQ (XD6H~U -Pi=JWɧ7mh45BA} Z=o6Ūxt.ؤNҕ%ܳ47ULU{aV,i{Xztcv[E1jzD(+ZpBYxɏ"jyo֨6.iڕg,'ƦNy[֚dc ]M CSX k0mm=-No5Lګhd,q_"%rܶ}wLz\/w}rs[6=-K&]GZu(Z#]Hx= 'zAonyi?=z/ө[#ja=J7 <}@i&bK*#=sI_]ĖƵ6RF.۽`Ӱ{Y߰X'dv> l-嶾M ||Ǽ]֔V'F=ma)>>1LZ7gڳgdذ=G25=}؟=LM'޵3I{'8mjMќ19paX &s4)*unrKjjJ<`k^~*q>-yj_]4VP:ê=ĉqON^˅*5[ 4 E=H /8+Q"KE쫎L-,2y$_-?[<\5wa,Xt`Xz% !;jpg1P CqƩ[Yt|',b[@$t$4Ǵ\I[\ u_i[.+[]40LCNkC`%kyZ2m,5ag+9;Yx&Oj%-}&ֳg{ ue`ذ>~6c>zݣZkyVG-myxK7eӴGIc+kvO? 0PA DCgBћN|%2A;!Y1V.&݂FZ[>rj*1c&+MWW:sdNۀ,}DkghSY {`be}d^[7pb1oNvtcÖ$J[\[AP&*9"QA+Q\B N,欒UG>Bg+0Gɂ+Y=iXbs7'ky=,PA0087Zt9H'ź.B*z E88-ӋY<~=?g)TÚ,gۣV*to{>[tK]tg]&Ǜan'j?=Lji+Yt@[c ܣ‰|xi:BL o:e+/_\V$[/Ty5 MɃKqzN+jny#|4=5:yn-K r9}u.OKkJzo*u8L{Աulr!on᫝>w5~㮉bayoI=]=z6ݒH9$`88TC"Qd ɍ #a0L$Tw-o$"5Hn7iEi[Cheia}Ms-9w4]@t>[F VcثzE֙Ih+8k4rx@]ɂCA'{0MV]R $  {ATѶ"UzF( $IӮMBמUU~H4+$[|W=J|XplzeΞ2ji6q G<}p$aka 6Ag**묽'Q_0rC%Zrd _HVuvL▧5܂f|4V|gİ*5*2z?$u#bm}ӀiOxꘓ[3~yMfbI~y´Ŧ/;uPQЁD[ ٲɶJqVGts}ఘʍB.UH^OԪic$NpْxU|ÃKPpUǧMEWӞ;kK8GŶ{ɇhОeU5]bJ!صIӓTbiniJji'xMKSUnY0W g WaVa¥ v *PÛ*N#߂rPn5-T-wZ4y:ɚ2 3D[L56Iϻ&9eL߲X ~W#DтÙMJu]㲒Yy/: =KiX$|z\TZߣuP[ɦBsXɾ*='<-;\VNIUwۛ:oU7e7!K*Yf"#9~3LLMས Uz楨̂vf^qW1\2%iK12guN^p7UPo=/c[cb}g]419|ӮQmNy%!RE6)X&z̐?Lqn:g$GLVyxK"S=q6S3ju#϶d[㈆d:Ka&S >=_rӗXR@ppOaLoycO*[tXL $`Qw%O~[Ϗ|uݝkр\yfE$]G!8 7F]9 nwvρ_̹b2e7 O l |-Vv9YcM/x붬tDS_\BM[¦^֣iIm/P)9jh{u{Y=Wۃޔsg=%e>lԖҰiBeIfxCɰiנ0 @];*To鴦o-lk;x%&xGJhثjj$*9yT0VM~ĴM0cp~m,e%+\WAS&L,bK`E]RerObD-*ɋ8/#ȸu:VV{ݣf  سs lk-r˰î6[UU8Vh&ް^. Dys%GHr4Y~sȬf+^CQt3WZhgUf AM:3;K=VJ5 >la8*xvxbv_Q3k!g  jmS -87jr %cD^9WwiḣwL~D*5w_:/LI T &X,rzz|'{KW. E?ک}~=^Q_맬op?gpE"M%A803ї+g2aC)6@|@a59!i-=C7_#VO51lk2i| u =zɰ}bE,QzΥ-k L1oKhYİd5T%0&i-o[=[$-l4U#'«a/F^y (0̵'\Sb\ ~_;ߤW$w+D휓[REbϷ xZVj>\|uOKN=" r-NPEH--k}=ٲ/}lFˣL&΅Eb*"ʚ TLY> /|&jyi`r03Շ> kߣT4td1a"b/0ڀ¨(z}j`.6Zk%bYT>[)kV{u4= o1P^ aC-B0-1[yDU-qR00JTy<Ėɋ8Ylm,X(./G :eI(u=lh)$bʔ WBЊ i=*Gt(ْ?{-= tvҠlh-UqHYVzrz|{ ca:-/ZN @ C,]\J)R*ȫ/Ui.!MxM=*OAi΀^բN8TIVVeʃ\q>uj r{)KqW<\S^Bu.Uez Z'f51f+5Fw/jxxZ\qNO}hJCșt D ghʓZϬ4vlɬXKlQ)La Ԗk"rW*p7CPς4!޽Pirl|X+=}sl+Ao!(4|EǐoʿU=i^=5+!A3qj[OìC!.KW0r\ы߽ƁGConل[l|4`DX@%=<@8-`0՜yܢf?GxO~ ^h(y"4Tt+1mQ ҽ_d51Kk׫`x!E`p]`IF{8ZAg ҂曟&,(tyzL[܂yXG|ڷ Rk W:ʹ<&SOnQR- t_,Ȇ/Pɓ[W>[KDKGtzjʕr,I=8[Ӓ VR1*=7^ }k-u!{\,Ԍ,/)-/ {Ab n4 L-=!tɘ?}8\ l95hQ[_*P\,!;&=͗,^s`AOo1aj5Ih+_zԞ5T"{r:^q8rFOXD bpjz0&O\ڗ, Y(E1/^>x-zAqX -^i۾lcr T ?qpY#ݺ;iŹ- u2V|'OmqXY Yp/ L6L~{&]npq2vV/dm,ff. IDAT.Od3C@i%aO{tzEq5-ۛG6UUI[cIԊ- ,pjep| HG?S.-ys&y-\+`)A5viq+3xAPO+s(ׄ^(Y8(c^o; >[*G "zOB0:#3B={Ff5M" |Jyh}HǎO-;7"]7_)= bZ9XCC3c0 RGm^J-}yA<}X=O&,jܽK{X<%/v]k`0s@d[Ns:&ca0®-Z\.\-=/#u갡2XX9Ѯ_7LF>[ CӔOՎFP2_ s#śsE61( ꊟiG˶ǡ:砡u/{!`oK֋Īo>8L> 羺0gsH}V×S-d.t\ڻzX[(DDNc?UӪL;Gvci/āa{&σor̃#\=9r6 8_jm'? G/O,{]@,‰s\J 4[x:o⺦gZu O^9"X  ? H~PSy:U1nzu0T'yqa[*U UGoQVzX[Fހ:6ڒHVmy.ҷY,(˧+})]3[\`6_ biZ:Y6 ĥ{R9k\f{ǧ ϡw>ڏQm I@Q\+gUUr0sQ|ؗHп_]( ~, -{x@=D<+^$kg|ZTro0*#ɞB>c:=ku`\l#@S}7E+-a58#ʻXrKWC+tJ{re[zk,skA`~/uQg\O5آ5Ұh-[[i]G= (R񩇄OS ,J OmӶn(r!8q5҅za=l-S}ݍCe( 3lӖ$c%h0ɚ*^Љwi&E-Pd./%'J >QA5iW"N=U+E8t h}~fYid 0`i-ot"31bAnoҁW%-l@Ϫ@fd+?, cpYz| _* {s7ޖ zx0z֭\+Qī{ _RhhM luj ES+|ffX$l{TӪE<'g ruHeBx5)O`(NCyr_Mkrz줢/y GX_=ԣ5{}Y`_C=[>Eo^ R]VCJP;uZN( ݝ[xAz-0uC-_AA@ {|NUN?^&)d6ݸ#/Ƽu/,ˍY]!b-{@4V9E.*kaW#[|'ݕiz|E < "eP֊kf_jrlPaan EVoy.BM?T~6ZMUa*db9εlut޼Ƈ[֚B+n۵uԀ`hT\-MYcLL)#naa>נ[L2mM,g,Y_=c9^zWNO2,\(秊-Xk2GLB\mS= 6D{MeCӈ[$7:U- m5Shp6 4x%,5qy+ל5٨BH[89ɵ +鼴f-pB;DϖeUr.Pɇn3ٓiᬀer-sXV-[U8LTQ=23_t϶0Q:yXz,"={X:joE֑& ?Z(18ŞS[ɵdLXttN[[={tGu=>=l0=*YZ:mXi@ ,Zў2?r cj{P'{aO)-ܢ+9y%\zC,mhd+L$O+"%qe̬,UCz˻6(Q)d\jKw+bxCPGݔ{${2[=th/_@CaF=yD`Чlu} أ9r[0TB\E_-sUpS\ \r *woK~ZiCl7q4_ iuCO%{1-z$Om|zmNzu5H70@a'>XqNá_rک!s)` uNly=[⳹@ْߣB*i+[,oNGYX-BTo4''WI" R ?mѲU8-g%Tr/t)%UZ&oV=P~zN])-^2ӓH[ʕ\XKg${(~"zi@decе83H^wÄ>m84R:O rKA" [niYǞʞV(uiY_g;a]᩟-09ShUfں6p)U RMiѲ$sE3NUxqK.qG l "14Z^oŤeKCIO;,N&Ξo4Ut-[~uTtaElC{é׵>2lѓԯVoamqj*9k!A>T*yйG7% qmYnb~ڢ^=AX iP~ֺe/-RJ%,AʥN p?UjQL+C/g"?vjT~e啴zB  cm7fZN}px-? a_bA˱a!短@ɓ(ȡX=CU`oK1,`V tE66smKYoɥl j9O+W' }2ǐ݋$Y7B8 3xSL\{#|%; V:ԾVKY7[޽E*C%}~j¾$Ʈ zx-[j%*7rHTZN,n+SiYj% _-yFnqlKe!ʟe 4JPyt\ƿy:((ɒ\SW`Zgh/a~ ` ".Im+CZ6={uZ]a]{˩Iǩ-8}SZ:w-&o^oQ ɧm+01Gjg]}ߏ,*4ۂ'C> o|SE?= qH4DD5IJBˊݸS 5y)`#'8UьO}Dw=^閷9(0 H>louH9$sa--Y6/GDAW8 V<[ S󡖷h`O=Z*TK-&Xrpo+&w4LˡSg˻_RCpkᵯ3y-Oڿc\K~.cSZL [z*ipcd|Y_@%W+S2F}u;P qŞS|[,liѲÁLq"o,`ЇsX^a<w &-{=t rj`R MT޲>lPggj_[qJ_' }8xN4ÀmgeڬG=`-D0u{=tZ ~u$P{&{ M[d_HWSBZiZ1P"?p}߼'ruONd}ovAC庿ycmSۆ}vF<&1-Ҳ\%MD1yβ_ C_ZXe*"MX\Eoh8uҀF dŅ?| K.gV eVY~tWv5"J?b롴|'k-Q4mVwdV[(y=>UʼO **LhS5;eP~M޽V#ş |n<8~}G+ɗ$xE<\k~Ujп@Wjk_ L@B.T^?CTWhj8ByPNb *&/p_";upbga{xe[dkQ]{17/acR2֢}8ͯ1]Z`Q5533ѱ35l-YQ2_-ZBOq(p!dxW}YW?^ڡ2j tqh_h`dAp ,Jh*k 7EXS-uKx[]o6z >[(SI=?%{B̶ԛ+ ن6_WP [g(n,pEh,{ZNT0Fh/zB0xhrem 1\=[{M4+V T5=B`}J~hʐB`ٕog R|%n\ƫ8RsE 0zX=sv0Vxw_2l?{ ~ W[xة(4E;yZ6ixe-~F(my?mZ\%BfͶ2 ,g^_՝rP,BCm,cUa L-}mN`Rl[aj<{Y=o@W͡=,E`_3zZR5䕒̶L޼GaU8 ZZCߧ UGQJ}472xSeͩUOξ@B =IԐ|SKIn Qܲ}ɤa0`'*=i(8 1PP΢UIZ HN>%G;ùO*8 qh`þҹ|/r㚋g.Š`A pQ7-͖KvؐL[^q}ZḂ08JڳexMw1em1ZNLN9叧C85lP= ?qxiFjo3J/ݷN2ݕ Gط;8;N.['K רmJڇg갇=,Hn %[}B ob𢫯 = yE"cZ *d|i[,5<*I [PƅCkt4ek6}:8dbQ@eƗ{^|~}2T&#KQ?MKǞ+O{}b Pn%lTTz}AgŖhSŌ0 7LK\3W۴L-s18x븎 SCP4_B‚߼"|tke(,.^"Nthi ӮN W ŋ~^SK[|toJeY"!_rg ـi[űP?:1LyZn}n"-Z /!OO=ZٿR}ŧM*'m]kfC-oSGRk;c)x,ɾ”b _$X|}z^o5Ѓ-%I-W] [QpS-@pP +P]rglibJs= bǤPOz>dhZsm Zi-*XP֐^pЊFԢ" =N@ڀciLJo3}k8|? H&T@[\߾󯌂2y-&DF5ewߣe[VvV Ҵ0;\"0- r[ճY- 7Bcp˧j +dV͑z^.T+FjL[h"ٳe\EMYć՚j,nap}+}4?ڞjmtނp|ۉC6P&iCJǬa{T^8db˖ʴ[mJQQHl{⻷Iڪ qdIPYfˋ^5%I9Qf$\8gb(:Pyx-JYd~=& %s%mQmNJUĿsO#SC[sPHӶZ?swO /)HS'bَ9y= +>˩öI=`KByٴj-i=w?̢'hepiS.-.uEL_0T %IauZȠb%4]2FPA'T--O)E ܈1YP$>o*EIͪuÖ}JuSr^).fZV,s{PSp[r]QE{PXZ Z|a=C\RYQِ{ 0gŊ KyI ڒh)X"lﴖ=<h tLMvA*EEܰH@B -"7rB*O%Cqگ@ CCS?&BFo,\Ué5oRdV(8q)ӌi)Hٲz„U-,C6U!8MzpLC !?|Hx&%5^ʧ4ޠ,-t+tA]O=zu཈TgQ͉2ӓ*mO6ԃ}=r!W3`W&s O_÷Ph.j2I 9l/{G׌ZM@)1bGiw7X4Ad4`C-ѮH)!E'BݿL!!?|n[ˊ*5[ZEX\Se&p >+=+FMܽy6Aj4g=!= Ԅ||&ӧN ܂KYmKw߂߯BL)JKB8Ӳe6e3qؔ^(%Ţ@CSZ~@-G|L{S@4И+Y{:-Sk CG4 tM=]C/!=Lr?E-zRiA\RXZHkp+j/nCqBG8-$OEȴ9Ч7{AZ;01oqwg V|\~S=6ؽ-U3Gk{ӈ=wÀh79.RXȗQ,ju ̴ˎ7ru3%G(p0-ƹtҏ@q ʰE"xsA_ֲ7Bw>͵_N.l8uEcmF>"䥚PchT8p^WvwqHb^GzנhPpbʀ|Tsƽ2*ْI憓SeдتO׌RV«]54>Jٗ&ejjNi{Ǘ݂^Nç<-P =h?$1[eSLűQ_-=?h-N|[I.fj.v-kƮP޵8]T-z<1ݝ"[x=jA|*o[.]KaOKK d8yGx{"z69SO% RMZ*.LQ0wq*clt7IFׂ=*LO)[zFC[yh˞3=}Rlt ś WG|' u|{J&{L*.^qz›jXJz/J=TM쩹!Q#Oj)ɢT-,Z9:0\zN)q m"PRw2Y"&6A֧ In s-8 t q TWNܡteYҐ"o-[n)b2(Ndϟ,8a{s62e Cʐ 8K2{_20tϞ- e)*\]Gd̰'M{۬b-!!&ѐ&HB=AXlwI#ZYtQE3w)4/t珹1D ,}XNqʵnV,[zUUB1>)WITB$*+(wĐ}i)a2r-^|g2--% 7ߣ嗑x̤O~"yQ1e-LŒ6E4o(E\WY4ɕ랭B< W6{a d%=ဂUG+SiXҺ!OUڪ\@(7Uk-5d3Hi+ɗ yk4)]ӤdI^)yN`HS-^ H'ŚʚҒ:$ mQE^ $9Pu8eѦʒX`>;(- CC5[jOWg<.זH) =[]AAZ|nW̨\]-ZL241COyUYʒSC ؖ d[% ?T"ϏЩϖrO':iSLSӲ$zBZq/ecՙȾH n@y$caU4S,sg_-<4ҡDCHTKRZLmi.SVCXesےĖR" a1?E "꽬>8~.7,RJȀ%))V`n־uhOC d/js8_7=yudU|fi-] 3د%r(4C{~ !+RBl-{4R X|K-lkCfO4/Sæ$--g3Вǜ uv Z~S~L**/r^wNQeq @ L~lAb{)ܘ|#rm6EkZʐCԟG~XVelC4Wr!48.BDGƒ#P qLa\{]V[ZH'[WFa(IШtz2؊LxZ ׵GVɼrbg ʤc_jǧ =_S]{NaT-2"SaQ"Fe_Y8E^&hHiI$0oX'y\\'QyN-@!˰Jb(-S.bhKv%WL2EbOs Znٱ̔|]~Ğa6vi2ki^2&pjMO; Ӟ q}ik b:WbK4S2m~ N y_2T\5dr!h*:9KSME jF_[@ߛŖ=VqcR"7b@%D]yKȡOM!szVA#etyR/ z Zfu-reӐ#@# 41䩊vɓ*G@BBъ\0ӦJ֐ZoboAj3c]YzG0[Or2^%)}!-° w!ũ+{H#~ 0F\RTXqG !{j,N=uF,xYgTS` -U ib:D/akoQ8ѓQl9!f_vMnN}-~٢ũOQ/=aZm.I89=ܽ0~>mց1TI*<]XSzۢU]5SB>UspwBC\|6{T|!7p+_T%$*P[,[mB*+Z dQT/]ڪc8iY V_E٦U}C1orP)rH Lv%e_T=r!M@@ ٌP} I!8Y)} =LH֑lڧRА8e)-[ ԐOs|˧J;'%\wm^t rwZWRZK L y@9޶%B~tPlϡ ž4{^!{0%T@)yKaC{zrחt#S5IO=rbbn^l!yX/w1YQ[,Xғ +w9yk ε+];% {fzL .\=(]2r[gɪKz)!ķ\QL}HnCժȐ=4R͉s}ɀ34ow?iJVĶ>-eI$%{ f[H![4xFu,pTjO4 #J%XP%x[&!Oq(ʣ^=r[D*JZ2s25IiʾaPʵv(0|q /5 OkYqHޣBvw>&#x"]gقA1 *mc[4g)ߢ*u8}4fp)t~\~EZ/ $[Wd_M:ǭ7[Eِ.F)Q՝O @NLK6'ԖʂK[Sk$/,Κ[ Y.! LA^-8z~- Sqeg)I~߽0gR H9 ;tzX% .iXSv i!SzHy9PrjG}WNCJF/F\1Uk;D,OZ~=~Ξə6=t /ߡ{8tpnUpJU*ȃi .>=|55 _iC)P`pldiH/¯4dUG8[.#*\y'$Ɯ PQ9{} M&6HQ .7 |-Ǣ<.;^͔] SK'6叹KٲolQ9#kWZs*ĊNXU]^!g1K<ǻޙJLsKB[,ۧ5@Gp SRs*IST1~jr1 bW2ܩA-l8{Ҟ6 ))\uKO{N4&V]6Uͽ\|p|ςSY3k QSZB+m|{zعvwzh7;a9eBsȗM=/ !~YL"iH*8eO𘴺=my2iyVǨԟPĥ`Xl\x"6<%$rJH؂)`O(V~CHI}[ r},~E9iѯDuo|sꄭ:?2;5[Bȅ T,FzZO*Wo8Ð6}0R5:AeeuT9q))=zEK Y9hq<%qT'FRCK@Sަ0[Op諵k)ڤg9z(Sfvgc/uO;!hdڰv@З)yoܶD S򨸨{mYn !K'؇}fTd>=FӴC*?3pjfsԈX$3BB|;6'v}]bϤ_k+p< "2P)J!N! (VXEL-^Qap¡y(IE 8eQ!CrJ]YMlCe rωڵj_ AsN ,4ܼEA%^(~x;]'Ws9Bša=4·0`zN?u|:,D-B$Dp-=BzuEF9d0Iv6DT. SW˩^Mŏ ;#q@{$l rsV{Oۢaz[cH!6U\Lt-"t, ȕhi/ !SM6M9c MV" %ހ'Svi&4%-{xeVF[ajixgP9gbWpqNぺo+꿋?ro{-$C0f@8zv5;Ukyje-/"Y `x7(imACx*5sQ­GⱸFo҇E 0'7_AD?Ǭm'Uᔧ1@r*0|v_͇rN q{ZuFũ-:1*CɭNSh_e 9 zwk/[ߪSgå.!1ʰb`UXdf;%"Z'݃ fv*Nm`nqKmݟ:ܜIlUiqH@`Ӹߖ2޽X 2)jYʻ$:|#.=T(8챶!4lP StޣE6X_PRaue%`0B2SK03Cէ2L};42ˌx}󠍼yH`1g+(_znY6 cU9S\ >tK,cl" .rWI <|?-!C-N{%߂Sd,%NUßJe-=GD7'=k|Sݣ^;[X|/X5{CT-P@#xkey("C zyn|) /m . 9=x|T?w* 'z:5^9{<)|kTCU/瘄.=p<^|氵l.jVQ[TuO3TI8u Y:+9F!zʙn@Ws㸻ЇR>[jn޶0{9ũ[p DXuu O(& z<-i1]mȊ^F:'WR-[j pOQliy)7X>;ڸGGVSZZ^.W)SXyTw/]*SLDorviͶZ~\74RBCR-NmA!zz[N|Yȩ[t"JS>m㯧t U lئjxwáخ\!ѥv Hͯf 0tJSuT ݉l~?NɿE[>s.ߡ 5FN6GC$gz>.dzP`VŠa[hO%"4ݟ:@ 8~}p`243HS̽@D;ڃk1 mi|ҿo8BO}xs= Ee4_<ԧ1#d!YTQ?9dK=P w7څ Z@cTOhKe%T%uO`2qq0q ?b FwV{zM^wUT-7˧[PV]Shx|1a!EFq|h#56+GXV5SPyb IDATԑ@gC~`1Bc(\zScz@aK"iyw"V=k\,-tFPݣ4 !᭒hK(iUdyk-О)r /+K;=\0ː M8+? 6SD<*ps(eOk:W>S- VSsbRŴoN.򮣼oSt)y͋pC1r䤡d=i^8OcOɠ+• x*{4IǔzKˢڱޓĩO\-&gas.qXJnsʢ+kwrkʳpXD3%s&&(~[}ʢЩ7)HK]ӏX6e%C~ESg>( #A`T&#A8cOQ= K{,w:I]&ҠmDY`OFHN bO !ƞr%ȣXİ "HBaUpCmy`Scb{kԍy{/}-x&r5DaIKKzy@hAr=.p95[u_Ys(Wa9jY={=z%Jj@Qci%0k3U߅ i5ldɾ{+[ɿ{UDVl}O4_lԐ/{Ut/q1zl2Kہ߽GC m.7wPr} )% sLtYf TYȔ=-tr4 A܃K8/2.age=*^J.)IjxgOdjr%mj1KBz`Sso{Yt?f ~з#Oɾ;PF lq0+ b~9 QjԦ^2Vzsʐ{!5򰭟_v22ƥ6tԟNԄb{ڌB̤=2 "M\1! _ET*\1rt req`ҰC׊!#^|N㜣g*NI,Qj=n2UtCj!i_ h[_Д)iVZ-`jw.GfHC-U~zaysKEw~\@˟Nb{+à2܃S3ЯZjZ5Q0G9 .k=-5 ơEnx!?&uȖSݳ9t{OZLY<>͉!=[Ns׶4ԥ.VC^}-IyZ,w|^Şo-G@$V1dVYr׿O?[ShhLa>x> ̗n%c(> aZS}-ԫj9Kk[d GNsxbvꩆ/>֩pI@5tI8#,``*Tns0&lkb(!"*Rg4]:iFr)[*Bh)$~E u95e-d,JҖ_Ƽ.c1- znMZ:MT@@sTM,P(uK@rTC>;~+.i{lNÅPJєoQpjmq(U!XZCiN74a`C R:#`l2eȖvA4lxGmV h2kʢL9LK ݴlxZbn). ^)0Ds-XąqL2AO*-!)SoUϚa0@/xB4{ yNֿ׽܈y18hl++F_O`U\[N*A/ 9-irhjNۢ&M^]\ .ܡ٣cZܬ-UH>=T)S<,dT΂YB&)ע./vD<%G0ZY[zS?! MW4RRE{.x•nq IHӒ{LI ݾiCUc`hJo`ˬp˧JYZ !Ųb8J~_ 9$[j 83'+WXHVwZRZja!]2# )YJCPk)3Ͱ|*EV\֩VXr̷|iOIYb *]SNUp˩S $h{X.62 2RS[+ -C3H(aS{>.K5Aw)*9,Sg*yM-|XX>" IDzQVŒP1ՅdTuoɰJG|ٗAlk RWv^0j M"/t/  5}XVh}%!1rqX)5*hC-P՚|΅#~DKSZR>նDbMg\~! c@Ӎ?cD:Qr rajy b/'G K/KQAȆ@  {8Wу!:2tdGirɗ>%p2d˜"fr%P܊;F5P2j>!/ rL\/OG_E JwG$˸J~_MsHǗin83KNyw BEi){n,u`X8MqxLJ2^} KPFNzb ;5Gȫ,r(XS Pm+iF浒:O%M)e` T~ܔoxf) - k:l&ER3Mтz?W$)XEF _d )Җ|=j^stJ93<; Rzw销W2J0)s~ u.Ԓ!{x0'p2Ey[8mD[u%J#S_7zk=>ᔏ<*=8 *e]أeʌ$Ėqt 55\o!ѝ6eV g+9ce#hS=UK+U-}UshV~ץQ'x"qL(SzpS> [p>AH(\LN5 L3eCMM{ :t=ϭ%8- L)l ഞӀ,;)^z)[YdpؼtY+Za{)8qK)Fa\,SR=3p㦲NJ &Z9-SՈ@.eXDAI~,=9NB,4 bT6Ak)ؒp\JM߽Ǩ5C:C{&*l!!%[uy~h׫tN sZQIX=LNԡkK:ޏuep.R넟 #SdےQy>U݇[Z<xƞm kRqZx-ZJwSJ|5K=ӼBD1 ;oi#Y.O? ة3 =,B!^zUV3B~n2/ϩ{ṒBx<ߤRB{zZe ݁2͞Nl1e2]%;|s @xcmAطeëwkْ͖[4Joxoy-ZWG,8ge)SH!Lr#]Q}S{ uj=Z|}Z/=4>5hqLǝGX~:ۉ- ZrKJU1 JUxk)@с`5)3oW0Ⱥj>g Je! '8T+jByr˖[n%j}j"Cyߏxdgt0&C-%S1Es+K& C4 by饂BZ(:uKט2Cڨyެ^gHJáḦ́rKFwV)[iV]D i9ԑgK\>&h 5XL -pʬ$uT]nj>}( mII GCdc [8.=j}Bm`q:@kzNy)-p@2B' s@=>ph} g`rÞw+W 9〳9!AݗM Y<e5\^4j>S9?""EL~g$37,"Жng{47t[^zJ[2P;J2@OxA ʥ9dgpL#2'8(U~5-[|b]Nm+e )!-E[O}}-Wm^!= Co[p8&҉Ʒ:7;"."SZ m2j-~ӡ+sczLyUdJV]8ng#֦fyGqs98rYuzC!:}Zt|BjO=tȏhySppvd #:~_ Un\{p&v'CP-N "ؗwU|/N?,%6.lUU>"* xKjUwAQgY 9U-P\85[^˨/Lốp p˷1}ioآlŏPc*n4N9NJ1Z ֽ~cq8ԿݮBX^TPmLNwf2Y=KGQIz =ʿ|M} 31K2 dHH\@V;]whQ*ZEHKC4l~O:+n?$soԷA*i tqkϲWJ7[lJ;cN|٥pѤ%b F!*L)Vno1釦ZKJi#R<窬MoO3v_ƍ%af{5؎dB3+EԮe^y==] V kR~m\d I/"Өz5UO?L:@mP:^ʌ)lӳD_24daQ1 3N5V;EE?yPCUjH0+0>S_ӼtKN+6r:nTۦ$lq ( -h 6j;S]^ҟ)CZYBrj C- [f]Z]\B \:U+J3,6M΋ziRة@)"r7Hqa}KKpvX, 'ڃ)'W"LǓaMK@  Ͼt꩝n`KG # a([ԂyMв\o 0 9ccS F-[ j3G2[٤65xaF0|K-[8%-!)KӲG/[Nt:C{nNso0 IDAT[ z>QAi z) JSOejˡ=&mt}4ô :ae[ G)a-(Mt~D#>b #ҲSK>W{wGC4S5 @Zv۔$Q40$گm{5,rJʖ6-[&.u*czkRޔ5ܔ$@%xv !!3$eSn]5,C*R8SkĕVl`9-9aN1 njg-O4;e){>'.SvINeZ=OCyX*lD!Oثb?PqлأdjA+L"ESK kRZJ]pZtTR_OOp-i҅ںK 4u/-z٥< _۪^mwˌ=,GWǧkG @Q,Gm+ :?2Ċ Y !1仌Cz4xUX`| \Ϟ; ިF!`jᜰeoRzBHvc԰$yzf`cnEtjU\WKJZ½IH[R,ƊX L Ax*g#-n"ܱwRK1zE|έ-k}^\*ҽ5=)1?cê7_y)|!5& eK$,13'^Em5 [t;^e omhŨo-y YR 1|L9-C{yA?kL̊^K0(ʉUdgYV\ 䪤n/tЫb!/=䩗fWsnή-9'/ QlyM1$0Zv- ES p{e+P^Nx_&Hli0|UʼK bHV唖[何N ){ a u\EVTrH%εVEnwXqԶl9UU7  xwUA=?| 2$E2%1m4}ŕ~CL gm§  ,-{ziqZ3è\` WV7!"-LjQge/SQᑔ:iϺ2PsjcW=KגꞤ lK+a&Y}!MseC/˩ت:e0eޟB_hڄ b%A_cfE-~YSŷ|[ LXhR gnaPOԨe-4ju'Y/50Ku_5E#kPa:n%S'= ٝc.v;P1TT҅늁SeV네7!r_zCd"P ap9Ie8Z+oA %I_c-[#jߺVc6&5٧”3bN:$=C6qrDuk +%!¼ՕmzӼgSX$1z\bocg]dpN}ƒBcT 1"Rr>Q% ^/sÀ;oS!2G8eO2ղe'0]dI9*J,w.ad5 CI}{8F43NynE.>lS9%Wz= L@a' ;\Dӊ B%$AZ-%)>bO`~ B|N6JK!֬讒,2ya!1я9 )[j>P=| ȩS8eD$z`[@rhQtL]uEVcŦ=r [WRq@ pTK؂bwYKS]yctgV -cbPHlޣ6/j[A{ Wֈd%ǨUVO^=ep%RY FɄFSnUQG19t [[T$QR-u؍!V@!.˶09BJ3~-fĥC=Eøb8UI j]w\-Quj/`|Ȼλ[(ؚPw_*- wfY[B1eau 2k@#ԧn[r:Wtg('xS\#5$S.ɺqeќ%!Xxx+r|ZMj:baT Qu.=.z UL}D ^r)jҩ<N qa7uu\jTDgd2CIr`[&a#Slb]3˖-{ M$Z&\`#$S]59+ri|&.^z%þЬtr.D"͛l kMPAqL+*ߢ)%q9UѲPnȆ/$?*h5)twb1Y!p2'PH= ,ZȖRt6p9VLu Kl2E0a_PS{NF{Wo4ЅOTgH!HI |z#xHIb9O9ˆ^J@4pP:;O;ub) 8eg}.e=%w"z<{r+ҡ[^G ^{HxY/}d[0휟s(rM 3>ReUntx2eAQhd?t]R5E\!/wdC\ķ})+ͅ}!7exx|Q o>n \Fcd"B&*W;yw+GU CyCgÜ;lHHr DٝU(oGݲrtb+ier/ Ud$wSU2,J Teo o9peCeӞ2*dV!!F2R*qxxqGt|:>Nj%5X ,HYE~)d=, a <594?(lbK3B! ֗⸔H}@sVB)@ ͼYni$gR%܆zPX:-.[L$h6$ߣ' 0̑`ȞS. Q3!(ĝJ0zUB `-.+" znK HNB(^C[N2臺l9tJTW/)E,,[<,!S4NX`QE$Q69d7i D/[Ѫf{x{}v_A;o=N}5 !X5i@N%RdatGzh+琐 Υc0gSHj%ʡ5iX_zʖ9Ei јmOTai%&o‹穴xgɕgF;pctܼEXˣ>JwYaWz)g%wcp1`CșSl )sp+&cY:;{X/F!* !S^wjANܓl4PaCSqjJդRYNLw|NFP).B-Zx)[-@>cw=\>􌜪u»ȳGjQz?toc ~[А4{sMF3xjqQP(uVnD-͐\-OTU Z~|I kHL2=x]%[^vjSǤWrw6C8J"g92eO0V,- ִ`RN Ka a,L&HԲ"ӐI҉BAsU / K5*=;r 2r+LTb%CO;_Krˬ^Дe4nK84仅 fdKFۉ p A#lQ뵌ԃ3=PFc)L۪wɪV~ PאNlBΔ:@U/Y$ ;H-<\X eB.zpcly˔AiX21Gpe.\_8*(Nm1[A7ڲsT^2gC+e|^ ZO:5ٺbY9BHl&(G9EjHfz{NSL|N6,;@Al96^2"*xi\j؝.loSW Rh+Ǐ-{43+dT/ xBFr8*ʷ1*"@ ö8Зƛ7}o{aXH-hTX$~GԝKa!\)M, A4ھ[PtQ j=PT=o^l9-՞q _>MЮ)Otzd)Є~);=YUf.zBz1@vw.Zݺe~Vi:C..[:zec IWZ{) 7Tl˒GcS31i.hLi@moL O9?=d W.UFѳj!<ͷa *N |Ge-tGKҙX\rQ`Bn})n11L+a+t3Z^恟)-mըXj)."Ojo mtCH=Z#H1,[:琕U(Yí5!{gȐh ۤJW`J*G`*ہe@B:kCPMreST %OBKG/+͝xd\w-Y=D@?=_ǻ~wwE5?CiZQ-e{Slwd `pG¡BЯx$ێ.=\.#d2.Ş2ŵt4[N›O0I;1 b\F*̕)oYmwNg32er^KoV~_ <–`ӧ:I:5EC0pHK|=< <5p(p yf(#bU)S we \{O){-͠rSx:[?^V]nMvPYDn$Y.>/R8ulT{ULFAf:K{Z3[[VY ܊J@M"XRy Yo˜(2na3r#$pB/Y 6: efJَ)Ks7SA%JQs2f#HKþ%c|0o;[<9Eh$>Ed_z-Z‘xHցgW|I2pT=Ywtin«O=Ԩ@J?X*2050ŗ]ʪc3%-{9ʻl◵Sj:~LǞ-2RK姏eч<;yFZR,^zebKGk8 U-,P%.hX!epVnչ^~j*|"z盁>QRcK$㍨_*5mj%z83I2Ҳ O)Qr ߃CGNC. \lɔ}IKfE!hyp)dmѮ ]a kYC*Y#ѡ{̲j$KB,]OuZ|N-8j-#PؙFԟlE=޷Bk/]^ׁ32B<o/! ү"-.; WCCRWbGl/#bQY= B(Gʥ)("ub96.sUġ-CN;̥LLRӲǧ_@0Kwć#]B-A*i P̭Df_ۀe iƫ$==GYTe}ІJQ fZtxn#o~sX"9ʥ!;Z%,Bz"z' P³oTrBS nڃD^^~ ǐ]nt0GtS\V ^̿?k45d5Sfʥit {a].]ޥ9 Jh!㞟L t[jJnkqSIp %}ZATG{U \Z<lDf!QǸq#j=Be 'mҲUz,q)Xpz=e)?'tUҖ4 -wj=LlWpSq5{=,V:h>BG.5AP n$g--$n&NJ pP-٤'-![W_Dij!J_xIK{i3, ?g =<_xgXslȣ":ʁ)ZY/tn2My&5ùEz#>S[hF.{>8Q-vG[dxߘwSxEE?)ShP JwV-%n+Wo]!9Xm*[7[;k Fgu*ŵܾlV@{u=['>2=tIE|Ss@ n>8liv ڜe/8YHb<K!g+?\xө8EhC/K -b˞=`lK)-4aHxȑrJcNYSd6/41eh/0_OH-(6Q{8n~>HB.64h&2P Sh,IYgTVX|xeϩSD$;zH*B#4[B@mG z9\Sv4 K!!, @ kK;(`[+4EJKրȒ$Iz"fT,@ ^|t$wwNfB#l]3##G䓞\|mQT|M͝jSY $L,rY\6YME-\3I$\&C׶,V7+f [99?n&[-=}9ȂbZ?q}$p.Sg2qMU6f吪|*>+|VM:xa{Oj| awa`8|شa[F\ˊ\F|@O{9P:soqi#80H|RFĚJo8NJ&{z[H:? Ouep[5|7 ;e|X6΂"qK/H*S i&-Xp1m$AYMoz L<,(|zg^Ė%k5RqQmV_&~޼쒾6@:osb,͕'|I $Ƙ|UuM{q :4OjJ$ wȂ=mck/Miɤ`4: w5Dv2=͗u^3Iltm-CN[<m+M'U\ ]^T6?6מO? E״Yȍ[6\?{Xц%ÄGkOOFe)P4> V|k tl'|ɣ(Ζ^۶eEM\cfsY`K)%j]=v&Z^bA% &ckKI5,Nu3 fNC P*[p>l/cfKK[1;WX*-ִV.a@$o*P-KTQKgL-k(jͿ_"|I\rxBPiZ~[^&/ \ Þ{&l`cQ "ujؔLMv /6q-Z0 e^HlSf?|Z"qc)8&5&l]c'7%HŧOzP ;Y={x~0iRX^+ e-.T}Oϰ|;>T@c030h;ʚ'ycXZU-|KSd\y9QK`5[\԰2֎/i3tGi@׃ɹTk ktX`е%ZMo{N"-4ni6tl|M4rÓ~IMe~pZ]ϟt d~OmيOROa-[EvV+%M9/GM &n TG027@[ł }-&6:x8~Fb4lBO'i[8- aCLn90p{-ziO3S:/߲ӔfTA_n䮇KVy5'JP3/ž }MQ+R%]V^2kEkYZW@jL{K9M?oBSq[29%%U,׬+Y~qGĒ.zݞ߯w1azqb-4/N;_RrMk{~b v(uM!"(Ӟ6j|T6f [N>Z6I{& Yam ek ħ'7~.צ Vd?({!6îfM]\iM=kt-kNpZa-G-qذcFn zrگ4nDEV}0 Ӯ!?K zT/U̅5m\*/d-Y%h$P0dχ_zb/[.LLtՠ.sOc7 &yuSm䰧ŞlY6mJ> ~6̙2V4ഴ]i-+e@o1t:H+˨LvUy_R={<ցe TBa ՗s%)*oFieп/:J_/2p\.:PP2F/ysi.ImE*rr\sH]D{4UG]V,e\^ {%UeMy48UQay[nq&)ī 0ه7gK$ӇQ&M6< QFϖ8)=0nxAy<[ӇibӋ9|ZTY}$oy/HP=ӂ#K1/uuhԈc1F~O 3uxNZ[> I+L+d$=ɡĉ)*!T+5.|BQ)M3I' V4aKbiʣ:z ^]Ӓ 5wؕV/y=@)c}KBGpU;_eCtXJ|cä_aE vY`g$5B d bw,wyiqpqnW x6YVI*O-5*qّ+ҡ-+%3E!VbA[s3)r=喧y2M:mRvP.%Ei`rۙ0qiϝ%J{t[zJ=M;ju:@W4 O7EYkT׮Ki+`S.M#kWQ *-!MG jLS{ K~Z-ueޕ8 :zȃF@w@Kh=L`"y"eeI4AWghH=ܕ5c d W=RĮp qz?/>L\P] ;:X|1TJۗUvr8zm+<2Mڢ=h6iyQgapCratxnyTXB R>P>RVPʝLԯ&_cT}RO|Uޚv}^q6s~ډ?iXeӞ8:>ڒ6&?[O-Z*d=[N譥<'=g&hE▗]ЀYytk+5rW,)7W k\Xs7ːX ^V8R#}4u5Uu%zaB@|ZצO0L2b6pS & o/kj)AVtq-`Hɣd."4f8,(Jv|X&gWb/4khu<]Yjq/_!|Ş+krƏk`v:tV梓3]E@KL&q;]`8}R_Om_*翲eiu&$4ٴGXOfbA΀-5-y5"kPK@pZϘ`GK446{Mҋ#*goYTk\va RZѲ&{oe(ٗi1&/ pO&4Y"%cv^ыFzp#t> 6z}cV Y V=j62w}=n] )M)#WGEt6k7j/(yE?#ҊF%I 7,گ] $_W/eX*dU_<&(|]O<}aHceRi Oϰ [NLyˮViougtpWSf-/=<^:Qݞx6'?yM:$,j\ز6 oqi5 /`6D= h6=T:lȵbpʳʖga>oYUGSFڭOl d"'M:,c$y0m؏8llLKg1li t|)=*y-`x& ItO_jKاOԴW~dZS{gXzԾ^U{z|ױQwy /۾eufMHQya"4q;q-Xk%%D[%02/B[lj侺߰zHJRL~4"~ؖWp}~iAq0džM{aZ$t8p򖿼Q{%/>|:|xo jh?'ⴱTh[[ЀmN(gVaGG+=>ť0V(xilr}$gҲk(4=sRu_rI-j=ДVѨ2 Z50:xPSϓa t#?4Ү_D· LNܓk]O2LA~ӷZ`oѓ{O'҂t8mXϰa ýQzs|Tl[nV2DZ]=mOCí :3# [ORMi]=AUB +Ey&`|ڴj4aqڞPza.4B<,N;UQOi[j*S彙\"RqtVO-T8r IDAThJgt4[Z%6]6ɗPJn:n.Q)sjl%/]\Xaش@ӂM[^4<'kY 2FrF8yOW=ž*\tϾڒb~%l'Nħ_G**-.+G[n ;my0Qe,E2pϧj=LɆa[{&ienx]==Q[n93L)5|`뗗%8lqb45eEf/Cv[KBb=$i{$b]GXJbAl9Mߟ^·mj `Ӈ5%*iɃ}yږ" a+E{b{g9w%RW[J 2J{%u6-zZ}҇Pü/Lh3_~uF%ǭ,թQ.L)%kH9[ldR\<_2PUuIh} Ƃnk40#!S[> UOi[Z72O˚7>&Ӷ][xch_ n,$pV&1/W^^mVa_DMwepOimc6=p5Ӓwȶθ oYwY@c%ӛJ!R"*W<@8햎.%S0 aa$H v6cV72]~HZe41Ͱ F45}Z?̛LRXW-RYaL6lD=´4Xl,}ӕm^V&rbI<˃X㺹wnX^' EZ(fNqQLw\b<,hs6M_}jV aiT*V?ji՟vOiiÅ`rמ=~iZ['5Ͱ=wl:mxY#-oY=Wr]+XGEB+5hVȮ._M?>=I&ϞaoQټz5Kbܣ.aO^Ólu˟3ٚ&'t~?cW?ڞ=h*ML,e]a{V.Z0V*4[ĉ2 Rmc yu e|c%q|qniڮ Vţ\Z=X# "Ta'nQӴ}X}][> -ˎrڮ\?Ѵg&߹r[ɶךn"_W-ޗ2&DŲH%vrkA`254!5$p=Oo &]2Ul-Mqi:[ԔVô&OӖS-9YN-1NLGOKAaoxsUms5^ Vj-J|d-VC||?@u=o<|EN 1?>鷸{>Lv9ޣiˠMU[իM;6vm?&Ak8M :ǧ7 sLmUx>mϰWiF?q2**pn< BÖto9Lt 'vqG8o1xZɟrvE >͊8®!])z˖~X[Oe]qM:XtpB[]?!p͛-Xua}--IU{Bjגͫ8sч7U5'vJT#تsN6-'Bprm+h:)>yK״AqR-!EXkUsE2lBقO7mC 5F;j=ȥk *@rr˷0<<"zrj9sn˪ Svx[xsrS˦i`ǟ է˴QZMa= t90Q?L g=Qz\I?ιip4|7U߼Ճ]o9J`,Qœ8W4t"3|^24< Z2:O{}^{$Vwir{6ocd- = @ӏz+\oct&Pk[9mbaO?Xg=(Wl_xk:p`" 4uXg%2 U$T&oaBl?Ox0msr+R,r3MO>'{V@5;ճ*b]uS{A2[erɗS-7 pxd$X+o*m*,_i7$p2> W>i?f() PG[u2UFi]W W[aM*➛zAϸ2n\VuCĢQ2I.\t0V3K`Y: , N+'$T f-:gMr鮽r-napbPh+cipHԆf?Φg6l:oI4._rV' h#nkx rjiY +> ׾pz!7nl®%Wy}GfJ)^z֚R?(V! K'Ų% ZFOˊ4dog[/t_ E]D+àIl>wjlE0{vlyئ<ÞΫ SS0GӛzRH45U,Oh9 M1m]M{R3<{L|˜p}*%W>JVXנ]՗+izZ6Y`] -?mϏ{+_҃X<  a+*r =~"`-ghR5L4}mjs.5֕WA;XWg])mLmSI#:=+/ J2 `\kUˋnkM8÷No߂ 0ʴs\MI t(.JNr~z=Y55Qm:jGtĕzW5<+7c~$5-J-`_cTc9_yC]ov鞟-4ӕ~ڵfvOl8Jq{mN~Xջw I?zvUï_* M&Ok ޳ÝZwMtm*&XC__>W4K"R=ݲ»ْfL 5 3*{İi`m00(N9lx.ziDu&i`hrDOUc+a%p>F6$ v5 {n DaÆD8b܆MdP4rimZ]t0Rĝ^EŎ+9SAs W^bXQM&e]7l2Rv4ìi'\a5ynZғ9l, ciW,Fz99O[n^Yl9ӚZn6_8&Z=\ӂг7aWt"ϴkد&lu)%-\°-wUnOM N1DW%Áajg_>iH_i]nEz<,to C]:l[= ܖz/[q9h2sТD2]iϮa=J34`yt+B0]ો<[яfb讻-Ui{oXĉzVLZ_0϶hDv+l);NX&L > !cc5b !Sa]cʿ-ֻR  BiWOn cWwkح_ͫZWyIKPcWMVS =Wk%-8os-qbӬd x JZ!z8glə'(} {peL|Tê n1 ~=;LOc[îJ 2ŝEos&ϙlx~L?)9Ͻ V;zʐ)JֲULMaou5*]^p> :R!cqO%ǣB*zWbJ\2Ui+N jq[Z<̰wYv;NՂ| +12Z=Ӛ[|9oٳԿ4Ӟ?dAeəֲc0ܯru5k/?[ūy-.m\x=UÖQșE5I<| `/yдsqKɮa3/zl˰{fMOC#ʽv)j`6\+E>P㯃 7j4XOsK3wLv}{nڣtڳt=>W9VK]@HҼumfD tR.h ]"U=7m"Ǧ.ɒZ44`&Ȯ sѪ#NyN)mL aLvs69 [lٴ1 0nI▱ e꡺nDMn Դr58͵aoI&G;0Vwoe$-'i%jKq j_qi {_õW r$ɏtig+F+G4{$6➮{nY @.?\m]vT`;LuE4Z " jIg}Pj$%HX`Z^*m .d#_ ӷ|+tSiQ4if],ckɕrV״QS 5/4gaM<wS0a"^"c3r[2| >O;V]\:mtU%Ų '$L aA÷6pAW!+=OK,{;.)&E0N@4Ǧ*Ŗw]0}[+@D)HEL;yQQQ6UAls(tZ4BJn"܊Q-*[+Imi_%VJeTY)1*ͦr */n=FG%W̞)-Mo9{~<ۿ6GYrw,ݸzCƈz%1!t?QNl $a<ۇ^NtPgF`MS6U fǁ=E&7x1Vma3^2$L7}z/ qZ˹!aWW plO[ P{|()Ek8`-ۢ͜2 0 P^3%+eJ`1Jƾ ի4K^Ey[HX()_xjs[^&ppTWI[ pMe>+OrprWC}.ִ={bPb;_OD%jd8܋Hh}X9%AJ&h˛l[&7]d؃= -0Uk< GȺƂXi5<,hz{?= +L,gƞ]+i@-Њ4zңy~@]Ȭ#1NHY7,80<O~ALJ};t0ʡD$MP2]1G і^C{W4a@Mw=Po?o Ҁ̷6`8>c ذp a00G1kݰҠZ]x' \a?ߠ_]r>t-0߮jPl{N665Ou)s%ۯ+BEZE l ZK Sы@O[O$)J^y9Jo_ Q%EMhzZĶƚ]Vb&M_ G鎦:*Ƌs{iXco~L ǖm/yϏ>*eX ́_u%{V(9ء@s]+S{Z~7; 0ఓB9~-i=f-9=n=iߎ6?CdH) BF:EAKŞ=_槽;9]tW|ґUCk kښW~] qwUfΰhÀF*99gX%`0Xi=O7G2ętn1i Obv s?<}u-U_l ,nX=UVlr}x Gqv mR5`Ӿ4/\*q]id~aI?S[xa!'emܫ IDATަOSB+ycGdjVRGiE(vc˪2eah5tط L>, |zW5"LӾ?۞OK,? |Stcr"Vں>͍oi.hK([,;(dS=Jweh vzW"L;XE^r s 5}=OkzgdSoɋ~Q&)1mSrKrfi#ݯs[dX_A4O{ˊɔd2ֿy^lAC.'kxM귺?ukڍkN3\+2^odsk ו$Xo[Nőb{􁗭GV4j=[Zcgwş~[9,YOK9ql7({h+sGI(m}*tQU0 h1(԰\sa{a뢳6YO8< zfH2_"-h,Iê>yI2 בH-tӖn: 25>irɆD"j圹@D::6@>~|r6#-oƷ͎pa_BEe+AP٦]%\J*%D'GxzNޕmYW O{8z4mw4yxG&n'P:!h0 |Szi{i-4 iOf2}[Ot\j~il ^4׼--\\]֜zڕR@V/\uKTÓ-' e=Re蹎~Up`+ߜ@t1r1Q\ξ@ӳ>r"5u*%ar}zS|siz4m嗝^`cWnepW0=ur(nX-|˾ e-vwN- oٵː2q۠0qj Ԫ3`<]? <)랃| o9fnmnkd1239|`K`ɖkH۫9X"ք=ۥanx$f[Jt][v{> 5uuNBNrPWJoӖ[^3SSʢ~+\nSê8mw<ӡi-/Ed+xMZTlMxQ.C;pRv`Ӟv=[~asiTmݟsL-hOGO5}Y KHrtgkioі 5N;m:B1 f>SZބ,@9둨`,sdu , ;Peƾyz uF՛䃝%U8ml'';?s˗<-9D8-^?i'TM}& `\"ndN 2hlxXO |ZZL>laX~:^qu_.WLA'U?㦾p5LwE&}>^5Ⱥ뼪!M0+$nY7z:#P4_2/d/{k@{J1y\،%XɁ.Ӧ}ɸ~ZҖ+[yض~O2\Nj'}4_)lr-G!/-?' 2rWˎOo545)2BГ{e6&W&8+ւЖGvzǧ{L[Qʆ@4 [i@RiPX3Lu(Zr',ba>K,gEiydUPJ I$-Z؎)[@`'d dLd* ^Ot3$>Z]:bQOðz t Ud)_^?ked`^I:x%vYC]sok R^.-Bli*47pCoUQʹ奟@kZ)Q7}[VKSCt-,)S -Jt Wm qOT,*K _iui='U=4y [omqGJ-djOy-Eul &ɃzZnDGbؐ ] r -aO%ŮBUj+_.B)k;[#|A,nW:rD=д%H8'&d趴;[gfÖ[ `&:j }ݑ~n2 |Ln`v!hn:Ҋ4`rωmp]Vz5h5f)f/Y.4P;pRE 3VH5wy͙_xQ{VebSC2XDR%[&%AO&,(lգgX_qT-Nq$O*9W|4` 7cѰ$e+H"4r}n[i[~V͊{&Ok#Tn;!0 N d17$tDKs&#Ӑ+>K) xL[ YA˴oX5w',qχ=l@͚&-ݶ^-<-E2,'L%X{FݱXkà00`fhW5ʨz~+965)d 8а]Sh /j ]!y=,Ծt=uLQZ^9Y\õҲ%jn Bؕ?>;*l.Gc2Z54eW O[5*7QMN; kNbyڥ-Hˣ 'oQַky`nMnO68AuoΙ=z`@X zrP;qaw8&ER KnfN3L)U}u*]ך0+lr7lSW7 st s<=w߃~z͖kӋ410i`pV4ǻڿ_լ|!㯄=mƓ`Yjk0Losc tHG(O (p!04Ӕh@:mZDg5ki&i*ǖ54 LeCƦoA|M$ MXO^9}y%d]Z|@ut Y&:~hlm 䖥'Y;i=kS LV)vRY&/$e}sYVo4E1{q=i_3"0NV:W$ WwCn!2v-Kh`* =ғ}ɋ$bk~]c5kXFTx/H0`$mFz&/h躭ZWb9pEUn_3BySXgV֣)ɓ au}z 7=YDaeOͼ&q\:p $RhfN|OJ {XͥC݊GbRP;ALL5R!D= W!ʪ-D :F]ú.Y_SU{LO9l+,*9l:QN\oYTM`&bаW[Mjׅ^:׋µ䇟FLsM^<4&i%&#Fݮ*X.I}=m2EZD}򖽨tܡ>dr޲&z굉 L!hE05> CR.m OnVbla2A'iE$Ǯi-7KH]KY]?>Xɇi T5h@~]QG4 hKU^JXY HC:ߢې[M-#-ȷ@ϐ#2%tVb 8aN6y:uӿi%_XN>DDi=ŧ~I˱jUOHk! fw@[f=șBOL't06+7~[vցu<p@"jLSWȣ@`:h'~p] tqצݯ)dm`^EɿMĞIOի&R-M0ngIT<#]RW]C,zZZ^^ە[yzŎ-°{&/S,E-v!M}Ņ+sP4vAWA+y`r%ix_osC+<4dȡq Ȅ3y#[:0Ga>s߲}G]?)au!K埾EA&m߹G &tZqؔ!aO^m*6}8f\~* lL 2=in3CEȰ!8xϴM{پ;Zx5M"Ac5.^Jlϟ= VgcQfL'0- ]hN۱ĖmH8ԴWN_RZ~Z{q뫤7iU~*@-,w]i_{k~zt`VLg}+'_ڇdٴ$,xFmZN&VҞ6qˇ퐦!N ѾEM#]PV <99aCy_fb5Mog(/ɞuo@+!w_'0 =.y0AH2qͪi49uIKٖ]oiW3uTte daOƟWD#}p[A x:GNpǠv43J2I{΍ sBagpqK"z]/Hn Gv-fL>4@ۊy=JGio,.^M6c *h/\d-<ەV/ܪLvVg끱0 t؞{&&x;+pOO'lrP/ޯyK[[L4VOrCpfEyD?i p.r=i%z,ZEU{EwjXU\_eμ J48_'ö<s]TP[LiHWЪˬ7Ǯiwu@1A{4}ؖ[zہo0%ׅ18xitӿڦN.bE@@^{&-]wҴS`_DVih\R={L>}]M]N5lPW*˴f^,7 ,ha{:L3OP#a=bj0t]vUrld-p?ɯX_Y97vj5u .=u~[%paku-F;V9Nmi17$m}%/u6(i9U^\cHuKq5  ӔWx9ya\uJ != yp iei3m99x&[2~Oދ\5{t~ k,ט)mi?p-'OwsOߎ9q-xzCM^Ը'$kdKk-N g^C"AV×"ߧ(|jo[ַ.:@˛@pIӠ*D&4YDOz2OS+ lH ;%b֪{8 o1R<`h5uz\c຀+sȳ,V_Llj̓Q`4azx :zA64rrr׶ ,tL6=T#^W:_^l6lpkK$]{)ʗ"yckhՈ+54ºtB1 N6z˦tӦ QV& + wX5pܳEj:- ; xZ=o O7_@{km}4YO[3~E B 4BKTJT鬠Vni <59: R9y-a1!q֐]KJJ&mkE/zl3j3?;Ѱ%}Kgf98e&y4&ם}K#E}o`i%YUV5RX +毳$s0:}vl6!( p5Kza2{v?9#`4 AVo)~yEչr'O:fӀ*KgP$?J q_ܺ:8k`ӱ*9U6:0ݲ~jjCaӞVFL-/k{q ~@K:` vi%wђ,?{mB7iaJ"7p[>fbB5âȐ"IN:F9&Ll:\KL[* 5lzFɄghx-'o10%L_qTP.`v$i'i>&̴3 ąlkOY(?t-k[@2hŞM~.+lR4_ς&oR6fx{ֳ_Gԫ{jgI'\ё-F{X9C^oI_p%^7{LVtyi'~X|1u^]~Uv/^) t\c kJqfzefB,̄-&P 4H:]&N`L̹3u$?-WP0h ˆbJ IDAT\Sɳp`JW.TLirX:O Vy hr^tx;>\?i+[X:WKFQxiI.}Iz]_ybOwPFV[\֒iRK <ړvWZIT]P\OK$~杖w\$qִ>9lhi{0|f-L;?oD@;txK @X jx- Cݐd 8Й8`b&5![LM`4v劁7yq#kXӓaocqEU+GjfNQ -7Z ]-5MӛF+ܔS8&{iϴxaoY=kB|.FnczqwטaR+/s-jc~5/ ^ݎ5NRWU4$b⵨ЕUPey]M ɁZ+z{낁]`~aj/@ք\{%ٵikhU Qw5ܰօrTN$p T+ 72o!HzNa:5_KLQ70&3ETC't8:[n!tV=wQ*RxeS=߲K]דleV ֛mwW^z.Ξi\IV*^<ȥ]x]g:Wu /Iq4q`&^b%;˧zR+;J$MOD+ Kڍ*Vca ~կ"tm’;Ӧi\Mm-3jp*ai,\ um*V]*YYˡSz2 3m٘ hrm ]%V,سƄKi-]рbm[ӞV@W;[G3OAOA-@CsGA:aIn˔pvL*:L|2AEAL"Tm:MK zzZ%r=\D[:1ڮNL( Aga8<'nlF44M 8K. *b- 9';5帬 ]Qݯ@׊֡K*T/ÄXZ}ɚ5WkrJ7lhpɗ*4ׇ PW^3%cUIk]1lT׏ÖaB%}*V뮗NjRzY'æVOKZڣKVj%c"xţ%TwZ .RWֲ:"W<~r8}-.WOCϮNghgpzaKbJs-u'fq2l |?[-CЧ v$;vk {0<%; Ƈu@]/tLbTcMfa}[~4*QGR?l5mӮdצ,hyu8 \f=$i^y&-P[G8dvK,(rWHi8jV+4u~ə.AruYWmX_@kWh00z QڕL> lj:ȮW6uZXO/vz! ?yW|_WEÙ%He\1N|4Ol|T|_R\b^ 'M{= l{oHLߋ(Sˢm|9KkmNd=|}~xE >Ze|򰧹~xbOw73.xbɹEr/aZ9d"y$wKZ@%]O>x[v?W|AM/)M=Şҕ:RזR n\nImB63;)@7&*ap>0LE?[$+IDV/V֝d2a/ i5c iRޱ.uy8/t%_jV!,1+-t-̚*%aqT2вV53+lK+s uxb7O3L Y 3{@SdTsu*d5$/2Y5\=%:ymY&- v3nIJ/ߖ`i--k %>9as ׳Áy|H}GN>L䮈%1ZȌ>u>ē?=>xcK]t|^F4% ka,yP*<,k9^ -NH6ZY-4Ui^6YMh&P)4-wZ4+Y(ϕ ,8* *~mq/&@3_R\<_nIK_þ\g:Dz=5''6Yjɔg Y=q]e8 B>DÓJ$UBaϴӏ"f}h_3y8pBϦ-׮JcXUWqigg^jO!o֐ΖŽcaI&̔=>y,2`y&`בg[ZS596m>ZӞ_rOw5o{?xQ?N@8_=>yiaK4%\=DDzv؞HÞ^&L^%OvH=~;{{O-_-#ɗ6YSs}x\h4Y5@SI`O>4MnzWV j8 #-SAWeLOrPW-7bUZfU'4:g|eMP:+w} G㰗ћ&ο7LGmZZpX+Sӿ EeG}>MNl(M6%N8I~6}#34 Ж`sKX-Q#ӫM5 *//Ȱ >BL3`Xg2fk dtYS( ayZJv&KA-O~0e[tVK cEi]mYe@ YZSz,⤭c{1B[uK\=6Z NN{T8,i{<"ᓁ-JaղX`Ie6z|]G@e ^ea\uּ6l*>lMq#}VUS+)WյiO5xGzpHXue,p~ڍbO< n\߶58goP?i?e oar-krݳI|GsOpSA6?a]?pt { 646$Zبv5g>8}{}'?c.˦|Zq25K3@,Z@ 3D@_6g0armn5a*mM/lV'#'e)sUެ\"p=zbHf [zh[@t® Jl֯d՛AUY-nڵ`i ?e  "eק/Sw"+V:v(*:VQ?ڏViiu'&2ux7$l0$}apbz5?dZIƹebizyO-PVd)w. kKaQ vg=(h˧ceMN2, i8 H~ ~5q9vyYUwJ/kׇמ{݉ :"K\W"K$fWBz3Ӥ\U5K2U܋ KX]3\-䧛r ߢv ْR(th-L8Д]X" ԉ0k:xXw0jn9h g l+ /`ˀ;dc]JYkI_˱I&mE=qu˿͚O<[ܗE-ɒ& [g+|kjWn+xU!2Lli8Lت)]^P+XĬq(8L]Ğ=M8-q.EWZBHbH ,2մe:f pZP 3zGA|ir33SaM5 tZpS}[N|¶2Bb@<*u8Y|?k)_ ֆEȣh*(g͸MMOkʸT{K| h*{W[Ȉ劑ZM2!/I_5oB\Ua?Ozð]1&U<=1ش=rJ6 I $N#^%isSU&j R<<\AyZ[ =\90Z0ؓoQwMдeϧ6"qaG= m|"z}KC݃l,i7珶e=M?<̧apttp']?Qc44==_v&l {&_=7^[4Nk99tqIڂJR׍0ki `vP$A斦 ܤliܸAY`ǹ#aX(_1X}k6~,S/qDZ&9Wu,zr}]̿VX֍zt|Zg/}Fl5 & c Kܯ %sSٵr|'ڲ8Mte\}ִ0촞=mV Y'1r_=-CO_.[ aeVwѐ/k N#[2sԔV80_CM{yG#\[Ӗţ--9Դ7V4?ɐ?]MZ yE%- G7$]=]/=O;l8'ɴAS0{z$"0]Ni䴏~t$s4$͘nz8v[mFzBR[v>KeL<" tt8H`pXAĆMqS5޵Im7k(0΀X tmðD 82F'OYRÓ=i$ٴXͻ_zx4 #\^'|׮=x$/70՘O/%]a[n'!k a`ӦIG׵NU"ZOɖee7ђzԪՙ!ؿMצj ^Lv ,ע.ׯVf IDAT׻_K3iòrsrrnh&}p[Le&211mN 1ӵ\)=m陬pEeӹZnTϰɴdځ{üVzK\fRQįe[8X(ʫ9\"9 nf`Ai-=E+ $?|z:ߢ,Cr49lrh=6m9,)6?e?Z{|-olL4ߦmYG,Q{F{y⑇˟>XlzO(z9 Fu='Y7i&꩚Hڳ oa"NotK4uϮMF\YQFI$h4 $榓3IM{nb hK:̘6d`,z*08y=!VmӁ=|ݬrDRxdiM)TCп(0-pKĽnI1Vƭ5 N ma05bsёbm:s]&&;iY@q էaPg]MaNT+u#teZ{r]6WА__+UX}]o<-י`r0 ,- XBC\ܢi[5 ӫrqkLw0Zѹ<[p`Yh}OjyM<8W01i&~p "~l9`S.gv bg?MM{񖳝6%Ov@al\H0-'5%m9@ [9)1X&'{Jr4K0996[ŷ㳹# Mr8'%@ 3&`p>U_L>Ҕ@S(BෙZh_se.b,,-~YE*~Qau~e+n2 dB=שj뙫+ߗr194,"\,pMC 4`WG] XNWkk Qhmj{M&2et\>dCm:Ӆfؓ$}cpo3I s0`z˺hԌ~NV7 XAY@p`_ԉvYQG~ύ3@p.ǀ@ ZlZ=ذRR%aȻ>Fu{b:W]u MVٷr%?aSOhiz6Ϸ@[^V_'N\}/NSb9}kWjGɦV<^@M{UySpa~M~-Ŧh0y֖\ev@6XV.+W,.%h6">fLOE-4{= }Vs}xwi ҽP%V|YB{^.o18[G)uQi96@LvL0$R<`BIS˓{lz"ڒQ Birjn#gt 7N@^J/tOW%Ѳß5tĠ+J7Ӗ0̲+Ki s!⓻ 09BJ_Ò;QJ׺(X3_E,iISĔi{$';/쮧 GşζBL&l:"I&=kS ڿR0Ϟ8צ#:eItTMJ1qXMgӲ\ %/2 +H;gX5M|!qx6L!Y`W=am RLp6!O٠@qS?oO "! 3!?<瞮ʨƂeu'*ȯ7(W ״檢LeOGW2v; t!~6?gS0KTy:ß xY&?|,T=Z>>MmI6׆ y5_3l|ɦd# =[V>P'=[2.'Χ]LLNɘsw@+if᥀=; -ȮgQ&ӞnUypa>mh8='H~9Acb?-oq[þgzd)6ayğmLܔ+_^ֱ=C]M'l2an *Ną"Q*!>4}:pZ&jSn2kQOdh }z`2dfapޣaIC | 'omD6oUɩBGGk8g,CWU]ZKLx-ʎŗ;V~.Oy jZpxDIݲ҈)aqVdG;ϺVa.b` q-0YX)M >Ik5Ym_0<-9yUܱ h+UR]վJ :XD]Kr&Z狖]cYikqpQUH4g:^x?i@,^˴4 mO~a==t{(b%fpN‘&,gG]}<(#-; nt}o2WLp#5l]<*65Ru@Ʉ8a CRXZ0tcp0,b|] eOUHa9LwX 8qYS*9]n0EL+"aXe!Axk+& ^ڪ<SdW-.MU0Pi4|Z_vu9Xi}Qⰿ{dC_r5_~2yg,|r1Es)zGY6 6Yvɧ>&7! FSeGn`wdG&W\d ayh.CWŏ[$v.uaS-V#LBu׭Pi/,4|(8N䖆&q[hçEӖMS N6ݒ"ߦJ,~{Tweᖻ+[MN >۴&ϪJe42n5 qZamq lR|R Ǻ/^^J癊$Grf&QNWÞOs|尰a"pشmO2W?5݂6YՃ-Okz5t:%B?ZEA a8M4 :mY#@^iUP.TzÛx`JߴN.{ɹ%%oYӞְO3Mݣ ,yQٖ MHa")s94Wuɒb჎ 2\7.\*L+Mr 泒8oA4a^n ~[NrOV*p` h״''=IbZa}Fħ7-7Nka pX[J9qݣO"N [L"1ق6 éM}nА^祦qC u*n ¨TPz`=>{NlbG9 )(+J4/&SpOîê<vdl~iXM]oӈ56Af蒹 -I)yZnڵ#xqy/_{.O_:N./y%&'n稭|±!*yg"ןʜ_\ ~6}8~DcUئLdNk]BLE*dk 0∗EebXăMZfvO*QFU\9Xridu(FiVdˢ)L4[k=$<[=}b &m0v{1h=SU{tt[~Ma$MW-򇄲^7\.r{:\#(5u(+X"!{RoFfz)|4 ϣ`+L KlY$0pZ(ت#j5iV=4yPzVЊx08Vfib`X9Fżْutx8|ϞiԳ*z+ -4}{ 2 4 wwܛ\{["F-g곱-{yqYʫcj 6)n:;46 Â&k#[L vl--c3@ؒhC pl8|= \ɣrͧi 2Ma:KL-Tw)& [Y |}ZDYNhahA2Mn|Y+"^. M=,ГiˊciZ: QoJ^2۵ii;'PS7e{Namx:O2dcü͆FCnHGȦ7ePaG"SU=]ٿ._H : IDATm5sM l2^K:击G G{6϶:fE0uî|^@mzj%e{[TUD6=R8ؿ\DO04.Sܷyp϶Ű-3qxOoz1_V&=K}=>a33y馮iwNX:T5dS!(W>߬/w nn*a ٗb.]][6myXk[q0%0kJo#ZTTSW5/PkXӢ-jP~X41!EQ?ݻ c<-Lo)4ټ j6O #v "z&K32lj9iؒ@Ē5Wn j0s~Ta*cr7n%M[}p7-^1 өuϠk˷% ti9l=n/حWeK"&b6h-/>Si@y pŴ6W[\^"i%Ez)y_';C)OƩϱ ~~ݩ Pe9DSpQKX*z5n2Ruz3͢~WGRap=\ub@^W:3[ NBa^qɃ9=l}>q n]k^#{l-@9lQ$y6* W$ZV0 tn0ċ;{ϧ/=2 k<2}[b$(q9`?ELB(>El#5*WCrަ)l=g{3<`Vm}`ݽ-\st45sZL,>ڋAz0{ޚK֌>x$kn"6=L잸ΊeQ4MN{jm.EI3y8a Ӷ\[V?j٭x.L5%K,8l5}-[S[qU1_*$e<*ml[7Uc~g: :UA?2|1p,ahhj(Cg{x誋v^97~t:֜4[ܽm %xxjaP'<ֲ%a~5O p:GhʿŒhj0|habTb89H JDrwUIǠ#a\ t=ABGo4UvJK Ä~Ӟ~5"VZXʅ31`omX&++(Shjpr1Ė_ޜW]WϴK>*-NߎI9y$B  >,h e钂X*O݇uF|9tyzkg7 lX-J+~*IJ t 1찻>|˦t]rڰ[>aqiڇ =a{ao|x$ ^E-_vJtU!H8 3еi h+(w ^RR]Qaƪ&lhBx0tnݠ~oX7+&]%ɧ[&\5z,`M׼&WGWO,*xa 9<Ъ^c 0-,,-Msak$po%!lo<$]hH6 ϝ]eaϞ"qx"ӍHJu5;4C֗y^pezNkXY[V IL?8\XrLM[@pIyaz%n3lZ=ߦcDKO!&Þ^A%˥:g9aZ+l=OiC3 1pmž\#Y*ç&p9zYҒ~=@5BY <ۭk6Ml%qx[[v 74}cw{xćsش!$'}F9f/WаfmI+CEHMۤxAEE%hO[Ch{ӪS \"AXc(I?=,ӆ}4GbaMӢs3 :XJv W5RJ62"[r|]&S0GĈK<j/), |WeAMֲS i-YDzhmz~ -Ch[g&w_ܢ6OvX@=Z=ptʼnid ]aq{UqVӮ$-'&~ >eXӷYϨ+l(fBZ) 2VeǠN,4Ԡ5ےXU5;6 \_eg۬r">Á%.Ggiɧmʒ9,ұ`LL[.xӮ电H*}2 }$OMd`%LR`shup6oE3͆-xڢ&5 F<~= >h6qWp3þϞ@HTZ T~D05q95fBE1 -}8u,ham*na'ڨ,/ur"JP vנ (Tl`:h)iVDq}o9<0*gM'h5/񷣜6w7L d>Ւo= 35^Ooi5ga]O_-_hKtL,Y#Jv6%LGMU˺]l)aYCAC _B-ú2~ĊosZ$LvfqeuaMf6-yaM1ۚr1<~]}Ohqؠiঃ[O|E'D~=o0 -& I6 >D}tb-04JDL(YRFfayJAHa0:f0x5Db/\KwKN% | ~6;B/X`/7\OKe*`*ݩ@.4)r,BɱcrZƊd!5^c{ȷs - Oؚ;¾XaIfyʣHBAdrr85iE-o6R<Ԇ釕kO[6M&[dB=yK30G'_}O3Y޳b0 [%?秿gK4=hN>ۮ_-Nijل()[b6[~-Repؚ% khH 옼e%.Y4E+c%dgעak6QXN |atgk ybśZ,z-4T3梪 aE79p]?Ө50ܻ=]G+G wiÙ{f $0VC%vK_bŒKX&v,iA-ATbش5N̊ڰV/îvsm= wEÂiOOCP&y4aêR"Wx_`5tX>Id2O *5 R v5z6-m s~jAaYU3ga%)\kUS0$EAŖTdM\36mi$1G60%DǴIÒn ձIXTȏvRe3lmn݂⚶ᢀ>Q(R/Y-L$ rRa=kzj.lK.yE .G 4ɿpS8ڇ=lLU~E h=GZ7w:agHF{4=ݵecpݪ IW.i"":p<̵ƚˉ.حؽRa[2PL p44YoDuגk88\dڰmhMs}*Vxģ #hB嫬hK9jj; pi$ƻmr$޿`d98Χ+02xаQ_aa~˪n&$?{v.A${TͿ^n6lm.iKhh|m^;aH9me%ofFl.S)eIVcq='qv8L:'_[霵cӞ?/nMoǪNр,GÈڥnSZT[dsr՞mn@S]ݛ[k˞f9°ZUs^ϓ4dg[Jn}Wz.aHm`5.k+@}vobkU✳7aKa]k:v+Ӻ.>-6t`46c)Hl_"{R O$i [>L5/aآv MÉ% /zPGr5L~ +` ID8L , ^zfJUX0P?];: ȸfiDחMV-" ~0ÏnƏaHlia m&zv;%m[~&w?lnؽ6Ʃa?;$g|$x̦/jiVX]cAQ~R1ѐx]poG@hha<|nE i/ 0ÿӀO>?[Sg>'yɉ Yu6g_s/x)YςG.P%4p`^__>*“Fg"|32i0mooLn;=y }qwe&]Q,iX`Z!k%O{eh[v|4ڭ%\aKlm 4<'e˨<3і~GU&[kfKf~ɇpv$AZnjsɻknSiusM֙ThMo /e_-{O6v ǓXᕭbו7[jkѕB 'i=X_n|lZirݩd- yL=Aɦ!<ϧ>yj5tj?-PeZ+NݛU XpB vK~BavL l4e÷!aa2gni;IDAT+"l^Ce5'p Lv"Q>z\sGۂh_6O veN9Sl:l)` ۬Ki˹}%Ρfn?\c0Yę>b?@ŗLz%Kۤ 凡LOm֡->K{%莎%'oOnT9-Yڲڿkܭ$g5 w_44<4>L-j bvė 4\s vxY.<E8FX-MhjyxQikVc=gd2{lўjúO!vO֢ŢK.A4t1k58͕ cܝNnkW*)wSߛ&w[=. Oǖ%.W1qKL{Aъ`W~rɧk?z:V`L;kTD&1n /?eQaw/ ]EMtt"M8xnWlPR2⒘b*i"5l},m]K2Et k!p$M-e [C})f DϮBE YR_6Nw3{ .v?yN#S-)\bQ9gW'<-l-kh%[_]mp[L+ݓMe?-W?ov.5wKZN>qZ#لiK>"Q3voal&$ӆ}axx݉ ^oqXSY~.{ $\횿HK>tI,zaIz5=tM-|y"CÿkGu$?EzzX kOtWN9aJ,,oQ۬VGaQK5-p?Q VXR/ I5 lyXrf43XДVtB&d f2=y SKMl9hXrag]S|~8Xuv5%҄Mp=vLܭksnbQx&?}wXW#F2$\rg&W-Y߼ɧ'_&a&Wڰ:ϼ%Ňur K40w ?Ǯ2`a 咜4M<, +hl$3JL`G3IQFopf0yv`r&0N73]00-mEopp[|VH}{$ּK\\=4,*a1,ǚɺ\5ǚ tIq˖bWΞ-a]җUG;xaPT -ٱCkӗ NwuC<[bI[t5mqꐗioGo+N%.ijp|Ws &na`rw;3ғV\TZs~ /Q-G%|Q8 ]æ%6ܒ v=nI[Vt GpFMp[>mB|5z-;٦5]s7pY_N~kl9h4W׬-Læ%5, @\{-5-1o35<:a=`KxO}0?}q\W+{;lIc+[ӖXM[6u6{ iح.ç%9*,e buNJ-_a.awsMvyz^v')yuɯVl-\SLM{BmvMAѨC^&"bni5%~U~ش?[ݯ)|-{Gg4j[E{;WƳW@67}/1𯎏j̞KdkTp˻?@|5-䒊.W0mx\ÔnqI1XKn3%0E2 g5 }a^ R_2KN sZ/Q&1aYYZ)4H#DL STJvP\nE 6FEA0bM&39vM-(Y[5-δKtm%3Id4^Od5aN!8ᦞb`{&԰E~4|Qܰ!#cio=ޓXr˚z JxC/dz`Q_眆*Vvӄ5vۼnKI8m0#$N+_v%zrI}[*u>(RÎ3 t&ۇ{,[FR?eH{<)_o|;;O᮰˶v[@qO+|h)욓?s$]]_j3t;`e0gP|s False 5 Quit PyChess False center-on-parent pychess dialog True False 12 True False start Close _without Saving True True False True False False 0 gtk-cancel True True False True False False 1 True True True False True False 0 0 True False 2 True False gtk-save False False 0 True False _Save %d documents True False False 1 False False 2 False True end 0 True False 6 12 True False 0 gtk-dialog-warning 6 False True 0 True False 12 True False 0 <big><b>There are %d games with unsaved moves. Save changes before closing?</b></big> True True False True 0 True False 6 True False 0 Select the games you want to save: True False False 0 True True in True True False True True 1 False True 1 True False 0 If you don't save, new changes to your games will be permanently lost. True False True 2 True True 1 True True 1 button2 button3 button4 pychess-0.12.2/glade/panel_chat.svg0000755000175000017470000003727512641567764017506 0ustar tamasusers00000000000000 image/svg+xml pychess-0.12.2/glade/stock-vchain-24.png0000755000175000017470000000057112641567764020176 0ustar tamasusers00000000000000PNG  IHDR (sRGBbKGD pHYs  ~tIME ;5WIDAT(Ͻ?k@$"Nm)ӯP(JB"nJR (ApxGwBjXwac%{5^4Cu{#B8t$|~R+36"VBGvǜ)bg;M*nꋕZjwflKÚd G>[kPā~gB^e7נ,O-dg7=_~ZIUIENDB`pychess-0.12.2/glade/poput.png0000755000175000017470000000027212641567764016527 0ustar tamasusers00000000000000PNG  IHDRaVsRGB PLTEtRNS@fbKGDH pHYs  d_tIME 1#-DIDATc `ZƐBa Dd#IENDB`pychess-0.12.2/glade/document-properties.svg0000644000175000017470000000662412641567764021407 0ustar tamasusers00000000000000 pychess-0.12.2/glade/black.png0000755000175000017470000000074412641567764016440 0ustar tamasusers00000000000000PNG  IHDRasBIT|d pHYs B(xtEXtSoftwarewww.inkscape.org<aIDAT8;OAޝ|"PBlIh@~ڨP! nCc]aFXēL~Z1b!jc.n)W5)=!ץzhm̞1 3FJłHy4>Aku LJł-2|`h}B!fd&@-b'ڐ\c86b/*!Ak?8 r'ށm!9\bBx*NR+'٨ÓKfxbrZڼ8oaa,6PJ~0Ww۩g->pu;F?W IENDB`pychess-0.12.2/glade/dock_left.svg0000755000175000017470000000641012641567764017325 0ustar tamasusers00000000000000 image/svg+xml pychess-0.12.2/glade/challenge.png0000755000175000017470000000161612641567764017305 0ustar tamasusers00000000000000PNG  IHDRVΎWsBIT|d pHYs B(xtEXtSoftwarewww.inkscape.org< IDAT8OLW9."A\*ZV%EII$I`ΛpRX=e"fT5+=]^5VĜ@\.#wk䝓l.*J+zK lƇP6nGB ]\$=6,4ޠ(.v_j}D9˲mg#Z{w]I-p93Kc wq>eYv )J'sr)Iz߭@hK#Q1s&2EƦmGpL$R 40>lrx/I"3Y^}gM(鑌ܱ3BbbVp/cNwgw 6Or2!sg^ZCa`/0'R7"3QIENDB`pychess-0.12.2/glade/seek.png0000755000175000017470000000104512641567764016306 0ustar tamasusers00000000000000PNG  IHDRVΎWbKGD pHYs3tIME, $_bIDAT8˽Aa7mr$nmck v=ŐvU:( Zō9HYkּߧ>ً}=>6}8afNԦFLo=ey |\iKp8DVW_&a$J8\}h`1 -==/Q#*q|*ɗ?ZZV-4hs/O`%v([K/P\r _êtiø DzEL\tl?M?NIENDB`pychess-0.12.2/glade/manseek.png0000755000175000017470000000116612641567764017006 0ustar tamasusers00000000000000PNG  IHDRVΎWsBIT|d pHYs3tEXtSoftwarewww.inkscape.org<IDAT8=hAYoɝ4Z 6"+E5l'.GDAAX,-99 X(r$ ,0( 6Z{X$9.5y3oRAhXnؖc dq8 zw5Ƕp et~\.7S%-P Uggrնy_Jbg2+Yc1QnH!#Ew `E |Fe`طA\ 'PLg ^kdwۖXs_bM4x^PZ4ir2h 0ޯKerz |Y@ѽ@hzmURo5_"ꋙK|cC"1Ĺ[,"pEcs9Wwi-¶M#6p ml$.vJOw>_Fg$IENDB`pychess-0.12.2/glade/dock_right.svg0000755000175000017470000000646612641567764017523 0ustar tamasusers00000000000000 image/svg+xml pychess-0.12.2/glade/taskers.glade0000644000175000017470000006274612641567764017337 0ustar tamasusers00000000000000 1 21 20 1 1 1 0 0 False True False True False True False 0 0 3 True True False none True False True False 1 1 poput.png GTK_FILL True False 0.20000000298023224 48 stock_weather-sunny GTK_FILL False False 0 250 True False 3 True False 4 2 6 3 True False 2 1 2 True False 1 2 2 3 True False 0 _Opponent: True 2 3 True False 1 2 True False 0 _Your Color: True 18 True True adjustment1 0 left 2 3 4 False True 0 30 True True False none True False 0 0 True False 6 True False gtk-apply 1 False False 0 True False <b>_Start Game</b> True True startButton False False 1 False False 1 True True 1 True True 0 True False False True 1 True False True False 0 0 3 True True False none True False True False 1 1 poput.png GTK_FILL True False 0.20000000298023224 48 stock_init GTK_FILL True True 0 250 True False 3 True False 3 2 6 3 Log on as G_uest True True False True 0.5 True 2 True True True False False 1 2 1 2 True True False True False False 1 2 2 3 True False 0 _Password: True passwordEntry 2 3 True False 0 Ha_ndle: True usernameEntry 1 2 GTK_FILL False True 0 30 True True True True True True True none True False 0 True False 6 True False gtk-apply 1 False False 0 True False <b>_Connect to server</b> True True connectButton False False 1 False False 1 True True 1 True True 2 pychess-0.12.2/glade/dock_bottom.svg0000755000175000017470000000645112641567764017704 0ustar tamasusers00000000000000 image/svg+xml pychess-0.12.2/glade/dock_center.svg0000755000175000017470000001004612641567764017653 0ustar tamasusers00000000000000 image/svg+xml pychess-0.12.2/glade/panel_annotation.svg0000755000175000017470000005037112641567764020731 0ustar tamasusers00000000000000 image/svg+xml pychess-0.12.2/glade/analyze_game.glade0000644000175000017470000003276612641567764020316 0ustar tamasusers00000000000000 1 9999 3 1 10 1 999 50 1 10 False 5 Analyze game dialog True False 2 True False end gtk-cancel True True True True False False 0 gtk-ok True True True True False False 1 False True end 0 True False True False 12 True False True False Use analyzer: False False 0 True False True True 5 1 True False 0 True False True False Maximum analysis time in seconds: False False 0 True True 4 False False adjustment1 True True True 5 1 True False 1 True False True False If the analyzer finds a move where the evaluation difference (the difference between the evaluation for the move it thinks is the best move and the evaluation for the move made in the game) exceeds this value, it will add an annotation for that move (consisting of the engine's Principal Variation for the move) to the Annotation panel Variation annotation creation threshold in centipawns: False False 0 True True 3 False False adjustment2 True True 5 1 True False 2 Analyze from current position True True False 0 0.50999999046325684 True True True 3 Add threatening variation lines True True False 0 True True True 4 Colorize analyzed moves True True False 0 True False False 5 Show evaluation values True True False 0 True False False 6 True True 1 analyze_cancel_button analyze_ok_button pychess-0.12.2/glade/christmas_about.png0000755000175000017470000022621212641567764020553 0ustar tamasusers00000000000000PNG  IHDRiͦ!sBIT|d pHYs }eYtEXtSoftwarewww.inkscape.org< IDATxw|TEw酐HBHi46P]GbA}DaET,һ%5=$dwM}??̝93sݻ{3= r !9T)AU.mُ 6ӕGݍ(]V:mz:TUm/8r Z Ldl:("ZfM~9sWt|ܳp"//5/ es{*ԞSO?>5nJ1jYuyF?>e|6fQӹࡇdv8gu+zWћ.hj[UYgP 9{Kz\nbDreIJ[eEXV̡-7/:]^\LD0S5y5z\MK\7R[!;:y JaO)ds$A֛b9 婧\t6"˹t>Jm?i6<?jCފ-׊I{&kk=1Ӽ9WwNl@yIn}qWҪ]' gϑ~{.ԩmLMe+,X0r>_]L\]roƉ^@͆ u8y3I6~t [d MOd-f4o;8z[ӲƼ6M{dQ~2vs"۵cffzd;'''jZu;5hu"ֳ}{M'sn~>2+WCB٧t?̤$^iJ?}pG+:7l9';SY3NmH}UL y<.K A"Ӳ%{&aCr.]_tYsS5A x"hAslLЂ`TWJtlԥ35q٠}ٯ h8""eM{M79%ի 8`t=!u}u5Vt0VA7X?$?#BmV%NSwN)67S@jߌCIQJ:g*! ~*?g Uԕ'tL-sNEX҆DJ Lw'>y5Qucuc1 {E=8A\2NN::gX=D(;D;n@C-<Tnj@uAPd L<ހ,]JNwE=8"٧OZdE&3/u(^*Cm@Oc,մvm5i'rs G;g fQUJ$Sbuv_2jHXQEn$g׾yl t8C7q_sId\] DFDТ(TMYǻI Jٺ#K:ewm}Ohܘ[^z[^z3gX$oM%_QVʻ2Y u' />1n_u?io{[@-@ Ɂ4/i2gܹ\سW53WI՜`YN6;w-cg=OmV+׮ڵ4ܙ~z`{ѣyi>bZ:z5I;v|_hu_` ￟ʕk*,%5ꓔ&-[R}{bZ$eK:G%‰ػh}A0a P(RKGW_Dl@"P, a-+sko ̄j;:᥿~W.p99|CbDI;T WfFP8 iCQN Yf(n?O֭k[WK^J ?̥)Õ=w}ίSSlTCk'7\_N=)I^'C7#g(zQyE 2O#LԊmLeS˗qp |Su]cv-ioZ@VDegݟ|LωKD+KBȲߨYϥDaNhZLIOIrZ:&dcN2Wkq1֒j$N ڏ6^NvYa!gdžv^Zc[S'U[KKY<~""i>xL`p< w./.ѕsptxʊ4ek`4B*ӱY=]sgn&_Dfzg] 4zcY{!.Yf__\_E\κ + yղ֢?&~!<UQ~:Zl&PEo#IwURteUjƒv8R3>3}4Ki[Bvȅ!y&캝:a=Ԭ_gb-):Q V\ "oEdufwKAIwQD@AgrrvGsԃ[vP7#]Q6%gp!͘A]7;PcG\IT 7Qh_"WV^NCʦ f3JE@`ˆ +OUtVOMe ?ND;׌EMCMe\!k#F&zٸ-&.< T3[8k<3/kW_Ҥ{wE L>}8z5 kP"jnDԆ> Y:zZCFXMz$wo L jSVP)a_Eb2qC`rKz^`+ 2IK+TӬ9aM3'[֑\DѣG_m:G:WSDf4g2ϴ?۳';痩SYgLg[oU(Sc[oqr#jק'QJudjzKWݵ}#EЕuo9wzZNcV'hq82s&Ok:@9Pl)J2 ?]FL3pCF"'Rd+Kכka5u"o|^X#JA-Hg*m60XnA"r$7E%;y&Ԅm4-6F2[9+n| >ޓ'S,ٯn|vc/ 2|bєox 69SG5c>~~_^|OBUlH{'0oy |>|8yix-Θ߿V-tu!ivV?߸}ҭ$Q+HڐPe)kTG^"OUԽVVwٳC\L@5Pn]hbcAo侬 PSV' H\EERHde =*,3E&/*׽TݾnلoPnN]5%}1RL|IZO.cڷ'IKKp^ܿ} !UqcfB(EyI ӬOou7\+䥥qv^iң'۷ӸJ3OԶ4܉:8}!zG{΁kE˽a܎y%jeW`@  0:v8}b""Ou23!=tegSN"Qgmi-Bl6Ble|2탍ZT%^14كS8OQ>~p HZ w`)-5lq7e!A\Nr crM#bcA *S vD"uP6n$iF`U!(EK=#1 ݈4Ѯ¢lsA\YQk LJ{>= H ]K/,!aY6]uֳX"g?RKn@5].<%4}|$󓎫AAиɥ iiDfdi(@"H!6+!eVM>})kIS2tǃfɖYoÏ4 S&; 䓔q|2ݖ=E jŹ8J?\[cG۵'i:3ҝ-nق+WӮudyG3[Gh;do+·C[ۦ5%%X!Z,zb*(r),&jaGwǵ"h{CJ7j֤wаKgRRH3r ZQ}}%7op0Ah*>P.^s礏&G";f_dә tݵ푇9uϿKCgK+JōȑS#2.wl?4č6lV+újQ#3}3.5kY8rR.Ѥ }A[9gv]&ogcݻ8 taڮfsېXd{ ݐmQQP]]Qta X!gz ~LtZ-c))%yry4DV<> U,z=-oVY[$ZՉBv|fGy%'Mbj0ЕyfYE#Ք¬lmي2UHSyUИh^_{oJq8:BE>2S6)u=!D"[H@h(!QQj,.%=3 AU-jaz Sz{YG@QJA@$?$6e(JV3^ZJp8'S`)+ig8zFV>~}N"l^3/fJ<XBZZwÆsa.{qS|N*7o>g%-׹U?Æ2~bʹѲ:v7CDnZ$hfIԦ|1lUrt.n!{?iS';ٹj%kC:kG YZE&oOavuBϽ\CiilOOrrHHp hV Tި1ȠFmY!r٬XM&[[!6n<_ ]yߋ/PKgZz+Zj>W_MbQ!k2pݘ)+,zK qXIAyy9pi>~. %[vVܻ7|Ӧ<=ˍ*=mc}q60pqvGƗ 4?BLѣg-^hsj҄"2O"`j"4 /5 v7qWCpw{HE]#Ed#xx.Ybh=;.hmXUPj7x'ᎋu8'p"6`#m%,~}f<@yq g.#8}A|I=ۯ/v%YSO8'f#V-FyQ1EXt%| qo>̅ƃg>t^5 ?fɻt 0>|C;9\б tGFiuZjjZuZ;61d湟̴٢VE2:p3m}|t7}?0q<thAzH]-/ 4:us uD|) dO:pϯ) eḰfft1D82a WAEONAz:YBiسǭ2Νh3j~!3W2m̥8z =_MnIIvg`o)d~y|*ƍ}c8a#qEl`'OUeU!j;I{A뒵̂J IDAT0b?^{5oC0p4޹+>~~mӆ:͛s_[V{(jѝ>ia7V9DEA^0//b|r؀Ki4&Sfl3?7,@QfGpv$Fjj^+M֕'jnZ0xϭ4E[?{6_xzQ$"_`̙:g#=<Vd{}'p/x Z۟sqdNoF)"+9i=hij1v XW]B[hus?3$'JJ؆4 DrA_ VkMiDny[S>fvlN\Ӟ7:d]Z|8G1 +q)-,$,&7&;ÚΨIyi /:D=H޵ogݐ<]DaҢu['hfGW {EA?$ } ۾_ktSPWb4:1fc:0Ճ3gZ92.'(1;Nspxv~7ruIƑ"5%̾?\;~KQ;Ȩk5-i뻟d&z;}DFڏhkorzV0 +@07۷[Z -<ϘAι=WuUi{\mDӺT_EQd˯~™N()jgDC$sf&?V-:+nEUld*3f֭F0ݮ- ~$S'|9LD&<~b+- cҲv_Vښ]誕Ilr0??*[.H獰} Ne괠]~ή|K}:LЦWB]ʤ2it0QMB`XI[86f0F_#'G"X} |._**ٰBmVLJΝOSSV:N'O/H?OZa/^®>,EE.7vZZJi~>vMCZVƒSȕ-ҳb5 YڊUJZZYDP# uG7u:菍r|:lW}yrbo-j`5 h#ŁpojFLۺ=kO`½_hF}Mm!7Ae5^6Wj2E k{7Mm Ǎeȩ?VrxwYH:?p?_|^W<=>_&UL !$:hbOl",%%$o?KS|gqS^͆p<ۘmy%,~I񅦞#2İ~yI ǎv qFO*5kӢ6_G LW.= Q I;zpf9ìzu|iW\Ok F _?n#l'N)7 Y/>ONð;׽7o ">Iji8SjK/5OMsX=O0< ^#d$$pz:.\$E5ߵ+ǎ6}alHƱcDw@n#};]Yfcso?ϑyriA;LWсʒ7-nnbdeb]SM/9L-"/䧩ST JzDmO["Cz6yӧ!gI޽ ky9ҼϼK)+ ^2Y߄dAC`=::SZ&i(RLDmGÛ՘ѺkP P;3!OMCެ.iܿv-70 9\NlzU#i\йT?,}+и,%%l|us.mߥ515;<6M~[u)I W/F/]o@ 5ե0'3VE$&r)>6mܒmTm.Wn?iEԞ|D"a EG+r/^n#q|G~c-Jn]>\oҥXu֢eW4 ,T t=#HOи6><{?y'R.+(rZ1l' ݡe'fTe@=pƨ`-5hiO3Pg}sq^MzWe,kSVuiԽ!8~ߑOt;=7mۣEuxcQ ۳aS٠C_z9Q@!'h_XHMb',XH5?260:%61A:DەLHDv&O_aܹxHm5-l>qǏѬ)oGAܹx1~!-ŬNzQkWD`Z;pɹ $XM=c)iʞX*oȨ?m4@DFV4+{TH˗; Z[ߥ{7NLz"כ`ߢY0~<6fƎa_cDV Ʈ (+5k -q7fЎDZC.[Ɛ={}Z\bĜ;nPg]kY[_ɞ9\)`Œb==3kw@{]6WVӚ|HZknzfFVE~|}j5^d.w˵ǺDj?k7G~U1_!jNma|+.z,/t7Sۿ7D픝$NJҰsg[O㉠g&c?k#x[?m, ?`$5>izކ jvHU96r }}dK' RIݰRFL;.͞t2hwz;!'4w<3y&eV+oתTbݦ5oݬǺf33.ځʺ?#hkxk7Rnw~KP_jF:ٗKMJjs,w+kAiтGL&$3MDe쎠&]=ۗvnԕF6HʟftD@_7,̫f4hWd3M_{֭%tAZ?2[ [y/>V}8EDB8q"]}hh yd\3:OLPw}_~s墪> Y%+6"ݦ3ZVlv]}>dI6kwnַ/-/Fm4}jfg^Q+GԚvt kE,7mFt'plZލF]Ҹ{wb{@`( h+*V\﹇ `⏲\6J=*d\]D{ҼutL\w<'Mw:A>^.VU7E`;׾* fgSQ#Lfҏ3n Q%TDpj<~pF:HSzӠcG.Ǔi[lܘqDa/V|1E)1ᆱ}~5k2`Iƍl=zY_h^x??$bt6.կOD&I&; nC+/;7g9¶7AFt rk=SgnJ-:v^ /:R}wlѓv}%1ڑw>/ NrJid˔TN,ۑgԮ6H,qa`RN4bZbً/!ۏ7n>mɻv9F@X 8{y5C5$ 0X/ANu 8؏}¸i2qb۶O.'˽ݠ:m֭ 9kop8vMg~C _H0!u_#-q=(_ϲՓƲnHY5ڎgfq`Q,o䞠ijFz'VI+~|ɷl7;DEyXflFq6a|:iAϊ.JT.8GV A߉SQyOu"qol%h[y9^]+g 1!?"rN"m~ix ^fwXod)m: <&xeKL}٢`KJI?~\_ANZPKw)睼,-;0eU7bZyUk| ՀLv3n/ӬW/nzZɘfӸ[7z?YT~;E+6 Fw9`9p)98s2`:4־֥e@6O \@pt4=nطbaϻwCᄃ,?߰<(*9wWL5E'*d-D =u5&gՃA5US=owB ¢ 57"$V{Z kZ}f,?P +Q͛"fX_e8&̟Opdd'%3)S6sd .̱7/Îߺw ! E&:.5%hڿ*" Yw01L Mݬ4;{(D Dѣ|3OIV[j[zh-kFi8jjwu)[B޲|C=h5twϟǰ_9 l/89\OZ7B:~6}$Xf?Sڼն_=մtE3 h;t!j?nT}hz lq=kði38|CCa4ȕ7dZ||h2tVC8}Vy7!M~! Y%*ZNFתd[zXɅ*p{>}A5ƀh(wףFeI5g ۽;@/YYY Hɓd&lؐKK]\\LѦ ),_|$ ڱ. CDڟ0mȮ]őoۖ@bs׈VkiCLӱ;v a##z8۰+ 6^U+g"ZlzYްP6vm|6nO?7gWؕ!2^}$$'&׶K ?\8Zԍu}|ԋ7 +(!ZWٖ(租qw )o@A5Éٓ ssvxe6͙MaNxj:;,8t3:~;-0'?DhyX~)=~ۮ{:ӗV S4\O ųp,nB- $iO\"eHI\۶o@Fh&t] k3Tf7>֐CիFFGX͙kܺR"1b?pnfmLŧ&1WèR58}!kM=CV+kWW~jS+q6>ރC@D& {u<\2a<[?yʋJ:EmwRa>YtgDԺzzz$jUQ\{'˼;$Q#b٘ؾ:2 LfxQ۳{qByag(#ze_1.؋O& Z D>K(<;hؐ/LI*DQJ TٺEiDcB!])7KMJ?y)T8"h1v>o ŢOeZ-b@U]AKvj|<+?8BssXˬy e҆1| {5.5ؙE/Of ]RZ27NLlgdp|+fֹs I 9##ZM#ޜE1m66oVxzP HSC@C$W̵HE;jM]waҙmWDQq_] nz( =;llUv!1u ^h*t 񦂸z"f?_ B*OmUDø&1mےv(2g~O?ElϞ7MϨ9S];.=jlx]Pɚݹ9\\bbhdHSݧ_4"7誕l壏AhRZo` I6񗍪-H|(Q Mں3"MKCZve8X.M&NɄIOY]fH•u'M!Es›6Fl,S ·nVQ>դVLz( i=ēd%$piNʋuhVyd-=ɪvO]DWݿ]u>>YjhzL|ģ:5ղf#sߊkñ.w9|xp[Ƚx6o]4v 4 OV,'iL1S3xb+SSغ2? O_9}+r4p3ULD$&J:輏 E&Ώ=ΉKY,APM螘Tdm`U;Y՚r7V;S/9ϥD]r5O#@YQ1!wA 0\p2 Λ*uX* ZPk6lȄܳn!W.^Rf$&壏lЀ)/.y_qjF>$v@`򨏫HHˤC37zȹɷstCxv4<{_CȮɓ[igW`kfz-o2,pȡ&omP|Yyސ'ֳc-9YUu蓳{+W $m[sݴׯ@4hAI{vʰW^adH*r#=ѺO?*o&z IJh'')n͞J IDATB₏BW^¿AX2d);vZHL3;,}4uˍ'XfX} nN9EZTXEe%enkOTKzQ|M>AKdi4U(Կh~}=_QEphO-)A7'oFroAWDr!r;CBݧkoOe]wtZ\L^`0!-ZR^TH,FuahDwBNjߞ ?Z"(wy n~{U1f\=høR6N!Z^.Tn o,GԺאB*"#7Yˆ - QXV2+Qn$s ۬2H1崺kA ^=ZvD@d|XŸ#Gb-.&qc><܌? xtרAPMծ ߖRGA~֍{uСi#4w, L@x8woۢߟA~BGs䧤:7`ugqxVחKuus䧖(z3#vm6Skpߍە qIhκ%I*ap^t/W{ĹaǗ_OpT-rΝ#y6nzq=_a?ߡ U(tSr~5oNXa2sp=oX7leB"6B@D#< c+)/U+5iHZOc]k)Q^/GSIQV&o'vsKQ1{/W *ʇ,xv7XQ?oD]^RB;qE:~ciN֤'jjtvOZ]ibw95n^nJ+Rnϲћ-[+٠!zcAҦ6m?.@ET}G@s#צe;I[eL~~9(FmkWOb]?MYҦ=.#fw#R%.+( +8ev.}z{*3諷C)̒B~=g噇%i5AԿ&t7<9S}V+dUXF֩,$:cF/!!n~Us7N=^=c +Xc'Fz樀?奥 ;)Oz뻢Dn,tGGIAx)>q(cv^%t ˞8-wd =Yvfجe@SG0!YXʩV)HگfMj֤Fkf6rfdd;0bwsCn zw2;6o %V_!^>vTcY{Heǭ  7ߗ/;uϓ Dm7%7Ua))awi3f +JhL 7@1}?_!jaU,{Gմ4"4A4a<oG$+) {vbP|=^ S44Q yy|>T>iV+i#'hl\NNOTZK:Hю׬.8g>jP-N5Kov$<=\{CCxe4dODGs__||7&!ACEd7d=pҾ#DMLƯ9Oח(寸nN$w v {Q3۝姥1\EhN8D#nR"&dM{vKoΠ#a7Պ( V+ :uGe~~ vfaR9T?Ȥ_~6Ck@E=/"}Vo$|(iYVP jw yJVĹN#deľަTeyBqc=!(? jmHtRv YRw"If!~KoQ:7eZWΞu"*JKGg rQٶ982#"iw8J!c}[t9Wgo` u+hگ&z RuO+ݺ{'E}lo Wދ(A+$j,1jL-FhlE (JS }ؽ=8"}z~ #$rN2aMs,=5HI2kEbڒȡ#sJ[&|(Tu|;!mY~}eꫮQOUܲ>61AK=Ƹwls|x4x ]93n(7-Z??#GepnY+^y˔gNZ%QԚ2M_D]y'g_=KZW_e"[W~z7ϜAa߾\Su'lQ<`VQ^اf fq,!qҰޥ 9?%6H{_|@, \X`Xv/:WnJ1 Z6O̙].:ÁEڙT2(!YMF a3%]ۯ_|8ۑZ~IkF=?SXɼ?&7}KhQb0ȚƪgJI5M7S5~6MOa"wo&y|uuD% |%yzz)_]=e[qWFDSy9֬a?AgwzIKHLDa,ŋ1YݲC[$`4oqU0AЧ7\N<9n ~zOD y#1~e&3g܏ͷtoMK3QIJCk`0LVΌuםTiX"Q#ԟc0k63.D?rm'ֳDu;w,yzQ:bx|ش鸒[?7&^?>բ*q4TVn7SwVm+_u5Wݼ)wE/ŋ1Ldu,si,8#+YTİn?̈ӘˊOIYW_'ݻs`LElfO2/kX.Źsғ!lPǭh/+t ?H8E[bThÊX~+-?hKN95Zʹwә9tIWWa!N1永 U@@,KM9GQ]W:|Rz^p>C {,? j)  z+9jK6X%gQ(9p5lV챛eܽQwkxg`KO!puo+ъ\CD8lYeYs֫3th㍺x8[Iݶ:2^/&Oڵl~XmOXf2W 1E49iEfToBzi)*>2uӢ?aʲ%82^5r6yUUh.>سw(LD妖91[sWh+i¨#Kg\l/?n=d{t1S"y3%S3 toI2xTyQЧgI^'gs Á}`u1Di7Y}t3 L?OUqro!ֿ.f̤C>AO6ı0lL_Beohڽ[%;S*B}}>ۿɭB2)O(Y8$ m=p>rD?={6Fs^;gld?C0QD-hɚYX;^v>zO&]oENk/EUͶzb1Qn_m-e߬U(jsVX{͞*c4d>ŖN)gg J:"R$BÑLy5\yo1IJ_b:=bÆ!E"tM5QKChZ9n?p?L+.|ALh_vI-Xst'{/]E0vد[ǔ=G)͛SS^K(fw|RkFNF\Igz+oipDƘnkc|gkQ/[+-)dU5S7LJNm/u;w2=/_|\&E,my;K3"W/EO.qdֽR4YnbPl5m~5kTSrE-s$l}QeVW+}OANlzݵNw;wRw// _TFVۣb:ƗO>ņٳ8}p}\üq5t>OܳݹoD{:jiGKz Gw2,wuWVq/t;FkFfQ2e2lo>tJ!mض>3hx;4#(<CxGiSڳ#&-p3J2Y>\zՏDܢB&nMa!m#-KZ}ǪݛF_8I{zⲇ/p,\@kŚ _;g~jsMJs}EfVLJ'" i*/whYNG豘 yݻ3`ݡ|:Ay?(Ƕn_/%eEk+kc`٘t6 c#}KHDSE9y={xzOΪmYy58!C8́8[A hD04x_YYS^Ƕ EUW7mKOʗ,a϶-Aȑ |a be5ڋ7o0& s}%ڧXO$N4E+^{BJTmPztJY+ZYjUˏWcsLzZ]Kxk~G1qt|E>&IF)5hrhr3ZfWdwB]{ -FCHG{HH4&bu54$?ú[8)֍-D0v92 Jw 45aq:h!_?< xĸV ώ\m Vxw60L"`4(.&{rM7{Y3O{v͙á>I#Aʹ4HLFstndS[YYnO]U=Қ ǵMmh(m +[Oaf]џXԲXğX?iHNfz^ޒƑLjgW(iA jM33EV') oU5b(ֹ+H5{ٿ:Z4o&*(۶U ))f4IFJ%<L6/7#ٿb{HSy;m \6~{) 0N Emç(W`jha}V 6F kn.l:D ܓJ5E9e&ߩOL{v1ꢳ}k!Wr URw{^X-??_ Izڸb#Koԩuk^+6s%~ņ71e  {^f<7˘|$οlf=ZT8ږ~VY)X)YֱFZ2jUZrY+WQ:vL*hލѣ{4{N6eR;EaIsY}44۸cZPr2hEq$_̞W/HA4a|SbSYGHW,pHLQ :r;#'_IIrud~fHUVqh!fԥPq}#-f7[a| Pڳf&WUWzvB(SGO!G#~[ȃAZ [n]Y'aTS窵xÙʋB>/g͉bߗ_&D F#)r3?̚'7D|_?EBomJ47@sDz_㭭eܹ71=eZhm$) u#+Qr)XъD.X=SQ/E"z^Tw %NQN.$QrŊb#EdV: iAn2Wճe~^?v%FqegQpkyܤgdFAFw/l%& d`XO`0Ӈ/[]C 'ק`WP} 3p`@vE~Q&G^!hˊ5Y-Kr #PC' -wW_o#?<Rz5իWSj7+Vc ov1}/CȖڠ$##&(\F]a]ZcSW zERD"!}dvS$yT4٨rQ*ΑO$I&Ta97Y҉jNϒffV҉[5gQ!~kf&|ėNC E]Gs-_ /X*$\:2/OqcCDܺn:W_E^' ѩ>[ޥKY+ n+ksV鄿'ٚ*vDqX_Pi#jMvc&I۷ر"u7F};v_f! E/KС> A!HV3݊v"B$^` j{ gt-@CchMcIUDFp-ff^OUWx^)@m*KTZz+/‰?lo7̥+e|[Ts7k1BNu,{6ޚue˂| ϔv!Ԅ(3tڋУi*_97!SbbEQTx)M|ћZiY?€<? :؈<>p@ݰmO}`Y'wN NDLW*}[>o7@SW&Xv 1,Ƭk?Аp[3p[[ȋ+@ZWW{0?svR*g>̘f Ռjb5LLF܊eq>Y#4_ JYwSG~hlmo滰/;F:;wmn>l}KD4rg2!(E"lLxPmLh“UWbğfIq{D$AR!Ɓ6SOoOr( L$ZޑDcGz THZtg|1$[ovPMK$"H†F1X蛂լHL*e' *'/MfvIƉ!_ !!;: DQ|sZ Xb iiH]|aC+8&+"<9sKf&ZC F#h $#"0~!3+ C;l[DuO8>\FcL!G-e1u~Z$j %W\kQAھ`2rq>tWO2if-dɭ}J:OUaw9[yfv +–9qC%.]ǝ˫CϤn~t4k :~MZa!qzճtEU(iM -:,;ݾ\tb1LnƉ{wg@ck Ð+F>|<;gc( bE?n8JH$1kxJa:$ĐCIG\r'G/>᭬)xL=FS{eIroE/۽[v6'GXBE=5l""^/wަb&1Z1'-:m*oO 0MX|1i-%W-mt;ItPrm E##ulWaCyr{)-f3PQOXk""=ÉW= Cjsơ>BԼ~v9鞠(wGS(72ztW)ҊK&OAT{]u q{?•I =׷eZ 5g F  %&Œ"& 4W\N!9mFNi Pᢓ%*D=:N&$f;> Ņouqea#"l=ɫ6 PkdaY0$Yp}O5ѫbCL{W(b eOwH$I45z𸵽a36?=ft!_GQ~@ÒFCYJz+P_o=@s_'IȣT&ْ-;v3><|qTB^ByCF.'t `N:i)֬]9k!mhM+i Z<$VA0Zq)]II%eU@,'v'(TYC19\zv6FfL'>[LǏ+́nnaFa4٭6̖bd2pw柆c b$Vsܠ$[˖m94?aYw%dZ*UT7b, ˪?D`ʢr t8}piS9tb!J*eH{$ZWeM3pwVNPr{g ލD W5KL1z@O`cUM( *QH8iMگqv̬Ԓw!ku}!:ytq8m.^C>zw2bab95ҏA{E?$YK9 ƌ!ӢR>Lƍn؀AD},n`{v;e(=\MV)d0[LLbƕQ&N%4n<%,FC|u . }Ù㱪i(S{&qUt[ -3Ν\YT6c&Eb۲{t8NefKرh. nJ(6'4TA iɹiyҳQ8h Xuu.xs۶b~>s&=ϋvh:9+WPjbQ^wIn#-Ip%K#T\X N':m&3C|LEHx%1DBD[:B&" щD夹h4`4Btل+A8gm*eruvLetJtx>%瞋aWȺ]3G <mp:91@},vfAɷ$AeW\N#W[G `4F9N*2]۳Kt+ۼ7/,N;#".ar:{ODk(7q(_7݄!ve@Im|zϽH)]NS2a`h7+C(횗j%?&ByD`2^rHHR*ΓzO mz󰤧)ƫܴMmlMΑkZQ?5-oo  }:,)AQm?HqPE:r$LQgv)LF|ecKIAQ0~<V"wpuՓd6Z\MР7ui_%IPDuU}lUF 4 $(vO&p8jk·xs5!َJ}߽I٪rݵxy.#Grt晌\?C{=1m'Hv5pUhP<.5Ά1_3hZ1`il7?YS5jW|ŌTHjMHr 3<' lveqsr3U7M[Q]Y9ZsZh Hf!3+}6"bԃGZg c;CGc}}InzTmV Zc)岪۩\bp-~iM%Qdċ8frn0*y'Inطۯ/[[9*Oz~q$ev71z "<|ohT$UIZY$yYtԖ'==Dʝ;_]RB;}Jkў}i:[.edJ:9B^l:6嫘8!%ә$bN%!<PΕ8&4GkVr|F#MW҉c @Ͷ\9c,t"&^@ۯ)o9^2v.c9fjl f3~.FE 1Sy [~[-KebKz/AeΝC8uvǷkWQsZcg~~x #m4=tL`rgl BamNݨ{ЕhS8wW̬4lmLT߂P(L0" :C0/c}O"!}ynDbFt2z]s|jwdsp,,j;jcw}qύmu)ᕫTkM[][ +*8n8+^{ݻ}/yt< B^/i_-gdҥDbs`'=띓 P o(""&!ފlym] ^`%!-j(}~pXԍ@E22VO'h鲫OHRsh4(! @Rl13Q=E 9e˚D$^݊hkI б~H┶*jķ+j{~ y^Z:?I3v<<*n.jwK`)>,o皱Ӛ{\q8w"Kg\:3سx12%vS7Λ_ Ě^^RhAmrPڳtixYI ޟKn&PIeCz0yڥ|vnCjsS?!`=7њ(T%:G-#A5~TNʞgڐGʹ-t2 QSq#M#H@fR,Nr-Zj`mթM*_pZ\zR2냂'!jƍ,:,j7lxqplž֊CyAemtBxh?Uc[BḼZ=h4Ip_MZ3 P]YGmuC ঢښ|m4M -Gfnt#.(oKpX :DX8˔qKKT-h 'nJ8FwX|T,,b0-3ԭRHK@c{fb0OZԴ|Q֌մLf {eյҸmc̜ɖGU(auD>5h)SԈ 4ddtGDjuekb2D"(RWT~;LN'"؋0X,TYiq -akTG3̚JmA9E4DXm'gqnn z|Qz7M^.;=Na$^HWqW9 Hv]^{rcJ}Mfw o~s<~~RK> bxY mF5 ePTizye9b+VaPډ=5C]W&T'Hiu$Wh.E FA@A8%2 {<4MݭYexɡlaҠ; j Kk;Uu$I@If4]x~϶Z-ɗewcO3zp,Qy3R`%A D ڌ`)8Aw,L5d2bwXq8˜p(׎'+_?`j]TW7!νJR[vU #bU ҞIj潽7.5-+Fw#Z45F”6d`zJw嚫8x) $1.߱PYּ-]N/?_݆a@]c^~~ iػ7ɐ*Yb=R;=ck}ΝY;S44{ߚc꡵멠;RndDAI0n`$[$Y0HF$"Dˊh« !E0XҒp}rZɬ~h G15qԗck⩍'Mxr:;3ތMmYy6G;|Ҝ45񸕔S0Oӟ喇qC4#aB'%rUc[{hO{Q#P,OVѩ{1Pp(L &;PL#?ƒۭ-v‚[Ћ#!Wŀ4r6a$OZn^~)5ˋ.%ӦmZ=Z[ 3Œt4[SUk?I6(=~(!5ML@Oc({DQ>~ !HժC$ ۇ%TX>H aCX*ؤ c8k/C3E0iIh-ŝיž-Pv` DmMp.&"; ׎ۯ\ݛV$Iݺ}2y8f{{Q\}s( ԌL'(m[4?yGݧ|9?eK%Gw̞CquW*iK>tXк[S|ہ:A+f1kxP-ձۆ{b΅ػlF ;y)TݾIЙ8lCE>BfEH~M޸HVY[cJN5jx?C~2vQ-_ДיA4"bf0hwc4p&t16E3f:F_2Cu+YEb(V-U !+/2]T`ʫ*" vgt`Z a NYs&ONЩ@Q}i>]wPtM$p.XD5nc#[|ѺMݚ.=iT3ZXLV FQ6o*rhSixyBurxcǪvQ 44ҫcjeH۾|⪒ʡAGkXQ4&]Ana HT9ڈ:J}Ǿԕ ēOcوl/Ajk!a}Itaw٩.2Ix[ചؔ1@W1Ȱ$ ,(xB=hk@AzPڳ۷֣Kjז]zC{W.H0yA-S߼lCoJzE)Zr/ |Tj}bN'^zGKIQ&YY-HAdA#TZ*y][6ӽ{\Y?ͳ?HrPR:8!ǧ?S%ؤP@mJXĠ0Ka"2bPXyw kbԌw0ԋV>I9z&p@>gBufM/r"bϏ G.cQ8b8npB:dMv;=C݊`0hl={ŗkA$ ZޚA`!ndHvm{?nˤaZ%ojFo\k {moeJԈe+Q$Z`rc@8 *4ۚ(]?;WPk>V46ij`ZڢS=עe'kJYF*Fmb373z U,3H{Gf-[$-XHх,<KuͤIml5\kJmnlV.C٪ՔZVb֏:V-|r󎓢>{f^oGo`* vQ,`cLј5EM-EE@QA~8m~̖C|x--;y>Q/۾;dsUW3KHAgq( QNוfch;Zp!q!+ 5_GzCu f`p lM 6*&#,o>ܼl![c"vlv+vW,3N%˧sBNvs%JMx1ĵ>xM53aOÏ8pO$k/Hcsz\[htKJq%+ޜJƵlC)CIO"ǥ\lA-W[=ƌUʮռvx!}ϣ$Ɨ$%#>'lyyTLBߓOf%ϱ8-ڋlxW`+YX[|3\JD =&S!Y{A01Q ܙ@PL[~;08؃L؉m YC&R7bY>'I@H`xآ( p-Cp$B$&vkZn@~a.͍B-M咝d#uXl2ݵкK"fbU<JKuN_4TH-AGoE4w70Dl NvYr/d1A#55[kAQő;&k³]B 9L &#XNZ~Q9Zy w̱9wzv8BAr *P"lE&k.](G3xy}<ƈhj`˲s?Hss[_b" Q ´8 # 1U˨=񢵮jf;[8BO}YizHeMH6-v Rbv2T#Ck9kH9|Iw'A~3!Wb%/藏?ѧ؆fcχR~8n18IZQ!I# ~fYclөot GG D䝋WXd9lDZ}%o0`2$v7n:xD?QF!7|]$tIZH"CQ$iuI#$?4!dO8Gm(́ W %lΐ$@ $  dV@"e"$I&#YY6lvKvqոў%oLv螇LU%!η7ES&5פ$\b[IӒkq)5蛴b>1֢$:1_5ION'0`&/}i'_{  43VhBbHZ+84bV[Ȟ_ɡS/EJAHP0eǣ}?9 c$%Rm D8(^J$a(سسli4Ǽ8f@"mmI{VE_!VN~lVBn75MB~{Wjx1?IhmgSC(Jxhq&ک4H:^ґ5Z⮇ME{2ec.+^| z= >˟~uv,jQ#SI V_ ?gMvnt AZrCNyMF'brjoFny9s:yr0ᠬ488Gz4d$GO鑴}* (_l%5 >#'A:!IRDBjD 0}?'4m"zCP4+{s*55,vGp8Lscnx@^~b| Ԭ$f]ÜHvlkmO'!H{waUKS"A8GEDS׍W_ϒ)gonɐ[#~_IG24/Ik8$'CJ~.HAysV >((b0V=WAC:na*( LN忛LhY3JwRThl*7A|Z6Qe{`d9y;H y6wF' EyiGDks{c)+%r*VWd~׬4}>Θ’rK#+ѹD *wZKK9%n_GyztʒXH&DUzFVQQmv;HD+\ڧ/0V@sd Di/ ֨${R4ַtR}rh%QKXQ> )!OY!ӏeX:3w U;dtVE3E!Ol9V8~>fj~Wq^ޚ#HR Hۦͱdž;b?:#|v9:V3t(ʁO$((*(3EoKzСIڥ/ W<+"+!Ndߡp] I~:#8tÞju9hjщ%)I9~=),E{vLT>W*=_4Ӱb5+Ϛɦ`7oa=CN?P`WN)rCT {@`9uVܵxvL뜺 ̉kّEN~ 8tNjڻxWգuLDI |0I@gLkG;R~* ΰ% LԒnW)o$7nf@zkXYzaAiD䨶 pzR?FڜwmՋ)a>=0 IDATv|szwa̲>tHGs m[3cv7JsT{OƝ{$ oxb=~Fl!l UqBAЏ!1֌]H@߸AG7m0/F_}Z{ +KOC LF n ~`ʹd"aUdZC45*#AZZj%͜ah`<j 2cV6 yC+Wd$5<=7^);*Ϟ5o/$j7l+Y[˷׬qIk! ? Qa!-I bӼTj#F՝&d4sX ֎@B0RiGp)be"y/jy%"f {V,V \, #3J0Di{-[u„}wUH5:YꕫH( HLJѣCD3f(.f{39e"aJ~pQmrT+*[Nƍ8JJ7f)0E n|9._Lj?,ךtN8Dq0=n%eGcuJ RP "KOŒ,K$ e%I<;uZ`Sf݆<Xss9?2#Nt]wOиsm l}u>񄮬Nض`&9ln7}8iS4ݫ9tqܒ6CkI c .X#Ѱ"!:0!o IAd sUhdeD1k١YT BRBN}l7Νe>Hرݞ$M{|Lv+! Ѭ)?][w=pT mee\gȋ##Gh=xH0h0SOSz:eR$[wg+* ҞqgC1:Az\{7c~#̙Èf '=(ͬ!2p[S[fy٪h⓲0u%Lzڷ&4×4];7װK.}Vk|r,9\(߻oɕG2٧)8wxnܾ70뷿[/Ďޢ줓vy5Y[9k?0k5WN@6W_g[1FS[~_{cO3[Cۖ-zZ7mBDO#fG؄>U1?}6R77ˋ]c0;✚O0Fw ?M,7Ah4P\ڽU?Hs2 mUi kYvy4\Mݩ-#=HIˉ3ZۭPb5sxB8aʘ+єh63۸d>NﱖЀUl{o8`tA=KCjWƒ HnCUD֔EaLj܈p {ԋ_CϨsdIa;>pߖϼbƣ$m86Zy;TEfcG'MOq4z&# m<_(Hф MDOgmaɡuF<^/cY{*-۲[2I3d;uGtvjy)H4D"\`eʢhZڴ- EhјaZvPcjҢK_z 9@9g1dOG˓ϯ/wqve5-Wa0\+ =<uwn JCgAzZ$"upܫT׮e3T$XY$ ěy,Gⴿ%L@4)2ފfuf^/ZkI—GFv0p YoC68B9 B*Hl<}J ŌP9X ]zD Poet^Royzp=>la?HK8@NMa_ eF{:]mEA@EkyAC@UQ~L]*)w_~`G.GF}EyިQi޸Ir X*2 ߟOڣ#;;(=5k׏>%c0j%?F{mg  <ȋ/5nނǾ0`x!ps_zǠ^bttFy'yG}I nd'̽!" 7ѿ&'hBdùYC'^'͕'Hl6Tz[1ew$'j:b[e\5 8ЎC 8`a*6>&X"]:-:]-`;rD9Dsn|H3 nVx3c6iL< OQH2̐SYysiۻ+F!KA{u5}׿aOrx:.ǜ /`Ȳd%XȫSq]9~{>x8f G( !-gs{Ç {9\ ,Vd-FǗGְ!ki3rzȋӉӮ]m><+ܚrKe}F:GZ^cԼ.)|t/pTȞ0GW] C0DMJuZ`ǔK1gmcyhHzzw\Nv2\;g,{g$1Z۸mn ^=}O6W^msϗ {yA.ٻs/g7.Q!ĭC^{ xXij'w=Xck.NCm k\cpWWZmlv7dgg/xױ7_&}uzt]t!]H(z8-uVF {PBƠd `ʢtd|vMʿ'>msdy\xiޮ}?*T>7?Y w|hNV^}R8eK ~JЮۥ`4R:}*gfҶk~M[0XC#Hex06l'֊& ά+=ŇE&e=8[c^W[(EVa܅= )"9۔ÂȦL"#kJ2rV֧GЩi۲$q|U}30ZH*N=gPw,_=[w1b{߾:^Hm{Gm6wT/UJ`1?.K,Q)p6+@ˎ]+zڒ5/߽>X}NWq'?!0?G4WeRTDUWQqUtKÊmߎsNw&|$EȞԇh;bG7f P-=LEt?PH ^!i{G !_MV "JmO!s%B4 UvCz$F{:pcC4g{6L'F#wb+ʫU۠ۍnAH’Og_$]j-woh2qru``pV˗Ӿ\-TN_|EkajlwIki2F^p>v^rB~yf?)8=dCVېCݴIΝ1loWl(bVVFޘ11B3C~?oOL}77^4y9hllU6朚O/g?P}rz=:u.VZel)WcuHp?AWnY-o3ә&>nZw^VF!SWڻ{h8ukky}i/Ȧǟ$g@[gp%:e:M۶wƕP74EFHGFL24xl׿rY1׏6,۶򪫘`fBA愴<=%,dv'Ǡ4fuռy ?O!"E.CSQ/O! j`ZxkqG[N:5k9]hPs: 2t̫'gYF[0UTPp!%ѽ 0){7|d5U"Xf6S 9HKRғd-Ei"hIgOu#gtd&?Fr3qaeS͹ICk>&= [Q!W9Kߣxct3{ܭS )I"t?{_~U1?[R{w!|qQ4oƾo0י S^dxwHÆb-(`0qѶG|5T_`ɺM595VyWsۈ>N'eڏ"׾},m}l$T%*T&G zl-Hp0%'oK &B~?_s mG1[ R(ĦIh\~ʠF'+NVS[0yxd%]phhA@@ ELN,A{A3m_!&Y{S& O|y.9#nŬyf E'G2D'x{iذCK?_ȼvei>}v٥̯=̐ xΙ@,3ɽ1|c4[xBuhx$u*)Ri-re>]5E08:`42[`{.agy[^][v^/IPyzLrOWl^$ UqI]wƛ (4A)dE"?|ܺq뮭eqrs 8rs_0Ԯl"ʮ۲7CSO{fAmJI &PVyS~ :=A^sV?#%'PW(~2T㫯IJi M!}tH4I"K6Q;6BT/UY+$0P&10yXf&Ou= IDATJJ,uHթjRܿ2Q[{J `dsi۱3Ѯqg4 "LUo2ᮿ=ˊo~+ۗ3BSSw"xaa=_*':s#vMFivMt IOCno \cgcx()kR# XuMNO: )z, 8F̟s_mI)ez>#KձfL 9L' oSp8l*]/mE8ry/_N&;*LR8qCZEosdXU+hkVR-c|w>eॗдa#= R(Dqm1'OWG˶miz%/Ϗ VIOa׿0+g| y&˟ >wF' nLzN)#SM|2Kf!7;0-űOk!(9R{BNۙE:P̙C99r׋ `e@ѣxkkїZ@[8ӑ#C1q|¦޿ u-]06nsKoAO~伮W^Ωes/rrb߳7|Nv@VM.n} \??{n+78n>D.iE'1uD!Lr{)^}Kr8jloz߻L՜nxQE#uL4ho?Ir?os6 v?@k+?)' / scXiXKҾc<55*!LVsSn.>}0XE{$=.A 78^ޅl6eZjف1+~z&/yfr Hglǝ%3b `g!E$?VоON|EX3eBZ-it&ZtkrnC/XU;iڽk4Lne ZrLֆL 6] R 6xfDվFa'ay9wa[Bֿ1mt:9|ev;}?s 0egz lYg笳ԕ$ E_QN G.spy{V/☐fUtH4rџJHOVkZ}Ϊ*UU*RҦ&O Iv<ѕ[ [-@GUA*OeL @ f%#SyhAsISդtz3D?uYWi0ZhȾXJ+d-4.b,hzV͛ǂb_|1OE3wF#Ʉh6#Z,) l,}J`A3;v]wA%pvϟ ^}$u-<&K~GlE<^u?)׾\:ˮ> U(:F}S~BCO5?Qwʲƿ?{߹I-|B<6%,٤w;Ҋ2к"ԟI[lfN6"-^p/lR#qsE)S(>t 'LhD%%8onQbf~xx7㎝}r`╽ Y ˋ]M a^5bЦz:@c[i)n^ C^w8ǣ&ףv<&Yv)l۳|_iQFhYn@p6bޱ'H8{c!V%My u?;~~ut>\ԩJa%.r£2=hu &}ƌvD4&DL4YQֿ mۋ0ྦ5Ř7-^H0HSDZ2Ge%E'H`8&BNy V͝ dN'9c'}f7G z7jiIhR^ݔυ:ZVTWcA's`r<"\AR(L(THO A]āE@5жW~:)F']NDNCNB$Bju6]ջ h2dɡaNAM*8U4A$}xIW}=v #;/v'~DXgmOJuO EoR$Z\pWX,8rrX:q"3Csx<⪫r-w$( p$wh4`4o)M"$KUgHuNlXl}(27RylfOLMMѐ91㙧462|dgԍs柟d?J5/ K 8jY8黻iܰt^ (6[A׊MvY"9L xcF&/n`@JG`}+kh(=|Jp(?37K^R@‚ hA)Z 9BӺuT=O=Eʕnڄk>H&㸊]~y4]k~ZSDBH:bL,v:J5602H|#ii'3mhQ=RRE+W0+nNFkniF}֑qƛ9.^BI>!Ld@ c8ԭ}iZt|Y{u5^~Wf}7A&O^Pȋ/0&&v+g=cO NRz3K@Q F_|1WO `OۯH8h4bZ){"y /:_AVBo*EFʉ ||Լ6BKVe%WVe%~h~:c9/_ R2kGjjvye<c$:\dWhm[WOv(Nɏz%f7kŋަ(.4g-#b--;r4e'^_&FWV2sl[-IK9$wd wM$Љ.\?surO4u*fwWnjbдiD!_9dҍ-; > gd4Tٍ Fl$6D 8*+1+cc:` tvcGұolr13F;s9ݔGD k)g,'\9+$h)b#?GV&\t mt:UTF:G!" 5+V;`$֝W‚a{).zrn3Jnj^)C8NԒlj.^;xR\mZh2eMήK߯(.Q\{?VAw@OKgKFK%h&M`bԟZ>]vz0a658tl~oHᰮ8ޔsgiilL9t4N7c9'̛~΅ Y/p뭜t54As^ >_Y_Ǥ"ѭqhCD2Z+yNr{{#r%W?イu B[I4  .)Dl ah "6CMA ѿbkW =bBf6{K"mϋlHcu0foUTAsS+*ӒKP4a5zdd1k&֞sBZfD$O0^횵П xƛ ݼyXJN.$}lKx}5z$ٷlMU{})pnnbGSeɥjDGQ1ov;ΣG;ܾT>XoN|/ͻ˖)kd-j?>.ԫf,`IC9H0 $!%P,"!YE$[e7`מZBYgCO|}3| LDt`2QkADj!}S7r:MNUͶBJݙcMwIuzDΉJ7S֝F+.'oAH0H:=Nk>aWRԌh4br8q4WUQ|rΒ9kShp0HS\FsփAW}=s/ IvH)*YY{xygCvi)9}q76IS[ID;D ︽ '@{={Dv\,4׫ki+LGI%7."v +k @חhS2}:Y=/M$9?i7>QD)aevPE"&,&g-ٽAZl~9'H(Z+òAر\ Q4ze!]h6T/_L:y%ہ#7#| k-ᗓڨ #rӧ fnl?~(&.&I{î#^BR]A"lr9 V7#ۛOElBh}ᩧ2ttm[]"RT_S/SǣF`D7XuZkCGF;%CA^s Rv%5:v]oHMY='M@^<<Yȣ_w9ҥusJ ^w `\ޒ_bFʎn|1FE I4pb5! qh׏ual^ͱӨ>IbMLxif})e3g;\呐[=k{tNv7XSz!IUByQ;%ZLj%Fito平9*wd/EMjkEhp׫-G$%#'20$ ϴヒUkkS؁v@$`2fxi!%:_;|;zGG`v-prKg{twd 6g-]Jٳc1RSX]-rHnj`HPQC0mI*tv%՞x~bY_q=g/P0| \4>WR,jqТ5tEMt{l %@Nci)3U*T̛p* S_{I2øA5yd7XF'FrjY{ҜU?PulڳcD\$$  toMⴻw”#NonZ%'I4_i3Nj]u+;&há0عujP \ߎMdc0#XrJ3+Mxi/[- O9RCGɠn2wz&6'"=钳f[Ak'+de}ٵ V+:ak|Z֜Rt;2tXctʓeY{ig ]c@fZGgfM7h>DB [DI6Ezsr}̯ENI$&e6NOLu5q{n=)K[\ U{Q"9H6ĺQD4h0AD? O[tm3Cn7OE w4E-KO  J:2,[iKRA#+9񚫹z;T.&OnF]:3ϡbTZŋ.|SA}1ӕ4 vfed},R{wE]u3}+z#WGؿ# q Ue4mp3c콒sd4$َ$ѸΪ*&Nx{wM<=j;5鞊M_nҞ&-ϐ˜_wQ6gs1׏AgIۡj:7jh=Ѣ5[jq{}*p>4bhF"veX&󎓫NK7RIP.E@A}U@. `yQ)"*K"46$McΝ[Ζx9v{@['E]>ax><4P4,"p@ܐ%噂z>sYQ7[C8!G1"[ǣbəc' Ngw-5.pϼO bP矟pE!-sʗN;P~h٤͢H9j_ q+Vohn-)RRzfdq'-;G;H$`Nj/|{S} 6sWT5KCsIBsfNk_3ŘV|.MRf/+y!CQp6M암p"O졬qeߺEOgOH:ιuH2i}ukA$VY_P4g'bΦOpm܈k=ftEFZ1MRcJ4ٞSSU$Ah롓FRMlr.oЩ7z@)^L9L58VIk;ͫBU1= Ml$ V7pc[_I9S<R1u*/3& }C ȅ W-؅L^Ky(㡹ٹJ(,%iح͎tM3ؼGI$܎N¶'bw-; dv>;ɤP3|Ùu,>d"ۋϿwޅǥ^Ϗ7ZmjP4RLVVȒR>48ցEddUO̙WSXWGnytɄ`_&1oOq70nJՈ/!(7M$ !6Ê=J^Av/;Z MDӅ{=I OIQ$-#"H8B$!*{àf(;=8ȭC0E f3-8p VdC)g]O߾fE^CZRhj3w$Y 50T^]1kRV2x::x?ɳQT_/· TӖ¡ jcjl *pFd2@ig-4H2HYKt2tk㧍 Ap;95 [OY#^$IE(&b$9/i.9BZz|#FWgLkVo1v~nm~eNoU|tm}hq6@Ϻwu6`X˖M3hZYZ^-܀6-cЦ9OnEqxoiє遲91G g݂fj`ZXD"I^/[0;yyԮhX$IH(I(!Ib95z$[OO9?MZ zmssÆhB0Q8y6m3N:M8j8>6*f:|.[1f|ʦOc9gK+iUx#p/~?8H0zMi"[(!I=XھdX$Ig1 F"tMD媄?&Ғrؔ)|&8}DPԛ?zxv?JXJ(~HRؿ8~VHDr}w뉚:9"#U-h2uM1vm,s*␵TޑAԖ 0Y1YTΝ˸'SVwޥuÆE4S̙mV]GAm-= iZ}H.ۤSfŮxX۴ݎ[2sǖLV$b̬Yy>+cxX5Cw kYP0G=HE8J#$p8D"&⧨fBGCVpg?.LFhr:9X^eQyVcs,it* 6>]:8 [Q&NF$֐A5>c:)9{yk˘vfJLaҥ#}]!UgEki*@ةsJJٌjEE<<}T"yU#ҽ{CAo1 ixM޽D_B[>;odvjdY(,ͥ4et{{=7D֨,BL8ɤ!3qH#q0}{!Lbsc8B8B8>W\`I:pNF?x@+j h6ќj`l=x#c'buF]65 Q郢\Nē{Xzɋlz ow-- m"N2z Ҷ1"|g|>Z%vizmLz Dd2%}L&AHDXL&kǝUL@A=)eIru9Q9KD,uvdQ9iin`ҹy3FYhcZ|^_ڻ>_;kϬ/ϓ(1/sҿT5h!G^.@MϑQZ4ĎXAw&Η*;|g˧ƛzً`0)ƛD4A ;AN~9Nr8swnOvԖ5K:ۼ( CeG}x<^պi+Fc_i^^Z(әTYP/{L%›~FV`|9o{;β2V6ymjh6oRc8/wqHDM<-=;|d'yB>? \s--|By:~Ck% Y8H6O+ciZp!{%?9;|Kq2Bsm?B$E9sd6Ew:Xh݂-Şeԁ<|ACYь@^qWn'TzzmBўyNICو q5RrHy2UQ-huj@y 5HiT[UEK b$2dh yUUX_}fX#qq(GieJXE~G嗙x1;^܊r[4_@]__=-#"uMj0)-#ҽ]nz'"<аV]n?W:zƯ 9Mm;6QXturT)ݣʕSŤcדO dz'˨-;߷AgbԞuF8KJd(d<tL$O#{^.n Nm-:w-6{WVښ™܇KI#f0Yო";NY=Q;hmPؑ&I@@_i{3B')Wλ_^FIDr.C9W^QTa'oS7vals7T=ڳ,?ZChGx*s0\3Ga/򟣎_kN6sg'ڥʧ.cL5N'ScFd*.!̡Շɞ =SNDhZ)]} %~}P{V=Ss(M;jmѵ34HL?G)kUuMZ)lpܑ`|f3m߻dRpdN9ӞxĢLV 5Sq<5}ɚZJZi=2{^BE_|"O00ou:T7LվZ/JGRZĻUs$ܔԴ\|P:sдOyO%HJƂo,x%DbP **ͣx=9sV٢ gw-mi9$b9yn;Ռ3A( jⴷ@m)l5Q|d2/%7/O&d53Mgo~ĥp[(Iboii%{ W)(nͬfy S}"ҒZMV׷y>05ͨZ&\a2Kq95mdt}Z_,+װOkB}-/sM YrG]{`Vo6o!ցlBLa9pƮc۪rA`*&֍4n=@kИMa5aea+' Go%@!9FH$<>cDLm~lK>\|n=/LG_O3ҚSY'UR7.ʰ, В<%-iOtrZ6fmV'iƀ[9XJVyI-gfLN/;M):h Qec i߯>+f.oP-LSX++~I$Z sdlͳ;0uؚ :ۭ\n"aƶ~_$<}qløۧj59jJAHgy^RfЩYi|]j\;>~FebI^0zbI{mmk猗_0튶T>|z2tc9DjW'2O@KC~䏩d2#lӟU6qJ:4*;c̙*T#wduS+COŝaB[~jy#ۅ1[ވSN͸ M"hd%cUۆ-O sUnpQ0VQc=ŧ~7w~U~¡Hbc6Ni0(GA/h!meSQSaSJio>!2 w]cm_Dn}a.ラ1QI|Cf L{h Y\"h?K_џѾP>.}RhPq 3{7L STꮯD]ݸ2b$@Vl;% A  CxTшRZ5z;'SɑecqlZ݈O)b7f f ,w7,.dg#Kctᩧ3kW%3PdZ(:*jd O;#+V2chn:*.j *C]Elw%5_YţҺ@5tˆΊzO/~ؔ-1NA4l}e޹vjQW]EV>FcWK+:T'UT5Vh(_ r%A W͞V AiѢ.SZ *œ%Pl4#& Tc9 Ωe鶯˼!KNi۲9Fw6}_WMƛvʗz -y=`,HL'ҧ3j@:S4ʘRm hka߇7g;n`wXq886,uǣ F1M <ןoB^ hOOZ-ZK]zLf ].0kij]:mA={@8 q2H6> ooׯW40}i+\n2IzߡڧK攼ZKO$hҤ5҄Z$.KA|bD30 ̤S%((Lf;73ZmN,@ n?O(ڝQlJ\)ۋU'L:6G^g Ih2 jp0fZosgTO A@LQO ᅬ˖UWmRNJiK\[2h$+)bn&RvU |4bR̒!n?n?^Otw 1Jd{$Cf7?ϋӭS$N`P0WILdw7k"az(hͦl-ea IDATQDmLRD7ڦXٱ>VpYYf 'e?޽M DAV#=k"@4e+|cԼh-䌮=9NщD;^l#bܔJ}Qxy#Js$%Ig' գ>\nCJm2NBĂ O  ōGRȌƐlv+y`-ADo$MOGY{2X.; x IzΜ`21ײ륗Y11Y,ax(?eӧ#LlCy#"-kѽQӞSa g}6>>n1w[{/2b׾Ɩ"bB-;rP-Nw?%_+cw( &O.OiDb: =Vj_z,n\E2M;?Mz ؽfmܵN Oa2٣viʫp:9 ;<{B^$SID36O1vw)]uX$P|a& ! Ak6k1A\'bG]^մ./D,JB l'/_^zvdÏзIr8'S˔i\e3f[lNy99~_fg>t@L@K@A }Wq駳w@ĮcW|LXSZ. Oێ)?'7`TiɺʓL1ڮ``dUbc Y'ec 8R֕l{m䓵{1lQhiꠧ_W(u$9sspvTJvN`WOl"@Ko^-}Mi >G&zQYxu[ S ƞoOy6_CrR yƀyDRa2*#g2 Fksϱ"a\Fsr +[_Yu6b29̏׮Ib;9|.y׼f̚EՌ4 O;}.RG\/|C0I;8Ni1G`` 4sEeyLUkxáF`u+wg pvA4r̘?9Iس.E9E''698IE\,%= iK+R͎|=wt{9vΒrv:D׊|iӸ\Ie Uk .:&,9sbu?Ij^CU YhN. @,Ntu2s)4 S飏;"ts3bBؒHtSkI4tD7 M̾k|5f^C{Nh-Q=?z$˥St*juXSH˿("x6@KRMZBeoV|DjΘS,`5Hq|D$UѶ?D|.E (ۺ$WYSVU@NBk>~8!7r+e#=g*}dd9KqwZ%1/O ;2eZ7sq22(C[↣_y]]CM:rPpLz0!r&d?/Kُ=bkv`ˏ 'LgB^*6J^h.g?ٸ!gw c֝)uDp+&Lb1kЇE9,Nw.ޮ.}}<0o3f3b(`6ӵm%Ӧ2ۗ>B$8p9VafgEkU9WM7Ē.sN:%Kx䕗cs:c?hpOFp(-:8'? Y_*~֭[562tg RmOHB5֚LKӾC@qP3qӪX9h-qu3^w`:3)3G_%V_V=xE vO|*E eFH$|}$WhԖK˿[/gWziްAwL>xRAaTh_?K<Y!oR>@V&Ve_Mxj=47: esY}>\(H&,Cghj oe/JaOmzNOZ>Cau=Ioс5k 0ךsF_RJb覍X댴gyENq x~DAox9@⾥r`&QmOhxU1eRVozi Q8NF%]4=@'jzl)3]^_:sFv PTNx Sޝ;4G"dMXtt Oó'h|M$RRIMRڼP/,~|*Im=ż*O U_χm۶~7><]{tGB>trΤ֑1!ƀZKg ǢI%LU+5Zd[2量ڍٟWmj1mspTGXiwpcě˛PV FUR?OIK:FUU^1:?gEdso~-h5|R~Co иjUʘtr¥ A$B]81D'Hbv4Mrڙpmzlx=Să (_fWUԯW :5oJYc_FU.V*/3YVy%>H-lzETL…Ø3llG.ySdw;x))l%@߉&G DJ75eV-%? 957vhz3EԯVo-P?ǭ`ΗЇAL&{ˡşZ0Yѻ$}>SY}Zs*wZXٳc nX /?LT~!4U =ńo IǾ }'Fԗк[uh#H&|l"lOaԟecu+ϓ[Hd¶lZMgჳBoUВ4x݌.h㯾 ߧg_jNHKX#.anOI@m̄.ED!l"_՛]$A$"h:ݟYNpDQ~ьm֖%|c-9^JaI(QtL:x\4y2@P!ّw75ttF.nJYYtˀ˅NBldМSjL(gjOfJf,g~KM{k'ueڟITߜo|grRK*Ob02!Vh6ʾ%b2 hriZ-hQaM yy͸G]u17"3g2d=nBsOb̳O?[uպu8 ~掘QN,@ =q*}(WP_f T ٝ:Kp>EOhQ#b"HFRfcg4X9`2W=h_aWݞ֬&#&-)͈%->ڬ}{ʕ\_[GAe%G\|1'^=ߒ~' roˤ㎣yj)8rs2ZeXA`E{,e&J΂z\I3t:x> -f Kr"'/ gŌlB0%$J$-_Ark:-Z>OG3br%)vOR^L'G8fe !8!#cz=B8KEs_:flʌZiC_e:9u>TZ"Roo) L>xjΑΙõ/ |~y#/q pO(d;;;ἄK@d_HvUs)]U] ʿXBwNJ d<V-~o//wl~*5Aq&5=̀hK_}2!;w)6=AO_@Zo}܃4's8wӿ@GFIL0K97$" ;ixUZ֮csύ:0k'jE %m*KgnMe=0jPl喖%:[9᪫ȔpE7L n-R<==/i-Gä-$ !BIl0[l8á-.ڈD}>A$1E#AHs$!/6 KhxfZtz;p@1QhZWPђlFcHkl9\k';^{/̰Ⴓ~=#f|H@ znPH zre_gOPR_'/e M-B jH~[a/&?d+$R ~+z1f s$۰` FɑMZcͼy̾d Imj_o/3g@Z `K&LH0HAE͇$8G20o$KiJ?J/|3׿+/lkDDظ|l$1j$յn*jM(+NVw;!-) F$1$ D%1Q "&1xM27)"~#qݐ gۙN?o-+oƷߡ[r3OxG?qXz%zg.|E8 A`Ғ%xu$QL8FV{VɼT'2WV@[C;Vu )k8k-,!6oWN s/& t׋O Yl~*xac?4mWʸѪRQE(a!?&.[F<}\ >>W/sθN¡;1u%5eSsc /QR$ojZ -awKǍhX^=cXlw~fZrQY㧍bW@$q`O'M;5'+ǓViҁJ0CvE; &}T~>nGD҂^%UZ**p&\ѵkofw倢mj#jRtKQ[s Ö,W^f$Iwy&_|Qց@k;5j["Ji4c*3,! :h_t&/pKܷd"A_[_.xPEt =E;hnHFwuLUT2\ IK7(KF8GI^}ow3gڻp05+M13XyGSZ U{NV>z{^?y=lYn]M{>0&NػnyUW)^޽>^v\13x%@v+bzcTR>"رqҌLpYMhĆ P >z1" b8\}޺]= +g*g.cs MƸ=U{\|rWZFOpy"1pEgtƛ^Chگ}[Gnc=mh7pnDy9zeΖQ#5>uh΍$F/]lC=Lq{?;FI(ƑGh8Z6n]P $$/PԒt2$&3u}it <]]|@tc˫w__yeHwgM޽GO>o^D[CCb<\IX_$m.Fňˍ+il[ڭѴfU-_hEsijhyhr@&.;tAz1tMZ%3״$ {9(Sr,Lf G\v)_vYu}:29kIKK {v+%=ӟH$2fnDn7۲)Sx$ nyW07,!ۑ/WF,6}{UV[E,$2x$ÄapuYMfVل$`Jm0Xy IDATY,m2isJxl20DE 1"D‘wz<+dAQ"lX9ޛ9m(0'hIQ Usy*Rkh2;kG״~=79sѾ?\ l{D~5'9 Wڅ$]%^++H%(@M,/,F?I%bŸH-*~M@PyGPֆϛ6?^I5;ZKKPyaL\|"'t#-60fOH0='ǣߨiϩ:Ŷ _s 7`2a|21U~$b.cډ'$If޽yiR)m ]R AtSj•7W'uPHP+MϧEǚR:~|F_:hOt/Grn) sοFm4XY1߽8 =RJ'hM `+}[@l0 h?|孷ܳH(GI$eKQ%z&HX' Dj/vdBEh,43Cv0IѰ21: ٞbuםXv s u9m۶-IGA? ky~X"m>iSdT_Zy 0-)yjͿݴ1ӧ/7e V"DQ¼%l M   Ho11,A~ I #A+(lW0AGBܐy y383.&9%th@W1MCFɸtك$dΐh5=B_JI՞eԉ;Έ4dqZ@ q[eD@0w%ih Xd 9bAINRD ^SL~0@9/30$ dWF/s* epH6 (Pf!mYEϣj,XANy?Zw + k9rrF9n"vDYڳz~hsjz0-G7~[]&CP#-kNTo'hiz[Sߧ&@tnLrяdXd#gI'R:u&"E`ڏjM˶O$ J1y>t"Nb@ ?끠.#W=T~H `}:@VJ:ucPݞi5pN-/CՌ)6>,x#]Ob׊#Ωe^>ui̯֬v<>%'4 A& =N'7v_HQmm"*y:+y4/#S GlRpA9]k#+Kl/ϣtD֛ef1r5w3r+MkIف7\ppg`_2NQerҰ<AA$bOH}{iʔ}HI)(I}唕1DDI&r}gU'}|BNixSH*ɫo7R9h8c_RT ])]^58v___̑LxqlY\ЃǤW>ǃ'CR:l7zg3_sUoQY3ERd-iХJ`Ay4OuI[%P:Bx(T^d-i #=u:޾73̛ܝ4:b;צ3GO&)|u ݯƑMae̎acek+ 73!KQQݬ#b:mb<^+|,85%e?w!Kt~m 8j뱖^$:;{O` \sN`kvr9ڎ TYjv @XXN\#ylv>**ahI;C#`Cj{TU2x?yTJg-RtPy?T V~2] .YQ{尷,JB5OWǩ[ms=h*; F]tWn(Y3PV"f?A~‹SFLт{_6к^l2"i+P˺]5Ex|I|hkf>i*3($LyE/'c~DKRN&^!xwU&d;J`VQuv╕()-C;g&3-+Y j}3C_ ;Q?*mJIENDB`pychess-0.12.2/glade/board.svg0000755000175000017470000002227212641567764016466 0ustar tamasusers00000000000000 image/svg+xml pychess-0.12.2/glade/panel_book.svg0000755000175000017470000005225612641567764017515 0ustar tamasusers00000000000000 image/svg+xml pychess-0.12.2/glade/dock_top.svg0000755000175000017470000000654612641567764017207 0ustar tamasusers00000000000000 image/svg+xml pychess-0.12.2/glade/panel_comments.svg0000755000175000017470000004151212641567764020401 0ustar tamasusers00000000000000 image/svg+xml pychess-0.12.2/glade/PyChess.glade0000644000175000017470000076652112650170674017231 0ustar tamasusers00000000000000 False 5 normal Chess client https://github.com/pychess/pychess https://github.com/pychess/pychess about.png False False False True end 0 100 1 1 10 False 7 Game information True pychess dialog True False 5 True False end gtk-cancel False True True True False True False False 0 gtk-ok False True True True False True False False 1 False True end 0 True False 4 2 2 True False True False 2 0 none True False 58 True False 1.1175870895385742e-08 3 x-office-address-book False True 0 True False 3 4 6 4 True True False False 1 2 1 2 True False 0 Event: 1 2 GTK_FILL True False 0 Site: GTK_FILL True True False False 1 4 True False 0 Round: 2 3 1 2 GTK_FILL True True False False adjustment1 1 3 4 1 2 True False 0 White: 2 3 True False 0 Black: 2 3 2 3 True True False False 1 2 2 3 True True False False 3 4 2 3 True True 1 True False 3 <b>Game data</b> True False True 0 True False 2 0 none True False 58 True False 0 3 x-office-calendar False True 0 True True True True 1 True False 3 <b>Date of game</b> True True True 1 True True 1 game_info_cancel_button game_info_ok_button 1 9999 3 1 10 1 999 15 1 10 True False gtk-new True False gtk-missing-image True False gtk-missing-image True False gtk-network True False gtk-fullscreen True False gtk-export True False gtk-connect True False gtk-connect True False gtk-open True False gtk-save True False gtk-save-as True False gtk-undo True False gtk-refresh True False gtk-fullscreen True False gtk-info True False Pychess pychess True False True False False True False _Game True False _New Game False True False True image1 False Play _Internet Chess False True False True image2 False True False _Load Game False True False True image3 False False True False Load _Recent Game True False False Open _Database True False True False Setup Position True False True False Enter Game _Notation True True False _Save Game False True False False True image4 False Save Game _As False True False False True image5 False False True False False Share Game _Export Position False True False False True image16 False _Analyze Game False True False False True False True False gtk-properties False True False False True True accelgroup1 False False Player _Rating True True False gtk-close False True False False True True accelgroup1 gtk-quit False True False True True accelgroup1 False True False _Edit True False False True False False _Copy PGN True False True False False _Copy FEN True True False False True False _Engines True gtk-preferences False True False True True accelgroup1 False True False _Actions True False False True False False Offer _Abort True False True False False Offer Ad_journment True False True False False Offer _Draw True False True False False Offer _Pause True False True False False Offer _Resume True Offer _Undo False True False False True image6 False True False False True False False _Call Flag True False True False False R_esign True False True False False Ask to _Move True True False False True False Auto Call _Flag True False True False _View True False _Rotate Board False True False False True image7 False _Fullscreen False True False True image8 False Leave _Fullscreen False False True image13 False False True False False _Show Sidepanels True True False True False _Log Viewer True True False False True False False _Hint mode True False True False False Sp_y mode True False True False _Help True False False True False About Chess False True False How to Play False True False Translate PyChess Tip of the Day False True False image9 False True False gtk-about False True False True True accelgroup1 False True 0 True False True True 1 True False gtk-directory True False gtk-directory True False gtk-directory True False gtk-directory True False gtk-open True False gtk-open True False gtk-open Default Knights Beep Select sound file... No sound False 7 Preferences pychess True False 8 True True True False 3 True False 6 12 True False 0 none True False 3 12 True True The displayed name of the first human player, e.g., John. False False True False <b>Name of _first human player:</b> True True firstName False True 0 True False 0 none True False 3 12 True True The displayed name of the guest player, e.g., Mary. False False True False <b>Name of s_econd human player:</b> True True secondName False True 1 True False 0 none True False True False 3 12 True False 3 _Hide tabs when only one game is open False True True False If set, this hides the tab in the top of the playing window, when it is not needed. start True 0.5 True False False 0 _Use main app closer [x] to close all games False True True False If set, clicking on main application window closer first time it closes all games. start True 0.5 True False False 1 Auto _rotate board to current human player False True True False If set, the board will turn after each move, to show the natural view for the current player. start True 0.5 True False False 2 Auto _promote to queen False True True False If set, pawn promotes to queen without promotion dialog selection. start True 0.5 True False False 3 Face _to Face display mode False True True False If set, the black pieces will be head down, suitable for playing against friends on mobile devices. start True 0.5 True False False 4 Sho_w cords False True True False If set, the playing board will display labels and ranks for each chess field. These are usable in chess notation. start True 0.5 True False False 5 Show _captured pieces False True True False If set, the captured figurines will be shown next to the board. start True 0.5 True False False 6 Prefer figures in _notation False True True False If set, PyChess will use figures to express moved pieces, rather than uppercase letters. start True 0.5 True False False 7 Colorize analyzed moves False True True False If set, PyChess will colorize suboptimal analyzed moves with red. start 0.5 True False False 8 Show elapsed move times False True True False If set, the elapsed time that a player used for the move is shown. start 0.5 True False False 9 Show evaluation values False True True False If set, the hint analyzer engine evaluation value is shown. start 0.5 True False False 10 True True 0 True False <b>General Options</b> True False True 2 True False 0 none True False 3 12 True False True False 3 F_ull board animation False True True False Animate pieces, board rotation and more. Use this on fast machines. start True 0.5 True False False 0 Only animate _moves False True True False Only animate piece moves. start True 0.5 True fullAnimation False False 1 No _animation False True True False Never use animation. Use this on slow machines. start True 0.5 True fullAnimation False False 2 True True 0 True False <b>Animation</b> True True True 3 True False _General True False True False 3 True False 6 12 True False 0 none True False 3 12 True False 12 True False Use opening _book False True True False If set, PyChess will suggest best opening moves on hint panel. start True 0.5 True True True True 0 True False 12 True False 3 True False Polyglot book file: False False 0 True False True True 1 True True 1 False False 0 True False Use _local tablebases False True True False If set, PyChess will show game results for different moves in positions containing 6 or less pieces. You can download tablebase files from: http://www.olympuschess.com/egtb/gaviota/ start True 0.5 True True True True 0 True False 12 True False 3 True False 5 Gaviota TB path: False False 0 True False True True 1 True True 1 False False 1 Use _online tablebases False True True False If set, PyChess will show game results for different moves in positions containing 6 or less pieces. It will search positions from http://www.k4it.de/ start True 0.5 True True False False 2 True False <b>Opening, endgame</b> True False True 0 True False 0 none True False 3 12 True False 12 True False Use _analyzer False True True False start True 0.5 True True False False 0 True False 12 True False True False True True 0 True False 0 The analyzer will run in the background and analyze the game. <b>This is necessary for the hint mode to work</b> True True False False 1 True True 1 False False 0 True False Use _inverted analyzer False True True False start True 0.5 True True False False 0 True False 12 True False True False True True 0 True False 3.7252902984619141e-09 The inverse analyzer will analyze the game as if your opponent was to move. <b>This is necessary for the spy mode to work</b> True True False False 1 True True 1 False False 1 True False True False Maximum analysis time in seconds: False False 6 0 True True 4 False False adjustment2 True False True 2 1 True True 2 True False <b>Analyzing</b> True False True 1 1 True False _Hints True 1 False True False 3 True False 6 0 none True False 4 12 True False 5 True True in True True False True False True True 0 True False 4 True False True False True False 0 0 True False 2 True False gtk-add False False 0 True False Install new True False False 1 True True 0 False True False True False 0 0 True False 2 True False gtk-remove False False 0 True False Uninstall True False False 1 True True 1 False True False True False True True False 0 True False 2 True False gtk-ok False True 0 True False Ac_tive True False False 1 True True 2 gtk-about False False True False True True True 3 False True 1 True False <b>Installed Sidepanels</b> True 2 True False Side_panels True 2 False True False True 3 True False 3 True False vertical 6 True False 6 3 Board Colours True False 0 none True False 12 True False 0 vertical True False 9 True False Light Squares : False False 0 light_cbtn True True True rgb(117,80,123) False False 1 False False 4 0 True False 9 True False Dark Squares : False False 0 dark_cbtn True True True rgb(186,189,182) False False 1 False False 4 1 True False Reset Default Colours True True True half 0.43000000715255737 0.49000000953674316 False False 0 False True 4 2 True False <b>Board Colours</b> True False False 0 True False 0 none True False 12 True False vertical True True etched-out 2 2 True True 6 True True True 1 True False <b>Chess Sets</b> True True True 1 3 True False Themes 3 False True False 3 True False 6 12 True False 5 _Use sounds in PyChess False True True False start True 0.5 True False False 0 False 0 none True False 3 12 True False 4 True False liststore1 0 True True 0 True False <b>Sound Theme</b> True False True 1 True False 0 none True False 3 12 True False 15 3 3 3 True False liststore2 0 1 2 GTK_FILL True False 1 2 1 2 GTK_FILL GTK_FILL True False 1 2 2 3 GTK_FILL GTK_FILL True False 1 2 6 7 GTK_FILL GTK_FILL True False 1 2 7 8 GTK_FILL GTK_FILL True False 1 2 8 9 GTK_FILL GTK_FILL False True True False True False gtk-media-play 2 3 GTK_FILL False True True False True False gtk-media-play 2 3 1 2 GTK_FILL False True True False True False gtk-media-play 2 3 2 3 GTK_FILL False True True False True False gtk-media-play 2 3 6 7 GTK_FILL False True True False True False gtk-media-play 2 3 7 8 GTK_FILL False True True False True False gtk-media-play 2 3 8 9 GTK_FILL True False 0 A player _checks: True 1 2 GTK_FILL True False 0 A player _moves: True GTK_FILL True False 0 Game is _drawn: True 8 9 GTK_FILL True False 0 Game is _lost: True 7 8 GTK_FILL True False 0 Game is _won: True 6 7 GTK_FILL True False 0 A player c_aptures: True 2 3 GTK_FILL True False 3 4 5 GTK_FILL GTK_FILL 3 True False 0 Game is _set-up: True 5 6 GTK_FILL True False 1 2 5 6 GTK_FILL GTK_FILL False True True False True False gtk-media-play 2 3 5 6 GTK_FILL True False 0 _Observed moves: True 10 11 GTK_FILL True False 0 Observed _ends: True 11 12 GTK_FILL True False 1 2 10 11 GTK_FILL GTK_FILL True False 1 2 11 12 GTK_FILL GTK_FILL False True True False True False gtk-media-play 2 3 10 11 GTK_FILL False True True False True False gtk-media-play 2 3 11 12 GTK_FILL True False 3 9 10 GTK_FILL 3 True False 3 12 13 GTK_FILL True False 0 Short on _time: True 13 14 GTK_FILL GTK_FILL True False 1 2 13 14 GTK_FILL GTK_FILL False True True False True False gtk-media-play 2 3 13 14 GTK_FILL True False 0 _Invalid move: True 3 4 GTK_FILL GTK_FILL True False 1 2 3 4 GTK_FILL GTK_FILL False True True True True False gtk-media-play 2 3 3 4 GTK_FILL True False 0 Activate alarm when _remaining sec is: True 14 15 GTK_FILL True False True True 3 False False adjustment3 True False False 0 1 2 14 15 True False <b>Play Sound When...</b> True False False 2 4 True False _Sounds True 4 False True False True False 6 3 True False 5 _Auto save finished games False True True False start True 0.5 True False False 0 True False 18 True False 3 3 True False 0 Save files to: 0 0 True False 0 1 0 2 True False 0 0.49000000953674316 Use name format: 0 1 True True out 1 1 True False 0 2 .pgn 2 1 True False vertical True False start 1 0 Names: #n1, #n2 False True 0 True False 0 Year, month, day: #y, #m, #d False True 1 1 2 2 False False 1 True False 5 Save elapsed move _times False True True False start True 0.5 True False False 2 True False 5 Save analyzing engine _evaluation values False True True False start True 0.5 True False False 3 True False 5 Save _own games only False True True False start True 0.5 True False False 4 5 True False Save 5 False True True 0 uci xboard False 9 Manage engines dialog True False 3 True False end gtk-close False True True True True False False 1 False True end 0 True False 12 True False 0 none True False True True never in True True False False True 0 True False True False True False 4 2 3 3 True False 0 Command: 1 2 GTK_FILL GTK_FILL True False 0 Protocol: 4 5 GTK_FILL GTK_FILL True False 0 Parameters: 2 3 GTK_FILL GTK_FILL True True Command line parameters needed by the engine. False False 1 2 2 3 GTK_FILL True False True False True False Engines use uci or xboard communication protocol to talk to the GUI. If it can use both you can set here which one you like. liststore3 True False 0 1 2 4 5 GTK_FILL True False 0 Working directory: 3 4 GTK_FILL GTK_FILL True False The directory where the engine will be started from. 1 2 3 4 GTK_FILL True False True False False False False False 1 2 1 2 GTK_FILL False True 0 True True in True True liststore4 True both True True 4 1 True True 1 True True 1 True False 3 start gtk-new False True True True True True False False 0 gtk-copy False False True True True True False False 1 gtk-delete False True False True True True True False False 2 False True 2 engines_close_button pychess-0.12.2/glade/piece-unknown.png0000755000175000017470000000576312641567764020154 0ustar tamasusers00000000000000PNG  IHDR.0neHsRGBbKGD pHYs f fItIME3 sIDAThřkpyvWJde0 % SK;ng4С:ih駦/ⴄ$L3'NY3XlIV+~F W2gy/γy9+xKeI&#h?Zmq:Bn@U<c;,8qR==}www Iʹe۶~(r24166iĪcߨ=}ۍ)۶K $IȲatv0 8pBޞBU@몪^d2;5Mc6)))AQ,R=ΟL&UA k391$I;;wVLoWU;:uD"i133 ##P]]M(;R&EEBx&m*YB  `  Nl*݂u]DCC#X5eqe\]uVd2xKMM H xwwWQ:> P[[ իWI/xhMu b@Gw=o+^@0`ttMݝo(fDvwn]HZ0@,FH|^^^ݏZ z' .}qr18QWWG4]v~㼘ʇ$t \ݾPP nY)EU9H7ghii!P]]M4]"JKK9rU+tAYIŒ 3~y{ !mȲpMӸr TW8ϱažILGb b;6wƍ=}'dzrKw6ԣiyͼzyy=2Ciu9yDNU(b|!Yk(l͛7Uq+<^r˶PUݿ$gz{NhC+䡗^>-!4Sf$Il۶MӈyssrawlMcǏ6?V_b\blQ+**سe144~CKauxDz.z?jݴs_ض9[0 t: T "ط4m=L*7TUP}*7oPC;;wُVU<۲,bxx bII3$,C_P7o?<N?kg_zЕ}BQS6U..]bjjjV/Į]+xn:)sw|\:#;Ξ9}vO8κu>N2$,l qr !.Js{޹;9WSM)bjlBkk :x㷂Ŝk$7B;2-* Y~xs1eIl X#'d{:eV^vs&f()  QT5_,T=Upb_קO8R扙xbpleJuk߰~ >l7:~ݏO}>4͇(Ȋ<9cx8ظK4ua3x#q8Пß=ojXUUQJQJEdY !'87slۙYhkYޡ/2BzBUE *P/K /=ps@8-6` !,IdiI+xb H@YPޡ@}mYS/et~>v0+g鬙ϜWU,7wHVŢ-ْ \>"O@?=u@ڱBƖ,IENDB`pychess-0.12.2/glade/dock_star.svg0000755000175000017470000000500212641567764017340 0ustar tamasusers00000000000000 image/svg+xml pychess-0.12.2/glade/piece-black.png0000755000175000017470000000476012641567764017525 0ustar tamasusers00000000000000PNG  IHDR.0neHsBIT|d pHYs P P<{tEXtSoftwarewww.inkscape.org< mIDATh[lgfw]lîml@l@BM@9n^WR+UV}h+JPVQZ6I)l _/8K^g,ƗY>̜3}155œmvp-7}NȲicT52l\Qx& TTTJ%䓫LNN (c@$dYrqėq\+U>ZT52%\ x rv;U<(a x x'q:]$333,//<#mػwd0 Pb=+ϟt1??DRhh48B!^ULOOȎVڑ+JÇzY\\2J K{|x,?MM{Cin߾E4Ro[1,+J @mm-$"Qәet\vVCE 6k-t4hZWY]]g(++8 nVر!X ð<宩|FgqݼI$IPrmMYPQQ@, C't: ׫g<N[iܹ3@CCyxcSiq1JKKKzgS?6dg+snf{j%M(//47+!nF(םY,yO("lt?AIɃ0 q cс){n3::aF4xii>.\蠷`brr_LW.݈`qqoX0 n߾ ds7o hUHo1 ,ʀl&da̘|&lh[cd&9{G~|>nYaِeY&] Of2 LSSS;70rׄkHҼf۱ddfzM0 ]70 Mu0ud2ܜy2sK7%`9W.uvKC~k[=nUr\nIj!)P!S"ĪntS/'}@< ,wvK*IVnԺ YPJ,2ILBE9ٮhZ&g\RBtTf8Aǁxgǹ6q<.63Gdirx!ZK,aZgǹ|e |Gh*rT|[ oΎs4m,xWzuv[5e1ꍛAIENDB`pychess-0.12.2/glade/fics_lounge.glade0000644000175000017470000065320412651123531020130 0ustar tamasusers00000000000000 1 240 15 1 10 60 10 1 10 124 40 1 1 1 1 120 8 1 1 3 False 5 Challenge: <Player> center True pychess normal True False 1 True False end gtk-cancel True True True True False False 0 True True True True True False 0 0 True False 2 True False challenge.png False False 0 True False Send Challenge True False False 1 False False 1 False True end 0 True False True False <big>Challenge:</big> True False False 0 True False 7 gtk-orientation-portrait False False 1 True False <big><b>mgatto</b> (1337)</big> True False False 2 False False 1 True False 5 12 True False 10 True False 3 3 3 True True True True 1 True False 0 0 True False 2 True False gtk-properties False False 0 2 3 GTK_SHRINK | GTK_FILL True True True True 1 True False 0 0 True False 2 True False gtk-properties False False 0 2 3 1 2 GTK_SHRINK | GTK_FILL True True True True 1 True False 0 0 True False 2 True False gtk-properties False False 0 2 3 2 3 GTK_SHRINK | GTK_FILL True False 25 Lightning: True True False True 0.5 True challenge1Radio 2 3 GTK_FILL True False 25 Standard: True True False True 0.47999998927116394 True challenge1Radio 1 2 GTK_FILL True False 25 Blitz: True True False True 0 True True GTK_SHRINK | GTK_FILL True False 35 True False 0 2 min, Fischer Random, Black True 1 2 2 3 True False 35 True False 0 10 min + 6 sec/move, White True 1 2 1 2 True False 35 True False 0 5 min True 1 2 True True 0 False False 2 button1 sendChallengeButton False 5 Edit Seek center True pychess normal True False 2 True False end gtk-cancel True True True True True False False 0 gtk-ok True True True True True True False False 1 False True end 0 True False True False 0 none True False 3 4 True False True False 0 0 5 5 stock_alarm.svg 6 False False 0 True False 0 12 True False 3 Untimed True True False 0.5 True True True 0 True False 21 38 True False False True 1 True False 2 4 True False 2 True True False True False 0 Minutes: False True 0 True True False False adjustment1 False True 1 True False 0 Gain: False True 2 True True False False adjustment2 False True 3 True True 0 True False True False Time control: False True 0 True False 0 Standard True True 1 True True 1 True True 2 True True 1 True False <b>Time Control</b> True True True 0 True False 0 none True False 3 3 True False True False 0 0 5 5 48 weather-clear False True 0 True False 0 13 True False 3 Don't care True True False 0.5 True True True 0 True False 21 38 True False False True 1 True False 2 4 38 True False True False True False True False 1 4 True False True False Your strength: False True 0 True False 0 2 weather-few-clouds 1 False True 1 True False 0 1 1200 False True 2 True False 5 (Blitz) False False 3 True True 0 True False True False True False 0 Opponent's strength: False True 0 True False 0 2 weather-clear 1 False True 1 True False 0 1 1000 False True 2 True False - False True 3 True False 0 2 weather-overcast 1 False True 4 True False 0 1 1400 5 False True 5 False True 0 True True 1 True True 0 True False When this button is in the "locked" state, the relationship between "Opponent's strength" and "Your strength" will be preserved when a) your rating for the type of game sought has changed b) you change the variant or the time control 20 False False 1 True True 0 True False 4 True False True False True False Center: False True 0 True False 3 True False 0 2 weather-few-clouds 1 True True 1 True False 2 True False 1200 True True 2 False True 0 18 True True adjustment3 0 False left True True 1 True True 1 True False True False True False Tolerance: False True 0 True False 3 2 True False 0 1 ±200 False True 1 18 True True adjustment4 0 False left True True 2 True True 0 Hide True True True none 0 False True 1 True True 2 True True 2 True True 1 True False <b>Opponent Strength</b> True True True 1 True False 0 none True False 0 3 True False True False 0 0 10 5 piece-unknown.png 5 False True 0 True False 0 7 True False 3 Don't care True True False True 0.5 True True True True 0 True False 21 38 True False False True 1 True False White True True False True 0.5 True nocolorRadio True True 0 True True 2 True False Black True True False True 0.5 True nocolorRadio True True 0 True True 3 True True 1 True False <b>Your Color</b> True True True 2 True False 2 0 none True False 0 3 3 True False True False 0 0 5 5 48 gtk-preferences 6 False True 0 True False 10 True False 3 Play normal chess rules True True False True 0.5 True True True True 0 True False 21 38 True False False True 1 True False Play True True False 0.5 True noVariantRadio False True 0 True False 0 1 70 True False liststore1 on 0 False True 1 False True 2 True True 1 True False <b>Chess Variant</b> True True True 3 True False 0 none True False 0 3 3 True False True False 0 0 5 5 document-properties.svg 6 False True 0 True False 0 12 True False 3 Rated game True True False True 0.5 True False True 0 Manually accept opponent True True False 0.5 True False True 1 True True 1 True False <b>Options</b> True True True 4 True True 1 button15 button16 True False PyChess - Internet Chess: FICS pychess True False True False False False 0 True False 12 12 True False 12 True True True False 6 6 True False 6 True False 0 6 0 Active Seeks True True 0 True False True True True True True False 6 _Clear Seeks True False False 1 True False True True True True True False 6 _Accept True False False 2 True False True True True True True False 6 _Decline True False False 3 False True 0 True True never True True True True 1 True False False True 2 True True True True False 3 12 True False 10 True False 3 3 3 True True True True 1 True False 0 0 True False 2 True False gtk-properties False False 0 2 3 GTK_SHRINK | GTK_FILL True True True True 1 True False 0 0 True False 2 True False gtk-properties False False 0 2 3 1 2 GTK_SHRINK | GTK_FILL True True True True 1 True False 0 0 True False 2 True False gtk-properties False False 0 2 3 2 3 GTK_SHRINK | GTK_FILL True False 25 Lightning: True True False True 0.5 True seek1Radio 2 3 GTK_FILL True False 25 Standard: True True False True 0.47999998927116394 True seek1Radio 1 2 GTK_FILL True False 25 Blitz: True True False True 0 True True GTK_SHRINK | GTK_FILL True False 35 True False 0 2 min, Fischer Random, 1800↓, Black 1 2 2 3 True False 35 True False 0 10 min + 6 sec/move, 1400↑, White 1 2 1 2 True False 35 True False 0 5 min, 1200-1800, Manual 1 2 True True 0 True False 6 True True True True True False 0 0 True False 2 True False seek.png False False 0 True False Send all seeks True False False 1 False False end 0 True True True True True False 0 0 True False 2 True False seek.png False False 0 True False Send seek True False False 1 False False end 1 True True 1 True False Create Seek False True 3 True False _Seeks / Challenges True False True False 6 2 2 True False Rating 90 GTK_FILL True False 1 2 True False Time 1 2 1 2 GTK_FILL 1 True False Seek _Graph True 1 False True False 6 6 True False 6 True False 0 6 0 Players Ready True True 0 True False True True 1 True True True True True False 0 0 True False 2 True False challenge.png False False 0 True False Challenge True False False 1 False False 2 True True True True True False 0 0 True False 2 True False gtk-find False False 0 True False Observe True False False 1 False False 3 True True True True True False 0 0 True False 2 True False user-offline False False 0 True False Start Private Chat True False False 1 False False 4 False True 0 True True never True True True True 1 2 True False _Player List True 2 False True False 6 6 True False True False 0 6 0 Games Running True True 0 True False True True 1 True True True True True False 0 0 True False 2 True False gtk-find False False 0 True False Observe True False False 1 False False 2 False True 0 True True never True True True True 1 3 True False _Game List True 3 False True False 6 6 True False 6 True True True True True False 0 0 1 1 True False 3 True False gtk-refresh 1 False False 0 True False _My games True False False 1 False False start 0 True True True True True False 0 0 1 True False 2 True False 1 gtk-media-play 1 False False 0 True False Offer _Resume True False False 1 False False end 0 True True True True True False 0 0 1 1 True False 3 True False 1 gtk-media-stop 1 False False 0 True False R_esign True False False 1 False False end 1 True True True True True False 0 0 1 1 True False 2 True False Offer _Draw True False False 0 False False end 2 True True True True True False 0 0 1 1 True False 2 True False Offer A_bort True False False 0 False False end 3 True True True True True False 0 0 1 1 True False 3 True False gtk-find 1 False False 0 True False Pre_view True False False 1 False False end 5 True True True True True False 0 0 1 1 True False 3 True False Examine True False False 1 False False end 4 False True 0 True True True True True True 1 4 True False _Archived True 4 False True True 0 True True 0 True False 12 True False 0 none True False 3 12 True False <b>[Username]</b> True False True 0 True False 0 0 0 True False 0 none True False 3 12 True False True False <b>News</b> True True True 1 True False 0 none True False 3 12 True False 3 Show Console True True True True False False 0 Show _Chat True True True True False False 0 _Log Off True True True True False False 1 True False <b>Tools</b> True False True 2 False False 1 True True 1 Asymmetric Random pychess-0.12.2/glade/16.png0000755000175000017470000000141412641567764015605 0ustar tamasusers00000000000000PNG  IHDR ͣ9bKGD pHYs }eYtIME :8IDAT(eMHTQs̹W4gFTufRk%ʈ@!hg uX E)hpY)GQ+\8?wp̙w~/Q`9> Il6$ >M oa_@$I$IbmmRK)Y.q{N>˽0M󲦅M% HmW޾^sttB)*U R4-f}x<`@Vy눢(k[$`jjxˑc1fI(@LSKFڰQJcp\i3eYviDw^B Kd\eNsų ~u kxuuғ~_"爬|ЧnO%C˲LF`؜.mŌybs>0jPe~WWgyEE PUa+ˑ M /kmjj/p+ )WA776{;3bRuf#WW^=@B=&@ @X"9xp-GIENDB`pychess-0.12.2/glade/newInOut.glade0000644000175000017470000027234412641567764017430 0ustar tamasusers00000000000000 1 21 20 1 1 1 1 21 20 1 1 1 400 310.5 345 225 0.90000000000000002 1 1 999 1 10 999 1 10 False 6 New Game pychess dialog True False 6 True False end gtk-cancel True True True False True False False 0 True True True True True False True False 0 0 True False 2 True False gtk-ok False False 0 True False _Start Game True False False 1 False False 1 Copy FEN True True True True True 2 Clear True True True True True 3 Paste FEN True True True True True 4 False True end 0 True False True False 6 True False 2 0 none True False 3 True False 58 True False 0 5 5 stock_people 6 False True 0 True False start 4 2 12 1 32 True False 1 2 2 3 32 True False 1 2 True False 0 _Black player: True blackPlayerCombobox 2 3 32 True False 0 _White player: True whitePlayerCombobox True False 4 18 True True adjustment1 0 right True True 0 True False weather-few-clouds 1 False True 1 2 3 4 True False 2 True False 4 18 True True adjustment2 0 right True True 0 True False weather-clear 1 False True 1 2 1 2 True True 1 True False <b>Players</b> True True True 0 True False 2 0 none True False 3 True False 58 True False 0 5 5 stock_alarm.svg 6 False False 0 True False 3 _Untimed True True False True 0.5 True False False 0 True False 21 21 True False False True 1 True False Blitz: 5 min True True False True 0.5 True notimeRadio True True 0 True False 0 0 21 21 True False gtk-properties 1 False True 1 False False 2 True False Rapid: 15 min + 10 sec/move True True False True 0.5 True notimeRadio True True 0 True False 21 21 True False gtk-properties 1 False False 1 False True 3 True False Normal: 40 min + 15 sec/move True True False True 0.5 True notimeRadio True True 0 True False 21 21 True False gtk-properties 1 False False 1 False True 4 True True 1 True False <b>Time Control</b> True True True 1 True False 2 0 none True False 3 True False 58 True False 0 5 5 gtk-preferences 6 False True 0 True False 3 _Play Normal chess True True False True 0.5 True True False True 0 True False 21 21 True False False True 1 True False Play Fischer Random chess True True False True 0.5 True True playNormalRadio True True 0 True False 21 21 True False gtk-properties 1 False True 1 False True 2 True False Play Losers chess True True False True 0.5 True True playNormalRadio True True 0 True False 21 21 True False gtk-properties 1 False True 1 False True 3 True True 1 True False <b>Chess Variant</b> True True True 2 True True 0 False 2 10 140 True False 0 none True False 2 12 True False 2 True False False True 0 True True in True True False True True True 1 True False <b>Open Game</b> True True True 0 True False 0 none True False 2 12 True False True False True True 0 True False True False 1. True False 0 True False True True False none True False 0 0 True False 2 True False gtk-media-previous False False 0 False False 0 True True False none True False 0 0 True False 2 True False gtk-media-rewind False False 0 False False 1 True True False none True False 0 0 True False 2 True False gtk-media-forward False False 0 False False 2 True True False none True False 0 0 True False 2 True False gtk-media-next False False 0 False False 3 True False 1 False True 1 True False <b>Initial Position</b> True True True 1 True True 1 225 False adjustment4 adjustment3 225 400 223 100 True False 0 none True False 4 1 12 True True in True False <b>Enter Game Notation</b> True 2 2 24 24 True False 199 -1 True True 2 525 525 False 500 700 523 True False 0 none True False True True 12 True False vertical True False True True 0 True False 6 25 25 True False vertical True False 3 3 True False start Halfmove clock right 0 2 True False start En passant line 0 3 True False start Side to move 0 0 True False start Move number right 0 1 Black O-O True True False 0 True 2 2 Black O-O-O True True False 0 True 3 2 White O-O-O True True False 0 True 3 1 White O-O True True False 0 True 2 1 True True True start 1 0 True True adjustment6 True 1 2 True True adjustment5 True 1 1 1 True False start start False 0 1 3 True True 1 True True 4 False False True 3 False True 1 2 2 True True 3 False True 1 button15 button16 copy_button clear_button paste_button pychess-0.12.2/glade/random.png0000644000175000017470000000061212641567764016633 0ustar tamasusers00000000000000PNG  IHDRagAMA atIME ?+.IDAT8O_KP*BKlYI x% (vR,*( .Atگtgځg >řy&)a@ 1gCΆrU V]m-ᬕAWLY)llV8hGR+B'ڀa +Q7e(:*prڂTA\ .zEE|Ȱ: Q˫2:*pۿFڶc̹$g3|F|]jbd-a./xh7t-,#Q?_yjJIENDB`pychess-0.12.2/glade/panel_engineoutput.svg0000755000175000017470000005236712641567764021314 0ustar tamasusers00000000000000 image/svg+xml pychess-0.12.2/glade/stock-vchain-broken-24.png0000755000175000017470000000060112641567764021446 0ustar tamasusers00000000000000PNG  IHDR (sRGBbKGD pHYs  ~tIME h IDAT(ϵ1KPNnN"!CPEP[J5GdrHR <sϽ=.5@TA{JP]q46 CV(:jpiɳ2mz'M>th`׊>>۶>\iںѺa g)E?5Qg False 12 Tip Of The day pychess True False 6 True False 0 none True False 6 18 True True never True False none 275 True True 0 0 True True True True 0 Show tips at startup True True False True 0.5 True False False 1 True False 6 end gtk-go-back True True True False True False False 0 gtk-go-forward True True True False True False False 1 gtk-close True True True False True False False 2 False True 2 pychess-0.12.2/glade/globe.png0000755000175000017470000016106612641567764016461 0ustar tamasusers00000000000000PNG  IHDR\rfsRGBbKGD pHYs B(xtIME  Mj_ IDATxyeWUTCSzHwg̓!@AFQ'*(*/L !NNU5ᜳ9! $?U}֭{kgZX ka-ZX ka- K,|kKKih%+k$jbUFb)+ak !Ɛ). u K8;k;b(8@5Rmnu`ri>u~?ڼvꤖ;/z,SJ1X9/8΁X!ugAC8b9swpڅ+nVQw?z Wk,G~]_#dtQgԳH\'p!$8Bp9NN`åvNpX+ւ 3FP`u3v|UiկM/\N^YS[R~X]cp TH)BBH R!7|CkT2V׌4c E{gwPJ !a 5XWk~o,)qgΆBvf:绅N:鏯oj/8:%oI{;c]#nU8!H$JIH)ZpB,Q"FV*iFX]1R()|Z.\|)ztwC >'skqֆ LAQ8k1;?.+>s/vÂxJU/|ƅ+W,fdtmRH#[{(CJT8!B`7 jSl\aIJ}D^U~|&%Yra=@ETxs`]pbQ1`]3;kq;擇۽Ⱥ??Kj_W=g\igu &#j1iypp= '}.%>/,]s겄S֕+iI= wZ sng;T'G)}4kCz'` !Sxǐgk;^nr/ g| kW,yYѨ&N""EqIӘ ۗs瞌<78[lXj:݃S;k;vӂX.|˟˞cbБ& :$IDhqR29+@!㔱uKb.H"- l |w{"Ż>ٞAJ1dԃFn@$JGEQENy*د=sû]ۿZϿp]x)%E&c$%4QĚ(VLu%;' 6t K;tse60Ź*"6GkIUˇٹW?܌-&(S(cr6Xܚ??ha-8'|]׬y_/}#$&Mj$ DvNdT558韰 $q.EkȐv??sR;@Br_P c<+pENasCΙ? o/zۺ˞sO%XJ$IL%j1Jv3ȭ#-+sxs` ڜrʔ8=|.:~k.Tϓ E `(pE0"S⣦w'~~[/Ux ~fhˣ5,jE4 I[wLv /8o}{ 'pc!زh )L ,S3şvzЧ]?4/y[W/OPQD4k)4%MbIHC3сv <{ιA/J=ƀs|ߩ5\z'`=\Ͳ %"Vt <pbИF}ISc,AQd,0ZM~lo^ص'^j#8zͯwU_jZ)ҴNZkPOkD:JDb Ynɍ o !Hj[i9osoɉ+҂IH׎ pX"S'8C6I{)RgI#FW9r,ޅ齗]zeg$6N(i4j1zh=fg9q!:Mŀ1a(Oor@4pFH/iHy'wE%OD'9s1r^S"(<1ǎOvBpky[_{xG1k."!Ji6F8ke̺19:')~!RHJzCٶLƺ%q1ќ"]DD+:CѮG:Лs#BJ(THT )k|CkUm7,,8㯗㣯x _zZ3jp17iE#)hÓt,ZbhPt( !o[9<ӎq&w?4fU'7$:ɶ}mHav<)yqB0 'o )d4ĊĚgz7v8jz[NyϾ-mTIh6X<⬵#45P" {/k`XĚ11bɈbk4Dt$}Lin ;)D~,Eh28N>|059oEm֑CVxnT]~Ǫf,_2Y՗~Ʌ]xo"Qr܅ޫsc]?Gz[>1K}nإ8p繡q6Q/t?K)@JPRb֭;5$qL#D]p S| ~8zR^\GB%ak%87`ly wݷ'Y ^Sd7+65?aG&j5j4ҘS1'Tfb/!dw2iFK[4 {C=G SX8) Y^e={(Fc(|L3T8't~nv:RhDHTQpzP<6$}Cc(x a~WH5oi\yYa1#EQ$JJ;=o/wl˖{A;w_{kyϯ oH*vɚfsZ$IHӘ$ɡ`bӲCOYpS^=-V*ش<+3XLL܂^g`Ck(rCx֙ D>rpC/@Kևsغk(}_ %"D$( ; uyhG&<%7)A/w{Dh_!aCȲ [d=4۽-S7$[=/JEK[W*FZkP%h➃%#1kǤ--LwH33`Z8eLvI%J|@\;]G,{@ᬗXGVyk,kE?DJ.[퇘DJc}ز\o&wJ#>(0יKn-nƯЙq^n)U8SqsWe)rLr|'0lh7o=B?O\5_kFӤZ=%M5$AJ(;J֎Ė'2vNZz#ys8"sNdl\^J V"Yր3`o~٧Y'mIl'8xѷ5֨FFUBipƪ&>ՑkHJV#b/ADy(i{PPF:mԁx% Ne H!( R%x̞X9ҳWv+?x;gׯ}S}RHC\k}Ѩu7=Mqzn3=GKl+<J*+HFkpF;7P+c7`t}-)*q+VXZi h'}sI/^م{t·'ZCzzA6h>-O͞Ul;篍= ²sp!Kf.u|#VH6,,o &gsvMf{XyezBk2c Cn^/E׎xqS5FR^rU)`8ұ&gG+"*}mE `An2݌SԫBN)884ai]x9tz= ա4e.?5mKWs%_ӵcǣ$^h6i4uX#B jFRppVJ2۵3Sg +p>tɶ rT$L@FHA)t!DE+"/v#l\$QQ8ևpBӬH҄4NHkH7X-%JP/5 <.Q6!c,ڬYRD8o=IcVw9b7tT7_p/5WJ-MAE^2,#3)p΢%hnϒ$1 ^vz8{Y f4KLe:\t2g09XKS>y'_|+_ع?|_kFyE$k f8/ZI`~WwEuWbΏH.w7}C8 K`qg-]LV]|e!lh%@Ka &/zLLfL}g؜eמ]zPJ#UH.\~)RdGNs |C8$R+YHM:5}VdY.۷ořȝ-i$5H)Ȳ,)L1oʣh~#7rI$' si2qđ{sֺEı(@dYNM%|%go=>)&=)O~=?}_2^zYIՉu!C3/V@ GeK-6Luqܲ.YC9WNPXu=-:(#r_u@˾Oo;)Iڜ!#M"o`x|;mzF=ItB^1`.po+,JDKz,czO)Ba鋅82gVEʓ,9S` $d68g('t†~[GYGKqpslsG 1q\NHSo~~>W"MT%*WRb}/B/@"$V^ @GC' Iv8pNY\碍`ݜ߳D]R#3XJ {/ݱZ#9Af,=w%,m2m5zX\qU[xQXj<3Vmg{{n/lп)c5IOf4%5ZJFrI_ڧ+@lceZ,*Rk.X9"=:B`OI'"F  &+eNed+bT;Kwfmh6jIx`J{0zJJpW*+ 2({B Q?JܿBJ+qH"]?XI3WgǾ)m" ,BGeGE67?8O Wv9v偽3lXzCUİqHzYŭ3]n<v\9N5k)q@=}Wb/ .OcQ!N4IH4McɧOu ͜~@y9\ 8wݐ` pPWJ~i N#%od=󞾘KNeߑSGAJU,g|ey:GjU%ZgU5^^KNo5sDH=\uWlhk7.8_+KUUῗ*O49/H?JIoUi着׾W8@%d.eJ%?-k9zi&;^shf#.نF`q=4ï}nw/B|ǃ\}I ZI݂?$+3NPg.^w>ZqG>QuA>Ӯrݶֳ.e#EJ{N5(  <8Bt G1N`8KXviV}|aPOޅ^T]hY!Z+"ŗ!?}/Ӂ{p?Hå3)X9ienfs':r"YTv²ф[ 5HEw3ӝ8^pݻx%#b--۹CI[X:Yγ^Yk1 &`Cy]2m 1^_u?nij`%/rH)3Yȅ J9: hө-R'7i"iD"Gѫ(D0ԃ#pJ䣂WrT!~{G;_y 1V̺u ضg= c}Cf M 㤑 ZQͭs8شf1ٌXX&"za^fzN.̟ 0>(2 ΂\eVف-c$|Hsq(zYחHC׸'JmobO0tz99;_͎CQULD!q!~ P99/6U?PSb0(Zj_4Q X-bCmNC0Lh!.fnw׹=^;@ذ?H-qV'o~YM;bMkmŊIPF,MǼX{cOnŵx ;=ݰX1IkkM OIūP~9;N XM~\bDbc:QniN8;Ӝ-XQwRk9ڟ98cIy1F<؂ 5~ g-k7"Hjbi^;(Ph$;LYksKXS+rLQp`rkX9 łe(9̳ @/DJ0?4SpS8/*g²z<l7đnKX:% .O3fgfaXeMf90X' eg,ݯ8CyIؠߋ"/8mݲ+EMw,8G.}ݯ?g,^JYu㯵>&+ß~̑,r2â:0N~Gw_<<G"Vrz $lȾ b 'e8}P/—A4WO"%,G:/K~c,,3l,Yqn%/ghcD4Mt8ȋ"4e웘9F)fLLe‘^ WfDA^_> v?:%uj5Aژd7$"҉DGKc> K77tzt;߸}3dyN)NVK2'׿7(("HVg1Xkc k,=AveTA$q<ЀPM|"j&"xqOGPY0}aIbt4%#jrcrHMsyb9s2N[/cW{dGs lig"͏<ӖB$$iB M ڃq.s''sdAeA# 8k_O ǯzwI<قzE:*:lI7r C">{)8=&!HHc͒E /i`$Dq9O''ϿLyd{#>q),Q~ُ}Ϯ[ps֩W`< [5@NƱG+@Pn}nC`*ce / GfjrÎ]:FQ0>6Hꡡ'Ĥ"W5Nz$o+bXO ;³0(@*r8{f#LNpƵs. /*}z*#E$A<09W|303oVc}$iL6zn.*^)E卾<-sʈ8f6*Oپ„u 5:>ӍHT\v"qNaqLj*Ρ\hՕbC0p~@J3PM)#dt-nl 3h g>#?`cs{U6 MS0E>޿z˻p~-IHҔ4-)}(xTU ]V%>iFPsrпlq{y`$I),Cfkt D-M)y_б\/|# >1%bwhIӔ'})>/A?4a'0(r?UwO$-.'|soN|UӰȏ{!{Yw"%Al0j "/pų3S;|k|lP>Q~{Ӗ}h %Co^uG|1OD9T'}3Tt%RD:FE1H]҈fGvqGKZ *÷޳gH;0 c$w?85p&;7n+.߆{k&<a olfÓXR7TBpp8!PR w|D IGGo7|q!r5ZGi(>e$IHEH%˟{R_;v$IbwIS-/OG N<%Kq+Lm[8BGQ" PZq:)TiX‘ΨNz~0O?Q!wsC`u*ύt{9NF7f1z*/M#is>%e5;@ taAۦ(*PJ IYտ91R*~x댗~T~⚗ZK_k󜙙)͑yߐY(`| w'QR`&f989tQS7hZIC8T~wp(\ 9QN`<W=Ku-*]2pC_TzC߅g}o<7vl)|%q}`aJ `OO #&'g۹ӑBEUޝWq6-PxZCQL "y3O=ikF?^FkMIjz>Z'3,Q_}Hmt6b=kFjDIuҴ#0~eA'J,ΖQɰ@q BOG"jƀD %גƏ/owX9qEd$ \Br4vm;އcC?) W^z6s0F7{*ӺC\?Rn+XJxFQǝuX;(BG1*xK/g/f'u}OY4:H y ek]SR7lj67~L?N?D38sc# [PjV,!%j:otIp.P"ɳ.RxӖqEZR 8 z))I"g+ߺg7&gAD4-4e fm.;wwgs_{3J70Б* L^J)}]WSڹ7u.|M<틍Z&iJ?LuU-u.?( xd?)4mVEѤVoPIkuO=)u7_`i}0`2"'CWag@<e ˙.?Z-"/ Ɲ$dEF%j5$Eiͷyz6rϻlغܾ/x'W\fmsg^EJZ6}kL9%G =s@ )Iqffbkt{叽 k$qB{eC3PgL/1<6kK{2ZfڀGC o'aN`4e3^*|!v)_k+4!I]>;3O I'71jhZz18d?d/?A+?K|buy ~NA7JT}|1%=S@a%+ 2ӞphbZ=t 43m~?5tڤ9?%5t\Ư|T(c_ oXR4֬Z6ƿ}Z ~ SZ+H3H!0u<"Gp"OO 9gt?ӧ>{{\Rw5|I7V 8-c:)$?Z͓KJopL<}oyÓz&}l_oϙ>̝AYΠ UyeLOO|=e$7b|rjj&:#oqB*2(xlff|k|}N>Ks7Ki>\MFxE'6oxeʵ/kLl(-պNE>E8QΙsJނoiפirWooxR9glN(r_6a zs3 0' `g%v9zё:iN: 1v`&ta*;F `]ggb% MAn]` :/\Q>[IEKh i5)DuvnnїJJ=n$afiilw?ǝku +fE2>m(_dDBz#c2JzwS_iFgdtFkZ $QV6 IDAT1 3R$7Hgm0G@ ~jÜ~7XZGQVLHB$7@ku_E4Z$&II|SG-֥:JZ.=gR nwq )%}pZEbdtwr>HGu#Ȳn'=:&Mk`U:QJp4>E*M#g'8D8p pU=EE8w* OidRWၪk_C @730;5L YW 4D=ȾfZA6:F J}YK mJ8/3_$;_'xUeV )5c@F0 mÈExyb$iMVA2?{?{C'R% Bz恣à 8K9G TkB=hp(˒,/%qW C.=r G_V^+ ܀尝fwwOVP}7^Wjl  A\ RvcOܹ׸p yQS?RRgʮ6B)l) W =ٽ'Nh"TX&.*2% Z/_8g.A`#7IBSUkþ^`+.q|cC^Srx/HǎgyA^n+U1cQHt{~X-Ͽƀ~gikV -2Ak7s"M ӜXvZmFOsZ_Djo~3&짫ɒךd|V/É*Y[( `Xet;d<ơ821E0kT2Apq1H@>*EGД.?7eTGY8G m:Y7-Mղ@mop`}9 Q?ocNF ZR=>o+%"N7J!T<-񠹖 7:A=Kfzʢ$qSs }x3 HC?V*|!-jd!>eY e t`G)hT5 ұwyOVPZ;Z}y!/Q=In/ԇ_X2r3[Y. s `8%Tn``Ւ#jV@l i-xE>ˑwХ $IZ#i 4' v'OLy2O̬PTm9kCǏ}tZIw:UI@kŇ~Q,. H' ޻?W$Zسc'/*#aGTPwݴCRf$iF)MfW֤+B7߀_ !򞿻;YMݮI@U"#d=T[f~K%os<~ VIq?*2n[ /a-AlLj%Oc={غnP! Ƒ˔W%D  έ)-+fv/fdm?;x('l5 ea),so$ZQ7'eTc\h ʲ2KWʢ@Iq_}z Q=:N+֐$)syV|Y^=ߧ@ՎVd|3d@-i7PjcAjxWSWh*Oc l`V0zi[32ΛPZ;W?k*L њ_{s $?L^Zʨ iJRp-8~>~oWΓ6VQtJk1kIUw!\<{^/kMDeetŇ?$' %T$.6Ɛe٘ۓ*YZZI[Y: *3BZcQl}WsM_<]7hhTE0tNSxA8̈́s`qEz8⻜y(JC5ORaǨѣYiJܺ8w B鯴F+!ߢ꠵]dss1 8Pr{ Z? *zp)4EIбOͯd-1  K%dœ(׭*`j\vM|eiߦsͺY47!lpEwpZ\t?|4KM'K٥An\*ҒJZ1 7VRو*ߢ(@XFKV5`5R~ 1؟$XaVI1y(N)^ϝ嵋}dюJ,A !Z(~!$~ aٸߍnj.c15Q٠LІwg G[ໃ^%qKYSɓ[ q-"6HS~p8nmgV=)}]*9瞿~C{ pב$cL K@Eޣ3'!gr-y׃GW׆CK=fYe0ׅ>NI/-\#ۡ8弱_#c;h&4LxNf nƓ_|H_{_͈uqeyaU~7?`C8`F4Y55~lwusOqrGWG-<Z+ LfpWJ p2V @&YF&RǞ?5a7]dyƾ#\Š+ϟg./^a]܎sX!Fn8E@IdD*eXm R m:ݘQp>1frY-8\ Y]N:|ۃzs'I2Xʿ#C~? m?iV{'r6@%&)(!I&X[[d[{T^)=|"'Ol MT& Vl}ˋ,h 2tei6J Q̂=sZ:?TvXH=փdVW݉_al4qK#.@~tocߴ cƷn|_/0o$ɹ ?<WZY:RDIng|W_Nnb78YjX6VWwGW"Jqǥh?yϙMҊz)TEIh%X]/QR"G)s !,?|͡wrRs{.rӖB*XméuPWW4$$oU'> :Q5vS| ojCm_7;gnz⯼T࿲zM[# .w uฉM5CKҊTf04k9{~/0CY`x^{g/ ;<>cJ&s=o"0oP Nph z j :i10|If!ܰ] n$]Q9uGnGbUǻ+zeƝy8?q_ 4=D2z0.Ę2כ}FXm_Y? 6]߉RvzV̬f~ұ ,ᱧ^:>Y+cƀFPY ƺ ;Gwl pxuᘯ_3?]Rr^ +R+RH9IbR "IC[4g7 .FJR;TAꍛIN6HVI$'7-8u~F6~fލwc<}SXM%q/\X- phEݚBǷ%,oT﯑W% 2MgH=ì R4/>|gL$A*R%ig'^_W &'.]o&}}5D_CRSq*R6*u H@VZZP\eAZYj1@m*g̛W$g{ l:Ak(on<W{A?Dk/7?O@TJU~MI晗},/?l;6,eo`$Dze8y":"T\ȉ}ku2n:{SH@jASy'ܥ?wnZl[47Q77q{n"I&f&@'+fW#Y7]Sc4߿࿒#vr(X|B+7 OD;{94iw9?}~ ݌D'$ZcOBg?~DF+xM5:Td)'6*Є"7Ƽ^N3Y3U+Q(/$ ]0>V 1V7js`IZ+6 R3Tn0nSk-xRnqy X7;bj} =ѯzwBnF"F' /?%ƞߤM[#VՂ_ cll_{|W'JN{vd8r;SzGSg|/0(Kc憇=‡"K$Ea((k[XcY]Md|,w[iJBc;Dy2-$J*$pf}H$LjG8`lpl_*-ܲ;sCrOK3y;5Nc߬f3@EĚ)~d]{#JV.EyYwM;U$Z& /vǿJCH9 TKQE4%s~*{Òɹ[ B%K{Z=hM&M "$Bx2-dNf)TN[n2,qikƱR^>5 3Nl]"p$9~N;0Q`&&0:_.K ]7s7ԿJj~&o/GvdPn)OLUlgLei.`-ַjҚp-J)J0( ,-tA&w\vFn?#SQmbsJ,L`] tu0 }KXSx@S|ܲFp~lL&p739L _XQlox0!у5rN+ ']  ̣݂|$/8Fqsz-/FUuWclԢ *rP\agAxA;.;7fQQ3 IDATL4 $ zɱ*go?zN|,}mE|߳J/kĿ9e禀f_/Nb688jq5 @r`.\;>\}_[9%MZ SoJӄvja-d jP߮ 2N{SZtq `.J͚xq㋙0O(T K %4casք[Y^YLP,ag'2#}!`xtwfgv@|.&9 4cfr l0,˒?~ AZ_zLkcGXh.藿".l&Imf뢪8M7D+*سi# cv3N1u %<>&>A*AYxљF*zu[Bܾ?$ZFI2 di;nӜl /A$)akzH%TpBvYnkEJ@JD5X$9d$ZrT&IG G^Ѽҏ]/1ͽ2>3c2I`7=iHd*o{X}]Kլ~r&A(1~x/,0{(\<ٙq3*V,՜:Ň? :aXȋQo0>\Zg:+m/F,הHc8zr8ݑز=+GM$DX>*x8ya85Ԅ)Q~RGsx7Nl$X-aU"o~_?Y6 F;e~q7ىqqAcO-V2o?< \{;6vVbGx?7Rk@?bTe+D0 Ifo~IeaKN E4sI%Y\Lie)Z' K(wc\<! Hc{)ҰeNp6v^֥i:-E'Ӝ^7|>X J(DHBPl W;Z[JI.g^Ce IVPq^ qz(XA_Y$ `c,((08}{V@j~'eix}{U‚pO+}:F1A>RgS_y %$/=E>/ª{Ifn;0HQXAL8ܙ{jn](C6 ԣ$TC-Fj F !hsk=>r:"h&%2DvUW,%p;.U FS1)_{sÚ]q``픬(Ԍ4MNmy&#RJ~auoN:,CޠD5qHX@KI6qG~<1  +q Liȑ_ၻ✉Muj*MUByEYCw/?hg=~ŰngȲo~ l zÂAa)C >5"UzؼSl ;@(}9V``m`)'/ ˝*ˊ˚= ˝zc%|ֆ򽹋DAxu/UC+ Ɂ匳±wxyȴR@+^B`D+%'Ƅ8osݹɀh~|l eo) GQXbD@a!׌ߋp-To1A]603 &gTapj _Zq`Eo)arJ6LWsZڃTDTk&%]v3J3 {PYcU$j kMmqy׹oL>@3!Lr˧8X\< q0(,[C'Ns>|$\vhm%^.ރpA X-GliK@T5t6#/w$Z;E*EQqF~,*煬xR;W2 <RTdPk=.>  -AMⲯuKTY-iQpdMh&tK'妃2T—7>_pDs7))ȁ]^鰱5@ї|KN|+2P YIGiOi-y ٭UHN2v\(-6U@㫐_>a=z:S.9.$ܾS]řf"Z9%m0XlPd Lt] Q )t>0+a# Gl~8 s0! Z_,^>Y5k1Ճ~7Bǭy!C?vN;hw$~]("9D\=hd(rEr 4w^tBĪ 0Q1f*Hч.~B.8喵^AHaw߻vR.dՅaA(dl\]H2MƖ58( C;X ┡􎵭DoBLp^@`s<9l2c480 ڀi7,yW9vǭ8gU1˵2_mՁb7*2[`F $y"BL/WL$J$ <ƺ3;y=MTSyD78DJG0R-W(_>#GWdI?tKawl ™O>k E*{Dk7a0AQv\Jl:_ Qbd3]1y86zedCg

!nP@+INJ!{YWTMDC|zAia<(_V} 7הvh)IDuZ6ҋ]򎀜f&L2 T*$eαr~-'K@ }20a7)~)\~0'nb$؜\9/A)Ovǟ⯽8N;U؎Ĥ !*Zv3^oJR *>Y&2P6VJ 4!]Hㄤ(!QyygCB8rvXh dW (k&GwIk7aYqXgDMzk9 &$c8r863I M*ɃuZVe=E qP $^jN)Lay/~-&YVSҍJn΢a$Cߞo[Y-/,΅qoog/XHs'/NH£ls9Xk:GDъ~GT- V7Ake) mN|ւg3R l&%'XΌjKT] iF)=>a(;J~BJR@`yC4\4M|'9}zA.ZT*ZkEwxhXD|_Žx/^L` q؄Eԩ͌dqJ.EP icP_IjoǛ:ijjڙ햄pC-56~Nlι$ B$SXXh,t[aɍch4=bAzicGx&pf4ԄURP(,r~֐{B K׉EL~} W$)IPXa]t;gAX/^ə!Q8/ {245?=>B"FZŜD*E+K-A'\)Ht֊'zc,oznRus/3/cK z >uVqc6e2sW^H?|>UUS%'9GYZCT RTl$ʁt2$0V_?8vH*6ri 誷TKQR0"uH*Z$ݹot݌+mJcĸ JZMPƼ +,:!IҘc vuyE -Ei޷ I'+71\ r3DC'3-A{%R%EasZY-Gw(8q$Ͻ*wqǟs&aRI'H Jzx Z'5߬Ir5+zj J&IB 0jBx Q!#C9bcG&}_ǹj)*q#AGp߱_6;EjT56 śd0eOu4wAoщ SFזP -c򈢦2C*څ1@|<}>VH}fvϰŁ]D O+cL(s k˨*&Rudi®AJG50b,u2&V $G7Ns g{Z^❏Bǟ⥓y\葶2. ' 9}~sC u)Y(ld%Z0N[sn> z.wt/8+!Mc"M24N0,.ىVY,Ʃʹby4gg7y;uoIltBFUu;Ma~ݜ8CG;_(SZJUϜJ` IDATsOh0cLdnB&Yji:_ 9&&\n14q^@}W%$搃:x&tS䞳!:W:ˉSyN13ԄJh.Q6vwx#NaVtp+ "a^!7t7//@Y v;FK 2T22_,-tPZ0JB5ŽIU S_۱ W7Z/{8W->cdn PJ3Q{򉯟]mV TG'a*؃@Il\ܘ1pCcZ9,,w6!%z2hf*ɀogsS؀ 58^߲6y&J6m *J!Y@iUX EcCV&!~),< :l[o;v??Q_J UbӦ(=̋^r B1bMôj0(QBQyGa{X5JMGO~lQ~,ˁ|dܑ񆓌<9&=@,:nJؿҔFQpI4qf54Tk1_8,5'x#@1$M҄<球7~DbAc\Y^0l[c.EiY8h򱊪q )C [Le-t`άS>;MnGt+0 ~It-}9έmg_P/B'CHŋ9(ED$)`oE/>csB o[=w.LJKZM7ou\0/}`M9x|ɓZh= 䔥%ĤxƂl./ ^88 T1V]-E0zLS͒pf_$ƈKL\Z2lȬ -A3H@!u3-=+8cIW堡kVV'\KIph2Y*n^4Wge}:m?G!$#yg78wυ-jJ![TkTThx)왳}uV4,ϱe4xV@HJ7ֽ6`pJ˫H  \ i>)KV2 Ht  ֶ ܐћ VO] O`$ š©APGGT9@J2BEpu&vOKсUc8 VF_|WNqa}ka &ՊZ9IL"vRWS*pzǫɓ'o롟R*AP ORxţI j@<#:Kû[u0#sa<1F-&_WoA!Œ_)Rzb &{۵ey7Ӵ`EdyYONIKA~hV~A7^bďO*^I}q~!bR;)4o~"#]/}_)Ietmixu.86748FyRJڭBH_!G{P938?l|]=yY{vRENsc|o/KY͞Rry"V Á6lS%|1yԲk͓Z*&.X(D+.سn6`Y(XlCE` Z-O8y?\ ,\c6bOW'cf^gJtD Zbr0T\`p |Lm4e;z97X27,;g73^^[WWw[-$6-,D`;f#q8231 8l!A@Z-U]׾z۽9w^U-7*~}OjL@JvZ)1s%d0[n }Ǿ똣 ( p^8ATIڻ |]sxZs1Z1ΐeY>ʿ/x0E Sla54XGpRV?¬wHbaaZ۠KxG ,|Dɱ%Кro}(\mpiwB|E0o]~NHI^.F8;WÍf b|'[= |R Ib$/ =Cݾ װ| ' (?g.o`~ڧZ:L+7>5l f)$-}YEj_O>ݗa9o%QKcx[5w?Z@k 9Q{X $.Vֶp `ۣo/Un[&U\.60gVkbnzR,.wⵀFO9x!g3ֶ}_Kg^%`܆s%vAZ3XA83z,,-F $|.?>bՓ SMNz` ɱu?( J3rNc}I!eeR6yY,XDZ8̌j7Vl*uRl$h'ۇk\W^l7!X# H*M Rmu^:lDzK,vlaS,>x;ވ(#A"8;qhT8}f ~v/A,3B s{'!zPRA %8 PR"ac+j$a!p@$ #N,OO(G~ &+!K&M156(RTU{9 u>?&D1?Sjz.KN1T (@j%A`6Ϝ~ďjſgg|!_F'tsS sr%=K)cǶ/ 8#F⹁pY研T oVkh4# % oJ,lE@d>ݍ N`Ns.&o4܋$M`n땴k2|ff{Xmf16քq K[>uR|R%$8!< }%e8`6茀)שJµulStS-LO ,.o6냟 WtȦPR{e8L&c ͌+D!ML5Ǫ`O^k]޹koK 4b$1FIgL4ː)I;>w m`XfJ!]זRz\&spV[bBr-;IJi\ JVu8W\-zsQXGH 4̲lZ8C(E?5p`Q XzWȯJ9o8Τ 5m}a71gέB IDāIn!L)*vǪ`8UNU$v QM,Ka-AR!nm` ̢PL FecAv0|r5P\Wr09W wĵqiqr u_8:>%W,j Z+9RKlt=@B ]߇A.`!*/^_M}U?2(@BxsaCC+ËWVsL0ِ(r1aͺW *GEQf[!RN+u$g?zހKH`u~ M/0n+ : s#"%Kpz\痜y*P Dw51 :zT9/njw ,Kp^:Bae dA/WTpA+s(տҹ_@:;3H^.e]g%U:!gý|72zIf`I0h}9n_*e@G8Yxc,d+>N%3]VPwEfV=W 1P} Z:/nr $yBpfPR&g,c!R zW˯;'t_#9Hlrdž1(ׅg:43 3~N).Soh F XGwWqqA)} 4C?ZVuvU:d'nH_2"ύ*Π~̑4k/kDGpF !_3A:~wmggLb|"7s ]GzY,v0N>zUwh/,BJ,6% aƌJ`;Lu&X^b`/X)zӈzz"U/Ёo'8Bi<;H ;} R9n!x@^ע2A!I+QbՔ8FĽY 6;yK#{=Ks@#JP"m^V=ܕY\}aߟPC?%Nϙ'=?jƫC.R)MᬂD:@HĩB+ ̰{&N3#>1Ҍ6hF go$8/Fe6+ykv_ZoPߧ âv繋]֨Wx$>E/1 @،("Ш !d!}{"{.;+< s%H'ڝ}ޣБLTt0J(` QRbnf 6-PsoEN(cGJ)-o<\Ʃn>ҡ']b~M2 fÛNa&x^8$$űB;!P3_ͩaAMى/F?>|`uOuYFCh^[A'bd0ziH.@yt?7ފם+91 x) ]dƯ~߇uv{){HbgDلC )时p}i3}~-^+SGxMr$#=sh_XWJ)geL 4SN84 k@&Xc>HCȫR0ݷ]?*؀Qknp/ɓN_ZÅu38Vl upȎ;Wz_J}߈z??%ƠZlXoEʫ=,vԌNG!e^X9OΡhBJN?V){$N}qo ]Xj_=~+ S".?v}oIri$3uaR^;η x˾'̑rG ! p&,c堒YAq+GPB {P~11 s΅=k$'Y, `R펕2GNGt#`9+piB~X{8,39 %A*qދV-'_~jP1W)#"\{V#L|H??3/U96,IN9ȓO*/<:;x~|OvBCkX"@f]/^GV_.sUd2[w#1z9|u˛)\^@*A3ReLaT041jNpÜ@+ƞƚ΃0&16'x 9LL̠7k븲3Y$%?,<@@ Rˏ*Ը?^mD ͠(+fb,yC0'p+dz wX#Tx}¯<XXV̕Zo Sy=(@*ϭVx<|:]^0RJ7NbiKdVp  ԗT _ ^W-p F6L4ߝZ¹ W vabb q9͍ 8k}Fʪ>> ~@?g\ Zau^nM[.[{O,@Hq =(hpsXXbyIsv^}(\f?[[B`pu1E9pėJs?. $_ǬX23bŵs|?I[3N&dX1H0=zJ8w.^'hSlR\\L0 _W> NᏕ۝m ?E3l2R4t!3o3K |jO6ZW=;|5ׇ jU"!ƚ H)o<$ůYf`-,%Tp -:9 Zq4-8z9ȯbAI}o^qZXY_/\ՓS~׽{ M{BߜHsBYozQֻki«5߂#|*.0{E} 2AשO4#L7{ o8N~?0eƮ2+\1{!8T40j0>>"`ccid-09E@x@>dSPo´Y{)$[q~&tq/~B'N2 H3_&,g;^E.a Ј$K3}YE$l1n]>YU$8緵bxM_GXU/8n!uĢo+$ 4@"D๣@?u87ˋOއk+]X"˜A-Di)%p~J!ȖN@~"Ix+8ХˎZ4|(^㦂 IDATA뿏C98nb|| a}}~`vbk=S ޱ%DcYxx ࠣkkK նnx>oizȱJ|`vfӓ- De+AȥrX48:XTP\)W݀3jҪ)dzWxIQQFglN@I_wGïP>5 ^7FCK'G@ׇu׋xVAΠD^:hKq>oYoZH,m Geʷg_ \'c }M88qעe@9[ ffWm ~|bu$pFsMeIz=vaMơSDoe2I /$xF7Vki}x ,Cd9_˵vmuoQc-x@7?pyiaY"#LO8K{f GtiITB(r_L? 6/\(ns/\=w`@pp4Z[5yNHZζrqv)%FDw CZxX_\DjnƼn6%@*j0aI^2,e]0Ԇwt{(6ղQ9N hj 4#o}IH/;Ij69$*}|i4|#Rq#R ]23P-kaP R2>~'d5nzv9 UH ( Y{aVb/&GrEC~`g-MʉBڊ`ĨRC 9 V{5l ƛ, ؄ەC[(Ri{rs}~rז61;ѹq7-,wx6=V8ʹ;~qߖF1\nl|U"?| TR|"7= C<䗒B5IXkF^t^%ш5/.-:&@*?8ka9/.噟|w4>{J8i 2H'OHj 2M8qpX|[f D>cUb|I Wv 0É@ :8Z8Ha^h8YV6XYkcr,)Z Nz D(#vX||@ ygFDoزD^a @#q Mt:["2HDZ#xՓs7eQPrF+–JC?G)g?6poʲt+{&& }/d Z Dĵ%'1Xos fVcZ@ ?'b޿)X2/~~P-qcIkcXXǣ.e$`gRBŒS{Jcc=y??e"V~^+vq|c!3399k ݮ0`gPߋ(\uEiQ^c_)+}q`tqoFˏ "y'IJ nu1zҔ;=,nbcV84;P 0A;rǠ$rZ"FՌ!;E 9>~ l"yBA%ffy\98R{-OIs9gy F^蟼YJ2Z. 87&~rɵ>bDi% B̯ 2zax I*2@Y % '9*%}M?&<7\Z3qqa.?h);r`x9`Hp@E%i}\_\E1=5X`}~/ehol΃ )3Eu #-\OaG_-v6OzW{{Z$IυHh]HK)d}K-b 0-~>YbBT2 z 1~[<ZD >ϞБ⭱6} ^,|UR/ +j$6e5`CB;~@Iuhqi#X @"vÔPNE>#$!if'%ҬZ#؍nR@+׶'B kES1a.;m^7J DԺtN+@H`zCsoB r1:B7bFGiJx:Wy;#Gcbbj([hvABNdcY-sIΜ7~gM.ek[GϿ@Z:+n᫵5O([y&?p% `x`'$e)1GB !)$N2_>:(E>tQG r@ 9 Z+DZO\uo"2T^ ԹT^ˀr5v2`g}#AH } 1֌09¡ВpVVUzMs,mpsˋ,3G Nw4"gAR)X#k2Sg @܁]|f  G aߌU }/EqpOMGfsYff⯶ `;IP׿_3/\{Zl֨"~.\]ƹ*2E9@s@!h?W%.ZxBh$rcq\]GorP$IkmX=3p~P7)Ushw{pΡcr|{&0=1&&ZMH!πf+M{&sB9/()Js~)#H!P7/b ,@ß~o{wpflЍ>s*MYz'WJ+vL3ZvZYI`rv ^胧~/|Exa7VȬ BTFIF*Wpv}[_ww (#rQXO (B@#ks Xw8ܞZCJ^^~?:t!}XCxz'7֤>K=13R ܟο m@+-^ m@1%>ة'igx+,2r˅kh% E1HCI Q<\ 0BSf :8CB+'_\ģ@c.$`{7))6#~QgÎm[T2 x vA8/śl ٱ;Kpc'ʕw%<mH֫RdDKIKp0klL?20^8l +Q.- k]~?xxupR1  U +“}#xOTxl` Jpk*R:|bp0n?<0$Y X`=9FJjr.ueݺzo\**eu_Vpuu_TV)6+3:Eۀ  _ xD*$)a}+-; 6KXB? q$E * ¯.Y)]q7<Уu ;@"W}{}{ZĽfO!`||xΓ H@f;)A k đc~5a[(.Nߒ$<9A ! ng4yඌԗ.v۫B7x^mt)A:B9FqS'*IK` >{ 8CȬEH 2epd84cX]]G?+?H]l+>7q,ϫC{56ΞG~a~4O= +򗗈PiH9P-92S/C d&!}#D7"nU(OCkY^wt^ IJQ,ʔ~*0p[ ᗒS ԛ }~ 7"4-_>c&"i7o&wB3~g76.ebm`500<'|;=i0 \ $uіz}6X3<}Z۷8%=_?PmZtD⑄ 7<0h N?zk7ZX>7?>@?z-^`(sҵ{?o|w/53yHm20/jCO |hC'`p?t#'\`FѢ7sT:(`>-(/J0|Q1ae?}z%o;wA.S;<'?oJ3JtbmF|R(0uNltШn Q_),3S <"@# F{â|}7߶ uHï>["|/鏴VqHLHYMO}31hc@~Ș .+_m.#I/TҔc,ɐIf L Kd16_~`7=ҏ!Fn6f mYk3 r-gΉrY@9r˞_O& H#S}iqz:_I+)~XF8W-h6|~e@hȰ+j/5ï8 >E.#(8~hGn7pt@k-66l`ccH~E`Y/^0Hc34E?M $A& Xn<| T_ QdVɡ9Bt!WT < 1@+80QZpo G;^-;*A#zھQ3jSV; VogY*ZC m6cw0LBM,lA{*- A1kCY!ع3:h^=eH ?MXCXJ_~KOXNiO7yu,@3smN}4#`ar O~qa*TiQ6W-8aϟ]9q`Z{|Rzܹ̃,՜VRd&u,.&K!qu~ssg=/v@i݀ `( iܡ!&|'hxTB0Hd#A-CYjh/GLN!h;o_ZƵMn*488: v}|B+ `̧)$EM4/mxijO? z P-nɏ?9b1B`pO}j?m#ugt`\,3HC후TQd^$u )Q1F)YAE lfamc2dY>}ؔۀW^y%N^, ùY?wiN=sзɸ_ n vA**;~/kdd(hi1;胒<@PZ)4tZ@Z=H*h)Xx*m#7׍=7c`e1 9 T+ l^E ^aS&x1LCI x 8 BbҖ0ғ E+@I X !|q^-3f4e)6Dr_}O%w#vۥ 5TFa(?W^O4 iʃ?)#457}]ώWG`1a Z7 ^%|M Zx’xk `M\<"n|0<7j:@Ț7):A<@AMu_RPk]*=ڌhF Q;RI.-wּDzw zBcaiucG>qc2쟵k[; 즥5 i xLE&`,-߇sS`Okz[gמ J;#+x5hF(N{AT4<(Q6R ~.]z c $HHOSUPx@PE! nPg[IQ2Y~;Ý'#5Ͽ3 x?pBItS򵳟Y.a6я2u_&ׯـ?݊ONb!|NϟKnC)%JX6^ \KA9PN>S Z%[ආ(_5"ߘ(JfQKpnsweoq$09wƾBbKgM)*-Iny/5PETLQZ RWO`An1βl17kC%@kd_PVɷ{~F6:ysMKSZ+%*t08|/7`c/|P.,|9G~#d^x߲5j{<TR;ء\\µ hײ 6TpyVL 1!2EP0r 2>)W>x3%7# eW HD2 0wDOéCPPh%RQHRJ^`E :Rg|l䓫c!eJ yY)J2 (C+o? w%ip}~4WWp*b* Sl(@EGVJt%SGxMkxSGRQc'lxO!&w RvxYn~|[co?g~+_嫦c/VR/t ދj?KNM0$ 0DyNN} /~jt`C d9`fz & H`m-d<+=@)f1I mAբ;/αfVp™~Ϟyi]o)g}bHv4$ԗ) ؍FpJA=~ O~C}'1=/\z EÂ9ðd)ԟg>R2, Vʼn()![(Ј?%; PD&'Z~홀4چT^I@}^)@0CP ۃ9Hy~@B(na -^z |#_z{>Owvv.xi@e@@cbԩSy7}:r;fqǁ1LG\) Thl2ߒ~W=b5p~%B0J&TY!](1R騑P!t Q@018w λ<|μJSsHkPBIT2nm~tS_7l\ ?W\ ;=w7ׄ Y@pwAP>0|;{x\;Oajv=ѹ}0ȲkRiBQY@ 2r-t*ӂZ"ӄ^!phnMlBs \~j} SR?pDIA*~kI7:S=VGAk o,c.</^eK:$Nan~-NSP[{XQɓ'u< gR/EJ5+Rvw &YPR%DWK|F#Hȁ=8t`ߗq}q C?RzoY- 5u6-X0\ xX:AoZ6HOQqj83igM;m'i'%[ыE=n?.( )pϹ>Cw󻽽}MSKӔy|*2b":?&$30^ *~~˭ݎ`̗7s0Wluyl |ahn ~ ]$N@hdF\ ֈV5͏#d2.nًtdO'05<|ă10FiIcO<Ȕ9I[PTEHeP`q|z!,Gsx+ "&}ӒH[3+K ՍQox1tstOky .q۞<>7~SDSrQy^P4P(0"=Bf[B|I [~Nl~V?ZF !g٢Pф7P=H[v"a`cÓZZ= qxR!ځh.>"eW8< 8?yl皢 Aqnse .jpH91#1p/&FRBF /^/7o;h5 &LBZ @҅"$|N&}ll9)Np4h:ocIԴ0m{W%h:2H[ DjY'P!* 5gplz:7>4̢B ]~ш[ )oq{M޳FJPE@׎oz˗/_6;[/?i6` AgQ:2Z](]栏n3oE瞜Mp624OĉCi_ d0z`^Ǽ2iq)2tA{{) gɻw?OөtS-4@= yWA>߫_%p 0hAO#&\A;dT"2znwwγ:vwȟ`k᠍N^w V+(!Gc.p`L䀧C*|96z(ҸtZ=Pp~qӳSLώd~LGѻUivƑsaF/ 3-OA:\KqOVoe ,( POohuI'`_<~ZjA(x )d)swdlD/~gH*9 &{u%q$Ǔ:r[B*) !PHf|&oz4h4^]]]04X?Sig؁ 0LQ~ /P$8:t!B\/T'֟8 Hح RH6h4pvy~otָ\V>3k4M"P")R@B !Ù !fpv3ULgd2\IAl-&2 _j>>}/2**W\Ih*`%(4 8nQȋUKWL%ӒfZ֚1m0X, l%g|] X W\], !," A, Aӈ!i"Hz`_ݖ `.M"t|UP0UX4>IDvAzU:msL.{d:mY&uUׅ4BPWzHр u XFF: N r7 23dH~^L|}o}T+-g fMɅ@eEʂ 5r AE 3}- 2F6 F̢X\VU"X`a+K^M5e|i/Rܳr_EX %^"EA `P&7]Ϻ׶TAp|,_j_:s Q}׉7Y /*F]|jHL|% `2ȀҎLS4&>sʸY*@Y e&e6Y,@@Vh@"(B ydS{K3r蘯-̡ ]|uﭰD) Bul)9-^%h"CWx+U'eWUP&,V6#A,Vp{ڀcmU,7Xd=@~sL]Gj.H^FUb]sꡀ뱩e$P弗C妀rDVZTZPLie ;.Ы0HP\݃,e ?Pxk Y\ `:9 B.?(?D",eGpU:( !(b+˽ae¦raf Bj kWrzȀ@\K_5$a{ ,,;ci0Ӟ:%}"+42%<"(&a׵k e7ˏ E-rᄅpTF!!+6JbIDATe=κU~kRV"( HD/(\@{PʐAB( nI>}p4"\%j=;Xs~"]lPW%eKzPO 2e}eD>=3 :^pp gI9s$V4RIENDB`pychess-0.12.2/glade/findbar.glade0000755000175000017470000002675612641567764017274 0ustar tamasusers00000000000000 False window1 True False 1 True False True False 3 0 of 0 True 3 0 1 1 30 30 True True True none True False 1 gtk-close 2 0 0 1 1 True False 3 3 True False Search: 1 0 1 1 140 True True True True False False 2 0 1 1 True True True none True False 3 True False 1 1 16 16 True False gtk-go-up 1 True True 0 True False 0 _Previous True True True 1 4 0 1 1 True True True none True False 3 True False 1 1 16 16 True False gtk-go-down 1 True True 0 True False 0 _Next True True True 1 5 0 1 1 False False 0 True False 1 1 True True in True True False True True 1 pychess-0.12.2/gtksourceview-1.0/0000755000175000017470000000000012653231274016752 5ustar tamasusers00000000000000pychess-0.12.2/gtksourceview-1.0/language-specs/0000755000175000017470000000000012653231274021650 5ustar tamasusers00000000000000pychess-0.12.2/gtksourceview-1.0/language-specs/pgn.lang0000755000175000017470000000672712641567764023333 0ustar tamasusers00000000000000 " " ' ' ; ^% \{ \} Event Site Date Round White Black Result WhiteTitle BlackTitle WhiteElo BlackElo WhiteUSCF BlackUSCF WhiteNA BlackNA WhiteType BlackType EventDate EventSponsor Section Stage Board Opening Variation SubVariation ECO NIC Time UTCTime UTCDate TimeControl SetUp FEN Termination Annotator Mode PlyCount ![^!] \?[^\?] !! \?\? !\? \?! \$[0-9]+ \( \) \b[0-9]+\s*\. pychess-0.12.2/flags/0000755000175000017470000000000012653231274014651 5ustar tamasusers00000000000000pychess-0.12.2/flags/ua.png0000755000175000017470000000202112641567764015777 0ustar tamasusers00000000000000PNG  IHDRbKGDC pHYs   vpAgxLIIDATXVO@~w㈠"GA2 P:P!ub"RK{SEH8C.tH"a&"$vsqoywߏ p{VPJ)|e|mY `vnĕ) v- }.D78FLs0_?`{;O"ju7{c cB"Y)N_P|>RQAиA)/["H$~i&|K$=gڋC{m޹~saΚ94MH0[:0jP(( JRPV*7Y9y\2L&ZFЍ񱪪j}ͭ@ Y_o4M]@QDQQEQ*JRu>m/;T{%I$ @eYBP(HRT nZ%rl~.rif;D ޹ g!0DVV'i*2.Gd\| NiNt(d2L'7nz7 5PbAܨ>0 (r[[\mQ.<9C,bc@\o+ Ǽp QJ>7$)*g}Lt6>F8ʷ(0+/nWOF3.ѩ!h8t"+CG^,q;<b[k9σ@B^cA n%f(0q^XVxWfޛQwKaUw0\E,`n4JY,`u\ӸD -M:~XG`mUΡܓaᢋK``BPc*s1AzzxHW_P+ƀZb,W:=`sh.8S2 ߼/i ó{zgH 8s =Beiv+ \# U~/PJuZn>\t&u*.7 +O_t894@TmeTOU#DV)cf@Nt:].KQ4MUUb/%ƬDSЧ3K`,l*@_8<$É~[ ηy*0˕7AHyP(4[ek{ꪬ# /|>~[V$3g@4iYYzuccccSiji677775A{{{{{;r@[wcr]zuEEEEEE`arfvpv<'=}͚p8F?Fjjjjjj Q#0y`.d)Nt뺮CFFFFFB___ߝwڻ:%rs7D#GjkkkkkP( 7QFPSDj +YJ؅c@ (L!-qE"6%FYe@F*΋bX Z[[[[[̳iFʮmmN$l>{v;}aЦM) YJNK%Khuc#/D+!#?A^ $.ϣQeGzTXtCommentxs.JM,IMQ(,PHUp HT0200VJ.MRPMLVW.IK- AڞIENDB`pychess-0.12.2/flags/fo.png0000755000175000017470000000300612641567764016002 0ustar tamasusers00000000000000PNG  IHDRbKGDC pHYs   vpAgxL>IDATXklUw;nBnjH@^U&HT0#VHL @?hPII# D0&Զ"l@lnepYҮ4{s9?Muii ڣXK뺮58yq*˲B!T!/…`0 srH$Qv)ko_J˂X̶:R<#]8zU =#Ή*Z{<;914nnw,81md~ZF$w.5/p鯻A`ȥKx<_ѩa< QL)5pcGU}3Nn{@16Η3v&qef{K؁SӗjmÎd;Vl7QdӰCK5)k9 H?[EpJ bF}:LȚCZa}z4oiK' tc ̑SK! n;=i54322240t]AJk|" b} y+  Tt: тŒ΃HM韟B\q?h" \/BaسSJ>M3q l5'r90 NEOY}pS6`e@`!GHbXLe 2/.,t˛-0 0t!?xW7 !Ʉ_N¯LfٍRR쬬yHd˖ں:è@  odN$Vcd{iivݐ SZjG?vLx^oqp8]_____pBP(:nDAeOj'򹶐ٳ-X~MS[f|>TVVVVVBZ4FV]]]]]-D6% Ū!I-zv<,yժ_EE6z<Qq%lٕ6\6ViIE{CK'TOW6B:?ޘo7-|.՘GzTXtCommentxs.JM,IMQ(,PHUp HT0200VJ.MRPMLVW.IK- AڞIENDB`pychess-0.12.2/flags/ky.png0000755000175000017470000000313412641567764016023 0ustar tamasusers00000000000000PNG  IHDRbKGDC pHYs   vpAgxLIDATX[lUgf;[UeUkhQP1D( %A5-M$x4[U!Fbmht/\|m?]g\\(t32 gl۪jY#G,gx\!q\1rX,H$ɤHmn!m۲ pyy]-xT_/ޅ̼UOG<|N6 k>WN AˋHf8~ JR%> bh{ `Gõ|i/ӑ4MӼ0Q©9)3n<{΂"]]S %[aU!23vp$oVZ`\G1 5Gݐה?^~qd4BL nѣh4:439WMSUU@'{5?=k}>l?X& 38(ZL (lkdRsK0}X |eׁX8TTTTTTxludw; |`\sҳ@ 7Qs`,u^TgUgWZ *!wa!# \DBg N .XaYi y1s|n%93W]]]]]-3C!Ym|>_aEx"LnkZ8 ɤs#;{80KdG{<`0 PSSSSSCC3f8iӪD"lllnnnnnu]ee(+(˅Dv!d<'raDh4(e_~ "H$:pt:(BdkS"=4$˂hRT*]]]]]]shj׭w 98矗BYYYYY\gjkb:,[%lq/W|oub1tI' ;,!+?KC|ͲGzTXtCommentxs.JM,IMQ(,PHUp HT0200VJ.MRPMLVW.IK- AڞIENDB`pychess-0.12.2/flags/cm.png0000755000175000017470000000233512641567764016001 0ustar tamasusers00000000000000PNG  IHDRbKGDC pHYs   vpAgxLIDATXVMhGfHRŮ)nu.RJ )SӸSC/.bzR -4EO Q$Q$XZxÛՏW̛ۘ77of8!/EQyjYGUUUUm{28/mZB!8q 4 `^+C\2s xCi3DK%zU?ʽVKn$ bC ԣpv D+T_' ^I, @;ά ?CBƉ_$^yK2rar>Ύ3͏g[koL$F&"=SBQ XqC6op%8)g1 /ضmv((*&j$8/:KէybM&~/5D,~Ȩelx`  i}ݙCƷ6軫@;cȚ\-,RV!D" 0 M#k;N| Tnݪs'mY}4ufg,˲,gJz,gbdۚi;;;;Pj@/;P"̃\ߨ?%d2 yټ}\.'ǎ-/7i^iZ.r@ZViҋL [ ~@ ]u]"H$RT*NYZo NZi^aa"?>(x'Fx9}ZPXV\.ˊ[F|@/ Bt: Lz^(l6 1Z ~/pi0 ^^n@RT*.^$^_z߹3x<Z[y B[Fދb;A&yt{y|z=Pxvx ?EGzTXtCommentxs.JM,IMQ(,PHUp HT0200VJ.MRPMLVW.IK- AڞIENDB`pychess-0.12.2/flags/pf.png0000755000175000017470000000254012641567764016005 0ustar tamasusers00000000000000PNG  IHDRbKGDC pHYs   vpAgxLIDATXV_h[U{4ikU:av:D$NZpt/Sǐi N,}UQ*t AJ$MMs}8$풬eK/{|9P lll(HiyzzJ~4!R>d2dTUU \ϖ!|aP nۭLZ]mկdpeeuUQW۾z,"|>o׫!, MHEM49Dp\*K@.-uk/OEQY*g^YΞMkq\J~N gVA5|ov ht]u{bY u^f[Kt:[[.tә^6555 l`0 x<^dv*4veYe@$Il6=rY%wue2޺ BPu( g˭݂Wš@'qt=FQA%c{G+p8 @ Tr\.'CCCCCCX{xkp )j4M4 bMzΙWW[/.Ԃxd5R0[3_ E[㲆GzTXtCommentxs.JM,IMQ(,PHUp HT0200VJ.MRPMLVW.IK- AڞIENDB`pychess-0.12.2/flags/C.png0000755000175000017470000000274312641567764015567 0ustar tamasusers00000000000000PNG  IHDRbKGDC pHYs   vpAgxLIDATXmlSUe- 26eF\NpDao1DL 3KA!A$L a43Й#M:֗wn]e/Osy^)La S,˲i1RUc&d2iVfs4#_$"I$I&nP( X,~]gC~]4pn[U Œޜ+`__8 SGJogA}+HGr|Z,uH8| /O? 7-S˱Ǭe08;4} H?=8T*JƦр$ \Zt Iԟ\&YNZN`Ʒ-?6BlAh״nn?=Pa$C8C;j 1%w[ 躡 @z lC%P*u]soP?Ml` 3Hx*"suV^Ư#[ ܹchp"к9Щ]u:X *C4 g ǡ`ǃj7uH>vec``'iiN,L*p=p%QK^\:xs@ܮuJ5K\q^a֯n0lHǣ(wf $Y m6neu TӤW0.aУ UA`u.Gi U?i @TDNZus~swZf@, mN@8[F4 76[{o(n/3WiU?W)tHH;J.:Z&J"]UUUUƑc(fZV`Fc$2yjkkkkkEbeiAt$"tW[kF"h,vXKKKg|>`0 B,frDb1l6(.rACCCCC$CCCCF6beˢh4;b p8X0+^Dg$2nN2@ Ȳ82!~zL&ɤ,777777KR6AHCXAH68ܳ0mjw*-5a&\IÐжmw/v: + kx/2%慽_}BCH6ﰰc`>!Elt]GzTXtCommentxs.JM,IMQ(,PHUp HT0200VJ.MRPMLVW.IK- AڞIENDB`pychess-0.12.2/flags/lr.png0000755000175000017470000000243512641567764016020 0ustar tamasusers00000000000000PNG  IHDRbKGDC pHYs   vpAgxLUIDATXVMlEޮY+'CܵRbr"'TNHBBV PO, J+q3 U#br,$U*iMjgwtllj8仼f޷3 a{(22"F-Ɯ*c[9mϘدP ""ylmO|>绺E˲,η+oHsm 8je>;0~ < j/nѥ0_ n -ȝ;8+ @$x< @O9L`;_z EǍ}i@g|bOK`~}(#@_=e/Oɏ,Bo.1hBDG<|SLzy&]*8EW./ҫ 89jc$*4v}zs 849K< 7(ٗ7@ z4/p;O,; }]Yic1*l?^-US O1M}`0 cn.N֚uxETUUzpc@QC ( ]5 awe4MS-9^(pd?5U菉s \۶m۶DJ޻0`0aL4MTuvvvvfr\7d}bCi POL5Ƌ}jqH$Hrfo(t TՖwxP,Z%D"dl6 X]KLn\뀔F뺮a~Dh4 X}j)E˺r%L&I4M4k QVPǻDc!d> mt:(e> T*JX,JRT%qFmJ47 ͤjRT*L&d sℰccnz{]{ϷB( BrFGp{Vi] E{iw+>j|^>UH3sXßJ=?x#TmC[زv;;LJӳ[7h|?|3g`sÄu]:m0 0gjVztG4M4M1 D"H$RZ[e)9S`귓C~!m[Jsss3V4 ﻰk._(l8ZP[ 䱚)&^G; )|>h_ ȎܹJRxi4YMž{iŒR r m\D$쬵EC~8y2ϩ?k#ѲK{_\;?e 9e*,ߤAFcׁTo&s+.%8׮B]]B_XBPJr…b9!S;N?쾦JS\GB R'Fj=Yvmi$-E)dy4xnmnaa񞮏cˁN.AءgR|d5pE,ݵ8g8ݺnhyInF `_';У3_t;B0Pp垑ʑ F\܋90pbˀM7Ա+UTx^o^ލp8<<ӇXnUqN}=\7HD=tw"A}?!o9_i.?8GzTXtCommentxs.JM,IMQ(,PHUp HT0200VJ.MRPMLVW.IK- AڞIENDB`pychess-0.12.2/flags/tw.png0000755000175000017470000000226112641567764016032 0ustar tamasusers00000000000000PNG  IHDRbKGDC pHYs   vpAgxLIDATXMhGkoDA -J$D Є@NE5r.Cu=B  ikDhٵXdRV=LƲ%˲]5pl M4MqCl[]Wu]g{N#+BG+<{R\.+>n!w]ǁ@ l[r:m_96p8<p1r10{~<$ȿO}[aqdȊzު!!d36nn>1 p*s*0~w.#wp tD;R=ֲCǎ5s o~ud POk3·}ԏາ)8/+{.GέY_)@!/d|06K( ֍~nBDk'pqWt]w_/7M~Nzo|>ѣWR|tgto:?S[ !nuGzTXtCommentxs.JM,IMQ(,PHUp HT0200VJ.MRPMLVW.IK- AڞIENDB`pychess-0.12.2/flags/jm.png0000755000175000017470000000301212641567764016001 0ustar tamasusers00000000000000PNG  IHDRbKGDC pHYs   vpAgxLBIDATXLu_(LLΖ.m9XkH39&Ǫ1+VYjkM~,ȒX\ H N{+x W|~>=7 p&,JOXK v gK{H(iٴ[{M_̵xL0M{Y1C$A49v[TMjms>=Pfy|VlT( UWޙpc8:֑mI/ N3xb,{, 䶤ޠ#pbX,X`&a 3AюU$= .% v /' EwOXά-/m3&.^ 4H<!v}Ҥ65lNLLLTI@vaF ߴl@NiG7KAӆMu)KRVP" ׭wwڂ9R_Vp8K &r(O\Λz>_]]]]]]]]]^PGu'+7R?ѹ`l6kZ0WgD&_ݞe/[L&d0@ggggg'r8AC]~ΐ]^^^^^D"H$"wfgVUJWzjZ/W`0wL&rB!}"-Ƀ*#^?l6fvRSSSSS,н75ܹs, P񆆆!2r" J}z!+@ 8v݊"K'_N鄄p8RޔM?dkH)2Zw^_____x<3l.6neyl]경}rrrrrr!-TVvjEUʄy\|nx?[[. 0 cgN_)4MӔr~qR:e2B!c.t:xq6rz@0BWJJhnnnnnmgeple˂Ze>WӇ`z'wû}-'~iKn\ 'N^svzTO׀_+^:(| SRT*W#!<ѭ'a^ @);a;`C V^8fOkpƑuhHkAƯ mpRydH\G)ب[[/M&>3~Wҽ \or|[ˉ]/C{`y.X~g3\|?_!s4kO]x7RZ74>z!= ˖:~Zľ?;9(lh޹4ŖY4M%Ș0gg.]BRw5$49ha mS`dWf;wxkTT2\ ރ]obˠJ 0V8n,Vˠ̱RX@ՋNُRJi fQND8Np=:=Mn{\ԛ RT {<%7aZ| 2" R(Johi AfD0<4Mqpu@n.o#n=Cr1'D@` T| \'g(d<0hooooo'&,˲<BaNq{{}mN͞O\12RO^53+*~\}w+l ps۶m֞SW ?<<<Ix<ibJR8/P (KrOy]WWWWW@lmuɌx0L&#'D"H&dr9Evw1Z}  A@zzzzzzPNӢ׭f\n` FQ۲,˲ʆuf3+7 ]Dh dFǶx<7 ]2oޑ\bX,F8BTjSx5hih &ZMOOOOOC"H$Ws詧}ǒߨP( 2 m^@VͮR\^WN:[E] }k~-tkXq%;cq:GzTXtCommentxs.JM,IMQ(,PHUp HT0200VJ.MRPMLVW.IK- AڞIENDB`pychess-0.12.2/flags/mr.png0000755000175000017470000000252112641567764016015 0ustar tamasusers00000000000000PNG  IHDRbKGDC pHYs   vpAgxLIDATX_h[U?v̶v,5 an >@AP|s8D{ڃD(6m*ym)6&u]4ͽ>{6W_};sN`XESbdb캚i8YkŝGW(((c9LO|>aCX*Jkk(w]ǁ^VqS7oݲ,(u5| <> @B-0׮_ );rvVju(@QD8\>rLY {{KOUӇH\z~aQwvOi_,W6[;+=s̻@o@[=@ +ɣCDB;,7OLٳ8 :a偮!l{`q_kG ;HhvVh0\ Pʷw.<ܨwXF Ryo+W7Q88jZM6#%On9g>Y-^; p]' @7oniY35NӕJDRU]4mѦۏ,>d_y/.l{Mqznq _cQZPUѶH$D˲,]S a{~1>k}s3W;8@hqмkS{>nswm۶e&&`}}944111J9뺮kd*\.ˁx!-芄%/n@]uFN/FQYF RJ u+Rԩx\x<l6fT/8r,h46 0 0M4MBPR۵KDtIܱcϞbX,ΝK$D,˲z`Y"J{x;BUpl;NiU[&xWH&dbX,_ZV:66666(ڔheo) ɲ!ir\.!d2E_E8,x~^kwa`````@ƩCHСC,́`Uh.y~&--=,y󥐝j"ߟ.F'qGzTXtCommentxs.JM,IMQ(,PHUp HT0200VJ.MRPMLVW.IK- AڞIENDB`pychess-0.12.2/flags/ag.png0000755000175000017470000000312512641567764015767 0ustar tamasusers00000000000000PNG  IHDRbKGDC pHYs   vpAgxLIDATXklU3;m֊t;%%iAJ i)IbJTn1jB"1PMDjL6 mDۥ - KݝxX6%y|s.= }]((KXx,ǃ7 PH!~8@ F#HDLs !כax_OOȉGzzzh*1 7hkz7GLv 2 ={ X׶=pH_4,9Ϝ ;mW|&w6 a (2@QQQQQyF0 je2w8_=H*2JyOn\_PvPVVVVVfp( =U>s666665ijssssS~VAaɆwg`r]zRx\Ϸ I)Җref.X Ñ^y^ mmmmmmXٺI XH6v8t]uzzNvoh&p$rh]]]]] `rcYe=u|HM@~ZX‰}>SY2ݑ PQQQQQX,JTmJgReB`Eh4 ͳhJׯwoqoŗ/uO֭u-imlK%߫Dr;!3?b!#qY4GzTXtCommentxs.JM,IMQ(,PHUp HT0200VJ.MRPMLVW.IK- AڞIENDB`pychess-0.12.2/flags/mo.png0000755000175000017470000000257212641567764016020 0ustar tamasusers00000000000000PNG  IHDRbKGDC pHYs   vpAgxLIDATX_lSU?nt#g`!4qΌ3xb Vb/l$ >C !&?N`@])k{|8=OX4z95$t]u9m90 0Tzd#iic% w}@X@Y ^c>To~+e7|NdGfgs\.WBJ&P1cK`VuCOb/$,D' ;<%`@+(^9 ҍ]\[ܝN_|*l~hu)av9 s5qT%+ )cOvx/u/s|ky}>".mB= +űff$={YwfSEZ{FCS?^q#g/{ ͸\9qqu00PkЎq;㎟_|utoڇ0Ԃky]xn[z`z Lh4jk܉D"V&-NM0 ^|4]~b93hgşY0⒙egxNm~n;yOg \(^]힞N$ 3NJ$e{׮[_0^dU!U67 hBA1> !0EʓWB۶mV+b57|Îci1111C,b _%烦&@2t:޽[ZuKkooookN&Tjxxttttt&H$aUY" j:Q\Dz{5IێD"HDUˤ\} BP(Apel6CCCCCCVMr堨*H9U7?????K8tHʁ^--R.,HyZ~_)@RC,n)V%]EE1Ժ%WN<~-6iy"a%W?_Ujfm_5_'8 9|qQʄ2L??|`]6^-T=]^2tg9[_m4X&yBK_p^r~l}Sp⺰qi yy 8u]յ5WUUUUEY____[r\Hpdˮ^i%d2IԔltaQ?V$>Pj˩j.r@T*JȉL7%FiݢBiDh4 RT*{{{{{ffff/^j5y8@m۶[4߹t| c8gaӕI9z" BPt:F|3Z^b SHon~xאuy=:osHLEJ?8g/z =vIn%@VCc2:s:t2#$!ƝEp! lmh6s*OI03go>bRH$QM@aVdm(B50t }?g'B=G(,[*JRhi۶iRJ缮{罜[_[Or;;ܪ 0 0@otPu]ץH(C: cf0n(JrsM4MSJR)z^yCPD@&9瞝^٥t:M f"! jZeu5====5uvn;˦ii jZ8hc 0Yu]0 bX,2L&ݝ+W6????7wjn;ΫWBP(LNڶm۶*K7"UN A &r:㺖eY(2P,"r0z|>Ϙ6 AA Z~NjZГ(9=z%ww%C2L&ǃ%?\x#0?=7)烠ʇ;:@x:?*4xGzTXtCommentxs.JM,IMQ(,PHUp HT0200VJ.MRPMLVW.IK- AڞIENDB`pychess-0.12.2/flags/ar.png0000755000175000017470000000275612641567764016013 0ustar tamasusers00000000000000PNG  IHDRbKGDC pHYs   vpAgxL&IDATXklU3nif"*vT!1H D$FQo /1QCT֪5Ll]dm/;vmmO?o{9i]kLnK뺮52~xe-B_=SSr}Rfa_Z7[lDGG zˆi67qk᳋+K'=@#qT l}Gʫ3^fFA~lmb1@8g7W:B鯩uٳgii h4{^oj˕iN:DffuXx)>p9L>!e䗘lż\(KA\|P(r:^Py{o;ĸ!G89 KџeYereo'8ĨRl0M4M0Hכ.[dYNtzssssS}C^P~XԸ:˕ճ.twPw+a8xw:~60 Fwbj;Їhmrz^x< 7ϞYQRRRR\hQ8uuuuuuG( BʪQUPډB| YD1@ 4MmOBCCCCCTWWWWWCJ,bVSSSSS#D7œAYC*H2^$D":M7ڼ}[B{{m>wn3ya[hgdج~[$R|jh&  ;x`ʏXllqH'ou65GzTXtCommentxs.JM,IMQ(,PHUp HT0200VJ.MRPMLVW.IK- AڞIENDB`pychess-0.12.2/flags/gd.png0000755000175000017470000000317212641567764015774 0ustar tamasusers00000000000000PNG  IHDRbKGDC pHYs   vpAgxLIDATXmpT͆lLMU M;!dY5̘2R+S:ةSk6Nt2֎SJeGcKmI j6vM/srlHv`7/=瞗? qqNH)-Z[eYR7_:-B!f`h(L&ɹs3l65Zϖ !|{KJ -xp*/pepՓoYzQFԒ!G\T%k~Cp7'[pe(1ƃ6x/;`􋷬yyt}EȝjeAߑ7~R ~Ѽw~pp<,d/j1:&d%^x ~ Ko?h{pW"*j!L3),@Uy^)̑ŻF?UfLU %?SOMUʂG_p~pIqN }AMO\:3}/ !b!;YfhV z^}'sP6ܼ$_ϝTuzrx[ 'E_Ck"kt3)0:{? n?|)+7_]hzY ͙].h*[r 8eI q+[;C uwJ)T($e bx:O@Bm 6=o4Lʧz K(z5Eၿ+Agurl}&-+૿ ^o} 9,Rju)--j!30,+++Ҷ LnT)4|ak4>e[ѡE_D_X ~2Z򟍵 mzx.;D?O}Zy9n$D"H*JٶrbbZFK_߄vAzn\X) =7"GY9KK纮F (?ǩun:z^l۶m۲z{apppppcohLYrj^|yh4Ⱥ:?x<>1q[--t&v,bH$dlf66ӇX; Apqpabb|||_ظhѪUL&8]RJR&F44 Da"YFqx<ǥ4%…|^N! i0SL00l2Պr 1Χ}~7_uu>ON+כu[h˖ "2 _̼b$tfΆ~6L!?~0 KE|~A%ƒvuGzTXtCommentxs.JM,IMQ(,PHUp HT0200VJ.MRPMLVW.IK- AڞIENDB`pychess-0.12.2/flags/ga.png0000755000175000017470000000210312641567764015762 0ustar tamasusers00000000000000PNG  IHDRbKGDC pHYs   vpAgxL{IDATXV1hQ]{`$it\h]t)AšTBit*fvrhtqD,.MpXĦUIUs6^/4 ) .{8/Aajl]WEQ=_+4q~ c1Fq4Y.iZe\]ڿm h:((ͭ~N a9"SWn^߿z^o 1pb)aUZA@8LO>zw> 8ѥصߝSz)zo{8_xB'Ctzw¯oL&Ⱥյq Az:;6 ,,͜tz'`.<LFaUUՁ/_t]wvZ GYA$QE\4SB⇹h@ȳ<i nmaHGο}yN|J:'kw{/Cm۶MZ>8$I$޼x<IyDW*J BǏOLT*iYϟd2d2 P,"`YF 6*w˲,2@$D"@"H$(_}ubcciflaax SfF ?>(DP<{\xض뺮 r\.d2jZVt:N&5)!Z~jZBP(4qskd?76]!FQZoC gm%m>irvWH+w|/(Pug7ف GzTXtCommentxs.JM,IMQ(,PHUp HT0200VJ.MRPMLVW.IK- AڞIENDB`pychess-0.12.2/flags/kp.png0000755000175000017470000000274712641567764016023 0ustar tamasusers00000000000000PNG  IHDRbKGDC pHYs   vpAgxLIDATX[lUg]h D &FD&((h+c |H%I F$%K@%+o(EBs|]mh||?aii6#ӴR꺮e,ռ|r4{˲EB!^ };Scx<Wz)GjCe/evݦik s氻'_{vC,1,C& L.Ɍ3 I7CsS\{+ 7Zv)! M]}2@Oo6qpAK A{S\>K]7wJ,nB='Yڋl"< ⣁A,G17Qۛ/üXeYVQ`LKoۦ3пCvY c}[aS(np ~sͫ ^, }^H"@g pb @;$! 0&LT*oj9qĉp躮s)w qǷ>Yʃx\n>^V0O6F&vQ xDJXx<OQQoo$80s̞6ڻk< a3i%@,7TL{iD0 &0 =,p8tʕ+WBP2HTrpqv^FGJwr\kFX<~XKKKp|>]]]]]]7jmt:N'aBmmmmm-Rd2tEQYYYdIuu,~F"H$u:nDAj%rZȪU&i`0ijl9D+B]]]]]t:iBrS!>5T G%D"b[nk|[ڵzP~)mMllJR/h~auwVPΏtzlzȽ?gvQGzTXtCommentxs.JM,IMQ(,PHUp HT0200VJ.MRPMLVW.IK- AڞIENDB`pychess-0.12.2/flags/vg.png0000755000175000017470000000307012641567764016013 0ustar tamasusers00000000000000PNG  IHDRbKGDC pHYs   vpAgxLpIDATX[lUg]X,-TVh /QDBRE@%ژ>(TX"!(mQrmK޺ÖҔh|w?ߙ3(,Yb4Zflqz}qa B/֭`0 32"h4rӼ_o!M0 '''''G,Ñoakk[[(Ӈ.dÍK2Ù &OW yƖ]0ypopyUё /@#NZp b+.z'lkG:;u]u)@:uC [{bf2/sYfzS bŐË o h.s[&%'sdf f0=ܟsG6\H {q$m6/,(mMn1-QD37xEUƣ(:8kb0ĆK> 0 QMh?5/+.`9D'aPޢ/Pbps2&}#7.'Wv"iiW|>_WWHEvl6 1S*H)N=;ptN%veW<\z=$Y"RO{{( 9{ .W{oMSOZ\'R;KS{[3@-S~ϴ5M4Mf"  ^[_oNtl  tdV@ɽл0ijoIf^pXJOOO2dp8Fwv:!F:dXHv\. TUUUx|Dٳ`i"H$=|BP(XvVވR~PȝHmBfh|"OB]]]]]=H$ E"u6%9eCbX,~ҳhJ~Ymqc@=K?IX#~Cl=od{}:\>iן`P>ޤ; ;,;!;!F~ u^ʊGzTXtCommentxs.JM,IMQ(,PHUp HT0200VJ.MRPMLVW.IK- AڞIENDB`pychess-0.12.2/flags/gt.png0000755000175000017470000000277412641567764016023 0ustar tamasusers00000000000000PNG  IHDRbKGDC pHYs   vpAgxL4IDATXklTE3w{Zvsk*UƈZc F+/+`"YhB51 1C|*]jn隶۲nel6m[_N̜3{.bWH)ֹ+vJaL.Br*{qK&BDx|T*N@ 0nar~߶]mQQyT ɍekj>!SUfP*wV  |w gNɜzӛA֊7Eau ab{}v…\.&7EBuWga#n•sψrrц[ȉ=e~[+׮Z.Pw89ײIrdv8IiBIjmT7`D<.Ap7 -ׯvF5las_*;;$!yPV;b{~4BTW[eLx[RRR"i^4v[PשF@}vyO֧n{X,W|Ac.g|> OxjAn_%dD>H>zoh(H$LӍ2;&08"D____<>qV^NMOw.CcccccRT2L.XF:0",ڲVhkkkkow4M4vwB3@7`-ޥi|{qm۶m}-t2&ͭy+-]:L[[[[C! BPbX,tڝqS^˲,˂ @2ѥK]'Oŋo=JGp8.*J$DbܱZ)t' 4˅KێFhTJ2W< H$@0 flVʦ&!QH_ZT@OOOOO?ιb&W֫ƕccꚮZg.m>+oyO.Lɧ?2&@-'_ ]NO3:B_&V^(GzTXtCommentxs.JM,IMQ(,PHUp HT0200VJ.MRPMLVW.IK- AڞIENDB`pychess-0.12.2/flags/ck.png0000755000175000017470000000303012641567764015770 0ustar tamasusers00000000000000PNG  IHDRbKGDC pHYs   vpAgxLPIDATX]lU3;\Z,ۈ@H0WHZ1JӖ@nw;ׇeCo_Μ;?ށxx(TUUUu ˋ,_M4M3G[9/M4EQE z^כ BQxP^ӄXۓw{fZԥpsY`mxzN]צMΛZⷝUS>jOVqmmQ.GG̅Bvs5Xx|44 (Uw '|?^gY͇l dz|iЧ ɿ}?ډ_pKKx lmu:.@䑊aS@`#][Xm9bmZ#(3 8WLxwwhZ+@}FQ}a<3!,-+J/w^ "Lp~ V6|5/x}ewϼ egy~-Sty^<fČnn 텖vc ss[_z~#_yʳ ]R]5C9vxF,Q\3'H7()bxDor@Xɪ?C5 4MVUMS]/@adZD1osѩ9bq!q>V/dޓothW z &c@599CCͣ(Jqtfd퀜hƍiql' [3h4$&Du١j}eeeeee~-$n8-.ҿ ?J qQEՈ1m]! b1D&d݇Y\t.^n뺮i 9rC+1/>u29stׯnw$@[WV uuuu^_____@(dǝ &7NtBx:0 0t:Np8\.Hdpppp+zKRZZZ:k`0 =`|>ϗ,++oDYA9Ʌ|F&hb 'sn[Ue,;v"lh4jmmmmm$kS"x*HiH+ Jj pͳݾkt YƍǍPRRRRR"$`Ih˖ ";۲UZ[},.^ڱOKO yK;|$d!}q O_GzTXtCommentxs.JM,IMQ(,PHUp HT0200VJ.MRPMLVW.IK- AڞIENDB`pychess-0.12.2/flags/af.png0000755000175000017470000000265312641567764015773 0ustar tamasusers00000000000000PNG  IHDRbKGDC pHYs   vpAgxLIDATX_lSu?{׻\q@XȐAH YcDD ͆/|aቀ .<>Bgix͢lX۵ׇu/|9w|w>>(4˕k_T(;w;̗{AIn1؄H ڳ_3{t:^lW!>}>מKs͜Jgݬ|a_;o('~26dBwL79x.+.L>u'hgJ0Ν;vD>_UUUUeȈz2w~_\v(`4 B -Kժ? `p2r~! XK45 4jd{μm9afa<',˲, Po_aEm4M4e& X;߻wpppphȲ4M4MU`bbbbbrRf7 0 `P -kjFOOK* yYn߾X,x7ҴP( `|||||qFvw&1$rnvz^/A29333k}`@X,_raF&쬼e>wZI6B泰&4u]u]QD+CGGGGGRT*(]]]]]]BrS">$5 GB%D"p8g9QG?Ƒ]iZ'BǎbG]:&?[,ʹ/r%r~D"i~H rBB*2=ozj܂GzTXtCommentxs.JM,IMQ(,PHUp HT0200VJ.MRPMLVW.IK- AڞIENDB`pychess-0.12.2/flags/az.png0000755000175000017470000000275712641567764016024 0ustar tamasusers00000000000000PNG  IHDRbKGDC pHYs   vpAgxL'IDATXoLU?繗U ɒkmd-rF̅3M f/j9e˚r5B-hV+&7jEJ^<oZo{y`Ÿ4MӴ kZk)m6f3ɥHNoV@@!Pu`0 @0C/iBvvvvvv4jiSRS| ?xwL0 )(i̗9MyG~$a?X8n>^bav?bvS4 5$_Aqu" gy@cϼ?p |xr+_r;pf&˴PJb[agQ[ &:K~y|TK׮B݇`0M{7 k.5+s@*_c HiqYUb'ogV^`LE O p`y@/eX.!m^|}g;<ޣbyB3l`zoݧwA_lH YƓ Hh*!-cpl)%i|}N079_ aC X6qEUi7`iNlB7pJ: _@x rAv?◴ZPIлWG^YTEQ#գ"'rRS=gppa8fA$f(+a_ߩLp ½k# RJNfa 8-@bD hJ+nt~[Ii@n-pΆW~Tdd~3뭳@1l*g) RJ)C4F8J˕r뺮lmmmmz^/X/dRBS2oe^5@@Qi[s]ЩSuuuu^_____ Y/uㅩjjmar\.deeeeeAUUUUU  ZћEAAAҥ+W`(trCCCCCCJjETTLv"yэ^-,Dh2Kμ PSSSSSH$D4Vdn*LJLDp8  ɖ-w畗gɡ!K޽;*Nv9Ė鴤lUҞ^$KLɧݭ~lF&}>jS!_Y_iGzTXtCommentxs.JM,IMQ(,PHUp HT0200VJ.MRPMLVW.IK- AڞIENDB`pychess-0.12.2/flags/lk.png0000755000175000017470000000272412641567764016012 0ustar tamasusers00000000000000PNG  IHDRbKGDC pHYs   vpAgxL IDATX[lTEs۴ bMA 1A5$&"1(B5TK1MpqvkHv+Keoݞ=LJemC|3}]3s`34MӴ[fRmp8,kr֕S[/B!T!&OΝd2L&I3LFd|4PmYPUUUUUer*^}}Go9\mJ𞶖.,O E>8cpl`=gaz`~%}ۃ˗pW'c H.Á.\!}̰b@#} X^Ͼ&T6LY{/T%πeYep @8m=ݲ1w[lع=x0+[89ZeZ%vʾY @~0 l$;zKf7/]gAz{9ч;wʲ[mQa55R7.ҶJ0M4MJ` WWڵ]]]]ѨenptwwwG ud+9+544444`P:RTVyyyyYن T:ɜ8p8C"H$YnX S^뺮C  \.B^ \&jkkk-OLN0 0FʪQUPӅDq!T<&f1X,4ML_!D"hmmmmmg>&D17J 6~l6B<cIc--nA)~~=BP(BRh׮C,~)o΢\j^OM'T_#M7RPTo__stlGzTXtCommentxs.JM,IMQ(,PHUp HT0200VJ.MRPMLVW.IK- AڞIENDB`pychess-0.12.2/flags/th.png0000755000175000017470000000214012641567764016007 0ustar tamasusers00000000000000PNG  IHDRbKGDC pHYs   vpAgxLIDATXV1hg󹕹5HQbk &JPNdfd CcS$l,[{ g$8q$I$uK ]W0cQ޾mZVn4My 0m8#s] H$ ɠĨ;;䳋zCV~Dvw~?j7c~Mpf~Z_wj?<ܹsX_[<>˛X>B8&~[O.y+¿7?x^ߩ_l<>6g9N뒤DEwΛډy8x+v"ssۺ9yMӴ)E\%I K B}vHt:i 0dYJ\WOߕ{sa8C܇kڝ;JR,˲,KRVU@l6 I`>_&d2D,IQNZQUUUgft], bQbXFLSLdq B@?j((iX,l6޵k"˗liiiiqƍn5/JRT4 0 ?0U&"UIA',s 89'Od\(rr\m۶m|>g,؛0}5HRAZm~eYz>`'ÇBnI!?|իFHRT-z udxo+ɉ6'y#QqZ-z:8D@0ɣA>N3|.|( w]GzTXtCommentxs.JM,IMQ(,PHUp HT0200VJ.MRPMLVW.IK- AڞIENDB`pychess-0.12.2/flags/mv.png0000755000175000017470000000261012641567764016020 0ustar tamasusers00000000000000PNG  IHDRbKGDC pHYs   vpAgxLIDATX_lSU?++&(`"m@Ԡ V# [EMԇ J06DCM"^딘m"tuM[ùvݺfD˾/~; X"aaء$TpXUj-K75%Bh?fCx2L&˗әL&RΗG+C^JMSikj;~ƍT Vwkl-`~a+e6וaI{N[)Rà*29Y( l C㝢S@kw@U:^1B>c]Lu ߓ#449q`a3-+ڰ>ֹւq]m}h#y)8g~n6d G{/l R Q`m>k8;F|8l_S<ݯCw77H\@>j ><47o,Qc!_# SAV 7/ j&!C}2@l?&&\˲,x (@٢1}lZqq6qix/s 0`}n`/ \o@ d˱X,6=]1=5 ˮ] KW A g+=dTYŌ C z<T*rIsWyWx)W{3T'5K+}%KY/4M4':9ZF l:4444AGGGGGLOr܆ yӦt:dNﯩIRThXgV߈:Z_.)t%B5ibX,fdܑ D"8|>7.!{Stkh jflx</h |55)uK+  Sj={nbxgfg}Q\z\6^WNRq3<}>:Ր/L7"/?c`ݛGzTXtCommentxs.JM,IMQ(,PHUp HT0200VJ.MRPMLVW.IK- AڞIENDB`pychess-0.12.2/flags/tz.png0000755000175000017470000000272512641567764016042 0ustar tamasusers00000000000000PNG  IHDRbKGDC pHYs   vpAgxL IDATXMLTW=vAZQ*FJMc011Iim `~4idӅi0.h6ISlԆĠ3 >ady7ׁA 6ߜye,PEQU"aMSUUUU c~)%7 _$"B8fC̟{P( Xb|Bڛa@IIIIII"ai3g-th8 6_nwk*d֊26@H~oHV%}8VGǓd2tqJRoKɼTF4@q @ϷOw&$s;ɝ']'unkf_@~ ?qi,@7y9Y}=CWV8.9UEYl:>oI4-. BIP%y*e?~ pP z:~ ~}gx}kZKL}.$@iK|*-'ntw*ڦ/zso'@͖U`GiBJciآ0 0 CQTUԖs? ;>npD1Tl;1Xm~2z}Yߺ""SN l0 @:0--QZis ȍv{nnnl0LE]ɾS$yvMg$)<(zACY;֚^BiE.nEEEEE16öԃN@dnvzB BiFY)/v.@]]]]]iFH$rՁYx<M+-մ]~?0 fT7!7Ӵ2=f&&2-?iH$DBtBG"Jr\Ngmm$b/|6|0888885˝L:Nw@Ra~niiPXXXXX 099111eu[|ۣh4kmp8}R^*d'2 !㙙Ν"N"뺮"[fɥ_ <ぬ)Einnnnn"s炤 sQm!x<}8rĒMMnnK>x`ŞPVVVVV&IâPcKlKV)2E&w)J>i9A߁$R? Y058=dNe_ "o/`sGzTXtCommentxs.JM,IMQ(,PHUp HT0200VJ.MRPMLVW.IK- AڞIENDB`pychess-0.12.2/flags/it.png0000755000175000017470000000242112641567764016012 0ustar tamasusers00000000000000PNG  IHDRbKGDC pHYs   vpAgxLIIDATXVMhGfZZUĺE4V6nA 5)\MIń!C/ BŇ^Bmsm" qw%a<ډo.3ޛ8L ¹slelmY(Hi{r>>M#B xX,^]/J%.O[oY~&u8] *ӛS?qt@!=Tɡrn%ފN%KK/hjE*B1٠MA$Y+jɓBnD/.o'8 $I$]"f+˲,˲mi]yf1<&y^KK8C~4Q<bX,;?_?7ig^,`o6PDG^~|:r' ݇׳#~ջ}j'~ӧiumUƽ'fGv;7paLn<) p.X t*+/#δwqL`$)?;;g>⿞ Ig JRpx߲,KQĪCP;Pڟϸ38a^s"jTc*Abb/p.eB8 k˥Ry("{{{{@Vj!G -(1NjsqNh(tIRh+D77Mv|00 0jZV7x檪 hiF(N4bL&g^d۶8\P( eY5ܘ*K7"UqA9Hd} ḮiiJL'2+bd2L&un+Il62&!Y*H&jZPT*:a_[Ua{=a>vD"H$h!n Kd|_\qGqi4hA"A0OB;'/+vGzTXtCommentxs.JM,IMQ(,PHUp HT0200VJ.MRPMLVW.IK- AڞIENDB`pychess-0.12.2/flags/bz.png0000755000175000017470000000302512641567764016012 0ustar tamasusers00000000000000PNG  IHDRbKGDC pHYs   vpAgxLMIDATXklUwfw;[ZZp- ,b#1B@}D4V HZDA+DI/y `matv-m3=s5\5\idK뺮5TC[/B!T!/P( Fx\B()- ^5Mtfw akk[[8 Y7w UBR7,ψ kEW&@| -XTVp6t)JR Qv`_شm @8cꁥ]N:ƘpnlSg88ya pIKH\ (O-3r竧0Lfm$mG <o0KHa>[ǔ/ZԘz|ڥ3+Lh eo.r d]>yaw::]_ eG_m,yb멛R9ݻF恾ZFq* ho9"lR DWǹYFgch\|+Иhs=ɭ A cee 8n}LG0;NkfSȲ,˲rr4MׅL-k}Ҁ]׿~gX(moGa=&{=[ֻ?35SO9mkaJC |>/+1:;,@-4 4˞p4\QnvЅZ~ywk1Q+ǽO{( -j cO\nq$mAqqqqqqNN$.2s0ݕK]ӬGwO<(\wxOH)4M4U&PhX7| |9s,r\.]?{نhiiiiiPڅٲwҔLeq~%%%%%%**p+////7wh4ǷovqFVJLVB}(0 0|>x<ʠcd{ӧEQQQѤI3fbX<~@MMMMMpzcYu#*{~Plʧo!f 8PWWWWWH&dR*+++++@j@T*^"H$ `uX̖n~[vuٲJw(,,,,,TaShꞏ6R*ȸ/2ɥ+yS~C !-d sX}:?+C| ZGzTXtCommentxs.JM,IMQ(,PHUp HT0200VJ.MRPMLVW.IK- AڞIENDB`pychess-0.12.2/flags/uz.png0000755000175000017470000000265712641567764016047 0ustar tamasusers00000000000000PNG  IHDRbKGDC pHYs   vpAgxLIDATXMlTUt&6%N_Mb(F]~BÇ+XHChXЅ, Lڊ!B?F;:#δySFr=ss}aa٣FRi/BB!t!'04H$Dii:d2Z | BK8m+U8h!$ݽ"8)d%p0h׈ll\f D8p7AFab?20R8R9|~GVח~.:-?x/AejI{Q'$P% O]vT*(/F9+PUeYU\x^aݦiR4Osn;@6 #rDN=ґ)r\ ki0 1KPRJ%ɤۭC@zɟL_HښKIM?qT/^RI m۶#"$,ʲmsvM3D qP7"L' :y&M@ϬVѭ$t}>oٲ;FFL…PBPbX,LFjs +P_hx<XeY~`0 Xc%6oNLʕv+L&ɼcY}# j}xЕ(Lg&-[jێFh0tɔ\z  p8Csssss3el6kB\[CKZmFGGGGGa``````<%P6_JN7롦FCSXKJԿZͥkv I$Tf rL/lvqz(?0_z-KGzTXtCommentxs.JM,IMQ(,PHUp HT0200VJ.MRPMLVW.IK- AڞIENDB`pychess-0.12.2/flags/nz.png0000755000175000017470000000315412641567764016031 0ustar tamasusers00000000000000PNG  IHDRbKGDC pHYs   vpAgxLIDATXml[! i҄R5 %mB4*MEl:- l%mCP;&J+u[biZԦiľ{p9uDoyyy??pqRJy;mwaa8VϛNqI!B1ux<^]JYei?RS%`귓C^)ǁvO6N$ 7y}X}9/շ=4m˂gƬ=0|| ę?éggG@v$8:] J_ ,~ vml܊|>?4F>ޝ_^&bLU  ,^/? ?%wު>us-|G+r۠ʦ _\D)S0g~Gғ|?~-ozԶKu@6}݋a e򷹟A,k);VE29V@)WBy?zĞ=X 1+:М@j\\ļ s죞pT_'PAňB5Hs=y2QWUUsa?r!4zep~{1(P3`#?6ȅ@Ԩ@u`EH\s.RUpcddrq ) C+酒$ˡ"_〬pIS`6ws1 Qgx/=p:ζ;@C8 P_|[8:kU\} dEHO- V.V86q8s@J!##D"a.LЊy `xWX, ,Rߓ+7?ӾPSSSSSJRd2YWwt$ M@w}oBpqL4M0aCO%m]^W=l۶m[ljrLd2krd27M~r;{ |wɊӍ^ _ Ҳti[[*JYѣ@ xe?-q!k0;'fH6[VZ/M`tbWI8C: i4`_w_c{ƨ{?ZH'sx_k__ *G؇O싘`]*oy}Fql2g}> ؿ~`b ?|xwgO?ٍ#@> >3],G4.xNx=@i@'.'.&vYvY}ʜ2dLGsKMnpOS[}A8UpK}Q?\kO:-kRn59,xj7C9= ѭjB@m۬GzTXtCommentxs.JM,IMQ(,PHUp HT0200VJ.MRPMLVW.IK- AڞIENDB`pychess-0.12.2/flags/bf.png0000755000175000017470000000223412641567764015767 0ustar tamasusers00000000000000PNG  IHDRbKGDC pHYs   vpAgxLIDATXV?lUrGN,D,Ojt #YflgU#S} <;z/;[W?R?;f)Yq W~x|0?K`˘\Sw`4~'ه|o_Jc'88$2cKɤ9E@2ԱWegՉG[ 2Ji߼>&@F(,vE>=oB蹛(Ir\.ua".yUu{1W]SI۹iq~s~m۶mpqhZ*iz8("˻n6 ^Ho"`bo^|>O f:- (V</,?](JRT*@jZiYn70ayZUUUUM4MD" BPFp8\]wvX6ͮ=yZZVaa"RI_ !(É118뺮D-|@jZVJRT,˲,Kr\f? yh4 A`0 @l6=AG[tZo:L&dȏ 1B/b!V9{.N|#0?:hD@0àʇ'/)/ ^լGzTXtCommentxs.JM,IMQ(,PHUp HT0200VJ.MRPMLVW.IK- AڞIENDB`pychess-0.12.2/flags/kg.png0000755000175000017470000000220212641567764015774 0ustar tamasusers00000000000000PNG  IHDRbKGDC pHYs   vpAgxLIDATXKhQ@iԖ0ՀA]"M)ݎ.u,\utwW".$(~(I"?I dd}L2[t׻9y%[%CEAΟǑiضEQEѲFgoY_cFgZVa~-m[@$D"[o?~u]nGo+.ySO8U\P Xn 1̃#%_7)}ǐ>p4{훋 @w`ǎH9 {~3B(`0(_ᇬo3o O#뷐pEaYx(T麮KHb m`RL?a[Z-ӻnٮm4Lνs{fBQEQvfnMSUUUU c~) ba !2{7D"x]Aem`^RmhQ8W 'iX}z?(/֦_-W\yWl]NY^Q("ݓ =Bx ^صeE hF4#?ۀnn`+Vfu9N>U}*2=Nl()9XX t[Viv69wWTF @K ÷ťvC΁3Ѻwte2ЦiӴic PSUFGet z^].q͛`R˞nzvGwVl9ǫ΃qzՐjH5YxۘFxDQlWWWiiii 9S GIHo/|.:O_7sJ@__P׫shǐ;)-jڀccc 7>`Wi5_S;UlX3kn6u^:t8np7 A#w V4v`qMqMq =UK_|7n1'p9},5v:c`Mdn /W1%gCQ&ɴdɬ,Tq<&kq u֔ (+W+Q)-IieO9!} @}gǸ3 (߲E}l6-DpXiO!'.*U:0> 8ە(ke9=2c m)Yy'LXVg`2L7z<+,˲,0>`0  KP"Ldnr#vr{i]mmmmm- JH$V.[VWbwŲ.rccccccI72 1qL/4VT* 0L& 0FvH$ffff%ׯSW[bwvJe8Y$F$$zx 'y8 (qx~&%‰_d2LtWWWWWE{ >HkI 8@:I%' I2'|=X,Bd!о} ByBg+ ٓC\dȅ6+'"_{&raRx,$]X#WYI`GzTXtCommentxs.JM,IMQ(,PHUp HT0200VJ.MRPMLVW.IK- AڞIENDB`pychess-0.12.2/flags/de.png0000755000175000017470000000230312641567764015765 0ustar tamasusers00000000000000PNG  IHDRbKGDC pHYs   vpAgxLIDATXVMhGfV^ƊSJCUzKJprʱCcPB%`ZJ!H3ڒP@9 rɭI$ ֮~a<,l"zwy;oߛyߛog>RJٳbb̹(0q|z*!"3Gr\mqwjo9c@( B+##xߠ >|ز|X~[ؑVj @0VB OWXǽ: p|:?/n~DZ^uB˄1$-> X:H`mMh0+|3 o=yR5cL)UB*PkM5zڠ r /X Xsu9.rv? ~}Qv6>%_x;p0 ctte4MK@jS(mΫ'&ϽqM:F,w6p3U| _"pxbX,JŲ,KUEvpqkZ |~t]o&~9ɻs"STlck|af7!~su]ue%@ =  \.SUUUUEY^^^RT*qCv( d7_΋x\ht*@ 8p̙jնڵtZUt:bXGn&n?hiiaa`0 D"HF^OM%'Oڶm;b&d2##eY՞XvVވr't9uḮiiR*Lؽ2,dl6 $d2 f٤4JR)Bڔ) ieCImzZVBP(t sa E$"Ɔ!FQ9OBB.m}­Vi}+.^ڽO \O[M9,nB;?ད?}?ԵGzTXtCommentxs.JM,IMQ(,PHUp HT0200VJ.MRPMLVW.IK- AڞIENDB`pychess-0.12.2/flags/bn.png0000755000175000017470000000313112641567764015774 0ustar tamasusers00000000000000PNG  IHDRbKGDC pHYs   vpAgxLIDATXklSe眭kKGRV/Q4>bfQ$&L\`-@M"jtm K(ms[]/Rֹ-#?ss9p p YeY^1uEQEѴY'Ziy$I$ ?FC?p8KKD"v]/$뺦r\jX La_@$ezq7ls^~Lrz^`w~~Pi4|mɑJlFEl6HPzK\炐URtڃ'L!H}$O`)~>}2n T2[.DTUUUUzDbBJe+Wbx"'MMMM~~?tuuuuuA"atdr*` >l6fpnNZHd]?:C@ (,D"H$Ȭ"ž?XJ'B32K%C8 B,|W` NiY|m e BEBƒD Cggggg ڰM|yg293>9ڸ%66UpA^x/b'MCH? NO/ ;o9"7GzTXtCommentxs.JM,IMQ(,PHUp HT0200VJ.MRPMLVW.IK- AڞIENDB`pychess-0.12.2/flags/ma.png0000755000175000017470000000205712641567764016000 0ustar tamasusers00000000000000PNG  IHDRbKGDC pHYs   vpAgxLgIDATXVo@GU+2D!!րĔR(b(CRD 86h&*b鷼ܻw{;_s9}[\W}_$IɖUё_n]B1Q+l!rtVxqύtWpǎM[/Omxv ŞLk/yiϘ¹&@ "DB? b{=Zz5\~6Nyo|x0;fsjyr.Il'* WvlqQUUСO 0vz!@ %D8eI`~K\M4MӢf4MS.(qW{/y[q{":7.-.eB U]\Tr\Ts8yP( k0?$ TqR ;nmZVվuܿ/l.}E2)noO!JR)@H%hTXJvn͓U|/,NAzM$2&;|T08t~`E>-DGzTXtCommentxs.JM,IMQ(,PHUp HT0200VJ.MRPMLVW.IK- AڞIENDB`pychess-0.12.2/flags/bi.png0000755000175000017470000000313412641567764015772 0ustar tamasusers00000000000000PNG  IHDRbKGDC pHYs   vpAgxLIDATX[lTU=ӹejKNXxR5PD 4DbP!MUFLDjSA;ځܙ9LJæ0c۔h|Y{nna0 …*ךf4Fo徾@UU!G,D ttnmy>'_75MU!######ֽ&S.loT0 HݱŻk,w\f51T `xPHa8֨5>1[$$nO 0a΄SϘ:.>XzGzz"H$7@Buk izyxʴ0qBHmX |yr7 =,0EBcq6m:@҇TP^Zhw6rcj_l1}tÆ_a3l>{- ~揻pA<3bSk0Z\X{n}p z=ߓ>;֧ǎSۺJ3> 4]Bxr1A`{$lٳo9jiãCM'ކH^_w v–L J>*9X}14@wAVl hP+ CA-k B͖_T/LϝzX<61H(6ݛP X]]&% F@ː>Vz;p[nZT-el^dvQPg_ |dߗ[Ә;6w7}PճP/ö3MwMK8n9 l̴vr+OˍVk|||_]]]E= Ob09BAg` E}٦&oL 39<ݱ]PݹO lO[EEEEEEHW(ͦ'$V=Ϊ*!^ER'Ww.?عz<OZ@{{/n̴έWUl6Ɔzhmmmmm}B^MP',m61y.\~~~~~>p8,wfexh+999yȐ=竬q8fp8|>}"˗[{;#?jZVvRSSSSS@ .ӧEnnnnNN^|֚L({^NDB69s.pr\.ALO係t:PVVVVVqP(  BDkS/_ҐV/ ~hnnnnnjn^xA˖Kmj ^ZKt+J5%K{G~al?!' _!n؀!GzTXtCommentxs.JM,IMQ(,PHUp HT0200VJ.MRPMLVW.IK- AڞIENDB`pychess-0.12.2/flags/ro.png0000755000175000017470000000202712641567764016020 0ustar tamasusers00000000000000PNG  IHDRbKGDC pHYs   vpAgxLOIDATXVOPgATi)Ď JLE,(eeJfvTU CNlIH@tHbBMcwx9-w}^' aY[+]kdYeYh& jB!ĻsYeYjUUUQ`^ u!oD"Sm ` xvvq(_n'Jm%w7jR:^v>B`art,O_6ӎwx9pçˏ ,| \^>0 e@ܜ }! pfԶG91մZzߝ$'ж(b(ty(qtq{2puuXND/Ams@+߼ 6is@u]1, `G&+ʓFbX Xڲ= QJ>#nHn/0F> ݇QOx<ٍc9GzTXtCommentxs.JM,IMQ(,PHUp HT0200VJ.MRPMLVW.IK- AڞIENDB`pychess-0.12.2/flags/iq.png0000755000175000017470000000266612641567764016022 0ustar tamasusers00000000000000PNG  IHDRbKGDC pHYs   vpAgxLIDATX_h[U?&麲Vtح S*Ёms tdǍ=2@AȚ 6Mm:H:B$Mӛ{|;K-[/ߜ_󻰊U4MӴݕmk)u]uqfo1.8TJ!P~,X:d2L&L&Qr)J.!@ ض+-++)ue/9{ DO@5AƸ SS@:~6i%$̀^ 7uTlck a`[ nE|>__p:s+vh_!ItE,wG5y9z|4)0X\ev#No>϶g#O0vbfN H;8, V!| 8~K4{@֬ p{qnF [h_wH9qJtMA>tJʑ3Rvi2wЕ!h*_R: zN@$RXV$24TU5ccaHOo`z}Z t8}Y uy(wxImJxw L[ب5x@Y{36*5'q-[,˽ˬmGñ!!ޖG X֦Mi^o;6|fi4{ R.O=0J80FP5@ Fif⊸"V+j`0 w-˲ rffAqu|{g_7.H)8vsgr{#m۶'*TLs&lmD"A1 0 ]FAwB.4xn];Y_&:b2_UUUUYwo*Ng2Æ0$D";,8 *X^j|>i&@{{{{{;d7oƝ;t:|̲,˲ ̪2BU8ʟ-ƱX,4M;r\NӺ(MAbZix|>p9zwyv呑Р)m#G>[{Eqs^sI~ta CerA=+K*Ԛ?GzTXtCommentxs.JM,IMQ(,PHUp HT0200VJ.MRPMLVW.IK- AڞIENDB`pychess-0.12.2/flags/tm.png0000755000175000017470000000251012641567764016015 0ustar tamasusers00000000000000PNG  IHDRbKGDC pHYs   vpAgxLIDATXOlTUnjvh*TkE6h$bQ X`c+WN `H!NI#8a0N'0:3ouq2[pos޽{yE,⾰,˲}X)۶mۖrnkղeB!c6 ܼd2̲e\>ϛy"`!WJJhkkkkk}= Vƍ[<7?;LUOjIiIR/w[g:NaC9NyW@#m:x`tEܩT*Je: y~'wß[ (GY_*ֲ)  d'x3E' .D~عcUVzf^ Lm&5X!HmWxM\yc`+OZZojJHJ)lh,W.!t! ^EqKgK h๻\Wx`dI P8[ضm h޳fͯ!Ь*;`OfW&PP'? ٲ01y8m8+C^+a)j;(ŧ)`O9ܬT3$p , mow-[DbtTJqDZQHtt_>gʯ$`VvthkגdXm۲\.?sfhhh(sX,`|||||yݑ=9،0s8 B!p]u]hiiiii>(''''7lл_*֭ۼ9A<ϛ0k:aW Sj"L<3Z8L&ɤei@/x<(JRɲh4ZkHXCH-;P( HRTj:mԶѡmݡ3-#GDC@UyoBgɘ{Ef? |=Js.E<< MbʼGzTXtCommentxs.JM,IMQ(,PHUp HT0200VJ.MRPMLVW.IK- AڞIENDB`pychess-0.12.2/flags/tt.png0000755000175000017470000000313712641567764016032 0ustar tamasusers00000000000000PNG  IHDRbKGDC pHYs   vpAgxLIDATXklTEsw-][BM `yyHHhDJ$D* HBb"Ay(]@cRK)[ݶ;~L [چr2ss3s M4M7G9bX,تu /B!'PW@^p$y);*@_ۇ_JÀX̜MJJ\o,kׯtfG!>[NTBnW 1˥~BӸ3g(pR.OXxMnd$Z}U1r "XQg4YϷgO *Νltp9W`eҨL rҒ-@2> @6ݖG"Eq@̲"K[R޹%M^+kxeCpG#`?TIm~ }$ 3Ł-.&pㆩAl؀r+u &23 OfWOI c7`îrّǒ?fÜƵDaa8f>}`b_5;a8v՝ />&ʢpzЗOyO}r麮wP v4VRAZ 62dN7(Z?s_ '*ωG"f̏&@FR3nNNNNNY_ 6ɲMy@'Ǐ C= C %_w&2i0y^׫ie: PXXXXXh4F5HDm*74UiOj>ݶ4KvŊ[L67^#deeeee80%lY4KZ~[&Rߕ_gq-wK{m~'T;C4zoѮ @fSGzTXtCommentxs.JM,IMQ(,PHUp HT0200VJ.MRPMLVW.IK- AڞIENDB`pychess-0.12.2/flags/ml.png0000755000175000017470000000212512641567764016007 0ustar tamasusers00000000000000PNG  IHDRbKGDC pHYs   vpAgxLIDATXVkYv:q#5xS^GsYžޚU,!)t*$)T&Ûo8^|8 NEH$Iҽ{b8b̹,˲,x}a%^c`n3g]˲,%`j8#y]HRTqtpTM CKgjm,gicxt=.x'O="?`0_Dz˗oRZښ뺮OOi2K/"eIA&5&q 0 Cd'wkZVUX,E`}I*r`o@AL k({m۶ 4Fqh ǛtZ୭jd2L-qo+T6O|$ݦ"tà{x|(G,Q'8>vj4GzTXtCommentxs.JM,IMQ(,PHUp HT0200VJ.MRPMLVW.IK- AڞIENDB`pychess-0.12.2/flags/br.png0000755000175000017470000000272312641567764016006 0ustar tamasusers00000000000000PNG  IHDRbKGDC pHYs   vpAgxL IDATX]lU[V:t[*$cTXaGD.40>0(r%!& 2 B#QG&AQdu0dvX}ݺ}x{h׭kh<_S$&1*dYey&M 5]Uu:NSK&SW-_$I$:FB.z@ vUkc&$(kִD)޻'9*Gmh=QRow~)csYkNN/D"h@9hpDY&,X~/A/dX23}n}|?@J:dh 33N[nxɂ3g6qA֭O𜡵Yxd۹&^׷ B9E - ܍3'kv6&c< eIȞU``ޕy쟪6w5^Yt[#!|0|Yzgi׃]+vnr%7Iu1z{5v[>zeZgNY(].*;~ fi;]:x nu)_.KNp{W,,=0q7((E@6{ҷ Knz@%1T};.R ͡hS(Ն̑HR^l6Or\ICzzz,:N!U矇 K7o S7jz-B 47ׁpZ:,maXV՚|hQk50}A ijRU՚a'W[L(j?aQh` =ٜg69zNtBggggg'h/d|ZB!dl_~-Ol_qqqqqh@xhT-h>}ݺ~?s8zp8x<YcBH `l6d2L&l6 /֢H\@MM}}}}}}Z|bED}'8QFV4.rɲ82MN `v;L BPH+*****$) !H2  n秉m4Y^Ϋ@CC}{,bqb({X3gdhRmrJ{H..D'_ix# a!G?1Tgy zYOGzTXtCommentxs.JM,IMQ(,PHUp HT0200VJ.MRPMLVW.IK- AڞIENDB`pychess-0.12.2/flags/nc.png0000755000175000017470000000275312641567764016006 0ustar tamasusers00000000000000PNG  IHDRbKGDC pHYs   vpAgxL#IDATX[lTEsN{ť\j!k/ A -j @m5>(RA%DEHtk0n`bfam{9qe{/wwqw1"4M4mzk[s)u]u4ǖn49zӴ !*c'~NN(J XB4t:xҦڧa  /6 I3)rNy]K<!ˋ ɔQ9m|O~ks'X};H$vl&UHtj 84ǽ=  Lmӽ÷-9 w7Jo_=5]Z3A.9xyƂ̃5J+Dnredy^ (C-333S Cu5PQ>}fYI~ N a>#k:K"XJ/!~1j(*****{z`0,P[͖->w,w㳓s)+$R`g'䟃m),1_<*o\.ʕ--ia>Bw$)\\W\\\\\PyyV=ujii__(zu>YNBsg"+V8zZf_ -FQM" G Qm<H$@GGGGG;Kld^yy,>nV$aQh۶ClvKV%RދTrJN|jxj4ؤ; VrP"Qg!GzTXtCommentxs.JM,IMQ(,PHUp HT0200VJ.MRPMLVW.IK- AڞIENDB`pychess-0.12.2/flags/bt.png0000755000175000017470000000273112641567764016007 0ustar tamasusers00000000000000PNG  IHDRbKGDC pHYs   vpAgxLIDATX]lU3]tnQl15 R!Q+%D%)UXҍ1hP#^$7B| DF[B@[Rlw;;ׇ¶ݦ {ss,c˘`  al6ifn>^4b1EQEq̆;H$Dq]u9 D.r"0Mx<0Y={}B 7#a*l!PQ*[\d4 z"t:NϵzX:r `ضӖJ٢gxMƶ`to|G`x*q^ݫ/{}ԽPw_ m=gGށSշ}O?Ȯl(*~#ů/_nW1&f89z9FiFֶgsl&$>^ p YzJaЦ 2V̎c [=r Y~ ՏT6COȺAݕ.x:ѡCs(K 3%R&b4;E'`i.lfL>Hvo86C߭ Onw߼ %>}J#_vƻIpN& (X=FQ5MV̪ͬC,:p F*[z䡂րzb `: A7Y eS!]fl-d4TYPUKZkl,FkI29+w:gVnW^/-9 s4}.y~ّJ=̥yBaaHdsT M+/״;{{{{Lp8p8놜q$il{k;zeree%t,60 toZo_, ~8@ @( B֍, Ln,Ӈ,k~t:iivn7466666B29999Y_oyVjjjjnq]|nFhtƱTVވRA9=^*d%<Ȏ8 ʒY@/tuuuuu|JR*JvoJ7?dkHj H$ =΢&[Z^OMY|b=TUUUUUI?3Z9p,%/B~"4]nG!Òg? BH734iS 6GzTXtCommentxs.JM,IMQ(,PHUp HT0200VJ.MRPMLVW.IK- AڞIENDB`pychess-0.12.2/flags/ye.png0000755000175000017470000000202612641567764016014 0ustar tamasusers00000000000000PNG  IHDRbKGDC pHYs   vpAgxLNIDATXV;oPMDaCuȚ&Jv9{mWd"b:)@oSAa˷{p-$I$igG\W9eYeϛ.$t{c1F~Mׯfl6>lm۶IOK`sy@4F+ mYjn y1 ~gƪ&ʊ\?q8\f u]x1O?s 0 8~H)xU5ig4纕Jjgxg8eb~999=-ZV,iv^`蠪B$),˲/c I⏛L&eYnw,r\yU/g% <}kXӹW*_\u]<+hZ,iRT.{(rR@h4 I&`007z_u4Dt2nU4nQpxyykjmӧ|^Q|>z^l[LdM1zدQaXVUUUU@4MӀH$Dt:Nnt=ֿ~ekkkkOm BhYeYa,MD G׳*1g8 &㺦i)IT2!gwd^(bflXz^Or\.clII jLZ{8jZ6pN=!3W<.奐߾B"H$dLJ۷lx@,- I$F(h{AvMH&0>e>u_|pGzTXtCommentxs.JM,IMQ(,PHUp HT0200VJ.MRPMLVW.IK- AڞIENDB`pychess-0.12.2/flags/md.png0000755000175000017470000000260612641567764016003 0ustar tamasusers00000000000000PNG  IHDRbKGDC pHYs   vpAgxLIDATXVmh[U~ιRqKoG7ڵhQd.:vc Q6eC_ )~fhR?6Y[h6H2m&I\Z>޼=`=A)9=>c$IdYX[/%BDA70;D"HEE,.| BD?-Wkҵi?YvSl^VבB|ݥF)'o|F`cO)uqT]MѲ` $"pme@petCU^0KL[E*lXX̻ۏ^^RvNo*_5g:$؜}kn,˲JJ( tdVz5p(4r ؽouE>J^$!uuEE3BEq8Je9z^HBT'vJ{ |⡩}@]/(Rp?Km_F7FXȐ yM4Y泉ĪDW}S?i[c$cq- 7X_7[ 4p{`73*daaJD8TNU;;'''',KeY%izzzzj p/ =1^+ HK2Iǹ\.%+9L $wUVVVVZz`4ؘ+^P( _dqOK!sWEQ@UUUU*vn XZZZjmٯ\!MMX,|>WXiiĂY" x^&BԓHG1@ (G ~?x<PL&$dkS x.i+%5x<`0\n{{/_./s{Z3444444U. qcpʊJ w X@&t!p@$sNT- " ww֮Nj_~#q׌޼yofY8XH$Ib8b͹,˲,tIv+ی11 6=VjVW-˶m4Ncts"H$q]Z̺p{{w4w̡y*^H,"_~?j7#w{ GOTM8#ӧ:,1atoz 3~ m:>~\ p.z1@u9mbW?:z3 l~e ީ}\wFjwt__ &/z0flXU!?|S7smx? v^^ndn,9iRV O'&N_(5hT4ĉ CU AIRYeo_8X9 I⏛H$ޞinw$ \kO=oou%u]֠~޹_q"TдhT._.JruEQE+J\fĄ(&'>/xt]<"vj2b> Nzݶ,~0yE|h4Fm1Eozc YkUUUU4M4 pH&dvΝ?{Ϟp,˶=* Bai4M4Y ׋*1L3ȥKL4a$QɄ\b~z=ur<ԱGzTXtCommentxs.JM,IMQ(,PHUp HT0200VJ.MRPMLVW.IK- AڞIENDB`pychess-0.12.2/flags/as.png0000755000175000017470000000311412641567764016001 0ustar tamasusers00000000000000PNG  IHDRbKGDC pHYs   vpAgxLIDATX[lUgv;-[TKYhAD"d%Aӈ5!#5%(&<&t% m#k-]l;mnwg| [Z?sw|qq^((*֦il6arhHT㟁*1^ %Q4$&C HL*a$t`;Vtׇӳn˯=\,f1!4M4mVdڶu]uݲ&J޲dx\!Py7h4L$dRd B۶er\---/a͛^^w~U9,K?mȭ[l6͎כ!d`q_3 h_9)5[WB5t @[k:Zke̟?b D-Pގ|61<='sl<tх ^b4!ll&!C{cضdYp-=`q{Ck^08(9XQoqH?gGB͙7 uzu@unGwۅt100,˲,4]p#==iEBGWH% ~?*?3 rO@> Ur$D>!n49s._B(EL Cuk<?+-jlp 3 _mbAhlllllt:bX0=p{g6~ml9>?9i5}*ۮL&dT& (47tMsÆ`в 0 C׻ABMP&-L8y;zUJ^6:WTVEEEży7D2yX{{{o~C$D"LY|b*p~S4Mӄhiiiiiᡡ+NаlYSS"H$OwtttttbX,w:^DA_)$ 򹽐$N& BI9D+@ >AI:NӚ&D!7!Ũ6UT*J cʎR^ʑ){zx<'IC,N)g%E!JΔ|n*?Ѩ5: )u+9vOtzzP"$QB}PWGzTXtCommentxs.JM,IMQ(,PHUp HT0200VJ.MRPMLVW.IK- AڞIENDB`pychess-0.12.2/flags/ve.png0000755000175000017470000000301212641567764016005 0ustar tamasusers00000000000000PNG  IHDRbKGDC pHYs   vpAgxLBIDATX]lTEsݽ[JK P"*XZ0b$B"$BB&`D#MDM@D$(t i]肴 Gw–m˹s̙9g.b-4M4RXJbX cx#7 sPH!P#$0^m/>Q矞?lIHzҳMmw Y)bB<QN]r|fvhHڊ.RƽCyaRZ⧦'] +b e? W)Ci/xoa{Pws:HNxZ wGIY{ٮ}p-#CmM ul:;  /gC`9h`oI6B+kzAj\`2/%2ǞD}O#<;aa8fKO~sx_rG~|4 q75 ?["GYz#`[ɡaF ٺ^7ϛcƌiVف#`JWn!~:xB\< YlA'sl#`9.&ӁTMDBv8@ 'I@7y]Ϟ{ad`!fU< ød[~=lfXӴR)!JR)D%p 3p:+*κή.ðZVbx<.|>2HJ7 +>u555555*5sLСҠ, Hjunz{{{{{!1odq+bjc5V4u]up:NʠX,3nj~ꔨ\ ##GZ[[[[[ @ VU7P|nMVI^42= D"HhZsssssT% eUAImh4f:nkL&pN#\.˥daJhӦt;2?ZUق"W\꽲w+>n8~zlҭ:~+TGB"qg~ȽG3ƤGzTXtCommentxs.JM,IMQ(,PHUp HT0200VJ.MRPMLVW.IK- AڞIENDB`pychess-0.12.2/flags/ch.png0000755000175000017470000000256712641567764016003 0ustar tamasusers00000000000000PNG  IHDRbKGDC pHYs   vpAgxLIDATX]hWM&foilSWU^ (x#!l0k2&]9 @pVh A QF76_M1i4l'9y='`Ahi(Rl6f[7Mkx\!PẏXOh4O$dR\ϖ/iv٬孮.]_U)'Ϟ4m7-/ªvTwWw^ 0mzkg>sg^Ds\.BBX}(y8+77쿶@\U0?O]v.?%PWW~γ޳M&?kNN܉܉ lRD 2yT(@JK ueeغc_?#: 0@;5[`2 x`mW^6x.]I')ލ{7D@*,вJI-4Mt4f[kBN?.;G_wf$|[ρܯ9MOG@~7# .cבO1ߔG`sp8!u]kjᙙtjnlp3m.wؐ}.%U|@[+_>r8a1=<qb10 b/PJܺ}o)pGyGJ< ) Nb+w%yb@6)!fY*` Cכu}߾ѱ1ӴvfH$Dz!VŅ)^)ڧPVq%ڪ]3O$ɋA= AdzڸpJp뺮Cccccc#|>33t:Z6ؑH$puaaΪQuPK˅:F|g͆p8i,D+BP(======Pd2 QMrrPPV5*JRLNNNNNղ}`T, 8#.eVeJދRqye+>ū'U^BA>,/ /ta}GzTXtCommentxs.JM,IMQ(,PHUp HT0200VJ.MRPMLVW.IK- AڞIENDB`pychess-0.12.2/flags/al.png0000755000175000017470000000266112641567764016000 0ustar tamasusers00000000000000PNG  IHDRbKGDC pHYs   vpAgxLIDATX_h[U?$&]Sӕ@:jv[6ԮsT"P:e0CQ=L:Dq0F&>Xд)uM$m{}9M6+ߗ_|ֱu)a{eڲ0եWL7Mx\!Pq,X=;wh4ݸ1H&I B[iBmmmmmaZM+,pjjz:M ]E;x7C:E/Iy/X\gd/94$ 0mvvGfgl6]_Gg?@y.LjZowك0^fqq-rF|`[H^h펳`s1p>xZGK$PYYⲝHRU=\q6JZ^08kC1xe ۂڣj0c@#z˪۶ָu 0mRvM/&#櫰OMcm`3Xcw\W`V9.G&ml kGPyT!vC?k?}Ps㬗f8ff94Mxt80Pբ>B2{Η;jxCW+<0áw*xMgP^yorVuu~r~YvFLJ]u 7}\%ۗ3؉T_Gæ5nnZ#Te(J\@l`pqzFIi㙙b1=7Re 9v]_Y'΍s:br"49m5UU_0 PV@y~]Аi꺮1<<<<4`e*yJ svmmmmmm*.t<>2é^=O$ɞ`P׃`0H$D _duU``^dRkv~|>@ Tj~~~>0 vjmM$dƍP( 4-bcUY" *}zP(,gi" 8ᰔe\{  t:NK-D!7AQCIUbT+uLLLLLL,gN[>}`LƖꡱQæɓcKUIg{QH.]ɵOٕ_ M*-J.Nߛ][q/jK?UGzTXtCommentxs.JM,IMQ(,PHUp HT0200VJ.MRPMLVW.IK- AڞIENDB`pychess-0.12.2/flags/fm.png0000755000175000017470000000233012641567764015777 0ustar tamasusers00000000000000PNG  IHDRbKGDC pHYs   vpAgxLIDATXOhSY5 0B)RP؍n&vUNfB +"(t * L[h 2ھj/z6mla66?{'8aqjyjKiiylJ%!Bq;bX,O.]uu? }3R>$d2y7j˗mǁ߇4wDW ^Ȓ,fԎ|h4yPuhaV̊oLbX ``t``u]崬/:*%S?\bggNlĔ/KsF Բ }} pG RR/@?^J/͇{i$`~Uǃ>} \@l,@u:-|%_92}ߏF 4;+S]]Xc 3gf ?sg NB ڶm|֑G"aXifkCB|)l^3zccHKZ&ktaxt:NG;;8F!W|8ܺo~V=[;-R?s@^PwF@~ y3Zh+WWV|߲,˲Lsuuuue677777UJKJED۽KLuZ~94 ]*i)5dT.ger\.BP(YVbz4?0ضm6$D"L&@VV*Obdddr\v7oB!qi֕/ooz' Oey|>2eEz^ #fY!ڵѩ4$*JR=󔙚Rvz߭Аʮ5B*JR:N JB5FտW|/(NH'{Xۃ+zh"?K?;GzTXtCommentxs.JM,IMQ(,PHUp HT0200VJ.MRPMLVW.IK- AڞIENDB`pychess-0.12.2/flags/gw.png0000755000175000017470000000233212641567764016014 0ustar tamasusers00000000000000PNG  IHDRbKGDC pHYs   vpAgxLIDATXVMlEf7ެbـ=H UP*zbPŖ8q{AB\@(b# H؆n!UKm63f'ر-y3ͼqC I$IZX#cdYeY a)&!"߁{fٜ,۶m! DgR qP0wnl.~^>T; 3+o|>sߋVmu]\7Bx|d,9psx> O̿q o-#2āGw>8y;| B1|d;c y?xUyOX?tcrA)~scc8K{d`ʃjٳr\P((\V h4;d`DIs}t:N D4ou]tvj+F9w4-˶][[[[+P( ^uyG7L,~)*ii@,b@&d2@nۧNq7oO,˲׋bX 0 W,"+:DžD =9sq]u]$2T*J% r9`v]I|A`Rv^jZ@Vj=8-.rfl s}d2z|rADn)~[O->ofS|$)x069x:ă_*GzTXtCommentxs.JM,IMQ(,PHUp HT0200VJ.MRPMLVW.IK- AڞIENDB`pychess-0.12.2/flags/bw.png0000755000175000017470000000213112641567764016004 0ustar tamasusers00000000000000PNG  IHDRbKGDC pHYs   vpAgxLIDATXVAhG}3kWDF#h0TYSB PZJbҋ!$܋ACt/  VzHri9B, @zEk[ڕ׫_+" ^.o1qOs9qC\W=OQEQ׉{BW2cG;Xw[[JRIH-fx|s4MSF`W}X?_4{t@ﭡ|Ci{<8' KдTJӎVZuEQEk5fl6 :̼=#>3r\4&ݾz0 ǎ۝e麢躮:@h4/2nv7򨱪hi@"H$|>^wbaaaNӱr\.ggM4Msd3/"gn&$q0 0$K{G/T*JP,"m۶mKRT*JB{&3'$բvn^mND.ni۷76vj!d23rcĿ3"\<ϼc(; 0(|.Q{{xkEVGzTXtCommentxs.JM,IMQ(,PHUp HT0200VJ.MRPMLVW.IK- AڞIENDB`pychess-0.12.2/flags/ki.png0000755000175000017470000000304012641567764015777 0ustar tamasusers00000000000000PNG  IHDRbKGDC pHYs   vpAgxLXIDATXmlSUޮFS[Ʉpb2H/a AhH11&(º 16\n¶ֵ[_|yz{9ILb#BQEQ Q$bu]UUUU5mlFk᯻[!q ;6RR`0v]cBiք6lmmo!đsP77(GvXOZV5o:i'Z<"'A 6W8 <ls{1 6]$>V .@ìYo޽l?0Lfv{8B;]wl QO+G?S@4C+N]IǺʄr?>GUe?x˗u*ǡwS4冸%;ihn23- !ͨuO߱ysRNk58ZCQy5оly Wы'LˇgSM9 L4mO8::9M4MEU߾|UUPSR' 4!2OJʟL>ַ,,W {"e_xTl/z|QS#j[ڨ,=&_t:KCh&&&&*٬ }K*} GzTXtCommentxs.JM,IMQ(,PHUp HT0200VJ.MRPMLVW.IK- AڞIENDB`pychess-0.12.2/flags/py.png0000755000175000017470000000277712641567764016044 0ustar tamasusers00000000000000PNG  IHDRbKGDC pHYs   vpAgxL7IDATX[lE}ew[ ؠn&UhM4P B <1} Pc># b"`Kհդ (ڒrۥ{^0˙9ߜ3nnpq+,5su]ztickmŔRJ)ǵP'p`eeCLp,ۑsDo 2_@قI[[cdI/=}E0\ر^ߧx:SѿNݤѭKD'?Ϗ=V$rͿkψGR!""2Edwѽ"]]Ct8*M|}Wvm)gAsxiݟ=g=д/`Y)9NvDr@;:w FEX4ֺq\W)8rxe;twӪ NcQP@ڮ%o j:r D4pn`=1B^eX˟@ zO ؅>_iiix<뺐ۑ;/\<Ͽ dQ/0نeh%Cؤ<,2K6rqҮTrxmz8RLh4D<ctl>_7wcgi4MvX#>BI|;Zl6C# {zx<u{{{{{z`````` wd7\+7mveM)t,ft[&,^Ν8 y ǽE;!{*puArs7P R =_ʯV/_ 6_ց… b ࡕ:C}xa]@i -`?W]w@u度N(;c`U͑N _tX^Hܳd}׷m_R?_e+ Geć(XbRڽ,C@ƣ`H5[eg*/lMM(2ڛc[cMo>Vz(y^*U68 w+ `zA)lyZ 6pV϶ATwE7kj_ F}!HnFBb ⹉4/v&cjjXeYϧ(*SlݵZnĶRXq~˻1HO*Z>xb57-󏅫n39Op?MM_Q] ˖}e4flx^WQ4MUU9= ?޵c[a83G|I=zNOk˖=[sX}nZ)v+ 9] ŵvvM?p盚u]4[e>Q({[u]:ɠc/\_)J&sy 7 q #FQEqJf r\NQ(M; /d2Ϧ{m޿/^ܹzBPBmm^b:*#Wd՝#eoO)>)@rS2H4]gM@~;{mz]IVZ'e`Y28}C"uWKCy7"`"H$#AyFo#;;o %%@^gnֹ/ ze*s" ^*@_~ <@)cVߍe~@̤۠|-ϟ+4qY@ڠVpX[@o@^h(Gw @bVK\78+L Z&sKW1@If`7Dz\_[޶QZ]Ds_)g(pA50IK*PQs1g~4XcUua=QtN[GN yTbѳAy7/6{ ]C)`k.Ni'{ـ1J u[dnO[B<bXv="Sɽio_h40 !dP(*,vwDr@-+j{{{{x^*JR\.y" z^pq8\Ht($ՖJR)B,8aJVjNtБ˝rL<8U;,͞i,d2jZ-PPPPPPFbh4ZS#MTVVVVT̙ò,8al6M3 0Ljc1bG3(XDHC!vn'IdOܑ ]]]]]]d2L$q4f ҵ)b4h!ѤH$Dp8'ЊYpU^.At:q 5B`UdIZH]䉊O\iA@<~τx||v@|F'Gxx#M\0 GzTXtCommentxs.JM,IMQ(,PHUp HT0200VJ.MRPMLVW.IK- AڞIENDB`pychess-0.12.2/flags/pl.png0000755000175000017470000000212712641567764016014 0ustar tamasusers00000000000000PNG  IHDRbKGDC pHYs   vpAgxLIDATXVMhGfڬ\APAHGK!RKEC `A/Ы qK(%R!P$l @dH+i;y+uwy3oޛy?,psXp9o˙ȹ)('K11 vrz^<Xe< t:v 6|{>rg;gc׍_OǏ뺮;i?%d|ķ%f:8$=qܖۚ_û]U8NI.39ݵ6 ʏ~3&`2 | s۽S E!"\QH/q]l躮_^jZ<s(@[ŕEcRq.vcX\r\"gj D T(M;o8Cn퀝wJudߗ͛f,CR8V "L.Z'9+o>$'Ϗ*? }:=@l:6gGzTXtCommentxs.JM,IMQ(,PHUp HT0200VJ.MRPMLVW.IK- AڞIENDB`pychess-0.12.2/flags/ps.png0000755000175000017470000000224312641567764016022 0ustar tamasusers00000000000000PNG  IHDRbKGDC pHYs   vpAgxLIDATXVAhG}kש !mAzAbz0.5j J(ҋ{!P^{*9$(%Kni# Nֶ+ɫF_%BK/~gY$I51r]1\eY=dKQ'ΫVc1cd/_V*JrJf۶M~<;Q<BP(W~x~8ݓskXDGZV\7cmB߭u|\Ɨ相 n t UK AMXǝ6{ 8pi <#|;ǘ8ZV@]pg`as /z8%}@GܼɄp\4M4%Z&rL&$0l6ͦ$RT*X6 @ K&Q98P,b:a0η^ᰰ>>H$>] ݿy~[NyōڧRN?? (4HWO-GzTXtCommentxs.JM,IMQ(,PHUp HT0200VJ.MRPMLVW.IK- AڞIENDB`pychess-0.12.2/flags/vi.png0000755000175000017470000000314312641567764016016 0ustar tamasusers00000000000000PNG  IHDRbKGDC pHYs   vpAgxLIDATXklU3ӝ݅--}.I%v14tQ hĦh6~6w EcCDИBQJEB M V>? Kh˙{=s3p7qBeY͑cPEQ]_ucɉu<s恺V]RʙqeIoo1cO+s;ssӚ5+Am~vHr`fֻ}-rre "Unף of5~L2iiy#pG9S~'Z;>-ԲkH)D gfWjC2w r }_K6[ k7뺮;(,e)s^z1Pu7N?}ۣ03 2w漏 ee'\򣐗*{fc)b/BlNYNi=|6n˲*$#"L`%x;Z- 7aڅ4WE;mq{aߦA/'S@;ZTRS} f\.p^p|m{o2cyb`zY*Rׁ Ha3 ]~ %,a 02 4M4Mx"BS5,/?uԩN]WUUUUE^0;r73 HP2alosn[ Vr+----5u`0 UUza#ŝpL,6ft:@4:444TryKEE BP8sssss@bcYE>yYWf;_jkkkkk!%b1Ydn  BE΋D"HYg6 /*(0t܍PXXXXX(IPM"6)o)I"\b^ɒOM/^@Ƃx|$GnL&/ ϯGzTXtCommentxs.JM,IMQ(,PHUp HT0200VJ.MRPMLVW.IK- AڞIENDB`pychess-0.12.2/flags/rw.png0000755000175000017470000000244112641567764016030 0ustar tamasusers00000000000000PNG  IHDRbKGDC pHYs   vpAgxLYIDATXMhe3L6qc>?j1L4`m%R[=hbуi]"9i"BK<U@5&n݅M'~uvûo6Po_|?ϼvM'OmjiTg)WGK&EQEƱJD"hiT*[VH}uhooooom[[[._e[Lx$[ N|Եqor9;N q];jDGVW|>h#Eu(~xDY߷Y+VeIJu]û O$^Xw W\t7Q)B:ėO\3X{"c ~X'=}TC躞R࿕瓟վ`>m@E_}}}ziA7YC[,Gzw?`'p8b]}[z ([ ~i lvC2pq|^L__.New8*έŒammmmmm044444l&<((===={YeR.MMMMMM֚ifѰe~z(/4Ç18D"ʖ ~ ! B!r\NUGGGGGG|6%*W ɲ F_:NF:9AO l:;߾-xaa"=[vAo䚲|{>e'OkMtӕBÒ7BV A+u-GzTXtCommentxs.JM,IMQ(,PHUp HT0200VJ.MRPMLVW.IK- AڞIENDB`pychess-0.12.2/flags/aw.png0000755000175000017470000000236312641567764016012 0ustar tamasusers00000000000000PNG  IHDRbKGDC pHYs   vpAgxL+IDATXAlEMMi0EH4DiH "J0R@Hnpr@** >RR)ISve񦍝]pN8uCfga [aaG몱iy[W֛yj!BX\.m+bQ( !|)=]Wy-xv>87ex#i7OY3 l{y IؤvoUwr\^WG* 87+~-ޑWs_=$?> <Nf]й1#cǾ[nU%ɏAM& ?s@6T?wѠ)U/ !?O ik'y(EyDa8O? 6@=ؤ;wTm. =l1 vs@b0x8!V)7,<0M!`׉?ϘR Nh~(^!zzl۶7RTjyhY----i[z_?>4 fYP7jZW=_SFѨ#Tt+V0 >P(MLLL>_<d2 FVBLo\Bز,˲m۶! B!bX WBP(/\H$Dqq* QgPǛDu"4Bq\7JR)%SvD+$d2 T*Ja Qݛ[C[ZVoEHtzU2Ǐ+{W_);; p8u*P-t!V@@Y۪mS}Q\m>=:~Z)Z!ڮ?_ z(C *YވGzTXtCommentxs.JM,IMQ(,PHUp HT0200VJ.MRPMLVW.IK- AڞIENDB`pychess-0.12.2/flags/sv.png0000755000175000017470000000270412641567764016032 0ustar tamasusers00000000000000PNG  IHDRbKGDC pHYs   vpAgxLIDATX_lSU?ޭf,L,w:mdHEL  ( d&FHd!LH$b4 &h"f^K6IA{pzVэ-_w~Ϲaa]VRiNN\>:b1!B1bnߎD"Hdxܶm[,Z_Jׅ*Q\ ޺uN4 n4ß%OBv&<R$(:n|Ƚ{t:NO"!T=! ;dZ3.il̈fl]¿*R!Vgܯwʥ[_ ĪܺL;rb)o{w&"f (crԏM,R^u~YJmv8(b^" G8a~Uxh^w˗C>)<]~@JyHq^y*L&R?* A4.{@ *]6 O꜏Gh`ͽPZ:<Fz@q^oWw<,n+r+kl1qG{x@ -kŊ^x<4z{appppp 9@)eޟzꜬ^SSSSS@KԨDbzVq>r-x`0m":V@!?z^,˲,~@ ёFeK-Y}t{{{{{{aa4FY:EL+@/q'a%StWf(H&d0Z[[[[[M||ЭNHVD"H$>9ElQt7_55R^6] Nob.-UTjZ^6tͧ诱"$=Й "?3i~\GzTXtCommentxs.JM,IMQ(,PHUp HT0200VJ.MRPMLVW.IK- AڞIENDB`pychess-0.12.2/flags/hu.png0000755000175000017470000000203212641567764016010 0ustar tamasusers00000000000000PNG  IHDRbKGDC pHYs   vpAgxLRIDATXVOP\G lȨ"A,U2*-kWt#*KTSD8!!uDAI;{ᄏ{~G I$IܤdYeukGw]گB!8~z^m-˲7,<\xq:5Z4"-S"n f*3 }r8 ssLC:41ϣ^f<O'IYh 4ԃhSM/L !. n$"I,Y'A2)쮒i[X\4M{/0QUpXEehΓlhވTe JRH0MTNyUԁos[~77ys8p$L-7дEM{T*eUEQY>>>>.ZV!{Y& Χ}yt:N3L$(ѭmoEzn[֗/|>Tj Xtxc}XUUUUM4MbX,t]uZYՏZn[ַoBP(LMi0goD ۃ㇂+Ls˗q 0 CdȤP,"d2 t:NGr\."؛AA` jm۶mRT*?RߓJ$HCdd2u|P }p{V֡}l.~FSm? (t:فD6"QGzTXtCommentxs.JM,IMQ(,PHUp HT0200VJ.MRPMLVW.IK- AڞIENDB`pychess-0.12.2/flags/ee.png0000755000175000017470000000231012641567764015764 0ustar tamasusers00000000000000PNG  IHDRbKGDC pHYs   vpAgxLIDATXVMhGfV^ũ*(AhiN9^C! B ))=4驴CC HO94@`gmKfr^K6fޛyߛowRJٳbfbι(0q|~ !" =r\.GGU˲,ηk!2sƀP( l[xGFA ./?{fF^rOo[x8Vj @p\#ܼ]m6`[/~&]ܽ'ֱP:v@seBc?`!jzQs[. SSSׁ!J(|c1S([%M<@Ah$k9_*6#͕x7pXu}0 K@jQ(ᱼ {<~05 n| w] 6+a Zx`ƖF b1u4MSUEJp״^(C#3^o'~yg99TW1o 9l۶m[V" Kmz8Or\>Ϙ*b>JRY(XZgd;_͋x\ht"V wLRZ֝; 鴪t: bX-Ln=\4M]u]`0D"z^?~\?yZV-L&dFFL4M쬼e=-I!L)"cۆaA<2aw_Ȱf,L&$i6fT*JqkS4 'AjZ B|03HD؍ a< h4ux /l/K[ɼAr9DA}lo=_x. kPGzTXtCommentxs.JM,IMQ(,PHUp HT0200VJ.MRPMLVW.IK- AڞIENDB`pychess-0.12.2/flags/il.png0000755000175000017470000000271612641567764016011 0ustar tamasusers00000000000000PNG  IHDRbKGDC pHYs   vpAgxLIDATX]HTi93 Mn͎$ `&BPD޸DU{]DRMxQlI.M-*eGsftΙs:(.{9{yX:(44#ðǖzJi7=-B8C,D,b6D"!,k,7?eaسNgc%i_]eZtn.uٺ_TOKOf&M .KleFǏsWv vG>~Ltzq|+$ ]pwW'N؀ F). CabjbJf<ź<#`=Qk4g' {yX@n_V@Q:y,ּΣq ::I06umuopkV/_,:$[-xGKı,N}>'0gOAoT='\{1ܽyoֲڣ_t@ݵke`mbYɜѱLkL`j||.vrafÛBUeUAײ:pFϡqc].U8ZhSg''WiizBN={'g.v :O`2n>OȻ*PV() Whtv6oRx<EqTUUAYo7==Srv(,>i'm ވ7lYiVJ(>v4FP( IM4D2pw3Cb%qr0L[k%@y/lXe[`a20`$2MrTuxxxxh!.h'fd(˵fi]iIyn|>ƍNODGGoooo$rE"H$H73Ʌx9+n`0 ~hjjjjjٙJ:>S4M2ee(+(skDn!d< 6q #FQE-p8#JR)Eimmmmm"ARCJY|T[id2L&addddd$KN^u[~ZeeeeeeO6Νw%R:r\rR|n%?oDAR.~/JHV77:/6fGzTXtCommentxs.JM,IMQ(,PHUp HT0200VJ.MRPMLVW.IK- AڞIENDB`pychess-0.12.2/flags/dm.png0000755000175000017470000000304012641567764015774 0ustar tamasusers00000000000000PNG  IHDRbKGDC pHYs   vpAgxLXIDATXmhSgϽ55_jMbg_8&"2!86̉20S()Yu&lm~(2QgSu*+n󅶮Qik㪩&i&1mj[Z6/>s{.a cx&EQezgPUUUU]Jpn B@x p8D$0*oR0tqk[3a0G>Y@z%!^ƧO!i4ܙ]w/6xfQ>3Ӹ T>㷛ljD"H t?LBu軄 *^_\aW(WC/L*Mc 8Ug-3@JZ,n +޶Q#/#N`4/ŀt!t\9aճ=i!z-xr [f,L7N luTɺ7Ϲ]8 2O86ƍ J5O"?t:ǍkiA6[ZZZh*/ JU.&[Y,k쁜\X^ҹw jC,7ט~_F9vn+ 5tL@n~m63kkkkkkJyOvn {!;;;;; #B:Ng~ӹreccccSki677775A{{{{{;of&^Ĥ^'W\\\\\ x<KɂС9~|ii(G"ǎ||>A$bndr'0ll68N px<F ֯].UTlY8G"N[`0 & ʍ(+(Bv"2X!~W2> z^/XbX,SJ!RgSb0`!,`6nhmmmmm#g͛Ms'* Lk۷GjPI۟^bmTJjI%K:zّg쁡E"ݪwGzTXtCommentxs.JM,IMQ(,PHUp HT0200VJ.MRPMLVW.IK- AڞIENDB`pychess-0.12.2/flags/be.png0000755000175000017470000000222312641567764015764 0ustar tamasusers00000000000000PNG  IHDRbKGDC pHYs   vpAgxLIDATXVoI}kŷ6"J et""MWX&)5JWDHwQ 7NJ}R"Til9 HN6zٽbX|w_o~5q!A>m>v]QEQtLv~qy.c1FqLNNtVVz=0 םU٫`D"H6 A}uM/K2<}9(a%| Z,-aC(/ޑp8H1^vM [+[+1#椏:DO1%zXm4 ,/u迁 ZZG1ѥpqEQW F\ >&plndluUUU5L}d(ˑH$";Nonq8#hI|(y6qP@엵[kTP-fYE9:u]3(p~ Lo73?|>v]m-p:wu| xܘs۶mۦH( :TuuUUwI$IŃ}jZ-cRryH}Ѿ\.(L&yϟ5MsmE҃ngoT*J*IjZfl_d)0:|XeYUUUUx<|>~߿s{e2L:}^ZVB>rL*HNx AL&pl[4MZy@-zb,XeY JRĘWy?4 ~R :4M4Fh48mmq.pH&9rRT*"?#p ={y 3m%^^q:}A~:u$ntO?U>uy u?T4qGzTXtCommentxs.JM,IMQ(,PHUp HT0200VJ.MRPMLVW.IK- AڞIENDB`pychess-0.12.2/flags/ao.png0000755000175000017470000000232112641567764015774 0ustar tamasusers00000000000000PNG  IHDRbKGDC pHYs   vpAgxL IDATXVOU2;(+ەdd6K#Bzh1KScK][i"\&'_oq~4!xk0!-_IH>'u8ZK\ wQ X g {,˲@@D1Vf̃sCNW3c`|a"~:./߽VVVEQ>TUU'&@eADQi{C>MvmӖ ?x<ͦi$9i'@{^+>]U9vnnlc{Zd/iIP^8xՁ(ʹsRT.[$I$bR@^!=<`boѺ|w]"H$͌DxmҞ`pa!l;]y3yI|jZ u"F ) geYePEQ  B! JR)zSX,9t:~NP( >i"R>:>,x9{qᘦ P,"d2 0gaf,c$LOI 2IjvnVj3˜iTD"?A=Dh4J~\p mlbn8V⹑bT\u4kIÉLχA8}_@wGzTXtCommentxs.JM,IMQ(,PHUp HT0200VJ.MRPMLVW.IK- AڞIENDB`pychess-0.12.2/flags/hn.png0000755000175000017470000000270012641567764016003 0ustar tamasusers00000000000000PNG  IHDRbKGDC pHYs   vpAgxLIDATX_lSU?ޭ` :p"  &:Dd3&hbH&&YMX"Yk6ޮݽp{֭+[4w{Ϲ,`FhiΝ4n۳KeOoNx\!PyLh4F+* 0 r6?Pm6MG[\k_Tby ]k h^UX mJkl'L2 x-78qò,˲(@ ߒ{c?ǀL:.r@/0AuDih}w󎥧3ssKmK/ֿ_>˵G.1 ,&ro$?CyGI&^~Qpq&u;+K0 e8\˗A){ZzizYMr:F%:}Mʞeo+{5OI9x7//h7ڍv)\~ؘ{;]{S'A۫[ / K< #kV^+~FT0Qe_,oC&wQxR1::l۶mLt]5r+83@<Z~ tPc%E uA^6.G@0_SAqwal9<ڲꁬV-) BT*o.---4KuRoga}k&FlV`SHF)J 2]lP&@ccccccYh,\ 9ӛV<@8&Avpg399џ1[R.`i*U Z[Sn?0`.rz0  @$D"ܐSJ00/w'|>Uu+*o'qDgggg r@ p8a87qgSp/vn^JhnnnnnTj||||F{ohhhhX)H$ ٮX,ŲUgՍ:BM"*l"f( BF'_ڠ(NiM~_\n*烢!V(^2L&0444444w;Wm#'&y\=+?Y8ڻG~[,ʹ/rɥ+9_}D搦VrTB:=7= y%|0~>lGzTXtCommentxs.JM,IMQ(,PHUp HT0200VJ.MRPMLVW.IK- AڞIENDB`pychess-0.12.2/flags/fj.png0000755000175000017470000000310212641567764015772 0ustar tamasusers00000000000000PNG  IHDRbKGDC pHYs   vpAgxLzIDATXklUwfw [ۭXl 5`B -DI >B *F4 Ƅ*JRXT0VYavݝpٲP_9sϜsy܁*EQZ麵6MUUUU5kKiח0b1!Bq%ĵ p8O$ 0k5o4 ^uKk x\ww$?ol gF̀;k/[Zmb浑),L5w”3şONen1'ЀèR;?Ӌȅ l6^_?a;3 26l F !`9VޗF__/~؍_y4e& PF0ş=rd;xW2䓽]@ :JlAzjIK JǓO4l($ l_zkO 13~Q0]\̸z,4-. qvwbj8|,Dm} ]xI/.9i7=%kG)Ht@ PV<)HՌR 2Ne>d̹-pAQ: gGq7E?lreۯu D!;hta˥(*O1\ˀlu -@=kɂ㠧Xg &;#|_|nh$:'@ 8{@|v(-|'BP(ip8Nh*P-,Yrlԋ!@-?Y{QA zhw `5ez\vR&`ڇbyƃtH$4+U [y#xocos+9=+^݊[:]u]B|s洴ij[[[[k+tvvvvvuCJдwz&}r~UUUUUUiYVf5:T-.,??mۚM @:::::: ndp&`!_p8|><ZHzzzzN;&****g͊D1 A=D"\`Yy#J}z!'̞-,z( B"GfOBsssss3Ձ-NiE"}!}Qd2^vX̒+W*+d&cɓ'~'B+V\:Ė岤mҖw_Kz'˧KC R^~9dC:=0=7#GzTXtCommentxs.JM,IMQ(,PHUp HT0200VJ.MRPMLVW.IK- AڞIENDB`pychess-0.12.2/flags/unknown.png0000755000175000017470000000245512641567764017104 0ustar tamasusers00000000000000PNG  IHDRbKGDC pHYs   vpAgxLeIDATXVK[f&NFMJvJAW\D|Pܔ,\ٍ(*ōtQ Bpč ĕ@.B&w%( NZ3y4b<>c69g~7 g<^,˲7*ׄpq=,gizsayp߿˲,ryy"J[c0 'DfٲY}(Wߔogg?{I~ 5NMioڛ2^@H !=f` X'< Oζ]>?/..... Y$o!Ux!8)ҽ޽޽NH"ãã#c?4N$O)wvfe|y81k|&}~[BP/ˍˍˍ@qF7΍< +r+++<0;; 555@?O$TÇ``0NNNNNNUodqh`ϷA@EQjZ NR˯gիD"PՍP( EQ1,i~mv!_3:qX,XLOOvn7`d2Legfffff&FFԠ6Ĉj%d2 ۷_Puuuuuu5t {sAX,Tr\rT>|.YOWC2nT? |d 1F=7D]GzTXtCommentxs.JM,IMQ(,PHUp HT0200VJ.MRPMLVW.IK- AڞIENDB`pychess-0.12.2/flags/nl.png0000755000175000017470000000237512641567764016017 0ustar tamasusers00000000000000PNG  IHDRbKGDC pHYs   vpAgxL5IDATXV]UtBShE!N`nRR?XdC6E}Z H}Ai(lXSV6]Ia&d򳓹>ܽI6I%~/g{=߹;6 A)9GnjI$Imwb^;-޶z!"Xҙb6f{iuj@Ag̶x,{}.,,-.^M^>~;rH>_j.}E=Хˏ찶<1@/ \xYcuB`nsݗ 8GoC o%~ g_|<ō$Ƹ /Зπ% z'PSuppύ:H`ykPU _}w=޳osMm۶mRI"0)+?_]^HO y S"S<Ӝq64Ʈ{}tr 6a k&4M۱cv6L&+DEq:NJeY$ s><@N` WcI[^ \~~K08ޖ]8@?$E~+3 ÐeQ8?qs>zA|F?jjV:IQh˲,Hh*4մCffffqۖeYeIJ$xd2L7ds|AaLLĵuq@ bf?ot Tז] ŢiNNNOOOG"D"N4`Fw0pc8ZƊ(hivn7  P~6|b4o܈Fh0 0FbYq# x;QZ"Ä Dzd2Tl[/B,b@( B@_ZVp8LH6AHCXѐvR^T*J@*JRM9z(>~sݻ͠뺮"O\BN?bvݪD\<٬xoZ" aa|7T76/ d1 oB<GzTXtCommentxs.JM,IMQ(,PHUp HT0200VJ.MRPMLVW.IK- AڞIENDB`pychess-0.12.2/flags/do.png0000755000175000017470000000307512641567764016006 0ustar tamasusers00000000000000PNG  IHDRbKGDC pHYs   vpAgxLuIDATXilTUsog@)[ .첊MEQQ ưHI5aJDE"[C-N,tz?.)mSs p pChiZn5Fnm4!Bh Ѷ.UWWWWWw BHV~:P4Mpn;6[6awߟ65GKm ˃LO' ;q{vp@sM/?\ 6730X|vŠp\Ϧ Wr?} 5Y<H=8w K3$nȮo8 lms!_kI.D`-auSOguqeiGA>sb MA|X5 |/C-w΢) ') 4t;-ut)ZbX_O/<Bͥ|2J(c A$GK2_[7-yr l~qM0ꩥ7@}U.9t\h >5 dw=ІAGsj/o,L= 2+'׼ Z,9"p72y|UG]]0M4DMu!ygCxާvz.1S\.%\'Mz }ud(sZ(Mm~c'0udJ))a:9|:&:Nөiv:D_5`۹rói@D^L:sH<`6@h_% 3G9Ƭ5 x ƕPE:huq322222~nT­a9P[[XXXXX(DUUUUuu"cUɵkih_HJJJJJ)@ @MM tHI1iJKKKLnv]?uԩ2C^+8wL_o[h4VUJWkrv=;C[7mCE=D"C|G KqGzTXtCommentxs.JM,IMQ(,PHUp HT0200VJ.MRPMLVW.IK- AڞIENDB`pychess-0.12.2/flags/an.png0000755000175000017470000000300412641567764015772 0ustar tamasusers00000000000000PNG  IHDRbKGDC pHYs   vpAgxLʔ o] bq y/~g説F8&;ڙ:D~`pyeE/&ToeEkP>o,@U) 9ro#ǧ)Y o R`B`[= ,| Eצ>Nw}t;x;F5Nv]]iuf&&( K;K;E`ce?Kw[[|WcW5 ;6ex P|ްPeuvvhF<](tvIOmumukV08~Nn k}?ao߁5׎]?Va*S!\ח|mxkzB$I_x +SQr ̈fIs ZZ. AAF({桖8JvNwn6[ûpg X-VU@eYY&y(T0I&rEAx~xxx~ &g6 Mɴ_?]' `մ04 p8FOq8p8|> /2=l̐5EQE@$IjZV qF$f\SaC$Dݽyy`0 βu3KۉF|fH(qdx<c[Ft:N'`l6I&dvn'$ $kH6Z/b1zvTOe{ۯj*''qcL&dbqҠ:xpSNG%meR^d3T1\q/&.$=`υdrqz E^=MfGzTXtCommentxs.JM,IMQ(,PHUp HT0200VJ.MRPMLVW.IK- AڞIENDB`pychess-0.12.2/flags/bs.png0000755000175000017470000000251312641567764016004 0ustar tamasusers00000000000000PNG  IHDRbKGDC pHYs   vpAgxLIDATX_TU?^w*#Xr׶Zq!X(A!va u-,j@i@T, %XpwYcflRΟ;p8N{;?sυ,`B4Mv#ۖcu]uǙռJ\mi!Bq? ܾJRL6*;UVj:455555ٶՕ_T[cc>vv @e';CV1<“,OBdG- ,$ hh/'p| z> p($tsu{Mqix}}9s9 0`Hxd/Ez~Yh{tx+rބn0wGM Բ nXO~n?l;8]l}ȓk%p%q3;w}>YN:rx3Xvpnf':hX2}&8x]ju|q4]Vh?h}@nw/HwmTi5T}XW)ٞS <^ lxkX,69Y1505u]ЏG=։u+Ȃ}@<XR!})@,xYPaRv}wZS7OTJ=kD*A}>ՐfyDAGGzTXtCommentxs.JM,IMQ(,PHUp HT0200VJ.MRPMLVW.IK- AڞIENDB`pychess-0.12.2/flags/er.png0000755000175000017470000000271012641567764016005 0ustar tamasusers00000000000000PNG  IHDRbKGDC pHYs   vpAgxLIDATXMLTW{/3s"(*QT%MFĴImv&RݸMmIҮv]cMeX`hpFtƙ{8s&6n9=;3BUUUUDBMS4M caq!TEQc. x$p8Dd4jOCQz4 J$Dbɜ+ӧ]~=>Rymy3@ mֿb=yOJJS*Ձ?h_D&&d2/G";[]ʊn^[p$uH=!TSz/8 nnnm7Ȧ0G+VH7 3P`}[qϵoF:v/{tFW=^/t)gӱLSxYQ@PF`@`ñG_Kipqݣ.Uz/XwAVu,qA]Xͩc =ܰR+f{z|{"<,vz?{Գ<8;4zpbZآ 0 0BU4@p܂B;wn\sn{0'p_֝a5xbE`Mmz L~RTWve{^TD-???_UVM40A!f_ T ~_^Jz`w?Cdn @} h| F1Z)8*p8GaX( Y<H;ow߁b,]YiP:q7>0_M<\a&$D"!PA v{uݾ{wcVjj n⅗<iKe9N) 3kjD''^Twd8?rY.rYiarc9N[av͘'Mp{ۯRb3<ɯ^Y y PJ)>$~ $s5H?t{8,< gߵu]?v+0DjIȲ,-&`,}4E'D"Wi* ه(\5/^b0,;#?Dcຮ뺢ACT>7W BH(fT*Jrg`aw6KRuX, F7BJ=m~t}eYmӹ\.MNi7謸E|Xog7+Wa$-W|H&dhv[RT*"_ !h [qqRT*vqs++_}_:C8b\Bw>bN=DްyUۤDA? ahG7/ rE0GzTXtCommentxs.JM,IMQ(,PHUp HT0200VJ.MRPMLVW.IK- AڞIENDB`pychess-0.12.2/flags/bg.png0000755000175000017470000000203312641567764015765 0ustar tamasusers00000000000000PNG  IHDRbKGDC pHYs   vpAgxLSIDATXV;OP\G LMD( XtVlPԍdkÉ 0&v 8vӃ$MԨ t{y^׸5I$IZ_eYe3A=k4BGGz^OO۶8%T*J.I'&AM|w?-r_|c3*rznvހ<V}rudۏݺO/hyDc\ؼC`ǐ> 1Kc\|a?F )X?>0H[zr2tyI, 7@dyv bnN4ƍ_u]{F(,a%6[#X@&d2ɉi`W༧{is0U[>03 ຮ Q1~67iW*((|pppPZVtCv:H3w&30^^Ol6Xs~hp+]V<ON48R,"PV*8t#8 檪 hiH$rp~~vvvv>Y w..ڶm;ǏRT*MLif`37"gJ\ diIP㸮뺮KxtGƅr\.|>HjZT( d3'W گl6M0 0:^$' mX t:NB^]~$ň9/Gm>^7NOEH/9~Ah DGzTXtCommentxs.JM,IMQ(,PHUp HT0200VJ.MRPMLVW.IK- AڞIENDB`pychess-0.12.2/flags/pw.png0000755000175000017470000000262512641567764016032 0ustar tamasusers00000000000000PNG  IHDRbKGDC pHYs   vpAgxLIDATXmlSevZ[-Jx"!CBHLBd'*%148 I0EBLY'31]@wkv/[[>9ys09aZȲ,mJUL&ɤi+'4#$I$& Q$55Gˑ!''IOKc??ܸfT*HCIg,ԓt>֏3ò/E[oK Cᗖ?/u{s.`==u\_f\@CԚPсrj'f𾸩+v@\J>ب;oZK~v d?]`KsvFytݘ:X/_3n+ቯ; }@1yk<[|S'Ҿٚ󜨔Grׯ3XJa3}a{Fq.PSjCS:FqiVW'&Sw {Ȇg{};k`epV5 p|hWvZDHU/@\.鬭-ݙ2Bjl6YX;Уo}d?T͹6W Z գݡ9^p'amb_j c|gbfe6xEQ,c7RHܸ}oL֟T9ON ;u &g8PsQuPUUUU(`ܒr96@0ibL Dh4 YP7 ĹFNQlk3 Btlv{}D2yD___g|>H$@2iQ(W[[V NtBSSSSStwwwwwC:=111jEcuD"<}lVEQcxB_-D'Jqd BP($ˢe}"~z&d2Y핤(/1B BʍZxT*JA8vعӐ==-_mm4+3vn1Bw<uu[)y/JK 9įM*CBN^ |5d23ӃFgG;ez)GzTXtCommentxs.JM,IMQ(,PHUp HT0200VJ.MRPMLVW.IK- AڞIENDB`pychess-0.12.2/flags/lv.png0000755000175000017470000000260012641567764016016 0ustar tamasusers00000000000000PNG  IHDRbKGDC pHYs   vpAgxLIDATXh[U?4}Җ+ f&nÍ#"P+LXa 6S7n\&MAIQ[2G.˯6m8_w;` kXCii/$w-뺮뎳4Urr#dBb?L&lֲ,K\w,>P8iےP+YL*^tQ aFOqqA 3/EEhzA{yIr\^lfyқ23bh/`^,wez* 0@CP>3.ˊhiQO3աcf1pO'ρ9Jv2C4ŭdz~eҤ4a7Lk;6pZ;Jb?5d;έ[㑈ZS)#Sb ޾=>>1QҀ٧>O__ֳf ALb<ԿPz#Ƀ]>^'=xi"hΦR[12u\affJ&λobJB[[[[[BP(l&l +0=fWi7111198^z$LNB"H$ '|ÊV^<  ضm۶dT+[w`&Z֥K####0x<%'U TZ0 04M4P[7EooooOϮ]l6kYW64RT*U52&ʠW UD(gch4j*wQalllll S,Ţ Qۛ ZCQzy\.A,b$9rDc|uwKZ*IzJ-@ T![ѹK,>UQOͼm.^6[Ύ?d,}$.?_P,y ܥPbwGzTXtCommentxs.JM,IMQ(,PHUp HT0200VJ.MRPMLVW.IK- AڞIENDB`pychess-0.12.2/flags/tc.png0000755000175000017470000000312012641567764016001 0ustar tamasusers00000000000000PNG  IHDRbKGDC pHYs   vpAgxLIDATXVmle=w:a[`K ݤC3!AT$^EHE݂$D@Q(d"%`0l-16diKnׇقws f0{aaԕ$kEaYeYY\}L !x z^7// B!EP{EeXTmVV~M&â( spEf:w `YẂۀ=<\J{rgj<wD9@8+Ve ZJR>^Q߻XԉD"H/C}}m#@C'}$Sv8W8plުY|)y"i?Xn/ h.r  k  O6Tmz6܃)`0'erk|`Ƭkv($ T.//zO^vkg'sO#5`7'cP˄8h˿ \P&2`H 0ʫ?q;|pY+P#O3i3e:4 Z+< I$I4Z=&TRb2\p2qDZt:xӚyd2h4z D"ŋUl6.\, Cn۳DQE1vވT.$A󹻐GAaT9D/tuuuuù&b1iiiiii!$'!Q-Sp8rSEC*oT˩T ڕvAtTjtrTN|.>D7ݠ0|&bS^fpN鞴bGzTXtCommentxs.JM,IMQ(,PHUp HT0200VJ.MRPMLVW.IK- AڞIENDB`pychess-0.12.2/flags/sh.png0000755000175000017470000000302612641567764016012 0ustar tamasusers00000000000000PNG  IHDRbKGDC pHYs   vpAgxLNIDATXmlSUޮt[( [7nlCB|AR d /Am~ /`4KTLP!(: .ҡkڮ{p{ѭ,[4~ss?\۸a((+Wd뺪jڭYek_8,B8B:7`00!FQi[oC9_5 IÚoi;;C!:I:o 9|KM/>8&+?Kps1"tNJ@/@}f z8555555VkWW( ͆0 27ӓkdpڇQwOAEzC2L&20K(-u8,immmz5l6fUmkkkz!0nK\y}9N)Fa)~ml6[~~mm8D{4444x7DA~%?#!2oH.GzTXtCommentxs.JM,IMQ(,PHUp HT0200VJ.MRPMLVW.IK- AڞIENDB`pychess-0.12.2/flags/bo.png0000755000175000017470000000270412641567764016002 0ustar tamasusers00000000000000PNG  IHDRbKGDC pHYs   vpAgxLIDATXmh[U$MdTfm[Y3Ɗ( GQ(vKDXEd"2Ne!cA@6aSޱ]^=~=M6--_p?n1/΁ɻ { 80Uxq'"(YMV@gIXYm,p7ݳ*+ Za7dOK~e#pCFO^Y;/8vZڝ9 taօNBy,)m. We>u#DTTvvNv`ltx"z~yL7׶[o< Xm<w̤)F XbwHL%kzL<zH /6-[&+C cd7_}{l Q)qx+p<]eYeyhoooool6mlO 6mۖJRNg<ㅃUgՋ:BM*!l☦aah-H$D\.iZWWWWWT(/E %UCJQmxL&@4Fla˽{~+=^SM={>b[R*(z/ɥ\*BĦ.!,=P_P"/?0*GzTXtCommentxs.JM,IMQ(,PHUp HT0200VJ.MRPMLVW.IK- AڞIENDB`pychess-0.12.2/flags/pk.png0000755000175000017470000000274412641567764016020 0ustar tamasusers00000000000000PNG  IHDRbKGDC pHYs   vpAgxLIDATX]LSg純vЁnbhdUA4D:c4hČa3eZpnXpřx2P"11(QQ@?svqZ)Ne7o}>?{`ǬeYj}cM3 AUf1/gZ~$I$8fB;g@ X D"aд 0$^Tl6fukVV|c&O> BO˚ Lo!ly'06K2޲}|>MN} 5 JOKg^;2665555553 H^$, K=<~t1T kS[6AoU*&jjqFhl{ 'OhiE괙q0CKʎY{ˎwUR3v~d33AN̘8!UjAٚ8G4Mr fXӓÚX~6gim'ﹶHĂ ,YYի ^޵G58)@׊ߺVݶmJuWqzAi(n]kȾ6,DDbXddށhC!%vDi~>rFZ1Blpl?T,>US41 K@ܑ`049$ y9y ٞKCT=iuŚ)@1r%gslj:ծ4B-x<E$"Y$+ʖ-^L&d0y088888 ti/$%\^'p8YZ:Rz'ˢe:~ <z0bX,&NtJR6AHC(H:e/FQ~y:>s]ݿ[29nv' ]BGusnU1Hx/u'eMH:sXτXz#S|BatGzTXtCommentxs.JM,IMQ(,PHUp HT0200VJ.MRPMLVW.IK- AڞIENDB`pychess-0.12.2/flags/ms.png0000755000175000017470000000302612641567764016017 0ustar tamasusers00000000000000PNG  IHDRbKGDC pHYs   vpAgxLNIDATX{lSU?޵t :¦! YDBPLD$D@b0D%hgPm斠Svݎ[{-{=\883BQEQa}RUUUUӜ|<|ӴńBDD"H$O$ i0Bη,ӄrðG]?? wΥHt3\}PY2^,' NuAg|?//NlqV/3v~Xio әL&Low< ԯ?۵ 2zg 9󶗯&W, ", 7P mI&_.gP̜)[wUQV^=@ѣkC3.,GoA8vG妢zׇPb\(^`~ZSp,+`Y[YQA_>h_kyyZ8u!Yj:;si-迅3Ւ aszK.7-_TjO/ 7O5Ŀ*;|7!Y3UN(;nc[?ە8ٻnz{tCǡ=W7K2OH6G4ziۭ(*D \\,2\i B BB]z,W[/0wŶ U5~~F MӴiӎ d2orUXXX(N*Xihse2 Y^ e+U͏`Y(N2Fu]םά' ykxwGdl&GھqA;eͲfYaDp MB**4mn4NT՞p8 ;gt^]]]]] @I)hx׬Dbkmu:[[[[[[! B!H$>ܣɍG+`#>Ur\.4M4z^!^^QSSS`exWySH<|{:wu]u}_}=}nnVp@y)5Z ir?k-@^Pˎ hmNa<9xyGw[<, HvqEHǑ_b-ϣNIl߁MС0I+|(@AG>/kvt;) 44jvqgJ5xɯp‰g'wX#K@y ߝ3@ ?(c.v<0 x8cpnv~}0<`A1/7P( sst:0GApns6N4Z t+5^@Gn{ò?W:>u +P8BV`0 $I.uآ8 B{O85<5̍꺪J&[Y~d[޴x0^ff hi˄-/'OŘa\.󳳳33@.r!LT%YWS B+yFLJjiiiij)eYQ._]x<ǁl6fE72{Yb`f[  (z@8Àr?>5E>qBeYQD"p:%I$u݈^-$jXѴt:N9L&$F(T*JbX,#V vv;0i0f ZJRT2L&ǏӔ#_==(߾@ 8UP =SCme쨹/jŞ3ޭؾzqyk}H 3|#XRٙ#VN GzTXtCommentxs.JM,IMQ(,PHUp HT0200VJ.MRPMLVW.IK- AڞIENDB`pychess-0.12.2/flags/mt.png0000755000175000017470000000266512641567764016030 0ustar tamasusers00000000000000PNG  IHDRbKGDC pHYs   vpAgxLIDATX]lUcȜ0B6qs#YLTH h F $IbcԠ0D@"J"q`Qͬ@juЍ~l]/uƛo=9;wtEׅy*g[B{ irapNwNZz2q ͿH9@< LbO#[ (ҶgG:1<#ejm۶m0!R$6pa_PQ,! 4p} V^XeuwPәo& #Nșh{  ^GA.拗H[/|S{k˿>qH\&ˣr6`Tn}}}}}æW9v+#y |pkk|9P۶اGk㏨3x?jژeJO&dRg B#,DzVm4Mt8:;! AP/Ar$ _3Ԥ ЖUUё( |2Fc[[[[}>|>z{{{{{!S/ub:^kd[;N eYeeeeee CC#ӻrE.[Fmmmmmmp8;_DA\-$2_ȊB' @0ȔD+~------H$ax^+D&75ASCKݐlT.^<ӓfĶmJJa%_ 1( 9+˥۪eN{I.ݒOMwN(i|!٠a-'?HL/,/ uGzTXtCommentxs.JM,IMQ(,PHUp HT0200VJ.MRPMLVW.IK- AڞIENDB`pychess-0.12.2/flags/mw.png0000755000175000017470000000224312641567764016023 0ustar tamasusers00000000000000PNG  IHDRbKGDC pHYs   vpAgxLIDATXoEǿoő*ⷊD 8AħJ޹Abs,ae-YjnYrx3Y{ %gx͛NuSM$I$ݸA-ۦʲ,˲̦İCu:1ƘcRlvZV횦i ;~,xu L&I&k$6{p/X'Q/Ju?=Wݬ# p8/$(vۙoQn{E_??>Okhݼ=X)!,-׉o_s_K|Mmbzx7bE4oyg8aK \8#x=WNȹoO N~ÇTx뻥F]N^xgY4ƧaNb=k88$2cy n~|:3fqb\Y>2. Gbig꺮F(,@R.=>H5@&d2Xm}p}/䵽dt&'w]l۶m[x"tc\i׮Uj8("l6&@7䨃hFio\6f"3Dw:k+_t]Ӽ}{oooTRRT*Fh4ӤXVUUUU@4MӀD"H$\.\իnkr\.G"aM,2+nDAa "?ll0*u]uI[FߑJJRBP( eY%IbX,2M {DiZz^z^#lm7_(ܽ{t:x>>dR . q6OKxx Aaq̇ɲNf7/ ]]7WGzTXtCommentxs.JM,IMQ(,PHUp HT0200VJ.MRPMLVW.IK- AڞIENDB`pychess-0.12.2/flags/cu.png0000755000175000017470000000255412641567764016014 0ustar tamasusers00000000000000PNG  IHDRbKGDC pHYs   vpAgxLIDATXV_L[U{6tRf7\E:S%貑i6;ƒ,f2D! qqL܃gf SĄ)QfĸL/ va-{}8 +j|wuqqǎёѱa ^t5O&;/Me;aןj/Fsv3̟c^B%IJKC!YżDQ4fy`Qٝ/%}B۞53]Vߺ~b;-j> 1r\ܜ( I`(fTK'Oۀ hMo0`?:YhJ{/4M4 #ʖ!IՒ cc. >>>6Dh4 r̮,@VٸxO6vnFt8hq&˷m;z4O$TőO|>"H$Tpgcg;@/4EQE@$IfxŅ{׮CDBU~7EQ%0,Y?wYN峚ȑ# GdYeX˨|"@ z{{{{{T*J8z^BrɐϟL̲Zd2p8^1'wpPDD+8NɂJ;sb2[s_䊋gvcq։SI3|5X !*[7^V)s/GzTXtCommentxs.JM,IMQ(,PHUp HT0200VJ.MRPMLVW.IK- AڞIENDB`pychess-0.12.2/flags/sd.png0000755000175000017470000000272412641567764016012 0ustar tamasusers00000000000000PNG  IHDRbKGDC pHYs   vpAgxL IDATXKlTU̴2)fB#mpy 51ZE7&hԀ"qALЅH:CA B[:Ṃ3t]==wϹ0iLcLhiZe5J$nZ7oPH!Pq8{`093D"5 DLv|Kix<O"afd3{aNz -l0EH.Q yϊ?|,L!CLFr,=\ኔ wr.`N,!4ߤ&.&?~k/e7H$ J` d-(z7mjiiiim5Mnu!G;Ti9/ugx_YYYYYJ@,,@ Jy1< #|>|>HĺL9Vctct:z^˃*/_&JJJJ׬ HY32 0 cذRV݈JA5:*T%RPLda5N"Y<@/477777C]]]]]x<״z!R{SaZCdVK/FQxdE>^ -֭Z(*****RvaPMyA\VŶ"{Sm>/`P==,x7HsXPʧC<>yPԄ˗GzTXtCommentxs.JM,IMQ(,PHUp HT0200VJ.MRPMLVW.IK- AڞIENDB`pychess-0.12.2/flags/li.png0000755000175000017470000000240612641567764016005 0ustar tamasusers00000000000000PNG  IHDRbKGDC pHYs   vpAgxL>IDATXk\U?:M ^``k)mDFAE@҅fqᏡRqgA\Xt'fFlY4Ḯ23vj6#3ouqfI&c&ys=sλv aaJbeԿZZu iIk>\Pn7/ >#wGzTXtCommentxs.JM,IMQ(,PHUp HT0200VJ.MRPMLVW.IK- AڞIENDB`pychess-0.12.2/flags/ni.png0000755000175000017470000000237412641567764016013 0ustar tamasusers00000000000000PNG  IHDRbKGDC pHYs   vpAgxL4IDATXVMhGfWZ".j:zhRI 4ӖRՇ*t.ѤBnIS M{՗J!1)ےJ64@`kH+a4^YJI{ޛ73  8trNyyyMgotzBaq N`kRT*PUUer0QjBi~SٯpsZU}6y$>݈vŋNt$@E&7npMب0pc]ĮǮ75qVvIauuΟ='P–'9 Z9XЁA7%Ҁ~sfX/ :놱Q(.Ĥp(`'4T+?ջlY~x:xJK.P}V}f?`po~5GWɷd!X.# 2>ڞ0 0 x3vF~$Wt>e,6%b h|#%dzZ$ibYeMM)rq <h;jj赨rShjx64<ɣBP(vj(@$/}O +Vx7;vnPw2]u]g,$0م$MOKҩS\.  |P(@\.}!{3[Ę]=Dz p%4Zzly<ϡC덆޿JR t: JR*}c[藏EQE$I$|> D"@ӶWW̱cFd2L&t*(UL`NdnuYeY82Jl6fx<GjZL&$!`' FYAFm~flbX,Q2?O^)Jnӧ{  cP4s2{/3cvT*kI? Vqh&__/HGzTXtCommentxs.JM,IMQ(,PHUp HT0200VJ.MRPMLVW.IK- AڞIENDB`pychess-0.12.2/flags/cd.png0000755000175000017470000000262312641567764015770 0ustar tamasusers00000000000000PNG  IHDRbKGDC pHYs   vpAgxLIDATX[lTEsmJE6J P"^x0!JCL4'5FZ41hb54FAjh7bܮ,mv9{Ƈvw3s`Ŵ0 0;qXJ4MtݙWLw]/B!tS!fND"H$O3LFH9Sf^-! f {Jrڵd>?w,/,8^1d8bH @ .R@}}~Audh(J$ N!vr#UBF\ @ ~q`ϰ#oo@\ psc|ꥻ^.֗(Qy>cYxOL 436| ɥbun8 ~!be Ot'qc H9EQIlwARmXھyюrwoG\w쇁rp8/'Rhz [)z\u]3 A.o@XUM 7s)Q6--18ζm{Μh4)e/yH'^ߺS9AȽ4XB c B%rd:>@2LZZ&^1彵.QJXYy'~R>S9%%㨍3<rwqN` U¶l{˖^׵,˲,ӌD"^x 9TXiB}g\Y'w׫BRJcܪھ=J3Ç;;;;C! BP!Q/>:0x K^۶mFFnаbt:ɜ>pYY2L&ue+ 7 ݉Bx&'iPqh4F CLɛBWWWWW`0\. ]Bnj/M -uAQl6f!b سGɶ^J^ 7j!mgB{b5)[Z,^);kDAZN? ]Rnl _Y_ku&:GzTXtCommentxs.JM,IMQ(,PHUp HT0200VJ.MRPMLVW.IK- AڞIENDB`pychess-0.12.2/flags/gu.png0000755000175000017470000000274312641567764016020 0ustar tamasusers00000000000000PNG  IHDRbKGDC pHYs   vpAgxLIDATXmlSUkǠ{)06I( * !|0,DbX5h4 gb!1[4Ӹ (b[,ֽ]{pw֭ck<=y9,f1BeY3Gf bX,] ln78(I$I".'ᢢX,n T*Jdx<I֦dAHCXAdR˵_"H$?!PGzTXtCommentxs.JM,IMQ(,PHUp HT0200VJ.MRPMLVW.IK- AڞIENDB`pychess-0.12.2/flags/gr.png0000755000175000017470000000240212641567764016005 0ustar tamasusers00000000000000PNG  IHDRbKGDC pHYs   vpAgxL:IDATXMH\W=}( :W&P[C̦h BvBf4U6i :C4I4{]\dlK77<>#4M4mxXJ%9v]]u]wݭW[8lV!Pql؝7L&ɴr|>[v[B8 `$m۷ ~llxŽa2ܬmS?OAVݻr\.ϯC@8~Bj{||Z<8{`Zr\ @7u1l-j*Ç7p]=hߺ߸?X!Բ?pSצ? pƑ L3Hb+\ıGR@ɎV܊=>u\(JRIETA:L4fggg 1 0 ]K$ Nirs2`e7'`31z<_P3-K&:URV  f\>D,fX,A*JRˎ,/w%0upzcx4M4"H$Օ̌>v/x<onm۶*# *xPNg+ӧNL&ɤI@+LNNNNNB4FT,Ţ QMZZPPV%W( ,.....n'^ZoFkkҾ|P( YV_JōK,~U٦~Q-.^ٽOO&6H-ﰲϷBePݑoC2aȰ/GzTXtCommentxs.JM,IMQ(,PHUp HT0200VJ.MRPMLVW.IK- AڞIENDB`pychess-0.12.2/flags/nr.png0000755000175000017470000000244612641567764016024 0ustar tamasusers00000000000000PNG  IHDRbKGDC pHYs   vpAgxL^IDATXMh\UubN*:}Ф6 @J)XYXTJW*"]#cW.-]t" 6XhgR4$3ͻ.nnd2Is=s9}MlbEaFwZ9ZKiivd9URB!c9LN&D"}{:d2Z j Xmit]@qؾ\;wItC^=_)P'2;r2 ݟzA@"@Y06xhŎ+ͣ}]sx8i~` HI)C\VcH,D;;:3g!xۻ@vÝphQc{<y֌w>t3¹B,`fFqKf/U߂/<l=G~nynN75׆?ϑgʅYg?vzz뺮k)?{nI.A^}n'8#RrGb3Z+Dmm-cch4͖,@zv]SN4|۶ :NB'N,~J*[(/ɥkQirq xHK )=\˭O7&/ pEUVGzTXtCommentxs.JM,IMQ(,PHUp HT0200VJ.MRPMLVW.IK- AڞIENDB`pychess-0.12.2/flags/kh.png0000755000175000017470000000265312641567764016007 0ustar tamasusers00000000000000PNG  IHDRbKGDC pHYs   vpAgxLIDATX]hUM_Ȑ,PK@Uu P4(zq# ()8(2A&`km6qѮi6MK?bM7lJ)Kil6ajj\0LBXv$D"tәL&RU!nvn/_QnɩdζiFQ"[\eqon; Ba2 av@&_NKh A3q; FA< -IV7 'SG+˺زEz=h>{r,AޢP9Tw߄B < .@lwYF ۣ]lpSðx*+ǣht~~KijWUUUe. qzwso8%_xfo[천[c/V d2t:fg ܼuxߛ^9U])|ްvn/*%-)@S;@n[V|^Ep[LڂtuF"p86666@<`K4(dѮST fS)JU____[{@*Ng2G0 bd2lb`ʱJd]u]xr\.~ommmm{t&sr( Bv{2L&ŅUeՋ*Fv*ٷOGh4ijLx p8~r\N@ 7VӯUAVkrl6%L:z'z5[‚wwz:E-t!655&V%^is7|ʮ:-nÉu+^0T![J_M_x㑂xGzTXtCommentxs.JM,IMQ(,PHUp HT0200VJ.MRPMLVW.IK- AڞIENDB`pychess-0.12.2/flags/ug.png0000755000175000017470000000256112641567764016016 0ustar tamasusers00000000000000PNG  IHDRbKGDC pHYs   vpAgxLIDATX_lSU?^vh ,qȊH jfa`i0}X@xhy0Dc $3}%.R BX{}8=ڭ+[49~,f1IbdblۚifYS[oYbdRQEQdLMΝx<Rt:=UZ"m۲z^uu 844X'%*52H$8mLB@&.yt myJ*99;[R4ȶm{iDDB" 06n-Ku]5m``` A/d)m "Ҏ/xbү_S~_+DI)1mn[&T:}tOOOO0`0 B,bNYRbrR5v8 0 <ぎlvUSZZZZ/omMRt…޺D"H$Jee(+(+3De!d>D!ӌD"HDUe˄y"BP(@ `N>ݭ(ڔ6_ RʂTZ2L&h4FǭSخ^MMŽ+7Y)AHhC,].aViTߥ_85֤r" ai'?/|-ӛy|QT]^rGzTXtCommentxs.JM,IMQ(,PHUp HT0200VJ.MRPMLVW.IK- AڞIENDB`pychess-0.12.2/flags/ge.png0000755000175000017470000000312312641567764015771 0ustar tamasusers00000000000000PNG  IHDRbKGDC pHYs   vpAgxLIDATXV}Le]^B[(c수LΠB Yt>ɖEt.ۢl,seq,F) Ȧ͂ Zʸ?n/J3~<}}{>~0-hiJ]IVa%ٗH&e{~?EQE<7^XQEE3[2-I6%eJ yZo22OɌrdZX+ lL`W-vZjK/怉La+ٽn#|! xU|֮M>'KF_ } K$H> ˲,F#M3 EkiJj3нZ{v:KceSۆ|qZ )jf礥_wNε,a4@6P]PTN^r\pF3 fYa`2n9˳oo9coa> uС5Y\b ,fbbHeё#GȽM|vhAXV6M$qrv߫ ,,zP[+++&X3$>vÂ(` ݒs!@+$I$LHPh-|Nϯ_t:̲,˲  R"cQRW\~?$L&)5Dɖe<DQ}í%F>Ldk8xyZVP(**RwwS@ ͭ)) &UcD-$A򹽐k)8r\.MrWjkkkkk]$D"4]WWWWWGQ$HOB "ICQ-`0n٧;UgϿۯ\UNLr`N#l6FhP)TS3yUѨJH]{O.b'r#~xn/$=L緃t>";//9GzTXtCommentxs.JM,IMQ(,PHUp HT0200VJ.MRPMLVW.IK- AڞIENDB`pychess-0.12.2/flags/hr.png0000755000175000017470000000253612641567764016016 0ustar tamasusers00000000000000PNG  IHDRbKGDC pHYs   vpAgxLIDATXV_L[U{K ]BͪI`̇YG&E}q̥cd&4a|0TbO̽8 E`$f6Bs{[J/ d~/=|~ a{ AA8qT)EQEM^r;#Y_y4! }d2L67g2l6@v ~pJ5 p:NSUl7 xʊߌhCٓZ@=ZT*J[@4Śbk׌=4Ou}Ưtfo|p(<o<+8 )@^9o5vy^5b|^Q2.Jy` w/`Ha ȟۇK{_KEV@[#Kەsev7o^}|W:n_{xVnf+@/ 5 Cp?z6qif (;  ^P€pHOP&|3]nj>{.H@:y~?]FA{X;)ĭْ6Y円h4- j $(n|uq۾Orp+ pƳ@P^-P3@/`〹_:..B x<͖J)HsQO}-{P8H)@/rOJ }re}sBm-3Ԡ=er[,I$I(F">=== JR0 @<@6ndr 0T-bdYep8|>(|E#Gd2L6;1133333c6+(w߈\_-$\ȱcGUh4>2&wP( SX,!0SK#;/r9 b ;&]:KK;vn7Qhhh%fj[ri/-_8$B\n? z(wo=_|UP;iGzTXtCommentxs.JM,IMQ(,PHUp HT0200VJ.MRPMLVW.IK- AڞIENDB`pychess-0.12.2/flags/ly.png0000755000175000017470000000167312641567764016032 0ustar tamasusers00000000000000PNG  IHDRbKGDC pHYs   vpAgxLIDATXVo@~wQH"nPQG,QmҬ`ȆZ1e( R`;\_ v u[ݽwwwXc5RzrGǮ+ 3[0e8|~B8 xx4MӴ0MD=*p8t:N6bQuǗҷKmL|-|y~8."Bx<\ +C}^t3eՅ:HurEDOO;^oq'T 9o $aMLBIqJEqoR^BP(^Ou]hH$y=gয়7X9}Nxyϒ뺻m۶`ot_00vth4ͦ㈢( ZV v.!',dbhxvbX,b2onTUUGWn%qoyyYV"(t:i7{@*Lƒ$IcRT*P*Jh450 ӼjZ-u]u1V_D ENpضR-r@Vz^*JRذ,˲,JeYe?7a0 5PbA¨`0 vnOryf|yv^\.ˡBgg"[Qn ?pC(?_M {馁04Qx.V5?hP6,GzTXtCommentxs.JM,IMQ(,PHUp HT0200VJ.MRPMLVW.IK- AڞIENDB`pychess-0.12.2/flags/dz.png0000755000175000017470000000234612641567764016021 0ustar tamasusers00000000000000PNG  IHDRbKGDC pHYs   vpAgxLIDATXMlEolhdA],DB*ȡR H/H@E%>T $D%C%Z=$q`Iloػ&vlc򿼝73o7p UUUU=^ 1mM4MR%,q^:((ҏj( ,@? ลP+5F~4 `۵kYy#npaa|5Ck7|7LkG[%Pۋ66D k'\C_tx`=ӝn\8rIxX_oeYeݪi5**@>0eXҝol̿h3P0 r˅Nrg`~fv<t^\sș#@\@ vR\t\Ngxg7~)KUY~OD怡pܦc=6 B =gccKK뺮뚶D"H%C-H7{}9}\+NDh.[[]]]]t&^>???z88d#-f`Ntaax<011111ݻJ_H&d7o.,,,,,8T*J ʎ(#(V!3QO9SQ8B4F*S&d_D"H`0|>U5 B!EMZZ! HRktiiB,b{ 19)WoB6k~iQBSS RJV/*KKj}$k7I:]9;,ey9d!oNm-Pxtۭӕ0GzTXtCommentxs.JM,IMQ(,PHUp HT0200VJ.MRPMLVW.IK- AڞIENDB`pychess-0.12.2/flags/mn.png0000755000175000017470000000235312641567764016014 0ustar tamasusers00000000000000PNG  IHDRbKGDC pHYs   vpAgxL#IDATXVOUf6Y ֋a 4B)"TXX BOPP$ R&.x4(HYQG BM$$563$zxyM2$$]~}}x&DQE52 &$I$0o^. ܏FW.麮s9JOdz6̸ +jUU@̿Ÿ`"w:N3q UT6KFkDDN8Dy埈A&CGkp;T:[Z0N;d\2>7]L~?& g1~/}xEut J_rn?Xvtj`iN(JRe2ؙꮷYnM (֝C?h;(2/ p>?uxFs]An%W 7FE@ ZMUUUn44Yj,bP*JnNx' nvP( iZ^/, 58 kqF|>;hucn3~p~ZMˀpvwo+˼6H8?8ZNcfV6GzTXtCommentxs.JM,IMQ(,PHUp HT0200VJ.MRPMLVW.IK- AڞIENDB`pychess-0.12.2/flags/mg.png0000755000175000017470000000224112641567764016001 0ustar tamasusers00000000000000PNG  IHDRbKGDC pHYs   vpAgxLIDATXVOe}3tY]sQ8EMN ^dK.]/T`!R0A`nVyփnrKN),t*Mt'3d×&C~3_3 O  \Wמ'(;R\|?`1ƨI>4MӴn4My0i0|s] H$ px<>4:p}iZRK.G|;W9>~2n|DbXcxn]n>\qǂ2o ϋ= }8ZK^y ;9/ ÞՋ?<)=y!|lL&D$ hNw^=W`mug_cȻ8 _|O9[~^6fD" 4V,loFko˒T.2jZ`F/mLk_ ֲ,˲ (( 8r띜llKK._v]߯T*J%u]u0MnD ˂Nb|i"W0.QUUUUA#vF+Tj  Bl۶m[JRTbl\ Hdi AReYeflqs;un<޽E+RT*Eu|p _bFdCcŸ9eGyhi"A0A^g qSGzTXtCommentxs.JM,IMQ(,PHUp HT0200VJ.MRPMLVW.IK- AڞIENDB`pychess-0.12.2/flags/ae.png0000755000175000017470000000216712641567764015772 0ustar tamasusers00000000000000PNG  IHDRbKGDC pHYs   vpAgxLIDATXVMlWn X*U i MoT #cg3"!q)HO,F",ے%`n<lq[7oqC|$Its.˲,˞7Ӻ yv1#?իVjt,˲%޳`sy@<+ӣ|k-qů>5a҇pi۷^덯 15vm o_fs|XX`0;v'._穟K'>{'~#$E-+XƗ?ߏ}غj?xb xF`4ϷYϬgցߞ\I|G֝ sZm{08xSF|A9.ytkRkiGfj$HȲ,jɖ₵ f$Im:N33;;i"fݱqUBs<f~6S8#IBP(06Z {4IR ϶m۶z^ |Yp.wz% ~cOH&d21y"J6@V⩑bhx}aZ}^aP&>)8;@mt2qp|#ezZGzTXtCommentxs.JM,IMQ(,PHUp HT0200VJ.MRPMLVW.IK- AڞIENDB`pychess-0.12.2/flags/ir.png0000755000175000017470000000254012641567764016012 0ustar tamasusers00000000000000PNG  IHDRbKGDC pHYs   vpAgxLIDATXOlGGM\q3RKTU UU^(ԅp!C*q^"@P'*8@MPũ\ ;a7 bR$_z P( 9z9|bb¶r6-.= ǀަTlGhsw.pdgbІ@ /U>*߶ȫWJR,P:vӲ.ܼrsrSLjxV忪k޳bymmu8-CuY0mqla@$ 0ukj?ȳWN^F[_LyVA8ƹ6hyK'JKƱjZwǏ2)b\-Rʣ/Oײ Γ'CC~Rȳѽtgw n BB|L_q~{]`JH1 Hqgę{A5g@q2lVboLRe5??]˫Y-˲6mj=knnn6 x<Y%:q4qG<E%8H@ޖT"D9Ub% k`"MbX,kim6M4j盿՝>?>})y){߽^>~{E-r 88Do` UeÖup:id2L: ^Uknuy::;;;;;v%H6͖JB+NO }}}}iRT*\.A^dUu_ި|>XeY`0x<C4;;;{>8(hc߾BP(zm۶m{ޱVVZAm:BxnKql6f CL000000D"H@S\.ˆL&ɤ}9ЬY733333cccccc58ޮxnNZ=D"H$CЙ3bҢXjn{/K׼uu{BÚ/VA_joGzTXtCommentxs.JM,IMQ(,PHUp HT0200VJ.MRPMLVW.IK- AڞIENDB`pychess-0.12.2/flags/fi.png0000755000175000017470000000255712641567764016006 0ustar tamasusers00000000000000PNG  IHDRbKGDC pHYs   vpAgxLIDATXVALG}^0$'-XK(n U@HCPE* rzHAH4BT4=DJ !Udljl5^ÂqZ»ϛ=q]@g,:neY׀o{1<d2tD#a~mK7/7{Ď|n޸>ފK"[d+|ΛƟx^u!p=iw"0cfx"pܧ x2cWގn^3gx>2OuׯB8;j0~'G#elwgg`뺮q.IBO,R?]]3Wvh UUM]f' Th4\%I`kakLM Xs/M4Mvv 0dYC yEBk?sҽs{ =88T !OĄ^P*J+˲,˒Tj @ t`XKtPhtNRh+Ǐ|^7MZYY]]]e9yRT*č,_-@6VEQ@UUUUD"H$L&dfh4N>SΝ3MӴW BPD 0 ß:K7"uAA;lճLqt]us2a^ȰP,"f,0jZ\.1&Hd!m۶mr\.w sss_~.ǏΐJRCHΝ!XLXm%;/d*> V&& &|7ah ?XqWGzTXtCommentxs.JM,IMQ(,PHUp HT0200VJ.MRPMLVW.IK- AڞIENDB`pychess-0.12.2/flags/ba.png0000755000175000017470000000313012641567764015756 0ustar tamasusers00000000000000PNG  IHDRbKGDC pHYs   vpAgxLIDATX[lTEsNwK- E*6K$&H7 bY-Dhx+$,FyPBB! 7 %al^۳s|8 [ |gn_9ppwi-Zd j뺮K94yp르 B@v+//FQ`C%`!ZoRv݆al33xZv0<o怨clZi%r@{M%H1t%n՜\_|wfz̮*.gAggggg'D֋rLmڷYZpmp8x<((((((z!1ò~(----)D"h- BaY" H*TU K8~Yʇ v_mdEFGtZZ+!d -Y]ݶWCЁVY+R;wύzܘy<> p_HGOZܻ2rN=ɟ<`9A{. [3X spAx~7 7xøA袗C rql 4'{ن4PD!,]4mp08(1Q_$pKX`##en+g p|qjU8@_􋒔X( tȼ0 0 C,!4qryZrRZg?pܑ?ܽ5 qm|G-#`ͤ2Q\zٙ_]bn4MV@N4y5At<':g#KE8ݬ']Vb_4u> 𠻬+~b[.Dpf,2wnBB S9ՕWܓMw.\.uuuuuuEҥ~?4>MV`bwӦή.ðl6b@ @N+ JJN Sv)u]uD&:$tnb---->|> @<.'܊:x,C?nvz^ ɱuQQQQQ^^]bsYYp8O9VUQeP3 Df"qt~MS%rD/Accccc#XST*Ҵ&!2{Sa&LPJL6yD"H@صKʆ뛯)ǥ뛯2g vo֌y\껒 m>e7_c~$JN~5TB*5?=gtaZ(zYGzTXtCommentxs.JM,IMQ(,PHUp HT0200VJ.MRPMLVW.IK- AڞIENDB`pychess-0.12.2/flags/sm.png0000755000175000017470000000254312641567764016022 0ustar tamasusers00000000000000PNG  IHDRbKGDC pHYs   vpAgxLIDATX_lSU?ޮtXXF0L OF]f"!!!q01.5J /K Ɍc0J&GX B9:fPюvn[Gױ`|;s΅E,b7aa44㨱isWZotT!y̆x<Ǘ/Ol۶@ʹ0!uq$X XӶ_MWԎܸfyE B!ҖҖҖydC.r.+E[qtK%=+(-[6vٓ6sg9{:= P~p'~WyQdTZ"N kUSa˄@⑉`D>з0<>" eDsރ>vec;;FFA_/@ |*0{e!5p6J_BkW d ?x`њG2y뺮o)e+ojւ<| z=^+y^4= e_8mr3} <p?\6BTUYe-YrJ$,@OJKKK 5MV`ݟ[r*9ܹ7 \ */\8Lt7P$,ʲ6mv]zM@3T)ހ$s~j_}}}}}.@ϬVRV ,]eh*eGB^o( Bbضz%c|{|`YeYPQQQQQMMMMMM0>>666a~񢨭].Jlp8KJD"֝/ ,dF8H$2 OBggggg'477777'd2hmmmmm"_셠Y7ԊN4Dh4:m;{{U]xbBq_߭FqrPڽ{+߯Xjk^_85I3 )}k}>Őܚ_E_f86[GzTXtCommentxs.JM,IMQ(,PHUp HT0200VJ.MRPMLVW.IK- AڞIENDB`pychess-0.12.2/flags/jo.png0000755000175000017470000000266512641567764016020 0ustar tamasusers00000000000000PNG  IHDRbKGDC pHYs   vpAgxLIDATXV_lSU{׻;a`sʶ.p/,*!eLgBLA 1$bQD#' #?UBUqM( ]z7χn]E~/{{} c$Ic|L$˲,˖5;yz cL1ln݊bX24 v Mcb=envj/)͛֟p[@YjzHqLlc{ # Va=9~_XbzWL&dP+ ]~6-Ϛ%A"!W gGD}}hx<_*PQ!ʏViCf`WutpG={PJ~@~d;u;kߵ#< J08pǚEj:g<`^VjjTUUKK\ v{YYY$),2%k=[j?T<1} HOZ hjo9,Waa} WvSQIb 8x^p躮+ 4C"pv{g&;jD GR0_E?e*^ ZDD@:N" -tTFU7m B~REQYh4 9!Q mOv]SSSSSH@̬B'&{t:[Zd0::4MQ4M4  &@nv@UUUUrV`||llllJ{w7khhh߰!L& ܹ@ l6]u]n,7PPssD"infqp8%I  i$~Xno h B|V_*JR@$D"Sqjkzrsիx<' BM~ppKrϵĺBbiHw'?> © $,eAmm{C VG ([t{a,)]mk| ~QYu>_1)h Cupw= /q'0m_pJ/Pdoh}'ɛ!+7~%x.1_8mauk@w]Zxk7:/q&`?qiۻ']Wv*s T7 el6*J[[[[[ܔ(/I )eAJQmt:H$GY z͚\Α==롶V)ڵEH*eY{QL.9/d'&˯T;rѐA^+ wP@V{~GzTXtCommentxs.JM,IMQ(,PHUp HT0200VJ.MRPMLVW.IK- AڞIENDB`pychess-0.12.2/flags/bj.png0000755000175000017470000000220112641567764015765 0ustar tamasusers00000000000000PNG  IHDRbKGDC pHYs   vpAgxLIDATXV=l#Ef7l8G+lDtXJ\]2Dq:8]QآHй: $$먠$Ȣ& iQuݍ}]&|7ofW΄$I$ݿO#ϣqȲ,˲q}BcM4Muva;y? !x}>f٬u~~.nÃ#!߼=cȿjS{_G|PENNp8I@dca᱘HWx5ց$pw.TODvJL8HIx8b3?=!`Z}< SgL9ZϗK`Bۍ&|}?$Y@VFb%{1fbmM4ma!쨪(,@W@)XFj@jۇ?^Le%-T۵,R0L8:?(8޻>n컰+ yy 'pFд5Msgooo^}EQEFѨׁNtz!y\[rnz=3ZW( '$tla/{+Nlq>uEu]unmqE{Q+Lƪ hid2 P,"޼I?{&677776nݲmvjZV-˲,k1+/"+qRp%x&}[PxaaH8y jZVr\`0JRTMF= ,HTŝ纮@jZc~DJxX_'~x;r\.@-5@Ryn꽘n.gN|.n_/Ma`0\5L+:zȍGzTXtCommentxs.JM,IMQ(,PHUp HT0200VJ.MRPMLVW.IK- AڞIENDB`pychess-0.12.2/flags/sc.png0000755000175000017470000000310212641567764016000 0ustar tamasusers00000000000000PNG  IHDRbKGDC pHYs   vpAgxLzIDATXmlSUw:R6˦&.1M9㌁D2#8_%ac4QQQ55jHPYDHkp-Rnne{p8t9 /pgp bXnMiu0 0LszMSńBǩ'BP(TT'H9]:5R&Jjϛp${SNrT*J9$~wVlYi8rVer< 04??wqKUC>4Ցc2L&E%T#~)%RRJ龏U}/rtrۜ,NJyUJlz)Σ\*ORJ)j)dLnjybJ Wy Bp0̰&=^`ϭ^ؾ ~ ȼB`|Ï $" â[+*~v-xP$IqfN'S(>4~<ԣm ? // fv ]Tx~)@Y9䢏> ) ۍ0~ V$k :4Mt8,; 4F _w@S5@=7_R-i}.2+pԚ*?G_5A`G` 0'|c sؕB%46]1v>S&/f%/ jkKWAxUIwaD} AdWȫ02|!y'MCri2ȕ 8hNEgV555555H4l*l"7pUHGGGGGCCCCPv"Sߓɝ;U>۽P\\\\\ RX,6o)snnwcfl6U Ĵ^x<t:7Uc1=J'ft: bx<شټ^녁H$FV/w608\Lgnvnp\. ZZZZZZ`||lllVY?tHTWWWWU-^޽]]]]]]Vk4FYúz# jyt;[ɉ4458t n係|yT*JY,BΦTGC.T6d2L&! I]x^'&l-TVVVVVj;Yz/;o漜};\>7A=0H4~2tgB*5;9n36w( 4GzTXtCommentxs.JM,IMQ(,PHUp HT0200VJ.MRPMLVW.IK- AڞIENDB`pychess-0.12.2/flags/lb.png0000755000175000017470000000246112641567764015777 0ustar tamasusers00000000000000PNG  IHDRbKGDC pHYs   vpAgxLiIDATXV_h[e{n6t LEee/-C$ ˃*)Tyʒ 8G_dcIXmܛ?7%i2񥿗sss]8@S,˲,Y*Y:qiZ{IZNFe 0 ChӞV:N}},2+@0_5 ZVUUiG$ K<&s;Qt$)rѮ!uCi {k@I/(;=r@ 3G?c_YọUz{34%b2/?^ν+ӧͣ[[G_2?a5`lZ/AgOa̰GzTXtCommentxs.JM,IMQ(,PHUp HT0200VJ.MRPMLVW.IK- AڞIENDB`pychess-0.12.2/flags/tp.png0000755000175000017470000000240512641567764016023 0ustar tamasusers00000000000000PNG  IHDRbKGDC pHYs   vpAgxL=IDATXV]h[e~sdV"Bx#L2a]vQ j*zMjD1bat/Yq&7)#7+ԤTL'kNҦNj/oӝfo:*po{kpq3Jj: (F]9sxOTns9`܋s O>1hā#_bH҃7fx_>Vr5g:OXZlaa\ > 'np}5:t~3=y-]su[X,˲ݞNg2Ɔep:NA$ށ}N)i*O_6%*oD} U,*H_C8;=W3_NMi0WtNV^5^4M4c+d_ƒd22 I$IT |7dc<`4&Fv=u`0 )94 ]*ӳxիѨ$Eh4 r\.FMы )4Ϸ;Ȳ,2vn7 B><̽3FFTUU噙X,l6EQE;ҍHnAh-Ӝ(ѴL&dZyWH$DpVjU"H$aUy+4 VRkJRTl6fq:yԽMKKzz^%t!ӮuO]-Ehx#v~ zjRs"V0fPۡZlh/GzTXtCommentxs.JM,IMQ(,PHUp HT0200VJ.MRPMLVW.IK- AڞIENDB`pychess-0.12.2/flags/pm.png0000755000175000017470000000323412641567764016015 0ustar tamasusers00000000000000PNG  IHDRbKGDC pHYs   vpAgxLIDATXmlu?3ݶ[.Gm5@*[ 44Trԣw(XsFs#Q1hR ) ҇n3bWM7||U\U\(i1RUc$Iiӳ9o*ib `1Dh4ZX+v].ӿ`uMvUհZ-3m8<<:*-N@leDM_a ]X-[m9jP~=e9Xp812߈G!њ7\#_{j?aMo~xuV`~ޝG6uSuoyOv 2ԿT#m%E/to`GuGP/Ciwޡw۠%Kd?}gh霈{,gW>k(jK]oln8[]=a_ŭ{L7N\yo?> y-NqWƏYii(J @m|n9h{ }(]i mjַB0ȃyd={2Jcf)K^M7O8(.xp8AQl\c ȶ4v<ぢ"hiiiiid2\ bŊx<W.VYeYllffM{JaV";?j`GU`0Ed_#?z{{{{{ ,T*JbGGGGG dkT`Jd3!SImD"P( ~4Ϡ; ޽WI;7}20$%6oɖ~-.W*>sL0ɓ/J*~)+ִGzTXtCommentxs.JM,IMQ(,PHUp HT0200VJ.MRPMLVW.IK- AڞIENDB`pychess-0.12.2/flags/ls.png0000755000175000017470000000302212641567764016012 0ustar tamasusers00000000000000PNG  IHDRbKGDC pHYs   vpAgxLJIDATXV]hWl͏kkԆ &-%-BJ V, &BK)l>!J!HE%,d5Mf9}^V7&K}=s~=`+x&$I$in>2 >&X,4g1o!δ4~c1&CP(ϏFu]ׅ` 14"V-}5épXӀNlh. *2v8(@aC!eXa-f̜9X߽߳l2L&KP+ |D:DM\ziLJ"s?$)^ʈ@#хI"m۪N]=@hpphhxX\8P2'O5, |%|o5ukV_}|8,eHc^+o@n@۶$޳g7О]0xF^DY%d{aYg[g^nX1;8$|pˋrNʑ2H$*)_DZ <|S+$Wv6u9@aoaErL9xu4@xh;V2?c?v@E#oIXe`RB`#",Dz^COf/83&csH^.D&҅<}Z 0~$2B_____XD"$vKM A`!BiX,ŀ@ AWΏqwo\.~R%t({Api"{->.q?,h$m~H,ktyB?}oGzTXtCommentxs.JM,IMQ(,PHUp HT0200VJ.MRPMLVW.IK- AڞIENDB`pychess-0.12.2/flags/eg.png0000755000175000017470000000253112641567764015773 0ustar tamasusers00000000000000PNG  IHDRbKGDC pHYs   vpAgxLIDATXMh\UD'UJdE]h PD*Pł jt!`-bETuIF!_Όμdf޼L&M҄v{=_s޹maqZyZKii֒!:'pV:NӍ٬뺮r=6R>zڭ>͛o;4'uxY.x, rʧ d_*Io4QAIpyG|k<7FUwbX\ xqk/~ _qZxhd ٢ m#V9y߀b)QtfEw_T'd.N`ǎeNh׉gO g8b//w4!7敺PAr'%/㾡z'&b1)S)Fɫ?ܿ39955=]X;wpx<ūB⳹<2종Z #4| -vM P7hN qE7Is̓L|oBTZkAZm#H$D9%Srpѡd4h]۬Nm BǏD(m2Pu_T7~VOmd'OEZ[ =\|~sֈƃ(>>GzTXtCommentxs.JM,IMQ(,PHUp HT0200VJ.MRPMLVW.IK- AڞIENDB`pychess-0.12.2/flags/es.png0000755000175000017470000000214112641567764016004 0ustar tamasusers00000000000000PNG  IHDRbKGDC pHYs   vpAgxLIDATXV?hWw(Z:8c :CBP44=PITH)DJt,ItЌB-աPئ$QA;^O'|:,"|}}8)s~ܹ ((7^]G}DgHyÚ^o#~!1 >>ryRVĒ|40 48i ~|"H<ϋ9WWOg} Z 0L4;PbXsUUE&,=D{\:rU2}~u 3߀L&d˲,UV@F{@I`B sGX#_7r9B .eB cq0_灙nv9/ B 7 a05HRC¨u^jZ@RT*vRܾ-ݻo_Rxqt:NSBw_bBo+ə}$='9)/*NN }I:ndz x#fL[#GzTXtCommentxs.JM,IMQ(,PHUp HT0200VJ.MRPMLVW.IK- AڞIENDB`pychess-0.12.2/flags/jp.png0000755000175000017470000000250212641567764016007 0ustar tamasusers00000000000000PNG  IHDRbKGDC pHYs   vpAgxLzIDATX]hUwNִu+fBiBHCSBŇlV>ZE}X+RD)mb@4 Ib]t1dwƇ7dwIP|=s9X*V$4M4A9d|>sRٕ]W7=-B<C/`|Q'BO?ү> rGl6]x}C@N.!vV#7 `xun\RPDҾ,V wY\[{%#x>x0';>g[,P8-^/w|S(se]_H[nPA]O qvk8wyNO6/'[Dgu]u~Mq@<./4UhkjʩϿ^u_J p\ g#D(dvh4:;[eh՚r:&OuIHdbY)Nn8W08\#hx,sKa{X@|{~ge9q]Zey"/oM&oL&ɨLTKPh] ޽CC뺮>$D"< dޯ_koooooW(ziEynԬ_omR.F"D"x<|VXX_ila`itvvvvvLK>0 m۵˶m;뫪,˲|`Y"*}xP;QOa!{IL&FQMS[&ݰqq4-a!PJ_ JZt:X,IqǏrnNʑFhhhhhhPq:vlK/mUrM{QL.5Jɧ*I&&R Vry!T+qy=AY GzTXtCommentxs.JM,IMQ(,PHUp HT0200VJ.MRPMLVW.IK- AڞIENDB`pychess-0.12.2/flags/ne.png0000755000175000017470000000255412641567764016007 0ustar tamasusers00000000000000PNG  IHDRbKGDC pHYs   vpAgxLIDATXMh\UuIIGk/m(i>pQJ D EQ,҂4T܄"4.\(ZCA]؂ (Xf:3$d>ɛ\ܹt2&(n=s׻6B4M+˒ku]u^^%fordR!PqX=x<ǛRt:VrY !6x^kYRZ[[_SL">9Ҳ}ܾV6dؕL/#\.˭ԫNIBJVZۈympy}=*˚ؼؕ'bOaC _\sp߯GF\@G_iqFcM 8e!`kvt =D*u繟o|~`YW×y|/vi Ϣ8֙ܜA@潻a~1si~MZ;9$[{\~(CN~`|#6? p(*JV|qpX/<}>8 <|#GN.#'geܹsvmmmmݺub"S[с64M\:M3 ]uH_8z1̻y!/ƙ|%G$'-$>&======D"as$U8_/ S ۶mynz/8͎4eYeHT,'`f}}`0 ٶaax(X,!+..@qbʮ^SU (vYdRPwT*pattt7 !FQH,?B`jB$.riix<|>,..,,,%߼)KRtձD"H$ UeՍ*Bu*Drp,+aMS-@+@ Pf٬  Q> 䕠FC*HQ_&d2D"HɧOjo$~uk::::::<Kq}d۪(.^zOU&&R VՐͮM7/ "WR[GzTXtCommentxs.JM,IMQ(,PHUp HT0200VJ.MRPMLVW.IK- AڞIENDB`pychess-0.12.2/flags/mu.png0000755000175000017470000000212312641567764016016 0ustar tamasusers00000000000000PNG  IHDRbKGDC pHYs   vpAgxLIDATXVkAfn4VsŰ&E4 *To!֛=5 AoA *%=\$6XdӤ]˦&1}3Y`ĆA4ضEQEѲ[ke;ͷ,_cQ` Q( HdA~vh5mY@ ɽN .-'3Gi˥XzYYjZ9x02Tnc3;i{r %Oo۶'R0fgUUTUUUr\0 ~#I6v:w˲,2((@,b@:>W=JaxL&࠮뺮; SeF = w!(De\8ii@-DT*Jx<ǁjZV!H$ $I,:W.2flC7NOzܮqs+BP(D8rKd\[\ly)ޤDZaAj;?ྑ7GzTXtCommentxs.JM,IMQ(,PHUp HT0200VJ.MRPMLVW.IK- AڞIENDB`pychess-0.12.2/flags/gl.png0000755000175000017470000000306112641567764016001 0ustar tamasusers00000000000000PNG  IHDRbKGDC pHYs   vpAgxLiIDATXklTEsovyUe (MhE+ 4(3DD$![X#Rb t{amR /;gfΜs?3 `@hiN˲ng5.6߶BG'ߝFE"h4R^!|)m ,˱\ssxtWiuO6~4't Ke9$=@z+Hn_ Ύ;JRT$ Sgys5&džO<'XHsOa󮯟g<^+ ;=YbA< :9ڗ!'0rohc˟mpW"ZO0\3.d>濵~k0gVhsEsNZbb5 `e8ql_ g>^ܵvho#Xr.p<|{в?k-HkY)Sr f殛X1fTB4M3`ECJY}M?Hy`^#Y'"#RۢqWR17IYc[*e$*aQ)_-Ѧ`PZ]]C۶mz5Mׅ^'cb 0n* 0V柹f-Ч}uv n/Ef$mϡam䦣rs[ZBP(Țv{<:$bܦU;HSnhuH5DKۈ6&r|  o6v)*;A{ZxgΘi Q`PS/d}g"`m{:TJ}'My4P fh?˲,RU|cma|p8 KHK2=/sNz^YYYYYJ@:)twm1bKtwG"Νuuuua@ :/sҁUe}\fvn|>򠼼x<5~(...>}H$FwL4M3XUVʞپ\,o"  G8 B-sUUUUUUL&ɤMllPP MjbPEÕnNu'ꡨHIÑƍczVs2ދLq~ŗ+>5o0?&M$=y_drhv|?R)x1GzTXtCommentxs.JM,IMQ(,PHUp HT0200VJ.MRPMLVW.IK- AڞIENDB`pychess-0.12.2/flags/fr.png0000755000175000017470000000241712641567764016012 0ustar tamasusers00000000000000PNG  IHDRbKGDC pHYs   vpAgxLGIDATXV_h[U{MlS*V:#s:Bq>=2aH l CtÇBL|h`BmzޜYқ%9}'BANd+dkEQEJKIݧiB{JR40PT*F@ [@ vNÕUU~|/ÛW'gο-%V%Mt~eXכo ;4 Pzh4HC%r+0Tyk[m(n^SH-u߰e;=q^vU9@^"R wkښ=*`Y;3 >s-7 )/ь} ˬw+|;`eiu< P+ڶRJ=A6>jo<@B5Z +\⊲v݂ ICxE8X+!yy߁vQO'.'x8}+0|_8u~xpY[SUUM쁳w^Yd2LR,&kVkW蘆r۝ >h4ZVi68A6ͮUM(;6???@$I$P( &dk,`.okbniE"H$i& њǽiZR޸1;;;JIR*JR@>@&2y`fֲ,˲ (( ~?bz~ ~ٷȑJRVoNtTUUUզc,Ao_v"x<[9z1l6fɝ[d2Lxpa $D"A79:wo .9!Z}ZV\.˵111Գ+drcɥzBPim@x&$Dx0I4R.mն^;;nݖ6_99|]` XPEQ;acRUUUUӜYJ\r6ӴB!dS!f.``  Bŋ#h4z˚3 !e&TVVVVV϶ϛ-``8 ߽vSG)LH cR,BFb։l>jS'+22JRTY g̩w%Vc`}Fi~ PR@j dθlM#WP^.V/*xaK>/`R u,Mmo%>%aphu9bVJt+K[]WT`/˦1,CPj$6R`|bB76N}oh\:»?n~G=՜$$W\ y̳aeeZ[;, +~a;4V+9_Wy N7>W)L@ c3E$siYR(*$.6!Yzv_ G1 Ϗyc׭}e`jW#`įpuMAhhƚi7x1Ju;HCPQ4MUU-liن`E,.8xݺn \';|Cp.<%P!nv ᰦ6 y#} >4+>_94M= n $ 0 0d&i(T<]N4M4U^oȌ l@il{x<iY]m7ztTRi[eeee[F"ٳmmmm^y^ ======7ӉɉX"[?p8u]up:N!:;͛f͚#H$p|p8Ӂeg(;(BDv#d> ٴI1@ E.-d2TV!)K RʆlbX,`0 f[67cݹFp\.KIæСCVR>[˺/%K9_I&4\簔S16}!o_++A6GzTXtCommentxs.JM,IMQ(,PHUp HT0200VJ.MRPMLVW.IK- AڞIENDB`pychess-0.12.2/flags/gi.png0000755000175000017470000000261712641567764016004 0ustar tamasusers00000000000000PNG  IHDRbKGDC pHYs   vpAgxLIDATX]L[e8,0[!1..få4.Qt7yCMqDtf&s⌉7jM(9>"e`םB9=NjwB[4y<}<X*V,TUUUu~YG4Ml{e)哅۶7=((2PV. Fhsb# '6S-`? q嫗y+$:8b3zZiͪӱX8ľǜZgvn\+XmSN}C  p玘AZs-])x ࠲Wy2(ykWb`O3?|x-d';y2,522:kچoYX!M(dC"0g[T|9 ʛA#TEAn}o۶uk{>ѐRo KRT "H$YNÇwrnNȱ{|>cba.-R~JY^_>hTۤŅ䃼\}BH/*/ mLW|GzTXtCommentxs.JM,IMQ(,PHUp HT0200VJ.MRPMLVW.IK- AڞIENDB`pychess-0.12.2/flags/ad.png0000755000175000017470000000256612641567764015774 0ustar tamasusers00000000000000PNG  IHDRbKGDC pHYs   vpAgxLIDATXVMlEfYoRM KUA$H)J*["ɑ"Pr8HTrU@\*[lj &bg.X-yog8!Dpq84چ<73?3n^~!ٻx<b13VUUe`{ 9a Cv565[Q`+Pj&b:m'ٷ^:ϫeJ˿Qr|;Wz"bX_:1MnӀ75]Ց@B7bgТ} X?/n5H6̅IcҨ,8N 5p?vGh_'_-cs_l2up@RЂ4x"hPa^6Q+y}h 9^7~VqO] Eї_ X0<<nIڃfq)^46amw 58a`g!U-Ln`@7x}뺮6i2]|H^ w6׀U8g_w? piuwBzz$IڙbqP> 1i8XR6iSk ؟׺Q< _.Ԩj|>g%(@gsX}OCl+գ3VaVv*6h3M4McpGJI^YYYY]uAAU D" ?縙Bj{l 53AZ~L&P( UQ<9t-} x< B<6eR^6g|cʼnدC2{a`7B>q]OUW NWGzTXtCommentxs.JM,IMQ(,PHUp HT0200VJ.MRPMLVW.IK- AڞIENDB`pychess-0.12.2/flags/sk.png0000755000175000017470000000257612641567764016026 0ustar tamasusers00000000000000PNG  IHDRbKGDC pHYs   vpAgxLIDATXVmh[U~νmfd[  ֭"~P)LT &X;'*Z† t\9pؙā-4K#Ko|&M-y9}y<l`X p0k*kS*(~lxMcBB#de` p$~tY[=BG;Me6o_?<;p{,Ho@KSlߛ[;'._C6zf>ﮮՏܻ7?5i<UO5u}/%+zui>fߚ~,M` c?[y<Ӡxm`zp|t4l8t5r?n> X^ y'k^읛[3M4M3A o%zOA, Ąpk 5|;ɬ@ij-N#{VG"ؑvrpoBeY&'^7/H;tz^/$ u6{w9Q`jDaDQ1 c'n6MfjZVanNQEX2x2=S}[TtiJ);e2;ǢpNhں1ZE(TUUUg ,#4dZ=glL$I$IvCf'6x\n<[' pϚVPKiQ[FѸiSKK(G"NrIr\ ܙ™`/t:eYed2L&fl6 b:6ݵkp8DJKEQ%31,yyn{;[R"MM GU^e̮? nvvn%D"Hp8jP!pip RHj֋Fh|>_ r4}IIf:bX,| _Y,r[s_䊋s^bkq)~s>_ ^bH$@ox!YGzTXtCommentxs.JM,IMQ(,PHUp HT0200VJ.MRPMLVW.IK- AڞIENDB`pychess-0.12.2/flags/tj.png0000755000175000017470000000233712641567764016021 0ustar tamasusers00000000000000PNG  IHDRbKGDC pHYs   vpAgxLIDATXV?lUrV s5AHd!mY@`"%`T@0Ub`*rQP#rږ&9]|91smĒ}p#ၐ$Is\}YeYLvxz1 ?jZVOh4,˲H߯c=H$Duvt4l?2iS_?mw'S}kgrVju H1^1r\2ve#xV%xW/4Wqp@Ǐo, U4/ʩ.KL`&&P >ecoX{'T0{QTQk?:m2G!w`,9w pm"%Q]|Goγ ;ŗ=x/jC'yyѨ$2c7N~{ەi 6xC>'쟥Mň:xxl;Ʀ5Mƶ 0Sҕj$HȲ,ǵ/ Uz:蛳E JRhV3MTn(pW{'p'ճ?r0tN:;׭^'&|p]u]NMOkڙ3Ţ)(,onnn@RT*!;w31Z^ ֥t:M /tNԞX,_Z Z[[___uEu]u\.ewmt#$*ii@<@&d2@7?ϽߺNGGM4M3pL*H|XP'…x&r4㺆a!I2·BP( @6f8HR.rgK 4T^6h?۶mJRTt^339߾=d2L&O>B/1WG鷕x$t_vh ?*=t0^0qAPq#"UtGzTXtCommentxs.JM,IMQ(,PHUp HT0200VJ.MRPMLVW.IK- AڞIENDB`pychess-0.12.2/flags/bb.png0000755000175000017470000000274312641567764015770 0ustar tamasusers00000000000000PNG  IHDRbKGDC pHYs   vpAgxLIDATX]lUwflmt٢|m-[hB є4(Ԋ1JM&Fcym"L̂ v7K[BPma:,n{s3(e4\K1M's7 _,&BXfQ9*0:j`QL8M$ht|hlu"F/8RV$K7S,Ay)̺aQX(*Ӌ_c>`D`Y -$a2yKh<ϯM;׵+;@/1q8I$ l6Bny9+`mt8nWUU&j郆C|GgH?F(I~Ri-4,wl.wU}[-8NxhA:([ GFhn7YRB&nB F"t{bVn~st:N2bP(R eenm]]]]݆avtw~&aKfsM?s555555iiΊ 3ѱH*uϯD-@ ~H$̉l^ 1q,Kkp8n .rA}}}}}=Rכ֯]^[Yys<'`0FhưYk"ZªDv",>8 BX%3܉_耆t:(MMMMMMBdj KZ rK&dp8o)57_{ה7oւx< ڿ?k@m-k^d7ݒsm>\.;փ90kXrdXυtzvzѹ%xfGzTXtCommentxs.JM,IMQ(,PHUp HT0200VJ.MRPMLVW.IK- AڞIENDB`pychess-0.12.2/flags/ie.png0000755000175000017470000000241412641567764015775 0ustar tamasusers00000000000000PNG  IHDRbKGDC pHYs   vpAgxLDIDATXV_h[U{MmS*>[[$fV'1M":Z e>HJE*& tmo{o\,I^~~;߿s 'x"AU2M,QEQ9sFj?4w2ϯn 4P蔥x \>xM2U]~EQsEYv\.A$V>s @ttϭeoc sy yowx@ZM*7 Лe}n]>^gd@ ]UUUIb6Kǡg,vvbX,#$GYwe=a.y<BP(dYi{~*JmmUGP~E|yuuuumRI$I5 fYM29W^m`|}?;/ A4M4 K@Jǽ9:ino/...8d2 `l"W+`Z˲,2((z@8@T,g0dhhhԩ t] ޽D"H$UUUUgv+aO6 kLRTJxȳB2L&@$D"@G\.˂F(!h$oyBZ BPt:>hbO7_olׂN&'mf[9w慽w6П0 Z̷B|<9ukH:uGzTXtCommentxs.JM,IMQ(,PHUp HT0200VJ.MRPMLVW.IK- AڞIENDB`pychess-0.12.2/flags/sr.png0000755000175000017470000000234212641567764016024 0ustar tamasusers00000000000000PNG  IHDRbKGDC pHYs   vpAgxLIDATXV]h[e~sS.햭p2X#bz!P2n6:/腈HnEw#~uE$7  I֝iғs7?'KQs=~;p$I%2MmYeYLzݸexc1Fy.`k+bT*Hݫvcdoۖx^k\:< Tnӧ'g,w&9jZ֮קxg?<3ݻjX0%vTD|Dɝ"oN|lkVxõ_[F,{{{FT.-ZE |?gc`/UNq 3g;D)#>n7psp[c ~zsE(q=Rb{{,˲,$Yf <> 6hr{=7W,z"H$ÆapL:Hrzp6i-d~1M]u]$2OB2L&@$D"PZVF(c$tw15ۨW.2d2L9_/n }{wP@ n>B++C.gm%r>'& &n?ouF>P<GzTXtCommentxs.JM,IMQ(,PHUp HT0200VJ.MRPMLVW.IK- AڞIENDB`pychess-0.12.2/flags/cl.png0000755000175000017470000000250712641567764016001 0ustar tamasusers00000000000000PNG  IHDRbKGDC pHYs   vpAgxLIDATX_h[U?4Mlkx*ڂ0}pmncs("u+2LALm0:t.fnr4LJitihQ|w~\X2qSa޽jj-iizRՓ=O !: pj.rW;NP(h= 5`! D"UڦZ{_WLN6|q& `%y ȣ<%_ɕmͯ/n5ۃKg}?yi?\VT*|\?w᱁AÕW/gx-7w /2VOc[<[rXqʇU{*Gisfjo"'  ޞge*w$:/-. G߁#=cgW@>aLFp5cLO+B)w_/Yf*Qxs7.pM?WQDž!g;ٷEk]y絶i NFyq#Bi$Oݽ@ `]gt?ݲ,…T*[6 `0~4M+|ɾ^zsNGHӀT oIWr CAwwwwwwkԔm۶߯nRN\yvc]g!N rޗR];9U kw]u].&jnY;vy9>>>>6l6͂!TjY݀´_g/b1]P5f B+WS(81<<>'[GFFB!8w ^N/:7ti DG.z1m&z25)P;hi< rG>M$Db, !"'֟#=75 6A.kǯ+yg@XTD0-YS".m:2)̒ex^߅m z7׬[ hZ3F6Vq OٰdK~g<[<mBޤݿi3\|K/<,G.vt/wI[ ֭]` Wkj`WVZ捁6Xi[o5 iN:v:'g{?rMO{ /@ )0࣌2͔R ]ρkOj|5,,ĺd:y'`YeYEEB@cO|$>i C%=6_]n;N7?))c _WWWWWWP#++eGGU+Mt.Ych$b^ax^ @ iY0pjT+Lgr<񱱱 dNQUUUv͑H$bWvtttttBP( *nDUAO Pz'u~߯ij$/\rbX,ӴF!{S!?Tk(Vj֋Fht^'&$ 7v*N <]T$Y*I/қKWS &MO$wXPφXl~~Hd.شGzTXtCommentxs.JM,IMQ(,PHUp HT0200VJ.MRPMLVW.IK- AڞIENDB`pychess-0.12.2/flags/pn.png0000755000175000017470000000313112641567764016012 0ustar tamasusers00000000000000PNG  IHDRbKGDC pHYs   vpAgxLIDATX{lSU?Y;2bQ !%d h jb4"q-/S dXkwq9vtE| pPEQ띖a8mVUUUU:7~x嬗J !RDs;pT"H$t&H;m+ZBmYa8Vk OJ&!C_\5z>l-p޹_jU_ٌGV = E@tx0 cYbe=z p222biMN 6 :ܰym莃[!q_] e ?gн8Vhnp?rxRȦw=F/ʜY~{q^ہ32}xv/[S;(Jpx⥡-~d&=ڐU  | !/~Ȯ>9YuԲCӽ/YDwneMk {%3ّa8%m`0#0XP=O _p7Xb(蘢O;5Xw(l-<v ? u0j5{WhQjA}ϕަ>{ɜ+f|50a/e'KYP1<\JReYeUT( #gL pUv:G0_$.^jH ܍fƦYiZ- ϯ/~=t;8{`-_SFul ȎOyyyh* ~G|.xBe~`#;(&1}L=`O1P" ܨ4- B= wiO瀢8bx8L&5QMp@ wyp;x;n(څd|&.c9 gxy*۶0 0d{^SVuvvvvuYijwwwwWsCh;%x:qP( IdZ'ЩTOO4rԖM~睩T:lkZ88d2΍l0p!g6Y}x<뺮~?466666B.7:::~[ht:dvD"HN&d0e=ULB9ۑ+S8FѨȔ9+Jkkkkkŵ)Q^ 4$ˀ*flbX,ϡ&7moU[ؘý;C0 rzɢ a*Ut_.y'M6O"!IRlsX!#?~=Z?=ZK<|d~XuTgP&8얟W;?5p&>Dټ(l}G,W_>̍*^fEΜIRTjQ$3໮u ]˯=9N랱vtO.x |;% 8[ZVa}s?4.u3k1Svu[5g 86.c ?_rN;(śkaÓ^< z{۲O9`ý_..L&o;'¢ lMύLK71 eIڦ4WCNMí`De+`/WZ3{ 0c$ -bY0 mJ%olKg}}f{o˒ݿGKO׫/@_miW.|tew_~ق<4a[N6ؿ?^ =߬+:z{S(@u]m6YVIeL֗ÔC]7P5;ꜰeaU~b9dd{G?ޥiAؽH~3\xugSZI*)QUU0a VkNNN,[,(yC?sٵ<8`qT咩y38UyU׾8+85zڭow/4_veV=pǂOSՁ*07CyyyyyD"27Lwj5qn[:;;;J]΅B0X,F pxHrҥ----nX,~k+BP(<[)Xpz8y޼'}r\.4M4Lt4jH[v>qGX#_ υhH&f_.Q+#FGzTXtCommentxs.JM,IMQ(,PHUp HT0200VJ.MRPMLVW.IK- AڞIENDB`pychess-0.12.2/flags/na.png0000755000175000017470000000311012641567764015770 0ustar tamasusers00000000000000PNG  IHDRbKGDC pHYs   vpAgxLIDATXmlSUޭkgIoC4 +CQ#QY0 q!&_CCԈ|U#eهEE$DhC bۚؕ{p{(9 ϗ=/sυ8Y|j iiyvƛ^*((RǙPΞx<_xa:m!Bg;6E4.ƛ?+VcPW뀍lTnss* .A)wz~JUWA~QN=Ȃ/6ڑ'FFFFFF7NbFfjj[ ]]ZȮ̮,FFIBd{A}Tjzǭ;XZwJ?ݿ/F8|/<C}pUU'8O>8-o'R˶po]IgGK] ?5 m) V5G^.hKcb ayYQ+8pǁ? Kv).u /o`N{аj>UÕa/7/m(l~Luwa(8I˃.ȋðOL C/И< l ruTUUۮj<:o>cI{xPoK7EN4M4NU4ElQ{|7ow>Q+?Gڟj:_I % _;%Vn5 c&#:T[Qu]+*~5L@vCUm6M4X8ˁaR@_cVZR9~kSOC:$_ bSn9̂RhTUz^t&f%)koTB@@ !.߱]#j!D5|>/Fz}Ϟ?0`6fi @,b`ݐ,(/-YW:Z8U& {VS)ir\IMiޱcǎ`f `h4ðndpɅehvn]u]耡l69Ӛ}~iڴt:6-[zzzzzzD"(N,++oDYA/m+NB9=62N>ᰪ-܅WBP~\.T5E)X !Yd,^&d2D"),Zez[|Dgx<GSe?yim\Vr_K|ƛ'O'7DƂK>tʏ\nbq(x>θGzTXtCommentxs.JM,IMQ(,PHUp HT0200VJ.MRPMLVW.IK- AڞIENDB`pychess-0.12.2/flags/bh.png0000755000175000017470000000204512641567764015771 0ustar tamasusers00000000000000PNG  IHDRbKGDC pHYs   vpAgxL]IDATXV=o@~FPFLmj9RS%Rvc]3@Tԭk̔)NFJo &-pw{~< np-8gu%I$f3Eq}cϟ^ݽkYm4?Wbvu5l_ 2ELυCd;pv`5u]u)J$B664mgl6[-ϓeYeI::::jnvB(&/@ /yJ,77Ec]J[t:}v[mppppPrVjaa-^dq4097VEQ@4MӀL&dRT*#!z˲,^U4M 6ҋHxQP'…x&fB8뺮S/Bh4@\.p8WjXX(4 QR;qqNt|)xoo|y)dl6} TJ0m%^ aq:#}z=uդntO?U>|]<חRGzTXtCommentxs.JM,IMQ(,PHUp HT0200VJ.MRPMLVW.IK- AڞIENDB`pychess-0.12.2/flags/kw.png0000755000175000017470000000221712641567764016022 0ustar tamasusers00000000000000PNG  IHDRbKGDC pHYs   vpAgxLIDATXVMhGfZXע,QB*^BI.Mq{sz )H9P#Ӟ is齅 r(-6XxVciRV;=̾ڲ{wv̛y{Np I$IqCG9eYeϴn8`1(a zUͦeYq ȟs"H$qa Omצ |Og >-fcQ{K9[_QNtƘvp~}߄=%4_)> {p}I6ѣ$gN;w8P^OXƹ>9Jl^uooO&PhpFy"x:hYx?! ŕdٙp3) 4O4WBUB8b]\X4M-T`0$EeY~4Os3~ڱ$6H$4MEPU{ߋ-퍟^!OROu]W[þ s9qq(J` A4bX,\WQEQd\.K%Vj5@{M9]?]u]he4*n4 0Z-FʇBЩS׮5ͦe=|)J.r@ZVeYf70:[j~XUUUUM4Mp8RT*ZϞx<_Zxl6-|>4MnLҋH }p<)BP<\D8aaHL_( Bd2Ljv[l6el7 @ALj5l۶mT*Jg7ǫWxV!bh[X13#~[ދyI]Ft{xF'LJ_j.˜g.GzTXtCommentxs.JM,IMQ(,PHUp HT0200VJ.MRPMLVW.IK- AڞIENDB`pychess-0.12.2/flags/ke.png0000755000175000017470000000303312641567764015775 0ustar tamasusers00000000000000PNG  IHDRbKGDC pHYs   vpAgxLSIDATXmlSUqΎds,’q! ơј@b &qj&&LE|@ a]pQIM&][{pwV޲E<=OS5L@shCv\$kd8vkhl!;n{ݪ]`Odp0NvS T,l+F'`ޞy{-V '͓&lˇӷwwnaYap@)B|Zx?{.. ?_^^P5< hhh 8MF86y<վ˟[[k={ O.nYr.\ϔSˋ?.xyvgi;AǽV 9O0@ƉNj.hd#iǩSP(HLX2t:ssss50t]סgmhspK\ Wh#F8$_ޓx>$%=Ji/aaxDڗ+G A "H0y3s |ǫn)ΰRxftrW1~ %lH͡qN_RT*Rơe#0M+,0 `z{{{{{~!/ ( P2oթeY!EQny<O^޽ EGuttt~?@,f$B~t:`iz^/466666B"ǎEn5Fc@ ̉D"H$zU>{=SId7Bsi!˖ 8T( BFf˙'_|>烜d2L&5Yln*LJLD C8b[65*+PQQQQQVݶTJdR+9S)SFti!AJ>S!_Y__՝R:$GzTXtCommentxs.JM,IMQ(,PHUp HT0200VJ.MRPMLVW.IK- AڞIENDB`pychess-0.12.2/flags/eh.png0000755000175000017470000000263612641567764016002 0ustar tamasusers00000000000000PNG  IHDRbKGDC pHYs   vpAgxLIDATX]lUw҅-tM`FZb 6!%K5.jDy@& ~[A[Aö lvW3>~lݴj|=sι,` i$W\۶뺮[R哅-K !*Fҥx"H(=mր߶- *+++++3-.ε/*o`4?XWRo.Ϸ>\tp6f  T' }r8?Kom&Q PV6xE5G^^R+2Ϻ?sBzOWP|ⷊJֵ([-)!1 ,a\o 6ᕻ+CpW 8â ]PtBXpk"y04$9ddž5I܆}-F_/A~}RMKvo@꓿D.B%Gжd]C۽[?(%@X2(;P`/7/`ppXeYۭi.#% ·o='쭆ĩlzD;'>N ڈ,oqSl†կ@Ƴ0 ƍp8[2t:].K]uuc$^2jvl`}z, ^np5gK>WԸ̭q:A4MCZPJ\~Ήdmkw5=mVO\Vd&B,2۶A&d2*U *aTU͡P(iYpzWWWWg'!''(Vrr&r>~eY]-)*sx/޺5'[[[[A# ADBpO$6Dt:N0 0 z^|>烑T*jhѯ]klĹsmmmmmmŦi9XuV݈J/$rZȦMB' pXȤ":::::: (JtZZZZZZZB>}>(j(jK&d"H$d'Es~ۯj)GGysjjjjjjT H :4~R*Ys_KWrS~Di|HS VrTB:=7= 7&rGzTXtCommentxs.JM,IMQ(,PHUp HT0200VJ.MRPMLVW.IK- AڞIENDB`pychess-0.12.2/flags/cc.png0000755000175000017470000000314112641567764015763 0ustar tamasusers00000000000000PNG  IHDRbKGDC pHYs   vpAgxLIDATXVmlSU~mwuat_ "8 È%sNVYVc1 %A0( d -бr~㏻قx}O9>sι<<qWSzj4F(S[6/M^QxD!<&L]z^oNN  l(MBzJ0L&IQ6q>jáD~lvnۀx4wz}~9 5v cgfɹ1,pַW|9_#rnx:jGFFx<_Qy#b]әKrz|WW@VݼA`ޛמjn]lٗ'͢ˋn񣌋7QPuLpu[-~x!Pz,LڗG(e*]X6g /޸}57 i3,+8 D:̑mU,V/p}C} ,=x`uf(ULgWp{ "m7j))7.zN ;g _lo Ph+l8 77 k.xFfK;pe\v- ;0m0.]vz ' nk@W+y 0LhSniiiii(tHdR,q^U`u{u;EB6MQi ΍kE+j'>R Ȳ,2˄dlXNGQt:Nhz{{{{zxىKr|]z5JVYX-Iw\.W$2M$)Ojiiiu:nہ T_dvYb,0Yx*_Al6h4jZH$+*o$%%%%ūW@0p8V+(3fًdL:HB*Yv\.XT;D/tvvvvv6f|4F@H6'dRK/ B!|޽s$I$].V-֜˲,˲ tw^g1(` lojZ69hi>p>(cϹH$ض3Ύa׾5\ANrX W8v}DwWfZ{}.&U4H}OsLMsn&&ܗ?% YϡClޅn/l~\o1$E/3靧{sZ)qH`oO`(@N"OJhwlR,[ݡ 88N0(I<LmCuff&Ns1MGg`jJ4ԩ-]蠪$),2pwşw'bb{s~sm۶)"K4mjJ BXtEQERT*jZVqC8䂘G!8~\d2L&FEujnoBЙ3׮덆i޿*J6f@RT*iY 95VUUUU@4MӀp8T*JfټrEX`/6ir\.7>naa,݈AGU›<cۺ.IT2!GB>@:NXjZd2 c$j ~ϲ,˲r\. !ow yx(ZbX-tfwv0($$Gm>SSHD$2Vk}{#?98'#GzTXtCommentxs.JM,IMQ(,PHUp HT0200VJ.MRPMLVW.IK- AڞIENDB`pychess-0.12.2/flags/sn.png0000755000175000017470000000240312641567764016016 0ustar tamasusers00000000000000PNG  IHDRbKGDC pHYs   vpAgxL;IDATX;l[U:Q 1j,, U$e@Bf`eBH1b"RQ%. Hxt vC"iƏعvl7Q_gr~G;wdpahm%cjͮI71^oξ˵8&y!.yiG{vhldE*JRiMB`Ґ$5>\,Y`#Zڕ^0,[eZzwv޼yfcy0AA0ZqIϫT88ٱ\{׋bXSUM4&Blkp[Oil=6\[+p?7A!0;5;_~qx f*۳@ z^׻tNgh7#$Bm@B#B8H=gxBL\8uvn:7Q?^U 䁛_ srr0 0 f s®@^Yd2EEQEAfEP(  ϸ1+Ik]zz. Ah+VJt:ǥKjڣGxb1kMVV`Uu:ZVU =J#7^>motl _߽TlSf{ދbZ|l]}EÌ|'zwrE>DavkwGzTXtCommentxs.JM,IMQ(,PHUp HT0200VJ.MRPMLVW.IK- AڞIENDB`pychess-0.12.2/flags/sb.png0000755000175000017470000000310112641567764015776 0ustar tamasusers00000000000000PNG  IHDRbKGDC pHYs   vpAgxLyIDATX[lU3nKaR ]APK RR[%h45M|4"  J.w,R0V*ݚlwnp(ݶ4%_^9s_wKK-ӴBhie]xeTEQG(N  pxx>񪨀+Ve'q 3!l-+JVvVru| Wo_[ ť敂{{QӎwPؤYα?7EcíG| qqoqtP+5}m \gb7`{Gi{ ;vBړPz)ǖ6׼akSkʺoCо /[I_@X8q~ذ,˲2W4RTd ݃& :9999뚦iPZFc* jNV$'[aN0y3u6):pKmU>^bh4v {mkmO`V{C~#eS,{AeXB|0M4ML` 8 (*23,Ku]5ZZZZZZ~!s(/Jw^|OrY\lSJ霶\.kȹs;;Dbݺ_~P( _dp&vڇj;N aPYYYYY ]]]]Sث;LPVĎ@ deEh4ڻ|e=};YOD[c`0 2/> |>8RT*Rժ*EԦ` !Yd0 /L&Ihnnnnn>oM˗+nm?x8 Np Am646TEQu=3u8~]gE"Bc?HB`0 ϝFUUU(͔̳AO$Ii̚ސUE~+_/@jQBj:P]rzSyz@_ q~3މ5wk"f"Ok"D"H/K<$ 6 4C&Z=K?*Gn`d[72 ((FIAu& ؋ˀu^Gں={/'^&_W0k_!3t3̻W#KB,"`{< LvzEC梍'"=~35N@:C:PNP0vuDZ0n|ni9?fҾ]u]QϚ<},?-?%.TK6V "//VE12"Iu}M&j_____!KKKK [KnU}'rG bFH$r<ʾ nC eajjjuh4Eqzzz@ X ss KI4M4,.fDv͛H4ϟ\Fr\#'+TR&d2,˲ XV vlmmnnnVV''IyyyyYٕ+h4^n۝((ɃyfyGq+@ |>'dQt:Nb MttNj~ߵѽ{(.f3; 6fs`jmy̜ǘmlH+>/9~@|o$? lŎfR; /%ܽhiGzTXtCommentxs.JM,IMQ(,PHUp HT0200VJ.MRPMLVW.IK- AڞIENDB`pychess-0.12.2/flags/mh.png0000755000175000017470000000314412641567764016005 0ustar tamasusers00000000000000PNG  IHDRbKGDC pHYs   vpAgxLIDATXileL;BɖR-@*H0XPBBTjAZ` z 1!!ĨC,"mH-TVؒ=E:.3~-mS /yy \U\e!I$Iee(7dž!˲,˺?[y !!#H$_7CNNNNNN>lTYo1ŘB#u16"zB\g| H 1Rd2^0[{GW} 0+ՕH$Do@3l{uuPxW*h6#'i@OyD&ǁLI@[|"[퐙أ'ƄA0u%2&lv.I"˲ ;5<guvGn$^v3Z#gWa\rwͽ&>,I@=M|c!Wx9nvgd9(Dwf3쬮5Ȥ*{rqz0aMӴQ ttp:ss ^]WEQYnjjjz! B!0; dû40k]zBxܚ9ahMtA[1|xqÑȎ5555x<`0 B$bvdr'NVD}flt:N'dgggggCyyyyy9twww;&'O3'#}jkkkkkUUUU5Y#Z+UDX\N<|>$Y%3P_____b$UUUUUU M }% %΋Fh@ hI&Ykϝ3y;\.e퓄)U.\bӜajqZJH+n}e@X@gԎ|_~$ְ*GzTXtCommentxs.JM,IMQ(,PHUp HT0200VJ.MRPMLVW.IK- AڞIENDB`pychess-0.12.2/flags/lt.png0000755000175000017470000000211412641567764016014 0ustar tamasusers00000000000000PNG  IHDRbKGDC pHYs   vpAgxLIDATXVMhAf7n0+A4lBFwAA^ wj.=XwoDZI"[4qa|t$&ͼ7; la [ pY;((v{Kql|U*1ձ=%M4M4 4Mk@;mH$Xx_ u`;=n߯YYi4Fcc\>@`Fxp 3Gn;ر=@v=c;Y]peƞ}=1 S+pc(uHOP^%`m`&rl۶m;Qd 8r 8^ߓ: X\BˢQEQϟUUUk(P@@$IE(0n<$MP;/+paԡ3/ݱJ:';eYEkD21mK$I( @\.! mn@31uܼD"H$EFW*$5mBOW*assss$e2L&JR&v ;eYePEQ a L&IV[]]]FFFF3 0/l6u]uݝ:K7"uq6YOd|qX m/r\.RT*z^t:Nj $ ԐVR^ZV@X,MqLNr;5o5<_~ X,<.nX; rKd}+.zOWQ^y46i=V0ٍAz;?ད@rgkGzTXtCommentxs.JM,IMQ(,PHUp HT0200VJ.MRPMLVW.IK- AڞIENDB`pychess-0.12.2/flags/nu.png0000755000175000017470000000255212641567764016025 0ustar tamasusers00000000000000PNG  IHDRbKGDC pHYs   vpAgxLIDATXVMlEvެ4jn Ώ IE,AhA nAPT5J@17H@#P[D66T8lGn.abrvμy{,`S,˲cd(diq[[:OV[dTaahlM`i)H$ -d2M۪[t:BFc|C˒=yfuK|NLc@̐|`>ο Px H#tEs#bX,nWÐ: ?.Mf|ە̧_}6Wojע}u/.,l]CGo| ``7ج<2mC/Cvk@8lYq@y;=7Z@e- p!ߗ,dHVUn54e9|yQ7-}S2_|)mH`l.벐wЋZ 蟨*ZY!Zr;:_z_6 h5_Tz( H+ri`w~@>aVIݞPUUUUe9ar]#I :4{$V2{3x֚8ô(F"H.KNdbY8`y@>+ oǕ*9|[[,KvK2)I&h;/=Qԑ#C%UIs vͮiv@QEQh&@ k(Cᰪ<<̄@<!$ S[^rbt]zOix<A JQ)ijZMLܹ@@ bX,2r#]Jn\z  (8x^ rl6{>5tw t&3> (I$IFvA;QYz" D"H$²en? P( >|>Y~&_T҂I~,˲ Dh4Z6'ƿb bjr\.SЩSk-bo+R\=]W-N"A֚wڍA+_ |m~F$WO8GzTXtCommentxs.JM,IMQ(,PHUp HT0200VJ.MRPMLVW.IK- AڞIENDB`pychess-0.12.2/flags/gp.png0000755000175000017470000000232012641567764016002 0ustar tamasusers00000000000000PNG  IHDRbKGDC pHYs   vpAgxLIDATXoE?v TdmD$P"r@$$VS!UPsd!q=6Rm]Tے^zdbǩclqv߾yo3}4MӴSmwu]u۪^xǑU*B!c7r\>rZ,R~ݫ{ !xupضwd;/ݻ '2E~K>"ZV;!d`o_~J@|zD^W|R`z}Xh=$O0|j7Wwv1 וZy_7=8 _[I(X_TH Q}lnJ 6{L734pknq'4]rǗ O ,W\'y sG'xbl0 7|I@|~߯i^:\ZzY0|@sk ?:0E'Fh40Mze9{WvRΕ^pG m۶*Q&ph 16f++++z^r*JRPlg:qaP( A<hԔ~횘8vĉjZ˗3L&1M4vbYu#*P+UN"33B Ƕ|>4d_l6f!H$ 4fid2L ѭM^^PPV5Wj B'Ҟ;p5>.޺5hH$DT67tҪVe=]'|we/Oi'^P簲wBu}#?I!NAGzTXtCommentxs.JM,IMQ(,PHUp HT0200VJ.MRPMLVW.IK- AڞIENDB`pychess-0.12.2/flags/cn.png0000755000175000017470000000223212641567764015776 0ustar tamasusers00000000000000PNG  IHDRbKGDC pHYs   vpAgxLIDATXVOh#Uv:)JDÔllEJ֞Y'''mxÇY*VhWOL;?t7h3] @G⿖ǪWk ݭzevNuӭ@>]!;/7o \));/ğw-X,nEpƵ+3"~d24=qz'N缮w{@/K+R+G^ݝ&R>Ӏ)唔nfg-keessssk+4M4MUr\.!`t~azO/JR)WjugǶm^oV4NO?_]iZ.r@T*Jэ7 w*@ۇu]u,˲, b1 Ni^?888X\76뺮筭|>?9889|#r D8h j߷m۶mE/BP( @&d2Dh4f٬d3'_ {_Vj@X,].^$|+'><$uD"H$x.] ]A̿"\ycaT*vU PчW+8pKfNy Ñ#ћћX>V~^)ͣ}-//ܞ=u6(Gx !o qxylǖ phX . Xzd}ihzrVZNZqeEppnAshH[[{{cg:u\\ m۶Uu620M{=A~.~xa0^{`{Yt|n?ʫWNӳEu}Ϟ/%nw]]]j E >ΎN:XUm `ay9L&5M|J {.oa]`<'\纜sٹ 8i˲,˒6@zK<bmki5999<qD!Ro ~b_( Bi&JMMar?x?3nB>@ؽ4xc߫7ᳯ_:OA0Kykpo2Wy81s_&lT`JfsΟOaUg= |ƹPn b'p0JΉ/o[GGjYtćYȌ&^~6sNçN?~2KZZV7ױ@nI z<{ɩ>}gw?]ɷ*σ!b~'jHXMVuvwllm۶]]i.\1 0k7ᗿ>qx-ZW{I9/? S %>uZZ۪lE}Q*.^مO7O<6i:٠?˕yXGzTXtCommentxs.JM,IMQ(,PHUp HT0200VJ.MRPMLVW.IK- AڞIENDB`pychess-0.12.2/flags/st.png0000755000175000017470000000264212641567764016031 0ustar tamasusers00000000000000PNG  IHDRbKGDC pHYs   vpAgxLIDATX_lSU?ޭBhw:X5qYL|Pds>h M|@'hDx-QE @ߐ(&D$A#Hu XBtK(BۤA^Nݺu/>=s~~{΅9aSB4MӶn#Ӕcu]u˚^ud9{˒%B!c2FFbX,[ LR)0lim۲4x}E9p= +QwFXOr #KANq?(ݱwAV\.&W2Ih ~ Kb}p/'W7#վ.蘪.3&0z>= ȹozWw[۟nXhTJ}} ^adHO ضe!X%55dvlvf3}i'w.\?pw}Z}&5hIlp.Nt|$pA; 9yv]E:Psφ ,p0s8FGgL,˲\.Mu!0t|Ǟy `x]e%(fhA- ~>ʳէ,|@hۻt@ӄЄ3 èy3 2BZ]uYpW?u٠.q내ԟ`?nw~^!h|pu׸k4.>\x4ڶL4MSELB0:hoAr8Cׇ!FQ7 m+9>)b{OEP+e Jzvkj6mJ$Tԩ@@"H$TJ.6.T@X_nt:N'ax<Ɍ57Kq͚kd2x2cYu# *}xP(Ng"6!4CP(4U2)g>l6f5~!{STk(RN4p8<1#TUUUuѲ,vM4MVΫdkm/REQG9 \H$ĢEt&~ǩF@Pql,KՕwpddt4J`!v>Ё^9p(^xݾPe'\^( B (o "HaXu4G|;à| d8-z|PÕRz G@uÍortaŴ¡_`1 "`f-Lcv 8ΤCaO[߅߃!9,l9\U ν` |QiƄ~*XA$!u r.`]6 ;  ! 8/(~DE*"ul۶mSUMSD P`#G1E` mu D=#peh3-~vj (JsalVYDzUU5M@ Xa- u,} /`~ .zxff8`0 |ɤi\,=}/xQg0 .X \1qNRSStg w̜;bgeY%# P0fض߶u]u]axxxxx 9աXک%Y\W^)kkkkkk ș--Tjp0rIm~}}{{*Ng2ǎB B A&#^dqIDz]Zmx0 0:::::: ߰A*knڔNәp8ՙifqcɬ|%=WJ!㙞Ȗ-ebX,d= H$@WWWWW|>WnE)զDJҐVRIjel6 x<O'̞=8psji a/]@ },y |>aoT\r\ڹOO"!&T饛yK[>ZgQyJjIe3ޔGzTXtCommentxs.JM,IMQ(,PHUp HT0200VJ.MRPMLVW.IK- AڞIENDB`pychess-0.12.2/flags/gh.png0000755000175000017470000000271212641567764015777 0ustar tamasusers00000000000000PNG  IHDRbKGDC pHYs   vpAgxLIDATX]lUwݖ\L@RqhĨ|41jT$(Ć -m4 9p`II7ޮ tQ| `?`qՓXE@ŇzOȧf>p++~|`|:Y88^apqV!hY}&<)Z=@<"6!vFԤy/5yD`.<[,_:!-˲7p8me  [` (hP @:\\Q)Y2&@J elc qKEO:qxr{Wm^̭X>'\)iU\бcOj)UL&dt&Ph(,ܲ6ovrL@ݐ7r|>9j]U M1n,\XSH$}Xkkkk0r`0h4mY\bz3=˲,RkUQYYYYQaC2LP( x< ;oDA_zL,d&Ʉp8lzdJ= t:NFSSSSSԘJ?45 j3744444H$Sb%~J z{g!'EC^U˂"\s%)N,Ɔ4ZN?NN7/B!Ts!&p^"H$ T:N8m/Ԁ !Tm[477777r2ZWW~Y ޽4o~m_~ش}[{{Û}a}N;r"|>?w}B>@``jz{?LW0l.۰a44vOxˢ X1}`BL@ 7kgOGylh[|V;~ Ju{-\i;?<@ן<'_M%ͯ-po.9V4*}%*޲X`9'0Yk.f jt޺FSS .vkák_<p(6óp M 78^q >@GGGGG3>npy9r{@5`=YH>A# AtZ.\Dyr\.a466666055999)w~]_eK*JCCP( ՙifqcYu#x_+$Md6!Eh4ijd^p8el6iBkSR4U $jd2LbX,+Y'͡p&|>ORBG̼2)|BVeR+[T^} kfHT:}>Ր..7//JcGzTXtCommentxs.JM,IMQ(,PHUp HT0200VJ.MRPMLVW.IK- AڞIENDB`pychess-0.12.2/flags/pr.png0000755000175000017470000000272612641567764016027 0ustar tamasusers00000000000000PNG  IHDRbKGDC pHYs   vpAgxLIDATX]lUw;/Z[u[h BXЀ!A#X?V}A&b"b} Lx@ ~HeCnmӹ>Lo?nk/瞹sϽ,&i,K뺮=9yx*vB!TBL^@wP8+;5`!Ҷ!'''''Dz;?a]]wm-P?VÂB^R)}rء|ٚY!}-Hoн(@i`ۙB' ~ e_6 '>rCn  Ep_]ܹ#El5@EW낣y7VvpP^ _D"]Ʉff/á/L Ѳe,|႔wZX.|b8ӹNVf J\iߛZ7"HP208~ԼÕ<5&h0=TN_g{ 8tƫep;Fm`K}s<\ G<Vd< ȀX9o8, 2[m۶mh X]lz7 ] Mg<  "/`?V`p9(^f/d®Z;2/e^OPBnwbb[ -@M4ͤ$M3 ]u΃}>|l K7Bnv01soxZ#=VmO@ ` P;i<H` d*,OܶL)3e&XeYD0vݛ65777ضaazkkkkK ttttttsCm$GbuFJKKKKKUjf~>%mn ǎ{} @`4ꬺU=vJrnHH$Iȣn݊bX6LR)1`S`Ґ$o.ri9k*phx݋K_p)hI< åkK[qZzܹ̎r\_dZxIս7%?Dm82>8| ho¾C:9L[v~Xwqop,M[̬ݞ3zlK0:yTH0uci-p|dj}moüzW@?Jެ,mG.1M##Ak\>68hdឡv8 s\U ̫cAtMU:<\1]u]w8db$0g @ p%>-t -8ܖ^=XsV*I Յ+E?bfvYV5k>O]4}WIK0ozχrgŧqfu|^l k8x<(y""q&{SMuP?75YK)YD=o[bps1 4M4Md"ܣPՆU]OEQbh4F|!''h(LHr¯Lftttt 3zOԴt5d2J:ex<>XTVbp<]NBs7BP($ˢe~"~flV@ Bm /! aEAJIyt:NC8Ófn~hڱ1޸QivE jk+x ӊVNW|¯\XL|7Kw7=,l!*_le j 6XG&kGzTXtCommentxs.JM,IMQ(,PHUp HT0200VJ.MRPMLVW.IK- AڞIENDB`pychess-0.12.2/flags/co.png0000755000175000017470000000231112641567764015775 0ustar tamasusers00000000000000PNG  IHDRbKGDC pHYs   vpAgxLIDATXVMlEf&ެ+7`w#|p!R_C.HHA  7 {@*O z+p@B@ Ta! ũU$Ļ Φk%}o}}!qGRJ)w#`18ߪnW>rjBQuٟz\.ˣe۶ ~ iwpqZpmmc4ʹ߾仅k[$/烙 '庮{z DRiw@l(v}D_鬣[|G.`ﳏ_xk=.͝m_GBj˖.kO&O38a@w3 lnJ K[O[qiI:9~"goŋk[Ms9(e_W/ȧ1 +E.'0q ϴa ߿FW*P~RMc1ਗ਼V_?1y~w JP 9 /Տ@,b@bi2T;T<~m!1kY!ďɬN{.<)d8J6ZFv`ccqJ.ǹi1RT*,Pnlg:iiVU'{DΟ'R8HZB|0&j"[4hBٹ>Lol?|̽sν? ,biu2M{-뺮[R%[}B 1nE"H$RVrvn쥴,0M{w;͑h}|Ys8ȌB StOZ|J0G!p \L0Ko]z2zd2Lf^XaA6B]`s7l+mI,^7ñ_9Z}=2FޗF M]rsy'ҩNj0ϵA3=aaTWXe*[} )L#tuzf>^{ ɸ2mj>L#RNqr7[ ȣ!9NyB&9 x;!k|gX`n߶9XR B;8>ȼ^Ҕ] & G'W; R 8N\˲,**4]/ V{awϗӰmcu2h'p뗂E+6:v .+~:ĊBm/mBTVa䭀Rt=G\.]uc8cZ:مNUkpZdzH_C 8;/i.1i?sd++w!M?\FGhe-R(>vg-^nϮYSL2zϲ׀<"?_8D\/r\"%iD0K 'a~}oooo_e\.˥}}044444v?x%' Kɬ]}O֮^4D_éJJJJ7l;;;;C!+ B!xܞǝuL]Y*ܹovn7ax^ @ @*L&uu==fݺX,Ϝr:h42&ʠ]/PHccp8k*-nhnnnnnG:NӚ Tk.(j(2ݗH$ LӳΝlj̽z^O|>OMݻsDQ-oyK.^ɅO;'QOSEk Շt˿tAх%jFtCGzTXtCommentxs.JM,IMQ(,PHUp HT0200VJ.MRPMLVW.IK- AڞIENDB`pychess-0.12.2/flags/so.png0000755000175000017470000000222112641567764016015 0ustar tamasusers00000000000000PNG  IHDRbKGDC pHYs   vpAgxLIDATXVAhG}+WTAOʡ^ @rC9V T0Jr%JAjHvV֫F+ZdZz񻼝ϟ.qKL$I$ݻ'F-Ɯ˲,˲Lgb#kc1<NNFX\lM4IO+t7;m i08nsx|aOV{]p*{_Ggm`ޝ2=WgTn%>pd7qŹe n%`cݚXN(lm`? x(޼=/¶xK+8=j* ϖM&lΝ8Ò$˳@;ofڰZ_Rg:̃eMӴC]^32TP($EeYvH@|_F$)pIeK&d2n6 06! \?VܱەtNw|wG9F۶mۦHe,wдeM,QEQYT*^u@ 0/qt:M ʊ(tEt[H$rݻVm;; BjZxvVUUUU4M4 b1 d2vݍ }RvmϞb a*K/"U㋂vbh"o38뺮D[&W(JR flXeY$r\.xo^ xzNjZ z@[H$q!ZóC,`m%Ez6h&&*˚OȗQoCGzTXtCommentxs.JM,IMQ(,PHUp HT0200VJ.MRPMLVW.IK- AڞIENDB`pychess-0.12.2/flags/am.png0000755000175000017470000000207212641567764015775 0ustar tamasusers00000000000000PNG  IHDRbKGDC pHYs   vpAgxLrIDATXV1hazikF WY.5KRDBqht젋RG&NP5A!!*$ZswM9\ziR .w81  e㈢(mdJvm\f1(fvvJRTu0 +@;mP( Y{:mϟ^/{Ƴ7ȯ_ZV5u ;-.%\\p{97V ӗ>6pS}㜼 ks]p>ˌ.χ,zpn k'Κ 4?:#@`vMm۶~AEƀk5%={qw|w'| Ե) lmV*- ,|> H("p W[#:sh4F]M4I&w^=G/o}pT9i\{aeYEu(cc2=fmK$I(nnnnr@X,!I6yy/b1"@0/tLT@ )u0VVS)IJRT ( B0 ~#&Fpxֲ,˲ ((   8P_w`ON꺮Z:NinL*HzNx A$25X ˣ'+d2L&$D"Uj*d2L2MB+}+hNL4M|y.ma.r{"H$}\z~~[Iy p{G>ODO&$ &~TNV rDGzTXtCommentxs.JM,IMQ(,PHUp HT0200VJ.MRPMLVW.IK- AڞIENDB`pychess-0.12.2/flags/lc.png0000755000175000017470000000300012641567764015766 0ustar tamasusers00000000000000PNG  IHDRbKGDC pHYs   vpAgxL8IDATX[lTU}3L˔^RO` mjS_D5Xh4>QcH#Dї& D(ABL: FŪ\SN\陳}8-Li6ee/Z{,fqShiZM52 k,fl9U&S7MHD!P W}r`Y^Xd=<0킌>6d_ l(,u]3'˸;&:pX.^s >n`LP2O%h*{<Y(QûPw xm:q$\p8pX,FCK%nN@__CCCCC]]]]И"Ty=xtBnnnnn.TWWWWWKF"H^ޥK@ 3sG녅^Ujplmmmm VEXٱwc`j]z뜱uaaEEV#+Qmeeeeef]DX}}cccp~YY]nEL>c$}{Jp,~[MKRߕԺQMF2?A=3K,nhG=GzTXtCommentxs.JM,IMQ(,PHUp HT0200VJ.MRPMLVW.IK- AڞIENDB`pychess-0.12.2/flags/mq.png0000755000175000017470000000325412641567764016020 0ustar tamasusers00000000000000PNG  IHDRbKGDC pHYs   vpAgxLIDATXV}Lg]{=8:ʗN8(ɢd,3H68eq+۔ujlc.Mh 2[Rki`̖߽=>_=b/H$IrVqkA((%h<=ϋyA!1 9Nө|qaL6:BRRRRRRaQ*G˦pprsu.8JzHctOT V+/ޛ |S򣣙ӹjZ-P\\\\\,>NjTii,~}[[[[{;4M4Euttt8!':(:,70.^7hd2L&p8ĉ,^qǤ+ "R>ݚaaeYt:NJJJJJJ@ won&rssssrV|>5fY.wn{|c)D2(# 7uqajZIR*bX @  IVUUUUUDdoJ&5$զ;~n z"\^`9fFh4JCl}^bQT,J,%AOn~90 x2?Ɂȉ< jivG=GzTXtCommentxs.JM,IMQ(,PHUp HT0200VJ.MRPMLVW.IK- AڞIENDB`pychess-0.12.2/flags/ng.png0000755000175000017470000000223412641567764016004 0ustar tamasusers00000000000000PNG  IHDRbKGDC pHYs   vpAgxLIDATXVoW;s)"J-d)s\* K&2d:FeK)jQ JP ҁ,Ts*F%qsi}.pBAnf#bcJEQEѶ'Kn߶=]'B x^˗ 4MI <;6 e1\0F4??64%M[B[{CD4!wwOU}CeU^F!,쒗]%w?%l,6@,W4#J.Rܿ3F>5cHҍL1CarKKR`St^./{1%7o?v''3`۶m^ x_ dmMQvΌ\bP=G$iI_2+тwh[V#Υ/w{+|}PD@X"H$zON4M$l߅th6l6%^LϲrʍgK~x<SjW6#EY[S7JR\mI$IŃrjZ `a. o80ϹFh,˲,2buH[>͛nI.===z6 0g BPp4M4mp0,<\ ^ g"?Á\Nq,KUUUUP(bHRT Xt:NG2L&!Mqq'dզkZV T*J:&a2<|BLvLzB8u4Imr/\K>o9AOl7.GNg6=uGzTXtCommentxs.JM,IMQ(,PHUp HT0200VJ.MRPMLVW.IK- AڞIENDB`pychess-0.12.2/flags/tk.png0000755000175000017470000000273212641567764016021 0ustar tamasusers00000000000000PNG  IHDRbKGDC pHYs   vpAgxLIDATX_LSw?R,eN0?4JLLHf؃|{]%/,2M\o[E8HP$K'EG̈́@w? R%~Ο=ְe!˲,J̵a((,Źt2MOK$Ic)BP FQ0 nzH7 ]t:5Z->~<1Ï/̅B ИR{C`Y|0t;(45er0/o la W@+핶A2tt}~5[O݆OޞYy,z6pz%pTxS㘜|躮zN,+8~pE`hMGî wFƒ}uo. ̰QǦtHRqreee8heggg˲*$[81ԨM]` :硰 >\ո `muqتNz f%jr+fjjjjjjrr&'pXU[ܜ6[rޛ 1 GFCEEEEEI'RSBZRދTr}!WK>aO($~=mRn1rŘ=]]|m GzTXtCommentxs.JM,IMQ(,PHUp HT0200VJ.MRPMLVW.IK- AڞIENDB`pychess-0.12.2/flags/sa.png0000755000175000017470000000254612641567764016011 0ustar tamasusers00000000000000PNG  IHDRbKGDC pHYs   vpAgxLIDATXV_h[UνIi?=YjMMX:f2ì(>ԁ>-TCвmNnJ. W`k{ޛù%E˗;~|6 AAd-`mJEQE43W+7M*!R^b2L& @i- B|JMz^0Xn/oҒ,[QJZ[[[-~ w-X̫[ _|,Nde%fٍU@Cg?!}D8m EC'RquKZSP[u+w{a#>~Юf.+6Pm0v79v%yjsy#2/W?}vQe?ԓ^鬮CE1ןwɬ-*d%`(ފDX|>sR)Ye>DO}9p=C/O9W{+ϱZ|JH)m 0 g.Ƃ$57K3333p8(D"HO%9lܼ.lia^]VZv*ONNNBG( B@<〪]\b| p++N$I$ x<~X[K}4hoVEQՉp8vYeY-+_D^A/no$ )ra1h4F'_!D" 뺮  !(/n μ Vi?M4MbX,hhȿ[ƙ ͮɁYhxxŘml+z/9o||^uIk s뛋/6/ FcV2GzTXtCommentxs.JM,IMQ(,PHUp HT0200VJ.MRPMLVW.IK- AڞIENDB`pychess-0.12.2/flags/sg.png0000755000175000017470000000231212641567764016006 0ustar tamasusers00000000000000PNG  IHDRbKGDC pHYs   vpAgxLIDATX햿oI?k:#Cu#슎"rN q>PW?P՜" h ]pJ"aN ;Y^17`Xɷy;o̼{ߝY8 NU͛bdb캚i8fw_((2PFTr\>sѰ,˒~UoCQ|upض[ӧϟU?~'Df**jU} >k\uDG|vnh"K_a ͺY'Ϟ<y]cK%Gԇ\Yvݣy WG8}&$Q#U*ݗݗs9@{ @Ŀ=cuurs9k"O#O\({{¹^@CܫWLcޞ`0]pꍫ77N̉\"x2yPj&88jPo7 -L4}i|o|= 4 WU]4͕Js{PUQx<ZZVu] 8 w n^޼boSND{/LS m۶-3z8 ÿ0H4Gu]5mgggg{JRTqC'(b޼D"H$$9;+ ]K)h+ OZ\ zx}}}=L&dX,E,q#ܸ)qc0 4MӄP( L&Ih[Vb7eel6Vj[XVVވ?8&r"c|>ϫl'rRT*NtT5NiEԦ00HiH+ 2Ljk6f BPaz /w]!FQNBBw|+[ 諾T|r޸uetФDA?? Yqt2(wGzTXtCommentxs.JM,IMQ(,PHUp HT0200VJ.MRPMLVW.IK- AڞIENDB`pychess-0.12.2/flags/gy.png0000755000175000017470000000311212641567764016013 0ustar tamasusers00000000000000PNG  IHDRbKGDC pHYs   vpAgxLIDATXYlTeߝv-m"8`ŀc*EHRM .Tq-1>`F1aQ"mN3--t{SڦD ssY{.\\%((WL\bX,>/B!$#pl$D"'bx<.1RF~;(ݞ%xzθ0ĮMknHݢ/H=:D==0^L/:AW nh.[H+9wN4Mӆ%!'1Ceɼb9 X) W-yaa'B<ǀ,gρ:{?2lUkqdؽ렳;sg.1W@u]EXq*ܐlg+BՏ9nޥ=E/{8'ʶCpn/pj}HwW [ d?~=~0|Ə;`X3YEd#r\Ƶ@29lrfbe Zz7ԏo2]֗^3v&|2R,tT~rUT{*),t5@\W ?y`fPz<pZi6KlfBtuuuE"َv'Vn~s #FI A\n˵lYKKKKk[Vj:uTk+p8 愼IX80ikoUUUUUUA&d2rgyhT*,,,,(X2]^z^BPqs"-I Տl6 \.Rdr````|'Deeeܹb}>竪j`Y9e>w}Msq Kq2@ E̔O係PWWWWWyT*J)JCCCCC)1~8֐R&dV_"H$ Lq)kk|~2iS yNf mtjÔUʼy\򽔗|nss`drH9b̏TjlzȝWكB_cbGzTXtCommentxs.JM,IMQ(,PHUp HT0200VJ.MRPMLVW.IK- AڞIENDB`pychess-0.12.2/flags/cx.png0000755000175000017470000000310312641567764016006 0ustar tamasusers00000000000000PNG  IHDRbKGDC pHYs   vpAgxL{IDATX_lSU?v:(v BƸUQ$L` DA`H$1@A4%De``Xd*XXgn0V/ߞ_9s΅GxG/EQi96 bXt/B!dB[@ dfÑH$"_o!Cvvvvv)mxf[[0{u<ǫ*0b@Lh><6p;2S4ܚmXq1% fG::D"7¬wGaX=0%~Clvg䔤"Y\+>n}Nz'=,ސ!E~ a PGzTXtCommentxs.JM,IMQ(,PHUp HT0200VJ.MRPMLVW.IK- AڞIENDB`pychess-0.12.2/flags/id.png0000755000175000017470000000216712641567764016001 0ustar tamasusers00000000000000PNG  IHDRbKGDC pHYs   vpAgxLIDATXVoZݺH_+:D"yPP@B &1ԠnX"W0tAzM1C,I.D28mb7ƾ N]yyzKs^89~ EQEyD|_PUUUUGK9z1qlt{{eYuR8CzbTFc/@&d2/Qqöʷ߬y 6"V:|ȉAi10&{ qڛ!M-uFcgw"=8@SyD1fBH.3\]p|uE]`_}yy` x1apm&Ԯ֮v.| ힹ9' wIii* LP:P*J0yyRT* cQnq jQm~뺮 ZV5d'ӧRO_KKR)Y#dl6KqBH =~Ku2)%Qr{ű,z:B@0'A;D*GzTXtCommentxs.JM,IMQ(,PHUp HT0200VJ.MRPMLVW.IK- AڞIENDB`pychess-0.12.2/flags/cy.png0000755000175000017470000000240412641567764016012 0ustar tamasusers00000000000000PNG  IHDRbKGDC pHYs   vpAgxL%NX[k[m۶mwu5@i_!+~ʓS?ɻݟ 1*~ w(æiǎݿL&Mȅx<뚦]}/^v>?1ڈ1 \PUm% UeZ[r9]aԾk])Io:sNcB9`YeY2) Lsx4/^L$yu]uM[XXXL&d@ ! P/L5}j~`0 JrȈ(ljoy^owf>_(ܾ=777z$D"N4 EܸzVmo56 0 0M4M|>BP(gEx\=w. {h4us\./7 yr"Dzd2TUydX, apJR333333؛ [C,HVk_X,JRT:ASS_w52"xgGb@ qj-tZ sW`Uhl.9/'Zf! ;,yݐoR=;4G"tKGzTXtCommentxs.JM,IMQ(,PHUp HT0200VJ.MRPMLVW.IK- AڞIENDB`pychess-0.12.2/flags/no.png0000755000175000017470000000261612641567764016020 0ustar tamasusers00000000000000PNG  IHDRbKGDC pHYs   vpAgxLIDATXVmh[U~νMzc3hVvf~Bb(QVۍq*ߔUi]qœnc &0]e4[욛^K&-y~< cXq?<󪺲d~dJ !R plN$d@V*_6_TZVUQU+($)6Z} vϕ!,yˈ~@J'jK 34Ym;7 Ўbl6./!G-@uG;7#N@]@ΓP#^+Τ7\ڗU'qcnx@fjQjl5)3`V#Ym՗eX]FLȩ-_矞t^8~=s]-o<@>$6")/w[o+4v}d>< 4\ [[~x7v`[feA@N߁dV̦?ؒFN@UUUUFyBlW4r #RT|]љ ݑ  s1q}Ԟg[sVBjjDQ++oLhQ zy@~߄^WE Nuvgc;}pD; lp8hT$I^$ {DUo~e:-=xr7U_OL3xAc+]0 CӴ*@QEQX$,e(TQݻ~bBUz^ɉ  B!4&)W8t:N'Kyl8R[&ɴa޽x"L;7:::@2I_dz󁱍Ph/  (bX,r\@&NtqP_ښH$z:$I$fe/" kDa!X<&F(q%c-rW|>pneYe# $+H1/JR)  E~T6:0`"a&?VRفyb[f>AGzTXtCommentxs.JM,IMQ(,PHUp HT0200VJ.MRPMLVW.IK- AڞIENDB`pychess-0.12.2/flags/hk.png0000755000175000017470000000243412641567764016004 0ustar tamasusers00000000000000PNG  IHDRbKGDC pHYs   vpAgxLTIDATXMhSY6H?~S_H +AwQ±ˌp]W\(r'Ԋ`8m`4@D|Y\o$MBs=s` [º4MӴg4ضu]uݲKlfoYrtZ!PqB4Nd2L&;;3l6UznTƳ!m˂nӔ-~J rWJJȷoRT*ծke7D#~`hphqc;/0>7:ltOԵh@G:J7nҤC!E 닯Юk> `|^QvsCq5Nr<~~{?'\]<&oss-- .(&X^P#!ˌ=A0xW/ '`YeYnzaSL>>Z0NU6/x`_UtuombL2v*&@mw]`i*:; 0HIJh4D H$ /dّmˀ\[YU|>S ^,t:C, jooo߾t:fߟP( `aaaaaY"íSq fct:0 0x<@ |>?xPz9d2x8íT*JʪQUPǛDu!T<<)$qL3b1MS-r_h)bQӂ`0 *H=5/r9x|:)ΟrxreEʏ7ꡯO)CRҥ-rV[lz/ɥ,]3?ɤZmRVP,nL\;c_GzTXtCommentxs.JM,IMQ(,PHUp HT0200VJ.MRPMLVW.IK- AڞIENDB`pychess-0.12.2/flags/us.png0000755000175000017470000000232312641567764016026 0ustar tamasusers00000000000000PNG  IHDRbKGDC pHYs   vpAgxL IDATXVAhG}3+%[:%u n+!RhBRJiKz=!ѭ4^ڞCOnu ŽTPPim i䘕;+EڵݝVU)]?3fgC{RJ)|,$I$ߊ^|5BȣdjZ9la?0_9FѨeq[pcS]~408(o=A_poy6ؗ p'>/<|/k#Ϟٶmvw\:u:"-K2~_\y_牛g՗ 'h0G=Ĝ,p\KCwRuoYeY"A.zJ8,˲,I"PT* o¶q%d2)ȩ)^FCHiW[( Fil6r.r@\.ˀan71!Nq H$T*J[[[['O՗H<;vtlB>~뺮 ʊQTPBt[O'3geJRDhOBP( @:NӀjZ-J3L&!īM^^Vgiiqs*n=zMMqï8 B,bb\Bׯb:*& 纮iȗqC -քO~>d2L&9躚FW_`E9^s2X95hB/sR9  (/R`wr"뺮kvzr0@0`__el6KhJtMD"|yuv]{zkkk˲tݲ,˲ZVS7:a`qX^KGƆai&L&$rpttxxxV----]⺮yob8588”Y)d D4I!o38A`۶mۜS? RT*|>1}P( ƢIfj bJȰV_t:@ZV=|xccZ\T||xw+t:MP-I+s<~[c"\G~i4_BħO2?6;/_0GzTXtCommentxs.JM,IMQ(,PHUp HT0200VJ.MRPMLVW.IK- AڞIENDB`pychess-0.12.2/flags/ca.png0000755000175000017470000000262312641567764015765 0ustar tamasusers00000000000000PNG  IHDRbKGDC pHYs   vpAgxLIDATX_lSU?޶`0GFl?A4$<@ľ.L ̈́,ao,H4h80F1j1!N3_x`[qnko\u:eߗo;?{%,0 سGl[4M4,z_>.v^Ju_"!B8CNΝX,VJ&-˲q Bw)ڶ*pttl,u֞yXkr{4ރ/[k  l޺Owos~o #L&̏HB:̢'B )v|p5 JtN6`S <>h Pa8fc3p޾,:+0^f*>~ j D_{]/\~~' 8rvanQ1׸vțW/s?~x<[7[vi׳@)]0|O LL( fS_Iɍh4:=7----5 gnRZZ#`si}jŧ ۦ5$C)x `ؖ<߹ihp_0$0 Ux<(2 \}^X8BbjdR'ٝo_\`0 'L$իUFGu.|o޾>)=1>5!Tkxsrϫ{f@ m۶w֪B'ZJUQQQ|ΝD2iY]]]]D" e_nx bkz|>P( `zzjjjjF5P_eK2LZnw<㳎ueDBw":l&pl;FQ-S|WVpt:mBjS#=44ZRT*}U<3z~_СC^be./W[5rEs+>}A_`@BW!w"/ߎSz򗹸GzTXtCommentxs.JM,IMQ(,PHUp HT0200VJ.MRPMLVW.IK- AڞIENDB`pychess-0.12.2/flags/si.png0000755000175000017470000000240712641567764016015 0ustar tamasusers00000000000000PNG  IHDRbKGDC pHYs   vpAgxL?IDATXVQh[UνMͺ*RKiQ(c 0N)MW˓OnPMYQTksvK]oܛ^NOo6 /^{ssv]l 8;} -yMsgVMW,B!, ;x$^U4Mc~ ͷ,|>3 u:\YY]U`w߾ ].U*C!=;N+u|tOtO8Ýw~rJyyVj-BW\u_uzx|ٗK#f@ږyRZس=ݸpaˏ. /{? +?m/I0h/0zɣMELlLrUh3X}uF[: &-cK$uu-.ʲ,W*M @Qt\.y 'F81 m?M;#% B]((چK~ES-c[wn ^0 `066tC~IDMSAx~aaaa~r\7d}4af POkOp8AZbIiC[i7o$L&$f,iFNmlwj,($I$^X,J\.:DW6=JRө((¬Fddq`h,g3caȲ,2DZQy"t:x<qD"HҨMff``ZW*Jd2L]5Q{[AjUj]! *71uԲVf E{f;j|=m4i3f`af-~X[A7./ :>+GzTXtCommentxs.JM,IMQ(,PHUp HT0200VJ.MRPMLVW.IK- AڞIENDB`pychess-0.12.2/flags/is.png0000755000175000017470000000260312641567764016013 0ustar tamasusers00000000000000PNG  IHDRbKGDC pHYs   vpAgxLIDATXV_h[U{ĦdR[+GU9}2nC d67fh_6{0"M+Ih\57zs'gҵiK/=|. l8JQZxy^UWLn%ZM_Uy4!XzD"H46r&0>hj X}we5MUfrJy]5ssɤ$緞sCŦxupe5з w|u֯ _xʨt?'ZbX,W bqr܎֛:u#3_'ԗk}8}l ,< ̑(I-Y;Y=3#QM˽c0PƷuT4N|} :^}c1ML۝!z4ArN6\0Qb(MME"H>bL`0Ff+ЧiҺpl [:)>:B_!WH*7 p\.2R)I$ARH7hɤ&TVӖv%'K+_\X,x<Gd9NhUQEqp8PUAAɉ qNȥR-czv݀(0I&:ftfa߾tZ3A@bX dD;\J~`0 ((Vj^|.INYL`0 zI$I*fee+De"?g(H$p+wB( B|P( '7VjflFht%==r8(],Z-8NA[%lRʨb^T6gtaCA(jyp:GzTXtCommentxs.JM,IMQ(,PHUp HT0200VJ.MRPMLVW.IK- AڞIENDB`pychess-0.12.2/flags/mm.png0000755000175000017470000000242112641567764016007 0ustar tamasusers00000000000000PNG  IHDRbKGDC pHYs   vpAgxLIIDATXOlU?oNgaaTL6SRIWI HodFNx$j D'ݽKԚ6at7lL;umn4^7UbIajj,iiRk$هozZ!q,X>|>7m*|@ lc Cx<~fŽ^qDA>&okߎ '3\G9 /{2 @Ā- & }+9zl TG=T*Je& q?ZSWr~}v7 >#vVqI3āj$P:9 8Eh,ƍK#"EmW+ćֽsp39qAo\I!l3XaT\. b>_&ƒ39%yv]9% UnV]mm۶ 0 *+oǎ{ BqFGǛl6֝7WDu#t> ٷO(n2L&Gd<(bX,H$@ST*J1<<<<<,D575jkASCKݐZT!]@w~p68m U0paz9g5 %*} k;OܸUfn#%@`M]Ki02f{8Pr`=Z[PC`-SALY0OZ\ S/8X -k!ie >vXӁ 6ȁ`P3QCsl={֬3AN`|!9&`ےB0wz7{Nhf'Py[{pO{x/{/ ?W| ZUgt1Pf8$\7&=#[9 8^rhc'?|#luv 0q`}Ntp__^ٙѽ߷~wl? H47Z1t*+.,˲\.Mu!}$4p̉At NuᅛO] /,ykm| Moa>`OrVPQ[2 SPpT0 &Y PNgaaa9Pi @}/,H-[XQP{5Kg@+9,W<[.H8;2u:{]KJӬTw뮐5s'iqD>4yK.4MT.C{<@we9á====000000LmYl@iLOگN,+*d#E****4iɒH$Z[}>|>BPb1y#ÝNLm \kt:x<pn!L$yd.QUUU5{vmm4b~ߟp:ꬺU>s}PlB$i`0ijdR^}":;;;;; 0 CӼ^" ٠jH6/qkJyۯ )GG<}J#TVVVVV8iH 55] a:P sq1؃Ƹ6v8SZj, +3@롁ѽ uye/xW N3s1 b;aV*˲@ H & =pM4хفV+b&7^sb>:jaA/חFmn2 :=yj5)ymϗlsXȍr+85{B YL&HtP1XVUe\8nvf____o/p8 9Rmx-o/@y:yMMMMMM:mY] i*slX,O$n! B!H$ԍ6w.0k{<eY^|J64(ݢvx<O$;;;;;;].۶m9֕7g ݉BxLd @ `eJ< ]]]]]]Et:NF[[[[[(/M -uA Qmd2`0 oSbz%lV-%롦FAQhӦMԥJgEyE>-gJ>=o*?oҝ>}~'tB:===_npT>uGzTXtCommentxs.JM,IMQ(,PHUp HT0200VJ.MRPMLVW.IK- AڞIENDB`pychess-0.12.2/flags/ax.png0000755000175000017470000000257412641567764016017 0ustar tamasusers00000000000000PNG  IHDRbKGDC pHYs   vpAgxLIDATXV_H[W{cLPgR:.c:&)QvBևl/ń>*iЧ2De062CDI$3`gg'L9}8p(AadT)EQEM;Q\O_{,!8rϞt:}|.|(=.ǟ B>l6ͦlA/owӯuM:x^V5Mx\hZn |8^x-:D h;jr`)r\aq:A&_+?0<:< f{]I!AG]xm}^NsZ1MKFU!8zU\_-/`ᕥ1ൗ A^n`qB(eLo&X<%>@ =`=>,Պ/ KqJ?g5Į@𠒁O*~p5Oͳ sاAMEŸJغLtW NU76dR/8K-f(C}2K)귑YJGޙ:ZOյh]E$Ijl.h2f (t.#H9}F;iŸd t:͙(Ȅvw8`tZժc4Mc}kIbX,vݔrl6{Ɔ,ց 4U Itz4bf4F(x,RT* Yk 3suw;U=rUUUUv; t6%<򭭭--7nd\>b(d4BP($d2 l"ڬfA_om2L& I$IjZx!"H$|> RT* $!8j(rT{P(  H$9Fw0z_l앿=Op8v>+{̘r6慾9׫wóRdo ^=7Q6GzTXtCommentxs.JM,IMQ(,PHUp HT0200VJ.MRPMLVW.IK- AڞIENDB`pychess-0.12.2/flags/to.png0000755000175000017470000000231712641567764016024 0ustar tamasusers00000000000000PNG  IHDRbKGDC pHYs   vpAgxLIDATXMhSYҔh RfE6]"% f݌ψqc#Hq\80(Qwj .BLl1yw|$0lߜ={8 ]u]zUj590 0Uql#+4M4MձZwl69R,JѭݿvB8|>WIp{P[[ ?o58qu]H?O?|@D rGvvz^׃>_ p!w_L>0717-ʮLyߡ<;#f:: >ܔv .rOsOvn|@<ȓo[{{?@N3  -lA t>Q=$K z5WlVۤV"ae?o|/TE>a-: GzTXtCommentxs.JM,IMQ(,PHUp HT0200VJ.MRPMLVW.IK- AڞIENDB`pychess-0.12.2/flags/ht.png0000755000175000017470000000205312641567764016012 0ustar tamasusers00000000000000PNG  IHDRbKGDC pHYs   vpAgxLcIDATXVAkAf6n0q AmNK.IP{Ы4]#ޚxRBM*I jvl7;ƗM7&!}3Y_9?|(G+B((獷7NyrV1<h4E˲m&?1ߎc4_x<w]靛 Ƈ&-{iۛo0eQ]dG~z^o8nd6 ^29ij= k~'XX'xB7ލ<$ 2cppdv;.]AZ"`4́{;#pj <?|l$@Ü( ~'f猡 RT*i J\Rwzdsi%!ຮ뺔 'pt}eE77KR\PoAWMs1tGnY:a~r)ŒϭDd~iC7uӴ0cކg _ A0dzd&4kfr> jO/g<;sҚ 7mxZ[LK`{^!|..Ùs`E Rh'6&NN8=E8;"^f?nO[pysqs~;0 HNVU:_%F'|s HT4qBPqXF HWKJ+.SW7]WSv{xE׺z#DVp$&ֺnw(crݞ(-bg}㍳v3ʣ lf0;̎PLiĖ4K>Hǭsn *T<"6u']+]~,g$ ɫ9l뺮}Zh`GV1{rUWijMMMMu5444444uCvurXrt L[ drfvvJw{+----%e޼v?(--+++s:5t:N@sL.xy_cnp8Ȁ"::::&M_"rsssǍ>cm6bef(3(D|"?RX(uvEwBeeeee%CB8ÊRRRRRR"D|oJ$ 5$˄j}  x<eE˗[~Aiq]]-H;1X-fMl-%?hIx7 aݿ|_'!/`Ⱦe8GzTXtCommentxs.JM,IMQ(,PHUp HT0200VJ.MRPMLVW.IK- AڞIENDB`pychess-0.12.2/flags/pa.png0000755000175000017470000000311312641567764015775 0ustar tamasusers00000000000000PNG  IHDRbKGDC pHYs   vpAgxLIDATXklTE3wPmJB)6TC)Ę`@hD@* FP **HxD HJ[nWn7_w̙9sn)rgL:c 0 öoz@9>/I(7cu@.] :D,Qj 5rjYӻVt_}YbYça`a<4wb|̵{Pz(&5 6j:{CwCtަܠ0~֘v*Oy|r$|E@ͫkŝ+6 _'NX"3snmս>\ʎvtu dh¶m۶ӥ4 !UBv&NCh} Bo%g!%H9ߝcj>7lؠ =4)M0 ݬRോK=VE@.hqNA1N .ĒRsDF~60w,.?FBO`ͳY@Jwui:V\6y=ީٍUAUߓP8X} 'IS^`/O^`F+H&dR[AFkjjj:sƶM4M0Ϝ6p:dk8;Rs˵zeAp9Z[^כpa8D;wՙf]]]]]@ Ѩӑg>/,E>x<|>zzKKԩSE"H4z@}}}}} `:#jyxЙH ZGyD8L~/NC7BCCCCCTUUUUU+q)HMAfJmbX,~Z5kno N$>Vw(,,,,,)+SDzU+_(|{PdM 6M\\כ4=M6-/|}==l AA8vy )EQE]Bz]gb1B!d p:4Mqt;Z:`v{&â%6\ZZ^VUGZBOHy׆ṾI烼{Nde%fyE `%g_1>2?`3b?4|9* WCQRP)EZG >W䉔 0?aIj_Ӯwwsy q;qK3qm7V(eZ&詼=wtix+pvT7_"% `y[' E ?bW\^4@yS#>QA;M@_1PZh\Xѿtc]@GE%54@j7Jm2{Zs'jj&yHd躮,H{>r~>N[@OLanUd_j_bWcY*:?UA ZoЏMb:WS*ninVE1@ *8O岲2A$QE`4T[ot#4  (WV hsKv\Z>m]o4zmQot:fs$*I,kx;/˹=S`ddO)|J$ *ݯS}#ts84Zd2L&;l! ܬ(==3333~K$I(@( B!v=9Igur\.̖Ft,ƥ-jXqMpalll$z`0 Mc72{sȏeYePEQfl6vn J&Ɏ[x<״˗}>+-UUUUƜY~#ry<-I8Hw7ad@ ~d SSSSSSx<@I:Nӂ0<<<<cQMsi/&|zޑ{F^}`ekl@<6SmBKxZy̓YB{֬[ s7a8w={k8#z =<Hu9I&.}Oس@lO֭y.}w'3 W+s㫝l*کym۶m[t]G_̴$^c'@e NO<kM;5K+DWifK˕+X,% ]VM3 ]uXkI#ѣH?8m o|S 1 gyIq[4yp~wRT0M *qw*{9?qq8 @gZ 魕ߕϏvi˲,R( ,)4Lsh4m0 ёyCБ +9)jOůOPݲly<ҥ[әL6{P(dP( A"H$YJbjrT].4Mӄ@keEooooOφ L&͞=pss*JRFTTB:Q]D6mrp,+b1MS-rWD"H`0BP(4mpppppPT5JFr\.x<ϲb~)zuwKy㆔cc|>SˇXn)oMUEpJ.t_8ɤz*7f"J~3TPoE_IqC>GzTXtCommentxs.JM,IMQ(,PHUp HT0200VJ.MRPMLVW.IK- AڞIENDB`pychess-0.12.2/flags/ci.png0000755000175000017470000000221712641567764015774 0ustar tamasusers00000000000000PNG  IHDRbKGDC pHYs   vpAgxLIDATXVkGf^GuM j+^H qH| ͽs 9Xg]J  =8?(%7KPBJ^C%#ZjZT '̼g8 EQE{W\WPUUUUG38}~&c1F~ Fh4Νkl۶iѫ`xu_~jݽ=.fi (B\(` xy޾("ӖJRT8oYir {_鍽͎IEV{sr] `ٓgv#=bnN9u]u =Ø77rR\4MTukkkRz^ BB|<209rO/Ni $ fs{4M>H$]Yi6[-~lcccPдBP(ZVۖ/2nr6 ƺabd2 n^*onŅVղ/bX,˲,0e^D Ǔ*O3L6뚦iP$OȇBT*J@6fTt:Ӵl6M`hhhhhrC)S K׷$ergyUqI%EV ?ÆP(>zټ^A:d,4v8nt:bh4]IJ~R]]]]UUW Bӝ`0 & QVPΧg ىBxNd*"~߯e} |>fȊx\U=QtnJdI )eA2Qm&H$@ ),c%wwU^nD’ׯ߯ i' BMMؚ˳m2+H'\rz3_M;LSLo_9_@q*GzTXtCommentxs.JM,IMQ(,PHUp HT0200VJ.MRPMLVW.IK- AڞIENDB`pychess-0.12.2/flags/td.png0000755000175000017470000000214512641567764016010 0ustar tamasusers00000000000000PNG  IHDRbKGDC pHYs   vpAgxLIDATXV=lg~4F(u*.HQR&(:dE{\!bAaca0PyK+TKwqw/s>Jgy~?SGB$In sYeYL8 {>c1F~Lnvϟ l۶i8ٻ`s@&d2'Vye} Fu`` ܼᅡULП};m.rX_wx<%Cm)BO;?yyP N`w2Nȋ|ڏ8;TOx?|^>Y{zc$r|~*0ivLtg#$I2Y"/r AL!eX|c1S苇* ~<&$Ҧ뺮TgY(bw4 s^Uy/Tzys(Dj:` 7MZ*X|yGPGT`9kڵkFl(rj5ii q.!>Z2/|>d6+aF{keee~0GvwwwUEVjt:Nm"MaV\OUUUU4M4 NiP( `4KWŋ/m?}ZjeYe)"Ri=* D4d W28gaD%<#z^JRT\u]W*JRa,ڛ8PkSBZ-ɞ8vn:'hkKpxf xr\.#=!D ݽy R)x!^Dm>ۥ_M0IP[hΗSkp_GzTXtCommentxs.JM,IMQ(,PHUp HT0200VJ.MRPMLVW.IK- AڞIENDB`pychess-0.12.2/flags/bm.png0000755000175000017470000000304112641567764015773 0ustar tamasusers00000000000000PNG  IHDRbKGDC pHYs   vpAgxLYIDATX[lTEsv/Ͷ`dHc 6Bb >T$ZXQ%1EQ<B EJ%ے.4嶥{Ö@47?g}ǰ4MӴ+aXc)u]u4Gg5o$kiZEB!Nv-X,Ǖ@ 0ۑ!Z/ix;Za 'oY߻\0i=ᢽg Dv0dȧb"PƗr3cCt[]@v_Q '!.q \.(8.,>Psld`3CAxd ?A,r7WTqqȱ@8RZZBs o4k ruOu6\_0Ob7ˣ>osJ.m]o>.1Y ϾznpRr("@{&{L KnZs oki?h֙Ki+]{@;ӿy뱮pvqkePXzy_*}ѵw if^`T'_ ,pQ6?TkYr]#>҅L +/^;3~wEln`x L4BLzGgg0  t\.됪WdWm`dN2dU8&0~)΀܂ *l)%i"//Dv0 ә[ .kyw+@)AY$=sCO|NZopP$e,0 PиzMz/vӴv];:::! B!nȡZ+Zu}2|>S %%VQ%[rh4wllllljۛqFw&0q7ekt:N'x^ P[[[[[ d2YYiy?^ϘQUb99H$dʪQUPٳ ՉBxnOdBa 0`042= ~?RT*Ҵz!0}$(i(VIjcH$twwwwwgo֫A/^[eeeeeeOnb˜gmUl˺/ť+Wuc ӭ&ݞHPawUJݝol,JGzTXtCommentxs.JM,IMQ(,PHUp HT0200VJ.MRPMLVW.IK- AڞIENDB`pychess-0.12.2/flags/za.png0000755000175000017470000000306612641567764016016 0ustar tamasusers00000000000000PNG  IHDRbKGDC pHYs   vpAgxLnIDATX]lUwfwv+[[`.%b ~eQ+"%*<`<&|E"1Fh[bmW,ۏms}.[ڦD 3̽;w:: M4M[%XJ]u]᭚7iez{BUǕD"HdX4MSÿBRZ|>ϗL^3sc}B4 G`;\/E#80isį ^3k%XK#5/s X C ogD+n%}`HOO*JRW7!>@wgGpBhm6Y q-oM=hYe0/HDo0fߓoRg˨ 檧οp̆/hMs˯}c@nk733 |Sѱo7VN{^@n8 ta1|ʷKH1JRZqwϾ}Ċu1Vy`ܛpsٛ4^>}`Џ ǬOϻӃFݶsrmT|> `9>{3'H}+2rl z,0zۓD3fl}:FM,˲<Mu! [=ş> w6rP98^7/wy~f&wDŞ b&Њ n  KuمGa6sU#Da\g΄BPD;+++K Cu {E.|f*dM7\&u=϶rq;05 .&I)e`jfgv޵niiiiiFa/ Uw{[w9~/d U~$< p#| #P'^O eg98)!L&IU"p _ٲ 0 C[ZZZ!aot )%^Γ^ "fNb7WI钶rrrr/LsÇ7zӴodp SX!?vn~^j++<)JJJJcX4hhhhhhp:h4MVU7gj'2깜N2 B-_jjjjjjH$ MCAICYՐ6Rx<ǡ}<۬^mu~Mbہ۞=;@ 8iZ!mo"S\꽲*>n8zI ;Cu~$$C|d QGzTXtCommentxs.JM,IMQ(,PHUp HT0200VJ.MRPMLVW.IK- AڞIENDB`pychess-0.12.2/flags/zm.png0000755000175000017470000000240012641567764016021 0ustar tamasusers00000000000000PNG  IHDRbKGDC pHYs   vpAgxL8IDATXMH\W=}4cf!Ry6 ZJaHMjE\T,-CM..J)~dSUvYL$*dig7y;78ts{ιyiv\9\{뺮RU]WL !*J X]M$D9Jiy:P8R[__n_W+ښe߽\<;>zh߬2Ah=L g5 ;|!5 BPuqun { / z8:i  =x# [/|P!/}s XU/ͭy75i/_W t?#cilj,vGȌ^r. / ɛS_ٟ9ߝϼVx_vy쳀O >@3{ @@|`w4ܱde=ຮ뺁tW;9 nPS (C50J;0ymlwcY8[.d/oxtYM[eܵTߏ.New";W ;,].J]ğglqGe ئ 0v陟_Xp]0 ŅX^^^^^ByLXɭl-Ls~p8eG$:|(ll555556%T:}L$bH$EVJL\R}|`i  mgɓ2ܜ ՠFCIEHQu^&d2;)FF{|utHYR?kP( T"]T@RJ֕å)Zq YtPK\nozP:ÿs s=GzTXtCommentxs.JM,IMQ(,PHUp HT0200VJ.MRPMLVW.IK- AڞIENDB`pychess-0.12.2/flags/tv.png0000755000175000017470000000307412641567764016034 0ustar tamasusers00000000000000PNG  IHDRbKGDC pHYs   vpAgxLtIDATX[lUg¶PoYHk4*EIXL hh񖐢`"n/hƠ(mj]:ݝtK@4o3pgp'ixlK뺮;5yt]^<.B8&BLѣH$TU%d2RNUN!z)]jkkkkkYZ\\8h:G6wk @BJt"  #@ҡ/(MUcࢥK^Gr\ni«|g{>~?$w֌PIMrXo.DEq7KKe1 <^V8n#\z_ӌe;')'PY]m\=e.nk|"2@<B=P0QZ@*?e ."1ڷ ܀u j'S)31a?n ?-'-|pN#4o{V_vςwSq0LU7U}!76BɰVWsǟg?qfb1O~1@cU͹0xE\pv_I$vO3ONFB< ̏ݏjok31X˗+vPXe: B̤ |fs'ُ`nf¢sjZV[l7-fPtq[.H^*A{h p;X ܓMP,ˣQ۶mT9oS`K׮[ :dlrsK]{a %u %1ɠaCU~:8Ω١F> ^7fXGzTXtCommentxs.JM,IMQ(,PHUp HT0200VJ.MRPMLVW.IK- AڞIENDB`pychess-0.12.2/flags/gm.png0000755000175000017470000000213012641567764015776 0ustar tamasusers00000000000000PNG  IHDRbKGDC pHYs   vpAgxLIDATXVkYv:ai% 8eDl@K.E,x(eA؅hBs0A/WOݓ$n]{I NaXg̤'3~tbR ^|{~o8!> AAXZ#cEQEo)4u~:c1Fyt'iiSSiYE~~7@,býA }?i™JnޑVj``!{02Dίx+?$=5s`U, ԝǐjZV72?~bXeYEQEh4t:ͽ lvvvٹ94MzP( q]u]ҍH$p|PP'|g\8@- bX,L&cm۶-l62&Hd 6hFh4JRT:⸹sەO[xvD"H$h\B1wo+ٱ}'{PѼAh=H/wl~P M5GzTXtCommentxs.JM,IMQ(,PHUp HT0200VJ.MRPMLVW.IK- AڞIENDB`pychess-0.12.2/flags/my.png0000755000175000017470000000271312641567764016027 0ustar tamasusers00000000000000PNG  IHDRbKGDC pHYs   vpAgxLIDATX_lSU?ޭtڱ1$j'&h\ ibpb20B4$>aIX|%b{$. )H;Rdtnpvѭ[4wߟ=0IiirdrlۺnYS[oYr!!B1bh4]0x\l{L67Pm۲vnӔy9y֭X >Yz?@ۢmǡxCx1 k1%v?Al´{`c%;Z`;Z} \b5"2V^Z{OAvdp0NI@Y?*ncT翂SSWg>{f;tyei]a͚U fOPoU $J:1x? Mki߶u~pg[@];juɦF0 Bc12N5r1ضԲ_M?t~^)y kvsfC jDIFR8&NEzL:V'vq ;,,*x7AUާ~cod} t-j V Pm^q;ԴX`~!YٻeqeYri +_nއQ/r%:$l`akO3, JPCMXH01Q^x<] B##9P΂Ms8t]~'u xUGߨ:ppccNc!&T]RV 4M~^\X,p9$ә9ϝ[x=N*;7cĶK0M4MJ` 9 㩭,p8tz{{{{{AސG-V<S}2|>S CCJJc*****,2xѶ@@"H$x\6t@">t:Nx<JKKKKK~;;EUUUՊa'ObX,q*nDUAeمPܞB 4CP(42ɳB0 yd2LjZsssssTe% Ū 6~D"H@8So֫Br*%ʕzT~2ڱc#fKmUu_dKW<[uFXnO$9xP}#߬Ǚ 'GGzTXtCommentxs.JM,IMQ(,PHUp HT0200VJ.MRPMLVW.IK- AڞIENDB`pychess-0.12.2/flags/uy.png0000755000175000017470000000272012641567764016035 0ustar tamasusers00000000000000PNG  IHDRbKGDC pHYs   vpAgxLIDATX_lSU?޵kn2;7p5 \XDB4Jtb(ds>,M}@"1`jF(Pmp9-_}s.as'4M4mVkeZJ]u]7饲&s/B!TS!/?ᒒX,Ǖ@0BKiPVVVVVff˴˵;^sCEo.\2%AgYzF[x)yxb>0He4-(# 66;Jq]5t:N旣!><{сaɺ ^W CZ ?l>8qʅᝠr{["}t$@X*ŕJq[9P\x1* j[ :(πl[I$A7:'yB1A^䦩y̲!n ߟ_>s.M}Ngؓ#\j8ǁadTD!2P| J^QF3.4M4].Mu!ϖuP;m(F@-?' J~apR⯜Ef![FB{^o~`08:ep8N됬M^LC@(F'o%c%Dnh8 ÿ}9ж|>D"rG*qw8{cݖ %{[l'0 @]MRJY*0 0T&{P.r4vnn놜00oQ(JѨnhӦh4Ǐkkkk @   B!ǭS'pU\kp8z^x<`ttddddJkNQ]]]bڵX,6[$D"ΪQuP3׳Df#T> q # AMS#MMMMMML&ɤ MllPPR5$rK$Dz{{{{{'YbK66d*e7fCUUUUUgv-eI۪d^}I.^ْO'VOcC\H6sXɩ瓡: y#C8 GzTXtCommentxs.JM,IMQ(,PHUp HT0200VJ.MRPMLVW.IK- AڞIENDB`pychess-0.12.2/flags/tg.png0000755000175000017470000000246512641567764016020 0ustar tamasusers00000000000000PNG  IHDRbKGDC pHYs   vpAgxLmIDATX_h[U?6uYu[V5PU,AA6̗Fi!0e/{| i2kM˒tҮ{}89M6Z_}s9ֱuM4M;rD,KGu]m6+j\omBrI$DbӦt:dqj%Bw,KZ]Jz &wRsgw0Y$͓69!RH B;c +r^X,B@vh:=040 $ͧpknۂf?o(+֨)V\\.ҲhQe=!kg-|797$Ìv{@cņZ8vuyIk07'{{~[8OJ·Zo~ }m>u* X{;::;jm۶h S'o=TrZ3Nx3'@듍;ݼP a81F|Unjjj4u] gQ>}üd9 ^|Hpta3;JR!}V]>e4nyjy\J,0Ծ{iu,˲,KE `C aٶaaLOOOOO!(V8y>yJ씉W[^׻qco|:\0888F88d2Fw90BJn i mmmmmm  \.o\uյgt:\D"˕JRTyaYu# *{xPLg!Dzh44U2kBP( BP(hZP^ 5Tkzel6 X,-t侾7_ߗ<9~W![ĉX=UqC}Q\6WoDB=-ijPK2_Py#?,<m+GzTXtCommentxs.JM,IMQ(,PHUp HT0200VJ.MRPMLVW.IK- AڞIENDB`pychess-0.12.2/flags/mc.png0000755000175000017470000000177112641567764016004 0ustar tamasusers00000000000000PNG  IHDRbKGDC pHYs   vpAgxL1IDATXVoPgcTȨ H){eI)Rڮ4k&ÚUHq*$ c-w~}w3 +&88 GcyyӜmiu[o_cQ` <=)(ViF~˚Uo,BP0L_s |MߟSo`0 \0u^KKM[1gTs.,2cd4 pD"H$͌D6Ii@ X_?:j;M!yz^4 odD 0dYeehOdY(b d2~9.r9&Ip;A $5t]uVjyhѦ[H+ڇy#Dh4Jql..~?Zm%6q_Lޓ]T|-ӰID@aʻߟ0y#ځRjShGzTXtCommentxs.JM,IMQ(,PHUp HT0200VJ.MRPMLVW.IK- AڞIENDB`pychess-0.12.2/flags/sz.png0000755000175000017470000000307312641567764016036 0ustar tamasusers00000000000000PNG  IHDRbKGDC pHYs   vpAgxLsIDATX[LTW} H"JѤ14ڦ⥦ T/Bk[1)ijS/>UBckS#CJM6u0ȴ 3a}8lA 6}Ygk <3*_ 90(3:?do Ϛ3צBkuS wcF-Mipۋp8/m,ܔ1X+L)dYeY.9B@F.]-/1W)mfm0yGq=;t?LpjF60ot{IH9rn(F+ #gfA2W=x@  odUbjbItt:x<pnʠ0 cl;zC(***1cH$FϞKM BP/ꬺU=YZHnʧ!%%&i~߯ijlW*HbXLӪH`j`Tn.hnnnnn~d-**lYY܊myF(,,,,,Tq`ShMl]=MlU2%H&ӒO 'T_Կa%Cu~8bOf/šs_GzTXtCommentxs.JM,IMQ(,PHUp HT0200VJ.MRPMLVW.IK- AڞIENDB`pychess-0.12.2/flags/mx.png0000755000175000017470000000300712641567764016023 0ustar tamasusers00000000000000PNG  IHDRbKGDC pHYs   vpAgxL?IDATXYL\UP0J3 JXԆ jUiUĄ4E}1ч15ՠq I[۴/h 4jM4 0 wr@4ݳ|ii۶#]7RZ,bs7Ϸ0B!!B1b@ #HD+sBR\.˥jM4߆ |LGۭ# d< ԳSȳV,r<òpR59@$^Yq\6<DK%̊x<>ݿyĶNW+^2V#r'!4KPb;/a,p1Qt0t8}=0,]le.,9$e@zvn . c<8 ?}S]O\QJ83&퀓;x9XXRNj9 ; 9 2 0"Nh 83o×(`7\ԼT=V 04rN2 ~,2aS@N`5YAF| GU #9?})X 髋e딋f BpQ0 934440 p:5bf9:pyN (U/HVF ~[מ 2e7@97dw0n߉%z#D~v==^;66kjÑi6DC" ;V\!d,><ůK͐ھl4{bb+.U; pw10l",@ӄ Ar*w8 9ʛd233333Zp8 O@|{ή.ðl6b7;h:xZّV*`">p8pnFGGGEqqqqQQEE8G".Z`0 Nm2:ʠ' UD(n dza G׽^4U26X,4x<!0}6(i(V MjF(4Ϥ]L޿WA&_ >S0%TW7yMimU/ť+^ԺQFxPؑ VoGzTXtCommentxs.JM,IMQ(,PHUp HT0200VJ.MRPMLVW.IK- AڞIENDB`pychess-0.12.2/flags/dj.png0000755000175000017470000000236012641567764015775 0ustar tamasusers00000000000000PNG  IHDRbKGDC pHYs   vpAgxL(IDATXVoEv7ެkUn$r&SSTA@j4'J`Í*\ ?)7@=4\TBl%i׭7]6仼of޷3 cx!XeYvjtM8 qlAah>'OdYeСBAUU4`:4 p\.K׉biӧ,֣HMaÛoJR4uHaHC7`=:0/?V@[x ?$I$,mb BЧii,04j4i%Nbt:]G, n7;GÇݮx<] "ݏvbo+} E{j{iYOMO9Lmy=eiy &6GzTXtCommentxs.JM,IMQ(,PHUp HT0200VJ.MRPMLVW.IK- AڞIENDB`pychess-0.12.2/flags/cg.png0000755000175000017470000000243412641567764015773 0ustar tamasusers00000000000000PNG  IHDRbKGDC pHYs   vpAgxLTIDATX_h[U?6iKf2q-s/:ځ_=/}ʼnBӡQFV@͖?Mvs'giӦi|{s.civٶ뺮;άF#fBVX]Mt+y%pݝl}]qǶ]ښeEwr]w+gevqA8OK1Z^zkdE)ryf B@`RXLn_7ZNj?{O &}1qg/HKq`xߴ:;wi3gEh,;=@G|q_'W>nƏ6$z_x'`rc_drOOK~uɟf۲~> TZq95N_}Bf|At]#i8i eߪv j `ޗ㛊BlN9hq!z{M4[[V@-z40t]C(wg|o uҏ!ɝ+͸i`0e2eYF[P{_7Vp]Xg5CQ[ʏ^]۶mV@{kg,,,,,.:aaz,-.B*JR _Ȫ!ו(ޘJ`Tj>UP( Tje_Lt6{V<z;:Νfs|~ffvvv65h4F!L&I,w1W[az^0M4M@FFFFFFX\___?vLZyS 04"""BG|+FV\#?thG"L&dIZ,.'_^U5nf@In;Gj'?tk- )b~!++@Ž֊{@HuÅB}YB)'PQ&Ԉ hоF{wv Pn8Ӥ,,YYzzp{pXIʼntZhm#%'ӷ@8ShHj gZq`ndnQHDZ^}\0~ '20d;zdžՏͨGdI2,})8Bj2q3Tb/SFmoOGƁw67}~j30h.]@vAv~ŊAH](bI$IR2Y0`(---8A |;@0[ۗl6 PEQ:eRz-l./FcxQK\.^q:f10),{6 EQEbX,H&eY/\ Դuk[[,P( efeUs ։Bx'gQI$I82k係vKRT $W ԊK$Dyk^gNS~r'444444s{sd2̋\q*>9샾X$/|1Ry>SgGZGzTXtCommentxs.JM,IMQ(,PHUp HT0200VJ.MRPMLVW.IK- AڞIENDB`pychess-0.12.2/flags/ec.png0000755000175000017470000000302412641567764015765 0ustar tamasusers00000000000000PNG  IHDRbKGDC pHYs   vpAgxLLIDATX[lTU}N;ҩSHS@b+m BI Lj0M@C'J&j>bUĈ`x!NKB[:9ۇ6_Y{`3iVRb"s,뺮Vōg'o|>!B1bb]]̞H9Q&~;>P4 HOOOOODLo||l|d vv޻}g ;@N7K#Goܠ\dx[Q0_;BzY#Fhtt$0ܣd~= #!'0>0.8{SJ `[4$&$X l.Gu8iGpeRR 0NA7vn[!KUc0wjX{8:K^XR9 +ԲO؜㖻 A[.B2YlMBHڱ` ҧﯼUEcqG"XW%4 %n.lHm=8"i15h_(>b3E|*ꀃ43J<6ǿ_W?- ?"m@h9@Eni=eaai  {vyv hZl'WaEQ(AjyWE϶?@Vp?_ ii@ a:Y)F HHhnvq @5111Q,]u `uK68Ka=@Xx d"X.>pLփ(j`D2P&a <&˳ٺ^b 7yu7(+#а2YRRF^ts')I`55ˀuH)D"HDe!8GQQCCCCcaX,ŢMMMM 9|^NL͋o~gh^AAAAA""33B|JJڲbNu,r F67PbC0llZV+8PZZZZZ }}P(bk"7777'gjj^ZXUV݈;.T'b IDž)HvnMS-3P_____NtB\8ÚVYYYYY)D6% eUAƓd `Z[[[[[řfӖ4mioߞ j!:p`pnʹUٸ"V\꽲7:zlH"Aʎ? UO7 /_ͥlcGzTXtCommentxs.JM,IMQ(,PHUp HT0200VJ.MRPMLVW.IK- AڞIENDB`pychess-0.12.2/flags/la.png0000755000175000017470000000242012641567764015771 0ustar tamasusers00000000000000PNG  IHDRbKGDC pHYs   vpAgxLHIDATXOhU?o&lM 5L(PVD=6hMN"GB ƋK ͆ڐS&nI&I3޼f5%wo~~y8!i;'G-Ǯ뺮S_%8rtZ!Py솨.`e%JRL&fuBŻ@[[[[[mKk}}] WW- 2eC䪸7{ll Bۯ!d^z31,qqQ5 8xKws';?/𯱶o8k /}pĂͥď"$~|cGg:+rybN\L8m4MΝx<ڪ(@9|f!<=b CB~ nR&:8======~ښeYaH=w+~eΝuv8.v:';Wb7Vmu[m۶U&J@x0v뛟_Xp0 ŅXZZZZZyCt+V\ZRa*<^S pX P]]j 3gL&|yrrr23X, L&If,w11pq$>iiB0 D"lmmnnnDwww'Of2L6{T}eYe'VU7 Prꔐcx<k2O,@]>FѨ彩P^ 5TjZr\.D"HI<?^ۿRT\yR)I;T+7!/+XGzTXtCommentxs.JM,IMQ(,PHUp HT0200VJ.MRPMLVW.IK- AڞIENDB`pychess-0.12.2/flags/tn.png0000755000175000017470000000217112641567764016021 0ustar tamasusers00000000000000PNG  IHDRbKGDC pHYs   vpAgxLIDATXV?LQ;8i0\cMl i E'7袃 ql,L[7MS%M+;Gi(Ѹ[{߽}ws'BA<#cEQEnim_cQ` iiõaq[w0Fc@( BŽO].yyu6+=Lޑ_FA1^&|_[ nj|t>@f63 ZTGן9scJN,4䌜yXZ]ZblzAqN'@L Upn87`4<{Oɇ̇ k,,x[-䥼+]7gm۶~AEU`kjk `>|+W`oroWÊ(_| I8x=Ixx<wwu]ץ?;%οsnܾ温s;^8N eYEH;"p%V[ BXmI$IbT*J7yd81k4D" 43ᅮVIJGsZ cyy}}}=l6fr\.72nJ6nv˲,2((@0 @2L&_}cbصkZfL.r\*K7"U㳂:^ʧ$±,UUUUjgO_!y JR)4M4!NiڵIp󻁤A &5z^JRT:6nn"nh4uzs-k/EɞU|絎QZd;[Aios/7~ZGzTXtCommentxs.JM,IMQ(,PHUp HT0200VJ.MRPMLVW.IK- AڞIENDB`pychess-0.12.2/flags/ws.png0000755000175000017470000000245212641567764016033 0ustar tamasusers00000000000000PNG  IHDRbKGDC pHYs   vpAgxLbIDATX_TU?ޝnڐܥ& L#}RBe "wz#1ćDʐ Ev);;p<;N#E/}=EakKii0yzS B!c>nr\nbT*@ʅB󠿿ukSSGx04KXDʣz}wG?O_yY!/|;AB /עO͛z^ϟA* "@]9ͥpߺ{^: KXs {39Qwݰ O`L8Eh,,` $/LG8J g]Px,'`jC\U,\zw](.+ e!t-ؾV稜u.xҟ-8['+/ $?r[OTӪk+q qd-0y›96{e䣜]`?y T&w-< 4{vzB ~`p \l۠!m%WRTVhYiOAy*&cs2>n8}}8߯F\}-Wxq+?z1nt>'͕o^X%* \u]WG40+`-mo6>>>>1y~dl6 lP9jƺH$D=spP%PЭ4[@ l / bth"'D"L&@nduЭ0ilYeY`۶m  Dh4 jRlܨ_(߲֯X,Kg|>qi8֙7ΠuP㺩T*J.;B2L&022222=ZVF<BF;{;ЬҮ:W.2t:4O݊c1U *Q|ZBP(~P-4<<{Omr_6~NO'OE+wXЙZ;;ȋ7*PG=GzTXtCommentxs.JM,IMQ(,PHUp HT0200VJ.MRPMLVW.IK- AڞIENDB`pychess-0.12.2/flags/by.png0000755000175000017470000000202012641567764016003 0ustar tamasusers00000000000000PNG  IHDRbKGDC pHYs   vpAgxLHIDATXVOP AiQV!RTJeFȜHLD´M"ELbDAD];wᄏx#q'$I$ikFKcߗeYemy0;n~ͦBy B&p~h4ӧm6G`X,.yggό xvvqaYoϿ./'&yy$2)Puoi3>!4MNNL4 B(,˽Cld2L×eYBo w^U=)f0T@Oz/,.gt --iFT*˞((\T*2P:@7)a p_Ot$Kxf󳳖eYdN%.H8ki-#{DBP(t:Nvn%)fY![.0qqjZVo#Kvoa!{z:iD"H$8NЇCLp,/W|n\FM%2 f; 8ۓ 1@sGzTXtCommentxs.JM,IMQ(,PHUp HT0200VJ.MRPMLVW.IK- AڞIENDB`pychess-0.12.2/flags/pe.png0000755000175000017470000000270312641567764016005 0ustar tamasusers00000000000000PNG  IHDRbKGDC pHYs   vpAgxLIDATX]hTGs7ޘI4R(nb|TRCm6"BA-1`R)Z+})Z"TZlU( &i4&]1w;};ٸf1%s̜3?3% M4Mۿٶ;x<YXud>{qńB\x Fxܲ,K\ ^JǁJv 93MzӵPdԀoyZnޔ@[n=۶E5?ȝr#vD{Ȗ ~ l1`@a˻ ۑT*JƗ'!:mP0rcA;,oJ@w~exVBO;u՛7f kti~3?8 <%u .K\O9tg(+J1# M@:} âOS^/{xFi%tz@u΁h;92*OqxCT # H9eBB X1@,}Fž"L00 RBgOƃ17E&AIil92@*=Oj>\rRqq^Mx6`1#Hn#8O*kX< ndD4Mr 8-{7 r&FQQQwD?UaOoqyJ^+IY K{ :j6`uw_ 8$ rq[w|4MSOfT=oe`qe6?HiV-R1^` =oh@+<śҏOsdWg@X)g۶m*]6I8 kmw]u]xaxxxxx2H7Trv2eۻd욛UjeM[XLQi[%%{beuwD"H$pj76 0 |>******&'''nuߺ%Ꚛxܲ\-,4M4͌cUY" *}xP.DZZKBPHT\@+`0]]]]]]PL&ɤ~/D67rsAQCIU\T˷_"H$upeg[WNOrpq=*?:ztjוUɂ"\j^ŒO&=H.{XɹBU>C EGzTXtCommentxs.JM,IMQ(,PHUp HT0200VJ.MRPMLVW.IK- AڞIENDB`pychess-0.12.2/sounds/0000755000175000017470000000000012653231274015070 5ustar tamasusers00000000000000pychess-0.12.2/sounds/invalid.ogg0000644000175000017470000002045712641567764017241 0ustar tamasusers00000000000000OggS+K{vorbisDOggS+K{b- -qvorbisXiph.Org libVorbis I 20070622vorbis+BCV1L ŀАU`$)fI)(yHI)0c1c1c 4d( Ij9g'r9iN8 Q9 &cnkn)% Y@H!RH!b!b!r!r * 2 L2餓N:騣:(B -JL1Vc]|s9s9s BCV BdB!R)r 2ȀАU GI˱$O,Q53ESTMUUUUu]Wvevuv}Y[}Y[؅]aaaa}}} 4d #9)"9d ")Ifjihm˲,˲ iiiiiiifYeYeYeYeYeYeYeYeYeYeYeYeY@h*@@qq$ER$r, Y@R,r4Gs4s6pR4XhJ 01Ƙr9s9H) tNJ)=Bz!B))C(!R뱆N:k!Zj2(R=PRj){K%ZkK*)z9RL-``'EcbC BH)RJ)c1c1c1c1 V+j'tfdȥTD#5b%ء`!+2Q5^+bj, AAe($)XSȔRY%tL)F)BƔc)tZ=TJ @P` CpK(0(I @"3D"b1HL`q!246..tqׁ P@N7<':xH6hf8:<>@BDFHJLNPRT> "9@@OggS@+K{gWWSUUX\W`LH`EuX *,9׊,]Kb}V}׸G?cq& n_5+}D4 _*פ%ңdaauYv$_Wkj!lYt^4/ 09\AbX%+N}sDq=bg5>TyGg^Q##5[_ K۩c+mwk,r7%wJᜮyW.ecdzG{ƛNQSg?uٯj4Elk0R:LTԊYz`,d7g_YcsqL`#Mwa>~s[t<XaRఙ4&J-wbH>3/p/ϯԋdxs˻ wЉ:ׯyI.zon)<$ \P|(N$!6=UK˛QʂYlw |eH}~ #{KM4;20Jt춿F|2an $ 0P_y(nTf=]}IeӼWs%;%-4o,$l(eOٚ0I$W+&:a1ߟ]e&3by/l=C37fF1Fy{5scMdDKZu^NѼǢC{ͽ*Jyz['))|D8{+ky =3\/[`3XZ^ʃYߦkٰק+wX]ǵb@;?mgq-~z[z-*KjD}rȌeUa'q{qn6jS; 0F0؍HCpȆGm?q^͹ߚskfjṿҼHWUy/8k$éxǟU?T}">CW׾?Gj"Zmsl {zo;p?Z ZEX຋Yf Eרl_YJN>|s}ZbLܘrd{|~YdXڮsS_5 )1#rУ~,ܿ\x995gWL/]ᷗ5}$0*>Ia#"d__V\>w7>BgI3ga#klMlX+p%F\=vNa4 +T)> jW6tyvna;nՄֆwIBSu! _Ɋ+bn~>E!l\\jpD٦2x;߉_wU8j*ԌOB3f˭&Rq|I {U':2^W5=B1{sJ_ggc8WfSXq[+v;o~Zفzpr.~a2t ?ɫSZ^5DOݿڹ7QؾE7ߡJ7wZOmH!DA +yG9G{ڿUh2?}FkeDlU;[q͞$^-=ZנYL@_uGjVtH"f{.Gε:Cm~|xLQw~p )Iu&1#| BïV}}l:@;n΍qί+|PB|OȒr[`.,(F),b+2սzєFnui-~ygzQ[\?~ى 2V̾ xCF+ugR+>~oK}ٶM&JN 7%tϰEVlG1s8 K_^# ćI .rؔgf]:>%2Yn}.ڍKIR~>/AM|/g">Q_|z{Œ{\~&Vbk=[U7eI)ИW\x%S\?stv__JU/bS_[ݭo9NZv)Y?Ozz,ޡOmsn]Q_{qխ6yXuG+X6i 1m+Qsz|s5^{UPdu-w 1r "Uϥ7zx?-d&FD{dZdOLWu\z4>霋.)5S.OLFf! xʊE_p.}m;ߔT+ [ ߖ[\I{{l_?3]L~V1Y?,=^{ܖLlAiwp1ٴOd;.~+>m̹o*,s;kvȅ"/-ͧk08*v_5sOM[}R^ԯ|6Uµ222\xCmO&- ~Hy^85drƻ +waC/ [ln?YyD/0_7s$Tm9&vrՖS(K9ν8m-YWJO4Ȁ=y$ԎԬ1V>-k8k|xYԦE[.JLvjda﷘gVRO/J`z]U_mo6F'mv\&knp*L}ss}4at}],>A.E'G (at?/&[l]g~qd%2@yМ@|v1}52#5 ԥA9tRŻer"kxsVNwM锵zd?U Z8힀0 }g#eE |}g2z_ ͋yGsMs(c{ ;Ɋ5S<OggS+K{8>5S %].Q5s:݆8Uן?爽vǻc ]V zjLJ1L =WdOJ}`>KwT.:nXy(ɽz;>?}q˗w'q)еg=+Ktd#GYMX/*bGϥTc}&<|i適_nǝ)-AnKM>g=}" gl}KݥuY#Z-\K[/kS3/oǕwץ^_{o.},ʀi/撥cX,_^4=_gɊ#.?ǻq<2˳=\3-wF߆Vxfyeܧޔǻgki<n Otpychess-0.12.2/sounds/obs_mov.ogg0000755000175000017470000001343312641567764017256 0ustar tamasusers00000000000000OggSvD yvorbisDOggSv-vorbisXiph.Org libVorbis I 20070622vorbis%BCV@$s*FsBPBkBL2L[%s!B[(АU@AxA!%=X'=!9xiA!B!B!E9h'A08 8E9X'A B9!$5HP9,(05(0ԃ BI5gAxiA!$AHAFAX9A*9 4d((  @Qqɑɱ  YHHH$Y%Y%Y扪,˲,˲,2 HPQ Eq Yd8Xh爎4CSR,1\wD3$ R1s9R9sBT1ƜsB!1sB!RJƜsB!RsB!J)sB!B)B!J(B!BB!RB(!R!B)%R !RBRJ)BRJ)J %R))J!RJJ)TJ J)%RJ!J)8A'Ua BCVdR)-E"KFsPZr RͩR $1T2B BuL)-BrKsA3stG DfDBpxP S@bB.TX\]\@.!!A,pox N)*u \adhlptx||$%@DD4s !"#$ OggSvMPK(#Ba3T`365)eH\w : xS^&^ښ3m!i|S4 -ẘg$H )PljUQnʈ&'q7ؼe01EY_~|}h=qYyR/r|UQ_c}<&!UJ^٪J7P޾+*@IbF1$ގ#;vWϵZqo?+]]]U*,^W[:HTLïw]a Va4$jz~>9]4_9ke)wόSU"p>A̰8?^3:دb@E\ѳ)"TȓRyYaT_+-_}iݑ2xsʢG4di}Lyg:c9Xi亣XEV7. qA8+>'+vf8YZd cs˲c*/nѾz*>,[/^DRA`M|_%mLW`Є Y#7M'J ̑L;v.t&M%Pտ'ǕZ&CLʎ *:tQJ#Zoqy榚N~|Q ]5esOՂcIѱ(ӛk˒;j=aVbxO[K <]Y2igј#ۛ:Tpm۪8Hcad[~?DRPAmۆhZ[1_ #ۤ ?'ЭMh^\jB^A" PG0\GF秫@$tfE5 U_3]6F~Ês >:*-) Ǜ)=9ƒO$~أs}]G}lfES>=x_h galatj_!UQB|}3PiQ!:[y` >E^HLڃUC!JduB 5hrMڻdfDM U?E5a5~:UUytՑJ{ϻ}ËgփsL0L4}[x_?a+9a䣜ڏQgjla Il\PK)<{CGKz"IRT|x56Kuj9JٯᲭNOy}|C/"zʠ  aS^D/޸9ۃE̮>3jUVUYYЫM*{ڗ;.kwa}əL\м RQ)w{S}īE|I-+'eYz,< !$My2–~^X>fm$(=B~#;̌2#U mn{oVWܻڧ{?UwcZX۬9pzzLIBav|3Zf1Luq4sxOM =y^Ȥ{׳k4UL>W9q溯u6K7if"+M/+\F d{UHO_OMNge=9eOx T8L;VɒTR)mEpychess-0.12.2/sounds/alarm.ogg0000644000175000017470000034755312641567764016720 0ustar tamasusers00000000000000OggSb٘vorbisDOggSb٘^4qvorbis Lavf54.8.100encoder=Lavf54.8.100vorbis+BCV1L ŀАU`$)fI)(yHI)0c1c1c 4d( Ij9g'r9iN8 Q9 &cnkn)% Y@H!RH!b!b!r!r * 2 L2餓N:騣:(B -JL1Vc]|s9s9s BCV BdB!R)r 2ȀАU GI˱$O,Q53ESTMUUUUu]Wvevuv}Y[}Y[؅]aaaa}}} 4d #9)"9d ")Ifjihm˲,˲ iiiiiiifYeYeYeYeYeYeYeYeYeYeYeYeY@h*@@qq$ER$r, Y@R,r4Gs4s6pR4XhJ 01Ƙr9s9H) tNJ)=Bz!B))C(!R뱆N:k!Zj2(R=PRj){K%ZkK*)z9RL-``'EcbC BH)RJ)c1c1c1c1 V+j'tfdȥTD#5b%ء`!+2Q5^+bj, AAe($)XSȔRY%tL)F)BƔc)tZ=TJ @P` CpK(0(I @"3D"b1HL`q!246..tqׁ P@N7<':xH6hf8:<>@BDFHJLNPRT> "9@@OggSb٘ P{v woMku~[fX`JVc3H^$)1"$,18"ML(!3h(-"bqai1L3 jZmQ{[q;L5LJc`%l%`1ZJ^?b T" 8HQ3(@dA i DY HIa @@bD"NiZ3Tx눉Ղ-6vbi5D0aOseVI9ycؓ<\o}RXY`@FYQs,Y֌ dQ]SB]LX7P2D&$ C@'. & %q2,G岄Ka"@R$ %3-g) H2IA,` # ,((!4%aQBSJ)p pYTD(B!Y& 4P,JP !Ň̕L`xp N8}Do!@B(C)"G20T01Q(DQ@c:& Mb ;uJua%>ԃI1=0׃cXG" P#.4!PP ?!thD1 cC@DM Zkq 0S.XĒA$ "̂33D)! Q810  %u.PV Cit8a(…'(1:CZ4!0nF[k aaxL1t: ch"~v8,g_Wo 2 %yeP*k U2 TZ2 E E Cc5R#I2I%|`K &B"L\.GHe 0$d)Cb, ,",BD $B% " "`BJ.•̼> 0#8G#G8b&0ǧ.bçq @ qhk.vƄ&~„`1DT!DA\p0``3:`$@ p  $\NF+tLtG -bCb>Me4Z4abцc&"z . @d~4D ;%N?W轁*PV9"˨L̚%C<, n9N'zFFj "FaI2J,K!B-*ec0G AK1OBB dYDDEBID$fɄ0aP`1JHh1Q%`H$K" QQ8EOG5+\}h&:da^:<8823> ))"*joN=BRW(@[ap\#"b"L2c2. 0x -Fa\=$4A y}Dhqzxu!#E}Dx#FhaC_Ĉ&BnG>$ 51&0&0`4!ZrDѴ:__WFJ~?H$ P BB QLt1YtDdV.63^(#*ưh ŒRapOX .G@(0,Kń2<.!a0M0!DHS !d\0b ( BJ AD`$R$$X &"J GeLM_OH:1G:D (u FBZ Ճ 0m"j]c0$h14}!R0Bc#AZ F1 Q/tY}S (KYU  BCI V"L2("+GHe L, S%I2I$ ,HH1P,Q8-*&")a.!@fZbD i,$APa 0B` & &a$LB01p(PC-Ūj0xF$dfL1Fo][;`XSP:Dk3t:E IQ؝00L1ׇ# a1!,F:˃B0MөyPFB&A= ]H q`ȑCV8@h& 6Bbh]q"Ʈ>:6шhb C " &10oEb;4Q6T87i*DRb!̓WrK(EU%ϫ*@FY,"S(@,!RY,IpIb%P!W(`xBW@BQED&, EB¡ " BE )$3 $%  axf0a(JL BYLA!|x %ǣTpP(11Q%LGRE,ŁC1hk@@Q8foo`ɐװ3EUAAUC qqkF:x^p<$d Ƅ 1AaFwnG@W0FW[13h``tֺEa`"8a@x80FGA?B-Bǀ`ЁB}uf2]H~B7)$e"' D5DQ( 6I ,-P Q(֬n$D!,bрXX$RJIbDY, 'r(%E D(&dB>#%dB &J@ (bBLf  Eh@Jd0"!%N0jv"(*-C 8u{@D+ |%Nh )ɑ#\D0(irHF>M0Ӈ?$0E %oZ ;Pcʼn1c1u ("é"mvDL0=!w[1ġE#AC-؟ `#6#oFG"~v V,bg$!A®I.̬Q @  , ) eQx\9$DY0- $$`"$` RJHHb |FP! 8ŐL3H!%f"& -""Npax p a&LĄB#cNX39<>1\cx&F h?@]2DeGL%c蘈aƩ " Ƅ6t=@0Zhm"0qt8 h!a1c;@$D͈6;ClF F 0`@]aU^JvWz@VU*Ɗ`3B j=l <:5vln$$$ I,R#C eB&P `L !'AY%.*B`ff1X,D &)XDH4)BEDYTwd)8nguhPظ !/Fx Hbu fx<2ɑfyz 0<Sb!jb 1-7}hd2ޅND TGF :OiH'%>0^IMC# cbeO p,v@A#S 1Zhat!0b mh: 8h#ˆ: )A `Dra!$@@n;,Ā$Կ ITW)$ .23ʕR ɲja@If5(R*Y5dEQ]SDG$E!$b(%" ! _Ȃ2, )AL +勀 &`%JB$L B3I%@1| sqgY!#P($"0ʑ@ ) bf%*rd84a11 @ P\THӠX )f"J hV d@ @UDԪ2+9J]K(Be# WE2#:ȼ`‡za\3^yĈm4-$C5%m}]! @DZhZӚ~k:B1"D {@PEUi1b::0 bu [YPT8@:t hBF] ";!C!uĨ?L40#FC6A-n0EAneB#`0hFh(F,U,Ufi * ?$ @IU֚#Xmc (: ,TTdUTdT’dBe DhP,D edX@J(J J g9'i1q1J\\@Ph"*$pYR,%-*"F$@ CHAHBJ&`^y<@^\p%Y {7e<! bgFPDu0x1̐0#\ N0{ N +H0EH':Bl' a`{4;C T614Ebu*&:#h7膉L4CCl @@,@0M fˆ<%@HaDC_ Qseͦ/7^>(c-k6}! g5 JDYK EQ!"gǡ)*3IIF ө%I, 8<#`8ౢ4M(1q&r(@X>@BP1a8Gy>C(a)I01@ 4 q%&YBJ k^^^uQq2|zeta|L Cb vi;t`t^G`: y00 SGza@ VP JϠSrb1PJ0 :0a`fHDi;B "-v*&cC11&(Bwǀ(ttaFg Ġ -haC~vT0$̰κOS2 3Ӕb7j*ʐ LPF!QYKj dYTg2 ʢAhR QQK&)A4R Œ$$H)` AX\(.PAI C|!0@AH!`@Jb$$X,d M"PTń"C A"-uG^Ӈ(qFh @& d" cZdAMPAŔn H!DG誨*^UcDbiZC} 8"=хѫX1ӂ(b}jkaSՀ@3A4 Ũn#2:4AkC фBhch] >DRҤحfL_ny wI[͈.29dTiP TЙgT+*j, R"BH*)+`#0qH&IAR2KB$HHD\4 `)B+ )!I`8XB$1`fHD`d@@@ )!"E(jgkZ 㦭XaL!̧\0xJ" @0ګb@0BQ'%}at'B?t`aڊwhF1p|8k2@6A-Ǡ42@A[8#3;6QXЁz̈́mQig1qD 1Al-vCUEhB?#\!|XL ILFa\@B%M"DL('D A̒#z=#0R=pܡj) 2/#"&$p8  i7C-Y(:Z  &X*8 j0abgXXFVL q8c4!Bn_'Fΐ4:'a@\Hۥ;: O9Aw8қbڪ x„ -8f BZ B"-hn1b~7%grECwL.x ;¾1䮼!&t'h`g[XD%l&%#p<PH)"Lh"sPaD)`Z1P b1J!3%@`B&ńi"& D\Dx ̧xq)q2$8f0TP0'b %& ##%v-6梤ŽH IcнU5T!O WH8"f0oLt+0ЬXH0p9|rPDT)! !&".dKB0 @E E̐&HD)SQ"@b` Q &3ׇxq})0C )`D>@^!i0((VQPL5juhZAQhMhf`f`p2$s\F_?10A^̼8C&.ROA6O"adN0x'N5P: **NC)a[C0p:on4FDBC3у!QDm1t"aH^v15;c ޲E%1<kAR!1EDeM`PQ&BBY5P.JYH'@ d '3 ML&)&J'p Y%b-"Rq@@9 \B9p! DEDB0,"(!0 AL,!PL a BA,"$#CCL@M-(*XDmMGP!HDC<[ԡh V1h( :F `o04Jԃ+yIH# "N48ut FGhb1:xJj"tе < a46b3aDZZ0LF #\0u . JJ ( "+e8_vG3tZH诔|sL@4 +EYKYv@BUevȲJY&%KBaӢb`QQq0hSE@DR2(0 `P(L8XQZ,"`bBJ bbb"BAD  @I)0%B8RuJ-@` Oh#I(#8 ZUΞP]H y 5sidC#c0F炧>2Z:\TP1ť1;F7`d<0Ё100m&DlA "Sxh70cu`-$ctFg)yM;Lh曂P,C$DU IQCUb̊@;'&JEuȊ*Df t NKl&+`9\y OR%BRB2 @(fРD&DT("(@ $!%3,$ HHS@@ Lbb @[jkqjڨ# O$c2 +Cc^+@# TA C-Vq" ^ ԅP 30a5G$кBBAJøڈlPJe3uG&D_%k> 1(}ƀѺ}Clƈ#58DPG8(uC@OE#!j!jQ1T 羡T 羡)U Ħ镁UPEX#$2Tж Peekd2N` KW2.$ eYABiJbq,&C !&a)@$$@@SPD,!E&BQQ)3hAL Hд8ҢB0C !YH0% @@ Db k$ ĸ1jƀ!0D әF#.G.00Wf14daf57 UUpꩋzOC#h-bB(Dq'TPĴۅ1  @:Z#D#HG:p`H-  h 7&ԁct4T%1qǀ/jCKbߕY ǎe^PY֘ @R +( 5K;YkȖȨN0^)32pl$ 0y,c1 "N,%\>8D@B2LA L)SB! f"LXb1B"B11q0$`)d&H&f R& & 0AO+3ɕDqSU{BbCWu  a(ѓP@h$L̋'<,F SbchEL4DD3zgd3Dk1w/R<# PQ58FPjLX}.&Cg$'wD"`8tGvѺ h (2tn@@G7[W } QTs_tGc☊6x˚hBߍȈ2$2y 2.l êu:!@4:g%Qe3$`)$ ID,Eiqb1"&.BBX£rx\!Lń"L&)Lh&4 "Db!B,"@D)ZY(ef,EYTB)  u]s%sd!rPQ;@UQ 8!,A3&pL$9< 5bgUTZ3j#@HAgL(BG Cu`1&(zDtz΀2h- v BhQ}Іt`@]4!C$`Db ]qbh߈:ĉЂ!##tA!̳B]C9~Z5PP߱7((ô'ւ8DV&PU 66 d0dd" RHP",.0J JDEBPL@X""4 "%IQ`BDR1!b,D(fJ)q (-)QPHa EA㚐Gr0Q΢&Ñ. @fXQAudk""ь1#,bցT n^jZDU! iA- Q(jHC?01 $Z.1:xE":^!4Ch[#Ә~aĆ~#à #hM_$Z:: @`,ZF޶rbmd-2ahz6rSX 2 y'eمd Qᡕ y0e5" Rb1J)q b ABH"0  Y@B L )%@@0%d!@h(hb0BJ13I "S TTjb!j:A`Ӂ@AA4,#&Ut]MlDLUQAMӴEl0P5l (XVX7PЏ~aBnw Aw&; =!> =0 tGh! T ۍb,RPCP-yb0&"k#6"ަ '0p0MhiO`a6_,"-sQDVd:@9pYsEP"DeE"+GFe&:f.`Eh@%I eB>/<@B)$ bb)$ &̄)E@ 0, Ġh H @JA,XH@(""(@(P B L@B h1& B)fQfDY\@&L@(W b2"B.{h[QĴW0,"" 8UE0(1T1![Q pRP'nha0#5@.C` Da! A?&&&Z1B$FkC Cw"LAC h5D`Lk4qB4F$Bަ QLb)ax1eT UEUF$!2xH`VpЂAȬ+rdFw$(Iƒ!!X $f 9>0P@pX@ PP",* BР x\erYJ9! Lba)LBq!D0 ``@Ӵ[MPCq̑ZmQADDE!+k} @apt OL5`ax-MUԙ82pd38(Z!t0F] g^GF'O#<,P1.D`! 4# C2בF_71ЁH$0u ˆMՄh]ADZO!`0zG!0џ `%aJv$%ZNۃ0%;ߒO-ݐB-YQ9K/U83jZjJ8ʪ@Cg@YcV`򨞱D82IDX$$!YBq&h+dr!! qJ& $ 0@ Ei3RA`Yg Pa@DR@0A "6a2<8H9r=G mĄH@LvXs*j"Dkc,S El 3^00fHL)"b$.(*.`:0P;ڴ' Qt=hЧc@G:֡a84PU"(%DDA`B L9CCFMluDB0֌FD}Ƅq"1(tь1H@NӓQ ޗNӓQ ޗ{CD5YdU%H`.HpbL% rQĊq$%`@$$J\\Hє(ą" |!q< i!"L3<.K(@b  @  " 0,0 "6bk"jBC)`BMֈ@ ߢC0ŰZ P @ +82FUU1GVQЍtAsOC.0P0=AB@@AuԃH!L}!0‹CWn:Z1pAl֍bu1 $&Rv\=,=%a4eQ /AV@VD2  A W`BNGO1 쑡$D@ K)P!_ J@L PJ9|KXF 31"@B@% P* b-NaLBC b)ifBEbP0@(%$D! 0!`Sb,&;X01`:f51 t⸠д1"^3BȇhhCO sx"LD(,x@20 |t=.10$ `a`2O8AD#"(PB'p. 'c.`& uaTG.C 8Fc`8Z5D =Cc 6D Ē ʯ7.%3R?_ , !3-gIJ"j!%aȌP(gj&Be+ DQ5(uLfHI!3,*JDDTL0JB002a& 0YH! ` 0Lh!BX`)3 ` f,!IJ&)Ai ,&`0 CbH#("0p8@z'F -v"`"b`cr@f`aDU`;1#h>qy TD:$$i&Ƅ1輞X#@ 10Bh͈#PB7 1m8Z &Z PFq"54C @ 䘄!t!"嗦䘄!t!"$EqeQc 2  dyX2BuD7tqLJH $` R ˥&% BAAL@Q" ͒ &Sa`PPg@ B!"b4Rb00b4  E5aau`g >E`>B ȋA` 0 0a"`f a*VS-iu$ hwP#**1P2Iq 1joFN8t@hHB %[CyD"0A FhhA FO5"[ j& C51bG1dø9$~ESxqJ&1CW4m>{EU! N@ +*` ""BX(9gj,RZ|P`Mwr#1 @,@DLR`H!hL,eOJJ(B, X0$i" R A qB $"  )`& b@`A4D!´ B""D\(E(s \@0 #EaH+zF ÕA@ x` \ 4PF$3 Z]z. {< %F tB`x}x-DB FDkuc B`]zH tDHd)EWhZF thA^RP|fX *;_uK SuFACVRI"*kaPJ *j PvV+Y +*) YIa0%@@)/RDRBH!!$1,\'  qV ,0rG8a9 1 DL,$ BPiBLsVlW'l T z1bibPt`o0hD`D҃vOC(`(ÄB 3Jri#($ !!p\9x~60ƅ0@!1v}$ނS0xhCq07ćf"tS0FшhiFl@ƀvֆZ0цAG!.!G Q!F A޶$L.4uk[TB&: 1( ) p$Eu!j+*LN`V He $II@R0Q4EA(hP"&8 DȀ 9,`eq!B>\0A$4aa %\S !RbB" 00B1!% XC2@L`bKpW1/5>| |W qhN 0L)8ag ѝb( *ĸ,RB5ԑEEPctL8@U4lm3ġAק$.Ewb S`45*& Q8 qt-Z;ѧ>BMGQ}1hm8LnD ކdAd>o!Eg=7DDeY3L2lU%(k1H %>c"^R"L' ( Ȕʕj`#aIL@H!FXiZD q0PHY\>`fLg%\P!%@QPɒ !!3XD $01 B@0D`0\y 0s%G>!L>t@pLmCQLC,6 1W& P~ľ ]B v" Q 0aZ  \ԡb z"bЄ -(# QjS%dE&Zkjc E  Eh1Zw0х" 4O@hF0DFc!^礞BnOxI=.H ]JU+J 8 2APPT5, =*# ^)kHPIb fM bbB%A2 A! g "&H!>Oa@!%D@0KI@ @d! f`B &"ff+:S!GSTUh(" igcv0 $Clhʄ#3Za8[Ď0> 0t!A\. 7-F1ڈݎ01FB: !tL[`CL#z aB aDZh &tAM- 1 #2a@yG :DRPYڭOX- [۱! 5++ŋ@YEd*JLĕE @PFUh9+Hba'YXXHCK!ʂ0,`IL$Yqi ! Z@4!&0 K1 DqbZ bfb0` MAD<BLSb4P @j1:3d|L2a2c2Y( ȇŋBA u@&Ac0 \Càc # 0&p=h81"< Q8LA<^ӇCoZ4.b4a~8??!B "q}-j1B!֢D`>dR;dR{Bye $GG)*  2#$( vv݉0bSŰ3-*IÀ&ֆ nEX <0NF0XtbCC @!p%.35S-q&. BÈmBB?1Qh6b0P֏1֚،H<@b#N@ĂBf~oO,(dOm.w#QTgR1NR9(P*(Y g`͜RQ@p+bI$!H!B qZ\!EX`X*#*& 0 Gb(aK0B )%K!XQZ 4X 10YJ YpOs$|ȑ4,C\O~G `2x|` ! Ǖ+\: #ႎP0r0!G!q8DG=# H$3xF'(%|H%NC|FaEB_: 0@zԂ#c,( h;&B~qQxeJ 5.<@"ީDabHGhhDnh @lEԂjmHNAH_S Rv}@#9!}7*Jʢ$ʁ`ITJAFU[R;XC JYBe E%1 H,Ib&!Y0 BMSBhJ Na(GZ@PB Jh& J(f0ODV\P, 0D(*J@@DE!&J ,#deP.(aaQ>%C|LBdI$ B"ᰄO9 (`"$DDT & &XOPPJ%I0ǃcr\11uqY$0BhI& 6X1 L+Oq}xfp`9# ")9+0]&  >℉b"HDhF$OI:=g<"iFA#@t MD0:t֢Fct4M$~u}$dA0zMd(0tFVA:/kVA:/k@(RHQK j, + 4Ȳ8 xDdpv:L ȢTe-L?#PԬL(I4IHDd)R$,B0KJ(Cy,E$30%B@)f ,1Q>3 Bh!3i %bA ,1I,% X B(1UVLЇÈG=^ 3$01G`CHˀH<+5:rĈh}#1BǠ B1[]6H0:6B8 5N b)Fh Q?!8 M`b11aDAuu4r,_o)=frY4;$ߍ U ^9 K"pu 2Ƣ&%q#ɲq;2BUXVjX̄$X&` ̒@cZT & (E(<iVA & ! X!\! B@1q #bD\0Df("J1M"YH!,HP!`)*&6VQOa;[GQPA%1C=fɄLQALX]:`ԇUOS'<1o}F;P' F}'u۝#~ք6: C_k  tc Nؙ" ~ -C7vu0~G?t#$Bah M}q81'(؈o]Z^o^ d KJ`P}2&@( rpi8P3PAfAVTWX]C1d,L"DD4P4erBZD `&\.#ΓrddJ P @0PH)I$! )1JLD(3 $ IhM ,dqa#G6.8 /q iX,Nu5 GS`Hz>ރ cp ,2:SCdJACEwH !ćFCKu&wcq0P&MPGETZ3`BGh AP4M&Bh"zhcbh`tc?:=hc 'ՅRYH~'Iu` )xAFFXE`%@D]ψ*pdQi@dV$A,E2"L8bdD KB `&a9\! @`& LP(.Ȃ`Y.  LH0`B!I 10R!R [G:;1Lt09<i"6FdGIMu<: L8fȄqlF zCudr}x] C>D뫽{x衇 "@(7 FߏQ0x0`"vt]آ u ( iq #vЌ;Ďb#D{0FdM-F b @o!#Aj[GDb4 `~ѬY~ểRh,Ys(@Q Te E ,UE @ DdYT"cxH$De\ʡ`XTH((2L1"+P$D% "D $% I&DLL L UsBTm-b)v*bp`r\NjP0'.Yb0\#Ng9&Cx\; p1Uj rqzB؜xPg(#Ay8%!LQ4 zPà"FD0CC ߺhZ7ht@N7 &Ak 3F7cLFGD-޶@2"0?x=۶@2"0?x={PUQՙZ E@AfE5)D,@"Ƥ$U蕪""O ʪ KbU%cI`H $-ND .** ` C! ADLC.e+ \ ,ĀARB0 &B!S"BB2ILH|qf` Ç@TDM `\D@@ r$W2S`>c ՑE H `"jbأ/ @0& G0(.uGqfd^aBṡO‡&``@@C6}QgclFh04 jq@0Q0@DA\<5umM A Ń[Sw!RVW|ej@Ȫ* XQgBYf$"T5@GRX0t̨Y&Q QUR$HJ `)D( %d) f @ϑ#HJs$,,pYB(e)K$&g b &0 034(R2C0Vvl q9>d p  &C,PAFhB_Kb4 ۄ*ʼn '8 h:FϢ`DPO-RB1Z 1y @`n_2ǧ dfǕ+H4L1"Pxc:xJhш}F-B mF_wQeR!Ѝ˛eR!Ѝ{YcQQYxP(# 4 PC)kp2 "@w&*0Gee-@dd,  !X28@ Pe(eX2I0 ,  @ "&.`& b03$ Y!( "!$ ) "& d 0ll 0 9\3/0(b È~<, Pc6!V"t0p\\ǧ+pQ*"ašUq<@IdSU մ4!aH>B;10BOmޑ#AF:F0:Ko?%NAӥ3ķ@D01;ք1.逸p L4؈ZZ APZG Ho+Nhm0 @5C>8eձt)j>HH NYu,#:] |7PVג!ԁl_ `%b+WH'`W-ĕRYQKL PW9%6 RX@LTBJ@(.PF!`aR`("Q1J\L@a@A ` RIPE!&&Na^ǧ ST4tC?d }3z8:(j8 T+ @&G.>ݦZ0@E"ɢN~ 4 ۛjD1| 3Qޘ~GBl#!TCAB33 0x D^dj+1f2Ď6 ]  #m&#![:E%DA MV$1N6w[iESms}@+DV 4dTe> 8@8r@L+j E(+<",I$MDAQJ"."JĄDfZ "* p%Gh1%J D̠pB0x f Đ` q,D(f0$AD`YC%$HPPLQ,^q|64t $y\`Bȋ! * !lAoHaETô1f{@qFQQCBZabd@ftC  "&b !2ZХ]V-q=tiU>u|o U /*Y` @JgDdFVEV' @#j%D BYʀ8ɨNƒ$B((, B1\Jy0RX 0@X"(H0B&)  ,  aBqZ\DLKfR!Hf`I0 W LHzᝰU:5U;28Ñ>pMsi 0&yM :0POzpq|-NdBѡg]``dDGmLD AbHoЁHlAP2I^G@b_m4`.И跨/ 6h-tA#N"bG3_oYjR'"}#TͺoTݐ.H)sbE\fB(j23*ʬA/Q "+ fE!C(FcRLdd)M$HD )L!-.`ZDbh.'> $K @Y Br)˧O9a 0< P)B i1"N(A1`IKLѠDAąW9#7!1:. O L9(`!acQȋ0d@`   Tj`0:BbcSMvAGbfc<#ZG&DԃxjFUAmY$t-27cD$>\> Ӂ"*~c hރCZl &"GZkc"Bl 3^4081b 4!1 $lj{kB@Œmi]@RTDTb 4mLedeԬ\)""2%Vt3(ꪲ"q FTL&@$ B(! DBhQQ” 4B)X0'`b L,$d !Bf ̀` !Ah!@XDơCMpqp!p\s>-:t61PSg#'-8"p'GPOĉ \Wt|HUŴ9tF0  #!zH(Bet:"D 6bhCAa *b @ G:Lth"(t##fb"N 6& CGG@ 80!LQM  "^Zs9b,>4Ac6M~o@f!xe2GU8+€@VTW75,-N (IDB) bDT@AH )JD\rE(P@ L!4SB8-"rB(RH!`ɐdE(BBB(Di1JDBQE(B(Z"b$|z]:Hff:0C ,NL?BL at#!IB.c2<~'9[4#F6M0GC0gs,D>ƎТΡP@A0&@o:46јh-菾 ahHJ "p!1h1`u1&tК8Z Eb61F삡iT${&9f żcI~;}eeBPFuv@HeU 2;& 4F 3If""&Be(% eDy`Y0$3$ @&4 &" f)`EC\(B@`  (BhR%&Jф)`بj 1^>jzEU1igv͂  uzc(V"FՍ, jb hž:f|C) 0!\@&@tF"X0t 0 <^}Fc8ZwCDݮp@)дߢ~Mn!Bԍ~G"p2Pľ;CӍ~OAE䅆Ҏ彏5'/4dv,}4] ePCe+ A* Wl ,Ԥ!dDURdfp8n%j b: Ē$`L C!B>_#Gh! I`!RdI1 1!@ X2M $I$D%"d1QqB2!bq cubP וb9I*VX&\z1[k@F<($aff' abL8zFbBh! #8A&Jct\ $aHi61'0Q4B H!$ BgD 0D ]# AGA^O \G$яq1AGǠ~Q bGG&F7 5 L@k>8APN;K%B~oRf<@$k(0Ss'ѭ1)()IbpYJV8 (S2/ BeLXL\ $"L "&JB! f03"4aq  d!q \1*6"j: #mPV;*OFOF1-":fgAEࡷ0/"0W. C0Wcȋ 9gNPxi <\Xt2< pRBC @# Ӻĉ1#tDupR¨3!a!: |$'0 ޢ{14GmC1b `7+ Z:DƢ^DnC FdØ_a_Ғc~͇}"0I!ZR  Y BU Ȋ:NdL$`0DDh1J(*B(%8P%"@2 h@ ` 0a ECP033BHff@JL  "`")$H2\3<8ހ"]4:0{:0&>0@D uq:"( N'BDC"EGbb<ktt6 M &0.a: (\pL:5Q8$g -a5-&@A4uF Q;Fak M7(t @@$}d%٭f I}L7{OGVjƐ4Wt{C**E&)%] "jVe eB J*9 PjuH2Su 2k[;;Vt-`IR21IbDif1"%.N &XJ e)(QP " !bZDȂX 003E1%B &Ő ̂H B2@`KfAB0!`! )@ )2`& Qá'p@ab0C#a 282:"t Cu2  K> Tg7].L+iBBJ(,H+GCt1 tumDa`=#\TD;-@6!hD!Ќ&1tHL@&°&°we͐urW@ RDVPT]dP6k8$G(H bII H ,E4 !D3!aŘ M@11 @д8 eQA h1Q"&! <&d<23C•&Z!r>|bTGЅ:A1!^0A:`C+F a4 a2%0bhnG 9t0C >!dh 4g8*t4&TG Z !4!FctFB0iƄ tֺaBс=ma~0BHhT#XOk[S5c?p 7DYYCʴxderDD%ei 0fX 93DIH)A(E1-c@T ˡ* $!sAlc(b'pAĴbj1@DQU{< 3 d|/4CpQun!PPddmt "APTEw5H21$LLu6bQhcD-]"1!0c6=@&h!6Mb@ Y@\~EӐ06˯HjA xTc `H5)2>$r0OP "`I."J$` a)%P\Eh&,B ie@y rY! 4-*Δ@`b``@ f"0$`%Ei%,AR`@H"h". "4E`Oy<0(`Z:nALD1@>#!pdoo* 5F4E@UN*a =HEJ=uda2pП-ti1vQqLEj#f8G䂎! 3C#t F$Èmb qDЄFd@Z3DhH$QhhD X Df1!0цz7PYTD2/@$& p0 (* IJP d5DL&̐I$ 1"""J L@ <0 W0!,&J 0Ӣ!@PqPL`)P.H1  A̴! E(2aĂaE.](`'uhQ5L؏Z D@ 8H1z  a7 dull9#h}=(Dk"B!8&FrTU8B`L"}<&BHCAHF o-bL0`'20Z`~CCh&v;4@UrF[@BEi)~}7T]KeA\228& PC& Rc8 4@M`%$1KY$HI,D$ "qP ary<.We 3 XD$IJ BJ(` %B "F @ IpXC  8 B)ybB Wp d&&FG`cNδm@&F:4&Zha4Ё"6 ЏCLjm4AGw4BhCkQ#ݎ(L Bh5u Z%Nc  h RBfBFӿ8(2"7DT2*dʬ$T  RQ`N`Z PW+"Tǰ%%d,!%&@ JRd)B$fdfb&!$P0h)& ZT ` PPP. Xb !WaP3y 5 L>Y0{icZݡk"QED5TL::NxăbIR&#{" Wabab:VB@d'a`JtԌ"D0 T?u+F1"T,pP&hZ3\a&n hChbkFB76]h}!+?BwD h# at 14$3Ԁd-I&5 {7ee-Q*"8p.PVT! (*;YԬW(AT#et8R$I0K0I`Q""BD d̂dfLDiq!4 BaP(-d)I  !$` eF|aDB!iB@TH",& )qs]9HV;uqQ]Q( GQ L$`r =qhC-TOFaȼfn !3<8%FZ]'4CÑ ÄE荦cD\N]y-Fq @4[G 0[׈1DQ7 qu'0jmb0 ƴXVE{iLEPohUwDUΡȂ/*T  X9@Q3ED%1IqDdJ",$)`A & `@ 0%D@"@tc#ƈ0:Zb j}1bB шH$Ԃ>j؏#Hl - 1&FmtՃ8vBLh2CF:F Ql ǎ`1_?%KSrLM ٯ̟ݐEU!J/@͙Avp(ʪ `dV,Q> 0^YI@x3g$3 $ "qQ8! \Dz,aAРń"$ A`"̀`AXHA$8a (E ʼn@\(D̄ؕ#2d`Nm~6a+EQ:&xJIM55T'Q"#@M#V;Uu` S0(XqdE bW+ 0;&Zk1NjwxG.$O/ C1"a"`tO_8~-ҥ7i N:xtD-jmB0""^ǔ Da6O:45! y+D2ӎ,Gn2Q Y@Yfu^ 3UQ` 5LF7I" !B LDB(ʲRR"qB(03( J@pX+@) X N@T$K a8q`B@P & 4ą"ZZIr]1c ){FZZ8WU@v("BtNCHH!E8s@ȧ\&cf8‡23pG0 xbB: :0#Ƅ!Am` ` 6RgHO1at1Ʀ"qHA1 B4ZcB zѹ"`@ttȈ-:b Ć//~mNl B2w#EdUueTX"EQs.(KȲ@DDY 3"A<I@YUֈ@SI2IX@"fAB $S,B@D13ãa$'%% c 0 !  `H" @@ @ZL@^Su2t@" V{ch]F 0Ӈ0!^E2 L#3ɋㆉ P 0PB)HP. .ăFz \'1EZM 8d\!CwM !6a@ 1jq1B Qu]/!8b鈂H @`44$%{,5-i/MILKXj+Z2BL \PQeQ jG  Jf-”@*+0D'4DX$I C D)B BS"B `B8<1YS> )!1$'p9@1 H!X !fI)Hi4h3qp0 [VUL(Pa2D@ 0@:hաq"'0Ĩbic똩 J]xCiUF0@^s!0AuE4AZ-FC[c4ChZbo5U Fhm10 tM qL.1jfĉ 6DD?4h]H4@@^f$!߫_HB )52WY PQKuU"5+2%Re `v!|&:9@pUQca.R`h&ʴ5bI@K ff  b%.*. @0`0L1I!2> `D"1&BH,$K$D,HH!AD !(@ &ƴ(J bB "ă\!xy 15 a B !lD)!zH(`X8Б# 1 5a3oU:6B`աNQ4!3du:bA7ԢuBƠ1L:!NB:"q`k*0b@ ȀB@O!.(51bnkІ!  %].r`;AIq=%7,+kTdd ( ʠ\HDH& +" ^IUQ&b6KHD,%SbDDTL(̒ <)C@ A,xbB!!ÀPf!&f(M3 BJbA2b$3XZ*jV(0Us@!8: uZtzqH# تcD;1N FPb؛6݀ jj:'bB2\dx#`<BGh`yxx2bQ?tha C6a`#16u ZmAO]!#v„tGAchE>0%4#&BF@Q>RRH~&xsQ(%%̎wl"ZFX3+* sDTW 4R  0eQCR5H8ja:"&|&2,ӺXX Wr9\p8D"D\,JA@pE(_T+P!,d$Y!\O%G,  ,%B $$"b@̄!sd@3aB>4[$^3bژ]m"4j`!3@6 ZL[1!-D &Xmpz$&CoAgZІ;b_'P;b `# j[ BR.F:BD2xP]ݎhqMEF botDC QD@8o:Ơ B#d ?:ċk2ဏW. P v;BCYTW"W8` l1WNY\d;[$H43Ӵ(-Z d""1BM"(Xae)XJB|. D",""*Y( "8M  i,JQ4,CX(B a!!y\Դ0@$Јdxc gBPqǑj1t0ĐPFAjKFXMպMDN]^" 8p'aЌ7BA,0Fxq4 (50dAHCG"AwC:4? 1 Mh1C3B @F`}-8#M"MQDu sgv^Au sgv^ALT )'D2@p@fjB  ,`NIQsXE0q%EEԌjbS̷ L)  (PP4&B ąDA ipYK@,1Vp%dD)D,p(X >@!"bLQ,IHHI $A,*F3@Ń+1 |q"b( *b*0a``bbEBNP t @3y}`#ja`&<DmDCA'CzBw5} 4ao@l0da5ߍc3'FFq:h6!tt'} +0b0L1֤XK ^[b /b d-)x;b;_Yl% 3*e@UQ+t'.&cKBEĊdPD\!XTbJx\)0B@a pňp(P*EiQQQ4%3$a8- 4%$4PCs,  0 1i0`:jgc[lVq|@zLI&$4#z01vE@SxȔ8;=wt `"*bc`9x$L ބqj bkѝQB NC4$ # #~hb &Ba##th@atD(cF"4]zj!H>6$0!5b `$ؐԈ5GoeDb@X)h)ʔU (Tp"Ef psL"شrD*0e$IX(c/14%* -DX pYLP,*dfR2$$#!G+K@8hРi *d( ReBJ0Q )q"d\yq#L4U^FvQEJDHFF<^ Db5=3@a50FFCR+0a E4a6B&61b7~#hFQ8Eu#@1#;5u9t:C Ck^ҥ]Yh":."GA"CH&@(T!ʪd!˨A`a$,,e$! _e\ x|0%.E)!MBp,BHL0hPB4 3dD9b\ H`0%3@ $%1Q4C@h !,I̕9>q~: 0(Eu""`5Mcc6 iZt »xs^[BТfuM`"Қ!hhF):BCFݾ`ff1!vCb1: C"*iN6G` 1;cmD Bk!ĦC L cu`L@hChmDZ0AGd25oG&d25oG&w#(EvWDZY@hdPv&qPPJ2tYYd Y(v4I$A2AH))"N2\2pC0! Cp`A" BQB @  B!$1I!ARA !% 4aB!yq*`o6DD qD!0  %@yxPbZQ41QDE8F P  Bkb7jt40BGK$bѷEQ8@$~?֍#(j]!-?~A]֍ZWha1~Bf&19SޚX@$0?gߍ̌ʊ9&Y` ).x&*$НRdQVU"*l1db&b0$@$DQ!M1aJexC@8@\fBР&p>PpH D0$%d AQD q!JD(Eh@xLzAT0PD E1DN2ݎ0>%.046v2j (`<ջ":x`L1`  MĎn !N8bD:PaĎX;)mqbcDQ5{-F $!N u1! Q S KGG:B0;: tF81&"D' 3[0W( `B(sPRJJY1)LP"̴88DAC(NhZLgBEAPP'b` 5\Ff`^d֚э-  ^o:#rba. ^i@:TO)ӀzC‚w`A-NDca&0i4 B#0&t[#R &8ct;@\ p8 : F7`F#‚ޘB0rZX}pށ2y,B $Y[)#ʪH7 Ed5 |`vŞ -ˬ"eL LCb D(Z\eń!iQ"*) I s%E   "!!R@f bH2L ( DA,   h%*'RH@ 100mA PQEka:c 3u4t0b#К!c }hMl] ևq"N !00ׇ\ü&bl-'"mLB@ʼn[GkM좌t#65QtBjh&t>P3 =8qj;y'QTVDJxdTפ$d*j" zI(eeHP2#3*[BTI2 qx% >GHA$H0 `X JPFpx+31RB@C!X1 , X\L A f) D u$OuuERSy8<@+4-0TOkah ( P; Ā{Dd0;@7pXB=e4> 9ZD` 3H 3yq]3wBG@.Ah1AKhG֡AZDߘ`͸ࢡTGPB3t ^GEC G⫣"Ɉ!P2BFfyeY 0 +$%@(&> YQ5k(fw5 #*e$B2D,&(YJ8<>#(.$`(, ( JB,, @ bfD  PT(ci!!,,IxI^r]әh Ұ 7 #{sE90ބ1FA% ç''& (T3@ !N;B;D?؂Е C ! C QSU&*v y&>@uNI=$R'q! 5#S ! 3#71a828T {ӄXġ ]n 44 :! `1&BknWWl0лtzB'}ݾA*PQQ ttFmՍ1&v+`!D-ji'~o ]4>FF{ ;FF{ (*(zeQDDIͲeXUU` PаJBUT+ ]KRr|Gy,i! D€"&BB  ,!IDD( a"hq$ !̂K$Y &`XM@&##/  h^|\:Qд /C @oh3tP1UUchECQ[Ӿo #D y0HӍA11Fh Q #E L[S.'ŰbiGCw"@x%tDhLj B4LЀ6Нuޡ D&> ~T4"(˕&sΒ `bFedN jBYf-  Jj|H5%QVT Z6rqBŲ aI2D I Lb,"* *.$ $LqF7$LqFw0ɉ`rG,2B*HZb@chm7AS"P YZ TXK$DT\T@!a(h@ ʐ@H i`@!#K,H1! `Ba0`BPBJ\\(&FS"@`D$%`B(q͇5ɇ  $FWȁ@NX/1C>(6*TMTDh & ' F]bh`@Z1 #FAa!Ɖomb .c|hH━Wr@ZhZ0NF- (]hA5cw#h"jAt cZ#t.&0}1F䌄IOcrFҧk^@dT)"^%"j"ȢzE΅RQwt4`'`%QET'%$#2X'`,EwQbIIRR@d>`X*HD$$`\ G CX0bb -. *„03 f &f! !YB " A0 &qP4ńḍ鄝8v;H: Ƹ x +!acx@$P0NdB {a4a(%n u!nWWN[FFnW21ׇ9taۍ AV똹^ۍ\d.>p1W@`h.Z!bF#P8s@D~a>n#h4ƈ +&DȖEo cVL҉-1""2##Z*r 3YYdYC^gIEeBlcWl!I$ a8 Y!#dE@DHQ4EQB`!$d`Ah@a(_H,+@23 b̂ "f 0CHf(B.A(q)ffqJH!aDy%\ǧ㑙a o01E 1.h>&kڛA:b]CL:Q }fNhݾEut wz:ChB4ia #vL C B}UĴ5:֪ 168Ƅ4-B1j}c1EM`&& M;Z48BkA@$ k 5 Ecúo$~7,Y""*jDYdU")LEU++H"j" Du UPg+R֐4dh eH&I&d) ! q1%&$ y>#@,L`&K,K X$XJB@!H L "̔(%E g Yf  mk8+>\#DE0r@G nGb#Hk uA {{PAD?60@) mq C|((|#>wQO= {[UP 6ݡ~Ӎm4`b|MhB!hk@یnG-aFk1X&:(p88MkGgaM A01xEue^yEp2dF51q lvc3(d2 !! Bi##,e@B >C8M39Ңo NiLNh=zƎ]c_YIPYY`ZFp NPWX@d3ILDD\Ȅ@8MQEb`Y,P$1 03`@ Kb 4D)&Z &""( eqq/q O @P1qs d&@(u=ހ (bvNn0 8aZա" @A:溮B <= PJ(CNc1a! ^u'b7cD邋X$c(꽎ZLr 1FBڠ?SOP-K? g E]Z~Z0h1 16t~&C$ $ 22/BUUe0ITXm/"BQK  ' L\cOx"H&IG BQB@hPBPB'p(G@,(4f,-F 2|.a113( "RB13S@(dky$IP1^;@0hB00+0&*VӁnCOу{&h J:)eDYKWB.&5rb8fDMbd)BBBJ)* Z@( #PB!DHD4M3M3„RH0C bL`"B f0h4A "P`Zhx0p%O0L`N{EUPCQZC0EFaЗ93uŃfd.rM>${*cr ;p=OLJ9w-x>qaz'BE=#46 h#z1 FD߀ Q3F[7ZvnCG?@e= n;BB?8hСߏݮzS @F,3b+4MSf#1 AXFeFiBy(TA@'`PDʬ.J*˪LNLq,DYɚ"ȨZqLbI,̂$Y8BP\0<@Z BYB!`BASb `0BI!%`0 1 $@B f`!,D ´@" āb:p\3jq \/2p p@"(~w \w`4o"(bZ:nWA#BBG:Gއ%daKB GAB C-va&1DV{[@P4@Pc:XUMc"t'Z OL`tQ~w4-1B !&"C61qh@lC ( 2/HWiQdjߍA:2 JZ( 2"^1nhieK$I" @J0@Lb,*B @\&@R4-E0@$$  )CD"D,1 @E D, ,".BD %Pb s !@s}z}Lt U@MPPPbaMkГ!AQSL:Ё*0!! 9[u`#AwPQ4qhDc(aG1G7C}4J. .6&D0bdB" I} Vá!}- .0b?@@wcqh}m"'C4.&bm" H_Z> ≯Hl[p۪2"om7(2+*###DVT( A 8GFUYPJIdYC($g$VBu 4xLEdI̒H@)qJ(&LbLd$H@bĂ $3LĀ &)IH!AIH @2qqs1{ Em iQ\# $ 10΄{(XqCU;QT0Gg"bEb1DT2@t jC3M 8)#`` DG iG5 htLdWB^x\\# :&# נ  wC BХ 0xmS LhFa:Mh"̸oe'?p-3[0~7Q(+ 6p 5#a9 (CU 4WRvY]XF"$`"L$%!8SL4 !B0-$fAh!B AMЄ80@@ ` YWp8 Ei ,XY"" ZDLD'@ah昙I2`<(b2@dtc!`5 c"*"Q( 5^/thL u \[X#z4Eaa"#6A  q@EDDL☉*#EPJuM a@0 4M#~m&86чOO붾C8 PQ@3b.8˅8˅w̢T`:x3̃VKpAFV 8  =RTc8'$3@BJ&R0aBa FXP!A`I@PB @0 \,K8 !!X`&"0$F1h <&u1LC:PC@ u\mCEApqD5zbUEE-j`#(@Q̄+‡ G# yMr=ڈ"j؛hHx=.!xZ:~?ȔD!zb##D c Ikڈ A.B a `/6!ꊄf Qk:x 8 ݮCA@ LO ƴ,Կ4Ed`vݐY"ʒH,@TE )*Gf*5ex *+B6 P84ĉ$`,Af((PB0`x,2,T0Ah)$d&"b a) dH3`AB@(Y$ 0@$AI̔Pf0 QA( !^ׄ1d` 9^+O<"H#D 6w`1Ď&F@YEPCM[sut~rAa -ox M@9aFy낋A00 0O_lchNC-M4D]CA@uÈ F!@c@a"QԆ B ]QbT_闶T_w V:OΊ!)!`q8AhȢWT-8 dd΄GcNq!S%D8D@CPB EDDh!K) H $L%&Je)aAJ@B@(2@(8<+LH p>9\BEXLDT(`@@DLĄ `PB5+W`0qCD@UjuH@ ⺆a( !:xE& h"FQE4X(! 8BW ` 0h Ƅ! ;:BHP2b0D@G4Fu :co Q'Fb8b !- <" Q0f -F]c 5>DR5;10zHJf'FO dfUED !@uFuAYY@BaZ@dEYVTgڐ(FX,fb H`AEDES2"qB K RR",dB1a`$CA(AL$@P`"zLpp%`ښ9( : D v6 B7ND 0Z-(*(Dۍm``8rtdQQŠs: jj` 0Nе؉! @?Ouᙠ?Fh0Qw~6 'уׇa@ 6M0FFF@Hc!Ch h"D;.M3@ަ䝆\7*۔Ӱ_C R͢JZ/P,k TW @9QF5"k(4EY09 6+Z$I&)  14rBC! !B`fEq A 0@ Mq -FfB11 &H)  %i&(%bP01G>=xA&D* xa|8 5Br18O@00<ཧpdbtP @4&L4L1bkFzCD: * içc4>6&&":Bt]#hD1#DEm-&b# b14$,~E;7MI"Y>w2H@E,!q0%AdYCMP@D)γ: RQ* fNLfBH0D(8D(JBr@>a,!@EiDEqy BX ,I,"$ f3@ 3@P' B @PL" PL@$c>=rk(""j5Q03IB31@= ?\LJ&>SGUUQElQ;@ @aO":(8t0LF0h"HNA04ED!LM"#وc48.MkA!hO+J) Fb0`$F#C"Rxn{BCjY@6mv w; D-U5!7eDu Tce0("*(LE YQ L 2#:3CCbin$ 2 0 bbD!&d%!!1HJA1ABI`"b4'p 0 r8,%B B *NPL0 /dR DRQPLxP:t xJ+ēP@k-68FUTG&&db^Gj!Q5UU ch:Zb! -N~ttc at~h1 +C;LQU  ׄZ] &Н`AF[CD!#t]&!BB ~dBn9-k9YC~Z~7HEueT*'EM QVP`$**k(geU$2RPCqEC&KF  b"B!D"a RVH9 !HHR@@IHpyB)& д4&bb,"S`H 9H\ );Uu< (aq;M N; @GQY`^Z2Qe0JQUV%ReEͪ$1=+ "Nљ,Ib ˰V§B )JT2`8b \pP+,P.0@A`)BZ ABf"b4h@38E"N1CJd@LR)A `rpLׇy^y=^XPDƑW F0j:  tb'(Y(1 ;SQSlLtK!^`{NO0Lr=cBq8Į~G B5E &hݾCshUA"0aу>F41mb~#1 0ZGZ0F-9F31(B?`vDIS;zӎ@0i#j'Q DQCEY9,5V' l"5k,"X)^IeE Q2@ ꕫ Dts (*"$IA@,!YLC(-)%HHɂH @@ 0X ,8fH$ 00 dJ)ffZ!0 ,@ )\ $IJq\$Ŏr#?#1Z.wDvȬ$$#ƄWRU.DQ"|x&eQ֒R@UuETS<.ށ9X$J p(a B@22} I!1D4p.дĦi-a +KP4#/BTMAq`k?Fԝ0CkCB)!A :DC &~ `A)# c m&.8AGDZZ#8hw6tD$" >Œ1?EdL#wrxo.Ey Y%L` eVi>BZ*3v rX(jʓ,3 cfIb (SR"."bp .fB14ÓIB4WHBJ!$ X0KA !E ,AX( L!BhbQVEjcC$@@0P ccQ5LCMUA@4N JB0 PxCt8&;0B:[@ zP1 @NF1 FFmQabBuCm#t CGNuCfhCk!f4#`D !E͈}Qk}-1CACDC l 9E:[~7",)yeJKM@ YK[II-DM;ȸʊ ʲfP%X2I"XJ,"i ._r%Da`B( sy| BAD RAR2,`1B@  "*"AS,PB!#5a\@,;1P~2d&Lj%a0N4BDx@@p0DGL>]kxPэj`QwL  qD]h֍0?D@wML 0Mڪ[E4!M@0"ѡ5Ѻ#cGCC(4 thO-Cki1 ~F:ϭI3"ȬnMbߠ("[2 0SYE(ʢz=HUcj !˄I"*+2 >C) ,HDDDYPH$OyV@|%rB.8n12ZK "B mEam8Dw0Fh4QiB@`>4d;W9 #)??oRpTgQCb]EzX)"CPD=d(dYQ(3.q2,$rg .JDD@D`HH @2 @ D b!E dQX(fZ d)$@`D,H 4ALTHAŴ3-ijEHf>q=6E0I$1Cg${:&d9(HK;RaXPLzcES1Fvi=i}3R&"@1EGaj6FF1 !~/c~0aBJ CA@ Ad@J)~d@J)~wUY j 0\%+ 5IdQVքae5TDB$ !YY]UYEYbSg "1KK, 8BBXJA%`rYO(B2  H!$K"B23$$$1X2 L$ńB&@@7aq̪bk8LLL5m G ED1 5ʼnufCbvXlG) 2dHȡ@DIb) $%q 0`M!bDg!JH  €PP,ED("BhJ(R  %aef0m1msH Ƒc2ẏ\3G\LG ȁEYa Ehq F B @ 5z#8uzo&(ɐIǐ\\`􉺃 CAPFcbL1M zSZGhL#vGEF<^ d B_kB4ctԃr`D uqob1@3 FaB?͈}"tFg0@0՚$ U~Q)K^ClA]zj"wxByeB6i#xMBf@W bT}:1-0QhF -F0Y4mĈAD$;Fs_tkM@c0%IwC Ulxej0P*@(HJTBYQ֒ ȐdWgef0t1]TTTVg rN$II4S((%`J!* )I(XJ`f/(*&$  P" G0,@Af0XH0PB-F !`> A  GG74FELȐa \<3*j #42!qqFP4;Act@lt)Ht:c"6 x` +\\1H tiZ3A(`8t!GnaMb3"+v4]A0F`5Z"}ȹښfQK9M"""x P]V$ DTA@dZJ*+@C{3f!ʨ(#@bI,dI$&BP &*"!'KD$!p\*.$L fZ!.!1S 4%J,d„@@(i,XJHH 1Y ) $R! k&0@^x&Zg:8 q bC,HAAD9‹!`N4jB64:8AE L&aÇ}MZtt @O\p1#:1#>B -8"`t!jF6C7P!bh# j1!j@1Ebn44~72,R4_炁 BH pYp8`y,O2`b1` LJ(J3B(%R4EEE fL` 8a)% O92C \Z3Lh-?ĈݦsQP .q0x#9G@P1-bgk[h&!z\){@`  \4$ЅzW 8hH𠆄"S֡;"E!$@$',A#4{A1G7-! ߘh - ! C `Λ 25Ä0Z"~Rrּ#tA#5A0zo@V2AK(k @XP;ʊReE8++ f YC&2]:dU$#  0*aQ'PTB"e@).XPBZPLR>W\JJQ",$ 04!B00iq!S"| PDaf&^ԢjJBOQ`%Aa4&D':01D- @23!C!|41L>(84 @t vA@N'"Qg0~Z7D>H$: K > ^QDC? Bdc2>-҇>0]A?+!`XtQl"6 86& CbMu0ؘt'O.5)BVE(DQPR5TTәPEe ((UQPK&`:LeCT$D RH f , K8|J XP4 ` "$A A A@%AQ  B $ &R0 d@B0ǧ#W^*#&>84\@'c  c PTT00Uq#L 32y]s<L(LbUaAGacG 8b$0\0a"v~?.Ct&B Q4L['L 8<C8)hb~0AFh?1m ND BA\ ML>bF7@DD2s=;塕B~K" Jy@* 22 @dUu @%QiNpP<E,k,+pXQ%IRe K dJe 2%B0O % J"BZH0,(h1ZD`03iⴸ%BQQ"`ɒI0`!8!"4 v1ɇ+5+W渀0XU@'ut ]>"3xOCa\ #Z&tt6F P +D#J=LVSADgQSPőUAlAЄab ј`ccִZB3F&A4"uL10hcD#NFQ7EPs!-qA!&BlyHK|o@D !ȳRFQ 4 (J ( "*@ب35Lhr Qd"Y!JD(1f&`J\L .΀!.<+ YP`B ryp!$0a %]޸N"2 ]:8 M](i 1ay$␁ɕG&G#g16b #Ah-E&`SGW$?bqQM $:qb^\ĉwczo !H/5*"e֒A,EueYȲ@eFՊ"BFYD."I$!2]d-@0âFcN ^紷)*( -b~@n].Zb-ִ! v$+v v$+v }.;HYF (%@ @EEYCUBe*J%p eVil5cy%$3 *""H$K. a(#(Cc!h0DBaX+dp'pCAABQMHb<rh)q1B fP,@f0@385E#Au oBq f.>m wg(!DM4ڈ@!:F@@E-t:Pq=0&0G@h=k / 00R}H\k11Z*a DP1MNMbZL zdE!I&W^7z MM78F_Z@#0"m!Ghi4@EcBxxoBh0A pZ[ "]}Кc  04qb3h"A#f0ީ &0"A$!-ʌm0Yi8_[`(3g|o@QQW *A J~s^֘ "DYSJY*e {bb38TKID px"L, 91!sY<\%(0!B(%$1!<e)SrAYC IJ!(0%` @ &Ѣ00B +Cfs<^ qx 10-П@EELGbk#  0;hAFOC Ŵ8a&h t18DBLGESUFa`+ȁ*"Qc21!@#~ZmN}B abqnB1t40eQh! }}Q%+ىB?X#%a2R4^):*3jQDfU$pYc|9s|EM D.C) !c@ ̼^ Gdo" 1EdKw}\EC4NDup'B0D!Ď1'":u<^s#ha0M}&%ToqBԚ.=c:F  :4B cLc MpfGiMpfGi{#)Ր B'/@ &RQV!, 0G35D&&:+td4`$I"d I1QQDHQp 8EE( 0@XTfQB1`iC YJA L,% b"QqJ(FA@1(q@D crPH  &DQ1 o6j((16Ak}AD( TgQ1MЏHiBU@P$q J ua5Lך1FCnEЇ: A"' ޘ00b7F8-h!C$CaDu[M0BkFhCZ+>#n1Ɔ @30@^v@ Fc74t3P M77ȊfVC@(A<"Bi+IE0Qfu_@U0JU$Yd@H`HA&DEEEĈ(Rq P yZL  4!Y`B'""JR@R$ 0@)(a|a`0 JDR `LPD SWTEA@ xwdUPЄ8#41[{P `ӋCq`PA ]Fw<0Àupc ` BauAA4bWo8GчU  bW1Fh݁`@A)FG.JL "!0u`6G 4>TcMSzsN9X14ew`iW@d@QfmN(*.DFՙV`YUl4\$LBDDD EiQZ\\LY Q1rX,,)KǂTD0BQiEB0MD)H) f0D̐,4 Q!3 `f! q 3@a 330BZH3 0aB 413 +W^3I`BGڈH\zh@SOG`J.^v醉Z(qRzPC1B (b?]  ] =DF"N& C$B)]D4oQ8Zt[CN:a 5 FІ0Mx#ľF>f1)17f1)1DP겊AY,*XQQK& Ȫ*8]WG 0$HPH|V@8X(Xb +d0 |PpK)(3a!$0@РDY @@\@3$IL1!B )"B\d Y @ B\84uȕ"M!h&tL0Q:8f(H{o3Ł~GȐDXt7ăP "Gbd c S9$ ш fB@ZQ{  T~h:~Dƈ#:)zO0Fӏ"m-th&DhFBH> L.aoH]ڥ'&ށ83K<""2ɨ*Qf`gQQ)А5 2 $8$f@Y\SDHDDMq4`@B!`0EhB bL DD N QciQ@\@@QA@AbqBAx}u I"1 @ATM 7PQT pΑcAф E #"oud$53!C&="S= bEla<#tKGch1 KLj0 8-`]$C< i"08蠉0Qd.~!!XN A Bh]1hbC ڄ6Ѝ#D-00h1tL2t(hA^iu&SZ4:.Ρ(DFeeP"2ɨfEH5,f0  x 8(I$L,d`)AT &@HBRd 0BABQE,EEL ! R $L3LR3X1„LS%4 B@ 0bD| 0OCGbD00,ްW@pP7.i|7M5մ &fs )b!uEL`(1 (yC`ibNx]z`4+LJ@"( 1莁#sz10:&Gd6ZBlBBݾA1 F bàCb׈qF Dh:D 1M&}[Ø&F d2#R /!* 6$Ԙ`NP"#(̬5Ԑ2rH **$1(YP SP̴PDD@C@YVHBrY!@A$$@BH "1)&$A HfXBa`"A !$%Jh66>}!áUQPPJ ç< FVCT-j *(*joG@t"B="9ty 0 ǑՁF #zB #!0B_3<DoBk!D1jځ4ӝq]$8n?4FÄB7ZG\F8]C C.#vfGMàE ޖ8+kKft ʢTP Ȁy@* NJ";zY3(L % B 8h1D>x籬 @H !@8`E3@%I@$&,J) "IDA`&E(Q! @H!" 8^3W5k&3PLup(8 ʨFDjoU0+Oא 2a r1:r 0!`B q чE(hM. OiuqġC3\~@0:苣MP#Z Z7 u!#68Fh@8`D ^$6!&3Ұ= gM~ 4l~o QP B *sd% *@\Q53̞XXB p|p4@ dQ"p e8\!4a0b80@ R BB.()@   ,Pa@@f0 BAB H\5>y>|1~kFlp  0 |:N8nCDLsd#*D #x2 $!0:> #0v1t!61 D C[Sed $kF 4-xJq1hx)t"@ 1&Z0"t !!BjD|'BjD|'ڿCZjE<U@j"@5KBV BXF&@'X$ ( (Q"*.B $$IRYJɒL Ydb`8|J R@% r\BCfB&  eQ10 0@Bfj8n@,JO1$W@ŰuC 0!/CBy +^ aNFxP" & Α'bu\b0bW\4BG 4=c2: UxB ḎBl8!ȞP!v􃎨cĮ~hqB 苣.:0&tC0' c10bؠi4 >7 ȼӲ77 ȼӲ2JHYds2((@* 8Bd.JETXY0"1!L$ J9|V'BBC1K3D "@(!(@ ,b&    )!aB(`fIK& XIbɐhZ@( p\Oue bэu >>`A? j(jk  8.p$CO"p |6 bGlZt"AFkFMLv;#o4cdO `Exz+ Ʈ5>Ft ؍01>] A( C E@W5 Y7%` tȲ^̐6 @2p2DQc"5VJ@*; ( *CT@ 1pLn% 1!  I-BB(#`A``d`"ZT`0XA3 `bAĒ@B2̄"4B`! 0(0 *N6jbXDL+N8E`xA&a`&8:aZlTTQ45QtULD U1(9t(jcqE;'(w Hxa"˜p9dD(t@Gă1c\aN!JxLG&`DE56th Qh#8<#\+jZh-h&&&Q -v;LL#: qDDAr?%b s dMYRV5Dp kb8jaȊ @ QKf5 L)%!Py( UEV@b$ D,% )%",`Q!3I)@@LD, L $@$$CJb&0IJI$0d)P *FDbh `& 0`)$B:2q=`0SLP@b5 [;m` ;]l7UDEu}!#HqCD1MQ xXh#5ͧ0HM hq"LnbW~Z 6$bXt"<1zFQWׄcw :"u BNB 641cW@C:šm ]M$-lGڒL߳a~@QUVV(3ϑQYpEU%˪VYdL@HTC`:V5i ##kL X̉ztI,I$ DR`K,!3HH`R`0 a" 4aa,@ŘXT  &f$ B0(BB!40{TC-MG!Cf>DN8 " ((TUA4mmmlĄFFlLr]q 1֨Őzo\@`>0Os!Fmb4MGFA4 GkB&Flc胨a đ 3k$Ď0:4}q0bC0u #F#qR0PaD0AFG0"m0"16a"vEyؾkLaG[w{CF" +Y d$eeJU@s%VJRYT&YF,< p АII,I$ d&HDR*(--RQ1!!A(11f A.2RD@B@D ,K`) h-&*P4b @.\`s@W 3L 0q|*:ni # br TbYL( L*ZLu`(6&.x h&b}FA'`Ē1Ͱ"+ߜK4BQloTQ#AؓR $ZҠduX%DE 5T5vHj@C%Hd-5#tX$%| c)/Mbb Q1Qr8 O r(9B"10I!dX>!4XT , `DL\S(Lh!  !BY &e6MDEQ! yUՙXRdVEH@*(j,j ְGdb.x˰!*"B8MA `8ఔp(P&`",@ ˰r9!@R*RBy%%̠PЄ H2$I0`ĐD%` 45s1ׇ0^!#0`AtTh  0BÐŧ1!2x3=pH-0&88>@attc于$h~haP hOq>> LQ T(v@a!D]nl4q@!aI"!t} bG3DtD ӭ.tU}!tkKUDo"J< @@EVWf3j6 @AT*hu*Di6P%I2$J< åP\TD!.BhB(GBLF@r, I)D LQDHY2K!% !&B11E@`bK)J)K0E(! Ĉ8- (B( BBBPjհ=VQAM<|z$`^z]@@[`)ǧ+`0!ĩ'& .S0l3,u2R "@)h (Jk>DqGQ˜-0xxj qyث#CL`" CkZl#6D DBFۚغ#D!"6DDCqBk :B-LjC@0^i̟r%+Sr4 gOQ '$/sVP>fw^ta9(˪*(V''I$`BVPehJHJ\D)R!_Y> 0XBF0X((1Z,p@0E("$bb4( AH)A r C)K)@AL3X0QB2̑|9$Lf |`r= M5V;,c"ZyDZja3<(>T $̀Fuu<!40Ŋb؇$@ 1;Ќt9BkB15}H4Z )kxf`0&F3clZ8ZGЂnb'LDCQkA4 F n# tuР#5ՎrPF迬GA,-/ʬYB Ip.Ȳf ALYQU a R)VT"'p `$I"&D$LBH9\G¡  Ba9aQJb"BA0H0D b,*"N(1QB1L1E Ę!CPP  f %*N B! Aj; a:>} 0\pk@C ;UDQUX-t'kTPPAU0: z"5F$i؛* a%z8}!0CQDT# pc@Hp:7NB( MoNAGat  6`b( F&(Qk~b_w4cЄ@W;n7 0`w,~KFw,~KFwYRUFxZ L!* Q*I L2<^9 80Qm@9#O bu<&CbcA "7 Xpd 1>:La(@>ZAl/z].Pu1Ќ\GQ !'z@L3FlF6ttGBW0ц1tcf6= #!&Fh#8#8D 9~ 9~w̢& Jp@*B L"DT'vX. p4#F$V$`HIBH!$1D)XBR8+HD1$|KB>0,M(Qq&bbBQcYO! 4 "A& Ba P!\J)r!.8&TPuOt!@3p̋bq*!&8#xjtOA@TM{#UBt.`q/FPsH="t1rC 33d` @# RT&[YDuVRƊI$  YTHD8Z`@p((!B)JHA 'EdD !Y Bh0`|>O)@,@`LR ą )CJB.@A ,"FhZL9x=01ankOaH2p FFAf.ra0u\Tge@DTD@h L3P d0X ) $%A`0 B!%8|Vȇ#DAJ ID3A2% \8&S5z0A0PTEH :=o|NUU0acd+4/*f$Gat1a`b.M3::"#1:FGGH9 h1NbFb@:ChpBcݡu~0}MhM2!Ќ. @# ma0 hhĈ 5`XI4 Ff^ 'LQ@ӇG@ Qlc"4Ɓثj G >"1SWkMוO#$ch̋!F&@ !NІabF7xaL4aB0!:<'a\.bB0hMM0 6:&81bG0׹ AGF_CGC-M F-@c0h5mB/)j `ۄށCe%H4@VIdeUuQ  FLf:#*)ꪬNDf3 I2IBQ'"b,$ !|) >Wp "X`BbP̔/(H \C(P E``BBH$E)0XT(`Z\ @$$@ d-hq"`1:!çq&hP8 M`DU !]Fरa\n? yOo"¥ u7N@\j+*v~ 0ׄءZ0:^Gqq`( btġGG AA֏b1hc6F@ D O@рhmڠG7bEl~"/o fyS轁$#7/522`W*+ B=BQFu C+2)nJL$$B>8hJ FMt^1T( ":԰ jlB7!vLc2xbb "(І6HLoc8D1D:hZ`NB݉` EuN31n &(ha"6苭@AdF$F :&ba#6q`@>Ԓ,֔d$t߀*"L6 @M*C@J Q |& 59Pd Y#~*U.b{LĒ@B%  )řCp !d"DDǕQ)  A $!3!%D M3! YK B0' 󉋃<55$wTT;QJ"S0`Cr\Ow:#`pzG:y=O`&~hoUA :ry49r13X \:ԠC!haD#D  , Fˆ 10!&)&LL!SoAb'bǘ0;#2Z0@`[%bF`ǀ 'ӌ9o a1BE3e @UupN T(*pYVVJ 5o!29"WIH,a>\C,bc1QB@Yˀ T Ib, HX 0JL@ i!B!_(TT!  &*.. &qp=>z1, jŁiJW7)(ē+0F @PE{1>1! @!ua041+* H0If^ɧ\& y$1Rz#h!v(E[_ DăQG^Alt 趡k0$ 860\axiZ xPL1~#!ѩs(4BttA a0D "łҒ]H~c'xqP,(-م7|(BrY+d,jfP"O@f AIjHEFU+U ȪX&I&$J0`4DDADĸI XJ RfpyDJ("#f"%` $X`" A A & 0I$L ! R` ! 0\5yW?@^ @HǼ]&>D Ѝm7a,XA @P$1>\k qM#\:P OGyxEtF et:M[Ժ&B)B]s953\I@G$B:ADhF?Ќڈf~6Ah4#Dh}FnFFD"}pzmM a-BXgIwC2k*QbP` j!$B̬T^)RuQ]( E`WY)H:3j0=a]̒L&f0,%bj@$`KyTp@H%dXP.8\A0D` !BBH0BBBJ!$ 0c Dv8!' ( u  s,(0< 8~l#[! jo c@>2qPD ,^嵐D>$@0=E3@0!д`&oB?C =1 A8CblZkLbh@E\anGhCDhb\.rAS9iߖEBX?Hq*'(RUeEed2*j%\(P+'2*2*@@TKYcY&@NY,V1Q*IL@ f""&f0 )ఔ bB#"p!@ HI,Ypx| KAAP&H1R0AL`!̀C{1L[Ul90Ӑ#GxL!Ç .D _"@ -؉ B& F a9D@PPGqf#tL^u͠b 0mLĦ0pkAn:4B;`"Y #2 ZG41#F &Zc Q\Ԃ c ! ]0# 0Z>8Յ$.ǰ@ƒxKcXl} A H+Dek]0he>YPȪ2 9N2%DȂ/ |! DDbD@ "N pD$9\pEBf0>2T iдDf&,0% aQ0! B`ff!E1p6Z0 CtxjChZPu̡!@1p\zx0P$^HF>Ѣa/n~w ( (:nGc  ީ' %0P'4h1 C&Z{}$5ސȆ e=L=ѻ^5M@ D'ψ"F@!]PHu&&F3h".$0Chz,^rEz@x7TCE"^9@iʨt!d fv+O2@P$$I@,IHQ)JTTL1PB%\"DTiZ `\Cs\Pq|P0`EӴ%1PP.KA CAC($B&j؛" &UҐ~h#!`1Ձb 0k >t93{` jQCq-zuR @"ա Na`0'P fGKxbBtNa:P#aB"ŎD]ƂZhZD$ASk1# BhQ0Z#v8 chZ6aa1@l"#64R96#f 7 $rmF<8*@ɾ2r|@H 2T]pfSX@:H3`9’, a)ÁPPLTHE@ B/.MA%"@(K(RP ,D L ``Є"͔Q++SB@)X\Lbq¢ $E>^/8f03IRP ސyCy00s!&,4O(( hXq"`*(8TAh%:,4#;}(M  I cш]0Z! ! h⠣ bZs16C#&1aD!ZǘL1hbkcyЈay h4Z3A#1L4eIprty냲$8]<ÊfQ)]/QUN d2a EUV' qg(#3Lp>nf LbD R +r """b K(,|>b&!YPJDdV!,yBR*,If"b3A@h1cfAB@ 03S)D 43@D( 9BxFPP[{@ `f.fb`AWk..=4B p3 3ǥ{##Cj  1~lA7 ƑS89jfxф+`8=cd`.xa舣5D0:41BӐ!tCQlD 1BCA!v&D^vT1\ZǴˎ*B_" J"՘@5(s%)fP@a\ dV0%2BPdxIVM$IʀK8 g@(.""ʄKHR2B3 )0r  $$I"`$IJ H)X $ X0q00DUT ^,Vbu8 "qctucNX0Tg1F6 8>50(tx!u``i4.2}ߺPo.qآ b88B@@a0!bnb&Bnآ1D c16b Z4Ѡ+cD-aFhq A~'B }RmJgH J|"'զUL!9$*EQ J(HB@Eee dFF!#*JeUHi Sl" %8$% <C"E@X `RH ƇȧO鈸 Lu !&d&Ë:@bbpEPElEM;q$"#f@wG|kȡEE"vAa4AGDƄ61 Gf\xFAhA(&b4!ā5&1$ALB!Iqa- '`Т~HR\tW +ŀoʫ"YRU @uJ5%2Ut 5 ր9~QtI,,F8i".*.""1D (˥8e h3B Bi 9@%BF   YB9\ ` B &A(Rbb"DDh&BA!ED) > ^@$~7#! pL !# 8 O;F%:@@wE@2!  -t<0hmC# 16A(zFCC0kxc-C ;mu$p&3Z #K MBBb#L NuC3&&BW_bh-臆 &>8q9bC}eڰ;8q9bC}eڰ{LeU20^(*KlW@"3R EPzXL8z,$@!DhQRʲ/sYJ E` K)$ I&"H!dPE 0@BB!MX"<^scb&Q&"DAJ| @'UrqH߰O$㎑пaaxeD99ZVdd@YȲn0#KfH>a(%  ʼnb!e92D 3D!.(0BB@DRHb! IDY0QQg!@1B0B x1D" 2 AS1bqdˈv`-v&:B c3^뉡Z PS4!#S'hzUNE*` BP&Ѻ0NP@0z'|(`E&tG!E(bq0h~ TOB1;m;B$~# ! $à %0 DM1& "! 2 ~1:6ЧkYR@)z7YYCYĘ2JUaȢJ@8D"+j$4@T>`V"'0yP*+!(J'09$$@Jff JT\HSBB)aE` WJ(Hx|8fB#f .3# ӄC'y!!((q !jY*D&`BC>> $P:9f:UC I "&[CkED1F3:)\>Ec0B5MƁ%MW;8F L$DMG#x fxO>BlqZN# h}]ZbGb bC76F4B@ ̸%0o\3" L@s;6<_@V@el *(!kuEX)" DU౉׀)M)&f1Ky=^arp@H>]T{Պ u[G 0P AcH0B^g ?J<5l FppL>EW3FhMMgL<N:Bk`0:F101rO C}պ݉mH~`.fj%:֌Y!c`\P0^BaH)kHB!)v\ȪJeTԠKH |G OeB@A(`p8,2BK  R0  #f&)$bA`!B )IJ&fI0̔`A "  `lL)b- UpTAAQA:b( 0`PLTU&Q-*ځTQQUHt&rDPCPU lb1T;$448#[4LD 0xA=10[4 0 )&:> W`(SGjaZq#>Q0ch %AQ蛈Zmh- >qD&FkDh #A̚Dtbv̚DtbvB͑RՑ$s#0he&8A(" HJ*B?tP9aIL$P岸PaQQ` ˰B\>aL8%&aaC @B1D(0BB2\ >" 3R@DM!0!!d`>OӧE. b/L ɕe`19xa"h4ba~ U5MġBd aډաDA]F/ء;tAuDbhpF1!ւCAMh}DotSڛ "xtZddtĆ!ѻ0Ї0Gl#@n !@HB;Z-thߺC@>$& ~R~{sOib'wAuUQC͔/eDHN` NL5("YTVV'pD Qcey CFu& +H$1I ! 0Jy|Â)B&,FAL,$X>B% bB LD$ ̠ AR!Y f1  H@0$&,*P[U,X tδŁX1PSXP 0o @s|b v .p 1԰G @ L8f^!A΄b`s] 9.f똨* * NG2 }B} uJh1ȥRl~XtP#J}oA)RaCK:k 8&DbrV (J5*րAEL {!($LgIb@òBBe9C 4  "D@(Ja&PDDb0 &-.d!# @B!34XD4C@ X I`Т%NH$`bPD@`P(J3q1׃c00F&b\{N8$ޢ# >\]tЍ` dw  4B?m1 PV k N ffL&B 10  |kiha`B:F!# '\Ї 1h@~ׄNrdv,_Y?-^]:ɑٱ~ea@x}7""CLdKE ej(imU5@"SEͪP$"*%„3d̒d$$BDEEDh" CCX'BG@$ ,@X#`Q& 0$JPCX၈ Af ``H! Sl:3p'k4Tiw30 bcV;LA'b5B VVǻm-Pu1P11⸴ا}Ȑ:oEF@0(w÷c4aSh(DP}&фus!|q8!-$3A$ Xp((@Y I$!A`RJI$$I `H&)D4E1B BBSBДx<ةf |:z\3 a@PU޴330b*F!+#Clll8 7&!6a"„0 mET@bw@!0h]QG0Hcg `@hiB`;Z!HzO HBJ!nDODqA$& :Z(h@$vJ~eZ6&)-U+FR / kRRUNDQV@]y%`pdBRcR$TVG˜+]LH f,$((qBr p|CA-B   0 DB  B D(BVH (0!M,AX,I H0 Rb" -0 u' 3PC!,@3`A @ud*)`  .=U{E#1ƒ8=BO3Zz 'zGc4DG 1(j I&!iny׺MڈcL b #ŨE#.5 ` a6D&c"G  0h>ĎQCBwnl- gX "TWF^BXCQn2j`AY'2DȢȌM` IETc!$I !AL HA D((83pYpYJ`$`0( (.P\!D)`$ %D`BJL ) `A@B!x\.4- B@ " RbS P UxPAf㓑x=`o`* *b<*C*P BᝆPk>$IN(#6-xb( `t\A"-`p0tB U1+/20!CJ2+f3…@Gtbb#Ѝ# &:Z3hEqAք"@d%"5|X% K"ALLD0$$ 4bJDT@0|x}:`Ċi:n#  U b @d ZBlȡU!@Wk[QQ xa @u1MWTɐa3kt[$҅ "6 I5Qhc0 kC3t @MEG\bi0p 4f16aѢѧRc!hhbh1~h Ml0ަ@P%B0'DQ0KD H  !4!".I ""1B B $bR@J!YJ0B&"MSW;"\zafA1M^t$c"SBB B*Vu!dDxw0[`0!`Ġ;1!G9x $3X 8F M@DGahMa""&ZhD{Q >d&~c2 f Wx;ϗ58 Ue(kNV YVPlbΕL yD 2™$DDTb(! >b0 & x,| Re)X0$)B,BAТbf! &,)a BR`CL1E,v6ZTTD@1> H>EјЂ ÇcM> 2LQ0^G qu A8f+'$<#VUКLXc˜BCA mb:BGh<0Ct5\ (FFk#6QhCDt !@a"aL 8b7`utth&.E0& CƤQv8?1@O)}o$B@Wd EEuZʨ0 gTʲ,iv,jṈI$Ip(eY>, ,GRDiZ"\ KXH0&,y|< .˂XYH!CL,@bB@ `& L@qS,0 &@ E X,X ;E T أ![@!2a0qzȕA`0@25ǧ76Bqc-~qBo\!]0 RO#00 i@hb@߄ ւ@x\ff AlDŽ.Cl ! @30@0 B u[~&L0H~E1_|gKH!\X w2*DT)1ZIFuI]9)*"k s6_(lf~+,I @YJKRdIb| WAA$1 "\p S4S ,B(L@h)P P3  ZFհWӑ8!dqPLUUš0̕p L . *j8aD+R$#:2m0DP#Bh20h* #'1:F&^-ХOÇc`< % .Z:FJ֝ aq@a " ΐ0&B[ b(@I1Z`A$Pg4bW_d"F7`ЌbLhqb"F"D~ =[I Az><$GDQU9DВI9Y9 (eT[q# *ʪ"CaQ23DD@BQZT\!@3QD f &c.S!P@Z@SD9`&Hf! Xh!3 ><ʥ\R!hZ@RD@:& [ӡ82Jx9Z,^GWXu#}R(j{wy8ItCHDE,j>FQ@lmp`mQatz;#ŠeNFDqy N A_q"%8# cڈPP"#D0'|Ӡ&Z!hѡO5ćشh` ^f&B@,T$@d"d%%vEΑy ȈꁈTQR&pn%eEEe1!'EQYU`YH )J"BQ18`E(fp`! @@ XHp9bB  ̠ ( A1! !Y 0IC2Id"f  bA I`H Cԡ1 vx.p̱ $#Jp=aWrk^NF9/Ԃ:O:b#AALLδhh#F7 3Gk&0FmEcDm40phxWhÄѧZ뷉G  B"0}#6&Z 1tMh SbCu@t81cьFڠKE~VA5B`K6{VA5B`K6{a ԤJ`eeQ]$gUpd Rq+YcEQXY]dII,I JRLh"BѠ A !Eą+`XrB |!`9<ʡB\ )B\PQ@H(@Bd 8H>}x=uԡ *"@PXT0bujBJ#1'pd1 E"` t]x4&RXN1É)@ȀRFx y1fD,zq q11m10FQ[Z7uL ;b+ht6Fc #!1:CWc!0]L4Mq0 F@~dbޙAl::2Z{VJWd #"If 5aW̨TYUU@$Q2ID0 iQ@DD@Bq!D%HH8 34 !OQ I @JLM X`$$I@a""y +"Ј#q"t(`6؋f L@`icX1;NjAq舣x=qD;a* *) 4ԑW[Q$1B0t40HGGZ31F@&B 3,a„c"vZZlA QQG#cL bjZ4~.t12rE_7Jh5X'eU(TBU6EP2(fPLdYf-e" DCĒD0DDRDbM8T 0"4ELXa9T 13H @RBL@(F (LBJ,K&K&ih0ĂY2B@2W3F@@PL;Hȕ"i*N-8NNxO,F4" '% BBHB.@|jBE#إiB)0.'B7, ĈFhh@u@!`}!]j &8Bb!46!~AJ 3߳$RZ@QQJ!x D5D *JU ЭQC%R*ZL M% #e$,f`Wl82@AgXr)JL\DÃP(qY0@ 0iPʧ| X "Bd!`LD̒`qJ Lh!@ȄE(!c|r(.e0ESLXT""ډbË;!4aPD6, !\:nqhE :`b84EQDtĠaT(A|hFWFWkC_P `'ԃP 0QB0@ bA?b4N Pti %1A m 4"e3sq ݋8HkDY" @u!?JB*x5T Jh#Ee EufS+%r#Be @80GÑaDd Jɐ``!DT\ P(J` $4@`QQ".21M^P8r5\>\W^+5\ۍà1"> +ETgw0:Eo (b"CLG[hZa<##qd`M$DVADW =ÄtcMLAJe|6`hmb[A# w10BA!ht4#6 Lb!D-t4!0ath '|"ף ޟ4FH@_&xMCTʨ @\R }3@QYU "(QQȠ".GV$H DA BJH&D&2 @ JB(]3 <5G;؟11b:M&Z@M:&,X0010CG1 -F$(h#`h>EBaPX$\y IUCa|7YTʢTM "@)ˊB"ˢ抪+2dQcV(P vѝ$$I $AL )11 "b e.˰, Da\ " @ !% L`LQDT(".1!zC@G$MhA.>"jXDTOh#bi!HlTQU ӂ=F]0.&BY@D@ЅR3t-z4|N+!.FxCFh.fX@BA0G^ m"a- ]]mhBPpH Ħb7A3h5NE @vd`!Ŧ~XиߎL"t+ YUDbxeY)' jBBEf (*+j@.Y2 pDEk@ Q@)H"I3 i4"b e\IiQi.a`$ ` <I 0@@`Dr)@)!Rbb aC9,)@ BHb@(BB B1B4r5+|xQACq3ݎ5.1L,keC|7$Y,W*e$ЀPYT՘3Y:%]dq)D5V,ȀV.@}$%I$ 0 `! )q (ÈȈ3\B( B , OBH&D$)0$,0L)-B EB2D!``0I!`$bBZ@d>5üȐuAމFx`h : C&;FDŽHzO\:0ɼ&EC#H8:BwЌ0B0Bbh4sK"D0hEpr[0B_~nn5}E/H*k ʑLX @sfQ:շ.`،H$I #$Y>! P.TL@ bPBdWJLH9,XG90DDP`04MbL(RHDLDP8%NQlgq̡116)+9.f8^3 !&Qp0n b:IL!y|k a0NI#BR\;bSPA1I 3 mtc6#LqLC(@t8bGG HNPBhĆ6b)&L i9f5q@~Ј b3~laD#vFhAktD- @T<aD>|S9!E:-ߔx,KZ/UEe&O@hP]+r@eVT0eYCeQ* X9: 8۬  .$#0!4%1LMQ.(e<.*Pq!f0aX>e, \B J":J 0DŽ$uq}cDB8a'"BhFh1B3@4hcO?]1;1F$0#ҢFTY/ӈ*c;KHQ"BȪ(1 ,z2!p*`sVHYT'%IL `P LI!%3M-` Bh," & !'bDD4a(M̧ .8C0IӐLx!z<:Cc("ao+1 ;b q2FPEDQFjt 2#Ÿ ʄ #(-Bla""(101OHfq 0CtHQlAI AhF3-nc hZ 2!jĚNl }cM5!ƚ&m+%)*+,`Je-eY Y@IRg H! UגC7I& E,"JD!MhRJ)CŤRI% ( b.ˡ'ǀ%$HH)%B ,eBf 1B@>kx}at:\ b D @g3v1PUUt8)\N=`Y=Ad#p1q`fFN0V8f=!0 z bPT"8'@΀舁 :Hm5:Bu菦i}PQm0 0s>! NPpG&k`F7 >hhZhCk1a"2!a@h@DA6U#aD`>S " #jp%zeR|0& @FJeuA +Lȥ״ SqN&Ib E@ĄB @  Å8"B"-e(  B&"ILD,Ph ASXAA3C (8%4 ^yWk5d "*8 *`bjZaB :FSC-FTA^сa( "&8GE,Z,t8A > d03<ĥ ZhFk0uzA#z10pZ`3$9^B};t)h&t&`FbC-4- 6~&Fm!2b1P8P#&2"T\v#>oRariw7P5(UgTBf+\R @Ue$p+U֐瀔!* nMFCML 0$1`! X P(@i CeYPJT " !Eh`1ĉ3`3RB0$h1"8 " $A )!- "b 0!aa悉#I%d^q詓$SEՂ:fUWD$b`c k):0@Ĩ b,£Џ'D" #] 5=䤑Lk20dN@`кn->-M#ҧ@GFmO?[7qb v!1Dm~$aY3c w6t1,k&v Ά2kF̂ U2X]0+)լL΁LH;dD+Q@7I2 X I,f) LRAHHx\f)X00 fPd@03ABK@XP`0D@a0!`0333%4Eh" 0DL\\(i0\9 k`ؚ Ŵ911 #@:=u"ֈoan#u2t:䐑pu#Nh0i^gApcaB A-@: 8r!333!2.DxCJ FD!v0: Hvh#NaLD!:c55 >$c&Jl'psORk0f}R {QURʨDb:SQU %ĀqC+md, I$BJb@@L3 43 aR,&"LbQ0 R@  ,.YmM[ð:aq6VNMP;"pDsf1xHp`hFz= GXbd.t vPE{"c\"44 #1ü&F0aBO < C t=Clb`Ĵ:4M8؍*H ӡNO'. N|G C1F iCwzb}0iSQ BFQt;bJ޹n:)yoHIE#릓w M)@QCe2%0+2<LN23jhlqpRdM%aPHM$ B,"E@DAQL!Q%BXR0C 1B(b,I )$$10ZT( h" XH,0hq!- 8- `LBI0D RHq]ydkb/`8ph`8#9qTgAOt2p| - C`ABc h! 8 aЏDP=`!$qr:*"0 5-v[G4AH.BPÄ6ޑ1 ci]bh&F[DmDcBBi#v0[k"D4޶Ĥ1+۶Ĥ1+{JEQ\A@3 s0[TT'PEeYUJJEQcpH5Kqcm7, qJK"X$0|$#' (傀 $"f&H$J )Q@L( BiB03!D%$ !H $fE @0@bLeQqذ:Z-[`/8@98>̑y\a"5B @^g h!к 4p 3q Z& (ЈhćDCBGh#4pB(qh"u2HLxtD.q\E2s=x,Xoa4!tD_D #tq`@1h S0ChD@>T0bo]NsNE;0> #6֕{B(26x JʨY+ QY* 3+("ŭ@H*Jܹ QH. f2I,BHH!YBYP>%Ta )ABJL@SD9 BRLD( D`B bf@Jff L@B10! 43:B L;@EPM:hF0FP2kf #h&@r9^>$q0s 05\E{L&~.aNG:30 bk -hЌ` akcD"NCDd0\Z'ap a !LDC@ tD͈0A#vtcLtiZ  BUrmXҦ<=}Knh6] #2kf癐Qf&e@dEfNɲLPjVԲbg@J*EV``8*"Sx{ $D R2$$A|x" XD`Pf̒AfDBJQE ABHb)`aBZT@L@ & b ZLHL',աmաC^f8ȑ#z]  I ;xđwd ':'B ȅut1a("{Ƅ  WL N#hb0`-OQVC #/>&D(1b00!hЄ~Q46hnZ!">t@Wbwu'@  gmBa[3Ԟ -"2*}0`9 IVTT+NI f$RW'&2Bq!,JX  4E"LP4(1⢄0DE) q  H" ,A("Jb3@Xl {ET3ć!*X u bőaoQ8b !B4A1bkU huāi\a ickPE>s I֏ 0DF0a0 DL`y<>&=,?$MfCH:@ a4ƠkЍ1Ď&0:Au; 8}>Pxh~ǠaaM 6OggSb٘0NJJIJ~ޖ̊. rmKfEQqv^ ɢZѦI Auu$8:@ eBUF 쟀TRba0$$DDD$KP4@b0@$ YB4R E E,DBR2D SIJ!I2Lbc:nZ )s\$LC[y8CZ0T0;Ӂؚ CMň( *{'L@TL;(b peQ :rZ0m-ia#vL!t!:Ct; biH$ZCUDP E"`VADQAQS0T;:D11ԑFmB4&@OoBD]!n@ phhC@h@~7lzwN>9|;mwC"(#b ( j,0*`+ ,jJ @LNt`##]T$$ `AD"D&Ea9B CIbBS(R L! +,L! L e ၢ 0L1-(a 41QQ1 br]qͧ tn! #|(e1*[@a:d2<2*`i婋ч'C 0@Dq#EGQUn0&ṙk&@W[ }Fb10mf6 A !N.mb +:FhbD"|KDB {O }D$Կ{!QB(^@XH@RT4,j( 2+X9DDu,@&eeT$E"b)&Xr ƒ `fDA@R!h1!B@Რ 8 ()3`Cy,rBBP -BqS [+YY [l]L^a՞0  0 FGd0: !t.  :td`6>  1&C :'ѵZ03J]ԓ!2L0>SL  Eze 9^0t[O074AvZhFZˆ-FBlMBkCA1z #Am`0F䤄=h֚0 5ZZ*2lCE͢D'p@F'VUT$+v.d dQ]Yc  2hC%v,I,I )sYFaX(B3!- `f@ @S`L$! !`&3 0,AB@EA! $!&L@ i`$ 0M *`9>qM2ntH`%,š 7\ ""t0zD PC;NPAPab$aqu+&nwtĎ-L4P8a1P0 ` CDO\:0L[`@hF -CCi 4F}(`01-f~72`0}Df0x!~wa - C "BJUҵA@ @dTW  ȲB45Ct8I,I" )I4%BS,N1&$!%KA$&fX$!L LqQ` DiZ E!0@ y,|qQ)" $$$AEb1`q$kR@@ N@T10@>hI @TSML@D N("w jՑbXEՁTT@xbBD"uC ZDЙ.R[B^- 1L-ϠNш#F-uZС!ZGb ⠁ v$|ꯥ~wM;L.'Z*^ȨP!*kQB:PDm@TOs +jQiLs Xl$I&K#`$L`)IHJbHfB(DDB!PB(r <BA@B ! B`4X %Qfq@EEAL0 3MPBs\y=.8ǡNWGv\.w9:nQQ7UUQT\O. 5 \pV@Q OHĈM y 303d+@zНha4x]9/LN(5P)bGFli`BAcx8.8Bhmn@h1tHF"& -h1w$O !1Чttc&#?Ԟutc&#?ԞMj, bLY >^ԋ-'`#@ - }|4;*d QsI) B!a\Ix"Vx'LH/@  0`X@z{52xOY(`>ԇk 1p] \`:D0FDDh _a'z΄0jrIsgQA *20|Kp `50/Lye20h>AhD"_ctٖtsF|)g[YP{ 0Jbf>+p<#LDcNfTWNfTWݪ,qh鴢$VY@H  Eřf1@ 4E!$",B3Lф1Plm4NXm U1԰ao(BL\[@rJ\[@rJ,dљ.SlBR"bs G6V{8s1V i`9ևO^>Dbkcoc*b1:|Gpychess-0.12.2/sounds/castle.ogg0000755000175000017470000001356112641567764017067 0ustar tamasusers00000000000000OggSo/vorbisD8OggSo7B-vorbisXiph.Org libVorbis I 20070622vorbis"BCV@$s*FsBPBkBL2L[%s!B[(АU@AxA!%=X'=!9xiA!B!B!E9h'A08 8E9X'A B9!$5HP9,(05(0ԃ BI5gAxiA!$AHAFAX9A*9 4d((  @Qqɑɱ  YHHH$Y%Y%Y扪,˲,˲,2 HPQ Eq Yd8Xh爎4CS# G,]6MuC74ӴmUut]_uhPTU]WeUW}[}UUYՖa} Uum]X~2tu[h뺱̾L(CLABH)R9)sRB)RR9&%sNJ(PJKB)RZl՚Z5Z(PJ[k5FAȜ9'Z(9*:)Z,)X9'%J!JL%C*b,)ZlŘs(ŒJl%X[L9s9'%sNJ(RRksR:)eJ*)XJJ1sNJ!BJ%SJRb+)XJjŘsK1PR%KJ1snAh-c(%cC)b,)cŘs(%ƒJ%X[sNZkmsЩZSLsYsZ(PJZ[9Rb+)XJŘskPJ%XKJ5k5ZŘkjs1Sk5kNZsc&BCVQ!J1A141朔1 R1R2 RRR RkRRj4%(4d% `pA'@pBdH4,1$&(@Et.:B H 7<'RpFGHH!DD4OggS;oŅe'"(&" ""*-'%,'!&!##&'=- /1 jjjh0L_'3yA3:^][=7޺j)ht\lǤ@ V?P)b9Dӟ%k !{sKPkRt葶&J#Lݓ*$ZmzmPXDsu* 0{RVz9,g42fyd,DRjyM\4\_ P#D-OϹwtsg)43aT3uh D<ï΁}m$,e3xAVS]Y*A4tc.֗2wkO<2f16 HOV{ )i%a4DOTWt)I}[bsgivo}ai;:v?nDqN %00KN-F >WHjx"񑻳Hf^Zfп8ك;#;5.#<Y'ˢkǕw}i?LۢoEY|˴>vԼp@OQ1BIGZx8L@Ť(*H5M3e IoE0Λc^k]kϹqq+Qv{>`B $_5nwi54Pv2>v_@ RZ pUΎ"}_0E[? GƳ'$"2D㇯fZmOAjo}b͇{C܊@iAަ4D4\>v_v4p` M PlZ'h>к-FXu1tq}4K53>,yO)rly,Yt5Zq(vpGN#B6PFaGȂ1(,:\ύzw;d>v_021:tw{,gwdVDuv^Z Vؘlnm n-4K93$Oe-sW^+ u8%{ϑ(6Opq>0KW\ nrY~>vpB M(c!@&bjsMFhe?]e+u I=&DR!D.G+C`d ]'R^nWaQ9v8hA"Yx*5!'>v_"L J`0A_0@(A +d2SJj=TQa$Jo־7膣đb2@. 2dS,d̩NV/F!4KψӝWXA),S>v_kedk|BR%q5eu/bTY ]l#X\ o߽b# '## ?' -=QM{dkqrZ߹2e:v}6ތs>G&gD+Ҋɴ2r$-PrWgҖlutlns=Kϋ=34'KW$Vk&{dIrYu Kkog!.g3[zm[6 *%[йCbW'H=l4u0#n xQ볢3*~>Y4@ߍ pychess-0.12.2/sounds/start2.ogg0000755000175000017470000004572212641567764017037 0ustar tamasusers00000000000000OggSxC?/vorbisDOggSxg-vorbisXiph.Org libVorbis I 20070622vorbis%BCV@$s*FsBPBkBL2L[%s!B[(АU@AxA!%=X'=!9xiA!B!B!E9h'A08 8E9X'A B9!$5HP9,(05(0ԃ BI5gAxiA!$AHAFAX9A*9 4d((  @Qqɑɱ  YHHH$Y%Y%Y扪,˲,˲,2 HPQ Eq Yd8Xh爎4CSR,1\wD3$ R1s9R9sBT1ƜsB!1sB!RJƜsB!RsB!J)sB!B)B!J(B!BB!RB(!R!B)%R !RBRJ)BRJ)J %R))J!RJJ)TJ J)%RJ!J)8A'Ua BCVdR)-E"KFsPZr RͩR $1T2B BuL)-BrKsA3stG DfDBpxP S@bB.TX\]\@.!!A,pox N)*u \adhlptx||$%@DD4s !"#$ OggS"xϭ475GB88788GJFCDKHB69779FCKQ/>:LFA?IKD7:877DB@KDIMkLgo~+0@9pTg)~8B&`W>1ܟ-1UG_A P B\|ܚϿ#̅տR!Cc}c~Exo=88RE4K.w/S`vБeSJɭvĠ8Ġx^ooq: rɵN6_5uM)‰Q((=_^6pTVꝻ}r|q9߾>ds°٘¸/.PNjC'&s49߿miGWtP/ZIJ¥j[Los96Pn0vwL[BOHgd;@-||!/s>o}.v3bT} „vaIW/*F"=ҏ%gO2 2L7o;6=c Ĭ&fmO tq.ഩuzB#Co}qpf?7#SJy-,;1-[Q7ܿ!/h[?˗޺5?~9眙>9a{=2D[{w~?wNHWWkiOOb}jN_X[Cnw00[G~?-w}ƵjZJnGCԾ ;tۯo g>;7o!֗e_O^GMk¬ yP( 02 n9 E?̇lGs׃SK)WWx@O:!?͛?X ! _;e_Q~8kO=};=E=oQ7r9Wx"?y~P9O_A Q2xй>VFRa?8|! \Zo.x:MS gʆBw)? t͐d-&4'$usyK;)c)30gc} ccNg`"O'8拝wcaRƦœ^bI_.Gƶ_Onwr=րah}o/?no{tVP<V~ߞ|F*ӕWO{;(/yJX+χ}d6[ú{^7;//֗A1DҾ)|ɨS"Iʺ@~ -𧏥r4_f|??0> ϧ9=y}Z%}f07 #|4CB]~_u_g][}i|jJ"j۪)%9$O"v$ʦ; ЂoקO_?~SNjϚcщ`"TUU-;3ߩ_'ռtvztwb٧g=Lag1vP;s};3=Xw~ijzLpېտoޘ mf8ܘ͙\pibx#ۖ$c}dv7XBX-C8>OɊЪU0;h޶ sZcw>}E:ev?;ie$Y\ʣ]GRY2ETW2[-G+ϙ-Q&edӶ]sxEi&&M}`~~ ?>3_9 <Zٿ91|4wbH")=b#4%U؉,r')N4:da#'A9@M=6>M~{]6vpy$4?H[cG'lM7ͷ MPĢYNjێquuuu5Zczxk.~cc˓mǦpOrs{b99|9v~L3Lyis6l[q࿏:o|+8s876f|5eϙq''G7{ϐw`;}ۛ˜`ngS.0 i )F0Ż|)Y5F(PIVL j6_H \tR^}|=$do~h>ٿY\ҫ ǝ{K;- Zq H۶q7Pt͛[~`? Zc? p`OyϪ4[k-Z? i-mwN8x9?C nX*V.paQ$W+>3翺z{T\n}/S5ߜLyv}2jrτq¸.q Jo!@bͳ[oWSuw"3_wMhz'lB+ =9 FV 3^r YϗqS1TʉϏ jϢJW-TW+@ zcQ]]jp(n`89eW7y/nɬӋT=_mJkGDoU8Wo~;!vWvc _9?V&W>S)cK=3UWd q7s /}p>;8|fnM?l_#pM5HtP i^~Mzޟ WkN.:@c. TEl[ wNo!-# ~fȑ”So~oN{y;髧$]&XYB/K)_ fྛsn[W_y>{Ю|_G*C[!|?0D?qw#V+5 _y-uBjQIN*œ^Ǹ@}7q$e UcWM7?p|2~o?K _ֵqcoœߨ6mW= yc0.k^?,1{ϗFW T\WIU ō(ƹ*rߧ[^?sV\`l+OnZ?_>|έ8?e맭|ʯJ5ULfMQNl B1oޛ^UL6 [w@RFJ[ G꫎m@ðw~i31CtǿOj`/>[Tr5Sqi_~ 3pƧ:;m+ᇤ{7 slgI"DR_)f2Y#:zv`D YvDʘIT|V[Ofܴ~ss/ۭ<)*Zg,a㾕c! 0cſS:E#~ou+uŸ%VS.ɯ My#z;YY ]oɓEQoN>󚼟ʁᅮTp쳁>{Ϸ>Mim|NN8}ɀq|kK]-)XrOggSJxr 3Q@37668DGNKFKBI88729EBIK0>8OHADEKE57659GBEH4LMd`苬[ƀ ҍi+;ifx e!TZZIJ;WouLo^$" EgE~fK@?Hmfh )X47[Mcܔ8̜QN {*Dѽגb;:8M9=)_1?4dbfn}iϜ=?fp6쳡⫫a}o}9-&':ty5w/e(&h]𨷚l@둇J;dcв^Yl2n Mfm6t`@%qY o"@.~C1ˁ<+7\̵|?透ϯ`Y_=n/ Bk/R&Z+{bbt0|M1gZJu Bk jY G3 Щ}q?_ Lf4Xݸv{^K"LJ7_sӷ?l÷op˩9ȪJvaĩ'R-NvxұmpnKkI: b~#Ħ;HclP)pٗ_Ͻ^n޻y1~Uw3SYɟs?$kn]]pl3-mO.u<o߿}o~嫛SZ\\\\\\\\5!?tdj9}_Vסm0TIRWm!N¨ bzί>x0>[3|76F֦[淧@ݧko4w%QU깕$%Ymyj$)a%p#  0 !߼?Os/}o. d*7^ :$N5&/11_jXz:c^tyzzf}}o WN[MTB9+rUZo$Zoap~{uNS\"M<1oZsW,"l)A{ \߾mgd9׷'OqɜF6Ŀա{si܃-毯lc:V -Zroo7g>?4.w3x*p w7Vm-ϛ},xjR_f)m#w Cݳޜ8{`<8LnVr*E~vk!4zZv=}Dd#;JЂdߧOW;~qr?>ݳuy֚#YrW%{V;uH||fnq_=)}ޞ+!ϷTȼ5y{3{+YӨh7ow'Ǩl ېS0|}(\r/<{~+η};j9\)Hbz^U12VJ忖LNH K?ˀQ7WkVŀcmۜێN'?*A.s|QU%e)]&ar{QDy2o{ C/FCsr\o`-edWUU|v-_M'ImlƚtOּ9[3n_n9nN3<||A2Ni|8͞glo gw>} |wǾw8?pSl[l>gtSoQBnHׄ{jDDv:^tt6{xs0.'gstpI~ٯ!Vrף$ϗŝ$ @!ܑLxQo[-''';ժ~}53_??UaSjk4Uk5Uܿ`t(/E oi?8X!D6w_'/N_ c9zT,S˔zEl\]2upknwn[O>CI+:F{7) D!ZЛmg?fn1L0spvk]Ӄ1^7ynM¨,<Oj#cKw^o1[;'֟@0`Meu&?nE4MO 8B0T3I8iwf/?}K-J_IMv]Gasiop^eCC_:ms_|ŭUs>⫳柗~)Uv92%WS8 O&T unMMGHȗ՟R^p) 7%c&s=}#߾G`u:= mLΝ{&y|J9r.:os'sf@n*f{X(+o~rR{r1H=RZ!o` }y5i_n' _y&W9!h€?p ԝSW ןA;|˟gRzF[%] B}X e`{7vO)>o.~P-uyȟW% v~芪'LJht]; ^:6R}}罊m_y}j}ghZmwcy/T 5\vSe֕^2ݗz>?>5Eu?^&? *J5ըz1_Ո-*\G_\^T ;4Wvbԫ} u_klt+%a>9~;{kAGMWDjN :ofżx;_߅5{cB?H9D.Biz္zZ!cXHSk<;OFZns?UέD@7_URW^ }˶JT>ZvQ(Po3N;~L*f '훛߿l_~:utii>q6XcS/>}Xg;Lnw8qײ^[<]KVrQiE|έ?OP?ޘnMs?c:廊/@QRuQY}tmr&O =j߾?ׯ?z+}6=goŮ6ߜ0u['~NEG'j}>{V'΁8^]~mٲBKy!uHBr XB(|jpI张G31m0B(*9-KrR]|`7f5^4>^W@GHq?;}1O7| f1lxgpp@@ MDǞ[-3?ә?_u2B KT͝;l x8hw U!g#43na@^]ņ/g7ν_q3pJW0i@l'~"l;rA@~ƍlOܸo>|zۏ>#zU@,G|?|lՈW_)ok SϕŴU&zlBP-hq"³gO~3޿7t&`ijpw_կY/^0Z(ec" ]?8+*P˶Eiɧė8491bMo2{oR3BO =9~6ͷ<6;T4:}櫧e:x:ֻ|Sڤ?%lša }4 LwzO|?s*`vNj,ۤZO$Xi~q,:ι&;^6Nӄӂ , 9- e@f"x@Rv{ 561~|8PTO+G *X=l3.) i-}(|| ԃJnߋ7&u*ol[̷|N}- oK'&-h` =7ƻ1\q(pA 7X^~Օ.+*hX^ܺEMqھv$U|ԍeNr;o雲4O|]Z:fŋ__lJy жB AoL$~ J_ KxV6x8Xx% 藗 ŭ w7g`z/ T`;ٗ;?˝+8,_7ȲTڤ~M>oj/պ4"2Xt"%qnˀD-0!Zɶ1iv|ot:xSz9@oEgo^sFs9F˚5W;7~Sȭ{=m/#ZuLm44<߼5o7<Ӝ9 Y\'Z̗i-0zm:#\K:kAM@4 : aآ-Ң`EC4DjvTCGCP?4?:~4!e$%#k^u$%=)~ ]PpRo GeX';WUi>9mۃF:7L"svE{rRڶk_/̷}`if}yibĜΡs㜷霙sf|cvv}߻aρ}^-2i*;>9|S䞁[srO {sh )[S˲"J}"0ckkvcE 3a`?ZQ$$#vF z60#-M#>vl}&6>X_#eǣ&A۩~{Gs (sSO0;,b*Foit{z:IK'^lU>ᇹ\voہ/6ܦyf疧?3g.ρ8o96߁!9}۞nWTf'p9 ;{[1S9`}d A`[Ԓ [%>X%W w#q==$d>ZHDnM(ۡsew w~zXo{v7\]" pɚ?pw~3>ͲX@Ri*OߦޥBE,1c@ ewJ5ҳw?Z󭯾՟$@?^ A$L]8O_tRZu3{nrLL[odjo=_kG4M2Mѿ/.G8~_wsg+ tBh U)LoaO7 ,#7KygC0XW,+oh_FOF筇|bhD91{QviUDkҪ}SW ,lpmp}!sATiz'^FIimD^kܾF珛[I- llNɁ^7=8Ϸ s~F*4G%M)53}QЋ3*Ai` 8 ^jn.6c,>>]'>9UOƿNfG utSR-=o\_G/U?o^#7+ȯg\Un"h u-jv^5)B@/QgƶS-UxAgr=//0,csϖ&̏Bɧ{T[QRVﷱ}Bı=-7ԑAj{xzE6|&6[=I[c9gUcN7 0 />1*"!O1ۯ׻{aH wai&CF`[6]J(Ky[K@[^O*ZO%OggSćx.q#HC:GEHBBMGL8<:77:9EFBHKG8@EJ4AID8Ą\ȯ/@ۡh:{ofO!_>~?4uv~VŁ艓1I+UMbd2bv=\D޸aw YmLpVXL> kGxi<ƫm* D+~\žg6ReF?)x3irzR⫲ !UQ N{^G_jA⇊aX_mҧ>y!k<TO}JD4]דxwLk~'";qh/u`\'p{Hlvx0~z{$D_]fbLϓw=7$sܲR;'nߙh9Zp];HzK4Vڻ[okboǕurs>sV_'Bq9tZVġ}=qDwtgy0zNU8}gW=9+ﬠFwTB7yz}VK{˜ "bؗyxZ{_-p*iNZ_oM S4+ID_ =K"u9'-{(OQ->SÇe+wQo?}2Rްg,u$t$,SmK)ǎ$ן0&v(í.|YQ|K\x^z.!5laNsv}:ď_c<:1ۣ-~@7WBΜP?a};Q_Ι`]>{:$:&͟.??.gPfbOY{7uzp A$?27rRy$UU#A8`!-p21.b03FH@ɪ@='Td?f0D2΁A[,_5~ސGWeN !Zu%{.繪6¸w}\*S}ݯrS@E?Ξ?_߫PzYӕ})lC~hv9yvPL3P|}p ?~ u1ܾmpW;V,c@+ ')2:>EgNOL [?[<[oo~9f~Y_{|S"kC[ Z;Xzߩ7ay:\ޢ+ߨ9nk²?X>{/Vwܜ׿׼՟KOȱnB_xj|wLBf^z7ɯ޾1EY\|m<|HZ Wp._+<se{~4p8JnN,FS DGJ9W~Pټ]K }>Z%MX~h;VVݏcnbr}Rxq;JjN.ladQO37[̝}OۆyLr?~|S&WUd)UXWl7Yf< H};T U_gӜk_J~{̃ w# yU"Y@8†QwU탮9o}1.?.o$5TF3moVDc)qexLɒڬ|v"{?/FY,$wx{і9s?n+^ Pe!W`#/}3:8 Řٟ~?f+AxJX(i_ƥh?d]j, 4g=$>~<;vjC=WIY^;k-/Qk;&'/CWc?X{;TW8wy|ͷǷ|㧇LJTjRB Ϗ/p]6ӣ\Y1*VX]6~g}QYuyy뺯;8eYUYY}}V9~8+  }o_k}}8C,.....<_^^^^^<^^^^^^^^4 pychess-0.12.2/sounds/check1.ogg0000755000175000017470000002403012641567764016743 0ustar tamasusers00000000000000OggSpKvorbisDOggSp܂.:-vorbisXiph.Org libVorbis I 20070622vorbis%BCV@$s*FsBPBkBL2L[%s!B[(АU@AxA!%=X'=!9xiA!B!B!E9h'A08 8E9X'A B9!$5HP9,(05(0ԃ BI5gAxiA!$AHAFAX9A*9 4d((  @Qqɑɱ  YHHH$Y%Y%Y扪,˲,˲,2 HPQ Eq Yd8Xh爎4CSR,1\wD3$ R1s9R9sBT1ƜsB!1sB!RJƜsB!RsB!J)sB!B)B!J(B!BB!RB(!R!B)%R !RBRJ)BRJ)J %R))J!RJJ)TJ J)%RJ!J)8A'Ua BCVdR)-E"KFsPZr RͩR $1T2B BuL)-BrKsA3stG DfDBpxP S@bB.TX\]\@.!!A,pox N)*u \adhlptx||$%@DD4s !"#$ OggSBpU(-99`(j%"BffcV*BN00Z'ѨC 0pD"6әU!apD{6m,7 eƂ@,Xu$ >zQz#"MabtWl=ݠK7Usv˃_$to!{kKf-)?P)e;\"67։X $ޚ]g 0pfW6 ܷIYl0g9WUjXiXEG0A"bj QDZnS>Q{t+0>zk;B=튎#VӨ sLH{mYA @( ] _g4sƣ\fb1UΈ z+mcnF8@Inzjy/}p(@^zO88PzO8A `aiJ*Ū XcEm*6ٱP0mD P\,FEn. %JS7nˡVp_(J)=L-ϳF e$si$O[YJ9-/'5CpAN:/ӆ#{^Ι_?H[Jt*zM ulbrdW sgr  y=g10p38hpɖ&V,VU (ӢUL#Qb0>hL`PDҳQz$RU2?8eBBhLkT.:F!BFU*QxEGb7HUjBNwEZz̔=`:Δ8Sߦ7V+"ޑU-"g8L2h9=GQ0CGd=Dl2bUU5ƪZ ptp)h#BblcUQiۆVQ"?JBX2@ 2le(JdA " B)bWꪭ!Xdct{ٚwa<g%];)F,ͨAvA Qw>aݮ;Р*@3Y{;GO A@0Is,X.WUF5`qT-a:, jVT[U]mJ6m#B B [F 0`O %!J"(K 6PȨ*Hs#9=gBFLSAzOFӜw@UDCX N"1`>8bd I}kXvtR_ >(j`Y8\,GEET*j+!q c+?:P"D2 \F$$T  Q;0I) ˥XU`He.ǘ |+%|?tae阖sovmƒ-jшн_D?'&0#ʷ54v!J @~9{ 1> >z# # b9VUU!VPEUXb) BGȁ*~m,JMtZQJ**,Ӏfт$RriE  J^ %Bh22BrGդW锝jHӔAD+8=kC 11"Nh#;8'-!L nbm`` i (DKd(dhl &xsT2 fXUUPjN4$*XjtJjnT);8@,wcdY7q4`rP;E$(i'B ^M:Rņb lFkZ%(ߍvN5 ci:ݕ |x({ p'_/bŧ4:@EC٤Y; fSlK0"lm /J0i:i:媪 `:VlVbFkN)mGN5Q& MG$9Hr"E@ FH)@itlBR$ Ђ@Bdc &`rZrqN=!sUVn>îNx yaZR뼃V2&68!F"a+*FZ5ƞ݂t!H!&p !O)vc0ȒRl 1WJ>Ŋ0⏐]z(%~6W۳x3וP)jڰR˥3Ip)go D+,SKXHE T7M:h>PqeAYo AnL*+X*5FE(bs jj=sH@M+%c"a0d *L! `60P!fMFj(qd'5꒢6Wi>IqZq{&h 6ДG ذ?AJS.ӿuHZlkuѤn׵ 4Rmyxx[(fS ^%@!@U$Agf,+r\EPA+nAQTGQQ]R")HxCԵ +B mB˶,b¬`CA%40aJ)䏵 j@XH -iF]-uE vTNBlۍSn/K+=f~@e^)m;otS6\VfHި-kGQ[Q&"XbU5],V-8&F#hb"VbhѨ~uUhKƄ" %HixA: ] V@^(d<` FJmZ (ð83#f֮`hj_L:OFFP]h;. ɖJŬXKμ 7Mp}8Z 4x10<P %%+gU1* L!4&@j-M  !0mB+jA-9R ˞HYMXlY5;vsl*(h½Qb" BlI6Bm(Uѿ’ Y1/ BTqjmxIlD)J:ܢKYzVrHo3\i$/?Jد#jW΄Jl]9-Ct@1OggSfpXA ,4~x% ḞQR0H W25@&Q;s bΊX1QAPUTTՈ18&tS %QCr aF*atc;bawc@ -\ JResY3 BhmeYjs|-.g=L̽;ѨR=Sq;\[1|HtȿGGcףa=\N@= K0?0  (Ӳ+WPZ0UnZ,zL""UIV:TUނWUE]ߥv2꒪ I P&06P2"-_&&##X_s|) 䱁fi tuٛsw˾ѥw_PX_m񽮰ze Шv x4YAׅ=$1"@h|&a?ヶP4 3\Mj`\Y.Ǫ $&E ݪZccxb845®2x m`$Ia@ Q0@ )@Ai ,"@ زsRjR,Ɇ D؉ ' @ U`~Gg~ngHG݅*:PI B~VWN8kV&I;%CB}!WgkԜ?d x|# 4x|# `x#&"@33 ΐ*r1` bA,Jla8>TGIvfN1@%H[6L `Rc  *0.[R3  B $aSA|n#b}Qb^fL]NG-]dmfk$rN4K( ]K9 W\,^4> UֻG;:OY8n. ;ދDw~թ/AIv>h)0ec@4M'\ j;V4سFj5-fiq" h"t Y #豿(\` pe00J)/5x e3lpDd|O\s9?ҁ"16; )u#mYL9ɗbLNHb-ķ%Oʵkֿ$FJ zg|Ô);c[@`rFD4UU b &j)մ9:XMuvVtH[T]p탛)vRPX\Od 0纗 `KK 0X'IzSdD ;L:;?o^7zEpK#<)9!{ >ڿ8%,-:\1f|l8}b ú7m6G=EB0w1Ac: $"eI%sAs,fYXUA  `1F :jF˜(RlD(ZdFe Ba PBGv#($ P0 ;cVZTծPRqfđ8TX(btnɄ2 u&_[sh$PjDJ·3go_##8,%qlxq;2\`v @16%gB˔, s`rQEerUXMS,VHtTUu+& aLZz46mmi621$0 @p-JV1 ` #IQbd:C1@Nؘ'B$J乆?}TU_}Ҭ1G*&*Xk#QIڵ׮Ng=FB.@_S3eCB0# ܀ (_(#0ppychess-0.12.2/sounds/draw1.ogg0000755000175000017470000005100612641567764016626 0ustar tamasusers00000000000000OggSq~7vorbisD8OggSq`O-vorbisXiph.Org libVorbis I 20070622vorbis"BCV@$s*FsBPBkBL2L[%s!B[(АU@AxA!%=X'=!9xiA!B!B!E9h'A08 8E9X'A B9!$5HP9,(05(0ԃ BI5gAxiA!$AHAFAX9A*9 4d((  @Qqɑɱ  YHHH$Y%Y%Y扪,˲,˲,2 HPQ Eq Yd8Xh爎4CS# G,]6MuC74ӴmUut]_uhPTU]WeUW}[}UUYՖa} Uum]X~2tu[h뺱̾L(CLABH)R9)sRB)RR9&%sNJ(PJKB)RZl՚Z5Z(PJ[k5FAȜ9'Z(9*:)Z,)X9'%J!JL%C*b,)ZlŘs(ŒJl%X[L9s9'%sNJ(RRksR:)eJ*)XJJ1sNJ!BJ%SJRb+)XJjŘsK1PR%KJ1snAh-c(%cC)b,)cŘs(%ƒJ%X[sNZkmsЩZSLsYsZ(PJZ[9Rb+)XJŘskPJ%XKJ5k5ZŘkjs1Sk5kNZsc&BCVQ!J1A141朔1 R1R2 RRR RkRRj4%(4d% `pA'@pBdH4,1$&(@Et.:B H 7<'RpFGHH!DD4OggSMqe$#"#,-+ϔ^h#9o`mЉ{@քP` ؔV^H<ʺL2zB:^u s5*q<ܲFL.|@D!}  p`aYSl{REo!CߦZ@A!<6Mdc^TS#BRvTvj S]`xGwtJØHBB2_TVZ*ځ ұ$6I46.N*bCRj\clO_8K37U8q@܂NGk~ UV}J9~u?ƏW`*H'# 3Fȶ)(m[uɋY[ZT{W4 W֚ 'p(V") Yќ-a9鄇s8~>)/<n]7)lӢu/R&9yR>g`{YĜ*{m4 L_Ll/=6 055)2²f%.D T)RYtV[u¦ u:b@h")Q6 (G:*:@<2LjU0ҶV0M/֠C{V߱FɈ<_7ᩚ Q}tG"LduFEM'#}9 N 6Hv B-HꧼTPSw(Is`C6CVmCK@f~|_dg aB#OGHVt$υ[7g+'Fi&AՃ|`^Y.ϙ6ϖ呶cj[w f. ڃ^](\Nt<6bMcśpeR$_V :ŕFN'ޘȧyQFW 06TKTxn U^% V%.lj`T,׶?Et_l=DQ 7sODb[q13Q+u(Xw$:970* 0'@H`N *=mu2S#a%@VM(4 G"`&*@u+JJphT3XtQ#Z^qȶdkF?}3k3NmCǏˌ&4Rk!;h 3_ԡܞtJ۠ϔ>RA& Gͻt.z5=:'ݴ#$L /T<= &m҉X<2+bB7bmz] 9RK[<% d&mT{`~s}q`K0s^$W_RZR@5f5wsd<Nl| i$d_/}lX6CR/W(N732Ǩ0^97{$K-åjh<:{ >.Oh/Hڏny $(&=L^t&P|Rr;|@Cc)#Bc7"+f40 >'7 mսAvo\tDZ=7.2uX]i~ _{涰:@ W#?. C_~u},V脽p 6/ P!(ck^bwHiDSn+~L5(ku!V|f?I2{vp&X^( ϘgOj`}flk4JcjOl/c_FK.8Ysw4:^PۊPvGV~ x?,tTw^d;q3؀Mt,PZO]U_/.{j4 zW/zY*(@hCSM0tGW8dC%SG Pz8ҍaoyu桋_#Y=)|ia-4?l{1 U-rxmwVzvM!& D X7GWBz\=D>s=S?j)`']'.EP@VT/A_`xi0"%9F؜iNl|nOTmF+V(EMP#Gp;HenCd.Ck;|ѥϻj? 0<P ~CPcIޠ:#~?nPoG@D<AqBl€ @h}0@BJsh=l;)b5K5q5rs7Pq%6:mHq,.w=9&yQA4 o>/V6h+->('y%Āp,+ff5ǁnpD %(LCϧe /9Z?G)M+t`FRj 3:eY#s1HW`Z}w7+Ow(ǻ:B4DrM!A5Ygl[ %[n|ϓ^,ùLg0F< ߟ~XS*x5A;;ԕGѓt @ d%AiӤu4D]F-O{ Eh 寲C~*Pp TG"3P*hol xe wg|>W`^m[ 2y~ 댅h[nvl$ SL h1Hͻ+zϮW(u-'^68u@ 2xNNN,Ps|Cs>htWk^L]]E* $(H+'δRHj椁rAǓ7CwA\("g"9L#2DMlb! cZ㚛8o7IYɜRC~d]{_&-@\RFPSUY [w?S.w$B/ 9- k1Ehr,|~ C.gxc& w3)$>cO,3I$"O\SUt%3.lXQ_NLbLyhv< ;m{uc{5OggSq:e/*v.*ɬgX=%V I#1m-7)6hX`x *R:o"eՉx>9@{t2|bvjD3nSi :NR筨|*{8>@O3X%[0<7+SӼkXmVcs0a疸pIRѶbZ톰2c,AF SʗJb" ѻ-ФyO5WK1>dz_ՉV@DrQ2!(iww;~թ+h܈i@{Edyth/.ͅ&zmypYʭe Q֥eFd -rj+gT#l ;\Q&κtWpW9;KATX+(Y(}x]4-ly~L] 2%!(c ͑P߃Vd:z3D]WaDkgWfjGU"Kj+!I܊*'i>WB1LxZ$WkfK=?gfMJHtK<J>c>}aFdr3ḨOڊ*g{D2:I'V@ (~on^4XՈ=svF8(HhÕ>Ada^=wlk xMGqz]}&&ĎmcfwGk-Eݸ@I^ &oY* D;7Zm9r d JYއfylhL/hp#9@ <,P_މ6%P*J^} 3K^~唢|nRŢ Ci~kvepۑv:qrqږ,GϐJ]L,Jt?l iKu޳̵4J67'w`B+~c۶^ثtɖJ@c7|!G w9;/h*9Uۺ.m ]K"|?vm TJ{ݾ#{av#*j[Gl*zE\`N S> + ipël{=;i[ r^Vn oP]-%r_hIc*-=7C,pD љ0u=$v彩PfnzU9ˊ7FQ/ { xd %٤yy eI6@h* x0iADAϫ m 01z-2va\f5{vKO-&I3-kEf,#[^vM@ݭvizW h~WtT/^ rE`O Ѝ` AY:?o7~DA k;8'K]VqwVisr+%>v)u zPJS؉nϏdhar!,ii7b}ʷs )z1ۖlWH2[ˎ 1J w'`tvg @yhY%D~ mÒB%T)䴦@V9QWܬN%ttfb;cQWiִnǕkG(N6cq XlSĐُӓF\J{F^.X [V,*+"ihѽhOE ;JxJ&`38[XLgLTxe WjGhM[kT@6UPXeb{>= ;*4jB;Zw줼߇R|by8iD͹e8ic 3U>G%܋Qoٌ~Mq)Mٙi*Dwg|۾.o-Ĺ Rx'uF&it=@'3< !Q*s8_z/( d P$LPީQJ%#U} Hv<KmIᾭ&QAWq `я֭2n'Rm\orBior ur#3G_LO +ƨ(̗t}wG.1 dGIAyGK 84}c>4>^Dnš-jx;08ڣ޼'P8%'a6$θ|T{y5wu.anGR>or W'/+)RoUb՟Sގ&FfW0elPyi*=yp{)G̷dD>1٠.g8F F& AW Fݪˆ"P]$~#UAE}3\ R9 źǢCoVޖϚZ23ʴkN J$5I{T%S a[a`2|?stWivߺ9 $hS,W (Wbdޏ0&9@U &J&:J{=%yߣ<8zyBӠw * 8TPbdմOנW vuH~iA뫞TeJ:Q睬ޒJ&,& hQ);ԯ;}f]ȞUٿw~Tn+&[$V}0VQ7G(;Y,zP n&@} WSL~/܆#)v.0 KF| ߎ$[thUڏ'gU! Ebн0S84Jq;,_uUh/'$=VL݌Y#gf;4x]۔V wa=wlJ?K ۂqH2q|GkXlF#t'$2t,^眜;AU̥"W[ @9_ 4@|8m8D rW(|F8wKūW=Pam!1\FZeO $쳪9]qљ.7M3+;_:R .W:\Rx }Xɡi{5ct >hFܻ-U1Re9e9PwDZ:*@SXPUNr^%֠P7ʯ H*yQEF 9|b8MG -b孵FJI<Mp/`nג#^6t+9Q -Qxny@mC>ARU+]؄wvc_ֈb 6"8oIjP{^XЂ9;qawYD't h lxLe (Tdx#i]8OŽp мx<l [ ma~:ʏ֩w4wLѰgHˡq~v7U_S춛lN1m /Oݶ"_27獢8P7~9+`!;2W[,؅p&j(&s;ǜp_6p@$ GAц@[ Μ&W;T.UQ [RPu] +q#V+G~=6a [y;ǒx_.+,B`HZKp${E.cnGwZe0_|ŀY~ "Tbђ+as _uV؀NxhRAJ\}Ng7!"fJxgFck 07O515pޙcΦsŧc,暦Z<Fp$);%mDn9wXx%˻s 9HjA*HƒĸU-wAAfԨlrw> LH􃙋 l;/-$ d A9[[g)u쨪gvK4.8%Vq@)ȑ"> 0RnImԗq-$bQg,TKV(XΪ k,I&QVv4!28XUyt;Jbv1N>{r5~ ;+tcrm큀S00E%$xs6;VUEfR6LnQdD@zK `X;bF1&2sͮfhBd6??؅#[#JѶ4r^}3#} UD:2*wT3FGHƝl'J؆mY>7̧vJ:o,E2:L:@@  02MOrxjWWs' ӢKTwŻ  TCgv+x"ђx> po {6.i׷M^߮a}Z4 ] ۦ#x0 4k%Iun97D[v;&&37 Q58xN(slpf Z(%Ai^LHuz|E(NDHa|hm‡t0y;à[FOviәOÚh`N$r 5{\fx\,1iL}F{fm{l]zKm)!&̛ rʧ236hL&ົ p,S ҶDt9tsj0CPϫj5RI#E|)FHZr y( fLV13r,H^,J}{޾=8sJۡ[ux2Sd%I|g{mM#L?eW0%~ >7 :UtDƆȀHН p PC ee#rJPO\a @#X(Dj8Dj:J&+\Fӛg;uwDSg!frD .Z!qQYk1dm^pm~+WڈGjf2 Xncp`6Cӻ]- ߳> bAZ4\}xb\v6 Z˖Џ֬N9U=;PR5hnb}DlݦDz-Lc@/#e'̹WIQZrR$rl)6Lj%cHls}ͩr30fUbQT]$^?A |nR|q> rA~ҠMD@}%t`2tΤ (ת>i#+kWB:.$t h55zF0yιPހg5@.S-7B*Jea.|P2hƬz|f%GӌDk΀C *$dVE(9T_}H ~G d -]?Nhॎ ?%@_;GAεs{ե,#9+|~si:hkD'fUB$Ty~A΂llxSG'*nyMY{ϔYN WAw E=n>ےoؿ~&7_&em׎ "WA~zC儐Eb#Ƃ 5j`ϓ4(1d??iȻ;~Zz(_@TF<"XK=CH:>168Xygr n\rg8qs>nr*X'6e9$$oi1m*tfcV{⧻_֔}zI&Hˤ ai8 >' Dc5X'5'Iڐptb:Ƌ dI=%]M/}f)oKEPR/t:rZ4=ϭ.aۑۻɨ{H]exvE-r[90.GZw6Q7Qό:2NLINv2/}b(fFP*5mF> [ءuR0vyₜ[:@8/MwfG*W4rP/A(ZzuAA'@cD HoT bcUd8ͣ4[6[ 9cz EzzNuU2:{͎DW7 NBѝ "jׁ m[a=ЇmFnYHnT[UbppӀɫ|#)pYSkܞՁ%8ך\M mԫz2cHGv&'ouR|kȶoCN۶>[_r6 @!깜ZVg~ t rYhXЇ }a2"Ҷ#uTX~i0B}+=^K / 0Tc`&jwO /Z V O-F48+3Ll׎#篐X(Q'ϵw?#Kel; }{ġ6 -2@1lq}lH5&G94f(Fm=@;(s v tjcd>Iلf?ϛ^ޟ5jŊ]GgB+zD}sZ]=:ffcř}ܚ>WSD~{HEL@f"mS" zS[V]}g2у6mCzd#!kd4wG9p6QkEHZEd`Msn!G- 9Y7zϾ72XkU: GMDPsS$g9OSzD|Vv4G~Aeͭ)m\- ZytjP j8d5qjGl@x!(XWU-{9Ѡ#F J\@!InkeЙ66)xOI1RcX]e|(?*q!o7VuDHB.>>2gGDo}u;ĉб! 7}5 hQJǫuoڭ OggSIq&SǾ;Ŀ 怨Z;X `;xrA9e`кejcz4h8LR HI&=F$/ga< SsFl}ϚmcS?@)*Leͳ LߪlNh&]bjczf̑c/ ۡ0]&l;_z^S bAAq/3aP{΃ XQ2F_!gSm4 ;1`==zfR劂O QAeH@"Q o &琥 ݵ8'ʷAT/lf lf,)4ɭ6|bp#؟gh3 ]'=l.mI󣆡= $K  FAsdC;<" JQuoάؑ &- *"ҧȴ])zou {PÊP)zų~Me'eq Hhm`p}И7cdA۴5cQd留zBxy+P~+8Ro4Unifx,^[Q{/K vB%7T;kвef1`<@eh nbz>I)X*(tE󫊀;A*Zcwݬq:r@^YE?p%Vxg>pJftêc Vb& WN#g"v -SQo*NAT*5ž zTBx"$pdR/v7 (!92t%I&_]Azy P?F}KRQ.%8b*;ovUh=֋;ݣZaZ6n hXթ"kotq?:-.Ν7O{ћ) &Sf:ì"X݂# P'KbFAP.rs rs&VbDXBhU  Z7avűn jdx XCjɹe#6=Ej͒hc9E*1&h!K5QRO`/yܺ=U/k٣5&XfXt~F[ރ' \-{y1%hES6VeyF)R'. 䇢g`)E"MK.cp !/%u#1SFLB7u7h;ĻJQ4Yp=V}vd"Z/[+,ks6,.?{dWx~VG> q )Mr솴H0G:322egm31sU%T jZ)"@f@yPD P;y_L. KԡnRYXzS 7nt4ia4R⃥F붎Liy6R2?zpO[Їf$NTf49Ѥ4-2@(d6?'(?+٥d{BhMzdYo/b1d93,=+H>}S/,[Cq{u OU)xݐl>S 1_pú6Lb"3msۜ쉔8}vWa۝7I%^fS%DB{Y&t89vѽFe(ebࡦϯ5!վj҅`!(t4փ14T@T-}E=j&$JU ;>Ĭ-g5F,*xn;93{)8NO ʜO|4J[lJz"fKELdd~FtF':n֟^CS rLEszȹGI>Dp&#TxڶIyYU8)ܿ)] .2:*j2#K}&F-*ܚ2qHh d/P.ޚ$OfD{S?ZE-T[)5-mH[ Ammy/۬}m=z b"M"IDHݱބ"#VNۺJSiT%iXP{lؤ"-l u}`CI1EhH׆{m% ky$ $Ū4`bQ=E2:GeS t {9;9l`FƐ!(s<&K3#91g( @6,V6k80E(6 §PNWbݔ0֯#nI~OOBjrx>'o~{)e -ĀcI?S^#%O?7дrBx+gd=&V{c>vg%d VE+S h2b A9kIeCMxкP_[ 1R>`/M>J"z`9^@pG Mt+ȽЭۍOx oiȂl Ap-\/Lx}=Ji n}gډ|:Ntc"Ė:~>vԗBy{.q{Y+ke$Ыؙ fOuMLkd@ziL= )X^^|ʱ-=T-V`!l21tRGXn^&KqϜZ2}6̾cыC'qLg}HkksAs1ҁk&9o\!DbMjώ-ޖ`׷>vd{Aݦ*O{KMlkO\q[S89^Ff~,f!HX$hÂLg&zPR-7YN)|Ja-L2ⱌւlz[Tu[cZ%*甍?NN1F-c'\Q9D^w`򇊁)F ?icD >f{iQp4 udH!c\atG_M=i~ZmgQ-nTĈa  A, P0ˠ0铉5u+T*iIZ 6 BMDN0aV"ogNk&OͺXtN;ԪC྅yUVh~<.&OggSXqe_>f!܏V+{yBc;ِ&T * CP*uYFOs+_ 4! Bvk£G{YB6=† L#EֹΓqm3RG&,V8OGp KrECmCJV~¥Ƿ B%3D`-T\a&ol&$E[F:b+uC,QJqXF%WOL#KcɼvDi ?e N+u[ dXDO$ĭ[T[_8xgDDS.#f5  -bs%CVC=u- #HUk)ʆg>{/HґaT2:C{+ExNa~؟*i=aPVVtq&UwW{ZcgC'ԝ;01e 2,ǖ̯緞k7O]'+Oj S=a;$Z35SYΎ`u}Ku"XU *;esfi%`wg4n%D`^V`Ʉw!9w!ྲྀ pychess-0.12.2/sounds/move1.ogg0000755000175000017470000000733012641567764016640 0ustar tamasusers00000000000000OggSs/GvorbisD8OggSsda%T-vorbisXiph.Org libVorbis I 20070622vorbis"BCV@$s*FsBPBkBL2L[%s!B[(АU@AxA!%=X'=!9xiA!B!B!E9h'A08 8E9X'A B9!$5HP9,(05(0ԃ BI5gAxiA!$AHAFAX9A*9 4d((  @Qqɑɱ  YHHH$Y%Y%Y扪,˲,˲,2 HPQ Eq Yd8Xh爎4CS# G,]6MuC74ӴmUut]_uhPTU]WeUW}[}UUYՖa} Uum]X~2tu[h뺱̾L(CLABH)R9)sRB)RR9&%sNJ(PJKB)RZl՚Z5Z(PJ[k5FAȜ9'Z(9*:)Z,)X9'%J!JL%C*b,)ZlŘs(ŒJl%X[L9s9'%sNJ(RRksR:)eJ*)XJJ1sNJ!BJ%SJRb+)XJjŘsK1PR%KJ1snAh-c(%cC)b,)cŘs(%ƒJ%X[sNZkmsЩZSLsYsZ(PJZ[9Rb+)XJŘskPJ%XKJ5k5ZŘkjs1Sk5kNZsc&BCVQ!J1A141朔1 R1R2 RRR RkRRj4%(4d% `pA'@pBdH4,1$&(@Et.:B H 7<'RpFGHH!DD4OggS)s| "'%!$"**(z޷tIp pWWW>GlLs<]FנaC٣kg։t\lǤ +nW2 Dӟ% Aco{j3^=Fbj|Lݓ*$H@풛TaDdfO <|DSt;4eL,ݜHJm21e#p\ c@{æ43aT3uD<ïA Vڹs;,s qB+ DzU6mJܑ;&ɭj4}Y =|赯\YVj)$/ʽ`>2Sۺ*/{VMs3aipychess-0.12.2/sounds/start1.ogg0000755000175000017470000003130212641567764017023 0ustar tamasusers00000000000000OggSw !vorbis"VOggSw,A-vorbisXiph.Org libVorbis I 20070622vorbis"BCV@B*c:!B)B!$C:5cGdBɁАU@WPrI-sWq s gq %s9r1sWr)-sGqsGqsm1r9s Rr5sgr %s gq s5r9s9s9s1s9sn1s9s9s9s 4d(( @qGK$  YHHXfi&z(*iʲ,˲. HPQp Yd`(8XYP GM$<<<<<<<  Y (dBCV@!CR\ BCBC)%cSA!|={АUa8$!b'Dq !$Xy$݃B{˹{ 4d B!B)RH)b)s1 2蠓N:ɤN:$Rk)SLc֜sA)c1c1c1# YdA!RH)r1BCVER$Gr$G$ɒ,I<˳<˳uXڸ|BQfX y BG(o[||tqeK<ȊL>,Zƃ3||6cج<{r >[N{)u!S׉}GG߱=y) ᣈ))+h2Ĉ>EY# DSi&A㊱ɯ>Qz 6BMO4jiQ3>Kc7?)Oe*faьӵ%xi O7Eg!Ұ,OGI:Rp̍ZN_\_yR~tش:X.y:n~ppC:ɡyll׉FcV-еjQL g'1ZBt8$II_.`4 1-s3HI |4"qS5z` jEe'rK.S>cFʳ-+@LGNXRVltҮ4R. .vv$)m՟K.4܂{ 5sf k|tUx}FSPG<=4QxC,8 W_߽*8:AoIDPD].yoO;ȃo}HCǵ|>M?Jssklwn]%4L> 4 7K#w  (Lx2hj0Th_._='ϣ$$)w[ѥM?Ԧ!֍0GgLZDCm+~8ؽYsKV $({㯽0NЭ?dKqi;]Y*r9T\ D;3@imէk-{hB!C=#~@|lbϔb. ?>/S]q;Jf*yr?YMmȐPa-}~?{,3 &6GjA"\F ~v`,kmw8iK#[m.7{*XDsRP5'u_ r& Ev9kIl˦" 4;)£\#P] %||8I O5;[2jxݻۆðWBZUV^*46Hxf$:CIe޵.F>;i!Mjb]y5㶯i sn3Lk}>4Vxa 9|!EIjN oAP{(QD"<9/|s̪"ư@G3$>N£֨\{t簾J59lMslDd0o@2؝?-'\3i凉l$JiQE)Ics,AȂ:}}8rxKN$kX4 ҲA޿c EzcirW#?;Ye9OlVJ949b%ht3ⓑP䂝o}8s L#DQ@Me?l?ʻCw>5wZR: Vm: Q*JϲrrNd;ĬqPv4;__71uHZ\/+ 'x|YDG6*~w$ʹEws0X3Uٟb~U&GOL9@4_>]3qtGc1=X~1qbbst WK[A2isbUP=M=q˱wN*{W!o&)4; XG>'.&הCW\L׈O dI9f} #zOʱy+B#Cnun^"sȠs774=uJʕ䉏CPӟjmʽԝ9'I,cUSkc8Z `.Xdr Kaii۾Ja:ADQz@,xX';ƾ9}Nge cCr@G֫:SGV᜖,A@۸T0+?;  L4%ǭWG> C<3lB/nnL*(䃳gLBu&((T \qd@3j=Q_bG8>: bh7 q/J) x]k⧋z/u: ?JgirLNQ8)TȂ'&>2IؽzXjfYN0ԙ,75Q{+A{K?tfek]Kմ$<_Rbď ?̓9H[OZܓ{3TGu-Z?w^x5Fܮ}aFupnhqǣF}>0[ƖO]׾'J;k$TO>plKsF JocB*1j_AbO$cb:u!XNN?C= O8fjxlutM M18f.&t2L0P-0Cq4S# F vNtx]ckt2Νѥ!B{S,\kſ:No5󻁟4]b&xh^ v4l|b-=>ogX~>Xv6A7Mw8ElUDW MA3My2|a%Giw͋bZ*f¹Nd- u!ޣ"ǀŏRt*9dG3$X(b1﯄'H[?:5={5onףQ_xgW}NVэK@$P?=t^\ADGRoůGlƯGs?⁍ S=-E}.&DyuR)/JDPk>#~;ddqҤr7J\ã|ۤVkth?Qk#Emϧǎ.t1H]أ,3牬A"+A}N{$x$9G tp/VpGj{GdZ^Sr2b-^2EkX^6)m='D6&\N 9(0Iڌ3\ NC32Qvm\Σr;Y=kpODkl'Zc|ݞ5i"eei/\ bҩoKt;`T/ WnOH>R\JT[v>t|CY!4E$3M? 1: ɼ߲ħ/7 ,6@BXA3X"O))o"<ǝۑyϭ8s: A],Iv 9Ѳnn1L/j-<&:O];$KpHyiQ]$Z>l+M<8QZH v\kʇڿƃ}m%AWIXA ׅA3~<B16CD(̂sfAHAdvї P6n{4š ORѝkz],}O!@ 5=ax#!-Q0or0 0= Sk;4ϗ&a-!i6zY47S3 G o7@;Y da6勷$k8UR0?Vx _}W? ]O-j1IlN/9L6tF (~^BR} Ae0[W%5cl>,Z6@A%ӥe/3:FYTr`7DK,C[&Xgz 5ecСݒ?%ñiv> x@Zl&a|\/mgs/ !}d0ymȍ̞ݟ@& <’\X,s_'4{nmv-OWvcYڴ,vZ2ԊKwH)j>F|>|d3!xt")u?zW0!?Oc1:,p,^:e=Hj(MJq09[RƧuht.y<}wTM$ kޥaPߏyE,;6-Gs2kosWG3%:ׇ8l~02ΟcC|t?>_>UhKn90*qViO:64AuT%Pʎq$^N6럯BHb8.p!y 1oGE=G' /ec@8-烟}89^<.&`-2]_UESČ+C+6Ñr"M-'pؘI,jh)qmĶL͕0^RcC=>9T]X<_$R9ï{3 ̦ /nԵL7,-qK|o啚6]^|y:m9}1^NC1LR2MtMmlVg;Wk,]{ r{ ?74X3'=m Rh;_XZI a͇ Xۊt1rOda!'?ay pƧ)̏%+UtIN.W`<kDkE'ꬕ~ q.aN06by]Qt74@~ *6^?+H.}`6B9/R~G x=:lj 7\Cۜ;k{Zlg r:mSYS_(Ӊ~76ѮzM:G-ĭs9H0G#u }"Q˩kikl'=L H4'kPqpפvu<'_f31jP3kbQD򖺾g^26#ub ݡ=f0Xj\X"adv?Ig[GeQڡSxgCJmiI"f^N͐s7~ 4/u`e_*#"1Ωo}?,]2ysv:ޭWZLX qt\ 5Bkﻎ+pw4mowUfY G:֫sVTc9>{R^Wוh [d } .Oʲzu2j3rr]/Q3<&rHkC^ض=%v_vCEC!޾YƺZITrW j7j8-6̼1h׷0S*`\,ʱ,|0anEWPsyGlFs3__^ZtA[ٍ=gr[фd۝\-KU1G:`!P\5k&\?Mw^Ȥ~}Bkur(/--B}ׯ;h"U'$Xr*H-gA!aV_GAf 3uEIXaRtpr糎7ij[}Oѥ8M) (ɧ9WeAbqFo7d'<2/ Vs0jq.XA#;ƺkrRgp\-Ī4x…V)D@XݓY瞮>q/U pY d()! D ^+-UZj_,>f7jM!cW{utF?l15NQ:B.&'z%_v Cn%,GzQVM^X^)ͨ 6/f3JS# G,]6MuC74ӴmUut]_uhPTU]WeUW}[}UUYՖa} Uum]X~2tu[h뺱̾L(CLABH)R9)sRB)RR9&%sNJ(PJKB)RZl՚Z5Z(PJ[k5FAȜ9'Z(9*:)Z,)X9'%J!JL%C*b,)ZlŘs(ŒJl%X[L9s9'%sNJ(RRksR:)eJ*)XJJ1sNJ!BJ%SJRb+)XJjŘsK1PR%KJ1snAh-c(%cC)b,)cŘs(%ƒJ%X[sNZkmsЩZSLsYsZ(PJZ[9Rb+)XJŘskPJ%XKJ5k5ZŘkjs1Sk5kNZsc&BCVQ!J1A141朔1 R1R2 RRR RkRRj4%(4d% `pA'@pBdH4,1$&(@Et.:B H 7<'RpFGHH!DD4OggSm*.*)m3hA],7[@h 1pychess-0.12.2/sounds/win2.ogg0000755000175000017470000005010512641567764016466 0ustar tamasusers00000000000000OggSz&:vorbisD8OggSz1y-vorbisXiph.Org libVorbis I 20070622vorbis"BCV@$s*FsBPBkBL2L[%s!B[(АU@AxA!%=X'=!9xiA!B!B!E9h'A08 8E9X'A B9!$5HP9,(05(0ԃ BI5gAxiA!$AHAFAX9A*9 4d((  @Qqɑɱ  YHHH$Y%Y%Y扪,˲,˲,2 HPQ Eq Yd8Xh爎4CS# G,]6MuC74ӴmUut]_uhPTU]WeUW}[}UUYՖa} Uum]X~2tu[h뺱̾L(CLABH)R9)sRB)RR9&%sNJ(PJKB)RZl՚Z5Z(PJ[k5FAȜ9'Z(9*:)Z,)X9'%J!JL%C*b,)ZlŘs(ŒJl%X[L9s9'%sNJ(RRksR:)eJ*)XJJ1sNJ!BJ%SJRb+)XJjŘsK1PR%KJ1snAh-c(%cC)b,)cŘs(%ƒJ%X[sNZkmsЩZSLsYsZ(PJZ[9Rb+)XJŘskPJ%XKJ5k5ZŘkjs1Sk5kNZsc&BCVQ!J1A141朔1 R1R2 RRR RkRRj4%(4d% `pA'@pBdH4,1$&(@Et.:B H 7<'RpFGHH!DD4OggSEz;$8 "! */,0-¾$%#"#""'-2-)1+%--%#&%""+.#$%0/*-," j@̌Z$e޴lrؕ'g2BB[@NC_O @׎o*#U?F^(>G\"uDlY\da>S!`Ij՗K?Z;lDQ '^Z`$i%=:km&*ϝHT]YOV.{0K(w kz;M+ەr`[Ѝ4t6Io M3QCbʑ ŏjL,ςu?\t ƏP8,>4B_mHh/YMGpH5;w6i +1ƀ`LKĂ]񝞽$q;TӾ?dzmX80V^Ju5^t 0VЖZ}n1ӭ{'TEWg9}]K%۫״3y2ʉ:NbqFOmxA>x,i28l˘n@{ $g*Kޯfu嚻NSEDÂy@ÈU2 Y 'ƾ腸4}BN; 0o][>`AùN*]GYJl^!΅`P <; 8 v 6f,fү'6V1X]uw\\9ҧ0X v#Ayn@osUO{!P>Zmdkm0#pL> "zdm>ݚ@_O l3&ؾ66uy@Ol"m{~_oԦA%GAH G.Wp z7ƿR?7,)3?df>bH Y5: /wxbA 0kWAɲFVddZC%0ͬ8;Ks"Mu_XķT56y_ؐ;?eL*r<ٳoco{ H b'~ėfҖ!4ĆW.k<5?;Htf}@sϢ4WBҳBrܐس&KFSZn&A36vg@qR3@{o͗twO[P1_ __ӕYF5L﫫Z/e#l3*ձ;oZ'k'3'@oz`Fv9>J8h6v(&e=ۙ__Tt|ǜXt6J R`>&PPԜ;8+jݎV(*!ex'(PջKC1KLfߤSL%NuWPo"jճ* gk jm'%^Dgy؜݅ ³?J ,3".HdIXE[. $ϴ}bǝ"Hu Ru.;cҚވjq~? PHk3Z05ɯ#4'VJ:L:MO;^<>~ZMńʋd\7ercLfBLyW ׍mBFOXoꊡ8ZC/ܛ9 DEcxNR.zoB2"ޖ8f .«%i{J5%ZX_H i `>Vpe/v yt2sU]Z*R@T{ \*cC S٢DPa=m؏e|# ^l?:@@co֣퇰Q(oj\CΥaP?W>,ճb;:u/!is>B؄&8/s1Tƶk 8L"}Ϩa4{ΓL!i&a$=@r`]qډ|Qp2'rQ @anlX >޿W!Vv3̂·TN{ۧtG5@9AM辜ٝ UbScJ[^^V s8-^4Q`+;{#5Fy˕[x䘜.uhzlX%΋Uu`^jKY,{ܰ>ȫ<:5dg#9~^h}}a}8 h9gTe8u `z߷Oo]/kiuF#w:1)Q׋6+ccHl=tG@_{Q}hM&+i+2'݀>r9pL.ZyI;sRI`l (3$~Gj(($ՎVR|}wǎvbx*GӛdY|WV/PǮuZַOǽ|>Cgi4K 9Md|ԁGGnl^*w͌Fr mCk êC@wg{vѷ, .G.F&nߖgv=B5L0răSU5wB?}k7;)#!5Z0AgݿS"]D+9HY46ֽۧw^ϴ%{n\~[2 Gf(xٜ3]/h#޲kkt;<KoR~ZACjٕFQJjXQIu⢙ }eO^-ES^}XOuy}Kc?lt:)4[_rÓ-bj5[R4si'Ѵi~VURZ;!N2/D0 ?v1cI納"0@Ȣ`e}߰DM(8%rjk۳Iv).X3{'p.ff+R<۟GSs`[jSRN[GfDT%\6Vl[XhS;R sk^Mzvޗseb6}=V9- !fl0W&u!dcuA/N;Ig]9)ܔx)͡'ɗL%DmƼJĒW3C3. iT0*2ll|Zv>9C%q|49Šw$\sS>w [Cy#<&A)YCP_fT_>|-=tkY~aON_.-GN=& F:D*6`gZ{$5ID.>םH3R"z+_^sKkkGm  !V YѓEmvS%YJ^wB%>8Ad^3]b 3};?9z dX@mCLP4.s[^vMSĄpt .gskVuKc/=ٹx~wB];&|!WNlN-ȩ[6O9֧˲b%,p$nhh^w ?AlPx' kژ#Рw$ؽIOC~g8?A"Nρ^<5V.FǕJ4WXo2,o)dr(G+˘^FH.ɳh $m62t>"}yyb3+ Z4Z=6;yt93 v؏ȅl #''HQ%#Af}F_s%6"{iAZJ]I{K(j\R㓻kmx_Es%_[aAVlt "L@8;kU鉿0nnXš"JFla2Im{ΥN ܺ3S6 Jw{BDåڽZLBdX`qÿ&_Iʟ]6w0tǥ̋=MҫjU!5@^XQ~ϠǑOҰ]xW{t:FB yG(8 D4AP{kv-r2ݴ~р"z;VM{n\!bY-\!wyyݖw ɏG,}ߘòeN HrJ(bWqv 3s&^^k~(^}œQ߹xg2xЩhOתnν|]QwDLF~|&&R+OhMDi?;Z7&NJY!|7"Wx5Cѵ3_3V;_20X!~"?5NѱjԌJKƅQNv+~ vH ?'!3h-NqXt {rCXeg;Yb|Ne5M+oo fՈoNmV,8o\=FX핵Ґv]F*-ehsE5ڜ#7_F)>wGmPw9wl(7rg̿&k?{NS68ר;`5hRfbrTVKK,Kăi2s8p)ɦI?Q1;G#;a Á&P'@)AHhujvt S+y֞z] =uR^wFw~' q߸l;4ѡ5D YPu;}")^=Nw ~jaR={fZiJKq.Fj@\$SƩܮ_Kչ]}kގ4kMmD~3.}+xBG9#rUhJMkC>oC4X`P>(͓^3+ .FOOmxi?q`: L?tm* @QPH])o{̃Xh~8hr& ;rf8}p]04Zf,yHu;תN%1?V@%nh[k5"P+!R]vW ۰aVMwaP fo[Cv\ tc#Ig~$ɕg-&Vi5ZV[j_5۲d!p.L#m' Ig_|`=N#8L~D`Y7!5V]S |sp'7KcfY2G0ߺwD_~>">őo'}.>r}i)w1ƀ9 ;Ǘڱ1DKmG2VYyZ?w{Y=($䙕0`Z}>TO`^N6ղ*r5ca PV6wC=y>-\3!kS3ld<һ~mEpK\U:Beb`;lZҌжK$OggSzUDZ&¹Ŷ#$"(.)ķ"#"')*"!""")+w .{8:0 0I61L(I9mE$7ǹ1FWv#W#ahzs^3>ZF7MUL?~9ֽ&o&;|mʝęcT۷L9Wc^G r a<ԿB9IbGR`l;HQ.TO'2g>w4elsf̴p1ӣTI;<ØG"1_n7~ Vx^2d2&JD譧* }:݆6scbϑTI&6=,:ptQڄ0tKtlHCr~6hĨrߒh-9v][wtf=FL/cFI /þV)Yӽ^'Dk(NS{jsmYA,Wp83xmj`Ֆ9Zʼnx)jy*hwCEaߦ3WmZH{d #/y]o-,|}ND㍧71MjeeOhўwl Lzn5{R;MԶ&=m5|WkާA3 E9KӚj5>P$>DW_<}ķr_!\m$~h>Q~P]0|奧[Tz֛xB.qR٭5K@kqTӁv$P I1Q1Yd䜳BQB ;Ӵi{|}pz%哦M1Ey 7]疯2UT&jիߒ^fθ:e@6+џ a0 ccڢjgul;o'ȨJk9c-M`C{KCvp۝S vv %-3@FHcP`:7&/kY/0t4E)3OTמߐmlmJw]\$횚Ӓ'. OHm}~b#( AK WQʥц*v,ǃuiLtu mmm9p;o 7 @7@PH(GTc''S">ű@VV,nӕu '@FG` A+,䫥hF4K>i$X{Rw4Շ,iJBMY a=)`35?Gl豤_8&'j0G{})8¿{|!,q}՝0 ^`C&ֻIFyL'^r.v(^_R*@'kDcRT{aRco Gw'⦅mT(IǪާ8h}u6g}IK4gi0hkHZkT/M 1& ͰsJ)2WC6{uyE4"LRcn jat@jiLF\NZGntY۬+ @_ +A_=n4ZNv@j49٭,9ٕ_8jSP%Gn¹wWԼ:I"XUdYfh=~˞%zdڐeZEu$.,Ii+Hӧ_I`lլS՛MZ;zwd;Ƹ+@ 3,+dPl9s1~xp?g._dh,uww#ήVCl?f)G$ԯZ5G ]%ߧF>~s6^/p^^DeMdu`_Rc4кr-{Bv<>,9Jf9#L>\_޶̀YGzhPs=H^e|A0&hVly\xoc )Üo.7<>m >w&3KadN,(jI@Y۩gmQ2f ՖDUy߀*rz^M -w cZPϸ]T4kЈq C;m7<~N)y~xyb .154_A= ,.nRcMu> =[cqlollk[ * 륕:o' Mܐ]vn!\LϋQNP6mhMC>Ҝ'D5?7x% xsl V$ޔDjvy~x~,QŨX{,N4F%-؛ّB o4DX!+#wVvfįbG FI z/ROBr]z{]5A04z9 a]FVRȹ e7+3M/0$S8O. #3/\mȍ6oڐ;jy!-{m&x9dAD~]-,vdELj Z us@&~~y,IM= _o-P5z;_9pLl aYmHqgMvA7ҺMR&ؽumY@3]7ZR!1F_Ł鯿4O6 O~v~ ݷ1Sgaލl% 7V[+'z9]8D>@AI1^{Dd ¡ zfHEcu:44I ЊymAnfDVi'OVmxϹamc\Z$$mjQĨf F6k:+OggS<zk!#$%+- *.˽!#!#$#+/*ƶ~vR.@zw'6#;J[Ucz2S}/W{.[BD `NMQi(hXϛʘV^F|yQ( (L-GGK%;y =NkҴOܶCr,Q'[YqfNym'K0@̵Mwvnœ%YE^vԦAgϺ#utй9)I 8&q7Sm#ʆS1Wl:奋bHP *ˁ ճYQ 7GoVo|$*c)xD '`''DoHkK5.Dˋ~gu&6`|YZ%?_ ZZvnqQw7y|+Gi79QP,Pp.ƳHIL6{ImZqYP ]#zouz{w7` }&̠ݭP2ѺWD|o1%a&q`gCF7UۧMEg ۅnOTּ;`Vܭ#/ s@32K{5o>*f k+ q=GeASP+lpv9U"u>O[Swos=c&@yI?\KJmUMs ʄ:q|eN>z5|TՖYtP^oӁ!zud^I1VP6+0U'e'*nY%<_N2 bsܝƾuoܛ3G=m%זqSlrgƷye圙3&Q{0 f;j <_hXج1y94Wg^;#quӶnHrЄRU.a;x8N)3>x8TaR[ޏ-#+V] ^궾6vĩhpAuy2KA cJ(Ǒ5=ͪy3X]/o'ɶ!&.B;ZA@.kRghG mX}lJTWg~of1)6O}Sd[SQs#t 'L1;;p|X W k$ڄ%xM,Wa(5@q%c KTqq*I/9d62@zH#<1>qga)V1EH5\>-ۓ٢E}H@'̚Xׇv " h]唭Bœ>1.n #) m‰rgB % {J#ʙ933w^Ww]ZO5IQݏb#QzK (;)F)k2~B{Ƕ$xQNzvu!yO~266%̌@9K0],_=H7?Iir(6<_WZ'ˈOfd5,0E\ pOA"o;9pч%ʑtJq^ıj&=56΂~:m8 ϑDz9^1>>v̂93cʇÙvcQda3n1XMϬ}m,z TZn%ԗLw$deַ]ka*^dCŮ`#X¸X_,Sי]=[86`$%Qkb±"憮9ojcMO"KanaeTd qmD̓>vnB0.k*+=@$ cdi1*L=>5è5>L_NaXO6dv߿{Z|4*LMG[!Ɍ1]4MAhT$F$.t]䨝V>ﳓI냜e~LsYJ;آEyR,1\wD3$ R1s9R9sBT1ƜsB!1sB!RJƜsB!RsB!J)sB!B)B!J(B!BB!RB(!R!B)%R !RBRJ)BRJ)J %R))J!RJJ)TJ J)%RJ!J)8A'Ua BCVdR)-E"KFsPZr RͩR $1T2B BuL)-BrKsA3stG DfDBpxP S@bB.TX\]\@.!!A,pox N)*u \adhlptx||$%@DD4s !"#$ OggStw?KG4f5 L7<b !sEXk8T*ګKNsqiOM4 Ly<ݻ&mZiKbv,0^@}K{]'sh wXW(ںx?}nj<4e(/U?e(' ҴYbLdAw5ej]Vq|IlZ~ZW+E~IR?[ZVef*tJd#52#JEôs3GtpUU3k ![Rj(XCQ֛mȫbjlL2&D0 +Q}%e+Q2+C-FFͪv,9ƬB(FmO{S(]AY/YBю oT[Gwn9$3S a#dYy7兑_zýXZگ-mKj~,Wud{C 4~(?S+ @6d#|~\ %zYIF}7g3TRB%$.q0.LqzcqJL&W+brȔ"q(2n%l UGFf1+;88 VJwZX+Ύ &VXóSx Ve`% ;ZOVJwN՚0YS;z)OԉN|<S'>5pkիS'*~xDv﫦<3/pychess-0.12.2/sounds/capture2.ogg0000755000175000017470000001245412641567764017341 0ustar tamasusers00000000000000OggSn\ QvorbisD8OggSn5~-vorbisXiph.Org libVorbis I 20070622vorbis"BCV@$s*FsBPBkBL2L[%s!B[(АU@AxA!%=X'=!9xiA!B!B!E9h'A08 8E9X'A B9!$5HP9,(05(0ԃ BI5gAxiA!$AHAFAX9A*9 4d((  @Qqɑɱ  YHHH$Y%Y%Y扪,˲,˲,2 HPQ Eq Yd8Xh爎4CS# G,]6MuC74ӴmUut]_uhPTU]WeUW}[}UUYՖa} Uum]X~2tu[h뺱̾L(CLABH)R9)sRB)RR9&%sNJ(PJKB)RZl՚Z5Z(PJ[k5FAȜ9'Z(9*:)Z,)X9'%J!JL%C*b,)ZlŘs(ŒJl%X[L9s9'%sNJ(RRksR:)eJ*)XJJ1sNJ!BJ%SJRb+)XJjŘsK1PR%KJ1snAh-c(%cC)b,)cŘs(%ƒJ%X[sNZkmsЩZSLsYsZ(PJZ[9Rb+)XJŘskPJ%XKJ5k5ZŘkjs1Sk5kNZsc&BCVQ!J1A141朔1 R1R2 RRR RkRRj4%(4d% `pA'@pBdH4,1$&(@Et.:B H 7<'RpFGHH!DD4OggS3(nJj".-+!!+(®²g>-:5 Iߌpz{/Џg\fQ,n=R{wY!!4Kf=He~x0J D};% s9:(ϾE]K9:5ZyݘɔW=9FΝc$Όd 3y}hufݱ&ح<>v֪ Su^^^^-ChuUeueuu֗DBug^Sr˄LfL6;Q}ޟ+K%_*/ .TwT骀3RV'|Ql}ı3M@6;z.ʱj^OGGR3#dO@-S$'dd0v0`p˚,E)u=CsAwKXwMe$Cf4:[77qX泓'$0׭OTY'QW>^n^ ,xޛ {&ߺ~,aʓu>_qDN}H" `&zIRs+!y&Du4+öL?xS帙L1 c$@* ΁;6Mb^5KVNgu=4jupS(*Km-*XO 9~+THb+Pr.f3^:B]և%PDO#GOlB_/n6`͗Vc~w8Q?A߶-Lc޿_=_ǣ-IVB=oSÏ2.'NX'$EFccT/R,1kd0Ϭ QBn ى&~R˖‰GM֌·V^ޕtE O;3,Oz9a@P0!rcϖ=]w? 257:l'׷PuXj]_ H6!XHXcH>VC YCʻÒ6LMaC|T9pychess-0.12.2/sounds/obs_end.ogg0000755000175000017470000003441312641567764017224 0ustar tamasusers00000000000000OggSu0vorbis8OggSuV-vorbisXiph.Org libVorbis I 20070622vorbis"BCV@$s*FsBPBkBL2L[%s!B[(АU@AxA!%=X'=!9xiA!B!B!E9h'A08 8E9X'A B9!$5HP9,(05(0ԃ BI5gAxiA!$AHAFAX9A*9 4d((  @Qqɑɱ  YHHH$Y%Y%Y扪,˲,˲,2 HPQ Eq Yd8Xh爎4CS# G,]6MuC74ӴmUut]_uhPTU]WeUW}[}UUYՖa} Uum]X~2tu[h뺱̾L(CLABH)R9)sRB)RR9&%sNJ(PJKB)RZl՚Z5Z(PJ[k5FAȜ9'Z(9*:)Z,)X9'%J!JL%C*b,)ZlŘs(ŒJl%X[L9s9'%sNJ(RRksR:)eJ*)XJJ1sNJ!BJ%SJRb+)XJjŘsK1PR%KJ1snAh-c(%cC)b,)cŘs(%ƒJ%X[sNZkmsЩZSLsYsZ(PJZ[9Rb+)XJŘskPJ%XKJ5k5ZŘkjs1Sk5kNZsc&BCVQ!J1A141朔1 R1R2 RRR RkRRj4%(4d% `pA'@pBdH4,1$&(@Et.:B H 7<'R`FGHH!DD4OggSfuTHʀ#%$&$%!Є3_}g~'?N-A#fɎ9dyQEfaoFRjk&;yT&M3p*4ۃV;fO/6U+]IO!3q@9ꗟ#_ !Ct8Dn Q nMŽƣ# PJz}G%y≁lX~Ak5TXN2@X.˄B QPGmUPL[0?TZ`PC\P;*1uQLtlk}5R#o㍶<'՗Dž^Kl~m @|͖Wt:m[x6C lmEOk$ij7FF.l|:|W3H $c?{,͏R\GMWtTw j4{HZYR?WLJHCt#eG46[zWs Uo܆:+v^Úw3e8=N^N6$M0*2{tY |jdFqц7Vh ¿%FU0 Cf|gJ:#^ױ}<}@eX PZ$H[V4 CE]'fd?E{)E "OcZ}&~ёp,M @LgGQ J5#90,:ֵZeMu`ToeŽ|#P9!g&[r=Y9Q_!O2G|J̆KЏu# :GJ- nY9ft^]-ژAn޺݋`ws^yYԠ_pB3F4FڒJO'sQfAz鳙PKr=3R<W[~rm~ז`e'1-JEӛs Ԉ]-B4C D8{OU2fV]qsq++62M%1LJ<O?]㇖@կBNNWUA%K?s J4'xL| QyCKvi>)Q潙l[{K+w;5[>h6 h+Z &˦,"-mͯx] V {vt!_[Xս3tO< I.'?Hn&zEl[r@GJ`w֫icX)^ZL*f*4L9YpjR<60xvBےқDrbV@~-TY^LX9`OpH Ai;Q~Z ԭt) 7ŜzzT̠:KI6 +N ]L+Lw\uC0z/h[FD:=~ n}"J;9Vx;=e}9'_h$O$QC[mV9),فv=[+ϒ+Qk!@> ghǚ{RA_ @%Mg>rе(k5^r2[[z_]]AOLRML@طk'67',)OgA>فEX&ױԾBZ<9(fي5 ؼ-G {gb!ay:GN5}ٹqU)#L !ԭHt5XGMlv΋6[=iee*7} td34MYԛ#Y+@ȼ{P{$͚3Xx_Mo~NY0ӓˊ[B&KDPqer.JhKܯӓmkc8"~ kOo~.r^l[L4fH1 M&{X6\%, liG.$ Lb7$4} 7$=^7׼<*3d%T'a%4 R=MZ{"Mĺ[mm^;bՙ^%qgq$+9fβ jH 37sW2k lGa cs'lv4TlKe2YxB R+_ {v^aڲ! vvdF% Nbj|ط1߯iףu2;#K,7YdgEaG[u[mZc^L?31l)B5q@b'c<>kG]R^HG.7l%$֑ր g0dd /%^\Ğ(HP{Wڐ " ;cKo oѵأv=ZD"nlypM ^6m;ʴ*pMӿkVvDJJoR${ z=`>jW/ =۱EwHrH[,VܦJωTFZ )hy0DQYkLo(@0ѿMVUy=3koo;:{U(W8bhOu-~loqakSb mh5W[szЙ3 $ng'oͶ2.96C+ %BJNWڛ"kVqaXfvs:dū^ALj G3#fڽҳOggSu+%^\L 8"S$@v̫3:Zc?"#>t8z/܆ t!|YGti@cb'М߁)p\*i%b)z3]Нa:3  Z6LHv:?k4rA9iŖo7&rBY^%d//jCbk1p.W<l}>bWY:k$C*.?O|} -%6H\9E^> vMF,ɖĈ+| KiҹIurqԤ}3R121qW;Xmp y m} dmݫ@H- Q|Qc E oS~~h?cBA1!$G@D3zԯ#5 "U yvݸ}&,>>IRAKډ_g& r2t)d%Co?̍9Eoul"^1":Rۖm Hϧ5AΗKO<9נ;Kxge@1xLxZ J+*R9Ꞷ%n:!漄KO`_qAQK; +څzJA'*-&D½ފ,ӄ@y22A–CTBO)=dkq X~):bߡE2 $ }F>]´JByi{ EM7++8 [jo#(2̭~kZD2LCF@jB>fRNC Tq TFO 'T_cX3p%ͪF? `e[^%8W^B|{UB٪HwNI(;g݊V7Sڃ1l=~GT m%DGH뽴,,riPxM(6p8hc 3#V:O>wN O^#~^Qj'p@R5 ( p0= t>Zm-kWv%c'%PdG 'ȨQ_#{cKW?{6ENNyhk4KvZV^Q^3y+J fxcn eX4F> y1v/w ].XjDCŘd#kw՞~Զpqh@@vƃVE '>gLUb脚ݕ?Z*) b~省Lv ,FTHs  ,LMͭM='^i{f{?gKǒ?q~&Tx>*hobleTj H0jpo49&;FP ٘/H1n;&v7sዼ^z¡2~/FLѨ`&$Nf ]69jwyIxK~uEnW+bw۳EUŎ(c7kt \64wcG4FNL׹1oŗh-FumȄZ,/ $`QBl!"пOl}eOEXNTX z F\~ű;ke+ =z _\Ce=AoG*l`w/x^1&`}Ñۅm?r%.<4ocbuyb H-Sɢ~{^a~׶(AŒ `N"_OnJ I|zL_#lx*@VԨS\60z-h3uQY i2^|񛿱6^OJsm%C H і,mgHq1~:ɜ66wZ {Zi+gk% ǃ"lazCg8MP?^IJ_h,d#ҫ@Ӊf4=  ?e-k92œГLْ+36}, H*rb {Y5WެiTj  @ASlDWY:`ԊV+8G\NptaaS}z1TMn.Ӄ+{,ήӔUL^^ n|NMd(*yK+xK';ݤܸU>tZNXȆ;ކXni% -' 0LnZ7C{^_AMܿsԈ#5 ]m@+PNB-K (޵ z-yk85IX,ECGTꪔ/PF XAv\BvMa[,X8Ycl[!#sEml٫sEvSmrُ`fn_kdeA68O53mNQ1 "//vjs%7[Ii"X7#df%znʜF^ !c:ϡmIf$3*2#4űgX-BC_Y Ԗ +k#&{YoUxawǯp>NZyXs-~ ؤYY8e̲k/xz"n\W9'4YP}˴uOuU,ƥ$!ĶdJZk&J Ʉ*c!_Ƿȡ:?jI;Q-yqm|pٖÒ͐#UmnO}[oF|'SaZ\"p/o[~@vxrO 3iJeR]NE0 "w}#v(D1=fh5¤ j[Վ/,"$8bDe{a_ AfZ&k:[olfo{Fmw޵,.6VPdیyriZ2 g_2. `j6b#Җ:%S*'f1O%f7&` YgD8ì"Πu$aꔾؕL^у6ED3Gk@9i%W h^\> vt2o3f3<98D˯S\ en'zX;(*˪Y%LEZ {66(<`qՑ_^w$~sa;nU[f"0 hG>u,sysE׊NxC79@f+li=r^WD^4 ^mo 4rMaNbwo]CKĭHl'fk#SR^+UGzKxG둃O3αa$CWsh}gbR[wwM3_G#uH8=e) H0Qp^U}f{8lF'1"w#u܄qnnKA3{ɧk'MfSH=r *MODj2#v*K9߄#QAw HSd7X/.J޵ܚEz>5Jp1sEIjrtl~w˩:qo3Ҁ  rbGҁ/vF\x&…ǩ=ΚGJa`☙n_\}"5Oomd9$QʒI8弖vԊǦ z>tSNзi5oIH *n@aAM.g8rYec3Qw$N9Z %>/˄Vު4B#/w n6*3J dGDՉڶA=Ve!4\ҙ|V<_sc@0%* \=s4wkX*6(ZHk8=DrSgGG^AFseŌFs&IY~-Gkׯ67+2?"2fcnN=#y#V{*kEM/pXYX$G Mxay JbjєcMQT`h{ۍFj«|6G4b7^!Tpf:^]3^NzK?+jҶ|c\RAXVXέV9ښ,[4fh^|Iz>4iԊ^  "su;qF^r<8~~ Y#(j2HjXEtHV,TEM$?SYKX/  h"w.5><9qۆٚcKVY ЯQWE:~g}O1ڻ8r| ޵X ʼ>dVC:݉ZAA) E`12?{+LWT= w8=IKۮlmgn# W>7 !W+TSY:G1ýD?m qE{ޫ7t܇^x-#6K wf/#US+nyˁ㈱*#:TQ󇊶#-o,XJj xq G-Y~X+2ϱ)3pEҎ\,Д(&[lURXk޵\[2_GVR,1\wD3$ R1s9R9sBT1ƜsB!1sB!RJƜsB!RsB!J)sB!B)B!J(B!BB!RB(!R!B)%R !RBRJ)BRJ)J %R))J!RJJ)TJ J)%RJ!J)8A'Ua BCVdR)-E"KFsPZr RͩR $1T2B BuL)-BrKsA3stG DfDBpxP S@bB.TX\]\@.!!A,pox N)*u \adhlptx||$%@DD4s !"#$ OggS.y(47K3306DGS2>233374>OGJI78B:79@;\@W`ހc. UN}s wbk7aemiu% tx~̉hW޽Ǜo̾C_'GjrUU8{ I:?l\w{{\ܩƚ׷}9Nx4O dvdzus8^t ӗJS{d{kFKoMѮ}L{k#nup[;Csi!<~oXk c,c'Ad*L׉+j{o4޼YYE mt:;Yxr̮Sh[/\hМbbvvt=qhv)/H>(?}j?窞X{7F&8ڃӶ3s.3KwoלOw~zw/qy+_OPrϿzg[S|.a^ IH,KR\迮GFB)D/پv]PVOH6+sG]'CGBsmiVS7fXl>t} 8DžeC$Gm)ȥ+5:yL޷5g >@>fS3jF[ˡ' f*om؅f`h>aVD@/srXx(_#.ك ❴𘹲3> Wp5 TuОx'wXQгӦ'~5vz?:Y$ÖlXآ`#٭x[n]̽_o=X)fYrU$G_ŋW4۳CMg/*1gnsȔnAcM۪`o kQ_1yJ$˝r~:=6M|=[]鏩ͥ?]>P{~I՛?\_:ܪ=7g_~z3zLLA[Lݶs wՒ8>=09wfڟܚwT gwv[ќݣʺ<ӽm.>Q2%䒕k}{R&׷Ȳ,'=g>+?}}Zo}}YUYYr~_ʲ~y^^ּ*m `;`@ծ> +ʿY5i ǿۨJ`nJ= tm.FHwwwt4^Wۭuim-:*+ u6˘r"UUta.v:z<+J5yN}-n^悳~@³9/4Iv~g*hqڇ]G;46>}Zmen9C*G_v՜T. IA9]ee,?ԞJe9EƖ%ȋ^Ka,ɺd0?,=Gp#|?R/5݁.'{zb C<ˬ?߸([v$LbΎWPnjk5\T,Tv#ޖ<M AJݶ_؟ܷaIpv>~]~{y-Yݜ}1k?S:5{/#wVwUnHAoӢ82m{s>I=4LB _6Pdw`jgr v(G dtqL SDI+RJjX_Y(4 H;:lٗ+oݹ !嘿؝Q{>۠x0x'Z3|>LGsmVp@Չ_21V(Pwaح~]Ͱ-/Bܑ0쾴8no@` Xxdyۋ3 oTʵ?u v> s8)+0ƚaYtTy>O7~Q?6: T)+;"}n}4g>7/[jᕻx˖PO )R^WZT"zs|{ <_G~U߳1Y䳼 \a~6<߳c8}:򫣹ڲsd5oSOnJCFQQX:(x,8th,,~ʷ b#DZ&}~?8̍wf|u:M_Wb-TaCބ1k3qw|ooKn.o{***j^?=tf} T~]aj^V}WWp9Cu_Ls.LSÇ@+>wV eZS?z8nW?^r^+߁WV@ [`_R^b?,*5W.BYh@Pϯ*ck:swy{;wB aAtMJR-u)s`X6~xa#&XI`#bz=kN?^ɐTUU]%﷞tƾzm߶,0\|c uOdש3_7?8= {#CSa*4Jn>'ɨCcUBώ?a߆}sbcz]rk*->TYLIG?9C6?SP3?ɿ%kD 8y?RAT/!pU#8HRJ~YUDZ]i9T*y쒀Eӽ8sXf"6.deއ =Y%£B\c1 e hv)eQaOW?PUU\M 4u[RzbS'ތ߆aUAЏ\HTss_e[r.)9Y߿ǀ}~9΢1cT«0Wˏۏ˝8&NT9lOvqQf>˟>djp]7ǀӐJ<=r {1!LҋV664;YP)V~/?4pS;ढ़ӥM-GNbq_eun˅vPI^TΎQ%#T7#󧯝S' n4*lTUU1G߼לLuZ *{F&i­*wD/}ο(ϧu>$kMT;zzh|J,˩OD:Qݏ>dtwꆙ4>gnSu}|#9`{]xm U uzpI!U6YgBPqn9-)GZqgپTP< q,$֮}cDD^`Ô' K 4WW/W tלR3'S\[Aߎ A4HpM8o_}|TxoR&37en1z;/|ޘ;JǽF^zOB}N}o׻MRI3Ծ"ӛwFFk?/p;#)[=>}AwMկ$t%:ܭM쾜.oA {R)P8MúpX\Io1o$F6aXoOggSWyoY -9OOJVG9;9>98IIOLPN;?FG\<:69FHI_&7[],R7^h9{"%46mTMlsLť4ASKjيbX,rmUh9mۿmk۶U_>;\ݮ@uaGkQcз__أsσZe*9̷ZY*W#/OFZU_/]ǻ3RgzE_ Z;VLHG`=z|1O^xOŲi}zC*Ni2>Ȣx)!taRTۦD7#pp8Ա%{p?zބv2A8Rgg^~߿WQQ4ˤEn$[~phK{۽6K etv>K*ṡ_*J͓g4}?<>1L[o6|;?QYYY@O,Ҵ5uGq*??X_oϴ{= @VUϟ/Vlnu*z?ځeKq@p@{VX0MBtr;,Q4]B/4R6wDSd V$żwsGXs,^YvB6p HU+r,FL]]>l~v/?}F%'Cw'~`{_Oߧ.tsﭤ.5|wsƨcs5כqXIJ'k|owzQ40_4 CP'?#[g^E%ώâ]Ml_u=O}~0p,LfL*2$4\kf&9K݁:yߴ{Gk'6XdsQAʉv,y# p%)qHnh((`pg?~<<]w7'$꣊ vIf HwBnE:O>MǗo}|ڎ..쾖[ vt5Ft a~ <u=+!7 T.k!F4A#s` _߻î7|ѩ%4rA;;9ׯrIӱm)6o_\}Sѻ3yoq&Oc?z=7tgLwrd knt'sߴA)R!/ȦtF_{n ^JM\/KCX~}?z^?W/ncH{_\<ٶ,٩L.Z}(C~8X_0 IAEAAE$I~=ŋZׯ8Lߘ/~k0jX9(޹wZ%*=?z×[%گ_S3.+bUOٱGSTj ?AE=2.0N!{ik4a^s£gzM)Y_ͧ#=9/%[ƛ" :7T1(6֦gMWl0&xCRU>,rђJ9fu5 #KJԿmE`! Zu<ބL6\҃=U4X&&f4..|\iv"e,ؼ/9 |~_gݬwX2 iiUU+!ܓq5\- ހIQE-WS;Hh;Wn6M?txx׃o>34Qy*{J$azIP8g<>|}s6o0dOj,e1}zܪ+k@3 уLYbƟ>=y瞩 bYU{ ˷F9_^.et ᦖ8xԩ_HK߱Q_r׉˱^D~{SlwJ#+|4@N'&{cc͞_;˨r>PӃWUN,݋S3^Џe5+P=HdEz~ 3RZ??*˳ $\=W2܀pYSI)x%Oj{)$˸rCA߻)qbwZ8i+Wzv{}**/F|=0\Rrbꪨ__3_|=_rW>}wnqT9*=LMÓ?O4F0OW}dr.̜>O3i?14}>?/c lVB߾gy^fS=s<ƗGe|Pd˒CˏזťM Cw|zۅ'ǞXcT#S+H3|˯}燗795) ަ^^j%JM)D~O.I6U-cGl%d+?_o"G3ʔ@0iBUs!_Qi!W;5t0ӃǃǵƇ]/߼iN:sJ=^_m%N,˲屑0Hɲfx>2Zpnץ9k^hx'w ^HClsO+q[w><{;v(ũiSGi954O5wbGۇ7xt꛺$MWSaҤi[ ,ճ#_=;k`q%vikͷïwsq,n/E\99`"JX5)ӳ=\PS 8F\) VLU_"r̉CDvz~Kh[ە9*uϋdbS,*qwMc)N=b1oNԿ)266 óȉQ<{CT=?f/D{9g4ϩq? ,6iOggS)lyvGGG7;:AGF78GGFDEHECE@;3)B_~=c XeWMxK_PL7CG–yZT7wMeZw,6g]MN0rg-@Wꘗ<[kO>4ҭ'o[D)tÃFؒ)ՁyP/[m&7meU³eg27^LuP`۽{ׯ_?P*M)O1)LS-oq0}lD}ڳ{CN.De`:Coi'?p;R;S Dȳٝ˳Z&o=_+ATOR=~[s?9{?6׻}·Co]w2$'{N^tW|sOn_f?(6o~ S'|u5ˈ=BjE%Uaw~<_&ڝ))ķNVLj?g 㧂ؽ}OzXuâɿlVޢO xӗ]*ٯ׵>= 斬6ӑ:F= Õe>[FѭpMYD݉ !ɗ?vYOʮ5YRzvfc0c{d Ϋ?jmNgг#^UU?JIw wg 71,/utj\zλ3QqR;:!G˦Xקh۝L2#>TZogtg}/}6ήOұa }YIM!GuMafk>OU92aCUv|粺қ|\sLb+ $rrNtIJl y#ޣq"0w\gWCG"=bb଻CH|H"7{v$X5Bܶ ǑGs]CɈJ*KW.};;?.R8Ƈd;!T//۾}î~9Ξo[ڥIzx{C׮!k< 40yhV41p&-οڈ Ff) 552Ks}]m;16c?ӎs ۖFz:jݚjAj8EWl$B!btGtt׹WO/2C3jB[`VjҠ uyp&̓9u$ܲ#[:|U]FO PU՝s>NO'_4{y/yJrߵ|>}oϹ?sΦ2kǟ;gّ֤|^Ap>8fI3%~l9*^'2D/2iTDܐ UIg UbՏ}zS|-V^Yu ͽtN5RC[x%{t7i^>oz,UuAHHH:.dm•a`Ə\be'~%ͩhv',NfDS3%TU`Mo >lK~9~7ɏϑ+z8z6s$5ZJ2չ6S:kt_ٜ]SS=rT4'p?GL<ݻz}k[ NNSsݟ,>;YI%u>XJ/eR,¢:]uxYx~,֯UC@h99NNߪi^69991;']^f2pychess-0.12.2/sounds/lose1.ogg0000755000175000017470000006042612641567764016641 0ustar tamasusers00000000000000OggSrMNvorbisDOggSrX3R-vorbisXiph.Org libVorbis I 20070622vorbis%BCV@$s*FsBPBkBL2L[%s!B[(АU@AxA!%=X'=!9xiA!B!B!E9h'A08 8E9X'A B9!$5HP9,(05(0ԃ BI5gAxiA!$AHAFAX9A*9 4d((  @Qqɑɱ  YHHH$Y%Y%Y扪,˲,˲,2 HPQ Eq Yd8Xh爎4CSR,1\wD3$ R1s9R9sBT1ƜsB!1sB!RJƜsB!RsB!J)sB!B)B!J(B!BB!RB(!R!B)%R !RBRJ)BRJ)J %R))J!RJJ)TJ J)%RJ!J)8A'Ua BCVdR)-E"KFsPZr RͩR $1T2B BuL)-BrKsA3stG DfDBpxP S@bB.TX\]\@.!!A,pox N)*u \adhlptx||$%@DD4s !"#$ OggS(r ELHD5CEE@F<(%%-.3?<(%%%%%%>4\-dYz#*nU?uyϟϮl4jJHjnu4hO8m~<V #gok` >k~WUUjXyVT]vePQ|w v̟;ULy?BԆmvnĢ|1FMW VH`ެ$MPmϷOﷺ|/aa M W'FQ_~Zׯ_ +M W&#9zׯ_~+M W&#9zׯ_~'Wt|_<9b"{Rv{\7O=ݕawԭ?H@_*ڌrbяWL^彪L3|SKR"@3 %67$g]@t>56vxq HRle^:޶:Ͻm۶ oO&M~W|+t/*@0jtyr\֗=fwپKP^ M W'j2:(_~řSLQ+M W&d33tZUSL2e+M W&d33tZUSL2e+M W&d33tZUSL2e+M W&d33tZUSL2e+M W&d33tZUSL2e+M W&d33tZUSL2e|oisjB>@4 ӛVīʷCC^{ue]ϟ_mIi̻o,R&bf~_jZ{^mw>v'J.t.LvM8 lZKπmٿ*t6V.񮷴W4)la\7 mfd`\V:~o-2KRJQTniH\|f:f ei&,TvYum͞tUrմQW)I/qF.:o?ߧXUGCnk+zz} n6>X$K3'۳2 M W'FQ_~Zׯ_ +M W&#9zׯ_~+M W&#9zׯ_~+M W&#9zׯ_~+M W&#9zׯ_~+M W&#9zׯ_~+DSW:@z$oZQג:UgQUCzNj+Uc eٓ/QiZzWy1sn8Ԫ~yd1noƇoD?-,VTK? d=+ &iR|Ո=8~ϴ[6ޔL;WEYdEVffzfF4UU 8Yc4oݟN9eaRk|փmO䳧9glz*dCLAGHT:UbB8X#drZa`2 P4#G@P -rO/Ri4ٍ~/+K 2Bt!}"R  Pkx[Sv9^(S fA0Nt.8>@3$#^V5R1{<W*Z6HVrpy*W|&޽/@3 hy_q;8jiO:T45!*O^)~3 Zv{?@L+X܍mKkX,R |(|{m2|o\HiUSėRQA+\voχג A&|JU1I2QG>?}Q~z|G8N8S|oe/@` $-Z5ogTb^m;evc Apd3yAP:tkYNyOќ7LͩnoZfQ&Y}j)T"uo!eI`4ɪ~|y~\gm/\j])jeWz/Ta–lES&}[n ǩ ISk))\s2PTgQ\es>gd KYJEC?.u t>k=cj&:K0L\]}P[wo7njU2 \}e/@^̨ykS5|6N,[Ϲ&vnܠ14lP.|4$ Kp9ٓg|}=.:R#,hnڪvp<.|yнOd`&>Tѳ#F??ӼSNkdNϊJӴe\i)=\'ϋ lmix` tV,r5/g}v"X ,ӝw<{\Oa d!o+4)  yEvlH[Ί=+ ]մJUKNs$ LIz @u$?=|z[v^)BЛ'յBOggSTr]":4E?= 43-0:50-/0444=I4//>> 15EA(414DM?>A5146226@>@E.5@x`V?w;{=1{3ITUB}D}LsS1D!J!kIIQu%;Y։O0! %Soѥc%ߗ,_dgKSdFWvsZ[%?=skQ ~֕ݝHJr^n'GgИa,",TDDDtDsUU1"Y2jvؔvU|yzEwCb~:%>yx~BwlxuG1ăW^&1̤ Ui)Tnx"8P\AIlӥ݅M@&E ̤+jdPȖ/8#/&$0ai5{ =5̇%"p*t2=L6dQU' @/iUMQ;r^ܒgo\3NxK3Z>;Mg>jrwmrGb2ElˋmUX@M#OX֮^`f;u|i6tWkDi2p(pi=_o8+Zs(.8Ed퍯\k9ZC_ y}O|q4yv0ETT[ZfoO {9ef_S։waRxdw횭d_/d.& -g{Rk'\v/%0 a#2Mk^+BI\9m+>)i ^^{yDq;Wz}p` pgųSžɴgz7kL-#*ob?8PjǎxUv(O߹[=_#T癞7|3\`C*K}͙Jq,<,= rݿ>ԣL',,0pV.>M{o1OgL&8Y,[/d52^D @*@_XN帝g j") I?Mɛ}{1JNO?7:U]jӛjի"Zp/S2*c @8ϓ`hݿޙI(Ċ3)8qD>ۏ熂"JnV/٩o3qQA;*FҲ4L6QTnk*z$X=~cqU^gY2*;f4xL*~TS YΉyꎘ&TPN4]vi L<4 e @=LXBYSg!;߷jRԳow8Dv&}tSBHL֭e_Ie3ffIժ/RLJX%GmBst_v;k(7L:+WE2Rwt`/mVջ0Y`gr/}=F<9kͺ 9vR3o&J'4'h]܃rTX%n, d1Z521 t,FmY eA̋r nr-*̋0/ˬ  mleQư2,=eY8)f`_EbTQgV;M I+п0zI_Mꪕ&F2ft%'MXqh~4Um[zoS#u4K%J)_w[WAȚ"/Vؔ<xFGEfl9euco sOo./cd\ (YUT}iu}w=ysz_Zv>[c{Γnrwt[>>u}bg"]]5{3N=S:i<6 [@ 'O)!  @%aN1%w@k w= +NҦt&ouYh1[,5"{/ &AD 1f? Qrkz^~P  >-ym=>{ad=Vy~N6ӽ؝*ܗt.Q˫^OW|O,cΫ3׬1SorH#uEuk{z ZxfYNH}sfnb3=}yٕޫ*+(:% SktkhD0;Yt:ֿ~Q8wj:k~ϔ{c÷շl IeXFAe "dy: w&H9]Hu檭ηZvTmҤ OUQFz 2d~%`W|߾_^W&%RXc7q 9Y&D8f?5f9VUU/q.S:u^ߴ?jj l/nK~|Xso6?6O;̡ji\Yq?4 +ݹzaUh"L:$t99P*TZe`_Nf)% Q4FF—Wε)'Jl<:a>}-눕j"l =erdrs TSyW=Γ׹2aD!0éр$[)[@G {}"fqdO8 ꡩ 5OggS{r="V<3G8252DBA2?>H532AFDB+@@@3324@B@13DD?B44B@$cZK~6:2z^..i[S)u^rJdJU,il>@42[}}jw~EnDcvTۖeG#|ٸbr5eϺq@fL®tO{xQIg*WU*k!.R?ܨыLZrޖ&vϾH]g}?cܶ}_nwZ.ŧ/upE83:c,F,BB1 b @,,,''58;-: !mEϾ> *{}<سw?Hx9'ot(GRiݥ$e=Qp]HNi׻.faOxwI]3+9iq` %6׻I^(P6~\肩6{⫉S2U6r:d=9bT[\3VlVtG {; m)L+-no˭n)&+h0j7^7Jve[IEkKx Q Bk#K+oXB)A[J^EG]L^GkLk]>.+'?͕p! J9ԷjxDKUS&_yr؄u.S{ PYgOLjDbVUU83~v1اBq'Ʋo_3vK>}v͡rf]rp Hs~?[(*wNOu\+QՕK"TۥDtǨ@Sµ``+A\. aWZJcb#LЇmaE sj:]zMV'wvi%4$_>WWĶm釟BNg\r_ <ݗ֏[sZYb(ޝ94U N-o|2ja`*Ӯ^$F&Ԯ(:~ Agz*?>ZzFA+jE#)@ E+,z c}U;HB qw~3'j۩BVyi:]ML GZ#PPLY`vˆ6:^en8s;ޯړV6 ADf8jViEOſz--g}+̷>?$C2\j=֖ S-]~Q*|fkw X!KPdCy?lsf@1CYTʲo&H/, XgHf4HƒHKXCy6zil3)9bX5@@o0 1\ftB-R2 m9SZv`i Zhh,\7^}~^~; \dX @꫗f$oO.Gә/|KgܱMwyOO9?>i#է$ gSw?s q @0_x.O\f:9NY֟p%ϩF-#7j*c[e;,eh=L:3wDv-ƒ?NyW@߾[_S||4hpTv}/&©zv)H}@*p.7:6Y[1ځnSgǓk~yv ;vӺ2,t:̾|^}\]ɻ25SL-Gv߯۶նmS/HUdߪlH+eDF}76:zgRxX(LbA'oXU޲ rO@E{m^R_Q*(b$WN~T+|캥wݚ 3Yg+5a5% E@Mx.iƦ;ڪMեi24Mڊ[ٷɿøjMM/ /@R/\tcS yD䅋8@j/[TJڧJg,^,Mʚ%L_utk[j'&}g.^?|]4M%zm?ӧkb|{+Cm€(Xf~>jN=LƼtTpGާ]V%v^zEWO_<}m.ricF@X un@&z3KKfFIcUơmqy"q0|Zْv~g߾r/m<4.Nf;ĂW`*#8kP4wN9EȤ.7+-Iɢg$ w!N5n@ K˽"j0bDfb$7*f]59e@v;D+>ő -υWZ^aŽcY #sVd{Z榷r-q&(#uWM Έ 璫A 0 k;cO~IxykWUZmʈ1`]J+8(}" G^IB/@AϮki\?_.Md D|5>qޥWy2[ I 7~}£]aǯ =4O-$*Kv=KaL~oTTJ?UW7;_7# e?n@^[&SY~RGHu %;k^23o>e')zgiߚ_6~KRoFo˦Wo?+2v>^cSBYϾ`o eQ(Ƴ76>Zn㟋bybVM-T8@4T/kg?ۏ/9/a:^`HWUm%ILuNR ME-=C2ߥC{sY~xʥ9Tz}c_bZV螗Ecd|iOggSrL8(:3?>BEJDD558NEBA?A02314654FED35ED33429@LAD2/p0=t}cs>֊wfS`cUUU^Ԟ&8;譭fݗ6B/Gtp:u>us2tGCO<* lj%9\T1 +U2D.J#!&PzQʗ}P `@>dQ+r1 jw|oŊu#!JTE$xt Ӈ}eg鴃}8!SlKIiBs?>_/ J3O-n }EXJ.yp)_q_o~zϺWULϰ?nM#nYT&uzXmI2OO 7wn>X+|oj[W?ve4–\}C++ί]!ʔjl\K^.rM.FZmY57UOdS Uh>p}|v\ָ\}}ΚA [}w Rq17o6ޏ8{/2+Z P~:pji>Զv{s츐 c_O5T^GB&:z\}Kđw$6Zϊc޺ -d%cQ=e/|Բ<_f~;Ga㕚StwV۶}eF,ߑ[H.HE uO&-ؼxn*ymէJrZ][_+/<Ȼ4_1 SDY\.q)I[iiIyg% ie0locKY_V]%%M=?>gLVWMu(a6sw뵧5Z3u.r &n.|Y=yv?,B#wlR~+pE骱==sY%,>7 ڦV^}ʆBz$Dif{}uݚq*mW.6/)z}xs\}Wy-OG+&RϗWU`Yt5X#~_ea\IA嘫~z"v1~>6t岒ؔc%]72FK߾rLǏye}>ms?x}TZݵLTVo2 kh\9 a$Fv@8e : _Ƃ̘Ta <-S+f"+LRÝEt[o:H≡撷s8VRM[@8$O.D'Ǝ_% o N{8)53qc6x}_&& Dvن6ooo{|j=ߞb~3:7BDEQĊXUU6v.vpqL [NCN?|yOc콓`9,U|,* Xؒ ]P:ɉήbs ͓ IWmoO[Vɪ逼Y\.dNe/N6RĘ?z$Քq8*_i{D@O@K~yI픹eY;Yڛ *~u Y\xDxu/I}0I[CS;sYh j:@$n*oc34mۖ*!8SM#x~$3kUWu5NeBGZ*s^UQ=nM4U/ C?h-4 ^nɮF[į#ng7՟D*;R3UúV*,Mxzp!AZ ibއK_ ̄zq>'4W?V<.ɪӲzr L\aו)Ƌm,]YRD.贐\#O}X6Ǥ/[,&)z<,L,9e+^+S繚5"ވFѰV=䘈_U$Yf&D%>Tۻvj>q(fќD_TwZ8$Mֆt(3~f 2f+㟛zqzs*! XV;͵զYV/K~S$U><~WEv7svjjuz?ի̺>zY4)t7toҌu-,B[@|VQU6:)kD 1w0 HRh8 hX`X~cj[* Ï$[aMnU\6 hu'LX O 0)%OҺ}sYлRbUSTURi[ҡp<4})A!bSK_ o_NzfF͊Y];n'/k}Ibv^?tӵu<6;;qӲo{y{y[xO<]s;QzbLP(Ta 7Hȱ =ȠM"t@^JĨ)( #ف[7Cu5CQYǢ)..WeYe&ueWJ荞@t:L}}8E+;ty}~Ϛ+},K tvAhY]Qs*S2ĥιP#`YvJ?b5Z#)+?#Soy)ݓލc֟?f}ɬg፿4N]_vSXws3﹑@B4/l?}{GmD^zv;i݊O1T kƹ0nަjȄ-lc;r4+)^xyܹZDžr=ߧ-kN뾓<"&;8_;x`q}|~ZON]p|z}b;T>~o۠ک>*E]XBKUROUT,crk/ sko{QG5%fNH zV몵GUHE[UJSD_ 5[fR⌀<_!9 "zL(^}m+]UR $Ol#X4q 47yd_4Fᒊ˨0 Ͳ&a,WH$GL<&-8b"lR k%u:ihs-7OggSrf!2?C64/73CG*&,& -' OY! 9uh>1 z{gE I6. FLs2g {w/:(iUU-@?s1|uyѽ?C z{j*jXߋ=>̟ͯsy,.8c۳iLǾUVk2<ӑE0TϢG.l26}dZXFְJ ~ 2֔bMɝT kJ٩(,O?WN'_ɣ'2J*Sdf5{)Z?e,>ˤLϥr\>dp~.2p\&о!goG,GNc=2:_B-ȚIq΋bNgˉ|iżR*N\́g/K-r[Z^3fTWz_D,OT'[Es>,t;6XSn5!oˁY>^xu|>+ u=^zq{vh3<5xy( HP,,h2 n!\eתϺO8^gJҒ|nUl;t/Ezi5+2Uf+ ;^ѫ33*VU}wH)3zfzjI:?;/AvuA2d})Ra{귿.c8j6Mq>\jE4"$Ndìnp쬎ÝRvJ ]gX+鷨 F(Z!<جC eh6V,ZcAF*7{Q܅Kgܳפ׶60 +?Pv撎;cIa֏vI?O㥺{guL<v=RD<ƪIa}o=# vQU媪;s3sP %NyUi)JplfJ&z|$fs^,QzEhb%+őDhz~mT^G8y<2:[Mt%+VUwYzߜ|e _u^zn>XfS!\FW0Y\Ogvr]sQwޞԒQRCOgWMf݋${K]j;\;hq;% 㻐2au >b(29U0k\tSUuX~L[¶D|bߌWZ-lۣy ڸ @m$r?1ؿ /G+|4a|NJՎQǡq<~ިl+Amds]/Eʢ33\UUs?kۧз~!,-1.\v8ϟY'x^o+mNѭr/̳ލʦ澄g.Y!TΚlf;uJьZVɓ5C)u,\[/JJJ)7=-H:48` Ɩfw=R 0\Ryu鵱U.SNy# hCYwD=;XEyŵ,돾hWeWhw8eYC%B5w,5edP03)e0^`t:trUUHZ<7Ȳ*f V+Oz{\>ogrY_֋~U߻>sϭ w3߸ VUqO+S듙ayW k1|~깡BO0mkԾvH$pqqco6@aN:Dc4gX}dW)>5Zg}V ggzHY_alSm` Kk rA QrUr̯2(\DP.zq+ՆnOlG7ay\r0=?uq>@ZxGxNe/N{ţZ^dU٢pȊDFg T<28X!eJ6da `_^L*(BDZUDzv3(WdV!R{QH[8z{$3 }GWX[Dm NH"I X^ȘmMs,-fqG]4Lʒu[/f" ݳw9HԮ|aq'_Ȋ# WWe7&G.Kf9H֗ms6ն,VŲ,2=iYSie̓mTdM)yrٌ]MoӦŪl?Nq|jGq.FK cJpC!! kgFz.xo+nh8+N%%7b^+e4@ enڊ&ӈTQu>_60_,R 822}Է(?UA, pychess-0.12.2/ARTISTS0000755000175000017470000000146212641567764014654 0ustar tamasusers00000000000000Logo, icons: Karola Kreńskiego Thomas Dybdahl Ahle Max Froumentin Piece sets: Alastair Scott http://www.enpassant.dk/chess/fonteng.htm Armando H. Marroquin http://www.enpassant.dk/chess/fonteng.htm Colin Burnett http://en.wikipedia.org/wiki/User:Cburnett/GFDL_images/Chess Eran Karu / Ben Van Vlierden http://www.benvanvlierden.nl/ Eric Bentzen http://www.enpassant.dk/chess/fonteng.htm James Kilfiger http://sites.google.com/site/jameskilfiger/ Klaus Wolf http://www.enpassant.dk/chess/fonteng.htm Maurizio Monge http://poisson.phc.unipi.it/~monge/ Matthieu Leschemelle http://www.enpassant.dk/chess/fonteng.htm Peter Wong http://www.virtualpieces.net/ Peter Thomson http://www.dachaidh.co.uk Sounds: Bidgee http://commons.wikimedia.org/wiki/File:Activated_fire_alarm_%28sound%29.ogg pychess-0.12.2/LICENSE0000644000175000017470000010451312641567764014603 0ustar tamasusers00000000000000 GNU GENERAL PUBLIC LICENSE Version 3, 29 June 2007 Copyright (C) 2007 Free Software Foundation, Inc. Everyone is permitted to copy and distribute verbatim copies of this license document, but changing it is not allowed. Preamble The GNU General Public License is a free, copyleft license for software and other kinds of works. The licenses for most software and other practical works are designed to take away your freedom to share and change the works. By contrast, the GNU General Public License is intended to guarantee your freedom to share and change all versions of a program--to make sure it remains free software for all its users. We, the Free Software Foundation, use the GNU General Public License for most of our software; it applies also to any other work released this way by its authors. You can apply it to your programs, too. When we speak of free software, we are referring to freedom, not price. Our General Public Licenses are designed to make sure that you have the freedom to distribute copies of free software (and charge for them if you wish), that you receive source code or can get it if you want it, that you can change the software or use pieces of it in new free programs, and that you know you can do these things. To protect your rights, we need to prevent others from denying you these rights or asking you to surrender the rights. Therefore, you have certain responsibilities if you distribute copies of the software, or if you modify it: responsibilities to respect the freedom of others. For example, if you distribute copies of such a program, whether gratis or for a fee, you must pass on to the recipients the same freedoms that you received. You must make sure that they, too, receive or can get the source code. And you must show them these terms so they know their rights. Developers that use the GNU GPL protect your rights with two steps: (1) assert copyright on the software, and (2) offer you this License giving you legal permission to copy, distribute and/or modify it. For the developers' and authors' protection, the GPL clearly explains that there is no warranty for this free software. For both users' and authors' sake, the GPL requires that modified versions be marked as changed, so that their problems will not be attributed erroneously to authors of previous versions. Some devices are designed to deny users access to install or run modified versions of the software inside them, although the manufacturer can do so. This is fundamentally incompatible with the aim of protecting users' freedom to change the software. The systematic pattern of such abuse occurs in the area of products for individuals to use, which is precisely where it is most unacceptable. Therefore, we have designed this version of the GPL to prohibit the practice for those products. If such problems arise substantially in other domains, we stand ready to extend this provision to those domains in future versions of the GPL, as needed to protect the freedom of users. Finally, every program is threatened constantly by software patents. States should not allow patents to restrict development and use of software on general-purpose computers, but in those that do, we wish to avoid the special danger that patents applied to a free program could make it effectively proprietary. To prevent this, the GPL assures that patents cannot be used to render the program non-free. The precise terms and conditions for copying, distribution and modification follow. TERMS AND CONDITIONS 0. Definitions. "This License" refers to version 3 of the GNU General Public License. "Copyright" also means copyright-like laws that apply to other kinds of works, such as semiconductor masks. "The Program" refers to any copyrightable work licensed under this License. Each licensee is addressed as "you". "Licensees" and "recipients" may be individuals or organizations. To "modify" a work means to copy from or adapt all or part of the work in a fashion requiring copyright permission, other than the making of an exact copy. The resulting work is called a "modified version" of the earlier work or a work "based on" the earlier work. A "covered work" means either the unmodified Program or a work based on the Program. To "propagate" a work means to do anything with it that, without permission, would make you directly or secondarily liable for infringement under applicable copyright law, except executing it on a computer or modifying a private copy. Propagation includes copying, distribution (with or without modification), making available to the public, and in some countries other activities as well. To "convey" a work means any kind of propagation that enables other parties to make or receive copies. Mere interaction with a user through a computer network, with no transfer of a copy, is not conveying. An interactive user interface displays "Appropriate Legal Notices" to the extent that it includes a convenient and prominently visible feature that (1) displays an appropriate copyright notice, and (2) tells the user that there is no warranty for the work (except to the extent that warranties are provided), that licensees may convey the work under this License, and how to view a copy of this License. If the interface presents a list of user commands or options, such as a menu, a prominent item in the list meets this criterion. 1. Source Code. The "source code" for a work means the preferred form of the work for making modifications to it. "Object code" means any non-source form of a work. A "Standard Interface" means an interface that either is an official standard defined by a recognized standards body, or, in the case of interfaces specified for a particular programming language, one that is widely used among developers working in that language. The "System Libraries" of an executable work include anything, other than the work as a whole, that (a) is included in the normal form of packaging a Major Component, but which is not part of that Major Component, and (b) serves only to enable use of the work with that Major Component, or to implement a Standard Interface for which an implementation is available to the public in source code form. A "Major Component", in this context, means a major essential component (kernel, window system, and so on) of the specific operating system (if any) on which the executable work runs, or a compiler used to produce the work, or an object code interpreter used to run it. The "Corresponding Source" for a work in object code form means all the source code needed to generate, install, and (for an executable work) run the object code and to modify the work, including scripts to control those activities. However, it does not include the work's System Libraries, or general-purpose tools or generally available free programs which are used unmodified in performing those activities but which are not part of the work. For example, Corresponding Source includes interface definition files associated with source files for the work, and the source code for shared libraries and dynamically linked subprograms that the work is specifically designed to require, such as by intimate data communication or control flow between those subprograms and other parts of the work. The Corresponding Source need not include anything that users can regenerate automatically from other parts of the Corresponding Source. The Corresponding Source for a work in source code form is that same work. 2. Basic Permissions. All rights granted under this License are granted for the term of copyright on the Program, and are irrevocable provided the stated conditions are met. This License explicitly affirms your unlimited permission to run the unmodified Program. The output from running a covered work is covered by this License only if the output, given its content, constitutes a covered work. This License acknowledges your rights of fair use or other equivalent, as provided by copyright law. You may make, run and propagate covered works that you do not convey, without conditions so long as your license otherwise remains in force. You may convey covered works to others for the sole purpose of having them make modifications exclusively for you, or provide you with facilities for running those works, provided that you comply with the terms of this License in conveying all material for which you do not control copyright. Those thus making or running the covered works for you must do so exclusively on your behalf, under your direction and control, on terms that prohibit them from making any copies of your copyrighted material outside their relationship with you. Conveying under any other circumstances is permitted solely under the conditions stated below. Sublicensing is not allowed; section 10 makes it unnecessary. 3. Protecting Users' Legal Rights From Anti-Circumvention Law. No covered work shall be deemed part of an effective technological measure under any applicable law fulfilling obligations under article 11 of the WIPO copyright treaty adopted on 20 December 1996, or similar laws prohibiting or restricting circumvention of such measures. When you convey a covered work, you waive any legal power to forbid circumvention of technological measures to the extent such circumvention is effected by exercising rights under this License with respect to the covered work, and you disclaim any intention to limit operation or modification of the work as a means of enforcing, against the work's users, your or third parties' legal rights to forbid circumvention of technological measures. 4. Conveying Verbatim Copies. You may convey verbatim copies of the Program's source code as you receive it, in any medium, provided that you conspicuously and appropriately publish on each copy an appropriate copyright notice; keep intact all notices stating that this License and any non-permissive terms added in accord with section 7 apply to the code; keep intact all notices of the absence of any warranty; and give all recipients a copy of this License along with the Program. You may charge any price or no price for each copy that you convey, and you may offer support or warranty protection for a fee. 5. Conveying Modified Source Versions. You may convey a work based on the Program, or the modifications to produce it from the Program, in the form of source code under the terms of section 4, provided that you also meet all of these conditions: a) The work must carry prominent notices stating that you modified it, and giving a relevant date. b) The work must carry prominent notices stating that it is released under this License and any conditions added under section 7. This requirement modifies the requirement in section 4 to "keep intact all notices". c) You must license the entire work, as a whole, under this License to anyone who comes into possession of a copy. This License will therefore apply, along with any applicable section 7 additional terms, to the whole of the work, and all its parts, regardless of how they are packaged. This License gives no permission to license the work in any other way, but it does not invalidate such permission if you have separately received it. d) If the work has interactive user interfaces, each must display Appropriate Legal Notices; however, if the Program has interactive interfaces that do not display Appropriate Legal Notices, your work need not make them do so. A compilation of a covered work with other separate and independent works, which are not by their nature extensions of the covered work, and which are not combined with it such as to form a larger program, in or on a volume of a storage or distribution medium, is called an "aggregate" if the compilation and its resulting copyright are not used to limit the access or legal rights of the compilation's users beyond what the individual works permit. Inclusion of a covered work in an aggregate does not cause this License to apply to the other parts of the aggregate. 6. Conveying Non-Source Forms. You may convey a covered work in object code form under the terms of sections 4 and 5, provided that you also convey the machine-readable Corresponding Source under the terms of this License, in one of these ways: a) Convey the object code in, or embodied in, a physical product (including a physical distribution medium), accompanied by the Corresponding Source fixed on a durable physical medium customarily used for software interchange. b) Convey the object code in, or embodied in, a physical product (including a physical distribution medium), accompanied by a written offer, valid for at least three years and valid for as long as you offer spare parts or customer support for that product model, to give anyone who possesses the object code either (1) a copy of the Corresponding Source for all the software in the product that is covered by this License, on a durable physical medium customarily used for software interchange, for a price no more than your reasonable cost of physically performing this conveying of source, or (2) access to copy the Corresponding Source from a network server at no charge. c) Convey individual copies of the object code with a copy of the written offer to provide the Corresponding Source. This alternative is allowed only occasionally and noncommercially, and only if you received the object code with such an offer, in accord with subsection 6b. d) Convey the object code by offering access from a designated place (gratis or for a charge), and offer equivalent access to the Corresponding Source in the same way through the same place at no further charge. You need not require recipients to copy the Corresponding Source along with the object code. If the place to copy the object code is a network server, the Corresponding Source may be on a different server (operated by you or a third party) that supports equivalent copying facilities, provided you maintain clear directions next to the object code saying where to find the Corresponding Source. Regardless of what server hosts the Corresponding Source, you remain obligated to ensure that it is available for as long as needed to satisfy these requirements. e) Convey the object code using peer-to-peer transmission, provided you inform other peers where the object code and Corresponding Source of the work are being offered to the general public at no charge under subsection 6d. A separable portion of the object code, whose source code is excluded from the Corresponding Source as a System Library, need not be included in conveying the object code work. A "User Product" is either (1) a "consumer product", which means any tangible personal property which is normally used for personal, family, or household purposes, or (2) anything designed or sold for incorporation into a dwelling. In determining whether a product is a consumer product, doubtful cases shall be resolved in favor of coverage. For a particular product received by a particular user, "normally used" refers to a typical or common use of that class of product, regardless of the status of the particular user or of the way in which the particular user actually uses, or expects or is expected to use, the product. A product is a consumer product regardless of whether the product has substantial commercial, industrial or non-consumer uses, unless such uses represent the only significant mode of use of the product. "Installation Information" for a User Product means any methods, procedures, authorization keys, or other information required to install and execute modified versions of a covered work in that User Product from a modified version of its Corresponding Source. The information must suffice to ensure that the continued functioning of the modified object code is in no case prevented or interfered with solely because modification has been made. If you convey an object code work under this section in, or with, or specifically for use in, a User Product, and the conveying occurs as part of a transaction in which the right of possession and use of the User Product is transferred to the recipient in perpetuity or for a fixed term (regardless of how the transaction is characterized), the Corresponding Source conveyed under this section must be accompanied by the Installation Information. But this requirement does not apply if neither you nor any third party retains the ability to install modified object code on the User Product (for example, the work has been installed in ROM). The requirement to provide Installation Information does not include a requirement to continue to provide support service, warranty, or updates for a work that has been modified or installed by the recipient, or for the User Product in which it has been modified or installed. Access to a network may be denied when the modification itself materially and adversely affects the operation of the network or violates the rules and protocols for communication across the network. Corresponding Source conveyed, and Installation Information provided, in accord with this section must be in a format that is publicly documented (and with an implementation available to the public in source code form), and must require no special password or key for unpacking, reading or copying. 7. Additional Terms. "Additional permissions" are terms that supplement the terms of this License by making exceptions from one or more of its conditions. Additional permissions that are applicable to the entire Program shall be treated as though they were included in this License, to the extent that they are valid under applicable law. If additional permissions apply only to part of the Program, that part may be used separately under those permissions, but the entire Program remains governed by this License without regard to the additional permissions. When you convey a copy of a covered work, you may at your option remove any additional permissions from that copy, or from any part of it. (Additional permissions may be written to require their own removal in certain cases when you modify the work.) You may place additional permissions on material, added by you to a covered work, for which you have or can give appropriate copyright permission. Notwithstanding any other provision of this License, for material you add to a covered work, you may (if authorized by the copyright holders of that material) supplement the terms of this License with terms: a) Disclaiming warranty or limiting liability differently from the terms of sections 15 and 16 of this License; or b) Requiring preservation of specified reasonable legal notices or author attributions in that material or in the Appropriate Legal Notices displayed by works containing it; or c) Prohibiting misrepresentation of the origin of that material, or requiring that modified versions of such material be marked in reasonable ways as different from the original version; or d) Limiting the use for publicity purposes of names of licensors or authors of the material; or e) Declining to grant rights under trademark law for use of some trade names, trademarks, or service marks; or f) Requiring indemnification of licensors and authors of that material by anyone who conveys the material (or modified versions of it) with contractual assumptions of liability to the recipient, for any liability that these contractual assumptions directly impose on those licensors and authors. All other non-permissive additional terms are considered "further restrictions" within the meaning of section 10. If the Program as you received it, or any part of it, contains a notice stating that it is governed by this License along with a term that is a further restriction, you may remove that term. If a license document contains a further restriction but permits relicensing or conveying under this License, you may add to a covered work material governed by the terms of that license document, provided that the further restriction does not survive such relicensing or conveying. If you add terms to a covered work in accord with this section, you must place, in the relevant source files, a statement of the additional terms that apply to those files, or a notice indicating where to find the applicable terms. Additional terms, permissive or non-permissive, may be stated in the form of a separately written license, or stated as exceptions; the above requirements apply either way. 8. Termination. You may not propagate or modify a covered work except as expressly provided under this License. Any attempt otherwise to propagate or modify it is void, and will automatically terminate your rights under this License (including any patent licenses granted under the third paragraph of section 11). However, if you cease all violation of this License, then your license from a particular copyright holder is reinstated (a) provisionally, unless and until the copyright holder explicitly and finally terminates your license, and (b) permanently, if the copyright holder fails to notify you of the violation by some reasonable means prior to 60 days after the cessation. Moreover, your license from a particular copyright holder is reinstated permanently if the copyright holder notifies you of the violation by some reasonable means, this is the first time you have received notice of violation of this License (for any work) from that copyright holder, and you cure the violation prior to 30 days after your receipt of the notice. Termination of your rights under this section does not terminate the licenses of parties who have received copies or rights from you under this License. If your rights have been terminated and not permanently reinstated, you do not qualify to receive new licenses for the same material under section 10. 9. Acceptance Not Required for Having Copies. You are not required to accept this License in order to receive or run a copy of the Program. Ancillary propagation of a covered work occurring solely as a consequence of using peer-to-peer transmission to receive a copy likewise does not require acceptance. However, nothing other than this License grants you permission to propagate or modify any covered work. These actions infringe copyright if you do not accept this License. Therefore, by modifying or propagating a covered work, you indicate your acceptance of this License to do so. 10. Automatic Licensing of Downstream Recipients. Each time you convey a covered work, the recipient automatically receives a license from the original licensors, to run, modify and propagate that work, subject to this License. You are not responsible for enforcing compliance by third parties with this License. An "entity transaction" is a transaction transferring control of an organization, or substantially all assets of one, or subdividing an organization, or merging organizations. If propagation of a covered work results from an entity transaction, each party to that transaction who receives a copy of the work also receives whatever licenses to the work the party's predecessor in interest had or could give under the previous paragraph, plus a right to possession of the Corresponding Source of the work from the predecessor in interest, if the predecessor has it or can get it with reasonable efforts. You may not impose any further restrictions on the exercise of the rights granted or affirmed under this License. For example, you may not impose a license fee, royalty, or other charge for exercise of rights granted under this License, and you may not initiate litigation (including a cross-claim or counterclaim in a lawsuit) alleging that any patent claim is infringed by making, using, selling, offering for sale, or importing the Program or any portion of it. 11. Patents. A "contributor" is a copyright holder who authorizes use under this License of the Program or a work on which the Program is based. The work thus licensed is called the contributor's "contributor version". A contributor's "essential patent claims" are all patent claims owned or controlled by the contributor, whether already acquired or hereafter acquired, that would be infringed by some manner, permitted by this License, of making, using, or selling its contributor version, but do not include claims that would be infringed only as a consequence of further modification of the contributor version. For purposes of this definition, "control" includes the right to grant patent sublicenses in a manner consistent with the requirements of this License. Each contributor grants you a non-exclusive, worldwide, royalty-free patent license under the contributor's essential patent claims, to make, use, sell, offer for sale, import and otherwise run, modify and propagate the contents of its contributor version. In the following three paragraphs, a "patent license" is any express agreement or commitment, however denominated, not to enforce a patent (such as an express permission to practice a patent or covenant not to sue for patent infringement). To "grant" such a patent license to a party means to make such an agreement or commitment not to enforce a patent against the party. If you convey a covered work, knowingly relying on a patent license, and the Corresponding Source of the work is not available for anyone to copy, free of charge and under the terms of this License, through a publicly available network server or other readily accessible means, then you must either (1) cause the Corresponding Source to be so available, or (2) arrange to deprive yourself of the benefit of the patent license for this particular work, or (3) arrange, in a manner consistent with the requirements of this License, to extend the patent license to downstream recipients. "Knowingly relying" means you have actual knowledge that, but for the patent license, your conveying the covered work in a country, or your recipient's use of the covered work in a country, would infringe one or more identifiable patents in that country that you have reason to believe are valid. If, pursuant to or in connection with a single transaction or arrangement, you convey, or propagate by procuring conveyance of, a covered work, and grant a patent license to some of the parties receiving the covered work authorizing them to use, propagate, modify or convey a specific copy of the covered work, then the patent license you grant is automatically extended to all recipients of the covered work and works based on it. A patent license is "discriminatory" if it does not include within the scope of its coverage, prohibits the exercise of, or is conditioned on the non-exercise of one or more of the rights that are specifically granted under this License. You may not convey a covered work if you are a party to an arrangement with a third party that is in the business of distributing software, under which you make payment to the third party based on the extent of your activity of conveying the work, and under which the third party grants, to any of the parties who would receive the covered work from you, a discriminatory patent license (a) in connection with copies of the covered work conveyed by you (or copies made from those copies), or (b) primarily for and in connection with specific products or compilations that contain the covered work, unless you entered into that arrangement, or that patent license was granted, prior to 28 March 2007. Nothing in this License shall be construed as excluding or limiting any implied license or other defenses to infringement that may otherwise be available to you under applicable patent law. 12. No Surrender of Others' Freedom. If conditions are imposed on you (whether by court order, agreement or otherwise) that contradict the conditions of this License, they do not excuse you from the conditions of this License. If you cannot convey a covered work so as to satisfy simultaneously your obligations under this License and any other pertinent obligations, then as a consequence you may not convey it at all. For example, if you agree to terms that obligate you to collect a royalty for further conveying from those to whom you convey the Program, the only way you could satisfy both those terms and this License would be to refrain entirely from conveying the Program. 13. Use with the GNU Affero General Public License. Notwithstanding any other provision of this License, you have permission to link or combine any covered work with a work licensed under version 3 of the GNU Affero General Public License into a single combined work, and to convey the resulting work. The terms of this License will continue to apply to the part which is the covered work, but the special requirements of the GNU Affero General Public License, section 13, concerning interaction through a network will apply to the combination as such. 14. Revised Versions of this License. The Free Software Foundation may publish revised and/or new versions of the GNU General Public License from time to time. Such new versions will be similar in spirit to the present version, but may differ in detail to address new problems or concerns. Each version is given a distinguishing version number. If the Program specifies that a certain numbered version of the GNU General Public License "or any later version" applies to it, you have the option of following the terms and conditions either of that numbered version or of any later version published by the Free Software Foundation. If the Program does not specify a version number of the GNU General Public License, you may choose any version ever published by the Free Software Foundation. If the Program specifies that a proxy can decide which future versions of the GNU General Public License can be used, that proxy's public statement of acceptance of a version permanently authorizes you to choose that version for the Program. Later license versions may give you additional or different permissions. However, no additional obligations are imposed on any author or copyright holder as a result of your choosing to follow a later version. 15. Disclaimer of Warranty. THERE IS NO WARRANTY FOR THE PROGRAM, TO THE EXTENT PERMITTED BY APPLICABLE LAW. EXCEPT WHEN OTHERWISE STATED IN WRITING THE COPYRIGHT HOLDERS AND/OR OTHER PARTIES PROVIDE THE PROGRAM "AS IS" WITHOUT WARRANTY OF ANY KIND, EITHER EXPRESSED OR IMPLIED, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE. THE ENTIRE RISK AS TO THE QUALITY AND PERFORMANCE OF THE PROGRAM IS WITH YOU. SHOULD THE PROGRAM PROVE DEFECTIVE, YOU ASSUME THE COST OF ALL NECESSARY SERVICING, REPAIR OR CORRECTION. 16. Limitation of Liability. IN NO EVENT UNLESS REQUIRED BY APPLICABLE LAW OR AGREED TO IN WRITING WILL ANY COPYRIGHT HOLDER, OR ANY OTHER PARTY WHO MODIFIES AND/OR CONVEYS THE PROGRAM AS PERMITTED ABOVE, BE LIABLE TO YOU FOR DAMAGES, INCLUDING ANY GENERAL, SPECIAL, INCIDENTAL OR CONSEQUENTIAL DAMAGES ARISING OUT OF THE USE OR INABILITY TO USE THE PROGRAM (INCLUDING BUT NOT LIMITED TO LOSS OF DATA OR DATA BEING RENDERED INACCURATE OR LOSSES SUSTAINED BY YOU OR THIRD PARTIES OR A FAILURE OF THE PROGRAM TO OPERATE WITH ANY OTHER PROGRAMS), EVEN IF SUCH HOLDER OR OTHER PARTY HAS BEEN ADVISED OF THE POSSIBILITY OF SUCH DAMAGES. 17. Interpretation of Sections 15 and 16. If the disclaimer of warranty and limitation of liability provided above cannot be given local legal effect according to their terms, reviewing courts shall apply local law that most closely approximates an absolute waiver of all civil liability in connection with the Program, unless a warranty or assumption of liability accompanies a copy of the Program in return for a fee. END OF TERMS AND CONDITIONS How to Apply These Terms to Your New Programs If you develop a new program, and you want it to be of the greatest possible use to the public, the best way to achieve this is to make it free software which everyone can redistribute and change under these terms. To do so, attach the following notices to the program. It is safest to attach them to the start of each source file to most effectively state the exclusion of warranty; and each file should have at least the "copyright" line and a pointer to where the full notice is found. Copyright (C) This program is free software: you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation, either version 3 of the License, or (at your option) any later version. This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. You should have received a copy of the GNU General Public License along with this program. If not, see . Also add information on how to contact you by electronic and paper mail. If the program does terminal interaction, make it output a short notice like this when it starts in an interactive mode: Copyright (C) This program comes with ABSOLUTELY NO WARRANTY; for details type `show w'. This is free software, and you are welcome to redistribute it under certain conditions; type `show c' for details. The hypothetical commands `show w' and `show c' should show the appropriate parts of the General Public License. Of course, your program's commands might be different; for a GUI interface, you would use an "about box". You should also get your employer (if you work as a programmer) or school, if any, to sign a "copyright disclaimer" for the program, if necessary. For more information on this, and how to apply and follow the GNU GPL, see . The GNU General Public License does not permit incorporating your program into proprietary programs. If your program is a subroutine library, you may consider it more useful to permit linking proprietary applications with the library. If this is what you want to do, use the GNU Lesser General Public License instead of this License. But first, please read . pychess-0.12.2/pychess_book.bin0000644000175000017470000033352012641567764016762 0ustar tamasusers00000000000000 ΩP*ym@W !;gݐ-& ;Tf`:zjPK?yJXXMR_()1?g⎟Rg⎟Dg⎟ujoA jDPsV@?+zO1R^^6s}4e8[C $*C aMwS[Rwz}' ,̼֓S R+O o Mv@b>+S &= ,J0u b;vl^1R7%  7%o%Wz/y z/y -SjSS \S?grStˑd'};vo!+*9 $(bB DL̰ISDq&B&S!Q*PGC,S @_?tsfVҭ|juʡYgStlê"7Z͞KC?ж= P ,h;_hT=b3^\ GՖDkxDs kxD kxDjkxD kxD|bbYH[{?[TN)k n /O!6!s]X?7TNv:ɪr Q<R^%;p`Gv] #wgyΜYl̚ |Z_aDu F45aDu , aDu aDu aDu aDu aDu iSc1a9OWvU0sAZ\! $<[4jS:?Z;) R 숕JHՖDQHՖDN5N5gB Yn $_=RB6?#%K?7Q*OChdChGZFvIhJ#M53sT=CR _3mgU~[R-l,{*NO[INO[IvK }ɾݴ=B xIt+) ]Hs&" 6՞=MQSO l̖ \oHnjSjoSoSNoSww}>S{l! ; s@,|3 \?R5!w ?R5!wss ЛpWRAwYAw^QoOt'"z c??? 5n:]NYabbdLd"el*1l;mB tn`1.oR5p $     *7AF*e" *e"t ]TfN-Jאǚ.߉E~?߉E~5LG;[pmWs;[pmW?z RWh 3T9KL$)~A P L)VDa#pY_tͨ)o A}(~ۉ!s}(~ۉ! ,>,T #Ȗ ,C&ttC&t  C&t C&tC&t eC&tYY|< |<t|< i[ 9 [[Zo\ǁu ǁu 'z~v\ǸGX wc1Yy  x\p¶t x\p¶tR 6,Yө GIc Ĉ* %ME86 %ML&'! %MZ %M] %M %MU  %M %M %M N> j l de de  fA c *`Ѹ- xl; xl; e xl;  xl;  .cə[ 5P=bE $ Q Q  RN WȕB&: iP0X k\;? z j }k 4{? 2d  jj j  H> l כ(P Ń .,oPo |& (/M ܁T ,)" ܁T  ܁T 5:U ^ 5:U n bF Ў#G ŞUL    # FL ,`  9XڵuN :޹Ӽt E N c bj b nѷ< sbp0 tG  ugڣOh v.rb9H E}  E}R `'Wv @-j  Q/7 ?I AOoj ́#<  ́#<Y ́#< ́#< ," U'' L ] S   ?e ZsR H A# f' AX# tLB i IΤ UTTUs UTTUs] UTTUs Xz` _?ho  k{c[]BG wd')FR }q\1w z֜  H$K6 Ӡ!Z" כD WZS  ][< i -c$ =F rQ  l^U l^  l^ l^L l^ l^ ?Ij  䅶N 1[= y-xv #n  #n ,nj/ Bvʠ \ BvʠR Bvʠ hb+ݵ t6  t6Y V[=̀El S#e<I^uٵ|wK1@P{=솑 솑 tBT BTBT$!cOV (U.  _e p8 +~w ,iOVfj2 C@%etDWڡP҅WݩWݩQd1hj[WjtT]pevF ) $v1{ (@4sq i6v*H{) K mK $KNlƦX,ƦX,#a5yu7Q5yu7Kٹb:|Kpvp~(tDfs(tDf ]2"$޹  "$޹ "$޹ \+HO 3]R3]3מ& .ERIwSTΎ \\P1)c7$sni{@ow tqٮ ~c)6!?t>?f&Em f&Emf&Em ,.F-t(*cLvIL IL ILsIL?f4=,/ 6 øw(s/=]c*BPy+TkY-)8Y}cfk k k/7 ePlv ˊ壅 CXKaZ Yޚ^  ( ߃zrh#Vɢ?6Wjks ˄ ~  9Y`-t 9Y`-8=3P;1<1.tIDh%zS@+ S@+S@+ Tl_?_ (_rq lZmH6q$ mH6q  t$lN|V~Y/!vR''OU+f*R~{!a-!~{!) ~{!Rʯ7 SҴP|E󑫨 ,L#%w$/NGr /aUF6O=-˃>LWd0%WdWdWdZSk \[VI:Ii , i i (ii;n }m~X#/KO(Vkm/%:8؟ B; F*/wAR,]gCȲ t ' (t 'tns_*QӰ:#A18Y_[Ϧs뫣/ i Ooj Oojt %D . YQWu2It; -?M|"l:N<%PBc 2NR4^_?$ 8?(K-`@D"2OFvB ^֋tsa+ a+ a+Rm1>L aqAHA w;έxZh~b {/urU*/urU*Ke^ F(KYǾFɖ*]6Eɇj|$Qbxa< GŤ  `R `5XӇ/&'5XӇ 5XӇ=mCDe9K=mCDR8 *H+6oRL7EDkYkAtR`xvd1"Sd ;m;ad ;m;Rhd0tia<Nrо $rо uāp Ruāp onQh (#15=|15=j15= D>hrǔbo ǔboi:11 bbSPޝUtv çM* 5 xv+!ʰ+Sm (5a\ˏU w ˏU w # s?@iK?@i ?@i?@i )+v) ,OAa|9 z,~? ~kCm0LF FpRnC[F\\^) IaGZSp^ $yp[]t-?G@ ..txn H[ġQmn ?# a)DEMx Oؿ !g܌/]9~ $; wP $L 5M=s"Pa9w)s9w)  čXXtn+FsLz=]J ng6 g6v`+Yc D oR~Ew CD\ C01Aj~q c]܌ fS e4  e4 $  $)?5E?/zޢBʒSNiRNfNfvrb[O)unde"vvKb$v򂟶tzΠW?}@0Qy #~&?8b ~&?8 ଅvJFX*LJFX*S !v ,8ƍa+ E-N;/j RL#q aZ" 19D#4S/R8N 8RGX_7 $Znufc}vfc}vfc}vh8Ey3 jI2?s;ܛu g N"SD-"SD-j"0V ,T+A?&?[&?tsXyEt]`ERԉFZԉFJYt7 ,Oof  $Oof jOof sOof  (Oof  k5N a2 K a$2!ޘe%o6t %o6K(B(B1Y" #A3j& # J淅 ?c? u*\+ u*\+ au*\+ iR t  (͕Vĕ5Rl55Rl55l55  ڑ^?$${#(kr)1Z# *J?[jV;b@^ _dNA u!?zH\jrhg R$(6 E l 1{s 1{t9$T;9$T;9$T;j}jն ?SjJ]K( aLf/?|JV?gZ+Hs4Gb|+:S318j<~=! i<~=!?EʺT (LuP_ ,j/ j/Ludz_l`⩽ i~ɓpS. \pS. Z N ]kE8 c f.] f.]R f.] f.]mL ,b)PwW~ @ b 52 \ Tt.S i Tt.S? M†X FG a +\d  ;|_j? UC a‹zz wY+ $ M /pґ# aq` aq` , aq`  aq`  &Nt X[{N  GfR  ha \ <  ^h>R {hcD +!n !n!n![!-ωN%!/۩S!AUoަ!Zu #![[9C;kj!kdN!rz;s!|u F3t!}c!Ld_R!8ek !>O !`!J <j!Oҧ!S)e!/n !/nR!/n"9 "%]KOv#z̞#$r%&R #8E& b#hk8 #Zg. #Zg.#Zg.R #Zg.#Zg.#1 #u.S #u.S#u.S#u.S#ۍdlY#ǘ?$ $ $;Ó?$5P2vT$;$^F$=K"ui $Ex>R$J&wq ,$MӇT{$Z3땡 $i$i$xL@ S$'+t$F4X$c ݣt$WS׉N$WS׉$az  $k*]$MG[#$#]] a$#]]t$4k^$٩$}÷L$)ǚ$)ǚ$)ǚj$[@t$@Ïv$}A \$ܷ s$ܷ j$5u*Z% F% w3%/b%g;%~~*S%0O Ũ %0O Ũ ,%7qK6]R%DN+W $%DN+W%PDQfl%]nZd/U %]nZd/R %O[%٣%m}b% %ح`v%!Bmzs%!Bmzh%F%C;*%;E R%;E &?ym&)(=cq&/V%}  &]F*#L&&1D[3%&'e&0ƨf&<}{ӓ?&Gq&!8&)')*8&t~ġ&w).?&JKP&>С$&N`% #&Az, 'LP 'LPR' ?U ?'>=T a'L'EV ,'EV  'EV 'EV ']y']yU'# ';)h'+:b :'+:b :R',TkwQa 1',x (';I6QO ';I6QOh'TEGŐ  'TEGŐ 'TEGŐ'kU-f ,'kU-f ('\'em8h'em8h'em8h'nL$'aߨj'nh ,'炂'8%m_v'pRCa 's@ '\GkR'@v 'N$p?t'F6is'$$]' (n{" c( kF"(9 $(maas()Q(!sVM (!sVM 1(!sVMY(*h+,_SC(**݊(7Xoj(PW{(gd/1i(tQ D(}\4;JN(qhe(Gt j(:ТU(mvQֽj(mvQֽ ,(;: $)aSVd)8R)cS6R)%`=zh)%`=zhj)FşY)ZQ8$q)`B,wS)hLJ~ \)in)q(h>)yx0M)yx0M);N);R)-^?)}R)l)} )Csx )Csx)y&)j9!^pj)6"A# )i9}%u)52|*zWw *) I  *i J*X'sL* sצj*)EnC7N*;Z2TV #*;Z2TV*G1)z $*O XY*ZqFQ l*_ͰW*r| *n#*Tˊ3/0*ӏ-*0*C"/R*aVDZ*aVD* L+ćR+ Q8{R+ u+6f4R+;xgP c+=At +PW+V8+s" $+~F +~F (+ .> .`(%/'XMk/42~/42~S/&@zdV/&.?/&.s/ULcRH /eYeA /jaS/jkgosQ/m j/pq%h/Gk܅/01v/!j j/A# / @!pz /oiv+/HFt[/'ţj/]SvN /= /= /թ`aY/TFk/:5 /:5h/r!l湙/98 -/Go%?0 96t0 96 0n $0M.0{mN 0%d t07N>3s0=3}vs0@0R6>q20YP+Z0]TBG90my&DN0uZ 90eҞ 0eҞK 0- 2{ 0c 0ii00;I=s0$ "0]׳$0ȉR~ 0%05b kR0+V94s1]R19#=E~P1=s7Õ1=s7ÕR1U.?y a1Z3&_! 1`m- 1`m- 1dk ]v1hLJK1~F 21~F 1,C1ݫt1"s 1'Qs1?~1?~1at,?1at,s1K)v1K) 1fuS1JZԯ1KcR1zӦZR1pN26AN2%/8*f2-#d 2-#2-#K242q (H92|a2N2NeQ=o2Z2= j2 2Lp9] 2Lp9] (2Lp9]j2HM$N2Mpd2b3x 2#cU4 $2#cU4h2ᇧS2%+[t2%+[j2Bpd$22ȔO=2+| 2+| i2+|?3υcЉ3=˺;3'H3WD 3w3rPX 3 AR3+{-i3,8$3ArP3Bvi3GfKe3Vf'P*'#3e\3q 43r4f 3yh3IG+3Z[3m4 30pAN3sr锳1U3iGVR3z3*jsX3N~ٔ4?rYә4KM44-;h40d]; ~47%m1 47%m147%m1a47%m1]4DТ j4F15 4T t@_4Us4Us4UsQ4[uԫ4mp $4D6jp ,4SUsd$4` (4C]f2 4(4͒䔄 4SyoY4}BP c4t 4t 4'liR4m.%4m.j"4m. (5n>5)aN)5Oo:pT5Oo:pT5j$59j5sNOK (5sNOK5sNOK5sNOK ,5sNOK 5ΞZ5.%x@5= a5 qF5}αy5Q-Bc 5Ҍ<?5ֲ]Y5-ql5-ql5-qlt54c t5ewL5ew5X 5X 5X?6)EUQ6)EUN6:$_s6 DR6xX@YP 6?V6?VR6(#ʏ.$6Wt6_/7Z6<= 6"3ar j6/3 $6]$nv6~3 \6~36 o86 o86崻*6P1U6mS68K686ȕ8[ 6SOs6>6n,Jv6LW g6Q`Y6ע 6ע 7 ䷨7 (yf76* c77t,=7I A7J:=x27h‹V6N7ta6j7x`<?7~@0<s7~]*7t7~]*7t7~]*7tL7~]*7t7J[ 7eRVR7B7g7XD1L7j 7jj7j7js7p7#!?7JyE (7ijTc 7kT&7Dbl7}ȗOt7潬ޥR7 ( n 7a< 8{!Q/ ?8{!Q/ 8%P'd88h8d?8q7.R8tBa8tBZ8}7 \8~õ|N 8@=?8=;Y8FrյK8e6FR8 9@ŀ9,qw 9C UD9W"4ИG 9W"4ИG9$ޣr9+L&pQ9KNB-9qP> 9{v9`PH \s9Mg?9('N9ϝ>;19%ҭ?lu `9z(j :00%b:5KcW:5KcW \:<J :><R:><:A}ʪE:Fk({G i:Fk({Gs:Fk({G \:IQ2 :m::U%!Y:fhk :fh i:kowYb:: :`.VDR:RmN:息=9:i]^.Y:i]^.:>6$#;3~rF ;#q ;2l*:;3 ;M)/iFt;M)/iFs;WJ;t $;\VyN;c#%TM_;q -;} j;~O ;l] #;djY$8;djY$8 ,;djY$8 ;[pd;?ٟ^;2;"? ;NZ ;K h_ ;1l";]|{B<Q< r4<Q#SI<Pk<*.H{ (<- Ÿ/<- Ÿ/<- Ÿ/<>ThHg(?=..\j- =..\j- => #=?).G/=XB4iv=[2v =_AN =a??=KDe=z $=[QѰQ=[QѰQ =[QѰQ ^=[QѰQ =Vɭf= $=[K xY=[K xt=[7Q  =[7Qs=پ=Ҡl*=5It=)I:?=p?W=:<=h˞ a>#>#>7i?g>7i?g>JkLt>L쩱Ͻ >NQ>ULNf>` 6c$ >v0l >u3A\>b_1/>5=>#>Rq}!>Zzaz>Zzazt>ZzazY>̩R$d>e5 >][F ->p > 8-??"LKk ?# ?JFQ8 ?N*jIN?NªfY?R)^*" ?[r]?kvb|Q?qX7@ ?uhNq b ?uhNq b ?za˾n?|N ?}) k?\噿?C?n+? o ? o?`'3 ?DKj?EN?!l?￯?Y?h?i6@C1E e@T@!98~#@=|`\E@F.f #@F.f c@RϽ@Rݝ-L#@WhgNK@`v{R@`v{ @mhR|( @~LHR ,@}H @|JO7o@|JO7oQ@ 4@'Ӓ: @'Ӓ:f@J%S@03rR@0D8iZ@ୡ@5;@/J@)Es@XV2v @ @ rY@R ,@QTgAQPĦEA{bA{ A{YADA).RBA.FeB (A1GDA8;M ASJAqmTAvD|#2$Aiկ  A(A4|گvA9 Aݘ}vAfl?Ag1oAy' AD)a{\ $D39yED9'1 $D:@DAR  DEKU0 ?DEKU0 jDUH&q[Da2cT $Da2cT Da2cTjDa2cT ,Dt*n Dv{ o3 Dv{ o3vDwnT*f DwnT*fsDwnT*fD/ND4DA;vD D DWQ- (D[ Dn+>vEhKEy9  Ey9 Ey9 Ey9 E(N W a E,\:kEO EWc ,E[ŨvE[Ũv ,E^LE`u`_0 iEpI,kE}1jEM3b $Er0 jEAYf9?E.?EE.?EE[{RE[C?jEhE"yxE"yxEFMzV dE@j>?Ea0 "Ea0 " E4m E4mE4m iF`kF;kRF;F;F;F;F;F;F;RFT?nvFg 0Fq?4 $FDv6NF1FSjF_BF.]>FbZJ FYP+vXhFYP+ [JIFYP+ FF|7sFnpjc9FtsbFtsbF G 2E G n"yG  C;RGbS#nGbS#nG!H> G+BBɻjvG<\YGBS>@FGG{DoGHpp GHpp?GN{R}GQۛ}sGbR#rGeki<-Gx(I[ G{7.|k G&] GS4VG · GʸsGʸG{x G>O"vGk -Gk G0`J G0`JsG㯏^E G㯏^E iG㯏^EYG㯏^EHNH2M wH6Rf (H>UwVZHGtwHZ80HZ80Ht'oGRH[ Hi%_)uIfH-$?H=L %% cHd~-jH|@-? H ,H H"RHZq\NHHBR Hw-9Ii50 $Ii50 Ii50 ,Iˏv8  I5%P)bI9؅H ,IB^NIF \II,nyUI[2| IxƚT}NIy$INIh Pb IIdI-tYI-tI6lq!-I()<I碪9I碪9 $Iٳ-ԟU I LU I LUI LUIv\yIv\y ,Ij?IjjIj $J.O Z J ބ?J&?Dm?J.A?J8 X# JB|A4$Jh}¨Jk[ Jk[ J'RJ?w0 .'%J?w0 J?w0 ,J?w0 i J?w0 J?w0 Jj,ȭ Jƶg_tJZɥYJm Jގ|FdzJ߫[ J߫["JW ,JԖyKP%[Kvr (1J.Kvr Kvr Kvr Kvr Kvr eK!ɨCRK3<ݙ4K@FE~K?KCDڏxKJK`{ýxKpIBV sK ~*UK ~*K ~*hK ~*iK?K?KzLjK͊mKÁw:KÁw:KɯbY K/Žf K?okKѦF0K戕_ Kq; pKgDGKgDGK_3^ K_3^sK_3^ K_3^ $KR2DL T-^.L T-^. ,L3 LYR LYR L4Z|V-L:o ZF L;[LC #SLP jLP LTVMoLm~y Lvހ)RL|Z-_CjL|' OL~9G»B LT1!L .wcLe[L8mEL-c vLZRJ L} [LtLM \ vM4+Q \M.4eM; ,M4otP\j\>Pg$V Pho_P|Q/\PQkwDP;!ѽĝkP_2xRPRHP[FLP<:5 ^P<:5 P<:5P<:5 P<:5hP<:5 PvК7Pwj@sQQHKWtQQD*T+DQRwNnRsQ\Sɪ ,Q\Sɪ $Q\SɪjQ\Sɪ (Q]&l:vQ_RO?QansQm]t Qm]tQ8TRQc4;͍bQc4;͍b (Qc3 ,Q&g^  Q|vQKcYQ {CQvJQՖOQ=;SQ=;Q)sw4Q*mr ,QѴK۟sR١?R١R 7Ob )R >m#R&j%VR)][ R+w9 #R1+ -R=Fo#RN?l4#)RN?lRUҬ4 gRaf"9RcA) ws #RcA) ws cRt[XR_ $R_ (RQGZR,/iRjV RRRٮVDRRٮVDRٮVDR gRa{F0R?K~ZS SG~+USMq>sSMq> SP8i3SjO ,SsF-aNSu[NB=SXzbBDSS+[F/S۳ ݹS8S8SWSSq 2 SA”Tg]v^Tg]v^ Tg]v^ TnYT{񏦾 cT; T6y>nre$TD~?TD̄Q (T`TdA) \Te. cT};YT:sdT]TF0sT`bTc;O Tc;O ,Tc;O Tc;O Tc;O $Tc;O Tc;OjTc;O Tɒ%KTo T0wT/ U+ a<U+ a<U+ a<U+ a<U0=U1 w U<,V>NUGDSKUIr?$U]18kZRUk@qNUywB]nU'hŜ?U4h tUԟkUgC7:UgC7: (UkN$U˽~q !U˽~q?  UE_}qc$U˚ÎZQUUf_OU!+i U tUEmB ~U_#MU40U40V iVq]V$^EZV%H{ğ#8V%H{ğ#8RVH{J= VNϊ&Vl+B iVt2V~W D j V\rcR VUצDNVS?V?嵽aVRWHb V: h aVL*V£7X Vŕ &V@,VGhKWHUWj>ֳp W(G8 W3yXMWQ5*ΑJ sWZ’?W_@娠Wt3' ,Wt3' Wt3'j Wt3' Wws<' W$+jW! sW-ZW4`W Te W\Q՟?Wm0SWm0LWQjWbKWbWjҙ WaN W#6vW6PFvWQ> WW cX- aݍXA= XA= XA=XA=RXZ-Y,m?Xb"^ Xb"^ Xb"^ XhgB> &XhgB>Xmkn5Xa& ( Xa& Xa&X|ntGLX&}?X>;5jXǿGOX)gvX)g X*Xd_LNX,DEcX)tY0SY YIUY(: aY(: Y(: Y(: iY%t. Y%t. Y%t. Y%t.Y(SVY* kWS'v"#Y+ Y YMZ"jYm &kYr2M.@o $YvX)LYv'~vYF'3 Y1/bYT)ݾVY/x5ɊtYŷXh?Yχ8PY,BdYxjr YTJY wY wd Y w_Zu]5: $Z|FZ)D $Z**C&Z01nZO'I,Zf[yZ.ZnU&$Zo (Zu_tZ|?) Z}U*jZ}U*jZGE Zif Z{t|vZMQZZּ]MWZmY9"BZ華j [-FD  [-FD?[%p-J|?[,y&[,y&[>ꣂb?  [>ꣂb?S[>ꣂb?[>ꣂb?[>do1 [P31`V [P31`V [P31`V[grr[v0 ] [v0 ]j[9\?[_a[[=lx[y)>[Ac9OW[Ac9OWb[Ac9OWY[s[$[*S[Ǣ:B[Q_[ѨW [_+4u8[琟N][p#g [aqG [iPS[{'~x[r [r\ c40 \Ӱ(\ x,\ x,\WtQ\r8K\r8KR\3g/L\5Ό \=`s?\I䯹g:)\I䯹g\I䯹g\Vn??\X@ \YGU\]3J #\fgj'T\g YJ\\!^\™ %\׹*L\׹*\C ^\ V \Ӯ \ӮR\cyגN] CI^\@ g]6-N]!L]!]!]!]BZՀ]N<@6]N<@6]UI;j ]soGl ]wy[d6]{{;v]{U$]!Rؤ a]vUӳZ]Cj) ]Ch]kK˕ ]L*> ]٪+qfC$]i]+eaŒ0]6]>q ]o}P3^@끅Z}R^@끅Z}^TrBm \^wozE^wozE^wozE^{>tga^8S \^r:X[^^ ^GIF^ѽ<|˗ ^W˕;^զ ^[ d a^^y )'^\ۼ ^^c?_*Q _ |5P_h Y _|h'm_|h'm_A2} ~_vhR_' Τ\_2zڲ_2zڲ_;1,w_@5[S?_@5[S _@5[S _U71_X<j_c4Q_uM nԑ?_yĉ:0_X6_ _r':|_r':| $_B:/ #_-e _-e_ٱB`k_ވd& _L%lU ,_L%lU _L%lU a`+_:a`+_:`z(g_ `(ڟsR`{K`, #t`FRhD9y ,`O?zY)R  `iPeN`u`D-%A #`}˗(uj`lX͇{`lX͇{`Ov`J` Qý}v` Qý} `,'g[`۬Y  `۬Y `hu e`B>+`.X&?`V7 aQWWT<a = $a2d (a2dja2da6< a&33BV #a*LaDl[aOQ0i2 ,aSE .rja`3s}Saj{KNLakr^~ au3s.Jdazp`ۯ a ǧ)o atr?ainԳ/ainԳ/aN=jta%a%a% ah5J $aؽNac$(va%^2b1 aDRa _ja _bEfebEfeb%] b"nftbT6SbN +bAGBbFbMCw@ bS+~j bfsYbj@0u bk[ oZLjblt./ a blt./sblt./tblt./jbsP|fs -  bcL bcbcMx&\RbtIP ,bk<|6t bͺb4\<bG$U?b8`vbKb uQZb=jb ٤?b]~b ocO~h_cO~h_Zc Cd cbȠIc  cڒǃP?cxuYcR: ac(mcjї­jNcu&<c )̨E6 ,c )̨E6 c )̨E6 ( c )̨E6 c )̨E6sc )̨E6c7)j?(c7)j?(c7)j?(]cH]*L=cIꎴ)Wa cW0w:Cck8 ick8ck8sck8jczɯc Vrjere|J)gPe|J)gPke|J)gP (ehڣe[[3MKel/ReLtLyxeɍ e` e  e eCTe<f40 (f40fMJD f9v7'+f9 fPa f5c&^uf5c&^uRf9L9f;fU-fGe-v]%8Rfzg< f5C&;?fSQeN fSQef+8N> f+8N>f͹3%)fIR fUNЋ[ f|+YfϾ,ɝ?fՏO-f vf#>g %Z g %Zg>6` , g>6`g>6` $g>wѐjgT:sgZlNg(3g1MgM g9q[Ӌ?g; 3wvgp${ gE, gE, gTKm, gbe/ (gbe/ goJ g PQQ g*+9hj g*+9htg}  g} ggzD gBHUj +g'=gѶM;gsЪg6Pjg3u~x #hs78 xhs78 x Ah[I$1 hfm?h%2 hK$hrG2 ah%vK h3Qф$Q?h3֖Nh: _+NhB`Ni!4 #i!4 ci(ٰ=Li7%՞jiG qviПn)iDi/;~ Q ih 33iۯiG iHc2 iiHc2 iHc2?iHc2 jWw0j'eY$ ,j$A j3Ԋ#sj4!½Uj5,>j]ja%k:  ja%k: $ ja%k:  ja%k: ,ja%k: ja%k: jft{ jz?7*Rj|}#LjW-jhsQjhsjq2, j[~17wVj|Cj|Cj|Cj-YF$ j-YF$ j-YF$ $j" N $jͭajj ޱk讞 ak讞 ko1Jk$BrFk3bI)&k3bI)&k3bI)&kC@5|8 kDRkF-Rkf^v`]Rkn!Rkw[vk{ԙ#gk{ԙ#gkYk  ka e kj}Rk `; 2k `; kU&"  k'2Fojk'2Fol?lPl2h(l#4tl+\cRl6,'?lCw|֩RlF)lY~ p[lgS@ vlrز3l7&wl7&wjl7&w l7&w l(o\$l)ljq4l?lq xLlLel l؜sl@B7%l@B7%m6a #m^jİtm!ʘrvm&vCm+lI"ym4? im81<\_m9Pq ,m?*m.mwҳ47'my;r"RmFZmYj m~$mv+m3 m(Dޚvm> (mW mW mM #maen1jvn? \n$tUt n$tUn!xf[ Nn"&f] n"&f]?nZ_ +n_Unlq nw_n|:n9`t \ n9`t nt}/x sn4?qnGoRnGonתJRneY*kneY* nJ3n<qbn#+" \n#+"nUcn#U  od,Roo+4o^+XRo1,զR, ,o<`ajo=NJ)NoBE>0of澢2KoycRomMou"o^l\toRK?#oԷ5,"oԷ5oԷ5oԷ5RoT`|o-"p!zoPvoo oo//Շsp ůZFp&tp4İ#kp>;?p`Eu۫8Ypkz^wJ (pt/9ʊpJIpp}p M]p M]Zp M]]pL) RpL) pĴa pĴa pĴa p؂z}tpfGItpӰ۽s% p 1$p1*}GpEF,p?bp?bq N c  q 9fsLq"d0  #q!ys q!ysqE ޷uc qO}QqO}Kq[;kqiqxgqjZio6RqnF Ig] qpi#m quSy0SqɈB `rRqW Tq9nqg|Hqtq qqBۡq_ jq#tSqi r9?|r /(ctr#1^ O/vr'/ r([hmr.+$l r/Lr? &23rMYZwsrMYZw ,rU Q ,rr.IWշlr~ uCr]*7r"r7[IrD5/RrD5/r}s #r }ry}0 rAz rAz rAz erop r5;irBSWÿSr$pb rpOnVrdMGKrɑKFXrɑKFX rɑKFXrkURn r]r ~ s sLO%? sLO% sLO%ss^y swɁws(G^B>] s1Nlss9tuO (sABdsD?6sL~jRsYSi js_kE .sbv_7Lszh.sB@ ,sɁe٪sʧ s̰esq%sW jtz6,t|a&tĦt!?t"$ycv?t1ebUDtNq}*\??tNa1Z t\a^ ctd.05tw]t~=t2Lt:_E ,tAU t`L1[tLRtng`Rt7t6 t;rt)t)t|-Ytv^^ou=MS u*FP cu^u(W s u鐺 J u鐺 Juovu! au7r{4Nu7r{4u;7Yu?"}b #uO}֢Juh_usg"Nu"+ut榿s?umbǟu|J-uƣ%,_uuE"UY]uE"UYZuE"UYUuȯ auRQk uѺQaukrukr ,u`5x ufa' ufa'  ufa' ufa'v%~J?v wkv;=vdvj[pNvoSltvoSltYv/Rdvfh vfh avFXuvFXuv Z cv.R vy}s " vB2!vjlzRv[v# RwJº aw K/HwA-gN wL-f ,w4`Yz w5m3,{|Zw:F*C?wB9sRwQ"٘o  wQ"٘own `Yw% (w% $wS$Lw~fwim֩:wQ w[QPw[QPw[QPjw[QP wf.~] wf.~]twqLݣO wƻR[A rw+׍zAw+׍zAw␇Je?w/Z2dWw/Z2dWZwT||< x8fxӘ1?x;ZKxt1_x(OIx/)Qx/t~? ,xxQE6Nxm%Ltxm%L xOk?xOk x( x( xD@MJ UxD@MJ ,xU"?ݏxͧ}a_xͧ}3%xͧ}Z0"x^?ycu2 yuHz yYo^y5}y5}sy#5k !1yKNN2?yQӴٯiyTVvyUv܀ yXTxҵtyXTxҵyXTxҵ yZԧ\u yZԧ\u iyZԧ\u eyo*JywFgy y7 ѣyNaZ yNaZ cyNaZyyyyyykyOn` 6y\ m.by# yͱVIR-WRyͱVIR-WQyͱVIR-Wyϱnh!yv?yZ jyWL yI\vDz`EUDa z(;m[z{>9{7?Kk{r.v{,Ĵ{.@0 {.@0{3""!{96p}v{;yRM{BP0j~r; >~~j~&vVR~*f~5wX ~7TYaZ~Tl5~hx~i qy| ~i_K~lXa-~qMǮ'>~WM| ~2|jj ~">%~">% ~">% ~PHLjJ=~̍aH~r6=R~yӳ~wP ~Ew~9V~r # -}# -}N$$~o>$r+_ ,Hv(^ R4+ Zb]+Nk`nU[oe cf^ ( Hp>tr4:UC p8=`QLYv (LYvjЏu iЏu Џu  ߩ ,"ܦj$% $% $$% $Yh){$Yh){$Yh){R4TLco_4jY7 ;x B@w0hMXwaZd?b|`Ddnְ mpcFtlr0Q.s'&E%s'&E%]Z8Zral t)1# i>lri>lrSrlBzZUBzZ#]WT gasi*ӛ$>I $+9 ,\eA jY_l$MlV5ݥtvt .ftvt .|3piTfKjP%A ,ЉGQD-1.qMvB߶; SgrR_r \S[Bjd_D,  ,j90=sR3ӌSMv0A  v0A v0A +^|lUO  ,s 6g$K#QR#QRȞ v6~ <7T0=<7T0=B2aUz5A=:?X,m3 ,f  iWkSlNt.[yS ayS`&?Ս[Q -0-Bo^dˇXN?S{xsS{x ,Ӵe&4 FjRv _3(tE% /S+kMN?p Sx  cGYv@NJq^&|K  Jq^&|Zj U #g`\pjg`\p?sw cs'sھdsk}t? mSˆ-Sˆ- Sˆ- # @7y%v@7y%byjF?%;jk?%;jk Rs!'t P %`;c<C>M FA; +I0 LD'OZ2kSH j?zTlIL\I(osf >~td?PN:fh0ib0iba&0ib#0ibQ0ibR0ibZ0ib~j1k #  * $==+?cwP{;[$ 0ɭ (0§ 0§C^SO<AC^S =by8wL vbq)[mKǖv tc5)VFN -6_t*1&-6_ -6_-6_s-6_Y 32HIj`"OLXI]2~wl-N6y P3?TC!Q($&1Þ"+6"<"5 NP)N#hNP)N#tS}d~IkޔTQu $sWA!>~8#o ю2ȕ+RK d/%K  K R8;dtf\tݯ~V4\}"j)])GVtE2ԃH&`KrW:N3 $[~GV[d#7Jkϧoǟ)SRbǗ  A4&[]v r+S %W:  %W:?2p2S DV؏bG؃4 ?S6G؃4 ,0>)G؃4G؃4G؃4 G؃4jG؃4Y*`43ْto/oqev9Rw {}j'RWQt|Ygj.%<\69[ Z'p.? Z~qtZ~qsZ~qkz2}/ݣuRhRhR'2g  W0bPvռ褠f^ 1vd,/1vd,/=SBLav Zv m,T8n \,tsB 8y=N CM${Qf[xB\tY\jȈ1F$ Ȉ1F#th th S th L5$'|e*{?m"TTBmx`*菆E$  ] %  .Zbj; jɝv; jɝ KinQEpgTR/?|SsS]Ӯ^~] xYN N  JLeYijbY-Fw #/E ,Ji5x\ ,5x\ &ףt&ףta[zW>a3zW>a3vRAyB Fv\-B f݁Aso))' urTJz|аHmt&5#|аHm a|аHm \ |аHmb(pVȬV?ȬV ȬV 1o+o+ ,q +z޾e?)_ ޾e?)_̓`\/4S !* -/⇼ a%jD%jw66leKڿS7v謫NR+v tĩ2ĩ2)~)z ,ߋ"vL=՘_եuQ[) dCKdCO1ZS>Lz#*Bxu?4qSIEUX)vTTT'n[ ,Tv$Y~ XbrB|[TjY_#y׫Wq[#{%,jR h n$O n$O7v =_7]9% =Cv 9% =C ύ)^=ps$=M?M S$x-v. x?CT 7yX餥+X餥+ ,a9y 2ݿ y 2ݿ ,@Lk @Lk {6v555vq߉h3RIRmˡvl[~ F: (9GN)fR d,h~U6Y3^뱋CB>?;G?Bt.X D^ٯ\dQk\殕]_p9&]_p9&*]_p9&%tyrq<v  yrq< yrq< Vhl ʊ?EZ-R=T=d RN'6=d   =d =d ^" 5FhگQ"E3/2  "E3/2j(-U"c1- ,[  ezo  vjg#Eg}:)Eg}&Eg}R&Eg}(er uNj GPbM`Y a$s("\,#6E.\h8_;. sJBaTP8H ,Wvp$OcRs1sqX%3YqX%3 (C|RFC1ZE Ȉ kW!nA #Or!Ѽ?b~XDE NI0;E N E N:c4h2ޥk<Ƹ Iޡx ,ޡx /B656U?V\Nołz`3t~i@PGc `a `aj`aYg$ xDN mJKK mJK~: (~:Umt c\ _b? _b _b _b k_ * ZxnV㫶Dʵ<]2UcL:ePgcZ?B3 O΍NLBvW{xhvi[q|Qi[q|Np"=hp"=tw9.ro;*$OI҆MFCoOAhoOA _l  uu(D8(D8)PT J$6< $CL4Oa5&ve6n+GDR?P*ϺB &pwHRIF:Ѱ"#M-.^#d*Q^SqsiTX v'<$G%32 G%32e]?ȕzz)Wȑ YZS  YZZ ,7 $7s7  *sL *sY *sqE/qE/ 9a{Cs4pH2h ;ޒ@6Bhz}nSChTM`kH5'Hk Mk Mm<z6 jkK ($   inFRtw@D ҽBD M {jNTpw{&Zi{T{rN K#^z8-E5P 4/M 7E&? d\qBlpy?"e9"1nj_Ro<T1nj_ 1nj_1nj_1nj_7 #δG0cW[e:R:$y^$3>FZVTO sUA9n?[7wb ^@bptbU( bm cbm #p#yN4 v@ (~أb `~أb-t! l H ,i=`c ?zYDW2C?zY*,g6$&  6$&h6$&sR7XGbR7j_v3 ?TE Cvf%D k//_RB@WIC?L0$U Wx u+? A;v!A;v! m`߃b0}j@ɯ*tx T%/J# = 9 ee і𪦻RB0kbu% !z!F-)Y?3W=j}\S<߆EHzc0(^p!jp> ,q Pٙ^tC_l_& jl_& >p#tВ[Q?DUClQ8fUBNR\2j R\2  R\2 , Uن  @? @jA%|R YGN8;{+r8;{+r?9HLGaI<=mv]mvLmvUmvo47@  o47@o47@o47@zh Rhc 'n&5QJFo4JFo4JFo46m 6K9H9Ha#ĜR FŅ FŅѳ/2_> -$ =i'})=i'})O%G ,O%G u} ;` *(z ]LhL ( L;̡u?p͟Y3)NE: Ii=ljP3n_$DNr ,_$DNr_$DNr q@,y{jL݂ {jL݂? {jL݂ ɴjmN׸R_MXs {}'Y7²so} {'\?m$_NqSAoAo7DI:7KSRH JsN_do N_do ,PcآXH XHf?Rl~Ln5OY@Ѽo5W]Z% |V܊I,7Nՙ;]pBAT`R D  DlOY&d {R'&d { &d {Q,v@@Y/{5wF b5ZrDC_ |SH; \KzkA $YW #H]BS#GAj{Onz zk/ DCNfthtZ6&zmkzm /n}$s/Q"XX%h`=́_`=́_`=́_`=́_]vDDIvDDIx1{q c{e߁X?q9 ITuN6 yF[zKڌYj)-1!aAo-C*aAo aAo xQYHti.!?N \ORRs%?[)l1  )l13DGRAi(ybN*q, N*q,Qg"h_jQZNY QZNYVR KgaTqFpsvn3Y2P}WfB WfB (WfB (}.e $U>A}.e}.ej}.es}.e ffSSS?Ϧ3j[xzz?Q8i0'?6o j;P۶ ;P۶ , _@/  K_s{/R e:N $i%}WKKS1| }NӺtt?w wt<~Ȥ<~ȤKPJk,x a FI$ qW?xXpy&Ɗ ,K.Zed'a9Ȗ[466! e466! 硗Wv硗W )\  |Ljkh?rj4ubA$ \4ubA$ i$8s%F6Ͷ 3qާv3qާ 7xkr;eZ< T <>ί<>ίE ^ ,G3{z #J-vff_hט^ pV>Se w('!Nz5"nj ."ܝ mtD>sAhTS^+2*jȱv}I2 %{K'ikjJ[ ̤ sH) s] DX[ۇ*T vG">Pj#v$xv$x =7 h2ueR x>|R cOHyfs!5^d$'&&1$&&G 2@K2 9<SDZf l!x3ze|4A k[Ui n{[k"c HvuR?O?O?O?Od&zۻ-1"1"v B(ΕKryLEmѮYEmѮjEmѮRl[I^]3M c[g*|1`#ur87j yr7ޠ yr7ޠ yr7ޠRyr7ޠK 'BqI BqI iBqIjhFTdݫRU/tF`=QpNt[ ,t\M~0202:=6`kp./:猡j:D1v@όX`JĈZ ^nN}M[6?̪>Wb6og6ogUԳLI( Vj2eYؔ4bc'r78Ķj Ķj /L˂s}|zo 1ô?㓅R XbJl9RJl9 CD1dh.R2$dh.K.dh.#  dh.$~sRD ~sRD|.? .j-օoY@)% RR's; UQi{5?d(g`2 d(g`2kl2sЛɨ I UD; }l }ls}lj}lh:#[R9MaMO'MO'MO'נd $mA \@N1qvg**? Ss_}M* 2~ hR2~ h!bXB"e^auǓ .߇+K.߇+2K{?-3?M\8 M\8s M\8jdu z*Xz*L׸{ ޼}a:xu [ŪJr[|j [2'W+ И$ 1K  4:S4:7䗥/7䗥/ RRs s RRs  RRst4 |8N=v4Hz 4HzvhS3s" jT\LlebacNcW}A cW}AYcW}Ac.'Kn^b0 tP̌tP̌zD٢t.NRFRRFSH_)[$ h8LRUse^ yQ9Y](ivڱ~ ,_ [( ,  [( (9H\Rs?I?IM-/U|Kc%wGwG-,  GF. GF. I噵' R9O"^ ,R9O"^{w mR= ? = ?= ?t= ?sj2j2 mj2 ({=ɮ/-S%|B(19>󉜀S >󉜀xzD8 \p9?V#!IK7a26h7ҙ=D:[$ D:[$   D:[$ Rqj"u iRqj"u]qKf&^enB y1 +zO]s%zO]zO] (jI` ,E: $+~XT&d cX;[M֪ >|rutྦ@Rો8j}40 󊝩hn?SAۀJ+I J+Is(L ,1-.8և > |:v>"P4SH TEN_ a`f" i  `f" `f" e!.|,  [0 qCjvk,tS9stI ~ T]  T=rR% 1^qm,:[ЬKuE oi'm= 'm= MշW\@ 0۵ , O; v? a(dr#q Srj$* # ,B'7CVsNOt/ `$ a>r o=(,铥 $=TC =TCIݟ|n8s0Rj/  /  / ښ8?0 Ojc^ $iW iYq4|ׅ2ky7_y7_tւ9 # bV n#ڑO(8*B[0]|0]|2ĥ&S>_ұ? at? aYUhɡׯ?]³i8ߺvpqiyIyeɜ9®OP  1/i! IFj  IFtIFkhp\w2N !N}vZ-t  -t -tj-tY 0+Fjd2IMR TX" TX";MDZj4(7Ll8N.2Ã5-J1Z>H k>M AOsށjj~mԃo MR o M o M o MqғPvt0pY vt0p vt0pt}mN +`Jv p[ԓ/tԓ/ }|EQD.m ︽˂j^5j^5 X#S>ћ?Jgj5 / 571WOD\iB?  OD\iB  OD\iB iOD\iB OD\iB OD\iBRRӦwA8"RwA8"*wA8"wA8"Uj*Pl,=b kkNuB&S0-Є8AtJP   k!aZә  ә $AVzl.&N/یBAP[6SDSA cHz.E= LdhY}_ Zs_=_={s|CZhܯN|CZhܯp7* ^CX$JjKh֨l%Xb ΰ=qҠ٪EF~jKޮl3,v),v),v)*en )j+ G)j+ ,dMM)j+j<D3)j+ ()j+* c?>͜ H5# IH^- (T< VЖdobN riQD8 8o%c4mm&;#QUI؛H ܐ5BNgLJpX]zC (iW& UԎԯj?; s?\6VVon[Zn{4 {4ܴw -tW%%N=6`?U׏ y j2ۉb v{D -%W8Hԝ?J/G5MJR2JR2K4 @t $j.r j.r j.r pz527Y q5 .q5 . ,ush j\hr:r: %i0«7n8 *m~;Gm $ݢ [CƓ ʋG 1\jT)0#>I -(UEJ4_TK3\Y#K aM+YOFt`bV+ cf#PY &u&HE=x9)0(&z6|\‚qm'‰ ]Œ%*R’ 6 Ÿ jMŸ jM·tL¿ɠ#9r ;pC^tÚ`ﶨ Ú`ﶨ? Ú`ﶨ ãx^لRæ)ۑ ,ë=KZ ò]ܸӅI.?Y愕5? V ƞl/ ,ƞl/ (R?XnbX~0>\_?tdPNp aow#/~qY& w}e¬ĉzĉzRġQ:L;c %L ,ѸݞN`hl R}=12t0 12t0? n]NY§ ]E a xt"/q9 = R 8JƹKRR<2Z *᪾tBUAK<**LY*8 LY*8 W#__Lkb7=ҖNr;JBe r;JBeYr;JBe ir;JBe Njǐ7HjǞ3 Ǟv{$TsǨ &$Ǽ8.L Ǽ8.LtCѹ׮R@ÄN' ƢURx4isK(q TI  VcUGa! u+q.hŏ ?{Q`lvۈ+xMD{Vm[MRȓ? Ȥ2ljȤvO> Ȧ)vȷ _"tr  2z:A>: RHϛXm@^T9rNB=^T9rQ ^T9r^T9r^T9rR^T9rs\6AɁtBfuɁtBfuɆ1OLɚ{dɡ5YL!RWsYL!RW YL!RWS (jciZg`J s S8/vHW'2Ll% L{ĩO?dQ7vĂVS.[RVS.[``$c anyp>nyp>]o〉TubqdGE ({{o|E|\K}|qS~RʋjLʗ]Vm ʗ]Vm (ʪkY!Q $ʽ^A ʾnqb=*P0mM*P0mM?jla+F?j1}!}|  }| i}|?}| \ûAV:!Z%Y #{M2 [.d,(*<~JVO<*7=O<*7?gt^gN~-}J ˁ0CGNˏ]fD6R˯{? \T1NV1?hKy\/$??䳥NQF:G+[Ss}%tO'S.\ .\ i2t w4WN==6? >?CkMsY SZⲻSZⲻSX^*/"Y`T3,DqGjvaf-x $̄|W̝jW] R̟W;1Ṇ,RI #m7/0tBĽRߍ-shK) a+K<-`I Cʻ?EmXtEmXt ,U #ZC%Q.ZD> ZD>Y]S _)?sjgx s,ǨZOzNX9NC)*o?͈J e͍;dn͠Cnq c%$ͤe$@Ͳ9]t2B ΢7uRظ tx ?P> h 2/V ?F܎ck\SxdN9  A]RtRC&NPݩ0Q\*G c[&df G h#zrŹe} iΆKS·YY0Έ1RSΐ aΕ{ʯ?΢6ԒÉ$Φ2*hά!Ъήe:jήe:δߢlO δ\p9ν#$^bν#$^bѕ ѕGovr2NIV&(  O~nP& #   2o c5>ptH?$우jO .vO(<Y_~TO_snm=UKDBeT} $BeT}hϹ?]Ϲ״(g[31@D31@Dr9vTJ ,r9vTJj787878 # H„ u$*8cL8{*QL.roerpoerpoerpj{\a {\a Ѕu-?@51А,P_oАfEeZ Д7 ZС3*YЪsKkЪ.<Zк, }Eo; Z' ; Z'; Z' =Js^?NjF9X[P%vP= Ƨ 2Fuvc5Lv#= cȸ) S~5e5ejr9Y:S(Zoks3W v3W v5 R8{cj8;K $9`GF[;H ?Or9fx%kԃJ7D@ Ԛu'fԩqoFm ԱzQPRԷ- sԾK{ˠjEhEhRFaYE!FaYE!++s+ L&RRW ] υ ebs4 a bs4sbs4jbs4tkq 㺕mr"l0 sYo *sYo zV4 ,Մ^kY ՍC ՙs ՙs ,ղ?{gյ%T# ջ]?ջ]s8߄$ߛ1YǯFXOo ٕ|>Ef嫛 ޒ2]?,bc}RYeNCCr  ͼ ͼ&TFS&TFDeNEKE:)tE:)E:)Lo1x U;dW ,W W ց=4փ5%3Qօn1~Z\$֌])M ֥0?֥+,'C֥+,'CK֯x"֯xR ֱ@q.ֹ2z+j{91p -@)kEaI/u (LbŇ NW Re uyMb(u R(u =DcQ \B{c #Iܼ>Tbĕ2qϹh[(/psiq5ON k 9R׎rgf׎R*0Lד/{ssףs! ף ' ץ 'lצD , u*s`g9[7}b \[7}b s0h;? b$ $ $ 'gf'gfs'gf 'gf ('gfj5퉲;BG v ;BG S͐; S͐;tv cZsv cZ s؏`múvؙث&c.شYxGStORO>x]Ef[t< ZHxGH?GHW`GH$GH ړD9` ڕ0}Tڬ :M (ڴ#-'G?ھjwR0v3cP ع:R4#)n~  n~hFa !jhEA$,R(ϩ.p`ۃL .p`ۃL R;oj E ,S@T>Uw^ (Uw^j Uw^ Uw^ ,ۅK-- ,ۇ"( (ۇ"( $یHyۙ(-oj̊) +[+hu @yݡj1o?S]Nvغ:,T|,T|L. 5R4= c @g?@ApGvGDDŲ IOS4kIOS4`L^|EROVrRVBѓSasaKwf;!M զe9NܖU&^dܗT 4sܜөF ,ܼ" lYܼ" l ܼ" lj6|$}ҔB{9 w$:̮y ()[2 2jwPj941wPj wPj ,wPjwPjjwPj 7 p͐ QJROiT:T OiT:TOiT:ThE (̫Q1@y cY ;$;rew+Oa9L |8̟R߃׷at c߅=w$6K߆%bPDt߇%RߓBa>jߓBa> ߕJUE ߨǼӽb/d%[R '(j '( 1  -!cl-!cl-!cl7v89@BXL>hWP>hWPKKx+'ve@pK. G[ME/1K%eܒ +oD+9   dٺS|N BtՐ}K` `OD}k C4$R! c* $3ћK5YX< ,V8e\dm`}uohby?hby k,Yy"r |d2U[ /蹅1懯y1懯yRWw}S៻ۗtLs\ C2[i ?- ?- c [ࣇRĪq @⧐n<|3J1]b\3¸~z3¸~zt;q$(?Iɟѻ $IɟѻjIɟѻ _ia5﹎ a5﹎Qa5﹎cBzV,a▖@ 4☁JlXq'VhZ @qI #QB QB Nw _n# ļy:j"P?>3u+C|_vX]a  ev׊ pYzٱh㎻e nh%ի 㗒MnN@K㤆J mememe $mexa)j=az"wبessg呭 3fC%$%oi c 3N"{6ŨC6ŨCj;}Բ $Djb$YEg\tfC!·jT$pT1}f 䅆j ?͚h ͚h ~+R"(,s9R(,s9(,s9|LYfÇ ,2ˇVN6r#m(K#x9Y&V "v|  "v| i "v|  "v|? FD;f+#'2ːj-ZDqs02c>02c>02c> 02c>02c>02c>R1yDZ?U4EO«tWZ3Z WZ3Z l3!PtH |i)|i)ꑙ{[ ꔿ1ڎyjZjƓ%깗.66*2Kꄆ$ WyC]}/ ̖" sr%[ Ԫ2t8 .v $QRJ?(fU 6?9*f&D5 ,LEb6 \X`\X`cf 9lqN oN R raX s֧#H{qY}v| RGUJ0"l|2l$ϋ̮9gt?:d 2U5{*RQgX~t?Y.T#pY.T#pbM_ifKK kt~Әx+HPzܽ  zܽzܽ izܽzܽj{Vks~0G ,)pFv퐙hH$j퐙hH$?홚ZqsI:,t/M1tt/M1kؽ) sJ |*~1cap p? az  az \ Q&8 9N.d  ۏX _ϭ#ک2 +R5<-kV7;/=d i4֪Qzb4֪Qzt4֪Qz 4֪Qz ?>f UtU?U[`i d*PLawhͷLsk6ڐ `p5S+!  hteuGj NxUl[Bs} ##Vg E-k `N1W R |Lbt8E~ 8E~ sz !Z+rX ^% x]($D)JS)J0 ye!b 0 ye!bs0 ye!b (SfH $ SfH SfH SfH ,SfH ZYBd jf~Rd jf~LoD}jkFk;w~f)^J[8C (80j9 ,C# Ihm= Ihm=jL*ZS X*Z<= gä][l{.k (𙴵 ? a)%oВTҖ_#l:Җ_#l:{( i`cƎ4 2@NLsS磺.k" c15 !.pFR.pF" $\"B4\sk|?9xuR ;d\;d\jBIkcC)Mjht LL \U.51UU.51`cb,(? `cb,( ebJ}'BNwsgE8 x+ s2h<-jl1y 7E : jcWזJ ,%څ-|u9 a$`<ִDp DN *P]  ݂ ,/huOa>Lx  >LxsAIQ%$l90g#8& g#8& g#8& Lg#8& IJ?MW;Df $$*bcZUDTv ̻.}xC\ qQP rsl' x9;|fv󕷧SL }r[]BxY[7Rv]$RɄ` IWC?ZoZZ?̜tA✄<A✄<)|o4,&7͕ $6m$=yS8 %̠?BUBUC3NL Kia3i0JKia3Kia3RqNczmCl RTJ-. ^TJ-. \5:vdB1MXTm , XTm  XTm $XTm s-GE9_8vPJV E.2 ,QPt t2Z%N c$Le-\xL(8D , k *$oL$oLj(DD fh+\V! (<*Oq*R#wy+s R#wy+sRwe) UKe^tkF:vlRp;x v*"uպEx +!yKzA yKzAyKzAyKzA{ 2}چs؏S: $ŵ6t aKXU (@HKE , D'JnE1H1Tb (#V< a  h3 P5e%!⬸?5N<97aiD6ED/U (Xl)DZ\d,wX[J\d,wwK8}/Yal $̀[> ,Գ9.bc. ai[<6݉*dNueq?g ut& ,zQث)? -rv 4d?= 4d?=j 4d?= *a K =gלP'(A|ke~ke~Yv"ȯYaM8 3|-XKyCUӻa>Ifx*0 m|RūhKFI;d᭗[& lM>` (kwC-NauM\k$ q+ZģjX=kjX=k (y$ ,K/G5Ś] ȶFv o@ [zy`ZCAFڞe W96 9vP 9vP  6{4 #e?L 4vj4v4v $6xE$<a>M LLb +cWwfBEB;ָ?o \o zN. +/uD#A$77ΐƭBRv l~ GHuѨ8uѨ8{pvi 0RR0>0!<ʌ AYUOQBZ+_o^riJm -Ċq%mz ervkV yG2zW)J=Wl? ֻESѼ[ Ѽ[Ѽ[?t v?t jΥŜ-~N?ӟ>ߠ֎eߠ֎eLpJ 09 R09 4sb!$Y ,*'o%jNYd QP=]N_rZyAh|:2%RF{'XcÇeO1UEY E E 1oTYζA7xJjaqbL4Dtc(sC\Qmk Qmk Qmk fL"!^ $fL"!^Yl (l fg8 PiGSNHCb>rIXIgN]]j] ] ,&ſ 6 MK곾,S @v{9>? aJ S[oN: g%kڎ%kڎ*ϫ4E.ʁ c #7C7F7B", ", c #7D807C", "< c #7F827E", "1 c #80827D", "2 c #81837D", "3 c #81837E", "4 c #81837F", "5 c #82847F", "6 c #838580", "7 c #848581", "8 c #848681", "9 c #858783", "0 c #868883", "q c #888A85", "w c #898B86", "e c #8A8B86", "r c #8A8B87", "t c #8A8C87", "y c #8B8D88", "u c #8C8D89", "i c #8C8E89", "p c #8C8E8A", "a c #8D8E8A", "s c #8D8F8A", "d c #8E908B", "f c #8F918C", "g c #8F918D", "h c #8F928D", "j c #90928E", "k c #92948F", "l c #959792", "z c #979994", "x c #979995", "c c #999B97", "v c #9B9D98", "b c #9C9E99", "n c #9D9E9A", "m c #9D9F9A", "M c #9EA09C", "N c #9FA19C", "B c #A0A29E", "V c #A2A4A0", "C c #A3A5A0", "Z c #A4A5A1", "A c #A4A6A1", "S c #A4A6A2", "D c #A5A7A3", "F c #A6A8A3", "G c #A6A8A4", "H c #A8AAA5", "J c #A8AAA6", "K c #A9AAA6", "L c #AAACA8", "P c #ABACA8", "I c #ABADA8", "U c #ADAFAB", "Y c #AEB0AC", "T c #AFB0AC", "R c #B0B2AD", "E c #B0B2AE", "W c #B2B4B0", "Q c #B4B6B2", "! c #B5B7B3", "~ c #B7BAB3", "^ c #B6B8B4", "/ c #B7B8B4", "( c #B7B9B5", ") c #B8B9B6", "_ c #B8BAB6", "` c #BABCB8", "' c #BBBCB9", "] c #BBBDB9", "[ c #BCBDBA", "{ c #BCBEBA", "} c #BDBFBB", "| c #BEBFBB", " . c #BEC0BC", ".. c #BFC1BE", "X. c #C0C1BD", "o. c #C0C1BE", "O. c #C1C5BE", "+. c #C3C4C1", "@. c #C3C5C1", "#. c #C4C5C1", "$. c #C4C6C2", "%. c #C6C8C4", "&. c #C7C9C6", "*. c #C8C9C6", "=. c #C8CAC6", "-. c #C8CAC7", ";. c #CCCDCA", ":. c #CDCECB", ">. c #CDCFCB", ",. c #CED0CC", "<. c #D0D1CE", "1. c #D0D2CE", "2. c #D0D2CF", "3. c #D2D6CE", "4. c #D2D7CE", "5. c #D3D7CE", "6. c #D3D7CF", "7. c #D2D3D0", "8. c #D2D4D1", "9. c #D3D5D1", "0. c #D4D6D3", "q. c #D5D7D3", "w. c #D5D7D4", "e. c #D4D8D0", "r. c #D5D9D1", "t. c #D5D9D2", "y. c #D6D9D2", "u. c #D6DAD2", "i. c #D6DAD3", "p. c #D7DAD3", "a. c #D7DBD3", "s. c #D6D8D4", "d. c #D7D9D4", "f. c #D6D8D5", "g. c #D7D8D5", "h. c #D7D9D5", "j. c #D7DBD4", "k. c #D7D9D6", "l. c #D8DBD4", "z. c #D8DAD6", "x. c #D9DAD7", "c. c #D9DBD7", "v. c #DADBD7", "b. c #D8DCD5", "n. c #D9DCD5", "m. c #D9DDD6", "M. c #D9DCD7", "N. c #DADDD6", "B. c #DADED7", "V. c #DBDED7", "C. c #DADCD8", "Z. c #DADCD9", "A. c #DBDDD9", "S. c #DBDFD8", "D. c #DCDFD8", "F. c #DCDED9", "G. c #DCDFD9", "H. c #DCDDDA", "J. c #DCDEDA", "K. c #DDDEDB", "L. c #DDDFDB", "P. c #DEDFDC", "I. c #DCE0D9", "U. c #DDE0D9", "Y. c #DDE0DA", "T. c #DDE0DB", "R. c #DEE0DC", "E. c #DEE1DC", "W. c #DEE0DD", "Q. c #DFE0DD", "!. c #DFE2DC", "~. c #E0E2DC", "^. c #E0E2DD", "/. c #E0E3DD", "(. c #E0E1DE", "). c #E0E2DE", "_. c #E1E2DE", "`. c #E1E3DE", "'. c #E1E2DF", "]. c #E1E3DF", "[. c #E2E3DE", "{. c #E1E4DE", "}. c #E2E4DF", "|. c #E2E3E1", " X c #E2E4E0", ".X c #E2E5E0", "XX c #E3E5E0", "oX c #E3E5E1", "OX c #E4E5E1", "+X c #E4E6E1", "@X c #E4E5E2", "#X c #E5E6E2", "$X c #E5E6E3", "%X c #E5E7E3", "&X c #E6E7E3", "*X c #E6E7E4", "=X c #E6E8E3", "-X c #E6E8E4", ";X c #E7E8E4", ":X c #E7E8E5", ">X c #E7E9E5", ",X c #E8E9E5", ".7X;X;X;X`.e.4.p.@X*.~ +.k.9.b iXiXiXiXiXiXiXiXiXiXiXiX", "iXiXiXD @X,X@X;X;X`.e.4.9.p.D.~.Y.y.Y.N.X.k iXiXiXiXiXiXiXiXiXiX", "iXiXiX( rX@X;X;X;X[.e.e.4.4.4.4.3.3.y.b.XXK iXiXiXiXiXiXiXiXiXiX", "iXiXiXI ,X;X@X@X&X[.e.4.4.4.4.y.y.y.Y.[.[.V iXiXiXiXiXiXiXiXiXiX", "iXiXiXb @X;X;X;X&X`.e.p.l.p.4.`.wX[.y.+.T 5 iX0 D l iXiXiXiXiXiX", "iXiXiXt w.,X@X;X&X`.l.,Xz.N.D.y.[.k.f @ 3 F .;.`.9.H iXiXiXiXiX", "iXiXiXiX' 8X@X;X&X[.e.~.9.H 4.D.N.A.w t &.,XwXY.y.K.Y.M iXiXiXiX", "iXiXiXiXT 8X;X@X;X[.e.4.K.>.G <.N.{ 3 ' rX;X@XN.3.3.[.! iXiXiXiX", "iXiXiXiX( wX@X;X;X[.y.5.5.R.$.t y iXw z.;X;X@XN.e.3.D.A.b iXiXiX", "iXiXiX0 ,.,X;X;X;X[.6.5.5.y.!.K iXiXi R.;X;X;Xl.4.4.3.~.{ iXiXiX", "iXiX5 ' ,X;X;X@X;X[.6.5.5.5.I.&.iXiXw <.,X;X@Xl.e.e.D.`.U iXiXiX", "iXiXi `.5X;X;X;X;X[.a.6.5.5.6.k.f iXiXX.rX;X@XN.3.e.;X~ iXiXiXiX", "iXiXt x.yX,X;X;X;X[.5.5.6.a.N.A.i iXiX' wX;X@XN.3.N.XXH iXiXiXiX", "iXiXiXx ' XXyX;X;X[.6.5.a.;X;X( 5 iXiXf k.wX@XN.k.*X( t iXiXiXiX", "iXiXiX< V ;X;X;X;X[.y.5.5.b. XI 8 iXiXV X,X;XN.5.[.D iXiXiXiXiX", "iXiXM <.;X;X;X;X;X[.y.5.9.3.b.`.R w ! @X,X@X@XN.5.N.9.c iXiXiXiX", "iXiX| tX;X;X*X@X;X`.y.3.9.5.6.O.Y z.8X,X@X;X@XN.5.5.Y.k.U iXiXiX", "iXiX{ uX,X,X,X,X;XXXy.y.y.a.b.~ &.rX;X,X;X;X@XN.5.5.6.N.`.D iXiX", "iXiXc +.<.k.K.`.R.R.A.x.N.k.9.R U rX,X,X;X,X;XA.y.y.y.y.XXI iXiX", "iXiXiXiX% % : : : : : : : O O : R *.3.z.K.K.A.A.N.N.x.*.i iXiX", "iXiXiXiXiXiXiXiXiXiXiXiXiXiXiXiXiXiX. O O @ % : : > < < O iXiXiX", "iXiXiXiXiXiXiXiXiXiXiXiXiXiXiXiXiXiXiXiXiXiXiXiXiXiXiXiXiXiXiXiX", "iXiXiXiXiXiXiXiXiXiXiXiXiXiXiXiXiXiXiXiXiXiXiXiXiXiXiXiXiXiXiXiX", "iXiXiXiXiXiXiXiXiXiXiXiXiXiXiXiXiXiXiXiXiXiXiXiXiXiXiXiXiXiXiXiX" }; pychess-0.12.2/sidepanel/0000755000175000017470000000000012653231274015521 5ustar tamasusers00000000000000pychess-0.12.2/sidepanel/historyPanel.py0000755000175000017470000001536412653135361020570 0ustar tamasusers00000000000000from gi.repository import Gtk, GObject from gi.repository import Gdk from pychess.System import conf from pychess.System.idle_add import idle_add from pychess.System.prefix import addDataPrefix from pychess.Utils.Move import toSAN, toFAN __title__ = _("Move History") __active__ = True __icon__ = addDataPrefix("glade/panel_moves.svg") __desc__ = _("The moves sheet keeps track of the players' moves and lets you navigate through the game history") class Switch: def __init__(self): self.on = False def __enter__(self): self.on = True def __exit__(self, *a): self.on = False class Sidepanel: def __init__ (self): self.frozen = Switch() def load (self, gmwidg): widgets = Gtk.Builder() widgets.add_from_file(addDataPrefix("sidepanel/history.glade")) __widget__ = widgets.get_object("panel") __widget__.unparent() self.boardview = gmwidg.board.view self.boardview.model.connect_after("game_changed", self.game_changed) self.boardview.model.connect_after("game_started", self.game_started) self.boardview.model.connect_after("moves_undone", self.moves_undone) self.boardview.connect("shownChanged", self.shownChanged) # Initialize treeviews self.numbers = widgets.get_object("treeview1") self.left = widgets.get_object("treeview2") self.right = widgets.get_object("treeview3") def fixList (list, xalign=0): list.set_model(Gtk.ListStore(str)) renderer = Gtk.CellRendererText() renderer.set_property("xalign",xalign) list.append_column(Gtk.TreeViewColumn(None, renderer, text=0)) list.get_selection().set_mode(Gtk.SelectionMode.SINGLE) fixList(self.numbers, 1) fixList(self.left, 0) fixList(self.right, 0) self.left.get_selection().connect('changed', self.on_selection_changed, self.left, 0) self.right.get_selection().connect('changed', self.on_selection_changed, self.right, 1) # Lock scrolling scrollwin = widgets.get_object("panel") def changed (vadjust): if not hasattr(vadjust, "need_scroll") or vadjust.need_scroll: vadjust.set_value(vadjust.get_upper()-vadjust.get_page_size()) vadjust.need_scroll = True scrollwin.get_vadjustment().connect("changed", changed) def value_changed (vadjust): vadjust.need_scroll = abs(vadjust.get_value() + vadjust.get_page_size() - \ vadjust.get_upper()) < vadjust.get_step_increment() scrollwin.get_vadjustment().connect("value-changed", value_changed) # Connect to preferences def figuresInNotationCallback (none): game = self.boardview.model for board, move in zip(game.variations[0], game.moves): if conf.get("figuresInNotation", False): notat = toFAN(board, move) else: notat = toSAN(board, move, True) row, col, other = self._ply_to_row_col_other(board.ply+1) iter = col.get_model().get_iter((row,)) col.get_model().set(iter, 0, notat) conf.notify_add("figuresInNotation", figuresInNotationCallback) # Return return __widget__ def on_selection_changed (self, selection, tree, col): iter = selection.get_selected()[1] if iter == None: return if self.frozen.on: return path = tree.get_model().get_path(iter) indices = path.get_indices() row = indices[0] if self.boardview.model.lowply & 1: ply = row*2 + col else: ply = row*2 + col +1 board = self.boardview.model.boards[ply] self.boardview.setShownBoard(board) @idle_add def moves_undone (self, game, moves): with self.frozen: for i in reversed(range(moves)): try: row, view, other = self._ply_to_row_col_other(game.variations[0][-1].ply+moves-i) model = view.get_model() model.remove(model.get_iter((row,))) if view == self.left: model = self.numbers.get_model() model.remove(model.get_iter((row,))) except ValueError: continue @idle_add def game_changed (self, game, ply): len_ = len(self.left.get_model()) + len(self.right.get_model()) + 1 if len(self.left.get_model()) and not self.left.get_model()[0][0]: len_ -= 1 for i in range(len_+game.lowply, ply+1): self.__addMove(game, i) self.shownChanged (self.boardview, ply) def game_started(self, game): self.game_changed(game, game.ply) def __addMove(self, game, ply): #print "Am I doing anything?" row, view, other = self._ply_to_row_col_other(ply) if conf.get("figuresInNotation", False): notat = toFAN(game.getBoardAtPly(ply-1), game.getMoveAtPly(ply-1)) else: notat = toSAN(game.getBoardAtPly(ply-1), game.getMoveAtPly(ply-1), localRepr=True) # Test if the row is 'filled' if len(view.get_model()) == len(self.numbers.get_model()): num = str((ply+1)//2)+"." self.numbers.get_model().append([num]) # Test if the move is black first move. This will be the case if the # game was loaded from a fen/epd starting at black if view == self.right and len(view.get_model()) == len(other.get_model()): self.left.get_model().append([""]) view.get_model().append([notat]) @idle_add def shownChanged (self, boardview, shown): if not boardview.shownIsMainLine(): return if shown <= boardview.model.lowply: #print "Or is it me?" self.left.get_selection().unselect_all() self.right.get_selection().unselect_all() return row, col, other = self._ply_to_row_col_other(shown) with self.frozen: other.get_selection().unselect_all() try: col.get_selection().select_iter(col.get_model().get_iter(row)) col.set_cursor((row,)) col.scroll_to_cell((row,), None, False) except ValueError: pass # deleted variations by moves_undoing def _ply_to_row_col_other (self, ply): col = ply & 1 and self.left or self.right other = ply & 1 and self.right or self.left if self.boardview.model.lowply & 1: row = (ply-self.boardview.model.lowply) // 2 else: row = (ply-self.boardview.model.lowply-1) // 2 return row, col, other pychess-0.12.2/sidepanel/chatPanel.py0000755000175000017470000000627712652505045020010 0ustar tamasusers00000000000000# -*- coding: UTF-8 -*- from gi.repository import Gtk from gi.repository import Pango import time from pychess.System import uistuff from pychess.System.idle_add import idle_add from pychess.System.Log import log from pychess.System.prefix import addDataPrefix from pychess.Utils.const import LOCAL, WHITE, BLACK from pychess.widgets.ChatView import ChatView from pychess.ic.ICGameModel import ICGameModel from pychess.ic.managers.ChatManager import ChatManager __title__ = _("Chat") __icon__ = addDataPrefix("glade/panel_chat.svg") __desc__ = _("The chat panel lets you communicate with your opponent during the game, assuming he or she is interested") class Sidepanel: def load (self, gmwidg): self.gamemodel = gmwidg.gamemodel self.gamemodel.connect("game_started", self.onGameStarted) self.chatView = ChatView(self.gamemodel) self.chatView.disable("Waiting for game to load") self.chatView.connect("messageTyped", self.onMessageSent) if isinstance(self.gamemodel, ICGameModel): self.gamemodel.connect("observers_received", self.chatView.update_observers) self.gamemodel.connect("message_received", self.onICMessageReieved) return self.chatView @idle_add def onGameStarted (self, gamemodel): if gamemodel.isObservationGame() or gamemodel.examined: # no local player but enable chat to send/receive whisper/kibitz pass elif gamemodel.players[0].__type__ == LOCAL: self.player = gamemodel.players[0] self.opplayer = gamemodel.players[1] if gamemodel.players[1].__type__ == LOCAL: log.warning("Chatpanel loaded with two local players") elif gamemodel.players[1].__type__ == LOCAL: self.player = gamemodel.players[1] self.opplayer = gamemodel.players[0] else: log.info("Chatpanel loaded with no local players") self.chatView.hide() if isinstance(gamemodel, ICGameModel): allob = 'allob ' + str(gamemodel.ficsgame.gameno) gamemodel.connection.client.run_command(allob) if hasattr(self, "player"): self.player.connect("messageReceived", self.onMessageReieved) self.chatView.enable() @idle_add def onMessageReieved (self, player, text): self.chatView.addMessage(repr(self.opplayer), text) def onICMessageReieved (self, icgamemodel, player, text): self.chatView.addMessage(player, text) # emit an allob to FICS allob = 'allob ' + str(icgamemodel.ficsgame.gameno) icgamemodel.connection.client.run_command(allob) def onMessageSent (self, chatView, text): if hasattr(self, "player"): if text.startswith('# ') : text = text[2:] name = self.gamemodel.connection.cm.whisper(text) elif text.startswith('whisper '): text = text[8:] name = self.gamemodel.connection.cm.whisper(text) else : self.player.sendMessage(text) self.chatView.addMessage(repr(self.player), text) else: name = self.gamemodel.connection.cm.whisper(text) pychess-0.12.2/sidepanel/annotationPanel.py0000644000175000017470000012063712653135361021236 0ustar tamasusers00000000000000# -*- coding: UTF-8 -*- import re import datetime from gi.repository import Gtk from gi.repository import Pango from gi.repository import GObject from gi.repository import Gdk from pychess.compat import basestring, unicode from pychess.Utils import prettyPrintScore from pychess.Utils.const import * from pychess.System import conf from pychess.System.idle_add import idle_add from pychess.System.Log import log from pychess.System.prefix import addDataPrefix from pychess.Utils.lutils.LBoard import LBoard from pychess.Utils.lutils.lmove import toSAN, toFAN from pychess.Savers.pgn import move_count from pychess.Savers.pgnbase import nag2symbol from pychess.widgets.Background import set_textview_color from pychess.widgets.ChessClock import formatTime from pychess.Utils.TimeModel import TimeModel __title__ = _("Annotation") __active__ = True __icon__ = addDataPrefix("glade/panel_annotation.svg") __desc__ = _("Annotated game") EMPTY_BOARD = LBoard() EMPTY_BOARD.applyFen(FEN_EMPTY) """ We are maintaining a list of nodes to help manipulate the textbuffer. Node can represent a move, comment or variation (start/end) marker. Nodes are dicts with keys like: board = in move node it's the lboard of move in comment node it's the lboard where the comment belongs to in end variation marker node it's the first lboard of the variation in start variation marker is's None start = the beginning offest of the node in the textbuffer end = the ending offest of the node in the textbuffer parent = the parent lboard if the node is a move in a variation, otherwise None vari = in end variation node it's the start variation marker node in start variation node it's None level = depth in variation tree (0 for mainline nodes, 1 for first level variation moves, etc.) index = in comment nodes the index of comment if more exist for a move """ class Sidepanel(Gtk.TextView): def __init__(self): GObject.GObject.__init__(self) #self.set_editable(False) #self.set_cursor_visible(False) self.set_wrap_mode(Gtk.WrapMode.WORD) self.cursor_standard = Gdk.Cursor.new(Gdk.CursorType.LEFT_PTR) #self.cursor_hand = Gdk.Cursor.new(Gdk.HAND2) self.cursor_hand = Gdk.Cursor.new(Gdk.CursorType.HAND2) self.textview = self self.nodelist = [] self.oldWidth = 0 self.autoUpdateSelected = True self.connect("motion-notify-event", self.motion_notify_event) self.connect("button-press-event", self.button_press_event) bg_color, fg_color = set_textview_color(self.textview) self.textbuffer = self.get_buffer() color0 = fg_color color1 = Gdk.RGBA(red=0.2, green=0.0, blue=0.0) color2 = Gdk.RGBA(red=0.4, green=0.0, blue=0.0) color3 = Gdk.RGBA(red=0.6, green=0.0, blue=0.0) color4 = Gdk.RGBA(red=0.8, green=0.0, blue=0.0) color5 = Gdk.RGBA(red=1.0, green=0.0, blue=0.0) tag = self.textbuffer.create_tag("remove-variation") tag.connect("event", self.tag_event_handler) self.new_line_tag = self.textbuffer.create_tag("new_line") self.textbuffer.create_tag("head1") self.textbuffer.create_tag("head2", weight=Pango.Weight.BOLD) self.textbuffer.create_tag("move", weight=Pango.Weight.BOLD) self.textbuffer.create_tag("scored0", foreground_rgba=color0) self.textbuffer.create_tag("scored1", foreground_rgba=color1) self.textbuffer.create_tag("scored2", foreground_rgba=color2) self.textbuffer.create_tag("scored3", foreground_rgba=color3) self.textbuffer.create_tag("scored4", foreground_rgba=color4) self.textbuffer.create_tag("scored5", foreground_rgba=color5) self.textbuffer.create_tag("emt", foreground="darkgrey", weight=Pango.Weight.NORMAL) self.textbuffer.create_tag("comment", foreground="darkblue") self.textbuffer.create_tag("variation-toplevel", weight=Pango.Weight.NORMAL) self.textbuffer.create_tag("variation-even", foreground="darkgreen", style="italic") self.textbuffer.create_tag("variation-uneven", foreground="darkred", style="italic") self.textbuffer.create_tag("selected", background_full_height=True, background="grey") self.textbuffer.create_tag("margin", left_margin=4) self.textbuffer.create_tag("variation-margin0", left_margin=20) self.textbuffer.create_tag("variation-margin1", left_margin=36) self.textbuffer.create_tag("variation-margin2", left_margin=52) def load(self, gmwidg): __widget__ = Gtk.ScrolledWindow() __widget__.set_policy(Gtk.PolicyType.AUTOMATIC, Gtk.PolicyType.ALWAYS) __widget__.add(self.textview) self.gamewidget = gmwidg self.boardview = gmwidg.board.view self.boardview.connect("shownChanged", self.shownChanged) self.gamemodel = gmwidg.board.view.model self.gamemodel.connect_after("game_loaded", self.game_loaded) self.gamemodel.connect_after("game_changed", self.game_changed) self.gamemodel.connect_after("game_started", self.update) self.gamemodel.connect_after("game_ended", self.update) self.gamemodel.connect_after("moves_undone", self.moves_undone) self.gamemodel.connect_after("opening_changed", self.update) self.gamemodel.connect_after("players_changed", self.players_changed) self.gamemodel.connect("variation_added", self.variation_added) self.gamemodel.connect("variation_extended", self.variation_extended) self.gamemodel.connect("analysis_changed", self.analysis_changed) # Connect to preferences self.fan = conf.get("figuresInNotation", False) def figuresInNotationCallback(none): self.fan = conf.get("figuresInNotation", False) self.update() conf.notify_add("figuresInNotation", figuresInNotationCallback) # Elapsed move time self.showEmt = conf.get("showEmt", False) def showEmtCallback(none): self.showEmt = conf.get("showEmt", False) self.update() conf.notify_add("showEmt", showEmtCallback) # Blunders self.showBlunder = conf.get("showBlunder", False) def showBlunderCallback(none): self.showBlunder = conf.get("showBlunder", False) self.update() conf.notify_add("showBlunder", showBlunderCallback) # Eval values self.showEval = conf.get("showEval", False) def showEvalCallback(none): self.showEval = conf.get("showEval", False) self.update() conf.notify_add("showEval", showEvalCallback) return __widget__ def tag_event_handler(self, tag, widget, event, iter): """ Calls variation remover when clicking on remove marker """ tag_name = tag.get_property("name") if event.type == Gdk.EventType.BUTTON_PRESS and tag_name == "remove-variation": offset = iter.get_offset() node = None for n in self.nodelist: if offset >= n["start"] and offset < n["end"]: node = n break if node is None: return self.remove_variation(node) return False def motion_notify_event(self, widget, event): """ Handles mouse cursor changes (standard/hand) """ if (event.is_hint): #(x, y, state) = event.window.get_pointer() (ign, x, y, state) = event.window.get_pointer() else: x = event.x y = event.y state = event.get_state() if self.textview.get_window_type(event.window) != Gtk.TextWindowType.TEXT: event.window.set_cursor(self.cursor_standard) return True (x, y) = self.textview.window_to_buffer_coords(Gtk.TextWindowType.WIDGET, int(x), int(y)) it = self.textview.get_iter_at_location(x, y) offset = it.get_offset() for node in self.nodelist: if offset >= node["start"] and offset < node["end"] and not "vari" in node: event.window.set_cursor(self.cursor_hand) return True event.window.set_cursor(self.cursor_standard) return True def button_press_event(self, widget, event): """ Calls setShownBoard() or edit_comment() on mouse click, or pops-up local menu """ (wx, wy) = event.get_coords() (x, y) = self.textview.window_to_buffer_coords(Gtk.TextWindowType.WIDGET, int(wx), int(wy)) it = self.textview.get_iter_at_location(x, y) offset = it.get_offset() node = None for n in self.nodelist: if offset >= n["start"] and offset < n["end"]: node = n board = node["board"] break if node is None: return True #print("-------------------------------------------------------") #print("index is:", self.nodelist.index(node)) #print(node) #print("-------------------------------------------------------") # left mouse click if event.button == 1: if "vari" in node: # tag_event_handler() will handle return True elif "comment" in node: self.edit_comment(board=board, index=node["index"]) else: self.boardview.setShownBoard(board.pieceBoard) # local menu on right mouse click elif event.button == 3: self.menu = Gtk.Menu() menuitem = Gtk.MenuItem(_("Copy PGN")) menuitem.connect('activate', self.copy_pgn) self.menu.append(menuitem) if node is not None: position = -1 for index, child in enumerate(board.children): if isinstance(child, basestring): position = index break if len(self.gamemodel.boards) > 1 and board == self.gamemodel.boards[1].board and \ not self.gamemodel.boards[0].board.children: menuitem = Gtk.MenuItem(_("Add start comment")) menuitem.connect('activate', self.edit_comment, self.gamemodel.boards[0].board, 0) self.menu.append(menuitem) if position == -1: menuitem = Gtk.MenuItem(_("Add comment")) menuitem.connect('activate', self.edit_comment, board, 0) self.menu.append(menuitem) else: menuitem = Gtk.MenuItem(_("Edit comment")) menuitem.connect('activate', self.edit_comment, board, position) self.menu.append(menuitem) symbol_menu1 = Gtk.Menu() for nag, menutext in (("$1", "!"), ("$2", "?"), ("$3", "!!"), ("$4", "??"), ("$5", "!?"), ("$6", "?!"), ("$7", _("Forced move"))): menuitem = Gtk.MenuItem(menutext) menuitem.connect('activate', self.symbol_menu1_activate, board, nag) symbol_menu1.append(menuitem) menuitem = Gtk.MenuItem(_("Add move symbol")) menuitem.set_submenu(symbol_menu1) self.menu.append(menuitem) symbol_menu2 = Gtk.Menu() for nag, menutext in (("$10", "="), ("$13", _("Unclear position")), ("$14", "+="), ("$15", "=+"), ("$16", "±"), ("$17", "∓"), ("$18", "+-"), ("$19", "-+"), ("$20", "+--"), ("$21", "--+"), ("$22", _("Zugzwang")), ("$32", _("Development adv.")), ("$36", _("Initiative")), ("$40", _("With attack")), ("$44", _("Compensation")), ("$132", _("Counterplay")), ("$138", _("Time pressure"))): menuitem = Gtk.MenuItem(menutext) menuitem.connect('activate', self.symbol_menu2_activate, board, nag) symbol_menu2.append(menuitem) menuitem = Gtk.MenuItem(_("Add evaluation symbol")) menuitem.set_submenu(symbol_menu2) self.menu.append(menuitem) menuitem = Gtk.MenuItem(_("Remove symbols")) menuitem.connect('activate', self.remove_symbols, board) self.menu.append(menuitem) self.menu.show_all() self.menu.popup(None, None, None, None, event.button, event.time) return True def copy_pgn(self, widget): self.gamewidget.copy_pgn() def edit_comment(self, widget=None, board=None, index=0): dialog = Gtk.Dialog(_("Edit comment"), None, Gtk.DialogFlags.MODAL | Gtk.DialogFlags.DESTROY_WITH_PARENT, (Gtk.STOCK_CANCEL, Gtk.ResponseType.REJECT, Gtk.STOCK_OK, Gtk.ResponseType.ACCEPT)) textedit = Gtk.TextView() textedit.set_editable(True) textedit.set_cursor_visible(True) textedit.set_wrap_mode(Gtk.WrapMode.WORD) textbuffer = textedit.get_buffer() if not board.children: board.children.append("") elif not isinstance(board.children[index], basestring): board.children.insert(index, "") textbuffer.set_text(board.children[index]) sw = Gtk.ScrolledWindow() sw.set_policy(Gtk.PolicyType.AUTOMATIC, Gtk.PolicyType.AUTOMATIC) sw.add(textedit) dialog.get_content_area().pack_start(sw, True, True, 0) dialog.resize(300, 200) dialog.show_all() response = dialog.run() if response == Gtk.ResponseType.ACCEPT: dialog.destroy() (iter_first, iter_last) = textbuffer.get_bounds() comment = textbuffer.get_text(iter_first, iter_last, False) if board.children[index] != comment: if comment: board.children[index] = comment else: del board.children[index] self.gamemodel.needsSave = True self.update() else: dialog.destroy() # Add move symbol menu def symbol_menu1_activate(self, widget, board, nag): if len(board.nags) == 0: board.nags.append(nag) self.gamemodel.needsSave = True else: if board.nags[0] != nag: board.nags[0] = nag self.gamemodel.needsSave = True if self.gamemodel.needsSave: self.update_node(board) # Add evaluation symbol menu def symbol_menu2_activate(self, widget, board, nag): color = board.color if color == WHITE and nag in ("$22", "$32", "$36", "$40", "$44", "$132", "$138"): nag = "$%s" % (int(nag[1:]) + 1) if len(board.nags) == 0: board.nags.append("") board.nags.append(nag) self.gamemodel.needsSave = True if len(board.nags) == 1: board.nags.append(nag) self.gamemodel.needsSave = True else: if board.nags[1] != nag: board.nags[1] = nag self.gamemodel.needsSave = True if self.gamemodel.needsSave: self.update_node(board) def remove_symbols(self, widget, board): if board.nags: board.nags = [] self.update_node(board) self.gamemodel.needsSave = True def print_node(self, node): """ Just a debug helper """ if "vari" in node: if node["board"] is None: text = "[" else: text = "]" elif "comment" in node: text = node["comment"] else: text = self.__movestr(node["board"]) return text def remove_variation(self, node): shown_board = self.gamemodel.getBoardAtPly(self.boardview.shown, self.boardview.shown_variation_idx) # TODO in_vari = True #shown_board in vari board = node["board"] parent = node["parent"] # Set new shown board if needed if in_vari: if parent.pieceBoard is None: # variation without played move at game end self.boardview.setShownBoard(self.gamemodel.boards[-1]) else: self.boardview.setShownBoard(parent.pieceBoard) # Remove the variation (list of lboards) containing board from parent's children list for child in parent.children: if isinstance(child, list) and board in child: parent.children.remove(child) break # Remove all variations from gamemodel's variations list which contains this board for vari in self.gamemodel.variations[1:]: if board.pieceBoard in vari: self.gamemodel.variations.remove(vari) last_node = self.nodelist[-1] == node # remove null_board if variation was added on last played move if not parent.fen_was_applied: parent.prev.next = None startnode = node["vari"] start = startnode["start"] end = node["end"] need_delete = [] for n in self.nodelist[self.nodelist.index(startnode):]: if n["start"] < end: need_delete.append(n) if not last_node: diff = end - start for n in self.nodelist[self.nodelist.index(node)+1:]: n["start"] -= diff n["end"] -= diff for n in need_delete: self.nodelist.remove(n) start_iter = self.textbuffer.get_iter_at_offset(start) end_iter = self.textbuffer.get_iter_at_offset(end) self.textbuffer.delete(start_iter, end_iter) self.gamemodel.needsSave = True def variation_start(self, iter, index, level): start = iter.get_offset() if not iter.ends_tag(tag=self.new_line_tag): self.textbuffer.insert_with_tags_by_name(iter, "\n", "new_line") if level == 0: self.textbuffer.insert_with_tags_by_name(iter, "[", "variation-toplevel", "variation-margin0") elif (level+1) % 2 == 0: self.textbuffer.insert_with_tags_by_name(iter, "(", "variation-even", "variation-margin1") else: self.textbuffer.insert_with_tags_by_name(iter, "(", "variation-uneven", "variation-margin2") node = {} node["board"] = EMPTY_BOARD node["vari"] = None node["start"] = start node["end"] = iter.get_offset() if index == -1: self.nodelist.append(node) else: self.nodelist.insert(index, node) return (iter.get_offset() - start, node) def variation_end(self, iter, index, level, firstboard, parent, opening_node): start = iter.get_offset() if level == 0: self.textbuffer.insert_with_tags_by_name(iter, "]", "variation-toplevel", "variation-margin0") elif (level+1) % 2 == 0: self.textbuffer.insert_with_tags_by_name(iter, ")", "variation-even", "variation-margin1") else: self.textbuffer.insert_with_tags_by_name(iter, ")", "variation-uneven", "variation-margin2") self.textbuffer.insert_with_tags_by_name(iter, unicode("✖ "), "remove-variation") chr = iter.get_char() # somehow iter.begins_tag() doesn't work, so we use get_char() instead if iter.get_char() != "\n": self.textbuffer.insert_with_tags_by_name(iter, "\n", "new_line") node = {} node["board"] = firstboard node["parent"] = parent node["vari"] = opening_node node["start"] = start node["end"] = iter.get_offset() if index == -1: self.nodelist.append(node) else: self.nodelist.insert(index, node) return iter.get_offset() - start def update_node(self, board): """ Called after adding/removing evaluation simbols """ node = None for n in self.nodelist: if n["board"] == board: start = self.textbuffer.get_iter_at_offset(n["start"]) end = self.textbuffer.get_iter_at_offset(n["end"]) node = n break if node is None: return index = self.nodelist.index(node) level = node["level"] parent = node["parent"] diff = node["end"] - node["start"] self.nodelist.remove(node) self.textbuffer.delete(start, end) inserted_node = self.insert_node(board, start, index, level, parent) diff = inserted_node["end"] - inserted_node["start"] - diff if len(self.nodelist) > index + 1: for node in self.nodelist[index+1:]: node["start"] += diff node["end"] += diff def insert_node(self, board, iter, index, level, parent): start = iter.get_offset() movestr = self.__movestr(board) self.textbuffer.insert(iter, "%s " % movestr) startIter = self.textbuffer.get_iter_at_offset(start) endIter = self.textbuffer.get_iter_at_offset(iter.get_offset()) if level == 0: self.textbuffer.apply_tag_by_name("move", startIter, endIter) self.textbuffer.apply_tag_by_name("margin", startIter, endIter) self.colorize_node(board.plyCount, startIter, endIter) elif level == 1: self.textbuffer.apply_tag_by_name("variation-toplevel", startIter, endIter) self.textbuffer.apply_tag_by_name("variation-margin0", startIter, endIter) elif level % 2 == 0: self.textbuffer.apply_tag_by_name("variation-even", startIter, endIter) self.textbuffer.apply_tag_by_name("variation-margin1", startIter, endIter) else: self.textbuffer.apply_tag_by_name("variation-uneven", startIter, endIter) self.textbuffer.apply_tag_by_name("variation-margin2", startIter, endIter) node = {} node["board"] = board node["start"] = start node["end"] = iter.get_offset() node["parent"] = parent node["level"] = level if index == -1: self.nodelist.append(node) else: self.nodelist.insert(index, node) return node @idle_add def variation_extended(self, gamemodel, prev_board, board): node = None for n in self.nodelist: if n["board"] == prev_board: end = self.textbuffer.get_iter_at_offset(n["end"]) node = n break node_index = self.nodelist.index(node) + 1 inserted_node = self.insert_node(board, end, node_index, node["level"], node["parent"]) diff = inserted_node["end"] - inserted_node["start"] if len(self.nodelist) > node_index+1: for node in self.nodelist[node_index+1:]: node["start"] += diff node["end"] += diff self.gamemodel.needsSave = True @idle_add def variation_added(self, gamemodel, boards, parent, comment, score): # first find the iter where we will inset this new variation node = None for n in self.nodelist: if n["board"] == parent: end = self.textbuffer.get_iter_at_offset(n["end"]) node = n break if node is None: next_node_index = len(self.nodelist) end = self.textbuffer.get_end_iter() level = 0 else: next_node_index = self.nodelist.index(node) + 1 level = node["level"] # diff will store the offset we need to shift the remaining stuff diff = 0 # variation opening parenthesis sdiff, opening_node = self.variation_start(end, next_node_index, level) diff += sdiff ini_board = None for i, board in enumerate(boards): # do we have initial variation comment? if (board.prev is None): if comment: board.children.append(comment) ini_board = board continue else: # insert variation move inserted_node = self.insert_node(board, end, next_node_index+i, level+1, parent) diff += inserted_node["end"] - inserted_node["start"] end = self.textbuffer.get_iter_at_offset(inserted_node["end"]) if ini_board is not None: # insert initial variation comment inserted_comment = self.insert_comment(comment, board, parent, level=level+1, ini_board=ini_board) comment_diff = inserted_comment["end"] - inserted_comment["start"] inserted_node["start"] += comment_diff inserted_node["end"] += comment_diff end = self.textbuffer.get_iter_at_offset(inserted_node["end"]) diff += comment_diff leading = False next_node_index += 1 ini_board = None if score: # insert score of variation latest move as comment board.children.append(score) inserted_node = self.insert_comment(score, board, parent, level=level+1) diff += inserted_node["end"] - inserted_node["start"] end = self.textbuffer.get_iter_at_offset(inserted_node["end"]) next_node_index += 1 diff += self.variation_end(end, next_node_index + len(boards), level, boards[1], parent, opening_node) # adjust remaining stuff offsets if next_node_index > 0: for node in self.nodelist[next_node_index + len(boards)+1:]: node["start"] += diff node["end"] += diff # if new variation is coming from clicking in book panel # we want to jump into the first board in new vari if not comment: self.boardview.setShownBoard(boards[1].pieceBoard) self.gamemodel.needsSave = True def colorize_node(self, ply, start, end): """ Update the node color """ self.textbuffer.remove_tag_by_name("emt", start, end) self.textbuffer.remove_tag_by_name("scored5", start, end) self.textbuffer.remove_tag_by_name("scored4", start, end) self.textbuffer.remove_tag_by_name("scored3", start, end) self.textbuffer.remove_tag_by_name("scored2", start, end) self.textbuffer.remove_tag_by_name("scored1", start, end) if self.showBlunder and ply-1 in self.gamemodel.scores and ply in self.gamemodel.scores: color = (ply-1) % 2 oldmoves, oldscore, olddepth = self.gamemodel.scores[ply-1] oldscore = oldscore * -1 if color == BLACK else oldscore moves, score, depth = self.gamemodel.scores[ply] score = score * -1 if color == WHITE else score diff = score-oldscore if (diff > 400 and color==BLACK) or (diff < -400 and color==WHITE): self.textbuffer.apply_tag_by_name("scored5", start, end) elif (diff > 200 and color==BLACK) or (diff < -200 and color==WHITE): self.textbuffer.apply_tag_by_name("scored4", start, end) elif (diff > 90 and color==BLACK) or (diff < -90 and color==WHITE): self.textbuffer.apply_tag_by_name("scored3", start, end) elif (diff > 50 and color==BLACK) or (diff < -50 and color==WHITE): self.textbuffer.apply_tag_by_name("scored2", start, end) elif (diff > 20 and color==BLACK) or (diff < -20 and color==WHITE): self.textbuffer.apply_tag_by_name("scored1", start, end) else: self.textbuffer.apply_tag_by_name("scored0", start, end) else: self.textbuffer.apply_tag_by_name("scored0", start, end) @idle_add def analysis_changed(self, gamemodel, ply): if self.boardview.animating: return if not self.boardview.shownIsMainLine(): return board = gamemodel.getBoardAtPly(ply).board node = None if self.showEval or self.showBlunder: for n in self.nodelist: if n["board"] == board: start = self.textbuffer.get_iter_at_offset(n["start"]) end = self.textbuffer.get_iter_at_offset(n["end"]) node = n break if node is None: return if self.showBlunder: self.colorize_node(ply, start, end) emt_eval = "" if self.showEmt and self.gamemodel.timemodel.hasTimes: elapsed = gamemodel.timemodel.getElapsedMoveTime(board.plyCount - gamemodel.lowply) emt_eval = "%s " % formatTime(elapsed) if self.showEval: if board.plyCount in gamemodel.scores: moves, score, depth = gamemodel.scores[board.plyCount] score = score * -1 if board.color == BLACK else score emt_eval += "%s " % prettyPrintScore(score, depth) if emt_eval: if node == self.nodelist[-1]: next_node = None self.textbuffer.delete(end, self.textbuffer.get_end_iter()) else: next_node = self.nodelist[self.nodelist.index(node)+1] next_start = self.textbuffer.get_iter_at_offset(next_node["start"]) self.textbuffer.delete(end, next_start) self.textbuffer.insert_with_tags_by_name(end, emt_eval, "emt") if next_node is not None: diff = end.get_offset() - next_node["start"] for node in self.nodelist[self.nodelist.index(next_node):]: node["start"] += diff node["end"] += diff def update_selected_node(self): """ Update the selected node highlight """ self.textbuffer.remove_tag_by_name("selected", self.textbuffer.get_start_iter(), self.textbuffer.get_end_iter()) shown_board = self.gamemodel.getBoardAtPly(self.boardview.shown, self.boardview.shown_variation_idx) start = None for node in self.nodelist: if node["board"] == shown_board.board: start = self.textbuffer.get_iter_at_offset(node["start"]) end = self.textbuffer.get_iter_at_offset(node["end"]) self.textbuffer.apply_tag_by_name("selected", start, end) break if start: #self.textview.scroll_to_iter(start, within_margin=0.03) self.textview.scroll_to_iter(start, 0.03, False, 0.00, 0.00) def insert_nodes(self, board, level=0, parent=None, result=None): """ Recursively builds the node tree """ end_iter = self.textbuffer.get_end_iter # Convenience shortcut to the function while True: start = end_iter().get_offset() if board is None: break # Initial game or variation comment if board.prev is None: for index, child in enumerate(board.children): if isinstance(child, basestring): self.insert_comment(child, board, parent, index=index, level=level, ini_board=board) board = board.next continue if board.fen_was_applied: self.insert_node(board, end_iter(), -1, level, parent) if self.showEmt and level == 0 and board.fen_was_applied and self.gamemodel.timemodel.hasTimes: elapsed = self.gamemodel.timemodel.getElapsedMoveTime(board.plyCount - self.gamemodel.lowply) self.textbuffer.insert_with_tags_by_name(end_iter(), "%s " % formatTime(elapsed), "emt") if self.showEval and level == 0 and board.fen_was_applied and board.plyCount in self.gamemodel.scores: moves, score, depth = self.gamemodel.scores[board.plyCount] score = score * -1 if board.color == BLACK else score endIter = self.textbuffer.get_iter_at_offset(end_iter().get_offset()) self.textbuffer.insert_with_tags_by_name(end_iter(), "%s " % prettyPrintScore(score, depth), "emt") for index, child in enumerate(board.children): if isinstance(child, basestring): # comment self.insert_comment(child, board, parent, index=index, level=level) else: # variation diff, opening_node = self.variation_start(end_iter(), -1, level) self.insert_nodes(child[0], level+1, parent=board) self.variation_end(end_iter(), -1, level, child[1], board, opening_node) if board.next: board = board.next else: break if result and result != "*": self.textbuffer.insert_with_tags_by_name(end_iter(), " "+result, "move") def insert_comment(self, comment, board, parent, index=0, level=0, ini_board=None): comment = re.sub("\[%.*?\]", "", comment) if not comment: return end_iter = self.textbuffer.get_end_iter() pos = len(self.nodelist) for n in self.nodelist: if n["board"] == board: if ini_board is not None: end_iter = self.textbuffer.get_iter_at_offset(n["start"]) else: end_iter = self.textbuffer.get_iter_at_offset(n["end"]) pos = self.nodelist.index(n) break start = end_iter.get_offset() self.textbuffer.insert_with_tags_by_name(end_iter, comment+" ", "comment") node = {} node["board"] = ini_board if ini_board is not None else board node["comment"] = comment node["index"] = index node["parent"] = parent node["level"] = level node["start"] = start node["end"] = end_iter.get_offset() self.nodelist.insert(pos if ini_board is not None else pos+1, node) return node def insert_header(self, gm): if gm.players: text = repr(gm.players[0]) else: return end_iter = self.textbuffer.get_end_iter self.textbuffer.insert_with_tags_by_name(end_iter(), text, "head2") white_elo = gm.tags.get('WhiteElo') if white_elo: self.textbuffer.insert_with_tags_by_name(end_iter(), " %s" % white_elo, "head1") self.textbuffer.insert_with_tags_by_name(end_iter(), " - ", "head1") #text = gm.tags['Black'] text = repr(gm.players[1]) self.textbuffer.insert_with_tags_by_name(end_iter(), text, "head2") black_elo = gm.tags.get('BlackElo') if black_elo: self.textbuffer.insert_with_tags_by_name(end_iter(), " %s" % black_elo, "head1") status = reprResult[gm.status] if status != '*': result = status else: result = gm.tags['Result'] self.textbuffer.insert_with_tags_by_name(end_iter(), ' ' + result + '\n', "head2") text = "" time_control = gm.tags.get('TimeControl') if time_control: mins, inc = time_control.split('+') mins = int(mins) / 60 mins = "{:.0f}".format(mins) if inc != '0': text += mins + ' mins + ' + inc + ' secs ' else: text += mins + ' mins ' event = gm.tags['Event'] if event and event != "?": text += event site = gm.tags['Site'] if site and site != "?": if len(text) > 0: text += ', ' text += site round = gm.tags['Round'] if round and round != "?": if len(text) > 0: text += ', ' text += _('round %s') % round game_date = gm.tags.get('Date') if game_date is None: game_date = "%02d.%02d.%02d" % (gm.tags['Year'], gm.tags['Month'], gm.tags['Day']) if (not '?' in game_date) and game_date.count('.') == 2: y, m, d = map(int, game_date.split('.')) # strftime() is limited to > 1900 dates try: text += ', ' + datetime.date(y, m, d).strftime('%x') except ValueError: text += ', ' + game_date elif not '?' in game_date[:4]: text += ', ' + game_date[:4] self.textbuffer.insert_with_tags_by_name(end_iter(), text, "head1") eco = gm.tags.get('ECO') if eco: self.textbuffer.insert_with_tags_by_name(end_iter(), "\n" + eco, "head2") opening = gm.tags.get('Opening') if opening: self.textbuffer.insert_with_tags_by_name(end_iter(), " - ", "head1") self.textbuffer.insert_with_tags_by_name(end_iter(), opening, "head2") variation = gm.tags.get('Variation') if variation: self.textbuffer.insert_with_tags_by_name(end_iter(), ", ", "head1") self.textbuffer.insert_with_tags_by_name(end_iter(), variation, "head2") self.textbuffer.insert(end_iter(), "\n\n") @idle_add def update(self, *args): """ Update the entire notation tree """ self.textbuffer.set_text('') self.nodelist = [] self.insert_header(self.gamemodel) status = reprResult[self.gamemodel.status] if status != '*': result = status else: result = self.gamemodel.tags['Result'] self.insert_nodes(self.gamemodel.boards[0].board, result=result) self.update_selected_node() @idle_add def shownChanged(self, boardview, shown): self.update_selected_node() @idle_add def moves_undone(self, game, moves): start = self.textbuffer.get_start_iter() end = self.textbuffer.get_end_iter() for node in reversed(self.nodelist): if node["board"].pieceBoard == self.gamemodel.variations[0][-1]: start = self.textbuffer.get_iter_at_offset(node["end"]) break else: self.nodelist.remove(node) self.textbuffer.delete(start, end) @idle_add def game_changed(self, game, ply): board = game.getBoardAtPly(ply, variation=0).board # if self.update() insterted all nodes before (f.e opening_changed), do nothing if self.nodelist and self.nodelist[-1]["board"] == board: return end_iter = self.textbuffer.get_end_iter start = end_iter().get_offset() movestr = self.__movestr(board) self.textbuffer.insert(end_iter(), "%s " % movestr) startIter = self.textbuffer.get_iter_at_offset(start) endIter = self.textbuffer.get_iter_at_offset(end_iter().get_offset()) self.textbuffer.apply_tag_by_name("move", startIter, endIter) self.colorize_node(board.plyCount, startIter, endIter) node = {} node["board"] = board node["start"] = startIter.get_offset() node["end"] = end_iter().get_offset() node["parent"] = None node["level"] = 0 self.nodelist.append(node) if self.showEmt and self.gamemodel.timed: elapsed = self.gamemodel.timemodel.getElapsedMoveTime(board.plyCount - self.gamemodel.lowply) self.textbuffer.insert_with_tags_by_name(end_iter(), "%s " % formatTime(elapsed), "emt") self.update_selected_node() def players_changed(self, model): log.debug("annotationPanel.players_changed: starting") self.update() log.debug("annotationPanel.players_changed: returning") def game_loaded(self, model, uri): for ply in range(min(40, model.ply)): model.setOpening(ply) self.update() def __movestr(self, board): move = board.lastMove if self.fan: movestr = unicode(toFAN(board.prev, move)) else: movestr = unicode(toSAN(board.prev, move, True)) nagsymbols = "".join([nag2symbol(nag) for nag in board.nags]) # To prevent wrap castling we will use hyphen bullet (U+2043) return "%s%s%s" % (move_count(board), movestr.replace('-', unicode('⁃')), nagsymbols) pychess-0.12.2/sidepanel/scorePanel.py0000755000175000017470000002335712653135361020203 0ustar tamasusers00000000000000from __future__ import print_function import sys from math import e from random import randint from gi.repository import Gtk, GObject from gi.repository import Gdk from pychess.System import uistuff from pychess.System.idle_add import idle_add from pychess.System.prefix import addDataPrefix from pychess.Utils.const import WHITE, DRAW, RUNNING, WHITEWON, BLACKWON from pychess.Utils.lutils import leval __title__ = _("Score") __icon__ = addDataPrefix("glade/panel_score.svg") __desc__ = _("The score panel tries to evaluate the positions and shows you a graph of the game progress") class Sidepanel: def load (self, gmwidg): self.boardview = gmwidg.board.view self.plot = ScorePlot(self.boardview) self.sw = __widget__ = Gtk.ScrolledWindow() __widget__.set_policy(Gtk.PolicyType.NEVER, Gtk.PolicyType.AUTOMATIC) port = Gtk.Viewport() port.add(self.plot) port.set_shadow_type(Gtk.ShadowType.NONE) __widget__.add(port) __widget__.show_all() self.plot.connect("selected", self.plot_selected) self.boardview.connect('shownChanged', self.shownChanged) self.boardview.model.connect_after("game_changed", self.game_changed) self.boardview.model.connect_after("moves_undone", self.moves_undone) self.boardview.model.connect_after("analysis_changed", self.analysis_changed) self.boardview.model.connect_after("game_started", self.game_started) uistuff.keepDown(__widget__) return __widget__ def moves_undone (self, model, moves): for i in range(moves): self.plot.undo() # As shownChanged will normally be emitted just after game_changed - # if we are viewing the latest position - we can do the selection change # now, and thereby avoid redraw being called twice if self.plot.selected == model.ply-model.lowply: self.plot.select(model.ply-model.lowply - moves) self.plot.redraw() def game_changed (self, model, ply): if len(self.plot)+model.lowply > ply: return for i in range(len(self.plot)+model.lowply, ply): if i in model.scores: points = model.scores[i][1] else: points = leval.evaluateComplete(model.getBoardAtPly(i).board, WHITE) self.plot.addScore(points) if model.status == DRAW: points = 0 elif model.status == WHITEWON: points = sys.maxsize elif model.status == BLACKWON: points = -sys.maxsize else: if ply in model.scores: points = model.scores[ply][1] else: points = leval.evaluateComplete(model.getBoardAtPly(ply).board, WHITE) self.plot.addScore(points) # As shownChanged will normally be emitted just after game_changed - # if we are viewing the latest position - we can do the selection change # now, and thereby avoid redraw being called twice if self.plot.selected == ply-model.lowply -1: self.plot.select(ply-model.lowply) self.plot.redraw() # Uncomment this to debug eval function return board = model.boards[-1].board opboard = model.boards[-1].clone().board opboard.setColor(1-opboard.color) material, phase = leval.evalMaterial (board) if board.color == WHITE: print("material", -material) e1 = leval.evalKingTropism (board) e2 = leval.evalKingTropism (opboard) print("evaluation: %d + %d = %d " % (e1, e2, e1+e2)) p1 = leval.evalPawnStructure (board, phase) p2 = leval.evalPawnStructure (opboard, phase) print("pawns: %d + %d = %d " % (p1, p2, p1+p2)) print("knights:",-leval.evalKnights (board)) print("king:",-leval.evalKing(board,phase)) else: print("material", material) print("evaluation:",leval.evalKingTropism (board)) print("pawns:", leval.evalPawnStructure (board, phase)) print("pawns2:", leval.evalPawnStructure (opboard, phase)) print("pawns3:", leval.evalPawnStructure (board, phase) + \ leval.evalPawnStructure (opboard, phase)) print("knights:",leval.evalKnights (board)) print("king:",leval.evalKing(board,phase)) print("----------------------") def game_started(self, model): self.game_changed(model, model.ply) def shownChanged (self, boardview, shown): if not boardview.shownIsMainLine(): return if self.plot.selected != shown: self.plot.select(shown-self.boardview.model.lowply) self.plot.redraw() adj = self.sw.get_vadjustment() y = self.plot.moveHeight*(shown-self.boardview.model.lowply) if y < adj.get_value() or y > adj.get_value() + adj.get_page_size(): adj.set_value(min(y, adj.get_upper()-adj.get_page_size())) def analysis_changed (self, gamemodel, ply): if self.boardview.animating: return if not self.boardview.shownIsMainLine(): return if ply-gamemodel.lowply > len(self.plot.scores)-1: # analysis line of yet undone position return color = (ply-1) % 2 score = gamemodel.scores[ply][1] score = score * -1 if color==WHITE else score self.plot.changeScore(ply-gamemodel.lowply, score) self.plot.select(ply) self.plot.redraw() def plot_selected (self, plot, selected): try: board = self.boardview.model.boards[selected] except IndexError: return self.boardview.setShownBoard(board) class ScorePlot (Gtk.DrawingArea): __gtype_name__ = "ScorePlot"+str(randint(0,sys.maxsize)) __gsignals__ = { "selected" : (GObject.SignalFlags.RUN_FIRST, None, (int,)) } def __init__ (self, boardview): GObject.GObject.__init__(self) self.boardview = boardview self.connect("draw", self.expose) self.connect("button-press-event", self.press) self.props.can_focus = True self.set_events(Gdk.EventMask.BUTTON_PRESS_MASK|Gdk.EventMask.KEY_PRESS_MASK) self.moveHeight = 12 self.scores = [] self.selected = 0 def addScore (self, score): self.scores.append(score) def changeScore(self, ply, score): if self.scores: self.scores[ply] = score def __len__ (self): return len(self.scores) def undo (self): del self.scores[-1] def select (self, index): self.selected = index def clear (self): del self.scores[:] @idle_add def redraw (self): if self.get_window(): a = self.get_allocation() rect = Gdk.Rectangle() rect.x, rect.y, rect.width, rect.height = (0, 0, a.width, a.height) self.get_window().invalidate_rect(rect, True) self.get_window().process_updates(True) def press (self, widget, event): self.grab_focus() self.emit('selected', event.y/self.moveHeight) def expose (self, widget, context): a = widget.get_allocation() context.rectangle(a.x, a.y, a.width, a.height) context.clip() self.draw(context) self.set_size_request(-1, (len(self.scores))*self.moveHeight) return False def draw (self, cr): m = self.boardview.model if m.isPlayingICSGame(): return width = self.get_allocation().width height = len(self.scores)*self.moveHeight ######################################## # Draw background # ######################################## cr.set_source_rgb (1, 1, 1) cr.rectangle(0, 0, width, height) cr.fill() ######################################## # Draw dark middle line # ######################################## cr.set_source_rgb (1, 0, 0) cr.move_to(width/2., 0) cr.line_to(width/2., height) cr.set_line_width(0.25) cr.stroke() ######################################## # Draw the actual plot (dark area) # ######################################## sign = lambda n: n == 0 and 1 or n/abs(n) if self.scores: mapper = lambda score: (e**(-5e-4*abs(score))-1) * sign(score) cr.set_source_rgb (0, 0, 0) cr.move_to(width, 0) cr.line_to(width/2 - width/2*mapper(self.scores[0]), 0) for i, score in enumerate(self.scores): x = width/2 - width/2*mapper(score) y = (i+1) * self.moveHeight cr.line_to(x, y) cr.line_to(width, height) cr.fill_preserve() ######################################## # Draw light middle line # ######################################## cr.save() cr.clip() cr.set_source_rgb (1, 1, 1) cr.move_to(width/2., 0) cr.line_to(width/2., height) cr.set_line_width(0.15) cr.stroke() cr.restore() ######################################## # Draw selection # ######################################## lw = 2. cr.set_line_width(lw) y = (self.selected)*self.moveHeight cr.rectangle(lw/2, y-lw/2, width-lw, self.moveHeight+lw) sc = self.get_style_context() found, color = sc.lookup_color("p_bg_selected") cr.set_source_rgba (color.red, color.green, color.blue, .15) cr.fill_preserve() cr.set_source_rgb (color.red, color.green, color.blue) cr.stroke() pychess-0.12.2/sidepanel/engineOutputPanel.py0000755000175000017470000003572512641567764021575 0ustar tamasusers00000000000000 # Authors: Jonas Thiem import re from gi.repository import Gtk, GObject, Pango from pychess.System import uistuff from pychess.System.idle_add import idle_add from pychess.System.Log import log from pychess.System.prefix import addDataPrefix from pychess.Utils.const import ARTIFICIAL from pychess.widgets.Background import set_textview_color __title__ = _("Engines") __icon__ = addDataPrefix("glade/panel_engineoutput.svg") white = addDataPrefix("glade/panel_engineoutput.svg") __desc__ = _("The engine output panel shows the thinking output of chess engines (computer players) during a game") class Sidepanel: def load (self, gmwidg): # Specify whether the panel should have a horizontal layout: horizontal = True if horizontal: self.box = Gtk.HBox() else: self.box = Gtk.VBox() __widget__ = self.box # Use two engine output widgets for each player color: self.output_white = EngineOutput(True) self.output_black = EngineOutput(False) if horizontal: self.output_separator = Gtk.VSeparator() else: self.output_separator = Gtk.HSeparator() self.output_noengines = Gtk.TextView() set_textview_color(self.output_noengines) self.output_noengines.get_buffer().set_text( _("No chess engines (computer players) are participating in this game.")) self.output_noengines.set_editable(False) self.output_noengines.set_wrap_mode(Gtk.WrapMode.WORD_CHAR) __widget__.pack_start(self.output_noengines, True, True, 0) __widget__.show_all() self.boardview = gmwidg.board.view self.boardview.model.connect_after("game_changed", self.game_changed) self.boardview.model.connect_after("players_changed", self.players_changed) self.boardview.model.connect_after("game_started", self.game_started) return __widget__ @idle_add def updateVisibleOutputs (self, model): # Check which players participate and update which views are visible gotplayers = False gotEnginePlayers = False gotWhiteEngine = False gotBlackEngine = False if len(model.players) > 0: if model.players[0].__type__ == ARTIFICIAL: gotWhiteEngine = True self.output_white.attachEngine(model.players[0].engine) if model.players[1].__type__ == ARTIFICIAL: gotBlackEngine = True self.output_black.attachEngine(model.players[1].engine) # First, detach from old engines: if not gotBlackEngine: self.output_black.detachEngine() if not gotWhiteEngine: self.output_white.detachEngine() if gotBlackEngine or gotWhiteEngine: # Remove "no engines" label: if self.output_noengines in self.box.get_children(): self.box.remove(self.output_noengines) # Add white engine info if white engine is participating: if gotWhiteEngine: if not self.output_white in self.box.get_children(): # Remove black output and separator first # to ensure proper ordering: if self.output_black in self.box.get_children(): self.box.remove(self.output_black) self.box.remove(self.output_separator) self.box.pack_start(self.output_white, True, True, 0) self.output_white.clear() self.output_white.show_all() self.output_white.setTitle(model.players[0].name) else: if self.output_white in self.box.get_children(): self.box.remove(self.output_white) self.box.remove(self.output_separator) # Add white engine info if black engine is participating: if gotBlackEngine: if not self.output_black in self.box.get_children(): if gotWhiteEngine: self.box.pack_start(self.output_separator, False, True, 0) self.output_separator.show() self.box.pack_start(self.output_black, True, True, 0) self.output_black.clear() self.output_black.show_all() self.output_black.setTitle(model.players[1].name) else: if self.output_black in self.box.get_children(): self.box.remove(self.output_black) self.box.remove(self.output_separator) else: # Show "no engines" label if self.output_white in self.box.get_children(): self.box.remove(self.output_white) if self.output_black in self.box.get_children(): self.box.remove(self.output_black) if not self.output_noengines in self.box.get_children(): self.box.pack_start(self.output_noengines, True, True, 0) return def players_changed (self, model): log.debug("engineOutputPanel.players_changed: starting") self.updateVisibleOutputs(model) log.debug("engineOutputPanel.players_changed: returning") return def game_started (self, model): self.updateVisibleOutputs(model) return def game_changed (self, model, ply): self.updateVisibleOutputs(model) return class EngineOutput (Gtk.VBox): def __init__(self, white=True): GObject.GObject.__init__(self) self.attached_engine = None # engine attached to which we listen self.white = white self.clear_on_output = False # next thinking line belongs to new move # Title bar: self.title_label = Gtk.Label() self.title_color = Gtk.Image() self.title_hbox = Gtk.HBox() #self.title_hbox.pack_start(self.title_color, False) self.title_hbox.pack_start(self.title_color, False, False, 0) #self.title_hbox.pack_start(self.title_label, True, True) self.title_hbox.pack_start(self.title_label, True, True, 0) # Set black or white player icon in front: if white == True: self.title_color.set_from_file(addDataPrefix("glade/white.png")) else: self.title_color.set_from_file(addDataPrefix("glade/black.png")) # output scrolled window container: self.output_container = Gtk.ScrolledWindow() self.output_container.set_policy(Gtk.PolicyType.AUTOMATIC, Gtk.PolicyType.AUTOMATIC) # scroll down on new output: -- not reliable with multilines added #uistuff.keepDown(self.output_container) # scroll down on new output: -- brute force variant def changed (vadjust): vadjust.set_value(vadjust.get_upper()-vadjust.get_page_size()) self.output_container.get_vadjustment().connect("changed", changed) # Text field for output: self.output = Gtk.TextView() set_textview_color(self.output) self.output_container.add(self.output) self.output.set_editable(False) self.output.set_wrap_mode(Gtk.WrapMode.WORD_CHAR) self.tag_bold = self.output.get_buffer().create_tag("bold", weight=Pango.Weight.BOLD) self.tag_color = self.output.get_buffer().create_tag("color", foreground="#0033ff") # Add all sub widgets to ourselves: #self.pack_start(self.title_hbox, False) #self.pack_start(self.output_container, True) self.pack_start(self.title_hbox, False, False, 0) self.pack_start(self.output_container, True, True, 0) # Precompile regexes we want to use: self.re_thinking_line_cecp = re.compile( r'^[0-9]+\.? +\-?[0-9]+ +' ) self.re_thinking_line_uci = re.compile( r'^info (.*) pv [a-hA-H][0-9][a-hA-H][0-9](.*)$' ) self.re_move_line_cecp_alg = re.compile( r'^(move +)?[a-hA-H][0-9][a-hA-H][0-9]$' ) self.re_move_line_cecp_san = re.compile( r'^(move +)?([QKNB]?[a-hA-H]?[xX@]?[a-hA-H][0-9]\+?#?|[oO]-[oO]-[oO]|[oO]-[oO])$' ) self.re_move_line_uci = re.compile( r'^bestmove +[a-hA-H][0-9][a-hA-H][0-9]( .*)?$' ) self.re_extract_cecp_all = re.compile( r'^([0-9]+)\.? +(\-?[0-9]+) +[0-9]+.?[0-9]* ([^ ].*)$' ) self.re_extract_uci_depth = re.compile( r'depth +([0-9]+) +' ) self.re_extract_uci_score = re.compile( r'score cp +(-?[0-9]+) +' ) self.re_extract_uci_score_mate_other = re.compile( r'score +mate +([0-9]+) +' ) self.re_extract_uci_score_mate_us = re.compile( r'score +mate +\-([0-9]+) +' ) self.re_extract_uci_score_lowerbound = re.compile( r'score +lowerbound +' ) self.re_extract_uci_score_upperbound = re.compile( r'score +upperbound +' ) self.re_extract_uci_pv = re.compile( r'pv +([a-hA-HoO].*[^ ]) *$' ) def _del (self): self.detachEngine() @idle_add def appendNewline (self): # Start a new line if text output isn't empty: if self.output.get_buffer().get_char_count() > 0: # We have old content, append newline self.output.get_buffer().insert(self.output.get_buffer(). get_end_iter(), "\n") @idle_add def append (self, line, tag=None): # Append a specific string with the given formatting: oldenditer = self.output.get_buffer().get_end_iter() self.output.get_buffer().insert(self.output.get_buffer(). get_end_iter(), line) if not tag is None: enditer = self.output.get_buffer().get_end_iter() startiter = enditer.copy() startiter.backward_chars(len(line)) self.output.get_buffer().apply_tag(tag, startiter, enditer) def appendThinking (self, depth, score, pv): # Append a formatted thinking line: self.appendNewline(); self.append(depth.__str__() + ". ", self.tag_color) self.append("Score: ", self.tag_bold) self.append(score.__str__() + " ") self.append("PV: ", self.tag_bold) self.append(pv.__str__()) def parseInfoLine (self, line): # Parse an identified info line and add it to our output: if self.clear_on_output == True: self.clear_on_output = False self.clear() # Clean up line first: while line.find(" ") != -1: line = line.replace(" ", " ") depth = "?" score = "?" pv = "?" infoFound = False # do more sophisticated parsing here: if line.startswith("info "): # UCI info line # always end with a space to faciliate searching: line = line + " " # parse depth: result = self.re_extract_uci_depth.search(line) if result: depth = result.group(1) # parse score: result = self.re_extract_uci_score.search(line) if result: score = result.group(1) else: result = self.re_extract_uci_score_mate_other.search(line) if result: score = "winning in " + result.group(1) + " moves" else: result = self.re_extract_uci_score_mate_us.search(line) if result: score = "losing in " + result.group(1) + " moves" else: if self.re_extract_uci_score_lowerbound.search(line): score = "lowerbound" elif self.re_extract_uci_score_upperbound.search(line): score = "upperbound" # parse pv: result = self.re_extract_uci_pv.search(line) if result: infoFound = True pv = result.group(1) else: # CECP/Winboard/GNUChess info line # parse all information in one go: result = self.re_extract_cecp_all.match(line) if not result: return infoFound = True depth = result.group(1) score = result.group(2) pv = result.group(3) # Clean pv of unwanted chars: pv = re.sub( '[^a-z^A-Z^0-9^ ^x^@^?]', '', pv ) # If we found useful information, show it: if infoFound: self.appendThinking(depth, score, pv) def parseLine (self, engine, line): # Clean up the line a bit: line = line.strip(" \r\t\n") line = line.replace("\t", " ") # PARSING THINKING OUTPUT (roughly, simply identifies the lines): # GNU Chess/CECP/Winboard engine thinking output lines: if self.re_thinking_line_cecp.match(line): self.parseInfoLine(line) # UCI engine thinking output lines: if self.re_thinking_line_uci.match(line): if line.find("depth") != -1 and line.find("score") != -1: self.parseInfoLine(line) # PARSE MOVE LINES (roughly, we merely identify them): # We want to clear on the next output info line # when a move arrived, so that for every move # we freshly fill our thinking output: # CECP/Winboard move line, long algebraeic notation: if self.re_move_line_cecp_alg.match(line): self.clear_on_output = True # CECP/Winboard move line, SAN notation: if self.re_move_line_cecp_san.match(line): self.clear_on_output = True # UCI move line: if self.re_move_line_uci.match(line): self.clear_on_output = True return @idle_add def clear (self): self.output.get_buffer().set_text("") return def setTitle (self, title): self.title_label.set_text(title) return def attachEngine (self, engine): # Attach an engine for line listening if not self.attached_engine is None: if self.attached_engine == engine: # We are already attached to this engine return # Detach from previous engine self.attached_engine.disconnect(self.attached_handler_id) # Attach to new engine: log.debug("Attaching " + self.__str__() + " to engine " + engine.__str__(), extra={"task":engine.defname}) self.attached_engine = engine self.attached_handler_id = engine.connect("line", self.parseLine) return def detachEngine (self): # Detach from attached engine if not self.attached_engine is None: log.debug("Detaching " + self.__str__() + " from engine " + self.attached_engine.__str__(), extra={"task":self.attached_engine.defname}) self.attached_engine.disconnect(self.attached_handler_id) self.attached_engine = None def __repr__(self): color = "black" if self.white: color = "white" return "Engine Output " + color + " #" + id(self).__str__() # def __str__(self): # return repr(self) + " (engine: " + self.attached_engine.__str__() + ")" pychess-0.12.2/sidepanel/history.glade0000755000175000017470000000654512641567764020252 0ustar tamasusers00000000000000 False window1 True True never automatic True False none True False 35 True False False False True False False True 0 60 True True False True False True True 1 60 True True False True False True True 2 pychess-0.12.2/sidepanel/bookPanel.py0000644000175000017470000006722212653135361020016 0ustar tamasusers00000000000000import os from gi.repository import Gdk, Gtk, GObject, Pango, PangoCairo from threading import Thread from pychess.compat import Queue, Full from pychess.System import conf, fident, uistuff from pychess.Utils import prettyPrintScore from pychess.Utils.const import * from pychess.Utils.book import getOpenings from pychess.Utils.eco import get_eco from pychess.Utils.logic import legalMoveCount from pychess.Utils.EndgameTable import EndgameTable from pychess.Utils.Move import Move, toSAN, toFAN, listToMoves from pychess.Utils.lutils.lmovegen import newMove from pychess.Utils.lutils.lmove import ParsingError from pychess.System.prefix import addDataPrefix from pychess.System.Log import log from pychess.System.idle_add import idle_add __title__ = _("Hints") __icon__ = addDataPrefix("glade/panel_book.svg") __desc__ = _("The hint panel will provide computer advice during each stage of the game") __about__ = _("Official PyChess panel.") class Advisor (object): def __init__ (self, store, name, mode): """ The tree store's columns are: (Board, Move, pv) Indicate the suggested move text or barWidth or goodness Indicate its strength (last 2 are 0 to 1.0) pvlines Number of analysis lines for analysing engines is pvlines editable Boolean Details Describe a PV, opening name, etc. star/stop Boolean HINT, SPY analyzing toggle button state is start/stop visible Boolean """ self.store = store self.name = name self.mode = mode store.append(None, self.textOnlyRow(name, mode)) @property def path(self): for i, row in enumerate(self.store): if row[4] == self.name: return (i,) def shownChanged (self, boardview, shown): """ Update the suggestions to match a changed position. """ pass def gamewidget_closed (self, gamewidget): pass def child_tooltip (self, i): """ Return a tooltip (or empty) string for the given child row. """ return "" def row_activated (self, path, model): """ Act on a double-clicked child row other than a move suggestion. """ pass def query_tooltip (self, path): indices = path.get_indices() if not indices[1:]: return self.tooltip return self.child_tooltip(indices[1]) def empty_parent (self): while True: parent = self.store.get_iter(self.path) child = self.store.iter_children(parent) if not child: return parent self.store.remove(child) def textOnlyRow(self, text, mode=None): return [(None, None, None), ("", 0, None), 0, False, text, False, mode in (HINT, SPY)] class OpeningAdvisor(Advisor): def __init__ (self, store, tv): Advisor.__init__(self, store, _("Opening Book"), OPENING) self.tooltip = _("The opening book will try to inspire you during the opening phase of the game by showing you common moves made by chess masters") # self.opening_names = [] self.tv = tv def shownChanged (self, boardview, shown): m = boardview.model if m.isPlayingICSGame(): return b = m.getBoardAtPly(shown, boardview.shown_variation_idx) parent = self.empty_parent() openings = getOpenings(b.board) openings.sort(key=lambda t: t[1], reverse=True) if not openings: return totalWeight = 0.0 # Polyglot-formatted books have space for learning data. # See version ac31dc37ec89 for an attempt to parse it. # In this version, we simply ignore it. (Most books don't have it.) for move, weight, games, score in openings: totalWeight += weight self.opening_names = [] for move, weight, games, score in openings: if totalWeight != 0: weight /= totalWeight goodness = min(weight * len(openings), 1.0) weight = "%0.1f%%" % (100 * weight) opening = get_eco(b.move(Move(move)).board.hash) if opening is None: eco = "" # self.opening_names.append("") else: eco = "%s - %s %s" % (opening[0], opening[1], opening[2]) # self.opening_names.append("%s %s" % (opening[1], opening[2])) self.store.append(parent, [(b, Move(move), None), (weight, 1, goodness), 0, False, eco, False, False]) tp = Gtk.TreePath(self.path) self.tv.expand_row(tp, False) # def child_tooltip (self, i): # return "" if len(self.opening_names)==0 else self.opening_names[i] class EngineAdvisor(Advisor): # An EngineAdvisor always has self.linesExpected rows reserved for analysis. def __init__ (self, store, engine, mode, tv, boardview): if mode == HINT: Advisor.__init__(self, store, _("Analysis by %s") % engine, HINT) self.tooltip = _("%s will try to predict which move is best and which side has the advantage") % engine else: Advisor.__init__(self, store, _("Threat analysis by %s") % engine, SPY) self.tooltip = _("%s will identify what threats would exist if it were your opponent's turn to move") % engine self.engine = engine self.tv = tv self.active = False self.linesExpected = 1 self.boardview = boardview self.connection = engine.connect("analyze", self.on_analyze) engine.connect("readyForOptions", self.on_ready_for_options) def _del (self): self.engine.disconnect(self.connection) def _create_new_expected_lines(self): parent = self.empty_parent() for line in range(self.linesExpected): self.store.append(parent, self.textOnlyRow(_("Calculating..."))) self.tv.expand_row(Gtk.TreePath(self.path), False) return parent def shownChanged (self, boardview, shown): m = boardview.model if m.isPlayingICSGame(): return if not self.active: return self.engine.setBoard(boardview.model.getBoardAtPly(shown, boardview.shown_variation_idx)) self._create_new_expected_lines() def on_ready_for_options (self, engine): engineMax = self.engine.maxAnalysisLines() self.linesExpected = min(conf.get("multipv", 1), engineMax) m = self.boardview.model if m.isPlayingICSGame(): return parent = self._create_new_expected_lines() # set pvlines, but set it 0 if engine max is only 1 self.store.set_value(parent, 2, 0 if engineMax==1 else self.linesExpected) # set it editable self.store.set_value(parent, 3, engineMax>1) # set start/stop cb visible self.store.set_value(parent, 6, True) self.active = True self.shownChanged(self.boardview, self.boardview.shown) @idle_add def on_analyze (self, engine, analysis): if self.boardview.animating: return m = self.boardview.model if m.isPlayingICSGame(): return if not self.active: return is_FAN = conf.get("figuresInNotation", False) for i, line in enumerate(analysis): if line is None: self.store[self.path + (i,)] = self.textOnlyRow("") continue board0 = self.engine.board board = board0.clone() movstrs, score, depth = line try: pv = listToMoves(board, movstrs, validate=True) except ParsingError as e: # ParsingErrors may happen when parsing "old" lines from # analyzing engines, which haven't yet noticed their new tasks log.debug("__parseLine: Ignored (%s) from analyzer: ParsingError%s" % \ (' '.join(movstrs),e)) return except: return move = None if pv: move = pv[0] ply0 = board.ply if self.mode == HINT else board.ply+1 counted_pv = [] for j, pvmove in enumerate(pv): ply = ply0 + j if ply % 2 == 0: mvcount = "%d." % (ply/2+1) elif j==0: mvcount = "%d..." % (ply/2+1) else: mvcount = "" counted_pv.append("%s%s" % (mvcount, toFAN(board, pvmove) if is_FAN else toSAN(board, pvmove, True))) board = board.move(pvmove) goodness = (min(max(score, -250), 250) + 250) / 500.0 if self.engine.board.color == BLACK: score = -score self.store[self.path + (i,)] = [(board0, move, pv), (prettyPrintScore(score, depth), 1, goodness), 0, False, " ".join(counted_pv), False, False] def start_stop(self, tb): if not tb: self.active = True self.boardview.model.resume_analyzer(self.mode) self.shownChanged(self.boardview, self.boardview.shown) else: self.active = False self.boardview.model.pause_analyzer(self.mode) def multipv_edited(self, value): if value > self.engine.maxAnalysisLines(): return if value != self.linesExpected: self.engine.requestMultiPV(value) parent = self.store.get_iter(self.path) if value > self.linesExpected: while self.linesExpected < value: self.store.append(parent, self.textOnlyRow(_("Calculating..."))) self.linesExpected += 1 else: while self.linesExpected > value: child = self.store.iter_children(parent) if child is not None: self.store.remove(child) self.linesExpected -= 1 def row_activated (self, iter, model): if self.mode == HINT and self.store.get_path(iter) != Gtk.TreePath(self.path): moves = self.store[iter][0][2] if moves is not None: score = self.store[iter][1][0] model.add_variation(self.engine.board, moves, comment="", score=score) if self.mode == SPY and self.store.get_path(iter) != Gtk.TreePath(self.path): moves = self.store[iter][0][2] if moves is not None: score = self.store[iter][1][0] board = self.engine.board.board # SPY analyzer has inverted color boards # we need to chage it to get the board in gamemodel variations board list later board.setColor(1-board.color) king = board.kings[board.color] null_move = Move(newMove(king, king, NULL_MOVE)) model.add_variation(self.engine.board, [null_move] + moves, comment="", score=score) def child_tooltip (self, i): if self.active: if i < self.linesExpected: return _("Engine scores are in units of pawns, from White's point of view. Double clicking on analysis lines you can insert them into Annotation panel as variations.") else: return _("Adding suggestions can help you find ideas, but slows down the computer's analysis.") return "" class EndgameAdvisor(Advisor, Thread): def __init__ (self, store, tv, boardview): Thread.__init__(self, name=fident(self.run)) self.daemon = True # FIXME 'Advisor.name = ...' in Advisor.__init__ overwrites Thread.name Advisor.__init__(self, store, _("Endgame Table"), ENDGAME) self.egtb = EndgameTable() self.tv = tv self.boardview = boardview self.tooltip = _("The endgame table will show exact analysis when there are few pieces on the board.") # TODO: Show a message if tablebases for the position exist but are neither installed nor allowed. self.egtb.connect("scored", self.on_scored) self.queue = Queue() self.start() class StopNow (Exception): pass def run (self): while True: v = self.queue.get() if v == self.StopNow: break elif v == self.board.board: self.egtb.scoreAllMoves(v) self.queue.task_done() def shownChanged (self, boardview, shown): m = boardview.model if m.isPlayingICSGame(): return self.parent = self.empty_parent() self.board = m.getBoardAtPly(shown, boardview.shown_variation_idx) self.queue.put(self.board.board) def gamewidget_closed (self, gamewidget): try: self.queue.put_nowait(self.StopNow) except Full: log.warning("EndgameAdvisor.gamewidget_closed: Queue.Full") @idle_add def on_scored(self, w, ret): m = self.boardview.model if m.isPlayingICSGame(): return board, endings = ret if board != self.board.board: return for move, result, depth in endings: if result == DRAW: result = (_("Draw"), 1, 0.5) details = "" elif (result == WHITEWON) ^ (self.board.color == WHITE): result = (_("Loss"), 1, 0.0) details = _("Mate in %d") % depth else: result = (_("Win"), 1, 1.0) details = _("Mate in %d") % depth self.store.append(self.parent, [(self.board, move, None), result, 0, False, details, False, False]) self.tv.expand_row(Gtk.TreePath(self.path), False) class Sidepanel (object): def load (self, gmwidg): self.boardcontrol = gmwidg.board self.boardview = self.boardcontrol.view widgets = Gtk.Builder() widgets.add_from_file(addDataPrefix("sidepanel/book.glade")) self.tv = widgets.get_object("treeview") self.sw = widgets.get_object("scrolledwindow") self.sw.unparent() self.store = Gtk.TreeStore(GObject.TYPE_PYOBJECT, GObject.TYPE_PYOBJECT, int, bool, str, bool, bool) self.tv.set_model(self.store) ### move suggested moveRenderer = Gtk.CellRendererText() moveRenderer.set_property("xalign", 1.0) moveRenderer.set_property("yalign", 0) c0 = Gtk.TreeViewColumn("Move", moveRenderer) def getMoveText(column, cell, store, iter, data): board, move, pv = store[iter][0] if not move: cell.set_property("text", "") else: if conf.get("figuresInNotation", False): cell.set_property("text", toFAN(board, move)) else: cell.set_property("text", toSAN(board, move, True)) c0.set_cell_data_func(moveRenderer, getMoveText) ### strength of the move c1 = Gtk.TreeViewColumn("Strength", StrengthCellRenderer(), data=1) ### multipv (number of analysis lines) multipvRenderer = Gtk.CellRendererSpin() adjustment = Gtk.Adjustment(value=conf.get("multipv", 1), lower=1, upper=9, step_incr=1) multipvRenderer.set_property("adjustment", adjustment) multipvRenderer.set_property("editable", True) multipvRenderer.set_property("width_chars", 1) c2 = Gtk.TreeViewColumn("PV", multipvRenderer, editable=3) c2.set_property("min_width", 80) def spin_visible(column, cell, store, iter, data): if store[iter][2] == 0: cell.set_property('visible', False) else: cell.set_property("text", str(store[iter][2])) cell.set_property('visible', True) c2.set_cell_data_func(multipvRenderer, spin_visible) def multipv_edited(renderer, path, text): iter = self.store.get_iter(path) self.store.set_value(iter, 2, int(text)) self.advisors[int(path[0])].multipv_edited(int(text)) multipvRenderer.connect('edited', multipv_edited) ### start/stop button for analysis engines toggleRenderer = CellRendererPixbufXt() toggleRenderer.set_property("stock-id", "gtk-add") c4 = Gtk.TreeViewColumn("StartStop", toggleRenderer) def cb_visible(column, cell, store, iter, data): if not store[iter][6]: cell.set_property('visible', False) else: cell.set_property('visible', True) if store[iter][5]: cell.set_property("stock-id", "gtk-add") else: cell.set_property("stock-id", "gtk-remove") c4.set_cell_data_func(toggleRenderer, cb_visible) def toggled_cb(cell, path): self.store[path][5] = not self.store[path][5] self.advisors[int(path[0])].start_stop(self.store[path][5]) toggleRenderer.connect('clicked', toggled_cb) self.tv.append_column(c4) self.tv.append_column(c0) self.tv.append_column(c1) self.tv.append_column(c2) ### header text, or analysis line uistuff.appendAutowrapColumn(self.tv, "Details", text=4) self.boardview.connect("shownChanged", self.shownChanged) self.tv.connect("cursor_changed", self.selection_changed) self.tv.connect("select_cursor_row", self.selection_changed) self.tv.connect("row-activated", self.row_activated) self.tv.connect("query-tooltip", self.query_tooltip) self.tv.props.has_tooltip = True self.tv.set_property("show-expanders", False) self.advisors = [] if conf.get("opening_check", 0): self.advisors.append(OpeningAdvisor(self.store, self.tv)) if conf.get("endgame_check", 0): advisor = EndgameAdvisor(self.store, self.tv, self.boardview) self.advisors.append(advisor) gmwidg.connect("closed", advisor.gamewidget_closed) gmwidg.gamemodel.connect("analyzer_added", self.on_analyzer_added) gmwidg.gamemodel.connect("analyzer_removed", self.on_analyzer_removed) gmwidg.gamemodel.connect("analyzer_paused", self.on_analyzer_paused) gmwidg.gamemodel.connect("analyzer_resumed", self.on_analyzer_resumed) def on_opening_check(none): if conf.get("opening_check", 0): advisor = OpeningAdvisor(self.store, self.tv) self.advisors.append(advisor) advisor.shownChanged(self.boardview, self.boardview.shown) else: for advisor in self.advisors: if advisor.mode == OPENING: parent = advisor.empty_parent() self.store.remove(parent) self.advisors.remove(advisor) conf.notify_add("opening_check", on_opening_check) def on_opening_file_entry_changed(none): default_path = os.path.join(addDataPrefix("pychess_book.bin")) path = conf.get("opening_file_entry", default_path) if os.path.isfile(path): for advisor in self.advisors: if advisor.mode == OPENING: advisor.shownChanged(self.boardview, self.boardview.shown) conf.notify_add("opening_file_entry", on_opening_file_entry_changed) def on_endgame_check(none): if conf.get("endgame_check", 0): advisor = EndgameAdvisor(self.store, self.tv, self.boardview) self.advisors.append(advisor) advisor.shownChanged(self.boardview, self.boardview.shown) gmwidg.connect("closed", advisor.gamewidget_closed) else: for advisor in self.advisors: if advisor.mode == ENDGAME: advisor.gamewidget_closed(gmwidg) parent = advisor.empty_parent() self.store.remove(parent) self.advisors.remove(advisor) conf.notify_add("endgame_check", on_endgame_check) return self.sw def on_analyzer_added(self, gamemodel, analyzer, analyzer_type): if analyzer_type == HINT: self.advisors.append(EngineAdvisor(self.store, analyzer, HINT, self.tv, self.boardview)) if analyzer_type == SPY: self.advisors.append(EngineAdvisor(self.store, analyzer, SPY, self.tv, self.boardview)) def on_analyzer_removed(self, gamemodel, analyzer, analyzer_type): for advisor in self.advisors: if advisor.mode == analyzer_type: advisor.active = False parent = advisor.empty_parent() self.store.remove(parent) self.advisors.remove(advisor) def on_analyzer_paused(self, gamemodel, analyzer, analyzer_type): for advisor in self.advisors: if advisor.mode == analyzer_type: advisor.active = False self.store[advisor.path][5] = True advisor.empty_parent() def on_analyzer_resumed(self, gamemodel, analyzer, analyzer_type): for advisor in self.advisors: if advisor.mode == analyzer_type: self.store[advisor.path][5] = False advisor.active = True advisor.shownChanged(self.boardview, self.boardview.shown) @idle_add def shownChanged (self, boardview, shown): boardview.bluearrow = None if legalMoveCount(boardview.model.getBoardAtPly(shown, boardview.shown_variation_idx)) == 0: if self.sw.get_child() == self.tv: self.sw.remove(self.tv) label = Gtk.Label(_("In this position,\nthere is no legal move.")) label.set_property("yalign",0.1) self.sw.add_with_viewport(label) self.sw.get_child().set_shadow_type(Gtk.ShadowType.NONE) self.sw.show_all() return for advisor in self.advisors: advisor.shownChanged(boardview, shown) self.tv.expand_all() if self.sw.get_child() != self.tv: log.warning("bookPanel.Sidepanel.shownChanged: get_child() != tv") self.sw.remove(self.sw.get_child()) self.sw.add(self.tv) def selection_changed (self, widget, *args): iter = self.tv.get_selection().get_selected()[1] if iter: board, move, pv = self.store[iter][0] if move is not None: self.boardview.bluearrow = move.cords return self.boardview.bluearrow = None def row_activated (self, widget, *args): iter = self.tv.get_selection().get_selected()[1] if iter is None: return board, move, pv = self.store[iter][0] # The row may be tied to a specific action. path = self.store.get_path(iter) indices = path.get_indices() if indices: self.advisors[indices[0]].row_activated(iter, self.boardview.model) def query_tooltip(self, treeview, x, y, keyboard_mode, tooltip): # First, find out where the pointer is: path_col_x_y = treeview.get_path_at_pos (x, y) # If we're not pointed at a row, then return FALSE to say # "don't show a tip". if not path_col_x_y: return False # Otherwise, ask the TreeView to set up the tip's area according # to the row's rectangle. path, col, x, y = path_col_x_y if not path: return False treeview.set_tooltip_row(tooltip, path) # And ask the advisor for some text indices = path.get_indices() if indices: text = self.advisors[indices[0]].query_tooltip(path) if text: label = Gtk.Label() label.props.wrap = True label.props.width_chars = 60 label.props.max_width_chars = 60 label.set_text(text) tooltip.set_custom(label) #tooltip.set_markup(text) return True # Show the tip. return False ################################################################################ # StrengthCellRenderer # ################################################################################ width, height = 80, 23 class StrengthCellRenderer (Gtk.CellRenderer): __gproperties__ = { "data": (GObject.TYPE_PYOBJECT, "Data", "Data", GObject.PARAM_READWRITE), } def __init__(self): Gtk.CellRenderer.__init__(self) self.data = None def do_set_property(self, pspec, value): setattr(self, pspec.name, value) def do_get_property(self, pspec): return getattr(self, pspec.name) def do_render(self, context, widget, background_area, cell_area, flags): if not self.data: return text, widthfrac, goodness = self.data if widthfrac: paintGraph(context, widthfrac, stoplightColor(goodness), cell_area) if text: layout = PangoCairo.create_layout(context) layout.set_text(text, -1) fd = Pango.font_description_from_string ("Sans 10") layout.set_font_description(fd) w, h = layout.get_pixel_size() context.move_to (cell_area.x, cell_area.y) context.rel_move_to( 70 - w, (height - h) / 2) PangoCairo.show_layout(context, layout) def do_get_size(self, widget, cell_area=None): return (0, 0, width, height) GObject.type_register(StrengthCellRenderer) ################################################################################ # StrengthCellRenderer functions # ################################################################################ from math import ceil def stoplightColor (x): interp = lambda y0, yh, y1 : y0 + (y1+4*yh-3*y0) * x + (-4*yh+2*y0) * x*x r = interp(239, 252, 138) / 255 g = interp( 41, 233, 226) / 255 b = interp( 41, 79, 52) / 255 return r, g, b def paintGraph (cairo, widthfrac, rgb, rect): x,y,w0,h = rect.x, rect.y, rect.width, rect.height w = ceil(widthfrac * w0) cairo.save() cairo.rectangle(x,y,w,h) cairo.clip() cairo.move_to(x+10, y) cairo.rel_line_to(w-20, 0) cairo.rel_curve_to(10, 0, 10, 0, 10, 10) cairo.rel_line_to(0, 3) cairo.rel_curve_to(0, 10, 0, 10, -10, 10) cairo.rel_line_to(-w+20, 0) cairo.rel_curve_to(-10, 0, -10, 0, -10, -10) cairo.rel_line_to(0, -3) cairo.rel_curve_to(0, -10, 0, -10, 10, -10) cairo.set_source_rgb(*rgb) cairo.fill() cairo.restore() # cell renderer for start-stop putton class CellRendererPixbufXt(Gtk.CellRendererPixbuf): __gproperties__ = { 'active-state' : (GObject.TYPE_STRING, 'pixmap/active widget state', 'stock-icon name representing active widget state', None, GObject.PARAM_READWRITE) } __gsignals__ = { 'clicked' : (GObject.SignalFlags.RUN_LAST, None, (GObject.TYPE_STRING,)) , } def __init__( self ): GObject.GObject.__init__( self ) self.set_property( 'mode', Gtk.CellRendererMode.ACTIVATABLE ) def do_get_property( self, property ): if property.name == 'active-state': return self.active_state else: raise AttributeError('unknown property %s' % property.name) def do_set_property( self, property, value ): if property.name == 'active-state': self.active_state = value else: raise AttributeError('unknown property %s' % property.name) def do_activate( self, event, widget, path, background_area, cell_area, flags ): if event.type == Gdk.EventType.BUTTON_PRESS: self.emit('clicked', path) #def do_clicked(self, path): #print "do_clicked", path GObject.type_register(CellRendererPixbufXt) pychess-0.12.2/sidepanel/commentPanel.py0000755000175000017470000002273712653135361020533 0ustar tamasusers00000000000000# -*- coding: UTF-8 -*- from gi.repository import Gtk, Pango from pychess.System import uistuff from pychess.System.prefix import addDataPrefix from pychess.System.idle_add import idle_add from pychess.Utils.const import * from pychess.Utils.repr import reprColor, reprPiece from pychess.Utils.lutils.lsort import staticExchangeEvaluate from pychess.Utils.lutils.lmove import FLAG, TCORD, FCORD, toSAN from pychess.Utils.lutils.lmovegen import genCaptures from pychess.Utils.lutils.leval import evalMaterial from pychess.Utils.lutils import ldata from pychess.Utils.lutils import strateval __title__ = _("Comments") __icon__ = addDataPrefix("glade/panel_comments.svg") __desc__ = _("The comments panel will try to analyze and explain the moves played") class Switch: def __init__(self): self.on = False def __enter__(self): self.on = True def __exit__(self, *a): self.on = False class Sidepanel: def __init__ (self): self.givenTips = {} def load (self, gmwidg): self.gamemodel = gmwidg.board.view.model self.gmhandlers = [ self.gamemodel.connect_after("game_changed", self.game_changed), self.gamemodel.connect_after("game_started", self.game_started), self.gamemodel.connect_after("moves_undone", self.moves_undone) ] widgets = Gtk.Builder() widgets.add_from_file(addDataPrefix("sidepanel/book.glade")) self.tv = widgets.get_object("treeview") scrollwin = widgets.get_object("scrolledwindow") scrollwin.unparent() self.store = Gtk.ListStore(str) self.tv.set_model(self.store) self.tv.get_selection().set_mode(Gtk.SelectionMode.BROWSE) uistuff.appendAutowrapColumn(self.tv, "Comment", text=0) self.tv.get_selection().connect_after('changed', self.select_cursor_row) self.boardview = gmwidg.board.view self.boardview.connect("shownChanged", self.shownChanged) self.frozen = Switch() return scrollwin def select_cursor_row (self, selection): iter = selection.get_selected()[1] if iter == None: return if self.frozen.on: return path = self.tv.get_model().get_path(iter) indices = path.get_indices() if indices: row = indices[0] board = self.gamemodel.boards[row] self.boardview.setShownBoard(board) def shownChanged (self, boardview, shown): if not boardview.shownIsMainLine(): return row = shown - self.gamemodel.lowply with self.frozen: try: iter = self.store.get_iter(row) self.tv.get_selection().select_iter(iter) self.tv.scroll_to_cell(row) except ValueError: pass # deleted variations by moves_undoing @idle_add def moves_undone (self, game, moves): model = self.tv.get_model() for i in range(moves): model.remove(model.get_iter( (len(model)-1,) )) def game_started (self, model): self.game_changed(model, model.ply) @idle_add def game_changed (self, model, ply): for i in range(len(self.store)+model.lowply, ply+1): self.addComment(model, self.__chooseComment(model, i)) self.shownChanged (self.boardview, ply) def addComment (self, model, comment): self.store.append([comment]) # If latest ply is shown, we select the new latest iter = self.tv.get_selection().get_selected()[1] if iter: path = self.tv.get_model().get_path(iter) indices = path.get_indices() if indices: row = indices[0] if row < self.boardview.shown-1: return if self.boardview.shown >= model.ply: iter = self.store.get_iter(len(self.store)-1) with self.frozen: self.tv.get_selection().select_iter(iter) def __chooseComment(self, model, ply): if ply == model.lowply: return _("Initial position") ######################################################################## # Set up variables ######################################################################## color = model.getBoardAtPly(ply-1).board.color s, phase = evalMaterial (model.getBoardAtPly(ply).board, model.getBoardAtPly(ply-1).color) # * Final: Will be shown alone: "mates", "draws" # * Prefix: Will always be shown: "castles", "promotes" # * Attack: Will always be shown: "threaten", "preassures", "defendes" # * Moves (s): Will always be shown: "put into *" # * State: (s) Will always be shown: "new *" # * Simple: (s) Max one will be shown: "develops", "activity" # * Tip: (s) Will sometimes be shown: "pawn storm", "cramped position" ######################################################################## # Call strategic evaluation functions ######################################################################## def getMessages (prefix): messages = [] for functionName in dir(strateval): if not functionName.startswith(prefix+"_"): continue function = getattr(strateval, functionName) messages.extend(function (model, ply, phase)) return messages #move = model.moves[-1].move #print "----- %d - %s -----" % (model.ply/2, toSAN(oldboard, move)) # ---------------------------------------------------------------------- # Final # ---------------------------------------------------------------------- messages = getMessages ("final") if messages: return "%s %s" % (reprColor[color], messages[0]) # --- strings = [] # ---------------------------------------------------------------------- # Attacks # ---------------------------------------------------------------------- messages = getMessages ("attack") for message in messages: strings.append("%s %s" % (reprColor[color], message)) # ---------------------------------------------------------------------- # Check for prefixes # ---------------------------------------------------------------------- messages = getMessages ("prefix") if messages: prefix = messages[0] else: prefix = "" # ---------------------------------------------------------------------- # Check for special move stuff. All of which accept prefixes # ---------------------------------------------------------------------- for message in getMessages("offencive_moves") \ + getMessages("defencive_moves"): if prefix: strings.append("%s %s %s %s" % (reprColor[color], prefix, _("and")+"\n", message)) prefix = "" else: strings.append("%s %s" % (reprColor[color], message)) # ---------------------------------------------------------------------- # Simple # ---------------------------------------------------------------------- # We only add simples if there hasn't been too much stuff to say if not strings: messages = getMessages ("simple") if messages: messages.sort(reverse=True) score, message = messages[0] if prefix: strings.append("%s %s %s %s" % (reprColor[color], prefix, _("and")+"\n", message)) prefix = "" # ---------------------------------------------------------------------- # Prefix fallback # ---------------------------------------------------------------------- # There was nothing to apply the prefix to, so we just post it here # before the states and tips if prefix: strings.append("%s %s" % (reprColor[color], prefix)) prefix = "" # ---------------------------------------------------------------------- # State # ---------------------------------------------------------------------- messages = getMessages("state") messages.sort(reverse=True) for score, message in messages: strings.append(message) # ---------------------------------------------------------------------- # Tips # ---------------------------------------------------------------------- tips = getMessages("tip") tips.sort(reverse=True) for (score, tip) in tips: if tip in self.givenTips: oldscore, oldply = self.givenTips[tip] if score < oldscore*1.3 or model.ply < oldply+10: continue self.givenTips[tip] = (score, model.ply) strings.append(tip) break # ---------------------------------------------------------------------- # Last solution # ---------------------------------------------------------------------- if not strings: tcord = TCORD(model.getMoveAtPly(ply-1).move) piece = model.getBoardAtPly(ply).board.arBoard[tcord] strings.append( _("%(color)s moves a %(piece)s to %(cord)s") % { 'color': reprColor[color], 'piece': reprPiece[piece], 'cord': reprCord[tcord]}) return ";\n".join(strings) pychess-0.12.2/sidepanel/book.glade0000755000175000017470000000171512641567764017475 0ustar tamasusers00000000000000 False window1 True True automatic automatic True True False True False pychess-0.12.2/menu/0000755000175000017470000000000012653231274014521 5ustar tamasusers00000000000000pychess-0.12.2/menu/pychess0000644000175000017470000000034512641567764016141 0ustar tamasusers00000000000000?package(pychess):needs="X11" \ section="Games/Board" \ title="PyChess" \ longtitle="PyChess - chess graphical user interface for several chess engines" \ command="/usr/games/pychess" \ icon="/usr/share/pixmaps/pychess.xpm" pychess-0.12.2/lang/0000755000175000017470000000000012653231274014476 5ustar tamasusers00000000000000pychess-0.12.2/lang/sl/0000755000175000017470000000000012653231274015114 5ustar tamasusers00000000000000pychess-0.12.2/lang/sl/LC_MESSAGES/0000755000175000017470000000000012653231274016701 5ustar tamasusers00000000000000pychess-0.12.2/lang/sl/LC_MESSAGES/pychess.po0000644000175000017470000027467512653216215020742 0ustar tamasusers00000000000000# SOME DESCRIPTIVE TITLE. # Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER # This file is distributed under the same license as the pychess package. # # Translators: # , 2010 # Mislav E. Lukšić , 2013 msgid "" msgstr "" "Project-Id-Version: pychess\n" "Report-Msgid-Bugs-To: \n" "POT-Creation-Date: 2016-01-27 13:28+0100\n" "PO-Revision-Date: 2016-01-28 08:56+0000\n" "Last-Translator: slav0nic \n" "Language-Team: Slovenian (http://www.transifex.com/gbtami/pychess/language/sl/)\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" "Language: sl\n" "Plural-Forms: nplurals=4; plural=(n%100==1 ? 0 : n%100==2 ? 1 : n%100==3 || n%100==4 ? 2 : 3);\n" # "Plural-Forms: nplurals=INTEGER; plural=EXPRESSION;\n" #: glade/analyze_game.glade:22 msgid "Analyze game" msgstr "" #: glade/analyze_game.glade:87 msgid "Use analyzer:" msgstr "" #: glade/analyze_game.glade:122 glade/PyChess.glade:2054 msgid "Maximum analysis time in seconds:" msgstr "" #: glade/analyze_game.glade:163 msgid "" "If the analyzer finds a move where the evaluation difference (the difference" " between the evaluation for the move it thinks is the best move and the " "evaluation for the move made in the game) exceeds this value, it will add an" " annotation for that move (consisting of the engine's Principal Variation " "for the move) to the Annotation panel" msgstr "" #: glade/analyze_game.glade:164 msgid "Variation annotation creation threshold in centipawns:" msgstr "" #: glade/analyze_game.glade:198 msgid "Analyze from current position" msgstr "" #: glade/analyze_game.glade:214 msgid "Add threatening variation lines " msgstr "" #: glade/analyze_game.glade:229 glade/PyChess.glade:1459 msgid "Colorize analyzed moves" msgstr "" #: glade/analyze_game.glade:244 glade/PyChess.glade:1495 msgid "Show evaluation values" msgstr "" #: glade/discovererDialog.glade:18 msgid "PyChess is discovering your engines. Please wait." msgstr "PyChess išče vaše programnike. Prosimo, počakajte." #: glade/discovererDialog.glade:77 msgid "PyChess.py:" msgstr "PyChess.py:" #: glade/discovererDialog.glade:89 msgid "ShredderLinuxChess:" msgstr "ShredderLinuxChess:" #: glade/discovererDialog.glade:101 msgid "gnuchess:" msgstr "gnuchess:" #: glade/fics_logon.glade:7 msgid "PyChess - Connect to Internet Chess" msgstr "PyChess - Povežite se z internetnim šahom" #: glade/fics_logon.glade:47 msgid "Connect to the Free Online Chess Server" msgstr "Povežite se s Free Online Chess Server" #: glade/fics_logon.glade:129 glade/taskers.glade:394 msgid "_Password:" msgstr "_Geslo:" #: glade/fics_logon.glade:143 msgid "_Name:" msgstr "_Ime:" #: glade/fics_logon.glade:191 msgid "Log on as _Guest" msgstr "Prijavi se kot _gost" #: glade/fics_logon.glade:227 msgid "Host:" msgstr "" #: glade/fics_logon.glade:259 msgid "Po_rts:" msgstr "_Vrata:" #: glade/fics_logon.glade:271 msgid "Auto login on startup" msgstr "" #: glade/fics_logon.glade:385 msgid "S_ign up" msgstr "_Prijavi se" #: glade/fics_lounge.glade:35 msgid "Challenge: " msgstr "Izzovi: " #: glade/fics_lounge.glade:97 msgid "Send Challenge" msgstr "Pošlji izziv" #: glade/fics_lounge.glade:133 msgid "Challenge:" msgstr "Izzovi:" #: glade/fics_lounge.glade:327 glade/fics_lounge.glade:2078 msgid "Lightning:" msgstr "Bliskovito:" #: glade/fics_lounge.glade:351 glade/fics_lounge.glade:2102 msgid "Standard:" msgstr "Običajno:" #: glade/fics_lounge.glade:375 glade/fics_lounge.glade:2126 msgid "Blitz:" msgstr "Hitro:" #: glade/fics_lounge.glade:400 msgid "2 min, Fischer Random, Black" msgstr "2 min, Fischer naključna, črni" #: glade/fics_lounge.glade:422 msgid "10 min + 6 sec/move, White" msgstr "10 min + 6 sek/potezo, beli" #: glade/fics_lounge.glade:444 msgid "5 min" msgstr "5 min" #: glade/fics_lounge.glade:480 msgid "Edit Seek" msgstr "Uredi povpraševanje" #: glade/fics_lounge.glade:584 lib/pychess/ic/ICLounge.py:2208 #: lib/pychess/ic/__init__.py:101 lib/pychess/Utils/GameModel.py:206 msgid "Untimed" msgstr "Brez časa" #: glade/fics_lounge.glade:637 msgid "Minutes: " msgstr "Minut: " #: glade/fics_lounge.glade:665 msgid " Gain: " msgstr " Dodatek: " #: glade/fics_lounge.glade:703 msgid "Time control: " msgstr "Nadzor časa: " #: glade/fics_lounge.glade:716 lib/pychess/ic/FICSObjects.py:56 #: lib/pychess/ic/ICLounge.py:1137 lib/pychess/ic/ICLounge.py:2208 #: lib/pychess/ic/__init__.py:99 msgid "Standard" msgstr "Običajno" #: glade/fics_lounge.glade:757 glade/newInOut.glade:633 msgid "Time Control" msgstr "Nadzor časa" #: glade/fics_lounge.glade:814 glade/fics_lounge.glade:1346 msgid "Don't care" msgstr "Vseeno mi je" #: glade/fics_lounge.glade:879 msgid "Your strength: " msgstr "Vaša moč: " #: glade/fics_lounge.glade:921 msgid "(Blitz)" msgstr "(hitro)" #: glade/fics_lounge.glade:951 msgid "Opponent's strength: " msgstr "Moč nasprotnika: " #: glade/fics_lounge.glade:1055 msgid "" "When this button is in the \"locked\" state, the relationship\n" "between \"Opponent's strength\" and \"Your strength\" will be\n" "preserved when \n" "a) your rating for the type of game sought has changed\n" "b) you change the variant or the time control" msgstr "Ko je ta gumb v \"zaklenjenem\" stanju, bo povezava\nmed \"Močjo nasprotnika\" in \"Vaša moč\" ohranjena, ko \na) se je vaš rang poizvedovanja spremenil\nb) spremenite različico šaha ali čas igre" #: glade/fics_lounge.glade:1095 msgid "Center:" msgstr "Usredišči:" #: glade/fics_lounge.glade:1134 msgid "1200" msgstr "1200" #: glade/fics_lounge.glade:1188 msgid "Tolerance:" msgstr "Odstopanje:" #: glade/fics_lounge.glade:1243 lib/pychess/ic/ICLounge.py:2452 msgid "Hide" msgstr "Skrij" #: glade/fics_lounge.glade:1289 msgid "Opponent Strength" msgstr "Nasprotnikova moč" #: glade/fics_lounge.glade:1386 lib/pychess/Database/gamelist.py:40 #: lib/pychess/ic/ICLounge.py:1357 lib/pychess/ic/ICLounge.py:1557 #: lib/pychess/ic/ICLounge.py:2108 lib/pychess/Utils/repr.py:10 #: lib/pychess/widgets/ChessClock.py:40 #: lib/pychess/widgets/TaskerManager.py:153 msgid "White" msgstr "Beli" #: glade/fics_lounge.glade:1414 lib/pychess/Database/gamelist.py:40 #: lib/pychess/ic/ICLounge.py:1358 lib/pychess/ic/ICLounge.py:1558 #: lib/pychess/ic/ICLounge.py:2110 lib/pychess/Utils/repr.py:10 #: lib/pychess/widgets/ChessClock.py:40 #: lib/pychess/widgets/TaskerManager.py:154 msgid "Black" msgstr "Črni" #: glade/fics_lounge.glade:1453 msgid "Your Color" msgstr "Vaša barva" #: glade/fics_lounge.glade:1512 msgid "Play normal chess rules" msgstr "Igraj navadni šah" #: glade/fics_lounge.glade:1552 msgid "Play" msgstr "Igraj" #: glade/fics_lounge.glade:1618 glade/newInOut.glade:833 msgid "Chess Variant" msgstr "Različica šaha" #: glade/fics_lounge.glade:1676 msgid "Rated game" msgstr "Rangirana igra" #: glade/fics_lounge.glade:1692 msgid "Manually accept opponent" msgstr "Ročno odobri nasprotnika" #: glade/fics_lounge.glade:1722 msgid "Options" msgstr "Možnosti" #: glade/fics_lounge.glade:1750 msgid "PyChess - Internet Chess: FICS" msgstr "PyChess - Internetni šah: FICS" #: glade/fics_lounge.glade:1823 msgid "_Clear Seeks" msgstr "_Počisti povpraševanja" #: glade/fics_lounge.glade:1847 msgid "_Accept" msgstr "_Sprejmi" #: glade/fics_lounge.glade:1871 msgid "_Decline" msgstr "_Zavrni" #: glade/fics_lounge.glade:2151 msgid "2 min, Fischer Random, 1800↓, Black" msgstr "2 min, Fischer naključna, 1800↓, črni" #: glade/fics_lounge.glade:2172 msgid "10 min + 6 sec/move, 1400↑, White" msgstr "10 min + 6 sek/potezo, 1400↑, beli" #: glade/fics_lounge.glade:2193 msgid "5 min, 1200-1800, Manual" msgstr "5 min, 1200-1800, ročno" #: glade/fics_lounge.glade:2247 msgid "Send all seeks" msgstr "" #: glade/fics_lounge.glade:2301 msgid "Send seek" msgstr "Pošlji povpraševanje" #: glade/fics_lounge.glade:2337 msgid "Create Seek" msgstr "Ustvari povpraševanje" #: glade/fics_lounge.glade:2353 msgid "_Seeks / Challenges" msgstr "_Povpraševanja / Izzivi" #: glade/fics_lounge.glade:2374 lib/pychess/ic/ICLounge.py:472 #: lib/pychess/ic/ICLounge.py:670 lib/pychess/ic/ICLounge.py:1357 #: lib/pychess/ic/ICLounge.py:1358 msgid "Rating" msgstr "Rang" #: glade/fics_lounge.glade:2399 msgid "Time" msgstr "Čas" #: glade/fics_lounge.glade:2419 msgid "Seek _Graph" msgstr "_Grafikon povpraševanja" #: glade/fics_lounge.glade:2444 msgid "0 Players Ready" msgstr "0 igralcev pripravljenih" #: glade/fics_lounge.glade:2496 msgid "Challenge" msgstr "Izzovi" #: glade/fics_lounge.glade:2549 glade/fics_lounge.glade:2735 msgid "Observe" msgstr "Opazuj" #: glade/fics_lounge.glade:2602 msgid "Start Private Chat" msgstr "Začni zasebni pogovor" #: glade/fics_lounge.glade:2659 msgid "_Player List" msgstr "Seznam _igralcev" #: glade/fics_lounge.glade:2792 msgid "_Game List" msgstr "Seznam i_ger" #: glade/fics_lounge.glade:2847 msgid "_My games" msgstr "" #: glade/fics_lounge.glade:2904 glade/PyChess.glade:841 msgid "Offer _Resume" msgstr "Ponudi _nadaljevanje" #: glade/fics_lounge.glade:2962 glade/PyChess.glade:880 msgid "R_esign" msgstr "_Predam se" #: glade/fics_lounge.glade:3006 glade/PyChess.glade:820 msgid "Offer _Draw" msgstr "Ponudi neo_dločen izid" #: glade/fics_lounge.glade:3050 msgid "Offer A_bort" msgstr "" #: glade/fics_lounge.glade:3107 msgid "Pre_view" msgstr "_Predogled" #: glade/fics_lounge.glade:3151 msgid "Examine" msgstr "" #: glade/fics_lounge.glade:3208 msgid "_Archived" msgstr "" #: glade/fics_lounge.glade:3313 msgid "News" msgstr "Novice" #: glade/fics_lounge.glade:3345 msgid "Show Console" msgstr "" #: glade/fics_lounge.glade:3359 msgid "Show _Chat" msgstr "Pokaži _klepet" #: glade/fics_lounge.glade:3373 msgid "_Log Off" msgstr "_Odjavi se" #: glade/fics_lounge.glade:3393 msgid "Tools" msgstr "Orodja" #: glade/fics_lounge.glade:3428 msgid "Asymmetric Random " msgstr "" #: glade/findbar.glade:6 msgid "window1" msgstr "okno1" #: glade/findbar.glade:21 msgid "0 of 0" msgstr "0 od 0" #: glade/findbar.glade:66 msgid "Search:" msgstr "Išči:" #: glade/findbar.glade:134 msgid "_Previous" msgstr "_Prejšnji" #: glade/findbar.glade:192 msgid "_Next" msgstr "_Naslednji" #: glade/newInOut.glade:45 lib/pychess/widgets/newGameDialog.py:445 msgid "New Game" msgstr "Nova igra" #: glade/newInOut.glade:108 msgid "_Start Game" msgstr "_Začni igro" #: glade/newInOut.glade:130 msgid "Copy FEN" msgstr "" #: glade/newInOut.glade:143 msgid "Clear" msgstr "" #: glade/newInOut.glade:156 msgid "Paste FEN" msgstr "" #: glade/newInOut.glade:257 msgid "_Black player:" msgstr "_Črni igralec:" #: glade/newInOut.glade:274 msgid "_White player:" msgstr "_Beli igralec:" #: glade/newInOut.glade:385 msgid "Players" msgstr "Igralci" #: glade/newInOut.glade:436 msgid "_Untimed" msgstr "" #: glade/newInOut.glade:475 msgid "Blitz: 5 min" msgstr "" #: glade/newInOut.glade:526 msgid "Rapid: 15 min + 10 sec/move" msgstr "" #: glade/newInOut.glade:575 msgid "Normal: 40 min + 15 sec/move" msgstr "" #: glade/newInOut.glade:684 msgid "_Play Normal chess" msgstr "_Igraj navadni šah" #: glade/newInOut.glade:724 msgid "Play Fischer Random chess" msgstr "Igraj Fischer naključni šah" #: glade/newInOut.glade:774 msgid "Play Losers chess" msgstr "" #: glade/newInOut.glade:919 msgid "Open Game" msgstr "Odpri igro" #: glade/newInOut.glade:1162 msgid "Initial Position" msgstr "Začetni položaj" #: glade/newInOut.glade:1219 msgid "Enter Game Notation" msgstr "Vstavi notacijo igre" #: glade/newInOut.glade:1314 msgid "Halfmove clock" msgstr "" #: glade/newInOut.glade:1327 msgid "En passant line" msgstr "" #: glade/newInOut.glade:1339 msgid "Side to move" msgstr "" #: glade/newInOut.glade:1351 msgid "Move number" msgstr "" #: glade/newInOut.glade:1361 msgid "Black O-O" msgstr "" #: glade/newInOut.glade:1375 msgid "Black O-O-O" msgstr "" #: glade/newInOut.glade:1389 msgid "White O-O-O" msgstr "" #: glade/newInOut.glade:1403 msgid "White O-O" msgstr "" #: glade/promotion.glade:7 msgid "Promotion" msgstr "Napredovanje" #: glade/promotion.glade:49 lib/pychess/Utils/repr.py:12 msgid "Queen" msgstr "Kraljica" #: glade/promotion.glade:95 lib/pychess/Utils/repr.py:12 msgid "Rook" msgstr "Trnjava" #: glade/promotion.glade:141 lib/pychess/Utils/repr.py:12 msgid "Bishop" msgstr "Tekač" #: glade/promotion.glade:187 lib/pychess/Utils/repr.py:12 msgid "Knight" msgstr "Konj" #: glade/promotion.glade:233 lib/pychess/Utils/repr.py:12 msgid "King" msgstr "Kralj" #: glade/promotion.glade:265 msgid "Promote pawn to what?" msgstr "Povišaj kmeta v?" #: glade/PyChess.glade:9 msgid "Chess client" msgstr "" #: glade/PyChess.glade:44 msgid "Game information" msgstr "Podatki o igri" #: glade/PyChess.glade:164 msgid "Event:" msgstr "Dogodek:" #: glade/PyChess.glade:178 msgid "Site:" msgstr "Stran:" #: glade/PyChess.glade:204 msgid "Round:" msgstr "Runda:" #: glade/PyChess.glade:237 msgid "White:" msgstr "" #: glade/PyChess.glade:249 msgid "Black:" msgstr "" #: glade/PyChess.glade:302 msgid "Game data" msgstr "Podatki o igri" #: glade/PyChess.glade:357 msgid "Date of game" msgstr "Datum igre" #: glade/PyChess.glade:495 msgid "_Game" msgstr "_Igra" #: glade/PyChess.glade:502 msgid "_New Game" msgstr "_Nova igra" #: glade/PyChess.glade:515 msgid "Play _Internet Chess" msgstr "_Igraj internetni šah" #: glade/PyChess.glade:534 msgid "_Load Game" msgstr "_Naloži igro" #: glade/PyChess.glade:550 msgid "Load _Recent Game" msgstr "" #: glade/PyChess.glade:558 msgid "Open _Database" msgstr "" #: glade/PyChess.glade:569 lib/pychess/widgets/newGameDialog.py:615 msgid "Setup Position" msgstr "Nastavi položaj" #: glade/PyChess.glade:579 msgid "Enter Game _Notation" msgstr "Vnesi _notacijo igre" #: glade/PyChess.glade:592 msgid "_Save Game" msgstr "_Shrani igro" #: glade/PyChess.glade:606 msgid "Save Game _As" msgstr "Shrani igro _kot" #: glade/PyChess.glade:624 msgid "Share Game" msgstr "" #: glade/PyChess.glade:630 msgid "_Export Position" msgstr "" #: glade/PyChess.glade:644 msgid "_Analyze Game" msgstr "" #: glade/PyChess.glade:678 msgid "Player _Rating" msgstr "Igralčev rang" #: glade/PyChess.glade:723 msgid "_Edit" msgstr "" #: glade/PyChess.glade:734 msgid "_Copy PGN" msgstr "" #: glade/PyChess.glade:746 msgid "_Copy FEN" msgstr "" #: glade/PyChess.glade:763 msgid "_Engines" msgstr "" #: glade/PyChess.glade:789 msgid "_Actions" msgstr "_Dejanja" #: glade/PyChess.glade:800 msgid "Offer _Abort" msgstr "Ponudi _prekinitev" #: glade/PyChess.glade:810 msgid "Offer Ad_journment" msgstr "Ponudi _odložitev" #: glade/PyChess.glade:831 msgid "Offer _Pause" msgstr "Ponudi _premor" #: glade/PyChess.glade:847 msgid "Offer _Undo" msgstr "Ponudi p_ovrnitev poteze" #: glade/PyChess.glade:870 msgid "_Call Flag" msgstr "Sporoči padec zastavice" #: glade/PyChess.glade:890 msgid "Ask to _Move" msgstr "Prosi za pre_mik" #: glade/PyChess.glade:905 msgid "Auto Call _Flag" msgstr "" #: glade/PyChess.glade:918 msgid "_View" msgstr "_Pogled" #: glade/PyChess.glade:925 msgid "_Rotate Board" msgstr "_Zavrti ploščo" #: glade/PyChess.glade:939 msgid "_Fullscreen" msgstr "_Celozaslonski način" #: glade/PyChess.glade:952 msgid "Leave _Fullscreen" msgstr "Zapusti celozaslonski način" #: glade/PyChess.glade:969 msgid "_Show Sidepanels" msgstr "_Prikaži stranske pulte" #: glade/PyChess.glade:980 msgid "_Log Viewer" msgstr "Pregledovalnik _dnevnikov" #: glade/PyChess.glade:997 msgid "_Hint mode" msgstr "_Svetovalni način" #: glade/PyChess.glade:1009 msgid "Sp_y mode" msgstr "_Vohunski način" #: glade/PyChess.glade:1024 msgid "_Help" msgstr "_Pomoč" #: glade/PyChess.glade:1034 msgid "About Chess" msgstr "O šahu" #: glade/PyChess.glade:1043 msgid "How to Play" msgstr "Kako igrati" #: glade/PyChess.glade:1052 msgid "Translate PyChess" msgstr "Prevedi PyChess" #: glade/PyChess.glade:1058 msgid "Tip of the Day" msgstr "Nasvet dneva" #: glade/PyChess.glade:1153 msgid "Default" msgstr "" #: glade/PyChess.glade:1156 msgid "Knights" msgstr "" #: glade/PyChess.glade:1167 lib/pychess/widgets/preferencesDialog.py:349 msgid "Beep" msgstr "Pisk" #: glade/PyChess.glade:1170 lib/pychess/widgets/preferencesDialog.py:350 msgid "Select sound file..." msgstr "Izberi zvočno datoteko ..." #: glade/PyChess.glade:1173 lib/pychess/widgets/preferencesDialog.py:348 msgid "No sound" msgstr "Brez zvoka" #: glade/PyChess.glade:1180 msgid "Preferences" msgstr "Možnosti" #: glade/PyChess.glade:1218 msgid "The displayed name of the first human player, e.g., John." msgstr "Prikazano ime prvega človeškega igralca, npr. Janez." #: glade/PyChess.glade:1230 msgid "Name of _first human player:" msgstr "Ime prvega človeškega igralca:" #: glade/PyChess.glade:1259 msgid "The displayed name of the guest player, e.g., Mary." msgstr "Prikazano ime gostujočega igralca, npr. Marija." #: glade/PyChess.glade:1271 msgid "Name of s_econd human player:" msgstr "Ime drugega človeškega igralca:" #: glade/PyChess.glade:1307 msgid "_Hide tabs when only one game is open" msgstr "_Skrij zavihke, ko je odprta le ena igra" #: glade/PyChess.glade:1312 msgid "" "If set, this hides the tab in the top of the playing window, when it is not " "needed." msgstr "Če je nastavljeno, potem skrije zavihek na vrhu okna, ko le-ta ni potreben." #: glade/PyChess.glade:1326 msgid "_Use main app closer [x] to close all games" msgstr "" #: glade/PyChess.glade:1331 msgid "" "If set, clicking on main application window closer first time it closes all " "games." msgstr "" #: glade/PyChess.glade:1345 msgid "Auto _rotate board to current human player" msgstr "Samodejno ob_rni ploščo k trenutnemu človeškemu igralcu" #: glade/PyChess.glade:1350 msgid "" "If set, the board will turn after each move, to show the natural view for " "the current player." msgstr "Če je nastavljeno, se bo igralna plošča vsako potezo prestavila tako, da bo prikazan naraven pogled za trenutnega igralca." #: glade/PyChess.glade:1364 msgid "Auto _promote to queen" msgstr "" #: glade/PyChess.glade:1369 msgid "If set, pawn promotes to queen without promotion dialog selection." msgstr "" #: glade/PyChess.glade:1383 msgid "Face _to Face display mode" msgstr "Način prikaza iz obraza v obraz" #: glade/PyChess.glade:1388 msgid "" "If set, the black pieces will be head down, suitable for playing against " "friends on mobile devices." msgstr "Če je nastavljeno, potem bodo črne figure nastavljene z glavo navzdol, kar je primerno za igranje s prijateljem preko mobilne naprave." #: glade/PyChess.glade:1402 msgid "Sho_w cords" msgstr "_Prikaži notacije" #: glade/PyChess.glade:1407 msgid "" "If set, the playing board will display labels and ranks for each chess " "field. These are usable in chess notation." msgstr "Če je nastavljeno, bo igralna plošča prikazala oznako za vsako šahovsko polje. Le-ti ne bodo prikazani v šahovski notaciji." #: glade/PyChess.glade:1421 msgid "Show _captured pieces" msgstr "" #: glade/PyChess.glade:1426 msgid "If set, the captured figurines will be shown next to the board." msgstr "" #: glade/PyChess.glade:1440 msgid "Prefer figures in _notation" msgstr "Dodaj figure v _notacijo" #: glade/PyChess.glade:1445 msgid "" "If set, PyChess will use figures to express moved pieces, rather than " "uppercase letters." msgstr "Če je nastavljeno, bo PyChess prikazal slike za premike potez figur namesto velikih črk." #: glade/PyChess.glade:1464 msgid "If set, PyChess will colorize suboptimal analyzed moves with red." msgstr "" #: glade/PyChess.glade:1477 msgid "Show elapsed move times" msgstr "" #: glade/PyChess.glade:1482 msgid "If set, the elapsed time that a player used for the move is shown." msgstr "" #: glade/PyChess.glade:1500 msgid "If set, the hint analyzer engine evaluation value is shown." msgstr "" #: glade/PyChess.glade:1526 msgid "General Options" msgstr "" #: glade/PyChess.glade:1560 msgid "F_ull board animation" msgstr "_Polna animacija plošče" #: glade/PyChess.glade:1565 msgid "Animate pieces, board rotation and more. Use this on fast machines." msgstr "Animiraj figure, šahovsko ploščo in drugo. To možnost uporabite na hitrih računalnikih." #: glade/PyChess.glade:1579 msgid "Only animate _moves" msgstr "Animiraj samo _poteze" #: glade/PyChess.glade:1584 msgid "Only animate piece moves." msgstr "Animiraj samo poteze figur." #: glade/PyChess.glade:1599 msgid "No _animation" msgstr "_Brez animacije" #: glade/PyChess.glade:1604 msgid "Never use animation. Use this on slow machines." msgstr "Nikoli ne uporabi animacij. To možnost uporabite na počasnih računalnikih." #: glade/PyChess.glade:1632 msgid "Animation" msgstr "Animacija" #: glade/PyChess.glade:1651 msgid "_General" msgstr "_Splošno" #: glade/PyChess.glade:1692 msgid "Use opening _book" msgstr "" #: glade/PyChess.glade:1697 msgid "If set, PyChess will suggest best opening moves on hint panel." msgstr "" #: glade/PyChess.glade:1724 msgid "Polyglot book file:" msgstr "" #: glade/PyChess.glade:1768 msgid "Use _local tablebases" msgstr "" #: glade/PyChess.glade:1773 msgid "" "If set, PyChess will show game results for different moves in positions containing 6 or less pieces.\n" "You can download tablebase files from:\n" "http://www.olympuschess.com/egtb/gaviota/" msgstr "" #: glade/PyChess.glade:1803 msgid "Gaviota TB path:" msgstr "" #: glade/PyChess.glade:1843 msgid "Use _online tablebases" msgstr "" #: glade/PyChess.glade:1848 msgid "" "If set, PyChess will show game results for different moves in positions containing 6 or less pieces.\n" "It will search positions from http://www.k4it.de/" msgstr "" #: glade/PyChess.glade:1870 msgid "Opening, endgame" msgstr "" #: glade/PyChess.glade:1904 msgid "Use _analyzer" msgstr "Uporabi _analizo" #: glade/PyChess.glade:1946 msgid "" "The analyzer will run in the background and analyze the game. This is " "necessary for the hint mode to work" msgstr "" #: glade/PyChess.glade:1978 msgid "Use _inverted analyzer" msgstr "Uporabi _nasprotno analizo" #: glade/PyChess.glade:2020 msgid "" "The inverse analyzer will analyze the game as if your opponent was to move. " "This is necessary for the spy mode to work" msgstr "" #: glade/PyChess.glade:2096 msgid "Analyzing" msgstr "Analiziranje" #: glade/PyChess.glade:2118 msgid "_Hints" msgstr "" #: glade/PyChess.glade:2263 msgid "Uninstall" msgstr "Odstrani" #: glade/PyChess.glade:2317 msgid "Ac_tive" msgstr "Ak_tivno" #: glade/PyChess.glade:2367 msgid "Installed Sidepanels" msgstr "Nameščeni stranski pulti" #: glade/PyChess.glade:2382 msgid "Side_panels" msgstr "Stranski _pulti" #: glade/PyChess.glade:2440 msgid "Light Squares :" msgstr "" #: glade/PyChess.glade:2479 msgid "Dark Squares :" msgstr "" #: glade/PyChess.glade:2515 msgid "Reset Default Colours" msgstr "" #: glade/PyChess.glade:2551 msgid "Board Colours" msgstr "" #: glade/PyChess.glade:2610 msgid "Chess Sets" msgstr "" #: glade/PyChess.glade:2634 msgid "Themes" msgstr "" #: glade/PyChess.glade:2659 msgid "_Use sounds in PyChess" msgstr "_Uporabi zvoke v PyChessu" #: glade/PyChess.glade:2982 msgid "A player _checks:" msgstr "Igralec _šahira:" #: glade/PyChess.glade:2997 msgid "A player _moves:" msgstr "Igralec _prestavi:" #: glade/PyChess.glade:3010 msgid "Game is _drawn:" msgstr "Igra je neo_dločena:" #: glade/PyChess.glade:3025 msgid "Game is _lost:" msgstr "Igra je izgub_ljena:" #: glade/PyChess.glade:3040 msgid "Game is _won:" msgstr "Igra je _dobljena:" #: glade/PyChess.glade:3055 msgid "A player c_aptures:" msgstr "Igralec z_apleni:" #: glade/PyChess.glade:3084 msgid "Game is _set-up:" msgstr "Igra je na_stavljena:" #: glade/PyChess.glade:3136 msgid "_Observed moves:" msgstr "_Opazovani prestavi:" #: glade/PyChess.glade:3151 msgid "Observed _ends:" msgstr "Opazovani _konča:" #: glade/PyChess.glade:3265 msgid "Short on _time:" msgstr "" #: glade/PyChess.glade:3317 msgid "_Invalid move:" msgstr "" #: glade/PyChess.glade:3369 msgid "Activate alarm when _remaining sec is:" msgstr "" #: glade/PyChess.glade:3416 msgid "Play Sound When..." msgstr "Predvajaj zvok ob ..." #: glade/PyChess.glade:3438 msgid "_Sounds" msgstr "_Zvoki" #: glade/PyChess.glade:3463 msgid "_Auto save finished games" msgstr "" #: glade/PyChess.glade:3497 msgid "Save files to:" msgstr "" #: glade/PyChess.glade:3525 msgid "Use name format:" msgstr "" #: glade/PyChess.glade:3569 msgid "Names: #n1, #n2" msgstr "" #: glade/PyChess.glade:3582 msgid "Year, month, day: #y, #m, #d" msgstr "" #: glade/PyChess.glade:3619 msgid "Save elapsed move _times" msgstr "" #: glade/PyChess.glade:3644 msgid "Save analyzing engine _evaluation values" msgstr "" #: glade/PyChess.glade:3669 msgid "Save _own games only" msgstr "" #: glade/PyChess.glade:3698 msgid "Save" msgstr "" #: glade/PyChess.glade:3728 msgid "uci" msgstr "" #: glade/PyChess.glade:3731 msgid "xboard" msgstr "" #: glade/PyChess.glade:3739 msgid "Manage engines" msgstr "" #: glade/PyChess.glade:3837 msgid "Command:" msgstr "" #: glade/PyChess.glade:3851 msgid "Protocol:" msgstr "" #: glade/PyChess.glade:3865 msgid "Parameters:" msgstr "" #: glade/PyChess.glade:3878 msgid "Command line parameters needed by the engine." msgstr "" #: glade/PyChess.glade:3903 msgid "" "Engines use uci or xboard communication protocol to talk to the GUI.\n" "If it can use both you can set here which one you like." msgstr "" #: glade/PyChess.glade:3929 msgid "Working directory:" msgstr "" #: glade/PyChess.glade:3942 msgid "The directory where the engine will be started from." msgstr "" #: glade/saveGamesDialog.glade:7 msgid "Quit PyChess" msgstr "Zapri PyChess" #: glade/saveGamesDialog.glade:24 lib/pychess/widgets/ionest.py:424 msgid "Close _without Saving" msgstr "Zapri _brez shranjevanja" #: glade/saveGamesDialog.glade:83 msgid "_Save %d documents" msgstr "_Shranite %d dokumentov" #: glade/saveGamesDialog.glade:141 msgid "" "There are %d games with unsaved moves. Save changes before " "closing?" msgstr "Obstaja %d iger z neshranjenimi potezami. Želite shraniti spremembe?" #: glade/saveGamesDialog.glade:161 msgid "Select the games you want to save:" msgstr "Izberite igre, ki jih želite shraniti:" #: glade/saveGamesDialog.glade:204 msgid "If you don't save, new changes to your games will be permanently lost." msgstr "Če ne shranite, bodo spremembe trajno izgubljene." #: glade/taskers.glade:126 msgid "_Opponent:" msgstr "Naspr_otnik:" #: glade/taskers.glade:154 msgid "_Your Color:" msgstr "_Vaša barva:" #: glade/taskers.glade:219 msgid "_Start Game" msgstr "_Začni igro" #: glade/taskers.glade:338 msgid "Log on as G_uest" msgstr "Prijavi se kot _gost" #: glade/taskers.glade:410 msgid "Ha_ndle:" msgstr "Uporabnik:" #: glade/taskers.glade:469 msgid "_Connect to server" msgstr "" #: glade/tipoftheday.glade:7 msgid "Tip Of The day" msgstr "Nasvet dneva" #: glade/tipoftheday.glade:62 msgid "Show tips at startup" msgstr "Prikaži nasvete ob zagonu" #: lib/pychess/Main.py:302 msgid "http://en.wikipedia.org/wiki/Chess" msgstr "http://sl.wikipedia.org/wiki/%C5%A0ah" #: lib/pychess/Main.py:305 msgid "http://en.wikipedia.org/wiki/Rules_of_chess" msgstr "http://sl.wikipedia.org/wiki/%C5%A0ahovska_pravila" #: lib/pychess/Main.py:370 lib/pychess/widgets/gamenanny.py:80 msgid "Welcome" msgstr "Dobrodošli" #: lib/pychess/Database/gamelist.py:40 msgid "Id" msgstr "" #: lib/pychess/Database/gamelist.py:40 msgid "W Elo" msgstr "" #: lib/pychess/Database/gamelist.py:40 msgid "B Elo" msgstr "" #: lib/pychess/Database/gamelist.py:41 msgid "Result" msgstr "" #: lib/pychess/Database/gamelist.py:41 msgid "Event" msgstr "" #: lib/pychess/Database/gamelist.py:41 msgid "Site" msgstr "" #: lib/pychess/Database/gamelist.py:41 msgid "Round" msgstr "" #: lib/pychess/Database/gamelist.py:41 msgid "Date" msgstr "" #: lib/pychess/Database/gamelist.py:41 msgid "ECO" msgstr "" #: lib/pychess/Database/gamelist.py:62 msgid "PyChess Game Database" msgstr "" #: lib/pychess/Database/PgnImport.py:188 #, python-format msgid "The game #%s can't be loaded, because of an error parsing FEN" msgstr "" #: lib/pychess/ic/FICSConnection.py:139 msgid "The connection was broken - got \"end of file\" message" msgstr "Povezava prekinjena - dobljena napaka \"konec datoteke\"" #: lib/pychess/ic/FICSConnection.py:140 #, python-format msgid "'%s' is not a registered name" msgstr "'%s' ni registrirano ime" #: lib/pychess/ic/FICSConnection.py:141 msgid "" "The entered password was invalid.\n" "If you forgot your password, go to http://www.freechess.org/password to request a new one over email." msgstr "" #: lib/pychess/ic/FICSConnection.py:145 #, python-format msgid "Sorry '%s' is already logged in" msgstr "" #: lib/pychess/ic/FICSConnection.py:146 #, python-format msgid "'%s' is a registered name. If it is yours, type the password." msgstr "" #: lib/pychess/ic/FICSConnection.py:147 msgid "" "Due to abuse problems, guest connections have been prevented.\n" "You can still register on http://www.freechess.org" msgstr "" #: lib/pychess/ic/FICSConnection.py:166 msgid "Connecting to server" msgstr "Povezovanje na strežnik" #: lib/pychess/ic/FICSConnection.py:181 msgid "Logging on to server" msgstr "Prijavljanje na strežnik" #: lib/pychess/ic/FICSConnection.py:239 msgid "Setting up environment" msgstr "Pripravljanje okolja" #: lib/pychess/ic/FICSObjects.py:35 lib/pychess/ic/FICSObjects.py:47 #, python-format msgid "%(player)s is %(status)s" msgstr "" #: lib/pychess/ic/FICSObjects.py:46 msgid "not playing" msgstr "" #: lib/pychess/ic/FICSObjects.py:54 lib/pychess/ic/ICLounge.py:1136 #: lib/pychess/ic/ICLounge.py:2209 lib/pychess/ic/__init__.py:98 #: lib/pychess/widgets/newGameDialog.py:153 msgid "Blitz" msgstr "Hitro" #: lib/pychess/ic/FICSObjects.py:58 lib/pychess/ic/ICLounge.py:1137 #: lib/pychess/ic/ICLounge.py:2209 lib/pychess/ic/__init__.py:100 msgid "Lightning" msgstr "Bliskovito" #: lib/pychess/ic/FICSObjects.py:60 lib/pychess/Variants/atomic.py:15 msgid "Atomic" msgstr "" #: lib/pychess/ic/FICSObjects.py:62 lib/pychess/Variants/bughouse.py:9 msgid "Bughouse" msgstr "" #: lib/pychess/ic/FICSObjects.py:64 lib/pychess/Variants/crazyhouse.py:9 msgid "Crazyhouse" msgstr "" #: lib/pychess/ic/FICSObjects.py:66 lib/pychess/Variants/losers.py:9 msgid "Losers" msgstr "Izgubarji" #: lib/pychess/ic/FICSObjects.py:68 lib/pychess/Variants/suicide.py:12 msgid "Suicide" msgstr "" #: lib/pychess/ic/FICSObjects.py:70 lib/pychess/ic/__init__.py:129 msgid "Wild" msgstr "Divji" #: lib/pychess/ic/FICSObjects.py:117 msgid "Online" msgstr "Prijavljen" #: lib/pychess/ic/FICSObjects.py:118 lib/pychess/ic/FICSObjects.py:143 msgid "Offline" msgstr "Odjavljen" #: lib/pychess/ic/FICSObjects.py:133 msgid "Available" msgstr "" #: lib/pychess/ic/FICSObjects.py:135 msgid "Playing" msgstr "" #: lib/pychess/ic/FICSObjects.py:141 msgid "Idle" msgstr "" #: lib/pychess/ic/FICSObjects.py:145 msgid "Examining" msgstr "" #: lib/pychess/ic/FICSObjects.py:147 msgid "Not Available" msgstr "" #: lib/pychess/ic/FICSObjects.py:149 msgid "Running Simul Match" msgstr "" #: lib/pychess/ic/FICSObjects.py:151 msgid "In Tournament" msgstr "" #: lib/pychess/ic/FICSObjects.py:308 lib/pychess/ic/FICSObjects.py:492 #: lib/pychess/ic/ICLounge.py:2278 msgid "Unrated" msgstr "Nerangiran" #: lib/pychess/ic/FICSObjects.py:491 lib/pychess/ic/ICLounge.py:670 #: lib/pychess/ic/ICLounge.py:1358 lib/pychess/ic/ICLounge.py:1558 #: lib/pychess/ic/ICLounge.py:2113 msgid "Rated" msgstr "Rangiran" #: lib/pychess/ic/FICSObjects.py:498 lib/pychess/ic/ICLounge.py:2098 #, python-format msgid "%d min" msgstr "%d min" #: lib/pychess/ic/FICSObjects.py:500 #, python-format msgid " + %d sec" msgstr "" #: lib/pychess/ic/FICSObjects.py:517 #, python-format msgid "%(player)s plays %(color)s" msgstr "" #: lib/pychess/ic/FICSObjects.py:519 lib/pychess/ic/ICLounge.py:909 msgid "white" msgstr "" #: lib/pychess/ic/FICSObjects.py:519 lib/pychess/ic/ICLounge.py:909 msgid "black" msgstr "" #: lib/pychess/ic/FICSObjects.py:565 msgid "This is a continuation of an adjourned match" msgstr "" #: lib/pychess/ic/FICSObjects.py:654 msgid "Opponent Rating" msgstr "" #: lib/pychess/ic/FICSObjects.py:656 msgid "Manual Accept" msgstr "" #: lib/pychess/ic/FICSObjects.py:810 msgid "Private" msgstr "Zasebno" #: lib/pychess/ic/FICSObjects.py:930 lib/pychess/ic/ICLounge.py:527 #: lib/pychess/Savers/epd.py:139 msgid "Unknown" msgstr "Neznano" #: lib/pychess/ic/ICLogon.py:159 lib/pychess/ic/ICLogon.py:165 msgid "Connection Error" msgstr "Napaka pri povezavi" #: lib/pychess/ic/ICLogon.py:161 msgid "Log on Error" msgstr "Napaka pri prijavi" #: lib/pychess/ic/ICLogon.py:163 msgid "Connection was closed" msgstr "Povezava je bila prekinjena" #: lib/pychess/ic/ICLogon.py:169 msgid "Address Error" msgstr "Napaka v naslovu" #: lib/pychess/ic/ICLogon.py:172 msgid "Auto-logout" msgstr "Samodejna odjava" #: lib/pychess/ic/ICLogon.py:173 msgid "You have been logged out because you were idle more than 60 minutes" msgstr "Samodejno ste bili odjavljeni, ker ste bili nedejavni več kot 60 minut" #: lib/pychess/ic/ICLounge.py:222 msgid "You have to set kibitz on to see bot messages here." msgstr "" #: lib/pychess/ic/ICLounge.py:241 msgid "" "You may only have 3 outstanding seeks at the same time. If you want to add a" " new seek you must clear your currently active seeks. Clear your seeks?" msgstr "" #: lib/pychess/ic/ICLounge.py:258 msgid "You can't touch this! You are examining a game." msgstr "" #: lib/pychess/ic/ICLounge.py:270 msgid " has declined your offer for a match" msgstr "" #: lib/pychess/ic/ICLounge.py:283 msgid " is censoring you" msgstr "" #: lib/pychess/ic/ICLounge.py:296 msgid " noplay listing you" msgstr "" #: lib/pychess/ic/ICLounge.py:311 msgid " uses a formula not fitting your match request:" msgstr "" #: lib/pychess/ic/ICLounge.py:325 msgid "to manual accept" msgstr "" #: lib/pychess/ic/ICLounge.py:327 msgid "to automatic accept" msgstr "" #: lib/pychess/ic/ICLounge.py:329 msgid "rating range now" msgstr "" #: lib/pychess/ic/ICLounge.py:330 msgid "Seek updated" msgstr "" #: lib/pychess/ic/ICLounge.py:342 msgid "Your seeks have been removed" msgstr "" #: lib/pychess/ic/ICLounge.py:363 msgid " has arrived" msgstr "" #: lib/pychess/ic/ICLounge.py:370 msgid " has departed" msgstr "" #: lib/pychess/ic/ICLounge.py:374 msgid " is present" msgstr "" #: lib/pychess/ic/ICLounge.py:391 sidepanel/chatPanel.py:17 msgid "Chat" msgstr "Pogovor" #: lib/pychess/ic/ICLounge.py:472 sidepanel/bookPanel.py:366 msgid "Win" msgstr "Zmaga" #: lib/pychess/ic/ICLounge.py:472 sidepanel/bookPanel.py:360 msgid "Draw" msgstr "Neodločeno" #: lib/pychess/ic/ICLounge.py:472 sidepanel/bookPanel.py:363 msgid "Loss" msgstr "Poraz" #: lib/pychess/ic/ICLounge.py:482 msgid "" "On FICS, your \"Wild\" rating encompasses all of the following variants at " "all time controls:\n" msgstr "Na FICS, vaš rang \"Divji\" zajema vse sledeče različice vseh časovnih možnosti:\n" #: lib/pychess/ic/ICLounge.py:494 msgid "Sanctions" msgstr "" #: lib/pychess/ic/ICLounge.py:499 msgid "Email" msgstr "Elektronska pošta" #: lib/pychess/ic/ICLounge.py:504 msgid "Spent" msgstr "Zapravljeno" #: lib/pychess/ic/ICLounge.py:506 msgid "online in total" msgstr "skupaj prijavljenih" #: lib/pychess/ic/ICLounge.py:512 msgid "Ping" msgstr "Ping" #: lib/pychess/ic/ICLounge.py:517 msgid "Connecting" msgstr "Povezovanje" #: lib/pychess/ic/ICLounge.py:544 msgid "" "You are currently logged in as a guest.\n" "A guest can't play rated games and therefore isn't able to play as many of the types of matches offered as a registered user. To register an account, go to http://www.freechess.org/Register/index.html." msgstr "" #: lib/pychess/ic/ICLounge.py:669 lib/pychess/ic/ICLounge.py:1136 msgid "Name" msgstr "Ime" #: lib/pychess/ic/ICLounge.py:670 lib/pychess/ic/ICLounge.py:1358 #: lib/pychess/ic/ICLounge.py:1558 msgid "Type" msgstr "Vrsta" #: lib/pychess/ic/ICLounge.py:670 lib/pychess/ic/ICLounge.py:1558 msgid "Clock" msgstr "Ura" #: lib/pychess/ic/ICLounge.py:726 lib/pychess/ic/ICLounge.py:923 #: lib/pychess/Players/Human.py:250 msgid "Accept" msgstr "" #: lib/pychess/ic/ICLounge.py:728 msgid "Assess" msgstr "" #: lib/pychess/ic/ICLounge.py:734 msgid "Archived" msgstr "" #: lib/pychess/ic/ICLounge.py:848 #, python-format msgid "Active seeks: %d" msgstr "Aktivna povpraševanja: %d" #: lib/pychess/ic/ICLounge.py:897 #, python-format msgid "" " would like to resume your adjourned %(time)s %(gametype)s " "game." msgstr "" #: lib/pychess/ic/ICLounge.py:902 #, python-format msgid "" " challenges you to a %(time)s %(rated)s %(gametype)s game" msgstr "" #: lib/pychess/ic/ICLounge.py:907 #, python-format msgid " where %(player)s plays %(color)s." msgstr "" #: lib/pychess/ic/ICLounge.py:924 lib/pychess/Players/Human.py:251 msgid "Decline" msgstr "" #: lib/pychess/ic/ICLounge.py:1065 msgid " min" msgstr " min" #: lib/pychess/ic/ICLounge.py:1137 msgid "Status" msgstr "" #: lib/pychess/ic/ICLounge.py:1203 lib/pychess/ic/ICLounge.py:1233 #, python-format msgid "Players: %d" msgstr "" #: lib/pychess/ic/ICLounge.py:1469 #, python-format msgid "Games running: %d" msgstr "Trenutne igre: %d" #: lib/pychess/ic/ICLounge.py:1559 msgid "Date/Time" msgstr "Datum/Čas" #: lib/pychess/ic/ICLounge.py:1614 #, python-format msgid "" " with whom you have an adjourned %(timecontrol)s %(gametype)s " "game is online." msgstr "" #: lib/pychess/ic/ICLounge.py:1635 msgid "Request Continuation" msgstr "" #: lib/pychess/ic/ICLounge.py:1637 msgid "Examine Adjourned Game" msgstr "" #: lib/pychess/ic/ICLounge.py:1965 msgid "" "The chain button is disabled because you are logged in as a guest. Guests " "can't establish ratings, and the chain button's state has no effect when " "there is no rating to which to tie \"Opponent Strength\" to" msgstr "Verižni gumb je onemogočen, ker ste prijavljeni kot gost. Gostje ne morejo imeti ranga, zato je verižni gumb brez učinka, saj ne obstaja rang, na katerega bi se navezovala \"Moč nasprotnika\"" #: lib/pychess/ic/ICLounge.py:2006 msgid "Challenge: " msgstr "Izziv: " #: lib/pychess/ic/ICLounge.py:2044 msgid "If set you can refuse players accepting your seek" msgstr "" #: lib/pychess/ic/ICLounge.py:2048 lib/pychess/ic/ICLounge.py:2051 msgid "This option is not applicable because you're challenging a player" msgstr "Ta možnost ni na voljo, ker izzivate igralca" #: lib/pychess/ic/ICLounge.py:2064 msgid "Edit Seek: " msgstr "Uredi povpraševanje: " #: lib/pychess/ic/ICLounge.py:2095 #, python-format msgid "%(minutes)d min + %(gain)d sec/move" msgstr "%(minutes)d min + %(gain)d sek/potezo" #: lib/pychess/ic/ICLounge.py:2116 msgid "Manual" msgstr "Ročno" #: lib/pychess/ic/ICLounge.py:2256 msgid "Any strength" msgstr "" #: lib/pychess/ic/ICLounge.py:2308 msgid "You can't play rated games because you are logged in as a guest" msgstr "Ne morete igrati rangirane igre, ker ste prijavljeni kot gost" #: lib/pychess/ic/ICLounge.py:2312 msgid "You can't play rated games because \"Untimed\" is checked, " msgstr "Ne morete igrati rangirane igre, ker je možnost \"Brez časa\" omogočena " #: lib/pychess/ic/ICLounge.py:2313 msgid "and on FICS, untimed games can't be rated" msgstr "in na FICS igre brez časa ne morejo biti rangirane" #: lib/pychess/ic/ICLounge.py:2317 msgid "This option is not available because you're challenging a guest, " msgstr "Ta možnost ni na voljo, ker izzivate gosta, " #: lib/pychess/ic/ICLounge.py:2318 msgid "and guests can't play rated games" msgstr "in gostje ne morejo igrati rangiranih iger" #: lib/pychess/ic/ICLounge.py:2332 lib/pychess/Variants/shuffle.py:16 #: lib/pychess/widgets/newGameDialog.py:266 msgid "Shuffle" msgstr "Trik" #: lib/pychess/ic/ICLounge.py:2333 lib/pychess/widgets/newGameDialog.py:267 msgid "Other (standard rules)" msgstr "" #: lib/pychess/ic/ICLounge.py:2334 lib/pychess/widgets/newGameDialog.py:268 msgid "Other (non standard rules)" msgstr "" #: lib/pychess/ic/ICLounge.py:2421 msgid "You can't select a variant because \"Untimed\" is checked, " msgstr "Ne morete izbrati različice, ker je izbrana možnost \"Brez časa\", " #: lib/pychess/ic/ICLounge.py:2422 msgid "and on FICS, untimed games have to be normal chess rules" msgstr "in na FICS igre brez časa morajo potekati po navadnih šahovskih pravilih" #: lib/pychess/ic/ICLounge.py:2454 msgid "Change Tolerance" msgstr "Spremeni odstopanje" #: lib/pychess/ic/__init__.py:102 msgid "Examined" msgstr "" #: lib/pychess/ic/__init__.py:103 msgid "Other" msgstr "Drugo" #: lib/pychess/ic/__init__.py:182 msgid "Administrator" msgstr "Skrbnik" #: lib/pychess/ic/__init__.py:182 msgid "Blindfold Account" msgstr "Slepi račun" #: lib/pychess/ic/__init__.py:182 msgid "Computer" msgstr "" #: lib/pychess/ic/__init__.py:183 msgid "Team Account" msgstr "Ekipni račun" #: lib/pychess/ic/__init__.py:183 msgid "Unregistered" msgstr "" #: lib/pychess/ic/__init__.py:183 msgid "Chess Advisor" msgstr "Šahovski svetovalec" #: lib/pychess/ic/__init__.py:184 msgid "Service Representative" msgstr "Storitveni predstavnik" #: lib/pychess/ic/__init__.py:184 msgid "Tournament Director" msgstr "Direktor turnirja" #: lib/pychess/ic/__init__.py:184 msgid "Mamer Manager" msgstr "Samodejni turnirni upravitelj" #: lib/pychess/ic/__init__.py:185 msgid "Grand Master" msgstr "Velemojster" #: lib/pychess/ic/__init__.py:185 msgid "International Master" msgstr "Mednarodni mojster" #: lib/pychess/ic/__init__.py:185 msgid "FIDE Master" msgstr "Mojster FIDE" #: lib/pychess/ic/__init__.py:186 msgid "Woman Grand Master" msgstr "" #: lib/pychess/ic/__init__.py:186 msgid "Woman International Master" msgstr "" #: lib/pychess/ic/__init__.py:186 msgid "Woman FIDE Master" msgstr "" #: lib/pychess/ic/__init__.py:187 msgid "Dummy Account" msgstr "" #: lib/pychess/ic/__init__.py:191 msgid "*" msgstr "" #: lib/pychess/ic/__init__.py:191 lib/pychess/Utils/repr.py:14 msgid "B" msgstr "L" #: lib/pychess/ic/__init__.py:191 msgid "C" msgstr "" #: lib/pychess/ic/__init__.py:192 msgid "T" msgstr "" #: lib/pychess/ic/__init__.py:192 msgid "U" msgstr "" #: lib/pychess/ic/__init__.py:192 msgid "CA" msgstr "" #: lib/pychess/ic/__init__.py:193 msgid "SR" msgstr "" #: lib/pychess/ic/__init__.py:193 msgid "TD" msgstr "" #: lib/pychess/ic/__init__.py:193 msgid "TM" msgstr "" #: lib/pychess/ic/__init__.py:194 msgid "GM" msgstr "" #: lib/pychess/ic/__init__.py:194 msgid "IM" msgstr "" #: lib/pychess/ic/__init__.py:194 msgid "FM" msgstr "" #: lib/pychess/ic/__init__.py:195 msgid "WGM" msgstr "" #: lib/pychess/ic/__init__.py:195 msgid "WIM" msgstr "" #: lib/pychess/ic/__init__.py:195 msgid "WFM" msgstr "" #: lib/pychess/ic/__init__.py:195 msgid "D" msgstr "" #: lib/pychess/ic/__init__.py:195 msgid "H" msgstr "" #: lib/pychess/ic/__init__.py:195 msgid "CM" msgstr "" #: lib/pychess/ic/__init__.py:195 msgid "FA" msgstr "" #: lib/pychess/ic/__init__.py:195 msgid "NM" msgstr "" #: lib/pychess/Players/CECPEngine.py:857 #, python-format msgid "The engine %s reports an error:" msgstr "" #: lib/pychess/Players/Human.py:20 msgid "Your opponent has offered you a draw." msgstr "" #: lib/pychess/Players/Human.py:21 msgid "" "Your opponent has offered you a draw. If you accept this offer, the game " "will end with a score of 1/2 - 1/2." msgstr "Nasprotnik je ponudil neodločeno. Če sprejmete, se bo igra končala z izzidom 1/2 - 1/2." #: lib/pychess/Players/Human.py:23 msgid "Your opponent wants to abort the game." msgstr "" #: lib/pychess/Players/Human.py:24 msgid "" "Your opponent has asked that the game be aborted. If you accept this offer, " "the game will end with no rating change." msgstr "Nasprotnik je ponudil prekinitev igre. Če sprejmete, igra ne bo vplivala na rang." #: lib/pychess/Players/Human.py:26 msgid "Your opponent wants to adjourn the game." msgstr "" #: lib/pychess/Players/Human.py:27 msgid "" "Your opponent has asked that the game be adjourned. If you accept this " "offer, the game will be adjourned and you can resume it later (when your " "opponent is online and both players agree to resume)." msgstr "Nasprotnik je ponudil odložitev igre. Če sprejmete, bo igra odložena in lahko se bo kasneje nadaljevala (če bo nasprotnik na voljo in željan)." #: lib/pychess/Players/Human.py:29 #, python-format msgid "Your opponent wants to undo %s move(s)." msgstr "" #: lib/pychess/Players/Human.py:30 #, python-format msgid "" "Your opponent has asked that the last %s move(s) be undone. If you accept " "this offer, the game will continue from the earlier position." msgstr "Nasprotnik želi povrniti zadnjih %s potez(o). Če sprejmete, se bo igra nadaljevala s predhodnega položaja." #: lib/pychess/Players/Human.py:32 msgid "Your opponent wants to pause the game." msgstr "" #: lib/pychess/Players/Human.py:33 msgid "" "Your opponent has asked that the game be paused. If you accept this offer, " "the game clock will be paused until both players agree to resume the game." msgstr "Nasprotnik želi narediti premor. Če sprejmete, se bo ura ustavila, dokler ne sprejmete ponudbe o nadaljevanju." #: lib/pychess/Players/Human.py:35 msgid "Your opponent wants to resume the game." msgstr "" #: lib/pychess/Players/Human.py:36 msgid "" "Your opponent has asked that the game be resumed. If you accept this offer, " "the game clock will continue from where it was paused." msgstr "Nasprotnik želi nadaljevati igro. Če sprejmete, bo ura pričela odštevati od tam, kjer je ostala." #: lib/pychess/Players/Human.py:40 msgid "The resignation" msgstr "Odstop" #: lib/pychess/Players/Human.py:41 msgid "The flag call" msgstr "Zastavica je padla" #: lib/pychess/Players/Human.py:42 msgid "The draw offer" msgstr "Ponudba za neodločenost" #: lib/pychess/Players/Human.py:43 msgid "The abort offer" msgstr "Ponudba za prekinitev" #: lib/pychess/Players/Human.py:44 msgid "The adjourn offer" msgstr "Ponudba za odložitev" #: lib/pychess/Players/Human.py:45 msgid "The pause offer" msgstr "Ponudba za premor" #: lib/pychess/Players/Human.py:46 msgid "The resume offer" msgstr "Ponudba za nadaljevanje" #: lib/pychess/Players/Human.py:47 msgid "The offer to switch sides" msgstr "Ponudba za spremembo strani" #: lib/pychess/Players/Human.py:48 msgid "The takeback offer" msgstr "Ponudba za povrnitev poteze" #: lib/pychess/Players/Human.py:52 msgid "resign" msgstr "predam se" #: lib/pychess/Players/Human.py:53 msgid "call your opponents flag" msgstr "sporoči padec nasprotnikove zastavice" #: lib/pychess/Players/Human.py:54 msgid "offer a draw" msgstr "ponudi neodločen izid" #: lib/pychess/Players/Human.py:55 msgid "offer an abort" msgstr "ponudi prekinitev" #: lib/pychess/Players/Human.py:56 msgid "offer to adjourn" msgstr "ponudi odložitev" #: lib/pychess/Players/Human.py:57 msgid "offer a pause" msgstr "ponudi premor" #: lib/pychess/Players/Human.py:58 msgid "offer to resume" msgstr "ponudi nadaljevanje" #: lib/pychess/Players/Human.py:59 msgid "offer to switch sides" msgstr "ponudi spremembo strani" #: lib/pychess/Players/Human.py:60 msgid "offer a takeback" msgstr "ponudi povrnitev" #: lib/pychess/Players/Human.py:61 msgid "ask your opponent to move" msgstr "prosi nasprotnika za premik" #: lib/pychess/Players/Human.py:66 msgid "Your opponent is not out of time." msgstr "Nasprotniku se še ni iztekel čas." #: lib/pychess/Players/Human.py:68 msgid "The clock hasn't been started yet." msgstr "Ura se še ni zagnala." #: lib/pychess/Players/Human.py:70 msgid "You can't switch colors during the game." msgstr "Barve med igro ni mogoče menjati." #: lib/pychess/Players/Human.py:72 msgid "You have tried to undo too many moves." msgstr "Poskusili ste razveljaviti preveč potez." #: lib/pychess/Players/Human.py:180 msgid "Your opponent asks you to hurry!" msgstr "Nasprotnik vas je pozval, da pohitite!" #: lib/pychess/Players/Human.py:181 msgid "" "Generally this means nothing, as the game is time-based, but if you want to " "please your opponent, perhaps you should get going." msgstr "" #: lib/pychess/Players/Human.py:259 #, python-format msgid "%s was declined by your opponent" msgstr "%s je bil zavrjen s strani nasprotnika" #: lib/pychess/Players/Human.py:260 #, python-format msgid "Resend %s?" msgstr "" #: lib/pychess/Players/Human.py:267 msgid "Resend" msgstr "" #: lib/pychess/Players/Human.py:275 #, python-format msgid "%s was withdrawn by your opponent" msgstr "%s je bil preklican s strani nasprotnika" #: lib/pychess/Players/Human.py:276 msgid "Your opponent seems to have changed their mind." msgstr "" #: lib/pychess/Players/Human.py:290 #, python-format msgid "Unable to accept %s" msgstr "Ni mogoče sprejeti %s" #: lib/pychess/Players/Human.py:291 msgid "Probably because it has been withdrawn." msgstr "" #: lib/pychess/Players/Human.py:298 #, python-format msgid "%s returns an error" msgstr "%s je sporočil napako" #: lib/pychess/Savers/chessalpha2.py:12 msgid "Chess Alpha 2 Diagram" msgstr "Šahovski alfa 2 diagram" #: lib/pychess/Savers/chesspastebin.py:39 msgid "Game shared at " msgstr "" #: lib/pychess/Savers/chesspastebin.py:41 msgid "(Link is available on clipboard.)" msgstr "" #: lib/pychess/Savers/database.py:19 msgid "PyChess database" msgstr "" #: lib/pychess/Savers/epd.py:12 msgid "Chess Position" msgstr "Položaj šaha" #: lib/pychess/Savers/fen.py:12 msgid "Simple Chess Position" msgstr "Enostavni položaj šaha" #: lib/pychess/Savers/fen.py:44 lib/pychess/Savers/pgn.py:329 msgid "The game can't be loaded, because of an error parsing FEN" msgstr "" #: lib/pychess/Savers/pgnbase.py:100 #, python-format msgid "" "The game can't be read to end, because of an error parsing move %(moveno)s " "'%(notation)s'." msgstr "Igra ne more biti prebrana do konca, ker je nastala napaka pri analizi premika %(moveno)s '%(notation)s'." #: lib/pychess/Savers/pgnbase.py:102 #, python-format msgid "The move failed because %s." msgstr "Premik je spodletel zaradi %s." #: lib/pychess/Savers/pgnbase.py:110 #, python-format msgid "Error parsing move %(moveno)s %(mstr)s" msgstr "" #: lib/pychess/Savers/pgn.py:28 msgid "Chess Game" msgstr "Šahovska igra" #: lib/pychess/Savers/pgn.py:362 msgid "Invalid move." msgstr "" #: lib/pychess/Savers/png.py:15 msgid "Png image" msgstr "" #: lib/pychess/System/ping.py:31 msgid "Destination Host Unreachable" msgstr "Ciljni strežnik je nedosegljiv" #: lib/pychess/System/ping.py:74 msgid "Died" msgstr "Umrl" #: lib/pychess/Utils/GameModel.py:147 msgid "Local Event" msgstr "Krajevni dogodek" #: lib/pychess/Utils/GameModel.py:148 msgid "Local Site" msgstr "Krajevna stran" #: lib/pychess/Utils/repr.py:12 msgid "Pawn" msgstr "Kmet" #: lib/pychess/Utils/repr.py:14 msgid "P" msgstr "P" #: lib/pychess/Utils/repr.py:14 msgid "N" msgstr "S" #: lib/pychess/Utils/repr.py:14 msgid "R" msgstr "T" #: lib/pychess/Utils/repr.py:14 msgid "Q" msgstr "D" #: lib/pychess/Utils/repr.py:14 msgid "K" msgstr "K" #: lib/pychess/Utils/repr.py:17 msgid "The game ended in a draw" msgstr "Igra se je končala neodločeno" #: lib/pychess/Utils/repr.py:18 #, python-format msgid "%(white)s won the game" msgstr "%(white)s je zmagal" #: lib/pychess/Utils/repr.py:19 #, python-format msgid "%(black)s won the game" msgstr "%(black)s je zmagal" #: lib/pychess/Utils/repr.py:20 msgid "The game has been killed" msgstr "Igra je bila prekinjena" #: lib/pychess/Utils/repr.py:21 msgid "The game has been adjourned" msgstr "Igra je bila odložena" #: lib/pychess/Utils/repr.py:22 msgid "The game has been aborted" msgstr "Igra je bila preklicana" #: lib/pychess/Utils/repr.py:26 msgid "Because neither player has sufficient material to mate" msgstr "Ker nobeden igralec nima zadosti materiala za matiranje" #: lib/pychess/Utils/repr.py:27 msgid "Because the same position was repeated three times in a row" msgstr "Ker je bila enaka poteza ponovljena trikrat zaporedoma" #: lib/pychess/Utils/repr.py:28 msgid "Because the last 50 moves brought nothing new" msgstr "Ker zadnjih 50 potez ni prineslo ničesar novega" #: lib/pychess/Utils/repr.py:29 msgid "Because both players ran out of time" msgstr "Ker je obema igralcema potekel čas" #: lib/pychess/Utils/repr.py:30 #, python-format msgid "Because %(mover)s stalemated" msgstr "Ker je %(mover)s v patu" #: lib/pychess/Utils/repr.py:31 msgid "Because both players agreed to a draw" msgstr "" #: lib/pychess/Utils/repr.py:32 lib/pychess/Utils/repr.py:42 msgid "Because of adjudication by an admin" msgstr "Zaradi razsodbe skrbnika" #: lib/pychess/Utils/repr.py:33 msgid "Because the game exceed the max length" msgstr "Ker je igra prekoračila maksimalno dolžino" #: lib/pychess/Utils/repr.py:34 #, python-format msgid "" "Because %(white)s ran out of time and %(black)s has insufficient material to" " mate" msgstr "Ker je %(white)s potekel čas in %(black)s nima zadosti materiala za matiranje" #: lib/pychess/Utils/repr.py:35 #, python-format msgid "" "Because %(black)s ran out of time and %(white)s has insufficient material to" " mate" msgstr "Ker je %(black)s potekel čas in %(white)s nima zadosti materiala za matiranje" #: lib/pychess/Utils/repr.py:36 msgid "Because both players have the same amount of pieces" msgstr "" #: lib/pychess/Utils/repr.py:38 #, python-format msgid "Because %(loser)s resigned" msgstr "Ker se je %(loser)s predal" #: lib/pychess/Utils/repr.py:39 #, python-format msgid "Because %(loser)s ran out of time" msgstr "Ker je %(loser)s zmanjkalo časa" #: lib/pychess/Utils/repr.py:40 #, python-format msgid "Because %(loser)s was checkmated" msgstr "Ker je bil %(loser)s matiran" #: lib/pychess/Utils/repr.py:41 #, python-format msgid "Because %(loser)s disconnected" msgstr "Ker se je %(loser)s odjavil" #: lib/pychess/Utils/repr.py:43 #, python-format msgid "Because %(winner)s has fewer pieces" msgstr "" #: lib/pychess/Utils/repr.py:44 #, python-format msgid "Because %(winner)s lost all pieces" msgstr "" #: lib/pychess/Utils/repr.py:45 #, python-format msgid "Because %(loser)s king exploded" msgstr "" #: lib/pychess/Utils/repr.py:46 #, python-format msgid "Because %(winner)s king reached the center" msgstr "" #: lib/pychess/Utils/repr.py:47 #, python-format msgid "Because %(winner)s was giving check 3 times" msgstr "" #: lib/pychess/Utils/repr.py:49 msgid "Because a player lost connection" msgstr "Ker je igralec izgubil povezavo" #: lib/pychess/Utils/repr.py:50 msgid "Because both players agreed to an adjournment" msgstr "" #: lib/pychess/Utils/repr.py:51 msgid "Because the server was shut down" msgstr "" #: lib/pychess/Utils/repr.py:52 msgid "" "Because a player lost connection and the other player requested adjournment" msgstr "Ker je igralec izgubil povezavo in je drugi igralec zahteval odložitev" #: lib/pychess/Utils/repr.py:53 #, python-format msgid "" "Because %(black)s lost connection to the server and %(white)s requested " "adjournment" msgstr "" #: lib/pychess/Utils/repr.py:54 #, python-format msgid "" "Because %(white)s lost connection to the server and %(black)s requested " "adjournment" msgstr "" #: lib/pychess/Utils/repr.py:55 #, python-format msgid "Because %(white)s lost connection to the server" msgstr "" #: lib/pychess/Utils/repr.py:56 #, python-format msgid "Because %(black)s lost connection to the server" msgstr "" #: lib/pychess/Utils/repr.py:58 msgid "Because of adjudication by an admin. No rating changes have occurred." msgstr "" #: lib/pychess/Utils/repr.py:59 msgid "" "Because both players agreed to abort the game. No rating changes have " "occurred." msgstr "" #: lib/pychess/Utils/repr.py:60 msgid "Because of courtesy by a player. No rating changes have occurred." msgstr "" #: lib/pychess/Utils/repr.py:61 msgid "" "Because a player aborted the game. Either player can abort the game without " "the other's consent before the second move. No rating changes have occurred." msgstr "" #: lib/pychess/Utils/repr.py:62 msgid "" "Because a player disconnected and there are too few moves to warrant " "adjournment. No rating changes have occurred." msgstr "" #: lib/pychess/Utils/repr.py:63 msgid "Because the server was shut down. No rating changes have occurred." msgstr "" #: lib/pychess/Utils/repr.py:65 #, python-format msgid "Because the %(white)s engine died" msgstr "Ker se je programnik igralca %(white)s prekinil" #: lib/pychess/Utils/repr.py:66 #, python-format msgid "Because the %(black)s engine died" msgstr "" #: lib/pychess/Utils/repr.py:67 msgid "Because the connection to the server was lost" msgstr "Ker je povezava do strežnika prekinjena" #: lib/pychess/Utils/repr.py:68 msgid "The reason is unknown" msgstr "Neznan razlog" #: lib/pychess/Utils/TimeModel.py:229 msgid "min" msgstr "" #: lib/pychess/Utils/TimeModel.py:231 msgid "sec" msgstr "" #: lib/pychess/Variants/asean.py:12 msgid "" "ASEAN: http://www.ncf-" "phil.org/downloadables/2014/May/Asean_chess/Laws_of_ASEAN_Chess_2011_Nov_26.doc" msgstr "" #: lib/pychess/Variants/asean.py:13 msgid "ASEAN" msgstr "" #: lib/pychess/Variants/asean.py:33 msgid "Makruk: http://en.wikipedia.org/wiki/Makruk" msgstr "" #: lib/pychess/Variants/asean.py:34 msgid "Makruk" msgstr "" #: lib/pychess/Variants/asean.py:60 msgid "Cambodian: http://www.khmerinstitute.org/culture/ok.html" msgstr "" #: lib/pychess/Variants/asean.py:61 msgid "Cambodian" msgstr "" #: lib/pychess/Variants/asean.py:86 msgid "" "Ai-Wok: http://www.open-" "aurec.com/wbforum/viewtopic.php?p=199364&sid=20963a1de2c164050de019e5ed6bf7c4#p199364" msgstr "" #: lib/pychess/Variants/asean.py:87 msgid "Ai-Wok" msgstr "" #: lib/pychess/Variants/asean.py:111 msgid "Sittuyin: http://en.wikipedia.org/wiki/Sittuyin" msgstr "" #: lib/pychess/Variants/asean.py:112 msgid "Sittuyin" msgstr "" #: lib/pychess/Variants/asymmetricrandom.py:12 msgid "" "FICS wild/4: http://www.freechess.org/Help/HelpFiles/wild.html\n" "* Randomly chosen pieces (two queens or three rooks possible)\n" "* Exactly one king of each color\n" "* Pieces placed randomly behind the pawns, SUBJECT TO THE CONSTRAINT THAT THE BISHOPS ARE BALANCED\n" "* No castling\n" "* Black's arrangement DOES NOT mirrors white's" msgstr "" #: lib/pychess/Variants/asymmetricrandom.py:18 msgid "Asymmetric Random" msgstr "Asimetrično naključen" #: lib/pychess/Variants/atomic.py:14 msgid "FICS atomic: http://www.freechess.org/Help/HelpFiles/atomic.html" msgstr "" #: lib/pychess/Variants/blindfold.py:7 msgid "" "Classic chess rules with hidden figurines\n" "http://en.wikipedia.org/wiki/Blindfold_chess" msgstr "" #: lib/pychess/Variants/blindfold.py:9 #: lib/pychess/widgets/newGameDialog.py:264 msgid "Blindfold" msgstr "Na slepo" #: lib/pychess/Variants/blindfold.py:18 msgid "" "Classic chess rules with hidden pawns\n" "http://en.wikipedia.org/wiki/Blindfold_chess" msgstr "" #: lib/pychess/Variants/blindfold.py:20 msgid "Hidden pawns" msgstr "" #: lib/pychess/Variants/blindfold.py:29 msgid "" "Classic chess rules with hidden pieces\n" "http://en.wikipedia.org/wiki/Blindfold_chess" msgstr "" #: lib/pychess/Variants/blindfold.py:31 msgid "Hidden pieces" msgstr "" #: lib/pychess/Variants/blindfold.py:40 msgid "" "Classic chess rules with all pieces white\n" "http://en.wikipedia.org/wiki/Blindfold_chess" msgstr "" #: lib/pychess/Variants/blindfold.py:42 msgid "All white" msgstr "" #: lib/pychess/Variants/bughouse.py:8 msgid "FICS bughouse: http://www.freechess.org/Help/HelpFiles/bughouse.html" msgstr "" #: lib/pychess/Variants/corner.py:12 msgid "" "http://brainking.com/en/GameRules?tp=2\n" "* Placement of the pieces on the 1st and 8th row are randomized\n" "* The king is in the right hand corner\n" "* Bishops must start on opposite color squares\n" "* Black's starting position is obtained by rotating white's position 180 degrees around the board's center\n" "* No castling" msgstr "" #: lib/pychess/Variants/corner.py:18 msgid "Corner" msgstr "Kot" #: lib/pychess/Variants/crazyhouse.py:8 msgid "" "FICS crazyhouse: http://www.freechess.org/Help/HelpFiles/crazyhouse.html" msgstr "" #: lib/pychess/Variants/euroshogi.py:9 msgid "EuroShogi: http://en.wikipedia.org/wiki/EuroShogi" msgstr "" #: lib/pychess/Variants/euroshogi.py:10 msgid "EuroShogi" msgstr "" #: lib/pychess/Variants/fischerandom.py:18 msgid "" "http://en.wikipedia.org/wiki/Chess960\n" "FICS wild/fr: http://www.freechess.org/Help/HelpFiles/wild.html" msgstr "" #: lib/pychess/Variants/fischerandom.py:20 msgid "Fischer Random" msgstr "Fischer naključna" #: lib/pychess/Variants/kingofthehill.py:8 msgid "" "Bringing your king legally to the center (e4, d4, e5, d5) instantly wins the game!\n" "Normal rules apply in other cases and checkmate also ends the game." msgstr "" #: lib/pychess/Variants/kingofthehill.py:10 msgid "King of the hill" msgstr "" #: lib/pychess/Variants/knightodds.py:8 msgid "One player starts with one less knight piece" msgstr "" #: lib/pychess/Variants/knightodds.py:9 msgid "Knight odds" msgstr "Konj prednosti" #: lib/pychess/Variants/losers.py:8 msgid "FICS losers: http://www.freechess.org/Help/HelpFiles/losers_chess.html" msgstr "" #: lib/pychess/Variants/normal.py:4 msgid "" "Classic chess rules\n" "http://en.wikipedia.org/wiki/Chess" msgstr "" #: lib/pychess/Variants/normal.py:6 lib/pychess/widgets/newGameDialog.py:157 msgid "Normal" msgstr "Običajno" #: lib/pychess/Variants/pawnodds.py:8 msgid "One player starts with one less pawn piece" msgstr "" #: lib/pychess/Variants/pawnodds.py:9 msgid "Pawn odds" msgstr "Kmet prednosti" #: lib/pychess/Variants/pawnspassed.py:11 msgid "" "FICS wild/8a: http://www.freechess.org/Help/HelpFiles/wild.html\n" "White pawns start on 5th rank and black pawns on the 4th rank" msgstr "" #: lib/pychess/Variants/pawnspassed.py:13 msgid "Pawns Passed" msgstr "Kmeti so zaobšli" #: lib/pychess/Variants/pawnspushed.py:10 msgid "" "FICS wild/8: http://www.freechess.org/Help/HelpFiles/wild.html\n" "Pawns start on 4th and 5th ranks rather than 2nd and 7th" msgstr "" #: lib/pychess/Variants/pawnspushed.py:12 msgid "Pawns Pushed" msgstr "Pritisk kmetov" #: lib/pychess/Variants/queenodds.py:8 msgid "One player starts with one less queen piece" msgstr "" #: lib/pychess/Variants/queenodds.py:9 msgid "Queen odds" msgstr "Kraljica prednosti" #: lib/pychess/Variants/randomchess.py:11 msgid "" "FICS wild/3: http://www.freechess.org/Help/HelpFiles/wild.html\n" "* Randomly chosen pieces (two queens or three rooks possible)\n" "* Exactly one king of each color\n" "* Pieces placed randomly behind the pawns\n" "* No castling\n" "* Black's arrangement mirrors white's" msgstr "" #: lib/pychess/Variants/randomchess.py:17 #: lib/pychess/widgets/TaskerManager.py:155 msgid "Random" msgstr "Naključen" #: lib/pychess/Variants/rookodds.py:8 msgid "One player starts with one less rook piece" msgstr "" #: lib/pychess/Variants/rookodds.py:9 msgid "Rook odds" msgstr "Trnjava prednosti" #: lib/pychess/Variants/shuffle.py:11 msgid "" "xboard nocastle: http://home.hccnet.nl/h.g.muller/engine-intf.html#8\n" "FICS wild/2: http://www.freechess.org/Help/HelpFiles/wild.html\n" "* Random arrangement of the pieces behind the pawns\n" "* No castling\n" "* Black's arrangement mirrors white's" msgstr "" #: lib/pychess/Variants/suicide.py:11 msgid "" "FICS suicide: http://www.freechess.org/Help/HelpFiles/suicide_chess.html" msgstr "" #: lib/pychess/Variants/theban.py:10 msgid "" "Variant developed by Kai Laskos: " "http://talkchess.com/forum/viewtopic.php?t=40990" msgstr "" #: lib/pychess/Variants/theban.py:11 msgid "Theban" msgstr "" #: lib/pychess/Variants/threecheck.py:10 msgid "Win by giving check 3 times" msgstr "" #: lib/pychess/Variants/threecheck.py:11 msgid "Three-check" msgstr "" #: lib/pychess/Variants/upsidedown.py:10 msgid "" "FICS wild/5: http://www.freechess.org/Help/HelpFiles/wild.html\n" "http://en.wikipedia.org/wiki/Chess_variant#Chess_with_different_starting_positions\n" "Pawns start on their 7th rank rather than their 2nd rank!" msgstr "" #: lib/pychess/Variants/upsidedown.py:13 msgid "Upside Down" msgstr "Zgoraj navzdol" #: lib/pychess/Variants/wildcastle.py:10 msgid "" "xboard wildcastle http://home.hccnet.nl/h.g.muller/engine-intf.html#8\n" "FICS wild/0: http://www.freechess.org/Help/HelpFiles/wild.html\n" "* White has the typical set-up at the start.\n" "* Black's pieces are the same, except that the King and Queen are reversed,\n" "* so they are not on the same files as White's King and Queen.\n" "* Castling is done similarly to normal chess:\n" "* o-o-o indicates long castling and o-o short castling." msgstr "" #: lib/pychess/Variants/wildcastle.py:17 msgid "Wildcastle" msgstr "" #: lib/pychess/Variants/wildcastleshuffle.py:11 msgid "" "xboard wildcastle http://home.hccnet.nl/h.g.muller/engine-intf.html#8\n" "FICS wild/1: http://www.freechess.org/Help/HelpFiles/wild.html\n" "* In this variant both sides have the same set of pieces as in normal chess.\n" "* The white king starts on d1 or e1 and the black king starts on d8 or e8,\n" "* and the rooks are in their usual positions.\n" "* Bishops are always on opposite colors.\n" "* Subject to these constraints the position of the pieces on their first ranks is random.\n" "* Castling is done similarly to normal chess:\n" "* o-o-o indicates long castling and o-o short castling." msgstr "" #: lib/pychess/Variants/wildcastleshuffle.py:20 msgid "Wildcastle shuffle" msgstr "" #: lib/pychess/widgets/analyzegameDialog.py:85 msgid "Game analyzing in progress..." msgstr "" #: lib/pychess/widgets/analyzegameDialog.py:86 msgid "Do you want to abort it?" msgstr "" #: lib/pychess/widgets/analyzegameDialog.py:95 #: lib/pychess/widgets/gamewidget.py:202 lib/pychess/widgets/gamewidget.py:320 msgid "Abort" msgstr "" #: lib/pychess/widgets/ChatView.py:125 msgid "Observers" msgstr "" #: lib/pychess/widgets/ChatWindow.py:222 msgid "You have opened no conversations yet" msgstr "Niste še pričeli s pogovorom" #: lib/pychess/widgets/ChatWindow.py:254 msgid "Only registered users may talk to this channel" msgstr "Samo registrirani uporabniki se lahko pogovarjajo v tej sobi" #: lib/pychess/widgets/ChatWindow.py:312 msgid "No conversation's selected" msgstr "Ni izbranega pogovora" #: lib/pychess/widgets/ChatWindow.py:350 msgid "Loading player data" msgstr "Nalaganje igralčevih podatkov" #: lib/pychess/widgets/ChatWindow.py:400 msgid "Receiving list of players" msgstr "" #: lib/pychess/widgets/ChatWindow.py:518 msgid "Friends" msgstr "" #: lib/pychess/widgets/ChatWindow.py:529 msgid "Admin" msgstr "" #: lib/pychess/widgets/ChatWindow.py:540 msgid "More channels" msgstr "Več sob" #: lib/pychess/widgets/ChatWindow.py:548 msgid "More players" msgstr "Več igralcev" #: lib/pychess/widgets/ChatWindow.py:558 msgid "Computers" msgstr "" #: lib/pychess/widgets/ChatWindow.py:568 msgid "BlindFold" msgstr "" #: lib/pychess/widgets/ChatWindow.py:578 msgid "Guests" msgstr "" #: lib/pychess/widgets/ChatWindow.py:805 msgid "Conversations" msgstr "Pogovori" #: lib/pychess/widgets/ChatWindow.py:807 msgid "Conversation info" msgstr "Informacije o pogovorih" #: lib/pychess/widgets/enginesDialog.py:152 msgid "Select engine" msgstr "" #: lib/pychess/widgets/enginesDialog.py:156 msgid "Executable files" msgstr "" #: lib/pychess/widgets/enginesDialog.py:176 #: lib/pychess/widgets/enginesDialog.py:210 #: lib/pychess/widgets/enginesDialog.py:235 #, python-format msgid "Unable to add %s" msgstr "" #: lib/pychess/widgets/enginesDialog.py:177 msgid "wine not installed" msgstr "" #: lib/pychess/widgets/enginesDialog.py:211 #: lib/pychess/widgets/enginesDialog.py:236 msgid "There is something wrong with this executable" msgstr "" #: lib/pychess/widgets/enginesDialog.py:266 msgid "Select working directory" msgstr "" #: lib/pychess/widgets/gamenanny.py:115 #, python-format msgid " invalid engine move: %s" msgstr "" #: lib/pychess/widgets/gamenanny.py:134 msgid "Offer Rematch" msgstr "Ponudi revanšo" #: lib/pychess/widgets/gamenanny.py:136 lib/pychess/widgets/gamenanny.py:147 #, python-format msgid "Observe %s" msgstr "" #: lib/pychess/widgets/gamenanny.py:168 msgid "Play Rematch" msgstr "Igraj revanšo" #: lib/pychess/widgets/gamenanny.py:171 msgid "Undo one move" msgstr "Razveljavi eno potezo" #: lib/pychess/widgets/gamenanny.py:173 msgid "Undo two moves" msgstr "Razveljavi dve potezi" #: lib/pychess/widgets/gamenanny.py:203 msgid "The game is paused" msgstr "" #: lib/pychess/widgets/gamenanny.py:221 lib/pychess/widgets/gamenanny.py:222 msgid "Loaded game" msgstr "Igra naložena" #: lib/pychess/widgets/gamenanny.py:228 msgid "Saved game" msgstr "Shranjena igra" #: lib/pychess/widgets/gamenanny.py:232 msgid "Analyzer started" msgstr "" #: lib/pychess/widgets/gamenanny.py:281 msgid "You sent an abort offer" msgstr "" #: lib/pychess/widgets/gamenanny.py:283 msgid "You sent an adjournment offer" msgstr "" #: lib/pychess/widgets/gamenanny.py:285 msgid "You sent a draw offer" msgstr "Poslali ste ponudbo za neodločenost" #: lib/pychess/widgets/gamenanny.py:287 msgid "You sent a pause offer" msgstr "" #: lib/pychess/widgets/gamenanny.py:289 msgid "You sent a resume offer" msgstr "" #: lib/pychess/widgets/gamenanny.py:291 msgid "You sent an undo offer" msgstr "" #: lib/pychess/widgets/gamenanny.py:293 msgid "You asked your opponent to move" msgstr "" #: lib/pychess/widgets/gamenanny.py:305 #, python-format msgid "Engine, %s, has died" msgstr "Programnik, %s, se je prekinil" #: lib/pychess/widgets/gamenanny.py:306 msgid "" "PyChess has lost connection to the engine, probably because it has died.\n" "\n" "You can try to start a new game with the engine, or try to play against another one." msgstr "PyChess je izgubil povezavo s programnikom, verjetno zato, ker je bil prekinjen.\n\nPoskusiš lahko zagnati novo igro s programnikom ali poskusi igrati z novim." #: lib/pychess/widgets/gamewidget.py:204 msgid "" "This game can be automatically aborted without rating loss because there has" " not yet been two moves made" msgstr "" #: lib/pychess/widgets/gamewidget.py:206 msgid "Offer Abort" msgstr "" #: lib/pychess/widgets/gamewidget.py:208 msgid "" "Your opponent must agree to abort the game because there has been two or " "more moves made" msgstr "" #: lib/pychess/widgets/gamewidget.py:226 msgid "This game can not be adjourned because one or both players are guests" msgstr "" #: lib/pychess/widgets/gamewidget.py:243 msgid "Claim Draw" msgstr "" #: lib/pychess/widgets/gamewidget.py:325 msgid "Pause" msgstr "" #: lib/pychess/widgets/gamewidget.py:326 msgid "Resume" msgstr "" #: lib/pychess/widgets/gamewidget.py:328 msgid "Offer Pause" msgstr "" #: lib/pychess/widgets/gamewidget.py:329 msgid "Offer Resume" msgstr "" #: lib/pychess/widgets/gamewidget.py:333 msgid "Undo" msgstr "" #: lib/pychess/widgets/gamewidget.py:335 msgid "Offer Undo" msgstr "" #: lib/pychess/widgets/gamewidget.py:550 msgid " has lagged for 30 seconds" msgstr "" #: lib/pychess/widgets/gamewidget.py:566 msgid " is lagging heavily but hasn't disconnected" msgstr "" #: lib/pychess/widgets/gamewidget.py:567 msgid "Continue to wait for opponent, or try to adjourn the game?" msgstr "" #: lib/pychess/widgets/gamewidget.py:575 msgid "Wait" msgstr "" #: lib/pychess/widgets/gamewidget.py:576 msgid "Adjourn" msgstr "" #: lib/pychess/widgets/gamewidget.py:648 msgid "Jump to initial position" msgstr "Skoči na začetni položaj" #: lib/pychess/widgets/gamewidget.py:653 msgid "Step back one move" msgstr "Korak nazaj za eno potezo" #: lib/pychess/widgets/gamewidget.py:658 msgid "Go back to the main line" msgstr "" #: lib/pychess/widgets/gamewidget.py:664 msgid "Step forward one move" msgstr "Korak naprej za eno potezo" #: lib/pychess/widgets/gamewidget.py:669 msgid "Jump to latest position" msgstr "Skoči na zadnji položaj" #: lib/pychess/widgets/gamewidget.py:903 msgid "PyChess was unable to load your panel settings" msgstr "PyChess ni mogel naložiti vaših nastavitev pulta" #: lib/pychess/widgets/gamewidget.py:904 msgid "" "Your panel settings have been reset. If this problem repeats, you should " "report it to the developers" msgstr "Vaše nastavitve pulta so bile ponastavljene. Če se ta težava ponavlja, prijavite težavo razvijalcem programa" #: lib/pychess/widgets/ionest.py:67 lib/pychess/widgets/newGameDialog.py:389 #: lib/pychess/widgets/TaskerManager.py:210 msgid "You" msgstr "" #: lib/pychess/widgets/ionest.py:70 lib/pychess/widgets/newGameDialog.py:390 #: lib/pychess/widgets/preferencesDialog.py:61 #: lib/pychess/widgets/TaskerManager.py:213 msgid "Guest" msgstr "Gost" #: lib/pychess/widgets/ionest.py:93 msgid "Error loading game" msgstr "" #: lib/pychess/widgets/ionest.py:127 lib/pychess/widgets/newGameDialog.py:480 msgid "Open Game" msgstr "Odpri igro" #: lib/pychess/widgets/ionest.py:137 msgid "All Files" msgstr "Vse datoteke" #: lib/pychess/widgets/ionest.py:140 msgid "Detect type automatically" msgstr "Samodejno zaznaj vrsto" #: lib/pychess/widgets/ionest.py:146 msgid "All Chess Files" msgstr "Vse šahovske datoteke" #: lib/pychess/widgets/ionest.py:228 msgid "Save Game" msgstr "Shrani igro" #: lib/pychess/widgets/ionest.py:228 msgid "Export position" msgstr "" #: lib/pychess/widgets/ionest.py:232 lib/pychess/widgets/ionest.py:360 msgid "vs." msgstr "proti" #: lib/pychess/widgets/ionest.py:249 #, python-format msgid "Unknown file type '%s'" msgstr "Neznana vrsta datoteke '%s'" #: lib/pychess/widgets/ionest.py:250 #, python-format msgid "" "Was unable to save '%(uri)s' as PyChess doesn't know the format " "'%(ending)s'." msgstr "'%(uri)s' ni mogoče shraniti, PyChess verjetno ne pozna vrste '%(ending)s'." #: lib/pychess/widgets/ionest.py:266 #, python-format msgid "Unable to save file '%s'" msgstr "Datoteke '%s' ni mogoče shraniti" #: lib/pychess/widgets/ionest.py:268 msgid "" "You don't have the necessary rights to save the file.\n" "Please ensure that you have given the right path and try again." msgstr "Nimate ustreznih pravic za shranjevanje datoteke.\nProsimo, preverite, če ste določil pravo pot in poskusite znova." #: lib/pychess/widgets/ionest.py:276 msgid "_Replace" msgstr "_Zamenjaj" #: lib/pychess/widgets/ionest.py:280 msgid "File exists" msgstr "Datoteka že obstaja" #: lib/pychess/widgets/ionest.py:282 #, python-format msgid "" "A file named '%s' already exists. Would you like to replace " "it?" msgstr "Datoteka '%s' že obstaja. Ali jo želite zamenjati?" #: lib/pychess/widgets/ionest.py:283 #, python-format msgid "" "The file already exists in '%s'. If you replace it, its content will be " "overwritten." msgstr "Datoteka že obstaja v '%s'. Če jo zamenjate, bo vsebina prepisana." #: lib/pychess/widgets/ionest.py:299 msgid "Could not save the file" msgstr "Ni mogoče shraniti datoteke" #: lib/pychess/widgets/ionest.py:300 msgid "PyChess was not able to save the game" msgstr "PyChess ne more shraniti igre" #: lib/pychess/widgets/ionest.py:301 #, python-format msgid "The error was: %s" msgstr "Napaka: %s" #: lib/pychess/widgets/ionest.py:325 #, python-format msgid "There is %d game with unsaved moves." msgid_plural "There are %d games with unsaved moves." msgstr[0] "Obstaja %d iger z neshranjenimi potezami." msgstr[1] "Obstaja %d igra z neshranjenimi potezami." msgstr[2] "Obstajata %d igri z neshranjenimi potezami." msgstr[3] "Obstajajo %d igre z neshranjenimi potezami." #: lib/pychess/widgets/ionest.py:328 msgid "Save moves before closing?" msgstr "Želite shraniti poteze pred zapiranjem?" #: lib/pychess/widgets/ionest.py:339 msgid "Unable to save to configured file. Save the games before closing?" msgstr "" #: lib/pychess/widgets/ionest.py:366 #, python-format msgid "_Save %d document" msgid_plural "_Save %d documents" msgstr[0] "_Shrani %d dokumentov" msgstr[1] "_Shrani %d dokument" msgstr[2] "_Shrani %d dokumenta" msgstr[3] "_Shrani %d dokumente" #: lib/pychess/widgets/ionest.py:412 msgid "Save the current game before you close it?" msgstr "" #: lib/pychess/widgets/ionest.py:420 msgid "" "Unable to save to configured file. Save the current game before you close " "it?" msgstr "" #: lib/pychess/widgets/ionest.py:434 msgid "" "It is not possible later to continue the game,\n" "if you don't save it." msgstr "Če je sedaj ne shranite,\nkasneje ne bo mogoče nadaljevati igre." #: lib/pychess/widgets/LogDialog.py:26 msgid "PyChess Information Window" msgstr "Okno informacij PyChess" #: lib/pychess/widgets/LogDialog.py:184 lib/pychess/widgets/LogDialog.py:188 msgid "of" msgstr "od" #: lib/pychess/widgets/newGameDialog.py:84 #: lib/pychess/widgets/newGameDialog.py:85 msgid "Human Being" msgstr "Človeško bitje" #: lib/pychess/widgets/newGameDialog.py:155 msgid "Rapid" msgstr "Naglo" #: lib/pychess/widgets/newGameDialog.py:224 msgid "Minutes:" msgstr "Minut:" #: lib/pychess/widgets/newGameDialog.py:228 msgid "Gain:" msgstr "Dodatek:" #: lib/pychess/widgets/newGameDialog.py:241 #, python-format msgid "%(name)s %(minutes)d min + %(gain)d sec/move" msgstr "%(name)s %(minutes)d min + %(gain)d sek/potezo" #: lib/pychess/widgets/newGameDialog.py:244 #, python-format msgid "%(name)s %(minutes)d min %(gain)d sec/move" msgstr "%(name)s %(minutes)d min %(gain)d sek/potezo" #: lib/pychess/widgets/newGameDialog.py:247 #, python-format msgid "%(name)s %(minutes)d min" msgstr "%(name)s %(minutes)d min" #: lib/pychess/widgets/newGameDialog.py:265 msgid "Odds" msgstr "Neenako" #: lib/pychess/widgets/newGameDialog.py:269 msgid "Asian variants" msgstr "" #: lib/pychess/widgets/newGameDialog.py:301 msgid " chess" msgstr "" #: lib/pychess/widgets/newGameDialog.py:682 msgid "Type or paste PGN game or FEN positions here" msgstr "" #: lib/pychess/widgets/newGameDialog.py:725 msgid "Enter Game" msgstr "Vnesi igro" #: lib/pychess/widgets/preferencesDialog.py:123 msgid "Select book file" msgstr "" #: lib/pychess/widgets/preferencesDialog.py:128 msgid "Opening books" msgstr "" #: lib/pychess/widgets/preferencesDialog.py:156 msgid "Select Gaviota TB path" msgstr "" #: lib/pychess/widgets/preferencesDialog.py:331 msgid "Open Sound File" msgstr "Odpri zvočno datoteko" #: lib/pychess/widgets/preferencesDialog.py:341 msgid "Sound files" msgstr "" #: lib/pychess/widgets/preferencesDialog.py:485 msgid "Undescribed panel" msgstr "Neopisan pult" #: lib/pychess/widgets/preferencesDialog.py:678 msgid "Select auto save path" msgstr "" #: lib/pychess/widgets/tipOfTheDay.py:51 msgid "" "You can start a new game by Game > New Game, in New Game " "window do you can choose Players, Time Control and Chess " "Variants." msgstr "Novo igro lahko pričnete z Igra > Nova igra, v oknu Nova igra, kjer lahko izberete Igralce, Nadzor časa in Različice šaha." #: lib/pychess/widgets/tipOfTheDay.py:52 msgid "" "You can choose from 20 different difficulties to play against the computer." msgstr "" #: lib/pychess/widgets/tipOfTheDay.py:53 msgid "" "Chess Variants are like the pieces of the last line will be placed on the " "board." msgstr "Različice šaha so kot figure zadnje vrstice, ki bodo nastavljene na ploščo." #: lib/pychess/widgets/tipOfTheDay.py:54 msgid "" "To save a game Game > Save Game As, give the filename and " "choose where you want to be saved. At the bottom choose extension type of " "the file, and Save." msgstr "Za shranitev igre pritisnite Igra > Shrani igro kot, dodelite ime datoteke in izberite, kam želite igro shraniti. Na dnu izberite vrsto pripone datoteke in pritisnite Shrani." #: lib/pychess/widgets/tipOfTheDay.py:55 msgid "" "Do you know that you can call flag when the clock is with you, " "Actions > Call Flag." msgstr "Ali ste vedeli, da lahko sporočite padec zastavice, ko je nasprotniku potekel čas z Dejanja > Sporoči padec zastavice?" #: lib/pychess/widgets/tipOfTheDay.py:56 msgid "Pressing Ctrl+Z to offer opponent the possible rollback moves." msgstr "S pritiskom na Ctrl+Z lahko prosite nasprotnika za povrnitev potez." #: lib/pychess/widgets/tipOfTheDay.py:57 msgid "" "To play on Fullscreen mode, just type F11. Coming back, F11 " "again." msgstr "Za igranje v Celozaslonskem načinu pritisnite F11. Za vrnitev ponovno pritisnite F11." #: lib/pychess/widgets/tipOfTheDay.py:58 msgid "Hint mode analyzing your game, enable this type Ctrl+H." msgstr "Svetovalni način analizira vašo igro. Omogočite ga lahko s Ctrl+H." #: lib/pychess/widgets/tipOfTheDay.py:59 msgid "" "Spy mode analyzing the oponnent game, enable this type Ctrl+Y." msgstr "Vohunski način analizira nasprotnikovo igro. Omogočite ga lahko s Ctrl+Y." #: lib/pychess/widgets/tipOfTheDay.py:60 msgid "" "You can play chess listening to the sounds of the game, for that, " "Settings > Preferences > Sound tab, enable Use " "sounds in PyChess and choose your preferred sounds." msgstr "Šah lahko igrate s poslušanjem zvokov igre. Izberite Nastavitve > Možnosti > Zvoki in omogočite Uporabi zvoke v PyChess in izberite želene zvoke." #: lib/pychess/widgets/tipOfTheDay.py:61 msgid "" "Do you know that you can help translate Pychess in your language, " "Help > Translate Pychess." msgstr "Ali ste vedeli, da lahko pomagate prevesti PyChess v svoj jezik? Izberite Pomoč > Prevedi PyChess." #: lib/pychess/widgets/tipOfTheDay.py:62 msgid "" "Do you know that it is possible to finish a chess game in just 2 turns?" msgstr "Ali ste vedeli, da je šahovsko igro končati v samo dveh potezah?" #: lib/pychess/widgets/tipOfTheDay.py:63 msgid "" "Do you know that the number of possible chess games exceeds the number of " "atoms in the Universe?" msgstr "Ali ste vedeli, da število možnih šahovskih iger presega število elementov v vesolju?" #: lib/pychess/ic/managers/ChatManager.py:184 msgid "Shout" msgstr "Klic" #: lib/pychess/ic/managers/ChatManager.py:185 msgid "Chess Shout" msgstr "Klic šaha" #: lib/pychess/ic/managers/ChatManager.py:195 #, python-format msgid "Unofficial channel %d" msgstr "Neuradna soba %d" #: lib/pychess/Utils/lutils/LBoard.py:152 #, python-format msgid "" "FEN needs 6 data fields. \n" "\n" "%s" msgstr "" #: lib/pychess/Utils/lutils/LBoard.py:154 #, python-format msgid "" "FEN needs at least 2 data fields in fenstr. \n" "\n" "%s" msgstr "" #: lib/pychess/Utils/lutils/LBoard.py:175 #, python-format msgid "" "Needs 7 slashes in piece placement field. \n" "\n" "%s" msgstr "" #: lib/pychess/Utils/lutils/LBoard.py:178 #, python-format msgid "" "Active color field must be one of w or b. \n" "\n" "%s" msgstr "" #: lib/pychess/Utils/lutils/LBoard.py:189 #, python-format msgid "" "Castling availability field is not legal. \n" "\n" "%s" msgstr "" #: lib/pychess/Utils/lutils/LBoard.py:192 #, python-format msgid "" "En passant cord is not legal. \n" "\n" "%s" msgstr "" #: lib/pychess/Utils/lutils/lmove.py:260 msgid "invalid promoted piece" msgstr "" #: lib/pychess/Utils/lutils/lmove.py:272 msgid "the move needs a piece and a cord" msgstr "poteza potrebuje figuro in notacijo" #: lib/pychess/Utils/lutils/lmove.py:306 lib/pychess/Utils/lutils/lmove.py:556 msgid "promotion move without promoted piece is incorrect" msgstr "" #: lib/pychess/Utils/lutils/lmove.py:312 #, python-format msgid "the captured cord (%s) is incorrect" msgstr "zavzeta notacija (%s) je nepravilna" #: lib/pychess/Utils/lutils/lmove.py:323 #, python-format msgid "the end cord (%s) is incorrect" msgstr "" #: lib/pychess/Utils/lutils/strateval.py:24 sidepanel/commentPanel.py:191 #: sidepanel/commentPanel.py:208 msgid "and" msgstr "in" #: lib/pychess/Utils/lutils/strateval.py:43 msgid "draws" msgstr "neodločen" #: lib/pychess/Utils/lutils/strateval.py:45 msgid "mates" msgstr "matira" #: lib/pychess/Utils/lutils/strateval.py:49 msgid "puts opponent in check" msgstr "postavi nasprotnika v šah" #: lib/pychess/Utils/lutils/strateval.py:73 msgid "improves king safety" msgstr "izboljša kraljevo varnost" #: lib/pychess/Utils/lutils/strateval.py:75 msgid "slightly improves king safety" msgstr "neznatno izboljša kraljevo varnost" #: lib/pychess/Utils/lutils/strateval.py:108 msgid "moves a rook to an open file" msgstr "premakne trnjavo na odprti stolpec" #: lib/pychess/Utils/lutils/strateval.py:109 msgid "moves an rook to a half-open file" msgstr "premakne trnjavo na polovico odprtega stolpca" #: lib/pychess/Utils/lutils/strateval.py:119 #: lib/pychess/Utils/lutils/strateval.py:121 #: lib/pychess/Utils/lutils/strateval.py:124 #: lib/pychess/Utils/lutils/strateval.py:126 #, python-format msgid "moves bishop into fianchetto: %s" msgstr "premakne tekača na bok: %s" #: lib/pychess/Utils/lutils/strateval.py:132 #, python-format msgid "promotes a Pawn to a %s" msgstr "poviša kmeta v %s" #: lib/pychess/Utils/lutils/strateval.py:135 msgid "castles" msgstr "zavrže" #: lib/pychess/Utils/lutils/strateval.py:158 msgid "takes back material" msgstr "povrne material" #: lib/pychess/Utils/lutils/strateval.py:162 #: lib/pychess/Utils/lutils/strateval.py:170 msgid "sacrifies material" msgstr "žrtvuje material" #: lib/pychess/Utils/lutils/strateval.py:164 msgid "exchanges material" msgstr "zamenja material" #: lib/pychess/Utils/lutils/strateval.py:166 msgid "captures material" msgstr "zavzame material" #: lib/pychess/Utils/lutils/strateval.py:291 #, python-format msgid "rescues a %s" msgstr "reši %s" #: lib/pychess/Utils/lutils/strateval.py:294 #, python-format msgid "threatens to win material by %s" msgstr "preti nad zmago materiala z %s" #: lib/pychess/Utils/lutils/strateval.py:296 #, python-format msgid "increases the pressure on %s" msgstr "poveča pritisk na %s" #: lib/pychess/Utils/lutils/strateval.py:298 #, python-format msgid "defends %s" msgstr "brani %s" #: lib/pychess/Utils/lutils/strateval.py:336 #, python-format msgid "pins an enemy %(oppiece)s on the %(piece)s at %(cord)s" msgstr "pritisne na nasprotnika %(oppiece)s z %(piece)s pri %(cord)s" #: lib/pychess/Utils/lutils/strateval.py:369 #, python-format msgid "White has a new piece in outpost: %s" msgstr "Beli ima novo figuro v postojanki: %s" #: lib/pychess/Utils/lutils/strateval.py:377 #, python-format msgid "Black has a new piece in outpost: %s" msgstr "Črni ima novo figuro v postojanki: %s" #: lib/pychess/Utils/lutils/strateval.py:416 #, python-format msgid "%(color)s has a new passed pawn on %(cord)s" msgstr "%(color)s ima mimohodnega kmeta na %(cord)s" #: lib/pychess/Utils/lutils/strateval.py:470 msgid "half-open" msgstr "napol odprt" #: lib/pychess/Utils/lutils/strateval.py:472 #, python-format msgid "in the %(x)s%(y)s file" msgstr "v %(x)s%(y)s datoteki" #: lib/pychess/Utils/lutils/strateval.py:474 #, python-format msgid "in the %(x)s%(y)s files" msgstr "v %(x)s%(y)s datotekah" #: lib/pychess/Utils/lutils/strateval.py:477 #, python-format msgid "%(color)s got a double pawn %(place)s" msgstr "%(color)s je dobil dvojnega kmeta %(place)s" #: lib/pychess/Utils/lutils/strateval.py:478 #, python-format msgid "%(color)s got new double pawns %(place)s" msgstr "%(color)s je dobil novega dvojnega kmeta %(place)s" #: lib/pychess/Utils/lutils/strateval.py:485 #, python-format msgid "%(color)s got an isolated pawn in the %(x)s file" msgid_plural "%(color)s got isolated pawns in the %(x)s files" msgstr[0] "%(color)s je dobil izolirane kmete v datoteki %(x)s" msgstr[1] "%(color)s je dobil izoliranega kmeta v datoteki %(x)s" msgstr[2] "%(color)s je dobil izolirana kmeta v datoteki %(x)s" msgstr[3] "%(color)s je dobil izolirane kmete v datoteki %(x)s" #: lib/pychess/Utils/lutils/strateval.py:492 #, python-format msgid "%s moves pawns into stonewall formation" msgstr "%s premakne kmeta v formacijo kamnenega zidu" #: lib/pychess/Utils/lutils/strateval.py:507 #: lib/pychess/Utils/lutils/strateval.py:514 #, python-format msgid "%s can no longer castle" msgstr "%s ne more več narediti rokade" #: lib/pychess/Utils/lutils/strateval.py:508 #: lib/pychess/Utils/lutils/strateval.py:515 #, python-format msgid "%s can no longer castle in queenside" msgstr "%s ne more več narediti rokade na kraljičino stran" #: lib/pychess/Utils/lutils/strateval.py:510 #: lib/pychess/Utils/lutils/strateval.py:517 #, python-format msgid "%s can no longer castle in kingside" msgstr "%s ne more več narediti rokade na kraljevo stran" #: lib/pychess/Utils/lutils/strateval.py:551 #, python-format msgid "%(opcolor)s has a new trapped bishop on %(cord)s" msgstr "%(opcolor)s je ujel tekača na %(cord)s" #: lib/pychess/Utils/lutils/strateval.py:573 #, python-format msgid "develops a pawn: %s" msgstr "razvije kmeta: %s" #: lib/pychess/Utils/lutils/strateval.py:574 #, python-format msgid "brings a pawn closer to the backrow: %s" msgstr "približa kmeta zadnji vrstici: %s" #: lib/pychess/Utils/lutils/strateval.py:591 #, python-format msgid "brings a %(piece)s closer to enemy king: %(cord)s" msgstr "približa %(piece)s nasprotnemu kralju: %(cord)s" #: lib/pychess/Utils/lutils/strateval.py:594 #, python-format msgid "develops a %(piece)s: %(cord)s" msgstr "razvije %(piece)s: %(cord)s" #: lib/pychess/Utils/lutils/strateval.py:612 #, python-format msgid "places a %(piece)s more active: %(cord)s" msgstr "premakne %(piece)s bolj živahno: %(cord)s" #: lib/pychess/Utils/lutils/strateval.py:638 msgid "White should do pawn storm in right" msgstr "Beli bi moral napasti z desne" #: lib/pychess/Utils/lutils/strateval.py:640 msgid "Black should do pawn storm in left" msgstr "Črni bi moral napasti z leve" #: lib/pychess/Utils/lutils/strateval.py:643 msgid "White should do pawn storm in left" msgstr "Beli bi moral napasti z leve" #: lib/pychess/Utils/lutils/strateval.py:645 msgid "Black should do pawn storm in right" msgstr "Črni bi moral napasti z desne" #: lib/pychess/Utils/lutils/strateval.py:671 msgid "Black has a rather cramped position" msgstr "Črni ima precej utesnjen položaj" #: lib/pychess/Utils/lutils/strateval.py:673 msgid "Black has a slightly cramped position" msgstr "Črni ima delno utesnjen položaj" #: lib/pychess/Utils/lutils/strateval.py:675 msgid "White has a rather cramped position" msgstr "Beli ima precej utesnjen položaj" #: lib/pychess/Utils/lutils/strateval.py:677 msgid "White has a slightly cramped position" msgstr "Beli ima delno utesnjen položaj" #: sidepanel/annotationPanel.py:26 msgid "Annotation" msgstr "" #: sidepanel/annotationPanel.py:29 msgid "Annotated game" msgstr "" #: sidepanel/annotationPanel.py:236 msgid "Copy PGN" msgstr "" #: sidepanel/annotationPanel.py:249 msgid "Add start comment" msgstr "" #: sidepanel/annotationPanel.py:254 msgid "Add comment" msgstr "" #: sidepanel/annotationPanel.py:258 sidepanel/annotationPanel.py:316 msgid "Edit comment" msgstr "" #: sidepanel/annotationPanel.py:269 msgid "Forced move" msgstr "" #: sidepanel/annotationPanel.py:274 msgid "Add move symbol" msgstr "" #: sidepanel/annotationPanel.py:280 msgid "Unclear position" msgstr "" #: sidepanel/annotationPanel.py:289 msgid "Zugzwang" msgstr "" #: sidepanel/annotationPanel.py:290 msgid "Development adv." msgstr "" #: sidepanel/annotationPanel.py:291 msgid "Initiative" msgstr "" #: sidepanel/annotationPanel.py:292 msgid "With attack" msgstr "" #: sidepanel/annotationPanel.py:293 msgid "Compensation" msgstr "" #: sidepanel/annotationPanel.py:294 msgid "Counterplay" msgstr "" #: sidepanel/annotationPanel.py:295 msgid "Time pressure" msgstr "" #: sidepanel/annotationPanel.py:300 msgid "Add evaluation symbol" msgstr "" #: sidepanel/annotationPanel.py:304 msgid "Remove symbols" msgstr "" #: sidepanel/annotationPanel.py:911 #, python-format msgid "round %s" msgstr "" #: sidepanel/bookPanel.py:21 msgid "Hints" msgstr "" #: sidepanel/bookPanel.py:25 msgid "" "The hint panel will provide computer advice during each stage of the game" msgstr "" #: sidepanel/bookPanel.py:27 msgid "Official PyChess panel." msgstr "Uradni PyChess pult." #: sidepanel/bookPanel.py:87 msgid "Opening Book" msgstr "Otvoritvena knjiga" #: sidepanel/bookPanel.py:88 msgid "" "The opening book will try to inspire you during the opening phase of the " "game by showing you common moves made by chess masters" msgstr "Otvoritvena knjiga vas bo skušala navdušiti med odpiralno fazo igre s tem, da vam bo prikazala običajne poteze šahovskih mojstrov" #: sidepanel/bookPanel.py:139 #, python-format msgid "Analysis by %s" msgstr "" #: sidepanel/bookPanel.py:140 #, python-format msgid "" "%s will try to predict which move is best and which side has the advantage" msgstr "" #: sidepanel/bookPanel.py:142 #, python-format msgid "Threat analysis by %s" msgstr "" #: sidepanel/bookPanel.py:143 #, python-format msgid "" "%s will identify what threats would exist if it were your opponent's turn to" " move" msgstr "" #: sidepanel/bookPanel.py:159 sidepanel/bookPanel.py:269 msgid "Calculating..." msgstr "" #: sidepanel/bookPanel.py:300 msgid "" "Engine scores are in units of pawns, from White's point of view. Double " "clicking on analysis lines you can insert them into Annotation panel as " "variations." msgstr "" #: sidepanel/bookPanel.py:302 msgid "" "Adding suggestions can help you find ideas, but slows down the computer's " "analysis." msgstr "" #: sidepanel/bookPanel.py:311 msgid "Endgame Table" msgstr "" #: sidepanel/bookPanel.py:315 msgid "" "The endgame table will show exact analysis when there are few pieces on the " "board." msgstr "" #: sidepanel/bookPanel.py:364 sidepanel/bookPanel.py:367 #, python-format msgid "Mate in %d" msgstr "" #: sidepanel/bookPanel.py:554 msgid "" "In this position,\n" "there is no legal move." msgstr "" #: sidepanel/chatPanel.py:21 msgid "" "The chat panel lets you communicate with your opponent during the game, " "assuming he or she is interested" msgstr "Pogovorni pult vam omogoča sporazumevanje z nasprotnikom med igro, ob predpostavki, da le-ta želi pogovor" #: sidepanel/commentPanel.py:16 msgid "Comments" msgstr "Komentarji" #: sidepanel/commentPanel.py:20 msgid "The comments panel will try to analyze and explain the moves played" msgstr "Pult komentarjev bo poskušal analizirati in razložiti igrane poteze" #: sidepanel/commentPanel.py:121 msgid "Initial position" msgstr "Začetni položaj" #: sidepanel/commentPanel.py:254 #, python-format msgid "%(color)s moves a %(piece)s to %(cord)s" msgstr "%(color)s prestavi %(piece)s na %(cord)s" #: sidepanel/engineOutputPanel.py:15 msgid "Engines" msgstr "" #: sidepanel/engineOutputPanel.py:20 msgid "" "The engine output panel shows the thinking output of chess engines (computer" " players) during a game" msgstr "" #: sidepanel/engineOutputPanel.py:44 msgid "No chess engines (computer players) are participating in this game." msgstr "" #: sidepanel/historyPanel.py:10 msgid "Move History" msgstr "Zgodovina potez" #: sidepanel/historyPanel.py:13 msgid "" "The moves sheet keeps track of the players' moves and lets you navigate " "through the game history" msgstr "Preglednica premikov sledi igralčevim potezam in vam omogoča krmariti med igralno zgodovino" #: sidepanel/scorePanel.py:15 msgid "Score" msgstr "Izid" #: sidepanel/scorePanel.py:19 msgid "" "The score panel tries to evaluate the positions and shows you a graph of the" " game progress" msgstr "Pult rezultatov poskuša ovrednotiti položaj in prikazati graf poteka igre" pychess-0.12.2/lang/sl/LC_MESSAGES/pychess.mo0000644000175000017470000011367612653231272020730 0ustar tamasusers00000000000000 ( ((!(%8(`^(((+(')#<)`)*y),)0)** *#8*$\*'** *!*++&+6+#=+a+|+%++++9+',@E,,,,,,,E,C-[-#w-$- ----..L..{. ...Q.&/C:/7~/U/* 0(70`0v000 000 0 00 0C1 L1Y1*k1 11Q11!272 R2s2Q2 2K3$O36t3#3!3-3&4-F4;t4444$4#4% 5"15#T5 x55555 5 5555 55 66 '6P36666 66666 777 /7 ;7E7b7|7G7`7a*8i8 89 9 99 "9-9B9 I9U9k9 9999999 99 :::$: ): 5:XA:c:]:q\;S;F"<i<z<D<<<== = == 1= ;= F=R= f= r= }====== ==== > > > *>7>9>/>>n> w>>>>>>>> > > > ? ? "?.?F?\N????.? @@ )@6@L@R@T@ Y@ c@ p@}@@@ @@@@@@@ AE#AiA qA#{AAAA xBBB B BBBBBB BBB BBB B B C %C0C6C >CJC"_CC CCCC CC CC DD &D2DHD NDXD^D gDqDDD DDDDhE"FC5F5yF9F3FG,GT>G GZGGH/HKHdH`HHH{IIIIZIJK0JA|JAJKKK$KP3KK 1L\Q\o\#\!\\\\\ ^^^+^_2_+`*D`%o``,`.`' a2aFaMa1ma4a,ab&b(?bhbbbb$bbb)b c:c@c9Yc#cDccd!d9dKdgdS}dd!d' e(4e ]eke}eeeeYe.f BfPfcfFwf0fHf/8gWhg3g-g"h5hGhZhlhth}hhhh h\h2iCi;[iiiNii j6jQjnjNjjGj#=k7akk/k(k, l08l6illll&l"l!lm WDbi$D\s]$ ʃуK5Q--+Y^ n {d І  !7@H Y do~L ň%ʈ! 3Pntz-Iϊ=DW"tG4|)$Ō&RdpdimΎZ<#p ,9BK[t Ȑ(А %? E P[ p} SБ$ <Ib{  Β*ђ3J0{0"ȓ&#+4P bm ~ %25K"R-u• ٕ 0H<\*Ėז #;#K#om <+.& j}Hp`I]BQzJVS!,{t>.ul h;KE\xe-*s`h}_nyC/nN5WX9fG(vXAJ~DF!k)3%0"YM>Agz6V1=R 71"SOD<LI:G#)k;- d2PcTi3jm$HZd  Z[vr5g$~RsELWq_@6i:[B?N4&l2o9ca?,qa4'\=w 7bue|FQUbw]^ ( %*YxrO MPCyU'f{T@t^|#8+p8/ 0Ko Gain: min%(black)s won the game%(color)s got a double pawn %(place)s%(color)s got an isolated pawn in the %(x)s file%(color)s got isolated pawns in the %(x)s files%(color)s got new double pawns %(place)s%(color)s has a new passed pawn on %(cord)s%(color)s moves a %(piece)s to %(cord)s%(minutes)d min + %(gain)d sec/move%(name)s %(minutes)d min%(name)s %(minutes)d min %(gain)d sec/move%(name)s %(minutes)d min + %(gain)d sec/move%(opcolor)s has a new trapped bishop on %(cord)s%(white)s won the game%d min%s can no longer castle%s can no longer castle in kingside%s can no longer castle in queenside%s moves pawns into stonewall formation%s returns an error%s was declined by your opponent%s was withdrawn by your opponent'%s' is not a registered name(Blitz)0 Players Ready0 of 010 min + 6 sec/move, 1400↑, White10 min + 6 sec/move, White12002 min, Fischer Random, 1800↓, Black2 min, Fischer Random, Black5 min5 min, 1200-1800, ManualConnect to the Free Online Chess ServerPromote pawn to what?PyChess was unable to load your panel settingsAnalyzingAnimationChess VariantDate of gameEnter Game NotationGame dataHint mode analyzing your game, enable this type Ctrl+H.Initial PositionInstalled SidepanelsName of _first human player:Name of s_econd human player:NewsOpen GameOpponent StrengthOptionsPlay Sound When...PlayersSpy mode analyzing the oponnent game, enable this type Ctrl+Y.Time ControlToolsYour Color_Start GameA file named '%s' already exists. Would you like to replace it?Engine, %s, has diedPyChess is discovering your engines. Please wait.PyChess was not able to save the gameThere are %d games with unsaved moves. Save changes before closing?Unable to save file '%s'Unknown file type '%s'Challenge:A player _checks:A player _moves:A player c_aptures:About ChessAc_tiveActive seeks: %dAddress ErrorAdministratorAll Chess FilesAll FilesAnimate pieces, board rotation and more. Use this on fast machines.Ask to _MoveAsymmetric RandomAuto _rotate board to current human playerAuto-logoutBBecause %(black)s ran out of time and %(white)s has insufficient material to mateBecause %(loser)s disconnectedBecause %(loser)s ran out of timeBecause %(loser)s resignedBecause %(loser)s was checkmatedBecause %(mover)s stalematedBecause %(white)s ran out of time and %(black)s has insufficient material to mateBecause a player lost connectionBecause a player lost connection and the other player requested adjournmentBecause both players ran out of timeBecause neither player has sufficient material to mateBecause of adjudication by an adminBecause the %(white)s engine diedBecause the connection to the server was lostBecause the game exceed the max lengthBecause the last 50 moves brought nothing newBecause the same position was repeated three times in a rowBeepBishopBlackBlack has a new piece in outpost: %sBlack has a rather cramped positionBlack has a slightly cramped positionBlack should do pawn storm in leftBlack should do pawn storm in rightBlindfoldBlindfold AccountBlitzBlitz:Center:ChallengeChallenge: Challenge: Change ToleranceChatChess AdvisorChess Alpha 2 DiagramChess GameChess PositionChess ShoutChess Variants are like the pieces of the last line will be placed on the board.ClockClose _without SavingCommentsConnectingConnecting to serverConnection ErrorConnection was closedConversation infoConversationsCornerCould not save the fileCreate SeekDate/TimeDestination Host UnreachableDetect type automaticallyDiedDo you know that it is possible to finish a chess game in just 2 turns?Do you know that the number of possible chess games exceeds the number of atoms in the Universe?Do you know that you can call flag when the clock is with you, Actions > Call Flag.Do you know that you can help translate Pychess in your language, Help > Translate Pychess.Don't careDrawEdit SeekEdit Seek: EmailEnter GameEnter Game _NotationEvent:FIDE MasterF_ull board animationFace _to Face display modeFile existsFischer RandomGain:Game informationGame is _drawn:Game is _lost:Game is _set-up:Game is _won:Games running: %dGrand MasterGuestHa_ndle:HideHow to PlayHuman BeingIf set, PyChess will use figures to express moved pieces, rather than uppercase letters.If set, the black pieces will be head down, suitable for playing against friends on mobile devices.If set, the board will turn after each move, to show the natural view for the current player.If set, the playing board will display labels and ranks for each chess field. These are usable in chess notation.If set, this hides the tab in the top of the playing window, when it is not needed.If you don't save, new changes to your games will be permanently lost.Initial positionInternational MasterIt is not possible later to continue the game, if you don't save it.Jump to initial positionJump to latest positionKKingKnightKnight oddsLeave _FullscreenLightningLightning:Loaded gameLoading player dataLocal EventLocal SiteLog on ErrorLog on as G_uestLog on as _GuestLogging on to serverLosersLossMamer ManagerManualManually accept opponentMinutes:Minutes: More channelsMore playersMove HistoryNNameNever use animation. Use this on slow machines.New GameNo _animationNo conversation's selectedNo soundNormalObserveObserved _ends:OddsOffer Ad_journmentOffer RematchOffer _AbortOffer _DrawOffer _PauseOffer _ResumeOffer _UndoOfficial PyChess panel.OfflineOn FICS, your "Wild" rating encompasses all of the following variants at all time controls: OnlineOnly animate _movesOnly animate piece moves.Only registered users may talk to this channelOpen GameOpen Sound FileOpening BookOpponent's strength: OtherPPawnPawn oddsPawns PassedPawns PushedPingPlayPlay Fischer Random chessPlay RematchPlay _Internet ChessPlay normal chess rulesPlayer _RatingPo_rts:Pre_viewPrefer figures in _notationPreferencesPressing Ctrl+Z to offer opponent the possible rollback moves.PrivatePromotionPyChess - Connect to Internet ChessPyChess - Internet Chess: FICSPyChess Information WindowPyChess has lost connection to the engine, probably because it has died. You can try to start a new game with the engine, or try to play against another one.PyChess.py:QQueenQueen oddsQuit PyChessRR_esignRandomRapidRatedRated gameRatingRookRook oddsRound:S_ign upSave GameSave Game _AsSave moves before closing?Saved gameScoreSearch:Seek _GraphSelect sound file...Select the games you want to save:Send ChallengeSend seekService RepresentativeSetting up environmentSetup PositionSho_w cordsShoutShow _ChatShow tips at startupShredderLinuxChess:ShuffleSide_panelsSimple Chess PositionSite:Sp_y modeSpentStandardStandard:Start Private ChatStep back one moveStep forward one moveTeam AccountThe abort offerThe adjourn offerThe chain button is disabled because you are logged in as a guest. Guests can't establish ratings, and the chain button's state has no effect when there is no rating to which to tie "Opponent Strength" toThe chat panel lets you communicate with your opponent during the game, assuming he or she is interestedThe clock hasn't been started yet.The comments panel will try to analyze and explain the moves playedThe connection was broken - got "end of file" messageThe displayed name of the first human player, e.g., John.The displayed name of the guest player, e.g., Mary.The draw offerThe error was: %sThe file already exists in '%s'. If you replace it, its content will be overwritten.The flag callThe game can't be read to end, because of an error parsing move %(moveno)s '%(notation)s'.The game ended in a drawThe game has been abortedThe game has been adjournedThe game has been killedThe move failed because %s.The moves sheet keeps track of the players' moves and lets you navigate through the game historyThe offer to switch sidesThe opening book will try to inspire you during the opening phase of the game by showing you common moves made by chess mastersThe pause offerThe reason is unknownThe resignationThe resume offerThe score panel tries to evaluate the positions and shows you a graph of the game progressThe takeback offerThere is %d game with unsaved moves.There are %d games with unsaved moves.This option is not applicable because you're challenging a playerThis option is not available because you're challenging a guest, TimeTime control: Tip Of The dayTip of the DayTo play on Fullscreen mode, just type F11. Coming back, F11 again.To save a game Game > Save Game As, give the filename and choose where you want to be saved. At the bottom choose extension type of the file, and Save.Tolerance:Tournament DirectorTranslate PyChessTypeUnable to accept %sUndescribed panelUndo one moveUndo two movesUninstallUnknownUnofficial channel %dUnratedUntimedUpside DownUse _analyzerUse _inverted analyzerWas unable to save '%(uri)s' as PyChess doesn't know the format '%(ending)s'.WelcomeWhen this button is in the "locked" state, the relationship between "Opponent's strength" and "Your strength" will be preserved when a) your rating for the type of game sought has changed b) you change the variant or the time controlWhiteWhite has a new piece in outpost: %sWhite has a rather cramped positionWhite has a slightly cramped positionWhite should do pawn storm in leftWhite should do pawn storm in rightWildWinYou can play chess listening to the sounds of the game, for that, Settings > Preferences > Sound tab, enable Use sounds in PyChess and choose your preferred sounds.You can start a new game by Game > New Game, in New Game window do you can choose Players, Time Control and Chess Variants.You can't play rated games because "Untimed" is checked, You can't play rated games because you are logged in as a guestYou can't select a variant because "Untimed" is checked, You can't switch colors during the game.You don't have the necessary rights to save the file. Please ensure that you have given the right path and try again.You have been logged out because you were idle more than 60 minutesYou have opened no conversations yetYou have tried to undo too many moves.You sent a draw offerYour opponent asks you to hurry!Your opponent has asked that the game be aborted. If you accept this offer, the game will end with no rating change.Your opponent has asked that the game be adjourned. If you accept this offer, the game will be adjourned and you can resume it later (when your opponent is online and both players agree to resume).Your opponent has asked that the game be paused. If you accept this offer, the game clock will be paused until both players agree to resume the game.Your opponent has asked that the game be resumed. If you accept this offer, the game clock will continue from where it was paused.Your opponent has asked that the last %s move(s) be undone. If you accept this offer, the game will continue from the earlier position.Your opponent has offered you a draw. If you accept this offer, the game will end with a score of 1/2 - 1/2.Your opponent is not out of time.Your panel settings have been reset. If this problem repeats, you should report it to the developersYour strength: _Accept_Actions_Black player:_Call Flag_Clear Seeks_Decline_Fullscreen_Game_Game List_General_Help_Hide tabs when only one game is open_Hint mode_Load Game_Log Off_Log Viewer_Name:_New Game_Next_Observed moves:_Opponent:_Password:_Play Normal chess_Player List_Previous_Replace_Rotate Board_Save %d document_Save %d documents_Save %d documents_Save Game_Seeks / Challenges_Show Sidepanels_Sounds_Start Game_Use sounds in PyChess_View_White player:_Your Color:andand guests can't play rated gamesand on FICS, untimed games can't be ratedand on FICS, untimed games have to be normal chess rulesask your opponent to movebrings a %(piece)s closer to enemy king: %(cord)sbrings a pawn closer to the backrow: %scall your opponents flagcaptures materialcastlesdefends %sdevelops a %(piece)s: %(cord)sdevelops a pawn: %sdrawsexchanges materialgnuchess:half-openhttp://en.wikipedia.org/wiki/Chesshttp://en.wikipedia.org/wiki/Rules_of_chessimproves king safetyin the %(x)s%(y)s filein the %(x)s%(y)s filesincreases the pressure on %smatesmoves a rook to an open filemoves an rook to a half-open filemoves bishop into fianchetto: %sofoffer a drawoffer a pauseoffer a takebackoffer an abortoffer to adjournoffer to resumeoffer to switch sidesonline in totalpins an enemy %(oppiece)s on the %(piece)s at %(cord)splaces a %(piece)s more active: %(cord)spromotes a Pawn to a %sputs opponent in checkrescues a %sresignsacrifies materialslightly improves king safetytakes back materialthe captured cord (%s) is incorrectthe move needs a piece and a cordthreatens to win material by %svs.window1Project-Id-Version: pychess Report-Msgid-Bugs-To: POT-Creation-Date: 2016-01-27 13:28+0100 PO-Revision-Date: 2016-01-28 08:56+0000 Last-Translator: slav0nic Language-Team: Slovenian (http://www.transifex.com/gbtami/pychess/language/sl/) MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Language: sl Plural-Forms: nplurals=4; plural=(n%100==1 ? 0 : n%100==2 ? 1 : n%100==3 || n%100==4 ? 2 : 3); Dodatek: min%(black)s je zmagal%(color)s je dobil dvojnega kmeta %(place)s%(color)s je dobil izolirane kmete v datoteki %(x)s%(color)s je dobil izoliranega kmeta v datoteki %(x)s%(color)s je dobil izolirana kmeta v datoteki %(x)s%(color)s je dobil izolirane kmete v datoteki %(x)s%(color)s je dobil novega dvojnega kmeta %(place)s%(color)s ima mimohodnega kmeta na %(cord)s%(color)s prestavi %(piece)s na %(cord)s%(minutes)d min + %(gain)d sek/potezo%(name)s %(minutes)d min%(name)s %(minutes)d min %(gain)d sek/potezo%(name)s %(minutes)d min + %(gain)d sek/potezo%(opcolor)s je ujel tekača na %(cord)s%(white)s je zmagal%d min%s ne more več narediti rokade%s ne more več narediti rokade na kraljevo stran%s ne more več narediti rokade na kraljičino stran%s premakne kmeta v formacijo kamnenega zidu%s je sporočil napako%s je bil zavrjen s strani nasprotnika%s je bil preklican s strani nasprotnika'%s' ni registrirano ime(hitro)0 igralcev pripravljenih0 od 010 min + 6 sek/potezo, 1400↑, beli10 min + 6 sek/potezo, beli12002 min, Fischer naključna, 1800↓, črni2 min, Fischer naključna, črni5 min5 min, 1200-1800, ročnoPovežite se s Free Online Chess ServerPovišaj kmeta v?PyChess ni mogel naložiti vaših nastavitev pultaAnaliziranjeAnimacijaRazličica šahaDatum igreVstavi notacijo igrePodatki o igriSvetovalni način analizira vašo igro. Omogočite ga lahko s Ctrl+H.Začetni položajNameščeni stranski pultiIme prvega človeškega igralca:Ime drugega človeškega igralca:NoviceOdpri igroNasprotnikova močMožnostiPredvajaj zvok ob ...IgralciVohunski način analizira nasprotnikovo igro. Omogočite ga lahko s Ctrl+Y.Nadzor časaOrodjaVaša barva_Začni igroDatoteka '%s' že obstaja. Ali jo želite zamenjati?Programnik, %s, se je prekinilPyChess išče vaše programnike. Prosimo, počakajte.PyChess ne more shraniti igreObstaja %d iger z neshranjenimi potezami. Želite shraniti spremembe?Datoteke '%s' ni mogoče shranitiNeznana vrsta datoteke '%s'Izzovi:Igralec _šahira:Igralec _prestavi:Igralec z_apleni:O šahuAk_tivnoAktivna povpraševanja: %dNapaka v naslovuSkrbnikVse šahovske datotekeVse datotekeAnimiraj figure, šahovsko ploščo in drugo. To možnost uporabite na hitrih računalnikih.Prosi za pre_mikAsimetrično naključenSamodejno ob_rni ploščo k trenutnemu človeškemu igralcuSamodejna odjavaLKer je %(black)s potekel čas in %(white)s nima zadosti materiala za matiranjeKer se je %(loser)s odjavilKer je %(loser)s zmanjkalo časaKer se je %(loser)s predalKer je bil %(loser)s matiranKer je %(mover)s v patuKer je %(white)s potekel čas in %(black)s nima zadosti materiala za matiranjeKer je igralec izgubil povezavoKer je igralec izgubil povezavo in je drugi igralec zahteval odložitevKer je obema igralcema potekel časKer nobeden igralec nima zadosti materiala za matiranjeZaradi razsodbe skrbnikaKer se je programnik igralca %(white)s prekinilKer je povezava do strežnika prekinjenaKer je igra prekoračila maksimalno dolžinoKer zadnjih 50 potez ni prineslo ničesar novegaKer je bila enaka poteza ponovljena trikrat zaporedomaPiskTekačČrniČrni ima novo figuro v postojanki: %sČrni ima precej utesnjen položajČrni ima delno utesnjen položajČrni bi moral napasti z leveČrni bi moral napasti z desneNa slepoSlepi računHitroHitro:Usredišči:IzzoviIzziv: Izzovi: Spremeni odstopanjePogovorŠahovski svetovalecŠahovski alfa 2 diagramŠahovska igraPoložaj šahaKlic šahaRazličice šaha so kot figure zadnje vrstice, ki bodo nastavljene na ploščo.UraZapri _brez shranjevanjaKomentarjiPovezovanjePovezovanje na strežnikNapaka pri povezaviPovezava je bila prekinjenaInformacije o pogovorihPogovoriKotNi mogoče shraniti datotekeUstvari povpraševanjeDatum/ČasCiljni strežnik je nedosegljivSamodejno zaznaj vrstoUmrlAli ste vedeli, da je šahovsko igro končati v samo dveh potezah?Ali ste vedeli, da število možnih šahovskih iger presega število elementov v vesolju?Ali ste vedeli, da lahko sporočite padec zastavice, ko je nasprotniku potekel čas z Dejanja > Sporoči padec zastavice?Ali ste vedeli, da lahko pomagate prevesti PyChess v svoj jezik? Izberite Pomoč > Prevedi PyChess.Vseeno mi jeNeodločenoUredi povpraševanjeUredi povpraševanje: Elektronska poštaVnesi igroVnesi _notacijo igreDogodek:Mojster FIDE_Polna animacija ploščeNačin prikaza iz obraza v obrazDatoteka že obstajaFischer naključnaDodatek:Podatki o igriIgra je neo_dločena:Igra je izgub_ljena:Igra je na_stavljena:Igra je _dobljena:Trenutne igre: %dVelemojsterGostUporabnik:SkrijKako igratiČloveško bitjeČe je nastavljeno, bo PyChess prikazal slike za premike potez figur namesto velikih črk.Če je nastavljeno, potem bodo črne figure nastavljene z glavo navzdol, kar je primerno za igranje s prijateljem preko mobilne naprave.Če je nastavljeno, se bo igralna plošča vsako potezo prestavila tako, da bo prikazan naraven pogled za trenutnega igralca.Če je nastavljeno, bo igralna plošča prikazala oznako za vsako šahovsko polje. Le-ti ne bodo prikazani v šahovski notaciji.Če je nastavljeno, potem skrije zavihek na vrhu okna, ko le-ta ni potreben.Če ne shranite, bodo spremembe trajno izgubljene.Začetni položajMednarodni mojsterČe je sedaj ne shranite, kasneje ne bo mogoče nadaljevati igre.Skoči na začetni položajSkoči na zadnji položajKKraljKonjKonj prednostiZapusti celozaslonski načinBliskovitoBliskovito:Igra naloženaNalaganje igralčevih podatkovKrajevni dogodekKrajevna stranNapaka pri prijaviPrijavi se kot _gostPrijavi se kot _gostPrijavljanje na strežnikIzgubarjiPorazSamodejni turnirni upraviteljRočnoRočno odobri nasprotnikaMinut:Minut: Več sobVeč igralcevZgodovina potezSImeNikoli ne uporabi animacij. To možnost uporabite na počasnih računalnikih.Nova igra_Brez animacijeNi izbranega pogovoraBrez zvokaObičajnoOpazujOpazovani _konča:NeenakoPonudi _odložitevPonudi revanšoPonudi _prekinitevPonudi neo_dločen izidPonudi _premorPonudi _nadaljevanjePonudi p_ovrnitev potezeUradni PyChess pult.OdjavljenNa FICS, vaš rang "Divji" zajema vse sledeče različice vseh časovnih možnosti: PrijavljenAnimiraj samo _potezeAnimiraj samo poteze figur.Samo registrirani uporabniki se lahko pogovarjajo v tej sobiOdpri igroOdpri zvočno datotekoOtvoritvena knjigaMoč nasprotnika: DrugoPKmetKmet prednostiKmeti so zaobšliPritisk kmetovPingIgrajIgraj Fischer naključni šahIgraj revanšo_Igraj internetni šahIgraj navadni šahIgralčev rang_Vrata:_PredogledDodaj figure v _notacijoMožnostiS pritiskom na Ctrl+Z lahko prosite nasprotnika za povrnitev potez.ZasebnoNapredovanjePyChess - Povežite se z internetnim šahomPyChess - Internetni šah: FICSOkno informacij PyChessPyChess je izgubil povezavo s programnikom, verjetno zato, ker je bil prekinjen. Poskusiš lahko zagnati novo igro s programnikom ali poskusi igrati z novim.PyChess.py:DKraljicaKraljica prednostiZapri PyChessT_Predam seNaključenNagloRangiranRangirana igraRangTrnjavaTrnjava prednostiRunda:_Prijavi seShrani igroShrani igro _kotŽelite shraniti poteze pred zapiranjem?Shranjena igraIzidIšči:_Grafikon povpraševanjaIzberi zvočno datoteko ...Izberite igre, ki jih želite shraniti:Pošlji izzivPošlji povpraševanjeStoritveni predstavnikPripravljanje okoljaNastavi položaj_Prikaži notacijeKlicPokaži _klepetPrikaži nasvete ob zagonuShredderLinuxChess:TrikStranski _pultiEnostavni položaj šahaStran:_Vohunski načinZapravljenoObičajnoObičajno:Začni zasebni pogovorKorak nazaj za eno potezoKorak naprej za eno potezoEkipni računPonudba za prekinitevPonudba za odložitevVerižni gumb je onemogočen, ker ste prijavljeni kot gost. Gostje ne morejo imeti ranga, zato je verižni gumb brez učinka, saj ne obstaja rang, na katerega bi se navezovala "Moč nasprotnika"Pogovorni pult vam omogoča sporazumevanje z nasprotnikom med igro, ob predpostavki, da le-ta želi pogovorUra se še ni zagnala.Pult komentarjev bo poskušal analizirati in razložiti igrane potezePovezava prekinjena - dobljena napaka "konec datoteke"Prikazano ime prvega človeškega igralca, npr. Janez.Prikazano ime gostujočega igralca, npr. Marija.Ponudba za neodločenostNapaka: %sDatoteka že obstaja v '%s'. Če jo zamenjate, bo vsebina prepisana.Zastavica je padlaIgra ne more biti prebrana do konca, ker je nastala napaka pri analizi premika %(moveno)s '%(notation)s'.Igra se je končala neodločenoIgra je bila preklicanaIgra je bila odloženaIgra je bila prekinjenaPremik je spodletel zaradi %s.Preglednica premikov sledi igralčevim potezam in vam omogoča krmariti med igralno zgodovinoPonudba za spremembo straniOtvoritvena knjiga vas bo skušala navdušiti med odpiralno fazo igre s tem, da vam bo prikazala običajne poteze šahovskih mojstrovPonudba za premorNeznan razlogOdstopPonudba za nadaljevanjePult rezultatov poskuša ovrednotiti položaj in prikazati graf poteka igrePonudba za povrnitev potezeObstaja %d iger z neshranjenimi potezami.Obstaja %d igra z neshranjenimi potezami.Obstajata %d igri z neshranjenimi potezami.Obstajajo %d igre z neshranjenimi potezami.Ta možnost ni na voljo, ker izzivate igralcaTa možnost ni na voljo, ker izzivate gosta, ČasNadzor časa: Nasvet dnevaNasvet dnevaZa igranje v Celozaslonskem načinu pritisnite F11. Za vrnitev ponovno pritisnite F11.Za shranitev igre pritisnite Igra > Shrani igro kot, dodelite ime datoteke in izberite, kam želite igro shraniti. Na dnu izberite vrsto pripone datoteke in pritisnite Shrani.Odstopanje:Direktor turnirjaPrevedi PyChessVrstaNi mogoče sprejeti %sNeopisan pultRazveljavi eno potezoRazveljavi dve poteziOdstraniNeznanoNeuradna soba %dNerangiranBrez časaZgoraj navzdolUporabi _analizoUporabi _nasprotno analizo'%(uri)s' ni mogoče shraniti, PyChess verjetno ne pozna vrste '%(ending)s'.DobrodošliKo je ta gumb v "zaklenjenem" stanju, bo povezava med "Močjo nasprotnika" in "Vaša moč" ohranjena, ko a) se je vaš rang poizvedovanja spremenil b) spremenite različico šaha ali čas igreBeliBeli ima novo figuro v postojanki: %sBeli ima precej utesnjen položajBeli ima delno utesnjen položajBeli bi moral napasti z leveBeli bi moral napasti z desneDivjiZmagaŠah lahko igrate s poslušanjem zvokov igre. Izberite Nastavitve > Možnosti > Zvoki in omogočite Uporabi zvoke v PyChess in izberite želene zvoke.Novo igro lahko pričnete z Igra > Nova igra, v oknu Nova igra, kjer lahko izberete Igralce, Nadzor časa in Različice šaha.Ne morete igrati rangirane igre, ker je možnost "Brez časa" omogočena Ne morete igrati rangirane igre, ker ste prijavljeni kot gostNe morete izbrati različice, ker je izbrana možnost "Brez časa", Barve med igro ni mogoče menjati.Nimate ustreznih pravic za shranjevanje datoteke. Prosimo, preverite, če ste določil pravo pot in poskusite znova.Samodejno ste bili odjavljeni, ker ste bili nedejavni več kot 60 minutNiste še pričeli s pogovoromPoskusili ste razveljaviti preveč potez.Poslali ste ponudbo za neodločenostNasprotnik vas je pozval, da pohitite!Nasprotnik je ponudil prekinitev igre. Če sprejmete, igra ne bo vplivala na rang.Nasprotnik je ponudil odložitev igre. Če sprejmete, bo igra odložena in lahko se bo kasneje nadaljevala (če bo nasprotnik na voljo in željan).Nasprotnik želi narediti premor. Če sprejmete, se bo ura ustavila, dokler ne sprejmete ponudbe o nadaljevanju.Nasprotnik želi nadaljevati igro. Če sprejmete, bo ura pričela odštevati od tam, kjer je ostala.Nasprotnik želi povrniti zadnjih %s potez(o). Če sprejmete, se bo igra nadaljevala s predhodnega položaja.Nasprotnik je ponudil neodločeno. Če sprejmete, se bo igra končala z izzidom 1/2 - 1/2.Nasprotniku se še ni iztekel čas.Vaše nastavitve pulta so bile ponastavljene. Če se ta težava ponavlja, prijavite težavo razvijalcem programaVaša moč: _Sprejmi_Dejanja_Črni igralec:Sporoči padec zastavice_Počisti povpraševanja_Zavrni_Celozaslonski način_IgraSeznam i_ger_Splošno_Pomoč_Skrij zavihke, ko je odprta le ena igra_Svetovalni način_Naloži igro_Odjavi sePregledovalnik _dnevnikov_Ime:_Nova igra_Naslednji_Opazovani prestavi:Naspr_otnik:_Geslo:_Igraj navadni šahSeznam _igralcev_Prejšnji_Zamenjaj_Zavrti ploščo_Shrani %d dokumentov_Shrani %d dokument_Shrani %d dokumenta_Shrani %d dokumente_Shranite %d dokumentov_Shrani igro_Povpraševanja / Izzivi_Prikaži stranske pulte_Zvoki_Začni igro_Uporabi zvoke v PyChessu_Pogled_Beli igralec:_Vaša barva:inin gostje ne morejo igrati rangiranih igerin na FICS igre brez časa ne morejo biti rangiranein na FICS igre brez časa morajo potekati po navadnih šahovskih pravilihprosi nasprotnika za premikpribliža %(piece)s nasprotnemu kralju: %(cord)spribliža kmeta zadnji vrstici: %ssporoči padec nasprotnikove zastavicezavzame materialzavržebrani %srazvije %(piece)s: %(cord)srazvije kmeta: %sneodločenzamenja materialgnuchess:napol odprthttp://sl.wikipedia.org/wiki/%C5%A0ahhttp://sl.wikipedia.org/wiki/%C5%A0ahovska_pravilaizboljša kraljevo varnostv %(x)s%(y)s datotekiv %(x)s%(y)s datotekahpoveča pritisk na %smatirapremakne trnjavo na odprti stolpecpremakne trnjavo na polovico odprtega stolpcapremakne tekača na bok: %sodponudi neodločen izidponudi premorponudi povrnitevponudi prekinitevponudi odložitevponudi nadaljevanjeponudi spremembo straniskupaj prijavljenihpritisne na nasprotnika %(oppiece)s z %(piece)s pri %(cord)spremakne %(piece)s bolj živahno: %(cord)spoviša kmeta v %spostavi nasprotnika v šahreši %spredam sežrtvuje materialneznatno izboljša kraljevo varnostpovrne materialzavzeta notacija (%s) je nepravilnapoteza potrebuje figuro in notacijopreti nad zmago materiala z %sprotiokno1pychess-0.12.2/lang/ja/0000755000175000017470000000000012653231274015070 5ustar tamasusers00000000000000pychess-0.12.2/lang/ja/LC_MESSAGES/0000755000175000017470000000000012653231274016655 5ustar tamasusers00000000000000pychess-0.12.2/lang/ja/LC_MESSAGES/pychess.po0000644000175000017470000024424712653216211020702 0ustar tamasusers00000000000000# SOME DESCRIPTIVE TITLE. # Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER # This file is distributed under the same license as the pychess package. # # Translators: # FIRST AUTHOR , 2007 # Hirofumi Endo , 2013 # Masato Mukoda , 2012 msgid "" msgstr "" "Project-Id-Version: pychess\n" "Report-Msgid-Bugs-To: \n" "POT-Creation-Date: 2016-01-27 13:28+0100\n" "PO-Revision-Date: 2016-01-28 08:56+0000\n" "Last-Translator: slav0nic \n" "Language-Team: Japanese (http://www.transifex.com/gbtami/pychess/language/ja/)\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" "Language: ja\n" "Plural-Forms: nplurals=1; plural=0;\n" # "Plural-Forms: nplurals=INTEGER; plural=EXPRESSION;\n" #: glade/analyze_game.glade:22 msgid "Analyze game" msgstr "" #: glade/analyze_game.glade:87 msgid "Use analyzer:" msgstr "" #: glade/analyze_game.glade:122 glade/PyChess.glade:2054 msgid "Maximum analysis time in seconds:" msgstr "" #: glade/analyze_game.glade:163 msgid "" "If the analyzer finds a move where the evaluation difference (the difference" " between the evaluation for the move it thinks is the best move and the " "evaluation for the move made in the game) exceeds this value, it will add an" " annotation for that move (consisting of the engine's Principal Variation " "for the move) to the Annotation panel" msgstr "" #: glade/analyze_game.glade:164 msgid "Variation annotation creation threshold in centipawns:" msgstr "" #: glade/analyze_game.glade:198 msgid "Analyze from current position" msgstr "" #: glade/analyze_game.glade:214 msgid "Add threatening variation lines " msgstr "" #: glade/analyze_game.glade:229 glade/PyChess.glade:1459 msgid "Colorize analyzed moves" msgstr "" #: glade/analyze_game.glade:244 glade/PyChess.glade:1495 msgid "Show evaluation values" msgstr "" #: glade/discovererDialog.glade:18 msgid "PyChess is discovering your engines. Please wait." msgstr "PyChess がエンジンを取得しています. 少しお待ちください." #: glade/discovererDialog.glade:77 msgid "PyChess.py:" msgstr "PyChess.py:" #: glade/discovererDialog.glade:89 msgid "ShredderLinuxChess:" msgstr "ShredderLinuxChess:" #: glade/discovererDialog.glade:101 msgid "gnuchess:" msgstr "gnuchess:" #: glade/fics_logon.glade:7 msgid "PyChess - Connect to Internet Chess" msgstr "PyChess - インターネットチェスに接続" #: glade/fics_logon.glade:47 msgid "Connect to the Free Online Chess Server" msgstr "フリーオンラインチェスサーバーに接続" #: glade/fics_logon.glade:129 glade/taskers.glade:394 msgid "_Password:" msgstr "パスワード(_P)" #: glade/fics_logon.glade:143 msgid "_Name:" msgstr "名前(_N)" #: glade/fics_logon.glade:191 msgid "Log on as _Guest" msgstr "ゲストとしてログオン(_G)" #: glade/fics_logon.glade:227 msgid "Host:" msgstr "" #: glade/fics_logon.glade:259 msgid "Po_rts:" msgstr "" #: glade/fics_logon.glade:271 msgid "Auto login on startup" msgstr "" #: glade/fics_logon.glade:385 msgid "S_ign up" msgstr "サインアップ(_I)" #: glade/fics_lounge.glade:35 msgid "Challenge: " msgstr "" #: glade/fics_lounge.glade:97 msgid "Send Challenge" msgstr "" #: glade/fics_lounge.glade:133 msgid "Challenge:" msgstr "" #: glade/fics_lounge.glade:327 glade/fics_lounge.glade:2078 msgid "Lightning:" msgstr "超早指し:" #: glade/fics_lounge.glade:351 glade/fics_lounge.glade:2102 msgid "Standard:" msgstr "標準:" #: glade/fics_lounge.glade:375 glade/fics_lounge.glade:2126 msgid "Blitz:" msgstr "早指し:" #: glade/fics_lounge.glade:400 msgid "2 min, Fischer Random, Black" msgstr "" #: glade/fics_lounge.glade:422 msgid "10 min + 6 sec/move, White" msgstr "" #: glade/fics_lounge.glade:444 msgid "5 min" msgstr "5 分" #: glade/fics_lounge.glade:480 msgid "Edit Seek" msgstr "" #: glade/fics_lounge.glade:584 lib/pychess/ic/ICLounge.py:2208 #: lib/pychess/ic/__init__.py:101 lib/pychess/Utils/GameModel.py:206 msgid "Untimed" msgstr "" #: glade/fics_lounge.glade:637 msgid "Minutes: " msgstr "" #: glade/fics_lounge.glade:665 msgid " Gain: " msgstr "" #: glade/fics_lounge.glade:703 msgid "Time control: " msgstr "" #: glade/fics_lounge.glade:716 lib/pychess/ic/FICSObjects.py:56 #: lib/pychess/ic/ICLounge.py:1137 lib/pychess/ic/ICLounge.py:2208 #: lib/pychess/ic/__init__.py:99 msgid "Standard" msgstr "" #: glade/fics_lounge.glade:757 glade/newInOut.glade:633 msgid "Time Control" msgstr "" #: glade/fics_lounge.glade:814 glade/fics_lounge.glade:1346 msgid "Don't care" msgstr "" #: glade/fics_lounge.glade:879 msgid "Your strength: " msgstr "" #: glade/fics_lounge.glade:921 msgid "(Blitz)" msgstr "" #: glade/fics_lounge.glade:951 msgid "Opponent's strength: " msgstr "" #: glade/fics_lounge.glade:1055 msgid "" "When this button is in the \"locked\" state, the relationship\n" "between \"Opponent's strength\" and \"Your strength\" will be\n" "preserved when \n" "a) your rating for the type of game sought has changed\n" "b) you change the variant or the time control" msgstr "" #: glade/fics_lounge.glade:1095 msgid "Center:" msgstr "" #: glade/fics_lounge.glade:1134 msgid "1200" msgstr "" #: glade/fics_lounge.glade:1188 msgid "Tolerance:" msgstr "" #: glade/fics_lounge.glade:1243 lib/pychess/ic/ICLounge.py:2452 msgid "Hide" msgstr "" #: glade/fics_lounge.glade:1289 msgid "Opponent Strength" msgstr "" #: glade/fics_lounge.glade:1386 lib/pychess/Database/gamelist.py:40 #: lib/pychess/ic/ICLounge.py:1357 lib/pychess/ic/ICLounge.py:1557 #: lib/pychess/ic/ICLounge.py:2108 lib/pychess/Utils/repr.py:10 #: lib/pychess/widgets/ChessClock.py:40 #: lib/pychess/widgets/TaskerManager.py:153 msgid "White" msgstr "白" #: glade/fics_lounge.glade:1414 lib/pychess/Database/gamelist.py:40 #: lib/pychess/ic/ICLounge.py:1358 lib/pychess/ic/ICLounge.py:1558 #: lib/pychess/ic/ICLounge.py:2110 lib/pychess/Utils/repr.py:10 #: lib/pychess/widgets/ChessClock.py:40 #: lib/pychess/widgets/TaskerManager.py:154 msgid "Black" msgstr "" #: glade/fics_lounge.glade:1453 msgid "Your Color" msgstr "" #: glade/fics_lounge.glade:1512 msgid "Play normal chess rules" msgstr "" #: glade/fics_lounge.glade:1552 msgid "Play" msgstr "" #: glade/fics_lounge.glade:1618 glade/newInOut.glade:833 msgid "Chess Variant" msgstr "変則チェス" #: glade/fics_lounge.glade:1676 msgid "Rated game" msgstr "" #: glade/fics_lounge.glade:1692 msgid "Manually accept opponent" msgstr "" #: glade/fics_lounge.glade:1722 msgid "Options" msgstr "オプション" #: glade/fics_lounge.glade:1750 msgid "PyChess - Internet Chess: FICS" msgstr "" #: glade/fics_lounge.glade:1823 msgid "_Clear Seeks" msgstr "" #: glade/fics_lounge.glade:1847 msgid "_Accept" msgstr "同意(_A)" #: glade/fics_lounge.glade:1871 msgid "_Decline" msgstr "拒否(_D)" #: glade/fics_lounge.glade:2151 msgid "2 min, Fischer Random, 1800↓, Black" msgstr "" #: glade/fics_lounge.glade:2172 msgid "10 min + 6 sec/move, 1400↑, White" msgstr "" #: glade/fics_lounge.glade:2193 msgid "5 min, 1200-1800, Manual" msgstr "" #: glade/fics_lounge.glade:2247 msgid "Send all seeks" msgstr "" #: glade/fics_lounge.glade:2301 msgid "Send seek" msgstr "" #: glade/fics_lounge.glade:2337 msgid "Create Seek" msgstr "" #: glade/fics_lounge.glade:2353 msgid "_Seeks / Challenges" msgstr "" #: glade/fics_lounge.glade:2374 lib/pychess/ic/ICLounge.py:472 #: lib/pychess/ic/ICLounge.py:670 lib/pychess/ic/ICLounge.py:1357 #: lib/pychess/ic/ICLounge.py:1358 msgid "Rating" msgstr "レイティング" #: glade/fics_lounge.glade:2399 msgid "Time" msgstr "" #: glade/fics_lounge.glade:2419 msgid "Seek _Graph" msgstr "" #: glade/fics_lounge.glade:2444 msgid "0 Players Ready" msgstr "" #: glade/fics_lounge.glade:2496 msgid "Challenge" msgstr "" #: glade/fics_lounge.glade:2549 glade/fics_lounge.glade:2735 msgid "Observe" msgstr "" #: glade/fics_lounge.glade:2602 msgid "Start Private Chat" msgstr "" #: glade/fics_lounge.glade:2659 msgid "_Player List" msgstr "プレイヤーの一覧(_P)" #: glade/fics_lounge.glade:2792 msgid "_Game List" msgstr "ゲームの一覧(_G)" #: glade/fics_lounge.glade:2847 msgid "_My games" msgstr "" #: glade/fics_lounge.glade:2904 glade/PyChess.glade:841 msgid "Offer _Resume" msgstr "" #: glade/fics_lounge.glade:2962 glade/PyChess.glade:880 msgid "R_esign" msgstr "投了(_E)" #: glade/fics_lounge.glade:3006 glade/PyChess.glade:820 msgid "Offer _Draw" msgstr "" #: glade/fics_lounge.glade:3050 msgid "Offer A_bort" msgstr "" #: glade/fics_lounge.glade:3107 msgid "Pre_view" msgstr "プレビュー(_V)" #: glade/fics_lounge.glade:3151 msgid "Examine" msgstr "" #: glade/fics_lounge.glade:3208 msgid "_Archived" msgstr "" #: glade/fics_lounge.glade:3313 msgid "News" msgstr "ニュース" #: glade/fics_lounge.glade:3345 msgid "Show Console" msgstr "" #: glade/fics_lounge.glade:3359 msgid "Show _Chat" msgstr "チャットの表示(_C)" #: glade/fics_lounge.glade:3373 msgid "_Log Off" msgstr "ログオフ(_L)" #: glade/fics_lounge.glade:3393 msgid "Tools" msgstr "ツール" #: glade/fics_lounge.glade:3428 msgid "Asymmetric Random " msgstr "" #: glade/findbar.glade:6 msgid "window1" msgstr "" #: glade/findbar.glade:21 msgid "0 of 0" msgstr "" #: glade/findbar.glade:66 msgid "Search:" msgstr "" #: glade/findbar.glade:134 msgid "_Previous" msgstr "前へ(_P)" #: glade/findbar.glade:192 msgid "_Next" msgstr "次へ(_N)" #: glade/newInOut.glade:45 lib/pychess/widgets/newGameDialog.py:445 msgid "New Game" msgstr "新ゲーム" #: glade/newInOut.glade:108 msgid "_Start Game" msgstr "ゲームの開始(_S)" #: glade/newInOut.glade:130 msgid "Copy FEN" msgstr "" #: glade/newInOut.glade:143 msgid "Clear" msgstr "" #: glade/newInOut.glade:156 msgid "Paste FEN" msgstr "" #: glade/newInOut.glade:257 msgid "_Black player:" msgstr "黒番(_B):" #: glade/newInOut.glade:274 msgid "_White player:" msgstr "白番(_W):" #: glade/newInOut.glade:385 msgid "Players" msgstr "プレイヤー" #: glade/newInOut.glade:436 msgid "_Untimed" msgstr "" #: glade/newInOut.glade:475 msgid "Blitz: 5 min" msgstr "" #: glade/newInOut.glade:526 msgid "Rapid: 15 min + 10 sec/move" msgstr "" #: glade/newInOut.glade:575 msgid "Normal: 40 min + 15 sec/move" msgstr "" #: glade/newInOut.glade:684 msgid "_Play Normal chess" msgstr "" #: glade/newInOut.glade:724 msgid "Play Fischer Random chess" msgstr "" #: glade/newInOut.glade:774 msgid "Play Losers chess" msgstr "" #: glade/newInOut.glade:919 msgid "Open Game" msgstr "" #: glade/newInOut.glade:1162 msgid "Initial Position" msgstr "" #: glade/newInOut.glade:1219 msgid "Enter Game Notation" msgstr "" #: glade/newInOut.glade:1314 msgid "Halfmove clock" msgstr "" #: glade/newInOut.glade:1327 msgid "En passant line" msgstr "" #: glade/newInOut.glade:1339 msgid "Side to move" msgstr "" #: glade/newInOut.glade:1351 msgid "Move number" msgstr "" #: glade/newInOut.glade:1361 msgid "Black O-O" msgstr "" #: glade/newInOut.glade:1375 msgid "Black O-O-O" msgstr "" #: glade/newInOut.glade:1389 msgid "White O-O-O" msgstr "" #: glade/newInOut.glade:1403 msgid "White O-O" msgstr "" #: glade/promotion.glade:7 msgid "Promotion" msgstr "昇進" #: glade/promotion.glade:49 lib/pychess/Utils/repr.py:12 msgid "Queen" msgstr "クイーン" #: glade/promotion.glade:95 lib/pychess/Utils/repr.py:12 msgid "Rook" msgstr "ルーク" #: glade/promotion.glade:141 lib/pychess/Utils/repr.py:12 msgid "Bishop" msgstr "ビショップ" #: glade/promotion.glade:187 lib/pychess/Utils/repr.py:12 msgid "Knight" msgstr "ナイト" #: glade/promotion.glade:233 lib/pychess/Utils/repr.py:12 msgid "King" msgstr "キング" #: glade/promotion.glade:265 msgid "Promote pawn to what?" msgstr "" #: glade/PyChess.glade:9 msgid "Chess client" msgstr "" #: glade/PyChess.glade:44 msgid "Game information" msgstr "" #: glade/PyChess.glade:164 msgid "Event:" msgstr "" #: glade/PyChess.glade:178 msgid "Site:" msgstr "" #: glade/PyChess.glade:204 msgid "Round:" msgstr "" #: glade/PyChess.glade:237 msgid "White:" msgstr "" #: glade/PyChess.glade:249 msgid "Black:" msgstr "" #: glade/PyChess.glade:302 msgid "Game data" msgstr "ゲームデータ" #: glade/PyChess.glade:357 msgid "Date of game" msgstr "" #: glade/PyChess.glade:495 msgid "_Game" msgstr "ゲーム(_G)" #: glade/PyChess.glade:502 msgid "_New Game" msgstr "新ゲーム(_N)" #: glade/PyChess.glade:515 msgid "Play _Internet Chess" msgstr "" #: glade/PyChess.glade:534 msgid "_Load Game" msgstr "ゲームの読み込み(_L)" #: glade/PyChess.glade:550 msgid "Load _Recent Game" msgstr "最近のゲームの読み込み(_R)" #: glade/PyChess.glade:558 msgid "Open _Database" msgstr "" #: glade/PyChess.glade:569 lib/pychess/widgets/newGameDialog.py:615 msgid "Setup Position" msgstr "" #: glade/PyChess.glade:579 msgid "Enter Game _Notation" msgstr "" #: glade/PyChess.glade:592 msgid "_Save Game" msgstr "ゲームの保存(_S)" #: glade/PyChess.glade:606 msgid "Save Game _As" msgstr "ゲームを別名で保存(_A)" #: glade/PyChess.glade:624 msgid "Share Game" msgstr "" #: glade/PyChess.glade:630 msgid "_Export Position" msgstr "" #: glade/PyChess.glade:644 msgid "_Analyze Game" msgstr "" #: glade/PyChess.glade:678 msgid "Player _Rating" msgstr "" #: glade/PyChess.glade:723 msgid "_Edit" msgstr "" #: glade/PyChess.glade:734 msgid "_Copy PGN" msgstr "" #: glade/PyChess.glade:746 msgid "_Copy FEN" msgstr "" #: glade/PyChess.glade:763 msgid "_Engines" msgstr "" #: glade/PyChess.glade:789 msgid "_Actions" msgstr "" #: glade/PyChess.glade:800 msgid "Offer _Abort" msgstr "" #: glade/PyChess.glade:810 msgid "Offer Ad_journment" msgstr "" #: glade/PyChess.glade:831 msgid "Offer _Pause" msgstr "" #: glade/PyChess.glade:847 msgid "Offer _Undo" msgstr "" #: glade/PyChess.glade:870 msgid "_Call Flag" msgstr "" #: glade/PyChess.glade:890 msgid "Ask to _Move" msgstr "" #: glade/PyChess.glade:905 msgid "Auto Call _Flag" msgstr "" #: glade/PyChess.glade:918 msgid "_View" msgstr "" #: glade/PyChess.glade:925 msgid "_Rotate Board" msgstr "盤面の回転(_R)" #: glade/PyChess.glade:939 msgid "_Fullscreen" msgstr "" #: glade/PyChess.glade:952 msgid "Leave _Fullscreen" msgstr "" #: glade/PyChess.glade:969 msgid "_Show Sidepanels" msgstr "" #: glade/PyChess.glade:980 msgid "_Log Viewer" msgstr "" #: glade/PyChess.glade:997 msgid "_Hint mode" msgstr "" #: glade/PyChess.glade:1009 msgid "Sp_y mode" msgstr "" #: glade/PyChess.glade:1024 msgid "_Help" msgstr "" #: glade/PyChess.glade:1034 msgid "About Chess" msgstr "" #: glade/PyChess.glade:1043 msgid "How to Play" msgstr "" #: glade/PyChess.glade:1052 msgid "Translate PyChess" msgstr "" #: glade/PyChess.glade:1058 msgid "Tip of the Day" msgstr "" #: glade/PyChess.glade:1153 msgid "Default" msgstr "" #: glade/PyChess.glade:1156 msgid "Knights" msgstr "" #: glade/PyChess.glade:1167 lib/pychess/widgets/preferencesDialog.py:349 msgid "Beep" msgstr "" #: glade/PyChess.glade:1170 lib/pychess/widgets/preferencesDialog.py:350 msgid "Select sound file..." msgstr "" #: glade/PyChess.glade:1173 lib/pychess/widgets/preferencesDialog.py:348 msgid "No sound" msgstr "" #: glade/PyChess.glade:1180 msgid "Preferences" msgstr "" #: glade/PyChess.glade:1218 msgid "The displayed name of the first human player, e.g., John." msgstr "" #: glade/PyChess.glade:1230 msgid "Name of _first human player:" msgstr "" #: glade/PyChess.glade:1259 msgid "The displayed name of the guest player, e.g., Mary." msgstr "" #: glade/PyChess.glade:1271 msgid "Name of s_econd human player:" msgstr "" #: glade/PyChess.glade:1307 msgid "_Hide tabs when only one game is open" msgstr "" #: glade/PyChess.glade:1312 msgid "" "If set, this hides the tab in the top of the playing window, when it is not " "needed." msgstr "" #: glade/PyChess.glade:1326 msgid "_Use main app closer [x] to close all games" msgstr "" #: glade/PyChess.glade:1331 msgid "" "If set, clicking on main application window closer first time it closes all " "games." msgstr "" #: glade/PyChess.glade:1345 msgid "Auto _rotate board to current human player" msgstr "" #: glade/PyChess.glade:1350 msgid "" "If set, the board will turn after each move, to show the natural view for " "the current player." msgstr "" #: glade/PyChess.glade:1364 msgid "Auto _promote to queen" msgstr "" #: glade/PyChess.glade:1369 msgid "If set, pawn promotes to queen without promotion dialog selection." msgstr "" #: glade/PyChess.glade:1383 msgid "Face _to Face display mode" msgstr "" #: glade/PyChess.glade:1388 msgid "" "If set, the black pieces will be head down, suitable for playing against " "friends on mobile devices." msgstr "" #: glade/PyChess.glade:1402 msgid "Sho_w cords" msgstr "" #: glade/PyChess.glade:1407 msgid "" "If set, the playing board will display labels and ranks for each chess " "field. These are usable in chess notation." msgstr "" #: glade/PyChess.glade:1421 msgid "Show _captured pieces" msgstr "" #: glade/PyChess.glade:1426 msgid "If set, the captured figurines will be shown next to the board." msgstr "" #: glade/PyChess.glade:1440 msgid "Prefer figures in _notation" msgstr "" #: glade/PyChess.glade:1445 msgid "" "If set, PyChess will use figures to express moved pieces, rather than " "uppercase letters." msgstr "" #: glade/PyChess.glade:1464 msgid "If set, PyChess will colorize suboptimal analyzed moves with red." msgstr "" #: glade/PyChess.glade:1477 msgid "Show elapsed move times" msgstr "" #: glade/PyChess.glade:1482 msgid "If set, the elapsed time that a player used for the move is shown." msgstr "" #: glade/PyChess.glade:1500 msgid "If set, the hint analyzer engine evaluation value is shown." msgstr "" #: glade/PyChess.glade:1526 msgid "General Options" msgstr "" #: glade/PyChess.glade:1560 msgid "F_ull board animation" msgstr "" #: glade/PyChess.glade:1565 msgid "Animate pieces, board rotation and more. Use this on fast machines." msgstr "" #: glade/PyChess.glade:1579 msgid "Only animate _moves" msgstr "" #: glade/PyChess.glade:1584 msgid "Only animate piece moves." msgstr "" #: glade/PyChess.glade:1599 msgid "No _animation" msgstr "" #: glade/PyChess.glade:1604 msgid "Never use animation. Use this on slow machines." msgstr "" #: glade/PyChess.glade:1632 msgid "Animation" msgstr "" #: glade/PyChess.glade:1651 msgid "_General" msgstr "" #: glade/PyChess.glade:1692 msgid "Use opening _book" msgstr "" #: glade/PyChess.glade:1697 msgid "If set, PyChess will suggest best opening moves on hint panel." msgstr "" #: glade/PyChess.glade:1724 msgid "Polyglot book file:" msgstr "" #: glade/PyChess.glade:1768 msgid "Use _local tablebases" msgstr "" #: glade/PyChess.glade:1773 msgid "" "If set, PyChess will show game results for different moves in positions containing 6 or less pieces.\n" "You can download tablebase files from:\n" "http://www.olympuschess.com/egtb/gaviota/" msgstr "" #: glade/PyChess.glade:1803 msgid "Gaviota TB path:" msgstr "" #: glade/PyChess.glade:1843 msgid "Use _online tablebases" msgstr "" #: glade/PyChess.glade:1848 msgid "" "If set, PyChess will show game results for different moves in positions containing 6 or less pieces.\n" "It will search positions from http://www.k4it.de/" msgstr "" #: glade/PyChess.glade:1870 msgid "Opening, endgame" msgstr "" #: glade/PyChess.glade:1904 msgid "Use _analyzer" msgstr "アナライザを使用(_A)" #: glade/PyChess.glade:1946 msgid "" "The analyzer will run in the background and analyze the game. This is " "necessary for the hint mode to work" msgstr "アナライザはバックグラウンドで動作し、ゲームを分析します。 これはヒントモードを動作させるのに必要です" #: glade/PyChess.glade:1978 msgid "Use _inverted analyzer" msgstr "" #: glade/PyChess.glade:2020 msgid "" "The inverse analyzer will analyze the game as if your opponent was to move. " "This is necessary for the spy mode to work" msgstr "" #: glade/PyChess.glade:2096 msgid "Analyzing" msgstr "" #: glade/PyChess.glade:2118 msgid "_Hints" msgstr "" #: glade/PyChess.glade:2263 msgid "Uninstall" msgstr "アンインストール" #: glade/PyChess.glade:2317 msgid "Ac_tive" msgstr "" #: glade/PyChess.glade:2367 msgid "Installed Sidepanels" msgstr "" #: glade/PyChess.glade:2382 msgid "Side_panels" msgstr "サイドパネル(_P)" #: glade/PyChess.glade:2440 msgid "Light Squares :" msgstr "" #: glade/PyChess.glade:2479 msgid "Dark Squares :" msgstr "" #: glade/PyChess.glade:2515 msgid "Reset Default Colours" msgstr "" #: glade/PyChess.glade:2551 msgid "Board Colours" msgstr "" #: glade/PyChess.glade:2610 msgid "Chess Sets" msgstr "" #: glade/PyChess.glade:2634 msgid "Themes" msgstr "テーマ" #: glade/PyChess.glade:2659 msgid "_Use sounds in PyChess" msgstr "" #: glade/PyChess.glade:2982 msgid "A player _checks:" msgstr "" #: glade/PyChess.glade:2997 msgid "A player _moves:" msgstr "" #: glade/PyChess.glade:3010 msgid "Game is _drawn:" msgstr "" #: glade/PyChess.glade:3025 msgid "Game is _lost:" msgstr "" #: glade/PyChess.glade:3040 msgid "Game is _won:" msgstr "" #: glade/PyChess.glade:3055 msgid "A player c_aptures:" msgstr "" #: glade/PyChess.glade:3084 msgid "Game is _set-up:" msgstr "" #: glade/PyChess.glade:3136 msgid "_Observed moves:" msgstr "" #: glade/PyChess.glade:3151 msgid "Observed _ends:" msgstr "" #: glade/PyChess.glade:3265 msgid "Short on _time:" msgstr "" #: glade/PyChess.glade:3317 msgid "_Invalid move:" msgstr "" #: glade/PyChess.glade:3369 msgid "Activate alarm when _remaining sec is:" msgstr "" #: glade/PyChess.glade:3416 msgid "Play Sound When..." msgstr "" #: glade/PyChess.glade:3438 msgid "_Sounds" msgstr "" #: glade/PyChess.glade:3463 msgid "_Auto save finished games" msgstr "" #: glade/PyChess.glade:3497 msgid "Save files to:" msgstr "" #: glade/PyChess.glade:3525 msgid "Use name format:" msgstr "" #: glade/PyChess.glade:3569 msgid "Names: #n1, #n2" msgstr "" #: glade/PyChess.glade:3582 msgid "Year, month, day: #y, #m, #d" msgstr "" #: glade/PyChess.glade:3619 msgid "Save elapsed move _times" msgstr "" #: glade/PyChess.glade:3644 msgid "Save analyzing engine _evaluation values" msgstr "" #: glade/PyChess.glade:3669 msgid "Save _own games only" msgstr "" #: glade/PyChess.glade:3698 msgid "Save" msgstr "" #: glade/PyChess.glade:3728 msgid "uci" msgstr "" #: glade/PyChess.glade:3731 msgid "xboard" msgstr "" #: glade/PyChess.glade:3739 msgid "Manage engines" msgstr "" #: glade/PyChess.glade:3837 msgid "Command:" msgstr "" #: glade/PyChess.glade:3851 msgid "Protocol:" msgstr "" #: glade/PyChess.glade:3865 msgid "Parameters:" msgstr "" #: glade/PyChess.glade:3878 msgid "Command line parameters needed by the engine." msgstr "" #: glade/PyChess.glade:3903 msgid "" "Engines use uci or xboard communication protocol to talk to the GUI.\n" "If it can use both you can set here which one you like." msgstr "" #: glade/PyChess.glade:3929 msgid "Working directory:" msgstr "" #: glade/PyChess.glade:3942 msgid "The directory where the engine will be started from." msgstr "" #: glade/saveGamesDialog.glade:7 msgid "Quit PyChess" msgstr "PyChessを終了" #: glade/saveGamesDialog.glade:24 lib/pychess/widgets/ionest.py:424 msgid "Close _without Saving" msgstr "保存せずに閉じる(_W)" #: glade/saveGamesDialog.glade:83 msgid "_Save %d documents" msgstr "" #: glade/saveGamesDialog.glade:141 msgid "" "There are %d games with unsaved moves. Save changes before " "closing?" msgstr "" #: glade/saveGamesDialog.glade:161 msgid "Select the games you want to save:" msgstr "" #: glade/saveGamesDialog.glade:204 msgid "If you don't save, new changes to your games will be permanently lost." msgstr "" #: glade/taskers.glade:126 msgid "_Opponent:" msgstr "" #: glade/taskers.glade:154 msgid "_Your Color:" msgstr "" #: glade/taskers.glade:219 msgid "_Start Game" msgstr "ゲームの開始(_S)" #: glade/taskers.glade:338 msgid "Log on as G_uest" msgstr "ゲストとしてログオン(_U)" #: glade/taskers.glade:410 msgid "Ha_ndle:" msgstr "" #: glade/taskers.glade:469 msgid "_Connect to server" msgstr "" #: glade/tipoftheday.glade:7 msgid "Tip Of The day" msgstr "" #: glade/tipoftheday.glade:62 msgid "Show tips at startup" msgstr "" #: lib/pychess/Main.py:302 msgid "http://en.wikipedia.org/wiki/Chess" msgstr "" #: lib/pychess/Main.py:305 msgid "http://en.wikipedia.org/wiki/Rules_of_chess" msgstr "" #: lib/pychess/Main.py:370 lib/pychess/widgets/gamenanny.py:80 msgid "Welcome" msgstr "ようこそ" #: lib/pychess/Database/gamelist.py:40 msgid "Id" msgstr "" #: lib/pychess/Database/gamelist.py:40 msgid "W Elo" msgstr "" #: lib/pychess/Database/gamelist.py:40 msgid "B Elo" msgstr "" #: lib/pychess/Database/gamelist.py:41 msgid "Result" msgstr "" #: lib/pychess/Database/gamelist.py:41 msgid "Event" msgstr "" #: lib/pychess/Database/gamelist.py:41 msgid "Site" msgstr "" #: lib/pychess/Database/gamelist.py:41 msgid "Round" msgstr "" #: lib/pychess/Database/gamelist.py:41 msgid "Date" msgstr "" #: lib/pychess/Database/gamelist.py:41 msgid "ECO" msgstr "" #: lib/pychess/Database/gamelist.py:62 msgid "PyChess Game Database" msgstr "" #: lib/pychess/Database/PgnImport.py:188 #, python-format msgid "The game #%s can't be loaded, because of an error parsing FEN" msgstr "" #: lib/pychess/ic/FICSConnection.py:139 msgid "The connection was broken - got \"end of file\" message" msgstr "" #: lib/pychess/ic/FICSConnection.py:140 #, python-format msgid "'%s' is not a registered name" msgstr "" #: lib/pychess/ic/FICSConnection.py:141 msgid "" "The entered password was invalid.\n" "If you forgot your password, go to http://www.freechess.org/password to request a new one over email." msgstr "" #: lib/pychess/ic/FICSConnection.py:145 #, python-format msgid "Sorry '%s' is already logged in" msgstr "" #: lib/pychess/ic/FICSConnection.py:146 #, python-format msgid "'%s' is a registered name. If it is yours, type the password." msgstr "" #: lib/pychess/ic/FICSConnection.py:147 msgid "" "Due to abuse problems, guest connections have been prevented.\n" "You can still register on http://www.freechess.org" msgstr "" #: lib/pychess/ic/FICSConnection.py:166 msgid "Connecting to server" msgstr "サーバに接続中" #: lib/pychess/ic/FICSConnection.py:181 msgid "Logging on to server" msgstr "サーバにログオン中" #: lib/pychess/ic/FICSConnection.py:239 msgid "Setting up environment" msgstr "環境の設定中" #: lib/pychess/ic/FICSObjects.py:35 lib/pychess/ic/FICSObjects.py:47 #, python-format msgid "%(player)s is %(status)s" msgstr "" #: lib/pychess/ic/FICSObjects.py:46 msgid "not playing" msgstr "" #: lib/pychess/ic/FICSObjects.py:54 lib/pychess/ic/ICLounge.py:1136 #: lib/pychess/ic/ICLounge.py:2209 lib/pychess/ic/__init__.py:98 #: lib/pychess/widgets/newGameDialog.py:153 msgid "Blitz" msgstr "" #: lib/pychess/ic/FICSObjects.py:58 lib/pychess/ic/ICLounge.py:1137 #: lib/pychess/ic/ICLounge.py:2209 lib/pychess/ic/__init__.py:100 msgid "Lightning" msgstr "" #: lib/pychess/ic/FICSObjects.py:60 lib/pychess/Variants/atomic.py:15 msgid "Atomic" msgstr "" #: lib/pychess/ic/FICSObjects.py:62 lib/pychess/Variants/bughouse.py:9 msgid "Bughouse" msgstr "" #: lib/pychess/ic/FICSObjects.py:64 lib/pychess/Variants/crazyhouse.py:9 msgid "Crazyhouse" msgstr "" #: lib/pychess/ic/FICSObjects.py:66 lib/pychess/Variants/losers.py:9 msgid "Losers" msgstr "" #: lib/pychess/ic/FICSObjects.py:68 lib/pychess/Variants/suicide.py:12 msgid "Suicide" msgstr "" #: lib/pychess/ic/FICSObjects.py:70 lib/pychess/ic/__init__.py:129 msgid "Wild" msgstr "" #: lib/pychess/ic/FICSObjects.py:117 msgid "Online" msgstr "オンライン" #: lib/pychess/ic/FICSObjects.py:118 lib/pychess/ic/FICSObjects.py:143 msgid "Offline" msgstr "オフライン" #: lib/pychess/ic/FICSObjects.py:133 msgid "Available" msgstr "" #: lib/pychess/ic/FICSObjects.py:135 msgid "Playing" msgstr "" #: lib/pychess/ic/FICSObjects.py:141 msgid "Idle" msgstr "" #: lib/pychess/ic/FICSObjects.py:145 msgid "Examining" msgstr "" #: lib/pychess/ic/FICSObjects.py:147 msgid "Not Available" msgstr "" #: lib/pychess/ic/FICSObjects.py:149 msgid "Running Simul Match" msgstr "" #: lib/pychess/ic/FICSObjects.py:151 msgid "In Tournament" msgstr "" #: lib/pychess/ic/FICSObjects.py:308 lib/pychess/ic/FICSObjects.py:492 #: lib/pychess/ic/ICLounge.py:2278 msgid "Unrated" msgstr "" #: lib/pychess/ic/FICSObjects.py:491 lib/pychess/ic/ICLounge.py:670 #: lib/pychess/ic/ICLounge.py:1358 lib/pychess/ic/ICLounge.py:1558 #: lib/pychess/ic/ICLounge.py:2113 msgid "Rated" msgstr "" #: lib/pychess/ic/FICSObjects.py:498 lib/pychess/ic/ICLounge.py:2098 #, python-format msgid "%d min" msgstr "%d 分" #: lib/pychess/ic/FICSObjects.py:500 #, python-format msgid " + %d sec" msgstr " + %d 秒" #: lib/pychess/ic/FICSObjects.py:517 #, python-format msgid "%(player)s plays %(color)s" msgstr "" #: lib/pychess/ic/FICSObjects.py:519 lib/pychess/ic/ICLounge.py:909 msgid "white" msgstr "" #: lib/pychess/ic/FICSObjects.py:519 lib/pychess/ic/ICLounge.py:909 msgid "black" msgstr "" #: lib/pychess/ic/FICSObjects.py:565 msgid "This is a continuation of an adjourned match" msgstr "" #: lib/pychess/ic/FICSObjects.py:654 msgid "Opponent Rating" msgstr "対戦相手のレイティング" #: lib/pychess/ic/FICSObjects.py:656 msgid "Manual Accept" msgstr "" #: lib/pychess/ic/FICSObjects.py:810 msgid "Private" msgstr "" #: lib/pychess/ic/FICSObjects.py:930 lib/pychess/ic/ICLounge.py:527 #: lib/pychess/Savers/epd.py:139 msgid "Unknown" msgstr "" #: lib/pychess/ic/ICLogon.py:159 lib/pychess/ic/ICLogon.py:165 msgid "Connection Error" msgstr "接続エラー" #: lib/pychess/ic/ICLogon.py:161 msgid "Log on Error" msgstr "ログオンエラー" #: lib/pychess/ic/ICLogon.py:163 msgid "Connection was closed" msgstr "" #: lib/pychess/ic/ICLogon.py:169 msgid "Address Error" msgstr "" #: lib/pychess/ic/ICLogon.py:172 msgid "Auto-logout" msgstr "自動ログアウト" #: lib/pychess/ic/ICLogon.py:173 msgid "You have been logged out because you were idle more than 60 minutes" msgstr "60 分以上動作が無かったためログアウトしました" #: lib/pychess/ic/ICLounge.py:222 msgid "You have to set kibitz on to see bot messages here." msgstr "" #: lib/pychess/ic/ICLounge.py:241 msgid "" "You may only have 3 outstanding seeks at the same time. If you want to add a" " new seek you must clear your currently active seeks. Clear your seeks?" msgstr "" #: lib/pychess/ic/ICLounge.py:258 msgid "You can't touch this! You are examining a game." msgstr "" #: lib/pychess/ic/ICLounge.py:270 msgid " has declined your offer for a match" msgstr "" #: lib/pychess/ic/ICLounge.py:283 msgid " is censoring you" msgstr "" #: lib/pychess/ic/ICLounge.py:296 msgid " noplay listing you" msgstr "" #: lib/pychess/ic/ICLounge.py:311 msgid " uses a formula not fitting your match request:" msgstr "" #: lib/pychess/ic/ICLounge.py:325 msgid "to manual accept" msgstr "" #: lib/pychess/ic/ICLounge.py:327 msgid "to automatic accept" msgstr "" #: lib/pychess/ic/ICLounge.py:329 msgid "rating range now" msgstr "" #: lib/pychess/ic/ICLounge.py:330 msgid "Seek updated" msgstr "" #: lib/pychess/ic/ICLounge.py:342 msgid "Your seeks have been removed" msgstr "" #: lib/pychess/ic/ICLounge.py:363 msgid " has arrived" msgstr "" #: lib/pychess/ic/ICLounge.py:370 msgid " has departed" msgstr "" #: lib/pychess/ic/ICLounge.py:374 msgid " is present" msgstr "" #: lib/pychess/ic/ICLounge.py:391 sidepanel/chatPanel.py:17 msgid "Chat" msgstr "チャット" #: lib/pychess/ic/ICLounge.py:472 sidepanel/bookPanel.py:366 msgid "Win" msgstr "" #: lib/pychess/ic/ICLounge.py:472 sidepanel/bookPanel.py:360 msgid "Draw" msgstr "" #: lib/pychess/ic/ICLounge.py:472 sidepanel/bookPanel.py:363 msgid "Loss" msgstr "" #: lib/pychess/ic/ICLounge.py:482 msgid "" "On FICS, your \"Wild\" rating encompasses all of the following variants at " "all time controls:\n" msgstr "" #: lib/pychess/ic/ICLounge.py:494 msgid "Sanctions" msgstr "" #: lib/pychess/ic/ICLounge.py:499 msgid "Email" msgstr "" #: lib/pychess/ic/ICLounge.py:504 msgid "Spent" msgstr "" #: lib/pychess/ic/ICLounge.py:506 msgid "online in total" msgstr "" #: lib/pychess/ic/ICLounge.py:512 msgid "Ping" msgstr "" #: lib/pychess/ic/ICLounge.py:517 msgid "Connecting" msgstr "" #: lib/pychess/ic/ICLounge.py:544 msgid "" "You are currently logged in as a guest.\n" "A guest can't play rated games and therefore isn't able to play as many of the types of matches offered as a registered user. To register an account, go to http://www.freechess.org/Register/index.html." msgstr "" #: lib/pychess/ic/ICLounge.py:669 lib/pychess/ic/ICLounge.py:1136 msgid "Name" msgstr "" #: lib/pychess/ic/ICLounge.py:670 lib/pychess/ic/ICLounge.py:1358 #: lib/pychess/ic/ICLounge.py:1558 msgid "Type" msgstr "" #: lib/pychess/ic/ICLounge.py:670 lib/pychess/ic/ICLounge.py:1558 msgid "Clock" msgstr "" #: lib/pychess/ic/ICLounge.py:726 lib/pychess/ic/ICLounge.py:923 #: lib/pychess/Players/Human.py:250 msgid "Accept" msgstr "" #: lib/pychess/ic/ICLounge.py:728 msgid "Assess" msgstr "" #: lib/pychess/ic/ICLounge.py:734 msgid "Archived" msgstr "" #: lib/pychess/ic/ICLounge.py:848 #, python-format msgid "Active seeks: %d" msgstr "" #: lib/pychess/ic/ICLounge.py:897 #, python-format msgid "" " would like to resume your adjourned %(time)s %(gametype)s " "game." msgstr "" #: lib/pychess/ic/ICLounge.py:902 #, python-format msgid "" " challenges you to a %(time)s %(rated)s %(gametype)s game" msgstr "" #: lib/pychess/ic/ICLounge.py:907 #, python-format msgid " where %(player)s plays %(color)s." msgstr "" #: lib/pychess/ic/ICLounge.py:924 lib/pychess/Players/Human.py:251 msgid "Decline" msgstr "" #: lib/pychess/ic/ICLounge.py:1065 msgid " min" msgstr " 分" #: lib/pychess/ic/ICLounge.py:1137 msgid "Status" msgstr "" #: lib/pychess/ic/ICLounge.py:1203 lib/pychess/ic/ICLounge.py:1233 #, python-format msgid "Players: %d" msgstr "" #: lib/pychess/ic/ICLounge.py:1469 #, python-format msgid "Games running: %d" msgstr "" #: lib/pychess/ic/ICLounge.py:1559 msgid "Date/Time" msgstr "" #: lib/pychess/ic/ICLounge.py:1614 #, python-format msgid "" " with whom you have an adjourned %(timecontrol)s %(gametype)s " "game is online." msgstr "" #: lib/pychess/ic/ICLounge.py:1635 msgid "Request Continuation" msgstr "" #: lib/pychess/ic/ICLounge.py:1637 msgid "Examine Adjourned Game" msgstr "" #: lib/pychess/ic/ICLounge.py:1965 msgid "" "The chain button is disabled because you are logged in as a guest. Guests " "can't establish ratings, and the chain button's state has no effect when " "there is no rating to which to tie \"Opponent Strength\" to" msgstr "" #: lib/pychess/ic/ICLounge.py:2006 msgid "Challenge: " msgstr "" #: lib/pychess/ic/ICLounge.py:2044 msgid "If set you can refuse players accepting your seek" msgstr "" #: lib/pychess/ic/ICLounge.py:2048 lib/pychess/ic/ICLounge.py:2051 msgid "This option is not applicable because you're challenging a player" msgstr "" #: lib/pychess/ic/ICLounge.py:2064 msgid "Edit Seek: " msgstr "" #: lib/pychess/ic/ICLounge.py:2095 #, python-format msgid "%(minutes)d min + %(gain)d sec/move" msgstr "" #: lib/pychess/ic/ICLounge.py:2116 msgid "Manual" msgstr "" #: lib/pychess/ic/ICLounge.py:2256 msgid "Any strength" msgstr "" #: lib/pychess/ic/ICLounge.py:2308 msgid "You can't play rated games because you are logged in as a guest" msgstr "" #: lib/pychess/ic/ICLounge.py:2312 msgid "You can't play rated games because \"Untimed\" is checked, " msgstr "" #: lib/pychess/ic/ICLounge.py:2313 msgid "and on FICS, untimed games can't be rated" msgstr "" #: lib/pychess/ic/ICLounge.py:2317 msgid "This option is not available because you're challenging a guest, " msgstr "" #: lib/pychess/ic/ICLounge.py:2318 msgid "and guests can't play rated games" msgstr "" #: lib/pychess/ic/ICLounge.py:2332 lib/pychess/Variants/shuffle.py:16 #: lib/pychess/widgets/newGameDialog.py:266 msgid "Shuffle" msgstr "" #: lib/pychess/ic/ICLounge.py:2333 lib/pychess/widgets/newGameDialog.py:267 msgid "Other (standard rules)" msgstr "" #: lib/pychess/ic/ICLounge.py:2334 lib/pychess/widgets/newGameDialog.py:268 msgid "Other (non standard rules)" msgstr "" #: lib/pychess/ic/ICLounge.py:2421 msgid "You can't select a variant because \"Untimed\" is checked, " msgstr "" #: lib/pychess/ic/ICLounge.py:2422 msgid "and on FICS, untimed games have to be normal chess rules" msgstr "" #: lib/pychess/ic/ICLounge.py:2454 msgid "Change Tolerance" msgstr "" #: lib/pychess/ic/__init__.py:102 msgid "Examined" msgstr "" #: lib/pychess/ic/__init__.py:103 msgid "Other" msgstr "" #: lib/pychess/ic/__init__.py:182 msgid "Administrator" msgstr "" #: lib/pychess/ic/__init__.py:182 msgid "Blindfold Account" msgstr "" #: lib/pychess/ic/__init__.py:182 msgid "Computer" msgstr "" #: lib/pychess/ic/__init__.py:183 msgid "Team Account" msgstr "" #: lib/pychess/ic/__init__.py:183 msgid "Unregistered" msgstr "" #: lib/pychess/ic/__init__.py:183 msgid "Chess Advisor" msgstr "" #: lib/pychess/ic/__init__.py:184 msgid "Service Representative" msgstr "" #: lib/pychess/ic/__init__.py:184 msgid "Tournament Director" msgstr "" #: lib/pychess/ic/__init__.py:184 msgid "Mamer Manager" msgstr "" #: lib/pychess/ic/__init__.py:185 msgid "Grand Master" msgstr "" #: lib/pychess/ic/__init__.py:185 msgid "International Master" msgstr "" #: lib/pychess/ic/__init__.py:185 msgid "FIDE Master" msgstr "" #: lib/pychess/ic/__init__.py:186 msgid "Woman Grand Master" msgstr "" #: lib/pychess/ic/__init__.py:186 msgid "Woman International Master" msgstr "" #: lib/pychess/ic/__init__.py:186 msgid "Woman FIDE Master" msgstr "" #: lib/pychess/ic/__init__.py:187 msgid "Dummy Account" msgstr "" #: lib/pychess/ic/__init__.py:191 msgid "*" msgstr "" #: lib/pychess/ic/__init__.py:191 lib/pychess/Utils/repr.py:14 msgid "B" msgstr "" #: lib/pychess/ic/__init__.py:191 msgid "C" msgstr "" #: lib/pychess/ic/__init__.py:192 msgid "T" msgstr "" #: lib/pychess/ic/__init__.py:192 msgid "U" msgstr "" #: lib/pychess/ic/__init__.py:192 msgid "CA" msgstr "" #: lib/pychess/ic/__init__.py:193 msgid "SR" msgstr "" #: lib/pychess/ic/__init__.py:193 msgid "TD" msgstr "" #: lib/pychess/ic/__init__.py:193 msgid "TM" msgstr "" #: lib/pychess/ic/__init__.py:194 msgid "GM" msgstr "" #: lib/pychess/ic/__init__.py:194 msgid "IM" msgstr "" #: lib/pychess/ic/__init__.py:194 msgid "FM" msgstr "" #: lib/pychess/ic/__init__.py:195 msgid "WGM" msgstr "" #: lib/pychess/ic/__init__.py:195 msgid "WIM" msgstr "" #: lib/pychess/ic/__init__.py:195 msgid "WFM" msgstr "" #: lib/pychess/ic/__init__.py:195 msgid "D" msgstr "" #: lib/pychess/ic/__init__.py:195 msgid "H" msgstr "" #: lib/pychess/ic/__init__.py:195 msgid "CM" msgstr "" #: lib/pychess/ic/__init__.py:195 msgid "FA" msgstr "" #: lib/pychess/ic/__init__.py:195 msgid "NM" msgstr "" #: lib/pychess/Players/CECPEngine.py:857 #, python-format msgid "The engine %s reports an error:" msgstr "" #: lib/pychess/Players/Human.py:20 msgid "Your opponent has offered you a draw." msgstr "" #: lib/pychess/Players/Human.py:21 msgid "" "Your opponent has offered you a draw. If you accept this offer, the game " "will end with a score of 1/2 - 1/2." msgstr "" #: lib/pychess/Players/Human.py:23 msgid "Your opponent wants to abort the game." msgstr "" #: lib/pychess/Players/Human.py:24 msgid "" "Your opponent has asked that the game be aborted. If you accept this offer, " "the game will end with no rating change." msgstr "" #: lib/pychess/Players/Human.py:26 msgid "Your opponent wants to adjourn the game." msgstr "" #: lib/pychess/Players/Human.py:27 msgid "" "Your opponent has asked that the game be adjourned. If you accept this " "offer, the game will be adjourned and you can resume it later (when your " "opponent is online and both players agree to resume)." msgstr "" #: lib/pychess/Players/Human.py:29 #, python-format msgid "Your opponent wants to undo %s move(s)." msgstr "" #: lib/pychess/Players/Human.py:30 #, python-format msgid "" "Your opponent has asked that the last %s move(s) be undone. If you accept " "this offer, the game will continue from the earlier position." msgstr "" #: lib/pychess/Players/Human.py:32 msgid "Your opponent wants to pause the game." msgstr "" #: lib/pychess/Players/Human.py:33 msgid "" "Your opponent has asked that the game be paused. If you accept this offer, " "the game clock will be paused until both players agree to resume the game." msgstr "" #: lib/pychess/Players/Human.py:35 msgid "Your opponent wants to resume the game." msgstr "" #: lib/pychess/Players/Human.py:36 msgid "" "Your opponent has asked that the game be resumed. If you accept this offer, " "the game clock will continue from where it was paused." msgstr "" #: lib/pychess/Players/Human.py:40 msgid "The resignation" msgstr "" #: lib/pychess/Players/Human.py:41 msgid "The flag call" msgstr "" #: lib/pychess/Players/Human.py:42 msgid "The draw offer" msgstr "" #: lib/pychess/Players/Human.py:43 msgid "The abort offer" msgstr "" #: lib/pychess/Players/Human.py:44 msgid "The adjourn offer" msgstr "" #: lib/pychess/Players/Human.py:45 msgid "The pause offer" msgstr "" #: lib/pychess/Players/Human.py:46 msgid "The resume offer" msgstr "" #: lib/pychess/Players/Human.py:47 msgid "The offer to switch sides" msgstr "" #: lib/pychess/Players/Human.py:48 msgid "The takeback offer" msgstr "" #: lib/pychess/Players/Human.py:52 msgid "resign" msgstr "投了" #: lib/pychess/Players/Human.py:53 msgid "call your opponents flag" msgstr "" #: lib/pychess/Players/Human.py:54 msgid "offer a draw" msgstr "" #: lib/pychess/Players/Human.py:55 msgid "offer an abort" msgstr "" #: lib/pychess/Players/Human.py:56 msgid "offer to adjourn" msgstr "" #: lib/pychess/Players/Human.py:57 msgid "offer a pause" msgstr "" #: lib/pychess/Players/Human.py:58 msgid "offer to resume" msgstr "" #: lib/pychess/Players/Human.py:59 msgid "offer to switch sides" msgstr "" #: lib/pychess/Players/Human.py:60 msgid "offer a takeback" msgstr "" #: lib/pychess/Players/Human.py:61 msgid "ask your opponent to move" msgstr "" #: lib/pychess/Players/Human.py:66 msgid "Your opponent is not out of time." msgstr "" #: lib/pychess/Players/Human.py:68 msgid "The clock hasn't been started yet." msgstr "" #: lib/pychess/Players/Human.py:70 msgid "You can't switch colors during the game." msgstr "" #: lib/pychess/Players/Human.py:72 msgid "You have tried to undo too many moves." msgstr "" #: lib/pychess/Players/Human.py:180 msgid "Your opponent asks you to hurry!" msgstr "" #: lib/pychess/Players/Human.py:181 msgid "" "Generally this means nothing, as the game is time-based, but if you want to " "please your opponent, perhaps you should get going." msgstr "" #: lib/pychess/Players/Human.py:259 #, python-format msgid "%s was declined by your opponent" msgstr "" #: lib/pychess/Players/Human.py:260 #, python-format msgid "Resend %s?" msgstr "" #: lib/pychess/Players/Human.py:267 msgid "Resend" msgstr "" #: lib/pychess/Players/Human.py:275 #, python-format msgid "%s was withdrawn by your opponent" msgstr "" #: lib/pychess/Players/Human.py:276 msgid "Your opponent seems to have changed their mind." msgstr "" #: lib/pychess/Players/Human.py:290 #, python-format msgid "Unable to accept %s" msgstr "" #: lib/pychess/Players/Human.py:291 msgid "Probably because it has been withdrawn." msgstr "" #: lib/pychess/Players/Human.py:298 #, python-format msgid "%s returns an error" msgstr "" #: lib/pychess/Savers/chessalpha2.py:12 msgid "Chess Alpha 2 Diagram" msgstr "" #: lib/pychess/Savers/chesspastebin.py:39 msgid "Game shared at " msgstr "" #: lib/pychess/Savers/chesspastebin.py:41 msgid "(Link is available on clipboard.)" msgstr "" #: lib/pychess/Savers/database.py:19 msgid "PyChess database" msgstr "" #: lib/pychess/Savers/epd.py:12 msgid "Chess Position" msgstr "" #: lib/pychess/Savers/fen.py:12 msgid "Simple Chess Position" msgstr "" #: lib/pychess/Savers/fen.py:44 lib/pychess/Savers/pgn.py:329 msgid "The game can't be loaded, because of an error parsing FEN" msgstr "" #: lib/pychess/Savers/pgnbase.py:100 #, python-format msgid "" "The game can't be read to end, because of an error parsing move %(moveno)s " "'%(notation)s'." msgstr "" #: lib/pychess/Savers/pgnbase.py:102 #, python-format msgid "The move failed because %s." msgstr "" #: lib/pychess/Savers/pgnbase.py:110 #, python-format msgid "Error parsing move %(moveno)s %(mstr)s" msgstr "" #: lib/pychess/Savers/pgn.py:28 msgid "Chess Game" msgstr "" #: lib/pychess/Savers/pgn.py:362 msgid "Invalid move." msgstr "" #: lib/pychess/Savers/png.py:15 msgid "Png image" msgstr "" #: lib/pychess/System/ping.py:31 msgid "Destination Host Unreachable" msgstr "" #: lib/pychess/System/ping.py:74 msgid "Died" msgstr "" #: lib/pychess/Utils/GameModel.py:147 msgid "Local Event" msgstr "" #: lib/pychess/Utils/GameModel.py:148 msgid "Local Site" msgstr "" #: lib/pychess/Utils/repr.py:12 msgid "Pawn" msgstr "ポーン" #: lib/pychess/Utils/repr.py:14 msgid "P" msgstr "" #: lib/pychess/Utils/repr.py:14 msgid "N" msgstr "" #: lib/pychess/Utils/repr.py:14 msgid "R" msgstr "" #: lib/pychess/Utils/repr.py:14 msgid "Q" msgstr "" #: lib/pychess/Utils/repr.py:14 msgid "K" msgstr "" #: lib/pychess/Utils/repr.py:17 msgid "The game ended in a draw" msgstr "" #: lib/pychess/Utils/repr.py:18 #, python-format msgid "%(white)s won the game" msgstr "" #: lib/pychess/Utils/repr.py:19 #, python-format msgid "%(black)s won the game" msgstr "" #: lib/pychess/Utils/repr.py:20 msgid "The game has been killed" msgstr "" #: lib/pychess/Utils/repr.py:21 msgid "The game has been adjourned" msgstr "" #: lib/pychess/Utils/repr.py:22 msgid "The game has been aborted" msgstr "" #: lib/pychess/Utils/repr.py:26 msgid "Because neither player has sufficient material to mate" msgstr "" #: lib/pychess/Utils/repr.py:27 msgid "Because the same position was repeated three times in a row" msgstr "" #: lib/pychess/Utils/repr.py:28 msgid "Because the last 50 moves brought nothing new" msgstr "" #: lib/pychess/Utils/repr.py:29 msgid "Because both players ran out of time" msgstr "" #: lib/pychess/Utils/repr.py:30 #, python-format msgid "Because %(mover)s stalemated" msgstr "" #: lib/pychess/Utils/repr.py:31 msgid "Because both players agreed to a draw" msgstr "" #: lib/pychess/Utils/repr.py:32 lib/pychess/Utils/repr.py:42 msgid "Because of adjudication by an admin" msgstr "" #: lib/pychess/Utils/repr.py:33 msgid "Because the game exceed the max length" msgstr "" #: lib/pychess/Utils/repr.py:34 #, python-format msgid "" "Because %(white)s ran out of time and %(black)s has insufficient material to" " mate" msgstr "" #: lib/pychess/Utils/repr.py:35 #, python-format msgid "" "Because %(black)s ran out of time and %(white)s has insufficient material to" " mate" msgstr "" #: lib/pychess/Utils/repr.py:36 msgid "Because both players have the same amount of pieces" msgstr "" #: lib/pychess/Utils/repr.py:38 #, python-format msgid "Because %(loser)s resigned" msgstr "" #: lib/pychess/Utils/repr.py:39 #, python-format msgid "Because %(loser)s ran out of time" msgstr "" #: lib/pychess/Utils/repr.py:40 #, python-format msgid "Because %(loser)s was checkmated" msgstr "" #: lib/pychess/Utils/repr.py:41 #, python-format msgid "Because %(loser)s disconnected" msgstr "" #: lib/pychess/Utils/repr.py:43 #, python-format msgid "Because %(winner)s has fewer pieces" msgstr "" #: lib/pychess/Utils/repr.py:44 #, python-format msgid "Because %(winner)s lost all pieces" msgstr "" #: lib/pychess/Utils/repr.py:45 #, python-format msgid "Because %(loser)s king exploded" msgstr "" #: lib/pychess/Utils/repr.py:46 #, python-format msgid "Because %(winner)s king reached the center" msgstr "" #: lib/pychess/Utils/repr.py:47 #, python-format msgid "Because %(winner)s was giving check 3 times" msgstr "" #: lib/pychess/Utils/repr.py:49 msgid "Because a player lost connection" msgstr "" #: lib/pychess/Utils/repr.py:50 msgid "Because both players agreed to an adjournment" msgstr "" #: lib/pychess/Utils/repr.py:51 msgid "Because the server was shut down" msgstr "" #: lib/pychess/Utils/repr.py:52 msgid "" "Because a player lost connection and the other player requested adjournment" msgstr "" #: lib/pychess/Utils/repr.py:53 #, python-format msgid "" "Because %(black)s lost connection to the server and %(white)s requested " "adjournment" msgstr "" #: lib/pychess/Utils/repr.py:54 #, python-format msgid "" "Because %(white)s lost connection to the server and %(black)s requested " "adjournment" msgstr "" #: lib/pychess/Utils/repr.py:55 #, python-format msgid "Because %(white)s lost connection to the server" msgstr "" #: lib/pychess/Utils/repr.py:56 #, python-format msgid "Because %(black)s lost connection to the server" msgstr "" #: lib/pychess/Utils/repr.py:58 msgid "Because of adjudication by an admin. No rating changes have occurred." msgstr "" #: lib/pychess/Utils/repr.py:59 msgid "" "Because both players agreed to abort the game. No rating changes have " "occurred." msgstr "" #: lib/pychess/Utils/repr.py:60 msgid "Because of courtesy by a player. No rating changes have occurred." msgstr "" #: lib/pychess/Utils/repr.py:61 msgid "" "Because a player aborted the game. Either player can abort the game without " "the other's consent before the second move. No rating changes have occurred." msgstr "" #: lib/pychess/Utils/repr.py:62 msgid "" "Because a player disconnected and there are too few moves to warrant " "adjournment. No rating changes have occurred." msgstr "" #: lib/pychess/Utils/repr.py:63 msgid "Because the server was shut down. No rating changes have occurred." msgstr "" #: lib/pychess/Utils/repr.py:65 #, python-format msgid "Because the %(white)s engine died" msgstr "" #: lib/pychess/Utils/repr.py:66 #, python-format msgid "Because the %(black)s engine died" msgstr "" #: lib/pychess/Utils/repr.py:67 msgid "Because the connection to the server was lost" msgstr "" #: lib/pychess/Utils/repr.py:68 msgid "The reason is unknown" msgstr "" #: lib/pychess/Utils/TimeModel.py:229 msgid "min" msgstr "分" #: lib/pychess/Utils/TimeModel.py:231 msgid "sec" msgstr "秒" #: lib/pychess/Variants/asean.py:12 msgid "" "ASEAN: http://www.ncf-" "phil.org/downloadables/2014/May/Asean_chess/Laws_of_ASEAN_Chess_2011_Nov_26.doc" msgstr "" #: lib/pychess/Variants/asean.py:13 msgid "ASEAN" msgstr "" #: lib/pychess/Variants/asean.py:33 msgid "Makruk: http://en.wikipedia.org/wiki/Makruk" msgstr "" #: lib/pychess/Variants/asean.py:34 msgid "Makruk" msgstr "" #: lib/pychess/Variants/asean.py:60 msgid "Cambodian: http://www.khmerinstitute.org/culture/ok.html" msgstr "" #: lib/pychess/Variants/asean.py:61 msgid "Cambodian" msgstr "" #: lib/pychess/Variants/asean.py:86 msgid "" "Ai-Wok: http://www.open-" "aurec.com/wbforum/viewtopic.php?p=199364&sid=20963a1de2c164050de019e5ed6bf7c4#p199364" msgstr "" #: lib/pychess/Variants/asean.py:87 msgid "Ai-Wok" msgstr "" #: lib/pychess/Variants/asean.py:111 msgid "Sittuyin: http://en.wikipedia.org/wiki/Sittuyin" msgstr "" #: lib/pychess/Variants/asean.py:112 msgid "Sittuyin" msgstr "" #: lib/pychess/Variants/asymmetricrandom.py:12 msgid "" "FICS wild/4: http://www.freechess.org/Help/HelpFiles/wild.html\n" "* Randomly chosen pieces (two queens or three rooks possible)\n" "* Exactly one king of each color\n" "* Pieces placed randomly behind the pawns, SUBJECT TO THE CONSTRAINT THAT THE BISHOPS ARE BALANCED\n" "* No castling\n" "* Black's arrangement DOES NOT mirrors white's" msgstr "" #: lib/pychess/Variants/asymmetricrandom.py:18 msgid "Asymmetric Random" msgstr "" #: lib/pychess/Variants/atomic.py:14 msgid "FICS atomic: http://www.freechess.org/Help/HelpFiles/atomic.html" msgstr "" #: lib/pychess/Variants/blindfold.py:7 msgid "" "Classic chess rules with hidden figurines\n" "http://en.wikipedia.org/wiki/Blindfold_chess" msgstr "" #: lib/pychess/Variants/blindfold.py:9 #: lib/pychess/widgets/newGameDialog.py:264 msgid "Blindfold" msgstr "" #: lib/pychess/Variants/blindfold.py:18 msgid "" "Classic chess rules with hidden pawns\n" "http://en.wikipedia.org/wiki/Blindfold_chess" msgstr "" #: lib/pychess/Variants/blindfold.py:20 msgid "Hidden pawns" msgstr "" #: lib/pychess/Variants/blindfold.py:29 msgid "" "Classic chess rules with hidden pieces\n" "http://en.wikipedia.org/wiki/Blindfold_chess" msgstr "" #: lib/pychess/Variants/blindfold.py:31 msgid "Hidden pieces" msgstr "" #: lib/pychess/Variants/blindfold.py:40 msgid "" "Classic chess rules with all pieces white\n" "http://en.wikipedia.org/wiki/Blindfold_chess" msgstr "" #: lib/pychess/Variants/blindfold.py:42 msgid "All white" msgstr "" #: lib/pychess/Variants/bughouse.py:8 msgid "FICS bughouse: http://www.freechess.org/Help/HelpFiles/bughouse.html" msgstr "" #: lib/pychess/Variants/corner.py:12 msgid "" "http://brainking.com/en/GameRules?tp=2\n" "* Placement of the pieces on the 1st and 8th row are randomized\n" "* The king is in the right hand corner\n" "* Bishops must start on opposite color squares\n" "* Black's starting position is obtained by rotating white's position 180 degrees around the board's center\n" "* No castling" msgstr "" #: lib/pychess/Variants/corner.py:18 msgid "Corner" msgstr "" #: lib/pychess/Variants/crazyhouse.py:8 msgid "" "FICS crazyhouse: http://www.freechess.org/Help/HelpFiles/crazyhouse.html" msgstr "" #: lib/pychess/Variants/euroshogi.py:9 msgid "EuroShogi: http://en.wikipedia.org/wiki/EuroShogi" msgstr "" #: lib/pychess/Variants/euroshogi.py:10 msgid "EuroShogi" msgstr "" #: lib/pychess/Variants/fischerandom.py:18 msgid "" "http://en.wikipedia.org/wiki/Chess960\n" "FICS wild/fr: http://www.freechess.org/Help/HelpFiles/wild.html" msgstr "" #: lib/pychess/Variants/fischerandom.py:20 msgid "Fischer Random" msgstr "" #: lib/pychess/Variants/kingofthehill.py:8 msgid "" "Bringing your king legally to the center (e4, d4, e5, d5) instantly wins the game!\n" "Normal rules apply in other cases and checkmate also ends the game." msgstr "" #: lib/pychess/Variants/kingofthehill.py:10 msgid "King of the hill" msgstr "" #: lib/pychess/Variants/knightodds.py:8 msgid "One player starts with one less knight piece" msgstr "" #: lib/pychess/Variants/knightodds.py:9 msgid "Knight odds" msgstr "" #: lib/pychess/Variants/losers.py:8 msgid "FICS losers: http://www.freechess.org/Help/HelpFiles/losers_chess.html" msgstr "" #: lib/pychess/Variants/normal.py:4 msgid "" "Classic chess rules\n" "http://en.wikipedia.org/wiki/Chess" msgstr "" #: lib/pychess/Variants/normal.py:6 lib/pychess/widgets/newGameDialog.py:157 msgid "Normal" msgstr "" #: lib/pychess/Variants/pawnodds.py:8 msgid "One player starts with one less pawn piece" msgstr "" #: lib/pychess/Variants/pawnodds.py:9 msgid "Pawn odds" msgstr "" #: lib/pychess/Variants/pawnspassed.py:11 msgid "" "FICS wild/8a: http://www.freechess.org/Help/HelpFiles/wild.html\n" "White pawns start on 5th rank and black pawns on the 4th rank" msgstr "" #: lib/pychess/Variants/pawnspassed.py:13 msgid "Pawns Passed" msgstr "" #: lib/pychess/Variants/pawnspushed.py:10 msgid "" "FICS wild/8: http://www.freechess.org/Help/HelpFiles/wild.html\n" "Pawns start on 4th and 5th ranks rather than 2nd and 7th" msgstr "" #: lib/pychess/Variants/pawnspushed.py:12 msgid "Pawns Pushed" msgstr "" #: lib/pychess/Variants/queenodds.py:8 msgid "One player starts with one less queen piece" msgstr "" #: lib/pychess/Variants/queenodds.py:9 msgid "Queen odds" msgstr "" #: lib/pychess/Variants/randomchess.py:11 msgid "" "FICS wild/3: http://www.freechess.org/Help/HelpFiles/wild.html\n" "* Randomly chosen pieces (two queens or three rooks possible)\n" "* Exactly one king of each color\n" "* Pieces placed randomly behind the pawns\n" "* No castling\n" "* Black's arrangement mirrors white's" msgstr "" #: lib/pychess/Variants/randomchess.py:17 #: lib/pychess/widgets/TaskerManager.py:155 msgid "Random" msgstr "" #: lib/pychess/Variants/rookodds.py:8 msgid "One player starts with one less rook piece" msgstr "" #: lib/pychess/Variants/rookodds.py:9 msgid "Rook odds" msgstr "" #: lib/pychess/Variants/shuffle.py:11 msgid "" "xboard nocastle: http://home.hccnet.nl/h.g.muller/engine-intf.html#8\n" "FICS wild/2: http://www.freechess.org/Help/HelpFiles/wild.html\n" "* Random arrangement of the pieces behind the pawns\n" "* No castling\n" "* Black's arrangement mirrors white's" msgstr "" #: lib/pychess/Variants/suicide.py:11 msgid "" "FICS suicide: http://www.freechess.org/Help/HelpFiles/suicide_chess.html" msgstr "" #: lib/pychess/Variants/theban.py:10 msgid "" "Variant developed by Kai Laskos: " "http://talkchess.com/forum/viewtopic.php?t=40990" msgstr "" #: lib/pychess/Variants/theban.py:11 msgid "Theban" msgstr "" #: lib/pychess/Variants/threecheck.py:10 msgid "Win by giving check 3 times" msgstr "" #: lib/pychess/Variants/threecheck.py:11 msgid "Three-check" msgstr "" #: lib/pychess/Variants/upsidedown.py:10 msgid "" "FICS wild/5: http://www.freechess.org/Help/HelpFiles/wild.html\n" "http://en.wikipedia.org/wiki/Chess_variant#Chess_with_different_starting_positions\n" "Pawns start on their 7th rank rather than their 2nd rank!" msgstr "" #: lib/pychess/Variants/upsidedown.py:13 msgid "Upside Down" msgstr "" #: lib/pychess/Variants/wildcastle.py:10 msgid "" "xboard wildcastle http://home.hccnet.nl/h.g.muller/engine-intf.html#8\n" "FICS wild/0: http://www.freechess.org/Help/HelpFiles/wild.html\n" "* White has the typical set-up at the start.\n" "* Black's pieces are the same, except that the King and Queen are reversed,\n" "* so they are not on the same files as White's King and Queen.\n" "* Castling is done similarly to normal chess:\n" "* o-o-o indicates long castling and o-o short castling." msgstr "" #: lib/pychess/Variants/wildcastle.py:17 msgid "Wildcastle" msgstr "" #: lib/pychess/Variants/wildcastleshuffle.py:11 msgid "" "xboard wildcastle http://home.hccnet.nl/h.g.muller/engine-intf.html#8\n" "FICS wild/1: http://www.freechess.org/Help/HelpFiles/wild.html\n" "* In this variant both sides have the same set of pieces as in normal chess.\n" "* The white king starts on d1 or e1 and the black king starts on d8 or e8,\n" "* and the rooks are in their usual positions.\n" "* Bishops are always on opposite colors.\n" "* Subject to these constraints the position of the pieces on their first ranks is random.\n" "* Castling is done similarly to normal chess:\n" "* o-o-o indicates long castling and o-o short castling." msgstr "" #: lib/pychess/Variants/wildcastleshuffle.py:20 msgid "Wildcastle shuffle" msgstr "" #: lib/pychess/widgets/analyzegameDialog.py:85 msgid "Game analyzing in progress..." msgstr "" #: lib/pychess/widgets/analyzegameDialog.py:86 msgid "Do you want to abort it?" msgstr "" #: lib/pychess/widgets/analyzegameDialog.py:95 #: lib/pychess/widgets/gamewidget.py:202 lib/pychess/widgets/gamewidget.py:320 msgid "Abort" msgstr "" #: lib/pychess/widgets/ChatView.py:125 msgid "Observers" msgstr "" #: lib/pychess/widgets/ChatWindow.py:222 msgid "You have opened no conversations yet" msgstr "" #: lib/pychess/widgets/ChatWindow.py:254 msgid "Only registered users may talk to this channel" msgstr "" #: lib/pychess/widgets/ChatWindow.py:312 msgid "No conversation's selected" msgstr "" #: lib/pychess/widgets/ChatWindow.py:350 msgid "Loading player data" msgstr "" #: lib/pychess/widgets/ChatWindow.py:400 msgid "Receiving list of players" msgstr "" #: lib/pychess/widgets/ChatWindow.py:518 msgid "Friends" msgstr "" #: lib/pychess/widgets/ChatWindow.py:529 msgid "Admin" msgstr "" #: lib/pychess/widgets/ChatWindow.py:540 msgid "More channels" msgstr "" #: lib/pychess/widgets/ChatWindow.py:548 msgid "More players" msgstr "" #: lib/pychess/widgets/ChatWindow.py:558 msgid "Computers" msgstr "" #: lib/pychess/widgets/ChatWindow.py:568 msgid "BlindFold" msgstr "" #: lib/pychess/widgets/ChatWindow.py:578 msgid "Guests" msgstr "" #: lib/pychess/widgets/ChatWindow.py:805 msgid "Conversations" msgstr "" #: lib/pychess/widgets/ChatWindow.py:807 msgid "Conversation info" msgstr "" #: lib/pychess/widgets/enginesDialog.py:152 msgid "Select engine" msgstr "" #: lib/pychess/widgets/enginesDialog.py:156 msgid "Executable files" msgstr "" #: lib/pychess/widgets/enginesDialog.py:176 #: lib/pychess/widgets/enginesDialog.py:210 #: lib/pychess/widgets/enginesDialog.py:235 #, python-format msgid "Unable to add %s" msgstr "" #: lib/pychess/widgets/enginesDialog.py:177 msgid "wine not installed" msgstr "" #: lib/pychess/widgets/enginesDialog.py:211 #: lib/pychess/widgets/enginesDialog.py:236 msgid "There is something wrong with this executable" msgstr "" #: lib/pychess/widgets/enginesDialog.py:266 msgid "Select working directory" msgstr "" #: lib/pychess/widgets/gamenanny.py:115 #, python-format msgid " invalid engine move: %s" msgstr "" #: lib/pychess/widgets/gamenanny.py:134 msgid "Offer Rematch" msgstr "" #: lib/pychess/widgets/gamenanny.py:136 lib/pychess/widgets/gamenanny.py:147 #, python-format msgid "Observe %s" msgstr "" #: lib/pychess/widgets/gamenanny.py:168 msgid "Play Rematch" msgstr "" #: lib/pychess/widgets/gamenanny.py:171 msgid "Undo one move" msgstr "" #: lib/pychess/widgets/gamenanny.py:173 msgid "Undo two moves" msgstr "" #: lib/pychess/widgets/gamenanny.py:203 msgid "The game is paused" msgstr "" #: lib/pychess/widgets/gamenanny.py:221 lib/pychess/widgets/gamenanny.py:222 msgid "Loaded game" msgstr "" #: lib/pychess/widgets/gamenanny.py:228 msgid "Saved game" msgstr "" #: lib/pychess/widgets/gamenanny.py:232 msgid "Analyzer started" msgstr "" #: lib/pychess/widgets/gamenanny.py:281 msgid "You sent an abort offer" msgstr "" #: lib/pychess/widgets/gamenanny.py:283 msgid "You sent an adjournment offer" msgstr "" #: lib/pychess/widgets/gamenanny.py:285 msgid "You sent a draw offer" msgstr "" #: lib/pychess/widgets/gamenanny.py:287 msgid "You sent a pause offer" msgstr "" #: lib/pychess/widgets/gamenanny.py:289 msgid "You sent a resume offer" msgstr "" #: lib/pychess/widgets/gamenanny.py:291 msgid "You sent an undo offer" msgstr "" #: lib/pychess/widgets/gamenanny.py:293 msgid "You asked your opponent to move" msgstr "" #: lib/pychess/widgets/gamenanny.py:305 #, python-format msgid "Engine, %s, has died" msgstr "" #: lib/pychess/widgets/gamenanny.py:306 msgid "" "PyChess has lost connection to the engine, probably because it has died.\n" "\n" "You can try to start a new game with the engine, or try to play against another one." msgstr "" #: lib/pychess/widgets/gamewidget.py:204 msgid "" "This game can be automatically aborted without rating loss because there has" " not yet been two moves made" msgstr "" #: lib/pychess/widgets/gamewidget.py:206 msgid "Offer Abort" msgstr "" #: lib/pychess/widgets/gamewidget.py:208 msgid "" "Your opponent must agree to abort the game because there has been two or " "more moves made" msgstr "" #: lib/pychess/widgets/gamewidget.py:226 msgid "This game can not be adjourned because one or both players are guests" msgstr "" #: lib/pychess/widgets/gamewidget.py:243 msgid "Claim Draw" msgstr "" #: lib/pychess/widgets/gamewidget.py:325 msgid "Pause" msgstr "" #: lib/pychess/widgets/gamewidget.py:326 msgid "Resume" msgstr "" #: lib/pychess/widgets/gamewidget.py:328 msgid "Offer Pause" msgstr "" #: lib/pychess/widgets/gamewidget.py:329 msgid "Offer Resume" msgstr "" #: lib/pychess/widgets/gamewidget.py:333 msgid "Undo" msgstr "" #: lib/pychess/widgets/gamewidget.py:335 msgid "Offer Undo" msgstr "" #: lib/pychess/widgets/gamewidget.py:550 msgid " has lagged for 30 seconds" msgstr "" #: lib/pychess/widgets/gamewidget.py:566 msgid " is lagging heavily but hasn't disconnected" msgstr "" #: lib/pychess/widgets/gamewidget.py:567 msgid "Continue to wait for opponent, or try to adjourn the game?" msgstr "" #: lib/pychess/widgets/gamewidget.py:575 msgid "Wait" msgstr "" #: lib/pychess/widgets/gamewidget.py:576 msgid "Adjourn" msgstr "" #: lib/pychess/widgets/gamewidget.py:648 msgid "Jump to initial position" msgstr "" #: lib/pychess/widgets/gamewidget.py:653 msgid "Step back one move" msgstr "" #: lib/pychess/widgets/gamewidget.py:658 msgid "Go back to the main line" msgstr "" #: lib/pychess/widgets/gamewidget.py:664 msgid "Step forward one move" msgstr "" #: lib/pychess/widgets/gamewidget.py:669 msgid "Jump to latest position" msgstr "" #: lib/pychess/widgets/gamewidget.py:903 msgid "PyChess was unable to load your panel settings" msgstr "" #: lib/pychess/widgets/gamewidget.py:904 msgid "" "Your panel settings have been reset. If this problem repeats, you should " "report it to the developers" msgstr "" #: lib/pychess/widgets/ionest.py:67 lib/pychess/widgets/newGameDialog.py:389 #: lib/pychess/widgets/TaskerManager.py:210 msgid "You" msgstr "" #: lib/pychess/widgets/ionest.py:70 lib/pychess/widgets/newGameDialog.py:390 #: lib/pychess/widgets/preferencesDialog.py:61 #: lib/pychess/widgets/TaskerManager.py:213 msgid "Guest" msgstr "" #: lib/pychess/widgets/ionest.py:93 msgid "Error loading game" msgstr "" #: lib/pychess/widgets/ionest.py:127 lib/pychess/widgets/newGameDialog.py:480 msgid "Open Game" msgstr "ゲームを開く" #: lib/pychess/widgets/ionest.py:137 msgid "All Files" msgstr "" #: lib/pychess/widgets/ionest.py:140 msgid "Detect type automatically" msgstr "" #: lib/pychess/widgets/ionest.py:146 msgid "All Chess Files" msgstr "" #: lib/pychess/widgets/ionest.py:228 msgid "Save Game" msgstr "ゲームの保存" #: lib/pychess/widgets/ionest.py:228 msgid "Export position" msgstr "" #: lib/pychess/widgets/ionest.py:232 lib/pychess/widgets/ionest.py:360 msgid "vs." msgstr "" #: lib/pychess/widgets/ionest.py:249 #, python-format msgid "Unknown file type '%s'" msgstr "" #: lib/pychess/widgets/ionest.py:250 #, python-format msgid "" "Was unable to save '%(uri)s' as PyChess doesn't know the format " "'%(ending)s'." msgstr "" #: lib/pychess/widgets/ionest.py:266 #, python-format msgid "Unable to save file '%s'" msgstr "" #: lib/pychess/widgets/ionest.py:268 msgid "" "You don't have the necessary rights to save the file.\n" "Please ensure that you have given the right path and try again." msgstr "" #: lib/pychess/widgets/ionest.py:276 msgid "_Replace" msgstr "" #: lib/pychess/widgets/ionest.py:280 msgid "File exists" msgstr "" #: lib/pychess/widgets/ionest.py:282 #, python-format msgid "" "A file named '%s' already exists. Would you like to replace " "it?" msgstr "" #: lib/pychess/widgets/ionest.py:283 #, python-format msgid "" "The file already exists in '%s'. If you replace it, its content will be " "overwritten." msgstr "" #: lib/pychess/widgets/ionest.py:299 msgid "Could not save the file" msgstr "" #: lib/pychess/widgets/ionest.py:300 msgid "PyChess was not able to save the game" msgstr "" #: lib/pychess/widgets/ionest.py:301 #, python-format msgid "The error was: %s" msgstr "" #: lib/pychess/widgets/ionest.py:325 #, python-format msgid "There is %d game with unsaved moves." msgid_plural "There are %d games with unsaved moves." msgstr[0] "" #: lib/pychess/widgets/ionest.py:328 msgid "Save moves before closing?" msgstr "" #: lib/pychess/widgets/ionest.py:339 msgid "Unable to save to configured file. Save the games before closing?" msgstr "" #: lib/pychess/widgets/ionest.py:366 #, python-format msgid "_Save %d document" msgid_plural "_Save %d documents" msgstr[0] "" #: lib/pychess/widgets/ionest.py:412 msgid "Save the current game before you close it?" msgstr "" #: lib/pychess/widgets/ionest.py:420 msgid "" "Unable to save to configured file. Save the current game before you close " "it?" msgstr "" #: lib/pychess/widgets/ionest.py:434 msgid "" "It is not possible later to continue the game,\n" "if you don't save it." msgstr "" #: lib/pychess/widgets/LogDialog.py:26 msgid "PyChess Information Window" msgstr "" #: lib/pychess/widgets/LogDialog.py:184 lib/pychess/widgets/LogDialog.py:188 msgid "of" msgstr "" #: lib/pychess/widgets/newGameDialog.py:84 #: lib/pychess/widgets/newGameDialog.py:85 msgid "Human Being" msgstr "" #: lib/pychess/widgets/newGameDialog.py:155 msgid "Rapid" msgstr "" #: lib/pychess/widgets/newGameDialog.py:224 msgid "Minutes:" msgstr "" #: lib/pychess/widgets/newGameDialog.py:228 msgid "Gain:" msgstr "" #: lib/pychess/widgets/newGameDialog.py:241 #, python-format msgid "%(name)s %(minutes)d min + %(gain)d sec/move" msgstr "" #: lib/pychess/widgets/newGameDialog.py:244 #, python-format msgid "%(name)s %(minutes)d min %(gain)d sec/move" msgstr "" #: lib/pychess/widgets/newGameDialog.py:247 #, python-format msgid "%(name)s %(minutes)d min" msgstr "" #: lib/pychess/widgets/newGameDialog.py:265 msgid "Odds" msgstr "" #: lib/pychess/widgets/newGameDialog.py:269 msgid "Asian variants" msgstr "" #: lib/pychess/widgets/newGameDialog.py:301 msgid " chess" msgstr "" #: lib/pychess/widgets/newGameDialog.py:682 msgid "Type or paste PGN game or FEN positions here" msgstr "" #: lib/pychess/widgets/newGameDialog.py:725 msgid "Enter Game" msgstr "" #: lib/pychess/widgets/preferencesDialog.py:123 msgid "Select book file" msgstr "" #: lib/pychess/widgets/preferencesDialog.py:128 msgid "Opening books" msgstr "" #: lib/pychess/widgets/preferencesDialog.py:156 msgid "Select Gaviota TB path" msgstr "" #: lib/pychess/widgets/preferencesDialog.py:331 msgid "Open Sound File" msgstr "" #: lib/pychess/widgets/preferencesDialog.py:341 msgid "Sound files" msgstr "" #: lib/pychess/widgets/preferencesDialog.py:485 msgid "Undescribed panel" msgstr "" #: lib/pychess/widgets/preferencesDialog.py:678 msgid "Select auto save path" msgstr "" #: lib/pychess/widgets/tipOfTheDay.py:51 msgid "" "You can start a new game by Game > New Game, in New Game " "window do you can choose Players, Time Control and Chess " "Variants." msgstr "" #: lib/pychess/widgets/tipOfTheDay.py:52 msgid "" "You can choose from 20 different difficulties to play against the computer." msgstr "" #: lib/pychess/widgets/tipOfTheDay.py:53 msgid "" "Chess Variants are like the pieces of the last line will be placed on the " "board." msgstr "" #: lib/pychess/widgets/tipOfTheDay.py:54 msgid "" "To save a game Game > Save Game As, give the filename and " "choose where you want to be saved. At the bottom choose extension type of " "the file, and Save." msgstr "" #: lib/pychess/widgets/tipOfTheDay.py:55 msgid "" "Do you know that you can call flag when the clock is with you, " "Actions > Call Flag." msgstr "" #: lib/pychess/widgets/tipOfTheDay.py:56 msgid "Pressing Ctrl+Z to offer opponent the possible rollback moves." msgstr "" #: lib/pychess/widgets/tipOfTheDay.py:57 msgid "" "To play on Fullscreen mode, just type F11. Coming back, F11 " "again." msgstr "" #: lib/pychess/widgets/tipOfTheDay.py:58 msgid "Hint mode analyzing your game, enable this type Ctrl+H." msgstr "" #: lib/pychess/widgets/tipOfTheDay.py:59 msgid "" "Spy mode analyzing the oponnent game, enable this type Ctrl+Y." msgstr "" #: lib/pychess/widgets/tipOfTheDay.py:60 msgid "" "You can play chess listening to the sounds of the game, for that, " "Settings > Preferences > Sound tab, enable Use " "sounds in PyChess and choose your preferred sounds." msgstr "" #: lib/pychess/widgets/tipOfTheDay.py:61 msgid "" "Do you know that you can help translate Pychess in your language, " "Help > Translate Pychess." msgstr "" #: lib/pychess/widgets/tipOfTheDay.py:62 msgid "" "Do you know that it is possible to finish a chess game in just 2 turns?" msgstr "" #: lib/pychess/widgets/tipOfTheDay.py:63 msgid "" "Do you know that the number of possible chess games exceeds the number of " "atoms in the Universe?" msgstr "" #: lib/pychess/ic/managers/ChatManager.py:184 msgid "Shout" msgstr "" #: lib/pychess/ic/managers/ChatManager.py:185 msgid "Chess Shout" msgstr "" #: lib/pychess/ic/managers/ChatManager.py:195 #, python-format msgid "Unofficial channel %d" msgstr "" #: lib/pychess/Utils/lutils/LBoard.py:152 #, python-format msgid "" "FEN needs 6 data fields. \n" "\n" "%s" msgstr "" #: lib/pychess/Utils/lutils/LBoard.py:154 #, python-format msgid "" "FEN needs at least 2 data fields in fenstr. \n" "\n" "%s" msgstr "" #: lib/pychess/Utils/lutils/LBoard.py:175 #, python-format msgid "" "Needs 7 slashes in piece placement field. \n" "\n" "%s" msgstr "" #: lib/pychess/Utils/lutils/LBoard.py:178 #, python-format msgid "" "Active color field must be one of w or b. \n" "\n" "%s" msgstr "" #: lib/pychess/Utils/lutils/LBoard.py:189 #, python-format msgid "" "Castling availability field is not legal. \n" "\n" "%s" msgstr "" #: lib/pychess/Utils/lutils/LBoard.py:192 #, python-format msgid "" "En passant cord is not legal. \n" "\n" "%s" msgstr "" #: lib/pychess/Utils/lutils/lmove.py:260 msgid "invalid promoted piece" msgstr "" #: lib/pychess/Utils/lutils/lmove.py:272 msgid "the move needs a piece and a cord" msgstr "" #: lib/pychess/Utils/lutils/lmove.py:306 lib/pychess/Utils/lutils/lmove.py:556 msgid "promotion move without promoted piece is incorrect" msgstr "" #: lib/pychess/Utils/lutils/lmove.py:312 #, python-format msgid "the captured cord (%s) is incorrect" msgstr "" #: lib/pychess/Utils/lutils/lmove.py:323 #, python-format msgid "the end cord (%s) is incorrect" msgstr "" #: lib/pychess/Utils/lutils/strateval.py:24 sidepanel/commentPanel.py:191 #: sidepanel/commentPanel.py:208 msgid "and" msgstr "" #: lib/pychess/Utils/lutils/strateval.py:43 msgid "draws" msgstr "" #: lib/pychess/Utils/lutils/strateval.py:45 msgid "mates" msgstr "" #: lib/pychess/Utils/lutils/strateval.py:49 msgid "puts opponent in check" msgstr "" #: lib/pychess/Utils/lutils/strateval.py:73 msgid "improves king safety" msgstr "" #: lib/pychess/Utils/lutils/strateval.py:75 msgid "slightly improves king safety" msgstr "" #: lib/pychess/Utils/lutils/strateval.py:108 msgid "moves a rook to an open file" msgstr "" #: lib/pychess/Utils/lutils/strateval.py:109 msgid "moves an rook to a half-open file" msgstr "" #: lib/pychess/Utils/lutils/strateval.py:119 #: lib/pychess/Utils/lutils/strateval.py:121 #: lib/pychess/Utils/lutils/strateval.py:124 #: lib/pychess/Utils/lutils/strateval.py:126 #, python-format msgid "moves bishop into fianchetto: %s" msgstr "" #: lib/pychess/Utils/lutils/strateval.py:132 #, python-format msgid "promotes a Pawn to a %s" msgstr "" #: lib/pychess/Utils/lutils/strateval.py:135 msgid "castles" msgstr "" #: lib/pychess/Utils/lutils/strateval.py:158 msgid "takes back material" msgstr "" #: lib/pychess/Utils/lutils/strateval.py:162 #: lib/pychess/Utils/lutils/strateval.py:170 msgid "sacrifies material" msgstr "" #: lib/pychess/Utils/lutils/strateval.py:164 msgid "exchanges material" msgstr "" #: lib/pychess/Utils/lutils/strateval.py:166 msgid "captures material" msgstr "" #: lib/pychess/Utils/lutils/strateval.py:291 #, python-format msgid "rescues a %s" msgstr "" #: lib/pychess/Utils/lutils/strateval.py:294 #, python-format msgid "threatens to win material by %s" msgstr "" #: lib/pychess/Utils/lutils/strateval.py:296 #, python-format msgid "increases the pressure on %s" msgstr "" #: lib/pychess/Utils/lutils/strateval.py:298 #, python-format msgid "defends %s" msgstr "" #: lib/pychess/Utils/lutils/strateval.py:336 #, python-format msgid "pins an enemy %(oppiece)s on the %(piece)s at %(cord)s" msgstr "" #: lib/pychess/Utils/lutils/strateval.py:369 #, python-format msgid "White has a new piece in outpost: %s" msgstr "" #: lib/pychess/Utils/lutils/strateval.py:377 #, python-format msgid "Black has a new piece in outpost: %s" msgstr "" #: lib/pychess/Utils/lutils/strateval.py:416 #, python-format msgid "%(color)s has a new passed pawn on %(cord)s" msgstr "" #: lib/pychess/Utils/lutils/strateval.py:470 msgid "half-open" msgstr "" #: lib/pychess/Utils/lutils/strateval.py:472 #, python-format msgid "in the %(x)s%(y)s file" msgstr "" #: lib/pychess/Utils/lutils/strateval.py:474 #, python-format msgid "in the %(x)s%(y)s files" msgstr "" #: lib/pychess/Utils/lutils/strateval.py:477 #, python-format msgid "%(color)s got a double pawn %(place)s" msgstr "" #: lib/pychess/Utils/lutils/strateval.py:478 #, python-format msgid "%(color)s got new double pawns %(place)s" msgstr "" #: lib/pychess/Utils/lutils/strateval.py:485 #, python-format msgid "%(color)s got an isolated pawn in the %(x)s file" msgid_plural "%(color)s got isolated pawns in the %(x)s files" msgstr[0] "" #: lib/pychess/Utils/lutils/strateval.py:492 #, python-format msgid "%s moves pawns into stonewall formation" msgstr "" #: lib/pychess/Utils/lutils/strateval.py:507 #: lib/pychess/Utils/lutils/strateval.py:514 #, python-format msgid "%s can no longer castle" msgstr "" #: lib/pychess/Utils/lutils/strateval.py:508 #: lib/pychess/Utils/lutils/strateval.py:515 #, python-format msgid "%s can no longer castle in queenside" msgstr "" #: lib/pychess/Utils/lutils/strateval.py:510 #: lib/pychess/Utils/lutils/strateval.py:517 #, python-format msgid "%s can no longer castle in kingside" msgstr "" #: lib/pychess/Utils/lutils/strateval.py:551 #, python-format msgid "%(opcolor)s has a new trapped bishop on %(cord)s" msgstr "" #: lib/pychess/Utils/lutils/strateval.py:573 #, python-format msgid "develops a pawn: %s" msgstr "" #: lib/pychess/Utils/lutils/strateval.py:574 #, python-format msgid "brings a pawn closer to the backrow: %s" msgstr "" #: lib/pychess/Utils/lutils/strateval.py:591 #, python-format msgid "brings a %(piece)s closer to enemy king: %(cord)s" msgstr "" #: lib/pychess/Utils/lutils/strateval.py:594 #, python-format msgid "develops a %(piece)s: %(cord)s" msgstr "" #: lib/pychess/Utils/lutils/strateval.py:612 #, python-format msgid "places a %(piece)s more active: %(cord)s" msgstr "" #: lib/pychess/Utils/lutils/strateval.py:638 msgid "White should do pawn storm in right" msgstr "" #: lib/pychess/Utils/lutils/strateval.py:640 msgid "Black should do pawn storm in left" msgstr "" #: lib/pychess/Utils/lutils/strateval.py:643 msgid "White should do pawn storm in left" msgstr "" #: lib/pychess/Utils/lutils/strateval.py:645 msgid "Black should do pawn storm in right" msgstr "" #: lib/pychess/Utils/lutils/strateval.py:671 msgid "Black has a rather cramped position" msgstr "" #: lib/pychess/Utils/lutils/strateval.py:673 msgid "Black has a slightly cramped position" msgstr "" #: lib/pychess/Utils/lutils/strateval.py:675 msgid "White has a rather cramped position" msgstr "" #: lib/pychess/Utils/lutils/strateval.py:677 msgid "White has a slightly cramped position" msgstr "" #: sidepanel/annotationPanel.py:26 msgid "Annotation" msgstr "" #: sidepanel/annotationPanel.py:29 msgid "Annotated game" msgstr "" #: sidepanel/annotationPanel.py:236 msgid "Copy PGN" msgstr "" #: sidepanel/annotationPanel.py:249 msgid "Add start comment" msgstr "" #: sidepanel/annotationPanel.py:254 msgid "Add comment" msgstr "" #: sidepanel/annotationPanel.py:258 sidepanel/annotationPanel.py:316 msgid "Edit comment" msgstr "" #: sidepanel/annotationPanel.py:269 msgid "Forced move" msgstr "" #: sidepanel/annotationPanel.py:274 msgid "Add move symbol" msgstr "" #: sidepanel/annotationPanel.py:280 msgid "Unclear position" msgstr "" #: sidepanel/annotationPanel.py:289 msgid "Zugzwang" msgstr "" #: sidepanel/annotationPanel.py:290 msgid "Development adv." msgstr "" #: sidepanel/annotationPanel.py:291 msgid "Initiative" msgstr "" #: sidepanel/annotationPanel.py:292 msgid "With attack" msgstr "" #: sidepanel/annotationPanel.py:293 msgid "Compensation" msgstr "" #: sidepanel/annotationPanel.py:294 msgid "Counterplay" msgstr "" #: sidepanel/annotationPanel.py:295 msgid "Time pressure" msgstr "" #: sidepanel/annotationPanel.py:300 msgid "Add evaluation symbol" msgstr "" #: sidepanel/annotationPanel.py:304 msgid "Remove symbols" msgstr "" #: sidepanel/annotationPanel.py:911 #, python-format msgid "round %s" msgstr "" #: sidepanel/bookPanel.py:21 msgid "Hints" msgstr "ヒント" #: sidepanel/bookPanel.py:25 msgid "" "The hint panel will provide computer advice during each stage of the game" msgstr "" #: sidepanel/bookPanel.py:27 msgid "Official PyChess panel." msgstr "" #: sidepanel/bookPanel.py:87 msgid "Opening Book" msgstr "" #: sidepanel/bookPanel.py:88 msgid "" "The opening book will try to inspire you during the opening phase of the " "game by showing you common moves made by chess masters" msgstr "" #: sidepanel/bookPanel.py:139 #, python-format msgid "Analysis by %s" msgstr "" #: sidepanel/bookPanel.py:140 #, python-format msgid "" "%s will try to predict which move is best and which side has the advantage" msgstr "" #: sidepanel/bookPanel.py:142 #, python-format msgid "Threat analysis by %s" msgstr "" #: sidepanel/bookPanel.py:143 #, python-format msgid "" "%s will identify what threats would exist if it were your opponent's turn to" " move" msgstr "" #: sidepanel/bookPanel.py:159 sidepanel/bookPanel.py:269 msgid "Calculating..." msgstr "" #: sidepanel/bookPanel.py:300 msgid "" "Engine scores are in units of pawns, from White's point of view. Double " "clicking on analysis lines you can insert them into Annotation panel as " "variations." msgstr "" #: sidepanel/bookPanel.py:302 msgid "" "Adding suggestions can help you find ideas, but slows down the computer's " "analysis." msgstr "" #: sidepanel/bookPanel.py:311 msgid "Endgame Table" msgstr "" #: sidepanel/bookPanel.py:315 msgid "" "The endgame table will show exact analysis when there are few pieces on the " "board." msgstr "" #: sidepanel/bookPanel.py:364 sidepanel/bookPanel.py:367 #, python-format msgid "Mate in %d" msgstr "" #: sidepanel/bookPanel.py:554 msgid "" "In this position,\n" "there is no legal move." msgstr "" #: sidepanel/chatPanel.py:21 msgid "" "The chat panel lets you communicate with your opponent during the game, " "assuming he or she is interested" msgstr "" #: sidepanel/commentPanel.py:16 msgid "Comments" msgstr "コメント" #: sidepanel/commentPanel.py:20 msgid "The comments panel will try to analyze and explain the moves played" msgstr "" #: sidepanel/commentPanel.py:121 msgid "Initial position" msgstr "" #: sidepanel/commentPanel.py:254 #, python-format msgid "%(color)s moves a %(piece)s to %(cord)s" msgstr "" #: sidepanel/engineOutputPanel.py:15 msgid "Engines" msgstr "" #: sidepanel/engineOutputPanel.py:20 msgid "" "The engine output panel shows the thinking output of chess engines (computer" " players) during a game" msgstr "" #: sidepanel/engineOutputPanel.py:44 msgid "No chess engines (computer players) are participating in this game." msgstr "" #: sidepanel/historyPanel.py:10 msgid "Move History" msgstr "" #: sidepanel/historyPanel.py:13 msgid "" "The moves sheet keeps track of the players' moves and lets you navigate " "through the game history" msgstr "" #: sidepanel/scorePanel.py:15 msgid "Score" msgstr "" #: sidepanel/scorePanel.py:19 msgid "" "The score panel tries to evaluate the positions and shows you a graph of the" " game progress" msgstr "" pychess-0.12.2/lang/ja/LC_MESSAGES/pychess.mo0000644000175000017470000001176012653231272020673 0ustar tamasusers00000000000000Rm< 9 G\ my C 09N_ej q|     # @ L R _ g n s |   p Q X b p x C~          ) 6 @ N Y e t ~     & + 2 68 o       _q       %+Q"g" !  +5I1P    1K_v~ '@ ]jBn     &1 BMa ~  (DH9@KB <R) ; E7=A"0.O/FQP&$'5G3I:JN4+1L*#?-!> C,26%8  M + %d sec min%d min5 minConnect to the Free Online Chess ServerChess VariantGame dataNewsOptionsPlayersTools_Start GamePyChess is discovering your engines. Please wait.Auto-logoutBishopBlitz:ChatClose _without SavingCommentsConnecting to serverConnection ErrorHintsKingKnightLightning:Load _Recent GameLog on ErrorLog on as G_uestLog on as _GuestLogging on to serverNew GameOfflineOnlineOpen GameOpponent RatingPawnPre_viewPromotionPyChess - Connect to Internet ChessPyChess.py:QueenQuit PyChessR_esignRatingRookS_ign upSave GameSave Game _AsSetting up environmentShow _ChatShredderLinuxChess:Side_panelsStandard:The analyzer will run in the background and analyze the game. This is necessary for the hint mode to workThemesUninstallUse _analyzerWelcomeWhiteYou have been logged out because you were idle more than 60 minutes_Accept_Black player:_Decline_Game_Game List_Load Game_Log Off_Name:_New Game_Next_Password:_Player List_Previous_Rotate Board_Save Game_Start Game_White player:gnuchess:minresignsecProject-Id-Version: pychess Report-Msgid-Bugs-To: POT-Creation-Date: 2016-01-27 13:28+0100 PO-Revision-Date: 2016-01-28 08:56+0000 Last-Translator: slav0nic Language-Team: Japanese (http://www.transifex.com/gbtami/pychess/language/ja/) MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Language: ja Plural-Forms: nplurals=1; plural=0; + %d 秒 分%d 分5 分フリーオンラインチェスサーバーに接続変則チェスゲームデータニュースオプションプレイヤーツールゲームの開始(_S)PyChess がエンジンを取得しています. 少しお待ちください.自動ログアウトビショップ早指し:チャット保存せずに閉じる(_W)コメントサーバに接続中接続エラーヒントキングナイト超早指し:最近のゲームの読み込み(_R)ログオンエラーゲストとしてログオン(_U)ゲストとしてログオン(_G)サーバにログオン中新ゲームオフラインオンラインゲームを開く対戦相手のレイティングポーンプレビュー(_V)昇進PyChess - インターネットチェスに接続PyChess.py:クイーンPyChessを終了投了(_E)レイティングルークサインアップ(_I)ゲームの保存ゲームを別名で保存(_A)環境の設定中チャットの表示(_C)ShredderLinuxChess:サイドパネル(_P)標準:アナライザはバックグラウンドで動作し、ゲームを分析します。 これはヒントモードを動作させるのに必要ですテーマアンインストールアナライザを使用(_A)ようこそ白60 分以上動作が無かったためログアウトしました同意(_A)黒番(_B):拒否(_D)ゲーム(_G)ゲームの一覧(_G)ゲームの読み込み(_L)ログオフ(_L)名前(_N)新ゲーム(_N)次へ(_N)パスワード(_P)プレイヤーの一覧(_P)前へ(_P)盤面の回転(_R)ゲームの保存(_S)ゲームの開始(_S)白番(_W):gnuchess:分投了秒pychess-0.12.2/lang/nl/0000755000175000017470000000000012653231274015107 5ustar tamasusers00000000000000pychess-0.12.2/lang/nl/LC_MESSAGES/0000755000175000017470000000000012653231274016674 5ustar tamasusers00000000000000pychess-0.12.2/lang/nl/LC_MESSAGES/pychess.po0000644000175000017470000025440212653216201020712 0ustar tamasusers00000000000000# SOME DESCRIPTIVE TITLE. # Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER # This file is distributed under the same license as the pychess package. # # Translators: # jezusisstoer , 2014 msgid "" msgstr "" "Project-Id-Version: pychess\n" "Report-Msgid-Bugs-To: \n" "POT-Creation-Date: 2016-01-27 13:28+0100\n" "PO-Revision-Date: 2016-01-28 08:56+0000\n" "Last-Translator: slav0nic \n" "Language-Team: Dutch (http://www.transifex.com/gbtami/pychess/language/nl/)\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" "Language: nl\n" "Plural-Forms: nplurals=2; plural=(n != 1);\n" # "Plural-Forms: nplurals=INTEGER; plural=EXPRESSION;\n" #: glade/analyze_game.glade:22 msgid "Analyze game" msgstr "" #: glade/analyze_game.glade:87 msgid "Use analyzer:" msgstr "" #: glade/analyze_game.glade:122 glade/PyChess.glade:2054 msgid "Maximum analysis time in seconds:" msgstr "" #: glade/analyze_game.glade:163 msgid "" "If the analyzer finds a move where the evaluation difference (the difference" " between the evaluation for the move it thinks is the best move and the " "evaluation for the move made in the game) exceeds this value, it will add an" " annotation for that move (consisting of the engine's Principal Variation " "for the move) to the Annotation panel" msgstr "" #: glade/analyze_game.glade:164 msgid "Variation annotation creation threshold in centipawns:" msgstr "" #: glade/analyze_game.glade:198 msgid "Analyze from current position" msgstr "" #: glade/analyze_game.glade:214 msgid "Add threatening variation lines " msgstr "" #: glade/analyze_game.glade:229 glade/PyChess.glade:1459 msgid "Colorize analyzed moves" msgstr "" #: glade/analyze_game.glade:244 glade/PyChess.glade:1495 msgid "Show evaluation values" msgstr "" #: glade/discovererDialog.glade:18 msgid "PyChess is discovering your engines. Please wait." msgstr "PyChess zoekt nu naar uw grafische stuurprogramma's. Even geduld alstublieft." #: glade/discovererDialog.glade:77 msgid "PyChess.py:" msgstr "PyChess.py:" #: glade/discovererDialog.glade:89 msgid "ShredderLinuxChess:" msgstr "ShredderLinuxChess:" #: glade/discovererDialog.glade:101 msgid "gnuchess:" msgstr "gnuchess:" #: glade/fics_logon.glade:7 msgid "PyChess - Connect to Internet Chess" msgstr "PyChess - verbinden met internetschaak" #: glade/fics_logon.glade:47 msgid "Connect to the Free Online Chess Server" msgstr "Verbinding maken met FICS (Free Online Chess Server)" #: glade/fics_logon.glade:129 glade/taskers.glade:394 msgid "_Password:" msgstr "_Wachtwoord:" #: glade/fics_logon.glade:143 msgid "_Name:" msgstr "_Naam:" #: glade/fics_logon.glade:191 msgid "Log on as _Guest" msgstr "Aanmelden als _gast" #: glade/fics_logon.glade:227 msgid "Host:" msgstr "" #: glade/fics_logon.glade:259 msgid "Po_rts:" msgstr "Poo_rten:" #: glade/fics_logon.glade:271 msgid "Auto login on startup" msgstr "" #: glade/fics_logon.glade:385 msgid "S_ign up" msgstr "Reg_istreren" #: glade/fics_lounge.glade:35 msgid "Challenge: " msgstr "Uitdaging: " #: glade/fics_lounge.glade:97 msgid "Send Challenge" msgstr "Uitdaging versturen" #: glade/fics_lounge.glade:133 msgid "Challenge:" msgstr "Uitdaging:" #: glade/fics_lounge.glade:327 glade/fics_lounge.glade:2078 msgid "Lightning:" msgstr "Bliksem:" #: glade/fics_lounge.glade:351 glade/fics_lounge.glade:2102 msgid "Standard:" msgstr "Standaard:" #: glade/fics_lounge.glade:375 glade/fics_lounge.glade:2126 msgid "Blitz:" msgstr "Blitz:" #: glade/fics_lounge.glade:400 msgid "2 min, Fischer Random, Black" msgstr "2 min, Fischer willekeurig, zwart" #: glade/fics_lounge.glade:422 msgid "10 min + 6 sec/move, White" msgstr "10 min + 6 sec/zet, Wit" #: glade/fics_lounge.glade:444 msgid "5 min" msgstr "5 min" #: glade/fics_lounge.glade:480 msgid "Edit Seek" msgstr "Verzoek bewerken" #: glade/fics_lounge.glade:584 lib/pychess/ic/ICLounge.py:2208 #: lib/pychess/ic/__init__.py:101 lib/pychess/Utils/GameModel.py:206 msgid "Untimed" msgstr "Zonder tijdslimiet" #: glade/fics_lounge.glade:637 msgid "Minutes: " msgstr "Minuten: " #: glade/fics_lounge.glade:665 msgid " Gain: " msgstr " Voordeel: " #: glade/fics_lounge.glade:703 msgid "Time control: " msgstr "Tijd controle: " #: glade/fics_lounge.glade:716 lib/pychess/ic/FICSObjects.py:56 #: lib/pychess/ic/ICLounge.py:1137 lib/pychess/ic/ICLounge.py:2208 #: lib/pychess/ic/__init__.py:99 msgid "Standard" msgstr "Standaard" #: glade/fics_lounge.glade:757 glade/newInOut.glade:633 msgid "Time Control" msgstr "Tijd controle:" #: glade/fics_lounge.glade:814 glade/fics_lounge.glade:1346 msgid "Don't care" msgstr "Maakt niet uit" #: glade/fics_lounge.glade:879 msgid "Your strength: " msgstr "Uw sterkte: " #: glade/fics_lounge.glade:921 msgid "(Blitz)" msgstr "(Blitz)" #: glade/fics_lounge.glade:951 msgid "Opponent's strength: " msgstr "Sterkte tegenstander: " #: glade/fics_lounge.glade:1055 msgid "" "When this button is in the \"locked\" state, the relationship\n" "between \"Opponent's strength\" and \"Your strength\" will be\n" "preserved when \n" "a) your rating for the type of game sought has changed\n" "b) you change the variant or the time control" msgstr "" #: glade/fics_lounge.glade:1095 msgid "Center:" msgstr "Centrum:" #: glade/fics_lounge.glade:1134 msgid "1200" msgstr "1200" #: glade/fics_lounge.glade:1188 msgid "Tolerance:" msgstr "Tolerantie:" #: glade/fics_lounge.glade:1243 lib/pychess/ic/ICLounge.py:2452 msgid "Hide" msgstr "Verberg" #: glade/fics_lounge.glade:1289 msgid "Opponent Strength" msgstr "Sterkte tegenstander" #: glade/fics_lounge.glade:1386 lib/pychess/Database/gamelist.py:40 #: lib/pychess/ic/ICLounge.py:1357 lib/pychess/ic/ICLounge.py:1557 #: lib/pychess/ic/ICLounge.py:2108 lib/pychess/Utils/repr.py:10 #: lib/pychess/widgets/ChessClock.py:40 #: lib/pychess/widgets/TaskerManager.py:153 msgid "White" msgstr "Wit" #: glade/fics_lounge.glade:1414 lib/pychess/Database/gamelist.py:40 #: lib/pychess/ic/ICLounge.py:1358 lib/pychess/ic/ICLounge.py:1558 #: lib/pychess/ic/ICLounge.py:2110 lib/pychess/Utils/repr.py:10 #: lib/pychess/widgets/ChessClock.py:40 #: lib/pychess/widgets/TaskerManager.py:154 msgid "Black" msgstr "Zwart" #: glade/fics_lounge.glade:1453 msgid "Your Color" msgstr "Uw kleur" #: glade/fics_lounge.glade:1512 msgid "Play normal chess rules" msgstr "Speel met de normale schaakregels" #: glade/fics_lounge.glade:1552 msgid "Play" msgstr "Speel" #: glade/fics_lounge.glade:1618 glade/newInOut.glade:833 msgid "Chess Variant" msgstr "Schaakvariant" #: glade/fics_lounge.glade:1676 msgid "Rated game" msgstr "Gerateerd spel" #: glade/fics_lounge.glade:1692 msgid "Manually accept opponent" msgstr "Tegenstander handmatig accepteren" #: glade/fics_lounge.glade:1722 msgid "Options" msgstr "Opties" #: glade/fics_lounge.glade:1750 msgid "PyChess - Internet Chess: FICS" msgstr "PyChess - internetschaak: FICS" #: glade/fics_lounge.glade:1823 msgid "_Clear Seeks" msgstr "" #: glade/fics_lounge.glade:1847 msgid "_Accept" msgstr "_Accepteren" #: glade/fics_lounge.glade:1871 msgid "_Decline" msgstr "_Weigeren" #: glade/fics_lounge.glade:2151 msgid "2 min, Fischer Random, 1800↓, Black" msgstr "2 min, Fischer Random, 1800↓, zwart" #: glade/fics_lounge.glade:2172 msgid "10 min + 6 sec/move, 1400↑, White" msgstr "10 min + 6 sec/zet, 1400↑, wit" #: glade/fics_lounge.glade:2193 msgid "5 min, 1200-1800, Manual" msgstr "5 min, 1200-1800, handmatig" #: glade/fics_lounge.glade:2247 msgid "Send all seeks" msgstr "" #: glade/fics_lounge.glade:2301 msgid "Send seek" msgstr "Verzoek versturen" #: glade/fics_lounge.glade:2337 msgid "Create Seek" msgstr "Verzoek aanmaken" #: glade/fics_lounge.glade:2353 msgid "_Seeks / Challenges" msgstr "_Verzoeken/ Uitdagingen" #: glade/fics_lounge.glade:2374 lib/pychess/ic/ICLounge.py:472 #: lib/pychess/ic/ICLounge.py:670 lib/pychess/ic/ICLounge.py:1357 #: lib/pychess/ic/ICLounge.py:1358 msgid "Rating" msgstr "Ranglijst" #: glade/fics_lounge.glade:2399 msgid "Time" msgstr "Tijd" #: glade/fics_lounge.glade:2419 msgid "Seek _Graph" msgstr "Uitdagings_grafiek" #: glade/fics_lounge.glade:2444 msgid "0 Players Ready" msgstr "0 Spelers Gereed" #: glade/fics_lounge.glade:2496 msgid "Challenge" msgstr "Daag uit" #: glade/fics_lounge.glade:2549 glade/fics_lounge.glade:2735 msgid "Observe" msgstr "" #: glade/fics_lounge.glade:2602 msgid "Start Private Chat" msgstr "Start Privéchat" #: glade/fics_lounge.glade:2659 msgid "_Player List" msgstr "S_pelerslijst" #: glade/fics_lounge.glade:2792 msgid "_Game List" msgstr "_Spellenlijst" #: glade/fics_lounge.glade:2847 msgid "_My games" msgstr "" #: glade/fics_lounge.glade:2904 glade/PyChess.glade:841 msgid "Offer _Resume" msgstr "Bied he_rvatten aan" #: glade/fics_lounge.glade:2962 glade/PyChess.glade:880 msgid "R_esign" msgstr "Over_geven" #: glade/fics_lounge.glade:3006 glade/PyChess.glade:820 msgid "Offer _Draw" msgstr "_Remise voorstellen" #: glade/fics_lounge.glade:3050 msgid "Offer A_bort" msgstr "Bied A_fbreken aan" #: glade/fics_lounge.glade:3107 msgid "Pre_view" msgstr "_Voorvertoning" #: glade/fics_lounge.glade:3151 msgid "Examine" msgstr "" #: glade/fics_lounge.glade:3208 msgid "_Archived" msgstr "" #: glade/fics_lounge.glade:3313 msgid "News" msgstr "Nieuws" #: glade/fics_lounge.glade:3345 msgid "Show Console" msgstr "" #: glade/fics_lounge.glade:3359 msgid "Show _Chat" msgstr "Toon _Chat" #: glade/fics_lounge.glade:3373 msgid "_Log Off" msgstr "Uit_loggen" #: glade/fics_lounge.glade:3393 msgid "Tools" msgstr "Extra's" #: glade/fics_lounge.glade:3428 msgid "Asymmetric Random " msgstr "" #: glade/findbar.glade:6 msgid "window1" msgstr "venster1" #: glade/findbar.glade:21 msgid "0 of 0" msgstr "0 van 0" #: glade/findbar.glade:66 msgid "Search:" msgstr "Zoek:" #: glade/findbar.glade:134 msgid "_Previous" msgstr "_Vorige" #: glade/findbar.glade:192 msgid "_Next" msgstr "Volge_nde" #: glade/newInOut.glade:45 lib/pychess/widgets/newGameDialog.py:445 msgid "New Game" msgstr "Nieuw spel" #: glade/newInOut.glade:108 msgid "_Start Game" msgstr "_Spel starten" #: glade/newInOut.glade:130 msgid "Copy FEN" msgstr "" #: glade/newInOut.glade:143 msgid "Clear" msgstr "" #: glade/newInOut.glade:156 msgid "Paste FEN" msgstr "" #: glade/newInOut.glade:257 msgid "_Black player:" msgstr "Zwarte speler(_B)" #: glade/newInOut.glade:274 msgid "_White player:" msgstr "_Witte speler" #: glade/newInOut.glade:385 msgid "Players" msgstr "Spelers" #: glade/newInOut.glade:436 msgid "_Untimed" msgstr "" #: glade/newInOut.glade:475 msgid "Blitz: 5 min" msgstr "" #: glade/newInOut.glade:526 msgid "Rapid: 15 min + 10 sec/move" msgstr "" #: glade/newInOut.glade:575 msgid "Normal: 40 min + 15 sec/move" msgstr "" #: glade/newInOut.glade:684 msgid "_Play Normal chess" msgstr "S_peel Normaal schaak" #: glade/newInOut.glade:724 msgid "Play Fischer Random chess" msgstr "Speel Fischer Willekeurig schaak" #: glade/newInOut.glade:774 msgid "Play Losers chess" msgstr "Speel Verliezersschaak" #: glade/newInOut.glade:919 msgid "Open Game" msgstr "Open Spel" #: glade/newInOut.glade:1162 msgid "Initial Position" msgstr "Startpositie" #: glade/newInOut.glade:1219 msgid "Enter Game Notation" msgstr "Spelnotatie invoeren" #: glade/newInOut.glade:1314 msgid "Halfmove clock" msgstr "" #: glade/newInOut.glade:1327 msgid "En passant line" msgstr "" #: glade/newInOut.glade:1339 msgid "Side to move" msgstr "" #: glade/newInOut.glade:1351 msgid "Move number" msgstr "" #: glade/newInOut.glade:1361 msgid "Black O-O" msgstr "" #: glade/newInOut.glade:1375 msgid "Black O-O-O" msgstr "" #: glade/newInOut.glade:1389 msgid "White O-O-O" msgstr "" #: glade/newInOut.glade:1403 msgid "White O-O" msgstr "" #: glade/promotion.glade:7 msgid "Promotion" msgstr "Promotie" #: glade/promotion.glade:49 lib/pychess/Utils/repr.py:12 msgid "Queen" msgstr "Dame" #: glade/promotion.glade:95 lib/pychess/Utils/repr.py:12 msgid "Rook" msgstr "Toren" #: glade/promotion.glade:141 lib/pychess/Utils/repr.py:12 msgid "Bishop" msgstr "Loper" #: glade/promotion.glade:187 lib/pychess/Utils/repr.py:12 msgid "Knight" msgstr "Paard" #: glade/promotion.glade:233 lib/pychess/Utils/repr.py:12 msgid "King" msgstr "Koning" #: glade/promotion.glade:265 msgid "Promote pawn to what?" msgstr "Pion naar wat promoveren?" #: glade/PyChess.glade:9 msgid "Chess client" msgstr "" #: glade/PyChess.glade:44 msgid "Game information" msgstr "Spelinformatie" #: glade/PyChess.glade:164 msgid "Event:" msgstr "Evenement:" #: glade/PyChess.glade:178 msgid "Site:" msgstr "Locatie:" #: glade/PyChess.glade:204 msgid "Round:" msgstr "Ronde:" #: glade/PyChess.glade:237 msgid "White:" msgstr "Wit:" #: glade/PyChess.glade:249 msgid "Black:" msgstr "Zwart:" #: glade/PyChess.glade:302 msgid "Game data" msgstr "Speldata" #: glade/PyChess.glade:357 msgid "Date of game" msgstr "Speldatum" #: glade/PyChess.glade:495 msgid "_Game" msgstr "_Spel" #: glade/PyChess.glade:502 msgid "_New Game" msgstr "_Nieuw spel" #: glade/PyChess.glade:515 msgid "Play _Internet Chess" msgstr "Speel _Internetschaak" #: glade/PyChess.glade:534 msgid "_Load Game" msgstr "_Spel laden" #: glade/PyChess.glade:550 msgid "Load _Recent Game" msgstr "" #: glade/PyChess.glade:558 msgid "Open _Database" msgstr "" #: glade/PyChess.glade:569 lib/pychess/widgets/newGameDialog.py:615 msgid "Setup Position" msgstr "Stel positie in" #: glade/PyChess.glade:579 msgid "Enter Game _Notation" msgstr "Voer spel_notatie in" #: glade/PyChess.glade:592 msgid "_Save Game" msgstr "Spel _opslaan" #: glade/PyChess.glade:606 msgid "Save Game _As" msgstr "Spel opslaan _als" #: glade/PyChess.glade:624 msgid "Share Game" msgstr "" #: glade/PyChess.glade:630 msgid "_Export Position" msgstr "" #: glade/PyChess.glade:644 msgid "_Analyze Game" msgstr "" #: glade/PyChess.glade:678 msgid "Player _Rating" msgstr "Spelers_ranglijst" #: glade/PyChess.glade:723 msgid "_Edit" msgstr "" #: glade/PyChess.glade:734 msgid "_Copy PGN" msgstr "" #: glade/PyChess.glade:746 msgid "_Copy FEN" msgstr "" #: glade/PyChess.glade:763 msgid "_Engines" msgstr "" #: glade/PyChess.glade:789 msgid "_Actions" msgstr "_Acties" #: glade/PyChess.glade:800 msgid "Offer _Abort" msgstr "Bied _afbreken aan" #: glade/PyChess.glade:810 msgid "Offer Ad_journment" msgstr "" #: glade/PyChess.glade:831 msgid "Offer _Pause" msgstr "Bied _pauze aan" #: glade/PyChess.glade:847 msgid "Offer _Undo" msgstr "" #: glade/PyChess.glade:870 msgid "_Call Flag" msgstr "Vlag _claimen" #: glade/PyChess.glade:890 msgid "Ask to _Move" msgstr "Vraag o_m te zetten" #: glade/PyChess.glade:905 msgid "Auto Call _Flag" msgstr "" #: glade/PyChess.glade:918 msgid "_View" msgstr "Beel_d" #: glade/PyChess.glade:925 msgid "_Rotate Board" msgstr "_Bord draaien" #: glade/PyChess.glade:939 msgid "_Fullscreen" msgstr "_Schermvullend" #: glade/PyChess.glade:952 msgid "Leave _Fullscreen" msgstr "Schermvullend verlaten" #: glade/PyChess.glade:969 msgid "_Show Sidepanels" msgstr "Toon zijpanelen" #: glade/PyChess.glade:980 msgid "_Log Viewer" msgstr "_Logboek" #: glade/PyChess.glade:997 msgid "_Hint mode" msgstr "_Hintmodus" #: glade/PyChess.glade:1009 msgid "Sp_y mode" msgstr "Sp_ionmodus" #: glade/PyChess.glade:1024 msgid "_Help" msgstr "_Hulp" #: glade/PyChess.glade:1034 msgid "About Chess" msgstr "Over schaken" #: glade/PyChess.glade:1043 msgid "How to Play" msgstr "Hoe te spelen" #: glade/PyChess.glade:1052 msgid "Translate PyChess" msgstr "Vertaal PyChess" #: glade/PyChess.glade:1058 msgid "Tip of the Day" msgstr "Tip van de dag" #: glade/PyChess.glade:1153 msgid "Default" msgstr "Standaard" #: glade/PyChess.glade:1156 msgid "Knights" msgstr "Paarden" #: glade/PyChess.glade:1167 lib/pychess/widgets/preferencesDialog.py:349 msgid "Beep" msgstr "Piep" #: glade/PyChess.glade:1170 lib/pychess/widgets/preferencesDialog.py:350 msgid "Select sound file..." msgstr "Geluidsbestand selecteren..." #: glade/PyChess.glade:1173 lib/pychess/widgets/preferencesDialog.py:348 msgid "No sound" msgstr "Geen geluid" #: glade/PyChess.glade:1180 msgid "Preferences" msgstr "Voorkeuren" #: glade/PyChess.glade:1218 msgid "The displayed name of the first human player, e.g., John." msgstr "De getoonde naam van de eerste menselijke speler, bijv. Jan." #: glade/PyChess.glade:1230 msgid "Name of _first human player:" msgstr "Naam van de eerste menselijke speler:" #: glade/PyChess.glade:1259 msgid "The displayed name of the guest player, e.g., Mary." msgstr "De getoonde naam van de gastspeler, bijv. Marie" #: glade/PyChess.glade:1271 msgid "Name of s_econd human player:" msgstr "Naam van de tw_eede menselijke speler:" #: glade/PyChess.glade:1307 msgid "_Hide tabs when only one game is open" msgstr "_Tabs verbergen wanneer er maar één spel gespeeld wordt" #: glade/PyChess.glade:1312 msgid "" "If set, this hides the tab in the top of the playing window, when it is not " "needed." msgstr "" #: glade/PyChess.glade:1326 msgid "_Use main app closer [x] to close all games" msgstr "" #: glade/PyChess.glade:1331 msgid "" "If set, clicking on main application window closer first time it closes all " "games." msgstr "" #: glade/PyChess.glade:1345 msgid "Auto _rotate board to current human player" msgstr "Auto_roteer het bord naar de huidige menselijke speler" #: glade/PyChess.glade:1350 msgid "" "If set, the board will turn after each move, to show the natural view for " "the current player." msgstr "" #: glade/PyChess.glade:1364 msgid "Auto _promote to queen" msgstr "" #: glade/PyChess.glade:1369 msgid "If set, pawn promotes to queen without promotion dialog selection." msgstr "" #: glade/PyChess.glade:1383 msgid "Face _to Face display mode" msgstr "" #: glade/PyChess.glade:1388 msgid "" "If set, the black pieces will be head down, suitable for playing against " "friends on mobile devices." msgstr "" #: glade/PyChess.glade:1402 msgid "Sho_w cords" msgstr "" #: glade/PyChess.glade:1407 msgid "" "If set, the playing board will display labels and ranks for each chess " "field. These are usable in chess notation." msgstr "" #: glade/PyChess.glade:1421 msgid "Show _captured pieces" msgstr "" #: glade/PyChess.glade:1426 msgid "If set, the captured figurines will be shown next to the board." msgstr "" #: glade/PyChess.glade:1440 msgid "Prefer figures in _notation" msgstr "" #: glade/PyChess.glade:1445 msgid "" "If set, PyChess will use figures to express moved pieces, rather than " "uppercase letters." msgstr "" #: glade/PyChess.glade:1464 msgid "If set, PyChess will colorize suboptimal analyzed moves with red." msgstr "" #: glade/PyChess.glade:1477 msgid "Show elapsed move times" msgstr "" #: glade/PyChess.glade:1482 msgid "If set, the elapsed time that a player used for the move is shown." msgstr "" #: glade/PyChess.glade:1500 msgid "If set, the hint analyzer engine evaluation value is shown." msgstr "" #: glade/PyChess.glade:1526 msgid "General Options" msgstr "" #: glade/PyChess.glade:1560 msgid "F_ull board animation" msgstr "" #: glade/PyChess.glade:1565 msgid "Animate pieces, board rotation and more. Use this on fast machines." msgstr "" #: glade/PyChess.glade:1579 msgid "Only animate _moves" msgstr "" #: glade/PyChess.glade:1584 msgid "Only animate piece moves." msgstr "" #: glade/PyChess.glade:1599 msgid "No _animation" msgstr "Geen _animatie" #: glade/PyChess.glade:1604 msgid "Never use animation. Use this on slow machines." msgstr "Gebruik nooit animaties. Gebruik dit op langzamere computers." #: glade/PyChess.glade:1632 msgid "Animation" msgstr "Animatie" #: glade/PyChess.glade:1651 msgid "_General" msgstr "" #: glade/PyChess.glade:1692 msgid "Use opening _book" msgstr "" #: glade/PyChess.glade:1697 msgid "If set, PyChess will suggest best opening moves on hint panel." msgstr "" #: glade/PyChess.glade:1724 msgid "Polyglot book file:" msgstr "" #: glade/PyChess.glade:1768 msgid "Use _local tablebases" msgstr "" #: glade/PyChess.glade:1773 msgid "" "If set, PyChess will show game results for different moves in positions containing 6 or less pieces.\n" "You can download tablebase files from:\n" "http://www.olympuschess.com/egtb/gaviota/" msgstr "" #: glade/PyChess.glade:1803 msgid "Gaviota TB path:" msgstr "" #: glade/PyChess.glade:1843 msgid "Use _online tablebases" msgstr "" #: glade/PyChess.glade:1848 msgid "" "If set, PyChess will show game results for different moves in positions containing 6 or less pieces.\n" "It will search positions from http://www.k4it.de/" msgstr "" #: glade/PyChess.glade:1870 msgid "Opening, endgame" msgstr "" #: glade/PyChess.glade:1904 msgid "Use _analyzer" msgstr "_Analyse gebruiken" #: glade/PyChess.glade:1946 msgid "" "The analyzer will run in the background and analyze the game. This is " "necessary for the hint mode to work" msgstr "" #: glade/PyChess.glade:1978 msgid "Use _inverted analyzer" msgstr "_Omgekeerde analyse gebruiken" #: glade/PyChess.glade:2020 msgid "" "The inverse analyzer will analyze the game as if your opponent was to move. " "This is necessary for the spy mode to work" msgstr "" #: glade/PyChess.glade:2096 msgid "Analyzing" msgstr "Analyseren" #: glade/PyChess.glade:2118 msgid "_Hints" msgstr "" #: glade/PyChess.glade:2263 msgid "Uninstall" msgstr "Verwijderen" #: glade/PyChess.glade:2317 msgid "Ac_tive" msgstr "Ac_tief" #: glade/PyChess.glade:2367 msgid "Installed Sidepanels" msgstr "" #: glade/PyChess.glade:2382 msgid "Side_panels" msgstr "" #: glade/PyChess.glade:2440 msgid "Light Squares :" msgstr "" #: glade/PyChess.glade:2479 msgid "Dark Squares :" msgstr "" #: glade/PyChess.glade:2515 msgid "Reset Default Colours" msgstr "" #: glade/PyChess.glade:2551 msgid "Board Colours" msgstr "" #: glade/PyChess.glade:2610 msgid "Chess Sets" msgstr "" #: glade/PyChess.glade:2634 msgid "Themes" msgstr "Thema's" #: glade/PyChess.glade:2659 msgid "_Use sounds in PyChess" msgstr "_Geluiden gebruiken in PyChess" #: glade/PyChess.glade:2982 msgid "A player _checks:" msgstr "Een speler _schaak staat:" #: glade/PyChess.glade:2997 msgid "A player _moves:" msgstr "Een speler een _zet doet:" #: glade/PyChess.glade:3010 msgid "Game is _drawn:" msgstr "Spel _remise is:" #: glade/PyChess.glade:3025 msgid "Game is _lost:" msgstr "Spel _verloren is:" #: glade/PyChess.glade:3040 msgid "Game is _won:" msgstr "Spel _gewonnen is:" #: glade/PyChess.glade:3055 msgid "A player c_aptures:" msgstr "Een speler een stuk _slaat:" #: glade/PyChess.glade:3084 msgid "Game is _set-up:" msgstr "Spel _opgesteld is:" #: glade/PyChess.glade:3136 msgid "_Observed moves:" msgstr "_Geobserveerde zetten:" #: glade/PyChess.glade:3151 msgid "Observed _ends:" msgstr "Geobserveerde _eindes:" #: glade/PyChess.glade:3265 msgid "Short on _time:" msgstr "" #: glade/PyChess.glade:3317 msgid "_Invalid move:" msgstr "" #: glade/PyChess.glade:3369 msgid "Activate alarm when _remaining sec is:" msgstr "" #: glade/PyChess.glade:3416 msgid "Play Sound When..." msgstr "Geluid spelen als..." #: glade/PyChess.glade:3438 msgid "_Sounds" msgstr "_Geluiden" #: glade/PyChess.glade:3463 msgid "_Auto save finished games" msgstr "" #: glade/PyChess.glade:3497 msgid "Save files to:" msgstr "" #: glade/PyChess.glade:3525 msgid "Use name format:" msgstr "" #: glade/PyChess.glade:3569 msgid "Names: #n1, #n2" msgstr "" #: glade/PyChess.glade:3582 msgid "Year, month, day: #y, #m, #d" msgstr "" #: glade/PyChess.glade:3619 msgid "Save elapsed move _times" msgstr "" #: glade/PyChess.glade:3644 msgid "Save analyzing engine _evaluation values" msgstr "" #: glade/PyChess.glade:3669 msgid "Save _own games only" msgstr "" #: glade/PyChess.glade:3698 msgid "Save" msgstr "" #: glade/PyChess.glade:3728 msgid "uci" msgstr "" #: glade/PyChess.glade:3731 msgid "xboard" msgstr "" #: glade/PyChess.glade:3739 msgid "Manage engines" msgstr "" #: glade/PyChess.glade:3837 msgid "Command:" msgstr "" #: glade/PyChess.glade:3851 msgid "Protocol:" msgstr "" #: glade/PyChess.glade:3865 msgid "Parameters:" msgstr "" #: glade/PyChess.glade:3878 msgid "Command line parameters needed by the engine." msgstr "" #: glade/PyChess.glade:3903 msgid "" "Engines use uci or xboard communication protocol to talk to the GUI.\n" "If it can use both you can set here which one you like." msgstr "" #: glade/PyChess.glade:3929 msgid "Working directory:" msgstr "" #: glade/PyChess.glade:3942 msgid "The directory where the engine will be started from." msgstr "" #: glade/saveGamesDialog.glade:7 msgid "Quit PyChess" msgstr "Sluit Pychess af" #: glade/saveGamesDialog.glade:24 lib/pychess/widgets/ionest.py:424 msgid "Close _without Saving" msgstr "Sluiten _zonder opslaan" #: glade/saveGamesDialog.glade:83 msgid "_Save %d documents" msgstr "" #: glade/saveGamesDialog.glade:141 msgid "" "There are %d games with unsaved moves. Save changes before " "closing?" msgstr "" #: glade/saveGamesDialog.glade:161 msgid "Select the games you want to save:" msgstr "" #: glade/saveGamesDialog.glade:204 msgid "If you don't save, new changes to your games will be permanently lost." msgstr "" #: glade/taskers.glade:126 msgid "_Opponent:" msgstr "" #: glade/taskers.glade:154 msgid "_Your Color:" msgstr "_Jouw kleur" #: glade/taskers.glade:219 msgid "_Start Game" msgstr "" #: glade/taskers.glade:338 msgid "Log on as G_uest" msgstr "" #: glade/taskers.glade:410 msgid "Ha_ndle:" msgstr "" #: glade/taskers.glade:469 msgid "_Connect to server" msgstr "" #: glade/tipoftheday.glade:7 msgid "Tip Of The day" msgstr "Tip van de dag" #: glade/tipoftheday.glade:62 msgid "Show tips at startup" msgstr "" #: lib/pychess/Main.py:302 msgid "http://en.wikipedia.org/wiki/Chess" msgstr "http://nl.wikipedia.org/wiki/Schaken" #: lib/pychess/Main.py:305 msgid "http://en.wikipedia.org/wiki/Rules_of_chess" msgstr "http://www.chessvariants.com/d.chess/chess-dutch.html" #: lib/pychess/Main.py:370 lib/pychess/widgets/gamenanny.py:80 msgid "Welcome" msgstr "Welkom" #: lib/pychess/Database/gamelist.py:40 msgid "Id" msgstr "" #: lib/pychess/Database/gamelist.py:40 msgid "W Elo" msgstr "" #: lib/pychess/Database/gamelist.py:40 msgid "B Elo" msgstr "" #: lib/pychess/Database/gamelist.py:41 msgid "Result" msgstr "" #: lib/pychess/Database/gamelist.py:41 msgid "Event" msgstr "" #: lib/pychess/Database/gamelist.py:41 msgid "Site" msgstr "" #: lib/pychess/Database/gamelist.py:41 msgid "Round" msgstr "" #: lib/pychess/Database/gamelist.py:41 msgid "Date" msgstr "" #: lib/pychess/Database/gamelist.py:41 msgid "ECO" msgstr "" #: lib/pychess/Database/gamelist.py:62 msgid "PyChess Game Database" msgstr "" #: lib/pychess/Database/PgnImport.py:188 #, python-format msgid "The game #%s can't be loaded, because of an error parsing FEN" msgstr "" #: lib/pychess/ic/FICSConnection.py:139 msgid "The connection was broken - got \"end of file\" message" msgstr "De verbinding is verbroken - heb \"end of file\" bericht gekregen" #: lib/pychess/ic/FICSConnection.py:140 #, python-format msgid "'%s' is not a registered name" msgstr "'%s' is geen geregistreerde naam" #: lib/pychess/ic/FICSConnection.py:141 msgid "" "The entered password was invalid.\n" "If you forgot your password, go to http://www.freechess.org/password to request a new one over email." msgstr "" #: lib/pychess/ic/FICSConnection.py:145 #, python-format msgid "Sorry '%s' is already logged in" msgstr "" #: lib/pychess/ic/FICSConnection.py:146 #, python-format msgid "'%s' is a registered name. If it is yours, type the password." msgstr "" #: lib/pychess/ic/FICSConnection.py:147 msgid "" "Due to abuse problems, guest connections have been prevented.\n" "You can still register on http://www.freechess.org" msgstr "" #: lib/pychess/ic/FICSConnection.py:166 msgid "Connecting to server" msgstr "Verbinden met server" #: lib/pychess/ic/FICSConnection.py:181 msgid "Logging on to server" msgstr "Inloggen op server" #: lib/pychess/ic/FICSConnection.py:239 msgid "Setting up environment" msgstr "" #: lib/pychess/ic/FICSObjects.py:35 lib/pychess/ic/FICSObjects.py:47 #, python-format msgid "%(player)s is %(status)s" msgstr "" #: lib/pychess/ic/FICSObjects.py:46 msgid "not playing" msgstr "" #: lib/pychess/ic/FICSObjects.py:54 lib/pychess/ic/ICLounge.py:1136 #: lib/pychess/ic/ICLounge.py:2209 lib/pychess/ic/__init__.py:98 #: lib/pychess/widgets/newGameDialog.py:153 msgid "Blitz" msgstr "Snel" #: lib/pychess/ic/FICSObjects.py:58 lib/pychess/ic/ICLounge.py:1137 #: lib/pychess/ic/ICLounge.py:2209 lib/pychess/ic/__init__.py:100 msgid "Lightning" msgstr "Supersnel" #: lib/pychess/ic/FICSObjects.py:60 lib/pychess/Variants/atomic.py:15 msgid "Atomic" msgstr "" #: lib/pychess/ic/FICSObjects.py:62 lib/pychess/Variants/bughouse.py:9 msgid "Bughouse" msgstr "" #: lib/pychess/ic/FICSObjects.py:64 lib/pychess/Variants/crazyhouse.py:9 msgid "Crazyhouse" msgstr "" #: lib/pychess/ic/FICSObjects.py:66 lib/pychess/Variants/losers.py:9 msgid "Losers" msgstr "Verliezers" #: lib/pychess/ic/FICSObjects.py:68 lib/pychess/Variants/suicide.py:12 msgid "Suicide" msgstr "Zelfmoord" #: lib/pychess/ic/FICSObjects.py:70 lib/pychess/ic/__init__.py:129 msgid "Wild" msgstr "" #: lib/pychess/ic/FICSObjects.py:117 msgid "Online" msgstr "Online" #: lib/pychess/ic/FICSObjects.py:118 lib/pychess/ic/FICSObjects.py:143 msgid "Offline" msgstr "Offline" #: lib/pychess/ic/FICSObjects.py:133 msgid "Available" msgstr "Beschikbaar" #: lib/pychess/ic/FICSObjects.py:135 msgid "Playing" msgstr "Aan het spelen" #: lib/pychess/ic/FICSObjects.py:141 msgid "Idle" msgstr "" #: lib/pychess/ic/FICSObjects.py:145 msgid "Examining" msgstr "" #: lib/pychess/ic/FICSObjects.py:147 msgid "Not Available" msgstr "Niet beschikbaar" #: lib/pychess/ic/FICSObjects.py:149 msgid "Running Simul Match" msgstr "" #: lib/pychess/ic/FICSObjects.py:151 msgid "In Tournament" msgstr "In Toernooi" #: lib/pychess/ic/FICSObjects.py:308 lib/pychess/ic/FICSObjects.py:492 #: lib/pychess/ic/ICLounge.py:2278 msgid "Unrated" msgstr "Geen ranglijst" #: lib/pychess/ic/FICSObjects.py:491 lib/pychess/ic/ICLounge.py:670 #: lib/pychess/ic/ICLounge.py:1358 lib/pychess/ic/ICLounge.py:1558 #: lib/pychess/ic/ICLounge.py:2113 msgid "Rated" msgstr "Ranglijst" #: lib/pychess/ic/FICSObjects.py:498 lib/pychess/ic/ICLounge.py:2098 #, python-format msgid "%d min" msgstr "" #: lib/pychess/ic/FICSObjects.py:500 #, python-format msgid " + %d sec" msgstr "" #: lib/pychess/ic/FICSObjects.py:517 #, python-format msgid "%(player)s plays %(color)s" msgstr "%(player)s speelt %(color)s" #: lib/pychess/ic/FICSObjects.py:519 lib/pychess/ic/ICLounge.py:909 msgid "white" msgstr "wit" #: lib/pychess/ic/FICSObjects.py:519 lib/pychess/ic/ICLounge.py:909 msgid "black" msgstr "zwart" #: lib/pychess/ic/FICSObjects.py:565 msgid "This is a continuation of an adjourned match" msgstr "" #: lib/pychess/ic/FICSObjects.py:654 msgid "Opponent Rating" msgstr "" #: lib/pychess/ic/FICSObjects.py:656 msgid "Manual Accept" msgstr "" #: lib/pychess/ic/FICSObjects.py:810 msgid "Private" msgstr "Privé" #: lib/pychess/ic/FICSObjects.py:930 lib/pychess/ic/ICLounge.py:527 #: lib/pychess/Savers/epd.py:139 msgid "Unknown" msgstr "Onbekend" #: lib/pychess/ic/ICLogon.py:159 lib/pychess/ic/ICLogon.py:165 msgid "Connection Error" msgstr "Verbindingsfout" #: lib/pychess/ic/ICLogon.py:161 msgid "Log on Error" msgstr "Aanmeldfout" #: lib/pychess/ic/ICLogon.py:163 msgid "Connection was closed" msgstr "De verbinding is afgesloten" #: lib/pychess/ic/ICLogon.py:169 msgid "Address Error" msgstr "" #: lib/pychess/ic/ICLogon.py:172 msgid "Auto-logout" msgstr "" #: lib/pychess/ic/ICLogon.py:173 msgid "You have been logged out because you were idle more than 60 minutes" msgstr "" #: lib/pychess/ic/ICLounge.py:222 msgid "You have to set kibitz on to see bot messages here." msgstr "" #: lib/pychess/ic/ICLounge.py:241 msgid "" "You may only have 3 outstanding seeks at the same time. If you want to add a" " new seek you must clear your currently active seeks. Clear your seeks?" msgstr "" #: lib/pychess/ic/ICLounge.py:258 msgid "You can't touch this! You are examining a game." msgstr "" #: lib/pychess/ic/ICLounge.py:270 msgid " has declined your offer for a match" msgstr "" #: lib/pychess/ic/ICLounge.py:283 msgid " is censoring you" msgstr "" #: lib/pychess/ic/ICLounge.py:296 msgid " noplay listing you" msgstr "" #: lib/pychess/ic/ICLounge.py:311 msgid " uses a formula not fitting your match request:" msgstr "" #: lib/pychess/ic/ICLounge.py:325 msgid "to manual accept" msgstr "" #: lib/pychess/ic/ICLounge.py:327 msgid "to automatic accept" msgstr "" #: lib/pychess/ic/ICLounge.py:329 msgid "rating range now" msgstr "" #: lib/pychess/ic/ICLounge.py:330 msgid "Seek updated" msgstr "" #: lib/pychess/ic/ICLounge.py:342 msgid "Your seeks have been removed" msgstr "" #: lib/pychess/ic/ICLounge.py:363 msgid " has arrived" msgstr "" #: lib/pychess/ic/ICLounge.py:370 msgid " has departed" msgstr "" #: lib/pychess/ic/ICLounge.py:374 msgid " is present" msgstr "" #: lib/pychess/ic/ICLounge.py:391 sidepanel/chatPanel.py:17 msgid "Chat" msgstr "" #: lib/pychess/ic/ICLounge.py:472 sidepanel/bookPanel.py:366 msgid "Win" msgstr "" #: lib/pychess/ic/ICLounge.py:472 sidepanel/bookPanel.py:360 msgid "Draw" msgstr "" #: lib/pychess/ic/ICLounge.py:472 sidepanel/bookPanel.py:363 msgid "Loss" msgstr "" #: lib/pychess/ic/ICLounge.py:482 msgid "" "On FICS, your \"Wild\" rating encompasses all of the following variants at " "all time controls:\n" msgstr "" #: lib/pychess/ic/ICLounge.py:494 msgid "Sanctions" msgstr "" #: lib/pychess/ic/ICLounge.py:499 msgid "Email" msgstr "E-mail" #: lib/pychess/ic/ICLounge.py:504 msgid "Spent" msgstr "Online" #: lib/pychess/ic/ICLounge.py:506 msgid "online in total" msgstr "in totaal" #: lib/pychess/ic/ICLounge.py:512 msgid "Ping" msgstr "Ping" #: lib/pychess/ic/ICLounge.py:517 msgid "Connecting" msgstr "Bezig met verbinden" #: lib/pychess/ic/ICLounge.py:544 msgid "" "You are currently logged in as a guest.\n" "A guest can't play rated games and therefore isn't able to play as many of the types of matches offered as a registered user. To register an account, go to http://www.freechess.org/Register/index.html." msgstr "" #: lib/pychess/ic/ICLounge.py:669 lib/pychess/ic/ICLounge.py:1136 msgid "Name" msgstr "Naam" #: lib/pychess/ic/ICLounge.py:670 lib/pychess/ic/ICLounge.py:1358 #: lib/pychess/ic/ICLounge.py:1558 msgid "Type" msgstr "Type" #: lib/pychess/ic/ICLounge.py:670 lib/pychess/ic/ICLounge.py:1558 msgid "Clock" msgstr "Klok" #: lib/pychess/ic/ICLounge.py:726 lib/pychess/ic/ICLounge.py:923 #: lib/pychess/Players/Human.py:250 msgid "Accept" msgstr "Accepteren" #: lib/pychess/ic/ICLounge.py:728 msgid "Assess" msgstr "" #: lib/pychess/ic/ICLounge.py:734 msgid "Archived" msgstr "" #: lib/pychess/ic/ICLounge.py:848 #, python-format msgid "Active seeks: %d" msgstr "" #: lib/pychess/ic/ICLounge.py:897 #, python-format msgid "" " would like to resume your adjourned %(time)s %(gametype)s " "game." msgstr "" #: lib/pychess/ic/ICLounge.py:902 #, python-format msgid "" " challenges you to a %(time)s %(rated)s %(gametype)s game" msgstr "" #: lib/pychess/ic/ICLounge.py:907 #, python-format msgid " where %(player)s plays %(color)s." msgstr "" #: lib/pychess/ic/ICLounge.py:924 lib/pychess/Players/Human.py:251 msgid "Decline" msgstr "Weigeren" #: lib/pychess/ic/ICLounge.py:1065 msgid " min" msgstr "" #: lib/pychess/ic/ICLounge.py:1137 msgid "Status" msgstr "" #: lib/pychess/ic/ICLounge.py:1203 lib/pychess/ic/ICLounge.py:1233 #, python-format msgid "Players: %d" msgstr "Spelers: %d" #: lib/pychess/ic/ICLounge.py:1469 #, python-format msgid "Games running: %d" msgstr "" #: lib/pychess/ic/ICLounge.py:1559 msgid "Date/Time" msgstr "Datum/Tijd" #: lib/pychess/ic/ICLounge.py:1614 #, python-format msgid "" " with whom you have an adjourned %(timecontrol)s %(gametype)s " "game is online." msgstr "" #: lib/pychess/ic/ICLounge.py:1635 msgid "Request Continuation" msgstr "" #: lib/pychess/ic/ICLounge.py:1637 msgid "Examine Adjourned Game" msgstr "" #: lib/pychess/ic/ICLounge.py:1965 msgid "" "The chain button is disabled because you are logged in as a guest. Guests " "can't establish ratings, and the chain button's state has no effect when " "there is no rating to which to tie \"Opponent Strength\" to" msgstr "" #: lib/pychess/ic/ICLounge.py:2006 msgid "Challenge: " msgstr "Uitdaging:" #: lib/pychess/ic/ICLounge.py:2044 msgid "If set you can refuse players accepting your seek" msgstr "" #: lib/pychess/ic/ICLounge.py:2048 lib/pychess/ic/ICLounge.py:2051 msgid "This option is not applicable because you're challenging a player" msgstr "" #: lib/pychess/ic/ICLounge.py:2064 msgid "Edit Seek: " msgstr "" #: lib/pychess/ic/ICLounge.py:2095 #, python-format msgid "%(minutes)d min + %(gain)d sec/move" msgstr "" #: lib/pychess/ic/ICLounge.py:2116 msgid "Manual" msgstr "Handleiding" #: lib/pychess/ic/ICLounge.py:2256 msgid "Any strength" msgstr "Elke sterkte" #: lib/pychess/ic/ICLounge.py:2308 msgid "You can't play rated games because you are logged in as a guest" msgstr "" #: lib/pychess/ic/ICLounge.py:2312 msgid "You can't play rated games because \"Untimed\" is checked, " msgstr "" #: lib/pychess/ic/ICLounge.py:2313 msgid "and on FICS, untimed games can't be rated" msgstr "" #: lib/pychess/ic/ICLounge.py:2317 msgid "This option is not available because you're challenging a guest, " msgstr "" #: lib/pychess/ic/ICLounge.py:2318 msgid "and guests can't play rated games" msgstr "" #: lib/pychess/ic/ICLounge.py:2332 lib/pychess/Variants/shuffle.py:16 #: lib/pychess/widgets/newGameDialog.py:266 msgid "Shuffle" msgstr "Schudden" #: lib/pychess/ic/ICLounge.py:2333 lib/pychess/widgets/newGameDialog.py:267 msgid "Other (standard rules)" msgstr "" #: lib/pychess/ic/ICLounge.py:2334 lib/pychess/widgets/newGameDialog.py:268 msgid "Other (non standard rules)" msgstr "" #: lib/pychess/ic/ICLounge.py:2421 msgid "You can't select a variant because \"Untimed\" is checked, " msgstr "" #: lib/pychess/ic/ICLounge.py:2422 msgid "and on FICS, untimed games have to be normal chess rules" msgstr "" #: lib/pychess/ic/ICLounge.py:2454 msgid "Change Tolerance" msgstr "" #: lib/pychess/ic/__init__.py:102 msgid "Examined" msgstr "" #: lib/pychess/ic/__init__.py:103 msgid "Other" msgstr "" #: lib/pychess/ic/__init__.py:182 msgid "Administrator" msgstr "Beheerder" #: lib/pychess/ic/__init__.py:182 msgid "Blindfold Account" msgstr "" #: lib/pychess/ic/__init__.py:182 msgid "Computer" msgstr "Computer" #: lib/pychess/ic/__init__.py:183 msgid "Team Account" msgstr "" #: lib/pychess/ic/__init__.py:183 msgid "Unregistered" msgstr "Ongeregistreerd" #: lib/pychess/ic/__init__.py:183 msgid "Chess Advisor" msgstr "" #: lib/pychess/ic/__init__.py:184 msgid "Service Representative" msgstr "" #: lib/pychess/ic/__init__.py:184 msgid "Tournament Director" msgstr "" #: lib/pychess/ic/__init__.py:184 msgid "Mamer Manager" msgstr "" #: lib/pychess/ic/__init__.py:185 msgid "Grand Master" msgstr "" #: lib/pychess/ic/__init__.py:185 msgid "International Master" msgstr "" #: lib/pychess/ic/__init__.py:185 msgid "FIDE Master" msgstr "" #: lib/pychess/ic/__init__.py:186 msgid "Woman Grand Master" msgstr "" #: lib/pychess/ic/__init__.py:186 msgid "Woman International Master" msgstr "" #: lib/pychess/ic/__init__.py:186 msgid "Woman FIDE Master" msgstr "" #: lib/pychess/ic/__init__.py:187 msgid "Dummy Account" msgstr "" #: lib/pychess/ic/__init__.py:191 msgid "*" msgstr "" #: lib/pychess/ic/__init__.py:191 lib/pychess/Utils/repr.py:14 msgid "B" msgstr "B" #: lib/pychess/ic/__init__.py:191 msgid "C" msgstr "" #: lib/pychess/ic/__init__.py:192 msgid "T" msgstr "" #: lib/pychess/ic/__init__.py:192 msgid "U" msgstr "" #: lib/pychess/ic/__init__.py:192 msgid "CA" msgstr "" #: lib/pychess/ic/__init__.py:193 msgid "SR" msgstr "" #: lib/pychess/ic/__init__.py:193 msgid "TD" msgstr "" #: lib/pychess/ic/__init__.py:193 msgid "TM" msgstr "" #: lib/pychess/ic/__init__.py:194 msgid "GM" msgstr "" #: lib/pychess/ic/__init__.py:194 msgid "IM" msgstr "" #: lib/pychess/ic/__init__.py:194 msgid "FM" msgstr "" #: lib/pychess/ic/__init__.py:195 msgid "WGM" msgstr "" #: lib/pychess/ic/__init__.py:195 msgid "WIM" msgstr "" #: lib/pychess/ic/__init__.py:195 msgid "WFM" msgstr "" #: lib/pychess/ic/__init__.py:195 msgid "D" msgstr "" #: lib/pychess/ic/__init__.py:195 msgid "H" msgstr "" #: lib/pychess/ic/__init__.py:195 msgid "CM" msgstr "" #: lib/pychess/ic/__init__.py:195 msgid "FA" msgstr "" #: lib/pychess/ic/__init__.py:195 msgid "NM" msgstr "" #: lib/pychess/Players/CECPEngine.py:857 #, python-format msgid "The engine %s reports an error:" msgstr "" #: lib/pychess/Players/Human.py:20 msgid "Your opponent has offered you a draw." msgstr "" #: lib/pychess/Players/Human.py:21 msgid "" "Your opponent has offered you a draw. If you accept this offer, the game " "will end with a score of 1/2 - 1/2." msgstr "" #: lib/pychess/Players/Human.py:23 msgid "Your opponent wants to abort the game." msgstr "" #: lib/pychess/Players/Human.py:24 msgid "" "Your opponent has asked that the game be aborted. If you accept this offer, " "the game will end with no rating change." msgstr "" #: lib/pychess/Players/Human.py:26 msgid "Your opponent wants to adjourn the game." msgstr "" #: lib/pychess/Players/Human.py:27 msgid "" "Your opponent has asked that the game be adjourned. If you accept this " "offer, the game will be adjourned and you can resume it later (when your " "opponent is online and both players agree to resume)." msgstr "" #: lib/pychess/Players/Human.py:29 #, python-format msgid "Your opponent wants to undo %s move(s)." msgstr "" #: lib/pychess/Players/Human.py:30 #, python-format msgid "" "Your opponent has asked that the last %s move(s) be undone. If you accept " "this offer, the game will continue from the earlier position." msgstr "" #: lib/pychess/Players/Human.py:32 msgid "Your opponent wants to pause the game." msgstr "" #: lib/pychess/Players/Human.py:33 msgid "" "Your opponent has asked that the game be paused. If you accept this offer, " "the game clock will be paused until both players agree to resume the game." msgstr "" #: lib/pychess/Players/Human.py:35 msgid "Your opponent wants to resume the game." msgstr "" #: lib/pychess/Players/Human.py:36 msgid "" "Your opponent has asked that the game be resumed. If you accept this offer, " "the game clock will continue from where it was paused." msgstr "" #: lib/pychess/Players/Human.py:40 msgid "The resignation" msgstr "" #: lib/pychess/Players/Human.py:41 msgid "The flag call" msgstr "" #: lib/pychess/Players/Human.py:42 msgid "The draw offer" msgstr "" #: lib/pychess/Players/Human.py:43 msgid "The abort offer" msgstr "" #: lib/pychess/Players/Human.py:44 msgid "The adjourn offer" msgstr "" #: lib/pychess/Players/Human.py:45 msgid "The pause offer" msgstr "" #: lib/pychess/Players/Human.py:46 msgid "The resume offer" msgstr "" #: lib/pychess/Players/Human.py:47 msgid "The offer to switch sides" msgstr "" #: lib/pychess/Players/Human.py:48 msgid "The takeback offer" msgstr "" #: lib/pychess/Players/Human.py:52 msgid "resign" msgstr "" #: lib/pychess/Players/Human.py:53 msgid "call your opponents flag" msgstr "" #: lib/pychess/Players/Human.py:54 msgid "offer a draw" msgstr "" #: lib/pychess/Players/Human.py:55 msgid "offer an abort" msgstr "" #: lib/pychess/Players/Human.py:56 msgid "offer to adjourn" msgstr "" #: lib/pychess/Players/Human.py:57 msgid "offer a pause" msgstr "" #: lib/pychess/Players/Human.py:58 msgid "offer to resume" msgstr "" #: lib/pychess/Players/Human.py:59 msgid "offer to switch sides" msgstr "" #: lib/pychess/Players/Human.py:60 msgid "offer a takeback" msgstr "" #: lib/pychess/Players/Human.py:61 msgid "ask your opponent to move" msgstr "" #: lib/pychess/Players/Human.py:66 msgid "Your opponent is not out of time." msgstr "Uw tegenstander heeft geen tijd te weinig." #: lib/pychess/Players/Human.py:68 msgid "The clock hasn't been started yet." msgstr "" #: lib/pychess/Players/Human.py:70 msgid "You can't switch colors during the game." msgstr "" #: lib/pychess/Players/Human.py:72 msgid "You have tried to undo too many moves." msgstr "" #: lib/pychess/Players/Human.py:180 msgid "Your opponent asks you to hurry!" msgstr "Uw tegenstander vraagt u om haast te maken!" #: lib/pychess/Players/Human.py:181 msgid "" "Generally this means nothing, as the game is time-based, but if you want to " "please your opponent, perhaps you should get going." msgstr "" #: lib/pychess/Players/Human.py:259 #, python-format msgid "%s was declined by your opponent" msgstr "%s werd geweigerd door uw tegenstander" #: lib/pychess/Players/Human.py:260 #, python-format msgid "Resend %s?" msgstr "" #: lib/pychess/Players/Human.py:267 msgid "Resend" msgstr "" #: lib/pychess/Players/Human.py:275 #, python-format msgid "%s was withdrawn by your opponent" msgstr "%s werd teruggetrokken door uw tegenstander" #: lib/pychess/Players/Human.py:276 msgid "Your opponent seems to have changed their mind." msgstr "" #: lib/pychess/Players/Human.py:290 #, python-format msgid "Unable to accept %s" msgstr "Kon %s niet accepteren" #: lib/pychess/Players/Human.py:291 msgid "Probably because it has been withdrawn." msgstr "" #: lib/pychess/Players/Human.py:298 #, python-format msgid "%s returns an error" msgstr "%s geeft een foutmelding" #: lib/pychess/Savers/chessalpha2.py:12 msgid "Chess Alpha 2 Diagram" msgstr "" #: lib/pychess/Savers/chesspastebin.py:39 msgid "Game shared at " msgstr "" #: lib/pychess/Savers/chesspastebin.py:41 msgid "(Link is available on clipboard.)" msgstr "" #: lib/pychess/Savers/database.py:19 msgid "PyChess database" msgstr "" #: lib/pychess/Savers/epd.py:12 msgid "Chess Position" msgstr "Schaakpositie" #: lib/pychess/Savers/fen.py:12 msgid "Simple Chess Position" msgstr "Simpele schaakpositie" #: lib/pychess/Savers/fen.py:44 lib/pychess/Savers/pgn.py:329 msgid "The game can't be loaded, because of an error parsing FEN" msgstr "" #: lib/pychess/Savers/pgnbase.py:100 #, python-format msgid "" "The game can't be read to end, because of an error parsing move %(moveno)s " "'%(notation)s'." msgstr "" #: lib/pychess/Savers/pgnbase.py:102 #, python-format msgid "The move failed because %s." msgstr "" #: lib/pychess/Savers/pgnbase.py:110 #, python-format msgid "Error parsing move %(moveno)s %(mstr)s" msgstr "" #: lib/pychess/Savers/pgn.py:28 msgid "Chess Game" msgstr "Schaakspel" #: lib/pychess/Savers/pgn.py:362 msgid "Invalid move." msgstr "" #: lib/pychess/Savers/png.py:15 msgid "Png image" msgstr "" #: lib/pychess/System/ping.py:31 msgid "Destination Host Unreachable" msgstr "" #: lib/pychess/System/ping.py:74 msgid "Died" msgstr "" #: lib/pychess/Utils/GameModel.py:147 msgid "Local Event" msgstr "Lokaal evenement" #: lib/pychess/Utils/GameModel.py:148 msgid "Local Site" msgstr "Lokaal" #: lib/pychess/Utils/repr.py:12 msgid "Pawn" msgstr "Pion" #: lib/pychess/Utils/repr.py:14 msgid "P" msgstr "P" #: lib/pychess/Utils/repr.py:14 msgid "N" msgstr "N" #: lib/pychess/Utils/repr.py:14 msgid "R" msgstr "R" #: lib/pychess/Utils/repr.py:14 msgid "Q" msgstr "Q" #: lib/pychess/Utils/repr.py:14 msgid "K" msgstr "K" #: lib/pychess/Utils/repr.py:17 msgid "The game ended in a draw" msgstr "Het spel is geëindigd in remise" #: lib/pychess/Utils/repr.py:18 #, python-format msgid "%(white)s won the game" msgstr "" #: lib/pychess/Utils/repr.py:19 #, python-format msgid "%(black)s won the game" msgstr "" #: lib/pychess/Utils/repr.py:20 msgid "The game has been killed" msgstr "Het spel is gestopt" #: lib/pychess/Utils/repr.py:21 msgid "The game has been adjourned" msgstr "Het spel is uitgesteld" #: lib/pychess/Utils/repr.py:22 msgid "The game has been aborted" msgstr "Het spel is afgebroken" #: lib/pychess/Utils/repr.py:26 msgid "Because neither player has sufficient material to mate" msgstr "" #: lib/pychess/Utils/repr.py:27 msgid "Because the same position was repeated three times in a row" msgstr "" #: lib/pychess/Utils/repr.py:28 msgid "Because the last 50 moves brought nothing new" msgstr "" #: lib/pychess/Utils/repr.py:29 msgid "Because both players ran out of time" msgstr "" #: lib/pychess/Utils/repr.py:30 #, python-format msgid "Because %(mover)s stalemated" msgstr "" #: lib/pychess/Utils/repr.py:31 msgid "Because both players agreed to a draw" msgstr "" #: lib/pychess/Utils/repr.py:32 lib/pychess/Utils/repr.py:42 msgid "Because of adjudication by an admin" msgstr "" #: lib/pychess/Utils/repr.py:33 msgid "Because the game exceed the max length" msgstr "" #: lib/pychess/Utils/repr.py:34 #, python-format msgid "" "Because %(white)s ran out of time and %(black)s has insufficient material to" " mate" msgstr "" #: lib/pychess/Utils/repr.py:35 #, python-format msgid "" "Because %(black)s ran out of time and %(white)s has insufficient material to" " mate" msgstr "" #: lib/pychess/Utils/repr.py:36 msgid "Because both players have the same amount of pieces" msgstr "" #: lib/pychess/Utils/repr.py:38 #, python-format msgid "Because %(loser)s resigned" msgstr "" #: lib/pychess/Utils/repr.py:39 #, python-format msgid "Because %(loser)s ran out of time" msgstr "" #: lib/pychess/Utils/repr.py:40 #, python-format msgid "Because %(loser)s was checkmated" msgstr "" #: lib/pychess/Utils/repr.py:41 #, python-format msgid "Because %(loser)s disconnected" msgstr "" #: lib/pychess/Utils/repr.py:43 #, python-format msgid "Because %(winner)s has fewer pieces" msgstr "" #: lib/pychess/Utils/repr.py:44 #, python-format msgid "Because %(winner)s lost all pieces" msgstr "" #: lib/pychess/Utils/repr.py:45 #, python-format msgid "Because %(loser)s king exploded" msgstr "" #: lib/pychess/Utils/repr.py:46 #, python-format msgid "Because %(winner)s king reached the center" msgstr "" #: lib/pychess/Utils/repr.py:47 #, python-format msgid "Because %(winner)s was giving check 3 times" msgstr "" #: lib/pychess/Utils/repr.py:49 msgid "Because a player lost connection" msgstr "" #: lib/pychess/Utils/repr.py:50 msgid "Because both players agreed to an adjournment" msgstr "" #: lib/pychess/Utils/repr.py:51 msgid "Because the server was shut down" msgstr "" #: lib/pychess/Utils/repr.py:52 msgid "" "Because a player lost connection and the other player requested adjournment" msgstr "" #: lib/pychess/Utils/repr.py:53 #, python-format msgid "" "Because %(black)s lost connection to the server and %(white)s requested " "adjournment" msgstr "" #: lib/pychess/Utils/repr.py:54 #, python-format msgid "" "Because %(white)s lost connection to the server and %(black)s requested " "adjournment" msgstr "" #: lib/pychess/Utils/repr.py:55 #, python-format msgid "Because %(white)s lost connection to the server" msgstr "" #: lib/pychess/Utils/repr.py:56 #, python-format msgid "Because %(black)s lost connection to the server" msgstr "" #: lib/pychess/Utils/repr.py:58 msgid "Because of adjudication by an admin. No rating changes have occurred." msgstr "" #: lib/pychess/Utils/repr.py:59 msgid "" "Because both players agreed to abort the game. No rating changes have " "occurred." msgstr "" #: lib/pychess/Utils/repr.py:60 msgid "Because of courtesy by a player. No rating changes have occurred." msgstr "" #: lib/pychess/Utils/repr.py:61 msgid "" "Because a player aborted the game. Either player can abort the game without " "the other's consent before the second move. No rating changes have occurred." msgstr "" #: lib/pychess/Utils/repr.py:62 msgid "" "Because a player disconnected and there are too few moves to warrant " "adjournment. No rating changes have occurred." msgstr "" #: lib/pychess/Utils/repr.py:63 msgid "Because the server was shut down. No rating changes have occurred." msgstr "" #: lib/pychess/Utils/repr.py:65 #, python-format msgid "Because the %(white)s engine died" msgstr "" #: lib/pychess/Utils/repr.py:66 #, python-format msgid "Because the %(black)s engine died" msgstr "" #: lib/pychess/Utils/repr.py:67 msgid "Because the connection to the server was lost" msgstr "" #: lib/pychess/Utils/repr.py:68 msgid "The reason is unknown" msgstr "" #: lib/pychess/Utils/TimeModel.py:229 msgid "min" msgstr "" #: lib/pychess/Utils/TimeModel.py:231 msgid "sec" msgstr "" #: lib/pychess/Variants/asean.py:12 msgid "" "ASEAN: http://www.ncf-" "phil.org/downloadables/2014/May/Asean_chess/Laws_of_ASEAN_Chess_2011_Nov_26.doc" msgstr "" #: lib/pychess/Variants/asean.py:13 msgid "ASEAN" msgstr "" #: lib/pychess/Variants/asean.py:33 msgid "Makruk: http://en.wikipedia.org/wiki/Makruk" msgstr "" #: lib/pychess/Variants/asean.py:34 msgid "Makruk" msgstr "" #: lib/pychess/Variants/asean.py:60 msgid "Cambodian: http://www.khmerinstitute.org/culture/ok.html" msgstr "" #: lib/pychess/Variants/asean.py:61 msgid "Cambodian" msgstr "" #: lib/pychess/Variants/asean.py:86 msgid "" "Ai-Wok: http://www.open-" "aurec.com/wbforum/viewtopic.php?p=199364&sid=20963a1de2c164050de019e5ed6bf7c4#p199364" msgstr "" #: lib/pychess/Variants/asean.py:87 msgid "Ai-Wok" msgstr "" #: lib/pychess/Variants/asean.py:111 msgid "Sittuyin: http://en.wikipedia.org/wiki/Sittuyin" msgstr "" #: lib/pychess/Variants/asean.py:112 msgid "Sittuyin" msgstr "" #: lib/pychess/Variants/asymmetricrandom.py:12 msgid "" "FICS wild/4: http://www.freechess.org/Help/HelpFiles/wild.html\n" "* Randomly chosen pieces (two queens or three rooks possible)\n" "* Exactly one king of each color\n" "* Pieces placed randomly behind the pawns, SUBJECT TO THE CONSTRAINT THAT THE BISHOPS ARE BALANCED\n" "* No castling\n" "* Black's arrangement DOES NOT mirrors white's" msgstr "" #: lib/pychess/Variants/asymmetricrandom.py:18 msgid "Asymmetric Random" msgstr "" #: lib/pychess/Variants/atomic.py:14 msgid "FICS atomic: http://www.freechess.org/Help/HelpFiles/atomic.html" msgstr "" #: lib/pychess/Variants/blindfold.py:7 msgid "" "Classic chess rules with hidden figurines\n" "http://en.wikipedia.org/wiki/Blindfold_chess" msgstr "" #: lib/pychess/Variants/blindfold.py:9 #: lib/pychess/widgets/newGameDialog.py:264 msgid "Blindfold" msgstr "" #: lib/pychess/Variants/blindfold.py:18 msgid "" "Classic chess rules with hidden pawns\n" "http://en.wikipedia.org/wiki/Blindfold_chess" msgstr "" #: lib/pychess/Variants/blindfold.py:20 msgid "Hidden pawns" msgstr "Verborgen pionnen" #: lib/pychess/Variants/blindfold.py:29 msgid "" "Classic chess rules with hidden pieces\n" "http://en.wikipedia.org/wiki/Blindfold_chess" msgstr "" #: lib/pychess/Variants/blindfold.py:31 msgid "Hidden pieces" msgstr "Verborgen stukken" #: lib/pychess/Variants/blindfold.py:40 msgid "" "Classic chess rules with all pieces white\n" "http://en.wikipedia.org/wiki/Blindfold_chess" msgstr "" #: lib/pychess/Variants/blindfold.py:42 msgid "All white" msgstr "" #: lib/pychess/Variants/bughouse.py:8 msgid "FICS bughouse: http://www.freechess.org/Help/HelpFiles/bughouse.html" msgstr "" #: lib/pychess/Variants/corner.py:12 msgid "" "http://brainking.com/en/GameRules?tp=2\n" "* Placement of the pieces on the 1st and 8th row are randomized\n" "* The king is in the right hand corner\n" "* Bishops must start on opposite color squares\n" "* Black's starting position is obtained by rotating white's position 180 degrees around the board's center\n" "* No castling" msgstr "" #: lib/pychess/Variants/corner.py:18 msgid "Corner" msgstr "Hoek" #: lib/pychess/Variants/crazyhouse.py:8 msgid "" "FICS crazyhouse: http://www.freechess.org/Help/HelpFiles/crazyhouse.html" msgstr "" #: lib/pychess/Variants/euroshogi.py:9 msgid "EuroShogi: http://en.wikipedia.org/wiki/EuroShogi" msgstr "" #: lib/pychess/Variants/euroshogi.py:10 msgid "EuroShogi" msgstr "" #: lib/pychess/Variants/fischerandom.py:18 msgid "" "http://en.wikipedia.org/wiki/Chess960\n" "FICS wild/fr: http://www.freechess.org/Help/HelpFiles/wild.html" msgstr "" #: lib/pychess/Variants/fischerandom.py:20 msgid "Fischer Random" msgstr "" #: lib/pychess/Variants/kingofthehill.py:8 msgid "" "Bringing your king legally to the center (e4, d4, e5, d5) instantly wins the game!\n" "Normal rules apply in other cases and checkmate also ends the game." msgstr "" #: lib/pychess/Variants/kingofthehill.py:10 msgid "King of the hill" msgstr "" #: lib/pychess/Variants/knightodds.py:8 msgid "One player starts with one less knight piece" msgstr "" #: lib/pychess/Variants/knightodds.py:9 msgid "Knight odds" msgstr "" #: lib/pychess/Variants/losers.py:8 msgid "FICS losers: http://www.freechess.org/Help/HelpFiles/losers_chess.html" msgstr "" #: lib/pychess/Variants/normal.py:4 msgid "" "Classic chess rules\n" "http://en.wikipedia.org/wiki/Chess" msgstr "" #: lib/pychess/Variants/normal.py:6 lib/pychess/widgets/newGameDialog.py:157 msgid "Normal" msgstr "Normaal" #: lib/pychess/Variants/pawnodds.py:8 msgid "One player starts with one less pawn piece" msgstr "" #: lib/pychess/Variants/pawnodds.py:9 msgid "Pawn odds" msgstr "" #: lib/pychess/Variants/pawnspassed.py:11 msgid "" "FICS wild/8a: http://www.freechess.org/Help/HelpFiles/wild.html\n" "White pawns start on 5th rank and black pawns on the 4th rank" msgstr "" #: lib/pychess/Variants/pawnspassed.py:13 msgid "Pawns Passed" msgstr "" #: lib/pychess/Variants/pawnspushed.py:10 msgid "" "FICS wild/8: http://www.freechess.org/Help/HelpFiles/wild.html\n" "Pawns start on 4th and 5th ranks rather than 2nd and 7th" msgstr "" #: lib/pychess/Variants/pawnspushed.py:12 msgid "Pawns Pushed" msgstr "" #: lib/pychess/Variants/queenodds.py:8 msgid "One player starts with one less queen piece" msgstr "" #: lib/pychess/Variants/queenodds.py:9 msgid "Queen odds" msgstr "" #: lib/pychess/Variants/randomchess.py:11 msgid "" "FICS wild/3: http://www.freechess.org/Help/HelpFiles/wild.html\n" "* Randomly chosen pieces (two queens or three rooks possible)\n" "* Exactly one king of each color\n" "* Pieces placed randomly behind the pawns\n" "* No castling\n" "* Black's arrangement mirrors white's" msgstr "" #: lib/pychess/Variants/randomchess.py:17 #: lib/pychess/widgets/TaskerManager.py:155 msgid "Random" msgstr "" #: lib/pychess/Variants/rookodds.py:8 msgid "One player starts with one less rook piece" msgstr "" #: lib/pychess/Variants/rookodds.py:9 msgid "Rook odds" msgstr "" #: lib/pychess/Variants/shuffle.py:11 msgid "" "xboard nocastle: http://home.hccnet.nl/h.g.muller/engine-intf.html#8\n" "FICS wild/2: http://www.freechess.org/Help/HelpFiles/wild.html\n" "* Random arrangement of the pieces behind the pawns\n" "* No castling\n" "* Black's arrangement mirrors white's" msgstr "" #: lib/pychess/Variants/suicide.py:11 msgid "" "FICS suicide: http://www.freechess.org/Help/HelpFiles/suicide_chess.html" msgstr "" #: lib/pychess/Variants/theban.py:10 msgid "" "Variant developed by Kai Laskos: " "http://talkchess.com/forum/viewtopic.php?t=40990" msgstr "" #: lib/pychess/Variants/theban.py:11 msgid "Theban" msgstr "" #: lib/pychess/Variants/threecheck.py:10 msgid "Win by giving check 3 times" msgstr "" #: lib/pychess/Variants/threecheck.py:11 msgid "Three-check" msgstr "" #: lib/pychess/Variants/upsidedown.py:10 msgid "" "FICS wild/5: http://www.freechess.org/Help/HelpFiles/wild.html\n" "http://en.wikipedia.org/wiki/Chess_variant#Chess_with_different_starting_positions\n" "Pawns start on their 7th rank rather than their 2nd rank!" msgstr "" #: lib/pychess/Variants/upsidedown.py:13 msgid "Upside Down" msgstr "" #: lib/pychess/Variants/wildcastle.py:10 msgid "" "xboard wildcastle http://home.hccnet.nl/h.g.muller/engine-intf.html#8\n" "FICS wild/0: http://www.freechess.org/Help/HelpFiles/wild.html\n" "* White has the typical set-up at the start.\n" "* Black's pieces are the same, except that the King and Queen are reversed,\n" "* so they are not on the same files as White's King and Queen.\n" "* Castling is done similarly to normal chess:\n" "* o-o-o indicates long castling and o-o short castling." msgstr "" #: lib/pychess/Variants/wildcastle.py:17 msgid "Wildcastle" msgstr "" #: lib/pychess/Variants/wildcastleshuffle.py:11 msgid "" "xboard wildcastle http://home.hccnet.nl/h.g.muller/engine-intf.html#8\n" "FICS wild/1: http://www.freechess.org/Help/HelpFiles/wild.html\n" "* In this variant both sides have the same set of pieces as in normal chess.\n" "* The white king starts on d1 or e1 and the black king starts on d8 or e8,\n" "* and the rooks are in their usual positions.\n" "* Bishops are always on opposite colors.\n" "* Subject to these constraints the position of the pieces on their first ranks is random.\n" "* Castling is done similarly to normal chess:\n" "* o-o-o indicates long castling and o-o short castling." msgstr "" #: lib/pychess/Variants/wildcastleshuffle.py:20 msgid "Wildcastle shuffle" msgstr "" #: lib/pychess/widgets/analyzegameDialog.py:85 msgid "Game analyzing in progress..." msgstr "" #: lib/pychess/widgets/analyzegameDialog.py:86 msgid "Do you want to abort it?" msgstr "" #: lib/pychess/widgets/analyzegameDialog.py:95 #: lib/pychess/widgets/gamewidget.py:202 lib/pychess/widgets/gamewidget.py:320 msgid "Abort" msgstr "" #: lib/pychess/widgets/ChatView.py:125 msgid "Observers" msgstr "" #: lib/pychess/widgets/ChatWindow.py:222 msgid "You have opened no conversations yet" msgstr "" #: lib/pychess/widgets/ChatWindow.py:254 msgid "Only registered users may talk to this channel" msgstr "" #: lib/pychess/widgets/ChatWindow.py:312 msgid "No conversation's selected" msgstr "" #: lib/pychess/widgets/ChatWindow.py:350 msgid "Loading player data" msgstr "" #: lib/pychess/widgets/ChatWindow.py:400 msgid "Receiving list of players" msgstr "" #: lib/pychess/widgets/ChatWindow.py:518 msgid "Friends" msgstr "" #: lib/pychess/widgets/ChatWindow.py:529 msgid "Admin" msgstr "" #: lib/pychess/widgets/ChatWindow.py:540 msgid "More channels" msgstr "" #: lib/pychess/widgets/ChatWindow.py:548 msgid "More players" msgstr "" #: lib/pychess/widgets/ChatWindow.py:558 msgid "Computers" msgstr "" #: lib/pychess/widgets/ChatWindow.py:568 msgid "BlindFold" msgstr "" #: lib/pychess/widgets/ChatWindow.py:578 msgid "Guests" msgstr "" #: lib/pychess/widgets/ChatWindow.py:805 msgid "Conversations" msgstr "" #: lib/pychess/widgets/ChatWindow.py:807 msgid "Conversation info" msgstr "" #: lib/pychess/widgets/enginesDialog.py:152 msgid "Select engine" msgstr "" #: lib/pychess/widgets/enginesDialog.py:156 msgid "Executable files" msgstr "" #: lib/pychess/widgets/enginesDialog.py:176 #: lib/pychess/widgets/enginesDialog.py:210 #: lib/pychess/widgets/enginesDialog.py:235 #, python-format msgid "Unable to add %s" msgstr "" #: lib/pychess/widgets/enginesDialog.py:177 msgid "wine not installed" msgstr "" #: lib/pychess/widgets/enginesDialog.py:211 #: lib/pychess/widgets/enginesDialog.py:236 msgid "There is something wrong with this executable" msgstr "" #: lib/pychess/widgets/enginesDialog.py:266 msgid "Select working directory" msgstr "" #: lib/pychess/widgets/gamenanny.py:115 #, python-format msgid " invalid engine move: %s" msgstr "" #: lib/pychess/widgets/gamenanny.py:134 msgid "Offer Rematch" msgstr "" #: lib/pychess/widgets/gamenanny.py:136 lib/pychess/widgets/gamenanny.py:147 #, python-format msgid "Observe %s" msgstr "" #: lib/pychess/widgets/gamenanny.py:168 msgid "Play Rematch" msgstr "" #: lib/pychess/widgets/gamenanny.py:171 msgid "Undo one move" msgstr "" #: lib/pychess/widgets/gamenanny.py:173 msgid "Undo two moves" msgstr "" #: lib/pychess/widgets/gamenanny.py:203 msgid "The game is paused" msgstr "" #: lib/pychess/widgets/gamenanny.py:221 lib/pychess/widgets/gamenanny.py:222 msgid "Loaded game" msgstr "Geladen spel" #: lib/pychess/widgets/gamenanny.py:228 msgid "Saved game" msgstr "Opgeslagen spel" #: lib/pychess/widgets/gamenanny.py:232 msgid "Analyzer started" msgstr "" #: lib/pychess/widgets/gamenanny.py:281 msgid "You sent an abort offer" msgstr "" #: lib/pychess/widgets/gamenanny.py:283 msgid "You sent an adjournment offer" msgstr "" #: lib/pychess/widgets/gamenanny.py:285 msgid "You sent a draw offer" msgstr "u een remisevoorstel heeft gedaan" #: lib/pychess/widgets/gamenanny.py:287 msgid "You sent a pause offer" msgstr "" #: lib/pychess/widgets/gamenanny.py:289 msgid "You sent a resume offer" msgstr "" #: lib/pychess/widgets/gamenanny.py:291 msgid "You sent an undo offer" msgstr "" #: lib/pychess/widgets/gamenanny.py:293 msgid "You asked your opponent to move" msgstr "" #: lib/pychess/widgets/gamenanny.py:305 #, python-format msgid "Engine, %s, has died" msgstr "Schaakcomputer, %s, is gestopt" #: lib/pychess/widgets/gamenanny.py:306 msgid "" "PyChess has lost connection to the engine, probably because it has died.\n" "\n" "You can try to start a new game with the engine, or try to play against another one." msgstr "PyChess heeft de verbinding met de schaakcomputer verloren, waarschijnlijk omdat deze gestopt is.\n\nU kunt proberen een nieuw spel te starten met deze computer of later te spelen tegen een andere." #: lib/pychess/widgets/gamewidget.py:204 msgid "" "This game can be automatically aborted without rating loss because there has" " not yet been two moves made" msgstr "" #: lib/pychess/widgets/gamewidget.py:206 msgid "Offer Abort" msgstr "" #: lib/pychess/widgets/gamewidget.py:208 msgid "" "Your opponent must agree to abort the game because there has been two or " "more moves made" msgstr "" #: lib/pychess/widgets/gamewidget.py:226 msgid "This game can not be adjourned because one or both players are guests" msgstr "" #: lib/pychess/widgets/gamewidget.py:243 msgid "Claim Draw" msgstr "" #: lib/pychess/widgets/gamewidget.py:325 msgid "Pause" msgstr "" #: lib/pychess/widgets/gamewidget.py:326 msgid "Resume" msgstr "" #: lib/pychess/widgets/gamewidget.py:328 msgid "Offer Pause" msgstr "" #: lib/pychess/widgets/gamewidget.py:329 msgid "Offer Resume" msgstr "" #: lib/pychess/widgets/gamewidget.py:333 msgid "Undo" msgstr "" #: lib/pychess/widgets/gamewidget.py:335 msgid "Offer Undo" msgstr "" #: lib/pychess/widgets/gamewidget.py:550 msgid " has lagged for 30 seconds" msgstr "" #: lib/pychess/widgets/gamewidget.py:566 msgid " is lagging heavily but hasn't disconnected" msgstr "" #: lib/pychess/widgets/gamewidget.py:567 msgid "Continue to wait for opponent, or try to adjourn the game?" msgstr "" #: lib/pychess/widgets/gamewidget.py:575 msgid "Wait" msgstr "" #: lib/pychess/widgets/gamewidget.py:576 msgid "Adjourn" msgstr "" #: lib/pychess/widgets/gamewidget.py:648 msgid "Jump to initial position" msgstr "" #: lib/pychess/widgets/gamewidget.py:653 msgid "Step back one move" msgstr "" #: lib/pychess/widgets/gamewidget.py:658 msgid "Go back to the main line" msgstr "" #: lib/pychess/widgets/gamewidget.py:664 msgid "Step forward one move" msgstr "" #: lib/pychess/widgets/gamewidget.py:669 msgid "Jump to latest position" msgstr "" #: lib/pychess/widgets/gamewidget.py:903 msgid "PyChess was unable to load your panel settings" msgstr "" #: lib/pychess/widgets/gamewidget.py:904 msgid "" "Your panel settings have been reset. If this problem repeats, you should " "report it to the developers" msgstr "" #: lib/pychess/widgets/ionest.py:67 lib/pychess/widgets/newGameDialog.py:389 #: lib/pychess/widgets/TaskerManager.py:210 msgid "You" msgstr "" #: lib/pychess/widgets/ionest.py:70 lib/pychess/widgets/newGameDialog.py:390 #: lib/pychess/widgets/preferencesDialog.py:61 #: lib/pychess/widgets/TaskerManager.py:213 msgid "Guest" msgstr "Gast" #: lib/pychess/widgets/ionest.py:93 msgid "Error loading game" msgstr "" #: lib/pychess/widgets/ionest.py:127 lib/pychess/widgets/newGameDialog.py:480 msgid "Open Game" msgstr "Spel openen" #: lib/pychess/widgets/ionest.py:137 msgid "All Files" msgstr "Alle bestanden" #: lib/pychess/widgets/ionest.py:140 msgid "Detect type automatically" msgstr "Type automatisch detecteren" #: lib/pychess/widgets/ionest.py:146 msgid "All Chess Files" msgstr "Alle schaakbestanden" #: lib/pychess/widgets/ionest.py:228 msgid "Save Game" msgstr "Spel opslaan" #: lib/pychess/widgets/ionest.py:228 msgid "Export position" msgstr "" #: lib/pychess/widgets/ionest.py:232 lib/pychess/widgets/ionest.py:360 msgid "vs." msgstr "" #: lib/pychess/widgets/ionest.py:249 #, python-format msgid "Unknown file type '%s'" msgstr "Onbekend bestandstype '%s'" #: lib/pychess/widgets/ionest.py:250 #, python-format msgid "" "Was unable to save '%(uri)s' as PyChess doesn't know the format " "'%(ending)s'." msgstr "" #: lib/pychess/widgets/ionest.py:266 #, python-format msgid "Unable to save file '%s'" msgstr "Kon bestand '%s' niet opslaan" #: lib/pychess/widgets/ionest.py:268 msgid "" "You don't have the necessary rights to save the file.\n" "Please ensure that you have given the right path and try again." msgstr "U hebt niet de benodigde rechten om het bestand op te slaan. Zorg dat u de juiste locatie opgeeft en probeer het opnieuw." #: lib/pychess/widgets/ionest.py:276 msgid "_Replace" msgstr "_Vervangen" #: lib/pychess/widgets/ionest.py:280 msgid "File exists" msgstr "Bestand bestaat al" #: lib/pychess/widgets/ionest.py:282 #, python-format msgid "" "A file named '%s' already exists. Would you like to replace " "it?" msgstr "Een bestand met de naam '%s' bestaat al. Wilt u het vervangen?" #: lib/pychess/widgets/ionest.py:283 #, python-format msgid "" "The file already exists in '%s'. If you replace it, its content will be " "overwritten." msgstr "Het bestand bestaat al in '%s'. Als u het vervangt, zal de inhoud overschreven worden." #: lib/pychess/widgets/ionest.py:299 msgid "Could not save the file" msgstr "Kon het bestand niet opslaan" #: lib/pychess/widgets/ionest.py:300 msgid "PyChess was not able to save the game" msgstr "PyChess kon het spel niet opslaan" #: lib/pychess/widgets/ionest.py:301 #, python-format msgid "The error was: %s" msgstr "De foutmelding was: %s" #: lib/pychess/widgets/ionest.py:325 #, python-format msgid "There is %d game with unsaved moves." msgid_plural "There are %d games with unsaved moves." msgstr[0] "" msgstr[1] "" #: lib/pychess/widgets/ionest.py:328 msgid "Save moves before closing?" msgstr "" #: lib/pychess/widgets/ionest.py:339 msgid "Unable to save to configured file. Save the games before closing?" msgstr "" #: lib/pychess/widgets/ionest.py:366 #, python-format msgid "_Save %d document" msgid_plural "_Save %d documents" msgstr[0] "" msgstr[1] "" #: lib/pychess/widgets/ionest.py:412 msgid "Save the current game before you close it?" msgstr "" #: lib/pychess/widgets/ionest.py:420 msgid "" "Unable to save to configured file. Save the current game before you close " "it?" msgstr "" #: lib/pychess/widgets/ionest.py:434 msgid "" "It is not possible later to continue the game,\n" "if you don't save it." msgstr "Het is niet mogelijk om het spel later \ndoor te spelen, als u het niet opslaat." #: lib/pychess/widgets/LogDialog.py:26 msgid "PyChess Information Window" msgstr "" #: lib/pychess/widgets/LogDialog.py:184 lib/pychess/widgets/LogDialog.py:188 msgid "of" msgstr "" #: lib/pychess/widgets/newGameDialog.py:84 #: lib/pychess/widgets/newGameDialog.py:85 msgid "Human Being" msgstr "Mens" #: lib/pychess/widgets/newGameDialog.py:155 msgid "Rapid" msgstr "" #: lib/pychess/widgets/newGameDialog.py:224 msgid "Minutes:" msgstr "Minuten:" #: lib/pychess/widgets/newGameDialog.py:228 msgid "Gain:" msgstr "Extra:" #: lib/pychess/widgets/newGameDialog.py:241 #, python-format msgid "%(name)s %(minutes)d min + %(gain)d sec/move" msgstr "" #: lib/pychess/widgets/newGameDialog.py:244 #, python-format msgid "%(name)s %(minutes)d min %(gain)d sec/move" msgstr "" #: lib/pychess/widgets/newGameDialog.py:247 #, python-format msgid "%(name)s %(minutes)d min" msgstr "" #: lib/pychess/widgets/newGameDialog.py:265 msgid "Odds" msgstr "" #: lib/pychess/widgets/newGameDialog.py:269 msgid "Asian variants" msgstr "" #: lib/pychess/widgets/newGameDialog.py:301 msgid " chess" msgstr "" #: lib/pychess/widgets/newGameDialog.py:682 msgid "Type or paste PGN game or FEN positions here" msgstr "" #: lib/pychess/widgets/newGameDialog.py:725 msgid "Enter Game" msgstr "Spelinvoer" #: lib/pychess/widgets/preferencesDialog.py:123 msgid "Select book file" msgstr "" #: lib/pychess/widgets/preferencesDialog.py:128 msgid "Opening books" msgstr "" #: lib/pychess/widgets/preferencesDialog.py:156 msgid "Select Gaviota TB path" msgstr "" #: lib/pychess/widgets/preferencesDialog.py:331 msgid "Open Sound File" msgstr "Geluidsbestand openen" #: lib/pychess/widgets/preferencesDialog.py:341 msgid "Sound files" msgstr "" #: lib/pychess/widgets/preferencesDialog.py:485 msgid "Undescribed panel" msgstr "" #: lib/pychess/widgets/preferencesDialog.py:678 msgid "Select auto save path" msgstr "" #: lib/pychess/widgets/tipOfTheDay.py:51 msgid "" "You can start a new game by Game > New Game, in New Game " "window do you can choose Players, Time Control and Chess " "Variants." msgstr "" #: lib/pychess/widgets/tipOfTheDay.py:52 msgid "" "You can choose from 20 different difficulties to play against the computer." msgstr "" #: lib/pychess/widgets/tipOfTheDay.py:53 msgid "" "Chess Variants are like the pieces of the last line will be placed on the " "board." msgstr "" #: lib/pychess/widgets/tipOfTheDay.py:54 msgid "" "To save a game Game > Save Game As, give the filename and " "choose where you want to be saved. At the bottom choose extension type of " "the file, and Save." msgstr "" #: lib/pychess/widgets/tipOfTheDay.py:55 msgid "" "Do you know that you can call flag when the clock is with you, " "Actions > Call Flag." msgstr "" #: lib/pychess/widgets/tipOfTheDay.py:56 msgid "Pressing Ctrl+Z to offer opponent the possible rollback moves." msgstr "" #: lib/pychess/widgets/tipOfTheDay.py:57 msgid "" "To play on Fullscreen mode, just type F11. Coming back, F11 " "again." msgstr "" #: lib/pychess/widgets/tipOfTheDay.py:58 msgid "Hint mode analyzing your game, enable this type Ctrl+H." msgstr "" #: lib/pychess/widgets/tipOfTheDay.py:59 msgid "" "Spy mode analyzing the oponnent game, enable this type Ctrl+Y." msgstr "" #: lib/pychess/widgets/tipOfTheDay.py:60 msgid "" "You can play chess listening to the sounds of the game, for that, " "Settings > Preferences > Sound tab, enable Use " "sounds in PyChess and choose your preferred sounds." msgstr "" #: lib/pychess/widgets/tipOfTheDay.py:61 msgid "" "Do you know that you can help translate Pychess in your language, " "Help > Translate Pychess." msgstr "" #: lib/pychess/widgets/tipOfTheDay.py:62 msgid "" "Do you know that it is possible to finish a chess game in just 2 turns?" msgstr "" #: lib/pychess/widgets/tipOfTheDay.py:63 msgid "" "Do you know that the number of possible chess games exceeds the number of " "atoms in the Universe?" msgstr "" #: lib/pychess/ic/managers/ChatManager.py:184 msgid "Shout" msgstr "" #: lib/pychess/ic/managers/ChatManager.py:185 msgid "Chess Shout" msgstr "" #: lib/pychess/ic/managers/ChatManager.py:195 #, python-format msgid "Unofficial channel %d" msgstr "" #: lib/pychess/Utils/lutils/LBoard.py:152 #, python-format msgid "" "FEN needs 6 data fields. \n" "\n" "%s" msgstr "" #: lib/pychess/Utils/lutils/LBoard.py:154 #, python-format msgid "" "FEN needs at least 2 data fields in fenstr. \n" "\n" "%s" msgstr "" #: lib/pychess/Utils/lutils/LBoard.py:175 #, python-format msgid "" "Needs 7 slashes in piece placement field. \n" "\n" "%s" msgstr "" #: lib/pychess/Utils/lutils/LBoard.py:178 #, python-format msgid "" "Active color field must be one of w or b. \n" "\n" "%s" msgstr "" #: lib/pychess/Utils/lutils/LBoard.py:189 #, python-format msgid "" "Castling availability field is not legal. \n" "\n" "%s" msgstr "" #: lib/pychess/Utils/lutils/LBoard.py:192 #, python-format msgid "" "En passant cord is not legal. \n" "\n" "%s" msgstr "" #: lib/pychess/Utils/lutils/lmove.py:260 msgid "invalid promoted piece" msgstr "" #: lib/pychess/Utils/lutils/lmove.py:272 msgid "the move needs a piece and a cord" msgstr "" #: lib/pychess/Utils/lutils/lmove.py:306 lib/pychess/Utils/lutils/lmove.py:556 msgid "promotion move without promoted piece is incorrect" msgstr "" #: lib/pychess/Utils/lutils/lmove.py:312 #, python-format msgid "the captured cord (%s) is incorrect" msgstr "" #: lib/pychess/Utils/lutils/lmove.py:323 #, python-format msgid "the end cord (%s) is incorrect" msgstr "" #: lib/pychess/Utils/lutils/strateval.py:24 sidepanel/commentPanel.py:191 #: sidepanel/commentPanel.py:208 msgid "and" msgstr "" #: lib/pychess/Utils/lutils/strateval.py:43 msgid "draws" msgstr "geeft remise" #: lib/pychess/Utils/lutils/strateval.py:45 msgid "mates" msgstr "geeft schaakmat" #: lib/pychess/Utils/lutils/strateval.py:49 msgid "puts opponent in check" msgstr "zet tegenstander schaak" #: lib/pychess/Utils/lutils/strateval.py:73 msgid "improves king safety" msgstr "vergroot de veiligheid van de koning" #: lib/pychess/Utils/lutils/strateval.py:75 msgid "slightly improves king safety" msgstr "vergroot de veiligheid van de koning enigzins" #: lib/pychess/Utils/lutils/strateval.py:108 msgid "moves a rook to an open file" msgstr "plaatst een loper naar een open lijn" #: lib/pychess/Utils/lutils/strateval.py:109 msgid "moves an rook to a half-open file" msgstr "plaatst een loper naar een halfopen lijn" #: lib/pychess/Utils/lutils/strateval.py:119 #: lib/pychess/Utils/lutils/strateval.py:121 #: lib/pychess/Utils/lutils/strateval.py:124 #: lib/pychess/Utils/lutils/strateval.py:126 #, python-format msgid "moves bishop into fianchetto: %s" msgstr "plaatst de loper in fianchetto: %s" #: lib/pychess/Utils/lutils/strateval.py:132 #, python-format msgid "promotes a Pawn to a %s" msgstr "promoveert een pion naar een %s" #: lib/pychess/Utils/lutils/strateval.py:135 msgid "castles" msgstr "rokeert" #: lib/pychess/Utils/lutils/strateval.py:158 msgid "takes back material" msgstr "verovert stukken terug" #: lib/pychess/Utils/lutils/strateval.py:162 #: lib/pychess/Utils/lutils/strateval.py:170 msgid "sacrifies material" msgstr "offert stukken op" #: lib/pychess/Utils/lutils/strateval.py:164 msgid "exchanges material" msgstr "wisselt stukken uit" #: lib/pychess/Utils/lutils/strateval.py:166 msgid "captures material" msgstr "verovert stukken" #: lib/pychess/Utils/lutils/strateval.py:291 #, python-format msgid "rescues a %s" msgstr "" #: lib/pychess/Utils/lutils/strateval.py:294 #, python-format msgid "threatens to win material by %s" msgstr "" #: lib/pychess/Utils/lutils/strateval.py:296 #, python-format msgid "increases the pressure on %s" msgstr "vergroot de druk op %s" #: lib/pychess/Utils/lutils/strateval.py:298 #, python-format msgid "defends %s" msgstr "verdedigt %s" #: lib/pychess/Utils/lutils/strateval.py:336 #, python-format msgid "pins an enemy %(oppiece)s on the %(piece)s at %(cord)s" msgstr "" #: lib/pychess/Utils/lutils/strateval.py:369 #, python-format msgid "White has a new piece in outpost: %s" msgstr "Wit heeft een nieuw stuk in outpost: %s" #: lib/pychess/Utils/lutils/strateval.py:377 #, python-format msgid "Black has a new piece in outpost: %s" msgstr "Zwart heeft een nieuw stuk in outpost: %s" #: lib/pychess/Utils/lutils/strateval.py:416 #, python-format msgid "%(color)s has a new passed pawn on %(cord)s" msgstr "" #: lib/pychess/Utils/lutils/strateval.py:470 msgid "half-open" msgstr "" #: lib/pychess/Utils/lutils/strateval.py:472 #, python-format msgid "in the %(x)s%(y)s file" msgstr "" #: lib/pychess/Utils/lutils/strateval.py:474 #, python-format msgid "in the %(x)s%(y)s files" msgstr "" #: lib/pychess/Utils/lutils/strateval.py:477 #, python-format msgid "%(color)s got a double pawn %(place)s" msgstr "" #: lib/pychess/Utils/lutils/strateval.py:478 #, python-format msgid "%(color)s got new double pawns %(place)s" msgstr "" #: lib/pychess/Utils/lutils/strateval.py:485 #, python-format msgid "%(color)s got an isolated pawn in the %(x)s file" msgid_plural "%(color)s got isolated pawns in the %(x)s files" msgstr[0] "" msgstr[1] "" #: lib/pychess/Utils/lutils/strateval.py:492 #, python-format msgid "%s moves pawns into stonewall formation" msgstr "%s plaatst pionnen in Stonewall-formatie" #: lib/pychess/Utils/lutils/strateval.py:507 #: lib/pychess/Utils/lutils/strateval.py:514 #, python-format msgid "%s can no longer castle" msgstr "" #: lib/pychess/Utils/lutils/strateval.py:508 #: lib/pychess/Utils/lutils/strateval.py:515 #, python-format msgid "%s can no longer castle in queenside" msgstr "" #: lib/pychess/Utils/lutils/strateval.py:510 #: lib/pychess/Utils/lutils/strateval.py:517 #, python-format msgid "%s can no longer castle in kingside" msgstr "" #: lib/pychess/Utils/lutils/strateval.py:551 #, python-format msgid "%(opcolor)s has a new trapped bishop on %(cord)s" msgstr "" #: lib/pychess/Utils/lutils/strateval.py:573 #, python-format msgid "develops a pawn: %s" msgstr "" #: lib/pychess/Utils/lutils/strateval.py:574 #, python-format msgid "brings a pawn closer to the backrow: %s" msgstr "brengt een pion dichter bij de achterrij: %s" #: lib/pychess/Utils/lutils/strateval.py:591 #, python-format msgid "brings a %(piece)s closer to enemy king: %(cord)s" msgstr "" #: lib/pychess/Utils/lutils/strateval.py:594 #, python-format msgid "develops a %(piece)s: %(cord)s" msgstr "" #: lib/pychess/Utils/lutils/strateval.py:612 #, python-format msgid "places a %(piece)s more active: %(cord)s" msgstr "" #: lib/pychess/Utils/lutils/strateval.py:638 msgid "White should do pawn storm in right" msgstr "Wit zou een pionnenstorm over rechts moeten doen" #: lib/pychess/Utils/lutils/strateval.py:640 msgid "Black should do pawn storm in left" msgstr "Zwart zou een pionnenstorm over links moeten doen" #: lib/pychess/Utils/lutils/strateval.py:643 msgid "White should do pawn storm in left" msgstr "Wit zou een pionnenstorm over links moeten doen" #: lib/pychess/Utils/lutils/strateval.py:645 msgid "Black should do pawn storm in right" msgstr "Zwart zou een pionnenstorm over rechts moeten doen" #: lib/pychess/Utils/lutils/strateval.py:671 msgid "Black has a rather cramped position" msgstr "Zwart heeft een nogal verkrampte positie" #: lib/pychess/Utils/lutils/strateval.py:673 msgid "Black has a slightly cramped position" msgstr "Zwart heeft een enigzins verkrampte positie" #: lib/pychess/Utils/lutils/strateval.py:675 msgid "White has a rather cramped position" msgstr "Wit heeft een nogal verkrampte positie" #: lib/pychess/Utils/lutils/strateval.py:677 msgid "White has a slightly cramped position" msgstr "Wit heeft een enigzins verkrampte positie" #: sidepanel/annotationPanel.py:26 msgid "Annotation" msgstr "" #: sidepanel/annotationPanel.py:29 msgid "Annotated game" msgstr "" #: sidepanel/annotationPanel.py:236 msgid "Copy PGN" msgstr "" #: sidepanel/annotationPanel.py:249 msgid "Add start comment" msgstr "" #: sidepanel/annotationPanel.py:254 msgid "Add comment" msgstr "" #: sidepanel/annotationPanel.py:258 sidepanel/annotationPanel.py:316 msgid "Edit comment" msgstr "" #: sidepanel/annotationPanel.py:269 msgid "Forced move" msgstr "" #: sidepanel/annotationPanel.py:274 msgid "Add move symbol" msgstr "" #: sidepanel/annotationPanel.py:280 msgid "Unclear position" msgstr "" #: sidepanel/annotationPanel.py:289 msgid "Zugzwang" msgstr "" #: sidepanel/annotationPanel.py:290 msgid "Development adv." msgstr "" #: sidepanel/annotationPanel.py:291 msgid "Initiative" msgstr "" #: sidepanel/annotationPanel.py:292 msgid "With attack" msgstr "" #: sidepanel/annotationPanel.py:293 msgid "Compensation" msgstr "" #: sidepanel/annotationPanel.py:294 msgid "Counterplay" msgstr "" #: sidepanel/annotationPanel.py:295 msgid "Time pressure" msgstr "" #: sidepanel/annotationPanel.py:300 msgid "Add evaluation symbol" msgstr "" #: sidepanel/annotationPanel.py:304 msgid "Remove symbols" msgstr "" #: sidepanel/annotationPanel.py:911 #, python-format msgid "round %s" msgstr "" #: sidepanel/bookPanel.py:21 msgid "Hints" msgstr "" #: sidepanel/bookPanel.py:25 msgid "" "The hint panel will provide computer advice during each stage of the game" msgstr "" #: sidepanel/bookPanel.py:27 msgid "Official PyChess panel." msgstr "" #: sidepanel/bookPanel.py:87 msgid "Opening Book" msgstr "Openingenboek" #: sidepanel/bookPanel.py:88 msgid "" "The opening book will try to inspire you during the opening phase of the " "game by showing you common moves made by chess masters" msgstr "" #: sidepanel/bookPanel.py:139 #, python-format msgid "Analysis by %s" msgstr "" #: sidepanel/bookPanel.py:140 #, python-format msgid "" "%s will try to predict which move is best and which side has the advantage" msgstr "" #: sidepanel/bookPanel.py:142 #, python-format msgid "Threat analysis by %s" msgstr "" #: sidepanel/bookPanel.py:143 #, python-format msgid "" "%s will identify what threats would exist if it were your opponent's turn to" " move" msgstr "" #: sidepanel/bookPanel.py:159 sidepanel/bookPanel.py:269 msgid "Calculating..." msgstr "" #: sidepanel/bookPanel.py:300 msgid "" "Engine scores are in units of pawns, from White's point of view. Double " "clicking on analysis lines you can insert them into Annotation panel as " "variations." msgstr "" #: sidepanel/bookPanel.py:302 msgid "" "Adding suggestions can help you find ideas, but slows down the computer's " "analysis." msgstr "" #: sidepanel/bookPanel.py:311 msgid "Endgame Table" msgstr "" #: sidepanel/bookPanel.py:315 msgid "" "The endgame table will show exact analysis when there are few pieces on the " "board." msgstr "" #: sidepanel/bookPanel.py:364 sidepanel/bookPanel.py:367 #, python-format msgid "Mate in %d" msgstr "" #: sidepanel/bookPanel.py:554 msgid "" "In this position,\n" "there is no legal move." msgstr "" #: sidepanel/chatPanel.py:21 msgid "" "The chat panel lets you communicate with your opponent during the game, " "assuming he or she is interested" msgstr "" #: sidepanel/commentPanel.py:16 msgid "Comments" msgstr "Commentaar" #: sidepanel/commentPanel.py:20 msgid "The comments panel will try to analyze and explain the moves played" msgstr "" #: sidepanel/commentPanel.py:121 msgid "Initial position" msgstr "Uitgangspositie" #: sidepanel/commentPanel.py:254 #, python-format msgid "%(color)s moves a %(piece)s to %(cord)s" msgstr "" #: sidepanel/engineOutputPanel.py:15 msgid "Engines" msgstr "" #: sidepanel/engineOutputPanel.py:20 msgid "" "The engine output panel shows the thinking output of chess engines (computer" " players) during a game" msgstr "" #: sidepanel/engineOutputPanel.py:44 msgid "No chess engines (computer players) are participating in this game." msgstr "" #: sidepanel/historyPanel.py:10 msgid "Move History" msgstr "Notatie" #: sidepanel/historyPanel.py:13 msgid "" "The moves sheet keeps track of the players' moves and lets you navigate " "through the game history" msgstr "" #: sidepanel/scorePanel.py:15 msgid "Score" msgstr "Score" #: sidepanel/scorePanel.py:19 msgid "" "The score panel tries to evaluate the positions and shows you a graph of the" " game progress" msgstr "" pychess-0.12.2/lang/nl/LC_MESSAGES/pychess.mo0000644000175000017470000004373212653231272020716 0ustar tamasusers00000000000000+t  '7_ s!#2%7]z9' 2Far#$  2A UbQt&C71*i(  %3 C M Z*g $#%"#Bfmsz     % ; B Z f p x        !! /!=! C! P!^! c! o! {!!D!!!!!! " " " (" 4" ?"L"]"r"y""" " """/"" "## #&# 6# C# P# \# i#w## ## ########$$-$ <$H$P$X$ a$m$ u$#$$$ a%m%o% u%%%% %%%%% % % %%% %% & &$& 3&>&R&Z&p& v&&& &&&5&9&3$'X'Tj''''('(.(3(C(R( a(l(~(( ((( (( (((($(#)%B)"h)#))u),* B*!c***** ** ** **%* + +(+ 1+=+ D+N+T+ e+p+ + ++ + ++++ ++ ,, !,.,'4,\,n, v,,, ,",+,,-%-+-!H- j-------...//(/0&0+D0 p0000 000%0!181>1FZ1+11112212A2,U2-2 222 223$3:3I3PY303_33;4/o4,44445 25?5 G5 R5\5q5 5565 55555)5(!6+J61v62666666 7 7 7 *787=7 U7`7i7}777777 77 88+8:8K8 R8]8 r8}88888888899 "909 59A9OQ999999 99 99: ::': :: E:!Q:s: |::::=: :: ::;;*;=;P;d;t;;; ;; ;;;;;; ;<(<!><`< r<~< << <<<&<<= ===== = => >>%> ,> 9>F>X>h>n>t>>>>> >>>?? !?-? 4? >?I? Z??d?<?/?@V(@ @@@@@@@AA A*A:A?A VAbAkAzAAAAAA'A&B)(B/RB0BByB!2C+TC*C C CCC C CCD DD9D YD dD pD{DD D DD DD DD D D EE0E @E JEXEwE ~E EE,EEE E EE F$F5AF$wFFF$F(F"G 4G>G^GvG-GGGG ko?d i$T7&"MA;J+I*\xbZP&V:} Sn@5a9Y U8rX'] qp{/_~ (y2>cv z6^',gm%fDE|=[w*jNC)lsL(.` F R#K+O!1#hG3)"t %0u!Q -<$4 BWHe Gain: %(player)s plays %(color)s%s moves pawns into stonewall formation%s returns an error%s was declined by your opponent%s was withdrawn by your opponent'%s' is not a registered name(Blitz)0 Players Ready0 of 010 min + 6 sec/move, 1400↑, White10 min + 6 sec/move, White12002 min, Fischer Random, 1800↓, Black2 min, Fischer Random, Black5 min5 min, 1200-1800, ManualConnect to the Free Online Chess ServerPromote pawn to what?AnalyzingAnimationChess VariantDate of gameEnter Game NotationGame dataInitial PositionName of _first human player:Name of s_econd human player:NewsOpen GameOpponent StrengthOptionsPlay Sound When...PlayersTime ControlToolsYour ColorA file named '%s' already exists. Would you like to replace it?Engine, %s, has diedPyChess is discovering your engines. Please wait.PyChess was not able to save the gameUnable to save file '%s'Unknown file type '%s'Challenge:A player _checks:A player _moves:A player c_aptures:About ChessAc_tiveAcceptAdministratorAll Chess FilesAll FilesAny strengthAsk to _MoveAuto _rotate board to current human playerAvailableBBeepBishopBlackBlack has a new piece in outpost: %sBlack has a rather cramped positionBlack has a slightly cramped positionBlack should do pawn storm in leftBlack should do pawn storm in rightBlack:BlitzBlitz:Center:ChallengeChallenge: Challenge: Chess GameChess PositionClockClose _without SavingCommentsComputerConnectingConnecting to serverConnection ErrorConnection was closedCornerCould not save the fileCreate SeekDate/TimeDeclineDefaultDetect type automaticallyDon't careEdit SeekEmailEnter GameEnter Game _NotationEvent:File existsGain:Game informationGame is _drawn:Game is _lost:Game is _set-up:Game is _won:GuestHidden pawnsHidden piecesHideHow to PlayHuman BeingIn TournamentInitial positionIt is not possible later to continue the game, if you don't save it.KKingKnightKnightsLeave _FullscreenLightningLightning:Loaded gameLocal EventLocal SiteLog on ErrorLog on as _GuestLogging on to serverLosersManualManually accept opponentMinutes:Minutes: Move HistoryNNameNever use animation. Use this on slow machines.New GameNo _animationNo soundNormalNot AvailableObserved _ends:Offer A_bortOffer _AbortOffer _DrawOffer _PauseOffer _ResumeOfflineOnlineOpen GameOpen Sound FileOpening BookOpponent's strength: PPawnPingPlayPlay Fischer Random chessPlay Losers chessPlay _Internet ChessPlay normal chess rulesPlayer _RatingPlayers: %dPlayingPo_rts:Pre_viewPreferencesPrivatePromotionPyChess - Connect to Internet ChessPyChess - Internet Chess: FICSPyChess has lost connection to the engine, probably because it has died. You can try to start a new game with the engine, or try to play against another one.PyChess.py:QQueenQuit PyChessRR_esignRatedRated gameRatingRookRound:S_ign upSave GameSave Game _AsSaved gameScoreSearch:Seek _GraphSelect sound file...Send ChallengeSend seekSetup PositionShow _ChatShredderLinuxChess:ShuffleSimple Chess PositionSite:Sp_y modeSpentStandardStandard:Start Private ChatSuicideThe connection was broken - got "end of file" messageThe displayed name of the first human player, e.g., John.The displayed name of the guest player, e.g., Mary.The error was: %sThe file already exists in '%s'. If you replace it, its content will be overwritten.The game ended in a drawThe game has been abortedThe game has been adjournedThe game has been killedThemesTimeTime control: Tip Of The dayTip of the DayTolerance:Translate PyChessTypeUnable to accept %sUninstallUnknownUnratedUnregisteredUntimedUse _analyzerUse _inverted analyzerWelcomeWhiteWhite has a new piece in outpost: %sWhite has a rather cramped positionWhite has a slightly cramped positionWhite should do pawn storm in leftWhite should do pawn storm in rightWhite:You don't have the necessary rights to save the file. Please ensure that you have given the right path and try again.You sent a draw offerYour opponent asks you to hurry!Your opponent is not out of time.Your strength: _Accept_Actions_Black player:_Call Flag_Decline_Fullscreen_Game_Game List_Help_Hide tabs when only one game is open_Hint mode_Load Game_Log Off_Log Viewer_Name:_New Game_Next_Observed moves:_Password:_Play Normal chess_Player List_Previous_Replace_Rotate Board_Save Game_Seeks / Challenges_Show Sidepanels_Sounds_Start Game_Use sounds in PyChess_View_White player:_Your Color:blackbrings a pawn closer to the backrow: %scaptures materialcastlesdefends %sdrawsexchanges materialgnuchess:http://en.wikipedia.org/wiki/Chesshttp://en.wikipedia.org/wiki/Rules_of_chessimproves king safetyincreases the pressure on %smatesmoves a rook to an open filemoves an rook to a half-open filemoves bishop into fianchetto: %sonline in totalpromotes a Pawn to a %sputs opponent in checksacrifies materialslightly improves king safetytakes back materialwhitewindow1Project-Id-Version: pychess Report-Msgid-Bugs-To: POT-Creation-Date: 2016-01-27 13:28+0100 PO-Revision-Date: 2016-01-28 08:56+0000 Last-Translator: slav0nic Language-Team: Dutch (http://www.transifex.com/gbtami/pychess/language/nl/) MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Language: nl Plural-Forms: nplurals=2; plural=(n != 1); Voordeel: %(player)s speelt %(color)s%s plaatst pionnen in Stonewall-formatie%s geeft een foutmelding%s werd geweigerd door uw tegenstander%s werd teruggetrokken door uw tegenstander'%s' is geen geregistreerde naam(Blitz)0 Spelers Gereed0 van 010 min + 6 sec/zet, 1400↑, wit10 min + 6 sec/zet, Wit12002 min, Fischer Random, 1800↓, zwart2 min, Fischer willekeurig, zwart5 min5 min, 1200-1800, handmatigVerbinding maken met FICS (Free Online Chess Server)Pion naar wat promoveren?AnalyserenAnimatieSchaakvariantSpeldatumSpelnotatie invoerenSpeldataStartpositieNaam van de eerste menselijke speler:Naam van de tw_eede menselijke speler:NieuwsOpen SpelSterkte tegenstanderOptiesGeluid spelen als...SpelersTijd controle:Extra'sUw kleurEen bestand met de naam '%s' bestaat al. Wilt u het vervangen?Schaakcomputer, %s, is gestoptPyChess zoekt nu naar uw grafische stuurprogramma's. Even geduld alstublieft.PyChess kon het spel niet opslaanKon bestand '%s' niet opslaanOnbekend bestandstype '%s'Uitdaging:Een speler _schaak staat:Een speler een _zet doet:Een speler een stuk _slaat:Over schakenAc_tiefAccepterenBeheerderAlle schaakbestandenAlle bestandenElke sterkteVraag o_m te zettenAuto_roteer het bord naar de huidige menselijke spelerBeschikbaarBPiepLoperZwartZwart heeft een nieuw stuk in outpost: %sZwart heeft een nogal verkrampte positieZwart heeft een enigzins verkrampte positieZwart zou een pionnenstorm over links moeten doenZwart zou een pionnenstorm over rechts moeten doenZwart:SnelBlitz:Centrum:Daag uitUitdaging:Uitdaging: SchaakspelSchaakpositieKlokSluiten _zonder opslaanCommentaarComputerBezig met verbindenVerbinden met serverVerbindingsfoutDe verbinding is afgeslotenHoekKon het bestand niet opslaanVerzoek aanmakenDatum/TijdWeigerenStandaardType automatisch detecterenMaakt niet uitVerzoek bewerkenE-mailSpelinvoerVoer spel_notatie inEvenement:Bestand bestaat alExtra:SpelinformatieSpel _remise is:Spel _verloren is:Spel _opgesteld is:Spel _gewonnen is:GastVerborgen pionnenVerborgen stukkenVerbergHoe te spelenMensIn ToernooiUitgangspositieHet is niet mogelijk om het spel later door te spelen, als u het niet opslaat.KKoningPaardPaardenSchermvullend verlatenSupersnelBliksem:Geladen spelLokaal evenementLokaalAanmeldfoutAanmelden als _gastInloggen op serverVerliezersHandleidingTegenstander handmatig accepterenMinuten:Minuten: NotatieNNaamGebruik nooit animaties. Gebruik dit op langzamere computers.Nieuw spelGeen _animatieGeen geluidNormaalNiet beschikbaarGeobserveerde _eindes:Bied A_fbreken aanBied _afbreken aan_Remise voorstellenBied _pauze aanBied he_rvatten aanOfflineOnlineSpel openenGeluidsbestand openenOpeningenboekSterkte tegenstander: PPionPingSpeelSpeel Fischer Willekeurig schaakSpeel VerliezersschaakSpeel _InternetschaakSpeel met de normale schaakregelsSpelers_ranglijstSpelers: %dAan het spelenPoo_rten:_VoorvertoningVoorkeurenPrivéPromotiePyChess - verbinden met internetschaakPyChess - internetschaak: FICSPyChess heeft de verbinding met de schaakcomputer verloren, waarschijnlijk omdat deze gestopt is. U kunt proberen een nieuw spel te starten met deze computer of later te spelen tegen een andere.PyChess.py:QDameSluit Pychess afROver_gevenRanglijstGerateerd spelRanglijstTorenRonde:Reg_istrerenSpel opslaanSpel opslaan _alsOpgeslagen spelScoreZoek:Uitdagings_grafiekGeluidsbestand selecteren...Uitdaging versturenVerzoek versturenStel positie inToon _ChatShredderLinuxChess:SchuddenSimpele schaakpositieLocatie:Sp_ionmodusOnlineStandaardStandaard:Start PrivéchatZelfmoordDe verbinding is verbroken - heb "end of file" bericht gekregenDe getoonde naam van de eerste menselijke speler, bijv. Jan.De getoonde naam van de gastspeler, bijv. MarieDe foutmelding was: %sHet bestand bestaat al in '%s'. Als u het vervangt, zal de inhoud overschreven worden.Het spel is geëindigd in remiseHet spel is afgebrokenHet spel is uitgesteldHet spel is gestoptThema'sTijdTijd controle: Tip van de dagTip van de dagTolerantie:Vertaal PyChessTypeKon %s niet accepterenVerwijderenOnbekendGeen ranglijstOngeregistreerdZonder tijdslimiet_Analyse gebruiken_Omgekeerde analyse gebruikenWelkomWitWit heeft een nieuw stuk in outpost: %sWit heeft een nogal verkrampte positieWit heeft een enigzins verkrampte positieWit zou een pionnenstorm over links moeten doenWit zou een pionnenstorm over rechts moeten doenWit:U hebt niet de benodigde rechten om het bestand op te slaan. Zorg dat u de juiste locatie opgeeft en probeer het opnieuw.u een remisevoorstel heeft gedaanUw tegenstander vraagt u om haast te maken!Uw tegenstander heeft geen tijd te weinig.Uw sterkte: _Accepteren_ActiesZwarte speler(_B)Vlag _claimen_Weigeren_Schermvullend_Spel_Spellenlijst_Hulp_Tabs verbergen wanneer er maar één spel gespeeld wordt_Hintmodus_Spel ladenUit_loggen_Logboek_Naam:_Nieuw spelVolge_nde_Geobserveerde zetten:_Wachtwoord:S_peel Normaal schaakS_pelerslijst_Vorige_Vervangen_Bord draaienSpel _opslaan_Verzoeken/ UitdagingenToon zijpanelen_Geluiden_Spel starten_Geluiden gebruiken in PyChessBeel_d_Witte speler_Jouw kleurzwartbrengt een pion dichter bij de achterrij: %sverovert stukkenrokeertverdedigt %sgeeft remisewisselt stukken uitgnuchess:http://nl.wikipedia.org/wiki/Schakenhttp://www.chessvariants.com/d.chess/chess-dutch.htmlvergroot de veiligheid van de koningvergroot de druk op %sgeeft schaakmatplaatst een loper naar een open lijnplaatst een loper naar een halfopen lijnplaatst de loper in fianchetto: %sin totaalpromoveert een pion naar een %szet tegenstander schaakoffert stukken opvergroot de veiligheid van de koning enigzinsverovert stukken terugwitvenster1pychess-0.12.2/lang/gl/0000755000175000017470000000000012653231274015100 5ustar tamasusers00000000000000pychess-0.12.2/lang/gl/LC_MESSAGES/0000755000175000017470000000000012653231274016665 5ustar tamasusers00000000000000pychess-0.12.2/lang/gl/LC_MESSAGES/pychess.po0000644000175000017470000026052512653216177020722 0ustar tamasusers00000000000000# SOME DESCRIPTIVE TITLE. # Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER # This file is distributed under the same license as the pychess package. # # Translators: # FIRST AUTHOR , 2007 msgid "" msgstr "" "Project-Id-Version: pychess\n" "Report-Msgid-Bugs-To: \n" "POT-Creation-Date: 2016-01-27 13:28+0100\n" "PO-Revision-Date: 2016-01-28 08:56+0000\n" "Last-Translator: slav0nic \n" "Language-Team: Galician (http://www.transifex.com/gbtami/pychess/language/gl/)\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" "Language: gl\n" "Plural-Forms: nplurals=2; plural=(n != 1);\n" # "Plural-Forms: nplurals=INTEGER; plural=EXPRESSION;\n" #: glade/analyze_game.glade:22 msgid "Analyze game" msgstr "" #: glade/analyze_game.glade:87 msgid "Use analyzer:" msgstr "" #: glade/analyze_game.glade:122 glade/PyChess.glade:2054 msgid "Maximum analysis time in seconds:" msgstr "" #: glade/analyze_game.glade:163 msgid "" "If the analyzer finds a move where the evaluation difference (the difference" " between the evaluation for the move it thinks is the best move and the " "evaluation for the move made in the game) exceeds this value, it will add an" " annotation for that move (consisting of the engine's Principal Variation " "for the move) to the Annotation panel" msgstr "" #: glade/analyze_game.glade:164 msgid "Variation annotation creation threshold in centipawns:" msgstr "" #: glade/analyze_game.glade:198 msgid "Analyze from current position" msgstr "" #: glade/analyze_game.glade:214 msgid "Add threatening variation lines " msgstr "" #: glade/analyze_game.glade:229 glade/PyChess.glade:1459 msgid "Colorize analyzed moves" msgstr "" #: glade/analyze_game.glade:244 glade/PyChess.glade:1495 msgid "Show evaluation values" msgstr "" #: glade/discovererDialog.glade:18 msgid "PyChess is discovering your engines. Please wait." msgstr "PyChess está a buscar os eus motores. Agarde." #: glade/discovererDialog.glade:77 msgid "PyChess.py:" msgstr "PyChess.py:" #: glade/discovererDialog.glade:89 msgid "ShredderLinuxChess:" msgstr "ShredderLinuxChess:" #: glade/discovererDialog.glade:101 msgid "gnuchess:" msgstr "gnuchess:" #: glade/fics_logon.glade:7 msgid "PyChess - Connect to Internet Chess" msgstr "" #: glade/fics_logon.glade:47 msgid "Connect to the Free Online Chess Server" msgstr "Conectar ao servidor Free Online Chess" #: glade/fics_logon.glade:129 glade/taskers.glade:394 msgid "_Password:" msgstr "_Contrasinal:" #: glade/fics_logon.glade:143 msgid "_Name:" msgstr "_Nome:" #: glade/fics_logon.glade:191 msgid "Log on as _Guest" msgstr "Entrar como _convidado" #: glade/fics_logon.glade:227 msgid "Host:" msgstr "" #: glade/fics_logon.glade:259 msgid "Po_rts:" msgstr "Po_rtos:" #: glade/fics_logon.glade:271 msgid "Auto login on startup" msgstr "" #: glade/fics_logon.glade:385 msgid "S_ign up" msgstr "Re_xistro" #: glade/fics_lounge.glade:35 msgid "Challenge: " msgstr "Desafío: " #: glade/fics_lounge.glade:97 msgid "Send Challenge" msgstr "Enviar desafío" #: glade/fics_lounge.glade:133 msgid "Challenge:" msgstr "Desafío:" #: glade/fics_lounge.glade:327 glade/fics_lounge.glade:2078 msgid "Lightning:" msgstr "Iluminación:" #: glade/fics_lounge.glade:351 glade/fics_lounge.glade:2102 msgid "Standard:" msgstr "Estándar:" #: glade/fics_lounge.glade:375 glade/fics_lounge.glade:2126 msgid "Blitz:" msgstr "Partida rápida:" #: glade/fics_lounge.glade:400 msgid "2 min, Fischer Random, Black" msgstr "2 min, Fischer Random, negras" #: glade/fics_lounge.glade:422 msgid "10 min + 6 sec/move, White" msgstr "10 min + 6 seg/mov, nrancas" #: glade/fics_lounge.glade:444 msgid "5 min" msgstr "5 min" #: glade/fics_lounge.glade:480 msgid "Edit Seek" msgstr "Editar buscas" #: glade/fics_lounge.glade:584 lib/pychess/ic/ICLounge.py:2208 #: lib/pychess/ic/__init__.py:101 lib/pychess/Utils/GameModel.py:206 msgid "Untimed" msgstr "Sen tempo" #: glade/fics_lounge.glade:637 msgid "Minutes: " msgstr "Minutos: " #: glade/fics_lounge.glade:665 msgid " Gain: " msgstr "" #: glade/fics_lounge.glade:703 msgid "Time control: " msgstr "Control de tempo: " #: glade/fics_lounge.glade:716 lib/pychess/ic/FICSObjects.py:56 #: lib/pychess/ic/ICLounge.py:1137 lib/pychess/ic/ICLounge.py:2208 #: lib/pychess/ic/__init__.py:99 msgid "Standard" msgstr "Estándar" #: glade/fics_lounge.glade:757 glade/newInOut.glade:633 msgid "Time Control" msgstr "Control de tempo" #: glade/fics_lounge.glade:814 glade/fics_lounge.glade:1346 msgid "Don't care" msgstr "Non te preocupes" #: glade/fics_lounge.glade:879 msgid "Your strength: " msgstr "A súa mestría: " #: glade/fics_lounge.glade:921 msgid "(Blitz)" msgstr "(Partida rápida)" #: glade/fics_lounge.glade:951 msgid "Opponent's strength: " msgstr "Mestría do opoñente: " #: glade/fics_lounge.glade:1055 msgid "" "When this button is in the \"locked\" state, the relationship\n" "between \"Opponent's strength\" and \"Your strength\" will be\n" "preserved when \n" "a) your rating for the type of game sought has changed\n" "b) you change the variant or the time control" msgstr "Cando este botón está no estado «bloqueado», a relación\nentre a mestría do opoñente e a súa propia forza será\npreservada cando:\na) cambia a súa propia cualificación para o tipo de partida\nb) vostede cambia a variación do control de tempo" #: glade/fics_lounge.glade:1095 msgid "Center:" msgstr "Centro:" #: glade/fics_lounge.glade:1134 msgid "1200" msgstr "1200" #: glade/fics_lounge.glade:1188 msgid "Tolerance:" msgstr "Tolerancia:" #: glade/fics_lounge.glade:1243 lib/pychess/ic/ICLounge.py:2452 msgid "Hide" msgstr "Agochar" #: glade/fics_lounge.glade:1289 msgid "Opponent Strength" msgstr "Mestría do opoñente" #: glade/fics_lounge.glade:1386 lib/pychess/Database/gamelist.py:40 #: lib/pychess/ic/ICLounge.py:1357 lib/pychess/ic/ICLounge.py:1557 #: lib/pychess/ic/ICLounge.py:2108 lib/pychess/Utils/repr.py:10 #: lib/pychess/widgets/ChessClock.py:40 #: lib/pychess/widgets/TaskerManager.py:153 msgid "White" msgstr "Brancas" #: glade/fics_lounge.glade:1414 lib/pychess/Database/gamelist.py:40 #: lib/pychess/ic/ICLounge.py:1358 lib/pychess/ic/ICLounge.py:1558 #: lib/pychess/ic/ICLounge.py:2110 lib/pychess/Utils/repr.py:10 #: lib/pychess/widgets/ChessClock.py:40 #: lib/pychess/widgets/TaskerManager.py:154 msgid "Black" msgstr "Negras" #: glade/fics_lounge.glade:1453 msgid "Your Color" msgstr "A súa cor" #: glade/fics_lounge.glade:1512 msgid "Play normal chess rules" msgstr "Xogar coas regras normais do xadrez" #: glade/fics_lounge.glade:1552 msgid "Play" msgstr "Xogar" #: glade/fics_lounge.glade:1618 glade/newInOut.glade:833 msgid "Chess Variant" msgstr "Variante do xadrez" #: glade/fics_lounge.glade:1676 msgid "Rated game" msgstr "Partida cualificada" #: glade/fics_lounge.glade:1692 msgid "Manually accept opponent" msgstr "Aceptar manualmente ao opoñente" #: glade/fics_lounge.glade:1722 msgid "Options" msgstr "Opcións" #: glade/fics_lounge.glade:1750 msgid "PyChess - Internet Chess: FICS" msgstr "" #: glade/fics_lounge.glade:1823 msgid "_Clear Seeks" msgstr "_Limpar buscas" #: glade/fics_lounge.glade:1847 msgid "_Accept" msgstr "_Aceptar" #: glade/fics_lounge.glade:1871 msgid "_Decline" msgstr "" #: glade/fics_lounge.glade:2151 msgid "2 min, Fischer Random, 1800↓, Black" msgstr "2 min, Fischer Random, 1800↓, negras" #: glade/fics_lounge.glade:2172 msgid "10 min + 6 sec/move, 1400↑, White" msgstr "10 min + 6 sec/mov, 1400 ↑, brancas" #: glade/fics_lounge.glade:2193 msgid "5 min, 1200-1800, Manual" msgstr "5 min, 1200-1800, manual" #: glade/fics_lounge.glade:2247 msgid "Send all seeks" msgstr "" #: glade/fics_lounge.glade:2301 msgid "Send seek" msgstr "Enviar busca" #: glade/fics_lounge.glade:2337 msgid "Create Seek" msgstr "Crear busca" #: glade/fics_lounge.glade:2353 msgid "_Seeks / Challenges" msgstr "Bu_scas / Desafios:" #: glade/fics_lounge.glade:2374 lib/pychess/ic/ICLounge.py:472 #: lib/pychess/ic/ICLounge.py:670 lib/pychess/ic/ICLounge.py:1357 #: lib/pychess/ic/ICLounge.py:1358 msgid "Rating" msgstr "Cualificación" #: glade/fics_lounge.glade:2399 msgid "Time" msgstr "Tempo" #: glade/fics_lounge.glade:2419 msgid "Seek _Graph" msgstr "_Gráfico de buscas" #: glade/fics_lounge.glade:2444 msgid "0 Players Ready" msgstr "0 xogadores listos" #: glade/fics_lounge.glade:2496 msgid "Challenge" msgstr "Desafío" #: glade/fics_lounge.glade:2549 glade/fics_lounge.glade:2735 msgid "Observe" msgstr "" #: glade/fics_lounge.glade:2602 msgid "Start Private Chat" msgstr "" #: glade/fics_lounge.glade:2659 msgid "_Player List" msgstr "Lista de _xogadores" #: glade/fics_lounge.glade:2792 msgid "_Game List" msgstr "Lista de _partidas" #: glade/fics_lounge.glade:2847 msgid "_My games" msgstr "" #: glade/fics_lounge.glade:2904 glade/PyChess.glade:841 msgid "Offer _Resume" msgstr "Ofrecer _reanudar" #: glade/fics_lounge.glade:2962 glade/PyChess.glade:880 msgid "R_esign" msgstr "" #: glade/fics_lounge.glade:3006 glade/PyChess.glade:820 msgid "Offer _Draw" msgstr "Ofrecer _táboas" #: glade/fics_lounge.glade:3050 msgid "Offer A_bort" msgstr "" #: glade/fics_lounge.glade:3107 msgid "Pre_view" msgstr "_Vista previa" #: glade/fics_lounge.glade:3151 msgid "Examine" msgstr "" #: glade/fics_lounge.glade:3208 msgid "_Archived" msgstr "" #: glade/fics_lounge.glade:3313 msgid "News" msgstr "Novas" #: glade/fics_lounge.glade:3345 msgid "Show Console" msgstr "" #: glade/fics_lounge.glade:3359 msgid "Show _Chat" msgstr "Amosar _conversa" #: glade/fics_lounge.glade:3373 msgid "_Log Off" msgstr "_Pechar sesión" #: glade/fics_lounge.glade:3393 msgid "Tools" msgstr "Ferramentas" #: glade/fics_lounge.glade:3428 msgid "Asymmetric Random " msgstr "" #: glade/findbar.glade:6 msgid "window1" msgstr "xanela1" #: glade/findbar.glade:21 msgid "0 of 0" msgstr "0 de 0" #: glade/findbar.glade:66 msgid "Search:" msgstr "Buscar:" #: glade/findbar.glade:134 msgid "_Previous" msgstr "_Anterior" #: glade/findbar.glade:192 msgid "_Next" msgstr "_Seguinte" #: glade/newInOut.glade:45 lib/pychess/widgets/newGameDialog.py:445 msgid "New Game" msgstr "Nova partida" #: glade/newInOut.glade:108 msgid "_Start Game" msgstr "_Iniciar Partida" #: glade/newInOut.glade:130 msgid "Copy FEN" msgstr "" #: glade/newInOut.glade:143 msgid "Clear" msgstr "" #: glade/newInOut.glade:156 msgid "Paste FEN" msgstr "" #: glade/newInOut.glade:257 msgid "_Black player:" msgstr "Xogador _negras:" #: glade/newInOut.glade:274 msgid "_White player:" msgstr "Xogador _brancas:" #: glade/newInOut.glade:385 msgid "Players" msgstr "Xogadores" #: glade/newInOut.glade:436 msgid "_Untimed" msgstr "" #: glade/newInOut.glade:475 msgid "Blitz: 5 min" msgstr "" #: glade/newInOut.glade:526 msgid "Rapid: 15 min + 10 sec/move" msgstr "" #: glade/newInOut.glade:575 msgid "Normal: 40 min + 15 sec/move" msgstr "" #: glade/newInOut.glade:684 msgid "_Play Normal chess" msgstr "_Xogar xadrez normal" #: glade/newInOut.glade:724 msgid "Play Fischer Random chess" msgstr "Xogar xadrez Fischer Random" #: glade/newInOut.glade:774 msgid "Play Losers chess" msgstr "" #: glade/newInOut.glade:919 msgid "Open Game" msgstr "Partida aberta" #: glade/newInOut.glade:1162 msgid "Initial Position" msgstr "Posición inicial" #: glade/newInOut.glade:1219 msgid "Enter Game Notation" msgstr "Intoducir notación da partida" #: glade/newInOut.glade:1314 msgid "Halfmove clock" msgstr "" #: glade/newInOut.glade:1327 msgid "En passant line" msgstr "" #: glade/newInOut.glade:1339 msgid "Side to move" msgstr "" #: glade/newInOut.glade:1351 msgid "Move number" msgstr "" #: glade/newInOut.glade:1361 msgid "Black O-O" msgstr "" #: glade/newInOut.glade:1375 msgid "Black O-O-O" msgstr "" #: glade/newInOut.glade:1389 msgid "White O-O-O" msgstr "" #: glade/newInOut.glade:1403 msgid "White O-O" msgstr "" #: glade/promotion.glade:7 msgid "Promotion" msgstr "Promoción" #: glade/promotion.glade:49 lib/pychess/Utils/repr.py:12 msgid "Queen" msgstr "Raíña" #: glade/promotion.glade:95 lib/pychess/Utils/repr.py:12 msgid "Rook" msgstr "Torre" #: glade/promotion.glade:141 lib/pychess/Utils/repr.py:12 msgid "Bishop" msgstr "Alfil" #: glade/promotion.glade:187 lib/pychess/Utils/repr.py:12 msgid "Knight" msgstr "Cabalo" #: glade/promotion.glade:233 lib/pychess/Utils/repr.py:12 msgid "King" msgstr "Rei" #: glade/promotion.glade:265 msgid "Promote pawn to what?" msgstr "A que promove o peón?" #: glade/PyChess.glade:9 msgid "Chess client" msgstr "" #: glade/PyChess.glade:44 msgid "Game information" msgstr "Información da partida" #: glade/PyChess.glade:164 msgid "Event:" msgstr "Actividade:" #: glade/PyChess.glade:178 msgid "Site:" msgstr "Sitio web:" #: glade/PyChess.glade:204 msgid "Round:" msgstr "Ronda:" #: glade/PyChess.glade:237 msgid "White:" msgstr "" #: glade/PyChess.glade:249 msgid "Black:" msgstr "" #: glade/PyChess.glade:302 msgid "Game data" msgstr "Datos da partida" #: glade/PyChess.glade:357 msgid "Date of game" msgstr "Data da partida" #: glade/PyChess.glade:495 msgid "_Game" msgstr "_Partida" #: glade/PyChess.glade:502 msgid "_New Game" msgstr "_Nova Partida" #: glade/PyChess.glade:515 msgid "Play _Internet Chess" msgstr "Xogar xadrez na _rede" #: glade/PyChess.glade:534 msgid "_Load Game" msgstr "_Cargar partida" #: glade/PyChess.glade:550 msgid "Load _Recent Game" msgstr "" #: glade/PyChess.glade:558 msgid "Open _Database" msgstr "" #: glade/PyChess.glade:569 lib/pychess/widgets/newGameDialog.py:615 msgid "Setup Position" msgstr "" #: glade/PyChess.glade:579 msgid "Enter Game _Notation" msgstr "Introducir _notación da partida" #: glade/PyChess.glade:592 msgid "_Save Game" msgstr "_Gardar partida" #: glade/PyChess.glade:606 msgid "Save Game _As" msgstr "Gardar _como..." #: glade/PyChess.glade:624 msgid "Share Game" msgstr "" #: glade/PyChess.glade:630 msgid "_Export Position" msgstr "" #: glade/PyChess.glade:644 msgid "_Analyze Game" msgstr "" #: glade/PyChess.glade:678 msgid "Player _Rating" msgstr "_Cualificación do xogador" #: glade/PyChess.glade:723 msgid "_Edit" msgstr "" #: glade/PyChess.glade:734 msgid "_Copy PGN" msgstr "" #: glade/PyChess.glade:746 msgid "_Copy FEN" msgstr "" #: glade/PyChess.glade:763 msgid "_Engines" msgstr "" #: glade/PyChess.glade:789 msgid "_Actions" msgstr "_Accións" #: glade/PyChess.glade:800 msgid "Offer _Abort" msgstr "Ofrecer i_nterromper" #: glade/PyChess.glade:810 msgid "Offer Ad_journment" msgstr "Ofrecer a_prazamento" #: glade/PyChess.glade:831 msgid "Offer _Pause" msgstr "Ofrecer _pausa" #: glade/PyChess.glade:847 msgid "Offer _Undo" msgstr "Ofrecer _desfacer" #: glade/PyChess.glade:870 msgid "_Call Flag" msgstr "_Chamar bandeira" #: glade/PyChess.glade:890 msgid "Ask to _Move" msgstr "Pedir que _mova" #: glade/PyChess.glade:905 msgid "Auto Call _Flag" msgstr "" #: glade/PyChess.glade:918 msgid "_View" msgstr "_Ver" #: glade/PyChess.glade:925 msgid "_Rotate Board" msgstr "_Rotar taboleiro" #: glade/PyChess.glade:939 msgid "_Fullscreen" msgstr "_Pantalla completa" #: glade/PyChess.glade:952 msgid "Leave _Fullscreen" msgstr "Saír da _pantalla completa" #: glade/PyChess.glade:969 msgid "_Show Sidepanels" msgstr "_Amosar controis laterais" #: glade/PyChess.glade:980 msgid "_Log Viewer" msgstr "_Rexistrar a vista" #: glade/PyChess.glade:997 msgid "_Hint mode" msgstr "_Modo agochado" #: glade/PyChess.glade:1009 msgid "Sp_y mode" msgstr "Modo es_pía" #: glade/PyChess.glade:1024 msgid "_Help" msgstr "_Axuda" #: glade/PyChess.glade:1034 msgid "About Chess" msgstr "Sobre do xadrez" #: glade/PyChess.glade:1043 msgid "How to Play" msgstr "Cómo xogar" #: glade/PyChess.glade:1052 msgid "Translate PyChess" msgstr "Traducir PyChess" #: glade/PyChess.glade:1058 msgid "Tip of the Day" msgstr "Consello do día" #: glade/PyChess.glade:1153 msgid "Default" msgstr "" #: glade/PyChess.glade:1156 msgid "Knights" msgstr "" #: glade/PyChess.glade:1167 lib/pychess/widgets/preferencesDialog.py:349 msgid "Beep" msgstr "Beep" #: glade/PyChess.glade:1170 lib/pychess/widgets/preferencesDialog.py:350 msgid "Select sound file..." msgstr "Seleccionar arquivo de son..." #: glade/PyChess.glade:1173 lib/pychess/widgets/preferencesDialog.py:348 msgid "No sound" msgstr "Silencio" #: glade/PyChess.glade:1180 msgid "Preferences" msgstr "Preferencias" #: glade/PyChess.glade:1218 msgid "The displayed name of the first human player, e.g., John." msgstr "Nome a amosar para o primeiro xogador humano, p.ex., Xoán." #: glade/PyChess.glade:1230 msgid "Name of _first human player:" msgstr "Nome do _primeiro xogador humano:" #: glade/PyChess.glade:1259 msgid "The displayed name of the guest player, e.g., Mary." msgstr "Nome a amosar para o xogador convidado, p.ex., María" #: glade/PyChess.glade:1271 msgid "Name of s_econd human player:" msgstr "Nome do _segundo xogador humano:" #: glade/PyChess.glade:1307 msgid "_Hide tabs when only one game is open" msgstr "_Agochar lapelas cando só hai un xogo aberto" #: glade/PyChess.glade:1312 msgid "" "If set, this hides the tab in the top of the playing window, when it is not " "needed." msgstr "Se se activa, agóchase a lapela da parte superior da xanela cando non se precisa." #: glade/PyChess.glade:1326 msgid "_Use main app closer [x] to close all games" msgstr "" #: glade/PyChess.glade:1331 msgid "" "If set, clicking on main application window closer first time it closes all " "games." msgstr "" #: glade/PyChess.glade:1345 msgid "Auto _rotate board to current human player" msgstr "_Rotar automaticamente o taboleiro cara ao xogador humano actual" #: glade/PyChess.glade:1350 msgid "" "If set, the board will turn after each move, to show the natural view for " "the current player." msgstr "Se se selecciona, o taboleiro xirará tras cada movemento, para amosar a vista natural do xogador actual." #: glade/PyChess.glade:1364 msgid "Auto _promote to queen" msgstr "" #: glade/PyChess.glade:1369 msgid "If set, pawn promotes to queen without promotion dialog selection." msgstr "" #: glade/PyChess.glade:1383 msgid "Face _to Face display mode" msgstr "Modo de vista \"Cara a cara\"" #: glade/PyChess.glade:1388 msgid "" "If set, the black pieces will be head down, suitable for playing against " "friends on mobile devices." msgstr "Se se selecciona, as pezas negras estarán boca abaixo, axeitado para xogar contra amigos en dispositivos móbeis." #: glade/PyChess.glade:1402 msgid "Sho_w cords" msgstr "Amosar coordenadas" #: glade/PyChess.glade:1407 msgid "" "If set, the playing board will display labels and ranks for each chess " "field. These are usable in chess notation." msgstr "" #: glade/PyChess.glade:1421 msgid "Show _captured pieces" msgstr "" #: glade/PyChess.glade:1426 msgid "If set, the captured figurines will be shown next to the board." msgstr "" #: glade/PyChess.glade:1440 msgid "Prefer figures in _notation" msgstr "Mellor figuras nas anotacións" #: glade/PyChess.glade:1445 msgid "" "If set, PyChess will use figures to express moved pieces, rather than " "uppercase letters." msgstr "" #: glade/PyChess.glade:1464 msgid "If set, PyChess will colorize suboptimal analyzed moves with red." msgstr "" #: glade/PyChess.glade:1477 msgid "Show elapsed move times" msgstr "" #: glade/PyChess.glade:1482 msgid "If set, the elapsed time that a player used for the move is shown." msgstr "" #: glade/PyChess.glade:1500 msgid "If set, the hint analyzer engine evaluation value is shown." msgstr "" #: glade/PyChess.glade:1526 msgid "General Options" msgstr "" #: glade/PyChess.glade:1560 msgid "F_ull board animation" msgstr "Animación completa do taboleiro" #: glade/PyChess.glade:1565 msgid "Animate pieces, board rotation and more. Use this on fast machines." msgstr "Animar pezas, rotar taboleiro e máis. Usar es máquinas rápidas." #: glade/PyChess.glade:1579 msgid "Only animate _moves" msgstr "Animar soamente movementos." #: glade/PyChess.glade:1584 msgid "Only animate piece moves." msgstr "Animar so movementos de pezas." #: glade/PyChess.glade:1599 msgid "No _animation" msgstr "Sen animación" #: glade/PyChess.glade:1604 msgid "Never use animation. Use this on slow machines." msgstr "Non usar nunca animación. Usar en máquinas lentas." #: glade/PyChess.glade:1632 msgid "Animation" msgstr "Animación" #: glade/PyChess.glade:1651 msgid "_General" msgstr "Xeral" #: glade/PyChess.glade:1692 msgid "Use opening _book" msgstr "" #: glade/PyChess.glade:1697 msgid "If set, PyChess will suggest best opening moves on hint panel." msgstr "" #: glade/PyChess.glade:1724 msgid "Polyglot book file:" msgstr "" #: glade/PyChess.glade:1768 msgid "Use _local tablebases" msgstr "" #: glade/PyChess.glade:1773 msgid "" "If set, PyChess will show game results for different moves in positions containing 6 or less pieces.\n" "You can download tablebase files from:\n" "http://www.olympuschess.com/egtb/gaviota/" msgstr "" #: glade/PyChess.glade:1803 msgid "Gaviota TB path:" msgstr "" #: glade/PyChess.glade:1843 msgid "Use _online tablebases" msgstr "" #: glade/PyChess.glade:1848 msgid "" "If set, PyChess will show game results for different moves in positions containing 6 or less pieces.\n" "It will search positions from http://www.k4it.de/" msgstr "" #: glade/PyChess.glade:1870 msgid "Opening, endgame" msgstr "" #: glade/PyChess.glade:1904 msgid "Use _analyzer" msgstr "Usar analizador" #: glade/PyChess.glade:1946 msgid "" "The analyzer will run in the background and analyze the game. This is " "necessary for the hint mode to work" msgstr "" #: glade/PyChess.glade:1978 msgid "Use _inverted analyzer" msgstr "Usar analizador inverso" #: glade/PyChess.glade:2020 msgid "" "The inverse analyzer will analyze the game as if your opponent was to move. " "This is necessary for the spy mode to work" msgstr "" #: glade/PyChess.glade:2096 msgid "Analyzing" msgstr "Analizando" #: glade/PyChess.glade:2118 msgid "_Hints" msgstr "" #: glade/PyChess.glade:2263 msgid "Uninstall" msgstr "Desinstalar" #: glade/PyChess.glade:2317 msgid "Ac_tive" msgstr "Ac_tivar" #: glade/PyChess.glade:2367 msgid "Installed Sidepanels" msgstr "Paneis laterais instalados" #: glade/PyChess.glade:2382 msgid "Side_panels" msgstr "Paneis laterais" #: glade/PyChess.glade:2440 msgid "Light Squares :" msgstr "" #: glade/PyChess.glade:2479 msgid "Dark Squares :" msgstr "" #: glade/PyChess.glade:2515 msgid "Reset Default Colours" msgstr "" #: glade/PyChess.glade:2551 msgid "Board Colours" msgstr "" #: glade/PyChess.glade:2610 msgid "Chess Sets" msgstr "" #: glade/PyChess.glade:2634 msgid "Themes" msgstr "" #: glade/PyChess.glade:2659 msgid "_Use sounds in PyChess" msgstr "Usar sons en PyChess" #: glade/PyChess.glade:2982 msgid "A player _checks:" msgstr "" #: glade/PyChess.glade:2997 msgid "A player _moves:" msgstr "_Movementos dun xogador:" #: glade/PyChess.glade:3010 msgid "Game is _drawn:" msgstr "Partida en _táboas:" #: glade/PyChess.glade:3025 msgid "Game is _lost:" msgstr "Partida perdida:" #: glade/PyChess.glade:3040 msgid "Game is _won:" msgstr "Partida gañada:" #: glade/PyChess.glade:3055 msgid "A player c_aptures:" msgstr "" #: glade/PyChess.glade:3084 msgid "Game is _set-up:" msgstr "" #: glade/PyChess.glade:3136 msgid "_Observed moves:" msgstr "Movementos observados:" #: glade/PyChess.glade:3151 msgid "Observed _ends:" msgstr "Finais observados:" #: glade/PyChess.glade:3265 msgid "Short on _time:" msgstr "" #: glade/PyChess.glade:3317 msgid "_Invalid move:" msgstr "" #: glade/PyChess.glade:3369 msgid "Activate alarm when _remaining sec is:" msgstr "" #: glade/PyChess.glade:3416 msgid "Play Sound When..." msgstr "Facer sonar son cando.." #: glade/PyChess.glade:3438 msgid "_Sounds" msgstr "Sons" #: glade/PyChess.glade:3463 msgid "_Auto save finished games" msgstr "" #: glade/PyChess.glade:3497 msgid "Save files to:" msgstr "" #: glade/PyChess.glade:3525 msgid "Use name format:" msgstr "" #: glade/PyChess.glade:3569 msgid "Names: #n1, #n2" msgstr "" #: glade/PyChess.glade:3582 msgid "Year, month, day: #y, #m, #d" msgstr "" #: glade/PyChess.glade:3619 msgid "Save elapsed move _times" msgstr "" #: glade/PyChess.glade:3644 msgid "Save analyzing engine _evaluation values" msgstr "" #: glade/PyChess.glade:3669 msgid "Save _own games only" msgstr "" #: glade/PyChess.glade:3698 msgid "Save" msgstr "" #: glade/PyChess.glade:3728 msgid "uci" msgstr "" #: glade/PyChess.glade:3731 msgid "xboard" msgstr "" #: glade/PyChess.glade:3739 msgid "Manage engines" msgstr "" #: glade/PyChess.glade:3837 msgid "Command:" msgstr "" #: glade/PyChess.glade:3851 msgid "Protocol:" msgstr "" #: glade/PyChess.glade:3865 msgid "Parameters:" msgstr "" #: glade/PyChess.glade:3878 msgid "Command line parameters needed by the engine." msgstr "" #: glade/PyChess.glade:3903 msgid "" "Engines use uci or xboard communication protocol to talk to the GUI.\n" "If it can use both you can set here which one you like." msgstr "" #: glade/PyChess.glade:3929 msgid "Working directory:" msgstr "" #: glade/PyChess.glade:3942 msgid "The directory where the engine will be started from." msgstr "" #: glade/saveGamesDialog.glade:7 msgid "Quit PyChess" msgstr "Saír de PyChess" #: glade/saveGamesDialog.glade:24 lib/pychess/widgets/ionest.py:424 msgid "Close _without Saving" msgstr "Pechar sen gardar" #: glade/saveGamesDialog.glade:83 msgid "_Save %d documents" msgstr "Gardar %d documentos" #: glade/saveGamesDialog.glade:141 msgid "" "There are %d games with unsaved moves. Save changes before " "closing?" msgstr "Hai %d xogos sen cambios gardados. Quere gardar os cambios antes de saír?" #: glade/saveGamesDialog.glade:161 msgid "Select the games you want to save:" msgstr "Selecciona as partidas que queres gardar:" #: glade/saveGamesDialog.glade:204 msgid "If you don't save, new changes to your games will be permanently lost." msgstr "Se non garda, os novos cambios perderanse definitivamente." #: glade/taskers.glade:126 msgid "_Opponent:" msgstr "Adversario:" #: glade/taskers.glade:154 msgid "_Your Color:" msgstr "A túa cor:" #: glade/taskers.glade:219 msgid "_Start Game" msgstr "Comezar partida" #: glade/taskers.glade:338 msgid "Log on as G_uest" msgstr "Entrar como hóspede" #: glade/taskers.glade:410 msgid "Ha_ndle:" msgstr "Identificador" #: glade/taskers.glade:469 msgid "_Connect to server" msgstr "" #: glade/tipoftheday.glade:7 msgid "Tip Of The day" msgstr "Consello do día" #: glade/tipoftheday.glade:62 msgid "Show tips at startup" msgstr "Amosar consellos ao iniciar" #: lib/pychess/Main.py:302 msgid "http://en.wikipedia.org/wiki/Chess" msgstr "http://en.wikipedia.org/wiki/Chess" #: lib/pychess/Main.py:305 msgid "http://en.wikipedia.org/wiki/Rules_of_chess" msgstr "http://en.wikipedia.org/wiki/Rules_of_chess" #: lib/pychess/Main.py:370 lib/pychess/widgets/gamenanny.py:80 msgid "Welcome" msgstr "Benvido/a" #: lib/pychess/Database/gamelist.py:40 msgid "Id" msgstr "" #: lib/pychess/Database/gamelist.py:40 msgid "W Elo" msgstr "" #: lib/pychess/Database/gamelist.py:40 msgid "B Elo" msgstr "" #: lib/pychess/Database/gamelist.py:41 msgid "Result" msgstr "" #: lib/pychess/Database/gamelist.py:41 msgid "Event" msgstr "" #: lib/pychess/Database/gamelist.py:41 msgid "Site" msgstr "" #: lib/pychess/Database/gamelist.py:41 msgid "Round" msgstr "" #: lib/pychess/Database/gamelist.py:41 msgid "Date" msgstr "" #: lib/pychess/Database/gamelist.py:41 msgid "ECO" msgstr "" #: lib/pychess/Database/gamelist.py:62 msgid "PyChess Game Database" msgstr "" #: lib/pychess/Database/PgnImport.py:188 #, python-format msgid "The game #%s can't be loaded, because of an error parsing FEN" msgstr "" #: lib/pychess/ic/FICSConnection.py:139 msgid "The connection was broken - got \"end of file\" message" msgstr "Perdeuse a conexión - ver mensaxe" #: lib/pychess/ic/FICSConnection.py:140 #, python-format msgid "'%s' is not a registered name" msgstr "'%s' non é un nome rexistrado" #: lib/pychess/ic/FICSConnection.py:141 msgid "" "The entered password was invalid.\n" "If you forgot your password, go to http://www.freechess.org/password to request a new one over email." msgstr "" #: lib/pychess/ic/FICSConnection.py:145 #, python-format msgid "Sorry '%s' is already logged in" msgstr "" #: lib/pychess/ic/FICSConnection.py:146 #, python-format msgid "'%s' is a registered name. If it is yours, type the password." msgstr "" #: lib/pychess/ic/FICSConnection.py:147 msgid "" "Due to abuse problems, guest connections have been prevented.\n" "You can still register on http://www.freechess.org" msgstr "" #: lib/pychess/ic/FICSConnection.py:166 msgid "Connecting to server" msgstr "Conectando co servidor" #: lib/pychess/ic/FICSConnection.py:181 msgid "Logging on to server" msgstr "Iniciando sesión no servidor" #: lib/pychess/ic/FICSConnection.py:239 msgid "Setting up environment" msgstr "Preparando entorno" #: lib/pychess/ic/FICSObjects.py:35 lib/pychess/ic/FICSObjects.py:47 #, python-format msgid "%(player)s is %(status)s" msgstr "" #: lib/pychess/ic/FICSObjects.py:46 msgid "not playing" msgstr "" #: lib/pychess/ic/FICSObjects.py:54 lib/pychess/ic/ICLounge.py:1136 #: lib/pychess/ic/ICLounge.py:2209 lib/pychess/ic/__init__.py:98 #: lib/pychess/widgets/newGameDialog.py:153 msgid "Blitz" msgstr "Partida rápida" #: lib/pychess/ic/FICSObjects.py:58 lib/pychess/ic/ICLounge.py:1137 #: lib/pychess/ic/ICLounge.py:2209 lib/pychess/ic/__init__.py:100 msgid "Lightning" msgstr "Lóstrego" #: lib/pychess/ic/FICSObjects.py:60 lib/pychess/Variants/atomic.py:15 msgid "Atomic" msgstr "" #: lib/pychess/ic/FICSObjects.py:62 lib/pychess/Variants/bughouse.py:9 msgid "Bughouse" msgstr "" #: lib/pychess/ic/FICSObjects.py:64 lib/pychess/Variants/crazyhouse.py:9 msgid "Crazyhouse" msgstr "" #: lib/pychess/ic/FICSObjects.py:66 lib/pychess/Variants/losers.py:9 msgid "Losers" msgstr "" #: lib/pychess/ic/FICSObjects.py:68 lib/pychess/Variants/suicide.py:12 msgid "Suicide" msgstr "" #: lib/pychess/ic/FICSObjects.py:70 lib/pychess/ic/__init__.py:129 msgid "Wild" msgstr "" #: lib/pychess/ic/FICSObjects.py:117 msgid "Online" msgstr "Conectado" #: lib/pychess/ic/FICSObjects.py:118 lib/pychess/ic/FICSObjects.py:143 msgid "Offline" msgstr "Desconectado" #: lib/pychess/ic/FICSObjects.py:133 msgid "Available" msgstr "" #: lib/pychess/ic/FICSObjects.py:135 msgid "Playing" msgstr "" #: lib/pychess/ic/FICSObjects.py:141 msgid "Idle" msgstr "" #: lib/pychess/ic/FICSObjects.py:145 msgid "Examining" msgstr "" #: lib/pychess/ic/FICSObjects.py:147 msgid "Not Available" msgstr "" #: lib/pychess/ic/FICSObjects.py:149 msgid "Running Simul Match" msgstr "" #: lib/pychess/ic/FICSObjects.py:151 msgid "In Tournament" msgstr "" #: lib/pychess/ic/FICSObjects.py:308 lib/pychess/ic/FICSObjects.py:492 #: lib/pychess/ic/ICLounge.py:2278 msgid "Unrated" msgstr "Sen cualificar" #: lib/pychess/ic/FICSObjects.py:491 lib/pychess/ic/ICLounge.py:670 #: lib/pychess/ic/ICLounge.py:1358 lib/pychess/ic/ICLounge.py:1558 #: lib/pychess/ic/ICLounge.py:2113 msgid "Rated" msgstr "" #: lib/pychess/ic/FICSObjects.py:498 lib/pychess/ic/ICLounge.py:2098 #, python-format msgid "%d min" msgstr "%d min" #: lib/pychess/ic/FICSObjects.py:500 #, python-format msgid " + %d sec" msgstr "" #: lib/pychess/ic/FICSObjects.py:517 #, python-format msgid "%(player)s plays %(color)s" msgstr "" #: lib/pychess/ic/FICSObjects.py:519 lib/pychess/ic/ICLounge.py:909 msgid "white" msgstr "" #: lib/pychess/ic/FICSObjects.py:519 lib/pychess/ic/ICLounge.py:909 msgid "black" msgstr "" #: lib/pychess/ic/FICSObjects.py:565 msgid "This is a continuation of an adjourned match" msgstr "" #: lib/pychess/ic/FICSObjects.py:654 msgid "Opponent Rating" msgstr "" #: lib/pychess/ic/FICSObjects.py:656 msgid "Manual Accept" msgstr "" #: lib/pychess/ic/FICSObjects.py:810 msgid "Private" msgstr "Privado" #: lib/pychess/ic/FICSObjects.py:930 lib/pychess/ic/ICLounge.py:527 #: lib/pychess/Savers/epd.py:139 msgid "Unknown" msgstr "Descoñecido" #: lib/pychess/ic/ICLogon.py:159 lib/pychess/ic/ICLogon.py:165 msgid "Connection Error" msgstr "Erro na conexión" #: lib/pychess/ic/ICLogon.py:161 msgid "Log on Error" msgstr "Erro ó iniciar sesión" #: lib/pychess/ic/ICLogon.py:163 msgid "Connection was closed" msgstr "Pechouse a conexión" #: lib/pychess/ic/ICLogon.py:169 msgid "Address Error" msgstr "Erro no enderezo" #: lib/pychess/ic/ICLogon.py:172 msgid "Auto-logout" msgstr "Peche automático de sesión" #: lib/pychess/ic/ICLogon.py:173 msgid "You have been logged out because you were idle more than 60 minutes" msgstr "Pechouse a túa sesión porque estiveches ausente máis de 60 minutos" #: lib/pychess/ic/ICLounge.py:222 msgid "You have to set kibitz on to see bot messages here." msgstr "" #: lib/pychess/ic/ICLounge.py:241 msgid "" "You may only have 3 outstanding seeks at the same time. If you want to add a" " new seek you must clear your currently active seeks. Clear your seeks?" msgstr "" #: lib/pychess/ic/ICLounge.py:258 msgid "You can't touch this! You are examining a game." msgstr "" #: lib/pychess/ic/ICLounge.py:270 msgid " has declined your offer for a match" msgstr "" #: lib/pychess/ic/ICLounge.py:283 msgid " is censoring you" msgstr "" #: lib/pychess/ic/ICLounge.py:296 msgid " noplay listing you" msgstr "" #: lib/pychess/ic/ICLounge.py:311 msgid " uses a formula not fitting your match request:" msgstr "" #: lib/pychess/ic/ICLounge.py:325 msgid "to manual accept" msgstr "" #: lib/pychess/ic/ICLounge.py:327 msgid "to automatic accept" msgstr "" #: lib/pychess/ic/ICLounge.py:329 msgid "rating range now" msgstr "" #: lib/pychess/ic/ICLounge.py:330 msgid "Seek updated" msgstr "" #: lib/pychess/ic/ICLounge.py:342 msgid "Your seeks have been removed" msgstr "" #: lib/pychess/ic/ICLounge.py:363 msgid " has arrived" msgstr "" #: lib/pychess/ic/ICLounge.py:370 msgid " has departed" msgstr "" #: lib/pychess/ic/ICLounge.py:374 msgid " is present" msgstr "" #: lib/pychess/ic/ICLounge.py:391 sidepanel/chatPanel.py:17 msgid "Chat" msgstr "Chat" #: lib/pychess/ic/ICLounge.py:472 sidepanel/bookPanel.py:366 msgid "Win" msgstr "Gañar" #: lib/pychess/ic/ICLounge.py:472 sidepanel/bookPanel.py:360 msgid "Draw" msgstr "Táboas" #: lib/pychess/ic/ICLounge.py:472 sidepanel/bookPanel.py:363 msgid "Loss" msgstr "Perder" #: lib/pychess/ic/ICLounge.py:482 msgid "" "On FICS, your \"Wild\" rating encompasses all of the following variants at " "all time controls:\n" msgstr "" #: lib/pychess/ic/ICLounge.py:494 msgid "Sanctions" msgstr "" #: lib/pychess/ic/ICLounge.py:499 msgid "Email" msgstr "Email" #: lib/pychess/ic/ICLounge.py:504 msgid "Spent" msgstr "Gasto" #: lib/pychess/ic/ICLounge.py:506 msgid "online in total" msgstr "conectado en total" #: lib/pychess/ic/ICLounge.py:512 msgid "Ping" msgstr "Ping" #: lib/pychess/ic/ICLounge.py:517 msgid "Connecting" msgstr "Conectando" #: lib/pychess/ic/ICLounge.py:544 msgid "" "You are currently logged in as a guest.\n" "A guest can't play rated games and therefore isn't able to play as many of the types of matches offered as a registered user. To register an account, go to http://www.freechess.org/Register/index.html." msgstr "" #: lib/pychess/ic/ICLounge.py:669 lib/pychess/ic/ICLounge.py:1136 msgid "Name" msgstr "Nome" #: lib/pychess/ic/ICLounge.py:670 lib/pychess/ic/ICLounge.py:1358 #: lib/pychess/ic/ICLounge.py:1558 msgid "Type" msgstr "Tipo" #: lib/pychess/ic/ICLounge.py:670 lib/pychess/ic/ICLounge.py:1558 msgid "Clock" msgstr "Reloxo" #: lib/pychess/ic/ICLounge.py:726 lib/pychess/ic/ICLounge.py:923 #: lib/pychess/Players/Human.py:250 msgid "Accept" msgstr "" #: lib/pychess/ic/ICLounge.py:728 msgid "Assess" msgstr "" #: lib/pychess/ic/ICLounge.py:734 msgid "Archived" msgstr "" #: lib/pychess/ic/ICLounge.py:848 #, python-format msgid "Active seeks: %d" msgstr "Buscas activas: %d" #: lib/pychess/ic/ICLounge.py:897 #, python-format msgid "" " would like to resume your adjourned %(time)s %(gametype)s " "game." msgstr "" #: lib/pychess/ic/ICLounge.py:902 #, python-format msgid "" " challenges you to a %(time)s %(rated)s %(gametype)s game" msgstr "" #: lib/pychess/ic/ICLounge.py:907 #, python-format msgid " where %(player)s plays %(color)s." msgstr "" #: lib/pychess/ic/ICLounge.py:924 lib/pychess/Players/Human.py:251 msgid "Decline" msgstr "" #: lib/pychess/ic/ICLounge.py:1065 msgid " min" msgstr " min" #: lib/pychess/ic/ICLounge.py:1137 msgid "Status" msgstr "" #: lib/pychess/ic/ICLounge.py:1203 lib/pychess/ic/ICLounge.py:1233 #, python-format msgid "Players: %d" msgstr "" #: lib/pychess/ic/ICLounge.py:1469 #, python-format msgid "Games running: %d" msgstr "Xogos en proceso: %d" #: lib/pychess/ic/ICLounge.py:1559 msgid "Date/Time" msgstr "Data/Hora" #: lib/pychess/ic/ICLounge.py:1614 #, python-format msgid "" " with whom you have an adjourned %(timecontrol)s %(gametype)s " "game is online." msgstr "" #: lib/pychess/ic/ICLounge.py:1635 msgid "Request Continuation" msgstr "" #: lib/pychess/ic/ICLounge.py:1637 msgid "Examine Adjourned Game" msgstr "" #: lib/pychess/ic/ICLounge.py:1965 msgid "" "The chain button is disabled because you are logged in as a guest. Guests " "can't establish ratings, and the chain button's state has no effect when " "there is no rating to which to tie \"Opponent Strength\" to" msgstr "" #: lib/pychess/ic/ICLounge.py:2006 msgid "Challenge: " msgstr "Reto: " #: lib/pychess/ic/ICLounge.py:2044 msgid "If set you can refuse players accepting your seek" msgstr "" #: lib/pychess/ic/ICLounge.py:2048 lib/pychess/ic/ICLounge.py:2051 msgid "This option is not applicable because you're challenging a player" msgstr "Esta opción non é aplicábel xa que está a desafiar a un xogador" #: lib/pychess/ic/ICLounge.py:2064 msgid "Edit Seek: " msgstr "Editar busca: " #: lib/pychess/ic/ICLounge.py:2095 #, python-format msgid "%(minutes)d min + %(gain)d sec/move" msgstr "" #: lib/pychess/ic/ICLounge.py:2116 msgid "Manual" msgstr "Manual" #: lib/pychess/ic/ICLounge.py:2256 msgid "Any strength" msgstr "" #: lib/pychess/ic/ICLounge.py:2308 msgid "You can't play rated games because you are logged in as a guest" msgstr "Non pode xogar partidas cualificadas xa que entrou como hóspede" #: lib/pychess/ic/ICLounge.py:2312 msgid "You can't play rated games because \"Untimed\" is checked, " msgstr "Non pode xogar partidas cualificadas xa que está seleccionada a opción «Sen tempo», " #: lib/pychess/ic/ICLounge.py:2313 msgid "and on FICS, untimed games can't be rated" msgstr "e en FICS, as partidas sen tempo non se puntúan" #: lib/pychess/ic/ICLounge.py:2317 msgid "This option is not available because you're challenging a guest, " msgstr "Esta opción non está dispoñible porque estás a retar a un invitado, " #: lib/pychess/ic/ICLounge.py:2318 msgid "and guests can't play rated games" msgstr "e os convidados non poden xogar partidas cualificadas" #: lib/pychess/ic/ICLounge.py:2332 lib/pychess/Variants/shuffle.py:16 #: lib/pychess/widgets/newGameDialog.py:266 msgid "Shuffle" msgstr "" #: lib/pychess/ic/ICLounge.py:2333 lib/pychess/widgets/newGameDialog.py:267 msgid "Other (standard rules)" msgstr "" #: lib/pychess/ic/ICLounge.py:2334 lib/pychess/widgets/newGameDialog.py:268 msgid "Other (non standard rules)" msgstr "" #: lib/pychess/ic/ICLounge.py:2421 msgid "You can't select a variant because \"Untimed\" is checked, " msgstr "Non podes seleccionar unha variante xa que está marcado «Sen tempo», " #: lib/pychess/ic/ICLounge.py:2422 msgid "and on FICS, untimed games have to be normal chess rules" msgstr "e en FICS, as partidas sen tempo teñen que seguir as regras normais do xadrez" #: lib/pychess/ic/ICLounge.py:2454 msgid "Change Tolerance" msgstr "Tolerancia ó cambio" #: lib/pychess/ic/__init__.py:102 msgid "Examined" msgstr "" #: lib/pychess/ic/__init__.py:103 msgid "Other" msgstr "Outros" #: lib/pychess/ic/__init__.py:182 msgid "Administrator" msgstr "Administrador" #: lib/pychess/ic/__init__.py:182 msgid "Blindfold Account" msgstr "" #: lib/pychess/ic/__init__.py:182 msgid "Computer" msgstr "" #: lib/pychess/ic/__init__.py:183 msgid "Team Account" msgstr "Conta de equipo" #: lib/pychess/ic/__init__.py:183 msgid "Unregistered" msgstr "" #: lib/pychess/ic/__init__.py:183 msgid "Chess Advisor" msgstr "" #: lib/pychess/ic/__init__.py:184 msgid "Service Representative" msgstr "" #: lib/pychess/ic/__init__.py:184 msgid "Tournament Director" msgstr "Director de torneo" #: lib/pychess/ic/__init__.py:184 msgid "Mamer Manager" msgstr "" #: lib/pychess/ic/__init__.py:185 msgid "Grand Master" msgstr "Gran Mestre" #: lib/pychess/ic/__init__.py:185 msgid "International Master" msgstr "Mestre Internacional" #: lib/pychess/ic/__init__.py:185 msgid "FIDE Master" msgstr "" #: lib/pychess/ic/__init__.py:186 msgid "Woman Grand Master" msgstr "" #: lib/pychess/ic/__init__.py:186 msgid "Woman International Master" msgstr "" #: lib/pychess/ic/__init__.py:186 msgid "Woman FIDE Master" msgstr "" #: lib/pychess/ic/__init__.py:187 msgid "Dummy Account" msgstr "" #: lib/pychess/ic/__init__.py:191 msgid "*" msgstr "" #: lib/pychess/ic/__init__.py:191 lib/pychess/Utils/repr.py:14 msgid "B" msgstr "A" #: lib/pychess/ic/__init__.py:191 msgid "C" msgstr "" #: lib/pychess/ic/__init__.py:192 msgid "T" msgstr "" #: lib/pychess/ic/__init__.py:192 msgid "U" msgstr "" #: lib/pychess/ic/__init__.py:192 msgid "CA" msgstr "" #: lib/pychess/ic/__init__.py:193 msgid "SR" msgstr "" #: lib/pychess/ic/__init__.py:193 msgid "TD" msgstr "" #: lib/pychess/ic/__init__.py:193 msgid "TM" msgstr "" #: lib/pychess/ic/__init__.py:194 msgid "GM" msgstr "" #: lib/pychess/ic/__init__.py:194 msgid "IM" msgstr "" #: lib/pychess/ic/__init__.py:194 msgid "FM" msgstr "" #: lib/pychess/ic/__init__.py:195 msgid "WGM" msgstr "" #: lib/pychess/ic/__init__.py:195 msgid "WIM" msgstr "" #: lib/pychess/ic/__init__.py:195 msgid "WFM" msgstr "" #: lib/pychess/ic/__init__.py:195 msgid "D" msgstr "" #: lib/pychess/ic/__init__.py:195 msgid "H" msgstr "" #: lib/pychess/ic/__init__.py:195 msgid "CM" msgstr "" #: lib/pychess/ic/__init__.py:195 msgid "FA" msgstr "" #: lib/pychess/ic/__init__.py:195 msgid "NM" msgstr "" #: lib/pychess/Players/CECPEngine.py:857 #, python-format msgid "The engine %s reports an error:" msgstr "" #: lib/pychess/Players/Human.py:20 msgid "Your opponent has offered you a draw." msgstr "" #: lib/pychess/Players/Human.py:21 msgid "" "Your opponent has offered you a draw. If you accept this offer, the game " "will end with a score of 1/2 - 1/2." msgstr "" #: lib/pychess/Players/Human.py:23 msgid "Your opponent wants to abort the game." msgstr "" #: lib/pychess/Players/Human.py:24 msgid "" "Your opponent has asked that the game be aborted. If you accept this offer, " "the game will end with no rating change." msgstr "" #: lib/pychess/Players/Human.py:26 msgid "Your opponent wants to adjourn the game." msgstr "" #: lib/pychess/Players/Human.py:27 msgid "" "Your opponent has asked that the game be adjourned. If you accept this " "offer, the game will be adjourned and you can resume it later (when your " "opponent is online and both players agree to resume)." msgstr "" #: lib/pychess/Players/Human.py:29 #, python-format msgid "Your opponent wants to undo %s move(s)." msgstr "" #: lib/pychess/Players/Human.py:30 #, python-format msgid "" "Your opponent has asked that the last %s move(s) be undone. If you accept " "this offer, the game will continue from the earlier position." msgstr "" #: lib/pychess/Players/Human.py:32 msgid "Your opponent wants to pause the game." msgstr "" #: lib/pychess/Players/Human.py:33 msgid "" "Your opponent has asked that the game be paused. If you accept this offer, " "the game clock will be paused until both players agree to resume the game." msgstr "" #: lib/pychess/Players/Human.py:35 msgid "Your opponent wants to resume the game." msgstr "" #: lib/pychess/Players/Human.py:36 msgid "" "Your opponent has asked that the game be resumed. If you accept this offer, " "the game clock will continue from where it was paused." msgstr "" #: lib/pychess/Players/Human.py:40 msgid "The resignation" msgstr "" #: lib/pychess/Players/Human.py:41 msgid "The flag call" msgstr "" #: lib/pychess/Players/Human.py:42 msgid "The draw offer" msgstr "A oferta de táboas" #: lib/pychess/Players/Human.py:43 msgid "The abort offer" msgstr "A oferta de abortar" #: lib/pychess/Players/Human.py:44 msgid "The adjourn offer" msgstr "A oferta de táboas" #: lib/pychess/Players/Human.py:45 msgid "The pause offer" msgstr "A oferta de pausa" #: lib/pychess/Players/Human.py:46 msgid "The resume offer" msgstr "A oferta de reanudación" #: lib/pychess/Players/Human.py:47 msgid "The offer to switch sides" msgstr "O oferta de intercambiar lado" #: lib/pychess/Players/Human.py:48 msgid "The takeback offer" msgstr "" #: lib/pychess/Players/Human.py:52 msgid "resign" msgstr "rechazada" #: lib/pychess/Players/Human.py:53 msgid "call your opponents flag" msgstr "" #: lib/pychess/Players/Human.py:54 msgid "offer a draw" msgstr "ofrecer táboas" #: lib/pychess/Players/Human.py:55 msgid "offer an abort" msgstr "ofrecer abortar" #: lib/pychess/Players/Human.py:56 msgid "offer to adjourn" msgstr "ofrecer aprazamento" #: lib/pychess/Players/Human.py:57 msgid "offer a pause" msgstr "ofrecer unha pausa" #: lib/pychess/Players/Human.py:58 msgid "offer to resume" msgstr "ofrecer a reanudación" #: lib/pychess/Players/Human.py:59 msgid "offer to switch sides" msgstr "ofrecer intercambiar lados" #: lib/pychess/Players/Human.py:60 msgid "offer a takeback" msgstr "" #: lib/pychess/Players/Human.py:61 msgid "ask your opponent to move" msgstr "pedirlle ó adversario que mova peza" #: lib/pychess/Players/Human.py:66 msgid "Your opponent is not out of time." msgstr "O teu advesario non finalizou o tempo." #: lib/pychess/Players/Human.py:68 msgid "The clock hasn't been started yet." msgstr "O reloxo non se iniciou aínda." #: lib/pychess/Players/Human.py:70 msgid "You can't switch colors during the game." msgstr "Non podes intercambiar cores durante a partida." #: lib/pychess/Players/Human.py:72 msgid "You have tried to undo too many moves." msgstr "Intentaches desfacer demasiados movementos." #: lib/pychess/Players/Human.py:180 msgid "Your opponent asks you to hurry!" msgstr "O teu adversario quere que apures!" #: lib/pychess/Players/Human.py:181 msgid "" "Generally this means nothing, as the game is time-based, but if you want to " "please your opponent, perhaps you should get going." msgstr "" #: lib/pychess/Players/Human.py:259 #, python-format msgid "%s was declined by your opponent" msgstr "" #: lib/pychess/Players/Human.py:260 #, python-format msgid "Resend %s?" msgstr "" #: lib/pychess/Players/Human.py:267 msgid "Resend" msgstr "" #: lib/pychess/Players/Human.py:275 #, python-format msgid "%s was withdrawn by your opponent" msgstr "" #: lib/pychess/Players/Human.py:276 msgid "Your opponent seems to have changed their mind." msgstr "" #: lib/pychess/Players/Human.py:290 #, python-format msgid "Unable to accept %s" msgstr "" #: lib/pychess/Players/Human.py:291 msgid "Probably because it has been withdrawn." msgstr "" #: lib/pychess/Players/Human.py:298 #, python-format msgid "%s returns an error" msgstr "%s devolveu un erro" #: lib/pychess/Savers/chessalpha2.py:12 msgid "Chess Alpha 2 Diagram" msgstr "" #: lib/pychess/Savers/chesspastebin.py:39 msgid "Game shared at " msgstr "" #: lib/pychess/Savers/chesspastebin.py:41 msgid "(Link is available on clipboard.)" msgstr "" #: lib/pychess/Savers/database.py:19 msgid "PyChess database" msgstr "" #: lib/pychess/Savers/epd.py:12 msgid "Chess Position" msgstr "Posición do xadrez" #: lib/pychess/Savers/fen.py:12 msgid "Simple Chess Position" msgstr "" #: lib/pychess/Savers/fen.py:44 lib/pychess/Savers/pgn.py:329 msgid "The game can't be loaded, because of an error parsing FEN" msgstr "" #: lib/pychess/Savers/pgnbase.py:100 #, python-format msgid "" "The game can't be read to end, because of an error parsing move %(moveno)s " "'%(notation)s'." msgstr "" #: lib/pychess/Savers/pgnbase.py:102 #, python-format msgid "The move failed because %s." msgstr "O movemento fallou porque %s." #: lib/pychess/Savers/pgnbase.py:110 #, python-format msgid "Error parsing move %(moveno)s %(mstr)s" msgstr "" #: lib/pychess/Savers/pgn.py:28 msgid "Chess Game" msgstr "Partida de xadrez" #: lib/pychess/Savers/pgn.py:362 msgid "Invalid move." msgstr "" #: lib/pychess/Savers/png.py:15 msgid "Png image" msgstr "" #: lib/pychess/System/ping.py:31 msgid "Destination Host Unreachable" msgstr "" #: lib/pychess/System/ping.py:74 msgid "Died" msgstr "" #: lib/pychess/Utils/GameModel.py:147 msgid "Local Event" msgstr "Evento local" #: lib/pychess/Utils/GameModel.py:148 msgid "Local Site" msgstr "" #: lib/pychess/Utils/repr.py:12 msgid "Pawn" msgstr "Peón" #: lib/pychess/Utils/repr.py:14 msgid "P" msgstr "P" #: lib/pychess/Utils/repr.py:14 msgid "N" msgstr "C" #: lib/pychess/Utils/repr.py:14 msgid "R" msgstr "T" #: lib/pychess/Utils/repr.py:14 msgid "Q" msgstr "Ra" #: lib/pychess/Utils/repr.py:14 msgid "K" msgstr "Re" #: lib/pychess/Utils/repr.py:17 msgid "The game ended in a draw" msgstr "A partida quedou en táboas" #: lib/pychess/Utils/repr.py:18 #, python-format msgid "%(white)s won the game" msgstr "%(white)s gaña a partida" #: lib/pychess/Utils/repr.py:19 #, python-format msgid "%(black)s won the game" msgstr "%(black)s gaña a partida" #: lib/pychess/Utils/repr.py:20 msgid "The game has been killed" msgstr "Finalizouse a partida" #: lib/pychess/Utils/repr.py:21 msgid "The game has been adjourned" msgstr "Aprazouse a partida" #: lib/pychess/Utils/repr.py:22 msgid "The game has been aborted" msgstr "Abortouse a partida" #: lib/pychess/Utils/repr.py:26 msgid "Because neither player has sufficient material to mate" msgstr "" #: lib/pychess/Utils/repr.py:27 msgid "Because the same position was repeated three times in a row" msgstr "" #: lib/pychess/Utils/repr.py:28 msgid "Because the last 50 moves brought nothing new" msgstr "Porque os últimos 50 movementos non aportaron nada novo" #: lib/pychess/Utils/repr.py:29 msgid "Because both players ran out of time" msgstr "Xa que ambos xogadores quedaronse sen tempo" #: lib/pychess/Utils/repr.py:30 #, python-format msgid "Because %(mover)s stalemated" msgstr "" #: lib/pychess/Utils/repr.py:31 msgid "Because both players agreed to a draw" msgstr "" #: lib/pychess/Utils/repr.py:32 lib/pychess/Utils/repr.py:42 msgid "Because of adjudication by an admin" msgstr "Por decisión dun administrador" #: lib/pychess/Utils/repr.py:33 msgid "Because the game exceed the max length" msgstr "Xa que o xogo superou o duración máxima" #: lib/pychess/Utils/repr.py:34 #, python-format msgid "" "Because %(white)s ran out of time and %(black)s has insufficient material to" " mate" msgstr "" #: lib/pychess/Utils/repr.py:35 #, python-format msgid "" "Because %(black)s ran out of time and %(white)s has insufficient material to" " mate" msgstr "" #: lib/pychess/Utils/repr.py:36 msgid "Because both players have the same amount of pieces" msgstr "" #: lib/pychess/Utils/repr.py:38 #, python-format msgid "Because %(loser)s resigned" msgstr "Porque o %(loser)s se retirou" #: lib/pychess/Utils/repr.py:39 #, python-format msgid "Because %(loser)s ran out of time" msgstr "Porque o %(loser)s se quedou sen tempo" #: lib/pychess/Utils/repr.py:40 #, python-format msgid "Because %(loser)s was checkmated" msgstr "Porque ó %(loser)s lle fixeron xaque mate" #: lib/pychess/Utils/repr.py:41 #, python-format msgid "Because %(loser)s disconnected" msgstr "Xa que o %(loser)s se desconectou" #: lib/pychess/Utils/repr.py:43 #, python-format msgid "Because %(winner)s has fewer pieces" msgstr "" #: lib/pychess/Utils/repr.py:44 #, python-format msgid "Because %(winner)s lost all pieces" msgstr "" #: lib/pychess/Utils/repr.py:45 #, python-format msgid "Because %(loser)s king exploded" msgstr "" #: lib/pychess/Utils/repr.py:46 #, python-format msgid "Because %(winner)s king reached the center" msgstr "" #: lib/pychess/Utils/repr.py:47 #, python-format msgid "Because %(winner)s was giving check 3 times" msgstr "" #: lib/pychess/Utils/repr.py:49 msgid "Because a player lost connection" msgstr "Xa que un xogador perdeu a conexión" #: lib/pychess/Utils/repr.py:50 msgid "Because both players agreed to an adjournment" msgstr "" #: lib/pychess/Utils/repr.py:51 msgid "Because the server was shut down" msgstr "" #: lib/pychess/Utils/repr.py:52 msgid "" "Because a player lost connection and the other player requested adjournment" msgstr "" #: lib/pychess/Utils/repr.py:53 #, python-format msgid "" "Because %(black)s lost connection to the server and %(white)s requested " "adjournment" msgstr "" #: lib/pychess/Utils/repr.py:54 #, python-format msgid "" "Because %(white)s lost connection to the server and %(black)s requested " "adjournment" msgstr "" #: lib/pychess/Utils/repr.py:55 #, python-format msgid "Because %(white)s lost connection to the server" msgstr "" #: lib/pychess/Utils/repr.py:56 #, python-format msgid "Because %(black)s lost connection to the server" msgstr "" #: lib/pychess/Utils/repr.py:58 msgid "Because of adjudication by an admin. No rating changes have occurred." msgstr "" #: lib/pychess/Utils/repr.py:59 msgid "" "Because both players agreed to abort the game. No rating changes have " "occurred." msgstr "" #: lib/pychess/Utils/repr.py:60 msgid "Because of courtesy by a player. No rating changes have occurred." msgstr "" #: lib/pychess/Utils/repr.py:61 msgid "" "Because a player aborted the game. Either player can abort the game without " "the other's consent before the second move. No rating changes have occurred." msgstr "" #: lib/pychess/Utils/repr.py:62 msgid "" "Because a player disconnected and there are too few moves to warrant " "adjournment. No rating changes have occurred." msgstr "" #: lib/pychess/Utils/repr.py:63 msgid "Because the server was shut down. No rating changes have occurred." msgstr "" #: lib/pychess/Utils/repr.py:65 #, python-format msgid "Because the %(white)s engine died" msgstr "" #: lib/pychess/Utils/repr.py:66 #, python-format msgid "Because the %(black)s engine died" msgstr "" #: lib/pychess/Utils/repr.py:67 msgid "Because the connection to the server was lost" msgstr "Porque se perdeu a conexión ó servidor" #: lib/pychess/Utils/repr.py:68 msgid "The reason is unknown" msgstr "Descoñécese a razón" #: lib/pychess/Utils/TimeModel.py:229 msgid "min" msgstr "" #: lib/pychess/Utils/TimeModel.py:231 msgid "sec" msgstr "" #: lib/pychess/Variants/asean.py:12 msgid "" "ASEAN: http://www.ncf-" "phil.org/downloadables/2014/May/Asean_chess/Laws_of_ASEAN_Chess_2011_Nov_26.doc" msgstr "" #: lib/pychess/Variants/asean.py:13 msgid "ASEAN" msgstr "" #: lib/pychess/Variants/asean.py:33 msgid "Makruk: http://en.wikipedia.org/wiki/Makruk" msgstr "" #: lib/pychess/Variants/asean.py:34 msgid "Makruk" msgstr "" #: lib/pychess/Variants/asean.py:60 msgid "Cambodian: http://www.khmerinstitute.org/culture/ok.html" msgstr "" #: lib/pychess/Variants/asean.py:61 msgid "Cambodian" msgstr "" #: lib/pychess/Variants/asean.py:86 msgid "" "Ai-Wok: http://www.open-" "aurec.com/wbforum/viewtopic.php?p=199364&sid=20963a1de2c164050de019e5ed6bf7c4#p199364" msgstr "" #: lib/pychess/Variants/asean.py:87 msgid "Ai-Wok" msgstr "" #: lib/pychess/Variants/asean.py:111 msgid "Sittuyin: http://en.wikipedia.org/wiki/Sittuyin" msgstr "" #: lib/pychess/Variants/asean.py:112 msgid "Sittuyin" msgstr "" #: lib/pychess/Variants/asymmetricrandom.py:12 msgid "" "FICS wild/4: http://www.freechess.org/Help/HelpFiles/wild.html\n" "* Randomly chosen pieces (two queens or three rooks possible)\n" "* Exactly one king of each color\n" "* Pieces placed randomly behind the pawns, SUBJECT TO THE CONSTRAINT THAT THE BISHOPS ARE BALANCED\n" "* No castling\n" "* Black's arrangement DOES NOT mirrors white's" msgstr "" #: lib/pychess/Variants/asymmetricrandom.py:18 msgid "Asymmetric Random" msgstr "" #: lib/pychess/Variants/atomic.py:14 msgid "FICS atomic: http://www.freechess.org/Help/HelpFiles/atomic.html" msgstr "" #: lib/pychess/Variants/blindfold.py:7 msgid "" "Classic chess rules with hidden figurines\n" "http://en.wikipedia.org/wiki/Blindfold_chess" msgstr "" #: lib/pychess/Variants/blindfold.py:9 #: lib/pychess/widgets/newGameDialog.py:264 msgid "Blindfold" msgstr "" #: lib/pychess/Variants/blindfold.py:18 msgid "" "Classic chess rules with hidden pawns\n" "http://en.wikipedia.org/wiki/Blindfold_chess" msgstr "" #: lib/pychess/Variants/blindfold.py:20 msgid "Hidden pawns" msgstr "" #: lib/pychess/Variants/blindfold.py:29 msgid "" "Classic chess rules with hidden pieces\n" "http://en.wikipedia.org/wiki/Blindfold_chess" msgstr "" #: lib/pychess/Variants/blindfold.py:31 msgid "Hidden pieces" msgstr "" #: lib/pychess/Variants/blindfold.py:40 msgid "" "Classic chess rules with all pieces white\n" "http://en.wikipedia.org/wiki/Blindfold_chess" msgstr "" #: lib/pychess/Variants/blindfold.py:42 msgid "All white" msgstr "" #: lib/pychess/Variants/bughouse.py:8 msgid "FICS bughouse: http://www.freechess.org/Help/HelpFiles/bughouse.html" msgstr "" #: lib/pychess/Variants/corner.py:12 msgid "" "http://brainking.com/en/GameRules?tp=2\n" "* Placement of the pieces on the 1st and 8th row are randomized\n" "* The king is in the right hand corner\n" "* Bishops must start on opposite color squares\n" "* Black's starting position is obtained by rotating white's position 180 degrees around the board's center\n" "* No castling" msgstr "" #: lib/pychess/Variants/corner.py:18 msgid "Corner" msgstr "" #: lib/pychess/Variants/crazyhouse.py:8 msgid "" "FICS crazyhouse: http://www.freechess.org/Help/HelpFiles/crazyhouse.html" msgstr "" #: lib/pychess/Variants/euroshogi.py:9 msgid "EuroShogi: http://en.wikipedia.org/wiki/EuroShogi" msgstr "" #: lib/pychess/Variants/euroshogi.py:10 msgid "EuroShogi" msgstr "" #: lib/pychess/Variants/fischerandom.py:18 msgid "" "http://en.wikipedia.org/wiki/Chess960\n" "FICS wild/fr: http://www.freechess.org/Help/HelpFiles/wild.html" msgstr "" #: lib/pychess/Variants/fischerandom.py:20 msgid "Fischer Random" msgstr "" #: lib/pychess/Variants/kingofthehill.py:8 msgid "" "Bringing your king legally to the center (e4, d4, e5, d5) instantly wins the game!\n" "Normal rules apply in other cases and checkmate also ends the game." msgstr "" #: lib/pychess/Variants/kingofthehill.py:10 msgid "King of the hill" msgstr "" #: lib/pychess/Variants/knightodds.py:8 msgid "One player starts with one less knight piece" msgstr "" #: lib/pychess/Variants/knightodds.py:9 msgid "Knight odds" msgstr "" #: lib/pychess/Variants/losers.py:8 msgid "FICS losers: http://www.freechess.org/Help/HelpFiles/losers_chess.html" msgstr "" #: lib/pychess/Variants/normal.py:4 msgid "" "Classic chess rules\n" "http://en.wikipedia.org/wiki/Chess" msgstr "" #: lib/pychess/Variants/normal.py:6 lib/pychess/widgets/newGameDialog.py:157 msgid "Normal" msgstr "" #: lib/pychess/Variants/pawnodds.py:8 msgid "One player starts with one less pawn piece" msgstr "" #: lib/pychess/Variants/pawnodds.py:9 msgid "Pawn odds" msgstr "" #: lib/pychess/Variants/pawnspassed.py:11 msgid "" "FICS wild/8a: http://www.freechess.org/Help/HelpFiles/wild.html\n" "White pawns start on 5th rank and black pawns on the 4th rank" msgstr "" #: lib/pychess/Variants/pawnspassed.py:13 msgid "Pawns Passed" msgstr "" #: lib/pychess/Variants/pawnspushed.py:10 msgid "" "FICS wild/8: http://www.freechess.org/Help/HelpFiles/wild.html\n" "Pawns start on 4th and 5th ranks rather than 2nd and 7th" msgstr "" #: lib/pychess/Variants/pawnspushed.py:12 msgid "Pawns Pushed" msgstr "" #: lib/pychess/Variants/queenodds.py:8 msgid "One player starts with one less queen piece" msgstr "" #: lib/pychess/Variants/queenodds.py:9 msgid "Queen odds" msgstr "" #: lib/pychess/Variants/randomchess.py:11 msgid "" "FICS wild/3: http://www.freechess.org/Help/HelpFiles/wild.html\n" "* Randomly chosen pieces (two queens or three rooks possible)\n" "* Exactly one king of each color\n" "* Pieces placed randomly behind the pawns\n" "* No castling\n" "* Black's arrangement mirrors white's" msgstr "" #: lib/pychess/Variants/randomchess.py:17 #: lib/pychess/widgets/TaskerManager.py:155 msgid "Random" msgstr "Aleatorio" #: lib/pychess/Variants/rookodds.py:8 msgid "One player starts with one less rook piece" msgstr "" #: lib/pychess/Variants/rookodds.py:9 msgid "Rook odds" msgstr "" #: lib/pychess/Variants/shuffle.py:11 msgid "" "xboard nocastle: http://home.hccnet.nl/h.g.muller/engine-intf.html#8\n" "FICS wild/2: http://www.freechess.org/Help/HelpFiles/wild.html\n" "* Random arrangement of the pieces behind the pawns\n" "* No castling\n" "* Black's arrangement mirrors white's" msgstr "" #: lib/pychess/Variants/suicide.py:11 msgid "" "FICS suicide: http://www.freechess.org/Help/HelpFiles/suicide_chess.html" msgstr "" #: lib/pychess/Variants/theban.py:10 msgid "" "Variant developed by Kai Laskos: " "http://talkchess.com/forum/viewtopic.php?t=40990" msgstr "" #: lib/pychess/Variants/theban.py:11 msgid "Theban" msgstr "" #: lib/pychess/Variants/threecheck.py:10 msgid "Win by giving check 3 times" msgstr "" #: lib/pychess/Variants/threecheck.py:11 msgid "Three-check" msgstr "" #: lib/pychess/Variants/upsidedown.py:10 msgid "" "FICS wild/5: http://www.freechess.org/Help/HelpFiles/wild.html\n" "http://en.wikipedia.org/wiki/Chess_variant#Chess_with_different_starting_positions\n" "Pawns start on their 7th rank rather than their 2nd rank!" msgstr "" #: lib/pychess/Variants/upsidedown.py:13 msgid "Upside Down" msgstr "" #: lib/pychess/Variants/wildcastle.py:10 msgid "" "xboard wildcastle http://home.hccnet.nl/h.g.muller/engine-intf.html#8\n" "FICS wild/0: http://www.freechess.org/Help/HelpFiles/wild.html\n" "* White has the typical set-up at the start.\n" "* Black's pieces are the same, except that the King and Queen are reversed,\n" "* so they are not on the same files as White's King and Queen.\n" "* Castling is done similarly to normal chess:\n" "* o-o-o indicates long castling and o-o short castling." msgstr "" #: lib/pychess/Variants/wildcastle.py:17 msgid "Wildcastle" msgstr "" #: lib/pychess/Variants/wildcastleshuffle.py:11 msgid "" "xboard wildcastle http://home.hccnet.nl/h.g.muller/engine-intf.html#8\n" "FICS wild/1: http://www.freechess.org/Help/HelpFiles/wild.html\n" "* In this variant both sides have the same set of pieces as in normal chess.\n" "* The white king starts on d1 or e1 and the black king starts on d8 or e8,\n" "* and the rooks are in their usual positions.\n" "* Bishops are always on opposite colors.\n" "* Subject to these constraints the position of the pieces on their first ranks is random.\n" "* Castling is done similarly to normal chess:\n" "* o-o-o indicates long castling and o-o short castling." msgstr "" #: lib/pychess/Variants/wildcastleshuffle.py:20 msgid "Wildcastle shuffle" msgstr "" #: lib/pychess/widgets/analyzegameDialog.py:85 msgid "Game analyzing in progress..." msgstr "" #: lib/pychess/widgets/analyzegameDialog.py:86 msgid "Do you want to abort it?" msgstr "" #: lib/pychess/widgets/analyzegameDialog.py:95 #: lib/pychess/widgets/gamewidget.py:202 lib/pychess/widgets/gamewidget.py:320 msgid "Abort" msgstr "" #: lib/pychess/widgets/ChatView.py:125 msgid "Observers" msgstr "" #: lib/pychess/widgets/ChatWindow.py:222 msgid "You have opened no conversations yet" msgstr "Non abriches ningunha conversa aínda." #: lib/pychess/widgets/ChatWindow.py:254 msgid "Only registered users may talk to this channel" msgstr "Só os usuarios rexistrados poden falar por este canle" #: lib/pychess/widgets/ChatWindow.py:312 msgid "No conversation's selected" msgstr "Non se seleccionou ningunha conversa" #: lib/pychess/widgets/ChatWindow.py:350 msgid "Loading player data" msgstr "Cargando información do xogador" #: lib/pychess/widgets/ChatWindow.py:400 msgid "Receiving list of players" msgstr "" #: lib/pychess/widgets/ChatWindow.py:518 msgid "Friends" msgstr "" #: lib/pychess/widgets/ChatWindow.py:529 msgid "Admin" msgstr "" #: lib/pychess/widgets/ChatWindow.py:540 msgid "More channels" msgstr "Máis canles" #: lib/pychess/widgets/ChatWindow.py:548 msgid "More players" msgstr "Máis xogadores" #: lib/pychess/widgets/ChatWindow.py:558 msgid "Computers" msgstr "" #: lib/pychess/widgets/ChatWindow.py:568 msgid "BlindFold" msgstr "" #: lib/pychess/widgets/ChatWindow.py:578 msgid "Guests" msgstr "" #: lib/pychess/widgets/ChatWindow.py:805 msgid "Conversations" msgstr "Conversas" #: lib/pychess/widgets/ChatWindow.py:807 msgid "Conversation info" msgstr "Información da conversa" #: lib/pychess/widgets/enginesDialog.py:152 msgid "Select engine" msgstr "" #: lib/pychess/widgets/enginesDialog.py:156 msgid "Executable files" msgstr "" #: lib/pychess/widgets/enginesDialog.py:176 #: lib/pychess/widgets/enginesDialog.py:210 #: lib/pychess/widgets/enginesDialog.py:235 #, python-format msgid "Unable to add %s" msgstr "" #: lib/pychess/widgets/enginesDialog.py:177 msgid "wine not installed" msgstr "" #: lib/pychess/widgets/enginesDialog.py:211 #: lib/pychess/widgets/enginesDialog.py:236 msgid "There is something wrong with this executable" msgstr "" #: lib/pychess/widgets/enginesDialog.py:266 msgid "Select working directory" msgstr "" #: lib/pychess/widgets/gamenanny.py:115 #, python-format msgid " invalid engine move: %s" msgstr "" #: lib/pychess/widgets/gamenanny.py:134 msgid "Offer Rematch" msgstr "Ofrecer revancha" #: lib/pychess/widgets/gamenanny.py:136 lib/pychess/widgets/gamenanny.py:147 #, python-format msgid "Observe %s" msgstr "" #: lib/pychess/widgets/gamenanny.py:168 msgid "Play Rematch" msgstr "Xogar revancha" #: lib/pychess/widgets/gamenanny.py:171 msgid "Undo one move" msgstr "Desfacer un movemento" #: lib/pychess/widgets/gamenanny.py:173 msgid "Undo two moves" msgstr "Desfacer dous movementos" #: lib/pychess/widgets/gamenanny.py:203 msgid "The game is paused" msgstr "" #: lib/pychess/widgets/gamenanny.py:221 lib/pychess/widgets/gamenanny.py:222 msgid "Loaded game" msgstr "Partida cargada" #: lib/pychess/widgets/gamenanny.py:228 msgid "Saved game" msgstr "Partida gardada" #: lib/pychess/widgets/gamenanny.py:232 msgid "Analyzer started" msgstr "" #: lib/pychess/widgets/gamenanny.py:281 msgid "You sent an abort offer" msgstr "" #: lib/pychess/widgets/gamenanny.py:283 msgid "You sent an adjournment offer" msgstr "" #: lib/pychess/widgets/gamenanny.py:285 msgid "You sent a draw offer" msgstr "Enviou unha oferta de táboas" #: lib/pychess/widgets/gamenanny.py:287 msgid "You sent a pause offer" msgstr "" #: lib/pychess/widgets/gamenanny.py:289 msgid "You sent a resume offer" msgstr "" #: lib/pychess/widgets/gamenanny.py:291 msgid "You sent an undo offer" msgstr "" #: lib/pychess/widgets/gamenanny.py:293 msgid "You asked your opponent to move" msgstr "" #: lib/pychess/widgets/gamenanny.py:305 #, python-format msgid "Engine, %s, has died" msgstr "O motor, %s, morreu" #: lib/pychess/widgets/gamenanny.py:306 msgid "" "PyChess has lost connection to the engine, probably because it has died.\n" "\n" "You can try to start a new game with the engine, or try to play against another one." msgstr "" #: lib/pychess/widgets/gamewidget.py:204 msgid "" "This game can be automatically aborted without rating loss because there has" " not yet been two moves made" msgstr "" #: lib/pychess/widgets/gamewidget.py:206 msgid "Offer Abort" msgstr "" #: lib/pychess/widgets/gamewidget.py:208 msgid "" "Your opponent must agree to abort the game because there has been two or " "more moves made" msgstr "" #: lib/pychess/widgets/gamewidget.py:226 msgid "This game can not be adjourned because one or both players are guests" msgstr "" #: lib/pychess/widgets/gamewidget.py:243 msgid "Claim Draw" msgstr "" #: lib/pychess/widgets/gamewidget.py:325 msgid "Pause" msgstr "" #: lib/pychess/widgets/gamewidget.py:326 msgid "Resume" msgstr "" #: lib/pychess/widgets/gamewidget.py:328 msgid "Offer Pause" msgstr "" #: lib/pychess/widgets/gamewidget.py:329 msgid "Offer Resume" msgstr "" #: lib/pychess/widgets/gamewidget.py:333 msgid "Undo" msgstr "" #: lib/pychess/widgets/gamewidget.py:335 msgid "Offer Undo" msgstr "" #: lib/pychess/widgets/gamewidget.py:550 msgid " has lagged for 30 seconds" msgstr "" #: lib/pychess/widgets/gamewidget.py:566 msgid " is lagging heavily but hasn't disconnected" msgstr "" #: lib/pychess/widgets/gamewidget.py:567 msgid "Continue to wait for opponent, or try to adjourn the game?" msgstr "" #: lib/pychess/widgets/gamewidget.py:575 msgid "Wait" msgstr "" #: lib/pychess/widgets/gamewidget.py:576 msgid "Adjourn" msgstr "" #: lib/pychess/widgets/gamewidget.py:648 msgid "Jump to initial position" msgstr "Saltar á posición inicial" #: lib/pychess/widgets/gamewidget.py:653 msgid "Step back one move" msgstr "Retroceder un movemento" #: lib/pychess/widgets/gamewidget.py:658 msgid "Go back to the main line" msgstr "" #: lib/pychess/widgets/gamewidget.py:664 msgid "Step forward one move" msgstr "Avanzar un movemento" #: lib/pychess/widgets/gamewidget.py:669 msgid "Jump to latest position" msgstr "Saltar a última posición" #: lib/pychess/widgets/gamewidget.py:903 msgid "PyChess was unable to load your panel settings" msgstr "PyChess foi incapaz de cargar o teu panel de ferramentas" #: lib/pychess/widgets/gamewidget.py:904 msgid "" "Your panel settings have been reset. If this problem repeats, you should " "report it to the developers" msgstr "" #: lib/pychess/widgets/ionest.py:67 lib/pychess/widgets/newGameDialog.py:389 #: lib/pychess/widgets/TaskerManager.py:210 msgid "You" msgstr "" #: lib/pychess/widgets/ionest.py:70 lib/pychess/widgets/newGameDialog.py:390 #: lib/pychess/widgets/preferencesDialog.py:61 #: lib/pychess/widgets/TaskerManager.py:213 msgid "Guest" msgstr "Hóspede" #: lib/pychess/widgets/ionest.py:93 msgid "Error loading game" msgstr "" #: lib/pychess/widgets/ionest.py:127 lib/pychess/widgets/newGameDialog.py:480 msgid "Open Game" msgstr "Abrir partida" #: lib/pychess/widgets/ionest.py:137 msgid "All Files" msgstr "Todos os Ficheiros" #: lib/pychess/widgets/ionest.py:140 msgid "Detect type automatically" msgstr "Detectar tipo automaticamente" #: lib/pychess/widgets/ionest.py:146 msgid "All Chess Files" msgstr "Tódolos arquivos de xadrez" #: lib/pychess/widgets/ionest.py:228 msgid "Save Game" msgstr "Gardar partida" #: lib/pychess/widgets/ionest.py:228 msgid "Export position" msgstr "" #: lib/pychess/widgets/ionest.py:232 lib/pychess/widgets/ionest.py:360 msgid "vs." msgstr "vs." #: lib/pychess/widgets/ionest.py:249 #, python-format msgid "Unknown file type '%s'" msgstr "Tipo de arquivo descoñecido '%s'" #: lib/pychess/widgets/ionest.py:250 #, python-format msgid "" "Was unable to save '%(uri)s' as PyChess doesn't know the format " "'%(ending)s'." msgstr "" #: lib/pychess/widgets/ionest.py:266 #, python-format msgid "Unable to save file '%s'" msgstr "Foi imposible gardar o arquivo '%s'" #: lib/pychess/widgets/ionest.py:268 msgid "" "You don't have the necessary rights to save the file.\n" "Please ensure that you have given the right path and try again." msgstr "" #: lib/pychess/widgets/ionest.py:276 msgid "_Replace" msgstr "" #: lib/pychess/widgets/ionest.py:280 msgid "File exists" msgstr "O ficheiro xa existe" #: lib/pychess/widgets/ionest.py:282 #, python-format msgid "" "A file named '%s' already exists. Would you like to replace " "it?" msgstr "" #: lib/pychess/widgets/ionest.py:283 #, python-format msgid "" "The file already exists in '%s'. If you replace it, its content will be " "overwritten." msgstr "" #: lib/pychess/widgets/ionest.py:299 msgid "Could not save the file" msgstr "Non se puido gardar o arquivo" #: lib/pychess/widgets/ionest.py:300 msgid "PyChess was not able to save the game" msgstr "PyChess non puido gardar a partida" #: lib/pychess/widgets/ionest.py:301 #, python-format msgid "The error was: %s" msgstr "O erro foi: %s" #: lib/pychess/widgets/ionest.py:325 #, python-format msgid "There is %d game with unsaved moves." msgid_plural "There are %d games with unsaved moves." msgstr[0] "" msgstr[1] "" #: lib/pychess/widgets/ionest.py:328 msgid "Save moves before closing?" msgstr "Gardar movementos antes de pechar?" #: lib/pychess/widgets/ionest.py:339 msgid "Unable to save to configured file. Save the games before closing?" msgstr "" #: lib/pychess/widgets/ionest.py:366 #, python-format msgid "_Save %d document" msgid_plural "_Save %d documents" msgstr[0] "" msgstr[1] "" #: lib/pychess/widgets/ionest.py:412 msgid "Save the current game before you close it?" msgstr "" #: lib/pychess/widgets/ionest.py:420 msgid "" "Unable to save to configured file. Save the current game before you close " "it?" msgstr "" #: lib/pychess/widgets/ionest.py:434 msgid "" "It is not possible later to continue the game,\n" "if you don't save it." msgstr "" #: lib/pychess/widgets/LogDialog.py:26 msgid "PyChess Information Window" msgstr "Xanela de Información de PyChess" #: lib/pychess/widgets/LogDialog.py:184 lib/pychess/widgets/LogDialog.py:188 msgid "of" msgstr "de" #: lib/pychess/widgets/newGameDialog.py:84 #: lib/pychess/widgets/newGameDialog.py:85 msgid "Human Being" msgstr "Ser humano" #: lib/pychess/widgets/newGameDialog.py:155 msgid "Rapid" msgstr "Rápida" #: lib/pychess/widgets/newGameDialog.py:224 msgid "Minutes:" msgstr "Minutos:" #: lib/pychess/widgets/newGameDialog.py:228 msgid "Gain:" msgstr "Beneficio:" #: lib/pychess/widgets/newGameDialog.py:241 #, python-format msgid "%(name)s %(minutes)d min + %(gain)d sec/move" msgstr "%(name)s %(minutes)d min + %(gain)d seg/mov" #: lib/pychess/widgets/newGameDialog.py:244 #, python-format msgid "%(name)s %(minutes)d min %(gain)d sec/move" msgstr "%(name)s %(minutes)d min %(gain)d seg/mov" #: lib/pychess/widgets/newGameDialog.py:247 #, python-format msgid "%(name)s %(minutes)d min" msgstr "%(name)s %(minutes)d min" #: lib/pychess/widgets/newGameDialog.py:265 msgid "Odds" msgstr "Probabilidades" #: lib/pychess/widgets/newGameDialog.py:269 msgid "Asian variants" msgstr "" #: lib/pychess/widgets/newGameDialog.py:301 msgid " chess" msgstr "" #: lib/pychess/widgets/newGameDialog.py:682 msgid "Type or paste PGN game or FEN positions here" msgstr "" #: lib/pychess/widgets/newGameDialog.py:725 msgid "Enter Game" msgstr "Introducir partida" #: lib/pychess/widgets/preferencesDialog.py:123 msgid "Select book file" msgstr "" #: lib/pychess/widgets/preferencesDialog.py:128 msgid "Opening books" msgstr "" #: lib/pychess/widgets/preferencesDialog.py:156 msgid "Select Gaviota TB path" msgstr "" #: lib/pychess/widgets/preferencesDialog.py:331 msgid "Open Sound File" msgstr "Abrir Arquivo de Son" #: lib/pychess/widgets/preferencesDialog.py:341 msgid "Sound files" msgstr "" #: lib/pychess/widgets/preferencesDialog.py:485 msgid "Undescribed panel" msgstr "" #: lib/pychess/widgets/preferencesDialog.py:678 msgid "Select auto save path" msgstr "" #: lib/pychess/widgets/tipOfTheDay.py:51 msgid "" "You can start a new game by Game > New Game, in New Game " "window do you can choose Players, Time Control and Chess " "Variants." msgstr "" #: lib/pychess/widgets/tipOfTheDay.py:52 msgid "" "You can choose from 20 different difficulties to play against the computer." msgstr "" #: lib/pychess/widgets/tipOfTheDay.py:53 msgid "" "Chess Variants are like the pieces of the last line will be placed on the " "board." msgstr "" #: lib/pychess/widgets/tipOfTheDay.py:54 msgid "" "To save a game Game > Save Game As, give the filename and " "choose where you want to be saved. At the bottom choose extension type of " "the file, and Save." msgstr "" #: lib/pychess/widgets/tipOfTheDay.py:55 msgid "" "Do you know that you can call flag when the clock is with you, " "Actions > Call Flag." msgstr "" #: lib/pychess/widgets/tipOfTheDay.py:56 msgid "Pressing Ctrl+Z to offer opponent the possible rollback moves." msgstr "" #: lib/pychess/widgets/tipOfTheDay.py:57 msgid "" "To play on Fullscreen mode, just type F11. Coming back, F11 " "again." msgstr "" #: lib/pychess/widgets/tipOfTheDay.py:58 msgid "Hint mode analyzing your game, enable this type Ctrl+H." msgstr "" #: lib/pychess/widgets/tipOfTheDay.py:59 msgid "" "Spy mode analyzing the oponnent game, enable this type Ctrl+Y." msgstr "" #: lib/pychess/widgets/tipOfTheDay.py:60 msgid "" "You can play chess listening to the sounds of the game, for that, " "Settings > Preferences > Sound tab, enable Use " "sounds in PyChess and choose your preferred sounds." msgstr "" #: lib/pychess/widgets/tipOfTheDay.py:61 msgid "" "Do you know that you can help translate Pychess in your language, " "Help > Translate Pychess." msgstr "" #: lib/pychess/widgets/tipOfTheDay.py:62 msgid "" "Do you know that it is possible to finish a chess game in just 2 turns?" msgstr "" #: lib/pychess/widgets/tipOfTheDay.py:63 msgid "" "Do you know that the number of possible chess games exceeds the number of " "atoms in the Universe?" msgstr "" #: lib/pychess/ic/managers/ChatManager.py:184 msgid "Shout" msgstr "" #: lib/pychess/ic/managers/ChatManager.py:185 msgid "Chess Shout" msgstr "" #: lib/pychess/ic/managers/ChatManager.py:195 #, python-format msgid "Unofficial channel %d" msgstr "Canle non oficial %d" #: lib/pychess/Utils/lutils/LBoard.py:152 #, python-format msgid "" "FEN needs 6 data fields. \n" "\n" "%s" msgstr "" #: lib/pychess/Utils/lutils/LBoard.py:154 #, python-format msgid "" "FEN needs at least 2 data fields in fenstr. \n" "\n" "%s" msgstr "" #: lib/pychess/Utils/lutils/LBoard.py:175 #, python-format msgid "" "Needs 7 slashes in piece placement field. \n" "\n" "%s" msgstr "" #: lib/pychess/Utils/lutils/LBoard.py:178 #, python-format msgid "" "Active color field must be one of w or b. \n" "\n" "%s" msgstr "" #: lib/pychess/Utils/lutils/LBoard.py:189 #, python-format msgid "" "Castling availability field is not legal. \n" "\n" "%s" msgstr "" #: lib/pychess/Utils/lutils/LBoard.py:192 #, python-format msgid "" "En passant cord is not legal. \n" "\n" "%s" msgstr "" #: lib/pychess/Utils/lutils/lmove.py:260 msgid "invalid promoted piece" msgstr "" #: lib/pychess/Utils/lutils/lmove.py:272 msgid "the move needs a piece and a cord" msgstr "o movemento necesita unha peza e unha coordenada" #: lib/pychess/Utils/lutils/lmove.py:306 lib/pychess/Utils/lutils/lmove.py:556 msgid "promotion move without promoted piece is incorrect" msgstr "" #: lib/pychess/Utils/lutils/lmove.py:312 #, python-format msgid "the captured cord (%s) is incorrect" msgstr "" #: lib/pychess/Utils/lutils/lmove.py:323 #, python-format msgid "the end cord (%s) is incorrect" msgstr "" #: lib/pychess/Utils/lutils/strateval.py:24 sidepanel/commentPanel.py:191 #: sidepanel/commentPanel.py:208 msgid "and" msgstr "e" #: lib/pychess/Utils/lutils/strateval.py:43 msgid "draws" msgstr "táboas" #: lib/pychess/Utils/lutils/strateval.py:45 msgid "mates" msgstr "" #: lib/pychess/Utils/lutils/strateval.py:49 msgid "puts opponent in check" msgstr "" #: lib/pychess/Utils/lutils/strateval.py:73 msgid "improves king safety" msgstr "mellora a seguridade do rei" #: lib/pychess/Utils/lutils/strateval.py:75 msgid "slightly improves king safety" msgstr "mellora lixeiramente a seguridade do rei" #: lib/pychess/Utils/lutils/strateval.py:108 msgid "moves a rook to an open file" msgstr "" #: lib/pychess/Utils/lutils/strateval.py:109 msgid "moves an rook to a half-open file" msgstr "" #: lib/pychess/Utils/lutils/strateval.py:119 #: lib/pychess/Utils/lutils/strateval.py:121 #: lib/pychess/Utils/lutils/strateval.py:124 #: lib/pychess/Utils/lutils/strateval.py:126 #, python-format msgid "moves bishop into fianchetto: %s" msgstr "" #: lib/pychess/Utils/lutils/strateval.py:132 #, python-format msgid "promotes a Pawn to a %s" msgstr "promover un Peón a %s" #: lib/pychess/Utils/lutils/strateval.py:135 msgid "castles" msgstr "" #: lib/pychess/Utils/lutils/strateval.py:158 msgid "takes back material" msgstr "" #: lib/pychess/Utils/lutils/strateval.py:162 #: lib/pychess/Utils/lutils/strateval.py:170 msgid "sacrifies material" msgstr "" #: lib/pychess/Utils/lutils/strateval.py:164 msgid "exchanges material" msgstr "" #: lib/pychess/Utils/lutils/strateval.py:166 msgid "captures material" msgstr "" #: lib/pychess/Utils/lutils/strateval.py:291 #, python-format msgid "rescues a %s" msgstr "" #: lib/pychess/Utils/lutils/strateval.py:294 #, python-format msgid "threatens to win material by %s" msgstr "" #: lib/pychess/Utils/lutils/strateval.py:296 #, python-format msgid "increases the pressure on %s" msgstr "incrementa a presión en %s" #: lib/pychess/Utils/lutils/strateval.py:298 #, python-format msgid "defends %s" msgstr "defende %s" #: lib/pychess/Utils/lutils/strateval.py:336 #, python-format msgid "pins an enemy %(oppiece)s on the %(piece)s at %(cord)s" msgstr "" #: lib/pychess/Utils/lutils/strateval.py:369 #, python-format msgid "White has a new piece in outpost: %s" msgstr "" #: lib/pychess/Utils/lutils/strateval.py:377 #, python-format msgid "Black has a new piece in outpost: %s" msgstr "" #: lib/pychess/Utils/lutils/strateval.py:416 #, python-format msgid "%(color)s has a new passed pawn on %(cord)s" msgstr "" #: lib/pychess/Utils/lutils/strateval.py:470 msgid "half-open" msgstr "" #: lib/pychess/Utils/lutils/strateval.py:472 #, python-format msgid "in the %(x)s%(y)s file" msgstr "" #: lib/pychess/Utils/lutils/strateval.py:474 #, python-format msgid "in the %(x)s%(y)s files" msgstr "" #: lib/pychess/Utils/lutils/strateval.py:477 #, python-format msgid "%(color)s got a double pawn %(place)s" msgstr "" #: lib/pychess/Utils/lutils/strateval.py:478 #, python-format msgid "%(color)s got new double pawns %(place)s" msgstr "" #: lib/pychess/Utils/lutils/strateval.py:485 #, python-format msgid "%(color)s got an isolated pawn in the %(x)s file" msgid_plural "%(color)s got isolated pawns in the %(x)s files" msgstr[0] "" msgstr[1] "" #: lib/pychess/Utils/lutils/strateval.py:492 #, python-format msgid "%s moves pawns into stonewall formation" msgstr "" #: lib/pychess/Utils/lutils/strateval.py:507 #: lib/pychess/Utils/lutils/strateval.py:514 #, python-format msgid "%s can no longer castle" msgstr "" #: lib/pychess/Utils/lutils/strateval.py:508 #: lib/pychess/Utils/lutils/strateval.py:515 #, python-format msgid "%s can no longer castle in queenside" msgstr "" #: lib/pychess/Utils/lutils/strateval.py:510 #: lib/pychess/Utils/lutils/strateval.py:517 #, python-format msgid "%s can no longer castle in kingside" msgstr "" #: lib/pychess/Utils/lutils/strateval.py:551 #, python-format msgid "%(opcolor)s has a new trapped bishop on %(cord)s" msgstr "" #: lib/pychess/Utils/lutils/strateval.py:573 #, python-format msgid "develops a pawn: %s" msgstr "" #: lib/pychess/Utils/lutils/strateval.py:574 #, python-format msgid "brings a pawn closer to the backrow: %s" msgstr "" #: lib/pychess/Utils/lutils/strateval.py:591 #, python-format msgid "brings a %(piece)s closer to enemy king: %(cord)s" msgstr "" #: lib/pychess/Utils/lutils/strateval.py:594 #, python-format msgid "develops a %(piece)s: %(cord)s" msgstr "" #: lib/pychess/Utils/lutils/strateval.py:612 #, python-format msgid "places a %(piece)s more active: %(cord)s" msgstr "" #: lib/pychess/Utils/lutils/strateval.py:638 msgid "White should do pawn storm in right" msgstr "" #: lib/pychess/Utils/lutils/strateval.py:640 msgid "Black should do pawn storm in left" msgstr "" #: lib/pychess/Utils/lutils/strateval.py:643 msgid "White should do pawn storm in left" msgstr "" #: lib/pychess/Utils/lutils/strateval.py:645 msgid "Black should do pawn storm in right" msgstr "" #: lib/pychess/Utils/lutils/strateval.py:671 msgid "Black has a rather cramped position" msgstr "" #: lib/pychess/Utils/lutils/strateval.py:673 msgid "Black has a slightly cramped position" msgstr "" #: lib/pychess/Utils/lutils/strateval.py:675 msgid "White has a rather cramped position" msgstr "" #: lib/pychess/Utils/lutils/strateval.py:677 msgid "White has a slightly cramped position" msgstr "" #: sidepanel/annotationPanel.py:26 msgid "Annotation" msgstr "" #: sidepanel/annotationPanel.py:29 msgid "Annotated game" msgstr "" #: sidepanel/annotationPanel.py:236 msgid "Copy PGN" msgstr "" #: sidepanel/annotationPanel.py:249 msgid "Add start comment" msgstr "" #: sidepanel/annotationPanel.py:254 msgid "Add comment" msgstr "" #: sidepanel/annotationPanel.py:258 sidepanel/annotationPanel.py:316 msgid "Edit comment" msgstr "" #: sidepanel/annotationPanel.py:269 msgid "Forced move" msgstr "" #: sidepanel/annotationPanel.py:274 msgid "Add move symbol" msgstr "" #: sidepanel/annotationPanel.py:280 msgid "Unclear position" msgstr "" #: sidepanel/annotationPanel.py:289 msgid "Zugzwang" msgstr "" #: sidepanel/annotationPanel.py:290 msgid "Development adv." msgstr "" #: sidepanel/annotationPanel.py:291 msgid "Initiative" msgstr "" #: sidepanel/annotationPanel.py:292 msgid "With attack" msgstr "" #: sidepanel/annotationPanel.py:293 msgid "Compensation" msgstr "" #: sidepanel/annotationPanel.py:294 msgid "Counterplay" msgstr "" #: sidepanel/annotationPanel.py:295 msgid "Time pressure" msgstr "" #: sidepanel/annotationPanel.py:300 msgid "Add evaluation symbol" msgstr "" #: sidepanel/annotationPanel.py:304 msgid "Remove symbols" msgstr "" #: sidepanel/annotationPanel.py:911 #, python-format msgid "round %s" msgstr "" #: sidepanel/bookPanel.py:21 msgid "Hints" msgstr "" #: sidepanel/bookPanel.py:25 msgid "" "The hint panel will provide computer advice during each stage of the game" msgstr "" #: sidepanel/bookPanel.py:27 msgid "Official PyChess panel." msgstr "Panel Oficial de PyChess" #: sidepanel/bookPanel.py:87 msgid "Opening Book" msgstr "Abrindo Libro" #: sidepanel/bookPanel.py:88 msgid "" "The opening book will try to inspire you during the opening phase of the " "game by showing you common moves made by chess masters" msgstr "" #: sidepanel/bookPanel.py:139 #, python-format msgid "Analysis by %s" msgstr "" #: sidepanel/bookPanel.py:140 #, python-format msgid "" "%s will try to predict which move is best and which side has the advantage" msgstr "" #: sidepanel/bookPanel.py:142 #, python-format msgid "Threat analysis by %s" msgstr "" #: sidepanel/bookPanel.py:143 #, python-format msgid "" "%s will identify what threats would exist if it were your opponent's turn to" " move" msgstr "" #: sidepanel/bookPanel.py:159 sidepanel/bookPanel.py:269 msgid "Calculating..." msgstr "" #: sidepanel/bookPanel.py:300 msgid "" "Engine scores are in units of pawns, from White's point of view. Double " "clicking on analysis lines you can insert them into Annotation panel as " "variations." msgstr "" #: sidepanel/bookPanel.py:302 msgid "" "Adding suggestions can help you find ideas, but slows down the computer's " "analysis." msgstr "" #: sidepanel/bookPanel.py:311 msgid "Endgame Table" msgstr "" #: sidepanel/bookPanel.py:315 msgid "" "The endgame table will show exact analysis when there are few pieces on the " "board." msgstr "" #: sidepanel/bookPanel.py:364 sidepanel/bookPanel.py:367 #, python-format msgid "Mate in %d" msgstr "" #: sidepanel/bookPanel.py:554 msgid "" "In this position,\n" "there is no legal move." msgstr "" #: sidepanel/chatPanel.py:21 msgid "" "The chat panel lets you communicate with your opponent during the game, " "assuming he or she is interested" msgstr "O panel de conversas permítelle comunicarse co seu opoñente durante a partida, sempre que el/ela queira" #: sidepanel/commentPanel.py:16 msgid "Comments" msgstr "Comentarios" #: sidepanel/commentPanel.py:20 msgid "The comments panel will try to analyze and explain the moves played" msgstr "O panel de comentario tratará de analizar e explicar os movementos realizados" #: sidepanel/commentPanel.py:121 msgid "Initial position" msgstr "Posición Inicial" #: sidepanel/commentPanel.py:254 #, python-format msgid "%(color)s moves a %(piece)s to %(cord)s" msgstr "" #: sidepanel/engineOutputPanel.py:15 msgid "Engines" msgstr "" #: sidepanel/engineOutputPanel.py:20 msgid "" "The engine output panel shows the thinking output of chess engines (computer" " players) during a game" msgstr "" #: sidepanel/engineOutputPanel.py:44 msgid "No chess engines (computer players) are participating in this game." msgstr "" #: sidepanel/historyPanel.py:10 msgid "Move History" msgstr "Historial de movementos" #: sidepanel/historyPanel.py:13 msgid "" "The moves sheet keeps track of the players' moves and lets you navigate " "through the game history" msgstr "" #: sidepanel/scorePanel.py:15 msgid "Score" msgstr "Puntuación" #: sidepanel/scorePanel.py:19 msgid "" "The score panel tries to evaluate the positions and shows you a graph of the" " game progress" msgstr "O panel de puntuación trata de avaliar as posicións e amosache un gráfico do progreso da partida" pychess-0.12.2/lang/gl/LC_MESSAGES/pychess.mo0000644000175000017470000005553312653231272020711 0ustar tamasusers00000000000000Z  *&,Q~#,%1Wtz9'@6GXm#$ * 6 G ` o     & C!7I!U!*!("+"A" R"^"f" w" "" "C" "*" )#5#7#!V#x# # #$###-$&L$-s$$$$$$$ $ $$$% %%"%(%>% G%R%g%x%% %% % %% %& & && "&-&B&I&_& z&&&&& && &&&& & 'c']y'S'F+(r(((((((( ( ( ( ) ) *)7)H)Y)n)s)z)) ) ) ) )))/)* **8*A*Q*V* i* w* * * * ******. + ;+E+ U+b+x+~+++++ ++++++, ,+, 3,=, X,d,f, l,y,{,, ,,,,, , ,, ,,, ,-"-?- N-X- o- {--- -- --- --- ..*.h<.".C.5 /9B/3|/////0 090U0o000Z0A1AC11111 1111 11 22232;2 C2Q2h2p2[3a39e3?393(4CB4$4&44 4! 5+5;5C5L5 [5 f5 s55 555%5 5 55 55 566 6 #6.6 A6 N6 X6f6 y6666 6666 66!6)78F77 77 7"7+78858 88 E8S8b8s888888!89 99:::):+ ;8;R;Y;m;;;;%;;;&;&<D<J<8c<(<J<="=4=N=%e===!=(='> /><>R>o>>>>>>>%?@)?4j?\?5?32@f@{@@@@@ @@@BAQAAaAAA"A&A B**B$UB+zBB(B)B8CRCWC]CdCtCCCCCCCCCCC D D D7DID^D wDD D DDDD DD EE "E CE OEpEE EEEEEE FF %F3F ;F GFrRFiFR/G:GGGGHHH"H)H EH OH]H mH HHHHHHI I,I 5I @IMI]IuIwI4|I II$IIIJJ2JCJXJiJxJJJ J JJJ6K >KLK aKoKKKKKKKKK#KL!L *L8L WLdL lL!wL LLLLL LLLLLL MMM".MQM aMmMuMM)MM MMNN%NANUN eN pN}N N NNNNNNiNgONO"O;O55PkPPPPPPPQ$Q6QMQcfQCQHRWR]RqRR RRRRRR R SS%S 4S>SNS fSpSjTrTXyT@THU/\UEU&U+U%V"CV&fVVV VVVVVVVWW-WMW\WlW|WW W WW W WWW XX#X8XHX\XvX{XXXX XX5X0XN-Y$|Y YY Y"Y+Y Z)ZEZHZXZkZ{ZZZZZ Z(Z0[O[S[wy7V#_,O(G(x)Yam3@04.\s8&eri?]V%M 8zG1F@A7:OSA bJ5ZP<quh&^ Sv -/fR .pLU0>%6C|$Z2o6 !YQ#N+EBH `'DX1 Nn9 2{W*?TUE)/gLX=I!J 5FW4~Mk*[9"IK}3Q=Ddj,'< >;-Rl"$+HB:cT;PCKt min%(black)s won the game%(name)s %(minutes)d min%(name)s %(minutes)d min %(gain)d sec/move%(name)s %(minutes)d min + %(gain)d sec/move%(white)s won the game%d min%s returns an error'%s' is not a registered name(Blitz)0 Players Ready0 of 010 min + 6 sec/move, 1400↑, White10 min + 6 sec/move, White12002 min, Fischer Random, 1800↓, Black2 min, Fischer Random, Black5 min5 min, 1200-1800, ManualConnect to the Free Online Chess ServerPromote pawn to what?PyChess was unable to load your panel settingsAnalyzingAnimationChess VariantDate of gameEnter Game NotationGame dataInitial PositionInstalled SidepanelsName of _first human player:Name of s_econd human player:NewsOpen GameOpponent StrengthOptionsPlay Sound When...PlayersTime ControlToolsYour Color_Start GameEngine, %s, has diedPyChess is discovering your engines. Please wait.PyChess was not able to save the gameThere are %d games with unsaved moves. Save changes before closing?Unable to save file '%s'Unknown file type '%s'Challenge:A player _moves:About ChessAc_tiveActive seeks: %dAddress ErrorAdministratorAll Chess FilesAll FilesAnimate pieces, board rotation and more. Use this on fast machines.Ask to _MoveAuto _rotate board to current human playerAuto-logoutBBecause %(loser)s disconnectedBecause %(loser)s ran out of timeBecause %(loser)s resignedBecause %(loser)s was checkmatedBecause a player lost connectionBecause both players ran out of timeBecause of adjudication by an adminBecause the connection to the server was lostBecause the game exceed the max lengthBecause the last 50 moves brought nothing newBeepBishopBlackBlitzBlitz:Center:ChallengeChallenge: Challenge: Change ToleranceChatChess GameChess PositionClockClose _without SavingCommentsConnectingConnecting to serverConnection ErrorConnection was closedConversation infoConversationsCould not save the fileCreate SeekDate/TimeDetect type automaticallyDon't careDrawEdit SeekEdit Seek: EmailEnter GameEnter Game _NotationEvent:F_ull board animationFace _to Face display modeFile existsGain:Game informationGame is _drawn:Game is _lost:Game is _won:Games running: %dGrand MasterGuestHa_ndle:HideHow to PlayHuman BeingIf set, the black pieces will be head down, suitable for playing against friends on mobile devices.If set, the board will turn after each move, to show the natural view for the current player.If set, this hides the tab in the top of the playing window, when it is not needed.If you don't save, new changes to your games will be permanently lost.Initial positionInternational MasterJump to initial positionJump to latest positionKKingKnightLeave _FullscreenLightningLightning:Loaded gameLoading player dataLocal EventLog on ErrorLog on as G_uestLog on as _GuestLogging on to serverLossManualManually accept opponentMinutes:Minutes: More channelsMore playersMove HistoryNNameNever use animation. Use this on slow machines.New GameNo _animationNo conversation's selectedNo soundObserved _ends:OddsOffer Ad_journmentOffer RematchOffer _AbortOffer _DrawOffer _PauseOffer _ResumeOffer _UndoOfficial PyChess panel.OfflineOnlineOnly animate _movesOnly animate piece moves.Only registered users may talk to this channelOpen GameOpen Sound FileOpening BookOpponent's strength: OtherPPawnPingPlayPlay Fischer Random chessPlay RematchPlay _Internet ChessPlay normal chess rulesPlayer _RatingPo_rts:Pre_viewPrefer figures in _notationPreferencesPrivatePromotionPyChess Information WindowPyChess.py:QQueenQuit PyChessRRandomRapidRated gameRatingRookRound:S_ign upSave GameSave Game _AsSave moves before closing?Saved gameScoreSearch:Seek _GraphSelect sound file...Select the games you want to save:Send ChallengeSend seekSetting up environmentSho_w cordsShow _ChatShow tips at startupShredderLinuxChess:Side_panelsSite:Sp_y modeSpentStandardStandard:Step back one moveStep forward one moveTeam AccountThe abort offerThe adjourn offerThe chat panel lets you communicate with your opponent during the game, assuming he or she is interestedThe clock hasn't been started yet.The comments panel will try to analyze and explain the moves playedThe connection was broken - got "end of file" messageThe displayed name of the first human player, e.g., John.The displayed name of the guest player, e.g., Mary.The draw offerThe error was: %sThe game ended in a drawThe game has been abortedThe game has been adjournedThe game has been killedThe move failed because %s.The offer to switch sidesThe pause offerThe reason is unknownThe resume offerThe score panel tries to evaluate the positions and shows you a graph of the game progressThis option is not applicable because you're challenging a playerThis option is not available because you're challenging a guest, TimeTime control: Tip Of The dayTip of the DayTolerance:Tournament DirectorTranslate PyChessTypeUndo one moveUndo two movesUninstallUnknownUnofficial channel %dUnratedUntimedUse _analyzerUse _inverted analyzerWelcomeWhen this button is in the "locked" state, the relationship between "Opponent's strength" and "Your strength" will be preserved when a) your rating for the type of game sought has changed b) you change the variant or the time controlWhiteWinYou can't play rated games because "Untimed" is checked, You can't play rated games because you are logged in as a guestYou can't select a variant because "Untimed" is checked, You can't switch colors during the game.You have been logged out because you were idle more than 60 minutesYou have opened no conversations yetYou have tried to undo too many moves.You sent a draw offerYour opponent asks you to hurry!Your opponent is not out of time.Your strength: _Accept_Actions_Black player:_Call Flag_Clear Seeks_Fullscreen_Game_Game List_General_Help_Hide tabs when only one game is open_Hint mode_Load Game_Log Off_Log Viewer_Name:_New Game_Next_Observed moves:_Opponent:_Password:_Play Normal chess_Player List_Previous_Rotate Board_Save %d documents_Save Game_Seeks / Challenges_Show Sidepanels_Sounds_Start Game_Use sounds in PyChess_View_White player:_Your Color:andand guests can't play rated gamesand on FICS, untimed games can't be ratedand on FICS, untimed games have to be normal chess rulesask your opponent to movedefends %sdrawsgnuchess:http://en.wikipedia.org/wiki/Chesshttp://en.wikipedia.org/wiki/Rules_of_chessimproves king safetyincreases the pressure on %sofoffer a drawoffer a pauseoffer an abortoffer to adjournoffer to resumeoffer to switch sidesonline in totalpromotes a Pawn to a %sresignslightly improves king safetythe move needs a piece and a cordvs.window1Project-Id-Version: pychess Report-Msgid-Bugs-To: POT-Creation-Date: 2016-01-27 13:28+0100 PO-Revision-Date: 2016-01-28 08:56+0000 Last-Translator: slav0nic Language-Team: Galician (http://www.transifex.com/gbtami/pychess/language/gl/) MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Language: gl Plural-Forms: nplurals=2; plural=(n != 1); min%(black)s gaña a partida%(name)s %(minutes)d min%(name)s %(minutes)d min %(gain)d seg/mov%(name)s %(minutes)d min + %(gain)d seg/mov%(white)s gaña a partida%d min%s devolveu un erro'%s' non é un nome rexistrado(Partida rápida)0 xogadores listos0 de 010 min + 6 sec/mov, 1400 ↑, brancas10 min + 6 seg/mov, nrancas12002 min, Fischer Random, 1800↓, negras2 min, Fischer Random, negras5 min5 min, 1200-1800, manualConectar ao servidor Free Online ChessA que promove o peón?PyChess foi incapaz de cargar o teu panel de ferramentasAnalizandoAnimaciónVariante do xadrezData da partidaIntoducir notación da partidaDatos da partidaPosición inicialPaneis laterais instaladosNome do _primeiro xogador humano:Nome do _segundo xogador humano:NovasPartida abertaMestría do opoñenteOpciónsFacer sonar son cando..XogadoresControl de tempoFerramentasA súa corComezar partidaO motor, %s, morreuPyChess está a buscar os eus motores. Agarde.PyChess non puido gardar a partidaHai %d xogos sen cambios gardados. Quere gardar os cambios antes de saír?Foi imposible gardar o arquivo '%s'Tipo de arquivo descoñecido '%s'Desafío:_Movementos dun xogador:Sobre do xadrezAc_tivarBuscas activas: %dErro no enderezoAdministradorTódolos arquivos de xadrezTodos os FicheirosAnimar pezas, rotar taboleiro e máis. Usar es máquinas rápidas.Pedir que _mova_Rotar automaticamente o taboleiro cara ao xogador humano actualPeche automático de sesiónAXa que o %(loser)s se desconectouPorque o %(loser)s se quedou sen tempoPorque o %(loser)s se retirouPorque ó %(loser)s lle fixeron xaque mateXa que un xogador perdeu a conexiónXa que ambos xogadores quedaronse sen tempoPor decisión dun administradorPorque se perdeu a conexión ó servidorXa que o xogo superou o duración máximaPorque os últimos 50 movementos non aportaron nada novoBeepAlfilNegrasPartida rápidaPartida rápida:Centro:DesafíoReto: Desafío: Tolerancia ó cambioChatPartida de xadrezPosición do xadrezReloxoPechar sen gardarComentariosConectandoConectando co servidorErro na conexiónPechouse a conexiónInformación da conversaConversasNon se puido gardar o arquivoCrear buscaData/HoraDetectar tipo automaticamenteNon te preocupesTáboasEditar buscasEditar busca: EmailIntroducir partidaIntroducir _notación da partidaActividade:Animación completa do taboleiroModo de vista "Cara a cara"O ficheiro xa existeBeneficio:Información da partidaPartida en _táboas:Partida perdida:Partida gañada:Xogos en proceso: %dGran MestreHóspedeIdentificadorAgocharCómo xogarSer humanoSe se selecciona, as pezas negras estarán boca abaixo, axeitado para xogar contra amigos en dispositivos móbeis.Se se selecciona, o taboleiro xirará tras cada movemento, para amosar a vista natural do xogador actual.Se se activa, agóchase a lapela da parte superior da xanela cando non se precisa.Se non garda, os novos cambios perderanse definitivamente.Posición InicialMestre InternacionalSaltar á posición inicialSaltar a última posiciónReReiCabaloSaír da _pantalla completaLóstregoIluminación:Partida cargadaCargando información do xogadorEvento localErro ó iniciar sesiónEntrar como hóspedeEntrar como _convidadoIniciando sesión no servidorPerderManualAceptar manualmente ao opoñenteMinutos:Minutos: Máis canlesMáis xogadoresHistorial de movementosCNomeNon usar nunca animación. Usar en máquinas lentas.Nova partidaSen animaciónNon se seleccionou ningunha conversaSilencioFinais observados:ProbabilidadesOfrecer a_prazamentoOfrecer revanchaOfrecer i_nterromperOfrecer _táboasOfrecer _pausaOfrecer _reanudarOfrecer _desfacerPanel Oficial de PyChessDesconectadoConectadoAnimar soamente movementos.Animar so movementos de pezas.Só os usuarios rexistrados poden falar por este canleAbrir partidaAbrir Arquivo de SonAbrindo LibroMestría do opoñente: OutrosPPeónPingXogarXogar xadrez Fischer RandomXogar revanchaXogar xadrez na _redeXogar coas regras normais do xadrez_Cualificación do xogadorPo_rtos:_Vista previaMellor figuras nas anotaciónsPreferenciasPrivadoPromociónXanela de Información de PyChessPyChess.py:RaRaíñaSaír de PyChessTAleatorioRápidaPartida cualificadaCualificaciónTorreRonda:Re_xistroGardar partidaGardar _como...Gardar movementos antes de pechar?Partida gardadaPuntuaciónBuscar:_Gráfico de buscasSeleccionar arquivo de son...Selecciona as partidas que queres gardar:Enviar desafíoEnviar buscaPreparando entornoAmosar coordenadasAmosar _conversaAmosar consellos ao iniciarShredderLinuxChess:Paneis lateraisSitio web:Modo es_píaGastoEstándarEstándar:Retroceder un movementoAvanzar un movementoConta de equipoA oferta de abortarA oferta de táboasO panel de conversas permítelle comunicarse co seu opoñente durante a partida, sempre que el/ela queiraO reloxo non se iniciou aínda.O panel de comentario tratará de analizar e explicar os movementos realizadosPerdeuse a conexión - ver mensaxeNome a amosar para o primeiro xogador humano, p.ex., Xoán.Nome a amosar para o xogador convidado, p.ex., MaríaA oferta de táboasO erro foi: %sA partida quedou en táboasAbortouse a partidaAprazouse a partidaFinalizouse a partidaO movemento fallou porque %s.O oferta de intercambiar ladoA oferta de pausaDescoñécese a razónA oferta de reanudaciónO panel de puntuación trata de avaliar as posicións e amosache un gráfico do progreso da partidaEsta opción non é aplicábel xa que está a desafiar a un xogadorEsta opción non está dispoñible porque estás a retar a un invitado, TempoControl de tempo: Consello do díaConsello do díaTolerancia:Director de torneoTraducir PyChessTipoDesfacer un movementoDesfacer dous movementosDesinstalarDescoñecidoCanle non oficial %dSen cualificarSen tempoUsar analizadorUsar analizador inversoBenvido/aCando este botón está no estado «bloqueado», a relación entre a mestría do opoñente e a súa propia forza será preservada cando: a) cambia a súa propia cualificación para o tipo de partida b) vostede cambia a variación do control de tempoBrancasGañarNon pode xogar partidas cualificadas xa que está seleccionada a opción «Sen tempo», Non pode xogar partidas cualificadas xa que entrou como hóspedeNon podes seleccionar unha variante xa que está marcado «Sen tempo», Non podes intercambiar cores durante a partida.Pechouse a túa sesión porque estiveches ausente máis de 60 minutosNon abriches ningunha conversa aínda.Intentaches desfacer demasiados movementos.Enviou unha oferta de táboasO teu adversario quere que apures!O teu advesario non finalizou o tempo.A súa mestría: _Aceptar_AcciónsXogador _negras:_Chamar bandeira_Limpar buscas_Pantalla completa_PartidaLista de _partidasXeral_Axuda_Agochar lapelas cando só hai un xogo aberto_Modo agochado_Cargar partida_Pechar sesión_Rexistrar a vista_Nome:_Nova Partida_SeguinteMovementos observados:Adversario:_Contrasinal:_Xogar xadrez normalLista de _xogadores_Anterior_Rotar taboleiroGardar %d documentos_Gardar partidaBu_scas / Desafios:_Amosar controis lateraisSons_Iniciar PartidaUsar sons en PyChess_VerXogador _brancas:A túa cor:ee os convidados non poden xogar partidas cualificadase en FICS, as partidas sen tempo non se puntúane en FICS, as partidas sen tempo teñen que seguir as regras normais do xadrezpedirlle ó adversario que mova pezadefende %stáboasgnuchess:http://en.wikipedia.org/wiki/Chesshttp://en.wikipedia.org/wiki/Rules_of_chessmellora a seguridade do reiincrementa a presión en %sdeofrecer táboasofrecer unha pausaofrecer abortarofrecer aprazamentoofrecer a reanudaciónofrecer intercambiar ladosconectado en totalpromover un Peón a %srechazadamellora lixeiramente a seguridade do reio movemento necesita unha peza e unha coordenadavs.xanela1pychess-0.12.2/lang/es/0000755000175000017470000000000012653231274015105 5ustar tamasusers00000000000000pychess-0.12.2/lang/es/LC_MESSAGES/0000755000175000017470000000000012653231274016672 5ustar tamasusers00000000000000pychess-0.12.2/lang/es/LC_MESSAGES/pychess.po0000644000175000017470000033056412653216200020713 0ustar tamasusers00000000000000# SOME DESCRIPTIVE TITLE. # Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER # This file is distributed under the same license as the pychess package. # # Translators: # Adolfo Jayme Barrientos, 2012 # Antonio de la Vega Jiménez , 2015 # gbtami , 2015 # Henderb Rodriguez , 2014 # Henderb Rodriguez , 2014 # ignotus confutatis , 2013 # joemaro , 2015 # Edgar Carballo , 2013 msgid "" msgstr "" "Project-Id-Version: pychess\n" "Report-Msgid-Bugs-To: \n" "POT-Creation-Date: 2016-01-27 13:28+0100\n" "PO-Revision-Date: 2016-01-28 08:56+0000\n" "Last-Translator: slav0nic \n" "Language-Team: Spanish (http://www.transifex.com/gbtami/pychess/language/es/)\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" "Language: es\n" "Plural-Forms: nplurals=2; plural=(n != 1);\n" # "Plural-Forms: nplurals=INTEGER; plural=EXPRESSION;\n" #: glade/analyze_game.glade:22 msgid "Analyze game" msgstr "Analizar partida" #: glade/analyze_game.glade:87 msgid "Use analyzer:" msgstr "Utilizar analizador:" #: glade/analyze_game.glade:122 glade/PyChess.glade:2054 msgid "Maximum analysis time in seconds:" msgstr "Tiempo de análisis máximo en segundos:" #: glade/analyze_game.glade:163 msgid "" "If the analyzer finds a move where the evaluation difference (the difference" " between the evaluation for the move it thinks is the best move and the " "evaluation for the move made in the game) exceeds this value, it will add an" " annotation for that move (consisting of the engine's Principal Variation " "for the move) to the Annotation panel" msgstr "Si el analizador encuentra un movimiento donde la diferencia de evaluación (la diferencia entre la evaluación para el movimiento que piensa que es el mejor y la evaluación para el movimiento hecho en el juego) es superior a este valor, se agregará una anotación para el movimiento (que consiste en de Variación Principal del motor para el movimiento) al panel Anotación" #: glade/analyze_game.glade:164 msgid "Variation annotation creation threshold in centipawns:" msgstr "Crear umbral de variación en centipawns ( 1/100 del valor de un peón):" #: glade/analyze_game.glade:198 msgid "Analyze from current position" msgstr "" #: glade/analyze_game.glade:214 msgid "Add threatening variation lines " msgstr "" #: glade/analyze_game.glade:229 glade/PyChess.glade:1459 msgid "Colorize analyzed moves" msgstr "Colorear movimientos analizados" #: glade/analyze_game.glade:244 glade/PyChess.glade:1495 msgid "Show evaluation values" msgstr "Mostrar valores de evaluación" #: glade/discovererDialog.glade:18 msgid "PyChess is discovering your engines. Please wait." msgstr "PyChess está buscando sus motores de ajedrez. Por favor, espere." #: glade/discovererDialog.glade:77 msgid "PyChess.py:" msgstr "PyChess.py:" #: glade/discovererDialog.glade:89 msgid "ShredderLinuxChess:" msgstr "ShredderLinuxChess:" #: glade/discovererDialog.glade:101 msgid "gnuchess:" msgstr "gnuchess:" #: glade/fics_logon.glade:7 msgid "PyChess - Connect to Internet Chess" msgstr "PyChess - Conectar a servidor de ajedrez en internet" #: glade/fics_logon.glade:47 msgid "Connect to the Free Online Chess Server" msgstr "Conectar al Free Online Chess Server" #: glade/fics_logon.glade:129 glade/taskers.glade:394 msgid "_Password:" msgstr "_Contraseña:" #: glade/fics_logon.glade:143 msgid "_Name:" msgstr "_Nombre:" #: glade/fics_logon.glade:191 msgid "Log on as _Guest" msgstr "Conectarse como _invitado" #: glade/fics_logon.glade:227 msgid "Host:" msgstr "" #: glade/fics_logon.glade:259 msgid "Po_rts:" msgstr "Pue_rtos:" #: glade/fics_logon.glade:271 msgid "Auto login on startup" msgstr "" #: glade/fics_logon.glade:385 msgid "S_ign up" msgstr "Darse de alta" #: glade/fics_lounge.glade:35 msgid "Challenge: " msgstr "Desafío: " #: glade/fics_lounge.glade:97 msgid "Send Challenge" msgstr "Enviar desafío" #: glade/fics_lounge.glade:133 msgid "Challenge:" msgstr "Desafío:" #: glade/fics_lounge.glade:327 glade/fics_lounge.glade:2078 msgid "Lightning:" msgstr "Relámpago" #: glade/fics_lounge.glade:351 glade/fics_lounge.glade:2102 msgid "Standard:" msgstr "Estándar" #: glade/fics_lounge.glade:375 glade/fics_lounge.glade:2126 msgid "Blitz:" msgstr "Partidas rápidas (blitz)" #: glade/fics_lounge.glade:400 msgid "2 min, Fischer Random, Black" msgstr "Aleatorio Fisher, 2 minutos, negras" #: glade/fics_lounge.glade:422 msgid "10 min + 6 sec/move, White" msgstr "10 minutos + 6 seg/movimiento, blancas" #: glade/fics_lounge.glade:444 msgid "5 min" msgstr "5 min" #: glade/fics_lounge.glade:480 msgid "Edit Seek" msgstr "Editar búsqueda" #: glade/fics_lounge.glade:584 lib/pychess/ic/ICLounge.py:2208 #: lib/pychess/ic/__init__.py:101 lib/pychess/Utils/GameModel.py:206 msgid "Untimed" msgstr "Sin cronometrar" #: glade/fics_lounge.glade:637 msgid "Minutes: " msgstr "Minutos: " #: glade/fics_lounge.glade:665 msgid " Gain: " msgstr " Ganancia: " #: glade/fics_lounge.glade:703 msgid "Time control: " msgstr "Control de tiempo: " #: glade/fics_lounge.glade:716 lib/pychess/ic/FICSObjects.py:56 #: lib/pychess/ic/ICLounge.py:1137 lib/pychess/ic/ICLounge.py:2208 #: lib/pychess/ic/__init__.py:99 msgid "Standard" msgstr "Estándar" #: glade/fics_lounge.glade:757 glade/newInOut.glade:633 msgid "Time Control" msgstr "Control de tiempo" #: glade/fics_lounge.glade:814 glade/fics_lounge.glade:1346 msgid "Don't care" msgstr "No les importa" #: glade/fics_lounge.glade:879 msgid "Your strength: " msgstr "Su fuerza: " #: glade/fics_lounge.glade:921 msgid "(Blitz)" msgstr "(Bliz)" #: glade/fics_lounge.glade:951 msgid "Opponent's strength: " msgstr "Fuerza del oponente: " #: glade/fics_lounge.glade:1055 msgid "" "When this button is in the \"locked\" state, the relationship\n" "between \"Opponent's strength\" and \"Your strength\" will be\n" "preserved when \n" "a) your rating for the type of game sought has changed\n" "b) you change the variant or the time control" msgstr "Mientras este botón esté en el estado «bloqueado», la relación entre\n«la fuerza del oponente» y «su fuerza» será preservada mientras\na) su calificación para el tipo de juego buscado ha cambiado\nb) cambie la variante o el control de tiempo" #: glade/fics_lounge.glade:1095 msgid "Center:" msgstr "Centro:" #: glade/fics_lounge.glade:1134 msgid "1200" msgstr "1200" #: glade/fics_lounge.glade:1188 msgid "Tolerance:" msgstr "Tolerancia" #: glade/fics_lounge.glade:1243 lib/pychess/ic/ICLounge.py:2452 msgid "Hide" msgstr "Esconder" #: glade/fics_lounge.glade:1289 msgid "Opponent Strength" msgstr "Fuerza del oponente" #: glade/fics_lounge.glade:1386 lib/pychess/Database/gamelist.py:40 #: lib/pychess/ic/ICLounge.py:1357 lib/pychess/ic/ICLounge.py:1557 #: lib/pychess/ic/ICLounge.py:2108 lib/pychess/Utils/repr.py:10 #: lib/pychess/widgets/ChessClock.py:40 #: lib/pychess/widgets/TaskerManager.py:153 msgid "White" msgstr "Blancas" #: glade/fics_lounge.glade:1414 lib/pychess/Database/gamelist.py:40 #: lib/pychess/ic/ICLounge.py:1358 lib/pychess/ic/ICLounge.py:1558 #: lib/pychess/ic/ICLounge.py:2110 lib/pychess/Utils/repr.py:10 #: lib/pychess/widgets/ChessClock.py:40 #: lib/pychess/widgets/TaskerManager.py:154 msgid "Black" msgstr "Negras" #: glade/fics_lounge.glade:1453 msgid "Your Color" msgstr "Su color" #: glade/fics_lounge.glade:1512 msgid "Play normal chess rules" msgstr "Jugar según reglas normales del ajedrez" #: glade/fics_lounge.glade:1552 msgid "Play" msgstr "Jugar" #: glade/fics_lounge.glade:1618 glade/newInOut.glade:833 msgid "Chess Variant" msgstr "Variante" #: glade/fics_lounge.glade:1676 msgid "Rated game" msgstr "Juego clasificado" #: glade/fics_lounge.glade:1692 msgid "Manually accept opponent" msgstr "Aceptar oponente manualmente" #: glade/fics_lounge.glade:1722 msgid "Options" msgstr "Opciones" #: glade/fics_lounge.glade:1750 msgid "PyChess - Internet Chess: FICS" msgstr "PyChess - Ajedrez en Internet: FICS" #: glade/fics_lounge.glade:1823 msgid "_Clear Seeks" msgstr "Limpiar búsquedas" #: glade/fics_lounge.glade:1847 msgid "_Accept" msgstr "_Aceptar" #: glade/fics_lounge.glade:1871 msgid "_Decline" msgstr "_Declinar" #: glade/fics_lounge.glade:2151 msgid "2 min, Fischer Random, 1800↓, Black" msgstr "2 min, Fischer Random, 1800↓, Negras" #: glade/fics_lounge.glade:2172 msgid "10 min + 6 sec/move, 1400↑, White" msgstr "10 min + 6 seg/mov, 1400↑, Blancas" #: glade/fics_lounge.glade:2193 msgid "5 min, 1200-1800, Manual" msgstr "min, 1200-1800, Manual" #: glade/fics_lounge.glade:2247 msgid "Send all seeks" msgstr "Enviar todas la búsquedas " #: glade/fics_lounge.glade:2301 msgid "Send seek" msgstr "Enviar búsqueda" #: glade/fics_lounge.glade:2337 msgid "Create Seek" msgstr "Crear búsquedas" #: glade/fics_lounge.glade:2353 msgid "_Seeks / Challenges" msgstr "Búsquedas/Desafíos" #: glade/fics_lounge.glade:2374 lib/pychess/ic/ICLounge.py:472 #: lib/pychess/ic/ICLounge.py:670 lib/pychess/ic/ICLounge.py:1357 #: lib/pychess/ic/ICLounge.py:1358 msgid "Rating" msgstr "Calificación" #: glade/fics_lounge.glade:2399 msgid "Time" msgstr "Tiempo" #: glade/fics_lounge.glade:2419 msgid "Seek _Graph" msgstr "Busque Gráfico" #: glade/fics_lounge.glade:2444 msgid "0 Players Ready" msgstr "0 Jugadores Preparados" #: glade/fics_lounge.glade:2496 msgid "Challenge" msgstr "Desafío" #: glade/fics_lounge.glade:2549 glade/fics_lounge.glade:2735 msgid "Observe" msgstr "Observar" #: glade/fics_lounge.glade:2602 msgid "Start Private Chat" msgstr "Iniciar Chat Privado" #: glade/fics_lounge.glade:2659 msgid "_Player List" msgstr "Lista de jugadores" #: glade/fics_lounge.glade:2792 msgid "_Game List" msgstr "Lista de partidas" #: glade/fics_lounge.glade:2847 msgid "_My games" msgstr "" #: glade/fics_lounge.glade:2904 glade/PyChess.glade:841 msgid "Offer _Resume" msgstr "Ofrecer_Continuar" #: glade/fics_lounge.glade:2962 glade/PyChess.glade:880 msgid "R_esign" msgstr "Rendirse" #: glade/fics_lounge.glade:3006 glade/PyChess.glade:820 msgid "Offer _Draw" msgstr "Ofrecer _empate" #: glade/fics_lounge.glade:3050 msgid "Offer A_bort" msgstr "A_bortar oferta" #: glade/fics_lounge.glade:3107 msgid "Pre_view" msgstr "Pre_visualizar" #: glade/fics_lounge.glade:3151 msgid "Examine" msgstr "" #: glade/fics_lounge.glade:3208 msgid "_Archived" msgstr "" #: glade/fics_lounge.glade:3313 msgid "News" msgstr "Noticias" #: glade/fics_lounge.glade:3345 msgid "Show Console" msgstr "Mostrar consola" #: glade/fics_lounge.glade:3359 msgid "Show _Chat" msgstr "Mostrar _charla" #: glade/fics_lounge.glade:3373 msgid "_Log Off" msgstr "Desconectarse" #: glade/fics_lounge.glade:3393 msgid "Tools" msgstr "Herramientas" #: glade/fics_lounge.glade:3428 msgid "Asymmetric Random " msgstr "" #: glade/findbar.glade:6 msgid "window1" msgstr "ventana1" #: glade/findbar.glade:21 msgid "0 of 0" msgstr "0 de 0" #: glade/findbar.glade:66 msgid "Search:" msgstr "Buscar:" #: glade/findbar.glade:134 msgid "_Previous" msgstr "_Anterior" #: glade/findbar.glade:192 msgid "_Next" msgstr "_Siguiente" #: glade/newInOut.glade:45 lib/pychess/widgets/newGameDialog.py:445 msgid "New Game" msgstr "Nueva partida" #: glade/newInOut.glade:108 msgid "_Start Game" msgstr "_Empezar partida" #: glade/newInOut.glade:130 msgid "Copy FEN" msgstr "" #: glade/newInOut.glade:143 msgid "Clear" msgstr "" #: glade/newInOut.glade:156 msgid "Paste FEN" msgstr "" #: glade/newInOut.glade:257 msgid "_Black player:" msgstr "_Jugador negras:" #: glade/newInOut.glade:274 msgid "_White player:" msgstr "_Jugador blancas:" #: glade/newInOut.glade:385 msgid "Players" msgstr "Jugadores" #: glade/newInOut.glade:436 msgid "_Untimed" msgstr "Sin" #: glade/newInOut.glade:475 msgid "Blitz: 5 min" msgstr "" #: glade/newInOut.glade:526 msgid "Rapid: 15 min + 10 sec/move" msgstr "" #: glade/newInOut.glade:575 msgid "Normal: 40 min + 15 sec/move" msgstr "" #: glade/newInOut.glade:684 msgid "_Play Normal chess" msgstr "_Partida normal de ajedrez" #: glade/newInOut.glade:724 msgid "Play Fischer Random chess" msgstr "Jugar partida Aleatoria Fisher" #: glade/newInOut.glade:774 msgid "Play Losers chess" msgstr "Jugar Ajedrez Suicida" #: glade/newInOut.glade:919 msgid "Open Game" msgstr "Abrir partida" #: glade/newInOut.glade:1162 msgid "Initial Position" msgstr "Posición inicial" #: glade/newInOut.glade:1219 msgid "Enter Game Notation" msgstr "Introduzca la notación del juego" #: glade/newInOut.glade:1314 msgid "Halfmove clock" msgstr "" #: glade/newInOut.glade:1327 msgid "En passant line" msgstr "" #: glade/newInOut.glade:1339 msgid "Side to move" msgstr "" #: glade/newInOut.glade:1351 msgid "Move number" msgstr "" #: glade/newInOut.glade:1361 msgid "Black O-O" msgstr "" #: glade/newInOut.glade:1375 msgid "Black O-O-O" msgstr "" #: glade/newInOut.glade:1389 msgid "White O-O-O" msgstr "" #: glade/newInOut.glade:1403 msgid "White O-O" msgstr "" #: glade/promotion.glade:7 msgid "Promotion" msgstr "Coronar" #: glade/promotion.glade:49 lib/pychess/Utils/repr.py:12 msgid "Queen" msgstr "Reina" #: glade/promotion.glade:95 lib/pychess/Utils/repr.py:12 msgid "Rook" msgstr "Torre" #: glade/promotion.glade:141 lib/pychess/Utils/repr.py:12 msgid "Bishop" msgstr "Alfil" #: glade/promotion.glade:187 lib/pychess/Utils/repr.py:12 msgid "Knight" msgstr "Caballo" #: glade/promotion.glade:233 lib/pychess/Utils/repr.py:12 msgid "King" msgstr "Rey" #: glade/promotion.glade:265 msgid "Promote pawn to what?" msgstr "Coronar peón como" #: glade/PyChess.glade:9 msgid "Chess client" msgstr "" #: glade/PyChess.glade:44 msgid "Game information" msgstr "Información de la partida" #: glade/PyChess.glade:164 msgid "Event:" msgstr "Evento:" #: glade/PyChess.glade:178 msgid "Site:" msgstr "Lugar:" #: glade/PyChess.glade:204 msgid "Round:" msgstr "Ronda:" #: glade/PyChess.glade:237 msgid "White:" msgstr "Blancas:" #: glade/PyChess.glade:249 msgid "Black:" msgstr "Negras:" #: glade/PyChess.glade:302 msgid "Game data" msgstr "Datos de la partida" #: glade/PyChess.glade:357 msgid "Date of game" msgstr "Fecha de la partida" #: glade/PyChess.glade:495 msgid "_Game" msgstr "_Partida" #: glade/PyChess.glade:502 msgid "_New Game" msgstr "_Nueva partida" #: glade/PyChess.glade:515 msgid "Play _Internet Chess" msgstr "Jugar ajedrez en internet" #: glade/PyChess.glade:534 msgid "_Load Game" msgstr "_Cargar partida" #: glade/PyChess.glade:550 msgid "Load _Recent Game" msgstr "Cargar juego _reciente" #: glade/PyChess.glade:558 msgid "Open _Database" msgstr "Abrir base de _datos" #: glade/PyChess.glade:569 lib/pychess/widgets/newGameDialog.py:615 msgid "Setup Position" msgstr "Posición" #: glade/PyChess.glade:579 msgid "Enter Game _Notation" msgstr "Introducir Notación del _Juego" #: glade/PyChess.glade:592 msgid "_Save Game" msgstr "_Guardar partida" #: glade/PyChess.glade:606 msgid "Save Game _As" msgstr "Guardar partida _como" #: glade/PyChess.glade:624 msgid "Share Game" msgstr "" #: glade/PyChess.glade:630 msgid "_Export Position" msgstr "_Exportar posición" #: glade/PyChess.glade:644 msgid "_Analyze Game" msgstr "_Analyzar Juego" #: glade/PyChess.glade:678 msgid "Player _Rating" msgstr "_Calificación del Jugador" #: glade/PyChess.glade:723 msgid "_Edit" msgstr "Editar" #: glade/PyChess.glade:734 msgid "_Copy PGN" msgstr "Copiar PGN" #: glade/PyChess.glade:746 msgid "_Copy FEN" msgstr "" #: glade/PyChess.glade:763 msgid "_Engines" msgstr "Motores" #: glade/PyChess.glade:789 msgid "_Actions" msgstr "_Acciones" #: glade/PyChess.glade:800 msgid "Offer _Abort" msgstr "Ofrecer_abortar" #: glade/PyChess.glade:810 msgid "Offer Ad_journment" msgstr "Ofrecer aplazamiento" #: glade/PyChess.glade:831 msgid "Offer _Pause" msgstr "Ofrecer pausa" #: glade/PyChess.glade:847 msgid "Offer _Undo" msgstr "Ofrecer_Deshacer" #: glade/PyChess.glade:870 msgid "_Call Flag" msgstr "_Reclamar bandera" #: glade/PyChess.glade:890 msgid "Ask to _Move" msgstr "Pedir_Movimiento" #: glade/PyChess.glade:905 msgid "Auto Call _Flag" msgstr "Automáticamente reclar victoria por tiempo" #: glade/PyChess.glade:918 msgid "_View" msgstr "_Ver" #: glade/PyChess.glade:925 msgid "_Rotate Board" msgstr "_Girar el tablero" #: glade/PyChess.glade:939 msgid "_Fullscreen" msgstr "_Pantalla completa" #: glade/PyChess.glade:952 msgid "Leave _Fullscreen" msgstr "_Cerrar_Pantalla completa" #: glade/PyChess.glade:969 msgid "_Show Sidepanels" msgstr "_Mostrar paneles laterales" #: glade/PyChess.glade:980 msgid "_Log Viewer" msgstr "_Visor de sucesos" #: glade/PyChess.glade:997 msgid "_Hint mode" msgstr "_Modo ayuda" #: glade/PyChess.glade:1009 msgid "Sp_y mode" msgstr "Modo _espía" #: glade/PyChess.glade:1024 msgid "_Help" msgstr "Ay_uda" #: glade/PyChess.glade:1034 msgid "About Chess" msgstr "Acerca de Ajedrez" #: glade/PyChess.glade:1043 msgid "How to Play" msgstr "Cómo jugar" #: glade/PyChess.glade:1052 msgid "Translate PyChess" msgstr "Traducir PyChess" #: glade/PyChess.glade:1058 msgid "Tip of the Day" msgstr "Consejo del día" #: glade/PyChess.glade:1153 msgid "Default" msgstr "Por Defecto" #: glade/PyChess.glade:1156 msgid "Knights" msgstr "Caballos" #: glade/PyChess.glade:1167 lib/pychess/widgets/preferencesDialog.py:349 msgid "Beep" msgstr "Bip" #: glade/PyChess.glade:1170 lib/pychess/widgets/preferencesDialog.py:350 msgid "Select sound file..." msgstr "Seleccione un archivo de sonido…" #: glade/PyChess.glade:1173 lib/pychess/widgets/preferencesDialog.py:348 msgid "No sound" msgstr "Sin sonido" #: glade/PyChess.glade:1180 msgid "Preferences" msgstr "Preferencias" #: glade/PyChess.glade:1218 msgid "The displayed name of the first human player, e.g., John." msgstr "El nombre que se mostrará del primer jugador humano, por ejemplo, Juan." #: glade/PyChess.glade:1230 msgid "Name of _first human player:" msgstr "Nombre del _primer jugador humano:" #: glade/PyChess.glade:1259 msgid "The displayed name of the guest player, e.g., Mary." msgstr "El nombre que se mostrará del jugador invitado, por ejemplo, María." #: glade/PyChess.glade:1271 msgid "Name of s_econd human player:" msgstr "Nombre del _segundo jugador humano:" #: glade/PyChess.glade:1307 msgid "_Hide tabs when only one game is open" msgstr "_Ocultar pestañas solo cuando un juego está abierto" #: glade/PyChess.glade:1312 msgid "" "If set, this hides the tab in the top of the playing window, when it is not " "needed." msgstr "Activado, esconde la pestaña superior de la ventana de juego cuando no es necesaria." #: glade/PyChess.glade:1326 msgid "_Use main app closer [x] to close all games" msgstr "" #: glade/PyChess.glade:1331 msgid "" "If set, clicking on main application window closer first time it closes all " "games." msgstr "" #: glade/PyChess.glade:1345 msgid "Auto _rotate board to current human player" msgstr "Orientar tablero al jugador humano actual" #: glade/PyChess.glade:1350 msgid "" "If set, the board will turn after each move, to show the natural view for " "the current player." msgstr "Activado, el tablero girará tras cada jugada ofreciendo al jugador actual su vista natural." #: glade/PyChess.glade:1364 msgid "Auto _promote to queen" msgstr "" #: glade/PyChess.glade:1369 msgid "If set, pawn promotes to queen without promotion dialog selection." msgstr "" #: glade/PyChess.glade:1383 msgid "Face _to Face display mode" msgstr "Disposición Cara a Cara" #: glade/PyChess.glade:1388 msgid "" "If set, the black pieces will be head down, suitable for playing against " "friends on mobile devices." msgstr "Activado, las piezas negras se muestran boca abajo. Adecuado para jugar en dispositivos móviles." #: glade/PyChess.glade:1402 msgid "Sho_w cords" msgstr "Mostrar coordenadas" #: glade/PyChess.glade:1407 msgid "" "If set, the playing board will display labels and ranks for each chess " "field. These are usable in chess notation." msgstr "Activado, muestra encabezados de filas y columnas. Son útiles para la notación." #: glade/PyChess.glade:1421 msgid "Show _captured pieces" msgstr "Muestra las piezas capturadas" #: glade/PyChess.glade:1426 msgid "If set, the captured figurines will be shown next to the board." msgstr "Si está activo, las piezas capturadas se mostrarán junto al tablero." #: glade/PyChess.glade:1440 msgid "Prefer figures in _notation" msgstr "Usar figuras en la_notación" #: glade/PyChess.glade:1445 msgid "" "If set, PyChess will use figures to express moved pieces, rather than " "uppercase letters." msgstr "Activado, PyChess usará figuras para expresar los movimientos en vez de letras mayúsculas." #: glade/PyChess.glade:1464 msgid "If set, PyChess will colorize suboptimal analyzed moves with red." msgstr "Si es fijado, PyChess coloreará los movimientos analizados sub-óptimos con rojo." #: glade/PyChess.glade:1477 msgid "Show elapsed move times" msgstr "Mostrar tiempos de movimiento transcurrido" #: glade/PyChess.glade:1482 msgid "If set, the elapsed time that a player used for the move is shown." msgstr "Si es fijado, se muestra el tiempo transcurrido que un jugador ha usado para el movimiento." #: glade/PyChess.glade:1500 msgid "If set, the hint analyzer engine evaluation value is shown." msgstr "Si se activa, se muestra el valor de evaluación del motor analizador de pista." #: glade/PyChess.glade:1526 msgid "General Options" msgstr "" #: glade/PyChess.glade:1560 msgid "F_ull board animation" msgstr "Animación completa del tablero" #: glade/PyChess.glade:1565 msgid "Animate pieces, board rotation and more. Use this on fast machines." msgstr "Animación de piezas, rotación del tablero y otros. Usar en equipos rápidos." #: glade/PyChess.glade:1579 msgid "Only animate _moves" msgstr "Animación completa" #: glade/PyChess.glade:1584 msgid "Only animate piece moves." msgstr "Sólo animar movimiento piezas" #: glade/PyChess.glade:1599 msgid "No _animation" msgstr "Sin animación" #: glade/PyChess.glade:1604 msgid "Never use animation. Use this on slow machines." msgstr "Desactiva las animaciones. Usar en equipos lentos." #: glade/PyChess.glade:1632 msgid "Animation" msgstr "Animación" #: glade/PyChess.glade:1651 msgid "_General" msgstr "_General" #: glade/PyChess.glade:1692 msgid "Use opening _book" msgstr "Usa libro de apertura" #: glade/PyChess.glade:1697 msgid "If set, PyChess will suggest best opening moves on hint panel." msgstr "Si está activo, PyChess sugerirá los mejor movientos en la apertura en el panel de tips." #: glade/PyChess.glade:1724 msgid "Polyglot book file:" msgstr "Archivo para el libro de Polyglot:" #: glade/PyChess.glade:1768 msgid "Use _local tablebases" msgstr "Usa las tablas locales" #: glade/PyChess.glade:1773 msgid "" "If set, PyChess will show game results for different moves in positions containing 6 or less pieces.\n" "You can download tablebase files from:\n" "http://www.olympuschess.com/egtb/gaviota/" msgstr "Si está activa esta opción, PyChess mostrará los resultados de las partidas para diferentes movientos en posiciones conteniendo 6 o menos piezas.\\n\nPuedes descargar las tablas de finales de:\\n\nhttp://www.olympuschess.com/egtb/gaviota/" #: glade/PyChess.glade:1803 msgid "Gaviota TB path:" msgstr "Ruta a las tablas de finales de Gaviota:" #: glade/PyChess.glade:1843 msgid "Use _online tablebases" msgstr "Usa las tablas en Internet" #: glade/PyChess.glade:1848 msgid "" "If set, PyChess will show game results for different moves in positions containing 6 or less pieces.\n" "It will search positions from http://www.k4it.de/" msgstr "Si esta opción está activa, entonces PyChess mostrará los resultados de la partida para los diferentes movimientos en las posiciones que tengan 6 o menos piezas.\\n\nBuscará posiciones desde http://www.k4it.de/" #: glade/PyChess.glade:1870 msgid "Opening, endgame" msgstr "Apertura, final" #: glade/PyChess.glade:1904 msgid "Use _analyzer" msgstr "Usar _analizador" #: glade/PyChess.glade:1946 msgid "" "The analyzer will run in the background and analyze the game. This is " "necessary for the hint mode to work" msgstr "El analizador se ejecutará en segundo plano y analizará el juego. Esto es necesario para el funcionamiento del modo ayuda" #: glade/PyChess.glade:1978 msgid "Use _inverted analyzer" msgstr "Usar _analizador invertido" #: glade/PyChess.glade:2020 msgid "" "The inverse analyzer will analyze the game as if your opponent was to move. " "This is necessary for the spy mode to work" msgstr "El analizador inverso analizará el juego como si fuera el turno de tu oponente. Esto es necesario para el funcionamiento del modo espía" #: glade/PyChess.glade:2096 msgid "Analyzing" msgstr "Analizando" #: glade/PyChess.glade:2118 msgid "_Hints" msgstr "Tips" #: glade/PyChess.glade:2263 msgid "Uninstall" msgstr "Desinstalar" #: glade/PyChess.glade:2317 msgid "Ac_tive" msgstr "Activo" #: glade/PyChess.glade:2367 msgid "Installed Sidepanels" msgstr "Paneles laterales instalados" #: glade/PyChess.glade:2382 msgid "Side_panels" msgstr "Paneles laterales" #: glade/PyChess.glade:2440 msgid "Light Squares :" msgstr "" #: glade/PyChess.glade:2479 msgid "Dark Squares :" msgstr "" #: glade/PyChess.glade:2515 msgid "Reset Default Colours" msgstr "" #: glade/PyChess.glade:2551 msgid "Board Colours" msgstr "" #: glade/PyChess.glade:2610 msgid "Chess Sets" msgstr "" #: glade/PyChess.glade:2634 msgid "Themes" msgstr "Temas" #: glade/PyChess.glade:2659 msgid "_Use sounds in PyChess" msgstr "_Usar sonidos en PyChess" #: glade/PyChess.glade:2982 msgid "A player _checks:" msgstr "Un jugador _jaquea:" #: glade/PyChess.glade:2997 msgid "A player _moves:" msgstr "Un jugador _mueve:" #: glade/PyChess.glade:3010 msgid "Game is _drawn:" msgstr "La partida está _empatada:" #: glade/PyChess.glade:3025 msgid "Game is _lost:" msgstr "La partida está _perdida:" #: glade/PyChess.glade:3040 msgid "Game is _won:" msgstr "La partida está _ganada:" #: glade/PyChess.glade:3055 msgid "A player c_aptures:" msgstr "Un jugador _captura:" #: glade/PyChess.glade:3084 msgid "Game is _set-up:" msgstr "La partida está _establecida:" #: glade/PyChess.glade:3136 msgid "_Observed moves:" msgstr "_Movidas observadas:" #: glade/PyChess.glade:3151 msgid "Observed _ends:" msgstr "Observados _finales:" #: glade/PyChess.glade:3265 msgid "Short on _time:" msgstr "" #: glade/PyChess.glade:3317 msgid "_Invalid move:" msgstr "_Movimiento inválido: " #: glade/PyChess.glade:3369 msgid "Activate alarm when _remaining sec is:" msgstr "" #: glade/PyChess.glade:3416 msgid "Play Sound When..." msgstr "Reproducir sonido cuando..." #: glade/PyChess.glade:3438 msgid "_Sounds" msgstr "_Sonidos" #: glade/PyChess.glade:3463 msgid "_Auto save finished games" msgstr "" #: glade/PyChess.glade:3497 msgid "Save files to:" msgstr "" #: glade/PyChess.glade:3525 msgid "Use name format:" msgstr "" #: glade/PyChess.glade:3569 msgid "Names: #n1, #n2" msgstr "" #: glade/PyChess.glade:3582 msgid "Year, month, day: #y, #m, #d" msgstr "" #: glade/PyChess.glade:3619 msgid "Save elapsed move _times" msgstr "" #: glade/PyChess.glade:3644 msgid "Save analyzing engine _evaluation values" msgstr "" #: glade/PyChess.glade:3669 msgid "Save _own games only" msgstr "" #: glade/PyChess.glade:3698 msgid "Save" msgstr "Guardar" #: glade/PyChess.glade:3728 msgid "uci" msgstr "uci" #: glade/PyChess.glade:3731 msgid "xboard" msgstr "xboard" #: glade/PyChess.glade:3739 msgid "Manage engines" msgstr "Administrar los motores" #: glade/PyChess.glade:3837 msgid "Command:" msgstr "Instrucción:" #: glade/PyChess.glade:3851 msgid "Protocol:" msgstr "Protocolo:" #: glade/PyChess.glade:3865 msgid "Parameters:" msgstr "Parámetros:" #: glade/PyChess.glade:3878 msgid "Command line parameters needed by the engine." msgstr "Parámetros de la línea de comandos necesarios para el motor." #: glade/PyChess.glade:3903 msgid "" "Engines use uci or xboard communication protocol to talk to the GUI.\n" "If it can use both you can set here which one you like." msgstr "Los motores usan los protocolos de comunicación uci y xboard para platicar con la interfaz de usuario.\\n\nSi este puede usar ambos entonces debes espeficicar cuál de los dos prefieres." #: glade/PyChess.glade:3929 msgid "Working directory:" msgstr "Directorio de trabajo:" #: glade/PyChess.glade:3942 msgid "The directory where the engine will be started from." msgstr "El directorio desde donde el motor iniciará." #: glade/saveGamesDialog.glade:7 msgid "Quit PyChess" msgstr "Salir de PyChess" #: glade/saveGamesDialog.glade:24 lib/pychess/widgets/ionest.py:424 msgid "Close _without Saving" msgstr "Cerrar _sin guardar" #: glade/saveGamesDialog.glade:83 msgid "_Save %d documents" msgstr "_Guardar %d documentos" #: glade/saveGamesDialog.glade:141 msgid "" "There are %d games with unsaved moves. Save changes before " "closing?" msgstr "Hay %d juegos con movimientos sin guardar. ¿Guardar cambios antes de cerrar?" #: glade/saveGamesDialog.glade:161 msgid "Select the games you want to save:" msgstr "Seleccione el juego que desea guardar:" #: glade/saveGamesDialog.glade:204 msgid "If you don't save, new changes to your games will be permanently lost." msgstr "Si no se guardan, los cambios en los juegos se perderán." #: glade/taskers.glade:126 msgid "_Opponent:" msgstr "_Oponente:" #: glade/taskers.glade:154 msgid "_Your Color:" msgstr "_Su color" #: glade/taskers.glade:219 msgid "_Start Game" msgstr "_Empezar partida" #: glade/taskers.glade:338 msgid "Log on as G_uest" msgstr "Iniciar sesión como invitado" #: glade/taskers.glade:410 msgid "Ha_ndle:" msgstr "Ma_nejar:" #: glade/taskers.glade:469 msgid "_Connect to server" msgstr "" #: glade/tipoftheday.glade:7 msgid "Tip Of The day" msgstr "Consejo del día" #: glade/tipoftheday.glade:62 msgid "Show tips at startup" msgstr "Mostrar consejos al inicio" #: lib/pychess/Main.py:302 msgid "http://en.wikipedia.org/wiki/Chess" msgstr "http://es.wikipedia.org/wiki/Ajedrez" #: lib/pychess/Main.py:305 msgid "http://en.wikipedia.org/wiki/Rules_of_chess" msgstr "http://es.wikipedia.org/wiki/Reglas_del_ajedrez" #: lib/pychess/Main.py:370 lib/pychess/widgets/gamenanny.py:80 msgid "Welcome" msgstr "Bienvenido/a" #: lib/pychess/Database/gamelist.py:40 msgid "Id" msgstr "Id" #: lib/pychess/Database/gamelist.py:40 msgid "W Elo" msgstr "B Elo" #: lib/pychess/Database/gamelist.py:40 msgid "B Elo" msgstr "N Elo" #: lib/pychess/Database/gamelist.py:41 msgid "Result" msgstr "Resultado" #: lib/pychess/Database/gamelist.py:41 msgid "Event" msgstr "Evento" #: lib/pychess/Database/gamelist.py:41 msgid "Site" msgstr "Sitio" #: lib/pychess/Database/gamelist.py:41 msgid "Round" msgstr "Ronda" #: lib/pychess/Database/gamelist.py:41 msgid "Date" msgstr "Fecha" #: lib/pychess/Database/gamelist.py:41 msgid "ECO" msgstr "ECO" #: lib/pychess/Database/gamelist.py:62 msgid "PyChess Game Database" msgstr "Base de datos de jugadas de PyChess" #: lib/pychess/Database/PgnImport.py:188 #, python-format msgid "The game #%s can't be loaded, because of an error parsing FEN" msgstr "El juego #%s no se pudo leer debido a un error en la cadena de posición (FEN)." #: lib/pychess/ic/FICSConnection.py:139 msgid "The connection was broken - got \"end of file\" message" msgstr "La conexión fue fallida - se obtuvo el mensaje «fin de archivo»" #: lib/pychess/ic/FICSConnection.py:140 #, python-format msgid "'%s' is not a registered name" msgstr "«%s» no es un nombre registrado" #: lib/pychess/ic/FICSConnection.py:141 msgid "" "The entered password was invalid.\n" "If you forgot your password, go to http://www.freechess.org/password to request a new one over email." msgstr "La clave entrada es inválida.\nSi ha olvidado su clave, vaya a http://www.freechess.org/password para solicitar una nueva por email." #: lib/pychess/ic/FICSConnection.py:145 #, python-format msgid "Sorry '%s' is already logged in" msgstr "Perdón, '%s' ya ha iniciado sesión" #: lib/pychess/ic/FICSConnection.py:146 #, python-format msgid "'%s' is a registered name. If it is yours, type the password." msgstr "'%s' es un nombre registrado. Si es tuyo, introduce la contraseña." #: lib/pychess/ic/FICSConnection.py:147 msgid "" "Due to abuse problems, guest connections have been prevented.\n" "You can still register on http://www.freechess.org" msgstr "" #: lib/pychess/ic/FICSConnection.py:166 msgid "Connecting to server" msgstr "Conectando al servidor" #: lib/pychess/ic/FICSConnection.py:181 msgid "Logging on to server" msgstr "Iniciando sesión con el servidor" #: lib/pychess/ic/FICSConnection.py:239 msgid "Setting up environment" msgstr "Preparando entorno" #: lib/pychess/ic/FICSObjects.py:35 lib/pychess/ic/FICSObjects.py:47 #, python-format msgid "%(player)s is %(status)s" msgstr "%(player)s es %(status)s" #: lib/pychess/ic/FICSObjects.py:46 msgid "not playing" msgstr "No se esta jugando" #: lib/pychess/ic/FICSObjects.py:54 lib/pychess/ic/ICLounge.py:1136 #: lib/pychess/ic/ICLounge.py:2209 lib/pychess/ic/__init__.py:98 #: lib/pychess/widgets/newGameDialog.py:153 msgid "Blitz" msgstr "Carga" #: lib/pychess/ic/FICSObjects.py:58 lib/pychess/ic/ICLounge.py:1137 #: lib/pychess/ic/ICLounge.py:2209 lib/pychess/ic/__init__.py:100 msgid "Lightning" msgstr "Relámpago" #: lib/pychess/ic/FICSObjects.py:60 lib/pychess/Variants/atomic.py:15 msgid "Atomic" msgstr "Atómico" #: lib/pychess/ic/FICSObjects.py:62 lib/pychess/Variants/bughouse.py:9 msgid "Bughouse" msgstr "Bughouse" #: lib/pychess/ic/FICSObjects.py:64 lib/pychess/Variants/crazyhouse.py:9 msgid "Crazyhouse" msgstr "Crazyhouse" #: lib/pychess/ic/FICSObjects.py:66 lib/pychess/Variants/losers.py:9 msgid "Losers" msgstr "Losers" #: lib/pychess/ic/FICSObjects.py:68 lib/pychess/Variants/suicide.py:12 msgid "Suicide" msgstr "Suicida" #: lib/pychess/ic/FICSObjects.py:70 lib/pychess/ic/__init__.py:129 msgid "Wild" msgstr "Salvaje" #: lib/pychess/ic/FICSObjects.py:117 msgid "Online" msgstr "En línea" #: lib/pychess/ic/FICSObjects.py:118 lib/pychess/ic/FICSObjects.py:143 msgid "Offline" msgstr "Desconectado" #: lib/pychess/ic/FICSObjects.py:133 msgid "Available" msgstr "Disponible" #: lib/pychess/ic/FICSObjects.py:135 msgid "Playing" msgstr "Jugando" #: lib/pychess/ic/FICSObjects.py:141 msgid "Idle" msgstr "Inactivo" #: lib/pychess/ic/FICSObjects.py:145 msgid "Examining" msgstr "Examinando" #: lib/pychess/ic/FICSObjects.py:147 msgid "Not Available" msgstr "No Disponible" #: lib/pychess/ic/FICSObjects.py:149 msgid "Running Simul Match" msgstr "Corriendo un Match simultáneo" #: lib/pychess/ic/FICSObjects.py:151 msgid "In Tournament" msgstr "En torneo" #: lib/pychess/ic/FICSObjects.py:308 lib/pychess/ic/FICSObjects.py:492 #: lib/pychess/ic/ICLounge.py:2278 msgid "Unrated" msgstr "Sin calificación" #: lib/pychess/ic/FICSObjects.py:491 lib/pychess/ic/ICLounge.py:670 #: lib/pychess/ic/ICLounge.py:1358 lib/pychess/ic/ICLounge.py:1558 #: lib/pychess/ic/ICLounge.py:2113 msgid "Rated" msgstr "Calificado" #: lib/pychess/ic/FICSObjects.py:498 lib/pychess/ic/ICLounge.py:2098 #, python-format msgid "%d min" msgstr "%d min" #: lib/pychess/ic/FICSObjects.py:500 #, python-format msgid " + %d sec" msgstr " + %d seg" #: lib/pychess/ic/FICSObjects.py:517 #, python-format msgid "%(player)s plays %(color)s" msgstr "%(player)s jugador %(color)s" #: lib/pychess/ic/FICSObjects.py:519 lib/pychess/ic/ICLounge.py:909 msgid "white" msgstr "blancas" #: lib/pychess/ic/FICSObjects.py:519 lib/pychess/ic/ICLounge.py:909 msgid "black" msgstr "negras" #: lib/pychess/ic/FICSObjects.py:565 msgid "This is a continuation of an adjourned match" msgstr "Esto es una continuación de un juego suspendido" #: lib/pychess/ic/FICSObjects.py:654 msgid "Opponent Rating" msgstr "Rating del Adversario" #: lib/pychess/ic/FICSObjects.py:656 msgid "Manual Accept" msgstr "Aceptar Manualmente" #: lib/pychess/ic/FICSObjects.py:810 msgid "Private" msgstr "Privado" #: lib/pychess/ic/FICSObjects.py:930 lib/pychess/ic/ICLounge.py:527 #: lib/pychess/Savers/epd.py:139 msgid "Unknown" msgstr "Desconocido" #: lib/pychess/ic/ICLogon.py:159 lib/pychess/ic/ICLogon.py:165 msgid "Connection Error" msgstr "Error de conexión" #: lib/pychess/ic/ICLogon.py:161 msgid "Log on Error" msgstr "Reportar cuando Error" #: lib/pychess/ic/ICLogon.py:163 msgid "Connection was closed" msgstr "La conección se cerró" #: lib/pychess/ic/ICLogon.py:169 msgid "Address Error" msgstr "Error en la dirección" #: lib/pychess/ic/ICLogon.py:172 msgid "Auto-logout" msgstr "Terminar conexión automáticamente" #: lib/pychess/ic/ICLogon.py:173 msgid "You have been logged out because you were idle more than 60 minutes" msgstr "Ha sido desconectado por inactividad durante más de 60 minutos" #: lib/pychess/ic/ICLounge.py:222 msgid "You have to set kibitz on to see bot messages here." msgstr "" #: lib/pychess/ic/ICLounge.py:241 msgid "" "You may only have 3 outstanding seeks at the same time. If you want to add a" " new seek you must clear your currently active seeks. Clear your seeks?" msgstr "Solo puedes procesar 3 búsquedas al mismo tiempo. Si quieres agregar una nueva búsqueda entonces deberás eliminar tus búsquedas activas actuales. ¿Quieres eliminar las actuales?" #: lib/pychess/ic/ICLounge.py:258 msgid "You can't touch this! You are examining a game." msgstr "" #: lib/pychess/ic/ICLounge.py:270 msgid " has declined your offer for a match" msgstr "ha rechazado su oferta para una partida" #: lib/pychess/ic/ICLounge.py:283 msgid " is censoring you" msgstr "te está censurando" #: lib/pychess/ic/ICLounge.py:296 msgid " noplay listing you" msgstr "" #: lib/pychess/ic/ICLounge.py:311 msgid " uses a formula not fitting your match request:" msgstr "" #: lib/pychess/ic/ICLounge.py:325 msgid "to manual accept" msgstr "Para aceptar manualmente" #: lib/pychess/ic/ICLounge.py:327 msgid "to automatic accept" msgstr "Para aceptar automáticamente" #: lib/pychess/ic/ICLounge.py:329 msgid "rating range now" msgstr "Rango de clasificación actual" #: lib/pychess/ic/ICLounge.py:330 msgid "Seek updated" msgstr "Búsqueda actualizada" #: lib/pychess/ic/ICLounge.py:342 msgid "Your seeks have been removed" msgstr "Tus búsquedas han sido eliminadas" #: lib/pychess/ic/ICLounge.py:363 msgid " has arrived" msgstr "ha llegado" #: lib/pychess/ic/ICLounge.py:370 msgid " has departed" msgstr "se ha ido" #: lib/pychess/ic/ICLounge.py:374 msgid " is present" msgstr "está presente" #: lib/pychess/ic/ICLounge.py:391 sidepanel/chatPanel.py:17 msgid "Chat" msgstr "Charla" #: lib/pychess/ic/ICLounge.py:472 sidepanel/bookPanel.py:366 msgid "Win" msgstr "Victoria" #: lib/pychess/ic/ICLounge.py:472 sidepanel/bookPanel.py:360 msgid "Draw" msgstr "Empate" #: lib/pychess/ic/ICLounge.py:472 sidepanel/bookPanel.py:363 msgid "Loss" msgstr "Derrota" #: lib/pychess/ic/ICLounge.py:482 msgid "" "On FICS, your \"Wild\" rating encompasses all of the following variants at " "all time controls:\n" msgstr "En FICS, su clasificación \"Libre\" abarca todas las siguientes variantes:\n" #: lib/pychess/ic/ICLounge.py:494 msgid "Sanctions" msgstr "Sanciones" #: lib/pychess/ic/ICLounge.py:499 msgid "Email" msgstr "Correo Electrónico" #: lib/pychess/ic/ICLounge.py:504 msgid "Spent" msgstr "Gastado" #: lib/pychess/ic/ICLounge.py:506 msgid "online in total" msgstr "total en conectados" #: lib/pychess/ic/ICLounge.py:512 msgid "Ping" msgstr "Ping" #: lib/pychess/ic/ICLounge.py:517 msgid "Connecting" msgstr "Conectando" #: lib/pychess/ic/ICLounge.py:544 msgid "" "You are currently logged in as a guest.\n" "A guest can't play rated games and therefore isn't able to play as many of the types of matches offered as a registered user. To register an account, go to http://www.freechess.org/Register/index.html." msgstr "Ud. ha ingresado como usuario invitado.\nUn invitado no puede jugar partidas puntuadas y por lo tanto no será capaz de jugar muchos de los tipos de encuentros ofrecidos a usuarios registrados. Para registrar una cuenta, vaya a http://www.freechess.org/Register/index.html." #: lib/pychess/ic/ICLounge.py:669 lib/pychess/ic/ICLounge.py:1136 msgid "Name" msgstr "Nombre" #: lib/pychess/ic/ICLounge.py:670 lib/pychess/ic/ICLounge.py:1358 #: lib/pychess/ic/ICLounge.py:1558 msgid "Type" msgstr "Tipo" #: lib/pychess/ic/ICLounge.py:670 lib/pychess/ic/ICLounge.py:1558 msgid "Clock" msgstr "Reloj" #: lib/pychess/ic/ICLounge.py:726 lib/pychess/ic/ICLounge.py:923 #: lib/pychess/Players/Human.py:250 msgid "Accept" msgstr "Aceptar" #: lib/pychess/ic/ICLounge.py:728 msgid "Assess" msgstr "" #: lib/pychess/ic/ICLounge.py:734 msgid "Archived" msgstr "" #: lib/pychess/ic/ICLounge.py:848 #, python-format msgid "Active seeks: %d" msgstr "Búsqiedas activas: %d" #: lib/pychess/ic/ICLounge.py:897 #, python-format msgid "" " would like to resume your adjourned %(time)s %(gametype)s " "game." msgstr "Te gustaría continuar tu partida %(time)s %(gametype)s suspendida." #: lib/pychess/ic/ICLounge.py:902 #, python-format msgid "" " challenges you to a %(time)s %(rated)s %(gametype)s game" msgstr "te reta a una partida %(time)s %(rated)s %(gametype)s " #: lib/pychess/ic/ICLounge.py:907 #, python-format msgid " where %(player)s plays %(color)s." msgstr "donde %(player)s juega con %(color)s." #: lib/pychess/ic/ICLounge.py:924 lib/pychess/Players/Human.py:251 msgid "Decline" msgstr "Rechazar" #: lib/pychess/ic/ICLounge.py:1065 msgid " min" msgstr " min" #: lib/pychess/ic/ICLounge.py:1137 msgid "Status" msgstr "Estado" #: lib/pychess/ic/ICLounge.py:1203 lib/pychess/ic/ICLounge.py:1233 #, python-format msgid "Players: %d" msgstr "Jugadores: %d" #: lib/pychess/ic/ICLounge.py:1469 #, python-format msgid "Games running: %d" msgstr "Juegos en curso: %d" #: lib/pychess/ic/ICLounge.py:1559 msgid "Date/Time" msgstr "Fecha/Hora" #: lib/pychess/ic/ICLounge.py:1614 #, python-format msgid "" " with whom you have an adjourned %(timecontrol)s %(gametype)s " "game is online." msgstr "con quien tienes una partida pendiente %(timecontrol)s %(gametype)s está en línea." #: lib/pychess/ic/ICLounge.py:1635 msgid "Request Continuation" msgstr "Solicitar Continuar" #: lib/pychess/ic/ICLounge.py:1637 msgid "Examine Adjourned Game" msgstr "Examinar Juego Aplazado" #: lib/pychess/ic/ICLounge.py:1965 msgid "" "The chain button is disabled because you are logged in as a guest. Guests " "can't establish ratings, and the chain button's state has no effect when " "there is no rating to which to tie \"Opponent Strength\" to" msgstr "El botón de la cadena está desactivado porque ha entrado como invitado. Los invitados no pueden establecer clasificaciones, y el estado del botón no tiene efecto cuando no hay \"Fortaleza del Oponente\" a la que fijarse" #: lib/pychess/ic/ICLounge.py:2006 msgid "Challenge: " msgstr "Desafío: " #: lib/pychess/ic/ICLounge.py:2044 msgid "If set you can refuse players accepting your seek" msgstr "" #: lib/pychess/ic/ICLounge.py:2048 lib/pychess/ic/ICLounge.py:2051 msgid "This option is not applicable because you're challenging a player" msgstr "Esta opción no está disponible ya que está desafiando a un jugador" #: lib/pychess/ic/ICLounge.py:2064 msgid "Edit Seek: " msgstr "Editar búsqueda: " #: lib/pychess/ic/ICLounge.py:2095 #, python-format msgid "%(minutes)d min + %(gain)d sec/move" msgstr "%(minutes)d min + %(gain)d sec/move" #: lib/pychess/ic/ICLounge.py:2116 msgid "Manual" msgstr "Manual" #: lib/pychess/ic/ICLounge.py:2256 msgid "Any strength" msgstr "Cualquier nivel" #: lib/pychess/ic/ICLounge.py:2308 msgid "You can't play rated games because you are logged in as a guest" msgstr "No puede jugar partidas clasificadas como invitado" #: lib/pychess/ic/ICLounge.py:2312 msgid "You can't play rated games because \"Untimed\" is checked, " msgstr "No puede jugar partidas clasificadas al estar activado \"Sin tiempo\", " #: lib/pychess/ic/ICLounge.py:2313 msgid "and on FICS, untimed games can't be rated" msgstr "y en FICS, las partidas \"Sin tiempo\" no pueden clasificarse" #: lib/pychess/ic/ICLounge.py:2317 msgid "This option is not available because you're challenging a guest, " msgstr "Esta opción no se encuentra disponible ya que está desafiando a un invitado, " #: lib/pychess/ic/ICLounge.py:2318 msgid "and guests can't play rated games" msgstr "y éstos no pueden jugar partidas clasificadas" #: lib/pychess/ic/ICLounge.py:2332 lib/pychess/Variants/shuffle.py:16 #: lib/pychess/widgets/newGameDialog.py:266 msgid "Shuffle" msgstr "Desplazado" #: lib/pychess/ic/ICLounge.py:2333 lib/pychess/widgets/newGameDialog.py:267 msgid "Other (standard rules)" msgstr "Otro (reglas estándar)" #: lib/pychess/ic/ICLounge.py:2334 lib/pychess/widgets/newGameDialog.py:268 msgid "Other (non standard rules)" msgstr "Otro (reglas NO estándar)" #: lib/pychess/ic/ICLounge.py:2421 msgid "You can't select a variant because \"Untimed\" is checked, " msgstr "No puede seleccionar una variante al estar activado \"Sin tiempo\", " #: lib/pychess/ic/ICLounge.py:2422 msgid "and on FICS, untimed games have to be normal chess rules" msgstr "y en FICS, las partidas sin tiempo deben ajustarse a las regals normales del ajedrez" #: lib/pychess/ic/ICLounge.py:2454 msgid "Change Tolerance" msgstr "Cambiar Tolerancia" #: lib/pychess/ic/__init__.py:102 msgid "Examined" msgstr "Examinado" #: lib/pychess/ic/__init__.py:103 msgid "Other" msgstr "Otras" #: lib/pychess/ic/__init__.py:182 msgid "Administrator" msgstr "Administrador" #: lib/pychess/ic/__init__.py:182 msgid "Blindfold Account" msgstr "Cuenta a ciegas" #: lib/pychess/ic/__init__.py:182 msgid "Computer" msgstr "Computadora" #: lib/pychess/ic/__init__.py:183 msgid "Team Account" msgstr "Cuenta del equipo" #: lib/pychess/ic/__init__.py:183 msgid "Unregistered" msgstr "Sin registrar" #: lib/pychess/ic/__init__.py:183 msgid "Chess Advisor" msgstr "Consejero de ajedrez" #: lib/pychess/ic/__init__.py:184 msgid "Service Representative" msgstr "Servicio de Represntación" #: lib/pychess/ic/__init__.py:184 msgid "Tournament Director" msgstr "Director de Torneo" #: lib/pychess/ic/__init__.py:184 msgid "Mamer Manager" msgstr "Gestor Mamer" #: lib/pychess/ic/__init__.py:185 msgid "Grand Master" msgstr "Gran Maestro" #: lib/pychess/ic/__init__.py:185 msgid "International Master" msgstr "Maestro Internacional" #: lib/pychess/ic/__init__.py:185 msgid "FIDE Master" msgstr "Maestro FIDE" #: lib/pychess/ic/__init__.py:186 msgid "Woman Grand Master" msgstr "Gran maestra" #: lib/pychess/ic/__init__.py:186 msgid "Woman International Master" msgstr "Maestra internacional" #: lib/pychess/ic/__init__.py:186 msgid "Woman FIDE Master" msgstr "Maestra FIDE" #: lib/pychess/ic/__init__.py:187 msgid "Dummy Account" msgstr "Cuenta Falsa" #: lib/pychess/ic/__init__.py:191 msgid "*" msgstr "*" #: lib/pychess/ic/__init__.py:191 lib/pychess/Utils/repr.py:14 msgid "B" msgstr "A" #: lib/pychess/ic/__init__.py:191 msgid "C" msgstr "C" #: lib/pychess/ic/__init__.py:192 msgid "T" msgstr "T" #: lib/pychess/ic/__init__.py:192 msgid "U" msgstr "U" #: lib/pychess/ic/__init__.py:192 msgid "CA" msgstr "CA" #: lib/pychess/ic/__init__.py:193 msgid "SR" msgstr "SR" #: lib/pychess/ic/__init__.py:193 msgid "TD" msgstr "TD" #: lib/pychess/ic/__init__.py:193 msgid "TM" msgstr "TM" #: lib/pychess/ic/__init__.py:194 msgid "GM" msgstr "GM" #: lib/pychess/ic/__init__.py:194 msgid "IM" msgstr "MI" #: lib/pychess/ic/__init__.py:194 msgid "FM" msgstr "MF" #: lib/pychess/ic/__init__.py:195 msgid "WGM" msgstr "MGM" #: lib/pychess/ic/__init__.py:195 msgid "WIM" msgstr "MMI" #: lib/pychess/ic/__init__.py:195 msgid "WFM" msgstr "MMF" #: lib/pychess/ic/__init__.py:195 msgid "D" msgstr "D" #: lib/pychess/ic/__init__.py:195 msgid "H" msgstr "" #: lib/pychess/ic/__init__.py:195 msgid "CM" msgstr "" #: lib/pychess/ic/__init__.py:195 msgid "FA" msgstr "" #: lib/pychess/ic/__init__.py:195 msgid "NM" msgstr "" #: lib/pychess/Players/CECPEngine.py:857 #, python-format msgid "The engine %s reports an error:" msgstr "El motor %s reporta el error:" #: lib/pychess/Players/Human.py:20 msgid "Your opponent has offered you a draw." msgstr "Tu oponente te ofrece tablas" #: lib/pychess/Players/Human.py:21 msgid "" "Your opponent has offered you a draw. If you accept this offer, the game " "will end with a score of 1/2 - 1/2." msgstr "Su oponente le ha ofrecido tablas. Si acepta, el juego concluirá con puntuación 1/2 - 1/2." #: lib/pychess/Players/Human.py:23 msgid "Your opponent wants to abort the game." msgstr "Tu oponente quiere abortar el juego" #: lib/pychess/Players/Human.py:24 msgid "" "Your opponent has asked that the game be aborted. If you accept this offer, " "the game will end with no rating change." msgstr "Su oponente la ha solicitado abortar la partida. Si acepta, el juego concluirá sin cambios en la clasificación." #: lib/pychess/Players/Human.py:26 msgid "Your opponent wants to adjourn the game." msgstr "Tu oponente quiere aplazar la partida" #: lib/pychess/Players/Human.py:27 msgid "" "Your opponent has asked that the game be adjourned. If you accept this " "offer, the game will be adjourned and you can resume it later (when your " "opponent is online and both players agree to resume)." msgstr "Su oponente le ha solicitado aplazar la partida. Si acepta, la partida quedará aplazada y podrán retomarla más tarde (cuando su oponente esté conectado y ambos acuerden continuar)." #: lib/pychess/Players/Human.py:29 #, python-format msgid "Your opponent wants to undo %s move(s)." msgstr "Tu oponente quiere deshacer %s movimiento(s) hacia atrás" #: lib/pychess/Players/Human.py:30 #, python-format msgid "" "Your opponent has asked that the last %s move(s) be undone. If you accept " "this offer, the game will continue from the earlier position." msgstr "Su oponente le solicita deshacer los últimos %s movimiento(s). Si acepta, el juego continuará desde la posición anterior a los mismos." #: lib/pychess/Players/Human.py:32 msgid "Your opponent wants to pause the game." msgstr "Tu oponente quiere pausar la partida" #: lib/pychess/Players/Human.py:33 msgid "" "Your opponent has asked that the game be paused. If you accept this offer, " "the game clock will be paused until both players agree to resume the game." msgstr "Su oponente le ha solicitado hacer una pausa. Si acepta, el reloj se detendrá hasta que ambos jugadores acuerden continuar la partida." #: lib/pychess/Players/Human.py:35 msgid "Your opponent wants to resume the game." msgstr "Tu oponente quiere continuar con la partida" #: lib/pychess/Players/Human.py:36 msgid "" "Your opponent has asked that the game be resumed. If you accept this offer, " "the game clock will continue from where it was paused." msgstr "Su oponente le ha solicitado continuar con la partida. Si acepta, el reloj volverá a ponerse en marcha desde donde se detuvo." #: lib/pychess/Players/Human.py:40 msgid "The resignation" msgstr "Se rinde" #: lib/pychess/Players/Human.py:41 msgid "The flag call" msgstr "Reclamo de bandera" #: lib/pychess/Players/Human.py:42 msgid "The draw offer" msgstr "Se ofrecen tablas" #: lib/pychess/Players/Human.py:43 msgid "The abort offer" msgstr "Se ofrece abortar" #: lib/pychess/Players/Human.py:44 msgid "The adjourn offer" msgstr "Se ofrece aplazar" #: lib/pychess/Players/Human.py:45 msgid "The pause offer" msgstr "Se ofrece pausa" #: lib/pychess/Players/Human.py:46 msgid "The resume offer" msgstr "Se ofrece continuar" #: lib/pychess/Players/Human.py:47 msgid "The offer to switch sides" msgstr "Se ofrece cambiar bandos" #: lib/pychess/Players/Human.py:48 msgid "The takeback offer" msgstr "Se ofrece deshacer" #: lib/pychess/Players/Human.py:52 msgid "resign" msgstr "Rendición" #: lib/pychess/Players/Human.py:53 msgid "call your opponents flag" msgstr "Reclamar la bandera al oponente" #: lib/pychess/Players/Human.py:54 msgid "offer a draw" msgstr "ofrecer tablas" #: lib/pychess/Players/Human.py:55 msgid "offer an abort" msgstr "ofrecer abortar" #: lib/pychess/Players/Human.py:56 msgid "offer to adjourn" msgstr "ofrecer aplazar" #: lib/pychess/Players/Human.py:57 msgid "offer a pause" msgstr "ofrecer una pausa" #: lib/pychess/Players/Human.py:58 msgid "offer to resume" msgstr "ofrecer continuar" #: lib/pychess/Players/Human.py:59 msgid "offer to switch sides" msgstr "ofrecer cambiar bando" #: lib/pychess/Players/Human.py:60 msgid "offer a takeback" msgstr "ofrecer deshacer" #: lib/pychess/Players/Human.py:61 msgid "ask your opponent to move" msgstr "pedir al oponente que mueva" #: lib/pychess/Players/Human.py:66 msgid "Your opponent is not out of time." msgstr "Tu oponente no está pasado de tiempo." #: lib/pychess/Players/Human.py:68 msgid "The clock hasn't been started yet." msgstr "El reloj no se ha puesto en marcha aún." #: lib/pychess/Players/Human.py:70 msgid "You can't switch colors during the game." msgstr "No puede cambier de color durante el juego." #: lib/pychess/Players/Human.py:72 msgid "You have tried to undo too many moves." msgstr "Ha intentado deshacer demasiados movimientos." #: lib/pychess/Players/Human.py:180 msgid "Your opponent asks you to hurry!" msgstr "¡Tu oponente te pide que te apures!" #: lib/pychess/Players/Human.py:181 msgid "" "Generally this means nothing, as the game is time-based, but if you want to " "please your opponent, perhaps you should get going." msgstr "Generalmente esto no significa nada debido a que su base es sobre tiempo, pero si quieres satisfacer a tu oponente, entonces continúa con esto" #: lib/pychess/Players/Human.py:259 #, python-format msgid "%s was declined by your opponent" msgstr "%s fué declinado por tu oponente" #: lib/pychess/Players/Human.py:260 #, python-format msgid "Resend %s?" msgstr "Reenviar %s?" #: lib/pychess/Players/Human.py:267 msgid "Resend" msgstr "Reenviar" #: lib/pychess/Players/Human.py:275 #, python-format msgid "%s was withdrawn by your opponent" msgstr "%s fué retraído por tu oponente" #: lib/pychess/Players/Human.py:276 msgid "Your opponent seems to have changed their mind." msgstr "Tu oponente parece que ha cambiado de idea." #: lib/pychess/Players/Human.py:290 #, python-format msgid "Unable to accept %s" msgstr "Imposibilitado de aceptar %s" #: lib/pychess/Players/Human.py:291 msgid "Probably because it has been withdrawn." msgstr "Probablemente porque esto ha sido retirado." #: lib/pychess/Players/Human.py:298 #, python-format msgid "%s returns an error" msgstr "%s devuelve un error" #: lib/pychess/Savers/chessalpha2.py:12 msgid "Chess Alpha 2 Diagram" msgstr "Diagrama Ajedrez Alfa 2" #: lib/pychess/Savers/chesspastebin.py:39 msgid "Game shared at " msgstr "" #: lib/pychess/Savers/chesspastebin.py:41 msgid "(Link is available on clipboard.)" msgstr "" #: lib/pychess/Savers/database.py:19 msgid "PyChess database" msgstr "Base de datos de PyChess" #: lib/pychess/Savers/epd.py:12 msgid "Chess Position" msgstr "Posición" #: lib/pychess/Savers/fen.py:12 msgid "Simple Chess Position" msgstr "Posición de Ajedrez Simple" #: lib/pychess/Savers/fen.py:44 lib/pychess/Savers/pgn.py:329 msgid "The game can't be loaded, because of an error parsing FEN" msgstr "El juego no se pudo leer debido a un error en la cadena de posición (FEN)." #: lib/pychess/Savers/pgnbase.py:100 #, python-format msgid "" "The game can't be read to end, because of an error parsing move %(moveno)s " "'%(notation)s'." msgstr "La partida no puede leerse completa debido a un error en el análisis del movimiento %(moveno)s '%(notation)s'." #: lib/pychess/Savers/pgnbase.py:102 #, python-format msgid "The move failed because %s." msgstr "El movimiento falló a causa de %s." #: lib/pychess/Savers/pgnbase.py:110 #, python-format msgid "Error parsing move %(moveno)s %(mstr)s" msgstr "Error al analizar el movimiento %(moveno)s %(mstr)s" #: lib/pychess/Savers/pgn.py:28 msgid "Chess Game" msgstr "Partida" #: lib/pychess/Savers/pgn.py:362 msgid "Invalid move." msgstr "Movimiento inválido." #: lib/pychess/Savers/png.py:15 msgid "Png image" msgstr "Imagen png" #: lib/pychess/System/ping.py:31 msgid "Destination Host Unreachable" msgstr "No es posible alcanzar el servidor de destino" #: lib/pychess/System/ping.py:74 msgid "Died" msgstr "Muerto" #: lib/pychess/Utils/GameModel.py:147 msgid "Local Event" msgstr "Evento local" #: lib/pychess/Utils/GameModel.py:148 msgid "Local Site" msgstr "Sitio Local" #: lib/pychess/Utils/repr.py:12 msgid "Pawn" msgstr "Peón" #: lib/pychess/Utils/repr.py:14 msgid "P" msgstr "P" #: lib/pychess/Utils/repr.py:14 msgid "N" msgstr "C" #: lib/pychess/Utils/repr.py:14 msgid "R" msgstr "T" #: lib/pychess/Utils/repr.py:14 msgid "Q" msgstr "D" #: lib/pychess/Utils/repr.py:14 msgid "K" msgstr "R" #: lib/pychess/Utils/repr.py:17 msgid "The game ended in a draw" msgstr "La partida terminó en empate" #: lib/pychess/Utils/repr.py:18 #, python-format msgid "%(white)s won the game" msgstr "%(white)s ganan" #: lib/pychess/Utils/repr.py:19 #, python-format msgid "%(black)s won the game" msgstr "%(black)s ganan" #: lib/pychess/Utils/repr.py:20 msgid "The game has been killed" msgstr "El juego ha sido aniquilado" #: lib/pychess/Utils/repr.py:21 msgid "The game has been adjourned" msgstr "El juego ha sido postergado" #: lib/pychess/Utils/repr.py:22 msgid "The game has been aborted" msgstr "El juego ha sido abortado" #: lib/pychess/Utils/repr.py:26 msgid "Because neither player has sufficient material to mate" msgstr "Porque ningún jugador tiene suficiente material para dar mate" #: lib/pychess/Utils/repr.py:27 msgid "Because the same position was repeated three times in a row" msgstr "La misma posición se ha repetido tres veces seguidas." #: lib/pychess/Utils/repr.py:28 msgid "Because the last 50 moves brought nothing new" msgstr "Los últimos 50 movimientos no han aportado nada nuevo" #: lib/pychess/Utils/repr.py:29 msgid "Because both players ran out of time" msgstr "Ambos jugadores han agotado su tiempo" #: lib/pychess/Utils/repr.py:30 #, python-format msgid "Because %(mover)s stalemated" msgstr "%(mover)s está en punto muerto" #: lib/pychess/Utils/repr.py:31 msgid "Because both players agreed to a draw" msgstr "Porque ambos jugadores acordaron tablas" #: lib/pychess/Utils/repr.py:32 lib/pychess/Utils/repr.py:42 msgid "Because of adjudication by an admin" msgstr "Un administrador así lo ha decidido" #: lib/pychess/Utils/repr.py:33 msgid "Because the game exceed the max length" msgstr "La partida ha excedido la longitud máxima" #: lib/pychess/Utils/repr.py:34 #, python-format msgid "" "Because %(white)s ran out of time and %(black)s has insufficient material to" " mate" msgstr "Porque %(white)s se quedaron sin tiempo y %(black)s no tienen suficiente material para dar mate" #: lib/pychess/Utils/repr.py:35 #, python-format msgid "" "Because %(black)s ran out of time and %(white)s has insufficient material to" " mate" msgstr "Porque %(black)s se quedaron sin tiempo y %(white)s no tienen suficiente material para dar mate" #: lib/pychess/Utils/repr.py:36 msgid "Because both players have the same amount of pieces" msgstr "Porque ambos jugadores tienen la misma cantidad de piezas" #: lib/pychess/Utils/repr.py:38 #, python-format msgid "Because %(loser)s resigned" msgstr "Porque %(loser)s se resignó" #: lib/pychess/Utils/repr.py:39 #, python-format msgid "Because %(loser)s ran out of time" msgstr "%(loser)s agotó su tiempo" #: lib/pychess/Utils/repr.py:40 #, python-format msgid "Because %(loser)s was checkmated" msgstr "Porque %(loser)s ha recibido mate" #: lib/pychess/Utils/repr.py:41 #, python-format msgid "Because %(loser)s disconnected" msgstr "%(loser)s está desconectado" #: lib/pychess/Utils/repr.py:43 #, python-format msgid "Because %(winner)s has fewer pieces" msgstr "Porque %(winner)s tiene menos piezas" #: lib/pychess/Utils/repr.py:44 #, python-format msgid "Because %(winner)s lost all pieces" msgstr "Porque %(winner)s perdió todas sus piezas" #: lib/pychess/Utils/repr.py:45 #, python-format msgid "Because %(loser)s king exploded" msgstr "Porque %(loser)s el rey explotó" #: lib/pychess/Utils/repr.py:46 #, python-format msgid "Because %(winner)s king reached the center" msgstr "Porque el rey de %(winner)s ha llegado al centro " #: lib/pychess/Utils/repr.py:47 #, python-format msgid "Because %(winner)s was giving check 3 times" msgstr "Porque %(winner)s ha dado jaque 3 vezes" #: lib/pychess/Utils/repr.py:49 msgid "Because a player lost connection" msgstr "Un jugador se ha desconectado" #: lib/pychess/Utils/repr.py:50 msgid "Because both players agreed to an adjournment" msgstr "Porque ambos jugadores acordar suspender la partida" #: lib/pychess/Utils/repr.py:51 msgid "Because the server was shut down" msgstr "Porque el servidor no está disponible" #: lib/pychess/Utils/repr.py:52 msgid "" "Because a player lost connection and the other player requested adjournment" msgstr "Un jugador se ha desconectado y el otro solicitó aplazamiento" #: lib/pychess/Utils/repr.py:53 #, python-format msgid "" "Because %(black)s lost connection to the server and %(white)s requested " "adjournment" msgstr "Porque %(black)s perdió la conexión con el servidor y %(white)s solicitó aplazar el juego" #: lib/pychess/Utils/repr.py:54 #, python-format msgid "" "Because %(white)s lost connection to the server and %(black)s requested " "adjournment" msgstr "Porque %(white)s perdió la conexión con el servidor y %(black)s solicitó aplazar el juego" #: lib/pychess/Utils/repr.py:55 #, python-format msgid "Because %(white)s lost connection to the server" msgstr "Porque %(white)s perdió la conexión con el servidor" #: lib/pychess/Utils/repr.py:56 #, python-format msgid "Because %(black)s lost connection to the server" msgstr "Porque %(black)s perdió la conexión con el servidor" #: lib/pychess/Utils/repr.py:58 msgid "Because of adjudication by an admin. No rating changes have occurred." msgstr "Porque un administrador adjudicó la partida no hay cambio en el rating." #: lib/pychess/Utils/repr.py:59 msgid "" "Because both players agreed to abort the game. No rating changes have " "occurred." msgstr "Porque ambos jugadores acordaron abortar la partida no hay cambios en el rating." #: lib/pychess/Utils/repr.py:60 msgid "Because of courtesy by a player. No rating changes have occurred." msgstr "Por cortesía de un jugador no hay cambios en el rating." #: lib/pychess/Utils/repr.py:61 msgid "" "Because a player aborted the game. Either player can abort the game without " "the other's consent before the second move. No rating changes have occurred." msgstr "Un jugador abortó la partida. Cualquiera de los dos jugadores puede abortar la partida sin el consentimiento del otro jugador antes del segundo movimiento. No hay cambio en los ratings." #: lib/pychess/Utils/repr.py:62 msgid "" "Because a player disconnected and there are too few moves to warrant " "adjournment. No rating changes have occurred." msgstr "Debido a que un jugador esta desconectado y hay muy pocos movimientos para justificar el aplazamiento. No se han producido cambios de calificación." #: lib/pychess/Utils/repr.py:63 msgid "Because the server was shut down. No rating changes have occurred." msgstr "El sever fue desconectado. No hay cambio en los ratings." #: lib/pychess/Utils/repr.py:65 #, python-format msgid "Because the %(white)s engine died" msgstr "Por que el motor de %(white)s murió" #: lib/pychess/Utils/repr.py:66 #, python-format msgid "Because the %(black)s engine died" msgstr "Porque el motor %(black)s dejó de funcionar" #: lib/pychess/Utils/repr.py:67 msgid "Because the connection to the server was lost" msgstr "Se perdió la conexión con el servidor" #: lib/pychess/Utils/repr.py:68 msgid "The reason is unknown" msgstr "Razón desconocida" #: lib/pychess/Utils/TimeModel.py:229 msgid "min" msgstr "min" #: lib/pychess/Utils/TimeModel.py:231 msgid "sec" msgstr "seg" #: lib/pychess/Variants/asean.py:12 msgid "" "ASEAN: http://www.ncf-" "phil.org/downloadables/2014/May/Asean_chess/Laws_of_ASEAN_Chess_2011_Nov_26.doc" msgstr "" #: lib/pychess/Variants/asean.py:13 msgid "ASEAN" msgstr "" #: lib/pychess/Variants/asean.py:33 msgid "Makruk: http://en.wikipedia.org/wiki/Makruk" msgstr "" #: lib/pychess/Variants/asean.py:34 msgid "Makruk" msgstr "" #: lib/pychess/Variants/asean.py:60 msgid "Cambodian: http://www.khmerinstitute.org/culture/ok.html" msgstr "" #: lib/pychess/Variants/asean.py:61 msgid "Cambodian" msgstr "" #: lib/pychess/Variants/asean.py:86 msgid "" "Ai-Wok: http://www.open-" "aurec.com/wbforum/viewtopic.php?p=199364&sid=20963a1de2c164050de019e5ed6bf7c4#p199364" msgstr "" #: lib/pychess/Variants/asean.py:87 msgid "Ai-Wok" msgstr "" #: lib/pychess/Variants/asean.py:111 msgid "Sittuyin: http://en.wikipedia.org/wiki/Sittuyin" msgstr "" #: lib/pychess/Variants/asean.py:112 msgid "Sittuyin" msgstr "" #: lib/pychess/Variants/asymmetricrandom.py:12 msgid "" "FICS wild/4: http://www.freechess.org/Help/HelpFiles/wild.html\n" "* Randomly chosen pieces (two queens or three rooks possible)\n" "* Exactly one king of each color\n" "* Pieces placed randomly behind the pawns, SUBJECT TO THE CONSTRAINT THAT THE BISHOPS ARE BALANCED\n" "* No castling\n" "* Black's arrangement DOES NOT mirrors white's" msgstr "FICS salvaje/4: http://www.freechess.org/Help/HelpFiles/wild.html\n* Piezas escogidas aleatoriamente (dos damas o tres torres es posible)\n* Solo un rey de cada color\n* Piezas ubicadas aleatoriamente detrás de los peones, CON LA CONDICION DE QUE LOS\nALFILES ESTEN BALANCEADOS\n* Sin enroques\n* El arreglo de las Negras NO ES un espejo de las Blancas" #: lib/pychess/Variants/asymmetricrandom.py:18 msgid "Asymmetric Random" msgstr "Asymmetric Random" #: lib/pychess/Variants/atomic.py:14 msgid "FICS atomic: http://www.freechess.org/Help/HelpFiles/atomic.html" msgstr "FICS atomic: http://www.freechess.org/Help/HelpFiles/atomic.html" #: lib/pychess/Variants/blindfold.py:7 msgid "" "Classic chess rules with hidden figurines\n" "http://en.wikipedia.org/wiki/Blindfold_chess" msgstr "Reglas de ajedrez clásico con figurines ocultos\nhttp://en.wikipedia.org/wiki/Blindfold_chess" #: lib/pychess/Variants/blindfold.py:9 #: lib/pychess/widgets/newGameDialog.py:264 msgid "Blindfold" msgstr "A ciegas" #: lib/pychess/Variants/blindfold.py:18 msgid "" "Classic chess rules with hidden pawns\n" "http://en.wikipedia.org/wiki/Blindfold_chess" msgstr "Reglas de ajedrez clásico con peones ocultos\nhttp://en.wikipedia.org/wiki/Blindfold_chess" #: lib/pychess/Variants/blindfold.py:20 msgid "Hidden pawns" msgstr "Peones cultos" #: lib/pychess/Variants/blindfold.py:29 msgid "" "Classic chess rules with hidden pieces\n" "http://en.wikipedia.org/wiki/Blindfold_chess" msgstr "Reglas de ajedrez clásico con piezas ocultas\nhttp://en.wikipedia.org/wiki/Blindfold_chess" #: lib/pychess/Variants/blindfold.py:31 msgid "Hidden pieces" msgstr "Piezas ocultas" #: lib/pychess/Variants/blindfold.py:40 msgid "" "Classic chess rules with all pieces white\n" "http://en.wikipedia.org/wiki/Blindfold_chess" msgstr "Reglas de ajedrez clásico con todas las piezas blancas\nhttp://es.wikipedia.org/wiki/Ajedrez_a_la_ciega" #: lib/pychess/Variants/blindfold.py:42 msgid "All white" msgstr "Todas blancas" #: lib/pychess/Variants/bughouse.py:8 msgid "FICS bughouse: http://www.freechess.org/Help/HelpFiles/bughouse.html" msgstr "FICS bughouse: http://www.freechess.org/Help/HelpFiles/bughouse.html" #: lib/pychess/Variants/corner.py:12 msgid "" "http://brainking.com/en/GameRules?tp=2\n" "* Placement of the pieces on the 1st and 8th row are randomized\n" "* The king is in the right hand corner\n" "* Bishops must start on opposite color squares\n" "* Black's starting position is obtained by rotating white's position 180 degrees around the board's center\n" "* No castling" msgstr "http://brainking.com/es/GameRules?tp=2\n* Ubicación de las piezas en la 1ra y 8va fila son aleatorias\n* El rey está en la esquina a mano derecha\n* Los alfiles deben iniciar en casillas de color opuesto\n* La posición de inicio de Negras es obtenida rotando la posición de Blancas 180 grados\nalrededor del centro del tablero\n* Sin enroques" #: lib/pychess/Variants/corner.py:18 msgid "Corner" msgstr "Corner" #: lib/pychess/Variants/crazyhouse.py:8 msgid "" "FICS crazyhouse: http://www.freechess.org/Help/HelpFiles/crazyhouse.html" msgstr "FICS crazyhouse: http://www.freechess.org/Help/HelpFiles/crazyhouse.html" #: lib/pychess/Variants/euroshogi.py:9 msgid "EuroShogi: http://en.wikipedia.org/wiki/EuroShogi" msgstr "" #: lib/pychess/Variants/euroshogi.py:10 msgid "EuroShogi" msgstr "" #: lib/pychess/Variants/fischerandom.py:18 msgid "" "http://en.wikipedia.org/wiki/Chess960\n" "FICS wild/fr: http://www.freechess.org/Help/HelpFiles/wild.html" msgstr "http://es.wikipedia.org/wiki/Chess960\nFICS salvaje/fr: http://www.freechess.org/Help/HelpFiles/wild.html" #: lib/pychess/Variants/fischerandom.py:20 msgid "Fischer Random" msgstr "Fischer Random" #: lib/pychess/Variants/kingofthehill.py:8 msgid "" "Bringing your king legally to the center (e4, d4, e5, d5) instantly wins the game!\n" "Normal rules apply in other cases and checkmate also ends the game." msgstr "Si tu rey llega al centro (e4, d4, e5, d5) inmediatamente ganas la partida!\nAparte de eso, se aplican las reglas normales y jaque mate tambien termina la partida." #: lib/pychess/Variants/kingofthehill.py:10 msgid "King of the hill" msgstr "Rey de la colina" #: lib/pychess/Variants/knightodds.py:8 msgid "One player starts with one less knight piece" msgstr "un jugador empieza con un caballo menos" #: lib/pychess/Variants/knightodds.py:9 msgid "Knight odds" msgstr "Knight odds" #: lib/pychess/Variants/losers.py:8 msgid "FICS losers: http://www.freechess.org/Help/HelpFiles/losers_chess.html" msgstr "FICS losers: http://www.freechess.org/Help/HelpFiles/losers_chess.html" #: lib/pychess/Variants/normal.py:4 msgid "" "Classic chess rules\n" "http://en.wikipedia.org/wiki/Chess" msgstr "Reglas de ajedrez clásico\nhttp://es.wikipedia.org/wiki/Ajedrez" #: lib/pychess/Variants/normal.py:6 lib/pychess/widgets/newGameDialog.py:157 msgid "Normal" msgstr "Normal" #: lib/pychess/Variants/pawnodds.py:8 msgid "One player starts with one less pawn piece" msgstr "Un jugador inicia la partida sin un peón" #: lib/pychess/Variants/pawnodds.py:9 msgid "Pawn odds" msgstr "Pawn odds" #: lib/pychess/Variants/pawnspassed.py:11 msgid "" "FICS wild/8a: http://www.freechess.org/Help/HelpFiles/wild.html\n" "White pawns start on 5th rank and black pawns on the 4th rank" msgstr "FICS salvaje/8a: http://www.freechess.org/Help/HelpFiles/wild.html\nLos peones blancos inician en la 5ta fila y los peones negros en la 4ta fila" #: lib/pychess/Variants/pawnspassed.py:13 msgid "Pawns Passed" msgstr "Pawns Passed" #: lib/pychess/Variants/pawnspushed.py:10 msgid "" "FICS wild/8: http://www.freechess.org/Help/HelpFiles/wild.html\n" "Pawns start on 4th and 5th ranks rather than 2nd and 7th" msgstr "FICS salvaje/8: http://www.freechess.org/Help/HelpFiles/wild.html\nLos peones inician en la 4ta y 5ta filas en vez de las 2da y 7ma" #: lib/pychess/Variants/pawnspushed.py:12 msgid "Pawns Pushed" msgstr "Pawns Pushed" #: lib/pychess/Variants/queenodds.py:8 msgid "One player starts with one less queen piece" msgstr "Un jugador inicia la partida sin una reina" #: lib/pychess/Variants/queenodds.py:9 msgid "Queen odds" msgstr "Queen odds" #: lib/pychess/Variants/randomchess.py:11 msgid "" "FICS wild/3: http://www.freechess.org/Help/HelpFiles/wild.html\n" "* Randomly chosen pieces (two queens or three rooks possible)\n" "* Exactly one king of each color\n" "* Pieces placed randomly behind the pawns\n" "* No castling\n" "* Black's arrangement mirrors white's" msgstr "FICS salvaje/3: http://www.freechess.org/Help/HelpFiles/wild.html\n* Piezas escogidas aleatoriamente (es posible dos damas o tres torres)\n* Solo un rey de cada color\n* Piezas ubicadas detrás de los peones aleatoriamente\n* Sin enroques\n* El arreglo de negras es un espejo del de blancas" #: lib/pychess/Variants/randomchess.py:17 #: lib/pychess/widgets/TaskerManager.py:155 msgid "Random" msgstr "Random" #: lib/pychess/Variants/rookodds.py:8 msgid "One player starts with one less rook piece" msgstr "Un jugador inicia la partida sin una torre" #: lib/pychess/Variants/rookodds.py:9 msgid "Rook odds" msgstr "Ventaja de torres" #: lib/pychess/Variants/shuffle.py:11 msgid "" "xboard nocastle: http://home.hccnet.nl/h.g.muller/engine-intf.html#8\n" "FICS wild/2: http://www.freechess.org/Help/HelpFiles/wild.html\n" "* Random arrangement of the pieces behind the pawns\n" "* No castling\n" "* Black's arrangement mirrors white's" msgstr "xboard nocastle: http://home.hccnet.nl/h.g.muller/engine-intf.html#8\nFICS salvaje/2: http://www.freechess.org/Help/HelpFiles/wild.html\n* Arreglo aleatorio de las piezas detrás de los peones\n* Sin enroques\n* El arreglo de negras es un espejo del de blancas" #: lib/pychess/Variants/suicide.py:11 msgid "" "FICS suicide: http://www.freechess.org/Help/HelpFiles/suicide_chess.html" msgstr "FICS suicida: http://www.freechess.org/Help/HelpFiles/suicide_chess.html" #: lib/pychess/Variants/theban.py:10 msgid "" "Variant developed by Kai Laskos: " "http://talkchess.com/forum/viewtopic.php?t=40990" msgstr "Variante desarrollada por Kai Laskos: http://talkchess.com/forum/viewtopic.php?t=40990" #: lib/pychess/Variants/theban.py:11 msgid "Theban" msgstr "Theban" #: lib/pychess/Variants/threecheck.py:10 msgid "Win by giving check 3 times" msgstr "Gana dando jaque 3 vezes" #: lib/pychess/Variants/threecheck.py:11 msgid "Three-check" msgstr "Tres-jaque" #: lib/pychess/Variants/upsidedown.py:10 msgid "" "FICS wild/5: http://www.freechess.org/Help/HelpFiles/wild.html\n" "http://en.wikipedia.org/wiki/Chess_variant#Chess_with_different_starting_positions\n" "Pawns start on their 7th rank rather than their 2nd rank!" msgstr "FICS salvaje/5: http://www.freechess.org/Help/HelpFiles/wild.html\nhttp://es.wikipedia.org/wiki/Variante_del_ajedrez#Ajedrez_con_diferentes_posiciones_iniciales\n¡Los peones inician en su 7ma fila en vez de su 2da fila!" #: lib/pychess/Variants/upsidedown.py:13 msgid "Upside Down" msgstr "Boca abajo" #: lib/pychess/Variants/wildcastle.py:10 msgid "" "xboard wildcastle http://home.hccnet.nl/h.g.muller/engine-intf.html#8\n" "FICS wild/0: http://www.freechess.org/Help/HelpFiles/wild.html\n" "* White has the typical set-up at the start.\n" "* Black's pieces are the same, except that the King and Queen are reversed,\n" "* so they are not on the same files as White's King and Queen.\n" "* Castling is done similarly to normal chess:\n" "* o-o-o indicates long castling and o-o short castling." msgstr "xboard wildcastle http://home.hccnet.nl/h.g.muller/engine-intf.html#8\nFICS salvaje/0: http://www.freechess.org/Help/HelpFiles/wild.html\n* Blancas tiene el arreglo típico al inicio.\n* Las piezas Negras de igual manera, excepto que el Rey y Dama están intercambiados,\n* por lo que no están en las mismas columnas que el Rey y Dama blancos.\n* El enroque es hecho de manera similar al ajedrez normal:\n* o-o-o indica enroque largo y o-o enroque corto." #: lib/pychess/Variants/wildcastle.py:17 msgid "Wildcastle" msgstr "Wildcastle" #: lib/pychess/Variants/wildcastleshuffle.py:11 msgid "" "xboard wildcastle http://home.hccnet.nl/h.g.muller/engine-intf.html#8\n" "FICS wild/1: http://www.freechess.org/Help/HelpFiles/wild.html\n" "* In this variant both sides have the same set of pieces as in normal chess.\n" "* The white king starts on d1 or e1 and the black king starts on d8 or e8,\n" "* and the rooks are in their usual positions.\n" "* Bishops are always on opposite colors.\n" "* Subject to these constraints the position of the pieces on their first ranks is random.\n" "* Castling is done similarly to normal chess:\n" "* o-o-o indicates long castling and o-o short castling." msgstr "xboard wildcastle http://home.hccnet.nl/h.g.muller/engine-intf.html#8\nFICS salvaje/1: http://www.freechess.org/Help/HelpFiles/wild.html\n* En esta variante ambos lados tienen el mismo conjunto de piezas como en ajedrez normal.\n* El rey blanco inicia en d1 o e1 y el rey negro inicia en d8 o e8,\n* y las torres están en sus posiciones usuales.\n* Los alfiles están siempre en colores opuestos.\n* Sujeto a estas restricciones la posición de las piezas en sus primeras filas es aleatoria.\n* El enroque es hecho de manera similar al ajedrez normal:\n* o-o-o indica enroque largo y o-o enroque corto." #: lib/pychess/Variants/wildcastleshuffle.py:20 msgid "Wildcastle shuffle" msgstr "Wildcastle shuffle" #: lib/pychess/widgets/analyzegameDialog.py:85 msgid "Game analyzing in progress..." msgstr "" #: lib/pychess/widgets/analyzegameDialog.py:86 msgid "Do you want to abort it?" msgstr "" #: lib/pychess/widgets/analyzegameDialog.py:95 #: lib/pychess/widgets/gamewidget.py:202 lib/pychess/widgets/gamewidget.py:320 msgid "Abort" msgstr "Anular" #: lib/pychess/widgets/ChatView.py:125 msgid "Observers" msgstr "" #: lib/pychess/widgets/ChatWindow.py:222 msgid "You have opened no conversations yet" msgstr "Todavía no se han abierto la conversación" #: lib/pychess/widgets/ChatWindow.py:254 msgid "Only registered users may talk to this channel" msgstr "Solo los usuarios registrados pueden usar este canal" #: lib/pychess/widgets/ChatWindow.py:312 msgid "No conversation's selected" msgstr "No se ha seleccionado conversación" #: lib/pychess/widgets/ChatWindow.py:350 msgid "Loading player data" msgstr "Cargando datos del jugador" #: lib/pychess/widgets/ChatWindow.py:400 msgid "Receiving list of players" msgstr "Recibiendo la lista de jugadores" #: lib/pychess/widgets/ChatWindow.py:518 msgid "Friends" msgstr "" #: lib/pychess/widgets/ChatWindow.py:529 msgid "Admin" msgstr "" #: lib/pychess/widgets/ChatWindow.py:540 msgid "More channels" msgstr "Más canales" #: lib/pychess/widgets/ChatWindow.py:548 msgid "More players" msgstr "Más jugadores" #: lib/pychess/widgets/ChatWindow.py:558 msgid "Computers" msgstr "" #: lib/pychess/widgets/ChatWindow.py:568 msgid "BlindFold" msgstr "" #: lib/pychess/widgets/ChatWindow.py:578 msgid "Guests" msgstr "" #: lib/pychess/widgets/ChatWindow.py:805 msgid "Conversations" msgstr "Conversaciones" #: lib/pychess/widgets/ChatWindow.py:807 msgid "Conversation info" msgstr "Información de la conversación" #: lib/pychess/widgets/enginesDialog.py:152 msgid "Select engine" msgstr "Selecciona motor" #: lib/pychess/widgets/enginesDialog.py:156 msgid "Executable files" msgstr "" #: lib/pychess/widgets/enginesDialog.py:176 #: lib/pychess/widgets/enginesDialog.py:210 #: lib/pychess/widgets/enginesDialog.py:235 #, python-format msgid "Unable to add %s" msgstr "" #: lib/pychess/widgets/enginesDialog.py:177 msgid "wine not installed" msgstr "" #: lib/pychess/widgets/enginesDialog.py:211 #: lib/pychess/widgets/enginesDialog.py:236 msgid "There is something wrong with this executable" msgstr "" #: lib/pychess/widgets/enginesDialog.py:266 msgid "Select working directory" msgstr "Selecciona el directorio de trabajo" #: lib/pychess/widgets/gamenanny.py:115 #, python-format msgid " invalid engine move: %s" msgstr "" #: lib/pychess/widgets/gamenanny.py:134 msgid "Offer Rematch" msgstr "Ofrecer rejugar" #: lib/pychess/widgets/gamenanny.py:136 lib/pychess/widgets/gamenanny.py:147 #, python-format msgid "Observe %s" msgstr "" #: lib/pychess/widgets/gamenanny.py:168 msgid "Play Rematch" msgstr "Rejugar" #: lib/pychess/widgets/gamenanny.py:171 msgid "Undo one move" msgstr "Deshacer un movimiento" #: lib/pychess/widgets/gamenanny.py:173 msgid "Undo two moves" msgstr "Deshacer dos movimientos" #: lib/pychess/widgets/gamenanny.py:203 msgid "The game is paused" msgstr "El juego se ha pausado" #: lib/pychess/widgets/gamenanny.py:221 lib/pychess/widgets/gamenanny.py:222 msgid "Loaded game" msgstr "Partida cargada" #: lib/pychess/widgets/gamenanny.py:228 msgid "Saved game" msgstr "Partida guardada" #: lib/pychess/widgets/gamenanny.py:232 msgid "Analyzer started" msgstr "Analizador iniciado" #: lib/pychess/widgets/gamenanny.py:281 msgid "You sent an abort offer" msgstr "Pediste abortar" #: lib/pychess/widgets/gamenanny.py:283 msgid "You sent an adjournment offer" msgstr "Enviaste una oferta de aplazamiento" #: lib/pychess/widgets/gamenanny.py:285 msgid "You sent a draw offer" msgstr "Has enviado un ofrecimiento de empate" #: lib/pychess/widgets/gamenanny.py:287 msgid "You sent a pause offer" msgstr "Pediste pausa" #: lib/pychess/widgets/gamenanny.py:289 msgid "You sent a resume offer" msgstr "Pediste continuar" #: lib/pychess/widgets/gamenanny.py:291 msgid "You sent an undo offer" msgstr "Pediste deshacer" #: lib/pychess/widgets/gamenanny.py:293 msgid "You asked your opponent to move" msgstr "pediste al oponente que mueva" #: lib/pychess/widgets/gamenanny.py:305 #, python-format msgid "Engine, %s, has died" msgstr "El motor %s, ha muerto" #: lib/pychess/widgets/gamenanny.py:306 msgid "" "PyChess has lost connection to the engine, probably because it has died.\n" "\n" "You can try to start a new game with the engine, or try to play against another one." msgstr "Pychess ha perdido la conexión con el motor, probablemente porque ha muerto.\n\nPuedes intentar empezar una nueva partida con el motor, o probar a jugar contra otro." #: lib/pychess/widgets/gamewidget.py:204 msgid "" "This game can be automatically aborted without rating loss because there has" " not yet been two moves made" msgstr "Este juego puede ser cancelado automáticamente sin pérdida de rating porque aún no se han hecho dos movimientos" #: lib/pychess/widgets/gamewidget.py:206 msgid "Offer Abort" msgstr "Pedir abortar" #: lib/pychess/widgets/gamewidget.py:208 msgid "" "Your opponent must agree to abort the game because there has been two or " "more moves made" msgstr "Tu oponente debe estar de acuerdo en abortar la partida porque ya se han realizado dos o más movimientos" #: lib/pychess/widgets/gamewidget.py:226 msgid "This game can not be adjourned because one or both players are guests" msgstr "Esta partida no se puede aplazar porque uno o ambos jugadores son invitados" #: lib/pychess/widgets/gamewidget.py:243 msgid "Claim Draw" msgstr "Reclamar tablas" #: lib/pychess/widgets/gamewidget.py:325 msgid "Pause" msgstr "Pausa" #: lib/pychess/widgets/gamewidget.py:326 msgid "Resume" msgstr "Reanudar" #: lib/pychess/widgets/gamewidget.py:328 msgid "Offer Pause" msgstr "Proponer Pausa" #: lib/pychess/widgets/gamewidget.py:329 msgid "Offer Resume" msgstr "Proponer Reanudar" #: lib/pychess/widgets/gamewidget.py:333 msgid "Undo" msgstr "Deshacer " #: lib/pychess/widgets/gamewidget.py:335 msgid "Offer Undo" msgstr "Proponer Deshacer" #: lib/pychess/widgets/gamewidget.py:550 msgid " has lagged for 30 seconds" msgstr "ha quedado retrasado durante 30 segundos" #: lib/pychess/widgets/gamewidget.py:566 msgid " is lagging heavily but hasn't disconnected" msgstr "esta muy retrasado, pero no se ha desconectado" #: lib/pychess/widgets/gamewidget.py:567 msgid "Continue to wait for opponent, or try to adjourn the game?" msgstr "Continuar esperando oponente, o intentar aplazar el juego?" #: lib/pychess/widgets/gamewidget.py:575 msgid "Wait" msgstr "Espera" #: lib/pychess/widgets/gamewidget.py:576 msgid "Adjourn" msgstr "Aplazar " #: lib/pychess/widgets/gamewidget.py:648 msgid "Jump to initial position" msgstr "Volver a la posición inicial" #: lib/pychess/widgets/gamewidget.py:653 msgid "Step back one move" msgstr "Un movimiento hacia atrás" #: lib/pychess/widgets/gamewidget.py:658 msgid "Go back to the main line" msgstr "" #: lib/pychess/widgets/gamewidget.py:664 msgid "Step forward one move" msgstr "Un movimiento hacia delante" #: lib/pychess/widgets/gamewidget.py:669 msgid "Jump to latest position" msgstr "Saltar a la última posición" #: lib/pychess/widgets/gamewidget.py:903 msgid "PyChess was unable to load your panel settings" msgstr "PyChess no pudo cargar sus configuraciones de panel" #: lib/pychess/widgets/gamewidget.py:904 msgid "" "Your panel settings have been reset. If this problem repeats, you should " "report it to the developers" msgstr "Su panel de ajustes se ha restablecido. Si el problema persiste contacte con los desarrolladores" #: lib/pychess/widgets/ionest.py:67 lib/pychess/widgets/newGameDialog.py:389 #: lib/pychess/widgets/TaskerManager.py:210 msgid "You" msgstr "Usted" #: lib/pychess/widgets/ionest.py:70 lib/pychess/widgets/newGameDialog.py:390 #: lib/pychess/widgets/preferencesDialog.py:61 #: lib/pychess/widgets/TaskerManager.py:213 msgid "Guest" msgstr "Invitado" #: lib/pychess/widgets/ionest.py:93 msgid "Error loading game" msgstr "" #: lib/pychess/widgets/ionest.py:127 lib/pychess/widgets/newGameDialog.py:480 msgid "Open Game" msgstr "Abrir partida" #: lib/pychess/widgets/ionest.py:137 msgid "All Files" msgstr "Todos los archivos" #: lib/pychess/widgets/ionest.py:140 msgid "Detect type automatically" msgstr "Detectar formato automáticamente" #: lib/pychess/widgets/ionest.py:146 msgid "All Chess Files" msgstr "Archivos de ajedrez" #: lib/pychess/widgets/ionest.py:228 msgid "Save Game" msgstr "Guardar partida" #: lib/pychess/widgets/ionest.py:228 msgid "Export position" msgstr "Exportar posición" #: lib/pychess/widgets/ionest.py:232 lib/pychess/widgets/ionest.py:360 msgid "vs." msgstr "vs." #: lib/pychess/widgets/ionest.py:249 #, python-format msgid "Unknown file type '%s'" msgstr "Tipo de archvo desconocido '%s'" #: lib/pychess/widgets/ionest.py:250 #, python-format msgid "" "Was unable to save '%(uri)s' as PyChess doesn't know the format " "'%(ending)s'." msgstr "No se pudo guardar '%(uri)s' ya que PyChess desconoce el formato '%(ending)s'." #: lib/pychess/widgets/ionest.py:266 #, python-format msgid "Unable to save file '%s'" msgstr "No se puede guardar el archivo '%s'" #: lib/pychess/widgets/ionest.py:268 msgid "" "You don't have the necessary rights to save the file.\n" "Please ensure that you have given the right path and try again." msgstr "No tienes los permisos necesarios para guardar el archivo.\nPor favor, asegúrate que has indicado bien la ruta y prueba otra vez." #: lib/pychess/widgets/ionest.py:276 msgid "_Replace" msgstr "_Reemplazar" #: lib/pychess/widgets/ionest.py:280 msgid "File exists" msgstr "El archivo existe" #: lib/pychess/widgets/ionest.py:282 #, python-format msgid "" "A file named '%s' already exists. Would you like to replace " "it?" msgstr "Ya existe un archivo con el nombre '%s'. ¿Deseas reemplazarlo?" #: lib/pychess/widgets/ionest.py:283 #, python-format msgid "" "The file already exists in '%s'. If you replace it, its content will be " "overwritten." msgstr "El archivo ya existe en '%s'. Si lo reemplazas, el contenido va a ser sobreescrito." #: lib/pychess/widgets/ionest.py:299 msgid "Could not save the file" msgstr "No se pudo guardar el archivo" #: lib/pychess/widgets/ionest.py:300 msgid "PyChess was not able to save the game" msgstr "PyChess no pudo guardar el juego" #: lib/pychess/widgets/ionest.py:301 #, python-format msgid "The error was: %s" msgstr "El error ha sido: %s." #: lib/pychess/widgets/ionest.py:325 #, python-format msgid "There is %d game with unsaved moves." msgid_plural "There are %d games with unsaved moves." msgstr[0] "Hay %d partida con movimientos sin guardar" msgstr[1] "Hay %d partidas con movimientos sin guardar" #: lib/pychess/widgets/ionest.py:328 msgid "Save moves before closing?" msgstr "¿Guardar movimientos antes de cerrar?" #: lib/pychess/widgets/ionest.py:339 msgid "Unable to save to configured file. Save the games before closing?" msgstr "" #: lib/pychess/widgets/ionest.py:366 #, python-format msgid "_Save %d document" msgid_plural "_Save %d documents" msgstr[0] "_Guardar %d documento" msgstr[1] "_Guardar %d documentos" #: lib/pychess/widgets/ionest.py:412 msgid "Save the current game before you close it?" msgstr "" #: lib/pychess/widgets/ionest.py:420 msgid "" "Unable to save to configured file. Save the current game before you close " "it?" msgstr "" #: lib/pychess/widgets/ionest.py:434 msgid "" "It is not possible later to continue the game,\n" "if you don't save it." msgstr "No es posible continuar posteriormente la partida, si no la guardas." #: lib/pychess/widgets/LogDialog.py:26 msgid "PyChess Information Window" msgstr "Ventana de información de PyChess" #: lib/pychess/widgets/LogDialog.py:184 lib/pychess/widgets/LogDialog.py:188 msgid "of" msgstr "de" #: lib/pychess/widgets/newGameDialog.py:84 #: lib/pychess/widgets/newGameDialog.py:85 msgid "Human Being" msgstr "Humano" #: lib/pychess/widgets/newGameDialog.py:155 msgid "Rapid" msgstr "Rápido" #: lib/pychess/widgets/newGameDialog.py:224 msgid "Minutes:" msgstr "Minutos:" #: lib/pychess/widgets/newGameDialog.py:228 msgid "Gain:" msgstr "Ganancia:" #: lib/pychess/widgets/newGameDialog.py:241 #, python-format msgid "%(name)s %(minutes)d min + %(gain)d sec/move" msgstr "%(name)s %(minutes)d min + %(gain)d sec/movimiento" #: lib/pychess/widgets/newGameDialog.py:244 #, python-format msgid "%(name)s %(minutes)d min %(gain)d sec/move" msgstr "%(name)s %(minutes)d min %(gain)d sec/movimiento" #: lib/pychess/widgets/newGameDialog.py:247 #, python-format msgid "%(name)s %(minutes)d min" msgstr "%(name)s %(minutes)d min" #: lib/pychess/widgets/newGameDialog.py:265 msgid "Odds" msgstr "Ventajas" #: lib/pychess/widgets/newGameDialog.py:269 msgid "Asian variants" msgstr "" #: lib/pychess/widgets/newGameDialog.py:301 msgid " chess" msgstr " ajedrez" #: lib/pychess/widgets/newGameDialog.py:682 msgid "Type or paste PGN game or FEN positions here" msgstr "Escribe o pega el juego PGN o las posiciones FEN aquí " #: lib/pychess/widgets/newGameDialog.py:725 msgid "Enter Game" msgstr "Entrar al Juego" #: lib/pychess/widgets/preferencesDialog.py:123 msgid "Select book file" msgstr "Selecciona el archivo de aperturas" #: lib/pychess/widgets/preferencesDialog.py:128 msgid "Opening books" msgstr "Libros de aperturas" #: lib/pychess/widgets/preferencesDialog.py:156 msgid "Select Gaviota TB path" msgstr "Selecciona la ruta para las tablas del programa Gaviota" #: lib/pychess/widgets/preferencesDialog.py:331 msgid "Open Sound File" msgstr "Abrir Archivo de Sonido" #: lib/pychess/widgets/preferencesDialog.py:341 msgid "Sound files" msgstr "Archivos de sonido" #: lib/pychess/widgets/preferencesDialog.py:485 msgid "Undescribed panel" msgstr "Panel sin descripción" #: lib/pychess/widgets/preferencesDialog.py:678 msgid "Select auto save path" msgstr "" #: lib/pychess/widgets/tipOfTheDay.py:51 msgid "" "You can start a new game by Game > New Game, in New Game " "window do you can choose Players, Time Control and Chess " "Variants." msgstr "Puede empezar una partida nueva en Partida > Nueva partida, en la siguiente ventana puede seleccionar Jugadores, Control de tiempo y Variante." #: lib/pychess/widgets/tipOfTheDay.py:52 msgid "" "You can choose from 20 different difficulties to play against the computer." msgstr "" #: lib/pychess/widgets/tipOfTheDay.py:53 msgid "" "Chess Variants are like the pieces of the last line will be placed on the " "board." msgstr "En las Variantes de Ajedrez la posición de partida de las piezas de la primera línea varían." #: lib/pychess/widgets/tipOfTheDay.py:54 msgid "" "To save a game Game > Save Game As, give the filename and " "choose where you want to be saved. At the bottom choose extension type of " "the file, and Save." msgstr "Para guardar un juego, vaya a Juego > Guardar juego como..., escriba un nombre de archivo y elija la ubicación donde desea guardarlo. Elija la extensión del archivo abajo, y después haga clic en Guardar." #: lib/pychess/widgets/tipOfTheDay.py:55 msgid "" "Do you know that you can call flag when the clock is with you, " "Actions > Call Flag." msgstr "¿Sabía que puede reclamar bandera cuando el reloj está de su lado en Acciones > Reclamar Bandera?" #: lib/pychess/widgets/tipOfTheDay.py:56 msgid "Pressing Ctrl+Z to offer opponent the possible rollback moves." msgstr "Mediante Ctrl+Z puede ofrecer a su oponente deshacer movimientos" #: lib/pychess/widgets/tipOfTheDay.py:57 msgid "" "To play on Fullscreen mode, just type F11. Coming back, F11 " "again." msgstr "Para pasar a Pantalla completa, pulse F11. Para volver al modo ventana pulse otra vez F11" #: lib/pychess/widgets/tipOfTheDay.py:58 msgid "Hint mode analyzing your game, enable this type Ctrl+H." msgstr "El Modo ayuda analiza su juego. Actívelo pulsado Ctrl+H." #: lib/pychess/widgets/tipOfTheDay.py:59 msgid "" "Spy mode analyzing the oponnent game, enable this type Ctrl+Y." msgstr "El Modo espía analiza el juego de su oponente. Actívelo pulsando Ctrl+Y." #: lib/pychess/widgets/tipOfTheDay.py:60 msgid "" "You can play chess listening to the sounds of the game, for that, " "Settings > Preferences > Sound tab, enable Use " "sounds in PyChess and choose your preferred sounds." msgstr "Puede activar los sonidos de las piezas en Ajustes > Preferencias > Sonidos, activando Utilizar sonidos en PyChess y elegir los sonidos que más le gusten." #: lib/pychess/widgets/tipOfTheDay.py:61 msgid "" "Do you know that you can help translate Pychess in your language, " "Help > Translate Pychess." msgstr "Puede ayudar a traducir PyChess a su idioma en Ayuda > Traducir Pychess." #: lib/pychess/widgets/tipOfTheDay.py:62 msgid "" "Do you know that it is possible to finish a chess game in just 2 turns?" msgstr "¿Sabía que se puede ganar una partida de ajedrez en tan solo 2 turnos?" #: lib/pychess/widgets/tipOfTheDay.py:63 msgid "" "Do you know that the number of possible chess games exceeds the number of " "atoms in the Universe?" msgstr "¿Sabía que el número de partidas de ajedrez posibles es mayor que el número de átomos del universo?" #: lib/pychess/ic/managers/ChatManager.py:184 msgid "Shout" msgstr "Shout" #: lib/pychess/ic/managers/ChatManager.py:185 msgid "Chess Shout" msgstr "Chess Shout" #: lib/pychess/ic/managers/ChatManager.py:195 #, python-format msgid "Unofficial channel %d" msgstr "Canal no oficial %d" #: lib/pychess/Utils/lutils/LBoard.py:152 #, python-format msgid "" "FEN needs 6 data fields. \n" "\n" "%s" msgstr "" #: lib/pychess/Utils/lutils/LBoard.py:154 #, python-format msgid "" "FEN needs at least 2 data fields in fenstr. \n" "\n" "%s" msgstr "" #: lib/pychess/Utils/lutils/LBoard.py:175 #, python-format msgid "" "Needs 7 slashes in piece placement field. \n" "\n" "%s" msgstr "" #: lib/pychess/Utils/lutils/LBoard.py:178 #, python-format msgid "" "Active color field must be one of w or b. \n" "\n" "%s" msgstr "" #: lib/pychess/Utils/lutils/LBoard.py:189 #, python-format msgid "" "Castling availability field is not legal. \n" "\n" "%s" msgstr "" #: lib/pychess/Utils/lutils/LBoard.py:192 #, python-format msgid "" "En passant cord is not legal. \n" "\n" "%s" msgstr "" #: lib/pychess/Utils/lutils/lmove.py:260 msgid "invalid promoted piece" msgstr "pieza promocionada no válida" #: lib/pychess/Utils/lutils/lmove.py:272 msgid "the move needs a piece and a cord" msgstr "El movimiento necesita una pieza y una coordenada" #: lib/pychess/Utils/lutils/lmove.py:306 lib/pychess/Utils/lutils/lmove.py:556 msgid "promotion move without promoted piece is incorrect" msgstr "El movimiento de promoción sin pieza de promoción es incorrecto" #: lib/pychess/Utils/lutils/lmove.py:312 #, python-format msgid "the captured cord (%s) is incorrect" msgstr "la coordenada capturada (%s) es incorrecta" #: lib/pychess/Utils/lutils/lmove.py:323 #, python-format msgid "the end cord (%s) is incorrect" msgstr "" #: lib/pychess/Utils/lutils/strateval.py:24 sidepanel/commentPanel.py:191 #: sidepanel/commentPanel.py:208 msgid "and" msgstr "y" #: lib/pychess/Utils/lutils/strateval.py:43 msgid "draws" msgstr "empata" #: lib/pychess/Utils/lutils/strateval.py:45 msgid "mates" msgstr "mate" #: lib/pychess/Utils/lutils/strateval.py:49 msgid "puts opponent in check" msgstr "pone al oponente en jaque" #: lib/pychess/Utils/lutils/strateval.py:73 msgid "improves king safety" msgstr "mejora la seguridad del rey" #: lib/pychess/Utils/lutils/strateval.py:75 msgid "slightly improves king safety" msgstr "mejora levemente la seguridad del rey" #: lib/pychess/Utils/lutils/strateval.py:108 msgid "moves a rook to an open file" msgstr "mueve una torre para abrir una fila" #: lib/pychess/Utils/lutils/strateval.py:109 msgid "moves an rook to a half-open file" msgstr "mueve una torre para medio-abrir una fila" #: lib/pychess/Utils/lutils/strateval.py:119 #: lib/pychess/Utils/lutils/strateval.py:121 #: lib/pychess/Utils/lutils/strateval.py:124 #: lib/pychess/Utils/lutils/strateval.py:126 #, python-format msgid "moves bishop into fianchetto: %s" msgstr "mueve el alfil en fianchetto: %s" #: lib/pychess/Utils/lutils/strateval.py:132 #, python-format msgid "promotes a Pawn to a %s" msgstr "promueve un Peón en: %s" #: lib/pychess/Utils/lutils/strateval.py:135 msgid "castles" msgstr "enroca" #: lib/pychess/Utils/lutils/strateval.py:158 msgid "takes back material" msgstr "recupera material" #: lib/pychess/Utils/lutils/strateval.py:162 #: lib/pychess/Utils/lutils/strateval.py:170 msgid "sacrifies material" msgstr "sacrifica material" #: lib/pychess/Utils/lutils/strateval.py:164 msgid "exchanges material" msgstr "intercambia material" #: lib/pychess/Utils/lutils/strateval.py:166 msgid "captures material" msgstr "captura material" #: lib/pychess/Utils/lutils/strateval.py:291 #, python-format msgid "rescues a %s" msgstr "recupera %s" #: lib/pychess/Utils/lutils/strateval.py:294 #, python-format msgid "threatens to win material by %s" msgstr "amenaza captura con %s" #: lib/pychess/Utils/lutils/strateval.py:296 #, python-format msgid "increases the pressure on %s" msgstr "incrementa la presión sobre %s" #: lib/pychess/Utils/lutils/strateval.py:298 #, python-format msgid "defends %s" msgstr "defiende %s" #: lib/pychess/Utils/lutils/strateval.py:336 #, python-format msgid "pins an enemy %(oppiece)s on the %(piece)s at %(cord)s" msgstr "pins an enemy %(oppiece)s on the %(piece)s at %(cord)s" #: lib/pychess/Utils/lutils/strateval.py:369 #, python-format msgid "White has a new piece in outpost: %s" msgstr "El blanco tiene una nueva pieza en la avanzada: %s" #: lib/pychess/Utils/lutils/strateval.py:377 #, python-format msgid "Black has a new piece in outpost: %s" msgstr "El negro tiene una nueva pieza en la avanzada: %s" #: lib/pychess/Utils/lutils/strateval.py:416 #, python-format msgid "%(color)s has a new passed pawn on %(cord)s" msgstr "%(color)s tienen un nuevo peón promocionado en %(cord)s" #: lib/pychess/Utils/lutils/strateval.py:470 msgid "half-open" msgstr "Medio abierto" #: lib/pychess/Utils/lutils/strateval.py:472 #, python-format msgid "in the %(x)s%(y)s file" msgstr "en el archivo %(x)s%(y)s" #: lib/pychess/Utils/lutils/strateval.py:474 #, python-format msgid "in the %(x)s%(y)s files" msgstr "en los archivo %(x)s%(y)s" #: lib/pychess/Utils/lutils/strateval.py:477 #, python-format msgid "%(color)s got a double pawn %(place)s" msgstr "%(color)s consiguió un peón doble %(place)s" #: lib/pychess/Utils/lutils/strateval.py:478 #, python-format msgid "%(color)s got new double pawns %(place)s" msgstr "%(color)s consiguió doble peón nuevo %(place)s" #: lib/pychess/Utils/lutils/strateval.py:485 #, python-format msgid "%(color)s got an isolated pawn in the %(x)s file" msgid_plural "%(color)s got isolated pawns in the %(x)s files" msgstr[0] "%(color)s tiene un peón aislado en el archivo %(x)s" msgstr[1] "%(color)s tiene un peón aislado en los archivos %(x)s" #: lib/pychess/Utils/lutils/strateval.py:492 #, python-format msgid "%s moves pawns into stonewall formation" msgstr "%s mueve un peón en formación de muralla" #: lib/pychess/Utils/lutils/strateval.py:507 #: lib/pychess/Utils/lutils/strateval.py:514 #, python-format msgid "%s can no longer castle" msgstr "%s ya no puede enrocar" #: lib/pychess/Utils/lutils/strateval.py:508 #: lib/pychess/Utils/lutils/strateval.py:515 #, python-format msgid "%s can no longer castle in queenside" msgstr "%s ya no puede enrocar de reina" #: lib/pychess/Utils/lutils/strateval.py:510 #: lib/pychess/Utils/lutils/strateval.py:517 #, python-format msgid "%s can no longer castle in kingside" msgstr "%s ya no puede enrocar de rey" #: lib/pychess/Utils/lutils/strateval.py:551 #, python-format msgid "%(opcolor)s has a new trapped bishop on %(cord)s" msgstr "%(opcolor)s tiene un alfil atrapado en %(cord)s" #: lib/pychess/Utils/lutils/strateval.py:573 #, python-format msgid "develops a pawn: %s" msgstr "promociona un peón: %s" #: lib/pychess/Utils/lutils/strateval.py:574 #, python-format msgid "brings a pawn closer to the backrow: %s" msgstr "acerca un peón a la última fila: %s" #: lib/pychess/Utils/lutils/strateval.py:591 #, python-format msgid "brings a %(piece)s closer to enemy king: %(cord)s" msgstr "acerca un %(piece)s al rey del oponente: %(cord)s" #: lib/pychess/Utils/lutils/strateval.py:594 #, python-format msgid "develops a %(piece)s: %(cord)s" msgstr "promociona %(piece)s: %(cord)s" #: lib/pychess/Utils/lutils/strateval.py:612 #, python-format msgid "places a %(piece)s more active: %(cord)s" msgstr "coloca %(piece)s más activo/a: %(cord)s" #: lib/pychess/Utils/lutils/strateval.py:638 msgid "White should do pawn storm in right" msgstr "El blanco debería hacer una tormenta de peones sobre la derecha" #: lib/pychess/Utils/lutils/strateval.py:640 msgid "Black should do pawn storm in left" msgstr "El negro debería hacer una tormenta de peones sobre la izquierda" #: lib/pychess/Utils/lutils/strateval.py:643 msgid "White should do pawn storm in left" msgstr "El blanco debería hacer una tormenta de peones sobre la izquierda" #: lib/pychess/Utils/lutils/strateval.py:645 msgid "Black should do pawn storm in right" msgstr "El negro debería hacer una tormenta de peones sobre la derecha" #: lib/pychess/Utils/lutils/strateval.py:671 msgid "Black has a rather cramped position" msgstr "El negro tiene una posición bastante incómoda" #: lib/pychess/Utils/lutils/strateval.py:673 msgid "Black has a slightly cramped position" msgstr "El negro tiene una posición levemente incómoda" #: lib/pychess/Utils/lutils/strateval.py:675 msgid "White has a rather cramped position" msgstr "El blanco tiene una posición bastante incómoda" #: lib/pychess/Utils/lutils/strateval.py:677 msgid "White has a slightly cramped position" msgstr "El blanco tiene una posición levemente incómoda" #: sidepanel/annotationPanel.py:26 msgid "Annotation" msgstr "Comentario" #: sidepanel/annotationPanel.py:29 msgid "Annotated game" msgstr "Juego comentado" #: sidepanel/annotationPanel.py:236 msgid "Copy PGN" msgstr "" #: sidepanel/annotationPanel.py:249 msgid "Add start comment" msgstr "Añadir comentario inicial" #: sidepanel/annotationPanel.py:254 msgid "Add comment" msgstr "Añadir comentario" #: sidepanel/annotationPanel.py:258 sidepanel/annotationPanel.py:316 msgid "Edit comment" msgstr "Editar comentario" #: sidepanel/annotationPanel.py:269 msgid "Forced move" msgstr "Movimiento forzado" #: sidepanel/annotationPanel.py:274 msgid "Add move symbol" msgstr "Agrega símbolo del moviento" #: sidepanel/annotationPanel.py:280 msgid "Unclear position" msgstr "Posición incierta" #: sidepanel/annotationPanel.py:289 msgid "Zugzwang" msgstr "Zugzwang" #: sidepanel/annotationPanel.py:290 msgid "Development adv." msgstr "Ventaja en desarrollo." #: sidepanel/annotationPanel.py:291 msgid "Initiative" msgstr "Iniciativa" #: sidepanel/annotationPanel.py:292 msgid "With attack" msgstr "Con ataque" #: sidepanel/annotationPanel.py:293 msgid "Compensation" msgstr "Compensación" #: sidepanel/annotationPanel.py:294 msgid "Counterplay" msgstr "Contrajugada" #: sidepanel/annotationPanel.py:295 msgid "Time pressure" msgstr "Presión del tiempo" #: sidepanel/annotationPanel.py:300 msgid "Add evaluation symbol" msgstr "Agrega símbolo de evaluación" #: sidepanel/annotationPanel.py:304 msgid "Remove symbols" msgstr "Eliminar símbolos" #: sidepanel/annotationPanel.py:911 #, python-format msgid "round %s" msgstr "ronda %s" #: sidepanel/bookPanel.py:21 msgid "Hints" msgstr "Tips" #: sidepanel/bookPanel.py:25 msgid "" "The hint panel will provide computer advice during each stage of the game" msgstr "El panel de tips proporcionará asesoramiento durante cada etapa de la partida" #: sidepanel/bookPanel.py:27 msgid "Official PyChess panel." msgstr "Panel Oficial PyChess" #: sidepanel/bookPanel.py:87 msgid "Opening Book" msgstr "Libro de aperturas" #: sidepanel/bookPanel.py:88 msgid "" "The opening book will try to inspire you during the opening phase of the " "game by showing you common moves made by chess masters" msgstr "El libro de aperturas le puede servir de inspiración durante la fase inicial de una partida. Le mostrará movimientos habituales de los grandes maestros del ajedrez" #: sidepanel/bookPanel.py:139 #, python-format msgid "Analysis by %s" msgstr "Análisis por %s" #: sidepanel/bookPanel.py:140 #, python-format msgid "" "%s will try to predict which move is best and which side has the advantage" msgstr "%s tratará de predecir cuál movimiento es el mejor y cuál lado tiene la ventaja" #: sidepanel/bookPanel.py:142 #, python-format msgid "Threat analysis by %s" msgstr "Análisis de amenazas por %s" #: sidepanel/bookPanel.py:143 #, python-format msgid "" "%s will identify what threats would exist if it were your opponent's turn to" " move" msgstr "%s identificará qué amenazas podrían existir como si fuera el turno de tu oponente para mover" #: sidepanel/bookPanel.py:159 sidepanel/bookPanel.py:269 msgid "Calculating..." msgstr "Calculando…" #: sidepanel/bookPanel.py:300 msgid "" "Engine scores are in units of pawns, from White's point of view. Double " "clicking on analysis lines you can insert them into Annotation panel as " "variations." msgstr "La puntuación de los motores está en unidades de peón, desde el punto de vista de Blancas. Haciendo doble clic en las líneas de análisis puedes insertarlas en el panel de Anotación como variantes." #: sidepanel/bookPanel.py:302 msgid "" "Adding suggestions can help you find ideas, but slows down the computer's " "analysis." msgstr "Agregar sugerencias puede ayudarte a encontrar ideas, pero ralentiza el análisis de la computadora. " #: sidepanel/bookPanel.py:311 msgid "Endgame Table" msgstr "Tabla de finales" #: sidepanel/bookPanel.py:315 msgid "" "The endgame table will show exact analysis when there are few pieces on the " "board." msgstr "La tabla de finales mostrará el análisis exacto cuando queden unas pocas piezas sobre el tablero." #: sidepanel/bookPanel.py:364 sidepanel/bookPanel.py:367 #, python-format msgid "Mate in %d" msgstr "Mate en %d" #: sidepanel/bookPanel.py:554 msgid "" "In this position,\n" "there is no legal move." msgstr "En esta posición,\\n\nno hay movientos válidos." #: sidepanel/chatPanel.py:21 msgid "" "The chat panel lets you communicate with your opponent during the game, " "assuming he or she is interested" msgstr "El panel de charla permite comunicarse con el oponente durante la partida, suponiendo que acepte" #: sidepanel/commentPanel.py:16 msgid "Comments" msgstr "Comentarios" #: sidepanel/commentPanel.py:20 msgid "The comments panel will try to analyze and explain the moves played" msgstr "El panel de comentarios analizar y trata de explicar los movimientos realizados" #: sidepanel/commentPanel.py:121 msgid "Initial position" msgstr "Posición inicial" #: sidepanel/commentPanel.py:254 #, python-format msgid "%(color)s moves a %(piece)s to %(cord)s" msgstr "%(color)s mueve %(piece)s a %(cord)s" #: sidepanel/engineOutputPanel.py:15 msgid "Engines" msgstr "Motores" #: sidepanel/engineOutputPanel.py:20 msgid "" "The engine output panel shows the thinking output of chess engines (computer" " players) during a game" msgstr "El panel de salida del motor muestra el pensamiento del motor de ajedrez (computadora jugando) durante una partida" #: sidepanel/engineOutputPanel.py:44 msgid "No chess engines (computer players) are participating in this game." msgstr "Ningún motor (jugador artificial) está participando en este juego." #: sidepanel/historyPanel.py:10 msgid "Move History" msgstr "Historial de Movimientos" #: sidepanel/historyPanel.py:13 msgid "" "The moves sheet keeps track of the players' moves and lets you navigate " "through the game history" msgstr "La hoja de movimientos registra los movimientos de los jugadores y permite navegar por el histórico de la partida" #: sidepanel/scorePanel.py:15 msgid "Score" msgstr "Puntuación" #: sidepanel/scorePanel.py:19 msgid "" "The score panel tries to evaluate the positions and shows you a graph of the" " game progress" msgstr "El panel de puntuación evalúa las posiciones y muestra un gráfico del progreso de la partida" pychess-0.12.2/lang/es/LC_MESSAGES/pychess.mo0000644000175000017470000021255512653231272020715 0ustar tamasusers00000000000000/? ? ?G?@ @$@ ?@M@h@+z@ @@0@[@NDAA%A`A(1B+ZB'B#BB*B,C0CCtCCCCC#C$D''DOD cD!DQDJD>CEEEEEE#EEF%F+FHFNF9gF'F@F GG,GAGUGpGEGGG#G$H DHPHaHyHHHHLHI +I8IJIQ]I&ICI7JURJ*J(JJK$K5KIK OK[KcKjK {KKKKSK L!L )L7L GL QL[L jLwLCLL L L LMMM*)M TM `MjMlM/rMSMQMHNgN!NN NN/OS2OQO#O*O"'P+JPvPrQ QKQ%QOR-eR3R$R6R##SEGSAS!S!S-T&AT-hT;T TBT6U;UBU$HU#mU%U"U#UU VV!V'V.VVVVVV V VWW%W *W8W NWYW hWPtW W6WVXV^XRXSY\YbYxY-YYY YY YYZZ:-ZhZ zZZZ Z Z ZZZ ZZZZ["[3[G8[`[a[iC\ \\ \\ \ \ \\ \]]}] (^3^&H^o^u^|^^ ^^@^D^H<_F_H_`=aObwc}c dd d6d Qd]d ldxd{ddddd dddd seee e eee e eeeeAeff>ggXgcg]ch?hBi;DiqiSiOFjFk k)kl &l1l FlDTlllllll lll m m$m 6mBm Vm bm mmzmmmmm mmm mm n!n5n >n In Wn dnqnsn/xnn nCnoo'o .oq.Xq qqq q qqqqqr)r +r7r=r Br Lr Yrfrkrprr rrrr rr rs ss(s DsEPss's s s#sst3tNt_t t u u u u*u,u4u;uAu GuRuYusuuu uuuu uuuuuu uu v vv 5v@vFv Nv Zvgv~v vv"vvvv ww-wDw Sw_w ew rw}wwwwww wwxx x @x LxVx\x exoxxxxxxxx xxxpxbyh/z"zCz5z45{9j{3{{R{:|cZ||v}T} }=}9)~Zc~~~~ &I9}`~(>NZ_́ԁKہh'E,ւAAE  ̃ۃP; ,KMar  ΅ օ 2 IWQi6M W_J$P#u%"# 04 P\n,9`?9ڌ(u=C$&C׎4R itŐ[ޑ%fl!X/t&(˓&''CdkД % 4 ? LV_en  % ѕܕ   #) : EP c pz $ ɖԖ  -3 BO!S)u8ؗ1'*Rk} Øɘ ܘ 5"&eI+ۚ<SY]!z ɛ ̛ ٛ(>6N(2Ɯ !.5>QUs#!͝ (/3 D ' !(+T.h3bߥQB-kҦ0>8o$#ͧ0 2;/nԨ *@k!!`ĩR%Cx!ު$&*Q&V#}6$E`r(جG;#T)x*ͭݭ $"4WXhڮQ(hS2_5x1 18JQYpeڱ@W `n ŲNٲ( 8CSdv+)#ճ 5 \B` >Y!v5\_K$1ж*'-U>ø'P*3{9%>$NHs8,$"'G*o66ѻ&8/hlr1y/0ۼA ?NϽr{}  о׾ _"?gҿ]:ZZNTh> 0:H    -)!WyHhrIV" )6:K^p`h"23R @DH[FH4[R  &A]x( ~  R>Z\\a\Fx[OQkUx9 / 3DI   #.EU p }! -4H e(p 2 ,D;#    -=Oaq  J' )H*r* 4 :H`u   & 3@EKj(  "4C `Gm+ 4#1#U"y Zfh ny   -7@FX^e & )7?"w"&#)EVq *0K _j|$  "=Yacfi{"`(`OB-HJEcOrmSOKbo<VrN#r5_{VrKe0EO(x na EPct7y  4 @L` r V$H{N ,932;0n1B@U^ fq KJh E2BK+?<+|-% #$q=h~o\&si+#0%T$z+9`"f     /BK]f5m    4 ?Mh { , (1BF_d v.;TB ^ 1e %       8 ?  T  ^ Tl $ h /O        # )9  c          6((_A  (3<O%Sy*16:>FOVWSsMG0`cm% Q,%(SY<y;6*8XXgHY[B7aw]]jI5k,[peJ\17Qq2"4:?ppt IN%D ]k:d'z$aLLe|t"#)V<R^2)v\J X>@_` KTxG[6FS+1J! tiqC>PZw dgkNm~qHVnS- 841I9rrOR CY=v/*zK,@j3-(4{ z\;xh(}lBN0f{!+&PjW:$5`?h.ME!_cZE$ b@E;KbsbFPM>of.gTh9D il|nBrO#e_m'oWi ^3 aLv2 <'G8x-slZn6y"}|{&=5o  =uH+U^~ACRU)}Vd9O7AywU~3fW*Dc&QT/u?.AF/#0u Gain: + %d sec challenges you to a %(time)s %(rated)s %(gametype)s game chess has arrived has declined your offer for a match has departed has lagged for 30 seconds is censoring you is lagging heavily but hasn't disconnected is present min where %(player)s plays %(color)s. with whom you have an adjourned %(timecontrol)s %(gametype)s game is online. would like to resume your adjourned %(time)s %(gametype)s game.%(black)s won the game%(color)s got a double pawn %(place)s%(color)s got an isolated pawn in the %(x)s file%(color)s got isolated pawns in the %(x)s files%(color)s got new double pawns %(place)s%(color)s has a new passed pawn on %(cord)s%(color)s moves a %(piece)s to %(cord)s%(minutes)d min + %(gain)d sec/move%(name)s %(minutes)d min%(name)s %(minutes)d min %(gain)d sec/move%(name)s %(minutes)d min + %(gain)d sec/move%(opcolor)s has a new trapped bishop on %(cord)s%(player)s is %(status)s%(player)s plays %(color)s%(white)s won the game%d min%s can no longer castle%s can no longer castle in kingside%s can no longer castle in queenside%s moves pawns into stonewall formation%s returns an error%s was declined by your opponent%s was withdrawn by your opponent%s will identify what threats would exist if it were your opponent's turn to move%s will try to predict which move is best and which side has the advantage'%s' is a registered name. If it is yours, type the password.'%s' is not a registered name(Blitz)*0 Players Ready0 of 010 min + 6 sec/move, 1400↑, White10 min + 6 sec/move, White12002 min, Fischer Random, 1800↓, Black2 min, Fischer Random, Black5 min5 min, 1200-1800, ManualConnect to the Free Online Chess ServerPromote pawn to what?PyChess was unable to load your panel settingsAnalyzingAnimationChess VariantDate of gameEnter Game NotationGame dataHint mode analyzing your game, enable this type Ctrl+H.Initial PositionInstalled SidepanelsName of _first human player:Name of s_econd human player:NewsOpen GameOpening, endgameOpponent StrengthOptionsPlay Sound When...PlayersSpy mode analyzing the oponnent game, enable this type Ctrl+Y.Time ControlToolsYour Color_Start GameA file named '%s' already exists. Would you like to replace it?Engine, %s, has diedPyChess is discovering your engines. Please wait.PyChess was not able to save the gameThere are %d games with unsaved moves. Save changes before closing?Unable to save file '%s'Unknown file type '%s'Challenge:A player _checks:A player _moves:A player c_aptures:AbortAbout ChessAc_tiveAcceptActive seeks: %dAdd commentAdd evaluation symbolAdd move symbolAdd start commentAdding suggestions can help you find ideas, but slows down the computer's analysis.Address ErrorAdjournAdministratorAll Chess FilesAll FilesAll whiteAnalysis by %sAnalyze gameAnalyzer startedAnimate pieces, board rotation and more. Use this on fast machines.Annotated gameAnnotationAny strengthAsk to _MoveAsymmetric RandomAtomicAuto Call _FlagAuto _rotate board to current human playerAuto-logoutAvailableBB EloBecause %(black)s lost connection to the serverBecause %(black)s lost connection to the server and %(white)s requested adjournmentBecause %(black)s ran out of time and %(white)s has insufficient material to mateBecause %(loser)s disconnectedBecause %(loser)s king explodedBecause %(loser)s ran out of timeBecause %(loser)s resignedBecause %(loser)s was checkmatedBecause %(mover)s stalematedBecause %(white)s lost connection to the serverBecause %(white)s lost connection to the server and %(black)s requested adjournmentBecause %(white)s ran out of time and %(black)s has insufficient material to mateBecause %(winner)s has fewer piecesBecause %(winner)s king reached the centerBecause %(winner)s lost all piecesBecause %(winner)s was giving check 3 timesBecause a player aborted the game. Either player can abort the game without the other's consent before the second move. No rating changes have occurred.Because a player disconnected and there are too few moves to warrant adjournment. No rating changes have occurred.Because a player lost connectionBecause a player lost connection and the other player requested adjournmentBecause both players agreed to a drawBecause both players agreed to abort the game. No rating changes have occurred.Because both players agreed to an adjournmentBecause both players have the same amount of piecesBecause both players ran out of timeBecause neither player has sufficient material to mateBecause of adjudication by an adminBecause of adjudication by an admin. No rating changes have occurred.Because of courtesy by a player. No rating changes have occurred.Because the %(black)s engine diedBecause the %(white)s engine diedBecause the connection to the server was lostBecause the game exceed the max lengthBecause the last 50 moves brought nothing newBecause the same position was repeated three times in a rowBecause the server was shut downBecause the server was shut down. No rating changes have occurred.BeepBishopBlackBlack has a new piece in outpost: %sBlack has a rather cramped positionBlack has a slightly cramped positionBlack should do pawn storm in leftBlack should do pawn storm in rightBlack:BlindfoldBlindfold AccountBlitzBlitz:Bringing your king legally to the center (e4, d4, e5, d5) instantly wins the game! Normal rules apply in other cases and checkmate also ends the game.BughouseCCACalculating...Center:ChallengeChallenge: Challenge: Change ToleranceChatChess AdvisorChess Alpha 2 DiagramChess GameChess PositionChess ShoutChess Variants are like the pieces of the last line will be placed on the board.Claim DrawClassic chess rules http://en.wikipedia.org/wiki/ChessClassic chess rules with all pieces white http://en.wikipedia.org/wiki/Blindfold_chessClassic chess rules with hidden figurines http://en.wikipedia.org/wiki/Blindfold_chessClassic chess rules with hidden pawns http://en.wikipedia.org/wiki/Blindfold_chessClassic chess rules with hidden pieces http://en.wikipedia.org/wiki/Blindfold_chessClockClose _without SavingColorize analyzed movesCommand line parameters needed by the engine.Command:CommentsCompensationComputerConnectingConnecting to serverConnection ErrorConnection was closedContinue to wait for opponent, or try to adjourn the game?Conversation infoConversationsCornerCould not save the fileCounterplayCrazyhouseCreate SeekDDateDate/TimeDeclineDefaultDestination Host UnreachableDetect type automaticallyDevelopment adv.DiedDo you know that it is possible to finish a chess game in just 2 turns?Do you know that the number of possible chess games exceeds the number of atoms in the Universe?Do you know that you can call flag when the clock is with you, Actions > Call Flag.Do you know that you can help translate Pychess in your language, Help > Translate Pychess.Don't careDrawDummy AccountECOEdit SeekEdit Seek: Edit commentEmailEndgame TableEngine scores are in units of pawns, from White's point of view. Double clicking on analysis lines you can insert them into Annotation panel as variations.EnginesEngines use uci or xboard communication protocol to talk to the GUI. If it can use both you can set here which one you like.Enter GameEnter Game _NotationError parsing move %(moveno)s %(mstr)sEventEvent:Examine Adjourned GameExaminedExaminingExport positionFICS atomic: http://www.freechess.org/Help/HelpFiles/atomic.htmlFICS bughouse: http://www.freechess.org/Help/HelpFiles/bughouse.htmlFICS crazyhouse: http://www.freechess.org/Help/HelpFiles/crazyhouse.htmlFICS losers: http://www.freechess.org/Help/HelpFiles/losers_chess.htmlFICS suicide: http://www.freechess.org/Help/HelpFiles/suicide_chess.htmlFICS wild/3: http://www.freechess.org/Help/HelpFiles/wild.html * Randomly chosen pieces (two queens or three rooks possible) * Exactly one king of each color * Pieces placed randomly behind the pawns * No castling * Black's arrangement mirrors white'sFICS wild/4: http://www.freechess.org/Help/HelpFiles/wild.html * Randomly chosen pieces (two queens or three rooks possible) * Exactly one king of each color * Pieces placed randomly behind the pawns, SUBJECT TO THE CONSTRAINT THAT THE BISHOPS ARE BALANCED * No castling * Black's arrangement DOES NOT mirrors white'sFICS wild/5: http://www.freechess.org/Help/HelpFiles/wild.html http://en.wikipedia.org/wiki/Chess_variant#Chess_with_different_starting_positions Pawns start on their 7th rank rather than their 2nd rank!FICS wild/8: http://www.freechess.org/Help/HelpFiles/wild.html Pawns start on 4th and 5th ranks rather than 2nd and 7thFICS wild/8a: http://www.freechess.org/Help/HelpFiles/wild.html White pawns start on 5th rank and black pawns on the 4th rankFIDE MasterFMF_ull board animationFace _to Face display modeFile existsFischer RandomForced moveGMGain:Game informationGame is _drawn:Game is _lost:Game is _set-up:Game is _won:Games running: %dGaviota TB path:Generally this means nothing, as the game is time-based, but if you want to please your opponent, perhaps you should get going.Grand MasterGuestHa_ndle:Hidden pawnsHidden piecesHideHintsHow to PlayHuman BeingIMIdIdleIf set, PyChess will colorize suboptimal analyzed moves with red.If set, PyChess will show game results for different moves in positions containing 6 or less pieces. It will search positions from http://www.k4it.de/If set, PyChess will show game results for different moves in positions containing 6 or less pieces. You can download tablebase files from: http://www.olympuschess.com/egtb/gaviota/If set, PyChess will suggest best opening moves on hint panel.If set, PyChess will use figures to express moved pieces, rather than uppercase letters.If set, the black pieces will be head down, suitable for playing against friends on mobile devices.If set, the board will turn after each move, to show the natural view for the current player.If set, the captured figurines will be shown next to the board.If set, the elapsed time that a player used for the move is shown.If set, the hint analyzer engine evaluation value is shown.If set, the playing board will display labels and ranks for each chess field. These are usable in chess notation.If set, this hides the tab in the top of the playing window, when it is not needed.If the analyzer finds a move where the evaluation difference (the difference between the evaluation for the move it thinks is the best move and the evaluation for the move made in the game) exceeds this value, it will add an annotation for that move (consisting of the engine's Principal Variation for the move) to the Annotation panelIf you don't save, new changes to your games will be permanently lost.In TournamentIn this position, there is no legal move.Initial positionInitiativeInternational MasterInvalid move.It is not possible later to continue the game, if you don't save it.Jump to initial positionJump to latest positionKKingKing of the hillKnightKnight oddsKnightsLeave _FullscreenLightningLightning:Load _Recent GameLoaded gameLoading player dataLocal EventLocal SiteLog on ErrorLog on as G_uestLog on as _GuestLogging on to serverLosersLossMamer ManagerManage enginesManualManual AcceptManually accept opponentMate in %dMaximum analysis time in seconds:Minutes:Minutes: More channelsMore playersMove HistoryNNameNever use animation. Use this on slow machines.New GameNo _animationNo chess engines (computer players) are participating in this game.No conversation's selectedNo soundNormalNot AvailableObserveObserved _ends:OddsOffer A_bortOffer AbortOffer Ad_journmentOffer PauseOffer RematchOffer ResumeOffer UndoOffer _AbortOffer _DrawOffer _PauseOffer _ResumeOffer _UndoOfficial PyChess panel.OfflineOn FICS, your "Wild" rating encompasses all of the following variants at all time controls: One player starts with one less knight pieceOne player starts with one less pawn pieceOne player starts with one less queen pieceOne player starts with one less rook pieceOnlineOnly animate _movesOnly animate piece moves.Only registered users may talk to this channelOpen GameOpen Sound FileOpen _DatabaseOpening BookOpening booksOpponent RatingOpponent's strength: OtherOther (non standard rules)Other (standard rules)PParameters:PausePawnPawn oddsPawns PassedPawns PushedPingPlayPlay Fischer Random chessPlay Losers chessPlay RematchPlay _Internet ChessPlay normal chess rulesPlayer _RatingPlayers: %dPlayingPng imagePo_rts:Polyglot book file:Pre_viewPrefer figures in _notationPreferencesPressing Ctrl+Z to offer opponent the possible rollback moves.PrivateProbably because it has been withdrawn.PromotionProtocol:PyChess - Connect to Internet ChessPyChess - Internet Chess: FICSPyChess Game DatabasePyChess Information WindowPyChess databasePyChess has lost connection to the engine, probably because it has died. You can try to start a new game with the engine, or try to play against another one.PyChess.py:QQueenQueen oddsQuit PyChessRR_esignRandomRapidRatedRated gameRatingReceiving list of playersRemove symbolsRequest ContinuationResendResend %s?ResultResumeRookRook oddsRoundRound:Running Simul MatchSRS_ign upSanctionsSaveSave GameSave Game _AsSave moves before closing?Saved gameScoreSearch:Seek _GraphSeek updatedSelect Gaviota TB pathSelect book fileSelect engineSelect sound file...Select the games you want to save:Select working directorySend ChallengeSend all seeksSend seekService RepresentativeSetting up environmentSetup PositionSho_w cordsShoutShow ConsoleShow _ChatShow _captured piecesShow elapsed move timesShow evaluation valuesShow tips at startupShredderLinuxChess:ShuffleSide_panelsSimple Chess PositionSiteSite:Sorry '%s' is already logged inSound filesSp_y modeSpentStandardStandard:Start Private ChatStatusStep back one moveStep forward one moveSuicideTTDTMTeam AccountThe abort offerThe adjourn offerThe analyzer will run in the background and analyze the game. This is necessary for the hint mode to workThe chain button is disabled because you are logged in as a guest. Guests can't establish ratings, and the chain button's state has no effect when there is no rating to which to tie "Opponent Strength" toThe chat panel lets you communicate with your opponent during the game, assuming he or she is interestedThe clock hasn't been started yet.The comments panel will try to analyze and explain the moves playedThe connection was broken - got "end of file" messageThe directory where the engine will be started from.The displayed name of the first human player, e.g., John.The displayed name of the guest player, e.g., Mary.The draw offerThe endgame table will show exact analysis when there are few pieces on the board.The engine %s reports an error:The engine output panel shows the thinking output of chess engines (computer players) during a gameThe entered password was invalid. If you forgot your password, go to http://www.freechess.org/password to request a new one over email.The error was: %sThe file already exists in '%s'. If you replace it, its content will be overwritten.The flag callThe game #%s can't be loaded, because of an error parsing FENThe game can't be loaded, because of an error parsing FENThe game can't be read to end, because of an error parsing move %(moveno)s '%(notation)s'.The game ended in a drawThe game has been abortedThe game has been adjournedThe game has been killedThe game is pausedThe hint panel will provide computer advice during each stage of the gameThe inverse analyzer will analyze the game as if your opponent was to move. This is necessary for the spy mode to workThe move failed because %s.The moves sheet keeps track of the players' moves and lets you navigate through the game historyThe offer to switch sidesThe opening book will try to inspire you during the opening phase of the game by showing you common moves made by chess mastersThe pause offerThe reason is unknownThe resignationThe resume offerThe score panel tries to evaluate the positions and shows you a graph of the game progressThe takeback offerThebanThemesThere is %d game with unsaved moves.There are %d games with unsaved moves.This game can be automatically aborted without rating loss because there has not yet been two moves madeThis game can not be adjourned because one or both players are guestsThis is a continuation of an adjourned matchThis option is not applicable because you're challenging a playerThis option is not available because you're challenging a guest, Threat analysis by %sThree-checkTimeTime control: Time pressureTip Of The dayTip of the DayTo play on Fullscreen mode, just type F11. Coming back, F11 again.To save a game Game > Save Game As, give the filename and choose where you want to be saved. At the bottom choose extension type of the file, and Save.Tolerance:Tournament DirectorTranslate PyChessTypeType or paste PGN game or FEN positions hereUUnable to accept %sUnclear positionUndescribed panelUndoUndo one moveUndo two movesUninstallUnknownUnofficial channel %dUnratedUnregisteredUntimedUpside DownUse _analyzerUse _inverted analyzerUse _local tablebasesUse _online tablebasesUse analyzer:Use opening _bookVariant developed by Kai Laskos: http://talkchess.com/forum/viewtopic.php?t=40990Variation annotation creation threshold in centipawns:W EloWFMWGMWIMWaitWas unable to save '%(uri)s' as PyChess doesn't know the format '%(ending)s'.WelcomeWhen this button is in the "locked" state, the relationship between "Opponent's strength" and "Your strength" will be preserved when a) your rating for the type of game sought has changed b) you change the variant or the time controlWhiteWhite has a new piece in outpost: %sWhite has a rather cramped positionWhite has a slightly cramped positionWhite should do pawn storm in leftWhite should do pawn storm in rightWhite:WildWildcastleWildcastle shuffleWinWin by giving check 3 timesWith attackWoman FIDE MasterWoman Grand MasterWoman International MasterWorking directory:YouYou are currently logged in as a guest. A guest can't play rated games and therefore isn't able to play as many of the types of matches offered as a registered user. To register an account, go to http://www.freechess.org/Register/index.html.You asked your opponent to moveYou can play chess listening to the sounds of the game, for that, Settings > Preferences > Sound tab, enable Use sounds in PyChess and choose your preferred sounds.You can start a new game by Game > New Game, in New Game window do you can choose Players, Time Control and Chess Variants.You can't play rated games because "Untimed" is checked, You can't play rated games because you are logged in as a guestYou can't select a variant because "Untimed" is checked, You can't switch colors during the game.You don't have the necessary rights to save the file. Please ensure that you have given the right path and try again.You have been logged out because you were idle more than 60 minutesYou have opened no conversations yetYou have tried to undo too many moves.You may only have 3 outstanding seeks at the same time. If you want to add a new seek you must clear your currently active seeks. Clear your seeks?You sent a draw offerYou sent a pause offerYou sent a resume offerYou sent an abort offerYou sent an adjournment offerYou sent an undo offerYour opponent asks you to hurry!Your opponent has asked that the game be aborted. If you accept this offer, the game will end with no rating change.Your opponent has asked that the game be adjourned. If you accept this offer, the game will be adjourned and you can resume it later (when your opponent is online and both players agree to resume).Your opponent has asked that the game be paused. If you accept this offer, the game clock will be paused until both players agree to resume the game.Your opponent has asked that the game be resumed. If you accept this offer, the game clock will continue from where it was paused.Your opponent has asked that the last %s move(s) be undone. If you accept this offer, the game will continue from the earlier position.Your opponent has offered you a draw.Your opponent has offered you a draw. If you accept this offer, the game will end with a score of 1/2 - 1/2.Your opponent is not out of time.Your opponent must agree to abort the game because there has been two or more moves madeYour opponent seems to have changed their mind.Your opponent wants to abort the game.Your opponent wants to adjourn the game.Your opponent wants to pause the game.Your opponent wants to resume the game.Your opponent wants to undo %s move(s).Your panel settings have been reset. If this problem repeats, you should report it to the developersYour seeks have been removedYour strength: Zugzwang_Accept_Actions_Analyze Game_Black player:_Call Flag_Clear Seeks_Copy PGN_Decline_Edit_Engines_Export Position_Fullscreen_Game_Game List_General_Help_Hide tabs when only one game is open_Hint mode_Hints_Invalid move:_Load Game_Log Off_Log Viewer_Name:_New Game_Next_Observed moves:_Opponent:_Password:_Play Normal chess_Player List_Previous_Replace_Rotate Board_Save %d document_Save %d documents_Save %d documents_Save Game_Seeks / Challenges_Show Sidepanels_Sounds_Start Game_Untimed_Use sounds in PyChess_View_White player:_Your Color:andand guests can't play rated gamesand on FICS, untimed games can't be ratedand on FICS, untimed games have to be normal chess rulesask your opponent to moveblackbrings a %(piece)s closer to enemy king: %(cord)sbrings a pawn closer to the backrow: %scall your opponents flagcaptures materialcastlesdefends %sdevelops a %(piece)s: %(cord)sdevelops a pawn: %sdrawsexchanges materialgnuchess:half-openhttp://brainking.com/en/GameRules?tp=2 * Placement of the pieces on the 1st and 8th row are randomized * The king is in the right hand corner * Bishops must start on opposite color squares * Black's starting position is obtained by rotating white's position 180 degrees around the board's center * No castlinghttp://en.wikipedia.org/wiki/Chesshttp://en.wikipedia.org/wiki/Chess960 FICS wild/fr: http://www.freechess.org/Help/HelpFiles/wild.htmlhttp://en.wikipedia.org/wiki/Rules_of_chessimproves king safetyin the %(x)s%(y)s filein the %(x)s%(y)s filesincreases the pressure on %sinvalid promoted piecematesminmoves a rook to an open filemoves an rook to a half-open filemoves bishop into fianchetto: %snot playingofoffer a drawoffer a pauseoffer a takebackoffer an abortoffer to adjournoffer to resumeoffer to switch sidesonline in totalpins an enemy %(oppiece)s on the %(piece)s at %(cord)splaces a %(piece)s more active: %(cord)spromotes a Pawn to a %spromotion move without promoted piece is incorrectputs opponent in checkrating range nowrescues a %sresignround %ssacrifies materialsecslightly improves king safetytakes back materialthe captured cord (%s) is incorrectthe move needs a piece and a cordthreatens to win material by %sto automatic acceptto manual acceptucivs.whitewindow1xboardxboard nocastle: http://home.hccnet.nl/h.g.muller/engine-intf.html#8 FICS wild/2: http://www.freechess.org/Help/HelpFiles/wild.html * Random arrangement of the pieces behind the pawns * No castling * Black's arrangement mirrors white'sxboard wildcastle http://home.hccnet.nl/h.g.muller/engine-intf.html#8 FICS wild/0: http://www.freechess.org/Help/HelpFiles/wild.html * White has the typical set-up at the start. * Black's pieces are the same, except that the King and Queen are reversed, * so they are not on the same files as White's King and Queen. * Castling is done similarly to normal chess: * o-o-o indicates long castling and o-o short castling.xboard wildcastle http://home.hccnet.nl/h.g.muller/engine-intf.html#8 FICS wild/1: http://www.freechess.org/Help/HelpFiles/wild.html * In this variant both sides have the same set of pieces as in normal chess. * The white king starts on d1 or e1 and the black king starts on d8 or e8, * and the rooks are in their usual positions. * Bishops are always on opposite colors. * Subject to these constraints the position of the pieces on their first ranks is random. * Castling is done similarly to normal chess: * o-o-o indicates long castling and o-o short castling.Project-Id-Version: pychess Report-Msgid-Bugs-To: POT-Creation-Date: 2016-01-27 13:28+0100 PO-Revision-Date: 2016-01-28 08:56+0000 Last-Translator: slav0nic Language-Team: Spanish (http://www.transifex.com/gbtami/pychess/language/es/) MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Language: es Plural-Forms: nplurals=2; plural=(n != 1); Ganancia: + %d segte reta a una partida %(time)s %(rated)s %(gametype)s ajedrezha llegadoha rechazado su oferta para una partidase ha idoha quedado retrasado durante 30 segundoste está censurandoesta muy retrasado, pero no se ha desconectadoestá presente mindonde %(player)s juega con %(color)s.con quien tienes una partida pendiente %(timecontrol)s %(gametype)s está en línea.Te gustaría continuar tu partida %(time)s %(gametype)s suspendida.%(black)s ganan%(color)s consiguió un peón doble %(place)s%(color)s tiene un peón aislado en el archivo %(x)s%(color)s tiene un peón aislado en los archivos %(x)s%(color)s consiguió doble peón nuevo %(place)s%(color)s tienen un nuevo peón promocionado en %(cord)s%(color)s mueve %(piece)s a %(cord)s%(minutes)d min + %(gain)d sec/move%(name)s %(minutes)d min%(name)s %(minutes)d min %(gain)d sec/movimiento%(name)s %(minutes)d min + %(gain)d sec/movimiento%(opcolor)s tiene un alfil atrapado en %(cord)s%(player)s es %(status)s%(player)s jugador %(color)s%(white)s ganan%d min%s ya no puede enrocar%s ya no puede enrocar de rey%s ya no puede enrocar de reina%s mueve un peón en formación de muralla%s devuelve un error%s fué declinado por tu oponente%s fué retraído por tu oponente%s identificará qué amenazas podrían existir como si fuera el turno de tu oponente para mover%s tratará de predecir cuál movimiento es el mejor y cuál lado tiene la ventaja'%s' es un nombre registrado. Si es tuyo, introduce la contraseña.«%s» no es un nombre registrado(Bliz)*0 Jugadores Preparados0 de 010 min + 6 seg/mov, 1400↑, Blancas10 minutos + 6 seg/movimiento, blancas12002 min, Fischer Random, 1800↓, NegrasAleatorio Fisher, 2 minutos, negras5 minmin, 1200-1800, ManualConectar al Free Online Chess ServerCoronar peón comoPyChess no pudo cargar sus configuraciones de panelAnalizandoAnimaciónVarianteFecha de la partidaIntroduzca la notación del juegoDatos de la partidaEl Modo ayuda analiza su juego. Actívelo pulsado Ctrl+H.Posición inicialPaneles laterales instaladosNombre del _primer jugador humano:Nombre del _segundo jugador humano:NoticiasAbrir partidaApertura, finalFuerza del oponenteOpcionesReproducir sonido cuando...JugadoresEl Modo espía analiza el juego de su oponente. Actívelo pulsando Ctrl+Y.Control de tiempoHerramientasSu color_Empezar partidaYa existe un archivo con el nombre '%s'. ¿Deseas reemplazarlo?El motor %s, ha muertoPyChess está buscando sus motores de ajedrez. Por favor, espere.PyChess no pudo guardar el juegoHay %d juegos con movimientos sin guardar. ¿Guardar cambios antes de cerrar?No se puede guardar el archivo '%s'Tipo de archvo desconocido '%s'Desafío:Un jugador _jaquea:Un jugador _mueve:Un jugador _captura:AnularAcerca de AjedrezActivoAceptarBúsqiedas activas: %dAñadir comentarioAgrega símbolo de evaluaciónAgrega símbolo del movientoAñadir comentario inicialAgregar sugerencias puede ayudarte a encontrar ideas, pero ralentiza el análisis de la computadora. Error en la direcciónAplazar AdministradorArchivos de ajedrezTodos los archivosTodas blancasAnálisis por %sAnalizar partidaAnalizador iniciadoAnimación de piezas, rotación del tablero y otros. Usar en equipos rápidos.Juego comentadoComentarioCualquier nivelPedir_MovimientoAsymmetric RandomAtómicoAutomáticamente reclar victoria por tiempoOrientar tablero al jugador humano actualTerminar conexión automáticamenteDisponibleAN EloPorque %(black)s perdió la conexión con el servidorPorque %(black)s perdió la conexión con el servidor y %(white)s solicitó aplazar el juegoPorque %(black)s se quedaron sin tiempo y %(white)s no tienen suficiente material para dar mate%(loser)s está desconectadoPorque %(loser)s el rey explotó%(loser)s agotó su tiempoPorque %(loser)s se resignóPorque %(loser)s ha recibido mate%(mover)s está en punto muertoPorque %(white)s perdió la conexión con el servidorPorque %(white)s perdió la conexión con el servidor y %(black)s solicitó aplazar el juegoPorque %(white)s se quedaron sin tiempo y %(black)s no tienen suficiente material para dar matePorque %(winner)s tiene menos piezasPorque el rey de %(winner)s ha llegado al centro Porque %(winner)s perdió todas sus piezasPorque %(winner)s ha dado jaque 3 vezesUn jugador abortó la partida. Cualquiera de los dos jugadores puede abortar la partida sin el consentimiento del otro jugador antes del segundo movimiento. No hay cambio en los ratings.Debido a que un jugador esta desconectado y hay muy pocos movimientos para justificar el aplazamiento. No se han producido cambios de calificación.Un jugador se ha desconectadoUn jugador se ha desconectado y el otro solicitó aplazamientoPorque ambos jugadores acordaron tablasPorque ambos jugadores acordaron abortar la partida no hay cambios en el rating.Porque ambos jugadores acordar suspender la partidaPorque ambos jugadores tienen la misma cantidad de piezasAmbos jugadores han agotado su tiempoPorque ningún jugador tiene suficiente material para dar mateUn administrador así lo ha decididoPorque un administrador adjudicó la partida no hay cambio en el rating.Por cortesía de un jugador no hay cambios en el rating.Porque el motor %(black)s dejó de funcionarPor que el motor de %(white)s murióSe perdió la conexión con el servidorLa partida ha excedido la longitud máximaLos últimos 50 movimientos no han aportado nada nuevoLa misma posición se ha repetido tres veces seguidas.Porque el servidor no está disponibleEl sever fue desconectado. No hay cambio en los ratings.BipAlfilNegrasEl negro tiene una nueva pieza en la avanzada: %sEl negro tiene una posición bastante incómodaEl negro tiene una posición levemente incómodaEl negro debería hacer una tormenta de peones sobre la izquierdaEl negro debería hacer una tormenta de peones sobre la derechaNegras:A ciegasCuenta a ciegasCargaPartidas rápidas (blitz)Si tu rey llega al centro (e4, d4, e5, d5) inmediatamente ganas la partida! Aparte de eso, se aplican las reglas normales y jaque mate tambien termina la partida.BughouseCCACalculando…Centro:DesafíoDesafío: Desafío: Cambiar ToleranciaCharlaConsejero de ajedrezDiagrama Ajedrez Alfa 2PartidaPosiciónChess ShoutEn las Variantes de Ajedrez la posición de partida de las piezas de la primera línea varían.Reclamar tablasReglas de ajedrez clásico http://es.wikipedia.org/wiki/AjedrezReglas de ajedrez clásico con todas las piezas blancas http://es.wikipedia.org/wiki/Ajedrez_a_la_ciegaReglas de ajedrez clásico con figurines ocultos http://en.wikipedia.org/wiki/Blindfold_chessReglas de ajedrez clásico con peones ocultos http://en.wikipedia.org/wiki/Blindfold_chessReglas de ajedrez clásico con piezas ocultas http://en.wikipedia.org/wiki/Blindfold_chessRelojCerrar _sin guardarColorear movimientos analizadosParámetros de la línea de comandos necesarios para el motor.Instrucción:ComentariosCompensaciónComputadoraConectandoConectando al servidorError de conexiónLa conección se cerróContinuar esperando oponente, o intentar aplazar el juego?Información de la conversaciónConversacionesCornerNo se pudo guardar el archivoContrajugadaCrazyhouseCrear búsquedasDFechaFecha/HoraRechazarPor DefectoNo es posible alcanzar el servidor de destinoDetectar formato automáticamenteVentaja en desarrollo.Muerto¿Sabía que se puede ganar una partida de ajedrez en tan solo 2 turnos?¿Sabía que el número de partidas de ajedrez posibles es mayor que el número de átomos del universo?¿Sabía que puede reclamar bandera cuando el reloj está de su lado en Acciones > Reclamar Bandera?Puede ayudar a traducir PyChess a su idioma en Ayuda > Traducir Pychess.No les importaEmpateCuenta FalsaECOEditar búsquedaEditar búsqueda: Editar comentarioCorreo ElectrónicoTabla de finalesLa puntuación de los motores está en unidades de peón, desde el punto de vista de Blancas. Haciendo doble clic en las líneas de análisis puedes insertarlas en el panel de Anotación como variantes.MotoresLos motores usan los protocolos de comunicación uci y xboard para platicar con la interfaz de usuario.\n Si este puede usar ambos entonces debes espeficicar cuál de los dos prefieres.Entrar al JuegoIntroducir Notación del _JuegoError al analizar el movimiento %(moveno)s %(mstr)sEventoEvento:Examinar Juego AplazadoExaminadoExaminandoExportar posiciónFICS atomic: http://www.freechess.org/Help/HelpFiles/atomic.htmlFICS bughouse: http://www.freechess.org/Help/HelpFiles/bughouse.htmlFICS crazyhouse: http://www.freechess.org/Help/HelpFiles/crazyhouse.htmlFICS losers: http://www.freechess.org/Help/HelpFiles/losers_chess.htmlFICS suicida: http://www.freechess.org/Help/HelpFiles/suicide_chess.htmlFICS salvaje/3: http://www.freechess.org/Help/HelpFiles/wild.html * Piezas escogidas aleatoriamente (es posible dos damas o tres torres) * Solo un rey de cada color * Piezas ubicadas detrás de los peones aleatoriamente * Sin enroques * El arreglo de negras es un espejo del de blancasFICS salvaje/4: http://www.freechess.org/Help/HelpFiles/wild.html * Piezas escogidas aleatoriamente (dos damas o tres torres es posible) * Solo un rey de cada color * Piezas ubicadas aleatoriamente detrás de los peones, CON LA CONDICION DE QUE LOS ALFILES ESTEN BALANCEADOS * Sin enroques * El arreglo de las Negras NO ES un espejo de las BlancasFICS salvaje/5: http://www.freechess.org/Help/HelpFiles/wild.html http://es.wikipedia.org/wiki/Variante_del_ajedrez#Ajedrez_con_diferentes_posiciones_iniciales ¡Los peones inician en su 7ma fila en vez de su 2da fila!FICS salvaje/8: http://www.freechess.org/Help/HelpFiles/wild.html Los peones inician en la 4ta y 5ta filas en vez de las 2da y 7maFICS salvaje/8a: http://www.freechess.org/Help/HelpFiles/wild.html Los peones blancos inician en la 5ta fila y los peones negros en la 4ta filaMaestro FIDEMFAnimación completa del tableroDisposición Cara a CaraEl archivo existeFischer RandomMovimiento forzadoGMGanancia:Información de la partidaLa partida está _empatada:La partida está _perdida:La partida está _establecida:La partida está _ganada:Juegos en curso: %dRuta a las tablas de finales de Gaviota:Generalmente esto no significa nada debido a que su base es sobre tiempo, pero si quieres satisfacer a tu oponente, entonces continúa con estoGran MaestroInvitadoMa_nejar:Peones cultosPiezas ocultasEsconderTipsCómo jugarHumanoMIIdInactivoSi es fijado, PyChess coloreará los movimientos analizados sub-óptimos con rojo.Si esta opción está activa, entonces PyChess mostrará los resultados de la partida para los diferentes movimientos en las posiciones que tengan 6 o menos piezas.\n Buscará posiciones desde http://www.k4it.de/Si está activa esta opción, PyChess mostrará los resultados de las partidas para diferentes movientos en posiciones conteniendo 6 o menos piezas.\n Puedes descargar las tablas de finales de:\n http://www.olympuschess.com/egtb/gaviota/Si está activo, PyChess sugerirá los mejor movientos en la apertura en el panel de tips.Activado, PyChess usará figuras para expresar los movimientos en vez de letras mayúsculas.Activado, las piezas negras se muestran boca abajo. Adecuado para jugar en dispositivos móviles.Activado, el tablero girará tras cada jugada ofreciendo al jugador actual su vista natural.Si está activo, las piezas capturadas se mostrarán junto al tablero.Si es fijado, se muestra el tiempo transcurrido que un jugador ha usado para el movimiento.Si se activa, se muestra el valor de evaluación del motor analizador de pista.Activado, muestra encabezados de filas y columnas. Son útiles para la notación.Activado, esconde la pestaña superior de la ventana de juego cuando no es necesaria.Si el analizador encuentra un movimiento donde la diferencia de evaluación (la diferencia entre la evaluación para el movimiento que piensa que es el mejor y la evaluación para el movimiento hecho en el juego) es superior a este valor, se agregará una anotación para el movimiento (que consiste en de Variación Principal del motor para el movimiento) al panel AnotaciónSi no se guardan, los cambios en los juegos se perderán.En torneoEn esta posición,\n no hay movientos válidos.Posición inicialIniciativaMaestro InternacionalMovimiento inválido.No es posible continuar posteriormente la partida, si no la guardas.Volver a la posición inicialSaltar a la última posiciónRReyRey de la colinaCaballoKnight oddsCaballos_Cerrar_Pantalla completaRelámpagoRelámpagoCargar juego _recientePartida cargadaCargando datos del jugadorEvento localSitio LocalReportar cuando ErrorIniciar sesión como invitadoConectarse como _invitadoIniciando sesión con el servidorLosersDerrotaGestor MamerAdministrar los motoresManualAceptar ManualmenteAceptar oponente manualmenteMate en %dTiempo de análisis máximo en segundos:Minutos:Minutos: Más canalesMás jugadoresHistorial de MovimientosCNombreDesactiva las animaciones. Usar en equipos lentos.Nueva partidaSin animaciónNingún motor (jugador artificial) está participando en este juego.No se ha seleccionado conversaciónSin sonidoNormalNo DisponibleObservarObservados _finales:VentajasA_bortar ofertaPedir abortarOfrecer aplazamientoProponer PausaOfrecer rejugarProponer ReanudarProponer DeshacerOfrecer_abortarOfrecer _empateOfrecer pausaOfrecer_ContinuarOfrecer_DeshacerPanel Oficial PyChessDesconectadoEn FICS, su clasificación "Libre" abarca todas las siguientes variantes: un jugador empieza con un caballo menosUn jugador inicia la partida sin un peónUn jugador inicia la partida sin una reinaUn jugador inicia la partida sin una torreEn líneaAnimación completaSólo animar movimiento piezasSolo los usuarios registrados pueden usar este canalAbrir partidaAbrir Archivo de SonidoAbrir base de _datosLibro de aperturasLibros de aperturasRating del AdversarioFuerza del oponente: OtrasOtro (reglas NO estándar)Otro (reglas estándar)PParámetros:PausaPeónPawn oddsPawns PassedPawns PushedPingJugarJugar partida Aleatoria FisherJugar Ajedrez SuicidaRejugarJugar ajedrez en internetJugar según reglas normales del ajedrez_Calificación del JugadorJugadores: %dJugandoImagen pngPue_rtos:Archivo para el libro de Polyglot:Pre_visualizarUsar figuras en la_notaciónPreferenciasMediante Ctrl+Z puede ofrecer a su oponente deshacer movimientosPrivadoProbablemente porque esto ha sido retirado.CoronarProtocolo:PyChess - Conectar a servidor de ajedrez en internetPyChess - Ajedrez en Internet: FICSBase de datos de jugadas de PyChessVentana de información de PyChessBase de datos de PyChessPychess ha perdido la conexión con el motor, probablemente porque ha muerto. Puedes intentar empezar una nueva partida con el motor, o probar a jugar contra otro.PyChess.py:DReinaQueen oddsSalir de PyChessTRendirseRandomRápidoCalificadoJuego clasificadoCalificaciónRecibiendo la lista de jugadoresEliminar símbolosSolicitar ContinuarReenviarReenviar %s?ResultadoReanudarTorreVentaja de torresRondaRonda:Corriendo un Match simultáneoSRDarse de altaSancionesGuardarGuardar partidaGuardar partida _como¿Guardar movimientos antes de cerrar?Partida guardadaPuntuaciónBuscar:Busque GráficoBúsqueda actualizadaSelecciona la ruta para las tablas del programa GaviotaSelecciona el archivo de aperturasSelecciona motorSeleccione un archivo de sonido…Seleccione el juego que desea guardar:Selecciona el directorio de trabajoEnviar desafíoEnviar todas la búsquedas Enviar búsquedaServicio de RepresntaciónPreparando entornoPosiciónMostrar coordenadasShoutMostrar consolaMostrar _charlaMuestra las piezas capturadasMostrar tiempos de movimiento transcurridoMostrar valores de evaluaciónMostrar consejos al inicioShredderLinuxChess:DesplazadoPaneles lateralesPosición de Ajedrez SimpleSitioLugar:Perdón, '%s' ya ha iniciado sesiónArchivos de sonidoModo _espíaGastadoEstándarEstándarIniciar Chat PrivadoEstadoUn movimiento hacia atrásUn movimiento hacia delanteSuicidaTTDTMCuenta del equipoSe ofrece abortarSe ofrece aplazarEl analizador se ejecutará en segundo plano y analizará el juego. Esto es necesario para el funcionamiento del modo ayudaEl botón de la cadena está desactivado porque ha entrado como invitado. Los invitados no pueden establecer clasificaciones, y el estado del botón no tiene efecto cuando no hay "Fortaleza del Oponente" a la que fijarseEl panel de charla permite comunicarse con el oponente durante la partida, suponiendo que acepteEl reloj no se ha puesto en marcha aún.El panel de comentarios analizar y trata de explicar los movimientos realizadosLa conexión fue fallida - se obtuvo el mensaje «fin de archivo»El directorio desde donde el motor iniciará.El nombre que se mostrará del primer jugador humano, por ejemplo, Juan.El nombre que se mostrará del jugador invitado, por ejemplo, María.Se ofrecen tablasLa tabla de finales mostrará el análisis exacto cuando queden unas pocas piezas sobre el tablero.El motor %s reporta el error:El panel de salida del motor muestra el pensamiento del motor de ajedrez (computadora jugando) durante una partidaLa clave entrada es inválida. Si ha olvidado su clave, vaya a http://www.freechess.org/password para solicitar una nueva por email.El error ha sido: %s.El archivo ya existe en '%s'. Si lo reemplazas, el contenido va a ser sobreescrito.Reclamo de banderaEl juego #%s no se pudo leer debido a un error en la cadena de posición (FEN).El juego no se pudo leer debido a un error en la cadena de posición (FEN).La partida no puede leerse completa debido a un error en el análisis del movimiento %(moveno)s '%(notation)s'.La partida terminó en empateEl juego ha sido abortadoEl juego ha sido postergadoEl juego ha sido aniquiladoEl juego se ha pausadoEl panel de tips proporcionará asesoramiento durante cada etapa de la partidaEl analizador inverso analizará el juego como si fuera el turno de tu oponente. Esto es necesario para el funcionamiento del modo espíaEl movimiento falló a causa de %s.La hoja de movimientos registra los movimientos de los jugadores y permite navegar por el histórico de la partidaSe ofrece cambiar bandosEl libro de aperturas le puede servir de inspiración durante la fase inicial de una partida. Le mostrará movimientos habituales de los grandes maestros del ajedrezSe ofrece pausaRazón desconocidaSe rindeSe ofrece continuarEl panel de puntuación evalúa las posiciones y muestra un gráfico del progreso de la partidaSe ofrece deshacerThebanTemasHay %d partida con movimientos sin guardarHay %d partidas con movimientos sin guardarEste juego puede ser cancelado automáticamente sin pérdida de rating porque aún no se han hecho dos movimientosEsta partida no se puede aplazar porque uno o ambos jugadores son invitadosEsto es una continuación de un juego suspendidoEsta opción no está disponible ya que está desafiando a un jugadorEsta opción no se encuentra disponible ya que está desafiando a un invitado, Análisis de amenazas por %sTres-jaqueTiempoControl de tiempo: Presión del tiempoConsejo del díaConsejo del díaPara pasar a Pantalla completa, pulse F11. Para volver al modo ventana pulse otra vez F11Para guardar un juego, vaya a Juego > Guardar juego como..., escriba un nombre de archivo y elija la ubicación donde desea guardarlo. Elija la extensión del archivo abajo, y después haga clic en Guardar.ToleranciaDirector de TorneoTraducir PyChessTipoEscribe o pega el juego PGN o las posiciones FEN aquí UImposibilitado de aceptar %sPosición inciertaPanel sin descripciónDeshacer Deshacer un movimientoDeshacer dos movimientosDesinstalarDesconocidoCanal no oficial %dSin calificaciónSin registrarSin cronometrarBoca abajoUsar _analizadorUsar _analizador invertidoUsa las tablas localesUsa las tablas en InternetUtilizar analizador:Usa libro de aperturaVariante desarrollada por Kai Laskos: http://talkchess.com/forum/viewtopic.php?t=40990Crear umbral de variación en centipawns ( 1/100 del valor de un peón):B EloMMFMGMMMIEsperaNo se pudo guardar '%(uri)s' ya que PyChess desconoce el formato '%(ending)s'.Bienvenido/aMientras este botón esté en el estado «bloqueado», la relación entre «la fuerza del oponente» y «su fuerza» será preservada mientras a) su calificación para el tipo de juego buscado ha cambiado b) cambie la variante o el control de tiempoBlancasEl blanco tiene una nueva pieza en la avanzada: %sEl blanco tiene una posición bastante incómodaEl blanco tiene una posición levemente incómodaEl blanco debería hacer una tormenta de peones sobre la izquierdaEl blanco debería hacer una tormenta de peones sobre la derechaBlancas:SalvajeWildcastleWildcastle shuffleVictoriaGana dando jaque 3 vezesCon ataqueMaestra FIDEGran maestraMaestra internacionalDirectorio de trabajo:UstedUd. ha ingresado como usuario invitado. Un invitado no puede jugar partidas puntuadas y por lo tanto no será capaz de jugar muchos de los tipos de encuentros ofrecidos a usuarios registrados. Para registrar una cuenta, vaya a http://www.freechess.org/Register/index.html.pediste al oponente que muevaPuede activar los sonidos de las piezas en Ajustes > Preferencias > Sonidos, activando Utilizar sonidos en PyChess y elegir los sonidos que más le gusten.Puede empezar una partida nueva en Partida > Nueva partida, en la siguiente ventana puede seleccionar Jugadores, Control de tiempo y Variante.No puede jugar partidas clasificadas al estar activado "Sin tiempo", No puede jugar partidas clasificadas como invitadoNo puede seleccionar una variante al estar activado "Sin tiempo", No puede cambier de color durante el juego.No tienes los permisos necesarios para guardar el archivo. Por favor, asegúrate que has indicado bien la ruta y prueba otra vez.Ha sido desconectado por inactividad durante más de 60 minutosTodavía no se han abierto la conversaciónHa intentado deshacer demasiados movimientos.Solo puedes procesar 3 búsquedas al mismo tiempo. Si quieres agregar una nueva búsqueda entonces deberás eliminar tus búsquedas activas actuales. ¿Quieres eliminar las actuales?Has enviado un ofrecimiento de empatePediste pausaPediste continuarPediste abortarEnviaste una oferta de aplazamientoPediste deshacer¡Tu oponente te pide que te apures!Su oponente la ha solicitado abortar la partida. Si acepta, el juego concluirá sin cambios en la clasificación.Su oponente le ha solicitado aplazar la partida. Si acepta, la partida quedará aplazada y podrán retomarla más tarde (cuando su oponente esté conectado y ambos acuerden continuar).Su oponente le ha solicitado hacer una pausa. Si acepta, el reloj se detendrá hasta que ambos jugadores acuerden continuar la partida.Su oponente le ha solicitado continuar con la partida. Si acepta, el reloj volverá a ponerse en marcha desde donde se detuvo.Su oponente le solicita deshacer los últimos %s movimiento(s). Si acepta, el juego continuará desde la posición anterior a los mismos.Tu oponente te ofrece tablasSu oponente le ha ofrecido tablas. Si acepta, el juego concluirá con puntuación 1/2 - 1/2.Tu oponente no está pasado de tiempo.Tu oponente debe estar de acuerdo en abortar la partida porque ya se han realizado dos o más movimientosTu oponente parece que ha cambiado de idea.Tu oponente quiere abortar el juegoTu oponente quiere aplazar la partidaTu oponente quiere pausar la partidaTu oponente quiere continuar con la partidaTu oponente quiere deshacer %s movimiento(s) hacia atrásSu panel de ajustes se ha restablecido. Si el problema persiste contacte con los desarrolladoresTus búsquedas han sido eliminadasSu fuerza: Zugzwang_Aceptar_Acciones_Analyzar Juego_Jugador negras:_Reclamar banderaLimpiar búsquedasCopiar PGN_DeclinarEditarMotores_Exportar posición_Pantalla completa_PartidaLista de partidas_GeneralAy_uda_Ocultar pestañas solo cuando un juego está abierto_Modo ayudaTips_Movimiento inválido: _Cargar partidaDesconectarse_Visor de sucesos_Nombre:_Nueva partida_Siguiente_Movidas observadas:_Oponente:_Contraseña:_Partida normal de ajedrezLista de jugadores_Anterior_Reemplazar_Girar el tablero_Guardar %d documento_Guardar %d documentos_Guardar %d documentos_Guardar partidaBúsquedas/Desafíos_Mostrar paneles laterales_Sonidos_Empezar partidaSin_Usar sonidos en PyChess_Ver_Jugador blancas:_Su coloryy éstos no pueden jugar partidas clasificadasy en FICS, las partidas "Sin tiempo" no pueden clasificarsey en FICS, las partidas sin tiempo deben ajustarse a las regals normales del ajedrezpedir al oponente que muevanegrasacerca un %(piece)s al rey del oponente: %(cord)sacerca un peón a la última fila: %sReclamar la bandera al oponentecaptura materialenrocadefiende %spromociona %(piece)s: %(cord)spromociona un peón: %sempataintercambia materialgnuchess:Medio abiertohttp://brainking.com/es/GameRules?tp=2 * Ubicación de las piezas en la 1ra y 8va fila son aleatorias * El rey está en la esquina a mano derecha * Los alfiles deben iniciar en casillas de color opuesto * La posición de inicio de Negras es obtenida rotando la posición de Blancas 180 grados alrededor del centro del tablero * Sin enroqueshttp://es.wikipedia.org/wiki/Ajedrezhttp://es.wikipedia.org/wiki/Chess960 FICS salvaje/fr: http://www.freechess.org/Help/HelpFiles/wild.htmlhttp://es.wikipedia.org/wiki/Reglas_del_ajedrezmejora la seguridad del reyen el archivo %(x)s%(y)sen los archivo %(x)s%(y)sincrementa la presión sobre %spieza promocionada no válidamateminmueve una torre para abrir una filamueve una torre para medio-abrir una filamueve el alfil en fianchetto: %sNo se esta jugandodeofrecer tablasofrecer una pausaofrecer deshacerofrecer abortarofrecer aplazarofrecer continuarofrecer cambiar bandototal en conectadospins an enemy %(oppiece)s on the %(piece)s at %(cord)scoloca %(piece)s más activo/a: %(cord)spromueve un Peón en: %sEl movimiento de promoción sin pieza de promoción es incorrectopone al oponente en jaqueRango de clasificación actualrecupera %sRendiciónronda %ssacrifica materialsegmejora levemente la seguridad del reyrecupera materialla coordenada capturada (%s) es incorrectaEl movimiento necesita una pieza y una coordenadaamenaza captura con %sPara aceptar automáticamentePara aceptar manualmenteucivs.blancasventana1xboardxboard nocastle: http://home.hccnet.nl/h.g.muller/engine-intf.html#8 FICS salvaje/2: http://www.freechess.org/Help/HelpFiles/wild.html * Arreglo aleatorio de las piezas detrás de los peones * Sin enroques * El arreglo de negras es un espejo del de blancasxboard wildcastle http://home.hccnet.nl/h.g.muller/engine-intf.html#8 FICS salvaje/0: http://www.freechess.org/Help/HelpFiles/wild.html * Blancas tiene el arreglo típico al inicio. * Las piezas Negras de igual manera, excepto que el Rey y Dama están intercambiados, * por lo que no están en las mismas columnas que el Rey y Dama blancos. * El enroque es hecho de manera similar al ajedrez normal: * o-o-o indica enroque largo y o-o enroque corto.xboard wildcastle http://home.hccnet.nl/h.g.muller/engine-intf.html#8 FICS salvaje/1: http://www.freechess.org/Help/HelpFiles/wild.html * En esta variante ambos lados tienen el mismo conjunto de piezas como en ajedrez normal. * El rey blanco inicia en d1 o e1 y el rey negro inicia en d8 o e8, * y las torres están en sus posiciones usuales. * Los alfiles están siempre en colores opuestos. * Sujeto a estas restricciones la posición de las piezas en sus primeras filas es aleatoria. * El enroque es hecho de manera similar al ajedrez normal: * o-o-o indica enroque largo y o-o enroque corto.pychess-0.12.2/lang/pt/0000755000175000017470000000000012653231274015121 5ustar tamasusers00000000000000pychess-0.12.2/lang/pt/LC_MESSAGES/0000755000175000017470000000000012653231274016706 5ustar tamasusers00000000000000pychess-0.12.2/lang/pt/LC_MESSAGES/pychess.po0000644000175000017470000025025612653216202020730 0ustar tamasusers00000000000000# SOME DESCRIPTIVE TITLE. # Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER # This file is distributed under the same license as the pychess package. # # Translators: # FIRST AUTHOR , 2007 msgid "" msgstr "" "Project-Id-Version: pychess\n" "Report-Msgid-Bugs-To: \n" "POT-Creation-Date: 2016-01-27 13:28+0100\n" "PO-Revision-Date: 2016-01-28 08:56+0000\n" "Last-Translator: slav0nic \n" "Language-Team: Portuguese (http://www.transifex.com/gbtami/pychess/language/pt/)\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" "Language: pt\n" "Plural-Forms: nplurals=2; plural=(n != 1);\n" # "Plural-Forms: nplurals=INTEGER; plural=EXPRESSION;\n" #: glade/analyze_game.glade:22 msgid "Analyze game" msgstr "" #: glade/analyze_game.glade:87 msgid "Use analyzer:" msgstr "" #: glade/analyze_game.glade:122 glade/PyChess.glade:2054 msgid "Maximum analysis time in seconds:" msgstr "" #: glade/analyze_game.glade:163 msgid "" "If the analyzer finds a move where the evaluation difference (the difference" " between the evaluation for the move it thinks is the best move and the " "evaluation for the move made in the game) exceeds this value, it will add an" " annotation for that move (consisting of the engine's Principal Variation " "for the move) to the Annotation panel" msgstr "" #: glade/analyze_game.glade:164 msgid "Variation annotation creation threshold in centipawns:" msgstr "" #: glade/analyze_game.glade:198 msgid "Analyze from current position" msgstr "" #: glade/analyze_game.glade:214 msgid "Add threatening variation lines " msgstr "" #: glade/analyze_game.glade:229 glade/PyChess.glade:1459 msgid "Colorize analyzed moves" msgstr "" #: glade/analyze_game.glade:244 glade/PyChess.glade:1495 msgid "Show evaluation values" msgstr "" #: glade/discovererDialog.glade:18 msgid "PyChess is discovering your engines. Please wait." msgstr "" #: glade/discovererDialog.glade:77 msgid "PyChess.py:" msgstr "PyChess.py:" #: glade/discovererDialog.glade:89 msgid "ShredderLinuxChess:" msgstr "ShredderLinuxChess:" #: glade/discovererDialog.glade:101 msgid "gnuchess:" msgstr "gnuchess:" #: glade/fics_logon.glade:7 msgid "PyChess - Connect to Internet Chess" msgstr "PyChess - Connect to Internet Chess" #: glade/fics_logon.glade:47 msgid "Connect to the Free Online Chess Server" msgstr "Conectar-se ao Servidor Grátis de Xadrez Online" #: glade/fics_logon.glade:129 glade/taskers.glade:394 msgid "_Password:" msgstr "_Palavra-chave:" #: glade/fics_logon.glade:143 msgid "_Name:" msgstr "_Nome" #: glade/fics_logon.glade:191 msgid "Log on as _Guest" msgstr "Iniciar sessão como _Convidado" #: glade/fics_logon.glade:227 msgid "Host:" msgstr "" #: glade/fics_logon.glade:259 msgid "Po_rts:" msgstr "" #: glade/fics_logon.glade:271 msgid "Auto login on startup" msgstr "" #: glade/fics_logon.glade:385 msgid "S_ign up" msgstr "" #: glade/fics_lounge.glade:35 msgid "Challenge: " msgstr "" #: glade/fics_lounge.glade:97 msgid "Send Challenge" msgstr "" #: glade/fics_lounge.glade:133 msgid "Challenge:" msgstr "" #: glade/fics_lounge.glade:327 glade/fics_lounge.glade:2078 msgid "Lightning:" msgstr "" #: glade/fics_lounge.glade:351 glade/fics_lounge.glade:2102 msgid "Standard:" msgstr "" #: glade/fics_lounge.glade:375 glade/fics_lounge.glade:2126 msgid "Blitz:" msgstr "" #: glade/fics_lounge.glade:400 msgid "2 min, Fischer Random, Black" msgstr "" #: glade/fics_lounge.glade:422 msgid "10 min + 6 sec/move, White" msgstr "" #: glade/fics_lounge.glade:444 msgid "5 min" msgstr "" #: glade/fics_lounge.glade:480 msgid "Edit Seek" msgstr "" #: glade/fics_lounge.glade:584 lib/pychess/ic/ICLounge.py:2208 #: lib/pychess/ic/__init__.py:101 lib/pychess/Utils/GameModel.py:206 msgid "Untimed" msgstr "" #: glade/fics_lounge.glade:637 msgid "Minutes: " msgstr "" #: glade/fics_lounge.glade:665 msgid " Gain: " msgstr "" #: glade/fics_lounge.glade:703 msgid "Time control: " msgstr "" #: glade/fics_lounge.glade:716 lib/pychess/ic/FICSObjects.py:56 #: lib/pychess/ic/ICLounge.py:1137 lib/pychess/ic/ICLounge.py:2208 #: lib/pychess/ic/__init__.py:99 msgid "Standard" msgstr "" #: glade/fics_lounge.glade:757 glade/newInOut.glade:633 msgid "Time Control" msgstr "Controlo do tempo" #: glade/fics_lounge.glade:814 glade/fics_lounge.glade:1346 msgid "Don't care" msgstr "" #: glade/fics_lounge.glade:879 msgid "Your strength: " msgstr "" #: glade/fics_lounge.glade:921 msgid "(Blitz)" msgstr "" #: glade/fics_lounge.glade:951 msgid "Opponent's strength: " msgstr "" #: glade/fics_lounge.glade:1055 msgid "" "When this button is in the \"locked\" state, the relationship\n" "between \"Opponent's strength\" and \"Your strength\" will be\n" "preserved when \n" "a) your rating for the type of game sought has changed\n" "b) you change the variant or the time control" msgstr "" #: glade/fics_lounge.glade:1095 msgid "Center:" msgstr "Centro:" #: glade/fics_lounge.glade:1134 msgid "1200" msgstr "1200" #: glade/fics_lounge.glade:1188 msgid "Tolerance:" msgstr "" #: glade/fics_lounge.glade:1243 lib/pychess/ic/ICLounge.py:2452 msgid "Hide" msgstr "" #: glade/fics_lounge.glade:1289 msgid "Opponent Strength" msgstr "" #: glade/fics_lounge.glade:1386 lib/pychess/Database/gamelist.py:40 #: lib/pychess/ic/ICLounge.py:1357 lib/pychess/ic/ICLounge.py:1557 #: lib/pychess/ic/ICLounge.py:2108 lib/pychess/Utils/repr.py:10 #: lib/pychess/widgets/ChessClock.py:40 #: lib/pychess/widgets/TaskerManager.py:153 msgid "White" msgstr "Brancas" #: glade/fics_lounge.glade:1414 lib/pychess/Database/gamelist.py:40 #: lib/pychess/ic/ICLounge.py:1358 lib/pychess/ic/ICLounge.py:1558 #: lib/pychess/ic/ICLounge.py:2110 lib/pychess/Utils/repr.py:10 #: lib/pychess/widgets/ChessClock.py:40 #: lib/pychess/widgets/TaskerManager.py:154 msgid "Black" msgstr "Pretas" #: glade/fics_lounge.glade:1453 msgid "Your Color" msgstr "" #: glade/fics_lounge.glade:1512 msgid "Play normal chess rules" msgstr "" #: glade/fics_lounge.glade:1552 msgid "Play" msgstr "" #: glade/fics_lounge.glade:1618 glade/newInOut.glade:833 msgid "Chess Variant" msgstr "" #: glade/fics_lounge.glade:1676 msgid "Rated game" msgstr "" #: glade/fics_lounge.glade:1692 msgid "Manually accept opponent" msgstr "" #: glade/fics_lounge.glade:1722 msgid "Options" msgstr "" #: glade/fics_lounge.glade:1750 msgid "PyChess - Internet Chess: FICS" msgstr "PyChess - Conexão ao Xadrez na Internet: FICS" #: glade/fics_lounge.glade:1823 msgid "_Clear Seeks" msgstr "" #: glade/fics_lounge.glade:1847 msgid "_Accept" msgstr "_Aceitar" #: glade/fics_lounge.glade:1871 msgid "_Decline" msgstr "" #: glade/fics_lounge.glade:2151 msgid "2 min, Fischer Random, 1800↓, Black" msgstr "" #: glade/fics_lounge.glade:2172 msgid "10 min + 6 sec/move, 1400↑, White" msgstr "" #: glade/fics_lounge.glade:2193 msgid "5 min, 1200-1800, Manual" msgstr "" #: glade/fics_lounge.glade:2247 msgid "Send all seeks" msgstr "" #: glade/fics_lounge.glade:2301 msgid "Send seek" msgstr "Enviar pesquisa" #: glade/fics_lounge.glade:2337 msgid "Create Seek" msgstr "" #: glade/fics_lounge.glade:2353 msgid "_Seeks / Challenges" msgstr "" #: glade/fics_lounge.glade:2374 lib/pychess/ic/ICLounge.py:472 #: lib/pychess/ic/ICLounge.py:670 lib/pychess/ic/ICLounge.py:1357 #: lib/pychess/ic/ICLounge.py:1358 msgid "Rating" msgstr "Pontuação" #: glade/fics_lounge.glade:2399 msgid "Time" msgstr "Tempo" #: glade/fics_lounge.glade:2419 msgid "Seek _Graph" msgstr "" #: glade/fics_lounge.glade:2444 msgid "0 Players Ready" msgstr "" #: glade/fics_lounge.glade:2496 msgid "Challenge" msgstr "" #: glade/fics_lounge.glade:2549 glade/fics_lounge.glade:2735 msgid "Observe" msgstr "" #: glade/fics_lounge.glade:2602 msgid "Start Private Chat" msgstr "" #: glade/fics_lounge.glade:2659 msgid "_Player List" msgstr "" #: glade/fics_lounge.glade:2792 msgid "_Game List" msgstr "" #: glade/fics_lounge.glade:2847 msgid "_My games" msgstr "" #: glade/fics_lounge.glade:2904 glade/PyChess.glade:841 msgid "Offer _Resume" msgstr "" #: glade/fics_lounge.glade:2962 glade/PyChess.glade:880 msgid "R_esign" msgstr "" #: glade/fics_lounge.glade:3006 glade/PyChess.glade:820 msgid "Offer _Draw" msgstr "Oferecer _Empate" #: glade/fics_lounge.glade:3050 msgid "Offer A_bort" msgstr "" #: glade/fics_lounge.glade:3107 msgid "Pre_view" msgstr "" #: glade/fics_lounge.glade:3151 msgid "Examine" msgstr "" #: glade/fics_lounge.glade:3208 msgid "_Archived" msgstr "" #: glade/fics_lounge.glade:3313 msgid "News" msgstr "Notícias" #: glade/fics_lounge.glade:3345 msgid "Show Console" msgstr "" #: glade/fics_lounge.glade:3359 msgid "Show _Chat" msgstr "Mostrar _Chat" #: glade/fics_lounge.glade:3373 msgid "_Log Off" msgstr "_Sair" #: glade/fics_lounge.glade:3393 msgid "Tools" msgstr "Ferramentas" #: glade/fics_lounge.glade:3428 msgid "Asymmetric Random " msgstr "" #: glade/findbar.glade:6 msgid "window1" msgstr "" #: glade/findbar.glade:21 msgid "0 of 0" msgstr "" #: glade/findbar.glade:66 msgid "Search:" msgstr "" #: glade/findbar.glade:134 msgid "_Previous" msgstr "" #: glade/findbar.glade:192 msgid "_Next" msgstr "" #: glade/newInOut.glade:45 lib/pychess/widgets/newGameDialog.py:445 msgid "New Game" msgstr "Novo Jogo" #: glade/newInOut.glade:108 msgid "_Start Game" msgstr "_Iniciar o Jogo" #: glade/newInOut.glade:130 msgid "Copy FEN" msgstr "" #: glade/newInOut.glade:143 msgid "Clear" msgstr "" #: glade/newInOut.glade:156 msgid "Paste FEN" msgstr "" #: glade/newInOut.glade:257 msgid "_Black player:" msgstr "" #: glade/newInOut.glade:274 msgid "_White player:" msgstr "" #: glade/newInOut.glade:385 msgid "Players" msgstr "Jogadores" #: glade/newInOut.glade:436 msgid "_Untimed" msgstr "" #: glade/newInOut.glade:475 msgid "Blitz: 5 min" msgstr "" #: glade/newInOut.glade:526 msgid "Rapid: 15 min + 10 sec/move" msgstr "" #: glade/newInOut.glade:575 msgid "Normal: 40 min + 15 sec/move" msgstr "" #: glade/newInOut.glade:684 msgid "_Play Normal chess" msgstr "" #: glade/newInOut.glade:724 msgid "Play Fischer Random chess" msgstr "" #: glade/newInOut.glade:774 msgid "Play Losers chess" msgstr "" #: glade/newInOut.glade:919 msgid "Open Game" msgstr "" #: glade/newInOut.glade:1162 msgid "Initial Position" msgstr "" #: glade/newInOut.glade:1219 msgid "Enter Game Notation" msgstr "Insira Notação do Jogo" #: glade/newInOut.glade:1314 msgid "Halfmove clock" msgstr "" #: glade/newInOut.glade:1327 msgid "En passant line" msgstr "" #: glade/newInOut.glade:1339 msgid "Side to move" msgstr "" #: glade/newInOut.glade:1351 msgid "Move number" msgstr "" #: glade/newInOut.glade:1361 msgid "Black O-O" msgstr "" #: glade/newInOut.glade:1375 msgid "Black O-O-O" msgstr "" #: glade/newInOut.glade:1389 msgid "White O-O-O" msgstr "" #: glade/newInOut.glade:1403 msgid "White O-O" msgstr "" #: glade/promotion.glade:7 msgid "Promotion" msgstr "Promoção" #: glade/promotion.glade:49 lib/pychess/Utils/repr.py:12 msgid "Queen" msgstr "Rainha" #: glade/promotion.glade:95 lib/pychess/Utils/repr.py:12 msgid "Rook" msgstr "Torre" #: glade/promotion.glade:141 lib/pychess/Utils/repr.py:12 msgid "Bishop" msgstr "Bispo" #: glade/promotion.glade:187 lib/pychess/Utils/repr.py:12 msgid "Knight" msgstr "Cavalo" #: glade/promotion.glade:233 lib/pychess/Utils/repr.py:12 msgid "King" msgstr "" #: glade/promotion.glade:265 msgid "Promote pawn to what?" msgstr "Promover peão como?" #: glade/PyChess.glade:9 msgid "Chess client" msgstr "" #: glade/PyChess.glade:44 msgid "Game information" msgstr "Informações do jogo" #: glade/PyChess.glade:164 msgid "Event:" msgstr "Evento:" #: glade/PyChess.glade:178 msgid "Site:" msgstr "Sítio:" #: glade/PyChess.glade:204 msgid "Round:" msgstr "Rodada:" #: glade/PyChess.glade:237 msgid "White:" msgstr "" #: glade/PyChess.glade:249 msgid "Black:" msgstr "" #: glade/PyChess.glade:302 msgid "Game data" msgstr "Dados do jogo" #: glade/PyChess.glade:357 msgid "Date of game" msgstr "Data do jogo" #: glade/PyChess.glade:495 msgid "_Game" msgstr "_Jogo" #: glade/PyChess.glade:502 msgid "_New Game" msgstr "_Novo Jogo" #: glade/PyChess.glade:515 msgid "Play _Internet Chess" msgstr "" #: glade/PyChess.glade:534 msgid "_Load Game" msgstr "_Carregar jogo" #: glade/PyChess.glade:550 msgid "Load _Recent Game" msgstr "" #: glade/PyChess.glade:558 msgid "Open _Database" msgstr "" #: glade/PyChess.glade:569 lib/pychess/widgets/newGameDialog.py:615 msgid "Setup Position" msgstr "" #: glade/PyChess.glade:579 msgid "Enter Game _Notation" msgstr "" #: glade/PyChess.glade:592 msgid "_Save Game" msgstr "Gravar Jogo" #: glade/PyChess.glade:606 msgid "Save Game _As" msgstr "Gravar jogo _como" #: glade/PyChess.glade:624 msgid "Share Game" msgstr "" #: glade/PyChess.glade:630 msgid "_Export Position" msgstr "" #: glade/PyChess.glade:644 msgid "_Analyze Game" msgstr "" #: glade/PyChess.glade:678 msgid "Player _Rating" msgstr "Pontuação do _Jogador" #: glade/PyChess.glade:723 msgid "_Edit" msgstr "" #: glade/PyChess.glade:734 msgid "_Copy PGN" msgstr "" #: glade/PyChess.glade:746 msgid "_Copy FEN" msgstr "" #: glade/PyChess.glade:763 msgid "_Engines" msgstr "" #: glade/PyChess.glade:789 msgid "_Actions" msgstr "_Acções" #: glade/PyChess.glade:800 msgid "Offer _Abort" msgstr "" #: glade/PyChess.glade:810 msgid "Offer Ad_journment" msgstr "" #: glade/PyChess.glade:831 msgid "Offer _Pause" msgstr "" #: glade/PyChess.glade:847 msgid "Offer _Undo" msgstr "" #: glade/PyChess.glade:870 msgid "_Call Flag" msgstr "_Chamar bandeira" #: glade/PyChess.glade:890 msgid "Ask to _Move" msgstr "" #: glade/PyChess.glade:905 msgid "Auto Call _Flag" msgstr "" #: glade/PyChess.glade:918 msgid "_View" msgstr "_Vista" #: glade/PyChess.glade:925 msgid "_Rotate Board" msgstr "_Girar tabuleiro" #: glade/PyChess.glade:939 msgid "_Fullscreen" msgstr "" #: glade/PyChess.glade:952 msgid "Leave _Fullscreen" msgstr "" #: glade/PyChess.glade:969 msgid "_Show Sidepanels" msgstr "" #: glade/PyChess.glade:980 msgid "_Log Viewer" msgstr "_Vusualizador de Log" #: glade/PyChess.glade:997 msgid "_Hint mode" msgstr "Modo A_juda" #: glade/PyChess.glade:1009 msgid "Sp_y mode" msgstr "Modo _Espião" #: glade/PyChess.glade:1024 msgid "_Help" msgstr "Ajuda" #: glade/PyChess.glade:1034 msgid "About Chess" msgstr "Sobre Xadrez" #: glade/PyChess.glade:1043 msgid "How to Play" msgstr "" #: glade/PyChess.glade:1052 msgid "Translate PyChess" msgstr "" #: glade/PyChess.glade:1058 msgid "Tip of the Day" msgstr "" #: glade/PyChess.glade:1153 msgid "Default" msgstr "" #: glade/PyChess.glade:1156 msgid "Knights" msgstr "" #: glade/PyChess.glade:1167 lib/pychess/widgets/preferencesDialog.py:349 msgid "Beep" msgstr "Beep" #: glade/PyChess.glade:1170 lib/pychess/widgets/preferencesDialog.py:350 msgid "Select sound file..." msgstr "Seleccione um ficheiro de som..." #: glade/PyChess.glade:1173 lib/pychess/widgets/preferencesDialog.py:348 msgid "No sound" msgstr "Sem som" #: glade/PyChess.glade:1180 msgid "Preferences" msgstr "Preferências" #: glade/PyChess.glade:1218 msgid "The displayed name of the first human player, e.g., John." msgstr "" #: glade/PyChess.glade:1230 msgid "Name of _first human player:" msgstr "" #: glade/PyChess.glade:1259 msgid "The displayed name of the guest player, e.g., Mary." msgstr "" #: glade/PyChess.glade:1271 msgid "Name of s_econd human player:" msgstr "" #: glade/PyChess.glade:1307 msgid "_Hide tabs when only one game is open" msgstr "_Esconder as tabs quando somente um jogo está aberto" #: glade/PyChess.glade:1312 msgid "" "If set, this hides the tab in the top of the playing window, when it is not " "needed." msgstr "" #: glade/PyChess.glade:1326 msgid "_Use main app closer [x] to close all games" msgstr "" #: glade/PyChess.glade:1331 msgid "" "If set, clicking on main application window closer first time it closes all " "games." msgstr "" #: glade/PyChess.glade:1345 msgid "Auto _rotate board to current human player" msgstr "" #: glade/PyChess.glade:1350 msgid "" "If set, the board will turn after each move, to show the natural view for " "the current player." msgstr "" #: glade/PyChess.glade:1364 msgid "Auto _promote to queen" msgstr "" #: glade/PyChess.glade:1369 msgid "If set, pawn promotes to queen without promotion dialog selection." msgstr "" #: glade/PyChess.glade:1383 msgid "Face _to Face display mode" msgstr "" #: glade/PyChess.glade:1388 msgid "" "If set, the black pieces will be head down, suitable for playing against " "friends on mobile devices." msgstr "" #: glade/PyChess.glade:1402 msgid "Sho_w cords" msgstr "" #: glade/PyChess.glade:1407 msgid "" "If set, the playing board will display labels and ranks for each chess " "field. These are usable in chess notation." msgstr "" #: glade/PyChess.glade:1421 msgid "Show _captured pieces" msgstr "" #: glade/PyChess.glade:1426 msgid "If set, the captured figurines will be shown next to the board." msgstr "" #: glade/PyChess.glade:1440 msgid "Prefer figures in _notation" msgstr "" #: glade/PyChess.glade:1445 msgid "" "If set, PyChess will use figures to express moved pieces, rather than " "uppercase letters." msgstr "" #: glade/PyChess.glade:1464 msgid "If set, PyChess will colorize suboptimal analyzed moves with red." msgstr "" #: glade/PyChess.glade:1477 msgid "Show elapsed move times" msgstr "" #: glade/PyChess.glade:1482 msgid "If set, the elapsed time that a player used for the move is shown." msgstr "" #: glade/PyChess.glade:1500 msgid "If set, the hint analyzer engine evaluation value is shown." msgstr "" #: glade/PyChess.glade:1526 msgid "General Options" msgstr "" #: glade/PyChess.glade:1560 msgid "F_ull board animation" msgstr "" #: glade/PyChess.glade:1565 msgid "Animate pieces, board rotation and more. Use this on fast machines." msgstr "" #: glade/PyChess.glade:1579 msgid "Only animate _moves" msgstr "" #: glade/PyChess.glade:1584 msgid "Only animate piece moves." msgstr "" #: glade/PyChess.glade:1599 msgid "No _animation" msgstr "" #: glade/PyChess.glade:1604 msgid "Never use animation. Use this on slow machines." msgstr "" #: glade/PyChess.glade:1632 msgid "Animation" msgstr "Animação" #: glade/PyChess.glade:1651 msgid "_General" msgstr "" #: glade/PyChess.glade:1692 msgid "Use opening _book" msgstr "" #: glade/PyChess.glade:1697 msgid "If set, PyChess will suggest best opening moves on hint panel." msgstr "" #: glade/PyChess.glade:1724 msgid "Polyglot book file:" msgstr "" #: glade/PyChess.glade:1768 msgid "Use _local tablebases" msgstr "" #: glade/PyChess.glade:1773 msgid "" "If set, PyChess will show game results for different moves in positions containing 6 or less pieces.\n" "You can download tablebase files from:\n" "http://www.olympuschess.com/egtb/gaviota/" msgstr "" #: glade/PyChess.glade:1803 msgid "Gaviota TB path:" msgstr "" #: glade/PyChess.glade:1843 msgid "Use _online tablebases" msgstr "" #: glade/PyChess.glade:1848 msgid "" "If set, PyChess will show game results for different moves in positions containing 6 or less pieces.\n" "It will search positions from http://www.k4it.de/" msgstr "" #: glade/PyChess.glade:1870 msgid "Opening, endgame" msgstr "" #: glade/PyChess.glade:1904 msgid "Use _analyzer" msgstr "Usar _analisador" #: glade/PyChess.glade:1946 msgid "" "The analyzer will run in the background and analyze the game. This is " "necessary for the hint mode to work" msgstr "" #: glade/PyChess.glade:1978 msgid "Use _inverted analyzer" msgstr "usar o _analisador invertido" #: glade/PyChess.glade:2020 msgid "" "The inverse analyzer will analyze the game as if your opponent was to move. " "This is necessary for the spy mode to work" msgstr "" #: glade/PyChess.glade:2096 msgid "Analyzing" msgstr "Analisando" #: glade/PyChess.glade:2118 msgid "_Hints" msgstr "" #: glade/PyChess.glade:2263 msgid "Uninstall" msgstr "" #: glade/PyChess.glade:2317 msgid "Ac_tive" msgstr "" #: glade/PyChess.glade:2367 msgid "Installed Sidepanels" msgstr "" #: glade/PyChess.glade:2382 msgid "Side_panels" msgstr "" #: glade/PyChess.glade:2440 msgid "Light Squares :" msgstr "" #: glade/PyChess.glade:2479 msgid "Dark Squares :" msgstr "" #: glade/PyChess.glade:2515 msgid "Reset Default Colours" msgstr "" #: glade/PyChess.glade:2551 msgid "Board Colours" msgstr "" #: glade/PyChess.glade:2610 msgid "Chess Sets" msgstr "" #: glade/PyChess.glade:2634 msgid "Themes" msgstr "" #: glade/PyChess.glade:2659 msgid "_Use sounds in PyChess" msgstr "_Usar sons no PyChess" #: glade/PyChess.glade:2982 msgid "A player _checks:" msgstr "Um reprodutor _verifica:" #: glade/PyChess.glade:2997 msgid "A player _moves:" msgstr "Um jogador _movimenta-se:" #: glade/PyChess.glade:3010 msgid "Game is _drawn:" msgstr "Jogo está _Empatado:" #: glade/PyChess.glade:3025 msgid "Game is _lost:" msgstr "Jogo está _Perdido:" #: glade/PyChess.glade:3040 msgid "Game is _won:" msgstr "Jogo está _Vencido:" #: glade/PyChess.glade:3055 msgid "A player c_aptures:" msgstr "Um jogador c_aptura:" #: glade/PyChess.glade:3084 msgid "Game is _set-up:" msgstr "O jogo está _configurado:" #: glade/PyChess.glade:3136 msgid "_Observed moves:" msgstr "_Movimentos Observados:" #: glade/PyChess.glade:3151 msgid "Observed _ends:" msgstr "Fins _Observados:" #: glade/PyChess.glade:3265 msgid "Short on _time:" msgstr "" #: glade/PyChess.glade:3317 msgid "_Invalid move:" msgstr "" #: glade/PyChess.glade:3369 msgid "Activate alarm when _remaining sec is:" msgstr "" #: glade/PyChess.glade:3416 msgid "Play Sound When..." msgstr "Reproduzir Som Quando..." #: glade/PyChess.glade:3438 msgid "_Sounds" msgstr "" #: glade/PyChess.glade:3463 msgid "_Auto save finished games" msgstr "" #: glade/PyChess.glade:3497 msgid "Save files to:" msgstr "" #: glade/PyChess.glade:3525 msgid "Use name format:" msgstr "" #: glade/PyChess.glade:3569 msgid "Names: #n1, #n2" msgstr "" #: glade/PyChess.glade:3582 msgid "Year, month, day: #y, #m, #d" msgstr "" #: glade/PyChess.glade:3619 msgid "Save elapsed move _times" msgstr "" #: glade/PyChess.glade:3644 msgid "Save analyzing engine _evaluation values" msgstr "" #: glade/PyChess.glade:3669 msgid "Save _own games only" msgstr "" #: glade/PyChess.glade:3698 msgid "Save" msgstr "" #: glade/PyChess.glade:3728 msgid "uci" msgstr "" #: glade/PyChess.glade:3731 msgid "xboard" msgstr "" #: glade/PyChess.glade:3739 msgid "Manage engines" msgstr "" #: glade/PyChess.glade:3837 msgid "Command:" msgstr "" #: glade/PyChess.glade:3851 msgid "Protocol:" msgstr "" #: glade/PyChess.glade:3865 msgid "Parameters:" msgstr "" #: glade/PyChess.glade:3878 msgid "Command line parameters needed by the engine." msgstr "" #: glade/PyChess.glade:3903 msgid "" "Engines use uci or xboard communication protocol to talk to the GUI.\n" "If it can use both you can set here which one you like." msgstr "" #: glade/PyChess.glade:3929 msgid "Working directory:" msgstr "" #: glade/PyChess.glade:3942 msgid "The directory where the engine will be started from." msgstr "" #: glade/saveGamesDialog.glade:7 msgid "Quit PyChess" msgstr "" #: glade/saveGamesDialog.glade:24 lib/pychess/widgets/ionest.py:424 msgid "Close _without Saving" msgstr "Fechar _sem Gravar" #: glade/saveGamesDialog.glade:83 msgid "_Save %d documents" msgstr "" #: glade/saveGamesDialog.glade:141 msgid "" "There are %d games with unsaved moves. Save changes before " "closing?" msgstr "" #: glade/saveGamesDialog.glade:161 msgid "Select the games you want to save:" msgstr "" #: glade/saveGamesDialog.glade:204 msgid "If you don't save, new changes to your games will be permanently lost." msgstr "" #: glade/taskers.glade:126 msgid "_Opponent:" msgstr "" #: glade/taskers.glade:154 msgid "_Your Color:" msgstr "" #: glade/taskers.glade:219 msgid "_Start Game" msgstr "" #: glade/taskers.glade:338 msgid "Log on as G_uest" msgstr "" #: glade/taskers.glade:410 msgid "Ha_ndle:" msgstr "" #: glade/taskers.glade:469 msgid "_Connect to server" msgstr "" #: glade/tipoftheday.glade:7 msgid "Tip Of The day" msgstr "" #: glade/tipoftheday.glade:62 msgid "Show tips at startup" msgstr "" #: lib/pychess/Main.py:302 msgid "http://en.wikipedia.org/wiki/Chess" msgstr "http://pt.wikipedia.org/wiki/Xadrez" #: lib/pychess/Main.py:305 msgid "http://en.wikipedia.org/wiki/Rules_of_chess" msgstr "http://en.wikipedia.org/wiki/Regras_de_xadrez" #: lib/pychess/Main.py:370 lib/pychess/widgets/gamenanny.py:80 msgid "Welcome" msgstr "" #: lib/pychess/Database/gamelist.py:40 msgid "Id" msgstr "" #: lib/pychess/Database/gamelist.py:40 msgid "W Elo" msgstr "" #: lib/pychess/Database/gamelist.py:40 msgid "B Elo" msgstr "" #: lib/pychess/Database/gamelist.py:41 msgid "Result" msgstr "" #: lib/pychess/Database/gamelist.py:41 msgid "Event" msgstr "" #: lib/pychess/Database/gamelist.py:41 msgid "Site" msgstr "" #: lib/pychess/Database/gamelist.py:41 msgid "Round" msgstr "" #: lib/pychess/Database/gamelist.py:41 msgid "Date" msgstr "" #: lib/pychess/Database/gamelist.py:41 msgid "ECO" msgstr "" #: lib/pychess/Database/gamelist.py:62 msgid "PyChess Game Database" msgstr "" #: lib/pychess/Database/PgnImport.py:188 #, python-format msgid "The game #%s can't be loaded, because of an error parsing FEN" msgstr "" #: lib/pychess/ic/FICSConnection.py:139 msgid "The connection was broken - got \"end of file\" message" msgstr "A conexão está quebrada - obtive mensagem \"fim de ficheiro\"" #: lib/pychess/ic/FICSConnection.py:140 #, python-format msgid "'%s' is not a registered name" msgstr "'%s' não é um nome registado" #: lib/pychess/ic/FICSConnection.py:141 msgid "" "The entered password was invalid.\n" "If you forgot your password, go to http://www.freechess.org/password to request a new one over email." msgstr "" #: lib/pychess/ic/FICSConnection.py:145 #, python-format msgid "Sorry '%s' is already logged in" msgstr "" #: lib/pychess/ic/FICSConnection.py:146 #, python-format msgid "'%s' is a registered name. If it is yours, type the password." msgstr "" #: lib/pychess/ic/FICSConnection.py:147 msgid "" "Due to abuse problems, guest connections have been prevented.\n" "You can still register on http://www.freechess.org" msgstr "" #: lib/pychess/ic/FICSConnection.py:166 msgid "Connecting to server" msgstr "" #: lib/pychess/ic/FICSConnection.py:181 msgid "Logging on to server" msgstr "" #: lib/pychess/ic/FICSConnection.py:239 msgid "Setting up environment" msgstr "" #: lib/pychess/ic/FICSObjects.py:35 lib/pychess/ic/FICSObjects.py:47 #, python-format msgid "%(player)s is %(status)s" msgstr "" #: lib/pychess/ic/FICSObjects.py:46 msgid "not playing" msgstr "" #: lib/pychess/ic/FICSObjects.py:54 lib/pychess/ic/ICLounge.py:1136 #: lib/pychess/ic/ICLounge.py:2209 lib/pychess/ic/__init__.py:98 #: lib/pychess/widgets/newGameDialog.py:153 msgid "Blitz" msgstr "Blitz" #: lib/pychess/ic/FICSObjects.py:58 lib/pychess/ic/ICLounge.py:1137 #: lib/pychess/ic/ICLounge.py:2209 lib/pychess/ic/__init__.py:100 msgid "Lightning" msgstr "Relâmpago" #: lib/pychess/ic/FICSObjects.py:60 lib/pychess/Variants/atomic.py:15 msgid "Atomic" msgstr "" #: lib/pychess/ic/FICSObjects.py:62 lib/pychess/Variants/bughouse.py:9 msgid "Bughouse" msgstr "" #: lib/pychess/ic/FICSObjects.py:64 lib/pychess/Variants/crazyhouse.py:9 msgid "Crazyhouse" msgstr "" #: lib/pychess/ic/FICSObjects.py:66 lib/pychess/Variants/losers.py:9 msgid "Losers" msgstr "" #: lib/pychess/ic/FICSObjects.py:68 lib/pychess/Variants/suicide.py:12 msgid "Suicide" msgstr "" #: lib/pychess/ic/FICSObjects.py:70 lib/pychess/ic/__init__.py:129 msgid "Wild" msgstr "" #: lib/pychess/ic/FICSObjects.py:117 msgid "Online" msgstr "" #: lib/pychess/ic/FICSObjects.py:118 lib/pychess/ic/FICSObjects.py:143 msgid "Offline" msgstr "" #: lib/pychess/ic/FICSObjects.py:133 msgid "Available" msgstr "" #: lib/pychess/ic/FICSObjects.py:135 msgid "Playing" msgstr "" #: lib/pychess/ic/FICSObjects.py:141 msgid "Idle" msgstr "" #: lib/pychess/ic/FICSObjects.py:145 msgid "Examining" msgstr "" #: lib/pychess/ic/FICSObjects.py:147 msgid "Not Available" msgstr "" #: lib/pychess/ic/FICSObjects.py:149 msgid "Running Simul Match" msgstr "" #: lib/pychess/ic/FICSObjects.py:151 msgid "In Tournament" msgstr "" #: lib/pychess/ic/FICSObjects.py:308 lib/pychess/ic/FICSObjects.py:492 #: lib/pychess/ic/ICLounge.py:2278 msgid "Unrated" msgstr "Sem Pontuação" #: lib/pychess/ic/FICSObjects.py:491 lib/pychess/ic/ICLounge.py:670 #: lib/pychess/ic/ICLounge.py:1358 lib/pychess/ic/ICLounge.py:1558 #: lib/pychess/ic/ICLounge.py:2113 msgid "Rated" msgstr "Pontuado" #: lib/pychess/ic/FICSObjects.py:498 lib/pychess/ic/ICLounge.py:2098 #, python-format msgid "%d min" msgstr "" #: lib/pychess/ic/FICSObjects.py:500 #, python-format msgid " + %d sec" msgstr "" #: lib/pychess/ic/FICSObjects.py:517 #, python-format msgid "%(player)s plays %(color)s" msgstr "" #: lib/pychess/ic/FICSObjects.py:519 lib/pychess/ic/ICLounge.py:909 msgid "white" msgstr "" #: lib/pychess/ic/FICSObjects.py:519 lib/pychess/ic/ICLounge.py:909 msgid "black" msgstr "" #: lib/pychess/ic/FICSObjects.py:565 msgid "This is a continuation of an adjourned match" msgstr "" #: lib/pychess/ic/FICSObjects.py:654 msgid "Opponent Rating" msgstr "" #: lib/pychess/ic/FICSObjects.py:656 msgid "Manual Accept" msgstr "" #: lib/pychess/ic/FICSObjects.py:810 msgid "Private" msgstr "" #: lib/pychess/ic/FICSObjects.py:930 lib/pychess/ic/ICLounge.py:527 #: lib/pychess/Savers/epd.py:139 msgid "Unknown" msgstr "Desconhecido" #: lib/pychess/ic/ICLogon.py:159 lib/pychess/ic/ICLogon.py:165 msgid "Connection Error" msgstr "Erro de Ligação" #: lib/pychess/ic/ICLogon.py:161 msgid "Log on Error" msgstr "Erro de início de sessão" #: lib/pychess/ic/ICLogon.py:163 msgid "Connection was closed" msgstr "Conexão foi encerrada" #: lib/pychess/ic/ICLogon.py:169 msgid "Address Error" msgstr "" #: lib/pychess/ic/ICLogon.py:172 msgid "Auto-logout" msgstr "" #: lib/pychess/ic/ICLogon.py:173 msgid "You have been logged out because you were idle more than 60 minutes" msgstr "" #: lib/pychess/ic/ICLounge.py:222 msgid "You have to set kibitz on to see bot messages here." msgstr "" #: lib/pychess/ic/ICLounge.py:241 msgid "" "You may only have 3 outstanding seeks at the same time. If you want to add a" " new seek you must clear your currently active seeks. Clear your seeks?" msgstr "" #: lib/pychess/ic/ICLounge.py:258 msgid "You can't touch this! You are examining a game." msgstr "" #: lib/pychess/ic/ICLounge.py:270 msgid " has declined your offer for a match" msgstr "" #: lib/pychess/ic/ICLounge.py:283 msgid " is censoring you" msgstr "" #: lib/pychess/ic/ICLounge.py:296 msgid " noplay listing you" msgstr "" #: lib/pychess/ic/ICLounge.py:311 msgid " uses a formula not fitting your match request:" msgstr "" #: lib/pychess/ic/ICLounge.py:325 msgid "to manual accept" msgstr "" #: lib/pychess/ic/ICLounge.py:327 msgid "to automatic accept" msgstr "" #: lib/pychess/ic/ICLounge.py:329 msgid "rating range now" msgstr "" #: lib/pychess/ic/ICLounge.py:330 msgid "Seek updated" msgstr "" #: lib/pychess/ic/ICLounge.py:342 msgid "Your seeks have been removed" msgstr "" #: lib/pychess/ic/ICLounge.py:363 msgid " has arrived" msgstr "" #: lib/pychess/ic/ICLounge.py:370 msgid " has departed" msgstr "" #: lib/pychess/ic/ICLounge.py:374 msgid " is present" msgstr "" #: lib/pychess/ic/ICLounge.py:391 sidepanel/chatPanel.py:17 msgid "Chat" msgstr "" #: lib/pychess/ic/ICLounge.py:472 sidepanel/bookPanel.py:366 msgid "Win" msgstr "" #: lib/pychess/ic/ICLounge.py:472 sidepanel/bookPanel.py:360 msgid "Draw" msgstr "" #: lib/pychess/ic/ICLounge.py:472 sidepanel/bookPanel.py:363 msgid "Loss" msgstr "" #: lib/pychess/ic/ICLounge.py:482 msgid "" "On FICS, your \"Wild\" rating encompasses all of the following variants at " "all time controls:\n" msgstr "" #: lib/pychess/ic/ICLounge.py:494 msgid "Sanctions" msgstr "" #: lib/pychess/ic/ICLounge.py:499 msgid "Email" msgstr "Correio Electrónico" #: lib/pychess/ic/ICLounge.py:504 msgid "Spent" msgstr "Gasto" #: lib/pychess/ic/ICLounge.py:506 msgid "online in total" msgstr "Total no online" #: lib/pychess/ic/ICLounge.py:512 msgid "Ping" msgstr "Ping" #: lib/pychess/ic/ICLounge.py:517 msgid "Connecting" msgstr "A Ligar" #: lib/pychess/ic/ICLounge.py:544 msgid "" "You are currently logged in as a guest.\n" "A guest can't play rated games and therefore isn't able to play as many of the types of matches offered as a registered user. To register an account, go to http://www.freechess.org/Register/index.html." msgstr "" #: lib/pychess/ic/ICLounge.py:669 lib/pychess/ic/ICLounge.py:1136 msgid "Name" msgstr "Nome" #: lib/pychess/ic/ICLounge.py:670 lib/pychess/ic/ICLounge.py:1358 #: lib/pychess/ic/ICLounge.py:1558 msgid "Type" msgstr "Tipo" #: lib/pychess/ic/ICLounge.py:670 lib/pychess/ic/ICLounge.py:1558 msgid "Clock" msgstr "Relógio" #: lib/pychess/ic/ICLounge.py:726 lib/pychess/ic/ICLounge.py:923 #: lib/pychess/Players/Human.py:250 msgid "Accept" msgstr "" #: lib/pychess/ic/ICLounge.py:728 msgid "Assess" msgstr "" #: lib/pychess/ic/ICLounge.py:734 msgid "Archived" msgstr "" #: lib/pychess/ic/ICLounge.py:848 #, python-format msgid "Active seeks: %d" msgstr "" #: lib/pychess/ic/ICLounge.py:897 #, python-format msgid "" " would like to resume your adjourned %(time)s %(gametype)s " "game." msgstr "" #: lib/pychess/ic/ICLounge.py:902 #, python-format msgid "" " challenges you to a %(time)s %(rated)s %(gametype)s game" msgstr "" #: lib/pychess/ic/ICLounge.py:907 #, python-format msgid " where %(player)s plays %(color)s." msgstr "" #: lib/pychess/ic/ICLounge.py:924 lib/pychess/Players/Human.py:251 msgid "Decline" msgstr "" #: lib/pychess/ic/ICLounge.py:1065 msgid " min" msgstr "" #: lib/pychess/ic/ICLounge.py:1137 msgid "Status" msgstr "" #: lib/pychess/ic/ICLounge.py:1203 lib/pychess/ic/ICLounge.py:1233 #, python-format msgid "Players: %d" msgstr "" #: lib/pychess/ic/ICLounge.py:1469 #, python-format msgid "Games running: %d" msgstr "" #: lib/pychess/ic/ICLounge.py:1559 msgid "Date/Time" msgstr "" #: lib/pychess/ic/ICLounge.py:1614 #, python-format msgid "" " with whom you have an adjourned %(timecontrol)s %(gametype)s " "game is online." msgstr "" #: lib/pychess/ic/ICLounge.py:1635 msgid "Request Continuation" msgstr "" #: lib/pychess/ic/ICLounge.py:1637 msgid "Examine Adjourned Game" msgstr "" #: lib/pychess/ic/ICLounge.py:1965 msgid "" "The chain button is disabled because you are logged in as a guest. Guests " "can't establish ratings, and the chain button's state has no effect when " "there is no rating to which to tie \"Opponent Strength\" to" msgstr "" #: lib/pychess/ic/ICLounge.py:2006 msgid "Challenge: " msgstr "" #: lib/pychess/ic/ICLounge.py:2044 msgid "If set you can refuse players accepting your seek" msgstr "" #: lib/pychess/ic/ICLounge.py:2048 lib/pychess/ic/ICLounge.py:2051 msgid "This option is not applicable because you're challenging a player" msgstr "" #: lib/pychess/ic/ICLounge.py:2064 msgid "Edit Seek: " msgstr "" #: lib/pychess/ic/ICLounge.py:2095 #, python-format msgid "%(minutes)d min + %(gain)d sec/move" msgstr "" #: lib/pychess/ic/ICLounge.py:2116 msgid "Manual" msgstr "" #: lib/pychess/ic/ICLounge.py:2256 msgid "Any strength" msgstr "" #: lib/pychess/ic/ICLounge.py:2308 msgid "You can't play rated games because you are logged in as a guest" msgstr "" #: lib/pychess/ic/ICLounge.py:2312 msgid "You can't play rated games because \"Untimed\" is checked, " msgstr "" #: lib/pychess/ic/ICLounge.py:2313 msgid "and on FICS, untimed games can't be rated" msgstr "" #: lib/pychess/ic/ICLounge.py:2317 msgid "This option is not available because you're challenging a guest, " msgstr "" #: lib/pychess/ic/ICLounge.py:2318 msgid "and guests can't play rated games" msgstr "" #: lib/pychess/ic/ICLounge.py:2332 lib/pychess/Variants/shuffle.py:16 #: lib/pychess/widgets/newGameDialog.py:266 msgid "Shuffle" msgstr "" #: lib/pychess/ic/ICLounge.py:2333 lib/pychess/widgets/newGameDialog.py:267 msgid "Other (standard rules)" msgstr "" #: lib/pychess/ic/ICLounge.py:2334 lib/pychess/widgets/newGameDialog.py:268 msgid "Other (non standard rules)" msgstr "" #: lib/pychess/ic/ICLounge.py:2421 msgid "You can't select a variant because \"Untimed\" is checked, " msgstr "" #: lib/pychess/ic/ICLounge.py:2422 msgid "and on FICS, untimed games have to be normal chess rules" msgstr "" #: lib/pychess/ic/ICLounge.py:2454 msgid "Change Tolerance" msgstr "" #: lib/pychess/ic/__init__.py:102 msgid "Examined" msgstr "" #: lib/pychess/ic/__init__.py:103 msgid "Other" msgstr "" #: lib/pychess/ic/__init__.py:182 msgid "Administrator" msgstr "" #: lib/pychess/ic/__init__.py:182 msgid "Blindfold Account" msgstr "" #: lib/pychess/ic/__init__.py:182 msgid "Computer" msgstr "" #: lib/pychess/ic/__init__.py:183 msgid "Team Account" msgstr "" #: lib/pychess/ic/__init__.py:183 msgid "Unregistered" msgstr "" #: lib/pychess/ic/__init__.py:183 msgid "Chess Advisor" msgstr "" #: lib/pychess/ic/__init__.py:184 msgid "Service Representative" msgstr "" #: lib/pychess/ic/__init__.py:184 msgid "Tournament Director" msgstr "" #: lib/pychess/ic/__init__.py:184 msgid "Mamer Manager" msgstr "" #: lib/pychess/ic/__init__.py:185 msgid "Grand Master" msgstr "" #: lib/pychess/ic/__init__.py:185 msgid "International Master" msgstr "" #: lib/pychess/ic/__init__.py:185 msgid "FIDE Master" msgstr "" #: lib/pychess/ic/__init__.py:186 msgid "Woman Grand Master" msgstr "" #: lib/pychess/ic/__init__.py:186 msgid "Woman International Master" msgstr "" #: lib/pychess/ic/__init__.py:186 msgid "Woman FIDE Master" msgstr "" #: lib/pychess/ic/__init__.py:187 msgid "Dummy Account" msgstr "" #: lib/pychess/ic/__init__.py:191 msgid "*" msgstr "" #: lib/pychess/ic/__init__.py:191 lib/pychess/Utils/repr.py:14 msgid "B" msgstr "B" #: lib/pychess/ic/__init__.py:191 msgid "C" msgstr "" #: lib/pychess/ic/__init__.py:192 msgid "T" msgstr "" #: lib/pychess/ic/__init__.py:192 msgid "U" msgstr "" #: lib/pychess/ic/__init__.py:192 msgid "CA" msgstr "" #: lib/pychess/ic/__init__.py:193 msgid "SR" msgstr "" #: lib/pychess/ic/__init__.py:193 msgid "TD" msgstr "" #: lib/pychess/ic/__init__.py:193 msgid "TM" msgstr "" #: lib/pychess/ic/__init__.py:194 msgid "GM" msgstr "" #: lib/pychess/ic/__init__.py:194 msgid "IM" msgstr "" #: lib/pychess/ic/__init__.py:194 msgid "FM" msgstr "" #: lib/pychess/ic/__init__.py:195 msgid "WGM" msgstr "" #: lib/pychess/ic/__init__.py:195 msgid "WIM" msgstr "" #: lib/pychess/ic/__init__.py:195 msgid "WFM" msgstr "" #: lib/pychess/ic/__init__.py:195 msgid "D" msgstr "" #: lib/pychess/ic/__init__.py:195 msgid "H" msgstr "" #: lib/pychess/ic/__init__.py:195 msgid "CM" msgstr "" #: lib/pychess/ic/__init__.py:195 msgid "FA" msgstr "" #: lib/pychess/ic/__init__.py:195 msgid "NM" msgstr "" #: lib/pychess/Players/CECPEngine.py:857 #, python-format msgid "The engine %s reports an error:" msgstr "" #: lib/pychess/Players/Human.py:20 msgid "Your opponent has offered you a draw." msgstr "" #: lib/pychess/Players/Human.py:21 msgid "" "Your opponent has offered you a draw. If you accept this offer, the game " "will end with a score of 1/2 - 1/2." msgstr "" #: lib/pychess/Players/Human.py:23 msgid "Your opponent wants to abort the game." msgstr "" #: lib/pychess/Players/Human.py:24 msgid "" "Your opponent has asked that the game be aborted. If you accept this offer, " "the game will end with no rating change." msgstr "" #: lib/pychess/Players/Human.py:26 msgid "Your opponent wants to adjourn the game." msgstr "" #: lib/pychess/Players/Human.py:27 msgid "" "Your opponent has asked that the game be adjourned. If you accept this " "offer, the game will be adjourned and you can resume it later (when your " "opponent is online and both players agree to resume)." msgstr "" #: lib/pychess/Players/Human.py:29 #, python-format msgid "Your opponent wants to undo %s move(s)." msgstr "" #: lib/pychess/Players/Human.py:30 #, python-format msgid "" "Your opponent has asked that the last %s move(s) be undone. If you accept " "this offer, the game will continue from the earlier position." msgstr "" #: lib/pychess/Players/Human.py:32 msgid "Your opponent wants to pause the game." msgstr "" #: lib/pychess/Players/Human.py:33 msgid "" "Your opponent has asked that the game be paused. If you accept this offer, " "the game clock will be paused until both players agree to resume the game." msgstr "" #: lib/pychess/Players/Human.py:35 msgid "Your opponent wants to resume the game." msgstr "" #: lib/pychess/Players/Human.py:36 msgid "" "Your opponent has asked that the game be resumed. If you accept this offer, " "the game clock will continue from where it was paused." msgstr "" #: lib/pychess/Players/Human.py:40 msgid "The resignation" msgstr "" #: lib/pychess/Players/Human.py:41 msgid "The flag call" msgstr "" #: lib/pychess/Players/Human.py:42 msgid "The draw offer" msgstr "" #: lib/pychess/Players/Human.py:43 msgid "The abort offer" msgstr "" #: lib/pychess/Players/Human.py:44 msgid "The adjourn offer" msgstr "" #: lib/pychess/Players/Human.py:45 msgid "The pause offer" msgstr "" #: lib/pychess/Players/Human.py:46 msgid "The resume offer" msgstr "" #: lib/pychess/Players/Human.py:47 msgid "The offer to switch sides" msgstr "" #: lib/pychess/Players/Human.py:48 msgid "The takeback offer" msgstr "" #: lib/pychess/Players/Human.py:52 msgid "resign" msgstr "" #: lib/pychess/Players/Human.py:53 msgid "call your opponents flag" msgstr "" #: lib/pychess/Players/Human.py:54 msgid "offer a draw" msgstr "" #: lib/pychess/Players/Human.py:55 msgid "offer an abort" msgstr "" #: lib/pychess/Players/Human.py:56 msgid "offer to adjourn" msgstr "" #: lib/pychess/Players/Human.py:57 msgid "offer a pause" msgstr "" #: lib/pychess/Players/Human.py:58 msgid "offer to resume" msgstr "" #: lib/pychess/Players/Human.py:59 msgid "offer to switch sides" msgstr "" #: lib/pychess/Players/Human.py:60 msgid "offer a takeback" msgstr "" #: lib/pychess/Players/Human.py:61 msgid "ask your opponent to move" msgstr "" #: lib/pychess/Players/Human.py:66 msgid "Your opponent is not out of time." msgstr "O seu oponente não está sem tempo." #: lib/pychess/Players/Human.py:68 msgid "The clock hasn't been started yet." msgstr "" #: lib/pychess/Players/Human.py:70 msgid "You can't switch colors during the game." msgstr "" #: lib/pychess/Players/Human.py:72 msgid "You have tried to undo too many moves." msgstr "" #: lib/pychess/Players/Human.py:180 msgid "Your opponent asks you to hurry!" msgstr "O seu adversário pede-lhe que se apresse!" #: lib/pychess/Players/Human.py:181 msgid "" "Generally this means nothing, as the game is time-based, but if you want to " "please your opponent, perhaps you should get going." msgstr "" #: lib/pychess/Players/Human.py:259 #, python-format msgid "%s was declined by your opponent" msgstr "%s foi recusado pelo seu adversário" #: lib/pychess/Players/Human.py:260 #, python-format msgid "Resend %s?" msgstr "" #: lib/pychess/Players/Human.py:267 msgid "Resend" msgstr "" #: lib/pychess/Players/Human.py:275 #, python-format msgid "%s was withdrawn by your opponent" msgstr "%s foi retirado pelo seu adversário" #: lib/pychess/Players/Human.py:276 msgid "Your opponent seems to have changed their mind." msgstr "" #: lib/pychess/Players/Human.py:290 #, python-format msgid "Unable to accept %s" msgstr "Incapaz de aceitar %s" #: lib/pychess/Players/Human.py:291 msgid "Probably because it has been withdrawn." msgstr "" #: lib/pychess/Players/Human.py:298 #, python-format msgid "%s returns an error" msgstr "%s devolve um erro" #: lib/pychess/Savers/chessalpha2.py:12 msgid "Chess Alpha 2 Diagram" msgstr "" #: lib/pychess/Savers/chesspastebin.py:39 msgid "Game shared at " msgstr "" #: lib/pychess/Savers/chesspastebin.py:41 msgid "(Link is available on clipboard.)" msgstr "" #: lib/pychess/Savers/database.py:19 msgid "PyChess database" msgstr "" #: lib/pychess/Savers/epd.py:12 msgid "Chess Position" msgstr "Posição do Xadrez" #: lib/pychess/Savers/fen.py:12 msgid "Simple Chess Position" msgstr "Posição simples de Xadrez" #: lib/pychess/Savers/fen.py:44 lib/pychess/Savers/pgn.py:329 msgid "The game can't be loaded, because of an error parsing FEN" msgstr "" #: lib/pychess/Savers/pgnbase.py:100 #, python-format msgid "" "The game can't be read to end, because of an error parsing move %(moveno)s " "'%(notation)s'." msgstr "" #: lib/pychess/Savers/pgnbase.py:102 #, python-format msgid "The move failed because %s." msgstr "" #: lib/pychess/Savers/pgnbase.py:110 #, python-format msgid "Error parsing move %(moveno)s %(mstr)s" msgstr "" #: lib/pychess/Savers/pgn.py:28 msgid "Chess Game" msgstr "Jogo de xadrez" #: lib/pychess/Savers/pgn.py:362 msgid "Invalid move." msgstr "" #: lib/pychess/Savers/png.py:15 msgid "Png image" msgstr "" #: lib/pychess/System/ping.py:31 msgid "Destination Host Unreachable" msgstr "" #: lib/pychess/System/ping.py:74 msgid "Died" msgstr "" #: lib/pychess/Utils/GameModel.py:147 msgid "Local Event" msgstr "Evento Local" #: lib/pychess/Utils/GameModel.py:148 msgid "Local Site" msgstr "" #: lib/pychess/Utils/repr.py:12 msgid "Pawn" msgstr "" #: lib/pychess/Utils/repr.py:14 msgid "P" msgstr "P" #: lib/pychess/Utils/repr.py:14 msgid "N" msgstr "C" #: lib/pychess/Utils/repr.py:14 msgid "R" msgstr "T" #: lib/pychess/Utils/repr.py:14 msgid "Q" msgstr "D" #: lib/pychess/Utils/repr.py:14 msgid "K" msgstr "R" #: lib/pychess/Utils/repr.py:17 msgid "The game ended in a draw" msgstr "O jogo terminou empatado" #: lib/pychess/Utils/repr.py:18 #, python-format msgid "%(white)s won the game" msgstr "" #: lib/pychess/Utils/repr.py:19 #, python-format msgid "%(black)s won the game" msgstr "" #: lib/pychess/Utils/repr.py:20 msgid "The game has been killed" msgstr "Este jogo foi terminado" #: lib/pychess/Utils/repr.py:21 msgid "The game has been adjourned" msgstr "Este jogo foi adiado" #: lib/pychess/Utils/repr.py:22 msgid "The game has been aborted" msgstr "Este jogo foi abortado" #: lib/pychess/Utils/repr.py:26 msgid "Because neither player has sufficient material to mate" msgstr "" #: lib/pychess/Utils/repr.py:27 msgid "Because the same position was repeated three times in a row" msgstr "" #: lib/pychess/Utils/repr.py:28 msgid "Because the last 50 moves brought nothing new" msgstr "" #: lib/pychess/Utils/repr.py:29 msgid "Because both players ran out of time" msgstr "" #: lib/pychess/Utils/repr.py:30 #, python-format msgid "Because %(mover)s stalemated" msgstr "" #: lib/pychess/Utils/repr.py:31 msgid "Because both players agreed to a draw" msgstr "" #: lib/pychess/Utils/repr.py:32 lib/pychess/Utils/repr.py:42 msgid "Because of adjudication by an admin" msgstr "" #: lib/pychess/Utils/repr.py:33 msgid "Because the game exceed the max length" msgstr "" #: lib/pychess/Utils/repr.py:34 #, python-format msgid "" "Because %(white)s ran out of time and %(black)s has insufficient material to" " mate" msgstr "" #: lib/pychess/Utils/repr.py:35 #, python-format msgid "" "Because %(black)s ran out of time and %(white)s has insufficient material to" " mate" msgstr "" #: lib/pychess/Utils/repr.py:36 msgid "Because both players have the same amount of pieces" msgstr "" #: lib/pychess/Utils/repr.py:38 #, python-format msgid "Because %(loser)s resigned" msgstr "" #: lib/pychess/Utils/repr.py:39 #, python-format msgid "Because %(loser)s ran out of time" msgstr "" #: lib/pychess/Utils/repr.py:40 #, python-format msgid "Because %(loser)s was checkmated" msgstr "" #: lib/pychess/Utils/repr.py:41 #, python-format msgid "Because %(loser)s disconnected" msgstr "" #: lib/pychess/Utils/repr.py:43 #, python-format msgid "Because %(winner)s has fewer pieces" msgstr "" #: lib/pychess/Utils/repr.py:44 #, python-format msgid "Because %(winner)s lost all pieces" msgstr "" #: lib/pychess/Utils/repr.py:45 #, python-format msgid "Because %(loser)s king exploded" msgstr "" #: lib/pychess/Utils/repr.py:46 #, python-format msgid "Because %(winner)s king reached the center" msgstr "" #: lib/pychess/Utils/repr.py:47 #, python-format msgid "Because %(winner)s was giving check 3 times" msgstr "" #: lib/pychess/Utils/repr.py:49 msgid "Because a player lost connection" msgstr "" #: lib/pychess/Utils/repr.py:50 msgid "Because both players agreed to an adjournment" msgstr "" #: lib/pychess/Utils/repr.py:51 msgid "Because the server was shut down" msgstr "" #: lib/pychess/Utils/repr.py:52 msgid "" "Because a player lost connection and the other player requested adjournment" msgstr "" #: lib/pychess/Utils/repr.py:53 #, python-format msgid "" "Because %(black)s lost connection to the server and %(white)s requested " "adjournment" msgstr "" #: lib/pychess/Utils/repr.py:54 #, python-format msgid "" "Because %(white)s lost connection to the server and %(black)s requested " "adjournment" msgstr "" #: lib/pychess/Utils/repr.py:55 #, python-format msgid "Because %(white)s lost connection to the server" msgstr "" #: lib/pychess/Utils/repr.py:56 #, python-format msgid "Because %(black)s lost connection to the server" msgstr "" #: lib/pychess/Utils/repr.py:58 msgid "Because of adjudication by an admin. No rating changes have occurred." msgstr "" #: lib/pychess/Utils/repr.py:59 msgid "" "Because both players agreed to abort the game. No rating changes have " "occurred." msgstr "" #: lib/pychess/Utils/repr.py:60 msgid "Because of courtesy by a player. No rating changes have occurred." msgstr "" #: lib/pychess/Utils/repr.py:61 msgid "" "Because a player aborted the game. Either player can abort the game without " "the other's consent before the second move. No rating changes have occurred." msgstr "" #: lib/pychess/Utils/repr.py:62 msgid "" "Because a player disconnected and there are too few moves to warrant " "adjournment. No rating changes have occurred." msgstr "" #: lib/pychess/Utils/repr.py:63 msgid "Because the server was shut down. No rating changes have occurred." msgstr "" #: lib/pychess/Utils/repr.py:65 #, python-format msgid "Because the %(white)s engine died" msgstr "" #: lib/pychess/Utils/repr.py:66 #, python-format msgid "Because the %(black)s engine died" msgstr "" #: lib/pychess/Utils/repr.py:67 msgid "Because the connection to the server was lost" msgstr "" #: lib/pychess/Utils/repr.py:68 msgid "The reason is unknown" msgstr "" #: lib/pychess/Utils/TimeModel.py:229 msgid "min" msgstr "" #: lib/pychess/Utils/TimeModel.py:231 msgid "sec" msgstr "" #: lib/pychess/Variants/asean.py:12 msgid "" "ASEAN: http://www.ncf-" "phil.org/downloadables/2014/May/Asean_chess/Laws_of_ASEAN_Chess_2011_Nov_26.doc" msgstr "" #: lib/pychess/Variants/asean.py:13 msgid "ASEAN" msgstr "" #: lib/pychess/Variants/asean.py:33 msgid "Makruk: http://en.wikipedia.org/wiki/Makruk" msgstr "" #: lib/pychess/Variants/asean.py:34 msgid "Makruk" msgstr "" #: lib/pychess/Variants/asean.py:60 msgid "Cambodian: http://www.khmerinstitute.org/culture/ok.html" msgstr "" #: lib/pychess/Variants/asean.py:61 msgid "Cambodian" msgstr "" #: lib/pychess/Variants/asean.py:86 msgid "" "Ai-Wok: http://www.open-" "aurec.com/wbforum/viewtopic.php?p=199364&sid=20963a1de2c164050de019e5ed6bf7c4#p199364" msgstr "" #: lib/pychess/Variants/asean.py:87 msgid "Ai-Wok" msgstr "" #: lib/pychess/Variants/asean.py:111 msgid "Sittuyin: http://en.wikipedia.org/wiki/Sittuyin" msgstr "" #: lib/pychess/Variants/asean.py:112 msgid "Sittuyin" msgstr "" #: lib/pychess/Variants/asymmetricrandom.py:12 msgid "" "FICS wild/4: http://www.freechess.org/Help/HelpFiles/wild.html\n" "* Randomly chosen pieces (two queens or three rooks possible)\n" "* Exactly one king of each color\n" "* Pieces placed randomly behind the pawns, SUBJECT TO THE CONSTRAINT THAT THE BISHOPS ARE BALANCED\n" "* No castling\n" "* Black's arrangement DOES NOT mirrors white's" msgstr "" #: lib/pychess/Variants/asymmetricrandom.py:18 msgid "Asymmetric Random" msgstr "" #: lib/pychess/Variants/atomic.py:14 msgid "FICS atomic: http://www.freechess.org/Help/HelpFiles/atomic.html" msgstr "" #: lib/pychess/Variants/blindfold.py:7 msgid "" "Classic chess rules with hidden figurines\n" "http://en.wikipedia.org/wiki/Blindfold_chess" msgstr "" #: lib/pychess/Variants/blindfold.py:9 #: lib/pychess/widgets/newGameDialog.py:264 msgid "Blindfold" msgstr "" #: lib/pychess/Variants/blindfold.py:18 msgid "" "Classic chess rules with hidden pawns\n" "http://en.wikipedia.org/wiki/Blindfold_chess" msgstr "" #: lib/pychess/Variants/blindfold.py:20 msgid "Hidden pawns" msgstr "" #: lib/pychess/Variants/blindfold.py:29 msgid "" "Classic chess rules with hidden pieces\n" "http://en.wikipedia.org/wiki/Blindfold_chess" msgstr "" #: lib/pychess/Variants/blindfold.py:31 msgid "Hidden pieces" msgstr "" #: lib/pychess/Variants/blindfold.py:40 msgid "" "Classic chess rules with all pieces white\n" "http://en.wikipedia.org/wiki/Blindfold_chess" msgstr "" #: lib/pychess/Variants/blindfold.py:42 msgid "All white" msgstr "" #: lib/pychess/Variants/bughouse.py:8 msgid "FICS bughouse: http://www.freechess.org/Help/HelpFiles/bughouse.html" msgstr "" #: lib/pychess/Variants/corner.py:12 msgid "" "http://brainking.com/en/GameRules?tp=2\n" "* Placement of the pieces on the 1st and 8th row are randomized\n" "* The king is in the right hand corner\n" "* Bishops must start on opposite color squares\n" "* Black's starting position is obtained by rotating white's position 180 degrees around the board's center\n" "* No castling" msgstr "" #: lib/pychess/Variants/corner.py:18 msgid "Corner" msgstr "" #: lib/pychess/Variants/crazyhouse.py:8 msgid "" "FICS crazyhouse: http://www.freechess.org/Help/HelpFiles/crazyhouse.html" msgstr "" #: lib/pychess/Variants/euroshogi.py:9 msgid "EuroShogi: http://en.wikipedia.org/wiki/EuroShogi" msgstr "" #: lib/pychess/Variants/euroshogi.py:10 msgid "EuroShogi" msgstr "" #: lib/pychess/Variants/fischerandom.py:18 msgid "" "http://en.wikipedia.org/wiki/Chess960\n" "FICS wild/fr: http://www.freechess.org/Help/HelpFiles/wild.html" msgstr "" #: lib/pychess/Variants/fischerandom.py:20 msgid "Fischer Random" msgstr "" #: lib/pychess/Variants/kingofthehill.py:8 msgid "" "Bringing your king legally to the center (e4, d4, e5, d5) instantly wins the game!\n" "Normal rules apply in other cases and checkmate also ends the game." msgstr "" #: lib/pychess/Variants/kingofthehill.py:10 msgid "King of the hill" msgstr "" #: lib/pychess/Variants/knightodds.py:8 msgid "One player starts with one less knight piece" msgstr "" #: lib/pychess/Variants/knightodds.py:9 msgid "Knight odds" msgstr "" #: lib/pychess/Variants/losers.py:8 msgid "FICS losers: http://www.freechess.org/Help/HelpFiles/losers_chess.html" msgstr "" #: lib/pychess/Variants/normal.py:4 msgid "" "Classic chess rules\n" "http://en.wikipedia.org/wiki/Chess" msgstr "" #: lib/pychess/Variants/normal.py:6 lib/pychess/widgets/newGameDialog.py:157 msgid "Normal" msgstr "Normal" #: lib/pychess/Variants/pawnodds.py:8 msgid "One player starts with one less pawn piece" msgstr "" #: lib/pychess/Variants/pawnodds.py:9 msgid "Pawn odds" msgstr "" #: lib/pychess/Variants/pawnspassed.py:11 msgid "" "FICS wild/8a: http://www.freechess.org/Help/HelpFiles/wild.html\n" "White pawns start on 5th rank and black pawns on the 4th rank" msgstr "" #: lib/pychess/Variants/pawnspassed.py:13 msgid "Pawns Passed" msgstr "" #: lib/pychess/Variants/pawnspushed.py:10 msgid "" "FICS wild/8: http://www.freechess.org/Help/HelpFiles/wild.html\n" "Pawns start on 4th and 5th ranks rather than 2nd and 7th" msgstr "" #: lib/pychess/Variants/pawnspushed.py:12 msgid "Pawns Pushed" msgstr "" #: lib/pychess/Variants/queenodds.py:8 msgid "One player starts with one less queen piece" msgstr "" #: lib/pychess/Variants/queenodds.py:9 msgid "Queen odds" msgstr "" #: lib/pychess/Variants/randomchess.py:11 msgid "" "FICS wild/3: http://www.freechess.org/Help/HelpFiles/wild.html\n" "* Randomly chosen pieces (two queens or three rooks possible)\n" "* Exactly one king of each color\n" "* Pieces placed randomly behind the pawns\n" "* No castling\n" "* Black's arrangement mirrors white's" msgstr "" #: lib/pychess/Variants/randomchess.py:17 #: lib/pychess/widgets/TaskerManager.py:155 msgid "Random" msgstr "" #: lib/pychess/Variants/rookodds.py:8 msgid "One player starts with one less rook piece" msgstr "" #: lib/pychess/Variants/rookodds.py:9 msgid "Rook odds" msgstr "" #: lib/pychess/Variants/shuffle.py:11 msgid "" "xboard nocastle: http://home.hccnet.nl/h.g.muller/engine-intf.html#8\n" "FICS wild/2: http://www.freechess.org/Help/HelpFiles/wild.html\n" "* Random arrangement of the pieces behind the pawns\n" "* No castling\n" "* Black's arrangement mirrors white's" msgstr "" #: lib/pychess/Variants/suicide.py:11 msgid "" "FICS suicide: http://www.freechess.org/Help/HelpFiles/suicide_chess.html" msgstr "" #: lib/pychess/Variants/theban.py:10 msgid "" "Variant developed by Kai Laskos: " "http://talkchess.com/forum/viewtopic.php?t=40990" msgstr "" #: lib/pychess/Variants/theban.py:11 msgid "Theban" msgstr "" #: lib/pychess/Variants/threecheck.py:10 msgid "Win by giving check 3 times" msgstr "" #: lib/pychess/Variants/threecheck.py:11 msgid "Three-check" msgstr "" #: lib/pychess/Variants/upsidedown.py:10 msgid "" "FICS wild/5: http://www.freechess.org/Help/HelpFiles/wild.html\n" "http://en.wikipedia.org/wiki/Chess_variant#Chess_with_different_starting_positions\n" "Pawns start on their 7th rank rather than their 2nd rank!" msgstr "" #: lib/pychess/Variants/upsidedown.py:13 msgid "Upside Down" msgstr "" #: lib/pychess/Variants/wildcastle.py:10 msgid "" "xboard wildcastle http://home.hccnet.nl/h.g.muller/engine-intf.html#8\n" "FICS wild/0: http://www.freechess.org/Help/HelpFiles/wild.html\n" "* White has the typical set-up at the start.\n" "* Black's pieces are the same, except that the King and Queen are reversed,\n" "* so they are not on the same files as White's King and Queen.\n" "* Castling is done similarly to normal chess:\n" "* o-o-o indicates long castling and o-o short castling." msgstr "" #: lib/pychess/Variants/wildcastle.py:17 msgid "Wildcastle" msgstr "" #: lib/pychess/Variants/wildcastleshuffle.py:11 msgid "" "xboard wildcastle http://home.hccnet.nl/h.g.muller/engine-intf.html#8\n" "FICS wild/1: http://www.freechess.org/Help/HelpFiles/wild.html\n" "* In this variant both sides have the same set of pieces as in normal chess.\n" "* The white king starts on d1 or e1 and the black king starts on d8 or e8,\n" "* and the rooks are in their usual positions.\n" "* Bishops are always on opposite colors.\n" "* Subject to these constraints the position of the pieces on their first ranks is random.\n" "* Castling is done similarly to normal chess:\n" "* o-o-o indicates long castling and o-o short castling." msgstr "" #: lib/pychess/Variants/wildcastleshuffle.py:20 msgid "Wildcastle shuffle" msgstr "" #: lib/pychess/widgets/analyzegameDialog.py:85 msgid "Game analyzing in progress..." msgstr "" #: lib/pychess/widgets/analyzegameDialog.py:86 msgid "Do you want to abort it?" msgstr "" #: lib/pychess/widgets/analyzegameDialog.py:95 #: lib/pychess/widgets/gamewidget.py:202 lib/pychess/widgets/gamewidget.py:320 msgid "Abort" msgstr "" #: lib/pychess/widgets/ChatView.py:125 msgid "Observers" msgstr "" #: lib/pychess/widgets/ChatWindow.py:222 msgid "You have opened no conversations yet" msgstr "" #: lib/pychess/widgets/ChatWindow.py:254 msgid "Only registered users may talk to this channel" msgstr "" #: lib/pychess/widgets/ChatWindow.py:312 msgid "No conversation's selected" msgstr "" #: lib/pychess/widgets/ChatWindow.py:350 msgid "Loading player data" msgstr "" #: lib/pychess/widgets/ChatWindow.py:400 msgid "Receiving list of players" msgstr "" #: lib/pychess/widgets/ChatWindow.py:518 msgid "Friends" msgstr "" #: lib/pychess/widgets/ChatWindow.py:529 msgid "Admin" msgstr "" #: lib/pychess/widgets/ChatWindow.py:540 msgid "More channels" msgstr "" #: lib/pychess/widgets/ChatWindow.py:548 msgid "More players" msgstr "" #: lib/pychess/widgets/ChatWindow.py:558 msgid "Computers" msgstr "" #: lib/pychess/widgets/ChatWindow.py:568 msgid "BlindFold" msgstr "" #: lib/pychess/widgets/ChatWindow.py:578 msgid "Guests" msgstr "" #: lib/pychess/widgets/ChatWindow.py:805 msgid "Conversations" msgstr "" #: lib/pychess/widgets/ChatWindow.py:807 msgid "Conversation info" msgstr "" #: lib/pychess/widgets/enginesDialog.py:152 msgid "Select engine" msgstr "" #: lib/pychess/widgets/enginesDialog.py:156 msgid "Executable files" msgstr "" #: lib/pychess/widgets/enginesDialog.py:176 #: lib/pychess/widgets/enginesDialog.py:210 #: lib/pychess/widgets/enginesDialog.py:235 #, python-format msgid "Unable to add %s" msgstr "" #: lib/pychess/widgets/enginesDialog.py:177 msgid "wine not installed" msgstr "" #: lib/pychess/widgets/enginesDialog.py:211 #: lib/pychess/widgets/enginesDialog.py:236 msgid "There is something wrong with this executable" msgstr "" #: lib/pychess/widgets/enginesDialog.py:266 msgid "Select working directory" msgstr "" #: lib/pychess/widgets/gamenanny.py:115 #, python-format msgid " invalid engine move: %s" msgstr "" #: lib/pychess/widgets/gamenanny.py:134 msgid "Offer Rematch" msgstr "" #: lib/pychess/widgets/gamenanny.py:136 lib/pychess/widgets/gamenanny.py:147 #, python-format msgid "Observe %s" msgstr "" #: lib/pychess/widgets/gamenanny.py:168 msgid "Play Rematch" msgstr "" #: lib/pychess/widgets/gamenanny.py:171 msgid "Undo one move" msgstr "" #: lib/pychess/widgets/gamenanny.py:173 msgid "Undo two moves" msgstr "" #: lib/pychess/widgets/gamenanny.py:203 msgid "The game is paused" msgstr "" #: lib/pychess/widgets/gamenanny.py:221 lib/pychess/widgets/gamenanny.py:222 msgid "Loaded game" msgstr "Jogo Carregado" #: lib/pychess/widgets/gamenanny.py:228 msgid "Saved game" msgstr "Jogo Salvo" #: lib/pychess/widgets/gamenanny.py:232 msgid "Analyzer started" msgstr "" #: lib/pychess/widgets/gamenanny.py:281 msgid "You sent an abort offer" msgstr "" #: lib/pychess/widgets/gamenanny.py:283 msgid "You sent an adjournment offer" msgstr "" #: lib/pychess/widgets/gamenanny.py:285 msgid "You sent a draw offer" msgstr "Enviou uma oferta de empate" #: lib/pychess/widgets/gamenanny.py:287 msgid "You sent a pause offer" msgstr "" #: lib/pychess/widgets/gamenanny.py:289 msgid "You sent a resume offer" msgstr "" #: lib/pychess/widgets/gamenanny.py:291 msgid "You sent an undo offer" msgstr "" #: lib/pychess/widgets/gamenanny.py:293 msgid "You asked your opponent to move" msgstr "" #: lib/pychess/widgets/gamenanny.py:305 #, python-format msgid "Engine, %s, has died" msgstr "Engine, %s, foi morto" #: lib/pychess/widgets/gamenanny.py:306 msgid "" "PyChess has lost connection to the engine, probably because it has died.\n" "\n" "You can try to start a new game with the engine, or try to play against another one." msgstr "PyChess não conseguiu conexão com o engine, provavelmente porque já morreu.\n\nVocê pode tentar iniciar um novo jogo com o engine, ou tentar jogar com outra pessoa." #: lib/pychess/widgets/gamewidget.py:204 msgid "" "This game can be automatically aborted without rating loss because there has" " not yet been two moves made" msgstr "" #: lib/pychess/widgets/gamewidget.py:206 msgid "Offer Abort" msgstr "" #: lib/pychess/widgets/gamewidget.py:208 msgid "" "Your opponent must agree to abort the game because there has been two or " "more moves made" msgstr "" #: lib/pychess/widgets/gamewidget.py:226 msgid "This game can not be adjourned because one or both players are guests" msgstr "" #: lib/pychess/widgets/gamewidget.py:243 msgid "Claim Draw" msgstr "" #: lib/pychess/widgets/gamewidget.py:325 msgid "Pause" msgstr "" #: lib/pychess/widgets/gamewidget.py:326 msgid "Resume" msgstr "" #: lib/pychess/widgets/gamewidget.py:328 msgid "Offer Pause" msgstr "" #: lib/pychess/widgets/gamewidget.py:329 msgid "Offer Resume" msgstr "" #: lib/pychess/widgets/gamewidget.py:333 msgid "Undo" msgstr "" #: lib/pychess/widgets/gamewidget.py:335 msgid "Offer Undo" msgstr "" #: lib/pychess/widgets/gamewidget.py:550 msgid " has lagged for 30 seconds" msgstr "" #: lib/pychess/widgets/gamewidget.py:566 msgid " is lagging heavily but hasn't disconnected" msgstr "" #: lib/pychess/widgets/gamewidget.py:567 msgid "Continue to wait for opponent, or try to adjourn the game?" msgstr "" #: lib/pychess/widgets/gamewidget.py:575 msgid "Wait" msgstr "" #: lib/pychess/widgets/gamewidget.py:576 msgid "Adjourn" msgstr "" #: lib/pychess/widgets/gamewidget.py:648 msgid "Jump to initial position" msgstr "" #: lib/pychess/widgets/gamewidget.py:653 msgid "Step back one move" msgstr "" #: lib/pychess/widgets/gamewidget.py:658 msgid "Go back to the main line" msgstr "" #: lib/pychess/widgets/gamewidget.py:664 msgid "Step forward one move" msgstr "" #: lib/pychess/widgets/gamewidget.py:669 msgid "Jump to latest position" msgstr "" #: lib/pychess/widgets/gamewidget.py:903 msgid "PyChess was unable to load your panel settings" msgstr "" #: lib/pychess/widgets/gamewidget.py:904 msgid "" "Your panel settings have been reset. If this problem repeats, you should " "report it to the developers" msgstr "" #: lib/pychess/widgets/ionest.py:67 lib/pychess/widgets/newGameDialog.py:389 #: lib/pychess/widgets/TaskerManager.py:210 msgid "You" msgstr "" #: lib/pychess/widgets/ionest.py:70 lib/pychess/widgets/newGameDialog.py:390 #: lib/pychess/widgets/preferencesDialog.py:61 #: lib/pychess/widgets/TaskerManager.py:213 msgid "Guest" msgstr "Convidado" #: lib/pychess/widgets/ionest.py:93 msgid "Error loading game" msgstr "" #: lib/pychess/widgets/ionest.py:127 lib/pychess/widgets/newGameDialog.py:480 msgid "Open Game" msgstr "Abrir jogo" #: lib/pychess/widgets/ionest.py:137 msgid "All Files" msgstr "Todos os Ficheiros" #: lib/pychess/widgets/ionest.py:140 msgid "Detect type automatically" msgstr "Detectar tipo automaticamente" #: lib/pychess/widgets/ionest.py:146 msgid "All Chess Files" msgstr "Todos od ficheiros de xadrez" #: lib/pychess/widgets/ionest.py:228 msgid "Save Game" msgstr "Guardar o Jogo" #: lib/pychess/widgets/ionest.py:228 msgid "Export position" msgstr "" #: lib/pychess/widgets/ionest.py:232 lib/pychess/widgets/ionest.py:360 msgid "vs." msgstr "" #: lib/pychess/widgets/ionest.py:249 #, python-format msgid "Unknown file type '%s'" msgstr "Tipo de ficheiro desconhecido '%s'" #: lib/pychess/widgets/ionest.py:250 #, python-format msgid "" "Was unable to save '%(uri)s' as PyChess doesn't know the format " "'%(ending)s'." msgstr "" #: lib/pychess/widgets/ionest.py:266 #, python-format msgid "Unable to save file '%s'" msgstr "Impossível gravar ficheiro '%s'" #: lib/pychess/widgets/ionest.py:268 msgid "" "You don't have the necessary rights to save the file.\n" "Please ensure that you have given the right path and try again." msgstr "Você não tem direitos necessários para gravar o ficheiro.\nPor favor assegure seus direitos de gravação e tente novamente." #: lib/pychess/widgets/ionest.py:276 msgid "_Replace" msgstr "Substituir" #: lib/pychess/widgets/ionest.py:280 msgid "File exists" msgstr "Ficheiro existe" #: lib/pychess/widgets/ionest.py:282 #, python-format msgid "" "A file named '%s' already exists. Would you like to replace " "it?" msgstr "Já existe um ficheiro chamado '%s'. Gostaria de o substituir?" #: lib/pychess/widgets/ionest.py:283 #, python-format msgid "" "The file already exists in '%s'. If you replace it, its content will be " "overwritten." msgstr "O ficheiro já existe em '%s'. Se o substituir, o seu conteúdo será re-escrito." #: lib/pychess/widgets/ionest.py:299 msgid "Could not save the file" msgstr "Não foi possível salvar o ficheiro" #: lib/pychess/widgets/ionest.py:300 msgid "PyChess was not able to save the game" msgstr "PyChess não foi capaz de salvar o jogo" #: lib/pychess/widgets/ionest.py:301 #, python-format msgid "The error was: %s" msgstr "O erro foi: %s" #: lib/pychess/widgets/ionest.py:325 #, python-format msgid "There is %d game with unsaved moves." msgid_plural "There are %d games with unsaved moves." msgstr[0] "" msgstr[1] "" #: lib/pychess/widgets/ionest.py:328 msgid "Save moves before closing?" msgstr "" #: lib/pychess/widgets/ionest.py:339 msgid "Unable to save to configured file. Save the games before closing?" msgstr "" #: lib/pychess/widgets/ionest.py:366 #, python-format msgid "_Save %d document" msgid_plural "_Save %d documents" msgstr[0] "" msgstr[1] "" #: lib/pychess/widgets/ionest.py:412 msgid "Save the current game before you close it?" msgstr "" #: lib/pychess/widgets/ionest.py:420 msgid "" "Unable to save to configured file. Save the current game before you close " "it?" msgstr "" #: lib/pychess/widgets/ionest.py:434 msgid "" "It is not possible later to continue the game,\n" "if you don't save it." msgstr "Não é possível continuar o jogo mais tarde,\nse não o guardar." #: lib/pychess/widgets/LogDialog.py:26 msgid "PyChess Information Window" msgstr "" #: lib/pychess/widgets/LogDialog.py:184 lib/pychess/widgets/LogDialog.py:188 msgid "of" msgstr "" #: lib/pychess/widgets/newGameDialog.py:84 #: lib/pychess/widgets/newGameDialog.py:85 msgid "Human Being" msgstr "Humano" #: lib/pychess/widgets/newGameDialog.py:155 msgid "Rapid" msgstr "" #: lib/pychess/widgets/newGameDialog.py:224 msgid "Minutes:" msgstr "Minutos:" #: lib/pychess/widgets/newGameDialog.py:228 msgid "Gain:" msgstr "Incremento:" #: lib/pychess/widgets/newGameDialog.py:241 #, python-format msgid "%(name)s %(minutes)d min + %(gain)d sec/move" msgstr "" #: lib/pychess/widgets/newGameDialog.py:244 #, python-format msgid "%(name)s %(minutes)d min %(gain)d sec/move" msgstr "" #: lib/pychess/widgets/newGameDialog.py:247 #, python-format msgid "%(name)s %(minutes)d min" msgstr "" #: lib/pychess/widgets/newGameDialog.py:265 msgid "Odds" msgstr "" #: lib/pychess/widgets/newGameDialog.py:269 msgid "Asian variants" msgstr "" #: lib/pychess/widgets/newGameDialog.py:301 msgid " chess" msgstr "" #: lib/pychess/widgets/newGameDialog.py:682 msgid "Type or paste PGN game or FEN positions here" msgstr "" #: lib/pychess/widgets/newGameDialog.py:725 msgid "Enter Game" msgstr "" #: lib/pychess/widgets/preferencesDialog.py:123 msgid "Select book file" msgstr "" #: lib/pychess/widgets/preferencesDialog.py:128 msgid "Opening books" msgstr "" #: lib/pychess/widgets/preferencesDialog.py:156 msgid "Select Gaviota TB path" msgstr "" #: lib/pychess/widgets/preferencesDialog.py:331 msgid "Open Sound File" msgstr "Abrir ficheiro de som" #: lib/pychess/widgets/preferencesDialog.py:341 msgid "Sound files" msgstr "" #: lib/pychess/widgets/preferencesDialog.py:485 msgid "Undescribed panel" msgstr "" #: lib/pychess/widgets/preferencesDialog.py:678 msgid "Select auto save path" msgstr "" #: lib/pychess/widgets/tipOfTheDay.py:51 msgid "" "You can start a new game by Game > New Game, in New Game " "window do you can choose Players, Time Control and Chess " "Variants." msgstr "" #: lib/pychess/widgets/tipOfTheDay.py:52 msgid "" "You can choose from 20 different difficulties to play against the computer." msgstr "" #: lib/pychess/widgets/tipOfTheDay.py:53 msgid "" "Chess Variants are like the pieces of the last line will be placed on the " "board." msgstr "" #: lib/pychess/widgets/tipOfTheDay.py:54 msgid "" "To save a game Game > Save Game As, give the filename and " "choose where you want to be saved. At the bottom choose extension type of " "the file, and Save." msgstr "" #: lib/pychess/widgets/tipOfTheDay.py:55 msgid "" "Do you know that you can call flag when the clock is with you, " "Actions > Call Flag." msgstr "" #: lib/pychess/widgets/tipOfTheDay.py:56 msgid "Pressing Ctrl+Z to offer opponent the possible rollback moves." msgstr "" #: lib/pychess/widgets/tipOfTheDay.py:57 msgid "" "To play on Fullscreen mode, just type F11. Coming back, F11 " "again." msgstr "" #: lib/pychess/widgets/tipOfTheDay.py:58 msgid "Hint mode analyzing your game, enable this type Ctrl+H." msgstr "" #: lib/pychess/widgets/tipOfTheDay.py:59 msgid "" "Spy mode analyzing the oponnent game, enable this type Ctrl+Y." msgstr "" #: lib/pychess/widgets/tipOfTheDay.py:60 msgid "" "You can play chess listening to the sounds of the game, for that, " "Settings > Preferences > Sound tab, enable Use " "sounds in PyChess and choose your preferred sounds." msgstr "" #: lib/pychess/widgets/tipOfTheDay.py:61 msgid "" "Do you know that you can help translate Pychess in your language, " "Help > Translate Pychess." msgstr "" #: lib/pychess/widgets/tipOfTheDay.py:62 msgid "" "Do you know that it is possible to finish a chess game in just 2 turns?" msgstr "" #: lib/pychess/widgets/tipOfTheDay.py:63 msgid "" "Do you know that the number of possible chess games exceeds the number of " "atoms in the Universe?" msgstr "" #: lib/pychess/ic/managers/ChatManager.py:184 msgid "Shout" msgstr "" #: lib/pychess/ic/managers/ChatManager.py:185 msgid "Chess Shout" msgstr "" #: lib/pychess/ic/managers/ChatManager.py:195 #, python-format msgid "Unofficial channel %d" msgstr "" #: lib/pychess/Utils/lutils/LBoard.py:152 #, python-format msgid "" "FEN needs 6 data fields. \n" "\n" "%s" msgstr "" #: lib/pychess/Utils/lutils/LBoard.py:154 #, python-format msgid "" "FEN needs at least 2 data fields in fenstr. \n" "\n" "%s" msgstr "" #: lib/pychess/Utils/lutils/LBoard.py:175 #, python-format msgid "" "Needs 7 slashes in piece placement field. \n" "\n" "%s" msgstr "" #: lib/pychess/Utils/lutils/LBoard.py:178 #, python-format msgid "" "Active color field must be one of w or b. \n" "\n" "%s" msgstr "" #: lib/pychess/Utils/lutils/LBoard.py:189 #, python-format msgid "" "Castling availability field is not legal. \n" "\n" "%s" msgstr "" #: lib/pychess/Utils/lutils/LBoard.py:192 #, python-format msgid "" "En passant cord is not legal. \n" "\n" "%s" msgstr "" #: lib/pychess/Utils/lutils/lmove.py:260 msgid "invalid promoted piece" msgstr "" #: lib/pychess/Utils/lutils/lmove.py:272 msgid "the move needs a piece and a cord" msgstr "" #: lib/pychess/Utils/lutils/lmove.py:306 lib/pychess/Utils/lutils/lmove.py:556 msgid "promotion move without promoted piece is incorrect" msgstr "" #: lib/pychess/Utils/lutils/lmove.py:312 #, python-format msgid "the captured cord (%s) is incorrect" msgstr "" #: lib/pychess/Utils/lutils/lmove.py:323 #, python-format msgid "the end cord (%s) is incorrect" msgstr "" #: lib/pychess/Utils/lutils/strateval.py:24 sidepanel/commentPanel.py:191 #: sidepanel/commentPanel.py:208 msgid "and" msgstr "" #: lib/pychess/Utils/lutils/strateval.py:43 msgid "draws" msgstr "empata" #: lib/pychess/Utils/lutils/strateval.py:45 msgid "mates" msgstr "dá mate" #: lib/pychess/Utils/lutils/strateval.py:49 msgid "puts opponent in check" msgstr "põe o adversário em cheque" #: lib/pychess/Utils/lutils/strateval.py:73 msgid "improves king safety" msgstr "melhora a segurança do Rei" #: lib/pychess/Utils/lutils/strateval.py:75 msgid "slightly improves king safety" msgstr "melhora ligeiramente a segurança do Rei" #: lib/pychess/Utils/lutils/strateval.py:108 msgid "moves a rook to an open file" msgstr "move uma Torre para uma coluna aberta" #: lib/pychess/Utils/lutils/strateval.py:109 msgid "moves an rook to a half-open file" msgstr "move uma Torre para uma coluna semi-aberta" #: lib/pychess/Utils/lutils/strateval.py:119 #: lib/pychess/Utils/lutils/strateval.py:121 #: lib/pychess/Utils/lutils/strateval.py:124 #: lib/pychess/Utils/lutils/strateval.py:126 #, python-format msgid "moves bishop into fianchetto: %s" msgstr "move o Bispo para o fianqueto: %s" #: lib/pychess/Utils/lutils/strateval.py:132 #, python-format msgid "promotes a Pawn to a %s" msgstr "promove o Peão a %s" #: lib/pychess/Utils/lutils/strateval.py:135 msgid "castles" msgstr "faz roque" #: lib/pychess/Utils/lutils/strateval.py:158 msgid "takes back material" msgstr "recupera material" #: lib/pychess/Utils/lutils/strateval.py:162 #: lib/pychess/Utils/lutils/strateval.py:170 msgid "sacrifies material" msgstr "sacrifica material" #: lib/pychess/Utils/lutils/strateval.py:164 msgid "exchanges material" msgstr "troca material" #: lib/pychess/Utils/lutils/strateval.py:166 msgid "captures material" msgstr "captura material" #: lib/pychess/Utils/lutils/strateval.py:291 #, python-format msgid "rescues a %s" msgstr "" #: lib/pychess/Utils/lutils/strateval.py:294 #, python-format msgid "threatens to win material by %s" msgstr "" #: lib/pychess/Utils/lutils/strateval.py:296 #, python-format msgid "increases the pressure on %s" msgstr "aumenta a pressão em %s" #: lib/pychess/Utils/lutils/strateval.py:298 #, python-format msgid "defends %s" msgstr "defende %s" #: lib/pychess/Utils/lutils/strateval.py:336 #, python-format msgid "pins an enemy %(oppiece)s on the %(piece)s at %(cord)s" msgstr "" #: lib/pychess/Utils/lutils/strateval.py:369 #, python-format msgid "White has a new piece in outpost: %s" msgstr "Brancas têm uma nova peça na posição: %s" #: lib/pychess/Utils/lutils/strateval.py:377 #, python-format msgid "Black has a new piece in outpost: %s" msgstr "Pretas têm uma nova peça na posição: %s" #: lib/pychess/Utils/lutils/strateval.py:416 #, python-format msgid "%(color)s has a new passed pawn on %(cord)s" msgstr "" #: lib/pychess/Utils/lutils/strateval.py:470 msgid "half-open" msgstr "" #: lib/pychess/Utils/lutils/strateval.py:472 #, python-format msgid "in the %(x)s%(y)s file" msgstr "" #: lib/pychess/Utils/lutils/strateval.py:474 #, python-format msgid "in the %(x)s%(y)s files" msgstr "" #: lib/pychess/Utils/lutils/strateval.py:477 #, python-format msgid "%(color)s got a double pawn %(place)s" msgstr "" #: lib/pychess/Utils/lutils/strateval.py:478 #, python-format msgid "%(color)s got new double pawns %(place)s" msgstr "" #: lib/pychess/Utils/lutils/strateval.py:485 #, python-format msgid "%(color)s got an isolated pawn in the %(x)s file" msgid_plural "%(color)s got isolated pawns in the %(x)s files" msgstr[0] "" msgstr[1] "" #: lib/pychess/Utils/lutils/strateval.py:492 #, python-format msgid "%s moves pawns into stonewall formation" msgstr "%s move peões para uma formação stonewall" #: lib/pychess/Utils/lutils/strateval.py:507 #: lib/pychess/Utils/lutils/strateval.py:514 #, python-format msgid "%s can no longer castle" msgstr "" #: lib/pychess/Utils/lutils/strateval.py:508 #: lib/pychess/Utils/lutils/strateval.py:515 #, python-format msgid "%s can no longer castle in queenside" msgstr "" #: lib/pychess/Utils/lutils/strateval.py:510 #: lib/pychess/Utils/lutils/strateval.py:517 #, python-format msgid "%s can no longer castle in kingside" msgstr "" #: lib/pychess/Utils/lutils/strateval.py:551 #, python-format msgid "%(opcolor)s has a new trapped bishop on %(cord)s" msgstr "" #: lib/pychess/Utils/lutils/strateval.py:573 #, python-format msgid "develops a pawn: %s" msgstr "" #: lib/pychess/Utils/lutils/strateval.py:574 #, python-format msgid "brings a pawn closer to the backrow: %s" msgstr "" #: lib/pychess/Utils/lutils/strateval.py:591 #, python-format msgid "brings a %(piece)s closer to enemy king: %(cord)s" msgstr "" #: lib/pychess/Utils/lutils/strateval.py:594 #, python-format msgid "develops a %(piece)s: %(cord)s" msgstr "" #: lib/pychess/Utils/lutils/strateval.py:612 #, python-format msgid "places a %(piece)s more active: %(cord)s" msgstr "" #: lib/pychess/Utils/lutils/strateval.py:638 msgid "White should do pawn storm in right" msgstr "As brancas deviam fazer uma tempestade de peões na direita" #: lib/pychess/Utils/lutils/strateval.py:640 msgid "Black should do pawn storm in left" msgstr "As pretas deviam fazer uma tempestade de peões na esquerda" #: lib/pychess/Utils/lutils/strateval.py:643 msgid "White should do pawn storm in left" msgstr "As brancas deviam fazer uma tempestade de peões na esquerda" #: lib/pychess/Utils/lutils/strateval.py:645 msgid "Black should do pawn storm in right" msgstr "As pretas deviam fazer uma tempestade de peões na direita" #: lib/pychess/Utils/lutils/strateval.py:671 msgid "Black has a rather cramped position" msgstr "" #: lib/pychess/Utils/lutils/strateval.py:673 msgid "Black has a slightly cramped position" msgstr "" #: lib/pychess/Utils/lutils/strateval.py:675 msgid "White has a rather cramped position" msgstr "" #: lib/pychess/Utils/lutils/strateval.py:677 msgid "White has a slightly cramped position" msgstr "" #: sidepanel/annotationPanel.py:26 msgid "Annotation" msgstr "" #: sidepanel/annotationPanel.py:29 msgid "Annotated game" msgstr "" #: sidepanel/annotationPanel.py:236 msgid "Copy PGN" msgstr "" #: sidepanel/annotationPanel.py:249 msgid "Add start comment" msgstr "" #: sidepanel/annotationPanel.py:254 msgid "Add comment" msgstr "" #: sidepanel/annotationPanel.py:258 sidepanel/annotationPanel.py:316 msgid "Edit comment" msgstr "" #: sidepanel/annotationPanel.py:269 msgid "Forced move" msgstr "" #: sidepanel/annotationPanel.py:274 msgid "Add move symbol" msgstr "" #: sidepanel/annotationPanel.py:280 msgid "Unclear position" msgstr "" #: sidepanel/annotationPanel.py:289 msgid "Zugzwang" msgstr "" #: sidepanel/annotationPanel.py:290 msgid "Development adv." msgstr "" #: sidepanel/annotationPanel.py:291 msgid "Initiative" msgstr "" #: sidepanel/annotationPanel.py:292 msgid "With attack" msgstr "" #: sidepanel/annotationPanel.py:293 msgid "Compensation" msgstr "" #: sidepanel/annotationPanel.py:294 msgid "Counterplay" msgstr "" #: sidepanel/annotationPanel.py:295 msgid "Time pressure" msgstr "" #: sidepanel/annotationPanel.py:300 msgid "Add evaluation symbol" msgstr "" #: sidepanel/annotationPanel.py:304 msgid "Remove symbols" msgstr "" #: sidepanel/annotationPanel.py:911 #, python-format msgid "round %s" msgstr "" #: sidepanel/bookPanel.py:21 msgid "Hints" msgstr "" #: sidepanel/bookPanel.py:25 msgid "" "The hint panel will provide computer advice during each stage of the game" msgstr "" #: sidepanel/bookPanel.py:27 msgid "Official PyChess panel." msgstr "" #: sidepanel/bookPanel.py:87 msgid "Opening Book" msgstr "Livro de aberturas" #: sidepanel/bookPanel.py:88 msgid "" "The opening book will try to inspire you during the opening phase of the " "game by showing you common moves made by chess masters" msgstr "" #: sidepanel/bookPanel.py:139 #, python-format msgid "Analysis by %s" msgstr "" #: sidepanel/bookPanel.py:140 #, python-format msgid "" "%s will try to predict which move is best and which side has the advantage" msgstr "" #: sidepanel/bookPanel.py:142 #, python-format msgid "Threat analysis by %s" msgstr "" #: sidepanel/bookPanel.py:143 #, python-format msgid "" "%s will identify what threats would exist if it were your opponent's turn to" " move" msgstr "" #: sidepanel/bookPanel.py:159 sidepanel/bookPanel.py:269 msgid "Calculating..." msgstr "" #: sidepanel/bookPanel.py:300 msgid "" "Engine scores are in units of pawns, from White's point of view. Double " "clicking on analysis lines you can insert them into Annotation panel as " "variations." msgstr "" #: sidepanel/bookPanel.py:302 msgid "" "Adding suggestions can help you find ideas, but slows down the computer's " "analysis." msgstr "" #: sidepanel/bookPanel.py:311 msgid "Endgame Table" msgstr "" #: sidepanel/bookPanel.py:315 msgid "" "The endgame table will show exact analysis when there are few pieces on the " "board." msgstr "" #: sidepanel/bookPanel.py:364 sidepanel/bookPanel.py:367 #, python-format msgid "Mate in %d" msgstr "" #: sidepanel/bookPanel.py:554 msgid "" "In this position,\n" "there is no legal move." msgstr "" #: sidepanel/chatPanel.py:21 msgid "" "The chat panel lets you communicate with your opponent during the game, " "assuming he or she is interested" msgstr "" #: sidepanel/commentPanel.py:16 msgid "Comments" msgstr "Comentários" #: sidepanel/commentPanel.py:20 msgid "The comments panel will try to analyze and explain the moves played" msgstr "" #: sidepanel/commentPanel.py:121 msgid "Initial position" msgstr "Posição inicial" #: sidepanel/commentPanel.py:254 #, python-format msgid "%(color)s moves a %(piece)s to %(cord)s" msgstr "" #: sidepanel/engineOutputPanel.py:15 msgid "Engines" msgstr "" #: sidepanel/engineOutputPanel.py:20 msgid "" "The engine output panel shows the thinking output of chess engines (computer" " players) during a game" msgstr "" #: sidepanel/engineOutputPanel.py:44 msgid "No chess engines (computer players) are participating in this game." msgstr "" #: sidepanel/historyPanel.py:10 msgid "Move History" msgstr "Histórico de movimentos" #: sidepanel/historyPanel.py:13 msgid "" "The moves sheet keeps track of the players' moves and lets you navigate " "through the game history" msgstr "" #: sidepanel/scorePanel.py:15 msgid "Score" msgstr "Pontos" #: sidepanel/scorePanel.py:19 msgid "" "The score panel tries to evaluate the positions and shows you a graph of the" " game progress" msgstr "" pychess-0.12.2/lang/pt/LC_MESSAGES/pychess.mo0000644000175000017470000002610612653231272020724 0ustar tamasusers00000000000000t `'a !9'=ev  Q&o7*("4E Ye u$"# '-C LWh~   $0DA       !+ ;HJO ^ j#t Vbdjlry~      5NT`"';C KYp$v"#uX n! %   * 1; LW ` n y  "+ 9Nkq! #AU,$-$RwB&)=]rP'19Y24 . C P m     + ; : 7!=!E!T!h!q! !!!!$!!"""" 2">"T"j""" """A"## #(# 7#D#_##### ##### ##$$$$ 7$ E$#P$.t$$ J%V%X%_%a% j%v%|%%% %% %% %% &&& .&<&=B&&Q&&&'&'>'D'I' _'l'|''','<';(~X((*($)C) L)V)g)m)5s) ))))) ))* *#* 4*@*P*f*m* ~* *** *#*-*+!+:+%C+*i+!+++++( ,4,|\P~B9'j*70MdE;o^KFr>@sl`Qx: 5/#[]i!hzL)aS}be+ Cf2ct{I 8mk6.%?"nHYRX4=A_y g$VpWN,UDwO&GT<uZq-1J 3(v%s moves pawns into stonewall formation%s returns an error%s was declined by your opponent%s was withdrawn by your opponent'%s' is not a registered name1200Connect to the Free Online Chess ServerPromote pawn to what?AnalyzingAnimationDate of gameEnter Game NotationGame dataNewsPlay Sound When...PlayersTime ControlToolsA file named '%s' already exists. Would you like to replace it?Engine, %s, has diedPyChess was not able to save the gameUnable to save file '%s'Unknown file type '%s'A player _checks:A player _moves:A player c_aptures:About ChessAll Chess FilesAll FilesBBeepBishopBlackBlack has a new piece in outpost: %sBlack should do pawn storm in leftBlack should do pawn storm in rightBlitzCenter:Chess GameChess PositionClockClose _without SavingCommentsConnectingConnection ErrorConnection was closedCould not save the fileDetect type automaticallyEmailEvent:File existsGain:Game informationGame is _drawn:Game is _lost:Game is _set-up:Game is _won:GuestHuman BeingInitial positionIt is not possible later to continue the game, if you don't save it.KKnightLightningLoaded gameLocal EventLog on ErrorLog on as _GuestMinutes:Move HistoryNNameNew GameNo soundNormalObserved _ends:Offer _DrawOpen GameOpen Sound FileOpening BookPPingPlayer _RatingPreferencesPromotionPyChess - Connect to Internet ChessPyChess - Internet Chess: FICSPyChess has lost connection to the engine, probably because it has died. You can try to start a new game with the engine, or try to play against another one.PyChess.py:QQueenRRatedRatingRookRound:Save GameSave Game _AsSaved gameScoreSelect sound file...Send seekShow _ChatShredderLinuxChess:Simple Chess PositionSite:Sp_y modeSpentThe connection was broken - got "end of file" messageThe error was: %sThe file already exists in '%s'. If you replace it, its content will be overwritten.The game ended in a drawThe game has been abortedThe game has been adjournedThe game has been killedTimeTypeUnable to accept %sUnknownUnratedUse _analyzerUse _inverted analyzerWhiteWhite has a new piece in outpost: %sWhite should do pawn storm in leftWhite should do pawn storm in rightYou don't have the necessary rights to save the file. Please ensure that you have given the right path and try again.You sent a draw offerYour opponent asks you to hurry!Your opponent is not out of time._Accept_Actions_Call Flag_Game_Help_Hide tabs when only one game is open_Hint mode_Load Game_Log Off_Log Viewer_Name:_New Game_Observed moves:_Password:_Replace_Rotate Board_Save Game_Start Game_Use sounds in PyChess_Viewcaptures materialcastlesdefends %sdrawsexchanges materialgnuchess:http://en.wikipedia.org/wiki/Chesshttp://en.wikipedia.org/wiki/Rules_of_chessimproves king safetyincreases the pressure on %smatesmoves a rook to an open filemoves an rook to a half-open filemoves bishop into fianchetto: %sonline in totalpromotes a Pawn to a %sputs opponent in checksacrifies materialslightly improves king safetytakes back materialProject-Id-Version: pychess Report-Msgid-Bugs-To: POT-Creation-Date: 2016-01-27 13:28+0100 PO-Revision-Date: 2016-01-28 08:56+0000 Last-Translator: slav0nic Language-Team: Portuguese (http://www.transifex.com/gbtami/pychess/language/pt/) MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Language: pt Plural-Forms: nplurals=2; plural=(n != 1); %s move peões para uma formação stonewall%s devolve um erro%s foi recusado pelo seu adversário%s foi retirado pelo seu adversário'%s' não é um nome registado1200Conectar-se ao Servidor Grátis de Xadrez OnlinePromover peão como?AnalisandoAnimaçãoData do jogoInsira Notação do JogoDados do jogoNotíciasReproduzir Som Quando...JogadoresControlo do tempoFerramentasJá existe um ficheiro chamado '%s'. Gostaria de o substituir?Engine, %s, foi mortoPyChess não foi capaz de salvar o jogoImpossível gravar ficheiro '%s'Tipo de ficheiro desconhecido '%s'Um reprodutor _verifica:Um jogador _movimenta-se:Um jogador c_aptura:Sobre XadrezTodos od ficheiros de xadrezTodos os FicheirosBBeepBispoPretasPretas têm uma nova peça na posição: %sAs pretas deviam fazer uma tempestade de peões na esquerdaAs pretas deviam fazer uma tempestade de peões na direitaBlitzCentro:Jogo de xadrezPosição do XadrezRelógioFechar _sem GravarComentáriosA LigarErro de LigaçãoConexão foi encerradaNão foi possível salvar o ficheiroDetectar tipo automaticamenteCorreio ElectrónicoEvento:Ficheiro existeIncremento:Informações do jogoJogo está _Empatado:Jogo está _Perdido:O jogo está _configurado:Jogo está _Vencido:ConvidadoHumanoPosição inicialNão é possível continuar o jogo mais tarde, se não o guardar.RCavaloRelâmpagoJogo CarregadoEvento LocalErro de início de sessãoIniciar sessão como _ConvidadoMinutos:Histórico de movimentosCNomeNovo JogoSem somNormalFins _Observados:Oferecer _EmpateAbrir jogoAbrir ficheiro de somLivro de aberturasPPingPontuação do _JogadorPreferênciasPromoçãoPyChess - Connect to Internet ChessPyChess - Conexão ao Xadrez na Internet: FICSPyChess não conseguiu conexão com o engine, provavelmente porque já morreu. Você pode tentar iniciar um novo jogo com o engine, ou tentar jogar com outra pessoa.PyChess.py:DRainhaTPontuadoPontuaçãoTorreRodada:Guardar o JogoGravar jogo _comoJogo SalvoPontosSeleccione um ficheiro de som...Enviar pesquisaMostrar _ChatShredderLinuxChess:Posição simples de XadrezSítio:Modo _EspiãoGastoA conexão está quebrada - obtive mensagem "fim de ficheiro"O erro foi: %sO ficheiro já existe em '%s'. Se o substituir, o seu conteúdo será re-escrito.O jogo terminou empatadoEste jogo foi abortadoEste jogo foi adiadoEste jogo foi terminadoTempoTipoIncapaz de aceitar %sDesconhecidoSem PontuaçãoUsar _analisadorusar o _analisador invertidoBrancasBrancas têm uma nova peça na posição: %sAs brancas deviam fazer uma tempestade de peões na esquerdaAs brancas deviam fazer uma tempestade de peões na direitaVocê não tem direitos necessários para gravar o ficheiro. Por favor assegure seus direitos de gravação e tente novamente.Enviou uma oferta de empateO seu adversário pede-lhe que se apresse!O seu oponente não está sem tempo._Aceitar_Acções_Chamar bandeira_JogoAjuda_Esconder as tabs quando somente um jogo está abertoModo A_juda_Carregar jogo_Sair_Vusualizador de Log_Nome_Novo Jogo_Movimentos Observados:_Palavra-chave:Substituir_Girar tabuleiroGravar Jogo_Iniciar o Jogo_Usar sons no PyChess_Vistacaptura materialfaz roquedefende %sempatatroca materialgnuchess:http://pt.wikipedia.org/wiki/Xadrezhttp://en.wikipedia.org/wiki/Regras_de_xadrezmelhora a segurança do Reiaumenta a pressão em %sdá matemove uma Torre para uma coluna abertamove uma Torre para uma coluna semi-abertamove o Bispo para o fianqueto: %sTotal no onlinepromove o Peão a %spõe o adversário em chequesacrifica materialmelhora ligeiramente a segurança do Reirecupera materialpychess-0.12.2/lang/da/0000755000175000017470000000000012653231274015062 5ustar tamasusers00000000000000pychess-0.12.2/lang/da/LC_MESSAGES/0000755000175000017470000000000012653231274016647 5ustar tamasusers00000000000000pychess-0.12.2/lang/da/LC_MESSAGES/pychess.po0000644000175000017470000027344612653216207020704 0ustar tamasusers00000000000000# SOME DESCRIPTIVE TITLE. # Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER # This file is distributed under the same license as the pychess package. # # Translators: msgid "" msgstr "" "Project-Id-Version: pychess\n" "Report-Msgid-Bugs-To: \n" "POT-Creation-Date: 2016-01-27 13:28+0100\n" "PO-Revision-Date: 2016-01-28 08:56+0000\n" "Last-Translator: slav0nic \n" "Language-Team: Danish (http://www.transifex.com/gbtami/pychess/language/da/)\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" "Language: da\n" "Plural-Forms: nplurals=2; plural=(n != 1);\n" # "Plural-Forms: nplurals=INTEGER; plural=EXPRESSION;\n" #: glade/analyze_game.glade:22 msgid "Analyze game" msgstr "" #: glade/analyze_game.glade:87 msgid "Use analyzer:" msgstr "" #: glade/analyze_game.glade:122 glade/PyChess.glade:2054 msgid "Maximum analysis time in seconds:" msgstr "" #: glade/analyze_game.glade:163 msgid "" "If the analyzer finds a move where the evaluation difference (the difference" " between the evaluation for the move it thinks is the best move and the " "evaluation for the move made in the game) exceeds this value, it will add an" " annotation for that move (consisting of the engine's Principal Variation " "for the move) to the Annotation panel" msgstr "" #: glade/analyze_game.glade:164 msgid "Variation annotation creation threshold in centipawns:" msgstr "" #: glade/analyze_game.glade:198 msgid "Analyze from current position" msgstr "" #: glade/analyze_game.glade:214 msgid "Add threatening variation lines " msgstr "" #: glade/analyze_game.glade:229 glade/PyChess.glade:1459 msgid "Colorize analyzed moves" msgstr "" #: glade/analyze_game.glade:244 glade/PyChess.glade:1495 msgid "Show evaluation values" msgstr "" #: glade/discovererDialog.glade:18 msgid "PyChess is discovering your engines. Please wait." msgstr "PyChess finder dine motorer. Vent venligst." #: glade/discovererDialog.glade:77 msgid "PyChess.py:" msgstr "PyChess.py:" #: glade/discovererDialog.glade:89 msgid "ShredderLinuxChess:" msgstr "ShredderLinuxChess:" #: glade/discovererDialog.glade:101 msgid "gnuchess:" msgstr "gnuchess:" #: glade/fics_logon.glade:7 msgid "PyChess - Connect to Internet Chess" msgstr "PyChess - Forbind til internetskak" #: glade/fics_logon.glade:47 msgid "Connect to the Free Online Chess Server" msgstr "Forbind dig til den frie online skak server - FICS" #: glade/fics_logon.glade:129 glade/taskers.glade:394 msgid "_Password:" msgstr "_Adgangskode:" #: glade/fics_logon.glade:143 msgid "_Name:" msgstr "_Navn:" #: glade/fics_logon.glade:191 msgid "Log on as _Guest" msgstr "Log på som_Gæst" #: glade/fics_logon.glade:227 msgid "Host:" msgstr "" #: glade/fics_logon.glade:259 msgid "Po_rts:" msgstr "Po_rte" #: glade/fics_logon.glade:271 msgid "Auto login on startup" msgstr "" #: glade/fics_logon.glade:385 msgid "S_ign up" msgstr "Opret _bruger" #: glade/fics_lounge.glade:35 msgid "Challenge: " msgstr "Udfordring: " #: glade/fics_lounge.glade:97 msgid "Send Challenge" msgstr "Send Udfordring" #: glade/fics_lounge.glade:133 msgid "Challenge:" msgstr "Udfordring:" #: glade/fics_lounge.glade:327 glade/fics_lounge.glade:2078 msgid "Lightning:" msgstr "Lynskak:" #: glade/fics_lounge.glade:351 glade/fics_lounge.glade:2102 msgid "Standard:" msgstr "Standard:" #: glade/fics_lounge.glade:375 glade/fics_lounge.glade:2126 msgid "Blitz:" msgstr "Hurtig:" #: glade/fics_lounge.glade:400 msgid "2 min, Fischer Random, Black" msgstr "2 min, Fischer Random, Sort" #: glade/fics_lounge.glade:422 msgid "10 min + 6 sec/move, White" msgstr "10 min + 6 sek/træk, Hvid" #: glade/fics_lounge.glade:444 msgid "5 min" msgstr "5 min" #: glade/fics_lounge.glade:480 msgid "Edit Seek" msgstr "Redigér" #: glade/fics_lounge.glade:584 lib/pychess/ic/ICLounge.py:2208 #: lib/pychess/ic/__init__.py:101 lib/pychess/Utils/GameModel.py:206 msgid "Untimed" msgstr "Uden tidsbegrænsning" #: glade/fics_lounge.glade:637 msgid "Minutes: " msgstr "Minutter: " #: glade/fics_lounge.glade:665 msgid " Gain: " msgstr " Ekstra: " #: glade/fics_lounge.glade:703 msgid "Time control: " msgstr "Tidskontrol: " #: glade/fics_lounge.glade:716 lib/pychess/ic/FICSObjects.py:56 #: lib/pychess/ic/ICLounge.py:1137 lib/pychess/ic/ICLounge.py:2208 #: lib/pychess/ic/__init__.py:99 msgid "Standard" msgstr "Standard" #: glade/fics_lounge.glade:757 glade/newInOut.glade:633 msgid "Time Control" msgstr "Tidskontrol" #: glade/fics_lounge.glade:814 glade/fics_lounge.glade:1346 msgid "Don't care" msgstr "Ligeglad" #: glade/fics_lounge.glade:879 msgid "Your strength: " msgstr "Din styrke: " #: glade/fics_lounge.glade:921 msgid "(Blitz)" msgstr "(Hurtig)" #: glade/fics_lounge.glade:951 msgid "Opponent's strength: " msgstr "Modstanderstyrke: " #: glade/fics_lounge.glade:1055 msgid "" "When this button is in the \"locked\" state, the relationship\n" "between \"Opponent's strength\" and \"Your strength\" will be\n" "preserved when \n" "a) your rating for the type of game sought has changed\n" "b) you change the variant or the time control" msgstr "Når knappen er \"låst\" er forholdet\nmellem \"Modstanderstyrke\" og \"Din styrke\"\nholdt ens, når\na) din rating ændrer sig i spiltypen\nb) du ændrer varianten eller tidskontrollen" #: glade/fics_lounge.glade:1095 msgid "Center:" msgstr "Center:" #: glade/fics_lounge.glade:1134 msgid "1200" msgstr "1200" #: glade/fics_lounge.glade:1188 msgid "Tolerance:" msgstr "Tolerance:" #: glade/fics_lounge.glade:1243 lib/pychess/ic/ICLounge.py:2452 msgid "Hide" msgstr "Skjul" #: glade/fics_lounge.glade:1289 msgid "Opponent Strength" msgstr "Modstanderstyrke" #: glade/fics_lounge.glade:1386 lib/pychess/Database/gamelist.py:40 #: lib/pychess/ic/ICLounge.py:1357 lib/pychess/ic/ICLounge.py:1557 #: lib/pychess/ic/ICLounge.py:2108 lib/pychess/Utils/repr.py:10 #: lib/pychess/widgets/ChessClock.py:40 #: lib/pychess/widgets/TaskerManager.py:153 msgid "White" msgstr "Hvid" #: glade/fics_lounge.glade:1414 lib/pychess/Database/gamelist.py:40 #: lib/pychess/ic/ICLounge.py:1358 lib/pychess/ic/ICLounge.py:1558 #: lib/pychess/ic/ICLounge.py:2110 lib/pychess/Utils/repr.py:10 #: lib/pychess/widgets/ChessClock.py:40 #: lib/pychess/widgets/TaskerManager.py:154 msgid "Black" msgstr "Sort" #: glade/fics_lounge.glade:1453 msgid "Your Color" msgstr "Din farve" #: glade/fics_lounge.glade:1512 msgid "Play normal chess rules" msgstr "Spil med normale regler" #: glade/fics_lounge.glade:1552 msgid "Play" msgstr "Afspil" #: glade/fics_lounge.glade:1618 glade/newInOut.glade:833 msgid "Chess Variant" msgstr "Skakvariant" #: glade/fics_lounge.glade:1676 msgid "Rated game" msgstr "Rated spil" #: glade/fics_lounge.glade:1692 msgid "Manually accept opponent" msgstr "Acceptér modstandere manuelt" #: glade/fics_lounge.glade:1722 msgid "Options" msgstr "Valgmuligheder" #: glade/fics_lounge.glade:1750 msgid "PyChess - Internet Chess: FICS" msgstr "PyChess - Internet Skak: FICS" #: glade/fics_lounge.glade:1823 msgid "_Clear Seeks" msgstr "_Nulstil alle" #: glade/fics_lounge.glade:1847 msgid "_Accept" msgstr "_Acceptér" #: glade/fics_lounge.glade:1871 msgid "_Decline" msgstr "" #: glade/fics_lounge.glade:2151 msgid "2 min, Fischer Random, 1800↓, Black" msgstr "2 min, Fischer Random, 1800↓, Sort" #: glade/fics_lounge.glade:2172 msgid "10 min + 6 sec/move, 1400↑, White" msgstr "10 min + 6 sek/træk, 1400↑, Hvid" #: glade/fics_lounge.glade:2193 msgid "5 min, 1200-1800, Manual" msgstr "5 min, 1200-1800, Manuel" #: glade/fics_lounge.glade:2247 msgid "Send all seeks" msgstr "" #: glade/fics_lounge.glade:2301 msgid "Send seek" msgstr "Send opfordring" #: glade/fics_lounge.glade:2337 msgid "Create Seek" msgstr "Ny Opfordring" #: glade/fics_lounge.glade:2353 msgid "_Seeks / Challenges" msgstr "_Op- og Udfordringer" #: glade/fics_lounge.glade:2374 lib/pychess/ic/ICLounge.py:472 #: lib/pychess/ic/ICLounge.py:670 lib/pychess/ic/ICLounge.py:1357 #: lib/pychess/ic/ICLounge.py:1358 msgid "Rating" msgstr "Rating" #: glade/fics_lounge.glade:2399 msgid "Time" msgstr "Tid" #: glade/fics_lounge.glade:2419 msgid "Seek _Graph" msgstr "_Grafvisning" #: glade/fics_lounge.glade:2444 msgid "0 Players Ready" msgstr "0 Spillere Klar" #: glade/fics_lounge.glade:2496 msgid "Challenge" msgstr "Udfordring" #: glade/fics_lounge.glade:2549 glade/fics_lounge.glade:2735 msgid "Observe" msgstr "" #: glade/fics_lounge.glade:2602 msgid "Start Private Chat" msgstr "" #: glade/fics_lounge.glade:2659 msgid "_Player List" msgstr "S_piller liste" #: glade/fics_lounge.glade:2792 msgid "_Game List" msgstr "_Spilliste" #: glade/fics_lounge.glade:2847 msgid "_My games" msgstr "" #: glade/fics_lounge.glade:2904 glade/PyChess.glade:841 msgid "Offer _Resume" msgstr "Tilbyd genopta_gelse" #: glade/fics_lounge.glade:2962 glade/PyChess.glade:880 msgid "R_esign" msgstr "Opgi_v" #: glade/fics_lounge.glade:3006 glade/PyChess.glade:820 msgid "Offer _Draw" msgstr "Tilbyd _remis" #: glade/fics_lounge.glade:3050 msgid "Offer A_bort" msgstr "" #: glade/fics_lounge.glade:3107 msgid "Pre_view" msgstr "Forhånds_visning" #: glade/fics_lounge.glade:3151 msgid "Examine" msgstr "" #: glade/fics_lounge.glade:3208 msgid "_Archived" msgstr "" #: glade/fics_lounge.glade:3313 msgid "News" msgstr "Nyheder" #: glade/fics_lounge.glade:3345 msgid "Show Console" msgstr "" #: glade/fics_lounge.glade:3359 msgid "Show _Chat" msgstr "Vis _Chat" #: glade/fics_lounge.glade:3373 msgid "_Log Off" msgstr "_Log af" #: glade/fics_lounge.glade:3393 msgid "Tools" msgstr "Muligheder" #: glade/fics_lounge.glade:3428 msgid "Asymmetric Random " msgstr "" #: glade/findbar.glade:6 msgid "window1" msgstr "window1" #: glade/findbar.glade:21 msgid "0 of 0" msgstr "0 af 0" #: glade/findbar.glade:66 msgid "Search:" msgstr "Søg:" #: glade/findbar.glade:134 msgid "_Previous" msgstr "_Forrige" #: glade/findbar.glade:192 msgid "_Next" msgstr "_Næste" #: glade/newInOut.glade:45 lib/pychess/widgets/newGameDialog.py:445 msgid "New Game" msgstr "Nyt spil" #: glade/newInOut.glade:108 msgid "_Start Game" msgstr "_Start spil" #: glade/newInOut.glade:130 msgid "Copy FEN" msgstr "" #: glade/newInOut.glade:143 msgid "Clear" msgstr "" #: glade/newInOut.glade:156 msgid "Paste FEN" msgstr "" #: glade/newInOut.glade:257 msgid "_Black player:" msgstr "_Sort spiller:" #: glade/newInOut.glade:274 msgid "_White player:" msgstr "_Hvid spiller:" #: glade/newInOut.glade:385 msgid "Players" msgstr "Spillere" #: glade/newInOut.glade:436 msgid "_Untimed" msgstr "" #: glade/newInOut.glade:475 msgid "Blitz: 5 min" msgstr "" #: glade/newInOut.glade:526 msgid "Rapid: 15 min + 10 sec/move" msgstr "" #: glade/newInOut.glade:575 msgid "Normal: 40 min + 15 sec/move" msgstr "" #: glade/newInOut.glade:684 msgid "_Play Normal chess" msgstr "S_pil normal skak" #: glade/newInOut.glade:724 msgid "Play Fischer Random chess" msgstr "Spil Fischer Random skak" #: glade/newInOut.glade:774 msgid "Play Losers chess" msgstr "" #: glade/newInOut.glade:919 msgid "Open Game" msgstr "Åben spil" #: glade/newInOut.glade:1162 msgid "Initial Position" msgstr "Udgangsposition" #: glade/newInOut.glade:1219 msgid "Enter Game Notation" msgstr "Indtast spilnotation" #: glade/newInOut.glade:1314 msgid "Halfmove clock" msgstr "" #: glade/newInOut.glade:1327 msgid "En passant line" msgstr "" #: glade/newInOut.glade:1339 msgid "Side to move" msgstr "" #: glade/newInOut.glade:1351 msgid "Move number" msgstr "" #: glade/newInOut.glade:1361 msgid "Black O-O" msgstr "" #: glade/newInOut.glade:1375 msgid "Black O-O-O" msgstr "" #: glade/newInOut.glade:1389 msgid "White O-O-O" msgstr "" #: glade/newInOut.glade:1403 msgid "White O-O" msgstr "" #: glade/promotion.glade:7 msgid "Promotion" msgstr "Forfremmelse" #: glade/promotion.glade:49 lib/pychess/Utils/repr.py:12 msgid "Queen" msgstr "Dronning" #: glade/promotion.glade:95 lib/pychess/Utils/repr.py:12 msgid "Rook" msgstr "Tårn" #: glade/promotion.glade:141 lib/pychess/Utils/repr.py:12 msgid "Bishop" msgstr "Løber" #: glade/promotion.glade:187 lib/pychess/Utils/repr.py:12 msgid "Knight" msgstr "Springer" #: glade/promotion.glade:233 lib/pychess/Utils/repr.py:12 msgid "King" msgstr "Konge" #: glade/promotion.glade:265 msgid "Promote pawn to what?" msgstr "Hvad vil du forfremme din bonde til?" #: glade/PyChess.glade:9 msgid "Chess client" msgstr "" #: glade/PyChess.glade:44 msgid "Game information" msgstr "Spil information" #: glade/PyChess.glade:164 msgid "Event:" msgstr "Sammenhæng:" #: glade/PyChess.glade:178 msgid "Site:" msgstr "Sted:" #: glade/PyChess.glade:204 msgid "Round:" msgstr "Runde:" #: glade/PyChess.glade:237 msgid "White:" msgstr "" #: glade/PyChess.glade:249 msgid "Black:" msgstr "" #: glade/PyChess.glade:302 msgid "Game data" msgstr "Spil data" #: glade/PyChess.glade:357 msgid "Date of game" msgstr "Spil dato" #: glade/PyChess.glade:495 msgid "_Game" msgstr "_Spil" #: glade/PyChess.glade:502 msgid "_New Game" msgstr "_Nyt spil" #: glade/PyChess.glade:515 msgid "Play _Internet Chess" msgstr "Spil _Internetskak" #: glade/PyChess.glade:534 msgid "_Load Game" msgstr "_Åbn spil" #: glade/PyChess.glade:550 msgid "Load _Recent Game" msgstr "" #: glade/PyChess.glade:558 msgid "Open _Database" msgstr "" #: glade/PyChess.glade:569 lib/pychess/widgets/newGameDialog.py:615 msgid "Setup Position" msgstr "Set position op" #: glade/PyChess.glade:579 msgid "Enter Game _Notation" msgstr "Indtast spil_notation" #: glade/PyChess.glade:592 msgid "_Save Game" msgstr "_Gem spil" #: glade/PyChess.glade:606 msgid "Save Game _As" msgstr "Gem spil _som" #: glade/PyChess.glade:624 msgid "Share Game" msgstr "" #: glade/PyChess.glade:630 msgid "_Export Position" msgstr "" #: glade/PyChess.glade:644 msgid "_Analyze Game" msgstr "" #: glade/PyChess.glade:678 msgid "Player _Rating" msgstr "Spiller _Rating" #: glade/PyChess.glade:723 msgid "_Edit" msgstr "" #: glade/PyChess.glade:734 msgid "_Copy PGN" msgstr "" #: glade/PyChess.glade:746 msgid "_Copy FEN" msgstr "" #: glade/PyChess.glade:763 msgid "_Engines" msgstr "" #: glade/PyChess.glade:789 msgid "_Actions" msgstr "_Handlinger" #: glade/PyChess.glade:800 msgid "Offer _Abort" msgstr "Tilbyd _afbrydelse" #: glade/PyChess.glade:810 msgid "Offer Ad_journment" msgstr "Tilbyd uds_ættelse" #: glade/PyChess.glade:831 msgid "Offer _Pause" msgstr "Tilbyd _pause" #: glade/PyChess.glade:847 msgid "Offer _Undo" msgstr "Spørg om lov at fortr_yde" #: glade/PyChess.glade:870 msgid "_Call Flag" msgstr "_Kræv sejr ved tid" #: glade/PyChess.glade:890 msgid "Ask to _Move" msgstr "Bed om at _rykke" #: glade/PyChess.glade:905 msgid "Auto Call _Flag" msgstr "" #: glade/PyChess.glade:918 msgid "_View" msgstr "_Vis" #: glade/PyChess.glade:925 msgid "_Rotate Board" msgstr "_Rotér brædt" #: glade/PyChess.glade:939 msgid "_Fullscreen" msgstr "_Fuldskærm" #: glade/PyChess.glade:952 msgid "Leave _Fullscreen" msgstr "Forlad _fuldskærm" #: glade/PyChess.glade:969 msgid "_Show Sidepanels" msgstr "_Vis sidepaneler" #: glade/PyChess.glade:980 msgid "_Log Viewer" msgstr "_Logviser" #: glade/PyChess.glade:997 msgid "_Hint mode" msgstr "_Hint mode" #: glade/PyChess.glade:1009 msgid "Sp_y mode" msgstr "S_pion mode" #: glade/PyChess.glade:1024 msgid "_Help" msgstr "_Hjælp" #: glade/PyChess.glade:1034 msgid "About Chess" msgstr "Om skak" #: glade/PyChess.glade:1043 msgid "How to Play" msgstr "Hvordan man spiller" #: glade/PyChess.glade:1052 msgid "Translate PyChess" msgstr "Oversæt PyChess" #: glade/PyChess.glade:1058 msgid "Tip of the Day" msgstr "Dagens tip" #: glade/PyChess.glade:1153 msgid "Default" msgstr "" #: glade/PyChess.glade:1156 msgid "Knights" msgstr "" #: glade/PyChess.glade:1167 lib/pychess/widgets/preferencesDialog.py:349 msgid "Beep" msgstr "Bip" #: glade/PyChess.glade:1170 lib/pychess/widgets/preferencesDialog.py:350 msgid "Select sound file..." msgstr "Vælg lydfil..." #: glade/PyChess.glade:1173 lib/pychess/widgets/preferencesDialog.py:348 msgid "No sound" msgstr "Ingen lyd" #: glade/PyChess.glade:1180 msgid "Preferences" msgstr "Præferencer" #: glade/PyChess.glade:1218 msgid "The displayed name of the first human player, e.g., John." msgstr "Navnet på den første spiller, f.eks. Jens." #: glade/PyChess.glade:1230 msgid "Name of _first human player:" msgstr "Navnet på den _første menneskelige spiller:" #: glade/PyChess.glade:1259 msgid "The displayed name of the guest player, e.g., Mary." msgstr "Navnet på gæstespilleren, f.eks. Kirsten." #: glade/PyChess.glade:1271 msgid "Name of s_econd human player:" msgstr "Navnet på den and_en menneskelige spiller:" #: glade/PyChess.glade:1307 msgid "_Hide tabs when only one game is open" msgstr "_Skjul faneblade, når kun et spil er åbent" #: glade/PyChess.glade:1312 msgid "" "If set, this hides the tab in the top of the playing window, when it is not " "needed." msgstr "Dette skjuler fanebladet i toppen af vinduet, når der ikke er brug for det." #: glade/PyChess.glade:1326 msgid "_Use main app closer [x] to close all games" msgstr "" #: glade/PyChess.glade:1331 msgid "" "If set, clicking on main application window closer first time it closes all " "games." msgstr "" #: glade/PyChess.glade:1345 msgid "Auto _rotate board to current human player" msgstr "Automatisk _rotér brættet til den spillende menneskelige spiller" #: glade/PyChess.glade:1350 msgid "" "If set, the board will turn after each move, to show the natural view for " "the current player." msgstr "Dette drejer brættet efter hvert træk, så det vises naturligt for den spiller, der skal trække." #: glade/PyChess.glade:1364 msgid "Auto _promote to queen" msgstr "" #: glade/PyChess.glade:1369 msgid "If set, pawn promotes to queen without promotion dialog selection." msgstr "" #: glade/PyChess.glade:1383 msgid "Face _to Face display mode" msgstr "Ansigt _til ansigts visning" #: glade/PyChess.glade:1388 msgid "" "If set, the black pieces will be head down, suitable for playing against " "friends on mobile devices." msgstr "Dette spejler de sorte brikker på en måde, der gør det nemt at spille med venner på tavler." #: glade/PyChess.glade:1402 msgid "Sho_w cords" msgstr "V_is koordinater" #: glade/PyChess.glade:1407 msgid "" "If set, the playing board will display labels and ranks for each chess " "field. These are usable in chess notation." msgstr "Dette viser række- og kolonnenavne på skakbrættet. Det er brugbart for skaknotation." #: glade/PyChess.glade:1421 msgid "Show _captured pieces" msgstr "" #: glade/PyChess.glade:1426 msgid "If set, the captured figurines will be shown next to the board." msgstr "" #: glade/PyChess.glade:1440 msgid "Prefer figures in _notation" msgstr "Foretræk figurer i _notationen" #: glade/PyChess.glade:1445 msgid "" "If set, PyChess will use figures to express moved pieces, rather than " "uppercase letters." msgstr "Dette bruger figurer, når skaktræk udtrykkes, i steddet for store bogstaver." #: glade/PyChess.glade:1464 msgid "If set, PyChess will colorize suboptimal analyzed moves with red." msgstr "" #: glade/PyChess.glade:1477 msgid "Show elapsed move times" msgstr "" #: glade/PyChess.glade:1482 msgid "If set, the elapsed time that a player used for the move is shown." msgstr "" #: glade/PyChess.glade:1500 msgid "If set, the hint analyzer engine evaluation value is shown." msgstr "" #: glade/PyChess.glade:1526 msgid "General Options" msgstr "" #: glade/PyChess.glade:1560 msgid "F_ull board animation" msgstr "F_uld brætanimation" #: glade/PyChess.glade:1565 msgid "Animate pieces, board rotation and more. Use this on fast machines." msgstr "Animér brikker, brætrotation og mere. Anbefalet." #: glade/PyChess.glade:1579 msgid "Only animate _moves" msgstr "Animér kun _træk" #: glade/PyChess.glade:1584 msgid "Only animate piece moves." msgstr "Animér kun brikkerne." #: glade/PyChess.glade:1599 msgid "No _animation" msgstr "Ingen _animation" #: glade/PyChess.glade:1604 msgid "Never use animation. Use this on slow machines." msgstr "Brug aldrig animation. Anbefalet for langsomme maskiner." #: glade/PyChess.glade:1632 msgid "Animation" msgstr "Animation" #: glade/PyChess.glade:1651 msgid "_General" msgstr "_Generelt" #: glade/PyChess.glade:1692 msgid "Use opening _book" msgstr "" #: glade/PyChess.glade:1697 msgid "If set, PyChess will suggest best opening moves on hint panel." msgstr "" #: glade/PyChess.glade:1724 msgid "Polyglot book file:" msgstr "" #: glade/PyChess.glade:1768 msgid "Use _local tablebases" msgstr "" #: glade/PyChess.glade:1773 msgid "" "If set, PyChess will show game results for different moves in positions containing 6 or less pieces.\n" "You can download tablebase files from:\n" "http://www.olympuschess.com/egtb/gaviota/" msgstr "" #: glade/PyChess.glade:1803 msgid "Gaviota TB path:" msgstr "" #: glade/PyChess.glade:1843 msgid "Use _online tablebases" msgstr "" #: glade/PyChess.glade:1848 msgid "" "If set, PyChess will show game results for different moves in positions containing 6 or less pieces.\n" "It will search positions from http://www.k4it.de/" msgstr "" #: glade/PyChess.glade:1870 msgid "Opening, endgame" msgstr "" #: glade/PyChess.glade:1904 msgid "Use _analyzer" msgstr "Brug _analysator" #: glade/PyChess.glade:1946 msgid "" "The analyzer will run in the background and analyze the game. This is " "necessary for the hint mode to work" msgstr "" #: glade/PyChess.glade:1978 msgid "Use _inverted analyzer" msgstr "Brug _omvendt analysator" #: glade/PyChess.glade:2020 msgid "" "The inverse analyzer will analyze the game as if your opponent was to move. " "This is necessary for the spy mode to work" msgstr "" #: glade/PyChess.glade:2096 msgid "Analyzing" msgstr "Analyse" #: glade/PyChess.glade:2118 msgid "_Hints" msgstr "" #: glade/PyChess.glade:2263 msgid "Uninstall" msgstr "Afinstallér" #: glade/PyChess.glade:2317 msgid "Ac_tive" msgstr "Ak_tiv" #: glade/PyChess.glade:2367 msgid "Installed Sidepanels" msgstr "Installerede sidepaneler" #: glade/PyChess.glade:2382 msgid "Side_panels" msgstr "Side_paneler" #: glade/PyChess.glade:2440 msgid "Light Squares :" msgstr "" #: glade/PyChess.glade:2479 msgid "Dark Squares :" msgstr "" #: glade/PyChess.glade:2515 msgid "Reset Default Colours" msgstr "" #: glade/PyChess.glade:2551 msgid "Board Colours" msgstr "" #: glade/PyChess.glade:2610 msgid "Chess Sets" msgstr "" #: glade/PyChess.glade:2634 msgid "Themes" msgstr "" #: glade/PyChess.glade:2659 msgid "_Use sounds in PyChess" msgstr "_Brug lyde i PyChess" #: glade/PyChess.glade:2982 msgid "A player _checks:" msgstr "En spiller sætter _skak:" #: glade/PyChess.glade:2997 msgid "A player _moves:" msgstr "En spiller _trækker:" #: glade/PyChess.glade:3010 msgid "Game is _drawn:" msgstr "Spillet ender i _remis:" #: glade/PyChess.glade:3025 msgid "Game is _lost:" msgstr "Spillet _tabes:" #: glade/PyChess.glade:3040 msgid "Game is _won:" msgstr "Spillet _vindes:" #: glade/PyChess.glade:3055 msgid "A player c_aptures:" msgstr "En brik _slås:" #: glade/PyChess.glade:3084 msgid "Game is _set-up:" msgstr "Spillet er _sat op:" #: glade/PyChess.glade:3136 msgid "_Observed moves:" msgstr "_Observeret spiller rykker:" #: glade/PyChess.glade:3151 msgid "Observed _ends:" msgstr "Observeret spil _slutter:" #: glade/PyChess.glade:3265 msgid "Short on _time:" msgstr "" #: glade/PyChess.glade:3317 msgid "_Invalid move:" msgstr "" #: glade/PyChess.glade:3369 msgid "Activate alarm when _remaining sec is:" msgstr "" #: glade/PyChess.glade:3416 msgid "Play Sound When..." msgstr "Spil lyd når..." #: glade/PyChess.glade:3438 msgid "_Sounds" msgstr "_Lyde" #: glade/PyChess.glade:3463 msgid "_Auto save finished games" msgstr "" #: glade/PyChess.glade:3497 msgid "Save files to:" msgstr "" #: glade/PyChess.glade:3525 msgid "Use name format:" msgstr "" #: glade/PyChess.glade:3569 msgid "Names: #n1, #n2" msgstr "" #: glade/PyChess.glade:3582 msgid "Year, month, day: #y, #m, #d" msgstr "" #: glade/PyChess.glade:3619 msgid "Save elapsed move _times" msgstr "" #: glade/PyChess.glade:3644 msgid "Save analyzing engine _evaluation values" msgstr "" #: glade/PyChess.glade:3669 msgid "Save _own games only" msgstr "" #: glade/PyChess.glade:3698 msgid "Save" msgstr "" #: glade/PyChess.glade:3728 msgid "uci" msgstr "" #: glade/PyChess.glade:3731 msgid "xboard" msgstr "" #: glade/PyChess.glade:3739 msgid "Manage engines" msgstr "" #: glade/PyChess.glade:3837 msgid "Command:" msgstr "" #: glade/PyChess.glade:3851 msgid "Protocol:" msgstr "" #: glade/PyChess.glade:3865 msgid "Parameters:" msgstr "" #: glade/PyChess.glade:3878 msgid "Command line parameters needed by the engine." msgstr "" #: glade/PyChess.glade:3903 msgid "" "Engines use uci or xboard communication protocol to talk to the GUI.\n" "If it can use both you can set here which one you like." msgstr "" #: glade/PyChess.glade:3929 msgid "Working directory:" msgstr "" #: glade/PyChess.glade:3942 msgid "The directory where the engine will be started from." msgstr "" #: glade/saveGamesDialog.glade:7 msgid "Quit PyChess" msgstr "Afslut PyChess" #: glade/saveGamesDialog.glade:24 lib/pychess/widgets/ionest.py:424 msgid "Close _without Saving" msgstr "Luk _uden at gemme" #: glade/saveGamesDialog.glade:83 msgid "_Save %d documents" msgstr "_Gem %d dokumenter" #: glade/saveGamesDialog.glade:141 msgid "" "There are %d games with unsaved moves. Save changes before " "closing?" msgstr "Der er %d spil med ugemte træk. Gem ændringerne før du slutter?" #: glade/saveGamesDialog.glade:161 msgid "Select the games you want to save:" msgstr "Vælg de spil du vil gemme:" #: glade/saveGamesDialog.glade:204 msgid "If you don't save, new changes to your games will be permanently lost." msgstr "Hvis du ikke gemmer, vil nye ændringer til spillene blive tabt." #: glade/taskers.glade:126 msgid "_Opponent:" msgstr "M_odstander:" #: glade/taskers.glade:154 msgid "_Your Color:" msgstr "_Din farve:" #: glade/taskers.glade:219 msgid "_Start Game" msgstr "_Start spil" #: glade/taskers.glade:338 msgid "Log on as G_uest" msgstr "Log på som g_æst" #: glade/taskers.glade:410 msgid "Ha_ndle:" msgstr "Brugern_avn:" #: glade/taskers.glade:469 msgid "_Connect to server" msgstr "" #: glade/tipoftheday.glade:7 msgid "Tip Of The day" msgstr "Dagens tip" #: glade/tipoftheday.glade:62 msgid "Show tips at startup" msgstr "Vis tips ved start" #: lib/pychess/Main.py:302 msgid "http://en.wikipedia.org/wiki/Chess" msgstr "http://da.wikipedia.org/wiki/Skak" #: lib/pychess/Main.py:305 msgid "http://en.wikipedia.org/wiki/Rules_of_chess" msgstr "http://da.wikipedia.org/wiki/Skak#Spilleregler" #: lib/pychess/Main.py:370 lib/pychess/widgets/gamenanny.py:80 msgid "Welcome" msgstr "Velkommen" #: lib/pychess/Database/gamelist.py:40 msgid "Id" msgstr "" #: lib/pychess/Database/gamelist.py:40 msgid "W Elo" msgstr "" #: lib/pychess/Database/gamelist.py:40 msgid "B Elo" msgstr "" #: lib/pychess/Database/gamelist.py:41 msgid "Result" msgstr "" #: lib/pychess/Database/gamelist.py:41 msgid "Event" msgstr "" #: lib/pychess/Database/gamelist.py:41 msgid "Site" msgstr "" #: lib/pychess/Database/gamelist.py:41 msgid "Round" msgstr "" #: lib/pychess/Database/gamelist.py:41 msgid "Date" msgstr "" #: lib/pychess/Database/gamelist.py:41 msgid "ECO" msgstr "" #: lib/pychess/Database/gamelist.py:62 msgid "PyChess Game Database" msgstr "" #: lib/pychess/Database/PgnImport.py:188 #, python-format msgid "The game #%s can't be loaded, because of an error parsing FEN" msgstr "" #: lib/pychess/ic/FICSConnection.py:139 msgid "The connection was broken - got \"end of file\" message" msgstr "Forbindelsen blev afbrudt. Mødte slutningen af strømmen" #: lib/pychess/ic/FICSConnection.py:140 #, python-format msgid "'%s' is not a registered name" msgstr "'%s' er ikke et registreret navn" #: lib/pychess/ic/FICSConnection.py:141 msgid "" "The entered password was invalid.\n" "If you forgot your password, go to http://www.freechess.org/password to request a new one over email." msgstr "" #: lib/pychess/ic/FICSConnection.py:145 #, python-format msgid "Sorry '%s' is already logged in" msgstr "" #: lib/pychess/ic/FICSConnection.py:146 #, python-format msgid "'%s' is a registered name. If it is yours, type the password." msgstr "" #: lib/pychess/ic/FICSConnection.py:147 msgid "" "Due to abuse problems, guest connections have been prevented.\n" "You can still register on http://www.freechess.org" msgstr "" #: lib/pychess/ic/FICSConnection.py:166 msgid "Connecting to server" msgstr "Tilslutter til server" #: lib/pychess/ic/FICSConnection.py:181 msgid "Logging on to server" msgstr "Logger ind på serveren" #: lib/pychess/ic/FICSConnection.py:239 msgid "Setting up environment" msgstr "Sætter det sidste op" #: lib/pychess/ic/FICSObjects.py:35 lib/pychess/ic/FICSObjects.py:47 #, python-format msgid "%(player)s is %(status)s" msgstr "" #: lib/pychess/ic/FICSObjects.py:46 msgid "not playing" msgstr "" #: lib/pychess/ic/FICSObjects.py:54 lib/pychess/ic/ICLounge.py:1136 #: lib/pychess/ic/ICLounge.py:2209 lib/pychess/ic/__init__.py:98 #: lib/pychess/widgets/newGameDialog.py:153 msgid "Blitz" msgstr "Hurtig" #: lib/pychess/ic/FICSObjects.py:58 lib/pychess/ic/ICLounge.py:1137 #: lib/pychess/ic/ICLounge.py:2209 lib/pychess/ic/__init__.py:100 msgid "Lightning" msgstr "Lynskak" #: lib/pychess/ic/FICSObjects.py:60 lib/pychess/Variants/atomic.py:15 msgid "Atomic" msgstr "" #: lib/pychess/ic/FICSObjects.py:62 lib/pychess/Variants/bughouse.py:9 msgid "Bughouse" msgstr "" #: lib/pychess/ic/FICSObjects.py:64 lib/pychess/Variants/crazyhouse.py:9 msgid "Crazyhouse" msgstr "" #: lib/pychess/ic/FICSObjects.py:66 lib/pychess/Variants/losers.py:9 msgid "Losers" msgstr "Anti" #: lib/pychess/ic/FICSObjects.py:68 lib/pychess/Variants/suicide.py:12 msgid "Suicide" msgstr "" #: lib/pychess/ic/FICSObjects.py:70 lib/pychess/ic/__init__.py:129 msgid "Wild" msgstr "Wild" #: lib/pychess/ic/FICSObjects.py:117 msgid "Online" msgstr "online" #: lib/pychess/ic/FICSObjects.py:118 lib/pychess/ic/FICSObjects.py:143 msgid "Offline" msgstr "Afkoblet" #: lib/pychess/ic/FICSObjects.py:133 msgid "Available" msgstr "" #: lib/pychess/ic/FICSObjects.py:135 msgid "Playing" msgstr "" #: lib/pychess/ic/FICSObjects.py:141 msgid "Idle" msgstr "" #: lib/pychess/ic/FICSObjects.py:145 msgid "Examining" msgstr "" #: lib/pychess/ic/FICSObjects.py:147 msgid "Not Available" msgstr "" #: lib/pychess/ic/FICSObjects.py:149 msgid "Running Simul Match" msgstr "" #: lib/pychess/ic/FICSObjects.py:151 msgid "In Tournament" msgstr "" #: lib/pychess/ic/FICSObjects.py:308 lib/pychess/ic/FICSObjects.py:492 #: lib/pychess/ic/ICLounge.py:2278 msgid "Unrated" msgstr "Ikke rated" #: lib/pychess/ic/FICSObjects.py:491 lib/pychess/ic/ICLounge.py:670 #: lib/pychess/ic/ICLounge.py:1358 lib/pychess/ic/ICLounge.py:1558 #: lib/pychess/ic/ICLounge.py:2113 msgid "Rated" msgstr "Rated" #: lib/pychess/ic/FICSObjects.py:498 lib/pychess/ic/ICLounge.py:2098 #, python-format msgid "%d min" msgstr "%d min" #: lib/pychess/ic/FICSObjects.py:500 #, python-format msgid " + %d sec" msgstr "" #: lib/pychess/ic/FICSObjects.py:517 #, python-format msgid "%(player)s plays %(color)s" msgstr "" #: lib/pychess/ic/FICSObjects.py:519 lib/pychess/ic/ICLounge.py:909 msgid "white" msgstr "" #: lib/pychess/ic/FICSObjects.py:519 lib/pychess/ic/ICLounge.py:909 msgid "black" msgstr "" #: lib/pychess/ic/FICSObjects.py:565 msgid "This is a continuation of an adjourned match" msgstr "" #: lib/pychess/ic/FICSObjects.py:654 msgid "Opponent Rating" msgstr "" #: lib/pychess/ic/FICSObjects.py:656 msgid "Manual Accept" msgstr "" #: lib/pychess/ic/FICSObjects.py:810 msgid "Private" msgstr "Privat" #: lib/pychess/ic/FICSObjects.py:930 lib/pychess/ic/ICLounge.py:527 #: lib/pychess/Savers/epd.py:139 msgid "Unknown" msgstr "Ukendt" #: lib/pychess/ic/ICLogon.py:159 lib/pychess/ic/ICLogon.py:165 msgid "Connection Error" msgstr "Forbindelsesfejl" #: lib/pychess/ic/ICLogon.py:161 msgid "Log on Error" msgstr "Kunne ikke logge på" #: lib/pychess/ic/ICLogon.py:163 msgid "Connection was closed" msgstr "Forbindelsen blev lukket" #: lib/pychess/ic/ICLogon.py:169 msgid "Address Error" msgstr "Adresse fejl" #: lib/pychess/ic/ICLogon.py:172 msgid "Auto-logout" msgstr "Automatisk aflogning" #: lib/pychess/ic/ICLogon.py:173 msgid "You have been logged out because you were idle more than 60 minutes" msgstr "Du er blevet logget af fordi du var inaktiv i mere end 60 minutter" #: lib/pychess/ic/ICLounge.py:222 msgid "You have to set kibitz on to see bot messages here." msgstr "" #: lib/pychess/ic/ICLounge.py:241 msgid "" "You may only have 3 outstanding seeks at the same time. If you want to add a" " new seek you must clear your currently active seeks. Clear your seeks?" msgstr "" #: lib/pychess/ic/ICLounge.py:258 msgid "You can't touch this! You are examining a game." msgstr "" #: lib/pychess/ic/ICLounge.py:270 msgid " has declined your offer for a match" msgstr "" #: lib/pychess/ic/ICLounge.py:283 msgid " is censoring you" msgstr "" #: lib/pychess/ic/ICLounge.py:296 msgid " noplay listing you" msgstr "" #: lib/pychess/ic/ICLounge.py:311 msgid " uses a formula not fitting your match request:" msgstr "" #: lib/pychess/ic/ICLounge.py:325 msgid "to manual accept" msgstr "" #: lib/pychess/ic/ICLounge.py:327 msgid "to automatic accept" msgstr "" #: lib/pychess/ic/ICLounge.py:329 msgid "rating range now" msgstr "" #: lib/pychess/ic/ICLounge.py:330 msgid "Seek updated" msgstr "" #: lib/pychess/ic/ICLounge.py:342 msgid "Your seeks have been removed" msgstr "" #: lib/pychess/ic/ICLounge.py:363 msgid " has arrived" msgstr "" #: lib/pychess/ic/ICLounge.py:370 msgid " has departed" msgstr "" #: lib/pychess/ic/ICLounge.py:374 msgid " is present" msgstr "" #: lib/pychess/ic/ICLounge.py:391 sidepanel/chatPanel.py:17 msgid "Chat" msgstr "Chat" #: lib/pychess/ic/ICLounge.py:472 sidepanel/bookPanel.py:366 msgid "Win" msgstr "Vundne" #: lib/pychess/ic/ICLounge.py:472 sidepanel/bookPanel.py:360 msgid "Draw" msgstr "Remi" #: lib/pychess/ic/ICLounge.py:472 sidepanel/bookPanel.py:363 msgid "Loss" msgstr "Tabte" #: lib/pychess/ic/ICLounge.py:482 msgid "" "On FICS, your \"Wild\" rating encompasses all of the following variants at " "all time controls:\n" msgstr "På FICS, omfatter din \"Wild\" rating alle de følgende varianter ved alle tidskontroller:\n" #: lib/pychess/ic/ICLounge.py:494 msgid "Sanctions" msgstr "" #: lib/pychess/ic/ICLounge.py:499 msgid "Email" msgstr "Email" #: lib/pychess/ic/ICLounge.py:504 msgid "Spent" msgstr "Brugt" #: lib/pychess/ic/ICLounge.py:506 msgid "online in total" msgstr "på nettet totalt" #: lib/pychess/ic/ICLounge.py:512 msgid "Ping" msgstr "Ping" #: lib/pychess/ic/ICLounge.py:517 msgid "Connecting" msgstr "Tilslutter" #: lib/pychess/ic/ICLounge.py:544 msgid "" "You are currently logged in as a guest.\n" "A guest can't play rated games and therefore isn't able to play as many of the types of matches offered as a registered user. To register an account, go to http://www.freechess.org/Register/index.html." msgstr "" #: lib/pychess/ic/ICLounge.py:669 lib/pychess/ic/ICLounge.py:1136 msgid "Name" msgstr "Navn" #: lib/pychess/ic/ICLounge.py:670 lib/pychess/ic/ICLounge.py:1358 #: lib/pychess/ic/ICLounge.py:1558 msgid "Type" msgstr "Type" #: lib/pychess/ic/ICLounge.py:670 lib/pychess/ic/ICLounge.py:1558 msgid "Clock" msgstr "Tid" #: lib/pychess/ic/ICLounge.py:726 lib/pychess/ic/ICLounge.py:923 #: lib/pychess/Players/Human.py:250 msgid "Accept" msgstr "" #: lib/pychess/ic/ICLounge.py:728 msgid "Assess" msgstr "" #: lib/pychess/ic/ICLounge.py:734 msgid "Archived" msgstr "" #: lib/pychess/ic/ICLounge.py:848 #, python-format msgid "Active seeks: %d" msgstr "Aktive opfordringer: %d" #: lib/pychess/ic/ICLounge.py:897 #, python-format msgid "" " would like to resume your adjourned %(time)s %(gametype)s " "game." msgstr "" #: lib/pychess/ic/ICLounge.py:902 #, python-format msgid "" " challenges you to a %(time)s %(rated)s %(gametype)s game" msgstr "" #: lib/pychess/ic/ICLounge.py:907 #, python-format msgid " where %(player)s plays %(color)s." msgstr "" #: lib/pychess/ic/ICLounge.py:924 lib/pychess/Players/Human.py:251 msgid "Decline" msgstr "" #: lib/pychess/ic/ICLounge.py:1065 msgid " min" msgstr " min" #: lib/pychess/ic/ICLounge.py:1137 msgid "Status" msgstr "" #: lib/pychess/ic/ICLounge.py:1203 lib/pychess/ic/ICLounge.py:1233 #, python-format msgid "Players: %d" msgstr "" #: lib/pychess/ic/ICLounge.py:1469 #, python-format msgid "Games running: %d" msgstr "Igangværende spil: %d" #: lib/pychess/ic/ICLounge.py:1559 msgid "Date/Time" msgstr "Dato/tid" #: lib/pychess/ic/ICLounge.py:1614 #, python-format msgid "" " with whom you have an adjourned %(timecontrol)s %(gametype)s " "game is online." msgstr "" #: lib/pychess/ic/ICLounge.py:1635 msgid "Request Continuation" msgstr "" #: lib/pychess/ic/ICLounge.py:1637 msgid "Examine Adjourned Game" msgstr "" #: lib/pychess/ic/ICLounge.py:1965 msgid "" "The chain button is disabled because you are logged in as a guest. Guests " "can't establish ratings, and the chain button's state has no effect when " "there is no rating to which to tie \"Opponent Strength\" to" msgstr "Knappen er inaktiv fordi du er logget på som gæst. Gæster kan ikke få ratings, så knappen har ingen effekt." #: lib/pychess/ic/ICLounge.py:2006 msgid "Challenge: " msgstr "Udfordr: " #: lib/pychess/ic/ICLounge.py:2044 msgid "If set you can refuse players accepting your seek" msgstr "" #: lib/pychess/ic/ICLounge.py:2048 lib/pychess/ic/ICLounge.py:2051 msgid "This option is not applicable because you're challenging a player" msgstr "Denne mulighed kan ikke bruges, fordi du udfordrer en spiller" #: lib/pychess/ic/ICLounge.py:2064 msgid "Edit Seek: " msgstr "Redigér opfordring: " #: lib/pychess/ic/ICLounge.py:2095 #, python-format msgid "%(minutes)d min + %(gain)d sec/move" msgstr "%(minutes)d min + %(gain)d sek/træk" #: lib/pychess/ic/ICLounge.py:2116 msgid "Manual" msgstr "Manuel" #: lib/pychess/ic/ICLounge.py:2256 msgid "Any strength" msgstr "" #: lib/pychess/ic/ICLounge.py:2308 msgid "You can't play rated games because you are logged in as a guest" msgstr "Du kan ikke spille ratede spil, fordi du er logget på som gæst" #: lib/pychess/ic/ICLounge.py:2312 msgid "You can't play rated games because \"Untimed\" is checked, " msgstr "Du kan ikke spille ratede spil, fordi \"Ubegrænset\" er slået til, " #: lib/pychess/ic/ICLounge.py:2313 msgid "and on FICS, untimed games can't be rated" msgstr "og på FICS skal alle ratede spil være tidsbegrænsede" #: lib/pychess/ic/ICLounge.py:2317 msgid "This option is not available because you're challenging a guest, " msgstr "Denne mulighed er ikke tilgængelig fordi du udfordrer en gæst, " #: lib/pychess/ic/ICLounge.py:2318 msgid "and guests can't play rated games" msgstr "og gæster kan ikke spille ratede spil" #: lib/pychess/ic/ICLounge.py:2332 lib/pychess/Variants/shuffle.py:16 #: lib/pychess/widgets/newGameDialog.py:266 msgid "Shuffle" msgstr "Shuffle" #: lib/pychess/ic/ICLounge.py:2333 lib/pychess/widgets/newGameDialog.py:267 msgid "Other (standard rules)" msgstr "" #: lib/pychess/ic/ICLounge.py:2334 lib/pychess/widgets/newGameDialog.py:268 msgid "Other (non standard rules)" msgstr "" #: lib/pychess/ic/ICLounge.py:2421 msgid "You can't select a variant because \"Untimed\" is checked, " msgstr "Du kan ikke vælge en variant fordi \"Ubegrænset\" er sat, " #: lib/pychess/ic/ICLounge.py:2422 msgid "and on FICS, untimed games have to be normal chess rules" msgstr "og på FICS kan kun normale spil være tidsubegrænsede" #: lib/pychess/ic/ICLounge.py:2454 msgid "Change Tolerance" msgstr "Ændr tolerance" #: lib/pychess/ic/__init__.py:102 msgid "Examined" msgstr "" #: lib/pychess/ic/__init__.py:103 msgid "Other" msgstr "Andet" #: lib/pychess/ic/__init__.py:182 msgid "Administrator" msgstr "Administrator" #: lib/pychess/ic/__init__.py:182 msgid "Blindfold Account" msgstr "Blindskakbruger" #: lib/pychess/ic/__init__.py:182 msgid "Computer" msgstr "" #: lib/pychess/ic/__init__.py:183 msgid "Team Account" msgstr "Holdbruger" #: lib/pychess/ic/__init__.py:183 msgid "Unregistered" msgstr "" #: lib/pychess/ic/__init__.py:183 msgid "Chess Advisor" msgstr "Skakrådgiver" #: lib/pychess/ic/__init__.py:184 msgid "Service Representative" msgstr "Servicerepræsentant" #: lib/pychess/ic/__init__.py:184 msgid "Tournament Director" msgstr "Turneringsleder" #: lib/pychess/ic/__init__.py:184 msgid "Mamer Manager" msgstr "Mamer Manager" #: lib/pychess/ic/__init__.py:185 msgid "Grand Master" msgstr "Stormester" #: lib/pychess/ic/__init__.py:185 msgid "International Master" msgstr "International Master" #: lib/pychess/ic/__init__.py:185 msgid "FIDE Master" msgstr "FIDE Mester" #: lib/pychess/ic/__init__.py:186 msgid "Woman Grand Master" msgstr "" #: lib/pychess/ic/__init__.py:186 msgid "Woman International Master" msgstr "" #: lib/pychess/ic/__init__.py:186 msgid "Woman FIDE Master" msgstr "" #: lib/pychess/ic/__init__.py:187 msgid "Dummy Account" msgstr "" #: lib/pychess/ic/__init__.py:191 msgid "*" msgstr "" #: lib/pychess/ic/__init__.py:191 lib/pychess/Utils/repr.py:14 msgid "B" msgstr "L" #: lib/pychess/ic/__init__.py:191 msgid "C" msgstr "" #: lib/pychess/ic/__init__.py:192 msgid "T" msgstr "" #: lib/pychess/ic/__init__.py:192 msgid "U" msgstr "" #: lib/pychess/ic/__init__.py:192 msgid "CA" msgstr "" #: lib/pychess/ic/__init__.py:193 msgid "SR" msgstr "" #: lib/pychess/ic/__init__.py:193 msgid "TD" msgstr "" #: lib/pychess/ic/__init__.py:193 msgid "TM" msgstr "" #: lib/pychess/ic/__init__.py:194 msgid "GM" msgstr "" #: lib/pychess/ic/__init__.py:194 msgid "IM" msgstr "" #: lib/pychess/ic/__init__.py:194 msgid "FM" msgstr "" #: lib/pychess/ic/__init__.py:195 msgid "WGM" msgstr "" #: lib/pychess/ic/__init__.py:195 msgid "WIM" msgstr "" #: lib/pychess/ic/__init__.py:195 msgid "WFM" msgstr "" #: lib/pychess/ic/__init__.py:195 msgid "D" msgstr "" #: lib/pychess/ic/__init__.py:195 msgid "H" msgstr "" #: lib/pychess/ic/__init__.py:195 msgid "CM" msgstr "" #: lib/pychess/ic/__init__.py:195 msgid "FA" msgstr "" #: lib/pychess/ic/__init__.py:195 msgid "NM" msgstr "" #: lib/pychess/Players/CECPEngine.py:857 #, python-format msgid "The engine %s reports an error:" msgstr "" #: lib/pychess/Players/Human.py:20 msgid "Your opponent has offered you a draw." msgstr "" #: lib/pychess/Players/Human.py:21 msgid "" "Your opponent has offered you a draw. If you accept this offer, the game " "will end with a score of 1/2 - 1/2." msgstr "Din modstander har tilbudt dig remi. Hvis du acceptere dette tilbud vil spillet slutte ½-½" #: lib/pychess/Players/Human.py:23 msgid "Your opponent wants to abort the game." msgstr "" #: lib/pychess/Players/Human.py:24 msgid "" "Your opponent has asked that the game be aborted. If you accept this offer, " "the game will end with no rating change." msgstr "Din modstander har bedt om at få spillet afbrudt. Hvis du accepterer dette tilbud vil spillet slutte uden ændring af ratings." #: lib/pychess/Players/Human.py:26 msgid "Your opponent wants to adjourn the game." msgstr "" #: lib/pychess/Players/Human.py:27 msgid "" "Your opponent has asked that the game be adjourned. If you accept this " "offer, the game will be adjourned and you can resume it later (when your " "opponent is online and both players agree to resume)." msgstr "Din modstander har spurgt om du vil udsætte spillet. Hvis du acceptere dette tilbud, vil spillet gemmes på serveren, og du kan fortsætte det en anden gang, hvor din modstander er online." #: lib/pychess/Players/Human.py:29 #, python-format msgid "Your opponent wants to undo %s move(s)." msgstr "" #: lib/pychess/Players/Human.py:30 #, python-format msgid "" "Your opponent has asked that the last %s move(s) be undone. If you accept " "this offer, the game will continue from the earlier position." msgstr "Din modstander har spurgt om lov at fortryde de sidste %s træk. Hvis du accepterer dette vil spillet fortsætte fra den tidligere position." #: lib/pychess/Players/Human.py:32 msgid "Your opponent wants to pause the game." msgstr "" #: lib/pychess/Players/Human.py:33 msgid "" "Your opponent has asked that the game be paused. If you accept this offer, " "the game clock will be paused until both players agree to resume the game." msgstr "Din modstander har bedt om at spillet bliver pauset. Hvis du accepterer dette, vil uret bliver stoppet indtil begge spillere er enige om at fortsætte." #: lib/pychess/Players/Human.py:35 msgid "Your opponent wants to resume the game." msgstr "" #: lib/pychess/Players/Human.py:36 msgid "" "Your opponent has asked that the game be resumed. If you accept this offer, " "the game clock will continue from where it was paused." msgstr "Din modstander har bedt om, at spillet bliver genoptaget. Hvis du accepterer, vil uret blive sat igang fra hvor det blev pauset." #: lib/pychess/Players/Human.py:40 msgid "The resignation" msgstr "Opgivelsen" #: lib/pychess/Players/Human.py:41 msgid "The flag call" msgstr "Kravet om tidssejr" #: lib/pychess/Players/Human.py:42 msgid "The draw offer" msgstr "Tilbudet om remi" #: lib/pychess/Players/Human.py:43 msgid "The abort offer" msgstr "TIlbudet om afbrydelse" #: lib/pychess/Players/Human.py:44 msgid "The adjourn offer" msgstr "Tilbudet om udskydelse" #: lib/pychess/Players/Human.py:45 msgid "The pause offer" msgstr "TIlbudet om pause" #: lib/pychess/Players/Human.py:46 msgid "The resume offer" msgstr "Tilbudet om genoptagelse" #: lib/pychess/Players/Human.py:47 msgid "The offer to switch sides" msgstr "Tilbudet om at skifte side" #: lib/pychess/Players/Human.py:48 msgid "The takeback offer" msgstr "Tilbudet om fortrydelse" #: lib/pychess/Players/Human.py:52 msgid "resign" msgstr "opgiv" #: lib/pychess/Players/Human.py:53 msgid "call your opponents flag" msgstr "kræv sejr ved tid" #: lib/pychess/Players/Human.py:54 msgid "offer a draw" msgstr "tilbyd remi" #: lib/pychess/Players/Human.py:55 msgid "offer an abort" msgstr "tilbyd at afbryde" #: lib/pychess/Players/Human.py:56 msgid "offer to adjourn" msgstr "tilbyd at udskyde" #: lib/pychess/Players/Human.py:57 msgid "offer a pause" msgstr "tilbyd pause" #: lib/pychess/Players/Human.py:58 msgid "offer to resume" msgstr "tilbyd at genoptage" #: lib/pychess/Players/Human.py:59 msgid "offer to switch sides" msgstr "tilbyd at skifte side" #: lib/pychess/Players/Human.py:60 msgid "offer a takeback" msgstr "anmod of at fortryde" #: lib/pychess/Players/Human.py:61 msgid "ask your opponent to move" msgstr "bed din modstander om at trække" #: lib/pychess/Players/Human.py:66 msgid "Your opponent is not out of time." msgstr "Din modstander har stadig tid tilbage." #: lib/pychess/Players/Human.py:68 msgid "The clock hasn't been started yet." msgstr "Uret er endnu ikke startet." #: lib/pychess/Players/Human.py:70 msgid "You can't switch colors during the game." msgstr "Du kan ikke skifte side i løbet af spillet." #: lib/pychess/Players/Human.py:72 msgid "You have tried to undo too many moves." msgstr "Du har bedt om at udskyde for mange træk." #: lib/pychess/Players/Human.py:180 msgid "Your opponent asks you to hurry!" msgstr "Din modstander beder dig om at skynde sig!" #: lib/pychess/Players/Human.py:181 msgid "" "Generally this means nothing, as the game is time-based, but if you want to " "please your opponent, perhaps you should get going." msgstr "" #: lib/pychess/Players/Human.py:259 #, python-format msgid "%s was declined by your opponent" msgstr "%s blev afslået af din modstander" #: lib/pychess/Players/Human.py:260 #, python-format msgid "Resend %s?" msgstr "" #: lib/pychess/Players/Human.py:267 msgid "Resend" msgstr "" #: lib/pychess/Players/Human.py:275 #, python-format msgid "%s was withdrawn by your opponent" msgstr "%s blev trukket tilbage af din modstander" #: lib/pychess/Players/Human.py:276 msgid "Your opponent seems to have changed their mind." msgstr "" #: lib/pychess/Players/Human.py:290 #, python-format msgid "Unable to accept %s" msgstr "Kunne ikke acceptere %s" #: lib/pychess/Players/Human.py:291 msgid "Probably because it has been withdrawn." msgstr "" #: lib/pychess/Players/Human.py:298 #, python-format msgid "%s returns an error" msgstr "%s returnerer en fejl" #: lib/pychess/Savers/chessalpha2.py:12 msgid "Chess Alpha 2 Diagram" msgstr "Chess Alpha 2 diagram" #: lib/pychess/Savers/chesspastebin.py:39 msgid "Game shared at " msgstr "" #: lib/pychess/Savers/chesspastebin.py:41 msgid "(Link is available on clipboard.)" msgstr "" #: lib/pychess/Savers/database.py:19 msgid "PyChess database" msgstr "" #: lib/pychess/Savers/epd.py:12 msgid "Chess Position" msgstr "Skakposition" #: lib/pychess/Savers/fen.py:12 msgid "Simple Chess Position" msgstr "Simpel skakposition" #: lib/pychess/Savers/fen.py:44 lib/pychess/Savers/pgn.py:329 msgid "The game can't be loaded, because of an error parsing FEN" msgstr "" #: lib/pychess/Savers/pgnbase.py:100 #, python-format msgid "" "The game can't be read to end, because of an error parsing move %(moveno)s " "'%(notation)s'." msgstr "Spillet kan ikke læses til ende, fordi der var en fejl i trækket %(moveno)s '%(notation)s'." #: lib/pychess/Savers/pgnbase.py:102 #, python-format msgid "The move failed because %s." msgstr "Trækket fejlede fordi %s." #: lib/pychess/Savers/pgnbase.py:110 #, python-format msgid "Error parsing move %(moveno)s %(mstr)s" msgstr "" #: lib/pychess/Savers/pgn.py:28 msgid "Chess Game" msgstr "Skakspil" #: lib/pychess/Savers/pgn.py:362 msgid "Invalid move." msgstr "" #: lib/pychess/Savers/png.py:15 msgid "Png image" msgstr "" #: lib/pychess/System/ping.py:31 msgid "Destination Host Unreachable" msgstr "Bestemmelsesstedets vært er utilgængelig" #: lib/pychess/System/ping.py:74 msgid "Died" msgstr "Døde" #: lib/pychess/Utils/GameModel.py:147 msgid "Local Event" msgstr "Lokalt spil" #: lib/pychess/Utils/GameModel.py:148 msgid "Local Site" msgstr "Lige i nærheden" #: lib/pychess/Utils/repr.py:12 msgid "Pawn" msgstr "Bonde" #: lib/pychess/Utils/repr.py:14 msgid "P" msgstr "B" #: lib/pychess/Utils/repr.py:14 msgid "N" msgstr "S" #: lib/pychess/Utils/repr.py:14 msgid "R" msgstr "T" #: lib/pychess/Utils/repr.py:14 msgid "Q" msgstr "D" #: lib/pychess/Utils/repr.py:14 msgid "K" msgstr "K" #: lib/pychess/Utils/repr.py:17 msgid "The game ended in a draw" msgstr "Spillet endte uafgjort" #: lib/pychess/Utils/repr.py:18 #, python-format msgid "%(white)s won the game" msgstr "%(white)s vandt spillet" #: lib/pychess/Utils/repr.py:19 #, python-format msgid "%(black)s won the game" msgstr "%(black)s vandt spillet" #: lib/pychess/Utils/repr.py:20 msgid "The game has been killed" msgstr "Spillet er blevet dræbt" #: lib/pychess/Utils/repr.py:21 msgid "The game has been adjourned" msgstr "Spillet er blevet udsat" #: lib/pychess/Utils/repr.py:22 msgid "The game has been aborted" msgstr "Spillet er blevet afbrudt" #: lib/pychess/Utils/repr.py:26 msgid "Because neither player has sufficient material to mate" msgstr "Fordi ingen af spillerne har tilstrækkelig materiale for at vinde" #: lib/pychess/Utils/repr.py:27 msgid "Because the same position was repeated three times in a row" msgstr "Fordi den samme position har er blevet gentaget tre gange" #: lib/pychess/Utils/repr.py:28 msgid "Because the last 50 moves brought nothing new" msgstr "Fordi de sidste 50 træk ikke har bragt noget nyt" #: lib/pychess/Utils/repr.py:29 msgid "Because both players ran out of time" msgstr "Fordi begge spillere løb tør for tid" #: lib/pychess/Utils/repr.py:30 #, python-format msgid "Because %(mover)s stalemated" msgstr "Fordi %(mover)s satte pat" #: lib/pychess/Utils/repr.py:31 msgid "Because both players agreed to a draw" msgstr "" #: lib/pychess/Utils/repr.py:32 lib/pychess/Utils/repr.py:42 msgid "Because of adjudication by an admin" msgstr "Pågrund af en admins bedømmelse" #: lib/pychess/Utils/repr.py:33 msgid "Because the game exceed the max length" msgstr "Fordi spillet overskred den maksimale længde" #: lib/pychess/Utils/repr.py:34 #, python-format msgid "" "Because %(white)s ran out of time and %(black)s has insufficient material to" " mate" msgstr "Fordi %(white)s løb tør for tid og %(black)s ikke har materiale til at vinde" #: lib/pychess/Utils/repr.py:35 #, python-format msgid "" "Because %(black)s ran out of time and %(white)s has insufficient material to" " mate" msgstr "Fordi %(black)s løb tør for tid og %(white)s ikke har materiale til at vinde" #: lib/pychess/Utils/repr.py:36 msgid "Because both players have the same amount of pieces" msgstr "" #: lib/pychess/Utils/repr.py:38 #, python-format msgid "Because %(loser)s resigned" msgstr "Fordi %(loser)s opgav" #: lib/pychess/Utils/repr.py:39 #, python-format msgid "Because %(loser)s ran out of time" msgstr "Fordi %(loser)s løb tør for tid" #: lib/pychess/Utils/repr.py:40 #, python-format msgid "Because %(loser)s was checkmated" msgstr "Fordi %(loser)s blev sat skakmat" #: lib/pychess/Utils/repr.py:41 #, python-format msgid "Because %(loser)s disconnected" msgstr "Fordi %(loser)s afbrød forbindelsen" #: lib/pychess/Utils/repr.py:43 #, python-format msgid "Because %(winner)s has fewer pieces" msgstr "" #: lib/pychess/Utils/repr.py:44 #, python-format msgid "Because %(winner)s lost all pieces" msgstr "" #: lib/pychess/Utils/repr.py:45 #, python-format msgid "Because %(loser)s king exploded" msgstr "" #: lib/pychess/Utils/repr.py:46 #, python-format msgid "Because %(winner)s king reached the center" msgstr "" #: lib/pychess/Utils/repr.py:47 #, python-format msgid "Because %(winner)s was giving check 3 times" msgstr "" #: lib/pychess/Utils/repr.py:49 msgid "Because a player lost connection" msgstr "Fordi en spillet tabte forbindelsen" #: lib/pychess/Utils/repr.py:50 msgid "Because both players agreed to an adjournment" msgstr "" #: lib/pychess/Utils/repr.py:51 msgid "Because the server was shut down" msgstr "" #: lib/pychess/Utils/repr.py:52 msgid "" "Because a player lost connection and the other player requested adjournment" msgstr "Fordi en spillet tabte forbindelsen og den anden spiller anmodede om udsættelse" #: lib/pychess/Utils/repr.py:53 #, python-format msgid "" "Because %(black)s lost connection to the server and %(white)s requested " "adjournment" msgstr "" #: lib/pychess/Utils/repr.py:54 #, python-format msgid "" "Because %(white)s lost connection to the server and %(black)s requested " "adjournment" msgstr "" #: lib/pychess/Utils/repr.py:55 #, python-format msgid "Because %(white)s lost connection to the server" msgstr "" #: lib/pychess/Utils/repr.py:56 #, python-format msgid "Because %(black)s lost connection to the server" msgstr "" #: lib/pychess/Utils/repr.py:58 msgid "Because of adjudication by an admin. No rating changes have occurred." msgstr "" #: lib/pychess/Utils/repr.py:59 msgid "" "Because both players agreed to abort the game. No rating changes have " "occurred." msgstr "" #: lib/pychess/Utils/repr.py:60 msgid "Because of courtesy by a player. No rating changes have occurred." msgstr "" #: lib/pychess/Utils/repr.py:61 msgid "" "Because a player aborted the game. Either player can abort the game without " "the other's consent before the second move. No rating changes have occurred." msgstr "" #: lib/pychess/Utils/repr.py:62 msgid "" "Because a player disconnected and there are too few moves to warrant " "adjournment. No rating changes have occurred." msgstr "" #: lib/pychess/Utils/repr.py:63 msgid "Because the server was shut down. No rating changes have occurred." msgstr "" #: lib/pychess/Utils/repr.py:65 #, python-format msgid "Because the %(white)s engine died" msgstr "Fordi den %(white)s motor døde" #: lib/pychess/Utils/repr.py:66 #, python-format msgid "Because the %(black)s engine died" msgstr "" #: lib/pychess/Utils/repr.py:67 msgid "Because the connection to the server was lost" msgstr "Fordi vi tabte forbindelsen til serveren" #: lib/pychess/Utils/repr.py:68 msgid "The reason is unknown" msgstr "Årsagen er ukendt" #: lib/pychess/Utils/TimeModel.py:229 msgid "min" msgstr "" #: lib/pychess/Utils/TimeModel.py:231 msgid "sec" msgstr "" #: lib/pychess/Variants/asean.py:12 msgid "" "ASEAN: http://www.ncf-" "phil.org/downloadables/2014/May/Asean_chess/Laws_of_ASEAN_Chess_2011_Nov_26.doc" msgstr "" #: lib/pychess/Variants/asean.py:13 msgid "ASEAN" msgstr "" #: lib/pychess/Variants/asean.py:33 msgid "Makruk: http://en.wikipedia.org/wiki/Makruk" msgstr "" #: lib/pychess/Variants/asean.py:34 msgid "Makruk" msgstr "" #: lib/pychess/Variants/asean.py:60 msgid "Cambodian: http://www.khmerinstitute.org/culture/ok.html" msgstr "" #: lib/pychess/Variants/asean.py:61 msgid "Cambodian" msgstr "" #: lib/pychess/Variants/asean.py:86 msgid "" "Ai-Wok: http://www.open-" "aurec.com/wbforum/viewtopic.php?p=199364&sid=20963a1de2c164050de019e5ed6bf7c4#p199364" msgstr "" #: lib/pychess/Variants/asean.py:87 msgid "Ai-Wok" msgstr "" #: lib/pychess/Variants/asean.py:111 msgid "Sittuyin: http://en.wikipedia.org/wiki/Sittuyin" msgstr "" #: lib/pychess/Variants/asean.py:112 msgid "Sittuyin" msgstr "" #: lib/pychess/Variants/asymmetricrandom.py:12 msgid "" "FICS wild/4: http://www.freechess.org/Help/HelpFiles/wild.html\n" "* Randomly chosen pieces (two queens or three rooks possible)\n" "* Exactly one king of each color\n" "* Pieces placed randomly behind the pawns, SUBJECT TO THE CONSTRAINT THAT THE BISHOPS ARE BALANCED\n" "* No castling\n" "* Black's arrangement DOES NOT mirrors white's" msgstr "" #: lib/pychess/Variants/asymmetricrandom.py:18 msgid "Asymmetric Random" msgstr "Asymmetrisk Random" #: lib/pychess/Variants/atomic.py:14 msgid "FICS atomic: http://www.freechess.org/Help/HelpFiles/atomic.html" msgstr "" #: lib/pychess/Variants/blindfold.py:7 msgid "" "Classic chess rules with hidden figurines\n" "http://en.wikipedia.org/wiki/Blindfold_chess" msgstr "" #: lib/pychess/Variants/blindfold.py:9 #: lib/pychess/widgets/newGameDialog.py:264 msgid "Blindfold" msgstr "Blindskak" #: lib/pychess/Variants/blindfold.py:18 msgid "" "Classic chess rules with hidden pawns\n" "http://en.wikipedia.org/wiki/Blindfold_chess" msgstr "" #: lib/pychess/Variants/blindfold.py:20 msgid "Hidden pawns" msgstr "" #: lib/pychess/Variants/blindfold.py:29 msgid "" "Classic chess rules with hidden pieces\n" "http://en.wikipedia.org/wiki/Blindfold_chess" msgstr "" #: lib/pychess/Variants/blindfold.py:31 msgid "Hidden pieces" msgstr "" #: lib/pychess/Variants/blindfold.py:40 msgid "" "Classic chess rules with all pieces white\n" "http://en.wikipedia.org/wiki/Blindfold_chess" msgstr "" #: lib/pychess/Variants/blindfold.py:42 msgid "All white" msgstr "" #: lib/pychess/Variants/bughouse.py:8 msgid "FICS bughouse: http://www.freechess.org/Help/HelpFiles/bughouse.html" msgstr "" #: lib/pychess/Variants/corner.py:12 msgid "" "http://brainking.com/en/GameRules?tp=2\n" "* Placement of the pieces on the 1st and 8th row are randomized\n" "* The king is in the right hand corner\n" "* Bishops must start on opposite color squares\n" "* Black's starting position is obtained by rotating white's position 180 degrees around the board's center\n" "* No castling" msgstr "" #: lib/pychess/Variants/corner.py:18 msgid "Corner" msgstr "Hjørne" #: lib/pychess/Variants/crazyhouse.py:8 msgid "" "FICS crazyhouse: http://www.freechess.org/Help/HelpFiles/crazyhouse.html" msgstr "" #: lib/pychess/Variants/euroshogi.py:9 msgid "EuroShogi: http://en.wikipedia.org/wiki/EuroShogi" msgstr "" #: lib/pychess/Variants/euroshogi.py:10 msgid "EuroShogi" msgstr "" #: lib/pychess/Variants/fischerandom.py:18 msgid "" "http://en.wikipedia.org/wiki/Chess960\n" "FICS wild/fr: http://www.freechess.org/Help/HelpFiles/wild.html" msgstr "" #: lib/pychess/Variants/fischerandom.py:20 msgid "Fischer Random" msgstr "Fischer Random" #: lib/pychess/Variants/kingofthehill.py:8 msgid "" "Bringing your king legally to the center (e4, d4, e5, d5) instantly wins the game!\n" "Normal rules apply in other cases and checkmate also ends the game." msgstr "" #: lib/pychess/Variants/kingofthehill.py:10 msgid "King of the hill" msgstr "" #: lib/pychess/Variants/knightodds.py:8 msgid "One player starts with one less knight piece" msgstr "" #: lib/pychess/Variants/knightodds.py:9 msgid "Knight odds" msgstr "Springerhandicap" #: lib/pychess/Variants/losers.py:8 msgid "FICS losers: http://www.freechess.org/Help/HelpFiles/losers_chess.html" msgstr "" #: lib/pychess/Variants/normal.py:4 msgid "" "Classic chess rules\n" "http://en.wikipedia.org/wiki/Chess" msgstr "" #: lib/pychess/Variants/normal.py:6 lib/pychess/widgets/newGameDialog.py:157 msgid "Normal" msgstr "Normal" #: lib/pychess/Variants/pawnodds.py:8 msgid "One player starts with one less pawn piece" msgstr "" #: lib/pychess/Variants/pawnodds.py:9 msgid "Pawn odds" msgstr "Bondehandicap" #: lib/pychess/Variants/pawnspassed.py:11 msgid "" "FICS wild/8a: http://www.freechess.org/Help/HelpFiles/wild.html\n" "White pawns start on 5th rank and black pawns on the 4th rank" msgstr "" #: lib/pychess/Variants/pawnspassed.py:13 msgid "Pawns Passed" msgstr "Bønderne passeret" #: lib/pychess/Variants/pawnspushed.py:10 msgid "" "FICS wild/8: http://www.freechess.org/Help/HelpFiles/wild.html\n" "Pawns start on 4th and 5th ranks rather than 2nd and 7th" msgstr "" #: lib/pychess/Variants/pawnspushed.py:12 msgid "Pawns Pushed" msgstr "Bønderne fremskudt" #: lib/pychess/Variants/queenodds.py:8 msgid "One player starts with one less queen piece" msgstr "" #: lib/pychess/Variants/queenodds.py:9 msgid "Queen odds" msgstr "Droningehandicap" #: lib/pychess/Variants/randomchess.py:11 msgid "" "FICS wild/3: http://www.freechess.org/Help/HelpFiles/wild.html\n" "* Randomly chosen pieces (two queens or three rooks possible)\n" "* Exactly one king of each color\n" "* Pieces placed randomly behind the pawns\n" "* No castling\n" "* Black's arrangement mirrors white's" msgstr "" #: lib/pychess/Variants/randomchess.py:17 #: lib/pychess/widgets/TaskerManager.py:155 msgid "Random" msgstr "Tilfældig" #: lib/pychess/Variants/rookodds.py:8 msgid "One player starts with one less rook piece" msgstr "" #: lib/pychess/Variants/rookodds.py:9 msgid "Rook odds" msgstr "Tårnhandicap" #: lib/pychess/Variants/shuffle.py:11 msgid "" "xboard nocastle: http://home.hccnet.nl/h.g.muller/engine-intf.html#8\n" "FICS wild/2: http://www.freechess.org/Help/HelpFiles/wild.html\n" "* Random arrangement of the pieces behind the pawns\n" "* No castling\n" "* Black's arrangement mirrors white's" msgstr "" #: lib/pychess/Variants/suicide.py:11 msgid "" "FICS suicide: http://www.freechess.org/Help/HelpFiles/suicide_chess.html" msgstr "" #: lib/pychess/Variants/theban.py:10 msgid "" "Variant developed by Kai Laskos: " "http://talkchess.com/forum/viewtopic.php?t=40990" msgstr "" #: lib/pychess/Variants/theban.py:11 msgid "Theban" msgstr "" #: lib/pychess/Variants/threecheck.py:10 msgid "Win by giving check 3 times" msgstr "" #: lib/pychess/Variants/threecheck.py:11 msgid "Three-check" msgstr "" #: lib/pychess/Variants/upsidedown.py:10 msgid "" "FICS wild/5: http://www.freechess.org/Help/HelpFiles/wild.html\n" "http://en.wikipedia.org/wiki/Chess_variant#Chess_with_different_starting_positions\n" "Pawns start on their 7th rank rather than their 2nd rank!" msgstr "" #: lib/pychess/Variants/upsidedown.py:13 msgid "Upside Down" msgstr "På hovedet" #: lib/pychess/Variants/wildcastle.py:10 msgid "" "xboard wildcastle http://home.hccnet.nl/h.g.muller/engine-intf.html#8\n" "FICS wild/0: http://www.freechess.org/Help/HelpFiles/wild.html\n" "* White has the typical set-up at the start.\n" "* Black's pieces are the same, except that the King and Queen are reversed,\n" "* so they are not on the same files as White's King and Queen.\n" "* Castling is done similarly to normal chess:\n" "* o-o-o indicates long castling and o-o short castling." msgstr "" #: lib/pychess/Variants/wildcastle.py:17 msgid "Wildcastle" msgstr "" #: lib/pychess/Variants/wildcastleshuffle.py:11 msgid "" "xboard wildcastle http://home.hccnet.nl/h.g.muller/engine-intf.html#8\n" "FICS wild/1: http://www.freechess.org/Help/HelpFiles/wild.html\n" "* In this variant both sides have the same set of pieces as in normal chess.\n" "* The white king starts on d1 or e1 and the black king starts on d8 or e8,\n" "* and the rooks are in their usual positions.\n" "* Bishops are always on opposite colors.\n" "* Subject to these constraints the position of the pieces on their first ranks is random.\n" "* Castling is done similarly to normal chess:\n" "* o-o-o indicates long castling and o-o short castling." msgstr "" #: lib/pychess/Variants/wildcastleshuffle.py:20 msgid "Wildcastle shuffle" msgstr "" #: lib/pychess/widgets/analyzegameDialog.py:85 msgid "Game analyzing in progress..." msgstr "" #: lib/pychess/widgets/analyzegameDialog.py:86 msgid "Do you want to abort it?" msgstr "" #: lib/pychess/widgets/analyzegameDialog.py:95 #: lib/pychess/widgets/gamewidget.py:202 lib/pychess/widgets/gamewidget.py:320 msgid "Abort" msgstr "" #: lib/pychess/widgets/ChatView.py:125 msgid "Observers" msgstr "" #: lib/pychess/widgets/ChatWindow.py:222 msgid "You have opened no conversations yet" msgstr "Du har ikke startet nogen samtaler endnu" #: lib/pychess/widgets/ChatWindow.py:254 msgid "Only registered users may talk to this channel" msgstr "Kun registrerede brugere må snakke her" #: lib/pychess/widgets/ChatWindow.py:312 msgid "No conversation's selected" msgstr "Du har ikke valgt nogen samtaler" #: lib/pychess/widgets/ChatWindow.py:350 msgid "Loading player data" msgstr "Henter spiller data" #: lib/pychess/widgets/ChatWindow.py:400 msgid "Receiving list of players" msgstr "" #: lib/pychess/widgets/ChatWindow.py:518 msgid "Friends" msgstr "" #: lib/pychess/widgets/ChatWindow.py:529 msgid "Admin" msgstr "" #: lib/pychess/widgets/ChatWindow.py:540 msgid "More channels" msgstr "Flere kanaler" #: lib/pychess/widgets/ChatWindow.py:548 msgid "More players" msgstr "Flere spillere" #: lib/pychess/widgets/ChatWindow.py:558 msgid "Computers" msgstr "" #: lib/pychess/widgets/ChatWindow.py:568 msgid "BlindFold" msgstr "" #: lib/pychess/widgets/ChatWindow.py:578 msgid "Guests" msgstr "" #: lib/pychess/widgets/ChatWindow.py:805 msgid "Conversations" msgstr "Samtaler" #: lib/pychess/widgets/ChatWindow.py:807 msgid "Conversation info" msgstr "Samtale information" #: lib/pychess/widgets/enginesDialog.py:152 msgid "Select engine" msgstr "" #: lib/pychess/widgets/enginesDialog.py:156 msgid "Executable files" msgstr "" #: lib/pychess/widgets/enginesDialog.py:176 #: lib/pychess/widgets/enginesDialog.py:210 #: lib/pychess/widgets/enginesDialog.py:235 #, python-format msgid "Unable to add %s" msgstr "" #: lib/pychess/widgets/enginesDialog.py:177 msgid "wine not installed" msgstr "" #: lib/pychess/widgets/enginesDialog.py:211 #: lib/pychess/widgets/enginesDialog.py:236 msgid "There is something wrong with this executable" msgstr "" #: lib/pychess/widgets/enginesDialog.py:266 msgid "Select working directory" msgstr "" #: lib/pychess/widgets/gamenanny.py:115 #, python-format msgid " invalid engine move: %s" msgstr "" #: lib/pychess/widgets/gamenanny.py:134 msgid "Offer Rematch" msgstr "Tilbyd omkamp" #: lib/pychess/widgets/gamenanny.py:136 lib/pychess/widgets/gamenanny.py:147 #, python-format msgid "Observe %s" msgstr "" #: lib/pychess/widgets/gamenanny.py:168 msgid "Play Rematch" msgstr "Spil omkamp" #: lib/pychess/widgets/gamenanny.py:171 msgid "Undo one move" msgstr "Fortryd ét træk" #: lib/pychess/widgets/gamenanny.py:173 msgid "Undo two moves" msgstr "Fortryd to træk" #: lib/pychess/widgets/gamenanny.py:203 msgid "The game is paused" msgstr "" #: lib/pychess/widgets/gamenanny.py:221 lib/pychess/widgets/gamenanny.py:222 msgid "Loaded game" msgstr "Spil åbnet" #: lib/pychess/widgets/gamenanny.py:228 msgid "Saved game" msgstr "Spil gemt" #: lib/pychess/widgets/gamenanny.py:232 msgid "Analyzer started" msgstr "" #: lib/pychess/widgets/gamenanny.py:281 msgid "You sent an abort offer" msgstr "" #: lib/pychess/widgets/gamenanny.py:283 msgid "You sent an adjournment offer" msgstr "" #: lib/pychess/widgets/gamenanny.py:285 msgid "You sent a draw offer" msgstr "Du har sendt et remistilbud" #: lib/pychess/widgets/gamenanny.py:287 msgid "You sent a pause offer" msgstr "" #: lib/pychess/widgets/gamenanny.py:289 msgid "You sent a resume offer" msgstr "" #: lib/pychess/widgets/gamenanny.py:291 msgid "You sent an undo offer" msgstr "" #: lib/pychess/widgets/gamenanny.py:293 msgid "You asked your opponent to move" msgstr "" #: lib/pychess/widgets/gamenanny.py:305 #, python-format msgid "Engine, %s, has died" msgstr "Skakprogrammet, %s, er gået ned" #: lib/pychess/widgets/gamenanny.py:306 msgid "" "PyChess has lost connection to the engine, probably because it has died.\n" "\n" "You can try to start a new game with the engine, or try to play against another one." msgstr "PyChess har mistet forbindelsen til skakprogrammet, formenligt fordi det er gået ned.\n\nDu kan prøve at starte et nyt spil mod programmet, eller spille mod et andet program." #: lib/pychess/widgets/gamewidget.py:204 msgid "" "This game can be automatically aborted without rating loss because there has" " not yet been two moves made" msgstr "" #: lib/pychess/widgets/gamewidget.py:206 msgid "Offer Abort" msgstr "" #: lib/pychess/widgets/gamewidget.py:208 msgid "" "Your opponent must agree to abort the game because there has been two or " "more moves made" msgstr "" #: lib/pychess/widgets/gamewidget.py:226 msgid "This game can not be adjourned because one or both players are guests" msgstr "" #: lib/pychess/widgets/gamewidget.py:243 msgid "Claim Draw" msgstr "" #: lib/pychess/widgets/gamewidget.py:325 msgid "Pause" msgstr "" #: lib/pychess/widgets/gamewidget.py:326 msgid "Resume" msgstr "" #: lib/pychess/widgets/gamewidget.py:328 msgid "Offer Pause" msgstr "" #: lib/pychess/widgets/gamewidget.py:329 msgid "Offer Resume" msgstr "" #: lib/pychess/widgets/gamewidget.py:333 msgid "Undo" msgstr "" #: lib/pychess/widgets/gamewidget.py:335 msgid "Offer Undo" msgstr "" #: lib/pychess/widgets/gamewidget.py:550 msgid " has lagged for 30 seconds" msgstr "" #: lib/pychess/widgets/gamewidget.py:566 msgid " is lagging heavily but hasn't disconnected" msgstr "" #: lib/pychess/widgets/gamewidget.py:567 msgid "Continue to wait for opponent, or try to adjourn the game?" msgstr "" #: lib/pychess/widgets/gamewidget.py:575 msgid "Wait" msgstr "" #: lib/pychess/widgets/gamewidget.py:576 msgid "Adjourn" msgstr "" #: lib/pychess/widgets/gamewidget.py:648 msgid "Jump to initial position" msgstr "Hop til startpositionen" #: lib/pychess/widgets/gamewidget.py:653 msgid "Step back one move" msgstr "Gå et træk tilbage" #: lib/pychess/widgets/gamewidget.py:658 msgid "Go back to the main line" msgstr "" #: lib/pychess/widgets/gamewidget.py:664 msgid "Step forward one move" msgstr "Gå et træk frem" #: lib/pychess/widgets/gamewidget.py:669 msgid "Jump to latest position" msgstr "Hop til den sidste position" #: lib/pychess/widgets/gamewidget.py:903 msgid "PyChess was unable to load your panel settings" msgstr "PyChess kunne ikke indlæse dine paner" #: lib/pychess/widgets/gamewidget.py:904 msgid "" "Your panel settings have been reset. If this problem repeats, you should " "report it to the developers" msgstr "Dine panelinstillinger er blevet nulstillet. Hvis problemet fortsætter, bør du raportere det til udviklerne." #: lib/pychess/widgets/ionest.py:67 lib/pychess/widgets/newGameDialog.py:389 #: lib/pychess/widgets/TaskerManager.py:210 msgid "You" msgstr "" #: lib/pychess/widgets/ionest.py:70 lib/pychess/widgets/newGameDialog.py:390 #: lib/pychess/widgets/preferencesDialog.py:61 #: lib/pychess/widgets/TaskerManager.py:213 msgid "Guest" msgstr "Gæst" #: lib/pychess/widgets/ionest.py:93 msgid "Error loading game" msgstr "" #: lib/pychess/widgets/ionest.py:127 lib/pychess/widgets/newGameDialog.py:480 msgid "Open Game" msgstr "Åbn spil" #: lib/pychess/widgets/ionest.py:137 msgid "All Files" msgstr "Alle filer" #: lib/pychess/widgets/ionest.py:140 msgid "Detect type automatically" msgstr "Find type automatisk" #: lib/pychess/widgets/ionest.py:146 msgid "All Chess Files" msgstr "Alle skakfiler" #: lib/pychess/widgets/ionest.py:228 msgid "Save Game" msgstr "Gem spil" #: lib/pychess/widgets/ionest.py:228 msgid "Export position" msgstr "" #: lib/pychess/widgets/ionest.py:232 lib/pychess/widgets/ionest.py:360 msgid "vs." msgstr "mod" #: lib/pychess/widgets/ionest.py:249 #, python-format msgid "Unknown file type '%s'" msgstr "Ukendt filttype: '%s'" #: lib/pychess/widgets/ionest.py:250 #, python-format msgid "" "Was unable to save '%(uri)s' as PyChess doesn't know the format " "'%(ending)s'." msgstr "Kunne ikke gemme '%(uri)s' fordi PyChess ikke kender formatet '%(ending)s'." #: lib/pychess/widgets/ionest.py:266 #, python-format msgid "Unable to save file '%s'" msgstr "Kunne ikke gemme filen '%s'" #: lib/pychess/widgets/ionest.py:268 msgid "" "You don't have the necessary rights to save the file.\n" "Please ensure that you have given the right path and try again." msgstr "Du har ikke de nødvendige rettigheder til at gemme filen.\nPrøv at sikre dig, at du har valgt den rigtige mappe, eller bed din administrator om at udvide dine rettigheder." #: lib/pychess/widgets/ionest.py:276 msgid "_Replace" msgstr "_Overskriv" #: lib/pychess/widgets/ionest.py:280 msgid "File exists" msgstr "Filen eksisterer" #: lib/pychess/widgets/ionest.py:282 #, python-format msgid "" "A file named '%s' already exists. Would you like to replace " "it?" msgstr "Der eksisterer allerede en fil ved navnet '%s'. Kunne du tænke dig at overskrive den?" #: lib/pychess/widgets/ionest.py:283 #, python-format msgid "" "The file already exists in '%s'. If you replace it, its content will be " "overwritten." msgstr "Filnavnet er allerede brugt i mappen '%s'. Hvis du overskriver den, vil dens nuværende indhold forsvinde." #: lib/pychess/widgets/ionest.py:299 msgid "Could not save the file" msgstr "Kunne ikke gemme filen" #: lib/pychess/widgets/ionest.py:300 msgid "PyChess was not able to save the game" msgstr "PyChess kunne ikke gemme spillet" #: lib/pychess/widgets/ionest.py:301 #, python-format msgid "The error was: %s" msgstr "Fejlen var: %s" #: lib/pychess/widgets/ionest.py:325 #, python-format msgid "There is %d game with unsaved moves." msgid_plural "There are %d games with unsaved moves." msgstr[0] "Der er %d spil med ugemte træk." msgstr[1] "Der er %d spil med ugemte træk." #: lib/pychess/widgets/ionest.py:328 msgid "Save moves before closing?" msgstr "Gem trækkene før vi lukker?" #: lib/pychess/widgets/ionest.py:339 msgid "Unable to save to configured file. Save the games before closing?" msgstr "" #: lib/pychess/widgets/ionest.py:366 #, python-format msgid "_Save %d document" msgid_plural "_Save %d documents" msgstr[0] "_Gem %d dokument" msgstr[1] "_Gem %d dokumenter" #: lib/pychess/widgets/ionest.py:412 msgid "Save the current game before you close it?" msgstr "" #: lib/pychess/widgets/ionest.py:420 msgid "" "Unable to save to configured file. Save the current game before you close " "it?" msgstr "" #: lib/pychess/widgets/ionest.py:434 msgid "" "It is not possible later to continue the game,\n" "if you don't save it." msgstr "Det er ikke muligt senere at fortsætte spillet, hvis du ikke gemmer det." #: lib/pychess/widgets/LogDialog.py:26 msgid "PyChess Information Window" msgstr "PyChess Informationsvindue" #: lib/pychess/widgets/LogDialog.py:184 lib/pychess/widgets/LogDialog.py:188 msgid "of" msgstr "af" #: lib/pychess/widgets/newGameDialog.py:84 #: lib/pychess/widgets/newGameDialog.py:85 msgid "Human Being" msgstr "Menneske" #: lib/pychess/widgets/newGameDialog.py:155 msgid "Rapid" msgstr "Hurtig" #: lib/pychess/widgets/newGameDialog.py:224 msgid "Minutes:" msgstr "Minutter:" #: lib/pychess/widgets/newGameDialog.py:228 msgid "Gain:" msgstr "Ekstra" #: lib/pychess/widgets/newGameDialog.py:241 #, python-format msgid "%(name)s %(minutes)d min + %(gain)d sec/move" msgstr "%(name)s %(minutes)d min + %(gain)d sek/træk" #: lib/pychess/widgets/newGameDialog.py:244 #, python-format msgid "%(name)s %(minutes)d min %(gain)d sec/move" msgstr "%(name)s %(minutes)d min %(gain)d sek/træk" #: lib/pychess/widgets/newGameDialog.py:247 #, python-format msgid "%(name)s %(minutes)d min" msgstr "%(name)s %(minutes)d min" #: lib/pychess/widgets/newGameDialog.py:265 msgid "Odds" msgstr "Handicap" #: lib/pychess/widgets/newGameDialog.py:269 msgid "Asian variants" msgstr "" #: lib/pychess/widgets/newGameDialog.py:301 msgid " chess" msgstr "" #: lib/pychess/widgets/newGameDialog.py:682 msgid "Type or paste PGN game or FEN positions here" msgstr "" #: lib/pychess/widgets/newGameDialog.py:725 msgid "Enter Game" msgstr "Indtast spil" #: lib/pychess/widgets/preferencesDialog.py:123 msgid "Select book file" msgstr "" #: lib/pychess/widgets/preferencesDialog.py:128 msgid "Opening books" msgstr "" #: lib/pychess/widgets/preferencesDialog.py:156 msgid "Select Gaviota TB path" msgstr "" #: lib/pychess/widgets/preferencesDialog.py:331 msgid "Open Sound File" msgstr "Åben lydfil" #: lib/pychess/widgets/preferencesDialog.py:341 msgid "Sound files" msgstr "" #: lib/pychess/widgets/preferencesDialog.py:485 msgid "Undescribed panel" msgstr "Ubeskrævet panel" #: lib/pychess/widgets/preferencesDialog.py:678 msgid "Select auto save path" msgstr "" #: lib/pychess/widgets/tipOfTheDay.py:51 msgid "" "You can start a new game by Game > New Game, in New Game " "window do you can choose Players, Time Control and Chess " "Variants." msgstr "Du kan starte et nyt spil ved Spil > Nyt Spil. I Nyt Spil vinduet kan du vælge Spillere, Tidskontrol og Skakvariant." #: lib/pychess/widgets/tipOfTheDay.py:52 msgid "" "You can choose from 20 different difficulties to play against the computer." msgstr "" #: lib/pychess/widgets/tipOfTheDay.py:53 msgid "" "Chess Variants are like the pieces of the last line will be placed on the " "board." msgstr "En skakvariant kunne f.eks. være, at kun brikkerne på bagrækken - officerene - vil blive placeret på brættet." #: lib/pychess/widgets/tipOfTheDay.py:54 msgid "" "To save a game Game > Save Game As, give the filename and " "choose where you want to be saved. At the bottom choose extension type of " "the file, and Save." msgstr "For at gemme et spil Spil > Gem spillet som, giv filnavnet og vælg hvor du vil have det gemt. I bunden vælger du en filtype og trykker Gem." #: lib/pychess/widgets/tipOfTheDay.py:55 msgid "" "Do you know that you can call flag when the clock is with you, " "Actions > Call Flag." msgstr "Ved du, at du kan kræve sejr ved tid, hvis din modstander er løbet tør? Bare vælg Værktøjer > Kræv sejr ved tid." #: lib/pychess/widgets/tipOfTheDay.py:56 msgid "Pressing Ctrl+Z to offer opponent the possible rollback moves." msgstr "Tryk Ctrl+Z for at spørge om lov til at fortryde dit træk." #: lib/pychess/widgets/tipOfTheDay.py:57 msgid "" "To play on Fullscreen mode, just type F11. Coming back, F11 " "again." msgstr "For at spille med i fuldskærmstilstand trykker du bare F11. Du kan altid komme tilbage ved F11 igen." #: lib/pychess/widgets/tipOfTheDay.py:58 msgid "Hint mode analyzing your game, enable this type Ctrl+H." msgstr "Hinttilstand analyserer dit spil. Du kan slå det til ved at trykke Ctrl+H." #: lib/pychess/widgets/tipOfTheDay.py:59 msgid "" "Spy mode analyzing the oponnent game, enable this type Ctrl+Y." msgstr "Spiontilstand analyserer modstanderens spil, og giver dig indirekte hints om farer. Du kan slå det til ved at trykke Ctrl+Y." #: lib/pychess/widgets/tipOfTheDay.py:60 msgid "" "You can play chess listening to the sounds of the game, for that, " "Settings > Preferences > Sound tab, enable Use " "sounds in PyChess and choose your preferred sounds." msgstr "Du kan ændre lydene i PyChess under Instillinger > Præference > Lyde. Klik Brug lyde i PyChess og vælg lydene efter smag." #: lib/pychess/widgets/tipOfTheDay.py:61 msgid "" "Do you know that you can help translate Pychess in your language, " "Help > Translate Pychess." msgstr "Vidste du, at du kan hjælpe med at oversætte PyChess til forskellige sprog? Vælg Hjælp > Oversæt PyChess." #: lib/pychess/widgets/tipOfTheDay.py:62 msgid "" "Do you know that it is possible to finish a chess game in just 2 turns?" msgstr "Vidste du, at det er muligt at vinde et spil i kun to træk?" #: lib/pychess/widgets/tipOfTheDay.py:63 msgid "" "Do you know that the number of possible chess games exceeds the number of " "atoms in the Universe?" msgstr "Vidste du at antallet af mulige skakspil overskrider antallet af atomer i universet?" #: lib/pychess/ic/managers/ChatManager.py:184 msgid "Shout" msgstr "Råb" #: lib/pychess/ic/managers/ChatManager.py:185 msgid "Chess Shout" msgstr "Råb om skak" #: lib/pychess/ic/managers/ChatManager.py:195 #, python-format msgid "Unofficial channel %d" msgstr "Uofficiel kanal %d" #: lib/pychess/Utils/lutils/LBoard.py:152 #, python-format msgid "" "FEN needs 6 data fields. \n" "\n" "%s" msgstr "" #: lib/pychess/Utils/lutils/LBoard.py:154 #, python-format msgid "" "FEN needs at least 2 data fields in fenstr. \n" "\n" "%s" msgstr "" #: lib/pychess/Utils/lutils/LBoard.py:175 #, python-format msgid "" "Needs 7 slashes in piece placement field. \n" "\n" "%s" msgstr "" #: lib/pychess/Utils/lutils/LBoard.py:178 #, python-format msgid "" "Active color field must be one of w or b. \n" "\n" "%s" msgstr "" #: lib/pychess/Utils/lutils/LBoard.py:189 #, python-format msgid "" "Castling availability field is not legal. \n" "\n" "%s" msgstr "" #: lib/pychess/Utils/lutils/LBoard.py:192 #, python-format msgid "" "En passant cord is not legal. \n" "\n" "%s" msgstr "" #: lib/pychess/Utils/lutils/lmove.py:260 msgid "invalid promoted piece" msgstr "" #: lib/pychess/Utils/lutils/lmove.py:272 msgid "the move needs a piece and a cord" msgstr "trækket skal have en brik og en koordinat" #: lib/pychess/Utils/lutils/lmove.py:306 lib/pychess/Utils/lutils/lmove.py:556 msgid "promotion move without promoted piece is incorrect" msgstr "" #: lib/pychess/Utils/lutils/lmove.py:312 #, python-format msgid "the captured cord (%s) is incorrect" msgstr "den slåede koordinat (%s) er forkert" #: lib/pychess/Utils/lutils/lmove.py:323 #, python-format msgid "the end cord (%s) is incorrect" msgstr "" #: lib/pychess/Utils/lutils/strateval.py:24 sidepanel/commentPanel.py:191 #: sidepanel/commentPanel.py:208 msgid "and" msgstr "og" #: lib/pychess/Utils/lutils/strateval.py:43 msgid "draws" msgstr "sætter remis" #: lib/pychess/Utils/lutils/strateval.py:45 msgid "mates" msgstr "sætter skakmat" #: lib/pychess/Utils/lutils/strateval.py:49 msgid "puts opponent in check" msgstr "sætter skak" #: lib/pychess/Utils/lutils/strateval.py:73 msgid "improves king safety" msgstr "forbedrer kongens sikkerhed" #: lib/pychess/Utils/lutils/strateval.py:75 msgid "slightly improves king safety" msgstr "forbedrer kongens sikkerhed en smule" #: lib/pychess/Utils/lutils/strateval.py:108 msgid "moves a rook to an open file" msgstr "rykker et tårn til en åben linje" #: lib/pychess/Utils/lutils/strateval.py:109 msgid "moves an rook to a half-open file" msgstr "rykker et tårn til en halvåben linje" #: lib/pychess/Utils/lutils/strateval.py:119 #: lib/pychess/Utils/lutils/strateval.py:121 #: lib/pychess/Utils/lutils/strateval.py:124 #: lib/pychess/Utils/lutils/strateval.py:126 #, python-format msgid "moves bishop into fianchetto: %s" msgstr "rykker en løber i fianchetto: %s" #: lib/pychess/Utils/lutils/strateval.py:132 #, python-format msgid "promotes a Pawn to a %s" msgstr "forfremmer en bonde til en %s" #: lib/pychess/Utils/lutils/strateval.py:135 msgid "castles" msgstr "rokerer" #: lib/pychess/Utils/lutils/strateval.py:158 msgid "takes back material" msgstr "genvinder materiale" #: lib/pychess/Utils/lutils/strateval.py:162 #: lib/pychess/Utils/lutils/strateval.py:170 msgid "sacrifies material" msgstr "ofrer materiale" #: lib/pychess/Utils/lutils/strateval.py:164 msgid "exchanges material" msgstr "udbytter materiale" #: lib/pychess/Utils/lutils/strateval.py:166 msgid "captures material" msgstr "vinder materiale" #: lib/pychess/Utils/lutils/strateval.py:291 #, python-format msgid "rescues a %s" msgstr "redder en %s" #: lib/pychess/Utils/lutils/strateval.py:294 #, python-format msgid "threatens to win material by %s" msgstr "truer med at slå på %s" #: lib/pychess/Utils/lutils/strateval.py:296 #, python-format msgid "increases the pressure on %s" msgstr "forhøjrer presset på %s" #: lib/pychess/Utils/lutils/strateval.py:298 #, python-format msgid "defends %s" msgstr "forsvarer %s" #: lib/pychess/Utils/lutils/strateval.py:336 #, python-format msgid "pins an enemy %(oppiece)s on the %(piece)s at %(cord)s" msgstr "låser en fjendtlig %(oppiece)s på %(piece)s på %(cord)s" #: lib/pychess/Utils/lutils/strateval.py:369 #, python-format msgid "White has a new piece in outpost: %s" msgstr "Hvid har en ny forpost: %s" #: lib/pychess/Utils/lutils/strateval.py:377 #, python-format msgid "Black has a new piece in outpost: %s" msgstr "Sort har en ny forpost: %s" #: lib/pychess/Utils/lutils/strateval.py:416 #, python-format msgid "%(color)s has a new passed pawn on %(cord)s" msgstr "%(color)s har en passeret bonde på %(cord)s" #: lib/pychess/Utils/lutils/strateval.py:470 msgid "half-open" msgstr "halvåben" #: lib/pychess/Utils/lutils/strateval.py:472 #, python-format msgid "in the %(x)s%(y)s file" msgstr "i %(x)s%(y)s filen" #: lib/pychess/Utils/lutils/strateval.py:474 #, python-format msgid "in the %(x)s%(y)s files" msgstr "i %(x)s%(y)s filerne" #: lib/pychess/Utils/lutils/strateval.py:477 #, python-format msgid "%(color)s got a double pawn %(place)s" msgstr "%(color)s har en dobbelbonde på %(place)s" #: lib/pychess/Utils/lutils/strateval.py:478 #, python-format msgid "%(color)s got new double pawns %(place)s" msgstr "%(color)s har nye dobbeltbønder på %(place)s" #: lib/pychess/Utils/lutils/strateval.py:485 #, python-format msgid "%(color)s got an isolated pawn in the %(x)s file" msgid_plural "%(color)s got isolated pawns in the %(x)s files" msgstr[0] "%(color)s har en isoleret bonde i %(x)s filen" msgstr[1] "%(color)s har isolerende bønder i %(x)s filerne" #: lib/pychess/Utils/lutils/strateval.py:492 #, python-format msgid "%s moves pawns into stonewall formation" msgstr "%s rykker en bonde i murformation" #: lib/pychess/Utils/lutils/strateval.py:507 #: lib/pychess/Utils/lutils/strateval.py:514 #, python-format msgid "%s can no longer castle" msgstr "%s kan ikke længere rokere" #: lib/pychess/Utils/lutils/strateval.py:508 #: lib/pychess/Utils/lutils/strateval.py:515 #, python-format msgid "%s can no longer castle in queenside" msgstr "%s kan ikke længere rokere i droningeside" #: lib/pychess/Utils/lutils/strateval.py:510 #: lib/pychess/Utils/lutils/strateval.py:517 #, python-format msgid "%s can no longer castle in kingside" msgstr "%s kan ikke længere rokere i kongeside" #: lib/pychess/Utils/lutils/strateval.py:551 #, python-format msgid "%(opcolor)s has a new trapped bishop on %(cord)s" msgstr "%(opcolor)s har en ny fanget løbet på %(cord)s" #: lib/pychess/Utils/lutils/strateval.py:573 #, python-format msgid "develops a pawn: %s" msgstr "udvikler en bonde: %s" #: lib/pychess/Utils/lutils/strateval.py:574 #, python-format msgid "brings a pawn closer to the backrow: %s" msgstr "rykker en bonde tættere på bagrækken: %s" #: lib/pychess/Utils/lutils/strateval.py:591 #, python-format msgid "brings a %(piece)s closer to enemy king: %(cord)s" msgstr "bringer en %(piece)s tættere på modstanderens konge: %(cord)s" #: lib/pychess/Utils/lutils/strateval.py:594 #, python-format msgid "develops a %(piece)s: %(cord)s" msgstr "udvikler en %(piece)s: %(cord)s" #: lib/pychess/Utils/lutils/strateval.py:612 #, python-format msgid "places a %(piece)s more active: %(cord)s" msgstr "placerer en %(piece)s mere aktivt: %(cord)s" #: lib/pychess/Utils/lutils/strateval.py:638 msgid "White should do pawn storm in right" msgstr "Hvid burde iværksætte en bondestorm i højre side" #: lib/pychess/Utils/lutils/strateval.py:640 msgid "Black should do pawn storm in left" msgstr "Sort burde iværksætte en bondestorm i venstre side" #: lib/pychess/Utils/lutils/strateval.py:643 msgid "White should do pawn storm in left" msgstr "Hvid burde iværksætte en bondestorm i venstre side" #: lib/pychess/Utils/lutils/strateval.py:645 msgid "Black should do pawn storm in right" msgstr "Sort burde iværksætte en bondestorm i højre side" #: lib/pychess/Utils/lutils/strateval.py:671 msgid "Black has a rather cramped position" msgstr "Sort har en ret lukket position" #: lib/pychess/Utils/lutils/strateval.py:673 msgid "Black has a slightly cramped position" msgstr "Sort har en lidt lukket position" #: lib/pychess/Utils/lutils/strateval.py:675 msgid "White has a rather cramped position" msgstr "Hvid har en ret lukket position" #: lib/pychess/Utils/lutils/strateval.py:677 msgid "White has a slightly cramped position" msgstr "Hvid har en lidt lukket position" #: sidepanel/annotationPanel.py:26 msgid "Annotation" msgstr "" #: sidepanel/annotationPanel.py:29 msgid "Annotated game" msgstr "" #: sidepanel/annotationPanel.py:236 msgid "Copy PGN" msgstr "" #: sidepanel/annotationPanel.py:249 msgid "Add start comment" msgstr "" #: sidepanel/annotationPanel.py:254 msgid "Add comment" msgstr "" #: sidepanel/annotationPanel.py:258 sidepanel/annotationPanel.py:316 msgid "Edit comment" msgstr "" #: sidepanel/annotationPanel.py:269 msgid "Forced move" msgstr "" #: sidepanel/annotationPanel.py:274 msgid "Add move symbol" msgstr "" #: sidepanel/annotationPanel.py:280 msgid "Unclear position" msgstr "" #: sidepanel/annotationPanel.py:289 msgid "Zugzwang" msgstr "" #: sidepanel/annotationPanel.py:290 msgid "Development adv." msgstr "" #: sidepanel/annotationPanel.py:291 msgid "Initiative" msgstr "" #: sidepanel/annotationPanel.py:292 msgid "With attack" msgstr "" #: sidepanel/annotationPanel.py:293 msgid "Compensation" msgstr "" #: sidepanel/annotationPanel.py:294 msgid "Counterplay" msgstr "" #: sidepanel/annotationPanel.py:295 msgid "Time pressure" msgstr "" #: sidepanel/annotationPanel.py:300 msgid "Add evaluation symbol" msgstr "" #: sidepanel/annotationPanel.py:304 msgid "Remove symbols" msgstr "" #: sidepanel/annotationPanel.py:911 #, python-format msgid "round %s" msgstr "" #: sidepanel/bookPanel.py:21 msgid "Hints" msgstr "" #: sidepanel/bookPanel.py:25 msgid "" "The hint panel will provide computer advice during each stage of the game" msgstr "" #: sidepanel/bookPanel.py:27 msgid "Official PyChess panel." msgstr "Officielt PyChess panel." #: sidepanel/bookPanel.py:87 msgid "Opening Book" msgstr "Åbningsbog" #: sidepanel/bookPanel.py:88 msgid "" "The opening book will try to inspire you during the opening phase of the " "game by showing you common moves made by chess masters" msgstr "Åbningsbogen forsøger i åbningsfasen at inspirere dig til at prøve nye træk, ved at vise dig hvad forskellige stormestre typiske ville rykke." #: sidepanel/bookPanel.py:139 #, python-format msgid "Analysis by %s" msgstr "" #: sidepanel/bookPanel.py:140 #, python-format msgid "" "%s will try to predict which move is best and which side has the advantage" msgstr "" #: sidepanel/bookPanel.py:142 #, python-format msgid "Threat analysis by %s" msgstr "" #: sidepanel/bookPanel.py:143 #, python-format msgid "" "%s will identify what threats would exist if it were your opponent's turn to" " move" msgstr "" #: sidepanel/bookPanel.py:159 sidepanel/bookPanel.py:269 msgid "Calculating..." msgstr "" #: sidepanel/bookPanel.py:300 msgid "" "Engine scores are in units of pawns, from White's point of view. Double " "clicking on analysis lines you can insert them into Annotation panel as " "variations." msgstr "" #: sidepanel/bookPanel.py:302 msgid "" "Adding suggestions can help you find ideas, but slows down the computer's " "analysis." msgstr "" #: sidepanel/bookPanel.py:311 msgid "Endgame Table" msgstr "" #: sidepanel/bookPanel.py:315 msgid "" "The endgame table will show exact analysis when there are few pieces on the " "board." msgstr "" #: sidepanel/bookPanel.py:364 sidepanel/bookPanel.py:367 #, python-format msgid "Mate in %d" msgstr "" #: sidepanel/bookPanel.py:554 msgid "" "In this position,\n" "there is no legal move." msgstr "" #: sidepanel/chatPanel.py:21 msgid "" "The chat panel lets you communicate with your opponent during the game, " "assuming he or she is interested" msgstr "Chatpanelet lader dig kommunikere med din modstander i løbet af spillet. Hvis altså han eller hun er interesseret." #: sidepanel/commentPanel.py:16 msgid "Comments" msgstr "Kommentarer" #: sidepanel/commentPanel.py:20 msgid "The comments panel will try to analyze and explain the moves played" msgstr "Kommentarpanelet forsøger at analysere og forklare de træk, der rykkes." #: sidepanel/commentPanel.py:121 msgid "Initial position" msgstr "Udgansposition" #: sidepanel/commentPanel.py:254 #, python-format msgid "%(color)s moves a %(piece)s to %(cord)s" msgstr "%(color)s rykker en %(piece)s til %(cord)s" #: sidepanel/engineOutputPanel.py:15 msgid "Engines" msgstr "" #: sidepanel/engineOutputPanel.py:20 msgid "" "The engine output panel shows the thinking output of chess engines (computer" " players) during a game" msgstr "" #: sidepanel/engineOutputPanel.py:44 msgid "No chess engines (computer players) are participating in this game." msgstr "" #: sidepanel/historyPanel.py:10 msgid "Move History" msgstr "Notation" #: sidepanel/historyPanel.py:13 msgid "" "The moves sheet keeps track of the players' moves and lets you navigate " "through the game history" msgstr "Notationspanelet gemmer hvad spillerne trækker, og lader dig navigere gennem spilhistorikken." #: sidepanel/scorePanel.py:15 msgid "Score" msgstr "Udvikling" #: sidepanel/scorePanel.py:19 msgid "" "The score panel tries to evaluate the positions and shows you a graph of the" " game progress" msgstr "Panelet viser udviklingen i de pointtal hver position tildeles." pychess-0.12.2/lang/da/LC_MESSAGES/pychess.mo0000644000175000017470000011252512653231272020666 0ustar tamasusers00000000000000' '''%(`.(((+('(# )0)*I),t)0))))#*$,*'Q*y* *!****+# +1+L+%Q+w+++9+'+@,V,g,x,,,,E,-+-#G-$k- ------L-K. _.l.~.Q.&.C /7N/U/*/(000F0X0i0 }000 0 00 0C0 1)1*;1 f1r1Qt11!12 "2C2Q`2 2K2$36D3#{3!3-3&3-4;D4444$4#4%4"5#$5 H5R5d5j5q5 y5 5555 55 55 5P6T6Z6p6 y66666 666 6 7727L7GQ7`7a7i\8 88 8 88 889 9%9;9 V9b9q9w9999 99 9999 9 :X:cj:]:q,;S;F;9<J<D_<<<<<< << = = ="= 6= B= M=Z=k=|=== ==== = = = => >/>>> G>U>p>y>>>> > > > > > >>?\?s?z??.? ?? ??@@@ !@ +@ 8@E@J@O@ i@v@@@@@@ @E@1A 9A#CAgAAA @BLBNB TB _BlBnBvB}BB BBB BBB B BB BBB CC"'CJC YCcCzCC CC CCCC CCD D D&D /D9DLD bDoDDDh^E"ECE5.F9dF3FFFTF HGZVGGGGHH`5HHH0I@IVIfIZwIIKIA1JAsJJJJJPJ9K KKLLL0L BLPL _LiLqLLL L LLMLMM N$N#4N%XN"~N#NNNNO9.P?hP9P(Pu QCQ$Q&QR 'RtHRRSTTl$U!UdUV(V0V9V HV SV `VlV rV}VV%V V VV VV VVV W WW .W ;WEW NW$\WW WWWW WWWW XX!X)7X8aXX1X'XY'Y9Y AYLYkYYY Y Y"Y+YYZ'Z?Z\ZbZ!Z ZZ Z ZZZ[[![7[6G[(~[[[ [[[[\#/\!S\u\\\\ 5^B^G^*_^^^.^,_*E_$p__+_-_0`9`Q`X`'t`*`!``"`)"a Lamavaa#aaa$aabbD1b6vb8bbbcc*cFcYWccc4c2dPd_dqdddddSefexeehe2f=8f2vfTf-f',gTgkgggggg g gg g2h:hKhB^hhhNh$i!,iNi diiNi#iPj&cjBj!jj(k-8k1fk9kkkkkk l4>l3sl lllll l llmm m&m` c o|ɓߓ:+,X v $˔%ߔ*0IMk<*-& j{Hp`G[@QzJTS!,yt<.sj f9ICZxc-*s^h}_lyCnL3UV}9fG(vX?H~BD k(3%0!WM>Agx4V/;R71"QOD:JI8E#)~i;, b2PcTi1hm#FXd  ZYtr5e$|PqELWq]>6g:[B?N4%l0m7aa=+o_2'\=w 5`ue|FOUbu]^ ' $)YvpM KNAwS& d{R@r\z"8+n6/ .Ko Gain: min%(black)s won the game%(color)s got a double pawn %(place)s%(color)s got an isolated pawn in the %(x)s file%(color)s got isolated pawns in the %(x)s files%(color)s got new double pawns %(place)s%(color)s has a new passed pawn on %(cord)s%(color)s moves a %(piece)s to %(cord)s%(minutes)d min + %(gain)d sec/move%(name)s %(minutes)d min%(name)s %(minutes)d min %(gain)d sec/move%(name)s %(minutes)d min + %(gain)d sec/move%(opcolor)s has a new trapped bishop on %(cord)s%(white)s won the game%d min%s can no longer castle%s can no longer castle in kingside%s can no longer castle in queenside%s moves pawns into stonewall formation%s returns an error%s was declined by your opponent%s was withdrawn by your opponent'%s' is not a registered name(Blitz)0 Players Ready0 of 010 min + 6 sec/move, 1400↑, White10 min + 6 sec/move, White12002 min, Fischer Random, 1800↓, Black2 min, Fischer Random, Black5 min5 min, 1200-1800, ManualConnect to the Free Online Chess ServerPromote pawn to what?PyChess was unable to load your panel settingsAnalyzingAnimationChess VariantDate of gameEnter Game NotationGame dataHint mode analyzing your game, enable this type Ctrl+H.Initial PositionInstalled SidepanelsName of _first human player:Name of s_econd human player:NewsOpen GameOpponent StrengthOptionsPlay Sound When...PlayersSpy mode analyzing the oponnent game, enable this type Ctrl+Y.Time ControlToolsYour Color_Start GameA file named '%s' already exists. Would you like to replace it?Engine, %s, has diedPyChess is discovering your engines. Please wait.PyChess was not able to save the gameThere are %d games with unsaved moves. Save changes before closing?Unable to save file '%s'Unknown file type '%s'Challenge:A player _checks:A player _moves:A player c_aptures:About ChessAc_tiveActive seeks: %dAddress ErrorAdministratorAll Chess FilesAll FilesAnimate pieces, board rotation and more. Use this on fast machines.Ask to _MoveAsymmetric RandomAuto _rotate board to current human playerAuto-logoutBBecause %(black)s ran out of time and %(white)s has insufficient material to mateBecause %(loser)s disconnectedBecause %(loser)s ran out of timeBecause %(loser)s resignedBecause %(loser)s was checkmatedBecause %(mover)s stalematedBecause %(white)s ran out of time and %(black)s has insufficient material to mateBecause a player lost connectionBecause a player lost connection and the other player requested adjournmentBecause both players ran out of timeBecause neither player has sufficient material to mateBecause of adjudication by an adminBecause the %(white)s engine diedBecause the connection to the server was lostBecause the game exceed the max lengthBecause the last 50 moves brought nothing newBecause the same position was repeated three times in a rowBeepBishopBlackBlack has a new piece in outpost: %sBlack has a rather cramped positionBlack has a slightly cramped positionBlack should do pawn storm in leftBlack should do pawn storm in rightBlindfoldBlindfold AccountBlitzBlitz:Center:ChallengeChallenge: Challenge: Change ToleranceChatChess AdvisorChess Alpha 2 DiagramChess GameChess PositionChess ShoutChess Variants are like the pieces of the last line will be placed on the board.ClockClose _without SavingCommentsConnectingConnecting to serverConnection ErrorConnection was closedConversation infoConversationsCornerCould not save the fileCreate SeekDate/TimeDestination Host UnreachableDetect type automaticallyDiedDo you know that it is possible to finish a chess game in just 2 turns?Do you know that the number of possible chess games exceeds the number of atoms in the Universe?Do you know that you can call flag when the clock is with you, Actions > Call Flag.Do you know that you can help translate Pychess in your language, Help > Translate Pychess.Don't careDrawEdit SeekEdit Seek: EmailEnter GameEnter Game _NotationEvent:FIDE MasterF_ull board animationFace _to Face display modeFile existsFischer RandomGain:Game informationGame is _drawn:Game is _lost:Game is _set-up:Game is _won:Games running: %dGrand MasterGuestHa_ndle:HideHow to PlayHuman BeingIf set, PyChess will use figures to express moved pieces, rather than uppercase letters.If set, the black pieces will be head down, suitable for playing against friends on mobile devices.If set, the board will turn after each move, to show the natural view for the current player.If set, the playing board will display labels and ranks for each chess field. These are usable in chess notation.If set, this hides the tab in the top of the playing window, when it is not needed.If you don't save, new changes to your games will be permanently lost.Initial positionInternational MasterIt is not possible later to continue the game, if you don't save it.Jump to initial positionJump to latest positionKKingKnightKnight oddsLeave _FullscreenLightningLightning:Loaded gameLoading player dataLocal EventLocal SiteLog on ErrorLog on as G_uestLog on as _GuestLogging on to serverLosersLossMamer ManagerManualManually accept opponentMinutes:Minutes: More channelsMore playersMove HistoryNNameNever use animation. Use this on slow machines.New GameNo _animationNo conversation's selectedNo soundNormalObserved _ends:OddsOffer Ad_journmentOffer RematchOffer _AbortOffer _DrawOffer _PauseOffer _ResumeOffer _UndoOfficial PyChess panel.OfflineOn FICS, your "Wild" rating encompasses all of the following variants at all time controls: OnlineOnly animate _movesOnly animate piece moves.Only registered users may talk to this channelOpen GameOpen Sound FileOpening BookOpponent's strength: OtherPPawnPawn oddsPawns PassedPawns PushedPingPlayPlay Fischer Random chessPlay RematchPlay _Internet ChessPlay normal chess rulesPlayer _RatingPo_rts:Pre_viewPrefer figures in _notationPreferencesPressing Ctrl+Z to offer opponent the possible rollback moves.PrivatePromotionPyChess - Connect to Internet ChessPyChess - Internet Chess: FICSPyChess Information WindowPyChess has lost connection to the engine, probably because it has died. You can try to start a new game with the engine, or try to play against another one.PyChess.py:QQueenQueen oddsQuit PyChessRR_esignRandomRapidRatedRated gameRatingRookRook oddsRound:S_ign upSave GameSave Game _AsSave moves before closing?Saved gameScoreSearch:Seek _GraphSelect sound file...Select the games you want to save:Send ChallengeSend seekService RepresentativeSetting up environmentSetup PositionSho_w cordsShoutShow _ChatShow tips at startupShredderLinuxChess:ShuffleSide_panelsSimple Chess PositionSite:Sp_y modeSpentStandardStandard:Step back one moveStep forward one moveTeam AccountThe abort offerThe adjourn offerThe chain button is disabled because you are logged in as a guest. Guests can't establish ratings, and the chain button's state has no effect when there is no rating to which to tie "Opponent Strength" toThe chat panel lets you communicate with your opponent during the game, assuming he or she is interestedThe clock hasn't been started yet.The comments panel will try to analyze and explain the moves playedThe connection was broken - got "end of file" messageThe displayed name of the first human player, e.g., John.The displayed name of the guest player, e.g., Mary.The draw offerThe error was: %sThe file already exists in '%s'. If you replace it, its content will be overwritten.The flag callThe game can't be read to end, because of an error parsing move %(moveno)s '%(notation)s'.The game ended in a drawThe game has been abortedThe game has been adjournedThe game has been killedThe move failed because %s.The moves sheet keeps track of the players' moves and lets you navigate through the game historyThe offer to switch sidesThe opening book will try to inspire you during the opening phase of the game by showing you common moves made by chess mastersThe pause offerThe reason is unknownThe resignationThe resume offerThe score panel tries to evaluate the positions and shows you a graph of the game progressThe takeback offerThere is %d game with unsaved moves.There are %d games with unsaved moves.This option is not applicable because you're challenging a playerThis option is not available because you're challenging a guest, TimeTime control: Tip Of The dayTip of the DayTo play on Fullscreen mode, just type F11. Coming back, F11 again.To save a game Game > Save Game As, give the filename and choose where you want to be saved. At the bottom choose extension type of the file, and Save.Tolerance:Tournament DirectorTranslate PyChessTypeUnable to accept %sUndescribed panelUndo one moveUndo two movesUninstallUnknownUnofficial channel %dUnratedUntimedUpside DownUse _analyzerUse _inverted analyzerWas unable to save '%(uri)s' as PyChess doesn't know the format '%(ending)s'.WelcomeWhen this button is in the "locked" state, the relationship between "Opponent's strength" and "Your strength" will be preserved when a) your rating for the type of game sought has changed b) you change the variant or the time controlWhiteWhite has a new piece in outpost: %sWhite has a rather cramped positionWhite has a slightly cramped positionWhite should do pawn storm in leftWhite should do pawn storm in rightWildWinYou can play chess listening to the sounds of the game, for that, Settings > Preferences > Sound tab, enable Use sounds in PyChess and choose your preferred sounds.You can start a new game by Game > New Game, in New Game window do you can choose Players, Time Control and Chess Variants.You can't play rated games because "Untimed" is checked, You can't play rated games because you are logged in as a guestYou can't select a variant because "Untimed" is checked, You can't switch colors during the game.You don't have the necessary rights to save the file. Please ensure that you have given the right path and try again.You have been logged out because you were idle more than 60 minutesYou have opened no conversations yetYou have tried to undo too many moves.You sent a draw offerYour opponent asks you to hurry!Your opponent has asked that the game be aborted. If you accept this offer, the game will end with no rating change.Your opponent has asked that the game be adjourned. If you accept this offer, the game will be adjourned and you can resume it later (when your opponent is online and both players agree to resume).Your opponent has asked that the game be paused. If you accept this offer, the game clock will be paused until both players agree to resume the game.Your opponent has asked that the game be resumed. If you accept this offer, the game clock will continue from where it was paused.Your opponent has asked that the last %s move(s) be undone. If you accept this offer, the game will continue from the earlier position.Your opponent has offered you a draw. If you accept this offer, the game will end with a score of 1/2 - 1/2.Your opponent is not out of time.Your panel settings have been reset. If this problem repeats, you should report it to the developersYour strength: _Accept_Actions_Black player:_Call Flag_Clear Seeks_Fullscreen_Game_Game List_General_Help_Hide tabs when only one game is open_Hint mode_Load Game_Log Off_Log Viewer_Name:_New Game_Next_Observed moves:_Opponent:_Password:_Play Normal chess_Player List_Previous_Replace_Rotate Board_Save %d document_Save %d documents_Save %d documents_Save Game_Seeks / Challenges_Show Sidepanels_Sounds_Start Game_Use sounds in PyChess_View_White player:_Your Color:andand guests can't play rated gamesand on FICS, untimed games can't be ratedand on FICS, untimed games have to be normal chess rulesask your opponent to movebrings a %(piece)s closer to enemy king: %(cord)sbrings a pawn closer to the backrow: %scall your opponents flagcaptures materialcastlesdefends %sdevelops a %(piece)s: %(cord)sdevelops a pawn: %sdrawsexchanges materialgnuchess:half-openhttp://en.wikipedia.org/wiki/Chesshttp://en.wikipedia.org/wiki/Rules_of_chessimproves king safetyin the %(x)s%(y)s filein the %(x)s%(y)s filesincreases the pressure on %smatesmoves a rook to an open filemoves an rook to a half-open filemoves bishop into fianchetto: %sofoffer a drawoffer a pauseoffer a takebackoffer an abortoffer to adjournoffer to resumeoffer to switch sidesonline in totalpins an enemy %(oppiece)s on the %(piece)s at %(cord)splaces a %(piece)s more active: %(cord)spromotes a Pawn to a %sputs opponent in checkrescues a %sresignsacrifies materialslightly improves king safetytakes back materialthe captured cord (%s) is incorrectthe move needs a piece and a cordthreatens to win material by %svs.window1Project-Id-Version: pychess Report-Msgid-Bugs-To: POT-Creation-Date: 2016-01-27 13:28+0100 PO-Revision-Date: 2016-01-28 08:56+0000 Last-Translator: slav0nic Language-Team: Danish (http://www.transifex.com/gbtami/pychess/language/da/) MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Language: da Plural-Forms: nplurals=2; plural=(n != 1); Ekstra: min%(black)s vandt spillet%(color)s har en dobbelbonde på %(place)s%(color)s har en isoleret bonde i %(x)s filen%(color)s har isolerende bønder i %(x)s filerne%(color)s har nye dobbeltbønder på %(place)s%(color)s har en passeret bonde på %(cord)s%(color)s rykker en %(piece)s til %(cord)s%(minutes)d min + %(gain)d sek/træk%(name)s %(minutes)d min%(name)s %(minutes)d min %(gain)d sek/træk%(name)s %(minutes)d min + %(gain)d sek/træk%(opcolor)s har en ny fanget løbet på %(cord)s%(white)s vandt spillet%d min%s kan ikke længere rokere%s kan ikke længere rokere i kongeside%s kan ikke længere rokere i droningeside%s rykker en bonde i murformation%s returnerer en fejl%s blev afslået af din modstander%s blev trukket tilbage af din modstander'%s' er ikke et registreret navn(Hurtig)0 Spillere Klar0 af 010 min + 6 sek/træk, 1400↑, Hvid10 min + 6 sek/træk, Hvid12002 min, Fischer Random, 1800↓, Sort2 min, Fischer Random, Sort5 min5 min, 1200-1800, ManuelForbind dig til den frie online skak server - FICSHvad vil du forfremme din bonde til?PyChess kunne ikke indlæse dine panerAnalyseAnimationSkakvariantSpil datoIndtast spilnotationSpil dataHinttilstand analyserer dit spil. Du kan slå det til ved at trykke Ctrl+H.UdgangspositionInstallerede sidepanelerNavnet på den _første menneskelige spiller:Navnet på den and_en menneskelige spiller:NyhederÅben spilModstanderstyrkeValgmulighederSpil lyd når...SpillereSpiontilstand analyserer modstanderens spil, og giver dig indirekte hints om farer. Du kan slå det til ved at trykke Ctrl+Y.TidskontrolMulighederDin farve_Start spilDer eksisterer allerede en fil ved navnet '%s'. Kunne du tænke dig at overskrive den?Skakprogrammet, %s, er gået nedPyChess finder dine motorer. Vent venligst.PyChess kunne ikke gemme spilletDer er %d spil med ugemte træk. Gem ændringerne før du slutter?Kunne ikke gemme filen '%s'Ukendt filttype: '%s'Udfordring:En spiller sætter _skak:En spiller _trækker:En brik _slås:Om skakAk_tivAktive opfordringer: %dAdresse fejlAdministratorAlle skakfilerAlle filerAnimér brikker, brætrotation og mere. Anbefalet.Bed om at _rykkeAsymmetrisk RandomAutomatisk _rotér brættet til den spillende menneskelige spillerAutomatisk aflogningLFordi %(black)s løb tør for tid og %(white)s ikke har materiale til at vindeFordi %(loser)s afbrød forbindelsenFordi %(loser)s løb tør for tidFordi %(loser)s opgavFordi %(loser)s blev sat skakmatFordi %(mover)s satte patFordi %(white)s løb tør for tid og %(black)s ikke har materiale til at vindeFordi en spillet tabte forbindelsenFordi en spillet tabte forbindelsen og den anden spiller anmodede om udsættelseFordi begge spillere løb tør for tidFordi ingen af spillerne har tilstrækkelig materiale for at vindePågrund af en admins bedømmelseFordi den %(white)s motor dødeFordi vi tabte forbindelsen til serverenFordi spillet overskred den maksimale længdeFordi de sidste 50 træk ikke har bragt noget nytFordi den samme position har er blevet gentaget tre gangeBipLøberSortSort har en ny forpost: %sSort har en ret lukket positionSort har en lidt lukket positionSort burde iværksætte en bondestorm i venstre sideSort burde iværksætte en bondestorm i højre sideBlindskakBlindskakbrugerHurtigHurtig:Center:UdfordringUdfordr: Udfordring: Ændr toleranceChatSkakrådgiverChess Alpha 2 diagramSkakspilSkakpositionRåb om skakEn skakvariant kunne f.eks. være, at kun brikkerne på bagrækken - officerene - vil blive placeret på brættet.TidLuk _uden at gemmeKommentarerTilslutterTilslutter til serverForbindelsesfejlForbindelsen blev lukketSamtale informationSamtalerHjørneKunne ikke gemme filenNy OpfordringDato/tidBestemmelsesstedets vært er utilgængeligFind type automatiskDødeVidste du, at det er muligt at vinde et spil i kun to træk?Vidste du at antallet af mulige skakspil overskrider antallet af atomer i universet?Ved du, at du kan kræve sejr ved tid, hvis din modstander er løbet tør? Bare vælg Værktøjer > Kræv sejr ved tid.Vidste du, at du kan hjælpe med at oversætte PyChess til forskellige sprog? Vælg Hjælp > Oversæt PyChess.LigegladRemiRedigérRedigér opfordring: EmailIndtast spilIndtast spil_notationSammenhæng:FIDE MesterF_uld brætanimationAnsigt _til ansigts visningFilen eksistererFischer RandomEkstraSpil informationSpillet ender i _remis:Spillet _tabes:Spillet er _sat op:Spillet _vindes:Igangværende spil: %dStormesterGæstBrugern_avn:SkjulHvordan man spillerMenneskeDette bruger figurer, når skaktræk udtrykkes, i steddet for store bogstaver.Dette spejler de sorte brikker på en måde, der gør det nemt at spille med venner på tavler.Dette drejer brættet efter hvert træk, så det vises naturligt for den spiller, der skal trække.Dette viser række- og kolonnenavne på skakbrættet. Det er brugbart for skaknotation.Dette skjuler fanebladet i toppen af vinduet, når der ikke er brug for det.Hvis du ikke gemmer, vil nye ændringer til spillene blive tabt.UdganspositionInternational MasterDet er ikke muligt senere at fortsætte spillet, hvis du ikke gemmer det.Hop til startpositionenHop til den sidste positionKKongeSpringerSpringerhandicapForlad _fuldskærmLynskakLynskak:Spil åbnetHenter spiller dataLokalt spilLige i nærhedenKunne ikke logge påLog på som g_æstLog på som_GæstLogger ind på serverenAntiTabteMamer ManagerManuelAcceptér modstandere manueltMinutter:Minutter: Flere kanalerFlere spillereNotationSNavnBrug aldrig animation. Anbefalet for langsomme maskiner.Nyt spilIngen _animationDu har ikke valgt nogen samtalerIngen lydNormalObserveret spil _slutter:HandicapTilbyd uds_ættelseTilbyd omkampTilbyd _afbrydelseTilbyd _remisTilbyd _pauseTilbyd genopta_gelseSpørg om lov at fortr_ydeOfficielt PyChess panel.AfkobletPå FICS, omfatter din "Wild" rating alle de følgende varianter ved alle tidskontroller: onlineAnimér kun _trækAnimér kun brikkerne.Kun registrerede brugere må snakke herÅbn spilÅben lydfilÅbningsbogModstanderstyrke: AndetBBondeBondehandicapBønderne passeretBønderne fremskudtPingAfspilSpil Fischer Random skakSpil omkampSpil _InternetskakSpil med normale reglerSpiller _RatingPo_rteForhånds_visningForetræk figurer i _notationenPræferencerTryk Ctrl+Z for at spørge om lov til at fortryde dit træk.PrivatForfremmelsePyChess - Forbind til internetskakPyChess - Internet Skak: FICSPyChess InformationsvinduePyChess har mistet forbindelsen til skakprogrammet, formenligt fordi det er gået ned. Du kan prøve at starte et nyt spil mod programmet, eller spille mod et andet program.PyChess.py:DDronningDroningehandicapAfslut PyChessTOpgi_vTilfældigHurtigRatedRated spilRatingTårnTårnhandicapRunde:Opret _brugerGem spilGem spil _somGem trækkene før vi lukker?Spil gemtUdviklingSøg:_GrafvisningVælg lydfil...Vælg de spil du vil gemme:Send UdfordringSend opfordringServicerepræsentantSætter det sidste opSet position opV_is koordinaterRåbVis _ChatVis tips ved startShredderLinuxChess:ShuffleSide_panelerSimpel skakpositionSted:S_pion modeBrugtStandardStandard:Gå et træk tilbageGå et træk fremHoldbrugerTIlbudet om afbrydelseTilbudet om udskydelseKnappen er inaktiv fordi du er logget på som gæst. Gæster kan ikke få ratings, så knappen har ingen effekt.Chatpanelet lader dig kommunikere med din modstander i løbet af spillet. Hvis altså han eller hun er interesseret.Uret er endnu ikke startet.Kommentarpanelet forsøger at analysere og forklare de træk, der rykkes.Forbindelsen blev afbrudt. Mødte slutningen af strømmenNavnet på den første spiller, f.eks. Jens.Navnet på gæstespilleren, f.eks. Kirsten.Tilbudet om remiFejlen var: %sFilnavnet er allerede brugt i mappen '%s'. Hvis du overskriver den, vil dens nuværende indhold forsvinde.Kravet om tidssejrSpillet kan ikke læses til ende, fordi der var en fejl i trækket %(moveno)s '%(notation)s'.Spillet endte uafgjortSpillet er blevet afbrudtSpillet er blevet udsatSpillet er blevet dræbtTrækket fejlede fordi %s.Notationspanelet gemmer hvad spillerne trækker, og lader dig navigere gennem spilhistorikken.Tilbudet om at skifte sideÅbningsbogen forsøger i åbningsfasen at inspirere dig til at prøve nye træk, ved at vise dig hvad forskellige stormestre typiske ville rykke.TIlbudet om pauseÅrsagen er ukendtOpgivelsenTilbudet om genoptagelsePanelet viser udviklingen i de pointtal hver position tildeles.Tilbudet om fortrydelseDer er %d spil med ugemte træk.Der er %d spil med ugemte træk.Denne mulighed kan ikke bruges, fordi du udfordrer en spillerDenne mulighed er ikke tilgængelig fordi du udfordrer en gæst, TidTidskontrol: Dagens tipDagens tipFor at spille med i fuldskærmstilstand trykker du bare F11. Du kan altid komme tilbage ved F11 igen.For at gemme et spil Spil > Gem spillet som, giv filnavnet og vælg hvor du vil have det gemt. I bunden vælger du en filtype og trykker Gem.Tolerance:TurneringslederOversæt PyChessTypeKunne ikke acceptere %sUbeskrævet panelFortryd ét trækFortryd to trækAfinstallérUkendtUofficiel kanal %dIkke ratedUden tidsbegrænsningPå hovedetBrug _analysatorBrug _omvendt analysatorKunne ikke gemme '%(uri)s' fordi PyChess ikke kender formatet '%(ending)s'.VelkommenNår knappen er "låst" er forholdet mellem "Modstanderstyrke" og "Din styrke" holdt ens, når a) din rating ændrer sig i spiltypen b) du ændrer varianten eller tidskontrollenHvidHvid har en ny forpost: %sHvid har en ret lukket positionHvid har en lidt lukket positionHvid burde iværksætte en bondestorm i venstre sideHvid burde iværksætte en bondestorm i højre sideWildVundneDu kan ændre lydene i PyChess under Instillinger > Præference > Lyde. Klik Brug lyde i PyChess og vælg lydene efter smag.Du kan starte et nyt spil ved Spil > Nyt Spil. I Nyt Spil vinduet kan du vælge Spillere, Tidskontrol og Skakvariant.Du kan ikke spille ratede spil, fordi "Ubegrænset" er slået til, Du kan ikke spille ratede spil, fordi du er logget på som gæstDu kan ikke vælge en variant fordi "Ubegrænset" er sat, Du kan ikke skifte side i løbet af spillet.Du har ikke de nødvendige rettigheder til at gemme filen. Prøv at sikre dig, at du har valgt den rigtige mappe, eller bed din administrator om at udvide dine rettigheder.Du er blevet logget af fordi du var inaktiv i mere end 60 minutterDu har ikke startet nogen samtaler endnuDu har bedt om at udskyde for mange træk.Du har sendt et remistilbudDin modstander beder dig om at skynde sig!Din modstander har bedt om at få spillet afbrudt. Hvis du accepterer dette tilbud vil spillet slutte uden ændring af ratings.Din modstander har spurgt om du vil udsætte spillet. Hvis du acceptere dette tilbud, vil spillet gemmes på serveren, og du kan fortsætte det en anden gang, hvor din modstander er online.Din modstander har bedt om at spillet bliver pauset. Hvis du accepterer dette, vil uret bliver stoppet indtil begge spillere er enige om at fortsætte.Din modstander har bedt om, at spillet bliver genoptaget. Hvis du accepterer, vil uret blive sat igang fra hvor det blev pauset.Din modstander har spurgt om lov at fortryde de sidste %s træk. Hvis du accepterer dette vil spillet fortsætte fra den tidligere position.Din modstander har tilbudt dig remi. Hvis du acceptere dette tilbud vil spillet slutte ½-½Din modstander har stadig tid tilbage.Dine panelinstillinger er blevet nulstillet. Hvis problemet fortsætter, bør du raportere det til udviklerne.Din styrke: _Acceptér_Handlinger_Sort spiller:_Kræv sejr ved tid_Nulstil alle_Fuldskærm_Spil_Spilliste_Generelt_Hjælp_Skjul faneblade, når kun et spil er åbent_Hint mode_Åbn spil_Log af_Logviser_Navn:_Nyt spil_Næste_Observeret spiller rykker:M_odstander:_Adgangskode:S_pil normal skakS_piller liste_Forrige_Overskriv_Rotér brædt_Gem %d dokument_Gem %d dokumenter_Gem %d dokumenter_Gem spil_Op- og Udfordringer_Vis sidepaneler_Lyde_Start spil_Brug lyde i PyChess_Vis_Hvid spiller:_Din farve:ogog gæster kan ikke spille ratede spilog på FICS skal alle ratede spil være tidsbegrænsedeog på FICS kan kun normale spil være tidsubegrænsedebed din modstander om at trækkebringer en %(piece)s tættere på modstanderens konge: %(cord)srykker en bonde tættere på bagrækken: %skræv sejr ved tidvinder materialerokererforsvarer %sudvikler en %(piece)s: %(cord)sudvikler en bonde: %ssætter remisudbytter materialegnuchess:halvåbenhttp://da.wikipedia.org/wiki/Skakhttp://da.wikipedia.org/wiki/Skak#Spillereglerforbedrer kongens sikkerhedi %(x)s%(y)s fileni %(x)s%(y)s filerneforhøjrer presset på %ssætter skakmatrykker et tårn til en åben linjerykker et tårn til en halvåben linjerykker en løber i fianchetto: %saftilbyd remitilbyd pauseanmod of at fortrydetilbyd at afbrydetilbyd at udskydetilbyd at genoptagetilbyd at skifte sidepå nettet totaltlåser en fjendtlig %(oppiece)s på %(piece)s på %(cord)splacerer en %(piece)s mere aktivt: %(cord)sforfremmer en bonde til en %ssætter skakredder en %sopgivofrer materialeforbedrer kongens sikkerhed en smulegenvinder materialeden slåede koordinat (%s) er forkerttrækket skal have en brik og en koordinattruer med at slå på %smodwindow1pychess-0.12.2/lang/az/0000755000175000017470000000000012653231274015110 5ustar tamasusers00000000000000pychess-0.12.2/lang/az/LC_MESSAGES/0000755000175000017470000000000012653231274016675 5ustar tamasusers00000000000000pychess-0.12.2/lang/az/LC_MESSAGES/pychess.po0000644000175000017470000024662412653216201020722 0ustar tamasusers00000000000000# SOME DESCRIPTIVE TITLE. # Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER # This file is distributed under the same license as the pychess package. # # Translators: # elxan , 2007 msgid "" msgstr "" "Project-Id-Version: pychess\n" "Report-Msgid-Bugs-To: \n" "POT-Creation-Date: 2016-01-27 13:28+0100\n" "PO-Revision-Date: 2016-01-28 08:56+0000\n" "Last-Translator: slav0nic \n" "Language-Team: Azerbaijani (http://www.transifex.com/gbtami/pychess/language/az/)\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" "Language: az\n" "Plural-Forms: nplurals=2; plural=(n != 1);\n" # "Plural-Forms: nplurals=INTEGER; plural=EXPRESSION;\n" #: glade/analyze_game.glade:22 msgid "Analyze game" msgstr "" #: glade/analyze_game.glade:87 msgid "Use analyzer:" msgstr "" #: glade/analyze_game.glade:122 glade/PyChess.glade:2054 msgid "Maximum analysis time in seconds:" msgstr "" #: glade/analyze_game.glade:163 msgid "" "If the analyzer finds a move where the evaluation difference (the difference" " between the evaluation for the move it thinks is the best move and the " "evaluation for the move made in the game) exceeds this value, it will add an" " annotation for that move (consisting of the engine's Principal Variation " "for the move) to the Annotation panel" msgstr "" #: glade/analyze_game.glade:164 msgid "Variation annotation creation threshold in centipawns:" msgstr "" #: glade/analyze_game.glade:198 msgid "Analyze from current position" msgstr "" #: glade/analyze_game.glade:214 msgid "Add threatening variation lines " msgstr "" #: glade/analyze_game.glade:229 glade/PyChess.glade:1459 msgid "Colorize analyzed moves" msgstr "" #: glade/analyze_game.glade:244 glade/PyChess.glade:1495 msgid "Show evaluation values" msgstr "" #: glade/discovererDialog.glade:18 msgid "PyChess is discovering your engines. Please wait." msgstr "" #: glade/discovererDialog.glade:77 msgid "PyChess.py:" msgstr "PyChess.py:" #: glade/discovererDialog.glade:89 msgid "ShredderLinuxChess:" msgstr "" #: glade/discovererDialog.glade:101 msgid "gnuchess:" msgstr "gnuşahmat:" #: glade/fics_logon.glade:7 msgid "PyChess - Connect to Internet Chess" msgstr "PyChess - İnternet Şahmatına Qoşul" #: glade/fics_logon.glade:47 msgid "Connect to the Free Online Chess Server" msgstr "Pulsuz Onlayn Şahmat Şəbəkəsinə Qoşul" #: glade/fics_logon.glade:129 glade/taskers.glade:394 msgid "_Password:" msgstr "Ş_ifrə:" #: glade/fics_logon.glade:143 msgid "_Name:" msgstr "_Ad:" #: glade/fics_logon.glade:191 msgid "Log on as _Guest" msgstr "_Qonaq kimi qoşul" #: glade/fics_logon.glade:227 msgid "Host:" msgstr "" #: glade/fics_logon.glade:259 msgid "Po_rts:" msgstr "Po_rtlar:" #: glade/fics_logon.glade:271 msgid "Auto login on startup" msgstr "" #: glade/fics_logon.glade:385 msgid "S_ign up" msgstr "Q_eydiyyatdan keç" #: glade/fics_lounge.glade:35 msgid "Challenge: " msgstr "" #: glade/fics_lounge.glade:97 msgid "Send Challenge" msgstr "" #: glade/fics_lounge.glade:133 msgid "Challenge:" msgstr "" #: glade/fics_lounge.glade:327 glade/fics_lounge.glade:2078 msgid "Lightning:" msgstr "İldırımsürətli:" #: glade/fics_lounge.glade:351 glade/fics_lounge.glade:2102 msgid "Standard:" msgstr "Standart:" #: glade/fics_lounge.glade:375 glade/fics_lounge.glade:2126 msgid "Blitz:" msgstr "Blits:" #: glade/fics_lounge.glade:400 msgid "2 min, Fischer Random, Black" msgstr "" #: glade/fics_lounge.glade:422 msgid "10 min + 6 sec/move, White" msgstr "" #: glade/fics_lounge.glade:444 msgid "5 min" msgstr "" #: glade/fics_lounge.glade:480 msgid "Edit Seek" msgstr "" #: glade/fics_lounge.glade:584 lib/pychess/ic/ICLounge.py:2208 #: lib/pychess/ic/__init__.py:101 lib/pychess/Utils/GameModel.py:206 msgid "Untimed" msgstr "Vaxtsız" #: glade/fics_lounge.glade:637 msgid "Minutes: " msgstr "Dəqiqə: " #: glade/fics_lounge.glade:665 msgid " Gain: " msgstr "" #: glade/fics_lounge.glade:703 msgid "Time control: " msgstr "" #: glade/fics_lounge.glade:716 lib/pychess/ic/FICSObjects.py:56 #: lib/pychess/ic/ICLounge.py:1137 lib/pychess/ic/ICLounge.py:2208 #: lib/pychess/ic/__init__.py:99 msgid "Standard" msgstr "Standart" #: glade/fics_lounge.glade:757 glade/newInOut.glade:633 msgid "Time Control" msgstr "" #: glade/fics_lounge.glade:814 glade/fics_lounge.glade:1346 msgid "Don't care" msgstr "Narahat olma" #: glade/fics_lounge.glade:879 msgid "Your strength: " msgstr "" #: glade/fics_lounge.glade:921 msgid "(Blitz)" msgstr "" #: glade/fics_lounge.glade:951 msgid "Opponent's strength: " msgstr "" #: glade/fics_lounge.glade:1055 msgid "" "When this button is in the \"locked\" state, the relationship\n" "between \"Opponent's strength\" and \"Your strength\" will be\n" "preserved when \n" "a) your rating for the type of game sought has changed\n" "b) you change the variant or the time control" msgstr "" #: glade/fics_lounge.glade:1095 msgid "Center:" msgstr "" #: glade/fics_lounge.glade:1134 msgid "1200" msgstr "" #: glade/fics_lounge.glade:1188 msgid "Tolerance:" msgstr "" #: glade/fics_lounge.glade:1243 lib/pychess/ic/ICLounge.py:2452 msgid "Hide" msgstr "" #: glade/fics_lounge.glade:1289 msgid "Opponent Strength" msgstr "" #: glade/fics_lounge.glade:1386 lib/pychess/Database/gamelist.py:40 #: lib/pychess/ic/ICLounge.py:1357 lib/pychess/ic/ICLounge.py:1557 #: lib/pychess/ic/ICLounge.py:2108 lib/pychess/Utils/repr.py:10 #: lib/pychess/widgets/ChessClock.py:40 #: lib/pychess/widgets/TaskerManager.py:153 msgid "White" msgstr "Ağ" #: glade/fics_lounge.glade:1414 lib/pychess/Database/gamelist.py:40 #: lib/pychess/ic/ICLounge.py:1358 lib/pychess/ic/ICLounge.py:1558 #: lib/pychess/ic/ICLounge.py:2110 lib/pychess/Utils/repr.py:10 #: lib/pychess/widgets/ChessClock.py:40 #: lib/pychess/widgets/TaskerManager.py:154 msgid "Black" msgstr "Qara" #: glade/fics_lounge.glade:1453 msgid "Your Color" msgstr "" #: glade/fics_lounge.glade:1512 msgid "Play normal chess rules" msgstr "" #: glade/fics_lounge.glade:1552 msgid "Play" msgstr "" #: glade/fics_lounge.glade:1618 glade/newInOut.glade:833 msgid "Chess Variant" msgstr "" #: glade/fics_lounge.glade:1676 msgid "Rated game" msgstr "" #: glade/fics_lounge.glade:1692 msgid "Manually accept opponent" msgstr "" #: glade/fics_lounge.glade:1722 msgid "Options" msgstr "" #: glade/fics_lounge.glade:1750 msgid "PyChess - Internet Chess: FICS" msgstr "PyChess - İnternet Şahmatı: FICS" #: glade/fics_lounge.glade:1823 msgid "_Clear Seeks" msgstr "_Axtarışları Təmizlə" #: glade/fics_lounge.glade:1847 msgid "_Accept" msgstr "_Qəbul Et" #: glade/fics_lounge.glade:1871 msgid "_Decline" msgstr "" #: glade/fics_lounge.glade:2151 msgid "2 min, Fischer Random, 1800↓, Black" msgstr "2dəq, Fişer Təsadüfi, 1800↓, Qara" #: glade/fics_lounge.glade:2172 msgid "10 min + 6 sec/move, 1400↑, White" msgstr "10 dəq + 6 san/hərəkət, 1400↑, Ağ" #: glade/fics_lounge.glade:2193 msgid "5 min, 1200-1800, Manual" msgstr "" #: glade/fics_lounge.glade:2247 msgid "Send all seeks" msgstr "" #: glade/fics_lounge.glade:2301 msgid "Send seek" msgstr "Axtarış Göndər" #: glade/fics_lounge.glade:2337 msgid "Create Seek" msgstr "Axtarış Yarat" #: glade/fics_lounge.glade:2353 msgid "_Seeks / Challenges" msgstr "" #: glade/fics_lounge.glade:2374 lib/pychess/ic/ICLounge.py:472 #: lib/pychess/ic/ICLounge.py:670 lib/pychess/ic/ICLounge.py:1357 #: lib/pychess/ic/ICLounge.py:1358 msgid "Rating" msgstr "Reytinq" #: glade/fics_lounge.glade:2399 msgid "Time" msgstr "Vaxt" #: glade/fics_lounge.glade:2419 msgid "Seek _Graph" msgstr "" #: glade/fics_lounge.glade:2444 msgid "0 Players Ready" msgstr "0 Oyunçu Hazırdır" #: glade/fics_lounge.glade:2496 msgid "Challenge" msgstr "Yarış" #: glade/fics_lounge.glade:2549 glade/fics_lounge.glade:2735 msgid "Observe" msgstr "" #: glade/fics_lounge.glade:2602 msgid "Start Private Chat" msgstr "" #: glade/fics_lounge.glade:2659 msgid "_Player List" msgstr "_Oyunçu Siyahısı" #: glade/fics_lounge.glade:2792 msgid "_Game List" msgstr "_Oyun Siyahısı" #: glade/fics_lounge.glade:2847 msgid "_My games" msgstr "" #: glade/fics_lounge.glade:2904 glade/PyChess.glade:841 msgid "Offer _Resume" msgstr "" #: glade/fics_lounge.glade:2962 glade/PyChess.glade:880 msgid "R_esign" msgstr "" #: glade/fics_lounge.glade:3006 glade/PyChess.glade:820 msgid "Offer _Draw" msgstr "_Bərabərlik Təklif Et" #: glade/fics_lounge.glade:3050 msgid "Offer A_bort" msgstr "" #: glade/fics_lounge.glade:3107 msgid "Pre_view" msgstr "B_ax" #: glade/fics_lounge.glade:3151 msgid "Examine" msgstr "" #: glade/fics_lounge.glade:3208 msgid "_Archived" msgstr "" #: glade/fics_lounge.glade:3313 msgid "News" msgstr "Xəbərlər" #: glade/fics_lounge.glade:3345 msgid "Show Console" msgstr "" #: glade/fics_lounge.glade:3359 msgid "Show _Chat" msgstr "_Çatı Göstər" #: glade/fics_lounge.glade:3373 msgid "_Log Off" msgstr "_Çıx" #: glade/fics_lounge.glade:3393 msgid "Tools" msgstr "Alətlər" #: glade/fics_lounge.glade:3428 msgid "Asymmetric Random " msgstr "" #: glade/findbar.glade:6 msgid "window1" msgstr "" #: glade/findbar.glade:21 msgid "0 of 0" msgstr "" #: glade/findbar.glade:66 msgid "Search:" msgstr "" #: glade/findbar.glade:134 msgid "_Previous" msgstr "" #: glade/findbar.glade:192 msgid "_Next" msgstr "" #: glade/newInOut.glade:45 lib/pychess/widgets/newGameDialog.py:445 msgid "New Game" msgstr "Yeni Oyun" #: glade/newInOut.glade:108 msgid "_Start Game" msgstr "Oyuna _Başla" #: glade/newInOut.glade:130 msgid "Copy FEN" msgstr "" #: glade/newInOut.glade:143 msgid "Clear" msgstr "" #: glade/newInOut.glade:156 msgid "Paste FEN" msgstr "" #: glade/newInOut.glade:257 msgid "_Black player:" msgstr "" #: glade/newInOut.glade:274 msgid "_White player:" msgstr "" #: glade/newInOut.glade:385 msgid "Players" msgstr "Oyunçular" #: glade/newInOut.glade:436 msgid "_Untimed" msgstr "" #: glade/newInOut.glade:475 msgid "Blitz: 5 min" msgstr "" #: glade/newInOut.glade:526 msgid "Rapid: 15 min + 10 sec/move" msgstr "" #: glade/newInOut.glade:575 msgid "Normal: 40 min + 15 sec/move" msgstr "" #: glade/newInOut.glade:684 msgid "_Play Normal chess" msgstr "" #: glade/newInOut.glade:724 msgid "Play Fischer Random chess" msgstr "" #: glade/newInOut.glade:774 msgid "Play Losers chess" msgstr "" #: glade/newInOut.glade:919 msgid "Open Game" msgstr "" #: glade/newInOut.glade:1162 msgid "Initial Position" msgstr "" #: glade/newInOut.glade:1219 msgid "Enter Game Notation" msgstr "Gedişlərin Siyahısını Daxil Edin" #: glade/newInOut.glade:1314 msgid "Halfmove clock" msgstr "" #: glade/newInOut.glade:1327 msgid "En passant line" msgstr "" #: glade/newInOut.glade:1339 msgid "Side to move" msgstr "" #: glade/newInOut.glade:1351 msgid "Move number" msgstr "" #: glade/newInOut.glade:1361 msgid "Black O-O" msgstr "" #: glade/newInOut.glade:1375 msgid "Black O-O-O" msgstr "" #: glade/newInOut.glade:1389 msgid "White O-O-O" msgstr "" #: glade/newInOut.glade:1403 msgid "White O-O" msgstr "" #: glade/promotion.glade:7 msgid "Promotion" msgstr "Çevirmə" #: glade/promotion.glade:49 lib/pychess/Utils/repr.py:12 msgid "Queen" msgstr "Vəzir" #: glade/promotion.glade:95 lib/pychess/Utils/repr.py:12 msgid "Rook" msgstr "Top" #: glade/promotion.glade:141 lib/pychess/Utils/repr.py:12 msgid "Bishop" msgstr "Fil" #: glade/promotion.glade:187 lib/pychess/Utils/repr.py:12 msgid "Knight" msgstr "At" #: glade/promotion.glade:233 lib/pychess/Utils/repr.py:12 msgid "King" msgstr "" #: glade/promotion.glade:265 msgid "Promote pawn to what?" msgstr "Piyadanı nəyə çevirəcəksiniz?" #: glade/PyChess.glade:9 msgid "Chess client" msgstr "" #: glade/PyChess.glade:44 msgid "Game information" msgstr "Oyun haqda məlumat" #: glade/PyChess.glade:164 msgid "Event:" msgstr "Hadisə:" #: glade/PyChess.glade:178 msgid "Site:" msgstr "İnternet Səhifəsi:" #: glade/PyChess.glade:204 msgid "Round:" msgstr "Raund:" #: glade/PyChess.glade:237 msgid "White:" msgstr "" #: glade/PyChess.glade:249 msgid "Black:" msgstr "" #: glade/PyChess.glade:302 msgid "Game data" msgstr "Oyun məlumatı" #: glade/PyChess.glade:357 msgid "Date of game" msgstr "Oyunun tarixi" #: glade/PyChess.glade:495 msgid "_Game" msgstr "_Oyun" #: glade/PyChess.glade:502 msgid "_New Game" msgstr "_Yeni Oyun" #: glade/PyChess.glade:515 msgid "Play _Internet Chess" msgstr "" #: glade/PyChess.glade:534 msgid "_Load Game" msgstr "Oyun _Yüklə" #: glade/PyChess.glade:550 msgid "Load _Recent Game" msgstr "" #: glade/PyChess.glade:558 msgid "Open _Database" msgstr "" #: glade/PyChess.glade:569 lib/pychess/widgets/newGameDialog.py:615 msgid "Setup Position" msgstr "" #: glade/PyChess.glade:579 msgid "Enter Game _Notation" msgstr "" #: glade/PyChess.glade:592 msgid "_Save Game" msgstr "_Oyunu Qeyd Et" #: glade/PyChess.glade:606 msgid "Save Game _As" msgstr "Oyunu _Fərqli Qeyd Et" #: glade/PyChess.glade:624 msgid "Share Game" msgstr "" #: glade/PyChess.glade:630 msgid "_Export Position" msgstr "" #: glade/PyChess.glade:644 msgid "_Analyze Game" msgstr "" #: glade/PyChess.glade:678 msgid "Player _Rating" msgstr "Oyunçu _Reytinqi" #: glade/PyChess.glade:723 msgid "_Edit" msgstr "" #: glade/PyChess.glade:734 msgid "_Copy PGN" msgstr "" #: glade/PyChess.glade:746 msgid "_Copy FEN" msgstr "" #: glade/PyChess.glade:763 msgid "_Engines" msgstr "" #: glade/PyChess.glade:789 msgid "_Actions" msgstr "_Hərəkət" #: glade/PyChess.glade:800 msgid "Offer _Abort" msgstr "" #: glade/PyChess.glade:810 msgid "Offer Ad_journment" msgstr "" #: glade/PyChess.glade:831 msgid "Offer _Pause" msgstr "" #: glade/PyChess.glade:847 msgid "Offer _Undo" msgstr "" #: glade/PyChess.glade:870 msgid "_Call Flag" msgstr "_Bayrağı Endir" #: glade/PyChess.glade:890 msgid "Ask to _Move" msgstr "" #: glade/PyChess.glade:905 msgid "Auto Call _Flag" msgstr "" #: glade/PyChess.glade:918 msgid "_View" msgstr "_Görünüş" #: glade/PyChess.glade:925 msgid "_Rotate Board" msgstr "Taxtanı _Çevir" #: glade/PyChess.glade:939 msgid "_Fullscreen" msgstr "" #: glade/PyChess.glade:952 msgid "Leave _Fullscreen" msgstr "" #: glade/PyChess.glade:969 msgid "_Show Sidepanels" msgstr "" #: glade/PyChess.glade:980 msgid "_Log Viewer" msgstr "_Qeyd İzləyicisi" #: glade/PyChess.glade:997 msgid "_Hint mode" msgstr "_Kömək modu" #: glade/PyChess.glade:1009 msgid "Sp_y mode" msgstr "_Şpion modu" #: glade/PyChess.glade:1024 msgid "_Help" msgstr "_Yardım" #: glade/PyChess.glade:1034 msgid "About Chess" msgstr "Şahmat Haqqında" #: glade/PyChess.glade:1043 msgid "How to Play" msgstr "" #: glade/PyChess.glade:1052 msgid "Translate PyChess" msgstr "" #: glade/PyChess.glade:1058 msgid "Tip of the Day" msgstr "" #: glade/PyChess.glade:1153 msgid "Default" msgstr "" #: glade/PyChess.glade:1156 msgid "Knights" msgstr "" #: glade/PyChess.glade:1167 lib/pychess/widgets/preferencesDialog.py:349 msgid "Beep" msgstr "Biip" #: glade/PyChess.glade:1170 lib/pychess/widgets/preferencesDialog.py:350 msgid "Select sound file..." msgstr "Səs Faylını Seç..." #: glade/PyChess.glade:1173 lib/pychess/widgets/preferencesDialog.py:348 msgid "No sound" msgstr "Səssiz" #: glade/PyChess.glade:1180 msgid "Preferences" msgstr "Seçimlər" #: glade/PyChess.glade:1218 msgid "The displayed name of the first human player, e.g., John." msgstr "" #: glade/PyChess.glade:1230 msgid "Name of _first human player:" msgstr "" #: glade/PyChess.glade:1259 msgid "The displayed name of the guest player, e.g., Mary." msgstr "" #: glade/PyChess.glade:1271 msgid "Name of s_econd human player:" msgstr "" #: glade/PyChess.glade:1307 msgid "_Hide tabs when only one game is open" msgstr "_Ancaq səkmə olduqda səkmələri gizlət" #: glade/PyChess.glade:1312 msgid "" "If set, this hides the tab in the top of the playing window, when it is not " "needed." msgstr "" #: glade/PyChess.glade:1326 msgid "_Use main app closer [x] to close all games" msgstr "" #: glade/PyChess.glade:1331 msgid "" "If set, clicking on main application window closer first time it closes all " "games." msgstr "" #: glade/PyChess.glade:1345 msgid "Auto _rotate board to current human player" msgstr "" #: glade/PyChess.glade:1350 msgid "" "If set, the board will turn after each move, to show the natural view for " "the current player." msgstr "" #: glade/PyChess.glade:1364 msgid "Auto _promote to queen" msgstr "" #: glade/PyChess.glade:1369 msgid "If set, pawn promotes to queen without promotion dialog selection." msgstr "" #: glade/PyChess.glade:1383 msgid "Face _to Face display mode" msgstr "" #: glade/PyChess.glade:1388 msgid "" "If set, the black pieces will be head down, suitable for playing against " "friends on mobile devices." msgstr "" #: glade/PyChess.glade:1402 msgid "Sho_w cords" msgstr "" #: glade/PyChess.glade:1407 msgid "" "If set, the playing board will display labels and ranks for each chess " "field. These are usable in chess notation." msgstr "" #: glade/PyChess.glade:1421 msgid "Show _captured pieces" msgstr "" #: glade/PyChess.glade:1426 msgid "If set, the captured figurines will be shown next to the board." msgstr "" #: glade/PyChess.glade:1440 msgid "Prefer figures in _notation" msgstr "" #: glade/PyChess.glade:1445 msgid "" "If set, PyChess will use figures to express moved pieces, rather than " "uppercase letters." msgstr "" #: glade/PyChess.glade:1464 msgid "If set, PyChess will colorize suboptimal analyzed moves with red." msgstr "" #: glade/PyChess.glade:1477 msgid "Show elapsed move times" msgstr "" #: glade/PyChess.glade:1482 msgid "If set, the elapsed time that a player used for the move is shown." msgstr "" #: glade/PyChess.glade:1500 msgid "If set, the hint analyzer engine evaluation value is shown." msgstr "" #: glade/PyChess.glade:1526 msgid "General Options" msgstr "" #: glade/PyChess.glade:1560 msgid "F_ull board animation" msgstr "" #: glade/PyChess.glade:1565 msgid "Animate pieces, board rotation and more. Use this on fast machines." msgstr "" #: glade/PyChess.glade:1579 msgid "Only animate _moves" msgstr "" #: glade/PyChess.glade:1584 msgid "Only animate piece moves." msgstr "" #: glade/PyChess.glade:1599 msgid "No _animation" msgstr "" #: glade/PyChess.glade:1604 msgid "Never use animation. Use this on slow machines." msgstr "" #: glade/PyChess.glade:1632 msgid "Animation" msgstr "Animasiya" #: glade/PyChess.glade:1651 msgid "_General" msgstr "" #: glade/PyChess.glade:1692 msgid "Use opening _book" msgstr "" #: glade/PyChess.glade:1697 msgid "If set, PyChess will suggest best opening moves on hint panel." msgstr "" #: glade/PyChess.glade:1724 msgid "Polyglot book file:" msgstr "" #: glade/PyChess.glade:1768 msgid "Use _local tablebases" msgstr "" #: glade/PyChess.glade:1773 msgid "" "If set, PyChess will show game results for different moves in positions containing 6 or less pieces.\n" "You can download tablebase files from:\n" "http://www.olympuschess.com/egtb/gaviota/" msgstr "" #: glade/PyChess.glade:1803 msgid "Gaviota TB path:" msgstr "" #: glade/PyChess.glade:1843 msgid "Use _online tablebases" msgstr "" #: glade/PyChess.glade:1848 msgid "" "If set, PyChess will show game results for different moves in positions containing 6 or less pieces.\n" "It will search positions from http://www.k4it.de/" msgstr "" #: glade/PyChess.glade:1870 msgid "Opening, endgame" msgstr "" #: glade/PyChess.glade:1904 msgid "Use _analyzer" msgstr "_Analizatordan istifadə et" #: glade/PyChess.glade:1946 msgid "" "The analyzer will run in the background and analyze the game. This is " "necessary for the hint mode to work" msgstr "" #: glade/PyChess.glade:1978 msgid "Use _inverted analyzer" msgstr "" #: glade/PyChess.glade:2020 msgid "" "The inverse analyzer will analyze the game as if your opponent was to move. " "This is necessary for the spy mode to work" msgstr "" #: glade/PyChess.glade:2096 msgid "Analyzing" msgstr "Analiz edilir" #: glade/PyChess.glade:2118 msgid "_Hints" msgstr "" #: glade/PyChess.glade:2263 msgid "Uninstall" msgstr "" #: glade/PyChess.glade:2317 msgid "Ac_tive" msgstr "" #: glade/PyChess.glade:2367 msgid "Installed Sidepanels" msgstr "" #: glade/PyChess.glade:2382 msgid "Side_panels" msgstr "" #: glade/PyChess.glade:2440 msgid "Light Squares :" msgstr "" #: glade/PyChess.glade:2479 msgid "Dark Squares :" msgstr "" #: glade/PyChess.glade:2515 msgid "Reset Default Colours" msgstr "" #: glade/PyChess.glade:2551 msgid "Board Colours" msgstr "" #: glade/PyChess.glade:2610 msgid "Chess Sets" msgstr "" #: glade/PyChess.glade:2634 msgid "Themes" msgstr "" #: glade/PyChess.glade:2659 msgid "_Use sounds in PyChess" msgstr "PyChessdə _səsdən istifadə et" #: glade/PyChess.glade:2982 msgid "A player _checks:" msgstr "O_ynuçulardan Biri Şah Deyəndə:" #: glade/PyChess.glade:2997 msgid "A player _moves:" msgstr "Oynuçulardan Biri _Gediş Edəndə:" #: glade/PyChess.glade:3010 msgid "Game is _drawn:" msgstr "Oynun _Heç-heçə Qurtaranda:" #: glade/PyChess.glade:3025 msgid "Game is _lost:" msgstr "Oyunu _Uduzanda:" #: glade/PyChess.glade:3040 msgid "Game is _won:" msgstr "_Oyunu Udanda:" #: glade/PyChess.glade:3055 msgid "A player c_aptures:" msgstr "Oyunçulardan Biri Fiqur _Vuranda" #: glade/PyChess.glade:3084 msgid "Game is _set-up:" msgstr "Oyun _Başlayanda" #: glade/PyChess.glade:3136 msgid "_Observed moves:" msgstr "_Müşahidə olunan oynadıqda" #: glade/PyChess.glade:3151 msgid "Observed _ends:" msgstr "Müşahidə olunan oyun _qurtaranda:" #: glade/PyChess.glade:3265 msgid "Short on _time:" msgstr "" #: glade/PyChess.glade:3317 msgid "_Invalid move:" msgstr "" #: glade/PyChess.glade:3369 msgid "Activate alarm when _remaining sec is:" msgstr "" #: glade/PyChess.glade:3416 msgid "Play Sound When..." msgstr "Səs çıxar..." #: glade/PyChess.glade:3438 msgid "_Sounds" msgstr "" #: glade/PyChess.glade:3463 msgid "_Auto save finished games" msgstr "" #: glade/PyChess.glade:3497 msgid "Save files to:" msgstr "" #: glade/PyChess.glade:3525 msgid "Use name format:" msgstr "" #: glade/PyChess.glade:3569 msgid "Names: #n1, #n2" msgstr "" #: glade/PyChess.glade:3582 msgid "Year, month, day: #y, #m, #d" msgstr "" #: glade/PyChess.glade:3619 msgid "Save elapsed move _times" msgstr "" #: glade/PyChess.glade:3644 msgid "Save analyzing engine _evaluation values" msgstr "" #: glade/PyChess.glade:3669 msgid "Save _own games only" msgstr "" #: glade/PyChess.glade:3698 msgid "Save" msgstr "" #: glade/PyChess.glade:3728 msgid "uci" msgstr "" #: glade/PyChess.glade:3731 msgid "xboard" msgstr "" #: glade/PyChess.glade:3739 msgid "Manage engines" msgstr "" #: glade/PyChess.glade:3837 msgid "Command:" msgstr "" #: glade/PyChess.glade:3851 msgid "Protocol:" msgstr "" #: glade/PyChess.glade:3865 msgid "Parameters:" msgstr "" #: glade/PyChess.glade:3878 msgid "Command line parameters needed by the engine." msgstr "" #: glade/PyChess.glade:3903 msgid "" "Engines use uci or xboard communication protocol to talk to the GUI.\n" "If it can use both you can set here which one you like." msgstr "" #: glade/PyChess.glade:3929 msgid "Working directory:" msgstr "" #: glade/PyChess.glade:3942 msgid "The directory where the engine will be started from." msgstr "" #: glade/saveGamesDialog.glade:7 msgid "Quit PyChess" msgstr "" #: glade/saveGamesDialog.glade:24 lib/pychess/widgets/ionest.py:424 msgid "Close _without Saving" msgstr "Qeyt _etmədən bağla" #: glade/saveGamesDialog.glade:83 msgid "_Save %d documents" msgstr "" #: glade/saveGamesDialog.glade:141 msgid "" "There are %d games with unsaved moves. Save changes before " "closing?" msgstr "" #: glade/saveGamesDialog.glade:161 msgid "Select the games you want to save:" msgstr "" #: glade/saveGamesDialog.glade:204 msgid "If you don't save, new changes to your games will be permanently lost." msgstr "" #: glade/taskers.glade:126 msgid "_Opponent:" msgstr "" #: glade/taskers.glade:154 msgid "_Your Color:" msgstr "" #: glade/taskers.glade:219 msgid "_Start Game" msgstr "" #: glade/taskers.glade:338 msgid "Log on as G_uest" msgstr "" #: glade/taskers.glade:410 msgid "Ha_ndle:" msgstr "" #: glade/taskers.glade:469 msgid "_Connect to server" msgstr "" #: glade/tipoftheday.glade:7 msgid "Tip Of The day" msgstr "" #: glade/tipoftheday.glade:62 msgid "Show tips at startup" msgstr "" #: lib/pychess/Main.py:302 msgid "http://en.wikipedia.org/wiki/Chess" msgstr "http://en.wikipedia.org/wiki/Chess" #: lib/pychess/Main.py:305 msgid "http://en.wikipedia.org/wiki/Rules_of_chess" msgstr "http://en.wikipedia.org/wiki/Rules_of_chess" #: lib/pychess/Main.py:370 lib/pychess/widgets/gamenanny.py:80 msgid "Welcome" msgstr "" #: lib/pychess/Database/gamelist.py:40 msgid "Id" msgstr "" #: lib/pychess/Database/gamelist.py:40 msgid "W Elo" msgstr "" #: lib/pychess/Database/gamelist.py:40 msgid "B Elo" msgstr "" #: lib/pychess/Database/gamelist.py:41 msgid "Result" msgstr "" #: lib/pychess/Database/gamelist.py:41 msgid "Event" msgstr "" #: lib/pychess/Database/gamelist.py:41 msgid "Site" msgstr "" #: lib/pychess/Database/gamelist.py:41 msgid "Round" msgstr "" #: lib/pychess/Database/gamelist.py:41 msgid "Date" msgstr "" #: lib/pychess/Database/gamelist.py:41 msgid "ECO" msgstr "" #: lib/pychess/Database/gamelist.py:62 msgid "PyChess Game Database" msgstr "" #: lib/pychess/Database/PgnImport.py:188 #, python-format msgid "The game #%s can't be loaded, because of an error parsing FEN" msgstr "" #: lib/pychess/ic/FICSConnection.py:139 msgid "The connection was broken - got \"end of file\" message" msgstr "" #: lib/pychess/ic/FICSConnection.py:140 #, python-format msgid "'%s' is not a registered name" msgstr "'%s' registrasiya olunmuş ad deyil" #: lib/pychess/ic/FICSConnection.py:141 msgid "" "The entered password was invalid.\n" "If you forgot your password, go to http://www.freechess.org/password to request a new one over email." msgstr "" #: lib/pychess/ic/FICSConnection.py:145 #, python-format msgid "Sorry '%s' is already logged in" msgstr "" #: lib/pychess/ic/FICSConnection.py:146 #, python-format msgid "'%s' is a registered name. If it is yours, type the password." msgstr "" #: lib/pychess/ic/FICSConnection.py:147 msgid "" "Due to abuse problems, guest connections have been prevented.\n" "You can still register on http://www.freechess.org" msgstr "" #: lib/pychess/ic/FICSConnection.py:166 msgid "Connecting to server" msgstr "" #: lib/pychess/ic/FICSConnection.py:181 msgid "Logging on to server" msgstr "" #: lib/pychess/ic/FICSConnection.py:239 msgid "Setting up environment" msgstr "" #: lib/pychess/ic/FICSObjects.py:35 lib/pychess/ic/FICSObjects.py:47 #, python-format msgid "%(player)s is %(status)s" msgstr "" #: lib/pychess/ic/FICSObjects.py:46 msgid "not playing" msgstr "" #: lib/pychess/ic/FICSObjects.py:54 lib/pychess/ic/ICLounge.py:1136 #: lib/pychess/ic/ICLounge.py:2209 lib/pychess/ic/__init__.py:98 #: lib/pychess/widgets/newGameDialog.py:153 msgid "Blitz" msgstr "Blits" #: lib/pychess/ic/FICSObjects.py:58 lib/pychess/ic/ICLounge.py:1137 #: lib/pychess/ic/ICLounge.py:2209 lib/pychess/ic/__init__.py:100 msgid "Lightning" msgstr "İldırımsürətli" #: lib/pychess/ic/FICSObjects.py:60 lib/pychess/Variants/atomic.py:15 msgid "Atomic" msgstr "" #: lib/pychess/ic/FICSObjects.py:62 lib/pychess/Variants/bughouse.py:9 msgid "Bughouse" msgstr "" #: lib/pychess/ic/FICSObjects.py:64 lib/pychess/Variants/crazyhouse.py:9 msgid "Crazyhouse" msgstr "" #: lib/pychess/ic/FICSObjects.py:66 lib/pychess/Variants/losers.py:9 msgid "Losers" msgstr "" #: lib/pychess/ic/FICSObjects.py:68 lib/pychess/Variants/suicide.py:12 msgid "Suicide" msgstr "" #: lib/pychess/ic/FICSObjects.py:70 lib/pychess/ic/__init__.py:129 msgid "Wild" msgstr "" #: lib/pychess/ic/FICSObjects.py:117 msgid "Online" msgstr "" #: lib/pychess/ic/FICSObjects.py:118 lib/pychess/ic/FICSObjects.py:143 msgid "Offline" msgstr "" #: lib/pychess/ic/FICSObjects.py:133 msgid "Available" msgstr "" #: lib/pychess/ic/FICSObjects.py:135 msgid "Playing" msgstr "" #: lib/pychess/ic/FICSObjects.py:141 msgid "Idle" msgstr "" #: lib/pychess/ic/FICSObjects.py:145 msgid "Examining" msgstr "" #: lib/pychess/ic/FICSObjects.py:147 msgid "Not Available" msgstr "" #: lib/pychess/ic/FICSObjects.py:149 msgid "Running Simul Match" msgstr "" #: lib/pychess/ic/FICSObjects.py:151 msgid "In Tournament" msgstr "" #: lib/pychess/ic/FICSObjects.py:308 lib/pychess/ic/FICSObjects.py:492 #: lib/pychess/ic/ICLounge.py:2278 msgid "Unrated" msgstr "Reytinqsiz" #: lib/pychess/ic/FICSObjects.py:491 lib/pychess/ic/ICLounge.py:670 #: lib/pychess/ic/ICLounge.py:1358 lib/pychess/ic/ICLounge.py:1558 #: lib/pychess/ic/ICLounge.py:2113 msgid "Rated" msgstr "Reytinqli" #: lib/pychess/ic/FICSObjects.py:498 lib/pychess/ic/ICLounge.py:2098 #, python-format msgid "%d min" msgstr "" #: lib/pychess/ic/FICSObjects.py:500 #, python-format msgid " + %d sec" msgstr "" #: lib/pychess/ic/FICSObjects.py:517 #, python-format msgid "%(player)s plays %(color)s" msgstr "" #: lib/pychess/ic/FICSObjects.py:519 lib/pychess/ic/ICLounge.py:909 msgid "white" msgstr "" #: lib/pychess/ic/FICSObjects.py:519 lib/pychess/ic/ICLounge.py:909 msgid "black" msgstr "" #: lib/pychess/ic/FICSObjects.py:565 msgid "This is a continuation of an adjourned match" msgstr "" #: lib/pychess/ic/FICSObjects.py:654 msgid "Opponent Rating" msgstr "" #: lib/pychess/ic/FICSObjects.py:656 msgid "Manual Accept" msgstr "" #: lib/pychess/ic/FICSObjects.py:810 msgid "Private" msgstr "" #: lib/pychess/ic/FICSObjects.py:930 lib/pychess/ic/ICLounge.py:527 #: lib/pychess/Savers/epd.py:139 msgid "Unknown" msgstr "Naməlum" #: lib/pychess/ic/ICLogon.py:159 lib/pychess/ic/ICLogon.py:165 msgid "Connection Error" msgstr "Bağlantı Xətası" #: lib/pychess/ic/ICLogon.py:161 msgid "Log on Error" msgstr "Giriş Xətası" #: lib/pychess/ic/ICLogon.py:163 msgid "Connection was closed" msgstr "Bağlantı kəsildi" #: lib/pychess/ic/ICLogon.py:169 msgid "Address Error" msgstr "" #: lib/pychess/ic/ICLogon.py:172 msgid "Auto-logout" msgstr "" #: lib/pychess/ic/ICLogon.py:173 msgid "You have been logged out because you were idle more than 60 minutes" msgstr "" #: lib/pychess/ic/ICLounge.py:222 msgid "You have to set kibitz on to see bot messages here." msgstr "" #: lib/pychess/ic/ICLounge.py:241 msgid "" "You may only have 3 outstanding seeks at the same time. If you want to add a" " new seek you must clear your currently active seeks. Clear your seeks?" msgstr "" #: lib/pychess/ic/ICLounge.py:258 msgid "You can't touch this! You are examining a game." msgstr "" #: lib/pychess/ic/ICLounge.py:270 msgid " has declined your offer for a match" msgstr "" #: lib/pychess/ic/ICLounge.py:283 msgid " is censoring you" msgstr "" #: lib/pychess/ic/ICLounge.py:296 msgid " noplay listing you" msgstr "" #: lib/pychess/ic/ICLounge.py:311 msgid " uses a formula not fitting your match request:" msgstr "" #: lib/pychess/ic/ICLounge.py:325 msgid "to manual accept" msgstr "" #: lib/pychess/ic/ICLounge.py:327 msgid "to automatic accept" msgstr "" #: lib/pychess/ic/ICLounge.py:329 msgid "rating range now" msgstr "" #: lib/pychess/ic/ICLounge.py:330 msgid "Seek updated" msgstr "" #: lib/pychess/ic/ICLounge.py:342 msgid "Your seeks have been removed" msgstr "" #: lib/pychess/ic/ICLounge.py:363 msgid " has arrived" msgstr "" #: lib/pychess/ic/ICLounge.py:370 msgid " has departed" msgstr "" #: lib/pychess/ic/ICLounge.py:374 msgid " is present" msgstr "" #: lib/pychess/ic/ICLounge.py:391 sidepanel/chatPanel.py:17 msgid "Chat" msgstr "" #: lib/pychess/ic/ICLounge.py:472 sidepanel/bookPanel.py:366 msgid "Win" msgstr "" #: lib/pychess/ic/ICLounge.py:472 sidepanel/bookPanel.py:360 msgid "Draw" msgstr "" #: lib/pychess/ic/ICLounge.py:472 sidepanel/bookPanel.py:363 msgid "Loss" msgstr "" #: lib/pychess/ic/ICLounge.py:482 msgid "" "On FICS, your \"Wild\" rating encompasses all of the following variants at " "all time controls:\n" msgstr "" #: lib/pychess/ic/ICLounge.py:494 msgid "Sanctions" msgstr "" #: lib/pychess/ic/ICLounge.py:499 msgid "Email" msgstr "Epoçt" #: lib/pychess/ic/ICLounge.py:504 msgid "Spent" msgstr "" #: lib/pychess/ic/ICLounge.py:506 msgid "online in total" msgstr "" #: lib/pychess/ic/ICLounge.py:512 msgid "Ping" msgstr "" #: lib/pychess/ic/ICLounge.py:517 msgid "Connecting" msgstr "Bağlanılır" #: lib/pychess/ic/ICLounge.py:544 msgid "" "You are currently logged in as a guest.\n" "A guest can't play rated games and therefore isn't able to play as many of the types of matches offered as a registered user. To register an account, go to http://www.freechess.org/Register/index.html." msgstr "" #: lib/pychess/ic/ICLounge.py:669 lib/pychess/ic/ICLounge.py:1136 msgid "Name" msgstr "Ad" #: lib/pychess/ic/ICLounge.py:670 lib/pychess/ic/ICLounge.py:1358 #: lib/pychess/ic/ICLounge.py:1558 msgid "Type" msgstr "Növ" #: lib/pychess/ic/ICLounge.py:670 lib/pychess/ic/ICLounge.py:1558 msgid "Clock" msgstr "Saat" #: lib/pychess/ic/ICLounge.py:726 lib/pychess/ic/ICLounge.py:923 #: lib/pychess/Players/Human.py:250 msgid "Accept" msgstr "" #: lib/pychess/ic/ICLounge.py:728 msgid "Assess" msgstr "" #: lib/pychess/ic/ICLounge.py:734 msgid "Archived" msgstr "" #: lib/pychess/ic/ICLounge.py:848 #, python-format msgid "Active seeks: %d" msgstr "" #: lib/pychess/ic/ICLounge.py:897 #, python-format msgid "" " would like to resume your adjourned %(time)s %(gametype)s " "game." msgstr "" #: lib/pychess/ic/ICLounge.py:902 #, python-format msgid "" " challenges you to a %(time)s %(rated)s %(gametype)s game" msgstr "" #: lib/pychess/ic/ICLounge.py:907 #, python-format msgid " where %(player)s plays %(color)s." msgstr "" #: lib/pychess/ic/ICLounge.py:924 lib/pychess/Players/Human.py:251 msgid "Decline" msgstr "" #: lib/pychess/ic/ICLounge.py:1065 msgid " min" msgstr "" #: lib/pychess/ic/ICLounge.py:1137 msgid "Status" msgstr "" #: lib/pychess/ic/ICLounge.py:1203 lib/pychess/ic/ICLounge.py:1233 #, python-format msgid "Players: %d" msgstr "" #: lib/pychess/ic/ICLounge.py:1469 #, python-format msgid "Games running: %d" msgstr "" #: lib/pychess/ic/ICLounge.py:1559 msgid "Date/Time" msgstr "" #: lib/pychess/ic/ICLounge.py:1614 #, python-format msgid "" " with whom you have an adjourned %(timecontrol)s %(gametype)s " "game is online." msgstr "" #: lib/pychess/ic/ICLounge.py:1635 msgid "Request Continuation" msgstr "" #: lib/pychess/ic/ICLounge.py:1637 msgid "Examine Adjourned Game" msgstr "" #: lib/pychess/ic/ICLounge.py:1965 msgid "" "The chain button is disabled because you are logged in as a guest. Guests " "can't establish ratings, and the chain button's state has no effect when " "there is no rating to which to tie \"Opponent Strength\" to" msgstr "" #: lib/pychess/ic/ICLounge.py:2006 msgid "Challenge: " msgstr "" #: lib/pychess/ic/ICLounge.py:2044 msgid "If set you can refuse players accepting your seek" msgstr "" #: lib/pychess/ic/ICLounge.py:2048 lib/pychess/ic/ICLounge.py:2051 msgid "This option is not applicable because you're challenging a player" msgstr "" #: lib/pychess/ic/ICLounge.py:2064 msgid "Edit Seek: " msgstr "" #: lib/pychess/ic/ICLounge.py:2095 #, python-format msgid "%(minutes)d min + %(gain)d sec/move" msgstr "" #: lib/pychess/ic/ICLounge.py:2116 msgid "Manual" msgstr "" #: lib/pychess/ic/ICLounge.py:2256 msgid "Any strength" msgstr "" #: lib/pychess/ic/ICLounge.py:2308 msgid "You can't play rated games because you are logged in as a guest" msgstr "" #: lib/pychess/ic/ICLounge.py:2312 msgid "You can't play rated games because \"Untimed\" is checked, " msgstr "" #: lib/pychess/ic/ICLounge.py:2313 msgid "and on FICS, untimed games can't be rated" msgstr "" #: lib/pychess/ic/ICLounge.py:2317 msgid "This option is not available because you're challenging a guest, " msgstr "" #: lib/pychess/ic/ICLounge.py:2318 msgid "and guests can't play rated games" msgstr "" #: lib/pychess/ic/ICLounge.py:2332 lib/pychess/Variants/shuffle.py:16 #: lib/pychess/widgets/newGameDialog.py:266 msgid "Shuffle" msgstr "" #: lib/pychess/ic/ICLounge.py:2333 lib/pychess/widgets/newGameDialog.py:267 msgid "Other (standard rules)" msgstr "" #: lib/pychess/ic/ICLounge.py:2334 lib/pychess/widgets/newGameDialog.py:268 msgid "Other (non standard rules)" msgstr "" #: lib/pychess/ic/ICLounge.py:2421 msgid "You can't select a variant because \"Untimed\" is checked, " msgstr "" #: lib/pychess/ic/ICLounge.py:2422 msgid "and on FICS, untimed games have to be normal chess rules" msgstr "" #: lib/pychess/ic/ICLounge.py:2454 msgid "Change Tolerance" msgstr "" #: lib/pychess/ic/__init__.py:102 msgid "Examined" msgstr "" #: lib/pychess/ic/__init__.py:103 msgid "Other" msgstr "" #: lib/pychess/ic/__init__.py:182 msgid "Administrator" msgstr "" #: lib/pychess/ic/__init__.py:182 msgid "Blindfold Account" msgstr "" #: lib/pychess/ic/__init__.py:182 msgid "Computer" msgstr "" #: lib/pychess/ic/__init__.py:183 msgid "Team Account" msgstr "" #: lib/pychess/ic/__init__.py:183 msgid "Unregistered" msgstr "" #: lib/pychess/ic/__init__.py:183 msgid "Chess Advisor" msgstr "" #: lib/pychess/ic/__init__.py:184 msgid "Service Representative" msgstr "" #: lib/pychess/ic/__init__.py:184 msgid "Tournament Director" msgstr "" #: lib/pychess/ic/__init__.py:184 msgid "Mamer Manager" msgstr "" #: lib/pychess/ic/__init__.py:185 msgid "Grand Master" msgstr "" #: lib/pychess/ic/__init__.py:185 msgid "International Master" msgstr "" #: lib/pychess/ic/__init__.py:185 msgid "FIDE Master" msgstr "" #: lib/pychess/ic/__init__.py:186 msgid "Woman Grand Master" msgstr "" #: lib/pychess/ic/__init__.py:186 msgid "Woman International Master" msgstr "" #: lib/pychess/ic/__init__.py:186 msgid "Woman FIDE Master" msgstr "" #: lib/pychess/ic/__init__.py:187 msgid "Dummy Account" msgstr "" #: lib/pychess/ic/__init__.py:191 msgid "*" msgstr "" #: lib/pychess/ic/__init__.py:191 lib/pychess/Utils/repr.py:14 msgid "B" msgstr "F" #: lib/pychess/ic/__init__.py:191 msgid "C" msgstr "" #: lib/pychess/ic/__init__.py:192 msgid "T" msgstr "" #: lib/pychess/ic/__init__.py:192 msgid "U" msgstr "" #: lib/pychess/ic/__init__.py:192 msgid "CA" msgstr "" #: lib/pychess/ic/__init__.py:193 msgid "SR" msgstr "" #: lib/pychess/ic/__init__.py:193 msgid "TD" msgstr "" #: lib/pychess/ic/__init__.py:193 msgid "TM" msgstr "" #: lib/pychess/ic/__init__.py:194 msgid "GM" msgstr "" #: lib/pychess/ic/__init__.py:194 msgid "IM" msgstr "" #: lib/pychess/ic/__init__.py:194 msgid "FM" msgstr "" #: lib/pychess/ic/__init__.py:195 msgid "WGM" msgstr "" #: lib/pychess/ic/__init__.py:195 msgid "WIM" msgstr "" #: lib/pychess/ic/__init__.py:195 msgid "WFM" msgstr "" #: lib/pychess/ic/__init__.py:195 msgid "D" msgstr "" #: lib/pychess/ic/__init__.py:195 msgid "H" msgstr "" #: lib/pychess/ic/__init__.py:195 msgid "CM" msgstr "" #: lib/pychess/ic/__init__.py:195 msgid "FA" msgstr "" #: lib/pychess/ic/__init__.py:195 msgid "NM" msgstr "" #: lib/pychess/Players/CECPEngine.py:857 #, python-format msgid "The engine %s reports an error:" msgstr "" #: lib/pychess/Players/Human.py:20 msgid "Your opponent has offered you a draw." msgstr "" #: lib/pychess/Players/Human.py:21 msgid "" "Your opponent has offered you a draw. If you accept this offer, the game " "will end with a score of 1/2 - 1/2." msgstr "" #: lib/pychess/Players/Human.py:23 msgid "Your opponent wants to abort the game." msgstr "" #: lib/pychess/Players/Human.py:24 msgid "" "Your opponent has asked that the game be aborted. If you accept this offer, " "the game will end with no rating change." msgstr "" #: lib/pychess/Players/Human.py:26 msgid "Your opponent wants to adjourn the game." msgstr "" #: lib/pychess/Players/Human.py:27 msgid "" "Your opponent has asked that the game be adjourned. If you accept this " "offer, the game will be adjourned and you can resume it later (when your " "opponent is online and both players agree to resume)." msgstr "" #: lib/pychess/Players/Human.py:29 #, python-format msgid "Your opponent wants to undo %s move(s)." msgstr "" #: lib/pychess/Players/Human.py:30 #, python-format msgid "" "Your opponent has asked that the last %s move(s) be undone. If you accept " "this offer, the game will continue from the earlier position." msgstr "" #: lib/pychess/Players/Human.py:32 msgid "Your opponent wants to pause the game." msgstr "" #: lib/pychess/Players/Human.py:33 msgid "" "Your opponent has asked that the game be paused. If you accept this offer, " "the game clock will be paused until both players agree to resume the game." msgstr "" #: lib/pychess/Players/Human.py:35 msgid "Your opponent wants to resume the game." msgstr "" #: lib/pychess/Players/Human.py:36 msgid "" "Your opponent has asked that the game be resumed. If you accept this offer, " "the game clock will continue from where it was paused." msgstr "" #: lib/pychess/Players/Human.py:40 msgid "The resignation" msgstr "" #: lib/pychess/Players/Human.py:41 msgid "The flag call" msgstr "" #: lib/pychess/Players/Human.py:42 msgid "The draw offer" msgstr "" #: lib/pychess/Players/Human.py:43 msgid "The abort offer" msgstr "" #: lib/pychess/Players/Human.py:44 msgid "The adjourn offer" msgstr "" #: lib/pychess/Players/Human.py:45 msgid "The pause offer" msgstr "" #: lib/pychess/Players/Human.py:46 msgid "The resume offer" msgstr "" #: lib/pychess/Players/Human.py:47 msgid "The offer to switch sides" msgstr "" #: lib/pychess/Players/Human.py:48 msgid "The takeback offer" msgstr "" #: lib/pychess/Players/Human.py:52 msgid "resign" msgstr "" #: lib/pychess/Players/Human.py:53 msgid "call your opponents flag" msgstr "" #: lib/pychess/Players/Human.py:54 msgid "offer a draw" msgstr "" #: lib/pychess/Players/Human.py:55 msgid "offer an abort" msgstr "" #: lib/pychess/Players/Human.py:56 msgid "offer to adjourn" msgstr "" #: lib/pychess/Players/Human.py:57 msgid "offer a pause" msgstr "" #: lib/pychess/Players/Human.py:58 msgid "offer to resume" msgstr "" #: lib/pychess/Players/Human.py:59 msgid "offer to switch sides" msgstr "" #: lib/pychess/Players/Human.py:60 msgid "offer a takeback" msgstr "" #: lib/pychess/Players/Human.py:61 msgid "ask your opponent to move" msgstr "" #: lib/pychess/Players/Human.py:66 msgid "Your opponent is not out of time." msgstr "Rəqibiniz vaxtı hələ qurtarmayıb." #: lib/pychess/Players/Human.py:68 msgid "The clock hasn't been started yet." msgstr "" #: lib/pychess/Players/Human.py:70 msgid "You can't switch colors during the game." msgstr "" #: lib/pychess/Players/Human.py:72 msgid "You have tried to undo too many moves." msgstr "" #: lib/pychess/Players/Human.py:180 msgid "Your opponent asks you to hurry!" msgstr "" #: lib/pychess/Players/Human.py:181 msgid "" "Generally this means nothing, as the game is time-based, but if you want to " "please your opponent, perhaps you should get going." msgstr "" #: lib/pychess/Players/Human.py:259 #, python-format msgid "%s was declined by your opponent" msgstr "" #: lib/pychess/Players/Human.py:260 #, python-format msgid "Resend %s?" msgstr "" #: lib/pychess/Players/Human.py:267 msgid "Resend" msgstr "" #: lib/pychess/Players/Human.py:275 #, python-format msgid "%s was withdrawn by your opponent" msgstr "" #: lib/pychess/Players/Human.py:276 msgid "Your opponent seems to have changed their mind." msgstr "" #: lib/pychess/Players/Human.py:290 #, python-format msgid "Unable to accept %s" msgstr "" #: lib/pychess/Players/Human.py:291 msgid "Probably because it has been withdrawn." msgstr "" #: lib/pychess/Players/Human.py:298 #, python-format msgid "%s returns an error" msgstr "" #: lib/pychess/Savers/chessalpha2.py:12 msgid "Chess Alpha 2 Diagram" msgstr "" #: lib/pychess/Savers/chesspastebin.py:39 msgid "Game shared at " msgstr "" #: lib/pychess/Savers/chesspastebin.py:41 msgid "(Link is available on clipboard.)" msgstr "" #: lib/pychess/Savers/database.py:19 msgid "PyChess database" msgstr "" #: lib/pychess/Savers/epd.py:12 msgid "Chess Position" msgstr "Şahmat vəziyyəti" #: lib/pychess/Savers/fen.py:12 msgid "Simple Chess Position" msgstr "" #: lib/pychess/Savers/fen.py:44 lib/pychess/Savers/pgn.py:329 msgid "The game can't be loaded, because of an error parsing FEN" msgstr "" #: lib/pychess/Savers/pgnbase.py:100 #, python-format msgid "" "The game can't be read to end, because of an error parsing move %(moveno)s " "'%(notation)s'." msgstr "" #: lib/pychess/Savers/pgnbase.py:102 #, python-format msgid "The move failed because %s." msgstr "" #: lib/pychess/Savers/pgnbase.py:110 #, python-format msgid "Error parsing move %(moveno)s %(mstr)s" msgstr "" #: lib/pychess/Savers/pgn.py:28 msgid "Chess Game" msgstr "Şahmat Oyunu" #: lib/pychess/Savers/pgn.py:362 msgid "Invalid move." msgstr "" #: lib/pychess/Savers/png.py:15 msgid "Png image" msgstr "" #: lib/pychess/System/ping.py:31 msgid "Destination Host Unreachable" msgstr "" #: lib/pychess/System/ping.py:74 msgid "Died" msgstr "" #: lib/pychess/Utils/GameModel.py:147 msgid "Local Event" msgstr "Yerli Hadisə" #: lib/pychess/Utils/GameModel.py:148 msgid "Local Site" msgstr "Yerli Saytı" #: lib/pychess/Utils/repr.py:12 msgid "Pawn" msgstr "" #: lib/pychess/Utils/repr.py:14 msgid "P" msgstr "P" #: lib/pychess/Utils/repr.py:14 msgid "N" msgstr "A" #: lib/pychess/Utils/repr.py:14 msgid "R" msgstr "T" #: lib/pychess/Utils/repr.py:14 msgid "Q" msgstr "V" #: lib/pychess/Utils/repr.py:14 msgid "K" msgstr "Ş" #: lib/pychess/Utils/repr.py:17 msgid "The game ended in a draw" msgstr "Oyun bərabərə qurtardı." #: lib/pychess/Utils/repr.py:18 #, python-format msgid "%(white)s won the game" msgstr "" #: lib/pychess/Utils/repr.py:19 #, python-format msgid "%(black)s won the game" msgstr "" #: lib/pychess/Utils/repr.py:20 msgid "The game has been killed" msgstr "" #: lib/pychess/Utils/repr.py:21 msgid "The game has been adjourned" msgstr "Oyun başqa vaxta saxlanıldı" #: lib/pychess/Utils/repr.py:22 msgid "The game has been aborted" msgstr "Oyun ləğv edildi" #: lib/pychess/Utils/repr.py:26 msgid "Because neither player has sufficient material to mate" msgstr "" #: lib/pychess/Utils/repr.py:27 msgid "Because the same position was repeated three times in a row" msgstr "" #: lib/pychess/Utils/repr.py:28 msgid "Because the last 50 moves brought nothing new" msgstr "" #: lib/pychess/Utils/repr.py:29 msgid "Because both players ran out of time" msgstr "" #: lib/pychess/Utils/repr.py:30 #, python-format msgid "Because %(mover)s stalemated" msgstr "" #: lib/pychess/Utils/repr.py:31 msgid "Because both players agreed to a draw" msgstr "" #: lib/pychess/Utils/repr.py:32 lib/pychess/Utils/repr.py:42 msgid "Because of adjudication by an admin" msgstr "" #: lib/pychess/Utils/repr.py:33 msgid "Because the game exceed the max length" msgstr "" #: lib/pychess/Utils/repr.py:34 #, python-format msgid "" "Because %(white)s ran out of time and %(black)s has insufficient material to" " mate" msgstr "" #: lib/pychess/Utils/repr.py:35 #, python-format msgid "" "Because %(black)s ran out of time and %(white)s has insufficient material to" " mate" msgstr "" #: lib/pychess/Utils/repr.py:36 msgid "Because both players have the same amount of pieces" msgstr "" #: lib/pychess/Utils/repr.py:38 #, python-format msgid "Because %(loser)s resigned" msgstr "" #: lib/pychess/Utils/repr.py:39 #, python-format msgid "Because %(loser)s ran out of time" msgstr "" #: lib/pychess/Utils/repr.py:40 #, python-format msgid "Because %(loser)s was checkmated" msgstr "" #: lib/pychess/Utils/repr.py:41 #, python-format msgid "Because %(loser)s disconnected" msgstr "" #: lib/pychess/Utils/repr.py:43 #, python-format msgid "Because %(winner)s has fewer pieces" msgstr "" #: lib/pychess/Utils/repr.py:44 #, python-format msgid "Because %(winner)s lost all pieces" msgstr "" #: lib/pychess/Utils/repr.py:45 #, python-format msgid "Because %(loser)s king exploded" msgstr "" #: lib/pychess/Utils/repr.py:46 #, python-format msgid "Because %(winner)s king reached the center" msgstr "" #: lib/pychess/Utils/repr.py:47 #, python-format msgid "Because %(winner)s was giving check 3 times" msgstr "" #: lib/pychess/Utils/repr.py:49 msgid "Because a player lost connection" msgstr "" #: lib/pychess/Utils/repr.py:50 msgid "Because both players agreed to an adjournment" msgstr "" #: lib/pychess/Utils/repr.py:51 msgid "Because the server was shut down" msgstr "" #: lib/pychess/Utils/repr.py:52 msgid "" "Because a player lost connection and the other player requested adjournment" msgstr "" #: lib/pychess/Utils/repr.py:53 #, python-format msgid "" "Because %(black)s lost connection to the server and %(white)s requested " "adjournment" msgstr "" #: lib/pychess/Utils/repr.py:54 #, python-format msgid "" "Because %(white)s lost connection to the server and %(black)s requested " "adjournment" msgstr "" #: lib/pychess/Utils/repr.py:55 #, python-format msgid "Because %(white)s lost connection to the server" msgstr "" #: lib/pychess/Utils/repr.py:56 #, python-format msgid "Because %(black)s lost connection to the server" msgstr "" #: lib/pychess/Utils/repr.py:58 msgid "Because of adjudication by an admin. No rating changes have occurred." msgstr "" #: lib/pychess/Utils/repr.py:59 msgid "" "Because both players agreed to abort the game. No rating changes have " "occurred." msgstr "" #: lib/pychess/Utils/repr.py:60 msgid "Because of courtesy by a player. No rating changes have occurred." msgstr "" #: lib/pychess/Utils/repr.py:61 msgid "" "Because a player aborted the game. Either player can abort the game without " "the other's consent before the second move. No rating changes have occurred." msgstr "" #: lib/pychess/Utils/repr.py:62 msgid "" "Because a player disconnected and there are too few moves to warrant " "adjournment. No rating changes have occurred." msgstr "" #: lib/pychess/Utils/repr.py:63 msgid "Because the server was shut down. No rating changes have occurred." msgstr "" #: lib/pychess/Utils/repr.py:65 #, python-format msgid "Because the %(white)s engine died" msgstr "" #: lib/pychess/Utils/repr.py:66 #, python-format msgid "Because the %(black)s engine died" msgstr "" #: lib/pychess/Utils/repr.py:67 msgid "Because the connection to the server was lost" msgstr "" #: lib/pychess/Utils/repr.py:68 msgid "The reason is unknown" msgstr "" #: lib/pychess/Utils/TimeModel.py:229 msgid "min" msgstr "" #: lib/pychess/Utils/TimeModel.py:231 msgid "sec" msgstr "" #: lib/pychess/Variants/asean.py:12 msgid "" "ASEAN: http://www.ncf-" "phil.org/downloadables/2014/May/Asean_chess/Laws_of_ASEAN_Chess_2011_Nov_26.doc" msgstr "" #: lib/pychess/Variants/asean.py:13 msgid "ASEAN" msgstr "" #: lib/pychess/Variants/asean.py:33 msgid "Makruk: http://en.wikipedia.org/wiki/Makruk" msgstr "" #: lib/pychess/Variants/asean.py:34 msgid "Makruk" msgstr "" #: lib/pychess/Variants/asean.py:60 msgid "Cambodian: http://www.khmerinstitute.org/culture/ok.html" msgstr "" #: lib/pychess/Variants/asean.py:61 msgid "Cambodian" msgstr "" #: lib/pychess/Variants/asean.py:86 msgid "" "Ai-Wok: http://www.open-" "aurec.com/wbforum/viewtopic.php?p=199364&sid=20963a1de2c164050de019e5ed6bf7c4#p199364" msgstr "" #: lib/pychess/Variants/asean.py:87 msgid "Ai-Wok" msgstr "" #: lib/pychess/Variants/asean.py:111 msgid "Sittuyin: http://en.wikipedia.org/wiki/Sittuyin" msgstr "" #: lib/pychess/Variants/asean.py:112 msgid "Sittuyin" msgstr "" #: lib/pychess/Variants/asymmetricrandom.py:12 msgid "" "FICS wild/4: http://www.freechess.org/Help/HelpFiles/wild.html\n" "* Randomly chosen pieces (two queens or three rooks possible)\n" "* Exactly one king of each color\n" "* Pieces placed randomly behind the pawns, SUBJECT TO THE CONSTRAINT THAT THE BISHOPS ARE BALANCED\n" "* No castling\n" "* Black's arrangement DOES NOT mirrors white's" msgstr "" #: lib/pychess/Variants/asymmetricrandom.py:18 msgid "Asymmetric Random" msgstr "" #: lib/pychess/Variants/atomic.py:14 msgid "FICS atomic: http://www.freechess.org/Help/HelpFiles/atomic.html" msgstr "" #: lib/pychess/Variants/blindfold.py:7 msgid "" "Classic chess rules with hidden figurines\n" "http://en.wikipedia.org/wiki/Blindfold_chess" msgstr "" #: lib/pychess/Variants/blindfold.py:9 #: lib/pychess/widgets/newGameDialog.py:264 msgid "Blindfold" msgstr "" #: lib/pychess/Variants/blindfold.py:18 msgid "" "Classic chess rules with hidden pawns\n" "http://en.wikipedia.org/wiki/Blindfold_chess" msgstr "" #: lib/pychess/Variants/blindfold.py:20 msgid "Hidden pawns" msgstr "" #: lib/pychess/Variants/blindfold.py:29 msgid "" "Classic chess rules with hidden pieces\n" "http://en.wikipedia.org/wiki/Blindfold_chess" msgstr "" #: lib/pychess/Variants/blindfold.py:31 msgid "Hidden pieces" msgstr "" #: lib/pychess/Variants/blindfold.py:40 msgid "" "Classic chess rules with all pieces white\n" "http://en.wikipedia.org/wiki/Blindfold_chess" msgstr "" #: lib/pychess/Variants/blindfold.py:42 msgid "All white" msgstr "" #: lib/pychess/Variants/bughouse.py:8 msgid "FICS bughouse: http://www.freechess.org/Help/HelpFiles/bughouse.html" msgstr "" #: lib/pychess/Variants/corner.py:12 msgid "" "http://brainking.com/en/GameRules?tp=2\n" "* Placement of the pieces on the 1st and 8th row are randomized\n" "* The king is in the right hand corner\n" "* Bishops must start on opposite color squares\n" "* Black's starting position is obtained by rotating white's position 180 degrees around the board's center\n" "* No castling" msgstr "" #: lib/pychess/Variants/corner.py:18 msgid "Corner" msgstr "" #: lib/pychess/Variants/crazyhouse.py:8 msgid "" "FICS crazyhouse: http://www.freechess.org/Help/HelpFiles/crazyhouse.html" msgstr "" #: lib/pychess/Variants/euroshogi.py:9 msgid "EuroShogi: http://en.wikipedia.org/wiki/EuroShogi" msgstr "" #: lib/pychess/Variants/euroshogi.py:10 msgid "EuroShogi" msgstr "" #: lib/pychess/Variants/fischerandom.py:18 msgid "" "http://en.wikipedia.org/wiki/Chess960\n" "FICS wild/fr: http://www.freechess.org/Help/HelpFiles/wild.html" msgstr "" #: lib/pychess/Variants/fischerandom.py:20 msgid "Fischer Random" msgstr "" #: lib/pychess/Variants/kingofthehill.py:8 msgid "" "Bringing your king legally to the center (e4, d4, e5, d5) instantly wins the game!\n" "Normal rules apply in other cases and checkmate also ends the game." msgstr "" #: lib/pychess/Variants/kingofthehill.py:10 msgid "King of the hill" msgstr "" #: lib/pychess/Variants/knightodds.py:8 msgid "One player starts with one less knight piece" msgstr "" #: lib/pychess/Variants/knightodds.py:9 msgid "Knight odds" msgstr "" #: lib/pychess/Variants/losers.py:8 msgid "FICS losers: http://www.freechess.org/Help/HelpFiles/losers_chess.html" msgstr "" #: lib/pychess/Variants/normal.py:4 msgid "" "Classic chess rules\n" "http://en.wikipedia.org/wiki/Chess" msgstr "" #: lib/pychess/Variants/normal.py:6 lib/pychess/widgets/newGameDialog.py:157 msgid "Normal" msgstr "Normal" #: lib/pychess/Variants/pawnodds.py:8 msgid "One player starts with one less pawn piece" msgstr "" #: lib/pychess/Variants/pawnodds.py:9 msgid "Pawn odds" msgstr "" #: lib/pychess/Variants/pawnspassed.py:11 msgid "" "FICS wild/8a: http://www.freechess.org/Help/HelpFiles/wild.html\n" "White pawns start on 5th rank and black pawns on the 4th rank" msgstr "" #: lib/pychess/Variants/pawnspassed.py:13 msgid "Pawns Passed" msgstr "" #: lib/pychess/Variants/pawnspushed.py:10 msgid "" "FICS wild/8: http://www.freechess.org/Help/HelpFiles/wild.html\n" "Pawns start on 4th and 5th ranks rather than 2nd and 7th" msgstr "" #: lib/pychess/Variants/pawnspushed.py:12 msgid "Pawns Pushed" msgstr "" #: lib/pychess/Variants/queenodds.py:8 msgid "One player starts with one less queen piece" msgstr "" #: lib/pychess/Variants/queenodds.py:9 msgid "Queen odds" msgstr "" #: lib/pychess/Variants/randomchess.py:11 msgid "" "FICS wild/3: http://www.freechess.org/Help/HelpFiles/wild.html\n" "* Randomly chosen pieces (two queens or three rooks possible)\n" "* Exactly one king of each color\n" "* Pieces placed randomly behind the pawns\n" "* No castling\n" "* Black's arrangement mirrors white's" msgstr "" #: lib/pychess/Variants/randomchess.py:17 #: lib/pychess/widgets/TaskerManager.py:155 msgid "Random" msgstr "" #: lib/pychess/Variants/rookodds.py:8 msgid "One player starts with one less rook piece" msgstr "" #: lib/pychess/Variants/rookodds.py:9 msgid "Rook odds" msgstr "" #: lib/pychess/Variants/shuffle.py:11 msgid "" "xboard nocastle: http://home.hccnet.nl/h.g.muller/engine-intf.html#8\n" "FICS wild/2: http://www.freechess.org/Help/HelpFiles/wild.html\n" "* Random arrangement of the pieces behind the pawns\n" "* No castling\n" "* Black's arrangement mirrors white's" msgstr "" #: lib/pychess/Variants/suicide.py:11 msgid "" "FICS suicide: http://www.freechess.org/Help/HelpFiles/suicide_chess.html" msgstr "" #: lib/pychess/Variants/theban.py:10 msgid "" "Variant developed by Kai Laskos: " "http://talkchess.com/forum/viewtopic.php?t=40990" msgstr "" #: lib/pychess/Variants/theban.py:11 msgid "Theban" msgstr "" #: lib/pychess/Variants/threecheck.py:10 msgid "Win by giving check 3 times" msgstr "" #: lib/pychess/Variants/threecheck.py:11 msgid "Three-check" msgstr "" #: lib/pychess/Variants/upsidedown.py:10 msgid "" "FICS wild/5: http://www.freechess.org/Help/HelpFiles/wild.html\n" "http://en.wikipedia.org/wiki/Chess_variant#Chess_with_different_starting_positions\n" "Pawns start on their 7th rank rather than their 2nd rank!" msgstr "" #: lib/pychess/Variants/upsidedown.py:13 msgid "Upside Down" msgstr "" #: lib/pychess/Variants/wildcastle.py:10 msgid "" "xboard wildcastle http://home.hccnet.nl/h.g.muller/engine-intf.html#8\n" "FICS wild/0: http://www.freechess.org/Help/HelpFiles/wild.html\n" "* White has the typical set-up at the start.\n" "* Black's pieces are the same, except that the King and Queen are reversed,\n" "* so they are not on the same files as White's King and Queen.\n" "* Castling is done similarly to normal chess:\n" "* o-o-o indicates long castling and o-o short castling." msgstr "" #: lib/pychess/Variants/wildcastle.py:17 msgid "Wildcastle" msgstr "" #: lib/pychess/Variants/wildcastleshuffle.py:11 msgid "" "xboard wildcastle http://home.hccnet.nl/h.g.muller/engine-intf.html#8\n" "FICS wild/1: http://www.freechess.org/Help/HelpFiles/wild.html\n" "* In this variant both sides have the same set of pieces as in normal chess.\n" "* The white king starts on d1 or e1 and the black king starts on d8 or e8,\n" "* and the rooks are in their usual positions.\n" "* Bishops are always on opposite colors.\n" "* Subject to these constraints the position of the pieces on their first ranks is random.\n" "* Castling is done similarly to normal chess:\n" "* o-o-o indicates long castling and o-o short castling." msgstr "" #: lib/pychess/Variants/wildcastleshuffle.py:20 msgid "Wildcastle shuffle" msgstr "" #: lib/pychess/widgets/analyzegameDialog.py:85 msgid "Game analyzing in progress..." msgstr "" #: lib/pychess/widgets/analyzegameDialog.py:86 msgid "Do you want to abort it?" msgstr "" #: lib/pychess/widgets/analyzegameDialog.py:95 #: lib/pychess/widgets/gamewidget.py:202 lib/pychess/widgets/gamewidget.py:320 msgid "Abort" msgstr "" #: lib/pychess/widgets/ChatView.py:125 msgid "Observers" msgstr "" #: lib/pychess/widgets/ChatWindow.py:222 msgid "You have opened no conversations yet" msgstr "" #: lib/pychess/widgets/ChatWindow.py:254 msgid "Only registered users may talk to this channel" msgstr "" #: lib/pychess/widgets/ChatWindow.py:312 msgid "No conversation's selected" msgstr "" #: lib/pychess/widgets/ChatWindow.py:350 msgid "Loading player data" msgstr "" #: lib/pychess/widgets/ChatWindow.py:400 msgid "Receiving list of players" msgstr "" #: lib/pychess/widgets/ChatWindow.py:518 msgid "Friends" msgstr "" #: lib/pychess/widgets/ChatWindow.py:529 msgid "Admin" msgstr "" #: lib/pychess/widgets/ChatWindow.py:540 msgid "More channels" msgstr "" #: lib/pychess/widgets/ChatWindow.py:548 msgid "More players" msgstr "" #: lib/pychess/widgets/ChatWindow.py:558 msgid "Computers" msgstr "" #: lib/pychess/widgets/ChatWindow.py:568 msgid "BlindFold" msgstr "" #: lib/pychess/widgets/ChatWindow.py:578 msgid "Guests" msgstr "" #: lib/pychess/widgets/ChatWindow.py:805 msgid "Conversations" msgstr "" #: lib/pychess/widgets/ChatWindow.py:807 msgid "Conversation info" msgstr "" #: lib/pychess/widgets/enginesDialog.py:152 msgid "Select engine" msgstr "" #: lib/pychess/widgets/enginesDialog.py:156 msgid "Executable files" msgstr "" #: lib/pychess/widgets/enginesDialog.py:176 #: lib/pychess/widgets/enginesDialog.py:210 #: lib/pychess/widgets/enginesDialog.py:235 #, python-format msgid "Unable to add %s" msgstr "" #: lib/pychess/widgets/enginesDialog.py:177 msgid "wine not installed" msgstr "" #: lib/pychess/widgets/enginesDialog.py:211 #: lib/pychess/widgets/enginesDialog.py:236 msgid "There is something wrong with this executable" msgstr "" #: lib/pychess/widgets/enginesDialog.py:266 msgid "Select working directory" msgstr "" #: lib/pychess/widgets/gamenanny.py:115 #, python-format msgid " invalid engine move: %s" msgstr "" #: lib/pychess/widgets/gamenanny.py:134 msgid "Offer Rematch" msgstr "" #: lib/pychess/widgets/gamenanny.py:136 lib/pychess/widgets/gamenanny.py:147 #, python-format msgid "Observe %s" msgstr "" #: lib/pychess/widgets/gamenanny.py:168 msgid "Play Rematch" msgstr "" #: lib/pychess/widgets/gamenanny.py:171 msgid "Undo one move" msgstr "" #: lib/pychess/widgets/gamenanny.py:173 msgid "Undo two moves" msgstr "" #: lib/pychess/widgets/gamenanny.py:203 msgid "The game is paused" msgstr "" #: lib/pychess/widgets/gamenanny.py:221 lib/pychess/widgets/gamenanny.py:222 msgid "Loaded game" msgstr "Açılmış oyun" #: lib/pychess/widgets/gamenanny.py:228 msgid "Saved game" msgstr "Yadda saxlanılmış oyun" #: lib/pychess/widgets/gamenanny.py:232 msgid "Analyzer started" msgstr "" #: lib/pychess/widgets/gamenanny.py:281 msgid "You sent an abort offer" msgstr "" #: lib/pychess/widgets/gamenanny.py:283 msgid "You sent an adjournment offer" msgstr "" #: lib/pychess/widgets/gamenanny.py:285 msgid "You sent a draw offer" msgstr "Siz heç-heçə təklifi göndərdiniz" #: lib/pychess/widgets/gamenanny.py:287 msgid "You sent a pause offer" msgstr "" #: lib/pychess/widgets/gamenanny.py:289 msgid "You sent a resume offer" msgstr "" #: lib/pychess/widgets/gamenanny.py:291 msgid "You sent an undo offer" msgstr "" #: lib/pychess/widgets/gamenanny.py:293 msgid "You asked your opponent to move" msgstr "" #: lib/pychess/widgets/gamenanny.py:305 #, python-format msgid "Engine, %s, has died" msgstr "%s mühərriki öldü" #: lib/pychess/widgets/gamenanny.py:306 msgid "" "PyChess has lost connection to the engine, probably because it has died.\n" "\n" "You can try to start a new game with the engine, or try to play against another one." msgstr "PyChess mühərriklə əlaqəni itirdi, çox yəqin ki, o ölüb.\n\nSiz mühərriklə yeni başalamağı və ya başqasına qarşı oynamağı yoxlaya bilərsiniz." #: lib/pychess/widgets/gamewidget.py:204 msgid "" "This game can be automatically aborted without rating loss because there has" " not yet been two moves made" msgstr "" #: lib/pychess/widgets/gamewidget.py:206 msgid "Offer Abort" msgstr "" #: lib/pychess/widgets/gamewidget.py:208 msgid "" "Your opponent must agree to abort the game because there has been two or " "more moves made" msgstr "" #: lib/pychess/widgets/gamewidget.py:226 msgid "This game can not be adjourned because one or both players are guests" msgstr "" #: lib/pychess/widgets/gamewidget.py:243 msgid "Claim Draw" msgstr "" #: lib/pychess/widgets/gamewidget.py:325 msgid "Pause" msgstr "" #: lib/pychess/widgets/gamewidget.py:326 msgid "Resume" msgstr "" #: lib/pychess/widgets/gamewidget.py:328 msgid "Offer Pause" msgstr "" #: lib/pychess/widgets/gamewidget.py:329 msgid "Offer Resume" msgstr "" #: lib/pychess/widgets/gamewidget.py:333 msgid "Undo" msgstr "" #: lib/pychess/widgets/gamewidget.py:335 msgid "Offer Undo" msgstr "" #: lib/pychess/widgets/gamewidget.py:550 msgid " has lagged for 30 seconds" msgstr "" #: lib/pychess/widgets/gamewidget.py:566 msgid " is lagging heavily but hasn't disconnected" msgstr "" #: lib/pychess/widgets/gamewidget.py:567 msgid "Continue to wait for opponent, or try to adjourn the game?" msgstr "" #: lib/pychess/widgets/gamewidget.py:575 msgid "Wait" msgstr "" #: lib/pychess/widgets/gamewidget.py:576 msgid "Adjourn" msgstr "" #: lib/pychess/widgets/gamewidget.py:648 msgid "Jump to initial position" msgstr "" #: lib/pychess/widgets/gamewidget.py:653 msgid "Step back one move" msgstr "" #: lib/pychess/widgets/gamewidget.py:658 msgid "Go back to the main line" msgstr "" #: lib/pychess/widgets/gamewidget.py:664 msgid "Step forward one move" msgstr "" #: lib/pychess/widgets/gamewidget.py:669 msgid "Jump to latest position" msgstr "" #: lib/pychess/widgets/gamewidget.py:903 msgid "PyChess was unable to load your panel settings" msgstr "" #: lib/pychess/widgets/gamewidget.py:904 msgid "" "Your panel settings have been reset. If this problem repeats, you should " "report it to the developers" msgstr "" #: lib/pychess/widgets/ionest.py:67 lib/pychess/widgets/newGameDialog.py:389 #: lib/pychess/widgets/TaskerManager.py:210 msgid "You" msgstr "" #: lib/pychess/widgets/ionest.py:70 lib/pychess/widgets/newGameDialog.py:390 #: lib/pychess/widgets/preferencesDialog.py:61 #: lib/pychess/widgets/TaskerManager.py:213 msgid "Guest" msgstr "Qonaq" #: lib/pychess/widgets/ionest.py:93 msgid "Error loading game" msgstr "" #: lib/pychess/widgets/ionest.py:127 lib/pychess/widgets/newGameDialog.py:480 msgid "Open Game" msgstr "Oyunu Aç" #: lib/pychess/widgets/ionest.py:137 msgid "All Files" msgstr "Bütün Fayllar" #: lib/pychess/widgets/ionest.py:140 msgid "Detect type automatically" msgstr "Növü avtomatik təyin et" #: lib/pychess/widgets/ionest.py:146 msgid "All Chess Files" msgstr "Bütün Şahmat Faylları" #: lib/pychess/widgets/ionest.py:228 msgid "Save Game" msgstr "Oyunu Qeyd Et" #: lib/pychess/widgets/ionest.py:228 msgid "Export position" msgstr "" #: lib/pychess/widgets/ionest.py:232 lib/pychess/widgets/ionest.py:360 msgid "vs." msgstr "" #: lib/pychess/widgets/ionest.py:249 #, python-format msgid "Unknown file type '%s'" msgstr "'%s' : dosye növü dəstəklənmir" #: lib/pychess/widgets/ionest.py:250 #, python-format msgid "" "Was unable to save '%(uri)s' as PyChess doesn't know the format " "'%(ending)s'." msgstr "" #: lib/pychess/widgets/ionest.py:266 #, python-format msgid "Unable to save file '%s'" msgstr "'%s' faylı qeyd oluna bilmədi" #: lib/pychess/widgets/ionest.py:268 msgid "" "You don't have the necessary rights to save the file.\n" "Please ensure that you have given the right path and try again." msgstr "Faylı qeyd etmək üçün sizin yetərli səlahiyyətləriniz yoxdur.\nDoğru cərgəni göstərdiyinizdən əmin olun və təkrar yoxlayın." #: lib/pychess/widgets/ionest.py:276 msgid "_Replace" msgstr "Əvəz e_t" #: lib/pychess/widgets/ionest.py:280 msgid "File exists" msgstr "Fayl mövcuddur" #: lib/pychess/widgets/ionest.py:282 #, python-format msgid "" "A file named '%s' already exists. Would you like to replace " "it?" msgstr "'%s' adlı fayl mövcuddur. Siz onu əvəz etmək istəyirsinizmi?" #: lib/pychess/widgets/ionest.py:283 #, python-format msgid "" "The file already exists in '%s'. If you replace it, its content will be " "overwritten." msgstr "" #: lib/pychess/widgets/ionest.py:299 msgid "Could not save the file" msgstr "Fayl qeyd edilə bilmədi" #: lib/pychess/widgets/ionest.py:300 msgid "PyChess was not able to save the game" msgstr "" #: lib/pychess/widgets/ionest.py:301 #, python-format msgid "The error was: %s" msgstr "Xəta : %s - idi." #: lib/pychess/widgets/ionest.py:325 #, python-format msgid "There is %d game with unsaved moves." msgid_plural "There are %d games with unsaved moves." msgstr[0] "" msgstr[1] "" #: lib/pychess/widgets/ionest.py:328 msgid "Save moves before closing?" msgstr "" #: lib/pychess/widgets/ionest.py:339 msgid "Unable to save to configured file. Save the games before closing?" msgstr "" #: lib/pychess/widgets/ionest.py:366 #, python-format msgid "_Save %d document" msgid_plural "_Save %d documents" msgstr[0] "" msgstr[1] "" #: lib/pychess/widgets/ionest.py:412 msgid "Save the current game before you close it?" msgstr "" #: lib/pychess/widgets/ionest.py:420 msgid "" "Unable to save to configured file. Save the current game before you close " "it?" msgstr "" #: lib/pychess/widgets/ionest.py:434 msgid "" "It is not possible later to continue the game,\n" "if you don't save it." msgstr "Əgər siz oyunu yadda saxlamasanız,\ndaha sonra oynu davam etdirmək olmayacaq." #: lib/pychess/widgets/LogDialog.py:26 msgid "PyChess Information Window" msgstr "" #: lib/pychess/widgets/LogDialog.py:184 lib/pychess/widgets/LogDialog.py:188 msgid "of" msgstr "" #: lib/pychess/widgets/newGameDialog.py:84 #: lib/pychess/widgets/newGameDialog.py:85 msgid "Human Being" msgstr "İnsan" #: lib/pychess/widgets/newGameDialog.py:155 msgid "Rapid" msgstr "" #: lib/pychess/widgets/newGameDialog.py:224 msgid "Minutes:" msgstr "Dəqiqə:" #: lib/pychess/widgets/newGameDialog.py:228 msgid "Gain:" msgstr "Nəaliyyət:" #: lib/pychess/widgets/newGameDialog.py:241 #, python-format msgid "%(name)s %(minutes)d min + %(gain)d sec/move" msgstr "" #: lib/pychess/widgets/newGameDialog.py:244 #, python-format msgid "%(name)s %(minutes)d min %(gain)d sec/move" msgstr "" #: lib/pychess/widgets/newGameDialog.py:247 #, python-format msgid "%(name)s %(minutes)d min" msgstr "" #: lib/pychess/widgets/newGameDialog.py:265 msgid "Odds" msgstr "" #: lib/pychess/widgets/newGameDialog.py:269 msgid "Asian variants" msgstr "" #: lib/pychess/widgets/newGameDialog.py:301 msgid " chess" msgstr "" #: lib/pychess/widgets/newGameDialog.py:682 msgid "Type or paste PGN game or FEN positions here" msgstr "" #: lib/pychess/widgets/newGameDialog.py:725 msgid "Enter Game" msgstr "Oyun Vəziyyəti Daxil Et" #: lib/pychess/widgets/preferencesDialog.py:123 msgid "Select book file" msgstr "" #: lib/pychess/widgets/preferencesDialog.py:128 msgid "Opening books" msgstr "" #: lib/pychess/widgets/preferencesDialog.py:156 msgid "Select Gaviota TB path" msgstr "" #: lib/pychess/widgets/preferencesDialog.py:331 msgid "Open Sound File" msgstr "Səs Faylını Aç" #: lib/pychess/widgets/preferencesDialog.py:341 msgid "Sound files" msgstr "" #: lib/pychess/widgets/preferencesDialog.py:485 msgid "Undescribed panel" msgstr "" #: lib/pychess/widgets/preferencesDialog.py:678 msgid "Select auto save path" msgstr "" #: lib/pychess/widgets/tipOfTheDay.py:51 msgid "" "You can start a new game by Game > New Game, in New Game " "window do you can choose Players, Time Control and Chess " "Variants." msgstr "" #: lib/pychess/widgets/tipOfTheDay.py:52 msgid "" "You can choose from 20 different difficulties to play against the computer." msgstr "" #: lib/pychess/widgets/tipOfTheDay.py:53 msgid "" "Chess Variants are like the pieces of the last line will be placed on the " "board." msgstr "" #: lib/pychess/widgets/tipOfTheDay.py:54 msgid "" "To save a game Game > Save Game As, give the filename and " "choose where you want to be saved. At the bottom choose extension type of " "the file, and Save." msgstr "" #: lib/pychess/widgets/tipOfTheDay.py:55 msgid "" "Do you know that you can call flag when the clock is with you, " "Actions > Call Flag." msgstr "" #: lib/pychess/widgets/tipOfTheDay.py:56 msgid "Pressing Ctrl+Z to offer opponent the possible rollback moves." msgstr "" #: lib/pychess/widgets/tipOfTheDay.py:57 msgid "" "To play on Fullscreen mode, just type F11. Coming back, F11 " "again." msgstr "" #: lib/pychess/widgets/tipOfTheDay.py:58 msgid "Hint mode analyzing your game, enable this type Ctrl+H." msgstr "" #: lib/pychess/widgets/tipOfTheDay.py:59 msgid "" "Spy mode analyzing the oponnent game, enable this type Ctrl+Y." msgstr "" #: lib/pychess/widgets/tipOfTheDay.py:60 msgid "" "You can play chess listening to the sounds of the game, for that, " "Settings > Preferences > Sound tab, enable Use " "sounds in PyChess and choose your preferred sounds." msgstr "" #: lib/pychess/widgets/tipOfTheDay.py:61 msgid "" "Do you know that you can help translate Pychess in your language, " "Help > Translate Pychess." msgstr "" #: lib/pychess/widgets/tipOfTheDay.py:62 msgid "" "Do you know that it is possible to finish a chess game in just 2 turns?" msgstr "" #: lib/pychess/widgets/tipOfTheDay.py:63 msgid "" "Do you know that the number of possible chess games exceeds the number of " "atoms in the Universe?" msgstr "" #: lib/pychess/ic/managers/ChatManager.py:184 msgid "Shout" msgstr "" #: lib/pychess/ic/managers/ChatManager.py:185 msgid "Chess Shout" msgstr "" #: lib/pychess/ic/managers/ChatManager.py:195 #, python-format msgid "Unofficial channel %d" msgstr "" #: lib/pychess/Utils/lutils/LBoard.py:152 #, python-format msgid "" "FEN needs 6 data fields. \n" "\n" "%s" msgstr "" #: lib/pychess/Utils/lutils/LBoard.py:154 #, python-format msgid "" "FEN needs at least 2 data fields in fenstr. \n" "\n" "%s" msgstr "" #: lib/pychess/Utils/lutils/LBoard.py:175 #, python-format msgid "" "Needs 7 slashes in piece placement field. \n" "\n" "%s" msgstr "" #: lib/pychess/Utils/lutils/LBoard.py:178 #, python-format msgid "" "Active color field must be one of w or b. \n" "\n" "%s" msgstr "" #: lib/pychess/Utils/lutils/LBoard.py:189 #, python-format msgid "" "Castling availability field is not legal. \n" "\n" "%s" msgstr "" #: lib/pychess/Utils/lutils/LBoard.py:192 #, python-format msgid "" "En passant cord is not legal. \n" "\n" "%s" msgstr "" #: lib/pychess/Utils/lutils/lmove.py:260 msgid "invalid promoted piece" msgstr "" #: lib/pychess/Utils/lutils/lmove.py:272 msgid "the move needs a piece and a cord" msgstr "" #: lib/pychess/Utils/lutils/lmove.py:306 lib/pychess/Utils/lutils/lmove.py:556 msgid "promotion move without promoted piece is incorrect" msgstr "" #: lib/pychess/Utils/lutils/lmove.py:312 #, python-format msgid "the captured cord (%s) is incorrect" msgstr "" #: lib/pychess/Utils/lutils/lmove.py:323 #, python-format msgid "the end cord (%s) is incorrect" msgstr "" #: lib/pychess/Utils/lutils/strateval.py:24 sidepanel/commentPanel.py:191 #: sidepanel/commentPanel.py:208 msgid "and" msgstr "" #: lib/pychess/Utils/lutils/strateval.py:43 msgid "draws" msgstr "" #: lib/pychess/Utils/lutils/strateval.py:45 msgid "mates" msgstr "" #: lib/pychess/Utils/lutils/strateval.py:49 msgid "puts opponent in check" msgstr "" #: lib/pychess/Utils/lutils/strateval.py:73 msgid "improves king safety" msgstr "" #: lib/pychess/Utils/lutils/strateval.py:75 msgid "slightly improves king safety" msgstr "" #: lib/pychess/Utils/lutils/strateval.py:108 msgid "moves a rook to an open file" msgstr "" #: lib/pychess/Utils/lutils/strateval.py:109 msgid "moves an rook to a half-open file" msgstr "" #: lib/pychess/Utils/lutils/strateval.py:119 #: lib/pychess/Utils/lutils/strateval.py:121 #: lib/pychess/Utils/lutils/strateval.py:124 #: lib/pychess/Utils/lutils/strateval.py:126 #, python-format msgid "moves bishop into fianchetto: %s" msgstr "" #: lib/pychess/Utils/lutils/strateval.py:132 #, python-format msgid "promotes a Pawn to a %s" msgstr "Piyadanı çevirdi : %s" #: lib/pychess/Utils/lutils/strateval.py:135 msgid "castles" msgstr "" #: lib/pychess/Utils/lutils/strateval.py:158 msgid "takes back material" msgstr "" #: lib/pychess/Utils/lutils/strateval.py:162 #: lib/pychess/Utils/lutils/strateval.py:170 msgid "sacrifies material" msgstr "" #: lib/pychess/Utils/lutils/strateval.py:164 msgid "exchanges material" msgstr "" #: lib/pychess/Utils/lutils/strateval.py:166 msgid "captures material" msgstr "" #: lib/pychess/Utils/lutils/strateval.py:291 #, python-format msgid "rescues a %s" msgstr "" #: lib/pychess/Utils/lutils/strateval.py:294 #, python-format msgid "threatens to win material by %s" msgstr "" #: lib/pychess/Utils/lutils/strateval.py:296 #, python-format msgid "increases the pressure on %s" msgstr "" #: lib/pychess/Utils/lutils/strateval.py:298 #, python-format msgid "defends %s" msgstr "" #: lib/pychess/Utils/lutils/strateval.py:336 #, python-format msgid "pins an enemy %(oppiece)s on the %(piece)s at %(cord)s" msgstr "" #: lib/pychess/Utils/lutils/strateval.py:369 #, python-format msgid "White has a new piece in outpost: %s" msgstr "" #: lib/pychess/Utils/lutils/strateval.py:377 #, python-format msgid "Black has a new piece in outpost: %s" msgstr "" #: lib/pychess/Utils/lutils/strateval.py:416 #, python-format msgid "%(color)s has a new passed pawn on %(cord)s" msgstr "" #: lib/pychess/Utils/lutils/strateval.py:470 msgid "half-open" msgstr "" #: lib/pychess/Utils/lutils/strateval.py:472 #, python-format msgid "in the %(x)s%(y)s file" msgstr "" #: lib/pychess/Utils/lutils/strateval.py:474 #, python-format msgid "in the %(x)s%(y)s files" msgstr "" #: lib/pychess/Utils/lutils/strateval.py:477 #, python-format msgid "%(color)s got a double pawn %(place)s" msgstr "" #: lib/pychess/Utils/lutils/strateval.py:478 #, python-format msgid "%(color)s got new double pawns %(place)s" msgstr "" #: lib/pychess/Utils/lutils/strateval.py:485 #, python-format msgid "%(color)s got an isolated pawn in the %(x)s file" msgid_plural "%(color)s got isolated pawns in the %(x)s files" msgstr[0] "" msgstr[1] "" #: lib/pychess/Utils/lutils/strateval.py:492 #, python-format msgid "%s moves pawns into stonewall formation" msgstr "" #: lib/pychess/Utils/lutils/strateval.py:507 #: lib/pychess/Utils/lutils/strateval.py:514 #, python-format msgid "%s can no longer castle" msgstr "" #: lib/pychess/Utils/lutils/strateval.py:508 #: lib/pychess/Utils/lutils/strateval.py:515 #, python-format msgid "%s can no longer castle in queenside" msgstr "" #: lib/pychess/Utils/lutils/strateval.py:510 #: lib/pychess/Utils/lutils/strateval.py:517 #, python-format msgid "%s can no longer castle in kingside" msgstr "" #: lib/pychess/Utils/lutils/strateval.py:551 #, python-format msgid "%(opcolor)s has a new trapped bishop on %(cord)s" msgstr "" #: lib/pychess/Utils/lutils/strateval.py:573 #, python-format msgid "develops a pawn: %s" msgstr "" #: lib/pychess/Utils/lutils/strateval.py:574 #, python-format msgid "brings a pawn closer to the backrow: %s" msgstr "" #: lib/pychess/Utils/lutils/strateval.py:591 #, python-format msgid "brings a %(piece)s closer to enemy king: %(cord)s" msgstr "" #: lib/pychess/Utils/lutils/strateval.py:594 #, python-format msgid "develops a %(piece)s: %(cord)s" msgstr "" #: lib/pychess/Utils/lutils/strateval.py:612 #, python-format msgid "places a %(piece)s more active: %(cord)s" msgstr "" #: lib/pychess/Utils/lutils/strateval.py:638 msgid "White should do pawn storm in right" msgstr "" #: lib/pychess/Utils/lutils/strateval.py:640 msgid "Black should do pawn storm in left" msgstr "" #: lib/pychess/Utils/lutils/strateval.py:643 msgid "White should do pawn storm in left" msgstr "" #: lib/pychess/Utils/lutils/strateval.py:645 msgid "Black should do pawn storm in right" msgstr "" #: lib/pychess/Utils/lutils/strateval.py:671 msgid "Black has a rather cramped position" msgstr "" #: lib/pychess/Utils/lutils/strateval.py:673 msgid "Black has a slightly cramped position" msgstr "" #: lib/pychess/Utils/lutils/strateval.py:675 msgid "White has a rather cramped position" msgstr "" #: lib/pychess/Utils/lutils/strateval.py:677 msgid "White has a slightly cramped position" msgstr "" #: sidepanel/annotationPanel.py:26 msgid "Annotation" msgstr "" #: sidepanel/annotationPanel.py:29 msgid "Annotated game" msgstr "" #: sidepanel/annotationPanel.py:236 msgid "Copy PGN" msgstr "" #: sidepanel/annotationPanel.py:249 msgid "Add start comment" msgstr "" #: sidepanel/annotationPanel.py:254 msgid "Add comment" msgstr "" #: sidepanel/annotationPanel.py:258 sidepanel/annotationPanel.py:316 msgid "Edit comment" msgstr "" #: sidepanel/annotationPanel.py:269 msgid "Forced move" msgstr "" #: sidepanel/annotationPanel.py:274 msgid "Add move symbol" msgstr "" #: sidepanel/annotationPanel.py:280 msgid "Unclear position" msgstr "" #: sidepanel/annotationPanel.py:289 msgid "Zugzwang" msgstr "" #: sidepanel/annotationPanel.py:290 msgid "Development adv." msgstr "" #: sidepanel/annotationPanel.py:291 msgid "Initiative" msgstr "" #: sidepanel/annotationPanel.py:292 msgid "With attack" msgstr "" #: sidepanel/annotationPanel.py:293 msgid "Compensation" msgstr "" #: sidepanel/annotationPanel.py:294 msgid "Counterplay" msgstr "" #: sidepanel/annotationPanel.py:295 msgid "Time pressure" msgstr "" #: sidepanel/annotationPanel.py:300 msgid "Add evaluation symbol" msgstr "" #: sidepanel/annotationPanel.py:304 msgid "Remove symbols" msgstr "" #: sidepanel/annotationPanel.py:911 #, python-format msgid "round %s" msgstr "" #: sidepanel/bookPanel.py:21 msgid "Hints" msgstr "" #: sidepanel/bookPanel.py:25 msgid "" "The hint panel will provide computer advice during each stage of the game" msgstr "" #: sidepanel/bookPanel.py:27 msgid "Official PyChess panel." msgstr "" #: sidepanel/bookPanel.py:87 msgid "Opening Book" msgstr "Açılış" #: sidepanel/bookPanel.py:88 msgid "" "The opening book will try to inspire you during the opening phase of the " "game by showing you common moves made by chess masters" msgstr "" #: sidepanel/bookPanel.py:139 #, python-format msgid "Analysis by %s" msgstr "" #: sidepanel/bookPanel.py:140 #, python-format msgid "" "%s will try to predict which move is best and which side has the advantage" msgstr "" #: sidepanel/bookPanel.py:142 #, python-format msgid "Threat analysis by %s" msgstr "" #: sidepanel/bookPanel.py:143 #, python-format msgid "" "%s will identify what threats would exist if it were your opponent's turn to" " move" msgstr "" #: sidepanel/bookPanel.py:159 sidepanel/bookPanel.py:269 msgid "Calculating..." msgstr "" #: sidepanel/bookPanel.py:300 msgid "" "Engine scores are in units of pawns, from White's point of view. Double " "clicking on analysis lines you can insert them into Annotation panel as " "variations." msgstr "" #: sidepanel/bookPanel.py:302 msgid "" "Adding suggestions can help you find ideas, but slows down the computer's " "analysis." msgstr "" #: sidepanel/bookPanel.py:311 msgid "Endgame Table" msgstr "" #: sidepanel/bookPanel.py:315 msgid "" "The endgame table will show exact analysis when there are few pieces on the " "board." msgstr "" #: sidepanel/bookPanel.py:364 sidepanel/bookPanel.py:367 #, python-format msgid "Mate in %d" msgstr "" #: sidepanel/bookPanel.py:554 msgid "" "In this position,\n" "there is no legal move." msgstr "" #: sidepanel/chatPanel.py:21 msgid "" "The chat panel lets you communicate with your opponent during the game, " "assuming he or she is interested" msgstr "" #: sidepanel/commentPanel.py:16 msgid "Comments" msgstr "Şərhlər" #: sidepanel/commentPanel.py:20 msgid "The comments panel will try to analyze and explain the moves played" msgstr "" #: sidepanel/commentPanel.py:121 msgid "Initial position" msgstr "Başlanğıc vəziyyət" #: sidepanel/commentPanel.py:254 #, python-format msgid "%(color)s moves a %(piece)s to %(cord)s" msgstr "" #: sidepanel/engineOutputPanel.py:15 msgid "Engines" msgstr "" #: sidepanel/engineOutputPanel.py:20 msgid "" "The engine output panel shows the thinking output of chess engines (computer" " players) during a game" msgstr "" #: sidepanel/engineOutputPanel.py:44 msgid "No chess engines (computer players) are participating in this game." msgstr "" #: sidepanel/historyPanel.py:10 msgid "Move History" msgstr "Gedişlərin Siyahısı" #: sidepanel/historyPanel.py:13 msgid "" "The moves sheet keeps track of the players' moves and lets you navigate " "through the game history" msgstr "" #: sidepanel/scorePanel.py:15 msgid "Score" msgstr "Xal" #: sidepanel/scorePanel.py:19 msgid "" "The score panel tries to evaluate the positions and shows you a graph of the" " game progress" msgstr "" pychess-0.12.2/lang/az/LC_MESSAGES/pychess.mo0000644000175000017470000002220612653231272020710 0ustar tamasusers00000000000000   # %+ 9Q '      !; JQW&*($6G [g w    5A [f lw ~  DGI P Z e q }       *,;C L X#b DPRXZ`gls |      7SX]em uu!7? H S` fq%w         $0G M"W+z#W{('>5 Vk|,T"'w15#$+!Pr   *>Rl|  /APV]Pu  !1 D NZrt w$     $&.#Uy  ( * 1 3 = E I P c q       ! !!)!E!X!w!|!! !!!!!&L"&s" " """"""+" (# 6#D#K#^# c#n# ## ### #!# $ $"$+B$n$|+3b[%QqcWs k hE'p$w}AvMudFe. ]C,HR^:J24tD)V"/`8!@a?7&y jBZXY-UmLPx~1*N<S(\K9Tl5gG_ {;I#r0 >zfoi=6On'%s' is not a registered name0 Players Ready10 min + 6 sec/move, 1400↑, White2 min, Fischer Random, 1800↓, BlackConnect to the Free Online Chess ServerPromote pawn to what?AnalyzingAnimationDate of gameEnter Game NotationGame dataNewsPlay Sound When...PlayersToolsA file named '%s' already exists. Would you like to replace it?Engine, %s, has diedUnable to save file '%s'Unknown file type '%s'A player _checks:A player _moves:A player c_aptures:About ChessAll Chess FilesAll FilesBBeepBishopBlackBlitzBlitz:ChallengeChess GameChess PositionClockClose _without SavingCommentsConnectingConnection ErrorConnection was closedCould not save the fileCreate SeekDetect type automaticallyDon't careEmailEnter GameEvent:File existsGain:Game informationGame is _drawn:Game is _lost:Game is _set-up:Game is _won:GuestHuman BeingInitial positionIt is not possible later to continue the game, if you don't save it.KKnightLightningLightning:Loaded gameLocal EventLocal SiteLog on ErrorLog on as _GuestMinutes:Minutes: Move HistoryNNameNew GameNo soundNormalObserved _ends:Offer _DrawOpen GameOpen Sound FileOpening BookPPlayer _RatingPo_rts:Pre_viewPreferencesPromotionPyChess - Connect to Internet ChessPyChess - Internet Chess: FICSPyChess has lost connection to the engine, probably because it has died. You can try to start a new game with the engine, or try to play against another one.PyChess.py:QQueenRRatedRatingRookRound:S_ign upSave GameSave Game _AsSaved gameScoreSelect sound file...Send seekShow _ChatSite:Sp_y modeStandardStandard:The error was: %sThe game ended in a drawThe game has been abortedThe game has been adjournedTimeTypeUnknownUnratedUntimedUse _analyzerWhiteYou don't have the necessary rights to save the file. Please ensure that you have given the right path and try again.You sent a draw offerYour opponent is not out of time._Accept_Actions_Call Flag_Clear Seeks_Game_Game List_Help_Hide tabs when only one game is open_Hint mode_Load Game_Log Off_Log Viewer_Name:_New Game_Observed moves:_Password:_Player List_Replace_Rotate Board_Save Game_Start Game_Use sounds in PyChess_Viewgnuchess:http://en.wikipedia.org/wiki/Chesshttp://en.wikipedia.org/wiki/Rules_of_chesspromotes a Pawn to a %sProject-Id-Version: pychess Report-Msgid-Bugs-To: POT-Creation-Date: 2016-01-27 13:28+0100 PO-Revision-Date: 2016-01-28 08:56+0000 Last-Translator: slav0nic Language-Team: Azerbaijani (http://www.transifex.com/gbtami/pychess/language/az/) MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Language: az Plural-Forms: nplurals=2; plural=(n != 1); '%s' registrasiya olunmuş ad deyil0 Oyunçu Hazırdır10 dəq + 6 san/hərəkət, 1400↑, Ağ2dəq, Fişer Təsadüfi, 1800↓, QaraPulsuz Onlayn Şahmat Şəbəkəsinə QoşulPiyadanı nəyə çevirəcəksiniz?Analiz edilirAnimasiyaOyunun tarixiGedişlərin Siyahısını Daxil EdinOyun məlumatıXəbərlərSəs çıxar...OyunçularAlətlər'%s' adlı fayl mövcuddur. Siz onu əvəz etmək istəyirsinizmi?%s mühərriki öldü'%s' faylı qeyd oluna bilmədi'%s' : dosye növü dəstəklənmirO_ynuçulardan Biri Şah Deyəndə:Oynuçulardan Biri _Gediş Edəndə:Oyunçulardan Biri Fiqur _VurandaŞahmat HaqqındaBütün Şahmat FayllarıBütün FayllarFBiipFilQaraBlitsBlits:YarışŞahmat OyunuŞahmat vəziyyətiSaatQeyt _etmədən bağlaŞərhlərBağlanılırBağlantı XətasıBağlantı kəsildiFayl qeyd edilə bilmədiAxtarış YaratNövü avtomatik təyin etNarahat olmaEpoçtOyun Vəziyyəti Daxil EtHadisə:Fayl mövcuddurNəaliyyət:Oyun haqda məlumatOynun _Heç-heçə Qurtaranda:Oyunu _Uduzanda:Oyun _Başlayanda_Oyunu Udanda:QonaqİnsanBaşlanğıc vəziyyətƏgər siz oyunu yadda saxlamasanız, daha sonra oynu davam etdirmək olmayacaq.ŞAtİldırımsürətliİldırımsürətli:Açılmış oyunYerli HadisəYerli SaytıGiriş Xətası_Qonaq kimi qoşulDəqiqə:Dəqiqə: Gedişlərin SiyahısıAAdYeni OyunSəssizNormalMüşahidə olunan oyun _qurtaranda:_Bərabərlik Təklif EtOyunu AçSəs Faylını AçAçılışPOyunçu _ReytinqiPo_rtlar:B_axSeçimlərÇevirməPyChess - İnternet Şahmatına QoşulPyChess - İnternet Şahmatı: FICSPyChess mühərriklə əlaqəni itirdi, çox yəqin ki, o ölüb. Siz mühərriklə yeni başalamağı və ya başqasına qarşı oynamağı yoxlaya bilərsiniz.PyChess.py:VVəzirTReytinqliReytinqTopRaund:Q_eydiyyatdan keçOyunu Qeyd EtOyunu _Fərqli Qeyd EtYadda saxlanılmış oyunXalSəs Faylını Seç...Axtarış Göndər_Çatı Göstərİnternet Səhifəsi:_Şpion moduStandartStandart:Xəta : %s - idi.Oyun bərabərə qurtardı.Oyun ləğv edildiOyun başqa vaxta saxlanıldıVaxtNövNaməlumReytinqsizVaxtsız_Analizatordan istifadə etAğFaylı qeyd etmək üçün sizin yetərli səlahiyyətləriniz yoxdur. Doğru cərgəni göstərdiyinizdən əmin olun və təkrar yoxlayın.Siz heç-heçə təklifi göndərdinizRəqibiniz vaxtı hələ qurtarmayıb._Qəbul Et_Hərəkət_Bayrağı Endir_Axtarışları Təmizlə_Oyun_Oyun Siyahısı_Yardım_Ancaq səkmə olduqda səkmələri gizlət_Kömək moduOyun _Yüklə_Çıx_Qeyd İzləyicisi_Ad:_Yeni Oyun_Müşahidə olunan oynadıqdaŞ_ifrə:_Oyunçu SiyahısıƏvəz e_tTaxtanı _Çevir_Oyunu Qeyd EtOyuna _BaşlaPyChessdə _səsdən istifadə et_Görünüşgnuşahmat:http://en.wikipedia.org/wiki/Chesshttp://en.wikipedia.org/wiki/Rules_of_chessPiyadanı çevirdi : %spychess-0.12.2/lang/ku/0000755000175000017470000000000012653231274015115 5ustar tamasusers00000000000000pychess-0.12.2/lang/ku/LC_MESSAGES/0000755000175000017470000000000012653231274016702 5ustar tamasusers00000000000000pychess-0.12.2/lang/ku/LC_MESSAGES/pychess.po0000644000175000017470000024121612653216215020724 0ustar tamasusers00000000000000# SOME DESCRIPTIVE TITLE. # Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER # This file is distributed under the same license as the pychess package. # # Translators: # FIRST AUTHOR , 2008 msgid "" msgstr "" "Project-Id-Version: pychess\n" "Report-Msgid-Bugs-To: \n" "POT-Creation-Date: 2016-01-27 13:28+0100\n" "PO-Revision-Date: 2016-01-28 08:56+0000\n" "Last-Translator: slav0nic \n" "Language-Team: Kurdish (http://www.transifex.com/gbtami/pychess/language/ku/)\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" "Language: ku\n" "Plural-Forms: nplurals=2; plural=(n != 1);\n" # "Plural-Forms: nplurals=INTEGER; plural=EXPRESSION;\n" #: glade/analyze_game.glade:22 msgid "Analyze game" msgstr "" #: glade/analyze_game.glade:87 msgid "Use analyzer:" msgstr "" #: glade/analyze_game.glade:122 glade/PyChess.glade:2054 msgid "Maximum analysis time in seconds:" msgstr "" #: glade/analyze_game.glade:163 msgid "" "If the analyzer finds a move where the evaluation difference (the difference" " between the evaluation for the move it thinks is the best move and the " "evaluation for the move made in the game) exceeds this value, it will add an" " annotation for that move (consisting of the engine's Principal Variation " "for the move) to the Annotation panel" msgstr "" #: glade/analyze_game.glade:164 msgid "Variation annotation creation threshold in centipawns:" msgstr "" #: glade/analyze_game.glade:198 msgid "Analyze from current position" msgstr "" #: glade/analyze_game.glade:214 msgid "Add threatening variation lines " msgstr "" #: glade/analyze_game.glade:229 glade/PyChess.glade:1459 msgid "Colorize analyzed moves" msgstr "" #: glade/analyze_game.glade:244 glade/PyChess.glade:1495 msgid "Show evaluation values" msgstr "" #: glade/discovererDialog.glade:18 msgid "PyChess is discovering your engines. Please wait." msgstr "" #: glade/discovererDialog.glade:77 msgid "PyChess.py:" msgstr "" #: glade/discovererDialog.glade:89 msgid "ShredderLinuxChess:" msgstr "" #: glade/discovererDialog.glade:101 msgid "gnuchess:" msgstr "" #: glade/fics_logon.glade:7 msgid "PyChess - Connect to Internet Chess" msgstr "PyKişik - Girêde Kişika Torê" #: glade/fics_logon.glade:47 msgid "Connect to the Free Online Chess Server" msgstr "" #: glade/fics_logon.glade:129 glade/taskers.glade:394 msgid "_Password:" msgstr "_Şîfre:" #: glade/fics_logon.glade:143 msgid "_Name:" msgstr "_Nav:" #: glade/fics_logon.glade:191 msgid "Log on as _Guest" msgstr "Wekî _Mêvan têkevê" #: glade/fics_logon.glade:227 msgid "Host:" msgstr "" #: glade/fics_logon.glade:259 msgid "Po_rts:" msgstr "" #: glade/fics_logon.glade:271 msgid "Auto login on startup" msgstr "" #: glade/fics_logon.glade:385 msgid "S_ign up" msgstr "" #: glade/fics_lounge.glade:35 msgid "Challenge: " msgstr "" #: glade/fics_lounge.glade:97 msgid "Send Challenge" msgstr "" #: glade/fics_lounge.glade:133 msgid "Challenge:" msgstr "" #: glade/fics_lounge.glade:327 glade/fics_lounge.glade:2078 msgid "Lightning:" msgstr "" #: glade/fics_lounge.glade:351 glade/fics_lounge.glade:2102 msgid "Standard:" msgstr "" #: glade/fics_lounge.glade:375 glade/fics_lounge.glade:2126 msgid "Blitz:" msgstr "" #: glade/fics_lounge.glade:400 msgid "2 min, Fischer Random, Black" msgstr "" #: glade/fics_lounge.glade:422 msgid "10 min + 6 sec/move, White" msgstr "" #: glade/fics_lounge.glade:444 msgid "5 min" msgstr "" #: glade/fics_lounge.glade:480 msgid "Edit Seek" msgstr "" #: glade/fics_lounge.glade:584 lib/pychess/ic/ICLounge.py:2208 #: lib/pychess/ic/__init__.py:101 lib/pychess/Utils/GameModel.py:206 msgid "Untimed" msgstr "" #: glade/fics_lounge.glade:637 msgid "Minutes: " msgstr "" #: glade/fics_lounge.glade:665 msgid " Gain: " msgstr "" #: glade/fics_lounge.glade:703 msgid "Time control: " msgstr "" #: glade/fics_lounge.glade:716 lib/pychess/ic/FICSObjects.py:56 #: lib/pychess/ic/ICLounge.py:1137 lib/pychess/ic/ICLounge.py:2208 #: lib/pychess/ic/__init__.py:99 msgid "Standard" msgstr "" #: glade/fics_lounge.glade:757 glade/newInOut.glade:633 msgid "Time Control" msgstr "" #: glade/fics_lounge.glade:814 glade/fics_lounge.glade:1346 msgid "Don't care" msgstr "" #: glade/fics_lounge.glade:879 msgid "Your strength: " msgstr "" #: glade/fics_lounge.glade:921 msgid "(Blitz)" msgstr "" #: glade/fics_lounge.glade:951 msgid "Opponent's strength: " msgstr "" #: glade/fics_lounge.glade:1055 msgid "" "When this button is in the \"locked\" state, the relationship\n" "between \"Opponent's strength\" and \"Your strength\" will be\n" "preserved when \n" "a) your rating for the type of game sought has changed\n" "b) you change the variant or the time control" msgstr "" #: glade/fics_lounge.glade:1095 msgid "Center:" msgstr "" #: glade/fics_lounge.glade:1134 msgid "1200" msgstr "" #: glade/fics_lounge.glade:1188 msgid "Tolerance:" msgstr "" #: glade/fics_lounge.glade:1243 lib/pychess/ic/ICLounge.py:2452 msgid "Hide" msgstr "" #: glade/fics_lounge.glade:1289 msgid "Opponent Strength" msgstr "" #: glade/fics_lounge.glade:1386 lib/pychess/Database/gamelist.py:40 #: lib/pychess/ic/ICLounge.py:1357 lib/pychess/ic/ICLounge.py:1557 #: lib/pychess/ic/ICLounge.py:2108 lib/pychess/Utils/repr.py:10 #: lib/pychess/widgets/ChessClock.py:40 #: lib/pychess/widgets/TaskerManager.py:153 msgid "White" msgstr "" #: glade/fics_lounge.glade:1414 lib/pychess/Database/gamelist.py:40 #: lib/pychess/ic/ICLounge.py:1358 lib/pychess/ic/ICLounge.py:1558 #: lib/pychess/ic/ICLounge.py:2110 lib/pychess/Utils/repr.py:10 #: lib/pychess/widgets/ChessClock.py:40 #: lib/pychess/widgets/TaskerManager.py:154 msgid "Black" msgstr "" #: glade/fics_lounge.glade:1453 msgid "Your Color" msgstr "" #: glade/fics_lounge.glade:1512 msgid "Play normal chess rules" msgstr "" #: glade/fics_lounge.glade:1552 msgid "Play" msgstr "" #: glade/fics_lounge.glade:1618 glade/newInOut.glade:833 msgid "Chess Variant" msgstr "" #: glade/fics_lounge.glade:1676 msgid "Rated game" msgstr "" #: glade/fics_lounge.glade:1692 msgid "Manually accept opponent" msgstr "" #: glade/fics_lounge.glade:1722 msgid "Options" msgstr "" #: glade/fics_lounge.glade:1750 msgid "PyChess - Internet Chess: FICS" msgstr "PyKişik - Kişika Torê: FICS" #: glade/fics_lounge.glade:1823 msgid "_Clear Seeks" msgstr "" #: glade/fics_lounge.glade:1847 msgid "_Accept" msgstr "_Bipejirîne" #: glade/fics_lounge.glade:1871 msgid "_Decline" msgstr "" #: glade/fics_lounge.glade:2151 msgid "2 min, Fischer Random, 1800↓, Black" msgstr "" #: glade/fics_lounge.glade:2172 msgid "10 min + 6 sec/move, 1400↑, White" msgstr "" #: glade/fics_lounge.glade:2193 msgid "5 min, 1200-1800, Manual" msgstr "" #: glade/fics_lounge.glade:2247 msgid "Send all seeks" msgstr "" #: glade/fics_lounge.glade:2301 msgid "Send seek" msgstr "" #: glade/fics_lounge.glade:2337 msgid "Create Seek" msgstr "" #: glade/fics_lounge.glade:2353 msgid "_Seeks / Challenges" msgstr "" #: glade/fics_lounge.glade:2374 lib/pychess/ic/ICLounge.py:472 #: lib/pychess/ic/ICLounge.py:670 lib/pychess/ic/ICLounge.py:1357 #: lib/pychess/ic/ICLounge.py:1358 msgid "Rating" msgstr "" #: glade/fics_lounge.glade:2399 msgid "Time" msgstr "Dem" #: glade/fics_lounge.glade:2419 msgid "Seek _Graph" msgstr "" #: glade/fics_lounge.glade:2444 msgid "0 Players Ready" msgstr "" #: glade/fics_lounge.glade:2496 msgid "Challenge" msgstr "" #: glade/fics_lounge.glade:2549 glade/fics_lounge.glade:2735 msgid "Observe" msgstr "" #: glade/fics_lounge.glade:2602 msgid "Start Private Chat" msgstr "" #: glade/fics_lounge.glade:2659 msgid "_Player List" msgstr "" #: glade/fics_lounge.glade:2792 msgid "_Game List" msgstr "" #: glade/fics_lounge.glade:2847 msgid "_My games" msgstr "" #: glade/fics_lounge.glade:2904 glade/PyChess.glade:841 msgid "Offer _Resume" msgstr "" #: glade/fics_lounge.glade:2962 glade/PyChess.glade:880 msgid "R_esign" msgstr "" #: glade/fics_lounge.glade:3006 glade/PyChess.glade:820 msgid "Offer _Draw" msgstr "" #: glade/fics_lounge.glade:3050 msgid "Offer A_bort" msgstr "" #: glade/fics_lounge.glade:3107 msgid "Pre_view" msgstr "" #: glade/fics_lounge.glade:3151 msgid "Examine" msgstr "" #: glade/fics_lounge.glade:3208 msgid "_Archived" msgstr "" #: glade/fics_lounge.glade:3313 msgid "News" msgstr "Nûçe" #: glade/fics_lounge.glade:3345 msgid "Show Console" msgstr "" #: glade/fics_lounge.glade:3359 msgid "Show _Chat" msgstr "" #: glade/fics_lounge.glade:3373 msgid "_Log Off" msgstr "" #: glade/fics_lounge.glade:3393 msgid "Tools" msgstr "Amûr" #: glade/fics_lounge.glade:3428 msgid "Asymmetric Random " msgstr "" #: glade/findbar.glade:6 msgid "window1" msgstr "" #: glade/findbar.glade:21 msgid "0 of 0" msgstr "" #: glade/findbar.glade:66 msgid "Search:" msgstr "" #: glade/findbar.glade:134 msgid "_Previous" msgstr "" #: glade/findbar.glade:192 msgid "_Next" msgstr "" #: glade/newInOut.glade:45 lib/pychess/widgets/newGameDialog.py:445 msgid "New Game" msgstr "" #: glade/newInOut.glade:108 msgid "_Start Game" msgstr "" #: glade/newInOut.glade:130 msgid "Copy FEN" msgstr "" #: glade/newInOut.glade:143 msgid "Clear" msgstr "" #: glade/newInOut.glade:156 msgid "Paste FEN" msgstr "" #: glade/newInOut.glade:257 msgid "_Black player:" msgstr "" #: glade/newInOut.glade:274 msgid "_White player:" msgstr "" #: glade/newInOut.glade:385 msgid "Players" msgstr "" #: glade/newInOut.glade:436 msgid "_Untimed" msgstr "" #: glade/newInOut.glade:475 msgid "Blitz: 5 min" msgstr "" #: glade/newInOut.glade:526 msgid "Rapid: 15 min + 10 sec/move" msgstr "" #: glade/newInOut.glade:575 msgid "Normal: 40 min + 15 sec/move" msgstr "" #: glade/newInOut.glade:684 msgid "_Play Normal chess" msgstr "" #: glade/newInOut.glade:724 msgid "Play Fischer Random chess" msgstr "" #: glade/newInOut.glade:774 msgid "Play Losers chess" msgstr "" #: glade/newInOut.glade:919 msgid "Open Game" msgstr "" #: glade/newInOut.glade:1162 msgid "Initial Position" msgstr "" #: glade/newInOut.glade:1219 msgid "Enter Game Notation" msgstr "" #: glade/newInOut.glade:1314 msgid "Halfmove clock" msgstr "" #: glade/newInOut.glade:1327 msgid "En passant line" msgstr "" #: glade/newInOut.glade:1339 msgid "Side to move" msgstr "" #: glade/newInOut.glade:1351 msgid "Move number" msgstr "" #: glade/newInOut.glade:1361 msgid "Black O-O" msgstr "" #: glade/newInOut.glade:1375 msgid "Black O-O-O" msgstr "" #: glade/newInOut.glade:1389 msgid "White O-O-O" msgstr "" #: glade/newInOut.glade:1403 msgid "White O-O" msgstr "" #: glade/promotion.glade:7 msgid "Promotion" msgstr "" #: glade/promotion.glade:49 lib/pychess/Utils/repr.py:12 msgid "Queen" msgstr "" #: glade/promotion.glade:95 lib/pychess/Utils/repr.py:12 msgid "Rook" msgstr "" #: glade/promotion.glade:141 lib/pychess/Utils/repr.py:12 msgid "Bishop" msgstr "" #: glade/promotion.glade:187 lib/pychess/Utils/repr.py:12 msgid "Knight" msgstr "" #: glade/promotion.glade:233 lib/pychess/Utils/repr.py:12 msgid "King" msgstr "" #: glade/promotion.glade:265 msgid "Promote pawn to what?" msgstr "" #: glade/PyChess.glade:9 msgid "Chess client" msgstr "" #: glade/PyChess.glade:44 msgid "Game information" msgstr "" #: glade/PyChess.glade:164 msgid "Event:" msgstr "" #: glade/PyChess.glade:178 msgid "Site:" msgstr "" #: glade/PyChess.glade:204 msgid "Round:" msgstr "" #: glade/PyChess.glade:237 msgid "White:" msgstr "" #: glade/PyChess.glade:249 msgid "Black:" msgstr "" #: glade/PyChess.glade:302 msgid "Game data" msgstr "" #: glade/PyChess.glade:357 msgid "Date of game" msgstr "" #: glade/PyChess.glade:495 msgid "_Game" msgstr "" #: glade/PyChess.glade:502 msgid "_New Game" msgstr "" #: glade/PyChess.glade:515 msgid "Play _Internet Chess" msgstr "" #: glade/PyChess.glade:534 msgid "_Load Game" msgstr "" #: glade/PyChess.glade:550 msgid "Load _Recent Game" msgstr "" #: glade/PyChess.glade:558 msgid "Open _Database" msgstr "" #: glade/PyChess.glade:569 lib/pychess/widgets/newGameDialog.py:615 msgid "Setup Position" msgstr "" #: glade/PyChess.glade:579 msgid "Enter Game _Notation" msgstr "" #: glade/PyChess.glade:592 msgid "_Save Game" msgstr "" #: glade/PyChess.glade:606 msgid "Save Game _As" msgstr "" #: glade/PyChess.glade:624 msgid "Share Game" msgstr "" #: glade/PyChess.glade:630 msgid "_Export Position" msgstr "" #: glade/PyChess.glade:644 msgid "_Analyze Game" msgstr "" #: glade/PyChess.glade:678 msgid "Player _Rating" msgstr "" #: glade/PyChess.glade:723 msgid "_Edit" msgstr "" #: glade/PyChess.glade:734 msgid "_Copy PGN" msgstr "" #: glade/PyChess.glade:746 msgid "_Copy FEN" msgstr "" #: glade/PyChess.glade:763 msgid "_Engines" msgstr "" #: glade/PyChess.glade:789 msgid "_Actions" msgstr "" #: glade/PyChess.glade:800 msgid "Offer _Abort" msgstr "" #: glade/PyChess.glade:810 msgid "Offer Ad_journment" msgstr "" #: glade/PyChess.glade:831 msgid "Offer _Pause" msgstr "" #: glade/PyChess.glade:847 msgid "Offer _Undo" msgstr "" #: glade/PyChess.glade:870 msgid "_Call Flag" msgstr "" #: glade/PyChess.glade:890 msgid "Ask to _Move" msgstr "" #: glade/PyChess.glade:905 msgid "Auto Call _Flag" msgstr "" #: glade/PyChess.glade:918 msgid "_View" msgstr "" #: glade/PyChess.glade:925 msgid "_Rotate Board" msgstr "" #: glade/PyChess.glade:939 msgid "_Fullscreen" msgstr "" #: glade/PyChess.glade:952 msgid "Leave _Fullscreen" msgstr "" #: glade/PyChess.glade:969 msgid "_Show Sidepanels" msgstr "" #: glade/PyChess.glade:980 msgid "_Log Viewer" msgstr "" #: glade/PyChess.glade:997 msgid "_Hint mode" msgstr "" #: glade/PyChess.glade:1009 msgid "Sp_y mode" msgstr "" #: glade/PyChess.glade:1024 msgid "_Help" msgstr "" #: glade/PyChess.glade:1034 msgid "About Chess" msgstr "" #: glade/PyChess.glade:1043 msgid "How to Play" msgstr "" #: glade/PyChess.glade:1052 msgid "Translate PyChess" msgstr "" #: glade/PyChess.glade:1058 msgid "Tip of the Day" msgstr "" #: glade/PyChess.glade:1153 msgid "Default" msgstr "" #: glade/PyChess.glade:1156 msgid "Knights" msgstr "" #: glade/PyChess.glade:1167 lib/pychess/widgets/preferencesDialog.py:349 msgid "Beep" msgstr "" #: glade/PyChess.glade:1170 lib/pychess/widgets/preferencesDialog.py:350 msgid "Select sound file..." msgstr "" #: glade/PyChess.glade:1173 lib/pychess/widgets/preferencesDialog.py:348 msgid "No sound" msgstr "" #: glade/PyChess.glade:1180 msgid "Preferences" msgstr "" #: glade/PyChess.glade:1218 msgid "The displayed name of the first human player, e.g., John." msgstr "" #: glade/PyChess.glade:1230 msgid "Name of _first human player:" msgstr "" #: glade/PyChess.glade:1259 msgid "The displayed name of the guest player, e.g., Mary." msgstr "" #: glade/PyChess.glade:1271 msgid "Name of s_econd human player:" msgstr "" #: glade/PyChess.glade:1307 msgid "_Hide tabs when only one game is open" msgstr "" #: glade/PyChess.glade:1312 msgid "" "If set, this hides the tab in the top of the playing window, when it is not " "needed." msgstr "" #: glade/PyChess.glade:1326 msgid "_Use main app closer [x] to close all games" msgstr "" #: glade/PyChess.glade:1331 msgid "" "If set, clicking on main application window closer first time it closes all " "games." msgstr "" #: glade/PyChess.glade:1345 msgid "Auto _rotate board to current human player" msgstr "" #: glade/PyChess.glade:1350 msgid "" "If set, the board will turn after each move, to show the natural view for " "the current player." msgstr "" #: glade/PyChess.glade:1364 msgid "Auto _promote to queen" msgstr "" #: glade/PyChess.glade:1369 msgid "If set, pawn promotes to queen without promotion dialog selection." msgstr "" #: glade/PyChess.glade:1383 msgid "Face _to Face display mode" msgstr "" #: glade/PyChess.glade:1388 msgid "" "If set, the black pieces will be head down, suitable for playing against " "friends on mobile devices." msgstr "" #: glade/PyChess.glade:1402 msgid "Sho_w cords" msgstr "" #: glade/PyChess.glade:1407 msgid "" "If set, the playing board will display labels and ranks for each chess " "field. These are usable in chess notation." msgstr "" #: glade/PyChess.glade:1421 msgid "Show _captured pieces" msgstr "" #: glade/PyChess.glade:1426 msgid "If set, the captured figurines will be shown next to the board." msgstr "" #: glade/PyChess.glade:1440 msgid "Prefer figures in _notation" msgstr "" #: glade/PyChess.glade:1445 msgid "" "If set, PyChess will use figures to express moved pieces, rather than " "uppercase letters." msgstr "" #: glade/PyChess.glade:1464 msgid "If set, PyChess will colorize suboptimal analyzed moves with red." msgstr "" #: glade/PyChess.glade:1477 msgid "Show elapsed move times" msgstr "" #: glade/PyChess.glade:1482 msgid "If set, the elapsed time that a player used for the move is shown." msgstr "" #: glade/PyChess.glade:1500 msgid "If set, the hint analyzer engine evaluation value is shown." msgstr "" #: glade/PyChess.glade:1526 msgid "General Options" msgstr "" #: glade/PyChess.glade:1560 msgid "F_ull board animation" msgstr "" #: glade/PyChess.glade:1565 msgid "Animate pieces, board rotation and more. Use this on fast machines." msgstr "" #: glade/PyChess.glade:1579 msgid "Only animate _moves" msgstr "" #: glade/PyChess.glade:1584 msgid "Only animate piece moves." msgstr "" #: glade/PyChess.glade:1599 msgid "No _animation" msgstr "" #: glade/PyChess.glade:1604 msgid "Never use animation. Use this on slow machines." msgstr "" #: glade/PyChess.glade:1632 msgid "Animation" msgstr "" #: glade/PyChess.glade:1651 msgid "_General" msgstr "" #: glade/PyChess.glade:1692 msgid "Use opening _book" msgstr "" #: glade/PyChess.glade:1697 msgid "If set, PyChess will suggest best opening moves on hint panel." msgstr "" #: glade/PyChess.glade:1724 msgid "Polyglot book file:" msgstr "" #: glade/PyChess.glade:1768 msgid "Use _local tablebases" msgstr "" #: glade/PyChess.glade:1773 msgid "" "If set, PyChess will show game results for different moves in positions containing 6 or less pieces.\n" "You can download tablebase files from:\n" "http://www.olympuschess.com/egtb/gaviota/" msgstr "" #: glade/PyChess.glade:1803 msgid "Gaviota TB path:" msgstr "" #: glade/PyChess.glade:1843 msgid "Use _online tablebases" msgstr "" #: glade/PyChess.glade:1848 msgid "" "If set, PyChess will show game results for different moves in positions containing 6 or less pieces.\n" "It will search positions from http://www.k4it.de/" msgstr "" #: glade/PyChess.glade:1870 msgid "Opening, endgame" msgstr "" #: glade/PyChess.glade:1904 msgid "Use _analyzer" msgstr "" #: glade/PyChess.glade:1946 msgid "" "The analyzer will run in the background and analyze the game. This is " "necessary for the hint mode to work" msgstr "" #: glade/PyChess.glade:1978 msgid "Use _inverted analyzer" msgstr "" #: glade/PyChess.glade:2020 msgid "" "The inverse analyzer will analyze the game as if your opponent was to move. " "This is necessary for the spy mode to work" msgstr "" #: glade/PyChess.glade:2096 msgid "Analyzing" msgstr "" #: glade/PyChess.glade:2118 msgid "_Hints" msgstr "" #: glade/PyChess.glade:2263 msgid "Uninstall" msgstr "" #: glade/PyChess.glade:2317 msgid "Ac_tive" msgstr "" #: glade/PyChess.glade:2367 msgid "Installed Sidepanels" msgstr "" #: glade/PyChess.glade:2382 msgid "Side_panels" msgstr "" #: glade/PyChess.glade:2440 msgid "Light Squares :" msgstr "" #: glade/PyChess.glade:2479 msgid "Dark Squares :" msgstr "" #: glade/PyChess.glade:2515 msgid "Reset Default Colours" msgstr "" #: glade/PyChess.glade:2551 msgid "Board Colours" msgstr "" #: glade/PyChess.glade:2610 msgid "Chess Sets" msgstr "" #: glade/PyChess.glade:2634 msgid "Themes" msgstr "" #: glade/PyChess.glade:2659 msgid "_Use sounds in PyChess" msgstr "" #: glade/PyChess.glade:2982 msgid "A player _checks:" msgstr "" #: glade/PyChess.glade:2997 msgid "A player _moves:" msgstr "" #: glade/PyChess.glade:3010 msgid "Game is _drawn:" msgstr "" #: glade/PyChess.glade:3025 msgid "Game is _lost:" msgstr "" #: glade/PyChess.glade:3040 msgid "Game is _won:" msgstr "" #: glade/PyChess.glade:3055 msgid "A player c_aptures:" msgstr "" #: glade/PyChess.glade:3084 msgid "Game is _set-up:" msgstr "" #: glade/PyChess.glade:3136 msgid "_Observed moves:" msgstr "" #: glade/PyChess.glade:3151 msgid "Observed _ends:" msgstr "" #: glade/PyChess.glade:3265 msgid "Short on _time:" msgstr "" #: glade/PyChess.glade:3317 msgid "_Invalid move:" msgstr "" #: glade/PyChess.glade:3369 msgid "Activate alarm when _remaining sec is:" msgstr "" #: glade/PyChess.glade:3416 msgid "Play Sound When..." msgstr "" #: glade/PyChess.glade:3438 msgid "_Sounds" msgstr "" #: glade/PyChess.glade:3463 msgid "_Auto save finished games" msgstr "" #: glade/PyChess.glade:3497 msgid "Save files to:" msgstr "" #: glade/PyChess.glade:3525 msgid "Use name format:" msgstr "" #: glade/PyChess.glade:3569 msgid "Names: #n1, #n2" msgstr "" #: glade/PyChess.glade:3582 msgid "Year, month, day: #y, #m, #d" msgstr "" #: glade/PyChess.glade:3619 msgid "Save elapsed move _times" msgstr "" #: glade/PyChess.glade:3644 msgid "Save analyzing engine _evaluation values" msgstr "" #: glade/PyChess.glade:3669 msgid "Save _own games only" msgstr "" #: glade/PyChess.glade:3698 msgid "Save" msgstr "" #: glade/PyChess.glade:3728 msgid "uci" msgstr "" #: glade/PyChess.glade:3731 msgid "xboard" msgstr "" #: glade/PyChess.glade:3739 msgid "Manage engines" msgstr "" #: glade/PyChess.glade:3837 msgid "Command:" msgstr "" #: glade/PyChess.glade:3851 msgid "Protocol:" msgstr "" #: glade/PyChess.glade:3865 msgid "Parameters:" msgstr "" #: glade/PyChess.glade:3878 msgid "Command line parameters needed by the engine." msgstr "" #: glade/PyChess.glade:3903 msgid "" "Engines use uci or xboard communication protocol to talk to the GUI.\n" "If it can use both you can set here which one you like." msgstr "" #: glade/PyChess.glade:3929 msgid "Working directory:" msgstr "" #: glade/PyChess.glade:3942 msgid "The directory where the engine will be started from." msgstr "" #: glade/saveGamesDialog.glade:7 msgid "Quit PyChess" msgstr "" #: glade/saveGamesDialog.glade:24 lib/pychess/widgets/ionest.py:424 msgid "Close _without Saving" msgstr "" #: glade/saveGamesDialog.glade:83 msgid "_Save %d documents" msgstr "" #: glade/saveGamesDialog.glade:141 msgid "" "There are %d games with unsaved moves. Save changes before " "closing?" msgstr "" #: glade/saveGamesDialog.glade:161 msgid "Select the games you want to save:" msgstr "" #: glade/saveGamesDialog.glade:204 msgid "If you don't save, new changes to your games will be permanently lost." msgstr "" #: glade/taskers.glade:126 msgid "_Opponent:" msgstr "" #: glade/taskers.glade:154 msgid "_Your Color:" msgstr "" #: glade/taskers.glade:219 msgid "_Start Game" msgstr "" #: glade/taskers.glade:338 msgid "Log on as G_uest" msgstr "" #: glade/taskers.glade:410 msgid "Ha_ndle:" msgstr "" #: glade/taskers.glade:469 msgid "_Connect to server" msgstr "" #: glade/tipoftheday.glade:7 msgid "Tip Of The day" msgstr "" #: glade/tipoftheday.glade:62 msgid "Show tips at startup" msgstr "" #: lib/pychess/Main.py:302 msgid "http://en.wikipedia.org/wiki/Chess" msgstr "" #: lib/pychess/Main.py:305 msgid "http://en.wikipedia.org/wiki/Rules_of_chess" msgstr "" #: lib/pychess/Main.py:370 lib/pychess/widgets/gamenanny.py:80 msgid "Welcome" msgstr "" #: lib/pychess/Database/gamelist.py:40 msgid "Id" msgstr "" #: lib/pychess/Database/gamelist.py:40 msgid "W Elo" msgstr "" #: lib/pychess/Database/gamelist.py:40 msgid "B Elo" msgstr "" #: lib/pychess/Database/gamelist.py:41 msgid "Result" msgstr "" #: lib/pychess/Database/gamelist.py:41 msgid "Event" msgstr "" #: lib/pychess/Database/gamelist.py:41 msgid "Site" msgstr "" #: lib/pychess/Database/gamelist.py:41 msgid "Round" msgstr "" #: lib/pychess/Database/gamelist.py:41 msgid "Date" msgstr "" #: lib/pychess/Database/gamelist.py:41 msgid "ECO" msgstr "" #: lib/pychess/Database/gamelist.py:62 msgid "PyChess Game Database" msgstr "" #: lib/pychess/Database/PgnImport.py:188 #, python-format msgid "The game #%s can't be loaded, because of an error parsing FEN" msgstr "" #: lib/pychess/ic/FICSConnection.py:139 msgid "The connection was broken - got \"end of file\" message" msgstr "" #: lib/pychess/ic/FICSConnection.py:140 #, python-format msgid "'%s' is not a registered name" msgstr "" #: lib/pychess/ic/FICSConnection.py:141 msgid "" "The entered password was invalid.\n" "If you forgot your password, go to http://www.freechess.org/password to request a new one over email." msgstr "" #: lib/pychess/ic/FICSConnection.py:145 #, python-format msgid "Sorry '%s' is already logged in" msgstr "" #: lib/pychess/ic/FICSConnection.py:146 #, python-format msgid "'%s' is a registered name. If it is yours, type the password." msgstr "" #: lib/pychess/ic/FICSConnection.py:147 msgid "" "Due to abuse problems, guest connections have been prevented.\n" "You can still register on http://www.freechess.org" msgstr "" #: lib/pychess/ic/FICSConnection.py:166 msgid "Connecting to server" msgstr "" #: lib/pychess/ic/FICSConnection.py:181 msgid "Logging on to server" msgstr "" #: lib/pychess/ic/FICSConnection.py:239 msgid "Setting up environment" msgstr "" #: lib/pychess/ic/FICSObjects.py:35 lib/pychess/ic/FICSObjects.py:47 #, python-format msgid "%(player)s is %(status)s" msgstr "" #: lib/pychess/ic/FICSObjects.py:46 msgid "not playing" msgstr "" #: lib/pychess/ic/FICSObjects.py:54 lib/pychess/ic/ICLounge.py:1136 #: lib/pychess/ic/ICLounge.py:2209 lib/pychess/ic/__init__.py:98 #: lib/pychess/widgets/newGameDialog.py:153 msgid "Blitz" msgstr "" #: lib/pychess/ic/FICSObjects.py:58 lib/pychess/ic/ICLounge.py:1137 #: lib/pychess/ic/ICLounge.py:2209 lib/pychess/ic/__init__.py:100 msgid "Lightning" msgstr "" #: lib/pychess/ic/FICSObjects.py:60 lib/pychess/Variants/atomic.py:15 msgid "Atomic" msgstr "" #: lib/pychess/ic/FICSObjects.py:62 lib/pychess/Variants/bughouse.py:9 msgid "Bughouse" msgstr "" #: lib/pychess/ic/FICSObjects.py:64 lib/pychess/Variants/crazyhouse.py:9 msgid "Crazyhouse" msgstr "" #: lib/pychess/ic/FICSObjects.py:66 lib/pychess/Variants/losers.py:9 msgid "Losers" msgstr "" #: lib/pychess/ic/FICSObjects.py:68 lib/pychess/Variants/suicide.py:12 msgid "Suicide" msgstr "" #: lib/pychess/ic/FICSObjects.py:70 lib/pychess/ic/__init__.py:129 msgid "Wild" msgstr "" #: lib/pychess/ic/FICSObjects.py:117 msgid "Online" msgstr "" #: lib/pychess/ic/FICSObjects.py:118 lib/pychess/ic/FICSObjects.py:143 msgid "Offline" msgstr "" #: lib/pychess/ic/FICSObjects.py:133 msgid "Available" msgstr "" #: lib/pychess/ic/FICSObjects.py:135 msgid "Playing" msgstr "" #: lib/pychess/ic/FICSObjects.py:141 msgid "Idle" msgstr "" #: lib/pychess/ic/FICSObjects.py:145 msgid "Examining" msgstr "" #: lib/pychess/ic/FICSObjects.py:147 msgid "Not Available" msgstr "" #: lib/pychess/ic/FICSObjects.py:149 msgid "Running Simul Match" msgstr "" #: lib/pychess/ic/FICSObjects.py:151 msgid "In Tournament" msgstr "" #: lib/pychess/ic/FICSObjects.py:308 lib/pychess/ic/FICSObjects.py:492 #: lib/pychess/ic/ICLounge.py:2278 msgid "Unrated" msgstr "" #: lib/pychess/ic/FICSObjects.py:491 lib/pychess/ic/ICLounge.py:670 #: lib/pychess/ic/ICLounge.py:1358 lib/pychess/ic/ICLounge.py:1558 #: lib/pychess/ic/ICLounge.py:2113 msgid "Rated" msgstr "" #: lib/pychess/ic/FICSObjects.py:498 lib/pychess/ic/ICLounge.py:2098 #, python-format msgid "%d min" msgstr "" #: lib/pychess/ic/FICSObjects.py:500 #, python-format msgid " + %d sec" msgstr "" #: lib/pychess/ic/FICSObjects.py:517 #, python-format msgid "%(player)s plays %(color)s" msgstr "" #: lib/pychess/ic/FICSObjects.py:519 lib/pychess/ic/ICLounge.py:909 msgid "white" msgstr "" #: lib/pychess/ic/FICSObjects.py:519 lib/pychess/ic/ICLounge.py:909 msgid "black" msgstr "" #: lib/pychess/ic/FICSObjects.py:565 msgid "This is a continuation of an adjourned match" msgstr "" #: lib/pychess/ic/FICSObjects.py:654 msgid "Opponent Rating" msgstr "" #: lib/pychess/ic/FICSObjects.py:656 msgid "Manual Accept" msgstr "" #: lib/pychess/ic/FICSObjects.py:810 msgid "Private" msgstr "" #: lib/pychess/ic/FICSObjects.py:930 lib/pychess/ic/ICLounge.py:527 #: lib/pychess/Savers/epd.py:139 msgid "Unknown" msgstr "" #: lib/pychess/ic/ICLogon.py:159 lib/pychess/ic/ICLogon.py:165 msgid "Connection Error" msgstr "" #: lib/pychess/ic/ICLogon.py:161 msgid "Log on Error" msgstr "" #: lib/pychess/ic/ICLogon.py:163 msgid "Connection was closed" msgstr "" #: lib/pychess/ic/ICLogon.py:169 msgid "Address Error" msgstr "" #: lib/pychess/ic/ICLogon.py:172 msgid "Auto-logout" msgstr "" #: lib/pychess/ic/ICLogon.py:173 msgid "You have been logged out because you were idle more than 60 minutes" msgstr "" #: lib/pychess/ic/ICLounge.py:222 msgid "You have to set kibitz on to see bot messages here." msgstr "" #: lib/pychess/ic/ICLounge.py:241 msgid "" "You may only have 3 outstanding seeks at the same time. If you want to add a" " new seek you must clear your currently active seeks. Clear your seeks?" msgstr "" #: lib/pychess/ic/ICLounge.py:258 msgid "You can't touch this! You are examining a game." msgstr "" #: lib/pychess/ic/ICLounge.py:270 msgid " has declined your offer for a match" msgstr "" #: lib/pychess/ic/ICLounge.py:283 msgid " is censoring you" msgstr "" #: lib/pychess/ic/ICLounge.py:296 msgid " noplay listing you" msgstr "" #: lib/pychess/ic/ICLounge.py:311 msgid " uses a formula not fitting your match request:" msgstr "" #: lib/pychess/ic/ICLounge.py:325 msgid "to manual accept" msgstr "" #: lib/pychess/ic/ICLounge.py:327 msgid "to automatic accept" msgstr "" #: lib/pychess/ic/ICLounge.py:329 msgid "rating range now" msgstr "" #: lib/pychess/ic/ICLounge.py:330 msgid "Seek updated" msgstr "" #: lib/pychess/ic/ICLounge.py:342 msgid "Your seeks have been removed" msgstr "" #: lib/pychess/ic/ICLounge.py:363 msgid " has arrived" msgstr "" #: lib/pychess/ic/ICLounge.py:370 msgid " has departed" msgstr "" #: lib/pychess/ic/ICLounge.py:374 msgid " is present" msgstr "" #: lib/pychess/ic/ICLounge.py:391 sidepanel/chatPanel.py:17 msgid "Chat" msgstr "" #: lib/pychess/ic/ICLounge.py:472 sidepanel/bookPanel.py:366 msgid "Win" msgstr "" #: lib/pychess/ic/ICLounge.py:472 sidepanel/bookPanel.py:360 msgid "Draw" msgstr "" #: lib/pychess/ic/ICLounge.py:472 sidepanel/bookPanel.py:363 msgid "Loss" msgstr "" #: lib/pychess/ic/ICLounge.py:482 msgid "" "On FICS, your \"Wild\" rating encompasses all of the following variants at " "all time controls:\n" msgstr "" #: lib/pychess/ic/ICLounge.py:494 msgid "Sanctions" msgstr "" #: lib/pychess/ic/ICLounge.py:499 msgid "Email" msgstr "" #: lib/pychess/ic/ICLounge.py:504 msgid "Spent" msgstr "" #: lib/pychess/ic/ICLounge.py:506 msgid "online in total" msgstr "" #: lib/pychess/ic/ICLounge.py:512 msgid "Ping" msgstr "" #: lib/pychess/ic/ICLounge.py:517 msgid "Connecting" msgstr "" #: lib/pychess/ic/ICLounge.py:544 msgid "" "You are currently logged in as a guest.\n" "A guest can't play rated games and therefore isn't able to play as many of the types of matches offered as a registered user. To register an account, go to http://www.freechess.org/Register/index.html." msgstr "" #: lib/pychess/ic/ICLounge.py:669 lib/pychess/ic/ICLounge.py:1136 msgid "Name" msgstr "" #: lib/pychess/ic/ICLounge.py:670 lib/pychess/ic/ICLounge.py:1358 #: lib/pychess/ic/ICLounge.py:1558 msgid "Type" msgstr "" #: lib/pychess/ic/ICLounge.py:670 lib/pychess/ic/ICLounge.py:1558 msgid "Clock" msgstr "" #: lib/pychess/ic/ICLounge.py:726 lib/pychess/ic/ICLounge.py:923 #: lib/pychess/Players/Human.py:250 msgid "Accept" msgstr "" #: lib/pychess/ic/ICLounge.py:728 msgid "Assess" msgstr "" #: lib/pychess/ic/ICLounge.py:734 msgid "Archived" msgstr "" #: lib/pychess/ic/ICLounge.py:848 #, python-format msgid "Active seeks: %d" msgstr "" #: lib/pychess/ic/ICLounge.py:897 #, python-format msgid "" " would like to resume your adjourned %(time)s %(gametype)s " "game." msgstr "" #: lib/pychess/ic/ICLounge.py:902 #, python-format msgid "" " challenges you to a %(time)s %(rated)s %(gametype)s game" msgstr "" #: lib/pychess/ic/ICLounge.py:907 #, python-format msgid " where %(player)s plays %(color)s." msgstr "" #: lib/pychess/ic/ICLounge.py:924 lib/pychess/Players/Human.py:251 msgid "Decline" msgstr "" #: lib/pychess/ic/ICLounge.py:1065 msgid " min" msgstr "" #: lib/pychess/ic/ICLounge.py:1137 msgid "Status" msgstr "" #: lib/pychess/ic/ICLounge.py:1203 lib/pychess/ic/ICLounge.py:1233 #, python-format msgid "Players: %d" msgstr "" #: lib/pychess/ic/ICLounge.py:1469 #, python-format msgid "Games running: %d" msgstr "" #: lib/pychess/ic/ICLounge.py:1559 msgid "Date/Time" msgstr "" #: lib/pychess/ic/ICLounge.py:1614 #, python-format msgid "" " with whom you have an adjourned %(timecontrol)s %(gametype)s " "game is online." msgstr "" #: lib/pychess/ic/ICLounge.py:1635 msgid "Request Continuation" msgstr "" #: lib/pychess/ic/ICLounge.py:1637 msgid "Examine Adjourned Game" msgstr "" #: lib/pychess/ic/ICLounge.py:1965 msgid "" "The chain button is disabled because you are logged in as a guest. Guests " "can't establish ratings, and the chain button's state has no effect when " "there is no rating to which to tie \"Opponent Strength\" to" msgstr "" #: lib/pychess/ic/ICLounge.py:2006 msgid "Challenge: " msgstr "" #: lib/pychess/ic/ICLounge.py:2044 msgid "If set you can refuse players accepting your seek" msgstr "" #: lib/pychess/ic/ICLounge.py:2048 lib/pychess/ic/ICLounge.py:2051 msgid "This option is not applicable because you're challenging a player" msgstr "" #: lib/pychess/ic/ICLounge.py:2064 msgid "Edit Seek: " msgstr "" #: lib/pychess/ic/ICLounge.py:2095 #, python-format msgid "%(minutes)d min + %(gain)d sec/move" msgstr "" #: lib/pychess/ic/ICLounge.py:2116 msgid "Manual" msgstr "" #: lib/pychess/ic/ICLounge.py:2256 msgid "Any strength" msgstr "" #: lib/pychess/ic/ICLounge.py:2308 msgid "You can't play rated games because you are logged in as a guest" msgstr "" #: lib/pychess/ic/ICLounge.py:2312 msgid "You can't play rated games because \"Untimed\" is checked, " msgstr "" #: lib/pychess/ic/ICLounge.py:2313 msgid "and on FICS, untimed games can't be rated" msgstr "" #: lib/pychess/ic/ICLounge.py:2317 msgid "This option is not available because you're challenging a guest, " msgstr "" #: lib/pychess/ic/ICLounge.py:2318 msgid "and guests can't play rated games" msgstr "" #: lib/pychess/ic/ICLounge.py:2332 lib/pychess/Variants/shuffle.py:16 #: lib/pychess/widgets/newGameDialog.py:266 msgid "Shuffle" msgstr "" #: lib/pychess/ic/ICLounge.py:2333 lib/pychess/widgets/newGameDialog.py:267 msgid "Other (standard rules)" msgstr "" #: lib/pychess/ic/ICLounge.py:2334 lib/pychess/widgets/newGameDialog.py:268 msgid "Other (non standard rules)" msgstr "" #: lib/pychess/ic/ICLounge.py:2421 msgid "You can't select a variant because \"Untimed\" is checked, " msgstr "" #: lib/pychess/ic/ICLounge.py:2422 msgid "and on FICS, untimed games have to be normal chess rules" msgstr "" #: lib/pychess/ic/ICLounge.py:2454 msgid "Change Tolerance" msgstr "" #: lib/pychess/ic/__init__.py:102 msgid "Examined" msgstr "" #: lib/pychess/ic/__init__.py:103 msgid "Other" msgstr "" #: lib/pychess/ic/__init__.py:182 msgid "Administrator" msgstr "" #: lib/pychess/ic/__init__.py:182 msgid "Blindfold Account" msgstr "" #: lib/pychess/ic/__init__.py:182 msgid "Computer" msgstr "" #: lib/pychess/ic/__init__.py:183 msgid "Team Account" msgstr "" #: lib/pychess/ic/__init__.py:183 msgid "Unregistered" msgstr "" #: lib/pychess/ic/__init__.py:183 msgid "Chess Advisor" msgstr "" #: lib/pychess/ic/__init__.py:184 msgid "Service Representative" msgstr "" #: lib/pychess/ic/__init__.py:184 msgid "Tournament Director" msgstr "" #: lib/pychess/ic/__init__.py:184 msgid "Mamer Manager" msgstr "" #: lib/pychess/ic/__init__.py:185 msgid "Grand Master" msgstr "" #: lib/pychess/ic/__init__.py:185 msgid "International Master" msgstr "" #: lib/pychess/ic/__init__.py:185 msgid "FIDE Master" msgstr "" #: lib/pychess/ic/__init__.py:186 msgid "Woman Grand Master" msgstr "" #: lib/pychess/ic/__init__.py:186 msgid "Woman International Master" msgstr "" #: lib/pychess/ic/__init__.py:186 msgid "Woman FIDE Master" msgstr "" #: lib/pychess/ic/__init__.py:187 msgid "Dummy Account" msgstr "" #: lib/pychess/ic/__init__.py:191 msgid "*" msgstr "" #: lib/pychess/ic/__init__.py:191 lib/pychess/Utils/repr.py:14 msgid "B" msgstr "" #: lib/pychess/ic/__init__.py:191 msgid "C" msgstr "" #: lib/pychess/ic/__init__.py:192 msgid "T" msgstr "" #: lib/pychess/ic/__init__.py:192 msgid "U" msgstr "" #: lib/pychess/ic/__init__.py:192 msgid "CA" msgstr "" #: lib/pychess/ic/__init__.py:193 msgid "SR" msgstr "" #: lib/pychess/ic/__init__.py:193 msgid "TD" msgstr "" #: lib/pychess/ic/__init__.py:193 msgid "TM" msgstr "" #: lib/pychess/ic/__init__.py:194 msgid "GM" msgstr "" #: lib/pychess/ic/__init__.py:194 msgid "IM" msgstr "" #: lib/pychess/ic/__init__.py:194 msgid "FM" msgstr "" #: lib/pychess/ic/__init__.py:195 msgid "WGM" msgstr "" #: lib/pychess/ic/__init__.py:195 msgid "WIM" msgstr "" #: lib/pychess/ic/__init__.py:195 msgid "WFM" msgstr "" #: lib/pychess/ic/__init__.py:195 msgid "D" msgstr "" #: lib/pychess/ic/__init__.py:195 msgid "H" msgstr "" #: lib/pychess/ic/__init__.py:195 msgid "CM" msgstr "" #: lib/pychess/ic/__init__.py:195 msgid "FA" msgstr "" #: lib/pychess/ic/__init__.py:195 msgid "NM" msgstr "" #: lib/pychess/Players/CECPEngine.py:857 #, python-format msgid "The engine %s reports an error:" msgstr "" #: lib/pychess/Players/Human.py:20 msgid "Your opponent has offered you a draw." msgstr "" #: lib/pychess/Players/Human.py:21 msgid "" "Your opponent has offered you a draw. If you accept this offer, the game " "will end with a score of 1/2 - 1/2." msgstr "" #: lib/pychess/Players/Human.py:23 msgid "Your opponent wants to abort the game." msgstr "" #: lib/pychess/Players/Human.py:24 msgid "" "Your opponent has asked that the game be aborted. If you accept this offer, " "the game will end with no rating change." msgstr "" #: lib/pychess/Players/Human.py:26 msgid "Your opponent wants to adjourn the game." msgstr "" #: lib/pychess/Players/Human.py:27 msgid "" "Your opponent has asked that the game be adjourned. If you accept this " "offer, the game will be adjourned and you can resume it later (when your " "opponent is online and both players agree to resume)." msgstr "" #: lib/pychess/Players/Human.py:29 #, python-format msgid "Your opponent wants to undo %s move(s)." msgstr "" #: lib/pychess/Players/Human.py:30 #, python-format msgid "" "Your opponent has asked that the last %s move(s) be undone. If you accept " "this offer, the game will continue from the earlier position." msgstr "" #: lib/pychess/Players/Human.py:32 msgid "Your opponent wants to pause the game." msgstr "" #: lib/pychess/Players/Human.py:33 msgid "" "Your opponent has asked that the game be paused. If you accept this offer, " "the game clock will be paused until both players agree to resume the game." msgstr "" #: lib/pychess/Players/Human.py:35 msgid "Your opponent wants to resume the game." msgstr "" #: lib/pychess/Players/Human.py:36 msgid "" "Your opponent has asked that the game be resumed. If you accept this offer, " "the game clock will continue from where it was paused." msgstr "" #: lib/pychess/Players/Human.py:40 msgid "The resignation" msgstr "" #: lib/pychess/Players/Human.py:41 msgid "The flag call" msgstr "" #: lib/pychess/Players/Human.py:42 msgid "The draw offer" msgstr "" #: lib/pychess/Players/Human.py:43 msgid "The abort offer" msgstr "" #: lib/pychess/Players/Human.py:44 msgid "The adjourn offer" msgstr "" #: lib/pychess/Players/Human.py:45 msgid "The pause offer" msgstr "" #: lib/pychess/Players/Human.py:46 msgid "The resume offer" msgstr "" #: lib/pychess/Players/Human.py:47 msgid "The offer to switch sides" msgstr "" #: lib/pychess/Players/Human.py:48 msgid "The takeback offer" msgstr "" #: lib/pychess/Players/Human.py:52 msgid "resign" msgstr "" #: lib/pychess/Players/Human.py:53 msgid "call your opponents flag" msgstr "" #: lib/pychess/Players/Human.py:54 msgid "offer a draw" msgstr "" #: lib/pychess/Players/Human.py:55 msgid "offer an abort" msgstr "" #: lib/pychess/Players/Human.py:56 msgid "offer to adjourn" msgstr "" #: lib/pychess/Players/Human.py:57 msgid "offer a pause" msgstr "" #: lib/pychess/Players/Human.py:58 msgid "offer to resume" msgstr "" #: lib/pychess/Players/Human.py:59 msgid "offer to switch sides" msgstr "" #: lib/pychess/Players/Human.py:60 msgid "offer a takeback" msgstr "" #: lib/pychess/Players/Human.py:61 msgid "ask your opponent to move" msgstr "" #: lib/pychess/Players/Human.py:66 msgid "Your opponent is not out of time." msgstr "" #: lib/pychess/Players/Human.py:68 msgid "The clock hasn't been started yet." msgstr "" #: lib/pychess/Players/Human.py:70 msgid "You can't switch colors during the game." msgstr "" #: lib/pychess/Players/Human.py:72 msgid "You have tried to undo too many moves." msgstr "" #: lib/pychess/Players/Human.py:180 msgid "Your opponent asks you to hurry!" msgstr "" #: lib/pychess/Players/Human.py:181 msgid "" "Generally this means nothing, as the game is time-based, but if you want to " "please your opponent, perhaps you should get going." msgstr "" #: lib/pychess/Players/Human.py:259 #, python-format msgid "%s was declined by your opponent" msgstr "" #: lib/pychess/Players/Human.py:260 #, python-format msgid "Resend %s?" msgstr "" #: lib/pychess/Players/Human.py:267 msgid "Resend" msgstr "" #: lib/pychess/Players/Human.py:275 #, python-format msgid "%s was withdrawn by your opponent" msgstr "" #: lib/pychess/Players/Human.py:276 msgid "Your opponent seems to have changed their mind." msgstr "" #: lib/pychess/Players/Human.py:290 #, python-format msgid "Unable to accept %s" msgstr "" #: lib/pychess/Players/Human.py:291 msgid "Probably because it has been withdrawn." msgstr "" #: lib/pychess/Players/Human.py:298 #, python-format msgid "%s returns an error" msgstr "" #: lib/pychess/Savers/chessalpha2.py:12 msgid "Chess Alpha 2 Diagram" msgstr "" #: lib/pychess/Savers/chesspastebin.py:39 msgid "Game shared at " msgstr "" #: lib/pychess/Savers/chesspastebin.py:41 msgid "(Link is available on clipboard.)" msgstr "" #: lib/pychess/Savers/database.py:19 msgid "PyChess database" msgstr "" #: lib/pychess/Savers/epd.py:12 msgid "Chess Position" msgstr "" #: lib/pychess/Savers/fen.py:12 msgid "Simple Chess Position" msgstr "" #: lib/pychess/Savers/fen.py:44 lib/pychess/Savers/pgn.py:329 msgid "The game can't be loaded, because of an error parsing FEN" msgstr "" #: lib/pychess/Savers/pgnbase.py:100 #, python-format msgid "" "The game can't be read to end, because of an error parsing move %(moveno)s " "'%(notation)s'." msgstr "" #: lib/pychess/Savers/pgnbase.py:102 #, python-format msgid "The move failed because %s." msgstr "" #: lib/pychess/Savers/pgnbase.py:110 #, python-format msgid "Error parsing move %(moveno)s %(mstr)s" msgstr "" #: lib/pychess/Savers/pgn.py:28 msgid "Chess Game" msgstr "" #: lib/pychess/Savers/pgn.py:362 msgid "Invalid move." msgstr "" #: lib/pychess/Savers/png.py:15 msgid "Png image" msgstr "" #: lib/pychess/System/ping.py:31 msgid "Destination Host Unreachable" msgstr "" #: lib/pychess/System/ping.py:74 msgid "Died" msgstr "" #: lib/pychess/Utils/GameModel.py:147 msgid "Local Event" msgstr "" #: lib/pychess/Utils/GameModel.py:148 msgid "Local Site" msgstr "" #: lib/pychess/Utils/repr.py:12 msgid "Pawn" msgstr "" #: lib/pychess/Utils/repr.py:14 msgid "P" msgstr "" #: lib/pychess/Utils/repr.py:14 msgid "N" msgstr "" #: lib/pychess/Utils/repr.py:14 msgid "R" msgstr "" #: lib/pychess/Utils/repr.py:14 msgid "Q" msgstr "" #: lib/pychess/Utils/repr.py:14 msgid "K" msgstr "" #: lib/pychess/Utils/repr.py:17 msgid "The game ended in a draw" msgstr "" #: lib/pychess/Utils/repr.py:18 #, python-format msgid "%(white)s won the game" msgstr "" #: lib/pychess/Utils/repr.py:19 #, python-format msgid "%(black)s won the game" msgstr "" #: lib/pychess/Utils/repr.py:20 msgid "The game has been killed" msgstr "" #: lib/pychess/Utils/repr.py:21 msgid "The game has been adjourned" msgstr "" #: lib/pychess/Utils/repr.py:22 msgid "The game has been aborted" msgstr "" #: lib/pychess/Utils/repr.py:26 msgid "Because neither player has sufficient material to mate" msgstr "" #: lib/pychess/Utils/repr.py:27 msgid "Because the same position was repeated three times in a row" msgstr "" #: lib/pychess/Utils/repr.py:28 msgid "Because the last 50 moves brought nothing new" msgstr "" #: lib/pychess/Utils/repr.py:29 msgid "Because both players ran out of time" msgstr "" #: lib/pychess/Utils/repr.py:30 #, python-format msgid "Because %(mover)s stalemated" msgstr "" #: lib/pychess/Utils/repr.py:31 msgid "Because both players agreed to a draw" msgstr "" #: lib/pychess/Utils/repr.py:32 lib/pychess/Utils/repr.py:42 msgid "Because of adjudication by an admin" msgstr "" #: lib/pychess/Utils/repr.py:33 msgid "Because the game exceed the max length" msgstr "" #: lib/pychess/Utils/repr.py:34 #, python-format msgid "" "Because %(white)s ran out of time and %(black)s has insufficient material to" " mate" msgstr "" #: lib/pychess/Utils/repr.py:35 #, python-format msgid "" "Because %(black)s ran out of time and %(white)s has insufficient material to" " mate" msgstr "" #: lib/pychess/Utils/repr.py:36 msgid "Because both players have the same amount of pieces" msgstr "" #: lib/pychess/Utils/repr.py:38 #, python-format msgid "Because %(loser)s resigned" msgstr "" #: lib/pychess/Utils/repr.py:39 #, python-format msgid "Because %(loser)s ran out of time" msgstr "" #: lib/pychess/Utils/repr.py:40 #, python-format msgid "Because %(loser)s was checkmated" msgstr "" #: lib/pychess/Utils/repr.py:41 #, python-format msgid "Because %(loser)s disconnected" msgstr "" #: lib/pychess/Utils/repr.py:43 #, python-format msgid "Because %(winner)s has fewer pieces" msgstr "" #: lib/pychess/Utils/repr.py:44 #, python-format msgid "Because %(winner)s lost all pieces" msgstr "" #: lib/pychess/Utils/repr.py:45 #, python-format msgid "Because %(loser)s king exploded" msgstr "" #: lib/pychess/Utils/repr.py:46 #, python-format msgid "Because %(winner)s king reached the center" msgstr "" #: lib/pychess/Utils/repr.py:47 #, python-format msgid "Because %(winner)s was giving check 3 times" msgstr "" #: lib/pychess/Utils/repr.py:49 msgid "Because a player lost connection" msgstr "" #: lib/pychess/Utils/repr.py:50 msgid "Because both players agreed to an adjournment" msgstr "" #: lib/pychess/Utils/repr.py:51 msgid "Because the server was shut down" msgstr "" #: lib/pychess/Utils/repr.py:52 msgid "" "Because a player lost connection and the other player requested adjournment" msgstr "" #: lib/pychess/Utils/repr.py:53 #, python-format msgid "" "Because %(black)s lost connection to the server and %(white)s requested " "adjournment" msgstr "" #: lib/pychess/Utils/repr.py:54 #, python-format msgid "" "Because %(white)s lost connection to the server and %(black)s requested " "adjournment" msgstr "" #: lib/pychess/Utils/repr.py:55 #, python-format msgid "Because %(white)s lost connection to the server" msgstr "" #: lib/pychess/Utils/repr.py:56 #, python-format msgid "Because %(black)s lost connection to the server" msgstr "" #: lib/pychess/Utils/repr.py:58 msgid "Because of adjudication by an admin. No rating changes have occurred." msgstr "" #: lib/pychess/Utils/repr.py:59 msgid "" "Because both players agreed to abort the game. No rating changes have " "occurred." msgstr "" #: lib/pychess/Utils/repr.py:60 msgid "Because of courtesy by a player. No rating changes have occurred." msgstr "" #: lib/pychess/Utils/repr.py:61 msgid "" "Because a player aborted the game. Either player can abort the game without " "the other's consent before the second move. No rating changes have occurred." msgstr "" #: lib/pychess/Utils/repr.py:62 msgid "" "Because a player disconnected and there are too few moves to warrant " "adjournment. No rating changes have occurred." msgstr "" #: lib/pychess/Utils/repr.py:63 msgid "Because the server was shut down. No rating changes have occurred." msgstr "" #: lib/pychess/Utils/repr.py:65 #, python-format msgid "Because the %(white)s engine died" msgstr "" #: lib/pychess/Utils/repr.py:66 #, python-format msgid "Because the %(black)s engine died" msgstr "" #: lib/pychess/Utils/repr.py:67 msgid "Because the connection to the server was lost" msgstr "" #: lib/pychess/Utils/repr.py:68 msgid "The reason is unknown" msgstr "" #: lib/pychess/Utils/TimeModel.py:229 msgid "min" msgstr "" #: lib/pychess/Utils/TimeModel.py:231 msgid "sec" msgstr "" #: lib/pychess/Variants/asean.py:12 msgid "" "ASEAN: http://www.ncf-" "phil.org/downloadables/2014/May/Asean_chess/Laws_of_ASEAN_Chess_2011_Nov_26.doc" msgstr "" #: lib/pychess/Variants/asean.py:13 msgid "ASEAN" msgstr "" #: lib/pychess/Variants/asean.py:33 msgid "Makruk: http://en.wikipedia.org/wiki/Makruk" msgstr "" #: lib/pychess/Variants/asean.py:34 msgid "Makruk" msgstr "" #: lib/pychess/Variants/asean.py:60 msgid "Cambodian: http://www.khmerinstitute.org/culture/ok.html" msgstr "" #: lib/pychess/Variants/asean.py:61 msgid "Cambodian" msgstr "" #: lib/pychess/Variants/asean.py:86 msgid "" "Ai-Wok: http://www.open-" "aurec.com/wbforum/viewtopic.php?p=199364&sid=20963a1de2c164050de019e5ed6bf7c4#p199364" msgstr "" #: lib/pychess/Variants/asean.py:87 msgid "Ai-Wok" msgstr "" #: lib/pychess/Variants/asean.py:111 msgid "Sittuyin: http://en.wikipedia.org/wiki/Sittuyin" msgstr "" #: lib/pychess/Variants/asean.py:112 msgid "Sittuyin" msgstr "" #: lib/pychess/Variants/asymmetricrandom.py:12 msgid "" "FICS wild/4: http://www.freechess.org/Help/HelpFiles/wild.html\n" "* Randomly chosen pieces (two queens or three rooks possible)\n" "* Exactly one king of each color\n" "* Pieces placed randomly behind the pawns, SUBJECT TO THE CONSTRAINT THAT THE BISHOPS ARE BALANCED\n" "* No castling\n" "* Black's arrangement DOES NOT mirrors white's" msgstr "" #: lib/pychess/Variants/asymmetricrandom.py:18 msgid "Asymmetric Random" msgstr "" #: lib/pychess/Variants/atomic.py:14 msgid "FICS atomic: http://www.freechess.org/Help/HelpFiles/atomic.html" msgstr "" #: lib/pychess/Variants/blindfold.py:7 msgid "" "Classic chess rules with hidden figurines\n" "http://en.wikipedia.org/wiki/Blindfold_chess" msgstr "" #: lib/pychess/Variants/blindfold.py:9 #: lib/pychess/widgets/newGameDialog.py:264 msgid "Blindfold" msgstr "" #: lib/pychess/Variants/blindfold.py:18 msgid "" "Classic chess rules with hidden pawns\n" "http://en.wikipedia.org/wiki/Blindfold_chess" msgstr "" #: lib/pychess/Variants/blindfold.py:20 msgid "Hidden pawns" msgstr "" #: lib/pychess/Variants/blindfold.py:29 msgid "" "Classic chess rules with hidden pieces\n" "http://en.wikipedia.org/wiki/Blindfold_chess" msgstr "" #: lib/pychess/Variants/blindfold.py:31 msgid "Hidden pieces" msgstr "" #: lib/pychess/Variants/blindfold.py:40 msgid "" "Classic chess rules with all pieces white\n" "http://en.wikipedia.org/wiki/Blindfold_chess" msgstr "" #: lib/pychess/Variants/blindfold.py:42 msgid "All white" msgstr "" #: lib/pychess/Variants/bughouse.py:8 msgid "FICS bughouse: http://www.freechess.org/Help/HelpFiles/bughouse.html" msgstr "" #: lib/pychess/Variants/corner.py:12 msgid "" "http://brainking.com/en/GameRules?tp=2\n" "* Placement of the pieces on the 1st and 8th row are randomized\n" "* The king is in the right hand corner\n" "* Bishops must start on opposite color squares\n" "* Black's starting position is obtained by rotating white's position 180 degrees around the board's center\n" "* No castling" msgstr "" #: lib/pychess/Variants/corner.py:18 msgid "Corner" msgstr "" #: lib/pychess/Variants/crazyhouse.py:8 msgid "" "FICS crazyhouse: http://www.freechess.org/Help/HelpFiles/crazyhouse.html" msgstr "" #: lib/pychess/Variants/euroshogi.py:9 msgid "EuroShogi: http://en.wikipedia.org/wiki/EuroShogi" msgstr "" #: lib/pychess/Variants/euroshogi.py:10 msgid "EuroShogi" msgstr "" #: lib/pychess/Variants/fischerandom.py:18 msgid "" "http://en.wikipedia.org/wiki/Chess960\n" "FICS wild/fr: http://www.freechess.org/Help/HelpFiles/wild.html" msgstr "" #: lib/pychess/Variants/fischerandom.py:20 msgid "Fischer Random" msgstr "" #: lib/pychess/Variants/kingofthehill.py:8 msgid "" "Bringing your king legally to the center (e4, d4, e5, d5) instantly wins the game!\n" "Normal rules apply in other cases and checkmate also ends the game." msgstr "" #: lib/pychess/Variants/kingofthehill.py:10 msgid "King of the hill" msgstr "" #: lib/pychess/Variants/knightodds.py:8 msgid "One player starts with one less knight piece" msgstr "" #: lib/pychess/Variants/knightodds.py:9 msgid "Knight odds" msgstr "" #: lib/pychess/Variants/losers.py:8 msgid "FICS losers: http://www.freechess.org/Help/HelpFiles/losers_chess.html" msgstr "" #: lib/pychess/Variants/normal.py:4 msgid "" "Classic chess rules\n" "http://en.wikipedia.org/wiki/Chess" msgstr "" #: lib/pychess/Variants/normal.py:6 lib/pychess/widgets/newGameDialog.py:157 msgid "Normal" msgstr "" #: lib/pychess/Variants/pawnodds.py:8 msgid "One player starts with one less pawn piece" msgstr "" #: lib/pychess/Variants/pawnodds.py:9 msgid "Pawn odds" msgstr "" #: lib/pychess/Variants/pawnspassed.py:11 msgid "" "FICS wild/8a: http://www.freechess.org/Help/HelpFiles/wild.html\n" "White pawns start on 5th rank and black pawns on the 4th rank" msgstr "" #: lib/pychess/Variants/pawnspassed.py:13 msgid "Pawns Passed" msgstr "" #: lib/pychess/Variants/pawnspushed.py:10 msgid "" "FICS wild/8: http://www.freechess.org/Help/HelpFiles/wild.html\n" "Pawns start on 4th and 5th ranks rather than 2nd and 7th" msgstr "" #: lib/pychess/Variants/pawnspushed.py:12 msgid "Pawns Pushed" msgstr "" #: lib/pychess/Variants/queenodds.py:8 msgid "One player starts with one less queen piece" msgstr "" #: lib/pychess/Variants/queenodds.py:9 msgid "Queen odds" msgstr "" #: lib/pychess/Variants/randomchess.py:11 msgid "" "FICS wild/3: http://www.freechess.org/Help/HelpFiles/wild.html\n" "* Randomly chosen pieces (two queens or three rooks possible)\n" "* Exactly one king of each color\n" "* Pieces placed randomly behind the pawns\n" "* No castling\n" "* Black's arrangement mirrors white's" msgstr "" #: lib/pychess/Variants/randomchess.py:17 #: lib/pychess/widgets/TaskerManager.py:155 msgid "Random" msgstr "" #: lib/pychess/Variants/rookodds.py:8 msgid "One player starts with one less rook piece" msgstr "" #: lib/pychess/Variants/rookodds.py:9 msgid "Rook odds" msgstr "" #: lib/pychess/Variants/shuffle.py:11 msgid "" "xboard nocastle: http://home.hccnet.nl/h.g.muller/engine-intf.html#8\n" "FICS wild/2: http://www.freechess.org/Help/HelpFiles/wild.html\n" "* Random arrangement of the pieces behind the pawns\n" "* No castling\n" "* Black's arrangement mirrors white's" msgstr "" #: lib/pychess/Variants/suicide.py:11 msgid "" "FICS suicide: http://www.freechess.org/Help/HelpFiles/suicide_chess.html" msgstr "" #: lib/pychess/Variants/theban.py:10 msgid "" "Variant developed by Kai Laskos: " "http://talkchess.com/forum/viewtopic.php?t=40990" msgstr "" #: lib/pychess/Variants/theban.py:11 msgid "Theban" msgstr "" #: lib/pychess/Variants/threecheck.py:10 msgid "Win by giving check 3 times" msgstr "" #: lib/pychess/Variants/threecheck.py:11 msgid "Three-check" msgstr "" #: lib/pychess/Variants/upsidedown.py:10 msgid "" "FICS wild/5: http://www.freechess.org/Help/HelpFiles/wild.html\n" "http://en.wikipedia.org/wiki/Chess_variant#Chess_with_different_starting_positions\n" "Pawns start on their 7th rank rather than their 2nd rank!" msgstr "" #: lib/pychess/Variants/upsidedown.py:13 msgid "Upside Down" msgstr "" #: lib/pychess/Variants/wildcastle.py:10 msgid "" "xboard wildcastle http://home.hccnet.nl/h.g.muller/engine-intf.html#8\n" "FICS wild/0: http://www.freechess.org/Help/HelpFiles/wild.html\n" "* White has the typical set-up at the start.\n" "* Black's pieces are the same, except that the King and Queen are reversed,\n" "* so they are not on the same files as White's King and Queen.\n" "* Castling is done similarly to normal chess:\n" "* o-o-o indicates long castling and o-o short castling." msgstr "" #: lib/pychess/Variants/wildcastle.py:17 msgid "Wildcastle" msgstr "" #: lib/pychess/Variants/wildcastleshuffle.py:11 msgid "" "xboard wildcastle http://home.hccnet.nl/h.g.muller/engine-intf.html#8\n" "FICS wild/1: http://www.freechess.org/Help/HelpFiles/wild.html\n" "* In this variant both sides have the same set of pieces as in normal chess.\n" "* The white king starts on d1 or e1 and the black king starts on d8 or e8,\n" "* and the rooks are in their usual positions.\n" "* Bishops are always on opposite colors.\n" "* Subject to these constraints the position of the pieces on their first ranks is random.\n" "* Castling is done similarly to normal chess:\n" "* o-o-o indicates long castling and o-o short castling." msgstr "" #: lib/pychess/Variants/wildcastleshuffle.py:20 msgid "Wildcastle shuffle" msgstr "" #: lib/pychess/widgets/analyzegameDialog.py:85 msgid "Game analyzing in progress..." msgstr "" #: lib/pychess/widgets/analyzegameDialog.py:86 msgid "Do you want to abort it?" msgstr "" #: lib/pychess/widgets/analyzegameDialog.py:95 #: lib/pychess/widgets/gamewidget.py:202 lib/pychess/widgets/gamewidget.py:320 msgid "Abort" msgstr "" #: lib/pychess/widgets/ChatView.py:125 msgid "Observers" msgstr "" #: lib/pychess/widgets/ChatWindow.py:222 msgid "You have opened no conversations yet" msgstr "" #: lib/pychess/widgets/ChatWindow.py:254 msgid "Only registered users may talk to this channel" msgstr "" #: lib/pychess/widgets/ChatWindow.py:312 msgid "No conversation's selected" msgstr "" #: lib/pychess/widgets/ChatWindow.py:350 msgid "Loading player data" msgstr "" #: lib/pychess/widgets/ChatWindow.py:400 msgid "Receiving list of players" msgstr "" #: lib/pychess/widgets/ChatWindow.py:518 msgid "Friends" msgstr "" #: lib/pychess/widgets/ChatWindow.py:529 msgid "Admin" msgstr "" #: lib/pychess/widgets/ChatWindow.py:540 msgid "More channels" msgstr "" #: lib/pychess/widgets/ChatWindow.py:548 msgid "More players" msgstr "" #: lib/pychess/widgets/ChatWindow.py:558 msgid "Computers" msgstr "" #: lib/pychess/widgets/ChatWindow.py:568 msgid "BlindFold" msgstr "" #: lib/pychess/widgets/ChatWindow.py:578 msgid "Guests" msgstr "" #: lib/pychess/widgets/ChatWindow.py:805 msgid "Conversations" msgstr "" #: lib/pychess/widgets/ChatWindow.py:807 msgid "Conversation info" msgstr "" #: lib/pychess/widgets/enginesDialog.py:152 msgid "Select engine" msgstr "" #: lib/pychess/widgets/enginesDialog.py:156 msgid "Executable files" msgstr "" #: lib/pychess/widgets/enginesDialog.py:176 #: lib/pychess/widgets/enginesDialog.py:210 #: lib/pychess/widgets/enginesDialog.py:235 #, python-format msgid "Unable to add %s" msgstr "" #: lib/pychess/widgets/enginesDialog.py:177 msgid "wine not installed" msgstr "" #: lib/pychess/widgets/enginesDialog.py:211 #: lib/pychess/widgets/enginesDialog.py:236 msgid "There is something wrong with this executable" msgstr "" #: lib/pychess/widgets/enginesDialog.py:266 msgid "Select working directory" msgstr "" #: lib/pychess/widgets/gamenanny.py:115 #, python-format msgid " invalid engine move: %s" msgstr "" #: lib/pychess/widgets/gamenanny.py:134 msgid "Offer Rematch" msgstr "" #: lib/pychess/widgets/gamenanny.py:136 lib/pychess/widgets/gamenanny.py:147 #, python-format msgid "Observe %s" msgstr "" #: lib/pychess/widgets/gamenanny.py:168 msgid "Play Rematch" msgstr "" #: lib/pychess/widgets/gamenanny.py:171 msgid "Undo one move" msgstr "" #: lib/pychess/widgets/gamenanny.py:173 msgid "Undo two moves" msgstr "" #: lib/pychess/widgets/gamenanny.py:203 msgid "The game is paused" msgstr "" #: lib/pychess/widgets/gamenanny.py:221 lib/pychess/widgets/gamenanny.py:222 msgid "Loaded game" msgstr "" #: lib/pychess/widgets/gamenanny.py:228 msgid "Saved game" msgstr "" #: lib/pychess/widgets/gamenanny.py:232 msgid "Analyzer started" msgstr "" #: lib/pychess/widgets/gamenanny.py:281 msgid "You sent an abort offer" msgstr "" #: lib/pychess/widgets/gamenanny.py:283 msgid "You sent an adjournment offer" msgstr "" #: lib/pychess/widgets/gamenanny.py:285 msgid "You sent a draw offer" msgstr "" #: lib/pychess/widgets/gamenanny.py:287 msgid "You sent a pause offer" msgstr "" #: lib/pychess/widgets/gamenanny.py:289 msgid "You sent a resume offer" msgstr "" #: lib/pychess/widgets/gamenanny.py:291 msgid "You sent an undo offer" msgstr "" #: lib/pychess/widgets/gamenanny.py:293 msgid "You asked your opponent to move" msgstr "" #: lib/pychess/widgets/gamenanny.py:305 #, python-format msgid "Engine, %s, has died" msgstr "" #: lib/pychess/widgets/gamenanny.py:306 msgid "" "PyChess has lost connection to the engine, probably because it has died.\n" "\n" "You can try to start a new game with the engine, or try to play against another one." msgstr "" #: lib/pychess/widgets/gamewidget.py:204 msgid "" "This game can be automatically aborted without rating loss because there has" " not yet been two moves made" msgstr "" #: lib/pychess/widgets/gamewidget.py:206 msgid "Offer Abort" msgstr "" #: lib/pychess/widgets/gamewidget.py:208 msgid "" "Your opponent must agree to abort the game because there has been two or " "more moves made" msgstr "" #: lib/pychess/widgets/gamewidget.py:226 msgid "This game can not be adjourned because one or both players are guests" msgstr "" #: lib/pychess/widgets/gamewidget.py:243 msgid "Claim Draw" msgstr "" #: lib/pychess/widgets/gamewidget.py:325 msgid "Pause" msgstr "" #: lib/pychess/widgets/gamewidget.py:326 msgid "Resume" msgstr "" #: lib/pychess/widgets/gamewidget.py:328 msgid "Offer Pause" msgstr "" #: lib/pychess/widgets/gamewidget.py:329 msgid "Offer Resume" msgstr "" #: lib/pychess/widgets/gamewidget.py:333 msgid "Undo" msgstr "" #: lib/pychess/widgets/gamewidget.py:335 msgid "Offer Undo" msgstr "" #: lib/pychess/widgets/gamewidget.py:550 msgid " has lagged for 30 seconds" msgstr "" #: lib/pychess/widgets/gamewidget.py:566 msgid " is lagging heavily but hasn't disconnected" msgstr "" #: lib/pychess/widgets/gamewidget.py:567 msgid "Continue to wait for opponent, or try to adjourn the game?" msgstr "" #: lib/pychess/widgets/gamewidget.py:575 msgid "Wait" msgstr "" #: lib/pychess/widgets/gamewidget.py:576 msgid "Adjourn" msgstr "" #: lib/pychess/widgets/gamewidget.py:648 msgid "Jump to initial position" msgstr "" #: lib/pychess/widgets/gamewidget.py:653 msgid "Step back one move" msgstr "" #: lib/pychess/widgets/gamewidget.py:658 msgid "Go back to the main line" msgstr "" #: lib/pychess/widgets/gamewidget.py:664 msgid "Step forward one move" msgstr "" #: lib/pychess/widgets/gamewidget.py:669 msgid "Jump to latest position" msgstr "" #: lib/pychess/widgets/gamewidget.py:903 msgid "PyChess was unable to load your panel settings" msgstr "" #: lib/pychess/widgets/gamewidget.py:904 msgid "" "Your panel settings have been reset. If this problem repeats, you should " "report it to the developers" msgstr "" #: lib/pychess/widgets/ionest.py:67 lib/pychess/widgets/newGameDialog.py:389 #: lib/pychess/widgets/TaskerManager.py:210 msgid "You" msgstr "" #: lib/pychess/widgets/ionest.py:70 lib/pychess/widgets/newGameDialog.py:390 #: lib/pychess/widgets/preferencesDialog.py:61 #: lib/pychess/widgets/TaskerManager.py:213 msgid "Guest" msgstr "" #: lib/pychess/widgets/ionest.py:93 msgid "Error loading game" msgstr "" #: lib/pychess/widgets/ionest.py:127 lib/pychess/widgets/newGameDialog.py:480 msgid "Open Game" msgstr "" #: lib/pychess/widgets/ionest.py:137 msgid "All Files" msgstr "" #: lib/pychess/widgets/ionest.py:140 msgid "Detect type automatically" msgstr "" #: lib/pychess/widgets/ionest.py:146 msgid "All Chess Files" msgstr "" #: lib/pychess/widgets/ionest.py:228 msgid "Save Game" msgstr "" #: lib/pychess/widgets/ionest.py:228 msgid "Export position" msgstr "" #: lib/pychess/widgets/ionest.py:232 lib/pychess/widgets/ionest.py:360 msgid "vs." msgstr "" #: lib/pychess/widgets/ionest.py:249 #, python-format msgid "Unknown file type '%s'" msgstr "" #: lib/pychess/widgets/ionest.py:250 #, python-format msgid "" "Was unable to save '%(uri)s' as PyChess doesn't know the format " "'%(ending)s'." msgstr "" #: lib/pychess/widgets/ionest.py:266 #, python-format msgid "Unable to save file '%s'" msgstr "" #: lib/pychess/widgets/ionest.py:268 msgid "" "You don't have the necessary rights to save the file.\n" "Please ensure that you have given the right path and try again." msgstr "" #: lib/pychess/widgets/ionest.py:276 msgid "_Replace" msgstr "" #: lib/pychess/widgets/ionest.py:280 msgid "File exists" msgstr "" #: lib/pychess/widgets/ionest.py:282 #, python-format msgid "" "A file named '%s' already exists. Would you like to replace " "it?" msgstr "" #: lib/pychess/widgets/ionest.py:283 #, python-format msgid "" "The file already exists in '%s'. If you replace it, its content will be " "overwritten." msgstr "" #: lib/pychess/widgets/ionest.py:299 msgid "Could not save the file" msgstr "" #: lib/pychess/widgets/ionest.py:300 msgid "PyChess was not able to save the game" msgstr "" #: lib/pychess/widgets/ionest.py:301 #, python-format msgid "The error was: %s" msgstr "" #: lib/pychess/widgets/ionest.py:325 #, python-format msgid "There is %d game with unsaved moves." msgid_plural "There are %d games with unsaved moves." msgstr[0] "" msgstr[1] "" #: lib/pychess/widgets/ionest.py:328 msgid "Save moves before closing?" msgstr "" #: lib/pychess/widgets/ionest.py:339 msgid "Unable to save to configured file. Save the games before closing?" msgstr "" #: lib/pychess/widgets/ionest.py:366 #, python-format msgid "_Save %d document" msgid_plural "_Save %d documents" msgstr[0] "" msgstr[1] "" #: lib/pychess/widgets/ionest.py:412 msgid "Save the current game before you close it?" msgstr "" #: lib/pychess/widgets/ionest.py:420 msgid "" "Unable to save to configured file. Save the current game before you close " "it?" msgstr "" #: lib/pychess/widgets/ionest.py:434 msgid "" "It is not possible later to continue the game,\n" "if you don't save it." msgstr "" #: lib/pychess/widgets/LogDialog.py:26 msgid "PyChess Information Window" msgstr "" #: lib/pychess/widgets/LogDialog.py:184 lib/pychess/widgets/LogDialog.py:188 msgid "of" msgstr "" #: lib/pychess/widgets/newGameDialog.py:84 #: lib/pychess/widgets/newGameDialog.py:85 msgid "Human Being" msgstr "" #: lib/pychess/widgets/newGameDialog.py:155 msgid "Rapid" msgstr "" #: lib/pychess/widgets/newGameDialog.py:224 msgid "Minutes:" msgstr "Xulek:" #: lib/pychess/widgets/newGameDialog.py:228 msgid "Gain:" msgstr "Têk bir" #: lib/pychess/widgets/newGameDialog.py:241 #, python-format msgid "%(name)s %(minutes)d min + %(gain)d sec/move" msgstr "" #: lib/pychess/widgets/newGameDialog.py:244 #, python-format msgid "%(name)s %(minutes)d min %(gain)d sec/move" msgstr "" #: lib/pychess/widgets/newGameDialog.py:247 #, python-format msgid "%(name)s %(minutes)d min" msgstr "" #: lib/pychess/widgets/newGameDialog.py:265 msgid "Odds" msgstr "" #: lib/pychess/widgets/newGameDialog.py:269 msgid "Asian variants" msgstr "" #: lib/pychess/widgets/newGameDialog.py:301 msgid " chess" msgstr "" #: lib/pychess/widgets/newGameDialog.py:682 msgid "Type or paste PGN game or FEN positions here" msgstr "" #: lib/pychess/widgets/newGameDialog.py:725 msgid "Enter Game" msgstr "" #: lib/pychess/widgets/preferencesDialog.py:123 msgid "Select book file" msgstr "" #: lib/pychess/widgets/preferencesDialog.py:128 msgid "Opening books" msgstr "" #: lib/pychess/widgets/preferencesDialog.py:156 msgid "Select Gaviota TB path" msgstr "" #: lib/pychess/widgets/preferencesDialog.py:331 msgid "Open Sound File" msgstr "" #: lib/pychess/widgets/preferencesDialog.py:341 msgid "Sound files" msgstr "" #: lib/pychess/widgets/preferencesDialog.py:485 msgid "Undescribed panel" msgstr "" #: lib/pychess/widgets/preferencesDialog.py:678 msgid "Select auto save path" msgstr "" #: lib/pychess/widgets/tipOfTheDay.py:51 msgid "" "You can start a new game by Game > New Game, in New Game " "window do you can choose Players, Time Control and Chess " "Variants." msgstr "" #: lib/pychess/widgets/tipOfTheDay.py:52 msgid "" "You can choose from 20 different difficulties to play against the computer." msgstr "" #: lib/pychess/widgets/tipOfTheDay.py:53 msgid "" "Chess Variants are like the pieces of the last line will be placed on the " "board." msgstr "" #: lib/pychess/widgets/tipOfTheDay.py:54 msgid "" "To save a game Game > Save Game As, give the filename and " "choose where you want to be saved. At the bottom choose extension type of " "the file, and Save." msgstr "" #: lib/pychess/widgets/tipOfTheDay.py:55 msgid "" "Do you know that you can call flag when the clock is with you, " "Actions > Call Flag." msgstr "" #: lib/pychess/widgets/tipOfTheDay.py:56 msgid "Pressing Ctrl+Z to offer opponent the possible rollback moves." msgstr "" #: lib/pychess/widgets/tipOfTheDay.py:57 msgid "" "To play on Fullscreen mode, just type F11. Coming back, F11 " "again." msgstr "" #: lib/pychess/widgets/tipOfTheDay.py:58 msgid "Hint mode analyzing your game, enable this type Ctrl+H." msgstr "" #: lib/pychess/widgets/tipOfTheDay.py:59 msgid "" "Spy mode analyzing the oponnent game, enable this type Ctrl+Y." msgstr "" #: lib/pychess/widgets/tipOfTheDay.py:60 msgid "" "You can play chess listening to the sounds of the game, for that, " "Settings > Preferences > Sound tab, enable Use " "sounds in PyChess and choose your preferred sounds." msgstr "" #: lib/pychess/widgets/tipOfTheDay.py:61 msgid "" "Do you know that you can help translate Pychess in your language, " "Help > Translate Pychess." msgstr "" #: lib/pychess/widgets/tipOfTheDay.py:62 msgid "" "Do you know that it is possible to finish a chess game in just 2 turns?" msgstr "" #: lib/pychess/widgets/tipOfTheDay.py:63 msgid "" "Do you know that the number of possible chess games exceeds the number of " "atoms in the Universe?" msgstr "" #: lib/pychess/ic/managers/ChatManager.py:184 msgid "Shout" msgstr "" #: lib/pychess/ic/managers/ChatManager.py:185 msgid "Chess Shout" msgstr "" #: lib/pychess/ic/managers/ChatManager.py:195 #, python-format msgid "Unofficial channel %d" msgstr "" #: lib/pychess/Utils/lutils/LBoard.py:152 #, python-format msgid "" "FEN needs 6 data fields. \n" "\n" "%s" msgstr "" #: lib/pychess/Utils/lutils/LBoard.py:154 #, python-format msgid "" "FEN needs at least 2 data fields in fenstr. \n" "\n" "%s" msgstr "" #: lib/pychess/Utils/lutils/LBoard.py:175 #, python-format msgid "" "Needs 7 slashes in piece placement field. \n" "\n" "%s" msgstr "" #: lib/pychess/Utils/lutils/LBoard.py:178 #, python-format msgid "" "Active color field must be one of w or b. \n" "\n" "%s" msgstr "" #: lib/pychess/Utils/lutils/LBoard.py:189 #, python-format msgid "" "Castling availability field is not legal. \n" "\n" "%s" msgstr "" #: lib/pychess/Utils/lutils/LBoard.py:192 #, python-format msgid "" "En passant cord is not legal. \n" "\n" "%s" msgstr "" #: lib/pychess/Utils/lutils/lmove.py:260 msgid "invalid promoted piece" msgstr "" #: lib/pychess/Utils/lutils/lmove.py:272 msgid "the move needs a piece and a cord" msgstr "" #: lib/pychess/Utils/lutils/lmove.py:306 lib/pychess/Utils/lutils/lmove.py:556 msgid "promotion move without promoted piece is incorrect" msgstr "" #: lib/pychess/Utils/lutils/lmove.py:312 #, python-format msgid "the captured cord (%s) is incorrect" msgstr "" #: lib/pychess/Utils/lutils/lmove.py:323 #, python-format msgid "the end cord (%s) is incorrect" msgstr "" #: lib/pychess/Utils/lutils/strateval.py:24 sidepanel/commentPanel.py:191 #: sidepanel/commentPanel.py:208 msgid "and" msgstr "" #: lib/pychess/Utils/lutils/strateval.py:43 msgid "draws" msgstr "" #: lib/pychess/Utils/lutils/strateval.py:45 msgid "mates" msgstr "" #: lib/pychess/Utils/lutils/strateval.py:49 msgid "puts opponent in check" msgstr "" #: lib/pychess/Utils/lutils/strateval.py:73 msgid "improves king safety" msgstr "" #: lib/pychess/Utils/lutils/strateval.py:75 msgid "slightly improves king safety" msgstr "" #: lib/pychess/Utils/lutils/strateval.py:108 msgid "moves a rook to an open file" msgstr "" #: lib/pychess/Utils/lutils/strateval.py:109 msgid "moves an rook to a half-open file" msgstr "" #: lib/pychess/Utils/lutils/strateval.py:119 #: lib/pychess/Utils/lutils/strateval.py:121 #: lib/pychess/Utils/lutils/strateval.py:124 #: lib/pychess/Utils/lutils/strateval.py:126 #, python-format msgid "moves bishop into fianchetto: %s" msgstr "" #: lib/pychess/Utils/lutils/strateval.py:132 #, python-format msgid "promotes a Pawn to a %s" msgstr "" #: lib/pychess/Utils/lutils/strateval.py:135 msgid "castles" msgstr "" #: lib/pychess/Utils/lutils/strateval.py:158 msgid "takes back material" msgstr "" #: lib/pychess/Utils/lutils/strateval.py:162 #: lib/pychess/Utils/lutils/strateval.py:170 msgid "sacrifies material" msgstr "" #: lib/pychess/Utils/lutils/strateval.py:164 msgid "exchanges material" msgstr "" #: lib/pychess/Utils/lutils/strateval.py:166 msgid "captures material" msgstr "" #: lib/pychess/Utils/lutils/strateval.py:291 #, python-format msgid "rescues a %s" msgstr "" #: lib/pychess/Utils/lutils/strateval.py:294 #, python-format msgid "threatens to win material by %s" msgstr "" #: lib/pychess/Utils/lutils/strateval.py:296 #, python-format msgid "increases the pressure on %s" msgstr "" #: lib/pychess/Utils/lutils/strateval.py:298 #, python-format msgid "defends %s" msgstr "" #: lib/pychess/Utils/lutils/strateval.py:336 #, python-format msgid "pins an enemy %(oppiece)s on the %(piece)s at %(cord)s" msgstr "" #: lib/pychess/Utils/lutils/strateval.py:369 #, python-format msgid "White has a new piece in outpost: %s" msgstr "" #: lib/pychess/Utils/lutils/strateval.py:377 #, python-format msgid "Black has a new piece in outpost: %s" msgstr "" #: lib/pychess/Utils/lutils/strateval.py:416 #, python-format msgid "%(color)s has a new passed pawn on %(cord)s" msgstr "" #: lib/pychess/Utils/lutils/strateval.py:470 msgid "half-open" msgstr "" #: lib/pychess/Utils/lutils/strateval.py:472 #, python-format msgid "in the %(x)s%(y)s file" msgstr "" #: lib/pychess/Utils/lutils/strateval.py:474 #, python-format msgid "in the %(x)s%(y)s files" msgstr "" #: lib/pychess/Utils/lutils/strateval.py:477 #, python-format msgid "%(color)s got a double pawn %(place)s" msgstr "" #: lib/pychess/Utils/lutils/strateval.py:478 #, python-format msgid "%(color)s got new double pawns %(place)s" msgstr "" #: lib/pychess/Utils/lutils/strateval.py:485 #, python-format msgid "%(color)s got an isolated pawn in the %(x)s file" msgid_plural "%(color)s got isolated pawns in the %(x)s files" msgstr[0] "" msgstr[1] "" #: lib/pychess/Utils/lutils/strateval.py:492 #, python-format msgid "%s moves pawns into stonewall formation" msgstr "" #: lib/pychess/Utils/lutils/strateval.py:507 #: lib/pychess/Utils/lutils/strateval.py:514 #, python-format msgid "%s can no longer castle" msgstr "" #: lib/pychess/Utils/lutils/strateval.py:508 #: lib/pychess/Utils/lutils/strateval.py:515 #, python-format msgid "%s can no longer castle in queenside" msgstr "" #: lib/pychess/Utils/lutils/strateval.py:510 #: lib/pychess/Utils/lutils/strateval.py:517 #, python-format msgid "%s can no longer castle in kingside" msgstr "" #: lib/pychess/Utils/lutils/strateval.py:551 #, python-format msgid "%(opcolor)s has a new trapped bishop on %(cord)s" msgstr "" #: lib/pychess/Utils/lutils/strateval.py:573 #, python-format msgid "develops a pawn: %s" msgstr "" #: lib/pychess/Utils/lutils/strateval.py:574 #, python-format msgid "brings a pawn closer to the backrow: %s" msgstr "" #: lib/pychess/Utils/lutils/strateval.py:591 #, python-format msgid "brings a %(piece)s closer to enemy king: %(cord)s" msgstr "" #: lib/pychess/Utils/lutils/strateval.py:594 #, python-format msgid "develops a %(piece)s: %(cord)s" msgstr "" #: lib/pychess/Utils/lutils/strateval.py:612 #, python-format msgid "places a %(piece)s more active: %(cord)s" msgstr "" #: lib/pychess/Utils/lutils/strateval.py:638 msgid "White should do pawn storm in right" msgstr "" #: lib/pychess/Utils/lutils/strateval.py:640 msgid "Black should do pawn storm in left" msgstr "" #: lib/pychess/Utils/lutils/strateval.py:643 msgid "White should do pawn storm in left" msgstr "" #: lib/pychess/Utils/lutils/strateval.py:645 msgid "Black should do pawn storm in right" msgstr "" #: lib/pychess/Utils/lutils/strateval.py:671 msgid "Black has a rather cramped position" msgstr "" #: lib/pychess/Utils/lutils/strateval.py:673 msgid "Black has a slightly cramped position" msgstr "" #: lib/pychess/Utils/lutils/strateval.py:675 msgid "White has a rather cramped position" msgstr "" #: lib/pychess/Utils/lutils/strateval.py:677 msgid "White has a slightly cramped position" msgstr "" #: sidepanel/annotationPanel.py:26 msgid "Annotation" msgstr "" #: sidepanel/annotationPanel.py:29 msgid "Annotated game" msgstr "" #: sidepanel/annotationPanel.py:236 msgid "Copy PGN" msgstr "" #: sidepanel/annotationPanel.py:249 msgid "Add start comment" msgstr "" #: sidepanel/annotationPanel.py:254 msgid "Add comment" msgstr "" #: sidepanel/annotationPanel.py:258 sidepanel/annotationPanel.py:316 msgid "Edit comment" msgstr "" #: sidepanel/annotationPanel.py:269 msgid "Forced move" msgstr "" #: sidepanel/annotationPanel.py:274 msgid "Add move symbol" msgstr "" #: sidepanel/annotationPanel.py:280 msgid "Unclear position" msgstr "" #: sidepanel/annotationPanel.py:289 msgid "Zugzwang" msgstr "" #: sidepanel/annotationPanel.py:290 msgid "Development adv." msgstr "" #: sidepanel/annotationPanel.py:291 msgid "Initiative" msgstr "" #: sidepanel/annotationPanel.py:292 msgid "With attack" msgstr "" #: sidepanel/annotationPanel.py:293 msgid "Compensation" msgstr "" #: sidepanel/annotationPanel.py:294 msgid "Counterplay" msgstr "" #: sidepanel/annotationPanel.py:295 msgid "Time pressure" msgstr "" #: sidepanel/annotationPanel.py:300 msgid "Add evaluation symbol" msgstr "" #: sidepanel/annotationPanel.py:304 msgid "Remove symbols" msgstr "" #: sidepanel/annotationPanel.py:911 #, python-format msgid "round %s" msgstr "" #: sidepanel/bookPanel.py:21 msgid "Hints" msgstr "" #: sidepanel/bookPanel.py:25 msgid "" "The hint panel will provide computer advice during each stage of the game" msgstr "" #: sidepanel/bookPanel.py:27 msgid "Official PyChess panel." msgstr "" #: sidepanel/bookPanel.py:87 msgid "Opening Book" msgstr "" #: sidepanel/bookPanel.py:88 msgid "" "The opening book will try to inspire you during the opening phase of the " "game by showing you common moves made by chess masters" msgstr "" #: sidepanel/bookPanel.py:139 #, python-format msgid "Analysis by %s" msgstr "" #: sidepanel/bookPanel.py:140 #, python-format msgid "" "%s will try to predict which move is best and which side has the advantage" msgstr "" #: sidepanel/bookPanel.py:142 #, python-format msgid "Threat analysis by %s" msgstr "" #: sidepanel/bookPanel.py:143 #, python-format msgid "" "%s will identify what threats would exist if it were your opponent's turn to" " move" msgstr "" #: sidepanel/bookPanel.py:159 sidepanel/bookPanel.py:269 msgid "Calculating..." msgstr "" #: sidepanel/bookPanel.py:300 msgid "" "Engine scores are in units of pawns, from White's point of view. Double " "clicking on analysis lines you can insert them into Annotation panel as " "variations." msgstr "" #: sidepanel/bookPanel.py:302 msgid "" "Adding suggestions can help you find ideas, but slows down the computer's " "analysis." msgstr "" #: sidepanel/bookPanel.py:311 msgid "Endgame Table" msgstr "" #: sidepanel/bookPanel.py:315 msgid "" "The endgame table will show exact analysis when there are few pieces on the " "board." msgstr "" #: sidepanel/bookPanel.py:364 sidepanel/bookPanel.py:367 #, python-format msgid "Mate in %d" msgstr "" #: sidepanel/bookPanel.py:554 msgid "" "In this position,\n" "there is no legal move." msgstr "" #: sidepanel/chatPanel.py:21 msgid "" "The chat panel lets you communicate with your opponent during the game, " "assuming he or she is interested" msgstr "" #: sidepanel/commentPanel.py:16 msgid "Comments" msgstr "" #: sidepanel/commentPanel.py:20 msgid "The comments panel will try to analyze and explain the moves played" msgstr "" #: sidepanel/commentPanel.py:121 msgid "Initial position" msgstr "" #: sidepanel/commentPanel.py:254 #, python-format msgid "%(color)s moves a %(piece)s to %(cord)s" msgstr "" #: sidepanel/engineOutputPanel.py:15 msgid "Engines" msgstr "" #: sidepanel/engineOutputPanel.py:20 msgid "" "The engine output panel shows the thinking output of chess engines (computer" " players) during a game" msgstr "" #: sidepanel/engineOutputPanel.py:44 msgid "No chess engines (computer players) are participating in this game." msgstr "" #: sidepanel/historyPanel.py:10 msgid "Move History" msgstr "" #: sidepanel/historyPanel.py:13 msgid "" "The moves sheet keeps track of the players' moves and lets you navigate " "through the game history" msgstr "" #: sidepanel/scorePanel.py:15 msgid "Score" msgstr "" #: sidepanel/scorePanel.py:19 msgid "" "The score panel tries to evaluate the positions and shows you a graph of the" " game progress" msgstr "" pychess-0.12.2/lang/ku/LC_MESSAGES/pychess.mo0000644000175000017470000000176412653231272020723 0ustar tamasusers00000000000000 |  ! -:@Q#Z~  Q _lu     NewsToolsGain:Log on as _GuestMinutes:PyChess - Connect to Internet ChessPyChess - Internet Chess: FICSTime_Accept_Name:_Password:Project-Id-Version: pychess Report-Msgid-Bugs-To: POT-Creation-Date: 2016-01-27 13:28+0100 PO-Revision-Date: 2016-01-28 08:56+0000 Last-Translator: slav0nic Language-Team: Kurdish (http://www.transifex.com/gbtami/pychess/language/ku/) MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Language: ku Plural-Forms: nplurals=2; plural=(n != 1); NûçeAmûrTêk birWekî _Mêvan têkevêXulek:PyKişik - Girêde Kişika TorêPyKişik - Kişika Torê: FICSDem_Bipejirîne_Nav:_Şîfre:pychess-0.12.2/lang/is/0000755000175000017470000000000012653231274015111 5ustar tamasusers00000000000000pychess-0.12.2/lang/is/LC_MESSAGES/0000755000175000017470000000000012653231274016676 5ustar tamasusers00000000000000pychess-0.12.2/lang/is/LC_MESSAGES/pychess.po0000644000175000017470000024270012653216173020722 0ustar tamasusers00000000000000# SOME DESCRIPTIVE TITLE. # Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER # This file is distributed under the same license as the pychess package. # # Translators: # FIRST AUTHOR , 2008 msgid "" msgstr "" "Project-Id-Version: pychess\n" "Report-Msgid-Bugs-To: \n" "POT-Creation-Date: 2016-01-27 13:28+0100\n" "PO-Revision-Date: 2016-01-28 08:56+0000\n" "Last-Translator: slav0nic \n" "Language-Team: Icelandic (http://www.transifex.com/gbtami/pychess/language/is/)\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" "Language: is\n" "Plural-Forms: nplurals=2; plural=(n % 10 != 1 || n % 100 == 11);\n" # "Plural-Forms: nplurals=INTEGER; plural=EXPRESSION;\n" #: glade/analyze_game.glade:22 msgid "Analyze game" msgstr "" #: glade/analyze_game.glade:87 msgid "Use analyzer:" msgstr "" #: glade/analyze_game.glade:122 glade/PyChess.glade:2054 msgid "Maximum analysis time in seconds:" msgstr "" #: glade/analyze_game.glade:163 msgid "" "If the analyzer finds a move where the evaluation difference (the difference" " between the evaluation for the move it thinks is the best move and the " "evaluation for the move made in the game) exceeds this value, it will add an" " annotation for that move (consisting of the engine's Principal Variation " "for the move) to the Annotation panel" msgstr "" #: glade/analyze_game.glade:164 msgid "Variation annotation creation threshold in centipawns:" msgstr "" #: glade/analyze_game.glade:198 msgid "Analyze from current position" msgstr "" #: glade/analyze_game.glade:214 msgid "Add threatening variation lines " msgstr "" #: glade/analyze_game.glade:229 glade/PyChess.glade:1459 msgid "Colorize analyzed moves" msgstr "" #: glade/analyze_game.glade:244 glade/PyChess.glade:1495 msgid "Show evaluation values" msgstr "" #: glade/discovererDialog.glade:18 msgid "PyChess is discovering your engines. Please wait." msgstr "" #: glade/discovererDialog.glade:77 msgid "PyChess.py:" msgstr "" #: glade/discovererDialog.glade:89 msgid "ShredderLinuxChess:" msgstr "" #: glade/discovererDialog.glade:101 msgid "gnuchess:" msgstr "" #: glade/fics_logon.glade:7 msgid "PyChess - Connect to Internet Chess" msgstr "PyChess - Tengjast Internet Skák" #: glade/fics_logon.glade:47 msgid "Connect to the Free Online Chess Server" msgstr "" #: glade/fics_logon.glade:129 glade/taskers.glade:394 msgid "_Password:" msgstr "" #: glade/fics_logon.glade:143 msgid "_Name:" msgstr "" #: glade/fics_logon.glade:191 msgid "Log on as _Guest" msgstr "Skrá mig inn sem _Gestur" #: glade/fics_logon.glade:227 msgid "Host:" msgstr "" #: glade/fics_logon.glade:259 msgid "Po_rts:" msgstr "" #: glade/fics_logon.glade:271 msgid "Auto login on startup" msgstr "" #: glade/fics_logon.glade:385 msgid "S_ign up" msgstr "" #: glade/fics_lounge.glade:35 msgid "Challenge: " msgstr "" #: glade/fics_lounge.glade:97 msgid "Send Challenge" msgstr "" #: glade/fics_lounge.glade:133 msgid "Challenge:" msgstr "" #: glade/fics_lounge.glade:327 glade/fics_lounge.glade:2078 msgid "Lightning:" msgstr "" #: glade/fics_lounge.glade:351 glade/fics_lounge.glade:2102 msgid "Standard:" msgstr "" #: glade/fics_lounge.glade:375 glade/fics_lounge.glade:2126 msgid "Blitz:" msgstr "" #: glade/fics_lounge.glade:400 msgid "2 min, Fischer Random, Black" msgstr "" #: glade/fics_lounge.glade:422 msgid "10 min + 6 sec/move, White" msgstr "" #: glade/fics_lounge.glade:444 msgid "5 min" msgstr "" #: glade/fics_lounge.glade:480 msgid "Edit Seek" msgstr "" #: glade/fics_lounge.glade:584 lib/pychess/ic/ICLounge.py:2208 #: lib/pychess/ic/__init__.py:101 lib/pychess/Utils/GameModel.py:206 msgid "Untimed" msgstr "" #: glade/fics_lounge.glade:637 msgid "Minutes: " msgstr "" #: glade/fics_lounge.glade:665 msgid " Gain: " msgstr "" #: glade/fics_lounge.glade:703 msgid "Time control: " msgstr "" #: glade/fics_lounge.glade:716 lib/pychess/ic/FICSObjects.py:56 #: lib/pychess/ic/ICLounge.py:1137 lib/pychess/ic/ICLounge.py:2208 #: lib/pychess/ic/__init__.py:99 msgid "Standard" msgstr "" #: glade/fics_lounge.glade:757 glade/newInOut.glade:633 msgid "Time Control" msgstr "" #: glade/fics_lounge.glade:814 glade/fics_lounge.glade:1346 msgid "Don't care" msgstr "" #: glade/fics_lounge.glade:879 msgid "Your strength: " msgstr "" #: glade/fics_lounge.glade:921 msgid "(Blitz)" msgstr "" #: glade/fics_lounge.glade:951 msgid "Opponent's strength: " msgstr "" #: glade/fics_lounge.glade:1055 msgid "" "When this button is in the \"locked\" state, the relationship\n" "between \"Opponent's strength\" and \"Your strength\" will be\n" "preserved when \n" "a) your rating for the type of game sought has changed\n" "b) you change the variant or the time control" msgstr "" #: glade/fics_lounge.glade:1095 msgid "Center:" msgstr "" #: glade/fics_lounge.glade:1134 msgid "1200" msgstr "" #: glade/fics_lounge.glade:1188 msgid "Tolerance:" msgstr "" #: glade/fics_lounge.glade:1243 lib/pychess/ic/ICLounge.py:2452 msgid "Hide" msgstr "" #: glade/fics_lounge.glade:1289 msgid "Opponent Strength" msgstr "" #: glade/fics_lounge.glade:1386 lib/pychess/Database/gamelist.py:40 #: lib/pychess/ic/ICLounge.py:1357 lib/pychess/ic/ICLounge.py:1557 #: lib/pychess/ic/ICLounge.py:2108 lib/pychess/Utils/repr.py:10 #: lib/pychess/widgets/ChessClock.py:40 #: lib/pychess/widgets/TaskerManager.py:153 msgid "White" msgstr "Hvítur" #: glade/fics_lounge.glade:1414 lib/pychess/Database/gamelist.py:40 #: lib/pychess/ic/ICLounge.py:1358 lib/pychess/ic/ICLounge.py:1558 #: lib/pychess/ic/ICLounge.py:2110 lib/pychess/Utils/repr.py:10 #: lib/pychess/widgets/ChessClock.py:40 #: lib/pychess/widgets/TaskerManager.py:154 msgid "Black" msgstr "Svartur" #: glade/fics_lounge.glade:1453 msgid "Your Color" msgstr "" #: glade/fics_lounge.glade:1512 msgid "Play normal chess rules" msgstr "" #: glade/fics_lounge.glade:1552 msgid "Play" msgstr "" #: glade/fics_lounge.glade:1618 glade/newInOut.glade:833 msgid "Chess Variant" msgstr "" #: glade/fics_lounge.glade:1676 msgid "Rated game" msgstr "" #: glade/fics_lounge.glade:1692 msgid "Manually accept opponent" msgstr "" #: glade/fics_lounge.glade:1722 msgid "Options" msgstr "" #: glade/fics_lounge.glade:1750 msgid "PyChess - Internet Chess: FICS" msgstr "" #: glade/fics_lounge.glade:1823 msgid "_Clear Seeks" msgstr "" #: glade/fics_lounge.glade:1847 msgid "_Accept" msgstr "" #: glade/fics_lounge.glade:1871 msgid "_Decline" msgstr "" #: glade/fics_lounge.glade:2151 msgid "2 min, Fischer Random, 1800↓, Black" msgstr "" #: glade/fics_lounge.glade:2172 msgid "10 min + 6 sec/move, 1400↑, White" msgstr "" #: glade/fics_lounge.glade:2193 msgid "5 min, 1200-1800, Manual" msgstr "" #: glade/fics_lounge.glade:2247 msgid "Send all seeks" msgstr "" #: glade/fics_lounge.glade:2301 msgid "Send seek" msgstr "" #: glade/fics_lounge.glade:2337 msgid "Create Seek" msgstr "" #: glade/fics_lounge.glade:2353 msgid "_Seeks / Challenges" msgstr "" #: glade/fics_lounge.glade:2374 lib/pychess/ic/ICLounge.py:472 #: lib/pychess/ic/ICLounge.py:670 lib/pychess/ic/ICLounge.py:1357 #: lib/pychess/ic/ICLounge.py:1358 msgid "Rating" msgstr "" #: glade/fics_lounge.glade:2399 msgid "Time" msgstr "" #: glade/fics_lounge.glade:2419 msgid "Seek _Graph" msgstr "" #: glade/fics_lounge.glade:2444 msgid "0 Players Ready" msgstr "" #: glade/fics_lounge.glade:2496 msgid "Challenge" msgstr "" #: glade/fics_lounge.glade:2549 glade/fics_lounge.glade:2735 msgid "Observe" msgstr "" #: glade/fics_lounge.glade:2602 msgid "Start Private Chat" msgstr "" #: glade/fics_lounge.glade:2659 msgid "_Player List" msgstr "" #: glade/fics_lounge.glade:2792 msgid "_Game List" msgstr "" #: glade/fics_lounge.glade:2847 msgid "_My games" msgstr "" #: glade/fics_lounge.glade:2904 glade/PyChess.glade:841 msgid "Offer _Resume" msgstr "" #: glade/fics_lounge.glade:2962 glade/PyChess.glade:880 msgid "R_esign" msgstr "" #: glade/fics_lounge.glade:3006 glade/PyChess.glade:820 msgid "Offer _Draw" msgstr "" #: glade/fics_lounge.glade:3050 msgid "Offer A_bort" msgstr "" #: glade/fics_lounge.glade:3107 msgid "Pre_view" msgstr "" #: glade/fics_lounge.glade:3151 msgid "Examine" msgstr "" #: glade/fics_lounge.glade:3208 msgid "_Archived" msgstr "" #: glade/fics_lounge.glade:3313 msgid "News" msgstr "Fréttir" #: glade/fics_lounge.glade:3345 msgid "Show Console" msgstr "" #: glade/fics_lounge.glade:3359 msgid "Show _Chat" msgstr "" #: glade/fics_lounge.glade:3373 msgid "_Log Off" msgstr "" #: glade/fics_lounge.glade:3393 msgid "Tools" msgstr "" #: glade/fics_lounge.glade:3428 msgid "Asymmetric Random " msgstr "" #: glade/findbar.glade:6 msgid "window1" msgstr "" #: glade/findbar.glade:21 msgid "0 of 0" msgstr "" #: glade/findbar.glade:66 msgid "Search:" msgstr "" #: glade/findbar.glade:134 msgid "_Previous" msgstr "" #: glade/findbar.glade:192 msgid "_Next" msgstr "" #: glade/newInOut.glade:45 lib/pychess/widgets/newGameDialog.py:445 msgid "New Game" msgstr "" #: glade/newInOut.glade:108 msgid "_Start Game" msgstr "_Ræsa Leik" #: glade/newInOut.glade:130 msgid "Copy FEN" msgstr "" #: glade/newInOut.glade:143 msgid "Clear" msgstr "" #: glade/newInOut.glade:156 msgid "Paste FEN" msgstr "" #: glade/newInOut.glade:257 msgid "_Black player:" msgstr "" #: glade/newInOut.glade:274 msgid "_White player:" msgstr "" #: glade/newInOut.glade:385 msgid "Players" msgstr "Spilarar" #: glade/newInOut.glade:436 msgid "_Untimed" msgstr "" #: glade/newInOut.glade:475 msgid "Blitz: 5 min" msgstr "" #: glade/newInOut.glade:526 msgid "Rapid: 15 min + 10 sec/move" msgstr "" #: glade/newInOut.glade:575 msgid "Normal: 40 min + 15 sec/move" msgstr "" #: glade/newInOut.glade:684 msgid "_Play Normal chess" msgstr "" #: glade/newInOut.glade:724 msgid "Play Fischer Random chess" msgstr "" #: glade/newInOut.glade:774 msgid "Play Losers chess" msgstr "" #: glade/newInOut.glade:919 msgid "Open Game" msgstr "" #: glade/newInOut.glade:1162 msgid "Initial Position" msgstr "" #: glade/newInOut.glade:1219 msgid "Enter Game Notation" msgstr "" #: glade/newInOut.glade:1314 msgid "Halfmove clock" msgstr "" #: glade/newInOut.glade:1327 msgid "En passant line" msgstr "" #: glade/newInOut.glade:1339 msgid "Side to move" msgstr "" #: glade/newInOut.glade:1351 msgid "Move number" msgstr "" #: glade/newInOut.glade:1361 msgid "Black O-O" msgstr "" #: glade/newInOut.glade:1375 msgid "Black O-O-O" msgstr "" #: glade/newInOut.glade:1389 msgid "White O-O-O" msgstr "" #: glade/newInOut.glade:1403 msgid "White O-O" msgstr "" #: glade/promotion.glade:7 msgid "Promotion" msgstr "" #: glade/promotion.glade:49 lib/pychess/Utils/repr.py:12 msgid "Queen" msgstr "Drottning" #: glade/promotion.glade:95 lib/pychess/Utils/repr.py:12 msgid "Rook" msgstr "Hrókur" #: glade/promotion.glade:141 lib/pychess/Utils/repr.py:12 msgid "Bishop" msgstr "Biskup" #: glade/promotion.glade:187 lib/pychess/Utils/repr.py:12 msgid "Knight" msgstr "Riddari" #: glade/promotion.glade:233 lib/pychess/Utils/repr.py:12 msgid "King" msgstr "" #: glade/promotion.glade:265 msgid "Promote pawn to what?" msgstr "" #: glade/PyChess.glade:9 msgid "Chess client" msgstr "" #: glade/PyChess.glade:44 msgid "Game information" msgstr "" #: glade/PyChess.glade:164 msgid "Event:" msgstr "" #: glade/PyChess.glade:178 msgid "Site:" msgstr "" #: glade/PyChess.glade:204 msgid "Round:" msgstr "" #: glade/PyChess.glade:237 msgid "White:" msgstr "" #: glade/PyChess.glade:249 msgid "Black:" msgstr "" #: glade/PyChess.glade:302 msgid "Game data" msgstr "Leikjagögn" #: glade/PyChess.glade:357 msgid "Date of game" msgstr "Dagsetning leiks" #: glade/PyChess.glade:495 msgid "_Game" msgstr "_Leikur" #: glade/PyChess.glade:502 msgid "_New Game" msgstr "_Nýr leikur" #: glade/PyChess.glade:515 msgid "Play _Internet Chess" msgstr "" #: glade/PyChess.glade:534 msgid "_Load Game" msgstr "_Hlaða inn leik" #: glade/PyChess.glade:550 msgid "Load _Recent Game" msgstr "" #: glade/PyChess.glade:558 msgid "Open _Database" msgstr "" #: glade/PyChess.glade:569 lib/pychess/widgets/newGameDialog.py:615 msgid "Setup Position" msgstr "" #: glade/PyChess.glade:579 msgid "Enter Game _Notation" msgstr "" #: glade/PyChess.glade:592 msgid "_Save Game" msgstr "_Vista Leik" #: glade/PyChess.glade:606 msgid "Save Game _As" msgstr "Vista Leik _Sem" #: glade/PyChess.glade:624 msgid "Share Game" msgstr "" #: glade/PyChess.glade:630 msgid "_Export Position" msgstr "" #: glade/PyChess.glade:644 msgid "_Analyze Game" msgstr "" #: glade/PyChess.glade:678 msgid "Player _Rating" msgstr "" #: glade/PyChess.glade:723 msgid "_Edit" msgstr "" #: glade/PyChess.glade:734 msgid "_Copy PGN" msgstr "" #: glade/PyChess.glade:746 msgid "_Copy FEN" msgstr "" #: glade/PyChess.glade:763 msgid "_Engines" msgstr "" #: glade/PyChess.glade:789 msgid "_Actions" msgstr "_Aðgerðir" #: glade/PyChess.glade:800 msgid "Offer _Abort" msgstr "" #: glade/PyChess.glade:810 msgid "Offer Ad_journment" msgstr "" #: glade/PyChess.glade:831 msgid "Offer _Pause" msgstr "" #: glade/PyChess.glade:847 msgid "Offer _Undo" msgstr "" #: glade/PyChess.glade:870 msgid "_Call Flag" msgstr "" #: glade/PyChess.glade:890 msgid "Ask to _Move" msgstr "" #: glade/PyChess.glade:905 msgid "Auto Call _Flag" msgstr "" #: glade/PyChess.glade:918 msgid "_View" msgstr "_Sýn" #: glade/PyChess.glade:925 msgid "_Rotate Board" msgstr "Snúa Borði" #: glade/PyChess.glade:939 msgid "_Fullscreen" msgstr "" #: glade/PyChess.glade:952 msgid "Leave _Fullscreen" msgstr "" #: glade/PyChess.glade:969 msgid "_Show Sidepanels" msgstr "" #: glade/PyChess.glade:980 msgid "_Log Viewer" msgstr "" #: glade/PyChess.glade:997 msgid "_Hint mode" msgstr "" #: glade/PyChess.glade:1009 msgid "Sp_y mode" msgstr "" #: glade/PyChess.glade:1024 msgid "_Help" msgstr "_Hjálp" #: glade/PyChess.glade:1034 msgid "About Chess" msgstr "Um Skák" #: glade/PyChess.glade:1043 msgid "How to Play" msgstr "" #: glade/PyChess.glade:1052 msgid "Translate PyChess" msgstr "" #: glade/PyChess.glade:1058 msgid "Tip of the Day" msgstr "" #: glade/PyChess.glade:1153 msgid "Default" msgstr "" #: glade/PyChess.glade:1156 msgid "Knights" msgstr "" #: glade/PyChess.glade:1167 lib/pychess/widgets/preferencesDialog.py:349 msgid "Beep" msgstr "Bíp" #: glade/PyChess.glade:1170 lib/pychess/widgets/preferencesDialog.py:350 msgid "Select sound file..." msgstr "Velja hljóðskrá..." #: glade/PyChess.glade:1173 lib/pychess/widgets/preferencesDialog.py:348 msgid "No sound" msgstr "Ekkert hljóð" #: glade/PyChess.glade:1180 msgid "Preferences" msgstr "Stillingar" #: glade/PyChess.glade:1218 msgid "The displayed name of the first human player, e.g., John." msgstr "" #: glade/PyChess.glade:1230 msgid "Name of _first human player:" msgstr "" #: glade/PyChess.glade:1259 msgid "The displayed name of the guest player, e.g., Mary." msgstr "" #: glade/PyChess.glade:1271 msgid "Name of s_econd human player:" msgstr "" #: glade/PyChess.glade:1307 msgid "_Hide tabs when only one game is open" msgstr "" #: glade/PyChess.glade:1312 msgid "" "If set, this hides the tab in the top of the playing window, when it is not " "needed." msgstr "" #: glade/PyChess.glade:1326 msgid "_Use main app closer [x] to close all games" msgstr "" #: glade/PyChess.glade:1331 msgid "" "If set, clicking on main application window closer first time it closes all " "games." msgstr "" #: glade/PyChess.glade:1345 msgid "Auto _rotate board to current human player" msgstr "" #: glade/PyChess.glade:1350 msgid "" "If set, the board will turn after each move, to show the natural view for " "the current player." msgstr "" #: glade/PyChess.glade:1364 msgid "Auto _promote to queen" msgstr "" #: glade/PyChess.glade:1369 msgid "If set, pawn promotes to queen without promotion dialog selection." msgstr "" #: glade/PyChess.glade:1383 msgid "Face _to Face display mode" msgstr "" #: glade/PyChess.glade:1388 msgid "" "If set, the black pieces will be head down, suitable for playing against " "friends on mobile devices." msgstr "" #: glade/PyChess.glade:1402 msgid "Sho_w cords" msgstr "" #: glade/PyChess.glade:1407 msgid "" "If set, the playing board will display labels and ranks for each chess " "field. These are usable in chess notation." msgstr "" #: glade/PyChess.glade:1421 msgid "Show _captured pieces" msgstr "" #: glade/PyChess.glade:1426 msgid "If set, the captured figurines will be shown next to the board." msgstr "" #: glade/PyChess.glade:1440 msgid "Prefer figures in _notation" msgstr "" #: glade/PyChess.glade:1445 msgid "" "If set, PyChess will use figures to express moved pieces, rather than " "uppercase letters." msgstr "" #: glade/PyChess.glade:1464 msgid "If set, PyChess will colorize suboptimal analyzed moves with red." msgstr "" #: glade/PyChess.glade:1477 msgid "Show elapsed move times" msgstr "" #: glade/PyChess.glade:1482 msgid "If set, the elapsed time that a player used for the move is shown." msgstr "" #: glade/PyChess.glade:1500 msgid "If set, the hint analyzer engine evaluation value is shown." msgstr "" #: glade/PyChess.glade:1526 msgid "General Options" msgstr "" #: glade/PyChess.glade:1560 msgid "F_ull board animation" msgstr "" #: glade/PyChess.glade:1565 msgid "Animate pieces, board rotation and more. Use this on fast machines." msgstr "" #: glade/PyChess.glade:1579 msgid "Only animate _moves" msgstr "" #: glade/PyChess.glade:1584 msgid "Only animate piece moves." msgstr "" #: glade/PyChess.glade:1599 msgid "No _animation" msgstr "" #: glade/PyChess.glade:1604 msgid "Never use animation. Use this on slow machines." msgstr "" #: glade/PyChess.glade:1632 msgid "Animation" msgstr "" #: glade/PyChess.glade:1651 msgid "_General" msgstr "" #: glade/PyChess.glade:1692 msgid "Use opening _book" msgstr "" #: glade/PyChess.glade:1697 msgid "If set, PyChess will suggest best opening moves on hint panel." msgstr "" #: glade/PyChess.glade:1724 msgid "Polyglot book file:" msgstr "" #: glade/PyChess.glade:1768 msgid "Use _local tablebases" msgstr "" #: glade/PyChess.glade:1773 msgid "" "If set, PyChess will show game results for different moves in positions containing 6 or less pieces.\n" "You can download tablebase files from:\n" "http://www.olympuschess.com/egtb/gaviota/" msgstr "" #: glade/PyChess.glade:1803 msgid "Gaviota TB path:" msgstr "" #: glade/PyChess.glade:1843 msgid "Use _online tablebases" msgstr "" #: glade/PyChess.glade:1848 msgid "" "If set, PyChess will show game results for different moves in positions containing 6 or less pieces.\n" "It will search positions from http://www.k4it.de/" msgstr "" #: glade/PyChess.glade:1870 msgid "Opening, endgame" msgstr "" #: glade/PyChess.glade:1904 msgid "Use _analyzer" msgstr "" #: glade/PyChess.glade:1946 msgid "" "The analyzer will run in the background and analyze the game. This is " "necessary for the hint mode to work" msgstr "" #: glade/PyChess.glade:1978 msgid "Use _inverted analyzer" msgstr "" #: glade/PyChess.glade:2020 msgid "" "The inverse analyzer will analyze the game as if your opponent was to move. " "This is necessary for the spy mode to work" msgstr "" #: glade/PyChess.glade:2096 msgid "Analyzing" msgstr "" #: glade/PyChess.glade:2118 msgid "_Hints" msgstr "" #: glade/PyChess.glade:2263 msgid "Uninstall" msgstr "" #: glade/PyChess.glade:2317 msgid "Ac_tive" msgstr "" #: glade/PyChess.glade:2367 msgid "Installed Sidepanels" msgstr "" #: glade/PyChess.glade:2382 msgid "Side_panels" msgstr "" #: glade/PyChess.glade:2440 msgid "Light Squares :" msgstr "" #: glade/PyChess.glade:2479 msgid "Dark Squares :" msgstr "" #: glade/PyChess.glade:2515 msgid "Reset Default Colours" msgstr "" #: glade/PyChess.glade:2551 msgid "Board Colours" msgstr "" #: glade/PyChess.glade:2610 msgid "Chess Sets" msgstr "" #: glade/PyChess.glade:2634 msgid "Themes" msgstr "" #: glade/PyChess.glade:2659 msgid "_Use sounds in PyChess" msgstr "_Nota hljóð í PyChess" #: glade/PyChess.glade:2982 msgid "A player _checks:" msgstr "" #: glade/PyChess.glade:2997 msgid "A player _moves:" msgstr "" #: glade/PyChess.glade:3010 msgid "Game is _drawn:" msgstr "" #: glade/PyChess.glade:3025 msgid "Game is _lost:" msgstr "Leikurinn er _tapaður:" #: glade/PyChess.glade:3040 msgid "Game is _won:" msgstr "Leikurinn er _unninn:" #: glade/PyChess.glade:3055 msgid "A player c_aptures:" msgstr "" #: glade/PyChess.glade:3084 msgid "Game is _set-up:" msgstr "" #: glade/PyChess.glade:3136 msgid "_Observed moves:" msgstr "" #: glade/PyChess.glade:3151 msgid "Observed _ends:" msgstr "" #: glade/PyChess.glade:3265 msgid "Short on _time:" msgstr "" #: glade/PyChess.glade:3317 msgid "_Invalid move:" msgstr "" #: glade/PyChess.glade:3369 msgid "Activate alarm when _remaining sec is:" msgstr "" #: glade/PyChess.glade:3416 msgid "Play Sound When..." msgstr "Spila hljóð Þegar..." #: glade/PyChess.glade:3438 msgid "_Sounds" msgstr "" #: glade/PyChess.glade:3463 msgid "_Auto save finished games" msgstr "" #: glade/PyChess.glade:3497 msgid "Save files to:" msgstr "" #: glade/PyChess.glade:3525 msgid "Use name format:" msgstr "" #: glade/PyChess.glade:3569 msgid "Names: #n1, #n2" msgstr "" #: glade/PyChess.glade:3582 msgid "Year, month, day: #y, #m, #d" msgstr "" #: glade/PyChess.glade:3619 msgid "Save elapsed move _times" msgstr "" #: glade/PyChess.glade:3644 msgid "Save analyzing engine _evaluation values" msgstr "" #: glade/PyChess.glade:3669 msgid "Save _own games only" msgstr "" #: glade/PyChess.glade:3698 msgid "Save" msgstr "" #: glade/PyChess.glade:3728 msgid "uci" msgstr "" #: glade/PyChess.glade:3731 msgid "xboard" msgstr "" #: glade/PyChess.glade:3739 msgid "Manage engines" msgstr "" #: glade/PyChess.glade:3837 msgid "Command:" msgstr "" #: glade/PyChess.glade:3851 msgid "Protocol:" msgstr "" #: glade/PyChess.glade:3865 msgid "Parameters:" msgstr "" #: glade/PyChess.glade:3878 msgid "Command line parameters needed by the engine." msgstr "" #: glade/PyChess.glade:3903 msgid "" "Engines use uci or xboard communication protocol to talk to the GUI.\n" "If it can use both you can set here which one you like." msgstr "" #: glade/PyChess.glade:3929 msgid "Working directory:" msgstr "" #: glade/PyChess.glade:3942 msgid "The directory where the engine will be started from." msgstr "" #: glade/saveGamesDialog.glade:7 msgid "Quit PyChess" msgstr "" #: glade/saveGamesDialog.glade:24 lib/pychess/widgets/ionest.py:424 msgid "Close _without Saving" msgstr "_Loka án þess að vista" #: glade/saveGamesDialog.glade:83 msgid "_Save %d documents" msgstr "" #: glade/saveGamesDialog.glade:141 msgid "" "There are %d games with unsaved moves. Save changes before " "closing?" msgstr "" #: glade/saveGamesDialog.glade:161 msgid "Select the games you want to save:" msgstr "" #: glade/saveGamesDialog.glade:204 msgid "If you don't save, new changes to your games will be permanently lost." msgstr "" #: glade/taskers.glade:126 msgid "_Opponent:" msgstr "" #: glade/taskers.glade:154 msgid "_Your Color:" msgstr "" #: glade/taskers.glade:219 msgid "_Start Game" msgstr "" #: glade/taskers.glade:338 msgid "Log on as G_uest" msgstr "" #: glade/taskers.glade:410 msgid "Ha_ndle:" msgstr "" #: glade/taskers.glade:469 msgid "_Connect to server" msgstr "" #: glade/tipoftheday.glade:7 msgid "Tip Of The day" msgstr "" #: glade/tipoftheday.glade:62 msgid "Show tips at startup" msgstr "" #: lib/pychess/Main.py:302 msgid "http://en.wikipedia.org/wiki/Chess" msgstr "http://is.wikipedia.org/wiki/Sk%C3%A1k" #: lib/pychess/Main.py:305 msgid "http://en.wikipedia.org/wiki/Rules_of_chess" msgstr "" #: lib/pychess/Main.py:370 lib/pychess/widgets/gamenanny.py:80 msgid "Welcome" msgstr "" #: lib/pychess/Database/gamelist.py:40 msgid "Id" msgstr "" #: lib/pychess/Database/gamelist.py:40 msgid "W Elo" msgstr "" #: lib/pychess/Database/gamelist.py:40 msgid "B Elo" msgstr "" #: lib/pychess/Database/gamelist.py:41 msgid "Result" msgstr "" #: lib/pychess/Database/gamelist.py:41 msgid "Event" msgstr "" #: lib/pychess/Database/gamelist.py:41 msgid "Site" msgstr "" #: lib/pychess/Database/gamelist.py:41 msgid "Round" msgstr "" #: lib/pychess/Database/gamelist.py:41 msgid "Date" msgstr "" #: lib/pychess/Database/gamelist.py:41 msgid "ECO" msgstr "" #: lib/pychess/Database/gamelist.py:62 msgid "PyChess Game Database" msgstr "" #: lib/pychess/Database/PgnImport.py:188 #, python-format msgid "The game #%s can't be loaded, because of an error parsing FEN" msgstr "" #: lib/pychess/ic/FICSConnection.py:139 msgid "The connection was broken - got \"end of file\" message" msgstr "" #: lib/pychess/ic/FICSConnection.py:140 #, python-format msgid "'%s' is not a registered name" msgstr "" #: lib/pychess/ic/FICSConnection.py:141 msgid "" "The entered password was invalid.\n" "If you forgot your password, go to http://www.freechess.org/password to request a new one over email." msgstr "" #: lib/pychess/ic/FICSConnection.py:145 #, python-format msgid "Sorry '%s' is already logged in" msgstr "" #: lib/pychess/ic/FICSConnection.py:146 #, python-format msgid "'%s' is a registered name. If it is yours, type the password." msgstr "" #: lib/pychess/ic/FICSConnection.py:147 msgid "" "Due to abuse problems, guest connections have been prevented.\n" "You can still register on http://www.freechess.org" msgstr "" #: lib/pychess/ic/FICSConnection.py:166 msgid "Connecting to server" msgstr "" #: lib/pychess/ic/FICSConnection.py:181 msgid "Logging on to server" msgstr "" #: lib/pychess/ic/FICSConnection.py:239 msgid "Setting up environment" msgstr "" #: lib/pychess/ic/FICSObjects.py:35 lib/pychess/ic/FICSObjects.py:47 #, python-format msgid "%(player)s is %(status)s" msgstr "" #: lib/pychess/ic/FICSObjects.py:46 msgid "not playing" msgstr "" #: lib/pychess/ic/FICSObjects.py:54 lib/pychess/ic/ICLounge.py:1136 #: lib/pychess/ic/ICLounge.py:2209 lib/pychess/ic/__init__.py:98 #: lib/pychess/widgets/newGameDialog.py:153 msgid "Blitz" msgstr "" #: lib/pychess/ic/FICSObjects.py:58 lib/pychess/ic/ICLounge.py:1137 #: lib/pychess/ic/ICLounge.py:2209 lib/pychess/ic/__init__.py:100 msgid "Lightning" msgstr "" #: lib/pychess/ic/FICSObjects.py:60 lib/pychess/Variants/atomic.py:15 msgid "Atomic" msgstr "" #: lib/pychess/ic/FICSObjects.py:62 lib/pychess/Variants/bughouse.py:9 msgid "Bughouse" msgstr "" #: lib/pychess/ic/FICSObjects.py:64 lib/pychess/Variants/crazyhouse.py:9 msgid "Crazyhouse" msgstr "" #: lib/pychess/ic/FICSObjects.py:66 lib/pychess/Variants/losers.py:9 msgid "Losers" msgstr "" #: lib/pychess/ic/FICSObjects.py:68 lib/pychess/Variants/suicide.py:12 msgid "Suicide" msgstr "" #: lib/pychess/ic/FICSObjects.py:70 lib/pychess/ic/__init__.py:129 msgid "Wild" msgstr "" #: lib/pychess/ic/FICSObjects.py:117 msgid "Online" msgstr "" #: lib/pychess/ic/FICSObjects.py:118 lib/pychess/ic/FICSObjects.py:143 msgid "Offline" msgstr "" #: lib/pychess/ic/FICSObjects.py:133 msgid "Available" msgstr "" #: lib/pychess/ic/FICSObjects.py:135 msgid "Playing" msgstr "" #: lib/pychess/ic/FICSObjects.py:141 msgid "Idle" msgstr "" #: lib/pychess/ic/FICSObjects.py:145 msgid "Examining" msgstr "" #: lib/pychess/ic/FICSObjects.py:147 msgid "Not Available" msgstr "" #: lib/pychess/ic/FICSObjects.py:149 msgid "Running Simul Match" msgstr "" #: lib/pychess/ic/FICSObjects.py:151 msgid "In Tournament" msgstr "" #: lib/pychess/ic/FICSObjects.py:308 lib/pychess/ic/FICSObjects.py:492 #: lib/pychess/ic/ICLounge.py:2278 msgid "Unrated" msgstr "" #: lib/pychess/ic/FICSObjects.py:491 lib/pychess/ic/ICLounge.py:670 #: lib/pychess/ic/ICLounge.py:1358 lib/pychess/ic/ICLounge.py:1558 #: lib/pychess/ic/ICLounge.py:2113 msgid "Rated" msgstr "" #: lib/pychess/ic/FICSObjects.py:498 lib/pychess/ic/ICLounge.py:2098 #, python-format msgid "%d min" msgstr "" #: lib/pychess/ic/FICSObjects.py:500 #, python-format msgid " + %d sec" msgstr "" #: lib/pychess/ic/FICSObjects.py:517 #, python-format msgid "%(player)s plays %(color)s" msgstr "" #: lib/pychess/ic/FICSObjects.py:519 lib/pychess/ic/ICLounge.py:909 msgid "white" msgstr "" #: lib/pychess/ic/FICSObjects.py:519 lib/pychess/ic/ICLounge.py:909 msgid "black" msgstr "" #: lib/pychess/ic/FICSObjects.py:565 msgid "This is a continuation of an adjourned match" msgstr "" #: lib/pychess/ic/FICSObjects.py:654 msgid "Opponent Rating" msgstr "" #: lib/pychess/ic/FICSObjects.py:656 msgid "Manual Accept" msgstr "" #: lib/pychess/ic/FICSObjects.py:810 msgid "Private" msgstr "" #: lib/pychess/ic/FICSObjects.py:930 lib/pychess/ic/ICLounge.py:527 #: lib/pychess/Savers/epd.py:139 msgid "Unknown" msgstr "Óþekkt" #: lib/pychess/ic/ICLogon.py:159 lib/pychess/ic/ICLogon.py:165 msgid "Connection Error" msgstr "Tengingarvilla" #: lib/pychess/ic/ICLogon.py:161 msgid "Log on Error" msgstr "Innskráningarvilla" #: lib/pychess/ic/ICLogon.py:163 msgid "Connection was closed" msgstr "" #: lib/pychess/ic/ICLogon.py:169 msgid "Address Error" msgstr "" #: lib/pychess/ic/ICLogon.py:172 msgid "Auto-logout" msgstr "" #: lib/pychess/ic/ICLogon.py:173 msgid "You have been logged out because you were idle more than 60 minutes" msgstr "" #: lib/pychess/ic/ICLounge.py:222 msgid "You have to set kibitz on to see bot messages here." msgstr "" #: lib/pychess/ic/ICLounge.py:241 msgid "" "You may only have 3 outstanding seeks at the same time. If you want to add a" " new seek you must clear your currently active seeks. Clear your seeks?" msgstr "" #: lib/pychess/ic/ICLounge.py:258 msgid "You can't touch this! You are examining a game." msgstr "" #: lib/pychess/ic/ICLounge.py:270 msgid " has declined your offer for a match" msgstr "" #: lib/pychess/ic/ICLounge.py:283 msgid " is censoring you" msgstr "" #: lib/pychess/ic/ICLounge.py:296 msgid " noplay listing you" msgstr "" #: lib/pychess/ic/ICLounge.py:311 msgid " uses a formula not fitting your match request:" msgstr "" #: lib/pychess/ic/ICLounge.py:325 msgid "to manual accept" msgstr "" #: lib/pychess/ic/ICLounge.py:327 msgid "to automatic accept" msgstr "" #: lib/pychess/ic/ICLounge.py:329 msgid "rating range now" msgstr "" #: lib/pychess/ic/ICLounge.py:330 msgid "Seek updated" msgstr "" #: lib/pychess/ic/ICLounge.py:342 msgid "Your seeks have been removed" msgstr "" #: lib/pychess/ic/ICLounge.py:363 msgid " has arrived" msgstr "" #: lib/pychess/ic/ICLounge.py:370 msgid " has departed" msgstr "" #: lib/pychess/ic/ICLounge.py:374 msgid " is present" msgstr "" #: lib/pychess/ic/ICLounge.py:391 sidepanel/chatPanel.py:17 msgid "Chat" msgstr "" #: lib/pychess/ic/ICLounge.py:472 sidepanel/bookPanel.py:366 msgid "Win" msgstr "" #: lib/pychess/ic/ICLounge.py:472 sidepanel/bookPanel.py:360 msgid "Draw" msgstr "" #: lib/pychess/ic/ICLounge.py:472 sidepanel/bookPanel.py:363 msgid "Loss" msgstr "" #: lib/pychess/ic/ICLounge.py:482 msgid "" "On FICS, your \"Wild\" rating encompasses all of the following variants at " "all time controls:\n" msgstr "" #: lib/pychess/ic/ICLounge.py:494 msgid "Sanctions" msgstr "" #: lib/pychess/ic/ICLounge.py:499 msgid "Email" msgstr "Tölvupóstur" #: lib/pychess/ic/ICLounge.py:504 msgid "Spent" msgstr "" #: lib/pychess/ic/ICLounge.py:506 msgid "online in total" msgstr "" #: lib/pychess/ic/ICLounge.py:512 msgid "Ping" msgstr "" #: lib/pychess/ic/ICLounge.py:517 msgid "Connecting" msgstr "Tengist" #: lib/pychess/ic/ICLounge.py:544 msgid "" "You are currently logged in as a guest.\n" "A guest can't play rated games and therefore isn't able to play as many of the types of matches offered as a registered user. To register an account, go to http://www.freechess.org/Register/index.html." msgstr "" #: lib/pychess/ic/ICLounge.py:669 lib/pychess/ic/ICLounge.py:1136 msgid "Name" msgstr "" #: lib/pychess/ic/ICLounge.py:670 lib/pychess/ic/ICLounge.py:1358 #: lib/pychess/ic/ICLounge.py:1558 msgid "Type" msgstr "" #: lib/pychess/ic/ICLounge.py:670 lib/pychess/ic/ICLounge.py:1558 msgid "Clock" msgstr "Klukka" #: lib/pychess/ic/ICLounge.py:726 lib/pychess/ic/ICLounge.py:923 #: lib/pychess/Players/Human.py:250 msgid "Accept" msgstr "" #: lib/pychess/ic/ICLounge.py:728 msgid "Assess" msgstr "" #: lib/pychess/ic/ICLounge.py:734 msgid "Archived" msgstr "" #: lib/pychess/ic/ICLounge.py:848 #, python-format msgid "Active seeks: %d" msgstr "" #: lib/pychess/ic/ICLounge.py:897 #, python-format msgid "" " would like to resume your adjourned %(time)s %(gametype)s " "game." msgstr "" #: lib/pychess/ic/ICLounge.py:902 #, python-format msgid "" " challenges you to a %(time)s %(rated)s %(gametype)s game" msgstr "" #: lib/pychess/ic/ICLounge.py:907 #, python-format msgid " where %(player)s plays %(color)s." msgstr "" #: lib/pychess/ic/ICLounge.py:924 lib/pychess/Players/Human.py:251 msgid "Decline" msgstr "" #: lib/pychess/ic/ICLounge.py:1065 msgid " min" msgstr "" #: lib/pychess/ic/ICLounge.py:1137 msgid "Status" msgstr "" #: lib/pychess/ic/ICLounge.py:1203 lib/pychess/ic/ICLounge.py:1233 #, python-format msgid "Players: %d" msgstr "" #: lib/pychess/ic/ICLounge.py:1469 #, python-format msgid "Games running: %d" msgstr "" #: lib/pychess/ic/ICLounge.py:1559 msgid "Date/Time" msgstr "" #: lib/pychess/ic/ICLounge.py:1614 #, python-format msgid "" " with whom you have an adjourned %(timecontrol)s %(gametype)s " "game is online." msgstr "" #: lib/pychess/ic/ICLounge.py:1635 msgid "Request Continuation" msgstr "" #: lib/pychess/ic/ICLounge.py:1637 msgid "Examine Adjourned Game" msgstr "" #: lib/pychess/ic/ICLounge.py:1965 msgid "" "The chain button is disabled because you are logged in as a guest. Guests " "can't establish ratings, and the chain button's state has no effect when " "there is no rating to which to tie \"Opponent Strength\" to" msgstr "" #: lib/pychess/ic/ICLounge.py:2006 msgid "Challenge: " msgstr "" #: lib/pychess/ic/ICLounge.py:2044 msgid "If set you can refuse players accepting your seek" msgstr "" #: lib/pychess/ic/ICLounge.py:2048 lib/pychess/ic/ICLounge.py:2051 msgid "This option is not applicable because you're challenging a player" msgstr "" #: lib/pychess/ic/ICLounge.py:2064 msgid "Edit Seek: " msgstr "" #: lib/pychess/ic/ICLounge.py:2095 #, python-format msgid "%(minutes)d min + %(gain)d sec/move" msgstr "" #: lib/pychess/ic/ICLounge.py:2116 msgid "Manual" msgstr "" #: lib/pychess/ic/ICLounge.py:2256 msgid "Any strength" msgstr "" #: lib/pychess/ic/ICLounge.py:2308 msgid "You can't play rated games because you are logged in as a guest" msgstr "" #: lib/pychess/ic/ICLounge.py:2312 msgid "You can't play rated games because \"Untimed\" is checked, " msgstr "" #: lib/pychess/ic/ICLounge.py:2313 msgid "and on FICS, untimed games can't be rated" msgstr "" #: lib/pychess/ic/ICLounge.py:2317 msgid "This option is not available because you're challenging a guest, " msgstr "" #: lib/pychess/ic/ICLounge.py:2318 msgid "and guests can't play rated games" msgstr "" #: lib/pychess/ic/ICLounge.py:2332 lib/pychess/Variants/shuffle.py:16 #: lib/pychess/widgets/newGameDialog.py:266 msgid "Shuffle" msgstr "" #: lib/pychess/ic/ICLounge.py:2333 lib/pychess/widgets/newGameDialog.py:267 msgid "Other (standard rules)" msgstr "" #: lib/pychess/ic/ICLounge.py:2334 lib/pychess/widgets/newGameDialog.py:268 msgid "Other (non standard rules)" msgstr "" #: lib/pychess/ic/ICLounge.py:2421 msgid "You can't select a variant because \"Untimed\" is checked, " msgstr "" #: lib/pychess/ic/ICLounge.py:2422 msgid "and on FICS, untimed games have to be normal chess rules" msgstr "" #: lib/pychess/ic/ICLounge.py:2454 msgid "Change Tolerance" msgstr "" #: lib/pychess/ic/__init__.py:102 msgid "Examined" msgstr "" #: lib/pychess/ic/__init__.py:103 msgid "Other" msgstr "" #: lib/pychess/ic/__init__.py:182 msgid "Administrator" msgstr "" #: lib/pychess/ic/__init__.py:182 msgid "Blindfold Account" msgstr "" #: lib/pychess/ic/__init__.py:182 msgid "Computer" msgstr "" #: lib/pychess/ic/__init__.py:183 msgid "Team Account" msgstr "" #: lib/pychess/ic/__init__.py:183 msgid "Unregistered" msgstr "" #: lib/pychess/ic/__init__.py:183 msgid "Chess Advisor" msgstr "" #: lib/pychess/ic/__init__.py:184 msgid "Service Representative" msgstr "" #: lib/pychess/ic/__init__.py:184 msgid "Tournament Director" msgstr "" #: lib/pychess/ic/__init__.py:184 msgid "Mamer Manager" msgstr "" #: lib/pychess/ic/__init__.py:185 msgid "Grand Master" msgstr "" #: lib/pychess/ic/__init__.py:185 msgid "International Master" msgstr "" #: lib/pychess/ic/__init__.py:185 msgid "FIDE Master" msgstr "" #: lib/pychess/ic/__init__.py:186 msgid "Woman Grand Master" msgstr "" #: lib/pychess/ic/__init__.py:186 msgid "Woman International Master" msgstr "" #: lib/pychess/ic/__init__.py:186 msgid "Woman FIDE Master" msgstr "" #: lib/pychess/ic/__init__.py:187 msgid "Dummy Account" msgstr "" #: lib/pychess/ic/__init__.py:191 msgid "*" msgstr "" #: lib/pychess/ic/__init__.py:191 lib/pychess/Utils/repr.py:14 msgid "B" msgstr "" #: lib/pychess/ic/__init__.py:191 msgid "C" msgstr "" #: lib/pychess/ic/__init__.py:192 msgid "T" msgstr "" #: lib/pychess/ic/__init__.py:192 msgid "U" msgstr "" #: lib/pychess/ic/__init__.py:192 msgid "CA" msgstr "" #: lib/pychess/ic/__init__.py:193 msgid "SR" msgstr "" #: lib/pychess/ic/__init__.py:193 msgid "TD" msgstr "" #: lib/pychess/ic/__init__.py:193 msgid "TM" msgstr "" #: lib/pychess/ic/__init__.py:194 msgid "GM" msgstr "" #: lib/pychess/ic/__init__.py:194 msgid "IM" msgstr "" #: lib/pychess/ic/__init__.py:194 msgid "FM" msgstr "" #: lib/pychess/ic/__init__.py:195 msgid "WGM" msgstr "" #: lib/pychess/ic/__init__.py:195 msgid "WIM" msgstr "" #: lib/pychess/ic/__init__.py:195 msgid "WFM" msgstr "" #: lib/pychess/ic/__init__.py:195 msgid "D" msgstr "" #: lib/pychess/ic/__init__.py:195 msgid "H" msgstr "" #: lib/pychess/ic/__init__.py:195 msgid "CM" msgstr "" #: lib/pychess/ic/__init__.py:195 msgid "FA" msgstr "" #: lib/pychess/ic/__init__.py:195 msgid "NM" msgstr "" #: lib/pychess/Players/CECPEngine.py:857 #, python-format msgid "The engine %s reports an error:" msgstr "" #: lib/pychess/Players/Human.py:20 msgid "Your opponent has offered you a draw." msgstr "" #: lib/pychess/Players/Human.py:21 msgid "" "Your opponent has offered you a draw. If you accept this offer, the game " "will end with a score of 1/2 - 1/2." msgstr "" #: lib/pychess/Players/Human.py:23 msgid "Your opponent wants to abort the game." msgstr "" #: lib/pychess/Players/Human.py:24 msgid "" "Your opponent has asked that the game be aborted. If you accept this offer, " "the game will end with no rating change." msgstr "" #: lib/pychess/Players/Human.py:26 msgid "Your opponent wants to adjourn the game." msgstr "" #: lib/pychess/Players/Human.py:27 msgid "" "Your opponent has asked that the game be adjourned. If you accept this " "offer, the game will be adjourned and you can resume it later (when your " "opponent is online and both players agree to resume)." msgstr "" #: lib/pychess/Players/Human.py:29 #, python-format msgid "Your opponent wants to undo %s move(s)." msgstr "" #: lib/pychess/Players/Human.py:30 #, python-format msgid "" "Your opponent has asked that the last %s move(s) be undone. If you accept " "this offer, the game will continue from the earlier position." msgstr "" #: lib/pychess/Players/Human.py:32 msgid "Your opponent wants to pause the game." msgstr "" #: lib/pychess/Players/Human.py:33 msgid "" "Your opponent has asked that the game be paused. If you accept this offer, " "the game clock will be paused until both players agree to resume the game." msgstr "" #: lib/pychess/Players/Human.py:35 msgid "Your opponent wants to resume the game." msgstr "" #: lib/pychess/Players/Human.py:36 msgid "" "Your opponent has asked that the game be resumed. If you accept this offer, " "the game clock will continue from where it was paused." msgstr "" #: lib/pychess/Players/Human.py:40 msgid "The resignation" msgstr "" #: lib/pychess/Players/Human.py:41 msgid "The flag call" msgstr "" #: lib/pychess/Players/Human.py:42 msgid "The draw offer" msgstr "" #: lib/pychess/Players/Human.py:43 msgid "The abort offer" msgstr "" #: lib/pychess/Players/Human.py:44 msgid "The adjourn offer" msgstr "" #: lib/pychess/Players/Human.py:45 msgid "The pause offer" msgstr "" #: lib/pychess/Players/Human.py:46 msgid "The resume offer" msgstr "" #: lib/pychess/Players/Human.py:47 msgid "The offer to switch sides" msgstr "" #: lib/pychess/Players/Human.py:48 msgid "The takeback offer" msgstr "" #: lib/pychess/Players/Human.py:52 msgid "resign" msgstr "" #: lib/pychess/Players/Human.py:53 msgid "call your opponents flag" msgstr "" #: lib/pychess/Players/Human.py:54 msgid "offer a draw" msgstr "" #: lib/pychess/Players/Human.py:55 msgid "offer an abort" msgstr "" #: lib/pychess/Players/Human.py:56 msgid "offer to adjourn" msgstr "" #: lib/pychess/Players/Human.py:57 msgid "offer a pause" msgstr "" #: lib/pychess/Players/Human.py:58 msgid "offer to resume" msgstr "" #: lib/pychess/Players/Human.py:59 msgid "offer to switch sides" msgstr "" #: lib/pychess/Players/Human.py:60 msgid "offer a takeback" msgstr "" #: lib/pychess/Players/Human.py:61 msgid "ask your opponent to move" msgstr "" #: lib/pychess/Players/Human.py:66 msgid "Your opponent is not out of time." msgstr "Andstæðingur rann út á tíma." #: lib/pychess/Players/Human.py:68 msgid "The clock hasn't been started yet." msgstr "" #: lib/pychess/Players/Human.py:70 msgid "You can't switch colors during the game." msgstr "" #: lib/pychess/Players/Human.py:72 msgid "You have tried to undo too many moves." msgstr "" #: lib/pychess/Players/Human.py:180 msgid "Your opponent asks you to hurry!" msgstr "" #: lib/pychess/Players/Human.py:181 msgid "" "Generally this means nothing, as the game is time-based, but if you want to " "please your opponent, perhaps you should get going." msgstr "" #: lib/pychess/Players/Human.py:259 #, python-format msgid "%s was declined by your opponent" msgstr "" #: lib/pychess/Players/Human.py:260 #, python-format msgid "Resend %s?" msgstr "" #: lib/pychess/Players/Human.py:267 msgid "Resend" msgstr "" #: lib/pychess/Players/Human.py:275 #, python-format msgid "%s was withdrawn by your opponent" msgstr "" #: lib/pychess/Players/Human.py:276 msgid "Your opponent seems to have changed their mind." msgstr "" #: lib/pychess/Players/Human.py:290 #, python-format msgid "Unable to accept %s" msgstr "Get ekki tekið til baka %s" #: lib/pychess/Players/Human.py:291 msgid "Probably because it has been withdrawn." msgstr "" #: lib/pychess/Players/Human.py:298 #, python-format msgid "%s returns an error" msgstr "%s skilar villu" #: lib/pychess/Savers/chessalpha2.py:12 msgid "Chess Alpha 2 Diagram" msgstr "" #: lib/pychess/Savers/chesspastebin.py:39 msgid "Game shared at " msgstr "" #: lib/pychess/Savers/chesspastebin.py:41 msgid "(Link is available on clipboard.)" msgstr "" #: lib/pychess/Savers/database.py:19 msgid "PyChess database" msgstr "" #: lib/pychess/Savers/epd.py:12 msgid "Chess Position" msgstr "" #: lib/pychess/Savers/fen.py:12 msgid "Simple Chess Position" msgstr "" #: lib/pychess/Savers/fen.py:44 lib/pychess/Savers/pgn.py:329 msgid "The game can't be loaded, because of an error parsing FEN" msgstr "" #: lib/pychess/Savers/pgnbase.py:100 #, python-format msgid "" "The game can't be read to end, because of an error parsing move %(moveno)s " "'%(notation)s'." msgstr "" #: lib/pychess/Savers/pgnbase.py:102 #, python-format msgid "The move failed because %s." msgstr "" #: lib/pychess/Savers/pgnbase.py:110 #, python-format msgid "Error parsing move %(moveno)s %(mstr)s" msgstr "" #: lib/pychess/Savers/pgn.py:28 msgid "Chess Game" msgstr "" #: lib/pychess/Savers/pgn.py:362 msgid "Invalid move." msgstr "" #: lib/pychess/Savers/png.py:15 msgid "Png image" msgstr "" #: lib/pychess/System/ping.py:31 msgid "Destination Host Unreachable" msgstr "" #: lib/pychess/System/ping.py:74 msgid "Died" msgstr "" #: lib/pychess/Utils/GameModel.py:147 msgid "Local Event" msgstr "" #: lib/pychess/Utils/GameModel.py:148 msgid "Local Site" msgstr "" #: lib/pychess/Utils/repr.py:12 msgid "Pawn" msgstr "" #: lib/pychess/Utils/repr.py:14 msgid "P" msgstr "" #: lib/pychess/Utils/repr.py:14 msgid "N" msgstr "" #: lib/pychess/Utils/repr.py:14 msgid "R" msgstr "" #: lib/pychess/Utils/repr.py:14 msgid "Q" msgstr "" #: lib/pychess/Utils/repr.py:14 msgid "K" msgstr "" #: lib/pychess/Utils/repr.py:17 msgid "The game ended in a draw" msgstr "Leikurinn hefur endað í jafntefli" #: lib/pychess/Utils/repr.py:18 #, python-format msgid "%(white)s won the game" msgstr "" #: lib/pychess/Utils/repr.py:19 #, python-format msgid "%(black)s won the game" msgstr "" #: lib/pychess/Utils/repr.py:20 msgid "The game has been killed" msgstr "" #: lib/pychess/Utils/repr.py:21 msgid "The game has been adjourned" msgstr "" #: lib/pychess/Utils/repr.py:22 msgid "The game has been aborted" msgstr "" #: lib/pychess/Utils/repr.py:26 msgid "Because neither player has sufficient material to mate" msgstr "" #: lib/pychess/Utils/repr.py:27 msgid "Because the same position was repeated three times in a row" msgstr "" #: lib/pychess/Utils/repr.py:28 msgid "Because the last 50 moves brought nothing new" msgstr "" #: lib/pychess/Utils/repr.py:29 msgid "Because both players ran out of time" msgstr "" #: lib/pychess/Utils/repr.py:30 #, python-format msgid "Because %(mover)s stalemated" msgstr "" #: lib/pychess/Utils/repr.py:31 msgid "Because both players agreed to a draw" msgstr "" #: lib/pychess/Utils/repr.py:32 lib/pychess/Utils/repr.py:42 msgid "Because of adjudication by an admin" msgstr "" #: lib/pychess/Utils/repr.py:33 msgid "Because the game exceed the max length" msgstr "" #: lib/pychess/Utils/repr.py:34 #, python-format msgid "" "Because %(white)s ran out of time and %(black)s has insufficient material to" " mate" msgstr "" #: lib/pychess/Utils/repr.py:35 #, python-format msgid "" "Because %(black)s ran out of time and %(white)s has insufficient material to" " mate" msgstr "" #: lib/pychess/Utils/repr.py:36 msgid "Because both players have the same amount of pieces" msgstr "" #: lib/pychess/Utils/repr.py:38 #, python-format msgid "Because %(loser)s resigned" msgstr "" #: lib/pychess/Utils/repr.py:39 #, python-format msgid "Because %(loser)s ran out of time" msgstr "" #: lib/pychess/Utils/repr.py:40 #, python-format msgid "Because %(loser)s was checkmated" msgstr "" #: lib/pychess/Utils/repr.py:41 #, python-format msgid "Because %(loser)s disconnected" msgstr "" #: lib/pychess/Utils/repr.py:43 #, python-format msgid "Because %(winner)s has fewer pieces" msgstr "" #: lib/pychess/Utils/repr.py:44 #, python-format msgid "Because %(winner)s lost all pieces" msgstr "" #: lib/pychess/Utils/repr.py:45 #, python-format msgid "Because %(loser)s king exploded" msgstr "" #: lib/pychess/Utils/repr.py:46 #, python-format msgid "Because %(winner)s king reached the center" msgstr "" #: lib/pychess/Utils/repr.py:47 #, python-format msgid "Because %(winner)s was giving check 3 times" msgstr "" #: lib/pychess/Utils/repr.py:49 msgid "Because a player lost connection" msgstr "" #: lib/pychess/Utils/repr.py:50 msgid "Because both players agreed to an adjournment" msgstr "" #: lib/pychess/Utils/repr.py:51 msgid "Because the server was shut down" msgstr "" #: lib/pychess/Utils/repr.py:52 msgid "" "Because a player lost connection and the other player requested adjournment" msgstr "" #: lib/pychess/Utils/repr.py:53 #, python-format msgid "" "Because %(black)s lost connection to the server and %(white)s requested " "adjournment" msgstr "" #: lib/pychess/Utils/repr.py:54 #, python-format msgid "" "Because %(white)s lost connection to the server and %(black)s requested " "adjournment" msgstr "" #: lib/pychess/Utils/repr.py:55 #, python-format msgid "Because %(white)s lost connection to the server" msgstr "" #: lib/pychess/Utils/repr.py:56 #, python-format msgid "Because %(black)s lost connection to the server" msgstr "" #: lib/pychess/Utils/repr.py:58 msgid "Because of adjudication by an admin. No rating changes have occurred." msgstr "" #: lib/pychess/Utils/repr.py:59 msgid "" "Because both players agreed to abort the game. No rating changes have " "occurred." msgstr "" #: lib/pychess/Utils/repr.py:60 msgid "Because of courtesy by a player. No rating changes have occurred." msgstr "" #: lib/pychess/Utils/repr.py:61 msgid "" "Because a player aborted the game. Either player can abort the game without " "the other's consent before the second move. No rating changes have occurred." msgstr "" #: lib/pychess/Utils/repr.py:62 msgid "" "Because a player disconnected and there are too few moves to warrant " "adjournment. No rating changes have occurred." msgstr "" #: lib/pychess/Utils/repr.py:63 msgid "Because the server was shut down. No rating changes have occurred." msgstr "" #: lib/pychess/Utils/repr.py:65 #, python-format msgid "Because the %(white)s engine died" msgstr "" #: lib/pychess/Utils/repr.py:66 #, python-format msgid "Because the %(black)s engine died" msgstr "" #: lib/pychess/Utils/repr.py:67 msgid "Because the connection to the server was lost" msgstr "" #: lib/pychess/Utils/repr.py:68 msgid "The reason is unknown" msgstr "" #: lib/pychess/Utils/TimeModel.py:229 msgid "min" msgstr "" #: lib/pychess/Utils/TimeModel.py:231 msgid "sec" msgstr "" #: lib/pychess/Variants/asean.py:12 msgid "" "ASEAN: http://www.ncf-" "phil.org/downloadables/2014/May/Asean_chess/Laws_of_ASEAN_Chess_2011_Nov_26.doc" msgstr "" #: lib/pychess/Variants/asean.py:13 msgid "ASEAN" msgstr "" #: lib/pychess/Variants/asean.py:33 msgid "Makruk: http://en.wikipedia.org/wiki/Makruk" msgstr "" #: lib/pychess/Variants/asean.py:34 msgid "Makruk" msgstr "" #: lib/pychess/Variants/asean.py:60 msgid "Cambodian: http://www.khmerinstitute.org/culture/ok.html" msgstr "" #: lib/pychess/Variants/asean.py:61 msgid "Cambodian" msgstr "" #: lib/pychess/Variants/asean.py:86 msgid "" "Ai-Wok: http://www.open-" "aurec.com/wbforum/viewtopic.php?p=199364&sid=20963a1de2c164050de019e5ed6bf7c4#p199364" msgstr "" #: lib/pychess/Variants/asean.py:87 msgid "Ai-Wok" msgstr "" #: lib/pychess/Variants/asean.py:111 msgid "Sittuyin: http://en.wikipedia.org/wiki/Sittuyin" msgstr "" #: lib/pychess/Variants/asean.py:112 msgid "Sittuyin" msgstr "" #: lib/pychess/Variants/asymmetricrandom.py:12 msgid "" "FICS wild/4: http://www.freechess.org/Help/HelpFiles/wild.html\n" "* Randomly chosen pieces (two queens or three rooks possible)\n" "* Exactly one king of each color\n" "* Pieces placed randomly behind the pawns, SUBJECT TO THE CONSTRAINT THAT THE BISHOPS ARE BALANCED\n" "* No castling\n" "* Black's arrangement DOES NOT mirrors white's" msgstr "" #: lib/pychess/Variants/asymmetricrandom.py:18 msgid "Asymmetric Random" msgstr "" #: lib/pychess/Variants/atomic.py:14 msgid "FICS atomic: http://www.freechess.org/Help/HelpFiles/atomic.html" msgstr "" #: lib/pychess/Variants/blindfold.py:7 msgid "" "Classic chess rules with hidden figurines\n" "http://en.wikipedia.org/wiki/Blindfold_chess" msgstr "" #: lib/pychess/Variants/blindfold.py:9 #: lib/pychess/widgets/newGameDialog.py:264 msgid "Blindfold" msgstr "" #: lib/pychess/Variants/blindfold.py:18 msgid "" "Classic chess rules with hidden pawns\n" "http://en.wikipedia.org/wiki/Blindfold_chess" msgstr "" #: lib/pychess/Variants/blindfold.py:20 msgid "Hidden pawns" msgstr "" #: lib/pychess/Variants/blindfold.py:29 msgid "" "Classic chess rules with hidden pieces\n" "http://en.wikipedia.org/wiki/Blindfold_chess" msgstr "" #: lib/pychess/Variants/blindfold.py:31 msgid "Hidden pieces" msgstr "" #: lib/pychess/Variants/blindfold.py:40 msgid "" "Classic chess rules with all pieces white\n" "http://en.wikipedia.org/wiki/Blindfold_chess" msgstr "" #: lib/pychess/Variants/blindfold.py:42 msgid "All white" msgstr "" #: lib/pychess/Variants/bughouse.py:8 msgid "FICS bughouse: http://www.freechess.org/Help/HelpFiles/bughouse.html" msgstr "" #: lib/pychess/Variants/corner.py:12 msgid "" "http://brainking.com/en/GameRules?tp=2\n" "* Placement of the pieces on the 1st and 8th row are randomized\n" "* The king is in the right hand corner\n" "* Bishops must start on opposite color squares\n" "* Black's starting position is obtained by rotating white's position 180 degrees around the board's center\n" "* No castling" msgstr "" #: lib/pychess/Variants/corner.py:18 msgid "Corner" msgstr "" #: lib/pychess/Variants/crazyhouse.py:8 msgid "" "FICS crazyhouse: http://www.freechess.org/Help/HelpFiles/crazyhouse.html" msgstr "" #: lib/pychess/Variants/euroshogi.py:9 msgid "EuroShogi: http://en.wikipedia.org/wiki/EuroShogi" msgstr "" #: lib/pychess/Variants/euroshogi.py:10 msgid "EuroShogi" msgstr "" #: lib/pychess/Variants/fischerandom.py:18 msgid "" "http://en.wikipedia.org/wiki/Chess960\n" "FICS wild/fr: http://www.freechess.org/Help/HelpFiles/wild.html" msgstr "" #: lib/pychess/Variants/fischerandom.py:20 msgid "Fischer Random" msgstr "" #: lib/pychess/Variants/kingofthehill.py:8 msgid "" "Bringing your king legally to the center (e4, d4, e5, d5) instantly wins the game!\n" "Normal rules apply in other cases and checkmate also ends the game." msgstr "" #: lib/pychess/Variants/kingofthehill.py:10 msgid "King of the hill" msgstr "" #: lib/pychess/Variants/knightodds.py:8 msgid "One player starts with one less knight piece" msgstr "" #: lib/pychess/Variants/knightodds.py:9 msgid "Knight odds" msgstr "" #: lib/pychess/Variants/losers.py:8 msgid "FICS losers: http://www.freechess.org/Help/HelpFiles/losers_chess.html" msgstr "" #: lib/pychess/Variants/normal.py:4 msgid "" "Classic chess rules\n" "http://en.wikipedia.org/wiki/Chess" msgstr "" #: lib/pychess/Variants/normal.py:6 lib/pychess/widgets/newGameDialog.py:157 msgid "Normal" msgstr "Venjulegt" #: lib/pychess/Variants/pawnodds.py:8 msgid "One player starts with one less pawn piece" msgstr "" #: lib/pychess/Variants/pawnodds.py:9 msgid "Pawn odds" msgstr "" #: lib/pychess/Variants/pawnspassed.py:11 msgid "" "FICS wild/8a: http://www.freechess.org/Help/HelpFiles/wild.html\n" "White pawns start on 5th rank and black pawns on the 4th rank" msgstr "" #: lib/pychess/Variants/pawnspassed.py:13 msgid "Pawns Passed" msgstr "" #: lib/pychess/Variants/pawnspushed.py:10 msgid "" "FICS wild/8: http://www.freechess.org/Help/HelpFiles/wild.html\n" "Pawns start on 4th and 5th ranks rather than 2nd and 7th" msgstr "" #: lib/pychess/Variants/pawnspushed.py:12 msgid "Pawns Pushed" msgstr "" #: lib/pychess/Variants/queenodds.py:8 msgid "One player starts with one less queen piece" msgstr "" #: lib/pychess/Variants/queenodds.py:9 msgid "Queen odds" msgstr "" #: lib/pychess/Variants/randomchess.py:11 msgid "" "FICS wild/3: http://www.freechess.org/Help/HelpFiles/wild.html\n" "* Randomly chosen pieces (two queens or three rooks possible)\n" "* Exactly one king of each color\n" "* Pieces placed randomly behind the pawns\n" "* No castling\n" "* Black's arrangement mirrors white's" msgstr "" #: lib/pychess/Variants/randomchess.py:17 #: lib/pychess/widgets/TaskerManager.py:155 msgid "Random" msgstr "" #: lib/pychess/Variants/rookodds.py:8 msgid "One player starts with one less rook piece" msgstr "" #: lib/pychess/Variants/rookodds.py:9 msgid "Rook odds" msgstr "" #: lib/pychess/Variants/shuffle.py:11 msgid "" "xboard nocastle: http://home.hccnet.nl/h.g.muller/engine-intf.html#8\n" "FICS wild/2: http://www.freechess.org/Help/HelpFiles/wild.html\n" "* Random arrangement of the pieces behind the pawns\n" "* No castling\n" "* Black's arrangement mirrors white's" msgstr "" #: lib/pychess/Variants/suicide.py:11 msgid "" "FICS suicide: http://www.freechess.org/Help/HelpFiles/suicide_chess.html" msgstr "" #: lib/pychess/Variants/theban.py:10 msgid "" "Variant developed by Kai Laskos: " "http://talkchess.com/forum/viewtopic.php?t=40990" msgstr "" #: lib/pychess/Variants/theban.py:11 msgid "Theban" msgstr "" #: lib/pychess/Variants/threecheck.py:10 msgid "Win by giving check 3 times" msgstr "" #: lib/pychess/Variants/threecheck.py:11 msgid "Three-check" msgstr "" #: lib/pychess/Variants/upsidedown.py:10 msgid "" "FICS wild/5: http://www.freechess.org/Help/HelpFiles/wild.html\n" "http://en.wikipedia.org/wiki/Chess_variant#Chess_with_different_starting_positions\n" "Pawns start on their 7th rank rather than their 2nd rank!" msgstr "" #: lib/pychess/Variants/upsidedown.py:13 msgid "Upside Down" msgstr "" #: lib/pychess/Variants/wildcastle.py:10 msgid "" "xboard wildcastle http://home.hccnet.nl/h.g.muller/engine-intf.html#8\n" "FICS wild/0: http://www.freechess.org/Help/HelpFiles/wild.html\n" "* White has the typical set-up at the start.\n" "* Black's pieces are the same, except that the King and Queen are reversed,\n" "* so they are not on the same files as White's King and Queen.\n" "* Castling is done similarly to normal chess:\n" "* o-o-o indicates long castling and o-o short castling." msgstr "" #: lib/pychess/Variants/wildcastle.py:17 msgid "Wildcastle" msgstr "" #: lib/pychess/Variants/wildcastleshuffle.py:11 msgid "" "xboard wildcastle http://home.hccnet.nl/h.g.muller/engine-intf.html#8\n" "FICS wild/1: http://www.freechess.org/Help/HelpFiles/wild.html\n" "* In this variant both sides have the same set of pieces as in normal chess.\n" "* The white king starts on d1 or e1 and the black king starts on d8 or e8,\n" "* and the rooks are in their usual positions.\n" "* Bishops are always on opposite colors.\n" "* Subject to these constraints the position of the pieces on their first ranks is random.\n" "* Castling is done similarly to normal chess:\n" "* o-o-o indicates long castling and o-o short castling." msgstr "" #: lib/pychess/Variants/wildcastleshuffle.py:20 msgid "Wildcastle shuffle" msgstr "" #: lib/pychess/widgets/analyzegameDialog.py:85 msgid "Game analyzing in progress..." msgstr "" #: lib/pychess/widgets/analyzegameDialog.py:86 msgid "Do you want to abort it?" msgstr "" #: lib/pychess/widgets/analyzegameDialog.py:95 #: lib/pychess/widgets/gamewidget.py:202 lib/pychess/widgets/gamewidget.py:320 msgid "Abort" msgstr "" #: lib/pychess/widgets/ChatView.py:125 msgid "Observers" msgstr "" #: lib/pychess/widgets/ChatWindow.py:222 msgid "You have opened no conversations yet" msgstr "" #: lib/pychess/widgets/ChatWindow.py:254 msgid "Only registered users may talk to this channel" msgstr "" #: lib/pychess/widgets/ChatWindow.py:312 msgid "No conversation's selected" msgstr "" #: lib/pychess/widgets/ChatWindow.py:350 msgid "Loading player data" msgstr "" #: lib/pychess/widgets/ChatWindow.py:400 msgid "Receiving list of players" msgstr "" #: lib/pychess/widgets/ChatWindow.py:518 msgid "Friends" msgstr "" #: lib/pychess/widgets/ChatWindow.py:529 msgid "Admin" msgstr "" #: lib/pychess/widgets/ChatWindow.py:540 msgid "More channels" msgstr "" #: lib/pychess/widgets/ChatWindow.py:548 msgid "More players" msgstr "" #: lib/pychess/widgets/ChatWindow.py:558 msgid "Computers" msgstr "" #: lib/pychess/widgets/ChatWindow.py:568 msgid "BlindFold" msgstr "" #: lib/pychess/widgets/ChatWindow.py:578 msgid "Guests" msgstr "" #: lib/pychess/widgets/ChatWindow.py:805 msgid "Conversations" msgstr "" #: lib/pychess/widgets/ChatWindow.py:807 msgid "Conversation info" msgstr "" #: lib/pychess/widgets/enginesDialog.py:152 msgid "Select engine" msgstr "" #: lib/pychess/widgets/enginesDialog.py:156 msgid "Executable files" msgstr "" #: lib/pychess/widgets/enginesDialog.py:176 #: lib/pychess/widgets/enginesDialog.py:210 #: lib/pychess/widgets/enginesDialog.py:235 #, python-format msgid "Unable to add %s" msgstr "" #: lib/pychess/widgets/enginesDialog.py:177 msgid "wine not installed" msgstr "" #: lib/pychess/widgets/enginesDialog.py:211 #: lib/pychess/widgets/enginesDialog.py:236 msgid "There is something wrong with this executable" msgstr "" #: lib/pychess/widgets/enginesDialog.py:266 msgid "Select working directory" msgstr "" #: lib/pychess/widgets/gamenanny.py:115 #, python-format msgid " invalid engine move: %s" msgstr "" #: lib/pychess/widgets/gamenanny.py:134 msgid "Offer Rematch" msgstr "" #: lib/pychess/widgets/gamenanny.py:136 lib/pychess/widgets/gamenanny.py:147 #, python-format msgid "Observe %s" msgstr "" #: lib/pychess/widgets/gamenanny.py:168 msgid "Play Rematch" msgstr "" #: lib/pychess/widgets/gamenanny.py:171 msgid "Undo one move" msgstr "" #: lib/pychess/widgets/gamenanny.py:173 msgid "Undo two moves" msgstr "" #: lib/pychess/widgets/gamenanny.py:203 msgid "The game is paused" msgstr "" #: lib/pychess/widgets/gamenanny.py:221 lib/pychess/widgets/gamenanny.py:222 msgid "Loaded game" msgstr "" #: lib/pychess/widgets/gamenanny.py:228 msgid "Saved game" msgstr "" #: lib/pychess/widgets/gamenanny.py:232 msgid "Analyzer started" msgstr "" #: lib/pychess/widgets/gamenanny.py:281 msgid "You sent an abort offer" msgstr "" #: lib/pychess/widgets/gamenanny.py:283 msgid "You sent an adjournment offer" msgstr "" #: lib/pychess/widgets/gamenanny.py:285 msgid "You sent a draw offer" msgstr "" #: lib/pychess/widgets/gamenanny.py:287 msgid "You sent a pause offer" msgstr "" #: lib/pychess/widgets/gamenanny.py:289 msgid "You sent a resume offer" msgstr "" #: lib/pychess/widgets/gamenanny.py:291 msgid "You sent an undo offer" msgstr "" #: lib/pychess/widgets/gamenanny.py:293 msgid "You asked your opponent to move" msgstr "" #: lib/pychess/widgets/gamenanny.py:305 #, python-format msgid "Engine, %s, has died" msgstr "" #: lib/pychess/widgets/gamenanny.py:306 msgid "" "PyChess has lost connection to the engine, probably because it has died.\n" "\n" "You can try to start a new game with the engine, or try to play against another one." msgstr "" #: lib/pychess/widgets/gamewidget.py:204 msgid "" "This game can be automatically aborted without rating loss because there has" " not yet been two moves made" msgstr "" #: lib/pychess/widgets/gamewidget.py:206 msgid "Offer Abort" msgstr "" #: lib/pychess/widgets/gamewidget.py:208 msgid "" "Your opponent must agree to abort the game because there has been two or " "more moves made" msgstr "" #: lib/pychess/widgets/gamewidget.py:226 msgid "This game can not be adjourned because one or both players are guests" msgstr "" #: lib/pychess/widgets/gamewidget.py:243 msgid "Claim Draw" msgstr "" #: lib/pychess/widgets/gamewidget.py:325 msgid "Pause" msgstr "" #: lib/pychess/widgets/gamewidget.py:326 msgid "Resume" msgstr "" #: lib/pychess/widgets/gamewidget.py:328 msgid "Offer Pause" msgstr "" #: lib/pychess/widgets/gamewidget.py:329 msgid "Offer Resume" msgstr "" #: lib/pychess/widgets/gamewidget.py:333 msgid "Undo" msgstr "" #: lib/pychess/widgets/gamewidget.py:335 msgid "Offer Undo" msgstr "" #: lib/pychess/widgets/gamewidget.py:550 msgid " has lagged for 30 seconds" msgstr "" #: lib/pychess/widgets/gamewidget.py:566 msgid " is lagging heavily but hasn't disconnected" msgstr "" #: lib/pychess/widgets/gamewidget.py:567 msgid "Continue to wait for opponent, or try to adjourn the game?" msgstr "" #: lib/pychess/widgets/gamewidget.py:575 msgid "Wait" msgstr "" #: lib/pychess/widgets/gamewidget.py:576 msgid "Adjourn" msgstr "" #: lib/pychess/widgets/gamewidget.py:648 msgid "Jump to initial position" msgstr "" #: lib/pychess/widgets/gamewidget.py:653 msgid "Step back one move" msgstr "" #: lib/pychess/widgets/gamewidget.py:658 msgid "Go back to the main line" msgstr "" #: lib/pychess/widgets/gamewidget.py:664 msgid "Step forward one move" msgstr "" #: lib/pychess/widgets/gamewidget.py:669 msgid "Jump to latest position" msgstr "" #: lib/pychess/widgets/gamewidget.py:903 msgid "PyChess was unable to load your panel settings" msgstr "" #: lib/pychess/widgets/gamewidget.py:904 msgid "" "Your panel settings have been reset. If this problem repeats, you should " "report it to the developers" msgstr "" #: lib/pychess/widgets/ionest.py:67 lib/pychess/widgets/newGameDialog.py:389 #: lib/pychess/widgets/TaskerManager.py:210 msgid "You" msgstr "" #: lib/pychess/widgets/ionest.py:70 lib/pychess/widgets/newGameDialog.py:390 #: lib/pychess/widgets/preferencesDialog.py:61 #: lib/pychess/widgets/TaskerManager.py:213 msgid "Guest" msgstr "Gestur" #: lib/pychess/widgets/ionest.py:93 msgid "Error loading game" msgstr "" #: lib/pychess/widgets/ionest.py:127 lib/pychess/widgets/newGameDialog.py:480 msgid "Open Game" msgstr "Opna Leik" #: lib/pychess/widgets/ionest.py:137 msgid "All Files" msgstr "Allar skrár" #: lib/pychess/widgets/ionest.py:140 msgid "Detect type automatically" msgstr "" #: lib/pychess/widgets/ionest.py:146 msgid "All Chess Files" msgstr "" #: lib/pychess/widgets/ionest.py:228 msgid "Save Game" msgstr "Vista leik" #: lib/pychess/widgets/ionest.py:228 msgid "Export position" msgstr "" #: lib/pychess/widgets/ionest.py:232 lib/pychess/widgets/ionest.py:360 msgid "vs." msgstr "" #: lib/pychess/widgets/ionest.py:249 #, python-format msgid "Unknown file type '%s'" msgstr "" #: lib/pychess/widgets/ionest.py:250 #, python-format msgid "" "Was unable to save '%(uri)s' as PyChess doesn't know the format " "'%(ending)s'." msgstr "" #: lib/pychess/widgets/ionest.py:266 #, python-format msgid "Unable to save file '%s'" msgstr "Get ekki vistað skrá '%s'" #: lib/pychess/widgets/ionest.py:268 msgid "" "You don't have the necessary rights to save the file.\n" "Please ensure that you have given the right path and try again." msgstr "" #: lib/pychess/widgets/ionest.py:276 msgid "_Replace" msgstr "_Skipta út" #: lib/pychess/widgets/ionest.py:280 msgid "File exists" msgstr "Skráin er þegar til" #: lib/pychess/widgets/ionest.py:282 #, python-format msgid "" "A file named '%s' already exists. Would you like to replace " "it?" msgstr "" #: lib/pychess/widgets/ionest.py:283 #, python-format msgid "" "The file already exists in '%s'. If you replace it, its content will be " "overwritten." msgstr "" #: lib/pychess/widgets/ionest.py:299 msgid "Could not save the file" msgstr "Gat ekki vistað skrá" #: lib/pychess/widgets/ionest.py:300 msgid "PyChess was not able to save the game" msgstr "PyChess gat ekki vistað leikinn" #: lib/pychess/widgets/ionest.py:301 #, python-format msgid "The error was: %s" msgstr "Villan var: %s" #: lib/pychess/widgets/ionest.py:325 #, python-format msgid "There is %d game with unsaved moves." msgid_plural "There are %d games with unsaved moves." msgstr[0] "" msgstr[1] "" #: lib/pychess/widgets/ionest.py:328 msgid "Save moves before closing?" msgstr "" #: lib/pychess/widgets/ionest.py:339 msgid "Unable to save to configured file. Save the games before closing?" msgstr "" #: lib/pychess/widgets/ionest.py:366 #, python-format msgid "_Save %d document" msgid_plural "_Save %d documents" msgstr[0] "" msgstr[1] "" #: lib/pychess/widgets/ionest.py:412 msgid "Save the current game before you close it?" msgstr "" #: lib/pychess/widgets/ionest.py:420 msgid "" "Unable to save to configured file. Save the current game before you close " "it?" msgstr "" #: lib/pychess/widgets/ionest.py:434 msgid "" "It is not possible later to continue the game,\n" "if you don't save it." msgstr "" #: lib/pychess/widgets/LogDialog.py:26 msgid "PyChess Information Window" msgstr "" #: lib/pychess/widgets/LogDialog.py:184 lib/pychess/widgets/LogDialog.py:188 msgid "of" msgstr "" #: lib/pychess/widgets/newGameDialog.py:84 #: lib/pychess/widgets/newGameDialog.py:85 msgid "Human Being" msgstr "Mannvera" #: lib/pychess/widgets/newGameDialog.py:155 msgid "Rapid" msgstr "" #: lib/pychess/widgets/newGameDialog.py:224 msgid "Minutes:" msgstr "" #: lib/pychess/widgets/newGameDialog.py:228 msgid "Gain:" msgstr "" #: lib/pychess/widgets/newGameDialog.py:241 #, python-format msgid "%(name)s %(minutes)d min + %(gain)d sec/move" msgstr "" #: lib/pychess/widgets/newGameDialog.py:244 #, python-format msgid "%(name)s %(minutes)d min %(gain)d sec/move" msgstr "" #: lib/pychess/widgets/newGameDialog.py:247 #, python-format msgid "%(name)s %(minutes)d min" msgstr "" #: lib/pychess/widgets/newGameDialog.py:265 msgid "Odds" msgstr "" #: lib/pychess/widgets/newGameDialog.py:269 msgid "Asian variants" msgstr "" #: lib/pychess/widgets/newGameDialog.py:301 msgid " chess" msgstr "" #: lib/pychess/widgets/newGameDialog.py:682 msgid "Type or paste PGN game or FEN positions here" msgstr "" #: lib/pychess/widgets/newGameDialog.py:725 msgid "Enter Game" msgstr "" #: lib/pychess/widgets/preferencesDialog.py:123 msgid "Select book file" msgstr "" #: lib/pychess/widgets/preferencesDialog.py:128 msgid "Opening books" msgstr "" #: lib/pychess/widgets/preferencesDialog.py:156 msgid "Select Gaviota TB path" msgstr "" #: lib/pychess/widgets/preferencesDialog.py:331 msgid "Open Sound File" msgstr "" #: lib/pychess/widgets/preferencesDialog.py:341 msgid "Sound files" msgstr "" #: lib/pychess/widgets/preferencesDialog.py:485 msgid "Undescribed panel" msgstr "" #: lib/pychess/widgets/preferencesDialog.py:678 msgid "Select auto save path" msgstr "" #: lib/pychess/widgets/tipOfTheDay.py:51 msgid "" "You can start a new game by Game > New Game, in New Game " "window do you can choose Players, Time Control and Chess " "Variants." msgstr "" #: lib/pychess/widgets/tipOfTheDay.py:52 msgid "" "You can choose from 20 different difficulties to play against the computer." msgstr "" #: lib/pychess/widgets/tipOfTheDay.py:53 msgid "" "Chess Variants are like the pieces of the last line will be placed on the " "board." msgstr "" #: lib/pychess/widgets/tipOfTheDay.py:54 msgid "" "To save a game Game > Save Game As, give the filename and " "choose where you want to be saved. At the bottom choose extension type of " "the file, and Save." msgstr "" #: lib/pychess/widgets/tipOfTheDay.py:55 msgid "" "Do you know that you can call flag when the clock is with you, " "Actions > Call Flag." msgstr "" #: lib/pychess/widgets/tipOfTheDay.py:56 msgid "Pressing Ctrl+Z to offer opponent the possible rollback moves." msgstr "" #: lib/pychess/widgets/tipOfTheDay.py:57 msgid "" "To play on Fullscreen mode, just type F11. Coming back, F11 " "again." msgstr "" #: lib/pychess/widgets/tipOfTheDay.py:58 msgid "Hint mode analyzing your game, enable this type Ctrl+H." msgstr "" #: lib/pychess/widgets/tipOfTheDay.py:59 msgid "" "Spy mode analyzing the oponnent game, enable this type Ctrl+Y." msgstr "" #: lib/pychess/widgets/tipOfTheDay.py:60 msgid "" "You can play chess listening to the sounds of the game, for that, " "Settings > Preferences > Sound tab, enable Use " "sounds in PyChess and choose your preferred sounds." msgstr "" #: lib/pychess/widgets/tipOfTheDay.py:61 msgid "" "Do you know that you can help translate Pychess in your language, " "Help > Translate Pychess." msgstr "" #: lib/pychess/widgets/tipOfTheDay.py:62 msgid "" "Do you know that it is possible to finish a chess game in just 2 turns?" msgstr "" #: lib/pychess/widgets/tipOfTheDay.py:63 msgid "" "Do you know that the number of possible chess games exceeds the number of " "atoms in the Universe?" msgstr "" #: lib/pychess/ic/managers/ChatManager.py:184 msgid "Shout" msgstr "" #: lib/pychess/ic/managers/ChatManager.py:185 msgid "Chess Shout" msgstr "" #: lib/pychess/ic/managers/ChatManager.py:195 #, python-format msgid "Unofficial channel %d" msgstr "" #: lib/pychess/Utils/lutils/LBoard.py:152 #, python-format msgid "" "FEN needs 6 data fields. \n" "\n" "%s" msgstr "" #: lib/pychess/Utils/lutils/LBoard.py:154 #, python-format msgid "" "FEN needs at least 2 data fields in fenstr. \n" "\n" "%s" msgstr "" #: lib/pychess/Utils/lutils/LBoard.py:175 #, python-format msgid "" "Needs 7 slashes in piece placement field. \n" "\n" "%s" msgstr "" #: lib/pychess/Utils/lutils/LBoard.py:178 #, python-format msgid "" "Active color field must be one of w or b. \n" "\n" "%s" msgstr "" #: lib/pychess/Utils/lutils/LBoard.py:189 #, python-format msgid "" "Castling availability field is not legal. \n" "\n" "%s" msgstr "" #: lib/pychess/Utils/lutils/LBoard.py:192 #, python-format msgid "" "En passant cord is not legal. \n" "\n" "%s" msgstr "" #: lib/pychess/Utils/lutils/lmove.py:260 msgid "invalid promoted piece" msgstr "" #: lib/pychess/Utils/lutils/lmove.py:272 msgid "the move needs a piece and a cord" msgstr "" #: lib/pychess/Utils/lutils/lmove.py:306 lib/pychess/Utils/lutils/lmove.py:556 msgid "promotion move without promoted piece is incorrect" msgstr "" #: lib/pychess/Utils/lutils/lmove.py:312 #, python-format msgid "the captured cord (%s) is incorrect" msgstr "" #: lib/pychess/Utils/lutils/lmove.py:323 #, python-format msgid "the end cord (%s) is incorrect" msgstr "" #: lib/pychess/Utils/lutils/strateval.py:24 sidepanel/commentPanel.py:191 #: sidepanel/commentPanel.py:208 msgid "and" msgstr "" #: lib/pychess/Utils/lutils/strateval.py:43 msgid "draws" msgstr "jafntefli" #: lib/pychess/Utils/lutils/strateval.py:45 msgid "mates" msgstr "" #: lib/pychess/Utils/lutils/strateval.py:49 msgid "puts opponent in check" msgstr "" #: lib/pychess/Utils/lutils/strateval.py:73 msgid "improves king safety" msgstr "bætir öryggi kóngsins" #: lib/pychess/Utils/lutils/strateval.py:75 msgid "slightly improves king safety" msgstr "" #: lib/pychess/Utils/lutils/strateval.py:108 msgid "moves a rook to an open file" msgstr "" #: lib/pychess/Utils/lutils/strateval.py:109 msgid "moves an rook to a half-open file" msgstr "" #: lib/pychess/Utils/lutils/strateval.py:119 #: lib/pychess/Utils/lutils/strateval.py:121 #: lib/pychess/Utils/lutils/strateval.py:124 #: lib/pychess/Utils/lutils/strateval.py:126 #, python-format msgid "moves bishop into fianchetto: %s" msgstr "" #: lib/pychess/Utils/lutils/strateval.py:132 #, python-format msgid "promotes a Pawn to a %s" msgstr "" #: lib/pychess/Utils/lutils/strateval.py:135 msgid "castles" msgstr "" #: lib/pychess/Utils/lutils/strateval.py:158 msgid "takes back material" msgstr "" #: lib/pychess/Utils/lutils/strateval.py:162 #: lib/pychess/Utils/lutils/strateval.py:170 msgid "sacrifies material" msgstr "" #: lib/pychess/Utils/lutils/strateval.py:164 msgid "exchanges material" msgstr "" #: lib/pychess/Utils/lutils/strateval.py:166 msgid "captures material" msgstr "" #: lib/pychess/Utils/lutils/strateval.py:291 #, python-format msgid "rescues a %s" msgstr "" #: lib/pychess/Utils/lutils/strateval.py:294 #, python-format msgid "threatens to win material by %s" msgstr "" #: lib/pychess/Utils/lutils/strateval.py:296 #, python-format msgid "increases the pressure on %s" msgstr "" #: lib/pychess/Utils/lutils/strateval.py:298 #, python-format msgid "defends %s" msgstr "ver %s" #: lib/pychess/Utils/lutils/strateval.py:336 #, python-format msgid "pins an enemy %(oppiece)s on the %(piece)s at %(cord)s" msgstr "" #: lib/pychess/Utils/lutils/strateval.py:369 #, python-format msgid "White has a new piece in outpost: %s" msgstr "" #: lib/pychess/Utils/lutils/strateval.py:377 #, python-format msgid "Black has a new piece in outpost: %s" msgstr "" #: lib/pychess/Utils/lutils/strateval.py:416 #, python-format msgid "%(color)s has a new passed pawn on %(cord)s" msgstr "" #: lib/pychess/Utils/lutils/strateval.py:470 msgid "half-open" msgstr "" #: lib/pychess/Utils/lutils/strateval.py:472 #, python-format msgid "in the %(x)s%(y)s file" msgstr "" #: lib/pychess/Utils/lutils/strateval.py:474 #, python-format msgid "in the %(x)s%(y)s files" msgstr "" #: lib/pychess/Utils/lutils/strateval.py:477 #, python-format msgid "%(color)s got a double pawn %(place)s" msgstr "" #: lib/pychess/Utils/lutils/strateval.py:478 #, python-format msgid "%(color)s got new double pawns %(place)s" msgstr "" #: lib/pychess/Utils/lutils/strateval.py:485 #, python-format msgid "%(color)s got an isolated pawn in the %(x)s file" msgid_plural "%(color)s got isolated pawns in the %(x)s files" msgstr[0] "" msgstr[1] "" #: lib/pychess/Utils/lutils/strateval.py:492 #, python-format msgid "%s moves pawns into stonewall formation" msgstr "" #: lib/pychess/Utils/lutils/strateval.py:507 #: lib/pychess/Utils/lutils/strateval.py:514 #, python-format msgid "%s can no longer castle" msgstr "" #: lib/pychess/Utils/lutils/strateval.py:508 #: lib/pychess/Utils/lutils/strateval.py:515 #, python-format msgid "%s can no longer castle in queenside" msgstr "" #: lib/pychess/Utils/lutils/strateval.py:510 #: lib/pychess/Utils/lutils/strateval.py:517 #, python-format msgid "%s can no longer castle in kingside" msgstr "" #: lib/pychess/Utils/lutils/strateval.py:551 #, python-format msgid "%(opcolor)s has a new trapped bishop on %(cord)s" msgstr "" #: lib/pychess/Utils/lutils/strateval.py:573 #, python-format msgid "develops a pawn: %s" msgstr "" #: lib/pychess/Utils/lutils/strateval.py:574 #, python-format msgid "brings a pawn closer to the backrow: %s" msgstr "" #: lib/pychess/Utils/lutils/strateval.py:591 #, python-format msgid "brings a %(piece)s closer to enemy king: %(cord)s" msgstr "" #: lib/pychess/Utils/lutils/strateval.py:594 #, python-format msgid "develops a %(piece)s: %(cord)s" msgstr "" #: lib/pychess/Utils/lutils/strateval.py:612 #, python-format msgid "places a %(piece)s more active: %(cord)s" msgstr "" #: lib/pychess/Utils/lutils/strateval.py:638 msgid "White should do pawn storm in right" msgstr "" #: lib/pychess/Utils/lutils/strateval.py:640 msgid "Black should do pawn storm in left" msgstr "" #: lib/pychess/Utils/lutils/strateval.py:643 msgid "White should do pawn storm in left" msgstr "" #: lib/pychess/Utils/lutils/strateval.py:645 msgid "Black should do pawn storm in right" msgstr "" #: lib/pychess/Utils/lutils/strateval.py:671 msgid "Black has a rather cramped position" msgstr "" #: lib/pychess/Utils/lutils/strateval.py:673 msgid "Black has a slightly cramped position" msgstr "" #: lib/pychess/Utils/lutils/strateval.py:675 msgid "White has a rather cramped position" msgstr "" #: lib/pychess/Utils/lutils/strateval.py:677 msgid "White has a slightly cramped position" msgstr "" #: sidepanel/annotationPanel.py:26 msgid "Annotation" msgstr "" #: sidepanel/annotationPanel.py:29 msgid "Annotated game" msgstr "" #: sidepanel/annotationPanel.py:236 msgid "Copy PGN" msgstr "" #: sidepanel/annotationPanel.py:249 msgid "Add start comment" msgstr "" #: sidepanel/annotationPanel.py:254 msgid "Add comment" msgstr "" #: sidepanel/annotationPanel.py:258 sidepanel/annotationPanel.py:316 msgid "Edit comment" msgstr "" #: sidepanel/annotationPanel.py:269 msgid "Forced move" msgstr "" #: sidepanel/annotationPanel.py:274 msgid "Add move symbol" msgstr "" #: sidepanel/annotationPanel.py:280 msgid "Unclear position" msgstr "" #: sidepanel/annotationPanel.py:289 msgid "Zugzwang" msgstr "" #: sidepanel/annotationPanel.py:290 msgid "Development adv." msgstr "" #: sidepanel/annotationPanel.py:291 msgid "Initiative" msgstr "" #: sidepanel/annotationPanel.py:292 msgid "With attack" msgstr "" #: sidepanel/annotationPanel.py:293 msgid "Compensation" msgstr "" #: sidepanel/annotationPanel.py:294 msgid "Counterplay" msgstr "" #: sidepanel/annotationPanel.py:295 msgid "Time pressure" msgstr "" #: sidepanel/annotationPanel.py:300 msgid "Add evaluation symbol" msgstr "" #: sidepanel/annotationPanel.py:304 msgid "Remove symbols" msgstr "" #: sidepanel/annotationPanel.py:911 #, python-format msgid "round %s" msgstr "" #: sidepanel/bookPanel.py:21 msgid "Hints" msgstr "" #: sidepanel/bookPanel.py:25 msgid "" "The hint panel will provide computer advice during each stage of the game" msgstr "" #: sidepanel/bookPanel.py:27 msgid "Official PyChess panel." msgstr "" #: sidepanel/bookPanel.py:87 msgid "Opening Book" msgstr "" #: sidepanel/bookPanel.py:88 msgid "" "The opening book will try to inspire you during the opening phase of the " "game by showing you common moves made by chess masters" msgstr "" #: sidepanel/bookPanel.py:139 #, python-format msgid "Analysis by %s" msgstr "" #: sidepanel/bookPanel.py:140 #, python-format msgid "" "%s will try to predict which move is best and which side has the advantage" msgstr "" #: sidepanel/bookPanel.py:142 #, python-format msgid "Threat analysis by %s" msgstr "" #: sidepanel/bookPanel.py:143 #, python-format msgid "" "%s will identify what threats would exist if it were your opponent's turn to" " move" msgstr "" #: sidepanel/bookPanel.py:159 sidepanel/bookPanel.py:269 msgid "Calculating..." msgstr "" #: sidepanel/bookPanel.py:300 msgid "" "Engine scores are in units of pawns, from White's point of view. Double " "clicking on analysis lines you can insert them into Annotation panel as " "variations." msgstr "" #: sidepanel/bookPanel.py:302 msgid "" "Adding suggestions can help you find ideas, but slows down the computer's " "analysis." msgstr "" #: sidepanel/bookPanel.py:311 msgid "Endgame Table" msgstr "" #: sidepanel/bookPanel.py:315 msgid "" "The endgame table will show exact analysis when there are few pieces on the " "board." msgstr "" #: sidepanel/bookPanel.py:364 sidepanel/bookPanel.py:367 #, python-format msgid "Mate in %d" msgstr "" #: sidepanel/bookPanel.py:554 msgid "" "In this position,\n" "there is no legal move." msgstr "" #: sidepanel/chatPanel.py:21 msgid "" "The chat panel lets you communicate with your opponent during the game, " "assuming he or she is interested" msgstr "" #: sidepanel/commentPanel.py:16 msgid "Comments" msgstr "Athugasemdir" #: sidepanel/commentPanel.py:20 msgid "The comments panel will try to analyze and explain the moves played" msgstr "" #: sidepanel/commentPanel.py:121 msgid "Initial position" msgstr "" #: sidepanel/commentPanel.py:254 #, python-format msgid "%(color)s moves a %(piece)s to %(cord)s" msgstr "" #: sidepanel/engineOutputPanel.py:15 msgid "Engines" msgstr "" #: sidepanel/engineOutputPanel.py:20 msgid "" "The engine output panel shows the thinking output of chess engines (computer" " players) during a game" msgstr "" #: sidepanel/engineOutputPanel.py:44 msgid "No chess engines (computer players) are participating in this game." msgstr "" #: sidepanel/historyPanel.py:10 msgid "Move History" msgstr "" #: sidepanel/historyPanel.py:13 msgid "" "The moves sheet keeps track of the players' moves and lets you navigate " "through the game history" msgstr "" #: sidepanel/scorePanel.py:15 msgid "Score" msgstr "Stig" #: sidepanel/scorePanel.py:19 msgid "" "The score panel tries to evaluate the positions and shows you a graph of the" " game progress" msgstr "" pychess-0.12.2/lang/is/LC_MESSAGES/pychess.mo0000644000175000017470000000710112653231272020706 0ustar tamasusers00000000000000=S89Ma r~7*   %,28N Wbs      #;A F P^dy!    ) 4@W ]h"nS c {    2 - . 7 D I P X _ y           2 L [ e o !z      #  3 < !D f r z     &(#+: 5-'(197%4 /!* 326. "$=8<)0&,;%s returns an errorDate of gameGame dataNewsPlay Sound When...PlayersPyChess was not able to save the gameUnable to save file '%s'About ChessAll FilesBeepBishopBlackClockClose _without SavingCommentsConnectingConnection ErrorCould not save the fileEmailFile existsGame is _lost:Game is _won:GuestHuman BeingKnightLog on ErrorLog on as _GuestNo soundNormalOpen GamePreferencesPyChess - Connect to Internet ChessQueenRookSave GameSave Game _AsScoreSelect sound file...The error was: %sThe game ended in a drawUnable to accept %sUnknownWhiteYour opponent is not out of time._Actions_Game_Help_Load Game_New Game_Replace_Rotate Board_Save Game_Start Game_Use sounds in PyChess_Viewdefends %sdrawshttp://en.wikipedia.org/wiki/Chessimproves king safetyProject-Id-Version: pychess Report-Msgid-Bugs-To: POT-Creation-Date: 2016-01-27 13:28+0100 PO-Revision-Date: 2016-01-28 08:56+0000 Last-Translator: slav0nic Language-Team: Icelandic (http://www.transifex.com/gbtami/pychess/language/is/) MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Language: is Plural-Forms: nplurals=2; plural=(n % 10 != 1 || n % 100 == 11); %s skilar villuDagsetning leiksLeikjagögnFréttirSpila hljóð Þegar...SpilararPyChess gat ekki vistað leikinnGet ekki vistað skrá '%s'Um SkákAllar skrárBípBiskupSvarturKlukka_Loka án þess að vistaAthugasemdirTengistTengingarvillaGat ekki vistað skráTölvupósturSkráin er þegar tilLeikurinn er _tapaður:Leikurinn er _unninn:GesturMannveraRiddariInnskráningarvillaSkrá mig inn sem _GesturEkkert hljóðVenjulegtOpna LeikStillingarPyChess - Tengjast Internet SkákDrottningHrókurVista leikVista Leik _SemStigVelja hljóðskrá...Villan var: %sLeikurinn hefur endað í jafntefliGet ekki tekið til baka %sÓþekktHvíturAndstæðingur rann út á tíma._Aðgerðir_Leikur_Hjálp_Hlaða inn leik_Nýr leikur_Skipta útSnúa Borði_Vista Leik_Ræsa Leik_Nota hljóð í PyChess_Sýnver %sjafnteflihttp://is.wikipedia.org/wiki/Sk%C3%A1kbætir öryggi kóngsinspychess-0.12.2/lang/en_GB/0000755000175000017470000000000012653231274015450 5ustar tamasusers00000000000000pychess-0.12.2/lang/en_GB/LC_MESSAGES/0000755000175000017470000000000012653231274017235 5ustar tamasusers00000000000000pychess-0.12.2/lang/en_GB/LC_MESSAGES/pychess.po0000644000175000017470000032600112653216204021251 0ustar tamasusers00000000000000# SOME DESCRIPTIVE TITLE. # Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER # This file is distributed under the same license as the pychess package. # # Translators: # Andi Chandler , 2013-2015 # gbtami , 2015 msgid "" msgstr "" "Project-Id-Version: pychess\n" "Report-Msgid-Bugs-To: \n" "POT-Creation-Date: 2016-01-27 13:28+0100\n" "PO-Revision-Date: 2016-01-28 08:56+0000\n" "Last-Translator: slav0nic \n" "Language-Team: English (United Kingdom) (http://www.transifex.com/gbtami/pychess/language/en_GB/)\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" "Language: en_GB\n" "Plural-Forms: nplurals=2; plural=(n != 1);\n" # "Plural-Forms: nplurals=INTEGER; plural=EXPRESSION;\n" #: glade/analyze_game.glade:22 msgid "Analyze game" msgstr "Analyse game" #: glade/analyze_game.glade:87 msgid "Use analyzer:" msgstr "Use analyser:" #: glade/analyze_game.glade:122 glade/PyChess.glade:2054 msgid "Maximum analysis time in seconds:" msgstr "Maximum analysis time in seconds:" #: glade/analyze_game.glade:163 msgid "" "If the analyzer finds a move where the evaluation difference (the difference" " between the evaluation for the move it thinks is the best move and the " "evaluation for the move made in the game) exceeds this value, it will add an" " annotation for that move (consisting of the engine's Principal Variation " "for the move) to the Annotation panel" msgstr "If the analyser finds a move where the evaluation difference (the difference between the evaluation for the move it thinks is the best move and the evaluation for the move made in the game) exceeds this value, it will add an annotation for that move (consisting of the engine's Principal Variation for the move) to the Annotation panel" #: glade/analyze_game.glade:164 msgid "Variation annotation creation threshold in centipawns:" msgstr "Variation annotation creation threshold in centipawns:" #: glade/analyze_game.glade:198 msgid "Analyze from current position" msgstr "Analyse from current position" #: glade/analyze_game.glade:214 msgid "Add threatening variation lines " msgstr "Add threatening variation lines " #: glade/analyze_game.glade:229 glade/PyChess.glade:1459 msgid "Colorize analyzed moves" msgstr "Colourise analysed moves" #: glade/analyze_game.glade:244 glade/PyChess.glade:1495 msgid "Show evaluation values" msgstr "Show evaluation values" #: glade/discovererDialog.glade:18 msgid "PyChess is discovering your engines. Please wait." msgstr "PyChess is discovering your engines. Please wait." #: glade/discovererDialog.glade:77 msgid "PyChess.py:" msgstr "PyChess.py:" #: glade/discovererDialog.glade:89 msgid "ShredderLinuxChess:" msgstr "ShredderLinuxChess:" #: glade/discovererDialog.glade:101 msgid "gnuchess:" msgstr "gnuchess:" #: glade/fics_logon.glade:7 msgid "PyChess - Connect to Internet Chess" msgstr "PyChess - Connect to Internet Chess" #: glade/fics_logon.glade:47 msgid "Connect to the Free Online Chess Server" msgstr "Connect to the Free Online Chess Server" #: glade/fics_logon.glade:129 glade/taskers.glade:394 msgid "_Password:" msgstr "_Password:" #: glade/fics_logon.glade:143 msgid "_Name:" msgstr "_Name:" #: glade/fics_logon.glade:191 msgid "Log on as _Guest" msgstr "Log on as _Guest" #: glade/fics_logon.glade:227 msgid "Host:" msgstr "Host:" #: glade/fics_logon.glade:259 msgid "Po_rts:" msgstr "Po_rts:" #: glade/fics_logon.glade:271 msgid "Auto login on startup" msgstr "Auto login on startup" #: glade/fics_logon.glade:385 msgid "S_ign up" msgstr "S_ign up" #: glade/fics_lounge.glade:35 msgid "Challenge: " msgstr "Challenge: " #: glade/fics_lounge.glade:97 msgid "Send Challenge" msgstr "Send Challenge" #: glade/fics_lounge.glade:133 msgid "Challenge:" msgstr "Challenge:" #: glade/fics_lounge.glade:327 glade/fics_lounge.glade:2078 msgid "Lightning:" msgstr "Lightning:" #: glade/fics_lounge.glade:351 glade/fics_lounge.glade:2102 msgid "Standard:" msgstr "Standard:" #: glade/fics_lounge.glade:375 glade/fics_lounge.glade:2126 msgid "Blitz:" msgstr "Blitz:" #: glade/fics_lounge.glade:400 msgid "2 min, Fischer Random, Black" msgstr "2 min, Fischer Random, Black" #: glade/fics_lounge.glade:422 msgid "10 min + 6 sec/move, White" msgstr "10 min + 6 sec/move, White" #: glade/fics_lounge.glade:444 msgid "5 min" msgstr "5 min" #: glade/fics_lounge.glade:480 msgid "Edit Seek" msgstr "Edit Seek" #: glade/fics_lounge.glade:584 lib/pychess/ic/ICLounge.py:2208 #: lib/pychess/ic/__init__.py:101 lib/pychess/Utils/GameModel.py:206 msgid "Untimed" msgstr "Untimed" #: glade/fics_lounge.glade:637 msgid "Minutes: " msgstr "Minutes: " #: glade/fics_lounge.glade:665 msgid " Gain: " msgstr " Gain: " #: glade/fics_lounge.glade:703 msgid "Time control: " msgstr "Time control: " #: glade/fics_lounge.glade:716 lib/pychess/ic/FICSObjects.py:56 #: lib/pychess/ic/ICLounge.py:1137 lib/pychess/ic/ICLounge.py:2208 #: lib/pychess/ic/__init__.py:99 msgid "Standard" msgstr "Standard" #: glade/fics_lounge.glade:757 glade/newInOut.glade:633 msgid "Time Control" msgstr "Time Control" #: glade/fics_lounge.glade:814 glade/fics_lounge.glade:1346 msgid "Don't care" msgstr "Don't care" #: glade/fics_lounge.glade:879 msgid "Your strength: " msgstr "Your strength: " #: glade/fics_lounge.glade:921 msgid "(Blitz)" msgstr "(Blitz)" #: glade/fics_lounge.glade:951 msgid "Opponent's strength: " msgstr "Opponent's strength: " #: glade/fics_lounge.glade:1055 msgid "" "When this button is in the \"locked\" state, the relationship\n" "between \"Opponent's strength\" and \"Your strength\" will be\n" "preserved when \n" "a) your rating for the type of game sought has changed\n" "b) you change the variant or the time control" msgstr "When this button is in the \"locked\" state, the relationship\nbetween \"Opponent's strength\" and \"Your strength\" will be\npreserved when \na) your rating for the type of game sought has changed\nb) you change the variant or the time control" #: glade/fics_lounge.glade:1095 msgid "Center:" msgstr "Centre:" #: glade/fics_lounge.glade:1134 msgid "1200" msgstr "1200" #: glade/fics_lounge.glade:1188 msgid "Tolerance:" msgstr "Tolerance:" #: glade/fics_lounge.glade:1243 lib/pychess/ic/ICLounge.py:2452 msgid "Hide" msgstr "Hide" #: glade/fics_lounge.glade:1289 msgid "Opponent Strength" msgstr "Opponent Strength" #: glade/fics_lounge.glade:1386 lib/pychess/Database/gamelist.py:40 #: lib/pychess/ic/ICLounge.py:1357 lib/pychess/ic/ICLounge.py:1557 #: lib/pychess/ic/ICLounge.py:2108 lib/pychess/Utils/repr.py:10 #: lib/pychess/widgets/ChessClock.py:40 #: lib/pychess/widgets/TaskerManager.py:153 msgid "White" msgstr "White" #: glade/fics_lounge.glade:1414 lib/pychess/Database/gamelist.py:40 #: lib/pychess/ic/ICLounge.py:1358 lib/pychess/ic/ICLounge.py:1558 #: lib/pychess/ic/ICLounge.py:2110 lib/pychess/Utils/repr.py:10 #: lib/pychess/widgets/ChessClock.py:40 #: lib/pychess/widgets/TaskerManager.py:154 msgid "Black" msgstr "Black" #: glade/fics_lounge.glade:1453 msgid "Your Color" msgstr "Your Colour" #: glade/fics_lounge.glade:1512 msgid "Play normal chess rules" msgstr "Play normal chess rules" #: glade/fics_lounge.glade:1552 msgid "Play" msgstr "Play" #: glade/fics_lounge.glade:1618 glade/newInOut.glade:833 msgid "Chess Variant" msgstr "Chess Variant" #: glade/fics_lounge.glade:1676 msgid "Rated game" msgstr "Rated game" #: glade/fics_lounge.glade:1692 msgid "Manually accept opponent" msgstr "Manually accept opponent" #: glade/fics_lounge.glade:1722 msgid "Options" msgstr "Options" #: glade/fics_lounge.glade:1750 msgid "PyChess - Internet Chess: FICS" msgstr "PyChess - Internet Chess: FICS" #: glade/fics_lounge.glade:1823 msgid "_Clear Seeks" msgstr "_Clear Seeks" #: glade/fics_lounge.glade:1847 msgid "_Accept" msgstr "_Accept" #: glade/fics_lounge.glade:1871 msgid "_Decline" msgstr "_Decline" #: glade/fics_lounge.glade:2151 msgid "2 min, Fischer Random, 1800↓, Black" msgstr "2 min, Fischer Random, 1800↓, Black" #: glade/fics_lounge.glade:2172 msgid "10 min + 6 sec/move, 1400↑, White" msgstr "10 min + 6 sec/move, 1400↑, White" #: glade/fics_lounge.glade:2193 msgid "5 min, 1200-1800, Manual" msgstr "5 min, 1200-1800, Manual" #: glade/fics_lounge.glade:2247 msgid "Send all seeks" msgstr "Send all seeks" #: glade/fics_lounge.glade:2301 msgid "Send seek" msgstr "Send seek" #: glade/fics_lounge.glade:2337 msgid "Create Seek" msgstr "Create Seek" #: glade/fics_lounge.glade:2353 msgid "_Seeks / Challenges" msgstr "_Seeks / Challenges" #: glade/fics_lounge.glade:2374 lib/pychess/ic/ICLounge.py:472 #: lib/pychess/ic/ICLounge.py:670 lib/pychess/ic/ICLounge.py:1357 #: lib/pychess/ic/ICLounge.py:1358 msgid "Rating" msgstr "Rating" #: glade/fics_lounge.glade:2399 msgid "Time" msgstr "Time" #: glade/fics_lounge.glade:2419 msgid "Seek _Graph" msgstr "Seek _Graph" #: glade/fics_lounge.glade:2444 msgid "0 Players Ready" msgstr "0 Players Ready" #: glade/fics_lounge.glade:2496 msgid "Challenge" msgstr "Challenge" #: glade/fics_lounge.glade:2549 glade/fics_lounge.glade:2735 msgid "Observe" msgstr "Observe" #: glade/fics_lounge.glade:2602 msgid "Start Private Chat" msgstr "Start Private Chat" #: glade/fics_lounge.glade:2659 msgid "_Player List" msgstr "_Player List" #: glade/fics_lounge.glade:2792 msgid "_Game List" msgstr "_Game List" #: glade/fics_lounge.glade:2847 msgid "_My games" msgstr "" #: glade/fics_lounge.glade:2904 glade/PyChess.glade:841 msgid "Offer _Resume" msgstr "Offer _Resume" #: glade/fics_lounge.glade:2962 glade/PyChess.glade:880 msgid "R_esign" msgstr "R_esign" #: glade/fics_lounge.glade:3006 glade/PyChess.glade:820 msgid "Offer _Draw" msgstr "Offer _Draw" #: glade/fics_lounge.glade:3050 msgid "Offer A_bort" msgstr "Offer A_bort" #: glade/fics_lounge.glade:3107 msgid "Pre_view" msgstr "Pre_view" #: glade/fics_lounge.glade:3151 msgid "Examine" msgstr "" #: glade/fics_lounge.glade:3208 msgid "_Archived" msgstr "" #: glade/fics_lounge.glade:3313 msgid "News" msgstr "News" #: glade/fics_lounge.glade:3345 msgid "Show Console" msgstr "Show Console" #: glade/fics_lounge.glade:3359 msgid "Show _Chat" msgstr "Show _Chat" #: glade/fics_lounge.glade:3373 msgid "_Log Off" msgstr "_Log Off" #: glade/fics_lounge.glade:3393 msgid "Tools" msgstr "Tools" #: glade/fics_lounge.glade:3428 msgid "Asymmetric Random " msgstr "Asymmetric Random " #: glade/findbar.glade:6 msgid "window1" msgstr "window1" #: glade/findbar.glade:21 msgid "0 of 0" msgstr "0 of 0" #: glade/findbar.glade:66 msgid "Search:" msgstr "Search:" #: glade/findbar.glade:134 msgid "_Previous" msgstr "_Previous" #: glade/findbar.glade:192 msgid "_Next" msgstr "_Next" #: glade/newInOut.glade:45 lib/pychess/widgets/newGameDialog.py:445 msgid "New Game" msgstr "New Game" #: glade/newInOut.glade:108 msgid "_Start Game" msgstr "_Start Game" #: glade/newInOut.glade:130 msgid "Copy FEN" msgstr "Copy FEN" #: glade/newInOut.glade:143 msgid "Clear" msgstr "Clear" #: glade/newInOut.glade:156 msgid "Paste FEN" msgstr "Paste FEN" #: glade/newInOut.glade:257 msgid "_Black player:" msgstr "_Black player:" #: glade/newInOut.glade:274 msgid "_White player:" msgstr "_White player:" #: glade/newInOut.glade:385 msgid "Players" msgstr "Players" #: glade/newInOut.glade:436 msgid "_Untimed" msgstr "_Untimed" #: glade/newInOut.glade:475 msgid "Blitz: 5 min" msgstr "Blitz: 5 min" #: glade/newInOut.glade:526 msgid "Rapid: 15 min + 10 sec/move" msgstr "Rapid: 15 min + 10 sec/move" #: glade/newInOut.glade:575 msgid "Normal: 40 min + 15 sec/move" msgstr "Normal: 40 min + 15 sec/move" #: glade/newInOut.glade:684 msgid "_Play Normal chess" msgstr "_Play Normal chess" #: glade/newInOut.glade:724 msgid "Play Fischer Random chess" msgstr "Play Fischer Random chess" #: glade/newInOut.glade:774 msgid "Play Losers chess" msgstr "Play Losers chess" #: glade/newInOut.glade:919 msgid "Open Game" msgstr "Open Game" #: glade/newInOut.glade:1162 msgid "Initial Position" msgstr "Initial Position" #: glade/newInOut.glade:1219 msgid "Enter Game Notation" msgstr "Enter Game Notation" #: glade/newInOut.glade:1314 msgid "Halfmove clock" msgstr "Halfmove clock" #: glade/newInOut.glade:1327 msgid "En passant line" msgstr "En passant line" #: glade/newInOut.glade:1339 msgid "Side to move" msgstr "Side to move" #: glade/newInOut.glade:1351 msgid "Move number" msgstr "Move number" #: glade/newInOut.glade:1361 msgid "Black O-O" msgstr "Black O-O" #: glade/newInOut.glade:1375 msgid "Black O-O-O" msgstr "Black O-O-O" #: glade/newInOut.glade:1389 msgid "White O-O-O" msgstr "White O-O-O" #: glade/newInOut.glade:1403 msgid "White O-O" msgstr "White O-O" #: glade/promotion.glade:7 msgid "Promotion" msgstr "Promotion" #: glade/promotion.glade:49 lib/pychess/Utils/repr.py:12 msgid "Queen" msgstr "Queen" #: glade/promotion.glade:95 lib/pychess/Utils/repr.py:12 msgid "Rook" msgstr "Rook" #: glade/promotion.glade:141 lib/pychess/Utils/repr.py:12 msgid "Bishop" msgstr "Bishop" #: glade/promotion.glade:187 lib/pychess/Utils/repr.py:12 msgid "Knight" msgstr "Knight" #: glade/promotion.glade:233 lib/pychess/Utils/repr.py:12 msgid "King" msgstr "King" #: glade/promotion.glade:265 msgid "Promote pawn to what?" msgstr "Promote pawn to what?" #: glade/PyChess.glade:9 msgid "Chess client" msgstr "Chess client" #: glade/PyChess.glade:44 msgid "Game information" msgstr "Game information" #: glade/PyChess.glade:164 msgid "Event:" msgstr "Event:" #: glade/PyChess.glade:178 msgid "Site:" msgstr "Site:" #: glade/PyChess.glade:204 msgid "Round:" msgstr "Round:" #: glade/PyChess.glade:237 msgid "White:" msgstr "White:" #: glade/PyChess.glade:249 msgid "Black:" msgstr "Black:" #: glade/PyChess.glade:302 msgid "Game data" msgstr "Game data" #: glade/PyChess.glade:357 msgid "Date of game" msgstr "Date of game" #: glade/PyChess.glade:495 msgid "_Game" msgstr "_Game" #: glade/PyChess.glade:502 msgid "_New Game" msgstr "_New Game" #: glade/PyChess.glade:515 msgid "Play _Internet Chess" msgstr "Play _Internet Chess" #: glade/PyChess.glade:534 msgid "_Load Game" msgstr "_Load Game" #: glade/PyChess.glade:550 msgid "Load _Recent Game" msgstr "Load _Recent Game" #: glade/PyChess.glade:558 msgid "Open _Database" msgstr "Open _Database" #: glade/PyChess.glade:569 lib/pychess/widgets/newGameDialog.py:615 msgid "Setup Position" msgstr "Setup Position" #: glade/PyChess.glade:579 msgid "Enter Game _Notation" msgstr "Enter Game _Notation" #: glade/PyChess.glade:592 msgid "_Save Game" msgstr "_Save Game" #: glade/PyChess.glade:606 msgid "Save Game _As" msgstr "Save Game _As" #: glade/PyChess.glade:624 msgid "Share Game" msgstr "Share Game" #: glade/PyChess.glade:630 msgid "_Export Position" msgstr "_Export Position" #: glade/PyChess.glade:644 msgid "_Analyze Game" msgstr "_Analyse Game" #: glade/PyChess.glade:678 msgid "Player _Rating" msgstr "Player _Rating" #: glade/PyChess.glade:723 msgid "_Edit" msgstr "_Edit" #: glade/PyChess.glade:734 msgid "_Copy PGN" msgstr "_Copy PGN" #: glade/PyChess.glade:746 msgid "_Copy FEN" msgstr "_Copy FEN" #: glade/PyChess.glade:763 msgid "_Engines" msgstr "_Engines" #: glade/PyChess.glade:789 msgid "_Actions" msgstr "_Actions" #: glade/PyChess.glade:800 msgid "Offer _Abort" msgstr "Offer _Abort" #: glade/PyChess.glade:810 msgid "Offer Ad_journment" msgstr "Offer Ad_journment" #: glade/PyChess.glade:831 msgid "Offer _Pause" msgstr "Offer _Pause" #: glade/PyChess.glade:847 msgid "Offer _Undo" msgstr "Offer _Undo" #: glade/PyChess.glade:870 msgid "_Call Flag" msgstr "_Call Flag" #: glade/PyChess.glade:890 msgid "Ask to _Move" msgstr "Ask to _Move" #: glade/PyChess.glade:905 msgid "Auto Call _Flag" msgstr "Auto Call _Flag" #: glade/PyChess.glade:918 msgid "_View" msgstr "_View" #: glade/PyChess.glade:925 msgid "_Rotate Board" msgstr "_Rotate Board" #: glade/PyChess.glade:939 msgid "_Fullscreen" msgstr "_Fullscreen" #: glade/PyChess.glade:952 msgid "Leave _Fullscreen" msgstr "Leave _Fullscreen" #: glade/PyChess.glade:969 msgid "_Show Sidepanels" msgstr "_Show Sidepanels" #: glade/PyChess.glade:980 msgid "_Log Viewer" msgstr "_Log Viewer" #: glade/PyChess.glade:997 msgid "_Hint mode" msgstr "_Hint mode" #: glade/PyChess.glade:1009 msgid "Sp_y mode" msgstr "Sp_y mode" #: glade/PyChess.glade:1024 msgid "_Help" msgstr "_Help" #: glade/PyChess.glade:1034 msgid "About Chess" msgstr "About Chess" #: glade/PyChess.glade:1043 msgid "How to Play" msgstr "How to Play" #: glade/PyChess.glade:1052 msgid "Translate PyChess" msgstr "Translate PyChess" #: glade/PyChess.glade:1058 msgid "Tip of the Day" msgstr "Tip of the Day" #: glade/PyChess.glade:1153 msgid "Default" msgstr "Default" #: glade/PyChess.glade:1156 msgid "Knights" msgstr "Knights" #: glade/PyChess.glade:1167 lib/pychess/widgets/preferencesDialog.py:349 msgid "Beep" msgstr "Beep" #: glade/PyChess.glade:1170 lib/pychess/widgets/preferencesDialog.py:350 msgid "Select sound file..." msgstr "Select sound file..." #: glade/PyChess.glade:1173 lib/pychess/widgets/preferencesDialog.py:348 msgid "No sound" msgstr "No sound" #: glade/PyChess.glade:1180 msgid "Preferences" msgstr "Preferences" #: glade/PyChess.glade:1218 msgid "The displayed name of the first human player, e.g., John." msgstr "The displayed name of the first human player, e.g., John." #: glade/PyChess.glade:1230 msgid "Name of _first human player:" msgstr "Name of _first human player:" #: glade/PyChess.glade:1259 msgid "The displayed name of the guest player, e.g., Mary." msgstr "The displayed name of the guest player, e.g., Mary." #: glade/PyChess.glade:1271 msgid "Name of s_econd human player:" msgstr "Name of s_econd human player:" #: glade/PyChess.glade:1307 msgid "_Hide tabs when only one game is open" msgstr "_Hide tabs when only one game is open" #: glade/PyChess.glade:1312 msgid "" "If set, this hides the tab in the top of the playing window, when it is not " "needed." msgstr "If set, this hides the tab in the top of the playing window, when it is not needed." #: glade/PyChess.glade:1326 msgid "_Use main app closer [x] to close all games" msgstr "_Use main app closer [x] to close all games" #: glade/PyChess.glade:1331 msgid "" "If set, clicking on main application window closer first time it closes all " "games." msgstr "If set, clicking on main application window closer first time it closes all games." #: glade/PyChess.glade:1345 msgid "Auto _rotate board to current human player" msgstr "Auto _rotate board to current human player" #: glade/PyChess.glade:1350 msgid "" "If set, the board will turn after each move, to show the natural view for " "the current player." msgstr "If set, the board will turn after each move, to show the natural view for the current player." #: glade/PyChess.glade:1364 msgid "Auto _promote to queen" msgstr "" #: glade/PyChess.glade:1369 msgid "If set, pawn promotes to queen without promotion dialog selection." msgstr "" #: glade/PyChess.glade:1383 msgid "Face _to Face display mode" msgstr "Face _to Face display mode" #: glade/PyChess.glade:1388 msgid "" "If set, the black pieces will be head down, suitable for playing against " "friends on mobile devices." msgstr "If set, the black pieces will be head down, suitable for playing against friends on mobile devices." #: glade/PyChess.glade:1402 msgid "Sho_w cords" msgstr "Sho_w cords" #: glade/PyChess.glade:1407 msgid "" "If set, the playing board will display labels and ranks for each chess " "field. These are usable in chess notation." msgstr "If set, the playing board will display labels and ranks for each chess field. These are usable in chess notation." #: glade/PyChess.glade:1421 msgid "Show _captured pieces" msgstr "Show _captured pieces" #: glade/PyChess.glade:1426 msgid "If set, the captured figurines will be shown next to the board." msgstr "If set, the captured figurines will be shown next to the board." #: glade/PyChess.glade:1440 msgid "Prefer figures in _notation" msgstr "Prefer figures in _notation" #: glade/PyChess.glade:1445 msgid "" "If set, PyChess will use figures to express moved pieces, rather than " "uppercase letters." msgstr "If set, PyChess will use figures to express moved pieces, rather than uppercase letters." #: glade/PyChess.glade:1464 msgid "If set, PyChess will colorize suboptimal analyzed moves with red." msgstr "If set, PyChess will colourise suboptimal analysed moves with red." #: glade/PyChess.glade:1477 msgid "Show elapsed move times" msgstr "Show elapsed move times" #: glade/PyChess.glade:1482 msgid "If set, the elapsed time that a player used for the move is shown." msgstr "If set, the elapsed time that a player used for the move is shown." #: glade/PyChess.glade:1500 msgid "If set, the hint analyzer engine evaluation value is shown." msgstr "If set, the hint analyser engine evaluation value is shown." #: glade/PyChess.glade:1526 msgid "General Options" msgstr "" #: glade/PyChess.glade:1560 msgid "F_ull board animation" msgstr "F_ull board animation" #: glade/PyChess.glade:1565 msgid "Animate pieces, board rotation and more. Use this on fast machines." msgstr "Animate pieces, board rotation and more. Use this on fast machines." #: glade/PyChess.glade:1579 msgid "Only animate _moves" msgstr "Only animate _moves" #: glade/PyChess.glade:1584 msgid "Only animate piece moves." msgstr "Only animate piece moves." #: glade/PyChess.glade:1599 msgid "No _animation" msgstr "No _animation" #: glade/PyChess.glade:1604 msgid "Never use animation. Use this on slow machines." msgstr "Never use animation. Use this on slow machines." #: glade/PyChess.glade:1632 msgid "Animation" msgstr "Animation" #: glade/PyChess.glade:1651 msgid "_General" msgstr "_General" #: glade/PyChess.glade:1692 msgid "Use opening _book" msgstr "Use opening _book" #: glade/PyChess.glade:1697 msgid "If set, PyChess will suggest best opening moves on hint panel." msgstr "If set, PyChess will suggest best opening moves on hint panel." #: glade/PyChess.glade:1724 msgid "Polyglot book file:" msgstr "Polyglot book file:" #: glade/PyChess.glade:1768 msgid "Use _local tablebases" msgstr "Use _local tablebases" #: glade/PyChess.glade:1773 msgid "" "If set, PyChess will show game results for different moves in positions containing 6 or less pieces.\n" "You can download tablebase files from:\n" "http://www.olympuschess.com/egtb/gaviota/" msgstr "If set, PyChess will show game results for different moves in positions containing 6 or less pieces.\nYou can download tablebase files from:\nhttp://www.olympuschess.com/egtb/gaviota/" #: glade/PyChess.glade:1803 msgid "Gaviota TB path:" msgstr "Gaviota TB path:" #: glade/PyChess.glade:1843 msgid "Use _online tablebases" msgstr "Use _online tablebases" #: glade/PyChess.glade:1848 msgid "" "If set, PyChess will show game results for different moves in positions containing 6 or less pieces.\n" "It will search positions from http://www.k4it.de/" msgstr "If set, PyChess will show game results for different moves in positions containing 6 or less pieces.\nIt will search positions from http://www.k4it.de/" #: glade/PyChess.glade:1870 msgid "Opening, endgame" msgstr "Opening, endgame" #: glade/PyChess.glade:1904 msgid "Use _analyzer" msgstr "Use _analyser" #: glade/PyChess.glade:1946 msgid "" "The analyzer will run in the background and analyze the game. This is " "necessary for the hint mode to work" msgstr "The analyser will run in the background and analyse the game. This is necessary for the hint mode to work" #: glade/PyChess.glade:1978 msgid "Use _inverted analyzer" msgstr "Use _inverted analyser" #: glade/PyChess.glade:2020 msgid "" "The inverse analyzer will analyze the game as if your opponent was to move. " "This is necessary for the spy mode to work" msgstr "The inverse analyser will analyse the game as if your opponent was to move. This is necessary for the spy mode to work" #: glade/PyChess.glade:2096 msgid "Analyzing" msgstr "Analysing" #: glade/PyChess.glade:2118 msgid "_Hints" msgstr "_Hints" #: glade/PyChess.glade:2263 msgid "Uninstall" msgstr "Uninstall" #: glade/PyChess.glade:2317 msgid "Ac_tive" msgstr "Ac_tive" #: glade/PyChess.glade:2367 msgid "Installed Sidepanels" msgstr "Installed Sidepanels" #: glade/PyChess.glade:2382 msgid "Side_panels" msgstr "Side_panels" #: glade/PyChess.glade:2440 msgid "Light Squares :" msgstr "Light Squares :" #: glade/PyChess.glade:2479 msgid "Dark Squares :" msgstr "Dark Squares :" #: glade/PyChess.glade:2515 msgid "Reset Default Colours" msgstr "Reset Default Colours" #: glade/PyChess.glade:2551 msgid "Board Colours" msgstr "Board Colours" #: glade/PyChess.glade:2610 msgid "Chess Sets" msgstr "Chess Sets" #: glade/PyChess.glade:2634 msgid "Themes" msgstr "Themes" #: glade/PyChess.glade:2659 msgid "_Use sounds in PyChess" msgstr "_Use sounds in PyChess" #: glade/PyChess.glade:2982 msgid "A player _checks:" msgstr "A player _checks:" #: glade/PyChess.glade:2997 msgid "A player _moves:" msgstr "A player _moves:" #: glade/PyChess.glade:3010 msgid "Game is _drawn:" msgstr "Game is _drawn:" #: glade/PyChess.glade:3025 msgid "Game is _lost:" msgstr "Game is _lost:" #: glade/PyChess.glade:3040 msgid "Game is _won:" msgstr "Game is _won:" #: glade/PyChess.glade:3055 msgid "A player c_aptures:" msgstr "A player c_aptures:" #: glade/PyChess.glade:3084 msgid "Game is _set-up:" msgstr "Game is _set-up:" #: glade/PyChess.glade:3136 msgid "_Observed moves:" msgstr "_Observed moves:" #: glade/PyChess.glade:3151 msgid "Observed _ends:" msgstr "Observed _ends:" #: glade/PyChess.glade:3265 msgid "Short on _time:" msgstr "Short on _time:" #: glade/PyChess.glade:3317 msgid "_Invalid move:" msgstr "_Invalid move:" #: glade/PyChess.glade:3369 msgid "Activate alarm when _remaining sec is:" msgstr "Activate alarm when _remaining sec is:" #: glade/PyChess.glade:3416 msgid "Play Sound When..." msgstr "Play Sound When..." #: glade/PyChess.glade:3438 msgid "_Sounds" msgstr "_Sounds" #: glade/PyChess.glade:3463 msgid "_Auto save finished games" msgstr "_Auto save finished games" #: glade/PyChess.glade:3497 msgid "Save files to:" msgstr "Save files to:" #: glade/PyChess.glade:3525 msgid "Use name format:" msgstr "Use name format:" #: glade/PyChess.glade:3569 msgid "Names: #n1, #n2" msgstr "Names: #n1, #n2" #: glade/PyChess.glade:3582 msgid "Year, month, day: #y, #m, #d" msgstr "Year, month, day: #y, #m, #d" #: glade/PyChess.glade:3619 msgid "Save elapsed move _times" msgstr "Save elapsed move _times" #: glade/PyChess.glade:3644 msgid "Save analyzing engine _evaluation values" msgstr "Save analysing engine _evaluation values" #: glade/PyChess.glade:3669 msgid "Save _own games only" msgstr "Save _own games only" #: glade/PyChess.glade:3698 msgid "Save" msgstr "Save" #: glade/PyChess.glade:3728 msgid "uci" msgstr "uci" #: glade/PyChess.glade:3731 msgid "xboard" msgstr "xboard" #: glade/PyChess.glade:3739 msgid "Manage engines" msgstr "Manage engines" #: glade/PyChess.glade:3837 msgid "Command:" msgstr "Command:" #: glade/PyChess.glade:3851 msgid "Protocol:" msgstr "Protocol:" #: glade/PyChess.glade:3865 msgid "Parameters:" msgstr "Parameters:" #: glade/PyChess.glade:3878 msgid "Command line parameters needed by the engine." msgstr "Command line parameters needed by the engine." #: glade/PyChess.glade:3903 msgid "" "Engines use uci or xboard communication protocol to talk to the GUI.\n" "If it can use both you can set here which one you like." msgstr "Engines use uci or xboard communication protocol to talk to the GUI.\nIf it can use both you can set here which one you like." #: glade/PyChess.glade:3929 msgid "Working directory:" msgstr "Working directory:" #: glade/PyChess.glade:3942 msgid "The directory where the engine will be started from." msgstr "The directory where the engine will be started from." #: glade/saveGamesDialog.glade:7 msgid "Quit PyChess" msgstr "Quit PyChess" #: glade/saveGamesDialog.glade:24 lib/pychess/widgets/ionest.py:424 msgid "Close _without Saving" msgstr "Close _without Saving" #: glade/saveGamesDialog.glade:83 msgid "_Save %d documents" msgstr "_Save %d documents" #: glade/saveGamesDialog.glade:141 msgid "" "There are %d games with unsaved moves. Save changes before " "closing?" msgstr "There are %d games with unsaved moves. Save changes before closing?" #: glade/saveGamesDialog.glade:161 msgid "Select the games you want to save:" msgstr "Select the games you want to save:" #: glade/saveGamesDialog.glade:204 msgid "If you don't save, new changes to your games will be permanently lost." msgstr "If you don't save, new changes to your games will be permanently lost." #: glade/taskers.glade:126 msgid "_Opponent:" msgstr "_Opponent:" #: glade/taskers.glade:154 msgid "_Your Color:" msgstr "_Your Colour:" #: glade/taskers.glade:219 msgid "_Start Game" msgstr "_Start Game" #: glade/taskers.glade:338 msgid "Log on as G_uest" msgstr "Log on as G_uest" #: glade/taskers.glade:410 msgid "Ha_ndle:" msgstr "Ha_ndle:" #: glade/taskers.glade:469 msgid "_Connect to server" msgstr "" #: glade/tipoftheday.glade:7 msgid "Tip Of The day" msgstr "Tip Of The day" #: glade/tipoftheday.glade:62 msgid "Show tips at startup" msgstr "Show tips at startup" #: lib/pychess/Main.py:302 msgid "http://en.wikipedia.org/wiki/Chess" msgstr "http://en.wikipedia.org/wiki/Chess" #: lib/pychess/Main.py:305 msgid "http://en.wikipedia.org/wiki/Rules_of_chess" msgstr "http://en.wikipedia.org/wiki/Rules_of_chess" #: lib/pychess/Main.py:370 lib/pychess/widgets/gamenanny.py:80 msgid "Welcome" msgstr "Welcome" #: lib/pychess/Database/gamelist.py:40 msgid "Id" msgstr "Id" #: lib/pychess/Database/gamelist.py:40 msgid "W Elo" msgstr "W Elo" #: lib/pychess/Database/gamelist.py:40 msgid "B Elo" msgstr "B Elo" #: lib/pychess/Database/gamelist.py:41 msgid "Result" msgstr "Result" #: lib/pychess/Database/gamelist.py:41 msgid "Event" msgstr "Event" #: lib/pychess/Database/gamelist.py:41 msgid "Site" msgstr "Site" #: lib/pychess/Database/gamelist.py:41 msgid "Round" msgstr "Round" #: lib/pychess/Database/gamelist.py:41 msgid "Date" msgstr "Date" #: lib/pychess/Database/gamelist.py:41 msgid "ECO" msgstr "ECO" #: lib/pychess/Database/gamelist.py:62 msgid "PyChess Game Database" msgstr "PyChess Game Database" #: lib/pychess/Database/PgnImport.py:188 #, python-format msgid "The game #%s can't be loaded, because of an error parsing FEN" msgstr "The game #%s can't be loaded, because of an error parsing FEN" #: lib/pychess/ic/FICSConnection.py:139 msgid "The connection was broken - got \"end of file\" message" msgstr "The connection was broken - got \"end of file\" message" #: lib/pychess/ic/FICSConnection.py:140 #, python-format msgid "'%s' is not a registered name" msgstr "'%s' is not a registered name" #: lib/pychess/ic/FICSConnection.py:141 msgid "" "The entered password was invalid.\n" "If you forgot your password, go to http://www.freechess.org/password to request a new one over email." msgstr "The entered password was invalid.\nIf you forgot your password, go to http://www.freechess.org/password to request a new one over email." #: lib/pychess/ic/FICSConnection.py:145 #, python-format msgid "Sorry '%s' is already logged in" msgstr "Sorry '%s' is already logged in" #: lib/pychess/ic/FICSConnection.py:146 #, python-format msgid "'%s' is a registered name. If it is yours, type the password." msgstr "'%s' is a registered name. If it is yours, type the password." #: lib/pychess/ic/FICSConnection.py:147 msgid "" "Due to abuse problems, guest connections have been prevented.\n" "You can still register on http://www.freechess.org" msgstr "Due to abuse problems, guest connections have been prevented.\nYou can still register on http://www.freechess.org" #: lib/pychess/ic/FICSConnection.py:166 msgid "Connecting to server" msgstr "Connecting to server" #: lib/pychess/ic/FICSConnection.py:181 msgid "Logging on to server" msgstr "Logging on to server" #: lib/pychess/ic/FICSConnection.py:239 msgid "Setting up environment" msgstr "Setting up environment" #: lib/pychess/ic/FICSObjects.py:35 lib/pychess/ic/FICSObjects.py:47 #, python-format msgid "%(player)s is %(status)s" msgstr "%(player)s is %(status)s" #: lib/pychess/ic/FICSObjects.py:46 msgid "not playing" msgstr "not playing" #: lib/pychess/ic/FICSObjects.py:54 lib/pychess/ic/ICLounge.py:1136 #: lib/pychess/ic/ICLounge.py:2209 lib/pychess/ic/__init__.py:98 #: lib/pychess/widgets/newGameDialog.py:153 msgid "Blitz" msgstr "Blitz" #: lib/pychess/ic/FICSObjects.py:58 lib/pychess/ic/ICLounge.py:1137 #: lib/pychess/ic/ICLounge.py:2209 lib/pychess/ic/__init__.py:100 msgid "Lightning" msgstr "Lightning" #: lib/pychess/ic/FICSObjects.py:60 lib/pychess/Variants/atomic.py:15 msgid "Atomic" msgstr "Atomic" #: lib/pychess/ic/FICSObjects.py:62 lib/pychess/Variants/bughouse.py:9 msgid "Bughouse" msgstr "Bughouse" #: lib/pychess/ic/FICSObjects.py:64 lib/pychess/Variants/crazyhouse.py:9 msgid "Crazyhouse" msgstr "Crazyhouse" #: lib/pychess/ic/FICSObjects.py:66 lib/pychess/Variants/losers.py:9 msgid "Losers" msgstr "Losers" #: lib/pychess/ic/FICSObjects.py:68 lib/pychess/Variants/suicide.py:12 msgid "Suicide" msgstr "Suicide" #: lib/pychess/ic/FICSObjects.py:70 lib/pychess/ic/__init__.py:129 msgid "Wild" msgstr "Wild" #: lib/pychess/ic/FICSObjects.py:117 msgid "Online" msgstr "Online" #: lib/pychess/ic/FICSObjects.py:118 lib/pychess/ic/FICSObjects.py:143 msgid "Offline" msgstr "Offline" #: lib/pychess/ic/FICSObjects.py:133 msgid "Available" msgstr "Available" #: lib/pychess/ic/FICSObjects.py:135 msgid "Playing" msgstr "Playing" #: lib/pychess/ic/FICSObjects.py:141 msgid "Idle" msgstr "Idle" #: lib/pychess/ic/FICSObjects.py:145 msgid "Examining" msgstr "Examining" #: lib/pychess/ic/FICSObjects.py:147 msgid "Not Available" msgstr "Not Available" #: lib/pychess/ic/FICSObjects.py:149 msgid "Running Simul Match" msgstr "Running Simul Match" #: lib/pychess/ic/FICSObjects.py:151 msgid "In Tournament" msgstr "In Tournament" #: lib/pychess/ic/FICSObjects.py:308 lib/pychess/ic/FICSObjects.py:492 #: lib/pychess/ic/ICLounge.py:2278 msgid "Unrated" msgstr "Unrated" #: lib/pychess/ic/FICSObjects.py:491 lib/pychess/ic/ICLounge.py:670 #: lib/pychess/ic/ICLounge.py:1358 lib/pychess/ic/ICLounge.py:1558 #: lib/pychess/ic/ICLounge.py:2113 msgid "Rated" msgstr "Rated" #: lib/pychess/ic/FICSObjects.py:498 lib/pychess/ic/ICLounge.py:2098 #, python-format msgid "%d min" msgstr "%d min" #: lib/pychess/ic/FICSObjects.py:500 #, python-format msgid " + %d sec" msgstr " + %d sec" #: lib/pychess/ic/FICSObjects.py:517 #, python-format msgid "%(player)s plays %(color)s" msgstr "%(player)s plays %(color)s" #: lib/pychess/ic/FICSObjects.py:519 lib/pychess/ic/ICLounge.py:909 msgid "white" msgstr "white" #: lib/pychess/ic/FICSObjects.py:519 lib/pychess/ic/ICLounge.py:909 msgid "black" msgstr "black" #: lib/pychess/ic/FICSObjects.py:565 msgid "This is a continuation of an adjourned match" msgstr "This is a continuation of an adjourned match" #: lib/pychess/ic/FICSObjects.py:654 msgid "Opponent Rating" msgstr "Opponent Rating" #: lib/pychess/ic/FICSObjects.py:656 msgid "Manual Accept" msgstr "Manual Accept" #: lib/pychess/ic/FICSObjects.py:810 msgid "Private" msgstr "Private" #: lib/pychess/ic/FICSObjects.py:930 lib/pychess/ic/ICLounge.py:527 #: lib/pychess/Savers/epd.py:139 msgid "Unknown" msgstr "Unknown" #: lib/pychess/ic/ICLogon.py:159 lib/pychess/ic/ICLogon.py:165 msgid "Connection Error" msgstr "Connection Error" #: lib/pychess/ic/ICLogon.py:161 msgid "Log on Error" msgstr "Log on Error" #: lib/pychess/ic/ICLogon.py:163 msgid "Connection was closed" msgstr "Connection was closed" #: lib/pychess/ic/ICLogon.py:169 msgid "Address Error" msgstr "Address Error" #: lib/pychess/ic/ICLogon.py:172 msgid "Auto-logout" msgstr "Auto-logout" #: lib/pychess/ic/ICLogon.py:173 msgid "You have been logged out because you were idle more than 60 minutes" msgstr "You have been logged out because you were idle more than 60 minutes" #: lib/pychess/ic/ICLounge.py:222 msgid "You have to set kibitz on to see bot messages here." msgstr "You have to set kibitz on to see bot messages here." #: lib/pychess/ic/ICLounge.py:241 msgid "" "You may only have 3 outstanding seeks at the same time. If you want to add a" " new seek you must clear your currently active seeks. Clear your seeks?" msgstr "You may only have 3 outstanding seeks at the same time. If you want to add a new seek you must clear your currently active seeks. Clear your seeks?" #: lib/pychess/ic/ICLounge.py:258 msgid "You can't touch this! You are examining a game." msgstr "" #: lib/pychess/ic/ICLounge.py:270 msgid " has declined your offer for a match" msgstr " has declined your offer for a match" #: lib/pychess/ic/ICLounge.py:283 msgid " is censoring you" msgstr " is censoring you" #: lib/pychess/ic/ICLounge.py:296 msgid " noplay listing you" msgstr " noplay listing you" #: lib/pychess/ic/ICLounge.py:311 msgid " uses a formula not fitting your match request:" msgstr " uses a formula not fitting your match request:" #: lib/pychess/ic/ICLounge.py:325 msgid "to manual accept" msgstr "to manual accept" #: lib/pychess/ic/ICLounge.py:327 msgid "to automatic accept" msgstr "to automatic accept" #: lib/pychess/ic/ICLounge.py:329 msgid "rating range now" msgstr "rating range now" #: lib/pychess/ic/ICLounge.py:330 msgid "Seek updated" msgstr "Seek updated" #: lib/pychess/ic/ICLounge.py:342 msgid "Your seeks have been removed" msgstr "Your seeks have been removed" #: lib/pychess/ic/ICLounge.py:363 msgid " has arrived" msgstr " has arrived" #: lib/pychess/ic/ICLounge.py:370 msgid " has departed" msgstr " has departed" #: lib/pychess/ic/ICLounge.py:374 msgid " is present" msgstr " is present" #: lib/pychess/ic/ICLounge.py:391 sidepanel/chatPanel.py:17 msgid "Chat" msgstr "Chat" #: lib/pychess/ic/ICLounge.py:472 sidepanel/bookPanel.py:366 msgid "Win" msgstr "Win" #: lib/pychess/ic/ICLounge.py:472 sidepanel/bookPanel.py:360 msgid "Draw" msgstr "Draw" #: lib/pychess/ic/ICLounge.py:472 sidepanel/bookPanel.py:363 msgid "Loss" msgstr "Loss" #: lib/pychess/ic/ICLounge.py:482 msgid "" "On FICS, your \"Wild\" rating encompasses all of the following variants at " "all time controls:\n" msgstr "On FICS, your \"Wild\" rating encompasses all of the following variants at all time controls:\n" #: lib/pychess/ic/ICLounge.py:494 msgid "Sanctions" msgstr "Sanctions" #: lib/pychess/ic/ICLounge.py:499 msgid "Email" msgstr "Email" #: lib/pychess/ic/ICLounge.py:504 msgid "Spent" msgstr "Spent" #: lib/pychess/ic/ICLounge.py:506 msgid "online in total" msgstr "online in total" #: lib/pychess/ic/ICLounge.py:512 msgid "Ping" msgstr "Ping" #: lib/pychess/ic/ICLounge.py:517 msgid "Connecting" msgstr "Connecting" #: lib/pychess/ic/ICLounge.py:544 msgid "" "You are currently logged in as a guest.\n" "A guest can't play rated games and therefore isn't able to play as many of the types of matches offered as a registered user. To register an account, go to http://www.freechess.org/Register/index.html." msgstr "You are currently logged in as a guest.\nA guest can't play rated games and therefore isn't able to play as many of the types of matches offered as a registered user. To register an account, go to http://www.freechess.org/Register/index.html." #: lib/pychess/ic/ICLounge.py:669 lib/pychess/ic/ICLounge.py:1136 msgid "Name" msgstr "Name" #: lib/pychess/ic/ICLounge.py:670 lib/pychess/ic/ICLounge.py:1358 #: lib/pychess/ic/ICLounge.py:1558 msgid "Type" msgstr "Type" #: lib/pychess/ic/ICLounge.py:670 lib/pychess/ic/ICLounge.py:1558 msgid "Clock" msgstr "Clock" #: lib/pychess/ic/ICLounge.py:726 lib/pychess/ic/ICLounge.py:923 #: lib/pychess/Players/Human.py:250 msgid "Accept" msgstr "Accept" #: lib/pychess/ic/ICLounge.py:728 msgid "Assess" msgstr "" #: lib/pychess/ic/ICLounge.py:734 msgid "Archived" msgstr "" #: lib/pychess/ic/ICLounge.py:848 #, python-format msgid "Active seeks: %d" msgstr "Active seeks: %d" #: lib/pychess/ic/ICLounge.py:897 #, python-format msgid "" " would like to resume your adjourned %(time)s %(gametype)s " "game." msgstr " would like to resume your adjourned %(time)s %(gametype)s game." #: lib/pychess/ic/ICLounge.py:902 #, python-format msgid "" " challenges you to a %(time)s %(rated)s %(gametype)s game" msgstr " challenges you to a %(time)s %(rated)s %(gametype)s game" #: lib/pychess/ic/ICLounge.py:907 #, python-format msgid " where %(player)s plays %(color)s." msgstr " where %(player)s plays %(color)s." #: lib/pychess/ic/ICLounge.py:924 lib/pychess/Players/Human.py:251 msgid "Decline" msgstr "Decline" #: lib/pychess/ic/ICLounge.py:1065 msgid " min" msgstr " min" #: lib/pychess/ic/ICLounge.py:1137 msgid "Status" msgstr "Status" #: lib/pychess/ic/ICLounge.py:1203 lib/pychess/ic/ICLounge.py:1233 #, python-format msgid "Players: %d" msgstr "Players: %d" #: lib/pychess/ic/ICLounge.py:1469 #, python-format msgid "Games running: %d" msgstr "Games running: %d" #: lib/pychess/ic/ICLounge.py:1559 msgid "Date/Time" msgstr "Date/Time" #: lib/pychess/ic/ICLounge.py:1614 #, python-format msgid "" " with whom you have an adjourned %(timecontrol)s %(gametype)s " "game is online." msgstr " with whom you have an adjourned %(timecontrol)s %(gametype)s game is online." #: lib/pychess/ic/ICLounge.py:1635 msgid "Request Continuation" msgstr "Request Continuation" #: lib/pychess/ic/ICLounge.py:1637 msgid "Examine Adjourned Game" msgstr "Examine Adjourned Game" #: lib/pychess/ic/ICLounge.py:1965 msgid "" "The chain button is disabled because you are logged in as a guest. Guests " "can't establish ratings, and the chain button's state has no effect when " "there is no rating to which to tie \"Opponent Strength\" to" msgstr "The chain button is disabled because you are logged in as a guest. Guests can't establish ratings, and the chain button's state has no effect when there is no rating to which to tie \"Opponent Strength\" to" #: lib/pychess/ic/ICLounge.py:2006 msgid "Challenge: " msgstr "Challenge: " #: lib/pychess/ic/ICLounge.py:2044 msgid "If set you can refuse players accepting your seek" msgstr "" #: lib/pychess/ic/ICLounge.py:2048 lib/pychess/ic/ICLounge.py:2051 msgid "This option is not applicable because you're challenging a player" msgstr "This option is not applicable because you're challenging a player" #: lib/pychess/ic/ICLounge.py:2064 msgid "Edit Seek: " msgstr "Edit Seek: " #: lib/pychess/ic/ICLounge.py:2095 #, python-format msgid "%(minutes)d min + %(gain)d sec/move" msgstr "%(minutes)d min + %(gain)d sec/move" #: lib/pychess/ic/ICLounge.py:2116 msgid "Manual" msgstr "Manual" #: lib/pychess/ic/ICLounge.py:2256 msgid "Any strength" msgstr "Any strength" #: lib/pychess/ic/ICLounge.py:2308 msgid "You can't play rated games because you are logged in as a guest" msgstr "You can't play rated games because you are logged in as a guest" #: lib/pychess/ic/ICLounge.py:2312 msgid "You can't play rated games because \"Untimed\" is checked, " msgstr "You can't play rated games because \"Untimed\" is checked, " #: lib/pychess/ic/ICLounge.py:2313 msgid "and on FICS, untimed games can't be rated" msgstr "and on FICS, untimed games can't be rated" #: lib/pychess/ic/ICLounge.py:2317 msgid "This option is not available because you're challenging a guest, " msgstr "This option is not available because you're challenging a guest, " #: lib/pychess/ic/ICLounge.py:2318 msgid "and guests can't play rated games" msgstr "and guests can't play rated games" #: lib/pychess/ic/ICLounge.py:2332 lib/pychess/Variants/shuffle.py:16 #: lib/pychess/widgets/newGameDialog.py:266 msgid "Shuffle" msgstr "Shuffle" #: lib/pychess/ic/ICLounge.py:2333 lib/pychess/widgets/newGameDialog.py:267 msgid "Other (standard rules)" msgstr "Other (standard rules)" #: lib/pychess/ic/ICLounge.py:2334 lib/pychess/widgets/newGameDialog.py:268 msgid "Other (non standard rules)" msgstr "Other (non standard rules)" #: lib/pychess/ic/ICLounge.py:2421 msgid "You can't select a variant because \"Untimed\" is checked, " msgstr "You can't select a variant because \"Untimed\" is checked, " #: lib/pychess/ic/ICLounge.py:2422 msgid "and on FICS, untimed games have to be normal chess rules" msgstr "and on FICS, untimed games have to be normal chess rules" #: lib/pychess/ic/ICLounge.py:2454 msgid "Change Tolerance" msgstr "Change Tolerance" #: lib/pychess/ic/__init__.py:102 msgid "Examined" msgstr "Examined" #: lib/pychess/ic/__init__.py:103 msgid "Other" msgstr "Other" #: lib/pychess/ic/__init__.py:182 msgid "Administrator" msgstr "Administrator" #: lib/pychess/ic/__init__.py:182 msgid "Blindfold Account" msgstr "Blindfold Account" #: lib/pychess/ic/__init__.py:182 msgid "Computer" msgstr "Computer" #: lib/pychess/ic/__init__.py:183 msgid "Team Account" msgstr "Team Account" #: lib/pychess/ic/__init__.py:183 msgid "Unregistered" msgstr "Unregistered" #: lib/pychess/ic/__init__.py:183 msgid "Chess Advisor" msgstr "Chess Advisor" #: lib/pychess/ic/__init__.py:184 msgid "Service Representative" msgstr "Service Representative" #: lib/pychess/ic/__init__.py:184 msgid "Tournament Director" msgstr "Tournament Director" #: lib/pychess/ic/__init__.py:184 msgid "Mamer Manager" msgstr "Mamer Manager" #: lib/pychess/ic/__init__.py:185 msgid "Grand Master" msgstr "Grand Master" #: lib/pychess/ic/__init__.py:185 msgid "International Master" msgstr "International Master" #: lib/pychess/ic/__init__.py:185 msgid "FIDE Master" msgstr "FIDE Master" #: lib/pychess/ic/__init__.py:186 msgid "Woman Grand Master" msgstr "Woman Grand Master" #: lib/pychess/ic/__init__.py:186 msgid "Woman International Master" msgstr "Woman International Master" #: lib/pychess/ic/__init__.py:186 msgid "Woman FIDE Master" msgstr "Woman FIDE Master" #: lib/pychess/ic/__init__.py:187 msgid "Dummy Account" msgstr "Dummy Account" #: lib/pychess/ic/__init__.py:191 msgid "*" msgstr "*" #: lib/pychess/ic/__init__.py:191 lib/pychess/Utils/repr.py:14 msgid "B" msgstr "B" #: lib/pychess/ic/__init__.py:191 msgid "C" msgstr "C" #: lib/pychess/ic/__init__.py:192 msgid "T" msgstr "T" #: lib/pychess/ic/__init__.py:192 msgid "U" msgstr "U" #: lib/pychess/ic/__init__.py:192 msgid "CA" msgstr "CA" #: lib/pychess/ic/__init__.py:193 msgid "SR" msgstr "SR" #: lib/pychess/ic/__init__.py:193 msgid "TD" msgstr "TD" #: lib/pychess/ic/__init__.py:193 msgid "TM" msgstr "TM" #: lib/pychess/ic/__init__.py:194 msgid "GM" msgstr "GM" #: lib/pychess/ic/__init__.py:194 msgid "IM" msgstr "IM" #: lib/pychess/ic/__init__.py:194 msgid "FM" msgstr "FM" #: lib/pychess/ic/__init__.py:195 msgid "WGM" msgstr "WGM" #: lib/pychess/ic/__init__.py:195 msgid "WIM" msgstr "WIM" #: lib/pychess/ic/__init__.py:195 msgid "WFM" msgstr "WFM" #: lib/pychess/ic/__init__.py:195 msgid "D" msgstr "D" #: lib/pychess/ic/__init__.py:195 msgid "H" msgstr "" #: lib/pychess/ic/__init__.py:195 msgid "CM" msgstr "" #: lib/pychess/ic/__init__.py:195 msgid "FA" msgstr "" #: lib/pychess/ic/__init__.py:195 msgid "NM" msgstr "" #: lib/pychess/Players/CECPEngine.py:857 #, python-format msgid "The engine %s reports an error:" msgstr "The engine %s reports an error:" #: lib/pychess/Players/Human.py:20 msgid "Your opponent has offered you a draw." msgstr "Your opponent has offered you a draw." #: lib/pychess/Players/Human.py:21 msgid "" "Your opponent has offered you a draw. If you accept this offer, the game " "will end with a score of 1/2 - 1/2." msgstr "Your opponent has offered you a draw. If you accept this offer, the game will end with a score of 1/2 - 1/2." #: lib/pychess/Players/Human.py:23 msgid "Your opponent wants to abort the game." msgstr "Your opponent wants to abort the game." #: lib/pychess/Players/Human.py:24 msgid "" "Your opponent has asked that the game be aborted. If you accept this offer, " "the game will end with no rating change." msgstr "Your opponent has asked that the game be aborted. If you accept this offer, the game will end with no rating change." #: lib/pychess/Players/Human.py:26 msgid "Your opponent wants to adjourn the game." msgstr "Your opponent wants to adjourn the game." #: lib/pychess/Players/Human.py:27 msgid "" "Your opponent has asked that the game be adjourned. If you accept this " "offer, the game will be adjourned and you can resume it later (when your " "opponent is online and both players agree to resume)." msgstr "Your opponent has asked that the game be adjourned. If you accept this offer, the game will be adjourned and you can resume it later (when your opponent is online and both players agree to resume)." #: lib/pychess/Players/Human.py:29 #, python-format msgid "Your opponent wants to undo %s move(s)." msgstr "Your opponent wants to undo %s move(s)." #: lib/pychess/Players/Human.py:30 #, python-format msgid "" "Your opponent has asked that the last %s move(s) be undone. If you accept " "this offer, the game will continue from the earlier position." msgstr "Your opponent has asked that the last %s move(s) be undone. If you accept this offer, the game will continue from the earlier position." #: lib/pychess/Players/Human.py:32 msgid "Your opponent wants to pause the game." msgstr "Your opponent wants to pause the game." #: lib/pychess/Players/Human.py:33 msgid "" "Your opponent has asked that the game be paused. If you accept this offer, " "the game clock will be paused until both players agree to resume the game." msgstr "Your opponent has asked that the game be paused. If you accept this offer, the game clock will be paused until both players agree to resume the game." #: lib/pychess/Players/Human.py:35 msgid "Your opponent wants to resume the game." msgstr "Your opponent wants to resume the game." #: lib/pychess/Players/Human.py:36 msgid "" "Your opponent has asked that the game be resumed. If you accept this offer, " "the game clock will continue from where it was paused." msgstr "Your opponent has asked that the game be resumed. If you accept this offer, the game clock will continue from where it was paused." #: lib/pychess/Players/Human.py:40 msgid "The resignation" msgstr "The resignation" #: lib/pychess/Players/Human.py:41 msgid "The flag call" msgstr "The flag call" #: lib/pychess/Players/Human.py:42 msgid "The draw offer" msgstr "The draw offer" #: lib/pychess/Players/Human.py:43 msgid "The abort offer" msgstr "The abort offer" #: lib/pychess/Players/Human.py:44 msgid "The adjourn offer" msgstr "The adjourn offer" #: lib/pychess/Players/Human.py:45 msgid "The pause offer" msgstr "The pause offer" #: lib/pychess/Players/Human.py:46 msgid "The resume offer" msgstr "The resume offer" #: lib/pychess/Players/Human.py:47 msgid "The offer to switch sides" msgstr "The offer to switch sides" #: lib/pychess/Players/Human.py:48 msgid "The takeback offer" msgstr "The takeback offer" #: lib/pychess/Players/Human.py:52 msgid "resign" msgstr "resign" #: lib/pychess/Players/Human.py:53 msgid "call your opponents flag" msgstr "call your opponents flag" #: lib/pychess/Players/Human.py:54 msgid "offer a draw" msgstr "offer a draw" #: lib/pychess/Players/Human.py:55 msgid "offer an abort" msgstr "offer an abort" #: lib/pychess/Players/Human.py:56 msgid "offer to adjourn" msgstr "offer to adjourn" #: lib/pychess/Players/Human.py:57 msgid "offer a pause" msgstr "offer a pause" #: lib/pychess/Players/Human.py:58 msgid "offer to resume" msgstr "offer to resume" #: lib/pychess/Players/Human.py:59 msgid "offer to switch sides" msgstr "offer to switch sides" #: lib/pychess/Players/Human.py:60 msgid "offer a takeback" msgstr "offer a takeback" #: lib/pychess/Players/Human.py:61 msgid "ask your opponent to move" msgstr "ask your opponent to move" #: lib/pychess/Players/Human.py:66 msgid "Your opponent is not out of time." msgstr "Your opponent is not out of time." #: lib/pychess/Players/Human.py:68 msgid "The clock hasn't been started yet." msgstr "The clock hasn't been started yet." #: lib/pychess/Players/Human.py:70 msgid "You can't switch colors during the game." msgstr "You can't switch colours during the game." #: lib/pychess/Players/Human.py:72 msgid "You have tried to undo too many moves." msgstr "You have tried to undo too many moves." #: lib/pychess/Players/Human.py:180 msgid "Your opponent asks you to hurry!" msgstr "Your opponent asks you to hurry!" #: lib/pychess/Players/Human.py:181 msgid "" "Generally this means nothing, as the game is time-based, but if you want to " "please your opponent, perhaps you should get going." msgstr "Generally this means nothing, as the game is time-based, but if you want to please your opponent, perhaps you should get going." #: lib/pychess/Players/Human.py:259 #, python-format msgid "%s was declined by your opponent" msgstr "%s was declined by your opponent" #: lib/pychess/Players/Human.py:260 #, python-format msgid "Resend %s?" msgstr "Resend %s?" #: lib/pychess/Players/Human.py:267 msgid "Resend" msgstr "Resend" #: lib/pychess/Players/Human.py:275 #, python-format msgid "%s was withdrawn by your opponent" msgstr "%s was withdrawn by your opponent" #: lib/pychess/Players/Human.py:276 msgid "Your opponent seems to have changed their mind." msgstr "Your opponent seems to have changed their mind." #: lib/pychess/Players/Human.py:290 #, python-format msgid "Unable to accept %s" msgstr "Unable to accept %s" #: lib/pychess/Players/Human.py:291 msgid "Probably because it has been withdrawn." msgstr "Probably because it has been withdrawn." #: lib/pychess/Players/Human.py:298 #, python-format msgid "%s returns an error" msgstr "%s returns an error" #: lib/pychess/Savers/chessalpha2.py:12 msgid "Chess Alpha 2 Diagram" msgstr "Chess Alpha 2 Diagram" #: lib/pychess/Savers/chesspastebin.py:39 msgid "Game shared at " msgstr "Game shared at " #: lib/pychess/Savers/chesspastebin.py:41 msgid "(Link is available on clipboard.)" msgstr "(Link is available on clipboard.)" #: lib/pychess/Savers/database.py:19 msgid "PyChess database" msgstr "PyChess database" #: lib/pychess/Savers/epd.py:12 msgid "Chess Position" msgstr "Chess Position" #: lib/pychess/Savers/fen.py:12 msgid "Simple Chess Position" msgstr "Simple Chess Position" #: lib/pychess/Savers/fen.py:44 lib/pychess/Savers/pgn.py:329 msgid "The game can't be loaded, because of an error parsing FEN" msgstr "The game can't be loaded, because of an error parsing FEN" #: lib/pychess/Savers/pgnbase.py:100 #, python-format msgid "" "The game can't be read to end, because of an error parsing move %(moveno)s " "'%(notation)s'." msgstr "The game can't be read to end, because of an error parsing move %(moveno)s '%(notation)s'." #: lib/pychess/Savers/pgnbase.py:102 #, python-format msgid "The move failed because %s." msgstr "The move failed because %s." #: lib/pychess/Savers/pgnbase.py:110 #, python-format msgid "Error parsing move %(moveno)s %(mstr)s" msgstr "Error parsing move %(moveno)s %(mstr)s" #: lib/pychess/Savers/pgn.py:28 msgid "Chess Game" msgstr "Chess Game" #: lib/pychess/Savers/pgn.py:362 msgid "Invalid move." msgstr "Invalid move." #: lib/pychess/Savers/png.py:15 msgid "Png image" msgstr "Png image" #: lib/pychess/System/ping.py:31 msgid "Destination Host Unreachable" msgstr "Destination Host Unreachable" #: lib/pychess/System/ping.py:74 msgid "Died" msgstr "Died" #: lib/pychess/Utils/GameModel.py:147 msgid "Local Event" msgstr "Local Event" #: lib/pychess/Utils/GameModel.py:148 msgid "Local Site" msgstr "Local Site" #: lib/pychess/Utils/repr.py:12 msgid "Pawn" msgstr "Pawn" #: lib/pychess/Utils/repr.py:14 msgid "P" msgstr "P" #: lib/pychess/Utils/repr.py:14 msgid "N" msgstr "N" #: lib/pychess/Utils/repr.py:14 msgid "R" msgstr "R" #: lib/pychess/Utils/repr.py:14 msgid "Q" msgstr "Q" #: lib/pychess/Utils/repr.py:14 msgid "K" msgstr "K" #: lib/pychess/Utils/repr.py:17 msgid "The game ended in a draw" msgstr "The game ended in a draw" #: lib/pychess/Utils/repr.py:18 #, python-format msgid "%(white)s won the game" msgstr "%(white)s won the game" #: lib/pychess/Utils/repr.py:19 #, python-format msgid "%(black)s won the game" msgstr "%(black)s won the game" #: lib/pychess/Utils/repr.py:20 msgid "The game has been killed" msgstr "The game has been killed" #: lib/pychess/Utils/repr.py:21 msgid "The game has been adjourned" msgstr "The game has been adjourned" #: lib/pychess/Utils/repr.py:22 msgid "The game has been aborted" msgstr "The game has been aborted" #: lib/pychess/Utils/repr.py:26 msgid "Because neither player has sufficient material to mate" msgstr "Because neither player has sufficient material to mate" #: lib/pychess/Utils/repr.py:27 msgid "Because the same position was repeated three times in a row" msgstr "Because the same position was repeated three times in a row" #: lib/pychess/Utils/repr.py:28 msgid "Because the last 50 moves brought nothing new" msgstr "Because the last 50 moves brought nothing new" #: lib/pychess/Utils/repr.py:29 msgid "Because both players ran out of time" msgstr "Because both players ran out of time" #: lib/pychess/Utils/repr.py:30 #, python-format msgid "Because %(mover)s stalemated" msgstr "Because %(mover)s stalemated" #: lib/pychess/Utils/repr.py:31 msgid "Because both players agreed to a draw" msgstr "Because both players agreed to a draw" #: lib/pychess/Utils/repr.py:32 lib/pychess/Utils/repr.py:42 msgid "Because of adjudication by an admin" msgstr "Because of adjudication by an admin" #: lib/pychess/Utils/repr.py:33 msgid "Because the game exceed the max length" msgstr "Because the game exceed the max length" #: lib/pychess/Utils/repr.py:34 #, python-format msgid "" "Because %(white)s ran out of time and %(black)s has insufficient material to" " mate" msgstr "Because %(white)s ran out of time and %(black)s has insufficient material to mate" #: lib/pychess/Utils/repr.py:35 #, python-format msgid "" "Because %(black)s ran out of time and %(white)s has insufficient material to" " mate" msgstr "Because %(black)s ran out of time and %(white)s has insufficient material to mate" #: lib/pychess/Utils/repr.py:36 msgid "Because both players have the same amount of pieces" msgstr "Because both players have the same amount of pieces" #: lib/pychess/Utils/repr.py:38 #, python-format msgid "Because %(loser)s resigned" msgstr "Because %(loser)s resigned" #: lib/pychess/Utils/repr.py:39 #, python-format msgid "Because %(loser)s ran out of time" msgstr "Because %(loser)s ran out of time" #: lib/pychess/Utils/repr.py:40 #, python-format msgid "Because %(loser)s was checkmated" msgstr "Because %(loser)s was Checkmated" #: lib/pychess/Utils/repr.py:41 #, python-format msgid "Because %(loser)s disconnected" msgstr "Because %(loser)s disconnected" #: lib/pychess/Utils/repr.py:43 #, python-format msgid "Because %(winner)s has fewer pieces" msgstr "Because %(winner)s has fewer pieces" #: lib/pychess/Utils/repr.py:44 #, python-format msgid "Because %(winner)s lost all pieces" msgstr "Because %(winner)s lost all pieces" #: lib/pychess/Utils/repr.py:45 #, python-format msgid "Because %(loser)s king exploded" msgstr "Because %(loser)s King exploded" #: lib/pychess/Utils/repr.py:46 #, python-format msgid "Because %(winner)s king reached the center" msgstr "Because %(winner)s king reached the centre" #: lib/pychess/Utils/repr.py:47 #, python-format msgid "Because %(winner)s was giving check 3 times" msgstr "Because %(winner)s was giving check 3 times" #: lib/pychess/Utils/repr.py:49 msgid "Because a player lost connection" msgstr "Because a player lost connection" #: lib/pychess/Utils/repr.py:50 msgid "Because both players agreed to an adjournment" msgstr "Because both players agreed to an adjournment" #: lib/pychess/Utils/repr.py:51 msgid "Because the server was shut down" msgstr "Because the server was shut down" #: lib/pychess/Utils/repr.py:52 msgid "" "Because a player lost connection and the other player requested adjournment" msgstr "Because a player lost connection and the other player requested adjournment" #: lib/pychess/Utils/repr.py:53 #, python-format msgid "" "Because %(black)s lost connection to the server and %(white)s requested " "adjournment" msgstr "Because %(black)s lost connection to the server and %(white)s requested adjournment" #: lib/pychess/Utils/repr.py:54 #, python-format msgid "" "Because %(white)s lost connection to the server and %(black)s requested " "adjournment" msgstr "Because %(white)s lost connection to the server and %(black)s requested adjournment" #: lib/pychess/Utils/repr.py:55 #, python-format msgid "Because %(white)s lost connection to the server" msgstr "Because %(white)s lost connection to the server" #: lib/pychess/Utils/repr.py:56 #, python-format msgid "Because %(black)s lost connection to the server" msgstr "Because %(black)s lost connection to the server" #: lib/pychess/Utils/repr.py:58 msgid "Because of adjudication by an admin. No rating changes have occurred." msgstr "Because of adjudication by an admin. No rating changes have occurred." #: lib/pychess/Utils/repr.py:59 msgid "" "Because both players agreed to abort the game. No rating changes have " "occurred." msgstr "Because both players agreed to abort the game. No rating changes have occurred." #: lib/pychess/Utils/repr.py:60 msgid "Because of courtesy by a player. No rating changes have occurred." msgstr "Because of courtesy by a player. No rating changes have occurred." #: lib/pychess/Utils/repr.py:61 msgid "" "Because a player aborted the game. Either player can abort the game without " "the other's consent before the second move. No rating changes have occurred." msgstr "Because a player aborted the game. Either player can abort the game without the other's consent before the second move. No rating changes have occurred." #: lib/pychess/Utils/repr.py:62 msgid "" "Because a player disconnected and there are too few moves to warrant " "adjournment. No rating changes have occurred." msgstr "Because a player disconnected and there are too few moves to warrant adjournment. No rating changes have occurred." #: lib/pychess/Utils/repr.py:63 msgid "Because the server was shut down. No rating changes have occurred." msgstr "Because the server was shut down. No rating changes have occurred." #: lib/pychess/Utils/repr.py:65 #, python-format msgid "Because the %(white)s engine died" msgstr "Because the %(white)s engine died" #: lib/pychess/Utils/repr.py:66 #, python-format msgid "Because the %(black)s engine died" msgstr "Because the %(black)s engine died" #: lib/pychess/Utils/repr.py:67 msgid "Because the connection to the server was lost" msgstr "Because the connection to the server was lost" #: lib/pychess/Utils/repr.py:68 msgid "The reason is unknown" msgstr "The reason is unknown" #: lib/pychess/Utils/TimeModel.py:229 msgid "min" msgstr "min" #: lib/pychess/Utils/TimeModel.py:231 msgid "sec" msgstr "sec" #: lib/pychess/Variants/asean.py:12 msgid "" "ASEAN: http://www.ncf-" "phil.org/downloadables/2014/May/Asean_chess/Laws_of_ASEAN_Chess_2011_Nov_26.doc" msgstr "ASEAN: http://www.ncf-phil.org/downloadables/2014/May/Asean_chess/Laws_of_ASEAN_Chess_2011_Nov_26.doc" #: lib/pychess/Variants/asean.py:13 msgid "ASEAN" msgstr "ASEAN" #: lib/pychess/Variants/asean.py:33 msgid "Makruk: http://en.wikipedia.org/wiki/Makruk" msgstr "Makruk: http://en.wikipedia.org/wiki/Makruk" #: lib/pychess/Variants/asean.py:34 msgid "Makruk" msgstr "Makruk" #: lib/pychess/Variants/asean.py:60 msgid "Cambodian: http://www.khmerinstitute.org/culture/ok.html" msgstr "Cambodian: http://www.khmerinstitute.org/culture/ok.html" #: lib/pychess/Variants/asean.py:61 msgid "Cambodian" msgstr "Cambodian" #: lib/pychess/Variants/asean.py:86 msgid "" "Ai-Wok: http://www.open-" "aurec.com/wbforum/viewtopic.php?p=199364&sid=20963a1de2c164050de019e5ed6bf7c4#p199364" msgstr "Ai-Wok: http://www.open-aurec.com/wbforum/viewtopic.php?p=199364&sid=20963a1de2c164050de019e5ed6bf7c4#p199364" #: lib/pychess/Variants/asean.py:87 msgid "Ai-Wok" msgstr "Ai-Wok" #: lib/pychess/Variants/asean.py:111 msgid "Sittuyin: http://en.wikipedia.org/wiki/Sittuyin" msgstr "Sittuyin: http://en.wikipedia.org/wiki/Sittuyin" #: lib/pychess/Variants/asean.py:112 msgid "Sittuyin" msgstr "Sittuyin" #: lib/pychess/Variants/asymmetricrandom.py:12 msgid "" "FICS wild/4: http://www.freechess.org/Help/HelpFiles/wild.html\n" "* Randomly chosen pieces (two queens or three rooks possible)\n" "* Exactly one king of each color\n" "* Pieces placed randomly behind the pawns, SUBJECT TO THE CONSTRAINT THAT THE BISHOPS ARE BALANCED\n" "* No castling\n" "* Black's arrangement DOES NOT mirrors white's" msgstr "FICS wild/4: http://www.freechess.org/Help/HelpFiles/wild.html\n* Randomly chosen pieces (two queens or three rooks possible)\n* Exactly one king of each colour\n* Pieces placed randomly behind the pawns, SUBJECT TO THE CONSTRAINT THAT THE BISHOPS ARE BALANCED\n* No castling\n* Black's arrangement DOES NOT mirrors white's" #: lib/pychess/Variants/asymmetricrandom.py:18 msgid "Asymmetric Random" msgstr "Asymmetric Random" #: lib/pychess/Variants/atomic.py:14 msgid "FICS atomic: http://www.freechess.org/Help/HelpFiles/atomic.html" msgstr "FICS atomic: http://www.freechess.org/Help/HelpFiles/atomic.html" #: lib/pychess/Variants/blindfold.py:7 msgid "" "Classic chess rules with hidden figurines\n" "http://en.wikipedia.org/wiki/Blindfold_chess" msgstr "Classic chess rules with hidden figurines\nhttp://en.wikipedia.org/wiki/Blindfold_chess" #: lib/pychess/Variants/blindfold.py:9 #: lib/pychess/widgets/newGameDialog.py:264 msgid "Blindfold" msgstr "Blindfold" #: lib/pychess/Variants/blindfold.py:18 msgid "" "Classic chess rules with hidden pawns\n" "http://en.wikipedia.org/wiki/Blindfold_chess" msgstr "Classic chess rules with hidden pawns\nhttp://en.wikipedia.org/wiki/Blindfold_chess" #: lib/pychess/Variants/blindfold.py:20 msgid "Hidden pawns" msgstr "Hidden pawns" #: lib/pychess/Variants/blindfold.py:29 msgid "" "Classic chess rules with hidden pieces\n" "http://en.wikipedia.org/wiki/Blindfold_chess" msgstr "Classic chess rules with hidden pieces\nhttp://en.wikipedia.org/wiki/Blindfold_chess" #: lib/pychess/Variants/blindfold.py:31 msgid "Hidden pieces" msgstr "Hidden pieces" #: lib/pychess/Variants/blindfold.py:40 msgid "" "Classic chess rules with all pieces white\n" "http://en.wikipedia.org/wiki/Blindfold_chess" msgstr "Classic chess rules with all pieces white\nhttp://en.wikipedia.org/wiki/Blindfold_chess" #: lib/pychess/Variants/blindfold.py:42 msgid "All white" msgstr "All white" #: lib/pychess/Variants/bughouse.py:8 msgid "FICS bughouse: http://www.freechess.org/Help/HelpFiles/bughouse.html" msgstr "FICS bughouse: http://www.freechess.org/Help/HelpFiles/bughouse.html" #: lib/pychess/Variants/corner.py:12 msgid "" "http://brainking.com/en/GameRules?tp=2\n" "* Placement of the pieces on the 1st and 8th row are randomized\n" "* The king is in the right hand corner\n" "* Bishops must start on opposite color squares\n" "* Black's starting position is obtained by rotating white's position 180 degrees around the board's center\n" "* No castling" msgstr "http://brainking.com/en/GameRules?tp=2\n* Placement of the pieces on the 1st and 8th row are randomised\n* The king is in the right hand corner\n* Bishops must start on opposite colour squares\n* Black's starting position is obtained by rotating white's position 180 degrees around the board's centre\n* No castling" #: lib/pychess/Variants/corner.py:18 msgid "Corner" msgstr "Corner" #: lib/pychess/Variants/crazyhouse.py:8 msgid "" "FICS crazyhouse: http://www.freechess.org/Help/HelpFiles/crazyhouse.html" msgstr "FICS crazyhouse: http://www.freechess.org/Help/HelpFiles/crazyhouse.html" #: lib/pychess/Variants/euroshogi.py:9 msgid "EuroShogi: http://en.wikipedia.org/wiki/EuroShogi" msgstr "EuroShogi: http://en.wikipedia.org/wiki/EuroShogi" #: lib/pychess/Variants/euroshogi.py:10 msgid "EuroShogi" msgstr "EuroShogi" #: lib/pychess/Variants/fischerandom.py:18 msgid "" "http://en.wikipedia.org/wiki/Chess960\n" "FICS wild/fr: http://www.freechess.org/Help/HelpFiles/wild.html" msgstr "http://en.wikipedia.org/wiki/Chess960\nFICS wild/fr: http://www.freechess.org/Help/HelpFiles/wild.html" #: lib/pychess/Variants/fischerandom.py:20 msgid "Fischer Random" msgstr "Fischer Random" #: lib/pychess/Variants/kingofthehill.py:8 msgid "" "Bringing your king legally to the center (e4, d4, e5, d5) instantly wins the game!\n" "Normal rules apply in other cases and checkmate also ends the game." msgstr "Bringing your king legally to the centre (e4, d4, e5, d5) instantly wins the game!\nNormal rules apply in other cases and checkmate also ends the game." #: lib/pychess/Variants/kingofthehill.py:10 msgid "King of the hill" msgstr "King of the hill" #: lib/pychess/Variants/knightodds.py:8 msgid "One player starts with one less knight piece" msgstr "One player starts with one less knight piece" #: lib/pychess/Variants/knightodds.py:9 msgid "Knight odds" msgstr "Knight odds" #: lib/pychess/Variants/losers.py:8 msgid "FICS losers: http://www.freechess.org/Help/HelpFiles/losers_chess.html" msgstr "FICS losers: http://www.freechess.org/Help/HelpFiles/losers_chess.html" #: lib/pychess/Variants/normal.py:4 msgid "" "Classic chess rules\n" "http://en.wikipedia.org/wiki/Chess" msgstr "Classic chess rules\nhttp://en.wikipedia.org/wiki/Chess" #: lib/pychess/Variants/normal.py:6 lib/pychess/widgets/newGameDialog.py:157 msgid "Normal" msgstr "Normal" #: lib/pychess/Variants/pawnodds.py:8 msgid "One player starts with one less pawn piece" msgstr "One player starts with one less pawn piece" #: lib/pychess/Variants/pawnodds.py:9 msgid "Pawn odds" msgstr "Pawn odds" #: lib/pychess/Variants/pawnspassed.py:11 msgid "" "FICS wild/8a: http://www.freechess.org/Help/HelpFiles/wild.html\n" "White pawns start on 5th rank and black pawns on the 4th rank" msgstr "FICS wild/8a: http://www.freechess.org/Help/HelpFiles/wild.html\nWhite pawns start on 5th rank and black pawns on the 4th rank" #: lib/pychess/Variants/pawnspassed.py:13 msgid "Pawns Passed" msgstr "Pawns Passed" #: lib/pychess/Variants/pawnspushed.py:10 msgid "" "FICS wild/8: http://www.freechess.org/Help/HelpFiles/wild.html\n" "Pawns start on 4th and 5th ranks rather than 2nd and 7th" msgstr "FICS wild/8: http://www.freechess.org/Help/HelpFiles/wild.html\nPawns start on 4th and 5th ranks rather than 2nd and 7th" #: lib/pychess/Variants/pawnspushed.py:12 msgid "Pawns Pushed" msgstr "Pawns Pushed" #: lib/pychess/Variants/queenodds.py:8 msgid "One player starts with one less queen piece" msgstr "One player starts with one less queen piece" #: lib/pychess/Variants/queenodds.py:9 msgid "Queen odds" msgstr "Queen odds" #: lib/pychess/Variants/randomchess.py:11 msgid "" "FICS wild/3: http://www.freechess.org/Help/HelpFiles/wild.html\n" "* Randomly chosen pieces (two queens or three rooks possible)\n" "* Exactly one king of each color\n" "* Pieces placed randomly behind the pawns\n" "* No castling\n" "* Black's arrangement mirrors white's" msgstr "FICS wild/3: http://www.freechess.org/Help/HelpFiles/wild.html\n* Randomly chosen pieces (two queens or three rooks possible)\n* Exactly one king of each colour\n* Pieces placed randomly behind the pawns\n* No castling\n* Black's arrangement mirrors white's" #: lib/pychess/Variants/randomchess.py:17 #: lib/pychess/widgets/TaskerManager.py:155 msgid "Random" msgstr "Random" #: lib/pychess/Variants/rookodds.py:8 msgid "One player starts with one less rook piece" msgstr "One player starts with one less rook piece" #: lib/pychess/Variants/rookodds.py:9 msgid "Rook odds" msgstr "Rook odds" #: lib/pychess/Variants/shuffle.py:11 msgid "" "xboard nocastle: http://home.hccnet.nl/h.g.muller/engine-intf.html#8\n" "FICS wild/2: http://www.freechess.org/Help/HelpFiles/wild.html\n" "* Random arrangement of the pieces behind the pawns\n" "* No castling\n" "* Black's arrangement mirrors white's" msgstr "xboard nocastle: http://home.hccnet.nl/h.g.muller/engine-intf.html#8\nFICS wild/2: http://www.freechess.org/Help/HelpFiles/wild.html\n* Random arrangement of the pieces behind the pawns\n* No castling\n* Black's arrangement mirrors white's" #: lib/pychess/Variants/suicide.py:11 msgid "" "FICS suicide: http://www.freechess.org/Help/HelpFiles/suicide_chess.html" msgstr "FICS suicide: http://www.freechess.org/Help/HelpFiles/suicide_chess.html" #: lib/pychess/Variants/theban.py:10 msgid "" "Variant developed by Kai Laskos: " "http://talkchess.com/forum/viewtopic.php?t=40990" msgstr "Variant developed by Kai Laskos: http://talkchess.com/forum/viewtopic.php?t=40990" #: lib/pychess/Variants/theban.py:11 msgid "Theban" msgstr "Theban" #: lib/pychess/Variants/threecheck.py:10 msgid "Win by giving check 3 times" msgstr "Win by giving check 3 times" #: lib/pychess/Variants/threecheck.py:11 msgid "Three-check" msgstr "Three-check" #: lib/pychess/Variants/upsidedown.py:10 msgid "" "FICS wild/5: http://www.freechess.org/Help/HelpFiles/wild.html\n" "http://en.wikipedia.org/wiki/Chess_variant#Chess_with_different_starting_positions\n" "Pawns start on their 7th rank rather than their 2nd rank!" msgstr "FICS wild/5: http://www.freechess.org/Help/HelpFiles/wild.html\nhttp://en.wikipedia.org/wiki/Chess_variant#Chess_with_different_starting_positions\nPawns start on their 7th rank rather than their 2nd rank!" #: lib/pychess/Variants/upsidedown.py:13 msgid "Upside Down" msgstr "Upside Down" #: lib/pychess/Variants/wildcastle.py:10 msgid "" "xboard wildcastle http://home.hccnet.nl/h.g.muller/engine-intf.html#8\n" "FICS wild/0: http://www.freechess.org/Help/HelpFiles/wild.html\n" "* White has the typical set-up at the start.\n" "* Black's pieces are the same, except that the King and Queen are reversed,\n" "* so they are not on the same files as White's King and Queen.\n" "* Castling is done similarly to normal chess:\n" "* o-o-o indicates long castling and o-o short castling." msgstr "xboard wildcastle http://home.hccnet.nl/h.g.muller/engine-intf.html#8\nFICS wild/0: http://www.freechess.org/Help/HelpFiles/wild.html\n* White has the typical set-up at the start.\n* Black's pieces are the same, except that the King and Queen are reversed,\n* so they are not on the same files as White's King and Queen.\n* Castling is done similarly to normal chess:\n* o-o-o indicates long castling and o-o short castling." #: lib/pychess/Variants/wildcastle.py:17 msgid "Wildcastle" msgstr "Wildcastle" #: lib/pychess/Variants/wildcastleshuffle.py:11 msgid "" "xboard wildcastle http://home.hccnet.nl/h.g.muller/engine-intf.html#8\n" "FICS wild/1: http://www.freechess.org/Help/HelpFiles/wild.html\n" "* In this variant both sides have the same set of pieces as in normal chess.\n" "* The white king starts on d1 or e1 and the black king starts on d8 or e8,\n" "* and the rooks are in their usual positions.\n" "* Bishops are always on opposite colors.\n" "* Subject to these constraints the position of the pieces on their first ranks is random.\n" "* Castling is done similarly to normal chess:\n" "* o-o-o indicates long castling and o-o short castling." msgstr "xboard wildcastle http://home.hccnet.nl/h.g.muller/engine-intf.html#8\nFICS wild/1: http://www.freechess.org/Help/HelpFiles/wild.html\n* In this variant both sides have the same set of pieces as in normal chess.\n* The white king starts on d1 or e1 and the black king starts on d8 or e8,\n* and the rooks are in their usual positions.\n* Bishops are always on opposite colours.\n* Subject to these constraints the position of the pieces on their first ranks is random.\n* Castling is done similarly to normal chess:\n* o-o-o indicates long castling and o-o short castling." #: lib/pychess/Variants/wildcastleshuffle.py:20 msgid "Wildcastle shuffle" msgstr "Wildcastle shuffle" #: lib/pychess/widgets/analyzegameDialog.py:85 msgid "Game analyzing in progress..." msgstr "Game analysing in progress..." #: lib/pychess/widgets/analyzegameDialog.py:86 msgid "Do you want to abort it?" msgstr "Do you want to abort it?" #: lib/pychess/widgets/analyzegameDialog.py:95 #: lib/pychess/widgets/gamewidget.py:202 lib/pychess/widgets/gamewidget.py:320 msgid "Abort" msgstr "Abort" #: lib/pychess/widgets/ChatView.py:125 msgid "Observers" msgstr "" #: lib/pychess/widgets/ChatWindow.py:222 msgid "You have opened no conversations yet" msgstr "You have opened no conversations yet" #: lib/pychess/widgets/ChatWindow.py:254 msgid "Only registered users may talk to this channel" msgstr "Only registered users may talk to this channel" #: lib/pychess/widgets/ChatWindow.py:312 msgid "No conversation's selected" msgstr "No conversation's selected" #: lib/pychess/widgets/ChatWindow.py:350 msgid "Loading player data" msgstr "Loading player data" #: lib/pychess/widgets/ChatWindow.py:400 msgid "Receiving list of players" msgstr "Receiving list of players" #: lib/pychess/widgets/ChatWindow.py:518 msgid "Friends" msgstr "Friends" #: lib/pychess/widgets/ChatWindow.py:529 msgid "Admin" msgstr "" #: lib/pychess/widgets/ChatWindow.py:540 msgid "More channels" msgstr "More channels" #: lib/pychess/widgets/ChatWindow.py:548 msgid "More players" msgstr "More players" #: lib/pychess/widgets/ChatWindow.py:558 msgid "Computers" msgstr "" #: lib/pychess/widgets/ChatWindow.py:568 msgid "BlindFold" msgstr "" #: lib/pychess/widgets/ChatWindow.py:578 msgid "Guests" msgstr "" #: lib/pychess/widgets/ChatWindow.py:805 msgid "Conversations" msgstr "Conversations" #: lib/pychess/widgets/ChatWindow.py:807 msgid "Conversation info" msgstr "Conversation info" #: lib/pychess/widgets/enginesDialog.py:152 msgid "Select engine" msgstr "Select engine" #: lib/pychess/widgets/enginesDialog.py:156 msgid "Executable files" msgstr "Executable files" #: lib/pychess/widgets/enginesDialog.py:176 #: lib/pychess/widgets/enginesDialog.py:210 #: lib/pychess/widgets/enginesDialog.py:235 #, python-format msgid "Unable to add %s" msgstr "Unable to add %s" #: lib/pychess/widgets/enginesDialog.py:177 msgid "wine not installed" msgstr "Wine not installed" #: lib/pychess/widgets/enginesDialog.py:211 #: lib/pychess/widgets/enginesDialog.py:236 msgid "There is something wrong with this executable" msgstr "There is something wrong with this executable" #: lib/pychess/widgets/enginesDialog.py:266 msgid "Select working directory" msgstr "Select working directory" #: lib/pychess/widgets/gamenanny.py:115 #, python-format msgid " invalid engine move: %s" msgstr " invalid engine move: %s" #: lib/pychess/widgets/gamenanny.py:134 msgid "Offer Rematch" msgstr "Offer Rematch" #: lib/pychess/widgets/gamenanny.py:136 lib/pychess/widgets/gamenanny.py:147 #, python-format msgid "Observe %s" msgstr "Observe %s" #: lib/pychess/widgets/gamenanny.py:168 msgid "Play Rematch" msgstr "Play Rematch" #: lib/pychess/widgets/gamenanny.py:171 msgid "Undo one move" msgstr "Undo one move" #: lib/pychess/widgets/gamenanny.py:173 msgid "Undo two moves" msgstr "Undo two moves" #: lib/pychess/widgets/gamenanny.py:203 msgid "The game is paused" msgstr "The game is paused" #: lib/pychess/widgets/gamenanny.py:221 lib/pychess/widgets/gamenanny.py:222 msgid "Loaded game" msgstr "Loaded game" #: lib/pychess/widgets/gamenanny.py:228 msgid "Saved game" msgstr "Saved game" #: lib/pychess/widgets/gamenanny.py:232 msgid "Analyzer started" msgstr "Analyser started" #: lib/pychess/widgets/gamenanny.py:281 msgid "You sent an abort offer" msgstr "You sent an abort offer" #: lib/pychess/widgets/gamenanny.py:283 msgid "You sent an adjournment offer" msgstr "You sent an adjournment offer" #: lib/pychess/widgets/gamenanny.py:285 msgid "You sent a draw offer" msgstr "You sent a draw offer" #: lib/pychess/widgets/gamenanny.py:287 msgid "You sent a pause offer" msgstr "You sent a pause offer" #: lib/pychess/widgets/gamenanny.py:289 msgid "You sent a resume offer" msgstr "You sent a resume offer" #: lib/pychess/widgets/gamenanny.py:291 msgid "You sent an undo offer" msgstr "You sent an undo offer" #: lib/pychess/widgets/gamenanny.py:293 msgid "You asked your opponent to move" msgstr "You asked your opponent to move" #: lib/pychess/widgets/gamenanny.py:305 #, python-format msgid "Engine, %s, has died" msgstr "Engine, %s, has died" #: lib/pychess/widgets/gamenanny.py:306 msgid "" "PyChess has lost connection to the engine, probably because it has died.\n" "\n" "You can try to start a new game with the engine, or try to play against another one." msgstr "PyChess has lost connection to the engine, probably because it has died.\n\nYou can try to start a new game with the engine, or try to play against another one." #: lib/pychess/widgets/gamewidget.py:204 msgid "" "This game can be automatically aborted without rating loss because there has" " not yet been two moves made" msgstr "This game can be automatically aborted without rating loss because there has not yet been two moves made" #: lib/pychess/widgets/gamewidget.py:206 msgid "Offer Abort" msgstr "Offer Abort" #: lib/pychess/widgets/gamewidget.py:208 msgid "" "Your opponent must agree to abort the game because there has been two or " "more moves made" msgstr "Your opponent must agree to abort the game because there has been two or more moves made" #: lib/pychess/widgets/gamewidget.py:226 msgid "This game can not be adjourned because one or both players are guests" msgstr "This game can not be adjourned because one or both players are guests" #: lib/pychess/widgets/gamewidget.py:243 msgid "Claim Draw" msgstr "Claim Draw" #: lib/pychess/widgets/gamewidget.py:325 msgid "Pause" msgstr "Pause" #: lib/pychess/widgets/gamewidget.py:326 msgid "Resume" msgstr "Resume" #: lib/pychess/widgets/gamewidget.py:328 msgid "Offer Pause" msgstr "Offer Pause" #: lib/pychess/widgets/gamewidget.py:329 msgid "Offer Resume" msgstr "Offer Resume" #: lib/pychess/widgets/gamewidget.py:333 msgid "Undo" msgstr "Undo" #: lib/pychess/widgets/gamewidget.py:335 msgid "Offer Undo" msgstr "Offer Undo" #: lib/pychess/widgets/gamewidget.py:550 msgid " has lagged for 30 seconds" msgstr " has lagged for 30 seconds" #: lib/pychess/widgets/gamewidget.py:566 msgid " is lagging heavily but hasn't disconnected" msgstr " is lagging heavily but hasn't disconnected" #: lib/pychess/widgets/gamewidget.py:567 msgid "Continue to wait for opponent, or try to adjourn the game?" msgstr "Continue to wait for opponent, or try to adjourn the game?" #: lib/pychess/widgets/gamewidget.py:575 msgid "Wait" msgstr "Wait" #: lib/pychess/widgets/gamewidget.py:576 msgid "Adjourn" msgstr "Adjourn" #: lib/pychess/widgets/gamewidget.py:648 msgid "Jump to initial position" msgstr "Jump to initial position" #: lib/pychess/widgets/gamewidget.py:653 msgid "Step back one move" msgstr "Step back one move" #: lib/pychess/widgets/gamewidget.py:658 msgid "Go back to the main line" msgstr "" #: lib/pychess/widgets/gamewidget.py:664 msgid "Step forward one move" msgstr "Step forward one move" #: lib/pychess/widgets/gamewidget.py:669 msgid "Jump to latest position" msgstr "Jump to latest position" #: lib/pychess/widgets/gamewidget.py:903 msgid "PyChess was unable to load your panel settings" msgstr "PyChess was unable to load your panel settings" #: lib/pychess/widgets/gamewidget.py:904 msgid "" "Your panel settings have been reset. If this problem repeats, you should " "report it to the developers" msgstr "Your panel settings have been reset. If this problem repeats, you should report it to the developers" #: lib/pychess/widgets/ionest.py:67 lib/pychess/widgets/newGameDialog.py:389 #: lib/pychess/widgets/TaskerManager.py:210 msgid "You" msgstr "You" #: lib/pychess/widgets/ionest.py:70 lib/pychess/widgets/newGameDialog.py:390 #: lib/pychess/widgets/preferencesDialog.py:61 #: lib/pychess/widgets/TaskerManager.py:213 msgid "Guest" msgstr "Guest" #: lib/pychess/widgets/ionest.py:93 msgid "Error loading game" msgstr "Error loading game" #: lib/pychess/widgets/ionest.py:127 lib/pychess/widgets/newGameDialog.py:480 msgid "Open Game" msgstr "Open Game" #: lib/pychess/widgets/ionest.py:137 msgid "All Files" msgstr "All Files" #: lib/pychess/widgets/ionest.py:140 msgid "Detect type automatically" msgstr "Detect type automatically" #: lib/pychess/widgets/ionest.py:146 msgid "All Chess Files" msgstr "All Chess Files" #: lib/pychess/widgets/ionest.py:228 msgid "Save Game" msgstr "Save Game" #: lib/pychess/widgets/ionest.py:228 msgid "Export position" msgstr "Export position" #: lib/pychess/widgets/ionest.py:232 lib/pychess/widgets/ionest.py:360 msgid "vs." msgstr "vs." #: lib/pychess/widgets/ionest.py:249 #, python-format msgid "Unknown file type '%s'" msgstr "Unknown file type '%s'" #: lib/pychess/widgets/ionest.py:250 #, python-format msgid "" "Was unable to save '%(uri)s' as PyChess doesn't know the format " "'%(ending)s'." msgstr "Was unable to save '%(uri)s' as PyChess doesn't know the format '%(ending)s'." #: lib/pychess/widgets/ionest.py:266 #, python-format msgid "Unable to save file '%s'" msgstr "Unable to save file '%s'" #: lib/pychess/widgets/ionest.py:268 msgid "" "You don't have the necessary rights to save the file.\n" "Please ensure that you have given the right path and try again." msgstr "You don't have the necessary rights to save the file.\nPlease ensure that you have given the right path and try again." #: lib/pychess/widgets/ionest.py:276 msgid "_Replace" msgstr "_Replace" #: lib/pychess/widgets/ionest.py:280 msgid "File exists" msgstr "File exists" #: lib/pychess/widgets/ionest.py:282 #, python-format msgid "" "A file named '%s' already exists. Would you like to replace " "it?" msgstr "A file named '%s' already exists. Would you like to replace it?" #: lib/pychess/widgets/ionest.py:283 #, python-format msgid "" "The file already exists in '%s'. If you replace it, its content will be " "overwritten." msgstr "The file already exists in '%s'. If you replace it, its content will be overwritten." #: lib/pychess/widgets/ionest.py:299 msgid "Could not save the file" msgstr "Could not save the file" #: lib/pychess/widgets/ionest.py:300 msgid "PyChess was not able to save the game" msgstr "PyChess was not able to save the game" #: lib/pychess/widgets/ionest.py:301 #, python-format msgid "The error was: %s" msgstr "The error was: %s" #: lib/pychess/widgets/ionest.py:325 #, python-format msgid "There is %d game with unsaved moves." msgid_plural "There are %d games with unsaved moves." msgstr[0] "There is %d game with unsaved moves." msgstr[1] "There are %d games with unsaved moves." #: lib/pychess/widgets/ionest.py:328 msgid "Save moves before closing?" msgstr "Save moves before closing?" #: lib/pychess/widgets/ionest.py:339 msgid "Unable to save to configured file. Save the games before closing?" msgstr "Unable to save to configured file. Save the games before closing?" #: lib/pychess/widgets/ionest.py:366 #, python-format msgid "_Save %d document" msgid_plural "_Save %d documents" msgstr[0] "_Save %d document" msgstr[1] "_Save %d documents" #: lib/pychess/widgets/ionest.py:412 msgid "Save the current game before you close it?" msgstr "Save the current game before you close it?" #: lib/pychess/widgets/ionest.py:420 msgid "" "Unable to save to configured file. Save the current game before you close " "it?" msgstr "Unable to save to configured file. Save the current game before you close it?" #: lib/pychess/widgets/ionest.py:434 msgid "" "It is not possible later to continue the game,\n" "if you don't save it." msgstr "It is not possible later to continue the game,\nif you don't save it." #: lib/pychess/widgets/LogDialog.py:26 msgid "PyChess Information Window" msgstr "PyChess Information Window" #: lib/pychess/widgets/LogDialog.py:184 lib/pychess/widgets/LogDialog.py:188 msgid "of" msgstr "of" #: lib/pychess/widgets/newGameDialog.py:84 #: lib/pychess/widgets/newGameDialog.py:85 msgid "Human Being" msgstr "Human Being" #: lib/pychess/widgets/newGameDialog.py:155 msgid "Rapid" msgstr "Rapid" #: lib/pychess/widgets/newGameDialog.py:224 msgid "Minutes:" msgstr "Minutes:" #: lib/pychess/widgets/newGameDialog.py:228 msgid "Gain:" msgstr "Gain:" #: lib/pychess/widgets/newGameDialog.py:241 #, python-format msgid "%(name)s %(minutes)d min + %(gain)d sec/move" msgstr "%(name)s %(minutes)d min + %(gain)d sec/move" #: lib/pychess/widgets/newGameDialog.py:244 #, python-format msgid "%(name)s %(minutes)d min %(gain)d sec/move" msgstr "%(name)s %(minutes)d min %(gain)d sec/move" #: lib/pychess/widgets/newGameDialog.py:247 #, python-format msgid "%(name)s %(minutes)d min" msgstr "%(name)s %(minutes)d min" #: lib/pychess/widgets/newGameDialog.py:265 msgid "Odds" msgstr "Odds" #: lib/pychess/widgets/newGameDialog.py:269 msgid "Asian variants" msgstr "Asian variants" #: lib/pychess/widgets/newGameDialog.py:301 msgid " chess" msgstr " chess" #: lib/pychess/widgets/newGameDialog.py:682 msgid "Type or paste PGN game or FEN positions here" msgstr "Type or paste PGN game or FEN positions here" #: lib/pychess/widgets/newGameDialog.py:725 msgid "Enter Game" msgstr "Enter Game" #: lib/pychess/widgets/preferencesDialog.py:123 msgid "Select book file" msgstr "Select book file" #: lib/pychess/widgets/preferencesDialog.py:128 msgid "Opening books" msgstr "Opening books" #: lib/pychess/widgets/preferencesDialog.py:156 msgid "Select Gaviota TB path" msgstr "Select Gaviota TB path" #: lib/pychess/widgets/preferencesDialog.py:331 msgid "Open Sound File" msgstr "Open Sound File" #: lib/pychess/widgets/preferencesDialog.py:341 msgid "Sound files" msgstr "Sound files" #: lib/pychess/widgets/preferencesDialog.py:485 msgid "Undescribed panel" msgstr "Undescribed panel" #: lib/pychess/widgets/preferencesDialog.py:678 msgid "Select auto save path" msgstr "Select auto save path" #: lib/pychess/widgets/tipOfTheDay.py:51 msgid "" "You can start a new game by Game > New Game, in New Game " "window do you can choose Players, Time Control and Chess " "Variants." msgstr "You can start a new game by Game > New Game, in New Game window do you can choose Players, Time Control and Chess Variants." #: lib/pychess/widgets/tipOfTheDay.py:52 msgid "" "You can choose from 20 different difficulties to play against the computer." msgstr "You can choose from 20 different difficulties to play against the computer." #: lib/pychess/widgets/tipOfTheDay.py:53 msgid "" "Chess Variants are like the pieces of the last line will be placed on the " "board." msgstr "Chess Variants are like the pieces of the last line will be placed on the board." #: lib/pychess/widgets/tipOfTheDay.py:54 msgid "" "To save a game Game > Save Game As, give the filename and " "choose where you want to be saved. At the bottom choose extension type of " "the file, and Save." msgstr "To save a game Game > Save Game As, give the filename and choose where you want to be saved. At the bottom choose extension type of the file, and Save." #: lib/pychess/widgets/tipOfTheDay.py:55 msgid "" "Do you know that you can call flag when the clock is with you, " "Actions > Call Flag." msgstr "Do you know that you can call flag when the clock is with you, Actions > Call Flag." #: lib/pychess/widgets/tipOfTheDay.py:56 msgid "Pressing Ctrl+Z to offer opponent the possible rollback moves." msgstr "Pressing Ctrl+Z to offer opponent the possible rollback moves." #: lib/pychess/widgets/tipOfTheDay.py:57 msgid "" "To play on Fullscreen mode, just type F11. Coming back, F11 " "again." msgstr "To play on Fullscreen mode, just type F11. Coming back, F11 again." #: lib/pychess/widgets/tipOfTheDay.py:58 msgid "Hint mode analyzing your game, enable this type Ctrl+H." msgstr "Hint mode analysing your game, enable this type Ctrl+H." #: lib/pychess/widgets/tipOfTheDay.py:59 msgid "" "Spy mode analyzing the oponnent game, enable this type Ctrl+Y." msgstr "Spy mode analysing the oponnent game, enable this type Ctrl+Y." #: lib/pychess/widgets/tipOfTheDay.py:60 msgid "" "You can play chess listening to the sounds of the game, for that, " "Settings > Preferences > Sound tab, enable Use " "sounds in PyChess and choose your preferred sounds." msgstr "You can play chess listening to the sounds of the game, for that, Settings > Preferences > Sound tab, enable Use sounds in PyChess and choose your preferred sounds." #: lib/pychess/widgets/tipOfTheDay.py:61 msgid "" "Do you know that you can help translate Pychess in your language, " "Help > Translate Pychess." msgstr "Do you know that you can help translate Pychess in your language, Help > Translate Pychess." #: lib/pychess/widgets/tipOfTheDay.py:62 msgid "" "Do you know that it is possible to finish a chess game in just 2 turns?" msgstr "Do you know that it is possible to finish a chess game in just 2 turns?" #: lib/pychess/widgets/tipOfTheDay.py:63 msgid "" "Do you know that the number of possible chess games exceeds the number of " "atoms in the Universe?" msgstr "Do you know that the number of possible chess games exceeds the number of atoms in the Universe?" #: lib/pychess/ic/managers/ChatManager.py:184 msgid "Shout" msgstr "Shout" #: lib/pychess/ic/managers/ChatManager.py:185 msgid "Chess Shout" msgstr "Chess Shout" #: lib/pychess/ic/managers/ChatManager.py:195 #, python-format msgid "Unofficial channel %d" msgstr "Unofficial channel %d" #: lib/pychess/Utils/lutils/LBoard.py:152 #, python-format msgid "" "FEN needs 6 data fields. \n" "\n" "%s" msgstr "FEN needs 6 data fields. \n\n%s" #: lib/pychess/Utils/lutils/LBoard.py:154 #, python-format msgid "" "FEN needs at least 2 data fields in fenstr. \n" "\n" "%s" msgstr "FEN needs at least 2 data fields in fenstr. \n\n%s" #: lib/pychess/Utils/lutils/LBoard.py:175 #, python-format msgid "" "Needs 7 slashes in piece placement field. \n" "\n" "%s" msgstr "Needs 7 slashes in piece placement field. \n\n%s" #: lib/pychess/Utils/lutils/LBoard.py:178 #, python-format msgid "" "Active color field must be one of w or b. \n" "\n" "%s" msgstr "Active colour field must be one of w or b. \n\n%s" #: lib/pychess/Utils/lutils/LBoard.py:189 #, python-format msgid "" "Castling availability field is not legal. \n" "\n" "%s" msgstr "Castling availability field is not legal. \n\n%s" #: lib/pychess/Utils/lutils/LBoard.py:192 #, python-format msgid "" "En passant cord is not legal. \n" "\n" "%s" msgstr "En passant cord is not legal. \n\n%s" #: lib/pychess/Utils/lutils/lmove.py:260 msgid "invalid promoted piece" msgstr "invalid promoted piece" #: lib/pychess/Utils/lutils/lmove.py:272 msgid "the move needs a piece and a cord" msgstr "the move needs a piece and a cord" #: lib/pychess/Utils/lutils/lmove.py:306 lib/pychess/Utils/lutils/lmove.py:556 msgid "promotion move without promoted piece is incorrect" msgstr "promotion move without promoted piece is incorrect" #: lib/pychess/Utils/lutils/lmove.py:312 #, python-format msgid "the captured cord (%s) is incorrect" msgstr "the captured cord (%s) is incorrect" #: lib/pychess/Utils/lutils/lmove.py:323 #, python-format msgid "the end cord (%s) is incorrect" msgstr "the end cord (%s) is incorrect" #: lib/pychess/Utils/lutils/strateval.py:24 sidepanel/commentPanel.py:191 #: sidepanel/commentPanel.py:208 msgid "and" msgstr "and" #: lib/pychess/Utils/lutils/strateval.py:43 msgid "draws" msgstr "draws" #: lib/pychess/Utils/lutils/strateval.py:45 msgid "mates" msgstr "mates" #: lib/pychess/Utils/lutils/strateval.py:49 msgid "puts opponent in check" msgstr "puts opponent in check" #: lib/pychess/Utils/lutils/strateval.py:73 msgid "improves king safety" msgstr "improves king safety" #: lib/pychess/Utils/lutils/strateval.py:75 msgid "slightly improves king safety" msgstr "slightly improves king safety" #: lib/pychess/Utils/lutils/strateval.py:108 msgid "moves a rook to an open file" msgstr "moves a rook to an open file" #: lib/pychess/Utils/lutils/strateval.py:109 msgid "moves an rook to a half-open file" msgstr "moves an rook to a half-open file" #: lib/pychess/Utils/lutils/strateval.py:119 #: lib/pychess/Utils/lutils/strateval.py:121 #: lib/pychess/Utils/lutils/strateval.py:124 #: lib/pychess/Utils/lutils/strateval.py:126 #, python-format msgid "moves bishop into fianchetto: %s" msgstr "moves Bishop into fianchetto: %s" #: lib/pychess/Utils/lutils/strateval.py:132 #, python-format msgid "promotes a Pawn to a %s" msgstr "promotes a Pawn to a %s" #: lib/pychess/Utils/lutils/strateval.py:135 msgid "castles" msgstr "Castles" #: lib/pychess/Utils/lutils/strateval.py:158 msgid "takes back material" msgstr "takes back material" #: lib/pychess/Utils/lutils/strateval.py:162 #: lib/pychess/Utils/lutils/strateval.py:170 msgid "sacrifies material" msgstr "sacrifies material" #: lib/pychess/Utils/lutils/strateval.py:164 msgid "exchanges material" msgstr "exchanges material" #: lib/pychess/Utils/lutils/strateval.py:166 msgid "captures material" msgstr "captures material" #: lib/pychess/Utils/lutils/strateval.py:291 #, python-format msgid "rescues a %s" msgstr "rescues a %s" #: lib/pychess/Utils/lutils/strateval.py:294 #, python-format msgid "threatens to win material by %s" msgstr "threatens to win material by %s" #: lib/pychess/Utils/lutils/strateval.py:296 #, python-format msgid "increases the pressure on %s" msgstr "increases the pressure on %s" #: lib/pychess/Utils/lutils/strateval.py:298 #, python-format msgid "defends %s" msgstr "defends %s" #: lib/pychess/Utils/lutils/strateval.py:336 #, python-format msgid "pins an enemy %(oppiece)s on the %(piece)s at %(cord)s" msgstr "pins an enemy %(oppiece)s on the %(piece)s at %(cord)s" #: lib/pychess/Utils/lutils/strateval.py:369 #, python-format msgid "White has a new piece in outpost: %s" msgstr "White has a new piece in outpost: %s" #: lib/pychess/Utils/lutils/strateval.py:377 #, python-format msgid "Black has a new piece in outpost: %s" msgstr "Black has a new piece in outpost: %s" #: lib/pychess/Utils/lutils/strateval.py:416 #, python-format msgid "%(color)s has a new passed pawn on %(cord)s" msgstr "%(color)s has a new passed pawn on %(cord)s" #: lib/pychess/Utils/lutils/strateval.py:470 msgid "half-open" msgstr "half-open" #: lib/pychess/Utils/lutils/strateval.py:472 #, python-format msgid "in the %(x)s%(y)s file" msgstr "in the %(x)s%(y)s file" #: lib/pychess/Utils/lutils/strateval.py:474 #, python-format msgid "in the %(x)s%(y)s files" msgstr "in the %(x)s%(y)s files" #: lib/pychess/Utils/lutils/strateval.py:477 #, python-format msgid "%(color)s got a double pawn %(place)s" msgstr "%(color)s got a double Pawn %(place)s" #: lib/pychess/Utils/lutils/strateval.py:478 #, python-format msgid "%(color)s got new double pawns %(place)s" msgstr "%(color)s got new double Pawns %(place)s" #: lib/pychess/Utils/lutils/strateval.py:485 #, python-format msgid "%(color)s got an isolated pawn in the %(x)s file" msgid_plural "%(color)s got isolated pawns in the %(x)s files" msgstr[0] "%(color)s got an isolated Pawn in the %(x)s file" msgstr[1] "%(color)s got isolated Pawns in the %(x)s files" #: lib/pychess/Utils/lutils/strateval.py:492 #, python-format msgid "%s moves pawns into stonewall formation" msgstr "%s moves Pawns into stonewall formation" #: lib/pychess/Utils/lutils/strateval.py:507 #: lib/pychess/Utils/lutils/strateval.py:514 #, python-format msgid "%s can no longer castle" msgstr "%s can no longer castle" #: lib/pychess/Utils/lutils/strateval.py:508 #: lib/pychess/Utils/lutils/strateval.py:515 #, python-format msgid "%s can no longer castle in queenside" msgstr "%s can no longer castle in queenside" #: lib/pychess/Utils/lutils/strateval.py:510 #: lib/pychess/Utils/lutils/strateval.py:517 #, python-format msgid "%s can no longer castle in kingside" msgstr "%s can no longer castle in kingside" #: lib/pychess/Utils/lutils/strateval.py:551 #, python-format msgid "%(opcolor)s has a new trapped bishop on %(cord)s" msgstr "%(opcolor)s has a new trapped Bishop on %(cord)s" #: lib/pychess/Utils/lutils/strateval.py:573 #, python-format msgid "develops a pawn: %s" msgstr "develops a Pawn: %s" #: lib/pychess/Utils/lutils/strateval.py:574 #, python-format msgid "brings a pawn closer to the backrow: %s" msgstr "brings a Pawn closer to the backrow: %s" #: lib/pychess/Utils/lutils/strateval.py:591 #, python-format msgid "brings a %(piece)s closer to enemy king: %(cord)s" msgstr "brings a %(piece)s closer to enemy King: %(cord)s" #: lib/pychess/Utils/lutils/strateval.py:594 #, python-format msgid "develops a %(piece)s: %(cord)s" msgstr "develops a %(piece)s: %(cord)s" #: lib/pychess/Utils/lutils/strateval.py:612 #, python-format msgid "places a %(piece)s more active: %(cord)s" msgstr "places a %(piece)s more active: %(cord)s" #: lib/pychess/Utils/lutils/strateval.py:638 msgid "White should do pawn storm in right" msgstr "White should do pawn storm in right" #: lib/pychess/Utils/lutils/strateval.py:640 msgid "Black should do pawn storm in left" msgstr "Black should do pawn storm in left" #: lib/pychess/Utils/lutils/strateval.py:643 msgid "White should do pawn storm in left" msgstr "White should do pawn storm in left" #: lib/pychess/Utils/lutils/strateval.py:645 msgid "Black should do pawn storm in right" msgstr "Black should do pawn storm in right" #: lib/pychess/Utils/lutils/strateval.py:671 msgid "Black has a rather cramped position" msgstr "Black has a rather cramped position" #: lib/pychess/Utils/lutils/strateval.py:673 msgid "Black has a slightly cramped position" msgstr "Black has a slightly cramped position" #: lib/pychess/Utils/lutils/strateval.py:675 msgid "White has a rather cramped position" msgstr "White has a rather cramped position" #: lib/pychess/Utils/lutils/strateval.py:677 msgid "White has a slightly cramped position" msgstr "White has a slightly cramped position" #: sidepanel/annotationPanel.py:26 msgid "Annotation" msgstr "Annotation" #: sidepanel/annotationPanel.py:29 msgid "Annotated game" msgstr "Annotated game" #: sidepanel/annotationPanel.py:236 msgid "Copy PGN" msgstr "Copy PGN" #: sidepanel/annotationPanel.py:249 msgid "Add start comment" msgstr "Add start comment" #: sidepanel/annotationPanel.py:254 msgid "Add comment" msgstr "Add comment" #: sidepanel/annotationPanel.py:258 sidepanel/annotationPanel.py:316 msgid "Edit comment" msgstr "Edit comment" #: sidepanel/annotationPanel.py:269 msgid "Forced move" msgstr "Forced move" #: sidepanel/annotationPanel.py:274 msgid "Add move symbol" msgstr "Add move symbol" #: sidepanel/annotationPanel.py:280 msgid "Unclear position" msgstr "Unclear position" #: sidepanel/annotationPanel.py:289 msgid "Zugzwang" msgstr "Zugzwang" #: sidepanel/annotationPanel.py:290 msgid "Development adv." msgstr "Development adv." #: sidepanel/annotationPanel.py:291 msgid "Initiative" msgstr "Initiative" #: sidepanel/annotationPanel.py:292 msgid "With attack" msgstr "With attack" #: sidepanel/annotationPanel.py:293 msgid "Compensation" msgstr "Compensation" #: sidepanel/annotationPanel.py:294 msgid "Counterplay" msgstr "Counterplay" #: sidepanel/annotationPanel.py:295 msgid "Time pressure" msgstr "Time pressure" #: sidepanel/annotationPanel.py:300 msgid "Add evaluation symbol" msgstr "Add evaluation symbol" #: sidepanel/annotationPanel.py:304 msgid "Remove symbols" msgstr "Remove symbols" #: sidepanel/annotationPanel.py:911 #, python-format msgid "round %s" msgstr "round %s" #: sidepanel/bookPanel.py:21 msgid "Hints" msgstr "Hints" #: sidepanel/bookPanel.py:25 msgid "" "The hint panel will provide computer advice during each stage of the game" msgstr "The hint panel will provide computer advice during each stage of the game" #: sidepanel/bookPanel.py:27 msgid "Official PyChess panel." msgstr "Official PyChess panel." #: sidepanel/bookPanel.py:87 msgid "Opening Book" msgstr "Opening Book" #: sidepanel/bookPanel.py:88 msgid "" "The opening book will try to inspire you during the opening phase of the " "game by showing you common moves made by chess masters" msgstr "The opening book will try to inspire you during the opening phase of the game by showing you common moves made by chess masters" #: sidepanel/bookPanel.py:139 #, python-format msgid "Analysis by %s" msgstr "Analysis by %s" #: sidepanel/bookPanel.py:140 #, python-format msgid "" "%s will try to predict which move is best and which side has the advantage" msgstr "%s will try to predict which move is best and which side has the advantage" #: sidepanel/bookPanel.py:142 #, python-format msgid "Threat analysis by %s" msgstr "Threat analysis by %s" #: sidepanel/bookPanel.py:143 #, python-format msgid "" "%s will identify what threats would exist if it were your opponent's turn to" " move" msgstr "%s will identify what threats would exist if it were your opponent's turn to move" #: sidepanel/bookPanel.py:159 sidepanel/bookPanel.py:269 msgid "Calculating..." msgstr "Calculating..." #: sidepanel/bookPanel.py:300 msgid "" "Engine scores are in units of pawns, from White's point of view. Double " "clicking on analysis lines you can insert them into Annotation panel as " "variations." msgstr "Engine scores are in units of pawns, from White's point of view. Double clicking on analysis lines you can insert them into Annotation panel as variations." #: sidepanel/bookPanel.py:302 msgid "" "Adding suggestions can help you find ideas, but slows down the computer's " "analysis." msgstr "Adding suggestions can help you find ideas, but slows down the computer's analysis." #: sidepanel/bookPanel.py:311 msgid "Endgame Table" msgstr "Endgame Table" #: sidepanel/bookPanel.py:315 msgid "" "The endgame table will show exact analysis when there are few pieces on the " "board." msgstr "The endgame table will show exact analysis when there are few pieces on the board." #: sidepanel/bookPanel.py:364 sidepanel/bookPanel.py:367 #, python-format msgid "Mate in %d" msgstr "Mate in %d" #: sidepanel/bookPanel.py:554 msgid "" "In this position,\n" "there is no legal move." msgstr "In this position,\nthere is no legal move." #: sidepanel/chatPanel.py:21 msgid "" "The chat panel lets you communicate with your opponent during the game, " "assuming he or she is interested" msgstr "The chat panel lets you communicate with your opponent during the game, assuming he or she is interested" #: sidepanel/commentPanel.py:16 msgid "Comments" msgstr "Comments" #: sidepanel/commentPanel.py:20 msgid "The comments panel will try to analyze and explain the moves played" msgstr "The comments panel will try to analyse and explain the moves played" #: sidepanel/commentPanel.py:121 msgid "Initial position" msgstr "Initial position" #: sidepanel/commentPanel.py:254 #, python-format msgid "%(color)s moves a %(piece)s to %(cord)s" msgstr "%(color)s moves a %(piece)s to %(cord)s" #: sidepanel/engineOutputPanel.py:15 msgid "Engines" msgstr "Engines" #: sidepanel/engineOutputPanel.py:20 msgid "" "The engine output panel shows the thinking output of chess engines (computer" " players) during a game" msgstr "The engine output panel shows the thinking output of chess engines (computer players) during a game" #: sidepanel/engineOutputPanel.py:44 msgid "No chess engines (computer players) are participating in this game." msgstr "No chess engines (computer players) are participating in this game." #: sidepanel/historyPanel.py:10 msgid "Move History" msgstr "Move History" #: sidepanel/historyPanel.py:13 msgid "" "The moves sheet keeps track of the players' moves and lets you navigate " "through the game history" msgstr "The moves sheet keeps track of the players' moves and lets you navigate through the game history" #: sidepanel/scorePanel.py:15 msgid "Score" msgstr "Score" #: sidepanel/scorePanel.py:19 msgid "" "The score panel tries to evaluate the positions and shows you a graph of the" " game progress" msgstr "The score panel tries to evaluate the positions and shows you a graph of the game progress" pychess-0.12.2/lang/en_GB/LC_MESSAGES/pychess.mo0000644000175000017470000022060512653231273021254 0ustar tamasusers00000000000000Kti4pF qF |FGFF F$F GG0GIG+[G GGG/G0G[ HNiHH%H`H(VI+I'I#II*J,;J0hJJJJJJ#K$'K'LKtK K!KQKJL>hLLL!LLLM#M,MGM%LMrMMM9M'M@NQNbNsNNNNNNEN5OMO#iO$O OOOOPP)PL8PP PPPQP&Q$DQCiQ7QUQ";R*^R(RRRRRReSkS qS}SS&S.SS SST%T 7TSXT TT TTmTEU UU _UiUxU UUCUU V VV .V;VMVcVjV*zVV V VVV/VS WQ]WWW!WX +XLX/iXSXQX#?Y*cY"Y+YYrvZ ZK [%V[O|[-[3[$.\6S\#\E\A\!6]!X]-z]&]-];] 9^BZ^^^^ ^ ^$^#^%_"4_#W_{_ ______R`[`]``` o`8y`.`` ` ``a$a )a7a MaXa gaPsa a a6aVbVjbRbSchcnctcc-ccc cc cdd)d:?dzd ddddd d d dddd eeee;eUefeGke`eafivff fgp g zgg g g gg"gg ggh}h i#i&8i _i1iiiiii iiii0j@BjDjHjFkHXkk=lmwn}o oooo oo op ppp3pDpTpcp tppppp 5qBqHqQq `q mq{qqq q qqqqAqqr>>sX}sRsc)t]t?tB+u;nuquSvOpvFw x)x?x Px[x pxD~xxxxxx y yy'y9y Iy Sy^y py|y y y yyyyyyy+y *z8zGz Nz\z uz!zz z z z z zzzz.{/1{a{ j{Cx{{{{{ || |'|7| <| I|U| h| t| | | | | | | |||\|,W}*}+}*}~ ~!~.;~ j~t~~ ~ ~~~~~~   $* / 9 FSX]w     1E=' #ǀ  ;L  !(.M S^e ˂҂ق ނ   $ .<(Qz*   1G Xf"{Ƅ Մ߄  '3C I Vawυ ׅ  /J j v Ɔ܆  phY"ˆC5)4_93ΉRdcT =9SZ7PIc}+`GŽBRhxZK-QhE,.A[Aߑ  $3PB @K_q,vMAIZl q  ˔ Ӕ ߔ 1?PQb6MPXC I S$_#%"Η# !,?C _k}ۘ,ߘ K,x99؛?9R(uC+$o3&ȝȞ t6q%l8!XǢ/ &P(w&'ǣ'd| äѤ   &/5> O[ alu%{  ¥ͥ ֥   3 @J S$a ɦ Ѧݦ+)/ >K!O)q8ԧ1'&Ngy Ũ ب 5""eE+ת8OUY!v ū ȫ ի$:6J(2¬ *1:MQo#!ƭ-15;CV]I3 ̴ ״G) 0$= bp+ /07[hNĶ%*`P(+ڷ'#.R*k,0ø (?F#^$'Ϲ !Q&Jx>ú !(JL\#c%ͻ9 'C@kμ 9EJ#Ľ$ *B[jL Q'&y$Cſ7 UA"*($6G[ea &/? P\r S  -m4  CU d o| *  $.0/6SfQ +!Km /SQJ#*"+:r FKg%O-)3W$6#E AQ!!-&-,;Z B $"#G%k"#  8.> F P\p   P ! .69VpVRSq-.7 @M Vav:   ) 5 @LN] blt|G`ari> Wbpg   "6 FT} v& 1 &0AQ0o@DH&FoH>;w}   " =I Xdlou     BR>XR7c]?LB;q S}OF! h)v  D$=UW\m t   &7LSX+_   !  % 2 ?KMR.c/ C8AH gu }    ! /;S\[,*+*<gn.  5;Vm o {   $ 3? GQYmv E'  #(Lk LXZ ` kxz  ,3: ?IOVjm v (* ITZ b n{ "' 6@Wn }  0 8 EQglr/{   '=EGJ MZjp|h"#CF5493/cRrcIT h=v9ZIb|I}` #ZEX_Kf-hEI,AA@ Vbg wP ,MAh   , 4 @Ne{ Q6LRVZ^Mc  $#% "/#Rv}   <,@mK 99 ?s 9 ) u C $ 3 &* Q    * B `  w t  i%tl!X)/&(&')'Qdy  %3M \ g t ~  %  $/ 8D KU[ l w   $ + 3?+Ht !)87Q1W' "( ; E6O"e+;Pg!  ) , 9GXgx6(2&Yp # !*Ll4P U#}X 0jl0Wi <V(.x(f[9v3GKly8U6JTDu]s'-wu%A,!a~MWYe_*m4< :[wo@ .` v'?bC2l/zT:p3,Eh%=md5i czr&SGOFU.(s,"6x6!md9 LH;+$>B?= Fn<7zK H_v*bV1G)Iu=C; r-`SQkeiDt )\9rY ^H/pPaI7 "CS@ QNq8h;j$K1e EPBf|!oFExsF:60-{2I#p/% "*qPy|at ~87^&." A2k+>+N=WX>#7'&Lc,5J|4g0B R?R2NO_D]/V*\t@&LTy ^E)kJ19:OJX1)}5Z+$A>434KAMZh c;5<?o[fbRgI}n#%gZ@!GQH-Yq8`D ]nM$B(C{dj~ \w{3' Gain: + %d sec challenges you to a %(time)s %(rated)s %(gametype)s game chess has arrived has declined your offer for a match has departed has lagged for 30 seconds invalid engine move: %s is censoring you is lagging heavily but hasn't disconnected is present min noplay listing you uses a formula not fitting your match request: where %(player)s plays %(color)s. with whom you have an adjourned %(timecontrol)s %(gametype)s game is online. would like to resume your adjourned %(time)s %(gametype)s game.%(black)s won the game%(color)s got a double pawn %(place)s%(color)s got an isolated pawn in the %(x)s file%(color)s got isolated pawns in the %(x)s files%(color)s got new double pawns %(place)s%(color)s has a new passed pawn on %(cord)s%(color)s moves a %(piece)s to %(cord)s%(minutes)d min + %(gain)d sec/move%(name)s %(minutes)d min%(name)s %(minutes)d min %(gain)d sec/move%(name)s %(minutes)d min + %(gain)d sec/move%(opcolor)s has a new trapped bishop on %(cord)s%(player)s is %(status)s%(player)s plays %(color)s%(white)s won the game%d min%s can no longer castle%s can no longer castle in kingside%s can no longer castle in queenside%s moves pawns into stonewall formation%s returns an error%s was declined by your opponent%s was withdrawn by your opponent%s will identify what threats would exist if it were your opponent's turn to move%s will try to predict which move is best and which side has the advantage'%s' is a registered name. If it is yours, type the password.'%s' is not a registered name(Blitz)(Link is available on clipboard.)*0 Players Ready0 of 010 min + 6 sec/move, 1400↑, White10 min + 6 sec/move, White12002 min, Fischer Random, 1800↓, Black2 min, Fischer Random, Black5 min5 min, 1200-1800, ManualConnect to the Free Online Chess ServerPromote pawn to what?PyChess was unable to load your panel settingsAnalyzingAnimationBoard ColoursChess SetsChess VariantDate of gameEnter Game NotationGame dataHint mode analyzing your game, enable this type Ctrl+H.Initial PositionInstalled SidepanelsName of _first human player:Name of s_econd human player:NewsOpen GameOpening, endgameOpponent StrengthOptionsPlay Sound When...PlayersSpy mode analyzing the oponnent game, enable this type Ctrl+Y.Time ControlToolsYour Color_Start GameA file named '%s' already exists. Would you like to replace it?Engine, %s, has diedError loading gamePyChess is discovering your engines. Please wait.PyChess was not able to save the gameThere are %d games with unsaved moves. Save changes before closing?Unable to add %sUnable to save file '%s'Unknown file type '%s'Challenge:A player _checks:A player _moves:A player c_aptures:ASEANASEAN: http://www.ncf-phil.org/downloadables/2014/May/Asean_chess/Laws_of_ASEAN_Chess_2011_Nov_26.docAbortAbout ChessAc_tiveAcceptActivate alarm when _remaining sec is:Active color field must be one of w or b. %sActive seeks: %dAdd commentAdd evaluation symbolAdd move symbolAdd start commentAdd threatening variation lines Adding suggestions can help you find ideas, but slows down the computer's analysis.Address ErrorAdjournAdministratorAi-WokAi-Wok: http://www.open-aurec.com/wbforum/viewtopic.php?p=199364&sid=20963a1de2c164050de019e5ed6bf7c4#p199364All Chess FilesAll FilesAll whiteAnalysis by %sAnalyze from current positionAnalyze gameAnalyzer startedAnimate pieces, board rotation and more. Use this on fast machines.Annotated gameAnnotationAny strengthAsian variantsAsk to _MoveAsymmetric RandomAsymmetric Random AtomicAuto Call _FlagAuto _rotate board to current human playerAuto login on startupAuto-logoutAvailableBB EloBecause %(black)s lost connection to the serverBecause %(black)s lost connection to the server and %(white)s requested adjournmentBecause %(black)s ran out of time and %(white)s has insufficient material to mateBecause %(loser)s disconnectedBecause %(loser)s king explodedBecause %(loser)s ran out of timeBecause %(loser)s resignedBecause %(loser)s was checkmatedBecause %(mover)s stalematedBecause %(white)s lost connection to the serverBecause %(white)s lost connection to the server and %(black)s requested adjournmentBecause %(white)s ran out of time and %(black)s has insufficient material to mateBecause %(winner)s has fewer piecesBecause %(winner)s king reached the centerBecause %(winner)s lost all piecesBecause %(winner)s was giving check 3 timesBecause a player aborted the game. Either player can abort the game without the other's consent before the second move. No rating changes have occurred.Because a player disconnected and there are too few moves to warrant adjournment. No rating changes have occurred.Because a player lost connectionBecause a player lost connection and the other player requested adjournmentBecause both players agreed to a drawBecause both players agreed to abort the game. No rating changes have occurred.Because both players agreed to an adjournmentBecause both players have the same amount of piecesBecause both players ran out of timeBecause neither player has sufficient material to mateBecause of adjudication by an adminBecause of adjudication by an admin. No rating changes have occurred.Because of courtesy by a player. No rating changes have occurred.Because the %(black)s engine diedBecause the %(white)s engine diedBecause the connection to the server was lostBecause the game exceed the max lengthBecause the last 50 moves brought nothing newBecause the same position was repeated three times in a rowBecause the server was shut downBecause the server was shut down. No rating changes have occurred.BeepBishopBlackBlack O-OBlack O-O-OBlack has a new piece in outpost: %sBlack has a rather cramped positionBlack has a slightly cramped positionBlack should do pawn storm in leftBlack should do pawn storm in rightBlack:BlindfoldBlindfold AccountBlitzBlitz:Blitz: 5 minBringing your king legally to the center (e4, d4, e5, d5) instantly wins the game! Normal rules apply in other cases and checkmate also ends the game.BughouseCCACalculating...CambodianCambodian: http://www.khmerinstitute.org/culture/ok.htmlCastling availability field is not legal. %sCenter:ChallengeChallenge: Challenge: Change ToleranceChatChess AdvisorChess Alpha 2 DiagramChess GameChess PositionChess ShoutChess Variants are like the pieces of the last line will be placed on the board.Chess clientClaim DrawClassic chess rules http://en.wikipedia.org/wiki/ChessClassic chess rules with all pieces white http://en.wikipedia.org/wiki/Blindfold_chessClassic chess rules with hidden figurines http://en.wikipedia.org/wiki/Blindfold_chessClassic chess rules with hidden pawns http://en.wikipedia.org/wiki/Blindfold_chessClassic chess rules with hidden pieces http://en.wikipedia.org/wiki/Blindfold_chessClearClockClose _without SavingColorize analyzed movesCommand line parameters needed by the engine.Command:CommentsCompensationComputerConnectingConnecting to serverConnection ErrorConnection was closedContinue to wait for opponent, or try to adjourn the game?Conversation infoConversationsCopy FENCopy PGNCornerCould not save the fileCounterplayCrazyhouseCreate SeekDDark Squares :DateDate/TimeDeclineDefaultDestination Host UnreachableDetect type automaticallyDevelopment adv.DiedDo you know that it is possible to finish a chess game in just 2 turns?Do you know that the number of possible chess games exceeds the number of atoms in the Universe?Do you know that you can call flag when the clock is with you, Actions > Call Flag.Do you know that you can help translate Pychess in your language, Help > Translate Pychess.Do you want to abort it?Don't careDrawDue to abuse problems, guest connections have been prevented. You can still register on http://www.freechess.orgDummy AccountECOEdit SeekEdit Seek: Edit commentEmailEn passant cord is not legal. %sEn passant lineEndgame TableEngine scores are in units of pawns, from White's point of view. Double clicking on analysis lines you can insert them into Annotation panel as variations.EnginesEngines use uci or xboard communication protocol to talk to the GUI. If it can use both you can set here which one you like.Enter GameEnter Game _NotationError parsing move %(moveno)s %(mstr)sEuroShogiEuroShogi: http://en.wikipedia.org/wiki/EuroShogiEventEvent:Examine Adjourned GameExaminedExaminingExecutable filesExport positionFEN needs 6 data fields. %sFEN needs at least 2 data fields in fenstr. %sFICS atomic: http://www.freechess.org/Help/HelpFiles/atomic.htmlFICS bughouse: http://www.freechess.org/Help/HelpFiles/bughouse.htmlFICS crazyhouse: http://www.freechess.org/Help/HelpFiles/crazyhouse.htmlFICS losers: http://www.freechess.org/Help/HelpFiles/losers_chess.htmlFICS suicide: http://www.freechess.org/Help/HelpFiles/suicide_chess.htmlFICS wild/3: http://www.freechess.org/Help/HelpFiles/wild.html * Randomly chosen pieces (two queens or three rooks possible) * Exactly one king of each color * Pieces placed randomly behind the pawns * No castling * Black's arrangement mirrors white'sFICS wild/4: http://www.freechess.org/Help/HelpFiles/wild.html * Randomly chosen pieces (two queens or three rooks possible) * Exactly one king of each color * Pieces placed randomly behind the pawns, SUBJECT TO THE CONSTRAINT THAT THE BISHOPS ARE BALANCED * No castling * Black's arrangement DOES NOT mirrors white'sFICS wild/5: http://www.freechess.org/Help/HelpFiles/wild.html http://en.wikipedia.org/wiki/Chess_variant#Chess_with_different_starting_positions Pawns start on their 7th rank rather than their 2nd rank!FICS wild/8: http://www.freechess.org/Help/HelpFiles/wild.html Pawns start on 4th and 5th ranks rather than 2nd and 7thFICS wild/8a: http://www.freechess.org/Help/HelpFiles/wild.html White pawns start on 5th rank and black pawns on the 4th rankFIDE MasterFMF_ull board animationFace _to Face display modeFile existsFischer RandomForced moveFriendsGMGain:Game analyzing in progress...Game informationGame is _drawn:Game is _lost:Game is _set-up:Game is _won:Game shared at Games running: %dGaviota TB path:Generally this means nothing, as the game is time-based, but if you want to please your opponent, perhaps you should get going.Grand MasterGuestHa_ndle:Halfmove clockHidden pawnsHidden piecesHideHintsHost:How to PlayHuman BeingIMIdIdleIf set, PyChess will colorize suboptimal analyzed moves with red.If set, PyChess will show game results for different moves in positions containing 6 or less pieces. It will search positions from http://www.k4it.de/If set, PyChess will show game results for different moves in positions containing 6 or less pieces. You can download tablebase files from: http://www.olympuschess.com/egtb/gaviota/If set, PyChess will suggest best opening moves on hint panel.If set, PyChess will use figures to express moved pieces, rather than uppercase letters.If set, clicking on main application window closer first time it closes all games.If set, the black pieces will be head down, suitable for playing against friends on mobile devices.If set, the board will turn after each move, to show the natural view for the current player.If set, the captured figurines will be shown next to the board.If set, the elapsed time that a player used for the move is shown.If set, the hint analyzer engine evaluation value is shown.If set, the playing board will display labels and ranks for each chess field. These are usable in chess notation.If set, this hides the tab in the top of the playing window, when it is not needed.If the analyzer finds a move where the evaluation difference (the difference between the evaluation for the move it thinks is the best move and the evaluation for the move made in the game) exceeds this value, it will add an annotation for that move (consisting of the engine's Principal Variation for the move) to the Annotation panelIf you don't save, new changes to your games will be permanently lost.In TournamentIn this position, there is no legal move.Initial positionInitiativeInternational MasterInvalid move.It is not possible later to continue the game, if you don't save it.Jump to initial positionJump to latest positionKKingKing of the hillKnightKnight oddsKnightsLeave _FullscreenLight Squares :LightningLightning:Load _Recent GameLoaded gameLoading player dataLocal EventLocal SiteLog on ErrorLog on as G_uestLog on as _GuestLogging on to serverLosersLossMakrukMakruk: http://en.wikipedia.org/wiki/MakrukMamer ManagerManage enginesManualManual AcceptManually accept opponentMate in %dMaximum analysis time in seconds:Minutes:Minutes: More channelsMore playersMove HistoryMove numberNNameNames: #n1, #n2Needs 7 slashes in piece placement field. %sNever use animation. Use this on slow machines.New GameNo _animationNo chess engines (computer players) are participating in this game.No conversation's selectedNo soundNormalNormal: 40 min + 15 sec/moveNot AvailableObserveObserve %sObserved _ends:OddsOffer A_bortOffer AbortOffer Ad_journmentOffer PauseOffer RematchOffer ResumeOffer UndoOffer _AbortOffer _DrawOffer _PauseOffer _ResumeOffer _UndoOfficial PyChess panel.OfflineOn FICS, your "Wild" rating encompasses all of the following variants at all time controls: One player starts with one less knight pieceOne player starts with one less pawn pieceOne player starts with one less queen pieceOne player starts with one less rook pieceOnlineOnly animate _movesOnly animate piece moves.Only registered users may talk to this channelOpen GameOpen Sound FileOpen _DatabaseOpening BookOpening booksOpponent RatingOpponent's strength: OtherOther (non standard rules)Other (standard rules)PParameters:Paste FENPausePawnPawn oddsPawns PassedPawns PushedPingPlayPlay Fischer Random chessPlay Losers chessPlay RematchPlay _Internet ChessPlay normal chess rulesPlayer _RatingPlayers: %dPlayingPng imagePo_rts:Polyglot book file:Pre_viewPrefer figures in _notationPreferencesPressing Ctrl+Z to offer opponent the possible rollback moves.PrivateProbably because it has been withdrawn.PromotionProtocol:PyChess - Connect to Internet ChessPyChess - Internet Chess: FICSPyChess Game DatabasePyChess Information WindowPyChess databasePyChess has lost connection to the engine, probably because it has died. You can try to start a new game with the engine, or try to play against another one.PyChess.py:QQueenQueen oddsQuit PyChessRR_esignRandomRapidRapid: 15 min + 10 sec/moveRatedRated gameRatingReceiving list of playersRemove symbolsRequest ContinuationResendResend %s?Reset Default ColoursResultResumeRookRook oddsRoundRound:Running Simul MatchSRS_ign upSanctionsSaveSave GameSave Game _AsSave _own games onlySave analyzing engine _evaluation valuesSave elapsed move _timesSave files to:Save moves before closing?Save the current game before you close it?Saved gameScoreSearch:Seek _GraphSeek updatedSelect Gaviota TB pathSelect auto save pathSelect book fileSelect engineSelect sound file...Select the games you want to save:Select working directorySend ChallengeSend all seeksSend seekService RepresentativeSetting up environmentSetup PositionShare GameSho_w cordsShort on _time:ShoutShow ConsoleShow _ChatShow _captured piecesShow elapsed move timesShow evaluation valuesShow tips at startupShredderLinuxChess:ShuffleSide to moveSide_panelsSimple Chess PositionSiteSite:SittuyinSittuyin: http://en.wikipedia.org/wiki/SittuyinSorry '%s' is already logged inSound filesSp_y modeSpentStandardStandard:Start Private ChatStatusStep back one moveStep forward one moveSuicideTTDTMTeam AccountThe abort offerThe adjourn offerThe analyzer will run in the background and analyze the game. This is necessary for the hint mode to workThe chain button is disabled because you are logged in as a guest. Guests can't establish ratings, and the chain button's state has no effect when there is no rating to which to tie "Opponent Strength" toThe chat panel lets you communicate with your opponent during the game, assuming he or she is interestedThe clock hasn't been started yet.The comments panel will try to analyze and explain the moves playedThe connection was broken - got "end of file" messageThe directory where the engine will be started from.The displayed name of the first human player, e.g., John.The displayed name of the guest player, e.g., Mary.The draw offerThe endgame table will show exact analysis when there are few pieces on the board.The engine %s reports an error:The engine output panel shows the thinking output of chess engines (computer players) during a gameThe entered password was invalid. If you forgot your password, go to http://www.freechess.org/password to request a new one over email.The error was: %sThe file already exists in '%s'. If you replace it, its content will be overwritten.The flag callThe game #%s can't be loaded, because of an error parsing FENThe game can't be loaded, because of an error parsing FENThe game can't be read to end, because of an error parsing move %(moveno)s '%(notation)s'.The game ended in a drawThe game has been abortedThe game has been adjournedThe game has been killedThe game is pausedThe hint panel will provide computer advice during each stage of the gameThe inverse analyzer will analyze the game as if your opponent was to move. This is necessary for the spy mode to workThe move failed because %s.The moves sheet keeps track of the players' moves and lets you navigate through the game historyThe offer to switch sidesThe opening book will try to inspire you during the opening phase of the game by showing you common moves made by chess mastersThe pause offerThe reason is unknownThe resignationThe resume offerThe score panel tries to evaluate the positions and shows you a graph of the game progressThe takeback offerThebanThemesThere is %d game with unsaved moves.There are %d games with unsaved moves.There is something wrong with this executableThis game can be automatically aborted without rating loss because there has not yet been two moves madeThis game can not be adjourned because one or both players are guestsThis is a continuation of an adjourned matchThis option is not applicable because you're challenging a playerThis option is not available because you're challenging a guest, Threat analysis by %sThree-checkTimeTime control: Time pressureTip Of The dayTip of the DayTo play on Fullscreen mode, just type F11. Coming back, F11 again.To save a game Game > Save Game As, give the filename and choose where you want to be saved. At the bottom choose extension type of the file, and Save.Tolerance:Tournament DirectorTranslate PyChessTypeType or paste PGN game or FEN positions hereUUnable to accept %sUnable to save to configured file. Save the current game before you close it?Unable to save to configured file. Save the games before closing?Unclear positionUndescribed panelUndoUndo one moveUndo two movesUninstallUnknownUnofficial channel %dUnratedUnregisteredUntimedUpside DownUse _analyzerUse _inverted analyzerUse _local tablebasesUse _online tablebasesUse analyzer:Use name format:Use opening _bookVariant developed by Kai Laskos: http://talkchess.com/forum/viewtopic.php?t=40990Variation annotation creation threshold in centipawns:W EloWFMWGMWIMWaitWas unable to save '%(uri)s' as PyChess doesn't know the format '%(ending)s'.WelcomeWhen this button is in the "locked" state, the relationship between "Opponent's strength" and "Your strength" will be preserved when a) your rating for the type of game sought has changed b) you change the variant or the time controlWhiteWhite O-OWhite O-O-OWhite has a new piece in outpost: %sWhite has a rather cramped positionWhite has a slightly cramped positionWhite should do pawn storm in leftWhite should do pawn storm in rightWhite:WildWildcastleWildcastle shuffleWinWin by giving check 3 timesWith attackWoman FIDE MasterWoman Grand MasterWoman International MasterWorking directory:Year, month, day: #y, #m, #dYouYou are currently logged in as a guest. A guest can't play rated games and therefore isn't able to play as many of the types of matches offered as a registered user. To register an account, go to http://www.freechess.org/Register/index.html.You asked your opponent to moveYou can choose from 20 different difficulties to play against the computer.You can play chess listening to the sounds of the game, for that, Settings > Preferences > Sound tab, enable Use sounds in PyChess and choose your preferred sounds.You can start a new game by Game > New Game, in New Game window do you can choose Players, Time Control and Chess Variants.You can't play rated games because "Untimed" is checked, You can't play rated games because you are logged in as a guestYou can't select a variant because "Untimed" is checked, You can't switch colors during the game.You don't have the necessary rights to save the file. Please ensure that you have given the right path and try again.You have been logged out because you were idle more than 60 minutesYou have opened no conversations yetYou have to set kibitz on to see bot messages here.You have tried to undo too many moves.You may only have 3 outstanding seeks at the same time. If you want to add a new seek you must clear your currently active seeks. Clear your seeks?You sent a draw offerYou sent a pause offerYou sent a resume offerYou sent an abort offerYou sent an adjournment offerYou sent an undo offerYour opponent asks you to hurry!Your opponent has asked that the game be aborted. If you accept this offer, the game will end with no rating change.Your opponent has asked that the game be adjourned. If you accept this offer, the game will be adjourned and you can resume it later (when your opponent is online and both players agree to resume).Your opponent has asked that the game be paused. If you accept this offer, the game clock will be paused until both players agree to resume the game.Your opponent has asked that the game be resumed. If you accept this offer, the game clock will continue from where it was paused.Your opponent has asked that the last %s move(s) be undone. If you accept this offer, the game will continue from the earlier position.Your opponent has offered you a draw.Your opponent has offered you a draw. If you accept this offer, the game will end with a score of 1/2 - 1/2.Your opponent is not out of time.Your opponent must agree to abort the game because there has been two or more moves madeYour opponent seems to have changed their mind.Your opponent wants to abort the game.Your opponent wants to adjourn the game.Your opponent wants to pause the game.Your opponent wants to resume the game.Your opponent wants to undo %s move(s).Your panel settings have been reset. If this problem repeats, you should report it to the developersYour seeks have been removedYour strength: Zugzwang_Accept_Actions_Analyze Game_Auto save finished games_Black player:_Call Flag_Clear Seeks_Copy FEN_Copy PGN_Decline_Edit_Engines_Export Position_Fullscreen_Game_Game List_General_Help_Hide tabs when only one game is open_Hint mode_Hints_Invalid move:_Load Game_Log Off_Log Viewer_Name:_New Game_Next_Observed moves:_Opponent:_Password:_Play Normal chess_Player List_Previous_Replace_Rotate Board_Save %d document_Save %d documents_Save %d documents_Save Game_Seeks / Challenges_Show Sidepanels_Sounds_Start Game_Untimed_Use main app closer [x] to close all games_Use sounds in PyChess_View_White player:_Your Color:andand guests can't play rated gamesand on FICS, untimed games can't be ratedand on FICS, untimed games have to be normal chess rulesask your opponent to moveblackbrings a %(piece)s closer to enemy king: %(cord)sbrings a pawn closer to the backrow: %scall your opponents flagcaptures materialcastlesdefends %sdevelops a %(piece)s: %(cord)sdevelops a pawn: %sdrawsexchanges materialgnuchess:half-openhttp://brainking.com/en/GameRules?tp=2 * Placement of the pieces on the 1st and 8th row are randomized * The king is in the right hand corner * Bishops must start on opposite color squares * Black's starting position is obtained by rotating white's position 180 degrees around the board's center * No castlinghttp://en.wikipedia.org/wiki/Chesshttp://en.wikipedia.org/wiki/Chess960 FICS wild/fr: http://www.freechess.org/Help/HelpFiles/wild.htmlhttp://en.wikipedia.org/wiki/Rules_of_chessimproves king safetyin the %(x)s%(y)s filein the %(x)s%(y)s filesincreases the pressure on %sinvalid promoted piecematesminmoves a rook to an open filemoves an rook to a half-open filemoves bishop into fianchetto: %snot playingofoffer a drawoffer a pauseoffer a takebackoffer an abortoffer to adjournoffer to resumeoffer to switch sidesonline in totalpins an enemy %(oppiece)s on the %(piece)s at %(cord)splaces a %(piece)s more active: %(cord)spromotes a Pawn to a %spromotion move without promoted piece is incorrectputs opponent in checkrating range nowrescues a %sresignround %ssacrifies materialsecslightly improves king safetytakes back materialthe captured cord (%s) is incorrectthe end cord (%s) is incorrectthe move needs a piece and a cordthreatens to win material by %sto automatic acceptto manual acceptucivs.whitewindow1wine not installedxboardxboard nocastle: http://home.hccnet.nl/h.g.muller/engine-intf.html#8 FICS wild/2: http://www.freechess.org/Help/HelpFiles/wild.html * Random arrangement of the pieces behind the pawns * No castling * Black's arrangement mirrors white'sxboard wildcastle http://home.hccnet.nl/h.g.muller/engine-intf.html#8 FICS wild/0: http://www.freechess.org/Help/HelpFiles/wild.html * White has the typical set-up at the start. * Black's pieces are the same, except that the King and Queen are reversed, * so they are not on the same files as White's King and Queen. * Castling is done similarly to normal chess: * o-o-o indicates long castling and o-o short castling.xboard wildcastle http://home.hccnet.nl/h.g.muller/engine-intf.html#8 FICS wild/1: http://www.freechess.org/Help/HelpFiles/wild.html * In this variant both sides have the same set of pieces as in normal chess. * The white king starts on d1 or e1 and the black king starts on d8 or e8, * and the rooks are in their usual positions. * Bishops are always on opposite colors. * Subject to these constraints the position of the pieces on their first ranks is random. * Castling is done similarly to normal chess: * o-o-o indicates long castling and o-o short castling.Project-Id-Version: pychess Report-Msgid-Bugs-To: POT-Creation-Date: 2016-01-27 13:28+0100 PO-Revision-Date: 2016-01-28 08:56+0000 Last-Translator: slav0nic Language-Team: English (United Kingdom) (http://www.transifex.com/gbtami/pychess/language/en_GB/) MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Language: en_GB Plural-Forms: nplurals=2; plural=(n != 1); Gain: + %d sec challenges you to a %(time)s %(rated)s %(gametype)s game chess has arrived has declined your offer for a match has departed has lagged for 30 seconds invalid engine move: %s is censoring you is lagging heavily but hasn't disconnected is present min noplay listing you uses a formula not fitting your match request: where %(player)s plays %(color)s. with whom you have an adjourned %(timecontrol)s %(gametype)s game is online. would like to resume your adjourned %(time)s %(gametype)s game.%(black)s won the game%(color)s got a double Pawn %(place)s%(color)s got an isolated Pawn in the %(x)s file%(color)s got isolated Pawns in the %(x)s files%(color)s got new double Pawns %(place)s%(color)s has a new passed pawn on %(cord)s%(color)s moves a %(piece)s to %(cord)s%(minutes)d min + %(gain)d sec/move%(name)s %(minutes)d min%(name)s %(minutes)d min %(gain)d sec/move%(name)s %(minutes)d min + %(gain)d sec/move%(opcolor)s has a new trapped Bishop on %(cord)s%(player)s is %(status)s%(player)s plays %(color)s%(white)s won the game%d min%s can no longer castle%s can no longer castle in kingside%s can no longer castle in queenside%s moves Pawns into stonewall formation%s returns an error%s was declined by your opponent%s was withdrawn by your opponent%s will identify what threats would exist if it were your opponent's turn to move%s will try to predict which move is best and which side has the advantage'%s' is a registered name. If it is yours, type the password.'%s' is not a registered name(Blitz)(Link is available on clipboard.)*0 Players Ready0 of 010 min + 6 sec/move, 1400↑, White10 min + 6 sec/move, White12002 min, Fischer Random, 1800↓, Black2 min, Fischer Random, Black5 min5 min, 1200-1800, ManualConnect to the Free Online Chess ServerPromote pawn to what?PyChess was unable to load your panel settingsAnalysingAnimationBoard ColoursChess SetsChess VariantDate of gameEnter Game NotationGame dataHint mode analysing your game, enable this type Ctrl+H.Initial PositionInstalled SidepanelsName of _first human player:Name of s_econd human player:NewsOpen GameOpening, endgameOpponent StrengthOptionsPlay Sound When...PlayersSpy mode analysing the oponnent game, enable this type Ctrl+Y.Time ControlToolsYour Colour_Start GameA file named '%s' already exists. Would you like to replace it?Engine, %s, has diedError loading gamePyChess is discovering your engines. Please wait.PyChess was not able to save the gameThere are %d games with unsaved moves. Save changes before closing?Unable to add %sUnable to save file '%s'Unknown file type '%s'Challenge:A player _checks:A player _moves:A player c_aptures:ASEANASEAN: http://www.ncf-phil.org/downloadables/2014/May/Asean_chess/Laws_of_ASEAN_Chess_2011_Nov_26.docAbortAbout ChessAc_tiveAcceptActivate alarm when _remaining sec is:Active colour field must be one of w or b. %sActive seeks: %dAdd commentAdd evaluation symbolAdd move symbolAdd start commentAdd threatening variation lines Adding suggestions can help you find ideas, but slows down the computer's analysis.Address ErrorAdjournAdministratorAi-WokAi-Wok: http://www.open-aurec.com/wbforum/viewtopic.php?p=199364&sid=20963a1de2c164050de019e5ed6bf7c4#p199364All Chess FilesAll FilesAll whiteAnalysis by %sAnalyse from current positionAnalyse gameAnalyser startedAnimate pieces, board rotation and more. Use this on fast machines.Annotated gameAnnotationAny strengthAsian variantsAsk to _MoveAsymmetric RandomAsymmetric Random AtomicAuto Call _FlagAuto _rotate board to current human playerAuto login on startupAuto-logoutAvailableBB EloBecause %(black)s lost connection to the serverBecause %(black)s lost connection to the server and %(white)s requested adjournmentBecause %(black)s ran out of time and %(white)s has insufficient material to mateBecause %(loser)s disconnectedBecause %(loser)s King explodedBecause %(loser)s ran out of timeBecause %(loser)s resignedBecause %(loser)s was CheckmatedBecause %(mover)s stalematedBecause %(white)s lost connection to the serverBecause %(white)s lost connection to the server and %(black)s requested adjournmentBecause %(white)s ran out of time and %(black)s has insufficient material to mateBecause %(winner)s has fewer piecesBecause %(winner)s king reached the centreBecause %(winner)s lost all piecesBecause %(winner)s was giving check 3 timesBecause a player aborted the game. Either player can abort the game without the other's consent before the second move. No rating changes have occurred.Because a player disconnected and there are too few moves to warrant adjournment. No rating changes have occurred.Because a player lost connectionBecause a player lost connection and the other player requested adjournmentBecause both players agreed to a drawBecause both players agreed to abort the game. No rating changes have occurred.Because both players agreed to an adjournmentBecause both players have the same amount of piecesBecause both players ran out of timeBecause neither player has sufficient material to mateBecause of adjudication by an adminBecause of adjudication by an admin. No rating changes have occurred.Because of courtesy by a player. No rating changes have occurred.Because the %(black)s engine diedBecause the %(white)s engine diedBecause the connection to the server was lostBecause the game exceed the max lengthBecause the last 50 moves brought nothing newBecause the same position was repeated three times in a rowBecause the server was shut downBecause the server was shut down. No rating changes have occurred.BeepBishopBlackBlack O-OBlack O-O-OBlack has a new piece in outpost: %sBlack has a rather cramped positionBlack has a slightly cramped positionBlack should do pawn storm in leftBlack should do pawn storm in rightBlack:BlindfoldBlindfold AccountBlitzBlitz:Blitz: 5 minBringing your king legally to the centre (e4, d4, e5, d5) instantly wins the game! Normal rules apply in other cases and checkmate also ends the game.BughouseCCACalculating...CambodianCambodian: http://www.khmerinstitute.org/culture/ok.htmlCastling availability field is not legal. %sCentre:ChallengeChallenge: Challenge: Change ToleranceChatChess AdvisorChess Alpha 2 DiagramChess GameChess PositionChess ShoutChess Variants are like the pieces of the last line will be placed on the board.Chess clientClaim DrawClassic chess rules http://en.wikipedia.org/wiki/ChessClassic chess rules with all pieces white http://en.wikipedia.org/wiki/Blindfold_chessClassic chess rules with hidden figurines http://en.wikipedia.org/wiki/Blindfold_chessClassic chess rules with hidden pawns http://en.wikipedia.org/wiki/Blindfold_chessClassic chess rules with hidden pieces http://en.wikipedia.org/wiki/Blindfold_chessClearClockClose _without SavingColourise analysed movesCommand line parameters needed by the engine.Command:CommentsCompensationComputerConnectingConnecting to serverConnection ErrorConnection was closedContinue to wait for opponent, or try to adjourn the game?Conversation infoConversationsCopy FENCopy PGNCornerCould not save the fileCounterplayCrazyhouseCreate SeekDDark Squares :DateDate/TimeDeclineDefaultDestination Host UnreachableDetect type automaticallyDevelopment adv.DiedDo you know that it is possible to finish a chess game in just 2 turns?Do you know that the number of possible chess games exceeds the number of atoms in the Universe?Do you know that you can call flag when the clock is with you, Actions > Call Flag.Do you know that you can help translate Pychess in your language, Help > Translate Pychess.Do you want to abort it?Don't careDrawDue to abuse problems, guest connections have been prevented. You can still register on http://www.freechess.orgDummy AccountECOEdit SeekEdit Seek: Edit commentEmailEn passant cord is not legal. %sEn passant lineEndgame TableEngine scores are in units of pawns, from White's point of view. Double clicking on analysis lines you can insert them into Annotation panel as variations.EnginesEngines use uci or xboard communication protocol to talk to the GUI. If it can use both you can set here which one you like.Enter GameEnter Game _NotationError parsing move %(moveno)s %(mstr)sEuroShogiEuroShogi: http://en.wikipedia.org/wiki/EuroShogiEventEvent:Examine Adjourned GameExaminedExaminingExecutable filesExport positionFEN needs 6 data fields. %sFEN needs at least 2 data fields in fenstr. %sFICS atomic: http://www.freechess.org/Help/HelpFiles/atomic.htmlFICS bughouse: http://www.freechess.org/Help/HelpFiles/bughouse.htmlFICS crazyhouse: http://www.freechess.org/Help/HelpFiles/crazyhouse.htmlFICS losers: http://www.freechess.org/Help/HelpFiles/losers_chess.htmlFICS suicide: http://www.freechess.org/Help/HelpFiles/suicide_chess.htmlFICS wild/3: http://www.freechess.org/Help/HelpFiles/wild.html * Randomly chosen pieces (two queens or three rooks possible) * Exactly one king of each colour * Pieces placed randomly behind the pawns * No castling * Black's arrangement mirrors white'sFICS wild/4: http://www.freechess.org/Help/HelpFiles/wild.html * Randomly chosen pieces (two queens or three rooks possible) * Exactly one king of each colour * Pieces placed randomly behind the pawns, SUBJECT TO THE CONSTRAINT THAT THE BISHOPS ARE BALANCED * No castling * Black's arrangement DOES NOT mirrors white'sFICS wild/5: http://www.freechess.org/Help/HelpFiles/wild.html http://en.wikipedia.org/wiki/Chess_variant#Chess_with_different_starting_positions Pawns start on their 7th rank rather than their 2nd rank!FICS wild/8: http://www.freechess.org/Help/HelpFiles/wild.html Pawns start on 4th and 5th ranks rather than 2nd and 7thFICS wild/8a: http://www.freechess.org/Help/HelpFiles/wild.html White pawns start on 5th rank and black pawns on the 4th rankFIDE MasterFMF_ull board animationFace _to Face display modeFile existsFischer RandomForced moveFriendsGMGain:Game analysing in progress...Game informationGame is _drawn:Game is _lost:Game is _set-up:Game is _won:Game shared at Games running: %dGaviota TB path:Generally this means nothing, as the game is time-based, but if you want to please your opponent, perhaps you should get going.Grand MasterGuestHa_ndle:Halfmove clockHidden pawnsHidden piecesHideHintsHost:How to PlayHuman BeingIMIdIdleIf set, PyChess will colourise suboptimal analysed moves with red.If set, PyChess will show game results for different moves in positions containing 6 or less pieces. It will search positions from http://www.k4it.de/If set, PyChess will show game results for different moves in positions containing 6 or less pieces. You can download tablebase files from: http://www.olympuschess.com/egtb/gaviota/If set, PyChess will suggest best opening moves on hint panel.If set, PyChess will use figures to express moved pieces, rather than uppercase letters.If set, clicking on main application window closer first time it closes all games.If set, the black pieces will be head down, suitable for playing against friends on mobile devices.If set, the board will turn after each move, to show the natural view for the current player.If set, the captured figurines will be shown next to the board.If set, the elapsed time that a player used for the move is shown.If set, the hint analyser engine evaluation value is shown.If set, the playing board will display labels and ranks for each chess field. These are usable in chess notation.If set, this hides the tab in the top of the playing window, when it is not needed.If the analyser finds a move where the evaluation difference (the difference between the evaluation for the move it thinks is the best move and the evaluation for the move made in the game) exceeds this value, it will add an annotation for that move (consisting of the engine's Principal Variation for the move) to the Annotation panelIf you don't save, new changes to your games will be permanently lost.In TournamentIn this position, there is no legal move.Initial positionInitiativeInternational MasterInvalid move.It is not possible later to continue the game, if you don't save it.Jump to initial positionJump to latest positionKKingKing of the hillKnightKnight oddsKnightsLeave _FullscreenLight Squares :LightningLightning:Load _Recent GameLoaded gameLoading player dataLocal EventLocal SiteLog on ErrorLog on as G_uestLog on as _GuestLogging on to serverLosersLossMakrukMakruk: http://en.wikipedia.org/wiki/MakrukMamer ManagerManage enginesManualManual AcceptManually accept opponentMate in %dMaximum analysis time in seconds:Minutes:Minutes: More channelsMore playersMove HistoryMove numberNNameNames: #n1, #n2Needs 7 slashes in piece placement field. %sNever use animation. Use this on slow machines.New GameNo _animationNo chess engines (computer players) are participating in this game.No conversation's selectedNo soundNormalNormal: 40 min + 15 sec/moveNot AvailableObserveObserve %sObserved _ends:OddsOffer A_bortOffer AbortOffer Ad_journmentOffer PauseOffer RematchOffer ResumeOffer UndoOffer _AbortOffer _DrawOffer _PauseOffer _ResumeOffer _UndoOfficial PyChess panel.OfflineOn FICS, your "Wild" rating encompasses all of the following variants at all time controls: One player starts with one less knight pieceOne player starts with one less pawn pieceOne player starts with one less queen pieceOne player starts with one less rook pieceOnlineOnly animate _movesOnly animate piece moves.Only registered users may talk to this channelOpen GameOpen Sound FileOpen _DatabaseOpening BookOpening booksOpponent RatingOpponent's strength: OtherOther (non standard rules)Other (standard rules)PParameters:Paste FENPausePawnPawn oddsPawns PassedPawns PushedPingPlayPlay Fischer Random chessPlay Losers chessPlay RematchPlay _Internet ChessPlay normal chess rulesPlayer _RatingPlayers: %dPlayingPng imagePo_rts:Polyglot book file:Pre_viewPrefer figures in _notationPreferencesPressing Ctrl+Z to offer opponent the possible rollback moves.PrivateProbably because it has been withdrawn.PromotionProtocol:PyChess - Connect to Internet ChessPyChess - Internet Chess: FICSPyChess Game DatabasePyChess Information WindowPyChess databasePyChess has lost connection to the engine, probably because it has died. You can try to start a new game with the engine, or try to play against another one.PyChess.py:QQueenQueen oddsQuit PyChessRR_esignRandomRapidRapid: 15 min + 10 sec/moveRatedRated gameRatingReceiving list of playersRemove symbolsRequest ContinuationResendResend %s?Reset Default ColoursResultResumeRookRook oddsRoundRound:Running Simul MatchSRS_ign upSanctionsSaveSave GameSave Game _AsSave _own games onlySave analysing engine _evaluation valuesSave elapsed move _timesSave files to:Save moves before closing?Save the current game before you close it?Saved gameScoreSearch:Seek _GraphSeek updatedSelect Gaviota TB pathSelect auto save pathSelect book fileSelect engineSelect sound file...Select the games you want to save:Select working directorySend ChallengeSend all seeksSend seekService RepresentativeSetting up environmentSetup PositionShare GameSho_w cordsShort on _time:ShoutShow ConsoleShow _ChatShow _captured piecesShow elapsed move timesShow evaluation valuesShow tips at startupShredderLinuxChess:ShuffleSide to moveSide_panelsSimple Chess PositionSiteSite:SittuyinSittuyin: http://en.wikipedia.org/wiki/SittuyinSorry '%s' is already logged inSound filesSp_y modeSpentStandardStandard:Start Private ChatStatusStep back one moveStep forward one moveSuicideTTDTMTeam AccountThe abort offerThe adjourn offerThe analyser will run in the background and analyse the game. This is necessary for the hint mode to workThe chain button is disabled because you are logged in as a guest. Guests can't establish ratings, and the chain button's state has no effect when there is no rating to which to tie "Opponent Strength" toThe chat panel lets you communicate with your opponent during the game, assuming he or she is interestedThe clock hasn't been started yet.The comments panel will try to analyse and explain the moves playedThe connection was broken - got "end of file" messageThe directory where the engine will be started from.The displayed name of the first human player, e.g., John.The displayed name of the guest player, e.g., Mary.The draw offerThe endgame table will show exact analysis when there are few pieces on the board.The engine %s reports an error:The engine output panel shows the thinking output of chess engines (computer players) during a gameThe entered password was invalid. If you forgot your password, go to http://www.freechess.org/password to request a new one over email.The error was: %sThe file already exists in '%s'. If you replace it, its content will be overwritten.The flag callThe game #%s can't be loaded, because of an error parsing FENThe game can't be loaded, because of an error parsing FENThe game can't be read to end, because of an error parsing move %(moveno)s '%(notation)s'.The game ended in a drawThe game has been abortedThe game has been adjournedThe game has been killedThe game is pausedThe hint panel will provide computer advice during each stage of the gameThe inverse analyser will analyse the game as if your opponent was to move. This is necessary for the spy mode to workThe move failed because %s.The moves sheet keeps track of the players' moves and lets you navigate through the game historyThe offer to switch sidesThe opening book will try to inspire you during the opening phase of the game by showing you common moves made by chess mastersThe pause offerThe reason is unknownThe resignationThe resume offerThe score panel tries to evaluate the positions and shows you a graph of the game progressThe takeback offerThebanThemesThere is %d game with unsaved moves.There are %d games with unsaved moves.There is something wrong with this executableThis game can be automatically aborted without rating loss because there has not yet been two moves madeThis game can not be adjourned because one or both players are guestsThis is a continuation of an adjourned matchThis option is not applicable because you're challenging a playerThis option is not available because you're challenging a guest, Threat analysis by %sThree-checkTimeTime control: Time pressureTip Of The dayTip of the DayTo play on Fullscreen mode, just type F11. Coming back, F11 again.To save a game Game > Save Game As, give the filename and choose where you want to be saved. At the bottom choose extension type of the file, and Save.Tolerance:Tournament DirectorTranslate PyChessTypeType or paste PGN game or FEN positions hereUUnable to accept %sUnable to save to configured file. Save the current game before you close it?Unable to save to configured file. Save the games before closing?Unclear positionUndescribed panelUndoUndo one moveUndo two movesUninstallUnknownUnofficial channel %dUnratedUnregisteredUntimedUpside DownUse _analyserUse _inverted analyserUse _local tablebasesUse _online tablebasesUse analyser:Use name format:Use opening _bookVariant developed by Kai Laskos: http://talkchess.com/forum/viewtopic.php?t=40990Variation annotation creation threshold in centipawns:W EloWFMWGMWIMWaitWas unable to save '%(uri)s' as PyChess doesn't know the format '%(ending)s'.WelcomeWhen this button is in the "locked" state, the relationship between "Opponent's strength" and "Your strength" will be preserved when a) your rating for the type of game sought has changed b) you change the variant or the time controlWhiteWhite O-OWhite O-O-OWhite has a new piece in outpost: %sWhite has a rather cramped positionWhite has a slightly cramped positionWhite should do pawn storm in leftWhite should do pawn storm in rightWhite:WildWildcastleWildcastle shuffleWinWin by giving check 3 timesWith attackWoman FIDE MasterWoman Grand MasterWoman International MasterWorking directory:Year, month, day: #y, #m, #dYouYou are currently logged in as a guest. A guest can't play rated games and therefore isn't able to play as many of the types of matches offered as a registered user. To register an account, go to http://www.freechess.org/Register/index.html.You asked your opponent to moveYou can choose from 20 different difficulties to play against the computer.You can play chess listening to the sounds of the game, for that, Settings > Preferences > Sound tab, enable Use sounds in PyChess and choose your preferred sounds.You can start a new game by Game > New Game, in New Game window do you can choose Players, Time Control and Chess Variants.You can't play rated games because "Untimed" is checked, You can't play rated games because you are logged in as a guestYou can't select a variant because "Untimed" is checked, You can't switch colours during the game.You don't have the necessary rights to save the file. Please ensure that you have given the right path and try again.You have been logged out because you were idle more than 60 minutesYou have opened no conversations yetYou have to set kibitz on to see bot messages here.You have tried to undo too many moves.You may only have 3 outstanding seeks at the same time. If you want to add a new seek you must clear your currently active seeks. Clear your seeks?You sent a draw offerYou sent a pause offerYou sent a resume offerYou sent an abort offerYou sent an adjournment offerYou sent an undo offerYour opponent asks you to hurry!Your opponent has asked that the game be aborted. If you accept this offer, the game will end with no rating change.Your opponent has asked that the game be adjourned. If you accept this offer, the game will be adjourned and you can resume it later (when your opponent is online and both players agree to resume).Your opponent has asked that the game be paused. If you accept this offer, the game clock will be paused until both players agree to resume the game.Your opponent has asked that the game be resumed. If you accept this offer, the game clock will continue from where it was paused.Your opponent has asked that the last %s move(s) be undone. If you accept this offer, the game will continue from the earlier position.Your opponent has offered you a draw.Your opponent has offered you a draw. If you accept this offer, the game will end with a score of 1/2 - 1/2.Your opponent is not out of time.Your opponent must agree to abort the game because there has been two or more moves madeYour opponent seems to have changed their mind.Your opponent wants to abort the game.Your opponent wants to adjourn the game.Your opponent wants to pause the game.Your opponent wants to resume the game.Your opponent wants to undo %s move(s).Your panel settings have been reset. If this problem repeats, you should report it to the developersYour seeks have been removedYour strength: Zugzwang_Accept_Actions_Analyse Game_Auto save finished games_Black player:_Call Flag_Clear Seeks_Copy FEN_Copy PGN_Decline_Edit_Engines_Export Position_Fullscreen_Game_Game List_General_Help_Hide tabs when only one game is open_Hint mode_Hints_Invalid move:_Load Game_Log Off_Log Viewer_Name:_New Game_Next_Observed moves:_Opponent:_Password:_Play Normal chess_Player List_Previous_Replace_Rotate Board_Save %d document_Save %d documents_Save %d documents_Save Game_Seeks / Challenges_Show Sidepanels_Sounds_Start Game_Untimed_Use main app closer [x] to close all games_Use sounds in PyChess_View_White player:_Your Colour:andand guests can't play rated gamesand on FICS, untimed games can't be ratedand on FICS, untimed games have to be normal chess rulesask your opponent to moveblackbrings a %(piece)s closer to enemy King: %(cord)sbrings a Pawn closer to the backrow: %scall your opponents flagcaptures materialCastlesdefends %sdevelops a %(piece)s: %(cord)sdevelops a Pawn: %sdrawsexchanges materialgnuchess:half-openhttp://brainking.com/en/GameRules?tp=2 * Placement of the pieces on the 1st and 8th row are randomised * The king is in the right hand corner * Bishops must start on opposite colour squares * Black's starting position is obtained by rotating white's position 180 degrees around the board's centre * No castlinghttp://en.wikipedia.org/wiki/Chesshttp://en.wikipedia.org/wiki/Chess960 FICS wild/fr: http://www.freechess.org/Help/HelpFiles/wild.htmlhttp://en.wikipedia.org/wiki/Rules_of_chessimproves king safetyin the %(x)s%(y)s filein the %(x)s%(y)s filesincreases the pressure on %sinvalid promoted piecematesminmoves a rook to an open filemoves an rook to a half-open filemoves Bishop into fianchetto: %snot playingofoffer a drawoffer a pauseoffer a takebackoffer an abortoffer to adjournoffer to resumeoffer to switch sidesonline in totalpins an enemy %(oppiece)s on the %(piece)s at %(cord)splaces a %(piece)s more active: %(cord)spromotes a Pawn to a %spromotion move without promoted piece is incorrectputs opponent in checkrating range nowrescues a %sresignround %ssacrifies materialsecslightly improves king safetytakes back materialthe captured cord (%s) is incorrectthe end cord (%s) is incorrectthe move needs a piece and a cordthreatens to win material by %sto automatic acceptto manual acceptucivs.whitewindow1Wine not installedxboardxboard nocastle: http://home.hccnet.nl/h.g.muller/engine-intf.html#8 FICS wild/2: http://www.freechess.org/Help/HelpFiles/wild.html * Random arrangement of the pieces behind the pawns * No castling * Black's arrangement mirrors white'sxboard wildcastle http://home.hccnet.nl/h.g.muller/engine-intf.html#8 FICS wild/0: http://www.freechess.org/Help/HelpFiles/wild.html * White has the typical set-up at the start. * Black's pieces are the same, except that the King and Queen are reversed, * so they are not on the same files as White's King and Queen. * Castling is done similarly to normal chess: * o-o-o indicates long castling and o-o short castling.xboard wildcastle http://home.hccnet.nl/h.g.muller/engine-intf.html#8 FICS wild/1: http://www.freechess.org/Help/HelpFiles/wild.html * In this variant both sides have the same set of pieces as in normal chess. * The white king starts on d1 or e1 and the black king starts on d8 or e8, * and the rooks are in their usual positions. * Bishops are always on opposite colours. * Subject to these constraints the position of the pieces on their first ranks is random. * Castling is done similarly to normal chess: * o-o-o indicates long castling and o-o short castling.pychess-0.12.2/lang/ko/0000755000175000017470000000000012653231274015107 5ustar tamasusers00000000000000pychess-0.12.2/lang/ko/LC_MESSAGES/0000755000175000017470000000000012653231274016674 5ustar tamasusers00000000000000pychess-0.12.2/lang/ko/LC_MESSAGES/pychess.po0000644000175000017470000024211512653216207020716 0ustar tamasusers00000000000000# SOME DESCRIPTIVE TITLE. # Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER # This file is distributed under the same license as the pychess package. # # Translators: # FIRST AUTHOR , 2008 msgid "" msgstr "" "Project-Id-Version: pychess\n" "Report-Msgid-Bugs-To: \n" "POT-Creation-Date: 2016-01-27 13:28+0100\n" "PO-Revision-Date: 2016-01-28 08:56+0000\n" "Last-Translator: slav0nic \n" "Language-Team: Korean (http://www.transifex.com/gbtami/pychess/language/ko/)\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" "Language: ko\n" "Plural-Forms: nplurals=1; plural=0;\n" # "Plural-Forms: nplurals=INTEGER; plural=EXPRESSION;\n" #: glade/analyze_game.glade:22 msgid "Analyze game" msgstr "" #: glade/analyze_game.glade:87 msgid "Use analyzer:" msgstr "" #: glade/analyze_game.glade:122 glade/PyChess.glade:2054 msgid "Maximum analysis time in seconds:" msgstr "" #: glade/analyze_game.glade:163 msgid "" "If the analyzer finds a move where the evaluation difference (the difference" " between the evaluation for the move it thinks is the best move and the " "evaluation for the move made in the game) exceeds this value, it will add an" " annotation for that move (consisting of the engine's Principal Variation " "for the move) to the Annotation panel" msgstr "" #: glade/analyze_game.glade:164 msgid "Variation annotation creation threshold in centipawns:" msgstr "" #: glade/analyze_game.glade:198 msgid "Analyze from current position" msgstr "" #: glade/analyze_game.glade:214 msgid "Add threatening variation lines " msgstr "" #: glade/analyze_game.glade:229 glade/PyChess.glade:1459 msgid "Colorize analyzed moves" msgstr "" #: glade/analyze_game.glade:244 glade/PyChess.glade:1495 msgid "Show evaluation values" msgstr "" #: glade/discovererDialog.glade:18 msgid "PyChess is discovering your engines. Please wait." msgstr "" #: glade/discovererDialog.glade:77 msgid "PyChess.py:" msgstr "" #: glade/discovererDialog.glade:89 msgid "ShredderLinuxChess:" msgstr "" #: glade/discovererDialog.glade:101 msgid "gnuchess:" msgstr "" #: glade/fics_logon.glade:7 msgid "PyChess - Connect to Internet Chess" msgstr "파이체스 - 인터넷 체스에 연결" #: glade/fics_logon.glade:47 msgid "Connect to the Free Online Chess Server" msgstr "" #: glade/fics_logon.glade:129 glade/taskers.glade:394 msgid "_Password:" msgstr "암호(_P):" #: glade/fics_logon.glade:143 msgid "_Name:" msgstr "이름(_N):" #: glade/fics_logon.glade:191 msgid "Log on as _Guest" msgstr "손님으로 로그온(_G)" #: glade/fics_logon.glade:227 msgid "Host:" msgstr "" #: glade/fics_logon.glade:259 msgid "Po_rts:" msgstr "" #: glade/fics_logon.glade:271 msgid "Auto login on startup" msgstr "" #: glade/fics_logon.glade:385 msgid "S_ign up" msgstr "" #: glade/fics_lounge.glade:35 msgid "Challenge: " msgstr "" #: glade/fics_lounge.glade:97 msgid "Send Challenge" msgstr "" #: glade/fics_lounge.glade:133 msgid "Challenge:" msgstr "" #: glade/fics_lounge.glade:327 glade/fics_lounge.glade:2078 msgid "Lightning:" msgstr "" #: glade/fics_lounge.glade:351 glade/fics_lounge.glade:2102 msgid "Standard:" msgstr "" #: glade/fics_lounge.glade:375 glade/fics_lounge.glade:2126 msgid "Blitz:" msgstr "" #: glade/fics_lounge.glade:400 msgid "2 min, Fischer Random, Black" msgstr "" #: glade/fics_lounge.glade:422 msgid "10 min + 6 sec/move, White" msgstr "" #: glade/fics_lounge.glade:444 msgid "5 min" msgstr "" #: glade/fics_lounge.glade:480 msgid "Edit Seek" msgstr "" #: glade/fics_lounge.glade:584 lib/pychess/ic/ICLounge.py:2208 #: lib/pychess/ic/__init__.py:101 lib/pychess/Utils/GameModel.py:206 msgid "Untimed" msgstr "" #: glade/fics_lounge.glade:637 msgid "Minutes: " msgstr "" #: glade/fics_lounge.glade:665 msgid " Gain: " msgstr "" #: glade/fics_lounge.glade:703 msgid "Time control: " msgstr "" #: glade/fics_lounge.glade:716 lib/pychess/ic/FICSObjects.py:56 #: lib/pychess/ic/ICLounge.py:1137 lib/pychess/ic/ICLounge.py:2208 #: lib/pychess/ic/__init__.py:99 msgid "Standard" msgstr "" #: glade/fics_lounge.glade:757 glade/newInOut.glade:633 msgid "Time Control" msgstr "" #: glade/fics_lounge.glade:814 glade/fics_lounge.glade:1346 msgid "Don't care" msgstr "" #: glade/fics_lounge.glade:879 msgid "Your strength: " msgstr "" #: glade/fics_lounge.glade:921 msgid "(Blitz)" msgstr "" #: glade/fics_lounge.glade:951 msgid "Opponent's strength: " msgstr "" #: glade/fics_lounge.glade:1055 msgid "" "When this button is in the \"locked\" state, the relationship\n" "between \"Opponent's strength\" and \"Your strength\" will be\n" "preserved when \n" "a) your rating for the type of game sought has changed\n" "b) you change the variant or the time control" msgstr "" #: glade/fics_lounge.glade:1095 msgid "Center:" msgstr "" #: glade/fics_lounge.glade:1134 msgid "1200" msgstr "" #: glade/fics_lounge.glade:1188 msgid "Tolerance:" msgstr "" #: glade/fics_lounge.glade:1243 lib/pychess/ic/ICLounge.py:2452 msgid "Hide" msgstr "" #: glade/fics_lounge.glade:1289 msgid "Opponent Strength" msgstr "" #: glade/fics_lounge.glade:1386 lib/pychess/Database/gamelist.py:40 #: lib/pychess/ic/ICLounge.py:1357 lib/pychess/ic/ICLounge.py:1557 #: lib/pychess/ic/ICLounge.py:2108 lib/pychess/Utils/repr.py:10 #: lib/pychess/widgets/ChessClock.py:40 #: lib/pychess/widgets/TaskerManager.py:153 msgid "White" msgstr "" #: glade/fics_lounge.glade:1414 lib/pychess/Database/gamelist.py:40 #: lib/pychess/ic/ICLounge.py:1358 lib/pychess/ic/ICLounge.py:1558 #: lib/pychess/ic/ICLounge.py:2110 lib/pychess/Utils/repr.py:10 #: lib/pychess/widgets/ChessClock.py:40 #: lib/pychess/widgets/TaskerManager.py:154 msgid "Black" msgstr "" #: glade/fics_lounge.glade:1453 msgid "Your Color" msgstr "" #: glade/fics_lounge.glade:1512 msgid "Play normal chess rules" msgstr "" #: glade/fics_lounge.glade:1552 msgid "Play" msgstr "" #: glade/fics_lounge.glade:1618 glade/newInOut.glade:833 msgid "Chess Variant" msgstr "" #: glade/fics_lounge.glade:1676 msgid "Rated game" msgstr "" #: glade/fics_lounge.glade:1692 msgid "Manually accept opponent" msgstr "" #: glade/fics_lounge.glade:1722 msgid "Options" msgstr "" #: glade/fics_lounge.glade:1750 msgid "PyChess - Internet Chess: FICS" msgstr "파이체스 - 인터넷 체스: FICS" #: glade/fics_lounge.glade:1823 msgid "_Clear Seeks" msgstr "" #: glade/fics_lounge.glade:1847 msgid "_Accept" msgstr "허용(_A)" #: glade/fics_lounge.glade:1871 msgid "_Decline" msgstr "" #: glade/fics_lounge.glade:2151 msgid "2 min, Fischer Random, 1800↓, Black" msgstr "" #: glade/fics_lounge.glade:2172 msgid "10 min + 6 sec/move, 1400↑, White" msgstr "" #: glade/fics_lounge.glade:2193 msgid "5 min, 1200-1800, Manual" msgstr "" #: glade/fics_lounge.glade:2247 msgid "Send all seeks" msgstr "" #: glade/fics_lounge.glade:2301 msgid "Send seek" msgstr "탐색 보냄" #: glade/fics_lounge.glade:2337 msgid "Create Seek" msgstr "" #: glade/fics_lounge.glade:2353 msgid "_Seeks / Challenges" msgstr "" #: glade/fics_lounge.glade:2374 lib/pychess/ic/ICLounge.py:472 #: lib/pychess/ic/ICLounge.py:670 lib/pychess/ic/ICLounge.py:1357 #: lib/pychess/ic/ICLounge.py:1358 msgid "Rating" msgstr "점수" #: glade/fics_lounge.glade:2399 msgid "Time" msgstr "시간" #: glade/fics_lounge.glade:2419 msgid "Seek _Graph" msgstr "" #: glade/fics_lounge.glade:2444 msgid "0 Players Ready" msgstr "" #: glade/fics_lounge.glade:2496 msgid "Challenge" msgstr "" #: glade/fics_lounge.glade:2549 glade/fics_lounge.glade:2735 msgid "Observe" msgstr "" #: glade/fics_lounge.glade:2602 msgid "Start Private Chat" msgstr "" #: glade/fics_lounge.glade:2659 msgid "_Player List" msgstr "" #: glade/fics_lounge.glade:2792 msgid "_Game List" msgstr "" #: glade/fics_lounge.glade:2847 msgid "_My games" msgstr "" #: glade/fics_lounge.glade:2904 glade/PyChess.glade:841 msgid "Offer _Resume" msgstr "" #: glade/fics_lounge.glade:2962 glade/PyChess.glade:880 msgid "R_esign" msgstr "" #: glade/fics_lounge.glade:3006 glade/PyChess.glade:820 msgid "Offer _Draw" msgstr "비김 제의(_D)" #: glade/fics_lounge.glade:3050 msgid "Offer A_bort" msgstr "" #: glade/fics_lounge.glade:3107 msgid "Pre_view" msgstr "" #: glade/fics_lounge.glade:3151 msgid "Examine" msgstr "" #: glade/fics_lounge.glade:3208 msgid "_Archived" msgstr "" #: glade/fics_lounge.glade:3313 msgid "News" msgstr "뉴스" #: glade/fics_lounge.glade:3345 msgid "Show Console" msgstr "" #: glade/fics_lounge.glade:3359 msgid "Show _Chat" msgstr "" #: glade/fics_lounge.glade:3373 msgid "_Log Off" msgstr "" #: glade/fics_lounge.glade:3393 msgid "Tools" msgstr "도구" #: glade/fics_lounge.glade:3428 msgid "Asymmetric Random " msgstr "" #: glade/findbar.glade:6 msgid "window1" msgstr "" #: glade/findbar.glade:21 msgid "0 of 0" msgstr "" #: glade/findbar.glade:66 msgid "Search:" msgstr "" #: glade/findbar.glade:134 msgid "_Previous" msgstr "" #: glade/findbar.glade:192 msgid "_Next" msgstr "" #: glade/newInOut.glade:45 lib/pychess/widgets/newGameDialog.py:445 msgid "New Game" msgstr "새 게임" #: glade/newInOut.glade:108 msgid "_Start Game" msgstr "게임 시작(_S)" #: glade/newInOut.glade:130 msgid "Copy FEN" msgstr "" #: glade/newInOut.glade:143 msgid "Clear" msgstr "" #: glade/newInOut.glade:156 msgid "Paste FEN" msgstr "" #: glade/newInOut.glade:257 msgid "_Black player:" msgstr "" #: glade/newInOut.glade:274 msgid "_White player:" msgstr "" #: glade/newInOut.glade:385 msgid "Players" msgstr "플레이어" #: glade/newInOut.glade:436 msgid "_Untimed" msgstr "" #: glade/newInOut.glade:475 msgid "Blitz: 5 min" msgstr "" #: glade/newInOut.glade:526 msgid "Rapid: 15 min + 10 sec/move" msgstr "" #: glade/newInOut.glade:575 msgid "Normal: 40 min + 15 sec/move" msgstr "" #: glade/newInOut.glade:684 msgid "_Play Normal chess" msgstr "" #: glade/newInOut.glade:724 msgid "Play Fischer Random chess" msgstr "" #: glade/newInOut.glade:774 msgid "Play Losers chess" msgstr "" #: glade/newInOut.glade:919 msgid "Open Game" msgstr "" #: glade/newInOut.glade:1162 msgid "Initial Position" msgstr "" #: glade/newInOut.glade:1219 msgid "Enter Game Notation" msgstr "게임 기록 보기" #: glade/newInOut.glade:1314 msgid "Halfmove clock" msgstr "" #: glade/newInOut.glade:1327 msgid "En passant line" msgstr "" #: glade/newInOut.glade:1339 msgid "Side to move" msgstr "" #: glade/newInOut.glade:1351 msgid "Move number" msgstr "" #: glade/newInOut.glade:1361 msgid "Black O-O" msgstr "" #: glade/newInOut.glade:1375 msgid "Black O-O-O" msgstr "" #: glade/newInOut.glade:1389 msgid "White O-O-O" msgstr "" #: glade/newInOut.glade:1403 msgid "White O-O" msgstr "" #: glade/promotion.glade:7 msgid "Promotion" msgstr "승급" #: glade/promotion.glade:49 lib/pychess/Utils/repr.py:12 msgid "Queen" msgstr "여왕" #: glade/promotion.glade:95 lib/pychess/Utils/repr.py:12 msgid "Rook" msgstr "성" #: glade/promotion.glade:141 lib/pychess/Utils/repr.py:12 msgid "Bishop" msgstr "주교" #: glade/promotion.glade:187 lib/pychess/Utils/repr.py:12 msgid "Knight" msgstr "기사" #: glade/promotion.glade:233 lib/pychess/Utils/repr.py:12 msgid "King" msgstr "" #: glade/promotion.glade:265 msgid "Promote pawn to what?" msgstr "쫄을 무엇으로 승급시키겠습니까?" #: glade/PyChess.glade:9 msgid "Chess client" msgstr "" #: glade/PyChess.glade:44 msgid "Game information" msgstr "" #: glade/PyChess.glade:164 msgid "Event:" msgstr "" #: glade/PyChess.glade:178 msgid "Site:" msgstr "" #: glade/PyChess.glade:204 msgid "Round:" msgstr "" #: glade/PyChess.glade:237 msgid "White:" msgstr "" #: glade/PyChess.glade:249 msgid "Black:" msgstr "" #: glade/PyChess.glade:302 msgid "Game data" msgstr "" #: glade/PyChess.glade:357 msgid "Date of game" msgstr "" #: glade/PyChess.glade:495 msgid "_Game" msgstr "게임(_G)" #: glade/PyChess.glade:502 msgid "_New Game" msgstr "새 게임(_N)" #: glade/PyChess.glade:515 msgid "Play _Internet Chess" msgstr "" #: glade/PyChess.glade:534 msgid "_Load Game" msgstr "게임 불러오기(_L)" #: glade/PyChess.glade:550 msgid "Load _Recent Game" msgstr "" #: glade/PyChess.glade:558 msgid "Open _Database" msgstr "" #: glade/PyChess.glade:569 lib/pychess/widgets/newGameDialog.py:615 msgid "Setup Position" msgstr "" #: glade/PyChess.glade:579 msgid "Enter Game _Notation" msgstr "" #: glade/PyChess.glade:592 msgid "_Save Game" msgstr "게임 저장(_S)" #: glade/PyChess.glade:606 msgid "Save Game _As" msgstr "다른 이름으로 게임 저장(_A)" #: glade/PyChess.glade:624 msgid "Share Game" msgstr "" #: glade/PyChess.glade:630 msgid "_Export Position" msgstr "" #: glade/PyChess.glade:644 msgid "_Analyze Game" msgstr "" #: glade/PyChess.glade:678 msgid "Player _Rating" msgstr "선수 등급 매기기(_R)" #: glade/PyChess.glade:723 msgid "_Edit" msgstr "" #: glade/PyChess.glade:734 msgid "_Copy PGN" msgstr "" #: glade/PyChess.glade:746 msgid "_Copy FEN" msgstr "" #: glade/PyChess.glade:763 msgid "_Engines" msgstr "" #: glade/PyChess.glade:789 msgid "_Actions" msgstr "동작(_A)" #: glade/PyChess.glade:800 msgid "Offer _Abort" msgstr "" #: glade/PyChess.glade:810 msgid "Offer Ad_journment" msgstr "" #: glade/PyChess.glade:831 msgid "Offer _Pause" msgstr "" #: glade/PyChess.glade:847 msgid "Offer _Undo" msgstr "" #: glade/PyChess.glade:870 msgid "_Call Flag" msgstr "차례 넘기기(_C)" #: glade/PyChess.glade:890 msgid "Ask to _Move" msgstr "" #: glade/PyChess.glade:905 msgid "Auto Call _Flag" msgstr "" #: glade/PyChess.glade:918 msgid "_View" msgstr "보기(_V)" #: glade/PyChess.glade:925 msgid "_Rotate Board" msgstr "체스판 회전(_R)" #: glade/PyChess.glade:939 msgid "_Fullscreen" msgstr "" #: glade/PyChess.glade:952 msgid "Leave _Fullscreen" msgstr "" #: glade/PyChess.glade:969 msgid "_Show Sidepanels" msgstr "" #: glade/PyChess.glade:980 msgid "_Log Viewer" msgstr "로그 보기(_L)" #: glade/PyChess.glade:997 msgid "_Hint mode" msgstr "힌트 상태(_H)" #: glade/PyChess.glade:1009 msgid "Sp_y mode" msgstr "스파이 상태(_y)" #: glade/PyChess.glade:1024 msgid "_Help" msgstr "도움말(_H)" #: glade/PyChess.glade:1034 msgid "About Chess" msgstr "" #: glade/PyChess.glade:1043 msgid "How to Play" msgstr "" #: glade/PyChess.glade:1052 msgid "Translate PyChess" msgstr "" #: glade/PyChess.glade:1058 msgid "Tip of the Day" msgstr "" #: glade/PyChess.glade:1153 msgid "Default" msgstr "" #: glade/PyChess.glade:1156 msgid "Knights" msgstr "" #: glade/PyChess.glade:1167 lib/pychess/widgets/preferencesDialog.py:349 msgid "Beep" msgstr "" #: glade/PyChess.glade:1170 lib/pychess/widgets/preferencesDialog.py:350 msgid "Select sound file..." msgstr "" #: glade/PyChess.glade:1173 lib/pychess/widgets/preferencesDialog.py:348 msgid "No sound" msgstr "" #: glade/PyChess.glade:1180 msgid "Preferences" msgstr "" #: glade/PyChess.glade:1218 msgid "The displayed name of the first human player, e.g., John." msgstr "" #: glade/PyChess.glade:1230 msgid "Name of _first human player:" msgstr "" #: glade/PyChess.glade:1259 msgid "The displayed name of the guest player, e.g., Mary." msgstr "" #: glade/PyChess.glade:1271 msgid "Name of s_econd human player:" msgstr "" #: glade/PyChess.glade:1307 msgid "_Hide tabs when only one game is open" msgstr "" #: glade/PyChess.glade:1312 msgid "" "If set, this hides the tab in the top of the playing window, when it is not " "needed." msgstr "" #: glade/PyChess.glade:1326 msgid "_Use main app closer [x] to close all games" msgstr "" #: glade/PyChess.glade:1331 msgid "" "If set, clicking on main application window closer first time it closes all " "games." msgstr "" #: glade/PyChess.glade:1345 msgid "Auto _rotate board to current human player" msgstr "" #: glade/PyChess.glade:1350 msgid "" "If set, the board will turn after each move, to show the natural view for " "the current player." msgstr "" #: glade/PyChess.glade:1364 msgid "Auto _promote to queen" msgstr "" #: glade/PyChess.glade:1369 msgid "If set, pawn promotes to queen without promotion dialog selection." msgstr "" #: glade/PyChess.glade:1383 msgid "Face _to Face display mode" msgstr "" #: glade/PyChess.glade:1388 msgid "" "If set, the black pieces will be head down, suitable for playing against " "friends on mobile devices." msgstr "" #: glade/PyChess.glade:1402 msgid "Sho_w cords" msgstr "" #: glade/PyChess.glade:1407 msgid "" "If set, the playing board will display labels and ranks for each chess " "field. These are usable in chess notation." msgstr "" #: glade/PyChess.glade:1421 msgid "Show _captured pieces" msgstr "" #: glade/PyChess.glade:1426 msgid "If set, the captured figurines will be shown next to the board." msgstr "" #: glade/PyChess.glade:1440 msgid "Prefer figures in _notation" msgstr "" #: glade/PyChess.glade:1445 msgid "" "If set, PyChess will use figures to express moved pieces, rather than " "uppercase letters." msgstr "" #: glade/PyChess.glade:1464 msgid "If set, PyChess will colorize suboptimal analyzed moves with red." msgstr "" #: glade/PyChess.glade:1477 msgid "Show elapsed move times" msgstr "" #: glade/PyChess.glade:1482 msgid "If set, the elapsed time that a player used for the move is shown." msgstr "" #: glade/PyChess.glade:1500 msgid "If set, the hint analyzer engine evaluation value is shown." msgstr "" #: glade/PyChess.glade:1526 msgid "General Options" msgstr "" #: glade/PyChess.glade:1560 msgid "F_ull board animation" msgstr "" #: glade/PyChess.glade:1565 msgid "Animate pieces, board rotation and more. Use this on fast machines." msgstr "" #: glade/PyChess.glade:1579 msgid "Only animate _moves" msgstr "" #: glade/PyChess.glade:1584 msgid "Only animate piece moves." msgstr "" #: glade/PyChess.glade:1599 msgid "No _animation" msgstr "" #: glade/PyChess.glade:1604 msgid "Never use animation. Use this on slow machines." msgstr "" #: glade/PyChess.glade:1632 msgid "Animation" msgstr "" #: glade/PyChess.glade:1651 msgid "_General" msgstr "" #: glade/PyChess.glade:1692 msgid "Use opening _book" msgstr "" #: glade/PyChess.glade:1697 msgid "If set, PyChess will suggest best opening moves on hint panel." msgstr "" #: glade/PyChess.glade:1724 msgid "Polyglot book file:" msgstr "" #: glade/PyChess.glade:1768 msgid "Use _local tablebases" msgstr "" #: glade/PyChess.glade:1773 msgid "" "If set, PyChess will show game results for different moves in positions containing 6 or less pieces.\n" "You can download tablebase files from:\n" "http://www.olympuschess.com/egtb/gaviota/" msgstr "" #: glade/PyChess.glade:1803 msgid "Gaviota TB path:" msgstr "" #: glade/PyChess.glade:1843 msgid "Use _online tablebases" msgstr "" #: glade/PyChess.glade:1848 msgid "" "If set, PyChess will show game results for different moves in positions containing 6 or less pieces.\n" "It will search positions from http://www.k4it.de/" msgstr "" #: glade/PyChess.glade:1870 msgid "Opening, endgame" msgstr "" #: glade/PyChess.glade:1904 msgid "Use _analyzer" msgstr "" #: glade/PyChess.glade:1946 msgid "" "The analyzer will run in the background and analyze the game. This is " "necessary for the hint mode to work" msgstr "" #: glade/PyChess.glade:1978 msgid "Use _inverted analyzer" msgstr "" #: glade/PyChess.glade:2020 msgid "" "The inverse analyzer will analyze the game as if your opponent was to move. " "This is necessary for the spy mode to work" msgstr "" #: glade/PyChess.glade:2096 msgid "Analyzing" msgstr "" #: glade/PyChess.glade:2118 msgid "_Hints" msgstr "" #: glade/PyChess.glade:2263 msgid "Uninstall" msgstr "" #: glade/PyChess.glade:2317 msgid "Ac_tive" msgstr "" #: glade/PyChess.glade:2367 msgid "Installed Sidepanels" msgstr "" #: glade/PyChess.glade:2382 msgid "Side_panels" msgstr "" #: glade/PyChess.glade:2440 msgid "Light Squares :" msgstr "" #: glade/PyChess.glade:2479 msgid "Dark Squares :" msgstr "" #: glade/PyChess.glade:2515 msgid "Reset Default Colours" msgstr "" #: glade/PyChess.glade:2551 msgid "Board Colours" msgstr "" #: glade/PyChess.glade:2610 msgid "Chess Sets" msgstr "" #: glade/PyChess.glade:2634 msgid "Themes" msgstr "" #: glade/PyChess.glade:2659 msgid "_Use sounds in PyChess" msgstr "" #: glade/PyChess.glade:2982 msgid "A player _checks:" msgstr "" #: glade/PyChess.glade:2997 msgid "A player _moves:" msgstr "" #: glade/PyChess.glade:3010 msgid "Game is _drawn:" msgstr "" #: glade/PyChess.glade:3025 msgid "Game is _lost:" msgstr "" #: glade/PyChess.glade:3040 msgid "Game is _won:" msgstr "" #: glade/PyChess.glade:3055 msgid "A player c_aptures:" msgstr "" #: glade/PyChess.glade:3084 msgid "Game is _set-up:" msgstr "" #: glade/PyChess.glade:3136 msgid "_Observed moves:" msgstr "" #: glade/PyChess.glade:3151 msgid "Observed _ends:" msgstr "" #: glade/PyChess.glade:3265 msgid "Short on _time:" msgstr "" #: glade/PyChess.glade:3317 msgid "_Invalid move:" msgstr "" #: glade/PyChess.glade:3369 msgid "Activate alarm when _remaining sec is:" msgstr "" #: glade/PyChess.glade:3416 msgid "Play Sound When..." msgstr "" #: glade/PyChess.glade:3438 msgid "_Sounds" msgstr "" #: glade/PyChess.glade:3463 msgid "_Auto save finished games" msgstr "" #: glade/PyChess.glade:3497 msgid "Save files to:" msgstr "" #: glade/PyChess.glade:3525 msgid "Use name format:" msgstr "" #: glade/PyChess.glade:3569 msgid "Names: #n1, #n2" msgstr "" #: glade/PyChess.glade:3582 msgid "Year, month, day: #y, #m, #d" msgstr "" #: glade/PyChess.glade:3619 msgid "Save elapsed move _times" msgstr "" #: glade/PyChess.glade:3644 msgid "Save analyzing engine _evaluation values" msgstr "" #: glade/PyChess.glade:3669 msgid "Save _own games only" msgstr "" #: glade/PyChess.glade:3698 msgid "Save" msgstr "" #: glade/PyChess.glade:3728 msgid "uci" msgstr "" #: glade/PyChess.glade:3731 msgid "xboard" msgstr "" #: glade/PyChess.glade:3739 msgid "Manage engines" msgstr "" #: glade/PyChess.glade:3837 msgid "Command:" msgstr "" #: glade/PyChess.glade:3851 msgid "Protocol:" msgstr "" #: glade/PyChess.glade:3865 msgid "Parameters:" msgstr "" #: glade/PyChess.glade:3878 msgid "Command line parameters needed by the engine." msgstr "" #: glade/PyChess.glade:3903 msgid "" "Engines use uci or xboard communication protocol to talk to the GUI.\n" "If it can use both you can set here which one you like." msgstr "" #: glade/PyChess.glade:3929 msgid "Working directory:" msgstr "" #: glade/PyChess.glade:3942 msgid "The directory where the engine will be started from." msgstr "" #: glade/saveGamesDialog.glade:7 msgid "Quit PyChess" msgstr "" #: glade/saveGamesDialog.glade:24 lib/pychess/widgets/ionest.py:424 msgid "Close _without Saving" msgstr "" #: glade/saveGamesDialog.glade:83 msgid "_Save %d documents" msgstr "" #: glade/saveGamesDialog.glade:141 msgid "" "There are %d games with unsaved moves. Save changes before " "closing?" msgstr "" #: glade/saveGamesDialog.glade:161 msgid "Select the games you want to save:" msgstr "" #: glade/saveGamesDialog.glade:204 msgid "If you don't save, new changes to your games will be permanently lost." msgstr "" #: glade/taskers.glade:126 msgid "_Opponent:" msgstr "" #: glade/taskers.glade:154 msgid "_Your Color:" msgstr "" #: glade/taskers.glade:219 msgid "_Start Game" msgstr "" #: glade/taskers.glade:338 msgid "Log on as G_uest" msgstr "" #: glade/taskers.glade:410 msgid "Ha_ndle:" msgstr "" #: glade/taskers.glade:469 msgid "_Connect to server" msgstr "" #: glade/tipoftheday.glade:7 msgid "Tip Of The day" msgstr "" #: glade/tipoftheday.glade:62 msgid "Show tips at startup" msgstr "" #: lib/pychess/Main.py:302 msgid "http://en.wikipedia.org/wiki/Chess" msgstr "" #: lib/pychess/Main.py:305 msgid "http://en.wikipedia.org/wiki/Rules_of_chess" msgstr "" #: lib/pychess/Main.py:370 lib/pychess/widgets/gamenanny.py:80 msgid "Welcome" msgstr "" #: lib/pychess/Database/gamelist.py:40 msgid "Id" msgstr "" #: lib/pychess/Database/gamelist.py:40 msgid "W Elo" msgstr "" #: lib/pychess/Database/gamelist.py:40 msgid "B Elo" msgstr "" #: lib/pychess/Database/gamelist.py:41 msgid "Result" msgstr "" #: lib/pychess/Database/gamelist.py:41 msgid "Event" msgstr "" #: lib/pychess/Database/gamelist.py:41 msgid "Site" msgstr "" #: lib/pychess/Database/gamelist.py:41 msgid "Round" msgstr "" #: lib/pychess/Database/gamelist.py:41 msgid "Date" msgstr "" #: lib/pychess/Database/gamelist.py:41 msgid "ECO" msgstr "" #: lib/pychess/Database/gamelist.py:62 msgid "PyChess Game Database" msgstr "" #: lib/pychess/Database/PgnImport.py:188 #, python-format msgid "The game #%s can't be loaded, because of an error parsing FEN" msgstr "" #: lib/pychess/ic/FICSConnection.py:139 msgid "The connection was broken - got \"end of file\" message" msgstr "" #: lib/pychess/ic/FICSConnection.py:140 #, python-format msgid "'%s' is not a registered name" msgstr "" #: lib/pychess/ic/FICSConnection.py:141 msgid "" "The entered password was invalid.\n" "If you forgot your password, go to http://www.freechess.org/password to request a new one over email." msgstr "" #: lib/pychess/ic/FICSConnection.py:145 #, python-format msgid "Sorry '%s' is already logged in" msgstr "" #: lib/pychess/ic/FICSConnection.py:146 #, python-format msgid "'%s' is a registered name. If it is yours, type the password." msgstr "" #: lib/pychess/ic/FICSConnection.py:147 msgid "" "Due to abuse problems, guest connections have been prevented.\n" "You can still register on http://www.freechess.org" msgstr "" #: lib/pychess/ic/FICSConnection.py:166 msgid "Connecting to server" msgstr "" #: lib/pychess/ic/FICSConnection.py:181 msgid "Logging on to server" msgstr "" #: lib/pychess/ic/FICSConnection.py:239 msgid "Setting up environment" msgstr "" #: lib/pychess/ic/FICSObjects.py:35 lib/pychess/ic/FICSObjects.py:47 #, python-format msgid "%(player)s is %(status)s" msgstr "" #: lib/pychess/ic/FICSObjects.py:46 msgid "not playing" msgstr "" #: lib/pychess/ic/FICSObjects.py:54 lib/pychess/ic/ICLounge.py:1136 #: lib/pychess/ic/ICLounge.py:2209 lib/pychess/ic/__init__.py:98 #: lib/pychess/widgets/newGameDialog.py:153 msgid "Blitz" msgstr "" #: lib/pychess/ic/FICSObjects.py:58 lib/pychess/ic/ICLounge.py:1137 #: lib/pychess/ic/ICLounge.py:2209 lib/pychess/ic/__init__.py:100 msgid "Lightning" msgstr "" #: lib/pychess/ic/FICSObjects.py:60 lib/pychess/Variants/atomic.py:15 msgid "Atomic" msgstr "" #: lib/pychess/ic/FICSObjects.py:62 lib/pychess/Variants/bughouse.py:9 msgid "Bughouse" msgstr "" #: lib/pychess/ic/FICSObjects.py:64 lib/pychess/Variants/crazyhouse.py:9 msgid "Crazyhouse" msgstr "" #: lib/pychess/ic/FICSObjects.py:66 lib/pychess/Variants/losers.py:9 msgid "Losers" msgstr "" #: lib/pychess/ic/FICSObjects.py:68 lib/pychess/Variants/suicide.py:12 msgid "Suicide" msgstr "" #: lib/pychess/ic/FICSObjects.py:70 lib/pychess/ic/__init__.py:129 msgid "Wild" msgstr "" #: lib/pychess/ic/FICSObjects.py:117 msgid "Online" msgstr "" #: lib/pychess/ic/FICSObjects.py:118 lib/pychess/ic/FICSObjects.py:143 msgid "Offline" msgstr "" #: lib/pychess/ic/FICSObjects.py:133 msgid "Available" msgstr "" #: lib/pychess/ic/FICSObjects.py:135 msgid "Playing" msgstr "" #: lib/pychess/ic/FICSObjects.py:141 msgid "Idle" msgstr "" #: lib/pychess/ic/FICSObjects.py:145 msgid "Examining" msgstr "" #: lib/pychess/ic/FICSObjects.py:147 msgid "Not Available" msgstr "" #: lib/pychess/ic/FICSObjects.py:149 msgid "Running Simul Match" msgstr "" #: lib/pychess/ic/FICSObjects.py:151 msgid "In Tournament" msgstr "" #: lib/pychess/ic/FICSObjects.py:308 lib/pychess/ic/FICSObjects.py:492 #: lib/pychess/ic/ICLounge.py:2278 msgid "Unrated" msgstr "" #: lib/pychess/ic/FICSObjects.py:491 lib/pychess/ic/ICLounge.py:670 #: lib/pychess/ic/ICLounge.py:1358 lib/pychess/ic/ICLounge.py:1558 #: lib/pychess/ic/ICLounge.py:2113 msgid "Rated" msgstr "" #: lib/pychess/ic/FICSObjects.py:498 lib/pychess/ic/ICLounge.py:2098 #, python-format msgid "%d min" msgstr "" #: lib/pychess/ic/FICSObjects.py:500 #, python-format msgid " + %d sec" msgstr "" #: lib/pychess/ic/FICSObjects.py:517 #, python-format msgid "%(player)s plays %(color)s" msgstr "" #: lib/pychess/ic/FICSObjects.py:519 lib/pychess/ic/ICLounge.py:909 msgid "white" msgstr "" #: lib/pychess/ic/FICSObjects.py:519 lib/pychess/ic/ICLounge.py:909 msgid "black" msgstr "" #: lib/pychess/ic/FICSObjects.py:565 msgid "This is a continuation of an adjourned match" msgstr "" #: lib/pychess/ic/FICSObjects.py:654 msgid "Opponent Rating" msgstr "" #: lib/pychess/ic/FICSObjects.py:656 msgid "Manual Accept" msgstr "" #: lib/pychess/ic/FICSObjects.py:810 msgid "Private" msgstr "" #: lib/pychess/ic/FICSObjects.py:930 lib/pychess/ic/ICLounge.py:527 #: lib/pychess/Savers/epd.py:139 msgid "Unknown" msgstr "" #: lib/pychess/ic/ICLogon.py:159 lib/pychess/ic/ICLogon.py:165 msgid "Connection Error" msgstr "" #: lib/pychess/ic/ICLogon.py:161 msgid "Log on Error" msgstr "" #: lib/pychess/ic/ICLogon.py:163 msgid "Connection was closed" msgstr "" #: lib/pychess/ic/ICLogon.py:169 msgid "Address Error" msgstr "" #: lib/pychess/ic/ICLogon.py:172 msgid "Auto-logout" msgstr "" #: lib/pychess/ic/ICLogon.py:173 msgid "You have been logged out because you were idle more than 60 minutes" msgstr "" #: lib/pychess/ic/ICLounge.py:222 msgid "You have to set kibitz on to see bot messages here." msgstr "" #: lib/pychess/ic/ICLounge.py:241 msgid "" "You may only have 3 outstanding seeks at the same time. If you want to add a" " new seek you must clear your currently active seeks. Clear your seeks?" msgstr "" #: lib/pychess/ic/ICLounge.py:258 msgid "You can't touch this! You are examining a game." msgstr "" #: lib/pychess/ic/ICLounge.py:270 msgid " has declined your offer for a match" msgstr "" #: lib/pychess/ic/ICLounge.py:283 msgid " is censoring you" msgstr "" #: lib/pychess/ic/ICLounge.py:296 msgid " noplay listing you" msgstr "" #: lib/pychess/ic/ICLounge.py:311 msgid " uses a formula not fitting your match request:" msgstr "" #: lib/pychess/ic/ICLounge.py:325 msgid "to manual accept" msgstr "" #: lib/pychess/ic/ICLounge.py:327 msgid "to automatic accept" msgstr "" #: lib/pychess/ic/ICLounge.py:329 msgid "rating range now" msgstr "" #: lib/pychess/ic/ICLounge.py:330 msgid "Seek updated" msgstr "" #: lib/pychess/ic/ICLounge.py:342 msgid "Your seeks have been removed" msgstr "" #: lib/pychess/ic/ICLounge.py:363 msgid " has arrived" msgstr "" #: lib/pychess/ic/ICLounge.py:370 msgid " has departed" msgstr "" #: lib/pychess/ic/ICLounge.py:374 msgid " is present" msgstr "" #: lib/pychess/ic/ICLounge.py:391 sidepanel/chatPanel.py:17 msgid "Chat" msgstr "" #: lib/pychess/ic/ICLounge.py:472 sidepanel/bookPanel.py:366 msgid "Win" msgstr "" #: lib/pychess/ic/ICLounge.py:472 sidepanel/bookPanel.py:360 msgid "Draw" msgstr "" #: lib/pychess/ic/ICLounge.py:472 sidepanel/bookPanel.py:363 msgid "Loss" msgstr "" #: lib/pychess/ic/ICLounge.py:482 msgid "" "On FICS, your \"Wild\" rating encompasses all of the following variants at " "all time controls:\n" msgstr "" #: lib/pychess/ic/ICLounge.py:494 msgid "Sanctions" msgstr "" #: lib/pychess/ic/ICLounge.py:499 msgid "Email" msgstr "" #: lib/pychess/ic/ICLounge.py:504 msgid "Spent" msgstr "" #: lib/pychess/ic/ICLounge.py:506 msgid "online in total" msgstr "" #: lib/pychess/ic/ICLounge.py:512 msgid "Ping" msgstr "" #: lib/pychess/ic/ICLounge.py:517 msgid "Connecting" msgstr "" #: lib/pychess/ic/ICLounge.py:544 msgid "" "You are currently logged in as a guest.\n" "A guest can't play rated games and therefore isn't able to play as many of the types of matches offered as a registered user. To register an account, go to http://www.freechess.org/Register/index.html." msgstr "" #: lib/pychess/ic/ICLounge.py:669 lib/pychess/ic/ICLounge.py:1136 msgid "Name" msgstr "" #: lib/pychess/ic/ICLounge.py:670 lib/pychess/ic/ICLounge.py:1358 #: lib/pychess/ic/ICLounge.py:1558 msgid "Type" msgstr "" #: lib/pychess/ic/ICLounge.py:670 lib/pychess/ic/ICLounge.py:1558 msgid "Clock" msgstr "" #: lib/pychess/ic/ICLounge.py:726 lib/pychess/ic/ICLounge.py:923 #: lib/pychess/Players/Human.py:250 msgid "Accept" msgstr "" #: lib/pychess/ic/ICLounge.py:728 msgid "Assess" msgstr "" #: lib/pychess/ic/ICLounge.py:734 msgid "Archived" msgstr "" #: lib/pychess/ic/ICLounge.py:848 #, python-format msgid "Active seeks: %d" msgstr "" #: lib/pychess/ic/ICLounge.py:897 #, python-format msgid "" " would like to resume your adjourned %(time)s %(gametype)s " "game." msgstr "" #: lib/pychess/ic/ICLounge.py:902 #, python-format msgid "" " challenges you to a %(time)s %(rated)s %(gametype)s game" msgstr "" #: lib/pychess/ic/ICLounge.py:907 #, python-format msgid " where %(player)s plays %(color)s." msgstr "" #: lib/pychess/ic/ICLounge.py:924 lib/pychess/Players/Human.py:251 msgid "Decline" msgstr "" #: lib/pychess/ic/ICLounge.py:1065 msgid " min" msgstr "" #: lib/pychess/ic/ICLounge.py:1137 msgid "Status" msgstr "" #: lib/pychess/ic/ICLounge.py:1203 lib/pychess/ic/ICLounge.py:1233 #, python-format msgid "Players: %d" msgstr "" #: lib/pychess/ic/ICLounge.py:1469 #, python-format msgid "Games running: %d" msgstr "" #: lib/pychess/ic/ICLounge.py:1559 msgid "Date/Time" msgstr "" #: lib/pychess/ic/ICLounge.py:1614 #, python-format msgid "" " with whom you have an adjourned %(timecontrol)s %(gametype)s " "game is online." msgstr "" #: lib/pychess/ic/ICLounge.py:1635 msgid "Request Continuation" msgstr "" #: lib/pychess/ic/ICLounge.py:1637 msgid "Examine Adjourned Game" msgstr "" #: lib/pychess/ic/ICLounge.py:1965 msgid "" "The chain button is disabled because you are logged in as a guest. Guests " "can't establish ratings, and the chain button's state has no effect when " "there is no rating to which to tie \"Opponent Strength\" to" msgstr "" #: lib/pychess/ic/ICLounge.py:2006 msgid "Challenge: " msgstr "" #: lib/pychess/ic/ICLounge.py:2044 msgid "If set you can refuse players accepting your seek" msgstr "" #: lib/pychess/ic/ICLounge.py:2048 lib/pychess/ic/ICLounge.py:2051 msgid "This option is not applicable because you're challenging a player" msgstr "" #: lib/pychess/ic/ICLounge.py:2064 msgid "Edit Seek: " msgstr "" #: lib/pychess/ic/ICLounge.py:2095 #, python-format msgid "%(minutes)d min + %(gain)d sec/move" msgstr "" #: lib/pychess/ic/ICLounge.py:2116 msgid "Manual" msgstr "" #: lib/pychess/ic/ICLounge.py:2256 msgid "Any strength" msgstr "" #: lib/pychess/ic/ICLounge.py:2308 msgid "You can't play rated games because you are logged in as a guest" msgstr "" #: lib/pychess/ic/ICLounge.py:2312 msgid "You can't play rated games because \"Untimed\" is checked, " msgstr "" #: lib/pychess/ic/ICLounge.py:2313 msgid "and on FICS, untimed games can't be rated" msgstr "" #: lib/pychess/ic/ICLounge.py:2317 msgid "This option is not available because you're challenging a guest, " msgstr "" #: lib/pychess/ic/ICLounge.py:2318 msgid "and guests can't play rated games" msgstr "" #: lib/pychess/ic/ICLounge.py:2332 lib/pychess/Variants/shuffle.py:16 #: lib/pychess/widgets/newGameDialog.py:266 msgid "Shuffle" msgstr "" #: lib/pychess/ic/ICLounge.py:2333 lib/pychess/widgets/newGameDialog.py:267 msgid "Other (standard rules)" msgstr "" #: lib/pychess/ic/ICLounge.py:2334 lib/pychess/widgets/newGameDialog.py:268 msgid "Other (non standard rules)" msgstr "" #: lib/pychess/ic/ICLounge.py:2421 msgid "You can't select a variant because \"Untimed\" is checked, " msgstr "" #: lib/pychess/ic/ICLounge.py:2422 msgid "and on FICS, untimed games have to be normal chess rules" msgstr "" #: lib/pychess/ic/ICLounge.py:2454 msgid "Change Tolerance" msgstr "" #: lib/pychess/ic/__init__.py:102 msgid "Examined" msgstr "" #: lib/pychess/ic/__init__.py:103 msgid "Other" msgstr "" #: lib/pychess/ic/__init__.py:182 msgid "Administrator" msgstr "" #: lib/pychess/ic/__init__.py:182 msgid "Blindfold Account" msgstr "" #: lib/pychess/ic/__init__.py:182 msgid "Computer" msgstr "" #: lib/pychess/ic/__init__.py:183 msgid "Team Account" msgstr "" #: lib/pychess/ic/__init__.py:183 msgid "Unregistered" msgstr "" #: lib/pychess/ic/__init__.py:183 msgid "Chess Advisor" msgstr "" #: lib/pychess/ic/__init__.py:184 msgid "Service Representative" msgstr "" #: lib/pychess/ic/__init__.py:184 msgid "Tournament Director" msgstr "" #: lib/pychess/ic/__init__.py:184 msgid "Mamer Manager" msgstr "" #: lib/pychess/ic/__init__.py:185 msgid "Grand Master" msgstr "" #: lib/pychess/ic/__init__.py:185 msgid "International Master" msgstr "" #: lib/pychess/ic/__init__.py:185 msgid "FIDE Master" msgstr "" #: lib/pychess/ic/__init__.py:186 msgid "Woman Grand Master" msgstr "" #: lib/pychess/ic/__init__.py:186 msgid "Woman International Master" msgstr "" #: lib/pychess/ic/__init__.py:186 msgid "Woman FIDE Master" msgstr "" #: lib/pychess/ic/__init__.py:187 msgid "Dummy Account" msgstr "" #: lib/pychess/ic/__init__.py:191 msgid "*" msgstr "" #: lib/pychess/ic/__init__.py:191 lib/pychess/Utils/repr.py:14 msgid "B" msgstr "" #: lib/pychess/ic/__init__.py:191 msgid "C" msgstr "" #: lib/pychess/ic/__init__.py:192 msgid "T" msgstr "" #: lib/pychess/ic/__init__.py:192 msgid "U" msgstr "" #: lib/pychess/ic/__init__.py:192 msgid "CA" msgstr "" #: lib/pychess/ic/__init__.py:193 msgid "SR" msgstr "" #: lib/pychess/ic/__init__.py:193 msgid "TD" msgstr "" #: lib/pychess/ic/__init__.py:193 msgid "TM" msgstr "" #: lib/pychess/ic/__init__.py:194 msgid "GM" msgstr "" #: lib/pychess/ic/__init__.py:194 msgid "IM" msgstr "" #: lib/pychess/ic/__init__.py:194 msgid "FM" msgstr "" #: lib/pychess/ic/__init__.py:195 msgid "WGM" msgstr "" #: lib/pychess/ic/__init__.py:195 msgid "WIM" msgstr "" #: lib/pychess/ic/__init__.py:195 msgid "WFM" msgstr "" #: lib/pychess/ic/__init__.py:195 msgid "D" msgstr "" #: lib/pychess/ic/__init__.py:195 msgid "H" msgstr "" #: lib/pychess/ic/__init__.py:195 msgid "CM" msgstr "" #: lib/pychess/ic/__init__.py:195 msgid "FA" msgstr "" #: lib/pychess/ic/__init__.py:195 msgid "NM" msgstr "" #: lib/pychess/Players/CECPEngine.py:857 #, python-format msgid "The engine %s reports an error:" msgstr "" #: lib/pychess/Players/Human.py:20 msgid "Your opponent has offered you a draw." msgstr "" #: lib/pychess/Players/Human.py:21 msgid "" "Your opponent has offered you a draw. If you accept this offer, the game " "will end with a score of 1/2 - 1/2." msgstr "" #: lib/pychess/Players/Human.py:23 msgid "Your opponent wants to abort the game." msgstr "" #: lib/pychess/Players/Human.py:24 msgid "" "Your opponent has asked that the game be aborted. If you accept this offer, " "the game will end with no rating change." msgstr "" #: lib/pychess/Players/Human.py:26 msgid "Your opponent wants to adjourn the game." msgstr "" #: lib/pychess/Players/Human.py:27 msgid "" "Your opponent has asked that the game be adjourned. If you accept this " "offer, the game will be adjourned and you can resume it later (when your " "opponent is online and both players agree to resume)." msgstr "" #: lib/pychess/Players/Human.py:29 #, python-format msgid "Your opponent wants to undo %s move(s)." msgstr "" #: lib/pychess/Players/Human.py:30 #, python-format msgid "" "Your opponent has asked that the last %s move(s) be undone. If you accept " "this offer, the game will continue from the earlier position." msgstr "" #: lib/pychess/Players/Human.py:32 msgid "Your opponent wants to pause the game." msgstr "" #: lib/pychess/Players/Human.py:33 msgid "" "Your opponent has asked that the game be paused. If you accept this offer, " "the game clock will be paused until both players agree to resume the game." msgstr "" #: lib/pychess/Players/Human.py:35 msgid "Your opponent wants to resume the game." msgstr "" #: lib/pychess/Players/Human.py:36 msgid "" "Your opponent has asked that the game be resumed. If you accept this offer, " "the game clock will continue from where it was paused." msgstr "" #: lib/pychess/Players/Human.py:40 msgid "The resignation" msgstr "" #: lib/pychess/Players/Human.py:41 msgid "The flag call" msgstr "" #: lib/pychess/Players/Human.py:42 msgid "The draw offer" msgstr "" #: lib/pychess/Players/Human.py:43 msgid "The abort offer" msgstr "" #: lib/pychess/Players/Human.py:44 msgid "The adjourn offer" msgstr "" #: lib/pychess/Players/Human.py:45 msgid "The pause offer" msgstr "" #: lib/pychess/Players/Human.py:46 msgid "The resume offer" msgstr "" #: lib/pychess/Players/Human.py:47 msgid "The offer to switch sides" msgstr "" #: lib/pychess/Players/Human.py:48 msgid "The takeback offer" msgstr "" #: lib/pychess/Players/Human.py:52 msgid "resign" msgstr "" #: lib/pychess/Players/Human.py:53 msgid "call your opponents flag" msgstr "" #: lib/pychess/Players/Human.py:54 msgid "offer a draw" msgstr "" #: lib/pychess/Players/Human.py:55 msgid "offer an abort" msgstr "" #: lib/pychess/Players/Human.py:56 msgid "offer to adjourn" msgstr "" #: lib/pychess/Players/Human.py:57 msgid "offer a pause" msgstr "" #: lib/pychess/Players/Human.py:58 msgid "offer to resume" msgstr "" #: lib/pychess/Players/Human.py:59 msgid "offer to switch sides" msgstr "" #: lib/pychess/Players/Human.py:60 msgid "offer a takeback" msgstr "" #: lib/pychess/Players/Human.py:61 msgid "ask your opponent to move" msgstr "" #: lib/pychess/Players/Human.py:66 msgid "Your opponent is not out of time." msgstr "" #: lib/pychess/Players/Human.py:68 msgid "The clock hasn't been started yet." msgstr "" #: lib/pychess/Players/Human.py:70 msgid "You can't switch colors during the game." msgstr "" #: lib/pychess/Players/Human.py:72 msgid "You have tried to undo too many moves." msgstr "" #: lib/pychess/Players/Human.py:180 msgid "Your opponent asks you to hurry!" msgstr "" #: lib/pychess/Players/Human.py:181 msgid "" "Generally this means nothing, as the game is time-based, but if you want to " "please your opponent, perhaps you should get going." msgstr "" #: lib/pychess/Players/Human.py:259 #, python-format msgid "%s was declined by your opponent" msgstr "" #: lib/pychess/Players/Human.py:260 #, python-format msgid "Resend %s?" msgstr "" #: lib/pychess/Players/Human.py:267 msgid "Resend" msgstr "" #: lib/pychess/Players/Human.py:275 #, python-format msgid "%s was withdrawn by your opponent" msgstr "" #: lib/pychess/Players/Human.py:276 msgid "Your opponent seems to have changed their mind." msgstr "" #: lib/pychess/Players/Human.py:290 #, python-format msgid "Unable to accept %s" msgstr "" #: lib/pychess/Players/Human.py:291 msgid "Probably because it has been withdrawn." msgstr "" #: lib/pychess/Players/Human.py:298 #, python-format msgid "%s returns an error" msgstr "" #: lib/pychess/Savers/chessalpha2.py:12 msgid "Chess Alpha 2 Diagram" msgstr "" #: lib/pychess/Savers/chesspastebin.py:39 msgid "Game shared at " msgstr "" #: lib/pychess/Savers/chesspastebin.py:41 msgid "(Link is available on clipboard.)" msgstr "" #: lib/pychess/Savers/database.py:19 msgid "PyChess database" msgstr "" #: lib/pychess/Savers/epd.py:12 msgid "Chess Position" msgstr "" #: lib/pychess/Savers/fen.py:12 msgid "Simple Chess Position" msgstr "" #: lib/pychess/Savers/fen.py:44 lib/pychess/Savers/pgn.py:329 msgid "The game can't be loaded, because of an error parsing FEN" msgstr "" #: lib/pychess/Savers/pgnbase.py:100 #, python-format msgid "" "The game can't be read to end, because of an error parsing move %(moveno)s " "'%(notation)s'." msgstr "" #: lib/pychess/Savers/pgnbase.py:102 #, python-format msgid "The move failed because %s." msgstr "" #: lib/pychess/Savers/pgnbase.py:110 #, python-format msgid "Error parsing move %(moveno)s %(mstr)s" msgstr "" #: lib/pychess/Savers/pgn.py:28 msgid "Chess Game" msgstr "" #: lib/pychess/Savers/pgn.py:362 msgid "Invalid move." msgstr "" #: lib/pychess/Savers/png.py:15 msgid "Png image" msgstr "" #: lib/pychess/System/ping.py:31 msgid "Destination Host Unreachable" msgstr "" #: lib/pychess/System/ping.py:74 msgid "Died" msgstr "" #: lib/pychess/Utils/GameModel.py:147 msgid "Local Event" msgstr "" #: lib/pychess/Utils/GameModel.py:148 msgid "Local Site" msgstr "" #: lib/pychess/Utils/repr.py:12 msgid "Pawn" msgstr "" #: lib/pychess/Utils/repr.py:14 msgid "P" msgstr "" #: lib/pychess/Utils/repr.py:14 msgid "N" msgstr "" #: lib/pychess/Utils/repr.py:14 msgid "R" msgstr "" #: lib/pychess/Utils/repr.py:14 msgid "Q" msgstr "" #: lib/pychess/Utils/repr.py:14 msgid "K" msgstr "" #: lib/pychess/Utils/repr.py:17 msgid "The game ended in a draw" msgstr "" #: lib/pychess/Utils/repr.py:18 #, python-format msgid "%(white)s won the game" msgstr "" #: lib/pychess/Utils/repr.py:19 #, python-format msgid "%(black)s won the game" msgstr "" #: lib/pychess/Utils/repr.py:20 msgid "The game has been killed" msgstr "" #: lib/pychess/Utils/repr.py:21 msgid "The game has been adjourned" msgstr "" #: lib/pychess/Utils/repr.py:22 msgid "The game has been aborted" msgstr "" #: lib/pychess/Utils/repr.py:26 msgid "Because neither player has sufficient material to mate" msgstr "" #: lib/pychess/Utils/repr.py:27 msgid "Because the same position was repeated three times in a row" msgstr "" #: lib/pychess/Utils/repr.py:28 msgid "Because the last 50 moves brought nothing new" msgstr "" #: lib/pychess/Utils/repr.py:29 msgid "Because both players ran out of time" msgstr "" #: lib/pychess/Utils/repr.py:30 #, python-format msgid "Because %(mover)s stalemated" msgstr "" #: lib/pychess/Utils/repr.py:31 msgid "Because both players agreed to a draw" msgstr "" #: lib/pychess/Utils/repr.py:32 lib/pychess/Utils/repr.py:42 msgid "Because of adjudication by an admin" msgstr "" #: lib/pychess/Utils/repr.py:33 msgid "Because the game exceed the max length" msgstr "" #: lib/pychess/Utils/repr.py:34 #, python-format msgid "" "Because %(white)s ran out of time and %(black)s has insufficient material to" " mate" msgstr "" #: lib/pychess/Utils/repr.py:35 #, python-format msgid "" "Because %(black)s ran out of time and %(white)s has insufficient material to" " mate" msgstr "" #: lib/pychess/Utils/repr.py:36 msgid "Because both players have the same amount of pieces" msgstr "" #: lib/pychess/Utils/repr.py:38 #, python-format msgid "Because %(loser)s resigned" msgstr "" #: lib/pychess/Utils/repr.py:39 #, python-format msgid "Because %(loser)s ran out of time" msgstr "" #: lib/pychess/Utils/repr.py:40 #, python-format msgid "Because %(loser)s was checkmated" msgstr "" #: lib/pychess/Utils/repr.py:41 #, python-format msgid "Because %(loser)s disconnected" msgstr "" #: lib/pychess/Utils/repr.py:43 #, python-format msgid "Because %(winner)s has fewer pieces" msgstr "" #: lib/pychess/Utils/repr.py:44 #, python-format msgid "Because %(winner)s lost all pieces" msgstr "" #: lib/pychess/Utils/repr.py:45 #, python-format msgid "Because %(loser)s king exploded" msgstr "" #: lib/pychess/Utils/repr.py:46 #, python-format msgid "Because %(winner)s king reached the center" msgstr "" #: lib/pychess/Utils/repr.py:47 #, python-format msgid "Because %(winner)s was giving check 3 times" msgstr "" #: lib/pychess/Utils/repr.py:49 msgid "Because a player lost connection" msgstr "" #: lib/pychess/Utils/repr.py:50 msgid "Because both players agreed to an adjournment" msgstr "" #: lib/pychess/Utils/repr.py:51 msgid "Because the server was shut down" msgstr "" #: lib/pychess/Utils/repr.py:52 msgid "" "Because a player lost connection and the other player requested adjournment" msgstr "" #: lib/pychess/Utils/repr.py:53 #, python-format msgid "" "Because %(black)s lost connection to the server and %(white)s requested " "adjournment" msgstr "" #: lib/pychess/Utils/repr.py:54 #, python-format msgid "" "Because %(white)s lost connection to the server and %(black)s requested " "adjournment" msgstr "" #: lib/pychess/Utils/repr.py:55 #, python-format msgid "Because %(white)s lost connection to the server" msgstr "" #: lib/pychess/Utils/repr.py:56 #, python-format msgid "Because %(black)s lost connection to the server" msgstr "" #: lib/pychess/Utils/repr.py:58 msgid "Because of adjudication by an admin. No rating changes have occurred." msgstr "" #: lib/pychess/Utils/repr.py:59 msgid "" "Because both players agreed to abort the game. No rating changes have " "occurred." msgstr "" #: lib/pychess/Utils/repr.py:60 msgid "Because of courtesy by a player. No rating changes have occurred." msgstr "" #: lib/pychess/Utils/repr.py:61 msgid "" "Because a player aborted the game. Either player can abort the game without " "the other's consent before the second move. No rating changes have occurred." msgstr "" #: lib/pychess/Utils/repr.py:62 msgid "" "Because a player disconnected and there are too few moves to warrant " "adjournment. No rating changes have occurred." msgstr "" #: lib/pychess/Utils/repr.py:63 msgid "Because the server was shut down. No rating changes have occurred." msgstr "" #: lib/pychess/Utils/repr.py:65 #, python-format msgid "Because the %(white)s engine died" msgstr "" #: lib/pychess/Utils/repr.py:66 #, python-format msgid "Because the %(black)s engine died" msgstr "" #: lib/pychess/Utils/repr.py:67 msgid "Because the connection to the server was lost" msgstr "" #: lib/pychess/Utils/repr.py:68 msgid "The reason is unknown" msgstr "" #: lib/pychess/Utils/TimeModel.py:229 msgid "min" msgstr "" #: lib/pychess/Utils/TimeModel.py:231 msgid "sec" msgstr "" #: lib/pychess/Variants/asean.py:12 msgid "" "ASEAN: http://www.ncf-" "phil.org/downloadables/2014/May/Asean_chess/Laws_of_ASEAN_Chess_2011_Nov_26.doc" msgstr "" #: lib/pychess/Variants/asean.py:13 msgid "ASEAN" msgstr "" #: lib/pychess/Variants/asean.py:33 msgid "Makruk: http://en.wikipedia.org/wiki/Makruk" msgstr "" #: lib/pychess/Variants/asean.py:34 msgid "Makruk" msgstr "" #: lib/pychess/Variants/asean.py:60 msgid "Cambodian: http://www.khmerinstitute.org/culture/ok.html" msgstr "" #: lib/pychess/Variants/asean.py:61 msgid "Cambodian" msgstr "" #: lib/pychess/Variants/asean.py:86 msgid "" "Ai-Wok: http://www.open-" "aurec.com/wbforum/viewtopic.php?p=199364&sid=20963a1de2c164050de019e5ed6bf7c4#p199364" msgstr "" #: lib/pychess/Variants/asean.py:87 msgid "Ai-Wok" msgstr "" #: lib/pychess/Variants/asean.py:111 msgid "Sittuyin: http://en.wikipedia.org/wiki/Sittuyin" msgstr "" #: lib/pychess/Variants/asean.py:112 msgid "Sittuyin" msgstr "" #: lib/pychess/Variants/asymmetricrandom.py:12 msgid "" "FICS wild/4: http://www.freechess.org/Help/HelpFiles/wild.html\n" "* Randomly chosen pieces (two queens or three rooks possible)\n" "* Exactly one king of each color\n" "* Pieces placed randomly behind the pawns, SUBJECT TO THE CONSTRAINT THAT THE BISHOPS ARE BALANCED\n" "* No castling\n" "* Black's arrangement DOES NOT mirrors white's" msgstr "" #: lib/pychess/Variants/asymmetricrandom.py:18 msgid "Asymmetric Random" msgstr "" #: lib/pychess/Variants/atomic.py:14 msgid "FICS atomic: http://www.freechess.org/Help/HelpFiles/atomic.html" msgstr "" #: lib/pychess/Variants/blindfold.py:7 msgid "" "Classic chess rules with hidden figurines\n" "http://en.wikipedia.org/wiki/Blindfold_chess" msgstr "" #: lib/pychess/Variants/blindfold.py:9 #: lib/pychess/widgets/newGameDialog.py:264 msgid "Blindfold" msgstr "" #: lib/pychess/Variants/blindfold.py:18 msgid "" "Classic chess rules with hidden pawns\n" "http://en.wikipedia.org/wiki/Blindfold_chess" msgstr "" #: lib/pychess/Variants/blindfold.py:20 msgid "Hidden pawns" msgstr "" #: lib/pychess/Variants/blindfold.py:29 msgid "" "Classic chess rules with hidden pieces\n" "http://en.wikipedia.org/wiki/Blindfold_chess" msgstr "" #: lib/pychess/Variants/blindfold.py:31 msgid "Hidden pieces" msgstr "" #: lib/pychess/Variants/blindfold.py:40 msgid "" "Classic chess rules with all pieces white\n" "http://en.wikipedia.org/wiki/Blindfold_chess" msgstr "" #: lib/pychess/Variants/blindfold.py:42 msgid "All white" msgstr "" #: lib/pychess/Variants/bughouse.py:8 msgid "FICS bughouse: http://www.freechess.org/Help/HelpFiles/bughouse.html" msgstr "" #: lib/pychess/Variants/corner.py:12 msgid "" "http://brainking.com/en/GameRules?tp=2\n" "* Placement of the pieces on the 1st and 8th row are randomized\n" "* The king is in the right hand corner\n" "* Bishops must start on opposite color squares\n" "* Black's starting position is obtained by rotating white's position 180 degrees around the board's center\n" "* No castling" msgstr "" #: lib/pychess/Variants/corner.py:18 msgid "Corner" msgstr "" #: lib/pychess/Variants/crazyhouse.py:8 msgid "" "FICS crazyhouse: http://www.freechess.org/Help/HelpFiles/crazyhouse.html" msgstr "" #: lib/pychess/Variants/euroshogi.py:9 msgid "EuroShogi: http://en.wikipedia.org/wiki/EuroShogi" msgstr "" #: lib/pychess/Variants/euroshogi.py:10 msgid "EuroShogi" msgstr "" #: lib/pychess/Variants/fischerandom.py:18 msgid "" "http://en.wikipedia.org/wiki/Chess960\n" "FICS wild/fr: http://www.freechess.org/Help/HelpFiles/wild.html" msgstr "" #: lib/pychess/Variants/fischerandom.py:20 msgid "Fischer Random" msgstr "" #: lib/pychess/Variants/kingofthehill.py:8 msgid "" "Bringing your king legally to the center (e4, d4, e5, d5) instantly wins the game!\n" "Normal rules apply in other cases and checkmate also ends the game." msgstr "" #: lib/pychess/Variants/kingofthehill.py:10 msgid "King of the hill" msgstr "" #: lib/pychess/Variants/knightodds.py:8 msgid "One player starts with one less knight piece" msgstr "" #: lib/pychess/Variants/knightodds.py:9 msgid "Knight odds" msgstr "" #: lib/pychess/Variants/losers.py:8 msgid "FICS losers: http://www.freechess.org/Help/HelpFiles/losers_chess.html" msgstr "" #: lib/pychess/Variants/normal.py:4 msgid "" "Classic chess rules\n" "http://en.wikipedia.org/wiki/Chess" msgstr "" #: lib/pychess/Variants/normal.py:6 lib/pychess/widgets/newGameDialog.py:157 msgid "Normal" msgstr "" #: lib/pychess/Variants/pawnodds.py:8 msgid "One player starts with one less pawn piece" msgstr "" #: lib/pychess/Variants/pawnodds.py:9 msgid "Pawn odds" msgstr "" #: lib/pychess/Variants/pawnspassed.py:11 msgid "" "FICS wild/8a: http://www.freechess.org/Help/HelpFiles/wild.html\n" "White pawns start on 5th rank and black pawns on the 4th rank" msgstr "" #: lib/pychess/Variants/pawnspassed.py:13 msgid "Pawns Passed" msgstr "" #: lib/pychess/Variants/pawnspushed.py:10 msgid "" "FICS wild/8: http://www.freechess.org/Help/HelpFiles/wild.html\n" "Pawns start on 4th and 5th ranks rather than 2nd and 7th" msgstr "" #: lib/pychess/Variants/pawnspushed.py:12 msgid "Pawns Pushed" msgstr "" #: lib/pychess/Variants/queenodds.py:8 msgid "One player starts with one less queen piece" msgstr "" #: lib/pychess/Variants/queenodds.py:9 msgid "Queen odds" msgstr "" #: lib/pychess/Variants/randomchess.py:11 msgid "" "FICS wild/3: http://www.freechess.org/Help/HelpFiles/wild.html\n" "* Randomly chosen pieces (two queens or three rooks possible)\n" "* Exactly one king of each color\n" "* Pieces placed randomly behind the pawns\n" "* No castling\n" "* Black's arrangement mirrors white's" msgstr "" #: lib/pychess/Variants/randomchess.py:17 #: lib/pychess/widgets/TaskerManager.py:155 msgid "Random" msgstr "" #: lib/pychess/Variants/rookodds.py:8 msgid "One player starts with one less rook piece" msgstr "" #: lib/pychess/Variants/rookodds.py:9 msgid "Rook odds" msgstr "" #: lib/pychess/Variants/shuffle.py:11 msgid "" "xboard nocastle: http://home.hccnet.nl/h.g.muller/engine-intf.html#8\n" "FICS wild/2: http://www.freechess.org/Help/HelpFiles/wild.html\n" "* Random arrangement of the pieces behind the pawns\n" "* No castling\n" "* Black's arrangement mirrors white's" msgstr "" #: lib/pychess/Variants/suicide.py:11 msgid "" "FICS suicide: http://www.freechess.org/Help/HelpFiles/suicide_chess.html" msgstr "" #: lib/pychess/Variants/theban.py:10 msgid "" "Variant developed by Kai Laskos: " "http://talkchess.com/forum/viewtopic.php?t=40990" msgstr "" #: lib/pychess/Variants/theban.py:11 msgid "Theban" msgstr "" #: lib/pychess/Variants/threecheck.py:10 msgid "Win by giving check 3 times" msgstr "" #: lib/pychess/Variants/threecheck.py:11 msgid "Three-check" msgstr "" #: lib/pychess/Variants/upsidedown.py:10 msgid "" "FICS wild/5: http://www.freechess.org/Help/HelpFiles/wild.html\n" "http://en.wikipedia.org/wiki/Chess_variant#Chess_with_different_starting_positions\n" "Pawns start on their 7th rank rather than their 2nd rank!" msgstr "" #: lib/pychess/Variants/upsidedown.py:13 msgid "Upside Down" msgstr "" #: lib/pychess/Variants/wildcastle.py:10 msgid "" "xboard wildcastle http://home.hccnet.nl/h.g.muller/engine-intf.html#8\n" "FICS wild/0: http://www.freechess.org/Help/HelpFiles/wild.html\n" "* White has the typical set-up at the start.\n" "* Black's pieces are the same, except that the King and Queen are reversed,\n" "* so they are not on the same files as White's King and Queen.\n" "* Castling is done similarly to normal chess:\n" "* o-o-o indicates long castling and o-o short castling." msgstr "" #: lib/pychess/Variants/wildcastle.py:17 msgid "Wildcastle" msgstr "" #: lib/pychess/Variants/wildcastleshuffle.py:11 msgid "" "xboard wildcastle http://home.hccnet.nl/h.g.muller/engine-intf.html#8\n" "FICS wild/1: http://www.freechess.org/Help/HelpFiles/wild.html\n" "* In this variant both sides have the same set of pieces as in normal chess.\n" "* The white king starts on d1 or e1 and the black king starts on d8 or e8,\n" "* and the rooks are in their usual positions.\n" "* Bishops are always on opposite colors.\n" "* Subject to these constraints the position of the pieces on their first ranks is random.\n" "* Castling is done similarly to normal chess:\n" "* o-o-o indicates long castling and o-o short castling." msgstr "" #: lib/pychess/Variants/wildcastleshuffle.py:20 msgid "Wildcastle shuffle" msgstr "" #: lib/pychess/widgets/analyzegameDialog.py:85 msgid "Game analyzing in progress..." msgstr "" #: lib/pychess/widgets/analyzegameDialog.py:86 msgid "Do you want to abort it?" msgstr "" #: lib/pychess/widgets/analyzegameDialog.py:95 #: lib/pychess/widgets/gamewidget.py:202 lib/pychess/widgets/gamewidget.py:320 msgid "Abort" msgstr "" #: lib/pychess/widgets/ChatView.py:125 msgid "Observers" msgstr "" #: lib/pychess/widgets/ChatWindow.py:222 msgid "You have opened no conversations yet" msgstr "" #: lib/pychess/widgets/ChatWindow.py:254 msgid "Only registered users may talk to this channel" msgstr "" #: lib/pychess/widgets/ChatWindow.py:312 msgid "No conversation's selected" msgstr "" #: lib/pychess/widgets/ChatWindow.py:350 msgid "Loading player data" msgstr "" #: lib/pychess/widgets/ChatWindow.py:400 msgid "Receiving list of players" msgstr "" #: lib/pychess/widgets/ChatWindow.py:518 msgid "Friends" msgstr "" #: lib/pychess/widgets/ChatWindow.py:529 msgid "Admin" msgstr "" #: lib/pychess/widgets/ChatWindow.py:540 msgid "More channels" msgstr "" #: lib/pychess/widgets/ChatWindow.py:548 msgid "More players" msgstr "" #: lib/pychess/widgets/ChatWindow.py:558 msgid "Computers" msgstr "" #: lib/pychess/widgets/ChatWindow.py:568 msgid "BlindFold" msgstr "" #: lib/pychess/widgets/ChatWindow.py:578 msgid "Guests" msgstr "" #: lib/pychess/widgets/ChatWindow.py:805 msgid "Conversations" msgstr "" #: lib/pychess/widgets/ChatWindow.py:807 msgid "Conversation info" msgstr "" #: lib/pychess/widgets/enginesDialog.py:152 msgid "Select engine" msgstr "" #: lib/pychess/widgets/enginesDialog.py:156 msgid "Executable files" msgstr "" #: lib/pychess/widgets/enginesDialog.py:176 #: lib/pychess/widgets/enginesDialog.py:210 #: lib/pychess/widgets/enginesDialog.py:235 #, python-format msgid "Unable to add %s" msgstr "" #: lib/pychess/widgets/enginesDialog.py:177 msgid "wine not installed" msgstr "" #: lib/pychess/widgets/enginesDialog.py:211 #: lib/pychess/widgets/enginesDialog.py:236 msgid "There is something wrong with this executable" msgstr "" #: lib/pychess/widgets/enginesDialog.py:266 msgid "Select working directory" msgstr "" #: lib/pychess/widgets/gamenanny.py:115 #, python-format msgid " invalid engine move: %s" msgstr "" #: lib/pychess/widgets/gamenanny.py:134 msgid "Offer Rematch" msgstr "" #: lib/pychess/widgets/gamenanny.py:136 lib/pychess/widgets/gamenanny.py:147 #, python-format msgid "Observe %s" msgstr "" #: lib/pychess/widgets/gamenanny.py:168 msgid "Play Rematch" msgstr "" #: lib/pychess/widgets/gamenanny.py:171 msgid "Undo one move" msgstr "" #: lib/pychess/widgets/gamenanny.py:173 msgid "Undo two moves" msgstr "" #: lib/pychess/widgets/gamenanny.py:203 msgid "The game is paused" msgstr "" #: lib/pychess/widgets/gamenanny.py:221 lib/pychess/widgets/gamenanny.py:222 msgid "Loaded game" msgstr "" #: lib/pychess/widgets/gamenanny.py:228 msgid "Saved game" msgstr "" #: lib/pychess/widgets/gamenanny.py:232 msgid "Analyzer started" msgstr "" #: lib/pychess/widgets/gamenanny.py:281 msgid "You sent an abort offer" msgstr "" #: lib/pychess/widgets/gamenanny.py:283 msgid "You sent an adjournment offer" msgstr "" #: lib/pychess/widgets/gamenanny.py:285 msgid "You sent a draw offer" msgstr "" #: lib/pychess/widgets/gamenanny.py:287 msgid "You sent a pause offer" msgstr "" #: lib/pychess/widgets/gamenanny.py:289 msgid "You sent a resume offer" msgstr "" #: lib/pychess/widgets/gamenanny.py:291 msgid "You sent an undo offer" msgstr "" #: lib/pychess/widgets/gamenanny.py:293 msgid "You asked your opponent to move" msgstr "" #: lib/pychess/widgets/gamenanny.py:305 #, python-format msgid "Engine, %s, has died" msgstr "" #: lib/pychess/widgets/gamenanny.py:306 msgid "" "PyChess has lost connection to the engine, probably because it has died.\n" "\n" "You can try to start a new game with the engine, or try to play against another one." msgstr "" #: lib/pychess/widgets/gamewidget.py:204 msgid "" "This game can be automatically aborted without rating loss because there has" " not yet been two moves made" msgstr "" #: lib/pychess/widgets/gamewidget.py:206 msgid "Offer Abort" msgstr "" #: lib/pychess/widgets/gamewidget.py:208 msgid "" "Your opponent must agree to abort the game because there has been two or " "more moves made" msgstr "" #: lib/pychess/widgets/gamewidget.py:226 msgid "This game can not be adjourned because one or both players are guests" msgstr "" #: lib/pychess/widgets/gamewidget.py:243 msgid "Claim Draw" msgstr "" #: lib/pychess/widgets/gamewidget.py:325 msgid "Pause" msgstr "" #: lib/pychess/widgets/gamewidget.py:326 msgid "Resume" msgstr "" #: lib/pychess/widgets/gamewidget.py:328 msgid "Offer Pause" msgstr "" #: lib/pychess/widgets/gamewidget.py:329 msgid "Offer Resume" msgstr "" #: lib/pychess/widgets/gamewidget.py:333 msgid "Undo" msgstr "" #: lib/pychess/widgets/gamewidget.py:335 msgid "Offer Undo" msgstr "" #: lib/pychess/widgets/gamewidget.py:550 msgid " has lagged for 30 seconds" msgstr "" #: lib/pychess/widgets/gamewidget.py:566 msgid " is lagging heavily but hasn't disconnected" msgstr "" #: lib/pychess/widgets/gamewidget.py:567 msgid "Continue to wait for opponent, or try to adjourn the game?" msgstr "" #: lib/pychess/widgets/gamewidget.py:575 msgid "Wait" msgstr "" #: lib/pychess/widgets/gamewidget.py:576 msgid "Adjourn" msgstr "" #: lib/pychess/widgets/gamewidget.py:648 msgid "Jump to initial position" msgstr "" #: lib/pychess/widgets/gamewidget.py:653 msgid "Step back one move" msgstr "" #: lib/pychess/widgets/gamewidget.py:658 msgid "Go back to the main line" msgstr "" #: lib/pychess/widgets/gamewidget.py:664 msgid "Step forward one move" msgstr "" #: lib/pychess/widgets/gamewidget.py:669 msgid "Jump to latest position" msgstr "" #: lib/pychess/widgets/gamewidget.py:903 msgid "PyChess was unable to load your panel settings" msgstr "" #: lib/pychess/widgets/gamewidget.py:904 msgid "" "Your panel settings have been reset. If this problem repeats, you should " "report it to the developers" msgstr "" #: lib/pychess/widgets/ionest.py:67 lib/pychess/widgets/newGameDialog.py:389 #: lib/pychess/widgets/TaskerManager.py:210 msgid "You" msgstr "" #: lib/pychess/widgets/ionest.py:70 lib/pychess/widgets/newGameDialog.py:390 #: lib/pychess/widgets/preferencesDialog.py:61 #: lib/pychess/widgets/TaskerManager.py:213 msgid "Guest" msgstr "" #: lib/pychess/widgets/ionest.py:93 msgid "Error loading game" msgstr "" #: lib/pychess/widgets/ionest.py:127 lib/pychess/widgets/newGameDialog.py:480 msgid "Open Game" msgstr "게임 열기" #: lib/pychess/widgets/ionest.py:137 msgid "All Files" msgstr "" #: lib/pychess/widgets/ionest.py:140 msgid "Detect type automatically" msgstr "" #: lib/pychess/widgets/ionest.py:146 msgid "All Chess Files" msgstr "" #: lib/pychess/widgets/ionest.py:228 msgid "Save Game" msgstr "" #: lib/pychess/widgets/ionest.py:228 msgid "Export position" msgstr "" #: lib/pychess/widgets/ionest.py:232 lib/pychess/widgets/ionest.py:360 msgid "vs." msgstr "" #: lib/pychess/widgets/ionest.py:249 #, python-format msgid "Unknown file type '%s'" msgstr "" #: lib/pychess/widgets/ionest.py:250 #, python-format msgid "" "Was unable to save '%(uri)s' as PyChess doesn't know the format " "'%(ending)s'." msgstr "" #: lib/pychess/widgets/ionest.py:266 #, python-format msgid "Unable to save file '%s'" msgstr "" #: lib/pychess/widgets/ionest.py:268 msgid "" "You don't have the necessary rights to save the file.\n" "Please ensure that you have given the right path and try again." msgstr "" #: lib/pychess/widgets/ionest.py:276 msgid "_Replace" msgstr "" #: lib/pychess/widgets/ionest.py:280 msgid "File exists" msgstr "" #: lib/pychess/widgets/ionest.py:282 #, python-format msgid "" "A file named '%s' already exists. Would you like to replace " "it?" msgstr "" #: lib/pychess/widgets/ionest.py:283 #, python-format msgid "" "The file already exists in '%s'. If you replace it, its content will be " "overwritten." msgstr "" #: lib/pychess/widgets/ionest.py:299 msgid "Could not save the file" msgstr "" #: lib/pychess/widgets/ionest.py:300 msgid "PyChess was not able to save the game" msgstr "" #: lib/pychess/widgets/ionest.py:301 #, python-format msgid "The error was: %s" msgstr "" #: lib/pychess/widgets/ionest.py:325 #, python-format msgid "There is %d game with unsaved moves." msgid_plural "There are %d games with unsaved moves." msgstr[0] "" #: lib/pychess/widgets/ionest.py:328 msgid "Save moves before closing?" msgstr "" #: lib/pychess/widgets/ionest.py:339 msgid "Unable to save to configured file. Save the games before closing?" msgstr "" #: lib/pychess/widgets/ionest.py:366 #, python-format msgid "_Save %d document" msgid_plural "_Save %d documents" msgstr[0] "" #: lib/pychess/widgets/ionest.py:412 msgid "Save the current game before you close it?" msgstr "" #: lib/pychess/widgets/ionest.py:420 msgid "" "Unable to save to configured file. Save the current game before you close " "it?" msgstr "" #: lib/pychess/widgets/ionest.py:434 msgid "" "It is not possible later to continue the game,\n" "if you don't save it." msgstr "" #: lib/pychess/widgets/LogDialog.py:26 msgid "PyChess Information Window" msgstr "" #: lib/pychess/widgets/LogDialog.py:184 lib/pychess/widgets/LogDialog.py:188 msgid "of" msgstr "" #: lib/pychess/widgets/newGameDialog.py:84 #: lib/pychess/widgets/newGameDialog.py:85 msgid "Human Being" msgstr "" #: lib/pychess/widgets/newGameDialog.py:155 msgid "Rapid" msgstr "" #: lib/pychess/widgets/newGameDialog.py:224 msgid "Minutes:" msgstr "분:" #: lib/pychess/widgets/newGameDialog.py:228 msgid "Gain:" msgstr "획득:" #: lib/pychess/widgets/newGameDialog.py:241 #, python-format msgid "%(name)s %(minutes)d min + %(gain)d sec/move" msgstr "" #: lib/pychess/widgets/newGameDialog.py:244 #, python-format msgid "%(name)s %(minutes)d min %(gain)d sec/move" msgstr "" #: lib/pychess/widgets/newGameDialog.py:247 #, python-format msgid "%(name)s %(minutes)d min" msgstr "" #: lib/pychess/widgets/newGameDialog.py:265 msgid "Odds" msgstr "" #: lib/pychess/widgets/newGameDialog.py:269 msgid "Asian variants" msgstr "" #: lib/pychess/widgets/newGameDialog.py:301 msgid " chess" msgstr "" #: lib/pychess/widgets/newGameDialog.py:682 msgid "Type or paste PGN game or FEN positions here" msgstr "" #: lib/pychess/widgets/newGameDialog.py:725 msgid "Enter Game" msgstr "" #: lib/pychess/widgets/preferencesDialog.py:123 msgid "Select book file" msgstr "" #: lib/pychess/widgets/preferencesDialog.py:128 msgid "Opening books" msgstr "" #: lib/pychess/widgets/preferencesDialog.py:156 msgid "Select Gaviota TB path" msgstr "" #: lib/pychess/widgets/preferencesDialog.py:331 msgid "Open Sound File" msgstr "" #: lib/pychess/widgets/preferencesDialog.py:341 msgid "Sound files" msgstr "" #: lib/pychess/widgets/preferencesDialog.py:485 msgid "Undescribed panel" msgstr "" #: lib/pychess/widgets/preferencesDialog.py:678 msgid "Select auto save path" msgstr "" #: lib/pychess/widgets/tipOfTheDay.py:51 msgid "" "You can start a new game by Game > New Game, in New Game " "window do you can choose Players, Time Control and Chess " "Variants." msgstr "" #: lib/pychess/widgets/tipOfTheDay.py:52 msgid "" "You can choose from 20 different difficulties to play against the computer." msgstr "" #: lib/pychess/widgets/tipOfTheDay.py:53 msgid "" "Chess Variants are like the pieces of the last line will be placed on the " "board." msgstr "" #: lib/pychess/widgets/tipOfTheDay.py:54 msgid "" "To save a game Game > Save Game As, give the filename and " "choose where you want to be saved. At the bottom choose extension type of " "the file, and Save." msgstr "" #: lib/pychess/widgets/tipOfTheDay.py:55 msgid "" "Do you know that you can call flag when the clock is with you, " "Actions > Call Flag." msgstr "" #: lib/pychess/widgets/tipOfTheDay.py:56 msgid "Pressing Ctrl+Z to offer opponent the possible rollback moves." msgstr "" #: lib/pychess/widgets/tipOfTheDay.py:57 msgid "" "To play on Fullscreen mode, just type F11. Coming back, F11 " "again." msgstr "" #: lib/pychess/widgets/tipOfTheDay.py:58 msgid "Hint mode analyzing your game, enable this type Ctrl+H." msgstr "" #: lib/pychess/widgets/tipOfTheDay.py:59 msgid "" "Spy mode analyzing the oponnent game, enable this type Ctrl+Y." msgstr "" #: lib/pychess/widgets/tipOfTheDay.py:60 msgid "" "You can play chess listening to the sounds of the game, for that, " "Settings > Preferences > Sound tab, enable Use " "sounds in PyChess and choose your preferred sounds." msgstr "" #: lib/pychess/widgets/tipOfTheDay.py:61 msgid "" "Do you know that you can help translate Pychess in your language, " "Help > Translate Pychess." msgstr "" #: lib/pychess/widgets/tipOfTheDay.py:62 msgid "" "Do you know that it is possible to finish a chess game in just 2 turns?" msgstr "" #: lib/pychess/widgets/tipOfTheDay.py:63 msgid "" "Do you know that the number of possible chess games exceeds the number of " "atoms in the Universe?" msgstr "" #: lib/pychess/ic/managers/ChatManager.py:184 msgid "Shout" msgstr "" #: lib/pychess/ic/managers/ChatManager.py:185 msgid "Chess Shout" msgstr "" #: lib/pychess/ic/managers/ChatManager.py:195 #, python-format msgid "Unofficial channel %d" msgstr "" #: lib/pychess/Utils/lutils/LBoard.py:152 #, python-format msgid "" "FEN needs 6 data fields. \n" "\n" "%s" msgstr "" #: lib/pychess/Utils/lutils/LBoard.py:154 #, python-format msgid "" "FEN needs at least 2 data fields in fenstr. \n" "\n" "%s" msgstr "" #: lib/pychess/Utils/lutils/LBoard.py:175 #, python-format msgid "" "Needs 7 slashes in piece placement field. \n" "\n" "%s" msgstr "" #: lib/pychess/Utils/lutils/LBoard.py:178 #, python-format msgid "" "Active color field must be one of w or b. \n" "\n" "%s" msgstr "" #: lib/pychess/Utils/lutils/LBoard.py:189 #, python-format msgid "" "Castling availability field is not legal. \n" "\n" "%s" msgstr "" #: lib/pychess/Utils/lutils/LBoard.py:192 #, python-format msgid "" "En passant cord is not legal. \n" "\n" "%s" msgstr "" #: lib/pychess/Utils/lutils/lmove.py:260 msgid "invalid promoted piece" msgstr "" #: lib/pychess/Utils/lutils/lmove.py:272 msgid "the move needs a piece and a cord" msgstr "" #: lib/pychess/Utils/lutils/lmove.py:306 lib/pychess/Utils/lutils/lmove.py:556 msgid "promotion move without promoted piece is incorrect" msgstr "" #: lib/pychess/Utils/lutils/lmove.py:312 #, python-format msgid "the captured cord (%s) is incorrect" msgstr "" #: lib/pychess/Utils/lutils/lmove.py:323 #, python-format msgid "the end cord (%s) is incorrect" msgstr "" #: lib/pychess/Utils/lutils/strateval.py:24 sidepanel/commentPanel.py:191 #: sidepanel/commentPanel.py:208 msgid "and" msgstr "" #: lib/pychess/Utils/lutils/strateval.py:43 msgid "draws" msgstr "" #: lib/pychess/Utils/lutils/strateval.py:45 msgid "mates" msgstr "" #: lib/pychess/Utils/lutils/strateval.py:49 msgid "puts opponent in check" msgstr "" #: lib/pychess/Utils/lutils/strateval.py:73 msgid "improves king safety" msgstr "" #: lib/pychess/Utils/lutils/strateval.py:75 msgid "slightly improves king safety" msgstr "" #: lib/pychess/Utils/lutils/strateval.py:108 msgid "moves a rook to an open file" msgstr "" #: lib/pychess/Utils/lutils/strateval.py:109 msgid "moves an rook to a half-open file" msgstr "" #: lib/pychess/Utils/lutils/strateval.py:119 #: lib/pychess/Utils/lutils/strateval.py:121 #: lib/pychess/Utils/lutils/strateval.py:124 #: lib/pychess/Utils/lutils/strateval.py:126 #, python-format msgid "moves bishop into fianchetto: %s" msgstr "" #: lib/pychess/Utils/lutils/strateval.py:132 #, python-format msgid "promotes a Pawn to a %s" msgstr "" #: lib/pychess/Utils/lutils/strateval.py:135 msgid "castles" msgstr "" #: lib/pychess/Utils/lutils/strateval.py:158 msgid "takes back material" msgstr "" #: lib/pychess/Utils/lutils/strateval.py:162 #: lib/pychess/Utils/lutils/strateval.py:170 msgid "sacrifies material" msgstr "" #: lib/pychess/Utils/lutils/strateval.py:164 msgid "exchanges material" msgstr "" #: lib/pychess/Utils/lutils/strateval.py:166 msgid "captures material" msgstr "" #: lib/pychess/Utils/lutils/strateval.py:291 #, python-format msgid "rescues a %s" msgstr "" #: lib/pychess/Utils/lutils/strateval.py:294 #, python-format msgid "threatens to win material by %s" msgstr "" #: lib/pychess/Utils/lutils/strateval.py:296 #, python-format msgid "increases the pressure on %s" msgstr "" #: lib/pychess/Utils/lutils/strateval.py:298 #, python-format msgid "defends %s" msgstr "" #: lib/pychess/Utils/lutils/strateval.py:336 #, python-format msgid "pins an enemy %(oppiece)s on the %(piece)s at %(cord)s" msgstr "" #: lib/pychess/Utils/lutils/strateval.py:369 #, python-format msgid "White has a new piece in outpost: %s" msgstr "" #: lib/pychess/Utils/lutils/strateval.py:377 #, python-format msgid "Black has a new piece in outpost: %s" msgstr "" #: lib/pychess/Utils/lutils/strateval.py:416 #, python-format msgid "%(color)s has a new passed pawn on %(cord)s" msgstr "" #: lib/pychess/Utils/lutils/strateval.py:470 msgid "half-open" msgstr "" #: lib/pychess/Utils/lutils/strateval.py:472 #, python-format msgid "in the %(x)s%(y)s file" msgstr "" #: lib/pychess/Utils/lutils/strateval.py:474 #, python-format msgid "in the %(x)s%(y)s files" msgstr "" #: lib/pychess/Utils/lutils/strateval.py:477 #, python-format msgid "%(color)s got a double pawn %(place)s" msgstr "" #: lib/pychess/Utils/lutils/strateval.py:478 #, python-format msgid "%(color)s got new double pawns %(place)s" msgstr "" #: lib/pychess/Utils/lutils/strateval.py:485 #, python-format msgid "%(color)s got an isolated pawn in the %(x)s file" msgid_plural "%(color)s got isolated pawns in the %(x)s files" msgstr[0] "" #: lib/pychess/Utils/lutils/strateval.py:492 #, python-format msgid "%s moves pawns into stonewall formation" msgstr "" #: lib/pychess/Utils/lutils/strateval.py:507 #: lib/pychess/Utils/lutils/strateval.py:514 #, python-format msgid "%s can no longer castle" msgstr "" #: lib/pychess/Utils/lutils/strateval.py:508 #: lib/pychess/Utils/lutils/strateval.py:515 #, python-format msgid "%s can no longer castle in queenside" msgstr "" #: lib/pychess/Utils/lutils/strateval.py:510 #: lib/pychess/Utils/lutils/strateval.py:517 #, python-format msgid "%s can no longer castle in kingside" msgstr "" #: lib/pychess/Utils/lutils/strateval.py:551 #, python-format msgid "%(opcolor)s has a new trapped bishop on %(cord)s" msgstr "" #: lib/pychess/Utils/lutils/strateval.py:573 #, python-format msgid "develops a pawn: %s" msgstr "" #: lib/pychess/Utils/lutils/strateval.py:574 #, python-format msgid "brings a pawn closer to the backrow: %s" msgstr "" #: lib/pychess/Utils/lutils/strateval.py:591 #, python-format msgid "brings a %(piece)s closer to enemy king: %(cord)s" msgstr "" #: lib/pychess/Utils/lutils/strateval.py:594 #, python-format msgid "develops a %(piece)s: %(cord)s" msgstr "" #: lib/pychess/Utils/lutils/strateval.py:612 #, python-format msgid "places a %(piece)s more active: %(cord)s" msgstr "" #: lib/pychess/Utils/lutils/strateval.py:638 msgid "White should do pawn storm in right" msgstr "" #: lib/pychess/Utils/lutils/strateval.py:640 msgid "Black should do pawn storm in left" msgstr "" #: lib/pychess/Utils/lutils/strateval.py:643 msgid "White should do pawn storm in left" msgstr "" #: lib/pychess/Utils/lutils/strateval.py:645 msgid "Black should do pawn storm in right" msgstr "" #: lib/pychess/Utils/lutils/strateval.py:671 msgid "Black has a rather cramped position" msgstr "" #: lib/pychess/Utils/lutils/strateval.py:673 msgid "Black has a slightly cramped position" msgstr "" #: lib/pychess/Utils/lutils/strateval.py:675 msgid "White has a rather cramped position" msgstr "" #: lib/pychess/Utils/lutils/strateval.py:677 msgid "White has a slightly cramped position" msgstr "" #: sidepanel/annotationPanel.py:26 msgid "Annotation" msgstr "" #: sidepanel/annotationPanel.py:29 msgid "Annotated game" msgstr "" #: sidepanel/annotationPanel.py:236 msgid "Copy PGN" msgstr "" #: sidepanel/annotationPanel.py:249 msgid "Add start comment" msgstr "" #: sidepanel/annotationPanel.py:254 msgid "Add comment" msgstr "" #: sidepanel/annotationPanel.py:258 sidepanel/annotationPanel.py:316 msgid "Edit comment" msgstr "" #: sidepanel/annotationPanel.py:269 msgid "Forced move" msgstr "" #: sidepanel/annotationPanel.py:274 msgid "Add move symbol" msgstr "" #: sidepanel/annotationPanel.py:280 msgid "Unclear position" msgstr "" #: sidepanel/annotationPanel.py:289 msgid "Zugzwang" msgstr "" #: sidepanel/annotationPanel.py:290 msgid "Development adv." msgstr "" #: sidepanel/annotationPanel.py:291 msgid "Initiative" msgstr "" #: sidepanel/annotationPanel.py:292 msgid "With attack" msgstr "" #: sidepanel/annotationPanel.py:293 msgid "Compensation" msgstr "" #: sidepanel/annotationPanel.py:294 msgid "Counterplay" msgstr "" #: sidepanel/annotationPanel.py:295 msgid "Time pressure" msgstr "" #: sidepanel/annotationPanel.py:300 msgid "Add evaluation symbol" msgstr "" #: sidepanel/annotationPanel.py:304 msgid "Remove symbols" msgstr "" #: sidepanel/annotationPanel.py:911 #, python-format msgid "round %s" msgstr "" #: sidepanel/bookPanel.py:21 msgid "Hints" msgstr "" #: sidepanel/bookPanel.py:25 msgid "" "The hint panel will provide computer advice during each stage of the game" msgstr "" #: sidepanel/bookPanel.py:27 msgid "Official PyChess panel." msgstr "" #: sidepanel/bookPanel.py:87 msgid "Opening Book" msgstr "" #: sidepanel/bookPanel.py:88 msgid "" "The opening book will try to inspire you during the opening phase of the " "game by showing you common moves made by chess masters" msgstr "" #: sidepanel/bookPanel.py:139 #, python-format msgid "Analysis by %s" msgstr "" #: sidepanel/bookPanel.py:140 #, python-format msgid "" "%s will try to predict which move is best and which side has the advantage" msgstr "" #: sidepanel/bookPanel.py:142 #, python-format msgid "Threat analysis by %s" msgstr "" #: sidepanel/bookPanel.py:143 #, python-format msgid "" "%s will identify what threats would exist if it were your opponent's turn to" " move" msgstr "" #: sidepanel/bookPanel.py:159 sidepanel/bookPanel.py:269 msgid "Calculating..." msgstr "" #: sidepanel/bookPanel.py:300 msgid "" "Engine scores are in units of pawns, from White's point of view. Double " "clicking on analysis lines you can insert them into Annotation panel as " "variations." msgstr "" #: sidepanel/bookPanel.py:302 msgid "" "Adding suggestions can help you find ideas, but slows down the computer's " "analysis." msgstr "" #: sidepanel/bookPanel.py:311 msgid "Endgame Table" msgstr "" #: sidepanel/bookPanel.py:315 msgid "" "The endgame table will show exact analysis when there are few pieces on the " "board." msgstr "" #: sidepanel/bookPanel.py:364 sidepanel/bookPanel.py:367 #, python-format msgid "Mate in %d" msgstr "" #: sidepanel/bookPanel.py:554 msgid "" "In this position,\n" "there is no legal move." msgstr "" #: sidepanel/chatPanel.py:21 msgid "" "The chat panel lets you communicate with your opponent during the game, " "assuming he or she is interested" msgstr "" #: sidepanel/commentPanel.py:16 msgid "Comments" msgstr "" #: sidepanel/commentPanel.py:20 msgid "The comments panel will try to analyze and explain the moves played" msgstr "" #: sidepanel/commentPanel.py:121 msgid "Initial position" msgstr "" #: sidepanel/commentPanel.py:254 #, python-format msgid "%(color)s moves a %(piece)s to %(cord)s" msgstr "" #: sidepanel/engineOutputPanel.py:15 msgid "Engines" msgstr "" #: sidepanel/engineOutputPanel.py:20 msgid "" "The engine output panel shows the thinking output of chess engines (computer" " players) during a game" msgstr "" #: sidepanel/engineOutputPanel.py:44 msgid "No chess engines (computer players) are participating in this game." msgstr "" #: sidepanel/historyPanel.py:10 msgid "Move History" msgstr "" #: sidepanel/historyPanel.py:13 msgid "" "The moves sheet keeps track of the players' moves and lets you navigate " "through the game history" msgstr "" #: sidepanel/scorePanel.py:15 msgid "Score" msgstr "" #: sidepanel/scorePanel.py:19 msgid "" "The score panel tries to evaluate the positions and shows you a graph of the" " game progress" msgstr "" pychess-0.12.2/lang/ko/LC_MESSAGES/pychess.mo0000644000175000017470000000461112653231273020710 0ustar tamasusers00000000000000(\5p'q     ) 8#Bf          $ 2 =IO? 8F Zhow~  )%<CJ%N t      * 9 E Z l ~ % ($ "  #&!'Promote pawn to what?Enter Game NotationNewsPlayersToolsBishopGain:KnightLog on as _GuestMinutes:New GameOffer _DrawOpen GamePlayer _RatingPromotionPyChess - Connect to Internet ChessPyChess - Internet Chess: FICSQueenRatingRookSave Game _AsSend seekSp_y modeTime_Accept_Actions_Call Flag_Game_Help_Hint mode_Load Game_Log Viewer_Name:_New Game_Password:_Rotate Board_Save Game_Start Game_ViewProject-Id-Version: pychess Report-Msgid-Bugs-To: POT-Creation-Date: 2016-01-27 13:28+0100 PO-Revision-Date: 2016-01-28 08:56+0000 Last-Translator: slav0nic Language-Team: Korean (http://www.transifex.com/gbtami/pychess/language/ko/) MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Language: ko Plural-Forms: nplurals=1; plural=0; 쫄을 무엇으로 승급시키겠습니까?게임 기록 보기뉴스플레이어도구주교획득:기사손님으로 로그온(_G)분:새 게임비김 제의(_D)게임 열기선수 등급 매기기(_R)승급파이체스 - 인터넷 체스에 연결파이체스 - 인터넷 체스: FICS여왕점수성다른 이름으로 게임 저장(_A)탐색 보냄스파이 상태(_y)시간허용(_A)동작(_A)차례 넘기기(_C)게임(_G)도움말(_H)힌트 상태(_H)게임 불러오기(_L)로그 보기(_L)이름(_N):새 게임(_N)암호(_P):체스판 회전(_R)게임 저장(_S)게임 시작(_S)보기(_V)pychess-0.12.2/lang/te/0000755000175000017470000000000012653231274015106 5ustar tamasusers00000000000000pychess-0.12.2/lang/te/LC_MESSAGES/0000755000175000017470000000000012653231274016673 5ustar tamasusers00000000000000pychess-0.12.2/lang/te/LC_MESSAGES/pychess.po0000644000175000017470000024626312653216203020721 0ustar tamasusers00000000000000# SOME DESCRIPTIVE TITLE. # Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER # This file is distributed under the same license as the pychess package. # # Translators: # ప్రవీణ్ ఇళ్ళ , 2013 msgid "" msgstr "" "Project-Id-Version: pychess\n" "Report-Msgid-Bugs-To: \n" "POT-Creation-Date: 2016-01-27 13:28+0100\n" "PO-Revision-Date: 2016-01-28 08:56+0000\n" "Last-Translator: slav0nic \n" "Language-Team: Telugu (http://www.transifex.com/gbtami/pychess/language/te/)\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" "Language: te\n" "Plural-Forms: nplurals=2; plural=(n != 1);\n" # "Plural-Forms: nplurals=INTEGER; plural=EXPRESSION;\n" #: glade/analyze_game.glade:22 msgid "Analyze game" msgstr "" #: glade/analyze_game.glade:87 msgid "Use analyzer:" msgstr "" #: glade/analyze_game.glade:122 glade/PyChess.glade:2054 msgid "Maximum analysis time in seconds:" msgstr "" #: glade/analyze_game.glade:163 msgid "" "If the analyzer finds a move where the evaluation difference (the difference" " between the evaluation for the move it thinks is the best move and the " "evaluation for the move made in the game) exceeds this value, it will add an" " annotation for that move (consisting of the engine's Principal Variation " "for the move) to the Annotation panel" msgstr "" #: glade/analyze_game.glade:164 msgid "Variation annotation creation threshold in centipawns:" msgstr "" #: glade/analyze_game.glade:198 msgid "Analyze from current position" msgstr "" #: glade/analyze_game.glade:214 msgid "Add threatening variation lines " msgstr "" #: glade/analyze_game.glade:229 glade/PyChess.glade:1459 msgid "Colorize analyzed moves" msgstr "" #: glade/analyze_game.glade:244 glade/PyChess.glade:1495 msgid "Show evaluation values" msgstr "" #: glade/discovererDialog.glade:18 msgid "PyChess is discovering your engines. Please wait." msgstr "" #: glade/discovererDialog.glade:77 msgid "PyChess.py:" msgstr "పైచెస్.py:" #: glade/discovererDialog.glade:89 msgid "ShredderLinuxChess:" msgstr "" #: glade/discovererDialog.glade:101 msgid "gnuchess:" msgstr "గ్నూచదరంగం:" #: glade/fics_logon.glade:7 msgid "PyChess - Connect to Internet Chess" msgstr "" #: glade/fics_logon.glade:47 msgid "Connect to the Free Online Chess Server" msgstr "" #: glade/fics_logon.glade:129 glade/taskers.glade:394 msgid "_Password:" msgstr "సంకేతపదం (_P):" #: glade/fics_logon.glade:143 msgid "_Name:" msgstr "పేరు (_N):" #: glade/fics_logon.glade:191 msgid "Log on as _Guest" msgstr "అతిథి వలె ప్రవేశించండి (_G)" #: glade/fics_logon.glade:227 msgid "Host:" msgstr "" #: glade/fics_logon.glade:259 msgid "Po_rts:" msgstr "పోర్టులు (_r):" #: glade/fics_logon.glade:271 msgid "Auto login on startup" msgstr "" #: glade/fics_logon.glade:385 msgid "S_ign up" msgstr "" #: glade/fics_lounge.glade:35 msgid "Challenge: " msgstr "" #: glade/fics_lounge.glade:97 msgid "Send Challenge" msgstr "" #: glade/fics_lounge.glade:133 msgid "Challenge:" msgstr "" #: glade/fics_lounge.glade:327 glade/fics_lounge.glade:2078 msgid "Lightning:" msgstr "" #: glade/fics_lounge.glade:351 glade/fics_lounge.glade:2102 msgid "Standard:" msgstr "" #: glade/fics_lounge.glade:375 glade/fics_lounge.glade:2126 msgid "Blitz:" msgstr "" #: glade/fics_lounge.glade:400 msgid "2 min, Fischer Random, Black" msgstr "" #: glade/fics_lounge.glade:422 msgid "10 min + 6 sec/move, White" msgstr "" #: glade/fics_lounge.glade:444 msgid "5 min" msgstr "" #: glade/fics_lounge.glade:480 msgid "Edit Seek" msgstr "" #: glade/fics_lounge.glade:584 lib/pychess/ic/ICLounge.py:2208 #: lib/pychess/ic/__init__.py:101 lib/pychess/Utils/GameModel.py:206 msgid "Untimed" msgstr "" #: glade/fics_lounge.glade:637 msgid "Minutes: " msgstr "" #: glade/fics_lounge.glade:665 msgid " Gain: " msgstr "" #: glade/fics_lounge.glade:703 msgid "Time control: " msgstr "" #: glade/fics_lounge.glade:716 lib/pychess/ic/FICSObjects.py:56 #: lib/pychess/ic/ICLounge.py:1137 lib/pychess/ic/ICLounge.py:2208 #: lib/pychess/ic/__init__.py:99 msgid "Standard" msgstr "" #: glade/fics_lounge.glade:757 glade/newInOut.glade:633 msgid "Time Control" msgstr "" #: glade/fics_lounge.glade:814 glade/fics_lounge.glade:1346 msgid "Don't care" msgstr "" #: glade/fics_lounge.glade:879 msgid "Your strength: " msgstr "" #: glade/fics_lounge.glade:921 msgid "(Blitz)" msgstr "" #: glade/fics_lounge.glade:951 msgid "Opponent's strength: " msgstr "" #: glade/fics_lounge.glade:1055 msgid "" "When this button is in the \"locked\" state, the relationship\n" "between \"Opponent's strength\" and \"Your strength\" will be\n" "preserved when \n" "a) your rating for the type of game sought has changed\n" "b) you change the variant or the time control" msgstr "" #: glade/fics_lounge.glade:1095 msgid "Center:" msgstr "" #: glade/fics_lounge.glade:1134 msgid "1200" msgstr "" #: glade/fics_lounge.glade:1188 msgid "Tolerance:" msgstr "" #: glade/fics_lounge.glade:1243 lib/pychess/ic/ICLounge.py:2452 msgid "Hide" msgstr "" #: glade/fics_lounge.glade:1289 msgid "Opponent Strength" msgstr "" #: glade/fics_lounge.glade:1386 lib/pychess/Database/gamelist.py:40 #: lib/pychess/ic/ICLounge.py:1357 lib/pychess/ic/ICLounge.py:1557 #: lib/pychess/ic/ICLounge.py:2108 lib/pychess/Utils/repr.py:10 #: lib/pychess/widgets/ChessClock.py:40 #: lib/pychess/widgets/TaskerManager.py:153 msgid "White" msgstr "తెలుపు" #: glade/fics_lounge.glade:1414 lib/pychess/Database/gamelist.py:40 #: lib/pychess/ic/ICLounge.py:1358 lib/pychess/ic/ICLounge.py:1558 #: lib/pychess/ic/ICLounge.py:2110 lib/pychess/Utils/repr.py:10 #: lib/pychess/widgets/ChessClock.py:40 #: lib/pychess/widgets/TaskerManager.py:154 msgid "Black" msgstr "నలుపు" #: glade/fics_lounge.glade:1453 msgid "Your Color" msgstr "మీ రంగు" #: glade/fics_lounge.glade:1512 msgid "Play normal chess rules" msgstr "" #: glade/fics_lounge.glade:1552 msgid "Play" msgstr "" #: glade/fics_lounge.glade:1618 glade/newInOut.glade:833 msgid "Chess Variant" msgstr "" #: glade/fics_lounge.glade:1676 msgid "Rated game" msgstr "" #: glade/fics_lounge.glade:1692 msgid "Manually accept opponent" msgstr "ప్రత్యర్థిని మానవీయంగా ఆమోదించండి" #: glade/fics_lounge.glade:1722 msgid "Options" msgstr "" #: glade/fics_lounge.glade:1750 msgid "PyChess - Internet Chess: FICS" msgstr "" #: glade/fics_lounge.glade:1823 msgid "_Clear Seeks" msgstr "" #: glade/fics_lounge.glade:1847 msgid "_Accept" msgstr "ఆమోదించు (_A)" #: glade/fics_lounge.glade:1871 msgid "_Decline" msgstr "తిరస్కరించు (_D)" #: glade/fics_lounge.glade:2151 msgid "2 min, Fischer Random, 1800↓, Black" msgstr "" #: glade/fics_lounge.glade:2172 msgid "10 min + 6 sec/move, 1400↑, White" msgstr "" #: glade/fics_lounge.glade:2193 msgid "5 min, 1200-1800, Manual" msgstr "" #: glade/fics_lounge.glade:2247 msgid "Send all seeks" msgstr "" #: glade/fics_lounge.glade:2301 msgid "Send seek" msgstr "" #: glade/fics_lounge.glade:2337 msgid "Create Seek" msgstr "" #: glade/fics_lounge.glade:2353 msgid "_Seeks / Challenges" msgstr "" #: glade/fics_lounge.glade:2374 lib/pychess/ic/ICLounge.py:472 #: lib/pychess/ic/ICLounge.py:670 lib/pychess/ic/ICLounge.py:1357 #: lib/pychess/ic/ICLounge.py:1358 msgid "Rating" msgstr "రేటింగు" #: glade/fics_lounge.glade:2399 msgid "Time" msgstr "సమయం" #: glade/fics_lounge.glade:2419 msgid "Seek _Graph" msgstr "" #: glade/fics_lounge.glade:2444 msgid "0 Players Ready" msgstr "" #: glade/fics_lounge.glade:2496 msgid "Challenge" msgstr "" #: glade/fics_lounge.glade:2549 glade/fics_lounge.glade:2735 msgid "Observe" msgstr "" #: glade/fics_lounge.glade:2602 msgid "Start Private Chat" msgstr "" #: glade/fics_lounge.glade:2659 msgid "_Player List" msgstr "" #: glade/fics_lounge.glade:2792 msgid "_Game List" msgstr "ఆట జాబితా (_G)" #: glade/fics_lounge.glade:2847 msgid "_My games" msgstr "" #: glade/fics_lounge.glade:2904 glade/PyChess.glade:841 msgid "Offer _Resume" msgstr "" #: glade/fics_lounge.glade:2962 glade/PyChess.glade:880 msgid "R_esign" msgstr "" #: glade/fics_lounge.glade:3006 glade/PyChess.glade:820 msgid "Offer _Draw" msgstr "" #: glade/fics_lounge.glade:3050 msgid "Offer A_bort" msgstr "" #: glade/fics_lounge.glade:3107 msgid "Pre_view" msgstr "మునుజూపు (_v)" #: glade/fics_lounge.glade:3151 msgid "Examine" msgstr "" #: glade/fics_lounge.glade:3208 msgid "_Archived" msgstr "" #: glade/fics_lounge.glade:3313 msgid "News" msgstr "వార్తలు" #: glade/fics_lounge.glade:3345 msgid "Show Console" msgstr "" #: glade/fics_lounge.glade:3359 msgid "Show _Chat" msgstr "సంభాషణను చూపించు (_C)" #: glade/fics_lounge.glade:3373 msgid "_Log Off" msgstr "" #: glade/fics_lounge.glade:3393 msgid "Tools" msgstr "" #: glade/fics_lounge.glade:3428 msgid "Asymmetric Random " msgstr "" #: glade/findbar.glade:6 msgid "window1" msgstr "" #: glade/findbar.glade:21 msgid "0 of 0" msgstr "" #: glade/findbar.glade:66 msgid "Search:" msgstr "" #: glade/findbar.glade:134 msgid "_Previous" msgstr "" #: glade/findbar.glade:192 msgid "_Next" msgstr "" #: glade/newInOut.glade:45 lib/pychess/widgets/newGameDialog.py:445 msgid "New Game" msgstr "కొత్త ఆట" #: glade/newInOut.glade:108 msgid "_Start Game" msgstr "ఆటను ప్రారంభించు (_S)" #: glade/newInOut.glade:130 msgid "Copy FEN" msgstr "" #: glade/newInOut.glade:143 msgid "Clear" msgstr "" #: glade/newInOut.glade:156 msgid "Paste FEN" msgstr "" #: glade/newInOut.glade:257 msgid "_Black player:" msgstr "" #: glade/newInOut.glade:274 msgid "_White player:" msgstr "" #: glade/newInOut.glade:385 msgid "Players" msgstr "" #: glade/newInOut.glade:436 msgid "_Untimed" msgstr "" #: glade/newInOut.glade:475 msgid "Blitz: 5 min" msgstr "" #: glade/newInOut.glade:526 msgid "Rapid: 15 min + 10 sec/move" msgstr "" #: glade/newInOut.glade:575 msgid "Normal: 40 min + 15 sec/move" msgstr "" #: glade/newInOut.glade:684 msgid "_Play Normal chess" msgstr "" #: glade/newInOut.glade:724 msgid "Play Fischer Random chess" msgstr "" #: glade/newInOut.glade:774 msgid "Play Losers chess" msgstr "" #: glade/newInOut.glade:919 msgid "Open Game" msgstr "ఆటను తెరువు" #: glade/newInOut.glade:1162 msgid "Initial Position" msgstr "" #: glade/newInOut.glade:1219 msgid "Enter Game Notation" msgstr "" #: glade/newInOut.glade:1314 msgid "Halfmove clock" msgstr "" #: glade/newInOut.glade:1327 msgid "En passant line" msgstr "" #: glade/newInOut.glade:1339 msgid "Side to move" msgstr "" #: glade/newInOut.glade:1351 msgid "Move number" msgstr "" #: glade/newInOut.glade:1361 msgid "Black O-O" msgstr "" #: glade/newInOut.glade:1375 msgid "Black O-O-O" msgstr "" #: glade/newInOut.glade:1389 msgid "White O-O-O" msgstr "" #: glade/newInOut.glade:1403 msgid "White O-O" msgstr "" #: glade/promotion.glade:7 msgid "Promotion" msgstr "" #: glade/promotion.glade:49 lib/pychess/Utils/repr.py:12 msgid "Queen" msgstr "" #: glade/promotion.glade:95 lib/pychess/Utils/repr.py:12 msgid "Rook" msgstr "" #: glade/promotion.glade:141 lib/pychess/Utils/repr.py:12 msgid "Bishop" msgstr "" #: glade/promotion.glade:187 lib/pychess/Utils/repr.py:12 msgid "Knight" msgstr "" #: glade/promotion.glade:233 lib/pychess/Utils/repr.py:12 msgid "King" msgstr "" #: glade/promotion.glade:265 msgid "Promote pawn to what?" msgstr "" #: glade/PyChess.glade:9 msgid "Chess client" msgstr "" #: glade/PyChess.glade:44 msgid "Game information" msgstr "ఆట సమాచారము" #: glade/PyChess.glade:164 msgid "Event:" msgstr "" #: glade/PyChess.glade:178 msgid "Site:" msgstr "" #: glade/PyChess.glade:204 msgid "Round:" msgstr "" #: glade/PyChess.glade:237 msgid "White:" msgstr "తెలుపు:" #: glade/PyChess.glade:249 msgid "Black:" msgstr "" #: glade/PyChess.glade:302 msgid "Game data" msgstr "ఆట దత్తాంశము" #: glade/PyChess.glade:357 msgid "Date of game" msgstr "" #: glade/PyChess.glade:495 msgid "_Game" msgstr "ఆట (_G)" #: glade/PyChess.glade:502 msgid "_New Game" msgstr "కొత్త ఆట (_N)" #: glade/PyChess.glade:515 msgid "Play _Internet Chess" msgstr "" #: glade/PyChess.glade:534 msgid "_Load Game" msgstr "ఆటను నింపు (_L)" #: glade/PyChess.glade:550 msgid "Load _Recent Game" msgstr "ఇటీవలి ఆటను నింపు (_L)" #: glade/PyChess.glade:558 msgid "Open _Database" msgstr "" #: glade/PyChess.glade:569 lib/pychess/widgets/newGameDialog.py:615 msgid "Setup Position" msgstr "" #: glade/PyChess.glade:579 msgid "Enter Game _Notation" msgstr "" #: glade/PyChess.glade:592 msgid "_Save Game" msgstr "ఆటను భద్రపరుచు (_S)" #: glade/PyChess.glade:606 msgid "Save Game _As" msgstr "ఆటను ఇలా భద్రపరుచు (_A)" #: glade/PyChess.glade:624 msgid "Share Game" msgstr "" #: glade/PyChess.glade:630 msgid "_Export Position" msgstr "" #: glade/PyChess.glade:644 msgid "_Analyze Game" msgstr "" #: glade/PyChess.glade:678 msgid "Player _Rating" msgstr "" #: glade/PyChess.glade:723 msgid "_Edit" msgstr "సవరణ (_E)" #: glade/PyChess.glade:734 msgid "_Copy PGN" msgstr "" #: glade/PyChess.glade:746 msgid "_Copy FEN" msgstr "" #: glade/PyChess.glade:763 msgid "_Engines" msgstr "యంత్రాలు (_E)" #: glade/PyChess.glade:789 msgid "_Actions" msgstr "" #: glade/PyChess.glade:800 msgid "Offer _Abort" msgstr "" #: glade/PyChess.glade:810 msgid "Offer Ad_journment" msgstr "" #: glade/PyChess.glade:831 msgid "Offer _Pause" msgstr "" #: glade/PyChess.glade:847 msgid "Offer _Undo" msgstr "" #: glade/PyChess.glade:870 msgid "_Call Flag" msgstr "" #: glade/PyChess.glade:890 msgid "Ask to _Move" msgstr "" #: glade/PyChess.glade:905 msgid "Auto Call _Flag" msgstr "" #: glade/PyChess.glade:918 msgid "_View" msgstr "వీక్షణం (_V)" #: glade/PyChess.glade:925 msgid "_Rotate Board" msgstr "బోర్డును తిప్పు (_R)" #: glade/PyChess.glade:939 msgid "_Fullscreen" msgstr "పూర్తితెర (_F)" #: glade/PyChess.glade:952 msgid "Leave _Fullscreen" msgstr "పూర్తితెరను విడువు (_F)" #: glade/PyChess.glade:969 msgid "_Show Sidepanels" msgstr "పక్కఫలకాలను చూపించు (_S)" #: glade/PyChess.glade:980 msgid "_Log Viewer" msgstr "చిట్టా వీక్షకం (_L)" #: glade/PyChess.glade:997 msgid "_Hint mode" msgstr "సూచన రీతి (_H)" #: glade/PyChess.glade:1009 msgid "Sp_y mode" msgstr "గూఢచారి రీతి (_y) " #: glade/PyChess.glade:1024 msgid "_Help" msgstr "" #: glade/PyChess.glade:1034 msgid "About Chess" msgstr "చదరంగం గురించి" #: glade/PyChess.glade:1043 msgid "How to Play" msgstr "ఆడటం ఎలా" #: glade/PyChess.glade:1052 msgid "Translate PyChess" msgstr "" #: glade/PyChess.glade:1058 msgid "Tip of the Day" msgstr "నేటి చిట్కా" #: glade/PyChess.glade:1153 msgid "Default" msgstr "" #: glade/PyChess.glade:1156 msgid "Knights" msgstr "" #: glade/PyChess.glade:1167 lib/pychess/widgets/preferencesDialog.py:349 msgid "Beep" msgstr "" #: glade/PyChess.glade:1170 lib/pychess/widgets/preferencesDialog.py:350 msgid "Select sound file..." msgstr "" #: glade/PyChess.glade:1173 lib/pychess/widgets/preferencesDialog.py:348 msgid "No sound" msgstr "" #: glade/PyChess.glade:1180 msgid "Preferences" msgstr "ప్రాధాన్యతలు" #: glade/PyChess.glade:1218 msgid "The displayed name of the first human player, e.g., John." msgstr "" #: glade/PyChess.glade:1230 msgid "Name of _first human player:" msgstr "" #: glade/PyChess.glade:1259 msgid "The displayed name of the guest player, e.g., Mary." msgstr "" #: glade/PyChess.glade:1271 msgid "Name of s_econd human player:" msgstr "" #: glade/PyChess.glade:1307 msgid "_Hide tabs when only one game is open" msgstr "" #: glade/PyChess.glade:1312 msgid "" "If set, this hides the tab in the top of the playing window, when it is not " "needed." msgstr "" #: glade/PyChess.glade:1326 msgid "_Use main app closer [x] to close all games" msgstr "" #: glade/PyChess.glade:1331 msgid "" "If set, clicking on main application window closer first time it closes all " "games." msgstr "" #: glade/PyChess.glade:1345 msgid "Auto _rotate board to current human player" msgstr "" #: glade/PyChess.glade:1350 msgid "" "If set, the board will turn after each move, to show the natural view for " "the current player." msgstr "" #: glade/PyChess.glade:1364 msgid "Auto _promote to queen" msgstr "" #: glade/PyChess.glade:1369 msgid "If set, pawn promotes to queen without promotion dialog selection." msgstr "" #: glade/PyChess.glade:1383 msgid "Face _to Face display mode" msgstr "" #: glade/PyChess.glade:1388 msgid "" "If set, the black pieces will be head down, suitable for playing against " "friends on mobile devices." msgstr "" #: glade/PyChess.glade:1402 msgid "Sho_w cords" msgstr "" #: glade/PyChess.glade:1407 msgid "" "If set, the playing board will display labels and ranks for each chess " "field. These are usable in chess notation." msgstr "" #: glade/PyChess.glade:1421 msgid "Show _captured pieces" msgstr "" #: glade/PyChess.glade:1426 msgid "If set, the captured figurines will be shown next to the board." msgstr "" #: glade/PyChess.glade:1440 msgid "Prefer figures in _notation" msgstr "" #: glade/PyChess.glade:1445 msgid "" "If set, PyChess will use figures to express moved pieces, rather than " "uppercase letters." msgstr "" #: glade/PyChess.glade:1464 msgid "If set, PyChess will colorize suboptimal analyzed moves with red." msgstr "" #: glade/PyChess.glade:1477 msgid "Show elapsed move times" msgstr "" #: glade/PyChess.glade:1482 msgid "If set, the elapsed time that a player used for the move is shown." msgstr "" #: glade/PyChess.glade:1500 msgid "If set, the hint analyzer engine evaluation value is shown." msgstr "" #: glade/PyChess.glade:1526 msgid "General Options" msgstr "" #: glade/PyChess.glade:1560 msgid "F_ull board animation" msgstr "" #: glade/PyChess.glade:1565 msgid "Animate pieces, board rotation and more. Use this on fast machines." msgstr "" #: glade/PyChess.glade:1579 msgid "Only animate _moves" msgstr "" #: glade/PyChess.glade:1584 msgid "Only animate piece moves." msgstr "" #: glade/PyChess.glade:1599 msgid "No _animation" msgstr "" #: glade/PyChess.glade:1604 msgid "Never use animation. Use this on slow machines." msgstr "" #: glade/PyChess.glade:1632 msgid "Animation" msgstr "" #: glade/PyChess.glade:1651 msgid "_General" msgstr "" #: glade/PyChess.glade:1692 msgid "Use opening _book" msgstr "" #: glade/PyChess.glade:1697 msgid "If set, PyChess will suggest best opening moves on hint panel." msgstr "" #: glade/PyChess.glade:1724 msgid "Polyglot book file:" msgstr "" #: glade/PyChess.glade:1768 msgid "Use _local tablebases" msgstr "" #: glade/PyChess.glade:1773 msgid "" "If set, PyChess will show game results for different moves in positions containing 6 or less pieces.\n" "You can download tablebase files from:\n" "http://www.olympuschess.com/egtb/gaviota/" msgstr "" #: glade/PyChess.glade:1803 msgid "Gaviota TB path:" msgstr "" #: glade/PyChess.glade:1843 msgid "Use _online tablebases" msgstr "" #: glade/PyChess.glade:1848 msgid "" "If set, PyChess will show game results for different moves in positions containing 6 or less pieces.\n" "It will search positions from http://www.k4it.de/" msgstr "" #: glade/PyChess.glade:1870 msgid "Opening, endgame" msgstr "" #: glade/PyChess.glade:1904 msgid "Use _analyzer" msgstr "" #: glade/PyChess.glade:1946 msgid "" "The analyzer will run in the background and analyze the game. This is " "necessary for the hint mode to work" msgstr "" #: glade/PyChess.glade:1978 msgid "Use _inverted analyzer" msgstr "" #: glade/PyChess.glade:2020 msgid "" "The inverse analyzer will analyze the game as if your opponent was to move. " "This is necessary for the spy mode to work" msgstr "" #: glade/PyChess.glade:2096 msgid "Analyzing" msgstr "" #: glade/PyChess.glade:2118 msgid "_Hints" msgstr "" #: glade/PyChess.glade:2263 msgid "Uninstall" msgstr "" #: glade/PyChess.glade:2317 msgid "Ac_tive" msgstr "" #: glade/PyChess.glade:2367 msgid "Installed Sidepanels" msgstr "" #: glade/PyChess.glade:2382 msgid "Side_panels" msgstr "" #: glade/PyChess.glade:2440 msgid "Light Squares :" msgstr "" #: glade/PyChess.glade:2479 msgid "Dark Squares :" msgstr "" #: glade/PyChess.glade:2515 msgid "Reset Default Colours" msgstr "" #: glade/PyChess.glade:2551 msgid "Board Colours" msgstr "" #: glade/PyChess.glade:2610 msgid "Chess Sets" msgstr "" #: glade/PyChess.glade:2634 msgid "Themes" msgstr "" #: glade/PyChess.glade:2659 msgid "_Use sounds in PyChess" msgstr "" #: glade/PyChess.glade:2982 msgid "A player _checks:" msgstr "" #: glade/PyChess.glade:2997 msgid "A player _moves:" msgstr "" #: glade/PyChess.glade:3010 msgid "Game is _drawn:" msgstr "" #: glade/PyChess.glade:3025 msgid "Game is _lost:" msgstr "" #: glade/PyChess.glade:3040 msgid "Game is _won:" msgstr "" #: glade/PyChess.glade:3055 msgid "A player c_aptures:" msgstr "" #: glade/PyChess.glade:3084 msgid "Game is _set-up:" msgstr "" #: glade/PyChess.glade:3136 msgid "_Observed moves:" msgstr "" #: glade/PyChess.glade:3151 msgid "Observed _ends:" msgstr "" #: glade/PyChess.glade:3265 msgid "Short on _time:" msgstr "" #: glade/PyChess.glade:3317 msgid "_Invalid move:" msgstr "" #: glade/PyChess.glade:3369 msgid "Activate alarm when _remaining sec is:" msgstr "" #: glade/PyChess.glade:3416 msgid "Play Sound When..." msgstr "" #: glade/PyChess.glade:3438 msgid "_Sounds" msgstr "" #: glade/PyChess.glade:3463 msgid "_Auto save finished games" msgstr "" #: glade/PyChess.glade:3497 msgid "Save files to:" msgstr "" #: glade/PyChess.glade:3525 msgid "Use name format:" msgstr "" #: glade/PyChess.glade:3569 msgid "Names: #n1, #n2" msgstr "" #: glade/PyChess.glade:3582 msgid "Year, month, day: #y, #m, #d" msgstr "" #: glade/PyChess.glade:3619 msgid "Save elapsed move _times" msgstr "" #: glade/PyChess.glade:3644 msgid "Save analyzing engine _evaluation values" msgstr "" #: glade/PyChess.glade:3669 msgid "Save _own games only" msgstr "" #: glade/PyChess.glade:3698 msgid "Save" msgstr "" #: glade/PyChess.glade:3728 msgid "uci" msgstr "" #: glade/PyChess.glade:3731 msgid "xboard" msgstr "" #: glade/PyChess.glade:3739 msgid "Manage engines" msgstr "యంత్రాలను నిర్వహించండి" #: glade/PyChess.glade:3837 msgid "Command:" msgstr "" #: glade/PyChess.glade:3851 msgid "Protocol:" msgstr "" #: glade/PyChess.glade:3865 msgid "Parameters:" msgstr "" #: glade/PyChess.glade:3878 msgid "Command line parameters needed by the engine." msgstr "" #: glade/PyChess.glade:3903 msgid "" "Engines use uci or xboard communication protocol to talk to the GUI.\n" "If it can use both you can set here which one you like." msgstr "" #: glade/PyChess.glade:3929 msgid "Working directory:" msgstr "" #: glade/PyChess.glade:3942 msgid "The directory where the engine will be started from." msgstr "" #: glade/saveGamesDialog.glade:7 msgid "Quit PyChess" msgstr "" #: glade/saveGamesDialog.glade:24 lib/pychess/widgets/ionest.py:424 msgid "Close _without Saving" msgstr "" #: glade/saveGamesDialog.glade:83 msgid "_Save %d documents" msgstr "" #: glade/saveGamesDialog.glade:141 msgid "" "There are %d games with unsaved moves. Save changes before " "closing?" msgstr "" #: glade/saveGamesDialog.glade:161 msgid "Select the games you want to save:" msgstr "మీరు భద్రపరచాలనుకుంటున్న ఆటలను ఎంచుకోండి:" #: glade/saveGamesDialog.glade:204 msgid "If you don't save, new changes to your games will be permanently lost." msgstr "" #: glade/taskers.glade:126 msgid "_Opponent:" msgstr "ప్రత్యర్థి (_O):" #: glade/taskers.glade:154 msgid "_Your Color:" msgstr "మీ రంగు (_Y):" #: glade/taskers.glade:219 msgid "_Start Game" msgstr "ఆటను ప్రారంభించు(_S)" #: glade/taskers.glade:338 msgid "Log on as G_uest" msgstr "" #: glade/taskers.glade:410 msgid "Ha_ndle:" msgstr "" #: glade/taskers.glade:469 msgid "_Connect to server" msgstr "" #: glade/tipoftheday.glade:7 msgid "Tip Of The day" msgstr "నేటి చిట్కా" #: glade/tipoftheday.glade:62 msgid "Show tips at startup" msgstr "చిట్కాలను ప్రారంభంలో చూపించు" #: lib/pychess/Main.py:302 msgid "http://en.wikipedia.org/wiki/Chess" msgstr "" #: lib/pychess/Main.py:305 msgid "http://en.wikipedia.org/wiki/Rules_of_chess" msgstr "" #: lib/pychess/Main.py:370 lib/pychess/widgets/gamenanny.py:80 msgid "Welcome" msgstr "" #: lib/pychess/Database/gamelist.py:40 msgid "Id" msgstr "" #: lib/pychess/Database/gamelist.py:40 msgid "W Elo" msgstr "" #: lib/pychess/Database/gamelist.py:40 msgid "B Elo" msgstr "" #: lib/pychess/Database/gamelist.py:41 msgid "Result" msgstr "" #: lib/pychess/Database/gamelist.py:41 msgid "Event" msgstr "" #: lib/pychess/Database/gamelist.py:41 msgid "Site" msgstr "" #: lib/pychess/Database/gamelist.py:41 msgid "Round" msgstr "" #: lib/pychess/Database/gamelist.py:41 msgid "Date" msgstr "" #: lib/pychess/Database/gamelist.py:41 msgid "ECO" msgstr "" #: lib/pychess/Database/gamelist.py:62 msgid "PyChess Game Database" msgstr "" #: lib/pychess/Database/PgnImport.py:188 #, python-format msgid "The game #%s can't be loaded, because of an error parsing FEN" msgstr "" #: lib/pychess/ic/FICSConnection.py:139 msgid "The connection was broken - got \"end of file\" message" msgstr "" #: lib/pychess/ic/FICSConnection.py:140 #, python-format msgid "'%s' is not a registered name" msgstr "" #: lib/pychess/ic/FICSConnection.py:141 msgid "" "The entered password was invalid.\n" "If you forgot your password, go to http://www.freechess.org/password to request a new one over email." msgstr "" #: lib/pychess/ic/FICSConnection.py:145 #, python-format msgid "Sorry '%s' is already logged in" msgstr "" #: lib/pychess/ic/FICSConnection.py:146 #, python-format msgid "'%s' is a registered name. If it is yours, type the password." msgstr "" #: lib/pychess/ic/FICSConnection.py:147 msgid "" "Due to abuse problems, guest connections have been prevented.\n" "You can still register on http://www.freechess.org" msgstr "" #: lib/pychess/ic/FICSConnection.py:166 msgid "Connecting to server" msgstr "" #: lib/pychess/ic/FICSConnection.py:181 msgid "Logging on to server" msgstr "" #: lib/pychess/ic/FICSConnection.py:239 msgid "Setting up environment" msgstr "" #: lib/pychess/ic/FICSObjects.py:35 lib/pychess/ic/FICSObjects.py:47 #, python-format msgid "%(player)s is %(status)s" msgstr "" #: lib/pychess/ic/FICSObjects.py:46 msgid "not playing" msgstr "" #: lib/pychess/ic/FICSObjects.py:54 lib/pychess/ic/ICLounge.py:1136 #: lib/pychess/ic/ICLounge.py:2209 lib/pychess/ic/__init__.py:98 #: lib/pychess/widgets/newGameDialog.py:153 msgid "Blitz" msgstr "" #: lib/pychess/ic/FICSObjects.py:58 lib/pychess/ic/ICLounge.py:1137 #: lib/pychess/ic/ICLounge.py:2209 lib/pychess/ic/__init__.py:100 msgid "Lightning" msgstr "" #: lib/pychess/ic/FICSObjects.py:60 lib/pychess/Variants/atomic.py:15 msgid "Atomic" msgstr "" #: lib/pychess/ic/FICSObjects.py:62 lib/pychess/Variants/bughouse.py:9 msgid "Bughouse" msgstr "" #: lib/pychess/ic/FICSObjects.py:64 lib/pychess/Variants/crazyhouse.py:9 msgid "Crazyhouse" msgstr "" #: lib/pychess/ic/FICSObjects.py:66 lib/pychess/Variants/losers.py:9 msgid "Losers" msgstr "" #: lib/pychess/ic/FICSObjects.py:68 lib/pychess/Variants/suicide.py:12 msgid "Suicide" msgstr "" #: lib/pychess/ic/FICSObjects.py:70 lib/pychess/ic/__init__.py:129 msgid "Wild" msgstr "" #: lib/pychess/ic/FICSObjects.py:117 msgid "Online" msgstr "" #: lib/pychess/ic/FICSObjects.py:118 lib/pychess/ic/FICSObjects.py:143 msgid "Offline" msgstr "" #: lib/pychess/ic/FICSObjects.py:133 msgid "Available" msgstr "" #: lib/pychess/ic/FICSObjects.py:135 msgid "Playing" msgstr "" #: lib/pychess/ic/FICSObjects.py:141 msgid "Idle" msgstr "" #: lib/pychess/ic/FICSObjects.py:145 msgid "Examining" msgstr "" #: lib/pychess/ic/FICSObjects.py:147 msgid "Not Available" msgstr "" #: lib/pychess/ic/FICSObjects.py:149 msgid "Running Simul Match" msgstr "" #: lib/pychess/ic/FICSObjects.py:151 msgid "In Tournament" msgstr "" #: lib/pychess/ic/FICSObjects.py:308 lib/pychess/ic/FICSObjects.py:492 #: lib/pychess/ic/ICLounge.py:2278 msgid "Unrated" msgstr "" #: lib/pychess/ic/FICSObjects.py:491 lib/pychess/ic/ICLounge.py:670 #: lib/pychess/ic/ICLounge.py:1358 lib/pychess/ic/ICLounge.py:1558 #: lib/pychess/ic/ICLounge.py:2113 msgid "Rated" msgstr "" #: lib/pychess/ic/FICSObjects.py:498 lib/pychess/ic/ICLounge.py:2098 #, python-format msgid "%d min" msgstr "" #: lib/pychess/ic/FICSObjects.py:500 #, python-format msgid " + %d sec" msgstr "" #: lib/pychess/ic/FICSObjects.py:517 #, python-format msgid "%(player)s plays %(color)s" msgstr "" #: lib/pychess/ic/FICSObjects.py:519 lib/pychess/ic/ICLounge.py:909 msgid "white" msgstr "తెలుపు" #: lib/pychess/ic/FICSObjects.py:519 lib/pychess/ic/ICLounge.py:909 msgid "black" msgstr "నలుపు" #: lib/pychess/ic/FICSObjects.py:565 msgid "This is a continuation of an adjourned match" msgstr "" #: lib/pychess/ic/FICSObjects.py:654 msgid "Opponent Rating" msgstr "ప్రత్యర్థి రేటింగు" #: lib/pychess/ic/FICSObjects.py:656 msgid "Manual Accept" msgstr "" #: lib/pychess/ic/FICSObjects.py:810 msgid "Private" msgstr "" #: lib/pychess/ic/FICSObjects.py:930 lib/pychess/ic/ICLounge.py:527 #: lib/pychess/Savers/epd.py:139 msgid "Unknown" msgstr "" #: lib/pychess/ic/ICLogon.py:159 lib/pychess/ic/ICLogon.py:165 msgid "Connection Error" msgstr "" #: lib/pychess/ic/ICLogon.py:161 msgid "Log on Error" msgstr "" #: lib/pychess/ic/ICLogon.py:163 msgid "Connection was closed" msgstr "" #: lib/pychess/ic/ICLogon.py:169 msgid "Address Error" msgstr "" #: lib/pychess/ic/ICLogon.py:172 msgid "Auto-logout" msgstr "" #: lib/pychess/ic/ICLogon.py:173 msgid "You have been logged out because you were idle more than 60 minutes" msgstr "" #: lib/pychess/ic/ICLounge.py:222 msgid "You have to set kibitz on to see bot messages here." msgstr "" #: lib/pychess/ic/ICLounge.py:241 msgid "" "You may only have 3 outstanding seeks at the same time. If you want to add a" " new seek you must clear your currently active seeks. Clear your seeks?" msgstr "" #: lib/pychess/ic/ICLounge.py:258 msgid "You can't touch this! You are examining a game." msgstr "" #: lib/pychess/ic/ICLounge.py:270 msgid " has declined your offer for a match" msgstr "" #: lib/pychess/ic/ICLounge.py:283 msgid " is censoring you" msgstr "" #: lib/pychess/ic/ICLounge.py:296 msgid " noplay listing you" msgstr "" #: lib/pychess/ic/ICLounge.py:311 msgid " uses a formula not fitting your match request:" msgstr "" #: lib/pychess/ic/ICLounge.py:325 msgid "to manual accept" msgstr "" #: lib/pychess/ic/ICLounge.py:327 msgid "to automatic accept" msgstr "" #: lib/pychess/ic/ICLounge.py:329 msgid "rating range now" msgstr "" #: lib/pychess/ic/ICLounge.py:330 msgid "Seek updated" msgstr "" #: lib/pychess/ic/ICLounge.py:342 msgid "Your seeks have been removed" msgstr "" #: lib/pychess/ic/ICLounge.py:363 msgid " has arrived" msgstr "" #: lib/pychess/ic/ICLounge.py:370 msgid " has departed" msgstr "" #: lib/pychess/ic/ICLounge.py:374 msgid " is present" msgstr "" #: lib/pychess/ic/ICLounge.py:391 sidepanel/chatPanel.py:17 msgid "Chat" msgstr "" #: lib/pychess/ic/ICLounge.py:472 sidepanel/bookPanel.py:366 msgid "Win" msgstr "" #: lib/pychess/ic/ICLounge.py:472 sidepanel/bookPanel.py:360 msgid "Draw" msgstr "" #: lib/pychess/ic/ICLounge.py:472 sidepanel/bookPanel.py:363 msgid "Loss" msgstr "" #: lib/pychess/ic/ICLounge.py:482 msgid "" "On FICS, your \"Wild\" rating encompasses all of the following variants at " "all time controls:\n" msgstr "" #: lib/pychess/ic/ICLounge.py:494 msgid "Sanctions" msgstr "" #: lib/pychess/ic/ICLounge.py:499 msgid "Email" msgstr "" #: lib/pychess/ic/ICLounge.py:504 msgid "Spent" msgstr "" #: lib/pychess/ic/ICLounge.py:506 msgid "online in total" msgstr "" #: lib/pychess/ic/ICLounge.py:512 msgid "Ping" msgstr "" #: lib/pychess/ic/ICLounge.py:517 msgid "Connecting" msgstr "" #: lib/pychess/ic/ICLounge.py:544 msgid "" "You are currently logged in as a guest.\n" "A guest can't play rated games and therefore isn't able to play as many of the types of matches offered as a registered user. To register an account, go to http://www.freechess.org/Register/index.html." msgstr "" #: lib/pychess/ic/ICLounge.py:669 lib/pychess/ic/ICLounge.py:1136 msgid "Name" msgstr "" #: lib/pychess/ic/ICLounge.py:670 lib/pychess/ic/ICLounge.py:1358 #: lib/pychess/ic/ICLounge.py:1558 msgid "Type" msgstr "" #: lib/pychess/ic/ICLounge.py:670 lib/pychess/ic/ICLounge.py:1558 msgid "Clock" msgstr "" #: lib/pychess/ic/ICLounge.py:726 lib/pychess/ic/ICLounge.py:923 #: lib/pychess/Players/Human.py:250 msgid "Accept" msgstr "" #: lib/pychess/ic/ICLounge.py:728 msgid "Assess" msgstr "" #: lib/pychess/ic/ICLounge.py:734 msgid "Archived" msgstr "" #: lib/pychess/ic/ICLounge.py:848 #, python-format msgid "Active seeks: %d" msgstr "" #: lib/pychess/ic/ICLounge.py:897 #, python-format msgid "" " would like to resume your adjourned %(time)s %(gametype)s " "game." msgstr "" #: lib/pychess/ic/ICLounge.py:902 #, python-format msgid "" " challenges you to a %(time)s %(rated)s %(gametype)s game" msgstr "" #: lib/pychess/ic/ICLounge.py:907 #, python-format msgid " where %(player)s plays %(color)s." msgstr "" #: lib/pychess/ic/ICLounge.py:924 lib/pychess/Players/Human.py:251 msgid "Decline" msgstr "" #: lib/pychess/ic/ICLounge.py:1065 msgid " min" msgstr "" #: lib/pychess/ic/ICLounge.py:1137 msgid "Status" msgstr "" #: lib/pychess/ic/ICLounge.py:1203 lib/pychess/ic/ICLounge.py:1233 #, python-format msgid "Players: %d" msgstr "" #: lib/pychess/ic/ICLounge.py:1469 #, python-format msgid "Games running: %d" msgstr "" #: lib/pychess/ic/ICLounge.py:1559 msgid "Date/Time" msgstr "" #: lib/pychess/ic/ICLounge.py:1614 #, python-format msgid "" " with whom you have an adjourned %(timecontrol)s %(gametype)s " "game is online." msgstr "" #: lib/pychess/ic/ICLounge.py:1635 msgid "Request Continuation" msgstr "" #: lib/pychess/ic/ICLounge.py:1637 msgid "Examine Adjourned Game" msgstr "" #: lib/pychess/ic/ICLounge.py:1965 msgid "" "The chain button is disabled because you are logged in as a guest. Guests " "can't establish ratings, and the chain button's state has no effect when " "there is no rating to which to tie \"Opponent Strength\" to" msgstr "" #: lib/pychess/ic/ICLounge.py:2006 msgid "Challenge: " msgstr "" #: lib/pychess/ic/ICLounge.py:2044 msgid "If set you can refuse players accepting your seek" msgstr "" #: lib/pychess/ic/ICLounge.py:2048 lib/pychess/ic/ICLounge.py:2051 msgid "This option is not applicable because you're challenging a player" msgstr "" #: lib/pychess/ic/ICLounge.py:2064 msgid "Edit Seek: " msgstr "" #: lib/pychess/ic/ICLounge.py:2095 #, python-format msgid "%(minutes)d min + %(gain)d sec/move" msgstr "" #: lib/pychess/ic/ICLounge.py:2116 msgid "Manual" msgstr "" #: lib/pychess/ic/ICLounge.py:2256 msgid "Any strength" msgstr "" #: lib/pychess/ic/ICLounge.py:2308 msgid "You can't play rated games because you are logged in as a guest" msgstr "" #: lib/pychess/ic/ICLounge.py:2312 msgid "You can't play rated games because \"Untimed\" is checked, " msgstr "" #: lib/pychess/ic/ICLounge.py:2313 msgid "and on FICS, untimed games can't be rated" msgstr "" #: lib/pychess/ic/ICLounge.py:2317 msgid "This option is not available because you're challenging a guest, " msgstr "" #: lib/pychess/ic/ICLounge.py:2318 msgid "and guests can't play rated games" msgstr "" #: lib/pychess/ic/ICLounge.py:2332 lib/pychess/Variants/shuffle.py:16 #: lib/pychess/widgets/newGameDialog.py:266 msgid "Shuffle" msgstr "" #: lib/pychess/ic/ICLounge.py:2333 lib/pychess/widgets/newGameDialog.py:267 msgid "Other (standard rules)" msgstr "" #: lib/pychess/ic/ICLounge.py:2334 lib/pychess/widgets/newGameDialog.py:268 msgid "Other (non standard rules)" msgstr "" #: lib/pychess/ic/ICLounge.py:2421 msgid "You can't select a variant because \"Untimed\" is checked, " msgstr "" #: lib/pychess/ic/ICLounge.py:2422 msgid "and on FICS, untimed games have to be normal chess rules" msgstr "" #: lib/pychess/ic/ICLounge.py:2454 msgid "Change Tolerance" msgstr "" #: lib/pychess/ic/__init__.py:102 msgid "Examined" msgstr "" #: lib/pychess/ic/__init__.py:103 msgid "Other" msgstr "" #: lib/pychess/ic/__init__.py:182 msgid "Administrator" msgstr "" #: lib/pychess/ic/__init__.py:182 msgid "Blindfold Account" msgstr "" #: lib/pychess/ic/__init__.py:182 msgid "Computer" msgstr "" #: lib/pychess/ic/__init__.py:183 msgid "Team Account" msgstr "" #: lib/pychess/ic/__init__.py:183 msgid "Unregistered" msgstr "" #: lib/pychess/ic/__init__.py:183 msgid "Chess Advisor" msgstr "" #: lib/pychess/ic/__init__.py:184 msgid "Service Representative" msgstr "" #: lib/pychess/ic/__init__.py:184 msgid "Tournament Director" msgstr "" #: lib/pychess/ic/__init__.py:184 msgid "Mamer Manager" msgstr "" #: lib/pychess/ic/__init__.py:185 msgid "Grand Master" msgstr "" #: lib/pychess/ic/__init__.py:185 msgid "International Master" msgstr "" #: lib/pychess/ic/__init__.py:185 msgid "FIDE Master" msgstr "" #: lib/pychess/ic/__init__.py:186 msgid "Woman Grand Master" msgstr "" #: lib/pychess/ic/__init__.py:186 msgid "Woman International Master" msgstr "" #: lib/pychess/ic/__init__.py:186 msgid "Woman FIDE Master" msgstr "" #: lib/pychess/ic/__init__.py:187 msgid "Dummy Account" msgstr "" #: lib/pychess/ic/__init__.py:191 msgid "*" msgstr "" #: lib/pychess/ic/__init__.py:191 lib/pychess/Utils/repr.py:14 msgid "B" msgstr "" #: lib/pychess/ic/__init__.py:191 msgid "C" msgstr "" #: lib/pychess/ic/__init__.py:192 msgid "T" msgstr "" #: lib/pychess/ic/__init__.py:192 msgid "U" msgstr "" #: lib/pychess/ic/__init__.py:192 msgid "CA" msgstr "" #: lib/pychess/ic/__init__.py:193 msgid "SR" msgstr "" #: lib/pychess/ic/__init__.py:193 msgid "TD" msgstr "" #: lib/pychess/ic/__init__.py:193 msgid "TM" msgstr "" #: lib/pychess/ic/__init__.py:194 msgid "GM" msgstr "" #: lib/pychess/ic/__init__.py:194 msgid "IM" msgstr "" #: lib/pychess/ic/__init__.py:194 msgid "FM" msgstr "" #: lib/pychess/ic/__init__.py:195 msgid "WGM" msgstr "" #: lib/pychess/ic/__init__.py:195 msgid "WIM" msgstr "" #: lib/pychess/ic/__init__.py:195 msgid "WFM" msgstr "" #: lib/pychess/ic/__init__.py:195 msgid "D" msgstr "" #: lib/pychess/ic/__init__.py:195 msgid "H" msgstr "" #: lib/pychess/ic/__init__.py:195 msgid "CM" msgstr "" #: lib/pychess/ic/__init__.py:195 msgid "FA" msgstr "" #: lib/pychess/ic/__init__.py:195 msgid "NM" msgstr "" #: lib/pychess/Players/CECPEngine.py:857 #, python-format msgid "The engine %s reports an error:" msgstr "" #: lib/pychess/Players/Human.py:20 msgid "Your opponent has offered you a draw." msgstr "" #: lib/pychess/Players/Human.py:21 msgid "" "Your opponent has offered you a draw. If you accept this offer, the game " "will end with a score of 1/2 - 1/2." msgstr "" #: lib/pychess/Players/Human.py:23 msgid "Your opponent wants to abort the game." msgstr "" #: lib/pychess/Players/Human.py:24 msgid "" "Your opponent has asked that the game be aborted. If you accept this offer, " "the game will end with no rating change." msgstr "" #: lib/pychess/Players/Human.py:26 msgid "Your opponent wants to adjourn the game." msgstr "" #: lib/pychess/Players/Human.py:27 msgid "" "Your opponent has asked that the game be adjourned. If you accept this " "offer, the game will be adjourned and you can resume it later (when your " "opponent is online and both players agree to resume)." msgstr "" #: lib/pychess/Players/Human.py:29 #, python-format msgid "Your opponent wants to undo %s move(s)." msgstr "" #: lib/pychess/Players/Human.py:30 #, python-format msgid "" "Your opponent has asked that the last %s move(s) be undone. If you accept " "this offer, the game will continue from the earlier position." msgstr "" #: lib/pychess/Players/Human.py:32 msgid "Your opponent wants to pause the game." msgstr "" #: lib/pychess/Players/Human.py:33 msgid "" "Your opponent has asked that the game be paused. If you accept this offer, " "the game clock will be paused until both players agree to resume the game." msgstr "" #: lib/pychess/Players/Human.py:35 msgid "Your opponent wants to resume the game." msgstr "" #: lib/pychess/Players/Human.py:36 msgid "" "Your opponent has asked that the game be resumed. If you accept this offer, " "the game clock will continue from where it was paused." msgstr "" #: lib/pychess/Players/Human.py:40 msgid "The resignation" msgstr "" #: lib/pychess/Players/Human.py:41 msgid "The flag call" msgstr "" #: lib/pychess/Players/Human.py:42 msgid "The draw offer" msgstr "" #: lib/pychess/Players/Human.py:43 msgid "The abort offer" msgstr "" #: lib/pychess/Players/Human.py:44 msgid "The adjourn offer" msgstr "" #: lib/pychess/Players/Human.py:45 msgid "The pause offer" msgstr "" #: lib/pychess/Players/Human.py:46 msgid "The resume offer" msgstr "" #: lib/pychess/Players/Human.py:47 msgid "The offer to switch sides" msgstr "" #: lib/pychess/Players/Human.py:48 msgid "The takeback offer" msgstr "" #: lib/pychess/Players/Human.py:52 msgid "resign" msgstr "రాజీనామా" #: lib/pychess/Players/Human.py:53 msgid "call your opponents flag" msgstr "" #: lib/pychess/Players/Human.py:54 msgid "offer a draw" msgstr "" #: lib/pychess/Players/Human.py:55 msgid "offer an abort" msgstr "" #: lib/pychess/Players/Human.py:56 msgid "offer to adjourn" msgstr "" #: lib/pychess/Players/Human.py:57 msgid "offer a pause" msgstr "" #: lib/pychess/Players/Human.py:58 msgid "offer to resume" msgstr "" #: lib/pychess/Players/Human.py:59 msgid "offer to switch sides" msgstr "" #: lib/pychess/Players/Human.py:60 msgid "offer a takeback" msgstr "" #: lib/pychess/Players/Human.py:61 msgid "ask your opponent to move" msgstr "" #: lib/pychess/Players/Human.py:66 msgid "Your opponent is not out of time." msgstr "" #: lib/pychess/Players/Human.py:68 msgid "The clock hasn't been started yet." msgstr "" #: lib/pychess/Players/Human.py:70 msgid "You can't switch colors during the game." msgstr "ఆట ఆడుతున్నప్పుడు రంగులు మార్చలేరు." #: lib/pychess/Players/Human.py:72 msgid "You have tried to undo too many moves." msgstr "" #: lib/pychess/Players/Human.py:180 msgid "Your opponent asks you to hurry!" msgstr "" #: lib/pychess/Players/Human.py:181 msgid "" "Generally this means nothing, as the game is time-based, but if you want to " "please your opponent, perhaps you should get going." msgstr "" #: lib/pychess/Players/Human.py:259 #, python-format msgid "%s was declined by your opponent" msgstr "" #: lib/pychess/Players/Human.py:260 #, python-format msgid "Resend %s?" msgstr "" #: lib/pychess/Players/Human.py:267 msgid "Resend" msgstr "" #: lib/pychess/Players/Human.py:275 #, python-format msgid "%s was withdrawn by your opponent" msgstr "" #: lib/pychess/Players/Human.py:276 msgid "Your opponent seems to have changed their mind." msgstr "" #: lib/pychess/Players/Human.py:290 #, python-format msgid "Unable to accept %s" msgstr "" #: lib/pychess/Players/Human.py:291 msgid "Probably because it has been withdrawn." msgstr "" #: lib/pychess/Players/Human.py:298 #, python-format msgid "%s returns an error" msgstr "" #: lib/pychess/Savers/chessalpha2.py:12 msgid "Chess Alpha 2 Diagram" msgstr "" #: lib/pychess/Savers/chesspastebin.py:39 msgid "Game shared at " msgstr "" #: lib/pychess/Savers/chesspastebin.py:41 msgid "(Link is available on clipboard.)" msgstr "" #: lib/pychess/Savers/database.py:19 msgid "PyChess database" msgstr "" #: lib/pychess/Savers/epd.py:12 msgid "Chess Position" msgstr "" #: lib/pychess/Savers/fen.py:12 msgid "Simple Chess Position" msgstr "" #: lib/pychess/Savers/fen.py:44 lib/pychess/Savers/pgn.py:329 msgid "The game can't be loaded, because of an error parsing FEN" msgstr "" #: lib/pychess/Savers/pgnbase.py:100 #, python-format msgid "" "The game can't be read to end, because of an error parsing move %(moveno)s " "'%(notation)s'." msgstr "" #: lib/pychess/Savers/pgnbase.py:102 #, python-format msgid "The move failed because %s." msgstr "" #: lib/pychess/Savers/pgnbase.py:110 #, python-format msgid "Error parsing move %(moveno)s %(mstr)s" msgstr "" #: lib/pychess/Savers/pgn.py:28 msgid "Chess Game" msgstr "చదరంగపు ఆట" #: lib/pychess/Savers/pgn.py:362 msgid "Invalid move." msgstr "" #: lib/pychess/Savers/png.py:15 msgid "Png image" msgstr "" #: lib/pychess/System/ping.py:31 msgid "Destination Host Unreachable" msgstr "" #: lib/pychess/System/ping.py:74 msgid "Died" msgstr "" #: lib/pychess/Utils/GameModel.py:147 msgid "Local Event" msgstr "" #: lib/pychess/Utils/GameModel.py:148 msgid "Local Site" msgstr "" #: lib/pychess/Utils/repr.py:12 msgid "Pawn" msgstr "" #: lib/pychess/Utils/repr.py:14 msgid "P" msgstr "" #: lib/pychess/Utils/repr.py:14 msgid "N" msgstr "" #: lib/pychess/Utils/repr.py:14 msgid "R" msgstr "" #: lib/pychess/Utils/repr.py:14 msgid "Q" msgstr "" #: lib/pychess/Utils/repr.py:14 msgid "K" msgstr "" #: lib/pychess/Utils/repr.py:17 msgid "The game ended in a draw" msgstr "ఆట డ్రాగా ముగిసింది" #: lib/pychess/Utils/repr.py:18 #, python-format msgid "%(white)s won the game" msgstr "%(white)s ఆట గెలిచారు" #: lib/pychess/Utils/repr.py:19 #, python-format msgid "%(black)s won the game" msgstr "" #: lib/pychess/Utils/repr.py:20 msgid "The game has been killed" msgstr "ఆట అంతము చేయబడింది" #: lib/pychess/Utils/repr.py:21 msgid "The game has been adjourned" msgstr "" #: lib/pychess/Utils/repr.py:22 msgid "The game has been aborted" msgstr "" #: lib/pychess/Utils/repr.py:26 msgid "Because neither player has sufficient material to mate" msgstr "" #: lib/pychess/Utils/repr.py:27 msgid "Because the same position was repeated three times in a row" msgstr "" #: lib/pychess/Utils/repr.py:28 msgid "Because the last 50 moves brought nothing new" msgstr "" #: lib/pychess/Utils/repr.py:29 msgid "Because both players ran out of time" msgstr "" #: lib/pychess/Utils/repr.py:30 #, python-format msgid "Because %(mover)s stalemated" msgstr "" #: lib/pychess/Utils/repr.py:31 msgid "Because both players agreed to a draw" msgstr "" #: lib/pychess/Utils/repr.py:32 lib/pychess/Utils/repr.py:42 msgid "Because of adjudication by an admin" msgstr "" #: lib/pychess/Utils/repr.py:33 msgid "Because the game exceed the max length" msgstr "" #: lib/pychess/Utils/repr.py:34 #, python-format msgid "" "Because %(white)s ran out of time and %(black)s has insufficient material to" " mate" msgstr "" #: lib/pychess/Utils/repr.py:35 #, python-format msgid "" "Because %(black)s ran out of time and %(white)s has insufficient material to" " mate" msgstr "" #: lib/pychess/Utils/repr.py:36 msgid "Because both players have the same amount of pieces" msgstr "" #: lib/pychess/Utils/repr.py:38 #, python-format msgid "Because %(loser)s resigned" msgstr "" #: lib/pychess/Utils/repr.py:39 #, python-format msgid "Because %(loser)s ran out of time" msgstr "" #: lib/pychess/Utils/repr.py:40 #, python-format msgid "Because %(loser)s was checkmated" msgstr "" #: lib/pychess/Utils/repr.py:41 #, python-format msgid "Because %(loser)s disconnected" msgstr "" #: lib/pychess/Utils/repr.py:43 #, python-format msgid "Because %(winner)s has fewer pieces" msgstr "" #: lib/pychess/Utils/repr.py:44 #, python-format msgid "Because %(winner)s lost all pieces" msgstr "" #: lib/pychess/Utils/repr.py:45 #, python-format msgid "Because %(loser)s king exploded" msgstr "" #: lib/pychess/Utils/repr.py:46 #, python-format msgid "Because %(winner)s king reached the center" msgstr "" #: lib/pychess/Utils/repr.py:47 #, python-format msgid "Because %(winner)s was giving check 3 times" msgstr "" #: lib/pychess/Utils/repr.py:49 msgid "Because a player lost connection" msgstr "" #: lib/pychess/Utils/repr.py:50 msgid "Because both players agreed to an adjournment" msgstr "" #: lib/pychess/Utils/repr.py:51 msgid "Because the server was shut down" msgstr "" #: lib/pychess/Utils/repr.py:52 msgid "" "Because a player lost connection and the other player requested adjournment" msgstr "" #: lib/pychess/Utils/repr.py:53 #, python-format msgid "" "Because %(black)s lost connection to the server and %(white)s requested " "adjournment" msgstr "" #: lib/pychess/Utils/repr.py:54 #, python-format msgid "" "Because %(white)s lost connection to the server and %(black)s requested " "adjournment" msgstr "" #: lib/pychess/Utils/repr.py:55 #, python-format msgid "Because %(white)s lost connection to the server" msgstr "" #: lib/pychess/Utils/repr.py:56 #, python-format msgid "Because %(black)s lost connection to the server" msgstr "" #: lib/pychess/Utils/repr.py:58 msgid "Because of adjudication by an admin. No rating changes have occurred." msgstr "" #: lib/pychess/Utils/repr.py:59 msgid "" "Because both players agreed to abort the game. No rating changes have " "occurred." msgstr "" #: lib/pychess/Utils/repr.py:60 msgid "Because of courtesy by a player. No rating changes have occurred." msgstr "" #: lib/pychess/Utils/repr.py:61 msgid "" "Because a player aborted the game. Either player can abort the game without " "the other's consent before the second move. No rating changes have occurred." msgstr "" #: lib/pychess/Utils/repr.py:62 msgid "" "Because a player disconnected and there are too few moves to warrant " "adjournment. No rating changes have occurred." msgstr "" #: lib/pychess/Utils/repr.py:63 msgid "Because the server was shut down. No rating changes have occurred." msgstr "" #: lib/pychess/Utils/repr.py:65 #, python-format msgid "Because the %(white)s engine died" msgstr "" #: lib/pychess/Utils/repr.py:66 #, python-format msgid "Because the %(black)s engine died" msgstr "" #: lib/pychess/Utils/repr.py:67 msgid "Because the connection to the server was lost" msgstr "" #: lib/pychess/Utils/repr.py:68 msgid "The reason is unknown" msgstr "" #: lib/pychess/Utils/TimeModel.py:229 msgid "min" msgstr "" #: lib/pychess/Utils/TimeModel.py:231 msgid "sec" msgstr "" #: lib/pychess/Variants/asean.py:12 msgid "" "ASEAN: http://www.ncf-" "phil.org/downloadables/2014/May/Asean_chess/Laws_of_ASEAN_Chess_2011_Nov_26.doc" msgstr "" #: lib/pychess/Variants/asean.py:13 msgid "ASEAN" msgstr "" #: lib/pychess/Variants/asean.py:33 msgid "Makruk: http://en.wikipedia.org/wiki/Makruk" msgstr "" #: lib/pychess/Variants/asean.py:34 msgid "Makruk" msgstr "" #: lib/pychess/Variants/asean.py:60 msgid "Cambodian: http://www.khmerinstitute.org/culture/ok.html" msgstr "" #: lib/pychess/Variants/asean.py:61 msgid "Cambodian" msgstr "" #: lib/pychess/Variants/asean.py:86 msgid "" "Ai-Wok: http://www.open-" "aurec.com/wbforum/viewtopic.php?p=199364&sid=20963a1de2c164050de019e5ed6bf7c4#p199364" msgstr "" #: lib/pychess/Variants/asean.py:87 msgid "Ai-Wok" msgstr "" #: lib/pychess/Variants/asean.py:111 msgid "Sittuyin: http://en.wikipedia.org/wiki/Sittuyin" msgstr "" #: lib/pychess/Variants/asean.py:112 msgid "Sittuyin" msgstr "" #: lib/pychess/Variants/asymmetricrandom.py:12 msgid "" "FICS wild/4: http://www.freechess.org/Help/HelpFiles/wild.html\n" "* Randomly chosen pieces (two queens or three rooks possible)\n" "* Exactly one king of each color\n" "* Pieces placed randomly behind the pawns, SUBJECT TO THE CONSTRAINT THAT THE BISHOPS ARE BALANCED\n" "* No castling\n" "* Black's arrangement DOES NOT mirrors white's" msgstr "" #: lib/pychess/Variants/asymmetricrandom.py:18 msgid "Asymmetric Random" msgstr "" #: lib/pychess/Variants/atomic.py:14 msgid "FICS atomic: http://www.freechess.org/Help/HelpFiles/atomic.html" msgstr "" #: lib/pychess/Variants/blindfold.py:7 msgid "" "Classic chess rules with hidden figurines\n" "http://en.wikipedia.org/wiki/Blindfold_chess" msgstr "" #: lib/pychess/Variants/blindfold.py:9 #: lib/pychess/widgets/newGameDialog.py:264 msgid "Blindfold" msgstr "" #: lib/pychess/Variants/blindfold.py:18 msgid "" "Classic chess rules with hidden pawns\n" "http://en.wikipedia.org/wiki/Blindfold_chess" msgstr "" #: lib/pychess/Variants/blindfold.py:20 msgid "Hidden pawns" msgstr "" #: lib/pychess/Variants/blindfold.py:29 msgid "" "Classic chess rules with hidden pieces\n" "http://en.wikipedia.org/wiki/Blindfold_chess" msgstr "" #: lib/pychess/Variants/blindfold.py:31 msgid "Hidden pieces" msgstr "" #: lib/pychess/Variants/blindfold.py:40 msgid "" "Classic chess rules with all pieces white\n" "http://en.wikipedia.org/wiki/Blindfold_chess" msgstr "" #: lib/pychess/Variants/blindfold.py:42 msgid "All white" msgstr "" #: lib/pychess/Variants/bughouse.py:8 msgid "FICS bughouse: http://www.freechess.org/Help/HelpFiles/bughouse.html" msgstr "" #: lib/pychess/Variants/corner.py:12 msgid "" "http://brainking.com/en/GameRules?tp=2\n" "* Placement of the pieces on the 1st and 8th row are randomized\n" "* The king is in the right hand corner\n" "* Bishops must start on opposite color squares\n" "* Black's starting position is obtained by rotating white's position 180 degrees around the board's center\n" "* No castling" msgstr "" #: lib/pychess/Variants/corner.py:18 msgid "Corner" msgstr "" #: lib/pychess/Variants/crazyhouse.py:8 msgid "" "FICS crazyhouse: http://www.freechess.org/Help/HelpFiles/crazyhouse.html" msgstr "" #: lib/pychess/Variants/euroshogi.py:9 msgid "EuroShogi: http://en.wikipedia.org/wiki/EuroShogi" msgstr "" #: lib/pychess/Variants/euroshogi.py:10 msgid "EuroShogi" msgstr "" #: lib/pychess/Variants/fischerandom.py:18 msgid "" "http://en.wikipedia.org/wiki/Chess960\n" "FICS wild/fr: http://www.freechess.org/Help/HelpFiles/wild.html" msgstr "" #: lib/pychess/Variants/fischerandom.py:20 msgid "Fischer Random" msgstr "" #: lib/pychess/Variants/kingofthehill.py:8 msgid "" "Bringing your king legally to the center (e4, d4, e5, d5) instantly wins the game!\n" "Normal rules apply in other cases and checkmate also ends the game." msgstr "" #: lib/pychess/Variants/kingofthehill.py:10 msgid "King of the hill" msgstr "" #: lib/pychess/Variants/knightodds.py:8 msgid "One player starts with one less knight piece" msgstr "" #: lib/pychess/Variants/knightodds.py:9 msgid "Knight odds" msgstr "" #: lib/pychess/Variants/losers.py:8 msgid "FICS losers: http://www.freechess.org/Help/HelpFiles/losers_chess.html" msgstr "" #: lib/pychess/Variants/normal.py:4 msgid "" "Classic chess rules\n" "http://en.wikipedia.org/wiki/Chess" msgstr "" #: lib/pychess/Variants/normal.py:6 lib/pychess/widgets/newGameDialog.py:157 msgid "Normal" msgstr "" #: lib/pychess/Variants/pawnodds.py:8 msgid "One player starts with one less pawn piece" msgstr "" #: lib/pychess/Variants/pawnodds.py:9 msgid "Pawn odds" msgstr "" #: lib/pychess/Variants/pawnspassed.py:11 msgid "" "FICS wild/8a: http://www.freechess.org/Help/HelpFiles/wild.html\n" "White pawns start on 5th rank and black pawns on the 4th rank" msgstr "" #: lib/pychess/Variants/pawnspassed.py:13 msgid "Pawns Passed" msgstr "" #: lib/pychess/Variants/pawnspushed.py:10 msgid "" "FICS wild/8: http://www.freechess.org/Help/HelpFiles/wild.html\n" "Pawns start on 4th and 5th ranks rather than 2nd and 7th" msgstr "" #: lib/pychess/Variants/pawnspushed.py:12 msgid "Pawns Pushed" msgstr "" #: lib/pychess/Variants/queenodds.py:8 msgid "One player starts with one less queen piece" msgstr "" #: lib/pychess/Variants/queenodds.py:9 msgid "Queen odds" msgstr "" #: lib/pychess/Variants/randomchess.py:11 msgid "" "FICS wild/3: http://www.freechess.org/Help/HelpFiles/wild.html\n" "* Randomly chosen pieces (two queens or three rooks possible)\n" "* Exactly one king of each color\n" "* Pieces placed randomly behind the pawns\n" "* No castling\n" "* Black's arrangement mirrors white's" msgstr "" #: lib/pychess/Variants/randomchess.py:17 #: lib/pychess/widgets/TaskerManager.py:155 msgid "Random" msgstr "యాదృచ్ఛికం" #: lib/pychess/Variants/rookodds.py:8 msgid "One player starts with one less rook piece" msgstr "" #: lib/pychess/Variants/rookodds.py:9 msgid "Rook odds" msgstr "" #: lib/pychess/Variants/shuffle.py:11 msgid "" "xboard nocastle: http://home.hccnet.nl/h.g.muller/engine-intf.html#8\n" "FICS wild/2: http://www.freechess.org/Help/HelpFiles/wild.html\n" "* Random arrangement of the pieces behind the pawns\n" "* No castling\n" "* Black's arrangement mirrors white's" msgstr "" #: lib/pychess/Variants/suicide.py:11 msgid "" "FICS suicide: http://www.freechess.org/Help/HelpFiles/suicide_chess.html" msgstr "" #: lib/pychess/Variants/theban.py:10 msgid "" "Variant developed by Kai Laskos: " "http://talkchess.com/forum/viewtopic.php?t=40990" msgstr "" #: lib/pychess/Variants/theban.py:11 msgid "Theban" msgstr "" #: lib/pychess/Variants/threecheck.py:10 msgid "Win by giving check 3 times" msgstr "" #: lib/pychess/Variants/threecheck.py:11 msgid "Three-check" msgstr "" #: lib/pychess/Variants/upsidedown.py:10 msgid "" "FICS wild/5: http://www.freechess.org/Help/HelpFiles/wild.html\n" "http://en.wikipedia.org/wiki/Chess_variant#Chess_with_different_starting_positions\n" "Pawns start on their 7th rank rather than their 2nd rank!" msgstr "" #: lib/pychess/Variants/upsidedown.py:13 msgid "Upside Down" msgstr "" #: lib/pychess/Variants/wildcastle.py:10 msgid "" "xboard wildcastle http://home.hccnet.nl/h.g.muller/engine-intf.html#8\n" "FICS wild/0: http://www.freechess.org/Help/HelpFiles/wild.html\n" "* White has the typical set-up at the start.\n" "* Black's pieces are the same, except that the King and Queen are reversed,\n" "* so they are not on the same files as White's King and Queen.\n" "* Castling is done similarly to normal chess:\n" "* o-o-o indicates long castling and o-o short castling." msgstr "" #: lib/pychess/Variants/wildcastle.py:17 msgid "Wildcastle" msgstr "" #: lib/pychess/Variants/wildcastleshuffle.py:11 msgid "" "xboard wildcastle http://home.hccnet.nl/h.g.muller/engine-intf.html#8\n" "FICS wild/1: http://www.freechess.org/Help/HelpFiles/wild.html\n" "* In this variant both sides have the same set of pieces as in normal chess.\n" "* The white king starts on d1 or e1 and the black king starts on d8 or e8,\n" "* and the rooks are in their usual positions.\n" "* Bishops are always on opposite colors.\n" "* Subject to these constraints the position of the pieces on their first ranks is random.\n" "* Castling is done similarly to normal chess:\n" "* o-o-o indicates long castling and o-o short castling." msgstr "" #: lib/pychess/Variants/wildcastleshuffle.py:20 msgid "Wildcastle shuffle" msgstr "" #: lib/pychess/widgets/analyzegameDialog.py:85 msgid "Game analyzing in progress..." msgstr "" #: lib/pychess/widgets/analyzegameDialog.py:86 msgid "Do you want to abort it?" msgstr "" #: lib/pychess/widgets/analyzegameDialog.py:95 #: lib/pychess/widgets/gamewidget.py:202 lib/pychess/widgets/gamewidget.py:320 msgid "Abort" msgstr "" #: lib/pychess/widgets/ChatView.py:125 msgid "Observers" msgstr "" #: lib/pychess/widgets/ChatWindow.py:222 msgid "You have opened no conversations yet" msgstr "" #: lib/pychess/widgets/ChatWindow.py:254 msgid "Only registered users may talk to this channel" msgstr "" #: lib/pychess/widgets/ChatWindow.py:312 msgid "No conversation's selected" msgstr "" #: lib/pychess/widgets/ChatWindow.py:350 msgid "Loading player data" msgstr "" #: lib/pychess/widgets/ChatWindow.py:400 msgid "Receiving list of players" msgstr "" #: lib/pychess/widgets/ChatWindow.py:518 msgid "Friends" msgstr "" #: lib/pychess/widgets/ChatWindow.py:529 msgid "Admin" msgstr "" #: lib/pychess/widgets/ChatWindow.py:540 msgid "More channels" msgstr "" #: lib/pychess/widgets/ChatWindow.py:548 msgid "More players" msgstr "" #: lib/pychess/widgets/ChatWindow.py:558 msgid "Computers" msgstr "" #: lib/pychess/widgets/ChatWindow.py:568 msgid "BlindFold" msgstr "" #: lib/pychess/widgets/ChatWindow.py:578 msgid "Guests" msgstr "" #: lib/pychess/widgets/ChatWindow.py:805 msgid "Conversations" msgstr "" #: lib/pychess/widgets/ChatWindow.py:807 msgid "Conversation info" msgstr "" #: lib/pychess/widgets/enginesDialog.py:152 msgid "Select engine" msgstr "యంత్రాన్ని ఎంచుకోండి" #: lib/pychess/widgets/enginesDialog.py:156 msgid "Executable files" msgstr "" #: lib/pychess/widgets/enginesDialog.py:176 #: lib/pychess/widgets/enginesDialog.py:210 #: lib/pychess/widgets/enginesDialog.py:235 #, python-format msgid "Unable to add %s" msgstr "" #: lib/pychess/widgets/enginesDialog.py:177 msgid "wine not installed" msgstr "" #: lib/pychess/widgets/enginesDialog.py:211 #: lib/pychess/widgets/enginesDialog.py:236 msgid "There is something wrong with this executable" msgstr "" #: lib/pychess/widgets/enginesDialog.py:266 msgid "Select working directory" msgstr "" #: lib/pychess/widgets/gamenanny.py:115 #, python-format msgid " invalid engine move: %s" msgstr "" #: lib/pychess/widgets/gamenanny.py:134 msgid "Offer Rematch" msgstr "" #: lib/pychess/widgets/gamenanny.py:136 lib/pychess/widgets/gamenanny.py:147 #, python-format msgid "Observe %s" msgstr "" #: lib/pychess/widgets/gamenanny.py:168 msgid "Play Rematch" msgstr "" #: lib/pychess/widgets/gamenanny.py:171 msgid "Undo one move" msgstr "" #: lib/pychess/widgets/gamenanny.py:173 msgid "Undo two moves" msgstr "" #: lib/pychess/widgets/gamenanny.py:203 msgid "The game is paused" msgstr "ఆట నిలిపివేయబడింది" #: lib/pychess/widgets/gamenanny.py:221 lib/pychess/widgets/gamenanny.py:222 msgid "Loaded game" msgstr "" #: lib/pychess/widgets/gamenanny.py:228 msgid "Saved game" msgstr "భద్రపరచిన ఆట" #: lib/pychess/widgets/gamenanny.py:232 msgid "Analyzer started" msgstr "" #: lib/pychess/widgets/gamenanny.py:281 msgid "You sent an abort offer" msgstr "" #: lib/pychess/widgets/gamenanny.py:283 msgid "You sent an adjournment offer" msgstr "" #: lib/pychess/widgets/gamenanny.py:285 msgid "You sent a draw offer" msgstr "" #: lib/pychess/widgets/gamenanny.py:287 msgid "You sent a pause offer" msgstr "" #: lib/pychess/widgets/gamenanny.py:289 msgid "You sent a resume offer" msgstr "" #: lib/pychess/widgets/gamenanny.py:291 msgid "You sent an undo offer" msgstr "" #: lib/pychess/widgets/gamenanny.py:293 msgid "You asked your opponent to move" msgstr "" #: lib/pychess/widgets/gamenanny.py:305 #, python-format msgid "Engine, %s, has died" msgstr "" #: lib/pychess/widgets/gamenanny.py:306 msgid "" "PyChess has lost connection to the engine, probably because it has died.\n" "\n" "You can try to start a new game with the engine, or try to play against another one." msgstr "" #: lib/pychess/widgets/gamewidget.py:204 msgid "" "This game can be automatically aborted without rating loss because there has" " not yet been two moves made" msgstr "" #: lib/pychess/widgets/gamewidget.py:206 msgid "Offer Abort" msgstr "" #: lib/pychess/widgets/gamewidget.py:208 msgid "" "Your opponent must agree to abort the game because there has been two or " "more moves made" msgstr "" #: lib/pychess/widgets/gamewidget.py:226 msgid "This game can not be adjourned because one or both players are guests" msgstr "" #: lib/pychess/widgets/gamewidget.py:243 msgid "Claim Draw" msgstr "" #: lib/pychess/widgets/gamewidget.py:325 msgid "Pause" msgstr "" #: lib/pychess/widgets/gamewidget.py:326 msgid "Resume" msgstr "" #: lib/pychess/widgets/gamewidget.py:328 msgid "Offer Pause" msgstr "" #: lib/pychess/widgets/gamewidget.py:329 msgid "Offer Resume" msgstr "" #: lib/pychess/widgets/gamewidget.py:333 msgid "Undo" msgstr "" #: lib/pychess/widgets/gamewidget.py:335 msgid "Offer Undo" msgstr "" #: lib/pychess/widgets/gamewidget.py:550 msgid " has lagged for 30 seconds" msgstr "" #: lib/pychess/widgets/gamewidget.py:566 msgid " is lagging heavily but hasn't disconnected" msgstr "" #: lib/pychess/widgets/gamewidget.py:567 msgid "Continue to wait for opponent, or try to adjourn the game?" msgstr "" #: lib/pychess/widgets/gamewidget.py:575 msgid "Wait" msgstr "" #: lib/pychess/widgets/gamewidget.py:576 msgid "Adjourn" msgstr "" #: lib/pychess/widgets/gamewidget.py:648 msgid "Jump to initial position" msgstr "" #: lib/pychess/widgets/gamewidget.py:653 msgid "Step back one move" msgstr "" #: lib/pychess/widgets/gamewidget.py:658 msgid "Go back to the main line" msgstr "" #: lib/pychess/widgets/gamewidget.py:664 msgid "Step forward one move" msgstr "" #: lib/pychess/widgets/gamewidget.py:669 msgid "Jump to latest position" msgstr "" #: lib/pychess/widgets/gamewidget.py:903 msgid "PyChess was unable to load your panel settings" msgstr "" #: lib/pychess/widgets/gamewidget.py:904 msgid "" "Your panel settings have been reset. If this problem repeats, you should " "report it to the developers" msgstr "" #: lib/pychess/widgets/ionest.py:67 lib/pychess/widgets/newGameDialog.py:389 #: lib/pychess/widgets/TaskerManager.py:210 msgid "You" msgstr "" #: lib/pychess/widgets/ionest.py:70 lib/pychess/widgets/newGameDialog.py:390 #: lib/pychess/widgets/preferencesDialog.py:61 #: lib/pychess/widgets/TaskerManager.py:213 msgid "Guest" msgstr "అతిథి" #: lib/pychess/widgets/ionest.py:93 msgid "Error loading game" msgstr "" #: lib/pychess/widgets/ionest.py:127 lib/pychess/widgets/newGameDialog.py:480 msgid "Open Game" msgstr "ఆటను తెరువు" #: lib/pychess/widgets/ionest.py:137 msgid "All Files" msgstr "" #: lib/pychess/widgets/ionest.py:140 msgid "Detect type automatically" msgstr "" #: lib/pychess/widgets/ionest.py:146 msgid "All Chess Files" msgstr "" #: lib/pychess/widgets/ionest.py:228 msgid "Save Game" msgstr "ఆటను భద్రపరుచు" #: lib/pychess/widgets/ionest.py:228 msgid "Export position" msgstr "" #: lib/pychess/widgets/ionest.py:232 lib/pychess/widgets/ionest.py:360 msgid "vs." msgstr "" #: lib/pychess/widgets/ionest.py:249 #, python-format msgid "Unknown file type '%s'" msgstr "" #: lib/pychess/widgets/ionest.py:250 #, python-format msgid "" "Was unable to save '%(uri)s' as PyChess doesn't know the format " "'%(ending)s'." msgstr "" #: lib/pychess/widgets/ionest.py:266 #, python-format msgid "Unable to save file '%s'" msgstr "" #: lib/pychess/widgets/ionest.py:268 msgid "" "You don't have the necessary rights to save the file.\n" "Please ensure that you have given the right path and try again." msgstr "" #: lib/pychess/widgets/ionest.py:276 msgid "_Replace" msgstr "" #: lib/pychess/widgets/ionest.py:280 msgid "File exists" msgstr "" #: lib/pychess/widgets/ionest.py:282 #, python-format msgid "" "A file named '%s' already exists. Would you like to replace " "it?" msgstr "" #: lib/pychess/widgets/ionest.py:283 #, python-format msgid "" "The file already exists in '%s'. If you replace it, its content will be " "overwritten." msgstr "" #: lib/pychess/widgets/ionest.py:299 msgid "Could not save the file" msgstr "" #: lib/pychess/widgets/ionest.py:300 msgid "PyChess was not able to save the game" msgstr "" #: lib/pychess/widgets/ionest.py:301 #, python-format msgid "The error was: %s" msgstr "" #: lib/pychess/widgets/ionest.py:325 #, python-format msgid "There is %d game with unsaved moves." msgid_plural "There are %d games with unsaved moves." msgstr[0] "" msgstr[1] "" #: lib/pychess/widgets/ionest.py:328 msgid "Save moves before closing?" msgstr "" #: lib/pychess/widgets/ionest.py:339 msgid "Unable to save to configured file. Save the games before closing?" msgstr "" #: lib/pychess/widgets/ionest.py:366 #, python-format msgid "_Save %d document" msgid_plural "_Save %d documents" msgstr[0] "" msgstr[1] "" #: lib/pychess/widgets/ionest.py:412 msgid "Save the current game before you close it?" msgstr "" #: lib/pychess/widgets/ionest.py:420 msgid "" "Unable to save to configured file. Save the current game before you close " "it?" msgstr "" #: lib/pychess/widgets/ionest.py:434 msgid "" "It is not possible later to continue the game,\n" "if you don't save it." msgstr "" #: lib/pychess/widgets/LogDialog.py:26 msgid "PyChess Information Window" msgstr "" #: lib/pychess/widgets/LogDialog.py:184 lib/pychess/widgets/LogDialog.py:188 msgid "of" msgstr "" #: lib/pychess/widgets/newGameDialog.py:84 #: lib/pychess/widgets/newGameDialog.py:85 msgid "Human Being" msgstr "మానవుడు" #: lib/pychess/widgets/newGameDialog.py:155 msgid "Rapid" msgstr "" #: lib/pychess/widgets/newGameDialog.py:224 msgid "Minutes:" msgstr "" #: lib/pychess/widgets/newGameDialog.py:228 msgid "Gain:" msgstr "" #: lib/pychess/widgets/newGameDialog.py:241 #, python-format msgid "%(name)s %(minutes)d min + %(gain)d sec/move" msgstr "" #: lib/pychess/widgets/newGameDialog.py:244 #, python-format msgid "%(name)s %(minutes)d min %(gain)d sec/move" msgstr "" #: lib/pychess/widgets/newGameDialog.py:247 #, python-format msgid "%(name)s %(minutes)d min" msgstr "" #: lib/pychess/widgets/newGameDialog.py:265 msgid "Odds" msgstr "" #: lib/pychess/widgets/newGameDialog.py:269 msgid "Asian variants" msgstr "" #: lib/pychess/widgets/newGameDialog.py:301 msgid " chess" msgstr "" #: lib/pychess/widgets/newGameDialog.py:682 msgid "Type or paste PGN game or FEN positions here" msgstr "" #: lib/pychess/widgets/newGameDialog.py:725 msgid "Enter Game" msgstr "ఆటలోకి ప్రవేశించండి" #: lib/pychess/widgets/preferencesDialog.py:123 msgid "Select book file" msgstr "" #: lib/pychess/widgets/preferencesDialog.py:128 msgid "Opening books" msgstr "" #: lib/pychess/widgets/preferencesDialog.py:156 msgid "Select Gaviota TB path" msgstr "" #: lib/pychess/widgets/preferencesDialog.py:331 msgid "Open Sound File" msgstr "" #: lib/pychess/widgets/preferencesDialog.py:341 msgid "Sound files" msgstr "" #: lib/pychess/widgets/preferencesDialog.py:485 msgid "Undescribed panel" msgstr "" #: lib/pychess/widgets/preferencesDialog.py:678 msgid "Select auto save path" msgstr "" #: lib/pychess/widgets/tipOfTheDay.py:51 msgid "" "You can start a new game by Game > New Game, in New Game " "window do you can choose Players, Time Control and Chess " "Variants." msgstr "" #: lib/pychess/widgets/tipOfTheDay.py:52 msgid "" "You can choose from 20 different difficulties to play against the computer." msgstr "" #: lib/pychess/widgets/tipOfTheDay.py:53 msgid "" "Chess Variants are like the pieces of the last line will be placed on the " "board." msgstr "" #: lib/pychess/widgets/tipOfTheDay.py:54 msgid "" "To save a game Game > Save Game As, give the filename and " "choose where you want to be saved. At the bottom choose extension type of " "the file, and Save." msgstr "" #: lib/pychess/widgets/tipOfTheDay.py:55 msgid "" "Do you know that you can call flag when the clock is with you, " "Actions > Call Flag." msgstr "" #: lib/pychess/widgets/tipOfTheDay.py:56 msgid "Pressing Ctrl+Z to offer opponent the possible rollback moves." msgstr "" #: lib/pychess/widgets/tipOfTheDay.py:57 msgid "" "To play on Fullscreen mode, just type F11. Coming back, F11 " "again." msgstr "" #: lib/pychess/widgets/tipOfTheDay.py:58 msgid "Hint mode analyzing your game, enable this type Ctrl+H." msgstr "" #: lib/pychess/widgets/tipOfTheDay.py:59 msgid "" "Spy mode analyzing the oponnent game, enable this type Ctrl+Y." msgstr "" #: lib/pychess/widgets/tipOfTheDay.py:60 msgid "" "You can play chess listening to the sounds of the game, for that, " "Settings > Preferences > Sound tab, enable Use " "sounds in PyChess and choose your preferred sounds." msgstr "" #: lib/pychess/widgets/tipOfTheDay.py:61 msgid "" "Do you know that you can help translate Pychess in your language, " "Help > Translate Pychess." msgstr "" #: lib/pychess/widgets/tipOfTheDay.py:62 msgid "" "Do you know that it is possible to finish a chess game in just 2 turns?" msgstr "" #: lib/pychess/widgets/tipOfTheDay.py:63 msgid "" "Do you know that the number of possible chess games exceeds the number of " "atoms in the Universe?" msgstr "" #: lib/pychess/ic/managers/ChatManager.py:184 msgid "Shout" msgstr "" #: lib/pychess/ic/managers/ChatManager.py:185 msgid "Chess Shout" msgstr "" #: lib/pychess/ic/managers/ChatManager.py:195 #, python-format msgid "Unofficial channel %d" msgstr "" #: lib/pychess/Utils/lutils/LBoard.py:152 #, python-format msgid "" "FEN needs 6 data fields. \n" "\n" "%s" msgstr "" #: lib/pychess/Utils/lutils/LBoard.py:154 #, python-format msgid "" "FEN needs at least 2 data fields in fenstr. \n" "\n" "%s" msgstr "" #: lib/pychess/Utils/lutils/LBoard.py:175 #, python-format msgid "" "Needs 7 slashes in piece placement field. \n" "\n" "%s" msgstr "" #: lib/pychess/Utils/lutils/LBoard.py:178 #, python-format msgid "" "Active color field must be one of w or b. \n" "\n" "%s" msgstr "" #: lib/pychess/Utils/lutils/LBoard.py:189 #, python-format msgid "" "Castling availability field is not legal. \n" "\n" "%s" msgstr "" #: lib/pychess/Utils/lutils/LBoard.py:192 #, python-format msgid "" "En passant cord is not legal. \n" "\n" "%s" msgstr "" #: lib/pychess/Utils/lutils/lmove.py:260 msgid "invalid promoted piece" msgstr "" #: lib/pychess/Utils/lutils/lmove.py:272 msgid "the move needs a piece and a cord" msgstr "" #: lib/pychess/Utils/lutils/lmove.py:306 lib/pychess/Utils/lutils/lmove.py:556 msgid "promotion move without promoted piece is incorrect" msgstr "" #: lib/pychess/Utils/lutils/lmove.py:312 #, python-format msgid "the captured cord (%s) is incorrect" msgstr "" #: lib/pychess/Utils/lutils/lmove.py:323 #, python-format msgid "the end cord (%s) is incorrect" msgstr "" #: lib/pychess/Utils/lutils/strateval.py:24 sidepanel/commentPanel.py:191 #: sidepanel/commentPanel.py:208 msgid "and" msgstr "" #: lib/pychess/Utils/lutils/strateval.py:43 msgid "draws" msgstr "" #: lib/pychess/Utils/lutils/strateval.py:45 msgid "mates" msgstr "" #: lib/pychess/Utils/lutils/strateval.py:49 msgid "puts opponent in check" msgstr "" #: lib/pychess/Utils/lutils/strateval.py:73 msgid "improves king safety" msgstr "" #: lib/pychess/Utils/lutils/strateval.py:75 msgid "slightly improves king safety" msgstr "" #: lib/pychess/Utils/lutils/strateval.py:108 msgid "moves a rook to an open file" msgstr "" #: lib/pychess/Utils/lutils/strateval.py:109 msgid "moves an rook to a half-open file" msgstr "" #: lib/pychess/Utils/lutils/strateval.py:119 #: lib/pychess/Utils/lutils/strateval.py:121 #: lib/pychess/Utils/lutils/strateval.py:124 #: lib/pychess/Utils/lutils/strateval.py:126 #, python-format msgid "moves bishop into fianchetto: %s" msgstr "" #: lib/pychess/Utils/lutils/strateval.py:132 #, python-format msgid "promotes a Pawn to a %s" msgstr "" #: lib/pychess/Utils/lutils/strateval.py:135 msgid "castles" msgstr "" #: lib/pychess/Utils/lutils/strateval.py:158 msgid "takes back material" msgstr "" #: lib/pychess/Utils/lutils/strateval.py:162 #: lib/pychess/Utils/lutils/strateval.py:170 msgid "sacrifies material" msgstr "" #: lib/pychess/Utils/lutils/strateval.py:164 msgid "exchanges material" msgstr "" #: lib/pychess/Utils/lutils/strateval.py:166 msgid "captures material" msgstr "" #: lib/pychess/Utils/lutils/strateval.py:291 #, python-format msgid "rescues a %s" msgstr "" #: lib/pychess/Utils/lutils/strateval.py:294 #, python-format msgid "threatens to win material by %s" msgstr "" #: lib/pychess/Utils/lutils/strateval.py:296 #, python-format msgid "increases the pressure on %s" msgstr "" #: lib/pychess/Utils/lutils/strateval.py:298 #, python-format msgid "defends %s" msgstr "" #: lib/pychess/Utils/lutils/strateval.py:336 #, python-format msgid "pins an enemy %(oppiece)s on the %(piece)s at %(cord)s" msgstr "" #: lib/pychess/Utils/lutils/strateval.py:369 #, python-format msgid "White has a new piece in outpost: %s" msgstr "" #: lib/pychess/Utils/lutils/strateval.py:377 #, python-format msgid "Black has a new piece in outpost: %s" msgstr "" #: lib/pychess/Utils/lutils/strateval.py:416 #, python-format msgid "%(color)s has a new passed pawn on %(cord)s" msgstr "" #: lib/pychess/Utils/lutils/strateval.py:470 msgid "half-open" msgstr "" #: lib/pychess/Utils/lutils/strateval.py:472 #, python-format msgid "in the %(x)s%(y)s file" msgstr "" #: lib/pychess/Utils/lutils/strateval.py:474 #, python-format msgid "in the %(x)s%(y)s files" msgstr "" #: lib/pychess/Utils/lutils/strateval.py:477 #, python-format msgid "%(color)s got a double pawn %(place)s" msgstr "" #: lib/pychess/Utils/lutils/strateval.py:478 #, python-format msgid "%(color)s got new double pawns %(place)s" msgstr "" #: lib/pychess/Utils/lutils/strateval.py:485 #, python-format msgid "%(color)s got an isolated pawn in the %(x)s file" msgid_plural "%(color)s got isolated pawns in the %(x)s files" msgstr[0] "" msgstr[1] "" #: lib/pychess/Utils/lutils/strateval.py:492 #, python-format msgid "%s moves pawns into stonewall formation" msgstr "" #: lib/pychess/Utils/lutils/strateval.py:507 #: lib/pychess/Utils/lutils/strateval.py:514 #, python-format msgid "%s can no longer castle" msgstr "" #: lib/pychess/Utils/lutils/strateval.py:508 #: lib/pychess/Utils/lutils/strateval.py:515 #, python-format msgid "%s can no longer castle in queenside" msgstr "" #: lib/pychess/Utils/lutils/strateval.py:510 #: lib/pychess/Utils/lutils/strateval.py:517 #, python-format msgid "%s can no longer castle in kingside" msgstr "" #: lib/pychess/Utils/lutils/strateval.py:551 #, python-format msgid "%(opcolor)s has a new trapped bishop on %(cord)s" msgstr "" #: lib/pychess/Utils/lutils/strateval.py:573 #, python-format msgid "develops a pawn: %s" msgstr "" #: lib/pychess/Utils/lutils/strateval.py:574 #, python-format msgid "brings a pawn closer to the backrow: %s" msgstr "" #: lib/pychess/Utils/lutils/strateval.py:591 #, python-format msgid "brings a %(piece)s closer to enemy king: %(cord)s" msgstr "" #: lib/pychess/Utils/lutils/strateval.py:594 #, python-format msgid "develops a %(piece)s: %(cord)s" msgstr "" #: lib/pychess/Utils/lutils/strateval.py:612 #, python-format msgid "places a %(piece)s more active: %(cord)s" msgstr "" #: lib/pychess/Utils/lutils/strateval.py:638 msgid "White should do pawn storm in right" msgstr "" #: lib/pychess/Utils/lutils/strateval.py:640 msgid "Black should do pawn storm in left" msgstr "" #: lib/pychess/Utils/lutils/strateval.py:643 msgid "White should do pawn storm in left" msgstr "" #: lib/pychess/Utils/lutils/strateval.py:645 msgid "Black should do pawn storm in right" msgstr "" #: lib/pychess/Utils/lutils/strateval.py:671 msgid "Black has a rather cramped position" msgstr "" #: lib/pychess/Utils/lutils/strateval.py:673 msgid "Black has a slightly cramped position" msgstr "" #: lib/pychess/Utils/lutils/strateval.py:675 msgid "White has a rather cramped position" msgstr "" #: lib/pychess/Utils/lutils/strateval.py:677 msgid "White has a slightly cramped position" msgstr "" #: sidepanel/annotationPanel.py:26 msgid "Annotation" msgstr "" #: sidepanel/annotationPanel.py:29 msgid "Annotated game" msgstr "" #: sidepanel/annotationPanel.py:236 msgid "Copy PGN" msgstr "" #: sidepanel/annotationPanel.py:249 msgid "Add start comment" msgstr "" #: sidepanel/annotationPanel.py:254 msgid "Add comment" msgstr "" #: sidepanel/annotationPanel.py:258 sidepanel/annotationPanel.py:316 msgid "Edit comment" msgstr "వ్యాఖ్యను సవరించు" #: sidepanel/annotationPanel.py:269 msgid "Forced move" msgstr "" #: sidepanel/annotationPanel.py:274 msgid "Add move symbol" msgstr "" #: sidepanel/annotationPanel.py:280 msgid "Unclear position" msgstr "" #: sidepanel/annotationPanel.py:289 msgid "Zugzwang" msgstr "" #: sidepanel/annotationPanel.py:290 msgid "Development adv." msgstr "" #: sidepanel/annotationPanel.py:291 msgid "Initiative" msgstr "" #: sidepanel/annotationPanel.py:292 msgid "With attack" msgstr "" #: sidepanel/annotationPanel.py:293 msgid "Compensation" msgstr "" #: sidepanel/annotationPanel.py:294 msgid "Counterplay" msgstr "" #: sidepanel/annotationPanel.py:295 msgid "Time pressure" msgstr "" #: sidepanel/annotationPanel.py:300 msgid "Add evaluation symbol" msgstr "" #: sidepanel/annotationPanel.py:304 msgid "Remove symbols" msgstr "" #: sidepanel/annotationPanel.py:911 #, python-format msgid "round %s" msgstr "" #: sidepanel/bookPanel.py:21 msgid "Hints" msgstr "" #: sidepanel/bookPanel.py:25 msgid "" "The hint panel will provide computer advice during each stage of the game" msgstr "" #: sidepanel/bookPanel.py:27 msgid "Official PyChess panel." msgstr "" #: sidepanel/bookPanel.py:87 msgid "Opening Book" msgstr "" #: sidepanel/bookPanel.py:88 msgid "" "The opening book will try to inspire you during the opening phase of the " "game by showing you common moves made by chess masters" msgstr "" #: sidepanel/bookPanel.py:139 #, python-format msgid "Analysis by %s" msgstr "" #: sidepanel/bookPanel.py:140 #, python-format msgid "" "%s will try to predict which move is best and which side has the advantage" msgstr "" #: sidepanel/bookPanel.py:142 #, python-format msgid "Threat analysis by %s" msgstr "" #: sidepanel/bookPanel.py:143 #, python-format msgid "" "%s will identify what threats would exist if it were your opponent's turn to" " move" msgstr "" #: sidepanel/bookPanel.py:159 sidepanel/bookPanel.py:269 msgid "Calculating..." msgstr "" #: sidepanel/bookPanel.py:300 msgid "" "Engine scores are in units of pawns, from White's point of view. Double " "clicking on analysis lines you can insert them into Annotation panel as " "variations." msgstr "" #: sidepanel/bookPanel.py:302 msgid "" "Adding suggestions can help you find ideas, but slows down the computer's " "analysis." msgstr "" #: sidepanel/bookPanel.py:311 msgid "Endgame Table" msgstr "" #: sidepanel/bookPanel.py:315 msgid "" "The endgame table will show exact analysis when there are few pieces on the " "board." msgstr "" #: sidepanel/bookPanel.py:364 sidepanel/bookPanel.py:367 #, python-format msgid "Mate in %d" msgstr "" #: sidepanel/bookPanel.py:554 msgid "" "In this position,\n" "there is no legal move." msgstr "" #: sidepanel/chatPanel.py:21 msgid "" "The chat panel lets you communicate with your opponent during the game, " "assuming he or she is interested" msgstr "" #: sidepanel/commentPanel.py:16 msgid "Comments" msgstr "" #: sidepanel/commentPanel.py:20 msgid "The comments panel will try to analyze and explain the moves played" msgstr "" #: sidepanel/commentPanel.py:121 msgid "Initial position" msgstr "" #: sidepanel/commentPanel.py:254 #, python-format msgid "%(color)s moves a %(piece)s to %(cord)s" msgstr "" #: sidepanel/engineOutputPanel.py:15 msgid "Engines" msgstr "యంత్రాలు" #: sidepanel/engineOutputPanel.py:20 msgid "" "The engine output panel shows the thinking output of chess engines (computer" " players) during a game" msgstr "" #: sidepanel/engineOutputPanel.py:44 msgid "No chess engines (computer players) are participating in this game." msgstr "" #: sidepanel/historyPanel.py:10 msgid "Move History" msgstr "" #: sidepanel/historyPanel.py:13 msgid "" "The moves sheet keeps track of the players' moves and lets you navigate " "through the game history" msgstr "" #: sidepanel/scorePanel.py:15 msgid "Score" msgstr "" #: sidepanel/scorePanel.py:19 msgid "" "The score panel tries to evaluate the positions and shows you a graph of the" " game progress" msgstr "" pychess-0.12.2/lang/te/LC_MESSAGES/pychess.mo0000644000175000017470000001306412653231273020711 0ustar tamasusers00000000000000H\a !8 IUfx       ,;T ]gw      "   ",E^qv(      ) 0 : E P ^ i z      )J )t  &  9 (7 ` p 1  7  0 @ W 9m 4 C @ _a4-L$j(7"<:_s3PB(524% Zga0&Nu  !-2`s$0-<23o!> @GH ,D+<'C8-"7 )#?E%.0 &!2$4=A5B *3 :;6/(F91%(white)s won the gameGame dataNewsOpen GameYour Color_Start GameAbout ChessBlackChess GameEdit commentEnginesEnter GameGame informationGuestHow to PlayHuman BeingLeave _FullscreenLoad _Recent GameLog on as _GuestManage enginesManually accept opponentNew GameOpen GameOpponent RatingPo_rts:Pre_viewPreferencesPyChess.py:RandomRatingSave GameSave Game _AsSaved gameSelect engineSelect the games you want to save:Show _ChatShow tips at startupSp_y modeThe game ended in a drawThe game has been killedThe game is pausedTimeTip Of The dayTip of the DayWhiteWhite:You can't switch colors during the game._Accept_Decline_Edit_Engines_Fullscreen_Game_Game List_Hint mode_Load Game_Log Viewer_Name:_New Game_Opponent:_Password:_Rotate Board_Save Game_Show Sidepanels_Start Game_View_Your Color:blackgnuchess:resignwhiteProject-Id-Version: pychess Report-Msgid-Bugs-To: POT-Creation-Date: 2016-01-27 13:28+0100 PO-Revision-Date: 2016-01-28 08:56+0000 Last-Translator: slav0nic Language-Team: Telugu (http://www.transifex.com/gbtami/pychess/language/te/) MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Language: te Plural-Forms: nplurals=2; plural=(n != 1); %(white)s ఆట గెలిచారుఆట దత్తాంశమువార్తలుఆటను తెరువుమీ రంగుఆటను ప్రారంభించు(_S)చదరంగం గురించినలుపుచదరంగపు ఆటవ్యాఖ్యను సవరించుయంత్రాలుఆటలోకి ప్రవేశించండిఆట సమాచారముఅతిథిఆడటం ఎలామానవుడుపూర్తితెరను విడువు (_F)ఇటీవలి ఆటను నింపు (_L)అతిథి వలె ప్రవేశించండి (_G)యంత్రాలను నిర్వహించండిప్రత్యర్థిని మానవీయంగా ఆమోదించండికొత్త ఆటఆటను తెరువుప్రత్యర్థి రేటింగుపోర్టులు (_r):మునుజూపు (_v)ప్రాధాన్యతలుపైచెస్.py:యాదృచ్ఛికంరేటింగుఆటను భద్రపరుచుఆటను ఇలా భద్రపరుచు (_A)భద్రపరచిన ఆటయంత్రాన్ని ఎంచుకోండిమీరు భద్రపరచాలనుకుంటున్న ఆటలను ఎంచుకోండి:సంభాషణను చూపించు (_C)చిట్కాలను ప్రారంభంలో చూపించుగూఢచారి రీతి (_y) ఆట డ్రాగా ముగిసిందిఆట అంతము చేయబడిందిఆట నిలిపివేయబడిందిసమయంనేటి చిట్కానేటి చిట్కాతెలుపుతెలుపు:ఆట ఆడుతున్నప్పుడు రంగులు మార్చలేరు.ఆమోదించు (_A)తిరస్కరించు (_D)సవరణ (_E)యంత్రాలు (_E)పూర్తితెర (_F)ఆట (_G)ఆట జాబితా (_G)సూచన రీతి (_H)ఆటను నింపు (_L)చిట్టా వీక్షకం (_L)పేరు (_N):కొత్త ఆట (_N)ప్రత్యర్థి (_O):సంకేతపదం (_P):బోర్డును తిప్పు (_R)ఆటను భద్రపరుచు (_S)పక్కఫలకాలను చూపించు (_S)ఆటను ప్రారంభించు (_S)వీక్షణం (_V)మీ రంగు (_Y):నలుపుగ్నూచదరంగం:రాజీనామాతెలుపుpychess-0.12.2/lang/af/0000755000175000017470000000000012653231274015064 5ustar tamasusers00000000000000pychess-0.12.2/lang/af/LC_MESSAGES/0000755000175000017470000000000012653231274016651 5ustar tamasusers00000000000000pychess-0.12.2/lang/af/LC_MESSAGES/pychess.po0000644000175000017470000024167612653216172020707 0ustar tamasusers00000000000000# SOME DESCRIPTIVE TITLE. # Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER # This file is distributed under the same license as the pychess package. # # Translators: # FIRST AUTHOR , 2008 msgid "" msgstr "" "Project-Id-Version: pychess\n" "Report-Msgid-Bugs-To: \n" "POT-Creation-Date: 2016-01-27 13:28+0100\n" "PO-Revision-Date: 2016-01-28 08:56+0000\n" "Last-Translator: slav0nic \n" "Language-Team: Afrikaans (http://www.transifex.com/gbtami/pychess/language/af/)\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" "Language: af\n" "Plural-Forms: nplurals=2; plural=(n != 1);\n" # "Plural-Forms: nplurals=INTEGER; plural=EXPRESSION;\n" #: glade/analyze_game.glade:22 msgid "Analyze game" msgstr "" #: glade/analyze_game.glade:87 msgid "Use analyzer:" msgstr "" #: glade/analyze_game.glade:122 glade/PyChess.glade:2054 msgid "Maximum analysis time in seconds:" msgstr "" #: glade/analyze_game.glade:163 msgid "" "If the analyzer finds a move where the evaluation difference (the difference" " between the evaluation for the move it thinks is the best move and the " "evaluation for the move made in the game) exceeds this value, it will add an" " annotation for that move (consisting of the engine's Principal Variation " "for the move) to the Annotation panel" msgstr "" #: glade/analyze_game.glade:164 msgid "Variation annotation creation threshold in centipawns:" msgstr "" #: glade/analyze_game.glade:198 msgid "Analyze from current position" msgstr "" #: glade/analyze_game.glade:214 msgid "Add threatening variation lines " msgstr "" #: glade/analyze_game.glade:229 glade/PyChess.glade:1459 msgid "Colorize analyzed moves" msgstr "" #: glade/analyze_game.glade:244 glade/PyChess.glade:1495 msgid "Show evaluation values" msgstr "" #: glade/discovererDialog.glade:18 msgid "PyChess is discovering your engines. Please wait." msgstr "" #: glade/discovererDialog.glade:77 msgid "PyChess.py:" msgstr "" #: glade/discovererDialog.glade:89 msgid "ShredderLinuxChess:" msgstr "" #: glade/discovererDialog.glade:101 msgid "gnuchess:" msgstr "" #: glade/fics_logon.glade:7 msgid "PyChess - Connect to Internet Chess" msgstr "" #: glade/fics_logon.glade:47 msgid "Connect to the Free Online Chess Server" msgstr "" #: glade/fics_logon.glade:129 glade/taskers.glade:394 msgid "_Password:" msgstr "_Wagwoord:" #: glade/fics_logon.glade:143 msgid "_Name:" msgstr "_Naam:" #: glade/fics_logon.glade:191 msgid "Log on as _Guest" msgstr "Teken in as _Gas" #: glade/fics_logon.glade:227 msgid "Host:" msgstr "" #: glade/fics_logon.glade:259 msgid "Po_rts:" msgstr "" #: glade/fics_logon.glade:271 msgid "Auto login on startup" msgstr "" #: glade/fics_logon.glade:385 msgid "S_ign up" msgstr "" #: glade/fics_lounge.glade:35 msgid "Challenge: " msgstr "" #: glade/fics_lounge.glade:97 msgid "Send Challenge" msgstr "" #: glade/fics_lounge.glade:133 msgid "Challenge:" msgstr "" #: glade/fics_lounge.glade:327 glade/fics_lounge.glade:2078 msgid "Lightning:" msgstr "" #: glade/fics_lounge.glade:351 glade/fics_lounge.glade:2102 msgid "Standard:" msgstr "" #: glade/fics_lounge.glade:375 glade/fics_lounge.glade:2126 msgid "Blitz:" msgstr "" #: glade/fics_lounge.glade:400 msgid "2 min, Fischer Random, Black" msgstr "" #: glade/fics_lounge.glade:422 msgid "10 min + 6 sec/move, White" msgstr "" #: glade/fics_lounge.glade:444 msgid "5 min" msgstr "" #: glade/fics_lounge.glade:480 msgid "Edit Seek" msgstr "" #: glade/fics_lounge.glade:584 lib/pychess/ic/ICLounge.py:2208 #: lib/pychess/ic/__init__.py:101 lib/pychess/Utils/GameModel.py:206 msgid "Untimed" msgstr "" #: glade/fics_lounge.glade:637 msgid "Minutes: " msgstr "" #: glade/fics_lounge.glade:665 msgid " Gain: " msgstr "" #: glade/fics_lounge.glade:703 msgid "Time control: " msgstr "" #: glade/fics_lounge.glade:716 lib/pychess/ic/FICSObjects.py:56 #: lib/pychess/ic/ICLounge.py:1137 lib/pychess/ic/ICLounge.py:2208 #: lib/pychess/ic/__init__.py:99 msgid "Standard" msgstr "" #: glade/fics_lounge.glade:757 glade/newInOut.glade:633 msgid "Time Control" msgstr "" #: glade/fics_lounge.glade:814 glade/fics_lounge.glade:1346 msgid "Don't care" msgstr "" #: glade/fics_lounge.glade:879 msgid "Your strength: " msgstr "" #: glade/fics_lounge.glade:921 msgid "(Blitz)" msgstr "" #: glade/fics_lounge.glade:951 msgid "Opponent's strength: " msgstr "" #: glade/fics_lounge.glade:1055 msgid "" "When this button is in the \"locked\" state, the relationship\n" "between \"Opponent's strength\" and \"Your strength\" will be\n" "preserved when \n" "a) your rating for the type of game sought has changed\n" "b) you change the variant or the time control" msgstr "" #: glade/fics_lounge.glade:1095 msgid "Center:" msgstr "" #: glade/fics_lounge.glade:1134 msgid "1200" msgstr "" #: glade/fics_lounge.glade:1188 msgid "Tolerance:" msgstr "" #: glade/fics_lounge.glade:1243 lib/pychess/ic/ICLounge.py:2452 msgid "Hide" msgstr "" #: glade/fics_lounge.glade:1289 msgid "Opponent Strength" msgstr "" #: glade/fics_lounge.glade:1386 lib/pychess/Database/gamelist.py:40 #: lib/pychess/ic/ICLounge.py:1357 lib/pychess/ic/ICLounge.py:1557 #: lib/pychess/ic/ICLounge.py:2108 lib/pychess/Utils/repr.py:10 #: lib/pychess/widgets/ChessClock.py:40 #: lib/pychess/widgets/TaskerManager.py:153 msgid "White" msgstr "" #: glade/fics_lounge.glade:1414 lib/pychess/Database/gamelist.py:40 #: lib/pychess/ic/ICLounge.py:1358 lib/pychess/ic/ICLounge.py:1558 #: lib/pychess/ic/ICLounge.py:2110 lib/pychess/Utils/repr.py:10 #: lib/pychess/widgets/ChessClock.py:40 #: lib/pychess/widgets/TaskerManager.py:154 msgid "Black" msgstr "" #: glade/fics_lounge.glade:1453 msgid "Your Color" msgstr "" #: glade/fics_lounge.glade:1512 msgid "Play normal chess rules" msgstr "" #: glade/fics_lounge.glade:1552 msgid "Play" msgstr "" #: glade/fics_lounge.glade:1618 glade/newInOut.glade:833 msgid "Chess Variant" msgstr "" #: glade/fics_lounge.glade:1676 msgid "Rated game" msgstr "" #: glade/fics_lounge.glade:1692 msgid "Manually accept opponent" msgstr "" #: glade/fics_lounge.glade:1722 msgid "Options" msgstr "" #: glade/fics_lounge.glade:1750 msgid "PyChess - Internet Chess: FICS" msgstr "" #: glade/fics_lounge.glade:1823 msgid "_Clear Seeks" msgstr "" #: glade/fics_lounge.glade:1847 msgid "_Accept" msgstr "_Aanvaar" #: glade/fics_lounge.glade:1871 msgid "_Decline" msgstr "" #: glade/fics_lounge.glade:2151 msgid "2 min, Fischer Random, 1800↓, Black" msgstr "" #: glade/fics_lounge.glade:2172 msgid "10 min + 6 sec/move, 1400↑, White" msgstr "" #: glade/fics_lounge.glade:2193 msgid "5 min, 1200-1800, Manual" msgstr "" #: glade/fics_lounge.glade:2247 msgid "Send all seeks" msgstr "" #: glade/fics_lounge.glade:2301 msgid "Send seek" msgstr "" #: glade/fics_lounge.glade:2337 msgid "Create Seek" msgstr "" #: glade/fics_lounge.glade:2353 msgid "_Seeks / Challenges" msgstr "" #: glade/fics_lounge.glade:2374 lib/pychess/ic/ICLounge.py:472 #: lib/pychess/ic/ICLounge.py:670 lib/pychess/ic/ICLounge.py:1357 #: lib/pychess/ic/ICLounge.py:1358 msgid "Rating" msgstr "" #: glade/fics_lounge.glade:2399 msgid "Time" msgstr "Tyd" #: glade/fics_lounge.glade:2419 msgid "Seek _Graph" msgstr "" #: glade/fics_lounge.glade:2444 msgid "0 Players Ready" msgstr "" #: glade/fics_lounge.glade:2496 msgid "Challenge" msgstr "" #: glade/fics_lounge.glade:2549 glade/fics_lounge.glade:2735 msgid "Observe" msgstr "" #: glade/fics_lounge.glade:2602 msgid "Start Private Chat" msgstr "" #: glade/fics_lounge.glade:2659 msgid "_Player List" msgstr "" #: glade/fics_lounge.glade:2792 msgid "_Game List" msgstr "" #: glade/fics_lounge.glade:2847 msgid "_My games" msgstr "" #: glade/fics_lounge.glade:2904 glade/PyChess.glade:841 msgid "Offer _Resume" msgstr "" #: glade/fics_lounge.glade:2962 glade/PyChess.glade:880 msgid "R_esign" msgstr "" #: glade/fics_lounge.glade:3006 glade/PyChess.glade:820 msgid "Offer _Draw" msgstr "" #: glade/fics_lounge.glade:3050 msgid "Offer A_bort" msgstr "" #: glade/fics_lounge.glade:3107 msgid "Pre_view" msgstr "" #: glade/fics_lounge.glade:3151 msgid "Examine" msgstr "" #: glade/fics_lounge.glade:3208 msgid "_Archived" msgstr "" #: glade/fics_lounge.glade:3313 msgid "News" msgstr "Nuus" #: glade/fics_lounge.glade:3345 msgid "Show Console" msgstr "" #: glade/fics_lounge.glade:3359 msgid "Show _Chat" msgstr "" #: glade/fics_lounge.glade:3373 msgid "_Log Off" msgstr "" #: glade/fics_lounge.glade:3393 msgid "Tools" msgstr "" #: glade/fics_lounge.glade:3428 msgid "Asymmetric Random " msgstr "" #: glade/findbar.glade:6 msgid "window1" msgstr "" #: glade/findbar.glade:21 msgid "0 of 0" msgstr "" #: glade/findbar.glade:66 msgid "Search:" msgstr "" #: glade/findbar.glade:134 msgid "_Previous" msgstr "" #: glade/findbar.glade:192 msgid "_Next" msgstr "" #: glade/newInOut.glade:45 lib/pychess/widgets/newGameDialog.py:445 msgid "New Game" msgstr "" #: glade/newInOut.glade:108 msgid "_Start Game" msgstr "_Begin Spel" #: glade/newInOut.glade:130 msgid "Copy FEN" msgstr "" #: glade/newInOut.glade:143 msgid "Clear" msgstr "" #: glade/newInOut.glade:156 msgid "Paste FEN" msgstr "" #: glade/newInOut.glade:257 msgid "_Black player:" msgstr "" #: glade/newInOut.glade:274 msgid "_White player:" msgstr "" #: glade/newInOut.glade:385 msgid "Players" msgstr "Spelers:" #: glade/newInOut.glade:436 msgid "_Untimed" msgstr "" #: glade/newInOut.glade:475 msgid "Blitz: 5 min" msgstr "" #: glade/newInOut.glade:526 msgid "Rapid: 15 min + 10 sec/move" msgstr "" #: glade/newInOut.glade:575 msgid "Normal: 40 min + 15 sec/move" msgstr "" #: glade/newInOut.glade:684 msgid "_Play Normal chess" msgstr "" #: glade/newInOut.glade:724 msgid "Play Fischer Random chess" msgstr "" #: glade/newInOut.glade:774 msgid "Play Losers chess" msgstr "" #: glade/newInOut.glade:919 msgid "Open Game" msgstr "" #: glade/newInOut.glade:1162 msgid "Initial Position" msgstr "" #: glade/newInOut.glade:1219 msgid "Enter Game Notation" msgstr "Verskaf Spel Notasie" #: glade/newInOut.glade:1314 msgid "Halfmove clock" msgstr "" #: glade/newInOut.glade:1327 msgid "En passant line" msgstr "" #: glade/newInOut.glade:1339 msgid "Side to move" msgstr "" #: glade/newInOut.glade:1351 msgid "Move number" msgstr "" #: glade/newInOut.glade:1361 msgid "Black O-O" msgstr "" #: glade/newInOut.glade:1375 msgid "Black O-O-O" msgstr "" #: glade/newInOut.glade:1389 msgid "White O-O-O" msgstr "" #: glade/newInOut.glade:1403 msgid "White O-O" msgstr "" #: glade/promotion.glade:7 msgid "Promotion" msgstr "Bevordering" #: glade/promotion.glade:49 lib/pychess/Utils/repr.py:12 msgid "Queen" msgstr "Dame" #: glade/promotion.glade:95 lib/pychess/Utils/repr.py:12 msgid "Rook" msgstr "Toring" #: glade/promotion.glade:141 lib/pychess/Utils/repr.py:12 msgid "Bishop" msgstr "Loper" #: glade/promotion.glade:187 lib/pychess/Utils/repr.py:12 msgid "Knight" msgstr "Ridder" #: glade/promotion.glade:233 lib/pychess/Utils/repr.py:12 msgid "King" msgstr "" #: glade/promotion.glade:265 msgid "Promote pawn to what?" msgstr "Bevorder pion tot wat?" #: glade/PyChess.glade:9 msgid "Chess client" msgstr "" #: glade/PyChess.glade:44 msgid "Game information" msgstr "Spel inligting" #: glade/PyChess.glade:164 msgid "Event:" msgstr "Gebeurtenis:" #: glade/PyChess.glade:178 msgid "Site:" msgstr "Tuiste:" #: glade/PyChess.glade:204 msgid "Round:" msgstr "Rondte:" #: glade/PyChess.glade:237 msgid "White:" msgstr "" #: glade/PyChess.glade:249 msgid "Black:" msgstr "" #: glade/PyChess.glade:302 msgid "Game data" msgstr "Spel data" #: glade/PyChess.glade:357 msgid "Date of game" msgstr "Datum van spel" #: glade/PyChess.glade:495 msgid "_Game" msgstr "_Spel" #: glade/PyChess.glade:502 msgid "_New Game" msgstr "_Nuwe Spel" #: glade/PyChess.glade:515 msgid "Play _Internet Chess" msgstr "" #: glade/PyChess.glade:534 msgid "_Load Game" msgstr "_Laai Spel" #: glade/PyChess.glade:550 msgid "Load _Recent Game" msgstr "" #: glade/PyChess.glade:558 msgid "Open _Database" msgstr "" #: glade/PyChess.glade:569 lib/pychess/widgets/newGameDialog.py:615 msgid "Setup Position" msgstr "" #: glade/PyChess.glade:579 msgid "Enter Game _Notation" msgstr "" #: glade/PyChess.glade:592 msgid "_Save Game" msgstr "_Stoor Spel" #: glade/PyChess.glade:606 msgid "Save Game _As" msgstr "Stoor Spel _As" #: glade/PyChess.glade:624 msgid "Share Game" msgstr "" #: glade/PyChess.glade:630 msgid "_Export Position" msgstr "" #: glade/PyChess.glade:644 msgid "_Analyze Game" msgstr "" #: glade/PyChess.glade:678 msgid "Player _Rating" msgstr "" #: glade/PyChess.glade:723 msgid "_Edit" msgstr "" #: glade/PyChess.glade:734 msgid "_Copy PGN" msgstr "" #: glade/PyChess.glade:746 msgid "_Copy FEN" msgstr "" #: glade/PyChess.glade:763 msgid "_Engines" msgstr "" #: glade/PyChess.glade:789 msgid "_Actions" msgstr "_Aksies" #: glade/PyChess.glade:800 msgid "Offer _Abort" msgstr "" #: glade/PyChess.glade:810 msgid "Offer Ad_journment" msgstr "" #: glade/PyChess.glade:831 msgid "Offer _Pause" msgstr "" #: glade/PyChess.glade:847 msgid "Offer _Undo" msgstr "" #: glade/PyChess.glade:870 msgid "_Call Flag" msgstr "" #: glade/PyChess.glade:890 msgid "Ask to _Move" msgstr "" #: glade/PyChess.glade:905 msgid "Auto Call _Flag" msgstr "" #: glade/PyChess.glade:918 msgid "_View" msgstr "" #: glade/PyChess.glade:925 msgid "_Rotate Board" msgstr "_Wentel bord" #: glade/PyChess.glade:939 msgid "_Fullscreen" msgstr "" #: glade/PyChess.glade:952 msgid "Leave _Fullscreen" msgstr "" #: glade/PyChess.glade:969 msgid "_Show Sidepanels" msgstr "" #: glade/PyChess.glade:980 msgid "_Log Viewer" msgstr "" #: glade/PyChess.glade:997 msgid "_Hint mode" msgstr "" #: glade/PyChess.glade:1009 msgid "Sp_y mode" msgstr "" #: glade/PyChess.glade:1024 msgid "_Help" msgstr "_Hulp" #: glade/PyChess.glade:1034 msgid "About Chess" msgstr "Oor skaak" #: glade/PyChess.glade:1043 msgid "How to Play" msgstr "" #: glade/PyChess.glade:1052 msgid "Translate PyChess" msgstr "" #: glade/PyChess.glade:1058 msgid "Tip of the Day" msgstr "" #: glade/PyChess.glade:1153 msgid "Default" msgstr "" #: glade/PyChess.glade:1156 msgid "Knights" msgstr "" #: glade/PyChess.glade:1167 lib/pychess/widgets/preferencesDialog.py:349 msgid "Beep" msgstr "" #: glade/PyChess.glade:1170 lib/pychess/widgets/preferencesDialog.py:350 msgid "Select sound file..." msgstr "" #: glade/PyChess.glade:1173 lib/pychess/widgets/preferencesDialog.py:348 msgid "No sound" msgstr "" #: glade/PyChess.glade:1180 msgid "Preferences" msgstr "Voorkeure" #: glade/PyChess.glade:1218 msgid "The displayed name of the first human player, e.g., John." msgstr "" #: glade/PyChess.glade:1230 msgid "Name of _first human player:" msgstr "" #: glade/PyChess.glade:1259 msgid "The displayed name of the guest player, e.g., Mary." msgstr "" #: glade/PyChess.glade:1271 msgid "Name of s_econd human player:" msgstr "" #: glade/PyChess.glade:1307 msgid "_Hide tabs when only one game is open" msgstr "" #: glade/PyChess.glade:1312 msgid "" "If set, this hides the tab in the top of the playing window, when it is not " "needed." msgstr "" #: glade/PyChess.glade:1326 msgid "_Use main app closer [x] to close all games" msgstr "" #: glade/PyChess.glade:1331 msgid "" "If set, clicking on main application window closer first time it closes all " "games." msgstr "" #: glade/PyChess.glade:1345 msgid "Auto _rotate board to current human player" msgstr "" #: glade/PyChess.glade:1350 msgid "" "If set, the board will turn after each move, to show the natural view for " "the current player." msgstr "" #: glade/PyChess.glade:1364 msgid "Auto _promote to queen" msgstr "" #: glade/PyChess.glade:1369 msgid "If set, pawn promotes to queen without promotion dialog selection." msgstr "" #: glade/PyChess.glade:1383 msgid "Face _to Face display mode" msgstr "" #: glade/PyChess.glade:1388 msgid "" "If set, the black pieces will be head down, suitable for playing against " "friends on mobile devices." msgstr "" #: glade/PyChess.glade:1402 msgid "Sho_w cords" msgstr "" #: glade/PyChess.glade:1407 msgid "" "If set, the playing board will display labels and ranks for each chess " "field. These are usable in chess notation." msgstr "" #: glade/PyChess.glade:1421 msgid "Show _captured pieces" msgstr "" #: glade/PyChess.glade:1426 msgid "If set, the captured figurines will be shown next to the board." msgstr "" #: glade/PyChess.glade:1440 msgid "Prefer figures in _notation" msgstr "" #: glade/PyChess.glade:1445 msgid "" "If set, PyChess will use figures to express moved pieces, rather than " "uppercase letters." msgstr "" #: glade/PyChess.glade:1464 msgid "If set, PyChess will colorize suboptimal analyzed moves with red." msgstr "" #: glade/PyChess.glade:1477 msgid "Show elapsed move times" msgstr "" #: glade/PyChess.glade:1482 msgid "If set, the elapsed time that a player used for the move is shown." msgstr "" #: glade/PyChess.glade:1500 msgid "If set, the hint analyzer engine evaluation value is shown." msgstr "" #: glade/PyChess.glade:1526 msgid "General Options" msgstr "" #: glade/PyChess.glade:1560 msgid "F_ull board animation" msgstr "" #: glade/PyChess.glade:1565 msgid "Animate pieces, board rotation and more. Use this on fast machines." msgstr "" #: glade/PyChess.glade:1579 msgid "Only animate _moves" msgstr "" #: glade/PyChess.glade:1584 msgid "Only animate piece moves." msgstr "" #: glade/PyChess.glade:1599 msgid "No _animation" msgstr "" #: glade/PyChess.glade:1604 msgid "Never use animation. Use this on slow machines." msgstr "" #: glade/PyChess.glade:1632 msgid "Animation" msgstr "Animasie" #: glade/PyChess.glade:1651 msgid "_General" msgstr "" #: glade/PyChess.glade:1692 msgid "Use opening _book" msgstr "" #: glade/PyChess.glade:1697 msgid "If set, PyChess will suggest best opening moves on hint panel." msgstr "" #: glade/PyChess.glade:1724 msgid "Polyglot book file:" msgstr "" #: glade/PyChess.glade:1768 msgid "Use _local tablebases" msgstr "" #: glade/PyChess.glade:1773 msgid "" "If set, PyChess will show game results for different moves in positions containing 6 or less pieces.\n" "You can download tablebase files from:\n" "http://www.olympuschess.com/egtb/gaviota/" msgstr "" #: glade/PyChess.glade:1803 msgid "Gaviota TB path:" msgstr "" #: glade/PyChess.glade:1843 msgid "Use _online tablebases" msgstr "" #: glade/PyChess.glade:1848 msgid "" "If set, PyChess will show game results for different moves in positions containing 6 or less pieces.\n" "It will search positions from http://www.k4it.de/" msgstr "" #: glade/PyChess.glade:1870 msgid "Opening, endgame" msgstr "" #: glade/PyChess.glade:1904 msgid "Use _analyzer" msgstr "gebruik _analiseerder" #: glade/PyChess.glade:1946 msgid "" "The analyzer will run in the background and analyze the game. This is " "necessary for the hint mode to work" msgstr "" #: glade/PyChess.glade:1978 msgid "Use _inverted analyzer" msgstr "Gebruik _omgekeerde analiseerder" #: glade/PyChess.glade:2020 msgid "" "The inverse analyzer will analyze the game as if your opponent was to move. " "This is necessary for the spy mode to work" msgstr "" #: glade/PyChess.glade:2096 msgid "Analyzing" msgstr "" #: glade/PyChess.glade:2118 msgid "_Hints" msgstr "" #: glade/PyChess.glade:2263 msgid "Uninstall" msgstr "" #: glade/PyChess.glade:2317 msgid "Ac_tive" msgstr "" #: glade/PyChess.glade:2367 msgid "Installed Sidepanels" msgstr "" #: glade/PyChess.glade:2382 msgid "Side_panels" msgstr "" #: glade/PyChess.glade:2440 msgid "Light Squares :" msgstr "" #: glade/PyChess.glade:2479 msgid "Dark Squares :" msgstr "" #: glade/PyChess.glade:2515 msgid "Reset Default Colours" msgstr "" #: glade/PyChess.glade:2551 msgid "Board Colours" msgstr "" #: glade/PyChess.glade:2610 msgid "Chess Sets" msgstr "" #: glade/PyChess.glade:2634 msgid "Themes" msgstr "" #: glade/PyChess.glade:2659 msgid "_Use sounds in PyChess" msgstr "_Gebruik klanke in PyChess" #: glade/PyChess.glade:2982 msgid "A player _checks:" msgstr "" #: glade/PyChess.glade:2997 msgid "A player _moves:" msgstr "" #: glade/PyChess.glade:3010 msgid "Game is _drawn:" msgstr "" #: glade/PyChess.glade:3025 msgid "Game is _lost:" msgstr "" #: glade/PyChess.glade:3040 msgid "Game is _won:" msgstr "" #: glade/PyChess.glade:3055 msgid "A player c_aptures:" msgstr "" #: glade/PyChess.glade:3084 msgid "Game is _set-up:" msgstr "" #: glade/PyChess.glade:3136 msgid "_Observed moves:" msgstr "" #: glade/PyChess.glade:3151 msgid "Observed _ends:" msgstr "" #: glade/PyChess.glade:3265 msgid "Short on _time:" msgstr "" #: glade/PyChess.glade:3317 msgid "_Invalid move:" msgstr "" #: glade/PyChess.glade:3369 msgid "Activate alarm when _remaining sec is:" msgstr "" #: glade/PyChess.glade:3416 msgid "Play Sound When..." msgstr "" #: glade/PyChess.glade:3438 msgid "_Sounds" msgstr "" #: glade/PyChess.glade:3463 msgid "_Auto save finished games" msgstr "" #: glade/PyChess.glade:3497 msgid "Save files to:" msgstr "" #: glade/PyChess.glade:3525 msgid "Use name format:" msgstr "" #: glade/PyChess.glade:3569 msgid "Names: #n1, #n2" msgstr "" #: glade/PyChess.glade:3582 msgid "Year, month, day: #y, #m, #d" msgstr "" #: glade/PyChess.glade:3619 msgid "Save elapsed move _times" msgstr "" #: glade/PyChess.glade:3644 msgid "Save analyzing engine _evaluation values" msgstr "" #: glade/PyChess.glade:3669 msgid "Save _own games only" msgstr "" #: glade/PyChess.glade:3698 msgid "Save" msgstr "" #: glade/PyChess.glade:3728 msgid "uci" msgstr "" #: glade/PyChess.glade:3731 msgid "xboard" msgstr "" #: glade/PyChess.glade:3739 msgid "Manage engines" msgstr "" #: glade/PyChess.glade:3837 msgid "Command:" msgstr "" #: glade/PyChess.glade:3851 msgid "Protocol:" msgstr "" #: glade/PyChess.glade:3865 msgid "Parameters:" msgstr "" #: glade/PyChess.glade:3878 msgid "Command line parameters needed by the engine." msgstr "" #: glade/PyChess.glade:3903 msgid "" "Engines use uci or xboard communication protocol to talk to the GUI.\n" "If it can use both you can set here which one you like." msgstr "" #: glade/PyChess.glade:3929 msgid "Working directory:" msgstr "" #: glade/PyChess.glade:3942 msgid "The directory where the engine will be started from." msgstr "" #: glade/saveGamesDialog.glade:7 msgid "Quit PyChess" msgstr "" #: glade/saveGamesDialog.glade:24 lib/pychess/widgets/ionest.py:424 msgid "Close _without Saving" msgstr "" #: glade/saveGamesDialog.glade:83 msgid "_Save %d documents" msgstr "" #: glade/saveGamesDialog.glade:141 msgid "" "There are %d games with unsaved moves. Save changes before " "closing?" msgstr "" #: glade/saveGamesDialog.glade:161 msgid "Select the games you want to save:" msgstr "" #: glade/saveGamesDialog.glade:204 msgid "If you don't save, new changes to your games will be permanently lost." msgstr "" #: glade/taskers.glade:126 msgid "_Opponent:" msgstr "" #: glade/taskers.glade:154 msgid "_Your Color:" msgstr "" #: glade/taskers.glade:219 msgid "_Start Game" msgstr "" #: glade/taskers.glade:338 msgid "Log on as G_uest" msgstr "" #: glade/taskers.glade:410 msgid "Ha_ndle:" msgstr "" #: glade/taskers.glade:469 msgid "_Connect to server" msgstr "" #: glade/tipoftheday.glade:7 msgid "Tip Of The day" msgstr "" #: glade/tipoftheday.glade:62 msgid "Show tips at startup" msgstr "" #: lib/pychess/Main.py:302 msgid "http://en.wikipedia.org/wiki/Chess" msgstr "" #: lib/pychess/Main.py:305 msgid "http://en.wikipedia.org/wiki/Rules_of_chess" msgstr "" #: lib/pychess/Main.py:370 lib/pychess/widgets/gamenanny.py:80 msgid "Welcome" msgstr "" #: lib/pychess/Database/gamelist.py:40 msgid "Id" msgstr "" #: lib/pychess/Database/gamelist.py:40 msgid "W Elo" msgstr "" #: lib/pychess/Database/gamelist.py:40 msgid "B Elo" msgstr "" #: lib/pychess/Database/gamelist.py:41 msgid "Result" msgstr "" #: lib/pychess/Database/gamelist.py:41 msgid "Event" msgstr "" #: lib/pychess/Database/gamelist.py:41 msgid "Site" msgstr "" #: lib/pychess/Database/gamelist.py:41 msgid "Round" msgstr "" #: lib/pychess/Database/gamelist.py:41 msgid "Date" msgstr "" #: lib/pychess/Database/gamelist.py:41 msgid "ECO" msgstr "" #: lib/pychess/Database/gamelist.py:62 msgid "PyChess Game Database" msgstr "" #: lib/pychess/Database/PgnImport.py:188 #, python-format msgid "The game #%s can't be loaded, because of an error parsing FEN" msgstr "" #: lib/pychess/ic/FICSConnection.py:139 msgid "The connection was broken - got \"end of file\" message" msgstr "" #: lib/pychess/ic/FICSConnection.py:140 #, python-format msgid "'%s' is not a registered name" msgstr "" #: lib/pychess/ic/FICSConnection.py:141 msgid "" "The entered password was invalid.\n" "If you forgot your password, go to http://www.freechess.org/password to request a new one over email." msgstr "" #: lib/pychess/ic/FICSConnection.py:145 #, python-format msgid "Sorry '%s' is already logged in" msgstr "" #: lib/pychess/ic/FICSConnection.py:146 #, python-format msgid "'%s' is a registered name. If it is yours, type the password." msgstr "" #: lib/pychess/ic/FICSConnection.py:147 msgid "" "Due to abuse problems, guest connections have been prevented.\n" "You can still register on http://www.freechess.org" msgstr "" #: lib/pychess/ic/FICSConnection.py:166 msgid "Connecting to server" msgstr "" #: lib/pychess/ic/FICSConnection.py:181 msgid "Logging on to server" msgstr "" #: lib/pychess/ic/FICSConnection.py:239 msgid "Setting up environment" msgstr "" #: lib/pychess/ic/FICSObjects.py:35 lib/pychess/ic/FICSObjects.py:47 #, python-format msgid "%(player)s is %(status)s" msgstr "" #: lib/pychess/ic/FICSObjects.py:46 msgid "not playing" msgstr "" #: lib/pychess/ic/FICSObjects.py:54 lib/pychess/ic/ICLounge.py:1136 #: lib/pychess/ic/ICLounge.py:2209 lib/pychess/ic/__init__.py:98 #: lib/pychess/widgets/newGameDialog.py:153 msgid "Blitz" msgstr "" #: lib/pychess/ic/FICSObjects.py:58 lib/pychess/ic/ICLounge.py:1137 #: lib/pychess/ic/ICLounge.py:2209 lib/pychess/ic/__init__.py:100 msgid "Lightning" msgstr "" #: lib/pychess/ic/FICSObjects.py:60 lib/pychess/Variants/atomic.py:15 msgid "Atomic" msgstr "" #: lib/pychess/ic/FICSObjects.py:62 lib/pychess/Variants/bughouse.py:9 msgid "Bughouse" msgstr "" #: lib/pychess/ic/FICSObjects.py:64 lib/pychess/Variants/crazyhouse.py:9 msgid "Crazyhouse" msgstr "" #: lib/pychess/ic/FICSObjects.py:66 lib/pychess/Variants/losers.py:9 msgid "Losers" msgstr "" #: lib/pychess/ic/FICSObjects.py:68 lib/pychess/Variants/suicide.py:12 msgid "Suicide" msgstr "" #: lib/pychess/ic/FICSObjects.py:70 lib/pychess/ic/__init__.py:129 msgid "Wild" msgstr "" #: lib/pychess/ic/FICSObjects.py:117 msgid "Online" msgstr "" #: lib/pychess/ic/FICSObjects.py:118 lib/pychess/ic/FICSObjects.py:143 msgid "Offline" msgstr "" #: lib/pychess/ic/FICSObjects.py:133 msgid "Available" msgstr "" #: lib/pychess/ic/FICSObjects.py:135 msgid "Playing" msgstr "" #: lib/pychess/ic/FICSObjects.py:141 msgid "Idle" msgstr "" #: lib/pychess/ic/FICSObjects.py:145 msgid "Examining" msgstr "" #: lib/pychess/ic/FICSObjects.py:147 msgid "Not Available" msgstr "" #: lib/pychess/ic/FICSObjects.py:149 msgid "Running Simul Match" msgstr "" #: lib/pychess/ic/FICSObjects.py:151 msgid "In Tournament" msgstr "" #: lib/pychess/ic/FICSObjects.py:308 lib/pychess/ic/FICSObjects.py:492 #: lib/pychess/ic/ICLounge.py:2278 msgid "Unrated" msgstr "" #: lib/pychess/ic/FICSObjects.py:491 lib/pychess/ic/ICLounge.py:670 #: lib/pychess/ic/ICLounge.py:1358 lib/pychess/ic/ICLounge.py:1558 #: lib/pychess/ic/ICLounge.py:2113 msgid "Rated" msgstr "" #: lib/pychess/ic/FICSObjects.py:498 lib/pychess/ic/ICLounge.py:2098 #, python-format msgid "%d min" msgstr "" #: lib/pychess/ic/FICSObjects.py:500 #, python-format msgid " + %d sec" msgstr "" #: lib/pychess/ic/FICSObjects.py:517 #, python-format msgid "%(player)s plays %(color)s" msgstr "" #: lib/pychess/ic/FICSObjects.py:519 lib/pychess/ic/ICLounge.py:909 msgid "white" msgstr "" #: lib/pychess/ic/FICSObjects.py:519 lib/pychess/ic/ICLounge.py:909 msgid "black" msgstr "" #: lib/pychess/ic/FICSObjects.py:565 msgid "This is a continuation of an adjourned match" msgstr "" #: lib/pychess/ic/FICSObjects.py:654 msgid "Opponent Rating" msgstr "" #: lib/pychess/ic/FICSObjects.py:656 msgid "Manual Accept" msgstr "" #: lib/pychess/ic/FICSObjects.py:810 msgid "Private" msgstr "" #: lib/pychess/ic/FICSObjects.py:930 lib/pychess/ic/ICLounge.py:527 #: lib/pychess/Savers/epd.py:139 msgid "Unknown" msgstr "" #: lib/pychess/ic/ICLogon.py:159 lib/pychess/ic/ICLogon.py:165 msgid "Connection Error" msgstr "" #: lib/pychess/ic/ICLogon.py:161 msgid "Log on Error" msgstr "" #: lib/pychess/ic/ICLogon.py:163 msgid "Connection was closed" msgstr "" #: lib/pychess/ic/ICLogon.py:169 msgid "Address Error" msgstr "" #: lib/pychess/ic/ICLogon.py:172 msgid "Auto-logout" msgstr "" #: lib/pychess/ic/ICLogon.py:173 msgid "You have been logged out because you were idle more than 60 minutes" msgstr "" #: lib/pychess/ic/ICLounge.py:222 msgid "You have to set kibitz on to see bot messages here." msgstr "" #: lib/pychess/ic/ICLounge.py:241 msgid "" "You may only have 3 outstanding seeks at the same time. If you want to add a" " new seek you must clear your currently active seeks. Clear your seeks?" msgstr "" #: lib/pychess/ic/ICLounge.py:258 msgid "You can't touch this! You are examining a game." msgstr "" #: lib/pychess/ic/ICLounge.py:270 msgid " has declined your offer for a match" msgstr "" #: lib/pychess/ic/ICLounge.py:283 msgid " is censoring you" msgstr "" #: lib/pychess/ic/ICLounge.py:296 msgid " noplay listing you" msgstr "" #: lib/pychess/ic/ICLounge.py:311 msgid " uses a formula not fitting your match request:" msgstr "" #: lib/pychess/ic/ICLounge.py:325 msgid "to manual accept" msgstr "" #: lib/pychess/ic/ICLounge.py:327 msgid "to automatic accept" msgstr "" #: lib/pychess/ic/ICLounge.py:329 msgid "rating range now" msgstr "" #: lib/pychess/ic/ICLounge.py:330 msgid "Seek updated" msgstr "" #: lib/pychess/ic/ICLounge.py:342 msgid "Your seeks have been removed" msgstr "" #: lib/pychess/ic/ICLounge.py:363 msgid " has arrived" msgstr "" #: lib/pychess/ic/ICLounge.py:370 msgid " has departed" msgstr "" #: lib/pychess/ic/ICLounge.py:374 msgid " is present" msgstr "" #: lib/pychess/ic/ICLounge.py:391 sidepanel/chatPanel.py:17 msgid "Chat" msgstr "" #: lib/pychess/ic/ICLounge.py:472 sidepanel/bookPanel.py:366 msgid "Win" msgstr "" #: lib/pychess/ic/ICLounge.py:472 sidepanel/bookPanel.py:360 msgid "Draw" msgstr "" #: lib/pychess/ic/ICLounge.py:472 sidepanel/bookPanel.py:363 msgid "Loss" msgstr "" #: lib/pychess/ic/ICLounge.py:482 msgid "" "On FICS, your \"Wild\" rating encompasses all of the following variants at " "all time controls:\n" msgstr "" #: lib/pychess/ic/ICLounge.py:494 msgid "Sanctions" msgstr "" #: lib/pychess/ic/ICLounge.py:499 msgid "Email" msgstr "" #: lib/pychess/ic/ICLounge.py:504 msgid "Spent" msgstr "" #: lib/pychess/ic/ICLounge.py:506 msgid "online in total" msgstr "" #: lib/pychess/ic/ICLounge.py:512 msgid "Ping" msgstr "" #: lib/pychess/ic/ICLounge.py:517 msgid "Connecting" msgstr "" #: lib/pychess/ic/ICLounge.py:544 msgid "" "You are currently logged in as a guest.\n" "A guest can't play rated games and therefore isn't able to play as many of the types of matches offered as a registered user. To register an account, go to http://www.freechess.org/Register/index.html." msgstr "" #: lib/pychess/ic/ICLounge.py:669 lib/pychess/ic/ICLounge.py:1136 msgid "Name" msgstr "" #: lib/pychess/ic/ICLounge.py:670 lib/pychess/ic/ICLounge.py:1358 #: lib/pychess/ic/ICLounge.py:1558 msgid "Type" msgstr "" #: lib/pychess/ic/ICLounge.py:670 lib/pychess/ic/ICLounge.py:1558 msgid "Clock" msgstr "" #: lib/pychess/ic/ICLounge.py:726 lib/pychess/ic/ICLounge.py:923 #: lib/pychess/Players/Human.py:250 msgid "Accept" msgstr "" #: lib/pychess/ic/ICLounge.py:728 msgid "Assess" msgstr "" #: lib/pychess/ic/ICLounge.py:734 msgid "Archived" msgstr "" #: lib/pychess/ic/ICLounge.py:848 #, python-format msgid "Active seeks: %d" msgstr "" #: lib/pychess/ic/ICLounge.py:897 #, python-format msgid "" " would like to resume your adjourned %(time)s %(gametype)s " "game." msgstr "" #: lib/pychess/ic/ICLounge.py:902 #, python-format msgid "" " challenges you to a %(time)s %(rated)s %(gametype)s game" msgstr "" #: lib/pychess/ic/ICLounge.py:907 #, python-format msgid " where %(player)s plays %(color)s." msgstr "" #: lib/pychess/ic/ICLounge.py:924 lib/pychess/Players/Human.py:251 msgid "Decline" msgstr "" #: lib/pychess/ic/ICLounge.py:1065 msgid " min" msgstr "" #: lib/pychess/ic/ICLounge.py:1137 msgid "Status" msgstr "" #: lib/pychess/ic/ICLounge.py:1203 lib/pychess/ic/ICLounge.py:1233 #, python-format msgid "Players: %d" msgstr "" #: lib/pychess/ic/ICLounge.py:1469 #, python-format msgid "Games running: %d" msgstr "" #: lib/pychess/ic/ICLounge.py:1559 msgid "Date/Time" msgstr "" #: lib/pychess/ic/ICLounge.py:1614 #, python-format msgid "" " with whom you have an adjourned %(timecontrol)s %(gametype)s " "game is online." msgstr "" #: lib/pychess/ic/ICLounge.py:1635 msgid "Request Continuation" msgstr "" #: lib/pychess/ic/ICLounge.py:1637 msgid "Examine Adjourned Game" msgstr "" #: lib/pychess/ic/ICLounge.py:1965 msgid "" "The chain button is disabled because you are logged in as a guest. Guests " "can't establish ratings, and the chain button's state has no effect when " "there is no rating to which to tie \"Opponent Strength\" to" msgstr "" #: lib/pychess/ic/ICLounge.py:2006 msgid "Challenge: " msgstr "" #: lib/pychess/ic/ICLounge.py:2044 msgid "If set you can refuse players accepting your seek" msgstr "" #: lib/pychess/ic/ICLounge.py:2048 lib/pychess/ic/ICLounge.py:2051 msgid "This option is not applicable because you're challenging a player" msgstr "" #: lib/pychess/ic/ICLounge.py:2064 msgid "Edit Seek: " msgstr "" #: lib/pychess/ic/ICLounge.py:2095 #, python-format msgid "%(minutes)d min + %(gain)d sec/move" msgstr "" #: lib/pychess/ic/ICLounge.py:2116 msgid "Manual" msgstr "" #: lib/pychess/ic/ICLounge.py:2256 msgid "Any strength" msgstr "" #: lib/pychess/ic/ICLounge.py:2308 msgid "You can't play rated games because you are logged in as a guest" msgstr "" #: lib/pychess/ic/ICLounge.py:2312 msgid "You can't play rated games because \"Untimed\" is checked, " msgstr "" #: lib/pychess/ic/ICLounge.py:2313 msgid "and on FICS, untimed games can't be rated" msgstr "" #: lib/pychess/ic/ICLounge.py:2317 msgid "This option is not available because you're challenging a guest, " msgstr "" #: lib/pychess/ic/ICLounge.py:2318 msgid "and guests can't play rated games" msgstr "" #: lib/pychess/ic/ICLounge.py:2332 lib/pychess/Variants/shuffle.py:16 #: lib/pychess/widgets/newGameDialog.py:266 msgid "Shuffle" msgstr "" #: lib/pychess/ic/ICLounge.py:2333 lib/pychess/widgets/newGameDialog.py:267 msgid "Other (standard rules)" msgstr "" #: lib/pychess/ic/ICLounge.py:2334 lib/pychess/widgets/newGameDialog.py:268 msgid "Other (non standard rules)" msgstr "" #: lib/pychess/ic/ICLounge.py:2421 msgid "You can't select a variant because \"Untimed\" is checked, " msgstr "" #: lib/pychess/ic/ICLounge.py:2422 msgid "and on FICS, untimed games have to be normal chess rules" msgstr "" #: lib/pychess/ic/ICLounge.py:2454 msgid "Change Tolerance" msgstr "" #: lib/pychess/ic/__init__.py:102 msgid "Examined" msgstr "" #: lib/pychess/ic/__init__.py:103 msgid "Other" msgstr "" #: lib/pychess/ic/__init__.py:182 msgid "Administrator" msgstr "" #: lib/pychess/ic/__init__.py:182 msgid "Blindfold Account" msgstr "" #: lib/pychess/ic/__init__.py:182 msgid "Computer" msgstr "" #: lib/pychess/ic/__init__.py:183 msgid "Team Account" msgstr "" #: lib/pychess/ic/__init__.py:183 msgid "Unregistered" msgstr "" #: lib/pychess/ic/__init__.py:183 msgid "Chess Advisor" msgstr "" #: lib/pychess/ic/__init__.py:184 msgid "Service Representative" msgstr "" #: lib/pychess/ic/__init__.py:184 msgid "Tournament Director" msgstr "" #: lib/pychess/ic/__init__.py:184 msgid "Mamer Manager" msgstr "" #: lib/pychess/ic/__init__.py:185 msgid "Grand Master" msgstr "" #: lib/pychess/ic/__init__.py:185 msgid "International Master" msgstr "" #: lib/pychess/ic/__init__.py:185 msgid "FIDE Master" msgstr "" #: lib/pychess/ic/__init__.py:186 msgid "Woman Grand Master" msgstr "" #: lib/pychess/ic/__init__.py:186 msgid "Woman International Master" msgstr "" #: lib/pychess/ic/__init__.py:186 msgid "Woman FIDE Master" msgstr "" #: lib/pychess/ic/__init__.py:187 msgid "Dummy Account" msgstr "" #: lib/pychess/ic/__init__.py:191 msgid "*" msgstr "" #: lib/pychess/ic/__init__.py:191 lib/pychess/Utils/repr.py:14 msgid "B" msgstr "" #: lib/pychess/ic/__init__.py:191 msgid "C" msgstr "" #: lib/pychess/ic/__init__.py:192 msgid "T" msgstr "" #: lib/pychess/ic/__init__.py:192 msgid "U" msgstr "" #: lib/pychess/ic/__init__.py:192 msgid "CA" msgstr "" #: lib/pychess/ic/__init__.py:193 msgid "SR" msgstr "" #: lib/pychess/ic/__init__.py:193 msgid "TD" msgstr "" #: lib/pychess/ic/__init__.py:193 msgid "TM" msgstr "" #: lib/pychess/ic/__init__.py:194 msgid "GM" msgstr "" #: lib/pychess/ic/__init__.py:194 msgid "IM" msgstr "" #: lib/pychess/ic/__init__.py:194 msgid "FM" msgstr "" #: lib/pychess/ic/__init__.py:195 msgid "WGM" msgstr "" #: lib/pychess/ic/__init__.py:195 msgid "WIM" msgstr "" #: lib/pychess/ic/__init__.py:195 msgid "WFM" msgstr "" #: lib/pychess/ic/__init__.py:195 msgid "D" msgstr "" #: lib/pychess/ic/__init__.py:195 msgid "H" msgstr "" #: lib/pychess/ic/__init__.py:195 msgid "CM" msgstr "" #: lib/pychess/ic/__init__.py:195 msgid "FA" msgstr "" #: lib/pychess/ic/__init__.py:195 msgid "NM" msgstr "" #: lib/pychess/Players/CECPEngine.py:857 #, python-format msgid "The engine %s reports an error:" msgstr "" #: lib/pychess/Players/Human.py:20 msgid "Your opponent has offered you a draw." msgstr "" #: lib/pychess/Players/Human.py:21 msgid "" "Your opponent has offered you a draw. If you accept this offer, the game " "will end with a score of 1/2 - 1/2." msgstr "" #: lib/pychess/Players/Human.py:23 msgid "Your opponent wants to abort the game." msgstr "" #: lib/pychess/Players/Human.py:24 msgid "" "Your opponent has asked that the game be aborted. If you accept this offer, " "the game will end with no rating change." msgstr "" #: lib/pychess/Players/Human.py:26 msgid "Your opponent wants to adjourn the game." msgstr "" #: lib/pychess/Players/Human.py:27 msgid "" "Your opponent has asked that the game be adjourned. If you accept this " "offer, the game will be adjourned and you can resume it later (when your " "opponent is online and both players agree to resume)." msgstr "" #: lib/pychess/Players/Human.py:29 #, python-format msgid "Your opponent wants to undo %s move(s)." msgstr "" #: lib/pychess/Players/Human.py:30 #, python-format msgid "" "Your opponent has asked that the last %s move(s) be undone. If you accept " "this offer, the game will continue from the earlier position." msgstr "" #: lib/pychess/Players/Human.py:32 msgid "Your opponent wants to pause the game." msgstr "" #: lib/pychess/Players/Human.py:33 msgid "" "Your opponent has asked that the game be paused. If you accept this offer, " "the game clock will be paused until both players agree to resume the game." msgstr "" #: lib/pychess/Players/Human.py:35 msgid "Your opponent wants to resume the game." msgstr "" #: lib/pychess/Players/Human.py:36 msgid "" "Your opponent has asked that the game be resumed. If you accept this offer, " "the game clock will continue from where it was paused." msgstr "" #: lib/pychess/Players/Human.py:40 msgid "The resignation" msgstr "" #: lib/pychess/Players/Human.py:41 msgid "The flag call" msgstr "" #: lib/pychess/Players/Human.py:42 msgid "The draw offer" msgstr "" #: lib/pychess/Players/Human.py:43 msgid "The abort offer" msgstr "" #: lib/pychess/Players/Human.py:44 msgid "The adjourn offer" msgstr "" #: lib/pychess/Players/Human.py:45 msgid "The pause offer" msgstr "" #: lib/pychess/Players/Human.py:46 msgid "The resume offer" msgstr "" #: lib/pychess/Players/Human.py:47 msgid "The offer to switch sides" msgstr "" #: lib/pychess/Players/Human.py:48 msgid "The takeback offer" msgstr "" #: lib/pychess/Players/Human.py:52 msgid "resign" msgstr "" #: lib/pychess/Players/Human.py:53 msgid "call your opponents flag" msgstr "" #: lib/pychess/Players/Human.py:54 msgid "offer a draw" msgstr "" #: lib/pychess/Players/Human.py:55 msgid "offer an abort" msgstr "" #: lib/pychess/Players/Human.py:56 msgid "offer to adjourn" msgstr "" #: lib/pychess/Players/Human.py:57 msgid "offer a pause" msgstr "" #: lib/pychess/Players/Human.py:58 msgid "offer to resume" msgstr "" #: lib/pychess/Players/Human.py:59 msgid "offer to switch sides" msgstr "" #: lib/pychess/Players/Human.py:60 msgid "offer a takeback" msgstr "" #: lib/pychess/Players/Human.py:61 msgid "ask your opponent to move" msgstr "" #: lib/pychess/Players/Human.py:66 msgid "Your opponent is not out of time." msgstr "" #: lib/pychess/Players/Human.py:68 msgid "The clock hasn't been started yet." msgstr "" #: lib/pychess/Players/Human.py:70 msgid "You can't switch colors during the game." msgstr "" #: lib/pychess/Players/Human.py:72 msgid "You have tried to undo too many moves." msgstr "" #: lib/pychess/Players/Human.py:180 msgid "Your opponent asks you to hurry!" msgstr "" #: lib/pychess/Players/Human.py:181 msgid "" "Generally this means nothing, as the game is time-based, but if you want to " "please your opponent, perhaps you should get going." msgstr "" #: lib/pychess/Players/Human.py:259 #, python-format msgid "%s was declined by your opponent" msgstr "" #: lib/pychess/Players/Human.py:260 #, python-format msgid "Resend %s?" msgstr "" #: lib/pychess/Players/Human.py:267 msgid "Resend" msgstr "" #: lib/pychess/Players/Human.py:275 #, python-format msgid "%s was withdrawn by your opponent" msgstr "" #: lib/pychess/Players/Human.py:276 msgid "Your opponent seems to have changed their mind." msgstr "" #: lib/pychess/Players/Human.py:290 #, python-format msgid "Unable to accept %s" msgstr "" #: lib/pychess/Players/Human.py:291 msgid "Probably because it has been withdrawn." msgstr "" #: lib/pychess/Players/Human.py:298 #, python-format msgid "%s returns an error" msgstr "" #: lib/pychess/Savers/chessalpha2.py:12 msgid "Chess Alpha 2 Diagram" msgstr "" #: lib/pychess/Savers/chesspastebin.py:39 msgid "Game shared at " msgstr "" #: lib/pychess/Savers/chesspastebin.py:41 msgid "(Link is available on clipboard.)" msgstr "" #: lib/pychess/Savers/database.py:19 msgid "PyChess database" msgstr "" #: lib/pychess/Savers/epd.py:12 msgid "Chess Position" msgstr "" #: lib/pychess/Savers/fen.py:12 msgid "Simple Chess Position" msgstr "" #: lib/pychess/Savers/fen.py:44 lib/pychess/Savers/pgn.py:329 msgid "The game can't be loaded, because of an error parsing FEN" msgstr "" #: lib/pychess/Savers/pgnbase.py:100 #, python-format msgid "" "The game can't be read to end, because of an error parsing move %(moveno)s " "'%(notation)s'." msgstr "" #: lib/pychess/Savers/pgnbase.py:102 #, python-format msgid "The move failed because %s." msgstr "" #: lib/pychess/Savers/pgnbase.py:110 #, python-format msgid "Error parsing move %(moveno)s %(mstr)s" msgstr "" #: lib/pychess/Savers/pgn.py:28 msgid "Chess Game" msgstr "" #: lib/pychess/Savers/pgn.py:362 msgid "Invalid move." msgstr "" #: lib/pychess/Savers/png.py:15 msgid "Png image" msgstr "" #: lib/pychess/System/ping.py:31 msgid "Destination Host Unreachable" msgstr "" #: lib/pychess/System/ping.py:74 msgid "Died" msgstr "" #: lib/pychess/Utils/GameModel.py:147 msgid "Local Event" msgstr "" #: lib/pychess/Utils/GameModel.py:148 msgid "Local Site" msgstr "" #: lib/pychess/Utils/repr.py:12 msgid "Pawn" msgstr "" #: lib/pychess/Utils/repr.py:14 msgid "P" msgstr "" #: lib/pychess/Utils/repr.py:14 msgid "N" msgstr "" #: lib/pychess/Utils/repr.py:14 msgid "R" msgstr "" #: lib/pychess/Utils/repr.py:14 msgid "Q" msgstr "" #: lib/pychess/Utils/repr.py:14 msgid "K" msgstr "" #: lib/pychess/Utils/repr.py:17 msgid "The game ended in a draw" msgstr "" #: lib/pychess/Utils/repr.py:18 #, python-format msgid "%(white)s won the game" msgstr "" #: lib/pychess/Utils/repr.py:19 #, python-format msgid "%(black)s won the game" msgstr "" #: lib/pychess/Utils/repr.py:20 msgid "The game has been killed" msgstr "" #: lib/pychess/Utils/repr.py:21 msgid "The game has been adjourned" msgstr "" #: lib/pychess/Utils/repr.py:22 msgid "The game has been aborted" msgstr "" #: lib/pychess/Utils/repr.py:26 msgid "Because neither player has sufficient material to mate" msgstr "" #: lib/pychess/Utils/repr.py:27 msgid "Because the same position was repeated three times in a row" msgstr "" #: lib/pychess/Utils/repr.py:28 msgid "Because the last 50 moves brought nothing new" msgstr "" #: lib/pychess/Utils/repr.py:29 msgid "Because both players ran out of time" msgstr "" #: lib/pychess/Utils/repr.py:30 #, python-format msgid "Because %(mover)s stalemated" msgstr "" #: lib/pychess/Utils/repr.py:31 msgid "Because both players agreed to a draw" msgstr "" #: lib/pychess/Utils/repr.py:32 lib/pychess/Utils/repr.py:42 msgid "Because of adjudication by an admin" msgstr "" #: lib/pychess/Utils/repr.py:33 msgid "Because the game exceed the max length" msgstr "" #: lib/pychess/Utils/repr.py:34 #, python-format msgid "" "Because %(white)s ran out of time and %(black)s has insufficient material to" " mate" msgstr "" #: lib/pychess/Utils/repr.py:35 #, python-format msgid "" "Because %(black)s ran out of time and %(white)s has insufficient material to" " mate" msgstr "" #: lib/pychess/Utils/repr.py:36 msgid "Because both players have the same amount of pieces" msgstr "" #: lib/pychess/Utils/repr.py:38 #, python-format msgid "Because %(loser)s resigned" msgstr "" #: lib/pychess/Utils/repr.py:39 #, python-format msgid "Because %(loser)s ran out of time" msgstr "" #: lib/pychess/Utils/repr.py:40 #, python-format msgid "Because %(loser)s was checkmated" msgstr "" #: lib/pychess/Utils/repr.py:41 #, python-format msgid "Because %(loser)s disconnected" msgstr "" #: lib/pychess/Utils/repr.py:43 #, python-format msgid "Because %(winner)s has fewer pieces" msgstr "" #: lib/pychess/Utils/repr.py:44 #, python-format msgid "Because %(winner)s lost all pieces" msgstr "" #: lib/pychess/Utils/repr.py:45 #, python-format msgid "Because %(loser)s king exploded" msgstr "" #: lib/pychess/Utils/repr.py:46 #, python-format msgid "Because %(winner)s king reached the center" msgstr "" #: lib/pychess/Utils/repr.py:47 #, python-format msgid "Because %(winner)s was giving check 3 times" msgstr "" #: lib/pychess/Utils/repr.py:49 msgid "Because a player lost connection" msgstr "" #: lib/pychess/Utils/repr.py:50 msgid "Because both players agreed to an adjournment" msgstr "" #: lib/pychess/Utils/repr.py:51 msgid "Because the server was shut down" msgstr "" #: lib/pychess/Utils/repr.py:52 msgid "" "Because a player lost connection and the other player requested adjournment" msgstr "" #: lib/pychess/Utils/repr.py:53 #, python-format msgid "" "Because %(black)s lost connection to the server and %(white)s requested " "adjournment" msgstr "" #: lib/pychess/Utils/repr.py:54 #, python-format msgid "" "Because %(white)s lost connection to the server and %(black)s requested " "adjournment" msgstr "" #: lib/pychess/Utils/repr.py:55 #, python-format msgid "Because %(white)s lost connection to the server" msgstr "" #: lib/pychess/Utils/repr.py:56 #, python-format msgid "Because %(black)s lost connection to the server" msgstr "" #: lib/pychess/Utils/repr.py:58 msgid "Because of adjudication by an admin. No rating changes have occurred." msgstr "" #: lib/pychess/Utils/repr.py:59 msgid "" "Because both players agreed to abort the game. No rating changes have " "occurred." msgstr "" #: lib/pychess/Utils/repr.py:60 msgid "Because of courtesy by a player. No rating changes have occurred." msgstr "" #: lib/pychess/Utils/repr.py:61 msgid "" "Because a player aborted the game. Either player can abort the game without " "the other's consent before the second move. No rating changes have occurred." msgstr "" #: lib/pychess/Utils/repr.py:62 msgid "" "Because a player disconnected and there are too few moves to warrant " "adjournment. No rating changes have occurred." msgstr "" #: lib/pychess/Utils/repr.py:63 msgid "Because the server was shut down. No rating changes have occurred." msgstr "" #: lib/pychess/Utils/repr.py:65 #, python-format msgid "Because the %(white)s engine died" msgstr "" #: lib/pychess/Utils/repr.py:66 #, python-format msgid "Because the %(black)s engine died" msgstr "" #: lib/pychess/Utils/repr.py:67 msgid "Because the connection to the server was lost" msgstr "" #: lib/pychess/Utils/repr.py:68 msgid "The reason is unknown" msgstr "" #: lib/pychess/Utils/TimeModel.py:229 msgid "min" msgstr "" #: lib/pychess/Utils/TimeModel.py:231 msgid "sec" msgstr "" #: lib/pychess/Variants/asean.py:12 msgid "" "ASEAN: http://www.ncf-" "phil.org/downloadables/2014/May/Asean_chess/Laws_of_ASEAN_Chess_2011_Nov_26.doc" msgstr "" #: lib/pychess/Variants/asean.py:13 msgid "ASEAN" msgstr "" #: lib/pychess/Variants/asean.py:33 msgid "Makruk: http://en.wikipedia.org/wiki/Makruk" msgstr "" #: lib/pychess/Variants/asean.py:34 msgid "Makruk" msgstr "" #: lib/pychess/Variants/asean.py:60 msgid "Cambodian: http://www.khmerinstitute.org/culture/ok.html" msgstr "" #: lib/pychess/Variants/asean.py:61 msgid "Cambodian" msgstr "" #: lib/pychess/Variants/asean.py:86 msgid "" "Ai-Wok: http://www.open-" "aurec.com/wbforum/viewtopic.php?p=199364&sid=20963a1de2c164050de019e5ed6bf7c4#p199364" msgstr "" #: lib/pychess/Variants/asean.py:87 msgid "Ai-Wok" msgstr "" #: lib/pychess/Variants/asean.py:111 msgid "Sittuyin: http://en.wikipedia.org/wiki/Sittuyin" msgstr "" #: lib/pychess/Variants/asean.py:112 msgid "Sittuyin" msgstr "" #: lib/pychess/Variants/asymmetricrandom.py:12 msgid "" "FICS wild/4: http://www.freechess.org/Help/HelpFiles/wild.html\n" "* Randomly chosen pieces (two queens or three rooks possible)\n" "* Exactly one king of each color\n" "* Pieces placed randomly behind the pawns, SUBJECT TO THE CONSTRAINT THAT THE BISHOPS ARE BALANCED\n" "* No castling\n" "* Black's arrangement DOES NOT mirrors white's" msgstr "" #: lib/pychess/Variants/asymmetricrandom.py:18 msgid "Asymmetric Random" msgstr "" #: lib/pychess/Variants/atomic.py:14 msgid "FICS atomic: http://www.freechess.org/Help/HelpFiles/atomic.html" msgstr "" #: lib/pychess/Variants/blindfold.py:7 msgid "" "Classic chess rules with hidden figurines\n" "http://en.wikipedia.org/wiki/Blindfold_chess" msgstr "" #: lib/pychess/Variants/blindfold.py:9 #: lib/pychess/widgets/newGameDialog.py:264 msgid "Blindfold" msgstr "" #: lib/pychess/Variants/blindfold.py:18 msgid "" "Classic chess rules with hidden pawns\n" "http://en.wikipedia.org/wiki/Blindfold_chess" msgstr "" #: lib/pychess/Variants/blindfold.py:20 msgid "Hidden pawns" msgstr "" #: lib/pychess/Variants/blindfold.py:29 msgid "" "Classic chess rules with hidden pieces\n" "http://en.wikipedia.org/wiki/Blindfold_chess" msgstr "" #: lib/pychess/Variants/blindfold.py:31 msgid "Hidden pieces" msgstr "" #: lib/pychess/Variants/blindfold.py:40 msgid "" "Classic chess rules with all pieces white\n" "http://en.wikipedia.org/wiki/Blindfold_chess" msgstr "" #: lib/pychess/Variants/blindfold.py:42 msgid "All white" msgstr "" #: lib/pychess/Variants/bughouse.py:8 msgid "FICS bughouse: http://www.freechess.org/Help/HelpFiles/bughouse.html" msgstr "" #: lib/pychess/Variants/corner.py:12 msgid "" "http://brainking.com/en/GameRules?tp=2\n" "* Placement of the pieces on the 1st and 8th row are randomized\n" "* The king is in the right hand corner\n" "* Bishops must start on opposite color squares\n" "* Black's starting position is obtained by rotating white's position 180 degrees around the board's center\n" "* No castling" msgstr "" #: lib/pychess/Variants/corner.py:18 msgid "Corner" msgstr "" #: lib/pychess/Variants/crazyhouse.py:8 msgid "" "FICS crazyhouse: http://www.freechess.org/Help/HelpFiles/crazyhouse.html" msgstr "" #: lib/pychess/Variants/euroshogi.py:9 msgid "EuroShogi: http://en.wikipedia.org/wiki/EuroShogi" msgstr "" #: lib/pychess/Variants/euroshogi.py:10 msgid "EuroShogi" msgstr "" #: lib/pychess/Variants/fischerandom.py:18 msgid "" "http://en.wikipedia.org/wiki/Chess960\n" "FICS wild/fr: http://www.freechess.org/Help/HelpFiles/wild.html" msgstr "" #: lib/pychess/Variants/fischerandom.py:20 msgid "Fischer Random" msgstr "" #: lib/pychess/Variants/kingofthehill.py:8 msgid "" "Bringing your king legally to the center (e4, d4, e5, d5) instantly wins the game!\n" "Normal rules apply in other cases and checkmate also ends the game." msgstr "" #: lib/pychess/Variants/kingofthehill.py:10 msgid "King of the hill" msgstr "" #: lib/pychess/Variants/knightodds.py:8 msgid "One player starts with one less knight piece" msgstr "" #: lib/pychess/Variants/knightodds.py:9 msgid "Knight odds" msgstr "" #: lib/pychess/Variants/losers.py:8 msgid "FICS losers: http://www.freechess.org/Help/HelpFiles/losers_chess.html" msgstr "" #: lib/pychess/Variants/normal.py:4 msgid "" "Classic chess rules\n" "http://en.wikipedia.org/wiki/Chess" msgstr "" #: lib/pychess/Variants/normal.py:6 lib/pychess/widgets/newGameDialog.py:157 msgid "Normal" msgstr "" #: lib/pychess/Variants/pawnodds.py:8 msgid "One player starts with one less pawn piece" msgstr "" #: lib/pychess/Variants/pawnodds.py:9 msgid "Pawn odds" msgstr "" #: lib/pychess/Variants/pawnspassed.py:11 msgid "" "FICS wild/8a: http://www.freechess.org/Help/HelpFiles/wild.html\n" "White pawns start on 5th rank and black pawns on the 4th rank" msgstr "" #: lib/pychess/Variants/pawnspassed.py:13 msgid "Pawns Passed" msgstr "" #: lib/pychess/Variants/pawnspushed.py:10 msgid "" "FICS wild/8: http://www.freechess.org/Help/HelpFiles/wild.html\n" "Pawns start on 4th and 5th ranks rather than 2nd and 7th" msgstr "" #: lib/pychess/Variants/pawnspushed.py:12 msgid "Pawns Pushed" msgstr "" #: lib/pychess/Variants/queenodds.py:8 msgid "One player starts with one less queen piece" msgstr "" #: lib/pychess/Variants/queenodds.py:9 msgid "Queen odds" msgstr "" #: lib/pychess/Variants/randomchess.py:11 msgid "" "FICS wild/3: http://www.freechess.org/Help/HelpFiles/wild.html\n" "* Randomly chosen pieces (two queens or three rooks possible)\n" "* Exactly one king of each color\n" "* Pieces placed randomly behind the pawns\n" "* No castling\n" "* Black's arrangement mirrors white's" msgstr "" #: lib/pychess/Variants/randomchess.py:17 #: lib/pychess/widgets/TaskerManager.py:155 msgid "Random" msgstr "" #: lib/pychess/Variants/rookodds.py:8 msgid "One player starts with one less rook piece" msgstr "" #: lib/pychess/Variants/rookodds.py:9 msgid "Rook odds" msgstr "" #: lib/pychess/Variants/shuffle.py:11 msgid "" "xboard nocastle: http://home.hccnet.nl/h.g.muller/engine-intf.html#8\n" "FICS wild/2: http://www.freechess.org/Help/HelpFiles/wild.html\n" "* Random arrangement of the pieces behind the pawns\n" "* No castling\n" "* Black's arrangement mirrors white's" msgstr "" #: lib/pychess/Variants/suicide.py:11 msgid "" "FICS suicide: http://www.freechess.org/Help/HelpFiles/suicide_chess.html" msgstr "" #: lib/pychess/Variants/theban.py:10 msgid "" "Variant developed by Kai Laskos: " "http://talkchess.com/forum/viewtopic.php?t=40990" msgstr "" #: lib/pychess/Variants/theban.py:11 msgid "Theban" msgstr "" #: lib/pychess/Variants/threecheck.py:10 msgid "Win by giving check 3 times" msgstr "" #: lib/pychess/Variants/threecheck.py:11 msgid "Three-check" msgstr "" #: lib/pychess/Variants/upsidedown.py:10 msgid "" "FICS wild/5: http://www.freechess.org/Help/HelpFiles/wild.html\n" "http://en.wikipedia.org/wiki/Chess_variant#Chess_with_different_starting_positions\n" "Pawns start on their 7th rank rather than their 2nd rank!" msgstr "" #: lib/pychess/Variants/upsidedown.py:13 msgid "Upside Down" msgstr "" #: lib/pychess/Variants/wildcastle.py:10 msgid "" "xboard wildcastle http://home.hccnet.nl/h.g.muller/engine-intf.html#8\n" "FICS wild/0: http://www.freechess.org/Help/HelpFiles/wild.html\n" "* White has the typical set-up at the start.\n" "* Black's pieces are the same, except that the King and Queen are reversed,\n" "* so they are not on the same files as White's King and Queen.\n" "* Castling is done similarly to normal chess:\n" "* o-o-o indicates long castling and o-o short castling." msgstr "" #: lib/pychess/Variants/wildcastle.py:17 msgid "Wildcastle" msgstr "" #: lib/pychess/Variants/wildcastleshuffle.py:11 msgid "" "xboard wildcastle http://home.hccnet.nl/h.g.muller/engine-intf.html#8\n" "FICS wild/1: http://www.freechess.org/Help/HelpFiles/wild.html\n" "* In this variant both sides have the same set of pieces as in normal chess.\n" "* The white king starts on d1 or e1 and the black king starts on d8 or e8,\n" "* and the rooks are in their usual positions.\n" "* Bishops are always on opposite colors.\n" "* Subject to these constraints the position of the pieces on their first ranks is random.\n" "* Castling is done similarly to normal chess:\n" "* o-o-o indicates long castling and o-o short castling." msgstr "" #: lib/pychess/Variants/wildcastleshuffle.py:20 msgid "Wildcastle shuffle" msgstr "" #: lib/pychess/widgets/analyzegameDialog.py:85 msgid "Game analyzing in progress..." msgstr "" #: lib/pychess/widgets/analyzegameDialog.py:86 msgid "Do you want to abort it?" msgstr "" #: lib/pychess/widgets/analyzegameDialog.py:95 #: lib/pychess/widgets/gamewidget.py:202 lib/pychess/widgets/gamewidget.py:320 msgid "Abort" msgstr "" #: lib/pychess/widgets/ChatView.py:125 msgid "Observers" msgstr "" #: lib/pychess/widgets/ChatWindow.py:222 msgid "You have opened no conversations yet" msgstr "" #: lib/pychess/widgets/ChatWindow.py:254 msgid "Only registered users may talk to this channel" msgstr "" #: lib/pychess/widgets/ChatWindow.py:312 msgid "No conversation's selected" msgstr "" #: lib/pychess/widgets/ChatWindow.py:350 msgid "Loading player data" msgstr "" #: lib/pychess/widgets/ChatWindow.py:400 msgid "Receiving list of players" msgstr "" #: lib/pychess/widgets/ChatWindow.py:518 msgid "Friends" msgstr "" #: lib/pychess/widgets/ChatWindow.py:529 msgid "Admin" msgstr "" #: lib/pychess/widgets/ChatWindow.py:540 msgid "More channels" msgstr "" #: lib/pychess/widgets/ChatWindow.py:548 msgid "More players" msgstr "" #: lib/pychess/widgets/ChatWindow.py:558 msgid "Computers" msgstr "" #: lib/pychess/widgets/ChatWindow.py:568 msgid "BlindFold" msgstr "" #: lib/pychess/widgets/ChatWindow.py:578 msgid "Guests" msgstr "" #: lib/pychess/widgets/ChatWindow.py:805 msgid "Conversations" msgstr "" #: lib/pychess/widgets/ChatWindow.py:807 msgid "Conversation info" msgstr "" #: lib/pychess/widgets/enginesDialog.py:152 msgid "Select engine" msgstr "" #: lib/pychess/widgets/enginesDialog.py:156 msgid "Executable files" msgstr "" #: lib/pychess/widgets/enginesDialog.py:176 #: lib/pychess/widgets/enginesDialog.py:210 #: lib/pychess/widgets/enginesDialog.py:235 #, python-format msgid "Unable to add %s" msgstr "" #: lib/pychess/widgets/enginesDialog.py:177 msgid "wine not installed" msgstr "" #: lib/pychess/widgets/enginesDialog.py:211 #: lib/pychess/widgets/enginesDialog.py:236 msgid "There is something wrong with this executable" msgstr "" #: lib/pychess/widgets/enginesDialog.py:266 msgid "Select working directory" msgstr "" #: lib/pychess/widgets/gamenanny.py:115 #, python-format msgid " invalid engine move: %s" msgstr "" #: lib/pychess/widgets/gamenanny.py:134 msgid "Offer Rematch" msgstr "" #: lib/pychess/widgets/gamenanny.py:136 lib/pychess/widgets/gamenanny.py:147 #, python-format msgid "Observe %s" msgstr "" #: lib/pychess/widgets/gamenanny.py:168 msgid "Play Rematch" msgstr "" #: lib/pychess/widgets/gamenanny.py:171 msgid "Undo one move" msgstr "" #: lib/pychess/widgets/gamenanny.py:173 msgid "Undo two moves" msgstr "" #: lib/pychess/widgets/gamenanny.py:203 msgid "The game is paused" msgstr "" #: lib/pychess/widgets/gamenanny.py:221 lib/pychess/widgets/gamenanny.py:222 msgid "Loaded game" msgstr "" #: lib/pychess/widgets/gamenanny.py:228 msgid "Saved game" msgstr "" #: lib/pychess/widgets/gamenanny.py:232 msgid "Analyzer started" msgstr "" #: lib/pychess/widgets/gamenanny.py:281 msgid "You sent an abort offer" msgstr "" #: lib/pychess/widgets/gamenanny.py:283 msgid "You sent an adjournment offer" msgstr "" #: lib/pychess/widgets/gamenanny.py:285 msgid "You sent a draw offer" msgstr "" #: lib/pychess/widgets/gamenanny.py:287 msgid "You sent a pause offer" msgstr "" #: lib/pychess/widgets/gamenanny.py:289 msgid "You sent a resume offer" msgstr "" #: lib/pychess/widgets/gamenanny.py:291 msgid "You sent an undo offer" msgstr "" #: lib/pychess/widgets/gamenanny.py:293 msgid "You asked your opponent to move" msgstr "" #: lib/pychess/widgets/gamenanny.py:305 #, python-format msgid "Engine, %s, has died" msgstr "" #: lib/pychess/widgets/gamenanny.py:306 msgid "" "PyChess has lost connection to the engine, probably because it has died.\n" "\n" "You can try to start a new game with the engine, or try to play against another one." msgstr "" #: lib/pychess/widgets/gamewidget.py:204 msgid "" "This game can be automatically aborted without rating loss because there has" " not yet been two moves made" msgstr "" #: lib/pychess/widgets/gamewidget.py:206 msgid "Offer Abort" msgstr "" #: lib/pychess/widgets/gamewidget.py:208 msgid "" "Your opponent must agree to abort the game because there has been two or " "more moves made" msgstr "" #: lib/pychess/widgets/gamewidget.py:226 msgid "This game can not be adjourned because one or both players are guests" msgstr "" #: lib/pychess/widgets/gamewidget.py:243 msgid "Claim Draw" msgstr "" #: lib/pychess/widgets/gamewidget.py:325 msgid "Pause" msgstr "" #: lib/pychess/widgets/gamewidget.py:326 msgid "Resume" msgstr "" #: lib/pychess/widgets/gamewidget.py:328 msgid "Offer Pause" msgstr "" #: lib/pychess/widgets/gamewidget.py:329 msgid "Offer Resume" msgstr "" #: lib/pychess/widgets/gamewidget.py:333 msgid "Undo" msgstr "" #: lib/pychess/widgets/gamewidget.py:335 msgid "Offer Undo" msgstr "" #: lib/pychess/widgets/gamewidget.py:550 msgid " has lagged for 30 seconds" msgstr "" #: lib/pychess/widgets/gamewidget.py:566 msgid " is lagging heavily but hasn't disconnected" msgstr "" #: lib/pychess/widgets/gamewidget.py:567 msgid "Continue to wait for opponent, or try to adjourn the game?" msgstr "" #: lib/pychess/widgets/gamewidget.py:575 msgid "Wait" msgstr "" #: lib/pychess/widgets/gamewidget.py:576 msgid "Adjourn" msgstr "" #: lib/pychess/widgets/gamewidget.py:648 msgid "Jump to initial position" msgstr "" #: lib/pychess/widgets/gamewidget.py:653 msgid "Step back one move" msgstr "" #: lib/pychess/widgets/gamewidget.py:658 msgid "Go back to the main line" msgstr "" #: lib/pychess/widgets/gamewidget.py:664 msgid "Step forward one move" msgstr "" #: lib/pychess/widgets/gamewidget.py:669 msgid "Jump to latest position" msgstr "" #: lib/pychess/widgets/gamewidget.py:903 msgid "PyChess was unable to load your panel settings" msgstr "" #: lib/pychess/widgets/gamewidget.py:904 msgid "" "Your panel settings have been reset. If this problem repeats, you should " "report it to the developers" msgstr "" #: lib/pychess/widgets/ionest.py:67 lib/pychess/widgets/newGameDialog.py:389 #: lib/pychess/widgets/TaskerManager.py:210 msgid "You" msgstr "" #: lib/pychess/widgets/ionest.py:70 lib/pychess/widgets/newGameDialog.py:390 #: lib/pychess/widgets/preferencesDialog.py:61 #: lib/pychess/widgets/TaskerManager.py:213 msgid "Guest" msgstr "" #: lib/pychess/widgets/ionest.py:93 msgid "Error loading game" msgstr "" #: lib/pychess/widgets/ionest.py:127 lib/pychess/widgets/newGameDialog.py:480 msgid "Open Game" msgstr "" #: lib/pychess/widgets/ionest.py:137 msgid "All Files" msgstr "" #: lib/pychess/widgets/ionest.py:140 msgid "Detect type automatically" msgstr "" #: lib/pychess/widgets/ionest.py:146 msgid "All Chess Files" msgstr "" #: lib/pychess/widgets/ionest.py:228 msgid "Save Game" msgstr "" #: lib/pychess/widgets/ionest.py:228 msgid "Export position" msgstr "" #: lib/pychess/widgets/ionest.py:232 lib/pychess/widgets/ionest.py:360 msgid "vs." msgstr "" #: lib/pychess/widgets/ionest.py:249 #, python-format msgid "Unknown file type '%s'" msgstr "" #: lib/pychess/widgets/ionest.py:250 #, python-format msgid "" "Was unable to save '%(uri)s' as PyChess doesn't know the format " "'%(ending)s'." msgstr "" #: lib/pychess/widgets/ionest.py:266 #, python-format msgid "Unable to save file '%s'" msgstr "" #: lib/pychess/widgets/ionest.py:268 msgid "" "You don't have the necessary rights to save the file.\n" "Please ensure that you have given the right path and try again." msgstr "" #: lib/pychess/widgets/ionest.py:276 msgid "_Replace" msgstr "" #: lib/pychess/widgets/ionest.py:280 msgid "File exists" msgstr "" #: lib/pychess/widgets/ionest.py:282 #, python-format msgid "" "A file named '%s' already exists. Would you like to replace " "it?" msgstr "" #: lib/pychess/widgets/ionest.py:283 #, python-format msgid "" "The file already exists in '%s'. If you replace it, its content will be " "overwritten." msgstr "" #: lib/pychess/widgets/ionest.py:299 msgid "Could not save the file" msgstr "" #: lib/pychess/widgets/ionest.py:300 msgid "PyChess was not able to save the game" msgstr "" #: lib/pychess/widgets/ionest.py:301 #, python-format msgid "The error was: %s" msgstr "" #: lib/pychess/widgets/ionest.py:325 #, python-format msgid "There is %d game with unsaved moves." msgid_plural "There are %d games with unsaved moves." msgstr[0] "" msgstr[1] "" #: lib/pychess/widgets/ionest.py:328 msgid "Save moves before closing?" msgstr "" #: lib/pychess/widgets/ionest.py:339 msgid "Unable to save to configured file. Save the games before closing?" msgstr "" #: lib/pychess/widgets/ionest.py:366 #, python-format msgid "_Save %d document" msgid_plural "_Save %d documents" msgstr[0] "" msgstr[1] "" #: lib/pychess/widgets/ionest.py:412 msgid "Save the current game before you close it?" msgstr "" #: lib/pychess/widgets/ionest.py:420 msgid "" "Unable to save to configured file. Save the current game before you close " "it?" msgstr "" #: lib/pychess/widgets/ionest.py:434 msgid "" "It is not possible later to continue the game,\n" "if you don't save it." msgstr "" #: lib/pychess/widgets/LogDialog.py:26 msgid "PyChess Information Window" msgstr "" #: lib/pychess/widgets/LogDialog.py:184 lib/pychess/widgets/LogDialog.py:188 msgid "of" msgstr "" #: lib/pychess/widgets/newGameDialog.py:84 #: lib/pychess/widgets/newGameDialog.py:85 msgid "Human Being" msgstr "" #: lib/pychess/widgets/newGameDialog.py:155 msgid "Rapid" msgstr "" #: lib/pychess/widgets/newGameDialog.py:224 msgid "Minutes:" msgstr "Minute:" #: lib/pychess/widgets/newGameDialog.py:228 msgid "Gain:" msgstr "Wins:" #: lib/pychess/widgets/newGameDialog.py:241 #, python-format msgid "%(name)s %(minutes)d min + %(gain)d sec/move" msgstr "" #: lib/pychess/widgets/newGameDialog.py:244 #, python-format msgid "%(name)s %(minutes)d min %(gain)d sec/move" msgstr "" #: lib/pychess/widgets/newGameDialog.py:247 #, python-format msgid "%(name)s %(minutes)d min" msgstr "" #: lib/pychess/widgets/newGameDialog.py:265 msgid "Odds" msgstr "" #: lib/pychess/widgets/newGameDialog.py:269 msgid "Asian variants" msgstr "" #: lib/pychess/widgets/newGameDialog.py:301 msgid " chess" msgstr "" #: lib/pychess/widgets/newGameDialog.py:682 msgid "Type or paste PGN game or FEN positions here" msgstr "" #: lib/pychess/widgets/newGameDialog.py:725 msgid "Enter Game" msgstr "" #: lib/pychess/widgets/preferencesDialog.py:123 msgid "Select book file" msgstr "" #: lib/pychess/widgets/preferencesDialog.py:128 msgid "Opening books" msgstr "" #: lib/pychess/widgets/preferencesDialog.py:156 msgid "Select Gaviota TB path" msgstr "" #: lib/pychess/widgets/preferencesDialog.py:331 msgid "Open Sound File" msgstr "" #: lib/pychess/widgets/preferencesDialog.py:341 msgid "Sound files" msgstr "" #: lib/pychess/widgets/preferencesDialog.py:485 msgid "Undescribed panel" msgstr "" #: lib/pychess/widgets/preferencesDialog.py:678 msgid "Select auto save path" msgstr "" #: lib/pychess/widgets/tipOfTheDay.py:51 msgid "" "You can start a new game by Game > New Game, in New Game " "window do you can choose Players, Time Control and Chess " "Variants." msgstr "" #: lib/pychess/widgets/tipOfTheDay.py:52 msgid "" "You can choose from 20 different difficulties to play against the computer." msgstr "" #: lib/pychess/widgets/tipOfTheDay.py:53 msgid "" "Chess Variants are like the pieces of the last line will be placed on the " "board." msgstr "" #: lib/pychess/widgets/tipOfTheDay.py:54 msgid "" "To save a game Game > Save Game As, give the filename and " "choose where you want to be saved. At the bottom choose extension type of " "the file, and Save." msgstr "" #: lib/pychess/widgets/tipOfTheDay.py:55 msgid "" "Do you know that you can call flag when the clock is with you, " "Actions > Call Flag." msgstr "" #: lib/pychess/widgets/tipOfTheDay.py:56 msgid "Pressing Ctrl+Z to offer opponent the possible rollback moves." msgstr "" #: lib/pychess/widgets/tipOfTheDay.py:57 msgid "" "To play on Fullscreen mode, just type F11. Coming back, F11 " "again." msgstr "" #: lib/pychess/widgets/tipOfTheDay.py:58 msgid "Hint mode analyzing your game, enable this type Ctrl+H." msgstr "" #: lib/pychess/widgets/tipOfTheDay.py:59 msgid "" "Spy mode analyzing the oponnent game, enable this type Ctrl+Y." msgstr "" #: lib/pychess/widgets/tipOfTheDay.py:60 msgid "" "You can play chess listening to the sounds of the game, for that, " "Settings > Preferences > Sound tab, enable Use " "sounds in PyChess and choose your preferred sounds." msgstr "" #: lib/pychess/widgets/tipOfTheDay.py:61 msgid "" "Do you know that you can help translate Pychess in your language, " "Help > Translate Pychess." msgstr "" #: lib/pychess/widgets/tipOfTheDay.py:62 msgid "" "Do you know that it is possible to finish a chess game in just 2 turns?" msgstr "" #: lib/pychess/widgets/tipOfTheDay.py:63 msgid "" "Do you know that the number of possible chess games exceeds the number of " "atoms in the Universe?" msgstr "" #: lib/pychess/ic/managers/ChatManager.py:184 msgid "Shout" msgstr "" #: lib/pychess/ic/managers/ChatManager.py:185 msgid "Chess Shout" msgstr "" #: lib/pychess/ic/managers/ChatManager.py:195 #, python-format msgid "Unofficial channel %d" msgstr "" #: lib/pychess/Utils/lutils/LBoard.py:152 #, python-format msgid "" "FEN needs 6 data fields. \n" "\n" "%s" msgstr "" #: lib/pychess/Utils/lutils/LBoard.py:154 #, python-format msgid "" "FEN needs at least 2 data fields in fenstr. \n" "\n" "%s" msgstr "" #: lib/pychess/Utils/lutils/LBoard.py:175 #, python-format msgid "" "Needs 7 slashes in piece placement field. \n" "\n" "%s" msgstr "" #: lib/pychess/Utils/lutils/LBoard.py:178 #, python-format msgid "" "Active color field must be one of w or b. \n" "\n" "%s" msgstr "" #: lib/pychess/Utils/lutils/LBoard.py:189 #, python-format msgid "" "Castling availability field is not legal. \n" "\n" "%s" msgstr "" #: lib/pychess/Utils/lutils/LBoard.py:192 #, python-format msgid "" "En passant cord is not legal. \n" "\n" "%s" msgstr "" #: lib/pychess/Utils/lutils/lmove.py:260 msgid "invalid promoted piece" msgstr "" #: lib/pychess/Utils/lutils/lmove.py:272 msgid "the move needs a piece and a cord" msgstr "" #: lib/pychess/Utils/lutils/lmove.py:306 lib/pychess/Utils/lutils/lmove.py:556 msgid "promotion move without promoted piece is incorrect" msgstr "" #: lib/pychess/Utils/lutils/lmove.py:312 #, python-format msgid "the captured cord (%s) is incorrect" msgstr "" #: lib/pychess/Utils/lutils/lmove.py:323 #, python-format msgid "the end cord (%s) is incorrect" msgstr "" #: lib/pychess/Utils/lutils/strateval.py:24 sidepanel/commentPanel.py:191 #: sidepanel/commentPanel.py:208 msgid "and" msgstr "" #: lib/pychess/Utils/lutils/strateval.py:43 msgid "draws" msgstr "" #: lib/pychess/Utils/lutils/strateval.py:45 msgid "mates" msgstr "" #: lib/pychess/Utils/lutils/strateval.py:49 msgid "puts opponent in check" msgstr "" #: lib/pychess/Utils/lutils/strateval.py:73 msgid "improves king safety" msgstr "" #: lib/pychess/Utils/lutils/strateval.py:75 msgid "slightly improves king safety" msgstr "" #: lib/pychess/Utils/lutils/strateval.py:108 msgid "moves a rook to an open file" msgstr "" #: lib/pychess/Utils/lutils/strateval.py:109 msgid "moves an rook to a half-open file" msgstr "" #: lib/pychess/Utils/lutils/strateval.py:119 #: lib/pychess/Utils/lutils/strateval.py:121 #: lib/pychess/Utils/lutils/strateval.py:124 #: lib/pychess/Utils/lutils/strateval.py:126 #, python-format msgid "moves bishop into fianchetto: %s" msgstr "" #: lib/pychess/Utils/lutils/strateval.py:132 #, python-format msgid "promotes a Pawn to a %s" msgstr "" #: lib/pychess/Utils/lutils/strateval.py:135 msgid "castles" msgstr "" #: lib/pychess/Utils/lutils/strateval.py:158 msgid "takes back material" msgstr "" #: lib/pychess/Utils/lutils/strateval.py:162 #: lib/pychess/Utils/lutils/strateval.py:170 msgid "sacrifies material" msgstr "" #: lib/pychess/Utils/lutils/strateval.py:164 msgid "exchanges material" msgstr "" #: lib/pychess/Utils/lutils/strateval.py:166 msgid "captures material" msgstr "" #: lib/pychess/Utils/lutils/strateval.py:291 #, python-format msgid "rescues a %s" msgstr "" #: lib/pychess/Utils/lutils/strateval.py:294 #, python-format msgid "threatens to win material by %s" msgstr "" #: lib/pychess/Utils/lutils/strateval.py:296 #, python-format msgid "increases the pressure on %s" msgstr "" #: lib/pychess/Utils/lutils/strateval.py:298 #, python-format msgid "defends %s" msgstr "" #: lib/pychess/Utils/lutils/strateval.py:336 #, python-format msgid "pins an enemy %(oppiece)s on the %(piece)s at %(cord)s" msgstr "" #: lib/pychess/Utils/lutils/strateval.py:369 #, python-format msgid "White has a new piece in outpost: %s" msgstr "" #: lib/pychess/Utils/lutils/strateval.py:377 #, python-format msgid "Black has a new piece in outpost: %s" msgstr "" #: lib/pychess/Utils/lutils/strateval.py:416 #, python-format msgid "%(color)s has a new passed pawn on %(cord)s" msgstr "" #: lib/pychess/Utils/lutils/strateval.py:470 msgid "half-open" msgstr "" #: lib/pychess/Utils/lutils/strateval.py:472 #, python-format msgid "in the %(x)s%(y)s file" msgstr "" #: lib/pychess/Utils/lutils/strateval.py:474 #, python-format msgid "in the %(x)s%(y)s files" msgstr "" #: lib/pychess/Utils/lutils/strateval.py:477 #, python-format msgid "%(color)s got a double pawn %(place)s" msgstr "" #: lib/pychess/Utils/lutils/strateval.py:478 #, python-format msgid "%(color)s got new double pawns %(place)s" msgstr "" #: lib/pychess/Utils/lutils/strateval.py:485 #, python-format msgid "%(color)s got an isolated pawn in the %(x)s file" msgid_plural "%(color)s got isolated pawns in the %(x)s files" msgstr[0] "" msgstr[1] "" #: lib/pychess/Utils/lutils/strateval.py:492 #, python-format msgid "%s moves pawns into stonewall formation" msgstr "" #: lib/pychess/Utils/lutils/strateval.py:507 #: lib/pychess/Utils/lutils/strateval.py:514 #, python-format msgid "%s can no longer castle" msgstr "" #: lib/pychess/Utils/lutils/strateval.py:508 #: lib/pychess/Utils/lutils/strateval.py:515 #, python-format msgid "%s can no longer castle in queenside" msgstr "" #: lib/pychess/Utils/lutils/strateval.py:510 #: lib/pychess/Utils/lutils/strateval.py:517 #, python-format msgid "%s can no longer castle in kingside" msgstr "" #: lib/pychess/Utils/lutils/strateval.py:551 #, python-format msgid "%(opcolor)s has a new trapped bishop on %(cord)s" msgstr "" #: lib/pychess/Utils/lutils/strateval.py:573 #, python-format msgid "develops a pawn: %s" msgstr "" #: lib/pychess/Utils/lutils/strateval.py:574 #, python-format msgid "brings a pawn closer to the backrow: %s" msgstr "" #: lib/pychess/Utils/lutils/strateval.py:591 #, python-format msgid "brings a %(piece)s closer to enemy king: %(cord)s" msgstr "" #: lib/pychess/Utils/lutils/strateval.py:594 #, python-format msgid "develops a %(piece)s: %(cord)s" msgstr "" #: lib/pychess/Utils/lutils/strateval.py:612 #, python-format msgid "places a %(piece)s more active: %(cord)s" msgstr "" #: lib/pychess/Utils/lutils/strateval.py:638 msgid "White should do pawn storm in right" msgstr "" #: lib/pychess/Utils/lutils/strateval.py:640 msgid "Black should do pawn storm in left" msgstr "" #: lib/pychess/Utils/lutils/strateval.py:643 msgid "White should do pawn storm in left" msgstr "" #: lib/pychess/Utils/lutils/strateval.py:645 msgid "Black should do pawn storm in right" msgstr "" #: lib/pychess/Utils/lutils/strateval.py:671 msgid "Black has a rather cramped position" msgstr "" #: lib/pychess/Utils/lutils/strateval.py:673 msgid "Black has a slightly cramped position" msgstr "" #: lib/pychess/Utils/lutils/strateval.py:675 msgid "White has a rather cramped position" msgstr "" #: lib/pychess/Utils/lutils/strateval.py:677 msgid "White has a slightly cramped position" msgstr "" #: sidepanel/annotationPanel.py:26 msgid "Annotation" msgstr "" #: sidepanel/annotationPanel.py:29 msgid "Annotated game" msgstr "" #: sidepanel/annotationPanel.py:236 msgid "Copy PGN" msgstr "" #: sidepanel/annotationPanel.py:249 msgid "Add start comment" msgstr "" #: sidepanel/annotationPanel.py:254 msgid "Add comment" msgstr "" #: sidepanel/annotationPanel.py:258 sidepanel/annotationPanel.py:316 msgid "Edit comment" msgstr "" #: sidepanel/annotationPanel.py:269 msgid "Forced move" msgstr "" #: sidepanel/annotationPanel.py:274 msgid "Add move symbol" msgstr "" #: sidepanel/annotationPanel.py:280 msgid "Unclear position" msgstr "" #: sidepanel/annotationPanel.py:289 msgid "Zugzwang" msgstr "" #: sidepanel/annotationPanel.py:290 msgid "Development adv." msgstr "" #: sidepanel/annotationPanel.py:291 msgid "Initiative" msgstr "" #: sidepanel/annotationPanel.py:292 msgid "With attack" msgstr "" #: sidepanel/annotationPanel.py:293 msgid "Compensation" msgstr "" #: sidepanel/annotationPanel.py:294 msgid "Counterplay" msgstr "" #: sidepanel/annotationPanel.py:295 msgid "Time pressure" msgstr "" #: sidepanel/annotationPanel.py:300 msgid "Add evaluation symbol" msgstr "" #: sidepanel/annotationPanel.py:304 msgid "Remove symbols" msgstr "" #: sidepanel/annotationPanel.py:911 #, python-format msgid "round %s" msgstr "" #: sidepanel/bookPanel.py:21 msgid "Hints" msgstr "" #: sidepanel/bookPanel.py:25 msgid "" "The hint panel will provide computer advice during each stage of the game" msgstr "" #: sidepanel/bookPanel.py:27 msgid "Official PyChess panel." msgstr "" #: sidepanel/bookPanel.py:87 msgid "Opening Book" msgstr "" #: sidepanel/bookPanel.py:88 msgid "" "The opening book will try to inspire you during the opening phase of the " "game by showing you common moves made by chess masters" msgstr "" #: sidepanel/bookPanel.py:139 #, python-format msgid "Analysis by %s" msgstr "" #: sidepanel/bookPanel.py:140 #, python-format msgid "" "%s will try to predict which move is best and which side has the advantage" msgstr "" #: sidepanel/bookPanel.py:142 #, python-format msgid "Threat analysis by %s" msgstr "" #: sidepanel/bookPanel.py:143 #, python-format msgid "" "%s will identify what threats would exist if it were your opponent's turn to" " move" msgstr "" #: sidepanel/bookPanel.py:159 sidepanel/bookPanel.py:269 msgid "Calculating..." msgstr "" #: sidepanel/bookPanel.py:300 msgid "" "Engine scores are in units of pawns, from White's point of view. Double " "clicking on analysis lines you can insert them into Annotation panel as " "variations." msgstr "" #: sidepanel/bookPanel.py:302 msgid "" "Adding suggestions can help you find ideas, but slows down the computer's " "analysis." msgstr "" #: sidepanel/bookPanel.py:311 msgid "Endgame Table" msgstr "" #: sidepanel/bookPanel.py:315 msgid "" "The endgame table will show exact analysis when there are few pieces on the " "board." msgstr "" #: sidepanel/bookPanel.py:364 sidepanel/bookPanel.py:367 #, python-format msgid "Mate in %d" msgstr "" #: sidepanel/bookPanel.py:554 msgid "" "In this position,\n" "there is no legal move." msgstr "" #: sidepanel/chatPanel.py:21 msgid "" "The chat panel lets you communicate with your opponent during the game, " "assuming he or she is interested" msgstr "" #: sidepanel/commentPanel.py:16 msgid "Comments" msgstr "" #: sidepanel/commentPanel.py:20 msgid "The comments panel will try to analyze and explain the moves played" msgstr "" #: sidepanel/commentPanel.py:121 msgid "Initial position" msgstr "" #: sidepanel/commentPanel.py:254 #, python-format msgid "%(color)s moves a %(piece)s to %(cord)s" msgstr "" #: sidepanel/engineOutputPanel.py:15 msgid "Engines" msgstr "" #: sidepanel/engineOutputPanel.py:20 msgid "" "The engine output panel shows the thinking output of chess engines (computer" " players) during a game" msgstr "" #: sidepanel/engineOutputPanel.py:44 msgid "No chess engines (computer players) are participating in this game." msgstr "" #: sidepanel/historyPanel.py:10 msgid "Move History" msgstr "" #: sidepanel/historyPanel.py:13 msgid "" "The moves sheet keeps track of the players' moves and lets you navigate " "through the game history" msgstr "" #: sidepanel/scorePanel.py:15 msgid "Score" msgstr "" #: sidepanel/scorePanel.py:19 msgid "" "The score panel tries to evaluate the positions and shows you a graph of the" " game progress" msgstr "" pychess-0.12.2/lang/af/LC_MESSAGES/pychess.mo0000644000175000017470000000423712653231273020671 0ustar tamasusers00000000000000&L5|P'Qy  . 7 CMSX _ms x      ( 0< LV \io~   #+1 7B I T _ l x &"   %!$  #Promote pawn to what?AnimationDate of gameEnter Game NotationGame dataNewsPlayersAbout ChessBishopEvent:Gain:Game informationKnightLog on as _GuestMinutes:PreferencesPromotionQueenRookRound:Save Game _AsSite:TimeUse _analyzerUse _inverted analyzer_Accept_Actions_Game_Help_Load Game_Name:_New Game_Password:_Rotate Board_Save Game_Start Game_Use sounds in PyChessProject-Id-Version: pychess Report-Msgid-Bugs-To: POT-Creation-Date: 2016-01-27 13:28+0100 PO-Revision-Date: 2016-01-28 08:56+0000 Last-Translator: slav0nic Language-Team: Afrikaans (http://www.transifex.com/gbtami/pychess/language/af/) MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Language: af Plural-Forms: nplurals=2; plural=(n != 1); Bevorder pion tot wat?AnimasieDatum van spelVerskaf Spel NotasieSpel dataNuusSpelers:Oor skaakLoperGebeurtenis:Wins:Spel inligtingRidderTeken in as _GasMinute:VoorkeureBevorderingDameToringRondte:Stoor Spel _AsTuiste:Tydgebruik _analiseerderGebruik _omgekeerde analiseerder_Aanvaar_Aksies_Spel_Hulp_Laai Spel_Naam:_Nuwe Spel_Wagwoord:_Wentel bord_Stoor Spel_Begin Spel_Gebruik klanke in PyChesspychess-0.12.2/lang/pl/0000755000175000017470000000000012653231274015111 5ustar tamasusers00000000000000pychess-0.12.2/lang/pl/LC_MESSAGES/0000755000175000017470000000000012653231274016676 5ustar tamasusers00000000000000pychess-0.12.2/lang/pl/LC_MESSAGES/pychess.po0000644000175000017470000026203312653216214020717 0ustar tamasusers00000000000000# SOME DESCRIPTIVE TITLE. # Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER # This file is distributed under the same license as the pychess package. # # Translators: # felikstayson , 2012 # FIRST AUTHOR , 2007 # Mercury , 2013 # Mercury , 2012 # Przemysław Dziubczyński , 2015 msgid "" msgstr "" "Project-Id-Version: pychess\n" "Report-Msgid-Bugs-To: \n" "POT-Creation-Date: 2016-01-27 13:28+0100\n" "PO-Revision-Date: 2016-01-28 08:56+0000\n" "Last-Translator: slav0nic \n" "Language-Team: Polish (http://www.transifex.com/gbtami/pychess/language/pl/)\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" "Language: pl\n" "Plural-Forms: nplurals=3; plural=(n==1 ? 0 : n%10>=2 && n%10<=4 && (n%100<10 || n%100>=20) ? 1 : 2);\n" # "Plural-Forms: nplurals=INTEGER; plural=EXPRESSION;\n" #: glade/analyze_game.glade:22 msgid "Analyze game" msgstr "" #: glade/analyze_game.glade:87 msgid "Use analyzer:" msgstr "Używaj analizatora:" #: glade/analyze_game.glade:122 glade/PyChess.glade:2054 msgid "Maximum analysis time in seconds:" msgstr "Maksymalny czas analizy w sekundach:" #: glade/analyze_game.glade:163 msgid "" "If the analyzer finds a move where the evaluation difference (the difference" " between the evaluation for the move it thinks is the best move and the " "evaluation for the move made in the game) exceeds this value, it will add an" " annotation for that move (consisting of the engine's Principal Variation " "for the move) to the Annotation panel" msgstr "Jeżeli analizator znajdzie ruch, gdzie różnica wartości (różnia pomiędzy najlepszą obliczoną wartością ruchu a wartością ruchu w grze) przekroczy tę wartość, doda adnotację (zawarte w głównych wariacjach silnika tego ruchu) do posunięcia w panelu adnotacji." #: glade/analyze_game.glade:164 msgid "Variation annotation creation threshold in centipawns:" msgstr "" #: glade/analyze_game.glade:198 msgid "Analyze from current position" msgstr "Analizuj od obecnej pozycji" #: glade/analyze_game.glade:214 msgid "Add threatening variation lines " msgstr "" #: glade/analyze_game.glade:229 glade/PyChess.glade:1459 msgid "Colorize analyzed moves" msgstr "Koloruj analizowane ruchy" #: glade/analyze_game.glade:244 glade/PyChess.glade:1495 msgid "Show evaluation values" msgstr "Pokaż wartości oceny" #: glade/discovererDialog.glade:18 msgid "PyChess is discovering your engines. Please wait." msgstr "PyChess szuka silników. Proszę czekać." #: glade/discovererDialog.glade:77 msgid "PyChess.py:" msgstr "PyChess.py:" #: glade/discovererDialog.glade:89 msgid "ShredderLinuxChess:" msgstr "ShredderLinuxChess:" #: glade/discovererDialog.glade:101 msgid "gnuchess:" msgstr "gnuchess:" #: glade/fics_logon.glade:7 msgid "PyChess - Connect to Internet Chess" msgstr "PyChess - Połącz z Serwerem Szachowym" #: glade/fics_logon.glade:47 msgid "Connect to the Free Online Chess Server" msgstr "Połącz się z the Free Online Chess Server" #: glade/fics_logon.glade:129 glade/taskers.glade:394 msgid "_Password:" msgstr "_Hasło:" #: glade/fics_logon.glade:143 msgid "_Name:" msgstr "_Nazwa:" #: glade/fics_logon.glade:191 msgid "Log on as _Guest" msgstr "Zaloguj jako _Gość" #: glade/fics_logon.glade:227 msgid "Host:" msgstr "" #: glade/fics_logon.glade:259 msgid "Po_rts:" msgstr "Po_rty" #: glade/fics_logon.glade:271 msgid "Auto login on startup" msgstr "" #: glade/fics_logon.glade:385 msgid "S_ign up" msgstr "Z_arejestruj się" #: glade/fics_lounge.glade:35 msgid "Challenge: " msgstr "Wyzwij gracza: " #: glade/fics_lounge.glade:97 msgid "Send Challenge" msgstr "Wyślij wyzwanie" #: glade/fics_lounge.glade:133 msgid "Challenge:" msgstr "Wyzwij:" #: glade/fics_lounge.glade:327 glade/fics_lounge.glade:2078 msgid "Lightning:" msgstr "Oświetlenie:" #: glade/fics_lounge.glade:351 glade/fics_lounge.glade:2102 msgid "Standard:" msgstr "Standard:" #: glade/fics_lounge.glade:375 glade/fics_lounge.glade:2126 msgid "Blitz:" msgstr "Szachy błyskawiczne:" #: glade/fics_lounge.glade:400 msgid "2 min, Fischer Random, Black" msgstr "2 min, Fischer Losowa, Czarne" #: glade/fics_lounge.glade:422 msgid "10 min + 6 sec/move, White" msgstr "10 min + 6 sek/ruch, Białe" #: glade/fics_lounge.glade:444 msgid "5 min" msgstr "5 min" #: glade/fics_lounge.glade:480 msgid "Edit Seek" msgstr "Edytuj szukanie" #: glade/fics_lounge.glade:584 lib/pychess/ic/ICLounge.py:2208 #: lib/pychess/ic/__init__.py:101 lib/pychess/Utils/GameModel.py:206 msgid "Untimed" msgstr "Bez limitu" #: glade/fics_lounge.glade:637 msgid "Minutes: " msgstr "Minuty:" #: glade/fics_lounge.glade:665 msgid " Gain: " msgstr "Dodawaj:" #: glade/fics_lounge.glade:703 msgid "Time control: " msgstr "Ustawienia czasu" #: glade/fics_lounge.glade:716 lib/pychess/ic/FICSObjects.py:56 #: lib/pychess/ic/ICLounge.py:1137 lib/pychess/ic/ICLounge.py:2208 #: lib/pychess/ic/__init__.py:99 msgid "Standard" msgstr "Standard" #: glade/fics_lounge.glade:757 glade/newInOut.glade:633 msgid "Time Control" msgstr "Ustawienia czasu" #: glade/fics_lounge.glade:814 glade/fics_lounge.glade:1346 msgid "Don't care" msgstr "Bez opieki" #: glade/fics_lounge.glade:879 msgid "Your strength: " msgstr "Twoja siła:" #: glade/fics_lounge.glade:921 msgid "(Blitz)" msgstr "(Szachy błyskawiczne)" #: glade/fics_lounge.glade:951 msgid "Opponent's strength: " msgstr "Siła przeciwnika:" #: glade/fics_lounge.glade:1055 msgid "" "When this button is in the \"locked\" state, the relationship\n" "between \"Opponent's strength\" and \"Your strength\" will be\n" "preserved when \n" "a) your rating for the type of game sought has changed\n" "b) you change the variant or the time control" msgstr "" #: glade/fics_lounge.glade:1095 msgid "Center:" msgstr "Środek:" #: glade/fics_lounge.glade:1134 msgid "1200" msgstr "1200" #: glade/fics_lounge.glade:1188 msgid "Tolerance:" msgstr "Tolerancja:" #: glade/fics_lounge.glade:1243 lib/pychess/ic/ICLounge.py:2452 msgid "Hide" msgstr "Ukryj:" #: glade/fics_lounge.glade:1289 msgid "Opponent Strength" msgstr "Siła przeciwnika" #: glade/fics_lounge.glade:1386 lib/pychess/Database/gamelist.py:40 #: lib/pychess/ic/ICLounge.py:1357 lib/pychess/ic/ICLounge.py:1557 #: lib/pychess/ic/ICLounge.py:2108 lib/pychess/Utils/repr.py:10 #: lib/pychess/widgets/ChessClock.py:40 #: lib/pychess/widgets/TaskerManager.py:153 msgid "White" msgstr "Białe" #: glade/fics_lounge.glade:1414 lib/pychess/Database/gamelist.py:40 #: lib/pychess/ic/ICLounge.py:1358 lib/pychess/ic/ICLounge.py:1558 #: lib/pychess/ic/ICLounge.py:2110 lib/pychess/Utils/repr.py:10 #: lib/pychess/widgets/ChessClock.py:40 #: lib/pychess/widgets/TaskerManager.py:154 msgid "Black" msgstr "Czarne" #: glade/fics_lounge.glade:1453 msgid "Your Color" msgstr "Twój Kolor" #: glade/fics_lounge.glade:1512 msgid "Play normal chess rules" msgstr "Zagraj w szachy o normalnych zasadach" #: glade/fics_lounge.glade:1552 msgid "Play" msgstr "Graj" #: glade/fics_lounge.glade:1618 glade/newInOut.glade:833 msgid "Chess Variant" msgstr "Wariant szachów" #: glade/fics_lounge.glade:1676 msgid "Rated game" msgstr "Gra punktowana" #: glade/fics_lounge.glade:1692 msgid "Manually accept opponent" msgstr "Zaakceptuj przeciwnika manualnie" #: glade/fics_lounge.glade:1722 msgid "Options" msgstr "Opcje" #: glade/fics_lounge.glade:1750 msgid "PyChess - Internet Chess: FICS" msgstr "PyChess - Internetowe Szachy: FICS" #: glade/fics_lounge.glade:1823 msgid "_Clear Seeks" msgstr "_Wyczyść Pokoje" #: glade/fics_lounge.glade:1847 msgid "_Accept" msgstr "_Akceptuj" #: glade/fics_lounge.glade:1871 msgid "_Decline" msgstr "_Odmów" #: glade/fics_lounge.glade:2151 msgid "2 min, Fischer Random, 1800↓, Black" msgstr "2 min, Fischer Random, 1800↓, Czarne" #: glade/fics_lounge.glade:2172 msgid "10 min + 6 sec/move, 1400↑, White" msgstr "10 min + 6 sek/ruch, 1400↑, Białe" #: glade/fics_lounge.glade:2193 msgid "5 min, 1200-1800, Manual" msgstr "5 min, 1200-1800, Manualny" #: glade/fics_lounge.glade:2247 msgid "Send all seeks" msgstr "" #: glade/fics_lounge.glade:2301 msgid "Send seek" msgstr "Wyślij żądanie" #: glade/fics_lounge.glade:2337 msgid "Create Seek" msgstr "Utwórz żądanie" #: glade/fics_lounge.glade:2353 msgid "_Seeks / Challenges" msgstr "_Żądania/wyzwania" #: glade/fics_lounge.glade:2374 lib/pychess/ic/ICLounge.py:472 #: lib/pychess/ic/ICLounge.py:670 lib/pychess/ic/ICLounge.py:1357 #: lib/pychess/ic/ICLounge.py:1358 msgid "Rating" msgstr "Ranking" #: glade/fics_lounge.glade:2399 msgid "Time" msgstr "Czas" #: glade/fics_lounge.glade:2419 msgid "Seek _Graph" msgstr "Wykres _Żądań" #: glade/fics_lounge.glade:2444 msgid "0 Players Ready" msgstr "0 Graczy Gotowych" #: glade/fics_lounge.glade:2496 msgid "Challenge" msgstr "Wyzwanie" #: glade/fics_lounge.glade:2549 glade/fics_lounge.glade:2735 msgid "Observe" msgstr "Obserwuj" #: glade/fics_lounge.glade:2602 msgid "Start Private Chat" msgstr "Utwórz Prywatny Czat" #: glade/fics_lounge.glade:2659 msgid "_Player List" msgstr "_Lista graczy" #: glade/fics_lounge.glade:2792 msgid "_Game List" msgstr "_Lista gier" #: glade/fics_lounge.glade:2847 msgid "_My games" msgstr "" #: glade/fics_lounge.glade:2904 glade/PyChess.glade:841 msgid "Offer _Resume" msgstr "Zaproponuj _Wznowienie" #: glade/fics_lounge.glade:2962 glade/PyChess.glade:880 msgid "R_esign" msgstr "Z_rezygnuj" #: glade/fics_lounge.glade:3006 glade/PyChess.glade:820 msgid "Offer _Draw" msgstr "Zaproponuj _Remis" #: glade/fics_lounge.glade:3050 msgid "Offer A_bort" msgstr "Zaproponuj P_rzerwanie" #: glade/fics_lounge.glade:3107 msgid "Pre_view" msgstr "Podgląd" #: glade/fics_lounge.glade:3151 msgid "Examine" msgstr "" #: glade/fics_lounge.glade:3208 msgid "_Archived" msgstr "" #: glade/fics_lounge.glade:3313 msgid "News" msgstr "Wiadomości" #: glade/fics_lounge.glade:3345 msgid "Show Console" msgstr "Pokaż konsolę" #: glade/fics_lounge.glade:3359 msgid "Show _Chat" msgstr "Pokaż _Chat" #: glade/fics_lounge.glade:3373 msgid "_Log Off" msgstr "_Wyloguj Się" #: glade/fics_lounge.glade:3393 msgid "Tools" msgstr "Narzędzia" #: glade/fics_lounge.glade:3428 msgid "Asymmetric Random " msgstr "" #: glade/findbar.glade:6 msgid "window1" msgstr "Okno 1" #: glade/findbar.glade:21 msgid "0 of 0" msgstr "0 z 0" #: glade/findbar.glade:66 msgid "Search:" msgstr "Szukaj:" #: glade/findbar.glade:134 msgid "_Previous" msgstr "_Poprzedni" #: glade/findbar.glade:192 msgid "_Next" msgstr "_Następny" #: glade/newInOut.glade:45 lib/pychess/widgets/newGameDialog.py:445 msgid "New Game" msgstr "Nowa gra" #: glade/newInOut.glade:108 msgid "_Start Game" msgstr "_Rozpocznij grę" #: glade/newInOut.glade:130 msgid "Copy FEN" msgstr "" #: glade/newInOut.glade:143 msgid "Clear" msgstr "" #: glade/newInOut.glade:156 msgid "Paste FEN" msgstr "" #: glade/newInOut.glade:257 msgid "_Black player:" msgstr "_Czarni:" #: glade/newInOut.glade:274 msgid "_White player:" msgstr "_Biali:" #: glade/newInOut.glade:385 msgid "Players" msgstr "Gracze" #: glade/newInOut.glade:436 msgid "_Untimed" msgstr "_Bez ograniczeń" #: glade/newInOut.glade:475 msgid "Blitz: 5 min" msgstr "" #: glade/newInOut.glade:526 msgid "Rapid: 15 min + 10 sec/move" msgstr "" #: glade/newInOut.glade:575 msgid "Normal: 40 min + 15 sec/move" msgstr "" #: glade/newInOut.glade:684 msgid "_Play Normal chess" msgstr "_Zagraj w Zwykłe szachy" #: glade/newInOut.glade:724 msgid "Play Fischer Random chess" msgstr "Zagraj w szachy Fisher Random" #: glade/newInOut.glade:774 msgid "Play Losers chess" msgstr "Zagraj w szachy Losers chess" #: glade/newInOut.glade:919 msgid "Open Game" msgstr "Wczytaj Grę" #: glade/newInOut.glade:1162 msgid "Initial Position" msgstr "Początkowe Położenie" #: glade/newInOut.glade:1219 msgid "Enter Game Notation" msgstr "Wpisz Notację Gry" #: glade/newInOut.glade:1314 msgid "Halfmove clock" msgstr "" #: glade/newInOut.glade:1327 msgid "En passant line" msgstr "" #: glade/newInOut.glade:1339 msgid "Side to move" msgstr "" #: glade/newInOut.glade:1351 msgid "Move number" msgstr "" #: glade/newInOut.glade:1361 msgid "Black O-O" msgstr "" #: glade/newInOut.glade:1375 msgid "Black O-O-O" msgstr "" #: glade/newInOut.glade:1389 msgid "White O-O-O" msgstr "" #: glade/newInOut.glade:1403 msgid "White O-O" msgstr "" #: glade/promotion.glade:7 msgid "Promotion" msgstr "Promocja" #: glade/promotion.glade:49 lib/pychess/Utils/repr.py:12 msgid "Queen" msgstr "Hetmana" #: glade/promotion.glade:95 lib/pychess/Utils/repr.py:12 msgid "Rook" msgstr "Wieżę" #: glade/promotion.glade:141 lib/pychess/Utils/repr.py:12 msgid "Bishop" msgstr "Gońca" #: glade/promotion.glade:187 lib/pychess/Utils/repr.py:12 msgid "Knight" msgstr "Skoczka" #: glade/promotion.glade:233 lib/pychess/Utils/repr.py:12 msgid "King" msgstr "Król" #: glade/promotion.glade:265 msgid "Promote pawn to what?" msgstr "Promuj piona na:" #: glade/PyChess.glade:9 msgid "Chess client" msgstr "" #: glade/PyChess.glade:44 msgid "Game information" msgstr "Informacje o grze" #: glade/PyChess.glade:164 msgid "Event:" msgstr "Zdarzenie:" #: glade/PyChess.glade:178 msgid "Site:" msgstr "Strona:" #: glade/PyChess.glade:204 msgid "Round:" msgstr "Runda:" #: glade/PyChess.glade:237 msgid "White:" msgstr "Białe:" #: glade/PyChess.glade:249 msgid "Black:" msgstr "Czarne:" #: glade/PyChess.glade:302 msgid "Game data" msgstr "Dane o grze" #: glade/PyChess.glade:357 msgid "Date of game" msgstr "Data gry" #: glade/PyChess.glade:495 msgid "_Game" msgstr "_Gra" #: glade/PyChess.glade:502 msgid "_New Game" msgstr "_Nowa gra" #: glade/PyChess.glade:515 msgid "Play _Internet Chess" msgstr "Graj w _Internetowe Szachy" #: glade/PyChess.glade:534 msgid "_Load Game" msgstr "_Wczytaj grę" #: glade/PyChess.glade:550 msgid "Load _Recent Game" msgstr "Wczytaj _Ostatnią Grę" #: glade/PyChess.glade:558 msgid "Open _Database" msgstr "" #: glade/PyChess.glade:569 lib/pychess/widgets/newGameDialog.py:615 msgid "Setup Position" msgstr "" #: glade/PyChess.glade:579 msgid "Enter Game _Notation" msgstr "" #: glade/PyChess.glade:592 msgid "_Save Game" msgstr "_Zapisz grę" #: glade/PyChess.glade:606 msgid "Save Game _As" msgstr "Zapi_sz grę jako" #: glade/PyChess.glade:624 msgid "Share Game" msgstr "" #: glade/PyChess.glade:630 msgid "_Export Position" msgstr "_Eksportuj Położenie" #: glade/PyChess.glade:644 msgid "_Analyze Game" msgstr "" #: glade/PyChess.glade:678 msgid "Player _Rating" msgstr "_Ranking gracza" #: glade/PyChess.glade:723 msgid "_Edit" msgstr "" #: glade/PyChess.glade:734 msgid "_Copy PGN" msgstr "" #: glade/PyChess.glade:746 msgid "_Copy FEN" msgstr "" #: glade/PyChess.glade:763 msgid "_Engines" msgstr "" #: glade/PyChess.glade:789 msgid "_Actions" msgstr "_Akcje" #: glade/PyChess.glade:800 msgid "Offer _Abort" msgstr "Zaproponuj _Przerwanie" #: glade/PyChess.glade:810 msgid "Offer Ad_journment" msgstr "" #: glade/PyChess.glade:831 msgid "Offer _Pause" msgstr "Zaproponuj _Pauzę" #: glade/PyChess.glade:847 msgid "Offer _Undo" msgstr "Zaproponuj _Cofnięcie" #: glade/PyChess.glade:870 msgid "_Call Flag" msgstr "_Zgłoś koniec czasu" #: glade/PyChess.glade:890 msgid "Ask to _Move" msgstr "" #: glade/PyChess.glade:905 msgid "Auto Call _Flag" msgstr "" #: glade/PyChess.glade:918 msgid "_View" msgstr "_Widok" #: glade/PyChess.glade:925 msgid "_Rotate Board" msgstr "_Obróć szachownicę" #: glade/PyChess.glade:939 msgid "_Fullscreen" msgstr "_Pełny ekran" #: glade/PyChess.glade:952 msgid "Leave _Fullscreen" msgstr "Pozostaw _Pełny Ekran" #: glade/PyChess.glade:969 msgid "_Show Sidepanels" msgstr "" #: glade/PyChess.glade:980 msgid "_Log Viewer" msgstr "_Logi" #: glade/PyChess.glade:997 msgid "_Hint mode" msgstr "Tryb _podpowiedzi" #: glade/PyChess.glade:1009 msgid "Sp_y mode" msgstr "Tryb _szpiegowski" #: glade/PyChess.glade:1024 msgid "_Help" msgstr "_Pomoc" #: glade/PyChess.glade:1034 msgid "About Chess" msgstr "O szachach" #: glade/PyChess.glade:1043 msgid "How to Play" msgstr "Pomoc" #: glade/PyChess.glade:1052 msgid "Translate PyChess" msgstr "Przetłumacz PyChess" #: glade/PyChess.glade:1058 msgid "Tip of the Day" msgstr "Wskazówka Dnia" #: glade/PyChess.glade:1153 msgid "Default" msgstr "" #: glade/PyChess.glade:1156 msgid "Knights" msgstr "" #: glade/PyChess.glade:1167 lib/pychess/widgets/preferencesDialog.py:349 msgid "Beep" msgstr "Bip" #: glade/PyChess.glade:1170 lib/pychess/widgets/preferencesDialog.py:350 msgid "Select sound file..." msgstr "Wybierz plik dźwiękowy..." #: glade/PyChess.glade:1173 lib/pychess/widgets/preferencesDialog.py:348 msgid "No sound" msgstr "Bez dźwięku" #: glade/PyChess.glade:1180 msgid "Preferences" msgstr "Preferencje" #: glade/PyChess.glade:1218 msgid "The displayed name of the first human player, e.g., John." msgstr "Wyświetlane imię pierwszego gracza, np. Jan." #: glade/PyChess.glade:1230 msgid "Name of _first human player:" msgstr "Imię _pierwszego gracza:" #: glade/PyChess.glade:1259 msgid "The displayed name of the guest player, e.g., Mary." msgstr "Wyświetlane imię gościa, np. Maria." #: glade/PyChess.glade:1271 msgid "Name of s_econd human player:" msgstr "Imię d_rugiego gracza:" #: glade/PyChess.glade:1307 msgid "_Hide tabs when only one game is open" msgstr "_Schowaj karty kiedy tylko jedna gra jest otwarta" #: glade/PyChess.glade:1312 msgid "" "If set, this hides the tab in the top of the playing window, when it is not " "needed." msgstr "" #: glade/PyChess.glade:1326 msgid "_Use main app closer [x] to close all games" msgstr "" #: glade/PyChess.glade:1331 msgid "" "If set, clicking on main application window closer first time it closes all " "games." msgstr "" #: glade/PyChess.glade:1345 msgid "Auto _rotate board to current human player" msgstr "Automatycznie obracaj stół dla aktualnego gracza" #: glade/PyChess.glade:1350 msgid "" "If set, the board will turn after each move, to show the natural view for " "the current player." msgstr "Po ustawieniu, szachownica będzie obracała się po każdym ruchu, aby widok dla aktualnego gracza był naturalny." #: glade/PyChess.glade:1364 msgid "Auto _promote to queen" msgstr "" #: glade/PyChess.glade:1369 msgid "If set, pawn promotes to queen without promotion dialog selection." msgstr "" #: glade/PyChess.glade:1383 msgid "Face _to Face display mode" msgstr "Tryb wyświetlania \"Twarzą w Twarz\"" #: glade/PyChess.glade:1388 msgid "" "If set, the black pieces will be head down, suitable for playing against " "friends on mobile devices." msgstr "Po ustawieniu, szachy po przeciwnej stronie będą odwrócone do góry nogami, odpowiednio osób grających na przenośnym urządzeniu." #: glade/PyChess.glade:1402 msgid "Sho_w cords" msgstr "Pokaż pozycje" #: glade/PyChess.glade:1407 msgid "" "If set, the playing board will display labels and ranks for each chess " "field. These are usable in chess notation." msgstr "Po ustawieniu, wokół szachownicy pojawią się oznaczenia dla poszczególnych pól. Przydatne do ręcznej notacji." #: glade/PyChess.glade:1421 msgid "Show _captured pieces" msgstr "Pokaż zbite figury" #: glade/PyChess.glade:1426 msgid "If set, the captured figurines will be shown next to the board." msgstr "" #: glade/PyChess.glade:1440 msgid "Prefer figures in _notation" msgstr "Figury w notacji" #: glade/PyChess.glade:1445 msgid "" "If set, PyChess will use figures to express moved pieces, rather than " "uppercase letters." msgstr "Po ustawieniu, PyChess zamieni wielkie litery na symbole figur w notacji." #: glade/PyChess.glade:1464 msgid "If set, PyChess will colorize suboptimal analyzed moves with red." msgstr "" #: glade/PyChess.glade:1477 msgid "Show elapsed move times" msgstr "Pokaż pozostały czas ruchu" #: glade/PyChess.glade:1482 msgid "If set, the elapsed time that a player used for the move is shown." msgstr "" #: glade/PyChess.glade:1500 msgid "If set, the hint analyzer engine evaluation value is shown." msgstr "" #: glade/PyChess.glade:1526 msgid "General Options" msgstr "" #: glade/PyChess.glade:1560 msgid "F_ull board animation" msgstr "Pełna animacja stołu." #: glade/PyChess.glade:1565 msgid "Animate pieces, board rotation and more. Use this on fast machines." msgstr "Animuj m.in. bierki i obroty rotacji szachownicy. Użyj tej opcji na szybkich maszynach." #: glade/PyChess.glade:1579 msgid "Only animate _moves" msgstr "Animuj tylko _ruchy" #: glade/PyChess.glade:1584 msgid "Only animate piece moves." msgstr "Animuj tylko ruchy bierek" #: glade/PyChess.glade:1599 msgid "No _animation" msgstr "Brak _animacji" #: glade/PyChess.glade:1604 msgid "Never use animation. Use this on slow machines." msgstr "Nigdy nie animuj. Użyj tej opcji na powolnych maszynach." #: glade/PyChess.glade:1632 msgid "Animation" msgstr "Animacja" #: glade/PyChess.glade:1651 msgid "_General" msgstr "_Główne" #: glade/PyChess.glade:1692 msgid "Use opening _book" msgstr "" #: glade/PyChess.glade:1697 msgid "If set, PyChess will suggest best opening moves on hint panel." msgstr "" #: glade/PyChess.glade:1724 msgid "Polyglot book file:" msgstr "" #: glade/PyChess.glade:1768 msgid "Use _local tablebases" msgstr "" #: glade/PyChess.glade:1773 msgid "" "If set, PyChess will show game results for different moves in positions containing 6 or less pieces.\n" "You can download tablebase files from:\n" "http://www.olympuschess.com/egtb/gaviota/" msgstr "" #: glade/PyChess.glade:1803 msgid "Gaviota TB path:" msgstr "" #: glade/PyChess.glade:1843 msgid "Use _online tablebases" msgstr "" #: glade/PyChess.glade:1848 msgid "" "If set, PyChess will show game results for different moves in positions containing 6 or less pieces.\n" "It will search positions from http://www.k4it.de/" msgstr "" #: glade/PyChess.glade:1870 msgid "Opening, endgame" msgstr "" #: glade/PyChess.glade:1904 msgid "Use _analyzer" msgstr "Uzywaj _analizatora" #: glade/PyChess.glade:1946 msgid "" "The analyzer will run in the background and analyze the game. This is " "necessary for the hint mode to work" msgstr "Analizator będzie pracowal w tle i analizował grę. Ta opcja jest konieczna do trybu podpowiedzi" #: glade/PyChess.glade:1978 msgid "Use _inverted analyzer" msgstr "Używaj _wstecznego analizatora" #: glade/PyChess.glade:2020 msgid "" "The inverse analyzer will analyze the game as if your opponent was to move. " "This is necessary for the spy mode to work" msgstr "Wsteczny analizator będzie analizował grę Twego przeciwnika. Ta opcja jest konieczna do trybu szpiegowskiego" #: glade/PyChess.glade:2096 msgid "Analyzing" msgstr "Analizowanie" #: glade/PyChess.glade:2118 msgid "_Hints" msgstr "" #: glade/PyChess.glade:2263 msgid "Uninstall" msgstr "Odinstaluj" #: glade/PyChess.glade:2317 msgid "Ac_tive" msgstr "Ak_tywuj" #: glade/PyChess.glade:2367 msgid "Installed Sidepanels" msgstr "Zainstalowane Panele Boczne" #: glade/PyChess.glade:2382 msgid "Side_panels" msgstr "Panele Boczne" #: glade/PyChess.glade:2440 msgid "Light Squares :" msgstr "" #: glade/PyChess.glade:2479 msgid "Dark Squares :" msgstr "" #: glade/PyChess.glade:2515 msgid "Reset Default Colours" msgstr "" #: glade/PyChess.glade:2551 msgid "Board Colours" msgstr "" #: glade/PyChess.glade:2610 msgid "Chess Sets" msgstr "" #: glade/PyChess.glade:2634 msgid "Themes" msgstr "Motywy" #: glade/PyChess.glade:2659 msgid "_Use sounds in PyChess" msgstr "_Używaj dźwięków w PyChess" #: glade/PyChess.glade:2982 msgid "A player _checks:" msgstr "_Szach" #: glade/PyChess.glade:2997 msgid "A player _moves:" msgstr "Gracz _wykonał ruch" #: glade/PyChess.glade:3010 msgid "Game is _drawn:" msgstr "Gra zakończona _remisem:" #: glade/PyChess.glade:3025 msgid "Game is _lost:" msgstr "Gra została _przegrana:" #: glade/PyChess.glade:3040 msgid "Game is _won:" msgstr "Gra została w_ygrana:" #: glade/PyChess.glade:3055 msgid "A player c_aptures:" msgstr "_Zbicie" #: glade/PyChess.glade:3084 msgid "Game is _set-up:" msgstr "Gra jest _ustawiona:" #: glade/PyChess.glade:3136 msgid "_Observed moves:" msgstr "_Obserwowane ruchy:" #: glade/PyChess.glade:3151 msgid "Observed _ends:" msgstr "Obserwowan_e zakończenia:" #: glade/PyChess.glade:3265 msgid "Short on _time:" msgstr "" #: glade/PyChess.glade:3317 msgid "_Invalid move:" msgstr "" #: glade/PyChess.glade:3369 msgid "Activate alarm when _remaining sec is:" msgstr "" #: glade/PyChess.glade:3416 msgid "Play Sound When..." msgstr "Odtwarzaj dźwięk, gdy..." #: glade/PyChess.glade:3438 msgid "_Sounds" msgstr "_Dźwięki" #: glade/PyChess.glade:3463 msgid "_Auto save finished games" msgstr "" #: glade/PyChess.glade:3497 msgid "Save files to:" msgstr "" #: glade/PyChess.glade:3525 msgid "Use name format:" msgstr "" #: glade/PyChess.glade:3569 msgid "Names: #n1, #n2" msgstr "" #: glade/PyChess.glade:3582 msgid "Year, month, day: #y, #m, #d" msgstr "" #: glade/PyChess.glade:3619 msgid "Save elapsed move _times" msgstr "" #: glade/PyChess.glade:3644 msgid "Save analyzing engine _evaluation values" msgstr "" #: glade/PyChess.glade:3669 msgid "Save _own games only" msgstr "" #: glade/PyChess.glade:3698 msgid "Save" msgstr "" #: glade/PyChess.glade:3728 msgid "uci" msgstr "" #: glade/PyChess.glade:3731 msgid "xboard" msgstr "" #: glade/PyChess.glade:3739 msgid "Manage engines" msgstr "Zarządzaj silnikami" #: glade/PyChess.glade:3837 msgid "Command:" msgstr "Komenda:" #: glade/PyChess.glade:3851 msgid "Protocol:" msgstr "Protokół:" #: glade/PyChess.glade:3865 msgid "Parameters:" msgstr "Parametry:" #: glade/PyChess.glade:3878 msgid "Command line parameters needed by the engine." msgstr "Linia parametrów wymaganych przez silnik." #: glade/PyChess.glade:3903 msgid "" "Engines use uci or xboard communication protocol to talk to the GUI.\n" "If it can use both you can set here which one you like." msgstr "" #: glade/PyChess.glade:3929 msgid "Working directory:" msgstr "Katalog roboczy:" #: glade/PyChess.glade:3942 msgid "The directory where the engine will be started from." msgstr "Katalog startowy silnika." #: glade/saveGamesDialog.glade:7 msgid "Quit PyChess" msgstr "Wyjdź z PyChess" #: glade/saveGamesDialog.glade:24 lib/pychess/widgets/ionest.py:424 msgid "Close _without Saving" msgstr "Zamknij _bez zapisywania" #: glade/saveGamesDialog.glade:83 msgid "_Save %d documents" msgstr "_Zapisz %d dokument(y)" #: glade/saveGamesDialog.glade:141 msgid "" "There are %d games with unsaved moves. Save changes before " "closing?" msgstr "Jest %d gier z niezapisanymi położeniami. Zapisać przed wyjściem?" #: glade/saveGamesDialog.glade:161 msgid "Select the games you want to save:" msgstr "Wybierz gry, które chcesz zapisać:" #: glade/saveGamesDialog.glade:204 msgid "If you don't save, new changes to your games will be permanently lost." msgstr "Jeśli nie zapiszesz, nowe zmiany w twoich grach zostaną utracone bezpowrotnie" #: glade/taskers.glade:126 msgid "_Opponent:" msgstr "_Przeciwnik" #: glade/taskers.glade:154 msgid "_Your Color:" msgstr "_Twój Kolor" #: glade/taskers.glade:219 msgid "_Start Game" msgstr "_Rozpocznij Grę" #: glade/taskers.glade:338 msgid "Log on as G_uest" msgstr "Zaloguj się jako G_ość" #: glade/taskers.glade:410 msgid "Ha_ndle:" msgstr "" #: glade/taskers.glade:469 msgid "_Connect to server" msgstr "" #: glade/tipoftheday.glade:7 msgid "Tip Of The day" msgstr "Wskazówka dnia" #: glade/tipoftheday.glade:62 msgid "Show tips at startup" msgstr "Pokazuj wskazówki po uruchomieniu" #: lib/pychess/Main.py:302 msgid "http://en.wikipedia.org/wiki/Chess" msgstr "http://pl.wikipedia.org/wiki/Szachy" #: lib/pychess/Main.py:305 msgid "http://en.wikipedia.org/wiki/Rules_of_chess" msgstr "http://pl.wikipedia.org/wiki/Zasady_gry_w_szachy" #: lib/pychess/Main.py:370 lib/pychess/widgets/gamenanny.py:80 msgid "Welcome" msgstr "Witaj" #: lib/pychess/Database/gamelist.py:40 msgid "Id" msgstr "" #: lib/pychess/Database/gamelist.py:40 msgid "W Elo" msgstr "" #: lib/pychess/Database/gamelist.py:40 msgid "B Elo" msgstr "" #: lib/pychess/Database/gamelist.py:41 msgid "Result" msgstr "" #: lib/pychess/Database/gamelist.py:41 msgid "Event" msgstr "" #: lib/pychess/Database/gamelist.py:41 msgid "Site" msgstr "" #: lib/pychess/Database/gamelist.py:41 msgid "Round" msgstr "" #: lib/pychess/Database/gamelist.py:41 msgid "Date" msgstr "" #: lib/pychess/Database/gamelist.py:41 msgid "ECO" msgstr "" #: lib/pychess/Database/gamelist.py:62 msgid "PyChess Game Database" msgstr "" #: lib/pychess/Database/PgnImport.py:188 #, python-format msgid "The game #%s can't be loaded, because of an error parsing FEN" msgstr "" #: lib/pychess/ic/FICSConnection.py:139 msgid "The connection was broken - got \"end of file\" message" msgstr "Połączenie przerwane - otrzymano wiadomość \"koniec pliku\"" #: lib/pychess/ic/FICSConnection.py:140 #, python-format msgid "'%s' is not a registered name" msgstr "'%s' nie jest zarejestrowaną nazwą" #: lib/pychess/ic/FICSConnection.py:141 msgid "" "The entered password was invalid.\n" "If you forgot your password, go to http://www.freechess.org/password to request a new one over email." msgstr "" #: lib/pychess/ic/FICSConnection.py:145 #, python-format msgid "Sorry '%s' is already logged in" msgstr "" #: lib/pychess/ic/FICSConnection.py:146 #, python-format msgid "'%s' is a registered name. If it is yours, type the password." msgstr "" #: lib/pychess/ic/FICSConnection.py:147 msgid "" "Due to abuse problems, guest connections have been prevented.\n" "You can still register on http://www.freechess.org" msgstr "" #: lib/pychess/ic/FICSConnection.py:166 msgid "Connecting to server" msgstr "Łączenie z serwerem" #: lib/pychess/ic/FICSConnection.py:181 msgid "Logging on to server" msgstr "Logowanie" #: lib/pychess/ic/FICSConnection.py:239 msgid "Setting up environment" msgstr "Przygotowywanie środowiska" #: lib/pychess/ic/FICSObjects.py:35 lib/pychess/ic/FICSObjects.py:47 #, python-format msgid "%(player)s is %(status)s" msgstr "" #: lib/pychess/ic/FICSObjects.py:46 msgid "not playing" msgstr "" #: lib/pychess/ic/FICSObjects.py:54 lib/pychess/ic/ICLounge.py:1136 #: lib/pychess/ic/ICLounge.py:2209 lib/pychess/ic/__init__.py:98 #: lib/pychess/widgets/newGameDialog.py:153 msgid "Blitz" msgstr "Szachy błyskawiczne" #: lib/pychess/ic/FICSObjects.py:58 lib/pychess/ic/ICLounge.py:1137 #: lib/pychess/ic/ICLounge.py:2209 lib/pychess/ic/__init__.py:100 msgid "Lightning" msgstr "Turbo" #: lib/pychess/ic/FICSObjects.py:60 lib/pychess/Variants/atomic.py:15 msgid "Atomic" msgstr "" #: lib/pychess/ic/FICSObjects.py:62 lib/pychess/Variants/bughouse.py:9 msgid "Bughouse" msgstr "" #: lib/pychess/ic/FICSObjects.py:64 lib/pychess/Variants/crazyhouse.py:9 msgid "Crazyhouse" msgstr "" #: lib/pychess/ic/FICSObjects.py:66 lib/pychess/Variants/losers.py:9 msgid "Losers" msgstr "" #: lib/pychess/ic/FICSObjects.py:68 lib/pychess/Variants/suicide.py:12 msgid "Suicide" msgstr "" #: lib/pychess/ic/FICSObjects.py:70 lib/pychess/ic/__init__.py:129 msgid "Wild" msgstr "" #: lib/pychess/ic/FICSObjects.py:117 msgid "Online" msgstr "Online" #: lib/pychess/ic/FICSObjects.py:118 lib/pychess/ic/FICSObjects.py:143 msgid "Offline" msgstr "Offline" #: lib/pychess/ic/FICSObjects.py:133 msgid "Available" msgstr "Dostępny" #: lib/pychess/ic/FICSObjects.py:135 msgid "Playing" msgstr "Gra" #: lib/pychess/ic/FICSObjects.py:141 msgid "Idle" msgstr "Nieobecny" #: lib/pychess/ic/FICSObjects.py:145 msgid "Examining" msgstr "" #: lib/pychess/ic/FICSObjects.py:147 msgid "Not Available" msgstr "Niedostępny" #: lib/pychess/ic/FICSObjects.py:149 msgid "Running Simul Match" msgstr "" #: lib/pychess/ic/FICSObjects.py:151 msgid "In Tournament" msgstr "" #: lib/pychess/ic/FICSObjects.py:308 lib/pychess/ic/FICSObjects.py:492 #: lib/pychess/ic/ICLounge.py:2278 msgid "Unrated" msgstr "Niepunktowana" #: lib/pychess/ic/FICSObjects.py:491 lib/pychess/ic/ICLounge.py:670 #: lib/pychess/ic/ICLounge.py:1358 lib/pychess/ic/ICLounge.py:1558 #: lib/pychess/ic/ICLounge.py:2113 msgid "Rated" msgstr "Punktowana" #: lib/pychess/ic/FICSObjects.py:498 lib/pychess/ic/ICLounge.py:2098 #, python-format msgid "%d min" msgstr "%d min" #: lib/pychess/ic/FICSObjects.py:500 #, python-format msgid " + %d sec" msgstr "+ %d sek" #: lib/pychess/ic/FICSObjects.py:517 #, python-format msgid "%(player)s plays %(color)s" msgstr "" #: lib/pychess/ic/FICSObjects.py:519 lib/pychess/ic/ICLounge.py:909 msgid "white" msgstr "" #: lib/pychess/ic/FICSObjects.py:519 lib/pychess/ic/ICLounge.py:909 msgid "black" msgstr "" #: lib/pychess/ic/FICSObjects.py:565 msgid "This is a continuation of an adjourned match" msgstr "" #: lib/pychess/ic/FICSObjects.py:654 msgid "Opponent Rating" msgstr "" #: lib/pychess/ic/FICSObjects.py:656 msgid "Manual Accept" msgstr "" #: lib/pychess/ic/FICSObjects.py:810 msgid "Private" msgstr "Prywatna" #: lib/pychess/ic/FICSObjects.py:930 lib/pychess/ic/ICLounge.py:527 #: lib/pychess/Savers/epd.py:139 msgid "Unknown" msgstr "Nieznany" #: lib/pychess/ic/ICLogon.py:159 lib/pychess/ic/ICLogon.py:165 msgid "Connection Error" msgstr "Błąd połączenia" #: lib/pychess/ic/ICLogon.py:161 msgid "Log on Error" msgstr "Błąd logowania" #: lib/pychess/ic/ICLogon.py:163 msgid "Connection was closed" msgstr "Połączenie zostało zamknięte" #: lib/pychess/ic/ICLogon.py:169 msgid "Address Error" msgstr "" #: lib/pychess/ic/ICLogon.py:172 msgid "Auto-logout" msgstr "" #: lib/pychess/ic/ICLogon.py:173 msgid "You have been logged out because you were idle more than 60 minutes" msgstr "Zostałeś wylogowany, ponieważ byłeś nieobecny ponad 60 minut" #: lib/pychess/ic/ICLounge.py:222 msgid "You have to set kibitz on to see bot messages here." msgstr "" #: lib/pychess/ic/ICLounge.py:241 msgid "" "You may only have 3 outstanding seeks at the same time. If you want to add a" " new seek you must clear your currently active seeks. Clear your seeks?" msgstr "" #: lib/pychess/ic/ICLounge.py:258 msgid "You can't touch this! You are examining a game." msgstr "" #: lib/pychess/ic/ICLounge.py:270 msgid " has declined your offer for a match" msgstr "" #: lib/pychess/ic/ICLounge.py:283 msgid " is censoring you" msgstr "" #: lib/pychess/ic/ICLounge.py:296 msgid " noplay listing you" msgstr "" #: lib/pychess/ic/ICLounge.py:311 msgid " uses a formula not fitting your match request:" msgstr "" #: lib/pychess/ic/ICLounge.py:325 msgid "to manual accept" msgstr "" #: lib/pychess/ic/ICLounge.py:327 msgid "to automatic accept" msgstr "" #: lib/pychess/ic/ICLounge.py:329 msgid "rating range now" msgstr "" #: lib/pychess/ic/ICLounge.py:330 msgid "Seek updated" msgstr "" #: lib/pychess/ic/ICLounge.py:342 msgid "Your seeks have been removed" msgstr "" #: lib/pychess/ic/ICLounge.py:363 msgid " has arrived" msgstr "" #: lib/pychess/ic/ICLounge.py:370 msgid " has departed" msgstr "" #: lib/pychess/ic/ICLounge.py:374 msgid " is present" msgstr "" #: lib/pychess/ic/ICLounge.py:391 sidepanel/chatPanel.py:17 msgid "Chat" msgstr "" #: lib/pychess/ic/ICLounge.py:472 sidepanel/bookPanel.py:366 msgid "Win" msgstr "Zwycięstwo" #: lib/pychess/ic/ICLounge.py:472 sidepanel/bookPanel.py:360 msgid "Draw" msgstr "Remis" #: lib/pychess/ic/ICLounge.py:472 sidepanel/bookPanel.py:363 msgid "Loss" msgstr "Przegrana" #: lib/pychess/ic/ICLounge.py:482 msgid "" "On FICS, your \"Wild\" rating encompasses all of the following variants at " "all time controls:\n" msgstr "" #: lib/pychess/ic/ICLounge.py:494 msgid "Sanctions" msgstr "" #: lib/pychess/ic/ICLounge.py:499 msgid "Email" msgstr "E-mail" #: lib/pychess/ic/ICLounge.py:504 msgid "Spent" msgstr "Wydaj" #: lib/pychess/ic/ICLounge.py:506 msgid "online in total" msgstr "online w sumie" #: lib/pychess/ic/ICLounge.py:512 msgid "Ping" msgstr "Pinguj" #: lib/pychess/ic/ICLounge.py:517 msgid "Connecting" msgstr "Łączenie" #: lib/pychess/ic/ICLounge.py:544 msgid "" "You are currently logged in as a guest.\n" "A guest can't play rated games and therefore isn't able to play as many of the types of matches offered as a registered user. To register an account, go to http://www.freechess.org/Register/index.html." msgstr "" #: lib/pychess/ic/ICLounge.py:669 lib/pychess/ic/ICLounge.py:1136 msgid "Name" msgstr "Nazwa" #: lib/pychess/ic/ICLounge.py:670 lib/pychess/ic/ICLounge.py:1358 #: lib/pychess/ic/ICLounge.py:1558 msgid "Type" msgstr "Typ" #: lib/pychess/ic/ICLounge.py:670 lib/pychess/ic/ICLounge.py:1558 msgid "Clock" msgstr "Zegar" #: lib/pychess/ic/ICLounge.py:726 lib/pychess/ic/ICLounge.py:923 #: lib/pychess/Players/Human.py:250 msgid "Accept" msgstr "" #: lib/pychess/ic/ICLounge.py:728 msgid "Assess" msgstr "" #: lib/pychess/ic/ICLounge.py:734 msgid "Archived" msgstr "" #: lib/pychess/ic/ICLounge.py:848 #, python-format msgid "Active seeks: %d" msgstr "Aktywnych pokoi: %d" #: lib/pychess/ic/ICLounge.py:897 #, python-format msgid "" " would like to resume your adjourned %(time)s %(gametype)s " "game." msgstr "" #: lib/pychess/ic/ICLounge.py:902 #, python-format msgid "" " challenges you to a %(time)s %(rated)s %(gametype)s game" msgstr "" #: lib/pychess/ic/ICLounge.py:907 #, python-format msgid " where %(player)s plays %(color)s." msgstr "" #: lib/pychess/ic/ICLounge.py:924 lib/pychess/Players/Human.py:251 msgid "Decline" msgstr "" #: lib/pychess/ic/ICLounge.py:1065 msgid " min" msgstr "" #: lib/pychess/ic/ICLounge.py:1137 msgid "Status" msgstr "" #: lib/pychess/ic/ICLounge.py:1203 lib/pychess/ic/ICLounge.py:1233 #, python-format msgid "Players: %d" msgstr "" #: lib/pychess/ic/ICLounge.py:1469 #, python-format msgid "Games running: %d" msgstr "" #: lib/pychess/ic/ICLounge.py:1559 msgid "Date/Time" msgstr "" #: lib/pychess/ic/ICLounge.py:1614 #, python-format msgid "" " with whom you have an adjourned %(timecontrol)s %(gametype)s " "game is online." msgstr "" #: lib/pychess/ic/ICLounge.py:1635 msgid "Request Continuation" msgstr "" #: lib/pychess/ic/ICLounge.py:1637 msgid "Examine Adjourned Game" msgstr "" #: lib/pychess/ic/ICLounge.py:1965 msgid "" "The chain button is disabled because you are logged in as a guest. Guests " "can't establish ratings, and the chain button's state has no effect when " "there is no rating to which to tie \"Opponent Strength\" to" msgstr "" #: lib/pychess/ic/ICLounge.py:2006 msgid "Challenge: " msgstr "" #: lib/pychess/ic/ICLounge.py:2044 msgid "If set you can refuse players accepting your seek" msgstr "" #: lib/pychess/ic/ICLounge.py:2048 lib/pychess/ic/ICLounge.py:2051 msgid "This option is not applicable because you're challenging a player" msgstr "" #: lib/pychess/ic/ICLounge.py:2064 msgid "Edit Seek: " msgstr "" #: lib/pychess/ic/ICLounge.py:2095 #, python-format msgid "%(minutes)d min + %(gain)d sec/move" msgstr "" #: lib/pychess/ic/ICLounge.py:2116 msgid "Manual" msgstr "" #: lib/pychess/ic/ICLounge.py:2256 msgid "Any strength" msgstr "" #: lib/pychess/ic/ICLounge.py:2308 msgid "You can't play rated games because you are logged in as a guest" msgstr "Nie możesz grać w gry punktowane, gdyż jesteś zalogowany jako gość." #: lib/pychess/ic/ICLounge.py:2312 msgid "You can't play rated games because \"Untimed\" is checked, " msgstr "" #: lib/pychess/ic/ICLounge.py:2313 msgid "and on FICS, untimed games can't be rated" msgstr "" #: lib/pychess/ic/ICLounge.py:2317 msgid "This option is not available because you're challenging a guest, " msgstr "" #: lib/pychess/ic/ICLounge.py:2318 msgid "and guests can't play rated games" msgstr "" #: lib/pychess/ic/ICLounge.py:2332 lib/pychess/Variants/shuffle.py:16 #: lib/pychess/widgets/newGameDialog.py:266 msgid "Shuffle" msgstr "" #: lib/pychess/ic/ICLounge.py:2333 lib/pychess/widgets/newGameDialog.py:267 msgid "Other (standard rules)" msgstr "" #: lib/pychess/ic/ICLounge.py:2334 lib/pychess/widgets/newGameDialog.py:268 msgid "Other (non standard rules)" msgstr "" #: lib/pychess/ic/ICLounge.py:2421 msgid "You can't select a variant because \"Untimed\" is checked, " msgstr "" #: lib/pychess/ic/ICLounge.py:2422 msgid "and on FICS, untimed games have to be normal chess rules" msgstr "" #: lib/pychess/ic/ICLounge.py:2454 msgid "Change Tolerance" msgstr "" #: lib/pychess/ic/__init__.py:102 msgid "Examined" msgstr "" #: lib/pychess/ic/__init__.py:103 msgid "Other" msgstr "" #: lib/pychess/ic/__init__.py:182 msgid "Administrator" msgstr "" #: lib/pychess/ic/__init__.py:182 msgid "Blindfold Account" msgstr "" #: lib/pychess/ic/__init__.py:182 msgid "Computer" msgstr "" #: lib/pychess/ic/__init__.py:183 msgid "Team Account" msgstr "" #: lib/pychess/ic/__init__.py:183 msgid "Unregistered" msgstr "" #: lib/pychess/ic/__init__.py:183 msgid "Chess Advisor" msgstr "" #: lib/pychess/ic/__init__.py:184 msgid "Service Representative" msgstr "" #: lib/pychess/ic/__init__.py:184 msgid "Tournament Director" msgstr "" #: lib/pychess/ic/__init__.py:184 msgid "Mamer Manager" msgstr "" #: lib/pychess/ic/__init__.py:185 msgid "Grand Master" msgstr "" #: lib/pychess/ic/__init__.py:185 msgid "International Master" msgstr "" #: lib/pychess/ic/__init__.py:185 msgid "FIDE Master" msgstr "" #: lib/pychess/ic/__init__.py:186 msgid "Woman Grand Master" msgstr "" #: lib/pychess/ic/__init__.py:186 msgid "Woman International Master" msgstr "" #: lib/pychess/ic/__init__.py:186 msgid "Woman FIDE Master" msgstr "" #: lib/pychess/ic/__init__.py:187 msgid "Dummy Account" msgstr "" #: lib/pychess/ic/__init__.py:191 msgid "*" msgstr "" #: lib/pychess/ic/__init__.py:191 lib/pychess/Utils/repr.py:14 msgid "B" msgstr "G" #: lib/pychess/ic/__init__.py:191 msgid "C" msgstr "" #: lib/pychess/ic/__init__.py:192 msgid "T" msgstr "" #: lib/pychess/ic/__init__.py:192 msgid "U" msgstr "" #: lib/pychess/ic/__init__.py:192 msgid "CA" msgstr "" #: lib/pychess/ic/__init__.py:193 msgid "SR" msgstr "" #: lib/pychess/ic/__init__.py:193 msgid "TD" msgstr "" #: lib/pychess/ic/__init__.py:193 msgid "TM" msgstr "" #: lib/pychess/ic/__init__.py:194 msgid "GM" msgstr "" #: lib/pychess/ic/__init__.py:194 msgid "IM" msgstr "" #: lib/pychess/ic/__init__.py:194 msgid "FM" msgstr "" #: lib/pychess/ic/__init__.py:195 msgid "WGM" msgstr "" #: lib/pychess/ic/__init__.py:195 msgid "WIM" msgstr "" #: lib/pychess/ic/__init__.py:195 msgid "WFM" msgstr "" #: lib/pychess/ic/__init__.py:195 msgid "D" msgstr "" #: lib/pychess/ic/__init__.py:195 msgid "H" msgstr "" #: lib/pychess/ic/__init__.py:195 msgid "CM" msgstr "" #: lib/pychess/ic/__init__.py:195 msgid "FA" msgstr "" #: lib/pychess/ic/__init__.py:195 msgid "NM" msgstr "" #: lib/pychess/Players/CECPEngine.py:857 #, python-format msgid "The engine %s reports an error:" msgstr "" #: lib/pychess/Players/Human.py:20 msgid "Your opponent has offered you a draw." msgstr "" #: lib/pychess/Players/Human.py:21 msgid "" "Your opponent has offered you a draw. If you accept this offer, the game " "will end with a score of 1/2 - 1/2." msgstr "Twój przeciwnik zaoferował remis. Jeżeli się zgodzisz, gra skończy się wynikami 1/2 - 1/2." #: lib/pychess/Players/Human.py:23 msgid "Your opponent wants to abort the game." msgstr "" #: lib/pychess/Players/Human.py:24 msgid "" "Your opponent has asked that the game be aborted. If you accept this offer, " "the game will end with no rating change." msgstr "Twój przeciwnik chce przerwać grę. Jeżeli się zgodzisz, gra skończy się bez wyników." #: lib/pychess/Players/Human.py:26 msgid "Your opponent wants to adjourn the game." msgstr "" #: lib/pychess/Players/Human.py:27 msgid "" "Your opponent has asked that the game be adjourned. If you accept this " "offer, the game will be adjourned and you can resume it later (when your " "opponent is online and both players agree to resume)." msgstr "Twój przeciwnik chce zawiesić grę. Jeżeli się zgodzisz, gra zostanie wstrzymana. Będzie można ją kontynuować później (gdy przeciwnik będzie online)." #: lib/pychess/Players/Human.py:29 #, python-format msgid "Your opponent wants to undo %s move(s)." msgstr "" #: lib/pychess/Players/Human.py:30 #, python-format msgid "" "Your opponent has asked that the last %s move(s) be undone. If you accept " "this offer, the game will continue from the earlier position." msgstr "Twój przeciwnik chce cofnąć %s ostatnich ruch(y/ów). Jeżeli się zgodzisz, gra zostanie kontynuowana z wcześniejszego stanu." #: lib/pychess/Players/Human.py:32 msgid "Your opponent wants to pause the game." msgstr "" #: lib/pychess/Players/Human.py:33 msgid "" "Your opponent has asked that the game be paused. If you accept this offer, " "the game clock will be paused until both players agree to resume the game." msgstr "Twój przeciwnik chce wstrzymać grę. Jeżeli się zgodzisz, zegar zostanie wstrzymany dopóki gracze nie zgodzą się ponownie go wznowić." #: lib/pychess/Players/Human.py:35 msgid "Your opponent wants to resume the game." msgstr "" #: lib/pychess/Players/Human.py:36 msgid "" "Your opponent has asked that the game be resumed. If you accept this offer, " "the game clock will continue from where it was paused." msgstr "Twój przeciwnik chce kontynuować grę. Jeżeli się zgodzisz, zegar zostanie włączony ponownie." #: lib/pychess/Players/Human.py:40 msgid "The resignation" msgstr "" #: lib/pychess/Players/Human.py:41 msgid "The flag call" msgstr "" #: lib/pychess/Players/Human.py:42 msgid "The draw offer" msgstr "" #: lib/pychess/Players/Human.py:43 msgid "The abort offer" msgstr "" #: lib/pychess/Players/Human.py:44 msgid "The adjourn offer" msgstr "" #: lib/pychess/Players/Human.py:45 msgid "The pause offer" msgstr "" #: lib/pychess/Players/Human.py:46 msgid "The resume offer" msgstr "" #: lib/pychess/Players/Human.py:47 msgid "The offer to switch sides" msgstr "" #: lib/pychess/Players/Human.py:48 msgid "The takeback offer" msgstr "" #: lib/pychess/Players/Human.py:52 msgid "resign" msgstr "" #: lib/pychess/Players/Human.py:53 msgid "call your opponents flag" msgstr "" #: lib/pychess/Players/Human.py:54 msgid "offer a draw" msgstr "" #: lib/pychess/Players/Human.py:55 msgid "offer an abort" msgstr "" #: lib/pychess/Players/Human.py:56 msgid "offer to adjourn" msgstr "" #: lib/pychess/Players/Human.py:57 msgid "offer a pause" msgstr "" #: lib/pychess/Players/Human.py:58 msgid "offer to resume" msgstr "" #: lib/pychess/Players/Human.py:59 msgid "offer to switch sides" msgstr "" #: lib/pychess/Players/Human.py:60 msgid "offer a takeback" msgstr "" #: lib/pychess/Players/Human.py:61 msgid "ask your opponent to move" msgstr "" #: lib/pychess/Players/Human.py:66 msgid "Your opponent is not out of time." msgstr "Twój przeciwnik ma jeszcze czas do dyspozycji." #: lib/pychess/Players/Human.py:68 msgid "The clock hasn't been started yet." msgstr "" #: lib/pychess/Players/Human.py:70 msgid "You can't switch colors during the game." msgstr "" #: lib/pychess/Players/Human.py:72 msgid "You have tried to undo too many moves." msgstr "" #: lib/pychess/Players/Human.py:180 msgid "Your opponent asks you to hurry!" msgstr "Twój przeciwnik prosi Cię o pośpiech!" #: lib/pychess/Players/Human.py:181 msgid "" "Generally this means nothing, as the game is time-based, but if you want to " "please your opponent, perhaps you should get going." msgstr "" #: lib/pychess/Players/Human.py:259 #, python-format msgid "%s was declined by your opponent" msgstr "%s została odrzucona przez Twojego przeciwnika." #: lib/pychess/Players/Human.py:260 #, python-format msgid "Resend %s?" msgstr "" #: lib/pychess/Players/Human.py:267 msgid "Resend" msgstr "" #: lib/pychess/Players/Human.py:275 #, python-format msgid "%s was withdrawn by your opponent" msgstr "%s została wycofana przez Twojego przeciwnika" #: lib/pychess/Players/Human.py:276 msgid "Your opponent seems to have changed their mind." msgstr "" #: lib/pychess/Players/Human.py:290 #, python-format msgid "Unable to accept %s" msgstr "%s nie może zostać zaakceptowana" #: lib/pychess/Players/Human.py:291 msgid "Probably because it has been withdrawn." msgstr "" #: lib/pychess/Players/Human.py:298 #, python-format msgid "%s returns an error" msgstr "%s zwraca błąd" #: lib/pychess/Savers/chessalpha2.py:12 msgid "Chess Alpha 2 Diagram" msgstr "" #: lib/pychess/Savers/chesspastebin.py:39 msgid "Game shared at " msgstr "" #: lib/pychess/Savers/chesspastebin.py:41 msgid "(Link is available on clipboard.)" msgstr "" #: lib/pychess/Savers/database.py:19 msgid "PyChess database" msgstr "" #: lib/pychess/Savers/epd.py:12 msgid "Chess Position" msgstr "Pozycja Szachowa" #: lib/pychess/Savers/fen.py:12 msgid "Simple Chess Position" msgstr "Prosta Pozycja Szachowa" #: lib/pychess/Savers/fen.py:44 lib/pychess/Savers/pgn.py:329 msgid "The game can't be loaded, because of an error parsing FEN" msgstr "" #: lib/pychess/Savers/pgnbase.py:100 #, python-format msgid "" "The game can't be read to end, because of an error parsing move %(moveno)s " "'%(notation)s'." msgstr "" #: lib/pychess/Savers/pgnbase.py:102 #, python-format msgid "The move failed because %s." msgstr "" #: lib/pychess/Savers/pgnbase.py:110 #, python-format msgid "Error parsing move %(moveno)s %(mstr)s" msgstr "" #: lib/pychess/Savers/pgn.py:28 msgid "Chess Game" msgstr "Zapis Gry" #: lib/pychess/Savers/pgn.py:362 msgid "Invalid move." msgstr "" #: lib/pychess/Savers/png.py:15 msgid "Png image" msgstr "" #: lib/pychess/System/ping.py:31 msgid "Destination Host Unreachable" msgstr "" #: lib/pychess/System/ping.py:74 msgid "Died" msgstr "" #: lib/pychess/Utils/GameModel.py:147 msgid "Local Event" msgstr "Zdarzenie" #: lib/pychess/Utils/GameModel.py:148 msgid "Local Site" msgstr "Strona" #: lib/pychess/Utils/repr.py:12 msgid "Pawn" msgstr "" #: lib/pychess/Utils/repr.py:14 msgid "P" msgstr "P" #: lib/pychess/Utils/repr.py:14 msgid "N" msgstr "S" #: lib/pychess/Utils/repr.py:14 msgid "R" msgstr "W" #: lib/pychess/Utils/repr.py:14 msgid "Q" msgstr "H" #: lib/pychess/Utils/repr.py:14 msgid "K" msgstr "K" #: lib/pychess/Utils/repr.py:17 msgid "The game ended in a draw" msgstr "Gra zakończyła się remisem" #: lib/pychess/Utils/repr.py:18 #, python-format msgid "%(white)s won the game" msgstr "" #: lib/pychess/Utils/repr.py:19 #, python-format msgid "%(black)s won the game" msgstr "" #: lib/pychess/Utils/repr.py:20 msgid "The game has been killed" msgstr "Gra została \"skillowana\"" #: lib/pychess/Utils/repr.py:21 msgid "The game has been adjourned" msgstr "Gra została odroczona" #: lib/pychess/Utils/repr.py:22 msgid "The game has been aborted" msgstr "Gra została przerwana" #: lib/pychess/Utils/repr.py:26 msgid "Because neither player has sufficient material to mate" msgstr "" #: lib/pychess/Utils/repr.py:27 msgid "Because the same position was repeated three times in a row" msgstr "" #: lib/pychess/Utils/repr.py:28 msgid "Because the last 50 moves brought nothing new" msgstr "" #: lib/pychess/Utils/repr.py:29 msgid "Because both players ran out of time" msgstr "" #: lib/pychess/Utils/repr.py:30 #, python-format msgid "Because %(mover)s stalemated" msgstr "" #: lib/pychess/Utils/repr.py:31 msgid "Because both players agreed to a draw" msgstr "" #: lib/pychess/Utils/repr.py:32 lib/pychess/Utils/repr.py:42 msgid "Because of adjudication by an admin" msgstr "" #: lib/pychess/Utils/repr.py:33 msgid "Because the game exceed the max length" msgstr "" #: lib/pychess/Utils/repr.py:34 #, python-format msgid "" "Because %(white)s ran out of time and %(black)s has insufficient material to" " mate" msgstr "" #: lib/pychess/Utils/repr.py:35 #, python-format msgid "" "Because %(black)s ran out of time and %(white)s has insufficient material to" " mate" msgstr "" #: lib/pychess/Utils/repr.py:36 msgid "Because both players have the same amount of pieces" msgstr "" #: lib/pychess/Utils/repr.py:38 #, python-format msgid "Because %(loser)s resigned" msgstr "" #: lib/pychess/Utils/repr.py:39 #, python-format msgid "Because %(loser)s ran out of time" msgstr "" #: lib/pychess/Utils/repr.py:40 #, python-format msgid "Because %(loser)s was checkmated" msgstr "" #: lib/pychess/Utils/repr.py:41 #, python-format msgid "Because %(loser)s disconnected" msgstr "" #: lib/pychess/Utils/repr.py:43 #, python-format msgid "Because %(winner)s has fewer pieces" msgstr "" #: lib/pychess/Utils/repr.py:44 #, python-format msgid "Because %(winner)s lost all pieces" msgstr "" #: lib/pychess/Utils/repr.py:45 #, python-format msgid "Because %(loser)s king exploded" msgstr "" #: lib/pychess/Utils/repr.py:46 #, python-format msgid "Because %(winner)s king reached the center" msgstr "" #: lib/pychess/Utils/repr.py:47 #, python-format msgid "Because %(winner)s was giving check 3 times" msgstr "" #: lib/pychess/Utils/repr.py:49 msgid "Because a player lost connection" msgstr "" #: lib/pychess/Utils/repr.py:50 msgid "Because both players agreed to an adjournment" msgstr "" #: lib/pychess/Utils/repr.py:51 msgid "Because the server was shut down" msgstr "" #: lib/pychess/Utils/repr.py:52 msgid "" "Because a player lost connection and the other player requested adjournment" msgstr "" #: lib/pychess/Utils/repr.py:53 #, python-format msgid "" "Because %(black)s lost connection to the server and %(white)s requested " "adjournment" msgstr "" #: lib/pychess/Utils/repr.py:54 #, python-format msgid "" "Because %(white)s lost connection to the server and %(black)s requested " "adjournment" msgstr "" #: lib/pychess/Utils/repr.py:55 #, python-format msgid "Because %(white)s lost connection to the server" msgstr "" #: lib/pychess/Utils/repr.py:56 #, python-format msgid "Because %(black)s lost connection to the server" msgstr "" #: lib/pychess/Utils/repr.py:58 msgid "Because of adjudication by an admin. No rating changes have occurred." msgstr "" #: lib/pychess/Utils/repr.py:59 msgid "" "Because both players agreed to abort the game. No rating changes have " "occurred." msgstr "" #: lib/pychess/Utils/repr.py:60 msgid "Because of courtesy by a player. No rating changes have occurred." msgstr "" #: lib/pychess/Utils/repr.py:61 msgid "" "Because a player aborted the game. Either player can abort the game without " "the other's consent before the second move. No rating changes have occurred." msgstr "" #: lib/pychess/Utils/repr.py:62 msgid "" "Because a player disconnected and there are too few moves to warrant " "adjournment. No rating changes have occurred." msgstr "" #: lib/pychess/Utils/repr.py:63 msgid "Because the server was shut down. No rating changes have occurred." msgstr "" #: lib/pychess/Utils/repr.py:65 #, python-format msgid "Because the %(white)s engine died" msgstr "" #: lib/pychess/Utils/repr.py:66 #, python-format msgid "Because the %(black)s engine died" msgstr "" #: lib/pychess/Utils/repr.py:67 msgid "Because the connection to the server was lost" msgstr "" #: lib/pychess/Utils/repr.py:68 msgid "The reason is unknown" msgstr "" #: lib/pychess/Utils/TimeModel.py:229 msgid "min" msgstr "min" #: lib/pychess/Utils/TimeModel.py:231 msgid "sec" msgstr "sek" #: lib/pychess/Variants/asean.py:12 msgid "" "ASEAN: http://www.ncf-" "phil.org/downloadables/2014/May/Asean_chess/Laws_of_ASEAN_Chess_2011_Nov_26.doc" msgstr "" #: lib/pychess/Variants/asean.py:13 msgid "ASEAN" msgstr "" #: lib/pychess/Variants/asean.py:33 msgid "Makruk: http://en.wikipedia.org/wiki/Makruk" msgstr "" #: lib/pychess/Variants/asean.py:34 msgid "Makruk" msgstr "" #: lib/pychess/Variants/asean.py:60 msgid "Cambodian: http://www.khmerinstitute.org/culture/ok.html" msgstr "" #: lib/pychess/Variants/asean.py:61 msgid "Cambodian" msgstr "" #: lib/pychess/Variants/asean.py:86 msgid "" "Ai-Wok: http://www.open-" "aurec.com/wbforum/viewtopic.php?p=199364&sid=20963a1de2c164050de019e5ed6bf7c4#p199364" msgstr "" #: lib/pychess/Variants/asean.py:87 msgid "Ai-Wok" msgstr "" #: lib/pychess/Variants/asean.py:111 msgid "Sittuyin: http://en.wikipedia.org/wiki/Sittuyin" msgstr "" #: lib/pychess/Variants/asean.py:112 msgid "Sittuyin" msgstr "" #: lib/pychess/Variants/asymmetricrandom.py:12 msgid "" "FICS wild/4: http://www.freechess.org/Help/HelpFiles/wild.html\n" "* Randomly chosen pieces (two queens or three rooks possible)\n" "* Exactly one king of each color\n" "* Pieces placed randomly behind the pawns, SUBJECT TO THE CONSTRAINT THAT THE BISHOPS ARE BALANCED\n" "* No castling\n" "* Black's arrangement DOES NOT mirrors white's" msgstr "" #: lib/pychess/Variants/asymmetricrandom.py:18 msgid "Asymmetric Random" msgstr "Asymetryczny Losowy" #: lib/pychess/Variants/atomic.py:14 msgid "FICS atomic: http://www.freechess.org/Help/HelpFiles/atomic.html" msgstr "" #: lib/pychess/Variants/blindfold.py:7 msgid "" "Classic chess rules with hidden figurines\n" "http://en.wikipedia.org/wiki/Blindfold_chess" msgstr "" #: lib/pychess/Variants/blindfold.py:9 #: lib/pychess/widgets/newGameDialog.py:264 msgid "Blindfold" msgstr "" #: lib/pychess/Variants/blindfold.py:18 msgid "" "Classic chess rules with hidden pawns\n" "http://en.wikipedia.org/wiki/Blindfold_chess" msgstr "" #: lib/pychess/Variants/blindfold.py:20 msgid "Hidden pawns" msgstr "" #: lib/pychess/Variants/blindfold.py:29 msgid "" "Classic chess rules with hidden pieces\n" "http://en.wikipedia.org/wiki/Blindfold_chess" msgstr "" #: lib/pychess/Variants/blindfold.py:31 msgid "Hidden pieces" msgstr "" #: lib/pychess/Variants/blindfold.py:40 msgid "" "Classic chess rules with all pieces white\n" "http://en.wikipedia.org/wiki/Blindfold_chess" msgstr "" #: lib/pychess/Variants/blindfold.py:42 msgid "All white" msgstr "" #: lib/pychess/Variants/bughouse.py:8 msgid "FICS bughouse: http://www.freechess.org/Help/HelpFiles/bughouse.html" msgstr "" #: lib/pychess/Variants/corner.py:12 msgid "" "http://brainking.com/en/GameRules?tp=2\n" "* Placement of the pieces on the 1st and 8th row are randomized\n" "* The king is in the right hand corner\n" "* Bishops must start on opposite color squares\n" "* Black's starting position is obtained by rotating white's position 180 degrees around the board's center\n" "* No castling" msgstr "" #: lib/pychess/Variants/corner.py:18 msgid "Corner" msgstr "" #: lib/pychess/Variants/crazyhouse.py:8 msgid "" "FICS crazyhouse: http://www.freechess.org/Help/HelpFiles/crazyhouse.html" msgstr "" #: lib/pychess/Variants/euroshogi.py:9 msgid "EuroShogi: http://en.wikipedia.org/wiki/EuroShogi" msgstr "" #: lib/pychess/Variants/euroshogi.py:10 msgid "EuroShogi" msgstr "" #: lib/pychess/Variants/fischerandom.py:18 msgid "" "http://en.wikipedia.org/wiki/Chess960\n" "FICS wild/fr: http://www.freechess.org/Help/HelpFiles/wild.html" msgstr "" #: lib/pychess/Variants/fischerandom.py:20 msgid "Fischer Random" msgstr "" #: lib/pychess/Variants/kingofthehill.py:8 msgid "" "Bringing your king legally to the center (e4, d4, e5, d5) instantly wins the game!\n" "Normal rules apply in other cases and checkmate also ends the game." msgstr "" #: lib/pychess/Variants/kingofthehill.py:10 msgid "King of the hill" msgstr "" #: lib/pychess/Variants/knightodds.py:8 msgid "One player starts with one less knight piece" msgstr "" #: lib/pychess/Variants/knightodds.py:9 msgid "Knight odds" msgstr "" #: lib/pychess/Variants/losers.py:8 msgid "FICS losers: http://www.freechess.org/Help/HelpFiles/losers_chess.html" msgstr "" #: lib/pychess/Variants/normal.py:4 msgid "" "Classic chess rules\n" "http://en.wikipedia.org/wiki/Chess" msgstr "" #: lib/pychess/Variants/normal.py:6 lib/pychess/widgets/newGameDialog.py:157 msgid "Normal" msgstr "Normalny" #: lib/pychess/Variants/pawnodds.py:8 msgid "One player starts with one less pawn piece" msgstr "" #: lib/pychess/Variants/pawnodds.py:9 msgid "Pawn odds" msgstr "" #: lib/pychess/Variants/pawnspassed.py:11 msgid "" "FICS wild/8a: http://www.freechess.org/Help/HelpFiles/wild.html\n" "White pawns start on 5th rank and black pawns on the 4th rank" msgstr "" #: lib/pychess/Variants/pawnspassed.py:13 msgid "Pawns Passed" msgstr "" #: lib/pychess/Variants/pawnspushed.py:10 msgid "" "FICS wild/8: http://www.freechess.org/Help/HelpFiles/wild.html\n" "Pawns start on 4th and 5th ranks rather than 2nd and 7th" msgstr "" #: lib/pychess/Variants/pawnspushed.py:12 msgid "Pawns Pushed" msgstr "" #: lib/pychess/Variants/queenodds.py:8 msgid "One player starts with one less queen piece" msgstr "" #: lib/pychess/Variants/queenodds.py:9 msgid "Queen odds" msgstr "" #: lib/pychess/Variants/randomchess.py:11 msgid "" "FICS wild/3: http://www.freechess.org/Help/HelpFiles/wild.html\n" "* Randomly chosen pieces (two queens or three rooks possible)\n" "* Exactly one king of each color\n" "* Pieces placed randomly behind the pawns\n" "* No castling\n" "* Black's arrangement mirrors white's" msgstr "" #: lib/pychess/Variants/randomchess.py:17 #: lib/pychess/widgets/TaskerManager.py:155 msgid "Random" msgstr "" #: lib/pychess/Variants/rookodds.py:8 msgid "One player starts with one less rook piece" msgstr "" #: lib/pychess/Variants/rookodds.py:9 msgid "Rook odds" msgstr "" #: lib/pychess/Variants/shuffle.py:11 msgid "" "xboard nocastle: http://home.hccnet.nl/h.g.muller/engine-intf.html#8\n" "FICS wild/2: http://www.freechess.org/Help/HelpFiles/wild.html\n" "* Random arrangement of the pieces behind the pawns\n" "* No castling\n" "* Black's arrangement mirrors white's" msgstr "" #: lib/pychess/Variants/suicide.py:11 msgid "" "FICS suicide: http://www.freechess.org/Help/HelpFiles/suicide_chess.html" msgstr "" #: lib/pychess/Variants/theban.py:10 msgid "" "Variant developed by Kai Laskos: " "http://talkchess.com/forum/viewtopic.php?t=40990" msgstr "" #: lib/pychess/Variants/theban.py:11 msgid "Theban" msgstr "" #: lib/pychess/Variants/threecheck.py:10 msgid "Win by giving check 3 times" msgstr "" #: lib/pychess/Variants/threecheck.py:11 msgid "Three-check" msgstr "" #: lib/pychess/Variants/upsidedown.py:10 msgid "" "FICS wild/5: http://www.freechess.org/Help/HelpFiles/wild.html\n" "http://en.wikipedia.org/wiki/Chess_variant#Chess_with_different_starting_positions\n" "Pawns start on their 7th rank rather than their 2nd rank!" msgstr "" #: lib/pychess/Variants/upsidedown.py:13 msgid "Upside Down" msgstr "" #: lib/pychess/Variants/wildcastle.py:10 msgid "" "xboard wildcastle http://home.hccnet.nl/h.g.muller/engine-intf.html#8\n" "FICS wild/0: http://www.freechess.org/Help/HelpFiles/wild.html\n" "* White has the typical set-up at the start.\n" "* Black's pieces are the same, except that the King and Queen are reversed,\n" "* so they are not on the same files as White's King and Queen.\n" "* Castling is done similarly to normal chess:\n" "* o-o-o indicates long castling and o-o short castling." msgstr "" #: lib/pychess/Variants/wildcastle.py:17 msgid "Wildcastle" msgstr "" #: lib/pychess/Variants/wildcastleshuffle.py:11 msgid "" "xboard wildcastle http://home.hccnet.nl/h.g.muller/engine-intf.html#8\n" "FICS wild/1: http://www.freechess.org/Help/HelpFiles/wild.html\n" "* In this variant both sides have the same set of pieces as in normal chess.\n" "* The white king starts on d1 or e1 and the black king starts on d8 or e8,\n" "* and the rooks are in their usual positions.\n" "* Bishops are always on opposite colors.\n" "* Subject to these constraints the position of the pieces on their first ranks is random.\n" "* Castling is done similarly to normal chess:\n" "* o-o-o indicates long castling and o-o short castling." msgstr "" #: lib/pychess/Variants/wildcastleshuffle.py:20 msgid "Wildcastle shuffle" msgstr "" #: lib/pychess/widgets/analyzegameDialog.py:85 msgid "Game analyzing in progress..." msgstr "" #: lib/pychess/widgets/analyzegameDialog.py:86 msgid "Do you want to abort it?" msgstr "" #: lib/pychess/widgets/analyzegameDialog.py:95 #: lib/pychess/widgets/gamewidget.py:202 lib/pychess/widgets/gamewidget.py:320 msgid "Abort" msgstr "" #: lib/pychess/widgets/ChatView.py:125 msgid "Observers" msgstr "" #: lib/pychess/widgets/ChatWindow.py:222 msgid "You have opened no conversations yet" msgstr "" #: lib/pychess/widgets/ChatWindow.py:254 msgid "Only registered users may talk to this channel" msgstr "" #: lib/pychess/widgets/ChatWindow.py:312 msgid "No conversation's selected" msgstr "" #: lib/pychess/widgets/ChatWindow.py:350 msgid "Loading player data" msgstr "" #: lib/pychess/widgets/ChatWindow.py:400 msgid "Receiving list of players" msgstr "" #: lib/pychess/widgets/ChatWindow.py:518 msgid "Friends" msgstr "" #: lib/pychess/widgets/ChatWindow.py:529 msgid "Admin" msgstr "" #: lib/pychess/widgets/ChatWindow.py:540 msgid "More channels" msgstr "" #: lib/pychess/widgets/ChatWindow.py:548 msgid "More players" msgstr "" #: lib/pychess/widgets/ChatWindow.py:558 msgid "Computers" msgstr "" #: lib/pychess/widgets/ChatWindow.py:568 msgid "BlindFold" msgstr "" #: lib/pychess/widgets/ChatWindow.py:578 msgid "Guests" msgstr "" #: lib/pychess/widgets/ChatWindow.py:805 msgid "Conversations" msgstr "" #: lib/pychess/widgets/ChatWindow.py:807 msgid "Conversation info" msgstr "" #: lib/pychess/widgets/enginesDialog.py:152 msgid "Select engine" msgstr "" #: lib/pychess/widgets/enginesDialog.py:156 msgid "Executable files" msgstr "" #: lib/pychess/widgets/enginesDialog.py:176 #: lib/pychess/widgets/enginesDialog.py:210 #: lib/pychess/widgets/enginesDialog.py:235 #, python-format msgid "Unable to add %s" msgstr "" #: lib/pychess/widgets/enginesDialog.py:177 msgid "wine not installed" msgstr "" #: lib/pychess/widgets/enginesDialog.py:211 #: lib/pychess/widgets/enginesDialog.py:236 msgid "There is something wrong with this executable" msgstr "" #: lib/pychess/widgets/enginesDialog.py:266 msgid "Select working directory" msgstr "" #: lib/pychess/widgets/gamenanny.py:115 #, python-format msgid " invalid engine move: %s" msgstr "" #: lib/pychess/widgets/gamenanny.py:134 msgid "Offer Rematch" msgstr "" #: lib/pychess/widgets/gamenanny.py:136 lib/pychess/widgets/gamenanny.py:147 #, python-format msgid "Observe %s" msgstr "" #: lib/pychess/widgets/gamenanny.py:168 msgid "Play Rematch" msgstr "" #: lib/pychess/widgets/gamenanny.py:171 msgid "Undo one move" msgstr "" #: lib/pychess/widgets/gamenanny.py:173 msgid "Undo two moves" msgstr "" #: lib/pychess/widgets/gamenanny.py:203 msgid "The game is paused" msgstr "" #: lib/pychess/widgets/gamenanny.py:221 lib/pychess/widgets/gamenanny.py:222 msgid "Loaded game" msgstr "Załadowano grę" #: lib/pychess/widgets/gamenanny.py:228 msgid "Saved game" msgstr "Zapisano grę" #: lib/pychess/widgets/gamenanny.py:232 msgid "Analyzer started" msgstr "" #: lib/pychess/widgets/gamenanny.py:281 msgid "You sent an abort offer" msgstr "" #: lib/pychess/widgets/gamenanny.py:283 msgid "You sent an adjournment offer" msgstr "" #: lib/pychess/widgets/gamenanny.py:285 msgid "You sent a draw offer" msgstr "Wysłałeś ofertę remisu" #: lib/pychess/widgets/gamenanny.py:287 msgid "You sent a pause offer" msgstr "" #: lib/pychess/widgets/gamenanny.py:289 msgid "You sent a resume offer" msgstr "" #: lib/pychess/widgets/gamenanny.py:291 msgid "You sent an undo offer" msgstr "" #: lib/pychess/widgets/gamenanny.py:293 msgid "You asked your opponent to move" msgstr "" #: lib/pychess/widgets/gamenanny.py:305 #, python-format msgid "Engine, %s, has died" msgstr "Komputerowy silnik szachowy, %s, \"padł\"" #: lib/pychess/widgets/gamenanny.py:306 msgid "" "PyChess has lost connection to the engine, probably because it has died.\n" "\n" "You can try to start a new game with the engine, or try to play against another one." msgstr "PyChess stracił połączenie z komputerowym silnikiem szachowym.\nMożesz spróbować zacząć nową grę przeciwko temu komputerowi lub wybrać inny." #: lib/pychess/widgets/gamewidget.py:204 msgid "" "This game can be automatically aborted without rating loss because there has" " not yet been two moves made" msgstr "" #: lib/pychess/widgets/gamewidget.py:206 msgid "Offer Abort" msgstr "" #: lib/pychess/widgets/gamewidget.py:208 msgid "" "Your opponent must agree to abort the game because there has been two or " "more moves made" msgstr "" #: lib/pychess/widgets/gamewidget.py:226 msgid "This game can not be adjourned because one or both players are guests" msgstr "" #: lib/pychess/widgets/gamewidget.py:243 msgid "Claim Draw" msgstr "" #: lib/pychess/widgets/gamewidget.py:325 msgid "Pause" msgstr "" #: lib/pychess/widgets/gamewidget.py:326 msgid "Resume" msgstr "" #: lib/pychess/widgets/gamewidget.py:328 msgid "Offer Pause" msgstr "" #: lib/pychess/widgets/gamewidget.py:329 msgid "Offer Resume" msgstr "" #: lib/pychess/widgets/gamewidget.py:333 msgid "Undo" msgstr "" #: lib/pychess/widgets/gamewidget.py:335 msgid "Offer Undo" msgstr "" #: lib/pychess/widgets/gamewidget.py:550 msgid " has lagged for 30 seconds" msgstr "" #: lib/pychess/widgets/gamewidget.py:566 msgid " is lagging heavily but hasn't disconnected" msgstr "" #: lib/pychess/widgets/gamewidget.py:567 msgid "Continue to wait for opponent, or try to adjourn the game?" msgstr "" #: lib/pychess/widgets/gamewidget.py:575 msgid "Wait" msgstr "" #: lib/pychess/widgets/gamewidget.py:576 msgid "Adjourn" msgstr "" #: lib/pychess/widgets/gamewidget.py:648 msgid "Jump to initial position" msgstr "" #: lib/pychess/widgets/gamewidget.py:653 msgid "Step back one move" msgstr "" #: lib/pychess/widgets/gamewidget.py:658 msgid "Go back to the main line" msgstr "" #: lib/pychess/widgets/gamewidget.py:664 msgid "Step forward one move" msgstr "" #: lib/pychess/widgets/gamewidget.py:669 msgid "Jump to latest position" msgstr "" #: lib/pychess/widgets/gamewidget.py:903 msgid "PyChess was unable to load your panel settings" msgstr "" #: lib/pychess/widgets/gamewidget.py:904 msgid "" "Your panel settings have been reset. If this problem repeats, you should " "report it to the developers" msgstr "" #: lib/pychess/widgets/ionest.py:67 lib/pychess/widgets/newGameDialog.py:389 #: lib/pychess/widgets/TaskerManager.py:210 msgid "You" msgstr "" #: lib/pychess/widgets/ionest.py:70 lib/pychess/widgets/newGameDialog.py:390 #: lib/pychess/widgets/preferencesDialog.py:61 #: lib/pychess/widgets/TaskerManager.py:213 msgid "Guest" msgstr "Gość" #: lib/pychess/widgets/ionest.py:93 msgid "Error loading game" msgstr "" #: lib/pychess/widgets/ionest.py:127 lib/pychess/widgets/newGameDialog.py:480 msgid "Open Game" msgstr "Otwórz grę" #: lib/pychess/widgets/ionest.py:137 msgid "All Files" msgstr "Wszystkie pliki" #: lib/pychess/widgets/ionest.py:140 msgid "Detect type automatically" msgstr "Rozpoznaj typ automatycznie" #: lib/pychess/widgets/ionest.py:146 msgid "All Chess Files" msgstr "Wszystkie pliki szachowe" #: lib/pychess/widgets/ionest.py:228 msgid "Save Game" msgstr "Zapisz grę." #: lib/pychess/widgets/ionest.py:228 msgid "Export position" msgstr "" #: lib/pychess/widgets/ionest.py:232 lib/pychess/widgets/ionest.py:360 msgid "vs." msgstr "" #: lib/pychess/widgets/ionest.py:249 #, python-format msgid "Unknown file type '%s'" msgstr "Nieznany typ pliku '%s'" #: lib/pychess/widgets/ionest.py:250 #, python-format msgid "" "Was unable to save '%(uri)s' as PyChess doesn't know the format " "'%(ending)s'." msgstr "" #: lib/pychess/widgets/ionest.py:266 #, python-format msgid "Unable to save file '%s'" msgstr "Nie można zapisać pliku '%s'" #: lib/pychess/widgets/ionest.py:268 msgid "" "You don't have the necessary rights to save the file.\n" "Please ensure that you have given the right path and try again." msgstr "Nie masz potrzebnych uprawnień by zapisać plik.\nUpewnij się czy podałeś właściwą ścieżkę zapisu i spróbuj ponownie." #: lib/pychess/widgets/ionest.py:276 msgid "_Replace" msgstr "_Zastąp" #: lib/pychess/widgets/ionest.py:280 msgid "File exists" msgstr "Plik istnieje" #: lib/pychess/widgets/ionest.py:282 #, python-format msgid "" "A file named '%s' already exists. Would you like to replace " "it?" msgstr "Plik o nazwie: '%s' już istnieje. Zastąpić go?" #: lib/pychess/widgets/ionest.py:283 #, python-format msgid "" "The file already exists in '%s'. If you replace it, its content will be " "overwritten." msgstr "Plik już istnieje w '%s'. Jeśli go zastąpisz jego aktualna zawartość zostanie nadpisana." #: lib/pychess/widgets/ionest.py:299 msgid "Could not save the file" msgstr "Nie można zapisać pliku" #: lib/pychess/widgets/ionest.py:300 msgid "PyChess was not able to save the game" msgstr "PyChess nie mógł zapisać gry" #: lib/pychess/widgets/ionest.py:301 #, python-format msgid "The error was: %s" msgstr "Wystąpił błąd: %s" #: lib/pychess/widgets/ionest.py:325 #, python-format msgid "There is %d game with unsaved moves." msgid_plural "There are %d games with unsaved moves." msgstr[0] "" msgstr[1] "" msgstr[2] "" #: lib/pychess/widgets/ionest.py:328 msgid "Save moves before closing?" msgstr "" #: lib/pychess/widgets/ionest.py:339 msgid "Unable to save to configured file. Save the games before closing?" msgstr "" #: lib/pychess/widgets/ionest.py:366 #, python-format msgid "_Save %d document" msgid_plural "_Save %d documents" msgstr[0] "" msgstr[1] "" msgstr[2] "" #: lib/pychess/widgets/ionest.py:412 msgid "Save the current game before you close it?" msgstr "" #: lib/pychess/widgets/ionest.py:420 msgid "" "Unable to save to configured file. Save the current game before you close " "it?" msgstr "" #: lib/pychess/widgets/ionest.py:434 msgid "" "It is not possible later to continue the game,\n" "if you don't save it." msgstr "Nie będzie można później wznowić tej gry, jeśli jej nie zapiszesz." #: lib/pychess/widgets/LogDialog.py:26 msgid "PyChess Information Window" msgstr "" #: lib/pychess/widgets/LogDialog.py:184 lib/pychess/widgets/LogDialog.py:188 msgid "of" msgstr "" #: lib/pychess/widgets/newGameDialog.py:84 #: lib/pychess/widgets/newGameDialog.py:85 msgid "Human Being" msgstr "Człowiek" #: lib/pychess/widgets/newGameDialog.py:155 msgid "Rapid" msgstr "" #: lib/pychess/widgets/newGameDialog.py:224 msgid "Minutes:" msgstr "Minut:" #: lib/pychess/widgets/newGameDialog.py:228 msgid "Gain:" msgstr "Dodawaj:" #: lib/pychess/widgets/newGameDialog.py:241 #, python-format msgid "%(name)s %(minutes)d min + %(gain)d sec/move" msgstr "" #: lib/pychess/widgets/newGameDialog.py:244 #, python-format msgid "%(name)s %(minutes)d min %(gain)d sec/move" msgstr "" #: lib/pychess/widgets/newGameDialog.py:247 #, python-format msgid "%(name)s %(minutes)d min" msgstr "" #: lib/pychess/widgets/newGameDialog.py:265 msgid "Odds" msgstr "" #: lib/pychess/widgets/newGameDialog.py:269 msgid "Asian variants" msgstr "" #: lib/pychess/widgets/newGameDialog.py:301 msgid " chess" msgstr "" #: lib/pychess/widgets/newGameDialog.py:682 msgid "Type or paste PGN game or FEN positions here" msgstr "" #: lib/pychess/widgets/newGameDialog.py:725 msgid "Enter Game" msgstr "Wejście do gry" #: lib/pychess/widgets/preferencesDialog.py:123 msgid "Select book file" msgstr "" #: lib/pychess/widgets/preferencesDialog.py:128 msgid "Opening books" msgstr "" #: lib/pychess/widgets/preferencesDialog.py:156 msgid "Select Gaviota TB path" msgstr "" #: lib/pychess/widgets/preferencesDialog.py:331 msgid "Open Sound File" msgstr "Otwórz plik dźwiękowy" #: lib/pychess/widgets/preferencesDialog.py:341 msgid "Sound files" msgstr "" #: lib/pychess/widgets/preferencesDialog.py:485 msgid "Undescribed panel" msgstr "" #: lib/pychess/widgets/preferencesDialog.py:678 msgid "Select auto save path" msgstr "" #: lib/pychess/widgets/tipOfTheDay.py:51 msgid "" "You can start a new game by Game > New Game, in New Game " "window do you can choose Players, Time Control and Chess " "Variants." msgstr "" #: lib/pychess/widgets/tipOfTheDay.py:52 msgid "" "You can choose from 20 different difficulties to play against the computer." msgstr "" #: lib/pychess/widgets/tipOfTheDay.py:53 msgid "" "Chess Variants are like the pieces of the last line will be placed on the " "board." msgstr "" #: lib/pychess/widgets/tipOfTheDay.py:54 msgid "" "To save a game Game > Save Game As, give the filename and " "choose where you want to be saved. At the bottom choose extension type of " "the file, and Save." msgstr "" #: lib/pychess/widgets/tipOfTheDay.py:55 msgid "" "Do you know that you can call flag when the clock is with you, " "Actions > Call Flag." msgstr "" #: lib/pychess/widgets/tipOfTheDay.py:56 msgid "Pressing Ctrl+Z to offer opponent the possible rollback moves." msgstr "" #: lib/pychess/widgets/tipOfTheDay.py:57 msgid "" "To play on Fullscreen mode, just type F11. Coming back, F11 " "again." msgstr "" #: lib/pychess/widgets/tipOfTheDay.py:58 msgid "Hint mode analyzing your game, enable this type Ctrl+H." msgstr "" #: lib/pychess/widgets/tipOfTheDay.py:59 msgid "" "Spy mode analyzing the oponnent game, enable this type Ctrl+Y." msgstr "" #: lib/pychess/widgets/tipOfTheDay.py:60 msgid "" "You can play chess listening to the sounds of the game, for that, " "Settings > Preferences > Sound tab, enable Use " "sounds in PyChess and choose your preferred sounds." msgstr "" #: lib/pychess/widgets/tipOfTheDay.py:61 msgid "" "Do you know that you can help translate Pychess in your language, " "Help > Translate Pychess." msgstr "" #: lib/pychess/widgets/tipOfTheDay.py:62 msgid "" "Do you know that it is possible to finish a chess game in just 2 turns?" msgstr "" #: lib/pychess/widgets/tipOfTheDay.py:63 msgid "" "Do you know that the number of possible chess games exceeds the number of " "atoms in the Universe?" msgstr "" #: lib/pychess/ic/managers/ChatManager.py:184 msgid "Shout" msgstr "" #: lib/pychess/ic/managers/ChatManager.py:185 msgid "Chess Shout" msgstr "" #: lib/pychess/ic/managers/ChatManager.py:195 #, python-format msgid "Unofficial channel %d" msgstr "" #: lib/pychess/Utils/lutils/LBoard.py:152 #, python-format msgid "" "FEN needs 6 data fields. \n" "\n" "%s" msgstr "" #: lib/pychess/Utils/lutils/LBoard.py:154 #, python-format msgid "" "FEN needs at least 2 data fields in fenstr. \n" "\n" "%s" msgstr "" #: lib/pychess/Utils/lutils/LBoard.py:175 #, python-format msgid "" "Needs 7 slashes in piece placement field. \n" "\n" "%s" msgstr "" #: lib/pychess/Utils/lutils/LBoard.py:178 #, python-format msgid "" "Active color field must be one of w or b. \n" "\n" "%s" msgstr "" #: lib/pychess/Utils/lutils/LBoard.py:189 #, python-format msgid "" "Castling availability field is not legal. \n" "\n" "%s" msgstr "" #: lib/pychess/Utils/lutils/LBoard.py:192 #, python-format msgid "" "En passant cord is not legal. \n" "\n" "%s" msgstr "" #: lib/pychess/Utils/lutils/lmove.py:260 msgid "invalid promoted piece" msgstr "" #: lib/pychess/Utils/lutils/lmove.py:272 msgid "the move needs a piece and a cord" msgstr "" #: lib/pychess/Utils/lutils/lmove.py:306 lib/pychess/Utils/lutils/lmove.py:556 msgid "promotion move without promoted piece is incorrect" msgstr "" #: lib/pychess/Utils/lutils/lmove.py:312 #, python-format msgid "the captured cord (%s) is incorrect" msgstr "" #: lib/pychess/Utils/lutils/lmove.py:323 #, python-format msgid "the end cord (%s) is incorrect" msgstr "" #: lib/pychess/Utils/lutils/strateval.py:24 sidepanel/commentPanel.py:191 #: sidepanel/commentPanel.py:208 msgid "and" msgstr "" #: lib/pychess/Utils/lutils/strateval.py:43 msgid "draws" msgstr "remisy" #: lib/pychess/Utils/lutils/strateval.py:45 msgid "mates" msgstr "matuje" #: lib/pychess/Utils/lutils/strateval.py:49 msgid "puts opponent in check" msgstr "szachuje" #: lib/pychess/Utils/lutils/strateval.py:73 msgid "improves king safety" msgstr "zwiększają bezpieczeństwo Króla" #: lib/pychess/Utils/lutils/strateval.py:75 msgid "slightly improves king safety" msgstr "nieznacznie zwiększają bezpieczeństwo króla" #: lib/pychess/Utils/lutils/strateval.py:108 msgid "moves a rook to an open file" msgstr "przesuwają wieżę na otwarty korytarz" #: lib/pychess/Utils/lutils/strateval.py:109 msgid "moves an rook to a half-open file" msgstr "przesuwają wieżę na pół-otwarty korytarz" #: lib/pychess/Utils/lutils/strateval.py:119 #: lib/pychess/Utils/lutils/strateval.py:121 #: lib/pychess/Utils/lutils/strateval.py:124 #: lib/pychess/Utils/lutils/strateval.py:126 #, python-format msgid "moves bishop into fianchetto: %s" msgstr "wykonują fianchetto: %s" #: lib/pychess/Utils/lutils/strateval.py:132 #, python-format msgid "promotes a Pawn to a %s" msgstr "promują piona w %s" #: lib/pychess/Utils/lutils/strateval.py:135 msgid "castles" msgstr "wykonują roszadę" #: lib/pychess/Utils/lutils/strateval.py:158 msgid "takes back material" msgstr "odbijają materiał" #: lib/pychess/Utils/lutils/strateval.py:162 #: lib/pychess/Utils/lutils/strateval.py:170 msgid "sacrifies material" msgstr "poświęcają materiał" #: lib/pychess/Utils/lutils/strateval.py:164 msgid "exchanges material" msgstr "wymieniają materiał" #: lib/pychess/Utils/lutils/strateval.py:166 msgid "captures material" msgstr "zdobywają materiał" #: lib/pychess/Utils/lutils/strateval.py:291 #, python-format msgid "rescues a %s" msgstr "" #: lib/pychess/Utils/lutils/strateval.py:294 #, python-format msgid "threatens to win material by %s" msgstr "" #: lib/pychess/Utils/lutils/strateval.py:296 #, python-format msgid "increases the pressure on %s" msgstr "zwiększają nacisk na %s" #: lib/pychess/Utils/lutils/strateval.py:298 #, python-format msgid "defends %s" msgstr "bronią %s" #: lib/pychess/Utils/lutils/strateval.py:336 #, python-format msgid "pins an enemy %(oppiece)s on the %(piece)s at %(cord)s" msgstr "" #: lib/pychess/Utils/lutils/strateval.py:369 #, python-format msgid "White has a new piece in outpost: %s" msgstr "Białe mają nową bierkę na froncie: %s" #: lib/pychess/Utils/lutils/strateval.py:377 #, python-format msgid "Black has a new piece in outpost: %s" msgstr "Czarne mają nową bierkę na froncie: %s" #: lib/pychess/Utils/lutils/strateval.py:416 #, python-format msgid "%(color)s has a new passed pawn on %(cord)s" msgstr "" #: lib/pychess/Utils/lutils/strateval.py:470 msgid "half-open" msgstr "" #: lib/pychess/Utils/lutils/strateval.py:472 #, python-format msgid "in the %(x)s%(y)s file" msgstr "" #: lib/pychess/Utils/lutils/strateval.py:474 #, python-format msgid "in the %(x)s%(y)s files" msgstr "" #: lib/pychess/Utils/lutils/strateval.py:477 #, python-format msgid "%(color)s got a double pawn %(place)s" msgstr "" #: lib/pychess/Utils/lutils/strateval.py:478 #, python-format msgid "%(color)s got new double pawns %(place)s" msgstr "" #: lib/pychess/Utils/lutils/strateval.py:485 #, python-format msgid "%(color)s got an isolated pawn in the %(x)s file" msgid_plural "%(color)s got isolated pawns in the %(x)s files" msgstr[0] "" msgstr[1] "" msgstr[2] "" #: lib/pychess/Utils/lutils/strateval.py:492 #, python-format msgid "%s moves pawns into stonewall formation" msgstr "%s ustawiają piony w formację łańcucha" #: lib/pychess/Utils/lutils/strateval.py:507 #: lib/pychess/Utils/lutils/strateval.py:514 #, python-format msgid "%s can no longer castle" msgstr "" #: lib/pychess/Utils/lutils/strateval.py:508 #: lib/pychess/Utils/lutils/strateval.py:515 #, python-format msgid "%s can no longer castle in queenside" msgstr "" #: lib/pychess/Utils/lutils/strateval.py:510 #: lib/pychess/Utils/lutils/strateval.py:517 #, python-format msgid "%s can no longer castle in kingside" msgstr "" #: lib/pychess/Utils/lutils/strateval.py:551 #, python-format msgid "%(opcolor)s has a new trapped bishop on %(cord)s" msgstr "" #: lib/pychess/Utils/lutils/strateval.py:573 #, python-format msgid "develops a pawn: %s" msgstr "" #: lib/pychess/Utils/lutils/strateval.py:574 #, python-format msgid "brings a pawn closer to the backrow: %s" msgstr "przesuwają piona bliżej krawędzi promocji %s" #: lib/pychess/Utils/lutils/strateval.py:591 #, python-format msgid "brings a %(piece)s closer to enemy king: %(cord)s" msgstr "" #: lib/pychess/Utils/lutils/strateval.py:594 #, python-format msgid "develops a %(piece)s: %(cord)s" msgstr "" #: lib/pychess/Utils/lutils/strateval.py:612 #, python-format msgid "places a %(piece)s more active: %(cord)s" msgstr "" #: lib/pychess/Utils/lutils/strateval.py:638 msgid "White should do pawn storm in right" msgstr "Białe powinny wykonywać szturm pionkami po prawej" #: lib/pychess/Utils/lutils/strateval.py:640 msgid "Black should do pawn storm in left" msgstr "Czarne powinny wykonywać szturm pionkami po lewej" #: lib/pychess/Utils/lutils/strateval.py:643 msgid "White should do pawn storm in left" msgstr "Białe powinny zrobić szturm pionami" #: lib/pychess/Utils/lutils/strateval.py:645 msgid "Black should do pawn storm in right" msgstr "Białe powinny zrobić szturm pionami na prawym skrzydle." #: lib/pychess/Utils/lutils/strateval.py:671 msgid "Black has a rather cramped position" msgstr "Czarne mają raczej skrępowaną pozycję" #: lib/pychess/Utils/lutils/strateval.py:673 msgid "Black has a slightly cramped position" msgstr "Czarne mają lekko skrępowaną pozycję" #: lib/pychess/Utils/lutils/strateval.py:675 msgid "White has a rather cramped position" msgstr "Białe mają raczej skrępowaną pozycję" #: lib/pychess/Utils/lutils/strateval.py:677 msgid "White has a slightly cramped position" msgstr "Czarne mają lekko skrępowaną pozycję" #: sidepanel/annotationPanel.py:26 msgid "Annotation" msgstr "" #: sidepanel/annotationPanel.py:29 msgid "Annotated game" msgstr "" #: sidepanel/annotationPanel.py:236 msgid "Copy PGN" msgstr "" #: sidepanel/annotationPanel.py:249 msgid "Add start comment" msgstr "" #: sidepanel/annotationPanel.py:254 msgid "Add comment" msgstr "" #: sidepanel/annotationPanel.py:258 sidepanel/annotationPanel.py:316 msgid "Edit comment" msgstr "" #: sidepanel/annotationPanel.py:269 msgid "Forced move" msgstr "" #: sidepanel/annotationPanel.py:274 msgid "Add move symbol" msgstr "" #: sidepanel/annotationPanel.py:280 msgid "Unclear position" msgstr "" #: sidepanel/annotationPanel.py:289 msgid "Zugzwang" msgstr "" #: sidepanel/annotationPanel.py:290 msgid "Development adv." msgstr "" #: sidepanel/annotationPanel.py:291 msgid "Initiative" msgstr "" #: sidepanel/annotationPanel.py:292 msgid "With attack" msgstr "" #: sidepanel/annotationPanel.py:293 msgid "Compensation" msgstr "" #: sidepanel/annotationPanel.py:294 msgid "Counterplay" msgstr "" #: sidepanel/annotationPanel.py:295 msgid "Time pressure" msgstr "" #: sidepanel/annotationPanel.py:300 msgid "Add evaluation symbol" msgstr "" #: sidepanel/annotationPanel.py:304 msgid "Remove symbols" msgstr "" #: sidepanel/annotationPanel.py:911 #, python-format msgid "round %s" msgstr "" #: sidepanel/bookPanel.py:21 msgid "Hints" msgstr "" #: sidepanel/bookPanel.py:25 msgid "" "The hint panel will provide computer advice during each stage of the game" msgstr "" #: sidepanel/bookPanel.py:27 msgid "Official PyChess panel." msgstr "" #: sidepanel/bookPanel.py:87 msgid "Opening Book" msgstr "Książka Debiutów" #: sidepanel/bookPanel.py:88 msgid "" "The opening book will try to inspire you during the opening phase of the " "game by showing you common moves made by chess masters" msgstr "" #: sidepanel/bookPanel.py:139 #, python-format msgid "Analysis by %s" msgstr "" #: sidepanel/bookPanel.py:140 #, python-format msgid "" "%s will try to predict which move is best and which side has the advantage" msgstr "" #: sidepanel/bookPanel.py:142 #, python-format msgid "Threat analysis by %s" msgstr "" #: sidepanel/bookPanel.py:143 #, python-format msgid "" "%s will identify what threats would exist if it were your opponent's turn to" " move" msgstr "" #: sidepanel/bookPanel.py:159 sidepanel/bookPanel.py:269 msgid "Calculating..." msgstr "" #: sidepanel/bookPanel.py:300 msgid "" "Engine scores are in units of pawns, from White's point of view. Double " "clicking on analysis lines you can insert them into Annotation panel as " "variations." msgstr "" #: sidepanel/bookPanel.py:302 msgid "" "Adding suggestions can help you find ideas, but slows down the computer's " "analysis." msgstr "" #: sidepanel/bookPanel.py:311 msgid "Endgame Table" msgstr "" #: sidepanel/bookPanel.py:315 msgid "" "The endgame table will show exact analysis when there are few pieces on the " "board." msgstr "" #: sidepanel/bookPanel.py:364 sidepanel/bookPanel.py:367 #, python-format msgid "Mate in %d" msgstr "" #: sidepanel/bookPanel.py:554 msgid "" "In this position,\n" "there is no legal move." msgstr "" #: sidepanel/chatPanel.py:21 msgid "" "The chat panel lets you communicate with your opponent during the game, " "assuming he or she is interested" msgstr "" #: sidepanel/commentPanel.py:16 msgid "Comments" msgstr "Komentarze" #: sidepanel/commentPanel.py:20 msgid "The comments panel will try to analyze and explain the moves played" msgstr "" #: sidepanel/commentPanel.py:121 msgid "Initial position" msgstr "Pozycja początkowa" #: sidepanel/commentPanel.py:254 #, python-format msgid "%(color)s moves a %(piece)s to %(cord)s" msgstr "" #: sidepanel/engineOutputPanel.py:15 msgid "Engines" msgstr "" #: sidepanel/engineOutputPanel.py:20 msgid "" "The engine output panel shows the thinking output of chess engines (computer" " players) during a game" msgstr "" #: sidepanel/engineOutputPanel.py:44 msgid "No chess engines (computer players) are participating in this game." msgstr "" #: sidepanel/historyPanel.py:10 msgid "Move History" msgstr "Historia posunięć" #: sidepanel/historyPanel.py:13 msgid "" "The moves sheet keeps track of the players' moves and lets you navigate " "through the game history" msgstr "" #: sidepanel/scorePanel.py:15 msgid "Score" msgstr "Wynik" #: sidepanel/scorePanel.py:19 msgid "" "The score panel tries to evaluate the positions and shows you a graph of the" " game progress" msgstr "" pychess-0.12.2/lang/pl/LC_MESSAGES/pychess.mo0000644000175000017470000005776112653231273020730 0ustar tamasusers00000000000000Q ,0 1 <F'Mu !# -H%Ms9'"3H\w#$ ";Jds Q& C2 7v U *!(/!X!n!!! !!!! !!C"F"*X" """""$"#"%""##3#W#^#d#k# s#}# #####-# $$ $*$?$P$f$ ~$$ $$ $$ $$$$ %%%*%:%I% Z%h%n% s% %%X%c%]M&q&O'Fm((D( ) ))) *) 4)?) Q) ]) i) t)))))))!)* * *(***//*_* h*v** *** * * * * * **+++ 6+@+ P+]+s+ u++++++++++, , (,4, <, F,#P,t,, 2->-@- F-S-U-]- c-n-u-z-- - - --- --"-- .. /. ;. H.S.i.... ... ... / /p/5/4/9/350i0T{00011}8111111 11 22 &20282@2 H2V2 m2{22$2#2%2"2#3?3F3J3?]3u3C4W4 m4t455_66lj7!77 888 )8 48A8J8 [8g8 m8x88%8 8 88 88 888 9 99 )9 69@9 I9W9 j9u99 99999 9'9:: !:,:2: E:"O:+r::::::!: ;:;J;b;y;;;;;;===*==0=.>$M>r>>>$>>>&>?,?2?>M?"??????@(@"G@ j@@@@@ @!@ A'A?AQAdAC|A:A;A17BWiB0B)BC/C6CKC SC^CgC{CCCXCD2-D `DjDlDpDwD)~D)D(D2D9.EhEpEEEEE EEEEE*FDF MF XFcFyF FFFF FGGGG .G9G$QG vGGGGGGGGH H H HI&HpHsHtlIIOJGKH[KKKKKK KKK LLL*LDL YL cLmL L$LLLLLL9L-M6M EMSM \MiMrMMMMMMMNNN1N KNXNqNNN NNNNNN%O-O=OAOHOQO bOnOwO O'O"OO nPzP|PPP P PPPPPP PP QQQ Q1Q$MQrQQQQQ QQQR"%RHR \RjRRRRR RRiR=5SsS.S&SS]SWTuTTTvT4U;U@UQUaU qU}UU"U UU U UUUV/V5V)]K] _]j]{]]]] ]/]] ^ ^*^1^ G^#Q^0u^#^^^^'^-_E_^_m____/___t@(J#$}{AA^G =dVN[7?/=v ?yH DT.8~' qiM1*>&x,QcXp%$2FbZM4/D QI,gBloa8nO@7mKN9-\:Eef"Ssr)KF_Eh#"L(!P;HuW*5CBR'<OC z>1++G6 63& J|20-3wI5 )L`4; Y] 0P9< %k!j:U. Gain: + %d sec%d min%s moves pawns into stonewall formation%s returns an error%s was declined by your opponent%s was withdrawn by your opponent'%s' is not a registered name(Blitz)0 Players Ready0 of 010 min + 6 sec/move, 1400↑, White10 min + 6 sec/move, White12002 min, Fischer Random, 1800↓, Black2 min, Fischer Random, Black5 min5 min, 1200-1800, ManualConnect to the Free Online Chess ServerPromote pawn to what?AnalyzingAnimationChess VariantDate of gameEnter Game NotationGame dataInitial PositionInstalled SidepanelsName of _first human player:Name of s_econd human player:NewsOpen GameOpponent StrengthOptionsPlay Sound When...PlayersTime ControlToolsYour Color_Start GameA file named '%s' already exists. Would you like to replace it?Engine, %s, has diedPyChess is discovering your engines. Please wait.PyChess was not able to save the gameThere are %d games with unsaved moves. Save changes before closing?Unable to save file '%s'Unknown file type '%s'Challenge:A player _checks:A player _moves:A player c_aptures:About ChessAc_tiveActive seeks: %dAll Chess FilesAll FilesAnalyze from current positionAnimate pieces, board rotation and more. Use this on fast machines.Asymmetric RandomAuto _rotate board to current human playerAvailableBBeepBishopBlackBlack has a new piece in outpost: %sBlack has a rather cramped positionBlack has a slightly cramped positionBlack should do pawn storm in leftBlack should do pawn storm in rightBlack:BlitzBlitz:Center:ChallengeChallenge: Chess GameChess PositionClockClose _without SavingColorize analyzed movesCommand line parameters needed by the engine.Command:CommentsConnectingConnecting to serverConnection ErrorConnection was closedCould not save the fileCreate SeekDetect type automaticallyDon't careDrawEdit SeekEmailEnter GameEvent:F_ull board animationFace _to Face display modeFile existsGain:Game informationGame is _drawn:Game is _lost:Game is _set-up:Game is _won:GuestHideHow to PlayHuman BeingIdleIf set, PyChess will use figures to express moved pieces, rather than uppercase letters.If set, the black pieces will be head down, suitable for playing against friends on mobile devices.If set, the board will turn after each move, to show the natural view for the current player.If set, the playing board will display labels and ranks for each chess field. These are usable in chess notation.If the analyzer finds a move where the evaluation difference (the difference between the evaluation for the move it thinks is the best move and the evaluation for the move made in the game) exceeds this value, it will add an annotation for that move (consisting of the engine's Principal Variation for the move) to the Annotation panelIf you don't save, new changes to your games will be permanently lost.Initial positionIt is not possible later to continue the game, if you don't save it.KKingKnightLeave _FullscreenLightningLightning:Load _Recent GameLoaded gameLocal EventLocal SiteLog on ErrorLog on as G_uestLog on as _GuestLogging on to serverLossManage enginesManually accept opponentMaximum analysis time in seconds:Minutes:Minutes: Move HistoryNNameNever use animation. Use this on slow machines.New GameNo _animationNo soundNormalNot AvailableObserveObserved _ends:Offer A_bortOffer _AbortOffer _DrawOffer _PauseOffer _ResumeOffer _UndoOfflineOnlineOnly animate _movesOnly animate piece moves.Open GameOpen Sound FileOpening BookOpponent's strength: PParameters:PingPlayPlay Fischer Random chessPlay Losers chessPlay _Internet ChessPlay normal chess rulesPlayer _RatingPlayingPo_rts:Pre_viewPrefer figures in _notationPreferencesPrivatePromotionProtocol:PyChess - Connect to Internet ChessPyChess - Internet Chess: FICSPyChess has lost connection to the engine, probably because it has died. You can try to start a new game with the engine, or try to play against another one.PyChess.py:QQueenQuit PyChessRR_esignRatedRated gameRatingRookRound:S_ign upSave GameSave Game _AsSaved gameScoreSearch:Seek _GraphSelect sound file...Select the games you want to save:Send ChallengeSend seekSetting up environmentSho_w cordsShow ConsoleShow _ChatShow _captured piecesShow elapsed move timesShow evaluation valuesShow tips at startupShredderLinuxChess:Side_panelsSimple Chess PositionSite:Sp_y modeSpentStandardStandard:Start Private ChatThe analyzer will run in the background and analyze the game. This is necessary for the hint mode to workThe connection was broken - got "end of file" messageThe directory where the engine will be started from.The displayed name of the first human player, e.g., John.The displayed name of the guest player, e.g., Mary.The error was: %sThe file already exists in '%s'. If you replace it, its content will be overwritten.The game ended in a drawThe game has been abortedThe game has been adjournedThe game has been killedThe inverse analyzer will analyze the game as if your opponent was to move. This is necessary for the spy mode to workThemesTimeTime control: Tip Of The dayTip of the DayTolerance:Translate PyChessTypeUnable to accept %sUninstallUnknownUnratedUntimedUse _analyzerUse _inverted analyzerUse analyzer:WelcomeWhiteWhite has a new piece in outpost: %sWhite has a rather cramped positionWhite has a slightly cramped positionWhite should do pawn storm in leftWhite should do pawn storm in rightWhite:WinWorking directory:You can't play rated games because you are logged in as a guestYou don't have the necessary rights to save the file. Please ensure that you have given the right path and try again.You have been logged out because you were idle more than 60 minutesYou sent a draw offerYour opponent asks you to hurry!Your opponent has asked that the game be aborted. If you accept this offer, the game will end with no rating change.Your opponent has asked that the game be adjourned. If you accept this offer, the game will be adjourned and you can resume it later (when your opponent is online and both players agree to resume).Your opponent has asked that the game be paused. If you accept this offer, the game clock will be paused until both players agree to resume the game.Your opponent has asked that the game be resumed. If you accept this offer, the game clock will continue from where it was paused.Your opponent has asked that the last %s move(s) be undone. If you accept this offer, the game will continue from the earlier position.Your opponent has offered you a draw. If you accept this offer, the game will end with a score of 1/2 - 1/2.Your opponent is not out of time.Your strength: _Accept_Actions_Black player:_Call Flag_Clear Seeks_Decline_Export Position_Fullscreen_Game_Game List_General_Help_Hide tabs when only one game is open_Hint mode_Load Game_Log Off_Log Viewer_Name:_New Game_Next_Observed moves:_Opponent:_Password:_Play Normal chess_Player List_Previous_Replace_Rotate Board_Save %d documents_Save Game_Seeks / Challenges_Sounds_Start Game_Untimed_Use sounds in PyChess_View_White player:_Your Color:brings a pawn closer to the backrow: %scaptures materialcastlesdefends %sdrawsexchanges materialgnuchess:http://en.wikipedia.org/wiki/Chesshttp://en.wikipedia.org/wiki/Rules_of_chessimproves king safetyincreases the pressure on %smatesminmoves a rook to an open filemoves an rook to a half-open filemoves bishop into fianchetto: %sonline in totalpromotes a Pawn to a %sputs opponent in checksacrifies materialsecslightly improves king safetytakes back materialwindow1Project-Id-Version: pychess Report-Msgid-Bugs-To: POT-Creation-Date: 2016-01-27 13:28+0100 PO-Revision-Date: 2016-01-28 08:56+0000 Last-Translator: slav0nic Language-Team: Polish (http://www.transifex.com/gbtami/pychess/language/pl/) MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Language: pl Plural-Forms: nplurals=3; plural=(n==1 ? 0 : n%10>=2 && n%10<=4 && (n%100<10 || n%100>=20) ? 1 : 2); Dodawaj:+ %d sek%d min%s ustawiają piony w formację łańcucha%s zwraca błąd%s została odrzucona przez Twojego przeciwnika.%s została wycofana przez Twojego przeciwnika'%s' nie jest zarejestrowaną nazwą(Szachy błyskawiczne)0 Graczy Gotowych0 z 010 min + 6 sek/ruch, 1400↑, Białe10 min + 6 sek/ruch, Białe12002 min, Fischer Random, 1800↓, Czarne2 min, Fischer Losowa, Czarne5 min5 min, 1200-1800, ManualnyPołącz się z the Free Online Chess ServerPromuj piona na:AnalizowanieAnimacjaWariant szachówData gryWpisz Notację GryDane o grzePoczątkowe PołożenieZainstalowane Panele BoczneImię _pierwszego gracza:Imię d_rugiego gracza:WiadomościWczytaj GręSiła przeciwnikaOpcjeOdtwarzaj dźwięk, gdy...GraczeUstawienia czasuNarzędziaTwój Kolor_Rozpocznij GręPlik o nazwie: '%s' już istnieje. Zastąpić go?Komputerowy silnik szachowy, %s, "padł"PyChess szuka silników. Proszę czekać.PyChess nie mógł zapisać gryJest %d gier z niezapisanymi położeniami. Zapisać przed wyjściem?Nie można zapisać pliku '%s'Nieznany typ pliku '%s'Wyzwij:_SzachGracz _wykonał ruch_ZbicieO szachachAk_tywujAktywnych pokoi: %dWszystkie pliki szachoweWszystkie plikiAnalizuj od obecnej pozycjiAnimuj m.in. bierki i obroty rotacji szachownicy. Użyj tej opcji na szybkich maszynach.Asymetryczny LosowyAutomatycznie obracaj stół dla aktualnego graczaDostępnyGBipGońcaCzarneCzarne mają nową bierkę na froncie: %sCzarne mają raczej skrępowaną pozycjęCzarne mają lekko skrępowaną pozycjęCzarne powinny wykonywać szturm pionkami po lewejBiałe powinny zrobić szturm pionami na prawym skrzydle.Czarne:Szachy błyskawiczneSzachy błyskawiczne:Środek:WyzwanieWyzwij gracza: Zapis GryPozycja SzachowaZegarZamknij _bez zapisywaniaKoloruj analizowane ruchyLinia parametrów wymaganych przez silnik.Komenda:KomentarzeŁączenieŁączenie z serweremBłąd połączeniaPołączenie zostało zamknięteNie można zapisać plikuUtwórz żądanieRozpoznaj typ automatycznieBez opiekiRemisEdytuj szukanieE-mailWejście do gryZdarzenie:Pełna animacja stołu.Tryb wyświetlania "Twarzą w Twarz"Plik istniejeDodawaj:Informacje o grzeGra zakończona _remisem:Gra została _przegrana:Gra jest _ustawiona:Gra została w_ygrana:GośćUkryj:PomocCzłowiekNieobecnyPo ustawieniu, PyChess zamieni wielkie litery na symbole figur w notacji.Po ustawieniu, szachy po przeciwnej stronie będą odwrócone do góry nogami, odpowiednio osób grających na przenośnym urządzeniu.Po ustawieniu, szachownica będzie obracała się po każdym ruchu, aby widok dla aktualnego gracza był naturalny.Po ustawieniu, wokół szachownicy pojawią się oznaczenia dla poszczególnych pól. Przydatne do ręcznej notacji.Jeżeli analizator znajdzie ruch, gdzie różnica wartości (różnia pomiędzy najlepszą obliczoną wartością ruchu a wartością ruchu w grze) przekroczy tę wartość, doda adnotację (zawarte w głównych wariacjach silnika tego ruchu) do posunięcia w panelu adnotacji.Jeśli nie zapiszesz, nowe zmiany w twoich grach zostaną utracone bezpowrotniePozycja początkowaNie będzie można później wznowić tej gry, jeśli jej nie zapiszesz.KKrólSkoczkaPozostaw _Pełny EkranTurboOświetlenie:Wczytaj _Ostatnią GręZaładowano gręZdarzenieStronaBłąd logowaniaZaloguj się jako G_ośćZaloguj jako _GośćLogowaniePrzegranaZarządzaj silnikamiZaakceptuj przeciwnika manualnieMaksymalny czas analizy w sekundach:Minut:Minuty:Historia posunięćSNazwaNigdy nie animuj. Użyj tej opcji na powolnych maszynach.Nowa graBrak _animacjiBez dźwiękuNormalnyNiedostępnyObserwujObserwowan_e zakończenia:Zaproponuj P_rzerwanieZaproponuj _PrzerwanieZaproponuj _RemisZaproponuj _PauzęZaproponuj _WznowienieZaproponuj _CofnięcieOfflineOnlineAnimuj tylko _ruchyAnimuj tylko ruchy bierekOtwórz gręOtwórz plik dźwiękowyKsiążka DebiutówSiła przeciwnika:PParametry:PingujGrajZagraj w szachy Fisher RandomZagraj w szachy Losers chessGraj w _Internetowe SzachyZagraj w szachy o normalnych zasadach_Ranking graczaGraPo_rtyPodglądFigury w notacjiPreferencjePrywatnaPromocjaProtokół:PyChess - Połącz z Serwerem SzachowymPyChess - Internetowe Szachy: FICSPyChess stracił połączenie z komputerowym silnikiem szachowym. Możesz spróbować zacząć nową grę przeciwko temu komputerowi lub wybrać inny.PyChess.py:HHetmanaWyjdź z PyChessWZ_rezygnujPunktowanaGra punktowanaRankingWieżęRunda:Z_arejestruj sięZapisz grę.Zapi_sz grę jakoZapisano gręWynikSzukaj:Wykres _ŻądańWybierz plik dźwiękowy...Wybierz gry, które chcesz zapisać:Wyślij wyzwanieWyślij żądaniePrzygotowywanie środowiskaPokaż pozycjePokaż konsolęPokaż _ChatPokaż zbite figuryPokaż pozostały czas ruchuPokaż wartości ocenyPokazuj wskazówki po uruchomieniuShredderLinuxChess:Panele BoczneProsta Pozycja SzachowaStrona:Tryb _szpiegowskiWydajStandardStandard:Utwórz Prywatny CzatAnalizator będzie pracowal w tle i analizował grę. Ta opcja jest konieczna do trybu podpowiedziPołączenie przerwane - otrzymano wiadomość "koniec pliku"Katalog startowy silnika.Wyświetlane imię pierwszego gracza, np. Jan.Wyświetlane imię gościa, np. Maria.Wystąpił błąd: %sPlik już istnieje w '%s'. Jeśli go zastąpisz jego aktualna zawartość zostanie nadpisana.Gra zakończyła się remisemGra została przerwanaGra została odroczonaGra została "skillowana"Wsteczny analizator będzie analizował grę Twego przeciwnika. Ta opcja jest konieczna do trybu szpiegowskiegoMotywyCzasUstawienia czasuWskazówka dniaWskazówka DniaTolerancja:Przetłumacz PyChessTyp%s nie może zostać zaakceptowanaOdinstalujNieznanyNiepunktowanaBez limituUzywaj _analizatoraUżywaj _wstecznego analizatoraUżywaj analizatora:WitajBiałeBiałe mają nową bierkę na froncie: %sBiałe mają raczej skrępowaną pozycjęCzarne mają lekko skrępowaną pozycjęBiałe powinny zrobić szturm pionamiBiałe powinny wykonywać szturm pionkami po prawejBiałe:ZwycięstwoKatalog roboczy:Nie możesz grać w gry punktowane, gdyż jesteś zalogowany jako gość.Nie masz potrzebnych uprawnień by zapisać plik. Upewnij się czy podałeś właściwą ścieżkę zapisu i spróbuj ponownie.Zostałeś wylogowany, ponieważ byłeś nieobecny ponad 60 minutWysłałeś ofertę remisuTwój przeciwnik prosi Cię o pośpiech!Twój przeciwnik chce przerwać grę. Jeżeli się zgodzisz, gra skończy się bez wyników.Twój przeciwnik chce zawiesić grę. Jeżeli się zgodzisz, gra zostanie wstrzymana. Będzie można ją kontynuować później (gdy przeciwnik będzie online).Twój przeciwnik chce wstrzymać grę. Jeżeli się zgodzisz, zegar zostanie wstrzymany dopóki gracze nie zgodzą się ponownie go wznowić.Twój przeciwnik chce kontynuować grę. Jeżeli się zgodzisz, zegar zostanie włączony ponownie.Twój przeciwnik chce cofnąć %s ostatnich ruch(y/ów). Jeżeli się zgodzisz, gra zostanie kontynuowana z wcześniejszego stanu.Twój przeciwnik zaoferował remis. Jeżeli się zgodzisz, gra skończy się wynikami 1/2 - 1/2.Twój przeciwnik ma jeszcze czas do dyspozycji.Twoja siła:_Akceptuj_Akcje_Czarni:_Zgłoś koniec czasu_Wyczyść Pokoje_Odmów_Eksportuj Położenie_Pełny ekran_Gra_Lista gier_Główne_Pomoc_Schowaj karty kiedy tylko jedna gra jest otwartaTryb _podpowiedzi_Wczytaj grę_Wyloguj Się_Logi_Nazwa:_Nowa gra_Następny_Obserwowane ruchy:_Przeciwnik_Hasło:_Zagraj w Zwykłe szachy_Lista graczy_Poprzedni_Zastąp_Obróć szachownicę_Zapisz %d dokument(y)_Zapisz grę_Żądania/wyzwania_Dźwięki_Rozpocznij grę_Bez ograniczeń_Używaj dźwięków w PyChess_Widok_Biali:_Twój Kolorprzesuwają piona bliżej krawędzi promocji %szdobywają materiałwykonują roszadębronią %sremisywymieniają materiałgnuchess:http://pl.wikipedia.org/wiki/Szachyhttp://pl.wikipedia.org/wiki/Zasady_gry_w_szachyzwiększają bezpieczeństwo Królazwiększają nacisk na %smatujeminprzesuwają wieżę na otwarty korytarzprzesuwają wieżę na pół-otwarty korytarzwykonują fianchetto: %sonline w sumiepromują piona w %sszachujepoświęcają materiałseknieznacznie zwiększają bezpieczeństwo królaodbijają materiałOkno 1pychess-0.12.2/lang/hr/0000755000175000017470000000000012653231274015107 5ustar tamasusers00000000000000pychess-0.12.2/lang/hr/LC_MESSAGES/0000755000175000017470000000000012653231274016674 5ustar tamasusers00000000000000pychess-0.12.2/lang/hr/LC_MESSAGES/pychess.po0000644000175000017470000033412412653216206020717 0ustar tamasusers00000000000000# SOME DESCRIPTIVE TITLE. # Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER # This file is distributed under the same license as the pychess package. # # Translators: # Mislav E. Lukšić , 2013 # Mislav E. Lukšić , 2013 # FIRST AUTHOR , 2008 # gbtami , 2015 # Mislav E. Lukšić , 2013 # Mislav E. Lukšić , 2013 # Mislav E. Lukšić , 2013 msgid "" msgstr "" "Project-Id-Version: pychess\n" "Report-Msgid-Bugs-To: \n" "POT-Creation-Date: 2016-01-27 13:28+0100\n" "PO-Revision-Date: 2016-01-28 08:56+0000\n" "Last-Translator: slav0nic \n" "Language-Team: Croatian (http://www.transifex.com/gbtami/pychess/language/hr/)\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" "Language: hr\n" "Plural-Forms: nplurals=3; plural=n%10==1 && n%100!=11 ? 0 : n%10>=2 && n%10<=4 && (n%100<10 || n%100>=20) ? 1 : 2;\n" # "Plural-Forms: nplurals=INTEGER; plural=EXPRESSION;\n" #: glade/analyze_game.glade:22 msgid "Analyze game" msgstr "Analiziraj partiju" #: glade/analyze_game.glade:87 msgid "Use analyzer:" msgstr "Koristi analizu:" #: glade/analyze_game.glade:122 glade/PyChess.glade:2054 msgid "Maximum analysis time in seconds:" msgstr "Najduže dopušteno vrijeme analize u sekundama:" #: glade/analyze_game.glade:163 msgid "" "If the analyzer finds a move where the evaluation difference (the difference" " between the evaluation for the move it thinks is the best move and the " "evaluation for the move made in the game) exceeds this value, it will add an" " annotation for that move (consisting of the engine's Principal Variation " "for the move) to the Annotation panel" msgstr "Ako analiza pronađe potez u kojem razlika u procjeni nadilazi ovu vrijednost (razlika između procjene za potez koji smatra najboljim i procjene za potez povučen u partiji), dodat će bilješku za taj potez (koja se sastoji od glavne inačice šahovskog pogonika za potez) u okno komentara" #: glade/analyze_game.glade:164 msgid "Variation annotation creation threshold in centipawns:" msgstr "Prag stvaranja komentara inačice u pješačkim stotinkama:" #: glade/analyze_game.glade:198 msgid "Analyze from current position" msgstr "Analiziraj od trenutne pozicije" #: glade/analyze_game.glade:214 msgid "Add threatening variation lines " msgstr "Dodaj prijeteće potezne promjene" #: glade/analyze_game.glade:229 glade/PyChess.glade:1459 msgid "Colorize analyzed moves" msgstr "Oboji analizirane poteze" #: glade/analyze_game.glade:244 glade/PyChess.glade:1495 msgid "Show evaluation values" msgstr "Prikaži vrijednosti procjene" #: glade/discovererDialog.glade:18 msgid "PyChess is discovering your engines. Please wait." msgstr "PyChess otkriva tvoje šahovske pogonike. Molim pričekaj." #: glade/discovererDialog.glade:77 msgid "PyChess.py:" msgstr "PyChess.py:" #: glade/discovererDialog.glade:89 msgid "ShredderLinuxChess:" msgstr "ShredderLinuxChess:" #: glade/discovererDialog.glade:101 msgid "gnuchess:" msgstr "gnuchess:" #: glade/fics_logon.glade:7 msgid "PyChess - Connect to Internet Chess" msgstr "PyChess - Spoji se na internetski šah" #: glade/fics_logon.glade:47 msgid "Connect to the Free Online Chess Server" msgstr "Spoji se na Free Online Chess Server " #: glade/fics_logon.glade:129 glade/taskers.glade:394 msgid "_Password:" msgstr "_Zaporka:" #: glade/fics_logon.glade:143 msgid "_Name:" msgstr "_Ime:" #: glade/fics_logon.glade:191 msgid "Log on as _Guest" msgstr "Prijavi se kao _Gost" #: glade/fics_logon.glade:227 msgid "Host:" msgstr "Domaćin:" #: glade/fics_logon.glade:259 msgid "Po_rts:" msgstr "Ul_azi:" #: glade/fics_logon.glade:271 msgid "Auto login on startup" msgstr "Samoprijava pri pokretanju" #: glade/fics_logon.glade:385 msgid "S_ign up" msgstr "_Registriraj se" #: glade/fics_lounge.glade:35 msgid "Challenge: " msgstr "Izazovi: " #: glade/fics_lounge.glade:97 msgid "Send Challenge" msgstr "Uputi izazov" #: glade/fics_lounge.glade:133 msgid "Challenge:" msgstr "Izazovi:" #: glade/fics_lounge.glade:327 glade/fics_lounge.glade:2078 msgid "Lightning:" msgstr "Munjevito:" #: glade/fics_lounge.glade:351 glade/fics_lounge.glade:2102 msgid "Standard:" msgstr "Standardno:" #: glade/fics_lounge.glade:375 glade/fics_lounge.glade:2126 msgid "Blitz:" msgstr "Brzopotezno:" #: glade/fics_lounge.glade:400 msgid "2 min, Fischer Random, Black" msgstr "2 min, Fischerov nasumični, Crni" #: glade/fics_lounge.glade:422 msgid "10 min + 6 sec/move, White" msgstr "10 min + 6 sek/potez, Bijeli" #: glade/fics_lounge.glade:444 msgid "5 min" msgstr "5 min" #: glade/fics_lounge.glade:480 msgid "Edit Seek" msgstr "Uredi zahtjev" #: glade/fics_lounge.glade:584 lib/pychess/ic/ICLounge.py:2208 #: lib/pychess/ic/__init__.py:101 lib/pychess/Utils/GameModel.py:206 msgid "Untimed" msgstr "Vremenski neograničeno" #: glade/fics_lounge.glade:637 msgid "Minutes: " msgstr "Minute:" #: glade/fics_lounge.glade:665 msgid " Gain: " msgstr " Dodatak:" #: glade/fics_lounge.glade:703 msgid "Time control: " msgstr "Nadzor vremena:" #: glade/fics_lounge.glade:716 lib/pychess/ic/FICSObjects.py:56 #: lib/pychess/ic/ICLounge.py:1137 lib/pychess/ic/ICLounge.py:2208 #: lib/pychess/ic/__init__.py:99 msgid "Standard" msgstr "Standardno" #: glade/fics_lounge.glade:757 glade/newInOut.glade:633 msgid "Time Control" msgstr "Nadzor vremena" #: glade/fics_lounge.glade:814 glade/fics_lounge.glade:1346 msgid "Don't care" msgstr "Zanemareno" #: glade/fics_lounge.glade:879 msgid "Your strength: " msgstr "Tvoja jačina:" #: glade/fics_lounge.glade:921 msgid "(Blitz)" msgstr "(Brzopotezno)" #: glade/fics_lounge.glade:951 msgid "Opponent's strength: " msgstr "Protivnikova jačina:" #: glade/fics_lounge.glade:1055 msgid "" "When this button is in the \"locked\" state, the relationship\n" "between \"Opponent's strength\" and \"Your strength\" will be\n" "preserved when \n" "a) your rating for the type of game sought has changed\n" "b) you change the variant or the time control" msgstr "Kad je ovaj gumb u \"zaključanu\" stanju, odnos\nizmeđu \"protivnikove jačine\" i \"tvoje jačine\" bit će \nsačuvan kada \na) se tvoj rang za vrstu igre promijeni\nb) kad promijeniš šahovsku varijantu ili nadzor vremena" #: glade/fics_lounge.glade:1095 msgid "Center:" msgstr "Središte:" #: glade/fics_lounge.glade:1134 msgid "1200" msgstr "1200" #: glade/fics_lounge.glade:1188 msgid "Tolerance:" msgstr "Odstupanje:" #: glade/fics_lounge.glade:1243 lib/pychess/ic/ICLounge.py:2452 msgid "Hide" msgstr "Sakrij" #: glade/fics_lounge.glade:1289 msgid "Opponent Strength" msgstr "Protivnička jačina" #: glade/fics_lounge.glade:1386 lib/pychess/Database/gamelist.py:40 #: lib/pychess/ic/ICLounge.py:1357 lib/pychess/ic/ICLounge.py:1557 #: lib/pychess/ic/ICLounge.py:2108 lib/pychess/Utils/repr.py:10 #: lib/pychess/widgets/ChessClock.py:40 #: lib/pychess/widgets/TaskerManager.py:153 msgid "White" msgstr "Bijeli" #: glade/fics_lounge.glade:1414 lib/pychess/Database/gamelist.py:40 #: lib/pychess/ic/ICLounge.py:1358 lib/pychess/ic/ICLounge.py:1558 #: lib/pychess/ic/ICLounge.py:2110 lib/pychess/Utils/repr.py:10 #: lib/pychess/widgets/ChessClock.py:40 #: lib/pychess/widgets/TaskerManager.py:154 msgid "Black" msgstr "Crni" #: glade/fics_lounge.glade:1453 msgid "Your Color" msgstr "Tvoja boja" #: glade/fics_lounge.glade:1512 msgid "Play normal chess rules" msgstr "Igraj po normalnim šahovskim pravilima" #: glade/fics_lounge.glade:1552 msgid "Play" msgstr "Igraj" #: glade/fics_lounge.glade:1618 glade/newInOut.glade:833 msgid "Chess Variant" msgstr "Šahovska varijanta" #: glade/fics_lounge.glade:1676 msgid "Rated game" msgstr "Rangirana partija" #: glade/fics_lounge.glade:1692 msgid "Manually accept opponent" msgstr "Ručno prihvati protivnika" #: glade/fics_lounge.glade:1722 msgid "Options" msgstr "Mogućnosti" #: glade/fics_lounge.glade:1750 msgid "PyChess - Internet Chess: FICS" msgstr "PyChess - Internetski šah: FICS" #: glade/fics_lounge.glade:1823 msgid "_Clear Seeks" msgstr "_Počisti zahtjeve" #: glade/fics_lounge.glade:1847 msgid "_Accept" msgstr "_Prihvati" #: glade/fics_lounge.glade:1871 msgid "_Decline" msgstr "_Odbij" #: glade/fics_lounge.glade:2151 msgid "2 min, Fischer Random, 1800↓, Black" msgstr "2 min, Fischerov nasumični, 1800↓, Crni" #: glade/fics_lounge.glade:2172 msgid "10 min + 6 sec/move, 1400↑, White" msgstr "10 min + 6 sek/potez, 1400↑, Bijeli" #: glade/fics_lounge.glade:2193 msgid "5 min, 1200-1800, Manual" msgstr "5 min, 1200-1800, ručno" #: glade/fics_lounge.glade:2247 msgid "Send all seeks" msgstr "Pošalji sve zahtjeve" #: glade/fics_lounge.glade:2301 msgid "Send seek" msgstr "Pošalji zahtjev" #: glade/fics_lounge.glade:2337 msgid "Create Seek" msgstr "Stvori zahtjev" #: glade/fics_lounge.glade:2353 msgid "_Seeks / Challenges" msgstr "_Zahtjevi / Izazovi" #: glade/fics_lounge.glade:2374 lib/pychess/ic/ICLounge.py:472 #: lib/pychess/ic/ICLounge.py:670 lib/pychess/ic/ICLounge.py:1357 #: lib/pychess/ic/ICLounge.py:1358 msgid "Rating" msgstr "Rang" #: glade/fics_lounge.glade:2399 msgid "Time" msgstr "Vrijeme" #: glade/fics_lounge.glade:2419 msgid "Seek _Graph" msgstr "_Grafikon zahtjeva" #: glade/fics_lounge.glade:2444 msgid "0 Players Ready" msgstr "0 igrača pripravnih" #: glade/fics_lounge.glade:2496 msgid "Challenge" msgstr "Izazovi" #: glade/fics_lounge.glade:2549 glade/fics_lounge.glade:2735 msgid "Observe" msgstr "Promatraj" #: glade/fics_lounge.glade:2602 msgid "Start Private Chat" msgstr "Započni zasebni razgovor" #: glade/fics_lounge.glade:2659 msgid "_Player List" msgstr "Popis _igrača" #: glade/fics_lounge.glade:2792 msgid "_Game List" msgstr "Popis _partija" #: glade/fics_lounge.glade:2847 msgid "_My games" msgstr "" #: glade/fics_lounge.glade:2904 glade/PyChess.glade:841 msgid "Offer _Resume" msgstr "Ponudi _nastavak" #: glade/fics_lounge.glade:2962 glade/PyChess.glade:880 msgid "R_esign" msgstr "P_redaj" #: glade/fics_lounge.glade:3006 glade/PyChess.glade:820 msgid "Offer _Draw" msgstr "Ponudi _remi" #: glade/fics_lounge.glade:3050 msgid "Offer A_bort" msgstr "Ponudi pre_kid" #: glade/fics_lounge.glade:3107 msgid "Pre_view" msgstr "Pre_gled" #: glade/fics_lounge.glade:3151 msgid "Examine" msgstr "" #: glade/fics_lounge.glade:3208 msgid "_Archived" msgstr "" #: glade/fics_lounge.glade:3313 msgid "News" msgstr "Novosti" #: glade/fics_lounge.glade:3345 msgid "Show Console" msgstr "Pokaži konzolu" #: glade/fics_lounge.glade:3359 msgid "Show _Chat" msgstr "Pokaži _razgovor" #: glade/fics_lounge.glade:3373 msgid "_Log Off" msgstr "_Odjavi se" #: glade/fics_lounge.glade:3393 msgid "Tools" msgstr "Pomagala" #: glade/fics_lounge.glade:3428 msgid "Asymmetric Random " msgstr "Asimetrični nasumični " #: glade/findbar.glade:6 msgid "window1" msgstr "prozor1" #: glade/findbar.glade:21 msgid "0 of 0" msgstr "0 od 0" #: glade/findbar.glade:66 msgid "Search:" msgstr "Traži:" #: glade/findbar.glade:134 msgid "_Previous" msgstr "_Prijašnji" #: glade/findbar.glade:192 msgid "_Next" msgstr "_Sljedeći" #: glade/newInOut.glade:45 lib/pychess/widgets/newGameDialog.py:445 msgid "New Game" msgstr "Nova partija" #: glade/newInOut.glade:108 msgid "_Start Game" msgstr "_Započni partiju" #: glade/newInOut.glade:130 msgid "Copy FEN" msgstr "Preslikaj FEN" #: glade/newInOut.glade:143 msgid "Clear" msgstr "Ukloni" #: glade/newInOut.glade:156 msgid "Paste FEN" msgstr "Prilijepi FEN" #: glade/newInOut.glade:257 msgid "_Black player:" msgstr "_Crni igrač:" #: glade/newInOut.glade:274 msgid "_White player:" msgstr "_Bijeli igrač:" #: glade/newInOut.glade:385 msgid "Players" msgstr "Igrači" #: glade/newInOut.glade:436 msgid "_Untimed" msgstr "_Vremenski neograničeno" #: glade/newInOut.glade:475 msgid "Blitz: 5 min" msgstr "Brzopotezno: 5 min" #: glade/newInOut.glade:526 msgid "Rapid: 15 min + 10 sec/move" msgstr "Ubrzano: 15 min + 10 sek/potez" #: glade/newInOut.glade:575 msgid "Normal: 40 min + 15 sec/move" msgstr "Standardno: 40 min + 15 sek/potez" #: glade/newInOut.glade:684 msgid "_Play Normal chess" msgstr "_Igraj standardni šah" #: glade/newInOut.glade:724 msgid "Play Fischer Random chess" msgstr "Igraj Fischerov nasumični šah" #: glade/newInOut.glade:774 msgid "Play Losers chess" msgstr "Igraj gubitnički šah" #: glade/newInOut.glade:919 msgid "Open Game" msgstr "Otvori partiju" #: glade/newInOut.glade:1162 msgid "Initial Position" msgstr "Početna pozicija" #: glade/newInOut.glade:1219 msgid "Enter Game Notation" msgstr "Unesi notaciju partije" #: glade/newInOut.glade:1314 msgid "Halfmove clock" msgstr "Polupotezna ura" #: glade/newInOut.glade:1327 msgid "En passant line" msgstr "Potez uzimanja u prolazu" #: glade/newInOut.glade:1339 msgid "Side to move" msgstr "Strana na potezu" #: glade/newInOut.glade:1351 msgid "Move number" msgstr "Broj poteza" #: glade/newInOut.glade:1361 msgid "Black O-O" msgstr "Crni O-O" #: glade/newInOut.glade:1375 msgid "Black O-O-O" msgstr "Crni O-O-O" #: glade/newInOut.glade:1389 msgid "White O-O-O" msgstr "Bijeli O-O-O" #: glade/newInOut.glade:1403 msgid "White O-O" msgstr "Bijeli O-O" #: glade/promotion.glade:7 msgid "Promotion" msgstr "Promocija" #: glade/promotion.glade:49 lib/pychess/Utils/repr.py:12 msgid "Queen" msgstr "dama" #: glade/promotion.glade:95 lib/pychess/Utils/repr.py:12 msgid "Rook" msgstr "top" #: glade/promotion.glade:141 lib/pychess/Utils/repr.py:12 msgid "Bishop" msgstr "lovac" #: glade/promotion.glade:187 lib/pychess/Utils/repr.py:12 msgid "Knight" msgstr "skakač" #: glade/promotion.glade:233 lib/pychess/Utils/repr.py:12 msgid "King" msgstr "kralj" #: glade/promotion.glade:265 msgid "Promote pawn to what?" msgstr "Pretvori pješaka u što?" #: glade/PyChess.glade:9 msgid "Chess client" msgstr "Šahovski klijent" #: glade/PyChess.glade:44 msgid "Game information" msgstr "Obavijest o partiji" #: glade/PyChess.glade:164 msgid "Event:" msgstr "Događaj:" #: glade/PyChess.glade:178 msgid "Site:" msgstr "Mjesto:" #: glade/PyChess.glade:204 msgid "Round:" msgstr "Krug:" #: glade/PyChess.glade:237 msgid "White:" msgstr "Bijeli:" #: glade/PyChess.glade:249 msgid "Black:" msgstr "Crni:" #: glade/PyChess.glade:302 msgid "Game data" msgstr "Podatci o partiji" #: glade/PyChess.glade:357 msgid "Date of game" msgstr "Nadnevak partije" #: glade/PyChess.glade:495 msgid "_Game" msgstr "_Partija" #: glade/PyChess.glade:502 msgid "_New Game" msgstr "_Nova partija" #: glade/PyChess.glade:515 msgid "Play _Internet Chess" msgstr "Igraj _internetski šah" #: glade/PyChess.glade:534 msgid "_Load Game" msgstr "_Učitaj partiju" #: glade/PyChess.glade:550 msgid "Load _Recent Game" msgstr "Učitaj _nedavnu partiju" #: glade/PyChess.glade:558 msgid "Open _Database" msgstr "Otvori _bazu podataka" #: glade/PyChess.glade:569 lib/pychess/widgets/newGameDialog.py:615 msgid "Setup Position" msgstr "Postavi poziciju" #: glade/PyChess.glade:579 msgid "Enter Game _Notation" msgstr "Unesi _notaciju partije" #: glade/PyChess.glade:592 msgid "_Save Game" msgstr "_Pohrani partiju" #: glade/PyChess.glade:606 msgid "Save Game _As" msgstr "Pohrani partiju _kao" #: glade/PyChess.glade:624 msgid "Share Game" msgstr "Podijeli partiju" #: glade/PyChess.glade:630 msgid "_Export Position" msgstr "_Izvezi poziciju" #: glade/PyChess.glade:644 msgid "_Analyze Game" msgstr "_Analiziraj partiju" #: glade/PyChess.glade:678 msgid "Player _Rating" msgstr "Rang igrača" #: glade/PyChess.glade:723 msgid "_Edit" msgstr "_Uredi" #: glade/PyChess.glade:734 msgid "_Copy PGN" msgstr "_Preslikaj PGN" #: glade/PyChess.glade:746 msgid "_Copy FEN" msgstr "_Preslikaj FEN" #: glade/PyChess.glade:763 msgid "_Engines" msgstr "_Šahovski pogonici" #: glade/PyChess.glade:789 msgid "_Actions" msgstr "_Radnje" #: glade/PyChess.glade:800 msgid "Offer _Abort" msgstr "Ponudi _prekid" #: glade/PyChess.glade:810 msgid "Offer Ad_journment" msgstr "Ponudi _odgodu" #: glade/PyChess.glade:831 msgid "Offer _Pause" msgstr "Ponudi _stanku" #: glade/PyChess.glade:847 msgid "Offer _Undo" msgstr "Ponudi _vraćanje poteza" #: glade/PyChess.glade:870 msgid "_Call Flag" msgstr "_Zovi zastavicu" #: glade/PyChess.glade:890 msgid "Ask to _Move" msgstr "Zatraži _potez" #: glade/PyChess.glade:905 msgid "Auto Call _Flag" msgstr "Samozovi _zastavicu" #: glade/PyChess.glade:918 msgid "_View" msgstr "_Prikaz" #: glade/PyChess.glade:925 msgid "_Rotate Board" msgstr "_Zaokreni ploču" #: glade/PyChess.glade:939 msgid "_Fullscreen" msgstr "_Cijeli zaslon" #: glade/PyChess.glade:952 msgid "Leave _Fullscreen" msgstr "Napusti _cijeli zaslon" #: glade/PyChess.glade:969 msgid "_Show Sidepanels" msgstr "_Prikaži sporedna okna" #: glade/PyChess.glade:980 msgid "_Log Viewer" msgstr "Preglednik dnevnika" #: glade/PyChess.glade:997 msgid "_Hint mode" msgstr "_Savjetodavni način" #: glade/PyChess.glade:1009 msgid "Sp_y mode" msgstr "_Špijunski način" #: glade/PyChess.glade:1024 msgid "_Help" msgstr "_Pomoć" #: glade/PyChess.glade:1034 msgid "About Chess" msgstr "O šahu" #: glade/PyChess.glade:1043 msgid "How to Play" msgstr "Kako igrati?" #: glade/PyChess.glade:1052 msgid "Translate PyChess" msgstr "Prevedi PyChess" #: glade/PyChess.glade:1058 msgid "Tip of the Day" msgstr "Savjet dana" #: glade/PyChess.glade:1153 msgid "Default" msgstr "Zadano" #: glade/PyChess.glade:1156 msgid "Knights" msgstr "Skakači" #: glade/PyChess.glade:1167 lib/pychess/widgets/preferencesDialog.py:349 msgid "Beep" msgstr "Zvučni signal" #: glade/PyChess.glade:1170 lib/pychess/widgets/preferencesDialog.py:350 msgid "Select sound file..." msgstr "Izaberi zvučnu datoteku..." #: glade/PyChess.glade:1173 lib/pychess/widgets/preferencesDialog.py:348 msgid "No sound" msgstr "Bez zvuka" #: glade/PyChess.glade:1180 msgid "Preferences" msgstr "Prilagodbe" #: glade/PyChess.glade:1218 msgid "The displayed name of the first human player, e.g., John." msgstr "Prikazano ime prvog ljudskog igrača, npr. Mislav." #: glade/PyChess.glade:1230 msgid "Name of _first human player:" msgstr "Ime _prvog ljudskog igrača:" #: glade/PyChess.glade:1259 msgid "The displayed name of the guest player, e.g., Mary." msgstr "Prikazano ime gostujućeg igrača, npr. Marija." #: glade/PyChess.glade:1271 msgid "Name of s_econd human player:" msgstr "Ime _drugog ljudskog igrača:" #: glade/PyChess.glade:1307 msgid "_Hide tabs when only one game is open" msgstr "_Sakrij kartice kad je samo jedna partija otvorena" #: glade/PyChess.glade:1312 msgid "" "If set, this hides the tab in the top of the playing window, when it is not " "needed." msgstr "Ako je postavljeno, ovo sakriva karticu na vrhu igrajućeg prozora, kada ona nije potrebna." #: glade/PyChess.glade:1326 msgid "_Use main app closer [x] to close all games" msgstr "_Koristi glavni programski zatvarač [x] za zatvaranje svih partija" #: glade/PyChess.glade:1331 msgid "" "If set, clicking on main application window closer first time it closes all " "games." msgstr "Ako je postavljeno, klikom na glavni programski zatvarač prozora prvi puta zatvaraju se sve partije" #: glade/PyChess.glade:1345 msgid "Auto _rotate board to current human player" msgstr "Samo_zaokreni ploču prema trenutnom ljudskom igraču" #: glade/PyChess.glade:1350 msgid "" "If set, the board will turn after each move, to show the natural view for " "the current player." msgstr "Ako je postavljeno, ploča će se zaokrenuti nakon svakog poteza, kako bi se prikazao naravni pogled igrača na potezu." #: glade/PyChess.glade:1364 msgid "Auto _promote to queen" msgstr "" #: glade/PyChess.glade:1369 msgid "If set, pawn promotes to queen without promotion dialog selection." msgstr "" #: glade/PyChess.glade:1383 msgid "Face _to Face display mode" msgstr "Zaslonski prikaz licem u lice" #: glade/PyChess.glade:1388 msgid "" "If set, the black pieces will be head down, suitable for playing against " "friends on mobile devices." msgstr "Ako je postavljeno, crne figure bit će spuštene, što je pogodno za igru protiv prijatelja na mobilnim uređajima." #: glade/PyChess.glade:1402 msgid "Sho_w cords" msgstr "Prikaži oznake" #: glade/PyChess.glade:1407 msgid "" "If set, the playing board will display labels and ranks for each chess " "field. These are usable in chess notation." msgstr "Ako je postavljeno, šahovska ploča će prikazivati slovnu i brojčanu oznaku za svako šahovsko polje. Ovo je iskoristivo u šahovskoj notaciji." #: glade/PyChess.glade:1421 msgid "Show _captured pieces" msgstr "Pokaži _uzete figure" #: glade/PyChess.glade:1426 msgid "If set, the captured figurines will be shown next to the board." msgstr "Ako je postavljeno, uzete figure bit će prikazane kraj ploče." #: glade/PyChess.glade:1440 msgid "Prefer figures in _notation" msgstr "Budi skloniji figurama u _notaciji" #: glade/PyChess.glade:1445 msgid "" "If set, PyChess will use figures to express moved pieces, rather than " "uppercase letters." msgstr "Ako je postavljeno, PyChess će koristiti brojke kako bi prikazao povučene figure, radije nego velika slova." #: glade/PyChess.glade:1464 msgid "If set, PyChess will colorize suboptimal analyzed moves with red." msgstr "Ako je postavljeno, PyChess će nedovoljno dobre analizirane poteze obojiti u crveno." #: glade/PyChess.glade:1477 msgid "Show elapsed move times" msgstr "Prikaži proteklo vrijeme za potez" #: glade/PyChess.glade:1482 msgid "If set, the elapsed time that a player used for the move is shown." msgstr "Ako je postavljeno, prikazano je proteklo vrijeme koje je igrač iskoristio za potez." #: glade/PyChess.glade:1500 msgid "If set, the hint analyzer engine evaluation value is shown." msgstr "Ako je postavljeno, prikazuje se rezultat procjene analitičkog pogonika." #: glade/PyChess.glade:1526 msgid "General Options" msgstr "" #: glade/PyChess.glade:1560 msgid "F_ull board animation" msgstr "P_otpuna animacija ploče" #: glade/PyChess.glade:1565 msgid "Animate pieces, board rotation and more. Use this on fast machines." msgstr "Animiraj figure, zaokretanje ploče i ostalo. Primjenjuj to na brzim računalima." #: glade/PyChess.glade:1579 msgid "Only animate _moves" msgstr "Animiraj samo _poteze" #: glade/PyChess.glade:1584 msgid "Only animate piece moves." msgstr "Animiraj samo poteze figura" #: glade/PyChess.glade:1599 msgid "No _animation" msgstr "Bez _animacije" #: glade/PyChess.glade:1604 msgid "Never use animation. Use this on slow machines." msgstr "Nikad ne koristi animaciju. Primjenjuj to na sporim računalima." #: glade/PyChess.glade:1632 msgid "Animation" msgstr "Animacija" #: glade/PyChess.glade:1651 msgid "_General" msgstr "_Općenito" #: glade/PyChess.glade:1692 msgid "Use opening _book" msgstr "Koristi _knjigu otvaranja" #: glade/PyChess.glade:1697 msgid "If set, PyChess will suggest best opening moves on hint panel." msgstr "Ako je postavljeno, PyChess će predložiti najbolje otvarajuće poteze u savjetodavnom oknu." #: glade/PyChess.glade:1724 msgid "Polyglot book file:" msgstr "Datoteka knjige Polyglot:" #: glade/PyChess.glade:1768 msgid "Use _local tablebases" msgstr "Koristi _mjesnu šahovsku bazu pozicija" #: glade/PyChess.glade:1773 msgid "" "If set, PyChess will show game results for different moves in positions containing 6 or less pieces.\n" "You can download tablebase files from:\n" "http://www.olympuschess.com/egtb/gaviota/" msgstr "Ako je tako postavljeno, PyChess će pokazati ishod partije za različite poteze u pozicijama koje sadrže 6 ili manje figura.\nMožeš preuzeti datoteke sa šahovskom bazom pozicija na:\nhttp://www.olympuschess.com/egtb/gaviota/" #: glade/PyChess.glade:1803 msgid "Gaviota TB path:" msgstr "Putanja za bazu pozicija Gaviota:" #: glade/PyChess.glade:1843 msgid "Use _online tablebases" msgstr "Koristi _mrežnu šahovsku bazu pozicija" #: glade/PyChess.glade:1848 msgid "" "If set, PyChess will show game results for different moves in positions containing 6 or less pieces.\n" "It will search positions from http://www.k4it.de/" msgstr "Ako je tako postavljeno, PyChess će pokazati ishod partije za različite poteze u pozicijama koje sadrže 6 ili manje figura.\nPozicije će tražiti na http://www.k4it.de/" #: glade/PyChess.glade:1870 msgid "Opening, endgame" msgstr "Otvaranje, završnica" #: glade/PyChess.glade:1904 msgid "Use _analyzer" msgstr "Koristi _analizu" #: glade/PyChess.glade:1946 msgid "" "The analyzer will run in the background and analyze the game. This is " "necessary for the hint mode to work" msgstr "Analiza će raditi u pozadini i analizirati partiju. Ovo je potrebno kako bi savjetodavni način radio" #: glade/PyChess.glade:1978 msgid "Use _inverted analyzer" msgstr "Koristi _obrnutu analizu" #: glade/PyChess.glade:2020 msgid "" "The inverse analyzer will analyze the game as if your opponent was to move. " "This is necessary for the spy mode to work" msgstr "Obrnuta analiza će analizirati partiju kao da je tvoj protivnik bio na potezu. Ovo je potrebno kako bi špijunski način radio" #: glade/PyChess.glade:2096 msgid "Analyzing" msgstr "Analizira se" #: glade/PyChess.glade:2118 msgid "_Hints" msgstr "_Prijedlozi" #: glade/PyChess.glade:2263 msgid "Uninstall" msgstr "Deinstaliraj" #: glade/PyChess.glade:2317 msgid "Ac_tive" msgstr "D_jelatno" #: glade/PyChess.glade:2367 msgid "Installed Sidepanels" msgstr "Ugrađena sporedna okna" #: glade/PyChess.glade:2382 msgid "Side_panels" msgstr "Sporedna _okna" #: glade/PyChess.glade:2440 msgid "Light Squares :" msgstr "" #: glade/PyChess.glade:2479 msgid "Dark Squares :" msgstr "" #: glade/PyChess.glade:2515 msgid "Reset Default Colours" msgstr "" #: glade/PyChess.glade:2551 msgid "Board Colours" msgstr "" #: glade/PyChess.glade:2610 msgid "Chess Sets" msgstr "" #: glade/PyChess.glade:2634 msgid "Themes" msgstr "Teme" #: glade/PyChess.glade:2659 msgid "_Use sounds in PyChess" msgstr "_Koristi zvukove u PyChessu" #: glade/PyChess.glade:2982 msgid "A player _checks:" msgstr "Igrač _šahira:" #: glade/PyChess.glade:2997 msgid "A player _moves:" msgstr "Igrač _povlači:" #: glade/PyChess.glade:3010 msgid "Game is _drawn:" msgstr "Partija je _neriješena:" #: glade/PyChess.glade:3025 msgid "Game is _lost:" msgstr "Partija je _izgubljena:" #: glade/PyChess.glade:3040 msgid "Game is _won:" msgstr "Partija je _dobivena:" #: glade/PyChess.glade:3055 msgid "A player c_aptures:" msgstr "Igrač u_zima:" #: glade/PyChess.glade:3084 msgid "Game is _set-up:" msgstr "Partija je _postavljena:" #: glade/PyChess.glade:3136 msgid "_Observed moves:" msgstr "_Promatrani potezi:" #: glade/PyChess.glade:3151 msgid "Observed _ends:" msgstr "Promatrane _završnice:" #: glade/PyChess.glade:3265 msgid "Short on _time:" msgstr "Nedostatak _vremena:" #: glade/PyChess.glade:3317 msgid "_Invalid move:" msgstr "_Nepravilni potez:" #: glade/PyChess.glade:3369 msgid "Activate alarm when _remaining sec is:" msgstr "Uključi zvučno upozorenje kad _preostaje sekundi:" #: glade/PyChess.glade:3416 msgid "Play Sound When..." msgstr "Oglasi se zvukom kada..." #: glade/PyChess.glade:3438 msgid "_Sounds" msgstr "_Zvukovi" #: glade/PyChess.glade:3463 msgid "_Auto save finished games" msgstr "_Samospremi dovršene partije" #: glade/PyChess.glade:3497 msgid "Save files to:" msgstr "Spremi datoteke u:" #: glade/PyChess.glade:3525 msgid "Use name format:" msgstr "\"Koristi oblik imena:" #: glade/PyChess.glade:3569 msgid "Names: #n1, #n2" msgstr "Imena: #n1, #n2" #: glade/PyChess.glade:3582 msgid "Year, month, day: #y, #m, #d" msgstr "Godina, mjesec, dan: #y, #m, #d" #: glade/PyChess.glade:3619 msgid "Save elapsed move _times" msgstr "Spremi protekla _vremena za poteze" #: glade/PyChess.glade:3644 msgid "Save analyzing engine _evaluation values" msgstr "Spremi vrijednosne procjene analitičkog pogonika" #: glade/PyChess.glade:3669 msgid "Save _own games only" msgstr "Spremi samo _vlastite partije" #: glade/PyChess.glade:3698 msgid "Save" msgstr "Spremi" #: glade/PyChess.glade:3728 msgid "uci" msgstr "uci" #: glade/PyChess.glade:3731 msgid "xboard" msgstr "xboard" #: glade/PyChess.glade:3739 msgid "Manage engines" msgstr "Upravljanje šahovskim pogonicima" #: glade/PyChess.glade:3837 msgid "Command:" msgstr "Naredba:" #: glade/PyChess.glade:3851 msgid "Protocol:" msgstr "Protokol:" #: glade/PyChess.glade:3865 msgid "Parameters:" msgstr "Mjerila:" #: glade/PyChess.glade:3878 msgid "Command line parameters needed by the engine." msgstr "Mjerila naredbenog retka potrebna šahovskom pogoniku." #: glade/PyChess.glade:3903 msgid "" "Engines use uci or xboard communication protocol to talk to the GUI.\n" "If it can use both you can set here which one you like." msgstr "Šahovski pogonici koriste komunikacijski protokol uci ili xboard\nza općenje s grafičkim korisničkim sučeljem.\nAko se ne mogu koristiti oba, možeš odabrati onaj koji želiš." #: glade/PyChess.glade:3929 msgid "Working directory:" msgstr "Djelatni direktorij:" #: glade/PyChess.glade:3942 msgid "The directory where the engine will be started from." msgstr "Direktorij iz kojega će biti pokrenut šahovski pogonik." #: glade/saveGamesDialog.glade:7 msgid "Quit PyChess" msgstr "Napusti PyChess" #: glade/saveGamesDialog.glade:24 lib/pychess/widgets/ionest.py:424 msgid "Close _without Saving" msgstr "Zatvori _bez spremanja" #: glade/saveGamesDialog.glade:83 msgid "_Save %d documents" msgstr "_Pohrani %d zapise" #: glade/saveGamesDialog.glade:141 msgid "" "There are %d games with unsaved moves. Save changes before " "closing?" msgstr "Ima %d partija s nepohranjenim potezima. Pohrani promjene prije zatvaranja?" #: glade/saveGamesDialog.glade:161 msgid "Select the games you want to save:" msgstr "Izaberi partije koje želiš pohraniti:" #: glade/saveGamesDialog.glade:204 msgid "If you don't save, new changes to your games will be permanently lost." msgstr "Ako ih ne pohraniš, nove promjene u tvojim partijama bit će trajno izgubljene." #: glade/taskers.glade:126 msgid "_Opponent:" msgstr "_Protivnik:" #: glade/taskers.glade:154 msgid "_Your Color:" msgstr "Tvoja boja" #: glade/taskers.glade:219 msgid "_Start Game" msgstr "_Započni partiju" #: glade/taskers.glade:338 msgid "Log on as G_uest" msgstr "Prijavi se kao _Gost" #: glade/taskers.glade:410 msgid "Ha_ndle:" msgstr "Ko_risnik:" #: glade/taskers.glade:469 msgid "_Connect to server" msgstr "" #: glade/tipoftheday.glade:7 msgid "Tip Of The day" msgstr "Savjet dana" #: glade/tipoftheday.glade:62 msgid "Show tips at startup" msgstr "Pokaži savjete pri pokretanju" #: lib/pychess/Main.py:302 msgid "http://en.wikipedia.org/wiki/Chess" msgstr "http://hr.wikipedia.org/wiki/Šah" #: lib/pychess/Main.py:305 msgid "http://en.wikipedia.org/wiki/Rules_of_chess" msgstr "http://hr.wikipedia.org/wiki/Šahovska_pravila" #: lib/pychess/Main.py:370 lib/pychess/widgets/gamenanny.py:80 msgid "Welcome" msgstr "Dobrodošli u" #: lib/pychess/Database/gamelist.py:40 msgid "Id" msgstr "Id" #: lib/pychess/Database/gamelist.py:40 msgid "W Elo" msgstr "B Elo" #: lib/pychess/Database/gamelist.py:40 msgid "B Elo" msgstr "C Elo" #: lib/pychess/Database/gamelist.py:41 msgid "Result" msgstr "Ishod" #: lib/pychess/Database/gamelist.py:41 msgid "Event" msgstr "Događaj" #: lib/pychess/Database/gamelist.py:41 msgid "Site" msgstr "Mjesto" #: lib/pychess/Database/gamelist.py:41 msgid "Round" msgstr "Krug" #: lib/pychess/Database/gamelist.py:41 msgid "Date" msgstr "Nadnevak" #: lib/pychess/Database/gamelist.py:41 msgid "ECO" msgstr "ECO" #: lib/pychess/Database/gamelist.py:62 msgid "PyChess Game Database" msgstr "Podatkovna baza partija PyChessa" #: lib/pychess/Database/PgnImport.py:188 #, python-format msgid "The game #%s can't be loaded, because of an error parsing FEN" msgstr "Partija #%s ne može biti pokrenuta zbog neispravnosti u računalnom čitanju FEN" #: lib/pychess/ic/FICSConnection.py:139 msgid "The connection was broken - got \"end of file\" message" msgstr "Veza je bila prekinuta - primljena je poruka \"end of file\"" #: lib/pychess/ic/FICSConnection.py:140 #, python-format msgid "'%s' is not a registered name" msgstr "'%s' nije zabilježeno ime" #: lib/pychess/ic/FICSConnection.py:141 msgid "" "The entered password was invalid.\n" "If you forgot your password, go to http://www.freechess.org/password to request a new one over email." msgstr "Unesena zaporka je neispravna.\nAko si zaboravio/la svoju zaporku, idi na http://www.freechess.org/password kako bi zatražio/la novu preko e-pošte." #: lib/pychess/ic/FICSConnection.py:145 #, python-format msgid "Sorry '%s' is already logged in" msgstr "Oprosti, '%s' je već prijavljen/a" #: lib/pychess/ic/FICSConnection.py:146 #, python-format msgid "'%s' is a registered name. If it is yours, type the password." msgstr "'%s' je zabilježeno ime. Ako je tvoje, upiši zaporku." #: lib/pychess/ic/FICSConnection.py:147 msgid "" "Due to abuse problems, guest connections have been prevented.\n" "You can still register on http://www.freechess.org" msgstr "" #: lib/pychess/ic/FICSConnection.py:166 msgid "Connecting to server" msgstr "Spajanje na poslužitelj" #: lib/pychess/ic/FICSConnection.py:181 msgid "Logging on to server" msgstr "Prijavljivanje na poslužitelj" #: lib/pychess/ic/FICSConnection.py:239 msgid "Setting up environment" msgstr "Postavljanje okružja" #: lib/pychess/ic/FICSObjects.py:35 lib/pychess/ic/FICSObjects.py:47 #, python-format msgid "%(player)s is %(status)s" msgstr "%(player)s je %(status)s" #: lib/pychess/ic/FICSObjects.py:46 msgid "not playing" msgstr "ne igra" #: lib/pychess/ic/FICSObjects.py:54 lib/pychess/ic/ICLounge.py:1136 #: lib/pychess/ic/ICLounge.py:2209 lib/pychess/ic/__init__.py:98 #: lib/pychess/widgets/newGameDialog.py:153 msgid "Blitz" msgstr "Brzopotezno" #: lib/pychess/ic/FICSObjects.py:58 lib/pychess/ic/ICLounge.py:1137 #: lib/pychess/ic/ICLounge.py:2209 lib/pychess/ic/__init__.py:100 msgid "Lightning" msgstr "Munjevito" #: lib/pychess/ic/FICSObjects.py:60 lib/pychess/Variants/atomic.py:15 msgid "Atomic" msgstr "Atomski - Atomic " #: lib/pychess/ic/FICSObjects.py:62 lib/pychess/Variants/bughouse.py:9 msgid "Bughouse" msgstr "Tandemski - Bughouse " #: lib/pychess/ic/FICSObjects.py:64 lib/pychess/Variants/crazyhouse.py:9 msgid "Crazyhouse" msgstr "Ludi - Crazyhouse " #: lib/pychess/ic/FICSObjects.py:66 lib/pychess/Variants/losers.py:9 msgid "Losers" msgstr "Gubitnički - Losers " #: lib/pychess/ic/FICSObjects.py:68 lib/pychess/Variants/suicide.py:12 msgid "Suicide" msgstr "Samoubilački - Suicide " #: lib/pychess/ic/FICSObjects.py:70 lib/pychess/ic/__init__.py:129 msgid "Wild" msgstr "Divlji - Wild " #: lib/pychess/ic/FICSObjects.py:117 msgid "Online" msgstr "Na mreži" #: lib/pychess/ic/FICSObjects.py:118 lib/pychess/ic/FICSObjects.py:143 msgid "Offline" msgstr "Izvan mreže" #: lib/pychess/ic/FICSObjects.py:133 msgid "Available" msgstr "Dostupno" #: lib/pychess/ic/FICSObjects.py:135 msgid "Playing" msgstr "U igri" #: lib/pychess/ic/FICSObjects.py:141 msgid "Idle" msgstr "U mirovanju" #: lib/pychess/ic/FICSObjects.py:145 msgid "Examining" msgstr "U provjeri" #: lib/pychess/ic/FICSObjects.py:147 msgid "Not Available" msgstr "Nedostupno" #: lib/pychess/ic/FICSObjects.py:149 msgid "Running Simul Match" msgstr "U tijeku simultanka" #: lib/pychess/ic/FICSObjects.py:151 msgid "In Tournament" msgstr "U turniru" #: lib/pychess/ic/FICSObjects.py:308 lib/pychess/ic/FICSObjects.py:492 #: lib/pychess/ic/ICLounge.py:2278 msgid "Unrated" msgstr "Nerangiran" #: lib/pychess/ic/FICSObjects.py:491 lib/pychess/ic/ICLounge.py:670 #: lib/pychess/ic/ICLounge.py:1358 lib/pychess/ic/ICLounge.py:1558 #: lib/pychess/ic/ICLounge.py:2113 msgid "Rated" msgstr "Rangiran" #: lib/pychess/ic/FICSObjects.py:498 lib/pychess/ic/ICLounge.py:2098 #, python-format msgid "%d min" msgstr "%d min" #: lib/pychess/ic/FICSObjects.py:500 #, python-format msgid " + %d sec" msgstr " + %d sek" #: lib/pychess/ic/FICSObjects.py:517 #, python-format msgid "%(player)s plays %(color)s" msgstr "%(player)s igra %(color)s" #: lib/pychess/ic/FICSObjects.py:519 lib/pychess/ic/ICLounge.py:909 msgid "white" msgstr "bijeli" #: lib/pychess/ic/FICSObjects.py:519 lib/pychess/ic/ICLounge.py:909 msgid "black" msgstr "crni" #: lib/pychess/ic/FICSObjects.py:565 msgid "This is a continuation of an adjourned match" msgstr "Ovo je nastavak odgođenog ogleda" #: lib/pychess/ic/FICSObjects.py:654 msgid "Opponent Rating" msgstr "Rang protivnika" #: lib/pychess/ic/FICSObjects.py:656 msgid "Manual Accept" msgstr "Ručno prihvati" #: lib/pychess/ic/FICSObjects.py:810 msgid "Private" msgstr "Zasebno" #: lib/pychess/ic/FICSObjects.py:930 lib/pychess/ic/ICLounge.py:527 #: lib/pychess/Savers/epd.py:139 msgid "Unknown" msgstr "Nepoznato" #: lib/pychess/ic/ICLogon.py:159 lib/pychess/ic/ICLogon.py:165 msgid "Connection Error" msgstr "Neispravnost pri spajanju" #: lib/pychess/ic/ICLogon.py:161 msgid "Log on Error" msgstr "Neispravnost pri prijavi" #: lib/pychess/ic/ICLogon.py:163 msgid "Connection was closed" msgstr "Veza je bila zatvorena" #: lib/pychess/ic/ICLogon.py:169 msgid "Address Error" msgstr "Neispravnost u adresi" #: lib/pychess/ic/ICLogon.py:172 msgid "Auto-logout" msgstr "Samoodjava" #: lib/pychess/ic/ICLogon.py:173 msgid "You have been logged out because you were idle more than 60 minutes" msgstr "Odjavljen/a si jer si bio/la u mirovanju više od 60 minuta" #: lib/pychess/ic/ICLounge.py:222 msgid "You have to set kibitz on to see bot messages here." msgstr "" #: lib/pychess/ic/ICLounge.py:241 msgid "" "You may only have 3 outstanding seeks at the same time. If you want to add a" " new seek you must clear your currently active seeks. Clear your seeks?" msgstr "Možeš uputiti samo 3 izvanredna zahtjeva u isto vrijeme. Ako želiš dodati novi zahtjev, moraš ukloniti svoje trenutne zahtjeve. Želiš li ukloniti svoje zahtjeve?" #: lib/pychess/ic/ICLounge.py:258 msgid "You can't touch this! You are examining a game." msgstr "" #: lib/pychess/ic/ICLounge.py:270 msgid " has declined your offer for a match" msgstr "je otklonio/la tvoju ponudu za ogled" #: lib/pychess/ic/ICLounge.py:283 msgid " is censoring you" msgstr " te cenzurira" #: lib/pychess/ic/ICLounge.py:296 msgid " noplay listing you" msgstr " ima te na popisu za odbijanje igre" #: lib/pychess/ic/ICLounge.py:311 msgid " uses a formula not fitting your match request:" msgstr "koristi formulu koja se ne uklapa u tvoj zahtjev za ogled:" #: lib/pychess/ic/ICLounge.py:325 msgid "to manual accept" msgstr "na ručno prihvaćanje" #: lib/pychess/ic/ICLounge.py:327 msgid "to automatic accept" msgstr "na automatsko prihvaćanje" #: lib/pychess/ic/ICLounge.py:329 msgid "rating range now" msgstr "opseg ranga sada" #: lib/pychess/ic/ICLounge.py:330 msgid "Seek updated" msgstr "Zahtjev obnovljen" #: lib/pychess/ic/ICLounge.py:342 msgid "Your seeks have been removed" msgstr "Tvoji zahtjevi su uklonjeni" #: lib/pychess/ic/ICLounge.py:363 msgid " has arrived" msgstr "je stigao/la" #: lib/pychess/ic/ICLounge.py:370 msgid " has departed" msgstr "je otišao/la" #: lib/pychess/ic/ICLounge.py:374 msgid " is present" msgstr "je prisutan/na" #: lib/pychess/ic/ICLounge.py:391 sidepanel/chatPanel.py:17 msgid "Chat" msgstr "Razgovor" #: lib/pychess/ic/ICLounge.py:472 sidepanel/bookPanel.py:366 msgid "Win" msgstr "Pobjeda" #: lib/pychess/ic/ICLounge.py:472 sidepanel/bookPanel.py:360 msgid "Draw" msgstr "Remi" #: lib/pychess/ic/ICLounge.py:472 sidepanel/bookPanel.py:363 msgid "Loss" msgstr "Poraz" #: lib/pychess/ic/ICLounge.py:482 msgid "" "On FICS, your \"Wild\" rating encompasses all of the following variants at " "all time controls:\n" msgstr "Na poslužitelju FICS, tvoj rang za \"divlji šah\" obuhvaća sve sljedeće varijante na svim vremenskim nadzorima:\n" #: lib/pychess/ic/ICLounge.py:494 msgid "Sanctions" msgstr "Kazne" #: lib/pychess/ic/ICLounge.py:499 msgid "Email" msgstr "E-pošta" #: lib/pychess/ic/ICLounge.py:504 msgid "Spent" msgstr "Potrošeno" #: lib/pychess/ic/ICLounge.py:506 msgid "online in total" msgstr "ukupno na mreži" #: lib/pychess/ic/ICLounge.py:512 msgid "Ping" msgstr "Pokaži mrežno kašnjenje" #: lib/pychess/ic/ICLounge.py:517 msgid "Connecting" msgstr "Povezujem" #: lib/pychess/ic/ICLounge.py:544 msgid "" "You are currently logged in as a guest.\n" "A guest can't play rated games and therefore isn't able to play as many of the types of matches offered as a registered user. To register an account, go to http://www.freechess.org/Register/index.html." msgstr "Trenutno si prijavljen/a kao gost.\nGost ne može igrati rangirane partije pa stoga nije u mogućnosti igrati sve vrste ogleda koje su ponuđene registriranom korisniku. Za registraciju računa, idi na http://www.freechess.org/Register/index.html." #: lib/pychess/ic/ICLounge.py:669 lib/pychess/ic/ICLounge.py:1136 msgid "Name" msgstr "Ime" #: lib/pychess/ic/ICLounge.py:670 lib/pychess/ic/ICLounge.py:1358 #: lib/pychess/ic/ICLounge.py:1558 msgid "Type" msgstr "Vrsta" #: lib/pychess/ic/ICLounge.py:670 lib/pychess/ic/ICLounge.py:1558 msgid "Clock" msgstr "Ura" #: lib/pychess/ic/ICLounge.py:726 lib/pychess/ic/ICLounge.py:923 #: lib/pychess/Players/Human.py:250 msgid "Accept" msgstr "Prihvati" #: lib/pychess/ic/ICLounge.py:728 msgid "Assess" msgstr "" #: lib/pychess/ic/ICLounge.py:734 msgid "Archived" msgstr "" #: lib/pychess/ic/ICLounge.py:848 #, python-format msgid "Active seeks: %d" msgstr "Djelatni zahtjevi: %d" #: lib/pychess/ic/ICLounge.py:897 #, python-format msgid "" " would like to resume your adjourned %(time)s %(gametype)s " "game." msgstr " želi nastaviti vašu odgođenu %(time)s %(gametype)s partiju." #: lib/pychess/ic/ICLounge.py:902 #, python-format msgid "" " challenges you to a %(time)s %(rated)s %(gametype)s game" msgstr " izaziva te na %(time)s %(rated)s %(gametype)s partiju" #: lib/pychess/ic/ICLounge.py:907 #, python-format msgid " where %(player)s plays %(color)s." msgstr " gdje %(player)s igra %(color)s." #: lib/pychess/ic/ICLounge.py:924 lib/pychess/Players/Human.py:251 msgid "Decline" msgstr "Otkloni" #: lib/pychess/ic/ICLounge.py:1065 msgid " min" msgstr " min" #: lib/pychess/ic/ICLounge.py:1137 msgid "Status" msgstr "Stanje" #: lib/pychess/ic/ICLounge.py:1203 lib/pychess/ic/ICLounge.py:1233 #, python-format msgid "Players: %d" msgstr "Igrači: %d" #: lib/pychess/ic/ICLounge.py:1469 #, python-format msgid "Games running: %d" msgstr "Partije u tijeku: %d" #: lib/pychess/ic/ICLounge.py:1559 msgid "Date/Time" msgstr "Nadnevak/Vrijeme" #: lib/pychess/ic/ICLounge.py:1614 #, python-format msgid "" " with whom you have an adjourned %(timecontrol)s %(gametype)s " "game is online." msgstr " s kojim imaš odgođenu %(timecontrol)s %(gametype)s partiju je na mreži." #: lib/pychess/ic/ICLounge.py:1635 msgid "Request Continuation" msgstr "Zahtijevaj nastavak" #: lib/pychess/ic/ICLounge.py:1637 msgid "Examine Adjourned Game" msgstr "Provjeri odgođenu partiju" #: lib/pychess/ic/ICLounge.py:1965 msgid "" "The chain button is disabled because you are logged in as a guest. Guests " "can't establish ratings, and the chain button's state has no effect when " "there is no rating to which to tie \"Opponent Strength\" to" msgstr "Lančani gumb je onemogućen jer si prijavljen kao gost. Gosti ne mogu uspostaviti rang, pa stanje lančanog gumba nema učinka kada nema ranga za koji se može vezati \"protivnička jačina\"" #: lib/pychess/ic/ICLounge.py:2006 msgid "Challenge: " msgstr "Izazovi:" #: lib/pychess/ic/ICLounge.py:2044 msgid "If set you can refuse players accepting your seek" msgstr "" #: lib/pychess/ic/ICLounge.py:2048 lib/pychess/ic/ICLounge.py:2051 msgid "This option is not applicable because you're challenging a player" msgstr "Ova mogućnost nije primjenjiva jer izazivaš igrača" #: lib/pychess/ic/ICLounge.py:2064 msgid "Edit Seek: " msgstr "Uredi zahtjev:" #: lib/pychess/ic/ICLounge.py:2095 #, python-format msgid "%(minutes)d min + %(gain)d sec/move" msgstr "%(minutes)d min + %(gain)d sek/potez" #: lib/pychess/ic/ICLounge.py:2116 msgid "Manual" msgstr "Ručno" #: lib/pychess/ic/ICLounge.py:2256 msgid "Any strength" msgstr "Bilo koja jačina" #: lib/pychess/ic/ICLounge.py:2308 msgid "You can't play rated games because you are logged in as a guest" msgstr "Ne možeš igrati rangiranu partiju jer si prijavljen/a kao gost" #: lib/pychess/ic/ICLounge.py:2312 msgid "You can't play rated games because \"Untimed\" is checked, " msgstr "Ne možeš igrati rangiranu partiju jer je označeno \"vremenski neograničeno\"," #: lib/pychess/ic/ICLounge.py:2313 msgid "and on FICS, untimed games can't be rated" msgstr "a FICS ne omogućava rangiranje vremenski neograničenih partija" #: lib/pychess/ic/ICLounge.py:2317 msgid "This option is not available because you're challenging a guest, " msgstr "Ova mogućnost nije dostupna jer izazivaš gosta," #: lib/pychess/ic/ICLounge.py:2318 msgid "and guests can't play rated games" msgstr "a gosti ne mogu igrati rangirane partije" #: lib/pychess/ic/ICLounge.py:2332 lib/pychess/Variants/shuffle.py:16 #: lib/pychess/widgets/newGameDialog.py:266 msgid "Shuffle" msgstr "Shuffle " #: lib/pychess/ic/ICLounge.py:2333 lib/pychess/widgets/newGameDialog.py:267 msgid "Other (standard rules)" msgstr "Drugo (standardna pravila)" #: lib/pychess/ic/ICLounge.py:2334 lib/pychess/widgets/newGameDialog.py:268 msgid "Other (non standard rules)" msgstr "Drugo (nestandardna pravila)" #: lib/pychess/ic/ICLounge.py:2421 msgid "You can't select a variant because \"Untimed\" is checked, " msgstr "Ne možeš odabrati varijantu jer je označeno \"vremenski neograničeno\"," #: lib/pychess/ic/ICLounge.py:2422 msgid "and on FICS, untimed games have to be normal chess rules" msgstr "a FICS nalaže da se vremenski neograničene partije igraju po normalnim šahovskim pravilima" #: lib/pychess/ic/ICLounge.py:2454 msgid "Change Tolerance" msgstr "Promijeni odstupanje" #: lib/pychess/ic/__init__.py:102 msgid "Examined" msgstr "Provjereno" #: lib/pychess/ic/__init__.py:103 msgid "Other" msgstr "Drugo" #: lib/pychess/ic/__init__.py:182 msgid "Administrator" msgstr "Upravitelj" #: lib/pychess/ic/__init__.py:182 msgid "Blindfold Account" msgstr "Račun za igru na slijepo" #: lib/pychess/ic/__init__.py:182 msgid "Computer" msgstr "Računalo" #: lib/pychess/ic/__init__.py:183 msgid "Team Account" msgstr "Skupni račun" #: lib/pychess/ic/__init__.py:183 msgid "Unregistered" msgstr "Neregistriran" #: lib/pychess/ic/__init__.py:183 msgid "Chess Advisor" msgstr "Šahovski savjetnik" #: lib/pychess/ic/__init__.py:184 msgid "Service Representative" msgstr "Poslužiteljski predstavnik na FICS-u" #: lib/pychess/ic/__init__.py:184 msgid "Tournament Director" msgstr "Ravnatelj turnira" #: lib/pychess/ic/__init__.py:184 msgid "Mamer Manager" msgstr "Mamer-rukovoditelj" #: lib/pychess/ic/__init__.py:185 msgid "Grand Master" msgstr "Velemajstor" #: lib/pychess/ic/__init__.py:185 msgid "International Master" msgstr "Međunarodni majstor" #: lib/pychess/ic/__init__.py:185 msgid "FIDE Master" msgstr "FIDE-majstor" #: lib/pychess/ic/__init__.py:186 msgid "Woman Grand Master" msgstr "Ženski velemajstor" #: lib/pychess/ic/__init__.py:186 msgid "Woman International Master" msgstr "Ženski međunarodni majstor" #: lib/pychess/ic/__init__.py:186 msgid "Woman FIDE Master" msgstr "Ženski FIDE-majstor" #: lib/pychess/ic/__init__.py:187 msgid "Dummy Account" msgstr "Lažni račun" #: lib/pychess/ic/__init__.py:191 msgid "*" msgstr "*" #: lib/pychess/ic/__init__.py:191 lib/pychess/Utils/repr.py:14 msgid "B" msgstr "B" #: lib/pychess/ic/__init__.py:191 msgid "C" msgstr "C" #: lib/pychess/ic/__init__.py:192 msgid "T" msgstr "T" #: lib/pychess/ic/__init__.py:192 msgid "U" msgstr "U" #: lib/pychess/ic/__init__.py:192 msgid "CA" msgstr "CA" #: lib/pychess/ic/__init__.py:193 msgid "SR" msgstr "SR" #: lib/pychess/ic/__init__.py:193 msgid "TD" msgstr "TD" #: lib/pychess/ic/__init__.py:193 msgid "TM" msgstr "TM" #: lib/pychess/ic/__init__.py:194 msgid "GM" msgstr "GM" #: lib/pychess/ic/__init__.py:194 msgid "IM" msgstr "IM" #: lib/pychess/ic/__init__.py:194 msgid "FM" msgstr "FM" #: lib/pychess/ic/__init__.py:195 msgid "WGM" msgstr "WGM" #: lib/pychess/ic/__init__.py:195 msgid "WIM" msgstr "WIM" #: lib/pychess/ic/__init__.py:195 msgid "WFM" msgstr "WFM" #: lib/pychess/ic/__init__.py:195 msgid "D" msgstr "D" #: lib/pychess/ic/__init__.py:195 msgid "H" msgstr "" #: lib/pychess/ic/__init__.py:195 msgid "CM" msgstr "" #: lib/pychess/ic/__init__.py:195 msgid "FA" msgstr "" #: lib/pychess/ic/__init__.py:195 msgid "NM" msgstr "" #: lib/pychess/Players/CECPEngine.py:857 #, python-format msgid "The engine %s reports an error:" msgstr "Šahovski pogonik %s dojavljuje neispravnost:" #: lib/pychess/Players/Human.py:20 msgid "Your opponent has offered you a draw." msgstr "Tvoj protivnik ponudio ti je remi." #: lib/pychess/Players/Human.py:21 msgid "" "Your opponent has offered you a draw. If you accept this offer, the game " "will end with a score of 1/2 - 1/2." msgstr "Tvoj je protivnik ponudio remi. Ako prihvatiš ponudu, partija će završiti ishodom 1/2 - 1/2." #: lib/pychess/Players/Human.py:23 msgid "Your opponent wants to abort the game." msgstr "Tvoj protivnik želi prekinuti partiju." #: lib/pychess/Players/Human.py:24 msgid "" "Your opponent has asked that the game be aborted. If you accept this offer, " "the game will end with no rating change." msgstr "Tvoj je protivnik predložio da partija bude prekinuta. Ako prihvatiš ponudu, partija će završiti bez promjene ranga." #: lib/pychess/Players/Human.py:26 msgid "Your opponent wants to adjourn the game." msgstr "Tvoj protivnik želi odgoditi partiju." #: lib/pychess/Players/Human.py:27 msgid "" "Your opponent has asked that the game be adjourned. If you accept this " "offer, the game will be adjourned and you can resume it later (when your " "opponent is online and both players agree to resume)." msgstr "Tvoj je protivnik zamolio odgodu partije. Ako prihvatiš ponudu, partija će biti odgođena te je možeš nastaviti kasnije (kada tvoj protivnik bude na mreži i kada se oba igrača slože oko nastavka)." #: lib/pychess/Players/Human.py:29 #, python-format msgid "Your opponent wants to undo %s move(s)." msgstr "Tvoj protivnik želi poništiti %s potez(a)." #: lib/pychess/Players/Human.py:30 #, python-format msgid "" "Your opponent has asked that the last %s move(s) be undone. If you accept " "this offer, the game will continue from the earlier position." msgstr "Tvoj bi protivnik želio poništiti %s potez(a). Ako prihvatiš ponudu, partija će biti nastavljena iz prethodne pozicije." #: lib/pychess/Players/Human.py:32 msgid "Your opponent wants to pause the game." msgstr "Tvoj protivnik želi zaustaviti partiju." #: lib/pychess/Players/Human.py:33 msgid "" "Your opponent has asked that the game be paused. If you accept this offer, " "the game clock will be paused until both players agree to resume the game." msgstr "Tvoj je protivnik zamolio da partija bude privremeno zaustavljena. Ako prihvatiš ovu ponudu, šahovska ura bit će zaustavljena sve dok se oba igrača ne suglase s nastavkom partije. " #: lib/pychess/Players/Human.py:35 msgid "Your opponent wants to resume the game." msgstr "Tvoj protivnik želi nastaviti partiju." #: lib/pychess/Players/Human.py:36 msgid "" "Your opponent has asked that the game be resumed. If you accept this offer, " "the game clock will continue from where it was paused." msgstr "Tvoj je protivnik zamolio nastavak partije. Ako prihvatiš ovu ponudu, šahovska ura će nastaviti teći od trenutka kada je zaustavljena." #: lib/pychess/Players/Human.py:40 msgid "The resignation" msgstr "Predaja" #: lib/pychess/Players/Human.py:41 msgid "The flag call" msgstr "Poziv zastavice" #: lib/pychess/Players/Human.py:42 msgid "The draw offer" msgstr "Ponuda remija" #: lib/pychess/Players/Human.py:43 msgid "The abort offer" msgstr "Ponuda prekida" #: lib/pychess/Players/Human.py:44 msgid "The adjourn offer" msgstr "Ponuda odgode" #: lib/pychess/Players/Human.py:45 msgid "The pause offer" msgstr "Ponuda stanke" #: lib/pychess/Players/Human.py:46 msgid "The resume offer" msgstr "Ponuda nastavka" #: lib/pychess/Players/Human.py:47 msgid "The offer to switch sides" msgstr "Ponuda zamjene strana" #: lib/pychess/Players/Human.py:48 msgid "The takeback offer" msgstr "Ponuda povrata poteza" #: lib/pychess/Players/Human.py:52 msgid "resign" msgstr "predaj" #: lib/pychess/Players/Human.py:53 msgid "call your opponents flag" msgstr "zovi zastavicu svoga protivnika" #: lib/pychess/Players/Human.py:54 msgid "offer a draw" msgstr "ponudi remi" #: lib/pychess/Players/Human.py:55 msgid "offer an abort" msgstr "ponudi prekid" #: lib/pychess/Players/Human.py:56 msgid "offer to adjourn" msgstr "ponudi odgodu" #: lib/pychess/Players/Human.py:57 msgid "offer a pause" msgstr "ponudi stanku" #: lib/pychess/Players/Human.py:58 msgid "offer to resume" msgstr "ponudi nastavak" #: lib/pychess/Players/Human.py:59 msgid "offer to switch sides" msgstr "ponudi zamjenu strana" #: lib/pychess/Players/Human.py:60 msgid "offer a takeback" msgstr "ponudi povrat poteza" #: lib/pychess/Players/Human.py:61 msgid "ask your opponent to move" msgstr "zatraži od protivnika povlačenje poteza" #: lib/pychess/Players/Human.py:66 msgid "Your opponent is not out of time." msgstr "Tvoj protivnik nije ostao bez vremena." #: lib/pychess/Players/Human.py:68 msgid "The clock hasn't been started yet." msgstr "Ura još nije pokrenuta." #: lib/pychess/Players/Human.py:70 msgid "You can't switch colors during the game." msgstr "Ne možeš zamijeniti boje tijekom partije." #: lib/pychess/Players/Human.py:72 msgid "You have tried to undo too many moves." msgstr "Pokušao si poništiti previše poteza." #: lib/pychess/Players/Human.py:180 msgid "Your opponent asks you to hurry!" msgstr "Protivnik traži da požuriš!" #: lib/pychess/Players/Human.py:181 msgid "" "Generally this means nothing, as the game is time-based, but if you want to " "please your opponent, perhaps you should get going." msgstr "Obično ovo ne znači ništa budući da je partija vremenski ograničena, ali ako želiš udovoljiti protivniku, možda bi trebao nastaviti." #: lib/pychess/Players/Human.py:259 #, python-format msgid "%s was declined by your opponent" msgstr "%s je otklonjeno od tvog protivnika" #: lib/pychess/Players/Human.py:260 #, python-format msgid "Resend %s?" msgstr "Ponovno poslati %s?" #: lib/pychess/Players/Human.py:267 msgid "Resend" msgstr "Ponovno pošalji" #: lib/pychess/Players/Human.py:275 #, python-format msgid "%s was withdrawn by your opponent" msgstr "%s je povučen od strane tvog protivnika" #: lib/pychess/Players/Human.py:276 msgid "Your opponent seems to have changed their mind." msgstr "Izgleda da se tvoj protivnik predomislio." #: lib/pychess/Players/Human.py:290 #, python-format msgid "Unable to accept %s" msgstr "Nije prihvatljivo %s" #: lib/pychess/Players/Human.py:291 msgid "Probably because it has been withdrawn." msgstr "Vjerojatno jer je povučen." #: lib/pychess/Players/Human.py:298 #, python-format msgid "%s returns an error" msgstr "%s vraća neispravnost" #: lib/pychess/Savers/chessalpha2.py:12 msgid "Chess Alpha 2 Diagram" msgstr "Šahovski dijagram Alfa 2" #: lib/pychess/Savers/chesspastebin.py:39 msgid "Game shared at " msgstr "Partija podijeljena na " #: lib/pychess/Savers/chesspastebin.py:41 msgid "(Link is available on clipboard.)" msgstr "(Poveznica je dostupna u međuspremniku.)" #: lib/pychess/Savers/database.py:19 msgid "PyChess database" msgstr "Podatkovna baza PyChessa" #: lib/pychess/Savers/epd.py:12 msgid "Chess Position" msgstr "Šahovska pozicija" #: lib/pychess/Savers/fen.py:12 msgid "Simple Chess Position" msgstr "Jednostavna šahovska pozicija" #: lib/pychess/Savers/fen.py:44 lib/pychess/Savers/pgn.py:329 msgid "The game can't be loaded, because of an error parsing FEN" msgstr "Partija ne može biti pokrenuta, zbog neispravnosti u računalnom čitanju FEN" #: lib/pychess/Savers/pgnbase.py:100 #, python-format msgid "" "The game can't be read to end, because of an error parsing move %(moveno)s " "'%(notation)s'." msgstr "Partija ne može biti pročitana do kraja zbog neispravnosti u računalnom čitanju poteza %(moveno)s '%(notation)s'." #: lib/pychess/Savers/pgnbase.py:102 #, python-format msgid "The move failed because %s." msgstr "Potez nije uspio zbog %s." #: lib/pychess/Savers/pgnbase.py:110 #, python-format msgid "Error parsing move %(moveno)s %(mstr)s" msgstr "Neispravnost u obradi poteza %(moveno)s %(mstr)s" #: lib/pychess/Savers/pgn.py:28 msgid "Chess Game" msgstr "Šahovska partija" #: lib/pychess/Savers/pgn.py:362 msgid "Invalid move." msgstr "Nepravilni potez." #: lib/pychess/Savers/png.py:15 msgid "Png image" msgstr "Png slika" #: lib/pychess/System/ping.py:31 msgid "Destination Host Unreachable" msgstr "Domaćin odredišta nedostupan" #: lib/pychess/System/ping.py:74 msgid "Died" msgstr "Zamrlo" #: lib/pychess/Utils/GameModel.py:147 msgid "Local Event" msgstr "Mjesni događaj" #: lib/pychess/Utils/GameModel.py:148 msgid "Local Site" msgstr "Mjesni položaj" #: lib/pychess/Utils/repr.py:12 msgid "Pawn" msgstr "pješak" #: lib/pychess/Utils/repr.py:14 msgid "P" msgstr "P" #: lib/pychess/Utils/repr.py:14 msgid "N" msgstr "S" #: lib/pychess/Utils/repr.py:14 msgid "R" msgstr "T" #: lib/pychess/Utils/repr.py:14 msgid "Q" msgstr "D" #: lib/pychess/Utils/repr.py:14 msgid "K" msgstr "K" #: lib/pychess/Utils/repr.py:17 msgid "The game ended in a draw" msgstr "Partija je završila remijem" #: lib/pychess/Utils/repr.py:18 #, python-format msgid "%(white)s won the game" msgstr "%(white)s je dobio partiju" #: lib/pychess/Utils/repr.py:19 #, python-format msgid "%(black)s won the game" msgstr "%(black)s je dobio partiju" #: lib/pychess/Utils/repr.py:20 msgid "The game has been killed" msgstr "Partija je dokrajčena" #: lib/pychess/Utils/repr.py:21 msgid "The game has been adjourned" msgstr "Partija je odgođena" #: lib/pychess/Utils/repr.py:22 msgid "The game has been aborted" msgstr "Partija je prekinuta" #: lib/pychess/Utils/repr.py:26 msgid "Because neither player has sufficient material to mate" msgstr "Jer nijedan igrač nema dovoljno materijala za mat" #: lib/pychess/Utils/repr.py:27 msgid "Because the same position was repeated three times in a row" msgstr "Jer je ista pozicija opetovana tri puta zaredom" #: lib/pychess/Utils/repr.py:28 msgid "Because the last 50 moves brought nothing new" msgstr "Jer posljednjih 50 poteza nije donijelo ništa novoga" #: lib/pychess/Utils/repr.py:29 msgid "Because both players ran out of time" msgstr "Jer je igračima iscurilo vrijeme" #: lib/pychess/Utils/repr.py:30 #, python-format msgid "Because %(mover)s stalemated" msgstr "jer je %(mover)s u patu" #: lib/pychess/Utils/repr.py:31 msgid "Because both players agreed to a draw" msgstr "Jer su se oba igrača suglasila s remijem" #: lib/pychess/Utils/repr.py:32 lib/pychess/Utils/repr.py:42 msgid "Because of adjudication by an admin" msgstr "Zbog presude upravitelja" #: lib/pychess/Utils/repr.py:33 msgid "Because the game exceed the max length" msgstr "Jer je partija prešla najveću moguću dužinu trajanja" #: lib/pychess/Utils/repr.py:34 #, python-format msgid "" "Because %(white)s ran out of time and %(black)s has insufficient material to" " mate" msgstr "Jer je %(white)s ostao bez vremena, a %(black)s nema dovoljno materijala za matiranje" #: lib/pychess/Utils/repr.py:35 #, python-format msgid "" "Because %(black)s ran out of time and %(white)s has insufficient material to" " mate" msgstr "Jer je %(black)s ostao bez vremena, a %(white)s nema dovoljno materijala za matiranje" #: lib/pychess/Utils/repr.py:36 msgid "Because both players have the same amount of pieces" msgstr "Jer oba igrača imaju isti broj figura" #: lib/pychess/Utils/repr.py:38 #, python-format msgid "Because %(loser)s resigned" msgstr "Zbog predaje %(loser)s" #: lib/pychess/Utils/repr.py:39 #, python-format msgid "Because %(loser)s ran out of time" msgstr "Jer je %(loser)s iscurilo vrijeme" #: lib/pychess/Utils/repr.py:40 #, python-format msgid "Because %(loser)s was checkmated" msgstr "Jer je %(loser)s matiran" #: lib/pychess/Utils/repr.py:41 #, python-format msgid "Because %(loser)s disconnected" msgstr "Jer se %(loser)s isključio" #: lib/pychess/Utils/repr.py:43 #, python-format msgid "Because %(winner)s has fewer pieces" msgstr "Jer %(winner)s ima manje figura" #: lib/pychess/Utils/repr.py:44 #, python-format msgid "Because %(winner)s lost all pieces" msgstr "Jer je %(winner)s izgubio sve figure" #: lib/pychess/Utils/repr.py:45 #, python-format msgid "Because %(loser)s king exploded" msgstr "Jer je %(loser)s kralj eksplodirao" #: lib/pychess/Utils/repr.py:46 #, python-format msgid "Because %(winner)s king reached the center" msgstr "Jer je %(winner)s kralj dosegao središte" #: lib/pychess/Utils/repr.py:47 #, python-format msgid "Because %(winner)s was giving check 3 times" msgstr "Jer je %(winner)s zadao šah 3 puta" #: lib/pychess/Utils/repr.py:49 msgid "Because a player lost connection" msgstr "Jer je igrač izgubio mrežnu vezu" #: lib/pychess/Utils/repr.py:50 msgid "Because both players agreed to an adjournment" msgstr "Jer su se oba igrača suglasila s odgodom" #: lib/pychess/Utils/repr.py:51 msgid "Because the server was shut down" msgstr "Jer je poslužitelj isključen" #: lib/pychess/Utils/repr.py:52 msgid "" "Because a player lost connection and the other player requested adjournment" msgstr "Jer je jedan igrač izgubio mrežnu vezu, a drugi je zatražio odgodu" #: lib/pychess/Utils/repr.py:53 #, python-format msgid "" "Because %(black)s lost connection to the server and %(white)s requested " "adjournment" msgstr "Jer je %(black)s izgubio vezu prema poslužitelju, a %(white)s zatražio odgodu" #: lib/pychess/Utils/repr.py:54 #, python-format msgid "" "Because %(white)s lost connection to the server and %(black)s requested " "adjournment" msgstr "Jer je %(white)s izgubio vezu prema poslužitelju, a %(black)s zatražio odgodu" #: lib/pychess/Utils/repr.py:55 #, python-format msgid "Because %(white)s lost connection to the server" msgstr "Jer je %(white)s izgubio vezu s poslužiteljem" #: lib/pychess/Utils/repr.py:56 #, python-format msgid "Because %(black)s lost connection to the server" msgstr "Jer je %(black)s izgubio vezu s poslužiteljem" #: lib/pychess/Utils/repr.py:58 msgid "Because of adjudication by an admin. No rating changes have occurred." msgstr "Radi presude upravitelja. Nisu se dogodile promjene u rangiranju." #: lib/pychess/Utils/repr.py:59 msgid "" "Because both players agreed to abort the game. No rating changes have " "occurred." msgstr "Jer su se oba igrača suglasila s prekidom partije. Nisu uslijedile promjene u rangiranju." #: lib/pychess/Utils/repr.py:60 msgid "Because of courtesy by a player. No rating changes have occurred." msgstr "Zbog ljubaznosti igrača. Nije došlo do promjena u rangiranju." #: lib/pychess/Utils/repr.py:61 msgid "" "Because a player aborted the game. Either player can abort the game without " "the other's consent before the second move. No rating changes have occurred." msgstr "Jer je igrač prekinuo partiju. Bilo koji od igrača može prekinuti partiju bez suglasnosti protivnika prije drugog poteza. Nisu uslijedile promjene u rangiranju." #: lib/pychess/Utils/repr.py:62 msgid "" "Because a player disconnected and there are too few moves to warrant " "adjournment. No rating changes have occurred." msgstr "Jer se igrač isključio, a preostalo je premalo poteza za dopuštanje odgode. Nisu se dogodile promjene u rangiranju." #: lib/pychess/Utils/repr.py:63 msgid "Because the server was shut down. No rating changes have occurred." msgstr "Jer je poslužitelj isključen. Nisu uslijedile promjene u rangiranju." #: lib/pychess/Utils/repr.py:65 #, python-format msgid "Because the %(white)s engine died" msgstr "Jer je šahovski pogonik %(white)s zamro" #: lib/pychess/Utils/repr.py:66 #, python-format msgid "Because the %(black)s engine died" msgstr "Jer je šahovski pogonik %(black)s zamro" #: lib/pychess/Utils/repr.py:67 msgid "Because the connection to the server was lost" msgstr "Jer je izgubljena mrežna veza prema poslužitelju" #: lib/pychess/Utils/repr.py:68 msgid "The reason is unknown" msgstr "Razlog je nepoznat" #: lib/pychess/Utils/TimeModel.py:229 msgid "min" msgstr "min" #: lib/pychess/Utils/TimeModel.py:231 msgid "sec" msgstr "sek" #: lib/pychess/Variants/asean.py:12 msgid "" "ASEAN: http://www.ncf-" "phil.org/downloadables/2014/May/Asean_chess/Laws_of_ASEAN_Chess_2011_Nov_26.doc" msgstr "ASEAN: http://www.ncf-phil.org/downloadables/2014/May/Asean_chess/Laws_of_ASEAN_Chess_2011_Nov_26.doc" #: lib/pychess/Variants/asean.py:13 msgid "ASEAN" msgstr "ASEAN" #: lib/pychess/Variants/asean.py:33 msgid "Makruk: http://en.wikipedia.org/wiki/Makruk" msgstr "Makruk: http://en.wikipedia.org/wiki/Makruk" #: lib/pychess/Variants/asean.py:34 msgid "Makruk" msgstr "Makruk" #: lib/pychess/Variants/asean.py:60 msgid "Cambodian: http://www.khmerinstitute.org/culture/ok.html" msgstr "Cambodian: http://www.khmerinstitute.org/culture/ok.html" #: lib/pychess/Variants/asean.py:61 msgid "Cambodian" msgstr "Cambodian" #: lib/pychess/Variants/asean.py:86 msgid "" "Ai-Wok: http://www.open-" "aurec.com/wbforum/viewtopic.php?p=199364&sid=20963a1de2c164050de019e5ed6bf7c4#p199364" msgstr "Ai-Wok: http://www.open-aurec.com/wbforum/viewtopic.php?p=199364&sid=20963a1de2c164050de019e5ed6bf7c4#p199364" #: lib/pychess/Variants/asean.py:87 msgid "Ai-Wok" msgstr "Ai-Wok" #: lib/pychess/Variants/asean.py:111 msgid "Sittuyin: http://en.wikipedia.org/wiki/Sittuyin" msgstr "Sittuyin: http://en.wikipedia.org/wiki/Sittuyin" #: lib/pychess/Variants/asean.py:112 msgid "Sittuyin" msgstr "Sittuyin" #: lib/pychess/Variants/asymmetricrandom.py:12 msgid "" "FICS wild/4: http://www.freechess.org/Help/HelpFiles/wild.html\n" "* Randomly chosen pieces (two queens or three rooks possible)\n" "* Exactly one king of each color\n" "* Pieces placed randomly behind the pawns, SUBJECT TO THE CONSTRAINT THAT THE BISHOPS ARE BALANCED\n" "* No castling\n" "* Black's arrangement DOES NOT mirrors white's" msgstr "FICS divlji šah/4: http://www.freechess.org/Help/HelpFiles/wild.html\n* Nasumično odabrane figure (moguće su dvije kraljice ili tri topa)\n* Samo jedan kralj od svake boje\n* Figure postavljene nasumično iza pješaka, UZ OGRANIČENJE DA SU SKAKAČI U RAVNOTEŽI\n* Nema rokade\n* Postava crnoga NE odražava postavu bijeloga" #: lib/pychess/Variants/asymmetricrandom.py:18 msgid "Asymmetric Random" msgstr "Asimetrični nasumični " #: lib/pychess/Variants/atomic.py:14 msgid "FICS atomic: http://www.freechess.org/Help/HelpFiles/atomic.html" msgstr "FICS atomski šah: http://www.freechess.org/Help/HelpFiles/atomic.html" #: lib/pychess/Variants/blindfold.py:7 msgid "" "Classic chess rules with hidden figurines\n" "http://en.wikipedia.org/wiki/Blindfold_chess" msgstr "Klasična šahovska pravila sa skrivenim figuricama\nhttp://en.wikipedia.org/wiki/Blindfold_chess" #: lib/pychess/Variants/blindfold.py:9 #: lib/pychess/widgets/newGameDialog.py:264 msgid "Blindfold" msgstr "Slijepi " #: lib/pychess/Variants/blindfold.py:18 msgid "" "Classic chess rules with hidden pawns\n" "http://en.wikipedia.org/wiki/Blindfold_chess" msgstr "Klasična šahovska pravila sa skrivenim pješacima\nhttp://en.wikipedia.org/wiki/Blindfold_chess" #: lib/pychess/Variants/blindfold.py:20 msgid "Hidden pawns" msgstr "Skriveni pješaci " #: lib/pychess/Variants/blindfold.py:29 msgid "" "Classic chess rules with hidden pieces\n" "http://en.wikipedia.org/wiki/Blindfold_chess" msgstr "Klasična šahovska pravila sa skrivenim figurama\nhttp://en.wikipedia.org/wiki/Blindfold_chess" #: lib/pychess/Variants/blindfold.py:31 msgid "Hidden pieces" msgstr "Skrivene figure " #: lib/pychess/Variants/blindfold.py:40 msgid "" "Classic chess rules with all pieces white\n" "http://en.wikipedia.org/wiki/Blindfold_chess" msgstr "Klasična šahovska pravila sa svim figurama bijelim\nhttp://en.wikipedia.org/wiki/Blindfold_chess" #: lib/pychess/Variants/blindfold.py:42 msgid "All white" msgstr "Svi bijeli " #: lib/pychess/Variants/bughouse.py:8 msgid "FICS bughouse: http://www.freechess.org/Help/HelpFiles/bughouse.html" msgstr "FICS tandemski šah: http://www.freechess.org/Help/HelpFiles/bughouse.html" #: lib/pychess/Variants/corner.py:12 msgid "" "http://brainking.com/en/GameRules?tp=2\n" "* Placement of the pieces on the 1st and 8th row are randomized\n" "* The king is in the right hand corner\n" "* Bishops must start on opposite color squares\n" "* Black's starting position is obtained by rotating white's position 180 degrees around the board's center\n" "* No castling" msgstr "Ugaoni šah: http://brainking.com/en/GameRules?tp=2\n* Postavljanje figura na 1. i 8. redu jest nasumično\n* Kralj je u desnom igračevu uglu\n* Lovci moraju započeti na poljima suprotne boje\n* Početna pozicija crnoga dobiva se okretanjem pozicije bijeloga za 180 stupnjeva oko središta ploče\n* Nema rokade" #: lib/pychess/Variants/corner.py:18 msgid "Corner" msgstr "Ugaoni - Corner " #: lib/pychess/Variants/crazyhouse.py:8 msgid "" "FICS crazyhouse: http://www.freechess.org/Help/HelpFiles/crazyhouse.html" msgstr "FICS ludi šah: http://www.freechess.org/Help/HelpFiles/crazyhouse.html" #: lib/pychess/Variants/euroshogi.py:9 msgid "EuroShogi: http://en.wikipedia.org/wiki/EuroShogi" msgstr "EuroShogi: http://en.wikipedia.org/wiki/EuroShogi" #: lib/pychess/Variants/euroshogi.py:10 msgid "EuroShogi" msgstr "EuroShogi" #: lib/pychess/Variants/fischerandom.py:18 msgid "" "http://en.wikipedia.org/wiki/Chess960\n" "FICS wild/fr: http://www.freechess.org/Help/HelpFiles/wild.html" msgstr "http://en.wikipedia.org/wiki/Chess960\nFICS divlji šah/fr: http://www.freechess.org/Help/HelpFiles/wild.html" #: lib/pychess/Variants/fischerandom.py:20 msgid "Fischer Random" msgstr "Fischerov nasumični " #: lib/pychess/Variants/kingofthehill.py:8 msgid "" "Bringing your king legally to the center (e4, d4, e5, d5) instantly wins the game!\n" "Normal rules apply in other cases and checkmate also ends the game." msgstr "Dovođenje vlastitoga kralja u središte (e4, d4, e5, d5) trenutačno donosi pobjedu u partiji!\nU ostalim slučajevima primjenjuju se uobičajena pravila i šah-mat također završava partiju." #: lib/pychess/Variants/kingofthehill.py:10 msgid "King of the hill" msgstr "Kralj u središtu" #: lib/pychess/Variants/knightodds.py:8 msgid "One player starts with one less knight piece" msgstr "Jedan igrač počinje s jednom figurom skakača manje" #: lib/pychess/Variants/knightodds.py:9 msgid "Knight odds" msgstr "Skakač prednosti " #: lib/pychess/Variants/losers.py:8 msgid "FICS losers: http://www.freechess.org/Help/HelpFiles/losers_chess.html" msgstr "FICS gubitnički šah: http://www.freechess.org/Help/HelpFiles/losers_chess.html" #: lib/pychess/Variants/normal.py:4 msgid "" "Classic chess rules\n" "http://en.wikipedia.org/wiki/Chess" msgstr "Klasična šahovska pravila\nhttp://en.wikipedia.org/wiki/Chess" #: lib/pychess/Variants/normal.py:6 lib/pychess/widgets/newGameDialog.py:157 msgid "Normal" msgstr "Standardno" #: lib/pychess/Variants/pawnodds.py:8 msgid "One player starts with one less pawn piece" msgstr "Jedan igrač počinje s jednim pješakom manje" #: lib/pychess/Variants/pawnodds.py:9 msgid "Pawn odds" msgstr "Pješak prednosti " #: lib/pychess/Variants/pawnspassed.py:11 msgid "" "FICS wild/8a: http://www.freechess.org/Help/HelpFiles/wild.html\n" "White pawns start on 5th rank and black pawns on the 4th rank" msgstr "FICS divlji šah/8a: http://www.freechess.org/Help/HelpFiles/wild.html\nBijeli pješaci započinju na 5. redu, a crni pješaci na 4. redu" #: lib/pychess/Variants/pawnspassed.py:13 msgid "Pawns Passed" msgstr "Pješaci izmakli " #: lib/pychess/Variants/pawnspushed.py:10 msgid "" "FICS wild/8: http://www.freechess.org/Help/HelpFiles/wild.html\n" "Pawns start on 4th and 5th ranks rather than 2nd and 7th" msgstr "FICS divlji šah/8: http://www.freechess.org/Help/HelpFiles/wild.html\nPješaci započinju na 4. i 5. redu umjesto na 2. i 7. redu" #: lib/pychess/Variants/pawnspushed.py:12 msgid "Pawns Pushed" msgstr "Pješaci pogurnuti " #: lib/pychess/Variants/queenodds.py:8 msgid "One player starts with one less queen piece" msgstr "Jedan igrač počinje s figurom kraljice manje" #: lib/pychess/Variants/queenodds.py:9 msgid "Queen odds" msgstr "Kraljica prednosti " #: lib/pychess/Variants/randomchess.py:11 msgid "" "FICS wild/3: http://www.freechess.org/Help/HelpFiles/wild.html\n" "* Randomly chosen pieces (two queens or three rooks possible)\n" "* Exactly one king of each color\n" "* Pieces placed randomly behind the pawns\n" "* No castling\n" "* Black's arrangement mirrors white's" msgstr "FICS divlji šah/3: http://www.freechess.org/Help/HelpFiles/wild.html\n* Nasumično odabrane figure (moguće su dvije kraljice ili tri topa)\n* Samo jedan kralj od svake boje\n* Figure postavljene nasumično iza pješaka\n* Nema rokade\n* Postava crnoga odraz je postave bijeloga" #: lib/pychess/Variants/randomchess.py:17 #: lib/pychess/widgets/TaskerManager.py:155 msgid "Random" msgstr "Nasumični " #: lib/pychess/Variants/rookodds.py:8 msgid "One player starts with one less rook piece" msgstr "Jedan igrač počinje s jednom figurom topa manje" #: lib/pychess/Variants/rookodds.py:9 msgid "Rook odds" msgstr "Top prednosti " #: lib/pychess/Variants/shuffle.py:11 msgid "" "xboard nocastle: http://home.hccnet.nl/h.g.muller/engine-intf.html#8\n" "FICS wild/2: http://www.freechess.org/Help/HelpFiles/wild.html\n" "* Random arrangement of the pieces behind the pawns\n" "* No castling\n" "* Black's arrangement mirrors white's" msgstr "xboard nocastle: http://home.hccnet.nl/h.g.muller/engine-intf.html#8\nFICS divlji šah/2: http://www.freechess.org/Help/HelpFiles/wild.html\n* Nasumična postava figura iza pješaka\n* Nema rokade\n* Postava crnoga odraz je postave bijeloga" #: lib/pychess/Variants/suicide.py:11 msgid "" "FICS suicide: http://www.freechess.org/Help/HelpFiles/suicide_chess.html" msgstr "FICS samoubilački šah: http://www.freechess.org/Help/HelpFiles/suicide_chess.html" #: lib/pychess/Variants/theban.py:10 msgid "" "Variant developed by Kai Laskos: " "http://talkchess.com/forum/viewtopic.php?t=40990" msgstr "Varijantu razvio Kai Laskos: http://talkchess.com/forum/viewtopic.php?t=40990" #: lib/pychess/Variants/theban.py:11 msgid "Theban" msgstr "Theban " #: lib/pychess/Variants/threecheck.py:10 msgid "Win by giving check 3 times" msgstr "Pobjeda davanjem šaha 3 puta" #: lib/pychess/Variants/threecheck.py:11 msgid "Three-check" msgstr "Trostruki šah" #: lib/pychess/Variants/upsidedown.py:10 msgid "" "FICS wild/5: http://www.freechess.org/Help/HelpFiles/wild.html\n" "http://en.wikipedia.org/wiki/Chess_variant#Chess_with_different_starting_positions\n" "Pawns start on their 7th rank rather than their 2nd rank!" msgstr "FICS divlji šah/5: http://www.freechess.org/Help/HelpFiles/wild.html\nhttp://en.wikipedia.org/wiki/Chess_variant#Chess_with_different_starting_positions\nPješaci započinju na svome 7. redu umjesto na svome 2. redu!" #: lib/pychess/Variants/upsidedown.py:13 msgid "Upside Down" msgstr "Preokrenuti " #: lib/pychess/Variants/wildcastle.py:10 msgid "" "xboard wildcastle http://home.hccnet.nl/h.g.muller/engine-intf.html#8\n" "FICS wild/0: http://www.freechess.org/Help/HelpFiles/wild.html\n" "* White has the typical set-up at the start.\n" "* Black's pieces are the same, except that the King and Queen are reversed,\n" "* so they are not on the same files as White's King and Queen.\n" "* Castling is done similarly to normal chess:\n" "* o-o-o indicates long castling and o-o short castling." msgstr "xboard wildcastle http://home.hccnet.nl/h.g.muller/engine-intf.html#8\nFICS divlji šah/0: http://www.freechess.org/Help/HelpFiles/wild.html\n* Bijeli ima uobičajenu postavu na početku.\n* Crne figure su iste, osim što su kralj i dama preokrenuti,\n* tako da nisu na istim linijama kao bijeli kralj i dama.\n* Rokada se izvodi kao i u normalnom šahu:\n* o-o-o označava veliku rokadu, a o-o malu rokadu." #: lib/pychess/Variants/wildcastle.py:17 msgid "Wildcastle" msgstr "Wildcastle " #: lib/pychess/Variants/wildcastleshuffle.py:11 msgid "" "xboard wildcastle http://home.hccnet.nl/h.g.muller/engine-intf.html#8\n" "FICS wild/1: http://www.freechess.org/Help/HelpFiles/wild.html\n" "* In this variant both sides have the same set of pieces as in normal chess.\n" "* The white king starts on d1 or e1 and the black king starts on d8 or e8,\n" "* and the rooks are in their usual positions.\n" "* Bishops are always on opposite colors.\n" "* Subject to these constraints the position of the pieces on their first ranks is random.\n" "* Castling is done similarly to normal chess:\n" "* o-o-o indicates long castling and o-o short castling." msgstr "xboard wildcastle http://home.hccnet.nl/h.g.muller/engine-intf.html#8\nFICS divlji šah/1: http://www.freechess.org/Help/HelpFiles/wild.html\n* U ovoj varijanti obje strane imaju iste figure kao i u normalnom šahu.\n* Bijeli kralj počinje na d1 ili e1, crni kralj počinje na d8 ili e8,\n* a topovi su na svojim uobičajenim položajima.\n* Lovci su uvijek na suprotnim bojama.\n* Poštujući ova ograničenja, položaj figura na prvim redovima je nasumičan.\n* Rokada se izvodi kao i u normalnom šahu:\n* o-o-o označava veliku rokadu, a o-o malu rokadu." #: lib/pychess/Variants/wildcastleshuffle.py:20 msgid "Wildcastle shuffle" msgstr "Wildcastle shuffle " #: lib/pychess/widgets/analyzegameDialog.py:85 msgid "Game analyzing in progress..." msgstr "Analiza partije u tijeku..." #: lib/pychess/widgets/analyzegameDialog.py:86 msgid "Do you want to abort it?" msgstr "Želiš li je prekinuti?" #: lib/pychess/widgets/analyzegameDialog.py:95 #: lib/pychess/widgets/gamewidget.py:202 lib/pychess/widgets/gamewidget.py:320 msgid "Abort" msgstr "Prekini" #: lib/pychess/widgets/ChatView.py:125 msgid "Observers" msgstr "" #: lib/pychess/widgets/ChatWindow.py:222 msgid "You have opened no conversations yet" msgstr "Još nisi otvorio nijedan razgovor" #: lib/pychess/widgets/ChatWindow.py:254 msgid "Only registered users may talk to this channel" msgstr "Samo zabilježeni korisnici mogu općiti s tim kanalom" #: lib/pychess/widgets/ChatWindow.py:312 msgid "No conversation's selected" msgstr "Nijedan razgovor nije izabran" #: lib/pychess/widgets/ChatWindow.py:350 msgid "Loading player data" msgstr "Podižu se igračevi podatci" #: lib/pychess/widgets/ChatWindow.py:400 msgid "Receiving list of players" msgstr "Prima se popis igrača" #: lib/pychess/widgets/ChatWindow.py:518 msgid "Friends" msgstr "Prijatelji" #: lib/pychess/widgets/ChatWindow.py:529 msgid "Admin" msgstr "" #: lib/pychess/widgets/ChatWindow.py:540 msgid "More channels" msgstr "Više kanala" #: lib/pychess/widgets/ChatWindow.py:548 msgid "More players" msgstr "Više igrača" #: lib/pychess/widgets/ChatWindow.py:558 msgid "Computers" msgstr "" #: lib/pychess/widgets/ChatWindow.py:568 msgid "BlindFold" msgstr "" #: lib/pychess/widgets/ChatWindow.py:578 msgid "Guests" msgstr "" #: lib/pychess/widgets/ChatWindow.py:805 msgid "Conversations" msgstr "Razgovori" #: lib/pychess/widgets/ChatWindow.py:807 msgid "Conversation info" msgstr "Obavijest o razgovoru" #: lib/pychess/widgets/enginesDialog.py:152 msgid "Select engine" msgstr "Odaberi šahovski pogonik" #: lib/pychess/widgets/enginesDialog.py:156 msgid "Executable files" msgstr "Izvršne datoteke" #: lib/pychess/widgets/enginesDialog.py:176 #: lib/pychess/widgets/enginesDialog.py:210 #: lib/pychess/widgets/enginesDialog.py:235 #, python-format msgid "Unable to add %s" msgstr "Nije moguće dodati %s" #: lib/pychess/widgets/enginesDialog.py:177 msgid "wine not installed" msgstr "Wine nije ugrađen" #: lib/pychess/widgets/enginesDialog.py:211 #: lib/pychess/widgets/enginesDialog.py:236 msgid "There is something wrong with this executable" msgstr "Nešto nije u redu s ovom izvršnom datotekom" #: lib/pychess/widgets/enginesDialog.py:266 msgid "Select working directory" msgstr "Odaberi djelatni direktorij" #: lib/pychess/widgets/gamenanny.py:115 #, python-format msgid " invalid engine move: %s" msgstr " neispravni potez pogonika: %s" #: lib/pychess/widgets/gamenanny.py:134 msgid "Offer Rematch" msgstr "Ponudi uzvrat" #: lib/pychess/widgets/gamenanny.py:136 lib/pychess/widgets/gamenanny.py:147 #, python-format msgid "Observe %s" msgstr "Promatraj %s" #: lib/pychess/widgets/gamenanny.py:168 msgid "Play Rematch" msgstr "Igraj uzvrat" #: lib/pychess/widgets/gamenanny.py:171 msgid "Undo one move" msgstr "Poništi jedan potez" #: lib/pychess/widgets/gamenanny.py:173 msgid "Undo two moves" msgstr "Poništi dva poteza" #: lib/pychess/widgets/gamenanny.py:203 msgid "The game is paused" msgstr "Partija je privremeno zaustavljena" #: lib/pychess/widgets/gamenanny.py:221 lib/pychess/widgets/gamenanny.py:222 msgid "Loaded game" msgstr "Učitana partija" #: lib/pychess/widgets/gamenanny.py:228 msgid "Saved game" msgstr "Pohranjena partija" #: lib/pychess/widgets/gamenanny.py:232 msgid "Analyzer started" msgstr "Analiza je pokrenuta" #: lib/pychess/widgets/gamenanny.py:281 msgid "You sent an abort offer" msgstr "Poslao/la si ponudu za prekid" #: lib/pychess/widgets/gamenanny.py:283 msgid "You sent an adjournment offer" msgstr "Poslao/la si ponudu za odgodu" #: lib/pychess/widgets/gamenanny.py:285 msgid "You sent a draw offer" msgstr "Poslao/la si ponudu za remi" #: lib/pychess/widgets/gamenanny.py:287 msgid "You sent a pause offer" msgstr "Poslao/la si ponudu za stanku" #: lib/pychess/widgets/gamenanny.py:289 msgid "You sent a resume offer" msgstr "Poslao/la si ponudu za nastavak" #: lib/pychess/widgets/gamenanny.py:291 msgid "You sent an undo offer" msgstr "Poslao/la si ponudu za povrat poteza" #: lib/pychess/widgets/gamenanny.py:293 msgid "You asked your opponent to move" msgstr "Zatražio/la si od protivnika povlačenje poteza" #: lib/pychess/widgets/gamenanny.py:305 #, python-format msgid "Engine, %s, has died" msgstr "Šahovski pogonik, %s, se isključio" #: lib/pychess/widgets/gamenanny.py:306 msgid "" "PyChess has lost connection to the engine, probably because it has died.\n" "\n" "You can try to start a new game with the engine, or try to play against another one." msgstr "PyChess je izgubio vezu sa šahovskim pogonikom, vjerojatno jer se on isključio.\n\nMožeš pokušati pokrenuti novu partiju s tim šahovskim pogonikom ili pokušati igrati protiv drugoga." #: lib/pychess/widgets/gamewidget.py:204 msgid "" "This game can be automatically aborted without rating loss because there has" " not yet been two moves made" msgstr "Ova partija se može automatski prekinuti bez gubitka ranga jer još nisu povučena dva poteza" #: lib/pychess/widgets/gamewidget.py:206 msgid "Offer Abort" msgstr "Ponudi prekid" #: lib/pychess/widgets/gamewidget.py:208 msgid "" "Your opponent must agree to abort the game because there has been two or " "more moves made" msgstr "Tvoj se protivnik mora suglasiti s prekidom partije jer su dva ili više poteza već povučena" #: lib/pychess/widgets/gamewidget.py:226 msgid "This game can not be adjourned because one or both players are guests" msgstr "Ova se partija ne može odgoditi jer su jedan ili oba igrača gosti" #: lib/pychess/widgets/gamewidget.py:243 msgid "Claim Draw" msgstr "Zatraži remi" #: lib/pychess/widgets/gamewidget.py:325 msgid "Pause" msgstr "Zaustavi" #: lib/pychess/widgets/gamewidget.py:326 msgid "Resume" msgstr "Nastavi" #: lib/pychess/widgets/gamewidget.py:328 msgid "Offer Pause" msgstr "Ponudi stanku" #: lib/pychess/widgets/gamewidget.py:329 msgid "Offer Resume" msgstr "Ponudi nastavak" #: lib/pychess/widgets/gamewidget.py:333 msgid "Undo" msgstr "Poništi" #: lib/pychess/widgets/gamewidget.py:335 msgid "Offer Undo" msgstr "Ponudi poništenje" #: lib/pychess/widgets/gamewidget.py:550 msgid " has lagged for 30 seconds" msgstr " kasni 30 sekundi" #: lib/pychess/widgets/gamewidget.py:566 msgid " is lagging heavily but hasn't disconnected" msgstr " jako kasni, ali nije iskopčan" #: lib/pychess/widgets/gamewidget.py:567 msgid "Continue to wait for opponent, or try to adjourn the game?" msgstr "Nastaviti čekati na protivnika ili pokušati odgoditi partiju?" #: lib/pychess/widgets/gamewidget.py:575 msgid "Wait" msgstr "Čekaj" #: lib/pychess/widgets/gamewidget.py:576 msgid "Adjourn" msgstr "Odgodi" #: lib/pychess/widgets/gamewidget.py:648 msgid "Jump to initial position" msgstr "Skoči na početnu poziciju" #: lib/pychess/widgets/gamewidget.py:653 msgid "Step back one move" msgstr "Povuci jedan potez unazad" #: lib/pychess/widgets/gamewidget.py:658 msgid "Go back to the main line" msgstr "" #: lib/pychess/widgets/gamewidget.py:664 msgid "Step forward one move" msgstr "Povuci jedan potez naprijed" #: lib/pychess/widgets/gamewidget.py:669 msgid "Jump to latest position" msgstr "Skoči na najnoviju poziciju" #: lib/pychess/widgets/gamewidget.py:903 msgid "PyChess was unable to load your panel settings" msgstr "PyChess nije mogao podići tvoje postavke za okna" #: lib/pychess/widgets/gamewidget.py:904 msgid "" "Your panel settings have been reset. If this problem repeats, you should " "report it to the developers" msgstr "Tvoje postavke za okna su iznova postavljene. Ako se ova poteškoća bude ponavljala, trebao bi o tome izvijestiti razvijatelje" #: lib/pychess/widgets/ionest.py:67 lib/pychess/widgets/newGameDialog.py:389 #: lib/pychess/widgets/TaskerManager.py:210 msgid "You" msgstr "Ti" #: lib/pychess/widgets/ionest.py:70 lib/pychess/widgets/newGameDialog.py:390 #: lib/pychess/widgets/preferencesDialog.py:61 #: lib/pychess/widgets/TaskerManager.py:213 msgid "Guest" msgstr "Gost" #: lib/pychess/widgets/ionest.py:93 msgid "Error loading game" msgstr "Pogreška u učitavanju partije" #: lib/pychess/widgets/ionest.py:127 lib/pychess/widgets/newGameDialog.py:480 msgid "Open Game" msgstr "Otvori partiju" #: lib/pychess/widgets/ionest.py:137 msgid "All Files" msgstr "Sve datoteke" #: lib/pychess/widgets/ionest.py:140 msgid "Detect type automatically" msgstr "Prepoznaj vrstu automatski" #: lib/pychess/widgets/ionest.py:146 msgid "All Chess Files" msgstr "Sve šahovske datoteke" #: lib/pychess/widgets/ionest.py:228 msgid "Save Game" msgstr "Pohrani partiju" #: lib/pychess/widgets/ionest.py:228 msgid "Export position" msgstr "Izvezi poziciju" #: lib/pychess/widgets/ionest.py:232 lib/pychess/widgets/ionest.py:360 msgid "vs." msgstr "protiv" #: lib/pychess/widgets/ionest.py:249 #, python-format msgid "Unknown file type '%s'" msgstr "Nepoznata vrsta datoteke '%s'" #: lib/pychess/widgets/ionest.py:250 #, python-format msgid "" "Was unable to save '%(uri)s' as PyChess doesn't know the format " "'%(ending)s'." msgstr "Nije bilo moguće pohraniti '%(uri)s' jer PyChess ne prepoznaje format '%(ending)s'." #: lib/pychess/widgets/ionest.py:266 #, python-format msgid "Unable to save file '%s'" msgstr "Nije moguće pohraniti datoteku '%s'" #: lib/pychess/widgets/ionest.py:268 msgid "" "You don't have the necessary rights to save the file.\n" "Please ensure that you have given the right path and try again." msgstr "Nemaš potrebne ovlasti za spremanje datoteke.\nMolim provjeri jesi li unio točnu lokaciju i probaj ponovo." #: lib/pychess/widgets/ionest.py:276 msgid "_Replace" msgstr "_Zamijeni" #: lib/pychess/widgets/ionest.py:280 msgid "File exists" msgstr "Datoteka postoji" #: lib/pychess/widgets/ionest.py:282 #, python-format msgid "" "A file named '%s' already exists. Would you like to replace " "it?" msgstr "Datoteka s imenom '%s' već postoji. Želiš li je zamijeniti?" #: lib/pychess/widgets/ionest.py:283 #, python-format msgid "" "The file already exists in '%s'. If you replace it, its content will be " "overwritten." msgstr "Datoteka već postoji u '%s'. Ako je zamijeniš, njen sadržaj bit će prebrisan." #: lib/pychess/widgets/ionest.py:299 msgid "Could not save the file" msgstr "Nije moguće spremiti datoteku" #: lib/pychess/widgets/ionest.py:300 msgid "PyChess was not able to save the game" msgstr "PyChess nije mogao pohraniti partiju" #: lib/pychess/widgets/ionest.py:301 #, python-format msgid "The error was: %s" msgstr "Neispravnost je bila: %s" #: lib/pychess/widgets/ionest.py:325 #, python-format msgid "There is %d game with unsaved moves." msgid_plural "There are %d games with unsaved moves." msgstr[0] "Postoji %d partija s nepohranjenim potezima." msgstr[1] "Postoje %d partije s nepohranjenim potezima." msgstr[2] "Postoji %d partija s nepohranjenim potezima." #: lib/pychess/widgets/ionest.py:328 msgid "Save moves before closing?" msgstr "Pohrani poteze prije zatvaranja?" #: lib/pychess/widgets/ionest.py:339 msgid "Unable to save to configured file. Save the games before closing?" msgstr "Nije moguće spremiti u postavljenu datoteku. Spremiti partije prije zatvaranja?" #: lib/pychess/widgets/ionest.py:366 #, python-format msgid "_Save %d document" msgid_plural "_Save %d documents" msgstr[0] "_Pohrani %d zapis" msgstr[1] "_Pohrani %d zapisa" msgstr[2] "_Pohrani %d zapisa" #: lib/pychess/widgets/ionest.py:412 msgid "Save the current game before you close it?" msgstr "Spremiti tekuću partiju prije njena zatvaranja?" #: lib/pychess/widgets/ionest.py:420 msgid "" "Unable to save to configured file. Save the current game before you close " "it?" msgstr "Nije moguće spremiti u postavljenu datoteku. Spremiti tekuću partiju prije njena zatvaranja?" #: lib/pychess/widgets/ionest.py:434 msgid "" "It is not possible later to continue the game,\n" "if you don't save it." msgstr "Nije moguće kasnije nastaviti partiju\nako je ne spremiš." #: lib/pychess/widgets/LogDialog.py:26 msgid "PyChess Information Window" msgstr "Obavijesni prozor PyChessa" #: lib/pychess/widgets/LogDialog.py:184 lib/pychess/widgets/LogDialog.py:188 msgid "of" msgstr "od" #: lib/pychess/widgets/newGameDialog.py:84 #: lib/pychess/widgets/newGameDialog.py:85 msgid "Human Being" msgstr "Ljudsko biće" #: lib/pychess/widgets/newGameDialog.py:155 msgid "Rapid" msgstr "Ubrzano" #: lib/pychess/widgets/newGameDialog.py:224 msgid "Minutes:" msgstr "Minute:" #: lib/pychess/widgets/newGameDialog.py:228 msgid "Gain:" msgstr "Dodatak:" #: lib/pychess/widgets/newGameDialog.py:241 #, python-format msgid "%(name)s %(minutes)d min + %(gain)d sec/move" msgstr "%(name)s %(minutes)d min + %(gain)d sek/potez" #: lib/pychess/widgets/newGameDialog.py:244 #, python-format msgid "%(name)s %(minutes)d min %(gain)d sec/move" msgstr "%(name)s %(minutes)d min %(gain)d sek/potez" #: lib/pychess/widgets/newGameDialog.py:247 #, python-format msgid "%(name)s %(minutes)d min" msgstr "%(name)s %(minutes)d min" #: lib/pychess/widgets/newGameDialog.py:265 msgid "Odds" msgstr "Prednosti" #: lib/pychess/widgets/newGameDialog.py:269 msgid "Asian variants" msgstr "Azijske varijante" #: lib/pychess/widgets/newGameDialog.py:301 msgid " chess" msgstr "šah" #: lib/pychess/widgets/newGameDialog.py:682 msgid "Type or paste PGN game or FEN positions here" msgstr "Upiši ili dodaj PGN partiju ili FEN pozicije ovdje" #: lib/pychess/widgets/newGameDialog.py:725 msgid "Enter Game" msgstr "Uđi u igru" #: lib/pychess/widgets/preferencesDialog.py:123 msgid "Select book file" msgstr "Odaberi knjižnu datoteku" #: lib/pychess/widgets/preferencesDialog.py:128 msgid "Opening books" msgstr "Knjige otvaranja" #: lib/pychess/widgets/preferencesDialog.py:156 msgid "Select Gaviota TB path" msgstr "Odaberi putanju do podatkovne baze Gaviota" #: lib/pychess/widgets/preferencesDialog.py:331 msgid "Open Sound File" msgstr "Otvori zvučnu datoteku" #: lib/pychess/widgets/preferencesDialog.py:341 msgid "Sound files" msgstr "Zvučne datoteke" #: lib/pychess/widgets/preferencesDialog.py:485 msgid "Undescribed panel" msgstr "Neopisano okno" #: lib/pychess/widgets/preferencesDialog.py:678 msgid "Select auto save path" msgstr "Odaberi putanju samospremanja" #: lib/pychess/widgets/tipOfTheDay.py:51 msgid "" "You can start a new game by Game > New Game, in New Game " "window do you can choose Players, Time Control and Chess " "Variants." msgstr "Možeš započeti novu partiju s Partija > Nova partija, u prozoru nove partije možeš izabrati Igrači, Nadzor vremena i Šahovske varijante." #: lib/pychess/widgets/tipOfTheDay.py:52 msgid "" "You can choose from 20 different difficulties to play against the computer." msgstr "Možeš odabrati između 20 različitih razina složenosti za igru protiv računala." #: lib/pychess/widgets/tipOfTheDay.py:53 msgid "" "Chess Variants are like the pieces of the last line will be placed on the " "board." msgstr "Šahovske varijante su kao figure zadnjega reda kad su postavljene na ploču." #: lib/pychess/widgets/tipOfTheDay.py:54 msgid "" "To save a game Game > Save Game As, give the filename and " "choose where you want to be saved. At the bottom choose extension type of " "the file, and Save." msgstr "Za pohranu partije Partija > Pohrani partiju kao, imenuj datoteku i odaberi kamo je želiš pohraniti. Pri dnu odaberi vrstu ekstenzije datoteke, a onda Pohrani." #: lib/pychess/widgets/tipOfTheDay.py:55 msgid "" "Do you know that you can call flag when the clock is with you, " "Actions > Call Flag." msgstr "Znaš li da možeš zvati zastavicu kad je ura na tvojoj strani, Radnje > Zovi zastavicu." #: lib/pychess/widgets/tipOfTheDay.py:56 msgid "Pressing Ctrl+Z to offer opponent the possible rollback moves." msgstr "Pritiskom Ctrl+Z nudi se protivniku moguće vraćanje poteza." #: lib/pychess/widgets/tipOfTheDay.py:57 msgid "" "To play on Fullscreen mode, just type F11. Coming back, F11 " "again." msgstr "Za igranje u načinu Cijeli zaslon, samo pritisni F11. Za povratak nazad, pritisni F11 iznova." #: lib/pychess/widgets/tipOfTheDay.py:58 msgid "Hint mode analyzing your game, enable this type Ctrl+H." msgstr "Savjetodavni način analizira tvoju igru, omogući ovu vrstu igre Ctrl+H." #: lib/pychess/widgets/tipOfTheDay.py:59 msgid "" "Spy mode analyzing the oponnent game, enable this type Ctrl+Y." msgstr "Špijunski način analizira protivničku igru, omogući ovu vrstu igre Ctrl+Y." #: lib/pychess/widgets/tipOfTheDay.py:60 msgid "" "You can play chess listening to the sounds of the game, for that, " "Settings > Preferences > Sound tab, enable Use " "sounds in PyChess and choose your preferred sounds." msgstr "Možeš igrati šah slušajući zvukove u igri; za to, Postavke > Mogućnosti > Zvuk, omogući Koristi zvukove u PyChessu te izaberi svoje omiljene zvukove." #: lib/pychess/widgets/tipOfTheDay.py:61 msgid "" "Do you know that you can help translate Pychess in your language, " "Help > Translate Pychess." msgstr "Znaš li da možeš pomoći u prevođenju PyChessa na tvoj jezik, Help > Prevedi Pychess." #: lib/pychess/widgets/tipOfTheDay.py:62 msgid "" "Do you know that it is possible to finish a chess game in just 2 turns?" msgstr "Znaš li kako je moguće završiti šahovsku partiju u samo 2 potezna kruga?" #: lib/pychess/widgets/tipOfTheDay.py:63 msgid "" "Do you know that the number of possible chess games exceeds the number of " "atoms in the Universe?" msgstr "Znaš li da broj mogućih šahovskih partija nadilazi broj atoma u svemiru?" #: lib/pychess/ic/managers/ChatManager.py:184 msgid "Shout" msgstr "Uzvik" #: lib/pychess/ic/managers/ChatManager.py:185 msgid "Chess Shout" msgstr "Uzvik šah" #: lib/pychess/ic/managers/ChatManager.py:195 #, python-format msgid "Unofficial channel %d" msgstr "Neslužbeni kanal %d" #: lib/pychess/Utils/lutils/LBoard.py:152 #, python-format msgid "" "FEN needs 6 data fields. \n" "\n" "%s" msgstr "FEN treba 6 podatkovnih polja. \n\n%s" #: lib/pychess/Utils/lutils/LBoard.py:154 #, python-format msgid "" "FEN needs at least 2 data fields in fenstr. \n" "\n" "%s" msgstr "FEN treba najmanje 2 podatkovna polja u fenstr. \n\n%s" #: lib/pychess/Utils/lutils/LBoard.py:175 #, python-format msgid "" "Needs 7 slashes in piece placement field. \n" "\n" "%s" msgstr "Treba 7 kosih crta u polju za postavljanje figure. \n\n%s" #: lib/pychess/Utils/lutils/LBoard.py:178 #, python-format msgid "" "Active color field must be one of w or b. \n" "\n" "%s" msgstr "Polje boje na potezu mora biti jedno od bijeloga ili od crnoga. \n\n%s" #: lib/pychess/Utils/lutils/LBoard.py:189 #, python-format msgid "" "Castling availability field is not legal. \n" "\n" "%s" msgstr "Polje izbora rokade nije pravilno. \n\n%s" #: lib/pychess/Utils/lutils/LBoard.py:192 #, python-format msgid "" "En passant cord is not legal. \n" "\n" "%s" msgstr "Spona uzimanja u prolazu nije pravilna. \n\n%s" #: lib/pychess/Utils/lutils/lmove.py:260 msgid "invalid promoted piece" msgstr "nepravilno pretvorena figura" #: lib/pychess/Utils/lutils/lmove.py:272 msgid "the move needs a piece and a cord" msgstr "potez treba figuru i poveznicu" #: lib/pychess/Utils/lutils/lmove.py:306 lib/pychess/Utils/lutils/lmove.py:556 msgid "promotion move without promoted piece is incorrect" msgstr "promocijski potez bez pretvorene figure je nepravilan" #: lib/pychess/Utils/lutils/lmove.py:312 #, python-format msgid "the captured cord (%s) is incorrect" msgstr "uzimajuća oznaka (%s) je nepravilna" #: lib/pychess/Utils/lutils/lmove.py:323 #, python-format msgid "the end cord (%s) is incorrect" msgstr "krajnja spona (%s) je netočna" #: lib/pychess/Utils/lutils/strateval.py:24 sidepanel/commentPanel.py:191 #: sidepanel/commentPanel.py:208 msgid "and" msgstr "i" #: lib/pychess/Utils/lutils/strateval.py:43 msgid "draws" msgstr "remizira" #: lib/pychess/Utils/lutils/strateval.py:45 msgid "mates" msgstr "matira" #: lib/pychess/Utils/lutils/strateval.py:49 msgid "puts opponent in check" msgstr "šahira protivnika" #: lib/pychess/Utils/lutils/strateval.py:73 msgid "improves king safety" msgstr "poboljšava sigurnost kralja" #: lib/pychess/Utils/lutils/strateval.py:75 msgid "slightly improves king safety" msgstr "blago poboljšava sigurnost kralja" #: lib/pychess/Utils/lutils/strateval.py:108 msgid "moves a rook to an open file" msgstr "pomiče topa u otvorenu kolonu" #: lib/pychess/Utils/lutils/strateval.py:109 msgid "moves an rook to a half-open file" msgstr "pomiče topa u poluotvorenu kolonu" #: lib/pychess/Utils/lutils/strateval.py:119 #: lib/pychess/Utils/lutils/strateval.py:121 #: lib/pychess/Utils/lutils/strateval.py:124 #: lib/pychess/Utils/lutils/strateval.py:126 #, python-format msgid "moves bishop into fianchetto: %s" msgstr "pomiče lovca u 'fianchetto': %s" #: lib/pychess/Utils/lutils/strateval.py:132 #, python-format msgid "promotes a Pawn to a %s" msgstr "pretvara pješaka u %s" #: lib/pychess/Utils/lutils/strateval.py:135 msgid "castles" msgstr "vrši rokadu" #: lib/pychess/Utils/lutils/strateval.py:158 msgid "takes back material" msgstr "uzima nazad materijal" #: lib/pychess/Utils/lutils/strateval.py:162 #: lib/pychess/Utils/lutils/strateval.py:170 msgid "sacrifies material" msgstr "žrtvuje materijal" #: lib/pychess/Utils/lutils/strateval.py:164 msgid "exchanges material" msgstr "izmjenjuje materijal" #: lib/pychess/Utils/lutils/strateval.py:166 msgid "captures material" msgstr "uzima materijal" #: lib/pychess/Utils/lutils/strateval.py:291 #, python-format msgid "rescues a %s" msgstr "spašava %s" #: lib/pychess/Utils/lutils/strateval.py:294 #, python-format msgid "threatens to win material by %s" msgstr "prijeti dobitkom materijala s %s" #: lib/pychess/Utils/lutils/strateval.py:296 #, python-format msgid "increases the pressure on %s" msgstr "povećava pritisak na %s" #: lib/pychess/Utils/lutils/strateval.py:298 #, python-format msgid "defends %s" msgstr "brani %s" #: lib/pychess/Utils/lutils/strateval.py:336 #, python-format msgid "pins an enemy %(oppiece)s on the %(piece)s at %(cord)s" msgstr "pritišće protivnika %(oppiece)s na %(piece)s na %(cord)s" #: lib/pychess/Utils/lutils/strateval.py:369 #, python-format msgid "White has a new piece in outpost: %s" msgstr "Bijeli ima novu figuru u predstraži %s" #: lib/pychess/Utils/lutils/strateval.py:377 #, python-format msgid "Black has a new piece in outpost: %s" msgstr "Crni ima novu figuru u predstraži %s" #: lib/pychess/Utils/lutils/strateval.py:416 #, python-format msgid "%(color)s has a new passed pawn on %(cord)s" msgstr "%(color)s ima novog izmaklog pješaka na %(cord)s" #: lib/pychess/Utils/lutils/strateval.py:470 msgid "half-open" msgstr "poluotvorenoj" #: lib/pychess/Utils/lutils/strateval.py:472 #, python-format msgid "in the %(x)s%(y)s file" msgstr "u %(x)s%(y)s koloni" #: lib/pychess/Utils/lutils/strateval.py:474 #, python-format msgid "in the %(x)s%(y)s files" msgstr "u %(x)s%(y)s kolonama" #: lib/pychess/Utils/lutils/strateval.py:477 #, python-format msgid "%(color)s got a double pawn %(place)s" msgstr "%(color)s ima dvostrukog pješaka %(place)s" #: lib/pychess/Utils/lutils/strateval.py:478 #, python-format msgid "%(color)s got new double pawns %(place)s" msgstr "%(color)s ima nove dvostruke pješake %(place)s" #: lib/pychess/Utils/lutils/strateval.py:485 #, python-format msgid "%(color)s got an isolated pawn in the %(x)s file" msgid_plural "%(color)s got isolated pawns in the %(x)s files" msgstr[0] "%(color)s ima usamljenog pješaka u %(x)s koloni" msgstr[1] "%(color)s ima usamljene pješake u %(x)s kolonama" msgstr[2] "%(color)s ima usamljene pješake u %(x)s kolonama" #: lib/pychess/Utils/lutils/strateval.py:492 #, python-format msgid "%s moves pawns into stonewall formation" msgstr "%s pomiče pješake u formaciji bedema" #: lib/pychess/Utils/lutils/strateval.py:507 #: lib/pychess/Utils/lutils/strateval.py:514 #, python-format msgid "%s can no longer castle" msgstr "%s ne može više izvršiti rokadu" #: lib/pychess/Utils/lutils/strateval.py:508 #: lib/pychess/Utils/lutils/strateval.py:515 #, python-format msgid "%s can no longer castle in queenside" msgstr "%s ne može više izvršiti rokadu na kraljičinoj strani" #: lib/pychess/Utils/lutils/strateval.py:510 #: lib/pychess/Utils/lutils/strateval.py:517 #, python-format msgid "%s can no longer castle in kingside" msgstr "%s ne može više izvršiti rokadu na kraljevoj strani" #: lib/pychess/Utils/lutils/strateval.py:551 #, python-format msgid "%(opcolor)s has a new trapped bishop on %(cord)s" msgstr "%(opcolor)s ima novog zarobljenog lovca na %(cord)s" #: lib/pychess/Utils/lutils/strateval.py:573 #, python-format msgid "develops a pawn: %s" msgstr "razvija pješaka: %s" #: lib/pychess/Utils/lutils/strateval.py:574 #, python-format msgid "brings a pawn closer to the backrow: %s" msgstr "približava pješaka zadnjem redu: %s" #: lib/pychess/Utils/lutils/strateval.py:591 #, python-format msgid "brings a %(piece)s closer to enemy king: %(cord)s" msgstr "dovodi %(piece)s bliže protivničkom kralju: %(cord)s" #: lib/pychess/Utils/lutils/strateval.py:594 #, python-format msgid "develops a %(piece)s: %(cord)s" msgstr "razvija %(piece)s: %(cord)s" #: lib/pychess/Utils/lutils/strateval.py:612 #, python-format msgid "places a %(piece)s more active: %(cord)s" msgstr "postavlja %(piece)s u aktivniji položaj: %(cord)s" #: lib/pychess/Utils/lutils/strateval.py:638 msgid "White should do pawn storm in right" msgstr "Bijeli bi trebao napraviti pješački napad na desnoj strani" #: lib/pychess/Utils/lutils/strateval.py:640 msgid "Black should do pawn storm in left" msgstr "Crni bi trebao napraviti pješački napad na lijevoj strani" #: lib/pychess/Utils/lutils/strateval.py:643 msgid "White should do pawn storm in left" msgstr "Bijeli bi trebao napraviti pješački napad na lijevoj strani" #: lib/pychess/Utils/lutils/strateval.py:645 msgid "Black should do pawn storm in right" msgstr "Crni bi trebao napraviti pješački napad na desnoj strani" #: lib/pychess/Utils/lutils/strateval.py:671 msgid "Black has a rather cramped position" msgstr "Crni ima više sputanu poziciju" #: lib/pychess/Utils/lutils/strateval.py:673 msgid "Black has a slightly cramped position" msgstr "Crni ima pomalo sputanu poziciju" #: lib/pychess/Utils/lutils/strateval.py:675 msgid "White has a rather cramped position" msgstr "Bijeli ima više sputanu poziciju" #: lib/pychess/Utils/lutils/strateval.py:677 msgid "White has a slightly cramped position" msgstr "Bijeli ima pomalo sputanu poziciju" #: sidepanel/annotationPanel.py:26 msgid "Annotation" msgstr "Notacija" #: sidepanel/annotationPanel.py:29 msgid "Annotated game" msgstr "Notirana partija" #: sidepanel/annotationPanel.py:236 msgid "Copy PGN" msgstr "Preslikaj PGN" #: sidepanel/annotationPanel.py:249 msgid "Add start comment" msgstr "Dodaj početni komentar" #: sidepanel/annotationPanel.py:254 msgid "Add comment" msgstr "Dodaj komentar" #: sidepanel/annotationPanel.py:258 sidepanel/annotationPanel.py:316 msgid "Edit comment" msgstr "Uredi komentar" #: sidepanel/annotationPanel.py:269 msgid "Forced move" msgstr "Prisiljeni potez" #: sidepanel/annotationPanel.py:274 msgid "Add move symbol" msgstr "Dodaj simbol poteza" #: sidepanel/annotationPanel.py:280 msgid "Unclear position" msgstr "Nejasna pozicija" #: sidepanel/annotationPanel.py:289 msgid "Zugzwang" msgstr "Prisiljeni potez - Zugzwang" #: sidepanel/annotationPanel.py:290 msgid "Development adv." msgstr "Napredak razvoja figura" #: sidepanel/annotationPanel.py:291 msgid "Initiative" msgstr "Inicijativa" #: sidepanel/annotationPanel.py:292 msgid "With attack" msgstr "S napadom" #: sidepanel/annotationPanel.py:293 msgid "Compensation" msgstr "Nadomjestak" #: sidepanel/annotationPanel.py:294 msgid "Counterplay" msgstr "Protuigra" #: sidepanel/annotationPanel.py:295 msgid "Time pressure" msgstr "Vremenski tjesnac" #: sidepanel/annotationPanel.py:300 msgid "Add evaluation symbol" msgstr "Dodaj simbol procjene" #: sidepanel/annotationPanel.py:304 msgid "Remove symbols" msgstr "Ukloni simbole" #: sidepanel/annotationPanel.py:911 #, python-format msgid "round %s" msgstr "krug %s" #: sidepanel/bookPanel.py:21 msgid "Hints" msgstr "Prijedlozi" #: sidepanel/bookPanel.py:25 msgid "" "The hint panel will provide computer advice during each stage of the game" msgstr "Savjetodavno okno omogućit će računalni prijedlog tijekom svakog dijela partije" #: sidepanel/bookPanel.py:27 msgid "Official PyChess panel." msgstr "Službeno okno PyChessa" #: sidepanel/bookPanel.py:87 msgid "Opening Book" msgstr "Knjiga otvaranja" #: sidepanel/bookPanel.py:88 msgid "" "The opening book will try to inspire you during the opening phase of the " "game by showing you common moves made by chess masters" msgstr "Knjiga otvaranja će te pokušati nadahnuti tijekom faze otvaranja igre pokazujući ti uobičajene poteze šahovskih majstora" #: sidepanel/bookPanel.py:139 #, python-format msgid "Analysis by %s" msgstr "Analiza po %s" #: sidepanel/bookPanel.py:140 #, python-format msgid "" "%s will try to predict which move is best and which side has the advantage" msgstr "%s će pokušati predvidjeti koji je potez najbolji i koja strana ima prednost" #: sidepanel/bookPanel.py:142 #, python-format msgid "Threat analysis by %s" msgstr "Analiza prijetnje po %s" #: sidepanel/bookPanel.py:143 #, python-format msgid "" "%s will identify what threats would exist if it were your opponent's turn to" " move" msgstr "%s će prepoznati koje bi prijetnje postojale da je tvoj protivnik bio na potezu " #: sidepanel/bookPanel.py:159 sidepanel/bookPanel.py:269 msgid "Calculating..." msgstr "Izračunava se..." #: sidepanel/bookPanel.py:300 msgid "" "Engine scores are in units of pawns, from White's point of view. Double " "clicking on analysis lines you can insert them into Annotation panel as " "variations." msgstr "Ishodi šahovskog pogonika su u jedinicama pješaka, promatrajući s očišta bijeloga. Dvoklikom na analitičke nizove možeš ih umetnuti u okno komentara kao inačice." #: sidepanel/bookPanel.py:302 msgid "" "Adding suggestions can help you find ideas, but slows down the computer's " "analysis." msgstr "Dodavanje prijedloga može ti pomoći u nalaženju zamisli, ali usporava računalnu analizu." #: sidepanel/bookPanel.py:311 msgid "Endgame Table" msgstr "Ploča završnice" #: sidepanel/bookPanel.py:315 msgid "" "The endgame table will show exact analysis when there are few pieces on the " "board." msgstr "Ploča završnice će prikazati točnu analizu kad preostane samo nekoliko figura na šahovnici." #: sidepanel/bookPanel.py:364 sidepanel/bookPanel.py:367 #, python-format msgid "Mate in %d" msgstr "Mat u %d" #: sidepanel/bookPanel.py:554 msgid "" "In this position,\n" "there is no legal move." msgstr "U ovoj poziciji\nnema pravilnog poteza." #: sidepanel/chatPanel.py:21 msgid "" "The chat panel lets you communicate with your opponent during the game, " "assuming he or she is interested" msgstr "Okno razgovora dopušta ti općenje s protivnikom tijekom partije, pod pretpostavkom da je on ili ona zainteresirana za to" #: sidepanel/commentPanel.py:16 msgid "Comments" msgstr "Komentari" #: sidepanel/commentPanel.py:20 msgid "The comments panel will try to analyze and explain the moves played" msgstr "Okno komentara pokušat će analizirati i objasniti odigrane poteze" #: sidepanel/commentPanel.py:121 msgid "Initial position" msgstr "Početna pozicija" #: sidepanel/commentPanel.py:254 #, python-format msgid "%(color)s moves a %(piece)s to %(cord)s" msgstr "%(color)s povlači %(piece)s na %(cord)s" #: sidepanel/engineOutputPanel.py:15 msgid "Engines" msgstr "Šahovski pogonici" #: sidepanel/engineOutputPanel.py:20 msgid "" "The engine output panel shows the thinking output of chess engines (computer" " players) during a game" msgstr "Izlazno okno pogonika pokazuje misaoni tok šahovskih pogonika (računalnih igrača) tijekom partije" #: sidepanel/engineOutputPanel.py:44 msgid "No chess engines (computer players) are participating in this game." msgstr "Nijedan šahovski pogonik (računalni igrač) ne sudjeluje u ovoj partiji." #: sidepanel/historyPanel.py:10 msgid "Move History" msgstr "Povijest poteza" #: sidepanel/historyPanel.py:13 msgid "" "The moves sheet keeps track of the players' moves and lets you navigate " "through the game history" msgstr "Lista poteza bilježi igračke poteze i omogućuje ti kretanje kroz povijest partije" #: sidepanel/scorePanel.py:15 msgid "Score" msgstr "Ishod" #: sidepanel/scorePanel.py:19 msgid "" "The score panel tries to evaluate the positions and shows you a graph of the" " game progress" msgstr "Okno ishoda pokušava procjenjivati pozicije i grafički ti prikazuje napredak partije" pychess-0.12.2/lang/hr/LC_MESSAGES/pychess.mo0000644000175000017470000022544412653231273020721 0ustar tamasusers00000000000000D<]\4E E EGE.F 5F$BF gFuFFF+F FFF/ G0KL%L!-LOLQLaL#hLLL%LLLL9M'HM@pMMMMMMNE(NnNN#N$N NNO O9OHObOLqOO OOOQP&VP$}PCP7PUQ"tQ*Q(QQRR$R8Re>RR RRR&R.RS ,S8SNS^S pSSS SS S TmT~T T TTT TTCT1U @U KUXU gUtUUUU*UU U V V V/VSBVQVVW!'WIW dWW/WSWQ&X#xX*X"X+XYrY "ZKCZ%ZOZ-[33[$g[6[#[E[A-\!o\!\-\&\-];6] r]B]]]] ] ]$]##^%G^"m^#^^ ^^^^^^____ _8_._` "` ,`8`L`]` b`p` `` `P` ` a6aVLaVaRaSMbbbbb-b cc c(c 1ceie f #f.f 3fAf Ef Of [fhf"nff ffKg}Sg gg&g h1"hThZhahxh hhhh0h@hDqX6rRrcr]Fs?sBs;'tqctStO)uFyv v)vv ww )wD7w|wwwwww www w wx x%x 9x Ex Px]xnxxxxx+x xxx xy y!)yKy Ty _y my zy yyyy.y/y z zC!zezzzz zz zzz z zz { { +{ 8{ C{ P{ \{ i{ w{{{\{,|*-|+X|*||||.| }}-} <} I}W}g}}}}}} } }}} } } }}~~ ~ 2~?~T~l~ {~~ ~~~~~ ~E~,'4 \ f#p  €ʀр׀ (7L S^el q{  ρ( &5*P { Ăڂ "1JY hr ƃփ ܃  "9Nb j w/݄  ",?FYowy| ph"UCx549'3aRc{3TE =9Z {ʋI}@`ڌ;UՍ ZwK-hE{,AA0r  ƐPՐ& ӑޑ, 68MLAܒ  !+3I Q^ f r ēғQ6G~M֕ ܕ $#%;"a# Җ֖ #>Qn,rK ̙9k?9(uHC$&'N'?] tt Оf%ql!X&/&(֡&'&'Ndvۢ "0J Y d q {  ˣԣ%ڣ   !, 5A HRX i t  $ ( 0<+Eq !)Х83M1S'Ʀئ  $ 7 A5K"e+ 6Kbz!թ $ ' 4BSbs6( 2!Tk |Ϋ#!%Gg{3K ] iDs $ʳ  .<\k#p:.ϴYMX+/1($ 2+K-w3ٷ '".6Q9&¸#($QMN7& A)Oy{%ں*ߺ! ,27K+C3KiWڼ#$6[j̽\Xn~P611Lc6](E6n/ e! 3D#9H^r!\  &1m8 Q,~5'] x.OUi"!.OAU)$1#Vzv"E)Z()&!2)AB?((28I5/FN]ch q%| ;:Z`i s 8' '9NWk M >#ab``%^6 W ` j v ? * 4 BPa )L0K}gg1   , 6Oa  0 )13e nx #4F$JkGPSOCT %6L ]hkt!1S   0 7 B L Ygj mUy{]_md+tw?}UI][#LPp & %:7r .?\l|+-!@biy0  7,@d J * 4#? c n x    !.=Ng r5.5.d1 68G_u %8J^y '   #-5O"X {D & * Kl \hjo ! ->RX`dsx~1"'J ]0~* >Xr' %,BSdt"';DUd/"   (4NUo  mEzC:92Q/ `-#dQ{QQNHv+@U"lRiT} lzV-^C3!w51(0@ R ^lj 3^ Pl          &  ;  F T  l y  ' (    M5 ;      T  - ;     ' '4 !\ "~ = < $ 3?S[ y103TdrO%@uI+k,;"'"@$^x{+"_&*^Q)'&()'R,z(DS oy  $5DM \g2o    % 9 EOf u 7 $-?CX (@]G)6% 1 Q  a n w      4 !"l5"."""##1#N#U#Y#"x# ### # ## # $$"$8$:I$2$$5$%% (%4%;%C%V%"Z%}%$%%% %&2&I&M&T&[&c&v&}&j''(qmiB\w_3 0z>8U6O:2M ( .odtd!/`.  &R}Ek3QrZfSe;ZzY6iKp*1gwITc x=(WcDHU:L|~a!{"4C^ F R5ZHXORA:&.l+ 0G?'_#\PBys)=ktUlfz5#oCo'v37A"0L*qL[%e;F},;X&([q>tNsJCrW{ <?2;7Q $79 +  0 'np j@J-MEG/}m~)@Yh $Yv \Inu,D?s` Q@$<-u%VSD*-|k,>8r//6y_A]4 N~j9XV.")>+Bbg 6A:+w9GF <=bbJl5$4x{ d-?Pp|a1W<ie=!]'K&aB"guN,2yT8#I58^P*C3]1Shh(OTE[! %n%M^`1#f4vV@9c2mKHxD7j) Gain: + %d sec challenges you to a %(time)s %(rated)s %(gametype)s game chess has arrived has declined your offer for a match has departed has lagged for 30 seconds invalid engine move: %s is censoring you is lagging heavily but hasn't disconnected is present min noplay listing you uses a formula not fitting your match request: where %(player)s plays %(color)s. with whom you have an adjourned %(timecontrol)s %(gametype)s game is online. would like to resume your adjourned %(time)s %(gametype)s game.%(black)s won the game%(color)s got a double pawn %(place)s%(color)s got an isolated pawn in the %(x)s file%(color)s got isolated pawns in the %(x)s files%(color)s got new double pawns %(place)s%(color)s has a new passed pawn on %(cord)s%(color)s moves a %(piece)s to %(cord)s%(minutes)d min + %(gain)d sec/move%(name)s %(minutes)d min%(name)s %(minutes)d min %(gain)d sec/move%(name)s %(minutes)d min + %(gain)d sec/move%(opcolor)s has a new trapped bishop on %(cord)s%(player)s is %(status)s%(player)s plays %(color)s%(white)s won the game%d min%s can no longer castle%s can no longer castle in kingside%s can no longer castle in queenside%s moves pawns into stonewall formation%s returns an error%s was declined by your opponent%s was withdrawn by your opponent%s will identify what threats would exist if it were your opponent's turn to move%s will try to predict which move is best and which side has the advantage'%s' is a registered name. If it is yours, type the password.'%s' is not a registered name(Blitz)(Link is available on clipboard.)*0 Players Ready0 of 010 min + 6 sec/move, 1400↑, White10 min + 6 sec/move, White12002 min, Fischer Random, 1800↓, Black2 min, Fischer Random, Black5 min5 min, 1200-1800, ManualConnect to the Free Online Chess ServerPromote pawn to what?PyChess was unable to load your panel settingsAnalyzingAnimationChess VariantDate of gameEnter Game NotationGame dataHint mode analyzing your game, enable this type Ctrl+H.Initial PositionInstalled SidepanelsName of _first human player:Name of s_econd human player:NewsOpen GameOpening, endgameOpponent StrengthOptionsPlay Sound When...PlayersSpy mode analyzing the oponnent game, enable this type Ctrl+Y.Time ControlToolsYour Color_Start GameA file named '%s' already exists. Would you like to replace it?Engine, %s, has diedError loading gamePyChess is discovering your engines. Please wait.PyChess was not able to save the gameThere are %d games with unsaved moves. Save changes before closing?Unable to add %sUnable to save file '%s'Unknown file type '%s'Challenge:A player _checks:A player _moves:A player c_aptures:ASEANASEAN: http://www.ncf-phil.org/downloadables/2014/May/Asean_chess/Laws_of_ASEAN_Chess_2011_Nov_26.docAbortAbout ChessAc_tiveAcceptActivate alarm when _remaining sec is:Active color field must be one of w or b. %sActive seeks: %dAdd commentAdd evaluation symbolAdd move symbolAdd start commentAdd threatening variation lines Adding suggestions can help you find ideas, but slows down the computer's analysis.Address ErrorAdjournAdministratorAi-WokAi-Wok: http://www.open-aurec.com/wbforum/viewtopic.php?p=199364&sid=20963a1de2c164050de019e5ed6bf7c4#p199364All Chess FilesAll FilesAll whiteAnalysis by %sAnalyze from current positionAnalyze gameAnalyzer startedAnimate pieces, board rotation and more. Use this on fast machines.Annotated gameAnnotationAny strengthAsian variantsAsk to _MoveAsymmetric RandomAsymmetric Random AtomicAuto Call _FlagAuto _rotate board to current human playerAuto login on startupAuto-logoutAvailableBB EloBecause %(black)s lost connection to the serverBecause %(black)s lost connection to the server and %(white)s requested adjournmentBecause %(black)s ran out of time and %(white)s has insufficient material to mateBecause %(loser)s disconnectedBecause %(loser)s king explodedBecause %(loser)s ran out of timeBecause %(loser)s resignedBecause %(loser)s was checkmatedBecause %(mover)s stalematedBecause %(white)s lost connection to the serverBecause %(white)s lost connection to the server and %(black)s requested adjournmentBecause %(white)s ran out of time and %(black)s has insufficient material to mateBecause %(winner)s has fewer piecesBecause %(winner)s king reached the centerBecause %(winner)s lost all piecesBecause %(winner)s was giving check 3 timesBecause a player aborted the game. Either player can abort the game without the other's consent before the second move. No rating changes have occurred.Because a player disconnected and there are too few moves to warrant adjournment. No rating changes have occurred.Because a player lost connectionBecause a player lost connection and the other player requested adjournmentBecause both players agreed to a drawBecause both players agreed to abort the game. No rating changes have occurred.Because both players agreed to an adjournmentBecause both players have the same amount of piecesBecause both players ran out of timeBecause neither player has sufficient material to mateBecause of adjudication by an adminBecause of adjudication by an admin. No rating changes have occurred.Because of courtesy by a player. No rating changes have occurred.Because the %(black)s engine diedBecause the %(white)s engine diedBecause the connection to the server was lostBecause the game exceed the max lengthBecause the last 50 moves brought nothing newBecause the same position was repeated three times in a rowBecause the server was shut downBecause the server was shut down. No rating changes have occurred.BeepBishopBlackBlack O-OBlack O-O-OBlack has a new piece in outpost: %sBlack has a rather cramped positionBlack has a slightly cramped positionBlack should do pawn storm in leftBlack should do pawn storm in rightBlack:BlindfoldBlindfold AccountBlitzBlitz:Blitz: 5 minBringing your king legally to the center (e4, d4, e5, d5) instantly wins the game! Normal rules apply in other cases and checkmate also ends the game.BughouseCCACalculating...CambodianCambodian: http://www.khmerinstitute.org/culture/ok.htmlCastling availability field is not legal. %sCenter:ChallengeChallenge: Challenge: Change ToleranceChatChess AdvisorChess Alpha 2 DiagramChess GameChess PositionChess ShoutChess Variants are like the pieces of the last line will be placed on the board.Chess clientClaim DrawClassic chess rules http://en.wikipedia.org/wiki/ChessClassic chess rules with all pieces white http://en.wikipedia.org/wiki/Blindfold_chessClassic chess rules with hidden figurines http://en.wikipedia.org/wiki/Blindfold_chessClassic chess rules with hidden pawns http://en.wikipedia.org/wiki/Blindfold_chessClassic chess rules with hidden pieces http://en.wikipedia.org/wiki/Blindfold_chessClearClockClose _without SavingColorize analyzed movesCommand line parameters needed by the engine.Command:CommentsCompensationComputerConnectingConnecting to serverConnection ErrorConnection was closedContinue to wait for opponent, or try to adjourn the game?Conversation infoConversationsCopy FENCopy PGNCornerCould not save the fileCounterplayCrazyhouseCreate SeekDDateDate/TimeDeclineDefaultDestination Host UnreachableDetect type automaticallyDevelopment adv.DiedDo you know that it is possible to finish a chess game in just 2 turns?Do you know that the number of possible chess games exceeds the number of atoms in the Universe?Do you know that you can call flag when the clock is with you, Actions > Call Flag.Do you know that you can help translate Pychess in your language, Help > Translate Pychess.Do you want to abort it?Don't careDrawDummy AccountECOEdit SeekEdit Seek: Edit commentEmailEn passant cord is not legal. %sEn passant lineEndgame TableEngine scores are in units of pawns, from White's point of view. Double clicking on analysis lines you can insert them into Annotation panel as variations.EnginesEngines use uci or xboard communication protocol to talk to the GUI. If it can use both you can set here which one you like.Enter GameEnter Game _NotationError parsing move %(moveno)s %(mstr)sEuroShogiEuroShogi: http://en.wikipedia.org/wiki/EuroShogiEventEvent:Examine Adjourned GameExaminedExaminingExecutable filesExport positionFEN needs 6 data fields. %sFEN needs at least 2 data fields in fenstr. %sFICS atomic: http://www.freechess.org/Help/HelpFiles/atomic.htmlFICS bughouse: http://www.freechess.org/Help/HelpFiles/bughouse.htmlFICS crazyhouse: http://www.freechess.org/Help/HelpFiles/crazyhouse.htmlFICS losers: http://www.freechess.org/Help/HelpFiles/losers_chess.htmlFICS suicide: http://www.freechess.org/Help/HelpFiles/suicide_chess.htmlFICS wild/3: http://www.freechess.org/Help/HelpFiles/wild.html * Randomly chosen pieces (two queens or three rooks possible) * Exactly one king of each color * Pieces placed randomly behind the pawns * No castling * Black's arrangement mirrors white'sFICS wild/4: http://www.freechess.org/Help/HelpFiles/wild.html * Randomly chosen pieces (two queens or three rooks possible) * Exactly one king of each color * Pieces placed randomly behind the pawns, SUBJECT TO THE CONSTRAINT THAT THE BISHOPS ARE BALANCED * No castling * Black's arrangement DOES NOT mirrors white'sFICS wild/5: http://www.freechess.org/Help/HelpFiles/wild.html http://en.wikipedia.org/wiki/Chess_variant#Chess_with_different_starting_positions Pawns start on their 7th rank rather than their 2nd rank!FICS wild/8: http://www.freechess.org/Help/HelpFiles/wild.html Pawns start on 4th and 5th ranks rather than 2nd and 7thFICS wild/8a: http://www.freechess.org/Help/HelpFiles/wild.html White pawns start on 5th rank and black pawns on the 4th rankFIDE MasterFMF_ull board animationFace _to Face display modeFile existsFischer RandomForced moveFriendsGMGain:Game analyzing in progress...Game informationGame is _drawn:Game is _lost:Game is _set-up:Game is _won:Game shared at Games running: %dGaviota TB path:Generally this means nothing, as the game is time-based, but if you want to please your opponent, perhaps you should get going.Grand MasterGuestHa_ndle:Halfmove clockHidden pawnsHidden piecesHideHintsHost:How to PlayHuman BeingIMIdIdleIf set, PyChess will colorize suboptimal analyzed moves with red.If set, PyChess will show game results for different moves in positions containing 6 or less pieces. It will search positions from http://www.k4it.de/If set, PyChess will show game results for different moves in positions containing 6 or less pieces. You can download tablebase files from: http://www.olympuschess.com/egtb/gaviota/If set, PyChess will suggest best opening moves on hint panel.If set, PyChess will use figures to express moved pieces, rather than uppercase letters.If set, clicking on main application window closer first time it closes all games.If set, the black pieces will be head down, suitable for playing against friends on mobile devices.If set, the board will turn after each move, to show the natural view for the current player.If set, the captured figurines will be shown next to the board.If set, the elapsed time that a player used for the move is shown.If set, the hint analyzer engine evaluation value is shown.If set, the playing board will display labels and ranks for each chess field. These are usable in chess notation.If set, this hides the tab in the top of the playing window, when it is not needed.If the analyzer finds a move where the evaluation difference (the difference between the evaluation for the move it thinks is the best move and the evaluation for the move made in the game) exceeds this value, it will add an annotation for that move (consisting of the engine's Principal Variation for the move) to the Annotation panelIf you don't save, new changes to your games will be permanently lost.In TournamentIn this position, there is no legal move.Initial positionInitiativeInternational MasterInvalid move.It is not possible later to continue the game, if you don't save it.Jump to initial positionJump to latest positionKKingKing of the hillKnightKnight oddsKnightsLeave _FullscreenLightningLightning:Load _Recent GameLoaded gameLoading player dataLocal EventLocal SiteLog on ErrorLog on as G_uestLog on as _GuestLogging on to serverLosersLossMakrukMakruk: http://en.wikipedia.org/wiki/MakrukMamer ManagerManage enginesManualManual AcceptManually accept opponentMate in %dMaximum analysis time in seconds:Minutes:Minutes: More channelsMore playersMove HistoryMove numberNNameNames: #n1, #n2Needs 7 slashes in piece placement field. %sNever use animation. Use this on slow machines.New GameNo _animationNo chess engines (computer players) are participating in this game.No conversation's selectedNo soundNormalNormal: 40 min + 15 sec/moveNot AvailableObserveObserve %sObserved _ends:OddsOffer A_bortOffer AbortOffer Ad_journmentOffer PauseOffer RematchOffer ResumeOffer UndoOffer _AbortOffer _DrawOffer _PauseOffer _ResumeOffer _UndoOfficial PyChess panel.OfflineOn FICS, your "Wild" rating encompasses all of the following variants at all time controls: One player starts with one less knight pieceOne player starts with one less pawn pieceOne player starts with one less queen pieceOne player starts with one less rook pieceOnlineOnly animate _movesOnly animate piece moves.Only registered users may talk to this channelOpen GameOpen Sound FileOpen _DatabaseOpening BookOpening booksOpponent RatingOpponent's strength: OtherOther (non standard rules)Other (standard rules)PParameters:Paste FENPausePawnPawn oddsPawns PassedPawns PushedPingPlayPlay Fischer Random chessPlay Losers chessPlay RematchPlay _Internet ChessPlay normal chess rulesPlayer _RatingPlayers: %dPlayingPng imagePo_rts:Polyglot book file:Pre_viewPrefer figures in _notationPreferencesPressing Ctrl+Z to offer opponent the possible rollback moves.PrivateProbably because it has been withdrawn.PromotionProtocol:PyChess - Connect to Internet ChessPyChess - Internet Chess: FICSPyChess Game DatabasePyChess Information WindowPyChess databasePyChess has lost connection to the engine, probably because it has died. You can try to start a new game with the engine, or try to play against another one.PyChess.py:QQueenQueen oddsQuit PyChessRR_esignRandomRapidRapid: 15 min + 10 sec/moveRatedRated gameRatingReceiving list of playersRemove symbolsRequest ContinuationResendResend %s?ResultResumeRookRook oddsRoundRound:Running Simul MatchSRS_ign upSanctionsSaveSave GameSave Game _AsSave _own games onlySave analyzing engine _evaluation valuesSave elapsed move _timesSave files to:Save moves before closing?Save the current game before you close it?Saved gameScoreSearch:Seek _GraphSeek updatedSelect Gaviota TB pathSelect auto save pathSelect book fileSelect engineSelect sound file...Select the games you want to save:Select working directorySend ChallengeSend all seeksSend seekService RepresentativeSetting up environmentSetup PositionShare GameSho_w cordsShort on _time:ShoutShow ConsoleShow _ChatShow _captured piecesShow elapsed move timesShow evaluation valuesShow tips at startupShredderLinuxChess:ShuffleSide to moveSide_panelsSimple Chess PositionSiteSite:SittuyinSittuyin: http://en.wikipedia.org/wiki/SittuyinSorry '%s' is already logged inSound filesSp_y modeSpentStandardStandard:Start Private ChatStatusStep back one moveStep forward one moveSuicideTTDTMTeam AccountThe abort offerThe adjourn offerThe analyzer will run in the background and analyze the game. This is necessary for the hint mode to workThe chain button is disabled because you are logged in as a guest. Guests can't establish ratings, and the chain button's state has no effect when there is no rating to which to tie "Opponent Strength" toThe chat panel lets you communicate with your opponent during the game, assuming he or she is interestedThe clock hasn't been started yet.The comments panel will try to analyze and explain the moves playedThe connection was broken - got "end of file" messageThe directory where the engine will be started from.The displayed name of the first human player, e.g., John.The displayed name of the guest player, e.g., Mary.The draw offerThe endgame table will show exact analysis when there are few pieces on the board.The engine %s reports an error:The engine output panel shows the thinking output of chess engines (computer players) during a gameThe entered password was invalid. If you forgot your password, go to http://www.freechess.org/password to request a new one over email.The error was: %sThe file already exists in '%s'. If you replace it, its content will be overwritten.The flag callThe game #%s can't be loaded, because of an error parsing FENThe game can't be loaded, because of an error parsing FENThe game can't be read to end, because of an error parsing move %(moveno)s '%(notation)s'.The game ended in a drawThe game has been abortedThe game has been adjournedThe game has been killedThe game is pausedThe hint panel will provide computer advice during each stage of the gameThe inverse analyzer will analyze the game as if your opponent was to move. This is necessary for the spy mode to workThe move failed because %s.The moves sheet keeps track of the players' moves and lets you navigate through the game historyThe offer to switch sidesThe opening book will try to inspire you during the opening phase of the game by showing you common moves made by chess mastersThe pause offerThe reason is unknownThe resignationThe resume offerThe score panel tries to evaluate the positions and shows you a graph of the game progressThe takeback offerThebanThemesThere is %d game with unsaved moves.There are %d games with unsaved moves.There is something wrong with this executableThis game can be automatically aborted without rating loss because there has not yet been two moves madeThis game can not be adjourned because one or both players are guestsThis is a continuation of an adjourned matchThis option is not applicable because you're challenging a playerThis option is not available because you're challenging a guest, Threat analysis by %sThree-checkTimeTime control: Time pressureTip Of The dayTip of the DayTo play on Fullscreen mode, just type F11. Coming back, F11 again.To save a game Game > Save Game As, give the filename and choose where you want to be saved. At the bottom choose extension type of the file, and Save.Tolerance:Tournament DirectorTranslate PyChessTypeType or paste PGN game or FEN positions hereUUnable to accept %sUnable to save to configured file. Save the current game before you close it?Unable to save to configured file. Save the games before closing?Unclear positionUndescribed panelUndoUndo one moveUndo two movesUninstallUnknownUnofficial channel %dUnratedUnregisteredUntimedUpside DownUse _analyzerUse _inverted analyzerUse _local tablebasesUse _online tablebasesUse analyzer:Use name format:Use opening _bookVariant developed by Kai Laskos: http://talkchess.com/forum/viewtopic.php?t=40990Variation annotation creation threshold in centipawns:W EloWFMWGMWIMWaitWas unable to save '%(uri)s' as PyChess doesn't know the format '%(ending)s'.WelcomeWhen this button is in the "locked" state, the relationship between "Opponent's strength" and "Your strength" will be preserved when a) your rating for the type of game sought has changed b) you change the variant or the time controlWhiteWhite O-OWhite O-O-OWhite has a new piece in outpost: %sWhite has a rather cramped positionWhite has a slightly cramped positionWhite should do pawn storm in leftWhite should do pawn storm in rightWhite:WildWildcastleWildcastle shuffleWinWin by giving check 3 timesWith attackWoman FIDE MasterWoman Grand MasterWoman International MasterWorking directory:Year, month, day: #y, #m, #dYouYou are currently logged in as a guest. A guest can't play rated games and therefore isn't able to play as many of the types of matches offered as a registered user. To register an account, go to http://www.freechess.org/Register/index.html.You asked your opponent to moveYou can choose from 20 different difficulties to play against the computer.You can play chess listening to the sounds of the game, for that, Settings > Preferences > Sound tab, enable Use sounds in PyChess and choose your preferred sounds.You can start a new game by Game > New Game, in New Game window do you can choose Players, Time Control and Chess Variants.You can't play rated games because "Untimed" is checked, You can't play rated games because you are logged in as a guestYou can't select a variant because "Untimed" is checked, You can't switch colors during the game.You don't have the necessary rights to save the file. Please ensure that you have given the right path and try again.You have been logged out because you were idle more than 60 minutesYou have opened no conversations yetYou have tried to undo too many moves.You may only have 3 outstanding seeks at the same time. If you want to add a new seek you must clear your currently active seeks. Clear your seeks?You sent a draw offerYou sent a pause offerYou sent a resume offerYou sent an abort offerYou sent an adjournment offerYou sent an undo offerYour opponent asks you to hurry!Your opponent has asked that the game be aborted. If you accept this offer, the game will end with no rating change.Your opponent has asked that the game be adjourned. If you accept this offer, the game will be adjourned and you can resume it later (when your opponent is online and both players agree to resume).Your opponent has asked that the game be paused. If you accept this offer, the game clock will be paused until both players agree to resume the game.Your opponent has asked that the game be resumed. If you accept this offer, the game clock will continue from where it was paused.Your opponent has asked that the last %s move(s) be undone. If you accept this offer, the game will continue from the earlier position.Your opponent has offered you a draw.Your opponent has offered you a draw. If you accept this offer, the game will end with a score of 1/2 - 1/2.Your opponent is not out of time.Your opponent must agree to abort the game because there has been two or more moves madeYour opponent seems to have changed their mind.Your opponent wants to abort the game.Your opponent wants to adjourn the game.Your opponent wants to pause the game.Your opponent wants to resume the game.Your opponent wants to undo %s move(s).Your panel settings have been reset. If this problem repeats, you should report it to the developersYour seeks have been removedYour strength: Zugzwang_Accept_Actions_Analyze Game_Auto save finished games_Black player:_Call Flag_Clear Seeks_Copy FEN_Copy PGN_Decline_Edit_Engines_Export Position_Fullscreen_Game_Game List_General_Help_Hide tabs when only one game is open_Hint mode_Hints_Invalid move:_Load Game_Log Off_Log Viewer_Name:_New Game_Next_Observed moves:_Opponent:_Password:_Play Normal chess_Player List_Previous_Replace_Rotate Board_Save %d document_Save %d documents_Save %d documents_Save Game_Seeks / Challenges_Show Sidepanels_Sounds_Start Game_Untimed_Use main app closer [x] to close all games_Use sounds in PyChess_View_White player:_Your Color:andand guests can't play rated gamesand on FICS, untimed games can't be ratedand on FICS, untimed games have to be normal chess rulesask your opponent to moveblackbrings a %(piece)s closer to enemy king: %(cord)sbrings a pawn closer to the backrow: %scall your opponents flagcaptures materialcastlesdefends %sdevelops a %(piece)s: %(cord)sdevelops a pawn: %sdrawsexchanges materialgnuchess:half-openhttp://brainking.com/en/GameRules?tp=2 * Placement of the pieces on the 1st and 8th row are randomized * The king is in the right hand corner * Bishops must start on opposite color squares * Black's starting position is obtained by rotating white's position 180 degrees around the board's center * No castlinghttp://en.wikipedia.org/wiki/Chesshttp://en.wikipedia.org/wiki/Chess960 FICS wild/fr: http://www.freechess.org/Help/HelpFiles/wild.htmlhttp://en.wikipedia.org/wiki/Rules_of_chessimproves king safetyin the %(x)s%(y)s filein the %(x)s%(y)s filesincreases the pressure on %sinvalid promoted piecematesminmoves a rook to an open filemoves an rook to a half-open filemoves bishop into fianchetto: %snot playingofoffer a drawoffer a pauseoffer a takebackoffer an abortoffer to adjournoffer to resumeoffer to switch sidesonline in totalpins an enemy %(oppiece)s on the %(piece)s at %(cord)splaces a %(piece)s more active: %(cord)spromotes a Pawn to a %spromotion move without promoted piece is incorrectputs opponent in checkrating range nowrescues a %sresignround %ssacrifies materialsecslightly improves king safetytakes back materialthe captured cord (%s) is incorrectthe end cord (%s) is incorrectthe move needs a piece and a cordthreatens to win material by %sto automatic acceptto manual acceptucivs.whitewindow1wine not installedxboardxboard nocastle: http://home.hccnet.nl/h.g.muller/engine-intf.html#8 FICS wild/2: http://www.freechess.org/Help/HelpFiles/wild.html * Random arrangement of the pieces behind the pawns * No castling * Black's arrangement mirrors white'sxboard wildcastle http://home.hccnet.nl/h.g.muller/engine-intf.html#8 FICS wild/0: http://www.freechess.org/Help/HelpFiles/wild.html * White has the typical set-up at the start. * Black's pieces are the same, except that the King and Queen are reversed, * so they are not on the same files as White's King and Queen. * Castling is done similarly to normal chess: * o-o-o indicates long castling and o-o short castling.xboard wildcastle http://home.hccnet.nl/h.g.muller/engine-intf.html#8 FICS wild/1: http://www.freechess.org/Help/HelpFiles/wild.html * In this variant both sides have the same set of pieces as in normal chess. * The white king starts on d1 or e1 and the black king starts on d8 or e8, * and the rooks are in their usual positions. * Bishops are always on opposite colors. * Subject to these constraints the position of the pieces on their first ranks is random. * Castling is done similarly to normal chess: * o-o-o indicates long castling and o-o short castling.Project-Id-Version: pychess Report-Msgid-Bugs-To: POT-Creation-Date: 2016-01-27 13:28+0100 PO-Revision-Date: 2016-01-28 08:56+0000 Last-Translator: slav0nic Language-Team: Croatian (http://www.transifex.com/gbtami/pychess/language/hr/) MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Language: hr Plural-Forms: nplurals=3; plural=n%10==1 && n%100!=11 ? 0 : n%10>=2 && n%10<=4 && (n%100<10 || n%100>=20) ? 1 : 2; Dodatak: + %d sek izaziva te na %(time)s %(rated)s %(gametype)s partijušahje stigao/laje otklonio/la tvoju ponudu za ogledje otišao/la kasni 30 sekundi neispravni potez pogonika: %s te cenzurira jako kasni, ali nije iskopčanje prisutan/na min ima te na popisu za odbijanje igrekoristi formulu koja se ne uklapa u tvoj zahtjev za ogled: gdje %(player)s igra %(color)s. s kojim imaš odgođenu %(timecontrol)s %(gametype)s partiju je na mreži. želi nastaviti vašu odgođenu %(time)s %(gametype)s partiju.%(black)s je dobio partiju%(color)s ima dvostrukog pješaka %(place)s%(color)s ima usamljenog pješaka u %(x)s koloni%(color)s ima usamljene pješake u %(x)s kolonama%(color)s ima usamljene pješake u %(x)s kolonama%(color)s ima nove dvostruke pješake %(place)s%(color)s ima novog izmaklog pješaka na %(cord)s%(color)s povlači %(piece)s na %(cord)s%(minutes)d min + %(gain)d sek/potez%(name)s %(minutes)d min%(name)s %(minutes)d min %(gain)d sek/potez%(name)s %(minutes)d min + %(gain)d sek/potez%(opcolor)s ima novog zarobljenog lovca na %(cord)s%(player)s je %(status)s%(player)s igra %(color)s%(white)s je dobio partiju%d min%s ne može više izvršiti rokadu%s ne može više izvršiti rokadu na kraljevoj strani%s ne može više izvršiti rokadu na kraljičinoj strani%s pomiče pješake u formaciji bedema%s vraća neispravnost%s je otklonjeno od tvog protivnika%s je povučen od strane tvog protivnika%s će prepoznati koje bi prijetnje postojale da je tvoj protivnik bio na potezu %s će pokušati predvidjeti koji je potez najbolji i koja strana ima prednost'%s' je zabilježeno ime. Ako je tvoje, upiši zaporku.'%s' nije zabilježeno ime(Brzopotezno)(Poveznica je dostupna u međuspremniku.)*0 igrača pripravnih0 od 010 min + 6 sek/potez, 1400↑, Bijeli10 min + 6 sek/potez, Bijeli12002 min, Fischerov nasumični, 1800↓, Crni2 min, Fischerov nasumični, Crni5 min5 min, 1200-1800, ručnoSpoji se na Free Online Chess Server Pretvori pješaka u što?PyChess nije mogao podići tvoje postavke za oknaAnalizira seAnimacijaŠahovska varijantaNadnevak partijeUnesi notaciju partijePodatci o partijiSavjetodavni način analizira tvoju igru, omogući ovu vrstu igre Ctrl+H.Početna pozicijaUgrađena sporedna oknaIme _prvog ljudskog igrača:Ime _drugog ljudskog igrača:NovostiOtvori partijuOtvaranje, završnicaProtivnička jačinaMogućnostiOglasi se zvukom kada...IgračiŠpijunski način analizira protivničku igru, omogući ovu vrstu igre Ctrl+Y.Nadzor vremenaPomagalaTvoja boja_Započni partijuDatoteka s imenom '%s' već postoji. Želiš li je zamijeniti?Šahovski pogonik, %s, se isključioPogreška u učitavanju partijePyChess otkriva tvoje šahovske pogonike. Molim pričekaj.PyChess nije mogao pohraniti partijuIma %d partija s nepohranjenim potezima. Pohrani promjene prije zatvaranja?Nije moguće dodati %sNije moguće pohraniti datoteku '%s'Nepoznata vrsta datoteke '%s'Izazovi:Igrač _šahira:Igrač _povlači:Igrač u_zima:ASEANASEAN: http://www.ncf-phil.org/downloadables/2014/May/Asean_chess/Laws_of_ASEAN_Chess_2011_Nov_26.docPrekiniO šahuD_jelatnoPrihvatiUključi zvučno upozorenje kad _preostaje sekundi:Polje boje na potezu mora biti jedno od bijeloga ili od crnoga. %sDjelatni zahtjevi: %dDodaj komentarDodaj simbol procjeneDodaj simbol potezaDodaj početni komentarDodaj prijeteće potezne promjeneDodavanje prijedloga može ti pomoći u nalaženju zamisli, ali usporava računalnu analizu.Neispravnost u adresiOdgodiUpraviteljAi-WokAi-Wok: http://www.open-aurec.com/wbforum/viewtopic.php?p=199364&sid=20963a1de2c164050de019e5ed6bf7c4#p199364Sve šahovske datotekeSve datotekeSvi bijeli Analiza po %sAnaliziraj od trenutne pozicijeAnaliziraj partijuAnaliza je pokrenutaAnimiraj figure, zaokretanje ploče i ostalo. Primjenjuj to na brzim računalima.Notirana partijaNotacijaBilo koja jačinaAzijske varijanteZatraži _potezAsimetrični nasumični Asimetrični nasumični Atomski - Atomic Samozovi _zastavicuSamo_zaokreni ploču prema trenutnom ljudskom igračuSamoprijava pri pokretanjuSamoodjavaDostupnoBC EloJer je %(black)s izgubio vezu s poslužiteljemJer je %(black)s izgubio vezu prema poslužitelju, a %(white)s zatražio odgoduJer je %(black)s ostao bez vremena, a %(white)s nema dovoljno materijala za matiranjeJer se %(loser)s isključioJer je %(loser)s kralj eksplodiraoJer je %(loser)s iscurilo vrijemeZbog predaje %(loser)sJer je %(loser)s matiranjer je %(mover)s u patuJer je %(white)s izgubio vezu s poslužiteljemJer je %(white)s izgubio vezu prema poslužitelju, a %(black)s zatražio odgoduJer je %(white)s ostao bez vremena, a %(black)s nema dovoljno materijala za matiranjeJer %(winner)s ima manje figuraJer je %(winner)s kralj dosegao središteJer je %(winner)s izgubio sve figureJer je %(winner)s zadao šah 3 putaJer je igrač prekinuo partiju. Bilo koji od igrača može prekinuti partiju bez suglasnosti protivnika prije drugog poteza. Nisu uslijedile promjene u rangiranju.Jer se igrač isključio, a preostalo je premalo poteza za dopuštanje odgode. Nisu se dogodile promjene u rangiranju.Jer je igrač izgubio mrežnu vezuJer je jedan igrač izgubio mrežnu vezu, a drugi je zatražio odgoduJer su se oba igrača suglasila s remijemJer su se oba igrača suglasila s prekidom partije. Nisu uslijedile promjene u rangiranju.Jer su se oba igrača suglasila s odgodomJer oba igrača imaju isti broj figuraJer je igračima iscurilo vrijemeJer nijedan igrač nema dovoljno materijala za matZbog presude upraviteljaRadi presude upravitelja. Nisu se dogodile promjene u rangiranju.Zbog ljubaznosti igrača. Nije došlo do promjena u rangiranju.Jer je šahovski pogonik %(black)s zamroJer je šahovski pogonik %(white)s zamroJer je izgubljena mrežna veza prema poslužiteljuJer je partija prešla najveću moguću dužinu trajanjaJer posljednjih 50 poteza nije donijelo ništa novogaJer je ista pozicija opetovana tri puta zaredomJer je poslužitelj isključenJer je poslužitelj isključen. Nisu uslijedile promjene u rangiranju.Zvučni signallovacCrniCrni O-OCrni O-O-OCrni ima novu figuru u predstraži %sCrni ima više sputanu pozicijuCrni ima pomalo sputanu pozicijuCrni bi trebao napraviti pješački napad na lijevoj straniCrni bi trebao napraviti pješački napad na desnoj straniCrni:Slijepi Račun za igru na slijepoBrzopoteznoBrzopotezno:Brzopotezno: 5 minDovođenje vlastitoga kralja u središte (e4, d4, e5, d5) trenutačno donosi pobjedu u partiji! U ostalim slučajevima primjenjuju se uobičajena pravila i šah-mat također završava partiju.Tandemski - Bughouse CCAIzračunava se...CambodianCambodian: http://www.khmerinstitute.org/culture/ok.htmlPolje izbora rokade nije pravilno. %sSredište:IzazoviIzazovi:Izazovi: Promijeni odstupanjeRazgovorŠahovski savjetnikŠahovski dijagram Alfa 2Šahovska partijaŠahovska pozicijaUzvik šahŠahovske varijante su kao figure zadnjega reda kad su postavljene na ploču.Šahovski klijentZatraži remiKlasična šahovska pravila http://en.wikipedia.org/wiki/ChessKlasična šahovska pravila sa svim figurama bijelim http://en.wikipedia.org/wiki/Blindfold_chessKlasična šahovska pravila sa skrivenim figuricama http://en.wikipedia.org/wiki/Blindfold_chessKlasična šahovska pravila sa skrivenim pješacima http://en.wikipedia.org/wiki/Blindfold_chessKlasična šahovska pravila sa skrivenim figurama http://en.wikipedia.org/wiki/Blindfold_chessUkloniUraZatvori _bez spremanjaOboji analizirane potezeMjerila naredbenog retka potrebna šahovskom pogoniku.Naredba:KomentariNadomjestakRačunaloPovezujemSpajanje na poslužiteljNeispravnost pri spajanjuVeza je bila zatvorenaNastaviti čekati na protivnika ili pokušati odgoditi partiju?Obavijest o razgovoruRazgovoriPreslikaj FENPreslikaj PGNUgaoni - Corner Nije moguće spremiti datotekuProtuigraLudi - Crazyhouse Stvori zahtjevDNadnevakNadnevak/VrijemeOtkloniZadanoDomaćin odredišta nedostupanPrepoznaj vrstu automatskiNapredak razvoja figuraZamrloZnaš li kako je moguće završiti šahovsku partiju u samo 2 potezna kruga?Znaš li da broj mogućih šahovskih partija nadilazi broj atoma u svemiru?Znaš li da možeš zvati zastavicu kad je ura na tvojoj strani, Radnje > Zovi zastavicu.Znaš li da možeš pomoći u prevođenju PyChessa na tvoj jezik, Help > Prevedi Pychess.Želiš li je prekinuti?ZanemarenoRemiLažni računECOUredi zahtjevUredi zahtjev:Uredi komentarE-poštaSpona uzimanja u prolazu nije pravilna. %sPotez uzimanja u prolazuPloča završniceIshodi šahovskog pogonika su u jedinicama pješaka, promatrajući s očišta bijeloga. Dvoklikom na analitičke nizove možeš ih umetnuti u okno komentara kao inačice.Šahovski pogoniciŠahovski pogonici koriste komunikacijski protokol uci ili xboard za općenje s grafičkim korisničkim sučeljem. Ako se ne mogu koristiti oba, možeš odabrati onaj koji želiš.Uđi u igruUnesi _notaciju partijeNeispravnost u obradi poteza %(moveno)s %(mstr)sEuroShogiEuroShogi: http://en.wikipedia.org/wiki/EuroShogiDogađajDogađaj:Provjeri odgođenu partijuProvjerenoU provjeriIzvršne datotekeIzvezi pozicijuFEN treba 6 podatkovnih polja. %sFEN treba najmanje 2 podatkovna polja u fenstr. %sFICS atomski šah: http://www.freechess.org/Help/HelpFiles/atomic.htmlFICS tandemski šah: http://www.freechess.org/Help/HelpFiles/bughouse.htmlFICS ludi šah: http://www.freechess.org/Help/HelpFiles/crazyhouse.htmlFICS gubitnički šah: http://www.freechess.org/Help/HelpFiles/losers_chess.htmlFICS samoubilački šah: http://www.freechess.org/Help/HelpFiles/suicide_chess.htmlFICS divlji šah/3: http://www.freechess.org/Help/HelpFiles/wild.html * Nasumično odabrane figure (moguće su dvije kraljice ili tri topa) * Samo jedan kralj od svake boje * Figure postavljene nasumično iza pješaka * Nema rokade * Postava crnoga odraz je postave bijelogaFICS divlji šah/4: http://www.freechess.org/Help/HelpFiles/wild.html * Nasumično odabrane figure (moguće su dvije kraljice ili tri topa) * Samo jedan kralj od svake boje * Figure postavljene nasumično iza pješaka, UZ OGRANIČENJE DA SU SKAKAČI U RAVNOTEŽI * Nema rokade * Postava crnoga NE odražava postavu bijelogaFICS divlji šah/5: http://www.freechess.org/Help/HelpFiles/wild.html http://en.wikipedia.org/wiki/Chess_variant#Chess_with_different_starting_positions Pješaci započinju na svome 7. redu umjesto na svome 2. redu!FICS divlji šah/8: http://www.freechess.org/Help/HelpFiles/wild.html Pješaci započinju na 4. i 5. redu umjesto na 2. i 7. reduFICS divlji šah/8a: http://www.freechess.org/Help/HelpFiles/wild.html Bijeli pješaci započinju na 5. redu, a crni pješaci na 4. reduFIDE-majstorFMP_otpuna animacija pločeZaslonski prikaz licem u liceDatoteka postojiFischerov nasumični Prisiljeni potezPrijateljiGMDodatak:Analiza partije u tijeku...Obavijest o partijiPartija je _neriješena:Partija je _izgubljena:Partija je _postavljena:Partija je _dobivena:Partija podijeljena na Partije u tijeku: %dPutanja za bazu pozicija Gaviota:Obično ovo ne znači ništa budući da je partija vremenski ograničena, ali ako želiš udovoljiti protivniku, možda bi trebao nastaviti.VelemajstorGostKo_risnik:Polupotezna uraSkriveni pješaci Skrivene figure SakrijPrijedloziDomaćin:Kako igrati?Ljudsko bićeIMIdU mirovanjuAko je postavljeno, PyChess će nedovoljno dobre analizirane poteze obojiti u crveno.Ako je tako postavljeno, PyChess će pokazati ishod partije za različite poteze u pozicijama koje sadrže 6 ili manje figura. Pozicije će tražiti na http://www.k4it.de/Ako je tako postavljeno, PyChess će pokazati ishod partije za različite poteze u pozicijama koje sadrže 6 ili manje figura. Možeš preuzeti datoteke sa šahovskom bazom pozicija na: http://www.olympuschess.com/egtb/gaviota/Ako je postavljeno, PyChess će predložiti najbolje otvarajuće poteze u savjetodavnom oknu.Ako je postavljeno, PyChess će koristiti brojke kako bi prikazao povučene figure, radije nego velika slova.Ako je postavljeno, klikom na glavni programski zatvarač prozora prvi puta zatvaraju se sve partijeAko je postavljeno, crne figure bit će spuštene, što je pogodno za igru protiv prijatelja na mobilnim uređajima.Ako je postavljeno, ploča će se zaokrenuti nakon svakog poteza, kako bi se prikazao naravni pogled igrača na potezu.Ako je postavljeno, uzete figure bit će prikazane kraj ploče.Ako je postavljeno, prikazano je proteklo vrijeme koje je igrač iskoristio za potez.Ako je postavljeno, prikazuje se rezultat procjene analitičkog pogonika.Ako je postavljeno, šahovska ploča će prikazivati slovnu i brojčanu oznaku za svako šahovsko polje. Ovo je iskoristivo u šahovskoj notaciji.Ako je postavljeno, ovo sakriva karticu na vrhu igrajućeg prozora, kada ona nije potrebna.Ako analiza pronađe potez u kojem razlika u procjeni nadilazi ovu vrijednost (razlika između procjene za potez koji smatra najboljim i procjene za potez povučen u partiji), dodat će bilješku za taj potez (koja se sastoji od glavne inačice šahovskog pogonika za potez) u okno komentaraAko ih ne pohraniš, nove promjene u tvojim partijama bit će trajno izgubljene.U turniruU ovoj poziciji nema pravilnog poteza.Početna pozicijaInicijativaMeđunarodni majstorNepravilni potez.Nije moguće kasnije nastaviti partiju ako je ne spremiš.Skoči na početnu pozicijuSkoči na najnoviju pozicijuKkraljKralj u središtuskakačSkakač prednosti SkakačiNapusti _cijeli zaslonMunjevitoMunjevito:Učitaj _nedavnu partijuUčitana partijaPodižu se igračevi podatciMjesni događajMjesni položajNeispravnost pri prijaviPrijavi se kao _GostPrijavi se kao _GostPrijavljivanje na poslužiteljGubitnički - Losers PorazMakrukMakruk: http://en.wikipedia.org/wiki/MakrukMamer-rukovoditeljUpravljanje šahovskim pogonicimaRučnoRučno prihvatiRučno prihvati protivnikaMat u %dNajduže dopušteno vrijeme analize u sekundama:Minute:Minute:Više kanalaViše igračaPovijest potezaBroj potezaSImeImena: #n1, #n2Treba 7 kosih crta u polju za postavljanje figure. %sNikad ne koristi animaciju. Primjenjuj to na sporim računalima.Nova partijaBez _animacijeNijedan šahovski pogonik (računalni igrač) ne sudjeluje u ovoj partiji.Nijedan razgovor nije izabranBez zvukaStandardnoStandardno: 40 min + 15 sek/potezNedostupnoPromatrajPromatraj %sPromatrane _završnice:PrednostiPonudi pre_kidPonudi prekidPonudi _odgoduPonudi stankuPonudi uzvratPonudi nastavakPonudi poništenjePonudi _prekidPonudi _remiPonudi _stankuPonudi _nastavakPonudi _vraćanje potezaSlužbeno okno PyChessaIzvan mrežeNa poslužitelju FICS, tvoj rang za "divlji šah" obuhvaća sve sljedeće varijante na svim vremenskim nadzorima: Jedan igrač počinje s jednom figurom skakača manjeJedan igrač počinje s jednim pješakom manjeJedan igrač počinje s figurom kraljice manjeJedan igrač počinje s jednom figurom topa manjeNa mrežiAnimiraj samo _potezeAnimiraj samo poteze figuraSamo zabilježeni korisnici mogu općiti s tim kanalomOtvori partijuOtvori zvučnu datotekuOtvori _bazu podatakaKnjiga otvaranjaKnjige otvaranjaRang protivnikaProtivnikova jačina:DrugoDrugo (nestandardna pravila)Drugo (standardna pravila)PMjerila:Prilijepi FENZaustavipješakPješak prednosti Pješaci izmakli Pješaci pogurnuti Pokaži mrežno kašnjenjeIgrajIgraj Fischerov nasumični šahIgraj gubitnički šahIgraj uzvratIgraj _internetski šahIgraj po normalnim šahovskim pravilimaRang igračaIgrači: %dU igriPng slikaUl_azi:Datoteka knjige Polyglot:Pre_gledBudi skloniji figurama u _notacijiPrilagodbePritiskom Ctrl+Z nudi se protivniku moguće vraćanje poteza.ZasebnoVjerojatno jer je povučen.PromocijaProtokol:PyChess - Spoji se na internetski šahPyChess - Internetski šah: FICSPodatkovna baza partija PyChessaObavijesni prozor PyChessaPodatkovna baza PyChessaPyChess je izgubio vezu sa šahovskim pogonikom, vjerojatno jer se on isključio. Možeš pokušati pokrenuti novu partiju s tim šahovskim pogonikom ili pokušati igrati protiv drugoga.PyChess.py:DdamaKraljica prednosti Napusti PyChessTP_redajNasumični UbrzanoUbrzano: 15 min + 10 sek/potezRangiranRangirana partijaRangPrima se popis igračaUkloni simboleZahtijevaj nastavakPonovno pošaljiPonovno poslati %s?IshodNastavitopTop prednosti KrugKrug:U tijeku simultankaSR_Registriraj seKazneSpremiPohrani partijuPohrani partiju _kaoSpremi samo _vlastite partijeSpremi vrijednosne procjene analitičkog pogonikaSpremi protekla _vremena za potezeSpremi datoteke u:Pohrani poteze prije zatvaranja?Spremiti tekuću partiju prije njena zatvaranja?Pohranjena partijaIshodTraži:_Grafikon zahtjevaZahtjev obnovljenOdaberi putanju do podatkovne baze GaviotaOdaberi putanju samospremanjaOdaberi knjižnu datotekuOdaberi šahovski pogonikIzaberi zvučnu datoteku...Izaberi partije koje želiš pohraniti:Odaberi djelatni direktorijUputi izazovPošalji sve zahtjevePošalji zahtjevPoslužiteljski predstavnik na FICS-uPostavljanje okružjaPostavi pozicijuPodijeli partijuPrikaži oznakeNedostatak _vremena:UzvikPokaži konzoluPokaži _razgovorPokaži _uzete figurePrikaži proteklo vrijeme za potezPrikaži vrijednosti procjenePokaži savjete pri pokretanjuShredderLinuxChess:Shuffle Strana na potezuSporedna _oknaJednostavna šahovska pozicijaMjestoMjesto:SittuyinSittuyin: http://en.wikipedia.org/wiki/SittuyinOprosti, '%s' je već prijavljen/aZvučne datoteke_Špijunski načinPotrošenoStandardnoStandardno:Započni zasebni razgovorStanjePovuci jedan potez unazadPovuci jedan potez naprijedSamoubilački - Suicide TTDTMSkupni računPonuda prekidaPonuda odgodeAnaliza će raditi u pozadini i analizirati partiju. Ovo je potrebno kako bi savjetodavni način radioLančani gumb je onemogućen jer si prijavljen kao gost. Gosti ne mogu uspostaviti rang, pa stanje lančanog gumba nema učinka kada nema ranga za koji se može vezati "protivnička jačina"Okno razgovora dopušta ti općenje s protivnikom tijekom partije, pod pretpostavkom da je on ili ona zainteresirana za toUra još nije pokrenuta.Okno komentara pokušat će analizirati i objasniti odigrane potezeVeza je bila prekinuta - primljena je poruka "end of file"Direktorij iz kojega će biti pokrenut šahovski pogonik.Prikazano ime prvog ljudskog igrača, npr. Mislav.Prikazano ime gostujućeg igrača, npr. Marija.Ponuda remijaPloča završnice će prikazati točnu analizu kad preostane samo nekoliko figura na šahovnici.Šahovski pogonik %s dojavljuje neispravnost:Izlazno okno pogonika pokazuje misaoni tok šahovskih pogonika (računalnih igrača) tijekom partijeUnesena zaporka je neispravna. Ako si zaboravio/la svoju zaporku, idi na http://www.freechess.org/password kako bi zatražio/la novu preko e-pošte.Neispravnost je bila: %sDatoteka već postoji u '%s'. Ako je zamijeniš, njen sadržaj bit će prebrisan.Poziv zastavicePartija #%s ne može biti pokrenuta zbog neispravnosti u računalnom čitanju FENPartija ne može biti pokrenuta, zbog neispravnosti u računalnom čitanju FENPartija ne može biti pročitana do kraja zbog neispravnosti u računalnom čitanju poteza %(moveno)s '%(notation)s'.Partija je završila remijemPartija je prekinutaPartija je odgođenaPartija je dokrajčenaPartija je privremeno zaustavljenaSavjetodavno okno omogućit će računalni prijedlog tijekom svakog dijela partijeObrnuta analiza će analizirati partiju kao da je tvoj protivnik bio na potezu. Ovo je potrebno kako bi špijunski način radioPotez nije uspio zbog %s.Lista poteza bilježi igračke poteze i omogućuje ti kretanje kroz povijest partijePonuda zamjene stranaKnjiga otvaranja će te pokušati nadahnuti tijekom faze otvaranja igre pokazujući ti uobičajene poteze šahovskih majstoraPonuda stankeRazlog je nepoznatPredajaPonuda nastavkaOkno ishoda pokušava procjenjivati pozicije i grafički ti prikazuje napredak partijePonuda povrata potezaTheban TemePostoji %d partija s nepohranjenim potezima.Postoje %d partije s nepohranjenim potezima.Postoji %d partija s nepohranjenim potezima.Nešto nije u redu s ovom izvršnom datotekomOva partija se može automatski prekinuti bez gubitka ranga jer još nisu povučena dva potezaOva se partija ne može odgoditi jer su jedan ili oba igrača gostiOvo je nastavak odgođenog ogledaOva mogućnost nije primjenjiva jer izazivaš igračaOva mogućnost nije dostupna jer izazivaš gosta,Analiza prijetnje po %sTrostruki šahVrijemeNadzor vremena:Vremenski tjesnacSavjet danaSavjet danaZa igranje u načinu Cijeli zaslon, samo pritisni F11. Za povratak nazad, pritisni F11 iznova.Za pohranu partije Partija > Pohrani partiju kao, imenuj datoteku i odaberi kamo je želiš pohraniti. Pri dnu odaberi vrstu ekstenzije datoteke, a onda Pohrani.Odstupanje:Ravnatelj turniraPrevedi PyChessVrstaUpiši ili dodaj PGN partiju ili FEN pozicije ovdjeUNije prihvatljivo %sNije moguće spremiti u postavljenu datoteku. Spremiti tekuću partiju prije njena zatvaranja?Nije moguće spremiti u postavljenu datoteku. Spremiti partije prije zatvaranja?Nejasna pozicijaNeopisano oknoPoništiPoništi jedan potezPoništi dva potezaDeinstalirajNepoznatoNeslužbeni kanal %dNerangiranNeregistriranVremenski neograničenoPreokrenuti Koristi _analizuKoristi _obrnutu analizuKoristi _mjesnu šahovsku bazu pozicijaKoristi _mrežnu šahovsku bazu pozicijaKoristi analizu:"Koristi oblik imena:Koristi _knjigu otvaranjaVarijantu razvio Kai Laskos: http://talkchess.com/forum/viewtopic.php?t=40990Prag stvaranja komentara inačice u pješačkim stotinkama:B EloWFMWGMWIMČekajNije bilo moguće pohraniti '%(uri)s' jer PyChess ne prepoznaje format '%(ending)s'.Dobrodošli uKad je ovaj gumb u "zaključanu" stanju, odnos između "protivnikove jačine" i "tvoje jačine" bit će sačuvan kada a) se tvoj rang za vrstu igre promijeni b) kad promijeniš šahovsku varijantu ili nadzor vremenaBijeliBijeli O-OBijeli O-O-OBijeli ima novu figuru u predstraži %sBijeli ima više sputanu pozicijuBijeli ima pomalo sputanu pozicijuBijeli bi trebao napraviti pješački napad na lijevoj straniBijeli bi trebao napraviti pješački napad na desnoj straniBijeli:Divlji - Wild Wildcastle Wildcastle shuffle PobjedaPobjeda davanjem šaha 3 putaS napadomŽenski FIDE-majstorŽenski velemajstorŽenski međunarodni majstorDjelatni direktorij:Godina, mjesec, dan: #y, #m, #dTiTrenutno si prijavljen/a kao gost. Gost ne može igrati rangirane partije pa stoga nije u mogućnosti igrati sve vrste ogleda koje su ponuđene registriranom korisniku. Za registraciju računa, idi na http://www.freechess.org/Register/index.html.Zatražio/la si od protivnika povlačenje potezaMožeš odabrati između 20 različitih razina složenosti za igru protiv računala.Možeš igrati šah slušajući zvukove u igri; za to, Postavke > Mogućnosti > Zvuk, omogući Koristi zvukove u PyChessu te izaberi svoje omiljene zvukove.Možeš započeti novu partiju s Partija > Nova partija, u prozoru nove partije možeš izabrati Igrači, Nadzor vremena i Šahovske varijante.Ne možeš igrati rangiranu partiju jer je označeno "vremenski neograničeno",Ne možeš igrati rangiranu partiju jer si prijavljen/a kao gostNe možeš odabrati varijantu jer je označeno "vremenski neograničeno",Ne možeš zamijeniti boje tijekom partije.Nemaš potrebne ovlasti za spremanje datoteke. Molim provjeri jesi li unio točnu lokaciju i probaj ponovo.Odjavljen/a si jer si bio/la u mirovanju više od 60 minutaJoš nisi otvorio nijedan razgovorPokušao si poništiti previše poteza.Možeš uputiti samo 3 izvanredna zahtjeva u isto vrijeme. Ako želiš dodati novi zahtjev, moraš ukloniti svoje trenutne zahtjeve. Želiš li ukloniti svoje zahtjeve?Poslao/la si ponudu za remiPoslao/la si ponudu za stankuPoslao/la si ponudu za nastavakPoslao/la si ponudu za prekidPoslao/la si ponudu za odgoduPoslao/la si ponudu za povrat potezaProtivnik traži da požuriš!Tvoj je protivnik predložio da partija bude prekinuta. Ako prihvatiš ponudu, partija će završiti bez promjene ranga.Tvoj je protivnik zamolio odgodu partije. Ako prihvatiš ponudu, partija će biti odgođena te je možeš nastaviti kasnije (kada tvoj protivnik bude na mreži i kada se oba igrača slože oko nastavka).Tvoj je protivnik zamolio da partija bude privremeno zaustavljena. Ako prihvatiš ovu ponudu, šahovska ura bit će zaustavljena sve dok se oba igrača ne suglase s nastavkom partije. Tvoj je protivnik zamolio nastavak partije. Ako prihvatiš ovu ponudu, šahovska ura će nastaviti teći od trenutka kada je zaustavljena.Tvoj bi protivnik želio poništiti %s potez(a). Ako prihvatiš ponudu, partija će biti nastavljena iz prethodne pozicije.Tvoj protivnik ponudio ti je remi.Tvoj je protivnik ponudio remi. Ako prihvatiš ponudu, partija će završiti ishodom 1/2 - 1/2.Tvoj protivnik nije ostao bez vremena.Tvoj se protivnik mora suglasiti s prekidom partije jer su dva ili više poteza već povučenaIzgleda da se tvoj protivnik predomislio.Tvoj protivnik želi prekinuti partiju.Tvoj protivnik želi odgoditi partiju.Tvoj protivnik želi zaustaviti partiju.Tvoj protivnik želi nastaviti partiju.Tvoj protivnik želi poništiti %s potez(a).Tvoje postavke za okna su iznova postavljene. Ako se ova poteškoća bude ponavljala, trebao bi o tome izvijestiti razvijateljeTvoji zahtjevi su uklonjeniTvoja jačina:Prisiljeni potez - Zugzwang_Prihvati_Radnje_Analiziraj partiju_Samospremi dovršene partije_Crni igrač:_Zovi zastavicu_Počisti zahtjeve_Preslikaj FEN_Preslikaj PGN_Odbij_Uredi_Šahovski pogonici_Izvezi poziciju_Cijeli zaslon_PartijaPopis _partija_Općenito_Pomoć_Sakrij kartice kad je samo jedna partija otvorena_Savjetodavni način_Prijedlozi_Nepravilni potez:_Učitaj partiju_Odjavi sePreglednik dnevnika_Ime:_Nova partija_Sljedeći_Promatrani potezi:_Protivnik:_Zaporka:_Igraj standardni šahPopis _igrača_Prijašnji_Zamijeni_Zaokreni ploču_Pohrani %d zapis_Pohrani %d zapisa_Pohrani %d zapisa_Pohrani %d zapise_Pohrani partiju_Zahtjevi / Izazovi_Prikaži sporedna okna_Zvukovi_Započni partiju_Vremenski neograničeno_Koristi glavni programski zatvarač [x] za zatvaranje svih partija_Koristi zvukove u PyChessu_Prikaz_Bijeli igrač:Tvoja bojaia gosti ne mogu igrati rangirane partijea FICS ne omogućava rangiranje vremenski neograničenih partijaa FICS nalaže da se vremenski neograničene partije igraju po normalnim šahovskim pravilimazatraži od protivnika povlačenje potezacrnidovodi %(piece)s bliže protivničkom kralju: %(cord)spribližava pješaka zadnjem redu: %szovi zastavicu svoga protivnikauzima materijalvrši rokadubrani %srazvija %(piece)s: %(cord)srazvija pješaka: %sremiziraizmjenjuje materijalgnuchess:poluotvorenojUgaoni šah: http://brainking.com/en/GameRules?tp=2 * Postavljanje figura na 1. i 8. redu jest nasumično * Kralj je u desnom igračevu uglu * Lovci moraju započeti na poljima suprotne boje * Početna pozicija crnoga dobiva se okretanjem pozicije bijeloga za 180 stupnjeva oko središta ploče * Nema rokadehttp://hr.wikipedia.org/wiki/Šahhttp://en.wikipedia.org/wiki/Chess960 FICS divlji šah/fr: http://www.freechess.org/Help/HelpFiles/wild.htmlhttp://hr.wikipedia.org/wiki/Šahovska_pravilapoboljšava sigurnost kraljau %(x)s%(y)s koloniu %(x)s%(y)s kolonamapovećava pritisak na %snepravilno pretvorena figuramatiraminpomiče topa u otvorenu kolonupomiče topa u poluotvorenu kolonupomiče lovca u 'fianchetto': %sne igraodponudi remiponudi stankuponudi povrat potezaponudi prekidponudi odgoduponudi nastavakponudi zamjenu stranaukupno na mrežipritišće protivnika %(oppiece)s na %(piece)s na %(cord)spostavlja %(piece)s u aktivniji položaj: %(cord)spretvara pješaka u %spromocijski potez bez pretvorene figure je nepravilanšahira protivnikaopseg ranga sadaspašava %spredajkrug %sžrtvuje materijalsekblago poboljšava sigurnost kraljauzima nazad materijaluzimajuća oznaka (%s) je nepravilnakrajnja spona (%s) je netočnapotez treba figuru i poveznicuprijeti dobitkom materijala s %sna automatsko prihvaćanjena ručno prihvaćanjeuciprotivbijeliprozor1Wine nije ugrađenxboardxboard nocastle: http://home.hccnet.nl/h.g.muller/engine-intf.html#8 FICS divlji šah/2: http://www.freechess.org/Help/HelpFiles/wild.html * Nasumična postava figura iza pješaka * Nema rokade * Postava crnoga odraz je postave bijelogaxboard wildcastle http://home.hccnet.nl/h.g.muller/engine-intf.html#8 FICS divlji šah/0: http://www.freechess.org/Help/HelpFiles/wild.html * Bijeli ima uobičajenu postavu na početku. * Crne figure su iste, osim što su kralj i dama preokrenuti, * tako da nisu na istim linijama kao bijeli kralj i dama. * Rokada se izvodi kao i u normalnom šahu: * o-o-o označava veliku rokadu, a o-o malu rokadu.xboard wildcastle http://home.hccnet.nl/h.g.muller/engine-intf.html#8 FICS divlji šah/1: http://www.freechess.org/Help/HelpFiles/wild.html * U ovoj varijanti obje strane imaju iste figure kao i u normalnom šahu. * Bijeli kralj počinje na d1 ili e1, crni kralj počinje na d8 ili e8, * a topovi su na svojim uobičajenim položajima. * Lovci su uvijek na suprotnim bojama. * Poštujući ova ograničenja, položaj figura na prvim redovima je nasumičan. * Rokada se izvodi kao i u normalnom šahu: * o-o-o označava veliku rokadu, a o-o malu rokadu.pychess-0.12.2/lang/ro/0000755000175000017470000000000012653231274015116 5ustar tamasusers00000000000000pychess-0.12.2/lang/ro/LC_MESSAGES/0000755000175000017470000000000012653231274016703 5ustar tamasusers00000000000000pychess-0.12.2/lang/ro/LC_MESSAGES/pychess.po0000644000175000017470000027471312653216211020731 0ustar tamasusers00000000000000# SOME DESCRIPTIVE TITLE. # Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER # This file is distributed under the same license as the pychess package. # # Translators: # devod , 2015 # FIRST AUTHOR , 2008 # Marinescu Bogdan , 2015 msgid "" msgstr "" "Project-Id-Version: pychess\n" "Report-Msgid-Bugs-To: \n" "POT-Creation-Date: 2016-01-27 13:28+0100\n" "PO-Revision-Date: 2016-01-28 08:56+0000\n" "Last-Translator: slav0nic \n" "Language-Team: Romanian (http://www.transifex.com/gbtami/pychess/language/ro/)\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" "Language: ro\n" "Plural-Forms: nplurals=3; plural=(n==1?0:(((n%100>19)||((n%100==0)&&(n!=0)))?2:1));\n" # "Plural-Forms: nplurals=INTEGER; plural=EXPRESSION;\n" #: glade/analyze_game.glade:22 msgid "Analyze game" msgstr "Analizează jocul" #: glade/analyze_game.glade:87 msgid "Use analyzer:" msgstr "Foloseşte analizatorul" #: glade/analyze_game.glade:122 glade/PyChess.glade:2054 msgid "Maximum analysis time in seconds:" msgstr "" #: glade/analyze_game.glade:163 msgid "" "If the analyzer finds a move where the evaluation difference (the difference" " between the evaluation for the move it thinks is the best move and the " "evaluation for the move made in the game) exceeds this value, it will add an" " annotation for that move (consisting of the engine's Principal Variation " "for the move) to the Annotation panel" msgstr "" #: glade/analyze_game.glade:164 msgid "Variation annotation creation threshold in centipawns:" msgstr "" #: glade/analyze_game.glade:198 msgid "Analyze from current position" msgstr "Analizează de la poziţia curentă" #: glade/analyze_game.glade:214 msgid "Add threatening variation lines " msgstr "" #: glade/analyze_game.glade:229 glade/PyChess.glade:1459 msgid "Colorize analyzed moves" msgstr "" #: glade/analyze_game.glade:244 glade/PyChess.glade:1495 msgid "Show evaluation values" msgstr "" #: glade/discovererDialog.glade:18 msgid "PyChess is discovering your engines. Please wait." msgstr "PyChess caută motoarele dvs. de șah. Va rugăm așteptați." #: glade/discovererDialog.glade:77 msgid "PyChess.py:" msgstr "PyChess.py:" #: glade/discovererDialog.glade:89 msgid "ShredderLinuxChess:" msgstr "ShredderLinuxChess:" #: glade/discovererDialog.glade:101 msgid "gnuchess:" msgstr "gnuchess:" #: glade/fics_logon.glade:7 msgid "PyChess - Connect to Internet Chess" msgstr "Conectare la Șah pe Internet" #: glade/fics_logon.glade:47 msgid "Connect to the Free Online Chess Server" msgstr "Conectare la Free Online Chess Server" #: glade/fics_logon.glade:129 glade/taskers.glade:394 msgid "_Password:" msgstr "_Parolă:" #: glade/fics_logon.glade:143 msgid "_Name:" msgstr "_Nume:" #: glade/fics_logon.glade:191 msgid "Log on as _Guest" msgstr "Autentificare drept _Vizitator" #: glade/fics_logon.glade:227 msgid "Host:" msgstr "Gazdă:" #: glade/fics_logon.glade:259 msgid "Po_rts:" msgstr "Po_rturi;" #: glade/fics_logon.glade:271 msgid "Auto login on startup" msgstr "Autentificare automată la pornire" #: glade/fics_logon.glade:385 msgid "S_ign up" msgstr "Înreg_istrare" #: glade/fics_lounge.glade:35 msgid "Challenge: " msgstr "Provoacă: " #: glade/fics_lounge.glade:97 msgid "Send Challenge" msgstr "Trimite Provocare" #: glade/fics_lounge.glade:133 msgid "Challenge:" msgstr "Provocare:" #: glade/fics_lounge.glade:327 glade/fics_lounge.glade:2078 msgid "Lightning:" msgstr "Fulger:" #: glade/fics_lounge.glade:351 glade/fics_lounge.glade:2102 msgid "Standard:" msgstr "Standard:" #: glade/fics_lounge.glade:375 glade/fics_lounge.glade:2126 msgid "Blitz:" msgstr "Bliț" #: glade/fics_lounge.glade:400 msgid "2 min, Fischer Random, Black" msgstr "2 min, Fischer aleator, Negru" #: glade/fics_lounge.glade:422 msgid "10 min + 6 sec/move, White" msgstr "10 min + 6 sec/mutare, Alb" #: glade/fics_lounge.glade:444 msgid "5 min" msgstr "5 min" #: glade/fics_lounge.glade:480 msgid "Edit Seek" msgstr "Editează căutare" #: glade/fics_lounge.glade:584 lib/pychess/ic/ICLounge.py:2208 #: lib/pychess/ic/__init__.py:101 lib/pychess/Utils/GameModel.py:206 msgid "Untimed" msgstr "Necronometrat" #: glade/fics_lounge.glade:637 msgid "Minutes: " msgstr "Minute: " #: glade/fics_lounge.glade:665 msgid " Gain: " msgstr " Câștig: " #: glade/fics_lounge.glade:703 msgid "Time control: " msgstr "Control timp: " #: glade/fics_lounge.glade:716 lib/pychess/ic/FICSObjects.py:56 #: lib/pychess/ic/ICLounge.py:1137 lib/pychess/ic/ICLounge.py:2208 #: lib/pychess/ic/__init__.py:99 msgid "Standard" msgstr "Standard" #: glade/fics_lounge.glade:757 glade/newInOut.glade:633 msgid "Time Control" msgstr "Control timp" #: glade/fics_lounge.glade:814 glade/fics_lounge.glade:1346 msgid "Don't care" msgstr "Irelevant" #: glade/fics_lounge.glade:879 msgid "Your strength: " msgstr "Evaluarea ta: " #: glade/fics_lounge.glade:921 msgid "(Blitz)" msgstr "(Bliț)" #: glade/fics_lounge.glade:951 msgid "Opponent's strength: " msgstr "Evaluarea oponentului: " #: glade/fics_lounge.glade:1055 msgid "" "When this button is in the \"locked\" state, the relationship\n" "between \"Opponent's strength\" and \"Your strength\" will be\n" "preserved when \n" "a) your rating for the type of game sought has changed\n" "b) you change the variant or the time control" msgstr "Când butonul este „blocat”, relația dintre „Evaluarea adversarului”\nși „Evaluarea ta” va fi păstrată când:\na) evaluarea ta pentru tipul de joc căutat a crescut\nb) schimbi varianta sau controlul timpului" #: glade/fics_lounge.glade:1095 msgid "Center:" msgstr "Centru:" #: glade/fics_lounge.glade:1134 msgid "1200" msgstr "1200" #: glade/fics_lounge.glade:1188 msgid "Tolerance:" msgstr "Toleranță:" #: glade/fics_lounge.glade:1243 lib/pychess/ic/ICLounge.py:2452 msgid "Hide" msgstr "Ascunde" #: glade/fics_lounge.glade:1289 msgid "Opponent Strength" msgstr "Evaluarea oponentului" #: glade/fics_lounge.glade:1386 lib/pychess/Database/gamelist.py:40 #: lib/pychess/ic/ICLounge.py:1357 lib/pychess/ic/ICLounge.py:1557 #: lib/pychess/ic/ICLounge.py:2108 lib/pychess/Utils/repr.py:10 #: lib/pychess/widgets/ChessClock.py:40 #: lib/pychess/widgets/TaskerManager.py:153 msgid "White" msgstr "Alb" #: glade/fics_lounge.glade:1414 lib/pychess/Database/gamelist.py:40 #: lib/pychess/ic/ICLounge.py:1358 lib/pychess/ic/ICLounge.py:1558 #: lib/pychess/ic/ICLounge.py:2110 lib/pychess/Utils/repr.py:10 #: lib/pychess/widgets/ChessClock.py:40 #: lib/pychess/widgets/TaskerManager.py:154 msgid "Black" msgstr "Negru" #: glade/fics_lounge.glade:1453 msgid "Your Color" msgstr "Culoarea ta" #: glade/fics_lounge.glade:1512 msgid "Play normal chess rules" msgstr "Joacă șah cu regulile normale" #: glade/fics_lounge.glade:1552 msgid "Play" msgstr "Joacă" #: glade/fics_lounge.glade:1618 glade/newInOut.glade:833 msgid "Chess Variant" msgstr "Variantă șah" #: glade/fics_lounge.glade:1676 msgid "Rated game" msgstr "Joc evaluat" #: glade/fics_lounge.glade:1692 msgid "Manually accept opponent" msgstr "Acceptă oponenții manual" #: glade/fics_lounge.glade:1722 msgid "Options" msgstr "Opțiuni" #: glade/fics_lounge.glade:1750 msgid "PyChess - Internet Chess: FICS" msgstr "PyChess - Șah pe Internet: FICS" #: glade/fics_lounge.glade:1823 msgid "_Clear Seeks" msgstr "Șterge _căutările" #: glade/fics_lounge.glade:1847 msgid "_Accept" msgstr "_Acceptă" #: glade/fics_lounge.glade:1871 msgid "_Decline" msgstr "_Refuză" #: glade/fics_lounge.glade:2151 msgid "2 min, Fischer Random, 1800↓, Black" msgstr "2 min, Fischer Aleator, 1800↓, Negru" #: glade/fics_lounge.glade:2172 msgid "10 min + 6 sec/move, 1400↑, White" msgstr "10 min + 6 sec/mutare, 1400↑, Alb" #: glade/fics_lounge.glade:2193 msgid "5 min, 1200-1800, Manual" msgstr "5 min, 1200-1800, Manual" #: glade/fics_lounge.glade:2247 msgid "Send all seeks" msgstr "" #: glade/fics_lounge.glade:2301 msgid "Send seek" msgstr "Trimite căutare" #: glade/fics_lounge.glade:2337 msgid "Create Seek" msgstr "Creează căutare" #: glade/fics_lounge.glade:2353 msgid "_Seeks / Challenges" msgstr "Căutări / _Provocări" #: glade/fics_lounge.glade:2374 lib/pychess/ic/ICLounge.py:472 #: lib/pychess/ic/ICLounge.py:670 lib/pychess/ic/ICLounge.py:1357 #: lib/pychess/ic/ICLounge.py:1358 msgid "Rating" msgstr "Evaluare" #: glade/fics_lounge.glade:2399 msgid "Time" msgstr "Timp" #: glade/fics_lounge.glade:2419 msgid "Seek _Graph" msgstr "Grafic căutări" #: glade/fics_lounge.glade:2444 msgid "0 Players Ready" msgstr "Niciun jucător pregătit" #: glade/fics_lounge.glade:2496 msgid "Challenge" msgstr "Provoacă" #: glade/fics_lounge.glade:2549 glade/fics_lounge.glade:2735 msgid "Observe" msgstr "Observă" #: glade/fics_lounge.glade:2602 msgid "Start Private Chat" msgstr "Pornește conversație privată" #: glade/fics_lounge.glade:2659 msgid "_Player List" msgstr "Lista _jucătorilor" #: glade/fics_lounge.glade:2792 msgid "_Game List" msgstr "Lista j_ocurilor" #: glade/fics_lounge.glade:2847 msgid "_My games" msgstr "" #: glade/fics_lounge.glade:2904 glade/PyChess.glade:841 msgid "Offer _Resume" msgstr "Propune _reluare" #: glade/fics_lounge.glade:2962 glade/PyChess.glade:880 msgid "R_esign" msgstr "C_edează" #: glade/fics_lounge.glade:3006 glade/PyChess.glade:820 msgid "Offer _Draw" msgstr "Propune remiză" #: glade/fics_lounge.glade:3050 msgid "Offer A_bort" msgstr "" #: glade/fics_lounge.glade:3107 msgid "Pre_view" msgstr "Pre_vizualizează" #: glade/fics_lounge.glade:3151 msgid "Examine" msgstr "" #: glade/fics_lounge.glade:3208 msgid "_Archived" msgstr "" #: glade/fics_lounge.glade:3313 msgid "News" msgstr "Știri" #: glade/fics_lounge.glade:3345 msgid "Show Console" msgstr "Arată Consola" #: glade/fics_lounge.glade:3359 msgid "Show _Chat" msgstr "Afișează _conversații" #: glade/fics_lounge.glade:3373 msgid "_Log Off" msgstr "Închide _sesiunea" #: glade/fics_lounge.glade:3393 msgid "Tools" msgstr "Unelte" #: glade/fics_lounge.glade:3428 msgid "Asymmetric Random " msgstr "" #: glade/findbar.glade:6 msgid "window1" msgstr "window1" #: glade/findbar.glade:21 msgid "0 of 0" msgstr "0 din 0" #: glade/findbar.glade:66 msgid "Search:" msgstr "Caută:" #: glade/findbar.glade:134 msgid "_Previous" msgstr "_Precedent" #: glade/findbar.glade:192 msgid "_Next" msgstr "_Următor" #: glade/newInOut.glade:45 lib/pychess/widgets/newGameDialog.py:445 msgid "New Game" msgstr "Joc nou" #: glade/newInOut.glade:108 msgid "_Start Game" msgstr "_Pornește jocul" #: glade/newInOut.glade:130 msgid "Copy FEN" msgstr "" #: glade/newInOut.glade:143 msgid "Clear" msgstr "" #: glade/newInOut.glade:156 msgid "Paste FEN" msgstr "" #: glade/newInOut.glade:257 msgid "_Black player:" msgstr "Jucătorul _negru" #: glade/newInOut.glade:274 msgid "_White player:" msgstr "Jucătorul _alb" #: glade/newInOut.glade:385 msgid "Players" msgstr "Jucători" #: glade/newInOut.glade:436 msgid "_Untimed" msgstr "" #: glade/newInOut.glade:475 msgid "Blitz: 5 min" msgstr "" #: glade/newInOut.glade:526 msgid "Rapid: 15 min + 10 sec/move" msgstr "" #: glade/newInOut.glade:575 msgid "Normal: 40 min + 15 sec/move" msgstr "" #: glade/newInOut.glade:684 msgid "_Play Normal chess" msgstr "Joacă șah normal" #: glade/newInOut.glade:724 msgid "Play Fischer Random chess" msgstr "Joacă șah Fisher Aleator" #: glade/newInOut.glade:774 msgid "Play Losers chess" msgstr "" #: glade/newInOut.glade:919 msgid "Open Game" msgstr "Deschide joc" #: glade/newInOut.glade:1162 msgid "Initial Position" msgstr "Poziția inițială" #: glade/newInOut.glade:1219 msgid "Enter Game Notation" msgstr "Introdu notația de joc" #: glade/newInOut.glade:1314 msgid "Halfmove clock" msgstr "" #: glade/newInOut.glade:1327 msgid "En passant line" msgstr "" #: glade/newInOut.glade:1339 msgid "Side to move" msgstr "" #: glade/newInOut.glade:1351 msgid "Move number" msgstr "" #: glade/newInOut.glade:1361 msgid "Black O-O" msgstr "" #: glade/newInOut.glade:1375 msgid "Black O-O-O" msgstr "" #: glade/newInOut.glade:1389 msgid "White O-O-O" msgstr "" #: glade/newInOut.glade:1403 msgid "White O-O" msgstr "" #: glade/promotion.glade:7 msgid "Promotion" msgstr "Promovare" #: glade/promotion.glade:49 lib/pychess/Utils/repr.py:12 msgid "Queen" msgstr "Regină" #: glade/promotion.glade:95 lib/pychess/Utils/repr.py:12 msgid "Rook" msgstr "Tură" #: glade/promotion.glade:141 lib/pychess/Utils/repr.py:12 msgid "Bishop" msgstr "Nebun" #: glade/promotion.glade:187 lib/pychess/Utils/repr.py:12 msgid "Knight" msgstr "Cal" #: glade/promotion.glade:233 lib/pychess/Utils/repr.py:12 msgid "King" msgstr "Rege" #: glade/promotion.glade:265 msgid "Promote pawn to what?" msgstr "În ce se promovează pionul?" #: glade/PyChess.glade:9 msgid "Chess client" msgstr "" #: glade/PyChess.glade:44 msgid "Game information" msgstr "Informații joc" #: glade/PyChess.glade:164 msgid "Event:" msgstr "Eveniment:" #: glade/PyChess.glade:178 msgid "Site:" msgstr "Pagină web:" #: glade/PyChess.glade:204 msgid "Round:" msgstr "Rundă:" #: glade/PyChess.glade:237 msgid "White:" msgstr "Alb:" #: glade/PyChess.glade:249 msgid "Black:" msgstr "Negru:" #: glade/PyChess.glade:302 msgid "Game data" msgstr "Date joc" #: glade/PyChess.glade:357 msgid "Date of game" msgstr "Dată joc" #: glade/PyChess.glade:495 msgid "_Game" msgstr "_Joc" #: glade/PyChess.glade:502 msgid "_New Game" msgstr "Joc _nou" #: glade/PyChess.glade:515 msgid "Play _Internet Chess" msgstr "Joacă șah pe _internet" #: glade/PyChess.glade:534 msgid "_Load Game" msgstr "Încarcă joc" #: glade/PyChess.glade:550 msgid "Load _Recent Game" msgstr "" #: glade/PyChess.glade:558 msgid "Open _Database" msgstr "Deschide _Bază de date" #: glade/PyChess.glade:569 lib/pychess/widgets/newGameDialog.py:615 msgid "Setup Position" msgstr "Configurează poziția" #: glade/PyChess.glade:579 msgid "Enter Game _Notation" msgstr "Introdu _notația jocului" #: glade/PyChess.glade:592 msgid "_Save Game" msgstr "_Salvează joc" #: glade/PyChess.glade:606 msgid "Save Game _As" msgstr "S_alvează joc ca" #: glade/PyChess.glade:624 msgid "Share Game" msgstr "Împărtăşeşte jocul" #: glade/PyChess.glade:630 msgid "_Export Position" msgstr "" #: glade/PyChess.glade:644 msgid "_Analyze Game" msgstr "_Analizează Jocul" #: glade/PyChess.glade:678 msgid "Player _Rating" msgstr "Evalua_re jucător" #: glade/PyChess.glade:723 msgid "_Edit" msgstr "_Editează" #: glade/PyChess.glade:734 msgid "_Copy PGN" msgstr "_Copiază PGN-ul" #: glade/PyChess.glade:746 msgid "_Copy FEN" msgstr "" #: glade/PyChess.glade:763 msgid "_Engines" msgstr "_Motoare" #: glade/PyChess.glade:789 msgid "_Actions" msgstr "_Acțiuni" #: glade/PyChess.glade:800 msgid "Offer _Abort" msgstr "Oferă oprire_a jocului" #: glade/PyChess.glade:810 msgid "Offer Ad_journment" msgstr "Oferă suspendarea _jocului" #: glade/PyChess.glade:831 msgid "Offer _Pause" msgstr "Propune _pauză" #: glade/PyChess.glade:847 msgid "Offer _Undo" msgstr "Prop_une revenire" #: glade/PyChess.glade:870 msgid "_Call Flag" msgstr "" #: glade/PyChess.glade:890 msgid "Ask to _Move" msgstr "Cere mutare" #: glade/PyChess.glade:905 msgid "Auto Call _Flag" msgstr "" #: glade/PyChess.glade:918 msgid "_View" msgstr "_Vizualizează" #: glade/PyChess.glade:925 msgid "_Rotate Board" msgstr "_Rotește tabla" #: glade/PyChess.glade:939 msgid "_Fullscreen" msgstr "_Ecran complet" #: glade/PyChess.glade:952 msgid "Leave _Fullscreen" msgstr "Părăsește _Ecran Complet" #: glade/PyChess.glade:969 msgid "_Show Sidepanels" msgstr "Afișează panourile laterale" #: glade/PyChess.glade:980 msgid "_Log Viewer" msgstr "Vizualizator jurna_l" #: glade/PyChess.glade:997 msgid "_Hint mode" msgstr "Mod ajutător" #: glade/PyChess.glade:1009 msgid "Sp_y mode" msgstr "Mod spion" #: glade/PyChess.glade:1024 msgid "_Help" msgstr "A_jutor" #: glade/PyChess.glade:1034 msgid "About Chess" msgstr "Despre șah" #: glade/PyChess.glade:1043 msgid "How to Play" msgstr "Cum se joacă" #: glade/PyChess.glade:1052 msgid "Translate PyChess" msgstr "Tradu PyChess" #: glade/PyChess.glade:1058 msgid "Tip of the Day" msgstr "Pontul zilei" #: glade/PyChess.glade:1153 msgid "Default" msgstr "Implicit" #: glade/PyChess.glade:1156 msgid "Knights" msgstr "" #: glade/PyChess.glade:1167 lib/pychess/widgets/preferencesDialog.py:349 msgid "Beep" msgstr "Bip" #: glade/PyChess.glade:1170 lib/pychess/widgets/preferencesDialog.py:350 msgid "Select sound file..." msgstr "Alege fișier sunet..." #: glade/PyChess.glade:1173 lib/pychess/widgets/preferencesDialog.py:348 msgid "No sound" msgstr "Fără sunet" #: glade/PyChess.glade:1180 msgid "Preferences" msgstr "Preferințe" #: glade/PyChess.glade:1218 msgid "The displayed name of the first human player, e.g., John." msgstr "Numele afișat al primului jucător uman, de exemplu Ion." #: glade/PyChess.glade:1230 msgid "Name of _first human player:" msgstr "Numele _primului jucător uman:" #: glade/PyChess.glade:1259 msgid "The displayed name of the guest player, e.g., Mary." msgstr "Numele afișat al jucătorului oaspete, de exemplu Maria." #: glade/PyChess.glade:1271 msgid "Name of s_econd human player:" msgstr "Numele celui de-al _doilea jucător uman:" #: glade/PyChess.glade:1307 msgid "_Hide tabs when only one game is open" msgstr "Ascunde taburi când numai un joc este deschis" #: glade/PyChess.glade:1312 msgid "" "If set, this hides the tab in the top of the playing window, when it is not " "needed." msgstr "Dacă este ales, ascunde fila în partea superioară a ferestrii de joc când aceasta nu este necesară." #: glade/PyChess.glade:1326 msgid "_Use main app closer [x] to close all games" msgstr "" #: glade/PyChess.glade:1331 msgid "" "If set, clicking on main application window closer first time it closes all " "games." msgstr "" #: glade/PyChess.glade:1345 msgid "Auto _rotate board to current human player" msgstr "_Rotește tabla automat pentru jucătorul uman la mutare" #: glade/PyChess.glade:1350 msgid "" "If set, the board will turn after each move, to show the natural view for " "the current player." msgstr "Daca este ales, tabla se va întoarce dupa fiecare mutare pentru a arătă vederea naturală a jucătorului la mutare." #: glade/PyChess.glade:1364 msgid "Auto _promote to queen" msgstr "" #: glade/PyChess.glade:1369 msgid "If set, pawn promotes to queen without promotion dialog selection." msgstr "" #: glade/PyChess.glade:1383 msgid "Face _to Face display mode" msgstr "Modul de afișa_re fața în față" #: glade/PyChess.glade:1388 msgid "" "If set, the black pieces will be head down, suitable for playing against " "friends on mobile devices." msgstr "Dacă este ales, piesele negre vor fi orientate în jos, adecvat pentru a juca împotriva prietenilor pe dispozitive mobile." #: glade/PyChess.glade:1402 msgid "Sho_w cords" msgstr "" #: glade/PyChess.glade:1407 msgid "" "If set, the playing board will display labels and ranks for each chess " "field. These are usable in chess notation." msgstr "" #: glade/PyChess.glade:1421 msgid "Show _captured pieces" msgstr "Arată _piese capturate" #: glade/PyChess.glade:1426 msgid "If set, the captured figurines will be shown next to the board." msgstr "" #: glade/PyChess.glade:1440 msgid "Prefer figures in _notation" msgstr "Prefera figurine în _notații" #: glade/PyChess.glade:1445 msgid "" "If set, PyChess will use figures to express moved pieces, rather than " "uppercase letters." msgstr "Dacă este ales, PyChess va folosi figurine pentru a arăta piesele mutate în locul majusculilor." #: glade/PyChess.glade:1464 msgid "If set, PyChess will colorize suboptimal analyzed moves with red." msgstr "" #: glade/PyChess.glade:1477 msgid "Show elapsed move times" msgstr "" #: glade/PyChess.glade:1482 msgid "If set, the elapsed time that a player used for the move is shown." msgstr "" #: glade/PyChess.glade:1500 msgid "If set, the hint analyzer engine evaluation value is shown." msgstr "" #: glade/PyChess.glade:1526 msgid "General Options" msgstr "" #: glade/PyChess.glade:1560 msgid "F_ull board animation" msgstr "Animație totală a ta_blei" #: glade/PyChess.glade:1565 msgid "Animate pieces, board rotation and more. Use this on fast machines." msgstr "Animează piesele, rotația tablei și altele. Recomandat doar pe calculatoarele performante." #: glade/PyChess.glade:1579 msgid "Only animate _moves" msgstr "Animează doar _mutările" #: glade/PyChess.glade:1584 msgid "Only animate piece moves." msgstr "Animează doar mutările pieselor." #: glade/PyChess.glade:1599 msgid "No _animation" msgstr "Fără animații." #: glade/PyChess.glade:1604 msgid "Never use animation. Use this on slow machines." msgstr "Nu anima nimic. Recomandat pentru calculatoarele lente." #: glade/PyChess.glade:1632 msgid "Animation" msgstr "Animație" #: glade/PyChess.glade:1651 msgid "_General" msgstr "_General" #: glade/PyChess.glade:1692 msgid "Use opening _book" msgstr "" #: glade/PyChess.glade:1697 msgid "If set, PyChess will suggest best opening moves on hint panel." msgstr "" #: glade/PyChess.glade:1724 msgid "Polyglot book file:" msgstr "" #: glade/PyChess.glade:1768 msgid "Use _local tablebases" msgstr "" #: glade/PyChess.glade:1773 msgid "" "If set, PyChess will show game results for different moves in positions containing 6 or less pieces.\n" "You can download tablebase files from:\n" "http://www.olympuschess.com/egtb/gaviota/" msgstr "" #: glade/PyChess.glade:1803 msgid "Gaviota TB path:" msgstr "" #: glade/PyChess.glade:1843 msgid "Use _online tablebases" msgstr "" #: glade/PyChess.glade:1848 msgid "" "If set, PyChess will show game results for different moves in positions containing 6 or less pieces.\n" "It will search positions from http://www.k4it.de/" msgstr "" #: glade/PyChess.glade:1870 msgid "Opening, endgame" msgstr "" #: glade/PyChess.glade:1904 msgid "Use _analyzer" msgstr "Utilizează _analizator" #: glade/PyChess.glade:1946 msgid "" "The analyzer will run in the background and analyze the game. This is " "necessary for the hint mode to work" msgstr "" #: glade/PyChess.glade:1978 msgid "Use _inverted analyzer" msgstr "Utilizează analizator _inversat" #: glade/PyChess.glade:2020 msgid "" "The inverse analyzer will analyze the game as if your opponent was to move. " "This is necessary for the spy mode to work" msgstr "" #: glade/PyChess.glade:2096 msgid "Analyzing" msgstr "Se analizează" #: glade/PyChess.glade:2118 msgid "_Hints" msgstr "" #: glade/PyChess.glade:2263 msgid "Uninstall" msgstr "Dezinstalează" #: glade/PyChess.glade:2317 msgid "Ac_tive" msgstr "Ac_tiv" #: glade/PyChess.glade:2367 msgid "Installed Sidepanels" msgstr "Panouri laterale instalate" #: glade/PyChess.glade:2382 msgid "Side_panels" msgstr "_Panouri laterale" #: glade/PyChess.glade:2440 msgid "Light Squares :" msgstr "" #: glade/PyChess.glade:2479 msgid "Dark Squares :" msgstr "" #: glade/PyChess.glade:2515 msgid "Reset Default Colours" msgstr "" #: glade/PyChess.glade:2551 msgid "Board Colours" msgstr "" #: glade/PyChess.glade:2610 msgid "Chess Sets" msgstr "" #: glade/PyChess.glade:2634 msgid "Themes" msgstr "Teme" #: glade/PyChess.glade:2659 msgid "_Use sounds in PyChess" msgstr "_Utilizează sunete în PyChess" #: glade/PyChess.glade:2982 msgid "A player _checks:" msgstr "Un jucător dă șah:" #: glade/PyChess.glade:2997 msgid "A player _moves:" msgstr "Un jucător mută:" #: glade/PyChess.glade:3010 msgid "Game is _drawn:" msgstr "Jocul e remiză" #: glade/PyChess.glade:3025 msgid "Game is _lost:" msgstr "Jocu_l e pierdut:" #: glade/PyChess.glade:3040 msgid "Game is _won:" msgstr "Jocul este câștigat:" #: glade/PyChess.glade:3055 msgid "A player c_aptures:" msgstr "Un jucător c_apturează:" #: glade/PyChess.glade:3084 msgid "Game is _set-up:" msgstr "Jocul e _configurat:" #: glade/PyChess.glade:3136 msgid "_Observed moves:" msgstr "Mutări _observate" #: glade/PyChess.glade:3151 msgid "Observed _ends:" msgstr "Finalizări obs_ervate" #: glade/PyChess.glade:3265 msgid "Short on _time:" msgstr "" #: glade/PyChess.glade:3317 msgid "_Invalid move:" msgstr "_Mutare invalidă:" #: glade/PyChess.glade:3369 msgid "Activate alarm when _remaining sec is:" msgstr "" #: glade/PyChess.glade:3416 msgid "Play Sound When..." msgstr "Redă sunet când..." #: glade/PyChess.glade:3438 msgid "_Sounds" msgstr "_Sunete" #: glade/PyChess.glade:3463 msgid "_Auto save finished games" msgstr "_Auto salvează jocurile terminate" #: glade/PyChess.glade:3497 msgid "Save files to:" msgstr "Salvează fişiere în:" #: glade/PyChess.glade:3525 msgid "Use name format:" msgstr "" #: glade/PyChess.glade:3569 msgid "Names: #n1, #n2" msgstr "" #: glade/PyChess.glade:3582 msgid "Year, month, day: #y, #m, #d" msgstr "An, lună, zi: #y, #m, #d" #: glade/PyChess.glade:3619 msgid "Save elapsed move _times" msgstr "" #: glade/PyChess.glade:3644 msgid "Save analyzing engine _evaluation values" msgstr "" #: glade/PyChess.glade:3669 msgid "Save _own games only" msgstr "" #: glade/PyChess.glade:3698 msgid "Save" msgstr "Salvează" #: glade/PyChess.glade:3728 msgid "uci" msgstr "" #: glade/PyChess.glade:3731 msgid "xboard" msgstr "xboard" #: glade/PyChess.glade:3739 msgid "Manage engines" msgstr "" #: glade/PyChess.glade:3837 msgid "Command:" msgstr "" #: glade/PyChess.glade:3851 msgid "Protocol:" msgstr "Protocol:" #: glade/PyChess.glade:3865 msgid "Parameters:" msgstr "Parameteri:" #: glade/PyChess.glade:3878 msgid "Command line parameters needed by the engine." msgstr "" #: glade/PyChess.glade:3903 msgid "" "Engines use uci or xboard communication protocol to talk to the GUI.\n" "If it can use both you can set here which one you like." msgstr "" #: glade/PyChess.glade:3929 msgid "Working directory:" msgstr "" #: glade/PyChess.glade:3942 msgid "The directory where the engine will be started from." msgstr "" #: glade/saveGamesDialog.glade:7 msgid "Quit PyChess" msgstr "Ieși din PyChess" #: glade/saveGamesDialog.glade:24 lib/pychess/widgets/ionest.py:424 msgid "Close _without Saving" msgstr "Închide _fără a salva" #: glade/saveGamesDialog.glade:83 msgid "_Save %d documents" msgstr "_Salvează %d documente" #: glade/saveGamesDialog.glade:141 msgid "" "There are %d games with unsaved moves. Save changes before " "closing?" msgstr "Există %d jocuri cu mutări nesalvate. Salvează modificări înainte de închidere?" #: glade/saveGamesDialog.glade:161 msgid "Select the games you want to save:" msgstr "Alege jocurile pe care vrei să le salvezi:" #: glade/saveGamesDialog.glade:204 msgid "If you don't save, new changes to your games will be permanently lost." msgstr "Dacă nu salvezi, noile modificări către jocurile tale vor fi pierdute definitiv." #: glade/taskers.glade:126 msgid "_Opponent:" msgstr "A_dversat:" #: glade/taskers.glade:154 msgid "_Your Color:" msgstr "Culoarea _ta" #: glade/taskers.glade:219 msgid "_Start Game" msgstr "Începe _joc" #: glade/taskers.glade:338 msgid "Log on as G_uest" msgstr "Autentificare ca _oaspete" #: glade/taskers.glade:410 msgid "Ha_ndle:" msgstr "_Nume utilizator:" #: glade/taskers.glade:469 msgid "_Connect to server" msgstr "" #: glade/tipoftheday.glade:7 msgid "Tip Of The day" msgstr "Sfatul Zilei" #: glade/tipoftheday.glade:62 msgid "Show tips at startup" msgstr "Arată sfaturi la pornire" #: lib/pychess/Main.py:302 msgid "http://en.wikipedia.org/wiki/Chess" msgstr "http://ro.wikipedia.org/wiki/%C5%9Eah_%28joc%29" #: lib/pychess/Main.py:305 msgid "http://en.wikipedia.org/wiki/Rules_of_chess" msgstr "http://ro.wikipedia.org/wiki/%C5%9Eah_%28joc%29" #: lib/pychess/Main.py:370 lib/pychess/widgets/gamenanny.py:80 msgid "Welcome" msgstr "Bun venit" #: lib/pychess/Database/gamelist.py:40 msgid "Id" msgstr "Id" #: lib/pychess/Database/gamelist.py:40 msgid "W Elo" msgstr "" #: lib/pychess/Database/gamelist.py:40 msgid "B Elo" msgstr "" #: lib/pychess/Database/gamelist.py:41 msgid "Result" msgstr "Rezultat" #: lib/pychess/Database/gamelist.py:41 msgid "Event" msgstr "Eveniment" #: lib/pychess/Database/gamelist.py:41 msgid "Site" msgstr "" #: lib/pychess/Database/gamelist.py:41 msgid "Round" msgstr "Runda" #: lib/pychess/Database/gamelist.py:41 msgid "Date" msgstr "Dată" #: lib/pychess/Database/gamelist.py:41 msgid "ECO" msgstr "" #: lib/pychess/Database/gamelist.py:62 msgid "PyChess Game Database" msgstr "" #: lib/pychess/Database/PgnImport.py:188 #, python-format msgid "The game #%s can't be loaded, because of an error parsing FEN" msgstr "" #: lib/pychess/ic/FICSConnection.py:139 msgid "The connection was broken - got \"end of file\" message" msgstr "The connection was broken - got \"sfârșit de fișier\" message" #: lib/pychess/ic/FICSConnection.py:140 #, python-format msgid "'%s' is not a registered name" msgstr "'%s' nu e un nume înregistrat" #: lib/pychess/ic/FICSConnection.py:141 msgid "" "The entered password was invalid.\n" "If you forgot your password, go to http://www.freechess.org/password to request a new one over email." msgstr "" #: lib/pychess/ic/FICSConnection.py:145 #, python-format msgid "Sorry '%s' is already logged in" msgstr "Îmi pare rău, '%s' este deja autentificat" #: lib/pychess/ic/FICSConnection.py:146 #, python-format msgid "'%s' is a registered name. If it is yours, type the password." msgstr "'%s' este deja înregistrat. Dacă sunteți dumneavoastră tastaţi-vă parola." #: lib/pychess/ic/FICSConnection.py:147 msgid "" "Due to abuse problems, guest connections have been prevented.\n" "You can still register on http://www.freechess.org" msgstr "" #: lib/pychess/ic/FICSConnection.py:166 msgid "Connecting to server" msgstr "Conectare la server" #: lib/pychess/ic/FICSConnection.py:181 msgid "Logging on to server" msgstr "Autentificare pe server" #: lib/pychess/ic/FICSConnection.py:239 msgid "Setting up environment" msgstr "Configureaza mediul" #: lib/pychess/ic/FICSObjects.py:35 lib/pychess/ic/FICSObjects.py:47 #, python-format msgid "%(player)s is %(status)s" msgstr "" #: lib/pychess/ic/FICSObjects.py:46 msgid "not playing" msgstr "" #: lib/pychess/ic/FICSObjects.py:54 lib/pychess/ic/ICLounge.py:1136 #: lib/pychess/ic/ICLounge.py:2209 lib/pychess/ic/__init__.py:98 #: lib/pychess/widgets/newGameDialog.py:153 msgid "Blitz" msgstr "Bliț" #: lib/pychess/ic/FICSObjects.py:58 lib/pychess/ic/ICLounge.py:1137 #: lib/pychess/ic/ICLounge.py:2209 lib/pychess/ic/__init__.py:100 msgid "Lightning" msgstr "Fulger" #: lib/pychess/ic/FICSObjects.py:60 lib/pychess/Variants/atomic.py:15 msgid "Atomic" msgstr "" #: lib/pychess/ic/FICSObjects.py:62 lib/pychess/Variants/bughouse.py:9 msgid "Bughouse" msgstr "" #: lib/pychess/ic/FICSObjects.py:64 lib/pychess/Variants/crazyhouse.py:9 msgid "Crazyhouse" msgstr "" #: lib/pychess/ic/FICSObjects.py:66 lib/pychess/Variants/losers.py:9 msgid "Losers" msgstr "Pierzatori" #: lib/pychess/ic/FICSObjects.py:68 lib/pychess/Variants/suicide.py:12 msgid "Suicide" msgstr "Sinucidere" #: lib/pychess/ic/FICSObjects.py:70 lib/pychess/ic/__init__.py:129 msgid "Wild" msgstr "Wild" #: lib/pychess/ic/FICSObjects.py:117 msgid "Online" msgstr "Conectat" #: lib/pychess/ic/FICSObjects.py:118 lib/pychess/ic/FICSObjects.py:143 msgid "Offline" msgstr "Deconectat" #: lib/pychess/ic/FICSObjects.py:133 msgid "Available" msgstr "Disponibil" #: lib/pychess/ic/FICSObjects.py:135 msgid "Playing" msgstr "" #: lib/pychess/ic/FICSObjects.py:141 msgid "Idle" msgstr "" #: lib/pychess/ic/FICSObjects.py:145 msgid "Examining" msgstr "" #: lib/pychess/ic/FICSObjects.py:147 msgid "Not Available" msgstr "" #: lib/pychess/ic/FICSObjects.py:149 msgid "Running Simul Match" msgstr "" #: lib/pychess/ic/FICSObjects.py:151 msgid "In Tournament" msgstr "" #: lib/pychess/ic/FICSObjects.py:308 lib/pychess/ic/FICSObjects.py:492 #: lib/pychess/ic/ICLounge.py:2278 msgid "Unrated" msgstr "Neevaluat" #: lib/pychess/ic/FICSObjects.py:491 lib/pychess/ic/ICLounge.py:670 #: lib/pychess/ic/ICLounge.py:1358 lib/pychess/ic/ICLounge.py:1558 #: lib/pychess/ic/ICLounge.py:2113 msgid "Rated" msgstr "Evaluat" #: lib/pychess/ic/FICSObjects.py:498 lib/pychess/ic/ICLounge.py:2098 #, python-format msgid "%d min" msgstr "%d min" #: lib/pychess/ic/FICSObjects.py:500 #, python-format msgid " + %d sec" msgstr "" #: lib/pychess/ic/FICSObjects.py:517 #, python-format msgid "%(player)s plays %(color)s" msgstr "" #: lib/pychess/ic/FICSObjects.py:519 lib/pychess/ic/ICLounge.py:909 msgid "white" msgstr "alb" #: lib/pychess/ic/FICSObjects.py:519 lib/pychess/ic/ICLounge.py:909 msgid "black" msgstr "negru" #: lib/pychess/ic/FICSObjects.py:565 msgid "This is a continuation of an adjourned match" msgstr "" #: lib/pychess/ic/FICSObjects.py:654 msgid "Opponent Rating" msgstr "" #: lib/pychess/ic/FICSObjects.py:656 msgid "Manual Accept" msgstr "" #: lib/pychess/ic/FICSObjects.py:810 msgid "Private" msgstr "Privat" #: lib/pychess/ic/FICSObjects.py:930 lib/pychess/ic/ICLounge.py:527 #: lib/pychess/Savers/epd.py:139 msgid "Unknown" msgstr "Necunoscut" #: lib/pychess/ic/ICLogon.py:159 lib/pychess/ic/ICLogon.py:165 msgid "Connection Error" msgstr "Eroare la conectare" #: lib/pychess/ic/ICLogon.py:161 msgid "Log on Error" msgstr "Eroare autentificare" #: lib/pychess/ic/ICLogon.py:163 msgid "Connection was closed" msgstr "Conexiunea a fost închisă" #: lib/pychess/ic/ICLogon.py:169 msgid "Address Error" msgstr "Eroare adresă" #: lib/pychess/ic/ICLogon.py:172 msgid "Auto-logout" msgstr "Deconectare automată" #: lib/pychess/ic/ICLogon.py:173 msgid "You have been logged out because you were idle more than 60 minutes" msgstr "Ați fost deconectați pentru că ați fost inactive pentru mai mult de 60 minute." #: lib/pychess/ic/ICLounge.py:222 msgid "You have to set kibitz on to see bot messages here." msgstr "" #: lib/pychess/ic/ICLounge.py:241 msgid "" "You may only have 3 outstanding seeks at the same time. If you want to add a" " new seek you must clear your currently active seeks. Clear your seeks?" msgstr "" #: lib/pychess/ic/ICLounge.py:258 msgid "You can't touch this! You are examining a game." msgstr "" #: lib/pychess/ic/ICLounge.py:270 msgid " has declined your offer for a match" msgstr "a refuzat oferta dumneavoastră pentru o partidă" #: lib/pychess/ic/ICLounge.py:283 msgid " is censoring you" msgstr "" #: lib/pychess/ic/ICLounge.py:296 msgid " noplay listing you" msgstr "" #: lib/pychess/ic/ICLounge.py:311 msgid " uses a formula not fitting your match request:" msgstr "" #: lib/pychess/ic/ICLounge.py:325 msgid "to manual accept" msgstr "" #: lib/pychess/ic/ICLounge.py:327 msgid "to automatic accept" msgstr "" #: lib/pychess/ic/ICLounge.py:329 msgid "rating range now" msgstr "" #: lib/pychess/ic/ICLounge.py:330 msgid "Seek updated" msgstr "" #: lib/pychess/ic/ICLounge.py:342 msgid "Your seeks have been removed" msgstr "" #: lib/pychess/ic/ICLounge.py:363 msgid " has arrived" msgstr "a ajuns" #: lib/pychess/ic/ICLounge.py:370 msgid " has departed" msgstr "" #: lib/pychess/ic/ICLounge.py:374 msgid " is present" msgstr "este prezent" #: lib/pychess/ic/ICLounge.py:391 sidepanel/chatPanel.py:17 msgid "Chat" msgstr "Conversații" #: lib/pychess/ic/ICLounge.py:472 sidepanel/bookPanel.py:366 msgid "Win" msgstr "Victorie" #: lib/pychess/ic/ICLounge.py:472 sidepanel/bookPanel.py:360 msgid "Draw" msgstr "Remiză" #: lib/pychess/ic/ICLounge.py:472 sidepanel/bookPanel.py:363 msgid "Loss" msgstr "Pierdere" #: lib/pychess/ic/ICLounge.py:482 msgid "" "On FICS, your \"Wild\" rating encompasses all of the following variants at " "all time controls:\n" msgstr "Pe FICS, evaluarea ta \"Wild\" cuprinde toate variantele următoare pe toate timpurile:\n" #: lib/pychess/ic/ICLounge.py:494 msgid "Sanctions" msgstr "" #: lib/pychess/ic/ICLounge.py:499 msgid "Email" msgstr "Poștă electronică" #: lib/pychess/ic/ICLounge.py:504 msgid "Spent" msgstr "Utilizat" #: lib/pychess/ic/ICLounge.py:506 msgid "online in total" msgstr "total online" #: lib/pychess/ic/ICLounge.py:512 msgid "Ping" msgstr "Ping" #: lib/pychess/ic/ICLounge.py:517 msgid "Connecting" msgstr "Se conectează" #: lib/pychess/ic/ICLounge.py:544 msgid "" "You are currently logged in as a guest.\n" "A guest can't play rated games and therefore isn't able to play as many of the types of matches offered as a registered user. To register an account, go to http://www.freechess.org/Register/index.html." msgstr "" #: lib/pychess/ic/ICLounge.py:669 lib/pychess/ic/ICLounge.py:1136 msgid "Name" msgstr "Nume" #: lib/pychess/ic/ICLounge.py:670 lib/pychess/ic/ICLounge.py:1358 #: lib/pychess/ic/ICLounge.py:1558 msgid "Type" msgstr "Tip" #: lib/pychess/ic/ICLounge.py:670 lib/pychess/ic/ICLounge.py:1558 msgid "Clock" msgstr "Ceas" #: lib/pychess/ic/ICLounge.py:726 lib/pychess/ic/ICLounge.py:923 #: lib/pychess/Players/Human.py:250 msgid "Accept" msgstr "" #: lib/pychess/ic/ICLounge.py:728 msgid "Assess" msgstr "" #: lib/pychess/ic/ICLounge.py:734 msgid "Archived" msgstr "" #: lib/pychess/ic/ICLounge.py:848 #, python-format msgid "Active seeks: %d" msgstr "Căutări active: %d" #: lib/pychess/ic/ICLounge.py:897 #, python-format msgid "" " would like to resume your adjourned %(time)s %(gametype)s " "game." msgstr "" #: lib/pychess/ic/ICLounge.py:902 #, python-format msgid "" " challenges you to a %(time)s %(rated)s %(gametype)s game" msgstr "" #: lib/pychess/ic/ICLounge.py:907 #, python-format msgid " where %(player)s plays %(color)s." msgstr "" #: lib/pychess/ic/ICLounge.py:924 lib/pychess/Players/Human.py:251 msgid "Decline" msgstr "" #: lib/pychess/ic/ICLounge.py:1065 msgid " min" msgstr " min" #: lib/pychess/ic/ICLounge.py:1137 msgid "Status" msgstr "" #: lib/pychess/ic/ICLounge.py:1203 lib/pychess/ic/ICLounge.py:1233 #, python-format msgid "Players: %d" msgstr "Jucători: %d" #: lib/pychess/ic/ICLounge.py:1469 #, python-format msgid "Games running: %d" msgstr "Jocuri în desfășurare: %d" #: lib/pychess/ic/ICLounge.py:1559 msgid "Date/Time" msgstr "Dată/Oră" #: lib/pychess/ic/ICLounge.py:1614 #, python-format msgid "" " with whom you have an adjourned %(timecontrol)s %(gametype)s " "game is online." msgstr "" #: lib/pychess/ic/ICLounge.py:1635 msgid "Request Continuation" msgstr "" #: lib/pychess/ic/ICLounge.py:1637 msgid "Examine Adjourned Game" msgstr "" #: lib/pychess/ic/ICLounge.py:1965 msgid "" "The chain button is disabled because you are logged in as a guest. Guests " "can't establish ratings, and the chain button's state has no effect when " "there is no rating to which to tie \"Opponent Strength\" to" msgstr "" #: lib/pychess/ic/ICLounge.py:2006 msgid "Challenge: " msgstr "Provocare: " #: lib/pychess/ic/ICLounge.py:2044 msgid "If set you can refuse players accepting your seek" msgstr "" #: lib/pychess/ic/ICLounge.py:2048 lib/pychess/ic/ICLounge.py:2051 msgid "This option is not applicable because you're challenging a player" msgstr "Această opțiune nu este disponibilă când provoci un jucător" #: lib/pychess/ic/ICLounge.py:2064 msgid "Edit Seek: " msgstr "Modifică căutarea: " #: lib/pychess/ic/ICLounge.py:2095 #, python-format msgid "%(minutes)d min + %(gain)d sec/move" msgstr "%(minutes)d min + %(gain)d sec/mutare" #: lib/pychess/ic/ICLounge.py:2116 msgid "Manual" msgstr "Manual" #: lib/pychess/ic/ICLounge.py:2256 msgid "Any strength" msgstr "" #: lib/pychess/ic/ICLounge.py:2308 msgid "You can't play rated games because you are logged in as a guest" msgstr "Nu poți juca jocuri evaluate pentru că ești autentificat ca oaspete" #: lib/pychess/ic/ICLounge.py:2312 msgid "You can't play rated games because \"Untimed\" is checked, " msgstr "Nu poți juca jocuri evaloate pentru că \"Necronometrat\" este ales. " #: lib/pychess/ic/ICLounge.py:2313 msgid "and on FICS, untimed games can't be rated" msgstr "și pe FICS, jocurile necronometrate nu pot fi evaluate" #: lib/pychess/ic/ICLounge.py:2317 msgid "This option is not available because you're challenging a guest, " msgstr "Această opțiune nu este dispobilă pentru că provoci un oaspete, " #: lib/pychess/ic/ICLounge.py:2318 msgid "and guests can't play rated games" msgstr "iar oaspeții nu pot juca jocuri evaluate" #: lib/pychess/ic/ICLounge.py:2332 lib/pychess/Variants/shuffle.py:16 #: lib/pychess/widgets/newGameDialog.py:266 msgid "Shuffle" msgstr "Amestecă" #: lib/pychess/ic/ICLounge.py:2333 lib/pychess/widgets/newGameDialog.py:267 msgid "Other (standard rules)" msgstr "" #: lib/pychess/ic/ICLounge.py:2334 lib/pychess/widgets/newGameDialog.py:268 msgid "Other (non standard rules)" msgstr "" #: lib/pychess/ic/ICLounge.py:2421 msgid "You can't select a variant because \"Untimed\" is checked, " msgstr "Nu poți alege o variantă pentru ca \"Necronometrat\" este ales, " #: lib/pychess/ic/ICLounge.py:2422 msgid "and on FICS, untimed games have to be normal chess rules" msgstr "și pe FICS, jocurile necronometrate se joaca cu regulile normale" #: lib/pychess/ic/ICLounge.py:2454 msgid "Change Tolerance" msgstr "Modifică toleranța" #: lib/pychess/ic/__init__.py:102 msgid "Examined" msgstr "" #: lib/pychess/ic/__init__.py:103 msgid "Other" msgstr "Alte" #: lib/pychess/ic/__init__.py:182 msgid "Administrator" msgstr "Administrator" #: lib/pychess/ic/__init__.py:182 msgid "Blindfold Account" msgstr "Cont legat la ochi" #: lib/pychess/ic/__init__.py:182 msgid "Computer" msgstr "Calculator" #: lib/pychess/ic/__init__.py:183 msgid "Team Account" msgstr "Cont echipa" #: lib/pychess/ic/__init__.py:183 msgid "Unregistered" msgstr "Neînregistrat" #: lib/pychess/ic/__init__.py:183 msgid "Chess Advisor" msgstr "Consilier șah" #: lib/pychess/ic/__init__.py:184 msgid "Service Representative" msgstr "Reprezentant serviciu" #: lib/pychess/ic/__init__.py:184 msgid "Tournament Director" msgstr "Director turneu" #: lib/pychess/ic/__init__.py:184 msgid "Mamer Manager" msgstr "Director mamer" #: lib/pychess/ic/__init__.py:185 msgid "Grand Master" msgstr "Mare maestru internațional" #: lib/pychess/ic/__init__.py:185 msgid "International Master" msgstr "Maestru internațional" #: lib/pychess/ic/__init__.py:185 msgid "FIDE Master" msgstr "Maestru FIDE" #: lib/pychess/ic/__init__.py:186 msgid "Woman Grand Master" msgstr "" #: lib/pychess/ic/__init__.py:186 msgid "Woman International Master" msgstr "" #: lib/pychess/ic/__init__.py:186 msgid "Woman FIDE Master" msgstr "" #: lib/pychess/ic/__init__.py:187 msgid "Dummy Account" msgstr "" #: lib/pychess/ic/__init__.py:191 msgid "*" msgstr "*" #: lib/pychess/ic/__init__.py:191 lib/pychess/Utils/repr.py:14 msgid "B" msgstr "B" #: lib/pychess/ic/__init__.py:191 msgid "C" msgstr "C" #: lib/pychess/ic/__init__.py:192 msgid "T" msgstr "T" #: lib/pychess/ic/__init__.py:192 msgid "U" msgstr "U" #: lib/pychess/ic/__init__.py:192 msgid "CA" msgstr "CA" #: lib/pychess/ic/__init__.py:193 msgid "SR" msgstr "SR" #: lib/pychess/ic/__init__.py:193 msgid "TD" msgstr "TD" #: lib/pychess/ic/__init__.py:193 msgid "TM" msgstr "TM" #: lib/pychess/ic/__init__.py:194 msgid "GM" msgstr "" #: lib/pychess/ic/__init__.py:194 msgid "IM" msgstr "" #: lib/pychess/ic/__init__.py:194 msgid "FM" msgstr "" #: lib/pychess/ic/__init__.py:195 msgid "WGM" msgstr "" #: lib/pychess/ic/__init__.py:195 msgid "WIM" msgstr "" #: lib/pychess/ic/__init__.py:195 msgid "WFM" msgstr "" #: lib/pychess/ic/__init__.py:195 msgid "D" msgstr "" #: lib/pychess/ic/__init__.py:195 msgid "H" msgstr "" #: lib/pychess/ic/__init__.py:195 msgid "CM" msgstr "" #: lib/pychess/ic/__init__.py:195 msgid "FA" msgstr "" #: lib/pychess/ic/__init__.py:195 msgid "NM" msgstr "" #: lib/pychess/Players/CECPEngine.py:857 #, python-format msgid "The engine %s reports an error:" msgstr "" #: lib/pychess/Players/Human.py:20 msgid "Your opponent has offered you a draw." msgstr "" #: lib/pychess/Players/Human.py:21 msgid "" "Your opponent has offered you a draw. If you accept this offer, the game " "will end with a score of 1/2 - 1/2." msgstr "Adversarul v-a oferit o remiză. Dacă acceptați, jocul se va termina cu scorul 1/2 - 1/2." #: lib/pychess/Players/Human.py:23 msgid "Your opponent wants to abort the game." msgstr "" #: lib/pychess/Players/Human.py:24 msgid "" "Your opponent has asked that the game be aborted. If you accept this offer, " "the game will end with no rating change." msgstr "Adversarul a cerut ca jocul sa fie terminat. Dacă acceptați, jocul se va termina fără modificarea evaluarilor." #: lib/pychess/Players/Human.py:26 msgid "Your opponent wants to adjourn the game." msgstr "" #: lib/pychess/Players/Human.py:27 msgid "" "Your opponent has asked that the game be adjourned. If you accept this " "offer, the game will be adjourned and you can resume it later (when your " "opponent is online and both players agree to resume)." msgstr "" #: lib/pychess/Players/Human.py:29 #, python-format msgid "Your opponent wants to undo %s move(s)." msgstr "" #: lib/pychess/Players/Human.py:30 #, python-format msgid "" "Your opponent has asked that the last %s move(s) be undone. If you accept " "this offer, the game will continue from the earlier position." msgstr "Adversarul a cerut refacerea ultimei(lor %s) mutări." #: lib/pychess/Players/Human.py:32 msgid "Your opponent wants to pause the game." msgstr "" #: lib/pychess/Players/Human.py:33 msgid "" "Your opponent has asked that the game be paused. If you accept this offer, " "the game clock will be paused until both players agree to resume the game." msgstr "Adversul a cerut suspendarea jocului. Dacă acceptați ceasul jocului se va opri până când amandoi jucători sunt deacord să reia jocul." #: lib/pychess/Players/Human.py:35 msgid "Your opponent wants to resume the game." msgstr "" #: lib/pychess/Players/Human.py:36 msgid "" "Your opponent has asked that the game be resumed. If you accept this offer, " "the game clock will continue from where it was paused." msgstr "Adversarul a cerul reluarea jocului. Dacă acceptati ceasul jocului va continue de când a fost întrerupt." #: lib/pychess/Players/Human.py:40 msgid "The resignation" msgstr "Abdicarea" #: lib/pychess/Players/Human.py:41 msgid "The flag call" msgstr "" #: lib/pychess/Players/Human.py:42 msgid "The draw offer" msgstr "Oferta de remiză" #: lib/pychess/Players/Human.py:43 msgid "The abort offer" msgstr "Oferta de întrerupere" #: lib/pychess/Players/Human.py:44 msgid "The adjourn offer" msgstr "Oferta de suspendare" #: lib/pychess/Players/Human.py:45 msgid "The pause offer" msgstr "Oferta de întrerupere" #: lib/pychess/Players/Human.py:46 msgid "The resume offer" msgstr "Oferta de reluare" #: lib/pychess/Players/Human.py:47 msgid "The offer to switch sides" msgstr "Oferta de schimbare a părții" #: lib/pychess/Players/Human.py:48 msgid "The takeback offer" msgstr "Oferta de revenire" #: lib/pychess/Players/Human.py:52 msgid "resign" msgstr "să renunțați" #: lib/pychess/Players/Human.py:53 msgid "call your opponents flag" msgstr "" #: lib/pychess/Players/Human.py:54 msgid "offer a draw" msgstr "să oferiți remiză" #: lib/pychess/Players/Human.py:55 msgid "offer an abort" msgstr "oferă oprirea jocului" #: lib/pychess/Players/Human.py:56 msgid "offer to adjourn" msgstr "oferă suspendarea jocului" #: lib/pychess/Players/Human.py:57 msgid "offer a pause" msgstr "să oferiți pauză" #: lib/pychess/Players/Human.py:58 msgid "offer to resume" msgstr "să oferiți reluare" #: lib/pychess/Players/Human.py:59 msgid "offer to switch sides" msgstr "să oferiți schimbați partea" #: lib/pychess/Players/Human.py:60 msgid "offer a takeback" msgstr "oferă refacerea ultimei mutări" #: lib/pychess/Players/Human.py:61 msgid "ask your opponent to move" msgstr "să cereți adversarului să mute" #: lib/pychess/Players/Human.py:66 msgid "Your opponent is not out of time." msgstr "Adversarul nu a depășit timpul." #: lib/pychess/Players/Human.py:68 msgid "The clock hasn't been started yet." msgstr "Cronomentrul nu a fost pornit." #: lib/pychess/Players/Human.py:70 msgid "You can't switch colors during the game." msgstr "Nu puteți schimba partea în timpul jocului." #: lib/pychess/Players/Human.py:72 msgid "You have tried to undo too many moves." msgstr "Ați încercat să refaceți prea multe mutări." #: lib/pychess/Players/Human.py:180 msgid "Your opponent asks you to hurry!" msgstr "Adversarul îți cere să te grăbești!" #: lib/pychess/Players/Human.py:181 msgid "" "Generally this means nothing, as the game is time-based, but if you want to " "please your opponent, perhaps you should get going." msgstr "" #: lib/pychess/Players/Human.py:259 #, python-format msgid "%s was declined by your opponent" msgstr "%s a fost respinsă de adversar." #: lib/pychess/Players/Human.py:260 #, python-format msgid "Resend %s?" msgstr "" #: lib/pychess/Players/Human.py:267 msgid "Resend" msgstr "" #: lib/pychess/Players/Human.py:275 #, python-format msgid "%s was withdrawn by your opponent" msgstr "%s a fost restrasă de către adversar" #: lib/pychess/Players/Human.py:276 msgid "Your opponent seems to have changed their mind." msgstr "" #: lib/pychess/Players/Human.py:290 #, python-format msgid "Unable to accept %s" msgstr "Nu se poate accepta %s" #: lib/pychess/Players/Human.py:291 msgid "Probably because it has been withdrawn." msgstr "" #: lib/pychess/Players/Human.py:298 #, python-format msgid "%s returns an error" msgstr "%s întoarce o eroare" #: lib/pychess/Savers/chessalpha2.py:12 msgid "Chess Alpha 2 Diagram" msgstr "Diagrama Chess Alpha 2" #: lib/pychess/Savers/chesspastebin.py:39 msgid "Game shared at " msgstr "" #: lib/pychess/Savers/chesspastebin.py:41 msgid "(Link is available on clipboard.)" msgstr "" #: lib/pychess/Savers/database.py:19 msgid "PyChess database" msgstr "" #: lib/pychess/Savers/epd.py:12 msgid "Chess Position" msgstr "Poziție de șah" #: lib/pychess/Savers/fen.py:12 msgid "Simple Chess Position" msgstr "Poziție simplă de șah" #: lib/pychess/Savers/fen.py:44 lib/pychess/Savers/pgn.py:329 msgid "The game can't be loaded, because of an error parsing FEN" msgstr "" #: lib/pychess/Savers/pgnbase.py:100 #, python-format msgid "" "The game can't be read to end, because of an error parsing move %(moveno)s " "'%(notation)s'." msgstr "" #: lib/pychess/Savers/pgnbase.py:102 #, python-format msgid "The move failed because %s." msgstr "Mutarea a eșuat pentru că %s." #: lib/pychess/Savers/pgnbase.py:110 #, python-format msgid "Error parsing move %(moveno)s %(mstr)s" msgstr "" #: lib/pychess/Savers/pgn.py:28 msgid "Chess Game" msgstr "Joc de șah" #: lib/pychess/Savers/pgn.py:362 msgid "Invalid move." msgstr "Mutare invalidă." #: lib/pychess/Savers/png.py:15 msgid "Png image" msgstr "Imagine png" #: lib/pychess/System/ping.py:31 msgid "Destination Host Unreachable" msgstr "Serverul destinație nu e disponibil" #: lib/pychess/System/ping.py:74 msgid "Died" msgstr "A murit" #: lib/pychess/Utils/GameModel.py:147 msgid "Local Event" msgstr "Eveniment local" #: lib/pychess/Utils/GameModel.py:148 msgid "Local Site" msgstr "Site local" #: lib/pychess/Utils/repr.py:12 msgid "Pawn" msgstr "Pion" #: lib/pychess/Utils/repr.py:14 msgid "P" msgstr "P" #: lib/pychess/Utils/repr.py:14 msgid "N" msgstr "N" #: lib/pychess/Utils/repr.py:14 msgid "R" msgstr "R" #: lib/pychess/Utils/repr.py:14 msgid "Q" msgstr "Q" #: lib/pychess/Utils/repr.py:14 msgid "K" msgstr "K" #: lib/pychess/Utils/repr.py:17 msgid "The game ended in a draw" msgstr "Partida s-a încheiat cu remiză" #: lib/pychess/Utils/repr.py:18 #, python-format msgid "%(white)s won the game" msgstr "%(white)s a câștigat jocul" #: lib/pychess/Utils/repr.py:19 #, python-format msgid "%(black)s won the game" msgstr "%(black)s a câștigat jocul" #: lib/pychess/Utils/repr.py:20 msgid "The game has been killed" msgstr "Programul a fost terminat" #: lib/pychess/Utils/repr.py:21 msgid "The game has been adjourned" msgstr "Jocul a fost suspendat" #: lib/pychess/Utils/repr.py:22 msgid "The game has been aborted" msgstr "Jocul a fost abandonat" #: lib/pychess/Utils/repr.py:26 msgid "Because neither player has sufficient material to mate" msgstr "Fiindcă niciunul din jucător nu are suficient material pentru a da șah mat" #: lib/pychess/Utils/repr.py:27 msgid "Because the same position was repeated three times in a row" msgstr "Pentru că aceeași poziție a fost repetată de trei ori la rând" #: lib/pychess/Utils/repr.py:28 msgid "Because the last 50 moves brought nothing new" msgstr "Deoarece ultimele 50 de mutari nu au schimbat situația jocului" #: lib/pychess/Utils/repr.py:29 msgid "Because both players ran out of time" msgstr "Pentru că amândoi jucători au rămas fără timp" #: lib/pychess/Utils/repr.py:30 #, python-format msgid "Because %(mover)s stalemated" msgstr "Because %(mover)s a fost pus în pat." #: lib/pychess/Utils/repr.py:31 msgid "Because both players agreed to a draw" msgstr "" #: lib/pychess/Utils/repr.py:32 lib/pychess/Utils/repr.py:42 msgid "Because of adjudication by an admin" msgstr "Din cauza deciziei unui administrator" #: lib/pychess/Utils/repr.py:33 msgid "Because the game exceed the max length" msgstr "Pentru că jocul a depășit lungimea maximă" #: lib/pychess/Utils/repr.py:34 #, python-format msgid "" "Because %(white)s ran out of time and %(black)s has insufficient material to" " mate" msgstr "Pentru că %(white)s a rămas fără timp și %(black)s nu are suficient material pentru a da șah mat" #: lib/pychess/Utils/repr.py:35 #, python-format msgid "" "Because %(black)s ran out of time and %(white)s has insufficient material to" " mate" msgstr "Pentru că %(black)s a rămas fără timp și %(white)s nu are suficient material pentru a da șah mat" #: lib/pychess/Utils/repr.py:36 msgid "Because both players have the same amount of pieces" msgstr "" #: lib/pychess/Utils/repr.py:38 #, python-format msgid "Because %(loser)s resigned" msgstr "Pentru că %(loser)s a renunțat" #: lib/pychess/Utils/repr.py:39 #, python-format msgid "Because %(loser)s ran out of time" msgstr "Pentru că %(loser)s a rămas fără timp" #: lib/pychess/Utils/repr.py:40 #, python-format msgid "Because %(loser)s was checkmated" msgstr "Pentru că %(loser)s a fost pus în șah mat" #: lib/pychess/Utils/repr.py:41 #, python-format msgid "Because %(loser)s disconnected" msgstr "Pentru că %(loser)s s-a deconectat" #: lib/pychess/Utils/repr.py:43 #, python-format msgid "Because %(winner)s has fewer pieces" msgstr "" #: lib/pychess/Utils/repr.py:44 #, python-format msgid "Because %(winner)s lost all pieces" msgstr "" #: lib/pychess/Utils/repr.py:45 #, python-format msgid "Because %(loser)s king exploded" msgstr "" #: lib/pychess/Utils/repr.py:46 #, python-format msgid "Because %(winner)s king reached the center" msgstr "" #: lib/pychess/Utils/repr.py:47 #, python-format msgid "Because %(winner)s was giving check 3 times" msgstr "" #: lib/pychess/Utils/repr.py:49 msgid "Because a player lost connection" msgstr "Pentru că un jucător s-a deconectat" #: lib/pychess/Utils/repr.py:50 msgid "Because both players agreed to an adjournment" msgstr "" #: lib/pychess/Utils/repr.py:51 msgid "Because the server was shut down" msgstr "" #: lib/pychess/Utils/repr.py:52 msgid "" "Because a player lost connection and the other player requested adjournment" msgstr "Pentru că un jucător a pierdut conexiunea, iar celalt jocător a cerut o amânare" #: lib/pychess/Utils/repr.py:53 #, python-format msgid "" "Because %(black)s lost connection to the server and %(white)s requested " "adjournment" msgstr "" #: lib/pychess/Utils/repr.py:54 #, python-format msgid "" "Because %(white)s lost connection to the server and %(black)s requested " "adjournment" msgstr "" #: lib/pychess/Utils/repr.py:55 #, python-format msgid "Because %(white)s lost connection to the server" msgstr "" #: lib/pychess/Utils/repr.py:56 #, python-format msgid "Because %(black)s lost connection to the server" msgstr "" #: lib/pychess/Utils/repr.py:58 msgid "Because of adjudication by an admin. No rating changes have occurred." msgstr "" #: lib/pychess/Utils/repr.py:59 msgid "" "Because both players agreed to abort the game. No rating changes have " "occurred." msgstr "" #: lib/pychess/Utils/repr.py:60 msgid "Because of courtesy by a player. No rating changes have occurred." msgstr "" #: lib/pychess/Utils/repr.py:61 msgid "" "Because a player aborted the game. Either player can abort the game without " "the other's consent before the second move. No rating changes have occurred." msgstr "" #: lib/pychess/Utils/repr.py:62 msgid "" "Because a player disconnected and there are too few moves to warrant " "adjournment. No rating changes have occurred." msgstr "" #: lib/pychess/Utils/repr.py:63 msgid "Because the server was shut down. No rating changes have occurred." msgstr "" #: lib/pychess/Utils/repr.py:65 #, python-format msgid "Because the %(white)s engine died" msgstr "Pentru că motorul de șah %(white)s a murit" #: lib/pychess/Utils/repr.py:66 #, python-format msgid "Because the %(black)s engine died" msgstr "" #: lib/pychess/Utils/repr.py:67 msgid "Because the connection to the server was lost" msgstr "Pentru că conexiunea către server a fost pierdută" #: lib/pychess/Utils/repr.py:68 msgid "The reason is unknown" msgstr "Motivul este necunoscut" #: lib/pychess/Utils/TimeModel.py:229 msgid "min" msgstr "" #: lib/pychess/Utils/TimeModel.py:231 msgid "sec" msgstr "" #: lib/pychess/Variants/asean.py:12 msgid "" "ASEAN: http://www.ncf-" "phil.org/downloadables/2014/May/Asean_chess/Laws_of_ASEAN_Chess_2011_Nov_26.doc" msgstr "" #: lib/pychess/Variants/asean.py:13 msgid "ASEAN" msgstr "" #: lib/pychess/Variants/asean.py:33 msgid "Makruk: http://en.wikipedia.org/wiki/Makruk" msgstr "" #: lib/pychess/Variants/asean.py:34 msgid "Makruk" msgstr "" #: lib/pychess/Variants/asean.py:60 msgid "Cambodian: http://www.khmerinstitute.org/culture/ok.html" msgstr "" #: lib/pychess/Variants/asean.py:61 msgid "Cambodian" msgstr "" #: lib/pychess/Variants/asean.py:86 msgid "" "Ai-Wok: http://www.open-" "aurec.com/wbforum/viewtopic.php?p=199364&sid=20963a1de2c164050de019e5ed6bf7c4#p199364" msgstr "" #: lib/pychess/Variants/asean.py:87 msgid "Ai-Wok" msgstr "" #: lib/pychess/Variants/asean.py:111 msgid "Sittuyin: http://en.wikipedia.org/wiki/Sittuyin" msgstr "" #: lib/pychess/Variants/asean.py:112 msgid "Sittuyin" msgstr "" #: lib/pychess/Variants/asymmetricrandom.py:12 msgid "" "FICS wild/4: http://www.freechess.org/Help/HelpFiles/wild.html\n" "* Randomly chosen pieces (two queens or three rooks possible)\n" "* Exactly one king of each color\n" "* Pieces placed randomly behind the pawns, SUBJECT TO THE CONSTRAINT THAT THE BISHOPS ARE BALANCED\n" "* No castling\n" "* Black's arrangement DOES NOT mirrors white's" msgstr "" #: lib/pychess/Variants/asymmetricrandom.py:18 msgid "Asymmetric Random" msgstr "Aleator asimetric" #: lib/pychess/Variants/atomic.py:14 msgid "FICS atomic: http://www.freechess.org/Help/HelpFiles/atomic.html" msgstr "" #: lib/pychess/Variants/blindfold.py:7 msgid "" "Classic chess rules with hidden figurines\n" "http://en.wikipedia.org/wiki/Blindfold_chess" msgstr "" #: lib/pychess/Variants/blindfold.py:9 #: lib/pychess/widgets/newGameDialog.py:264 msgid "Blindfold" msgstr "Legat la ochi" #: lib/pychess/Variants/blindfold.py:18 msgid "" "Classic chess rules with hidden pawns\n" "http://en.wikipedia.org/wiki/Blindfold_chess" msgstr "" #: lib/pychess/Variants/blindfold.py:20 msgid "Hidden pawns" msgstr "" #: lib/pychess/Variants/blindfold.py:29 msgid "" "Classic chess rules with hidden pieces\n" "http://en.wikipedia.org/wiki/Blindfold_chess" msgstr "" #: lib/pychess/Variants/blindfold.py:31 msgid "Hidden pieces" msgstr "" #: lib/pychess/Variants/blindfold.py:40 msgid "" "Classic chess rules with all pieces white\n" "http://en.wikipedia.org/wiki/Blindfold_chess" msgstr "" #: lib/pychess/Variants/blindfold.py:42 msgid "All white" msgstr "" #: lib/pychess/Variants/bughouse.py:8 msgid "FICS bughouse: http://www.freechess.org/Help/HelpFiles/bughouse.html" msgstr "" #: lib/pychess/Variants/corner.py:12 msgid "" "http://brainking.com/en/GameRules?tp=2\n" "* Placement of the pieces on the 1st and 8th row are randomized\n" "* The king is in the right hand corner\n" "* Bishops must start on opposite color squares\n" "* Black's starting position is obtained by rotating white's position 180 degrees around the board's center\n" "* No castling" msgstr "" #: lib/pychess/Variants/corner.py:18 msgid "Corner" msgstr "Colț" #: lib/pychess/Variants/crazyhouse.py:8 msgid "" "FICS crazyhouse: http://www.freechess.org/Help/HelpFiles/crazyhouse.html" msgstr "" #: lib/pychess/Variants/euroshogi.py:9 msgid "EuroShogi: http://en.wikipedia.org/wiki/EuroShogi" msgstr "" #: lib/pychess/Variants/euroshogi.py:10 msgid "EuroShogi" msgstr "" #: lib/pychess/Variants/fischerandom.py:18 msgid "" "http://en.wikipedia.org/wiki/Chess960\n" "FICS wild/fr: http://www.freechess.org/Help/HelpFiles/wild.html" msgstr "" #: lib/pychess/Variants/fischerandom.py:20 msgid "Fischer Random" msgstr "Fischer aleator" #: lib/pychess/Variants/kingofthehill.py:8 msgid "" "Bringing your king legally to the center (e4, d4, e5, d5) instantly wins the game!\n" "Normal rules apply in other cases and checkmate also ends the game." msgstr "" #: lib/pychess/Variants/kingofthehill.py:10 msgid "King of the hill" msgstr "" #: lib/pychess/Variants/knightodds.py:8 msgid "One player starts with one less knight piece" msgstr "" #: lib/pychess/Variants/knightodds.py:9 msgid "Knight odds" msgstr "Cotele calului" #: lib/pychess/Variants/losers.py:8 msgid "FICS losers: http://www.freechess.org/Help/HelpFiles/losers_chess.html" msgstr "" #: lib/pychess/Variants/normal.py:4 msgid "" "Classic chess rules\n" "http://en.wikipedia.org/wiki/Chess" msgstr "" #: lib/pychess/Variants/normal.py:6 lib/pychess/widgets/newGameDialog.py:157 msgid "Normal" msgstr "Normal" #: lib/pychess/Variants/pawnodds.py:8 msgid "One player starts with one less pawn piece" msgstr "" #: lib/pychess/Variants/pawnodds.py:9 msgid "Pawn odds" msgstr "Cotele pionului" #: lib/pychess/Variants/pawnspassed.py:11 msgid "" "FICS wild/8a: http://www.freechess.org/Help/HelpFiles/wild.html\n" "White pawns start on 5th rank and black pawns on the 4th rank" msgstr "" #: lib/pychess/Variants/pawnspassed.py:13 msgid "Pawns Passed" msgstr "" #: lib/pychess/Variants/pawnspushed.py:10 msgid "" "FICS wild/8: http://www.freechess.org/Help/HelpFiles/wild.html\n" "Pawns start on 4th and 5th ranks rather than 2nd and 7th" msgstr "" #: lib/pychess/Variants/pawnspushed.py:12 msgid "Pawns Pushed" msgstr "" #: lib/pychess/Variants/queenodds.py:8 msgid "One player starts with one less queen piece" msgstr "" #: lib/pychess/Variants/queenodds.py:9 msgid "Queen odds" msgstr "Cotele reginei" #: lib/pychess/Variants/randomchess.py:11 msgid "" "FICS wild/3: http://www.freechess.org/Help/HelpFiles/wild.html\n" "* Randomly chosen pieces (two queens or three rooks possible)\n" "* Exactly one king of each color\n" "* Pieces placed randomly behind the pawns\n" "* No castling\n" "* Black's arrangement mirrors white's" msgstr "" #: lib/pychess/Variants/randomchess.py:17 #: lib/pychess/widgets/TaskerManager.py:155 msgid "Random" msgstr "Aleator" #: lib/pychess/Variants/rookodds.py:8 msgid "One player starts with one less rook piece" msgstr "" #: lib/pychess/Variants/rookodds.py:9 msgid "Rook odds" msgstr "Cotele turei" #: lib/pychess/Variants/shuffle.py:11 msgid "" "xboard nocastle: http://home.hccnet.nl/h.g.muller/engine-intf.html#8\n" "FICS wild/2: http://www.freechess.org/Help/HelpFiles/wild.html\n" "* Random arrangement of the pieces behind the pawns\n" "* No castling\n" "* Black's arrangement mirrors white's" msgstr "" #: lib/pychess/Variants/suicide.py:11 msgid "" "FICS suicide: http://www.freechess.org/Help/HelpFiles/suicide_chess.html" msgstr "" #: lib/pychess/Variants/theban.py:10 msgid "" "Variant developed by Kai Laskos: " "http://talkchess.com/forum/viewtopic.php?t=40990" msgstr "" #: lib/pychess/Variants/theban.py:11 msgid "Theban" msgstr "" #: lib/pychess/Variants/threecheck.py:10 msgid "Win by giving check 3 times" msgstr "" #: lib/pychess/Variants/threecheck.py:11 msgid "Three-check" msgstr "" #: lib/pychess/Variants/upsidedown.py:10 msgid "" "FICS wild/5: http://www.freechess.org/Help/HelpFiles/wild.html\n" "http://en.wikipedia.org/wiki/Chess_variant#Chess_with_different_starting_positions\n" "Pawns start on their 7th rank rather than their 2nd rank!" msgstr "" #: lib/pychess/Variants/upsidedown.py:13 msgid "Upside Down" msgstr "Răsturnat" #: lib/pychess/Variants/wildcastle.py:10 msgid "" "xboard wildcastle http://home.hccnet.nl/h.g.muller/engine-intf.html#8\n" "FICS wild/0: http://www.freechess.org/Help/HelpFiles/wild.html\n" "* White has the typical set-up at the start.\n" "* Black's pieces are the same, except that the King and Queen are reversed,\n" "* so they are not on the same files as White's King and Queen.\n" "* Castling is done similarly to normal chess:\n" "* o-o-o indicates long castling and o-o short castling." msgstr "" #: lib/pychess/Variants/wildcastle.py:17 msgid "Wildcastle" msgstr "" #: lib/pychess/Variants/wildcastleshuffle.py:11 msgid "" "xboard wildcastle http://home.hccnet.nl/h.g.muller/engine-intf.html#8\n" "FICS wild/1: http://www.freechess.org/Help/HelpFiles/wild.html\n" "* In this variant both sides have the same set of pieces as in normal chess.\n" "* The white king starts on d1 or e1 and the black king starts on d8 or e8,\n" "* and the rooks are in their usual positions.\n" "* Bishops are always on opposite colors.\n" "* Subject to these constraints the position of the pieces on their first ranks is random.\n" "* Castling is done similarly to normal chess:\n" "* o-o-o indicates long castling and o-o short castling." msgstr "" #: lib/pychess/Variants/wildcastleshuffle.py:20 msgid "Wildcastle shuffle" msgstr "" #: lib/pychess/widgets/analyzegameDialog.py:85 msgid "Game analyzing in progress..." msgstr "" #: lib/pychess/widgets/analyzegameDialog.py:86 msgid "Do you want to abort it?" msgstr "" #: lib/pychess/widgets/analyzegameDialog.py:95 #: lib/pychess/widgets/gamewidget.py:202 lib/pychess/widgets/gamewidget.py:320 msgid "Abort" msgstr "" #: lib/pychess/widgets/ChatView.py:125 msgid "Observers" msgstr "" #: lib/pychess/widgets/ChatWindow.py:222 msgid "You have opened no conversations yet" msgstr "Nu ați deschis nicio conversați încă" #: lib/pychess/widgets/ChatWindow.py:254 msgid "Only registered users may talk to this channel" msgstr "Doar utilizatorii înregistrați poti vorbi pe acest canal" #: lib/pychess/widgets/ChatWindow.py:312 msgid "No conversation's selected" msgstr "Nicio conversație nu a fost selectată" #: lib/pychess/widgets/ChatWindow.py:350 msgid "Loading player data" msgstr "Se încarcă datele jucătorului" #: lib/pychess/widgets/ChatWindow.py:400 msgid "Receiving list of players" msgstr "" #: lib/pychess/widgets/ChatWindow.py:518 msgid "Friends" msgstr "Prieteni" #: lib/pychess/widgets/ChatWindow.py:529 msgid "Admin" msgstr "" #: lib/pychess/widgets/ChatWindow.py:540 msgid "More channels" msgstr "Mai multe canale" #: lib/pychess/widgets/ChatWindow.py:548 msgid "More players" msgstr "Mai mulți jucători" #: lib/pychess/widgets/ChatWindow.py:558 msgid "Computers" msgstr "" #: lib/pychess/widgets/ChatWindow.py:568 msgid "BlindFold" msgstr "" #: lib/pychess/widgets/ChatWindow.py:578 msgid "Guests" msgstr "" #: lib/pychess/widgets/ChatWindow.py:805 msgid "Conversations" msgstr "Conversații" #: lib/pychess/widgets/ChatWindow.py:807 msgid "Conversation info" msgstr "Informații desre coversație" #: lib/pychess/widgets/enginesDialog.py:152 msgid "Select engine" msgstr "Selectează motorul" #: lib/pychess/widgets/enginesDialog.py:156 msgid "Executable files" msgstr "" #: lib/pychess/widgets/enginesDialog.py:176 #: lib/pychess/widgets/enginesDialog.py:210 #: lib/pychess/widgets/enginesDialog.py:235 #, python-format msgid "Unable to add %s" msgstr "" #: lib/pychess/widgets/enginesDialog.py:177 msgid "wine not installed" msgstr "wine nu este instalat" #: lib/pychess/widgets/enginesDialog.py:211 #: lib/pychess/widgets/enginesDialog.py:236 msgid "There is something wrong with this executable" msgstr "" #: lib/pychess/widgets/enginesDialog.py:266 msgid "Select working directory" msgstr "" #: lib/pychess/widgets/gamenanny.py:115 #, python-format msgid " invalid engine move: %s" msgstr "" #: lib/pychess/widgets/gamenanny.py:134 msgid "Offer Rematch" msgstr "Oferiți revanșă" #: lib/pychess/widgets/gamenanny.py:136 lib/pychess/widgets/gamenanny.py:147 #, python-format msgid "Observe %s" msgstr "" #: lib/pychess/widgets/gamenanny.py:168 msgid "Play Rematch" msgstr "Jucați revanșă" #: lib/pychess/widgets/gamenanny.py:171 msgid "Undo one move" msgstr "Refă o mutare" #: lib/pychess/widgets/gamenanny.py:173 msgid "Undo two moves" msgstr "Refă două mutări" #: lib/pychess/widgets/gamenanny.py:203 msgid "The game is paused" msgstr "" #: lib/pychess/widgets/gamenanny.py:221 lib/pychess/widgets/gamenanny.py:222 msgid "Loaded game" msgstr "Joc încărcat" #: lib/pychess/widgets/gamenanny.py:228 msgid "Saved game" msgstr "Joc salvat" #: lib/pychess/widgets/gamenanny.py:232 msgid "Analyzer started" msgstr "" #: lib/pychess/widgets/gamenanny.py:281 msgid "You sent an abort offer" msgstr "" #: lib/pychess/widgets/gamenanny.py:283 msgid "You sent an adjournment offer" msgstr "" #: lib/pychess/widgets/gamenanny.py:285 msgid "You sent a draw offer" msgstr "Ai trimis o ofertă de remiză" #: lib/pychess/widgets/gamenanny.py:287 msgid "You sent a pause offer" msgstr "" #: lib/pychess/widgets/gamenanny.py:289 msgid "You sent a resume offer" msgstr "" #: lib/pychess/widgets/gamenanny.py:291 msgid "You sent an undo offer" msgstr "" #: lib/pychess/widgets/gamenanny.py:293 msgid "You asked your opponent to move" msgstr "" #: lib/pychess/widgets/gamenanny.py:305 #, python-format msgid "Engine, %s, has died" msgstr "Motorul, %s, a murit" #: lib/pychess/widgets/gamenanny.py:306 msgid "" "PyChess has lost connection to the engine, probably because it has died.\n" "\n" "You can try to start a new game with the engine, or try to play against another one." msgstr "PyChess a pierdut legătura cu motorul; probabil acesta s-a oprit.\n\nPuteți incerca să porniți un joc nou cu motorul sau să jucați împotriva altuia." #: lib/pychess/widgets/gamewidget.py:204 msgid "" "This game can be automatically aborted without rating loss because there has" " not yet been two moves made" msgstr "" #: lib/pychess/widgets/gamewidget.py:206 msgid "Offer Abort" msgstr "" #: lib/pychess/widgets/gamewidget.py:208 msgid "" "Your opponent must agree to abort the game because there has been two or " "more moves made" msgstr "" #: lib/pychess/widgets/gamewidget.py:226 msgid "This game can not be adjourned because one or both players are guests" msgstr "" #: lib/pychess/widgets/gamewidget.py:243 msgid "Claim Draw" msgstr "" #: lib/pychess/widgets/gamewidget.py:325 msgid "Pause" msgstr "Pauză" #: lib/pychess/widgets/gamewidget.py:326 msgid "Resume" msgstr "" #: lib/pychess/widgets/gamewidget.py:328 msgid "Offer Pause" msgstr "" #: lib/pychess/widgets/gamewidget.py:329 msgid "Offer Resume" msgstr "" #: lib/pychess/widgets/gamewidget.py:333 msgid "Undo" msgstr "Înapoi" #: lib/pychess/widgets/gamewidget.py:335 msgid "Offer Undo" msgstr "" #: lib/pychess/widgets/gamewidget.py:550 msgid " has lagged for 30 seconds" msgstr "" #: lib/pychess/widgets/gamewidget.py:566 msgid " is lagging heavily but hasn't disconnected" msgstr "" #: lib/pychess/widgets/gamewidget.py:567 msgid "Continue to wait for opponent, or try to adjourn the game?" msgstr "" #: lib/pychess/widgets/gamewidget.py:575 msgid "Wait" msgstr "Aşteaptă" #: lib/pychess/widgets/gamewidget.py:576 msgid "Adjourn" msgstr "" #: lib/pychess/widgets/gamewidget.py:648 msgid "Jump to initial position" msgstr "Revino poziția inițială" #: lib/pychess/widgets/gamewidget.py:653 msgid "Step back one move" msgstr "Revino o mutare înapoi" #: lib/pychess/widgets/gamewidget.py:658 msgid "Go back to the main line" msgstr "" #: lib/pychess/widgets/gamewidget.py:664 msgid "Step forward one move" msgstr "Revino o mutare înainte" #: lib/pychess/widgets/gamewidget.py:669 msgid "Jump to latest position" msgstr "Revino la ultima mutare" #: lib/pychess/widgets/gamewidget.py:903 msgid "PyChess was unable to load your panel settings" msgstr "PyChess nu a putut încărca setările dumneavoastră de panou" #: lib/pychess/widgets/gamewidget.py:904 msgid "" "Your panel settings have been reset. If this problem repeats, you should " "report it to the developers" msgstr "Setările dumneavoastră de panou au fost resetate. Dacă problema persistă, ar trebui să o raportați dezvoltatorilor." #: lib/pychess/widgets/ionest.py:67 lib/pychess/widgets/newGameDialog.py:389 #: lib/pychess/widgets/TaskerManager.py:210 msgid "You" msgstr "Dumneavoastră" #: lib/pychess/widgets/ionest.py:70 lib/pychess/widgets/newGameDialog.py:390 #: lib/pychess/widgets/preferencesDialog.py:61 #: lib/pychess/widgets/TaskerManager.py:213 msgid "Guest" msgstr "Oaspete" #: lib/pychess/widgets/ionest.py:93 msgid "Error loading game" msgstr "" #: lib/pychess/widgets/ionest.py:127 lib/pychess/widgets/newGameDialog.py:480 msgid "Open Game" msgstr "Deschide joc" #: lib/pychess/widgets/ionest.py:137 msgid "All Files" msgstr "Toate fișierele" #: lib/pychess/widgets/ionest.py:140 msgid "Detect type automatically" msgstr "Detectează tip automat" #: lib/pychess/widgets/ionest.py:146 msgid "All Chess Files" msgstr "Toate fișierele de șah" #: lib/pychess/widgets/ionest.py:228 msgid "Save Game" msgstr "Salvează joc" #: lib/pychess/widgets/ionest.py:228 msgid "Export position" msgstr "" #: lib/pychess/widgets/ionest.py:232 lib/pychess/widgets/ionest.py:360 msgid "vs." msgstr "împotriva." #: lib/pychess/widgets/ionest.py:249 #, python-format msgid "Unknown file type '%s'" msgstr "Tip de fișier necunoscut '%s'" #: lib/pychess/widgets/ionest.py:250 #, python-format msgid "" "Was unable to save '%(uri)s' as PyChess doesn't know the format " "'%(ending)s'." msgstr "Nu s-a putut salva '%(uri)s' deoarece PyChess nu știe formatul '%(ending)s'." #: lib/pychess/widgets/ionest.py:266 #, python-format msgid "Unable to save file '%s'" msgstr "Nu se poate salva fișierul '%s'" #: lib/pychess/widgets/ionest.py:268 msgid "" "You don't have the necessary rights to save the file.\n" "Please ensure that you have given the right path and try again." msgstr "Nu aveți drepturile necesare pentru a salva fișierul.\nVerificați dacă ați introdus calea corectă și reîncercați." #: lib/pychess/widgets/ionest.py:276 msgid "_Replace" msgstr "Înlocuiește" #: lib/pychess/widgets/ionest.py:280 msgid "File exists" msgstr "Fișierul există" #: lib/pychess/widgets/ionest.py:282 #, python-format msgid "" "A file named '%s' already exists. Would you like to replace " "it?" msgstr "Un fișier numit '%s' există deja. Se dorește înlocuirea?" #: lib/pychess/widgets/ionest.py:283 #, python-format msgid "" "The file already exists in '%s'. If you replace it, its content will be " "overwritten." msgstr "Fișierul există deja în '%s'. Dacă îl înlocuiți, conținutul său va fi suprascris." #: lib/pychess/widgets/ionest.py:299 msgid "Could not save the file" msgstr "Nu s-a putut salva fișierul" #: lib/pychess/widgets/ionest.py:300 msgid "PyChess was not able to save the game" msgstr "PyChess nu a fost capabil să salveze jocul" #: lib/pychess/widgets/ionest.py:301 #, python-format msgid "The error was: %s" msgstr "Eroarea a fost: %s" #: lib/pychess/widgets/ionest.py:325 #, python-format msgid "There is %d game with unsaved moves." msgid_plural "There are %d games with unsaved moves." msgstr[0] "Există %d joc cu mutări nesalvate." msgstr[1] "Există %d jocuri cu mutări nesalvate." msgstr[2] "Există %d jocuri cu mutări nesalvate." #: lib/pychess/widgets/ionest.py:328 msgid "Save moves before closing?" msgstr "Salvează mutări înainte de închidere" #: lib/pychess/widgets/ionest.py:339 msgid "Unable to save to configured file. Save the games before closing?" msgstr "" #: lib/pychess/widgets/ionest.py:366 #, python-format msgid "_Save %d document" msgid_plural "_Save %d documents" msgstr[0] "_Salvează %d document" msgstr[1] "_Salvează %d documente" msgstr[2] "_Salvează %d de documente" #: lib/pychess/widgets/ionest.py:412 msgid "Save the current game before you close it?" msgstr "" #: lib/pychess/widgets/ionest.py:420 msgid "" "Unable to save to configured file. Save the current game before you close " "it?" msgstr "" #: lib/pychess/widgets/ionest.py:434 msgid "" "It is not possible later to continue the game,\n" "if you don't save it." msgstr "Nu este posibil să continuați jocul mai târziu,\ndacă nu-l salvați." #: lib/pychess/widgets/LogDialog.py:26 msgid "PyChess Information Window" msgstr "Fereastra de informare PyChess" #: lib/pychess/widgets/LogDialog.py:184 lib/pychess/widgets/LogDialog.py:188 msgid "of" msgstr "din" #: lib/pychess/widgets/newGameDialog.py:84 #: lib/pychess/widgets/newGameDialog.py:85 msgid "Human Being" msgstr "Ființă umană" #: lib/pychess/widgets/newGameDialog.py:155 msgid "Rapid" msgstr "Rapid" #: lib/pychess/widgets/newGameDialog.py:224 msgid "Minutes:" msgstr "Minute:" #: lib/pychess/widgets/newGameDialog.py:228 msgid "Gain:" msgstr "Progres:" #: lib/pychess/widgets/newGameDialog.py:241 #, python-format msgid "%(name)s %(minutes)d min + %(gain)d sec/move" msgstr "%(name)s %(minutes)d min + %(gain)d sec/mutare" #: lib/pychess/widgets/newGameDialog.py:244 #, python-format msgid "%(name)s %(minutes)d min %(gain)d sec/move" msgstr "%(name)s %(minutes)d min %(gain)d sec/mutare" #: lib/pychess/widgets/newGameDialog.py:247 #, python-format msgid "%(name)s %(minutes)d min" msgstr "%(name)s %(minutes)d min" #: lib/pychess/widgets/newGameDialog.py:265 msgid "Odds" msgstr "Probabilitate" #: lib/pychess/widgets/newGameDialog.py:269 msgid "Asian variants" msgstr "" #: lib/pychess/widgets/newGameDialog.py:301 msgid " chess" msgstr "şah" #: lib/pychess/widgets/newGameDialog.py:682 msgid "Type or paste PGN game or FEN positions here" msgstr "" #: lib/pychess/widgets/newGameDialog.py:725 msgid "Enter Game" msgstr "Intră în joc" #: lib/pychess/widgets/preferencesDialog.py:123 msgid "Select book file" msgstr "" #: lib/pychess/widgets/preferencesDialog.py:128 msgid "Opening books" msgstr "" #: lib/pychess/widgets/preferencesDialog.py:156 msgid "Select Gaviota TB path" msgstr "" #: lib/pychess/widgets/preferencesDialog.py:331 msgid "Open Sound File" msgstr "Deschide fișier sunet" #: lib/pychess/widgets/preferencesDialog.py:341 msgid "Sound files" msgstr "" #: lib/pychess/widgets/preferencesDialog.py:485 msgid "Undescribed panel" msgstr "Panou nedescris" #: lib/pychess/widgets/preferencesDialog.py:678 msgid "Select auto save path" msgstr "" #: lib/pychess/widgets/tipOfTheDay.py:51 msgid "" "You can start a new game by Game > New Game, in New Game " "window do you can choose Players, Time Control and Chess " "Variants." msgstr "Poți începe un joc nou cu Joc > Joc nou. În fereastra Joc nou poți să alegi Jucători, Control timp și Varianta de șah." #: lib/pychess/widgets/tipOfTheDay.py:52 msgid "" "You can choose from 20 different difficulties to play against the computer." msgstr "" #: lib/pychess/widgets/tipOfTheDay.py:53 msgid "" "Chess Variants are like the pieces of the last line will be placed on the " "board." msgstr "" #: lib/pychess/widgets/tipOfTheDay.py:54 msgid "" "To save a game Game > Save Game As, give the filename and " "choose where you want to be saved. At the bottom choose extension type of " "the file, and Save." msgstr "Pentru a salva un joc Joc > Salvează Joc, dați un nume de fișier și alegeți un să fie salvat. În partea de jos alegeți extensia fișierului și apoi Salveaza." #: lib/pychess/widgets/tipOfTheDay.py:55 msgid "" "Do you know that you can call flag when the clock is with you, " "Actions > Call Flag." msgstr "" #: lib/pychess/widgets/tipOfTheDay.py:56 msgid "Pressing Ctrl+Z to offer opponent the possible rollback moves." msgstr "" #: lib/pychess/widgets/tipOfTheDay.py:57 msgid "" "To play on Fullscreen mode, just type F11. Coming back, F11 " "again." msgstr "Pentru a juca cu Ecran complet apăsați F11. Pentru a reveni, apăsați F11 din nou." #: lib/pychess/widgets/tipOfTheDay.py:58 msgid "Hint mode analyzing your game, enable this type Ctrl+H." msgstr "Modul sfat analizează jocul dumneavoastra. Pentru activare apăsați Ctrl+H" #: lib/pychess/widgets/tipOfTheDay.py:59 msgid "" "Spy mode analyzing the oponnent game, enable this type Ctrl+Y." msgstr "Modul spion analizează jocul adversarului. Pentru activare apăsați Ctrl+Y" #: lib/pychess/widgets/tipOfTheDay.py:60 msgid "" "You can play chess listening to the sounds of the game, for that, " "Settings > Preferences > Sound tab, enable Use " "sounds in PyChess and choose your preferred sounds." msgstr "" #: lib/pychess/widgets/tipOfTheDay.py:61 msgid "" "Do you know that you can help translate Pychess in your language, " "Help > Translate Pychess." msgstr "Știați că puteți traduce PyChess în limba dumneavoastră? Help > Traduceți PyChess." #: lib/pychess/widgets/tipOfTheDay.py:62 msgid "" "Do you know that it is possible to finish a chess game in just 2 turns?" msgstr "Știați că este posibil ca un joc de șah să se termine în 2 mutări?" #: lib/pychess/widgets/tipOfTheDay.py:63 msgid "" "Do you know that the number of possible chess games exceeds the number of " "atoms in the Universe?" msgstr "Știați că numărul posibil de jocuri de șah este mai mare decât numarul de atomi din Univers?" #: lib/pychess/ic/managers/ChatManager.py:184 msgid "Shout" msgstr "Strigă" #: lib/pychess/ic/managers/ChatManager.py:185 msgid "Chess Shout" msgstr "Strigă șah" #: lib/pychess/ic/managers/ChatManager.py:195 #, python-format msgid "Unofficial channel %d" msgstr "Canal neoficial %d" #: lib/pychess/Utils/lutils/LBoard.py:152 #, python-format msgid "" "FEN needs 6 data fields. \n" "\n" "%s" msgstr "" #: lib/pychess/Utils/lutils/LBoard.py:154 #, python-format msgid "" "FEN needs at least 2 data fields in fenstr. \n" "\n" "%s" msgstr "" #: lib/pychess/Utils/lutils/LBoard.py:175 #, python-format msgid "" "Needs 7 slashes in piece placement field. \n" "\n" "%s" msgstr "" #: lib/pychess/Utils/lutils/LBoard.py:178 #, python-format msgid "" "Active color field must be one of w or b. \n" "\n" "%s" msgstr "" #: lib/pychess/Utils/lutils/LBoard.py:189 #, python-format msgid "" "Castling availability field is not legal. \n" "\n" "%s" msgstr "" #: lib/pychess/Utils/lutils/LBoard.py:192 #, python-format msgid "" "En passant cord is not legal. \n" "\n" "%s" msgstr "" #: lib/pychess/Utils/lutils/lmove.py:260 msgid "invalid promoted piece" msgstr "" #: lib/pychess/Utils/lutils/lmove.py:272 msgid "the move needs a piece and a cord" msgstr "mutarea necesită o piesă și o căsuță" #: lib/pychess/Utils/lutils/lmove.py:306 lib/pychess/Utils/lutils/lmove.py:556 msgid "promotion move without promoted piece is incorrect" msgstr "" #: lib/pychess/Utils/lutils/lmove.py:312 #, python-format msgid "the captured cord (%s) is incorrect" msgstr "căsuța capturată (%s) este incorectă" #: lib/pychess/Utils/lutils/lmove.py:323 #, python-format msgid "the end cord (%s) is incorrect" msgstr "" #: lib/pychess/Utils/lutils/strateval.py:24 sidepanel/commentPanel.py:191 #: sidepanel/commentPanel.py:208 msgid "and" msgstr "și" #: lib/pychess/Utils/lutils/strateval.py:43 msgid "draws" msgstr "remize" #: lib/pychess/Utils/lutils/strateval.py:45 msgid "mates" msgstr "maturi" #: lib/pychess/Utils/lutils/strateval.py:49 msgid "puts opponent in check" msgstr "pune adversarul în șah" #: lib/pychess/Utils/lutils/strateval.py:73 msgid "improves king safety" msgstr "imbunătățește apărarea regelui" #: lib/pychess/Utils/lutils/strateval.py:75 msgid "slightly improves king safety" msgstr "îmbunătățește ușor apărarea regelui" #: lib/pychess/Utils/lutils/strateval.py:108 msgid "moves a rook to an open file" msgstr "mută o tură pe o coloană deschisă" #: lib/pychess/Utils/lutils/strateval.py:109 msgid "moves an rook to a half-open file" msgstr "mută o tură pe o coloană parțial deschisă" #: lib/pychess/Utils/lutils/strateval.py:119 #: lib/pychess/Utils/lutils/strateval.py:121 #: lib/pychess/Utils/lutils/strateval.py:124 #: lib/pychess/Utils/lutils/strateval.py:126 #, python-format msgid "moves bishop into fianchetto: %s" msgstr "muta nebun in fianchetto: %s" #: lib/pychess/Utils/lutils/strateval.py:132 #, python-format msgid "promotes a Pawn to a %s" msgstr "schimbă un pion în %s" #: lib/pychess/Utils/lutils/strateval.py:135 msgid "castles" msgstr "face rocada" #: lib/pychess/Utils/lutils/strateval.py:158 msgid "takes back material" msgstr "ia înapoi material" #: lib/pychess/Utils/lutils/strateval.py:162 #: lib/pychess/Utils/lutils/strateval.py:170 msgid "sacrifies material" msgstr "sacrifică material" #: lib/pychess/Utils/lutils/strateval.py:164 msgid "exchanges material" msgstr "schimbă material" #: lib/pychess/Utils/lutils/strateval.py:166 msgid "captures material" msgstr "capturează material" #: lib/pychess/Utils/lutils/strateval.py:291 #, python-format msgid "rescues a %s" msgstr "recupereaza un(o) %s" #: lib/pychess/Utils/lutils/strateval.py:294 #, python-format msgid "threatens to win material by %s" msgstr "amenință să câștige material prin %s" #: lib/pychess/Utils/lutils/strateval.py:296 #, python-format msgid "increases the pressure on %s" msgstr "mărește presiunea pe %s" #: lib/pychess/Utils/lutils/strateval.py:298 #, python-format msgid "defends %s" msgstr "apără %s" #: lib/pychess/Utils/lutils/strateval.py:336 #, python-format msgid "pins an enemy %(oppiece)s on the %(piece)s at %(cord)s" msgstr "" #: lib/pychess/Utils/lutils/strateval.py:369 #, python-format msgid "White has a new piece in outpost: %s" msgstr "Albul are o nouă piesă în avanpost: %s" #: lib/pychess/Utils/lutils/strateval.py:377 #, python-format msgid "Black has a new piece in outpost: %s" msgstr "Negrul are o nouă piesă în avanpost: %s" #: lib/pychess/Utils/lutils/strateval.py:416 #, python-format msgid "%(color)s has a new passed pawn on %(cord)s" msgstr "" #: lib/pychess/Utils/lutils/strateval.py:470 msgid "half-open" msgstr "semi-deschis" #: lib/pychess/Utils/lutils/strateval.py:472 #, python-format msgid "in the %(x)s%(y)s file" msgstr "în fișierul %(x)s%(y)s" #: lib/pychess/Utils/lutils/strateval.py:474 #, python-format msgid "in the %(x)s%(y)s files" msgstr "în fișierele %(x)s%(y)s" #: lib/pychess/Utils/lutils/strateval.py:477 #, python-format msgid "%(color)s got a double pawn %(place)s" msgstr "%(color)s are un pion dublu %(place)s" #: lib/pychess/Utils/lutils/strateval.py:478 #, python-format msgid "%(color)s got new double pawns %(place)s" msgstr "%(color)s are un nou pion dublu %(place)s" #: lib/pychess/Utils/lutils/strateval.py:485 #, python-format msgid "%(color)s got an isolated pawn in the %(x)s file" msgid_plural "%(color)s got isolated pawns in the %(x)s files" msgstr[0] "%(color)s are un pion izolat pe coloana %(x)s" msgstr[1] "%(color)s are pioni izolati pe coloana %(x)s" msgstr[2] "%(color)s are pioni izolati pe coloana %(x)s" #: lib/pychess/Utils/lutils/strateval.py:492 #, python-format msgid "%s moves pawns into stonewall formation" msgstr "" #: lib/pychess/Utils/lutils/strateval.py:507 #: lib/pychess/Utils/lutils/strateval.py:514 #, python-format msgid "%s can no longer castle" msgstr "%s nu mai poate face rocada" #: lib/pychess/Utils/lutils/strateval.py:508 #: lib/pychess/Utils/lutils/strateval.py:515 #, python-format msgid "%s can no longer castle in queenside" msgstr "%s nu mai poate face rocada pe partea reginei" #: lib/pychess/Utils/lutils/strateval.py:510 #: lib/pychess/Utils/lutils/strateval.py:517 #, python-format msgid "%s can no longer castle in kingside" msgstr "%s nu mai poate face rocada pe partea regelui" #: lib/pychess/Utils/lutils/strateval.py:551 #, python-format msgid "%(opcolor)s has a new trapped bishop on %(cord)s" msgstr "" #: lib/pychess/Utils/lutils/strateval.py:573 #, python-format msgid "develops a pawn: %s" msgstr "dezvolta un pion: %s" #: lib/pychess/Utils/lutils/strateval.py:574 #, python-format msgid "brings a pawn closer to the backrow: %s" msgstr "aduce un pion mai aproapte de ultima linie: %s" #: lib/pychess/Utils/lutils/strateval.py:591 #, python-format msgid "brings a %(piece)s closer to enemy king: %(cord)s" msgstr "" #: lib/pychess/Utils/lutils/strateval.py:594 #, python-format msgid "develops a %(piece)s: %(cord)s" msgstr "dezvoltă un(o) %(piece)s: %(cord)s" #: lib/pychess/Utils/lutils/strateval.py:612 #, python-format msgid "places a %(piece)s more active: %(cord)s" msgstr "" #: lib/pychess/Utils/lutils/strateval.py:638 msgid "White should do pawn storm in right" msgstr "" #: lib/pychess/Utils/lutils/strateval.py:640 msgid "Black should do pawn storm in left" msgstr "" #: lib/pychess/Utils/lutils/strateval.py:643 msgid "White should do pawn storm in left" msgstr "" #: lib/pychess/Utils/lutils/strateval.py:645 msgid "Black should do pawn storm in right" msgstr "" #: lib/pychess/Utils/lutils/strateval.py:671 msgid "Black has a rather cramped position" msgstr "" #: lib/pychess/Utils/lutils/strateval.py:673 msgid "Black has a slightly cramped position" msgstr "Negrul are o poziție înghesuită" #: lib/pychess/Utils/lutils/strateval.py:675 msgid "White has a rather cramped position" msgstr "Albul are o poziție înghesuită" #: lib/pychess/Utils/lutils/strateval.py:677 msgid "White has a slightly cramped position" msgstr "" #: sidepanel/annotationPanel.py:26 msgid "Annotation" msgstr "" #: sidepanel/annotationPanel.py:29 msgid "Annotated game" msgstr "" #: sidepanel/annotationPanel.py:236 msgid "Copy PGN" msgstr "" #: sidepanel/annotationPanel.py:249 msgid "Add start comment" msgstr "" #: sidepanel/annotationPanel.py:254 msgid "Add comment" msgstr "" #: sidepanel/annotationPanel.py:258 sidepanel/annotationPanel.py:316 msgid "Edit comment" msgstr "" #: sidepanel/annotationPanel.py:269 msgid "Forced move" msgstr "" #: sidepanel/annotationPanel.py:274 msgid "Add move symbol" msgstr "" #: sidepanel/annotationPanel.py:280 msgid "Unclear position" msgstr "" #: sidepanel/annotationPanel.py:289 msgid "Zugzwang" msgstr "Zug-zwang" #: sidepanel/annotationPanel.py:290 msgid "Development adv." msgstr "" #: sidepanel/annotationPanel.py:291 msgid "Initiative" msgstr "" #: sidepanel/annotationPanel.py:292 msgid "With attack" msgstr "" #: sidepanel/annotationPanel.py:293 msgid "Compensation" msgstr "" #: sidepanel/annotationPanel.py:294 msgid "Counterplay" msgstr "" #: sidepanel/annotationPanel.py:295 msgid "Time pressure" msgstr "" #: sidepanel/annotationPanel.py:300 msgid "Add evaluation symbol" msgstr "" #: sidepanel/annotationPanel.py:304 msgid "Remove symbols" msgstr "" #: sidepanel/annotationPanel.py:911 #, python-format msgid "round %s" msgstr "" #: sidepanel/bookPanel.py:21 msgid "Hints" msgstr "" #: sidepanel/bookPanel.py:25 msgid "" "The hint panel will provide computer advice during each stage of the game" msgstr "" #: sidepanel/bookPanel.py:27 msgid "Official PyChess panel." msgstr "Panoul PyChess oficial." #: sidepanel/bookPanel.py:87 msgid "Opening Book" msgstr "Cartea de deschideri" #: sidepanel/bookPanel.py:88 msgid "" "The opening book will try to inspire you during the opening phase of the " "game by showing you common moves made by chess masters" msgstr "Cartea de deschideri va încerca să vă inspire în timpul deschiderii jocului arătându-vă mutări frecvente ale maeștrilor din șah" #: sidepanel/bookPanel.py:139 #, python-format msgid "Analysis by %s" msgstr "" #: sidepanel/bookPanel.py:140 #, python-format msgid "" "%s will try to predict which move is best and which side has the advantage" msgstr "" #: sidepanel/bookPanel.py:142 #, python-format msgid "Threat analysis by %s" msgstr "" #: sidepanel/bookPanel.py:143 #, python-format msgid "" "%s will identify what threats would exist if it were your opponent's turn to" " move" msgstr "" #: sidepanel/bookPanel.py:159 sidepanel/bookPanel.py:269 msgid "Calculating..." msgstr "" #: sidepanel/bookPanel.py:300 msgid "" "Engine scores are in units of pawns, from White's point of view. Double " "clicking on analysis lines you can insert them into Annotation panel as " "variations." msgstr "" #: sidepanel/bookPanel.py:302 msgid "" "Adding suggestions can help you find ideas, but slows down the computer's " "analysis." msgstr "" #: sidepanel/bookPanel.py:311 msgid "Endgame Table" msgstr "" #: sidepanel/bookPanel.py:315 msgid "" "The endgame table will show exact analysis when there are few pieces on the " "board." msgstr "" #: sidepanel/bookPanel.py:364 sidepanel/bookPanel.py:367 #, python-format msgid "Mate in %d" msgstr "Mat în %d" #: sidepanel/bookPanel.py:554 msgid "" "In this position,\n" "there is no legal move." msgstr "" #: sidepanel/chatPanel.py:21 msgid "" "The chat panel lets you communicate with your opponent during the game, " "assuming he or she is interested" msgstr "Panoul de conversații vă dă posibilitate să comunicați cu adversarul dumneavoastră în timpul jocului, presupunând ca el sau ea este înteresat(ă)." #: sidepanel/commentPanel.py:16 msgid "Comments" msgstr "Comentarii" #: sidepanel/commentPanel.py:20 msgid "The comments panel will try to analyze and explain the moves played" msgstr "Panoul de comentarii va încerca să analizeze și să explice mutările jucate" #: sidepanel/commentPanel.py:121 msgid "Initial position" msgstr "Pozițiă inițială" #: sidepanel/commentPanel.py:254 #, python-format msgid "%(color)s moves a %(piece)s to %(cord)s" msgstr "" #: sidepanel/engineOutputPanel.py:15 msgid "Engines" msgstr "" #: sidepanel/engineOutputPanel.py:20 msgid "" "The engine output panel shows the thinking output of chess engines (computer" " players) during a game" msgstr "" #: sidepanel/engineOutputPanel.py:44 msgid "No chess engines (computer players) are participating in this game." msgstr "" #: sidepanel/historyPanel.py:10 msgid "Move History" msgstr "Istoric mutări" #: sidepanel/historyPanel.py:13 msgid "" "The moves sheet keeps track of the players' moves and lets you navigate " "through the game history" msgstr "Fila cu mutări înregistrează mutările jucătorilor si vă dă posibilitatea să navigați prin istoria jocului" #: sidepanel/scorePanel.py:15 msgid "Score" msgstr "Scor" #: sidepanel/scorePanel.py:19 msgid "" "The score panel tries to evaluate the positions and shows you a graph of the" " game progress" msgstr "Panoul de scor încearcă să evalueze pozițiile și să va arate un grafic al progresului jocului," pychess-0.12.2/lang/ro/LC_MESSAGES/pychess.mo0000644000175000017470000011341012653231273020715 0ustar tamasusers00000000000000,< + ++ +$(+ M+Y+^+%u+`+(+#%,I,*b,,,,,,#,$-9- M-!n->-----.#.2.M.%R.x...9.'.@/W/h/y////E/0,0#H0$l0 000000L0L1 `1m11Q1&1C 27O2U2*2(313G3Y3j3 ~333 3 33 33 3C4 H4U4*g44 4 44Q45!15S5 n55Q5 5K6$k666#6!6- 7&;7-b7;7777$7%8)8 08:8L8R8Y8[8^8 f8 p8|888 88 88 888 99 9)9>9O9e9 w999 99 99999G:`K:i: ;!; &; 0;<; B;M;b;h; o;{;; ;;;;;;;< <$< 6<C<I<R<W< ]< i<u<Xx<c<]5=S=F=.>?> T>Db>>>>>> >> ? ? ?%? 9? E? P?]?n???? ??? ?? ? ? ? @@@/@L@ U@c@~@@@@@@ @ @ @ @ @ A A$A\,AAAA.A AAB B#B9B?B ABMBSB XBbBgBlB BBBB B BBBB CC &C 0C#:C^C}CC 7DCDED KD VDcDeDmDtDzD DDDD DDDDDD D DDD EEE !E -E;E"PEsE EEEE EE E EEFF1F 9FEF[FaF FFF FFFFFFFF FF GhG"GCG5G9%H3_HHHTH I"Ixxx"x:x y#y:yRygyyy yyyyyyyyyz z 3z Az MzWziz zz z zz zz { {{{{{{ {{{{ | ||| $|1|7|?|B| Q| [|i|{|(| ||||||+}<}N}_}u}}}}}}}~~ .~8~J~ c~+p~ ~~~ ~~~~  # &2I^O>i99.ZA ԁr%AX pzdt @~D  &c3 Ta qÆ׆    +6 No M Ȉ)̈!"+ETDF;@-ÊyRk(0(7r`ӌk`5̍[!^y  '":]o Ə׏. % 8FYnu ~ Ð א IJbq  )7;As!ג.ݒ ! -#8\qx //ѓ#%>Xr%y.Δ 9Pk ĕݕ*A(U*~) Ӗߖ@U(NH\i *7rKM"VGy)>'$/LYua}X{K>?ekbSBfm 32h:+P~RaDFZ/p m;wv'^3&f \#01J #=r _%b8n69R A:gn|QSzP%QOulcE"<c5q`,$sM}Bzi[!~p?w.=Y<-vj,V4tk8toA(T +| C25FWU]L^Xx`[7l 4& {IqE]gsTZ-_0ONe@j1)o!xy9hDddCJ6;I.GH *W Gain: chess has arrived has declined your offer for a match is present min%(black)s won the game%(color)s got a double pawn %(place)s%(color)s got an isolated pawn in the %(x)s file%(color)s got isolated pawns in the %(x)s files%(color)s got new double pawns %(place)s%(minutes)d min + %(gain)d sec/move%(name)s %(minutes)d min%(name)s %(minutes)d min %(gain)d sec/move%(name)s %(minutes)d min + %(gain)d sec/move%(white)s won the game%d min%s can no longer castle%s can no longer castle in kingside%s can no longer castle in queenside%s returns an error%s was declined by your opponent%s was withdrawn by your opponent'%s' is a registered name. If it is yours, type the password.'%s' is not a registered name(Blitz)*0 Players Ready0 of 010 min + 6 sec/move, 1400↑, White10 min + 6 sec/move, White12002 min, Fischer Random, 1800↓, Black2 min, Fischer Random, Black5 min5 min, 1200-1800, ManualConnect to the Free Online Chess ServerPromote pawn to what?PyChess was unable to load your panel settingsAnalyzingAnimationChess VariantDate of gameEnter Game NotationGame dataHint mode analyzing your game, enable this type Ctrl+H.Initial PositionInstalled SidepanelsName of _first human player:Name of s_econd human player:NewsOpen GameOpponent StrengthOptionsPlay Sound When...PlayersSpy mode analyzing the oponnent game, enable this type Ctrl+Y.Time ControlToolsYour Color_Start GameA file named '%s' already exists. Would you like to replace it?Engine, %s, has diedPyChess is discovering your engines. Please wait.PyChess was not able to save the gameThere are %d games with unsaved moves. Save changes before closing?Unable to save file '%s'Unknown file type '%s'Challenge:A player _checks:A player _moves:A player c_aptures:About ChessAc_tiveActive seeks: %dAddress ErrorAdministratorAll Chess FilesAll FilesAnalyze from current positionAnalyze gameAnimate pieces, board rotation and more. Use this on fast machines.Ask to _MoveAsymmetric RandomAuto _rotate board to current human playerAuto login on startupAuto-logoutAvailableBBecause %(black)s ran out of time and %(white)s has insufficient material to mateBecause %(loser)s disconnectedBecause %(loser)s ran out of timeBecause %(loser)s resignedBecause %(loser)s was checkmatedBecause %(mover)s stalematedBecause %(white)s ran out of time and %(black)s has insufficient material to mateBecause a player lost connectionBecause a player lost connection and the other player requested adjournmentBecause both players ran out of timeBecause neither player has sufficient material to mateBecause of adjudication by an adminBecause the %(white)s engine diedBecause the connection to the server was lostBecause the game exceed the max lengthBecause the last 50 moves brought nothing newBecause the same position was repeated three times in a rowBeepBishopBlackBlack has a new piece in outpost: %sBlack has a slightly cramped positionBlack:BlindfoldBlindfold AccountBlitzBlitz:CCACenter:ChallengeChallenge: Challenge: Change ToleranceChatChess AdvisorChess Alpha 2 DiagramChess GameChess PositionChess ShoutClockClose _without SavingCommentsComputerConnectingConnecting to serverConnection ErrorConnection was closedConversation infoConversationsCornerCould not save the fileCreate SeekDateDate/TimeDefaultDestination Host UnreachableDetect type automaticallyDiedDo you know that it is possible to finish a chess game in just 2 turns?Do you know that the number of possible chess games exceeds the number of atoms in the Universe?Do you know that you can help translate Pychess in your language, Help > Translate Pychess.Don't careDrawEdit SeekEdit Seek: EmailEnter GameEnter Game _NotationEventEvent:FIDE MasterF_ull board animationFace _to Face display modeFile existsFischer RandomFriendsGain:Game informationGame is _drawn:Game is _lost:Game is _set-up:Game is _won:Games running: %dGrand MasterGuestHa_ndle:HideHost:How to PlayHuman BeingIdIf set, PyChess will use figures to express moved pieces, rather than uppercase letters.If set, the black pieces will be head down, suitable for playing against friends on mobile devices.If set, the board will turn after each move, to show the natural view for the current player.If set, this hides the tab in the top of the playing window, when it is not needed.If you don't save, new changes to your games will be permanently lost.Initial positionInternational MasterInvalid move.It is not possible later to continue the game, if you don't save it.Jump to initial positionJump to latest positionKKingKnightKnight oddsLeave _FullscreenLightningLightning:Loaded gameLoading player dataLocal EventLocal SiteLog on ErrorLog on as G_uestLog on as _GuestLogging on to serverLosersLossMamer ManagerManualManually accept opponentMate in %dMinutes:Minutes: More channelsMore playersMove HistoryNNameNever use animation. Use this on slow machines.New GameNo _animationNo conversation's selectedNo soundNormalObserveObserved _ends:OddsOffer Ad_journmentOffer RematchOffer _AbortOffer _DrawOffer _PauseOffer _ResumeOffer _UndoOfficial PyChess panel.OfflineOn FICS, your "Wild" rating encompasses all of the following variants at all time controls: OnlineOnly animate _movesOnly animate piece moves.Only registered users may talk to this channelOpen GameOpen Sound FileOpen _DatabaseOpening BookOpponent's strength: OtherPParameters:PausePawnPawn oddsPingPlayPlay Fischer Random chessPlay RematchPlay _Internet ChessPlay normal chess rulesPlayer _RatingPlayers: %dPng imagePo_rts:Pre_viewPrefer figures in _notationPreferencesPrivatePromotionProtocol:PyChess - Connect to Internet ChessPyChess - Internet Chess: FICSPyChess Information WindowPyChess has lost connection to the engine, probably because it has died. You can try to start a new game with the engine, or try to play against another one.PyChess.py:QQueenQueen oddsQuit PyChessRR_esignRandomRapidRatedRated gameRatingResultRookRook oddsRoundRound:SRS_ign upSaveSave GameSave Game _AsSave files to:Save moves before closing?Saved gameScoreSearch:Seek _GraphSelect engineSelect sound file...Select the games you want to save:Send ChallengeSend seekService RepresentativeSetting up environmentSetup PositionShare GameShoutShow ConsoleShow _ChatShow _captured piecesShow tips at startupShredderLinuxChess:ShuffleSide_panelsSimple Chess PositionSite:Sorry '%s' is already logged inSp_y modeSpentStandardStandard:Start Private ChatStep back one moveStep forward one moveSuicideTTDTMTeam AccountThe abort offerThe adjourn offerThe chat panel lets you communicate with your opponent during the game, assuming he or she is interestedThe clock hasn't been started yet.The comments panel will try to analyze and explain the moves playedThe connection was broken - got "end of file" messageThe displayed name of the first human player, e.g., John.The displayed name of the guest player, e.g., Mary.The draw offerThe error was: %sThe file already exists in '%s'. If you replace it, its content will be overwritten.The game ended in a drawThe game has been abortedThe game has been adjournedThe game has been killedThe move failed because %s.The moves sheet keeps track of the players' moves and lets you navigate through the game historyThe offer to switch sidesThe opening book will try to inspire you during the opening phase of the game by showing you common moves made by chess mastersThe pause offerThe reason is unknownThe resignationThe resume offerThe score panel tries to evaluate the positions and shows you a graph of the game progressThe takeback offerThemesThere is %d game with unsaved moves.There are %d games with unsaved moves.This option is not applicable because you're challenging a playerThis option is not available because you're challenging a guest, TimeTime control: Tip Of The dayTip of the DayTo play on Fullscreen mode, just type F11. Coming back, F11 again.To save a game Game > Save Game As, give the filename and choose where you want to be saved. At the bottom choose extension type of the file, and Save.Tolerance:Tournament DirectorTranslate PyChessTypeUUnable to accept %sUndescribed panelUndoUndo one moveUndo two movesUninstallUnknownUnofficial channel %dUnratedUnregisteredUntimedUpside DownUse _analyzerUse _inverted analyzerUse analyzer:WaitWas unable to save '%(uri)s' as PyChess doesn't know the format '%(ending)s'.WelcomeWhen this button is in the "locked" state, the relationship between "Opponent's strength" and "Your strength" will be preserved when a) your rating for the type of game sought has changed b) you change the variant or the time controlWhiteWhite has a new piece in outpost: %sWhite has a rather cramped positionWhite:WildWinYear, month, day: #y, #m, #dYouYou can start a new game by Game > New Game, in New Game window do you can choose Players, Time Control and Chess Variants.You can't play rated games because "Untimed" is checked, You can't play rated games because you are logged in as a guestYou can't select a variant because "Untimed" is checked, You can't switch colors during the game.You don't have the necessary rights to save the file. Please ensure that you have given the right path and try again.You have been logged out because you were idle more than 60 minutesYou have opened no conversations yetYou have tried to undo too many moves.You sent a draw offerYour opponent asks you to hurry!Your opponent has asked that the game be aborted. If you accept this offer, the game will end with no rating change.Your opponent has asked that the game be paused. If you accept this offer, the game clock will be paused until both players agree to resume the game.Your opponent has asked that the game be resumed. If you accept this offer, the game clock will continue from where it was paused.Your opponent has asked that the last %s move(s) be undone. If you accept this offer, the game will continue from the earlier position.Your opponent has offered you a draw. If you accept this offer, the game will end with a score of 1/2 - 1/2.Your opponent is not out of time.Your panel settings have been reset. If this problem repeats, you should report it to the developersYour strength: Zugzwang_Accept_Actions_Analyze Game_Auto save finished games_Black player:_Clear Seeks_Copy PGN_Decline_Edit_Engines_Fullscreen_Game_Game List_General_Help_Hide tabs when only one game is open_Hint mode_Invalid move:_Load Game_Log Off_Log Viewer_Name:_New Game_Next_Observed moves:_Opponent:_Password:_Play Normal chess_Player List_Previous_Replace_Rotate Board_Save %d document_Save %d documents_Save %d documents_Save Game_Seeks / Challenges_Show Sidepanels_Sounds_Start Game_Use sounds in PyChess_View_White player:_Your Color:andand guests can't play rated gamesand on FICS, untimed games can't be ratedand on FICS, untimed games have to be normal chess rulesask your opponent to moveblackbrings a pawn closer to the backrow: %scaptures materialcastlesdefends %sdevelops a %(piece)s: %(cord)sdevelops a pawn: %sdrawsexchanges materialgnuchess:half-openhttp://en.wikipedia.org/wiki/Chesshttp://en.wikipedia.org/wiki/Rules_of_chessimproves king safetyin the %(x)s%(y)s filein the %(x)s%(y)s filesincreases the pressure on %smatesmoves a rook to an open filemoves an rook to a half-open filemoves bishop into fianchetto: %sofoffer a drawoffer a pauseoffer a takebackoffer an abortoffer to adjournoffer to resumeoffer to switch sidesonline in totalpromotes a Pawn to a %sputs opponent in checkrescues a %sresignsacrifies materialslightly improves king safetytakes back materialthe captured cord (%s) is incorrectthe move needs a piece and a cordthreatens to win material by %svs.whitewindow1wine not installedxboardProject-Id-Version: pychess Report-Msgid-Bugs-To: POT-Creation-Date: 2016-01-27 13:28+0100 PO-Revision-Date: 2016-01-28 08:56+0000 Last-Translator: slav0nic Language-Team: Romanian (http://www.transifex.com/gbtami/pychess/language/ro/) MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Language: ro Plural-Forms: nplurals=3; plural=(n==1?0:(((n%100>19)||((n%100==0)&&(n!=0)))?2:1)); Câștig: şaha ajunsa refuzat oferta dumneavoastră pentru o partidăeste prezent min%(black)s a câștigat jocul%(color)s are un pion dublu %(place)s%(color)s are un pion izolat pe coloana %(x)s%(color)s are pioni izolati pe coloana %(x)s%(color)s are pioni izolati pe coloana %(x)s%(color)s are un nou pion dublu %(place)s%(minutes)d min + %(gain)d sec/mutare%(name)s %(minutes)d min%(name)s %(minutes)d min %(gain)d sec/mutare%(name)s %(minutes)d min + %(gain)d sec/mutare%(white)s a câștigat jocul%d min%s nu mai poate face rocada%s nu mai poate face rocada pe partea regelui%s nu mai poate face rocada pe partea reginei%s întoarce o eroare%s a fost respinsă de adversar.%s a fost restrasă de către adversar'%s' este deja înregistrat. Dacă sunteți dumneavoastră tastaţi-vă parola.'%s' nu e un nume înregistrat(Bliț)*Niciun jucător pregătit0 din 010 min + 6 sec/mutare, 1400↑, Alb10 min + 6 sec/mutare, Alb12002 min, Fischer Aleator, 1800↓, Negru2 min, Fischer aleator, Negru5 min5 min, 1200-1800, ManualConectare la Free Online Chess ServerÎn ce se promovează pionul?PyChess nu a putut încărca setările dumneavoastră de panouSe analizeazăAnimațieVariantă șahDată jocIntrodu notația de jocDate jocModul sfat analizează jocul dumneavoastra. Pentru activare apăsați Ctrl+HPoziția inițialăPanouri laterale instalateNumele _primului jucător uman:Numele celui de-al _doilea jucător uman:ȘtiriDeschide jocEvaluarea oponentuluiOpțiuniRedă sunet când...JucătoriModul spion analizează jocul adversarului. Pentru activare apăsați Ctrl+YControl timpUnelteCuloarea taÎncepe _jocUn fișier numit '%s' există deja. Se dorește înlocuirea?Motorul, %s, a muritPyChess caută motoarele dvs. de șah. Va rugăm așteptați.PyChess nu a fost capabil să salveze joculExistă %d jocuri cu mutări nesalvate. Salvează modificări înainte de închidere?Nu se poate salva fișierul '%s'Tip de fișier necunoscut '%s'Provocare:Un jucător dă șah:Un jucător mută:Un jucător c_apturează:Despre șahAc_tivCăutări active: %dEroare adresăAdministratorToate fișierele de șahToate fișiereleAnalizează de la poziţia curentăAnalizează joculAnimează piesele, rotația tablei și altele. Recomandat doar pe calculatoarele performante.Cere mutareAleator asimetric_Rotește tabla automat pentru jucătorul uman la mutareAutentificare automată la pornireDeconectare automatăDisponibilBPentru că %(black)s a rămas fără timp și %(white)s nu are suficient material pentru a da șah matPentru că %(loser)s s-a deconectatPentru că %(loser)s a rămas fără timpPentru că %(loser)s a renunțatPentru că %(loser)s a fost pus în șah matBecause %(mover)s a fost pus în pat.Pentru că %(white)s a rămas fără timp și %(black)s nu are suficient material pentru a da șah matPentru că un jucător s-a deconectatPentru că un jucător a pierdut conexiunea, iar celalt jocător a cerut o amânarePentru că amândoi jucători au rămas fără timpFiindcă niciunul din jucător nu are suficient material pentru a da șah matDin cauza deciziei unui administratorPentru că motorul de șah %(white)s a muritPentru că conexiunea către server a fost pierdutăPentru că jocul a depășit lungimea maximăDeoarece ultimele 50 de mutari nu au schimbat situația joculuiPentru că aceeași poziție a fost repetată de trei ori la rândBipNebunNegruNegrul are o nouă piesă în avanpost: %sNegrul are o poziție înghesuităNegru:Legat la ochiCont legat la ochiBlițBlițCCACentru:ProvoacăProvocare: Provoacă: Modifică toleranțaConversațiiConsilier șahDiagrama Chess Alpha 2Joc de șahPoziție de șahStrigă șahCeasÎnchide _fără a salvaComentariiCalculatorSe conecteazăConectare la serverEroare la conectareConexiunea a fost închisăInformații desre coversațieConversațiiColțNu s-a putut salva fișierulCreează căutareDatăDată/OrăImplicitServerul destinație nu e disponibilDetectează tip automatA muritȘtiați că este posibil ca un joc de șah să se termine în 2 mutări?Știați că numărul posibil de jocuri de șah este mai mare decât numarul de atomi din Univers?Știați că puteți traduce PyChess în limba dumneavoastră? Help > Traduceți PyChess.IrelevantRemizăEditează căutareModifică căutarea: Poștă electronicăIntră în jocIntrodu _notația joculuiEvenimentEveniment:Maestru FIDEAnimație totală a ta_bleiModul de afișa_re fața în fațăFișierul existăFischer aleatorPrieteniProgres:Informații jocJocul e remizăJocu_l e pierdut:Jocul e _configurat:Jocul este câștigat:Jocuri în desfășurare: %dMare maestru internaționalOaspete_Nume utilizator:AscundeGazdă:Cum se joacăFiință umanăIdDacă este ales, PyChess va folosi figurine pentru a arăta piesele mutate în locul majusculilor.Dacă este ales, piesele negre vor fi orientate în jos, adecvat pentru a juca împotriva prietenilor pe dispozitive mobile.Daca este ales, tabla se va întoarce dupa fiecare mutare pentru a arătă vederea naturală a jucătorului la mutare.Dacă este ales, ascunde fila în partea superioară a ferestrii de joc când aceasta nu este necesară.Dacă nu salvezi, noile modificări către jocurile tale vor fi pierdute definitiv.Pozițiă inițialăMaestru internaționalMutare invalidă.Nu este posibil să continuați jocul mai târziu, dacă nu-l salvați.Revino poziția inițialăRevino la ultima mutareKRegeCalCotele caluluiPărăsește _Ecran CompletFulgerFulger:Joc încărcatSe încarcă datele jucătoruluiEveniment localSite localEroare autentificareAutentificare ca _oaspeteAutentificare drept _VizitatorAutentificare pe serverPierzatoriPierdereDirector mamerManualAcceptă oponenții manualMat în %dMinute:Minute: Mai multe canaleMai mulți jucătoriIstoric mutăriNNumeNu anima nimic. Recomandat pentru calculatoarele lente.Joc nouFără animații.Nicio conversație nu a fost selectatăFără sunetNormalObservăFinalizări obs_ervateProbabilitateOferă suspendarea _joculuiOferiți revanșăOferă oprire_a joculuiPropune remizăPropune _pauzăPropune _reluareProp_une revenirePanoul PyChess oficial.DeconectatPe FICS, evaluarea ta "Wild" cuprinde toate variantele următoare pe toate timpurile: ConectatAnimează doar _mutărileAnimează doar mutările pieselor.Doar utilizatorii înregistrați poti vorbi pe acest canalDeschide jocDeschide fișier sunetDeschide _Bază de dateCartea de deschideriEvaluarea oponentului: AltePParameteri:PauzăPionCotele pionuluiPingJoacăJoacă șah Fisher AleatorJucați revanșăJoacă șah pe _internetJoacă șah cu regulile normaleEvalua_re jucătorJucători: %dImagine pngPo_rturi;Pre_vizualizeazăPrefera figurine în _notațiiPreferințePrivatPromovareProtocol:Conectare la Șah pe InternetPyChess - Șah pe Internet: FICSFereastra de informare PyChessPyChess a pierdut legătura cu motorul; probabil acesta s-a oprit. Puteți incerca să porniți un joc nou cu motorul sau să jucați împotriva altuia.PyChess.py:QReginăCotele regineiIeși din PyChessRC_edeazăAleatorRapidEvaluatJoc evaluatEvaluareRezultatTurăCotele tureiRundaRundă:SRÎnreg_istrareSalveazăSalvează jocS_alvează joc caSalvează fişiere în:Salvează mutări înainte de închidereJoc salvatScorCaută:Grafic căutăriSelectează motorulAlege fișier sunet...Alege jocurile pe care vrei să le salvezi:Trimite ProvocareTrimite căutareReprezentant serviciuConfigureaza mediulConfigurează pozițiaÎmpărtăşeşte joculStrigăArată ConsolaAfișează _conversațiiArată _piese capturateArată sfaturi la pornireShredderLinuxChess:Amestecă_Panouri lateralePoziție simplă de șahPagină web:Îmi pare rău, '%s' este deja autentificatMod spionUtilizatStandardStandard:Pornește conversație privatăRevino o mutare înapoiRevino o mutare înainteSinucidereTTDTMCont echipaOferta de întrerupereOferta de suspendarePanoul de conversații vă dă posibilitate să comunicați cu adversarul dumneavoastră în timpul jocului, presupunând ca el sau ea este înteresat(ă).Cronomentrul nu a fost pornit.Panoul de comentarii va încerca să analizeze și să explice mutările jucateThe connection was broken - got "sfârșit de fișier" messageNumele afișat al primului jucător uman, de exemplu Ion.Numele afișat al jucătorului oaspete, de exemplu Maria.Oferta de remizăEroarea a fost: %sFișierul există deja în '%s'. Dacă îl înlocuiți, conținutul său va fi suprascris.Partida s-a încheiat cu remizăJocul a fost abandonatJocul a fost suspendatProgramul a fost terminatMutarea a eșuat pentru că %s.Fila cu mutări înregistrează mutările jucătorilor si vă dă posibilitatea să navigați prin istoria joculuiOferta de schimbare a părțiiCartea de deschideri va încerca să vă inspire în timpul deschiderii jocului arătându-vă mutări frecvente ale maeștrilor din șahOferta de întrerupereMotivul este necunoscutAbdicareaOferta de reluarePanoul de scor încearcă să evalueze pozițiile și să va arate un grafic al progresului jocului,Oferta de revenireTemeExistă %d joc cu mutări nesalvate.Există %d jocuri cu mutări nesalvate.Există %d jocuri cu mutări nesalvate.Această opțiune nu este disponibilă când provoci un jucătorAceastă opțiune nu este dispobilă pentru că provoci un oaspete, TimpControl timp: Sfatul ZileiPontul zileiPentru a juca cu Ecran complet apăsați F11. Pentru a reveni, apăsați F11 din nou.Pentru a salva un joc Joc > Salvează Joc, dați un nume de fișier și alegeți un să fie salvat. În partea de jos alegeți extensia fișierului și apoi Salveaza.Toleranță:Director turneuTradu PyChessTipUNu se poate accepta %sPanou nedescrisÎnapoiRefă o mutareRefă două mutăriDezinstaleazăNecunoscutCanal neoficial %dNeevaluatNeînregistratNecronometratRăsturnatUtilizează _analizatorUtilizează analizator _inversatFoloseşte analizatorulAşteaptăNu s-a putut salva '%(uri)s' deoarece PyChess nu știe formatul '%(ending)s'.Bun venitCând butonul este „blocat”, relația dintre „Evaluarea adversarului” și „Evaluarea ta” va fi păstrată când: a) evaluarea ta pentru tipul de joc căutat a crescut b) schimbi varianta sau controlul timpuluiAlbAlbul are o nouă piesă în avanpost: %sAlbul are o poziție înghesuităAlb:WildVictorieAn, lună, zi: #y, #m, #dDumneavoastrăPoți începe un joc nou cu Joc > Joc nou. În fereastra Joc nou poți să alegi Jucători, Control timp și Varianta de șah.Nu poți juca jocuri evaloate pentru că "Necronometrat" este ales. Nu poți juca jocuri evaluate pentru că ești autentificat ca oaspeteNu poți alege o variantă pentru ca "Necronometrat" este ales, Nu puteți schimba partea în timpul jocului.Nu aveți drepturile necesare pentru a salva fișierul. Verificați dacă ați introdus calea corectă și reîncercați.Ați fost deconectați pentru că ați fost inactive pentru mai mult de 60 minute.Nu ați deschis nicio conversați încăAți încercat să refaceți prea multe mutări.Ai trimis o ofertă de remizăAdversarul îți cere să te grăbești!Adversarul a cerut ca jocul sa fie terminat. Dacă acceptați, jocul se va termina fără modificarea evaluarilor.Adversul a cerut suspendarea jocului. Dacă acceptați ceasul jocului se va opri până când amandoi jucători sunt deacord să reia jocul.Adversarul a cerul reluarea jocului. Dacă acceptati ceasul jocului va continue de când a fost întrerupt.Adversarul a cerut refacerea ultimei(lor %s) mutări.Adversarul v-a oferit o remiză. Dacă acceptați, jocul se va termina cu scorul 1/2 - 1/2.Adversarul nu a depășit timpul.Setările dumneavoastră de panou au fost resetate. Dacă problema persistă, ar trebui să o raportați dezvoltatorilor.Evaluarea ta: Zug-zwang_Acceptă_Acțiuni_Analizează Jocul_Auto salvează jocurile terminateJucătorul _negruȘterge _căutările_Copiază PGN-ul_Refuză_Editează_Motoare_Ecran complet_JocLista j_ocurilor_GeneralA_jutorAscunde taburi când numai un joc este deschisMod ajutător_Mutare invalidă:Încarcă jocÎnchide _sesiuneaVizualizator jurna_l_Nume:Joc _nou_UrmătorMutări _observateA_dversat:_Parolă:Joacă șah normalLista _jucătorilor_PrecedentÎnlocuiește_Rotește tabla_Salvează %d document_Salvează %d documente_Salvează %d de documente_Salvează %d documente_Salvează jocCăutări / _ProvocăriAfișează panourile laterale_Sunete_Pornește jocul_Utilizează sunete în PyChess_VizualizeazăJucătorul _albCuloarea _tașiiar oaspeții nu pot juca jocuri evaluateși pe FICS, jocurile necronometrate nu pot fi evaluateși pe FICS, jocurile necronometrate se joaca cu regulile normalesă cereți adversarului să mutenegruaduce un pion mai aproapte de ultima linie: %scapturează materialface rocadaapără %sdezvoltă un(o) %(piece)s: %(cord)sdezvolta un pion: %sremizeschimbă materialgnuchess:semi-deschishttp://ro.wikipedia.org/wiki/%C5%9Eah_%28joc%29http://ro.wikipedia.org/wiki/%C5%9Eah_%28joc%29imbunătățește apărarea regeluiîn fișierul %(x)s%(y)sîn fișierele %(x)s%(y)smărește presiunea pe %smaturimută o tură pe o coloană deschisămută o tură pe o coloană parțial deschisămuta nebun in fianchetto: %sdinsă oferiți remizăsă oferiți pauzăoferă refacerea ultimei mutărioferă oprirea joculuioferă suspendarea joculuisă oferiți reluaresă oferiți schimbați parteatotal onlineschimbă un pion în %spune adversarul în șahrecupereaza un(o) %ssă renunțațisacrifică materialîmbunătățește ușor apărarea regeluiia înapoi materialcăsuța capturată (%s) este incorectămutarea necesită o piesă și o căsuțăamenință să câștige material prin %sîmpotriva.albwindow1wine nu este instalatxboardpychess-0.12.2/lang/fi/0000755000175000017470000000000012653231274015074 5ustar tamasusers00000000000000pychess-0.12.2/lang/fi/LC_MESSAGES/0000755000175000017470000000000012653231274016661 5ustar tamasusers00000000000000pychess-0.12.2/lang/fi/LC_MESSAGES/pychess.po0000644000175000017470000025316612653216211020706 0ustar tamasusers00000000000000# SOME DESCRIPTIVE TITLE. # Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER # This file is distributed under the same license as the pychess package. # # Translators: # FIRST AUTHOR , 2008 # Riku Lahtinen , 2015 msgid "" msgstr "" "Project-Id-Version: pychess\n" "Report-Msgid-Bugs-To: \n" "POT-Creation-Date: 2016-01-27 13:28+0100\n" "PO-Revision-Date: 2016-01-28 08:56+0000\n" "Last-Translator: slav0nic \n" "Language-Team: Finnish (http://www.transifex.com/gbtami/pychess/language/fi/)\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" "Language: fi\n" "Plural-Forms: nplurals=2; plural=(n != 1);\n" # "Plural-Forms: nplurals=INTEGER; plural=EXPRESSION;\n" #: glade/analyze_game.glade:22 msgid "Analyze game" msgstr "Analysoi peli" #: glade/analyze_game.glade:87 msgid "Use analyzer:" msgstr "Käytä analysaattoria:" #: glade/analyze_game.glade:122 glade/PyChess.glade:2054 msgid "Maximum analysis time in seconds:" msgstr "Maksimi analysointiaika sekunneissa:" #: glade/analyze_game.glade:163 msgid "" "If the analyzer finds a move where the evaluation difference (the difference" " between the evaluation for the move it thinks is the best move and the " "evaluation for the move made in the game) exceeds this value, it will add an" " annotation for that move (consisting of the engine's Principal Variation " "for the move) to the Annotation panel" msgstr "" #: glade/analyze_game.glade:164 msgid "Variation annotation creation threshold in centipawns:" msgstr "" #: glade/analyze_game.glade:198 msgid "Analyze from current position" msgstr "Analysoi nykyasemasta" #: glade/analyze_game.glade:214 msgid "Add threatening variation lines " msgstr "" #: glade/analyze_game.glade:229 glade/PyChess.glade:1459 msgid "Colorize analyzed moves" msgstr "Värjää analysoidut siirrot" #: glade/analyze_game.glade:244 glade/PyChess.glade:1495 msgid "Show evaluation values" msgstr "" #: glade/discovererDialog.glade:18 msgid "PyChess is discovering your engines. Please wait." msgstr "PyChess tutkii käytettävissä olevia ohjelmistoja. Odota hetki." #: glade/discovererDialog.glade:77 msgid "PyChess.py:" msgstr "PyChess.py:" #: glade/discovererDialog.glade:89 msgid "ShredderLinuxChess:" msgstr "ShredderLinuxChess:" #: glade/discovererDialog.glade:101 msgid "gnuchess:" msgstr "gnuchess:" #: glade/fics_logon.glade:7 msgid "PyChess - Connect to Internet Chess" msgstr "PyChess - Yhdistä Internet-peliin." #: glade/fics_logon.glade:47 msgid "Connect to the Free Online Chess Server" msgstr "Yhdistä Free Online Chess Serveriin" #: glade/fics_logon.glade:129 glade/taskers.glade:394 msgid "_Password:" msgstr "Salasana:" #: glade/fics_logon.glade:143 msgid "_Name:" msgstr "Nimi:" #: glade/fics_logon.glade:191 msgid "Log on as _Guest" msgstr "Kirjaudu _vierailijana" #: glade/fics_logon.glade:227 msgid "Host:" msgstr "" #: glade/fics_logon.glade:259 msgid "Po_rts:" msgstr "Po_rts:" #: glade/fics_logon.glade:271 msgid "Auto login on startup" msgstr "" #: glade/fics_logon.glade:385 msgid "S_ign up" msgstr "S_ign up" #: glade/fics_lounge.glade:35 msgid "Challenge: " msgstr "Haasta:" #: glade/fics_lounge.glade:97 msgid "Send Challenge" msgstr "Lähetä haaste" #: glade/fics_lounge.glade:133 msgid "Challenge:" msgstr "Haaste:" #: glade/fics_lounge.glade:327 glade/fics_lounge.glade:2078 msgid "Lightning:" msgstr "Salama" #: glade/fics_lounge.glade:351 glade/fics_lounge.glade:2102 msgid "Standard:" msgstr "Vakio:" #: glade/fics_lounge.glade:375 glade/fics_lounge.glade:2126 msgid "Blitz:" msgstr "Hyökkäys:" #: glade/fics_lounge.glade:400 msgid "2 min, Fischer Random, Black" msgstr "" #: glade/fics_lounge.glade:422 msgid "10 min + 6 sec/move, White" msgstr "10 min + 6 s/siirto, Valkoinen" #: glade/fics_lounge.glade:444 msgid "5 min" msgstr "5 min" #: glade/fics_lounge.glade:480 msgid "Edit Seek" msgstr "Muokkaa hakua" #: glade/fics_lounge.glade:584 lib/pychess/ic/ICLounge.py:2208 #: lib/pychess/ic/__init__.py:101 lib/pychess/Utils/GameModel.py:206 msgid "Untimed" msgstr "Ei aikarajoitusta" #: glade/fics_lounge.glade:637 msgid "Minutes: " msgstr "Minuutit:" #: glade/fics_lounge.glade:665 msgid " Gain: " msgstr "" #: glade/fics_lounge.glade:703 msgid "Time control: " msgstr "Ajan seuranta" #: glade/fics_lounge.glade:716 lib/pychess/ic/FICSObjects.py:56 #: lib/pychess/ic/ICLounge.py:1137 lib/pychess/ic/ICLounge.py:2208 #: lib/pychess/ic/__init__.py:99 msgid "Standard" msgstr "" #: glade/fics_lounge.glade:757 glade/newInOut.glade:633 msgid "Time Control" msgstr "Ajan seuranta" #: glade/fics_lounge.glade:814 glade/fics_lounge.glade:1346 msgid "Don't care" msgstr "" #: glade/fics_lounge.glade:879 msgid "Your strength: " msgstr "" #: glade/fics_lounge.glade:921 msgid "(Blitz)" msgstr "" #: glade/fics_lounge.glade:951 msgid "Opponent's strength: " msgstr "" #: glade/fics_lounge.glade:1055 msgid "" "When this button is in the \"locked\" state, the relationship\n" "between \"Opponent's strength\" and \"Your strength\" will be\n" "preserved when \n" "a) your rating for the type of game sought has changed\n" "b) you change the variant or the time control" msgstr "" #: glade/fics_lounge.glade:1095 msgid "Center:" msgstr "" #: glade/fics_lounge.glade:1134 msgid "1200" msgstr "1200" #: glade/fics_lounge.glade:1188 msgid "Tolerance:" msgstr "Toleranssi:" #: glade/fics_lounge.glade:1243 lib/pychess/ic/ICLounge.py:2452 msgid "Hide" msgstr "Piilota" #: glade/fics_lounge.glade:1289 msgid "Opponent Strength" msgstr "" #: glade/fics_lounge.glade:1386 lib/pychess/Database/gamelist.py:40 #: lib/pychess/ic/ICLounge.py:1357 lib/pychess/ic/ICLounge.py:1557 #: lib/pychess/ic/ICLounge.py:2108 lib/pychess/Utils/repr.py:10 #: lib/pychess/widgets/ChessClock.py:40 #: lib/pychess/widgets/TaskerManager.py:153 msgid "White" msgstr "Valkoinen" #: glade/fics_lounge.glade:1414 lib/pychess/Database/gamelist.py:40 #: lib/pychess/ic/ICLounge.py:1358 lib/pychess/ic/ICLounge.py:1558 #: lib/pychess/ic/ICLounge.py:2110 lib/pychess/Utils/repr.py:10 #: lib/pychess/widgets/ChessClock.py:40 #: lib/pychess/widgets/TaskerManager.py:154 msgid "Black" msgstr "Musta" #: glade/fics_lounge.glade:1453 msgid "Your Color" msgstr "" #: glade/fics_lounge.glade:1512 msgid "Play normal chess rules" msgstr "Pelaa normaalisäännöillä" #: glade/fics_lounge.glade:1552 msgid "Play" msgstr "Pelaa" #: glade/fics_lounge.glade:1618 glade/newInOut.glade:833 msgid "Chess Variant" msgstr "Shakkimuunnos" #: glade/fics_lounge.glade:1676 msgid "Rated game" msgstr "" #: glade/fics_lounge.glade:1692 msgid "Manually accept opponent" msgstr "" #: glade/fics_lounge.glade:1722 msgid "Options" msgstr "" #: glade/fics_lounge.glade:1750 msgid "PyChess - Internet Chess: FICS" msgstr "" #: glade/fics_lounge.glade:1823 msgid "_Clear Seeks" msgstr "PyChess - Internet Chess: FICS" #: glade/fics_lounge.glade:1847 msgid "_Accept" msgstr "Hyväksy" #: glade/fics_lounge.glade:1871 msgid "_Decline" msgstr "" #: glade/fics_lounge.glade:2151 msgid "2 min, Fischer Random, 1800↓, Black" msgstr "" #: glade/fics_lounge.glade:2172 msgid "10 min + 6 sec/move, 1400↑, White" msgstr "10 min + 6 sec/siirto, 1400↑, Valkoinen" #: glade/fics_lounge.glade:2193 msgid "5 min, 1200-1800, Manual" msgstr "5 min, 1200-1800, Manual" #: glade/fics_lounge.glade:2247 msgid "Send all seeks" msgstr "" #: glade/fics_lounge.glade:2301 msgid "Send seek" msgstr "" #: glade/fics_lounge.glade:2337 msgid "Create Seek" msgstr "" #: glade/fics_lounge.glade:2353 msgid "_Seeks / Challenges" msgstr "" #: glade/fics_lounge.glade:2374 lib/pychess/ic/ICLounge.py:472 #: lib/pychess/ic/ICLounge.py:670 lib/pychess/ic/ICLounge.py:1357 #: lib/pychess/ic/ICLounge.py:1358 msgid "Rating" msgstr "Rating" #: glade/fics_lounge.glade:2399 msgid "Time" msgstr "Aika" #: glade/fics_lounge.glade:2419 msgid "Seek _Graph" msgstr "Seek _Graph" #: glade/fics_lounge.glade:2444 msgid "0 Players Ready" msgstr "0 Pelaajaa valmiina" #: glade/fics_lounge.glade:2496 msgid "Challenge" msgstr "Haaste" #: glade/fics_lounge.glade:2549 glade/fics_lounge.glade:2735 msgid "Observe" msgstr "" #: glade/fics_lounge.glade:2602 msgid "Start Private Chat" msgstr "Aloita yksityinen keskustelu" #: glade/fics_lounge.glade:2659 msgid "_Player List" msgstr "" #: glade/fics_lounge.glade:2792 msgid "_Game List" msgstr "" #: glade/fics_lounge.glade:2847 msgid "_My games" msgstr "" #: glade/fics_lounge.glade:2904 glade/PyChess.glade:841 msgid "Offer _Resume" msgstr "" #: glade/fics_lounge.glade:2962 glade/PyChess.glade:880 msgid "R_esign" msgstr "" #: glade/fics_lounge.glade:3006 glade/PyChess.glade:820 msgid "Offer _Draw" msgstr "" #: glade/fics_lounge.glade:3050 msgid "Offer A_bort" msgstr "" #: glade/fics_lounge.glade:3107 msgid "Pre_view" msgstr "" #: glade/fics_lounge.glade:3151 msgid "Examine" msgstr "" #: glade/fics_lounge.glade:3208 msgid "_Archived" msgstr "" #: glade/fics_lounge.glade:3313 msgid "News" msgstr "Uutiset" #: glade/fics_lounge.glade:3345 msgid "Show Console" msgstr "" #: glade/fics_lounge.glade:3359 msgid "Show _Chat" msgstr "Näytä _keskustelu" #: glade/fics_lounge.glade:3373 msgid "_Log Off" msgstr "_Kirjaudu ulos" #: glade/fics_lounge.glade:3393 msgid "Tools" msgstr "Työkalut" #: glade/fics_lounge.glade:3428 msgid "Asymmetric Random " msgstr "" #: glade/findbar.glade:6 msgid "window1" msgstr "" #: glade/findbar.glade:21 msgid "0 of 0" msgstr "" #: glade/findbar.glade:66 msgid "Search:" msgstr "Hae:" #: glade/findbar.glade:134 msgid "_Previous" msgstr "_Edellinen" #: glade/findbar.glade:192 msgid "_Next" msgstr "_Seuraava" #: glade/newInOut.glade:45 lib/pychess/widgets/newGameDialog.py:445 msgid "New Game" msgstr "Uusi peli" #: glade/newInOut.glade:108 msgid "_Start Game" msgstr "_Aloita peli" #: glade/newInOut.glade:130 msgid "Copy FEN" msgstr "Kopioi FEN" #: glade/newInOut.glade:143 msgid "Clear" msgstr "" #: glade/newInOut.glade:156 msgid "Paste FEN" msgstr "Liitä FEN" #: glade/newInOut.glade:257 msgid "_Black player:" msgstr "_Musta pelaaja:" #: glade/newInOut.glade:274 msgid "_White player:" msgstr "_Valkoinen pelaaja:" #: glade/newInOut.glade:385 msgid "Players" msgstr "Pelaajat" #: glade/newInOut.glade:436 msgid "_Untimed" msgstr "_Ei aikarajoitusta" #: glade/newInOut.glade:475 msgid "Blitz: 5 min" msgstr "Pika: 5 min" #: glade/newInOut.glade:526 msgid "Rapid: 15 min + 10 sec/move" msgstr "Nopea: 15 min + 10 s/siirto" #: glade/newInOut.glade:575 msgid "Normal: 40 min + 15 sec/move" msgstr "Normaali: 40 min + 15s/siirto" #: glade/newInOut.glade:684 msgid "_Play Normal chess" msgstr "_Pelaa normaalia shakkia" #: glade/newInOut.glade:724 msgid "Play Fischer Random chess" msgstr "" #: glade/newInOut.glade:774 msgid "Play Losers chess" msgstr "" #: glade/newInOut.glade:919 msgid "Open Game" msgstr "" #: glade/newInOut.glade:1162 msgid "Initial Position" msgstr "Aloitusasema" #: glade/newInOut.glade:1219 msgid "Enter Game Notation" msgstr "" #: glade/newInOut.glade:1314 msgid "Halfmove clock" msgstr "" #: glade/newInOut.glade:1327 msgid "En passant line" msgstr "" #: glade/newInOut.glade:1339 msgid "Side to move" msgstr "" #: glade/newInOut.glade:1351 msgid "Move number" msgstr "" #: glade/newInOut.glade:1361 msgid "Black O-O" msgstr "Musta O-O" #: glade/newInOut.glade:1375 msgid "Black O-O-O" msgstr "Musta O-O-O" #: glade/newInOut.glade:1389 msgid "White O-O-O" msgstr "Valkoinen O-O-O" #: glade/newInOut.glade:1403 msgid "White O-O" msgstr "Valkoinen O-O" #: glade/promotion.glade:7 msgid "Promotion" msgstr "Korotus" #: glade/promotion.glade:49 lib/pychess/Utils/repr.py:12 msgid "Queen" msgstr "Kuningatar" #: glade/promotion.glade:95 lib/pychess/Utils/repr.py:12 msgid "Rook" msgstr "Torni" #: glade/promotion.glade:141 lib/pychess/Utils/repr.py:12 msgid "Bishop" msgstr "Lähetti" #: glade/promotion.glade:187 lib/pychess/Utils/repr.py:12 msgid "Knight" msgstr "Ratsu" #: glade/promotion.glade:233 lib/pychess/Utils/repr.py:12 msgid "King" msgstr "Kuningas" #: glade/promotion.glade:265 msgid "Promote pawn to what?" msgstr "Mihin korotat sotilaan?" #: glade/PyChess.glade:9 msgid "Chess client" msgstr "" #: glade/PyChess.glade:44 msgid "Game information" msgstr "Pelitiedot" #: glade/PyChess.glade:164 msgid "Event:" msgstr "Tapahtuma:" #: glade/PyChess.glade:178 msgid "Site:" msgstr "Paikka:" #: glade/PyChess.glade:204 msgid "Round:" msgstr "Kierros:" #: glade/PyChess.glade:237 msgid "White:" msgstr "Valkoinen:" #: glade/PyChess.glade:249 msgid "Black:" msgstr "Musta:" #: glade/PyChess.glade:302 msgid "Game data" msgstr "" #: glade/PyChess.glade:357 msgid "Date of game" msgstr "" #: glade/PyChess.glade:495 msgid "_Game" msgstr "" #: glade/PyChess.glade:502 msgid "_New Game" msgstr "" #: glade/PyChess.glade:515 msgid "Play _Internet Chess" msgstr "" #: glade/PyChess.glade:534 msgid "_Load Game" msgstr "" #: glade/PyChess.glade:550 msgid "Load _Recent Game" msgstr "" #: glade/PyChess.glade:558 msgid "Open _Database" msgstr "" #: glade/PyChess.glade:569 lib/pychess/widgets/newGameDialog.py:615 msgid "Setup Position" msgstr "" #: glade/PyChess.glade:579 msgid "Enter Game _Notation" msgstr "" #: glade/PyChess.glade:592 msgid "_Save Game" msgstr "" #: glade/PyChess.glade:606 msgid "Save Game _As" msgstr "" #: glade/PyChess.glade:624 msgid "Share Game" msgstr "" #: glade/PyChess.glade:630 msgid "_Export Position" msgstr "" #: glade/PyChess.glade:644 msgid "_Analyze Game" msgstr "" #: glade/PyChess.glade:678 msgid "Player _Rating" msgstr "" #: glade/PyChess.glade:723 msgid "_Edit" msgstr "" #: glade/PyChess.glade:734 msgid "_Copy PGN" msgstr "" #: glade/PyChess.glade:746 msgid "_Copy FEN" msgstr "" #: glade/PyChess.glade:763 msgid "_Engines" msgstr "_Shakkiprosessorit" #: glade/PyChess.glade:789 msgid "_Actions" msgstr "" #: glade/PyChess.glade:800 msgid "Offer _Abort" msgstr "" #: glade/PyChess.glade:810 msgid "Offer Ad_journment" msgstr "" #: glade/PyChess.glade:831 msgid "Offer _Pause" msgstr "" #: glade/PyChess.glade:847 msgid "Offer _Undo" msgstr "" #: glade/PyChess.glade:870 msgid "_Call Flag" msgstr "" #: glade/PyChess.glade:890 msgid "Ask to _Move" msgstr "" #: glade/PyChess.glade:905 msgid "Auto Call _Flag" msgstr "" #: glade/PyChess.glade:918 msgid "_View" msgstr "" #: glade/PyChess.glade:925 msgid "_Rotate Board" msgstr "" #: glade/PyChess.glade:939 msgid "_Fullscreen" msgstr "" #: glade/PyChess.glade:952 msgid "Leave _Fullscreen" msgstr "" #: glade/PyChess.glade:969 msgid "_Show Sidepanels" msgstr "" #: glade/PyChess.glade:980 msgid "_Log Viewer" msgstr "" #: glade/PyChess.glade:997 msgid "_Hint mode" msgstr "_Vihjemoodi" #: glade/PyChess.glade:1009 msgid "Sp_y mode" msgstr "" #: glade/PyChess.glade:1024 msgid "_Help" msgstr "" #: glade/PyChess.glade:1034 msgid "About Chess" msgstr "" #: glade/PyChess.glade:1043 msgid "How to Play" msgstr "" #: glade/PyChess.glade:1052 msgid "Translate PyChess" msgstr "Käännä PyChess-ohjelmaa" #: glade/PyChess.glade:1058 msgid "Tip of the Day" msgstr "Päivän vihje" #: glade/PyChess.glade:1153 msgid "Default" msgstr "Oletus" #: glade/PyChess.glade:1156 msgid "Knights" msgstr "Ratsut" #: glade/PyChess.glade:1167 lib/pychess/widgets/preferencesDialog.py:349 msgid "Beep" msgstr "" #: glade/PyChess.glade:1170 lib/pychess/widgets/preferencesDialog.py:350 msgid "Select sound file..." msgstr "" #: glade/PyChess.glade:1173 lib/pychess/widgets/preferencesDialog.py:348 msgid "No sound" msgstr "" #: glade/PyChess.glade:1180 msgid "Preferences" msgstr "" #: glade/PyChess.glade:1218 msgid "The displayed name of the first human player, e.g., John." msgstr "" #: glade/PyChess.glade:1230 msgid "Name of _first human player:" msgstr "" #: glade/PyChess.glade:1259 msgid "The displayed name of the guest player, e.g., Mary." msgstr "" #: glade/PyChess.glade:1271 msgid "Name of s_econd human player:" msgstr "" #: glade/PyChess.glade:1307 msgid "_Hide tabs when only one game is open" msgstr "" #: glade/PyChess.glade:1312 msgid "" "If set, this hides the tab in the top of the playing window, when it is not " "needed." msgstr "" #: glade/PyChess.glade:1326 msgid "_Use main app closer [x] to close all games" msgstr "" #: glade/PyChess.glade:1331 msgid "" "If set, clicking on main application window closer first time it closes all " "games." msgstr "" #: glade/PyChess.glade:1345 msgid "Auto _rotate board to current human player" msgstr "" #: glade/PyChess.glade:1350 msgid "" "If set, the board will turn after each move, to show the natural view for " "the current player." msgstr "Jos valittuna, lauta kääntyy joka siirron jälkeen näyttäen pelivuorossa olevan pelaajan näkymän." #: glade/PyChess.glade:1364 msgid "Auto _promote to queen" msgstr "" #: glade/PyChess.glade:1369 msgid "If set, pawn promotes to queen without promotion dialog selection." msgstr "" #: glade/PyChess.glade:1383 msgid "Face _to Face display mode" msgstr "" #: glade/PyChess.glade:1388 msgid "" "If set, the black pieces will be head down, suitable for playing against " "friends on mobile devices." msgstr "" #: glade/PyChess.glade:1402 msgid "Sho_w cords" msgstr "" #: glade/PyChess.glade:1407 msgid "" "If set, the playing board will display labels and ranks for each chess " "field. These are usable in chess notation." msgstr "" #: glade/PyChess.glade:1421 msgid "Show _captured pieces" msgstr "" #: glade/PyChess.glade:1426 msgid "If set, the captured figurines will be shown next to the board." msgstr "" #: glade/PyChess.glade:1440 msgid "Prefer figures in _notation" msgstr "" #: glade/PyChess.glade:1445 msgid "" "If set, PyChess will use figures to express moved pieces, rather than " "uppercase letters." msgstr "" #: glade/PyChess.glade:1464 msgid "If set, PyChess will colorize suboptimal analyzed moves with red." msgstr "" #: glade/PyChess.glade:1477 msgid "Show elapsed move times" msgstr "" #: glade/PyChess.glade:1482 msgid "If set, the elapsed time that a player used for the move is shown." msgstr "" #: glade/PyChess.glade:1500 msgid "If set, the hint analyzer engine evaluation value is shown." msgstr "Jos valittuna, vihjeanalysaattorin arvo näytetään." #: glade/PyChess.glade:1526 msgid "General Options" msgstr "" #: glade/PyChess.glade:1560 msgid "F_ull board animation" msgstr "" #: glade/PyChess.glade:1565 msgid "Animate pieces, board rotation and more. Use this on fast machines." msgstr "" #: glade/PyChess.glade:1579 msgid "Only animate _moves" msgstr "" #: glade/PyChess.glade:1584 msgid "Only animate piece moves." msgstr "" #: glade/PyChess.glade:1599 msgid "No _animation" msgstr "" #: glade/PyChess.glade:1604 msgid "Never use animation. Use this on slow machines." msgstr "" #: glade/PyChess.glade:1632 msgid "Animation" msgstr "Animointi" #: glade/PyChess.glade:1651 msgid "_General" msgstr "" #: glade/PyChess.glade:1692 msgid "Use opening _book" msgstr "" #: glade/PyChess.glade:1697 msgid "If set, PyChess will suggest best opening moves on hint panel." msgstr "Jos valittuna, PyChess näyttää parhaat avaussiirrot Vihjeet-ikkunassa." #: glade/PyChess.glade:1724 msgid "Polyglot book file:" msgstr "" #: glade/PyChess.glade:1768 msgid "Use _local tablebases" msgstr "" #: glade/PyChess.glade:1773 msgid "" "If set, PyChess will show game results for different moves in positions containing 6 or less pieces.\n" "You can download tablebase files from:\n" "http://www.olympuschess.com/egtb/gaviota/" msgstr "" #: glade/PyChess.glade:1803 msgid "Gaviota TB path:" msgstr "" #: glade/PyChess.glade:1843 msgid "Use _online tablebases" msgstr "" #: glade/PyChess.glade:1848 msgid "" "If set, PyChess will show game results for different moves in positions containing 6 or less pieces.\n" "It will search positions from http://www.k4it.de/" msgstr "" #: glade/PyChess.glade:1870 msgid "Opening, endgame" msgstr "" #: glade/PyChess.glade:1904 msgid "Use _analyzer" msgstr "" #: glade/PyChess.glade:1946 msgid "" "The analyzer will run in the background and analyze the game. This is " "necessary for the hint mode to work" msgstr "Analysaattori laskee taustalla ja analysoi peliä. Tämä vaaditaan, jotta vihjemoodi toimisi" #: glade/PyChess.glade:1978 msgid "Use _inverted analyzer" msgstr "" #: glade/PyChess.glade:2020 msgid "" "The inverse analyzer will analyze the game as if your opponent was to move. " "This is necessary for the spy mode to work" msgstr "" #: glade/PyChess.glade:2096 msgid "Analyzing" msgstr "" #: glade/PyChess.glade:2118 msgid "_Hints" msgstr "_Vihjeet" #: glade/PyChess.glade:2263 msgid "Uninstall" msgstr "" #: glade/PyChess.glade:2317 msgid "Ac_tive" msgstr "" #: glade/PyChess.glade:2367 msgid "Installed Sidepanels" msgstr "" #: glade/PyChess.glade:2382 msgid "Side_panels" msgstr "" #: glade/PyChess.glade:2440 msgid "Light Squares :" msgstr "" #: glade/PyChess.glade:2479 msgid "Dark Squares :" msgstr "" #: glade/PyChess.glade:2515 msgid "Reset Default Colours" msgstr "" #: glade/PyChess.glade:2551 msgid "Board Colours" msgstr "" #: glade/PyChess.glade:2610 msgid "Chess Sets" msgstr "" #: glade/PyChess.glade:2634 msgid "Themes" msgstr "" #: glade/PyChess.glade:2659 msgid "_Use sounds in PyChess" msgstr "" #: glade/PyChess.glade:2982 msgid "A player _checks:" msgstr "" #: glade/PyChess.glade:2997 msgid "A player _moves:" msgstr "" #: glade/PyChess.glade:3010 msgid "Game is _drawn:" msgstr "" #: glade/PyChess.glade:3025 msgid "Game is _lost:" msgstr "" #: glade/PyChess.glade:3040 msgid "Game is _won:" msgstr "" #: glade/PyChess.glade:3055 msgid "A player c_aptures:" msgstr "" #: glade/PyChess.glade:3084 msgid "Game is _set-up:" msgstr "" #: glade/PyChess.glade:3136 msgid "_Observed moves:" msgstr "" #: glade/PyChess.glade:3151 msgid "Observed _ends:" msgstr "" #: glade/PyChess.glade:3265 msgid "Short on _time:" msgstr "" #: glade/PyChess.glade:3317 msgid "_Invalid move:" msgstr "" #: glade/PyChess.glade:3369 msgid "Activate alarm when _remaining sec is:" msgstr "" #: glade/PyChess.glade:3416 msgid "Play Sound When..." msgstr "" #: glade/PyChess.glade:3438 msgid "_Sounds" msgstr "" #: glade/PyChess.glade:3463 msgid "_Auto save finished games" msgstr "" #: glade/PyChess.glade:3497 msgid "Save files to:" msgstr "" #: glade/PyChess.glade:3525 msgid "Use name format:" msgstr "" #: glade/PyChess.glade:3569 msgid "Names: #n1, #n2" msgstr "" #: glade/PyChess.glade:3582 msgid "Year, month, day: #y, #m, #d" msgstr "" #: glade/PyChess.glade:3619 msgid "Save elapsed move _times" msgstr "" #: glade/PyChess.glade:3644 msgid "Save analyzing engine _evaluation values" msgstr "" #: glade/PyChess.glade:3669 msgid "Save _own games only" msgstr "" #: glade/PyChess.glade:3698 msgid "Save" msgstr "Tallenna" #: glade/PyChess.glade:3728 msgid "uci" msgstr "" #: glade/PyChess.glade:3731 msgid "xboard" msgstr "" #: glade/PyChess.glade:3739 msgid "Manage engines" msgstr "Hallitse shakkiprosessoreita" #: glade/PyChess.glade:3837 msgid "Command:" msgstr "" #: glade/PyChess.glade:3851 msgid "Protocol:" msgstr "" #: glade/PyChess.glade:3865 msgid "Parameters:" msgstr "Parametrit:" #: glade/PyChess.glade:3878 msgid "Command line parameters needed by the engine." msgstr "Shakkiprosessori vaatii komentoriviparametreja" #: glade/PyChess.glade:3903 msgid "" "Engines use uci or xboard communication protocol to talk to the GUI.\n" "If it can use both you can set here which one you like." msgstr "" #: glade/PyChess.glade:3929 msgid "Working directory:" msgstr "Työhakemisto:" #: glade/PyChess.glade:3942 msgid "The directory where the engine will be started from." msgstr "Hakemisto, mistä shakkiprosessori käynnistetään." #: glade/saveGamesDialog.glade:7 msgid "Quit PyChess" msgstr "Lopeta PyChess" #: glade/saveGamesDialog.glade:24 lib/pychess/widgets/ionest.py:424 msgid "Close _without Saving" msgstr "Sulje tallentamatta" #: glade/saveGamesDialog.glade:83 msgid "_Save %d documents" msgstr "" #: glade/saveGamesDialog.glade:141 msgid "" "There are %d games with unsaved moves. Save changes before " "closing?" msgstr "" #: glade/saveGamesDialog.glade:161 msgid "Select the games you want to save:" msgstr "Valitse pelit, jotka haluat tallentaa:" #: glade/saveGamesDialog.glade:204 msgid "If you don't save, new changes to your games will be permanently lost." msgstr "Jos et tallenna, menetät tallentamattomat muutoksesi lopullisesti." #: glade/taskers.glade:126 msgid "_Opponent:" msgstr "" #: glade/taskers.glade:154 msgid "_Your Color:" msgstr "" #: glade/taskers.glade:219 msgid "_Start Game" msgstr "" #: glade/taskers.glade:338 msgid "Log on as G_uest" msgstr "" #: glade/taskers.glade:410 msgid "Ha_ndle:" msgstr "" #: glade/taskers.glade:469 msgid "_Connect to server" msgstr "" #: glade/tipoftheday.glade:7 msgid "Tip Of The day" msgstr "" #: glade/tipoftheday.glade:62 msgid "Show tips at startup" msgstr "" #: lib/pychess/Main.py:302 msgid "http://en.wikipedia.org/wiki/Chess" msgstr "" #: lib/pychess/Main.py:305 msgid "http://en.wikipedia.org/wiki/Rules_of_chess" msgstr "" #: lib/pychess/Main.py:370 lib/pychess/widgets/gamenanny.py:80 msgid "Welcome" msgstr "Tervetuloa" #: lib/pychess/Database/gamelist.py:40 msgid "Id" msgstr "" #: lib/pychess/Database/gamelist.py:40 msgid "W Elo" msgstr "" #: lib/pychess/Database/gamelist.py:40 msgid "B Elo" msgstr "" #: lib/pychess/Database/gamelist.py:41 msgid "Result" msgstr "Tulos" #: lib/pychess/Database/gamelist.py:41 msgid "Event" msgstr "Tapahtuma" #: lib/pychess/Database/gamelist.py:41 msgid "Site" msgstr "Paikka" #: lib/pychess/Database/gamelist.py:41 msgid "Round" msgstr "Kierros" #: lib/pychess/Database/gamelist.py:41 msgid "Date" msgstr "Päiväys" #: lib/pychess/Database/gamelist.py:41 msgid "ECO" msgstr "ECO" #: lib/pychess/Database/gamelist.py:62 msgid "PyChess Game Database" msgstr "" #: lib/pychess/Database/PgnImport.py:188 #, python-format msgid "The game #%s can't be loaded, because of an error parsing FEN" msgstr "" #: lib/pychess/ic/FICSConnection.py:139 msgid "The connection was broken - got \"end of file\" message" msgstr "" #: lib/pychess/ic/FICSConnection.py:140 #, python-format msgid "'%s' is not a registered name" msgstr "" #: lib/pychess/ic/FICSConnection.py:141 msgid "" "The entered password was invalid.\n" "If you forgot your password, go to http://www.freechess.org/password to request a new one over email." msgstr "" #: lib/pychess/ic/FICSConnection.py:145 #, python-format msgid "Sorry '%s' is already logged in" msgstr "" #: lib/pychess/ic/FICSConnection.py:146 #, python-format msgid "'%s' is a registered name. If it is yours, type the password." msgstr "" #: lib/pychess/ic/FICSConnection.py:147 msgid "" "Due to abuse problems, guest connections have been prevented.\n" "You can still register on http://www.freechess.org" msgstr "" #: lib/pychess/ic/FICSConnection.py:166 msgid "Connecting to server" msgstr "Yhdistetään palvelimeen" #: lib/pychess/ic/FICSConnection.py:181 msgid "Logging on to server" msgstr "Kirjaudutaan palvelimeen" #: lib/pychess/ic/FICSConnection.py:239 msgid "Setting up environment" msgstr "" #: lib/pychess/ic/FICSObjects.py:35 lib/pychess/ic/FICSObjects.py:47 #, python-format msgid "%(player)s is %(status)s" msgstr "" #: lib/pychess/ic/FICSObjects.py:46 msgid "not playing" msgstr "" #: lib/pychess/ic/FICSObjects.py:54 lib/pychess/ic/ICLounge.py:1136 #: lib/pychess/ic/ICLounge.py:2209 lib/pychess/ic/__init__.py:98 #: lib/pychess/widgets/newGameDialog.py:153 msgid "Blitz" msgstr "" #: lib/pychess/ic/FICSObjects.py:58 lib/pychess/ic/ICLounge.py:1137 #: lib/pychess/ic/ICLounge.py:2209 lib/pychess/ic/__init__.py:100 msgid "Lightning" msgstr "" #: lib/pychess/ic/FICSObjects.py:60 lib/pychess/Variants/atomic.py:15 msgid "Atomic" msgstr "" #: lib/pychess/ic/FICSObjects.py:62 lib/pychess/Variants/bughouse.py:9 msgid "Bughouse" msgstr "" #: lib/pychess/ic/FICSObjects.py:64 lib/pychess/Variants/crazyhouse.py:9 msgid "Crazyhouse" msgstr "" #: lib/pychess/ic/FICSObjects.py:66 lib/pychess/Variants/losers.py:9 msgid "Losers" msgstr "" #: lib/pychess/ic/FICSObjects.py:68 lib/pychess/Variants/suicide.py:12 msgid "Suicide" msgstr "" #: lib/pychess/ic/FICSObjects.py:70 lib/pychess/ic/__init__.py:129 msgid "Wild" msgstr "" #: lib/pychess/ic/FICSObjects.py:117 msgid "Online" msgstr "" #: lib/pychess/ic/FICSObjects.py:118 lib/pychess/ic/FICSObjects.py:143 msgid "Offline" msgstr "" #: lib/pychess/ic/FICSObjects.py:133 msgid "Available" msgstr "" #: lib/pychess/ic/FICSObjects.py:135 msgid "Playing" msgstr "" #: lib/pychess/ic/FICSObjects.py:141 msgid "Idle" msgstr "" #: lib/pychess/ic/FICSObjects.py:145 msgid "Examining" msgstr "" #: lib/pychess/ic/FICSObjects.py:147 msgid "Not Available" msgstr "" #: lib/pychess/ic/FICSObjects.py:149 msgid "Running Simul Match" msgstr "" #: lib/pychess/ic/FICSObjects.py:151 msgid "In Tournament" msgstr "" #: lib/pychess/ic/FICSObjects.py:308 lib/pychess/ic/FICSObjects.py:492 #: lib/pychess/ic/ICLounge.py:2278 msgid "Unrated" msgstr "" #: lib/pychess/ic/FICSObjects.py:491 lib/pychess/ic/ICLounge.py:670 #: lib/pychess/ic/ICLounge.py:1358 lib/pychess/ic/ICLounge.py:1558 #: lib/pychess/ic/ICLounge.py:2113 msgid "Rated" msgstr "" #: lib/pychess/ic/FICSObjects.py:498 lib/pychess/ic/ICLounge.py:2098 #, python-format msgid "%d min" msgstr "" #: lib/pychess/ic/FICSObjects.py:500 #, python-format msgid " + %d sec" msgstr "" #: lib/pychess/ic/FICSObjects.py:517 #, python-format msgid "%(player)s plays %(color)s" msgstr "" #: lib/pychess/ic/FICSObjects.py:519 lib/pychess/ic/ICLounge.py:909 msgid "white" msgstr "valkoinen" #: lib/pychess/ic/FICSObjects.py:519 lib/pychess/ic/ICLounge.py:909 msgid "black" msgstr "musta" #: lib/pychess/ic/FICSObjects.py:565 msgid "This is a continuation of an adjourned match" msgstr "" #: lib/pychess/ic/FICSObjects.py:654 msgid "Opponent Rating" msgstr "" #: lib/pychess/ic/FICSObjects.py:656 msgid "Manual Accept" msgstr "" #: lib/pychess/ic/FICSObjects.py:810 msgid "Private" msgstr "Yksityinen" #: lib/pychess/ic/FICSObjects.py:930 lib/pychess/ic/ICLounge.py:527 #: lib/pychess/Savers/epd.py:139 msgid "Unknown" msgstr "Tuntematon" #: lib/pychess/ic/ICLogon.py:159 lib/pychess/ic/ICLogon.py:165 msgid "Connection Error" msgstr "" #: lib/pychess/ic/ICLogon.py:161 msgid "Log on Error" msgstr "" #: lib/pychess/ic/ICLogon.py:163 msgid "Connection was closed" msgstr "Yhteys suljettiin" #: lib/pychess/ic/ICLogon.py:169 msgid "Address Error" msgstr "" #: lib/pychess/ic/ICLogon.py:172 msgid "Auto-logout" msgstr "" #: lib/pychess/ic/ICLogon.py:173 msgid "You have been logged out because you were idle more than 60 minutes" msgstr "" #: lib/pychess/ic/ICLounge.py:222 msgid "You have to set kibitz on to see bot messages here." msgstr "" #: lib/pychess/ic/ICLounge.py:241 msgid "" "You may only have 3 outstanding seeks at the same time. If you want to add a" " new seek you must clear your currently active seeks. Clear your seeks?" msgstr "" #: lib/pychess/ic/ICLounge.py:258 msgid "You can't touch this! You are examining a game." msgstr "" #: lib/pychess/ic/ICLounge.py:270 msgid " has declined your offer for a match" msgstr "" #: lib/pychess/ic/ICLounge.py:283 msgid " is censoring you" msgstr "" #: lib/pychess/ic/ICLounge.py:296 msgid " noplay listing you" msgstr "" #: lib/pychess/ic/ICLounge.py:311 msgid " uses a formula not fitting your match request:" msgstr "" #: lib/pychess/ic/ICLounge.py:325 msgid "to manual accept" msgstr "" #: lib/pychess/ic/ICLounge.py:327 msgid "to automatic accept" msgstr "" #: lib/pychess/ic/ICLounge.py:329 msgid "rating range now" msgstr "" #: lib/pychess/ic/ICLounge.py:330 msgid "Seek updated" msgstr "" #: lib/pychess/ic/ICLounge.py:342 msgid "Your seeks have been removed" msgstr "" #: lib/pychess/ic/ICLounge.py:363 msgid " has arrived" msgstr "" #: lib/pychess/ic/ICLounge.py:370 msgid " has departed" msgstr "" #: lib/pychess/ic/ICLounge.py:374 msgid " is present" msgstr "" #: lib/pychess/ic/ICLounge.py:391 sidepanel/chatPanel.py:17 msgid "Chat" msgstr "Keskustelu" #: lib/pychess/ic/ICLounge.py:472 sidepanel/bookPanel.py:366 msgid "Win" msgstr "" #: lib/pychess/ic/ICLounge.py:472 sidepanel/bookPanel.py:360 msgid "Draw" msgstr "" #: lib/pychess/ic/ICLounge.py:472 sidepanel/bookPanel.py:363 msgid "Loss" msgstr "" #: lib/pychess/ic/ICLounge.py:482 msgid "" "On FICS, your \"Wild\" rating encompasses all of the following variants at " "all time controls:\n" msgstr "" #: lib/pychess/ic/ICLounge.py:494 msgid "Sanctions" msgstr "" #: lib/pychess/ic/ICLounge.py:499 msgid "Email" msgstr "Sähköposti" #: lib/pychess/ic/ICLounge.py:504 msgid "Spent" msgstr "" #: lib/pychess/ic/ICLounge.py:506 msgid "online in total" msgstr "" #: lib/pychess/ic/ICLounge.py:512 msgid "Ping" msgstr "" #: lib/pychess/ic/ICLounge.py:517 msgid "Connecting" msgstr "Yhdistetään" #: lib/pychess/ic/ICLounge.py:544 msgid "" "You are currently logged in as a guest.\n" "A guest can't play rated games and therefore isn't able to play as many of the types of matches offered as a registered user. To register an account, go to http://www.freechess.org/Register/index.html." msgstr "" #: lib/pychess/ic/ICLounge.py:669 lib/pychess/ic/ICLounge.py:1136 msgid "Name" msgstr "Nimi" #: lib/pychess/ic/ICLounge.py:670 lib/pychess/ic/ICLounge.py:1358 #: lib/pychess/ic/ICLounge.py:1558 msgid "Type" msgstr "" #: lib/pychess/ic/ICLounge.py:670 lib/pychess/ic/ICLounge.py:1558 msgid "Clock" msgstr "Kello" #: lib/pychess/ic/ICLounge.py:726 lib/pychess/ic/ICLounge.py:923 #: lib/pychess/Players/Human.py:250 msgid "Accept" msgstr "Hyväksy" #: lib/pychess/ic/ICLounge.py:728 msgid "Assess" msgstr "" #: lib/pychess/ic/ICLounge.py:734 msgid "Archived" msgstr "" #: lib/pychess/ic/ICLounge.py:848 #, python-format msgid "Active seeks: %d" msgstr "" #: lib/pychess/ic/ICLounge.py:897 #, python-format msgid "" " would like to resume your adjourned %(time)s %(gametype)s " "game." msgstr "" #: lib/pychess/ic/ICLounge.py:902 #, python-format msgid "" " challenges you to a %(time)s %(rated)s %(gametype)s game" msgstr "" #: lib/pychess/ic/ICLounge.py:907 #, python-format msgid " where %(player)s plays %(color)s." msgstr "" #: lib/pychess/ic/ICLounge.py:924 lib/pychess/Players/Human.py:251 msgid "Decline" msgstr "Kieltäydy" #: lib/pychess/ic/ICLounge.py:1065 msgid " min" msgstr "min" #: lib/pychess/ic/ICLounge.py:1137 msgid "Status" msgstr "" #: lib/pychess/ic/ICLounge.py:1203 lib/pychess/ic/ICLounge.py:1233 #, python-format msgid "Players: %d" msgstr "" #: lib/pychess/ic/ICLounge.py:1469 #, python-format msgid "Games running: %d" msgstr "" #: lib/pychess/ic/ICLounge.py:1559 msgid "Date/Time" msgstr "" #: lib/pychess/ic/ICLounge.py:1614 #, python-format msgid "" " with whom you have an adjourned %(timecontrol)s %(gametype)s " "game is online." msgstr "" #: lib/pychess/ic/ICLounge.py:1635 msgid "Request Continuation" msgstr "" #: lib/pychess/ic/ICLounge.py:1637 msgid "Examine Adjourned Game" msgstr "" #: lib/pychess/ic/ICLounge.py:1965 msgid "" "The chain button is disabled because you are logged in as a guest. Guests " "can't establish ratings, and the chain button's state has no effect when " "there is no rating to which to tie \"Opponent Strength\" to" msgstr "" #: lib/pychess/ic/ICLounge.py:2006 msgid "Challenge: " msgstr "" #: lib/pychess/ic/ICLounge.py:2044 msgid "If set you can refuse players accepting your seek" msgstr "" #: lib/pychess/ic/ICLounge.py:2048 lib/pychess/ic/ICLounge.py:2051 msgid "This option is not applicable because you're challenging a player" msgstr "" #: lib/pychess/ic/ICLounge.py:2064 msgid "Edit Seek: " msgstr "" #: lib/pychess/ic/ICLounge.py:2095 #, python-format msgid "%(minutes)d min + %(gain)d sec/move" msgstr "" #: lib/pychess/ic/ICLounge.py:2116 msgid "Manual" msgstr "" #: lib/pychess/ic/ICLounge.py:2256 msgid "Any strength" msgstr "" #: lib/pychess/ic/ICLounge.py:2308 msgid "You can't play rated games because you are logged in as a guest" msgstr "" #: lib/pychess/ic/ICLounge.py:2312 msgid "You can't play rated games because \"Untimed\" is checked, " msgstr "Et voi pelata pisteytettyjä pelejä, koska \"Ei aikarajoitusta\" on valittuna," #: lib/pychess/ic/ICLounge.py:2313 msgid "and on FICS, untimed games can't be rated" msgstr "ja FICS:ssä aikarajoittamia pelejä ei voi pisteyttää" #: lib/pychess/ic/ICLounge.py:2317 msgid "This option is not available because you're challenging a guest, " msgstr "" #: lib/pychess/ic/ICLounge.py:2318 msgid "and guests can't play rated games" msgstr "" #: lib/pychess/ic/ICLounge.py:2332 lib/pychess/Variants/shuffle.py:16 #: lib/pychess/widgets/newGameDialog.py:266 msgid "Shuffle" msgstr "" #: lib/pychess/ic/ICLounge.py:2333 lib/pychess/widgets/newGameDialog.py:267 msgid "Other (standard rules)" msgstr "" #: lib/pychess/ic/ICLounge.py:2334 lib/pychess/widgets/newGameDialog.py:268 msgid "Other (non standard rules)" msgstr "" #: lib/pychess/ic/ICLounge.py:2421 msgid "You can't select a variant because \"Untimed\" is checked, " msgstr "Et voi valita vaihtoehtoa, koska \"Ei aikarajoitusta\" on valittuna," #: lib/pychess/ic/ICLounge.py:2422 msgid "and on FICS, untimed games have to be normal chess rules" msgstr "ja FICS:ssä aikarajoittamattomissa peleissä tulee olla normaalit sakkisäännöt" #: lib/pychess/ic/ICLounge.py:2454 msgid "Change Tolerance" msgstr "" #: lib/pychess/ic/__init__.py:102 msgid "Examined" msgstr "" #: lib/pychess/ic/__init__.py:103 msgid "Other" msgstr "" #: lib/pychess/ic/__init__.py:182 msgid "Administrator" msgstr "" #: lib/pychess/ic/__init__.py:182 msgid "Blindfold Account" msgstr "" #: lib/pychess/ic/__init__.py:182 msgid "Computer" msgstr "" #: lib/pychess/ic/__init__.py:183 msgid "Team Account" msgstr "" #: lib/pychess/ic/__init__.py:183 msgid "Unregistered" msgstr "" #: lib/pychess/ic/__init__.py:183 msgid "Chess Advisor" msgstr "" #: lib/pychess/ic/__init__.py:184 msgid "Service Representative" msgstr "" #: lib/pychess/ic/__init__.py:184 msgid "Tournament Director" msgstr "" #: lib/pychess/ic/__init__.py:184 msgid "Mamer Manager" msgstr "" #: lib/pychess/ic/__init__.py:185 msgid "Grand Master" msgstr "" #: lib/pychess/ic/__init__.py:185 msgid "International Master" msgstr "" #: lib/pychess/ic/__init__.py:185 msgid "FIDE Master" msgstr "" #: lib/pychess/ic/__init__.py:186 msgid "Woman Grand Master" msgstr "" #: lib/pychess/ic/__init__.py:186 msgid "Woman International Master" msgstr "" #: lib/pychess/ic/__init__.py:186 msgid "Woman FIDE Master" msgstr "" #: lib/pychess/ic/__init__.py:187 msgid "Dummy Account" msgstr "" #: lib/pychess/ic/__init__.py:191 msgid "*" msgstr "" #: lib/pychess/ic/__init__.py:191 lib/pychess/Utils/repr.py:14 msgid "B" msgstr "" #: lib/pychess/ic/__init__.py:191 msgid "C" msgstr "" #: lib/pychess/ic/__init__.py:192 msgid "T" msgstr "" #: lib/pychess/ic/__init__.py:192 msgid "U" msgstr "" #: lib/pychess/ic/__init__.py:192 msgid "CA" msgstr "" #: lib/pychess/ic/__init__.py:193 msgid "SR" msgstr "" #: lib/pychess/ic/__init__.py:193 msgid "TD" msgstr "" #: lib/pychess/ic/__init__.py:193 msgid "TM" msgstr "" #: lib/pychess/ic/__init__.py:194 msgid "GM" msgstr "" #: lib/pychess/ic/__init__.py:194 msgid "IM" msgstr "" #: lib/pychess/ic/__init__.py:194 msgid "FM" msgstr "" #: lib/pychess/ic/__init__.py:195 msgid "WGM" msgstr "" #: lib/pychess/ic/__init__.py:195 msgid "WIM" msgstr "" #: lib/pychess/ic/__init__.py:195 msgid "WFM" msgstr "" #: lib/pychess/ic/__init__.py:195 msgid "D" msgstr "" #: lib/pychess/ic/__init__.py:195 msgid "H" msgstr "" #: lib/pychess/ic/__init__.py:195 msgid "CM" msgstr "" #: lib/pychess/ic/__init__.py:195 msgid "FA" msgstr "" #: lib/pychess/ic/__init__.py:195 msgid "NM" msgstr "" #: lib/pychess/Players/CECPEngine.py:857 #, python-format msgid "The engine %s reports an error:" msgstr "Shakkiprosessori %s raportoi virheestä:" #: lib/pychess/Players/Human.py:20 msgid "Your opponent has offered you a draw." msgstr "Vastustajasi tarjoaa sinulle tasapeliä." #: lib/pychess/Players/Human.py:21 msgid "" "Your opponent has offered you a draw. If you accept this offer, the game " "will end with a score of 1/2 - 1/2." msgstr "Vastustajasi on tarjonnut tasapeliä. Jos hyväksyt tämän tarjouksen, peli päättyy pisteisiin 1/2 - 1/2." #: lib/pychess/Players/Human.py:23 msgid "Your opponent wants to abort the game." msgstr "Vastustajasi haluaa lopettaa pelin." #: lib/pychess/Players/Human.py:24 msgid "" "Your opponent has asked that the game be aborted. If you accept this offer, " "the game will end with no rating change." msgstr "Vastustajasi on pyytänyt pelin lopettamista. Jos hyväksyt tarjouksen, peli päättyy ja pelaajien pisteet säilyvät ennallaan." #: lib/pychess/Players/Human.py:26 msgid "Your opponent wants to adjourn the game." msgstr "Vastustajasi haluaa keskeyttää pelin." #: lib/pychess/Players/Human.py:27 msgid "" "Your opponent has asked that the game be adjourned. If you accept this " "offer, the game will be adjourned and you can resume it later (when your " "opponent is online and both players agree to resume)." msgstr "Vastustajasi haluaa poistua pelistä. Jos hyväksyt tarjouksen, peli keskeytetään, mutta voit palata siihen myöhemmin (kun vastustajasi on kirjautunut ja molemmat pelaajat haluavat jatkaa)" #: lib/pychess/Players/Human.py:29 #, python-format msgid "Your opponent wants to undo %s move(s)." msgstr "" #: lib/pychess/Players/Human.py:30 #, python-format msgid "" "Your opponent has asked that the last %s move(s) be undone. If you accept " "this offer, the game will continue from the earlier position." msgstr "" #: lib/pychess/Players/Human.py:32 msgid "Your opponent wants to pause the game." msgstr "" #: lib/pychess/Players/Human.py:33 msgid "" "Your opponent has asked that the game be paused. If you accept this offer, " "the game clock will be paused until both players agree to resume the game." msgstr "" #: lib/pychess/Players/Human.py:35 msgid "Your opponent wants to resume the game." msgstr "" #: lib/pychess/Players/Human.py:36 msgid "" "Your opponent has asked that the game be resumed. If you accept this offer, " "the game clock will continue from where it was paused." msgstr "" #: lib/pychess/Players/Human.py:40 msgid "The resignation" msgstr "Luovutus" #: lib/pychess/Players/Human.py:41 msgid "The flag call" msgstr "" #: lib/pychess/Players/Human.py:42 msgid "The draw offer" msgstr "" #: lib/pychess/Players/Human.py:43 msgid "The abort offer" msgstr "" #: lib/pychess/Players/Human.py:44 msgid "The adjourn offer" msgstr "" #: lib/pychess/Players/Human.py:45 msgid "The pause offer" msgstr "" #: lib/pychess/Players/Human.py:46 msgid "The resume offer" msgstr "" #: lib/pychess/Players/Human.py:47 msgid "The offer to switch sides" msgstr "" #: lib/pychess/Players/Human.py:48 msgid "The takeback offer" msgstr "" #: lib/pychess/Players/Human.py:52 msgid "resign" msgstr "luovuttaa" #: lib/pychess/Players/Human.py:53 msgid "call your opponents flag" msgstr "" #: lib/pychess/Players/Human.py:54 msgid "offer a draw" msgstr "" #: lib/pychess/Players/Human.py:55 msgid "offer an abort" msgstr "" #: lib/pychess/Players/Human.py:56 msgid "offer to adjourn" msgstr "" #: lib/pychess/Players/Human.py:57 msgid "offer a pause" msgstr "" #: lib/pychess/Players/Human.py:58 msgid "offer to resume" msgstr "" #: lib/pychess/Players/Human.py:59 msgid "offer to switch sides" msgstr "" #: lib/pychess/Players/Human.py:60 msgid "offer a takeback" msgstr "" #: lib/pychess/Players/Human.py:61 msgid "ask your opponent to move" msgstr "" #: lib/pychess/Players/Human.py:66 msgid "Your opponent is not out of time." msgstr "" #: lib/pychess/Players/Human.py:68 msgid "The clock hasn't been started yet." msgstr "" #: lib/pychess/Players/Human.py:70 msgid "You can't switch colors during the game." msgstr "" #: lib/pychess/Players/Human.py:72 msgid "You have tried to undo too many moves." msgstr "" #: lib/pychess/Players/Human.py:180 msgid "Your opponent asks you to hurry!" msgstr "" #: lib/pychess/Players/Human.py:181 msgid "" "Generally this means nothing, as the game is time-based, but if you want to " "please your opponent, perhaps you should get going." msgstr "" #: lib/pychess/Players/Human.py:259 #, python-format msgid "%s was declined by your opponent" msgstr "" #: lib/pychess/Players/Human.py:260 #, python-format msgid "Resend %s?" msgstr "" #: lib/pychess/Players/Human.py:267 msgid "Resend" msgstr "" #: lib/pychess/Players/Human.py:275 #, python-format msgid "%s was withdrawn by your opponent" msgstr "" #: lib/pychess/Players/Human.py:276 msgid "Your opponent seems to have changed their mind." msgstr "" #: lib/pychess/Players/Human.py:290 #, python-format msgid "Unable to accept %s" msgstr "" #: lib/pychess/Players/Human.py:291 msgid "Probably because it has been withdrawn." msgstr "" #: lib/pychess/Players/Human.py:298 #, python-format msgid "%s returns an error" msgstr "" #: lib/pychess/Savers/chessalpha2.py:12 msgid "Chess Alpha 2 Diagram" msgstr "" #: lib/pychess/Savers/chesspastebin.py:39 msgid "Game shared at " msgstr "" #: lib/pychess/Savers/chesspastebin.py:41 msgid "(Link is available on clipboard.)" msgstr "" #: lib/pychess/Savers/database.py:19 msgid "PyChess database" msgstr "" #: lib/pychess/Savers/epd.py:12 msgid "Chess Position" msgstr "" #: lib/pychess/Savers/fen.py:12 msgid "Simple Chess Position" msgstr "" #: lib/pychess/Savers/fen.py:44 lib/pychess/Savers/pgn.py:329 msgid "The game can't be loaded, because of an error parsing FEN" msgstr "" #: lib/pychess/Savers/pgnbase.py:100 #, python-format msgid "" "The game can't be read to end, because of an error parsing move %(moveno)s " "'%(notation)s'." msgstr "" #: lib/pychess/Savers/pgnbase.py:102 #, python-format msgid "The move failed because %s." msgstr "" #: lib/pychess/Savers/pgnbase.py:110 #, python-format msgid "Error parsing move %(moveno)s %(mstr)s" msgstr "" #: lib/pychess/Savers/pgn.py:28 msgid "Chess Game" msgstr "" #: lib/pychess/Savers/pgn.py:362 msgid "Invalid move." msgstr "" #: lib/pychess/Savers/png.py:15 msgid "Png image" msgstr "" #: lib/pychess/System/ping.py:31 msgid "Destination Host Unreachable" msgstr "" #: lib/pychess/System/ping.py:74 msgid "Died" msgstr "" #: lib/pychess/Utils/GameModel.py:147 msgid "Local Event" msgstr "" #: lib/pychess/Utils/GameModel.py:148 msgid "Local Site" msgstr "" #: lib/pychess/Utils/repr.py:12 msgid "Pawn" msgstr "Sotilas" #: lib/pychess/Utils/repr.py:14 msgid "P" msgstr "" #: lib/pychess/Utils/repr.py:14 msgid "N" msgstr "" #: lib/pychess/Utils/repr.py:14 msgid "R" msgstr "" #: lib/pychess/Utils/repr.py:14 msgid "Q" msgstr "" #: lib/pychess/Utils/repr.py:14 msgid "K" msgstr "" #: lib/pychess/Utils/repr.py:17 msgid "The game ended in a draw" msgstr "" #: lib/pychess/Utils/repr.py:18 #, python-format msgid "%(white)s won the game" msgstr "%(white)s voitti pelin" #: lib/pychess/Utils/repr.py:19 #, python-format msgid "%(black)s won the game" msgstr "" #: lib/pychess/Utils/repr.py:20 msgid "The game has been killed" msgstr "" #: lib/pychess/Utils/repr.py:21 msgid "The game has been adjourned" msgstr "" #: lib/pychess/Utils/repr.py:22 msgid "The game has been aborted" msgstr "" #: lib/pychess/Utils/repr.py:26 msgid "Because neither player has sufficient material to mate" msgstr "" #: lib/pychess/Utils/repr.py:27 msgid "Because the same position was repeated three times in a row" msgstr "" #: lib/pychess/Utils/repr.py:28 msgid "Because the last 50 moves brought nothing new" msgstr "" #: lib/pychess/Utils/repr.py:29 msgid "Because both players ran out of time" msgstr "" #: lib/pychess/Utils/repr.py:30 #, python-format msgid "Because %(mover)s stalemated" msgstr "" #: lib/pychess/Utils/repr.py:31 msgid "Because both players agreed to a draw" msgstr "" #: lib/pychess/Utils/repr.py:32 lib/pychess/Utils/repr.py:42 msgid "Because of adjudication by an admin" msgstr "" #: lib/pychess/Utils/repr.py:33 msgid "Because the game exceed the max length" msgstr "" #: lib/pychess/Utils/repr.py:34 #, python-format msgid "" "Because %(white)s ran out of time and %(black)s has insufficient material to" " mate" msgstr "Koska %(white)s aika loppui ja %(black)s on riittämätön materiaali mattiin" #: lib/pychess/Utils/repr.py:35 #, python-format msgid "" "Because %(black)s ran out of time and %(white)s has insufficient material to" " mate" msgstr "Koska %(black)s aika loppui ja %(white)s on riittämätön materiaali mattiin" #: lib/pychess/Utils/repr.py:36 msgid "Because both players have the same amount of pieces" msgstr "" #: lib/pychess/Utils/repr.py:38 #, python-format msgid "Because %(loser)s resigned" msgstr "" #: lib/pychess/Utils/repr.py:39 #, python-format msgid "Because %(loser)s ran out of time" msgstr "" #: lib/pychess/Utils/repr.py:40 #, python-format msgid "Because %(loser)s was checkmated" msgstr "" #: lib/pychess/Utils/repr.py:41 #, python-format msgid "Because %(loser)s disconnected" msgstr "" #: lib/pychess/Utils/repr.py:43 #, python-format msgid "Because %(winner)s has fewer pieces" msgstr "" #: lib/pychess/Utils/repr.py:44 #, python-format msgid "Because %(winner)s lost all pieces" msgstr "" #: lib/pychess/Utils/repr.py:45 #, python-format msgid "Because %(loser)s king exploded" msgstr "" #: lib/pychess/Utils/repr.py:46 #, python-format msgid "Because %(winner)s king reached the center" msgstr "" #: lib/pychess/Utils/repr.py:47 #, python-format msgid "Because %(winner)s was giving check 3 times" msgstr "" #: lib/pychess/Utils/repr.py:49 msgid "Because a player lost connection" msgstr "" #: lib/pychess/Utils/repr.py:50 msgid "Because both players agreed to an adjournment" msgstr "" #: lib/pychess/Utils/repr.py:51 msgid "Because the server was shut down" msgstr "" #: lib/pychess/Utils/repr.py:52 msgid "" "Because a player lost connection and the other player requested adjournment" msgstr "" #: lib/pychess/Utils/repr.py:53 #, python-format msgid "" "Because %(black)s lost connection to the server and %(white)s requested " "adjournment" msgstr "" #: lib/pychess/Utils/repr.py:54 #, python-format msgid "" "Because %(white)s lost connection to the server and %(black)s requested " "adjournment" msgstr "" #: lib/pychess/Utils/repr.py:55 #, python-format msgid "Because %(white)s lost connection to the server" msgstr "" #: lib/pychess/Utils/repr.py:56 #, python-format msgid "Because %(black)s lost connection to the server" msgstr "" #: lib/pychess/Utils/repr.py:58 msgid "Because of adjudication by an admin. No rating changes have occurred." msgstr "" #: lib/pychess/Utils/repr.py:59 msgid "" "Because both players agreed to abort the game. No rating changes have " "occurred." msgstr "" #: lib/pychess/Utils/repr.py:60 msgid "Because of courtesy by a player. No rating changes have occurred." msgstr "" #: lib/pychess/Utils/repr.py:61 msgid "" "Because a player aborted the game. Either player can abort the game without " "the other's consent before the second move. No rating changes have occurred." msgstr "" #: lib/pychess/Utils/repr.py:62 msgid "" "Because a player disconnected and there are too few moves to warrant " "adjournment. No rating changes have occurred." msgstr "" #: lib/pychess/Utils/repr.py:63 msgid "Because the server was shut down. No rating changes have occurred." msgstr "" #: lib/pychess/Utils/repr.py:65 #, python-format msgid "Because the %(white)s engine died" msgstr "Koska %(white)s shakkiprosessori kaatui" #: lib/pychess/Utils/repr.py:66 #, python-format msgid "Because the %(black)s engine died" msgstr "Koska %(black)s shakkiprosessori kaatui" #: lib/pychess/Utils/repr.py:67 msgid "Because the connection to the server was lost" msgstr "" #: lib/pychess/Utils/repr.py:68 msgid "The reason is unknown" msgstr "" #: lib/pychess/Utils/TimeModel.py:229 msgid "min" msgstr "" #: lib/pychess/Utils/TimeModel.py:231 msgid "sec" msgstr "" #: lib/pychess/Variants/asean.py:12 msgid "" "ASEAN: http://www.ncf-" "phil.org/downloadables/2014/May/Asean_chess/Laws_of_ASEAN_Chess_2011_Nov_26.doc" msgstr "" #: lib/pychess/Variants/asean.py:13 msgid "ASEAN" msgstr "" #: lib/pychess/Variants/asean.py:33 msgid "Makruk: http://en.wikipedia.org/wiki/Makruk" msgstr "" #: lib/pychess/Variants/asean.py:34 msgid "Makruk" msgstr "" #: lib/pychess/Variants/asean.py:60 msgid "Cambodian: http://www.khmerinstitute.org/culture/ok.html" msgstr "" #: lib/pychess/Variants/asean.py:61 msgid "Cambodian" msgstr "" #: lib/pychess/Variants/asean.py:86 msgid "" "Ai-Wok: http://www.open-" "aurec.com/wbforum/viewtopic.php?p=199364&sid=20963a1de2c164050de019e5ed6bf7c4#p199364" msgstr "" #: lib/pychess/Variants/asean.py:87 msgid "Ai-Wok" msgstr "" #: lib/pychess/Variants/asean.py:111 msgid "Sittuyin: http://en.wikipedia.org/wiki/Sittuyin" msgstr "" #: lib/pychess/Variants/asean.py:112 msgid "Sittuyin" msgstr "" #: lib/pychess/Variants/asymmetricrandom.py:12 msgid "" "FICS wild/4: http://www.freechess.org/Help/HelpFiles/wild.html\n" "* Randomly chosen pieces (two queens or three rooks possible)\n" "* Exactly one king of each color\n" "* Pieces placed randomly behind the pawns, SUBJECT TO THE CONSTRAINT THAT THE BISHOPS ARE BALANCED\n" "* No castling\n" "* Black's arrangement DOES NOT mirrors white's" msgstr "" #: lib/pychess/Variants/asymmetricrandom.py:18 msgid "Asymmetric Random" msgstr "" #: lib/pychess/Variants/atomic.py:14 msgid "FICS atomic: http://www.freechess.org/Help/HelpFiles/atomic.html" msgstr "" #: lib/pychess/Variants/blindfold.py:7 msgid "" "Classic chess rules with hidden figurines\n" "http://en.wikipedia.org/wiki/Blindfold_chess" msgstr "" #: lib/pychess/Variants/blindfold.py:9 #: lib/pychess/widgets/newGameDialog.py:264 msgid "Blindfold" msgstr "" #: lib/pychess/Variants/blindfold.py:18 msgid "" "Classic chess rules with hidden pawns\n" "http://en.wikipedia.org/wiki/Blindfold_chess" msgstr "" #: lib/pychess/Variants/blindfold.py:20 msgid "Hidden pawns" msgstr "" #: lib/pychess/Variants/blindfold.py:29 msgid "" "Classic chess rules with hidden pieces\n" "http://en.wikipedia.org/wiki/Blindfold_chess" msgstr "" #: lib/pychess/Variants/blindfold.py:31 msgid "Hidden pieces" msgstr "" #: lib/pychess/Variants/blindfold.py:40 msgid "" "Classic chess rules with all pieces white\n" "http://en.wikipedia.org/wiki/Blindfold_chess" msgstr "" #: lib/pychess/Variants/blindfold.py:42 msgid "All white" msgstr "" #: lib/pychess/Variants/bughouse.py:8 msgid "FICS bughouse: http://www.freechess.org/Help/HelpFiles/bughouse.html" msgstr "" #: lib/pychess/Variants/corner.py:12 msgid "" "http://brainking.com/en/GameRules?tp=2\n" "* Placement of the pieces on the 1st and 8th row are randomized\n" "* The king is in the right hand corner\n" "* Bishops must start on opposite color squares\n" "* Black's starting position is obtained by rotating white's position 180 degrees around the board's center\n" "* No castling" msgstr "" #: lib/pychess/Variants/corner.py:18 msgid "Corner" msgstr "" #: lib/pychess/Variants/crazyhouse.py:8 msgid "" "FICS crazyhouse: http://www.freechess.org/Help/HelpFiles/crazyhouse.html" msgstr "" #: lib/pychess/Variants/euroshogi.py:9 msgid "EuroShogi: http://en.wikipedia.org/wiki/EuroShogi" msgstr "" #: lib/pychess/Variants/euroshogi.py:10 msgid "EuroShogi" msgstr "" #: lib/pychess/Variants/fischerandom.py:18 msgid "" "http://en.wikipedia.org/wiki/Chess960\n" "FICS wild/fr: http://www.freechess.org/Help/HelpFiles/wild.html" msgstr "" #: lib/pychess/Variants/fischerandom.py:20 msgid "Fischer Random" msgstr "" #: lib/pychess/Variants/kingofthehill.py:8 msgid "" "Bringing your king legally to the center (e4, d4, e5, d5) instantly wins the game!\n" "Normal rules apply in other cases and checkmate also ends the game." msgstr "" #: lib/pychess/Variants/kingofthehill.py:10 msgid "King of the hill" msgstr "" #: lib/pychess/Variants/knightodds.py:8 msgid "One player starts with one less knight piece" msgstr "Toinen pelaaja aloittaa yhtä ratsua vähemmällä" #: lib/pychess/Variants/knightodds.py:9 msgid "Knight odds" msgstr "" #: lib/pychess/Variants/losers.py:8 msgid "FICS losers: http://www.freechess.org/Help/HelpFiles/losers_chess.html" msgstr "" #: lib/pychess/Variants/normal.py:4 msgid "" "Classic chess rules\n" "http://en.wikipedia.org/wiki/Chess" msgstr "" #: lib/pychess/Variants/normal.py:6 lib/pychess/widgets/newGameDialog.py:157 msgid "Normal" msgstr "Normaali" #: lib/pychess/Variants/pawnodds.py:8 msgid "One player starts with one less pawn piece" msgstr "" #: lib/pychess/Variants/pawnodds.py:9 msgid "Pawn odds" msgstr "" #: lib/pychess/Variants/pawnspassed.py:11 msgid "" "FICS wild/8a: http://www.freechess.org/Help/HelpFiles/wild.html\n" "White pawns start on 5th rank and black pawns on the 4th rank" msgstr "" #: lib/pychess/Variants/pawnspassed.py:13 msgid "Pawns Passed" msgstr "" #: lib/pychess/Variants/pawnspushed.py:10 msgid "" "FICS wild/8: http://www.freechess.org/Help/HelpFiles/wild.html\n" "Pawns start on 4th and 5th ranks rather than 2nd and 7th" msgstr "" #: lib/pychess/Variants/pawnspushed.py:12 msgid "Pawns Pushed" msgstr "" #: lib/pychess/Variants/queenodds.py:8 msgid "One player starts with one less queen piece" msgstr "Toinen pelaaja aloittaa kuningatarta vähemmällä" #: lib/pychess/Variants/queenodds.py:9 msgid "Queen odds" msgstr "" #: lib/pychess/Variants/randomchess.py:11 msgid "" "FICS wild/3: http://www.freechess.org/Help/HelpFiles/wild.html\n" "* Randomly chosen pieces (two queens or three rooks possible)\n" "* Exactly one king of each color\n" "* Pieces placed randomly behind the pawns\n" "* No castling\n" "* Black's arrangement mirrors white's" msgstr "" #: lib/pychess/Variants/randomchess.py:17 #: lib/pychess/widgets/TaskerManager.py:155 msgid "Random" msgstr "" #: lib/pychess/Variants/rookodds.py:8 msgid "One player starts with one less rook piece" msgstr "Toinen pelaaja aloittaa yhtä tornia vähemmällä" #: lib/pychess/Variants/rookodds.py:9 msgid "Rook odds" msgstr "" #: lib/pychess/Variants/shuffle.py:11 msgid "" "xboard nocastle: http://home.hccnet.nl/h.g.muller/engine-intf.html#8\n" "FICS wild/2: http://www.freechess.org/Help/HelpFiles/wild.html\n" "* Random arrangement of the pieces behind the pawns\n" "* No castling\n" "* Black's arrangement mirrors white's" msgstr "" #: lib/pychess/Variants/suicide.py:11 msgid "" "FICS suicide: http://www.freechess.org/Help/HelpFiles/suicide_chess.html" msgstr "" #: lib/pychess/Variants/theban.py:10 msgid "" "Variant developed by Kai Laskos: " "http://talkchess.com/forum/viewtopic.php?t=40990" msgstr "" #: lib/pychess/Variants/theban.py:11 msgid "Theban" msgstr "" #: lib/pychess/Variants/threecheck.py:10 msgid "Win by giving check 3 times" msgstr "" #: lib/pychess/Variants/threecheck.py:11 msgid "Three-check" msgstr "" #: lib/pychess/Variants/upsidedown.py:10 msgid "" "FICS wild/5: http://www.freechess.org/Help/HelpFiles/wild.html\n" "http://en.wikipedia.org/wiki/Chess_variant#Chess_with_different_starting_positions\n" "Pawns start on their 7th rank rather than their 2nd rank!" msgstr "" #: lib/pychess/Variants/upsidedown.py:13 msgid "Upside Down" msgstr "" #: lib/pychess/Variants/wildcastle.py:10 msgid "" "xboard wildcastle http://home.hccnet.nl/h.g.muller/engine-intf.html#8\n" "FICS wild/0: http://www.freechess.org/Help/HelpFiles/wild.html\n" "* White has the typical set-up at the start.\n" "* Black's pieces are the same, except that the King and Queen are reversed,\n" "* so they are not on the same files as White's King and Queen.\n" "* Castling is done similarly to normal chess:\n" "* o-o-o indicates long castling and o-o short castling." msgstr "" #: lib/pychess/Variants/wildcastle.py:17 msgid "Wildcastle" msgstr "" #: lib/pychess/Variants/wildcastleshuffle.py:11 msgid "" "xboard wildcastle http://home.hccnet.nl/h.g.muller/engine-intf.html#8\n" "FICS wild/1: http://www.freechess.org/Help/HelpFiles/wild.html\n" "* In this variant both sides have the same set of pieces as in normal chess.\n" "* The white king starts on d1 or e1 and the black king starts on d8 or e8,\n" "* and the rooks are in their usual positions.\n" "* Bishops are always on opposite colors.\n" "* Subject to these constraints the position of the pieces on their first ranks is random.\n" "* Castling is done similarly to normal chess:\n" "* o-o-o indicates long castling and o-o short castling." msgstr "" #: lib/pychess/Variants/wildcastleshuffle.py:20 msgid "Wildcastle shuffle" msgstr "" #: lib/pychess/widgets/analyzegameDialog.py:85 msgid "Game analyzing in progress..." msgstr "" #: lib/pychess/widgets/analyzegameDialog.py:86 msgid "Do you want to abort it?" msgstr "" #: lib/pychess/widgets/analyzegameDialog.py:95 #: lib/pychess/widgets/gamewidget.py:202 lib/pychess/widgets/gamewidget.py:320 msgid "Abort" msgstr "" #: lib/pychess/widgets/ChatView.py:125 msgid "Observers" msgstr "" #: lib/pychess/widgets/ChatWindow.py:222 msgid "You have opened no conversations yet" msgstr "" #: lib/pychess/widgets/ChatWindow.py:254 msgid "Only registered users may talk to this channel" msgstr "" #: lib/pychess/widgets/ChatWindow.py:312 msgid "No conversation's selected" msgstr "" #: lib/pychess/widgets/ChatWindow.py:350 msgid "Loading player data" msgstr "" #: lib/pychess/widgets/ChatWindow.py:400 msgid "Receiving list of players" msgstr "" #: lib/pychess/widgets/ChatWindow.py:518 msgid "Friends" msgstr "" #: lib/pychess/widgets/ChatWindow.py:529 msgid "Admin" msgstr "" #: lib/pychess/widgets/ChatWindow.py:540 msgid "More channels" msgstr "" #: lib/pychess/widgets/ChatWindow.py:548 msgid "More players" msgstr "" #: lib/pychess/widgets/ChatWindow.py:558 msgid "Computers" msgstr "" #: lib/pychess/widgets/ChatWindow.py:568 msgid "BlindFold" msgstr "" #: lib/pychess/widgets/ChatWindow.py:578 msgid "Guests" msgstr "" #: lib/pychess/widgets/ChatWindow.py:805 msgid "Conversations" msgstr "" #: lib/pychess/widgets/ChatWindow.py:807 msgid "Conversation info" msgstr "" #: lib/pychess/widgets/enginesDialog.py:152 msgid "Select engine" msgstr "Valitse shakkiprosessori" #: lib/pychess/widgets/enginesDialog.py:156 msgid "Executable files" msgstr "" #: lib/pychess/widgets/enginesDialog.py:176 #: lib/pychess/widgets/enginesDialog.py:210 #: lib/pychess/widgets/enginesDialog.py:235 #, python-format msgid "Unable to add %s" msgstr "" #: lib/pychess/widgets/enginesDialog.py:177 msgid "wine not installed" msgstr "" #: lib/pychess/widgets/enginesDialog.py:211 #: lib/pychess/widgets/enginesDialog.py:236 msgid "There is something wrong with this executable" msgstr "" #: lib/pychess/widgets/enginesDialog.py:266 msgid "Select working directory" msgstr "Valitse työhakemisto" #: lib/pychess/widgets/gamenanny.py:115 #, python-format msgid " invalid engine move: %s" msgstr "" #: lib/pychess/widgets/gamenanny.py:134 msgid "Offer Rematch" msgstr "" #: lib/pychess/widgets/gamenanny.py:136 lib/pychess/widgets/gamenanny.py:147 #, python-format msgid "Observe %s" msgstr "" #: lib/pychess/widgets/gamenanny.py:168 msgid "Play Rematch" msgstr "" #: lib/pychess/widgets/gamenanny.py:171 msgid "Undo one move" msgstr "" #: lib/pychess/widgets/gamenanny.py:173 msgid "Undo two moves" msgstr "" #: lib/pychess/widgets/gamenanny.py:203 msgid "The game is paused" msgstr "" #: lib/pychess/widgets/gamenanny.py:221 lib/pychess/widgets/gamenanny.py:222 msgid "Loaded game" msgstr "" #: lib/pychess/widgets/gamenanny.py:228 msgid "Saved game" msgstr "" #: lib/pychess/widgets/gamenanny.py:232 msgid "Analyzer started" msgstr "Analysaattori käynnistetty" #: lib/pychess/widgets/gamenanny.py:281 msgid "You sent an abort offer" msgstr "" #: lib/pychess/widgets/gamenanny.py:283 msgid "You sent an adjournment offer" msgstr "" #: lib/pychess/widgets/gamenanny.py:285 msgid "You sent a draw offer" msgstr "" #: lib/pychess/widgets/gamenanny.py:287 msgid "You sent a pause offer" msgstr "" #: lib/pychess/widgets/gamenanny.py:289 msgid "You sent a resume offer" msgstr "" #: lib/pychess/widgets/gamenanny.py:291 msgid "You sent an undo offer" msgstr "" #: lib/pychess/widgets/gamenanny.py:293 msgid "You asked your opponent to move" msgstr "" #: lib/pychess/widgets/gamenanny.py:305 #, python-format msgid "Engine, %s, has died" msgstr "Shakkiprosessori, %s, kaatui" #: lib/pychess/widgets/gamenanny.py:306 msgid "" "PyChess has lost connection to the engine, probably because it has died.\n" "\n" "You can try to start a new game with the engine, or try to play against another one." msgstr "" #: lib/pychess/widgets/gamewidget.py:204 msgid "" "This game can be automatically aborted without rating loss because there has" " not yet been two moves made" msgstr "" #: lib/pychess/widgets/gamewidget.py:206 msgid "Offer Abort" msgstr "" #: lib/pychess/widgets/gamewidget.py:208 msgid "" "Your opponent must agree to abort the game because there has been two or " "more moves made" msgstr "" #: lib/pychess/widgets/gamewidget.py:226 msgid "This game can not be adjourned because one or both players are guests" msgstr "" #: lib/pychess/widgets/gamewidget.py:243 msgid "Claim Draw" msgstr "" #: lib/pychess/widgets/gamewidget.py:325 msgid "Pause" msgstr "Tauko" #: lib/pychess/widgets/gamewidget.py:326 msgid "Resume" msgstr "" #: lib/pychess/widgets/gamewidget.py:328 msgid "Offer Pause" msgstr "Esitä taukoa" #: lib/pychess/widgets/gamewidget.py:329 msgid "Offer Resume" msgstr "" #: lib/pychess/widgets/gamewidget.py:333 msgid "Undo" msgstr "" #: lib/pychess/widgets/gamewidget.py:335 msgid "Offer Undo" msgstr "" #: lib/pychess/widgets/gamewidget.py:550 msgid " has lagged for 30 seconds" msgstr "" #: lib/pychess/widgets/gamewidget.py:566 msgid " is lagging heavily but hasn't disconnected" msgstr "" #: lib/pychess/widgets/gamewidget.py:567 msgid "Continue to wait for opponent, or try to adjourn the game?" msgstr "" #: lib/pychess/widgets/gamewidget.py:575 msgid "Wait" msgstr "Odota" #: lib/pychess/widgets/gamewidget.py:576 msgid "Adjourn" msgstr "" #: lib/pychess/widgets/gamewidget.py:648 msgid "Jump to initial position" msgstr "" #: lib/pychess/widgets/gamewidget.py:653 msgid "Step back one move" msgstr "" #: lib/pychess/widgets/gamewidget.py:658 msgid "Go back to the main line" msgstr "" #: lib/pychess/widgets/gamewidget.py:664 msgid "Step forward one move" msgstr "" #: lib/pychess/widgets/gamewidget.py:669 msgid "Jump to latest position" msgstr "" #: lib/pychess/widgets/gamewidget.py:903 msgid "PyChess was unable to load your panel settings" msgstr "" #: lib/pychess/widgets/gamewidget.py:904 msgid "" "Your panel settings have been reset. If this problem repeats, you should " "report it to the developers" msgstr "" #: lib/pychess/widgets/ionest.py:67 lib/pychess/widgets/newGameDialog.py:389 #: lib/pychess/widgets/TaskerManager.py:210 msgid "You" msgstr "" #: lib/pychess/widgets/ionest.py:70 lib/pychess/widgets/newGameDialog.py:390 #: lib/pychess/widgets/preferencesDialog.py:61 #: lib/pychess/widgets/TaskerManager.py:213 msgid "Guest" msgstr "" #: lib/pychess/widgets/ionest.py:93 msgid "Error loading game" msgstr "" #: lib/pychess/widgets/ionest.py:127 lib/pychess/widgets/newGameDialog.py:480 msgid "Open Game" msgstr "" #: lib/pychess/widgets/ionest.py:137 msgid "All Files" msgstr "" #: lib/pychess/widgets/ionest.py:140 msgid "Detect type automatically" msgstr "" #: lib/pychess/widgets/ionest.py:146 msgid "All Chess Files" msgstr "" #: lib/pychess/widgets/ionest.py:228 msgid "Save Game" msgstr "" #: lib/pychess/widgets/ionest.py:228 msgid "Export position" msgstr "" #: lib/pychess/widgets/ionest.py:232 lib/pychess/widgets/ionest.py:360 msgid "vs." msgstr "" #: lib/pychess/widgets/ionest.py:249 #, python-format msgid "Unknown file type '%s'" msgstr "" #: lib/pychess/widgets/ionest.py:250 #, python-format msgid "" "Was unable to save '%(uri)s' as PyChess doesn't know the format " "'%(ending)s'." msgstr "" #: lib/pychess/widgets/ionest.py:266 #, python-format msgid "Unable to save file '%s'" msgstr "" #: lib/pychess/widgets/ionest.py:268 msgid "" "You don't have the necessary rights to save the file.\n" "Please ensure that you have given the right path and try again." msgstr "" #: lib/pychess/widgets/ionest.py:276 msgid "_Replace" msgstr "" #: lib/pychess/widgets/ionest.py:280 msgid "File exists" msgstr "" #: lib/pychess/widgets/ionest.py:282 #, python-format msgid "" "A file named '%s' already exists. Would you like to replace " "it?" msgstr "" #: lib/pychess/widgets/ionest.py:283 #, python-format msgid "" "The file already exists in '%s'. If you replace it, its content will be " "overwritten." msgstr "" #: lib/pychess/widgets/ionest.py:299 msgid "Could not save the file" msgstr "" #: lib/pychess/widgets/ionest.py:300 msgid "PyChess was not able to save the game" msgstr "" #: lib/pychess/widgets/ionest.py:301 #, python-format msgid "The error was: %s" msgstr "" #: lib/pychess/widgets/ionest.py:325 #, python-format msgid "There is %d game with unsaved moves." msgid_plural "There are %d games with unsaved moves." msgstr[0] "" msgstr[1] "" #: lib/pychess/widgets/ionest.py:328 msgid "Save moves before closing?" msgstr "" #: lib/pychess/widgets/ionest.py:339 msgid "Unable to save to configured file. Save the games before closing?" msgstr "" #: lib/pychess/widgets/ionest.py:366 #, python-format msgid "_Save %d document" msgid_plural "_Save %d documents" msgstr[0] "" msgstr[1] "" #: lib/pychess/widgets/ionest.py:412 msgid "Save the current game before you close it?" msgstr "" #: lib/pychess/widgets/ionest.py:420 msgid "" "Unable to save to configured file. Save the current game before you close " "it?" msgstr "" #: lib/pychess/widgets/ionest.py:434 msgid "" "It is not possible later to continue the game,\n" "if you don't save it." msgstr "" #: lib/pychess/widgets/LogDialog.py:26 msgid "PyChess Information Window" msgstr "" #: lib/pychess/widgets/LogDialog.py:184 lib/pychess/widgets/LogDialog.py:188 msgid "of" msgstr "" #: lib/pychess/widgets/newGameDialog.py:84 #: lib/pychess/widgets/newGameDialog.py:85 msgid "Human Being" msgstr "" #: lib/pychess/widgets/newGameDialog.py:155 msgid "Rapid" msgstr "" #: lib/pychess/widgets/newGameDialog.py:224 msgid "Minutes:" msgstr "Minuuttia:" #: lib/pychess/widgets/newGameDialog.py:228 msgid "Gain:" msgstr "" #: lib/pychess/widgets/newGameDialog.py:241 #, python-format msgid "%(name)s %(minutes)d min + %(gain)d sec/move" msgstr "" #: lib/pychess/widgets/newGameDialog.py:244 #, python-format msgid "%(name)s %(minutes)d min %(gain)d sec/move" msgstr "" #: lib/pychess/widgets/newGameDialog.py:247 #, python-format msgid "%(name)s %(minutes)d min" msgstr "" #: lib/pychess/widgets/newGameDialog.py:265 msgid "Odds" msgstr "" #: lib/pychess/widgets/newGameDialog.py:269 msgid "Asian variants" msgstr "" #: lib/pychess/widgets/newGameDialog.py:301 msgid " chess" msgstr "" #: lib/pychess/widgets/newGameDialog.py:682 msgid "Type or paste PGN game or FEN positions here" msgstr "" #: lib/pychess/widgets/newGameDialog.py:725 msgid "Enter Game" msgstr "" #: lib/pychess/widgets/preferencesDialog.py:123 msgid "Select book file" msgstr "" #: lib/pychess/widgets/preferencesDialog.py:128 msgid "Opening books" msgstr "" #: lib/pychess/widgets/preferencesDialog.py:156 msgid "Select Gaviota TB path" msgstr "" #: lib/pychess/widgets/preferencesDialog.py:331 msgid "Open Sound File" msgstr "" #: lib/pychess/widgets/preferencesDialog.py:341 msgid "Sound files" msgstr "" #: lib/pychess/widgets/preferencesDialog.py:485 msgid "Undescribed panel" msgstr "" #: lib/pychess/widgets/preferencesDialog.py:678 msgid "Select auto save path" msgstr "" #: lib/pychess/widgets/tipOfTheDay.py:51 msgid "" "You can start a new game by Game > New Game, in New Game " "window do you can choose Players, Time Control and Chess " "Variants." msgstr "" #: lib/pychess/widgets/tipOfTheDay.py:52 msgid "" "You can choose from 20 different difficulties to play against the computer." msgstr "Voit valita 20 eri vaikeusastetta pelatessasi tietokonetta vastaan." #: lib/pychess/widgets/tipOfTheDay.py:53 msgid "" "Chess Variants are like the pieces of the last line will be placed on the " "board." msgstr "" #: lib/pychess/widgets/tipOfTheDay.py:54 msgid "" "To save a game Game > Save Game As, give the filename and " "choose where you want to be saved. At the bottom choose extension type of " "the file, and Save." msgstr "" #: lib/pychess/widgets/tipOfTheDay.py:55 msgid "" "Do you know that you can call flag when the clock is with you, " "Actions > Call Flag." msgstr "" #: lib/pychess/widgets/tipOfTheDay.py:56 msgid "Pressing Ctrl+Z to offer opponent the possible rollback moves." msgstr "" #: lib/pychess/widgets/tipOfTheDay.py:57 msgid "" "To play on Fullscreen mode, just type F11. Coming back, F11 " "again." msgstr "Pelataksesi kokonäyttötilassa, paina F11. Palaa takaisin painamalla F11 uudestaan." #: lib/pychess/widgets/tipOfTheDay.py:58 msgid "Hint mode analyzing your game, enable this type Ctrl+H." msgstr "Mahdollista Vihjemoodi pelisi analysoimiseksi painamalla Ctrl+H." #: lib/pychess/widgets/tipOfTheDay.py:59 msgid "" "Spy mode analyzing the oponnent game, enable this type Ctrl+Y." msgstr "" #: lib/pychess/widgets/tipOfTheDay.py:60 msgid "" "You can play chess listening to the sounds of the game, for that, " "Settings > Preferences > Sound tab, enable Use " "sounds in PyChess and choose your preferred sounds." msgstr "" #: lib/pychess/widgets/tipOfTheDay.py:61 msgid "" "Do you know that you can help translate Pychess in your language, " "Help > Translate Pychess." msgstr "Tiedätkö, että voit auttaa kääntämään Pychess-peliä omalle kielellesi, Ohje > Suomenna Pychess-peliä." #: lib/pychess/widgets/tipOfTheDay.py:62 msgid "" "Do you know that it is possible to finish a chess game in just 2 turns?" msgstr "Tiedätkö, että on mahdollista voittaa shakkipeli vain 2:lla siirrolla?" #: lib/pychess/widgets/tipOfTheDay.py:63 msgid "" "Do you know that the number of possible chess games exceeds the number of " "atoms in the Universe?" msgstr "" #: lib/pychess/ic/managers/ChatManager.py:184 msgid "Shout" msgstr "" #: lib/pychess/ic/managers/ChatManager.py:185 msgid "Chess Shout" msgstr "" #: lib/pychess/ic/managers/ChatManager.py:195 #, python-format msgid "Unofficial channel %d" msgstr "" #: lib/pychess/Utils/lutils/LBoard.py:152 #, python-format msgid "" "FEN needs 6 data fields. \n" "\n" "%s" msgstr "" #: lib/pychess/Utils/lutils/LBoard.py:154 #, python-format msgid "" "FEN needs at least 2 data fields in fenstr. \n" "\n" "%s" msgstr "" #: lib/pychess/Utils/lutils/LBoard.py:175 #, python-format msgid "" "Needs 7 slashes in piece placement field. \n" "\n" "%s" msgstr "" #: lib/pychess/Utils/lutils/LBoard.py:178 #, python-format msgid "" "Active color field must be one of w or b. \n" "\n" "%s" msgstr "" #: lib/pychess/Utils/lutils/LBoard.py:189 #, python-format msgid "" "Castling availability field is not legal. \n" "\n" "%s" msgstr "" #: lib/pychess/Utils/lutils/LBoard.py:192 #, python-format msgid "" "En passant cord is not legal. \n" "\n" "%s" msgstr "" #: lib/pychess/Utils/lutils/lmove.py:260 msgid "invalid promoted piece" msgstr "" #: lib/pychess/Utils/lutils/lmove.py:272 msgid "the move needs a piece and a cord" msgstr "" #: lib/pychess/Utils/lutils/lmove.py:306 lib/pychess/Utils/lutils/lmove.py:556 msgid "promotion move without promoted piece is incorrect" msgstr "" #: lib/pychess/Utils/lutils/lmove.py:312 #, python-format msgid "the captured cord (%s) is incorrect" msgstr "" #: lib/pychess/Utils/lutils/lmove.py:323 #, python-format msgid "the end cord (%s) is incorrect" msgstr "" #: lib/pychess/Utils/lutils/strateval.py:24 sidepanel/commentPanel.py:191 #: sidepanel/commentPanel.py:208 msgid "and" msgstr "" #: lib/pychess/Utils/lutils/strateval.py:43 msgid "draws" msgstr "" #: lib/pychess/Utils/lutils/strateval.py:45 msgid "mates" msgstr "" #: lib/pychess/Utils/lutils/strateval.py:49 msgid "puts opponent in check" msgstr "" #: lib/pychess/Utils/lutils/strateval.py:73 msgid "improves king safety" msgstr "parantaa kuninkaan suojausta" #: lib/pychess/Utils/lutils/strateval.py:75 msgid "slightly improves king safety" msgstr "parantaa hieman kuninkaan suojausta" #: lib/pychess/Utils/lutils/strateval.py:108 msgid "moves a rook to an open file" msgstr "siirtää tornin avoimelle linjalle" #: lib/pychess/Utils/lutils/strateval.py:109 msgid "moves an rook to a half-open file" msgstr "siirtää tornin puoliavoimelle linjalle" #: lib/pychess/Utils/lutils/strateval.py:119 #: lib/pychess/Utils/lutils/strateval.py:121 #: lib/pychess/Utils/lutils/strateval.py:124 #: lib/pychess/Utils/lutils/strateval.py:126 #, python-format msgid "moves bishop into fianchetto: %s" msgstr "" #: lib/pychess/Utils/lutils/strateval.py:132 #, python-format msgid "promotes a Pawn to a %s" msgstr "" #: lib/pychess/Utils/lutils/strateval.py:135 msgid "castles" msgstr "" #: lib/pychess/Utils/lutils/strateval.py:158 msgid "takes back material" msgstr "" #: lib/pychess/Utils/lutils/strateval.py:162 #: lib/pychess/Utils/lutils/strateval.py:170 msgid "sacrifies material" msgstr "uhraa materiaalia" #: lib/pychess/Utils/lutils/strateval.py:164 msgid "exchanges material" msgstr "vaihtaa materiaalia" #: lib/pychess/Utils/lutils/strateval.py:166 msgid "captures material" msgstr "ottaa materiaalia" #: lib/pychess/Utils/lutils/strateval.py:291 #, python-format msgid "rescues a %s" msgstr "" #: lib/pychess/Utils/lutils/strateval.py:294 #, python-format msgid "threatens to win material by %s" msgstr "" #: lib/pychess/Utils/lutils/strateval.py:296 #, python-format msgid "increases the pressure on %s" msgstr "" #: lib/pychess/Utils/lutils/strateval.py:298 #, python-format msgid "defends %s" msgstr "" #: lib/pychess/Utils/lutils/strateval.py:336 #, python-format msgid "pins an enemy %(oppiece)s on the %(piece)s at %(cord)s" msgstr "" #: lib/pychess/Utils/lutils/strateval.py:369 #, python-format msgid "White has a new piece in outpost: %s" msgstr "" #: lib/pychess/Utils/lutils/strateval.py:377 #, python-format msgid "Black has a new piece in outpost: %s" msgstr "" #: lib/pychess/Utils/lutils/strateval.py:416 #, python-format msgid "%(color)s has a new passed pawn on %(cord)s" msgstr "" #: lib/pychess/Utils/lutils/strateval.py:470 msgid "half-open" msgstr "puoliavoin" #: lib/pychess/Utils/lutils/strateval.py:472 #, python-format msgid "in the %(x)s%(y)s file" msgstr "" #: lib/pychess/Utils/lutils/strateval.py:474 #, python-format msgid "in the %(x)s%(y)s files" msgstr "" #: lib/pychess/Utils/lutils/strateval.py:477 #, python-format msgid "%(color)s got a double pawn %(place)s" msgstr "" #: lib/pychess/Utils/lutils/strateval.py:478 #, python-format msgid "%(color)s got new double pawns %(place)s" msgstr "" #: lib/pychess/Utils/lutils/strateval.py:485 #, python-format msgid "%(color)s got an isolated pawn in the %(x)s file" msgid_plural "%(color)s got isolated pawns in the %(x)s files" msgstr[0] "" msgstr[1] "" #: lib/pychess/Utils/lutils/strateval.py:492 #, python-format msgid "%s moves pawns into stonewall formation" msgstr "" #: lib/pychess/Utils/lutils/strateval.py:507 #: lib/pychess/Utils/lutils/strateval.py:514 #, python-format msgid "%s can no longer castle" msgstr "" #: lib/pychess/Utils/lutils/strateval.py:508 #: lib/pychess/Utils/lutils/strateval.py:515 #, python-format msgid "%s can no longer castle in queenside" msgstr "%s ei voi enää linnoittaa kuningattaren puolelle" #: lib/pychess/Utils/lutils/strateval.py:510 #: lib/pychess/Utils/lutils/strateval.py:517 #, python-format msgid "%s can no longer castle in kingside" msgstr "%s ei voi enää linnoittaa kuninkaan puolelle" #: lib/pychess/Utils/lutils/strateval.py:551 #, python-format msgid "%(opcolor)s has a new trapped bishop on %(cord)s" msgstr "" #: lib/pychess/Utils/lutils/strateval.py:573 #, python-format msgid "develops a pawn: %s" msgstr "" #: lib/pychess/Utils/lutils/strateval.py:574 #, python-format msgid "brings a pawn closer to the backrow: %s" msgstr "" #: lib/pychess/Utils/lutils/strateval.py:591 #, python-format msgid "brings a %(piece)s closer to enemy king: %(cord)s" msgstr "" #: lib/pychess/Utils/lutils/strateval.py:594 #, python-format msgid "develops a %(piece)s: %(cord)s" msgstr "" #: lib/pychess/Utils/lutils/strateval.py:612 #, python-format msgid "places a %(piece)s more active: %(cord)s" msgstr "" #: lib/pychess/Utils/lutils/strateval.py:638 msgid "White should do pawn storm in right" msgstr "" #: lib/pychess/Utils/lutils/strateval.py:640 msgid "Black should do pawn storm in left" msgstr "" #: lib/pychess/Utils/lutils/strateval.py:643 msgid "White should do pawn storm in left" msgstr "" #: lib/pychess/Utils/lutils/strateval.py:645 msgid "Black should do pawn storm in right" msgstr "" #: lib/pychess/Utils/lutils/strateval.py:671 msgid "Black has a rather cramped position" msgstr "" #: lib/pychess/Utils/lutils/strateval.py:673 msgid "Black has a slightly cramped position" msgstr "" #: lib/pychess/Utils/lutils/strateval.py:675 msgid "White has a rather cramped position" msgstr "" #: lib/pychess/Utils/lutils/strateval.py:677 msgid "White has a slightly cramped position" msgstr "" #: sidepanel/annotationPanel.py:26 msgid "Annotation" msgstr "Muistiinpanot" #: sidepanel/annotationPanel.py:29 msgid "Annotated game" msgstr "Pelin muistiinpanot" #: sidepanel/annotationPanel.py:236 msgid "Copy PGN" msgstr "" #: sidepanel/annotationPanel.py:249 msgid "Add start comment" msgstr "Lisää avauskommentti" #: sidepanel/annotationPanel.py:254 msgid "Add comment" msgstr "Lisää kommentti" #: sidepanel/annotationPanel.py:258 sidepanel/annotationPanel.py:316 msgid "Edit comment" msgstr "Muokkaa kommenttia" #: sidepanel/annotationPanel.py:269 msgid "Forced move" msgstr "" #: sidepanel/annotationPanel.py:274 msgid "Add move symbol" msgstr "" #: sidepanel/annotationPanel.py:280 msgid "Unclear position" msgstr "" #: sidepanel/annotationPanel.py:289 msgid "Zugzwang" msgstr "" #: sidepanel/annotationPanel.py:290 msgid "Development adv." msgstr "" #: sidepanel/annotationPanel.py:291 msgid "Initiative" msgstr "" #: sidepanel/annotationPanel.py:292 msgid "With attack" msgstr "" #: sidepanel/annotationPanel.py:293 msgid "Compensation" msgstr "" #: sidepanel/annotationPanel.py:294 msgid "Counterplay" msgstr "" #: sidepanel/annotationPanel.py:295 msgid "Time pressure" msgstr "" #: sidepanel/annotationPanel.py:300 msgid "Add evaluation symbol" msgstr "" #: sidepanel/annotationPanel.py:304 msgid "Remove symbols" msgstr "" #: sidepanel/annotationPanel.py:911 #, python-format msgid "round %s" msgstr "" #: sidepanel/bookPanel.py:21 msgid "Hints" msgstr "Vihjeet" #: sidepanel/bookPanel.py:25 msgid "" "The hint panel will provide computer advice during each stage of the game" msgstr "Vihjeet-näytössä esitetään tietokoneen neuvoja kussakin pelin vaiheessa." #: sidepanel/bookPanel.py:27 msgid "Official PyChess panel." msgstr "" #: sidepanel/bookPanel.py:87 msgid "Opening Book" msgstr "" #: sidepanel/bookPanel.py:88 msgid "" "The opening book will try to inspire you during the opening phase of the " "game by showing you common moves made by chess masters" msgstr "" #: sidepanel/bookPanel.py:139 #, python-format msgid "Analysis by %s" msgstr "" #: sidepanel/bookPanel.py:140 #, python-format msgid "" "%s will try to predict which move is best and which side has the advantage" msgstr "" #: sidepanel/bookPanel.py:142 #, python-format msgid "Threat analysis by %s" msgstr "%s:n uhka-analyysi" #: sidepanel/bookPanel.py:143 #, python-format msgid "" "%s will identify what threats would exist if it were your opponent's turn to" " move" msgstr "%s tunnistaa ne uhkat, joita olisi, jos olisi vastustajasi siirtovuoro" #: sidepanel/bookPanel.py:159 sidepanel/bookPanel.py:269 msgid "Calculating..." msgstr "" #: sidepanel/bookPanel.py:300 msgid "" "Engine scores are in units of pawns, from White's point of view. Double " "clicking on analysis lines you can insert them into Annotation panel as " "variations." msgstr "" #: sidepanel/bookPanel.py:302 msgid "" "Adding suggestions can help you find ideas, but slows down the computer's " "analysis." msgstr "" #: sidepanel/bookPanel.py:311 msgid "Endgame Table" msgstr "" #: sidepanel/bookPanel.py:315 msgid "" "The endgame table will show exact analysis when there are few pieces on the " "board." msgstr "" #: sidepanel/bookPanel.py:364 sidepanel/bookPanel.py:367 #, python-format msgid "Mate in %d" msgstr "" #: sidepanel/bookPanel.py:554 msgid "" "In this position,\n" "there is no legal move." msgstr "" #: sidepanel/chatPanel.py:21 msgid "" "The chat panel lets you communicate with your opponent during the game, " "assuming he or she is interested" msgstr "Keskusteluikkunassa voit keskustella vastustajan kanssa, mikäli hän on kiinnostunut keskustelemaan" #: sidepanel/commentPanel.py:16 msgid "Comments" msgstr "Kommentit" #: sidepanel/commentPanel.py:20 msgid "The comments panel will try to analyze and explain the moves played" msgstr "Kommentti-ikkunassa pyritään analysoimaan sanallisesti tehtyjä siirtoja." #: sidepanel/commentPanel.py:121 msgid "Initial position" msgstr "" #: sidepanel/commentPanel.py:254 #, python-format msgid "%(color)s moves a %(piece)s to %(cord)s" msgstr "" #: sidepanel/engineOutputPanel.py:15 msgid "Engines" msgstr "Shakkiprosessorit" #: sidepanel/engineOutputPanel.py:20 msgid "" "The engine output panel shows the thinking output of chess engines (computer" " players) during a game" msgstr "" #: sidepanel/engineOutputPanel.py:44 msgid "No chess engines (computer players) are participating in this game." msgstr "Yhtään shakkiprosessoria (tietokonepelaajia) ei osallistu tähän peliin." #: sidepanel/historyPanel.py:10 msgid "Move History" msgstr "Siirtohistoria" #: sidepanel/historyPanel.py:13 msgid "" "The moves sheet keeps track of the players' moves and lets you navigate " "through the game history" msgstr "Siirtoikkuna esittää pelaajien siirrot ja mahdollistaa koko pelin siirtojen ja peliasemien valinnan" #: sidepanel/scorePanel.py:15 msgid "Score" msgstr "Pisteet" #: sidepanel/scorePanel.py:19 msgid "" "The score panel tries to evaluate the positions and shows you a graph of the" " game progress" msgstr "Pisteikkunassa arvioidaan peliaseman pisteet ja esitetään pisteytyksen muutos graafisesti" pychess-0.12.2/lang/fi/LC_MESSAGES/pychess.mo0000644000175000017470000003472212653231273020703 0ustar tamasusers00000000000000$, 016#M$qQ#7<B9['E) AM\ p&}C # AN_ nQyQ!!?ah n x -' 0;Pfot|Gi6 : DQW_el}>];%Fa ! ' 2?DCM ,+* G S]chm #  !*/5 = I"Wz  phZC4<I\`ZrP " *8=E K UahK{99t;%v l & !(0!Y!a! p!}! !!!!! !! ! !!!)!8$"]"c"u" " """!""" #(#.#$$.$2 %F@%%)%%%%%6&)?&i&z&N&&&''&'.7'Sf'''''' (#(?( S(Ma(M('('%)M)V) \) f)r) y) ))) )))).) * $*2*L* ^* i* s*~*I*}*M+ Q+_+ r++ + + +++I+g ,5s,C,,,,- -!-:-$W- |- --- -K--. ".20.2c.2. . ...../ /$/$,/ Q/ ]/h/w////////// //&/"080H0\0p0w000d0d1Km141(1M2ee22[203C3 H3V3be3 33 33 4$4 *4 54 ?4M4 ]4h4Cw4M4B 5L55(6l6#$7'H7p7y777 7777 7 77 8 8*8=88Q8R8888 9 99#;9(_9 99#9 99{~`oA\hMmnd$fXLOtUS>uZjqwsrVYbN-)E%kl+JR8 2H:cD,P<ix!4 K|_;Qza?^#0v](gF 'B 5p.eCI 7T@&31y/=6" }W[G* min%(white)s won the game%s can no longer castle in kingside%s can no longer castle in queenside%s will identify what threats would exist if it were your opponent's turn to move0 Players Ready10 min + 6 sec/move, 1400↑, White10 min + 6 sec/move, White12005 min5 min, 1200-1800, ManualConnect to the Free Online Chess ServerPromote pawn to what?AnimationChess VariantHint mode analyzing your game, enable this type Ctrl+H.Initial PositionNewsPlayersTime ControlToolsEngine, %s, has diedPyChess is discovering your engines. Please wait.Challenge:AcceptAdd commentAdd start commentAnalyze from current positionAnalyze gameAnalyzer startedAnnotated gameAnnotationBecause %(black)s ran out of time and %(white)s has insufficient material to mateBecause %(white)s ran out of time and %(black)s has insufficient material to mateBecause the %(black)s engine diedBecause the %(white)s engine diedBishopBlackBlack O-OBlack O-O-OBlack:Blitz:Blitz: 5 minChallengeChallenge: ChatClockClose _without SavingColorize analyzed movesCommand line parameters needed by the engine.CommentsConnectingConnecting to serverConnection was closedCopy FENDateDeclineDefaultDo you know that it is possible to finish a chess game in just 2 turns?Do you know that you can help translate Pychess in your language, Help > Translate Pychess.ECOEdit SeekEdit commentEmailEnginesEventEvent:Game informationHideHintsIf set, PyChess will suggest best opening moves on hint panel.If set, the board will turn after each move, to show the natural view for the current player.If set, the hint analyzer engine evaluation value is shown.If you don't save, new changes to your games will be permanently lost.KingKnightKnightsLightning:Log on as _GuestLogging on to serverManage enginesMaximum analysis time in seconds:Minutes:Minutes: Move HistoryNameNew GameNo chess engines (computer players) are participating in this game.NormalNormal: 40 min + 15 sec/moveOffer PauseOne player starts with one less knight pieceOne player starts with one less queen pieceOne player starts with one less rook pieceParameters:Paste FENPausePawnPlayPlay normal chess rulesPo_rts:PrivatePromotionPyChess - Connect to Internet ChessPyChess.py:QueenQuit PyChessRapid: 15 min + 10 sec/moveRatingResultRookRoundRound:S_ign upSaveScoreSearch:Seek _GraphSelect engineSelect the games you want to save:Select working directorySend ChallengeShow _ChatShredderLinuxChess:SiteSite:Standard:Start Private ChatThe analyzer will run in the background and analyze the game. This is necessary for the hint mode to workThe chat panel lets you communicate with your opponent during the game, assuming he or she is interestedThe comments panel will try to analyze and explain the moves playedThe directory where the engine will be started from.The engine %s reports an error:The hint panel will provide computer advice during each stage of the gameThe moves sheet keeps track of the players' moves and lets you navigate through the game historyThe resignationThe score panel tries to evaluate the positions and shows you a graph of the game progressThreat analysis by %sTimeTime control: Tip of the DayTo play on Fullscreen mode, just type F11. Coming back, F11 again.Tolerance:Translate PyChessUnknownUntimedUse analyzer:WaitWelcomeWhiteWhite O-OWhite O-O-OWhite:Working directory:You can choose from 20 different difficulties to play against the computer.You can't play rated games because "Untimed" is checked, You can't select a variant because "Untimed" is checked, Your opponent has asked that the game be aborted. If you accept this offer, the game will end with no rating change.Your opponent has asked that the game be adjourned. If you accept this offer, the game will be adjourned and you can resume it later (when your opponent is online and both players agree to resume).Your opponent has offered you a draw.Your opponent has offered you a draw. If you accept this offer, the game will end with a score of 1/2 - 1/2.Your opponent wants to abort the game.Your opponent wants to adjourn the game._Accept_Black player:_Clear Seeks_Engines_Hint mode_Hints_Log Off_Name:_Next_Password:_Play Normal chess_Previous_Start Game_Untimed_White player:and on FICS, untimed games can't be ratedand on FICS, untimed games have to be normal chess rulesblackcaptures materialexchanges materialgnuchess:half-openimproves king safetymoves a rook to an open filemoves an rook to a half-open fileresignsacrifies materialslightly improves king safetywhiteProject-Id-Version: pychess Report-Msgid-Bugs-To: POT-Creation-Date: 2016-01-27 13:28+0100 PO-Revision-Date: 2016-01-28 08:56+0000 Last-Translator: slav0nic Language-Team: Finnish (http://www.transifex.com/gbtami/pychess/language/fi/) MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Language: fi Plural-Forms: nplurals=2; plural=(n != 1); min%(white)s voitti pelin%s ei voi enää linnoittaa kuninkaan puolelle%s ei voi enää linnoittaa kuningattaren puolelle%s tunnistaa ne uhkat, joita olisi, jos olisi vastustajasi siirtovuoro0 Pelaajaa valmiina10 min + 6 sec/siirto, 1400↑, Valkoinen10 min + 6 s/siirto, Valkoinen12005 min5 min, 1200-1800, ManualYhdistä Free Online Chess ServeriinMihin korotat sotilaan?AnimointiShakkimuunnosMahdollista Vihjemoodi pelisi analysoimiseksi painamalla Ctrl+H.AloitusasemaUutisetPelaajatAjan seurantaTyökalutShakkiprosessori, %s, kaatuiPyChess tutkii käytettävissä olevia ohjelmistoja. Odota hetki.Haaste:HyväksyLisää kommenttiLisää avauskommenttiAnalysoi nykyasemastaAnalysoi peliAnalysaattori käynnistettyPelin muistiinpanotMuistiinpanotKoska %(black)s aika loppui ja %(white)s on riittämätön materiaali mattiinKoska %(white)s aika loppui ja %(black)s on riittämätön materiaali mattiinKoska %(black)s shakkiprosessori kaatuiKoska %(white)s shakkiprosessori kaatuiLähettiMustaMusta O-OMusta O-O-OMusta:Hyökkäys:Pika: 5 minHaasteHaasta:KeskusteluKelloSulje tallentamattaVärjää analysoidut siirrotShakkiprosessori vaatii komentoriviparametrejaKommentitYhdistetäänYhdistetään palvelimeenYhteys suljettiinKopioi FENPäiväysKieltäydyOletusTiedätkö, että on mahdollista voittaa shakkipeli vain 2:lla siirrolla?Tiedätkö, että voit auttaa kääntämään Pychess-peliä omalle kielellesi, Ohje > Suomenna Pychess-peliä.ECOMuokkaa hakuaMuokkaa kommenttiaSähköpostiShakkiprosessoritTapahtumaTapahtuma:PelitiedotPiilotaVihjeetJos valittuna, PyChess näyttää parhaat avaussiirrot Vihjeet-ikkunassa.Jos valittuna, lauta kääntyy joka siirron jälkeen näyttäen pelivuorossa olevan pelaajan näkymän.Jos valittuna, vihjeanalysaattorin arvo näytetään.Jos et tallenna, menetät tallentamattomat muutoksesi lopullisesti.KuningasRatsuRatsutSalamaKirjaudu _vierailijanaKirjaudutaan palvelimeenHallitse shakkiprosessoreitaMaksimi analysointiaika sekunneissa:Minuuttia:Minuutit:SiirtohistoriaNimiUusi peliYhtään shakkiprosessoria (tietokonepelaajia) ei osallistu tähän peliin.NormaaliNormaali: 40 min + 15s/siirtoEsitä taukoaToinen pelaaja aloittaa yhtä ratsua vähemmälläToinen pelaaja aloittaa kuningatarta vähemmälläToinen pelaaja aloittaa yhtä tornia vähemmälläParametrit:Liitä FENTaukoSotilasPelaaPelaa normaalisäännöilläPo_rts:YksityinenKorotusPyChess - Yhdistä Internet-peliin.PyChess.py:KuningatarLopeta PyChessNopea: 15 min + 10 s/siirtoRatingTulosTorniKierrosKierros:S_ign upTallennaPisteetHae:Seek _GraphValitse shakkiprosessoriValitse pelit, jotka haluat tallentaa:Valitse työhakemistoLähetä haasteNäytä _keskusteluShredderLinuxChess:PaikkaPaikka:Vakio:Aloita yksityinen keskusteluAnalysaattori laskee taustalla ja analysoi peliä. Tämä vaaditaan, jotta vihjemoodi toimisiKeskusteluikkunassa voit keskustella vastustajan kanssa, mikäli hän on kiinnostunut keskustelemaanKommentti-ikkunassa pyritään analysoimaan sanallisesti tehtyjä siirtoja.Hakemisto, mistä shakkiprosessori käynnistetään.Shakkiprosessori %s raportoi virheestä:Vihjeet-näytössä esitetään tietokoneen neuvoja kussakin pelin vaiheessa.Siirtoikkuna esittää pelaajien siirrot ja mahdollistaa koko pelin siirtojen ja peliasemien valinnanLuovutusPisteikkunassa arvioidaan peliaseman pisteet ja esitetään pisteytyksen muutos graafisesti%s:n uhka-analyysiAikaAjan seurantaPäivän vihjePelataksesi kokonäyttötilassa, paina F11. Palaa takaisin painamalla F11 uudestaan.Toleranssi:Käännä PyChess-ohjelmaaTuntematonEi aikarajoitustaKäytä analysaattoria:OdotaTervetuloaValkoinenValkoinen O-OValkoinen O-O-OValkoinen:Työhakemisto:Voit valita 20 eri vaikeusastetta pelatessasi tietokonetta vastaan.Et voi pelata pisteytettyjä pelejä, koska "Ei aikarajoitusta" on valittuna,Et voi valita vaihtoehtoa, koska "Ei aikarajoitusta" on valittuna,Vastustajasi on pyytänyt pelin lopettamista. Jos hyväksyt tarjouksen, peli päättyy ja pelaajien pisteet säilyvät ennallaan.Vastustajasi haluaa poistua pelistä. Jos hyväksyt tarjouksen, peli keskeytetään, mutta voit palata siihen myöhemmin (kun vastustajasi on kirjautunut ja molemmat pelaajat haluavat jatkaa)Vastustajasi tarjoaa sinulle tasapeliä.Vastustajasi on tarjonnut tasapeliä. Jos hyväksyt tämän tarjouksen, peli päättyy pisteisiin 1/2 - 1/2.Vastustajasi haluaa lopettaa pelin.Vastustajasi haluaa keskeyttää pelin.Hyväksy_Musta pelaaja:PyChess - Internet Chess: FICS_Shakkiprosessorit_Vihjemoodi_Vihjeet_Kirjaudu ulosNimi:_SeuraavaSalasana:_Pelaa normaalia shakkia_Edellinen_Aloita peli_Ei aikarajoitusta_Valkoinen pelaaja:ja FICS:ssä aikarajoittamia pelejä ei voi pisteyttääja FICS:ssä aikarajoittamattomissa peleissä tulee olla normaalit sakkisäännötmustaottaa materiaaliavaihtaa materiaaliagnuchess:puoliavoinparantaa kuninkaan suojaustasiirtää tornin avoimelle linjallesiirtää tornin puoliavoimelle linjalleluovuttaauhraa materiaaliaparantaa hieman kuninkaan suojaustavalkoinenpychess-0.12.2/lang/zu/0000755000175000017470000000000012653231274015134 5ustar tamasusers00000000000000pychess-0.12.2/lang/zu/LC_MESSAGES/0000755000175000017470000000000012653231274016721 5ustar tamasusers00000000000000pychess-0.12.2/lang/zu/LC_MESSAGES/pychess.po0000644000175000017470000024105312653216175020747 0ustar tamasusers00000000000000# SOME DESCRIPTIVE TITLE. # Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER # This file is distributed under the same license as the pychess package. # # Translators: # FIRST AUTHOR , 2009 msgid "" msgstr "" "Project-Id-Version: pychess\n" "Report-Msgid-Bugs-To: \n" "POT-Creation-Date: 2016-01-27 13:28+0100\n" "PO-Revision-Date: 2016-01-28 08:56+0000\n" "Last-Translator: slav0nic \n" "Language-Team: Zulu (http://www.transifex.com/gbtami/pychess/language/zu/)\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" "Language: zu\n" "Plural-Forms: nplurals=2; plural=(n != 1);\n" # "Plural-Forms: nplurals=INTEGER; plural=EXPRESSION;\n" #: glade/analyze_game.glade:22 msgid "Analyze game" msgstr "" #: glade/analyze_game.glade:87 msgid "Use analyzer:" msgstr "" #: glade/analyze_game.glade:122 glade/PyChess.glade:2054 msgid "Maximum analysis time in seconds:" msgstr "" #: glade/analyze_game.glade:163 msgid "" "If the analyzer finds a move where the evaluation difference (the difference" " between the evaluation for the move it thinks is the best move and the " "evaluation for the move made in the game) exceeds this value, it will add an" " annotation for that move (consisting of the engine's Principal Variation " "for the move) to the Annotation panel" msgstr "" #: glade/analyze_game.glade:164 msgid "Variation annotation creation threshold in centipawns:" msgstr "" #: glade/analyze_game.glade:198 msgid "Analyze from current position" msgstr "" #: glade/analyze_game.glade:214 msgid "Add threatening variation lines " msgstr "" #: glade/analyze_game.glade:229 glade/PyChess.glade:1459 msgid "Colorize analyzed moves" msgstr "" #: glade/analyze_game.glade:244 glade/PyChess.glade:1495 msgid "Show evaluation values" msgstr "" #: glade/discovererDialog.glade:18 msgid "PyChess is discovering your engines. Please wait." msgstr "" #: glade/discovererDialog.glade:77 msgid "PyChess.py:" msgstr "" #: glade/discovererDialog.glade:89 msgid "ShredderLinuxChess:" msgstr "" #: glade/discovererDialog.glade:101 msgid "gnuchess:" msgstr "" #: glade/fics_logon.glade:7 msgid "PyChess - Connect to Internet Chess" msgstr "" #: glade/fics_logon.glade:47 msgid "Connect to the Free Online Chess Server" msgstr "" #: glade/fics_logon.glade:129 glade/taskers.glade:394 msgid "_Password:" msgstr "_Izwi elihluthulelo:" #: glade/fics_logon.glade:143 msgid "_Name:" msgstr "_Igama:" #: glade/fics_logon.glade:191 msgid "Log on as _Guest" msgstr "" #: glade/fics_logon.glade:227 msgid "Host:" msgstr "" #: glade/fics_logon.glade:259 msgid "Po_rts:" msgstr "" #: glade/fics_logon.glade:271 msgid "Auto login on startup" msgstr "" #: glade/fics_logon.glade:385 msgid "S_ign up" msgstr "" #: glade/fics_lounge.glade:35 msgid "Challenge: " msgstr "" #: glade/fics_lounge.glade:97 msgid "Send Challenge" msgstr "" #: glade/fics_lounge.glade:133 msgid "Challenge:" msgstr "" #: glade/fics_lounge.glade:327 glade/fics_lounge.glade:2078 msgid "Lightning:" msgstr "" #: glade/fics_lounge.glade:351 glade/fics_lounge.glade:2102 msgid "Standard:" msgstr "" #: glade/fics_lounge.glade:375 glade/fics_lounge.glade:2126 msgid "Blitz:" msgstr "" #: glade/fics_lounge.glade:400 msgid "2 min, Fischer Random, Black" msgstr "" #: glade/fics_lounge.glade:422 msgid "10 min + 6 sec/move, White" msgstr "" #: glade/fics_lounge.glade:444 msgid "5 min" msgstr "" #: glade/fics_lounge.glade:480 msgid "Edit Seek" msgstr "" #: glade/fics_lounge.glade:584 lib/pychess/ic/ICLounge.py:2208 #: lib/pychess/ic/__init__.py:101 lib/pychess/Utils/GameModel.py:206 msgid "Untimed" msgstr "" #: glade/fics_lounge.glade:637 msgid "Minutes: " msgstr "" #: glade/fics_lounge.glade:665 msgid " Gain: " msgstr "" #: glade/fics_lounge.glade:703 msgid "Time control: " msgstr "" #: glade/fics_lounge.glade:716 lib/pychess/ic/FICSObjects.py:56 #: lib/pychess/ic/ICLounge.py:1137 lib/pychess/ic/ICLounge.py:2208 #: lib/pychess/ic/__init__.py:99 msgid "Standard" msgstr "" #: glade/fics_lounge.glade:757 glade/newInOut.glade:633 msgid "Time Control" msgstr "" #: glade/fics_lounge.glade:814 glade/fics_lounge.glade:1346 msgid "Don't care" msgstr "" #: glade/fics_lounge.glade:879 msgid "Your strength: " msgstr "" #: glade/fics_lounge.glade:921 msgid "(Blitz)" msgstr "" #: glade/fics_lounge.glade:951 msgid "Opponent's strength: " msgstr "" #: glade/fics_lounge.glade:1055 msgid "" "When this button is in the \"locked\" state, the relationship\n" "between \"Opponent's strength\" and \"Your strength\" will be\n" "preserved when \n" "a) your rating for the type of game sought has changed\n" "b) you change the variant or the time control" msgstr "" #: glade/fics_lounge.glade:1095 msgid "Center:" msgstr "" #: glade/fics_lounge.glade:1134 msgid "1200" msgstr "" #: glade/fics_lounge.glade:1188 msgid "Tolerance:" msgstr "" #: glade/fics_lounge.glade:1243 lib/pychess/ic/ICLounge.py:2452 msgid "Hide" msgstr "" #: glade/fics_lounge.glade:1289 msgid "Opponent Strength" msgstr "" #: glade/fics_lounge.glade:1386 lib/pychess/Database/gamelist.py:40 #: lib/pychess/ic/ICLounge.py:1357 lib/pychess/ic/ICLounge.py:1557 #: lib/pychess/ic/ICLounge.py:2108 lib/pychess/Utils/repr.py:10 #: lib/pychess/widgets/ChessClock.py:40 #: lib/pychess/widgets/TaskerManager.py:153 msgid "White" msgstr "" #: glade/fics_lounge.glade:1414 lib/pychess/Database/gamelist.py:40 #: lib/pychess/ic/ICLounge.py:1358 lib/pychess/ic/ICLounge.py:1558 #: lib/pychess/ic/ICLounge.py:2110 lib/pychess/Utils/repr.py:10 #: lib/pychess/widgets/ChessClock.py:40 #: lib/pychess/widgets/TaskerManager.py:154 msgid "Black" msgstr "" #: glade/fics_lounge.glade:1453 msgid "Your Color" msgstr "" #: glade/fics_lounge.glade:1512 msgid "Play normal chess rules" msgstr "" #: glade/fics_lounge.glade:1552 msgid "Play" msgstr "" #: glade/fics_lounge.glade:1618 glade/newInOut.glade:833 msgid "Chess Variant" msgstr "" #: glade/fics_lounge.glade:1676 msgid "Rated game" msgstr "" #: glade/fics_lounge.glade:1692 msgid "Manually accept opponent" msgstr "" #: glade/fics_lounge.glade:1722 msgid "Options" msgstr "" #: glade/fics_lounge.glade:1750 msgid "PyChess - Internet Chess: FICS" msgstr "" #: glade/fics_lounge.glade:1823 msgid "_Clear Seeks" msgstr "" #: glade/fics_lounge.glade:1847 msgid "_Accept" msgstr "_Vuma" #: glade/fics_lounge.glade:1871 msgid "_Decline" msgstr "" #: glade/fics_lounge.glade:2151 msgid "2 min, Fischer Random, 1800↓, Black" msgstr "" #: glade/fics_lounge.glade:2172 msgid "10 min + 6 sec/move, 1400↑, White" msgstr "" #: glade/fics_lounge.glade:2193 msgid "5 min, 1200-1800, Manual" msgstr "" #: glade/fics_lounge.glade:2247 msgid "Send all seeks" msgstr "" #: glade/fics_lounge.glade:2301 msgid "Send seek" msgstr "" #: glade/fics_lounge.glade:2337 msgid "Create Seek" msgstr "" #: glade/fics_lounge.glade:2353 msgid "_Seeks / Challenges" msgstr "" #: glade/fics_lounge.glade:2374 lib/pychess/ic/ICLounge.py:472 #: lib/pychess/ic/ICLounge.py:670 lib/pychess/ic/ICLounge.py:1357 #: lib/pychess/ic/ICLounge.py:1358 msgid "Rating" msgstr "Ukulinganiselwa" #: glade/fics_lounge.glade:2399 msgid "Time" msgstr "Isikhathi" #: glade/fics_lounge.glade:2419 msgid "Seek _Graph" msgstr "" #: glade/fics_lounge.glade:2444 msgid "0 Players Ready" msgstr "" #: glade/fics_lounge.glade:2496 msgid "Challenge" msgstr "" #: glade/fics_lounge.glade:2549 glade/fics_lounge.glade:2735 msgid "Observe" msgstr "" #: glade/fics_lounge.glade:2602 msgid "Start Private Chat" msgstr "" #: glade/fics_lounge.glade:2659 msgid "_Player List" msgstr "" #: glade/fics_lounge.glade:2792 msgid "_Game List" msgstr "" #: glade/fics_lounge.glade:2847 msgid "_My games" msgstr "" #: glade/fics_lounge.glade:2904 glade/PyChess.glade:841 msgid "Offer _Resume" msgstr "" #: glade/fics_lounge.glade:2962 glade/PyChess.glade:880 msgid "R_esign" msgstr "" #: glade/fics_lounge.glade:3006 glade/PyChess.glade:820 msgid "Offer _Draw" msgstr "" #: glade/fics_lounge.glade:3050 msgid "Offer A_bort" msgstr "" #: glade/fics_lounge.glade:3107 msgid "Pre_view" msgstr "" #: glade/fics_lounge.glade:3151 msgid "Examine" msgstr "" #: glade/fics_lounge.glade:3208 msgid "_Archived" msgstr "" #: glade/fics_lounge.glade:3313 msgid "News" msgstr "" #: glade/fics_lounge.glade:3345 msgid "Show Console" msgstr "" #: glade/fics_lounge.glade:3359 msgid "Show _Chat" msgstr "" #: glade/fics_lounge.glade:3373 msgid "_Log Off" msgstr "" #: glade/fics_lounge.glade:3393 msgid "Tools" msgstr "" #: glade/fics_lounge.glade:3428 msgid "Asymmetric Random " msgstr "" #: glade/findbar.glade:6 msgid "window1" msgstr "" #: glade/findbar.glade:21 msgid "0 of 0" msgstr "" #: glade/findbar.glade:66 msgid "Search:" msgstr "" #: glade/findbar.glade:134 msgid "_Previous" msgstr "" #: glade/findbar.glade:192 msgid "_Next" msgstr "" #: glade/newInOut.glade:45 lib/pychess/widgets/newGameDialog.py:445 msgid "New Game" msgstr "" #: glade/newInOut.glade:108 msgid "_Start Game" msgstr "" #: glade/newInOut.glade:130 msgid "Copy FEN" msgstr "" #: glade/newInOut.glade:143 msgid "Clear" msgstr "" #: glade/newInOut.glade:156 msgid "Paste FEN" msgstr "" #: glade/newInOut.glade:257 msgid "_Black player:" msgstr "" #: glade/newInOut.glade:274 msgid "_White player:" msgstr "" #: glade/newInOut.glade:385 msgid "Players" msgstr "" #: glade/newInOut.glade:436 msgid "_Untimed" msgstr "" #: glade/newInOut.glade:475 msgid "Blitz: 5 min" msgstr "" #: glade/newInOut.glade:526 msgid "Rapid: 15 min + 10 sec/move" msgstr "" #: glade/newInOut.glade:575 msgid "Normal: 40 min + 15 sec/move" msgstr "" #: glade/newInOut.glade:684 msgid "_Play Normal chess" msgstr "" #: glade/newInOut.glade:724 msgid "Play Fischer Random chess" msgstr "" #: glade/newInOut.glade:774 msgid "Play Losers chess" msgstr "" #: glade/newInOut.glade:919 msgid "Open Game" msgstr "" #: glade/newInOut.glade:1162 msgid "Initial Position" msgstr "" #: glade/newInOut.glade:1219 msgid "Enter Game Notation" msgstr "" #: glade/newInOut.glade:1314 msgid "Halfmove clock" msgstr "" #: glade/newInOut.glade:1327 msgid "En passant line" msgstr "" #: glade/newInOut.glade:1339 msgid "Side to move" msgstr "" #: glade/newInOut.glade:1351 msgid "Move number" msgstr "" #: glade/newInOut.glade:1361 msgid "Black O-O" msgstr "" #: glade/newInOut.glade:1375 msgid "Black O-O-O" msgstr "" #: glade/newInOut.glade:1389 msgid "White O-O-O" msgstr "" #: glade/newInOut.glade:1403 msgid "White O-O" msgstr "" #: glade/promotion.glade:7 msgid "Promotion" msgstr "" #: glade/promotion.glade:49 lib/pychess/Utils/repr.py:12 msgid "Queen" msgstr "" #: glade/promotion.glade:95 lib/pychess/Utils/repr.py:12 msgid "Rook" msgstr "" #: glade/promotion.glade:141 lib/pychess/Utils/repr.py:12 msgid "Bishop" msgstr "" #: glade/promotion.glade:187 lib/pychess/Utils/repr.py:12 msgid "Knight" msgstr "" #: glade/promotion.glade:233 lib/pychess/Utils/repr.py:12 msgid "King" msgstr "" #: glade/promotion.glade:265 msgid "Promote pawn to what?" msgstr "" #: glade/PyChess.glade:9 msgid "Chess client" msgstr "" #: glade/PyChess.glade:44 msgid "Game information" msgstr "" #: glade/PyChess.glade:164 msgid "Event:" msgstr "" #: glade/PyChess.glade:178 msgid "Site:" msgstr "" #: glade/PyChess.glade:204 msgid "Round:" msgstr "" #: glade/PyChess.glade:237 msgid "White:" msgstr "" #: glade/PyChess.glade:249 msgid "Black:" msgstr "" #: glade/PyChess.glade:302 msgid "Game data" msgstr "" #: glade/PyChess.glade:357 msgid "Date of game" msgstr "" #: glade/PyChess.glade:495 msgid "_Game" msgstr "" #: glade/PyChess.glade:502 msgid "_New Game" msgstr "" #: glade/PyChess.glade:515 msgid "Play _Internet Chess" msgstr "" #: glade/PyChess.glade:534 msgid "_Load Game" msgstr "" #: glade/PyChess.glade:550 msgid "Load _Recent Game" msgstr "" #: glade/PyChess.glade:558 msgid "Open _Database" msgstr "" #: glade/PyChess.glade:569 lib/pychess/widgets/newGameDialog.py:615 msgid "Setup Position" msgstr "" #: glade/PyChess.glade:579 msgid "Enter Game _Notation" msgstr "" #: glade/PyChess.glade:592 msgid "_Save Game" msgstr "" #: glade/PyChess.glade:606 msgid "Save Game _As" msgstr "" #: glade/PyChess.glade:624 msgid "Share Game" msgstr "" #: glade/PyChess.glade:630 msgid "_Export Position" msgstr "" #: glade/PyChess.glade:644 msgid "_Analyze Game" msgstr "" #: glade/PyChess.glade:678 msgid "Player _Rating" msgstr "" #: glade/PyChess.glade:723 msgid "_Edit" msgstr "" #: glade/PyChess.glade:734 msgid "_Copy PGN" msgstr "" #: glade/PyChess.glade:746 msgid "_Copy FEN" msgstr "" #: glade/PyChess.glade:763 msgid "_Engines" msgstr "" #: glade/PyChess.glade:789 msgid "_Actions" msgstr "" #: glade/PyChess.glade:800 msgid "Offer _Abort" msgstr "" #: glade/PyChess.glade:810 msgid "Offer Ad_journment" msgstr "" #: glade/PyChess.glade:831 msgid "Offer _Pause" msgstr "" #: glade/PyChess.glade:847 msgid "Offer _Undo" msgstr "" #: glade/PyChess.glade:870 msgid "_Call Flag" msgstr "" #: glade/PyChess.glade:890 msgid "Ask to _Move" msgstr "" #: glade/PyChess.glade:905 msgid "Auto Call _Flag" msgstr "" #: glade/PyChess.glade:918 msgid "_View" msgstr "" #: glade/PyChess.glade:925 msgid "_Rotate Board" msgstr "" #: glade/PyChess.glade:939 msgid "_Fullscreen" msgstr "" #: glade/PyChess.glade:952 msgid "Leave _Fullscreen" msgstr "" #: glade/PyChess.glade:969 msgid "_Show Sidepanels" msgstr "" #: glade/PyChess.glade:980 msgid "_Log Viewer" msgstr "" #: glade/PyChess.glade:997 msgid "_Hint mode" msgstr "" #: glade/PyChess.glade:1009 msgid "Sp_y mode" msgstr "" #: glade/PyChess.glade:1024 msgid "_Help" msgstr "" #: glade/PyChess.glade:1034 msgid "About Chess" msgstr "" #: glade/PyChess.glade:1043 msgid "How to Play" msgstr "" #: glade/PyChess.glade:1052 msgid "Translate PyChess" msgstr "" #: glade/PyChess.glade:1058 msgid "Tip of the Day" msgstr "" #: glade/PyChess.glade:1153 msgid "Default" msgstr "" #: glade/PyChess.glade:1156 msgid "Knights" msgstr "" #: glade/PyChess.glade:1167 lib/pychess/widgets/preferencesDialog.py:349 msgid "Beep" msgstr "" #: glade/PyChess.glade:1170 lib/pychess/widgets/preferencesDialog.py:350 msgid "Select sound file..." msgstr "" #: glade/PyChess.glade:1173 lib/pychess/widgets/preferencesDialog.py:348 msgid "No sound" msgstr "" #: glade/PyChess.glade:1180 msgid "Preferences" msgstr "" #: glade/PyChess.glade:1218 msgid "The displayed name of the first human player, e.g., John." msgstr "" #: glade/PyChess.glade:1230 msgid "Name of _first human player:" msgstr "" #: glade/PyChess.glade:1259 msgid "The displayed name of the guest player, e.g., Mary." msgstr "" #: glade/PyChess.glade:1271 msgid "Name of s_econd human player:" msgstr "" #: glade/PyChess.glade:1307 msgid "_Hide tabs when only one game is open" msgstr "" #: glade/PyChess.glade:1312 msgid "" "If set, this hides the tab in the top of the playing window, when it is not " "needed." msgstr "" #: glade/PyChess.glade:1326 msgid "_Use main app closer [x] to close all games" msgstr "" #: glade/PyChess.glade:1331 msgid "" "If set, clicking on main application window closer first time it closes all " "games." msgstr "" #: glade/PyChess.glade:1345 msgid "Auto _rotate board to current human player" msgstr "" #: glade/PyChess.glade:1350 msgid "" "If set, the board will turn after each move, to show the natural view for " "the current player." msgstr "" #: glade/PyChess.glade:1364 msgid "Auto _promote to queen" msgstr "" #: glade/PyChess.glade:1369 msgid "If set, pawn promotes to queen without promotion dialog selection." msgstr "" #: glade/PyChess.glade:1383 msgid "Face _to Face display mode" msgstr "" #: glade/PyChess.glade:1388 msgid "" "If set, the black pieces will be head down, suitable for playing against " "friends on mobile devices." msgstr "" #: glade/PyChess.glade:1402 msgid "Sho_w cords" msgstr "" #: glade/PyChess.glade:1407 msgid "" "If set, the playing board will display labels and ranks for each chess " "field. These are usable in chess notation." msgstr "" #: glade/PyChess.glade:1421 msgid "Show _captured pieces" msgstr "" #: glade/PyChess.glade:1426 msgid "If set, the captured figurines will be shown next to the board." msgstr "" #: glade/PyChess.glade:1440 msgid "Prefer figures in _notation" msgstr "" #: glade/PyChess.glade:1445 msgid "" "If set, PyChess will use figures to express moved pieces, rather than " "uppercase letters." msgstr "" #: glade/PyChess.glade:1464 msgid "If set, PyChess will colorize suboptimal analyzed moves with red." msgstr "" #: glade/PyChess.glade:1477 msgid "Show elapsed move times" msgstr "" #: glade/PyChess.glade:1482 msgid "If set, the elapsed time that a player used for the move is shown." msgstr "" #: glade/PyChess.glade:1500 msgid "If set, the hint analyzer engine evaluation value is shown." msgstr "" #: glade/PyChess.glade:1526 msgid "General Options" msgstr "" #: glade/PyChess.glade:1560 msgid "F_ull board animation" msgstr "" #: glade/PyChess.glade:1565 msgid "Animate pieces, board rotation and more. Use this on fast machines." msgstr "" #: glade/PyChess.glade:1579 msgid "Only animate _moves" msgstr "" #: glade/PyChess.glade:1584 msgid "Only animate piece moves." msgstr "" #: glade/PyChess.glade:1599 msgid "No _animation" msgstr "" #: glade/PyChess.glade:1604 msgid "Never use animation. Use this on slow machines." msgstr "" #: glade/PyChess.glade:1632 msgid "Animation" msgstr "" #: glade/PyChess.glade:1651 msgid "_General" msgstr "" #: glade/PyChess.glade:1692 msgid "Use opening _book" msgstr "" #: glade/PyChess.glade:1697 msgid "If set, PyChess will suggest best opening moves on hint panel." msgstr "" #: glade/PyChess.glade:1724 msgid "Polyglot book file:" msgstr "" #: glade/PyChess.glade:1768 msgid "Use _local tablebases" msgstr "" #: glade/PyChess.glade:1773 msgid "" "If set, PyChess will show game results for different moves in positions containing 6 or less pieces.\n" "You can download tablebase files from:\n" "http://www.olympuschess.com/egtb/gaviota/" msgstr "" #: glade/PyChess.glade:1803 msgid "Gaviota TB path:" msgstr "" #: glade/PyChess.glade:1843 msgid "Use _online tablebases" msgstr "" #: glade/PyChess.glade:1848 msgid "" "If set, PyChess will show game results for different moves in positions containing 6 or less pieces.\n" "It will search positions from http://www.k4it.de/" msgstr "" #: glade/PyChess.glade:1870 msgid "Opening, endgame" msgstr "" #: glade/PyChess.glade:1904 msgid "Use _analyzer" msgstr "" #: glade/PyChess.glade:1946 msgid "" "The analyzer will run in the background and analyze the game. This is " "necessary for the hint mode to work" msgstr "" #: glade/PyChess.glade:1978 msgid "Use _inverted analyzer" msgstr "" #: glade/PyChess.glade:2020 msgid "" "The inverse analyzer will analyze the game as if your opponent was to move. " "This is necessary for the spy mode to work" msgstr "" #: glade/PyChess.glade:2096 msgid "Analyzing" msgstr "" #: glade/PyChess.glade:2118 msgid "_Hints" msgstr "" #: glade/PyChess.glade:2263 msgid "Uninstall" msgstr "" #: glade/PyChess.glade:2317 msgid "Ac_tive" msgstr "" #: glade/PyChess.glade:2367 msgid "Installed Sidepanels" msgstr "" #: glade/PyChess.glade:2382 msgid "Side_panels" msgstr "" #: glade/PyChess.glade:2440 msgid "Light Squares :" msgstr "" #: glade/PyChess.glade:2479 msgid "Dark Squares :" msgstr "" #: glade/PyChess.glade:2515 msgid "Reset Default Colours" msgstr "" #: glade/PyChess.glade:2551 msgid "Board Colours" msgstr "" #: glade/PyChess.glade:2610 msgid "Chess Sets" msgstr "" #: glade/PyChess.glade:2634 msgid "Themes" msgstr "" #: glade/PyChess.glade:2659 msgid "_Use sounds in PyChess" msgstr "" #: glade/PyChess.glade:2982 msgid "A player _checks:" msgstr "" #: glade/PyChess.glade:2997 msgid "A player _moves:" msgstr "" #: glade/PyChess.glade:3010 msgid "Game is _drawn:" msgstr "" #: glade/PyChess.glade:3025 msgid "Game is _lost:" msgstr "" #: glade/PyChess.glade:3040 msgid "Game is _won:" msgstr "" #: glade/PyChess.glade:3055 msgid "A player c_aptures:" msgstr "" #: glade/PyChess.glade:3084 msgid "Game is _set-up:" msgstr "" #: glade/PyChess.glade:3136 msgid "_Observed moves:" msgstr "" #: glade/PyChess.glade:3151 msgid "Observed _ends:" msgstr "" #: glade/PyChess.glade:3265 msgid "Short on _time:" msgstr "" #: glade/PyChess.glade:3317 msgid "_Invalid move:" msgstr "" #: glade/PyChess.glade:3369 msgid "Activate alarm when _remaining sec is:" msgstr "" #: glade/PyChess.glade:3416 msgid "Play Sound When..." msgstr "" #: glade/PyChess.glade:3438 msgid "_Sounds" msgstr "" #: glade/PyChess.glade:3463 msgid "_Auto save finished games" msgstr "" #: glade/PyChess.glade:3497 msgid "Save files to:" msgstr "" #: glade/PyChess.glade:3525 msgid "Use name format:" msgstr "" #: glade/PyChess.glade:3569 msgid "Names: #n1, #n2" msgstr "" #: glade/PyChess.glade:3582 msgid "Year, month, day: #y, #m, #d" msgstr "" #: glade/PyChess.glade:3619 msgid "Save elapsed move _times" msgstr "" #: glade/PyChess.glade:3644 msgid "Save analyzing engine _evaluation values" msgstr "" #: glade/PyChess.glade:3669 msgid "Save _own games only" msgstr "" #: glade/PyChess.glade:3698 msgid "Save" msgstr "" #: glade/PyChess.glade:3728 msgid "uci" msgstr "" #: glade/PyChess.glade:3731 msgid "xboard" msgstr "" #: glade/PyChess.glade:3739 msgid "Manage engines" msgstr "" #: glade/PyChess.glade:3837 msgid "Command:" msgstr "" #: glade/PyChess.glade:3851 msgid "Protocol:" msgstr "" #: glade/PyChess.glade:3865 msgid "Parameters:" msgstr "" #: glade/PyChess.glade:3878 msgid "Command line parameters needed by the engine." msgstr "" #: glade/PyChess.glade:3903 msgid "" "Engines use uci or xboard communication protocol to talk to the GUI.\n" "If it can use both you can set here which one you like." msgstr "" #: glade/PyChess.glade:3929 msgid "Working directory:" msgstr "" #: glade/PyChess.glade:3942 msgid "The directory where the engine will be started from." msgstr "" #: glade/saveGamesDialog.glade:7 msgid "Quit PyChess" msgstr "" #: glade/saveGamesDialog.glade:24 lib/pychess/widgets/ionest.py:424 msgid "Close _without Saving" msgstr "" #: glade/saveGamesDialog.glade:83 msgid "_Save %d documents" msgstr "" #: glade/saveGamesDialog.glade:141 msgid "" "There are %d games with unsaved moves. Save changes before " "closing?" msgstr "" #: glade/saveGamesDialog.glade:161 msgid "Select the games you want to save:" msgstr "" #: glade/saveGamesDialog.glade:204 msgid "If you don't save, new changes to your games will be permanently lost." msgstr "" #: glade/taskers.glade:126 msgid "_Opponent:" msgstr "" #: glade/taskers.glade:154 msgid "_Your Color:" msgstr "" #: glade/taskers.glade:219 msgid "_Start Game" msgstr "" #: glade/taskers.glade:338 msgid "Log on as G_uest" msgstr "" #: glade/taskers.glade:410 msgid "Ha_ndle:" msgstr "" #: glade/taskers.glade:469 msgid "_Connect to server" msgstr "" #: glade/tipoftheday.glade:7 msgid "Tip Of The day" msgstr "" #: glade/tipoftheday.glade:62 msgid "Show tips at startup" msgstr "" #: lib/pychess/Main.py:302 msgid "http://en.wikipedia.org/wiki/Chess" msgstr "" #: lib/pychess/Main.py:305 msgid "http://en.wikipedia.org/wiki/Rules_of_chess" msgstr "" #: lib/pychess/Main.py:370 lib/pychess/widgets/gamenanny.py:80 msgid "Welcome" msgstr "" #: lib/pychess/Database/gamelist.py:40 msgid "Id" msgstr "" #: lib/pychess/Database/gamelist.py:40 msgid "W Elo" msgstr "" #: lib/pychess/Database/gamelist.py:40 msgid "B Elo" msgstr "" #: lib/pychess/Database/gamelist.py:41 msgid "Result" msgstr "" #: lib/pychess/Database/gamelist.py:41 msgid "Event" msgstr "" #: lib/pychess/Database/gamelist.py:41 msgid "Site" msgstr "" #: lib/pychess/Database/gamelist.py:41 msgid "Round" msgstr "" #: lib/pychess/Database/gamelist.py:41 msgid "Date" msgstr "" #: lib/pychess/Database/gamelist.py:41 msgid "ECO" msgstr "" #: lib/pychess/Database/gamelist.py:62 msgid "PyChess Game Database" msgstr "" #: lib/pychess/Database/PgnImport.py:188 #, python-format msgid "The game #%s can't be loaded, because of an error parsing FEN" msgstr "" #: lib/pychess/ic/FICSConnection.py:139 msgid "The connection was broken - got \"end of file\" message" msgstr "" #: lib/pychess/ic/FICSConnection.py:140 #, python-format msgid "'%s' is not a registered name" msgstr "" #: lib/pychess/ic/FICSConnection.py:141 msgid "" "The entered password was invalid.\n" "If you forgot your password, go to http://www.freechess.org/password to request a new one over email." msgstr "" #: lib/pychess/ic/FICSConnection.py:145 #, python-format msgid "Sorry '%s' is already logged in" msgstr "" #: lib/pychess/ic/FICSConnection.py:146 #, python-format msgid "'%s' is a registered name. If it is yours, type the password." msgstr "" #: lib/pychess/ic/FICSConnection.py:147 msgid "" "Due to abuse problems, guest connections have been prevented.\n" "You can still register on http://www.freechess.org" msgstr "" #: lib/pychess/ic/FICSConnection.py:166 msgid "Connecting to server" msgstr "" #: lib/pychess/ic/FICSConnection.py:181 msgid "Logging on to server" msgstr "" #: lib/pychess/ic/FICSConnection.py:239 msgid "Setting up environment" msgstr "" #: lib/pychess/ic/FICSObjects.py:35 lib/pychess/ic/FICSObjects.py:47 #, python-format msgid "%(player)s is %(status)s" msgstr "" #: lib/pychess/ic/FICSObjects.py:46 msgid "not playing" msgstr "" #: lib/pychess/ic/FICSObjects.py:54 lib/pychess/ic/ICLounge.py:1136 #: lib/pychess/ic/ICLounge.py:2209 lib/pychess/ic/__init__.py:98 #: lib/pychess/widgets/newGameDialog.py:153 msgid "Blitz" msgstr "" #: lib/pychess/ic/FICSObjects.py:58 lib/pychess/ic/ICLounge.py:1137 #: lib/pychess/ic/ICLounge.py:2209 lib/pychess/ic/__init__.py:100 msgid "Lightning" msgstr "" #: lib/pychess/ic/FICSObjects.py:60 lib/pychess/Variants/atomic.py:15 msgid "Atomic" msgstr "" #: lib/pychess/ic/FICSObjects.py:62 lib/pychess/Variants/bughouse.py:9 msgid "Bughouse" msgstr "" #: lib/pychess/ic/FICSObjects.py:64 lib/pychess/Variants/crazyhouse.py:9 msgid "Crazyhouse" msgstr "" #: lib/pychess/ic/FICSObjects.py:66 lib/pychess/Variants/losers.py:9 msgid "Losers" msgstr "" #: lib/pychess/ic/FICSObjects.py:68 lib/pychess/Variants/suicide.py:12 msgid "Suicide" msgstr "" #: lib/pychess/ic/FICSObjects.py:70 lib/pychess/ic/__init__.py:129 msgid "Wild" msgstr "" #: lib/pychess/ic/FICSObjects.py:117 msgid "Online" msgstr "" #: lib/pychess/ic/FICSObjects.py:118 lib/pychess/ic/FICSObjects.py:143 msgid "Offline" msgstr "" #: lib/pychess/ic/FICSObjects.py:133 msgid "Available" msgstr "" #: lib/pychess/ic/FICSObjects.py:135 msgid "Playing" msgstr "" #: lib/pychess/ic/FICSObjects.py:141 msgid "Idle" msgstr "" #: lib/pychess/ic/FICSObjects.py:145 msgid "Examining" msgstr "" #: lib/pychess/ic/FICSObjects.py:147 msgid "Not Available" msgstr "" #: lib/pychess/ic/FICSObjects.py:149 msgid "Running Simul Match" msgstr "" #: lib/pychess/ic/FICSObjects.py:151 msgid "In Tournament" msgstr "" #: lib/pychess/ic/FICSObjects.py:308 lib/pychess/ic/FICSObjects.py:492 #: lib/pychess/ic/ICLounge.py:2278 msgid "Unrated" msgstr "" #: lib/pychess/ic/FICSObjects.py:491 lib/pychess/ic/ICLounge.py:670 #: lib/pychess/ic/ICLounge.py:1358 lib/pychess/ic/ICLounge.py:1558 #: lib/pychess/ic/ICLounge.py:2113 msgid "Rated" msgstr "" #: lib/pychess/ic/FICSObjects.py:498 lib/pychess/ic/ICLounge.py:2098 #, python-format msgid "%d min" msgstr "" #: lib/pychess/ic/FICSObjects.py:500 #, python-format msgid " + %d sec" msgstr "" #: lib/pychess/ic/FICSObjects.py:517 #, python-format msgid "%(player)s plays %(color)s" msgstr "" #: lib/pychess/ic/FICSObjects.py:519 lib/pychess/ic/ICLounge.py:909 msgid "white" msgstr "" #: lib/pychess/ic/FICSObjects.py:519 lib/pychess/ic/ICLounge.py:909 msgid "black" msgstr "" #: lib/pychess/ic/FICSObjects.py:565 msgid "This is a continuation of an adjourned match" msgstr "" #: lib/pychess/ic/FICSObjects.py:654 msgid "Opponent Rating" msgstr "" #: lib/pychess/ic/FICSObjects.py:656 msgid "Manual Accept" msgstr "" #: lib/pychess/ic/FICSObjects.py:810 msgid "Private" msgstr "" #: lib/pychess/ic/FICSObjects.py:930 lib/pychess/ic/ICLounge.py:527 #: lib/pychess/Savers/epd.py:139 msgid "Unknown" msgstr "" #: lib/pychess/ic/ICLogon.py:159 lib/pychess/ic/ICLogon.py:165 msgid "Connection Error" msgstr "" #: lib/pychess/ic/ICLogon.py:161 msgid "Log on Error" msgstr "" #: lib/pychess/ic/ICLogon.py:163 msgid "Connection was closed" msgstr "" #: lib/pychess/ic/ICLogon.py:169 msgid "Address Error" msgstr "" #: lib/pychess/ic/ICLogon.py:172 msgid "Auto-logout" msgstr "" #: lib/pychess/ic/ICLogon.py:173 msgid "You have been logged out because you were idle more than 60 minutes" msgstr "" #: lib/pychess/ic/ICLounge.py:222 msgid "You have to set kibitz on to see bot messages here." msgstr "" #: lib/pychess/ic/ICLounge.py:241 msgid "" "You may only have 3 outstanding seeks at the same time. If you want to add a" " new seek you must clear your currently active seeks. Clear your seeks?" msgstr "" #: lib/pychess/ic/ICLounge.py:258 msgid "You can't touch this! You are examining a game." msgstr "" #: lib/pychess/ic/ICLounge.py:270 msgid " has declined your offer for a match" msgstr "" #: lib/pychess/ic/ICLounge.py:283 msgid " is censoring you" msgstr "" #: lib/pychess/ic/ICLounge.py:296 msgid " noplay listing you" msgstr "" #: lib/pychess/ic/ICLounge.py:311 msgid " uses a formula not fitting your match request:" msgstr "" #: lib/pychess/ic/ICLounge.py:325 msgid "to manual accept" msgstr "" #: lib/pychess/ic/ICLounge.py:327 msgid "to automatic accept" msgstr "" #: lib/pychess/ic/ICLounge.py:329 msgid "rating range now" msgstr "" #: lib/pychess/ic/ICLounge.py:330 msgid "Seek updated" msgstr "" #: lib/pychess/ic/ICLounge.py:342 msgid "Your seeks have been removed" msgstr "" #: lib/pychess/ic/ICLounge.py:363 msgid " has arrived" msgstr "" #: lib/pychess/ic/ICLounge.py:370 msgid " has departed" msgstr "" #: lib/pychess/ic/ICLounge.py:374 msgid " is present" msgstr "" #: lib/pychess/ic/ICLounge.py:391 sidepanel/chatPanel.py:17 msgid "Chat" msgstr "" #: lib/pychess/ic/ICLounge.py:472 sidepanel/bookPanel.py:366 msgid "Win" msgstr "" #: lib/pychess/ic/ICLounge.py:472 sidepanel/bookPanel.py:360 msgid "Draw" msgstr "" #: lib/pychess/ic/ICLounge.py:472 sidepanel/bookPanel.py:363 msgid "Loss" msgstr "" #: lib/pychess/ic/ICLounge.py:482 msgid "" "On FICS, your \"Wild\" rating encompasses all of the following variants at " "all time controls:\n" msgstr "" #: lib/pychess/ic/ICLounge.py:494 msgid "Sanctions" msgstr "" #: lib/pychess/ic/ICLounge.py:499 msgid "Email" msgstr "" #: lib/pychess/ic/ICLounge.py:504 msgid "Spent" msgstr "" #: lib/pychess/ic/ICLounge.py:506 msgid "online in total" msgstr "" #: lib/pychess/ic/ICLounge.py:512 msgid "Ping" msgstr "" #: lib/pychess/ic/ICLounge.py:517 msgid "Connecting" msgstr "" #: lib/pychess/ic/ICLounge.py:544 msgid "" "You are currently logged in as a guest.\n" "A guest can't play rated games and therefore isn't able to play as many of the types of matches offered as a registered user. To register an account, go to http://www.freechess.org/Register/index.html." msgstr "" #: lib/pychess/ic/ICLounge.py:669 lib/pychess/ic/ICLounge.py:1136 msgid "Name" msgstr "" #: lib/pychess/ic/ICLounge.py:670 lib/pychess/ic/ICLounge.py:1358 #: lib/pychess/ic/ICLounge.py:1558 msgid "Type" msgstr "" #: lib/pychess/ic/ICLounge.py:670 lib/pychess/ic/ICLounge.py:1558 msgid "Clock" msgstr "" #: lib/pychess/ic/ICLounge.py:726 lib/pychess/ic/ICLounge.py:923 #: lib/pychess/Players/Human.py:250 msgid "Accept" msgstr "" #: lib/pychess/ic/ICLounge.py:728 msgid "Assess" msgstr "" #: lib/pychess/ic/ICLounge.py:734 msgid "Archived" msgstr "" #: lib/pychess/ic/ICLounge.py:848 #, python-format msgid "Active seeks: %d" msgstr "" #: lib/pychess/ic/ICLounge.py:897 #, python-format msgid "" " would like to resume your adjourned %(time)s %(gametype)s " "game." msgstr "" #: lib/pychess/ic/ICLounge.py:902 #, python-format msgid "" " challenges you to a %(time)s %(rated)s %(gametype)s game" msgstr "" #: lib/pychess/ic/ICLounge.py:907 #, python-format msgid " where %(player)s plays %(color)s." msgstr "" #: lib/pychess/ic/ICLounge.py:924 lib/pychess/Players/Human.py:251 msgid "Decline" msgstr "" #: lib/pychess/ic/ICLounge.py:1065 msgid " min" msgstr "" #: lib/pychess/ic/ICLounge.py:1137 msgid "Status" msgstr "" #: lib/pychess/ic/ICLounge.py:1203 lib/pychess/ic/ICLounge.py:1233 #, python-format msgid "Players: %d" msgstr "" #: lib/pychess/ic/ICLounge.py:1469 #, python-format msgid "Games running: %d" msgstr "" #: lib/pychess/ic/ICLounge.py:1559 msgid "Date/Time" msgstr "" #: lib/pychess/ic/ICLounge.py:1614 #, python-format msgid "" " with whom you have an adjourned %(timecontrol)s %(gametype)s " "game is online." msgstr "" #: lib/pychess/ic/ICLounge.py:1635 msgid "Request Continuation" msgstr "" #: lib/pychess/ic/ICLounge.py:1637 msgid "Examine Adjourned Game" msgstr "" #: lib/pychess/ic/ICLounge.py:1965 msgid "" "The chain button is disabled because you are logged in as a guest. Guests " "can't establish ratings, and the chain button's state has no effect when " "there is no rating to which to tie \"Opponent Strength\" to" msgstr "" #: lib/pychess/ic/ICLounge.py:2006 msgid "Challenge: " msgstr "" #: lib/pychess/ic/ICLounge.py:2044 msgid "If set you can refuse players accepting your seek" msgstr "" #: lib/pychess/ic/ICLounge.py:2048 lib/pychess/ic/ICLounge.py:2051 msgid "This option is not applicable because you're challenging a player" msgstr "" #: lib/pychess/ic/ICLounge.py:2064 msgid "Edit Seek: " msgstr "" #: lib/pychess/ic/ICLounge.py:2095 #, python-format msgid "%(minutes)d min + %(gain)d sec/move" msgstr "" #: lib/pychess/ic/ICLounge.py:2116 msgid "Manual" msgstr "" #: lib/pychess/ic/ICLounge.py:2256 msgid "Any strength" msgstr "" #: lib/pychess/ic/ICLounge.py:2308 msgid "You can't play rated games because you are logged in as a guest" msgstr "" #: lib/pychess/ic/ICLounge.py:2312 msgid "You can't play rated games because \"Untimed\" is checked, " msgstr "" #: lib/pychess/ic/ICLounge.py:2313 msgid "and on FICS, untimed games can't be rated" msgstr "" #: lib/pychess/ic/ICLounge.py:2317 msgid "This option is not available because you're challenging a guest, " msgstr "" #: lib/pychess/ic/ICLounge.py:2318 msgid "and guests can't play rated games" msgstr "" #: lib/pychess/ic/ICLounge.py:2332 lib/pychess/Variants/shuffle.py:16 #: lib/pychess/widgets/newGameDialog.py:266 msgid "Shuffle" msgstr "" #: lib/pychess/ic/ICLounge.py:2333 lib/pychess/widgets/newGameDialog.py:267 msgid "Other (standard rules)" msgstr "" #: lib/pychess/ic/ICLounge.py:2334 lib/pychess/widgets/newGameDialog.py:268 msgid "Other (non standard rules)" msgstr "" #: lib/pychess/ic/ICLounge.py:2421 msgid "You can't select a variant because \"Untimed\" is checked, " msgstr "" #: lib/pychess/ic/ICLounge.py:2422 msgid "and on FICS, untimed games have to be normal chess rules" msgstr "" #: lib/pychess/ic/ICLounge.py:2454 msgid "Change Tolerance" msgstr "" #: lib/pychess/ic/__init__.py:102 msgid "Examined" msgstr "" #: lib/pychess/ic/__init__.py:103 msgid "Other" msgstr "" #: lib/pychess/ic/__init__.py:182 msgid "Administrator" msgstr "" #: lib/pychess/ic/__init__.py:182 msgid "Blindfold Account" msgstr "" #: lib/pychess/ic/__init__.py:182 msgid "Computer" msgstr "" #: lib/pychess/ic/__init__.py:183 msgid "Team Account" msgstr "" #: lib/pychess/ic/__init__.py:183 msgid "Unregistered" msgstr "" #: lib/pychess/ic/__init__.py:183 msgid "Chess Advisor" msgstr "" #: lib/pychess/ic/__init__.py:184 msgid "Service Representative" msgstr "" #: lib/pychess/ic/__init__.py:184 msgid "Tournament Director" msgstr "" #: lib/pychess/ic/__init__.py:184 msgid "Mamer Manager" msgstr "" #: lib/pychess/ic/__init__.py:185 msgid "Grand Master" msgstr "" #: lib/pychess/ic/__init__.py:185 msgid "International Master" msgstr "" #: lib/pychess/ic/__init__.py:185 msgid "FIDE Master" msgstr "" #: lib/pychess/ic/__init__.py:186 msgid "Woman Grand Master" msgstr "" #: lib/pychess/ic/__init__.py:186 msgid "Woman International Master" msgstr "" #: lib/pychess/ic/__init__.py:186 msgid "Woman FIDE Master" msgstr "" #: lib/pychess/ic/__init__.py:187 msgid "Dummy Account" msgstr "" #: lib/pychess/ic/__init__.py:191 msgid "*" msgstr "" #: lib/pychess/ic/__init__.py:191 lib/pychess/Utils/repr.py:14 msgid "B" msgstr "" #: lib/pychess/ic/__init__.py:191 msgid "C" msgstr "" #: lib/pychess/ic/__init__.py:192 msgid "T" msgstr "" #: lib/pychess/ic/__init__.py:192 msgid "U" msgstr "" #: lib/pychess/ic/__init__.py:192 msgid "CA" msgstr "" #: lib/pychess/ic/__init__.py:193 msgid "SR" msgstr "" #: lib/pychess/ic/__init__.py:193 msgid "TD" msgstr "" #: lib/pychess/ic/__init__.py:193 msgid "TM" msgstr "" #: lib/pychess/ic/__init__.py:194 msgid "GM" msgstr "" #: lib/pychess/ic/__init__.py:194 msgid "IM" msgstr "" #: lib/pychess/ic/__init__.py:194 msgid "FM" msgstr "" #: lib/pychess/ic/__init__.py:195 msgid "WGM" msgstr "" #: lib/pychess/ic/__init__.py:195 msgid "WIM" msgstr "" #: lib/pychess/ic/__init__.py:195 msgid "WFM" msgstr "" #: lib/pychess/ic/__init__.py:195 msgid "D" msgstr "" #: lib/pychess/ic/__init__.py:195 msgid "H" msgstr "" #: lib/pychess/ic/__init__.py:195 msgid "CM" msgstr "" #: lib/pychess/ic/__init__.py:195 msgid "FA" msgstr "" #: lib/pychess/ic/__init__.py:195 msgid "NM" msgstr "" #: lib/pychess/Players/CECPEngine.py:857 #, python-format msgid "The engine %s reports an error:" msgstr "" #: lib/pychess/Players/Human.py:20 msgid "Your opponent has offered you a draw." msgstr "" #: lib/pychess/Players/Human.py:21 msgid "" "Your opponent has offered you a draw. If you accept this offer, the game " "will end with a score of 1/2 - 1/2." msgstr "" #: lib/pychess/Players/Human.py:23 msgid "Your opponent wants to abort the game." msgstr "" #: lib/pychess/Players/Human.py:24 msgid "" "Your opponent has asked that the game be aborted. If you accept this offer, " "the game will end with no rating change." msgstr "" #: lib/pychess/Players/Human.py:26 msgid "Your opponent wants to adjourn the game." msgstr "" #: lib/pychess/Players/Human.py:27 msgid "" "Your opponent has asked that the game be adjourned. If you accept this " "offer, the game will be adjourned and you can resume it later (when your " "opponent is online and both players agree to resume)." msgstr "" #: lib/pychess/Players/Human.py:29 #, python-format msgid "Your opponent wants to undo %s move(s)." msgstr "" #: lib/pychess/Players/Human.py:30 #, python-format msgid "" "Your opponent has asked that the last %s move(s) be undone. If you accept " "this offer, the game will continue from the earlier position." msgstr "" #: lib/pychess/Players/Human.py:32 msgid "Your opponent wants to pause the game." msgstr "" #: lib/pychess/Players/Human.py:33 msgid "" "Your opponent has asked that the game be paused. If you accept this offer, " "the game clock will be paused until both players agree to resume the game." msgstr "" #: lib/pychess/Players/Human.py:35 msgid "Your opponent wants to resume the game." msgstr "" #: lib/pychess/Players/Human.py:36 msgid "" "Your opponent has asked that the game be resumed. If you accept this offer, " "the game clock will continue from where it was paused." msgstr "" #: lib/pychess/Players/Human.py:40 msgid "The resignation" msgstr "" #: lib/pychess/Players/Human.py:41 msgid "The flag call" msgstr "" #: lib/pychess/Players/Human.py:42 msgid "The draw offer" msgstr "" #: lib/pychess/Players/Human.py:43 msgid "The abort offer" msgstr "" #: lib/pychess/Players/Human.py:44 msgid "The adjourn offer" msgstr "" #: lib/pychess/Players/Human.py:45 msgid "The pause offer" msgstr "" #: lib/pychess/Players/Human.py:46 msgid "The resume offer" msgstr "" #: lib/pychess/Players/Human.py:47 msgid "The offer to switch sides" msgstr "" #: lib/pychess/Players/Human.py:48 msgid "The takeback offer" msgstr "" #: lib/pychess/Players/Human.py:52 msgid "resign" msgstr "" #: lib/pychess/Players/Human.py:53 msgid "call your opponents flag" msgstr "" #: lib/pychess/Players/Human.py:54 msgid "offer a draw" msgstr "" #: lib/pychess/Players/Human.py:55 msgid "offer an abort" msgstr "" #: lib/pychess/Players/Human.py:56 msgid "offer to adjourn" msgstr "" #: lib/pychess/Players/Human.py:57 msgid "offer a pause" msgstr "" #: lib/pychess/Players/Human.py:58 msgid "offer to resume" msgstr "" #: lib/pychess/Players/Human.py:59 msgid "offer to switch sides" msgstr "" #: lib/pychess/Players/Human.py:60 msgid "offer a takeback" msgstr "" #: lib/pychess/Players/Human.py:61 msgid "ask your opponent to move" msgstr "" #: lib/pychess/Players/Human.py:66 msgid "Your opponent is not out of time." msgstr "" #: lib/pychess/Players/Human.py:68 msgid "The clock hasn't been started yet." msgstr "" #: lib/pychess/Players/Human.py:70 msgid "You can't switch colors during the game." msgstr "" #: lib/pychess/Players/Human.py:72 msgid "You have tried to undo too many moves." msgstr "" #: lib/pychess/Players/Human.py:180 msgid "Your opponent asks you to hurry!" msgstr "" #: lib/pychess/Players/Human.py:181 msgid "" "Generally this means nothing, as the game is time-based, but if you want to " "please your opponent, perhaps you should get going." msgstr "" #: lib/pychess/Players/Human.py:259 #, python-format msgid "%s was declined by your opponent" msgstr "" #: lib/pychess/Players/Human.py:260 #, python-format msgid "Resend %s?" msgstr "" #: lib/pychess/Players/Human.py:267 msgid "Resend" msgstr "" #: lib/pychess/Players/Human.py:275 #, python-format msgid "%s was withdrawn by your opponent" msgstr "" #: lib/pychess/Players/Human.py:276 msgid "Your opponent seems to have changed their mind." msgstr "" #: lib/pychess/Players/Human.py:290 #, python-format msgid "Unable to accept %s" msgstr "" #: lib/pychess/Players/Human.py:291 msgid "Probably because it has been withdrawn." msgstr "" #: lib/pychess/Players/Human.py:298 #, python-format msgid "%s returns an error" msgstr "" #: lib/pychess/Savers/chessalpha2.py:12 msgid "Chess Alpha 2 Diagram" msgstr "" #: lib/pychess/Savers/chesspastebin.py:39 msgid "Game shared at " msgstr "" #: lib/pychess/Savers/chesspastebin.py:41 msgid "(Link is available on clipboard.)" msgstr "" #: lib/pychess/Savers/database.py:19 msgid "PyChess database" msgstr "" #: lib/pychess/Savers/epd.py:12 msgid "Chess Position" msgstr "" #: lib/pychess/Savers/fen.py:12 msgid "Simple Chess Position" msgstr "" #: lib/pychess/Savers/fen.py:44 lib/pychess/Savers/pgn.py:329 msgid "The game can't be loaded, because of an error parsing FEN" msgstr "" #: lib/pychess/Savers/pgnbase.py:100 #, python-format msgid "" "The game can't be read to end, because of an error parsing move %(moveno)s " "'%(notation)s'." msgstr "" #: lib/pychess/Savers/pgnbase.py:102 #, python-format msgid "The move failed because %s." msgstr "" #: lib/pychess/Savers/pgnbase.py:110 #, python-format msgid "Error parsing move %(moveno)s %(mstr)s" msgstr "" #: lib/pychess/Savers/pgn.py:28 msgid "Chess Game" msgstr "" #: lib/pychess/Savers/pgn.py:362 msgid "Invalid move." msgstr "" #: lib/pychess/Savers/png.py:15 msgid "Png image" msgstr "" #: lib/pychess/System/ping.py:31 msgid "Destination Host Unreachable" msgstr "" #: lib/pychess/System/ping.py:74 msgid "Died" msgstr "" #: lib/pychess/Utils/GameModel.py:147 msgid "Local Event" msgstr "" #: lib/pychess/Utils/GameModel.py:148 msgid "Local Site" msgstr "" #: lib/pychess/Utils/repr.py:12 msgid "Pawn" msgstr "" #: lib/pychess/Utils/repr.py:14 msgid "P" msgstr "" #: lib/pychess/Utils/repr.py:14 msgid "N" msgstr "" #: lib/pychess/Utils/repr.py:14 msgid "R" msgstr "" #: lib/pychess/Utils/repr.py:14 msgid "Q" msgstr "" #: lib/pychess/Utils/repr.py:14 msgid "K" msgstr "" #: lib/pychess/Utils/repr.py:17 msgid "The game ended in a draw" msgstr "" #: lib/pychess/Utils/repr.py:18 #, python-format msgid "%(white)s won the game" msgstr "" #: lib/pychess/Utils/repr.py:19 #, python-format msgid "%(black)s won the game" msgstr "" #: lib/pychess/Utils/repr.py:20 msgid "The game has been killed" msgstr "" #: lib/pychess/Utils/repr.py:21 msgid "The game has been adjourned" msgstr "" #: lib/pychess/Utils/repr.py:22 msgid "The game has been aborted" msgstr "" #: lib/pychess/Utils/repr.py:26 msgid "Because neither player has sufficient material to mate" msgstr "" #: lib/pychess/Utils/repr.py:27 msgid "Because the same position was repeated three times in a row" msgstr "" #: lib/pychess/Utils/repr.py:28 msgid "Because the last 50 moves brought nothing new" msgstr "" #: lib/pychess/Utils/repr.py:29 msgid "Because both players ran out of time" msgstr "" #: lib/pychess/Utils/repr.py:30 #, python-format msgid "Because %(mover)s stalemated" msgstr "" #: lib/pychess/Utils/repr.py:31 msgid "Because both players agreed to a draw" msgstr "" #: lib/pychess/Utils/repr.py:32 lib/pychess/Utils/repr.py:42 msgid "Because of adjudication by an admin" msgstr "" #: lib/pychess/Utils/repr.py:33 msgid "Because the game exceed the max length" msgstr "" #: lib/pychess/Utils/repr.py:34 #, python-format msgid "" "Because %(white)s ran out of time and %(black)s has insufficient material to" " mate" msgstr "" #: lib/pychess/Utils/repr.py:35 #, python-format msgid "" "Because %(black)s ran out of time and %(white)s has insufficient material to" " mate" msgstr "" #: lib/pychess/Utils/repr.py:36 msgid "Because both players have the same amount of pieces" msgstr "" #: lib/pychess/Utils/repr.py:38 #, python-format msgid "Because %(loser)s resigned" msgstr "" #: lib/pychess/Utils/repr.py:39 #, python-format msgid "Because %(loser)s ran out of time" msgstr "" #: lib/pychess/Utils/repr.py:40 #, python-format msgid "Because %(loser)s was checkmated" msgstr "" #: lib/pychess/Utils/repr.py:41 #, python-format msgid "Because %(loser)s disconnected" msgstr "" #: lib/pychess/Utils/repr.py:43 #, python-format msgid "Because %(winner)s has fewer pieces" msgstr "" #: lib/pychess/Utils/repr.py:44 #, python-format msgid "Because %(winner)s lost all pieces" msgstr "" #: lib/pychess/Utils/repr.py:45 #, python-format msgid "Because %(loser)s king exploded" msgstr "" #: lib/pychess/Utils/repr.py:46 #, python-format msgid "Because %(winner)s king reached the center" msgstr "" #: lib/pychess/Utils/repr.py:47 #, python-format msgid "Because %(winner)s was giving check 3 times" msgstr "" #: lib/pychess/Utils/repr.py:49 msgid "Because a player lost connection" msgstr "" #: lib/pychess/Utils/repr.py:50 msgid "Because both players agreed to an adjournment" msgstr "" #: lib/pychess/Utils/repr.py:51 msgid "Because the server was shut down" msgstr "" #: lib/pychess/Utils/repr.py:52 msgid "" "Because a player lost connection and the other player requested adjournment" msgstr "" #: lib/pychess/Utils/repr.py:53 #, python-format msgid "" "Because %(black)s lost connection to the server and %(white)s requested " "adjournment" msgstr "" #: lib/pychess/Utils/repr.py:54 #, python-format msgid "" "Because %(white)s lost connection to the server and %(black)s requested " "adjournment" msgstr "" #: lib/pychess/Utils/repr.py:55 #, python-format msgid "Because %(white)s lost connection to the server" msgstr "" #: lib/pychess/Utils/repr.py:56 #, python-format msgid "Because %(black)s lost connection to the server" msgstr "" #: lib/pychess/Utils/repr.py:58 msgid "Because of adjudication by an admin. No rating changes have occurred." msgstr "" #: lib/pychess/Utils/repr.py:59 msgid "" "Because both players agreed to abort the game. No rating changes have " "occurred." msgstr "" #: lib/pychess/Utils/repr.py:60 msgid "Because of courtesy by a player. No rating changes have occurred." msgstr "" #: lib/pychess/Utils/repr.py:61 msgid "" "Because a player aborted the game. Either player can abort the game without " "the other's consent before the second move. No rating changes have occurred." msgstr "" #: lib/pychess/Utils/repr.py:62 msgid "" "Because a player disconnected and there are too few moves to warrant " "adjournment. No rating changes have occurred." msgstr "" #: lib/pychess/Utils/repr.py:63 msgid "Because the server was shut down. No rating changes have occurred." msgstr "" #: lib/pychess/Utils/repr.py:65 #, python-format msgid "Because the %(white)s engine died" msgstr "" #: lib/pychess/Utils/repr.py:66 #, python-format msgid "Because the %(black)s engine died" msgstr "" #: lib/pychess/Utils/repr.py:67 msgid "Because the connection to the server was lost" msgstr "" #: lib/pychess/Utils/repr.py:68 msgid "The reason is unknown" msgstr "" #: lib/pychess/Utils/TimeModel.py:229 msgid "min" msgstr "" #: lib/pychess/Utils/TimeModel.py:231 msgid "sec" msgstr "" #: lib/pychess/Variants/asean.py:12 msgid "" "ASEAN: http://www.ncf-" "phil.org/downloadables/2014/May/Asean_chess/Laws_of_ASEAN_Chess_2011_Nov_26.doc" msgstr "" #: lib/pychess/Variants/asean.py:13 msgid "ASEAN" msgstr "" #: lib/pychess/Variants/asean.py:33 msgid "Makruk: http://en.wikipedia.org/wiki/Makruk" msgstr "" #: lib/pychess/Variants/asean.py:34 msgid "Makruk" msgstr "" #: lib/pychess/Variants/asean.py:60 msgid "Cambodian: http://www.khmerinstitute.org/culture/ok.html" msgstr "" #: lib/pychess/Variants/asean.py:61 msgid "Cambodian" msgstr "" #: lib/pychess/Variants/asean.py:86 msgid "" "Ai-Wok: http://www.open-" "aurec.com/wbforum/viewtopic.php?p=199364&sid=20963a1de2c164050de019e5ed6bf7c4#p199364" msgstr "" #: lib/pychess/Variants/asean.py:87 msgid "Ai-Wok" msgstr "" #: lib/pychess/Variants/asean.py:111 msgid "Sittuyin: http://en.wikipedia.org/wiki/Sittuyin" msgstr "" #: lib/pychess/Variants/asean.py:112 msgid "Sittuyin" msgstr "" #: lib/pychess/Variants/asymmetricrandom.py:12 msgid "" "FICS wild/4: http://www.freechess.org/Help/HelpFiles/wild.html\n" "* Randomly chosen pieces (two queens or three rooks possible)\n" "* Exactly one king of each color\n" "* Pieces placed randomly behind the pawns, SUBJECT TO THE CONSTRAINT THAT THE BISHOPS ARE BALANCED\n" "* No castling\n" "* Black's arrangement DOES NOT mirrors white's" msgstr "" #: lib/pychess/Variants/asymmetricrandom.py:18 msgid "Asymmetric Random" msgstr "" #: lib/pychess/Variants/atomic.py:14 msgid "FICS atomic: http://www.freechess.org/Help/HelpFiles/atomic.html" msgstr "" #: lib/pychess/Variants/blindfold.py:7 msgid "" "Classic chess rules with hidden figurines\n" "http://en.wikipedia.org/wiki/Blindfold_chess" msgstr "" #: lib/pychess/Variants/blindfold.py:9 #: lib/pychess/widgets/newGameDialog.py:264 msgid "Blindfold" msgstr "" #: lib/pychess/Variants/blindfold.py:18 msgid "" "Classic chess rules with hidden pawns\n" "http://en.wikipedia.org/wiki/Blindfold_chess" msgstr "" #: lib/pychess/Variants/blindfold.py:20 msgid "Hidden pawns" msgstr "" #: lib/pychess/Variants/blindfold.py:29 msgid "" "Classic chess rules with hidden pieces\n" "http://en.wikipedia.org/wiki/Blindfold_chess" msgstr "" #: lib/pychess/Variants/blindfold.py:31 msgid "Hidden pieces" msgstr "" #: lib/pychess/Variants/blindfold.py:40 msgid "" "Classic chess rules with all pieces white\n" "http://en.wikipedia.org/wiki/Blindfold_chess" msgstr "" #: lib/pychess/Variants/blindfold.py:42 msgid "All white" msgstr "" #: lib/pychess/Variants/bughouse.py:8 msgid "FICS bughouse: http://www.freechess.org/Help/HelpFiles/bughouse.html" msgstr "" #: lib/pychess/Variants/corner.py:12 msgid "" "http://brainking.com/en/GameRules?tp=2\n" "* Placement of the pieces on the 1st and 8th row are randomized\n" "* The king is in the right hand corner\n" "* Bishops must start on opposite color squares\n" "* Black's starting position is obtained by rotating white's position 180 degrees around the board's center\n" "* No castling" msgstr "" #: lib/pychess/Variants/corner.py:18 msgid "Corner" msgstr "" #: lib/pychess/Variants/crazyhouse.py:8 msgid "" "FICS crazyhouse: http://www.freechess.org/Help/HelpFiles/crazyhouse.html" msgstr "" #: lib/pychess/Variants/euroshogi.py:9 msgid "EuroShogi: http://en.wikipedia.org/wiki/EuroShogi" msgstr "" #: lib/pychess/Variants/euroshogi.py:10 msgid "EuroShogi" msgstr "" #: lib/pychess/Variants/fischerandom.py:18 msgid "" "http://en.wikipedia.org/wiki/Chess960\n" "FICS wild/fr: http://www.freechess.org/Help/HelpFiles/wild.html" msgstr "" #: lib/pychess/Variants/fischerandom.py:20 msgid "Fischer Random" msgstr "" #: lib/pychess/Variants/kingofthehill.py:8 msgid "" "Bringing your king legally to the center (e4, d4, e5, d5) instantly wins the game!\n" "Normal rules apply in other cases and checkmate also ends the game." msgstr "" #: lib/pychess/Variants/kingofthehill.py:10 msgid "King of the hill" msgstr "" #: lib/pychess/Variants/knightodds.py:8 msgid "One player starts with one less knight piece" msgstr "" #: lib/pychess/Variants/knightodds.py:9 msgid "Knight odds" msgstr "" #: lib/pychess/Variants/losers.py:8 msgid "FICS losers: http://www.freechess.org/Help/HelpFiles/losers_chess.html" msgstr "" #: lib/pychess/Variants/normal.py:4 msgid "" "Classic chess rules\n" "http://en.wikipedia.org/wiki/Chess" msgstr "" #: lib/pychess/Variants/normal.py:6 lib/pychess/widgets/newGameDialog.py:157 msgid "Normal" msgstr "" #: lib/pychess/Variants/pawnodds.py:8 msgid "One player starts with one less pawn piece" msgstr "" #: lib/pychess/Variants/pawnodds.py:9 msgid "Pawn odds" msgstr "" #: lib/pychess/Variants/pawnspassed.py:11 msgid "" "FICS wild/8a: http://www.freechess.org/Help/HelpFiles/wild.html\n" "White pawns start on 5th rank and black pawns on the 4th rank" msgstr "" #: lib/pychess/Variants/pawnspassed.py:13 msgid "Pawns Passed" msgstr "" #: lib/pychess/Variants/pawnspushed.py:10 msgid "" "FICS wild/8: http://www.freechess.org/Help/HelpFiles/wild.html\n" "Pawns start on 4th and 5th ranks rather than 2nd and 7th" msgstr "" #: lib/pychess/Variants/pawnspushed.py:12 msgid "Pawns Pushed" msgstr "" #: lib/pychess/Variants/queenodds.py:8 msgid "One player starts with one less queen piece" msgstr "" #: lib/pychess/Variants/queenodds.py:9 msgid "Queen odds" msgstr "" #: lib/pychess/Variants/randomchess.py:11 msgid "" "FICS wild/3: http://www.freechess.org/Help/HelpFiles/wild.html\n" "* Randomly chosen pieces (two queens or three rooks possible)\n" "* Exactly one king of each color\n" "* Pieces placed randomly behind the pawns\n" "* No castling\n" "* Black's arrangement mirrors white's" msgstr "" #: lib/pychess/Variants/randomchess.py:17 #: lib/pychess/widgets/TaskerManager.py:155 msgid "Random" msgstr "" #: lib/pychess/Variants/rookodds.py:8 msgid "One player starts with one less rook piece" msgstr "" #: lib/pychess/Variants/rookodds.py:9 msgid "Rook odds" msgstr "" #: lib/pychess/Variants/shuffle.py:11 msgid "" "xboard nocastle: http://home.hccnet.nl/h.g.muller/engine-intf.html#8\n" "FICS wild/2: http://www.freechess.org/Help/HelpFiles/wild.html\n" "* Random arrangement of the pieces behind the pawns\n" "* No castling\n" "* Black's arrangement mirrors white's" msgstr "" #: lib/pychess/Variants/suicide.py:11 msgid "" "FICS suicide: http://www.freechess.org/Help/HelpFiles/suicide_chess.html" msgstr "" #: lib/pychess/Variants/theban.py:10 msgid "" "Variant developed by Kai Laskos: " "http://talkchess.com/forum/viewtopic.php?t=40990" msgstr "" #: lib/pychess/Variants/theban.py:11 msgid "Theban" msgstr "" #: lib/pychess/Variants/threecheck.py:10 msgid "Win by giving check 3 times" msgstr "" #: lib/pychess/Variants/threecheck.py:11 msgid "Three-check" msgstr "" #: lib/pychess/Variants/upsidedown.py:10 msgid "" "FICS wild/5: http://www.freechess.org/Help/HelpFiles/wild.html\n" "http://en.wikipedia.org/wiki/Chess_variant#Chess_with_different_starting_positions\n" "Pawns start on their 7th rank rather than their 2nd rank!" msgstr "" #: lib/pychess/Variants/upsidedown.py:13 msgid "Upside Down" msgstr "" #: lib/pychess/Variants/wildcastle.py:10 msgid "" "xboard wildcastle http://home.hccnet.nl/h.g.muller/engine-intf.html#8\n" "FICS wild/0: http://www.freechess.org/Help/HelpFiles/wild.html\n" "* White has the typical set-up at the start.\n" "* Black's pieces are the same, except that the King and Queen are reversed,\n" "* so they are not on the same files as White's King and Queen.\n" "* Castling is done similarly to normal chess:\n" "* o-o-o indicates long castling and o-o short castling." msgstr "" #: lib/pychess/Variants/wildcastle.py:17 msgid "Wildcastle" msgstr "" #: lib/pychess/Variants/wildcastleshuffle.py:11 msgid "" "xboard wildcastle http://home.hccnet.nl/h.g.muller/engine-intf.html#8\n" "FICS wild/1: http://www.freechess.org/Help/HelpFiles/wild.html\n" "* In this variant both sides have the same set of pieces as in normal chess.\n" "* The white king starts on d1 or e1 and the black king starts on d8 or e8,\n" "* and the rooks are in their usual positions.\n" "* Bishops are always on opposite colors.\n" "* Subject to these constraints the position of the pieces on their first ranks is random.\n" "* Castling is done similarly to normal chess:\n" "* o-o-o indicates long castling and o-o short castling." msgstr "" #: lib/pychess/Variants/wildcastleshuffle.py:20 msgid "Wildcastle shuffle" msgstr "" #: lib/pychess/widgets/analyzegameDialog.py:85 msgid "Game analyzing in progress..." msgstr "" #: lib/pychess/widgets/analyzegameDialog.py:86 msgid "Do you want to abort it?" msgstr "" #: lib/pychess/widgets/analyzegameDialog.py:95 #: lib/pychess/widgets/gamewidget.py:202 lib/pychess/widgets/gamewidget.py:320 msgid "Abort" msgstr "" #: lib/pychess/widgets/ChatView.py:125 msgid "Observers" msgstr "" #: lib/pychess/widgets/ChatWindow.py:222 msgid "You have opened no conversations yet" msgstr "" #: lib/pychess/widgets/ChatWindow.py:254 msgid "Only registered users may talk to this channel" msgstr "" #: lib/pychess/widgets/ChatWindow.py:312 msgid "No conversation's selected" msgstr "" #: lib/pychess/widgets/ChatWindow.py:350 msgid "Loading player data" msgstr "" #: lib/pychess/widgets/ChatWindow.py:400 msgid "Receiving list of players" msgstr "" #: lib/pychess/widgets/ChatWindow.py:518 msgid "Friends" msgstr "" #: lib/pychess/widgets/ChatWindow.py:529 msgid "Admin" msgstr "" #: lib/pychess/widgets/ChatWindow.py:540 msgid "More channels" msgstr "" #: lib/pychess/widgets/ChatWindow.py:548 msgid "More players" msgstr "" #: lib/pychess/widgets/ChatWindow.py:558 msgid "Computers" msgstr "" #: lib/pychess/widgets/ChatWindow.py:568 msgid "BlindFold" msgstr "" #: lib/pychess/widgets/ChatWindow.py:578 msgid "Guests" msgstr "" #: lib/pychess/widgets/ChatWindow.py:805 msgid "Conversations" msgstr "" #: lib/pychess/widgets/ChatWindow.py:807 msgid "Conversation info" msgstr "" #: lib/pychess/widgets/enginesDialog.py:152 msgid "Select engine" msgstr "" #: lib/pychess/widgets/enginesDialog.py:156 msgid "Executable files" msgstr "" #: lib/pychess/widgets/enginesDialog.py:176 #: lib/pychess/widgets/enginesDialog.py:210 #: lib/pychess/widgets/enginesDialog.py:235 #, python-format msgid "Unable to add %s" msgstr "" #: lib/pychess/widgets/enginesDialog.py:177 msgid "wine not installed" msgstr "" #: lib/pychess/widgets/enginesDialog.py:211 #: lib/pychess/widgets/enginesDialog.py:236 msgid "There is something wrong with this executable" msgstr "" #: lib/pychess/widgets/enginesDialog.py:266 msgid "Select working directory" msgstr "" #: lib/pychess/widgets/gamenanny.py:115 #, python-format msgid " invalid engine move: %s" msgstr "" #: lib/pychess/widgets/gamenanny.py:134 msgid "Offer Rematch" msgstr "" #: lib/pychess/widgets/gamenanny.py:136 lib/pychess/widgets/gamenanny.py:147 #, python-format msgid "Observe %s" msgstr "" #: lib/pychess/widgets/gamenanny.py:168 msgid "Play Rematch" msgstr "" #: lib/pychess/widgets/gamenanny.py:171 msgid "Undo one move" msgstr "" #: lib/pychess/widgets/gamenanny.py:173 msgid "Undo two moves" msgstr "" #: lib/pychess/widgets/gamenanny.py:203 msgid "The game is paused" msgstr "" #: lib/pychess/widgets/gamenanny.py:221 lib/pychess/widgets/gamenanny.py:222 msgid "Loaded game" msgstr "" #: lib/pychess/widgets/gamenanny.py:228 msgid "Saved game" msgstr "" #: lib/pychess/widgets/gamenanny.py:232 msgid "Analyzer started" msgstr "" #: lib/pychess/widgets/gamenanny.py:281 msgid "You sent an abort offer" msgstr "" #: lib/pychess/widgets/gamenanny.py:283 msgid "You sent an adjournment offer" msgstr "" #: lib/pychess/widgets/gamenanny.py:285 msgid "You sent a draw offer" msgstr "" #: lib/pychess/widgets/gamenanny.py:287 msgid "You sent a pause offer" msgstr "" #: lib/pychess/widgets/gamenanny.py:289 msgid "You sent a resume offer" msgstr "" #: lib/pychess/widgets/gamenanny.py:291 msgid "You sent an undo offer" msgstr "" #: lib/pychess/widgets/gamenanny.py:293 msgid "You asked your opponent to move" msgstr "" #: lib/pychess/widgets/gamenanny.py:305 #, python-format msgid "Engine, %s, has died" msgstr "" #: lib/pychess/widgets/gamenanny.py:306 msgid "" "PyChess has lost connection to the engine, probably because it has died.\n" "\n" "You can try to start a new game with the engine, or try to play against another one." msgstr "" #: lib/pychess/widgets/gamewidget.py:204 msgid "" "This game can be automatically aborted without rating loss because there has" " not yet been two moves made" msgstr "" #: lib/pychess/widgets/gamewidget.py:206 msgid "Offer Abort" msgstr "" #: lib/pychess/widgets/gamewidget.py:208 msgid "" "Your opponent must agree to abort the game because there has been two or " "more moves made" msgstr "" #: lib/pychess/widgets/gamewidget.py:226 msgid "This game can not be adjourned because one or both players are guests" msgstr "" #: lib/pychess/widgets/gamewidget.py:243 msgid "Claim Draw" msgstr "" #: lib/pychess/widgets/gamewidget.py:325 msgid "Pause" msgstr "" #: lib/pychess/widgets/gamewidget.py:326 msgid "Resume" msgstr "" #: lib/pychess/widgets/gamewidget.py:328 msgid "Offer Pause" msgstr "" #: lib/pychess/widgets/gamewidget.py:329 msgid "Offer Resume" msgstr "" #: lib/pychess/widgets/gamewidget.py:333 msgid "Undo" msgstr "" #: lib/pychess/widgets/gamewidget.py:335 msgid "Offer Undo" msgstr "" #: lib/pychess/widgets/gamewidget.py:550 msgid " has lagged for 30 seconds" msgstr "" #: lib/pychess/widgets/gamewidget.py:566 msgid " is lagging heavily but hasn't disconnected" msgstr "" #: lib/pychess/widgets/gamewidget.py:567 msgid "Continue to wait for opponent, or try to adjourn the game?" msgstr "" #: lib/pychess/widgets/gamewidget.py:575 msgid "Wait" msgstr "" #: lib/pychess/widgets/gamewidget.py:576 msgid "Adjourn" msgstr "" #: lib/pychess/widgets/gamewidget.py:648 msgid "Jump to initial position" msgstr "" #: lib/pychess/widgets/gamewidget.py:653 msgid "Step back one move" msgstr "" #: lib/pychess/widgets/gamewidget.py:658 msgid "Go back to the main line" msgstr "" #: lib/pychess/widgets/gamewidget.py:664 msgid "Step forward one move" msgstr "" #: lib/pychess/widgets/gamewidget.py:669 msgid "Jump to latest position" msgstr "" #: lib/pychess/widgets/gamewidget.py:903 msgid "PyChess was unable to load your panel settings" msgstr "" #: lib/pychess/widgets/gamewidget.py:904 msgid "" "Your panel settings have been reset. If this problem repeats, you should " "report it to the developers" msgstr "" #: lib/pychess/widgets/ionest.py:67 lib/pychess/widgets/newGameDialog.py:389 #: lib/pychess/widgets/TaskerManager.py:210 msgid "You" msgstr "" #: lib/pychess/widgets/ionest.py:70 lib/pychess/widgets/newGameDialog.py:390 #: lib/pychess/widgets/preferencesDialog.py:61 #: lib/pychess/widgets/TaskerManager.py:213 msgid "Guest" msgstr "" #: lib/pychess/widgets/ionest.py:93 msgid "Error loading game" msgstr "" #: lib/pychess/widgets/ionest.py:127 lib/pychess/widgets/newGameDialog.py:480 msgid "Open Game" msgstr "" #: lib/pychess/widgets/ionest.py:137 msgid "All Files" msgstr "" #: lib/pychess/widgets/ionest.py:140 msgid "Detect type automatically" msgstr "" #: lib/pychess/widgets/ionest.py:146 msgid "All Chess Files" msgstr "" #: lib/pychess/widgets/ionest.py:228 msgid "Save Game" msgstr "" #: lib/pychess/widgets/ionest.py:228 msgid "Export position" msgstr "" #: lib/pychess/widgets/ionest.py:232 lib/pychess/widgets/ionest.py:360 msgid "vs." msgstr "" #: lib/pychess/widgets/ionest.py:249 #, python-format msgid "Unknown file type '%s'" msgstr "" #: lib/pychess/widgets/ionest.py:250 #, python-format msgid "" "Was unable to save '%(uri)s' as PyChess doesn't know the format " "'%(ending)s'." msgstr "" #: lib/pychess/widgets/ionest.py:266 #, python-format msgid "Unable to save file '%s'" msgstr "" #: lib/pychess/widgets/ionest.py:268 msgid "" "You don't have the necessary rights to save the file.\n" "Please ensure that you have given the right path and try again." msgstr "" #: lib/pychess/widgets/ionest.py:276 msgid "_Replace" msgstr "" #: lib/pychess/widgets/ionest.py:280 msgid "File exists" msgstr "" #: lib/pychess/widgets/ionest.py:282 #, python-format msgid "" "A file named '%s' already exists. Would you like to replace " "it?" msgstr "" #: lib/pychess/widgets/ionest.py:283 #, python-format msgid "" "The file already exists in '%s'. If you replace it, its content will be " "overwritten." msgstr "" #: lib/pychess/widgets/ionest.py:299 msgid "Could not save the file" msgstr "" #: lib/pychess/widgets/ionest.py:300 msgid "PyChess was not able to save the game" msgstr "" #: lib/pychess/widgets/ionest.py:301 #, python-format msgid "The error was: %s" msgstr "" #: lib/pychess/widgets/ionest.py:325 #, python-format msgid "There is %d game with unsaved moves." msgid_plural "There are %d games with unsaved moves." msgstr[0] "" msgstr[1] "" #: lib/pychess/widgets/ionest.py:328 msgid "Save moves before closing?" msgstr "" #: lib/pychess/widgets/ionest.py:339 msgid "Unable to save to configured file. Save the games before closing?" msgstr "" #: lib/pychess/widgets/ionest.py:366 #, python-format msgid "_Save %d document" msgid_plural "_Save %d documents" msgstr[0] "" msgstr[1] "" #: lib/pychess/widgets/ionest.py:412 msgid "Save the current game before you close it?" msgstr "" #: lib/pychess/widgets/ionest.py:420 msgid "" "Unable to save to configured file. Save the current game before you close " "it?" msgstr "" #: lib/pychess/widgets/ionest.py:434 msgid "" "It is not possible later to continue the game,\n" "if you don't save it." msgstr "" #: lib/pychess/widgets/LogDialog.py:26 msgid "PyChess Information Window" msgstr "" #: lib/pychess/widgets/LogDialog.py:184 lib/pychess/widgets/LogDialog.py:188 msgid "of" msgstr "" #: lib/pychess/widgets/newGameDialog.py:84 #: lib/pychess/widgets/newGameDialog.py:85 msgid "Human Being" msgstr "" #: lib/pychess/widgets/newGameDialog.py:155 msgid "Rapid" msgstr "" #: lib/pychess/widgets/newGameDialog.py:224 msgid "Minutes:" msgstr "" #: lib/pychess/widgets/newGameDialog.py:228 msgid "Gain:" msgstr "" #: lib/pychess/widgets/newGameDialog.py:241 #, python-format msgid "%(name)s %(minutes)d min + %(gain)d sec/move" msgstr "" #: lib/pychess/widgets/newGameDialog.py:244 #, python-format msgid "%(name)s %(minutes)d min %(gain)d sec/move" msgstr "" #: lib/pychess/widgets/newGameDialog.py:247 #, python-format msgid "%(name)s %(minutes)d min" msgstr "" #: lib/pychess/widgets/newGameDialog.py:265 msgid "Odds" msgstr "" #: lib/pychess/widgets/newGameDialog.py:269 msgid "Asian variants" msgstr "" #: lib/pychess/widgets/newGameDialog.py:301 msgid " chess" msgstr "" #: lib/pychess/widgets/newGameDialog.py:682 msgid "Type or paste PGN game or FEN positions here" msgstr "" #: lib/pychess/widgets/newGameDialog.py:725 msgid "Enter Game" msgstr "" #: lib/pychess/widgets/preferencesDialog.py:123 msgid "Select book file" msgstr "" #: lib/pychess/widgets/preferencesDialog.py:128 msgid "Opening books" msgstr "" #: lib/pychess/widgets/preferencesDialog.py:156 msgid "Select Gaviota TB path" msgstr "" #: lib/pychess/widgets/preferencesDialog.py:331 msgid "Open Sound File" msgstr "" #: lib/pychess/widgets/preferencesDialog.py:341 msgid "Sound files" msgstr "" #: lib/pychess/widgets/preferencesDialog.py:485 msgid "Undescribed panel" msgstr "" #: lib/pychess/widgets/preferencesDialog.py:678 msgid "Select auto save path" msgstr "" #: lib/pychess/widgets/tipOfTheDay.py:51 msgid "" "You can start a new game by Game > New Game, in New Game " "window do you can choose Players, Time Control and Chess " "Variants." msgstr "" #: lib/pychess/widgets/tipOfTheDay.py:52 msgid "" "You can choose from 20 different difficulties to play against the computer." msgstr "" #: lib/pychess/widgets/tipOfTheDay.py:53 msgid "" "Chess Variants are like the pieces of the last line will be placed on the " "board." msgstr "" #: lib/pychess/widgets/tipOfTheDay.py:54 msgid "" "To save a game Game > Save Game As, give the filename and " "choose where you want to be saved. At the bottom choose extension type of " "the file, and Save." msgstr "" #: lib/pychess/widgets/tipOfTheDay.py:55 msgid "" "Do you know that you can call flag when the clock is with you, " "Actions > Call Flag." msgstr "" #: lib/pychess/widgets/tipOfTheDay.py:56 msgid "Pressing Ctrl+Z to offer opponent the possible rollback moves." msgstr "" #: lib/pychess/widgets/tipOfTheDay.py:57 msgid "" "To play on Fullscreen mode, just type F11. Coming back, F11 " "again." msgstr "" #: lib/pychess/widgets/tipOfTheDay.py:58 msgid "Hint mode analyzing your game, enable this type Ctrl+H." msgstr "" #: lib/pychess/widgets/tipOfTheDay.py:59 msgid "" "Spy mode analyzing the oponnent game, enable this type Ctrl+Y." msgstr "" #: lib/pychess/widgets/tipOfTheDay.py:60 msgid "" "You can play chess listening to the sounds of the game, for that, " "Settings > Preferences > Sound tab, enable Use " "sounds in PyChess and choose your preferred sounds." msgstr "" #: lib/pychess/widgets/tipOfTheDay.py:61 msgid "" "Do you know that you can help translate Pychess in your language, " "Help > Translate Pychess." msgstr "" #: lib/pychess/widgets/tipOfTheDay.py:62 msgid "" "Do you know that it is possible to finish a chess game in just 2 turns?" msgstr "" #: lib/pychess/widgets/tipOfTheDay.py:63 msgid "" "Do you know that the number of possible chess games exceeds the number of " "atoms in the Universe?" msgstr "" #: lib/pychess/ic/managers/ChatManager.py:184 msgid "Shout" msgstr "" #: lib/pychess/ic/managers/ChatManager.py:185 msgid "Chess Shout" msgstr "" #: lib/pychess/ic/managers/ChatManager.py:195 #, python-format msgid "Unofficial channel %d" msgstr "" #: lib/pychess/Utils/lutils/LBoard.py:152 #, python-format msgid "" "FEN needs 6 data fields. \n" "\n" "%s" msgstr "" #: lib/pychess/Utils/lutils/LBoard.py:154 #, python-format msgid "" "FEN needs at least 2 data fields in fenstr. \n" "\n" "%s" msgstr "" #: lib/pychess/Utils/lutils/LBoard.py:175 #, python-format msgid "" "Needs 7 slashes in piece placement field. \n" "\n" "%s" msgstr "" #: lib/pychess/Utils/lutils/LBoard.py:178 #, python-format msgid "" "Active color field must be one of w or b. \n" "\n" "%s" msgstr "" #: lib/pychess/Utils/lutils/LBoard.py:189 #, python-format msgid "" "Castling availability field is not legal. \n" "\n" "%s" msgstr "" #: lib/pychess/Utils/lutils/LBoard.py:192 #, python-format msgid "" "En passant cord is not legal. \n" "\n" "%s" msgstr "" #: lib/pychess/Utils/lutils/lmove.py:260 msgid "invalid promoted piece" msgstr "" #: lib/pychess/Utils/lutils/lmove.py:272 msgid "the move needs a piece and a cord" msgstr "" #: lib/pychess/Utils/lutils/lmove.py:306 lib/pychess/Utils/lutils/lmove.py:556 msgid "promotion move without promoted piece is incorrect" msgstr "" #: lib/pychess/Utils/lutils/lmove.py:312 #, python-format msgid "the captured cord (%s) is incorrect" msgstr "" #: lib/pychess/Utils/lutils/lmove.py:323 #, python-format msgid "the end cord (%s) is incorrect" msgstr "" #: lib/pychess/Utils/lutils/strateval.py:24 sidepanel/commentPanel.py:191 #: sidepanel/commentPanel.py:208 msgid "and" msgstr "" #: lib/pychess/Utils/lutils/strateval.py:43 msgid "draws" msgstr "" #: lib/pychess/Utils/lutils/strateval.py:45 msgid "mates" msgstr "" #: lib/pychess/Utils/lutils/strateval.py:49 msgid "puts opponent in check" msgstr "" #: lib/pychess/Utils/lutils/strateval.py:73 msgid "improves king safety" msgstr "" #: lib/pychess/Utils/lutils/strateval.py:75 msgid "slightly improves king safety" msgstr "" #: lib/pychess/Utils/lutils/strateval.py:108 msgid "moves a rook to an open file" msgstr "" #: lib/pychess/Utils/lutils/strateval.py:109 msgid "moves an rook to a half-open file" msgstr "" #: lib/pychess/Utils/lutils/strateval.py:119 #: lib/pychess/Utils/lutils/strateval.py:121 #: lib/pychess/Utils/lutils/strateval.py:124 #: lib/pychess/Utils/lutils/strateval.py:126 #, python-format msgid "moves bishop into fianchetto: %s" msgstr "" #: lib/pychess/Utils/lutils/strateval.py:132 #, python-format msgid "promotes a Pawn to a %s" msgstr "" #: lib/pychess/Utils/lutils/strateval.py:135 msgid "castles" msgstr "" #: lib/pychess/Utils/lutils/strateval.py:158 msgid "takes back material" msgstr "" #: lib/pychess/Utils/lutils/strateval.py:162 #: lib/pychess/Utils/lutils/strateval.py:170 msgid "sacrifies material" msgstr "" #: lib/pychess/Utils/lutils/strateval.py:164 msgid "exchanges material" msgstr "" #: lib/pychess/Utils/lutils/strateval.py:166 msgid "captures material" msgstr "" #: lib/pychess/Utils/lutils/strateval.py:291 #, python-format msgid "rescues a %s" msgstr "" #: lib/pychess/Utils/lutils/strateval.py:294 #, python-format msgid "threatens to win material by %s" msgstr "" #: lib/pychess/Utils/lutils/strateval.py:296 #, python-format msgid "increases the pressure on %s" msgstr "" #: lib/pychess/Utils/lutils/strateval.py:298 #, python-format msgid "defends %s" msgstr "" #: lib/pychess/Utils/lutils/strateval.py:336 #, python-format msgid "pins an enemy %(oppiece)s on the %(piece)s at %(cord)s" msgstr "" #: lib/pychess/Utils/lutils/strateval.py:369 #, python-format msgid "White has a new piece in outpost: %s" msgstr "" #: lib/pychess/Utils/lutils/strateval.py:377 #, python-format msgid "Black has a new piece in outpost: %s" msgstr "" #: lib/pychess/Utils/lutils/strateval.py:416 #, python-format msgid "%(color)s has a new passed pawn on %(cord)s" msgstr "" #: lib/pychess/Utils/lutils/strateval.py:470 msgid "half-open" msgstr "" #: lib/pychess/Utils/lutils/strateval.py:472 #, python-format msgid "in the %(x)s%(y)s file" msgstr "" #: lib/pychess/Utils/lutils/strateval.py:474 #, python-format msgid "in the %(x)s%(y)s files" msgstr "" #: lib/pychess/Utils/lutils/strateval.py:477 #, python-format msgid "%(color)s got a double pawn %(place)s" msgstr "" #: lib/pychess/Utils/lutils/strateval.py:478 #, python-format msgid "%(color)s got new double pawns %(place)s" msgstr "" #: lib/pychess/Utils/lutils/strateval.py:485 #, python-format msgid "%(color)s got an isolated pawn in the %(x)s file" msgid_plural "%(color)s got isolated pawns in the %(x)s files" msgstr[0] "" msgstr[1] "" #: lib/pychess/Utils/lutils/strateval.py:492 #, python-format msgid "%s moves pawns into stonewall formation" msgstr "" #: lib/pychess/Utils/lutils/strateval.py:507 #: lib/pychess/Utils/lutils/strateval.py:514 #, python-format msgid "%s can no longer castle" msgstr "" #: lib/pychess/Utils/lutils/strateval.py:508 #: lib/pychess/Utils/lutils/strateval.py:515 #, python-format msgid "%s can no longer castle in queenside" msgstr "" #: lib/pychess/Utils/lutils/strateval.py:510 #: lib/pychess/Utils/lutils/strateval.py:517 #, python-format msgid "%s can no longer castle in kingside" msgstr "" #: lib/pychess/Utils/lutils/strateval.py:551 #, python-format msgid "%(opcolor)s has a new trapped bishop on %(cord)s" msgstr "" #: lib/pychess/Utils/lutils/strateval.py:573 #, python-format msgid "develops a pawn: %s" msgstr "" #: lib/pychess/Utils/lutils/strateval.py:574 #, python-format msgid "brings a pawn closer to the backrow: %s" msgstr "" #: lib/pychess/Utils/lutils/strateval.py:591 #, python-format msgid "brings a %(piece)s closer to enemy king: %(cord)s" msgstr "" #: lib/pychess/Utils/lutils/strateval.py:594 #, python-format msgid "develops a %(piece)s: %(cord)s" msgstr "" #: lib/pychess/Utils/lutils/strateval.py:612 #, python-format msgid "places a %(piece)s more active: %(cord)s" msgstr "" #: lib/pychess/Utils/lutils/strateval.py:638 msgid "White should do pawn storm in right" msgstr "" #: lib/pychess/Utils/lutils/strateval.py:640 msgid "Black should do pawn storm in left" msgstr "" #: lib/pychess/Utils/lutils/strateval.py:643 msgid "White should do pawn storm in left" msgstr "" #: lib/pychess/Utils/lutils/strateval.py:645 msgid "Black should do pawn storm in right" msgstr "" #: lib/pychess/Utils/lutils/strateval.py:671 msgid "Black has a rather cramped position" msgstr "" #: lib/pychess/Utils/lutils/strateval.py:673 msgid "Black has a slightly cramped position" msgstr "" #: lib/pychess/Utils/lutils/strateval.py:675 msgid "White has a rather cramped position" msgstr "" #: lib/pychess/Utils/lutils/strateval.py:677 msgid "White has a slightly cramped position" msgstr "" #: sidepanel/annotationPanel.py:26 msgid "Annotation" msgstr "" #: sidepanel/annotationPanel.py:29 msgid "Annotated game" msgstr "" #: sidepanel/annotationPanel.py:236 msgid "Copy PGN" msgstr "" #: sidepanel/annotationPanel.py:249 msgid "Add start comment" msgstr "" #: sidepanel/annotationPanel.py:254 msgid "Add comment" msgstr "" #: sidepanel/annotationPanel.py:258 sidepanel/annotationPanel.py:316 msgid "Edit comment" msgstr "" #: sidepanel/annotationPanel.py:269 msgid "Forced move" msgstr "" #: sidepanel/annotationPanel.py:274 msgid "Add move symbol" msgstr "" #: sidepanel/annotationPanel.py:280 msgid "Unclear position" msgstr "" #: sidepanel/annotationPanel.py:289 msgid "Zugzwang" msgstr "" #: sidepanel/annotationPanel.py:290 msgid "Development adv." msgstr "" #: sidepanel/annotationPanel.py:291 msgid "Initiative" msgstr "" #: sidepanel/annotationPanel.py:292 msgid "With attack" msgstr "" #: sidepanel/annotationPanel.py:293 msgid "Compensation" msgstr "" #: sidepanel/annotationPanel.py:294 msgid "Counterplay" msgstr "" #: sidepanel/annotationPanel.py:295 msgid "Time pressure" msgstr "" #: sidepanel/annotationPanel.py:300 msgid "Add evaluation symbol" msgstr "" #: sidepanel/annotationPanel.py:304 msgid "Remove symbols" msgstr "" #: sidepanel/annotationPanel.py:911 #, python-format msgid "round %s" msgstr "" #: sidepanel/bookPanel.py:21 msgid "Hints" msgstr "" #: sidepanel/bookPanel.py:25 msgid "" "The hint panel will provide computer advice during each stage of the game" msgstr "" #: sidepanel/bookPanel.py:27 msgid "Official PyChess panel." msgstr "" #: sidepanel/bookPanel.py:87 msgid "Opening Book" msgstr "" #: sidepanel/bookPanel.py:88 msgid "" "The opening book will try to inspire you during the opening phase of the " "game by showing you common moves made by chess masters" msgstr "" #: sidepanel/bookPanel.py:139 #, python-format msgid "Analysis by %s" msgstr "" #: sidepanel/bookPanel.py:140 #, python-format msgid "" "%s will try to predict which move is best and which side has the advantage" msgstr "" #: sidepanel/bookPanel.py:142 #, python-format msgid "Threat analysis by %s" msgstr "" #: sidepanel/bookPanel.py:143 #, python-format msgid "" "%s will identify what threats would exist if it were your opponent's turn to" " move" msgstr "" #: sidepanel/bookPanel.py:159 sidepanel/bookPanel.py:269 msgid "Calculating..." msgstr "" #: sidepanel/bookPanel.py:300 msgid "" "Engine scores are in units of pawns, from White's point of view. Double " "clicking on analysis lines you can insert them into Annotation panel as " "variations." msgstr "" #: sidepanel/bookPanel.py:302 msgid "" "Adding suggestions can help you find ideas, but slows down the computer's " "analysis." msgstr "" #: sidepanel/bookPanel.py:311 msgid "Endgame Table" msgstr "" #: sidepanel/bookPanel.py:315 msgid "" "The endgame table will show exact analysis when there are few pieces on the " "board." msgstr "" #: sidepanel/bookPanel.py:364 sidepanel/bookPanel.py:367 #, python-format msgid "Mate in %d" msgstr "" #: sidepanel/bookPanel.py:554 msgid "" "In this position,\n" "there is no legal move." msgstr "" #: sidepanel/chatPanel.py:21 msgid "" "The chat panel lets you communicate with your opponent during the game, " "assuming he or she is interested" msgstr "" #: sidepanel/commentPanel.py:16 msgid "Comments" msgstr "" #: sidepanel/commentPanel.py:20 msgid "The comments panel will try to analyze and explain the moves played" msgstr "" #: sidepanel/commentPanel.py:121 msgid "Initial position" msgstr "" #: sidepanel/commentPanel.py:254 #, python-format msgid "%(color)s moves a %(piece)s to %(cord)s" msgstr "" #: sidepanel/engineOutputPanel.py:15 msgid "Engines" msgstr "" #: sidepanel/engineOutputPanel.py:20 msgid "" "The engine output panel shows the thinking output of chess engines (computer" " players) during a game" msgstr "" #: sidepanel/engineOutputPanel.py:44 msgid "No chess engines (computer players) are participating in this game." msgstr "" #: sidepanel/historyPanel.py:10 msgid "Move History" msgstr "" #: sidepanel/historyPanel.py:13 msgid "" "The moves sheet keeps track of the players' moves and lets you navigate " "through the game history" msgstr "" #: sidepanel/scorePanel.py:15 msgid "Score" msgstr "" #: sidepanel/scorePanel.py:19 msgid "" "The score panel tries to evaluate the positions and shows you a graph of the" " game progress" msgstr "" pychess-0.12.2/lang/zu/LC_MESSAGES/pychess.mo0000644000175000017470000000123612653231273020735 0ustar tamasusers00000000000000L | a q{RatingTime_Accept_Name:_Password:Project-Id-Version: pychess Report-Msgid-Bugs-To: POT-Creation-Date: 2016-01-27 13:28+0100 PO-Revision-Date: 2016-01-28 08:56+0000 Last-Translator: slav0nic Language-Team: Zulu (http://www.transifex.com/gbtami/pychess/language/zu/) MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Language: zu Plural-Forms: nplurals=2; plural=(n != 1); UkulinganiselwaIsikhathi_Vuma_Igama:_Izwi elihluthulelo:pychess-0.12.2/lang/sv/0000755000175000017470000000000012653231274015126 5ustar tamasusers00000000000000pychess-0.12.2/lang/sv/LC_MESSAGES/0000755000175000017470000000000012653231274016713 5ustar tamasusers00000000000000pychess-0.12.2/lang/sv/LC_MESSAGES/pychess.po0000644000175000017470000024455012653216213020737 0ustar tamasusers00000000000000# SOME DESCRIPTIVE TITLE. # Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER # This file is distributed under the same license as the pychess package. # # Translators: # FIRST AUTHOR , 2007 msgid "" msgstr "" "Project-Id-Version: pychess\n" "Report-Msgid-Bugs-To: \n" "POT-Creation-Date: 2016-01-27 13:28+0100\n" "PO-Revision-Date: 2016-01-28 08:56+0000\n" "Last-Translator: slav0nic \n" "Language-Team: Swedish (http://www.transifex.com/gbtami/pychess/language/sv/)\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" "Language: sv\n" "Plural-Forms: nplurals=2; plural=(n != 1);\n" # "Plural-Forms: nplurals=INTEGER; plural=EXPRESSION;\n" #: glade/analyze_game.glade:22 msgid "Analyze game" msgstr "" #: glade/analyze_game.glade:87 msgid "Use analyzer:" msgstr "" #: glade/analyze_game.glade:122 glade/PyChess.glade:2054 msgid "Maximum analysis time in seconds:" msgstr "" #: glade/analyze_game.glade:163 msgid "" "If the analyzer finds a move where the evaluation difference (the difference" " between the evaluation for the move it thinks is the best move and the " "evaluation for the move made in the game) exceeds this value, it will add an" " annotation for that move (consisting of the engine's Principal Variation " "for the move) to the Annotation panel" msgstr "" #: glade/analyze_game.glade:164 msgid "Variation annotation creation threshold in centipawns:" msgstr "" #: glade/analyze_game.glade:198 msgid "Analyze from current position" msgstr "" #: glade/analyze_game.glade:214 msgid "Add threatening variation lines " msgstr "" #: glade/analyze_game.glade:229 glade/PyChess.glade:1459 msgid "Colorize analyzed moves" msgstr "" #: glade/analyze_game.glade:244 glade/PyChess.glade:1495 msgid "Show evaluation values" msgstr "" #: glade/discovererDialog.glade:18 msgid "PyChess is discovering your engines. Please wait." msgstr "" #: glade/discovererDialog.glade:77 msgid "PyChess.py:" msgstr "" #: glade/discovererDialog.glade:89 msgid "ShredderLinuxChess:" msgstr "" #: glade/discovererDialog.glade:101 msgid "gnuchess:" msgstr "" #: glade/fics_logon.glade:7 msgid "PyChess - Connect to Internet Chess" msgstr "PyChess - anslut till internet" #: glade/fics_logon.glade:47 msgid "Connect to the Free Online Chess Server" msgstr "" #: glade/fics_logon.glade:129 glade/taskers.glade:394 msgid "_Password:" msgstr "_Lösenord:" #: glade/fics_logon.glade:143 msgid "_Name:" msgstr "_Namn:" #: glade/fics_logon.glade:191 msgid "Log on as _Guest" msgstr "Anslut som _Gäst" #: glade/fics_logon.glade:227 msgid "Host:" msgstr "" #: glade/fics_logon.glade:259 msgid "Po_rts:" msgstr "" #: glade/fics_logon.glade:271 msgid "Auto login on startup" msgstr "" #: glade/fics_logon.glade:385 msgid "S_ign up" msgstr "" #: glade/fics_lounge.glade:35 msgid "Challenge: " msgstr "" #: glade/fics_lounge.glade:97 msgid "Send Challenge" msgstr "" #: glade/fics_lounge.glade:133 msgid "Challenge:" msgstr "" #: glade/fics_lounge.glade:327 glade/fics_lounge.glade:2078 msgid "Lightning:" msgstr "" #: glade/fics_lounge.glade:351 glade/fics_lounge.glade:2102 msgid "Standard:" msgstr "" #: glade/fics_lounge.glade:375 glade/fics_lounge.glade:2126 msgid "Blitz:" msgstr "" #: glade/fics_lounge.glade:400 msgid "2 min, Fischer Random, Black" msgstr "" #: glade/fics_lounge.glade:422 msgid "10 min + 6 sec/move, White" msgstr "" #: glade/fics_lounge.glade:444 msgid "5 min" msgstr "" #: glade/fics_lounge.glade:480 msgid "Edit Seek" msgstr "" #: glade/fics_lounge.glade:584 lib/pychess/ic/ICLounge.py:2208 #: lib/pychess/ic/__init__.py:101 lib/pychess/Utils/GameModel.py:206 msgid "Untimed" msgstr "" #: glade/fics_lounge.glade:637 msgid "Minutes: " msgstr "" #: glade/fics_lounge.glade:665 msgid " Gain: " msgstr "" #: glade/fics_lounge.glade:703 msgid "Time control: " msgstr "" #: glade/fics_lounge.glade:716 lib/pychess/ic/FICSObjects.py:56 #: lib/pychess/ic/ICLounge.py:1137 lib/pychess/ic/ICLounge.py:2208 #: lib/pychess/ic/__init__.py:99 msgid "Standard" msgstr "" #: glade/fics_lounge.glade:757 glade/newInOut.glade:633 msgid "Time Control" msgstr "" #: glade/fics_lounge.glade:814 glade/fics_lounge.glade:1346 msgid "Don't care" msgstr "" #: glade/fics_lounge.glade:879 msgid "Your strength: " msgstr "" #: glade/fics_lounge.glade:921 msgid "(Blitz)" msgstr "" #: glade/fics_lounge.glade:951 msgid "Opponent's strength: " msgstr "" #: glade/fics_lounge.glade:1055 msgid "" "When this button is in the \"locked\" state, the relationship\n" "between \"Opponent's strength\" and \"Your strength\" will be\n" "preserved when \n" "a) your rating for the type of game sought has changed\n" "b) you change the variant or the time control" msgstr "" #: glade/fics_lounge.glade:1095 msgid "Center:" msgstr "" #: glade/fics_lounge.glade:1134 msgid "1200" msgstr "" #: glade/fics_lounge.glade:1188 msgid "Tolerance:" msgstr "" #: glade/fics_lounge.glade:1243 lib/pychess/ic/ICLounge.py:2452 msgid "Hide" msgstr "" #: glade/fics_lounge.glade:1289 msgid "Opponent Strength" msgstr "" #: glade/fics_lounge.glade:1386 lib/pychess/Database/gamelist.py:40 #: lib/pychess/ic/ICLounge.py:1357 lib/pychess/ic/ICLounge.py:1557 #: lib/pychess/ic/ICLounge.py:2108 lib/pychess/Utils/repr.py:10 #: lib/pychess/widgets/ChessClock.py:40 #: lib/pychess/widgets/TaskerManager.py:153 msgid "White" msgstr "Vit" #: glade/fics_lounge.glade:1414 lib/pychess/Database/gamelist.py:40 #: lib/pychess/ic/ICLounge.py:1358 lib/pychess/ic/ICLounge.py:1558 #: lib/pychess/ic/ICLounge.py:2110 lib/pychess/Utils/repr.py:10 #: lib/pychess/widgets/ChessClock.py:40 #: lib/pychess/widgets/TaskerManager.py:154 msgid "Black" msgstr "Svart" #: glade/fics_lounge.glade:1453 msgid "Your Color" msgstr "" #: glade/fics_lounge.glade:1512 msgid "Play normal chess rules" msgstr "" #: glade/fics_lounge.glade:1552 msgid "Play" msgstr "" #: glade/fics_lounge.glade:1618 glade/newInOut.glade:833 msgid "Chess Variant" msgstr "" #: glade/fics_lounge.glade:1676 msgid "Rated game" msgstr "" #: glade/fics_lounge.glade:1692 msgid "Manually accept opponent" msgstr "" #: glade/fics_lounge.glade:1722 msgid "Options" msgstr "" #: glade/fics_lounge.glade:1750 msgid "PyChess - Internet Chess: FICS" msgstr "PyChess - Internet Chess: FICS" #: glade/fics_lounge.glade:1823 msgid "_Clear Seeks" msgstr "" #: glade/fics_lounge.glade:1847 msgid "_Accept" msgstr "_Acceptera" #: glade/fics_lounge.glade:1871 msgid "_Decline" msgstr "" #: glade/fics_lounge.glade:2151 msgid "2 min, Fischer Random, 1800↓, Black" msgstr "" #: glade/fics_lounge.glade:2172 msgid "10 min + 6 sec/move, 1400↑, White" msgstr "" #: glade/fics_lounge.glade:2193 msgid "5 min, 1200-1800, Manual" msgstr "" #: glade/fics_lounge.glade:2247 msgid "Send all seeks" msgstr "" #: glade/fics_lounge.glade:2301 msgid "Send seek" msgstr "Sök" #: glade/fics_lounge.glade:2337 msgid "Create Seek" msgstr "" #: glade/fics_lounge.glade:2353 msgid "_Seeks / Challenges" msgstr "" #: glade/fics_lounge.glade:2374 lib/pychess/ic/ICLounge.py:472 #: lib/pychess/ic/ICLounge.py:670 lib/pychess/ic/ICLounge.py:1357 #: lib/pychess/ic/ICLounge.py:1358 msgid "Rating" msgstr "Rankning" #: glade/fics_lounge.glade:2399 msgid "Time" msgstr "Tid" #: glade/fics_lounge.glade:2419 msgid "Seek _Graph" msgstr "" #: glade/fics_lounge.glade:2444 msgid "0 Players Ready" msgstr "" #: glade/fics_lounge.glade:2496 msgid "Challenge" msgstr "" #: glade/fics_lounge.glade:2549 glade/fics_lounge.glade:2735 msgid "Observe" msgstr "" #: glade/fics_lounge.glade:2602 msgid "Start Private Chat" msgstr "" #: glade/fics_lounge.glade:2659 msgid "_Player List" msgstr "" #: glade/fics_lounge.glade:2792 msgid "_Game List" msgstr "" #: glade/fics_lounge.glade:2847 msgid "_My games" msgstr "" #: glade/fics_lounge.glade:2904 glade/PyChess.glade:841 msgid "Offer _Resume" msgstr "" #: glade/fics_lounge.glade:2962 glade/PyChess.glade:880 msgid "R_esign" msgstr "" #: glade/fics_lounge.glade:3006 glade/PyChess.glade:820 msgid "Offer _Draw" msgstr "Erbjud _Remi" #: glade/fics_lounge.glade:3050 msgid "Offer A_bort" msgstr "" #: glade/fics_lounge.glade:3107 msgid "Pre_view" msgstr "" #: glade/fics_lounge.glade:3151 msgid "Examine" msgstr "" #: glade/fics_lounge.glade:3208 msgid "_Archived" msgstr "" #: glade/fics_lounge.glade:3313 msgid "News" msgstr "Nyheter" #: glade/fics_lounge.glade:3345 msgid "Show Console" msgstr "" #: glade/fics_lounge.glade:3359 msgid "Show _Chat" msgstr "" #: glade/fics_lounge.glade:3373 msgid "_Log Off" msgstr "" #: glade/fics_lounge.glade:3393 msgid "Tools" msgstr "Verktyg" #: glade/fics_lounge.glade:3428 msgid "Asymmetric Random " msgstr "" #: glade/findbar.glade:6 msgid "window1" msgstr "" #: glade/findbar.glade:21 msgid "0 of 0" msgstr "" #: glade/findbar.glade:66 msgid "Search:" msgstr "" #: glade/findbar.glade:134 msgid "_Previous" msgstr "" #: glade/findbar.glade:192 msgid "_Next" msgstr "" #: glade/newInOut.glade:45 lib/pychess/widgets/newGameDialog.py:445 msgid "New Game" msgstr "Nytt Spel" #: glade/newInOut.glade:108 msgid "_Start Game" msgstr "_Starta Spelet" #: glade/newInOut.glade:130 msgid "Copy FEN" msgstr "" #: glade/newInOut.glade:143 msgid "Clear" msgstr "" #: glade/newInOut.glade:156 msgid "Paste FEN" msgstr "" #: glade/newInOut.glade:257 msgid "_Black player:" msgstr "" #: glade/newInOut.glade:274 msgid "_White player:" msgstr "" #: glade/newInOut.glade:385 msgid "Players" msgstr "Spelare" #: glade/newInOut.glade:436 msgid "_Untimed" msgstr "" #: glade/newInOut.glade:475 msgid "Blitz: 5 min" msgstr "" #: glade/newInOut.glade:526 msgid "Rapid: 15 min + 10 sec/move" msgstr "" #: glade/newInOut.glade:575 msgid "Normal: 40 min + 15 sec/move" msgstr "" #: glade/newInOut.glade:684 msgid "_Play Normal chess" msgstr "" #: glade/newInOut.glade:724 msgid "Play Fischer Random chess" msgstr "" #: glade/newInOut.glade:774 msgid "Play Losers chess" msgstr "" #: glade/newInOut.glade:919 msgid "Open Game" msgstr "" #: glade/newInOut.glade:1162 msgid "Initial Position" msgstr "" #: glade/newInOut.glade:1219 msgid "Enter Game Notation" msgstr "Ange en not för spelet" #: glade/newInOut.glade:1314 msgid "Halfmove clock" msgstr "" #: glade/newInOut.glade:1327 msgid "En passant line" msgstr "" #: glade/newInOut.glade:1339 msgid "Side to move" msgstr "" #: glade/newInOut.glade:1351 msgid "Move number" msgstr "" #: glade/newInOut.glade:1361 msgid "Black O-O" msgstr "" #: glade/newInOut.glade:1375 msgid "Black O-O-O" msgstr "" #: glade/newInOut.glade:1389 msgid "White O-O-O" msgstr "" #: glade/newInOut.glade:1403 msgid "White O-O" msgstr "" #: glade/promotion.glade:7 msgid "Promotion" msgstr "Promovering" #: glade/promotion.glade:49 lib/pychess/Utils/repr.py:12 msgid "Queen" msgstr "Dam" #: glade/promotion.glade:95 lib/pychess/Utils/repr.py:12 msgid "Rook" msgstr "Torn" #: glade/promotion.glade:141 lib/pychess/Utils/repr.py:12 msgid "Bishop" msgstr "Löpare" #: glade/promotion.glade:187 lib/pychess/Utils/repr.py:12 msgid "Knight" msgstr "Riddare" #: glade/promotion.glade:233 lib/pychess/Utils/repr.py:12 msgid "King" msgstr "" #: glade/promotion.glade:265 msgid "Promote pawn to what?" msgstr "Vad vill du befodra bonden till?" #: glade/PyChess.glade:9 msgid "Chess client" msgstr "" #: glade/PyChess.glade:44 msgid "Game information" msgstr "Spel information" #: glade/PyChess.glade:164 msgid "Event:" msgstr "Händelse:" #: glade/PyChess.glade:178 msgid "Site:" msgstr "Plats:" #: glade/PyChess.glade:204 msgid "Round:" msgstr "Omgång:" #: glade/PyChess.glade:237 msgid "White:" msgstr "" #: glade/PyChess.glade:249 msgid "Black:" msgstr "" #: glade/PyChess.glade:302 msgid "Game data" msgstr "Spel data" #: glade/PyChess.glade:357 msgid "Date of game" msgstr "Spel datum" #: glade/PyChess.glade:495 msgid "_Game" msgstr "_Spel" #: glade/PyChess.glade:502 msgid "_New Game" msgstr "_Nytt spel" #: glade/PyChess.glade:515 msgid "Play _Internet Chess" msgstr "" #: glade/PyChess.glade:534 msgid "_Load Game" msgstr "_Ladda Spel" #: glade/PyChess.glade:550 msgid "Load _Recent Game" msgstr "" #: glade/PyChess.glade:558 msgid "Open _Database" msgstr "" #: glade/PyChess.glade:569 lib/pychess/widgets/newGameDialog.py:615 msgid "Setup Position" msgstr "" #: glade/PyChess.glade:579 msgid "Enter Game _Notation" msgstr "" #: glade/PyChess.glade:592 msgid "_Save Game" msgstr "_Spara Spel" #: glade/PyChess.glade:606 msgid "Save Game _As" msgstr "_Spara Spel _Som" #: glade/PyChess.glade:624 msgid "Share Game" msgstr "" #: glade/PyChess.glade:630 msgid "_Export Position" msgstr "" #: glade/PyChess.glade:644 msgid "_Analyze Game" msgstr "" #: glade/PyChess.glade:678 msgid "Player _Rating" msgstr "Spelar _Betyg" #: glade/PyChess.glade:723 msgid "_Edit" msgstr "" #: glade/PyChess.glade:734 msgid "_Copy PGN" msgstr "" #: glade/PyChess.glade:746 msgid "_Copy FEN" msgstr "" #: glade/PyChess.glade:763 msgid "_Engines" msgstr "" #: glade/PyChess.glade:789 msgid "_Actions" msgstr "_Åtgärder" #: glade/PyChess.glade:800 msgid "Offer _Abort" msgstr "" #: glade/PyChess.glade:810 msgid "Offer Ad_journment" msgstr "" #: glade/PyChess.glade:831 msgid "Offer _Pause" msgstr "" #: glade/PyChess.glade:847 msgid "Offer _Undo" msgstr "" #: glade/PyChess.glade:870 msgid "_Call Flag" msgstr "" #: glade/PyChess.glade:890 msgid "Ask to _Move" msgstr "" #: glade/PyChess.glade:905 msgid "Auto Call _Flag" msgstr "" #: glade/PyChess.glade:918 msgid "_View" msgstr "_Visa" #: glade/PyChess.glade:925 msgid "_Rotate Board" msgstr "_Rotera Brädet" #: glade/PyChess.glade:939 msgid "_Fullscreen" msgstr "" #: glade/PyChess.glade:952 msgid "Leave _Fullscreen" msgstr "" #: glade/PyChess.glade:969 msgid "_Show Sidepanels" msgstr "" #: glade/PyChess.glade:980 msgid "_Log Viewer" msgstr "_Logg Visare" #: glade/PyChess.glade:997 msgid "_Hint mode" msgstr "" #: glade/PyChess.glade:1009 msgid "Sp_y mode" msgstr "" #: glade/PyChess.glade:1024 msgid "_Help" msgstr "_Hjälp" #: glade/PyChess.glade:1034 msgid "About Chess" msgstr "Om Schack" #: glade/PyChess.glade:1043 msgid "How to Play" msgstr "" #: glade/PyChess.glade:1052 msgid "Translate PyChess" msgstr "" #: glade/PyChess.glade:1058 msgid "Tip of the Day" msgstr "" #: glade/PyChess.glade:1153 msgid "Default" msgstr "" #: glade/PyChess.glade:1156 msgid "Knights" msgstr "" #: glade/PyChess.glade:1167 lib/pychess/widgets/preferencesDialog.py:349 msgid "Beep" msgstr "Pip" #: glade/PyChess.glade:1170 lib/pychess/widgets/preferencesDialog.py:350 msgid "Select sound file..." msgstr "Välj ljudfil..." #: glade/PyChess.glade:1173 lib/pychess/widgets/preferencesDialog.py:348 msgid "No sound" msgstr "Inget ljud" #: glade/PyChess.glade:1180 msgid "Preferences" msgstr "Inställningar" #: glade/PyChess.glade:1218 msgid "The displayed name of the first human player, e.g., John." msgstr "" #: glade/PyChess.glade:1230 msgid "Name of _first human player:" msgstr "" #: glade/PyChess.glade:1259 msgid "The displayed name of the guest player, e.g., Mary." msgstr "" #: glade/PyChess.glade:1271 msgid "Name of s_econd human player:" msgstr "" #: glade/PyChess.glade:1307 msgid "_Hide tabs when only one game is open" msgstr "" #: glade/PyChess.glade:1312 msgid "" "If set, this hides the tab in the top of the playing window, when it is not " "needed." msgstr "" #: glade/PyChess.glade:1326 msgid "_Use main app closer [x] to close all games" msgstr "" #: glade/PyChess.glade:1331 msgid "" "If set, clicking on main application window closer first time it closes all " "games." msgstr "" #: glade/PyChess.glade:1345 msgid "Auto _rotate board to current human player" msgstr "" #: glade/PyChess.glade:1350 msgid "" "If set, the board will turn after each move, to show the natural view for " "the current player." msgstr "" #: glade/PyChess.glade:1364 msgid "Auto _promote to queen" msgstr "" #: glade/PyChess.glade:1369 msgid "If set, pawn promotes to queen without promotion dialog selection." msgstr "" #: glade/PyChess.glade:1383 msgid "Face _to Face display mode" msgstr "" #: glade/PyChess.glade:1388 msgid "" "If set, the black pieces will be head down, suitable for playing against " "friends on mobile devices." msgstr "" #: glade/PyChess.glade:1402 msgid "Sho_w cords" msgstr "" #: glade/PyChess.glade:1407 msgid "" "If set, the playing board will display labels and ranks for each chess " "field. These are usable in chess notation." msgstr "" #: glade/PyChess.glade:1421 msgid "Show _captured pieces" msgstr "" #: glade/PyChess.glade:1426 msgid "If set, the captured figurines will be shown next to the board." msgstr "" #: glade/PyChess.glade:1440 msgid "Prefer figures in _notation" msgstr "" #: glade/PyChess.glade:1445 msgid "" "If set, PyChess will use figures to express moved pieces, rather than " "uppercase letters." msgstr "" #: glade/PyChess.glade:1464 msgid "If set, PyChess will colorize suboptimal analyzed moves with red." msgstr "" #: glade/PyChess.glade:1477 msgid "Show elapsed move times" msgstr "" #: glade/PyChess.glade:1482 msgid "If set, the elapsed time that a player used for the move is shown." msgstr "" #: glade/PyChess.glade:1500 msgid "If set, the hint analyzer engine evaluation value is shown." msgstr "" #: glade/PyChess.glade:1526 msgid "General Options" msgstr "" #: glade/PyChess.glade:1560 msgid "F_ull board animation" msgstr "" #: glade/PyChess.glade:1565 msgid "Animate pieces, board rotation and more. Use this on fast machines." msgstr "" #: glade/PyChess.glade:1579 msgid "Only animate _moves" msgstr "" #: glade/PyChess.glade:1584 msgid "Only animate piece moves." msgstr "" #: glade/PyChess.glade:1599 msgid "No _animation" msgstr "" #: glade/PyChess.glade:1604 msgid "Never use animation. Use this on slow machines." msgstr "" #: glade/PyChess.glade:1632 msgid "Animation" msgstr "Animering" #: glade/PyChess.glade:1651 msgid "_General" msgstr "" #: glade/PyChess.glade:1692 msgid "Use opening _book" msgstr "" #: glade/PyChess.glade:1697 msgid "If set, PyChess will suggest best opening moves on hint panel." msgstr "" #: glade/PyChess.glade:1724 msgid "Polyglot book file:" msgstr "" #: glade/PyChess.glade:1768 msgid "Use _local tablebases" msgstr "" #: glade/PyChess.glade:1773 msgid "" "If set, PyChess will show game results for different moves in positions containing 6 or less pieces.\n" "You can download tablebase files from:\n" "http://www.olympuschess.com/egtb/gaviota/" msgstr "" #: glade/PyChess.glade:1803 msgid "Gaviota TB path:" msgstr "" #: glade/PyChess.glade:1843 msgid "Use _online tablebases" msgstr "" #: glade/PyChess.glade:1848 msgid "" "If set, PyChess will show game results for different moves in positions containing 6 or less pieces.\n" "It will search positions from http://www.k4it.de/" msgstr "" #: glade/PyChess.glade:1870 msgid "Opening, endgame" msgstr "" #: glade/PyChess.glade:1904 msgid "Use _analyzer" msgstr "" #: glade/PyChess.glade:1946 msgid "" "The analyzer will run in the background and analyze the game. This is " "necessary for the hint mode to work" msgstr "" #: glade/PyChess.glade:1978 msgid "Use _inverted analyzer" msgstr "" #: glade/PyChess.glade:2020 msgid "" "The inverse analyzer will analyze the game as if your opponent was to move. " "This is necessary for the spy mode to work" msgstr "" #: glade/PyChess.glade:2096 msgid "Analyzing" msgstr "Analyserar" #: glade/PyChess.glade:2118 msgid "_Hints" msgstr "" #: glade/PyChess.glade:2263 msgid "Uninstall" msgstr "" #: glade/PyChess.glade:2317 msgid "Ac_tive" msgstr "" #: glade/PyChess.glade:2367 msgid "Installed Sidepanels" msgstr "" #: glade/PyChess.glade:2382 msgid "Side_panels" msgstr "" #: glade/PyChess.glade:2440 msgid "Light Squares :" msgstr "" #: glade/PyChess.glade:2479 msgid "Dark Squares :" msgstr "" #: glade/PyChess.glade:2515 msgid "Reset Default Colours" msgstr "" #: glade/PyChess.glade:2551 msgid "Board Colours" msgstr "" #: glade/PyChess.glade:2610 msgid "Chess Sets" msgstr "" #: glade/PyChess.glade:2634 msgid "Themes" msgstr "" #: glade/PyChess.glade:2659 msgid "_Use sounds in PyChess" msgstr "_Använd ljud i PyChess" #: glade/PyChess.glade:2982 msgid "A player _checks:" msgstr "" #: glade/PyChess.glade:2997 msgid "A player _moves:" msgstr "En spelare _förflyttar" #: glade/PyChess.glade:3010 msgid "Game is _drawn:" msgstr "" #: glade/PyChess.glade:3025 msgid "Game is _lost:" msgstr "Spelet är _förlorat" #: glade/PyChess.glade:3040 msgid "Game is _won:" msgstr "Spelet är _vunnet" #: glade/PyChess.glade:3055 msgid "A player c_aptures:" msgstr "" #: glade/PyChess.glade:3084 msgid "Game is _set-up:" msgstr "" #: glade/PyChess.glade:3136 msgid "_Observed moves:" msgstr "_Gjorda förflyttningar" #: glade/PyChess.glade:3151 msgid "Observed _ends:" msgstr "" #: glade/PyChess.glade:3265 msgid "Short on _time:" msgstr "" #: glade/PyChess.glade:3317 msgid "_Invalid move:" msgstr "" #: glade/PyChess.glade:3369 msgid "Activate alarm when _remaining sec is:" msgstr "" #: glade/PyChess.glade:3416 msgid "Play Sound When..." msgstr "Spela ljud när..." #: glade/PyChess.glade:3438 msgid "_Sounds" msgstr "" #: glade/PyChess.glade:3463 msgid "_Auto save finished games" msgstr "" #: glade/PyChess.glade:3497 msgid "Save files to:" msgstr "" #: glade/PyChess.glade:3525 msgid "Use name format:" msgstr "" #: glade/PyChess.glade:3569 msgid "Names: #n1, #n2" msgstr "" #: glade/PyChess.glade:3582 msgid "Year, month, day: #y, #m, #d" msgstr "" #: glade/PyChess.glade:3619 msgid "Save elapsed move _times" msgstr "" #: glade/PyChess.glade:3644 msgid "Save analyzing engine _evaluation values" msgstr "" #: glade/PyChess.glade:3669 msgid "Save _own games only" msgstr "" #: glade/PyChess.glade:3698 msgid "Save" msgstr "" #: glade/PyChess.glade:3728 msgid "uci" msgstr "" #: glade/PyChess.glade:3731 msgid "xboard" msgstr "" #: glade/PyChess.glade:3739 msgid "Manage engines" msgstr "" #: glade/PyChess.glade:3837 msgid "Command:" msgstr "" #: glade/PyChess.glade:3851 msgid "Protocol:" msgstr "" #: glade/PyChess.glade:3865 msgid "Parameters:" msgstr "" #: glade/PyChess.glade:3878 msgid "Command line parameters needed by the engine." msgstr "" #: glade/PyChess.glade:3903 msgid "" "Engines use uci or xboard communication protocol to talk to the GUI.\n" "If it can use both you can set here which one you like." msgstr "" #: glade/PyChess.glade:3929 msgid "Working directory:" msgstr "" #: glade/PyChess.glade:3942 msgid "The directory where the engine will be started from." msgstr "" #: glade/saveGamesDialog.glade:7 msgid "Quit PyChess" msgstr "" #: glade/saveGamesDialog.glade:24 lib/pychess/widgets/ionest.py:424 msgid "Close _without Saving" msgstr "Avsluta _utan att spara" #: glade/saveGamesDialog.glade:83 msgid "_Save %d documents" msgstr "" #: glade/saveGamesDialog.glade:141 msgid "" "There are %d games with unsaved moves. Save changes before " "closing?" msgstr "" #: glade/saveGamesDialog.glade:161 msgid "Select the games you want to save:" msgstr "" #: glade/saveGamesDialog.glade:204 msgid "If you don't save, new changes to your games will be permanently lost." msgstr "" #: glade/taskers.glade:126 msgid "_Opponent:" msgstr "" #: glade/taskers.glade:154 msgid "_Your Color:" msgstr "" #: glade/taskers.glade:219 msgid "_Start Game" msgstr "" #: glade/taskers.glade:338 msgid "Log on as G_uest" msgstr "" #: glade/taskers.glade:410 msgid "Ha_ndle:" msgstr "" #: glade/taskers.glade:469 msgid "_Connect to server" msgstr "" #: glade/tipoftheday.glade:7 msgid "Tip Of The day" msgstr "" #: glade/tipoftheday.glade:62 msgid "Show tips at startup" msgstr "" #: lib/pychess/Main.py:302 msgid "http://en.wikipedia.org/wiki/Chess" msgstr "http://sv.wikipedia.org/wiki/Schack" #: lib/pychess/Main.py:305 msgid "http://en.wikipedia.org/wiki/Rules_of_chess" msgstr "http://sv.wikipedia.org/wiki/Schack" #: lib/pychess/Main.py:370 lib/pychess/widgets/gamenanny.py:80 msgid "Welcome" msgstr "" #: lib/pychess/Database/gamelist.py:40 msgid "Id" msgstr "" #: lib/pychess/Database/gamelist.py:40 msgid "W Elo" msgstr "" #: lib/pychess/Database/gamelist.py:40 msgid "B Elo" msgstr "" #: lib/pychess/Database/gamelist.py:41 msgid "Result" msgstr "" #: lib/pychess/Database/gamelist.py:41 msgid "Event" msgstr "" #: lib/pychess/Database/gamelist.py:41 msgid "Site" msgstr "" #: lib/pychess/Database/gamelist.py:41 msgid "Round" msgstr "" #: lib/pychess/Database/gamelist.py:41 msgid "Date" msgstr "" #: lib/pychess/Database/gamelist.py:41 msgid "ECO" msgstr "" #: lib/pychess/Database/gamelist.py:62 msgid "PyChess Game Database" msgstr "" #: lib/pychess/Database/PgnImport.py:188 #, python-format msgid "The game #%s can't be loaded, because of an error parsing FEN" msgstr "" #: lib/pychess/ic/FICSConnection.py:139 msgid "The connection was broken - got \"end of file\" message" msgstr "" #: lib/pychess/ic/FICSConnection.py:140 #, python-format msgid "'%s' is not a registered name" msgstr "'%s' är inte ett registrerat namn" #: lib/pychess/ic/FICSConnection.py:141 msgid "" "The entered password was invalid.\n" "If you forgot your password, go to http://www.freechess.org/password to request a new one over email." msgstr "" #: lib/pychess/ic/FICSConnection.py:145 #, python-format msgid "Sorry '%s' is already logged in" msgstr "" #: lib/pychess/ic/FICSConnection.py:146 #, python-format msgid "'%s' is a registered name. If it is yours, type the password." msgstr "" #: lib/pychess/ic/FICSConnection.py:147 msgid "" "Due to abuse problems, guest connections have been prevented.\n" "You can still register on http://www.freechess.org" msgstr "" #: lib/pychess/ic/FICSConnection.py:166 msgid "Connecting to server" msgstr "" #: lib/pychess/ic/FICSConnection.py:181 msgid "Logging on to server" msgstr "" #: lib/pychess/ic/FICSConnection.py:239 msgid "Setting up environment" msgstr "" #: lib/pychess/ic/FICSObjects.py:35 lib/pychess/ic/FICSObjects.py:47 #, python-format msgid "%(player)s is %(status)s" msgstr "" #: lib/pychess/ic/FICSObjects.py:46 msgid "not playing" msgstr "" #: lib/pychess/ic/FICSObjects.py:54 lib/pychess/ic/ICLounge.py:1136 #: lib/pychess/ic/ICLounge.py:2209 lib/pychess/ic/__init__.py:98 #: lib/pychess/widgets/newGameDialog.py:153 msgid "Blitz" msgstr "Blitz" #: lib/pychess/ic/FICSObjects.py:58 lib/pychess/ic/ICLounge.py:1137 #: lib/pychess/ic/ICLounge.py:2209 lib/pychess/ic/__init__.py:100 msgid "Lightning" msgstr "" #: lib/pychess/ic/FICSObjects.py:60 lib/pychess/Variants/atomic.py:15 msgid "Atomic" msgstr "" #: lib/pychess/ic/FICSObjects.py:62 lib/pychess/Variants/bughouse.py:9 msgid "Bughouse" msgstr "" #: lib/pychess/ic/FICSObjects.py:64 lib/pychess/Variants/crazyhouse.py:9 msgid "Crazyhouse" msgstr "" #: lib/pychess/ic/FICSObjects.py:66 lib/pychess/Variants/losers.py:9 msgid "Losers" msgstr "" #: lib/pychess/ic/FICSObjects.py:68 lib/pychess/Variants/suicide.py:12 msgid "Suicide" msgstr "" #: lib/pychess/ic/FICSObjects.py:70 lib/pychess/ic/__init__.py:129 msgid "Wild" msgstr "" #: lib/pychess/ic/FICSObjects.py:117 msgid "Online" msgstr "" #: lib/pychess/ic/FICSObjects.py:118 lib/pychess/ic/FICSObjects.py:143 msgid "Offline" msgstr "" #: lib/pychess/ic/FICSObjects.py:133 msgid "Available" msgstr "" #: lib/pychess/ic/FICSObjects.py:135 msgid "Playing" msgstr "" #: lib/pychess/ic/FICSObjects.py:141 msgid "Idle" msgstr "" #: lib/pychess/ic/FICSObjects.py:145 msgid "Examining" msgstr "" #: lib/pychess/ic/FICSObjects.py:147 msgid "Not Available" msgstr "" #: lib/pychess/ic/FICSObjects.py:149 msgid "Running Simul Match" msgstr "" #: lib/pychess/ic/FICSObjects.py:151 msgid "In Tournament" msgstr "" #: lib/pychess/ic/FICSObjects.py:308 lib/pychess/ic/FICSObjects.py:492 #: lib/pychess/ic/ICLounge.py:2278 msgid "Unrated" msgstr "Ej Rankat" #: lib/pychess/ic/FICSObjects.py:491 lib/pychess/ic/ICLounge.py:670 #: lib/pychess/ic/ICLounge.py:1358 lib/pychess/ic/ICLounge.py:1558 #: lib/pychess/ic/ICLounge.py:2113 msgid "Rated" msgstr "Rankat" #: lib/pychess/ic/FICSObjects.py:498 lib/pychess/ic/ICLounge.py:2098 #, python-format msgid "%d min" msgstr "" #: lib/pychess/ic/FICSObjects.py:500 #, python-format msgid " + %d sec" msgstr "" #: lib/pychess/ic/FICSObjects.py:517 #, python-format msgid "%(player)s plays %(color)s" msgstr "" #: lib/pychess/ic/FICSObjects.py:519 lib/pychess/ic/ICLounge.py:909 msgid "white" msgstr "" #: lib/pychess/ic/FICSObjects.py:519 lib/pychess/ic/ICLounge.py:909 msgid "black" msgstr "" #: lib/pychess/ic/FICSObjects.py:565 msgid "This is a continuation of an adjourned match" msgstr "" #: lib/pychess/ic/FICSObjects.py:654 msgid "Opponent Rating" msgstr "" #: lib/pychess/ic/FICSObjects.py:656 msgid "Manual Accept" msgstr "" #: lib/pychess/ic/FICSObjects.py:810 msgid "Private" msgstr "" #: lib/pychess/ic/FICSObjects.py:930 lib/pychess/ic/ICLounge.py:527 #: lib/pychess/Savers/epd.py:139 msgid "Unknown" msgstr "Okänd" #: lib/pychess/ic/ICLogon.py:159 lib/pychess/ic/ICLogon.py:165 msgid "Connection Error" msgstr "Anslutningsfel" #: lib/pychess/ic/ICLogon.py:161 msgid "Log on Error" msgstr "Logga in - Fel" #: lib/pychess/ic/ICLogon.py:163 msgid "Connection was closed" msgstr "Anslutningen var stängd" #: lib/pychess/ic/ICLogon.py:169 msgid "Address Error" msgstr "" #: lib/pychess/ic/ICLogon.py:172 msgid "Auto-logout" msgstr "" #: lib/pychess/ic/ICLogon.py:173 msgid "You have been logged out because you were idle more than 60 minutes" msgstr "" #: lib/pychess/ic/ICLounge.py:222 msgid "You have to set kibitz on to see bot messages here." msgstr "" #: lib/pychess/ic/ICLounge.py:241 msgid "" "You may only have 3 outstanding seeks at the same time. If you want to add a" " new seek you must clear your currently active seeks. Clear your seeks?" msgstr "" #: lib/pychess/ic/ICLounge.py:258 msgid "You can't touch this! You are examining a game." msgstr "" #: lib/pychess/ic/ICLounge.py:270 msgid " has declined your offer for a match" msgstr "" #: lib/pychess/ic/ICLounge.py:283 msgid " is censoring you" msgstr "" #: lib/pychess/ic/ICLounge.py:296 msgid " noplay listing you" msgstr "" #: lib/pychess/ic/ICLounge.py:311 msgid " uses a formula not fitting your match request:" msgstr "" #: lib/pychess/ic/ICLounge.py:325 msgid "to manual accept" msgstr "" #: lib/pychess/ic/ICLounge.py:327 msgid "to automatic accept" msgstr "" #: lib/pychess/ic/ICLounge.py:329 msgid "rating range now" msgstr "" #: lib/pychess/ic/ICLounge.py:330 msgid "Seek updated" msgstr "" #: lib/pychess/ic/ICLounge.py:342 msgid "Your seeks have been removed" msgstr "" #: lib/pychess/ic/ICLounge.py:363 msgid " has arrived" msgstr "" #: lib/pychess/ic/ICLounge.py:370 msgid " has departed" msgstr "" #: lib/pychess/ic/ICLounge.py:374 msgid " is present" msgstr "" #: lib/pychess/ic/ICLounge.py:391 sidepanel/chatPanel.py:17 msgid "Chat" msgstr "" #: lib/pychess/ic/ICLounge.py:472 sidepanel/bookPanel.py:366 msgid "Win" msgstr "" #: lib/pychess/ic/ICLounge.py:472 sidepanel/bookPanel.py:360 msgid "Draw" msgstr "" #: lib/pychess/ic/ICLounge.py:472 sidepanel/bookPanel.py:363 msgid "Loss" msgstr "" #: lib/pychess/ic/ICLounge.py:482 msgid "" "On FICS, your \"Wild\" rating encompasses all of the following variants at " "all time controls:\n" msgstr "" #: lib/pychess/ic/ICLounge.py:494 msgid "Sanctions" msgstr "" #: lib/pychess/ic/ICLounge.py:499 msgid "Email" msgstr "E-post" #: lib/pychess/ic/ICLounge.py:504 msgid "Spent" msgstr "Spenderat" #: lib/pychess/ic/ICLounge.py:506 msgid "online in total" msgstr "Total tid online" #: lib/pychess/ic/ICLounge.py:512 msgid "Ping" msgstr "Ping" #: lib/pychess/ic/ICLounge.py:517 msgid "Connecting" msgstr "Ansluter" #: lib/pychess/ic/ICLounge.py:544 msgid "" "You are currently logged in as a guest.\n" "A guest can't play rated games and therefore isn't able to play as many of the types of matches offered as a registered user. To register an account, go to http://www.freechess.org/Register/index.html." msgstr "" #: lib/pychess/ic/ICLounge.py:669 lib/pychess/ic/ICLounge.py:1136 msgid "Name" msgstr "Namn" #: lib/pychess/ic/ICLounge.py:670 lib/pychess/ic/ICLounge.py:1358 #: lib/pychess/ic/ICLounge.py:1558 msgid "Type" msgstr "Typ" #: lib/pychess/ic/ICLounge.py:670 lib/pychess/ic/ICLounge.py:1558 msgid "Clock" msgstr "Klocka" #: lib/pychess/ic/ICLounge.py:726 lib/pychess/ic/ICLounge.py:923 #: lib/pychess/Players/Human.py:250 msgid "Accept" msgstr "" #: lib/pychess/ic/ICLounge.py:728 msgid "Assess" msgstr "" #: lib/pychess/ic/ICLounge.py:734 msgid "Archived" msgstr "" #: lib/pychess/ic/ICLounge.py:848 #, python-format msgid "Active seeks: %d" msgstr "" #: lib/pychess/ic/ICLounge.py:897 #, python-format msgid "" " would like to resume your adjourned %(time)s %(gametype)s " "game." msgstr "" #: lib/pychess/ic/ICLounge.py:902 #, python-format msgid "" " challenges you to a %(time)s %(rated)s %(gametype)s game" msgstr "" #: lib/pychess/ic/ICLounge.py:907 #, python-format msgid " where %(player)s plays %(color)s." msgstr "" #: lib/pychess/ic/ICLounge.py:924 lib/pychess/Players/Human.py:251 msgid "Decline" msgstr "" #: lib/pychess/ic/ICLounge.py:1065 msgid " min" msgstr "" #: lib/pychess/ic/ICLounge.py:1137 msgid "Status" msgstr "" #: lib/pychess/ic/ICLounge.py:1203 lib/pychess/ic/ICLounge.py:1233 #, python-format msgid "Players: %d" msgstr "" #: lib/pychess/ic/ICLounge.py:1469 #, python-format msgid "Games running: %d" msgstr "" #: lib/pychess/ic/ICLounge.py:1559 msgid "Date/Time" msgstr "" #: lib/pychess/ic/ICLounge.py:1614 #, python-format msgid "" " with whom you have an adjourned %(timecontrol)s %(gametype)s " "game is online." msgstr "" #: lib/pychess/ic/ICLounge.py:1635 msgid "Request Continuation" msgstr "" #: lib/pychess/ic/ICLounge.py:1637 msgid "Examine Adjourned Game" msgstr "" #: lib/pychess/ic/ICLounge.py:1965 msgid "" "The chain button is disabled because you are logged in as a guest. Guests " "can't establish ratings, and the chain button's state has no effect when " "there is no rating to which to tie \"Opponent Strength\" to" msgstr "" #: lib/pychess/ic/ICLounge.py:2006 msgid "Challenge: " msgstr "" #: lib/pychess/ic/ICLounge.py:2044 msgid "If set you can refuse players accepting your seek" msgstr "" #: lib/pychess/ic/ICLounge.py:2048 lib/pychess/ic/ICLounge.py:2051 msgid "This option is not applicable because you're challenging a player" msgstr "" #: lib/pychess/ic/ICLounge.py:2064 msgid "Edit Seek: " msgstr "" #: lib/pychess/ic/ICLounge.py:2095 #, python-format msgid "%(minutes)d min + %(gain)d sec/move" msgstr "" #: lib/pychess/ic/ICLounge.py:2116 msgid "Manual" msgstr "" #: lib/pychess/ic/ICLounge.py:2256 msgid "Any strength" msgstr "" #: lib/pychess/ic/ICLounge.py:2308 msgid "You can't play rated games because you are logged in as a guest" msgstr "" #: lib/pychess/ic/ICLounge.py:2312 msgid "You can't play rated games because \"Untimed\" is checked, " msgstr "" #: lib/pychess/ic/ICLounge.py:2313 msgid "and on FICS, untimed games can't be rated" msgstr "" #: lib/pychess/ic/ICLounge.py:2317 msgid "This option is not available because you're challenging a guest, " msgstr "" #: lib/pychess/ic/ICLounge.py:2318 msgid "and guests can't play rated games" msgstr "" #: lib/pychess/ic/ICLounge.py:2332 lib/pychess/Variants/shuffle.py:16 #: lib/pychess/widgets/newGameDialog.py:266 msgid "Shuffle" msgstr "" #: lib/pychess/ic/ICLounge.py:2333 lib/pychess/widgets/newGameDialog.py:267 msgid "Other (standard rules)" msgstr "" #: lib/pychess/ic/ICLounge.py:2334 lib/pychess/widgets/newGameDialog.py:268 msgid "Other (non standard rules)" msgstr "" #: lib/pychess/ic/ICLounge.py:2421 msgid "You can't select a variant because \"Untimed\" is checked, " msgstr "" #: lib/pychess/ic/ICLounge.py:2422 msgid "and on FICS, untimed games have to be normal chess rules" msgstr "" #: lib/pychess/ic/ICLounge.py:2454 msgid "Change Tolerance" msgstr "" #: lib/pychess/ic/__init__.py:102 msgid "Examined" msgstr "" #: lib/pychess/ic/__init__.py:103 msgid "Other" msgstr "" #: lib/pychess/ic/__init__.py:182 msgid "Administrator" msgstr "" #: lib/pychess/ic/__init__.py:182 msgid "Blindfold Account" msgstr "" #: lib/pychess/ic/__init__.py:182 msgid "Computer" msgstr "" #: lib/pychess/ic/__init__.py:183 msgid "Team Account" msgstr "" #: lib/pychess/ic/__init__.py:183 msgid "Unregistered" msgstr "" #: lib/pychess/ic/__init__.py:183 msgid "Chess Advisor" msgstr "" #: lib/pychess/ic/__init__.py:184 msgid "Service Representative" msgstr "" #: lib/pychess/ic/__init__.py:184 msgid "Tournament Director" msgstr "" #: lib/pychess/ic/__init__.py:184 msgid "Mamer Manager" msgstr "" #: lib/pychess/ic/__init__.py:185 msgid "Grand Master" msgstr "" #: lib/pychess/ic/__init__.py:185 msgid "International Master" msgstr "" #: lib/pychess/ic/__init__.py:185 msgid "FIDE Master" msgstr "" #: lib/pychess/ic/__init__.py:186 msgid "Woman Grand Master" msgstr "" #: lib/pychess/ic/__init__.py:186 msgid "Woman International Master" msgstr "" #: lib/pychess/ic/__init__.py:186 msgid "Woman FIDE Master" msgstr "" #: lib/pychess/ic/__init__.py:187 msgid "Dummy Account" msgstr "" #: lib/pychess/ic/__init__.py:191 msgid "*" msgstr "" #: lib/pychess/ic/__init__.py:191 lib/pychess/Utils/repr.py:14 msgid "B" msgstr "B" #: lib/pychess/ic/__init__.py:191 msgid "C" msgstr "" #: lib/pychess/ic/__init__.py:192 msgid "T" msgstr "" #: lib/pychess/ic/__init__.py:192 msgid "U" msgstr "" #: lib/pychess/ic/__init__.py:192 msgid "CA" msgstr "" #: lib/pychess/ic/__init__.py:193 msgid "SR" msgstr "" #: lib/pychess/ic/__init__.py:193 msgid "TD" msgstr "" #: lib/pychess/ic/__init__.py:193 msgid "TM" msgstr "" #: lib/pychess/ic/__init__.py:194 msgid "GM" msgstr "" #: lib/pychess/ic/__init__.py:194 msgid "IM" msgstr "" #: lib/pychess/ic/__init__.py:194 msgid "FM" msgstr "" #: lib/pychess/ic/__init__.py:195 msgid "WGM" msgstr "" #: lib/pychess/ic/__init__.py:195 msgid "WIM" msgstr "" #: lib/pychess/ic/__init__.py:195 msgid "WFM" msgstr "" #: lib/pychess/ic/__init__.py:195 msgid "D" msgstr "" #: lib/pychess/ic/__init__.py:195 msgid "H" msgstr "" #: lib/pychess/ic/__init__.py:195 msgid "CM" msgstr "" #: lib/pychess/ic/__init__.py:195 msgid "FA" msgstr "" #: lib/pychess/ic/__init__.py:195 msgid "NM" msgstr "" #: lib/pychess/Players/CECPEngine.py:857 #, python-format msgid "The engine %s reports an error:" msgstr "" #: lib/pychess/Players/Human.py:20 msgid "Your opponent has offered you a draw." msgstr "" #: lib/pychess/Players/Human.py:21 msgid "" "Your opponent has offered you a draw. If you accept this offer, the game " "will end with a score of 1/2 - 1/2." msgstr "" #: lib/pychess/Players/Human.py:23 msgid "Your opponent wants to abort the game." msgstr "" #: lib/pychess/Players/Human.py:24 msgid "" "Your opponent has asked that the game be aborted. If you accept this offer, " "the game will end with no rating change." msgstr "" #: lib/pychess/Players/Human.py:26 msgid "Your opponent wants to adjourn the game." msgstr "" #: lib/pychess/Players/Human.py:27 msgid "" "Your opponent has asked that the game be adjourned. If you accept this " "offer, the game will be adjourned and you can resume it later (when your " "opponent is online and both players agree to resume)." msgstr "" #: lib/pychess/Players/Human.py:29 #, python-format msgid "Your opponent wants to undo %s move(s)." msgstr "" #: lib/pychess/Players/Human.py:30 #, python-format msgid "" "Your opponent has asked that the last %s move(s) be undone. If you accept " "this offer, the game will continue from the earlier position." msgstr "" #: lib/pychess/Players/Human.py:32 msgid "Your opponent wants to pause the game." msgstr "" #: lib/pychess/Players/Human.py:33 msgid "" "Your opponent has asked that the game be paused. If you accept this offer, " "the game clock will be paused until both players agree to resume the game." msgstr "" #: lib/pychess/Players/Human.py:35 msgid "Your opponent wants to resume the game." msgstr "" #: lib/pychess/Players/Human.py:36 msgid "" "Your opponent has asked that the game be resumed. If you accept this offer, " "the game clock will continue from where it was paused." msgstr "" #: lib/pychess/Players/Human.py:40 msgid "The resignation" msgstr "" #: lib/pychess/Players/Human.py:41 msgid "The flag call" msgstr "" #: lib/pychess/Players/Human.py:42 msgid "The draw offer" msgstr "" #: lib/pychess/Players/Human.py:43 msgid "The abort offer" msgstr "" #: lib/pychess/Players/Human.py:44 msgid "The adjourn offer" msgstr "" #: lib/pychess/Players/Human.py:45 msgid "The pause offer" msgstr "" #: lib/pychess/Players/Human.py:46 msgid "The resume offer" msgstr "" #: lib/pychess/Players/Human.py:47 msgid "The offer to switch sides" msgstr "" #: lib/pychess/Players/Human.py:48 msgid "The takeback offer" msgstr "" #: lib/pychess/Players/Human.py:52 msgid "resign" msgstr "" #: lib/pychess/Players/Human.py:53 msgid "call your opponents flag" msgstr "" #: lib/pychess/Players/Human.py:54 msgid "offer a draw" msgstr "" #: lib/pychess/Players/Human.py:55 msgid "offer an abort" msgstr "" #: lib/pychess/Players/Human.py:56 msgid "offer to adjourn" msgstr "" #: lib/pychess/Players/Human.py:57 msgid "offer a pause" msgstr "" #: lib/pychess/Players/Human.py:58 msgid "offer to resume" msgstr "" #: lib/pychess/Players/Human.py:59 msgid "offer to switch sides" msgstr "" #: lib/pychess/Players/Human.py:60 msgid "offer a takeback" msgstr "" #: lib/pychess/Players/Human.py:61 msgid "ask your opponent to move" msgstr "" #: lib/pychess/Players/Human.py:66 msgid "Your opponent is not out of time." msgstr "Din motståndare har inte slut på tid." #: lib/pychess/Players/Human.py:68 msgid "The clock hasn't been started yet." msgstr "" #: lib/pychess/Players/Human.py:70 msgid "You can't switch colors during the game." msgstr "" #: lib/pychess/Players/Human.py:72 msgid "You have tried to undo too many moves." msgstr "" #: lib/pychess/Players/Human.py:180 msgid "Your opponent asks you to hurry!" msgstr "Din motståndare ber dig att skynda!" #: lib/pychess/Players/Human.py:181 msgid "" "Generally this means nothing, as the game is time-based, but if you want to " "please your opponent, perhaps you should get going." msgstr "" #: lib/pychess/Players/Human.py:259 #, python-format msgid "%s was declined by your opponent" msgstr "%s accepterades inte av din motståndare" #: lib/pychess/Players/Human.py:260 #, python-format msgid "Resend %s?" msgstr "" #: lib/pychess/Players/Human.py:267 msgid "Resend" msgstr "" #: lib/pychess/Players/Human.py:275 #, python-format msgid "%s was withdrawn by your opponent" msgstr "" #: lib/pychess/Players/Human.py:276 msgid "Your opponent seems to have changed their mind." msgstr "" #: lib/pychess/Players/Human.py:290 #, python-format msgid "Unable to accept %s" msgstr "Kunde inte acceptera %s" #: lib/pychess/Players/Human.py:291 msgid "Probably because it has been withdrawn." msgstr "" #: lib/pychess/Players/Human.py:298 #, python-format msgid "%s returns an error" msgstr "" #: lib/pychess/Savers/chessalpha2.py:12 msgid "Chess Alpha 2 Diagram" msgstr "" #: lib/pychess/Savers/chesspastebin.py:39 msgid "Game shared at " msgstr "" #: lib/pychess/Savers/chesspastebin.py:41 msgid "(Link is available on clipboard.)" msgstr "" #: lib/pychess/Savers/database.py:19 msgid "PyChess database" msgstr "" #: lib/pychess/Savers/epd.py:12 msgid "Chess Position" msgstr "" #: lib/pychess/Savers/fen.py:12 msgid "Simple Chess Position" msgstr "" #: lib/pychess/Savers/fen.py:44 lib/pychess/Savers/pgn.py:329 msgid "The game can't be loaded, because of an error parsing FEN" msgstr "" #: lib/pychess/Savers/pgnbase.py:100 #, python-format msgid "" "The game can't be read to end, because of an error parsing move %(moveno)s " "'%(notation)s'." msgstr "" #: lib/pychess/Savers/pgnbase.py:102 #, python-format msgid "The move failed because %s." msgstr "" #: lib/pychess/Savers/pgnbase.py:110 #, python-format msgid "Error parsing move %(moveno)s %(mstr)s" msgstr "" #: lib/pychess/Savers/pgn.py:28 msgid "Chess Game" msgstr "Shack spel" #: lib/pychess/Savers/pgn.py:362 msgid "Invalid move." msgstr "" #: lib/pychess/Savers/png.py:15 msgid "Png image" msgstr "" #: lib/pychess/System/ping.py:31 msgid "Destination Host Unreachable" msgstr "" #: lib/pychess/System/ping.py:74 msgid "Died" msgstr "" #: lib/pychess/Utils/GameModel.py:147 msgid "Local Event" msgstr "Lokal händelse" #: lib/pychess/Utils/GameModel.py:148 msgid "Local Site" msgstr "Lokal sida" #: lib/pychess/Utils/repr.py:12 msgid "Pawn" msgstr "" #: lib/pychess/Utils/repr.py:14 msgid "P" msgstr "P" #: lib/pychess/Utils/repr.py:14 msgid "N" msgstr "N" #: lib/pychess/Utils/repr.py:14 msgid "R" msgstr "R" #: lib/pychess/Utils/repr.py:14 msgid "Q" msgstr "Q" #: lib/pychess/Utils/repr.py:14 msgid "K" msgstr "K" #: lib/pychess/Utils/repr.py:17 msgid "The game ended in a draw" msgstr "Spelet slutar oavgjort" #: lib/pychess/Utils/repr.py:18 #, python-format msgid "%(white)s won the game" msgstr "" #: lib/pychess/Utils/repr.py:19 #, python-format msgid "%(black)s won the game" msgstr "" #: lib/pychess/Utils/repr.py:20 msgid "The game has been killed" msgstr "" #: lib/pychess/Utils/repr.py:21 msgid "The game has been adjourned" msgstr "Partiet har skjutits upp" #: lib/pychess/Utils/repr.py:22 msgid "The game has been aborted" msgstr "Spelet har avbrutits" #: lib/pychess/Utils/repr.py:26 msgid "Because neither player has sufficient material to mate" msgstr "" #: lib/pychess/Utils/repr.py:27 msgid "Because the same position was repeated three times in a row" msgstr "" #: lib/pychess/Utils/repr.py:28 msgid "Because the last 50 moves brought nothing new" msgstr "" #: lib/pychess/Utils/repr.py:29 msgid "Because both players ran out of time" msgstr "" #: lib/pychess/Utils/repr.py:30 #, python-format msgid "Because %(mover)s stalemated" msgstr "" #: lib/pychess/Utils/repr.py:31 msgid "Because both players agreed to a draw" msgstr "" #: lib/pychess/Utils/repr.py:32 lib/pychess/Utils/repr.py:42 msgid "Because of adjudication by an admin" msgstr "" #: lib/pychess/Utils/repr.py:33 msgid "Because the game exceed the max length" msgstr "" #: lib/pychess/Utils/repr.py:34 #, python-format msgid "" "Because %(white)s ran out of time and %(black)s has insufficient material to" " mate" msgstr "" #: lib/pychess/Utils/repr.py:35 #, python-format msgid "" "Because %(black)s ran out of time and %(white)s has insufficient material to" " mate" msgstr "" #: lib/pychess/Utils/repr.py:36 msgid "Because both players have the same amount of pieces" msgstr "" #: lib/pychess/Utils/repr.py:38 #, python-format msgid "Because %(loser)s resigned" msgstr "" #: lib/pychess/Utils/repr.py:39 #, python-format msgid "Because %(loser)s ran out of time" msgstr "" #: lib/pychess/Utils/repr.py:40 #, python-format msgid "Because %(loser)s was checkmated" msgstr "" #: lib/pychess/Utils/repr.py:41 #, python-format msgid "Because %(loser)s disconnected" msgstr "" #: lib/pychess/Utils/repr.py:43 #, python-format msgid "Because %(winner)s has fewer pieces" msgstr "" #: lib/pychess/Utils/repr.py:44 #, python-format msgid "Because %(winner)s lost all pieces" msgstr "" #: lib/pychess/Utils/repr.py:45 #, python-format msgid "Because %(loser)s king exploded" msgstr "" #: lib/pychess/Utils/repr.py:46 #, python-format msgid "Because %(winner)s king reached the center" msgstr "" #: lib/pychess/Utils/repr.py:47 #, python-format msgid "Because %(winner)s was giving check 3 times" msgstr "" #: lib/pychess/Utils/repr.py:49 msgid "Because a player lost connection" msgstr "" #: lib/pychess/Utils/repr.py:50 msgid "Because both players agreed to an adjournment" msgstr "" #: lib/pychess/Utils/repr.py:51 msgid "Because the server was shut down" msgstr "" #: lib/pychess/Utils/repr.py:52 msgid "" "Because a player lost connection and the other player requested adjournment" msgstr "" #: lib/pychess/Utils/repr.py:53 #, python-format msgid "" "Because %(black)s lost connection to the server and %(white)s requested " "adjournment" msgstr "" #: lib/pychess/Utils/repr.py:54 #, python-format msgid "" "Because %(white)s lost connection to the server and %(black)s requested " "adjournment" msgstr "" #: lib/pychess/Utils/repr.py:55 #, python-format msgid "Because %(white)s lost connection to the server" msgstr "" #: lib/pychess/Utils/repr.py:56 #, python-format msgid "Because %(black)s lost connection to the server" msgstr "" #: lib/pychess/Utils/repr.py:58 msgid "Because of adjudication by an admin. No rating changes have occurred." msgstr "" #: lib/pychess/Utils/repr.py:59 msgid "" "Because both players agreed to abort the game. No rating changes have " "occurred." msgstr "" #: lib/pychess/Utils/repr.py:60 msgid "Because of courtesy by a player. No rating changes have occurred." msgstr "" #: lib/pychess/Utils/repr.py:61 msgid "" "Because a player aborted the game. Either player can abort the game without " "the other's consent before the second move. No rating changes have occurred." msgstr "" #: lib/pychess/Utils/repr.py:62 msgid "" "Because a player disconnected and there are too few moves to warrant " "adjournment. No rating changes have occurred." msgstr "" #: lib/pychess/Utils/repr.py:63 msgid "Because the server was shut down. No rating changes have occurred." msgstr "" #: lib/pychess/Utils/repr.py:65 #, python-format msgid "Because the %(white)s engine died" msgstr "" #: lib/pychess/Utils/repr.py:66 #, python-format msgid "Because the %(black)s engine died" msgstr "" #: lib/pychess/Utils/repr.py:67 msgid "Because the connection to the server was lost" msgstr "" #: lib/pychess/Utils/repr.py:68 msgid "The reason is unknown" msgstr "" #: lib/pychess/Utils/TimeModel.py:229 msgid "min" msgstr "" #: lib/pychess/Utils/TimeModel.py:231 msgid "sec" msgstr "" #: lib/pychess/Variants/asean.py:12 msgid "" "ASEAN: http://www.ncf-" "phil.org/downloadables/2014/May/Asean_chess/Laws_of_ASEAN_Chess_2011_Nov_26.doc" msgstr "" #: lib/pychess/Variants/asean.py:13 msgid "ASEAN" msgstr "" #: lib/pychess/Variants/asean.py:33 msgid "Makruk: http://en.wikipedia.org/wiki/Makruk" msgstr "" #: lib/pychess/Variants/asean.py:34 msgid "Makruk" msgstr "" #: lib/pychess/Variants/asean.py:60 msgid "Cambodian: http://www.khmerinstitute.org/culture/ok.html" msgstr "" #: lib/pychess/Variants/asean.py:61 msgid "Cambodian" msgstr "" #: lib/pychess/Variants/asean.py:86 msgid "" "Ai-Wok: http://www.open-" "aurec.com/wbforum/viewtopic.php?p=199364&sid=20963a1de2c164050de019e5ed6bf7c4#p199364" msgstr "" #: lib/pychess/Variants/asean.py:87 msgid "Ai-Wok" msgstr "" #: lib/pychess/Variants/asean.py:111 msgid "Sittuyin: http://en.wikipedia.org/wiki/Sittuyin" msgstr "" #: lib/pychess/Variants/asean.py:112 msgid "Sittuyin" msgstr "" #: lib/pychess/Variants/asymmetricrandom.py:12 msgid "" "FICS wild/4: http://www.freechess.org/Help/HelpFiles/wild.html\n" "* Randomly chosen pieces (two queens or three rooks possible)\n" "* Exactly one king of each color\n" "* Pieces placed randomly behind the pawns, SUBJECT TO THE CONSTRAINT THAT THE BISHOPS ARE BALANCED\n" "* No castling\n" "* Black's arrangement DOES NOT mirrors white's" msgstr "" #: lib/pychess/Variants/asymmetricrandom.py:18 msgid "Asymmetric Random" msgstr "" #: lib/pychess/Variants/atomic.py:14 msgid "FICS atomic: http://www.freechess.org/Help/HelpFiles/atomic.html" msgstr "" #: lib/pychess/Variants/blindfold.py:7 msgid "" "Classic chess rules with hidden figurines\n" "http://en.wikipedia.org/wiki/Blindfold_chess" msgstr "" #: lib/pychess/Variants/blindfold.py:9 #: lib/pychess/widgets/newGameDialog.py:264 msgid "Blindfold" msgstr "" #: lib/pychess/Variants/blindfold.py:18 msgid "" "Classic chess rules with hidden pawns\n" "http://en.wikipedia.org/wiki/Blindfold_chess" msgstr "" #: lib/pychess/Variants/blindfold.py:20 msgid "Hidden pawns" msgstr "" #: lib/pychess/Variants/blindfold.py:29 msgid "" "Classic chess rules with hidden pieces\n" "http://en.wikipedia.org/wiki/Blindfold_chess" msgstr "" #: lib/pychess/Variants/blindfold.py:31 msgid "Hidden pieces" msgstr "" #: lib/pychess/Variants/blindfold.py:40 msgid "" "Classic chess rules with all pieces white\n" "http://en.wikipedia.org/wiki/Blindfold_chess" msgstr "" #: lib/pychess/Variants/blindfold.py:42 msgid "All white" msgstr "" #: lib/pychess/Variants/bughouse.py:8 msgid "FICS bughouse: http://www.freechess.org/Help/HelpFiles/bughouse.html" msgstr "" #: lib/pychess/Variants/corner.py:12 msgid "" "http://brainking.com/en/GameRules?tp=2\n" "* Placement of the pieces on the 1st and 8th row are randomized\n" "* The king is in the right hand corner\n" "* Bishops must start on opposite color squares\n" "* Black's starting position is obtained by rotating white's position 180 degrees around the board's center\n" "* No castling" msgstr "" #: lib/pychess/Variants/corner.py:18 msgid "Corner" msgstr "" #: lib/pychess/Variants/crazyhouse.py:8 msgid "" "FICS crazyhouse: http://www.freechess.org/Help/HelpFiles/crazyhouse.html" msgstr "" #: lib/pychess/Variants/euroshogi.py:9 msgid "EuroShogi: http://en.wikipedia.org/wiki/EuroShogi" msgstr "" #: lib/pychess/Variants/euroshogi.py:10 msgid "EuroShogi" msgstr "" #: lib/pychess/Variants/fischerandom.py:18 msgid "" "http://en.wikipedia.org/wiki/Chess960\n" "FICS wild/fr: http://www.freechess.org/Help/HelpFiles/wild.html" msgstr "" #: lib/pychess/Variants/fischerandom.py:20 msgid "Fischer Random" msgstr "" #: lib/pychess/Variants/kingofthehill.py:8 msgid "" "Bringing your king legally to the center (e4, d4, e5, d5) instantly wins the game!\n" "Normal rules apply in other cases and checkmate also ends the game." msgstr "" #: lib/pychess/Variants/kingofthehill.py:10 msgid "King of the hill" msgstr "" #: lib/pychess/Variants/knightodds.py:8 msgid "One player starts with one less knight piece" msgstr "" #: lib/pychess/Variants/knightodds.py:9 msgid "Knight odds" msgstr "" #: lib/pychess/Variants/losers.py:8 msgid "FICS losers: http://www.freechess.org/Help/HelpFiles/losers_chess.html" msgstr "" #: lib/pychess/Variants/normal.py:4 msgid "" "Classic chess rules\n" "http://en.wikipedia.org/wiki/Chess" msgstr "" #: lib/pychess/Variants/normal.py:6 lib/pychess/widgets/newGameDialog.py:157 msgid "Normal" msgstr "Normal" #: lib/pychess/Variants/pawnodds.py:8 msgid "One player starts with one less pawn piece" msgstr "" #: lib/pychess/Variants/pawnodds.py:9 msgid "Pawn odds" msgstr "" #: lib/pychess/Variants/pawnspassed.py:11 msgid "" "FICS wild/8a: http://www.freechess.org/Help/HelpFiles/wild.html\n" "White pawns start on 5th rank and black pawns on the 4th rank" msgstr "" #: lib/pychess/Variants/pawnspassed.py:13 msgid "Pawns Passed" msgstr "" #: lib/pychess/Variants/pawnspushed.py:10 msgid "" "FICS wild/8: http://www.freechess.org/Help/HelpFiles/wild.html\n" "Pawns start on 4th and 5th ranks rather than 2nd and 7th" msgstr "" #: lib/pychess/Variants/pawnspushed.py:12 msgid "Pawns Pushed" msgstr "" #: lib/pychess/Variants/queenodds.py:8 msgid "One player starts with one less queen piece" msgstr "" #: lib/pychess/Variants/queenodds.py:9 msgid "Queen odds" msgstr "" #: lib/pychess/Variants/randomchess.py:11 msgid "" "FICS wild/3: http://www.freechess.org/Help/HelpFiles/wild.html\n" "* Randomly chosen pieces (two queens or three rooks possible)\n" "* Exactly one king of each color\n" "* Pieces placed randomly behind the pawns\n" "* No castling\n" "* Black's arrangement mirrors white's" msgstr "" #: lib/pychess/Variants/randomchess.py:17 #: lib/pychess/widgets/TaskerManager.py:155 msgid "Random" msgstr "" #: lib/pychess/Variants/rookodds.py:8 msgid "One player starts with one less rook piece" msgstr "" #: lib/pychess/Variants/rookodds.py:9 msgid "Rook odds" msgstr "" #: lib/pychess/Variants/shuffle.py:11 msgid "" "xboard nocastle: http://home.hccnet.nl/h.g.muller/engine-intf.html#8\n" "FICS wild/2: http://www.freechess.org/Help/HelpFiles/wild.html\n" "* Random arrangement of the pieces behind the pawns\n" "* No castling\n" "* Black's arrangement mirrors white's" msgstr "" #: lib/pychess/Variants/suicide.py:11 msgid "" "FICS suicide: http://www.freechess.org/Help/HelpFiles/suicide_chess.html" msgstr "" #: lib/pychess/Variants/theban.py:10 msgid "" "Variant developed by Kai Laskos: " "http://talkchess.com/forum/viewtopic.php?t=40990" msgstr "" #: lib/pychess/Variants/theban.py:11 msgid "Theban" msgstr "" #: lib/pychess/Variants/threecheck.py:10 msgid "Win by giving check 3 times" msgstr "" #: lib/pychess/Variants/threecheck.py:11 msgid "Three-check" msgstr "" #: lib/pychess/Variants/upsidedown.py:10 msgid "" "FICS wild/5: http://www.freechess.org/Help/HelpFiles/wild.html\n" "http://en.wikipedia.org/wiki/Chess_variant#Chess_with_different_starting_positions\n" "Pawns start on their 7th rank rather than their 2nd rank!" msgstr "" #: lib/pychess/Variants/upsidedown.py:13 msgid "Upside Down" msgstr "" #: lib/pychess/Variants/wildcastle.py:10 msgid "" "xboard wildcastle http://home.hccnet.nl/h.g.muller/engine-intf.html#8\n" "FICS wild/0: http://www.freechess.org/Help/HelpFiles/wild.html\n" "* White has the typical set-up at the start.\n" "* Black's pieces are the same, except that the King and Queen are reversed,\n" "* so they are not on the same files as White's King and Queen.\n" "* Castling is done similarly to normal chess:\n" "* o-o-o indicates long castling and o-o short castling." msgstr "" #: lib/pychess/Variants/wildcastle.py:17 msgid "Wildcastle" msgstr "" #: lib/pychess/Variants/wildcastleshuffle.py:11 msgid "" "xboard wildcastle http://home.hccnet.nl/h.g.muller/engine-intf.html#8\n" "FICS wild/1: http://www.freechess.org/Help/HelpFiles/wild.html\n" "* In this variant both sides have the same set of pieces as in normal chess.\n" "* The white king starts on d1 or e1 and the black king starts on d8 or e8,\n" "* and the rooks are in their usual positions.\n" "* Bishops are always on opposite colors.\n" "* Subject to these constraints the position of the pieces on their first ranks is random.\n" "* Castling is done similarly to normal chess:\n" "* o-o-o indicates long castling and o-o short castling." msgstr "" #: lib/pychess/Variants/wildcastleshuffle.py:20 msgid "Wildcastle shuffle" msgstr "" #: lib/pychess/widgets/analyzegameDialog.py:85 msgid "Game analyzing in progress..." msgstr "" #: lib/pychess/widgets/analyzegameDialog.py:86 msgid "Do you want to abort it?" msgstr "" #: lib/pychess/widgets/analyzegameDialog.py:95 #: lib/pychess/widgets/gamewidget.py:202 lib/pychess/widgets/gamewidget.py:320 msgid "Abort" msgstr "" #: lib/pychess/widgets/ChatView.py:125 msgid "Observers" msgstr "" #: lib/pychess/widgets/ChatWindow.py:222 msgid "You have opened no conversations yet" msgstr "" #: lib/pychess/widgets/ChatWindow.py:254 msgid "Only registered users may talk to this channel" msgstr "" #: lib/pychess/widgets/ChatWindow.py:312 msgid "No conversation's selected" msgstr "" #: lib/pychess/widgets/ChatWindow.py:350 msgid "Loading player data" msgstr "" #: lib/pychess/widgets/ChatWindow.py:400 msgid "Receiving list of players" msgstr "" #: lib/pychess/widgets/ChatWindow.py:518 msgid "Friends" msgstr "" #: lib/pychess/widgets/ChatWindow.py:529 msgid "Admin" msgstr "" #: lib/pychess/widgets/ChatWindow.py:540 msgid "More channels" msgstr "" #: lib/pychess/widgets/ChatWindow.py:548 msgid "More players" msgstr "" #: lib/pychess/widgets/ChatWindow.py:558 msgid "Computers" msgstr "" #: lib/pychess/widgets/ChatWindow.py:568 msgid "BlindFold" msgstr "" #: lib/pychess/widgets/ChatWindow.py:578 msgid "Guests" msgstr "" #: lib/pychess/widgets/ChatWindow.py:805 msgid "Conversations" msgstr "" #: lib/pychess/widgets/ChatWindow.py:807 msgid "Conversation info" msgstr "" #: lib/pychess/widgets/enginesDialog.py:152 msgid "Select engine" msgstr "" #: lib/pychess/widgets/enginesDialog.py:156 msgid "Executable files" msgstr "" #: lib/pychess/widgets/enginesDialog.py:176 #: lib/pychess/widgets/enginesDialog.py:210 #: lib/pychess/widgets/enginesDialog.py:235 #, python-format msgid "Unable to add %s" msgstr "" #: lib/pychess/widgets/enginesDialog.py:177 msgid "wine not installed" msgstr "" #: lib/pychess/widgets/enginesDialog.py:211 #: lib/pychess/widgets/enginesDialog.py:236 msgid "There is something wrong with this executable" msgstr "" #: lib/pychess/widgets/enginesDialog.py:266 msgid "Select working directory" msgstr "" #: lib/pychess/widgets/gamenanny.py:115 #, python-format msgid " invalid engine move: %s" msgstr "" #: lib/pychess/widgets/gamenanny.py:134 msgid "Offer Rematch" msgstr "" #: lib/pychess/widgets/gamenanny.py:136 lib/pychess/widgets/gamenanny.py:147 #, python-format msgid "Observe %s" msgstr "" #: lib/pychess/widgets/gamenanny.py:168 msgid "Play Rematch" msgstr "" #: lib/pychess/widgets/gamenanny.py:171 msgid "Undo one move" msgstr "" #: lib/pychess/widgets/gamenanny.py:173 msgid "Undo two moves" msgstr "" #: lib/pychess/widgets/gamenanny.py:203 msgid "The game is paused" msgstr "" #: lib/pychess/widgets/gamenanny.py:221 lib/pychess/widgets/gamenanny.py:222 msgid "Loaded game" msgstr "Ladda spel" #: lib/pychess/widgets/gamenanny.py:228 msgid "Saved game" msgstr "Spara spel" #: lib/pychess/widgets/gamenanny.py:232 msgid "Analyzer started" msgstr "" #: lib/pychess/widgets/gamenanny.py:281 msgid "You sent an abort offer" msgstr "" #: lib/pychess/widgets/gamenanny.py:283 msgid "You sent an adjournment offer" msgstr "" #: lib/pychess/widgets/gamenanny.py:285 msgid "You sent a draw offer" msgstr "du skickade ett lika erbjudande" #: lib/pychess/widgets/gamenanny.py:287 msgid "You sent a pause offer" msgstr "" #: lib/pychess/widgets/gamenanny.py:289 msgid "You sent a resume offer" msgstr "" #: lib/pychess/widgets/gamenanny.py:291 msgid "You sent an undo offer" msgstr "" #: lib/pychess/widgets/gamenanny.py:293 msgid "You asked your opponent to move" msgstr "" #: lib/pychess/widgets/gamenanny.py:305 #, python-format msgid "Engine, %s, has died" msgstr "Motor, %s, har dött" #: lib/pychess/widgets/gamenanny.py:306 msgid "" "PyChess has lost connection to the engine, probably because it has died.\n" "\n" "You can try to start a new game with the engine, or try to play against another one." msgstr "" #: lib/pychess/widgets/gamewidget.py:204 msgid "" "This game can be automatically aborted without rating loss because there has" " not yet been two moves made" msgstr "" #: lib/pychess/widgets/gamewidget.py:206 msgid "Offer Abort" msgstr "" #: lib/pychess/widgets/gamewidget.py:208 msgid "" "Your opponent must agree to abort the game because there has been two or " "more moves made" msgstr "" #: lib/pychess/widgets/gamewidget.py:226 msgid "This game can not be adjourned because one or both players are guests" msgstr "" #: lib/pychess/widgets/gamewidget.py:243 msgid "Claim Draw" msgstr "" #: lib/pychess/widgets/gamewidget.py:325 msgid "Pause" msgstr "" #: lib/pychess/widgets/gamewidget.py:326 msgid "Resume" msgstr "" #: lib/pychess/widgets/gamewidget.py:328 msgid "Offer Pause" msgstr "" #: lib/pychess/widgets/gamewidget.py:329 msgid "Offer Resume" msgstr "" #: lib/pychess/widgets/gamewidget.py:333 msgid "Undo" msgstr "" #: lib/pychess/widgets/gamewidget.py:335 msgid "Offer Undo" msgstr "" #: lib/pychess/widgets/gamewidget.py:550 msgid " has lagged for 30 seconds" msgstr "" #: lib/pychess/widgets/gamewidget.py:566 msgid " is lagging heavily but hasn't disconnected" msgstr "" #: lib/pychess/widgets/gamewidget.py:567 msgid "Continue to wait for opponent, or try to adjourn the game?" msgstr "" #: lib/pychess/widgets/gamewidget.py:575 msgid "Wait" msgstr "" #: lib/pychess/widgets/gamewidget.py:576 msgid "Adjourn" msgstr "" #: lib/pychess/widgets/gamewidget.py:648 msgid "Jump to initial position" msgstr "" #: lib/pychess/widgets/gamewidget.py:653 msgid "Step back one move" msgstr "" #: lib/pychess/widgets/gamewidget.py:658 msgid "Go back to the main line" msgstr "" #: lib/pychess/widgets/gamewidget.py:664 msgid "Step forward one move" msgstr "" #: lib/pychess/widgets/gamewidget.py:669 msgid "Jump to latest position" msgstr "" #: lib/pychess/widgets/gamewidget.py:903 msgid "PyChess was unable to load your panel settings" msgstr "" #: lib/pychess/widgets/gamewidget.py:904 msgid "" "Your panel settings have been reset. If this problem repeats, you should " "report it to the developers" msgstr "" #: lib/pychess/widgets/ionest.py:67 lib/pychess/widgets/newGameDialog.py:389 #: lib/pychess/widgets/TaskerManager.py:210 msgid "You" msgstr "" #: lib/pychess/widgets/ionest.py:70 lib/pychess/widgets/newGameDialog.py:390 #: lib/pychess/widgets/preferencesDialog.py:61 #: lib/pychess/widgets/TaskerManager.py:213 msgid "Guest" msgstr "Gäst" #: lib/pychess/widgets/ionest.py:93 msgid "Error loading game" msgstr "" #: lib/pychess/widgets/ionest.py:127 lib/pychess/widgets/newGameDialog.py:480 msgid "Open Game" msgstr "Öppna spel" #: lib/pychess/widgets/ionest.py:137 msgid "All Files" msgstr "Alla filer" #: lib/pychess/widgets/ionest.py:140 msgid "Detect type automatically" msgstr "Identifiera typ automatiskt" #: lib/pychess/widgets/ionest.py:146 msgid "All Chess Files" msgstr "Alla shack filer" #: lib/pychess/widgets/ionest.py:228 msgid "Save Game" msgstr "Spara spel" #: lib/pychess/widgets/ionest.py:228 msgid "Export position" msgstr "" #: lib/pychess/widgets/ionest.py:232 lib/pychess/widgets/ionest.py:360 msgid "vs." msgstr "" #: lib/pychess/widgets/ionest.py:249 #, python-format msgid "Unknown file type '%s'" msgstr "Okänd filtyp '%s'" #: lib/pychess/widgets/ionest.py:250 #, python-format msgid "" "Was unable to save '%(uri)s' as PyChess doesn't know the format " "'%(ending)s'." msgstr "" #: lib/pychess/widgets/ionest.py:266 #, python-format msgid "Unable to save file '%s'" msgstr "Kunde inte spara filen '%s'" #: lib/pychess/widgets/ionest.py:268 msgid "" "You don't have the necessary rights to save the file.\n" "Please ensure that you have given the right path and try again." msgstr "" #: lib/pychess/widgets/ionest.py:276 msgid "_Replace" msgstr "_Ersätt" #: lib/pychess/widgets/ionest.py:280 msgid "File exists" msgstr "Filen existerar" #: lib/pychess/widgets/ionest.py:282 #, python-format msgid "" "A file named '%s' already exists. Would you like to replace " "it?" msgstr "En fil med namnet '%s' existerar redan. Vill du ersätta den?" #: lib/pychess/widgets/ionest.py:283 #, python-format msgid "" "The file already exists in '%s'. If you replace it, its content will be " "overwritten." msgstr "Filen existerar redan i '%s'. Om du ersätter den så kommer innehållet att bli överskrivet." #: lib/pychess/widgets/ionest.py:299 msgid "Could not save the file" msgstr "Kunde inte spara filen" #: lib/pychess/widgets/ionest.py:300 msgid "PyChess was not able to save the game" msgstr "PyChess kunde inte spara spelet" #: lib/pychess/widgets/ionest.py:301 #, python-format msgid "The error was: %s" msgstr "Felet var: %s" #: lib/pychess/widgets/ionest.py:325 #, python-format msgid "There is %d game with unsaved moves." msgid_plural "There are %d games with unsaved moves." msgstr[0] "" msgstr[1] "" #: lib/pychess/widgets/ionest.py:328 msgid "Save moves before closing?" msgstr "" #: lib/pychess/widgets/ionest.py:339 msgid "Unable to save to configured file. Save the games before closing?" msgstr "" #: lib/pychess/widgets/ionest.py:366 #, python-format msgid "_Save %d document" msgid_plural "_Save %d documents" msgstr[0] "" msgstr[1] "" #: lib/pychess/widgets/ionest.py:412 msgid "Save the current game before you close it?" msgstr "" #: lib/pychess/widgets/ionest.py:420 msgid "" "Unable to save to configured file. Save the current game before you close " "it?" msgstr "" #: lib/pychess/widgets/ionest.py:434 msgid "" "It is not possible later to continue the game,\n" "if you don't save it." msgstr "" #: lib/pychess/widgets/LogDialog.py:26 msgid "PyChess Information Window" msgstr "" #: lib/pychess/widgets/LogDialog.py:184 lib/pychess/widgets/LogDialog.py:188 msgid "of" msgstr "" #: lib/pychess/widgets/newGameDialog.py:84 #: lib/pychess/widgets/newGameDialog.py:85 msgid "Human Being" msgstr "Människa" #: lib/pychess/widgets/newGameDialog.py:155 msgid "Rapid" msgstr "" #: lib/pychess/widgets/newGameDialog.py:224 msgid "Minutes:" msgstr "Minuter:" #: lib/pychess/widgets/newGameDialog.py:228 msgid "Gain:" msgstr "Förstärkning" #: lib/pychess/widgets/newGameDialog.py:241 #, python-format msgid "%(name)s %(minutes)d min + %(gain)d sec/move" msgstr "" #: lib/pychess/widgets/newGameDialog.py:244 #, python-format msgid "%(name)s %(minutes)d min %(gain)d sec/move" msgstr "" #: lib/pychess/widgets/newGameDialog.py:247 #, python-format msgid "%(name)s %(minutes)d min" msgstr "" #: lib/pychess/widgets/newGameDialog.py:265 msgid "Odds" msgstr "" #: lib/pychess/widgets/newGameDialog.py:269 msgid "Asian variants" msgstr "" #: lib/pychess/widgets/newGameDialog.py:301 msgid " chess" msgstr "" #: lib/pychess/widgets/newGameDialog.py:682 msgid "Type or paste PGN game or FEN positions here" msgstr "" #: lib/pychess/widgets/newGameDialog.py:725 msgid "Enter Game" msgstr "Gå in i spel" #: lib/pychess/widgets/preferencesDialog.py:123 msgid "Select book file" msgstr "" #: lib/pychess/widgets/preferencesDialog.py:128 msgid "Opening books" msgstr "" #: lib/pychess/widgets/preferencesDialog.py:156 msgid "Select Gaviota TB path" msgstr "" #: lib/pychess/widgets/preferencesDialog.py:331 msgid "Open Sound File" msgstr "Öppna ljudfil" #: lib/pychess/widgets/preferencesDialog.py:341 msgid "Sound files" msgstr "" #: lib/pychess/widgets/preferencesDialog.py:485 msgid "Undescribed panel" msgstr "" #: lib/pychess/widgets/preferencesDialog.py:678 msgid "Select auto save path" msgstr "" #: lib/pychess/widgets/tipOfTheDay.py:51 msgid "" "You can start a new game by Game > New Game, in New Game " "window do you can choose Players, Time Control and Chess " "Variants." msgstr "" #: lib/pychess/widgets/tipOfTheDay.py:52 msgid "" "You can choose from 20 different difficulties to play against the computer." msgstr "" #: lib/pychess/widgets/tipOfTheDay.py:53 msgid "" "Chess Variants are like the pieces of the last line will be placed on the " "board." msgstr "" #: lib/pychess/widgets/tipOfTheDay.py:54 msgid "" "To save a game Game > Save Game As, give the filename and " "choose where you want to be saved. At the bottom choose extension type of " "the file, and Save." msgstr "" #: lib/pychess/widgets/tipOfTheDay.py:55 msgid "" "Do you know that you can call flag when the clock is with you, " "Actions > Call Flag." msgstr "" #: lib/pychess/widgets/tipOfTheDay.py:56 msgid "Pressing Ctrl+Z to offer opponent the possible rollback moves." msgstr "" #: lib/pychess/widgets/tipOfTheDay.py:57 msgid "" "To play on Fullscreen mode, just type F11. Coming back, F11 " "again." msgstr "" #: lib/pychess/widgets/tipOfTheDay.py:58 msgid "Hint mode analyzing your game, enable this type Ctrl+H." msgstr "" #: lib/pychess/widgets/tipOfTheDay.py:59 msgid "" "Spy mode analyzing the oponnent game, enable this type Ctrl+Y." msgstr "" #: lib/pychess/widgets/tipOfTheDay.py:60 msgid "" "You can play chess listening to the sounds of the game, for that, " "Settings > Preferences > Sound tab, enable Use " "sounds in PyChess and choose your preferred sounds." msgstr "" #: lib/pychess/widgets/tipOfTheDay.py:61 msgid "" "Do you know that you can help translate Pychess in your language, " "Help > Translate Pychess." msgstr "" #: lib/pychess/widgets/tipOfTheDay.py:62 msgid "" "Do you know that it is possible to finish a chess game in just 2 turns?" msgstr "" #: lib/pychess/widgets/tipOfTheDay.py:63 msgid "" "Do you know that the number of possible chess games exceeds the number of " "atoms in the Universe?" msgstr "" #: lib/pychess/ic/managers/ChatManager.py:184 msgid "Shout" msgstr "" #: lib/pychess/ic/managers/ChatManager.py:185 msgid "Chess Shout" msgstr "" #: lib/pychess/ic/managers/ChatManager.py:195 #, python-format msgid "Unofficial channel %d" msgstr "" #: lib/pychess/Utils/lutils/LBoard.py:152 #, python-format msgid "" "FEN needs 6 data fields. \n" "\n" "%s" msgstr "" #: lib/pychess/Utils/lutils/LBoard.py:154 #, python-format msgid "" "FEN needs at least 2 data fields in fenstr. \n" "\n" "%s" msgstr "" #: lib/pychess/Utils/lutils/LBoard.py:175 #, python-format msgid "" "Needs 7 slashes in piece placement field. \n" "\n" "%s" msgstr "" #: lib/pychess/Utils/lutils/LBoard.py:178 #, python-format msgid "" "Active color field must be one of w or b. \n" "\n" "%s" msgstr "" #: lib/pychess/Utils/lutils/LBoard.py:189 #, python-format msgid "" "Castling availability field is not legal. \n" "\n" "%s" msgstr "" #: lib/pychess/Utils/lutils/LBoard.py:192 #, python-format msgid "" "En passant cord is not legal. \n" "\n" "%s" msgstr "" #: lib/pychess/Utils/lutils/lmove.py:260 msgid "invalid promoted piece" msgstr "" #: lib/pychess/Utils/lutils/lmove.py:272 msgid "the move needs a piece and a cord" msgstr "" #: lib/pychess/Utils/lutils/lmove.py:306 lib/pychess/Utils/lutils/lmove.py:556 msgid "promotion move without promoted piece is incorrect" msgstr "" #: lib/pychess/Utils/lutils/lmove.py:312 #, python-format msgid "the captured cord (%s) is incorrect" msgstr "" #: lib/pychess/Utils/lutils/lmove.py:323 #, python-format msgid "the end cord (%s) is incorrect" msgstr "" #: lib/pychess/Utils/lutils/strateval.py:24 sidepanel/commentPanel.py:191 #: sidepanel/commentPanel.py:208 msgid "and" msgstr "" #: lib/pychess/Utils/lutils/strateval.py:43 msgid "draws" msgstr "drag" #: lib/pychess/Utils/lutils/strateval.py:45 msgid "mates" msgstr "" #: lib/pychess/Utils/lutils/strateval.py:49 msgid "puts opponent in check" msgstr "" #: lib/pychess/Utils/lutils/strateval.py:73 msgid "improves king safety" msgstr "" #: lib/pychess/Utils/lutils/strateval.py:75 msgid "slightly improves king safety" msgstr "" #: lib/pychess/Utils/lutils/strateval.py:108 msgid "moves a rook to an open file" msgstr "" #: lib/pychess/Utils/lutils/strateval.py:109 msgid "moves an rook to a half-open file" msgstr "" #: lib/pychess/Utils/lutils/strateval.py:119 #: lib/pychess/Utils/lutils/strateval.py:121 #: lib/pychess/Utils/lutils/strateval.py:124 #: lib/pychess/Utils/lutils/strateval.py:126 #, python-format msgid "moves bishop into fianchetto: %s" msgstr "" #: lib/pychess/Utils/lutils/strateval.py:132 #, python-format msgid "promotes a Pawn to a %s" msgstr "befordra en Bonde till en %s" #: lib/pychess/Utils/lutils/strateval.py:135 msgid "castles" msgstr "slott" #: lib/pychess/Utils/lutils/strateval.py:158 msgid "takes back material" msgstr "" #: lib/pychess/Utils/lutils/strateval.py:162 #: lib/pychess/Utils/lutils/strateval.py:170 msgid "sacrifies material" msgstr "" #: lib/pychess/Utils/lutils/strateval.py:164 msgid "exchanges material" msgstr "" #: lib/pychess/Utils/lutils/strateval.py:166 msgid "captures material" msgstr "" #: lib/pychess/Utils/lutils/strateval.py:291 #, python-format msgid "rescues a %s" msgstr "" #: lib/pychess/Utils/lutils/strateval.py:294 #, python-format msgid "threatens to win material by %s" msgstr "" #: lib/pychess/Utils/lutils/strateval.py:296 #, python-format msgid "increases the pressure on %s" msgstr "" #: lib/pychess/Utils/lutils/strateval.py:298 #, python-format msgid "defends %s" msgstr "försvarar %s" #: lib/pychess/Utils/lutils/strateval.py:336 #, python-format msgid "pins an enemy %(oppiece)s on the %(piece)s at %(cord)s" msgstr "" #: lib/pychess/Utils/lutils/strateval.py:369 #, python-format msgid "White has a new piece in outpost: %s" msgstr "" #: lib/pychess/Utils/lutils/strateval.py:377 #, python-format msgid "Black has a new piece in outpost: %s" msgstr "" #: lib/pychess/Utils/lutils/strateval.py:416 #, python-format msgid "%(color)s has a new passed pawn on %(cord)s" msgstr "" #: lib/pychess/Utils/lutils/strateval.py:470 msgid "half-open" msgstr "" #: lib/pychess/Utils/lutils/strateval.py:472 #, python-format msgid "in the %(x)s%(y)s file" msgstr "" #: lib/pychess/Utils/lutils/strateval.py:474 #, python-format msgid "in the %(x)s%(y)s files" msgstr "" #: lib/pychess/Utils/lutils/strateval.py:477 #, python-format msgid "%(color)s got a double pawn %(place)s" msgstr "" #: lib/pychess/Utils/lutils/strateval.py:478 #, python-format msgid "%(color)s got new double pawns %(place)s" msgstr "" #: lib/pychess/Utils/lutils/strateval.py:485 #, python-format msgid "%(color)s got an isolated pawn in the %(x)s file" msgid_plural "%(color)s got isolated pawns in the %(x)s files" msgstr[0] "" msgstr[1] "" #: lib/pychess/Utils/lutils/strateval.py:492 #, python-format msgid "%s moves pawns into stonewall formation" msgstr "" #: lib/pychess/Utils/lutils/strateval.py:507 #: lib/pychess/Utils/lutils/strateval.py:514 #, python-format msgid "%s can no longer castle" msgstr "" #: lib/pychess/Utils/lutils/strateval.py:508 #: lib/pychess/Utils/lutils/strateval.py:515 #, python-format msgid "%s can no longer castle in queenside" msgstr "" #: lib/pychess/Utils/lutils/strateval.py:510 #: lib/pychess/Utils/lutils/strateval.py:517 #, python-format msgid "%s can no longer castle in kingside" msgstr "" #: lib/pychess/Utils/lutils/strateval.py:551 #, python-format msgid "%(opcolor)s has a new trapped bishop on %(cord)s" msgstr "" #: lib/pychess/Utils/lutils/strateval.py:573 #, python-format msgid "develops a pawn: %s" msgstr "" #: lib/pychess/Utils/lutils/strateval.py:574 #, python-format msgid "brings a pawn closer to the backrow: %s" msgstr "" #: lib/pychess/Utils/lutils/strateval.py:591 #, python-format msgid "brings a %(piece)s closer to enemy king: %(cord)s" msgstr "" #: lib/pychess/Utils/lutils/strateval.py:594 #, python-format msgid "develops a %(piece)s: %(cord)s" msgstr "" #: lib/pychess/Utils/lutils/strateval.py:612 #, python-format msgid "places a %(piece)s more active: %(cord)s" msgstr "" #: lib/pychess/Utils/lutils/strateval.py:638 msgid "White should do pawn storm in right" msgstr "" #: lib/pychess/Utils/lutils/strateval.py:640 msgid "Black should do pawn storm in left" msgstr "" #: lib/pychess/Utils/lutils/strateval.py:643 msgid "White should do pawn storm in left" msgstr "" #: lib/pychess/Utils/lutils/strateval.py:645 msgid "Black should do pawn storm in right" msgstr "" #: lib/pychess/Utils/lutils/strateval.py:671 msgid "Black has a rather cramped position" msgstr "" #: lib/pychess/Utils/lutils/strateval.py:673 msgid "Black has a slightly cramped position" msgstr "" #: lib/pychess/Utils/lutils/strateval.py:675 msgid "White has a rather cramped position" msgstr "" #: lib/pychess/Utils/lutils/strateval.py:677 msgid "White has a slightly cramped position" msgstr "" #: sidepanel/annotationPanel.py:26 msgid "Annotation" msgstr "" #: sidepanel/annotationPanel.py:29 msgid "Annotated game" msgstr "" #: sidepanel/annotationPanel.py:236 msgid "Copy PGN" msgstr "" #: sidepanel/annotationPanel.py:249 msgid "Add start comment" msgstr "" #: sidepanel/annotationPanel.py:254 msgid "Add comment" msgstr "" #: sidepanel/annotationPanel.py:258 sidepanel/annotationPanel.py:316 msgid "Edit comment" msgstr "" #: sidepanel/annotationPanel.py:269 msgid "Forced move" msgstr "" #: sidepanel/annotationPanel.py:274 msgid "Add move symbol" msgstr "" #: sidepanel/annotationPanel.py:280 msgid "Unclear position" msgstr "" #: sidepanel/annotationPanel.py:289 msgid "Zugzwang" msgstr "" #: sidepanel/annotationPanel.py:290 msgid "Development adv." msgstr "" #: sidepanel/annotationPanel.py:291 msgid "Initiative" msgstr "" #: sidepanel/annotationPanel.py:292 msgid "With attack" msgstr "" #: sidepanel/annotationPanel.py:293 msgid "Compensation" msgstr "" #: sidepanel/annotationPanel.py:294 msgid "Counterplay" msgstr "" #: sidepanel/annotationPanel.py:295 msgid "Time pressure" msgstr "" #: sidepanel/annotationPanel.py:300 msgid "Add evaluation symbol" msgstr "" #: sidepanel/annotationPanel.py:304 msgid "Remove symbols" msgstr "" #: sidepanel/annotationPanel.py:911 #, python-format msgid "round %s" msgstr "" #: sidepanel/bookPanel.py:21 msgid "Hints" msgstr "" #: sidepanel/bookPanel.py:25 msgid "" "The hint panel will provide computer advice during each stage of the game" msgstr "" #: sidepanel/bookPanel.py:27 msgid "Official PyChess panel." msgstr "" #: sidepanel/bookPanel.py:87 msgid "Opening Book" msgstr "Öppnar bok" #: sidepanel/bookPanel.py:88 msgid "" "The opening book will try to inspire you during the opening phase of the " "game by showing you common moves made by chess masters" msgstr "" #: sidepanel/bookPanel.py:139 #, python-format msgid "Analysis by %s" msgstr "" #: sidepanel/bookPanel.py:140 #, python-format msgid "" "%s will try to predict which move is best and which side has the advantage" msgstr "" #: sidepanel/bookPanel.py:142 #, python-format msgid "Threat analysis by %s" msgstr "" #: sidepanel/bookPanel.py:143 #, python-format msgid "" "%s will identify what threats would exist if it were your opponent's turn to" " move" msgstr "" #: sidepanel/bookPanel.py:159 sidepanel/bookPanel.py:269 msgid "Calculating..." msgstr "" #: sidepanel/bookPanel.py:300 msgid "" "Engine scores are in units of pawns, from White's point of view. Double " "clicking on analysis lines you can insert them into Annotation panel as " "variations." msgstr "" #: sidepanel/bookPanel.py:302 msgid "" "Adding suggestions can help you find ideas, but slows down the computer's " "analysis." msgstr "" #: sidepanel/bookPanel.py:311 msgid "Endgame Table" msgstr "" #: sidepanel/bookPanel.py:315 msgid "" "The endgame table will show exact analysis when there are few pieces on the " "board." msgstr "" #: sidepanel/bookPanel.py:364 sidepanel/bookPanel.py:367 #, python-format msgid "Mate in %d" msgstr "" #: sidepanel/bookPanel.py:554 msgid "" "In this position,\n" "there is no legal move." msgstr "" #: sidepanel/chatPanel.py:21 msgid "" "The chat panel lets you communicate with your opponent during the game, " "assuming he or she is interested" msgstr "" #: sidepanel/commentPanel.py:16 msgid "Comments" msgstr "Kommentarer" #: sidepanel/commentPanel.py:20 msgid "The comments panel will try to analyze and explain the moves played" msgstr "" #: sidepanel/commentPanel.py:121 msgid "Initial position" msgstr "" #: sidepanel/commentPanel.py:254 #, python-format msgid "%(color)s moves a %(piece)s to %(cord)s" msgstr "" #: sidepanel/engineOutputPanel.py:15 msgid "Engines" msgstr "" #: sidepanel/engineOutputPanel.py:20 msgid "" "The engine output panel shows the thinking output of chess engines (computer" " players) during a game" msgstr "" #: sidepanel/engineOutputPanel.py:44 msgid "No chess engines (computer players) are participating in this game." msgstr "" #: sidepanel/historyPanel.py:10 msgid "Move History" msgstr "Drag-historia" #: sidepanel/historyPanel.py:13 msgid "" "The moves sheet keeps track of the players' moves and lets you navigate " "through the game history" msgstr "" #: sidepanel/scorePanel.py:15 msgid "Score" msgstr "Poäng" #: sidepanel/scorePanel.py:19 msgid "" "The score panel tries to evaluate the positions and shows you a graph of the" " game progress" msgstr "" pychess-0.12.2/lang/sv/LC_MESSAGES/pychess.mo0000644000175000017470000001554112653231273020733 0ustar tamasusers00000000000000{h i  '     ! 2 > X g Qt & 7 *% (P y            , D ^ d o v        (*/8A H T^ n{}  #   %06 KU[aTs!5=EK a!       '3JP Xc"i+(u"2)ARa{O&1-B$p    #,;Tk    % 5@Oa jxz       =?CELUZ cn   ^%<Qjnr $'  #) 1 =J Q\ t  ##3D<?*5Zn&k#C2S=D'Fzo"$yj;XrBg K` E_ivW:@qtp/wAHJTsmGP]f+4(1u%[\ c,Mb0QLNeIO{^)h-9a.Y! 3VRl7xd8U>6%s was declined by your opponent'%s' is not a registered namePromote pawn to what?AnalyzingAnimationDate of gameEnter Game NotationGame dataNewsPlay Sound When...PlayersToolsA file named '%s' already exists. Would you like to replace it?Engine, %s, has diedPyChess was not able to save the gameUnable to save file '%s'Unknown file type '%s'A player _moves:About ChessAll Chess FilesAll FilesBBeepBishopBlackBlitzChess GameClockClose _without SavingCommentsConnectingConnection ErrorConnection was closedCould not save the fileDetect type automaticallyEmailEnter GameEvent:File existsGain:Game informationGame is _lost:Game is _won:GuestHuman BeingKKnightLoaded gameLocal EventLocal SiteLog on ErrorLog on as _GuestMinutes:Move HistoryNNameNew GameNo soundNormalOffer _DrawOpen GameOpen Sound FileOpening BookPPingPlayer _RatingPreferencesPromotionPyChess - Connect to Internet ChessPyChess - Internet Chess: FICSQQueenRRatedRatingRookRound:Save GameSave Game _AsSaved gameScoreSelect sound file...Send seekSite:SpentThe error was: %sThe file already exists in '%s'. If you replace it, its content will be overwritten.The game ended in a drawThe game has been abortedThe game has been adjournedTimeTypeUnable to accept %sUnknownUnratedWhiteYou sent a draw offerYour opponent asks you to hurry!Your opponent is not out of time._Accept_Actions_Game_Help_Load Game_Log Viewer_Name:_New Game_Observed moves:_Password:_Replace_Rotate Board_Save Game_Start Game_Use sounds in PyChess_Viewcastlesdefends %sdrawshttp://en.wikipedia.org/wiki/Chesshttp://en.wikipedia.org/wiki/Rules_of_chessonline in totalpromotes a Pawn to a %sProject-Id-Version: pychess Report-Msgid-Bugs-To: POT-Creation-Date: 2016-01-27 13:28+0100 PO-Revision-Date: 2016-01-28 08:56+0000 Last-Translator: slav0nic Language-Team: Swedish (http://www.transifex.com/gbtami/pychess/language/sv/) MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Language: sv Plural-Forms: nplurals=2; plural=(n != 1); %s accepterades inte av din motståndare'%s' är inte ett registrerat namnVad vill du befodra bonden till?AnalyserarAnimeringSpel datumAnge en not för speletSpel dataNyheterSpela ljud när...SpelareVerktygEn fil med namnet '%s' existerar redan. Vill du ersätta den?Motor, %s, har döttPyChess kunde inte spara speletKunde inte spara filen '%s'Okänd filtyp '%s'En spelare _förflyttarOm SchackAlla shack filerAlla filerBPipLöpareSvartBlitzShack spelKlockaAvsluta _utan att sparaKommentarerAnsluterAnslutningsfelAnslutningen var stängdKunde inte spara filenIdentifiera typ automatisktE-postGå in i spelHändelse:Filen existerarFörstärkningSpel informationSpelet är _förloratSpelet är _vunnetGästMänniskaKRiddareLadda spelLokal händelseLokal sidaLogga in - FelAnslut som _GästMinuter:Drag-historiaNNamnNytt SpelInget ljudNormalErbjud _RemiÖppna spelÖppna ljudfilÖppnar bokPPingSpelar _BetygInställningarPromoveringPyChess - anslut till internetPyChess - Internet Chess: FICSQDamRRankatRankningTornOmgång:Spara spel_Spara Spel _SomSpara spelPoängVälj ljudfil...SökPlats:SpenderatFelet var: %sFilen existerar redan i '%s'. Om du ersätter den så kommer innehållet att bli överskrivet.Spelet slutar oavgjortSpelet har avbrutitsPartiet har skjutits uppTidTypKunde inte acceptera %sOkändEj RankatVitdu skickade ett lika erbjudandeDin motståndare ber dig att skynda!Din motståndare har inte slut på tid._Acceptera_Åtgärder_Spel_Hjälp_Ladda Spel_Logg Visare_Namn:_Nytt spel_Gjorda förflyttningar_Lösenord:_Ersätt_Rotera Brädet_Spara Spel_Starta Spelet_Använd ljud i PyChess_Visaslottförsvarar %sdraghttp://sv.wikipedia.org/wiki/Schackhttp://sv.wikipedia.org/wiki/SchackTotal tid onlinebefordra en Bonde till en %spychess-0.12.2/lang/nb/0000755000175000017470000000000012653231274015075 5ustar tamasusers00000000000000pychess-0.12.2/lang/nb/LC_MESSAGES/0000755000175000017470000000000012653231274016662 5ustar tamasusers00000000000000pychess-0.12.2/lang/nb/LC_MESSAGES/pychess.po0000644000175000017470000027405212653216202020704 0ustar tamasusers00000000000000# SOME DESCRIPTIVE TITLE. # Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER # This file is distributed under the same license as the pychess package. # # Translators: # FIRST AUTHOR , 2008 msgid "" msgstr "" "Project-Id-Version: pychess\n" "Report-Msgid-Bugs-To: \n" "POT-Creation-Date: 2016-01-27 13:28+0100\n" "PO-Revision-Date: 2016-01-28 08:56+0000\n" "Last-Translator: slav0nic \n" "Language-Team: Norwegian Bokmål (http://www.transifex.com/gbtami/pychess/language/nb/)\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" "Language: nb\n" "Plural-Forms: nplurals=2; plural=(n != 1);\n" # "Plural-Forms: nplurals=INTEGER; plural=EXPRESSION;\n" #: glade/analyze_game.glade:22 msgid "Analyze game" msgstr "" #: glade/analyze_game.glade:87 msgid "Use analyzer:" msgstr "" #: glade/analyze_game.glade:122 glade/PyChess.glade:2054 msgid "Maximum analysis time in seconds:" msgstr "" #: glade/analyze_game.glade:163 msgid "" "If the analyzer finds a move where the evaluation difference (the difference" " between the evaluation for the move it thinks is the best move and the " "evaluation for the move made in the game) exceeds this value, it will add an" " annotation for that move (consisting of the engine's Principal Variation " "for the move) to the Annotation panel" msgstr "" #: glade/analyze_game.glade:164 msgid "Variation annotation creation threshold in centipawns:" msgstr "" #: glade/analyze_game.glade:198 msgid "Analyze from current position" msgstr "" #: glade/analyze_game.glade:214 msgid "Add threatening variation lines " msgstr "" #: glade/analyze_game.glade:229 glade/PyChess.glade:1459 msgid "Colorize analyzed moves" msgstr "" #: glade/analyze_game.glade:244 glade/PyChess.glade:1495 msgid "Show evaluation values" msgstr "" #: glade/discovererDialog.glade:18 msgid "PyChess is discovering your engines. Please wait." msgstr "PyChess oppdager motorene dine. Vennligst vent." #: glade/discovererDialog.glade:77 msgid "PyChess.py:" msgstr "PyChess.py:" #: glade/discovererDialog.glade:89 msgid "ShredderLinuxChess:" msgstr "ShredderLinuxChess:" #: glade/discovererDialog.glade:101 msgid "gnuchess:" msgstr "gnuchess:" #: glade/fics_logon.glade:7 msgid "PyChess - Connect to Internet Chess" msgstr "PyChess - Koble til Internett Sjakk" #: glade/fics_logon.glade:47 msgid "Connect to the Free Online Chess Server" msgstr "Koble til Free Online Chess Server" #: glade/fics_logon.glade:129 glade/taskers.glade:394 msgid "_Password:" msgstr "_Passord:" #: glade/fics_logon.glade:143 msgid "_Name:" msgstr "_Navn:" #: glade/fics_logon.glade:191 msgid "Log on as _Guest" msgstr "Logg på som _Gjest" #: glade/fics_logon.glade:227 msgid "Host:" msgstr "" #: glade/fics_logon.glade:259 msgid "Po_rts:" msgstr "Po_rter:" #: glade/fics_logon.glade:271 msgid "Auto login on startup" msgstr "" #: glade/fics_logon.glade:385 msgid "S_ign up" msgstr "Reg_istrer deg" #: glade/fics_lounge.glade:35 msgid "Challenge: " msgstr "Utfordring: " #: glade/fics_lounge.glade:97 msgid "Send Challenge" msgstr "Send utfordring" #: glade/fics_lounge.glade:133 msgid "Challenge:" msgstr "Utfordring:" #: glade/fics_lounge.glade:327 glade/fics_lounge.glade:2078 msgid "Lightning:" msgstr "Lyn:" #: glade/fics_lounge.glade:351 glade/fics_lounge.glade:2102 msgid "Standard:" msgstr "Standard:" #: glade/fics_lounge.glade:375 glade/fics_lounge.glade:2126 msgid "Blitz:" msgstr "Blitz:" #: glade/fics_lounge.glade:400 msgid "2 min, Fischer Random, Black" msgstr "2 min, Fischer Random, Svart" #: glade/fics_lounge.glade:422 msgid "10 min + 6 sec/move, White" msgstr "10 min + 6 sek/trekk, Hvit" #: glade/fics_lounge.glade:444 msgid "5 min" msgstr "5 min" #: glade/fics_lounge.glade:480 msgid "Edit Seek" msgstr "Rediger søk" #: glade/fics_lounge.glade:584 lib/pychess/ic/ICLounge.py:2208 #: lib/pychess/ic/__init__.py:101 lib/pychess/Utils/GameModel.py:206 msgid "Untimed" msgstr "Uten tid" #: glade/fics_lounge.glade:637 msgid "Minutes: " msgstr "Minutter: " #: glade/fics_lounge.glade:665 msgid " Gain: " msgstr " Inkrement: " #: glade/fics_lounge.glade:703 msgid "Time control: " msgstr "Tidskontroll: " #: glade/fics_lounge.glade:716 lib/pychess/ic/FICSObjects.py:56 #: lib/pychess/ic/ICLounge.py:1137 lib/pychess/ic/ICLounge.py:2208 #: lib/pychess/ic/__init__.py:99 msgid "Standard" msgstr "Standard" #: glade/fics_lounge.glade:757 glade/newInOut.glade:633 msgid "Time Control" msgstr "Tidskontroll" #: glade/fics_lounge.glade:814 glade/fics_lounge.glade:1346 msgid "Don't care" msgstr "Bryr meg ikke" #: glade/fics_lounge.glade:879 msgid "Your strength: " msgstr "Din styrke: " #: glade/fics_lounge.glade:921 msgid "(Blitz)" msgstr "(Blitz)" #: glade/fics_lounge.glade:951 msgid "Opponent's strength: " msgstr "Motstanders styrke: " #: glade/fics_lounge.glade:1055 msgid "" "When this button is in the \"locked\" state, the relationship\n" "between \"Opponent's strength\" and \"Your strength\" will be\n" "preserved when \n" "a) your rating for the type of game sought has changed\n" "b) you change the variant or the time control" msgstr "Når denne knappen er «trykket inn» vil forholdet\nmellom «Motstanders styrke» og «Din styrke»\nbevares når \na) din rating for den søkte partitypen endres\nb) du endrer typen eller tidskontrollen" #: glade/fics_lounge.glade:1095 msgid "Center:" msgstr "Senter:" #: glade/fics_lounge.glade:1134 msgid "1200" msgstr "1200" #: glade/fics_lounge.glade:1188 msgid "Tolerance:" msgstr "Toleranse:" #: glade/fics_lounge.glade:1243 lib/pychess/ic/ICLounge.py:2452 msgid "Hide" msgstr "Skjul" #: glade/fics_lounge.glade:1289 msgid "Opponent Strength" msgstr "Motstanders styrke" #: glade/fics_lounge.glade:1386 lib/pychess/Database/gamelist.py:40 #: lib/pychess/ic/ICLounge.py:1357 lib/pychess/ic/ICLounge.py:1557 #: lib/pychess/ic/ICLounge.py:2108 lib/pychess/Utils/repr.py:10 #: lib/pychess/widgets/ChessClock.py:40 #: lib/pychess/widgets/TaskerManager.py:153 msgid "White" msgstr "Hvit" #: glade/fics_lounge.glade:1414 lib/pychess/Database/gamelist.py:40 #: lib/pychess/ic/ICLounge.py:1358 lib/pychess/ic/ICLounge.py:1558 #: lib/pychess/ic/ICLounge.py:2110 lib/pychess/Utils/repr.py:10 #: lib/pychess/widgets/ChessClock.py:40 #: lib/pychess/widgets/TaskerManager.py:154 msgid "Black" msgstr "Svart" #: glade/fics_lounge.glade:1453 msgid "Your Color" msgstr "Din farge" #: glade/fics_lounge.glade:1512 msgid "Play normal chess rules" msgstr "Spill med vanlige sjakkregler" #: glade/fics_lounge.glade:1552 msgid "Play" msgstr "Spill" #: glade/fics_lounge.glade:1618 glade/newInOut.glade:833 msgid "Chess Variant" msgstr "Sjakkvariant" #: glade/fics_lounge.glade:1676 msgid "Rated game" msgstr "Rated parti" #: glade/fics_lounge.glade:1692 msgid "Manually accept opponent" msgstr "Manuellt godta motstander" #: glade/fics_lounge.glade:1722 msgid "Options" msgstr "Alternativer" #: glade/fics_lounge.glade:1750 msgid "PyChess - Internet Chess: FICS" msgstr "PyChess - Internett Sjakk: FICS" #: glade/fics_lounge.glade:1823 msgid "_Clear Seeks" msgstr "_Slett søk" #: glade/fics_lounge.glade:1847 msgid "_Accept" msgstr "_Godta" #: glade/fics_lounge.glade:1871 msgid "_Decline" msgstr "_Avslå" #: glade/fics_lounge.glade:2151 msgid "2 min, Fischer Random, 1800↓, Black" msgstr "2 min, Fischer Random, 1800↓, Sort" #: glade/fics_lounge.glade:2172 msgid "10 min + 6 sec/move, 1400↑, White" msgstr "10 min + 6 sek/trekk, 1400↑, Hvit" #: glade/fics_lounge.glade:2193 msgid "5 min, 1200-1800, Manual" msgstr "5 min, 1200-1800, Manuell" #: glade/fics_lounge.glade:2247 msgid "Send all seeks" msgstr "" #: glade/fics_lounge.glade:2301 msgid "Send seek" msgstr "Send søk" #: glade/fics_lounge.glade:2337 msgid "Create Seek" msgstr "Opprett søk" #: glade/fics_lounge.glade:2353 msgid "_Seeks / Challenges" msgstr "_Søk / Utfordringer" #: glade/fics_lounge.glade:2374 lib/pychess/ic/ICLounge.py:472 #: lib/pychess/ic/ICLounge.py:670 lib/pychess/ic/ICLounge.py:1357 #: lib/pychess/ic/ICLounge.py:1358 msgid "Rating" msgstr "Rating" #: glade/fics_lounge.glade:2399 msgid "Time" msgstr "Tid" #: glade/fics_lounge.glade:2419 msgid "Seek _Graph" msgstr "Søke_graf" #: glade/fics_lounge.glade:2444 msgid "0 Players Ready" msgstr "0 spillere klare" #: glade/fics_lounge.glade:2496 msgid "Challenge" msgstr "Utfordring" #: glade/fics_lounge.glade:2549 glade/fics_lounge.glade:2735 msgid "Observe" msgstr "Observer" #: glade/fics_lounge.glade:2602 msgid "Start Private Chat" msgstr "Start privat samtale" #: glade/fics_lounge.glade:2659 msgid "_Player List" msgstr "S_pillerliste" #: glade/fics_lounge.glade:2792 msgid "_Game List" msgstr "_Spilliste" #: glade/fics_lounge.glade:2847 msgid "_My games" msgstr "" #: glade/fics_lounge.glade:2904 glade/PyChess.glade:841 msgid "Offer _Resume" msgstr "Tilby _fortsettelse" #: glade/fics_lounge.glade:2962 glade/PyChess.glade:880 msgid "R_esign" msgstr "_Trekk deg" #: glade/fics_lounge.glade:3006 glade/PyChess.glade:820 msgid "Offer _Draw" msgstr "Tilby _remis" #: glade/fics_lounge.glade:3050 msgid "Offer A_bort" msgstr "" #: glade/fics_lounge.glade:3107 msgid "Pre_view" msgstr "Forhånds_visning" #: glade/fics_lounge.glade:3151 msgid "Examine" msgstr "" #: glade/fics_lounge.glade:3208 msgid "_Archived" msgstr "" #: glade/fics_lounge.glade:3313 msgid "News" msgstr "Nyheter" #: glade/fics_lounge.glade:3345 msgid "Show Console" msgstr "Vis konsoll" #: glade/fics_lounge.glade:3359 msgid "Show _Chat" msgstr "Vis _chat" #: glade/fics_lounge.glade:3373 msgid "_Log Off" msgstr "_Logg av" #: glade/fics_lounge.glade:3393 msgid "Tools" msgstr "Verktøy" #: glade/fics_lounge.glade:3428 msgid "Asymmetric Random " msgstr "" #: glade/findbar.glade:6 msgid "window1" msgstr "vindu1" #: glade/findbar.glade:21 msgid "0 of 0" msgstr "0 av 0" #: glade/findbar.glade:66 msgid "Search:" msgstr "Søk:" #: glade/findbar.glade:134 msgid "_Previous" msgstr "_Forrige" #: glade/findbar.glade:192 msgid "_Next" msgstr "_Neste" #: glade/newInOut.glade:45 lib/pychess/widgets/newGameDialog.py:445 msgid "New Game" msgstr "Nytt parti" #: glade/newInOut.glade:108 msgid "_Start Game" msgstr "_Start parti" #: glade/newInOut.glade:130 msgid "Copy FEN" msgstr "" #: glade/newInOut.glade:143 msgid "Clear" msgstr "" #: glade/newInOut.glade:156 msgid "Paste FEN" msgstr "" #: glade/newInOut.glade:257 msgid "_Black player:" msgstr "_Svart spiller:" #: glade/newInOut.glade:274 msgid "_White player:" msgstr "_Hvit spiller:" #: glade/newInOut.glade:385 msgid "Players" msgstr "Spillere" #: glade/newInOut.glade:436 msgid "_Untimed" msgstr "" #: glade/newInOut.glade:475 msgid "Blitz: 5 min" msgstr "" #: glade/newInOut.glade:526 msgid "Rapid: 15 min + 10 sec/move" msgstr "" #: glade/newInOut.glade:575 msgid "Normal: 40 min + 15 sec/move" msgstr "" #: glade/newInOut.glade:684 msgid "_Play Normal chess" msgstr "S_pill normal sjakk" #: glade/newInOut.glade:724 msgid "Play Fischer Random chess" msgstr "Spill Fischer Random sjakk" #: glade/newInOut.glade:774 msgid "Play Losers chess" msgstr "" #: glade/newInOut.glade:919 msgid "Open Game" msgstr "Åpent parti" #: glade/newInOut.glade:1162 msgid "Initial Position" msgstr "Startposisjon" #: glade/newInOut.glade:1219 msgid "Enter Game Notation" msgstr "Legg inn trekknotasjon" #: glade/newInOut.glade:1314 msgid "Halfmove clock" msgstr "" #: glade/newInOut.glade:1327 msgid "En passant line" msgstr "" #: glade/newInOut.glade:1339 msgid "Side to move" msgstr "" #: glade/newInOut.glade:1351 msgid "Move number" msgstr "" #: glade/newInOut.glade:1361 msgid "Black O-O" msgstr "" #: glade/newInOut.glade:1375 msgid "Black O-O-O" msgstr "" #: glade/newInOut.glade:1389 msgid "White O-O-O" msgstr "" #: glade/newInOut.glade:1403 msgid "White O-O" msgstr "" #: glade/promotion.glade:7 msgid "Promotion" msgstr "Forvandling" #: glade/promotion.glade:49 lib/pychess/Utils/repr.py:12 msgid "Queen" msgstr "Dronning" #: glade/promotion.glade:95 lib/pychess/Utils/repr.py:12 msgid "Rook" msgstr "Tårn" #: glade/promotion.glade:141 lib/pychess/Utils/repr.py:12 msgid "Bishop" msgstr "Løper" #: glade/promotion.glade:187 lib/pychess/Utils/repr.py:12 msgid "Knight" msgstr "Springer" #: glade/promotion.glade:233 lib/pychess/Utils/repr.py:12 msgid "King" msgstr "Konge" #: glade/promotion.glade:265 msgid "Promote pawn to what?" msgstr "Forvandle bonden til hva?" #: glade/PyChess.glade:9 msgid "Chess client" msgstr "" #: glade/PyChess.glade:44 msgid "Game information" msgstr "Partiinformasjon" #: glade/PyChess.glade:164 msgid "Event:" msgstr "Turnering:" #: glade/PyChess.glade:178 msgid "Site:" msgstr "Nettsted:" #: glade/PyChess.glade:204 msgid "Round:" msgstr "Runde:" #: glade/PyChess.glade:237 msgid "White:" msgstr "Hvit:" #: glade/PyChess.glade:249 msgid "Black:" msgstr "Svart:" #: glade/PyChess.glade:302 msgid "Game data" msgstr "Partidata" #: glade/PyChess.glade:357 msgid "Date of game" msgstr "Dato for parti" #: glade/PyChess.glade:495 msgid "_Game" msgstr "_Parti" #: glade/PyChess.glade:502 msgid "_New Game" msgstr "_Nytt parti" #: glade/PyChess.glade:515 msgid "Play _Internet Chess" msgstr "Spill _internett sjakk" #: glade/PyChess.glade:534 msgid "_Load Game" msgstr "_Last parti" #: glade/PyChess.glade:550 msgid "Load _Recent Game" msgstr "" #: glade/PyChess.glade:558 msgid "Open _Database" msgstr "Åpne _database" #: glade/PyChess.glade:569 lib/pychess/widgets/newGameDialog.py:615 msgid "Setup Position" msgstr "Sett opp posisjon" #: glade/PyChess.glade:579 msgid "Enter Game _Notation" msgstr "Skriv inn parti_notasjon" #: glade/PyChess.glade:592 msgid "_Save Game" msgstr "_Lagre parti" #: glade/PyChess.glade:606 msgid "Save Game _As" msgstr "L_agre parti som" #: glade/PyChess.glade:624 msgid "Share Game" msgstr "" #: glade/PyChess.glade:630 msgid "_Export Position" msgstr "" #: glade/PyChess.glade:644 msgid "_Analyze Game" msgstr "" #: glade/PyChess.glade:678 msgid "Player _Rating" msgstr "Spiller_rating" #: glade/PyChess.glade:723 msgid "_Edit" msgstr "R_ediger" #: glade/PyChess.glade:734 msgid "_Copy PGN" msgstr "" #: glade/PyChess.glade:746 msgid "_Copy FEN" msgstr "" #: glade/PyChess.glade:763 msgid "_Engines" msgstr "_Motorer" #: glade/PyChess.glade:789 msgid "_Actions" msgstr "H_andlinger" #: glade/PyChess.glade:800 msgid "Offer _Abort" msgstr "Tilby _avbrudd" #: glade/PyChess.glade:810 msgid "Offer Ad_journment" msgstr "Tilby _pause" #: glade/PyChess.glade:831 msgid "Offer _Pause" msgstr "Tilby kort _pause" #: glade/PyChess.glade:847 msgid "Offer _Undo" msgstr "Tilby _omtrekk" #: glade/PyChess.glade:870 msgid "_Call Flag" msgstr "_Krev vinst på tid" #: glade/PyChess.glade:890 msgid "Ask to _Move" msgstr "Be om et _trekk" #: glade/PyChess.glade:905 msgid "Auto Call _Flag" msgstr "" #: glade/PyChess.glade:918 msgid "_View" msgstr "_Vis" #: glade/PyChess.glade:925 msgid "_Rotate Board" msgstr "Snu b_rettet" #: glade/PyChess.glade:939 msgid "_Fullscreen" msgstr "_Fullskjerm" #: glade/PyChess.glade:952 msgid "Leave _Fullscreen" msgstr "_Forlat fullskjerm" #: glade/PyChess.glade:969 msgid "_Show Sidepanels" msgstr "Vis _sidepanel" #: glade/PyChess.glade:980 msgid "_Log Viewer" msgstr "Vis _Logg" #: glade/PyChess.glade:997 msgid "_Hint mode" msgstr "_Hintmodus" #: glade/PyChess.glade:1009 msgid "Sp_y mode" msgstr "Sp_ionmodus" #: glade/PyChess.glade:1024 msgid "_Help" msgstr "_Hjelp" #: glade/PyChess.glade:1034 msgid "About Chess" msgstr "Om sjakk" #: glade/PyChess.glade:1043 msgid "How to Play" msgstr "Hvordan spille" #: glade/PyChess.glade:1052 msgid "Translate PyChess" msgstr "Oversett PyChess" #: glade/PyChess.glade:1058 msgid "Tip of the Day" msgstr "Dagens tips" #: glade/PyChess.glade:1153 msgid "Default" msgstr "" #: glade/PyChess.glade:1156 msgid "Knights" msgstr "" #: glade/PyChess.glade:1167 lib/pychess/widgets/preferencesDialog.py:349 msgid "Beep" msgstr "Bip" #: glade/PyChess.glade:1170 lib/pychess/widgets/preferencesDialog.py:350 msgid "Select sound file..." msgstr "Velg lydfil..." #: glade/PyChess.glade:1173 lib/pychess/widgets/preferencesDialog.py:348 msgid "No sound" msgstr "Ingen lyd" #: glade/PyChess.glade:1180 msgid "Preferences" msgstr "Innstillinger" #: glade/PyChess.glade:1218 msgid "The displayed name of the first human player, e.g., John." msgstr "Det viste navnet er den første menneskelige spilleren, f.eks., Ola." #: glade/PyChess.glade:1230 msgid "Name of _first human player:" msgstr "Navn på _første menneskelige spiller:" #: glade/PyChess.glade:1259 msgid "The displayed name of the guest player, e.g., Mary." msgstr "Det viste navnet på gjestespilleren, f.eks., Kari." #: glade/PyChess.glade:1271 msgid "Name of s_econd human player:" msgstr "Navn på andr_e menneskelige spiller:" #: glade/PyChess.glade:1307 msgid "_Hide tabs when only one game is open" msgstr "_Skjul faner når kun ett parti er åpent" #: glade/PyChess.glade:1312 msgid "" "If set, this hides the tab in the top of the playing window, when it is not " "needed." msgstr "Hvis satt så skjules fanene i toppen av spillevinduet når disse ikke trengs." #: glade/PyChess.glade:1326 msgid "_Use main app closer [x] to close all games" msgstr "" #: glade/PyChess.glade:1331 msgid "" "If set, clicking on main application window closer first time it closes all " "games." msgstr "" #: glade/PyChess.glade:1345 msgid "Auto _rotate board to current human player" msgstr "Auto_roter brettet til gjeldende menneskelige spiller" #: glade/PyChess.glade:1350 msgid "" "If set, the board will turn after each move, to show the natural view for " "the current player." msgstr "Hvis satt vil brettet snu seg etter hvert trekk for å vise den naturlige siden for gjeldende spiller." #: glade/PyChess.glade:1364 msgid "Auto _promote to queen" msgstr "" #: glade/PyChess.glade:1369 msgid "If set, pawn promotes to queen without promotion dialog selection." msgstr "" #: glade/PyChess.glade:1383 msgid "Face _to Face display mode" msgstr "Ansikt _til ansikt-visningsmodus" #: glade/PyChess.glade:1388 msgid "" "If set, the black pieces will be head down, suitable for playing against " "friends on mobile devices." msgstr "Hvis satt vil svarte brikker være opp ned, bra for å spille mot venner på mobile enheter." #: glade/PyChess.glade:1402 msgid "Sho_w cords" msgstr "_Vis koordinater" #: glade/PyChess.glade:1407 msgid "" "If set, the playing board will display labels and ranks for each chess " "field. These are usable in chess notation." msgstr "Hvis satt vil spillebrettet vise rader og kolonner for hvert sjakkfelt. Dette er bra for sjakknotasjon." #: glade/PyChess.glade:1421 msgid "Show _captured pieces" msgstr "" #: glade/PyChess.glade:1426 msgid "If set, the captured figurines will be shown next to the board." msgstr "" #: glade/PyChess.glade:1440 msgid "Prefer figures in _notation" msgstr "Foretrekk figuriner i _notasjon" #: glade/PyChess.glade:1445 msgid "" "If set, PyChess will use figures to express moved pieces, rather than " "uppercase letters." msgstr "Hvis satt vil PyChess bruke figuriner for å uttrykke flyttede brikker heller enn store bokstaver." #: glade/PyChess.glade:1464 msgid "If set, PyChess will colorize suboptimal analyzed moves with red." msgstr "" #: glade/PyChess.glade:1477 msgid "Show elapsed move times" msgstr "" #: glade/PyChess.glade:1482 msgid "If set, the elapsed time that a player used for the move is shown." msgstr "" #: glade/PyChess.glade:1500 msgid "If set, the hint analyzer engine evaluation value is shown." msgstr "" #: glade/PyChess.glade:1526 msgid "General Options" msgstr "" #: glade/PyChess.glade:1560 msgid "F_ull board animation" msgstr "F_ull brettanimasjon" #: glade/PyChess.glade:1565 msgid "Animate pieces, board rotation and more. Use this on fast machines." msgstr "Animer brikker, brettrotasjon og mer. Bruk dette på raske maskiner." #: glade/PyChess.glade:1579 msgid "Only animate _moves" msgstr "Bare ani_mer trekk" #: glade/PyChess.glade:1584 msgid "Only animate piece moves." msgstr "Bare animer brikketrekk." #: glade/PyChess.glade:1599 msgid "No _animation" msgstr "Ingen _animasjon" #: glade/PyChess.glade:1604 msgid "Never use animation. Use this on slow machines." msgstr "Aldri bruk animasjoner. Bruk dette på trege maskiner." #: glade/PyChess.glade:1632 msgid "Animation" msgstr "Animasjon" #: glade/PyChess.glade:1651 msgid "_General" msgstr "_Generelt" #: glade/PyChess.glade:1692 msgid "Use opening _book" msgstr "Bruk _åpningsbok" #: glade/PyChess.glade:1697 msgid "If set, PyChess will suggest best opening moves on hint panel." msgstr "" #: glade/PyChess.glade:1724 msgid "Polyglot book file:" msgstr "" #: glade/PyChess.glade:1768 msgid "Use _local tablebases" msgstr "" #: glade/PyChess.glade:1773 msgid "" "If set, PyChess will show game results for different moves in positions containing 6 or less pieces.\n" "You can download tablebase files from:\n" "http://www.olympuschess.com/egtb/gaviota/" msgstr "" #: glade/PyChess.glade:1803 msgid "Gaviota TB path:" msgstr "" #: glade/PyChess.glade:1843 msgid "Use _online tablebases" msgstr "" #: glade/PyChess.glade:1848 msgid "" "If set, PyChess will show game results for different moves in positions containing 6 or less pieces.\n" "It will search positions from http://www.k4it.de/" msgstr "" #: glade/PyChess.glade:1870 msgid "Opening, endgame" msgstr "" #: glade/PyChess.glade:1904 msgid "Use _analyzer" msgstr "Bruk _analyseprogram" #: glade/PyChess.glade:1946 msgid "" "The analyzer will run in the background and analyze the game. This is " "necessary for the hint mode to work" msgstr "" #: glade/PyChess.glade:1978 msgid "Use _inverted analyzer" msgstr "Bruk _invers analyse" #: glade/PyChess.glade:2020 msgid "" "The inverse analyzer will analyze the game as if your opponent was to move. " "This is necessary for the spy mode to work" msgstr "" #: glade/PyChess.glade:2096 msgid "Analyzing" msgstr "Analyserer" #: glade/PyChess.glade:2118 msgid "_Hints" msgstr "_Hint" #: glade/PyChess.glade:2263 msgid "Uninstall" msgstr "Avinstaller" #: glade/PyChess.glade:2317 msgid "Ac_tive" msgstr "Ak_tiv" #: glade/PyChess.glade:2367 msgid "Installed Sidepanels" msgstr "Installerte sidepanel" #: glade/PyChess.glade:2382 msgid "Side_panels" msgstr "Side_panel" #: glade/PyChess.glade:2440 msgid "Light Squares :" msgstr "" #: glade/PyChess.glade:2479 msgid "Dark Squares :" msgstr "" #: glade/PyChess.glade:2515 msgid "Reset Default Colours" msgstr "" #: glade/PyChess.glade:2551 msgid "Board Colours" msgstr "" #: glade/PyChess.glade:2610 msgid "Chess Sets" msgstr "" #: glade/PyChess.glade:2634 msgid "Themes" msgstr "Tema" #: glade/PyChess.glade:2659 msgid "_Use sounds in PyChess" msgstr "_Bruke lyder i PyChess" #: glade/PyChess.glade:2982 msgid "A player _checks:" msgstr "En spiller _sjakker:" #: glade/PyChess.glade:2997 msgid "A player _moves:" msgstr "En spiller _trekker:" #: glade/PyChess.glade:3010 msgid "Game is _drawn:" msgstr "Partiet er _remis:" #: glade/PyChess.glade:3025 msgid "Game is _lost:" msgstr "Partiet er _tapt:" #: glade/PyChess.glade:3040 msgid "Game is _won:" msgstr "Partiet er _vunnet:" #: glade/PyChess.glade:3055 msgid "A player c_aptures:" msgstr "En spiller sl_år en brikke:" #: glade/PyChess.glade:3084 msgid "Game is _set-up:" msgstr "Parti er _satt opp:" #: glade/PyChess.glade:3136 msgid "_Observed moves:" msgstr "_Observerte trekk:" #: glade/PyChess.glade:3151 msgid "Observed _ends:" msgstr "Observerte _avslutninger:" #: glade/PyChess.glade:3265 msgid "Short on _time:" msgstr "" #: glade/PyChess.glade:3317 msgid "_Invalid move:" msgstr "" #: glade/PyChess.glade:3369 msgid "Activate alarm when _remaining sec is:" msgstr "" #: glade/PyChess.glade:3416 msgid "Play Sound When..." msgstr "Spill lyd når..." #: glade/PyChess.glade:3438 msgid "_Sounds" msgstr "_Lyder" #: glade/PyChess.glade:3463 msgid "_Auto save finished games" msgstr "" #: glade/PyChess.glade:3497 msgid "Save files to:" msgstr "" #: glade/PyChess.glade:3525 msgid "Use name format:" msgstr "" #: glade/PyChess.glade:3569 msgid "Names: #n1, #n2" msgstr "" #: glade/PyChess.glade:3582 msgid "Year, month, day: #y, #m, #d" msgstr "" #: glade/PyChess.glade:3619 msgid "Save elapsed move _times" msgstr "" #: glade/PyChess.glade:3644 msgid "Save analyzing engine _evaluation values" msgstr "" #: glade/PyChess.glade:3669 msgid "Save _own games only" msgstr "" #: glade/PyChess.glade:3698 msgid "Save" msgstr "" #: glade/PyChess.glade:3728 msgid "uci" msgstr "" #: glade/PyChess.glade:3731 msgid "xboard" msgstr "" #: glade/PyChess.glade:3739 msgid "Manage engines" msgstr "Håndter motorer" #: glade/PyChess.glade:3837 msgid "Command:" msgstr "Kommando:" #: glade/PyChess.glade:3851 msgid "Protocol:" msgstr "Protokoll:" #: glade/PyChess.glade:3865 msgid "Parameters:" msgstr "Parametre:" #: glade/PyChess.glade:3878 msgid "Command line parameters needed by the engine." msgstr "" #: glade/PyChess.glade:3903 msgid "" "Engines use uci or xboard communication protocol to talk to the GUI.\n" "If it can use both you can set here which one you like." msgstr "" #: glade/PyChess.glade:3929 msgid "Working directory:" msgstr "Arbeidskatalog:" #: glade/PyChess.glade:3942 msgid "The directory where the engine will be started from." msgstr "" #: glade/saveGamesDialog.glade:7 msgid "Quit PyChess" msgstr "Avslutt PyChess" #: glade/saveGamesDialog.glade:24 lib/pychess/widgets/ionest.py:424 msgid "Close _without Saving" msgstr "Lukk _uten å lagre" #: glade/saveGamesDialog.glade:83 msgid "_Save %d documents" msgstr "_Lagre %d dokumenter" #: glade/saveGamesDialog.glade:141 msgid "" "There are %d games with unsaved moves. Save changes before " "closing?" msgstr "Det er %d partier med ulagrede trekk. Lagre endringer før du avslutter?" #: glade/saveGamesDialog.glade:161 msgid "Select the games you want to save:" msgstr "Velg partier du vil lagre:" #: glade/saveGamesDialog.glade:204 msgid "If you don't save, new changes to your games will be permanently lost." msgstr "Hvis du ikke lagrer vil nye endringer til partiene dine gå tapt." #: glade/taskers.glade:126 msgid "_Opponent:" msgstr "M_otstander:" #: glade/taskers.glade:154 msgid "_Your Color:" msgstr "_Din farge:" #: glade/taskers.glade:219 msgid "_Start Game" msgstr "_Start parti" #: glade/taskers.glade:338 msgid "Log on as G_uest" msgstr "Logg på som _gjest" #: glade/taskers.glade:410 msgid "Ha_ndle:" msgstr "Bruker_navn:" #: glade/taskers.glade:469 msgid "_Connect to server" msgstr "" #: glade/tipoftheday.glade:7 msgid "Tip Of The day" msgstr "Dagens tips" #: glade/tipoftheday.glade:62 msgid "Show tips at startup" msgstr "Vis tips ved oppstart" #: lib/pychess/Main.py:302 msgid "http://en.wikipedia.org/wiki/Chess" msgstr "http://no.wikipedia.org/wiki/Sjakk" #: lib/pychess/Main.py:305 msgid "http://en.wikipedia.org/wiki/Rules_of_chess" msgstr "http://www.sjakk.no/nsf/lover_og_reglementer/fideregler_index.html" #: lib/pychess/Main.py:370 lib/pychess/widgets/gamenanny.py:80 msgid "Welcome" msgstr "Velkommen" #: lib/pychess/Database/gamelist.py:40 msgid "Id" msgstr "" #: lib/pychess/Database/gamelist.py:40 msgid "W Elo" msgstr "" #: lib/pychess/Database/gamelist.py:40 msgid "B Elo" msgstr "" #: lib/pychess/Database/gamelist.py:41 msgid "Result" msgstr "" #: lib/pychess/Database/gamelist.py:41 msgid "Event" msgstr "" #: lib/pychess/Database/gamelist.py:41 msgid "Site" msgstr "" #: lib/pychess/Database/gamelist.py:41 msgid "Round" msgstr "" #: lib/pychess/Database/gamelist.py:41 msgid "Date" msgstr "" #: lib/pychess/Database/gamelist.py:41 msgid "ECO" msgstr "" #: lib/pychess/Database/gamelist.py:62 msgid "PyChess Game Database" msgstr "" #: lib/pychess/Database/PgnImport.py:188 #, python-format msgid "The game #%s can't be loaded, because of an error parsing FEN" msgstr "" #: lib/pychess/ic/FICSConnection.py:139 msgid "The connection was broken - got \"end of file\" message" msgstr "Tilkoblingen ble brutt - fikk melding om «end-of-file»" #: lib/pychess/ic/FICSConnection.py:140 #, python-format msgid "'%s' is not a registered name" msgstr "'%s' er ikke et registrert brukernavn" #: lib/pychess/ic/FICSConnection.py:141 msgid "" "The entered password was invalid.\n" "If you forgot your password, go to http://www.freechess.org/password to request a new one over email." msgstr "" #: lib/pychess/ic/FICSConnection.py:145 #, python-format msgid "Sorry '%s' is already logged in" msgstr "" #: lib/pychess/ic/FICSConnection.py:146 #, python-format msgid "'%s' is a registered name. If it is yours, type the password." msgstr "" #: lib/pychess/ic/FICSConnection.py:147 msgid "" "Due to abuse problems, guest connections have been prevented.\n" "You can still register on http://www.freechess.org" msgstr "" #: lib/pychess/ic/FICSConnection.py:166 msgid "Connecting to server" msgstr "Kobler til tjener" #: lib/pychess/ic/FICSConnection.py:181 msgid "Logging on to server" msgstr "Logger på tjener" #: lib/pychess/ic/FICSConnection.py:239 msgid "Setting up environment" msgstr "Setter opp miljø" #: lib/pychess/ic/FICSObjects.py:35 lib/pychess/ic/FICSObjects.py:47 #, python-format msgid "%(player)s is %(status)s" msgstr "" #: lib/pychess/ic/FICSObjects.py:46 msgid "not playing" msgstr "" #: lib/pychess/ic/FICSObjects.py:54 lib/pychess/ic/ICLounge.py:1136 #: lib/pychess/ic/ICLounge.py:2209 lib/pychess/ic/__init__.py:98 #: lib/pychess/widgets/newGameDialog.py:153 msgid "Blitz" msgstr "Blitz" #: lib/pychess/ic/FICSObjects.py:58 lib/pychess/ic/ICLounge.py:1137 #: lib/pychess/ic/ICLounge.py:2209 lib/pychess/ic/__init__.py:100 msgid "Lightning" msgstr "Lyn" #: lib/pychess/ic/FICSObjects.py:60 lib/pychess/Variants/atomic.py:15 msgid "Atomic" msgstr "" #: lib/pychess/ic/FICSObjects.py:62 lib/pychess/Variants/bughouse.py:9 msgid "Bughouse" msgstr "" #: lib/pychess/ic/FICSObjects.py:64 lib/pychess/Variants/crazyhouse.py:9 msgid "Crazyhouse" msgstr "" #: lib/pychess/ic/FICSObjects.py:66 lib/pychess/Variants/losers.py:9 msgid "Losers" msgstr "Losers" #: lib/pychess/ic/FICSObjects.py:68 lib/pychess/Variants/suicide.py:12 msgid "Suicide" msgstr "" #: lib/pychess/ic/FICSObjects.py:70 lib/pychess/ic/__init__.py:129 msgid "Wild" msgstr "Wild" #: lib/pychess/ic/FICSObjects.py:117 msgid "Online" msgstr "Pålogget" #: lib/pychess/ic/FICSObjects.py:118 lib/pychess/ic/FICSObjects.py:143 msgid "Offline" msgstr "Avlogget" #: lib/pychess/ic/FICSObjects.py:133 msgid "Available" msgstr "" #: lib/pychess/ic/FICSObjects.py:135 msgid "Playing" msgstr "" #: lib/pychess/ic/FICSObjects.py:141 msgid "Idle" msgstr "" #: lib/pychess/ic/FICSObjects.py:145 msgid "Examining" msgstr "" #: lib/pychess/ic/FICSObjects.py:147 msgid "Not Available" msgstr "" #: lib/pychess/ic/FICSObjects.py:149 msgid "Running Simul Match" msgstr "" #: lib/pychess/ic/FICSObjects.py:151 msgid "In Tournament" msgstr "" #: lib/pychess/ic/FICSObjects.py:308 lib/pychess/ic/FICSObjects.py:492 #: lib/pychess/ic/ICLounge.py:2278 msgid "Unrated" msgstr "Uratet" #: lib/pychess/ic/FICSObjects.py:491 lib/pychess/ic/ICLounge.py:670 #: lib/pychess/ic/ICLounge.py:1358 lib/pychess/ic/ICLounge.py:1558 #: lib/pychess/ic/ICLounge.py:2113 msgid "Rated" msgstr "Ratet" #: lib/pychess/ic/FICSObjects.py:498 lib/pychess/ic/ICLounge.py:2098 #, python-format msgid "%d min" msgstr "%d min" #: lib/pychess/ic/FICSObjects.py:500 #, python-format msgid " + %d sec" msgstr "" #: lib/pychess/ic/FICSObjects.py:517 #, python-format msgid "%(player)s plays %(color)s" msgstr "" #: lib/pychess/ic/FICSObjects.py:519 lib/pychess/ic/ICLounge.py:909 msgid "white" msgstr "" #: lib/pychess/ic/FICSObjects.py:519 lib/pychess/ic/ICLounge.py:909 msgid "black" msgstr "" #: lib/pychess/ic/FICSObjects.py:565 msgid "This is a continuation of an adjourned match" msgstr "" #: lib/pychess/ic/FICSObjects.py:654 msgid "Opponent Rating" msgstr "" #: lib/pychess/ic/FICSObjects.py:656 msgid "Manual Accept" msgstr "" #: lib/pychess/ic/FICSObjects.py:810 msgid "Private" msgstr "Privat" #: lib/pychess/ic/FICSObjects.py:930 lib/pychess/ic/ICLounge.py:527 #: lib/pychess/Savers/epd.py:139 msgid "Unknown" msgstr "Ukjent" #: lib/pychess/ic/ICLogon.py:159 lib/pychess/ic/ICLogon.py:165 msgid "Connection Error" msgstr "Tilkoblingsfeil" #: lib/pychess/ic/ICLogon.py:161 msgid "Log on Error" msgstr "Påloggingsfeil" #: lib/pychess/ic/ICLogon.py:163 msgid "Connection was closed" msgstr "Oppkopling ble stengt ned" #: lib/pychess/ic/ICLogon.py:169 msgid "Address Error" msgstr "Adressefeil" #: lib/pychess/ic/ICLogon.py:172 msgid "Auto-logout" msgstr "Auto-logg-ut" #: lib/pychess/ic/ICLogon.py:173 msgid "You have been logged out because you were idle more than 60 minutes" msgstr "Du har blitt logget ut fordi du var inaktiv i mer enn 60 minutter" #: lib/pychess/ic/ICLounge.py:222 msgid "You have to set kibitz on to see bot messages here." msgstr "" #: lib/pychess/ic/ICLounge.py:241 msgid "" "You may only have 3 outstanding seeks at the same time. If you want to add a" " new seek you must clear your currently active seeks. Clear your seeks?" msgstr "" #: lib/pychess/ic/ICLounge.py:258 msgid "You can't touch this! You are examining a game." msgstr "" #: lib/pychess/ic/ICLounge.py:270 msgid " has declined your offer for a match" msgstr "" #: lib/pychess/ic/ICLounge.py:283 msgid " is censoring you" msgstr "" #: lib/pychess/ic/ICLounge.py:296 msgid " noplay listing you" msgstr "" #: lib/pychess/ic/ICLounge.py:311 msgid " uses a formula not fitting your match request:" msgstr "" #: lib/pychess/ic/ICLounge.py:325 msgid "to manual accept" msgstr "" #: lib/pychess/ic/ICLounge.py:327 msgid "to automatic accept" msgstr "" #: lib/pychess/ic/ICLounge.py:329 msgid "rating range now" msgstr "" #: lib/pychess/ic/ICLounge.py:330 msgid "Seek updated" msgstr "" #: lib/pychess/ic/ICLounge.py:342 msgid "Your seeks have been removed" msgstr "" #: lib/pychess/ic/ICLounge.py:363 msgid " has arrived" msgstr "" #: lib/pychess/ic/ICLounge.py:370 msgid " has departed" msgstr "" #: lib/pychess/ic/ICLounge.py:374 msgid " is present" msgstr "" #: lib/pychess/ic/ICLounge.py:391 sidepanel/chatPanel.py:17 msgid "Chat" msgstr "Chat" #: lib/pychess/ic/ICLounge.py:472 sidepanel/bookPanel.py:366 msgid "Win" msgstr "Vinn" #: lib/pychess/ic/ICLounge.py:472 sidepanel/bookPanel.py:360 msgid "Draw" msgstr "Remis" #: lib/pychess/ic/ICLounge.py:472 sidepanel/bookPanel.py:363 msgid "Loss" msgstr "Tap" #: lib/pychess/ic/ICLounge.py:482 msgid "" "On FICS, your \"Wild\" rating encompasses all of the following variants at " "all time controls:\n" msgstr "På FICS omfatter «Wild»-ratingen din alle de følgende tidskontrollene:\n" #: lib/pychess/ic/ICLounge.py:494 msgid "Sanctions" msgstr "" #: lib/pychess/ic/ICLounge.py:499 msgid "Email" msgstr "E-post" #: lib/pychess/ic/ICLounge.py:504 msgid "Spent" msgstr "Brukt" #: lib/pychess/ic/ICLounge.py:506 msgid "online in total" msgstr "tid totalt pålogget" #: lib/pychess/ic/ICLounge.py:512 msgid "Ping" msgstr "Ping" #: lib/pychess/ic/ICLounge.py:517 msgid "Connecting" msgstr "Kobler til" #: lib/pychess/ic/ICLounge.py:544 msgid "" "You are currently logged in as a guest.\n" "A guest can't play rated games and therefore isn't able to play as many of the types of matches offered as a registered user. To register an account, go to http://www.freechess.org/Register/index.html." msgstr "" #: lib/pychess/ic/ICLounge.py:669 lib/pychess/ic/ICLounge.py:1136 msgid "Name" msgstr "Navn" #: lib/pychess/ic/ICLounge.py:670 lib/pychess/ic/ICLounge.py:1358 #: lib/pychess/ic/ICLounge.py:1558 msgid "Type" msgstr "Type" #: lib/pychess/ic/ICLounge.py:670 lib/pychess/ic/ICLounge.py:1558 msgid "Clock" msgstr "Klokke" #: lib/pychess/ic/ICLounge.py:726 lib/pychess/ic/ICLounge.py:923 #: lib/pychess/Players/Human.py:250 msgid "Accept" msgstr "" #: lib/pychess/ic/ICLounge.py:728 msgid "Assess" msgstr "" #: lib/pychess/ic/ICLounge.py:734 msgid "Archived" msgstr "" #: lib/pychess/ic/ICLounge.py:848 #, python-format msgid "Active seeks: %d" msgstr "Aktive søk: %d" #: lib/pychess/ic/ICLounge.py:897 #, python-format msgid "" " would like to resume your adjourned %(time)s %(gametype)s " "game." msgstr "" #: lib/pychess/ic/ICLounge.py:902 #, python-format msgid "" " challenges you to a %(time)s %(rated)s %(gametype)s game" msgstr "" #: lib/pychess/ic/ICLounge.py:907 #, python-format msgid " where %(player)s plays %(color)s." msgstr "" #: lib/pychess/ic/ICLounge.py:924 lib/pychess/Players/Human.py:251 msgid "Decline" msgstr "" #: lib/pychess/ic/ICLounge.py:1065 msgid " min" msgstr " min" #: lib/pychess/ic/ICLounge.py:1137 msgid "Status" msgstr "" #: lib/pychess/ic/ICLounge.py:1203 lib/pychess/ic/ICLounge.py:1233 #, python-format msgid "Players: %d" msgstr "" #: lib/pychess/ic/ICLounge.py:1469 #, python-format msgid "Games running: %d" msgstr "Kjørende partier: %d" #: lib/pychess/ic/ICLounge.py:1559 msgid "Date/Time" msgstr "Dato/tid" #: lib/pychess/ic/ICLounge.py:1614 #, python-format msgid "" " with whom you have an adjourned %(timecontrol)s %(gametype)s " "game is online." msgstr "" #: lib/pychess/ic/ICLounge.py:1635 msgid "Request Continuation" msgstr "" #: lib/pychess/ic/ICLounge.py:1637 msgid "Examine Adjourned Game" msgstr "" #: lib/pychess/ic/ICLounge.py:1965 msgid "" "The chain button is disabled because you are logged in as a guest. Guests " "can't establish ratings, and the chain button's state has no effect when " "there is no rating to which to tie \"Opponent Strength\" to" msgstr "Lenkeknappen er deaktivert fordi er du logget på som en gjest. Gjester kan ikke etablere ratinger og lenkeknappen har ingen effekt når det ikke er noen rating å knytte «Motstanders styrke» til" #: lib/pychess/ic/ICLounge.py:2006 msgid "Challenge: " msgstr "Utfordring: " #: lib/pychess/ic/ICLounge.py:2044 msgid "If set you can refuse players accepting your seek" msgstr "" #: lib/pychess/ic/ICLounge.py:2048 lib/pychess/ic/ICLounge.py:2051 msgid "This option is not applicable because you're challenging a player" msgstr "Dette alternativet er ikke tilgjengelig fordi du utfordrer en spiller" #: lib/pychess/ic/ICLounge.py:2064 msgid "Edit Seek: " msgstr "Rediger søk: " #: lib/pychess/ic/ICLounge.py:2095 #, python-format msgid "%(minutes)d min + %(gain)d sec/move" msgstr "%(minutes)d min + %(gain)d sek/trekk" #: lib/pychess/ic/ICLounge.py:2116 msgid "Manual" msgstr "Manuell" #: lib/pychess/ic/ICLounge.py:2256 msgid "Any strength" msgstr "" #: lib/pychess/ic/ICLounge.py:2308 msgid "You can't play rated games because you are logged in as a guest" msgstr "Du kan ikke spille ratede partier fordi du er logget inn som en gjest" #: lib/pychess/ic/ICLounge.py:2312 msgid "You can't play rated games because \"Untimed\" is checked, " msgstr "Du kan ikke spille ratede partier fordi «Uten tidskontroll» er haket av, " #: lib/pychess/ic/ICLounge.py:2313 msgid "and on FICS, untimed games can't be rated" msgstr "og på FICS blir ikke partier uten tidskontroll ratet" #: lib/pychess/ic/ICLounge.py:2317 msgid "This option is not available because you're challenging a guest, " msgstr "Dette alternativet er ikke tilgjengelig fordi du utfordrer en gjest, " #: lib/pychess/ic/ICLounge.py:2318 msgid "and guests can't play rated games" msgstr "og gjester kan ikke spille ratede partier" #: lib/pychess/ic/ICLounge.py:2332 lib/pychess/Variants/shuffle.py:16 #: lib/pychess/widgets/newGameDialog.py:266 msgid "Shuffle" msgstr "Shuffle" #: lib/pychess/ic/ICLounge.py:2333 lib/pychess/widgets/newGameDialog.py:267 msgid "Other (standard rules)" msgstr "" #: lib/pychess/ic/ICLounge.py:2334 lib/pychess/widgets/newGameDialog.py:268 msgid "Other (non standard rules)" msgstr "" #: lib/pychess/ic/ICLounge.py:2421 msgid "You can't select a variant because \"Untimed\" is checked, " msgstr "Du kan ikke velge en variant fordi «Uten tidskontroll» er haket av, " #: lib/pychess/ic/ICLounge.py:2422 msgid "and on FICS, untimed games have to be normal chess rules" msgstr "og på FICS må partier uten tidskontroll spilles med vanlige sjakkregler" #: lib/pychess/ic/ICLounge.py:2454 msgid "Change Tolerance" msgstr "Endre toleranse" #: lib/pychess/ic/__init__.py:102 msgid "Examined" msgstr "" #: lib/pychess/ic/__init__.py:103 msgid "Other" msgstr "Andre" #: lib/pychess/ic/__init__.py:182 msgid "Administrator" msgstr "Administrator" #: lib/pychess/ic/__init__.py:182 msgid "Blindfold Account" msgstr "Blindsjakkonto" #: lib/pychess/ic/__init__.py:182 msgid "Computer" msgstr "" #: lib/pychess/ic/__init__.py:183 msgid "Team Account" msgstr "Lagkonto" #: lib/pychess/ic/__init__.py:183 msgid "Unregistered" msgstr "" #: lib/pychess/ic/__init__.py:183 msgid "Chess Advisor" msgstr "Sjakkrådgiver" #: lib/pychess/ic/__init__.py:184 msgid "Service Representative" msgstr "Tjenesterepresentant" #: lib/pychess/ic/__init__.py:184 msgid "Tournament Director" msgstr "Turneringsdirektør" #: lib/pychess/ic/__init__.py:184 msgid "Mamer Manager" msgstr "Mamer Manager" #: lib/pychess/ic/__init__.py:185 msgid "Grand Master" msgstr "Stormester" #: lib/pychess/ic/__init__.py:185 msgid "International Master" msgstr "Internasjonal Mester" #: lib/pychess/ic/__init__.py:185 msgid "FIDE Master" msgstr "FIDE Mester" #: lib/pychess/ic/__init__.py:186 msgid "Woman Grand Master" msgstr "" #: lib/pychess/ic/__init__.py:186 msgid "Woman International Master" msgstr "" #: lib/pychess/ic/__init__.py:186 msgid "Woman FIDE Master" msgstr "" #: lib/pychess/ic/__init__.py:187 msgid "Dummy Account" msgstr "" #: lib/pychess/ic/__init__.py:191 msgid "*" msgstr "" #: lib/pychess/ic/__init__.py:191 lib/pychess/Utils/repr.py:14 msgid "B" msgstr "L" #: lib/pychess/ic/__init__.py:191 msgid "C" msgstr "" #: lib/pychess/ic/__init__.py:192 msgid "T" msgstr "" #: lib/pychess/ic/__init__.py:192 msgid "U" msgstr "" #: lib/pychess/ic/__init__.py:192 msgid "CA" msgstr "" #: lib/pychess/ic/__init__.py:193 msgid "SR" msgstr "" #: lib/pychess/ic/__init__.py:193 msgid "TD" msgstr "" #: lib/pychess/ic/__init__.py:193 msgid "TM" msgstr "" #: lib/pychess/ic/__init__.py:194 msgid "GM" msgstr "" #: lib/pychess/ic/__init__.py:194 msgid "IM" msgstr "" #: lib/pychess/ic/__init__.py:194 msgid "FM" msgstr "" #: lib/pychess/ic/__init__.py:195 msgid "WGM" msgstr "" #: lib/pychess/ic/__init__.py:195 msgid "WIM" msgstr "" #: lib/pychess/ic/__init__.py:195 msgid "WFM" msgstr "" #: lib/pychess/ic/__init__.py:195 msgid "D" msgstr "" #: lib/pychess/ic/__init__.py:195 msgid "H" msgstr "" #: lib/pychess/ic/__init__.py:195 msgid "CM" msgstr "" #: lib/pychess/ic/__init__.py:195 msgid "FA" msgstr "" #: lib/pychess/ic/__init__.py:195 msgid "NM" msgstr "" #: lib/pychess/Players/CECPEngine.py:857 #, python-format msgid "The engine %s reports an error:" msgstr "" #: lib/pychess/Players/Human.py:20 msgid "Your opponent has offered you a draw." msgstr "" #: lib/pychess/Players/Human.py:21 msgid "" "Your opponent has offered you a draw. If you accept this offer, the game " "will end with a score of 1/2 - 1/2." msgstr "Din motstander har tilbudt remis. Hvis du aksepterer tilbudet vil partiet ende med resultatet ½ - ½." #: lib/pychess/Players/Human.py:23 msgid "Your opponent wants to abort the game." msgstr "" #: lib/pychess/Players/Human.py:24 msgid "" "Your opponent has asked that the game be aborted. If you accept this offer, " "the game will end with no rating change." msgstr "Din motstander har bedt om at partiet blir avbrutt. Hvis du godtar tilbudet blir partiet avsluttet uten noen endring i rating." #: lib/pychess/Players/Human.py:26 msgid "Your opponent wants to adjourn the game." msgstr "" #: lib/pychess/Players/Human.py:27 msgid "" "Your opponent has asked that the game be adjourned. If you accept this " "offer, the game will be adjourned and you can resume it later (when your " "opponent is online and both players agree to resume)." msgstr "Din motstander har bedt om at partiet blir pauset. Hvis du godtar tilbudet vil partiet bli pauset og dere kan gjenoppta det senere (når motstanderen din er pålogget og begge spillere godtar å fortsette)." #: lib/pychess/Players/Human.py:29 #, python-format msgid "Your opponent wants to undo %s move(s)." msgstr "" #: lib/pychess/Players/Human.py:30 #, python-format msgid "" "Your opponent has asked that the last %s move(s) be undone. If you accept " "this offer, the game will continue from the earlier position." msgstr "Din motstander har bedt om at de siste %s trekk(ene) gjøres om. Hvis du godtar tilbudet vil partiet fortsette fra den tidligere posisjonen." #: lib/pychess/Players/Human.py:32 msgid "Your opponent wants to pause the game." msgstr "" #: lib/pychess/Players/Human.py:33 msgid "" "Your opponent has asked that the game be paused. If you accept this offer, " "the game clock will be paused until both players agree to resume the game." msgstr "Din motstander har bedt om at partiet blir pauset (kort). Hvis du godtar tilbudet vil klokkene bli stoppet til begge spillerne er klare til å fortsette partiet." #: lib/pychess/Players/Human.py:35 msgid "Your opponent wants to resume the game." msgstr "" #: lib/pychess/Players/Human.py:36 msgid "" "Your opponent has asked that the game be resumed. If you accept this offer, " "the game clock will continue from where it was paused." msgstr "Din motstander har bedt om at partiet fortsettes. Hvis du godtar tilbudet vil klokkene fortsette fra der de ble stoppet." #: lib/pychess/Players/Human.py:40 msgid "The resignation" msgstr "Oppgivelsen" #: lib/pychess/Players/Human.py:41 msgid "The flag call" msgstr "Tidskravet" #: lib/pychess/Players/Human.py:42 msgid "The draw offer" msgstr "Remistilbudet" #: lib/pychess/Players/Human.py:43 msgid "The abort offer" msgstr "Avbruddstilbudet" #: lib/pychess/Players/Human.py:44 msgid "The adjourn offer" msgstr "Pausetilbudet" #: lib/pychess/Players/Human.py:45 msgid "The pause offer" msgstr "Pausetilbudet (kort)" #: lib/pychess/Players/Human.py:46 msgid "The resume offer" msgstr "Fortsettelsestilbudet" #: lib/pychess/Players/Human.py:47 msgid "The offer to switch sides" msgstr "Tilbudet om å bytte sider" #: lib/pychess/Players/Human.py:48 msgid "The takeback offer" msgstr "Tilbudet om å gjøre om trekk" #: lib/pychess/Players/Human.py:52 msgid "resign" msgstr "trekk deg" #: lib/pychess/Players/Human.py:53 msgid "call your opponents flag" msgstr "krev vinst på tid" #: lib/pychess/Players/Human.py:54 msgid "offer a draw" msgstr "tilby remis" #: lib/pychess/Players/Human.py:55 msgid "offer an abort" msgstr "tilby avbrudd" #: lib/pychess/Players/Human.py:56 msgid "offer to adjourn" msgstr "tilby en pause" #: lib/pychess/Players/Human.py:57 msgid "offer a pause" msgstr "tilby en kort pause" #: lib/pychess/Players/Human.py:58 msgid "offer to resume" msgstr "tilby fortsettelse" #: lib/pychess/Players/Human.py:59 msgid "offer to switch sides" msgstr "tilby å bytte sider" #: lib/pychess/Players/Human.py:60 msgid "offer a takeback" msgstr "tilby å gjøre om trekk" #: lib/pychess/Players/Human.py:61 msgid "ask your opponent to move" msgstr "be motstanderen din om å gjøre et trekk" #: lib/pychess/Players/Human.py:66 msgid "Your opponent is not out of time." msgstr "Motstanderen din har ikke brukt opp tiden sin." #: lib/pychess/Players/Human.py:68 msgid "The clock hasn't been started yet." msgstr "Klokkene har ikke blitt startet ennå." #: lib/pychess/Players/Human.py:70 msgid "You can't switch colors during the game." msgstr "Du kan ikke bytte farger under partiet." #: lib/pychess/Players/Human.py:72 msgid "You have tried to undo too many moves." msgstr "Du kan ikke gjøre om for mange trekk." #: lib/pychess/Players/Human.py:180 msgid "Your opponent asks you to hurry!" msgstr "Motstanderen din ber deg om å skynde deg" #: lib/pychess/Players/Human.py:181 msgid "" "Generally this means nothing, as the game is time-based, but if you want to " "please your opponent, perhaps you should get going." msgstr "" #: lib/pychess/Players/Human.py:259 #, python-format msgid "%s was declined by your opponent" msgstr "%s ble avslått av motstanderen din" #: lib/pychess/Players/Human.py:260 #, python-format msgid "Resend %s?" msgstr "" #: lib/pychess/Players/Human.py:267 msgid "Resend" msgstr "" #: lib/pychess/Players/Human.py:275 #, python-format msgid "%s was withdrawn by your opponent" msgstr "%s ble trukket tilbake av motstanderen din" #: lib/pychess/Players/Human.py:276 msgid "Your opponent seems to have changed their mind." msgstr "" #: lib/pychess/Players/Human.py:290 #, python-format msgid "Unable to accept %s" msgstr "Kan ikke akseptere %s" #: lib/pychess/Players/Human.py:291 msgid "Probably because it has been withdrawn." msgstr "" #: lib/pychess/Players/Human.py:298 #, python-format msgid "%s returns an error" msgstr "%s returnerer en feil" #: lib/pychess/Savers/chessalpha2.py:12 msgid "Chess Alpha 2 Diagram" msgstr "Chess Alpha 2 Diagram" #: lib/pychess/Savers/chesspastebin.py:39 msgid "Game shared at " msgstr "" #: lib/pychess/Savers/chesspastebin.py:41 msgid "(Link is available on clipboard.)" msgstr "" #: lib/pychess/Savers/database.py:19 msgid "PyChess database" msgstr "" #: lib/pychess/Savers/epd.py:12 msgid "Chess Position" msgstr "Sjakkstilling" #: lib/pychess/Savers/fen.py:12 msgid "Simple Chess Position" msgstr "Enkel sjakkstilliing" #: lib/pychess/Savers/fen.py:44 lib/pychess/Savers/pgn.py:329 msgid "The game can't be loaded, because of an error parsing FEN" msgstr "" #: lib/pychess/Savers/pgnbase.py:100 #, python-format msgid "" "The game can't be read to end, because of an error parsing move %(moveno)s " "'%(notation)s'." msgstr "Partiet kan ikke leses til enden fordi en feil i tolkningen av trekk %(moveno)s '%(notation)s'." #: lib/pychess/Savers/pgnbase.py:102 #, python-format msgid "The move failed because %s." msgstr "Trekket feilet fordi %s." #: lib/pychess/Savers/pgnbase.py:110 #, python-format msgid "Error parsing move %(moveno)s %(mstr)s" msgstr "" #: lib/pychess/Savers/pgn.py:28 msgid "Chess Game" msgstr "Sjakkparti" #: lib/pychess/Savers/pgn.py:362 msgid "Invalid move." msgstr "" #: lib/pychess/Savers/png.py:15 msgid "Png image" msgstr "" #: lib/pychess/System/ping.py:31 msgid "Destination Host Unreachable" msgstr "Målvert utilgjengelig" #: lib/pychess/System/ping.py:74 msgid "Died" msgstr "Døde" #: lib/pychess/Utils/GameModel.py:147 msgid "Local Event" msgstr "Lokal turnering" #: lib/pychess/Utils/GameModel.py:148 msgid "Local Site" msgstr "Lokalt nettsted" #: lib/pychess/Utils/repr.py:12 msgid "Pawn" msgstr "Bonde" #: lib/pychess/Utils/repr.py:14 msgid "P" msgstr "B" #: lib/pychess/Utils/repr.py:14 msgid "N" msgstr "S" #: lib/pychess/Utils/repr.py:14 msgid "R" msgstr "T" #: lib/pychess/Utils/repr.py:14 msgid "Q" msgstr "D" #: lib/pychess/Utils/repr.py:14 msgid "K" msgstr "K" #: lib/pychess/Utils/repr.py:17 msgid "The game ended in a draw" msgstr "Partiet endte remis" #: lib/pychess/Utils/repr.py:18 #, python-format msgid "%(white)s won the game" msgstr "%(white)s vant partiet" #: lib/pychess/Utils/repr.py:19 #, python-format msgid "%(black)s won the game" msgstr "%(black)s vant partiet" #: lib/pychess/Utils/repr.py:20 msgid "The game has been killed" msgstr "Partiet har blitt annullert" #: lib/pychess/Utils/repr.py:21 msgid "The game has been adjourned" msgstr "Partiet har blitt pauset" #: lib/pychess/Utils/repr.py:22 msgid "The game has been aborted" msgstr "Partiet har blitt avbrutt" #: lib/pychess/Utils/repr.py:26 msgid "Because neither player has sufficient material to mate" msgstr "Fordi ingen av spillerene har nok mattmaterial" #: lib/pychess/Utils/repr.py:27 msgid "Because the same position was repeated three times in a row" msgstr "Fordi den samme stillingen ble gjentatt tre ganger på rad" #: lib/pychess/Utils/repr.py:28 msgid "Because the last 50 moves brought nothing new" msgstr "Fordi de siste 50 trekkene ikke har ført til noe nytt" #: lib/pychess/Utils/repr.py:29 msgid "Because both players ran out of time" msgstr "Fordi begge spillerne gikk tom for tid" #: lib/pychess/Utils/repr.py:30 #, python-format msgid "Because %(mover)s stalemated" msgstr "Fordi %(mover)s ble satt patt" #: lib/pychess/Utils/repr.py:31 msgid "Because both players agreed to a draw" msgstr "" #: lib/pychess/Utils/repr.py:32 lib/pychess/Utils/repr.py:42 msgid "Because of adjudication by an admin" msgstr "Fordi det ble avgjort av en admin" #: lib/pychess/Utils/repr.py:33 msgid "Because the game exceed the max length" msgstr "Fordi partiet overgikk makslengden" #: lib/pychess/Utils/repr.py:34 #, python-format msgid "" "Because %(white)s ran out of time and %(black)s has insufficient material to" " mate" msgstr "Fordi %(white)s gikk tom for tid og %(black)s ikke har nok materiale til å sette matt" #: lib/pychess/Utils/repr.py:35 #, python-format msgid "" "Because %(black)s ran out of time and %(white)s has insufficient material to" " mate" msgstr "Fordi %(black)s gikk tom for tid og %(white)s ikke har nok materiale til å sette matt" #: lib/pychess/Utils/repr.py:36 msgid "Because both players have the same amount of pieces" msgstr "" #: lib/pychess/Utils/repr.py:38 #, python-format msgid "Because %(loser)s resigned" msgstr "Fordi %(loser)s ga opp" #: lib/pychess/Utils/repr.py:39 #, python-format msgid "Because %(loser)s ran out of time" msgstr "Fordi %(loser)s gikk tom for tid" #: lib/pychess/Utils/repr.py:40 #, python-format msgid "Because %(loser)s was checkmated" msgstr "Fordi %(loser)s ble satt matt" #: lib/pychess/Utils/repr.py:41 #, python-format msgid "Because %(loser)s disconnected" msgstr "Fordi %(loser)s ble frakoblet" #: lib/pychess/Utils/repr.py:43 #, python-format msgid "Because %(winner)s has fewer pieces" msgstr "" #: lib/pychess/Utils/repr.py:44 #, python-format msgid "Because %(winner)s lost all pieces" msgstr "" #: lib/pychess/Utils/repr.py:45 #, python-format msgid "Because %(loser)s king exploded" msgstr "" #: lib/pychess/Utils/repr.py:46 #, python-format msgid "Because %(winner)s king reached the center" msgstr "" #: lib/pychess/Utils/repr.py:47 #, python-format msgid "Because %(winner)s was giving check 3 times" msgstr "" #: lib/pychess/Utils/repr.py:49 msgid "Because a player lost connection" msgstr "Fordi en spiller ble frakoblet" #: lib/pychess/Utils/repr.py:50 msgid "Because both players agreed to an adjournment" msgstr "" #: lib/pychess/Utils/repr.py:51 msgid "Because the server was shut down" msgstr "" #: lib/pychess/Utils/repr.py:52 msgid "" "Because a player lost connection and the other player requested adjournment" msgstr "Fordi en spiller ble frakoblet og den andre spilleren ba om utsettelse" #: lib/pychess/Utils/repr.py:53 #, python-format msgid "" "Because %(black)s lost connection to the server and %(white)s requested " "adjournment" msgstr "" #: lib/pychess/Utils/repr.py:54 #, python-format msgid "" "Because %(white)s lost connection to the server and %(black)s requested " "adjournment" msgstr "" #: lib/pychess/Utils/repr.py:55 #, python-format msgid "Because %(white)s lost connection to the server" msgstr "" #: lib/pychess/Utils/repr.py:56 #, python-format msgid "Because %(black)s lost connection to the server" msgstr "" #: lib/pychess/Utils/repr.py:58 msgid "Because of adjudication by an admin. No rating changes have occurred." msgstr "" #: lib/pychess/Utils/repr.py:59 msgid "" "Because both players agreed to abort the game. No rating changes have " "occurred." msgstr "" #: lib/pychess/Utils/repr.py:60 msgid "Because of courtesy by a player. No rating changes have occurred." msgstr "" #: lib/pychess/Utils/repr.py:61 msgid "" "Because a player aborted the game. Either player can abort the game without " "the other's consent before the second move. No rating changes have occurred." msgstr "" #: lib/pychess/Utils/repr.py:62 msgid "" "Because a player disconnected and there are too few moves to warrant " "adjournment. No rating changes have occurred." msgstr "" #: lib/pychess/Utils/repr.py:63 msgid "Because the server was shut down. No rating changes have occurred." msgstr "" #: lib/pychess/Utils/repr.py:65 #, python-format msgid "Because the %(white)s engine died" msgstr "Fordi %(white)s motor døde" #: lib/pychess/Utils/repr.py:66 #, python-format msgid "Because the %(black)s engine died" msgstr "Fordi %(black)s motor døde" #: lib/pychess/Utils/repr.py:67 msgid "Because the connection to the server was lost" msgstr "Fordi tilkoblingen til tjeneren ble mistet" #: lib/pychess/Utils/repr.py:68 msgid "The reason is unknown" msgstr "Årsaken er ukjent" #: lib/pychess/Utils/TimeModel.py:229 msgid "min" msgstr "min" #: lib/pychess/Utils/TimeModel.py:231 msgid "sec" msgstr "sek" #: lib/pychess/Variants/asean.py:12 msgid "" "ASEAN: http://www.ncf-" "phil.org/downloadables/2014/May/Asean_chess/Laws_of_ASEAN_Chess_2011_Nov_26.doc" msgstr "" #: lib/pychess/Variants/asean.py:13 msgid "ASEAN" msgstr "" #: lib/pychess/Variants/asean.py:33 msgid "Makruk: http://en.wikipedia.org/wiki/Makruk" msgstr "" #: lib/pychess/Variants/asean.py:34 msgid "Makruk" msgstr "" #: lib/pychess/Variants/asean.py:60 msgid "Cambodian: http://www.khmerinstitute.org/culture/ok.html" msgstr "" #: lib/pychess/Variants/asean.py:61 msgid "Cambodian" msgstr "" #: lib/pychess/Variants/asean.py:86 msgid "" "Ai-Wok: http://www.open-" "aurec.com/wbforum/viewtopic.php?p=199364&sid=20963a1de2c164050de019e5ed6bf7c4#p199364" msgstr "" #: lib/pychess/Variants/asean.py:87 msgid "Ai-Wok" msgstr "" #: lib/pychess/Variants/asean.py:111 msgid "Sittuyin: http://en.wikipedia.org/wiki/Sittuyin" msgstr "" #: lib/pychess/Variants/asean.py:112 msgid "Sittuyin" msgstr "" #: lib/pychess/Variants/asymmetricrandom.py:12 msgid "" "FICS wild/4: http://www.freechess.org/Help/HelpFiles/wild.html\n" "* Randomly chosen pieces (two queens or three rooks possible)\n" "* Exactly one king of each color\n" "* Pieces placed randomly behind the pawns, SUBJECT TO THE CONSTRAINT THAT THE BISHOPS ARE BALANCED\n" "* No castling\n" "* Black's arrangement DOES NOT mirrors white's" msgstr "" #: lib/pychess/Variants/asymmetricrandom.py:18 msgid "Asymmetric Random" msgstr "Asymmetrisk Random" #: lib/pychess/Variants/atomic.py:14 msgid "FICS atomic: http://www.freechess.org/Help/HelpFiles/atomic.html" msgstr "" #: lib/pychess/Variants/blindfold.py:7 msgid "" "Classic chess rules with hidden figurines\n" "http://en.wikipedia.org/wiki/Blindfold_chess" msgstr "" #: lib/pychess/Variants/blindfold.py:9 #: lib/pychess/widgets/newGameDialog.py:264 msgid "Blindfold" msgstr "Blindsjakk" #: lib/pychess/Variants/blindfold.py:18 msgid "" "Classic chess rules with hidden pawns\n" "http://en.wikipedia.org/wiki/Blindfold_chess" msgstr "" #: lib/pychess/Variants/blindfold.py:20 msgid "Hidden pawns" msgstr "" #: lib/pychess/Variants/blindfold.py:29 msgid "" "Classic chess rules with hidden pieces\n" "http://en.wikipedia.org/wiki/Blindfold_chess" msgstr "" #: lib/pychess/Variants/blindfold.py:31 msgid "Hidden pieces" msgstr "" #: lib/pychess/Variants/blindfold.py:40 msgid "" "Classic chess rules with all pieces white\n" "http://en.wikipedia.org/wiki/Blindfold_chess" msgstr "" #: lib/pychess/Variants/blindfold.py:42 msgid "All white" msgstr "" #: lib/pychess/Variants/bughouse.py:8 msgid "FICS bughouse: http://www.freechess.org/Help/HelpFiles/bughouse.html" msgstr "" #: lib/pychess/Variants/corner.py:12 msgid "" "http://brainking.com/en/GameRules?tp=2\n" "* Placement of the pieces on the 1st and 8th row are randomized\n" "* The king is in the right hand corner\n" "* Bishops must start on opposite color squares\n" "* Black's starting position is obtained by rotating white's position 180 degrees around the board's center\n" "* No castling" msgstr "" #: lib/pychess/Variants/corner.py:18 msgid "Corner" msgstr "Hjørne" #: lib/pychess/Variants/crazyhouse.py:8 msgid "" "FICS crazyhouse: http://www.freechess.org/Help/HelpFiles/crazyhouse.html" msgstr "" #: lib/pychess/Variants/euroshogi.py:9 msgid "EuroShogi: http://en.wikipedia.org/wiki/EuroShogi" msgstr "" #: lib/pychess/Variants/euroshogi.py:10 msgid "EuroShogi" msgstr "" #: lib/pychess/Variants/fischerandom.py:18 msgid "" "http://en.wikipedia.org/wiki/Chess960\n" "FICS wild/fr: http://www.freechess.org/Help/HelpFiles/wild.html" msgstr "" #: lib/pychess/Variants/fischerandom.py:20 msgid "Fischer Random" msgstr "Fischer Random" #: lib/pychess/Variants/kingofthehill.py:8 msgid "" "Bringing your king legally to the center (e4, d4, e5, d5) instantly wins the game!\n" "Normal rules apply in other cases and checkmate also ends the game." msgstr "" #: lib/pychess/Variants/kingofthehill.py:10 msgid "King of the hill" msgstr "" #: lib/pychess/Variants/knightodds.py:8 msgid "One player starts with one less knight piece" msgstr "" #: lib/pychess/Variants/knightodds.py:9 msgid "Knight odds" msgstr "Springerodds" #: lib/pychess/Variants/losers.py:8 msgid "FICS losers: http://www.freechess.org/Help/HelpFiles/losers_chess.html" msgstr "" #: lib/pychess/Variants/normal.py:4 msgid "" "Classic chess rules\n" "http://en.wikipedia.org/wiki/Chess" msgstr "" #: lib/pychess/Variants/normal.py:6 lib/pychess/widgets/newGameDialog.py:157 msgid "Normal" msgstr "Normal" #: lib/pychess/Variants/pawnodds.py:8 msgid "One player starts with one less pawn piece" msgstr "" #: lib/pychess/Variants/pawnodds.py:9 msgid "Pawn odds" msgstr "Bondeodds" #: lib/pychess/Variants/pawnspassed.py:11 msgid "" "FICS wild/8a: http://www.freechess.org/Help/HelpFiles/wild.html\n" "White pawns start on 5th rank and black pawns on the 4th rank" msgstr "" #: lib/pychess/Variants/pawnspassed.py:13 msgid "Pawns Passed" msgstr "Passerte bønder" #: lib/pychess/Variants/pawnspushed.py:10 msgid "" "FICS wild/8: http://www.freechess.org/Help/HelpFiles/wild.html\n" "Pawns start on 4th and 5th ranks rather than 2nd and 7th" msgstr "" #: lib/pychess/Variants/pawnspushed.py:12 msgid "Pawns Pushed" msgstr "Dyttede bønder" #: lib/pychess/Variants/queenodds.py:8 msgid "One player starts with one less queen piece" msgstr "" #: lib/pychess/Variants/queenodds.py:9 msgid "Queen odds" msgstr "Dronningodds" #: lib/pychess/Variants/randomchess.py:11 msgid "" "FICS wild/3: http://www.freechess.org/Help/HelpFiles/wild.html\n" "* Randomly chosen pieces (two queens or three rooks possible)\n" "* Exactly one king of each color\n" "* Pieces placed randomly behind the pawns\n" "* No castling\n" "* Black's arrangement mirrors white's" msgstr "" #: lib/pychess/Variants/randomchess.py:17 #: lib/pychess/widgets/TaskerManager.py:155 msgid "Random" msgstr "Tilfeldig" #: lib/pychess/Variants/rookodds.py:8 msgid "One player starts with one less rook piece" msgstr "" #: lib/pychess/Variants/rookodds.py:9 msgid "Rook odds" msgstr "Tårnodds" #: lib/pychess/Variants/shuffle.py:11 msgid "" "xboard nocastle: http://home.hccnet.nl/h.g.muller/engine-intf.html#8\n" "FICS wild/2: http://www.freechess.org/Help/HelpFiles/wild.html\n" "* Random arrangement of the pieces behind the pawns\n" "* No castling\n" "* Black's arrangement mirrors white's" msgstr "" #: lib/pychess/Variants/suicide.py:11 msgid "" "FICS suicide: http://www.freechess.org/Help/HelpFiles/suicide_chess.html" msgstr "" #: lib/pychess/Variants/theban.py:10 msgid "" "Variant developed by Kai Laskos: " "http://talkchess.com/forum/viewtopic.php?t=40990" msgstr "" #: lib/pychess/Variants/theban.py:11 msgid "Theban" msgstr "" #: lib/pychess/Variants/threecheck.py:10 msgid "Win by giving check 3 times" msgstr "" #: lib/pychess/Variants/threecheck.py:11 msgid "Three-check" msgstr "" #: lib/pychess/Variants/upsidedown.py:10 msgid "" "FICS wild/5: http://www.freechess.org/Help/HelpFiles/wild.html\n" "http://en.wikipedia.org/wiki/Chess_variant#Chess_with_different_starting_positions\n" "Pawns start on their 7th rank rather than their 2nd rank!" msgstr "" #: lib/pychess/Variants/upsidedown.py:13 msgid "Upside Down" msgstr "Opp-ned" #: lib/pychess/Variants/wildcastle.py:10 msgid "" "xboard wildcastle http://home.hccnet.nl/h.g.muller/engine-intf.html#8\n" "FICS wild/0: http://www.freechess.org/Help/HelpFiles/wild.html\n" "* White has the typical set-up at the start.\n" "* Black's pieces are the same, except that the King and Queen are reversed,\n" "* so they are not on the same files as White's King and Queen.\n" "* Castling is done similarly to normal chess:\n" "* o-o-o indicates long castling and o-o short castling." msgstr "" #: lib/pychess/Variants/wildcastle.py:17 msgid "Wildcastle" msgstr "" #: lib/pychess/Variants/wildcastleshuffle.py:11 msgid "" "xboard wildcastle http://home.hccnet.nl/h.g.muller/engine-intf.html#8\n" "FICS wild/1: http://www.freechess.org/Help/HelpFiles/wild.html\n" "* In this variant both sides have the same set of pieces as in normal chess.\n" "* The white king starts on d1 or e1 and the black king starts on d8 or e8,\n" "* and the rooks are in their usual positions.\n" "* Bishops are always on opposite colors.\n" "* Subject to these constraints the position of the pieces on their first ranks is random.\n" "* Castling is done similarly to normal chess:\n" "* o-o-o indicates long castling and o-o short castling." msgstr "" #: lib/pychess/Variants/wildcastleshuffle.py:20 msgid "Wildcastle shuffle" msgstr "" #: lib/pychess/widgets/analyzegameDialog.py:85 msgid "Game analyzing in progress..." msgstr "" #: lib/pychess/widgets/analyzegameDialog.py:86 msgid "Do you want to abort it?" msgstr "" #: lib/pychess/widgets/analyzegameDialog.py:95 #: lib/pychess/widgets/gamewidget.py:202 lib/pychess/widgets/gamewidget.py:320 msgid "Abort" msgstr "" #: lib/pychess/widgets/ChatView.py:125 msgid "Observers" msgstr "" #: lib/pychess/widgets/ChatWindow.py:222 msgid "You have opened no conversations yet" msgstr "Du har ikke åpnet noen samtaler ennå" #: lib/pychess/widgets/ChatWindow.py:254 msgid "Only registered users may talk to this channel" msgstr "Bare registrerte brukere kan snakke i denne kanalen" #: lib/pychess/widgets/ChatWindow.py:312 msgid "No conversation's selected" msgstr "Ingen samtale valgt" #: lib/pychess/widgets/ChatWindow.py:350 msgid "Loading player data" msgstr "Laster spillerdata" #: lib/pychess/widgets/ChatWindow.py:400 msgid "Receiving list of players" msgstr "" #: lib/pychess/widgets/ChatWindow.py:518 msgid "Friends" msgstr "" #: lib/pychess/widgets/ChatWindow.py:529 msgid "Admin" msgstr "" #: lib/pychess/widgets/ChatWindow.py:540 msgid "More channels" msgstr "Flere kanaler" #: lib/pychess/widgets/ChatWindow.py:548 msgid "More players" msgstr "Flere spillere" #: lib/pychess/widgets/ChatWindow.py:558 msgid "Computers" msgstr "" #: lib/pychess/widgets/ChatWindow.py:568 msgid "BlindFold" msgstr "" #: lib/pychess/widgets/ChatWindow.py:578 msgid "Guests" msgstr "" #: lib/pychess/widgets/ChatWindow.py:805 msgid "Conversations" msgstr "Samtaler" #: lib/pychess/widgets/ChatWindow.py:807 msgid "Conversation info" msgstr "Samtaleinformasjon" #: lib/pychess/widgets/enginesDialog.py:152 msgid "Select engine" msgstr "" #: lib/pychess/widgets/enginesDialog.py:156 msgid "Executable files" msgstr "" #: lib/pychess/widgets/enginesDialog.py:176 #: lib/pychess/widgets/enginesDialog.py:210 #: lib/pychess/widgets/enginesDialog.py:235 #, python-format msgid "Unable to add %s" msgstr "" #: lib/pychess/widgets/enginesDialog.py:177 msgid "wine not installed" msgstr "" #: lib/pychess/widgets/enginesDialog.py:211 #: lib/pychess/widgets/enginesDialog.py:236 msgid "There is something wrong with this executable" msgstr "" #: lib/pychess/widgets/enginesDialog.py:266 msgid "Select working directory" msgstr "" #: lib/pychess/widgets/gamenanny.py:115 #, python-format msgid " invalid engine move: %s" msgstr "" #: lib/pychess/widgets/gamenanny.py:134 msgid "Offer Rematch" msgstr "Tilby omkamp" #: lib/pychess/widgets/gamenanny.py:136 lib/pychess/widgets/gamenanny.py:147 #, python-format msgid "Observe %s" msgstr "" #: lib/pychess/widgets/gamenanny.py:168 msgid "Play Rematch" msgstr "Spill omkamp" #: lib/pychess/widgets/gamenanny.py:171 msgid "Undo one move" msgstr "Gjør om ett trekk" #: lib/pychess/widgets/gamenanny.py:173 msgid "Undo two moves" msgstr "Gjør om to trekk" #: lib/pychess/widgets/gamenanny.py:203 msgid "The game is paused" msgstr "" #: lib/pychess/widgets/gamenanny.py:221 lib/pychess/widgets/gamenanny.py:222 msgid "Loaded game" msgstr "Lastet parti" #: lib/pychess/widgets/gamenanny.py:228 msgid "Saved game" msgstr "Lagret parti" #: lib/pychess/widgets/gamenanny.py:232 msgid "Analyzer started" msgstr "" #: lib/pychess/widgets/gamenanny.py:281 msgid "You sent an abort offer" msgstr "" #: lib/pychess/widgets/gamenanny.py:283 msgid "You sent an adjournment offer" msgstr "" #: lib/pychess/widgets/gamenanny.py:285 msgid "You sent a draw offer" msgstr "Du har sendt et remistilbud" #: lib/pychess/widgets/gamenanny.py:287 msgid "You sent a pause offer" msgstr "" #: lib/pychess/widgets/gamenanny.py:289 msgid "You sent a resume offer" msgstr "" #: lib/pychess/widgets/gamenanny.py:291 msgid "You sent an undo offer" msgstr "" #: lib/pychess/widgets/gamenanny.py:293 msgid "You asked your opponent to move" msgstr "" #: lib/pychess/widgets/gamenanny.py:305 #, python-format msgid "Engine, %s, has died" msgstr "Motoren, %s, har dødd" #: lib/pychess/widgets/gamenanny.py:306 msgid "" "PyChess has lost connection to the engine, probably because it has died.\n" "\n" "You can try to start a new game with the engine, or try to play against another one." msgstr "PyChess har mistet kontakten med sjakkmotoren, mest sannsynlig fordi den døde.\n\nDu kan prøve å starte et nytt parti mot motoren eller du kan prøve å spille mot en annen." #: lib/pychess/widgets/gamewidget.py:204 msgid "" "This game can be automatically aborted without rating loss because there has" " not yet been two moves made" msgstr "" #: lib/pychess/widgets/gamewidget.py:206 msgid "Offer Abort" msgstr "" #: lib/pychess/widgets/gamewidget.py:208 msgid "" "Your opponent must agree to abort the game because there has been two or " "more moves made" msgstr "" #: lib/pychess/widgets/gamewidget.py:226 msgid "This game can not be adjourned because one or both players are guests" msgstr "" #: lib/pychess/widgets/gamewidget.py:243 msgid "Claim Draw" msgstr "" #: lib/pychess/widgets/gamewidget.py:325 msgid "Pause" msgstr "" #: lib/pychess/widgets/gamewidget.py:326 msgid "Resume" msgstr "" #: lib/pychess/widgets/gamewidget.py:328 msgid "Offer Pause" msgstr "" #: lib/pychess/widgets/gamewidget.py:329 msgid "Offer Resume" msgstr "" #: lib/pychess/widgets/gamewidget.py:333 msgid "Undo" msgstr "" #: lib/pychess/widgets/gamewidget.py:335 msgid "Offer Undo" msgstr "" #: lib/pychess/widgets/gamewidget.py:550 msgid " has lagged for 30 seconds" msgstr "" #: lib/pychess/widgets/gamewidget.py:566 msgid " is lagging heavily but hasn't disconnected" msgstr "" #: lib/pychess/widgets/gamewidget.py:567 msgid "Continue to wait for opponent, or try to adjourn the game?" msgstr "" #: lib/pychess/widgets/gamewidget.py:575 msgid "Wait" msgstr "" #: lib/pychess/widgets/gamewidget.py:576 msgid "Adjourn" msgstr "" #: lib/pychess/widgets/gamewidget.py:648 msgid "Jump to initial position" msgstr "Gå tilbake til startstillingen" #: lib/pychess/widgets/gamewidget.py:653 msgid "Step back one move" msgstr "Gå tilbake et trekk" #: lib/pychess/widgets/gamewidget.py:658 msgid "Go back to the main line" msgstr "" #: lib/pychess/widgets/gamewidget.py:664 msgid "Step forward one move" msgstr "Gå frem et trekk" #: lib/pychess/widgets/gamewidget.py:669 msgid "Jump to latest position" msgstr "Gå til siste stilling" #: lib/pychess/widgets/gamewidget.py:903 msgid "PyChess was unable to load your panel settings" msgstr "PyChess kunne ikke laste panelinnstillingene dine" #: lib/pychess/widgets/gamewidget.py:904 msgid "" "Your panel settings have been reset. If this problem repeats, you should " "report it to the developers" msgstr "Dine panelinnstillinger har blitt tilbakestilt. Hvis dette problemet gjentar seg bør du rapportere det til utviklerne" #: lib/pychess/widgets/ionest.py:67 lib/pychess/widgets/newGameDialog.py:389 #: lib/pychess/widgets/TaskerManager.py:210 msgid "You" msgstr "" #: lib/pychess/widgets/ionest.py:70 lib/pychess/widgets/newGameDialog.py:390 #: lib/pychess/widgets/preferencesDialog.py:61 #: lib/pychess/widgets/TaskerManager.py:213 msgid "Guest" msgstr "Gjest" #: lib/pychess/widgets/ionest.py:93 msgid "Error loading game" msgstr "" #: lib/pychess/widgets/ionest.py:127 lib/pychess/widgets/newGameDialog.py:480 msgid "Open Game" msgstr "Åpent spill" #: lib/pychess/widgets/ionest.py:137 msgid "All Files" msgstr "Alle Filer" #: lib/pychess/widgets/ionest.py:140 msgid "Detect type automatically" msgstr "Oppdag type automatisk" #: lib/pychess/widgets/ionest.py:146 msgid "All Chess Files" msgstr "Alle sjakkfiler" #: lib/pychess/widgets/ionest.py:228 msgid "Save Game" msgstr "Lagre parti" #: lib/pychess/widgets/ionest.py:228 msgid "Export position" msgstr "" #: lib/pychess/widgets/ionest.py:232 lib/pychess/widgets/ionest.py:360 msgid "vs." msgstr "vs." #: lib/pychess/widgets/ionest.py:249 #, python-format msgid "Unknown file type '%s'" msgstr "Ukjent filtype %s" #: lib/pychess/widgets/ionest.py:250 #, python-format msgid "" "Was unable to save '%(uri)s' as PyChess doesn't know the format " "'%(ending)s'." msgstr "Kunne ikke lagre '%(uri)s' siden PyChess ikke kjenner formatet '%(ending)s'." #: lib/pychess/widgets/ionest.py:266 #, python-format msgid "Unable to save file '%s'" msgstr "Klarer ikke å lagre fil '%s'" #: lib/pychess/widgets/ionest.py:268 msgid "" "You don't have the necessary rights to save the file.\n" "Please ensure that you have given the right path and try again." msgstr "Du har ikke nødvendige rettigheter til å lagre filen\nVennligst forsikre deg om at korrekt filsti er angitt og forsøk igjen." #: lib/pychess/widgets/ionest.py:276 msgid "_Replace" msgstr "E_rstatt" #: lib/pychess/widgets/ionest.py:280 msgid "File exists" msgstr "Filen eksisterer" #: lib/pychess/widgets/ionest.py:282 #, python-format msgid "" "A file named '%s' already exists. Would you like to replace " "it?" msgstr "Filen '%s' eksistererer allerede. Ønsker du å erstatte denne?" #: lib/pychess/widgets/ionest.py:283 #, python-format msgid "" "The file already exists in '%s'. If you replace it, its content will be " "overwritten." msgstr "Filen eksisterer allerede i '%s'. Dersom du ønsker å erstatte den, vil dens innhold bli overskrevet." #: lib/pychess/widgets/ionest.py:299 msgid "Could not save the file" msgstr "Klarte ikke lagre filen" #: lib/pychess/widgets/ionest.py:300 msgid "PyChess was not able to save the game" msgstr "PyChess klarte ikke lagre partiet" #: lib/pychess/widgets/ionest.py:301 #, python-format msgid "The error was: %s" msgstr "Feilen var: %s" #: lib/pychess/widgets/ionest.py:325 #, python-format msgid "There is %d game with unsaved moves." msgid_plural "There are %d games with unsaved moves." msgstr[0] "Det er %d parti med ulagrede trekk." msgstr[1] "Det er %d partier med ulagrede trekk." #: lib/pychess/widgets/ionest.py:328 msgid "Save moves before closing?" msgstr "Lagre trekk før du lukker?" #: lib/pychess/widgets/ionest.py:339 msgid "Unable to save to configured file. Save the games before closing?" msgstr "" #: lib/pychess/widgets/ionest.py:366 #, python-format msgid "_Save %d document" msgid_plural "_Save %d documents" msgstr[0] "_Lagre %d dokument" msgstr[1] "_Lagre %d dokumenter" #: lib/pychess/widgets/ionest.py:412 msgid "Save the current game before you close it?" msgstr "" #: lib/pychess/widgets/ionest.py:420 msgid "" "Unable to save to configured file. Save the current game before you close " "it?" msgstr "" #: lib/pychess/widgets/ionest.py:434 msgid "" "It is not possible later to continue the game,\n" "if you don't save it." msgstr "Det vil ikke være mulig å fortsette partiet senere\ndersom du ikke lagrer det." #: lib/pychess/widgets/LogDialog.py:26 msgid "PyChess Information Window" msgstr "PyChess informasjonsvindu" #: lib/pychess/widgets/LogDialog.py:184 lib/pychess/widgets/LogDialog.py:188 msgid "of" msgstr "av" #: lib/pychess/widgets/newGameDialog.py:84 #: lib/pychess/widgets/newGameDialog.py:85 msgid "Human Being" msgstr "Menneske" #: lib/pychess/widgets/newGameDialog.py:155 msgid "Rapid" msgstr "Hurtig" #: lib/pychess/widgets/newGameDialog.py:224 msgid "Minutes:" msgstr "Minutter:" #: lib/pychess/widgets/newGameDialog.py:228 msgid "Gain:" msgstr "Tillegg:" #: lib/pychess/widgets/newGameDialog.py:241 #, python-format msgid "%(name)s %(minutes)d min + %(gain)d sec/move" msgstr "%(name)s %(minutes)d min + %(gain)d sek/trekk" #: lib/pychess/widgets/newGameDialog.py:244 #, python-format msgid "%(name)s %(minutes)d min %(gain)d sec/move" msgstr "%(name)s %(minutes)d min %(gain)d sek/trekk" #: lib/pychess/widgets/newGameDialog.py:247 #, python-format msgid "%(name)s %(minutes)d min" msgstr "%(name)s %(minutes)d min" #: lib/pychess/widgets/newGameDialog.py:265 msgid "Odds" msgstr "Odds" #: lib/pychess/widgets/newGameDialog.py:269 msgid "Asian variants" msgstr "" #: lib/pychess/widgets/newGameDialog.py:301 msgid " chess" msgstr "" #: lib/pychess/widgets/newGameDialog.py:682 msgid "Type or paste PGN game or FEN positions here" msgstr "" #: lib/pychess/widgets/newGameDialog.py:725 msgid "Enter Game" msgstr "Legg inn parti" #: lib/pychess/widgets/preferencesDialog.py:123 msgid "Select book file" msgstr "" #: lib/pychess/widgets/preferencesDialog.py:128 msgid "Opening books" msgstr "" #: lib/pychess/widgets/preferencesDialog.py:156 msgid "Select Gaviota TB path" msgstr "" #: lib/pychess/widgets/preferencesDialog.py:331 msgid "Open Sound File" msgstr "Åpne lydfil" #: lib/pychess/widgets/preferencesDialog.py:341 msgid "Sound files" msgstr "" #: lib/pychess/widgets/preferencesDialog.py:485 msgid "Undescribed panel" msgstr "Ubeskrevet panel" #: lib/pychess/widgets/preferencesDialog.py:678 msgid "Select auto save path" msgstr "" #: lib/pychess/widgets/tipOfTheDay.py:51 msgid "" "You can start a new game by Game > New Game, in New Game " "window do you can choose Players, Time Control and Chess " "Variants." msgstr "Du kan starte et nytt parti med PartiNytt parti, i vinduet «Nytt parti» kan du velge Spillere, Tidskontroll og Sjakkvarianter." #: lib/pychess/widgets/tipOfTheDay.py:52 msgid "" "You can choose from 20 different difficulties to play against the computer." msgstr "" #: lib/pychess/widgets/tipOfTheDay.py:53 msgid "" "Chess Variants are like the pieces of the last line will be placed on the " "board." msgstr "Sjakkvarianter er som hvordan brikkene på den siste linjen blir plassert på brettet." #: lib/pychess/widgets/tipOfTheDay.py:54 msgid "" "To save a game Game > Save Game As, give the filename and " "choose where you want to be saved. At the bottom choose extension type of " "the file, and Save." msgstr "For å lagre et parti PartiLagre parti som, angi filnavnet og velg hvor du vil det skal lagres. På bunnen velger du filtypen og Lagre" #: lib/pychess/widgets/tipOfTheDay.py:55 msgid "" "Do you know that you can call flag when the clock is with you, " "Actions > Call Flag." msgstr "Visste du at du kan kreve en seier på tid når det er din tur med HandlingerKrev vinst på tid." #: lib/pychess/widgets/tipOfTheDay.py:56 msgid "Pressing Ctrl+Z to offer opponent the possible rollback moves." msgstr "Trykk Ctrl+Z for å tilby motstanderen å rulle tilbake noen trekk." #: lib/pychess/widgets/tipOfTheDay.py:57 msgid "" "To play on Fullscreen mode, just type F11. Coming back, F11 " "again." msgstr "For å spille i Fullskjerm, bare trykk F11. Trykk F11 igjen for å forlate fullskjerm igjen." #: lib/pychess/widgets/tipOfTheDay.py:58 msgid "Hint mode analyzing your game, enable this type Ctrl+H." msgstr "Hintmodus analyserer partiet ditt, aktiver dette ved å trykke Ctrl+H." #: lib/pychess/widgets/tipOfTheDay.py:59 msgid "" "Spy mode analyzing the oponnent game, enable this type Ctrl+Y." msgstr "Spionmodus analyserer din motstanders parti, aktiver ved å trykke Ctrl+Y." #: lib/pychess/widgets/tipOfTheDay.py:60 msgid "" "You can play chess listening to the sounds of the game, for that, " "Settings > Preferences > Sound tab, enable Use " "sounds in PyChess and choose your preferred sounds." msgstr "Du kan spille sjakk ved å lytte til lydene fra spillet. For dette gå til InnstillingerPreferanserLydfane, aktiver Bruk lyder i PyChess og velg dine foretrukne lyder." #: lib/pychess/widgets/tipOfTheDay.py:61 msgid "" "Do you know that you can help translate Pychess in your language, " "Help > Translate Pychess." msgstr "Vet du at du kan hjelpe med å oversette PyChess til ditt språk? HjelpOversett PyChess." #: lib/pychess/widgets/tipOfTheDay.py:62 msgid "" "Do you know that it is possible to finish a chess game in just 2 turns?" msgstr "Vet du at det er mulig å avslutte et parti sjakk på kun 2 turer?" #: lib/pychess/widgets/tipOfTheDay.py:63 msgid "" "Do you know that the number of possible chess games exceeds the number of " "atoms in the Universe?" msgstr "Vet du at antallet mulige sjakkpartier overgår antallet atomer i universet?" #: lib/pychess/ic/managers/ChatManager.py:184 msgid "Shout" msgstr "Rop" #: lib/pychess/ic/managers/ChatManager.py:185 msgid "Chess Shout" msgstr "Sjakkrop" #: lib/pychess/ic/managers/ChatManager.py:195 #, python-format msgid "Unofficial channel %d" msgstr "Uoffisiell kanal %d" #: lib/pychess/Utils/lutils/LBoard.py:152 #, python-format msgid "" "FEN needs 6 data fields. \n" "\n" "%s" msgstr "" #: lib/pychess/Utils/lutils/LBoard.py:154 #, python-format msgid "" "FEN needs at least 2 data fields in fenstr. \n" "\n" "%s" msgstr "" #: lib/pychess/Utils/lutils/LBoard.py:175 #, python-format msgid "" "Needs 7 slashes in piece placement field. \n" "\n" "%s" msgstr "" #: lib/pychess/Utils/lutils/LBoard.py:178 #, python-format msgid "" "Active color field must be one of w or b. \n" "\n" "%s" msgstr "" #: lib/pychess/Utils/lutils/LBoard.py:189 #, python-format msgid "" "Castling availability field is not legal. \n" "\n" "%s" msgstr "" #: lib/pychess/Utils/lutils/LBoard.py:192 #, python-format msgid "" "En passant cord is not legal. \n" "\n" "%s" msgstr "" #: lib/pychess/Utils/lutils/lmove.py:260 msgid "invalid promoted piece" msgstr "" #: lib/pychess/Utils/lutils/lmove.py:272 msgid "the move needs a piece and a cord" msgstr "trekket trenger en brikke og et koordinat" #: lib/pychess/Utils/lutils/lmove.py:306 lib/pychess/Utils/lutils/lmove.py:556 msgid "promotion move without promoted piece is incorrect" msgstr "" #: lib/pychess/Utils/lutils/lmove.py:312 #, python-format msgid "the captured cord (%s) is incorrect" msgstr "fangstkoordinatet (%s) er ukorrekt" #: lib/pychess/Utils/lutils/lmove.py:323 #, python-format msgid "the end cord (%s) is incorrect" msgstr "" #: lib/pychess/Utils/lutils/strateval.py:24 sidepanel/commentPanel.py:191 #: sidepanel/commentPanel.py:208 msgid "and" msgstr "og" #: lib/pychess/Utils/lutils/strateval.py:43 msgid "draws" msgstr "spiller remis" #: lib/pychess/Utils/lutils/strateval.py:45 msgid "mates" msgstr "setter sjakk matt" #: lib/pychess/Utils/lutils/strateval.py:49 msgid "puts opponent in check" msgstr "setter motstander i sjakk" #: lib/pychess/Utils/lutils/strateval.py:73 msgid "improves king safety" msgstr "styrker kongestillingen" #: lib/pychess/Utils/lutils/strateval.py:75 msgid "slightly improves king safety" msgstr "gir en liten forbedring av kongestillingen" #: lib/pychess/Utils/lutils/strateval.py:108 msgid "moves a rook to an open file" msgstr "flytter et tårn til en åpen linje" #: lib/pychess/Utils/lutils/strateval.py:109 msgid "moves an rook to a half-open file" msgstr "flytter et tårn til en halvåpen linje" #: lib/pychess/Utils/lutils/strateval.py:119 #: lib/pychess/Utils/lutils/strateval.py:121 #: lib/pychess/Utils/lutils/strateval.py:124 #: lib/pychess/Utils/lutils/strateval.py:126 #, python-format msgid "moves bishop into fianchetto: %s" msgstr "flankerer løperen: %s" #: lib/pychess/Utils/lutils/strateval.py:132 #, python-format msgid "promotes a Pawn to a %s" msgstr "forvandler en bonde til en %s" #: lib/pychess/Utils/lutils/strateval.py:135 msgid "castles" msgstr "rokerer" #: lib/pychess/Utils/lutils/strateval.py:158 msgid "takes back material" msgstr "vinner tilbake materiell" #: lib/pychess/Utils/lutils/strateval.py:162 #: lib/pychess/Utils/lutils/strateval.py:170 msgid "sacrifies material" msgstr "ofrer materiell" #: lib/pychess/Utils/lutils/strateval.py:164 msgid "exchanges material" msgstr "bytter av materiell" #: lib/pychess/Utils/lutils/strateval.py:166 msgid "captures material" msgstr "slår materiell" #: lib/pychess/Utils/lutils/strateval.py:291 #, python-format msgid "rescues a %s" msgstr "redder en %s" #: lib/pychess/Utils/lutils/strateval.py:294 #, python-format msgid "threatens to win material by %s" msgstr "truer å vinne material ved %s" #: lib/pychess/Utils/lutils/strateval.py:296 #, python-format msgid "increases the pressure on %s" msgstr "øker trykket mot %s" #: lib/pychess/Utils/lutils/strateval.py:298 #, python-format msgid "defends %s" msgstr "dekker %s" #: lib/pychess/Utils/lutils/strateval.py:336 #, python-format msgid "pins an enemy %(oppiece)s on the %(piece)s at %(cord)s" msgstr "binder en fiendes %(oppiece)s til %(piece)s på %(cord)s" #: lib/pychess/Utils/lutils/strateval.py:369 #, python-format msgid "White has a new piece in outpost: %s" msgstr "Hvit har en ny brikke på utpost: %s" #: lib/pychess/Utils/lutils/strateval.py:377 #, python-format msgid "Black has a new piece in outpost: %s" msgstr "Svart har en ny brikke på utpost: %s" #: lib/pychess/Utils/lutils/strateval.py:416 #, python-format msgid "%(color)s has a new passed pawn on %(cord)s" msgstr "%(color)s har en ny passert bonde på %(cord)s" #: lib/pychess/Utils/lutils/strateval.py:470 msgid "half-open" msgstr "halvåpen" #: lib/pychess/Utils/lutils/strateval.py:472 #, python-format msgid "in the %(x)s%(y)s file" msgstr "i linjen %(x)s%(y)s" #: lib/pychess/Utils/lutils/strateval.py:474 #, python-format msgid "in the %(x)s%(y)s files" msgstr "i linjene %(x)s%(y)s" #: lib/pychess/Utils/lutils/strateval.py:477 #, python-format msgid "%(color)s got a double pawn %(place)s" msgstr "%(color)s har en dobbeltbonde %(place)s" #: lib/pychess/Utils/lutils/strateval.py:478 #, python-format msgid "%(color)s got new double pawns %(place)s" msgstr "%(color)s har nye dobbeltbønder %(place)s" #: lib/pychess/Utils/lutils/strateval.py:485 #, python-format msgid "%(color)s got an isolated pawn in the %(x)s file" msgid_plural "%(color)s got isolated pawns in the %(x)s files" msgstr[0] "%(color)s har en isolert bonde i linjen %(x)s" msgstr[1] "%(color)s har isolerte bønder i linjene %(x)s" #: lib/pychess/Utils/lutils/strateval.py:492 #, python-format msgid "%s moves pawns into stonewall formation" msgstr "%s flytter bøndene inn i en stonewall-oppstilling" #: lib/pychess/Utils/lutils/strateval.py:507 #: lib/pychess/Utils/lutils/strateval.py:514 #, python-format msgid "%s can no longer castle" msgstr "%s kan ikke rokere lenger" #: lib/pychess/Utils/lutils/strateval.py:508 #: lib/pychess/Utils/lutils/strateval.py:515 #, python-format msgid "%s can no longer castle in queenside" msgstr "%s kan ikke rokere på dronningsiden" #: lib/pychess/Utils/lutils/strateval.py:510 #: lib/pychess/Utils/lutils/strateval.py:517 #, python-format msgid "%s can no longer castle in kingside" msgstr "%s kan ikke rokere på kongesiden" #: lib/pychess/Utils/lutils/strateval.py:551 #, python-format msgid "%(opcolor)s has a new trapped bishop on %(cord)s" msgstr "%(opcolor)s har en ny fanget løper på %(cord)s" #: lib/pychess/Utils/lutils/strateval.py:573 #, python-format msgid "develops a pawn: %s" msgstr "utvikler en bonde: %s" #: lib/pychess/Utils/lutils/strateval.py:574 #, python-format msgid "brings a pawn closer to the backrow: %s" msgstr "bringer en bonde nærmere sisteraden: %s" #: lib/pychess/Utils/lutils/strateval.py:591 #, python-format msgid "brings a %(piece)s closer to enemy king: %(cord)s" msgstr "bringer en %(piece)s nærmere fiendens konge: %(cord)s" #: lib/pychess/Utils/lutils/strateval.py:594 #, python-format msgid "develops a %(piece)s: %(cord)s" msgstr "utvikler en %(piece)s: %(cord)s" #: lib/pychess/Utils/lutils/strateval.py:612 #, python-format msgid "places a %(piece)s more active: %(cord)s" msgstr "setter en %(piece)s mer aktivt: %(cord)s" #: lib/pychess/Utils/lutils/strateval.py:638 msgid "White should do pawn storm in right" msgstr "Hvit burde foreta en bondestorm til høyre" #: lib/pychess/Utils/lutils/strateval.py:640 msgid "Black should do pawn storm in left" msgstr "Svart burde foreta en bondestorm til venstre" #: lib/pychess/Utils/lutils/strateval.py:643 msgid "White should do pawn storm in left" msgstr "Hvit burde foreta en bondestorm til venstre" #: lib/pychess/Utils/lutils/strateval.py:645 msgid "Black should do pawn storm in right" msgstr "Svart burde foreta en bondestorm til høyre" #: lib/pychess/Utils/lutils/strateval.py:671 msgid "Black has a rather cramped position" msgstr "Svart har en temmelig trang stilling" #: lib/pychess/Utils/lutils/strateval.py:673 msgid "Black has a slightly cramped position" msgstr "Svart har en noe trang stilling" #: lib/pychess/Utils/lutils/strateval.py:675 msgid "White has a rather cramped position" msgstr "Hvit har en temmelig trang stilling" #: lib/pychess/Utils/lutils/strateval.py:677 msgid "White has a slightly cramped position" msgstr "Hvit har en noe trang stilling" #: sidepanel/annotationPanel.py:26 msgid "Annotation" msgstr "" #: sidepanel/annotationPanel.py:29 msgid "Annotated game" msgstr "" #: sidepanel/annotationPanel.py:236 msgid "Copy PGN" msgstr "" #: sidepanel/annotationPanel.py:249 msgid "Add start comment" msgstr "" #: sidepanel/annotationPanel.py:254 msgid "Add comment" msgstr "" #: sidepanel/annotationPanel.py:258 sidepanel/annotationPanel.py:316 msgid "Edit comment" msgstr "" #: sidepanel/annotationPanel.py:269 msgid "Forced move" msgstr "" #: sidepanel/annotationPanel.py:274 msgid "Add move symbol" msgstr "" #: sidepanel/annotationPanel.py:280 msgid "Unclear position" msgstr "" #: sidepanel/annotationPanel.py:289 msgid "Zugzwang" msgstr "" #: sidepanel/annotationPanel.py:290 msgid "Development adv." msgstr "" #: sidepanel/annotationPanel.py:291 msgid "Initiative" msgstr "" #: sidepanel/annotationPanel.py:292 msgid "With attack" msgstr "" #: sidepanel/annotationPanel.py:293 msgid "Compensation" msgstr "" #: sidepanel/annotationPanel.py:294 msgid "Counterplay" msgstr "" #: sidepanel/annotationPanel.py:295 msgid "Time pressure" msgstr "" #: sidepanel/annotationPanel.py:300 msgid "Add evaluation symbol" msgstr "" #: sidepanel/annotationPanel.py:304 msgid "Remove symbols" msgstr "" #: sidepanel/annotationPanel.py:911 #, python-format msgid "round %s" msgstr "" #: sidepanel/bookPanel.py:21 msgid "Hints" msgstr "" #: sidepanel/bookPanel.py:25 msgid "" "The hint panel will provide computer advice during each stage of the game" msgstr "" #: sidepanel/bookPanel.py:27 msgid "Official PyChess panel." msgstr "Offisielt PyChess-panel." #: sidepanel/bookPanel.py:87 msgid "Opening Book" msgstr "Åpningsbok" #: sidepanel/bookPanel.py:88 msgid "" "The opening book will try to inspire you during the opening phase of the " "game by showing you common moves made by chess masters" msgstr "Åpningsboken vil prøve å inspirere deg under åpningsfasen av partiet ved å vise deg vanlige trekk gjort av sjakkmestere" #: sidepanel/bookPanel.py:139 #, python-format msgid "Analysis by %s" msgstr "" #: sidepanel/bookPanel.py:140 #, python-format msgid "" "%s will try to predict which move is best and which side has the advantage" msgstr "" #: sidepanel/bookPanel.py:142 #, python-format msgid "Threat analysis by %s" msgstr "" #: sidepanel/bookPanel.py:143 #, python-format msgid "" "%s will identify what threats would exist if it were your opponent's turn to" " move" msgstr "" #: sidepanel/bookPanel.py:159 sidepanel/bookPanel.py:269 msgid "Calculating..." msgstr "" #: sidepanel/bookPanel.py:300 msgid "" "Engine scores are in units of pawns, from White's point of view. Double " "clicking on analysis lines you can insert them into Annotation panel as " "variations." msgstr "" #: sidepanel/bookPanel.py:302 msgid "" "Adding suggestions can help you find ideas, but slows down the computer's " "analysis." msgstr "" #: sidepanel/bookPanel.py:311 msgid "Endgame Table" msgstr "" #: sidepanel/bookPanel.py:315 msgid "" "The endgame table will show exact analysis when there are few pieces on the " "board." msgstr "" #: sidepanel/bookPanel.py:364 sidepanel/bookPanel.py:367 #, python-format msgid "Mate in %d" msgstr "" #: sidepanel/bookPanel.py:554 msgid "" "In this position,\n" "there is no legal move." msgstr "" #: sidepanel/chatPanel.py:21 msgid "" "The chat panel lets you communicate with your opponent during the game, " "assuming he or she is interested" msgstr "Chat-panelet lar deg kommunisere med motstanderne dine under et parti, gitt at han eller hun er interessert" #: sidepanel/commentPanel.py:16 msgid "Comments" msgstr "Kommentarer" #: sidepanel/commentPanel.py:20 msgid "The comments panel will try to analyze and explain the moves played" msgstr "Kommentarpanelet vil prøve å analysere og forklare trekkene som blir spilt" #: sidepanel/commentPanel.py:121 msgid "Initial position" msgstr "Åpningsstilling" #: sidepanel/commentPanel.py:254 #, python-format msgid "%(color)s moves a %(piece)s to %(cord)s" msgstr "%(color)s flytter en %(piece)s til %(cord)s" #: sidepanel/engineOutputPanel.py:15 msgid "Engines" msgstr "" #: sidepanel/engineOutputPanel.py:20 msgid "" "The engine output panel shows the thinking output of chess engines (computer" " players) during a game" msgstr "" #: sidepanel/engineOutputPanel.py:44 msgid "No chess engines (computer players) are participating in this game." msgstr "" #: sidepanel/historyPanel.py:10 msgid "Move History" msgstr "Trekkhistorikk" #: sidepanel/historyPanel.py:13 msgid "" "The moves sheet keeps track of the players' moves and lets you navigate " "through the game history" msgstr "Trekklisten holder orden på spillernes trekk og lar deg navigere gjennom partihistorikken" #: sidepanel/scorePanel.py:15 msgid "Score" msgstr "Poeng" #: sidepanel/scorePanel.py:19 msgid "" "The score panel tries to evaluate the positions and shows you a graph of the" " game progress" msgstr "Evalueringspanelet prøver å evaluere stillingen og viser deg en graf of partiets fremdrift" pychess-0.12.2/lang/nb/LC_MESSAGES/pychess.mo0000644000175000017470000011431312653231273020677 0ustar tamasusers00000000000000p) q)|))%)`)(*+H*'t*#****,+01+b+y++#+$+'+ , ,!>,`,~,,,#,,,%,-$-*-9C-'}-@---..1.L.E]...#.$. /,/=/V/e//L// //0Q!0&s0C070U1*l1(11111 22!2 22 @2N2 ^2Ch2 22*2 23Q3V3!u33 33Q3 B4Kc4$464# 5!/5!Q5-s5&5-5;52676>6$D6#i6%6"6#66 7 77#7*7 27 <7H7\7m7 r77 77 7P7 88)828 ;8F8[8l88 888 8 8889G9`[9a9i: :: : :: ::: ::: ;$;3;9;J;Z;i; z;; ;;;; ; ;X;c,<]<q<S`=F== >D!>f>>>>> >> > > >> > ? ??-?>?S?Z? _?m?|??? ? ? ? ???/?@ @&@A@J@Q@Y@i@n@ @ @ @ @ @ @@@\@LASAgA.A AAA AAAB BB B B ,B9B>BCB ]BjBBBBBB BEB%C -C 7C#ACeCCC >DJDLD RD ]DjDlDtD{DD DDD DDD D DD DDD EE"%EHE WEaExEE EE E EEEE EFF !F+F1F :FDFWFjF FFFFh|G"GCH5LH9H3HHHTI fIZtIIIJJ7J`SJJJNK^KtKKZKKLK LAVLALLLLLP M^M NN*NoMo co no|oVooo o p pp*p:pTpgpppxp pppppBpLqsjqkq JrXr ^rkrzrrr r rr rrsss0sCsUsis}s ss ssssbs\2tftgtN^uAuuvOvevvvvv vvvv vvvww&w:wNw`wgw kwywww w w wwwww6w ,x7xHx \xfxmxvxx x xx xxxxyyK"y nyxyy3y y yy zz#z)z +z6z ?1WSrp&ah@:~`L~$FcJS&Lg9T-BE_*on,vEW-mZdDdz;VX 2eTK.%1w.<2 py?GR$!FhHbJIA jk#YHR0;<}}QO=`)\5 3_I{r|vDAt/lQZ ^U4 s6u")q78(+|z *]{]BM'q sMkc=C [+l f @Vb3mNi9%\CUf:07">,aN8gOoiu/G#X^4Y6t'xnw 5PPKyj[xe! Gain: min%(black)s won the game%(color)s got a double pawn %(place)s%(color)s got an isolated pawn in the %(x)s file%(color)s got isolated pawns in the %(x)s files%(color)s got new double pawns %(place)s%(color)s has a new passed pawn on %(cord)s%(color)s moves a %(piece)s to %(cord)s%(minutes)d min + %(gain)d sec/move%(name)s %(minutes)d min%(name)s %(minutes)d min %(gain)d sec/move%(name)s %(minutes)d min + %(gain)d sec/move%(opcolor)s has a new trapped bishop on %(cord)s%(white)s won the game%d min%s can no longer castle%s can no longer castle in kingside%s can no longer castle in queenside%s moves pawns into stonewall formation%s returns an error%s was declined by your opponent%s was withdrawn by your opponent'%s' is not a registered name(Blitz)0 Players Ready0 of 010 min + 6 sec/move, 1400↑, White10 min + 6 sec/move, White12002 min, Fischer Random, 1800↓, Black2 min, Fischer Random, Black5 min5 min, 1200-1800, ManualConnect to the Free Online Chess ServerPromote pawn to what?PyChess was unable to load your panel settingsAnalyzingAnimationChess VariantDate of gameEnter Game NotationGame dataHint mode analyzing your game, enable this type Ctrl+H.Initial PositionInstalled SidepanelsName of _first human player:Name of s_econd human player:NewsOpen GameOpponent StrengthOptionsPlay Sound When...PlayersSpy mode analyzing the oponnent game, enable this type Ctrl+Y.Time ControlToolsYour Color_Start GameA file named '%s' already exists. Would you like to replace it?Engine, %s, has diedPyChess is discovering your engines. Please wait.PyChess was not able to save the gameThere are %d games with unsaved moves. Save changes before closing?Unable to save file '%s'Unknown file type '%s'Challenge:A player _checks:A player _moves:A player c_aptures:About ChessAc_tiveActive seeks: %dAddress ErrorAdministratorAll Chess FilesAll FilesAnimate pieces, board rotation and more. Use this on fast machines.Ask to _MoveAsymmetric RandomAuto _rotate board to current human playerAuto-logoutBBecause %(black)s ran out of time and %(white)s has insufficient material to mateBecause %(loser)s disconnectedBecause %(loser)s ran out of timeBecause %(loser)s resignedBecause %(loser)s was checkmatedBecause %(mover)s stalematedBecause %(white)s ran out of time and %(black)s has insufficient material to mateBecause a player lost connectionBecause a player lost connection and the other player requested adjournmentBecause both players ran out of timeBecause neither player has sufficient material to mateBecause of adjudication by an adminBecause the %(black)s engine diedBecause the %(white)s engine diedBecause the connection to the server was lostBecause the game exceed the max lengthBecause the last 50 moves brought nothing newBecause the same position was repeated three times in a rowBeepBishopBlackBlack has a new piece in outpost: %sBlack has a rather cramped positionBlack has a slightly cramped positionBlack should do pawn storm in leftBlack should do pawn storm in rightBlack:BlindfoldBlindfold AccountBlitzBlitz:Center:ChallengeChallenge: Challenge: Change ToleranceChatChess AdvisorChess Alpha 2 DiagramChess GameChess PositionChess ShoutChess Variants are like the pieces of the last line will be placed on the board.ClockClose _without SavingCommand:CommentsConnectingConnecting to serverConnection ErrorConnection was closedConversation infoConversationsCornerCould not save the fileCreate SeekDate/TimeDestination Host UnreachableDetect type automaticallyDiedDo you know that it is possible to finish a chess game in just 2 turns?Do you know that the number of possible chess games exceeds the number of atoms in the Universe?Do you know that you can call flag when the clock is with you, Actions > Call Flag.Do you know that you can help translate Pychess in your language, Help > Translate Pychess.Don't careDrawEdit SeekEdit Seek: EmailEnter GameEnter Game _NotationEvent:FIDE MasterF_ull board animationFace _to Face display modeFile existsFischer RandomGain:Game informationGame is _drawn:Game is _lost:Game is _set-up:Game is _won:Games running: %dGrand MasterGuestHa_ndle:HideHow to PlayHuman BeingIf set, PyChess will use figures to express moved pieces, rather than uppercase letters.If set, the black pieces will be head down, suitable for playing against friends on mobile devices.If set, the board will turn after each move, to show the natural view for the current player.If set, the playing board will display labels and ranks for each chess field. These are usable in chess notation.If set, this hides the tab in the top of the playing window, when it is not needed.If you don't save, new changes to your games will be permanently lost.Initial positionInternational MasterIt is not possible later to continue the game, if you don't save it.Jump to initial positionJump to latest positionKKingKnightKnight oddsLeave _FullscreenLightningLightning:Loaded gameLoading player dataLocal EventLocal SiteLog on ErrorLog on as G_uestLog on as _GuestLogging on to serverLosersLossMamer ManagerManage enginesManualManually accept opponentMinutes:Minutes: More channelsMore playersMove HistoryNNameNever use animation. Use this on slow machines.New GameNo _animationNo conversation's selectedNo soundNormalObserveObserved _ends:OddsOffer Ad_journmentOffer RematchOffer _AbortOffer _DrawOffer _PauseOffer _ResumeOffer _UndoOfficial PyChess panel.OfflineOn FICS, your "Wild" rating encompasses all of the following variants at all time controls: OnlineOnly animate _movesOnly animate piece moves.Only registered users may talk to this channelOpen GameOpen Sound FileOpen _DatabaseOpening BookOpponent's strength: OtherPParameters:PawnPawn oddsPawns PassedPawns PushedPingPlayPlay Fischer Random chessPlay RematchPlay _Internet ChessPlay normal chess rulesPlayer _RatingPo_rts:Pre_viewPrefer figures in _notationPreferencesPressing Ctrl+Z to offer opponent the possible rollback moves.PrivatePromotionProtocol:PyChess - Connect to Internet ChessPyChess - Internet Chess: FICSPyChess Information WindowPyChess has lost connection to the engine, probably because it has died. You can try to start a new game with the engine, or try to play against another one.PyChess.py:QQueenQueen oddsQuit PyChessRR_esignRandomRapidRatedRated gameRatingRookRook oddsRound:S_ign upSave GameSave Game _AsSave moves before closing?Saved gameScoreSearch:Seek _GraphSelect sound file...Select the games you want to save:Send ChallengeSend seekService RepresentativeSetting up environmentSetup PositionSho_w cordsShoutShow ConsoleShow _ChatShow tips at startupShredderLinuxChess:ShuffleSide_panelsSimple Chess PositionSite:Sp_y modeSpentStandardStandard:Start Private ChatStep back one moveStep forward one moveTeam AccountThe abort offerThe adjourn offerThe chain button is disabled because you are logged in as a guest. Guests can't establish ratings, and the chain button's state has no effect when there is no rating to which to tie "Opponent Strength" toThe chat panel lets you communicate with your opponent during the game, assuming he or she is interestedThe clock hasn't been started yet.The comments panel will try to analyze and explain the moves playedThe connection was broken - got "end of file" messageThe displayed name of the first human player, e.g., John.The displayed name of the guest player, e.g., Mary.The draw offerThe error was: %sThe file already exists in '%s'. If you replace it, its content will be overwritten.The flag callThe game can't be read to end, because of an error parsing move %(moveno)s '%(notation)s'.The game ended in a drawThe game has been abortedThe game has been adjournedThe game has been killedThe move failed because %s.The moves sheet keeps track of the players' moves and lets you navigate through the game historyThe offer to switch sidesThe opening book will try to inspire you during the opening phase of the game by showing you common moves made by chess mastersThe pause offerThe reason is unknownThe resignationThe resume offerThe score panel tries to evaluate the positions and shows you a graph of the game progressThe takeback offerThemesThere is %d game with unsaved moves.There are %d games with unsaved moves.This option is not applicable because you're challenging a playerThis option is not available because you're challenging a guest, TimeTime control: Tip Of The dayTip of the DayTo play on Fullscreen mode, just type F11. Coming back, F11 again.To save a game Game > Save Game As, give the filename and choose where you want to be saved. At the bottom choose extension type of the file, and Save.Tolerance:Tournament DirectorTranslate PyChessTypeUnable to accept %sUndescribed panelUndo one moveUndo two movesUninstallUnknownUnofficial channel %dUnratedUntimedUpside DownUse _analyzerUse _inverted analyzerUse opening _bookWas unable to save '%(uri)s' as PyChess doesn't know the format '%(ending)s'.WelcomeWhen this button is in the "locked" state, the relationship between "Opponent's strength" and "Your strength" will be preserved when a) your rating for the type of game sought has changed b) you change the variant or the time controlWhiteWhite has a new piece in outpost: %sWhite has a rather cramped positionWhite has a slightly cramped positionWhite should do pawn storm in leftWhite should do pawn storm in rightWhite:WildWinWorking directory:You can play chess listening to the sounds of the game, for that, Settings > Preferences > Sound tab, enable Use sounds in PyChess and choose your preferred sounds.You can start a new game by Game > New Game, in New Game window do you can choose Players, Time Control and Chess Variants.You can't play rated games because "Untimed" is checked, You can't play rated games because you are logged in as a guestYou can't select a variant because "Untimed" is checked, You can't switch colors during the game.You don't have the necessary rights to save the file. Please ensure that you have given the right path and try again.You have been logged out because you were idle more than 60 minutesYou have opened no conversations yetYou have tried to undo too many moves.You sent a draw offerYour opponent asks you to hurry!Your opponent has asked that the game be aborted. If you accept this offer, the game will end with no rating change.Your opponent has asked that the game be adjourned. If you accept this offer, the game will be adjourned and you can resume it later (when your opponent is online and both players agree to resume).Your opponent has asked that the game be paused. If you accept this offer, the game clock will be paused until both players agree to resume the game.Your opponent has asked that the game be resumed. If you accept this offer, the game clock will continue from where it was paused.Your opponent has asked that the last %s move(s) be undone. If you accept this offer, the game will continue from the earlier position.Your opponent has offered you a draw. If you accept this offer, the game will end with a score of 1/2 - 1/2.Your opponent is not out of time.Your panel settings have been reset. If this problem repeats, you should report it to the developersYour strength: _Accept_Actions_Black player:_Call Flag_Clear Seeks_Decline_Edit_Engines_Fullscreen_Game_Game List_General_Help_Hide tabs when only one game is open_Hint mode_Hints_Load Game_Log Off_Log Viewer_Name:_New Game_Next_Observed moves:_Opponent:_Password:_Play Normal chess_Player List_Previous_Replace_Rotate Board_Save %d document_Save %d documents_Save %d documents_Save Game_Seeks / Challenges_Show Sidepanels_Sounds_Start Game_Use sounds in PyChess_View_White player:_Your Color:andand guests can't play rated gamesand on FICS, untimed games can't be ratedand on FICS, untimed games have to be normal chess rulesask your opponent to movebrings a %(piece)s closer to enemy king: %(cord)sbrings a pawn closer to the backrow: %scall your opponents flagcaptures materialcastlesdefends %sdevelops a %(piece)s: %(cord)sdevelops a pawn: %sdrawsexchanges materialgnuchess:half-openhttp://en.wikipedia.org/wiki/Chesshttp://en.wikipedia.org/wiki/Rules_of_chessimproves king safetyin the %(x)s%(y)s filein the %(x)s%(y)s filesincreases the pressure on %smatesminmoves a rook to an open filemoves an rook to a half-open filemoves bishop into fianchetto: %sofoffer a drawoffer a pauseoffer a takebackoffer an abortoffer to adjournoffer to resumeoffer to switch sidesonline in totalpins an enemy %(oppiece)s on the %(piece)s at %(cord)splaces a %(piece)s more active: %(cord)spromotes a Pawn to a %sputs opponent in checkrescues a %sresignsacrifies materialsecslightly improves king safetytakes back materialthe captured cord (%s) is incorrectthe move needs a piece and a cordthreatens to win material by %svs.window1Project-Id-Version: pychess Report-Msgid-Bugs-To: POT-Creation-Date: 2016-01-27 13:28+0100 PO-Revision-Date: 2016-01-28 08:56+0000 Last-Translator: slav0nic Language-Team: Norwegian Bokmål (http://www.transifex.com/gbtami/pychess/language/nb/) MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Language: nb Plural-Forms: nplurals=2; plural=(n != 1); Inkrement: min%(black)s vant partiet%(color)s har en dobbeltbonde %(place)s%(color)s har en isolert bonde i linjen %(x)s%(color)s har isolerte bønder i linjene %(x)s%(color)s har nye dobbeltbønder %(place)s%(color)s har en ny passert bonde på %(cord)s%(color)s flytter en %(piece)s til %(cord)s%(minutes)d min + %(gain)d sek/trekk%(name)s %(minutes)d min%(name)s %(minutes)d min %(gain)d sek/trekk%(name)s %(minutes)d min + %(gain)d sek/trekk%(opcolor)s har en ny fanget løper på %(cord)s%(white)s vant partiet%d min%s kan ikke rokere lenger%s kan ikke rokere på kongesiden%s kan ikke rokere på dronningsiden%s flytter bøndene inn i en stonewall-oppstilling%s returnerer en feil%s ble avslått av motstanderen din%s ble trukket tilbake av motstanderen din'%s' er ikke et registrert brukernavn(Blitz)0 spillere klare0 av 010 min + 6 sek/trekk, 1400↑, Hvit10 min + 6 sek/trekk, Hvit12002 min, Fischer Random, 1800↓, Sort2 min, Fischer Random, Svart5 min5 min, 1200-1800, ManuellKoble til Free Online Chess ServerForvandle bonden til hva?PyChess kunne ikke laste panelinnstillingene dineAnalysererAnimasjonSjakkvariantDato for partiLegg inn trekknotasjonPartidataHintmodus analyserer partiet ditt, aktiver dette ved å trykke Ctrl+H.StartposisjonInstallerte sidepanelNavn på _første menneskelige spiller:Navn på andr_e menneskelige spiller:NyheterÅpent partiMotstanders styrkeAlternativerSpill lyd når...SpillereSpionmodus analyserer din motstanders parti, aktiver ved å trykke Ctrl+Y.TidskontrollVerktøyDin farge_Start partiFilen '%s' eksistererer allerede. Ønsker du å erstatte denne?Motoren, %s, har døddPyChess oppdager motorene dine. Vennligst vent.PyChess klarte ikke lagre partietDet er %d partier med ulagrede trekk. Lagre endringer før du avslutter?Klarer ikke å lagre fil '%s'Ukjent filtype %sUtfordring:En spiller _sjakker:En spiller _trekker:En spiller sl_år en brikke:Om sjakkAk_tivAktive søk: %dAdressefeilAdministratorAlle sjakkfilerAlle FilerAnimer brikker, brettrotasjon og mer. Bruk dette på raske maskiner.Be om et _trekkAsymmetrisk RandomAuto_roter brettet til gjeldende menneskelige spillerAuto-logg-utLFordi %(black)s gikk tom for tid og %(white)s ikke har nok materiale til å sette mattFordi %(loser)s ble frakobletFordi %(loser)s gikk tom for tidFordi %(loser)s ga oppFordi %(loser)s ble satt mattFordi %(mover)s ble satt pattFordi %(white)s gikk tom for tid og %(black)s ikke har nok materiale til å sette mattFordi en spiller ble frakobletFordi en spiller ble frakoblet og den andre spilleren ba om utsettelseFordi begge spillerne gikk tom for tidFordi ingen av spillerene har nok mattmaterialFordi det ble avgjort av en adminFordi %(black)s motor dødeFordi %(white)s motor dødeFordi tilkoblingen til tjeneren ble mistetFordi partiet overgikk makslengdenFordi de siste 50 trekkene ikke har ført til noe nyttFordi den samme stillingen ble gjentatt tre ganger på radBipLøperSvartSvart har en ny brikke på utpost: %sSvart har en temmelig trang stillingSvart har en noe trang stillingSvart burde foreta en bondestorm til venstreSvart burde foreta en bondestorm til høyreSvart:BlindsjakkBlindsjakkontoBlitzBlitz:Senter:UtfordringUtfordring: Utfordring: Endre toleranseChatSjakkrådgiverChess Alpha 2 DiagramSjakkpartiSjakkstillingSjakkropSjakkvarianter er som hvordan brikkene på den siste linjen blir plassert på brettet.KlokkeLukk _uten å lagreKommando:KommentarerKobler tilKobler til tjenerTilkoblingsfeilOppkopling ble stengt nedSamtaleinformasjonSamtalerHjørneKlarte ikke lagre filenOpprett søkDato/tidMålvert utilgjengeligOppdag type automatiskDødeVet du at det er mulig å avslutte et parti sjakk på kun 2 turer?Vet du at antallet mulige sjakkpartier overgår antallet atomer i universet?Visste du at du kan kreve en seier på tid når det er din tur med HandlingerKrev vinst på tid.Vet du at du kan hjelpe med å oversette PyChess til ditt språk? HjelpOversett PyChess.Bryr meg ikkeRemisRediger søkRediger søk: E-postLegg inn partiSkriv inn parti_notasjonTurnering:FIDE MesterF_ull brettanimasjonAnsikt _til ansikt-visningsmodusFilen eksistererFischer RandomTillegg:PartiinformasjonPartiet er _remis:Partiet er _tapt:Parti er _satt opp:Partiet er _vunnet:Kjørende partier: %dStormesterGjestBruker_navn:SkjulHvordan spilleMenneskeHvis satt vil PyChess bruke figuriner for å uttrykke flyttede brikker heller enn store bokstaver.Hvis satt vil svarte brikker være opp ned, bra for å spille mot venner på mobile enheter.Hvis satt vil brettet snu seg etter hvert trekk for å vise den naturlige siden for gjeldende spiller.Hvis satt vil spillebrettet vise rader og kolonner for hvert sjakkfelt. Dette er bra for sjakknotasjon.Hvis satt så skjules fanene i toppen av spillevinduet når disse ikke trengs.Hvis du ikke lagrer vil nye endringer til partiene dine gå tapt.ÅpningsstillingInternasjonal MesterDet vil ikke være mulig å fortsette partiet senere dersom du ikke lagrer det.Gå tilbake til startstillingenGå til siste stillingKKongeSpringerSpringerodds_Forlat fullskjermLynLyn:Lastet partiLaster spillerdataLokal turneringLokalt nettstedPåloggingsfeilLogg på som _gjestLogg på som _GjestLogger på tjenerLosersTapMamer ManagerHåndter motorerManuellManuellt godta motstanderMinutter:Minutter: Flere kanalerFlere spillereTrekkhistorikkSNavnAldri bruk animasjoner. Bruk dette på trege maskiner.Nytt partiIngen _animasjonIngen samtale valgtIngen lydNormalObserverObserverte _avslutninger:OddsTilby _pauseTilby omkampTilby _avbruddTilby _remisTilby kort _pauseTilby _fortsettelseTilby _omtrekkOffisielt PyChess-panel.AvloggetPå FICS omfatter «Wild»-ratingen din alle de følgende tidskontrollene: PåloggetBare ani_mer trekkBare animer brikketrekk.Bare registrerte brukere kan snakke i denne kanalenÅpent spillÅpne lydfilÅpne _databaseÅpningsbokMotstanders styrke: AndreBParametre:BondeBondeoddsPasserte bønderDyttede bønderPingSpillSpill Fischer Random sjakkSpill omkampSpill _internett sjakkSpill med vanlige sjakkreglerSpiller_ratingPo_rter:Forhånds_visningForetrekk figuriner i _notasjonInnstillingerTrykk Ctrl+Z for å tilby motstanderen å rulle tilbake noen trekk.PrivatForvandlingProtokoll:PyChess - Koble til Internett SjakkPyChess - Internett Sjakk: FICSPyChess informasjonsvinduPyChess har mistet kontakten med sjakkmotoren, mest sannsynlig fordi den døde. Du kan prøve å starte et nytt parti mot motoren eller du kan prøve å spille mot en annen.PyChess.py:DDronningDronningoddsAvslutt PyChessT_Trekk degTilfeldigHurtigRatetRated partiRatingTårnTårnoddsRunde:Reg_istrer degLagre partiL_agre parti somLagre trekk før du lukker?Lagret partiPoengSøk:Søke_grafVelg lydfil...Velg partier du vil lagre:Send utfordringSend søkTjenesterepresentantSetter opp miljøSett opp posisjon_Vis koordinaterRopVis konsollVis _chatVis tips ved oppstartShredderLinuxChess:ShuffleSide_panelEnkel sjakkstilliingNettsted:Sp_ionmodusBruktStandardStandard:Start privat samtaleGå tilbake et trekkGå frem et trekkLagkontoAvbruddstilbudetPausetilbudetLenkeknappen er deaktivert fordi er du logget på som en gjest. Gjester kan ikke etablere ratinger og lenkeknappen har ingen effekt når det ikke er noen rating å knytte «Motstanders styrke» tilChat-panelet lar deg kommunisere med motstanderne dine under et parti, gitt at han eller hun er interessertKlokkene har ikke blitt startet ennå.Kommentarpanelet vil prøve å analysere og forklare trekkene som blir spiltTilkoblingen ble brutt - fikk melding om «end-of-file»Det viste navnet er den første menneskelige spilleren, f.eks., Ola.Det viste navnet på gjestespilleren, f.eks., Kari.RemistilbudetFeilen var: %sFilen eksisterer allerede i '%s'. Dersom du ønsker å erstatte den, vil dens innhold bli overskrevet.TidskravetPartiet kan ikke leses til enden fordi en feil i tolkningen av trekk %(moveno)s '%(notation)s'.Partiet endte remisPartiet har blitt avbruttPartiet har blitt pausetPartiet har blitt annullertTrekket feilet fordi %s.Trekklisten holder orden på spillernes trekk og lar deg navigere gjennom partihistorikkenTilbudet om å bytte siderÅpningsboken vil prøve å inspirere deg under åpningsfasen av partiet ved å vise deg vanlige trekk gjort av sjakkmesterePausetilbudet (kort)Årsaken er ukjentOppgivelsenFortsettelsestilbudetEvalueringspanelet prøver å evaluere stillingen og viser deg en graf of partiets fremdriftTilbudet om å gjøre om trekkTemaDet er %d parti med ulagrede trekk.Det er %d partier med ulagrede trekk.Dette alternativet er ikke tilgjengelig fordi du utfordrer en spillerDette alternativet er ikke tilgjengelig fordi du utfordrer en gjest, TidTidskontroll: Dagens tipsDagens tipsFor å spille i Fullskjerm, bare trykk F11. Trykk F11 igjen for å forlate fullskjerm igjen.For å lagre et parti PartiLagre parti som, angi filnavnet og velg hvor du vil det skal lagres. På bunnen velger du filtypen og LagreToleranse:TurneringsdirektørOversett PyChessTypeKan ikke akseptere %sUbeskrevet panelGjør om ett trekkGjør om to trekkAvinstallerUkjentUoffisiell kanal %dUratetUten tidOpp-nedBruk _analyseprogramBruk _invers analyseBruk _åpningsbokKunne ikke lagre '%(uri)s' siden PyChess ikke kjenner formatet '%(ending)s'.VelkommenNår denne knappen er «trykket inn» vil forholdet mellom «Motstanders styrke» og «Din styrke» bevares når a) din rating for den søkte partitypen endres b) du endrer typen eller tidskontrollenHvitHvit har en ny brikke på utpost: %sHvit har en temmelig trang stillingHvit har en noe trang stillingHvit burde foreta en bondestorm til venstreHvit burde foreta en bondestorm til høyreHvit:WildVinnArbeidskatalog:Du kan spille sjakk ved å lytte til lydene fra spillet. For dette gå til InnstillingerPreferanserLydfane, aktiver Bruk lyder i PyChess og velg dine foretrukne lyder.Du kan starte et nytt parti med PartiNytt parti, i vinduet «Nytt parti» kan du velge Spillere, Tidskontroll og Sjakkvarianter.Du kan ikke spille ratede partier fordi «Uten tidskontroll» er haket av, Du kan ikke spille ratede partier fordi du er logget inn som en gjestDu kan ikke velge en variant fordi «Uten tidskontroll» er haket av, Du kan ikke bytte farger under partiet.Du har ikke nødvendige rettigheter til å lagre filen Vennligst forsikre deg om at korrekt filsti er angitt og forsøk igjen.Du har blitt logget ut fordi du var inaktiv i mer enn 60 minutterDu har ikke åpnet noen samtaler ennåDu kan ikke gjøre om for mange trekk.Du har sendt et remistilbudMotstanderen din ber deg om å skynde degDin motstander har bedt om at partiet blir avbrutt. Hvis du godtar tilbudet blir partiet avsluttet uten noen endring i rating.Din motstander har bedt om at partiet blir pauset. Hvis du godtar tilbudet vil partiet bli pauset og dere kan gjenoppta det senere (når motstanderen din er pålogget og begge spillere godtar å fortsette).Din motstander har bedt om at partiet blir pauset (kort). Hvis du godtar tilbudet vil klokkene bli stoppet til begge spillerne er klare til å fortsette partiet.Din motstander har bedt om at partiet fortsettes. Hvis du godtar tilbudet vil klokkene fortsette fra der de ble stoppet.Din motstander har bedt om at de siste %s trekk(ene) gjøres om. Hvis du godtar tilbudet vil partiet fortsette fra den tidligere posisjonen.Din motstander har tilbudt remis. Hvis du aksepterer tilbudet vil partiet ende med resultatet ½ - ½.Motstanderen din har ikke brukt opp tiden sin.Dine panelinnstillinger har blitt tilbakestilt. Hvis dette problemet gjentar seg bør du rapportere det til utviklerneDin styrke: _GodtaH_andlinger_Svart spiller:_Krev vinst på tid_Slett søk_AvslåR_ediger_Motorer_Fullskjerm_Parti_Spilliste_Generelt_Hjelp_Skjul faner når kun ett parti er åpent_Hintmodus_Hint_Last parti_Logg avVis _Logg_Navn:_Nytt parti_Neste_Observerte trekk:M_otstander:_Passord:S_pill normal sjakkS_pillerliste_ForrigeE_rstattSnu b_rettet_Lagre %d dokument_Lagre %d dokumenter_Lagre %d dokumenter_Lagre parti_Søk / UtfordringerVis _sidepanel_Lyder_Start parti_Bruke lyder i PyChess_Vis_Hvit spiller:_Din farge:ogog gjester kan ikke spille ratede partierog på FICS blir ikke partier uten tidskontroll ratetog på FICS må partier uten tidskontroll spilles med vanlige sjakkreglerbe motstanderen din om å gjøre et trekkbringer en %(piece)s nærmere fiendens konge: %(cord)sbringer en bonde nærmere sisteraden: %skrev vinst på tidslår materiellrokererdekker %sutvikler en %(piece)s: %(cord)sutvikler en bonde: %sspiller remisbytter av materiellgnuchess:halvåpenhttp://no.wikipedia.org/wiki/Sjakkhttp://www.sjakk.no/nsf/lover_og_reglementer/fideregler_index.htmlstyrker kongestillingeni linjen %(x)s%(y)si linjene %(x)s%(y)søker trykket mot %ssetter sjakk mattminflytter et tårn til en åpen linjeflytter et tårn til en halvåpen linjeflankerer løperen: %savtilby remistilby en kort pausetilby å gjøre om trekktilby avbruddtilby en pausetilby fortsettelsetilby å bytte sidertid totalt påloggetbinder en fiendes %(oppiece)s til %(piece)s på %(cord)ssetter en %(piece)s mer aktivt: %(cord)sforvandler en bonde til en %ssetter motstander i sjakkredder en %strekk degofrer materiellsekgir en liten forbedring av kongestillingenvinner tilbake materiellfangstkoordinatet (%s) er ukorrekttrekket trenger en brikke og et koordinattruer å vinne material ved %svs.vindu1pychess-0.12.2/lang/cs/0000755000175000017470000000000012653231274015103 5ustar tamasusers00000000000000pychess-0.12.2/lang/cs/LC_MESSAGES/0000755000175000017470000000000012653231274016670 5ustar tamasusers00000000000000pychess-0.12.2/lang/cs/LC_MESSAGES/pychess.po0000644000175000017470000033642512653216174020725 0ustar tamasusers00000000000000# SOME DESCRIPTIVE TITLE. # Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER # This file is distributed under the same license as the pychess package. # # Translators: # Jiří Vírava , 2012-2013 # FIRST AUTHOR , 2007 # fri, 2013-2014 # fri, 2015 # fri, 2013-2015 msgid "" msgstr "" "Project-Id-Version: pychess\n" "Report-Msgid-Bugs-To: \n" "POT-Creation-Date: 2016-01-27 13:28+0100\n" "PO-Revision-Date: 2016-01-28 08:56+0000\n" "Last-Translator: slav0nic \n" "Language-Team: Czech (http://www.transifex.com/gbtami/pychess/language/cs/)\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" "Language: cs\n" "Plural-Forms: nplurals=3; plural=(n==1) ? 0 : (n>=2 && n<=4) ? 1 : 2;\n" # "Plural-Forms: nplurals=INTEGER; plural=EXPRESSION;\n" #: glade/analyze_game.glade:22 msgid "Analyze game" msgstr "Provést rozbor hry" #: glade/analyze_game.glade:87 msgid "Use analyzer:" msgstr "Použít analyzátor:" #: glade/analyze_game.glade:122 glade/PyChess.glade:2054 msgid "Maximum analysis time in seconds:" msgstr "Nejvíce času na rozbor v sekundách:" #: glade/analyze_game.glade:163 msgid "" "If the analyzer finds a move where the evaluation difference (the difference" " between the evaluation for the move it thinks is the best move and the " "evaluation for the move made in the game) exceeds this value, it will add an" " annotation for that move (consisting of the engine's Principal Variation " "for the move) to the Annotation panel" msgstr "Pokud analyzátor najde tah, kde rozdíl ve vyhodnocení (rozdíl mezi vyhodnocením pro tah, o kterém si myslí, že je nejlepším tahem, a vyhodnocením pro tah zahraný ve hře) překročí tuto hodnotu, přidá poznámku k tomuto tahu (sestávající z hlavní herní obměny stroje pro ten tah) do panelu s poznámkami" #: glade/analyze_game.glade:164 msgid "Variation annotation creation threshold in centipawns:" msgstr "Práh pro vytvoření poznámky k obměně v centipěšácích:" #: glade/analyze_game.glade:198 msgid "Analyze from current position" msgstr "Rozebrat od nynější polohy" #: glade/analyze_game.glade:214 msgid "Add threatening variation lines " msgstr "Přidat řádky hrozící obměny " #: glade/analyze_game.glade:229 glade/PyChess.glade:1459 msgid "Colorize analyzed moves" msgstr "Barvit tahy, u nichž byl proveden rozbor" #: glade/analyze_game.glade:244 glade/PyChess.glade:1495 msgid "Show evaluation values" msgstr "Ukázat hodnoty vyhodnocení" #: glade/discovererDialog.glade:18 msgid "PyChess is discovering your engines. Please wait." msgstr "PyChess zjišťuje stroje. Počkejte, prosím." #: glade/discovererDialog.glade:77 msgid "PyChess.py:" msgstr "PyChess.py:" #: glade/discovererDialog.glade:89 msgid "ShredderLinuxChess:" msgstr "ShredderLinuxChess" #: glade/discovererDialog.glade:101 msgid "gnuchess:" msgstr "gnuchess:" #: glade/fics_logon.glade:7 msgid "PyChess - Connect to Internet Chess" msgstr "PyChess - Přípojit k internetovým šachům" #: glade/fics_logon.glade:47 msgid "Connect to the Free Online Chess Server" msgstr "Připojit se k Free Online Chess Serveru" #: glade/fics_logon.glade:129 glade/taskers.glade:394 msgid "_Password:" msgstr "_Heslo:" #: glade/fics_logon.glade:143 msgid "_Name:" msgstr "Jméno" #: glade/fics_logon.glade:191 msgid "Log on as _Guest" msgstr "Přihlásit se jako _host" #: glade/fics_logon.glade:227 msgid "Host:" msgstr "Host:" #: glade/fics_logon.glade:259 msgid "Po_rts:" msgstr "_Přípojky:" #: glade/fics_logon.glade:271 msgid "Auto login on startup" msgstr "Automatické přihlášení při spuštění" #: glade/fics_logon.glade:385 msgid "S_ign up" msgstr "Při_hlásit se" #: glade/fics_lounge.glade:35 msgid "Challenge: " msgstr "Vyzvat: " #: glade/fics_lounge.glade:97 msgid "Send Challenge" msgstr "Poslat výzvu" #: glade/fics_lounge.glade:133 msgid "Challenge:" msgstr "Výzva:" #: glade/fics_lounge.glade:327 glade/fics_lounge.glade:2078 msgid "Lightning:" msgstr "Střela:" #: glade/fics_lounge.glade:351 glade/fics_lounge.glade:2102 msgid "Standard:" msgstr "Standardní:" #: glade/fics_lounge.glade:375 glade/fics_lounge.glade:2126 msgid "Blitz:" msgstr "Blesk:" #: glade/fics_lounge.glade:400 msgid "2 min, Fischer Random, Black" msgstr "2 min, náhodné šachy Fischer, Černý" #: glade/fics_lounge.glade:422 msgid "10 min + 6 sec/move, White" msgstr "10 min + 6 s/tah, Bílý" #: glade/fics_lounge.glade:444 msgid "5 min" msgstr "5 min" #: glade/fics_lounge.glade:480 msgid "Edit Seek" msgstr "Upravit žádost" #: glade/fics_lounge.glade:584 lib/pychess/ic/ICLounge.py:2208 #: lib/pychess/ic/__init__.py:101 lib/pychess/Utils/GameModel.py:206 msgid "Untimed" msgstr "Bez časového omezení" #: glade/fics_lounge.glade:637 msgid "Minutes: " msgstr "Minuty: " #: glade/fics_lounge.glade:665 msgid " Gain: " msgstr "Přírůstek:" #: glade/fics_lounge.glade:703 msgid "Time control: " msgstr "Kontrola času:" #: glade/fics_lounge.glade:716 lib/pychess/ic/FICSObjects.py:56 #: lib/pychess/ic/ICLounge.py:1137 lib/pychess/ic/ICLounge.py:2208 #: lib/pychess/ic/__init__.py:99 msgid "Standard" msgstr "Standardní" #: glade/fics_lounge.glade:757 glade/newInOut.glade:633 msgid "Time Control" msgstr "Řízení času" #: glade/fics_lounge.glade:814 glade/fics_lounge.glade:1346 msgid "Don't care" msgstr "Nestarat se" #: glade/fics_lounge.glade:879 msgid "Your strength: " msgstr "Vaše síla:" #: glade/fics_lounge.glade:921 msgid "(Blitz)" msgstr "(Blesk)" #: glade/fics_lounge.glade:951 msgid "Opponent's strength: " msgstr "Síla soupeře:" #: glade/fics_lounge.glade:1055 msgid "" "When this button is in the \"locked\" state, the relationship\n" "between \"Opponent's strength\" and \"Your strength\" will be\n" "preserved when \n" "a) your rating for the type of game sought has changed\n" "b) you change the variant or the time control" msgstr "Když je toto tlačítko v zamknutém stavu, vztah mezi\nsilou soupeře a vlastní herní silou bude uložen,\nkdyž \n\na) se změnilo vaše hodnocení pro hledanou hru.\nb) změníte variantu nebo druh řízení času." #: glade/fics_lounge.glade:1095 msgid "Center:" msgstr "Střed:" #: glade/fics_lounge.glade:1134 msgid "1200" msgstr "1200" #: glade/fics_lounge.glade:1188 msgid "Tolerance:" msgstr "Tolerance:" #: glade/fics_lounge.glade:1243 lib/pychess/ic/ICLounge.py:2452 msgid "Hide" msgstr "Skrýt" #: glade/fics_lounge.glade:1289 msgid "Opponent Strength" msgstr "Síla soupeře" #: glade/fics_lounge.glade:1386 lib/pychess/Database/gamelist.py:40 #: lib/pychess/ic/ICLounge.py:1357 lib/pychess/ic/ICLounge.py:1557 #: lib/pychess/ic/ICLounge.py:2108 lib/pychess/Utils/repr.py:10 #: lib/pychess/widgets/ChessClock.py:40 #: lib/pychess/widgets/TaskerManager.py:153 msgid "White" msgstr "Bílý" #: glade/fics_lounge.glade:1414 lib/pychess/Database/gamelist.py:40 #: lib/pychess/ic/ICLounge.py:1358 lib/pychess/ic/ICLounge.py:1558 #: lib/pychess/ic/ICLounge.py:2110 lib/pychess/Utils/repr.py:10 #: lib/pychess/widgets/ChessClock.py:40 #: lib/pychess/widgets/TaskerManager.py:154 msgid "Black" msgstr "Černý" #: glade/fics_lounge.glade:1453 msgid "Your Color" msgstr "Vaše barva" #: glade/fics_lounge.glade:1512 msgid "Play normal chess rules" msgstr "Hrát podle normálních šachových pravidel" #: glade/fics_lounge.glade:1552 msgid "Play" msgstr "Hrát" #: glade/fics_lounge.glade:1618 glade/newInOut.glade:833 msgid "Chess Variant" msgstr "Šachová varianta" #: glade/fics_lounge.glade:1676 msgid "Rated game" msgstr "Hodnocená hra" #: glade/fics_lounge.glade:1692 msgid "Manually accept opponent" msgstr "Přijmout soupeře ručně" #: glade/fics_lounge.glade:1722 msgid "Options" msgstr "Volby" #: glade/fics_lounge.glade:1750 msgid "PyChess - Internet Chess: FICS" msgstr "PyChess - Internetové šachy: FICS" #: glade/fics_lounge.glade:1823 msgid "_Clear Seeks" msgstr "_Vyprázdnit vyhledané nabídky ke hře" #: glade/fics_lounge.glade:1847 msgid "_Accept" msgstr "_Příjmout" #: glade/fics_lounge.glade:1871 msgid "_Decline" msgstr "_Odmítnout" #: glade/fics_lounge.glade:2151 msgid "2 min, Fischer Random, 1800↓, Black" msgstr "2 min, náhodné šachy Fischer, 1800↓, Černý" #: glade/fics_lounge.glade:2172 msgid "10 min + 6 sec/move, 1400↑, White" msgstr "10 min + 6 s/tah, 1400↑, Bílý" #: glade/fics_lounge.glade:2193 msgid "5 min, 1200-1800, Manual" msgstr "5 min, 1200-1800, Ruční" #: glade/fics_lounge.glade:2247 msgid "Send all seeks" msgstr "Odeslat všechna hledání" #: glade/fics_lounge.glade:2301 msgid "Send seek" msgstr "Odeslat žádost" #: glade/fics_lounge.glade:2337 msgid "Create Seek" msgstr "Vytvořit žádost" #: glade/fics_lounge.glade:2353 msgid "_Seeks / Challenges" msgstr "Žá_dosti/Výzvy" #: glade/fics_lounge.glade:2374 lib/pychess/ic/ICLounge.py:472 #: lib/pychess/ic/ICLounge.py:670 lib/pychess/ic/ICLounge.py:1357 #: lib/pychess/ic/ICLounge.py:1358 msgid "Rating" msgstr "Hodnocení" #: glade/fics_lounge.glade:2399 msgid "Time" msgstr "Čas" #: glade/fics_lounge.glade:2419 msgid "Seek _Graph" msgstr "Graf hledání" #: glade/fics_lounge.glade:2444 msgid "0 Players Ready" msgstr "Připraveno 0 hráčů" #: glade/fics_lounge.glade:2496 msgid "Challenge" msgstr "Vyzvat" #: glade/fics_lounge.glade:2549 glade/fics_lounge.glade:2735 msgid "Observe" msgstr "Pozorovat" #: glade/fics_lounge.glade:2602 msgid "Start Private Chat" msgstr "Začít soukromý chat" #: glade/fics_lounge.glade:2659 msgid "_Player List" msgstr "Seznam _hráčů" #: glade/fics_lounge.glade:2792 msgid "_Game List" msgstr "Seznam h_er" #: glade/fics_lounge.glade:2847 msgid "_My games" msgstr "" #: glade/fics_lounge.glade:2904 glade/PyChess.glade:841 msgid "Offer _Resume" msgstr "Nabídnout po_kračování" #: glade/fics_lounge.glade:2962 glade/PyChess.glade:880 msgid "R_esign" msgstr "Vz_dát" #: glade/fics_lounge.glade:3006 glade/PyChess.glade:820 msgid "Offer _Draw" msgstr "Nabídnout _remízu" #: glade/fics_lounge.glade:3050 msgid "Offer A_bort" msgstr "Nabídnout _přerušení" #: glade/fics_lounge.glade:3107 msgid "Pre_view" msgstr "_Náhled" #: glade/fics_lounge.glade:3151 msgid "Examine" msgstr "" #: glade/fics_lounge.glade:3208 msgid "_Archived" msgstr "" #: glade/fics_lounge.glade:3313 msgid "News" msgstr "Novinky" #: glade/fics_lounge.glade:3345 msgid "Show Console" msgstr "Zobrazit konzolu" #: glade/fics_lounge.glade:3359 msgid "Show _Chat" msgstr "Ukázat _rozhovor" #: glade/fics_lounge.glade:3373 msgid "_Log Off" msgstr "_Odhlásit se" #: glade/fics_lounge.glade:3393 msgid "Tools" msgstr "Nástroje" #: glade/fics_lounge.glade:3428 msgid "Asymmetric Random " msgstr "Nesouměrná náhoda" #: glade/findbar.glade:6 msgid "window1" msgstr "Okno 1" #: glade/findbar.glade:21 msgid "0 of 0" msgstr "0 z 0" #: glade/findbar.glade:66 msgid "Search:" msgstr "Hledat:" #: glade/findbar.glade:134 msgid "_Previous" msgstr "_Předchozí" #: glade/findbar.glade:192 msgid "_Next" msgstr "_Další" #: glade/newInOut.glade:45 lib/pychess/widgets/newGameDialog.py:445 msgid "New Game" msgstr "Nová hra" #: glade/newInOut.glade:108 msgid "_Start Game" msgstr "Spustit hru" #: glade/newInOut.glade:130 msgid "Copy FEN" msgstr "Kopírovat FEN" #: glade/newInOut.glade:143 msgid "Clear" msgstr "Vyprázdnit" #: glade/newInOut.glade:156 msgid "Paste FEN" msgstr "Vložit FEN" #: glade/newInOut.glade:257 msgid "_Black player:" msgstr "_Černý hráč:" #: glade/newInOut.glade:274 msgid "_White player:" msgstr "_Bílý hráč:" #: glade/newInOut.glade:385 msgid "Players" msgstr "Hráči" #: glade/newInOut.glade:436 msgid "_Untimed" msgstr "_Bez omezení" #: glade/newInOut.glade:475 msgid "Blitz: 5 min" msgstr "Bleskovka: 5 minut" #: glade/newInOut.glade:526 msgid "Rapid: 15 min + 10 sec/move" msgstr "Rychlovka: 15 min + 10 s/tah" #: glade/newInOut.glade:575 msgid "Normal: 40 min + 15 sec/move" msgstr "Normální: 40 min + 15 s/tah" #: glade/newInOut.glade:684 msgid "_Play Normal chess" msgstr "_Hrát běžné šachy" #: glade/newInOut.glade:724 msgid "Play Fischer Random chess" msgstr "Hrát Fischerovy náhodné šachy" #: glade/newInOut.glade:774 msgid "Play Losers chess" msgstr "Hrát loupežnické šachy" #: glade/newInOut.glade:919 msgid "Open Game" msgstr "Otevřít hru" #: glade/newInOut.glade:1162 msgid "Initial Position" msgstr "Počáteční postavení" #: glade/newInOut.glade:1219 msgid "Enter Game Notation" msgstr "Vstoupit do záznamu hry" #: glade/newInOut.glade:1314 msgid "Halfmove clock" msgstr "Hodiny poloviny tahu" #: glade/newInOut.glade:1327 msgid "En passant line" msgstr "Řádek cestou" #: glade/newInOut.glade:1339 msgid "Side to move" msgstr "Strana na tahu" #: glade/newInOut.glade:1351 msgid "Move number" msgstr "Číslo tahu" #: glade/newInOut.glade:1361 msgid "Black O-O" msgstr "Černý O-O" #: glade/newInOut.glade:1375 msgid "Black O-O-O" msgstr "Černý O-O-O" #: glade/newInOut.glade:1389 msgid "White O-O-O" msgstr "Bílý O-O-O" #: glade/newInOut.glade:1403 msgid "White O-O" msgstr "Bílý O-O" #: glade/promotion.glade:7 msgid "Promotion" msgstr "Proměnění" #: glade/promotion.glade:49 lib/pychess/Utils/repr.py:12 msgid "Queen" msgstr "dáma" #: glade/promotion.glade:95 lib/pychess/Utils/repr.py:12 msgid "Rook" msgstr "věž" #: glade/promotion.glade:141 lib/pychess/Utils/repr.py:12 msgid "Bishop" msgstr "střelec" #: glade/promotion.glade:187 lib/pychess/Utils/repr.py:12 msgid "Knight" msgstr "kůň" #: glade/promotion.glade:233 lib/pychess/Utils/repr.py:12 msgid "King" msgstr "král" #: glade/promotion.glade:265 msgid "Promote pawn to what?" msgstr "Proměnit pěšce na kterou figuru?" #: glade/PyChess.glade:9 msgid "Chess client" msgstr "Šachový klient" #: glade/PyChess.glade:44 msgid "Game information" msgstr "Informace o hře" #: glade/PyChess.glade:164 msgid "Event:" msgstr "Událost:" #: glade/PyChess.glade:178 msgid "Site:" msgstr "Server:" #: glade/PyChess.glade:204 msgid "Round:" msgstr "Kolo:" #: glade/PyChess.glade:237 msgid "White:" msgstr "Bílý:" #: glade/PyChess.glade:249 msgid "Black:" msgstr "Černý:" #: glade/PyChess.glade:302 msgid "Game data" msgstr "Hry v datech" #: glade/PyChess.glade:357 msgid "Date of game" msgstr "Datum hry" #: glade/PyChess.glade:495 msgid "_Game" msgstr "_Hra" #: glade/PyChess.glade:502 msgid "_New Game" msgstr "_Nová hra" #: glade/PyChess.glade:515 msgid "Play _Internet Chess" msgstr "Hrát šachy na _internetu" #: glade/PyChess.glade:534 msgid "_Load Game" msgstr "Nah_rát hru" #: glade/PyChess.glade:550 msgid "Load _Recent Game" msgstr "Nahrát _nedávnou hru" #: glade/PyChess.glade:558 msgid "Open _Database" msgstr "Otevřít _databázi" #: glade/PyChess.glade:569 lib/pychess/widgets/newGameDialog.py:615 msgid "Setup Position" msgstr "Nastavit postavení" #: glade/PyChess.glade:579 msgid "Enter Game _Notation" msgstr "Vstoupit do zázn_amu hry" #: glade/PyChess.glade:592 msgid "_Save Game" msgstr "_Uložit hru" #: glade/PyChess.glade:606 msgid "Save Game _As" msgstr "Ul_ožit hru jako..." #: glade/PyChess.glade:624 msgid "Share Game" msgstr "Sdílet hru" #: glade/PyChess.glade:630 msgid "_Export Position" msgstr "_Vyvést postavení" #: glade/PyChess.glade:644 msgid "_Analyze Game" msgstr "_Rozebrat hru" #: glade/PyChess.glade:678 msgid "Player _Rating" msgstr "Výkonnost hráče" #: glade/PyChess.glade:723 msgid "_Edit" msgstr "Úp_ravy" #: glade/PyChess.glade:734 msgid "_Copy PGN" msgstr "_Kopírovat PGN" #: glade/PyChess.glade:746 msgid "_Copy FEN" msgstr "_Kopírovat FEN" #: glade/PyChess.glade:763 msgid "_Engines" msgstr "S_troje" #: glade/PyChess.glade:789 msgid "_Actions" msgstr "Činn_osti" #: glade/PyChess.glade:800 msgid "Offer _Abort" msgstr "Nabídnout přer_ušení" #: glade/PyChess.glade:810 msgid "Offer Ad_journment" msgstr "Nabídnout odlož_ení" #: glade/PyChess.glade:831 msgid "Offer _Pause" msgstr "Nabídnout poza_stavení" #: glade/PyChess.glade:847 msgid "Offer _Undo" msgstr "Nabídnout vzetí tahu _zpět" #: glade/PyChess.glade:870 msgid "_Call Flag" msgstr "_Vítězství v čase" #: glade/PyChess.glade:890 msgid "Ask to _Move" msgstr "Vyzvat k _tahu" #: glade/PyChess.glade:905 msgid "Auto Call _Flag" msgstr "Automaticky se d_ožadovat času" #: glade/PyChess.glade:918 msgid "_View" msgstr "_Pohled" #: glade/PyChess.glade:925 msgid "_Rotate Board" msgstr "_Otočit šachovnici" #: glade/PyChess.glade:939 msgid "_Fullscreen" msgstr "_Celá obrazovka" #: glade/PyChess.glade:952 msgid "Leave _Fullscreen" msgstr "Opustit _celou obrazovku" #: glade/PyChess.glade:969 msgid "_Show Sidepanels" msgstr "_Ukázat postranní panely" #: glade/PyChess.glade:980 msgid "_Log Viewer" msgstr "P_rohlížeč záznamů" #: glade/PyChess.glade:997 msgid "_Hint mode" msgstr "Pora_dní režim" #: glade/PyChess.glade:1009 msgid "Sp_y mode" msgstr "Špio_nážní režim" #: glade/PyChess.glade:1024 msgid "_Help" msgstr "Nápo_věda" #: glade/PyChess.glade:1034 msgid "About Chess" msgstr "Co je hra v šach?" #: glade/PyChess.glade:1043 msgid "How to Play" msgstr "Jak hrát šachy" #: glade/PyChess.glade:1052 msgid "Translate PyChess" msgstr "Překlad PyChess" #: glade/PyChess.glade:1058 msgid "Tip of the Day" msgstr "Rada dne" #: glade/PyChess.glade:1153 msgid "Default" msgstr "Výchozí" #: glade/PyChess.glade:1156 msgid "Knights" msgstr "Králem" #: glade/PyChess.glade:1167 lib/pychess/widgets/preferencesDialog.py:349 msgid "Beep" msgstr "Pípnutí" #: glade/PyChess.glade:1170 lib/pychess/widgets/preferencesDialog.py:350 msgid "Select sound file..." msgstr "Vyberte zvukový soubor..." #: glade/PyChess.glade:1173 lib/pychess/widgets/preferencesDialog.py:348 msgid "No sound" msgstr "Bez zvuku" #: glade/PyChess.glade:1180 msgid "Preferences" msgstr "Nastavení" #: glade/PyChess.glade:1218 msgid "The displayed name of the first human player, e.g., John." msgstr "Zobrazené jméno prvního lidského hráče, například Jan." #: glade/PyChess.glade:1230 msgid "Name of _first human player:" msgstr "Jméno _prvního lidského hráče:" #: glade/PyChess.glade:1259 msgid "The displayed name of the guest player, e.g., Mary." msgstr "Zobrazené jméno hostujícího hráče, například Marie." #: glade/PyChess.glade:1271 msgid "Name of s_econd human player:" msgstr "Jméno _druhého lidského hráče:" #: glade/PyChess.glade:1307 msgid "_Hide tabs when only one game is open" msgstr "_Skrýt panely, když je otevřena pouze jedna hra" #: glade/PyChess.glade:1312 msgid "" "If set, this hides the tab in the top of the playing window, when it is not " "needed." msgstr "Když je zapnuta tato volba, pruh nahoře herního okna se bude ukazovat jen tehdy, když bude potřeba." #: glade/PyChess.glade:1326 msgid "_Use main app closer [x] to close all games" msgstr "_Použít hlavní zavírací tlačítko programu [x] k zavření všech her" #: glade/PyChess.glade:1331 msgid "" "If set, clicking on main application window closer first time it closes all " "games." msgstr "Je-li nastaveno, po prvním klepnutí na zavírací tlačítko okna programu dojde k zavření všech her." #: glade/PyChess.glade:1345 msgid "Auto _rotate board to current human player" msgstr "O_točit šachovnici automaticky k nynějšímu lidskému hráči" #: glade/PyChess.glade:1350 msgid "" "If set, the board will turn after each move, to show the natural view for " "the current player." msgstr "Když je zapnuta tato volba, šachovnice se otočí po každém tahu, aby se mohli ze svého pohledu na šachovnici podívat oba hráči." #: glade/PyChess.glade:1364 msgid "Auto _promote to queen" msgstr "" #: glade/PyChess.glade:1369 msgid "If set, pawn promotes to queen without promotion dialog selection." msgstr "" #: glade/PyChess.glade:1383 msgid "Face _to Face display mode" msgstr "Režim zobrazení _hlava na hlavě" #: glade/PyChess.glade:1388 msgid "" "If set, the black pieces will be head down, suitable for playing against " "friends on mobile devices." msgstr "Když je zapnuta tato volba, černé figurky jsou zobrazeny s hlavou směřující dolů. Má smysl u přenosných zařízení, když protihráč sedí na jiné straně obrazovky." #: glade/PyChess.glade:1402 msgid "Sho_w cords" msgstr "_Ukázat souřadnice" #: glade/PyChess.glade:1407 msgid "" "If set, the playing board will display labels and ranks for each chess " "field. These are usable in chess notation." msgstr "Když je zapnuta tato volba, sloupce a řádky hrací desky jsou zobrazeny s písmeny a čísly. Toto je užitečné při šachovém zápisu." #: glade/PyChess.glade:1421 msgid "Show _captured pieces" msgstr "Ukázat _zajmuté figurky" #: glade/PyChess.glade:1426 msgid "If set, the captured figurines will be shown next to the board." msgstr "Když je zapnuta tato volba, zajmuté hrací figurky budou ukázany vedle šachovnice." #: glade/PyChess.glade:1440 msgid "Prefer figures in _notation" msgstr "Upřednostňovat figurky v zá_pisu" #: glade/PyChess.glade:1445 msgid "" "If set, PyChess will use figures to express moved pieces, rather than " "uppercase letters." msgstr "Když je zapnuta tato volba, PyChess bude používat figurky namísto velkých písmen, aby vyjádřil tahy." #: glade/PyChess.glade:1464 msgid "If set, PyChess will colorize suboptimal analyzed moves with red." msgstr "Pokud je nastaveno, PyChess bude obarvovat tahy, u nichž byl proveden rozbor, jež však nejsou nejlepší, červeně." #: glade/PyChess.glade:1477 msgid "Show elapsed move times" msgstr "Ukázat časy uplynulých tahů" #: glade/PyChess.glade:1482 msgid "If set, the elapsed time that a player used for the move is shown." msgstr "Pokud je nastaveno, je ukázán uplynulý čas, jejž hráč použil na tah." #: glade/PyChess.glade:1500 msgid "If set, the hint analyzer engine evaluation value is shown." msgstr "Pokud je nastaveno, je ukázána hodnota vyhodnocení stroje poradního analyzátoru." #: glade/PyChess.glade:1526 msgid "General Options" msgstr "" #: glade/PyChess.glade:1560 msgid "F_ull board animation" msgstr "Pl_ná animace hrací desky" #: glade/PyChess.glade:1565 msgid "Animate pieces, board rotation and more. Use this on fast machines." msgstr "Animovat hrací figurky, otočení hrací desky a jiné. Používejte na rychlých strojích." #: glade/PyChess.glade:1579 msgid "Only animate _moves" msgstr "Animovat pouze _tahy" #: glade/PyChess.glade:1584 msgid "Only animate piece moves." msgstr "Animovat pouze _hrací figurky" #: glade/PyChess.glade:1599 msgid "No _animation" msgstr "Bez _animace" #: glade/PyChess.glade:1604 msgid "Never use animation. Use this on slow machines." msgstr "Animace se nebudou používat nikdy. Užitečné na pomalých počítačích." #: glade/PyChess.glade:1632 msgid "Animation" msgstr "Animace" #: glade/PyChess.glade:1651 msgid "_General" msgstr "_Obecné" #: glade/PyChess.glade:1692 msgid "Use opening _book" msgstr "Použít _knihu zahájení" #: glade/PyChess.glade:1697 msgid "If set, PyChess will suggest best opening moves on hint panel." msgstr "Když je zapnuta tato volba, PyChess bude v panelu s radami navrhovat nejlepší zahajovací tahy." #: glade/PyChess.glade:1724 msgid "Polyglot book file:" msgstr "Soubor s knihou Polyglot:" #: glade/PyChess.glade:1768 msgid "Use _local tablebases" msgstr "Použít _místní tabulkové báze" #: glade/PyChess.glade:1773 msgid "" "If set, PyChess will show game results for different moves in positions containing 6 or less pieces.\n" "You can download tablebase files from:\n" "http://www.olympuschess.com/egtb/gaviota/" msgstr "Když je zapnuta tato volba, PyChess bude ukazovat herní výsledky pro různé tahy v pozicích obsahujících 6 nebo méně hracích figurek.\nSoubory s tabulkami můžete stáhnout z:\nhttp://www.olympuschess.com/egtb/gaviota/" #: glade/PyChess.glade:1803 msgid "Gaviota TB path:" msgstr "Cesta k tabulkám od Gavioty:" #: glade/PyChess.glade:1843 msgid "Use _online tablebases" msgstr "Použít i_nternetové databáze tabulek" #: glade/PyChess.glade:1848 msgid "" "If set, PyChess will show game results for different moves in positions containing 6 or less pieces.\n" "It will search positions from http://www.k4it.de/" msgstr "Když je zapnuta tato volba, PyChess bude ukazovat herní výsledky pro různé tahy v pozicích obsahujících 6 nebo méně hracích figurek.\nPozice bude hledat na http://www.k4it.de/" #: glade/PyChess.glade:1870 msgid "Opening, endgame" msgstr "Zahájení/Otevření hry, zakončení hry" #: glade/PyChess.glade:1904 msgid "Use _analyzer" msgstr "Použít _analyzátor" #: glade/PyChess.glade:1946 msgid "" "The analyzer will run in the background and analyze the game. This is " "necessary for the hint mode to work" msgstr "Analyzátor poběží na pozadí a bude prováděn rozbor hry. Je to nutné pro to, aby pracoval poradní režim" #: glade/PyChess.glade:1978 msgid "Use _inverted analyzer" msgstr "Použít _opačný analyzátor" #: glade/PyChess.glade:2020 msgid "" "The inverse analyzer will analyze the game as if your opponent was to move. " "This is necessary for the spy mode to work" msgstr "Opačný analyzátor bude provádět rozbor hry, když bude váš soupeř na tahu. Je to nutné pro to, aby pracoval špionážní režim" #: glade/PyChess.glade:2096 msgid "Analyzing" msgstr "Rozbor" #: glade/PyChess.glade:2118 msgid "_Hints" msgstr "_Rady" #: glade/PyChess.glade:2263 msgid "Uninstall" msgstr "Odinstalovat" #: glade/PyChess.glade:2317 msgid "Ac_tive" msgstr "Č_inný" #: glade/PyChess.glade:2367 msgid "Installed Sidepanels" msgstr "Nainstalované postranní panely" #: glade/PyChess.glade:2382 msgid "Side_panels" msgstr "_Panely" #: glade/PyChess.glade:2440 msgid "Light Squares :" msgstr "Světlá pole:" #: glade/PyChess.glade:2479 msgid "Dark Squares :" msgstr "Tmavá pole:" #: glade/PyChess.glade:2515 msgid "Reset Default Colours" msgstr "Obnovit výchozí barvy" #: glade/PyChess.glade:2551 msgid "Board Colours" msgstr "Barvy šachovnice" #: glade/PyChess.glade:2610 msgid "Chess Sets" msgstr "Šachové sady" #: glade/PyChess.glade:2634 msgid "Themes" msgstr "Motivy" #: glade/PyChess.glade:2659 msgid "_Use sounds in PyChess" msgstr "Po_užívat zvuky v PyChess" #: glade/PyChess.glade:2982 msgid "A player _checks:" msgstr "Š_achy hráče:" #: glade/PyChess.glade:2997 msgid "A player _moves:" msgstr "_Tahy hráče:" #: glade/PyChess.glade:3010 msgid "Game is _drawn:" msgstr "Hra je n_erozhodná:" #: glade/PyChess.glade:3025 msgid "Game is _lost:" msgstr "Hra je _prohrána:" #: glade/PyChess.glade:3040 msgid "Game is _won:" msgstr "Hra je _vyhrána:" #: glade/PyChess.glade:3055 msgid "A player c_aptures:" msgstr "Hráč za_jímá:" #: glade/PyChess.glade:3084 msgid "Game is _set-up:" msgstr "Hra je na_stavena:" #: glade/PyChess.glade:3136 msgid "_Observed moves:" msgstr "Pozorované tah_y:" #: glade/PyChess.glade:3151 msgid "Observed _ends:" msgstr "Pozorované _konce:" #: glade/PyChess.glade:3265 msgid "Short on _time:" msgstr "Má_lo času:" #: glade/PyChess.glade:3317 msgid "_Invalid move:" msgstr "_Neplatný tah:" #: glade/PyChess.glade:3369 msgid "Activate alarm when _remaining sec is:" msgstr "Spustit poplach, když z_bývajících sekund je:" #: glade/PyChess.glade:3416 msgid "Play Sound When..." msgstr "Přehrát zvuk, když..." #: glade/PyChess.glade:3438 msgid "_Sounds" msgstr "_Zvuky" #: glade/PyChess.glade:3463 msgid "_Auto save finished games" msgstr "_Automaticky uložit skončené hry" #: glade/PyChess.glade:3497 msgid "Save files to:" msgstr "Uložit soubory do:" #: glade/PyChess.glade:3525 msgid "Use name format:" msgstr "Použít formát názvu:" #: glade/PyChess.glade:3569 msgid "Names: #n1, #n2" msgstr "Názvy: #n1, #n2" #: glade/PyChess.glade:3582 msgid "Year, month, day: #y, #m, #d" msgstr "Rok, měsíc, den: #y, #m, #d" #: glade/PyChess.glade:3619 msgid "Save elapsed move _times" msgstr "Uložit _spotřebovaný čas na tah" #: glade/PyChess.glade:3644 msgid "Save analyzing engine _evaluation values" msgstr "Uložit hodnoty _vyhodnocení stroje provádějícího rozbor" #: glade/PyChess.glade:3669 msgid "Save _own games only" msgstr "Uložit pouze _vlastní hry" #: glade/PyChess.glade:3698 msgid "Save" msgstr "Uložit" #: glade/PyChess.glade:3728 msgid "uci" msgstr "uci" #: glade/PyChess.glade:3731 msgid "xboard" msgstr "xboard" #: glade/PyChess.glade:3739 msgid "Manage engines" msgstr "Nastavení strojů" #: glade/PyChess.glade:3837 msgid "Command:" msgstr "Příkaz:" #: glade/PyChess.glade:3851 msgid "Protocol:" msgstr "Protokol:" #: glade/PyChess.glade:3865 msgid "Parameters:" msgstr "Parametry:" #: glade/PyChess.glade:3878 msgid "Command line parameters needed by the engine." msgstr "Parametry příkazového řádku potřebné pro stroj." #: glade/PyChess.glade:3903 msgid "" "Engines use uci or xboard communication protocol to talk to the GUI.\n" "If it can use both you can set here which one you like." msgstr "Stroje používají komunikační prokokol uci nebo xboard ke spojení s GUI.\nPokud používají oba, zde můžete nastavit ten, který máte radši." #: glade/PyChess.glade:3929 msgid "Working directory:" msgstr "Pracovní adresář:" #: glade/PyChess.glade:3942 msgid "The directory where the engine will be started from." msgstr "Adresář, ze kterého bude stroj spouštěn." #: glade/saveGamesDialog.glade:7 msgid "Quit PyChess" msgstr "Ukončit PyChess" #: glade/saveGamesDialog.glade:24 lib/pychess/widgets/ionest.py:424 msgid "Close _without Saving" msgstr "Zavřít _bez uložení" #: glade/saveGamesDialog.glade:83 msgid "_Save %d documents" msgstr "_Uložit %d dokumentů" #: glade/saveGamesDialog.glade:141 msgid "" "There are %d games with unsaved moves. Save changes before " "closing?" msgstr "Je %d her s neuloženými tahy. Mají se tyto tahy před zavřením uložit?" #: glade/saveGamesDialog.glade:161 msgid "Select the games you want to save:" msgstr "Vyberte hru, již chcete uložit:" #: glade/saveGamesDialog.glade:204 msgid "If you don't save, new changes to your games will be permanently lost." msgstr "Pokud hru neuložíte, bude nynější stav hry trvale ztracen." #: glade/taskers.glade:126 msgid "_Opponent:" msgstr "_Soupeř:" #: glade/taskers.glade:154 msgid "_Your Color:" msgstr "_Vaše barva:" #: glade/taskers.glade:219 msgid "_Start Game" msgstr "_Spustit hru" #: glade/taskers.glade:338 msgid "Log on as G_uest" msgstr "Přihlásit se jako H_ost" #: glade/taskers.glade:410 msgid "Ha_ndle:" msgstr "Při_hlášení:" #: glade/taskers.glade:469 msgid "_Connect to server" msgstr "" #: glade/tipoftheday.glade:7 msgid "Tip Of The day" msgstr "Rada dne" #: glade/tipoftheday.glade:62 msgid "Show tips at startup" msgstr "Ukázat rady při spuštění" #: lib/pychess/Main.py:302 msgid "http://en.wikipedia.org/wiki/Chess" msgstr "http://cs.wikipedia.org/wiki/%C5%A0achy" #: lib/pychess/Main.py:305 msgid "http://en.wikipedia.org/wiki/Rules_of_chess" msgstr "http://cs.wikipedia.org/wiki/Pravidla_%C5%A1ach%C5%AF" #: lib/pychess/Main.py:370 lib/pychess/widgets/gamenanny.py:80 msgid "Welcome" msgstr "Vítejte" #: lib/pychess/Database/gamelist.py:40 msgid "Id" msgstr "ID" #: lib/pychess/Database/gamelist.py:40 msgid "W Elo" msgstr "W Elo" #: lib/pychess/Database/gamelist.py:40 msgid "B Elo" msgstr "B Elo" #: lib/pychess/Database/gamelist.py:41 msgid "Result" msgstr "Výsledek" #: lib/pychess/Database/gamelist.py:41 msgid "Event" msgstr "Událost" #: lib/pychess/Database/gamelist.py:41 msgid "Site" msgstr "Stránka" #: lib/pychess/Database/gamelist.py:41 msgid "Round" msgstr "Kolo" #: lib/pychess/Database/gamelist.py:41 msgid "Date" msgstr "Datum" #: lib/pychess/Database/gamelist.py:41 msgid "ECO" msgstr "ECO" #: lib/pychess/Database/gamelist.py:62 msgid "PyChess Game Database" msgstr "PyChess Game Databáze" #: lib/pychess/Database/PgnImport.py:188 #, python-format msgid "The game #%s can't be loaded, because of an error parsing FEN" msgstr "Hru #%s nelze nahrát, protože se při zpracování souboru FEN vyskytla chyba" #: lib/pychess/ic/FICSConnection.py:139 msgid "The connection was broken - got \"end of file\" message" msgstr "Spojení bylo přerušeno - obdržena zpráva \"konec souboru\"" #: lib/pychess/ic/FICSConnection.py:140 #, python-format msgid "'%s' is not a registered name" msgstr "'%s' není registrované jméno" #: lib/pychess/ic/FICSConnection.py:141 msgid "" "The entered password was invalid.\n" "If you forgot your password, go to http://www.freechess.org/password to request a new one over email." msgstr "Zadané heslo bylo neplatné.\nPokud jste zapomněl své heslo, jděte na stránky http://www.freechess.org/password a požádejte o nové, které bude zasláno elektronickou poštou." #: lib/pychess/ic/FICSConnection.py:145 #, python-format msgid "Sorry '%s' is already logged in" msgstr "Promiňte '%s' je již přihlášen" #: lib/pychess/ic/FICSConnection.py:146 #, python-format msgid "'%s' is a registered name. If it is yours, type the password." msgstr "'%s' je zaregistrované jméno. Pokud je vaše, zadejte heslo." #: lib/pychess/ic/FICSConnection.py:147 msgid "" "Due to abuse problems, guest connections have been prevented.\n" "You can still register on http://www.freechess.org" msgstr "Kvůli potížím se zneužíváním bylo hostům zabráněno v připojení.\nPořád se ještě můžete zaregistrovat na http://www.freechess.org" #: lib/pychess/ic/FICSConnection.py:166 msgid "Connecting to server" msgstr "Připojení k serveru" #: lib/pychess/ic/FICSConnection.py:181 msgid "Logging on to server" msgstr "Přihlášení k serveru" #: lib/pychess/ic/FICSConnection.py:239 msgid "Setting up environment" msgstr "Nastavení prostředí" #: lib/pychess/ic/FICSObjects.py:35 lib/pychess/ic/FICSObjects.py:47 #, python-format msgid "%(player)s is %(status)s" msgstr "%(player)s je %(status)s" #: lib/pychess/ic/FICSObjects.py:46 msgid "not playing" msgstr "nehraje" #: lib/pychess/ic/FICSObjects.py:54 lib/pychess/ic/ICLounge.py:1136 #: lib/pychess/ic/ICLounge.py:2209 lib/pychess/ic/__init__.py:98 #: lib/pychess/widgets/newGameDialog.py:153 msgid "Blitz" msgstr "Blesk" #: lib/pychess/ic/FICSObjects.py:58 lib/pychess/ic/ICLounge.py:1137 #: lib/pychess/ic/ICLounge.py:2209 lib/pychess/ic/__init__.py:100 msgid "Lightning" msgstr "Střela" #: lib/pychess/ic/FICSObjects.py:60 lib/pychess/Variants/atomic.py:15 msgid "Atomic" msgstr "Atomové šachy" #: lib/pychess/ic/FICSObjects.py:62 lib/pychess/Variants/bughouse.py:9 msgid "Bughouse" msgstr "Šachy ve dvou" #: lib/pychess/ic/FICSObjects.py:64 lib/pychess/Variants/crazyhouse.py:9 msgid "Crazyhouse" msgstr "Blázinec" #: lib/pychess/ic/FICSObjects.py:66 lib/pychess/Variants/losers.py:9 msgid "Losers" msgstr "Loupežníci" #: lib/pychess/ic/FICSObjects.py:68 lib/pychess/Variants/suicide.py:12 msgid "Suicide" msgstr "Loupežnické šachy" #: lib/pychess/ic/FICSObjects.py:70 lib/pychess/ic/__init__.py:129 msgid "Wild" msgstr "Varianty" #: lib/pychess/ic/FICSObjects.py:117 msgid "Online" msgstr "Připojený" #: lib/pychess/ic/FICSObjects.py:118 lib/pychess/ic/FICSObjects.py:143 msgid "Offline" msgstr "Nepřipojený" #: lib/pychess/ic/FICSObjects.py:133 msgid "Available" msgstr "Dostupný" #: lib/pychess/ic/FICSObjects.py:135 msgid "Playing" msgstr "Hraje" #: lib/pychess/ic/FICSObjects.py:141 msgid "Idle" msgstr "Nečinný" #: lib/pychess/ic/FICSObjects.py:145 msgid "Examining" msgstr "Přihlíží" #: lib/pychess/ic/FICSObjects.py:147 msgid "Not Available" msgstr "Nedostupný" #: lib/pychess/ic/FICSObjects.py:149 msgid "Running Simul Match" msgstr "Simultánní partie" #: lib/pychess/ic/FICSObjects.py:151 msgid "In Tournament" msgstr "Na soutěži" #: lib/pychess/ic/FICSObjects.py:308 lib/pychess/ic/FICSObjects.py:492 #: lib/pychess/ic/ICLounge.py:2278 msgid "Unrated" msgstr "Nehodnocený" #: lib/pychess/ic/FICSObjects.py:491 lib/pychess/ic/ICLounge.py:670 #: lib/pychess/ic/ICLounge.py:1358 lib/pychess/ic/ICLounge.py:1558 #: lib/pychess/ic/ICLounge.py:2113 msgid "Rated" msgstr "Hodnoceno" #: lib/pychess/ic/FICSObjects.py:498 lib/pychess/ic/ICLounge.py:2098 #, python-format msgid "%d min" msgstr "%d min" #: lib/pychess/ic/FICSObjects.py:500 #, python-format msgid " + %d sec" msgstr " + %d s" #: lib/pychess/ic/FICSObjects.py:517 #, python-format msgid "%(player)s plays %(color)s" msgstr "%(player)s plays %(color)s" #: lib/pychess/ic/FICSObjects.py:519 lib/pychess/ic/ICLounge.py:909 msgid "white" msgstr "Bílý" #: lib/pychess/ic/FICSObjects.py:519 lib/pychess/ic/ICLounge.py:909 msgid "black" msgstr "Černý" #: lib/pychess/ic/FICSObjects.py:565 msgid "This is a continuation of an adjourned match" msgstr "Toto je pokračování přerušené hry" #: lib/pychess/ic/FICSObjects.py:654 msgid "Opponent Rating" msgstr "Hodnocení soupeře" #: lib/pychess/ic/FICSObjects.py:656 msgid "Manual Accept" msgstr "Přijmout ručně" #: lib/pychess/ic/FICSObjects.py:810 msgid "Private" msgstr "Soukromý" #: lib/pychess/ic/FICSObjects.py:930 lib/pychess/ic/ICLounge.py:527 #: lib/pychess/Savers/epd.py:139 msgid "Unknown" msgstr "Neznámé" #: lib/pychess/ic/ICLogon.py:159 lib/pychess/ic/ICLogon.py:165 msgid "Connection Error" msgstr "Chyba spojení" #: lib/pychess/ic/ICLogon.py:161 msgid "Log on Error" msgstr "Chyba při přihlašování" #: lib/pychess/ic/ICLogon.py:163 msgid "Connection was closed" msgstr "Spojení bylo uzavřeno" #: lib/pychess/ic/ICLogon.py:169 msgid "Address Error" msgstr "Chyba adresy" #: lib/pychess/ic/ICLogon.py:172 msgid "Auto-logout" msgstr "Automatické odhlášení" #: lib/pychess/ic/ICLogon.py:173 msgid "You have been logged out because you were idle more than 60 minutes" msgstr "Byl jste odhlášen, protože jste byl nečinný více jak 60 minut" #: lib/pychess/ic/ICLounge.py:222 msgid "You have to set kibitz on to see bot messages here." msgstr "Musíte zapnout kibicování, abyste zde viděl obě zprávy." #: lib/pychess/ic/ICLounge.py:241 msgid "" "You may only have 3 outstanding seeks at the same time. If you want to add a" " new seek you must clear your currently active seeks. Clear your seeks?" msgstr "Lze vytvořit jen 3 žádosti v tutéž dobu. Pokud chcete přidat novou žádost, musíte smazat své nyní účinné žádosti. Smazat žádosti?" #: lib/pychess/ic/ICLounge.py:258 msgid "You can't touch this! You are examining a game." msgstr "" #: lib/pychess/ic/ICLounge.py:270 msgid " has declined your offer for a match" msgstr " odmítl vaši nabídku ke hře" #: lib/pychess/ic/ICLounge.py:283 msgid " is censoring you" msgstr " vás cenzuruje" #: lib/pychess/ic/ICLounge.py:296 msgid " noplay listing you" msgstr " žádná hra vás nemá v seznamu" #: lib/pychess/ic/ICLounge.py:311 msgid " uses a formula not fitting your match request:" msgstr " neodpovídá hlediskům vaší žádosti o hru:" #: lib/pychess/ic/ICLounge.py:325 msgid "to manual accept" msgstr "k ručnímu přijetí" #: lib/pychess/ic/ICLounge.py:327 msgid "to automatic accept" msgstr "k automatickému přijetí" #: lib/pychess/ic/ICLounge.py:329 msgid "rating range now" msgstr "rozsah hodnocení nyní" #: lib/pychess/ic/ICLounge.py:330 msgid "Seek updated" msgstr "Žádost obnovena" #: lib/pychess/ic/ICLounge.py:342 msgid "Your seeks have been removed" msgstr "Vaše žádosti byly odstraněny" #: lib/pychess/ic/ICLounge.py:363 msgid " has arrived" msgstr "přišel" #: lib/pychess/ic/ICLounge.py:370 msgid " has departed" msgstr "odešel" #: lib/pychess/ic/ICLounge.py:374 msgid " is present" msgstr "je přítomen" #: lib/pychess/ic/ICLounge.py:391 sidepanel/chatPanel.py:17 msgid "Chat" msgstr "Rozhovor" #: lib/pychess/ic/ICLounge.py:472 sidepanel/bookPanel.py:366 msgid "Win" msgstr "Výhra" #: lib/pychess/ic/ICLounge.py:472 sidepanel/bookPanel.py:360 msgid "Draw" msgstr "Remíza" #: lib/pychess/ic/ICLounge.py:472 sidepanel/bookPanel.py:363 msgid "Loss" msgstr "Prohra" #: lib/pychess/ic/ICLounge.py:482 msgid "" "On FICS, your \"Wild\" rating encompasses all of the following variants at " "all time controls:\n" msgstr "Na FICS, vaše zařazení \"Varianty\" počítá následující varianty:\n" #: lib/pychess/ic/ICLounge.py:494 msgid "Sanctions" msgstr "Postihy" #: lib/pychess/ic/ICLounge.py:499 msgid "Email" msgstr "E-mail" #: lib/pychess/ic/ICLounge.py:504 msgid "Spent" msgstr "Stráveno" #: lib/pychess/ic/ICLounge.py:506 msgid "online in total" msgstr "Celková doba připojení" #: lib/pychess/ic/ICLounge.py:512 msgid "Ping" msgstr "Ping" #: lib/pychess/ic/ICLounge.py:517 msgid "Connecting" msgstr "Připojování" #: lib/pychess/ic/ICLounge.py:544 msgid "" "You are currently logged in as a guest.\n" "A guest can't play rated games and therefore isn't able to play as many of the types of matches offered as a registered user. To register an account, go to http://www.freechess.org/Register/index.html." msgstr "Nyní jste přihlášen jako host.\nHost nemůže hrát hodnocené hry a proto nemůže hrát tolik typů z nabízených utkání jako registrovaný uživatel. Pro zaregistrování účtu jděte na http://www.freechess.org/Register/index.html." #: lib/pychess/ic/ICLounge.py:669 lib/pychess/ic/ICLounge.py:1136 msgid "Name" msgstr "Jméno" #: lib/pychess/ic/ICLounge.py:670 lib/pychess/ic/ICLounge.py:1358 #: lib/pychess/ic/ICLounge.py:1558 msgid "Type" msgstr "Typ" #: lib/pychess/ic/ICLounge.py:670 lib/pychess/ic/ICLounge.py:1558 msgid "Clock" msgstr "Hodiny" #: lib/pychess/ic/ICLounge.py:726 lib/pychess/ic/ICLounge.py:923 #: lib/pychess/Players/Human.py:250 msgid "Accept" msgstr "Přijmout" #: lib/pychess/ic/ICLounge.py:728 msgid "Assess" msgstr "" #: lib/pychess/ic/ICLounge.py:734 msgid "Archived" msgstr "" #: lib/pychess/ic/ICLounge.py:848 #, python-format msgid "Active seeks: %d" msgstr "Činné žádosti: %d" #: lib/pychess/ic/ICLounge.py:897 #, python-format msgid "" " would like to resume your adjourned %(time)s %(gametype)s " "game." msgstr " chcete pokračovat ve své odložené hře %(time)s %(gametype)s." #: lib/pychess/ic/ICLounge.py:902 #, python-format msgid "" " challenges you to a %(time)s %(rated)s %(gametype)s game" msgstr " vás vyzývá ke hře %(time)s %(rated)s %(gametype)s " #: lib/pychess/ic/ICLounge.py:907 #, python-format msgid " where %(player)s plays %(color)s." msgstr " kde %(player)s hraje%(color)s." #: lib/pychess/ic/ICLounge.py:924 lib/pychess/Players/Human.py:251 msgid "Decline" msgstr "Odmítnout" #: lib/pychess/ic/ICLounge.py:1065 msgid " min" msgstr " min" #: lib/pychess/ic/ICLounge.py:1137 msgid "Status" msgstr "Stav" #: lib/pychess/ic/ICLounge.py:1203 lib/pychess/ic/ICLounge.py:1233 #, python-format msgid "Players: %d" msgstr "Hráči: %d" #: lib/pychess/ic/ICLounge.py:1469 #, python-format msgid "Games running: %d" msgstr "Běžící hry: %d" #: lib/pychess/ic/ICLounge.py:1559 msgid "Date/Time" msgstr "Datum/Čas" #: lib/pychess/ic/ICLounge.py:1614 #, python-format msgid "" " with whom you have an adjourned %(timecontrol)s %(gametype)s " "game is online." msgstr "s nímž jste měl odloženou hru %(timecontrol)s %(gametype)s, je připojen k síti." #: lib/pychess/ic/ICLounge.py:1635 msgid "Request Continuation" msgstr "Požádat o pokračování" #: lib/pychess/ic/ICLounge.py:1637 msgid "Examine Adjourned Game" msgstr "Přezkoumat odloženou hru" #: lib/pychess/ic/ICLounge.py:1965 msgid "" "The chain button is disabled because you are logged in as a guest. Guests " "can't establish ratings, and the chain button's state has no effect when " "there is no rating to which to tie \"Opponent Strength\" to" msgstr "Tlačítko řetězu je vypnuto, protože jste přihlášen jako host. Hosté nemohou poskytovat hodnocení a tlačítko řetězu nemá žádný účinek, když není žádné hodnocení, se kterým by se dala spojit soupeřova síla" #: lib/pychess/ic/ICLounge.py:2006 msgid "Challenge: " msgstr "Výzva: " #: lib/pychess/ic/ICLounge.py:2044 msgid "If set you can refuse players accepting your seek" msgstr "" #: lib/pychess/ic/ICLounge.py:2048 lib/pychess/ic/ICLounge.py:2051 msgid "This option is not applicable because you're challenging a player" msgstr "Tato volba není použitelná, protože vyzýváte hráče" #: lib/pychess/ic/ICLounge.py:2064 msgid "Edit Seek: " msgstr "Upravit žádost: " #: lib/pychess/ic/ICLounge.py:2095 #, python-format msgid "%(minutes)d min + %(gain)d sec/move" msgstr "%(minutes)d min + %(gain)d s/tah" #: lib/pychess/ic/ICLounge.py:2116 msgid "Manual" msgstr "Ruční" #: lib/pychess/ic/ICLounge.py:2256 msgid "Any strength" msgstr "Jakákoli síla" #: lib/pychess/ic/ICLounge.py:2308 msgid "You can't play rated games because you are logged in as a guest" msgstr "Nemůžete hrát hodnocené hry, protože jste přihlášen jako host" #: lib/pychess/ic/ICLounge.py:2312 msgid "You can't play rated games because \"Untimed\" is checked, " msgstr "Nemůžete hrát hodnocené hry, protože šachové hodiny jsou vypnuty " #: lib/pychess/ic/ICLounge.py:2313 msgid "and on FICS, untimed games can't be rated" msgstr "a v FICS nelze hodnotit žádné hry bez šachových hodin" #: lib/pychess/ic/ICLounge.py:2317 msgid "This option is not available because you're challenging a guest, " msgstr "Tato volba není dostupná, protože vyzýváte hosta" #: lib/pychess/ic/ICLounge.py:2318 msgid "and guests can't play rated games" msgstr "a hosté nemohou hrát hodnocené hry" #: lib/pychess/ic/ICLounge.py:2332 lib/pychess/Variants/shuffle.py:16 #: lib/pychess/widgets/newGameDialog.py:266 msgid "Shuffle" msgstr "Zamíchat" #: lib/pychess/ic/ICLounge.py:2333 lib/pychess/widgets/newGameDialog.py:267 msgid "Other (standard rules)" msgstr "Jiné (standardní pravidla)" #: lib/pychess/ic/ICLounge.py:2334 lib/pychess/widgets/newGameDialog.py:268 msgid "Other (non standard rules)" msgstr "Jiné (nestandardní pravidla)" #: lib/pychess/ic/ICLounge.py:2421 msgid "You can't select a variant because \"Untimed\" is checked, " msgstr "Nemůžete vybrat žádnou variantu, protože šachové hodiny jsou vypnuty " #: lib/pychess/ic/ICLounge.py:2422 msgid "and on FICS, untimed games have to be normal chess rules" msgstr "a v FICS lze hry bez šachových hodin hrát jen podle běžných pravidel." #: lib/pychess/ic/ICLounge.py:2454 msgid "Change Tolerance" msgstr "Změnit toleranci" #: lib/pychess/ic/__init__.py:102 msgid "Examined" msgstr "Prohlédnuto" #: lib/pychess/ic/__init__.py:103 msgid "Other" msgstr "Jiné" #: lib/pychess/ic/__init__.py:182 msgid "Administrator" msgstr "Správce" #: lib/pychess/ic/__init__.py:182 msgid "Blindfold Account" msgstr "Zakrytý účet" #: lib/pychess/ic/__init__.py:182 msgid "Computer" msgstr "Počítač" #: lib/pychess/ic/__init__.py:183 msgid "Team Account" msgstr "Týmový účet" #: lib/pychess/ic/__init__.py:183 msgid "Unregistered" msgstr "Neregistrovaný" #: lib/pychess/ic/__init__.py:183 msgid "Chess Advisor" msgstr "Šachový poradce" #: lib/pychess/ic/__init__.py:184 msgid "Service Representative" msgstr "Zástupce služby" #: lib/pychess/ic/__init__.py:184 msgid "Tournament Director" msgstr "Ředitel turnaje" #: lib/pychess/ic/__init__.py:184 msgid "Mamer Manager" msgstr "Správce Mamer" #: lib/pychess/ic/__init__.py:185 msgid "Grand Master" msgstr "Velmistr" #: lib/pychess/ic/__init__.py:185 msgid "International Master" msgstr "Mezinárodní mistr" #: lib/pychess/ic/__init__.py:185 msgid "FIDE Master" msgstr "FIDE mistr" #: lib/pychess/ic/__init__.py:186 msgid "Woman Grand Master" msgstr "Velmistryně" #: lib/pychess/ic/__init__.py:186 msgid "Woman International Master" msgstr "Mezinárodní mistryně" #: lib/pychess/ic/__init__.py:186 msgid "Woman FIDE Master" msgstr "Dámské mistrovství FIDE" #: lib/pychess/ic/__init__.py:187 msgid "Dummy Account" msgstr "Smyšlený účet" #: lib/pychess/ic/__init__.py:191 msgid "*" msgstr "*" #: lib/pychess/ic/__init__.py:191 lib/pychess/Utils/repr.py:14 msgid "B" msgstr "B" #: lib/pychess/ic/__init__.py:191 msgid "C" msgstr "C" #: lib/pychess/ic/__init__.py:192 msgid "T" msgstr "T" #: lib/pychess/ic/__init__.py:192 msgid "U" msgstr "U" #: lib/pychess/ic/__init__.py:192 msgid "CA" msgstr "CA" #: lib/pychess/ic/__init__.py:193 msgid "SR" msgstr "SR" #: lib/pychess/ic/__init__.py:193 msgid "TD" msgstr "TD" #: lib/pychess/ic/__init__.py:193 msgid "TM" msgstr "TM" #: lib/pychess/ic/__init__.py:194 msgid "GM" msgstr "GM" #: lib/pychess/ic/__init__.py:194 msgid "IM" msgstr "IM" #: lib/pychess/ic/__init__.py:194 msgid "FM" msgstr "FM" #: lib/pychess/ic/__init__.py:195 msgid "WGM" msgstr "WGM" #: lib/pychess/ic/__init__.py:195 msgid "WIM" msgstr "WIM" #: lib/pychess/ic/__init__.py:195 msgid "WFM" msgstr "WFM" #: lib/pychess/ic/__init__.py:195 msgid "D" msgstr "D" #: lib/pychess/ic/__init__.py:195 msgid "H" msgstr "" #: lib/pychess/ic/__init__.py:195 msgid "CM" msgstr "" #: lib/pychess/ic/__init__.py:195 msgid "FA" msgstr "" #: lib/pychess/ic/__init__.py:195 msgid "NM" msgstr "" #: lib/pychess/Players/CECPEngine.py:857 #, python-format msgid "The engine %s reports an error:" msgstr "Stroj %s hlásí chybu:" #: lib/pychess/Players/Human.py:20 msgid "Your opponent has offered you a draw." msgstr "Váš soupeř nabídl remízu." #: lib/pychess/Players/Human.py:21 msgid "" "Your opponent has offered you a draw. If you accept this offer, the game " "will end with a score of 1/2 - 1/2." msgstr "Váš soupeř nabídl remízu. Pokud tuto nabídku přijmete, hra se skončí s výsledkem 1/2 k 1/2." #: lib/pychess/Players/Human.py:23 msgid "Your opponent wants to abort the game." msgstr "Váš soupeř chce hru ukončit." #: lib/pychess/Players/Human.py:24 msgid "" "Your opponent has asked that the game be aborted. If you accept this offer, " "the game will end with no rating change." msgstr "Váš soupeř požádal o ukončení hry. Pokud tuto nabídku přijmete, hra se skončí beze změny hodnocení." #: lib/pychess/Players/Human.py:26 msgid "Your opponent wants to adjourn the game." msgstr "Váš soupeř chce hru odložit." #: lib/pychess/Players/Human.py:27 msgid "" "Your opponent has asked that the game be adjourned. If you accept this " "offer, the game will be adjourned and you can resume it later (when your " "opponent is online and both players agree to resume)." msgstr "Váš soupeř požádal o odložení hry. Pokud tuto nabídku přijmete, hra bude odložena a vy v ní můžete pokračovat později (až váš soupeř bude připojen k internetu a až budou oba hráči souhlasit s pokračováním)." #: lib/pychess/Players/Human.py:29 #, python-format msgid "Your opponent wants to undo %s move(s)." msgstr "Váš soupeř chce vrátit zpět %s tah(y)." #: lib/pychess/Players/Human.py:30 #, python-format msgid "" "Your opponent has asked that the last %s move(s) be undone. If you accept " "this offer, the game will continue from the earlier position." msgstr "Váš soupeř požádal o to, aby se poslední %s tah(y) vzaly zpátky. Pokud tuto nabídku přijmete, hra bude pokračovat z dřívější pozice." #: lib/pychess/Players/Human.py:32 msgid "Your opponent wants to pause the game." msgstr "Váš soupeř chce přestávku ve hře." #: lib/pychess/Players/Human.py:33 msgid "" "Your opponent has asked that the game be paused. If you accept this offer, " "the game clock will be paused until both players agree to resume the game." msgstr "Váš soupeř požádal o pozastavení hry. Pokud tuto nabídku přijmete, herní hodiny budou zastaveny tak dlouho, až budou oba hráči souhlasit s pokračováním ve hře." #: lib/pychess/Players/Human.py:35 msgid "Your opponent wants to resume the game." msgstr "Váš soupeř chce pokračovat ve hře." #: lib/pychess/Players/Human.py:36 msgid "" "Your opponent has asked that the game be resumed. If you accept this offer, " "the game clock will continue from where it was paused." msgstr "Váš soupeř požádal o pokračování ve hře. Pokud tuto nabídku přijmete, herní hodiny budou budou opět spuštěny. Bude se pokračovat od toho časového okamžiku, kdy se přestalo." #: lib/pychess/Players/Human.py:40 msgid "The resignation" msgstr "Vzdání se" #: lib/pychess/Players/Human.py:41 msgid "The flag call" msgstr "Volání vlajky" #: lib/pychess/Players/Human.py:42 msgid "The draw offer" msgstr "Nabídka remízy" #: lib/pychess/Players/Human.py:43 msgid "The abort offer" msgstr "Nabídka přerušení" #: lib/pychess/Players/Human.py:44 msgid "The adjourn offer" msgstr "Nabídka odložení" #: lib/pychess/Players/Human.py:45 msgid "The pause offer" msgstr "Nabídka pozastavení" #: lib/pychess/Players/Human.py:46 msgid "The resume offer" msgstr "Nabídka pokračování" #: lib/pychess/Players/Human.py:47 msgid "The offer to switch sides" msgstr "Nabídka výměny stran" #: lib/pychess/Players/Human.py:48 msgid "The takeback offer" msgstr "Nabídka vzetí zpět" #: lib/pychess/Players/Human.py:52 msgid "resign" msgstr "Vzdát" #: lib/pychess/Players/Human.py:53 msgid "call your opponents flag" msgstr "Žádat vítězství v čase" #: lib/pychess/Players/Human.py:54 msgid "offer a draw" msgstr "Nabídnout remízu" #: lib/pychess/Players/Human.py:55 msgid "offer an abort" msgstr "Nabídnout přerušení" #: lib/pychess/Players/Human.py:56 msgid "offer to adjourn" msgstr "Nabídnout odložení" #: lib/pychess/Players/Human.py:57 msgid "offer a pause" msgstr "Nabídnout pozastavení" #: lib/pychess/Players/Human.py:58 msgid "offer to resume" msgstr "Nabídnout pokračování" #: lib/pychess/Players/Human.py:59 msgid "offer to switch sides" msgstr "Nabídnout změnu stran" #: lib/pychess/Players/Human.py:60 msgid "offer a takeback" msgstr "Nabídnout vzetí zpět" #: lib/pychess/Players/Human.py:61 msgid "ask your opponent to move" msgstr "Vyzvat svého soupeře k tahu" #: lib/pychess/Players/Human.py:66 msgid "Your opponent is not out of time." msgstr "Váš soupeř má ještě zbytek hracího času." #: lib/pychess/Players/Human.py:68 msgid "The clock hasn't been started yet." msgstr "Hodiny ještě neběží." #: lib/pychess/Players/Human.py:70 msgid "You can't switch colors during the game." msgstr "Nemůžete měnit barvy během hry." #: lib/pychess/Players/Human.py:72 msgid "You have tried to undo too many moves." msgstr "Pokusil jste se vzít zpět příliš mnoho tahů." #: lib/pychess/Players/Human.py:180 msgid "Your opponent asks you to hurry!" msgstr "Váš soupeř požaduje, abyste si pospíšil!" #: lib/pychess/Players/Human.py:181 msgid "" "Generally this means nothing, as the game is time-based, but if you want to " "please your opponent, perhaps you should get going." msgstr "Obecně o nic nejde, jelikož hra je založena na času, ale pokud chcete svého soupeře potěšit, možná byste si měl pohnout." #: lib/pychess/Players/Human.py:259 #, python-format msgid "%s was declined by your opponent" msgstr "%s byla vaším soupeřem odmítnuta" #: lib/pychess/Players/Human.py:260 #, python-format msgid "Resend %s?" msgstr "Poslat %s znovu?" #: lib/pychess/Players/Human.py:267 msgid "Resend" msgstr "Poslat znovu" #: lib/pychess/Players/Human.py:275 #, python-format msgid "%s was withdrawn by your opponent" msgstr "%s byla vaším soupeřem stažena" #: lib/pychess/Players/Human.py:276 msgid "Your opponent seems to have changed their mind." msgstr "Zdá se, že váš soupeř změnil názor." #: lib/pychess/Players/Human.py:290 #, python-format msgid "Unable to accept %s" msgstr "Nelze přijmout %s" #: lib/pychess/Players/Human.py:291 msgid "Probably because it has been withdrawn." msgstr "Pravděpodobně z toho důvodu, že to bylo staženo." #: lib/pychess/Players/Human.py:298 #, python-format msgid "%s returns an error" msgstr "%s vrátil chybu" #: lib/pychess/Savers/chessalpha2.py:12 msgid "Chess Alpha 2 Diagram" msgstr "Čachy-Alpha-2-Diagram" #: lib/pychess/Savers/chesspastebin.py:39 msgid "Game shared at " msgstr "Hra sdílena v" #: lib/pychess/Savers/chesspastebin.py:41 msgid "(Link is available on clipboard.)" msgstr "(Odkaz je dostupný ve schránce.)" #: lib/pychess/Savers/database.py:19 msgid "PyChess database" msgstr "Databáze PyChess" #: lib/pychess/Savers/epd.py:12 msgid "Chess Position" msgstr "Šachová pozice" #: lib/pychess/Savers/fen.py:12 msgid "Simple Chess Position" msgstr "Jednoduchá šachová pozice" #: lib/pychess/Savers/fen.py:44 lib/pychess/Savers/pgn.py:329 msgid "The game can't be loaded, because of an error parsing FEN" msgstr "Hru nelze nahrát z důvodu chyby při zpracování FEN" #: lib/pychess/Savers/pgnbase.py:100 #, python-format msgid "" "The game can't be read to end, because of an error parsing move %(moveno)s " "'%(notation)s'." msgstr "Hru nelze přečíst do konce z důvodu chyby při zpracování tahu %(moveno)s '%(notation)s'." #: lib/pychess/Savers/pgnbase.py:102 #, python-format msgid "The move failed because %s." msgstr "Tah se nezdařil protože %s." #: lib/pychess/Savers/pgnbase.py:110 #, python-format msgid "Error parsing move %(moveno)s %(mstr)s" msgstr "Chyba při zpracování tahu %(moveno)s %(mstr)s" #: lib/pychess/Savers/pgn.py:28 msgid "Chess Game" msgstr "Šachová hra" #: lib/pychess/Savers/pgn.py:362 msgid "Invalid move." msgstr "Neplatný tah." #: lib/pychess/Savers/png.py:15 msgid "Png image" msgstr "Obrázek PNG" #: lib/pychess/System/ping.py:31 msgid "Destination Host Unreachable" msgstr "Cílový počítač je nedosažitelný" #: lib/pychess/System/ping.py:74 msgid "Died" msgstr "Zemřel" #: lib/pychess/Utils/GameModel.py:147 msgid "Local Event" msgstr "Místní událost" #: lib/pychess/Utils/GameModel.py:148 msgid "Local Site" msgstr "Místní stránka" #: lib/pychess/Utils/repr.py:12 msgid "Pawn" msgstr "pěšec" #: lib/pychess/Utils/repr.py:14 msgid "P" msgstr "P" #: lib/pychess/Utils/repr.py:14 msgid "N" msgstr "N" #: lib/pychess/Utils/repr.py:14 msgid "R" msgstr "R" #: lib/pychess/Utils/repr.py:14 msgid "Q" msgstr "Q" #: lib/pychess/Utils/repr.py:14 msgid "K" msgstr "K" #: lib/pychess/Utils/repr.py:17 msgid "The game ended in a draw" msgstr "Hra skočila remízou" #: lib/pychess/Utils/repr.py:18 #, python-format msgid "%(white)s won the game" msgstr "%(white)s vyhrál hru" #: lib/pychess/Utils/repr.py:19 #, python-format msgid "%(black)s won the game" msgstr "%(black)s vyhrál hru" #: lib/pychess/Utils/repr.py:20 msgid "The game has been killed" msgstr "Hra byla zabita" #: lib/pychess/Utils/repr.py:21 msgid "The game has been adjourned" msgstr "Hra byla odložena" #: lib/pychess/Utils/repr.py:22 msgid "The game has been aborted" msgstr "Hra byla přerušena" #: lib/pychess/Utils/repr.py:26 msgid "Because neither player has sufficient material to mate" msgstr "Protože žádný z hráčů nemá dost materiálu na to, aby dal mat" #: lib/pychess/Utils/repr.py:27 msgid "Because the same position was repeated three times in a row" msgstr "Protože tatáž pozice byla zopakována třikrát po sobě v řadě" #: lib/pychess/Utils/repr.py:28 msgid "Because the last 50 moves brought nothing new" msgstr "Protože posledních padesát tahů nepřineslo nic nového" #: lib/pychess/Utils/repr.py:29 msgid "Because both players ran out of time" msgstr "Protože oběma hráčům nezůstal žádný čas" #: lib/pychess/Utils/repr.py:30 #, python-format msgid "Because %(mover)s stalemated" msgstr "Protože %(mover)s je neschopen tahu - patová situace" #: lib/pychess/Utils/repr.py:31 msgid "Because both players agreed to a draw" msgstr "Protože oba hráči souhlasili s nerozhodným výsledkem - remízou" #: lib/pychess/Utils/repr.py:32 lib/pychess/Utils/repr.py:42 msgid "Because of adjudication by an admin" msgstr "Z rozhodnutí správce" #: lib/pychess/Utils/repr.py:33 msgid "Because the game exceed the max length" msgstr "Protože hra překročila největší možnou délku" #: lib/pychess/Utils/repr.py:34 #, python-format msgid "" "Because %(white)s ran out of time and %(black)s has insufficient material to" " mate" msgstr "Protože %(white)s už nezůstal čas a %(black)s nemá dost materiálu na to, aby dal mat" #: lib/pychess/Utils/repr.py:35 #, python-format msgid "" "Because %(black)s ran out of time and %(white)s has insufficient material to" " mate" msgstr "Protože %(black)s už nezůstal čas a %(white)s nemá dost materiálu na to, aby dal mat" #: lib/pychess/Utils/repr.py:36 msgid "Because both players have the same amount of pieces" msgstr "Protože oběma hráčům zůstal stejný počet figurek" #: lib/pychess/Utils/repr.py:38 #, python-format msgid "Because %(loser)s resigned" msgstr "Protože %(loser)s vzdal" #: lib/pychess/Utils/repr.py:39 #, python-format msgid "Because %(loser)s ran out of time" msgstr "Protože %(loser)s nezbyl čas, a tak zemřel z časové tísně" #: lib/pychess/Utils/repr.py:40 #, python-format msgid "Because %(loser)s was checkmated" msgstr "Protože %(loser)s dostal šachmat, a tím pádem skončil" #: lib/pychess/Utils/repr.py:41 #, python-format msgid "Because %(loser)s disconnected" msgstr "Protože %(loser)s byl odpojen" #: lib/pychess/Utils/repr.py:43 #, python-format msgid "Because %(winner)s has fewer pieces" msgstr "Protože %(winner)s má málo figurek" #: lib/pychess/Utils/repr.py:44 #, python-format msgid "Because %(winner)s lost all pieces" msgstr "Protože %(winner)s ztratil všechny figurky" #: lib/pychess/Utils/repr.py:45 #, python-format msgid "Because %(loser)s king exploded" msgstr "Protože %(loser)s král buď vybuchl anebo se rozložil" #: lib/pychess/Utils/repr.py:46 #, python-format msgid "Because %(winner)s king reached the center" msgstr "Protože %(winner)s král dosáhl středu hrací" #: lib/pychess/Utils/repr.py:47 #, python-format msgid "Because %(winner)s was giving check 3 times" msgstr "Protože %(winner)s stál v šachu třikrát" #: lib/pychess/Utils/repr.py:49 msgid "Because a player lost connection" msgstr "Protože hráč ztratil spojení" #: lib/pychess/Utils/repr.py:50 msgid "Because both players agreed to an adjournment" msgstr "Protože oba hráči souhlasili s odložením hry" #: lib/pychess/Utils/repr.py:51 msgid "Because the server was shut down" msgstr "Protože server byl vypnut" #: lib/pychess/Utils/repr.py:52 msgid "" "Because a player lost connection and the other player requested adjournment" msgstr "Protože hráč ztratil spojení a druhý hráč požaduje odložení" #: lib/pychess/Utils/repr.py:53 #, python-format msgid "" "Because %(black)s lost connection to the server and %(white)s requested " "adjournment" msgstr "Protože %(black)s ztratil spojení se serverem a %(white)s požaduje odložení" #: lib/pychess/Utils/repr.py:54 #, python-format msgid "" "Because %(white)s lost connection to the server and %(black)s requested " "adjournment" msgstr "Protože %(white)s ztratil spojení se serverem a %(black)s požaduje odložení" #: lib/pychess/Utils/repr.py:55 #, python-format msgid "Because %(white)s lost connection to the server" msgstr "Protože %(white)s ztratil spojení se serverem" #: lib/pychess/Utils/repr.py:56 #, python-format msgid "Because %(black)s lost connection to the server" msgstr "Protože %(black)s ztratil spojení se serverem" #: lib/pychess/Utils/repr.py:58 msgid "Because of adjudication by an admin. No rating changes have occurred." msgstr "Z rozhodnutí správce. Žádné změny v hodnocení." #: lib/pychess/Utils/repr.py:59 msgid "" "Because both players agreed to abort the game. No rating changes have " "occurred." msgstr "Protože oba hráči souhlasili s přerušením hry. Žádné změny v hodnocení." #: lib/pychess/Utils/repr.py:60 msgid "Because of courtesy by a player. No rating changes have occurred." msgstr "Z důvodu zdvořilosti hráče. Žádné změny v hodnocení." #: lib/pychess/Utils/repr.py:61 msgid "" "Because a player aborted the game. Either player can abort the game without " "the other's consent before the second move. No rating changes have occurred." msgstr "Protože hráč přerušil hru. Kterýkoli hráč může hru přerušit bez svolení druhého hráče před druhým tahem. Žádné změny v hodnocení." #: lib/pychess/Utils/repr.py:62 msgid "" "Because a player disconnected and there are too few moves to warrant " "adjournment. No rating changes have occurred." msgstr "Protože se hráč odpojil a je příliš málo tahů na to, aby bylo vynuceno odložení. Žádné změny v hodnocení." #: lib/pychess/Utils/repr.py:63 msgid "Because the server was shut down. No rating changes have occurred." msgstr "Protože server byl vypnut. Žádné změny v hodnocení." #: lib/pychess/Utils/repr.py:65 #, python-format msgid "Because the %(white)s engine died" msgstr "Protože %(white)s stroj vypustil duši" #: lib/pychess/Utils/repr.py:66 #, python-format msgid "Because the %(black)s engine died" msgstr "Protože %(black)s stroj vypustil duši" #: lib/pychess/Utils/repr.py:67 msgid "Because the connection to the server was lost" msgstr "Protože spojení se serverem bylo ztraceno" #: lib/pychess/Utils/repr.py:68 msgid "The reason is unknown" msgstr "Důvod je neznámý" #: lib/pychess/Utils/TimeModel.py:229 msgid "min" msgstr "min" #: lib/pychess/Utils/TimeModel.py:231 msgid "sec" msgstr "s" #: lib/pychess/Variants/asean.py:12 msgid "" "ASEAN: http://www.ncf-" "phil.org/downloadables/2014/May/Asean_chess/Laws_of_ASEAN_Chess_2011_Nov_26.doc" msgstr "ASEAN: http://www.ncf-phil.org/downloadables/2014/May/Asean_chess/Laws_of_ASEAN_Chess_2011_Nov_26.doc" #: lib/pychess/Variants/asean.py:13 msgid "ASEAN" msgstr "ASEAN" #: lib/pychess/Variants/asean.py:33 msgid "Makruk: http://en.wikipedia.org/wiki/Makruk" msgstr "Makruk: http://en.wikipedia.org/wiki/Makruk" #: lib/pychess/Variants/asean.py:34 msgid "Makruk" msgstr "Makruk" #: lib/pychess/Variants/asean.py:60 msgid "Cambodian: http://www.khmerinstitute.org/culture/ok.html" msgstr "Cambodian: http://www.khmerinstitute.org/culture/ok.html" #: lib/pychess/Variants/asean.py:61 msgid "Cambodian" msgstr "Cambodian" #: lib/pychess/Variants/asean.py:86 msgid "" "Ai-Wok: http://www.open-" "aurec.com/wbforum/viewtopic.php?p=199364&sid=20963a1de2c164050de019e5ed6bf7c4#p199364" msgstr "Ai-Wok: http://www.open-aurec.com/wbforum/viewtopic.php?p=199364&sid=20963a1de2c164050de019e5ed6bf7c4#p199364" #: lib/pychess/Variants/asean.py:87 msgid "Ai-Wok" msgstr "Ai-Wok" #: lib/pychess/Variants/asean.py:111 msgid "Sittuyin: http://en.wikipedia.org/wiki/Sittuyin" msgstr "Sittuyin: http://en.wikipedia.org/wiki/Sittuyin" #: lib/pychess/Variants/asean.py:112 msgid "Sittuyin" msgstr "Sittuyin" #: lib/pychess/Variants/asymmetricrandom.py:12 msgid "" "FICS wild/4: http://www.freechess.org/Help/HelpFiles/wild.html\n" "* Randomly chosen pieces (two queens or three rooks possible)\n" "* Exactly one king of each color\n" "* Pieces placed randomly behind the pawns, SUBJECT TO THE CONSTRAINT THAT THE BISHOPS ARE BALANCED\n" "* No castling\n" "* Black's arrangement DOES NOT mirrors white's" msgstr "FICS wild/4: http://www.freechess.org/Help/HelpFiles/wild.html\n* Náhodně vybrané figurky (jsou možné dvě královny nebo tři věže)\n* Přesně jeden král každé barvy\n* Figurky umístěny náhodně za pěšci, PŘEDMĚT OMEZENÍ , ŽE STŘELCI JSOU VYVÁŽENI\n* Žádná rošáda\n* Rozmístění černých figurek NEZRCADLÍ rozmístění bílých figurek" #: lib/pychess/Variants/asymmetricrandom.py:18 msgid "Asymmetric Random" msgstr "Nesouměrná náhoda" #: lib/pychess/Variants/atomic.py:14 msgid "FICS atomic: http://www.freechess.org/Help/HelpFiles/atomic.html" msgstr "FICS atomové šachy: http://www.freechess.org/Help/HelpFiles/atomic.html" #: lib/pychess/Variants/blindfold.py:7 msgid "" "Classic chess rules with hidden figurines\n" "http://en.wikipedia.org/wiki/Blindfold_chess" msgstr "Klasická šachová pravidla se skrytými figurkami\nhttp://en.wikipedia.org/wiki/Blindfold_chess" #: lib/pychess/Variants/blindfold.py:9 #: lib/pychess/widgets/newGameDialog.py:264 msgid "Blindfold" msgstr "Šachy na slepo" #: lib/pychess/Variants/blindfold.py:18 msgid "" "Classic chess rules with hidden pawns\n" "http://en.wikipedia.org/wiki/Blindfold_chess" msgstr "Klasická šachová pravidla se skrytými pěšci\nhttp://en.wikipedia.org/wiki/Blindfold_chess" #: lib/pychess/Variants/blindfold.py:20 msgid "Hidden pawns" msgstr "Skrytí pěšci" #: lib/pychess/Variants/blindfold.py:29 msgid "" "Classic chess rules with hidden pieces\n" "http://en.wikipedia.org/wiki/Blindfold_chess" msgstr "Klasická šachová pravidla se skrytými figurkami\nhttp://en.wikipedia.org/wiki/Blindfold_chess" #: lib/pychess/Variants/blindfold.py:31 msgid "Hidden pieces" msgstr "Skryté hrací figurky" #: lib/pychess/Variants/blindfold.py:40 msgid "" "Classic chess rules with all pieces white\n" "http://en.wikipedia.org/wiki/Blindfold_chess" msgstr "Klasická šachová pravidla se všemi figurkami bílými\nhttp://en.wikipedia.org/wiki/Blindfold_chess" #: lib/pychess/Variants/blindfold.py:42 msgid "All white" msgstr "Všechny bílé" #: lib/pychess/Variants/bughouse.py:8 msgid "FICS bughouse: http://www.freechess.org/Help/HelpFiles/bughouse.html" msgstr "FICS tandemové šachy: http://www.freechess.org/Help/HelpFiles/bughouse.html" #: lib/pychess/Variants/corner.py:12 msgid "" "http://brainking.com/en/GameRules?tp=2\n" "* Placement of the pieces on the 1st and 8th row are randomized\n" "* The king is in the right hand corner\n" "* Bishops must start on opposite color squares\n" "* Black's starting position is obtained by rotating white's position 180 degrees around the board's center\n" "* No castling" msgstr "http://brainking.com/en/GameRules?tp=2\n* Umístění figurek na prvním a osmém řádku je náhodné\n* Král je v rohu po pravici\n* Střelci musí začít na polích opačné barvy\n* Začáteční poloha černého je obdržena otočením začáteční polohy bílého o 180 stupňu okolo středu šachovnice\n* Žádná rošáda" #: lib/pychess/Variants/corner.py:18 msgid "Corner" msgstr "Roh" #: lib/pychess/Variants/crazyhouse.py:8 msgid "" "FICS crazyhouse: http://www.freechess.org/Help/HelpFiles/crazyhouse.html" msgstr "FICS dosazovací šachy: http://www.freechess.org/Help/HelpFiles/crazyhouse.html" #: lib/pychess/Variants/euroshogi.py:9 msgid "EuroShogi: http://en.wikipedia.org/wiki/EuroShogi" msgstr "EuroShogi: http://en.wikipedia.org/wiki/EuroShogi" #: lib/pychess/Variants/euroshogi.py:10 msgid "EuroShogi" msgstr "EuroShogi" #: lib/pychess/Variants/fischerandom.py:18 msgid "" "http://en.wikipedia.org/wiki/Chess960\n" "FICS wild/fr: http://www.freechess.org/Help/HelpFiles/wild.html" msgstr "http://en.wikipedia.org/wiki/Chess960\nFICS wild/fr: http://www.freechess.org/Help/HelpFiles/wild.html" #: lib/pychess/Variants/fischerandom.py:20 msgid "Fischer Random" msgstr "Náhodné šachy Fischer" #: lib/pychess/Variants/kingofthehill.py:8 msgid "" "Bringing your king legally to the center (e4, d4, e5, d5) instantly wins the game!\n" "Normal rules apply in other cases and checkmate also ends the game." msgstr "Přivedení vašeho krále do středu (e4, d4, e5, d5) znamená okamžitou výhru ve hře!\nNormální pravidla platí v jiných případech a šachmat hru ukončí také." #: lib/pychess/Variants/kingofthehill.py:10 msgid "King of the hill" msgstr "Král kopce" #: lib/pychess/Variants/knightodds.py:8 msgid "One player starts with one less knight piece" msgstr "Jeden z hráčů začíná s o jednoho jezdce menším počtem figurek" #: lib/pychess/Variants/knightodds.py:9 msgid "Knight odds" msgstr "Možnost tahu jezdcem" #: lib/pychess/Variants/losers.py:8 msgid "FICS losers: http://www.freechess.org/Help/HelpFiles/losers_chess.html" msgstr "FICS loupežníci: http://www.freechess.org/Help/HelpFiles/losers_chess.html" #: lib/pychess/Variants/normal.py:4 msgid "" "Classic chess rules\n" "http://en.wikipedia.org/wiki/Chess" msgstr "Klasická šachová pravidla\nhttp://en.wikipedia.org/wiki/Chess" #: lib/pychess/Variants/normal.py:6 lib/pychess/widgets/newGameDialog.py:157 msgid "Normal" msgstr "Normální" #: lib/pychess/Variants/pawnodds.py:8 msgid "One player starts with one less pawn piece" msgstr "Jeden z hráčů začíná s o jednoho pěšce menším počtem figurek" #: lib/pychess/Variants/pawnodds.py:9 msgid "Pawn odds" msgstr "Možnost tahu pěšcem" #: lib/pychess/Variants/pawnspassed.py:11 msgid "" "FICS wild/8a: http://www.freechess.org/Help/HelpFiles/wild.html\n" "White pawns start on 5th rank and black pawns on the 4th rank" msgstr "FICS wild/8a: http://www.freechess.org/Help/HelpFiles/wild.html\nBílí pěšci začínají na páté řadě a černí pěšci na čtvrté řadě" #: lib/pychess/Variants/pawnspassed.py:13 msgid "Pawns Passed" msgstr "Volní pěšci" #: lib/pychess/Variants/pawnspushed.py:10 msgid "" "FICS wild/8: http://www.freechess.org/Help/HelpFiles/wild.html\n" "Pawns start on 4th and 5th ranks rather than 2nd and 7th" msgstr "FICS wild/8: http://www.freechess.org/Help/HelpFiles/wild.html\nPěšci začínají na čtvrté a páté řadě spíše než na druhé a sedmé" #: lib/pychess/Variants/pawnspushed.py:12 msgid "Pawns Pushed" msgstr "Posunutí pěšci" #: lib/pychess/Variants/queenodds.py:8 msgid "One player starts with one less queen piece" msgstr "Jeden z hráčů začíná bez dámy" #: lib/pychess/Variants/queenodds.py:9 msgid "Queen odds" msgstr "Možnost tahu dámou" #: lib/pychess/Variants/randomchess.py:11 msgid "" "FICS wild/3: http://www.freechess.org/Help/HelpFiles/wild.html\n" "* Randomly chosen pieces (two queens or three rooks possible)\n" "* Exactly one king of each color\n" "* Pieces placed randomly behind the pawns\n" "* No castling\n" "* Black's arrangement mirrors white's" msgstr "FICS wild/3: http://www.freechess.org/Help/HelpFiles/wild.html\n* Náhodně vybrané figurky (jsou možné dvě královny nebo tři věže)\n* Přesně jeden král každé barvy\n* Figurky umístěny náhodně za pěšci\n* Žádná rošáda\n* Rozmístění černých figurek zrcadlí rozmístění bílých figurek" #: lib/pychess/Variants/randomchess.py:17 #: lib/pychess/widgets/TaskerManager.py:155 msgid "Random" msgstr "Náhodné" #: lib/pychess/Variants/rookodds.py:8 msgid "One player starts with one less rook piece" msgstr "Jeden z hráčů začíná s o jednu věž menším počtem figurek" #: lib/pychess/Variants/rookodds.py:9 msgid "Rook odds" msgstr "Možnost tahu věží" #: lib/pychess/Variants/shuffle.py:11 msgid "" "xboard nocastle: http://home.hccnet.nl/h.g.muller/engine-intf.html#8\n" "FICS wild/2: http://www.freechess.org/Help/HelpFiles/wild.html\n" "* Random arrangement of the pieces behind the pawns\n" "* No castling\n" "* Black's arrangement mirrors white's" msgstr "xboard nocastle: http://home.hccnet.nl/h.g.muller/engine-intf.html#8\nFICS wild/2: http://www.freechess.org/Help/HelpFiles/wild.html\n* Figurky umístěny náhodně za pěšci\n* Žádná rošáda\n* Rozmístění černých figurek zrcadlí rozmístění bílých figurek" #: lib/pychess/Variants/suicide.py:11 msgid "" "FICS suicide: http://www.freechess.org/Help/HelpFiles/suicide_chess.html" msgstr "FISC loupežnické šachy: http://www.freechess.org/Help/HelpFiles/suicide_chess.html" #: lib/pychess/Variants/theban.py:10 msgid "" "Variant developed by Kai Laskos: " "http://talkchess.com/forum/viewtopic.php?t=40990" msgstr "Varianta vyvinutá Kaiem Laskosem: http://talkchess.com/forum/viewtopic.php?t=40990" #: lib/pychess/Variants/theban.py:11 msgid "Theban" msgstr "Thébský" #: lib/pychess/Variants/threecheck.py:10 msgid "Win by giving check 3 times" msgstr "Výhra po dání šachu třikrát" #: lib/pychess/Variants/threecheck.py:11 msgid "Three-check" msgstr "Tři šachy" #: lib/pychess/Variants/upsidedown.py:10 msgid "" "FICS wild/5: http://www.freechess.org/Help/HelpFiles/wild.html\n" "http://en.wikipedia.org/wiki/Chess_variant#Chess_with_different_starting_positions\n" "Pawns start on their 7th rank rather than their 2nd rank!" msgstr "FICS wild/5: http://www.freechess.org/Help/HelpFiles/wild.html\nhttp://en.wikipedia.org/wiki/Chess_variant#Chess_with_different_starting_positions\nPěšci začínají na sedmé řadě spíše než na druhé!" #: lib/pychess/Variants/upsidedown.py:13 msgid "Upside Down" msgstr "Obráceno dolů" #: lib/pychess/Variants/wildcastle.py:10 msgid "" "xboard wildcastle http://home.hccnet.nl/h.g.muller/engine-intf.html#8\n" "FICS wild/0: http://www.freechess.org/Help/HelpFiles/wild.html\n" "* White has the typical set-up at the start.\n" "* Black's pieces are the same, except that the King and Queen are reversed,\n" "* so they are not on the same files as White's King and Queen.\n" "* Castling is done similarly to normal chess:\n" "* o-o-o indicates long castling and o-o short castling." msgstr "xboard wildcastle http://home.hccnet.nl/h.g.muller/engine-intf.html#8\nFICS wild/0: http://www.freechess.org/Help/HelpFiles/wild.html\n* Bílý má na začátku typické rozmístění.\n* Černé figurky jsou ty samé s výjimkou v tom, že král a královna jsou otočeni,\n* takže se nenachází na stejných místech, jak je to u bílého krále a jeho královny.\n* Rošáda se dělá podobně, jako je tomu u normálních šachů:\n* o-o-o naznačuje velkou rošádu a o-o malou rošádu." #: lib/pychess/Variants/wildcastle.py:17 msgid "Wildcastle" msgstr "Zástupný hrad" #: lib/pychess/Variants/wildcastleshuffle.py:11 msgid "" "xboard wildcastle http://home.hccnet.nl/h.g.muller/engine-intf.html#8\n" "FICS wild/1: http://www.freechess.org/Help/HelpFiles/wild.html\n" "* In this variant both sides have the same set of pieces as in normal chess.\n" "* The white king starts on d1 or e1 and the black king starts on d8 or e8,\n" "* and the rooks are in their usual positions.\n" "* Bishops are always on opposite colors.\n" "* Subject to these constraints the position of the pieces on their first ranks is random.\n" "* Castling is done similarly to normal chess:\n" "* o-o-o indicates long castling and o-o short castling." msgstr "xboard wildcastle http://home.hccnet.nl/h.g.muller/engine-intf.html#8\nFICS wild/1: http://www.freechess.org/Help/HelpFiles/wild.html\n* V této variantě mají obě strany tytéž figurky, jaké jsou v normálních šachách.\n* Bílý král začíná na d1 nebo e1 a černý král začíná na d8 nebo e8,\n* a věže jsou na jejich obvyklých místech.\n* Střelci jsou vždy na opačných barvách.\n* Při dbaní tohoto zadání jsou umístění figur na jejich první řadě náhodná.\n* Rošáda se dělá podobně jako v normálních šachách:\n* o-o-o znamená velkou rošádu a o-o malou rošádu." #: lib/pychess/Variants/wildcastleshuffle.py:20 msgid "Wildcastle shuffle" msgstr "Zamíchání zástupným hradem" #: lib/pychess/widgets/analyzegameDialog.py:85 msgid "Game analyzing in progress..." msgstr "Probíhá rozbor hry..." #: lib/pychess/widgets/analyzegameDialog.py:86 msgid "Do you want to abort it?" msgstr "Chcete jej přerušit?" #: lib/pychess/widgets/analyzegameDialog.py:95 #: lib/pychess/widgets/gamewidget.py:202 lib/pychess/widgets/gamewidget.py:320 msgid "Abort" msgstr "Přerušit" #: lib/pychess/widgets/ChatView.py:125 msgid "Observers" msgstr "" #: lib/pychess/widgets/ChatWindow.py:222 msgid "You have opened no conversations yet" msgstr "Ještě jste nezačal žádný rozhovor" #: lib/pychess/widgets/ChatWindow.py:254 msgid "Only registered users may talk to this channel" msgstr "Jen přihlášení uživatelé mohou mluvit na tomto kanálu" #: lib/pychess/widgets/ChatWindow.py:312 msgid "No conversation's selected" msgstr "Nebyl vybrán žádný rozhovor" #: lib/pychess/widgets/ChatWindow.py:350 msgid "Loading player data" msgstr "Nahrávají se data hráčů" #: lib/pychess/widgets/ChatWindow.py:400 msgid "Receiving list of players" msgstr "Přijímá se počet hráčů" #: lib/pychess/widgets/ChatWindow.py:518 msgid "Friends" msgstr "Přátelé" #: lib/pychess/widgets/ChatWindow.py:529 msgid "Admin" msgstr "" #: lib/pychess/widgets/ChatWindow.py:540 msgid "More channels" msgstr "Více kanálů" #: lib/pychess/widgets/ChatWindow.py:548 msgid "More players" msgstr "Více hráčů" #: lib/pychess/widgets/ChatWindow.py:558 msgid "Computers" msgstr "" #: lib/pychess/widgets/ChatWindow.py:568 msgid "BlindFold" msgstr "" #: lib/pychess/widgets/ChatWindow.py:578 msgid "Guests" msgstr "" #: lib/pychess/widgets/ChatWindow.py:805 msgid "Conversations" msgstr "Rozhovory" #: lib/pychess/widgets/ChatWindow.py:807 msgid "Conversation info" msgstr "Informace o rozhovoru" #: lib/pychess/widgets/enginesDialog.py:152 msgid "Select engine" msgstr "Vybrat stroj" #: lib/pychess/widgets/enginesDialog.py:156 msgid "Executable files" msgstr "Spustitelné soubory" #: lib/pychess/widgets/enginesDialog.py:176 #: lib/pychess/widgets/enginesDialog.py:210 #: lib/pychess/widgets/enginesDialog.py:235 #, python-format msgid "Unable to add %s" msgstr "Nelze přidat %s" #: lib/pychess/widgets/enginesDialog.py:177 msgid "wine not installed" msgstr "wine není nainstalováno" #: lib/pychess/widgets/enginesDialog.py:211 #: lib/pychess/widgets/enginesDialog.py:236 msgid "There is something wrong with this executable" msgstr "S tímto spustitelným souborem je něco v nepořádku" #: lib/pychess/widgets/enginesDialog.py:266 msgid "Select working directory" msgstr "Vybrat pracovní adresář" #: lib/pychess/widgets/gamenanny.py:115 #, python-format msgid " invalid engine move: %s" msgstr " neplatný tah stroje: %s" #: lib/pychess/widgets/gamenanny.py:134 msgid "Offer Rematch" msgstr "Nabídnout odvetu" #: lib/pychess/widgets/gamenanny.py:136 lib/pychess/widgets/gamenanny.py:147 #, python-format msgid "Observe %s" msgstr "Pozorovat %s" #: lib/pychess/widgets/gamenanny.py:168 msgid "Play Rematch" msgstr "Hrát odvetu" #: lib/pychess/widgets/gamenanny.py:171 msgid "Undo one move" msgstr "Zpět o jeden krok" #: lib/pychess/widgets/gamenanny.py:173 msgid "Undo two moves" msgstr "Zpět o dva kroky" #: lib/pychess/widgets/gamenanny.py:203 msgid "The game is paused" msgstr "Hra je pozastavena" #: lib/pychess/widgets/gamenanny.py:221 lib/pychess/widgets/gamenanny.py:222 msgid "Loaded game" msgstr "Načtená hra" #: lib/pychess/widgets/gamenanny.py:228 msgid "Saved game" msgstr "Uložená hra" #: lib/pychess/widgets/gamenanny.py:232 msgid "Analyzer started" msgstr "Analyzátor spuštěn" #: lib/pychess/widgets/gamenanny.py:281 msgid "You sent an abort offer" msgstr "Poslal jste nabídku na přerušení" #: lib/pychess/widgets/gamenanny.py:283 msgid "You sent an adjournment offer" msgstr "Poslal jste nabídku na odložení" #: lib/pychess/widgets/gamenanny.py:285 msgid "You sent a draw offer" msgstr "Poslal jste nabídku na remízu" #: lib/pychess/widgets/gamenanny.py:287 msgid "You sent a pause offer" msgstr "Poslal jste nabídku na pozastavení" #: lib/pychess/widgets/gamenanny.py:289 msgid "You sent a resume offer" msgstr "Poslal jste nabídku na pokračování" #: lib/pychess/widgets/gamenanny.py:291 msgid "You sent an undo offer" msgstr "Poslal jste nabídku na vzetí zpět" #: lib/pychess/widgets/gamenanny.py:293 msgid "You asked your opponent to move" msgstr "Vyzval jste svého soupeře k tahu" #: lib/pychess/widgets/gamenanny.py:305 #, python-format msgid "Engine, %s, has died" msgstr "Stroj, %s, spadl" #: lib/pychess/widgets/gamenanny.py:306 msgid "" "PyChess has lost connection to the engine, probably because it has died.\n" "\n" "You can try to start a new game with the engine, or try to play against another one." msgstr "PyChess ztratil spojení se strojem, pravděpodobně spadl.\n\nMůžete se pokusit o spuštění nové hry se strojem, nebo zkusit hrát proti jinému." #: lib/pychess/widgets/gamewidget.py:204 msgid "" "This game can be automatically aborted without rating loss because there has" " not yet been two moves made" msgstr "Tuto hru lze automaticky přerušit beze ztráty hodnocení, protože ještě nebyly provedeny dva tahy" #: lib/pychess/widgets/gamewidget.py:206 msgid "Offer Abort" msgstr "Nabídnout přerušení" #: lib/pychess/widgets/gamewidget.py:208 msgid "" "Your opponent must agree to abort the game because there has been two or " "more moves made" msgstr "Váš soupeř musí souhlasit s přerušením hry, protože byly provedeny dva nebo více tahů" #: lib/pychess/widgets/gamewidget.py:226 msgid "This game can not be adjourned because one or both players are guests" msgstr "Tuto hru nelze odložit, protože jeden nebo oba dva hráči jsou hosty" #: lib/pychess/widgets/gamewidget.py:243 msgid "Claim Draw" msgstr "Dožadovat se remízy" #: lib/pychess/widgets/gamewidget.py:325 msgid "Pause" msgstr "Pozastavit" #: lib/pychess/widgets/gamewidget.py:326 msgid "Resume" msgstr "Pokračovat" #: lib/pychess/widgets/gamewidget.py:328 msgid "Offer Pause" msgstr "Nabídnout pozastavení" #: lib/pychess/widgets/gamewidget.py:329 msgid "Offer Resume" msgstr "Nabídnout pokračování" #: lib/pychess/widgets/gamewidget.py:333 msgid "Undo" msgstr "Zpět" #: lib/pychess/widgets/gamewidget.py:335 msgid "Offer Undo" msgstr "Nabídnout vzetí tahu zpět" #: lib/pychess/widgets/gamewidget.py:550 msgid " has lagged for 30 seconds" msgstr "je pozadu o 30 sekund" #: lib/pychess/widgets/gamewidget.py:566 msgid " is lagging heavily but hasn't disconnected" msgstr "je těžce pozadu, ale neodpojil se" #: lib/pychess/widgets/gamewidget.py:567 msgid "Continue to wait for opponent, or try to adjourn the game?" msgstr "Pokračovat v čekání na soupeře, nebo se pokusit o odložení hry?" #: lib/pychess/widgets/gamewidget.py:575 msgid "Wait" msgstr "Čekat" #: lib/pychess/widgets/gamewidget.py:576 msgid "Adjourn" msgstr "Odložit" #: lib/pychess/widgets/gamewidget.py:648 msgid "Jump to initial position" msgstr "Jít zpět na počáteční stav hry" #: lib/pychess/widgets/gamewidget.py:653 msgid "Step back one move" msgstr "O tah zpět" #: lib/pychess/widgets/gamewidget.py:658 msgid "Go back to the main line" msgstr "" #: lib/pychess/widgets/gamewidget.py:664 msgid "Step forward one move" msgstr "O tah vpřed" #: lib/pychess/widgets/gamewidget.py:669 msgid "Jump to latest position" msgstr "Jít na poslední stav hry" #: lib/pychess/widgets/gamewidget.py:903 msgid "PyChess was unable to load your panel settings" msgstr "PyChess nebyl schopen nahrát nastavení vašeho panelu" #: lib/pychess/widgets/gamewidget.py:904 msgid "" "Your panel settings have been reset. If this problem repeats, you should " "report it to the developers" msgstr "Nastavení vašeho panelu bylo nastaveno znovu na výchozí. Pokud se tento problém bude opakovat, měl byste jej nahlásit vývojářům" #: lib/pychess/widgets/ionest.py:67 lib/pychess/widgets/newGameDialog.py:389 #: lib/pychess/widgets/TaskerManager.py:210 msgid "You" msgstr "Vy" #: lib/pychess/widgets/ionest.py:70 lib/pychess/widgets/newGameDialog.py:390 #: lib/pychess/widgets/preferencesDialog.py:61 #: lib/pychess/widgets/TaskerManager.py:213 msgid "Guest" msgstr "host" #: lib/pychess/widgets/ionest.py:93 msgid "Error loading game" msgstr "Chyba při nahrávání hry" #: lib/pychess/widgets/ionest.py:127 lib/pychess/widgets/newGameDialog.py:480 msgid "Open Game" msgstr "Otevřít hru" #: lib/pychess/widgets/ionest.py:137 msgid "All Files" msgstr "Všechny soubory" #: lib/pychess/widgets/ionest.py:140 msgid "Detect type automatically" msgstr "Detekovat typ automaticky" #: lib/pychess/widgets/ionest.py:146 msgid "All Chess Files" msgstr "Všechny šachové soubory" #: lib/pychess/widgets/ionest.py:228 msgid "Save Game" msgstr "Uložit hru" #: lib/pychess/widgets/ionest.py:228 msgid "Export position" msgstr "Vyvést stav hry" #: lib/pychess/widgets/ionest.py:232 lib/pychess/widgets/ionest.py:360 msgid "vs." msgstr "proti." #: lib/pychess/widgets/ionest.py:249 #, python-format msgid "Unknown file type '%s'" msgstr "Neznámý typ souboru '%s'" #: lib/pychess/widgets/ionest.py:250 #, python-format msgid "" "Was unable to save '%(uri)s' as PyChess doesn't know the format " "'%(ending)s'." msgstr "Nepodařilo se uložit '%(uri)s', protože PyChess nezná formát '%(ending)s'." #: lib/pychess/widgets/ionest.py:266 #, python-format msgid "Unable to save file '%s'" msgstr "Nelze uložit soubor '%s'" #: lib/pychess/widgets/ionest.py:268 msgid "" "You don't have the necessary rights to save the file.\n" "Please ensure that you have given the right path and try again." msgstr "Nemáte dostatečná oprávnění pro uložení souboru.\nUjistěte se, prosím, že jste zadal správnou cestu, a zkuste to znovu." #: lib/pychess/widgets/ionest.py:276 msgid "_Replace" msgstr "Nah_radit" #: lib/pychess/widgets/ionest.py:280 msgid "File exists" msgstr "Soubor existuje" #: lib/pychess/widgets/ionest.py:282 #, python-format msgid "" "A file named '%s' already exists. Would you like to replace " "it?" msgstr "Soubor pojmenovaný '%s' již existuje. Chcete ho nahradit?" #: lib/pychess/widgets/ionest.py:283 #, python-format msgid "" "The file already exists in '%s'. If you replace it, its content will be " "overwritten." msgstr "Soubor již existuje '%s'. Pokud jej nahradíte, jeho obsah bude přepsán." #: lib/pychess/widgets/ionest.py:299 msgid "Could not save the file" msgstr "Nelze uložit soubor" #: lib/pychess/widgets/ionest.py:300 msgid "PyChess was not able to save the game" msgstr "PyChess se hru nepodařilo uložit" #: lib/pychess/widgets/ionest.py:301 #, python-format msgid "The error was: %s" msgstr "Chyba byla: %s" #: lib/pychess/widgets/ionest.py:325 #, python-format msgid "There is %d game with unsaved moves." msgid_plural "There are %d games with unsaved moves." msgstr[0] "Je tu %d hra s neuloženými tahy." msgstr[1] "Jsou tu %d hry s neuloženými tahy." msgstr[2] "Je tu %d her s neuloženými tahy." #: lib/pychess/widgets/ionest.py:328 msgid "Save moves before closing?" msgstr "Uložit tahy před zavřením?" #: lib/pychess/widgets/ionest.py:339 msgid "Unable to save to configured file. Save the games before closing?" msgstr "Nelze uložit do nastaveného souboru. Uložit hry před zavřením?" #: lib/pychess/widgets/ionest.py:366 #, python-format msgid "_Save %d document" msgid_plural "_Save %d documents" msgstr[0] "_Uložit %d hru" msgstr[1] "_Uložit %d hry" msgstr[2] "_Uložit %d her" #: lib/pychess/widgets/ionest.py:412 msgid "Save the current game before you close it?" msgstr "Uložit nynější hru před jejím zavřením?" #: lib/pychess/widgets/ionest.py:420 msgid "" "Unable to save to configured file. Save the current game before you close " "it?" msgstr "Nelze uložit do nastaveného souboru. Uložit nynější hru před jejím zavřením?" #: lib/pychess/widgets/ionest.py:434 msgid "" "It is not possible later to continue the game,\n" "if you don't save it." msgstr "Není možné později pokračovat ve hře,\npokud ji neuložíte." #: lib/pychess/widgets/LogDialog.py:26 msgid "PyChess Information Window" msgstr "Okno s informacemi" #: lib/pychess/widgets/LogDialog.py:184 lib/pychess/widgets/LogDialog.py:188 msgid "of" msgstr " " #: lib/pychess/widgets/newGameDialog.py:84 #: lib/pychess/widgets/newGameDialog.py:85 msgid "Human Being" msgstr "Člověk" #: lib/pychess/widgets/newGameDialog.py:155 msgid "Rapid" msgstr "Rychle" #: lib/pychess/widgets/newGameDialog.py:224 msgid "Minutes:" msgstr "Minuty:" #: lib/pychess/widgets/newGameDialog.py:228 msgid "Gain:" msgstr "Přírustek:" #: lib/pychess/widgets/newGameDialog.py:241 #, python-format msgid "%(name)s %(minutes)d min + %(gain)d sec/move" msgstr "%(name)s %(minutes)d min + %(gain)d s/tah" #: lib/pychess/widgets/newGameDialog.py:244 #, python-format msgid "%(name)s %(minutes)d min %(gain)d sec/move" msgstr "%(name)s %(minutes)d min %(gain)d s/tah" #: lib/pychess/widgets/newGameDialog.py:247 #, python-format msgid "%(name)s %(minutes)d min" msgstr "%(name)s %(minutes)d min" #: lib/pychess/widgets/newGameDialog.py:265 msgid "Odds" msgstr "Možnosti" #: lib/pychess/widgets/newGameDialog.py:269 msgid "Asian variants" msgstr "Asijské varianty" #: lib/pychess/widgets/newGameDialog.py:301 msgid " chess" msgstr " šach" #: lib/pychess/widgets/newGameDialog.py:682 msgid "Type or paste PGN game or FEN positions here" msgstr "Napište nebo vložte hru PGN nebo polohy FEN zde" #: lib/pychess/widgets/newGameDialog.py:725 msgid "Enter Game" msgstr "Vsoupit do hry" #: lib/pychess/widgets/preferencesDialog.py:123 msgid "Select book file" msgstr "Vybrat soubor s knihou" #: lib/pychess/widgets/preferencesDialog.py:128 msgid "Opening books" msgstr "Zahajovací knihy" #: lib/pychess/widgets/preferencesDialog.py:156 msgid "Select Gaviota TB path" msgstr "Vybrat cestu k tabulkám od Gavioty" #: lib/pychess/widgets/preferencesDialog.py:331 msgid "Open Sound File" msgstr "Otevřít zvukový soubor" #: lib/pychess/widgets/preferencesDialog.py:341 msgid "Sound files" msgstr "Zvukové soubory" #: lib/pychess/widgets/preferencesDialog.py:485 msgid "Undescribed panel" msgstr "Nepopsaný panel" #: lib/pychess/widgets/preferencesDialog.py:678 msgid "Select auto save path" msgstr "Vybrat cestu pro automatické uložení" #: lib/pychess/widgets/tipOfTheDay.py:51 msgid "" "You can start a new game by Game > New Game, in New Game " "window do you can choose Players, Time Control and Chess " "Variants." msgstr "Novou hru můžete začít přes nabídku Hra -> Nová hra. V okně pro novou hru můžete vybrat Hráči, Řízení času a Šachové varianty." #: lib/pychess/widgets/tipOfTheDay.py:52 msgid "" "You can choose from 20 different difficulties to play against the computer." msgstr "Můžete si pro hru proti počítači vybrat z dvaceti různých obtížností." #: lib/pychess/widgets/tipOfTheDay.py:53 msgid "" "Chess Variants are like the pieces of the last line will be placed on the " "board." msgstr "Šachové varianty znamenají volbu v tom, jaké figurky z posledního řádku budou umístěny na hrací desce." #: lib/pychess/widgets/tipOfTheDay.py:54 msgid "" "To save a game Game > Save Game As, give the filename and " "choose where you want to be saved. At the bottom choose extension type of " "the file, and Save." msgstr "Pro uložení hry zvolte v nabídce Hra -> Uložit hru jako. Napište název souboru a vyberte, kam se má hra uložit. Dole zvolte typ přípony souboru a stiskněte Uložit." #: lib/pychess/widgets/tipOfTheDay.py:55 msgid "" "Do you know that you can call flag when the clock is with you, " "Actions > Call Flag." msgstr "Víte, že se můžete dožadovat vítězství, když jsou vám hodiny příznivy? Činnosti -> Vítězství v čase." #: lib/pychess/widgets/tipOfTheDay.py:56 msgid "Pressing Ctrl+Z to offer opponent the possible rollback moves." msgstr "Stisknutím Ctrl+Z nabídnete soupeři možnost zahrát znovu poslední tahy." #: lib/pychess/widgets/tipOfTheDay.py:57 msgid "" "To play on Fullscreen mode, just type F11. Coming back, F11 " "again." msgstr "Pro hru na Celé obrazovce stačí stisknout F11. Pro přechod zpět opět stiskněte F11." #: lib/pychess/widgets/tipOfTheDay.py:58 msgid "Hint mode analyzing your game, enable this type Ctrl+H." msgstr "Poradní režim rozebírá soupeřovu hru. Tento typ hry povolíte stisknutím klávesové zkratky Ctrl+H." #: lib/pychess/widgets/tipOfTheDay.py:59 msgid "" "Spy mode analyzing the oponnent game, enable this type Ctrl+Y." msgstr "Špionážní režim rozebírá soupeřovu hru. Tento typ hry povolíte stisknutím klávesové zkratky Ctrl+Y." #: lib/pychess/widgets/tipOfTheDay.py:60 msgid "" "You can play chess listening to the sounds of the game, for that, " "Settings > Preferences > Sound tab, enable Use " "sounds in PyChess and choose your preferred sounds." msgstr "Můžete hrát šachy posloucháním zvuků hry. Kvůli tomu jděte do Nastavení -> Nastavení -> karta Zvuk, povolte Použít zvuky v PyChess a vyberte zvuky, jimž dáváte přednost." #: lib/pychess/widgets/tipOfTheDay.py:61 msgid "" "Do you know that you can help translate Pychess in your language, " "Help > Translate Pychess." msgstr "Víte, že můžete pomoci s překladem PyChess ve vašem jazyce, Nápověda Překlad PyChess." #: lib/pychess/widgets/tipOfTheDay.py:62 msgid "" "Do you know that it is possible to finish a chess game in just 2 turns?" msgstr "Víte, že je možné šachovou hru za dva tahy?" #: lib/pychess/widgets/tipOfTheDay.py:63 msgid "" "Do you know that the number of possible chess games exceeds the number of " "atoms in the Universe?" msgstr "Víte, že počet možných šachových her překračuje počet atomů ve vesmíru?" #: lib/pychess/ic/managers/ChatManager.py:184 msgid "Shout" msgstr "Zvolat" #: lib/pychess/ic/managers/ChatManager.py:185 msgid "Chess Shout" msgstr "Zakřičet šach" #: lib/pychess/ic/managers/ChatManager.py:195 #, python-format msgid "Unofficial channel %d" msgstr "Neoficiální kanál %d" #: lib/pychess/Utils/lutils/LBoard.py:152 #, python-format msgid "" "FEN needs 6 data fields. \n" "\n" "%s" msgstr "FEN potřebuje 6 datových polí. \n\n%s" #: lib/pychess/Utils/lutils/LBoard.py:154 #, python-format msgid "" "FEN needs at least 2 data fields in fenstr. \n" "\n" "%s" msgstr "FEN potřebuje 2 datová pole v okně. \n\n%s" #: lib/pychess/Utils/lutils/LBoard.py:175 #, python-format msgid "" "Needs 7 slashes in piece placement field. \n" "\n" "%s" msgstr "Potřebuje 7 lomítek v poli pro umísťování figur - kamenů. \n\n%s" #: lib/pychess/Utils/lutils/LBoard.py:178 #, python-format msgid "" "Active color field must be one of w or b. \n" "\n" "%s" msgstr "Činné pole s barvou musí být buď bílé nebo černé. \n\n%s" #: lib/pychess/Utils/lutils/LBoard.py:189 #, python-format msgid "" "Castling availability field is not legal. \n" "\n" "%s" msgstr "Pole pro dostupnost rošády není dovoleno.\n\n%s" #: lib/pychess/Utils/lutils/LBoard.py:192 #, python-format msgid "" "En passant cord is not legal. \n" "\n" "%s" msgstr "Kráčející šňůra není dovolena.\n\n%s" #: lib/pychess/Utils/lutils/lmove.py:260 msgid "invalid promoted piece" msgstr "neplatná povýšená figura" #: lib/pychess/Utils/lutils/lmove.py:272 msgid "the move needs a piece and a cord" msgstr "Tah vyžaduje figurku a pozici" #: lib/pychess/Utils/lutils/lmove.py:306 lib/pychess/Utils/lutils/lmove.py:556 msgid "promotion move without promoted piece is incorrect" msgstr "Povyšovací tah bez povýšení figurky je nesprávný" #: lib/pychess/Utils/lutils/lmove.py:312 #, python-format msgid "the captured cord (%s) is incorrect" msgstr "Zaujatá pozice (%s) je neplatná" #: lib/pychess/Utils/lutils/lmove.py:323 #, python-format msgid "the end cord (%s) is incorrect" msgstr "koncová šňůra (%s) je nesprávná" #: lib/pychess/Utils/lutils/strateval.py:24 sidepanel/commentPanel.py:191 #: sidepanel/commentPanel.py:208 msgid "and" msgstr "a" #: lib/pychess/Utils/lutils/strateval.py:43 msgid "draws" msgstr "remízy" #: lib/pychess/Utils/lutils/strateval.py:45 msgid "mates" msgstr "maty" #: lib/pychess/Utils/lutils/strateval.py:49 msgid "puts opponent in check" msgstr "dává soupeři šach" #: lib/pychess/Utils/lutils/strateval.py:73 msgid "improves king safety" msgstr "zlepšuje královu bezpečnost" #: lib/pychess/Utils/lutils/strateval.py:75 msgid "slightly improves king safety" msgstr "mírně zlepšuje královu bezpečnost" #: lib/pychess/Utils/lutils/strateval.py:108 msgid "moves a rook to an open file" msgstr "přesunuje věž do otevřeného postavení" #: lib/pychess/Utils/lutils/strateval.py:109 msgid "moves an rook to a half-open file" msgstr "přesunuje věž do polootevřeného postavení" #: lib/pychess/Utils/lutils/strateval.py:119 #: lib/pychess/Utils/lutils/strateval.py:121 #: lib/pychess/Utils/lutils/strateval.py:124 #: lib/pychess/Utils/lutils/strateval.py:126 #, python-format msgid "moves bishop into fianchetto: %s" msgstr "přesunuje střelce do fianchetto: %s" #: lib/pychess/Utils/lutils/strateval.py:132 #, python-format msgid "promotes a Pawn to a %s" msgstr "povyšuje pěšáka na %s" #: lib/pychess/Utils/lutils/strateval.py:135 msgid "castles" msgstr "udělal rošádu" #: lib/pychess/Utils/lutils/strateval.py:158 msgid "takes back material" msgstr "bere zpět figurku" #: lib/pychess/Utils/lutils/strateval.py:162 #: lib/pychess/Utils/lutils/strateval.py:170 msgid "sacrifies material" msgstr "obětuje figurku" #: lib/pychess/Utils/lutils/strateval.py:164 msgid "exchanges material" msgstr "vyměňuje figurku" #: lib/pychess/Utils/lutils/strateval.py:166 msgid "captures material" msgstr "zajímá figurku" #: lib/pychess/Utils/lutils/strateval.py:291 #, python-format msgid "rescues a %s" msgstr "vyprošťuje %s" #: lib/pychess/Utils/lutils/strateval.py:294 #, python-format msgid "threatens to win material by %s" msgstr "hrozí sebráním figurky pomocí %s" #: lib/pychess/Utils/lutils/strateval.py:296 #, python-format msgid "increases the pressure on %s" msgstr "tlačí na %s" #: lib/pychess/Utils/lutils/strateval.py:298 #, python-format msgid "defends %s" msgstr "brání %s" #: lib/pychess/Utils/lutils/strateval.py:336 #, python-format msgid "pins an enemy %(oppiece)s on the %(piece)s at %(cord)s" msgstr "tiskne nepřítele %(oppiece)s na %(piece)s na %(cord)s" #: lib/pychess/Utils/lutils/strateval.py:369 #, python-format msgid "White has a new piece in outpost: %s" msgstr "Bílý má novou figurku na: %s" #: lib/pychess/Utils/lutils/strateval.py:377 #, python-format msgid "Black has a new piece in outpost: %s" msgstr "Černý má novou figurku na: %s" #: lib/pychess/Utils/lutils/strateval.py:416 #, python-format msgid "%(color)s has a new passed pawn on %(cord)s" msgstr "%(color)s má nového prošlého pěšce na %(cord)s" #: lib/pychess/Utils/lutils/strateval.py:470 msgid "half-open" msgstr "polootevřené" #: lib/pychess/Utils/lutils/strateval.py:472 #, python-format msgid "in the %(x)s%(y)s file" msgstr "v postavení %(x)s%(y)s" #: lib/pychess/Utils/lutils/strateval.py:474 #, python-format msgid "in the %(x)s%(y)s files" msgstr "v postaveních %(x)s%(y)s" #: lib/pychess/Utils/lutils/strateval.py:477 #, python-format msgid "%(color)s got a double pawn %(place)s" msgstr "%(color)s má zdvojené pěšce %(place)s" #: lib/pychess/Utils/lutils/strateval.py:478 #, python-format msgid "%(color)s got new double pawns %(place)s" msgstr "%(color)s má nové zdvojené pěšce %(place)s" #: lib/pychess/Utils/lutils/strateval.py:485 #, python-format msgid "%(color)s got an isolated pawn in the %(x)s file" msgid_plural "%(color)s got isolated pawns in the %(x)s files" msgstr[0] "%(color)s má odloučeného pěšce v postavení %(x)s" msgstr[1] "%(color)s má odloučené pěšce v %(x)s postaveních" msgstr[2] "%(color)s má odloučené pěšce v %(x)s postaveních" #: lib/pychess/Utils/lutils/strateval.py:492 #, python-format msgid "%s moves pawns into stonewall formation" msgstr "%s přesunuje pěšce do útvaru kamenná zeď" #: lib/pychess/Utils/lutils/strateval.py:507 #: lib/pychess/Utils/lutils/strateval.py:514 #, python-format msgid "%s can no longer castle" msgstr "%s už nemůže udělat rošádu" #: lib/pychess/Utils/lutils/strateval.py:508 #: lib/pychess/Utils/lutils/strateval.py:515 #, python-format msgid "%s can no longer castle in queenside" msgstr "%s už nemůže udělat velkou rošádu" #: lib/pychess/Utils/lutils/strateval.py:510 #: lib/pychess/Utils/lutils/strateval.py:517 #, python-format msgid "%s can no longer castle in kingside" msgstr "%s už nemůže udělat malou rošádu" #: lib/pychess/Utils/lutils/strateval.py:551 #, python-format msgid "%(opcolor)s has a new trapped bishop on %(cord)s" msgstr "%(opcolor)s má nového střelce v šachu na %(cord)s" #: lib/pychess/Utils/lutils/strateval.py:573 #, python-format msgid "develops a pawn: %s" msgstr "jde pěšcem dopředu: %s" #: lib/pychess/Utils/lutils/strateval.py:574 #, python-format msgid "brings a pawn closer to the backrow: %s" msgstr "jde pěšcem dopředu blíže k zadní řadě: %s" #: lib/pychess/Utils/lutils/strateval.py:591 #, python-format msgid "brings a %(piece)s closer to enemy king: %(cord)s" msgstr "posunuje %(piece)s blíže k nepřátelskému králi: %(cord)s" #: lib/pychess/Utils/lutils/strateval.py:594 #, python-format msgid "develops a %(piece)s: %(cord)s" msgstr "posunuje %(piece)s: %(cord)s" #: lib/pychess/Utils/lutils/strateval.py:612 #, python-format msgid "places a %(piece)s more active: %(cord)s" msgstr "umísťuje %(piece)s aktivněji: %(cord)s" #: lib/pychess/Utils/lutils/strateval.py:638 msgid "White should do pawn storm in right" msgstr "Bílý by měl provést útok pěšáků na pravém křídle" #: lib/pychess/Utils/lutils/strateval.py:640 msgid "Black should do pawn storm in left" msgstr "Černý by měl provést útok pěšáků na levém křídle" #: lib/pychess/Utils/lutils/strateval.py:643 msgid "White should do pawn storm in left" msgstr "Bílý by měl provést útok pěšáků na levém křídle" #: lib/pychess/Utils/lutils/strateval.py:645 msgid "Black should do pawn storm in right" msgstr "Černý by měl provést útok pěšáků na pravém křídle" #: lib/pychess/Utils/lutils/strateval.py:671 msgid "Black has a rather cramped position" msgstr "Černý má poněkud stísněnou pozici" #: lib/pychess/Utils/lutils/strateval.py:673 msgid "Black has a slightly cramped position" msgstr "Černý má mírně stísněnou pozici" #: lib/pychess/Utils/lutils/strateval.py:675 msgid "White has a rather cramped position" msgstr "Bílý má poněkud stísněnou pozici" #: lib/pychess/Utils/lutils/strateval.py:677 msgid "White has a slightly cramped position" msgstr "Bílý má mírně stísněnou pozici" #: sidepanel/annotationPanel.py:26 msgid "Annotation" msgstr "Poznámka" #: sidepanel/annotationPanel.py:29 msgid "Annotated game" msgstr "Hra opatřená poznámkami" #: sidepanel/annotationPanel.py:236 msgid "Copy PGN" msgstr "Kopírovat PGN" #: sidepanel/annotationPanel.py:249 msgid "Add start comment" msgstr "Přidat začáteční poznámku" #: sidepanel/annotationPanel.py:254 msgid "Add comment" msgstr "Přidat poznámku" #: sidepanel/annotationPanel.py:258 sidepanel/annotationPanel.py:316 msgid "Edit comment" msgstr "Upravit poznámku" #: sidepanel/annotationPanel.py:269 msgid "Forced move" msgstr "Vynucený tah" #: sidepanel/annotationPanel.py:274 msgid "Add move symbol" msgstr "Přidat značku pro tah" #: sidepanel/annotationPanel.py:280 msgid "Unclear position" msgstr "Nejasná pozice" #: sidepanel/annotationPanel.py:289 msgid "Zugzwang" msgstr "Vynucený tah" #: sidepanel/annotationPanel.py:290 msgid "Development adv." msgstr "Přesun" #: sidepanel/annotationPanel.py:291 msgid "Initiative" msgstr "Iniciativa" #: sidepanel/annotationPanel.py:292 msgid "With attack" msgstr "S útokem" #: sidepanel/annotationPanel.py:293 msgid "Compensation" msgstr "Náhrada" #: sidepanel/annotationPanel.py:294 msgid "Counterplay" msgstr "Protihra" #: sidepanel/annotationPanel.py:295 msgid "Time pressure" msgstr "Časová tíseň" #: sidepanel/annotationPanel.py:300 msgid "Add evaluation symbol" msgstr "Přidat vyhodnocovací symbol" #: sidepanel/annotationPanel.py:304 msgid "Remove symbols" msgstr "Odstranit symboly" #: sidepanel/annotationPanel.py:911 #, python-format msgid "round %s" msgstr "kolo %s" #: sidepanel/bookPanel.py:21 msgid "Hints" msgstr "Rady" #: sidepanel/bookPanel.py:25 msgid "" "The hint panel will provide computer advice during each stage of the game" msgstr "Panel s radami bude poskytovat rady počítače během každé fáze hry" #: sidepanel/bookPanel.py:27 msgid "Official PyChess panel." msgstr "Panel PyChess." #: sidepanel/bookPanel.py:87 msgid "Opening Book" msgstr "Kniha zahájení" #: sidepanel/bookPanel.py:88 msgid "" "The opening book will try to inspire you during the opening phase of the " "game by showing you common moves made by chess masters" msgstr "Kniha zahájení se vás během zahajovací fáze hry pokusí podněcovat ukazováním šachovými mistry nejhranějších tahů." #: sidepanel/bookPanel.py:139 #, python-format msgid "Analysis by %s" msgstr "Rozbor od %s" #: sidepanel/bookPanel.py:140 #, python-format msgid "" "%s will try to predict which move is best and which side has the advantage" msgstr "%s se pokusí předem určit, který tah je nejlepší a která strana má výhodu" #: sidepanel/bookPanel.py:142 #, python-format msgid "Threat analysis by %s" msgstr "Rozbor hrozby od %s" #: sidepanel/bookPanel.py:143 #, python-format msgid "" "%s will identify what threats would exist if it were your opponent's turn to" " move" msgstr "%s určí, jaké by mohly být hrozby, kdyby měl hrát váš soupeř" #: sidepanel/bookPanel.py:159 sidepanel/bookPanel.py:269 msgid "Calculating..." msgstr "Počítá se..." #: sidepanel/bookPanel.py:300 msgid "" "Engine scores are in units of pawns, from White's point of view. Double " "clicking on analysis lines you can insert them into Annotation panel as " "variations." msgstr "Výsledky stroje jsou z pohledu bílého v jednotkách pěšců. Dvojitým klepnutím na řádky rozboru je můžete vložit do panelu s poznámkami jako obměny." #: sidepanel/bookPanel.py:302 msgid "" "Adding suggestions can help you find ideas, but slows down the computer's " "analysis." msgstr "Přidání návrhů vám může pomoci s hledáním nápadů, ale zpomalí provádění rozboru počítačem." #: sidepanel/bookPanel.py:311 msgid "Endgame Table" msgstr "Tabulka koncovky" #: sidepanel/bookPanel.py:315 msgid "" "The endgame table will show exact analysis when there are few pieces on the " "board." msgstr "Tabulka koncovky ukáže přesný rozbor, když je na hrací desce několik figurek." #: sidepanel/bookPanel.py:364 sidepanel/bookPanel.py:367 #, python-format msgid "Mate in %d" msgstr "Mat za %d" #: sidepanel/bookPanel.py:554 msgid "" "In this position,\n" "there is no legal move." msgstr "V tomto postavení\nnení žádný tah platný." #: sidepanel/chatPanel.py:21 msgid "" "The chat panel lets you communicate with your opponent during the game, " "assuming he or she is interested" msgstr "Panel pro rozhovor vám během hry umožňuje psát si se soupeřem za předpokladu, že má druhá strana o to být ve styku zájem." #: sidepanel/commentPanel.py:16 msgid "Comments" msgstr "Poznámky" #: sidepanel/commentPanel.py:20 msgid "The comments panel will try to analyze and explain the moves played" msgstr "Panel pro poznámky se bude pokoušet o rozbor a výklad zahraných tahů" #: sidepanel/commentPanel.py:121 msgid "Initial position" msgstr "Výchozí pozice" #: sidepanel/commentPanel.py:254 #, python-format msgid "%(color)s moves a %(piece)s to %(cord)s" msgstr "%(color)s táhnul: %(piece)s na %(cord)s" #: sidepanel/engineOutputPanel.py:15 msgid "Engines" msgstr "Stroje" #: sidepanel/engineOutputPanel.py:20 msgid "" "The engine output panel shows the thinking output of chess engines (computer" " players) during a game" msgstr "Panel s výstupem stroje ukazuje myšlenkový výstup šachových strojů (počítačoví hráči) během hry" #: sidepanel/engineOutputPanel.py:44 msgid "No chess engines (computer players) are participating in this game." msgstr "Žádné šachové stroje (počítačoví hráči) se neúčastní této hry." #: sidepanel/historyPanel.py:10 msgid "Move History" msgstr "Historie tahů" #: sidepanel/historyPanel.py:13 msgid "" "The moves sheet keeps track of the players' moves and lets you navigate " "through the game history" msgstr "Herní list zajišťuje sledování hráčových tahů a dovoluje pohyb skrze průběh hry" #: sidepanel/scorePanel.py:15 msgid "Score" msgstr "Výsledek" #: sidepanel/scorePanel.py:19 msgid "" "The score panel tries to evaluate the positions and shows you a graph of the" " game progress" msgstr "Panel s výsledky se pokouší o vyhodnocování pozic a ukazuje vám obrazec znázorňující postup hry" pychess-0.12.2/lang/cs/LC_MESSAGES/pychess.mo0000644000175000017470000023111212653231273020702 0ustar tamasusers00000000000000Kti4pF qF |FGFF F$F GG0GIG+[G GGG/G0G[ HNiHH%H`H(VI+I'I#II*J,;J0hJJJJJJ#K$'K'LKtK K!KQKJL>hLLL!LLLM#M,MGM%LMrMMM9M'M@NQNbNsNNNNNNEN5OMO#iO$O OOOOPP)PL8PP PPPQP&Q$DQCiQ7QUQ";R*^R(RRRRRReSkS qS}SS&S.SS SST%T 7TSXT TT TTmTEU UU _UiUxU UUCUU V VV .V;VMVcVjV*zVV V VVV/VS WQ]WWW!WX +XLX/iXSXQX#?Y*cY"Y+YYrvZ ZK [%V[O|[-[3[$.\6S\#\E\A\!6]!X]-z]&]-];] 9^BZ^^^^ ^ ^$^#^%_"4_#W_{_ ______R`[`]``` o`8y`.`` ` ``a$a )a7a MaXa gaPsa a a6aVbVjbRbSchcnctcc-ccc cc cdd)d:?dzd ddddd d d dddd eeee;eUefeGke`eafivff fgp g zgg g g gg"gg ggh}h i#i&8i _i1iiiiii iiii0j@BjDjHjFkHXkk=lmwn}o oooo oo op ppp3pDpTpcp tppppp 5qBqHqQq `q mq{qqq q qqqqAqqr>>sX}sRsc)t]t?tB+u;nuquSvOpvFw x)x?x Px[x pxD~xxxxxx y yy'y9y Iy Sy^y py|y y y yyyyyyy+y *z8zGz Nz\z uz!zz z z z z zzzz.{/1{a{ j{Cx{{{{{ || |'|7| <| I|U| h| t| | | | | | | |||\|,W}*}+}*}~ ~!~.;~ j~t~~ ~ ~~~~~~   $* / 9 FSX]w     1E=' #ǀ  ;L  !(.M S^e ˂҂ق ނ   $ .<(Qz*   1G Xf"{Ƅ Մ߄  '3C I Vawυ ׅ  /J j v Ɔ܆  phY"ˆC5)4_93ΉRdcT =9SZ7PIc}+`GŽBRhxZK-QhE,.A[Aߑ  $3PB @K_q,vMAIZl q  ˔ Ӕ ߔ 1?PQb6MPXC I S$_#%"Η# !,?C _k}ۘ,ߘ K,x99؛?9R(uC+$o3&ȝȞ t6q%l8!XǢ/ &P(w&'ǣ'd| äѤ   &/5> O[ alu%{  ¥ͥ ֥   3 @J S$a ɦ Ѧݦ+)/ >K!O)q8ԧ1'&Ngy Ũ ب 5""eE+ת8OUY!v ū ȫ ի$:6J(2¬ *1:MQo#!ƭ-15;CV]I3 δܴE*1:Zbx# ƵԵ"ٵ0--c[P)&P/4%(Z ')5E^y &'޹.5$F"kERԺ>'f"ʻ!л 1(Bkq:5ƼI FTc|ݽxj'**ݾ1,^ t}'>ObMv"-@4V_"+,:gze #6 ?1I?{"9m\ m^y ]M hr A,@m /QZv8@:(6c/QZ%w0,,(x :E[DR198k1E53=i''+4#;XD9 .8A I U c'&<=NWgw}BQSV f8p00 GUfpw?fO`^`v )6, c mw F 4>M\`u ~  &0!SRl* Ugk}*5D0^ 1  (&9+`IMP$LuU7lP " " 0; >Kct  wNb2ljm!VLUOh3E? "./^ ozA$! '39OWp ,F _ls+z &. 6@O^ mz|EM ) 3M@   ";Sj,J YHgFG$?Cd < %3Mbs .=OT!Z| -   ,F#O sT~ 5  -*#X| NZ\bw    /<M e o{ =#Tx/  #'@h !  0G [g | ) <FU]z/#   %2I N Zg|~w6I= -G>u;TVmnKO.7~_,ATdHwQZod z   i   2 < jC 6 g GM ' : 5 .  B N S c t } h      1 V,D  !+ CP`x#(  9ST?OQZ2 9 DQ&q%;<7?HXx!  -!"OOrHMEL#)MC'=<2zA$a&$"$.pISe0-_^*  '+ 'S +{   2! S! `! n! z! !#!!!(!"" '"3"<"D"X"i" n"z" "2"""" " "## ##.#7# J#T#\#s# # ##/## #$$1$ 8$ D$KR$$$$ $$%$:%KC%%%>%1%&&C&T& e&p&&&& &&H&'$(eL(5(()) 9)G)d)i)+m)/)%)))) *$*<*T*j***7*)*+72+j+++++++&++!,%&,L,$k,,,,,,,,, ,.Y/ U#}X 0jl0Wi <V(.x(f[9v3GKly8U6JTDu]s'-wu%A,!a~MWYe_*m4< :[wo@ .` v'?bC2l/zT:p3,Eh%=md5i czr&SGOFU.(s,"6x6!md9 LH;+$>B?= Fn<7zK H_v*bV1G)Iu=C; r-`SQkeiDt )\9rY ^H/pPaI7 "CS@ QNq8h;j$K1e EPBf|!oFExsF:60-{2I#p/% "*qPy|at ~87^&." A2k+>+N=WX>#7'&Lc,5J|4g0B R?R2NO_D]/V*\t@&LTy ^E)kJ19:OJX1)}5Z+$A>434KAMZh c;5<?o[fbRgI}n#%gZ@!GQH-Yq8`D ]nM$B(C{dj~ \w{3' Gain: + %d sec challenges you to a %(time)s %(rated)s %(gametype)s game chess has arrived has declined your offer for a match has departed has lagged for 30 seconds invalid engine move: %s is censoring you is lagging heavily but hasn't disconnected is present min noplay listing you uses a formula not fitting your match request: where %(player)s plays %(color)s. with whom you have an adjourned %(timecontrol)s %(gametype)s game is online. would like to resume your adjourned %(time)s %(gametype)s game.%(black)s won the game%(color)s got a double pawn %(place)s%(color)s got an isolated pawn in the %(x)s file%(color)s got isolated pawns in the %(x)s files%(color)s got new double pawns %(place)s%(color)s has a new passed pawn on %(cord)s%(color)s moves a %(piece)s to %(cord)s%(minutes)d min + %(gain)d sec/move%(name)s %(minutes)d min%(name)s %(minutes)d min %(gain)d sec/move%(name)s %(minutes)d min + %(gain)d sec/move%(opcolor)s has a new trapped bishop on %(cord)s%(player)s is %(status)s%(player)s plays %(color)s%(white)s won the game%d min%s can no longer castle%s can no longer castle in kingside%s can no longer castle in queenside%s moves pawns into stonewall formation%s returns an error%s was declined by your opponent%s was withdrawn by your opponent%s will identify what threats would exist if it were your opponent's turn to move%s will try to predict which move is best and which side has the advantage'%s' is a registered name. If it is yours, type the password.'%s' is not a registered name(Blitz)(Link is available on clipboard.)*0 Players Ready0 of 010 min + 6 sec/move, 1400↑, White10 min + 6 sec/move, White12002 min, Fischer Random, 1800↓, Black2 min, Fischer Random, Black5 min5 min, 1200-1800, ManualConnect to the Free Online Chess ServerPromote pawn to what?PyChess was unable to load your panel settingsAnalyzingAnimationBoard ColoursChess SetsChess VariantDate of gameEnter Game NotationGame dataHint mode analyzing your game, enable this type Ctrl+H.Initial PositionInstalled SidepanelsName of _first human player:Name of s_econd human player:NewsOpen GameOpening, endgameOpponent StrengthOptionsPlay Sound When...PlayersSpy mode analyzing the oponnent game, enable this type Ctrl+Y.Time ControlToolsYour Color_Start GameA file named '%s' already exists. Would you like to replace it?Engine, %s, has diedError loading gamePyChess is discovering your engines. Please wait.PyChess was not able to save the gameThere are %d games with unsaved moves. Save changes before closing?Unable to add %sUnable to save file '%s'Unknown file type '%s'Challenge:A player _checks:A player _moves:A player c_aptures:ASEANASEAN: http://www.ncf-phil.org/downloadables/2014/May/Asean_chess/Laws_of_ASEAN_Chess_2011_Nov_26.docAbortAbout ChessAc_tiveAcceptActivate alarm when _remaining sec is:Active color field must be one of w or b. %sActive seeks: %dAdd commentAdd evaluation symbolAdd move symbolAdd start commentAdd threatening variation lines Adding suggestions can help you find ideas, but slows down the computer's analysis.Address ErrorAdjournAdministratorAi-WokAi-Wok: http://www.open-aurec.com/wbforum/viewtopic.php?p=199364&sid=20963a1de2c164050de019e5ed6bf7c4#p199364All Chess FilesAll FilesAll whiteAnalysis by %sAnalyze from current positionAnalyze gameAnalyzer startedAnimate pieces, board rotation and more. Use this on fast machines.Annotated gameAnnotationAny strengthAsian variantsAsk to _MoveAsymmetric RandomAsymmetric Random AtomicAuto Call _FlagAuto _rotate board to current human playerAuto login on startupAuto-logoutAvailableBB EloBecause %(black)s lost connection to the serverBecause %(black)s lost connection to the server and %(white)s requested adjournmentBecause %(black)s ran out of time and %(white)s has insufficient material to mateBecause %(loser)s disconnectedBecause %(loser)s king explodedBecause %(loser)s ran out of timeBecause %(loser)s resignedBecause %(loser)s was checkmatedBecause %(mover)s stalematedBecause %(white)s lost connection to the serverBecause %(white)s lost connection to the server and %(black)s requested adjournmentBecause %(white)s ran out of time and %(black)s has insufficient material to mateBecause %(winner)s has fewer piecesBecause %(winner)s king reached the centerBecause %(winner)s lost all piecesBecause %(winner)s was giving check 3 timesBecause a player aborted the game. Either player can abort the game without the other's consent before the second move. No rating changes have occurred.Because a player disconnected and there are too few moves to warrant adjournment. No rating changes have occurred.Because a player lost connectionBecause a player lost connection and the other player requested adjournmentBecause both players agreed to a drawBecause both players agreed to abort the game. No rating changes have occurred.Because both players agreed to an adjournmentBecause both players have the same amount of piecesBecause both players ran out of timeBecause neither player has sufficient material to mateBecause of adjudication by an adminBecause of adjudication by an admin. No rating changes have occurred.Because of courtesy by a player. No rating changes have occurred.Because the %(black)s engine diedBecause the %(white)s engine diedBecause the connection to the server was lostBecause the game exceed the max lengthBecause the last 50 moves brought nothing newBecause the same position was repeated three times in a rowBecause the server was shut downBecause the server was shut down. No rating changes have occurred.BeepBishopBlackBlack O-OBlack O-O-OBlack has a new piece in outpost: %sBlack has a rather cramped positionBlack has a slightly cramped positionBlack should do pawn storm in leftBlack should do pawn storm in rightBlack:BlindfoldBlindfold AccountBlitzBlitz:Blitz: 5 minBringing your king legally to the center (e4, d4, e5, d5) instantly wins the game! Normal rules apply in other cases and checkmate also ends the game.BughouseCCACalculating...CambodianCambodian: http://www.khmerinstitute.org/culture/ok.htmlCastling availability field is not legal. %sCenter:ChallengeChallenge: Challenge: Change ToleranceChatChess AdvisorChess Alpha 2 DiagramChess GameChess PositionChess ShoutChess Variants are like the pieces of the last line will be placed on the board.Chess clientClaim DrawClassic chess rules http://en.wikipedia.org/wiki/ChessClassic chess rules with all pieces white http://en.wikipedia.org/wiki/Blindfold_chessClassic chess rules with hidden figurines http://en.wikipedia.org/wiki/Blindfold_chessClassic chess rules with hidden pawns http://en.wikipedia.org/wiki/Blindfold_chessClassic chess rules with hidden pieces http://en.wikipedia.org/wiki/Blindfold_chessClearClockClose _without SavingColorize analyzed movesCommand line parameters needed by the engine.Command:CommentsCompensationComputerConnectingConnecting to serverConnection ErrorConnection was closedContinue to wait for opponent, or try to adjourn the game?Conversation infoConversationsCopy FENCopy PGNCornerCould not save the fileCounterplayCrazyhouseCreate SeekDDark Squares :DateDate/TimeDeclineDefaultDestination Host UnreachableDetect type automaticallyDevelopment adv.DiedDo you know that it is possible to finish a chess game in just 2 turns?Do you know that the number of possible chess games exceeds the number of atoms in the Universe?Do you know that you can call flag when the clock is with you, Actions > Call Flag.Do you know that you can help translate Pychess in your language, Help > Translate Pychess.Do you want to abort it?Don't careDrawDue to abuse problems, guest connections have been prevented. You can still register on http://www.freechess.orgDummy AccountECOEdit SeekEdit Seek: Edit commentEmailEn passant cord is not legal. %sEn passant lineEndgame TableEngine scores are in units of pawns, from White's point of view. Double clicking on analysis lines you can insert them into Annotation panel as variations.EnginesEngines use uci or xboard communication protocol to talk to the GUI. If it can use both you can set here which one you like.Enter GameEnter Game _NotationError parsing move %(moveno)s %(mstr)sEuroShogiEuroShogi: http://en.wikipedia.org/wiki/EuroShogiEventEvent:Examine Adjourned GameExaminedExaminingExecutable filesExport positionFEN needs 6 data fields. %sFEN needs at least 2 data fields in fenstr. %sFICS atomic: http://www.freechess.org/Help/HelpFiles/atomic.htmlFICS bughouse: http://www.freechess.org/Help/HelpFiles/bughouse.htmlFICS crazyhouse: http://www.freechess.org/Help/HelpFiles/crazyhouse.htmlFICS losers: http://www.freechess.org/Help/HelpFiles/losers_chess.htmlFICS suicide: http://www.freechess.org/Help/HelpFiles/suicide_chess.htmlFICS wild/3: http://www.freechess.org/Help/HelpFiles/wild.html * Randomly chosen pieces (two queens or three rooks possible) * Exactly one king of each color * Pieces placed randomly behind the pawns * No castling * Black's arrangement mirrors white'sFICS wild/4: http://www.freechess.org/Help/HelpFiles/wild.html * Randomly chosen pieces (two queens or three rooks possible) * Exactly one king of each color * Pieces placed randomly behind the pawns, SUBJECT TO THE CONSTRAINT THAT THE BISHOPS ARE BALANCED * No castling * Black's arrangement DOES NOT mirrors white'sFICS wild/5: http://www.freechess.org/Help/HelpFiles/wild.html http://en.wikipedia.org/wiki/Chess_variant#Chess_with_different_starting_positions Pawns start on their 7th rank rather than their 2nd rank!FICS wild/8: http://www.freechess.org/Help/HelpFiles/wild.html Pawns start on 4th and 5th ranks rather than 2nd and 7thFICS wild/8a: http://www.freechess.org/Help/HelpFiles/wild.html White pawns start on 5th rank and black pawns on the 4th rankFIDE MasterFMF_ull board animationFace _to Face display modeFile existsFischer RandomForced moveFriendsGMGain:Game analyzing in progress...Game informationGame is _drawn:Game is _lost:Game is _set-up:Game is _won:Game shared at Games running: %dGaviota TB path:Generally this means nothing, as the game is time-based, but if you want to please your opponent, perhaps you should get going.Grand MasterGuestHa_ndle:Halfmove clockHidden pawnsHidden piecesHideHintsHost:How to PlayHuman BeingIMIdIdleIf set, PyChess will colorize suboptimal analyzed moves with red.If set, PyChess will show game results for different moves in positions containing 6 or less pieces. It will search positions from http://www.k4it.de/If set, PyChess will show game results for different moves in positions containing 6 or less pieces. You can download tablebase files from: http://www.olympuschess.com/egtb/gaviota/If set, PyChess will suggest best opening moves on hint panel.If set, PyChess will use figures to express moved pieces, rather than uppercase letters.If set, clicking on main application window closer first time it closes all games.If set, the black pieces will be head down, suitable for playing against friends on mobile devices.If set, the board will turn after each move, to show the natural view for the current player.If set, the captured figurines will be shown next to the board.If set, the elapsed time that a player used for the move is shown.If set, the hint analyzer engine evaluation value is shown.If set, the playing board will display labels and ranks for each chess field. These are usable in chess notation.If set, this hides the tab in the top of the playing window, when it is not needed.If the analyzer finds a move where the evaluation difference (the difference between the evaluation for the move it thinks is the best move and the evaluation for the move made in the game) exceeds this value, it will add an annotation for that move (consisting of the engine's Principal Variation for the move) to the Annotation panelIf you don't save, new changes to your games will be permanently lost.In TournamentIn this position, there is no legal move.Initial positionInitiativeInternational MasterInvalid move.It is not possible later to continue the game, if you don't save it.Jump to initial positionJump to latest positionKKingKing of the hillKnightKnight oddsKnightsLeave _FullscreenLight Squares :LightningLightning:Load _Recent GameLoaded gameLoading player dataLocal EventLocal SiteLog on ErrorLog on as G_uestLog on as _GuestLogging on to serverLosersLossMakrukMakruk: http://en.wikipedia.org/wiki/MakrukMamer ManagerManage enginesManualManual AcceptManually accept opponentMate in %dMaximum analysis time in seconds:Minutes:Minutes: More channelsMore playersMove HistoryMove numberNNameNames: #n1, #n2Needs 7 slashes in piece placement field. %sNever use animation. Use this on slow machines.New GameNo _animationNo chess engines (computer players) are participating in this game.No conversation's selectedNo soundNormalNormal: 40 min + 15 sec/moveNot AvailableObserveObserve %sObserved _ends:OddsOffer A_bortOffer AbortOffer Ad_journmentOffer PauseOffer RematchOffer ResumeOffer UndoOffer _AbortOffer _DrawOffer _PauseOffer _ResumeOffer _UndoOfficial PyChess panel.OfflineOn FICS, your "Wild" rating encompasses all of the following variants at all time controls: One player starts with one less knight pieceOne player starts with one less pawn pieceOne player starts with one less queen pieceOne player starts with one less rook pieceOnlineOnly animate _movesOnly animate piece moves.Only registered users may talk to this channelOpen GameOpen Sound FileOpen _DatabaseOpening BookOpening booksOpponent RatingOpponent's strength: OtherOther (non standard rules)Other (standard rules)PParameters:Paste FENPausePawnPawn oddsPawns PassedPawns PushedPingPlayPlay Fischer Random chessPlay Losers chessPlay RematchPlay _Internet ChessPlay normal chess rulesPlayer _RatingPlayers: %dPlayingPng imagePo_rts:Polyglot book file:Pre_viewPrefer figures in _notationPreferencesPressing Ctrl+Z to offer opponent the possible rollback moves.PrivateProbably because it has been withdrawn.PromotionProtocol:PyChess - Connect to Internet ChessPyChess - Internet Chess: FICSPyChess Game DatabasePyChess Information WindowPyChess databasePyChess has lost connection to the engine, probably because it has died. You can try to start a new game with the engine, or try to play against another one.PyChess.py:QQueenQueen oddsQuit PyChessRR_esignRandomRapidRapid: 15 min + 10 sec/moveRatedRated gameRatingReceiving list of playersRemove symbolsRequest ContinuationResendResend %s?Reset Default ColoursResultResumeRookRook oddsRoundRound:Running Simul MatchSRS_ign upSanctionsSaveSave GameSave Game _AsSave _own games onlySave analyzing engine _evaluation valuesSave elapsed move _timesSave files to:Save moves before closing?Save the current game before you close it?Saved gameScoreSearch:Seek _GraphSeek updatedSelect Gaviota TB pathSelect auto save pathSelect book fileSelect engineSelect sound file...Select the games you want to save:Select working directorySend ChallengeSend all seeksSend seekService RepresentativeSetting up environmentSetup PositionShare GameSho_w cordsShort on _time:ShoutShow ConsoleShow _ChatShow _captured piecesShow elapsed move timesShow evaluation valuesShow tips at startupShredderLinuxChess:ShuffleSide to moveSide_panelsSimple Chess PositionSiteSite:SittuyinSittuyin: http://en.wikipedia.org/wiki/SittuyinSorry '%s' is already logged inSound filesSp_y modeSpentStandardStandard:Start Private ChatStatusStep back one moveStep forward one moveSuicideTTDTMTeam AccountThe abort offerThe adjourn offerThe analyzer will run in the background and analyze the game. This is necessary for the hint mode to workThe chain button is disabled because you are logged in as a guest. Guests can't establish ratings, and the chain button's state has no effect when there is no rating to which to tie "Opponent Strength" toThe chat panel lets you communicate with your opponent during the game, assuming he or she is interestedThe clock hasn't been started yet.The comments panel will try to analyze and explain the moves playedThe connection was broken - got "end of file" messageThe directory where the engine will be started from.The displayed name of the first human player, e.g., John.The displayed name of the guest player, e.g., Mary.The draw offerThe endgame table will show exact analysis when there are few pieces on the board.The engine %s reports an error:The engine output panel shows the thinking output of chess engines (computer players) during a gameThe entered password was invalid. If you forgot your password, go to http://www.freechess.org/password to request a new one over email.The error was: %sThe file already exists in '%s'. If you replace it, its content will be overwritten.The flag callThe game #%s can't be loaded, because of an error parsing FENThe game can't be loaded, because of an error parsing FENThe game can't be read to end, because of an error parsing move %(moveno)s '%(notation)s'.The game ended in a drawThe game has been abortedThe game has been adjournedThe game has been killedThe game is pausedThe hint panel will provide computer advice during each stage of the gameThe inverse analyzer will analyze the game as if your opponent was to move. This is necessary for the spy mode to workThe move failed because %s.The moves sheet keeps track of the players' moves and lets you navigate through the game historyThe offer to switch sidesThe opening book will try to inspire you during the opening phase of the game by showing you common moves made by chess mastersThe pause offerThe reason is unknownThe resignationThe resume offerThe score panel tries to evaluate the positions and shows you a graph of the game progressThe takeback offerThebanThemesThere is %d game with unsaved moves.There are %d games with unsaved moves.There is something wrong with this executableThis game can be automatically aborted without rating loss because there has not yet been two moves madeThis game can not be adjourned because one or both players are guestsThis is a continuation of an adjourned matchThis option is not applicable because you're challenging a playerThis option is not available because you're challenging a guest, Threat analysis by %sThree-checkTimeTime control: Time pressureTip Of The dayTip of the DayTo play on Fullscreen mode, just type F11. Coming back, F11 again.To save a game Game > Save Game As, give the filename and choose where you want to be saved. At the bottom choose extension type of the file, and Save.Tolerance:Tournament DirectorTranslate PyChessTypeType or paste PGN game or FEN positions hereUUnable to accept %sUnable to save to configured file. Save the current game before you close it?Unable to save to configured file. Save the games before closing?Unclear positionUndescribed panelUndoUndo one moveUndo two movesUninstallUnknownUnofficial channel %dUnratedUnregisteredUntimedUpside DownUse _analyzerUse _inverted analyzerUse _local tablebasesUse _online tablebasesUse analyzer:Use name format:Use opening _bookVariant developed by Kai Laskos: http://talkchess.com/forum/viewtopic.php?t=40990Variation annotation creation threshold in centipawns:W EloWFMWGMWIMWaitWas unable to save '%(uri)s' as PyChess doesn't know the format '%(ending)s'.WelcomeWhen this button is in the "locked" state, the relationship between "Opponent's strength" and "Your strength" will be preserved when a) your rating for the type of game sought has changed b) you change the variant or the time controlWhiteWhite O-OWhite O-O-OWhite has a new piece in outpost: %sWhite has a rather cramped positionWhite has a slightly cramped positionWhite should do pawn storm in leftWhite should do pawn storm in rightWhite:WildWildcastleWildcastle shuffleWinWin by giving check 3 timesWith attackWoman FIDE MasterWoman Grand MasterWoman International MasterWorking directory:Year, month, day: #y, #m, #dYouYou are currently logged in as a guest. A guest can't play rated games and therefore isn't able to play as many of the types of matches offered as a registered user. To register an account, go to http://www.freechess.org/Register/index.html.You asked your opponent to moveYou can choose from 20 different difficulties to play against the computer.You can play chess listening to the sounds of the game, for that, Settings > Preferences > Sound tab, enable Use sounds in PyChess and choose your preferred sounds.You can start a new game by Game > New Game, in New Game window do you can choose Players, Time Control and Chess Variants.You can't play rated games because "Untimed" is checked, You can't play rated games because you are logged in as a guestYou can't select a variant because "Untimed" is checked, You can't switch colors during the game.You don't have the necessary rights to save the file. Please ensure that you have given the right path and try again.You have been logged out because you were idle more than 60 minutesYou have opened no conversations yetYou have to set kibitz on to see bot messages here.You have tried to undo too many moves.You may only have 3 outstanding seeks at the same time. If you want to add a new seek you must clear your currently active seeks. Clear your seeks?You sent a draw offerYou sent a pause offerYou sent a resume offerYou sent an abort offerYou sent an adjournment offerYou sent an undo offerYour opponent asks you to hurry!Your opponent has asked that the game be aborted. If you accept this offer, the game will end with no rating change.Your opponent has asked that the game be adjourned. If you accept this offer, the game will be adjourned and you can resume it later (when your opponent is online and both players agree to resume).Your opponent has asked that the game be paused. If you accept this offer, the game clock will be paused until both players agree to resume the game.Your opponent has asked that the game be resumed. If you accept this offer, the game clock will continue from where it was paused.Your opponent has asked that the last %s move(s) be undone. If you accept this offer, the game will continue from the earlier position.Your opponent has offered you a draw.Your opponent has offered you a draw. If you accept this offer, the game will end with a score of 1/2 - 1/2.Your opponent is not out of time.Your opponent must agree to abort the game because there has been two or more moves madeYour opponent seems to have changed their mind.Your opponent wants to abort the game.Your opponent wants to adjourn the game.Your opponent wants to pause the game.Your opponent wants to resume the game.Your opponent wants to undo %s move(s).Your panel settings have been reset. If this problem repeats, you should report it to the developersYour seeks have been removedYour strength: Zugzwang_Accept_Actions_Analyze Game_Auto save finished games_Black player:_Call Flag_Clear Seeks_Copy FEN_Copy PGN_Decline_Edit_Engines_Export Position_Fullscreen_Game_Game List_General_Help_Hide tabs when only one game is open_Hint mode_Hints_Invalid move:_Load Game_Log Off_Log Viewer_Name:_New Game_Next_Observed moves:_Opponent:_Password:_Play Normal chess_Player List_Previous_Replace_Rotate Board_Save %d document_Save %d documents_Save %d documents_Save Game_Seeks / Challenges_Show Sidepanels_Sounds_Start Game_Untimed_Use main app closer [x] to close all games_Use sounds in PyChess_View_White player:_Your Color:andand guests can't play rated gamesand on FICS, untimed games can't be ratedand on FICS, untimed games have to be normal chess rulesask your opponent to moveblackbrings a %(piece)s closer to enemy king: %(cord)sbrings a pawn closer to the backrow: %scall your opponents flagcaptures materialcastlesdefends %sdevelops a %(piece)s: %(cord)sdevelops a pawn: %sdrawsexchanges materialgnuchess:half-openhttp://brainking.com/en/GameRules?tp=2 * Placement of the pieces on the 1st and 8th row are randomized * The king is in the right hand corner * Bishops must start on opposite color squares * Black's starting position is obtained by rotating white's position 180 degrees around the board's center * No castlinghttp://en.wikipedia.org/wiki/Chesshttp://en.wikipedia.org/wiki/Chess960 FICS wild/fr: http://www.freechess.org/Help/HelpFiles/wild.htmlhttp://en.wikipedia.org/wiki/Rules_of_chessimproves king safetyin the %(x)s%(y)s filein the %(x)s%(y)s filesincreases the pressure on %sinvalid promoted piecematesminmoves a rook to an open filemoves an rook to a half-open filemoves bishop into fianchetto: %snot playingofoffer a drawoffer a pauseoffer a takebackoffer an abortoffer to adjournoffer to resumeoffer to switch sidesonline in totalpins an enemy %(oppiece)s on the %(piece)s at %(cord)splaces a %(piece)s more active: %(cord)spromotes a Pawn to a %spromotion move without promoted piece is incorrectputs opponent in checkrating range nowrescues a %sresignround %ssacrifies materialsecslightly improves king safetytakes back materialthe captured cord (%s) is incorrectthe end cord (%s) is incorrectthe move needs a piece and a cordthreatens to win material by %sto automatic acceptto manual acceptucivs.whitewindow1wine not installedxboardxboard nocastle: http://home.hccnet.nl/h.g.muller/engine-intf.html#8 FICS wild/2: http://www.freechess.org/Help/HelpFiles/wild.html * Random arrangement of the pieces behind the pawns * No castling * Black's arrangement mirrors white'sxboard wildcastle http://home.hccnet.nl/h.g.muller/engine-intf.html#8 FICS wild/0: http://www.freechess.org/Help/HelpFiles/wild.html * White has the typical set-up at the start. * Black's pieces are the same, except that the King and Queen are reversed, * so they are not on the same files as White's King and Queen. * Castling is done similarly to normal chess: * o-o-o indicates long castling and o-o short castling.xboard wildcastle http://home.hccnet.nl/h.g.muller/engine-intf.html#8 FICS wild/1: http://www.freechess.org/Help/HelpFiles/wild.html * In this variant both sides have the same set of pieces as in normal chess. * The white king starts on d1 or e1 and the black king starts on d8 or e8, * and the rooks are in their usual positions. * Bishops are always on opposite colors. * Subject to these constraints the position of the pieces on their first ranks is random. * Castling is done similarly to normal chess: * o-o-o indicates long castling and o-o short castling.Project-Id-Version: pychess Report-Msgid-Bugs-To: POT-Creation-Date: 2016-01-27 13:28+0100 PO-Revision-Date: 2016-01-28 08:56+0000 Last-Translator: slav0nic Language-Team: Czech (http://www.transifex.com/gbtami/pychess/language/cs/) MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Language: cs Plural-Forms: nplurals=3; plural=(n==1) ? 0 : (n>=2 && n<=4) ? 1 : 2; Přírůstek: + %d s vás vyzývá ke hře %(time)s %(rated)s %(gametype)s šachpřišel odmítl vaši nabídku ke hřeodešelje pozadu o 30 sekund neplatný tah stroje: %s vás cenzurujeje těžce pozadu, ale neodpojil seje přítomen min žádná hra vás nemá v seznamu neodpovídá hlediskům vaší žádosti o hru: kde %(player)s hraje%(color)s.s nímž jste měl odloženou hru %(timecontrol)s %(gametype)s, je připojen k síti. chcete pokračovat ve své odložené hře %(time)s %(gametype)s.%(black)s vyhrál hru%(color)s má zdvojené pěšce %(place)s%(color)s má odloučeného pěšce v postavení %(x)s%(color)s má odloučené pěšce v %(x)s postaveních%(color)s má odloučené pěšce v %(x)s postaveních%(color)s má nové zdvojené pěšce %(place)s%(color)s má nového prošlého pěšce na %(cord)s%(color)s táhnul: %(piece)s na %(cord)s%(minutes)d min + %(gain)d s/tah%(name)s %(minutes)d min%(name)s %(minutes)d min %(gain)d s/tah%(name)s %(minutes)d min + %(gain)d s/tah%(opcolor)s má nového střelce v šachu na %(cord)s%(player)s je %(status)s%(player)s plays %(color)s%(white)s vyhrál hru%d min%s už nemůže udělat rošádu%s už nemůže udělat malou rošádu%s už nemůže udělat velkou rošádu%s přesunuje pěšce do útvaru kamenná zeď%s vrátil chybu%s byla vaším soupeřem odmítnuta%s byla vaším soupeřem stažena%s určí, jaké by mohly být hrozby, kdyby měl hrát váš soupeř%s se pokusí předem určit, který tah je nejlepší a která strana má výhodu'%s' je zaregistrované jméno. Pokud je vaše, zadejte heslo.'%s' není registrované jméno(Blesk)(Odkaz je dostupný ve schránce.)*Připraveno 0 hráčů0 z 010 min + 6 s/tah, 1400↑, Bílý10 min + 6 s/tah, Bílý12002 min, náhodné šachy Fischer, 1800↓, Černý2 min, náhodné šachy Fischer, Černý5 min5 min, 1200-1800, RučníPřipojit se k Free Online Chess ServeruProměnit pěšce na kterou figuru?PyChess nebyl schopen nahrát nastavení vašeho paneluRozborAnimaceBarvy šachovniceŠachové sadyŠachová variantaDatum hryVstoupit do záznamu hryHry v datechPoradní režim rozebírá soupeřovu hru. Tento typ hry povolíte stisknutím klávesové zkratky Ctrl+H.Počáteční postaveníNainstalované postranní panelyJméno _prvního lidského hráče:Jméno _druhého lidského hráče:NovinkyOtevřít hruZahájení/Otevření hry, zakončení hrySíla soupeřeVolbyPřehrát zvuk, když...HráčiŠpionážní režim rozebírá soupeřovu hru. Tento typ hry povolíte stisknutím klávesové zkratky Ctrl+Y.Řízení časuNástrojeVaše barva_Spustit hruSoubor pojmenovaný '%s' již existuje. Chcete ho nahradit?Stroj, %s, spadlChyba při nahrávání hryPyChess zjišťuje stroje. Počkejte, prosím.PyChess se hru nepodařilo uložitJe %d her s neuloženými tahy. Mají se tyto tahy před zavřením uložit?Nelze přidat %sNelze uložit soubor '%s'Neznámý typ souboru '%s'Výzva:Š_achy hráče:_Tahy hráče:Hráč za_jímá:ASEANASEAN: http://www.ncf-phil.org/downloadables/2014/May/Asean_chess/Laws_of_ASEAN_Chess_2011_Nov_26.docPřerušitCo je hra v šach?Č_innýPřijmoutSpustit poplach, když z_bývajících sekund je:Činné pole s barvou musí být buď bílé nebo černé. %sČinné žádosti: %dPřidat poznámkuPřidat vyhodnocovací symbolPřidat značku pro tahPřidat začáteční poznámkuPřidat řádky hrozící obměny Přidání návrhů vám může pomoci s hledáním nápadů, ale zpomalí provádění rozboru počítačem.Chyba adresyOdložitSprávceAi-WokAi-Wok: http://www.open-aurec.com/wbforum/viewtopic.php?p=199364&sid=20963a1de2c164050de019e5ed6bf7c4#p199364Všechny šachové souboryVšechny souboryVšechny bíléRozbor od %sRozebrat od nynější polohyProvést rozbor hryAnalyzátor spuštěnAnimovat hrací figurky, otočení hrací desky a jiné. Používejte na rychlých strojích.Hra opatřená poznámkamiPoznámkaJakákoli sílaAsijské variantyVyzvat k _tahuNesouměrná náhodaNesouměrná náhodaAtomové šachyAutomaticky se d_ožadovat časuO_točit šachovnici automaticky k nynějšímu lidskému hráčiAutomatické přihlášení při spuštěníAutomatické odhlášeníDostupnýBB EloProtože %(black)s ztratil spojení se serveremProtože %(black)s ztratil spojení se serverem a %(white)s požaduje odloženíProtože %(black)s už nezůstal čas a %(white)s nemá dost materiálu na to, aby dal matProtože %(loser)s byl odpojenProtože %(loser)s král buď vybuchl anebo se rozložilProtože %(loser)s nezbyl čas, a tak zemřel z časové tísněProtože %(loser)s vzdalProtože %(loser)s dostal šachmat, a tím pádem skončilProtože %(mover)s je neschopen tahu - patová situaceProtože %(white)s ztratil spojení se serveremProtože %(white)s ztratil spojení se serverem a %(black)s požaduje odloženíProtože %(white)s už nezůstal čas a %(black)s nemá dost materiálu na to, aby dal matProtože %(winner)s má málo figurekProtože %(winner)s král dosáhl středu hracíProtože %(winner)s ztratil všechny figurkyProtože %(winner)s stál v šachu třikrátProtože hráč přerušil hru. Kterýkoli hráč může hru přerušit bez svolení druhého hráče před druhým tahem. Žádné změny v hodnocení.Protože se hráč odpojil a je příliš málo tahů na to, aby bylo vynuceno odložení. Žádné změny v hodnocení.Protože hráč ztratil spojeníProtože hráč ztratil spojení a druhý hráč požaduje odloženíProtože oba hráči souhlasili s nerozhodným výsledkem - remízouProtože oba hráči souhlasili s přerušením hry. Žádné změny v hodnocení.Protože oba hráči souhlasili s odložením hryProtože oběma hráčům zůstal stejný počet figurekProtože oběma hráčům nezůstal žádný časProtože žádný z hráčů nemá dost materiálu na to, aby dal matZ rozhodnutí správceZ rozhodnutí správce. Žádné změny v hodnocení.Z důvodu zdvořilosti hráče. Žádné změny v hodnocení.Protože %(black)s stroj vypustil dušiProtože %(white)s stroj vypustil dušiProtože spojení se serverem bylo ztracenoProtože hra překročila největší možnou délkuProtože posledních padesát tahů nepřineslo nic novéhoProtože tatáž pozice byla zopakována třikrát po sobě v řaděProtože server byl vypnutProtože server byl vypnut. Žádné změny v hodnocení.PípnutístřelecČernýČerný O-OČerný O-O-OČerný má novou figurku na: %sČerný má poněkud stísněnou poziciČerný má mírně stísněnou poziciČerný by měl provést útok pěšáků na levém křídleČerný by měl provést útok pěšáků na pravém křídleČerný:Šachy na slepoZakrytý účetBleskBlesk:Bleskovka: 5 minutPřivedení vašeho krále do středu (e4, d4, e5, d5) znamená okamžitou výhru ve hře! Normální pravidla platí v jiných případech a šachmat hru ukončí také.Šachy ve dvouCCAPočítá se...CambodianCambodian: http://www.khmerinstitute.org/culture/ok.htmlPole pro dostupnost rošády není dovoleno. %sStřed:VyzvatVýzva: Vyzvat: Změnit toleranciRozhovorŠachový poradceČachy-Alpha-2-DiagramŠachová hraŠachová poziceZakřičet šachŠachové varianty znamenají volbu v tom, jaké figurky z posledního řádku budou umístěny na hrací desce.Šachový klientDožadovat se remízyKlasická šachová pravidla http://en.wikipedia.org/wiki/ChessKlasická šachová pravidla se všemi figurkami bílými http://en.wikipedia.org/wiki/Blindfold_chessKlasická šachová pravidla se skrytými figurkami http://en.wikipedia.org/wiki/Blindfold_chessKlasická šachová pravidla se skrytými pěšci http://en.wikipedia.org/wiki/Blindfold_chessKlasická šachová pravidla se skrytými figurkami http://en.wikipedia.org/wiki/Blindfold_chessVyprázdnitHodinyZavřít _bez uloženíBarvit tahy, u nichž byl proveden rozborParametry příkazového řádku potřebné pro stroj.Příkaz:PoznámkyNáhradaPočítačPřipojováníPřipojení k serveruChyba spojeníSpojení bylo uzavřenoPokračovat v čekání na soupeře, nebo se pokusit o odložení hry?Informace o rozhovoruRozhovoryKopírovat FENKopírovat PGNRohNelze uložit souborProtihraBlázinecVytvořit žádostDTmavá pole:DatumDatum/ČasOdmítnoutVýchozíCílový počítač je nedosažitelnýDetekovat typ automatickyPřesunZemřelVíte, že je možné šachovou hru za dva tahy?Víte, že počet možných šachových her překračuje počet atomů ve vesmíru?Víte, že se můžete dožadovat vítězství, když jsou vám hodiny příznivy? Činnosti -> Vítězství v čase.Víte, že můžete pomoci s překladem PyChess ve vašem jazyce, Nápověda Překlad PyChess.Chcete jej přerušit?Nestarat seRemízaKvůli potížím se zneužíváním bylo hostům zabráněno v připojení. Pořád se ještě můžete zaregistrovat na http://www.freechess.orgSmyšlený účetECOUpravit žádostUpravit žádost: Upravit poznámkuE-mailKráčející šňůra není dovolena. %sŘádek cestouTabulka koncovkyVýsledky stroje jsou z pohledu bílého v jednotkách pěšců. Dvojitým klepnutím na řádky rozboru je můžete vložit do panelu s poznámkami jako obměny.StrojeStroje používají komunikační prokokol uci nebo xboard ke spojení s GUI. Pokud používají oba, zde můžete nastavit ten, který máte radši.Vsoupit do hryVstoupit do zázn_amu hryChyba při zpracování tahu %(moveno)s %(mstr)sEuroShogiEuroShogi: http://en.wikipedia.org/wiki/EuroShogiUdálostUdálost:Přezkoumat odloženou hruProhlédnutoPřihlížíSpustitelné souboryVyvést stav hryFEN potřebuje 6 datových polí. %sFEN potřebuje 2 datová pole v okně. %sFICS atomové šachy: http://www.freechess.org/Help/HelpFiles/atomic.htmlFICS tandemové šachy: http://www.freechess.org/Help/HelpFiles/bughouse.htmlFICS dosazovací šachy: http://www.freechess.org/Help/HelpFiles/crazyhouse.htmlFICS loupežníci: http://www.freechess.org/Help/HelpFiles/losers_chess.htmlFISC loupežnické šachy: http://www.freechess.org/Help/HelpFiles/suicide_chess.htmlFICS wild/3: http://www.freechess.org/Help/HelpFiles/wild.html * Náhodně vybrané figurky (jsou možné dvě královny nebo tři věže) * Přesně jeden král každé barvy * Figurky umístěny náhodně za pěšci * Žádná rošáda * Rozmístění černých figurek zrcadlí rozmístění bílých figurekFICS wild/4: http://www.freechess.org/Help/HelpFiles/wild.html * Náhodně vybrané figurky (jsou možné dvě královny nebo tři věže) * Přesně jeden král každé barvy * Figurky umístěny náhodně za pěšci, PŘEDMĚT OMEZENÍ , ŽE STŘELCI JSOU VYVÁŽENI * Žádná rošáda * Rozmístění černých figurek NEZRCADLÍ rozmístění bílých figurekFICS wild/5: http://www.freechess.org/Help/HelpFiles/wild.html http://en.wikipedia.org/wiki/Chess_variant#Chess_with_different_starting_positions Pěšci začínají na sedmé řadě spíše než na druhé!FICS wild/8: http://www.freechess.org/Help/HelpFiles/wild.html Pěšci začínají na čtvrté a páté řadě spíše než na druhé a sedméFICS wild/8a: http://www.freechess.org/Help/HelpFiles/wild.html Bílí pěšci začínají na páté řadě a černí pěšci na čtvrté řaděFIDE mistrFMPl_ná animace hrací deskyRežim zobrazení _hlava na hlavěSoubor existujeNáhodné šachy FischerVynucený tahPřáteléGMPřírustek:Probíhá rozbor hry...Informace o hřeHra je n_erozhodná:Hra je _prohrána:Hra je na_stavena:Hra je _vyhrána:Hra sdílena vBěžící hry: %dCesta k tabulkám od Gavioty:Obecně o nic nejde, jelikož hra je založena na času, ale pokud chcete svého soupeře potěšit, možná byste si měl pohnout.VelmistrhostPři_hlášení:Hodiny poloviny tahuSkrytí pěšciSkryté hrací figurkySkrýtRadyHost:Jak hrát šachyČlověkIMIDNečinnýPokud je nastaveno, PyChess bude obarvovat tahy, u nichž byl proveden rozbor, jež však nejsou nejlepší, červeně.Když je zapnuta tato volba, PyChess bude ukazovat herní výsledky pro různé tahy v pozicích obsahujících 6 nebo méně hracích figurek. Pozice bude hledat na http://www.k4it.de/Když je zapnuta tato volba, PyChess bude ukazovat herní výsledky pro různé tahy v pozicích obsahujících 6 nebo méně hracích figurek. Soubory s tabulkami můžete stáhnout z: http://www.olympuschess.com/egtb/gaviota/Když je zapnuta tato volba, PyChess bude v panelu s radami navrhovat nejlepší zahajovací tahy.Když je zapnuta tato volba, PyChess bude používat figurky namísto velkých písmen, aby vyjádřil tahy.Je-li nastaveno, po prvním klepnutí na zavírací tlačítko okna programu dojde k zavření všech her.Když je zapnuta tato volba, černé figurky jsou zobrazeny s hlavou směřující dolů. Má smysl u přenosných zařízení, když protihráč sedí na jiné straně obrazovky.Když je zapnuta tato volba, šachovnice se otočí po každém tahu, aby se mohli ze svého pohledu na šachovnici podívat oba hráči.Když je zapnuta tato volba, zajmuté hrací figurky budou ukázany vedle šachovnice.Pokud je nastaveno, je ukázán uplynulý čas, jejž hráč použil na tah.Pokud je nastaveno, je ukázána hodnota vyhodnocení stroje poradního analyzátoru.Když je zapnuta tato volba, sloupce a řádky hrací desky jsou zobrazeny s písmeny a čísly. Toto je užitečné při šachovém zápisu.Když je zapnuta tato volba, pruh nahoře herního okna se bude ukazovat jen tehdy, když bude potřeba.Pokud analyzátor najde tah, kde rozdíl ve vyhodnocení (rozdíl mezi vyhodnocením pro tah, o kterém si myslí, že je nejlepším tahem, a vyhodnocením pro tah zahraný ve hře) překročí tuto hodnotu, přidá poznámku k tomuto tahu (sestávající z hlavní herní obměny stroje pro ten tah) do panelu s poznámkamiPokud hru neuložíte, bude nynější stav hry trvale ztracen.Na soutěžiV tomto postavení není žádný tah platný.Výchozí poziceIniciativaMezinárodní mistrNeplatný tah.Není možné později pokračovat ve hře, pokud ji neuložíte.Jít zpět na počáteční stav hryJít na poslední stav hryKkrálKrál kopcekůňMožnost tahu jezdcemKrálemOpustit _celou obrazovkuSvětlá pole:StřelaStřela:Nahrát _nedávnou hruNačtená hraNahrávají se data hráčůMístní událostMístní stránkaChyba při přihlašováníPřihlásit se jako H_ostPřihlásit se jako _hostPřihlášení k serveruLoupežníciProhraMakrukMakruk: http://en.wikipedia.org/wiki/MakrukSprávce MamerNastavení strojůRučníPřijmout ručněPřijmout soupeře ručněMat za %dNejvíce času na rozbor v sekundách:Minuty:Minuty: Více kanálůVíce hráčůHistorie tahůČíslo tahuNJménoNázvy: #n1, #n2Potřebuje 7 lomítek v poli pro umísťování figur - kamenů. %sAnimace se nebudou používat nikdy. Užitečné na pomalých počítačích.Nová hraBez _animaceŽádné šachové stroje (počítačoví hráči) se neúčastní této hry.Nebyl vybrán žádný rozhovorBez zvukuNormálníNormální: 40 min + 15 s/tahNedostupnýPozorovatPozorovat %sPozorované _konce:MožnostiNabídnout _přerušeníNabídnout přerušeníNabídnout odlož_eníNabídnout pozastaveníNabídnout odvetuNabídnout pokračováníNabídnout vzetí tahu zpětNabídnout přer_ušeníNabídnout _remízuNabídnout poza_staveníNabídnout po_kračováníNabídnout vzetí tahu _zpětPanel PyChess.NepřipojenýNa FICS, vaše zařazení "Varianty" počítá následující varianty: Jeden z hráčů začíná s o jednoho jezdce menším počtem figurekJeden z hráčů začíná s o jednoho pěšce menším počtem figurekJeden z hráčů začíná bez dámyJeden z hráčů začíná s o jednu věž menším počtem figurekPřipojenýAnimovat pouze _tahyAnimovat pouze _hrací figurkyJen přihlášení uživatelé mohou mluvit na tomto kanáluOtevřít hruOtevřít zvukový souborOtevřít _databáziKniha zahájeníZahajovací knihyHodnocení soupeřeSíla soupeře:JinéJiné (nestandardní pravidla)Jiné (standardní pravidla)PParametry:Vložit FENPozastavitpěšecMožnost tahu pěšcemVolní pěšciPosunutí pěšciPingHrátHrát Fischerovy náhodné šachyHrát loupežnické šachyHrát odvetuHrát šachy na _internetuHrát podle normálních šachových pravidelVýkonnost hráčeHráči: %dHrajeObrázek PNG_Přípojky:Soubor s knihou Polyglot:_NáhledUpřednostňovat figurky v zá_pisuNastaveníStisknutím Ctrl+Z nabídnete soupeři možnost zahrát znovu poslední tahy.SoukromýPravděpodobně z toho důvodu, že to bylo staženo.ProměněníProtokol:PyChess - Přípojit k internetovým šachůmPyChess - Internetové šachy: FICSPyChess Game DatabázeOkno s informacemiDatabáze PyChessPyChess ztratil spojení se strojem, pravděpodobně spadl. Můžete se pokusit o spuštění nové hry se strojem, nebo zkusit hrát proti jinému.PyChess.py:QdámaMožnost tahu dámouUkončit PyChessRVz_dátNáhodnéRychleRychlovka: 15 min + 10 s/tahHodnocenoHodnocená hraHodnoceníPřijímá se počet hráčůOdstranit symbolyPožádat o pokračováníPoslat znovuPoslat %s znovu?Obnovit výchozí barvyVýsledekPokračovatvěžMožnost tahu věžíKoloKolo:Simultánní partieSRPři_hlásit sePostihyUložitUložit hruUl_ožit hru jako...Uložit pouze _vlastní hryUložit hodnoty _vyhodnocení stroje provádějícího rozborUložit _spotřebovaný čas na tahUložit soubory do:Uložit tahy před zavřením?Uložit nynější hru před jejím zavřením?Uložená hraVýsledekHledat:Graf hledáníŽádost obnovenaVybrat cestu k tabulkám od GaviotyVybrat cestu pro automatické uloženíVybrat soubor s knihouVybrat strojVyberte zvukový soubor...Vyberte hru, již chcete uložit:Vybrat pracovní adresářPoslat výzvuOdeslat všechna hledáníOdeslat žádostZástupce službyNastavení prostředíNastavit postaveníSdílet hru_Ukázat souřadniceMá_lo času:ZvolatZobrazit konzoluUkázat _rozhovorUkázat _zajmuté figurkyUkázat časy uplynulých tahůUkázat hodnoty vyhodnoceníUkázat rady při spuštěníShredderLinuxChessZamíchatStrana na tahu_PanelyJednoduchá šachová poziceStránkaServer:SittuyinSittuyin: http://en.wikipedia.org/wiki/SittuyinPromiňte '%s' je již přihlášenZvukové souboryŠpio_nážní režimStrávenoStandardníStandardní:Začít soukromý chatStavO tah zpětO tah vpředLoupežnické šachyTTDTMTýmový účetNabídka přerušeníNabídka odloženíAnalyzátor poběží na pozadí a bude prováděn rozbor hry. Je to nutné pro to, aby pracoval poradní režimTlačítko řetězu je vypnuto, protože jste přihlášen jako host. Hosté nemohou poskytovat hodnocení a tlačítko řetězu nemá žádný účinek, když není žádné hodnocení, se kterým by se dala spojit soupeřova sílaPanel pro rozhovor vám během hry umožňuje psát si se soupeřem za předpokladu, že má druhá strana o to být ve styku zájem.Hodiny ještě neběží.Panel pro poznámky se bude pokoušet o rozbor a výklad zahraných tahůSpojení bylo přerušeno - obdržena zpráva "konec souboru"Adresář, ze kterého bude stroj spouštěn.Zobrazené jméno prvního lidského hráče, například Jan.Zobrazené jméno hostujícího hráče, například Marie.Nabídka remízyTabulka koncovky ukáže přesný rozbor, když je na hrací desce několik figurek.Stroj %s hlásí chybu:Panel s výstupem stroje ukazuje myšlenkový výstup šachových strojů (počítačoví hráči) během hryZadané heslo bylo neplatné. Pokud jste zapomněl své heslo, jděte na stránky http://www.freechess.org/password a požádejte o nové, které bude zasláno elektronickou poštou.Chyba byla: %sSoubor již existuje '%s'. Pokud jej nahradíte, jeho obsah bude přepsán.Volání vlajkyHru #%s nelze nahrát, protože se při zpracování souboru FEN vyskytla chybaHru nelze nahrát z důvodu chyby při zpracování FENHru nelze přečíst do konce z důvodu chyby při zpracování tahu %(moveno)s '%(notation)s'.Hra skočila remízouHra byla přerušenaHra byla odloženaHra byla zabitaHra je pozastavenaPanel s radami bude poskytovat rady počítače během každé fáze hryOpačný analyzátor bude provádět rozbor hry, když bude váš soupeř na tahu. Je to nutné pro to, aby pracoval špionážní režimTah se nezdařil protože %s.Herní list zajišťuje sledování hráčových tahů a dovoluje pohyb skrze průběh hryNabídka výměny stranKniha zahájení se vás během zahajovací fáze hry pokusí podněcovat ukazováním šachovými mistry nejhranějších tahů.Nabídka pozastaveníDůvod je neznámýVzdání seNabídka pokračováníPanel s výsledky se pokouší o vyhodnocování pozic a ukazuje vám obrazec znázorňující postup hryNabídka vzetí zpětThébskýMotivyJe tu %d hra s neuloženými tahy.Jsou tu %d hry s neuloženými tahy.Je tu %d her s neuloženými tahy.S tímto spustitelným souborem je něco v nepořádkuTuto hru lze automaticky přerušit beze ztráty hodnocení, protože ještě nebyly provedeny dva tahyTuto hru nelze odložit, protože jeden nebo oba dva hráči jsou hostyToto je pokračování přerušené hryTato volba není použitelná, protože vyzýváte hráčeTato volba není dostupná, protože vyzýváte hostaRozbor hrozby od %sTři šachyČasKontrola času:Časová tíseňRada dneRada dnePro hru na Celé obrazovce stačí stisknout F11. Pro přechod zpět opět stiskněte F11.Pro uložení hry zvolte v nabídce Hra -> Uložit hru jako. Napište název souboru a vyberte, kam se má hra uložit. Dole zvolte typ přípony souboru a stiskněte Uložit.Tolerance:Ředitel turnajePřeklad PyChessTypNapište nebo vložte hru PGN nebo polohy FEN zdeUNelze přijmout %sNelze uložit do nastaveného souboru. Uložit nynější hru před jejím zavřením?Nelze uložit do nastaveného souboru. Uložit hry před zavřením?Nejasná poziceNepopsaný panelZpětZpět o jeden krokZpět o dva krokyOdinstalovatNeznáméNeoficiální kanál %dNehodnocenýNeregistrovanýBez časového omezeníObráceno dolůPoužít _analyzátorPoužít _opačný analyzátorPoužít _místní tabulkové bázePoužít i_nternetové databáze tabulekPoužít analyzátor:Použít formát názvu:Použít _knihu zahájeníVarianta vyvinutá Kaiem Laskosem: http://talkchess.com/forum/viewtopic.php?t=40990Práh pro vytvoření poznámky k obměně v centipěšácích:W EloWFMWGMWIMČekatNepodařilo se uložit '%(uri)s', protože PyChess nezná formát '%(ending)s'.VítejteKdyž je toto tlačítko v zamknutém stavu, vztah mezi silou soupeře a vlastní herní silou bude uložen, když a) se změnilo vaše hodnocení pro hledanou hru. b) změníte variantu nebo druh řízení času.BílýBílý O-OBílý O-O-OBílý má novou figurku na: %sBílý má poněkud stísněnou poziciBílý má mírně stísněnou poziciBílý by měl provést útok pěšáků na levém křídleBílý by měl provést útok pěšáků na pravém křídleBílý:VariantyZástupný hradZamíchání zástupným hrademVýhraVýhra po dání šachu třikrátS útokemDámské mistrovství FIDEVelmistryněMezinárodní mistryněPracovní adresář:Rok, měsíc, den: #y, #m, #dVyNyní jste přihlášen jako host. Host nemůže hrát hodnocené hry a proto nemůže hrát tolik typů z nabízených utkání jako registrovaný uživatel. Pro zaregistrování účtu jděte na http://www.freechess.org/Register/index.html.Vyzval jste svého soupeře k tahuMůžete si pro hru proti počítači vybrat z dvaceti různých obtížností.Můžete hrát šachy posloucháním zvuků hry. Kvůli tomu jděte do Nastavení -> Nastavení -> karta Zvuk, povolte Použít zvuky v PyChess a vyberte zvuky, jimž dáváte přednost.Novou hru můžete začít přes nabídku Hra -> Nová hra. V okně pro novou hru můžete vybrat Hráči, Řízení času a Šachové varianty.Nemůžete hrát hodnocené hry, protože šachové hodiny jsou vypnuty Nemůžete hrát hodnocené hry, protože jste přihlášen jako hostNemůžete vybrat žádnou variantu, protože šachové hodiny jsou vypnuty Nemůžete měnit barvy během hry.Nemáte dostatečná oprávnění pro uložení souboru. Ujistěte se, prosím, že jste zadal správnou cestu, a zkuste to znovu.Byl jste odhlášen, protože jste byl nečinný více jak 60 minutJeště jste nezačal žádný rozhovorMusíte zapnout kibicování, abyste zde viděl obě zprávy.Pokusil jste se vzít zpět příliš mnoho tahů.Lze vytvořit jen 3 žádosti v tutéž dobu. Pokud chcete přidat novou žádost, musíte smazat své nyní účinné žádosti. Smazat žádosti?Poslal jste nabídku na remízuPoslal jste nabídku na pozastaveníPoslal jste nabídku na pokračováníPoslal jste nabídku na přerušeníPoslal jste nabídku na odloženíPoslal jste nabídku na vzetí zpětVáš soupeř požaduje, abyste si pospíšil!Váš soupeř požádal o ukončení hry. Pokud tuto nabídku přijmete, hra se skončí beze změny hodnocení.Váš soupeř požádal o odložení hry. Pokud tuto nabídku přijmete, hra bude odložena a vy v ní můžete pokračovat později (až váš soupeř bude připojen k internetu a až budou oba hráči souhlasit s pokračováním).Váš soupeř požádal o pozastavení hry. Pokud tuto nabídku přijmete, herní hodiny budou zastaveny tak dlouho, až budou oba hráči souhlasit s pokračováním ve hře.Váš soupeř požádal o pokračování ve hře. Pokud tuto nabídku přijmete, herní hodiny budou budou opět spuštěny. Bude se pokračovat od toho časového okamžiku, kdy se přestalo.Váš soupeř požádal o to, aby se poslední %s tah(y) vzaly zpátky. Pokud tuto nabídku přijmete, hra bude pokračovat z dřívější pozice.Váš soupeř nabídl remízu.Váš soupeř nabídl remízu. Pokud tuto nabídku přijmete, hra se skončí s výsledkem 1/2 k 1/2.Váš soupeř má ještě zbytek hracího času.Váš soupeř musí souhlasit s přerušením hry, protože byly provedeny dva nebo více tahůZdá se, že váš soupeř změnil názor.Váš soupeř chce hru ukončit.Váš soupeř chce hru odložit.Váš soupeř chce přestávku ve hře.Váš soupeř chce pokračovat ve hře.Váš soupeř chce vrátit zpět %s tah(y).Nastavení vašeho panelu bylo nastaveno znovu na výchozí. Pokud se tento problém bude opakovat, měl byste jej nahlásit vývojářůmVaše žádosti byly odstraněnyVaše síla:Vynucený tah_PříjmoutČinn_osti_Rozebrat hru_Automaticky uložit skončené hry_Černý hráč:_Vítězství v čase_Vyprázdnit vyhledané nabídky ke hře_Kopírovat FEN_Kopírovat PGN_OdmítnoutÚp_ravyS_troje_Vyvést postavení_Celá obrazovka_HraSeznam h_er_ObecnéNápo_věda_Skrýt panely, když je otevřena pouze jedna hraPora_dní režim_Rady_Neplatný tah:Nah_rát hru_Odhlásit seP_rohlížeč záznamůJméno_Nová hra_DalšíPozorované tah_y:_Soupeř:_Heslo:_Hrát běžné šachySeznam _hráčů_PředchozíNah_radit_Otočit šachovnici_Uložit %d hru_Uložit %d hry_Uložit %d her_Uložit %d dokumentů_Uložit hruŽá_dosti/Výzvy_Ukázat postranní panely_ZvukySpustit hru_Bez omezení_Použít hlavní zavírací tlačítko programu [x] k zavření všech herPo_užívat zvuky v PyChess_Pohled_Bílý hráč:_Vaše barva:aa hosté nemohou hrát hodnocené hrya v FICS nelze hodnotit žádné hry bez šachových hodina v FICS lze hry bez šachových hodin hrát jen podle běžných pravidel.Vyzvat svého soupeře k tahuČernýposunuje %(piece)s blíže k nepřátelskému králi: %(cord)sjde pěšcem dopředu blíže k zadní řadě: %sŽádat vítězství v časezajímá figurkuudělal rošádubrání %sposunuje %(piece)s: %(cord)sjde pěšcem dopředu: %sremízyvyměňuje figurkugnuchess:polootevřenéhttp://brainking.com/en/GameRules?tp=2 * Umístění figurek na prvním a osmém řádku je náhodné * Král je v rohu po pravici * Střelci musí začít na polích opačné barvy * Začáteční poloha černého je obdržena otočením začáteční polohy bílého o 180 stupňu okolo středu šachovnice * Žádná rošádahttp://cs.wikipedia.org/wiki/%C5%A0achyhttp://en.wikipedia.org/wiki/Chess960 FICS wild/fr: http://www.freechess.org/Help/HelpFiles/wild.htmlhttp://cs.wikipedia.org/wiki/Pravidla_%C5%A1ach%C5%AFzlepšuje královu bezpečnostv postavení %(x)s%(y)sv postaveních %(x)s%(y)stlačí na %sneplatná povýšená figuramatyminpřesunuje věž do otevřeného postavenípřesunuje věž do polootevřeného postavenípřesunuje střelce do fianchetto: %snehraje Nabídnout remízuNabídnout pozastaveníNabídnout vzetí zpětNabídnout přerušeníNabídnout odloženíNabídnout pokračováníNabídnout změnu stranCelková doba připojenítiskne nepřítele %(oppiece)s na %(piece)s na %(cord)sumísťuje %(piece)s aktivněji: %(cord)spovyšuje pěšáka na %sPovyšovací tah bez povýšení figurky je nesprávnýdává soupeři šachrozsah hodnocení nynívyprošťuje %sVzdátkolo %sobětuje figurkusmírně zlepšuje královu bezpečnostbere zpět figurkuZaujatá pozice (%s) je neplatnákoncová šňůra (%s) je nesprávnáTah vyžaduje figurku a pozicihrozí sebráním figurky pomocí %sk automatickému přijetík ručnímu přijetíuciproti.BílýOkno 1wine není nainstalovánoxboardxboard nocastle: http://home.hccnet.nl/h.g.muller/engine-intf.html#8 FICS wild/2: http://www.freechess.org/Help/HelpFiles/wild.html * Figurky umístěny náhodně za pěšci * Žádná rošáda * Rozmístění černých figurek zrcadlí rozmístění bílých figurekxboard wildcastle http://home.hccnet.nl/h.g.muller/engine-intf.html#8 FICS wild/0: http://www.freechess.org/Help/HelpFiles/wild.html * Bílý má na začátku typické rozmístění. * Černé figurky jsou ty samé s výjimkou v tom, že král a královna jsou otočeni, * takže se nenachází na stejných místech, jak je to u bílého krále a jeho královny. * Rošáda se dělá podobně, jako je tomu u normálních šachů: * o-o-o naznačuje velkou rošádu a o-o malou rošádu.xboard wildcastle http://home.hccnet.nl/h.g.muller/engine-intf.html#8 FICS wild/1: http://www.freechess.org/Help/HelpFiles/wild.html * V této variantě mají obě strany tytéž figurky, jaké jsou v normálních šachách. * Bílý král začíná na d1 nebo e1 a černý král začíná na d8 nebo e8, * a věže jsou na jejich obvyklých místech. * Střelci jsou vždy na opačných barvách. * Při dbaní tohoto zadání jsou umístění figur na jejich první řadě náhodná. * Rošáda se dělá podobně jako v normálních šachách: * o-o-o znamená velkou rošádu a o-o malou rošádu.pychess-0.12.2/lang/pt_BR/0000755000175000017470000000000012653231274015504 5ustar tamasusers00000000000000pychess-0.12.2/lang/pt_BR/LC_MESSAGES/0000755000175000017470000000000012653231274017271 5ustar tamasusers00000000000000pychess-0.12.2/lang/pt_BR/LC_MESSAGES/pychess.po0000644000175000017470000031745612653216202021321 0ustar tamasusers00000000000000# SOME DESCRIPTIVE TITLE. # Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER # This file is distributed under the same license as the pychess package. # # Translators: # Alexandro Casanova , 2013-2014 # Fabio Ribeiro , 2015 # Leandro Alves Vianna , 2014 # Leandro Cristante de Oliveira , 2014 # Leonardo Gregianin , 2014-2015 # Alexandro Casanova , 2012 msgid "" msgstr "" "Project-Id-Version: pychess\n" "Report-Msgid-Bugs-To: \n" "POT-Creation-Date: 2016-01-27 13:28+0100\n" "PO-Revision-Date: 2016-01-28 08:56+0000\n" "Last-Translator: slav0nic \n" "Language-Team: Portuguese (Brazil) (http://www.transifex.com/gbtami/pychess/language/pt_BR/)\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" "Language: pt_BR\n" "Plural-Forms: nplurals=2; plural=(n > 1);\n" # "Plural-Forms: nplurals=INTEGER; plural=EXPRESSION;\n" #: glade/analyze_game.glade:22 msgid "Analyze game" msgstr "Analisar jogo" #: glade/analyze_game.glade:87 msgid "Use analyzer:" msgstr "Usar analisador" #: glade/analyze_game.glade:122 glade/PyChess.glade:2054 msgid "Maximum analysis time in seconds:" msgstr "O tempo máximo de análise em segundos:" #: glade/analyze_game.glade:163 msgid "" "If the analyzer finds a move where the evaluation difference (the difference" " between the evaluation for the move it thinks is the best move and the " "evaluation for the move made in the game) exceeds this value, it will add an" " annotation for that move (consisting of the engine's Principal Variation " "for the move) to the Annotation panel" msgstr "" #: glade/analyze_game.glade:164 msgid "Variation annotation creation threshold in centipawns:" msgstr "" #: glade/analyze_game.glade:198 msgid "Analyze from current position" msgstr "Analisar a partir da posição atual" #: glade/analyze_game.glade:214 msgid "Add threatening variation lines " msgstr "" #: glade/analyze_game.glade:229 glade/PyChess.glade:1459 msgid "Colorize analyzed moves" msgstr "Colorir movimentos analisados" #: glade/analyze_game.glade:244 glade/PyChess.glade:1495 msgid "Show evaluation values" msgstr "Mostrar valores de avaliação" #: glade/discovererDialog.glade:18 msgid "PyChess is discovering your engines. Please wait." msgstr "PyChess está verificando seus mecanismos de xadrez. Por favor espere." #: glade/discovererDialog.glade:77 msgid "PyChess.py:" msgstr "PyChess.py:" #: glade/discovererDialog.glade:89 msgid "ShredderLinuxChess:" msgstr "ShredderLinuxChess:" #: glade/discovererDialog.glade:101 msgid "gnuchess:" msgstr "gnuchess:" #: glade/fics_logon.glade:7 msgid "PyChess - Connect to Internet Chess" msgstr "PyChess - Conecte ao Internet Chess" #: glade/fics_logon.glade:47 msgid "Connect to the Free Online Chess Server" msgstr "Conectar-se ao Free Online Chess Server" #: glade/fics_logon.glade:129 glade/taskers.glade:394 msgid "_Password:" msgstr "Sen_ha:" #: glade/fics_logon.glade:143 msgid "_Name:" msgstr "_Nome:" #: glade/fics_logon.glade:191 msgid "Log on as _Guest" msgstr "Conectar-s_e como Convidado" #: glade/fics_logon.glade:227 msgid "Host:" msgstr "" #: glade/fics_logon.glade:259 msgid "Po_rts:" msgstr "Po_rtas:" #: glade/fics_logon.glade:271 msgid "Auto login on startup" msgstr "" #: glade/fics_logon.glade:385 msgid "S_ign up" msgstr "Ca_dastre-se" #: glade/fics_lounge.glade:35 msgid "Challenge: " msgstr "Desafio: " #: glade/fics_lounge.glade:97 msgid "Send Challenge" msgstr "Enviar desafio" #: glade/fics_lounge.glade:133 msgid "Challenge:" msgstr "Desafiar:" #: glade/fics_lounge.glade:327 glade/fics_lounge.glade:2078 msgid "Lightning:" msgstr "Relâmpago:" #: glade/fics_lounge.glade:351 glade/fics_lounge.glade:2102 msgid "Standard:" msgstr "Padrão:" #: glade/fics_lounge.glade:375 glade/fics_lounge.glade:2126 msgid "Blitz:" msgstr "Blitz:" #: glade/fics_lounge.glade:400 msgid "2 min, Fischer Random, Black" msgstr "2 min, Xadrez Aleatório de Fischer, Pretas" #: glade/fics_lounge.glade:422 msgid "10 min + 6 sec/move, White" msgstr "10min + 6s/lance, Brancas" #: glade/fics_lounge.glade:444 msgid "5 min" msgstr "5 min" #: glade/fics_lounge.glade:480 msgid "Edit Seek" msgstr "Editar busca" #: glade/fics_lounge.glade:584 lib/pychess/ic/ICLounge.py:2208 #: lib/pychess/ic/__init__.py:101 lib/pychess/Utils/GameModel.py:206 msgid "Untimed" msgstr "Sem relógio" #: glade/fics_lounge.glade:637 msgid "Minutes: " msgstr "Minutos: " #: glade/fics_lounge.glade:665 msgid " Gain: " msgstr " Incremento: " #: glade/fics_lounge.glade:703 msgid "Time control: " msgstr "Controle de tempo: " #: glade/fics_lounge.glade:716 lib/pychess/ic/FICSObjects.py:56 #: lib/pychess/ic/ICLounge.py:1137 lib/pychess/ic/ICLounge.py:2208 #: lib/pychess/ic/__init__.py:99 msgid "Standard" msgstr "Padrão" #: glade/fics_lounge.glade:757 glade/newInOut.glade:633 msgid "Time Control" msgstr "Controle de tempo" #: glade/fics_lounge.glade:814 glade/fics_lounge.glade:1346 msgid "Don't care" msgstr "Qualquer um" #: glade/fics_lounge.glade:879 msgid "Your strength: " msgstr "Sua força: " #: glade/fics_lounge.glade:921 msgid "(Blitz)" msgstr "(Blitz)" #: glade/fics_lounge.glade:951 msgid "Opponent's strength: " msgstr "Força do adversário: " #: glade/fics_lounge.glade:1055 msgid "" "When this button is in the \"locked\" state, the relationship\n" "between \"Opponent's strength\" and \"Your strength\" will be\n" "preserved when \n" "a) your rating for the type of game sought has changed\n" "b) you change the variant or the time control" msgstr "Quando este botão estiver no estado \"bloqueado\", a relação\nentre \"a força do adversário\" e \"a sua força\" será\npreservada quando \na) sua classificação para o tipo de jogo procurado for alterada\nb) você alterar a variante ou o controle de tempo" #: glade/fics_lounge.glade:1095 msgid "Center:" msgstr "Centro:" #: glade/fics_lounge.glade:1134 msgid "1200" msgstr "1200" #: glade/fics_lounge.glade:1188 msgid "Tolerance:" msgstr "Tolerância:" #: glade/fics_lounge.glade:1243 lib/pychess/ic/ICLounge.py:2452 msgid "Hide" msgstr "Ocultar" #: glade/fics_lounge.glade:1289 msgid "Opponent Strength" msgstr "Força do adversário" #: glade/fics_lounge.glade:1386 lib/pychess/Database/gamelist.py:40 #: lib/pychess/ic/ICLounge.py:1357 lib/pychess/ic/ICLounge.py:1557 #: lib/pychess/ic/ICLounge.py:2108 lib/pychess/Utils/repr.py:10 #: lib/pychess/widgets/ChessClock.py:40 #: lib/pychess/widgets/TaskerManager.py:153 msgid "White" msgstr "Brancas" #: glade/fics_lounge.glade:1414 lib/pychess/Database/gamelist.py:40 #: lib/pychess/ic/ICLounge.py:1358 lib/pychess/ic/ICLounge.py:1558 #: lib/pychess/ic/ICLounge.py:2110 lib/pychess/Utils/repr.py:10 #: lib/pychess/widgets/ChessClock.py:40 #: lib/pychess/widgets/TaskerManager.py:154 msgid "Black" msgstr "Pretas" #: glade/fics_lounge.glade:1453 msgid "Your Color" msgstr "Sua cor" #: glade/fics_lounge.glade:1512 msgid "Play normal chess rules" msgstr "Jogar com as regras normais do xadrez" #: glade/fics_lounge.glade:1552 msgid "Play" msgstr "Jogar" #: glade/fics_lounge.glade:1618 glade/newInOut.glade:833 msgid "Chess Variant" msgstr "Variantes do xadrez" #: glade/fics_lounge.glade:1676 msgid "Rated game" msgstr "Jogo pontuado" #: glade/fics_lounge.glade:1692 msgid "Manually accept opponent" msgstr "Aceitar adversário manualmente" #: glade/fics_lounge.glade:1722 msgid "Options" msgstr "Opções" #: glade/fics_lounge.glade:1750 msgid "PyChess - Internet Chess: FICS" msgstr "PyChess - Xadrez pela Internet: FICS" #: glade/fics_lounge.glade:1823 msgid "_Clear Seeks" msgstr "Limpar Bus_cas" #: glade/fics_lounge.glade:1847 msgid "_Accept" msgstr "_Aceitar" #: glade/fics_lounge.glade:1871 msgid "_Decline" msgstr "_Rejeitar" #: glade/fics_lounge.glade:2151 msgid "2 min, Fischer Random, 1800↓, Black" msgstr "2 min, Xadrez Aleatório de Fischer, 1800↓, Pretas" #: glade/fics_lounge.glade:2172 msgid "10 min + 6 sec/move, 1400↑, White" msgstr "10min + 6s/lance, 1400↑, Brancas" #: glade/fics_lounge.glade:2193 msgid "5 min, 1200-1800, Manual" msgstr "5 min, 1200-1800, Manual" #: glade/fics_lounge.glade:2247 msgid "Send all seeks" msgstr "Enviar todas as buscas" #: glade/fics_lounge.glade:2301 msgid "Send seek" msgstr "Enviar busca" #: glade/fics_lounge.glade:2337 msgid "Create Seek" msgstr "Criar busca" #: glade/fics_lounge.glade:2353 msgid "_Seeks / Challenges" msgstr "_Buscas / Desafios" #: glade/fics_lounge.glade:2374 lib/pychess/ic/ICLounge.py:472 #: lib/pychess/ic/ICLounge.py:670 lib/pychess/ic/ICLounge.py:1357 #: lib/pychess/ic/ICLounge.py:1358 msgid "Rating" msgstr "Rating" #: glade/fics_lounge.glade:2399 msgid "Time" msgstr "Tempo" #: glade/fics_lounge.glade:2419 msgid "Seek _Graph" msgstr "Buscar _gráfico" #: glade/fics_lounge.glade:2444 msgid "0 Players Ready" msgstr "0 jogadores prontos" #: glade/fics_lounge.glade:2496 msgid "Challenge" msgstr "Desafiar" #: glade/fics_lounge.glade:2549 glade/fics_lounge.glade:2735 msgid "Observe" msgstr "Observar" #: glade/fics_lounge.glade:2602 msgid "Start Private Chat" msgstr "Começar conversa privada" #: glade/fics_lounge.glade:2659 msgid "_Player List" msgstr "Lista de _Jogadores" #: glade/fics_lounge.glade:2792 msgid "_Game List" msgstr "Lista de _Jogos" #: glade/fics_lounge.glade:2847 msgid "_My games" msgstr "" #: glade/fics_lounge.glade:2904 glade/PyChess.glade:841 msgid "Offer _Resume" msgstr "Oferecer _Reinício" #: glade/fics_lounge.glade:2962 glade/PyChess.glade:880 msgid "R_esign" msgstr "Aban_donar" #: glade/fics_lounge.glade:3006 glade/PyChess.glade:820 msgid "Offer _Draw" msgstr "Oferecer _empate" #: glade/fics_lounge.glade:3050 msgid "Offer A_bort" msgstr "Oferecer _Abortar partida" #: glade/fics_lounge.glade:3107 msgid "Pre_view" msgstr "Pre_visão" #: glade/fics_lounge.glade:3151 msgid "Examine" msgstr "" #: glade/fics_lounge.glade:3208 msgid "_Archived" msgstr "" #: glade/fics_lounge.glade:3313 msgid "News" msgstr "Notícias" #: glade/fics_lounge.glade:3345 msgid "Show Console" msgstr "Mostrar Console" #: glade/fics_lounge.glade:3359 msgid "Show _Chat" msgstr "Mostrar _Conversa" #: glade/fics_lounge.glade:3373 msgid "_Log Off" msgstr "Des_conectar" #: glade/fics_lounge.glade:3393 msgid "Tools" msgstr "Ferramentas" #: glade/fics_lounge.glade:3428 msgid "Asymmetric Random " msgstr "" #: glade/findbar.glade:6 msgid "window1" msgstr "janela1" #: glade/findbar.glade:21 msgid "0 of 0" msgstr "0 de 0" #: glade/findbar.glade:66 msgid "Search:" msgstr "Pesquisar:" #: glade/findbar.glade:134 msgid "_Previous" msgstr "_Anterior" #: glade/findbar.glade:192 msgid "_Next" msgstr "_Próximo" #: glade/newInOut.glade:45 lib/pychess/widgets/newGameDialog.py:445 msgid "New Game" msgstr "Novo Jogo" #: glade/newInOut.glade:108 msgid "_Start Game" msgstr "_Iniciar Jogo" #: glade/newInOut.glade:130 msgid "Copy FEN" msgstr "" #: glade/newInOut.glade:143 msgid "Clear" msgstr "" #: glade/newInOut.glade:156 msgid "Paste FEN" msgstr "" #: glade/newInOut.glade:257 msgid "_Black player:" msgstr "Jogador das _Negras:" #: glade/newInOut.glade:274 msgid "_White player:" msgstr "Jogador das _Brancas:" #: glade/newInOut.glade:385 msgid "Players" msgstr "Jogadores" #: glade/newInOut.glade:436 msgid "_Untimed" msgstr "Sem _relógio" #: glade/newInOut.glade:475 msgid "Blitz: 5 min" msgstr "" #: glade/newInOut.glade:526 msgid "Rapid: 15 min + 10 sec/move" msgstr "" #: glade/newInOut.glade:575 msgid "Normal: 40 min + 15 sec/move" msgstr "" #: glade/newInOut.glade:684 msgid "_Play Normal chess" msgstr "_Jogar pelas regras normais" #: glade/newInOut.glade:724 msgid "Play Fischer Random chess" msgstr "Jogar Xadrez Aleatório Fischer" #: glade/newInOut.glade:774 msgid "Play Losers chess" msgstr "Jogar xadrez dos perdedores" #: glade/newInOut.glade:919 msgid "Open Game" msgstr "Abrir Jogo" #: glade/newInOut.glade:1162 msgid "Initial Position" msgstr "Posição Inicial" #: glade/newInOut.glade:1219 msgid "Enter Game Notation" msgstr "Entrar com Notação de Jogo" #: glade/newInOut.glade:1314 msgid "Halfmove clock" msgstr "" #: glade/newInOut.glade:1327 msgid "En passant line" msgstr "" #: glade/newInOut.glade:1339 msgid "Side to move" msgstr "" #: glade/newInOut.glade:1351 msgid "Move number" msgstr "" #: glade/newInOut.glade:1361 msgid "Black O-O" msgstr "" #: glade/newInOut.glade:1375 msgid "Black O-O-O" msgstr "" #: glade/newInOut.glade:1389 msgid "White O-O-O" msgstr "" #: glade/newInOut.glade:1403 msgid "White O-O" msgstr "" #: glade/promotion.glade:7 msgid "Promotion" msgstr "Promoção" #: glade/promotion.glade:49 lib/pychess/Utils/repr.py:12 msgid "Queen" msgstr "Dama" #: glade/promotion.glade:95 lib/pychess/Utils/repr.py:12 msgid "Rook" msgstr "Torre" #: glade/promotion.glade:141 lib/pychess/Utils/repr.py:12 msgid "Bishop" msgstr "Bispo" #: glade/promotion.glade:187 lib/pychess/Utils/repr.py:12 msgid "Knight" msgstr "Cavalo" #: glade/promotion.glade:233 lib/pychess/Utils/repr.py:12 msgid "King" msgstr "Rei" #: glade/promotion.glade:265 msgid "Promote pawn to what?" msgstr "Promover Peão a que?" #: glade/PyChess.glade:9 msgid "Chess client" msgstr "" #: glade/PyChess.glade:44 msgid "Game information" msgstr "Informações do jogo" #: glade/PyChess.glade:164 msgid "Event:" msgstr "Evento:" #: glade/PyChess.glade:178 msgid "Site:" msgstr "Site:" #: glade/PyChess.glade:204 msgid "Round:" msgstr "Rodada:" #: glade/PyChess.glade:237 msgid "White:" msgstr "Brancas:" #: glade/PyChess.glade:249 msgid "Black:" msgstr "Pretas" #: glade/PyChess.glade:302 msgid "Game data" msgstr "Dados do Jogo" #: glade/PyChess.glade:357 msgid "Date of game" msgstr "Data do Jogo" #: glade/PyChess.glade:495 msgid "_Game" msgstr "_Jogo" #: glade/PyChess.glade:502 msgid "_New Game" msgstr "_Novo Jogo" #: glade/PyChess.glade:515 msgid "Play _Internet Chess" msgstr "Jogar Xadrez na _Internet" #: glade/PyChess.glade:534 msgid "_Load Game" msgstr "Carr_egar jogo" #: glade/PyChess.glade:550 msgid "Load _Recent Game" msgstr "Carregar _Jogo Recente" #: glade/PyChess.glade:558 msgid "Open _Database" msgstr "Abrir _Base de Dados" #: glade/PyChess.glade:569 lib/pychess/widgets/newGameDialog.py:615 msgid "Setup Position" msgstr "Ajustar Posição" #: glade/PyChess.glade:579 msgid "Enter Game _Notation" msgstr "_Digite a Notação do Jogo" #: glade/PyChess.glade:592 msgid "_Save Game" msgstr "_Salvar Jogo" #: glade/PyChess.glade:606 msgid "Save Game _As" msgstr "Salvar Jogo _Como" #: glade/PyChess.glade:624 msgid "Share Game" msgstr "" #: glade/PyChess.glade:630 msgid "_Export Position" msgstr "_Exportar Posição" #: glade/PyChess.glade:644 msgid "_Analyze Game" msgstr "_Analisar partida" #: glade/PyChess.glade:678 msgid "Player _Rating" msgstr "_Rating do Jogador" #: glade/PyChess.glade:723 msgid "_Edit" msgstr "_Editar" #: glade/PyChess.glade:734 msgid "_Copy PGN" msgstr "" #: glade/PyChess.glade:746 msgid "_Copy FEN" msgstr "" #: glade/PyChess.glade:763 msgid "_Engines" msgstr "_Engines" #: glade/PyChess.glade:789 msgid "_Actions" msgstr "_Ações" #: glade/PyChess.glade:800 msgid "Offer _Abort" msgstr "Oferecer para _Abortar a Partida" #: glade/PyChess.glade:810 msgid "Offer Ad_journment" msgstr "Oferecer Ad_iamento" #: glade/PyChess.glade:831 msgid "Offer _Pause" msgstr "Oferecer _Pausa" #: glade/PyChess.glade:847 msgid "Offer _Undo" msgstr "Pedir para Vo_ltar" #: glade/PyChess.glade:870 msgid "_Call Flag" msgstr "_Acusar Seta" #: glade/PyChess.glade:890 msgid "Ask to _Move" msgstr "Pedir que _Mova" #: glade/PyChess.glade:905 msgid "Auto Call _Flag" msgstr "Chamar _Bandeira Automaticamente" #: glade/PyChess.glade:918 msgid "_View" msgstr "_Exibir" #: glade/PyChess.glade:925 msgid "_Rotate Board" msgstr "_Girar o Tabuleiro" #: glade/PyChess.glade:939 msgid "_Fullscreen" msgstr "_Tela Cheia" #: glade/PyChess.glade:952 msgid "Leave _Fullscreen" msgstr "Sair da _Tela Cheia" #: glade/PyChess.glade:969 msgid "_Show Sidepanels" msgstr "_Mostrar Painel Lateral" #: glade/PyChess.glade:980 msgid "_Log Viewer" msgstr "_Visualizador de Registros" #: glade/PyChess.glade:997 msgid "_Hint mode" msgstr "Modo _sugestão" #: glade/PyChess.glade:1009 msgid "Sp_y mode" msgstr "Modo es_pião" #: glade/PyChess.glade:1024 msgid "_Help" msgstr "Aj_uda" #: glade/PyChess.glade:1034 msgid "About Chess" msgstr "Sobre o xadrez" #: glade/PyChess.glade:1043 msgid "How to Play" msgstr "Como Jogar" #: glade/PyChess.glade:1052 msgid "Translate PyChess" msgstr "Traduza o PyChess" #: glade/PyChess.glade:1058 msgid "Tip of the Day" msgstr "Dica do dia" #: glade/PyChess.glade:1153 msgid "Default" msgstr "Padrão" #: glade/PyChess.glade:1156 msgid "Knights" msgstr "Cavalos" #: glade/PyChess.glade:1167 lib/pychess/widgets/preferencesDialog.py:349 msgid "Beep" msgstr "Aviso sonoro" #: glade/PyChess.glade:1170 lib/pychess/widgets/preferencesDialog.py:350 msgid "Select sound file..." msgstr "Selecione um arquivo de som..." #: glade/PyChess.glade:1173 lib/pychess/widgets/preferencesDialog.py:348 msgid "No sound" msgstr "Sem som" #: glade/PyChess.glade:1180 msgid "Preferences" msgstr "Preferências" #: glade/PyChess.glade:1218 msgid "The displayed name of the first human player, e.g., John." msgstr "O nome exibido do primeiro jogador humano, por exemplo, João." #: glade/PyChess.glade:1230 msgid "Name of _first human player:" msgstr "Nome do p_rimeiro jogador humano:" #: glade/PyChess.glade:1259 msgid "The displayed name of the guest player, e.g., Mary." msgstr "O nome exibido do jogador convidado, por exemplo, Maria." #: glade/PyChess.glade:1271 msgid "Name of s_econd human player:" msgstr "Nome do s_egundo jogador humano:" #: glade/PyChess.glade:1307 msgid "_Hide tabs when only one game is open" msgstr "Es_conder abas quando houver somente um jogo aberto" #: glade/PyChess.glade:1312 msgid "" "If set, this hides the tab in the top of the playing window, when it is not " "needed." msgstr "Se marcado, oculta a aba no topo da janela do jogo quando não é necessária." #: glade/PyChess.glade:1326 msgid "_Use main app closer [x] to close all games" msgstr "" #: glade/PyChess.glade:1331 msgid "" "If set, clicking on main application window closer first time it closes all " "games." msgstr "" #: glade/PyChess.glade:1345 msgid "Auto _rotate board to current human player" msgstr "A_uto-rotacionar o tabuleiro para o jogador humano atual" #: glade/PyChess.glade:1350 msgid "" "If set, the board will turn after each move, to show the natural view for " "the current player." msgstr "Se marcado, o tabuleiro será rotacionado depois de cada lance, para mostrar a visualização natural do jogador atual." #: glade/PyChess.glade:1364 msgid "Auto _promote to queen" msgstr "" #: glade/PyChess.glade:1369 msgid "If set, pawn promotes to queen without promotion dialog selection." msgstr "" #: glade/PyChess.glade:1383 msgid "Face _to Face display mode" msgstr "_Modo de visualização Face a Face" #: glade/PyChess.glade:1388 msgid "" "If set, the black pieces will be head down, suitable for playing against " "friends on mobile devices." msgstr "Se marcado, as peças negras ficarão de cabeça para baixo, adequado para jogar contra amigos em aparelhos móveis." #: glade/PyChess.glade:1402 msgid "Sho_w cords" msgstr "Mostrar c_oordenadas" #: glade/PyChess.glade:1407 msgid "" "If set, the playing board will display labels and ranks for each chess " "field. These are usable in chess notation." msgstr "Se marcado, o tabuleiro mostrará as coordenadas de cada casa do tabuleiro. É útil para a notação do xadrez." #: glade/PyChess.glade:1421 msgid "Show _captured pieces" msgstr "Mostrar peças _capturadas" #: glade/PyChess.glade:1426 msgid "If set, the captured figurines will be shown next to the board." msgstr "Se definido, as peças capturadas serão mostradas ao lado do tabuleiro." #: glade/PyChess.glade:1440 msgid "Prefer figures in _notation" msgstr "Usar figuras na _notação" #: glade/PyChess.glade:1445 msgid "" "If set, PyChess will use figures to express moved pieces, rather than " "uppercase letters." msgstr "Se marcado, o PyChess utilizará figuras para mostrar as peças movidas, em vez de letras maiúsculas." #: glade/PyChess.glade:1464 msgid "If set, PyChess will colorize suboptimal analyzed moves with red." msgstr "Se definido, PyChess vai colorir os movimentos analisados como inadequados com vermelho." #: glade/PyChess.glade:1477 msgid "Show elapsed move times" msgstr "" #: glade/PyChess.glade:1482 msgid "If set, the elapsed time that a player used for the move is shown." msgstr "Se definido, o tempo decorrido que um jogador usa para cada jogada é mostrado." #: glade/PyChess.glade:1500 msgid "If set, the hint analyzer engine evaluation value is shown." msgstr "" #: glade/PyChess.glade:1526 msgid "General Options" msgstr "" #: glade/PyChess.glade:1560 msgid "F_ull board animation" msgstr "Animação completa do _tabuleiro" #: glade/PyChess.glade:1565 msgid "Animate pieces, board rotation and more. Use this on fast machines." msgstr "Animar peças, rotação do tabuleiro e mais. Use esta opção em computadores rápidos." #: glade/PyChess.glade:1579 msgid "Only animate _moves" msgstr "Animar somente mo_vimentos" #: glade/PyChess.glade:1584 msgid "Only animate piece moves." msgstr "Animar somente o movimento das peças." #: glade/PyChess.glade:1599 msgid "No _animation" msgstr "Sem an_imação" #: glade/PyChess.glade:1604 msgid "Never use animation. Use this on slow machines." msgstr "Nunca utilizar animação. Use isto para computadores lentos." #: glade/PyChess.glade:1632 msgid "Animation" msgstr "Animação" #: glade/PyChess.glade:1651 msgid "_General" msgstr "_Geral" #: glade/PyChess.glade:1692 msgid "Use opening _book" msgstr "Usar _livro de aberturas" #: glade/PyChess.glade:1697 msgid "If set, PyChess will suggest best opening moves on hint panel." msgstr "Se definido, PyChess vai sugerir o melhor movimento de abertura no painel de dicas." #: glade/PyChess.glade:1724 msgid "Polyglot book file:" msgstr "Arquivo de livre Polyglot:" #: glade/PyChess.glade:1768 msgid "Use _local tablebases" msgstr "Usar tablebases _local" #: glade/PyChess.glade:1773 msgid "" "If set, PyChess will show game results for different moves in positions containing 6 or less pieces.\n" "You can download tablebase files from:\n" "http://www.olympuschess.com/egtb/gaviota/" msgstr "Se definido, PyChess irá mostrar os resultados de jogos de movimentos diferentes em posições contendo 6 ou menos peças.\nVocê pode baixar arquivos de tablebase:\nhttp://www.olympuschess.com/egtb/gaviota/" #: glade/PyChess.glade:1803 msgid "Gaviota TB path:" msgstr "Diretório Gaviota TB" #: glade/PyChess.glade:1843 msgid "Use _online tablebases" msgstr "Usar _online tablebases" #: glade/PyChess.glade:1848 msgid "" "If set, PyChess will show game results for different moves in positions containing 6 or less pieces.\n" "It will search positions from http://www.k4it.de/" msgstr "Se definido, PyChess irá mostrar os resultados de jogos de movimentos diferentes em posições contendo 6 ou menos peças.\nEle irá procurar posições de http://www.k4it.de/" #: glade/PyChess.glade:1870 msgid "Opening, endgame" msgstr "Abertura, final de partida" #: glade/PyChess.glade:1904 msgid "Use _analyzer" msgstr "Usar a_nalisador" #: glade/PyChess.glade:1946 msgid "" "The analyzer will run in the background and analyze the game. This is " "necessary for the hint mode to work" msgstr "A engine sera executada em segundo plano e vai analisar o jogo. Necessário para o modo de sugestão funcionar" #: glade/PyChess.glade:1978 msgid "Use _inverted analyzer" msgstr "Usar analisador _inverso" #: glade/PyChess.glade:2020 msgid "" "The inverse analyzer will analyze the game as if your opponent was to move. " "This is necessary for the spy mode to work" msgstr "O analisador inverso sera executado, mostra como seu adversário vai mover. Necessário para o modo espião funcionar" #: glade/PyChess.glade:2096 msgid "Analyzing" msgstr "Analisador" #: glade/PyChess.glade:2118 msgid "_Hints" msgstr "_Dicas" #: glade/PyChess.glade:2263 msgid "Uninstall" msgstr "Desinstalar" #: glade/PyChess.glade:2317 msgid "Ac_tive" msgstr "A_tivo" #: glade/PyChess.glade:2367 msgid "Installed Sidepanels" msgstr "Paineis laterais instalados" #: glade/PyChess.glade:2382 msgid "Side_panels" msgstr "_Painel lateral" #: glade/PyChess.glade:2440 msgid "Light Squares :" msgstr "" #: glade/PyChess.glade:2479 msgid "Dark Squares :" msgstr "" #: glade/PyChess.glade:2515 msgid "Reset Default Colours" msgstr "" #: glade/PyChess.glade:2551 msgid "Board Colours" msgstr "" #: glade/PyChess.glade:2610 msgid "Chess Sets" msgstr "" #: glade/PyChess.glade:2634 msgid "Themes" msgstr "Temas" #: glade/PyChess.glade:2659 msgid "_Use sounds in PyChess" msgstr "_Usar sons no PyChess" #: glade/PyChess.glade:2982 msgid "A player _checks:" msgstr "Um jogador dá _xeque:" #: glade/PyChess.glade:2997 msgid "A player _moves:" msgstr "Um jogador _move:" #: glade/PyChess.glade:3010 msgid "Game is _drawn:" msgstr "O jogo _empata:" #: glade/PyChess.glade:3025 msgid "Game is _lost:" msgstr "O jogo é per_dido:" #: glade/PyChess.glade:3040 msgid "Game is _won:" msgstr "O jogo é _vencido:" #: glade/PyChess.glade:3055 msgid "A player c_aptures:" msgstr "Um jogador _captura:" #: glade/PyChess.glade:3084 msgid "Game is _set-up:" msgstr "O jogo é _iniciado:" #: glade/PyChess.glade:3136 msgid "_Observed moves:" msgstr "Jogo obse_rvado move:" #: glade/PyChess.glade:3151 msgid "Observed _ends:" msgstr "Jogo observado _termina:" #: glade/PyChess.glade:3265 msgid "Short on _time:" msgstr "" #: glade/PyChess.glade:3317 msgid "_Invalid move:" msgstr "Movimento _inválido:" #: glade/PyChess.glade:3369 msgid "Activate alarm when _remaining sec is:" msgstr "" #: glade/PyChess.glade:3416 msgid "Play Sound When..." msgstr "Tocar som quando..." #: glade/PyChess.glade:3438 msgid "_Sounds" msgstr "_Sons" #: glade/PyChess.glade:3463 msgid "_Auto save finished games" msgstr "" #: glade/PyChess.glade:3497 msgid "Save files to:" msgstr "" #: glade/PyChess.glade:3525 msgid "Use name format:" msgstr "" #: glade/PyChess.glade:3569 msgid "Names: #n1, #n2" msgstr "" #: glade/PyChess.glade:3582 msgid "Year, month, day: #y, #m, #d" msgstr "" #: glade/PyChess.glade:3619 msgid "Save elapsed move _times" msgstr "" #: glade/PyChess.glade:3644 msgid "Save analyzing engine _evaluation values" msgstr "" #: glade/PyChess.glade:3669 msgid "Save _own games only" msgstr "" #: glade/PyChess.glade:3698 msgid "Save" msgstr "" #: glade/PyChess.glade:3728 msgid "uci" msgstr "uci" #: glade/PyChess.glade:3731 msgid "xboard" msgstr "xboard" #: glade/PyChess.glade:3739 msgid "Manage engines" msgstr "Gerenciar engines" #: glade/PyChess.glade:3837 msgid "Command:" msgstr "Comando:" #: glade/PyChess.glade:3851 msgid "Protocol:" msgstr "Protocolo:" #: glade/PyChess.glade:3865 msgid "Parameters:" msgstr "Parâmetros:" #: glade/PyChess.glade:3878 msgid "Command line parameters needed by the engine." msgstr "Parâmetros de linha de comando necessária para a engine." #: glade/PyChess.glade:3903 msgid "" "Engines use uci or xboard communication protocol to talk to the GUI.\n" "If it can use both you can set here which one you like." msgstr "Engines utilizam o protocolo de comunicação uci ou xboard para falar com a GUI.\nSe ele pode usar ambos, pode definir aqui o que você gosta." #: glade/PyChess.glade:3929 msgid "Working directory:" msgstr "Diretório de trabalho:" #: glade/PyChess.glade:3942 msgid "The directory where the engine will be started from." msgstr "O diretório a partir de onde a engine será iniciada." #: glade/saveGamesDialog.glade:7 msgid "Quit PyChess" msgstr "Sair do PyChess" #: glade/saveGamesDialog.glade:24 lib/pychess/widgets/ionest.py:424 msgid "Close _without Saving" msgstr "_Fechar sem Salvar" #: glade/saveGamesDialog.glade:83 msgid "_Save %d documents" msgstr "_Salvar %d documentos" #: glade/saveGamesDialog.glade:141 msgid "" "There are %d games with unsaved moves. Save changes before " "closing?" msgstr "Há %d jogos com lances não salvos. Salvar antes de fechar?" #: glade/saveGamesDialog.glade:161 msgid "Select the games you want to save:" msgstr "Selecione os jogos que quer salvar:" #: glade/saveGamesDialog.glade:204 msgid "If you don't save, new changes to your games will be permanently lost." msgstr "Se não salvar, as novas alterações dos jogos serão perdidas permanentemente." #: glade/taskers.glade:126 msgid "_Opponent:" msgstr "A_dversário:" #: glade/taskers.glade:154 msgid "_Your Color:" msgstr "_Sua Cor:" #: glade/taskers.glade:219 msgid "_Start Game" msgstr "_Iniciar Jogo" #: glade/taskers.glade:338 msgid "Log on as G_uest" msgstr "Conectar-se como _Convidado" #: glade/taskers.glade:410 msgid "Ha_ndle:" msgstr "Co_nta:" #: glade/taskers.glade:469 msgid "_Connect to server" msgstr "" #: glade/tipoftheday.glade:7 msgid "Tip Of The day" msgstr "Dica do dia" #: glade/tipoftheday.glade:62 msgid "Show tips at startup" msgstr "Mostrar dicas ao iniciar" #: lib/pychess/Main.py:302 msgid "http://en.wikipedia.org/wiki/Chess" msgstr "http://pt.wikipedia.org/wiki/Xadrez" #: lib/pychess/Main.py:305 msgid "http://en.wikipedia.org/wiki/Rules_of_chess" msgstr "http://pt.wikipedia.org/wiki/Regras_do_xadrez" #: lib/pychess/Main.py:370 lib/pychess/widgets/gamenanny.py:80 msgid "Welcome" msgstr "Bem-vindo" #: lib/pychess/Database/gamelist.py:40 msgid "Id" msgstr "Id" #: lib/pychess/Database/gamelist.py:40 msgid "W Elo" msgstr "B Elo" #: lib/pychess/Database/gamelist.py:40 msgid "B Elo" msgstr "N Elo" #: lib/pychess/Database/gamelist.py:41 msgid "Result" msgstr "Resultado" #: lib/pychess/Database/gamelist.py:41 msgid "Event" msgstr "Evento" #: lib/pychess/Database/gamelist.py:41 msgid "Site" msgstr "Site" #: lib/pychess/Database/gamelist.py:41 msgid "Round" msgstr "Rodada" #: lib/pychess/Database/gamelist.py:41 msgid "Date" msgstr "Data" #: lib/pychess/Database/gamelist.py:41 msgid "ECO" msgstr "ECO" #: lib/pychess/Database/gamelist.py:62 msgid "PyChess Game Database" msgstr "Jogos do Banco de Dados do Pychess" #: lib/pychess/Database/PgnImport.py:188 #, python-format msgid "The game #%s can't be loaded, because of an error parsing FEN" msgstr "O jogo #%s não pode ser carregado, por causa de um erro de análise FEN" #: lib/pychess/ic/FICSConnection.py:139 msgid "The connection was broken - got \"end of file\" message" msgstr "A conexão foi interrompida" #: lib/pychess/ic/FICSConnection.py:140 #, python-format msgid "'%s' is not a registered name" msgstr "'%s' não é um nome registrado" #: lib/pychess/ic/FICSConnection.py:141 msgid "" "The entered password was invalid.\n" "If you forgot your password, go to http://www.freechess.org/password to request a new one over email." msgstr "" #: lib/pychess/ic/FICSConnection.py:145 #, python-format msgid "Sorry '%s' is already logged in" msgstr "" #: lib/pychess/ic/FICSConnection.py:146 #, python-format msgid "'%s' is a registered name. If it is yours, type the password." msgstr "" #: lib/pychess/ic/FICSConnection.py:147 msgid "" "Due to abuse problems, guest connections have been prevented.\n" "You can still register on http://www.freechess.org" msgstr "" #: lib/pychess/ic/FICSConnection.py:166 msgid "Connecting to server" msgstr "Conectando ao servidor" #: lib/pychess/ic/FICSConnection.py:181 msgid "Logging on to server" msgstr "Conectando ao servidor" #: lib/pychess/ic/FICSConnection.py:239 msgid "Setting up environment" msgstr "Configurando o ambiente" #: lib/pychess/ic/FICSObjects.py:35 lib/pychess/ic/FICSObjects.py:47 #, python-format msgid "%(player)s is %(status)s" msgstr "%(player)s está %(status)s" #: lib/pychess/ic/FICSObjects.py:46 msgid "not playing" msgstr "" #: lib/pychess/ic/FICSObjects.py:54 lib/pychess/ic/ICLounge.py:1136 #: lib/pychess/ic/ICLounge.py:2209 lib/pychess/ic/__init__.py:98 #: lib/pychess/widgets/newGameDialog.py:153 msgid "Blitz" msgstr "Blitz" #: lib/pychess/ic/FICSObjects.py:58 lib/pychess/ic/ICLounge.py:1137 #: lib/pychess/ic/ICLounge.py:2209 lib/pychess/ic/__init__.py:100 msgid "Lightning" msgstr "Relâmpago" #: lib/pychess/ic/FICSObjects.py:60 lib/pychess/Variants/atomic.py:15 msgid "Atomic" msgstr "Atômico" #: lib/pychess/ic/FICSObjects.py:62 lib/pychess/Variants/bughouse.py:9 msgid "Bughouse" msgstr "Bughouse" #: lib/pychess/ic/FICSObjects.py:64 lib/pychess/Variants/crazyhouse.py:9 msgid "Crazyhouse" msgstr "Crazyhouse" #: lib/pychess/ic/FICSObjects.py:66 lib/pychess/Variants/losers.py:9 msgid "Losers" msgstr "De perdedores" #: lib/pychess/ic/FICSObjects.py:68 lib/pychess/Variants/suicide.py:12 msgid "Suicide" msgstr "Suicídio" #: lib/pychess/ic/FICSObjects.py:70 lib/pychess/ic/__init__.py:129 msgid "Wild" msgstr "Wild" #: lib/pychess/ic/FICSObjects.py:117 msgid "Online" msgstr "Conectado" #: lib/pychess/ic/FICSObjects.py:118 lib/pychess/ic/FICSObjects.py:143 msgid "Offline" msgstr "Desconectado" #: lib/pychess/ic/FICSObjects.py:133 msgid "Available" msgstr "Disponível" #: lib/pychess/ic/FICSObjects.py:135 msgid "Playing" msgstr "Jogando" #: lib/pychess/ic/FICSObjects.py:141 msgid "Idle" msgstr "Inativo" #: lib/pychess/ic/FICSObjects.py:145 msgid "Examining" msgstr "Examinando" #: lib/pychess/ic/FICSObjects.py:147 msgid "Not Available" msgstr "Indisponível" #: lib/pychess/ic/FICSObjects.py:149 msgid "Running Simul Match" msgstr "Executando jogo simultâneo" #: lib/pychess/ic/FICSObjects.py:151 msgid "In Tournament" msgstr "Em torneio" #: lib/pychess/ic/FICSObjects.py:308 lib/pychess/ic/FICSObjects.py:492 #: lib/pychess/ic/ICLounge.py:2278 msgid "Unrated" msgstr "Não pontuado" #: lib/pychess/ic/FICSObjects.py:491 lib/pychess/ic/ICLounge.py:670 #: lib/pychess/ic/ICLounge.py:1358 lib/pychess/ic/ICLounge.py:1558 #: lib/pychess/ic/ICLounge.py:2113 msgid "Rated" msgstr "Pontuado" #: lib/pychess/ic/FICSObjects.py:498 lib/pychess/ic/ICLounge.py:2098 #, python-format msgid "%d min" msgstr "%d min" #: lib/pychess/ic/FICSObjects.py:500 #, python-format msgid " + %d sec" msgstr " + %d sec" #: lib/pychess/ic/FICSObjects.py:517 #, python-format msgid "%(player)s plays %(color)s" msgstr "%(player)s joga %(color)s" #: lib/pychess/ic/FICSObjects.py:519 lib/pychess/ic/ICLounge.py:909 msgid "white" msgstr "brancas" #: lib/pychess/ic/FICSObjects.py:519 lib/pychess/ic/ICLounge.py:909 msgid "black" msgstr "negras" #: lib/pychess/ic/FICSObjects.py:565 msgid "This is a continuation of an adjourned match" msgstr "Esta é a continuação de um jogo adiado" #: lib/pychess/ic/FICSObjects.py:654 msgid "Opponent Rating" msgstr "Rating do Adversário" #: lib/pychess/ic/FICSObjects.py:656 msgid "Manual Accept" msgstr "Aceitar manualmente" #: lib/pychess/ic/FICSObjects.py:810 msgid "Private" msgstr "Privado" #: lib/pychess/ic/FICSObjects.py:930 lib/pychess/ic/ICLounge.py:527 #: lib/pychess/Savers/epd.py:139 msgid "Unknown" msgstr "Desconhecido" #: lib/pychess/ic/ICLogon.py:159 lib/pychess/ic/ICLogon.py:165 msgid "Connection Error" msgstr "Erro de conexão" #: lib/pychess/ic/ICLogon.py:161 msgid "Log on Error" msgstr "Erro ao conectar" #: lib/pychess/ic/ICLogon.py:163 msgid "Connection was closed" msgstr "Conexão foi fechada" #: lib/pychess/ic/ICLogon.py:169 msgid "Address Error" msgstr "Erro no endereço" #: lib/pychess/ic/ICLogon.py:172 msgid "Auto-logout" msgstr "Auto-desconectar" #: lib/pychess/ic/ICLogon.py:173 msgid "You have been logged out because you were idle more than 60 minutes" msgstr "Você foi desconectado porque ficou inativo mais de 60 minutos" #: lib/pychess/ic/ICLounge.py:222 msgid "You have to set kibitz on to see bot messages here." msgstr "" #: lib/pychess/ic/ICLounge.py:241 msgid "" "You may only have 3 outstanding seeks at the same time. If you want to add a" " new seek you must clear your currently active seeks. Clear your seeks?" msgstr "Você só pode ter 3 buscas pendentes ao mesmo tempo. Se você quiser adicionar uma nova busca você deve limpar as buscas ativas no momento. Limpar suas buscas?" #: lib/pychess/ic/ICLounge.py:258 msgid "You can't touch this! You are examining a game." msgstr "" #: lib/pychess/ic/ICLounge.py:270 msgid " has declined your offer for a match" msgstr "recusou sua oferta para um jogo" #: lib/pychess/ic/ICLounge.py:283 msgid " is censoring you" msgstr "" #: lib/pychess/ic/ICLounge.py:296 msgid " noplay listing you" msgstr "" #: lib/pychess/ic/ICLounge.py:311 msgid " uses a formula not fitting your match request:" msgstr "" #: lib/pychess/ic/ICLounge.py:325 msgid "to manual accept" msgstr "aceitar manualmente" #: lib/pychess/ic/ICLounge.py:327 msgid "to automatic accept" msgstr "aceitar automaticamente" #: lib/pychess/ic/ICLounge.py:329 msgid "rating range now" msgstr "faixa de rating agora" #: lib/pychess/ic/ICLounge.py:330 msgid "Seek updated" msgstr "solicitar atualização" #: lib/pychess/ic/ICLounge.py:342 msgid "Your seeks have been removed" msgstr "Suas solicitações foram removidas" #: lib/pychess/ic/ICLounge.py:363 msgid " has arrived" msgstr "está chegando" #: lib/pychess/ic/ICLounge.py:370 msgid " has departed" msgstr "está saindo" #: lib/pychess/ic/ICLounge.py:374 msgid " is present" msgstr "está presente" #: lib/pychess/ic/ICLounge.py:391 sidepanel/chatPanel.py:17 msgid "Chat" msgstr "Conversa" #: lib/pychess/ic/ICLounge.py:472 sidepanel/bookPanel.py:366 msgid "Win" msgstr "Vitória" #: lib/pychess/ic/ICLounge.py:472 sidepanel/bookPanel.py:360 msgid "Draw" msgstr "Empate" #: lib/pychess/ic/ICLounge.py:472 sidepanel/bookPanel.py:363 msgid "Loss" msgstr "Derrota" #: lib/pychess/ic/ICLounge.py:482 msgid "" "On FICS, your \"Wild\" rating encompasses all of the following variants at " "all time controls:\n" msgstr "No FICS, sua classificação \"Wild\" engloba todas as seguintes variantes em todos os controles de tempo:\n" #: lib/pychess/ic/ICLounge.py:494 msgid "Sanctions" msgstr "Sanções" #: lib/pychess/ic/ICLounge.py:499 msgid "Email" msgstr "E-mail" #: lib/pychess/ic/ICLounge.py:504 msgid "Spent" msgstr "Tempo gasto" #: lib/pychess/ic/ICLounge.py:506 msgid "online in total" msgstr "conectado no total" #: lib/pychess/ic/ICLounge.py:512 msgid "Ping" msgstr "Ping" #: lib/pychess/ic/ICLounge.py:517 msgid "Connecting" msgstr "Conectando" #: lib/pychess/ic/ICLounge.py:544 msgid "" "You are currently logged in as a guest.\n" "A guest can't play rated games and therefore isn't able to play as many of the types of matches offered as a registered user. To register an account, go to http://www.freechess.org/Register/index.html." msgstr "" #: lib/pychess/ic/ICLounge.py:669 lib/pychess/ic/ICLounge.py:1136 msgid "Name" msgstr "Nome" #: lib/pychess/ic/ICLounge.py:670 lib/pychess/ic/ICLounge.py:1358 #: lib/pychess/ic/ICLounge.py:1558 msgid "Type" msgstr "Tipo" #: lib/pychess/ic/ICLounge.py:670 lib/pychess/ic/ICLounge.py:1558 msgid "Clock" msgstr "Relógio" #: lib/pychess/ic/ICLounge.py:726 lib/pychess/ic/ICLounge.py:923 #: lib/pychess/Players/Human.py:250 msgid "Accept" msgstr "Aceitar" #: lib/pychess/ic/ICLounge.py:728 msgid "Assess" msgstr "" #: lib/pychess/ic/ICLounge.py:734 msgid "Archived" msgstr "" #: lib/pychess/ic/ICLounge.py:848 #, python-format msgid "Active seeks: %d" msgstr "Buscas ativas: %d" #: lib/pychess/ic/ICLounge.py:897 #, python-format msgid "" " would like to resume your adjourned %(time)s %(gametype)s " "game." msgstr "gostaria de retomar seu jogo adiado %(time)s %(gametype)s." #: lib/pychess/ic/ICLounge.py:902 #, python-format msgid "" " challenges you to a %(time)s %(rated)s %(gametype)s game" msgstr "desafia você para um %(time)s %(rated)s %(gametype)s jogo" #: lib/pychess/ic/ICLounge.py:907 #, python-format msgid " where %(player)s plays %(color)s." msgstr "onde %(player)s joga %(color)s." #: lib/pychess/ic/ICLounge.py:924 lib/pychess/Players/Human.py:251 msgid "Decline" msgstr "Recusar" #: lib/pychess/ic/ICLounge.py:1065 msgid " min" msgstr " min" #: lib/pychess/ic/ICLounge.py:1137 msgid "Status" msgstr "Status" #: lib/pychess/ic/ICLounge.py:1203 lib/pychess/ic/ICLounge.py:1233 #, python-format msgid "Players: %d" msgstr "Jogadores: %d" #: lib/pychess/ic/ICLounge.py:1469 #, python-format msgid "Games running: %d" msgstr "Jogos em execução: %d" #: lib/pychess/ic/ICLounge.py:1559 msgid "Date/Time" msgstr "Data/Hora" #: lib/pychess/ic/ICLounge.py:1614 #, python-format msgid "" " with whom you have an adjourned %(timecontrol)s %(gametype)s " "game is online." msgstr "" #: lib/pychess/ic/ICLounge.py:1635 msgid "Request Continuation" msgstr "Solicitar Continuação" #: lib/pychess/ic/ICLounge.py:1637 msgid "Examine Adjourned Game" msgstr "Examinar Jogo Adiado" #: lib/pychess/ic/ICLounge.py:1965 msgid "" "The chain button is disabled because you are logged in as a guest. Guests " "can't establish ratings, and the chain button's state has no effect when " "there is no rating to which to tie \"Opponent Strength\" to" msgstr "O botão de vinculação está desativado porque você está conectado como convidado. Convidados não podem estabelecer classificação e o estado do botão de vinculação não tem nenhum efeito quando não há nenhuma classificação para a qual vincular a \"Força do Adversário\"" #: lib/pychess/ic/ICLounge.py:2006 msgid "Challenge: " msgstr "Desafiar: " #: lib/pychess/ic/ICLounge.py:2044 msgid "If set you can refuse players accepting your seek" msgstr "" #: lib/pychess/ic/ICLounge.py:2048 lib/pychess/ic/ICLounge.py:2051 msgid "This option is not applicable because you're challenging a player" msgstr "Esta opção não é aplicável porque você está desafiando um jogador" #: lib/pychess/ic/ICLounge.py:2064 msgid "Edit Seek: " msgstr "Editar busca: " #: lib/pychess/ic/ICLounge.py:2095 #, python-format msgid "%(minutes)d min + %(gain)d sec/move" msgstr "%(minutes)d min + %(gain)d sec/lance" #: lib/pychess/ic/ICLounge.py:2116 msgid "Manual" msgstr "Manual" #: lib/pychess/ic/ICLounge.py:2256 msgid "Any strength" msgstr "Qualquer força" #: lib/pychess/ic/ICLounge.py:2308 msgid "You can't play rated games because you are logged in as a guest" msgstr "Você não pode jogar jogos pontuados porque você está conectado como convidado" #: lib/pychess/ic/ICLounge.py:2312 msgid "You can't play rated games because \"Untimed\" is checked, " msgstr "Você não pode jogar jogos pontuados porque o botão \"Sem relógio\" foi marcado, " #: lib/pychess/ic/ICLounge.py:2313 msgid "and on FICS, untimed games can't be rated" msgstr "e no FICS, jogos sem relógio não podem ser pontuados" #: lib/pychess/ic/ICLounge.py:2317 msgid "This option is not available because you're challenging a guest, " msgstr "Esta opção não está disponível porque você está desafiando um convidado, " #: lib/pychess/ic/ICLounge.py:2318 msgid "and guests can't play rated games" msgstr "e os convidados não podem jogar jogos pontuados" #: lib/pychess/ic/ICLounge.py:2332 lib/pychess/Variants/shuffle.py:16 #: lib/pychess/widgets/newGameDialog.py:266 msgid "Shuffle" msgstr "Aleatório" #: lib/pychess/ic/ICLounge.py:2333 lib/pychess/widgets/newGameDialog.py:267 msgid "Other (standard rules)" msgstr "Outro (regra padrão)" #: lib/pychess/ic/ICLounge.py:2334 lib/pychess/widgets/newGameDialog.py:268 msgid "Other (non standard rules)" msgstr "Outro (fora da regra padrão)" #: lib/pychess/ic/ICLounge.py:2421 msgid "You can't select a variant because \"Untimed\" is checked, " msgstr "Você não pode selecionar uma variação porque o botão \"Sem relógio\" foi marcado, " #: lib/pychess/ic/ICLounge.py:2422 msgid "and on FICS, untimed games have to be normal chess rules" msgstr "e no FICS, jogos sem relógio têm que ser nas regras normais do xadrez" #: lib/pychess/ic/ICLounge.py:2454 msgid "Change Tolerance" msgstr "Alterar tolerância" #: lib/pychess/ic/__init__.py:102 msgid "Examined" msgstr "Examinado" #: lib/pychess/ic/__init__.py:103 msgid "Other" msgstr "Outro" #: lib/pychess/ic/__init__.py:182 msgid "Administrator" msgstr "Administrador" #: lib/pychess/ic/__init__.py:182 msgid "Blindfold Account" msgstr "Conta de xadrez às cegas" #: lib/pychess/ic/__init__.py:182 msgid "Computer" msgstr "Computador" #: lib/pychess/ic/__init__.py:183 msgid "Team Account" msgstr "Conta da equipe" #: lib/pychess/ic/__init__.py:183 msgid "Unregistered" msgstr "Não Registrado" #: lib/pychess/ic/__init__.py:183 msgid "Chess Advisor" msgstr "Mentor de xadrez" #: lib/pychess/ic/__init__.py:184 msgid "Service Representative" msgstr "Representante de atendimento" #: lib/pychess/ic/__init__.py:184 msgid "Tournament Director" msgstr "Diretor do torneio" #: lib/pychess/ic/__init__.py:184 msgid "Mamer Manager" msgstr "Gerenciador Mamer" #: lib/pychess/ic/__init__.py:185 msgid "Grand Master" msgstr "Grande Mestre" #: lib/pychess/ic/__init__.py:185 msgid "International Master" msgstr "Mestre Internacional" #: lib/pychess/ic/__init__.py:185 msgid "FIDE Master" msgstr "Mestre FIDE" #: lib/pychess/ic/__init__.py:186 msgid "Woman Grand Master" msgstr "Grande Mestre Mulher" #: lib/pychess/ic/__init__.py:186 msgid "Woman International Master" msgstr "Mestre Internacional Mulher" #: lib/pychess/ic/__init__.py:186 msgid "Woman FIDE Master" msgstr "Mestre FIDE Mulher" #: lib/pychess/ic/__init__.py:187 msgid "Dummy Account" msgstr "Conta iniciante" #: lib/pychess/ic/__init__.py:191 msgid "*" msgstr "*" #: lib/pychess/ic/__init__.py:191 lib/pychess/Utils/repr.py:14 msgid "B" msgstr "B" #: lib/pychess/ic/__init__.py:191 msgid "C" msgstr "C" #: lib/pychess/ic/__init__.py:192 msgid "T" msgstr "T" #: lib/pychess/ic/__init__.py:192 msgid "U" msgstr "U" #: lib/pychess/ic/__init__.py:192 msgid "CA" msgstr "CA" #: lib/pychess/ic/__init__.py:193 msgid "SR" msgstr "SR" #: lib/pychess/ic/__init__.py:193 msgid "TD" msgstr "TD" #: lib/pychess/ic/__init__.py:193 msgid "TM" msgstr "TM" #: lib/pychess/ic/__init__.py:194 msgid "GM" msgstr "GM" #: lib/pychess/ic/__init__.py:194 msgid "IM" msgstr "MI" #: lib/pychess/ic/__init__.py:194 msgid "FM" msgstr "FM" #: lib/pychess/ic/__init__.py:195 msgid "WGM" msgstr "WGM" #: lib/pychess/ic/__init__.py:195 msgid "WIM" msgstr "WIM" #: lib/pychess/ic/__init__.py:195 msgid "WFM" msgstr "MFM (WFM)" #: lib/pychess/ic/__init__.py:195 msgid "D" msgstr "D" #: lib/pychess/ic/__init__.py:195 msgid "H" msgstr "" #: lib/pychess/ic/__init__.py:195 msgid "CM" msgstr "" #: lib/pychess/ic/__init__.py:195 msgid "FA" msgstr "" #: lib/pychess/ic/__init__.py:195 msgid "NM" msgstr "" #: lib/pychess/Players/CECPEngine.py:857 #, python-format msgid "The engine %s reports an error:" msgstr "A engine %s relata um erro:" #: lib/pychess/Players/Human.py:20 msgid "Your opponent has offered you a draw." msgstr "Seu adversário ofereceu empate." #: lib/pychess/Players/Human.py:21 msgid "" "Your opponent has offered you a draw. If you accept this offer, the game " "will end with a score of 1/2 - 1/2." msgstr "Seu adversário lhe ofereceu um empate. Se você aceitar, a partida terminará com o resultado 1/2 - 1/2." #: lib/pychess/Players/Human.py:23 msgid "Your opponent wants to abort the game." msgstr "Seu adversário quer cancelar a partida." #: lib/pychess/Players/Human.py:24 msgid "" "Your opponent has asked that the game be aborted. If you accept this offer, " "the game will end with no rating change." msgstr "Seu adversário solicitou que o jogo seja anulado. Se você aceitar, o jogo terminará sem nenhuma mudança na classificação." #: lib/pychess/Players/Human.py:26 msgid "Your opponent wants to adjourn the game." msgstr "Seu oponente quer adiar a partida." #: lib/pychess/Players/Human.py:27 msgid "" "Your opponent has asked that the game be adjourned. If you accept this " "offer, the game will be adjourned and you can resume it later (when your " "opponent is online and both players agree to resume)." msgstr "Seu adversário quer que o jogo seja adiado. Se você aceitar, o jogo será adiado e você poderá jogá-lo em outra data (se o seu adversário também estiver conectado e ambos os jogadores concordarem em retomar o jogo)." #: lib/pychess/Players/Human.py:29 #, python-format msgid "Your opponent wants to undo %s move(s)." msgstr "Seu adversário quer desfazer %s movimento(s)." #: lib/pychess/Players/Human.py:30 #, python-format msgid "" "Your opponent has asked that the last %s move(s) be undone. If you accept " "this offer, the game will continue from the earlier position." msgstr "Seu adversário quer voltar %s lance(s). Se você aceitar, o jogo seguirá a partir da posição indicada." #: lib/pychess/Players/Human.py:32 msgid "Your opponent wants to pause the game." msgstr "Seu adversário quer pausar a partida." #: lib/pychess/Players/Human.py:33 msgid "" "Your opponent has asked that the game be paused. If you accept this offer, " "the game clock will be paused until both players agree to resume the game." msgstr "Seu adversário pediu para fazer uma pausa no jogo. Se você aceitar, o relógio do jogo será parado até que ambos aceitem retomar o jogo." #: lib/pychess/Players/Human.py:35 msgid "Your opponent wants to resume the game." msgstr "Seu adversário quer retomar a partida." #: lib/pychess/Players/Human.py:36 msgid "" "Your opponent has asked that the game be resumed. If you accept this offer, " "the game clock will continue from where it was paused." msgstr "Seu adversário quer retomar o jogo. Se você aceitar, o relógio do jogo continuará a contar de onde foi pausado." #: lib/pychess/Players/Human.py:40 msgid "The resignation" msgstr "O abandono" #: lib/pychess/Players/Human.py:41 msgid "The flag call" msgstr "A acusação de queda de seta" #: lib/pychess/Players/Human.py:42 msgid "The draw offer" msgstr "A oferta de empate" #: lib/pychess/Players/Human.py:43 msgid "The abort offer" msgstr "A oferta de anulação" #: lib/pychess/Players/Human.py:44 msgid "The adjourn offer" msgstr "A oferta de adiamento" #: lib/pychess/Players/Human.py:45 msgid "The pause offer" msgstr "A oferta de pausa" #: lib/pychess/Players/Human.py:46 msgid "The resume offer" msgstr "A oferta de retomada" #: lib/pychess/Players/Human.py:47 msgid "The offer to switch sides" msgstr "A oferta de mudança de lado" #: lib/pychess/Players/Human.py:48 msgid "The takeback offer" msgstr "A oferta de voltar jogadas" #: lib/pychess/Players/Human.py:52 msgid "resign" msgstr "abandono" #: lib/pychess/Players/Human.py:53 msgid "call your opponents flag" msgstr "acusar queda de seta do adversário" #: lib/pychess/Players/Human.py:54 msgid "offer a draw" msgstr "oferecer empate" #: lib/pychess/Players/Human.py:55 msgid "offer an abort" msgstr "oferecer anulação" #: lib/pychess/Players/Human.py:56 msgid "offer to adjourn" msgstr "oferecer adiamento" #: lib/pychess/Players/Human.py:57 msgid "offer a pause" msgstr "oferecer uma pausa" #: lib/pychess/Players/Human.py:58 msgid "offer to resume" msgstr "oferecer para reiniciar jogo" #: lib/pychess/Players/Human.py:59 msgid "offer to switch sides" msgstr "oferecer troca de lado" #: lib/pychess/Players/Human.py:60 msgid "offer a takeback" msgstr "oferecer voltar jogadas" #: lib/pychess/Players/Human.py:61 msgid "ask your opponent to move" msgstr "pedir ao seu adversário que mova" #: lib/pychess/Players/Human.py:66 msgid "Your opponent is not out of time." msgstr "Seu adversário não está fora do tempo." #: lib/pychess/Players/Human.py:68 msgid "The clock hasn't been started yet." msgstr "O relógio ainda não foi iniciado." #: lib/pychess/Players/Human.py:70 msgid "You can't switch colors during the game." msgstr "Você não pode mudar a cor durante o jogo." #: lib/pychess/Players/Human.py:72 msgid "You have tried to undo too many moves." msgstr "Você tentou voltar lances demais." #: lib/pychess/Players/Human.py:180 msgid "Your opponent asks you to hurry!" msgstr "Seu adversário pede que você se apresse!" #: lib/pychess/Players/Human.py:181 msgid "" "Generally this means nothing, as the game is time-based, but if you want to " "please your opponent, perhaps you should get going." msgstr "Geralmente isso não significa nada , já que o jogo é baseado em tempo , mas se você quer agradar o seu adversário , talvez você deve ir." #: lib/pychess/Players/Human.py:259 #, python-format msgid "%s was declined by your opponent" msgstr "%s foi recusado por seu adversário" #: lib/pychess/Players/Human.py:260 #, python-format msgid "Resend %s?" msgstr "Reenviar %s?" #: lib/pychess/Players/Human.py:267 msgid "Resend" msgstr "Reenviar" #: lib/pychess/Players/Human.py:275 #, python-format msgid "%s was withdrawn by your opponent" msgstr "%s foi retirada por seu adversário" #: lib/pychess/Players/Human.py:276 msgid "Your opponent seems to have changed their mind." msgstr "Seu adversário parece ter mudado sua mente." #: lib/pychess/Players/Human.py:290 #, python-format msgid "Unable to accept %s" msgstr "Não foi possível aceitar %s" #: lib/pychess/Players/Human.py:291 msgid "Probably because it has been withdrawn." msgstr "Provavelmente porque ele foi retirado." #: lib/pychess/Players/Human.py:298 #, python-format msgid "%s returns an error" msgstr "%s retornou um erro" #: lib/pychess/Savers/chessalpha2.py:12 msgid "Chess Alpha 2 Diagram" msgstr "Diagrama Chess Alpha 2" #: lib/pychess/Savers/chesspastebin.py:39 msgid "Game shared at " msgstr "" #: lib/pychess/Savers/chesspastebin.py:41 msgid "(Link is available on clipboard.)" msgstr "" #: lib/pychess/Savers/database.py:19 msgid "PyChess database" msgstr "Base de dados Pychess" #: lib/pychess/Savers/epd.py:12 msgid "Chess Position" msgstr "Posição do tabuleiro" #: lib/pychess/Savers/fen.py:12 msgid "Simple Chess Position" msgstr "Posicionamento comum do xadrez" #: lib/pychess/Savers/fen.py:44 lib/pychess/Savers/pgn.py:329 msgid "The game can't be loaded, because of an error parsing FEN" msgstr "O jogo não pode ser carregado, por causa de um erro de análise FEN" #: lib/pychess/Savers/pgnbase.py:100 #, python-format msgid "" "The game can't be read to end, because of an error parsing move %(moveno)s " "'%(notation)s'." msgstr "O jogo não pode ser lido até o final, devido a um erro ao analisar o lance %(moveno)s '%(notation)s'." #: lib/pychess/Savers/pgnbase.py:102 #, python-format msgid "The move failed because %s." msgstr "Não foi possível mover porque %s." #: lib/pychess/Savers/pgnbase.py:110 #, python-format msgid "Error parsing move %(moveno)s %(mstr)s" msgstr "Erro ao analisar movimento %(moveno)s %(mstr)s" #: lib/pychess/Savers/pgn.py:28 msgid "Chess Game" msgstr "Jogo de Xadrez" #: lib/pychess/Savers/pgn.py:362 msgid "Invalid move." msgstr "Movimento inválido." #: lib/pychess/Savers/png.py:15 msgid "Png image" msgstr "Imagem PNG" #: lib/pychess/System/ping.py:31 msgid "Destination Host Unreachable" msgstr "Endereço de destino inacessível" #: lib/pychess/System/ping.py:74 msgid "Died" msgstr "Encerrado" #: lib/pychess/Utils/GameModel.py:147 msgid "Local Event" msgstr "Evento local" #: lib/pychess/Utils/GameModel.py:148 msgid "Local Site" msgstr "Ponto local" #: lib/pychess/Utils/repr.py:12 msgid "Pawn" msgstr "Peão" #: lib/pychess/Utils/repr.py:14 msgid "P" msgstr "P" #: lib/pychess/Utils/repr.py:14 msgid "N" msgstr "C" #: lib/pychess/Utils/repr.py:14 msgid "R" msgstr "T" #: lib/pychess/Utils/repr.py:14 msgid "Q" msgstr "D" #: lib/pychess/Utils/repr.py:14 msgid "K" msgstr "R" #: lib/pychess/Utils/repr.py:17 msgid "The game ended in a draw" msgstr "O jogo terminou empatado" #: lib/pychess/Utils/repr.py:18 #, python-format msgid "%(white)s won the game" msgstr "%(white)s venceu o jogo" #: lib/pychess/Utils/repr.py:19 #, python-format msgid "%(black)s won the game" msgstr "%(black)s venceu o jogo" #: lib/pychess/Utils/repr.py:20 msgid "The game has been killed" msgstr "O jogo foi encerrado" #: lib/pychess/Utils/repr.py:21 msgid "The game has been adjourned" msgstr "O jogo foi adiado" #: lib/pychess/Utils/repr.py:22 msgid "The game has been aborted" msgstr "O jogo foi anulado" #: lib/pychess/Utils/repr.py:26 msgid "Because neither player has sufficient material to mate" msgstr "Porque nenhum jogar tem material suficiente para dar mate" #: lib/pychess/Utils/repr.py:27 msgid "Because the same position was repeated three times in a row" msgstr "Porque a mesma posição se repetiu três vezes consecutivas" #: lib/pychess/Utils/repr.py:28 msgid "Because the last 50 moves brought nothing new" msgstr "Porque os últimos 50 lances não trouxeram nada de novo" #: lib/pychess/Utils/repr.py:29 msgid "Because both players ran out of time" msgstr "Porque o tempo acabou para ambos os jogadores" #: lib/pychess/Utils/repr.py:30 #, python-format msgid "Because %(mover)s stalemated" msgstr "Porque %(mover)s provocou empate por afogamento" #: lib/pychess/Utils/repr.py:31 msgid "Because both players agreed to a draw" msgstr "Porque ambos combinaram empate" #: lib/pychess/Utils/repr.py:32 lib/pychess/Utils/repr.py:42 msgid "Because of adjudication by an admin" msgstr "Devido a uma decisão proferida por um administrador" #: lib/pychess/Utils/repr.py:33 msgid "Because the game exceed the max length" msgstr "Porque o jogo excedeu o tamanho máximo" #: lib/pychess/Utils/repr.py:34 #, python-format msgid "" "Because %(white)s ran out of time and %(black)s has insufficient material to" " mate" msgstr "Porque %(white)s caiu no tempo e %(black)s não tem material suficente para dar mate" #: lib/pychess/Utils/repr.py:35 #, python-format msgid "" "Because %(black)s ran out of time and %(white)s has insufficient material to" " mate" msgstr "Porque %(black)s caiu no tempo e %(white)s não tem material suficente para dar mate" #: lib/pychess/Utils/repr.py:36 msgid "Because both players have the same amount of pieces" msgstr "Porque ambos jogadores tem a mesma quantidade de peças" #: lib/pychess/Utils/repr.py:38 #, python-format msgid "Because %(loser)s resigned" msgstr "Porque %(loser)s abandonou" #: lib/pychess/Utils/repr.py:39 #, python-format msgid "Because %(loser)s ran out of time" msgstr "Porque o tempo de %(loser)s terminou" #: lib/pychess/Utils/repr.py:40 #, python-format msgid "Because %(loser)s was checkmated" msgstr "Porque %(loser)s levou cheque-mate" #: lib/pychess/Utils/repr.py:41 #, python-format msgid "Because %(loser)s disconnected" msgstr "Porque %(loser)s se desconectou" #: lib/pychess/Utils/repr.py:43 #, python-format msgid "Because %(winner)s has fewer pieces" msgstr "Porque %(winner)s tem menos peças" #: lib/pychess/Utils/repr.py:44 #, python-format msgid "Because %(winner)s lost all pieces" msgstr "Porque %(winner)s perdeu todas as peças" #: lib/pychess/Utils/repr.py:45 #, python-format msgid "Because %(loser)s king exploded" msgstr "Porque %(loser)s rei explodiu" #: lib/pychess/Utils/repr.py:46 #, python-format msgid "Because %(winner)s king reached the center" msgstr "" #: lib/pychess/Utils/repr.py:47 #, python-format msgid "Because %(winner)s was giving check 3 times" msgstr "" #: lib/pychess/Utils/repr.py:49 msgid "Because a player lost connection" msgstr "Porque o jogador perdeu a conexão" #: lib/pychess/Utils/repr.py:50 msgid "Because both players agreed to an adjournment" msgstr "Porque ambos os jogadores concordaram em um adiamento" #: lib/pychess/Utils/repr.py:51 msgid "Because the server was shut down" msgstr "Porque o servidor foi desligado" #: lib/pychess/Utils/repr.py:52 msgid "" "Because a player lost connection and the other player requested adjournment" msgstr "Porque um jogador perdeu a conexão e outro jogador solicitou adiamento" #: lib/pychess/Utils/repr.py:53 #, python-format msgid "" "Because %(black)s lost connection to the server and %(white)s requested " "adjournment" msgstr "Porque %(black)s perdeu a conexão com o servidor e %(white)s solicitou um adiamento" #: lib/pychess/Utils/repr.py:54 #, python-format msgid "" "Because %(white)s lost connection to the server and %(black)s requested " "adjournment" msgstr "Porque %(white)s perdeu a conexão com o servidor e %(black)s solicitou um adiamento" #: lib/pychess/Utils/repr.py:55 #, python-format msgid "Because %(white)s lost connection to the server" msgstr "Porque %(white)s perdeu a conexão com o servidor" #: lib/pychess/Utils/repr.py:56 #, python-format msgid "Because %(black)s lost connection to the server" msgstr "Porque %(black)s perdeu a conexão com o servidor" #: lib/pychess/Utils/repr.py:58 msgid "Because of adjudication by an admin. No rating changes have occurred." msgstr "Por causa da decisão proferida por um administrador . Nenhuma alteração no rating foi ocorrida." #: lib/pychess/Utils/repr.py:59 msgid "" "Because both players agreed to abort the game. No rating changes have " "occurred." msgstr "Porque ambos os jogadores concordaram em abortar o jogo. Nenhuma mudança de rating ocorreu." #: lib/pychess/Utils/repr.py:60 msgid "Because of courtesy by a player. No rating changes have occurred." msgstr "Por causa da cortesia do jogador. Nenhuma mudança de rating ocorreu." #: lib/pychess/Utils/repr.py:61 msgid "" "Because a player aborted the game. Either player can abort the game without " "the other's consent before the second move. No rating changes have occurred." msgstr "Porque um jogador abortou o jogo. O outro jogador pode abortar o jogo sem o outro conceder, mas antes do segundo movimento. Nenhuma mudança de rating ocorreu." #: lib/pychess/Utils/repr.py:62 msgid "" "Because a player disconnected and there are too few moves to warrant " "adjournment. No rating changes have occurred." msgstr "" #: lib/pychess/Utils/repr.py:63 msgid "Because the server was shut down. No rating changes have occurred." msgstr "Porque o servidor foi desligado. Nenhuma mudança de rating ocorreu." #: lib/pychess/Utils/repr.py:65 #, python-format msgid "Because the %(white)s engine died" msgstr "Porque o mecanismo de xadrez %(white)s foi encerrado" #: lib/pychess/Utils/repr.py:66 #, python-format msgid "Because the %(black)s engine died" msgstr "Porque a engine %(black)s morreu" #: lib/pychess/Utils/repr.py:67 msgid "Because the connection to the server was lost" msgstr "Porque a conexão com o servidor foi perdida" #: lib/pychess/Utils/repr.py:68 msgid "The reason is unknown" msgstr "A razão é desconhecida" #: lib/pychess/Utils/TimeModel.py:229 msgid "min" msgstr "min" #: lib/pychess/Utils/TimeModel.py:231 msgid "sec" msgstr "s" #: lib/pychess/Variants/asean.py:12 msgid "" "ASEAN: http://www.ncf-" "phil.org/downloadables/2014/May/Asean_chess/Laws_of_ASEAN_Chess_2011_Nov_26.doc" msgstr "" #: lib/pychess/Variants/asean.py:13 msgid "ASEAN" msgstr "" #: lib/pychess/Variants/asean.py:33 msgid "Makruk: http://en.wikipedia.org/wiki/Makruk" msgstr "" #: lib/pychess/Variants/asean.py:34 msgid "Makruk" msgstr "" #: lib/pychess/Variants/asean.py:60 msgid "Cambodian: http://www.khmerinstitute.org/culture/ok.html" msgstr "" #: lib/pychess/Variants/asean.py:61 msgid "Cambodian" msgstr "" #: lib/pychess/Variants/asean.py:86 msgid "" "Ai-Wok: http://www.open-" "aurec.com/wbforum/viewtopic.php?p=199364&sid=20963a1de2c164050de019e5ed6bf7c4#p199364" msgstr "" #: lib/pychess/Variants/asean.py:87 msgid "Ai-Wok" msgstr "" #: lib/pychess/Variants/asean.py:111 msgid "Sittuyin: http://en.wikipedia.org/wiki/Sittuyin" msgstr "" #: lib/pychess/Variants/asean.py:112 msgid "Sittuyin" msgstr "" #: lib/pychess/Variants/asymmetricrandom.py:12 msgid "" "FICS wild/4: http://www.freechess.org/Help/HelpFiles/wild.html\n" "* Randomly chosen pieces (two queens or three rooks possible)\n" "* Exactly one king of each color\n" "* Pieces placed randomly behind the pawns, SUBJECT TO THE CONSTRAINT THAT THE BISHOPS ARE BALANCED\n" "* No castling\n" "* Black's arrangement DOES NOT mirrors white's" msgstr "" #: lib/pychess/Variants/asymmetricrandom.py:18 msgid "Asymmetric Random" msgstr "Aleatório Assimétrico" #: lib/pychess/Variants/atomic.py:14 msgid "FICS atomic: http://www.freechess.org/Help/HelpFiles/atomic.html" msgstr "FICS atômico: http://www.freechess.org/Help/HelpFiles/atomic.html" #: lib/pychess/Variants/blindfold.py:7 msgid "" "Classic chess rules with hidden figurines\n" "http://en.wikipedia.org/wiki/Blindfold_chess" msgstr "Regras clássicas do xadrez com peças ocultas \nhttp://en.wikipedia.org/wiki/Blindfold_chess" #: lib/pychess/Variants/blindfold.py:9 #: lib/pychess/widgets/newGameDialog.py:264 msgid "Blindfold" msgstr "Xadrez às Cegas" #: lib/pychess/Variants/blindfold.py:18 msgid "" "Classic chess rules with hidden pawns\n" "http://en.wikipedia.org/wiki/Blindfold_chess" msgstr "Regras clássica do xadrez com Peões ocultos\nhttp://en.wikipedia.org/wiki/Blindfold_chess" #: lib/pychess/Variants/blindfold.py:20 msgid "Hidden pawns" msgstr "Ocultar Peões" #: lib/pychess/Variants/blindfold.py:29 msgid "" "Classic chess rules with hidden pieces\n" "http://en.wikipedia.org/wiki/Blindfold_chess" msgstr "Regras clássicas do xadrez com peças ocultas \nhttp://en.wikipedia.org/wiki/Blindfold_chess" #: lib/pychess/Variants/blindfold.py:31 msgid "Hidden pieces" msgstr "Ocultar peças" #: lib/pychess/Variants/blindfold.py:40 msgid "" "Classic chess rules with all pieces white\n" "http://en.wikipedia.org/wiki/Blindfold_chess" msgstr "Regras clássicas do xadrez com todas as peças brancas\nhttp://en.wikipedia.org/wiki/Blindfold_chess" #: lib/pychess/Variants/blindfold.py:42 msgid "All white" msgstr "Todas brancas" #: lib/pychess/Variants/bughouse.py:8 msgid "FICS bughouse: http://www.freechess.org/Help/HelpFiles/bughouse.html" msgstr "FICS Bughouse: http://www.freechess.org/Help/HelpFiles/bughouse.html" #: lib/pychess/Variants/corner.py:12 msgid "" "http://brainking.com/en/GameRules?tp=2\n" "* Placement of the pieces on the 1st and 8th row are randomized\n" "* The king is in the right hand corner\n" "* Bishops must start on opposite color squares\n" "* Black's starting position is obtained by rotating white's position 180 degrees around the board's center\n" "* No castling" msgstr "" #: lib/pychess/Variants/corner.py:18 msgid "Corner" msgstr "Canto" #: lib/pychess/Variants/crazyhouse.py:8 msgid "" "FICS crazyhouse: http://www.freechess.org/Help/HelpFiles/crazyhouse.html" msgstr "FICS crazyhouse: http://www.freechess.org/Help/HelpFiles/crazyhouse.html" #: lib/pychess/Variants/euroshogi.py:9 msgid "EuroShogi: http://en.wikipedia.org/wiki/EuroShogi" msgstr "" #: lib/pychess/Variants/euroshogi.py:10 msgid "EuroShogi" msgstr "" #: lib/pychess/Variants/fischerandom.py:18 msgid "" "http://en.wikipedia.org/wiki/Chess960\n" "FICS wild/fr: http://www.freechess.org/Help/HelpFiles/wild.html" msgstr "http://en.wikipedia.org/wiki/Chess960\nFICS wild/fr: http://www.freechess.org/Help/HelpFiles/wild.html" #: lib/pychess/Variants/fischerandom.py:20 msgid "Fischer Random" msgstr "Aleatório de Fischer" #: lib/pychess/Variants/kingofthehill.py:8 msgid "" "Bringing your king legally to the center (e4, d4, e5, d5) instantly wins the game!\n" "Normal rules apply in other cases and checkmate also ends the game." msgstr "" #: lib/pychess/Variants/kingofthehill.py:10 msgid "King of the hill" msgstr "" #: lib/pychess/Variants/knightodds.py:8 msgid "One player starts with one less knight piece" msgstr "Um jogador começa sem um Cavalo" #: lib/pychess/Variants/knightodds.py:9 msgid "Knight odds" msgstr "Vantagem do Cavalo" #: lib/pychess/Variants/losers.py:8 msgid "FICS losers: http://www.freechess.org/Help/HelpFiles/losers_chess.html" msgstr "FICS losers: http://www.freechess.org/Help/HelpFiles/losers_chess.html" #: lib/pychess/Variants/normal.py:4 msgid "" "Classic chess rules\n" "http://en.wikipedia.org/wiki/Chess" msgstr "Regras clássicas do xadrez\nhttp://en.wikipedia.org/wiki/Chess" #: lib/pychess/Variants/normal.py:6 lib/pychess/widgets/newGameDialog.py:157 msgid "Normal" msgstr "Tempo padrão" #: lib/pychess/Variants/pawnodds.py:8 msgid "One player starts with one less pawn piece" msgstr "Um jogador começa com um Peão a menos" #: lib/pychess/Variants/pawnodds.py:9 msgid "Pawn odds" msgstr "Vantagem do Peão" #: lib/pychess/Variants/pawnspassed.py:11 msgid "" "FICS wild/8a: http://www.freechess.org/Help/HelpFiles/wild.html\n" "White pawns start on 5th rank and black pawns on the 4th rank" msgstr "" #: lib/pychess/Variants/pawnspassed.py:13 msgid "Pawns Passed" msgstr "Peões passados" #: lib/pychess/Variants/pawnspushed.py:10 msgid "" "FICS wild/8: http://www.freechess.org/Help/HelpFiles/wild.html\n" "Pawns start on 4th and 5th ranks rather than 2nd and 7th" msgstr "" #: lib/pychess/Variants/pawnspushed.py:12 msgid "Pawns Pushed" msgstr "Peões avançados" #: lib/pychess/Variants/queenodds.py:8 msgid "One player starts with one less queen piece" msgstr "Um jogador começa sem a rainha" #: lib/pychess/Variants/queenodds.py:9 msgid "Queen odds" msgstr "Vantagem da Dama" #: lib/pychess/Variants/randomchess.py:11 msgid "" "FICS wild/3: http://www.freechess.org/Help/HelpFiles/wild.html\n" "* Randomly chosen pieces (two queens or three rooks possible)\n" "* Exactly one king of each color\n" "* Pieces placed randomly behind the pawns\n" "* No castling\n" "* Black's arrangement mirrors white's" msgstr "" #: lib/pychess/Variants/randomchess.py:17 #: lib/pychess/widgets/TaskerManager.py:155 msgid "Random" msgstr "Aleatório" #: lib/pychess/Variants/rookodds.py:8 msgid "One player starts with one less rook piece" msgstr "Um jogador começa sem uma Torre" #: lib/pychess/Variants/rookodds.py:9 msgid "Rook odds" msgstr "Vantagem da Torre" #: lib/pychess/Variants/shuffle.py:11 msgid "" "xboard nocastle: http://home.hccnet.nl/h.g.muller/engine-intf.html#8\n" "FICS wild/2: http://www.freechess.org/Help/HelpFiles/wild.html\n" "* Random arrangement of the pieces behind the pawns\n" "* No castling\n" "* Black's arrangement mirrors white's" msgstr "" #: lib/pychess/Variants/suicide.py:11 msgid "" "FICS suicide: http://www.freechess.org/Help/HelpFiles/suicide_chess.html" msgstr "FICS suicídio: http://www.freechess.org/Help/HelpFiles/suicide_chess.html" #: lib/pychess/Variants/theban.py:10 msgid "" "Variant developed by Kai Laskos: " "http://talkchess.com/forum/viewtopic.php?t=40990" msgstr "Variante desenvolvida por Kai Laskos: http://talkchess.com/forum/viewtopic.php?t=40990" #: lib/pychess/Variants/theban.py:11 msgid "Theban" msgstr "Theban" #: lib/pychess/Variants/threecheck.py:10 msgid "Win by giving check 3 times" msgstr "" #: lib/pychess/Variants/threecheck.py:11 msgid "Three-check" msgstr "" #: lib/pychess/Variants/upsidedown.py:10 msgid "" "FICS wild/5: http://www.freechess.org/Help/HelpFiles/wild.html\n" "http://en.wikipedia.org/wiki/Chess_variant#Chess_with_different_starting_positions\n" "Pawns start on their 7th rank rather than their 2nd rank!" msgstr "" #: lib/pychess/Variants/upsidedown.py:13 msgid "Upside Down" msgstr "Cabeça para baixo" #: lib/pychess/Variants/wildcastle.py:10 msgid "" "xboard wildcastle http://home.hccnet.nl/h.g.muller/engine-intf.html#8\n" "FICS wild/0: http://www.freechess.org/Help/HelpFiles/wild.html\n" "* White has the typical set-up at the start.\n" "* Black's pieces are the same, except that the King and Queen are reversed,\n" "* so they are not on the same files as White's King and Queen.\n" "* Castling is done similarly to normal chess:\n" "* o-o-o indicates long castling and o-o short castling." msgstr "" #: lib/pychess/Variants/wildcastle.py:17 msgid "Wildcastle" msgstr "Wildcastle" #: lib/pychess/Variants/wildcastleshuffle.py:11 msgid "" "xboard wildcastle http://home.hccnet.nl/h.g.muller/engine-intf.html#8\n" "FICS wild/1: http://www.freechess.org/Help/HelpFiles/wild.html\n" "* In this variant both sides have the same set of pieces as in normal chess.\n" "* The white king starts on d1 or e1 and the black king starts on d8 or e8,\n" "* and the rooks are in their usual positions.\n" "* Bishops are always on opposite colors.\n" "* Subject to these constraints the position of the pieces on their first ranks is random.\n" "* Castling is done similarly to normal chess:\n" "* o-o-o indicates long castling and o-o short castling." msgstr "" #: lib/pychess/Variants/wildcastleshuffle.py:20 msgid "Wildcastle shuffle" msgstr "Wildcastle shuffle" #: lib/pychess/widgets/analyzegameDialog.py:85 msgid "Game analyzing in progress..." msgstr "" #: lib/pychess/widgets/analyzegameDialog.py:86 msgid "Do you want to abort it?" msgstr "" #: lib/pychess/widgets/analyzegameDialog.py:95 #: lib/pychess/widgets/gamewidget.py:202 lib/pychess/widgets/gamewidget.py:320 msgid "Abort" msgstr "Anular" #: lib/pychess/widgets/ChatView.py:125 msgid "Observers" msgstr "" #: lib/pychess/widgets/ChatWindow.py:222 msgid "You have opened no conversations yet" msgstr "Você não abriu conversas ainda" #: lib/pychess/widgets/ChatWindow.py:254 msgid "Only registered users may talk to this channel" msgstr "Somente jogadores registrados podem falar neste canal" #: lib/pychess/widgets/ChatWindow.py:312 msgid "No conversation's selected" msgstr "Nenhuma conversa foi selecionada" #: lib/pychess/widgets/ChatWindow.py:350 msgid "Loading player data" msgstr "Carregando dados do jogador" #: lib/pychess/widgets/ChatWindow.py:400 msgid "Receiving list of players" msgstr "Recebendo lista de jogadores" #: lib/pychess/widgets/ChatWindow.py:518 msgid "Friends" msgstr "" #: lib/pychess/widgets/ChatWindow.py:529 msgid "Admin" msgstr "" #: lib/pychess/widgets/ChatWindow.py:540 msgid "More channels" msgstr "Mais canais" #: lib/pychess/widgets/ChatWindow.py:548 msgid "More players" msgstr "Mais jogadores" #: lib/pychess/widgets/ChatWindow.py:558 msgid "Computers" msgstr "" #: lib/pychess/widgets/ChatWindow.py:568 msgid "BlindFold" msgstr "" #: lib/pychess/widgets/ChatWindow.py:578 msgid "Guests" msgstr "" #: lib/pychess/widgets/ChatWindow.py:805 msgid "Conversations" msgstr "Conversas" #: lib/pychess/widgets/ChatWindow.py:807 msgid "Conversation info" msgstr "Informações sobre conversas" #: lib/pychess/widgets/enginesDialog.py:152 msgid "Select engine" msgstr "Selecionar engine" #: lib/pychess/widgets/enginesDialog.py:156 msgid "Executable files" msgstr "" #: lib/pychess/widgets/enginesDialog.py:176 #: lib/pychess/widgets/enginesDialog.py:210 #: lib/pychess/widgets/enginesDialog.py:235 #, python-format msgid "Unable to add %s" msgstr "" #: lib/pychess/widgets/enginesDialog.py:177 msgid "wine not installed" msgstr "" #: lib/pychess/widgets/enginesDialog.py:211 #: lib/pychess/widgets/enginesDialog.py:236 msgid "There is something wrong with this executable" msgstr "" #: lib/pychess/widgets/enginesDialog.py:266 msgid "Select working directory" msgstr "Selecione o diretório de trabalho" #: lib/pychess/widgets/gamenanny.py:115 #, python-format msgid " invalid engine move: %s" msgstr "" #: lib/pychess/widgets/gamenanny.py:134 msgid "Offer Rematch" msgstr "Oferecer revanche" #: lib/pychess/widgets/gamenanny.py:136 lib/pychess/widgets/gamenanny.py:147 #, python-format msgid "Observe %s" msgstr "Observar %s" #: lib/pychess/widgets/gamenanny.py:168 msgid "Play Rematch" msgstr "Jogar revanche" #: lib/pychess/widgets/gamenanny.py:171 msgid "Undo one move" msgstr "Voltar um lance" #: lib/pychess/widgets/gamenanny.py:173 msgid "Undo two moves" msgstr "Voltar dois lances" #: lib/pychess/widgets/gamenanny.py:203 msgid "The game is paused" msgstr "O jogo está pausado" #: lib/pychess/widgets/gamenanny.py:221 lib/pychess/widgets/gamenanny.py:222 msgid "Loaded game" msgstr "Jogo carregado" #: lib/pychess/widgets/gamenanny.py:228 msgid "Saved game" msgstr "Jogo gravado" #: lib/pychess/widgets/gamenanny.py:232 msgid "Analyzer started" msgstr "Engine iniciada" #: lib/pychess/widgets/gamenanny.py:281 msgid "You sent an abort offer" msgstr "Você enviou uma oferta de anulação" #: lib/pychess/widgets/gamenanny.py:283 msgid "You sent an adjournment offer" msgstr "Você enviou uma oferta de adiamento" #: lib/pychess/widgets/gamenanny.py:285 msgid "You sent a draw offer" msgstr "Você enviou uma oferta de empate" #: lib/pychess/widgets/gamenanny.py:287 msgid "You sent a pause offer" msgstr "Você enviou uma oferta de pausa" #: lib/pychess/widgets/gamenanny.py:289 msgid "You sent a resume offer" msgstr "Você enviou uma oferta de continuação" #: lib/pychess/widgets/gamenanny.py:291 msgid "You sent an undo offer" msgstr "Você enviou uma pedido para voltar jogada" #: lib/pychess/widgets/gamenanny.py:293 msgid "You asked your opponent to move" msgstr "Você pediu para seu oponente mover" #: lib/pychess/widgets/gamenanny.py:305 #, python-format msgid "Engine, %s, has died" msgstr "Mecanismo de xadrez, %s, foi encerrado" #: lib/pychess/widgets/gamenanny.py:306 msgid "" "PyChess has lost connection to the engine, probably because it has died.\n" "\n" "You can try to start a new game with the engine, or try to play against another one." msgstr "PyChess perdeu a conexão com o mecanismo de xadrez, provavelmente porque ele foi encerrado.\nVocê pode tentar iniciar um novo jogo com o mecanismo de xadrez, ou tentar jogar contra outro." #: lib/pychess/widgets/gamewidget.py:204 msgid "" "This game can be automatically aborted without rating loss because there has" " not yet been two moves made" msgstr "Este jogo pode ser anulado automaticamente sem perda de posições na classificação, pois ainda não foram feitos dois lances" #: lib/pychess/widgets/gamewidget.py:206 msgid "Offer Abort" msgstr "Oferecer anulação" #: lib/pychess/widgets/gamewidget.py:208 msgid "" "Your opponent must agree to abort the game because there has been two or " "more moves made" msgstr "Seu oponente precisa concordar em anular o jogo pois há dois ou mais lances já efetuados" #: lib/pychess/widgets/gamewidget.py:226 msgid "This game can not be adjourned because one or both players are guests" msgstr "Este jogo não pode ser adiado pois um ou mais jogadores são convidados" #: lib/pychess/widgets/gamewidget.py:243 msgid "Claim Draw" msgstr "Reclamar empate" #: lib/pychess/widgets/gamewidget.py:325 msgid "Pause" msgstr "Pausar" #: lib/pychess/widgets/gamewidget.py:326 msgid "Resume" msgstr "Continuar" #: lib/pychess/widgets/gamewidget.py:328 msgid "Offer Pause" msgstr "Oferecer Pausa" #: lib/pychess/widgets/gamewidget.py:329 msgid "Offer Resume" msgstr "Oferecer Continuação" #: lib/pychess/widgets/gamewidget.py:333 msgid "Undo" msgstr "Voltar jogada" #: lib/pychess/widgets/gamewidget.py:335 msgid "Offer Undo" msgstr "Oferecer voltar jogada" #: lib/pychess/widgets/gamewidget.py:550 msgid " has lagged for 30 seconds" msgstr "" #: lib/pychess/widgets/gamewidget.py:566 msgid " is lagging heavily but hasn't disconnected" msgstr "" #: lib/pychess/widgets/gamewidget.py:567 msgid "Continue to wait for opponent, or try to adjourn the game?" msgstr "Continuar esperando pelo oponente, ou tentar adiar o jogo?" #: lib/pychess/widgets/gamewidget.py:575 msgid "Wait" msgstr "Espere" #: lib/pychess/widgets/gamewidget.py:576 msgid "Adjourn" msgstr "Adiar" #: lib/pychess/widgets/gamewidget.py:648 msgid "Jump to initial position" msgstr "Ir para a posição inicial" #: lib/pychess/widgets/gamewidget.py:653 msgid "Step back one move" msgstr "Retroceder um lance" #: lib/pychess/widgets/gamewidget.py:658 msgid "Go back to the main line" msgstr "" #: lib/pychess/widgets/gamewidget.py:664 msgid "Step forward one move" msgstr "Adiantar um lance" #: lib/pychess/widgets/gamewidget.py:669 msgid "Jump to latest position" msgstr "Ir para a última posição" #: lib/pychess/widgets/gamewidget.py:903 msgid "PyChess was unable to load your panel settings" msgstr "PyChess não conseguiu carregar as configurações do seu painel" #: lib/pychess/widgets/gamewidget.py:904 msgid "" "Your panel settings have been reset. If this problem repeats, you should " "report it to the developers" msgstr "As suas configurações de painel foram redefinidas. Se este problema se repetir, você deve relatar aos desenvolvedores" #: lib/pychess/widgets/ionest.py:67 lib/pychess/widgets/newGameDialog.py:389 #: lib/pychess/widgets/TaskerManager.py:210 msgid "You" msgstr "Você" #: lib/pychess/widgets/ionest.py:70 lib/pychess/widgets/newGameDialog.py:390 #: lib/pychess/widgets/preferencesDialog.py:61 #: lib/pychess/widgets/TaskerManager.py:213 msgid "Guest" msgstr "Convidado" #: lib/pychess/widgets/ionest.py:93 msgid "Error loading game" msgstr "" #: lib/pychess/widgets/ionest.py:127 lib/pychess/widgets/newGameDialog.py:480 msgid "Open Game" msgstr "Abrir jogo" #: lib/pychess/widgets/ionest.py:137 msgid "All Files" msgstr "Todos os arquivos" #: lib/pychess/widgets/ionest.py:140 msgid "Detect type automatically" msgstr "Detectar formato automaticamente" #: lib/pychess/widgets/ionest.py:146 msgid "All Chess Files" msgstr "Todos os arquivos de xadrez" #: lib/pychess/widgets/ionest.py:228 msgid "Save Game" msgstr "Salvar jogo" #: lib/pychess/widgets/ionest.py:228 msgid "Export position" msgstr "Exportar posição" #: lib/pychess/widgets/ionest.py:232 lib/pychess/widgets/ionest.py:360 msgid "vs." msgstr "vs." #: lib/pychess/widgets/ionest.py:249 #, python-format msgid "Unknown file type '%s'" msgstr "Formato de arquivo desconhecido '%s'" #: lib/pychess/widgets/ionest.py:250 #, python-format msgid "" "Was unable to save '%(uri)s' as PyChess doesn't know the format " "'%(ending)s'." msgstr "Não foi possível salvar '%(uri)s' porque o PyChess não reconhece o formato '%(ending)s'." #: lib/pychess/widgets/ionest.py:266 #, python-format msgid "Unable to save file '%s'" msgstr "Não foi possível salvar o arquivo '%s'" #: lib/pychess/widgets/ionest.py:268 msgid "" "You don't have the necessary rights to save the file.\n" "Please ensure that you have given the right path and try again." msgstr "Você não tem a permissão necessária para salvar o arquivo.\nPor favor, assegure-se de ter indicado corretamente o caminho e tente novamente." #: lib/pychess/widgets/ionest.py:276 msgid "_Replace" msgstr "_Substituir" #: lib/pychess/widgets/ionest.py:280 msgid "File exists" msgstr "O arquivo já existe" #: lib/pychess/widgets/ionest.py:282 #, python-format msgid "" "A file named '%s' already exists. Would you like to replace " "it?" msgstr "Um arquivo com o nome '%s' já existe. Você deseja substituí-lo?" #: lib/pychess/widgets/ionest.py:283 #, python-format msgid "" "The file already exists in '%s'. If you replace it, its content will be " "overwritten." msgstr "O arquivo já existe em '%s'. Se você substituí-lo, seu conteúdo será sobrescrito." #: lib/pychess/widgets/ionest.py:299 msgid "Could not save the file" msgstr "Não foi possível salvar o arquivo" #: lib/pychess/widgets/ionest.py:300 msgid "PyChess was not able to save the game" msgstr "PyChess não conseguiu salvar o jogo" #: lib/pychess/widgets/ionest.py:301 #, python-format msgid "The error was: %s" msgstr "O erro foi: %s" #: lib/pychess/widgets/ionest.py:325 #, python-format msgid "There is %d game with unsaved moves." msgid_plural "There are %d games with unsaved moves." msgstr[0] "Há %d jogo com lances não-salvos." msgstr[1] "Há %d jogos com movimentos não-salvos." #: lib/pychess/widgets/ionest.py:328 msgid "Save moves before closing?" msgstr "Salvar lances antes de fechar?" #: lib/pychess/widgets/ionest.py:339 msgid "Unable to save to configured file. Save the games before closing?" msgstr "" #: lib/pychess/widgets/ionest.py:366 #, python-format msgid "_Save %d document" msgid_plural "_Save %d documents" msgstr[0] "_Salvar %d documento" msgstr[1] "_Salvar %d documentos" #: lib/pychess/widgets/ionest.py:412 msgid "Save the current game before you close it?" msgstr "" #: lib/pychess/widgets/ionest.py:420 msgid "" "Unable to save to configured file. Save the current game before you close " "it?" msgstr "" #: lib/pychess/widgets/ionest.py:434 msgid "" "It is not possible later to continue the game,\n" "if you don't save it." msgstr "Não será possível continuar posteriormente a partida \nse você não salvá-la." #: lib/pychess/widgets/LogDialog.py:26 msgid "PyChess Information Window" msgstr "Janela de informações do PyChess" #: lib/pychess/widgets/LogDialog.py:184 lib/pychess/widgets/LogDialog.py:188 msgid "of" msgstr "de" #: lib/pychess/widgets/newGameDialog.py:84 #: lib/pychess/widgets/newGameDialog.py:85 msgid "Human Being" msgstr "Ser humano" #: lib/pychess/widgets/newGameDialog.py:155 msgid "Rapid" msgstr "Rápido" #: lib/pychess/widgets/newGameDialog.py:224 msgid "Minutes:" msgstr "Minutos:" #: lib/pychess/widgets/newGameDialog.py:228 msgid "Gain:" msgstr "Incremento:" #: lib/pychess/widgets/newGameDialog.py:241 #, python-format msgid "%(name)s %(minutes)d min + %(gain)d sec/move" msgstr "%(name)s %(minutes)dmin + %(gain)ds/lance" #: lib/pychess/widgets/newGameDialog.py:244 #, python-format msgid "%(name)s %(minutes)d min %(gain)d sec/move" msgstr "%(name)s %(minutes)dmin %(gain)ds/lance" #: lib/pychess/widgets/newGameDialog.py:247 #, python-format msgid "%(name)s %(minutes)d min" msgstr "%(name)s %(minutes)d min" #: lib/pychess/widgets/newGameDialog.py:265 msgid "Odds" msgstr "Vantagem" #: lib/pychess/widgets/newGameDialog.py:269 msgid "Asian variants" msgstr "" #: lib/pychess/widgets/newGameDialog.py:301 msgid " chess" msgstr " _" #: lib/pychess/widgets/newGameDialog.py:682 msgid "Type or paste PGN game or FEN positions here" msgstr "Tecle ou cole sua partida PGN ou posição FEN aqui" #: lib/pychess/widgets/newGameDialog.py:725 msgid "Enter Game" msgstr "Entrar no Jogo" #: lib/pychess/widgets/preferencesDialog.py:123 msgid "Select book file" msgstr "Selecionar arquivo de livro" #: lib/pychess/widgets/preferencesDialog.py:128 msgid "Opening books" msgstr "Livro de aberturas" #: lib/pychess/widgets/preferencesDialog.py:156 msgid "Select Gaviota TB path" msgstr "Selecionar diretório Gaviota TB" #: lib/pychess/widgets/preferencesDialog.py:331 msgid "Open Sound File" msgstr "Abrir Arquivo de Som" #: lib/pychess/widgets/preferencesDialog.py:341 msgid "Sound files" msgstr "Arquivos de som" #: lib/pychess/widgets/preferencesDialog.py:485 msgid "Undescribed panel" msgstr "Painel sem descrição" #: lib/pychess/widgets/preferencesDialog.py:678 msgid "Select auto save path" msgstr "" #: lib/pychess/widgets/tipOfTheDay.py:51 msgid "" "You can start a new game by Game > New Game, in New Game " "window do you can choose Players, Time Control and Chess " "Variants." msgstr "Você pode iniciar um novo jogo em Jogo > Novo Jogo, na nova janela do jogo você pode escolher Jogadores, Controle de tempo e Variante do xadrez." #: lib/pychess/widgets/tipOfTheDay.py:52 msgid "" "You can choose from 20 different difficulties to play against the computer." msgstr "" #: lib/pychess/widgets/tipOfTheDay.py:53 msgid "" "Chess Variants are like the pieces of the last line will be placed on the " "board." msgstr "As variantes do xadrez são a maneira como as peças da última linha são posicionadas no tabuleiro." #: lib/pychess/widgets/tipOfTheDay.py:54 msgid "" "To save a game Game > Save Game As, give the filename and " "choose where you want to be saved. At the bottom choose extension type of " "the file, and Save." msgstr "Para salvar um jogo: Jogo > Salvar jogo como, insira o nome do arquivo e escolha onde quer que seja salvo. Escolha o tipo da extensão do arquivo, e Salvar." #: lib/pychess/widgets/tipOfTheDay.py:55 msgid "" "Do you know that you can call flag when the clock is with you, " "Actions > Call Flag." msgstr "Você sabia que pode acusar a queda de seta quando é sua vez de jogar? Ações > Acusar queda de seta." #: lib/pychess/widgets/tipOfTheDay.py:56 msgid "Pressing Ctrl+Z to offer opponent the possible rollback moves." msgstr "Pressione Ctrl+Z para pedir ao adversário para voltar lances." #: lib/pychess/widgets/tipOfTheDay.py:57 msgid "" "To play on Fullscreen mode, just type F11. Coming back, F11 " "again." msgstr "Para jogar em modo Tela cheia, é só apertar F11. Para voltar à tela normal, F11 novamente." #: lib/pychess/widgets/tipOfTheDay.py:58 msgid "Hint mode analyzing your game, enable this type Ctrl+H." msgstr "O Modo sugestão analisará seu jogo. Ative-o com Ctrl+H." #: lib/pychess/widgets/tipOfTheDay.py:59 msgid "" "Spy mode analyzing the oponnent game, enable this type Ctrl+Y." msgstr "Modo espião analisará o jogo do oponente. Ative-o com Ctrl+Y." #: lib/pychess/widgets/tipOfTheDay.py:60 msgid "" "You can play chess listening to the sounds of the game, for that, " "Settings > Preferences > Sound tab, enable Use " "sounds in PyChess and choose your preferred sounds." msgstr "Você pode jogar xadrez ouvindo os sons do jogo. Para isso, Configurações > Preferências > Aba Sons, ative Usar sons no PyChess e escolha seus sons preferidos." #: lib/pychess/widgets/tipOfTheDay.py:61 msgid "" "Do you know that you can help translate Pychess in your language, " "Help > Translate Pychess." msgstr "Você sabia que pode ajudar a traduzir o PyChess para sua língua, Ajuda > Traduza o PyChess." #: lib/pychess/widgets/tipOfTheDay.py:62 msgid "" "Do you know that it is possible to finish a chess game in just 2 turns?" msgstr "Você sabia que é possível fazer um xeque-mate com dois movimentos?" #: lib/pychess/widgets/tipOfTheDay.py:63 msgid "" "Do you know that the number of possible chess games exceeds the number of " "atoms in the Universe?" msgstr "Você sabia que o número de possíveis jogos no xadrez é maior que o número de átomos do Universo?" #: lib/pychess/ic/managers/ChatManager.py:184 msgid "Shout" msgstr "Shout" #: lib/pychess/ic/managers/ChatManager.py:185 msgid "Chess Shout" msgstr "Chess Shout" #: lib/pychess/ic/managers/ChatManager.py:195 #, python-format msgid "Unofficial channel %d" msgstr "Canal não-oficial %d" #: lib/pychess/Utils/lutils/LBoard.py:152 #, python-format msgid "" "FEN needs 6 data fields. \n" "\n" "%s" msgstr "" #: lib/pychess/Utils/lutils/LBoard.py:154 #, python-format msgid "" "FEN needs at least 2 data fields in fenstr. \n" "\n" "%s" msgstr "" #: lib/pychess/Utils/lutils/LBoard.py:175 #, python-format msgid "" "Needs 7 slashes in piece placement field. \n" "\n" "%s" msgstr "" #: lib/pychess/Utils/lutils/LBoard.py:178 #, python-format msgid "" "Active color field must be one of w or b. \n" "\n" "%s" msgstr "" #: lib/pychess/Utils/lutils/LBoard.py:189 #, python-format msgid "" "Castling availability field is not legal. \n" "\n" "%s" msgstr "" #: lib/pychess/Utils/lutils/LBoard.py:192 #, python-format msgid "" "En passant cord is not legal. \n" "\n" "%s" msgstr "Coordenadas do En passant não são legais. \n\n%s" #: lib/pychess/Utils/lutils/lmove.py:260 msgid "invalid promoted piece" msgstr "peça inválida para promoção" #: lib/pychess/Utils/lutils/lmove.py:272 msgid "the move needs a piece and a cord" msgstr "o lance precisa de uma peça e uma coordenada" #: lib/pychess/Utils/lutils/lmove.py:306 lib/pychess/Utils/lutils/lmove.py:556 msgid "promotion move without promoted piece is incorrect" msgstr "movimento de promoção sem a peça promovida é incorreto" #: lib/pychess/Utils/lutils/lmove.py:312 #, python-format msgid "the captured cord (%s) is incorrect" msgstr "a coordenada capturada (%s) está incorreta" #: lib/pychess/Utils/lutils/lmove.py:323 #, python-format msgid "the end cord (%s) is incorrect" msgstr "" #: lib/pychess/Utils/lutils/strateval.py:24 sidepanel/commentPanel.py:191 #: sidepanel/commentPanel.py:208 msgid "and" msgstr "e" #: lib/pychess/Utils/lutils/strateval.py:43 msgid "draws" msgstr "empatam" #: lib/pychess/Utils/lutils/strateval.py:45 msgid "mates" msgstr "fazem xeque-mate" #: lib/pychess/Utils/lutils/strateval.py:49 msgid "puts opponent in check" msgstr "põem o adversário em xeque" #: lib/pychess/Utils/lutils/strateval.py:73 msgid "improves king safety" msgstr "melhora a segurança do Rei" #: lib/pychess/Utils/lutils/strateval.py:75 msgid "slightly improves king safety" msgstr "melhora ligeiramente a segurança do Rei" #: lib/pychess/Utils/lutils/strateval.py:108 msgid "moves a rook to an open file" msgstr "movem uma Torre para uma coluna aberta" #: lib/pychess/Utils/lutils/strateval.py:109 msgid "moves an rook to a half-open file" msgstr "movem uma Torre para uma coluna semi-aberta" #: lib/pychess/Utils/lutils/strateval.py:119 #: lib/pychess/Utils/lutils/strateval.py:121 #: lib/pychess/Utils/lutils/strateval.py:124 #: lib/pychess/Utils/lutils/strateval.py:126 #, python-format msgid "moves bishop into fianchetto: %s" msgstr "movem o Bispo para o fianqueto: %s" #: lib/pychess/Utils/lutils/strateval.py:132 #, python-format msgid "promotes a Pawn to a %s" msgstr "promovem um Peão a %s" #: lib/pychess/Utils/lutils/strateval.py:135 msgid "castles" msgstr "rocam" #: lib/pychess/Utils/lutils/strateval.py:158 msgid "takes back material" msgstr "recuperam material" #: lib/pychess/Utils/lutils/strateval.py:162 #: lib/pychess/Utils/lutils/strateval.py:170 msgid "sacrifies material" msgstr "sacrificam peça" #: lib/pychess/Utils/lutils/strateval.py:164 msgid "exchanges material" msgstr "trocam peças" #: lib/pychess/Utils/lutils/strateval.py:166 msgid "captures material" msgstr "capturam peça" #: lib/pychess/Utils/lutils/strateval.py:291 #, python-format msgid "rescues a %s" msgstr "resgata %s" #: lib/pychess/Utils/lutils/strateval.py:294 #, python-format msgid "threatens to win material by %s" msgstr "ameaça ganhar a peça por %s" #: lib/pychess/Utils/lutils/strateval.py:296 #, python-format msgid "increases the pressure on %s" msgstr "aumenta a pressão em %s" #: lib/pychess/Utils/lutils/strateval.py:298 #, python-format msgid "defends %s" msgstr "defendem %s" #: lib/pychess/Utils/lutils/strateval.py:336 #, python-format msgid "pins an enemy %(oppiece)s on the %(piece)s at %(cord)s" msgstr "cravam %(oppiece)s do inimigo no(a) %(piece)s em %(cord)s" #: lib/pychess/Utils/lutils/strateval.py:369 #, python-format msgid "White has a new piece in outpost: %s" msgstr "Brancas tem uma peça em posto avançado: %s" #: lib/pychess/Utils/lutils/strateval.py:377 #, python-format msgid "Black has a new piece in outpost: %s" msgstr "Negras tem uma peça em posto avançado: %s" #: lib/pychess/Utils/lutils/strateval.py:416 #, python-format msgid "%(color)s has a new passed pawn on %(cord)s" msgstr "%(color)s têm um novo Peão passado em %(cord)s" #: lib/pychess/Utils/lutils/strateval.py:470 msgid "half-open" msgstr "semi-aberta" #: lib/pychess/Utils/lutils/strateval.py:472 #, python-format msgid "in the %(x)s%(y)s file" msgstr "na coluna %(x)s%(y)s" #: lib/pychess/Utils/lutils/strateval.py:474 #, python-format msgid "in the %(x)s%(y)s files" msgstr "nas colunas %(x)s%(y)s" #: lib/pychess/Utils/lutils/strateval.py:477 #, python-format msgid "%(color)s got a double pawn %(place)s" msgstr "%(color)s têm um Peão dobrado %(place)s" #: lib/pychess/Utils/lutils/strateval.py:478 #, python-format msgid "%(color)s got new double pawns %(place)s" msgstr "%(color)s têm novos Peões dobrados %(place)s" #: lib/pychess/Utils/lutils/strateval.py:485 #, python-format msgid "%(color)s got an isolated pawn in the %(x)s file" msgid_plural "%(color)s got isolated pawns in the %(x)s files" msgstr[0] "%(color)s têm um Peão isolado na coluna %(x)s" msgstr[1] "%(color)s têm Peões isolados nas colunas %(x)s" #: lib/pychess/Utils/lutils/strateval.py:492 #, python-format msgid "%s moves pawns into stonewall formation" msgstr "%s movem os Peões para uma formação de muralha" #: lib/pychess/Utils/lutils/strateval.py:507 #: lib/pychess/Utils/lutils/strateval.py:514 #, python-format msgid "%s can no longer castle" msgstr "%s não podem mais rocar" #: lib/pychess/Utils/lutils/strateval.py:508 #: lib/pychess/Utils/lutils/strateval.py:515 #, python-format msgid "%s can no longer castle in queenside" msgstr "%s não podem mais fazer grande-roque" #: lib/pychess/Utils/lutils/strateval.py:510 #: lib/pychess/Utils/lutils/strateval.py:517 #, python-format msgid "%s can no longer castle in kingside" msgstr "%s não podem mais fazer pequeno-roque" #: lib/pychess/Utils/lutils/strateval.py:551 #, python-format msgid "%(opcolor)s has a new trapped bishop on %(cord)s" msgstr "%(opcolor)s têm um novo Bispo preso em %(cord)s" #: lib/pychess/Utils/lutils/strateval.py:573 #, python-format msgid "develops a pawn: %s" msgstr "avançam um Peão: %s" #: lib/pychess/Utils/lutils/strateval.py:574 #, python-format msgid "brings a pawn closer to the backrow: %s" msgstr "levam um Peão para mais perto da última fileira: %s" #: lib/pychess/Utils/lutils/strateval.py:591 #, python-format msgid "brings a %(piece)s closer to enemy king: %(cord)s" msgstr "levam %(piece)s para mais perto do Rei inimigo: %(cord)s" #: lib/pychess/Utils/lutils/strateval.py:594 #, python-format msgid "develops a %(piece)s: %(cord)s" msgstr "avançam %(piece)s: %(cord)s" #: lib/pychess/Utils/lutils/strateval.py:612 #, python-format msgid "places a %(piece)s more active: %(cord)s" msgstr "aumentam ação de %(piece)s: %(cord)s" #: lib/pychess/Utils/lutils/strateval.py:638 msgid "White should do pawn storm in right" msgstr "Brancas devem fazer uma chuva de Peões na ala direita" #: lib/pychess/Utils/lutils/strateval.py:640 msgid "Black should do pawn storm in left" msgstr "Negras devem fazer uma chuva de Peões na ala esquerda" #: lib/pychess/Utils/lutils/strateval.py:643 msgid "White should do pawn storm in left" msgstr "Brancas devem fazer uma chuva de Peões na ala esquerda" #: lib/pychess/Utils/lutils/strateval.py:645 msgid "Black should do pawn storm in right" msgstr "Negras devem fazer uma chuva de Peões na ala direita" #: lib/pychess/Utils/lutils/strateval.py:671 msgid "Black has a rather cramped position" msgstr "Negras estão com muito pouco espaço" #: lib/pychess/Utils/lutils/strateval.py:673 msgid "Black has a slightly cramped position" msgstr "Negras estão com pouco espaço" #: lib/pychess/Utils/lutils/strateval.py:675 msgid "White has a rather cramped position" msgstr "Brancas estão com muito pouco espaço" #: lib/pychess/Utils/lutils/strateval.py:677 msgid "White has a slightly cramped position" msgstr "Brancas estão com pouco espaço" #: sidepanel/annotationPanel.py:26 msgid "Annotation" msgstr "Anotação" #: sidepanel/annotationPanel.py:29 msgid "Annotated game" msgstr "Jogo anotado" #: sidepanel/annotationPanel.py:236 msgid "Copy PGN" msgstr "Copiar PNG" #: sidepanel/annotationPanel.py:249 msgid "Add start comment" msgstr "Adicionar comentário inicial" #: sidepanel/annotationPanel.py:254 msgid "Add comment" msgstr "Adicionar comentário" #: sidepanel/annotationPanel.py:258 sidepanel/annotationPanel.py:316 msgid "Edit comment" msgstr "Editar comentário" #: sidepanel/annotationPanel.py:269 msgid "Forced move" msgstr "Forçar movimento" #: sidepanel/annotationPanel.py:274 msgid "Add move symbol" msgstr "Adicionar símbolo de movimentação" #: sidepanel/annotationPanel.py:280 msgid "Unclear position" msgstr "Posição incerta" #: sidepanel/annotationPanel.py:289 msgid "Zugzwang" msgstr "Zugzwang" #: sidepanel/annotationPanel.py:290 msgid "Development adv." msgstr "Desenvolvimento adv." #: sidepanel/annotationPanel.py:291 msgid "Initiative" msgstr "Iniciativa" #: sidepanel/annotationPanel.py:292 msgid "With attack" msgstr "Com ataque" #: sidepanel/annotationPanel.py:293 msgid "Compensation" msgstr "Compensação" #: sidepanel/annotationPanel.py:294 msgid "Counterplay" msgstr "Contra-ataque" #: sidepanel/annotationPanel.py:295 msgid "Time pressure" msgstr "Pressão do tempo" #: sidepanel/annotationPanel.py:300 msgid "Add evaluation symbol" msgstr "Adicionar símbolo de avaliação" #: sidepanel/annotationPanel.py:304 msgid "Remove symbols" msgstr "Remover símbolos" #: sidepanel/annotationPanel.py:911 #, python-format msgid "round %s" msgstr "rodada %s" #: sidepanel/bookPanel.py:21 msgid "Hints" msgstr "Sugestão" #: sidepanel/bookPanel.py:25 msgid "" "The hint panel will provide computer advice during each stage of the game" msgstr "O painel de sugestão, aconselhara o computador durante cada fase do jogo" #: sidepanel/bookPanel.py:27 msgid "Official PyChess panel." msgstr "Painel oficial do PyChess." #: sidepanel/bookPanel.py:87 msgid "Opening Book" msgstr "Livro de aberturas" #: sidepanel/bookPanel.py:88 msgid "" "The opening book will try to inspire you during the opening phase of the " "game by showing you common moves made by chess masters" msgstr "O livro de aberturas irá tentar inspirá-lo durante a fase de abertura do jogo mostrando-lhe lances comuns feitos pelos mestres de xadrez" #: sidepanel/bookPanel.py:139 #, python-format msgid "Analysis by %s" msgstr "Analises por %s" #: sidepanel/bookPanel.py:140 #, python-format msgid "" "%s will try to predict which move is best and which side has the advantage" msgstr "%s vai tentar prever qual movimento é melhor e qual lado está com vantagem" #: sidepanel/bookPanel.py:142 #, python-format msgid "Threat analysis by %s" msgstr "Analises de ameaças por %s" #: sidepanel/bookPanel.py:143 #, python-format msgid "" "%s will identify what threats would exist if it were your opponent's turn to" " move" msgstr "%s vai identificar quais são as ameaças existentes, se fosse seu adversário na sua vez de jogar" #: sidepanel/bookPanel.py:159 sidepanel/bookPanel.py:269 msgid "Calculating..." msgstr "Calculando..." #: sidepanel/bookPanel.py:300 msgid "" "Engine scores are in units of pawns, from White's point of view. Double " "clicking on analysis lines you can insert them into Annotation panel as " "variations." msgstr "As unidades de medidas dos motores de xadrez estão em peões, do ponto de vista das Brancas. Clicando duas vezes sobre as linhas de análise, você pode inseri-las no painel Anotação como variações." #: sidepanel/bookPanel.py:302 msgid "" "Adding suggestions can help you find ideas, but slows down the computer's " "analysis." msgstr "Adicionando sugestões para ajuda-lo e obter ideias, mas retarda as analises do computador." #: sidepanel/bookPanel.py:311 msgid "Endgame Table" msgstr "Final de Partida" #: sidepanel/bookPanel.py:315 msgid "" "The endgame table will show exact analysis when there are few pieces on the " "board." msgstr "No final de partida, mostrara analises exata quando tiver poucas peças no tabuleiro." #: sidepanel/bookPanel.py:364 sidepanel/bookPanel.py:367 #, python-format msgid "Mate in %d" msgstr "Mate em %d" #: sidepanel/bookPanel.py:554 msgid "" "In this position,\n" "there is no legal move." msgstr "nessa posição,\nnão há uma jogada regular." #: sidepanel/chatPanel.py:21 msgid "" "The chat panel lets you communicate with your opponent during the game, " "assuming he or she is interested" msgstr "O painel Conversa lhe permite comunicar com seu adversário durante o jogo, desde que ele esteja interessado" #: sidepanel/commentPanel.py:16 msgid "Comments" msgstr "Comentários" #: sidepanel/commentPanel.py:20 msgid "The comments panel will try to analyze and explain the moves played" msgstr "O painel Comentários tenta analisar e explicar os lances jogados" #: sidepanel/commentPanel.py:121 msgid "Initial position" msgstr "Posição inicial" #: sidepanel/commentPanel.py:254 #, python-format msgid "%(color)s moves a %(piece)s to %(cord)s" msgstr "%(color)s movem %(piece)s para %(cord)s" #: sidepanel/engineOutputPanel.py:15 msgid "Engines" msgstr "Engines" #: sidepanel/engineOutputPanel.py:20 msgid "" "The engine output panel shows the thinking output of chess engines (computer" " players) during a game" msgstr "As saídas de engine no painel mostra as saídas de analises da engine do xadrez (jogador computador) durante um jogo" #: sidepanel/engineOutputPanel.py:44 msgid "No chess engines (computer players) are participating in this game." msgstr "Nenhuma engine de xadrez (jogador computador) estão participando desse jogo." #: sidepanel/historyPanel.py:10 msgid "Move History" msgstr "Histórico de Movimentos" #: sidepanel/historyPanel.py:13 msgid "" "The moves sheet keeps track of the players' moves and lets you navigate " "through the game history" msgstr "A aba Lances registra os lances dos jogadores e permite que você navegue pelo histórico do jogo" #: sidepanel/scorePanel.py:15 msgid "Score" msgstr "Pontuação" #: sidepanel/scorePanel.py:19 msgid "" "The score panel tries to evaluate the positions and shows you a graph of the" " game progress" msgstr "O painel de Pontuação tenta avaliar as posições e mostrar um gráfico da evolução do jogo" pychess-0.12.2/lang/pt_BR/LC_MESSAGES/pychess.mo0000644000175000017470000017036212653231273021314 0ustar tamasusers00000000000000 .h= i= t=G~== =$= = >>0>NO>>%>`>(J JJTJVJ/\JSJQJ2KQK!qKK KK/KSLQpL#L"L M MKM%NO5N-N3N$N6 O#COEgOAO!O!P-3P&aP-P;P PBQVQ[QbQ$hQ#Q%Q"Q#QR %R/RARGRNRWRYR\RkR sR }RRRR RR RR RPR NS6YSVSVSR>TSTTTU-UGUPU YUfU oUzUUU:UU VVV!V 9V EV PV\V^V cVmVuV}VVVVGV`WasWiW ?XJX OX]X aX kX wXX"X XXWY}_Y YY&Y$Z*Z1ZHZ QZ[Z@kZDZHZF:[H[ [[[[ \\ %\1\4\:\K\[\j\ {\\\\ ,]9]?] H] U]c]h] n] z]]]]A]]j^> _X__c_]`?z`B`q`SoaFa b)bBb Sb^b sbDbbbbbb ccc +c 5c@c Rc^c rc ~c cccccc ccc c d $d!/dQd Zd ed sd ddd/dd dCde:eCe JeXe `eke{e e ee e e e e e e e f ff6f\>f,f*f+f*gJgQgeg.g ggg g gghhh9hPh Rh^hdh ih sh hhhhh hhhh ii i*i2iFiOi kiEwii'i i i#j%jDjZjujj %k1k3k 9k DkQkSk[kbkhk nkykkkkk kkkk kkkkll l $l .l#RvGә"('8`q!šҚMLexT8X*6N: 6D{Ν՝!$=b[ܞ  0>$N sX ": C8d 1 TTI$ܡ"/?1oTT"K(n"7GZ\57T-94b)E Ҧ4,('U8}<D Xek+r%Ĩ65QXi  ȩ۩  / FeR>Ȫd\lZɫ\$:  %0GX:m ƭ Эۭ#   *, 1;C!K m EfuZkЯ <HO_ cp0ʰ۰>M.i ƲѲBD'HlFJ GS!V#xǴٴ ܴ"7Kcy   (7F N X cnqtX|նSTftwHOEpNPU -߻ Q&xмؼ ) E R^o ̽Խ 3(>g p {= M \}  Ͽؿ);R i i d' &5: p{3 5BIOaq% ,: BMV q| E&  %#0$T"y"   !3K T a ku{    (3D \}#" 7Day /:Jint  /vEl#EAi6>8=vUuqVHD>g)>IS|#a>HZ s~_LhH)1H[P, > JkV t3 (6F Y er  /VH [ $!,)&V }76  &9 BM`u#RIQV+Eq> @"a!& H(i%$**3sj i)Z,(;"d&'.x#~   ( <HN^e3l   6DLh | *  $ 2@V^ t~06G!0R8Y5#  *@ H V `#le-$@Ul&+" 03CVn9&=:T  (+/-[9$t<YP\/~,FfjE-'%>AZsD+4Jy f>/Q@rU62?uFy K)L45{Ylo|p4bGr J?K0qt&L: W O,bx(zC"Zjw  =-|"o(g Hah?cvA%*# +M0*PbqW1 63 CU] >}'h.=jf9HGdk.$S lopU;}Hr3J em#E%~^:2O`$M=[3)XG~T* m'kE_DS|7Nza8Z-iA&V8P7O:@@nx1SxBTD!Mt<KBma !Viwu{Q,iL!9sd_q5n"BRe\TvdhvywC0`u&N1 2[I_ I<^[eg^6XV\;7spR(gX/z]}YRl5.+`ccQ;IW8{]F)k#nN Gain: + %d sec challenges you to a %(time)s %(rated)s %(gametype)s game chess has arrived has declined your offer for a match has departed is present min where %(player)s plays %(color)s. would like to resume your adjourned %(time)s %(gametype)s game.%(black)s won the game%(color)s got a double pawn %(place)s%(color)s got an isolated pawn in the %(x)s file%(color)s got isolated pawns in the %(x)s files%(color)s got new double pawns %(place)s%(color)s has a new passed pawn on %(cord)s%(color)s moves a %(piece)s to %(cord)s%(minutes)d min + %(gain)d sec/move%(name)s %(minutes)d min%(name)s %(minutes)d min %(gain)d sec/move%(name)s %(minutes)d min + %(gain)d sec/move%(opcolor)s has a new trapped bishop on %(cord)s%(player)s is %(status)s%(player)s plays %(color)s%(white)s won the game%d min%s can no longer castle%s can no longer castle in kingside%s can no longer castle in queenside%s moves pawns into stonewall formation%s returns an error%s was declined by your opponent%s was withdrawn by your opponent%s will identify what threats would exist if it were your opponent's turn to move%s will try to predict which move is best and which side has the advantage'%s' is not a registered name(Blitz)*0 Players Ready0 of 010 min + 6 sec/move, 1400↑, White10 min + 6 sec/move, White12002 min, Fischer Random, 1800↓, Black2 min, Fischer Random, Black5 min5 min, 1200-1800, ManualConnect to the Free Online Chess ServerPromote pawn to what?PyChess was unable to load your panel settingsAnalyzingAnimationChess VariantDate of gameEnter Game NotationGame dataHint mode analyzing your game, enable this type Ctrl+H.Initial PositionInstalled SidepanelsName of _first human player:Name of s_econd human player:NewsOpen GameOpening, endgameOpponent StrengthOptionsPlay Sound When...PlayersSpy mode analyzing the oponnent game, enable this type Ctrl+Y.Time ControlToolsYour Color_Start GameA file named '%s' already exists. Would you like to replace it?Engine, %s, has diedPyChess is discovering your engines. Please wait.PyChess was not able to save the gameThere are %d games with unsaved moves. Save changes before closing?Unable to save file '%s'Unknown file type '%s'Challenge:A player _checks:A player _moves:A player c_aptures:AbortAbout ChessAc_tiveAcceptActive seeks: %dAdd commentAdd evaluation symbolAdd move symbolAdd start commentAdding suggestions can help you find ideas, but slows down the computer's analysis.Address ErrorAdjournAdministratorAll Chess FilesAll FilesAll whiteAnalysis by %sAnalyze from current positionAnalyze gameAnalyzer startedAnimate pieces, board rotation and more. Use this on fast machines.Annotated gameAnnotationAny strengthAsk to _MoveAsymmetric RandomAtomicAuto Call _FlagAuto _rotate board to current human playerAuto-logoutAvailableBB EloBecause %(black)s lost connection to the serverBecause %(black)s lost connection to the server and %(white)s requested adjournmentBecause %(black)s ran out of time and %(white)s has insufficient material to mateBecause %(loser)s disconnectedBecause %(loser)s king explodedBecause %(loser)s ran out of timeBecause %(loser)s resignedBecause %(loser)s was checkmatedBecause %(mover)s stalematedBecause %(white)s lost connection to the serverBecause %(white)s lost connection to the server and %(black)s requested adjournmentBecause %(white)s ran out of time and %(black)s has insufficient material to mateBecause %(winner)s has fewer piecesBecause %(winner)s lost all piecesBecause a player aborted the game. Either player can abort the game without the other's consent before the second move. No rating changes have occurred.Because a player lost connectionBecause a player lost connection and the other player requested adjournmentBecause both players agreed to a drawBecause both players agreed to abort the game. No rating changes have occurred.Because both players agreed to an adjournmentBecause both players have the same amount of piecesBecause both players ran out of timeBecause neither player has sufficient material to mateBecause of adjudication by an adminBecause of adjudication by an admin. No rating changes have occurred.Because of courtesy by a player. No rating changes have occurred.Because the %(black)s engine diedBecause the %(white)s engine diedBecause the connection to the server was lostBecause the game exceed the max lengthBecause the last 50 moves brought nothing newBecause the same position was repeated three times in a rowBecause the server was shut downBecause the server was shut down. No rating changes have occurred.BeepBishopBlackBlack has a new piece in outpost: %sBlack has a rather cramped positionBlack has a slightly cramped positionBlack should do pawn storm in leftBlack should do pawn storm in rightBlack:BlindfoldBlindfold AccountBlitzBlitz:BughouseCCACalculating...Center:ChallengeChallenge: Challenge: Change ToleranceChatChess AdvisorChess Alpha 2 DiagramChess GameChess PositionChess ShoutChess Variants are like the pieces of the last line will be placed on the board.Claim DrawClassic chess rules http://en.wikipedia.org/wiki/ChessClassic chess rules with all pieces white http://en.wikipedia.org/wiki/Blindfold_chessClassic chess rules with hidden figurines http://en.wikipedia.org/wiki/Blindfold_chessClassic chess rules with hidden pawns http://en.wikipedia.org/wiki/Blindfold_chessClassic chess rules with hidden pieces http://en.wikipedia.org/wiki/Blindfold_chessClockClose _without SavingColorize analyzed movesCommand line parameters needed by the engine.Command:CommentsCompensationComputerConnectingConnecting to serverConnection ErrorConnection was closedContinue to wait for opponent, or try to adjourn the game?Conversation infoConversationsCopy PGNCornerCould not save the fileCounterplayCrazyhouseCreate SeekDDateDate/TimeDeclineDefaultDestination Host UnreachableDetect type automaticallyDevelopment adv.DiedDo you know that it is possible to finish a chess game in just 2 turns?Do you know that the number of possible chess games exceeds the number of atoms in the Universe?Do you know that you can call flag when the clock is with you, Actions > Call Flag.Do you know that you can help translate Pychess in your language, Help > Translate Pychess.Don't careDrawDummy AccountECOEdit SeekEdit Seek: Edit commentEmailEn passant cord is not legal. %sEndgame TableEngine scores are in units of pawns, from White's point of view. Double clicking on analysis lines you can insert them into Annotation panel as variations.EnginesEngines use uci or xboard communication protocol to talk to the GUI. If it can use both you can set here which one you like.Enter GameEnter Game _NotationError parsing move %(moveno)s %(mstr)sEventEvent:Examine Adjourned GameExaminedExaminingExport positionFICS atomic: http://www.freechess.org/Help/HelpFiles/atomic.htmlFICS bughouse: http://www.freechess.org/Help/HelpFiles/bughouse.htmlFICS crazyhouse: http://www.freechess.org/Help/HelpFiles/crazyhouse.htmlFICS losers: http://www.freechess.org/Help/HelpFiles/losers_chess.htmlFICS suicide: http://www.freechess.org/Help/HelpFiles/suicide_chess.htmlFIDE MasterFMF_ull board animationFace _to Face display modeFile existsFischer RandomForced moveGMGain:Game informationGame is _drawn:Game is _lost:Game is _set-up:Game is _won:Games running: %dGaviota TB path:Generally this means nothing, as the game is time-based, but if you want to please your opponent, perhaps you should get going.Grand MasterGuestHa_ndle:Hidden pawnsHidden piecesHideHintsHow to PlayHuman BeingIMIdIdleIf set, PyChess will colorize suboptimal analyzed moves with red.If set, PyChess will show game results for different moves in positions containing 6 or less pieces. It will search positions from http://www.k4it.de/If set, PyChess will show game results for different moves in positions containing 6 or less pieces. You can download tablebase files from: http://www.olympuschess.com/egtb/gaviota/If set, PyChess will suggest best opening moves on hint panel.If set, PyChess will use figures to express moved pieces, rather than uppercase letters.If set, the black pieces will be head down, suitable for playing against friends on mobile devices.If set, the board will turn after each move, to show the natural view for the current player.If set, the captured figurines will be shown next to the board.If set, the elapsed time that a player used for the move is shown.If set, the playing board will display labels and ranks for each chess field. These are usable in chess notation.If set, this hides the tab in the top of the playing window, when it is not needed.If you don't save, new changes to your games will be permanently lost.In TournamentIn this position, there is no legal move.Initial positionInitiativeInternational MasterInvalid move.It is not possible later to continue the game, if you don't save it.Jump to initial positionJump to latest positionKKingKnightKnight oddsKnightsLeave _FullscreenLightningLightning:Load _Recent GameLoaded gameLoading player dataLocal EventLocal SiteLog on ErrorLog on as G_uestLog on as _GuestLogging on to serverLosersLossMamer ManagerManage enginesManualManual AcceptManually accept opponentMate in %dMaximum analysis time in seconds:Minutes:Minutes: More channelsMore playersMove HistoryNNameNever use animation. Use this on slow machines.New GameNo _animationNo chess engines (computer players) are participating in this game.No conversation's selectedNo soundNormalNot AvailableObserveObserve %sObserved _ends:OddsOffer A_bortOffer AbortOffer Ad_journmentOffer PauseOffer RematchOffer ResumeOffer UndoOffer _AbortOffer _DrawOffer _PauseOffer _ResumeOffer _UndoOfficial PyChess panel.OfflineOn FICS, your "Wild" rating encompasses all of the following variants at all time controls: One player starts with one less knight pieceOne player starts with one less pawn pieceOne player starts with one less queen pieceOne player starts with one less rook pieceOnlineOnly animate _movesOnly animate piece moves.Only registered users may talk to this channelOpen GameOpen Sound FileOpen _DatabaseOpening BookOpening booksOpponent RatingOpponent's strength: OtherOther (non standard rules)Other (standard rules)PParameters:PausePawnPawn oddsPawns PassedPawns PushedPingPlayPlay Fischer Random chessPlay Losers chessPlay RematchPlay _Internet ChessPlay normal chess rulesPlayer _RatingPlayers: %dPlayingPng imagePo_rts:Polyglot book file:Pre_viewPrefer figures in _notationPreferencesPressing Ctrl+Z to offer opponent the possible rollback moves.PrivateProbably because it has been withdrawn.PromotionProtocol:PyChess - Connect to Internet ChessPyChess - Internet Chess: FICSPyChess Game DatabasePyChess Information WindowPyChess databasePyChess has lost connection to the engine, probably because it has died. You can try to start a new game with the engine, or try to play against another one.PyChess.py:QQueenQueen oddsQuit PyChessRR_esignRandomRapidRatedRated gameRatingReceiving list of playersRemove symbolsRequest ContinuationResendResend %s?ResultResumeRookRook oddsRoundRound:Running Simul MatchSRS_ign upSanctionsSave GameSave Game _AsSave moves before closing?Saved gameScoreSearch:Seek _GraphSeek updatedSelect Gaviota TB pathSelect book fileSelect engineSelect sound file...Select the games you want to save:Select working directorySend ChallengeSend all seeksSend seekService RepresentativeSetting up environmentSetup PositionSho_w cordsShoutShow ConsoleShow _ChatShow _captured piecesShow evaluation valuesShow tips at startupShredderLinuxChess:ShuffleSide_panelsSimple Chess PositionSiteSite:Sound filesSp_y modeSpentStandardStandard:Start Private ChatStatusStep back one moveStep forward one moveSuicideTTDTMTeam AccountThe abort offerThe adjourn offerThe analyzer will run in the background and analyze the game. This is necessary for the hint mode to workThe chain button is disabled because you are logged in as a guest. Guests can't establish ratings, and the chain button's state has no effect when there is no rating to which to tie "Opponent Strength" toThe chat panel lets you communicate with your opponent during the game, assuming he or she is interestedThe clock hasn't been started yet.The comments panel will try to analyze and explain the moves playedThe connection was broken - got "end of file" messageThe directory where the engine will be started from.The displayed name of the first human player, e.g., John.The displayed name of the guest player, e.g., Mary.The draw offerThe endgame table will show exact analysis when there are few pieces on the board.The engine %s reports an error:The engine output panel shows the thinking output of chess engines (computer players) during a gameThe error was: %sThe file already exists in '%s'. If you replace it, its content will be overwritten.The flag callThe game #%s can't be loaded, because of an error parsing FENThe game can't be loaded, because of an error parsing FENThe game can't be read to end, because of an error parsing move %(moveno)s '%(notation)s'.The game ended in a drawThe game has been abortedThe game has been adjournedThe game has been killedThe game is pausedThe hint panel will provide computer advice during each stage of the gameThe inverse analyzer will analyze the game as if your opponent was to move. This is necessary for the spy mode to workThe move failed because %s.The moves sheet keeps track of the players' moves and lets you navigate through the game historyThe offer to switch sidesThe opening book will try to inspire you during the opening phase of the game by showing you common moves made by chess mastersThe pause offerThe reason is unknownThe resignationThe resume offerThe score panel tries to evaluate the positions and shows you a graph of the game progressThe takeback offerThebanThemesThere is %d game with unsaved moves.There are %d games with unsaved moves.This game can be automatically aborted without rating loss because there has not yet been two moves madeThis game can not be adjourned because one or both players are guestsThis is a continuation of an adjourned matchThis option is not applicable because you're challenging a playerThis option is not available because you're challenging a guest, Threat analysis by %sTimeTime control: Time pressureTip Of The dayTip of the DayTo play on Fullscreen mode, just type F11. Coming back, F11 again.To save a game Game > Save Game As, give the filename and choose where you want to be saved. At the bottom choose extension type of the file, and Save.Tolerance:Tournament DirectorTranslate PyChessTypeType or paste PGN game or FEN positions hereUUnable to accept %sUnclear positionUndescribed panelUndoUndo one moveUndo two movesUninstallUnknownUnofficial channel %dUnratedUnregisteredUntimedUpside DownUse _analyzerUse _inverted analyzerUse _local tablebasesUse _online tablebasesUse analyzer:Use opening _bookVariant developed by Kai Laskos: http://talkchess.com/forum/viewtopic.php?t=40990W EloWFMWGMWIMWaitWas unable to save '%(uri)s' as PyChess doesn't know the format '%(ending)s'.WelcomeWhen this button is in the "locked" state, the relationship between "Opponent's strength" and "Your strength" will be preserved when a) your rating for the type of game sought has changed b) you change the variant or the time controlWhiteWhite has a new piece in outpost: %sWhite has a rather cramped positionWhite has a slightly cramped positionWhite should do pawn storm in leftWhite should do pawn storm in rightWhite:WildWildcastleWildcastle shuffleWinWith attackWoman FIDE MasterWoman Grand MasterWoman International MasterWorking directory:YouYou asked your opponent to moveYou can play chess listening to the sounds of the game, for that, Settings > Preferences > Sound tab, enable Use sounds in PyChess and choose your preferred sounds.You can start a new game by Game > New Game, in New Game window do you can choose Players, Time Control and Chess Variants.You can't play rated games because "Untimed" is checked, You can't play rated games because you are logged in as a guestYou can't select a variant because "Untimed" is checked, You can't switch colors during the game.You don't have the necessary rights to save the file. Please ensure that you have given the right path and try again.You have been logged out because you were idle more than 60 minutesYou have opened no conversations yetYou have tried to undo too many moves.You may only have 3 outstanding seeks at the same time. If you want to add a new seek you must clear your currently active seeks. Clear your seeks?You sent a draw offerYou sent a pause offerYou sent a resume offerYou sent an abort offerYou sent an adjournment offerYou sent an undo offerYour opponent asks you to hurry!Your opponent has asked that the game be aborted. If you accept this offer, the game will end with no rating change.Your opponent has asked that the game be adjourned. If you accept this offer, the game will be adjourned and you can resume it later (when your opponent is online and both players agree to resume).Your opponent has asked that the game be paused. If you accept this offer, the game clock will be paused until both players agree to resume the game.Your opponent has asked that the game be resumed. If you accept this offer, the game clock will continue from where it was paused.Your opponent has asked that the last %s move(s) be undone. If you accept this offer, the game will continue from the earlier position.Your opponent has offered you a draw.Your opponent has offered you a draw. If you accept this offer, the game will end with a score of 1/2 - 1/2.Your opponent is not out of time.Your opponent must agree to abort the game because there has been two or more moves madeYour opponent seems to have changed their mind.Your opponent wants to abort the game.Your opponent wants to adjourn the game.Your opponent wants to pause the game.Your opponent wants to resume the game.Your opponent wants to undo %s move(s).Your panel settings have been reset. If this problem repeats, you should report it to the developersYour seeks have been removedYour strength: Zugzwang_Accept_Actions_Analyze Game_Black player:_Call Flag_Clear Seeks_Decline_Edit_Engines_Export Position_Fullscreen_Game_Game List_General_Help_Hide tabs when only one game is open_Hint mode_Hints_Invalid move:_Load Game_Log Off_Log Viewer_Name:_New Game_Next_Observed moves:_Opponent:_Password:_Play Normal chess_Player List_Previous_Replace_Rotate Board_Save %d document_Save %d documents_Save %d documents_Save Game_Seeks / Challenges_Show Sidepanels_Sounds_Start Game_Untimed_Use sounds in PyChess_View_White player:_Your Color:andand guests can't play rated gamesand on FICS, untimed games can't be ratedand on FICS, untimed games have to be normal chess rulesask your opponent to moveblackbrings a %(piece)s closer to enemy king: %(cord)sbrings a pawn closer to the backrow: %scall your opponents flagcaptures materialcastlesdefends %sdevelops a %(piece)s: %(cord)sdevelops a pawn: %sdrawsexchanges materialgnuchess:half-openhttp://en.wikipedia.org/wiki/Chesshttp://en.wikipedia.org/wiki/Chess960 FICS wild/fr: http://www.freechess.org/Help/HelpFiles/wild.htmlhttp://en.wikipedia.org/wiki/Rules_of_chessimproves king safetyin the %(x)s%(y)s filein the %(x)s%(y)s filesincreases the pressure on %sinvalid promoted piecematesminmoves a rook to an open filemoves an rook to a half-open filemoves bishop into fianchetto: %sofoffer a drawoffer a pauseoffer a takebackoffer an abortoffer to adjournoffer to resumeoffer to switch sidesonline in totalpins an enemy %(oppiece)s on the %(piece)s at %(cord)splaces a %(piece)s more active: %(cord)spromotes a Pawn to a %spromotion move without promoted piece is incorrectputs opponent in checkrating range nowrescues a %sresignround %ssacrifies materialsecslightly improves king safetytakes back materialthe captured cord (%s) is incorrectthe move needs a piece and a cordthreatens to win material by %sto automatic acceptto manual acceptucivs.whitewindow1xboardProject-Id-Version: pychess Report-Msgid-Bugs-To: POT-Creation-Date: 2016-01-27 13:28+0100 PO-Revision-Date: 2016-01-28 08:56+0000 Last-Translator: slav0nic Language-Team: Portuguese (Brazil) (http://www.transifex.com/gbtami/pychess/language/pt_BR/) MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Language: pt_BR Plural-Forms: nplurals=2; plural=(n > 1); Incremento: + %d secdesafia você para um %(time)s %(rated)s %(gametype)s jogo _está chegandorecusou sua oferta para um jogoestá saindoestá presente minonde %(player)s joga %(color)s.gostaria de retomar seu jogo adiado %(time)s %(gametype)s.%(black)s venceu o jogo%(color)s têm um Peão dobrado %(place)s%(color)s têm um Peão isolado na coluna %(x)s%(color)s têm Peões isolados nas colunas %(x)s%(color)s têm novos Peões dobrados %(place)s%(color)s têm um novo Peão passado em %(cord)s%(color)s movem %(piece)s para %(cord)s%(minutes)d min + %(gain)d sec/lance%(name)s %(minutes)d min%(name)s %(minutes)dmin %(gain)ds/lance%(name)s %(minutes)dmin + %(gain)ds/lance%(opcolor)s têm um novo Bispo preso em %(cord)s%(player)s está %(status)s%(player)s joga %(color)s%(white)s venceu o jogo%d min%s não podem mais rocar%s não podem mais fazer pequeno-roque%s não podem mais fazer grande-roque%s movem os Peões para uma formação de muralha%s retornou um erro%s foi recusado por seu adversário%s foi retirada por seu adversário%s vai identificar quais são as ameaças existentes, se fosse seu adversário na sua vez de jogar%s vai tentar prever qual movimento é melhor e qual lado está com vantagem'%s' não é um nome registrado(Blitz)*0 jogadores prontos0 de 010min + 6s/lance, 1400↑, Brancas10min + 6s/lance, Brancas12002 min, Xadrez Aleatório de Fischer, 1800↓, Pretas2 min, Xadrez Aleatório de Fischer, Pretas5 min5 min, 1200-1800, ManualConectar-se ao Free Online Chess ServerPromover Peão a que?PyChess não conseguiu carregar as configurações do seu painelAnalisadorAnimaçãoVariantes do xadrezData do JogoEntrar com Notação de JogoDados do JogoO Modo sugestão analisará seu jogo. Ative-o com Ctrl+H.Posição InicialPaineis laterais instaladosNome do p_rimeiro jogador humano:Nome do s_egundo jogador humano:NotíciasAbrir JogoAbertura, final de partidaForça do adversárioOpçõesTocar som quando...JogadoresModo espião analisará o jogo do oponente. Ative-o com Ctrl+Y.Controle de tempoFerramentasSua cor_Iniciar JogoUm arquivo com o nome '%s' já existe. Você deseja substituí-lo?Mecanismo de xadrez, %s, foi encerradoPyChess está verificando seus mecanismos de xadrez. Por favor espere.PyChess não conseguiu salvar o jogoHá %d jogos com lances não salvos. Salvar antes de fechar?Não foi possível salvar o arquivo '%s'Formato de arquivo desconhecido '%s'Desafiar:Um jogador dá _xeque:Um jogador _move:Um jogador _captura:AnularSobre o xadrezA_tivoAceitarBuscas ativas: %dAdicionar comentárioAdicionar símbolo de avaliaçãoAdicionar símbolo de movimentaçãoAdicionar comentário inicialAdicionando sugestões para ajuda-lo e obter ideias, mas retarda as analises do computador.Erro no endereçoAdiarAdministradorTodos os arquivos de xadrezTodos os arquivosTodas brancasAnalises por %sAnalisar a partir da posição atualAnalisar jogoEngine iniciadaAnimar peças, rotação do tabuleiro e mais. Use esta opção em computadores rápidos.Jogo anotadoAnotaçãoQualquer forçaPedir que _MovaAleatório AssimétricoAtômicoChamar _Bandeira AutomaticamenteA_uto-rotacionar o tabuleiro para o jogador humano atualAuto-desconectarDisponívelBN EloPorque %(black)s perdeu a conexão com o servidorPorque %(black)s perdeu a conexão com o servidor e %(white)s solicitou um adiamentoPorque %(black)s caiu no tempo e %(white)s não tem material suficente para dar matePorque %(loser)s se desconectouPorque %(loser)s rei explodiuPorque o tempo de %(loser)s terminouPorque %(loser)s abandonouPorque %(loser)s levou cheque-matePorque %(mover)s provocou empate por afogamentoPorque %(white)s perdeu a conexão com o servidorPorque %(white)s perdeu a conexão com o servidor e %(black)s solicitou um adiamentoPorque %(white)s caiu no tempo e %(black)s não tem material suficente para dar matePorque %(winner)s tem menos peçasPorque %(winner)s perdeu todas as peçasPorque um jogador abortou o jogo. O outro jogador pode abortar o jogo sem o outro conceder, mas antes do segundo movimento. Nenhuma mudança de rating ocorreu.Porque o jogador perdeu a conexãoPorque um jogador perdeu a conexão e outro jogador solicitou adiamentoPorque ambos combinaram empatePorque ambos os jogadores concordaram em abortar o jogo. Nenhuma mudança de rating ocorreu.Porque ambos os jogadores concordaram em um adiamentoPorque ambos jogadores tem a mesma quantidade de peçasPorque o tempo acabou para ambos os jogadoresPorque nenhum jogar tem material suficiente para dar mateDevido a uma decisão proferida por um administradorPor causa da decisão proferida por um administrador . Nenhuma alteração no rating foi ocorrida.Por causa da cortesia do jogador. Nenhuma mudança de rating ocorreu.Porque a engine %(black)s morreuPorque o mecanismo de xadrez %(white)s foi encerradoPorque a conexão com o servidor foi perdidaPorque o jogo excedeu o tamanho máximoPorque os últimos 50 lances não trouxeram nada de novoPorque a mesma posição se repetiu três vezes consecutivasPorque o servidor foi desligadoPorque o servidor foi desligado. Nenhuma mudança de rating ocorreu.Aviso sonoroBispoPretasNegras tem uma peça em posto avançado: %sNegras estão com muito pouco espaçoNegras estão com pouco espaçoNegras devem fazer uma chuva de Peões na ala esquerdaNegras devem fazer uma chuva de Peões na ala direitaPretasXadrez às CegasConta de xadrez às cegasBlitzBlitz:BughouseCCACalculando...Centro:DesafiarDesafiar: Desafio: Alterar tolerânciaConversaMentor de xadrezDiagrama Chess Alpha 2Jogo de XadrezPosição do tabuleiroChess ShoutAs variantes do xadrez são a maneira como as peças da última linha são posicionadas no tabuleiro.Reclamar empateRegras clássicas do xadrez http://en.wikipedia.org/wiki/ChessRegras clássicas do xadrez com todas as peças brancas http://en.wikipedia.org/wiki/Blindfold_chessRegras clássicas do xadrez com peças ocultas http://en.wikipedia.org/wiki/Blindfold_chessRegras clássica do xadrez com Peões ocultos http://en.wikipedia.org/wiki/Blindfold_chessRegras clássicas do xadrez com peças ocultas http://en.wikipedia.org/wiki/Blindfold_chessRelógio_Fechar sem SalvarColorir movimentos analisadosParâmetros de linha de comando necessária para a engine.Comando:ComentáriosCompensaçãoComputadorConectandoConectando ao servidorErro de conexãoConexão foi fechadaContinuar esperando pelo oponente, ou tentar adiar o jogo?Informações sobre conversasConversasCopiar PNGCantoNão foi possível salvar o arquivoContra-ataqueCrazyhouseCriar buscaDDataData/HoraRecusarPadrãoEndereço de destino inacessívelDetectar formato automaticamenteDesenvolvimento adv.EncerradoVocê sabia que é possível fazer um xeque-mate com dois movimentos?Você sabia que o número de possíveis jogos no xadrez é maior que o número de átomos do Universo?Você sabia que pode acusar a queda de seta quando é sua vez de jogar? Ações > Acusar queda de seta.Você sabia que pode ajudar a traduzir o PyChess para sua língua, Ajuda > Traduza o PyChess.Qualquer umEmpateConta inicianteECOEditar buscaEditar busca: Editar comentárioE-mailCoordenadas do En passant não são legais. %sFinal de PartidaAs unidades de medidas dos motores de xadrez estão em peões, do ponto de vista das Brancas. Clicando duas vezes sobre as linhas de análise, você pode inseri-las no painel Anotação como variações.EnginesEngines utilizam o protocolo de comunicação uci ou xboard para falar com a GUI. Se ele pode usar ambos, pode definir aqui o que você gosta.Entrar no Jogo_Digite a Notação do JogoErro ao analisar movimento %(moveno)s %(mstr)sEventoEvento:Examinar Jogo AdiadoExaminadoExaminandoExportar posiçãoFICS atômico: http://www.freechess.org/Help/HelpFiles/atomic.htmlFICS Bughouse: http://www.freechess.org/Help/HelpFiles/bughouse.htmlFICS crazyhouse: http://www.freechess.org/Help/HelpFiles/crazyhouse.htmlFICS losers: http://www.freechess.org/Help/HelpFiles/losers_chess.htmlFICS suicídio: http://www.freechess.org/Help/HelpFiles/suicide_chess.htmlMestre FIDEFMAnimação completa do _tabuleiro_Modo de visualização Face a FaceO arquivo já existeAleatório de FischerForçar movimentoGMIncremento:Informações do jogoO jogo _empata:O jogo é per_dido:O jogo é _iniciado:O jogo é _vencido:Jogos em execução: %dDiretório Gaviota TBGeralmente isso não significa nada , já que o jogo é baseado em tempo , mas se você quer agradar o seu adversário , talvez você deve ir.Grande MestreConvidadoCo_nta:Ocultar PeõesOcultar peçasOcultarSugestãoComo JogarSer humanoMIIdInativoSe definido, PyChess vai colorir os movimentos analisados como inadequados com vermelho.Se definido, PyChess irá mostrar os resultados de jogos de movimentos diferentes em posições contendo 6 ou menos peças. Ele irá procurar posições de http://www.k4it.de/Se definido, PyChess irá mostrar os resultados de jogos de movimentos diferentes em posições contendo 6 ou menos peças. Você pode baixar arquivos de tablebase: http://www.olympuschess.com/egtb/gaviota/Se definido, PyChess vai sugerir o melhor movimento de abertura no painel de dicas.Se marcado, o PyChess utilizará figuras para mostrar as peças movidas, em vez de letras maiúsculas.Se marcado, as peças negras ficarão de cabeça para baixo, adequado para jogar contra amigos em aparelhos móveis.Se marcado, o tabuleiro será rotacionado depois de cada lance, para mostrar a visualização natural do jogador atual.Se definido, as peças capturadas serão mostradas ao lado do tabuleiro.Se definido, o tempo decorrido que um jogador usa para cada jogada é mostrado.Se marcado, o tabuleiro mostrará as coordenadas de cada casa do tabuleiro. É útil para a notação do xadrez.Se marcado, oculta a aba no topo da janela do jogo quando não é necessária.Se não salvar, as novas alterações dos jogos serão perdidas permanentemente.Em torneionessa posição, não há uma jogada regular.Posição inicialIniciativaMestre InternacionalMovimento inválido.Não será possível continuar posteriormente a partida se você não salvá-la.Ir para a posição inicialIr para a última posiçãoRReiCavaloVantagem do CavaloCavalosSair da _Tela CheiaRelâmpagoRelâmpago:Carregar _Jogo RecenteJogo carregadoCarregando dados do jogadorEvento localPonto localErro ao conectarConectar-se como _ConvidadoConectar-s_e como ConvidadoConectando ao servidorDe perdedoresDerrotaGerenciador MamerGerenciar enginesManualAceitar manualmenteAceitar adversário manualmenteMate em %dO tempo máximo de análise em segundos:Minutos:Minutos: Mais canaisMais jogadoresHistórico de MovimentosCNomeNunca utilizar animação. Use isto para computadores lentos.Novo JogoSem an_imaçãoNenhuma engine de xadrez (jogador computador) estão participando desse jogo.Nenhuma conversa foi selecionadaSem somTempo padrãoIndisponívelObservarObservar %sJogo observado _termina:VantagemOferecer _Abortar partidaOferecer anulaçãoOferecer Ad_iamentoOferecer PausaOferecer revancheOferecer ContinuaçãoOferecer voltar jogadaOferecer para _Abortar a PartidaOferecer _empateOferecer _PausaOferecer _ReinícioPedir para Vo_ltarPainel oficial do PyChess.DesconectadoNo FICS, sua classificação "Wild" engloba todas as seguintes variantes em todos os controles de tempo: Um jogador começa sem um CavaloUm jogador começa com um Peão a menosUm jogador começa sem a rainhaUm jogador começa sem uma TorreConectadoAnimar somente mo_vimentosAnimar somente o movimento das peças.Somente jogadores registrados podem falar neste canalAbrir jogoAbrir Arquivo de SomAbrir _Base de DadosLivro de aberturasLivro de aberturasRating do AdversárioForça do adversário: OutroOutro (fora da regra padrão)Outro (regra padrão)PParâmetros:PausarPeãoVantagem do PeãoPeões passadosPeões avançadosPingJogarJogar Xadrez Aleatório FischerJogar xadrez dos perdedoresJogar revancheJogar Xadrez na _InternetJogar com as regras normais do xadrez_Rating do JogadorJogadores: %dJogandoImagem PNGPo_rtas:Arquivo de livre Polyglot:Pre_visãoUsar figuras na _notaçãoPreferênciasPressione Ctrl+Z para pedir ao adversário para voltar lances.PrivadoProvavelmente porque ele foi retirado.PromoçãoProtocolo:PyChess - Conecte ao Internet ChessPyChess - Xadrez pela Internet: FICSJogos do Banco de Dados do PychessJanela de informações do PyChessBase de dados PychessPyChess perdeu a conexão com o mecanismo de xadrez, provavelmente porque ele foi encerrado. Você pode tentar iniciar um novo jogo com o mecanismo de xadrez, ou tentar jogar contra outro.PyChess.py:DDamaVantagem da DamaSair do PyChessTAban_donarAleatórioRápidoPontuadoJogo pontuadoRatingRecebendo lista de jogadoresRemover símbolosSolicitar ContinuaçãoReenviarReenviar %s?ResultadoContinuarTorreVantagem da TorreRodadaRodada:Executando jogo simultâneoSRCa_dastre-seSançõesSalvar jogoSalvar Jogo _ComoSalvar lances antes de fechar?Jogo gravadoPontuaçãoPesquisar:Buscar _gráficosolicitar atualizaçãoSelecionar diretório Gaviota TBSelecionar arquivo de livroSelecionar engineSelecione um arquivo de som...Selecione os jogos que quer salvar:Selecione o diretório de trabalhoEnviar desafioEnviar todas as buscasEnviar buscaRepresentante de atendimentoConfigurando o ambienteAjustar PosiçãoMostrar c_oordenadasShoutMostrar ConsoleMostrar _ConversaMostrar peças _capturadasMostrar valores de avaliaçãoMostrar dicas ao iniciarShredderLinuxChess:Aleatório_Painel lateralPosicionamento comum do xadrezSiteSite:Arquivos de somModo es_piãoTempo gastoPadrãoPadrão:Começar conversa privadaStatusRetroceder um lanceAdiantar um lanceSuicídioTTDTMConta da equipeA oferta de anulaçãoA oferta de adiamentoA engine sera executada em segundo plano e vai analisar o jogo. Necessário para o modo de sugestão funcionarO botão de vinculação está desativado porque você está conectado como convidado. Convidados não podem estabelecer classificação e o estado do botão de vinculação não tem nenhum efeito quando não há nenhuma classificação para a qual vincular a "Força do Adversário"O painel Conversa lhe permite comunicar com seu adversário durante o jogo, desde que ele esteja interessadoO relógio ainda não foi iniciado.O painel Comentários tenta analisar e explicar os lances jogadosA conexão foi interrompidaO diretório a partir de onde a engine será iniciada.O nome exibido do primeiro jogador humano, por exemplo, João.O nome exibido do jogador convidado, por exemplo, Maria.A oferta de empateNo final de partida, mostrara analises exata quando tiver poucas peças no tabuleiro.A engine %s relata um erro:As saídas de engine no painel mostra as saídas de analises da engine do xadrez (jogador computador) durante um jogoO erro foi: %sO arquivo já existe em '%s'. Se você substituí-lo, seu conteúdo será sobrescrito.A acusação de queda de setaO jogo #%s não pode ser carregado, por causa de um erro de análise FENO jogo não pode ser carregado, por causa de um erro de análise FENO jogo não pode ser lido até o final, devido a um erro ao analisar o lance %(moveno)s '%(notation)s'.O jogo terminou empatadoO jogo foi anuladoO jogo foi adiadoO jogo foi encerradoO jogo está pausadoO painel de sugestão, aconselhara o computador durante cada fase do jogoO analisador inverso sera executado, mostra como seu adversário vai mover. Necessário para o modo espião funcionarNão foi possível mover porque %s.A aba Lances registra os lances dos jogadores e permite que você navegue pelo histórico do jogoA oferta de mudança de ladoO livro de aberturas irá tentar inspirá-lo durante a fase de abertura do jogo mostrando-lhe lances comuns feitos pelos mestres de xadrezA oferta de pausaA razão é desconhecidaO abandonoA oferta de retomadaO painel de Pontuação tenta avaliar as posições e mostrar um gráfico da evolução do jogoA oferta de voltar jogadasThebanTemasHá %d jogo com lances não-salvos.Há %d jogos com movimentos não-salvos.Este jogo pode ser anulado automaticamente sem perda de posições na classificação, pois ainda não foram feitos dois lancesEste jogo não pode ser adiado pois um ou mais jogadores são convidadosEsta é a continuação de um jogo adiadoEsta opção não é aplicável porque você está desafiando um jogadorEsta opção não está disponível porque você está desafiando um convidado, Analises de ameaças por %sTempoControle de tempo: Pressão do tempoDica do diaDica do diaPara jogar em modo Tela cheia, é só apertar F11. Para voltar à tela normal, F11 novamente.Para salvar um jogo: Jogo > Salvar jogo como, insira o nome do arquivo e escolha onde quer que seja salvo. Escolha o tipo da extensão do arquivo, e Salvar.Tolerância:Diretor do torneioTraduza o PyChessTipoTecle ou cole sua partida PGN ou posição FEN aquiUNão foi possível aceitar %sPosição incertaPainel sem descriçãoVoltar jogadaVoltar um lanceVoltar dois lancesDesinstalarDesconhecidoCanal não-oficial %dNão pontuadoNão RegistradoSem relógioCabeça para baixoUsar a_nalisadorUsar analisador _inversoUsar tablebases _localUsar _online tablebasesUsar analisadorUsar _livro de aberturasVariante desenvolvida por Kai Laskos: http://talkchess.com/forum/viewtopic.php?t=40990B EloMFM (WFM)WGMWIMEspereNão foi possível salvar '%(uri)s' porque o PyChess não reconhece o formato '%(ending)s'.Bem-vindoQuando este botão estiver no estado "bloqueado", a relação entre "a força do adversário" e "a sua força" será preservada quando a) sua classificação para o tipo de jogo procurado for alterada b) você alterar a variante ou o controle de tempoBrancasBrancas tem uma peça em posto avançado: %sBrancas estão com muito pouco espaçoBrancas estão com pouco espaçoBrancas devem fazer uma chuva de Peões na ala esquerdaBrancas devem fazer uma chuva de Peões na ala direitaBrancas:WildWildcastleWildcastle shuffleVitóriaCom ataqueMestre FIDE MulherGrande Mestre MulherMestre Internacional MulherDiretório de trabalho:VocêVocê pediu para seu oponente moverVocê pode jogar xadrez ouvindo os sons do jogo. Para isso, Configurações > Preferências > Aba Sons, ative Usar sons no PyChess e escolha seus sons preferidos.Você pode iniciar um novo jogo em Jogo > Novo Jogo, na nova janela do jogo você pode escolher Jogadores, Controle de tempo e Variante do xadrez.Você não pode jogar jogos pontuados porque o botão "Sem relógio" foi marcado, Você não pode jogar jogos pontuados porque você está conectado como convidadoVocê não pode selecionar uma variação porque o botão "Sem relógio" foi marcado, Você não pode mudar a cor durante o jogo.Você não tem a permissão necessária para salvar o arquivo. Por favor, assegure-se de ter indicado corretamente o caminho e tente novamente.Você foi desconectado porque ficou inativo mais de 60 minutosVocê não abriu conversas aindaVocê tentou voltar lances demais.Você só pode ter 3 buscas pendentes ao mesmo tempo. Se você quiser adicionar uma nova busca você deve limpar as buscas ativas no momento. Limpar suas buscas?Você enviou uma oferta de empateVocê enviou uma oferta de pausaVocê enviou uma oferta de continuaçãoVocê enviou uma oferta de anulaçãoVocê enviou uma oferta de adiamentoVocê enviou uma pedido para voltar jogadaSeu adversário pede que você se apresse!Seu adversário solicitou que o jogo seja anulado. Se você aceitar, o jogo terminará sem nenhuma mudança na classificação.Seu adversário quer que o jogo seja adiado. Se você aceitar, o jogo será adiado e você poderá jogá-lo em outra data (se o seu adversário também estiver conectado e ambos os jogadores concordarem em retomar o jogo).Seu adversário pediu para fazer uma pausa no jogo. Se você aceitar, o relógio do jogo será parado até que ambos aceitem retomar o jogo.Seu adversário quer retomar o jogo. Se você aceitar, o relógio do jogo continuará a contar de onde foi pausado.Seu adversário quer voltar %s lance(s). Se você aceitar, o jogo seguirá a partir da posição indicada.Seu adversário ofereceu empate.Seu adversário lhe ofereceu um empate. Se você aceitar, a partida terminará com o resultado 1/2 - 1/2.Seu adversário não está fora do tempo.Seu oponente precisa concordar em anular o jogo pois há dois ou mais lances já efetuadosSeu adversário parece ter mudado sua mente.Seu adversário quer cancelar a partida.Seu oponente quer adiar a partida.Seu adversário quer pausar a partida.Seu adversário quer retomar a partida.Seu adversário quer desfazer %s movimento(s).As suas configurações de painel foram redefinidas. Se este problema se repetir, você deve relatar aos desenvolvedoresSuas solicitações foram removidasSua força: Zugzwang_Aceitar_Ações_Analisar partidaJogador das _Negras:_Acusar SetaLimpar Bus_cas_Rejeitar_Editar_Engines_Exportar Posição_Tela Cheia_JogoLista de _Jogos_GeralAj_udaEs_conder abas quando houver somente um jogo abertoModo _sugestão_DicasMovimento _inválido:Carr_egar jogoDes_conectar_Visualizador de Registros_Nome:_Novo Jogo_PróximoJogo obse_rvado move:A_dversário:Sen_ha:_Jogar pelas regras normaisLista de _Jogadores_Anterior_Substituir_Girar o Tabuleiro_Salvar %d documento_Salvar %d documentos_Salvar %d documentos_Salvar Jogo_Buscas / Desafios_Mostrar Painel Lateral_Sons_Iniciar JogoSem _relógio_Usar sons no PyChess_ExibirJogador das _Brancas:_Sua Cor:ee os convidados não podem jogar jogos pontuadose no FICS, jogos sem relógio não podem ser pontuadose no FICS, jogos sem relógio têm que ser nas regras normais do xadrezpedir ao seu adversário que movanegraslevam %(piece)s para mais perto do Rei inimigo: %(cord)slevam um Peão para mais perto da última fileira: %sacusar queda de seta do adversáriocapturam peçarocamdefendem %savançam %(piece)s: %(cord)savançam um Peão: %sempatamtrocam peçasgnuchess:semi-abertahttp://pt.wikipedia.org/wiki/Xadrezhttp://en.wikipedia.org/wiki/Chess960 FICS wild/fr: http://www.freechess.org/Help/HelpFiles/wild.htmlhttp://pt.wikipedia.org/wiki/Regras_do_xadrezmelhora a segurança do Reina coluna %(x)s%(y)snas colunas %(x)s%(y)saumenta a pressão em %speça inválida para promoçãofazem xeque-mateminmovem uma Torre para uma coluna abertamovem uma Torre para uma coluna semi-abertamovem o Bispo para o fianqueto: %sdeoferecer empateoferecer uma pausaoferecer voltar jogadasoferecer anulaçãooferecer adiamentooferecer para reiniciar jogooferecer troca de ladoconectado no totalcravam %(oppiece)s do inimigo no(a) %(piece)s em %(cord)saumentam ação de %(piece)s: %(cord)spromovem um Peão a %smovimento de promoção sem a peça promovida é incorretopõem o adversário em xequefaixa de rating agoraresgata %sabandonorodada %ssacrificam peçasmelhora ligeiramente a segurança do Reirecuperam materiala coordenada capturada (%s) está incorretao lance precisa de uma peça e uma coordenadaameaça ganhar a peça por %saceitar automaticamenteaceitar manualmenteucivs.brancasjanela1xboardpychess-0.12.2/lang/fr/0000755000175000017470000000000012653231274015105 5ustar tamasusers00000000000000pychess-0.12.2/lang/fr/LC_MESSAGES/0000755000175000017470000000000012653231274016672 5ustar tamasusers00000000000000pychess-0.12.2/lang/fr/LC_MESSAGES/pychess.po0000644000175000017470000032441212653216204020712 0ustar tamasusers00000000000000# SOME DESCRIPTIVE TITLE. # Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER # This file is distributed under the same license as the pychess package. # # Translators: # alaindresse , 2014 # ludo , 2015 # MARTIN Damien , 2013-2014 # minicore , 2013 # Pierre Boulenguez, 2007 # Nicola Spanti , 2014 # Xavier Lüthi , 2014 # Xavier Lüthi , 2014 msgid "" msgstr "" "Project-Id-Version: pychess\n" "Report-Msgid-Bugs-To: \n" "POT-Creation-Date: 2016-01-27 13:28+0100\n" "PO-Revision-Date: 2016-01-28 08:56+0000\n" "Last-Translator: slav0nic \n" "Language-Team: French (http://www.transifex.com/gbtami/pychess/language/fr/)\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" "Language: fr\n" "Plural-Forms: nplurals=2; plural=(n > 1);\n" # "Plural-Forms: nplurals=INTEGER; plural=EXPRESSION;\n" #: glade/analyze_game.glade:22 msgid "Analyze game" msgstr "Analyser le jeu" #: glade/analyze_game.glade:87 msgid "Use analyzer:" msgstr "Utiliser l'analyseur" #: glade/analyze_game.glade:122 glade/PyChess.glade:2054 msgid "Maximum analysis time in seconds:" msgstr "Temps maximum d'analyse en secondes :" #: glade/analyze_game.glade:163 msgid "" "If the analyzer finds a move where the evaluation difference (the difference" " between the evaluation for the move it thinks is the best move and the " "evaluation for the move made in the game) exceeds this value, it will add an" " annotation for that move (consisting of the engine's Principal Variation " "for the move) to the Annotation panel" msgstr "Si l'analyseur détecte un coup où la différence d'évaluation (la différence entre l'évaluation pour ce qu'il pense être le meilleur coup et l'évaluation du coup joué) dépasse cette valeur, il ajoute une annotation pour ce coup (sous la forme de la variation principale du moteur pour le coup) dans le panneau d'annotation" #: glade/analyze_game.glade:164 msgid "Variation annotation creation threshold in centipawns:" msgstr "" #: glade/analyze_game.glade:198 msgid "Analyze from current position" msgstr "" #: glade/analyze_game.glade:214 msgid "Add threatening variation lines " msgstr "" #: glade/analyze_game.glade:229 glade/PyChess.glade:1459 msgid "Colorize analyzed moves" msgstr "Colorer les coups analysés" #: glade/analyze_game.glade:244 glade/PyChess.glade:1495 msgid "Show evaluation values" msgstr "Afficher les valeurs" #: glade/discovererDialog.glade:18 msgid "PyChess is discovering your engines. Please wait." msgstr "PyChess recherche les moteurs de jeu disponibles. Veuillez patienter." #: glade/discovererDialog.glade:77 msgid "PyChess.py:" msgstr "PyChess.py :" #: glade/discovererDialog.glade:89 msgid "ShredderLinuxChess:" msgstr "ShredderLinuxChess :" #: glade/discovererDialog.glade:101 msgid "gnuchess:" msgstr "gnuchess :" #: glade/fics_logon.glade:7 msgid "PyChess - Connect to Internet Chess" msgstr "Connexion serveur d'échecs en ligne FICS" #: glade/fics_logon.glade:47 msgid "Connect to the Free Online Chess Server" msgstr "Connexion au serveur gratuit d'échecs en ligne FICS" #: glade/fics_logon.glade:129 glade/taskers.glade:394 msgid "_Password:" msgstr "Mot de _passe :" #: glade/fics_logon.glade:143 msgid "_Name:" msgstr "_Nom :" #: glade/fics_logon.glade:191 msgid "Log on as _Guest" msgstr "Se connecter en tant qu' _invité" #: glade/fics_logon.glade:227 msgid "Host:" msgstr "" #: glade/fics_logon.glade:259 msgid "Po_rts:" msgstr "Po_rts :" #: glade/fics_logon.glade:271 msgid "Auto login on startup" msgstr "" #: glade/fics_logon.glade:385 msgid "S_ign up" msgstr "_Inscription" #: glade/fics_lounge.glade:35 msgid "Challenge: " msgstr "Défier : " #: glade/fics_lounge.glade:97 msgid "Send Challenge" msgstr "Envoyer un défi" #: glade/fics_lounge.glade:133 msgid "Challenge:" msgstr "Défier :" #: glade/fics_lounge.glade:327 glade/fics_lounge.glade:2078 msgid "Lightning:" msgstr "Lightning :" #: glade/fics_lounge.glade:351 glade/fics_lounge.glade:2102 msgid "Standard:" msgstr "Standard :" #: glade/fics_lounge.glade:375 glade/fics_lounge.glade:2126 msgid "Blitz:" msgstr "Blitz :" #: glade/fics_lounge.glade:400 msgid "2 min, Fischer Random, Black" msgstr "2 min, échecs aléatoires Fischer, Noir" #: glade/fics_lounge.glade:422 msgid "10 min + 6 sec/move, White" msgstr "10 min + 6 s/coup, Blanc" #: glade/fics_lounge.glade:444 msgid "5 min" msgstr "5 min" #: glade/fics_lounge.glade:480 msgid "Edit Seek" msgstr "Editer une requête" #: glade/fics_lounge.glade:584 lib/pychess/ic/ICLounge.py:2208 #: lib/pychess/ic/__init__.py:101 lib/pychess/Utils/GameModel.py:206 msgid "Untimed" msgstr "Sans décompte de temps" #: glade/fics_lounge.glade:637 msgid "Minutes: " msgstr "Minutes : " #: glade/fics_lounge.glade:665 msgid " Gain: " msgstr " Gain : " #: glade/fics_lounge.glade:703 msgid "Time control: " msgstr "Cadence : " #: glade/fics_lounge.glade:716 lib/pychess/ic/FICSObjects.py:56 #: lib/pychess/ic/ICLounge.py:1137 lib/pychess/ic/ICLounge.py:2208 #: lib/pychess/ic/__init__.py:99 msgid "Standard" msgstr "Standard" #: glade/fics_lounge.glade:757 glade/newInOut.glade:633 msgid "Time Control" msgstr "Paramètres de la pendule" #: glade/fics_lounge.glade:814 glade/fics_lounge.glade:1346 msgid "Don't care" msgstr "Pas de préférence" #: glade/fics_lounge.glade:879 msgid "Your strength: " msgstr "Votre niveau : " #: glade/fics_lounge.glade:921 msgid "(Blitz)" msgstr "(Blitz)" #: glade/fics_lounge.glade:951 msgid "Opponent's strength: " msgstr "Niveau de l'adversaire : " #: glade/fics_lounge.glade:1055 msgid "" "When this button is in the \"locked\" state, the relationship\n" "between \"Opponent's strength\" and \"Your strength\" will be\n" "preserved when \n" "a) your rating for the type of game sought has changed\n" "b) you change the variant or the time control" msgstr "Quand ce bouton est verrouillé, le rapport\nentre \"Niveau de l'adversaire\" et \"Votre niveau\" sera\npréservé si \na) votre niveau pour le type de parties recherché a été modifié\nb) vous avez changé de variante ou modifié la cadence" #: glade/fics_lounge.glade:1095 msgid "Center:" msgstr "Centre :" #: glade/fics_lounge.glade:1134 msgid "1200" msgstr "1200" #: glade/fics_lounge.glade:1188 msgid "Tolerance:" msgstr "Tolérance :" #: glade/fics_lounge.glade:1243 lib/pychess/ic/ICLounge.py:2452 msgid "Hide" msgstr "Masquer" #: glade/fics_lounge.glade:1289 msgid "Opponent Strength" msgstr "Force de l'adversaire" #: glade/fics_lounge.glade:1386 lib/pychess/Database/gamelist.py:40 #: lib/pychess/ic/ICLounge.py:1357 lib/pychess/ic/ICLounge.py:1557 #: lib/pychess/ic/ICLounge.py:2108 lib/pychess/Utils/repr.py:10 #: lib/pychess/widgets/ChessClock.py:40 #: lib/pychess/widgets/TaskerManager.py:153 msgid "White" msgstr "Blanc" #: glade/fics_lounge.glade:1414 lib/pychess/Database/gamelist.py:40 #: lib/pychess/ic/ICLounge.py:1358 lib/pychess/ic/ICLounge.py:1558 #: lib/pychess/ic/ICLounge.py:2110 lib/pychess/Utils/repr.py:10 #: lib/pychess/widgets/ChessClock.py:40 #: lib/pychess/widgets/TaskerManager.py:154 msgid "Black" msgstr "Noir" #: glade/fics_lounge.glade:1453 msgid "Your Color" msgstr "Votre couleur" #: glade/fics_lounge.glade:1512 msgid "Play normal chess rules" msgstr "Jouer avec les règles normales des échecs" #: glade/fics_lounge.glade:1552 msgid "Play" msgstr "Jouer" #: glade/fics_lounge.glade:1618 glade/newInOut.glade:833 msgid "Chess Variant" msgstr "Variante" #: glade/fics_lounge.glade:1676 msgid "Rated game" msgstr "Partie avec classement" #: glade/fics_lounge.glade:1692 msgid "Manually accept opponent" msgstr "Accepter l'adversaire manuellement" #: glade/fics_lounge.glade:1722 msgid "Options" msgstr "Options" #: glade/fics_lounge.glade:1750 msgid "PyChess - Internet Chess: FICS" msgstr "PyChess - Jeu d'échecs : FICS" #: glade/fics_lounge.glade:1823 msgid "_Clear Seeks" msgstr "_Initialiser les offres de parties" #: glade/fics_lounge.glade:1847 msgid "_Accept" msgstr "_Accepter" #: glade/fics_lounge.glade:1871 msgid "_Decline" msgstr "_Refuser" #: glade/fics_lounge.glade:2151 msgid "2 min, Fischer Random, 1800↓, Black" msgstr "2 min, échecs aléatoires Fischer, 1800↓, Noir" #: glade/fics_lounge.glade:2172 msgid "10 min + 6 sec/move, 1400↑, White" msgstr "10 min + 6 s/coup, 1400↑, Blanc" #: glade/fics_lounge.glade:2193 msgid "5 min, 1200-1800, Manual" msgstr "5 min, 1200-1800, Manuel" #: glade/fics_lounge.glade:2247 msgid "Send all seeks" msgstr "Envoyer toutes les requêtes" #: glade/fics_lounge.glade:2301 msgid "Send seek" msgstr "Envoyer une requête" #: glade/fics_lounge.glade:2337 msgid "Create Seek" msgstr "Créer une requête" #: glade/fics_lounge.glade:2353 msgid "_Seeks / Challenges" msgstr "Requêtes / Défis" #: glade/fics_lounge.glade:2374 lib/pychess/ic/ICLounge.py:472 #: lib/pychess/ic/ICLounge.py:670 lib/pychess/ic/ICLounge.py:1357 #: lib/pychess/ic/ICLounge.py:1358 msgid "Rating" msgstr "Classement" #: glade/fics_lounge.glade:2399 msgid "Time" msgstr "Cadence" #: glade/fics_lounge.glade:2419 msgid "Seek _Graph" msgstr "_Graphe des requêtes" #: glade/fics_lounge.glade:2444 msgid "0 Players Ready" msgstr "0 Joueur prêt" #: glade/fics_lounge.glade:2496 msgid "Challenge" msgstr "Défi" #: glade/fics_lounge.glade:2549 glade/fics_lounge.glade:2735 msgid "Observe" msgstr "Observer" #: glade/fics_lounge.glade:2602 msgid "Start Private Chat" msgstr "Démarrer conversation privée" #: glade/fics_lounge.glade:2659 msgid "_Player List" msgstr "Liste des joueurs" #: glade/fics_lounge.glade:2792 msgid "_Game List" msgstr "Liste des parties" #: glade/fics_lounge.glade:2847 msgid "_My games" msgstr "" #: glade/fics_lounge.glade:2904 glade/PyChess.glade:841 msgid "Offer _Resume" msgstr "Proposer de _reprendre" #: glade/fics_lounge.glade:2962 glade/PyChess.glade:880 msgid "R_esign" msgstr "Abandonner" #: glade/fics_lounge.glade:3006 glade/PyChess.glade:820 msgid "Offer _Draw" msgstr "Proposer _ex-aequo" #: glade/fics_lounge.glade:3050 msgid "Offer A_bort" msgstr "Proposer l'a_bandon" #: glade/fics_lounge.glade:3107 msgid "Pre_view" msgstr "Aperçu" #: glade/fics_lounge.glade:3151 msgid "Examine" msgstr "" #: glade/fics_lounge.glade:3208 msgid "_Archived" msgstr "" #: glade/fics_lounge.glade:3313 msgid "News" msgstr "Nouvelles" #: glade/fics_lounge.glade:3345 msgid "Show Console" msgstr "Voir la console" #: glade/fics_lounge.glade:3359 msgid "Show _Chat" msgstr "Montrer les conversations" #: glade/fics_lounge.glade:3373 msgid "_Log Off" msgstr "Déconnecter" #: glade/fics_lounge.glade:3393 msgid "Tools" msgstr "Outils" #: glade/fics_lounge.glade:3428 msgid "Asymmetric Random " msgstr "" #: glade/findbar.glade:6 msgid "window1" msgstr "Fenêtre 1" #: glade/findbar.glade:21 msgid "0 of 0" msgstr "0 de 0" #: glade/findbar.glade:66 msgid "Search:" msgstr "Rechercher :" #: glade/findbar.glade:134 msgid "_Previous" msgstr "_Précédent" #: glade/findbar.glade:192 msgid "_Next" msgstr "_Suivant" #: glade/newInOut.glade:45 lib/pychess/widgets/newGameDialog.py:445 msgid "New Game" msgstr "Nouvelle partie" #: glade/newInOut.glade:108 msgid "_Start Game" msgstr "_Commencer la partie" #: glade/newInOut.glade:130 msgid "Copy FEN" msgstr "" #: glade/newInOut.glade:143 msgid "Clear" msgstr "" #: glade/newInOut.glade:156 msgid "Paste FEN" msgstr "" #: glade/newInOut.glade:257 msgid "_Black player:" msgstr "Joueur _noir :" #: glade/newInOut.glade:274 msgid "_White player:" msgstr "Joueur _blanc :" #: glade/newInOut.glade:385 msgid "Players" msgstr "Joueurs" #: glade/newInOut.glade:436 msgid "_Untimed" msgstr "_Sans cadence" #: glade/newInOut.glade:475 msgid "Blitz: 5 min" msgstr "" #: glade/newInOut.glade:526 msgid "Rapid: 15 min + 10 sec/move" msgstr "" #: glade/newInOut.glade:575 msgid "Normal: 40 min + 15 sec/move" msgstr "" #: glade/newInOut.glade:684 msgid "_Play Normal chess" msgstr "_Jouer les règles normales" #: glade/newInOut.glade:724 msgid "Play Fischer Random chess" msgstr "Jouer aux échecs aléatoires Fischer" #: glade/newInOut.glade:774 msgid "Play Losers chess" msgstr "Jouer au Qui Perd Gagne" #: glade/newInOut.glade:919 msgid "Open Game" msgstr "Charger une partie" #: glade/newInOut.glade:1162 msgid "Initial Position" msgstr "Position initiale" #: glade/newInOut.glade:1219 msgid "Enter Game Notation" msgstr "Entrer l'évaluation de la partie" #: glade/newInOut.glade:1314 msgid "Halfmove clock" msgstr "" #: glade/newInOut.glade:1327 msgid "En passant line" msgstr "" #: glade/newInOut.glade:1339 msgid "Side to move" msgstr "" #: glade/newInOut.glade:1351 msgid "Move number" msgstr "" #: glade/newInOut.glade:1361 msgid "Black O-O" msgstr "" #: glade/newInOut.glade:1375 msgid "Black O-O-O" msgstr "" #: glade/newInOut.glade:1389 msgid "White O-O-O" msgstr "" #: glade/newInOut.glade:1403 msgid "White O-O" msgstr "" #: glade/promotion.glade:7 msgid "Promotion" msgstr "Promotion" #: glade/promotion.glade:49 lib/pychess/Utils/repr.py:12 msgid "Queen" msgstr "Dame" #: glade/promotion.glade:95 lib/pychess/Utils/repr.py:12 msgid "Rook" msgstr "Tour" #: glade/promotion.glade:141 lib/pychess/Utils/repr.py:12 msgid "Bishop" msgstr "Fou" #: glade/promotion.glade:187 lib/pychess/Utils/repr.py:12 msgid "Knight" msgstr "Cavalier" #: glade/promotion.glade:233 lib/pychess/Utils/repr.py:12 msgid "King" msgstr "Roi" #: glade/promotion.glade:265 msgid "Promote pawn to what?" msgstr "Promouvoir le pion en ?" #: glade/PyChess.glade:9 msgid "Chess client" msgstr "" #: glade/PyChess.glade:44 msgid "Game information" msgstr "Informations sur la partie" #: glade/PyChess.glade:164 msgid "Event:" msgstr "Évènement :" #: glade/PyChess.glade:178 msgid "Site:" msgstr "Lieu :" #: glade/PyChess.glade:204 msgid "Round:" msgstr "Tour :" #: glade/PyChess.glade:237 msgid "White:" msgstr "Blanc :" #: glade/PyChess.glade:249 msgid "Black:" msgstr "Noir :" #: glade/PyChess.glade:302 msgid "Game data" msgstr "Informations sur la partie" #: glade/PyChess.glade:357 msgid "Date of game" msgstr "Date" #: glade/PyChess.glade:495 msgid "_Game" msgstr "_Partie" #: glade/PyChess.glade:502 msgid "_New Game" msgstr "_Nouvelle partie" #: glade/PyChess.glade:515 msgid "Play _Internet Chess" msgstr "Jouer aux échecs en _ligne" #: glade/PyChess.glade:534 msgid "_Load Game" msgstr "_Charger une partie" #: glade/PyChess.glade:550 msgid "Load _Recent Game" msgstr "Charger une partie _récente" #: glade/PyChess.glade:558 msgid "Open _Database" msgstr "Ouvrir une base de _données" #: glade/PyChess.glade:569 lib/pychess/widgets/newGameDialog.py:615 msgid "Setup Position" msgstr "Disposer les pièces" #: glade/PyChess.glade:579 msgid "Enter Game _Notation" msgstr "Entrer l'évaluation de la partie" #: glade/PyChess.glade:592 msgid "_Save Game" msgstr "_Enregistrer la partie" #: glade/PyChess.glade:606 msgid "Save Game _As" msgstr "Enregistrer la partie _sous" #: glade/PyChess.glade:624 msgid "Share Game" msgstr "" #: glade/PyChess.glade:630 msgid "_Export Position" msgstr "_Exporter la position" #: glade/PyChess.glade:644 msgid "_Analyze Game" msgstr "_Analyser le Jeu" #: glade/PyChess.glade:678 msgid "Player _Rating" msgstr "Niveau du joueur" #: glade/PyChess.glade:723 msgid "_Edit" msgstr "_Éditer" #: glade/PyChess.glade:734 msgid "_Copy PGN" msgstr "" #: glade/PyChess.glade:746 msgid "_Copy FEN" msgstr "" #: glade/PyChess.glade:763 msgid "_Engines" msgstr "_Moteurs" #: glade/PyChess.glade:789 msgid "_Actions" msgstr "_Actions" #: glade/PyChess.glade:800 msgid "Offer _Abort" msgstr "Proposer un _abandon" #: glade/PyChess.glade:810 msgid "Offer Ad_journment" msgstr "Proposer un a_journement" #: glade/PyChess.glade:831 msgid "Offer _Pause" msgstr "Proposer une _pause" #: glade/PyChess.glade:847 msgid "Offer _Undo" msgstr "Proposer d'annuler le coup" #: glade/PyChess.glade:870 msgid "_Call Flag" msgstr "_Victoire au temps" #: glade/PyChess.glade:890 msgid "Ask to _Move" msgstr "_Demander de jouer" #: glade/PyChess.glade:905 msgid "Auto Call _Flag" msgstr "Appel _Drapeau Auto" #: glade/PyChess.glade:918 msgid "_View" msgstr "A_ffichage" #: glade/PyChess.glade:925 msgid "_Rotate Board" msgstr "_Rotation de l'échiquier" #: glade/PyChess.glade:939 msgid "_Fullscreen" msgstr "_Plein écran" #: glade/PyChess.glade:952 msgid "Leave _Fullscreen" msgstr "Quitter le mode _plein écran" #: glade/PyChess.glade:969 msgid "_Show Sidepanels" msgstr "_Afficher les panneaux latéraux" #: glade/PyChess.glade:980 msgid "_Log Viewer" msgstr "_Informations du journal" #: glade/PyChess.glade:997 msgid "_Hint mode" msgstr "_Mode assistant" #: glade/PyChess.glade:1009 msgid "Sp_y mode" msgstr "Mode _espion" #: glade/PyChess.glade:1024 msgid "_Help" msgstr "A_ide" #: glade/PyChess.glade:1034 msgid "About Chess" msgstr "À propos des échecs" #: glade/PyChess.glade:1043 msgid "How to Play" msgstr "Comment jouer" #: glade/PyChess.glade:1052 msgid "Translate PyChess" msgstr "Traduire PyChess" #: glade/PyChess.glade:1058 msgid "Tip of the Day" msgstr "Astuce du jour" #: glade/PyChess.glade:1153 msgid "Default" msgstr "Défaut" #: glade/PyChess.glade:1156 msgid "Knights" msgstr "Cavaliers" #: glade/PyChess.glade:1167 lib/pychess/widgets/preferencesDialog.py:349 msgid "Beep" msgstr "Beep" #: glade/PyChess.glade:1170 lib/pychess/widgets/preferencesDialog.py:350 msgid "Select sound file..." msgstr "Sélectionnez un fichier son..." #: glade/PyChess.glade:1173 lib/pychess/widgets/preferencesDialog.py:348 msgid "No sound" msgstr "Aucun son" #: glade/PyChess.glade:1180 msgid "Preferences" msgstr "Préférences" #: glade/PyChess.glade:1218 msgid "The displayed name of the first human player, e.g., John." msgstr "Le nom affiché du premier joueur humain, par exemple Pierre." #: glade/PyChess.glade:1230 msgid "Name of _first human player:" msgstr "Nom du _premier joueur humain :" #: glade/PyChess.glade:1259 msgid "The displayed name of the guest player, e.g., Mary." msgstr "Le nom affiché du joueur invité, par exemple Marie." #: glade/PyChess.glade:1271 msgid "Name of s_econd human player:" msgstr "Nom du _second joueur humain :" #: glade/PyChess.glade:1307 msgid "_Hide tabs when only one game is open" msgstr "_Cacher les onglets quand une seule partie est en cours" #: glade/PyChess.glade:1312 msgid "" "If set, this hides the tab in the top of the playing window, when it is not " "needed." msgstr "Lorsque cette option est sélectionnée, cache l'onglet en haut de la fenêtre de jeu lorsque ce n'est pas nécessaire." #: glade/PyChess.glade:1326 msgid "_Use main app closer [x] to close all games" msgstr "" #: glade/PyChess.glade:1331 msgid "" "If set, clicking on main application window closer first time it closes all " "games." msgstr "" #: glade/PyChess.glade:1345 msgid "Auto _rotate board to current human player" msgstr "_Retourner automatiquement l'échiquier vers le joueur humain" #: glade/PyChess.glade:1350 msgid "" "If set, the board will turn after each move, to show the natural view for " "the current player." msgstr "Lorsque cette option est sélectionnée, l'échiquier pivote après chaque coup pour afficher le point de vue du joueur dont c'est le tour." #: glade/PyChess.glade:1364 msgid "Auto _promote to queen" msgstr "" #: glade/PyChess.glade:1369 msgid "If set, pawn promotes to queen without promotion dialog selection." msgstr "" #: glade/PyChess.glade:1383 msgid "Face _to Face display mode" msgstr "Affichage en mode face à face" #: glade/PyChess.glade:1388 msgid "" "If set, the black pieces will be head down, suitable for playing against " "friends on mobile devices." msgstr "Lorsque cette option est sélectionnée, les pièces noires sont affichées la tête pointant vers le bas. Adapté au jeu entre amis sur des appareils mobiles." #: glade/PyChess.glade:1402 msgid "Sho_w cords" msgstr "Échiquier avec coordonnées" #: glade/PyChess.glade:1407 msgid "" "If set, the playing board will display labels and ranks for each chess " "field. These are usable in chess notation." msgstr "Lorsque cette option est sélectionnée, les colonnes et les lignes de l'échiquier sont identifiées respectivement par des lettres et des chiffres. Cette désignation est conforme à la notation algébrique." #: glade/PyChess.glade:1421 msgid "Show _captured pieces" msgstr "Montrer les pièces _capturées" #: glade/PyChess.glade:1426 msgid "If set, the captured figurines will be shown next to the board." msgstr "Lorsque cette option est sélectionnée, les pièces capturées seront affichées à côté de l'échiquier." #: glade/PyChess.glade:1440 msgid "Prefer figures in _notation" msgstr "Préférer la notation avec figurines" #: glade/PyChess.glade:1445 msgid "" "If set, PyChess will use figures to express moved pieces, rather than " "uppercase letters." msgstr "Lorsque cette option est sélectionnée, PyChess utilise des figurines pour désigner les pièces déplacées, plutôt que des lettres majuscules." #: glade/PyChess.glade:1464 msgid "If set, PyChess will colorize suboptimal analyzed moves with red." msgstr "Si sélectionné, PyChess colorie les mouvements analysés suboptimales en rouge." #: glade/PyChess.glade:1477 msgid "Show elapsed move times" msgstr "Montrer le temps de déplacement écoulé" #: glade/PyChess.glade:1482 msgid "If set, the elapsed time that a player used for the move is shown." msgstr "Si sélectionné, on affiche le temps écoulé mis par un joueur pour le déplacement." #: glade/PyChess.glade:1500 msgid "If set, the hint analyzer engine evaluation value is shown." msgstr "Lorsque cette option est sélectionnée, la valeur du coup proposé par le moteur d'analyse est affichée." #: glade/PyChess.glade:1526 msgid "General Options" msgstr "" #: glade/PyChess.glade:1560 msgid "F_ull board animation" msgstr "Echiquier totalement animé" #: glade/PyChess.glade:1565 msgid "Animate pieces, board rotation and more. Use this on fast machines." msgstr "Anime les pièces, fait pivoter l'échiquier et plus encore. À utiliser sur une machine puissante." #: glade/PyChess.glade:1579 msgid "Only animate _moves" msgstr "Animer seulement les coups" #: glade/PyChess.glade:1584 msgid "Only animate piece moves." msgstr "Anime uniquement les mouvements des pièces." #: glade/PyChess.glade:1599 msgid "No _animation" msgstr "Aucune animation" #: glade/PyChess.glade:1604 msgid "Never use animation. Use this on slow machines." msgstr "Aucune animation durant la partie. À utiliser sur les machines les moins puissantes." #: glade/PyChess.glade:1632 msgid "Animation" msgstr "Animation" #: glade/PyChess.glade:1651 msgid "_General" msgstr "_Général" #: glade/PyChess.glade:1692 msgid "Use opening _book" msgstr "Utiliser la _bibliothèque des ouvertures" #: glade/PyChess.glade:1697 msgid "If set, PyChess will suggest best opening moves on hint panel." msgstr "Lorsque cette option est sélectionnée, PyChess suggérera les meilleurs ouvertures possibles dans le panneau d'aide." #: glade/PyChess.glade:1724 msgid "Polyglot book file:" msgstr "Fichier du livre multilangue:" #: glade/PyChess.glade:1768 msgid "Use _local tablebases" msgstr "Utiliser les tables de base _locale" #: glade/PyChess.glade:1773 msgid "" "If set, PyChess will show game results for different moves in positions containing 6 or less pieces.\n" "You can download tablebase files from:\n" "http://www.olympuschess.com/egtb/gaviota/" msgstr "" #: glade/PyChess.glade:1803 msgid "Gaviota TB path:" msgstr "Chemin de Gaviota TB :" #: glade/PyChess.glade:1843 msgid "Use _online tablebases" msgstr "Utiliser les tables de bases _connectées" #: glade/PyChess.glade:1848 msgid "" "If set, PyChess will show game results for different moves in positions containing 6 or less pieces.\n" "It will search positions from http://www.k4it.de/" msgstr "" #: glade/PyChess.glade:1870 msgid "Opening, endgame" msgstr "Ouverture, fin de jeu" #: glade/PyChess.glade:1904 msgid "Use _analyzer" msgstr "Utiliser _analyseur" #: glade/PyChess.glade:1946 msgid "" "The analyzer will run in the background and analyze the game. This is " "necessary for the hint mode to work" msgstr "L'analyseur va tourner en tâche de fond et analyser la partie. C'est nécessaire pour que le mode \"aide\" puisse fonctionner" #: glade/PyChess.glade:1978 msgid "Use _inverted analyzer" msgstr "Utiliser _analyseur inverse" #: glade/PyChess.glade:2020 msgid "" "The inverse analyzer will analyze the game as if your opponent was to move. " "This is necessary for the spy mode to work" msgstr "L'analyseur inverse va analyser la partie comme si c'était à votre adversaire de jouer. Ceci est nécessaire pour que le mode \"espion\" fonctionne" #: glade/PyChess.glade:2096 msgid "Analyzing" msgstr "Analyse" #: glade/PyChess.glade:2118 msgid "_Hints" msgstr "_Astuces" #: glade/PyChess.glade:2263 msgid "Uninstall" msgstr "Désinstaller" #: glade/PyChess.glade:2317 msgid "Ac_tive" msgstr "Actif" #: glade/PyChess.glade:2367 msgid "Installed Sidepanels" msgstr "Panneaux latéraux installés" #: glade/PyChess.glade:2382 msgid "Side_panels" msgstr "Panneaux latéraux" #: glade/PyChess.glade:2440 msgid "Light Squares :" msgstr "" #: glade/PyChess.glade:2479 msgid "Dark Squares :" msgstr "" #: glade/PyChess.glade:2515 msgid "Reset Default Colours" msgstr "" #: glade/PyChess.glade:2551 msgid "Board Colours" msgstr "" #: glade/PyChess.glade:2610 msgid "Chess Sets" msgstr "" #: glade/PyChess.glade:2634 msgid "Themes" msgstr "Thèmes" #: glade/PyChess.glade:2659 msgid "_Use sounds in PyChess" msgstr "_Activer les sons dans PyChess" #: glade/PyChess.glade:2982 msgid "A player _checks:" msgstr "Vérification _Joueur" #: glade/PyChess.glade:2997 msgid "A player _moves:" msgstr "Un joueur déplace :" #: glade/PyChess.glade:3010 msgid "Game is _drawn:" msgstr "Ex-aequo" #: glade/PyChess.glade:3025 msgid "Game is _lost:" msgstr "La partie est _perdue :" #: glade/PyChess.glade:3040 msgid "Game is _won:" msgstr "La partie est _gagnée :" #: glade/PyChess.glade:3055 msgid "A player c_aptures:" msgstr "Un joueur c_apture :" #: glade/PyChess.glade:3084 msgid "Game is _set-up:" msgstr "L'échiqiuer est disposé :" #: glade/PyChess.glade:3136 msgid "_Observed moves:" msgstr "_Déplacements observés :" #: glade/PyChess.glade:3151 msgid "Observed _ends:" msgstr "_Fins observées :" #: glade/PyChess.glade:3265 msgid "Short on _time:" msgstr "Court sur _temps:" #: glade/PyChess.glade:3317 msgid "_Invalid move:" msgstr "_Déplacement incorrect:" #: glade/PyChess.glade:3369 msgid "Activate alarm when _remaining sec is:" msgstr "Activer l'alarme quand le temps _restant en seconde est:" #: glade/PyChess.glade:3416 msgid "Play Sound When..." msgstr "Jouer un son quand..." #: glade/PyChess.glade:3438 msgid "_Sounds" msgstr "_Sons" #: glade/PyChess.glade:3463 msgid "_Auto save finished games" msgstr "" #: glade/PyChess.glade:3497 msgid "Save files to:" msgstr "" #: glade/PyChess.glade:3525 msgid "Use name format:" msgstr "" #: glade/PyChess.glade:3569 msgid "Names: #n1, #n2" msgstr "" #: glade/PyChess.glade:3582 msgid "Year, month, day: #y, #m, #d" msgstr "" #: glade/PyChess.glade:3619 msgid "Save elapsed move _times" msgstr "" #: glade/PyChess.glade:3644 msgid "Save analyzing engine _evaluation values" msgstr "" #: glade/PyChess.glade:3669 msgid "Save _own games only" msgstr "" #: glade/PyChess.glade:3698 msgid "Save" msgstr "" #: glade/PyChess.glade:3728 msgid "uci" msgstr "" #: glade/PyChess.glade:3731 msgid "xboard" msgstr "xboard" #: glade/PyChess.glade:3739 msgid "Manage engines" msgstr "Gérer les moteurs" #: glade/PyChess.glade:3837 msgid "Command:" msgstr "Commande :" #: glade/PyChess.glade:3851 msgid "Protocol:" msgstr "Protocole :" #: glade/PyChess.glade:3865 msgid "Parameters:" msgstr "Paramètres :" #: glade/PyChess.glade:3878 msgid "Command line parameters needed by the engine." msgstr "Paramètres de la ligne de commande nécessaire au moteur." #: glade/PyChess.glade:3903 msgid "" "Engines use uci or xboard communication protocol to talk to the GUI.\n" "If it can use both you can set here which one you like." msgstr "Afin de communiquer avec l'interface graphique, les moteurs d'échecs utilisent le protocole UCI ou xboard.\nDéfinissez ici le protocole que vous souhaitez utiliser." #: glade/PyChess.glade:3929 msgid "Working directory:" msgstr "Répertoire de travail :" #: glade/PyChess.glade:3942 msgid "The directory where the engine will be started from." msgstr "Le dossier à partir duquel le moteur sera lancé." #: glade/saveGamesDialog.glade:7 msgid "Quit PyChess" msgstr "Quitter PyChess" #: glade/saveGamesDialog.glade:24 lib/pychess/widgets/ionest.py:424 msgid "Close _without Saving" msgstr "Fermer _sans enregistrer" #: glade/saveGamesDialog.glade:83 msgid "_Save %d documents" msgstr "_Sauvegarder %d documents" #: glade/saveGamesDialog.glade:141 msgid "" "There are %d games with unsaved moves. Save changes before " "closing?" msgstr "Il y a %d parties avec des coups non sauvegardés. Enregistrer les changements avant de fermer ?" #: glade/saveGamesDialog.glade:161 msgid "Select the games you want to save:" msgstr "Selectionner les parties à sauvegarder :" #: glade/saveGamesDialog.glade:204 msgid "If you don't save, new changes to your games will be permanently lost." msgstr "Si vous ne sauvegardez pas, les changements des parties seront définitivement perdues." #: glade/taskers.glade:126 msgid "_Opponent:" msgstr "_Adversaire :" #: glade/taskers.glade:154 msgid "_Your Color:" msgstr "_Votre couleur:" #: glade/taskers.glade:219 msgid "_Start Game" msgstr "_Démarrer la partie" #: glade/taskers.glade:338 msgid "Log on as G_uest" msgstr "S'identifier comme i_nvité" #: glade/taskers.glade:410 msgid "Ha_ndle:" msgstr "Pseudo (handle)" #: glade/taskers.glade:469 msgid "_Connect to server" msgstr "" #: glade/tipoftheday.glade:7 msgid "Tip Of The day" msgstr "Astuce du jour" #: glade/tipoftheday.glade:62 msgid "Show tips at startup" msgstr "Afficher des astuces au démarrage" #: lib/pychess/Main.py:302 msgid "http://en.wikipedia.org/wiki/Chess" msgstr "http://fr.wikipedia.org/wiki/Jeu_d'%C3%A9checs" #: lib/pychess/Main.py:305 msgid "http://en.wikipedia.org/wiki/Rules_of_chess" msgstr "http://fr.wikipedia.org/wiki/R%C3%A8gles_du_jeu_d%27%C3%A9checs" #: lib/pychess/Main.py:370 lib/pychess/widgets/gamenanny.py:80 msgid "Welcome" msgstr "Bienvenue" #: lib/pychess/Database/gamelist.py:40 msgid "Id" msgstr "Id" #: lib/pychess/Database/gamelist.py:40 msgid "W Elo" msgstr "B Elo" #: lib/pychess/Database/gamelist.py:40 msgid "B Elo" msgstr "N Elo" #: lib/pychess/Database/gamelist.py:41 msgid "Result" msgstr "Résultat" #: lib/pychess/Database/gamelist.py:41 msgid "Event" msgstr "Événement" #: lib/pychess/Database/gamelist.py:41 msgid "Site" msgstr "Lieu" #: lib/pychess/Database/gamelist.py:41 msgid "Round" msgstr "Tour" #: lib/pychess/Database/gamelist.py:41 msgid "Date" msgstr "Date" #: lib/pychess/Database/gamelist.py:41 msgid "ECO" msgstr "ECO" #: lib/pychess/Database/gamelist.py:62 msgid "PyChess Game Database" msgstr "Base de données du jeu PyChess" #: lib/pychess/Database/PgnImport.py:188 #, python-format msgid "The game #%s can't be loaded, because of an error parsing FEN" msgstr "Impossible de charger la partie #%s car une erreur s'est produite lors de l'interprétation du fichier FEN" #: lib/pychess/ic/FICSConnection.py:139 msgid "The connection was broken - got \"end of file\" message" msgstr "La connexion a été coupée - message \"fin de fichier\" reçu" #: lib/pychess/ic/FICSConnection.py:140 #, python-format msgid "'%s' is not a registered name" msgstr "'%s' n'est pas un nom enregistré" #: lib/pychess/ic/FICSConnection.py:141 msgid "" "The entered password was invalid.\n" "If you forgot your password, go to http://www.freechess.org/password to request a new one over email." msgstr "" #: lib/pychess/ic/FICSConnection.py:145 #, python-format msgid "Sorry '%s' is already logged in" msgstr "" #: lib/pychess/ic/FICSConnection.py:146 #, python-format msgid "'%s' is a registered name. If it is yours, type the password." msgstr "" #: lib/pychess/ic/FICSConnection.py:147 msgid "" "Due to abuse problems, guest connections have been prevented.\n" "You can still register on http://www.freechess.org" msgstr "" #: lib/pychess/ic/FICSConnection.py:166 msgid "Connecting to server" msgstr "Connexion au serveur" #: lib/pychess/ic/FICSConnection.py:181 msgid "Logging on to server" msgstr "Début de transaction" #: lib/pychess/ic/FICSConnection.py:239 msgid "Setting up environment" msgstr "Paramètrage de l'environnement" #: lib/pychess/ic/FICSObjects.py:35 lib/pychess/ic/FICSObjects.py:47 #, python-format msgid "%(player)s is %(status)s" msgstr "%(player)s est %(status)s" #: lib/pychess/ic/FICSObjects.py:46 msgid "not playing" msgstr "ne joue pas" #: lib/pychess/ic/FICSObjects.py:54 lib/pychess/ic/ICLounge.py:1136 #: lib/pychess/ic/ICLounge.py:2209 lib/pychess/ic/__init__.py:98 #: lib/pychess/widgets/newGameDialog.py:153 msgid "Blitz" msgstr "Blitz" #: lib/pychess/ic/FICSObjects.py:58 lib/pychess/ic/ICLounge.py:1137 #: lib/pychess/ic/ICLounge.py:2209 lib/pychess/ic/__init__.py:100 msgid "Lightning" msgstr "Lightning" #: lib/pychess/ic/FICSObjects.py:60 lib/pychess/Variants/atomic.py:15 msgid "Atomic" msgstr "Atomique" #: lib/pychess/ic/FICSObjects.py:62 lib/pychess/Variants/bughouse.py:9 msgid "Bughouse" msgstr "" #: lib/pychess/ic/FICSObjects.py:64 lib/pychess/Variants/crazyhouse.py:9 msgid "Crazyhouse" msgstr "Maison de fou" #: lib/pychess/ic/FICSObjects.py:66 lib/pychess/Variants/losers.py:9 msgid "Losers" msgstr "Qui perd gagne" #: lib/pychess/ic/FICSObjects.py:68 lib/pychess/Variants/suicide.py:12 msgid "Suicide" msgstr "Suicide" #: lib/pychess/ic/FICSObjects.py:70 lib/pychess/ic/__init__.py:129 msgid "Wild" msgstr "Variantes \"Wild\"" #: lib/pychess/ic/FICSObjects.py:117 msgid "Online" msgstr "Connecté" #: lib/pychess/ic/FICSObjects.py:118 lib/pychess/ic/FICSObjects.py:143 msgid "Offline" msgstr "Déconnecté" #: lib/pychess/ic/FICSObjects.py:133 msgid "Available" msgstr "Disponible" #: lib/pychess/ic/FICSObjects.py:135 msgid "Playing" msgstr "Lecture" #: lib/pychess/ic/FICSObjects.py:141 msgid "Idle" msgstr "Inactif" #: lib/pychess/ic/FICSObjects.py:145 msgid "Examining" msgstr "Analyse en cours" #: lib/pychess/ic/FICSObjects.py:147 msgid "Not Available" msgstr "Indisponible" #: lib/pychess/ic/FICSObjects.py:149 msgid "Running Simul Match" msgstr "Partie simultanée" #: lib/pychess/ic/FICSObjects.py:151 msgid "In Tournament" msgstr "En tournoi" #: lib/pychess/ic/FICSObjects.py:308 lib/pychess/ic/FICSObjects.py:492 #: lib/pychess/ic/ICLounge.py:2278 msgid "Unrated" msgstr "Non noté" #: lib/pychess/ic/FICSObjects.py:491 lib/pychess/ic/ICLounge.py:670 #: lib/pychess/ic/ICLounge.py:1358 lib/pychess/ic/ICLounge.py:1558 #: lib/pychess/ic/ICLounge.py:2113 msgid "Rated" msgstr "Noté" #: lib/pychess/ic/FICSObjects.py:498 lib/pychess/ic/ICLounge.py:2098 #, python-format msgid "%d min" msgstr "%d min" #: lib/pychess/ic/FICSObjects.py:500 #, python-format msgid " + %d sec" msgstr " + %d s" #: lib/pychess/ic/FICSObjects.py:517 #, python-format msgid "%(player)s plays %(color)s" msgstr "%(player)s joue %(color)s" #: lib/pychess/ic/FICSObjects.py:519 lib/pychess/ic/ICLounge.py:909 msgid "white" msgstr "blanc" #: lib/pychess/ic/FICSObjects.py:519 lib/pychess/ic/ICLounge.py:909 msgid "black" msgstr "noir" #: lib/pychess/ic/FICSObjects.py:565 msgid "This is a continuation of an adjourned match" msgstr "C'est la suite d'un jeu suspendu" #: lib/pychess/ic/FICSObjects.py:654 msgid "Opponent Rating" msgstr "Niveau de l'adversaire" #: lib/pychess/ic/FICSObjects.py:656 msgid "Manual Accept" msgstr "Accepter manuellement" #: lib/pychess/ic/FICSObjects.py:810 msgid "Private" msgstr "Privé" #: lib/pychess/ic/FICSObjects.py:930 lib/pychess/ic/ICLounge.py:527 #: lib/pychess/Savers/epd.py:139 msgid "Unknown" msgstr "Inconnu" #: lib/pychess/ic/ICLogon.py:159 lib/pychess/ic/ICLogon.py:165 msgid "Connection Error" msgstr "Erreur de connexion" #: lib/pychess/ic/ICLogon.py:161 msgid "Log on Error" msgstr "Erreur à l'authentification" #: lib/pychess/ic/ICLogon.py:163 msgid "Connection was closed" msgstr "La connexion a été fermée" #: lib/pychess/ic/ICLogon.py:169 msgid "Address Error" msgstr "Erreur d'adressage" #: lib/pychess/ic/ICLogon.py:172 msgid "Auto-logout" msgstr "Déconnexion automatique" #: lib/pychess/ic/ICLogon.py:173 msgid "You have been logged out because you were idle more than 60 minutes" msgstr "Vous avez été déconnecté parce que vous étiez inactif pendant plus de 60 minutes" #: lib/pychess/ic/ICLounge.py:222 msgid "You have to set kibitz on to see bot messages here." msgstr "" #: lib/pychess/ic/ICLounge.py:241 msgid "" "You may only have 3 outstanding seeks at the same time. If you want to add a" " new seek you must clear your currently active seeks. Clear your seeks?" msgstr "Vous ne pouvez avoir que 3 requêtes simultanément. Si vous voulez ajouter une requête, vous devez effacer vos requêtes actives. Effacer les requêtes ?" #: lib/pychess/ic/ICLounge.py:258 msgid "You can't touch this! You are examining a game." msgstr "" #: lib/pychess/ic/ICLounge.py:270 msgid " has declined your offer for a match" msgstr "a décliné votre proposition de jeu" #: lib/pychess/ic/ICLounge.py:283 msgid " is censoring you" msgstr "vous a censuré" #: lib/pychess/ic/ICLounge.py:296 msgid " noplay listing you" msgstr "aucun jeu ne vous liste" #: lib/pychess/ic/ICLounge.py:311 msgid " uses a formula not fitting your match request:" msgstr "utilisation d'une formule ne correspondant pas à votre demande de correspondance:" #: lib/pychess/ic/ICLounge.py:325 msgid "to manual accept" msgstr "Accepter manuellement" #: lib/pychess/ic/ICLounge.py:327 msgid "to automatic accept" msgstr "Accepter automatiquement" #: lib/pychess/ic/ICLounge.py:329 msgid "rating range now" msgstr "évaluation de l'ensemble maintenant" #: lib/pychess/ic/ICLounge.py:330 msgid "Seek updated" msgstr "Proposition mise à jour" #: lib/pychess/ic/ICLounge.py:342 msgid "Your seeks have been removed" msgstr "Vos propositions ont été supprimées" #: lib/pychess/ic/ICLounge.py:363 msgid " has arrived" msgstr "est arrivé" #: lib/pychess/ic/ICLounge.py:370 msgid " has departed" msgstr "est parti" #: lib/pychess/ic/ICLounge.py:374 msgid " is present" msgstr "est présent" #: lib/pychess/ic/ICLounge.py:391 sidepanel/chatPanel.py:17 msgid "Chat" msgstr "Chat" #: lib/pychess/ic/ICLounge.py:472 sidepanel/bookPanel.py:366 msgid "Win" msgstr "Gagné" #: lib/pychess/ic/ICLounge.py:472 sidepanel/bookPanel.py:360 msgid "Draw" msgstr "Nulle" #: lib/pychess/ic/ICLounge.py:472 sidepanel/bookPanel.py:363 msgid "Loss" msgstr "Perdu" #: lib/pychess/ic/ICLounge.py:482 msgid "" "On FICS, your \"Wild\" rating encompasses all of the following variants at " "all time controls:\n" msgstr "Sur FICS, votre classement \"variantes\" prend en compte les variantes suivantes :\n" #: lib/pychess/ic/ICLounge.py:494 msgid "Sanctions" msgstr "Sanctions" #: lib/pychess/ic/ICLounge.py:499 msgid "Email" msgstr "Adresse électronique" #: lib/pychess/ic/ICLounge.py:504 msgid "Spent" msgstr "Dépensé" #: lib/pychess/ic/ICLounge.py:506 msgid "online in total" msgstr "Connectés au total" #: lib/pychess/ic/ICLounge.py:512 msgid "Ping" msgstr "Ping" #: lib/pychess/ic/ICLounge.py:517 msgid "Connecting" msgstr "Connexion en cours" #: lib/pychess/ic/ICLounge.py:544 msgid "" "You are currently logged in as a guest.\n" "A guest can't play rated games and therefore isn't able to play as many of the types of matches offered as a registered user. To register an account, go to http://www.freechess.org/Register/index.html." msgstr "Vous êtes connecté en tant qu'invité.\nUn invité ne peut pas jouer à des jeux évalués et ne peut donc pas jouer à autant de type de jeux qui sont offerts si on est inscrits. Pour s'inscrire, aller à http://www.freechess.org/Register/index.html." #: lib/pychess/ic/ICLounge.py:669 lib/pychess/ic/ICLounge.py:1136 msgid "Name" msgstr "Nom" #: lib/pychess/ic/ICLounge.py:670 lib/pychess/ic/ICLounge.py:1358 #: lib/pychess/ic/ICLounge.py:1558 msgid "Type" msgstr "Type" #: lib/pychess/ic/ICLounge.py:670 lib/pychess/ic/ICLounge.py:1558 msgid "Clock" msgstr "Pendule" #: lib/pychess/ic/ICLounge.py:726 lib/pychess/ic/ICLounge.py:923 #: lib/pychess/Players/Human.py:250 msgid "Accept" msgstr "Accepter" #: lib/pychess/ic/ICLounge.py:728 msgid "Assess" msgstr "" #: lib/pychess/ic/ICLounge.py:734 msgid "Archived" msgstr "" #: lib/pychess/ic/ICLounge.py:848 #, python-format msgid "Active seeks: %d" msgstr "Requêtes active : %d" #: lib/pychess/ic/ICLounge.py:897 #, python-format msgid "" " would like to resume your adjourned %(time)s %(gametype)s " "game." msgstr "désire reprendre la partie %(gametype)s ajournée %(time)s." #: lib/pychess/ic/ICLounge.py:902 #, python-format msgid "" " challenges you to a %(time)s %(rated)s %(gametype)s game" msgstr "" #: lib/pychess/ic/ICLounge.py:907 #, python-format msgid " where %(player)s plays %(color)s." msgstr "Où %(player)s joue %(color)s." #: lib/pychess/ic/ICLounge.py:924 lib/pychess/Players/Human.py:251 msgid "Decline" msgstr "Décliner" #: lib/pychess/ic/ICLounge.py:1065 msgid " min" msgstr " min" #: lib/pychess/ic/ICLounge.py:1137 msgid "Status" msgstr "État" #: lib/pychess/ic/ICLounge.py:1203 lib/pychess/ic/ICLounge.py:1233 #, python-format msgid "Players: %d" msgstr "Joueurs : %d" #: lib/pychess/ic/ICLounge.py:1469 #, python-format msgid "Games running: %d" msgstr "Parties en cours : %d" #: lib/pychess/ic/ICLounge.py:1559 msgid "Date/Time" msgstr "Date/Heure" #: lib/pychess/ic/ICLounge.py:1614 #, python-format msgid "" " with whom you have an adjourned %(timecontrol)s %(gametype)s " "game is online." msgstr "" #: lib/pychess/ic/ICLounge.py:1635 msgid "Request Continuation" msgstr "Demander à poursuivre" #: lib/pychess/ic/ICLounge.py:1637 msgid "Examine Adjourned Game" msgstr "Examiner la partie ajournée" #: lib/pychess/ic/ICLounge.py:1965 msgid "" "The chain button is disabled because you are logged in as a guest. Guests " "can't establish ratings, and the chain button's state has no effect when " "there is no rating to which to tie \"Opponent Strength\" to" msgstr "Le bouton Chaînage est désactivé parce que vous êtes connecté en tant qu'invité. Les invités ne peuvent pas être classés, et l'état du bouton Chaînage n'a aucun effet quand il n'y a aucun classement à mettre en regard du niveau de l'adversaire." #: lib/pychess/ic/ICLounge.py:2006 msgid "Challenge: " msgstr "Défier : " #: lib/pychess/ic/ICLounge.py:2044 msgid "If set you can refuse players accepting your seek" msgstr "" #: lib/pychess/ic/ICLounge.py:2048 lib/pychess/ic/ICLounge.py:2051 msgid "This option is not applicable because you're challenging a player" msgstr "Cette option n'est pas disponible parce que vous défier un joueur" #: lib/pychess/ic/ICLounge.py:2064 msgid "Edit Seek: " msgstr "Editer une requête " #: lib/pychess/ic/ICLounge.py:2095 #, python-format msgid "%(minutes)d min + %(gain)d sec/move" msgstr "%(minutes)d min + %(gain)d s/coup" #: lib/pychess/ic/ICLounge.py:2116 msgid "Manual" msgstr "Manuel" #: lib/pychess/ic/ICLounge.py:2256 msgid "Any strength" msgstr "N'importe quel niveau" #: lib/pychess/ic/ICLounge.py:2308 msgid "You can't play rated games because you are logged in as a guest" msgstr "Connecté en tant qu'invité, vous ne pouvez pas jouer de partie évaluée." #: lib/pychess/ic/ICLounge.py:2312 msgid "You can't play rated games because \"Untimed\" is checked, " msgstr "L'option \"sans cadence\" étant sélectionnée, vous ne pouvez pas jouer de partie. " #: lib/pychess/ic/ICLounge.py:2313 msgid "and on FICS, untimed games can't be rated" msgstr "et sur FICS, les parties jouées sans contrôle de temps ne peuvent pas être évaluées." #: lib/pychess/ic/ICLounge.py:2317 msgid "This option is not available because you're challenging a guest, " msgstr "Cette option n'est pas disponible, parce que vous défiez un invité, " #: lib/pychess/ic/ICLounge.py:2318 msgid "and guests can't play rated games" msgstr "et les invités ne peuvent pas jouer de parties évaluées." #: lib/pychess/ic/ICLounge.py:2332 lib/pychess/Variants/shuffle.py:16 #: lib/pychess/widgets/newGameDialog.py:266 msgid "Shuffle" msgstr "Aléatoire" #: lib/pychess/ic/ICLounge.py:2333 lib/pychess/widgets/newGameDialog.py:267 msgid "Other (standard rules)" msgstr "Autre (règles standards)" #: lib/pychess/ic/ICLounge.py:2334 lib/pychess/widgets/newGameDialog.py:268 msgid "Other (non standard rules)" msgstr "Autre (règles non standards)" #: lib/pychess/ic/ICLounge.py:2421 msgid "You can't select a variant because \"Untimed\" is checked, " msgstr "L'option \"sans cadence\" étant sélectionnée, vous ne ne pouvez pas choisir de variante, " #: lib/pychess/ic/ICLounge.py:2422 msgid "and on FICS, untimed games have to be normal chess rules" msgstr "et sur FICS, les parties sans contrôle de temps suivent les règles normales des échecs" #: lib/pychess/ic/ICLounge.py:2454 msgid "Change Tolerance" msgstr "Modifier la tolérance" #: lib/pychess/ic/__init__.py:102 msgid "Examined" msgstr "Analysé" #: lib/pychess/ic/__init__.py:103 msgid "Other" msgstr "Autre" #: lib/pychess/ic/__init__.py:182 msgid "Administrator" msgstr "Administrateur" #: lib/pychess/ic/__init__.py:182 msgid "Blindfold Account" msgstr "Compte \"à l'aveugle\" (blindfold)" #: lib/pychess/ic/__init__.py:182 msgid "Computer" msgstr "Ordinateur" #: lib/pychess/ic/__init__.py:183 msgid "Team Account" msgstr "Compte \"équipe\" (team)" #: lib/pychess/ic/__init__.py:183 msgid "Unregistered" msgstr "Non-enregistré" #: lib/pychess/ic/__init__.py:183 msgid "Chess Advisor" msgstr "Conseiller en échecs" #: lib/pychess/ic/__init__.py:184 msgid "Service Representative" msgstr "Agent de service" #: lib/pychess/ic/__init__.py:184 msgid "Tournament Director" msgstr "Directeur de tournoi" #: lib/pychess/ic/__init__.py:184 msgid "Mamer Manager" msgstr "Mamer Manager" #: lib/pychess/ic/__init__.py:185 msgid "Grand Master" msgstr "Grand Maître" #: lib/pychess/ic/__init__.py:185 msgid "International Master" msgstr "Maître International" #: lib/pychess/ic/__init__.py:185 msgid "FIDE Master" msgstr "Maître FIDE" #: lib/pychess/ic/__init__.py:186 msgid "Woman Grand Master" msgstr "Grand Maître féminin" #: lib/pychess/ic/__init__.py:186 msgid "Woman International Master" msgstr "Maître Internationale Féminine" #: lib/pychess/ic/__init__.py:186 msgid "Woman FIDE Master" msgstr "Maître FIDE féminine" #: lib/pychess/ic/__init__.py:187 msgid "Dummy Account" msgstr "Compte fictif" #: lib/pychess/ic/__init__.py:191 msgid "*" msgstr "*" #: lib/pychess/ic/__init__.py:191 lib/pychess/Utils/repr.py:14 msgid "B" msgstr "F" #: lib/pychess/ic/__init__.py:191 msgid "C" msgstr "C" #: lib/pychess/ic/__init__.py:192 msgid "T" msgstr "T" #: lib/pychess/ic/__init__.py:192 msgid "U" msgstr "U" #: lib/pychess/ic/__init__.py:192 msgid "CA" msgstr "CA" #: lib/pychess/ic/__init__.py:193 msgid "SR" msgstr "AS" #: lib/pychess/ic/__init__.py:193 msgid "TD" msgstr "DT" #: lib/pychess/ic/__init__.py:193 msgid "TM" msgstr "TM" #: lib/pychess/ic/__init__.py:194 msgid "GM" msgstr "GM" #: lib/pychess/ic/__init__.py:194 msgid "IM" msgstr "MI" #: lib/pychess/ic/__init__.py:194 msgid "FM" msgstr "MF" #: lib/pychess/ic/__init__.py:195 msgid "WGM" msgstr "GMf" #: lib/pychess/ic/__init__.py:195 msgid "WIM" msgstr "MIF" #: lib/pychess/ic/__init__.py:195 msgid "WFM" msgstr "FMf" #: lib/pychess/ic/__init__.py:195 msgid "D" msgstr "D" #: lib/pychess/ic/__init__.py:195 msgid "H" msgstr "" #: lib/pychess/ic/__init__.py:195 msgid "CM" msgstr "" #: lib/pychess/ic/__init__.py:195 msgid "FA" msgstr "" #: lib/pychess/ic/__init__.py:195 msgid "NM" msgstr "" #: lib/pychess/Players/CECPEngine.py:857 #, python-format msgid "The engine %s reports an error:" msgstr "Le moteur %s a signalé une erreur :" #: lib/pychess/Players/Human.py:20 msgid "Your opponent has offered you a draw." msgstr "Votre adversaire vous propose un match nul." #: lib/pychess/Players/Human.py:21 msgid "" "Your opponent has offered you a draw. If you accept this offer, the game " "will end with a score of 1/2 - 1/2." msgstr "Votre adversaire vous propose un nul. Si vous acceptez cette proposition, la partie se terminera avec un score de 1/2 - 1/2." #: lib/pychess/Players/Human.py:23 msgid "Your opponent wants to abort the game." msgstr "Votre adversaire veut abandonner la partie." #: lib/pychess/Players/Human.py:24 msgid "" "Your opponent has asked that the game be aborted. If you accept this offer, " "the game will end with no rating change." msgstr "Votre adversaire propose d'abandonner la partie. Si vous acceptez cette proposition, la partie terminera sans modification du niveau." #: lib/pychess/Players/Human.py:26 msgid "Your opponent wants to adjourn the game." msgstr "Votre adversaire veut ajourner le jeu." #: lib/pychess/Players/Human.py:27 msgid "" "Your opponent has asked that the game be adjourned. If you accept this " "offer, the game will be adjourned and you can resume it later (when your " "opponent is online and both players agree to resume)." msgstr "Votre adversaire à demander d'ajourner la partie. Si vous acceptez cette proposition, la partie sera ajournée et vous pourrez la reprendre plus tard (quand votre adversaire est connecté et que les deux joueurs acceptent de reprendre la partie)." #: lib/pychess/Players/Human.py:29 #, python-format msgid "Your opponent wants to undo %s move(s)." msgstr "Votre adversaire veut annuler %s déplacement(s)." #: lib/pychess/Players/Human.py:30 #, python-format msgid "" "Your opponent has asked that the last %s move(s) be undone. If you accept " "this offer, the game will continue from the earlier position." msgstr "Votre adversaire propose d'annuler le(s) %s coups précédents. Si vous acceptez cette proposition, la partie continuera à partir de l'ancienne position." #: lib/pychess/Players/Human.py:32 msgid "Your opponent wants to pause the game." msgstr "Votre adversaire veut mettre en pause la partie." #: lib/pychess/Players/Human.py:33 msgid "" "Your opponent has asked that the game be paused. If you accept this offer, " "the game clock will be paused until both players agree to resume the game." msgstr "Votre adversaire souhaite faire une pause. Si vous acceptez cette proposition, la pendule sera arrêtée jusqu'à ce que les deux joueurs acceptent de reprendre la partie." #: lib/pychess/Players/Human.py:35 msgid "Your opponent wants to resume the game." msgstr "Votre adversaire veut reprendre la partie." #: lib/pychess/Players/Human.py:36 msgid "" "Your opponent has asked that the game be resumed. If you accept this offer, " "the game clock will continue from where it was paused." msgstr "Votre adversaire souhaite reprendre la partie. Si vous acceptez cette proposition, la pendule reprendra là où elle a été arrêtée" #: lib/pychess/Players/Human.py:40 msgid "The resignation" msgstr "L'abandon" #: lib/pychess/Players/Human.py:41 msgid "The flag call" msgstr "La chute du drapeau" #: lib/pychess/Players/Human.py:42 msgid "The draw offer" msgstr "La proposition de nul" #: lib/pychess/Players/Human.py:43 msgid "The abort offer" msgstr "La proposition d'abandon" #: lib/pychess/Players/Human.py:44 msgid "The adjourn offer" msgstr "La proposition d'ajournement" #: lib/pychess/Players/Human.py:45 msgid "The pause offer" msgstr "La proposition de pause" #: lib/pychess/Players/Human.py:46 msgid "The resume offer" msgstr "La proposition de reprendre" #: lib/pychess/Players/Human.py:47 msgid "The offer to switch sides" msgstr "La proposition de changer de côté" #: lib/pychess/Players/Human.py:48 msgid "The takeback offer" msgstr "La proposition d'annuler le dernier coup" #: lib/pychess/Players/Human.py:52 msgid "resign" msgstr "abandonner" #: lib/pychess/Players/Human.py:53 msgid "call your opponents flag" msgstr "demander la victoire au temps" #: lib/pychess/Players/Human.py:54 msgid "offer a draw" msgstr "proposer un nul" #: lib/pychess/Players/Human.py:55 msgid "offer an abort" msgstr "proposer un abandon" #: lib/pychess/Players/Human.py:56 msgid "offer to adjourn" msgstr "proposer d'ajourner" #: lib/pychess/Players/Human.py:57 msgid "offer a pause" msgstr "proposer une pause" #: lib/pychess/Players/Human.py:58 msgid "offer to resume" msgstr "proposer de reprendre" #: lib/pychess/Players/Human.py:59 msgid "offer to switch sides" msgstr "proposer de changer de côté" #: lib/pychess/Players/Human.py:60 msgid "offer a takeback" msgstr "Proposer d'annuler le dernier coup" #: lib/pychess/Players/Human.py:61 msgid "ask your opponent to move" msgstr "demander à l'adversaire de jouer" #: lib/pychess/Players/Human.py:66 msgid "Your opponent is not out of time." msgstr "Votre adversaire n'a pas dépassé le temps imparti." #: lib/pychess/Players/Human.py:68 msgid "The clock hasn't been started yet." msgstr "La pendule n'a pas encore commencé." #: lib/pychess/Players/Human.py:70 msgid "You can't switch colors during the game." msgstr "Vous ne pouvez pas changer de couleur pendant la partie." #: lib/pychess/Players/Human.py:72 msgid "You have tried to undo too many moves." msgstr "Vous avez essayé d'annuler trop de mouvements." #: lib/pychess/Players/Human.py:180 msgid "Your opponent asks you to hurry!" msgstr "Votre adversaire vous demande de vous dépêcher." #: lib/pychess/Players/Human.py:181 msgid "" "Generally this means nothing, as the game is time-based, but if you want to " "please your opponent, perhaps you should get going." msgstr "Cela ne veut généralement rien dire, comme le jeu est basé sur le temps, mais si vous voulez faire plaisir à votre adversaire, vous devriez peut-être continuer." #: lib/pychess/Players/Human.py:259 #, python-format msgid "%s was declined by your opponent" msgstr "%s a été décliné par votre adversaire" #: lib/pychess/Players/Human.py:260 #, python-format msgid "Resend %s?" msgstr "Ré-envoyer %s ?" #: lib/pychess/Players/Human.py:267 msgid "Resend" msgstr "Ré-envoyer" #: lib/pychess/Players/Human.py:275 #, python-format msgid "%s was withdrawn by your opponent" msgstr "%s a été retiré pas votre adversaire" #: lib/pychess/Players/Human.py:276 msgid "Your opponent seems to have changed their mind." msgstr "Votre adversaire semble avoir changer d'avis." #: lib/pychess/Players/Human.py:290 #, python-format msgid "Unable to accept %s" msgstr "Impossible d'accepter %s" #: lib/pychess/Players/Human.py:291 msgid "Probably because it has been withdrawn." msgstr "Probablement parce que l'élément a été retiré." #: lib/pychess/Players/Human.py:298 #, python-format msgid "%s returns an error" msgstr "%s retourne une erreur" #: lib/pychess/Savers/chessalpha2.py:12 msgid "Chess Alpha 2 Diagram" msgstr "Diagramme Chess Alpha 2" #: lib/pychess/Savers/chesspastebin.py:39 msgid "Game shared at " msgstr "" #: lib/pychess/Savers/chesspastebin.py:41 msgid "(Link is available on clipboard.)" msgstr "" #: lib/pychess/Savers/database.py:19 msgid "PyChess database" msgstr "Base de données de PyChess" #: lib/pychess/Savers/epd.py:12 msgid "Chess Position" msgstr "Position d'Échec" #: lib/pychess/Savers/fen.py:12 msgid "Simple Chess Position" msgstr "Position simple des pièces" #: lib/pychess/Savers/fen.py:44 lib/pychess/Savers/pgn.py:329 msgid "The game can't be loaded, because of an error parsing FEN" msgstr "Impossible de charger la partie car une erreur s'est produite lors de l'interprétation du fichier FEN" #: lib/pychess/Savers/pgnbase.py:100 #, python-format msgid "" "The game can't be read to end, because of an error parsing move %(moveno)s " "'%(notation)s'." msgstr "La partie n'a pas pu être lue jusqu'à la fin à cause d'une erreur d'interprétation au coup %(moveno)s '%(notation)s'." #: lib/pychess/Savers/pgnbase.py:102 #, python-format msgid "The move failed because %s." msgstr "Le coup n'a pas réussi à cause de %s." #: lib/pychess/Savers/pgnbase.py:110 #, python-format msgid "Error parsing move %(moveno)s %(mstr)s" msgstr "Erreur pour analyser le mouvement %(moveno)s %(mstr)s" #: lib/pychess/Savers/pgn.py:28 msgid "Chess Game" msgstr "Partie d'Échecs" #: lib/pychess/Savers/pgn.py:362 msgid "Invalid move." msgstr "Déplacement invalide." #: lib/pychess/Savers/png.py:15 msgid "Png image" msgstr "Image PNG" #: lib/pychess/System/ping.py:31 msgid "Destination Host Unreachable" msgstr "Hôte Inaccessible" #: lib/pychess/System/ping.py:74 msgid "Died" msgstr "Arrêté" #: lib/pychess/Utils/GameModel.py:147 msgid "Local Event" msgstr "Évenement Local" #: lib/pychess/Utils/GameModel.py:148 msgid "Local Site" msgstr "Site local" #: lib/pychess/Utils/repr.py:12 msgid "Pawn" msgstr "Pion" #: lib/pychess/Utils/repr.py:14 msgid "P" msgstr "P" #: lib/pychess/Utils/repr.py:14 msgid "N" msgstr "C" #: lib/pychess/Utils/repr.py:14 msgid "R" msgstr "T" #: lib/pychess/Utils/repr.py:14 msgid "Q" msgstr "D" #: lib/pychess/Utils/repr.py:14 msgid "K" msgstr "R" #: lib/pychess/Utils/repr.py:17 msgid "The game ended in a draw" msgstr "La partie s'est terminée par un match nul" #: lib/pychess/Utils/repr.py:18 #, python-format msgid "%(white)s won the game" msgstr "%(white)s gagne la partie" #: lib/pychess/Utils/repr.py:19 #, python-format msgid "%(black)s won the game" msgstr "%(black)s gagne la partie" #: lib/pychess/Utils/repr.py:20 msgid "The game has been killed" msgstr "La partie a été détruite" #: lib/pychess/Utils/repr.py:21 msgid "The game has been adjourned" msgstr "La partie est suspendue" #: lib/pychess/Utils/repr.py:22 msgid "The game has been aborted" msgstr "La partie a été abandonée" #: lib/pychess/Utils/repr.py:26 msgid "Because neither player has sufficient material to mate" msgstr "Parce que aucun des joueurs n'a suffisamment de pièce pour mettre en échec" #: lib/pychess/Utils/repr.py:27 msgid "Because the same position was repeated three times in a row" msgstr "Parce que la même position a été répétée trois fois d'affilée." #: lib/pychess/Utils/repr.py:28 msgid "Because the last 50 moves brought nothing new" msgstr "Parce que les 50 derniers coups n'ont rien apporté de nouveau." #: lib/pychess/Utils/repr.py:29 msgid "Because both players ran out of time" msgstr "Parce que les deux joueurs ont dépassé leur limite de temps." #: lib/pychess/Utils/repr.py:30 #, python-format msgid "Because %(mover)s stalemated" msgstr "Parce que %(mover)s a fait un pat." #: lib/pychess/Utils/repr.py:31 msgid "Because both players agreed to a draw" msgstr "Parce que les deux joueurs ont accepté un match nul" #: lib/pychess/Utils/repr.py:32 lib/pychess/Utils/repr.py:42 msgid "Because of adjudication by an admin" msgstr "Par arbitrage d'un administrateur" #: lib/pychess/Utils/repr.py:33 msgid "Because the game exceed the max length" msgstr "Parce que la partie a dépassé la longueur maximale" #: lib/pychess/Utils/repr.py:34 #, python-format msgid "" "Because %(white)s ran out of time and %(black)s has insufficient material to" " mate" msgstr "Parce que les %(white)s ont écoulé leur temps de jeu et que les %(black)s n'ont plus suffisamment de pièces pour mettre en échec" #: lib/pychess/Utils/repr.py:35 #, python-format msgid "" "Because %(black)s ran out of time and %(white)s has insufficient material to" " mate" msgstr "Parce que les %(black)s ont écoulé leur temps de jeu et que les %(white)s n'ont plus suffisamment de pièces pour mettre en échec" #: lib/pychess/Utils/repr.py:36 msgid "Because both players have the same amount of pieces" msgstr "Parce que les deux joueurs ont le même nombre de pièces." #: lib/pychess/Utils/repr.py:38 #, python-format msgid "Because %(loser)s resigned" msgstr "Parce que %(loser)s a abandonné" #: lib/pychess/Utils/repr.py:39 #, python-format msgid "Because %(loser)s ran out of time" msgstr "Parce que %(loser)s a dépassé son temps réglementaire" #: lib/pychess/Utils/repr.py:40 #, python-format msgid "Because %(loser)s was checkmated" msgstr "Parce %(loser)s était échec et mat" #: lib/pychess/Utils/repr.py:41 #, python-format msgid "Because %(loser)s disconnected" msgstr "Parce que %(loser)s s'est déconnecté" #: lib/pychess/Utils/repr.py:43 #, python-format msgid "Because %(winner)s has fewer pieces" msgstr "Parce que %(winner)s a moins de pièces" #: lib/pychess/Utils/repr.py:44 #, python-format msgid "Because %(winner)s lost all pieces" msgstr "Parce que %(winner)s a perdu toutes ses pièces" #: lib/pychess/Utils/repr.py:45 #, python-format msgid "Because %(loser)s king exploded" msgstr "Parce que le roi de %(loser)s a explosé" #: lib/pychess/Utils/repr.py:46 #, python-format msgid "Because %(winner)s king reached the center" msgstr "" #: lib/pychess/Utils/repr.py:47 #, python-format msgid "Because %(winner)s was giving check 3 times" msgstr "" #: lib/pychess/Utils/repr.py:49 msgid "Because a player lost connection" msgstr "Parce qu'un joueur a perdu sa connexion" #: lib/pychess/Utils/repr.py:50 msgid "Because both players agreed to an adjournment" msgstr "Parce que les deux joueurs ont décidé d'un ajournement" #: lib/pychess/Utils/repr.py:51 msgid "Because the server was shut down" msgstr "Parce que le serveur a été arrêté" #: lib/pychess/Utils/repr.py:52 msgid "" "Because a player lost connection and the other player requested adjournment" msgstr "Parce qu'un joueur a perdu sa connexion et que l'autre joueur a demandé un report de la partie" #: lib/pychess/Utils/repr.py:53 #, python-format msgid "" "Because %(black)s lost connection to the server and %(white)s requested " "adjournment" msgstr "Parce que le joueur %(black)s a perdu la connexion au serveur et que le joueur %(white)s a demandé d'ajourner la partie" #: lib/pychess/Utils/repr.py:54 #, python-format msgid "" "Because %(white)s lost connection to the server and %(black)s requested " "adjournment" msgstr "Parce que le joueur %(white)s a perdu la connexion au serveur et que le joueur %(black)s a demandé d'ajourner la partie" #: lib/pychess/Utils/repr.py:55 #, python-format msgid "Because %(white)s lost connection to the server" msgstr "Parce que le joueur %(white)s a perdu la connexion au serveur" #: lib/pychess/Utils/repr.py:56 #, python-format msgid "Because %(black)s lost connection to the server" msgstr "Parce que le joueur %(black)s a perdu la connexion au serveur" #: lib/pychess/Utils/repr.py:58 msgid "Because of adjudication by an admin. No rating changes have occurred." msgstr "A cause d'une adjudication par l'administrateur. Aucune évaluation n'a été effectuée." #: lib/pychess/Utils/repr.py:59 msgid "" "Because both players agreed to abort the game. No rating changes have " "occurred." msgstr "Parce que les deux joueurs ont accepté d'annuler le jeu. Aucune évaluation n'a été effectuée." #: lib/pychess/Utils/repr.py:60 msgid "Because of courtesy by a player. No rating changes have occurred." msgstr "Du à la courtoisie d'un joueur. Aucune évaluation n'a été effectuée." #: lib/pychess/Utils/repr.py:61 msgid "" "Because a player aborted the game. Either player can abort the game without " "the other's consent before the second move. No rating changes have occurred." msgstr "Parce qu'un joueur a annulé le jeu. Un joueur peut annuler le jeu sans l’approbation de l'autre avant le second déplacement. Aucune évaluation n'a été effectuée." #: lib/pychess/Utils/repr.py:62 msgid "" "Because a player disconnected and there are too few moves to warrant " "adjournment. No rating changes have occurred." msgstr "Parce qu'un joueur s'est déconnecté et qu'il y a trop peu de déplacement pour avoir un ajournement. Aucune évaluation n'a été effectuée." #: lib/pychess/Utils/repr.py:63 msgid "Because the server was shut down. No rating changes have occurred." msgstr "Parce que le serveur a été éteint. Aucune évaluation n'a été effectuée." #: lib/pychess/Utils/repr.py:65 #, python-format msgid "Because the %(white)s engine died" msgstr "Parce que le calculateur de %(white)s a rendu l'âme" #: lib/pychess/Utils/repr.py:66 #, python-format msgid "Because the %(black)s engine died" msgstr "Parce que le calculateur de %(black)s a rendu l'âme" #: lib/pychess/Utils/repr.py:67 msgid "Because the connection to the server was lost" msgstr "Parce que la connexion au serveur a été perdue." #: lib/pychess/Utils/repr.py:68 msgid "The reason is unknown" msgstr "La raison est inconnue" #: lib/pychess/Utils/TimeModel.py:229 msgid "min" msgstr "min" #: lib/pychess/Utils/TimeModel.py:231 msgid "sec" msgstr "sec" #: lib/pychess/Variants/asean.py:12 msgid "" "ASEAN: http://www.ncf-" "phil.org/downloadables/2014/May/Asean_chess/Laws_of_ASEAN_Chess_2011_Nov_26.doc" msgstr "" #: lib/pychess/Variants/asean.py:13 msgid "ASEAN" msgstr "" #: lib/pychess/Variants/asean.py:33 msgid "Makruk: http://en.wikipedia.org/wiki/Makruk" msgstr "" #: lib/pychess/Variants/asean.py:34 msgid "Makruk" msgstr "" #: lib/pychess/Variants/asean.py:60 msgid "Cambodian: http://www.khmerinstitute.org/culture/ok.html" msgstr "" #: lib/pychess/Variants/asean.py:61 msgid "Cambodian" msgstr "" #: lib/pychess/Variants/asean.py:86 msgid "" "Ai-Wok: http://www.open-" "aurec.com/wbforum/viewtopic.php?p=199364&sid=20963a1de2c164050de019e5ed6bf7c4#p199364" msgstr "" #: lib/pychess/Variants/asean.py:87 msgid "Ai-Wok" msgstr "" #: lib/pychess/Variants/asean.py:111 msgid "Sittuyin: http://en.wikipedia.org/wiki/Sittuyin" msgstr "" #: lib/pychess/Variants/asean.py:112 msgid "Sittuyin" msgstr "" #: lib/pychess/Variants/asymmetricrandom.py:12 msgid "" "FICS wild/4: http://www.freechess.org/Help/HelpFiles/wild.html\n" "* Randomly chosen pieces (two queens or three rooks possible)\n" "* Exactly one king of each color\n" "* Pieces placed randomly behind the pawns, SUBJECT TO THE CONSTRAINT THAT THE BISHOPS ARE BALANCED\n" "* No castling\n" "* Black's arrangement DOES NOT mirrors white's" msgstr "FICS wild/4: http://www.freechess.org/Help/HelpFiles/wild.html\n* Pièces choisies aléatoirement (deux reines ou trois roques possibles)\n* Exactement un roi de chaque couleur\n* Pièces placées aléatoirement derrières les pions, SOUMIS A LA CONTRAINTE QUE LES FOUS SOIENT ÉQUILIBRÉS\n* Pas de roque\n* La position des Noirs ne doient pas être la même que celle des blancs" #: lib/pychess/Variants/asymmetricrandom.py:18 msgid "Asymmetric Random" msgstr "Echecs aléatoires asymétriques" #: lib/pychess/Variants/atomic.py:14 msgid "FICS atomic: http://www.freechess.org/Help/HelpFiles/atomic.html" msgstr "FICS atomiques: http://www.freechess.org/Help/HelpFiles/atomic.html" #: lib/pychess/Variants/blindfold.py:7 msgid "" "Classic chess rules with hidden figurines\n" "http://en.wikipedia.org/wiki/Blindfold_chess" msgstr "Règle classique des échecs à l'aveugle\nhttp://en.wikipedia.org/wiki/Blindfold_chess" #: lib/pychess/Variants/blindfold.py:9 #: lib/pychess/widgets/newGameDialog.py:264 msgid "Blindfold" msgstr "Partie à l'aveugle" #: lib/pychess/Variants/blindfold.py:18 msgid "" "Classic chess rules with hidden pawns\n" "http://en.wikipedia.org/wiki/Blindfold_chess" msgstr "" #: lib/pychess/Variants/blindfold.py:20 msgid "Hidden pawns" msgstr "Pions cachés" #: lib/pychess/Variants/blindfold.py:29 msgid "" "Classic chess rules with hidden pieces\n" "http://en.wikipedia.org/wiki/Blindfold_chess" msgstr "" #: lib/pychess/Variants/blindfold.py:31 msgid "Hidden pieces" msgstr "Pièces cachées" #: lib/pychess/Variants/blindfold.py:40 msgid "" "Classic chess rules with all pieces white\n" "http://en.wikipedia.org/wiki/Blindfold_chess" msgstr "" #: lib/pychess/Variants/blindfold.py:42 msgid "All white" msgstr "Tout blanc" #: lib/pychess/Variants/bughouse.py:8 msgid "FICS bughouse: http://www.freechess.org/Help/HelpFiles/bughouse.html" msgstr "" #: lib/pychess/Variants/corner.py:12 msgid "" "http://brainking.com/en/GameRules?tp=2\n" "* Placement of the pieces on the 1st and 8th row are randomized\n" "* The king is in the right hand corner\n" "* Bishops must start on opposite color squares\n" "* Black's starting position is obtained by rotating white's position 180 degrees around the board's center\n" "* No castling" msgstr "" #: lib/pychess/Variants/corner.py:18 msgid "Corner" msgstr "Coin" #: lib/pychess/Variants/crazyhouse.py:8 msgid "" "FICS crazyhouse: http://www.freechess.org/Help/HelpFiles/crazyhouse.html" msgstr "" #: lib/pychess/Variants/euroshogi.py:9 msgid "EuroShogi: http://en.wikipedia.org/wiki/EuroShogi" msgstr "" #: lib/pychess/Variants/euroshogi.py:10 msgid "EuroShogi" msgstr "" #: lib/pychess/Variants/fischerandom.py:18 msgid "" "http://en.wikipedia.org/wiki/Chess960\n" "FICS wild/fr: http://www.freechess.org/Help/HelpFiles/wild.html" msgstr "" #: lib/pychess/Variants/fischerandom.py:20 msgid "Fischer Random" msgstr "Fischer aléatoire" #: lib/pychess/Variants/kingofthehill.py:8 msgid "" "Bringing your king legally to the center (e4, d4, e5, d5) instantly wins the game!\n" "Normal rules apply in other cases and checkmate also ends the game." msgstr "" #: lib/pychess/Variants/kingofthehill.py:10 msgid "King of the hill" msgstr "" #: lib/pychess/Variants/knightodds.py:8 msgid "One player starts with one less knight piece" msgstr "Un joueur commence avec un cavalier en moins" #: lib/pychess/Variants/knightodds.py:9 msgid "Knight odds" msgstr "Handicap d'un cavalier" #: lib/pychess/Variants/losers.py:8 msgid "FICS losers: http://www.freechess.org/Help/HelpFiles/losers_chess.html" msgstr "Qui perd gagne : http://fr.wikipedia.org/wiki/Qui_perd_gagne_(échecs)" #: lib/pychess/Variants/normal.py:4 msgid "" "Classic chess rules\n" "http://en.wikipedia.org/wiki/Chess" msgstr "Règles classiques des échecs\nhttps://fr.wikipedia.org/wiki/%C3%89checs" #: lib/pychess/Variants/normal.py:6 lib/pychess/widgets/newGameDialog.py:157 msgid "Normal" msgstr "Normal" #: lib/pychess/Variants/pawnodds.py:8 msgid "One player starts with one less pawn piece" msgstr "Un joueur commence avec un pion en moins" #: lib/pychess/Variants/pawnodds.py:9 msgid "Pawn odds" msgstr "Handicap d'un pion" #: lib/pychess/Variants/pawnspassed.py:11 msgid "" "FICS wild/8a: http://www.freechess.org/Help/HelpFiles/wild.html\n" "White pawns start on 5th rank and black pawns on the 4th rank" msgstr "" #: lib/pychess/Variants/pawnspassed.py:13 msgid "Pawns Passed" msgstr "Pions libres" #: lib/pychess/Variants/pawnspushed.py:10 msgid "" "FICS wild/8: http://www.freechess.org/Help/HelpFiles/wild.html\n" "Pawns start on 4th and 5th ranks rather than 2nd and 7th" msgstr "" #: lib/pychess/Variants/pawnspushed.py:12 msgid "Pawns Pushed" msgstr "Pions poussés" #: lib/pychess/Variants/queenodds.py:8 msgid "One player starts with one less queen piece" msgstr "Un joueur commence avec une reine en moins" #: lib/pychess/Variants/queenodds.py:9 msgid "Queen odds" msgstr "Handicap de la reine" #: lib/pychess/Variants/randomchess.py:11 msgid "" "FICS wild/3: http://www.freechess.org/Help/HelpFiles/wild.html\n" "* Randomly chosen pieces (two queens or three rooks possible)\n" "* Exactly one king of each color\n" "* Pieces placed randomly behind the pawns\n" "* No castling\n" "* Black's arrangement mirrors white's" msgstr "" #: lib/pychess/Variants/randomchess.py:17 #: lib/pychess/widgets/TaskerManager.py:155 msgid "Random" msgstr "Aléatoire" #: lib/pychess/Variants/rookodds.py:8 msgid "One player starts with one less rook piece" msgstr "Un joueur commence avec une tour de moins" #: lib/pychess/Variants/rookodds.py:9 msgid "Rook odds" msgstr "Handicap d'une tour" #: lib/pychess/Variants/shuffle.py:11 msgid "" "xboard nocastle: http://home.hccnet.nl/h.g.muller/engine-intf.html#8\n" "FICS wild/2: http://www.freechess.org/Help/HelpFiles/wild.html\n" "* Random arrangement of the pieces behind the pawns\n" "* No castling\n" "* Black's arrangement mirrors white's" msgstr "" #: lib/pychess/Variants/suicide.py:11 msgid "" "FICS suicide: http://www.freechess.org/Help/HelpFiles/suicide_chess.html" msgstr "" #: lib/pychess/Variants/theban.py:10 msgid "" "Variant developed by Kai Laskos: " "http://talkchess.com/forum/viewtopic.php?t=40990" msgstr "" #: lib/pychess/Variants/theban.py:11 msgid "Theban" msgstr "" #: lib/pychess/Variants/threecheck.py:10 msgid "Win by giving check 3 times" msgstr "" #: lib/pychess/Variants/threecheck.py:11 msgid "Three-check" msgstr "" #: lib/pychess/Variants/upsidedown.py:10 msgid "" "FICS wild/5: http://www.freechess.org/Help/HelpFiles/wild.html\n" "http://en.wikipedia.org/wiki/Chess_variant#Chess_with_different_starting_positions\n" "Pawns start on their 7th rank rather than their 2nd rank!" msgstr "" #: lib/pychess/Variants/upsidedown.py:13 msgid "Upside Down" msgstr "Upside down" #: lib/pychess/Variants/wildcastle.py:10 msgid "" "xboard wildcastle http://home.hccnet.nl/h.g.muller/engine-intf.html#8\n" "FICS wild/0: http://www.freechess.org/Help/HelpFiles/wild.html\n" "* White has the typical set-up at the start.\n" "* Black's pieces are the same, except that the King and Queen are reversed,\n" "* so they are not on the same files as White's King and Queen.\n" "* Castling is done similarly to normal chess:\n" "* o-o-o indicates long castling and o-o short castling." msgstr "" #: lib/pychess/Variants/wildcastle.py:17 msgid "Wildcastle" msgstr "" #: lib/pychess/Variants/wildcastleshuffle.py:11 msgid "" "xboard wildcastle http://home.hccnet.nl/h.g.muller/engine-intf.html#8\n" "FICS wild/1: http://www.freechess.org/Help/HelpFiles/wild.html\n" "* In this variant both sides have the same set of pieces as in normal chess.\n" "* The white king starts on d1 or e1 and the black king starts on d8 or e8,\n" "* and the rooks are in their usual positions.\n" "* Bishops are always on opposite colors.\n" "* Subject to these constraints the position of the pieces on their first ranks is random.\n" "* Castling is done similarly to normal chess:\n" "* o-o-o indicates long castling and o-o short castling." msgstr "" #: lib/pychess/Variants/wildcastleshuffle.py:20 msgid "Wildcastle shuffle" msgstr "" #: lib/pychess/widgets/analyzegameDialog.py:85 msgid "Game analyzing in progress..." msgstr "" #: lib/pychess/widgets/analyzegameDialog.py:86 msgid "Do you want to abort it?" msgstr "" #: lib/pychess/widgets/analyzegameDialog.py:95 #: lib/pychess/widgets/gamewidget.py:202 lib/pychess/widgets/gamewidget.py:320 msgid "Abort" msgstr "Abandonner" #: lib/pychess/widgets/ChatView.py:125 msgid "Observers" msgstr "" #: lib/pychess/widgets/ChatWindow.py:222 msgid "You have opened no conversations yet" msgstr "Vous n'avez pas encore ouvert de conversation" #: lib/pychess/widgets/ChatWindow.py:254 msgid "Only registered users may talk to this channel" msgstr "Seuls les utilisateurs enregistrés peuvent discuter sur ce canal" #: lib/pychess/widgets/ChatWindow.py:312 msgid "No conversation's selected" msgstr "Aucune consersation selectionée" #: lib/pychess/widgets/ChatWindow.py:350 msgid "Loading player data" msgstr "Chargement des informations du joueur" #: lib/pychess/widgets/ChatWindow.py:400 msgid "Receiving list of players" msgstr "Réception de la liste des joueurs" #: lib/pychess/widgets/ChatWindow.py:518 msgid "Friends" msgstr "" #: lib/pychess/widgets/ChatWindow.py:529 msgid "Admin" msgstr "" #: lib/pychess/widgets/ChatWindow.py:540 msgid "More channels" msgstr "Plus de canaux" #: lib/pychess/widgets/ChatWindow.py:548 msgid "More players" msgstr "Plus de joueurs" #: lib/pychess/widgets/ChatWindow.py:558 msgid "Computers" msgstr "" #: lib/pychess/widgets/ChatWindow.py:568 msgid "BlindFold" msgstr "" #: lib/pychess/widgets/ChatWindow.py:578 msgid "Guests" msgstr "" #: lib/pychess/widgets/ChatWindow.py:805 msgid "Conversations" msgstr "Discussions" #: lib/pychess/widgets/ChatWindow.py:807 msgid "Conversation info" msgstr "Informations de la discussion" #: lib/pychess/widgets/enginesDialog.py:152 msgid "Select engine" msgstr "Sélectionner un moteur" #: lib/pychess/widgets/enginesDialog.py:156 msgid "Executable files" msgstr "" #: lib/pychess/widgets/enginesDialog.py:176 #: lib/pychess/widgets/enginesDialog.py:210 #: lib/pychess/widgets/enginesDialog.py:235 #, python-format msgid "Unable to add %s" msgstr "" #: lib/pychess/widgets/enginesDialog.py:177 msgid "wine not installed" msgstr "" #: lib/pychess/widgets/enginesDialog.py:211 #: lib/pychess/widgets/enginesDialog.py:236 msgid "There is something wrong with this executable" msgstr "" #: lib/pychess/widgets/enginesDialog.py:266 msgid "Select working directory" msgstr "Choisir le répertoire de travail" #: lib/pychess/widgets/gamenanny.py:115 #, python-format msgid " invalid engine move: %s" msgstr "" #: lib/pychess/widgets/gamenanny.py:134 msgid "Offer Rematch" msgstr "Proposer une revanche" #: lib/pychess/widgets/gamenanny.py:136 lib/pychess/widgets/gamenanny.py:147 #, python-format msgid "Observe %s" msgstr "Observe %s" #: lib/pychess/widgets/gamenanny.py:168 msgid "Play Rematch" msgstr "Jouer la revanche" #: lib/pychess/widgets/gamenanny.py:171 msgid "Undo one move" msgstr "Refaire un coup" #: lib/pychess/widgets/gamenanny.py:173 msgid "Undo two moves" msgstr "Refaire deux coups" #: lib/pychess/widgets/gamenanny.py:203 msgid "The game is paused" msgstr "La partie est en pause" #: lib/pychess/widgets/gamenanny.py:221 lib/pychess/widgets/gamenanny.py:222 msgid "Loaded game" msgstr "Partie chargée" #: lib/pychess/widgets/gamenanny.py:228 msgid "Saved game" msgstr "Partie sauvegardée" #: lib/pychess/widgets/gamenanny.py:232 msgid "Analyzer started" msgstr "Analyseur démarré" #: lib/pychess/widgets/gamenanny.py:281 msgid "You sent an abort offer" msgstr "Vous avez envoyé une proposition d'abandon" #: lib/pychess/widgets/gamenanny.py:283 msgid "You sent an adjournment offer" msgstr "Vous avez proposé un ajournement de la partie" #: lib/pychess/widgets/gamenanny.py:285 msgid "You sent a draw offer" msgstr "Vous avez proposé un match nul" #: lib/pychess/widgets/gamenanny.py:287 msgid "You sent a pause offer" msgstr "Vous avez envoyé une proposition de pause" #: lib/pychess/widgets/gamenanny.py:289 msgid "You sent a resume offer" msgstr "Vous avez proposé de reprendre la partie" #: lib/pychess/widgets/gamenanny.py:291 msgid "You sent an undo offer" msgstr "Vous avez envoyé une proposition d'annuler le dernier coup" #: lib/pychess/widgets/gamenanny.py:293 msgid "You asked your opponent to move" msgstr "Vous avez demandé à votre adversaire de jouer" #: lib/pychess/widgets/gamenanny.py:305 #, python-format msgid "Engine, %s, has died" msgstr "Le calculateur, %s, a rendu l'âme" #: lib/pychess/widgets/gamenanny.py:306 msgid "" "PyChess has lost connection to the engine, probably because it has died.\n" "\n" "You can try to start a new game with the engine, or try to play against another one." msgstr "PyChess a perdu la connexion avec le calculateur, probablement parce que celui-ci a rendu l'âme.\n\nVous pouvez essayer de relancer une nouvelle partie avec ce calculateur ou bien essayer de jouer contre un autre." #: lib/pychess/widgets/gamewidget.py:204 msgid "" "This game can be automatically aborted without rating loss because there has" " not yet been two moves made" msgstr "Cette partie peut être abandonnée automatiquement sans perte de classement car deux coups n'ont pas encore été joués" #: lib/pychess/widgets/gamewidget.py:206 msgid "Offer Abort" msgstr "Proposer un abandon" #: lib/pychess/widgets/gamewidget.py:208 msgid "" "Your opponent must agree to abort the game because there has been two or " "more moves made" msgstr "Votre adversaire doit accepter d'abandonner la partie car au moins deux coups ont été joués" #: lib/pychess/widgets/gamewidget.py:226 msgid "This game can not be adjourned because one or both players are guests" msgstr "Cette partie ne peut pas être ajournée car au moins un des joueurs est un invité" #: lib/pychess/widgets/gamewidget.py:243 msgid "Claim Draw" msgstr "Demander Nulle" #: lib/pychess/widgets/gamewidget.py:325 msgid "Pause" msgstr "Pause" #: lib/pychess/widgets/gamewidget.py:326 msgid "Resume" msgstr "Reprendre" #: lib/pychess/widgets/gamewidget.py:328 msgid "Offer Pause" msgstr "Proposer une pause" #: lib/pychess/widgets/gamewidget.py:329 msgid "Offer Resume" msgstr "Proposer de reprendre" #: lib/pychess/widgets/gamewidget.py:333 msgid "Undo" msgstr "Annuler le coup" #: lib/pychess/widgets/gamewidget.py:335 msgid "Offer Undo" msgstr "Proposer d'annuler le coup" #: lib/pychess/widgets/gamewidget.py:550 msgid " has lagged for 30 seconds" msgstr "a eu un retard de connexion de 30 secondes" #: lib/pychess/widgets/gamewidget.py:566 msgid " is lagging heavily but hasn't disconnected" msgstr "a des retards de connexion mais n'a pas été deconnecté" #: lib/pychess/widgets/gamewidget.py:567 msgid "Continue to wait for opponent, or try to adjourn the game?" msgstr "Continuer d'attendre un adversaire, ou tenter d'ajourner le jeu?" #: lib/pychess/widgets/gamewidget.py:575 msgid "Wait" msgstr "Attendez" #: lib/pychess/widgets/gamewidget.py:576 msgid "Adjourn" msgstr "Ajourner" #: lib/pychess/widgets/gamewidget.py:648 msgid "Jump to initial position" msgstr "Revenir à la position initiale" #: lib/pychess/widgets/gamewidget.py:653 msgid "Step back one move" msgstr "Reculer d'un coup" #: lib/pychess/widgets/gamewidget.py:658 msgid "Go back to the main line" msgstr "" #: lib/pychess/widgets/gamewidget.py:664 msgid "Step forward one move" msgstr "Avancer d'un coup" #: lib/pychess/widgets/gamewidget.py:669 msgid "Jump to latest position" msgstr "Aller à la dernière position" #: lib/pychess/widgets/gamewidget.py:903 msgid "PyChess was unable to load your panel settings" msgstr "PyChess n'a pas pu charger les paramètres de votre panneau" #: lib/pychess/widgets/gamewidget.py:904 msgid "" "Your panel settings have been reset. If this problem repeats, you should " "report it to the developers" msgstr "Les paramètres de votre panneau ont été réinitialisés. Si ce problème persiste, vous devriez le reporter aux développeurs." #: lib/pychess/widgets/ionest.py:67 lib/pychess/widgets/newGameDialog.py:389 #: lib/pychess/widgets/TaskerManager.py:210 msgid "You" msgstr "Vous" #: lib/pychess/widgets/ionest.py:70 lib/pychess/widgets/newGameDialog.py:390 #: lib/pychess/widgets/preferencesDialog.py:61 #: lib/pychess/widgets/TaskerManager.py:213 msgid "Guest" msgstr "Invité" #: lib/pychess/widgets/ionest.py:93 msgid "Error loading game" msgstr "" #: lib/pychess/widgets/ionest.py:127 lib/pychess/widgets/newGameDialog.py:480 msgid "Open Game" msgstr "Ouvrir une partie" #: lib/pychess/widgets/ionest.py:137 msgid "All Files" msgstr "Tous types" #: lib/pychess/widgets/ionest.py:140 msgid "Detect type automatically" msgstr "Détecter le type automatiquement" #: lib/pychess/widgets/ionest.py:146 msgid "All Chess Files" msgstr "Tous les fichiers d'échecs" #: lib/pychess/widgets/ionest.py:228 msgid "Save Game" msgstr "Sauvegarder La Partie" #: lib/pychess/widgets/ionest.py:228 msgid "Export position" msgstr "Exporter la position" #: lib/pychess/widgets/ionest.py:232 lib/pychess/widgets/ionest.py:360 msgid "vs." msgstr "contre" #: lib/pychess/widgets/ionest.py:249 #, python-format msgid "Unknown file type '%s'" msgstr "Type de fichier inconnu '%s'" #: lib/pychess/widgets/ionest.py:250 #, python-format msgid "" "Was unable to save '%(uri)s' as PyChess doesn't know the format " "'%(ending)s'." msgstr "PyChess n'a pas pu sauvegarder '%(uri)s' car il ne reconnait pas le format '%(ending)s'." #: lib/pychess/widgets/ionest.py:266 #, python-format msgid "Unable to save file '%s'" msgstr "Impossible de sauver le fichier '%s'" #: lib/pychess/widgets/ionest.py:268 msgid "" "You don't have the necessary rights to save the file.\n" "Please ensure that you have given the right path and try again." msgstr "Vous n'avez pas les permissions nécessaires pour sauver le fichier.\nAssurez-vous que vous avez donné le bon chemin et recommencez." #: lib/pychess/widgets/ionest.py:276 msgid "_Replace" msgstr "_Remplacer" #: lib/pychess/widgets/ionest.py:280 msgid "File exists" msgstr "Le fichier existe" #: lib/pychess/widgets/ionest.py:282 #, python-format msgid "" "A file named '%s' already exists. Would you like to replace " "it?" msgstr "Un fichier nommé '%s' existe déjà. Voulez-vous le remplacer?" #: lib/pychess/widgets/ionest.py:283 #, python-format msgid "" "The file already exists in '%s'. If you replace it, its content will be " "overwritten." msgstr "Le fichier existe déjà dans '%s'. Si vous le remplacez, son contenu sera écrasé." #: lib/pychess/widgets/ionest.py:299 msgid "Could not save the file" msgstr "Impossible de sauvegarder le fichier" #: lib/pychess/widgets/ionest.py:300 msgid "PyChess was not able to save the game" msgstr "PyChess n'est pas capable de sauvegarder la partie" #: lib/pychess/widgets/ionest.py:301 #, python-format msgid "The error was: %s" msgstr "L'erreur est: %s" #: lib/pychess/widgets/ionest.py:325 #, python-format msgid "There is %d game with unsaved moves." msgid_plural "There are %d games with unsaved moves." msgstr[0] "Il y a %d partie avec des coups non sauvegardés." msgstr[1] "Il y a %d parties avec des coups non sauvegardés." #: lib/pychess/widgets/ionest.py:328 msgid "Save moves before closing?" msgstr "Sauvegarder les coups avant de fermer ?" #: lib/pychess/widgets/ionest.py:339 msgid "Unable to save to configured file. Save the games before closing?" msgstr "" #: lib/pychess/widgets/ionest.py:366 #, python-format msgid "_Save %d document" msgid_plural "_Save %d documents" msgstr[0] "_Sauvegarder %d document" msgstr[1] "_Sauvegarder %d documents" #: lib/pychess/widgets/ionest.py:412 msgid "Save the current game before you close it?" msgstr "" #: lib/pychess/widgets/ionest.py:420 msgid "" "Unable to save to configured file. Save the current game before you close " "it?" msgstr "" #: lib/pychess/widgets/ionest.py:434 msgid "" "It is not possible later to continue the game,\n" "if you don't save it." msgstr "Il ne sera pas possible de continuer cette partie plus tard\nsi vous ne la sauvegarder pas." #: lib/pychess/widgets/LogDialog.py:26 msgid "PyChess Information Window" msgstr "Fenêtre d'Information PyChess" #: lib/pychess/widgets/LogDialog.py:184 lib/pychess/widgets/LogDialog.py:188 msgid "of" msgstr "sur" #: lib/pychess/widgets/newGameDialog.py:84 #: lib/pychess/widgets/newGameDialog.py:85 msgid "Human Being" msgstr "Humain" #: lib/pychess/widgets/newGameDialog.py:155 msgid "Rapid" msgstr "Rapide" #: lib/pychess/widgets/newGameDialog.py:224 msgid "Minutes:" msgstr "Minutes :" #: lib/pychess/widgets/newGameDialog.py:228 msgid "Gain:" msgstr "Incrément" #: lib/pychess/widgets/newGameDialog.py:241 #, python-format msgid "%(name)s %(minutes)d min + %(gain)d sec/move" msgstr "%(name)s %(minutes)d min + %(gain)d sec/coup" #: lib/pychess/widgets/newGameDialog.py:244 #, python-format msgid "%(name)s %(minutes)d min %(gain)d sec/move" msgstr "%(name)s %(minutes)d min %(gain)d sec/coup" #: lib/pychess/widgets/newGameDialog.py:247 #, python-format msgid "%(name)s %(minutes)d min" msgstr "%(name)s %(minutes)d min" #: lib/pychess/widgets/newGameDialog.py:265 msgid "Odds" msgstr "Handicap" #: lib/pychess/widgets/newGameDialog.py:269 msgid "Asian variants" msgstr "" #: lib/pychess/widgets/newGameDialog.py:301 msgid " chess" msgstr " échec" #: lib/pychess/widgets/newGameDialog.py:682 msgid "Type or paste PGN game or FEN positions here" msgstr "" #: lib/pychess/widgets/newGameDialog.py:725 msgid "Enter Game" msgstr "Entrer dans la partie" #: lib/pychess/widgets/preferencesDialog.py:123 msgid "Select book file" msgstr "" #: lib/pychess/widgets/preferencesDialog.py:128 msgid "Opening books" msgstr "" #: lib/pychess/widgets/preferencesDialog.py:156 msgid "Select Gaviota TB path" msgstr "" #: lib/pychess/widgets/preferencesDialog.py:331 msgid "Open Sound File" msgstr "Ouvrir le fichier de son" #: lib/pychess/widgets/preferencesDialog.py:341 msgid "Sound files" msgstr "Fichiers de son" #: lib/pychess/widgets/preferencesDialog.py:485 msgid "Undescribed panel" msgstr "Panneau non décrit" #: lib/pychess/widgets/preferencesDialog.py:678 msgid "Select auto save path" msgstr "" #: lib/pychess/widgets/tipOfTheDay.py:51 msgid "" "You can start a new game by Game > New Game, in New Game " "window do you can choose Players, Time Control and Chess " "Variants." msgstr "Vous pouvez commencer une nouvelle partie dans Partie > Nouvelle Partie, dans la fenêtre Nouvelle Partie vous pouvez choisir les Joueurs, la Gestion du temps et les Variantes d'échecs." #: lib/pychess/widgets/tipOfTheDay.py:52 msgid "" "You can choose from 20 different difficulties to play against the computer." msgstr "" #: lib/pychess/widgets/tipOfTheDay.py:53 msgid "" "Chess Variants are like the pieces of the last line will be placed on the " "board." msgstr "Les variantes d'échecs modifient le placement des pièces sur l'échiquier." #: lib/pychess/widgets/tipOfTheDay.py:54 msgid "" "To save a game Game > Save Game As, give the filename and " "choose where you want to be saved. At the bottom choose extension type of " "the file, and Save." msgstr "Pour sauvegarder une partie Partie > Enregistrer la partie sous, choisissez un nom et où le fichier doit être sauvé. En bas, choisissez l'extension du fichier et Enregistrer." #: lib/pychess/widgets/tipOfTheDay.py:55 msgid "" "Do you know that you can call flag when the clock is with you, " "Actions > Call Flag." msgstr "Savez-vous que vous pouvez demander la victoire au temps quand la pendule est en votre faveur, Actions > Victoire au temps." #: lib/pychess/widgets/tipOfTheDay.py:56 msgid "Pressing Ctrl+Z to offer opponent the possible rollback moves." msgstr "En appuyant sur Ctrl+Z, vous offrez à l'adversaire la possibilité de rejouer les derniers coups." #: lib/pychess/widgets/tipOfTheDay.py:57 msgid "" "To play on Fullscreen mode, just type F11. Coming back, F11 " "again." msgstr "Pour jouer en mode plein écran, appuyez sur F11. Puis F11 pour revenir." #: lib/pychess/widgets/tipOfTheDay.py:58 msgid "Hint mode analyzing your game, enable this type Ctrl+H." msgstr "Le mode assistant analyse votre partie, activez le avec Ctrl+H." #: lib/pychess/widgets/tipOfTheDay.py:59 msgid "" "Spy mode analyzing the oponnent game, enable this type Ctrl+Y." msgstr "Le mode espion analyse la partie de votre adversaire, activez le avec Ctrl+Y." #: lib/pychess/widgets/tipOfTheDay.py:60 msgid "" "You can play chess listening to the sounds of the game, for that, " "Settings > Preferences > Sound tab, enable Use " "sounds in PyChess and choose your preferred sounds." msgstr "Vous pouvez écouter les sons de la partie dans Paramètres > Préférences > onglet Sons puis cochez Activer les sons dans PyChess et choisissez vos sons préférés." #: lib/pychess/widgets/tipOfTheDay.py:61 msgid "" "Do you know that you can help translate Pychess in your language, " "Help > Translate Pychess." msgstr "Savez-vous que vous pouvez aider à traduire PyChess dans votre langue, Aide > Traduire PyChess." #: lib/pychess/widgets/tipOfTheDay.py:62 msgid "" "Do you know that it is possible to finish a chess game in just 2 turns?" msgstr "Savez-vous qu'il est possible de terminer une partie d'échecs en seulement 2 tours ?" #: lib/pychess/widgets/tipOfTheDay.py:63 msgid "" "Do you know that the number of possible chess games exceeds the number of " "atoms in the Universe?" msgstr "Savez-vous que le nombre de parties possible est plus grand que le nombre d'atomes dans l'univers ?" #: lib/pychess/ic/managers/ChatManager.py:184 msgid "Shout" msgstr "Crier" #: lib/pychess/ic/managers/ChatManager.py:185 msgid "Chess Shout" msgstr "Crier" #: lib/pychess/ic/managers/ChatManager.py:195 #, python-format msgid "Unofficial channel %d" msgstr "Cannal non officiel %d" #: lib/pychess/Utils/lutils/LBoard.py:152 #, python-format msgid "" "FEN needs 6 data fields. \n" "\n" "%s" msgstr "" #: lib/pychess/Utils/lutils/LBoard.py:154 #, python-format msgid "" "FEN needs at least 2 data fields in fenstr. \n" "\n" "%s" msgstr "" #: lib/pychess/Utils/lutils/LBoard.py:175 #, python-format msgid "" "Needs 7 slashes in piece placement field. \n" "\n" "%s" msgstr "" #: lib/pychess/Utils/lutils/LBoard.py:178 #, python-format msgid "" "Active color field must be one of w or b. \n" "\n" "%s" msgstr "" #: lib/pychess/Utils/lutils/LBoard.py:189 #, python-format msgid "" "Castling availability field is not legal. \n" "\n" "%s" msgstr "" #: lib/pychess/Utils/lutils/LBoard.py:192 #, python-format msgid "" "En passant cord is not legal. \n" "\n" "%s" msgstr "" #: lib/pychess/Utils/lutils/lmove.py:260 msgid "invalid promoted piece" msgstr "" #: lib/pychess/Utils/lutils/lmove.py:272 msgid "the move needs a piece and a cord" msgstr "le coup nécessite une pièce et une position" #: lib/pychess/Utils/lutils/lmove.py:306 lib/pychess/Utils/lutils/lmove.py:556 msgid "promotion move without promoted piece is incorrect" msgstr "Un mouvement de promotion sans indication de la pièce promue est incorrect" #: lib/pychess/Utils/lutils/lmove.py:312 #, python-format msgid "the captured cord (%s) is incorrect" msgstr "la position capturée (%s) est incorrecte" #: lib/pychess/Utils/lutils/lmove.py:323 #, python-format msgid "the end cord (%s) is incorrect" msgstr "la position de fin (%s) est incorrecte" #: lib/pychess/Utils/lutils/strateval.py:24 sidepanel/commentPanel.py:191 #: sidepanel/commentPanel.py:208 msgid "and" msgstr "et" #: lib/pychess/Utils/lutils/strateval.py:43 msgid "draws" msgstr "obtient le nul" #: lib/pychess/Utils/lutils/strateval.py:45 msgid "mates" msgstr "mate" #: lib/pychess/Utils/lutils/strateval.py:49 msgid "puts opponent in check" msgstr "met l'adversaire en échec" #: lib/pychess/Utils/lutils/strateval.py:73 msgid "improves king safety" msgstr "amélioré la sécurité du roi" #: lib/pychess/Utils/lutils/strateval.py:75 msgid "slightly improves king safety" msgstr "améliore légérement la sécurité du roi" #: lib/pychess/Utils/lutils/strateval.py:108 msgid "moves a rook to an open file" msgstr "met une tour sur une colonne ouverte" #: lib/pychess/Utils/lutils/strateval.py:109 msgid "moves an rook to a half-open file" msgstr "met la tour sur une colonne semi-ouverte" #: lib/pychess/Utils/lutils/strateval.py:119 #: lib/pychess/Utils/lutils/strateval.py:121 #: lib/pychess/Utils/lutils/strateval.py:124 #: lib/pychess/Utils/lutils/strateval.py:126 #, python-format msgid "moves bishop into fianchetto: %s" msgstr "met le fou en fianchetto : %s" #: lib/pychess/Utils/lutils/strateval.py:132 #, python-format msgid "promotes a Pawn to a %s" msgstr "promeut le pion en %s" #: lib/pychess/Utils/lutils/strateval.py:135 msgid "castles" msgstr "roque" #: lib/pychess/Utils/lutils/strateval.py:158 msgid "takes back material" msgstr "reprend une pièce" #: lib/pychess/Utils/lutils/strateval.py:162 #: lib/pychess/Utils/lutils/strateval.py:170 msgid "sacrifies material" msgstr "sacrifie une pièce" #: lib/pychess/Utils/lutils/strateval.py:164 msgid "exchanges material" msgstr "échange une pièce" #: lib/pychess/Utils/lutils/strateval.py:166 msgid "captures material" msgstr "capture une pièce" #: lib/pychess/Utils/lutils/strateval.py:291 #, python-format msgid "rescues a %s" msgstr "protège un %s" #: lib/pychess/Utils/lutils/strateval.py:294 #, python-format msgid "threatens to win material by %s" msgstr "menace de prendre une pièce par %s" #: lib/pychess/Utils/lutils/strateval.py:296 #, python-format msgid "increases the pressure on %s" msgstr "fait pression sur %s" #: lib/pychess/Utils/lutils/strateval.py:298 #, python-format msgid "defends %s" msgstr "défend %s" #: lib/pychess/Utils/lutils/strateval.py:336 #, python-format msgid "pins an enemy %(oppiece)s on the %(piece)s at %(cord)s" msgstr "cloue un %(oppiece)s ennemi au %(piece)s en %(cord)s" #: lib/pychess/Utils/lutils/strateval.py:369 #, python-format msgid "White has a new piece in outpost: %s" msgstr "Les blancs posent une nouvelle pièce en%s" #: lib/pychess/Utils/lutils/strateval.py:377 #, python-format msgid "Black has a new piece in outpost: %s" msgstr "Les noirs postent une nouvelle pièce en : %s" #: lib/pychess/Utils/lutils/strateval.py:416 #, python-format msgid "%(color)s has a new passed pawn on %(cord)s" msgstr "%(color)s a un nouveau pion passé en %(cord)s" #: lib/pychess/Utils/lutils/strateval.py:470 msgid "half-open" msgstr "semi-ouverte" #: lib/pychess/Utils/lutils/strateval.py:472 #, python-format msgid "in the %(x)s%(y)s file" msgstr "dans la colonne %(x)s%(y)s" #: lib/pychess/Utils/lutils/strateval.py:474 #, python-format msgid "in the %(x)s%(y)s files" msgstr "dans les colonnes %(x)s%(y)s" #: lib/pychess/Utils/lutils/strateval.py:477 #, python-format msgid "%(color)s got a double pawn %(place)s" msgstr "%(color)s a des pions doublés %(place)s" #: lib/pychess/Utils/lutils/strateval.py:478 #, python-format msgid "%(color)s got new double pawns %(place)s" msgstr "%(color)s a des nouveaux pions doublés %(place)s" #: lib/pychess/Utils/lutils/strateval.py:485 #, python-format msgid "%(color)s got an isolated pawn in the %(x)s file" msgid_plural "%(color)s got isolated pawns in the %(x)s files" msgstr[0] "%(color)s a un pion isolé en colonne %(x)s" msgstr[1] "%(color)s a des pions isolés dans les colonnes %(x)s" #: lib/pychess/Utils/lutils/strateval.py:492 #, python-format msgid "%s moves pawns into stonewall formation" msgstr "%s adopte une formation stonewall" #: lib/pychess/Utils/lutils/strateval.py:507 #: lib/pychess/Utils/lutils/strateval.py:514 #, python-format msgid "%s can no longer castle" msgstr "%s ne peut plus faire de roque" #: lib/pychess/Utils/lutils/strateval.py:508 #: lib/pychess/Utils/lutils/strateval.py:515 #, python-format msgid "%s can no longer castle in queenside" msgstr "%s ne peut plus faire de grand roque" #: lib/pychess/Utils/lutils/strateval.py:510 #: lib/pychess/Utils/lutils/strateval.py:517 #, python-format msgid "%s can no longer castle in kingside" msgstr "%s ne peut plus faire de petit roque" #: lib/pychess/Utils/lutils/strateval.py:551 #, python-format msgid "%(opcolor)s has a new trapped bishop on %(cord)s" msgstr "Les %(opcolor)s ont un nouveau fou piégé en %(cord)s" #: lib/pychess/Utils/lutils/strateval.py:573 #, python-format msgid "develops a pawn: %s" msgstr "avance un pion : %s" #: lib/pychess/Utils/lutils/strateval.py:574 #, python-format msgid "brings a pawn closer to the backrow: %s" msgstr "avance un pion vers la rangée : %s" #: lib/pychess/Utils/lutils/strateval.py:591 #, python-format msgid "brings a %(piece)s closer to enemy king: %(cord)s" msgstr "déplace un %(piece)s plus près du roi adverse : %(cord)s" #: lib/pychess/Utils/lutils/strateval.py:594 #, python-format msgid "develops a %(piece)s: %(cord)s" msgstr "Développe un %(piece)s: %(cord)s" #: lib/pychess/Utils/lutils/strateval.py:612 #, python-format msgid "places a %(piece)s more active: %(cord)s" msgstr "Rend un %(piece)s plus actif : %(cord)s" #: lib/pychess/Utils/lutils/strateval.py:638 msgid "White should do pawn storm in right" msgstr "Les blancs devraient mener une attaque de pions sur l'aile droite" #: lib/pychess/Utils/lutils/strateval.py:640 msgid "Black should do pawn storm in left" msgstr "Les noirs devraient mener une attaque de pions sur l'aile gauche" #: lib/pychess/Utils/lutils/strateval.py:643 msgid "White should do pawn storm in left" msgstr "Les blancs devraient mener une attaque de pions sur l'aile gauche" #: lib/pychess/Utils/lutils/strateval.py:645 msgid "Black should do pawn storm in right" msgstr "Les noirs devraient mener une attaque de pions sur l'aile droite" #: lib/pychess/Utils/lutils/strateval.py:671 msgid "Black has a rather cramped position" msgstr "Les noirs ont une position plutôt resserrée" #: lib/pychess/Utils/lutils/strateval.py:673 msgid "Black has a slightly cramped position" msgstr "Les noirs ont une position légèrement resserrée" #: lib/pychess/Utils/lutils/strateval.py:675 msgid "White has a rather cramped position" msgstr "Les blancs ont une position plutôt resserrée" #: lib/pychess/Utils/lutils/strateval.py:677 msgid "White has a slightly cramped position" msgstr "Les blancs ont une position légèrement resserrée" #: sidepanel/annotationPanel.py:26 msgid "Annotation" msgstr "Commentaire" #: sidepanel/annotationPanel.py:29 msgid "Annotated game" msgstr "Partie commentée" #: sidepanel/annotationPanel.py:236 msgid "Copy PGN" msgstr "" #: sidepanel/annotationPanel.py:249 msgid "Add start comment" msgstr "Ajouter un premier commentaire" #: sidepanel/annotationPanel.py:254 msgid "Add comment" msgstr "Ajouter un commentaire" #: sidepanel/annotationPanel.py:258 sidepanel/annotationPanel.py:316 msgid "Edit comment" msgstr "Éditer un commentaire" #: sidepanel/annotationPanel.py:269 msgid "Forced move" msgstr "Coup forcé" #: sidepanel/annotationPanel.py:274 msgid "Add move symbol" msgstr "Ajouter une annotation de la position" #: sidepanel/annotationPanel.py:280 msgid "Unclear position" msgstr "Position non claire" #: sidepanel/annotationPanel.py:289 msgid "Zugzwang" msgstr "Zugzwang (coup forcé)" #: sidepanel/annotationPanel.py:290 msgid "Development adv." msgstr "Avantage de développement" #: sidepanel/annotationPanel.py:291 msgid "Initiative" msgstr "Initiative" #: sidepanel/annotationPanel.py:292 msgid "With attack" msgstr "En attaquant" #: sidepanel/annotationPanel.py:293 msgid "Compensation" msgstr "Compensation" #: sidepanel/annotationPanel.py:294 msgid "Counterplay" msgstr "Contre la montre" #: sidepanel/annotationPanel.py:295 msgid "Time pressure" msgstr "Pressé par le temps" #: sidepanel/annotationPanel.py:300 msgid "Add evaluation symbol" msgstr "Ajouter une annotation" #: sidepanel/annotationPanel.py:304 msgid "Remove symbols" msgstr "Supprimer les annotations" #: sidepanel/annotationPanel.py:911 #, python-format msgid "round %s" msgstr "tour %s" #: sidepanel/bookPanel.py:21 msgid "Hints" msgstr "Indices" #: sidepanel/bookPanel.py:25 msgid "" "The hint panel will provide computer advice during each stage of the game" msgstr "L'écran d'indice fournira des conseils de l'ordinateur à chaque étape du jeu." #: sidepanel/bookPanel.py:27 msgid "Official PyChess panel." msgstr "Panneau officiel de PyChess." #: sidepanel/bookPanel.py:87 msgid "Opening Book" msgstr "Bibliothèque d'Ouvertures" #: sidepanel/bookPanel.py:88 msgid "" "The opening book will try to inspire you during the opening phase of the " "game by showing you common moves made by chess masters" msgstr "Le livre des ouvertures va essayer de vous inspirer pendant la phase d'ouverture en vous montrant les coups les plus joués par des maîtres." #: sidepanel/bookPanel.py:139 #, python-format msgid "Analysis by %s" msgstr "Analyse par %s" #: sidepanel/bookPanel.py:140 #, python-format msgid "" "%s will try to predict which move is best and which side has the advantage" msgstr "%s va essayer de prédire quel est le meilleur déplacement et qui de noir ou blanc a l'avantage" #: sidepanel/bookPanel.py:142 #, python-format msgid "Threat analysis by %s" msgstr "Menace analysée par %s" #: sidepanel/bookPanel.py:143 #, python-format msgid "" "%s will identify what threats would exist if it were your opponent's turn to" " move" msgstr "%s va identifier quelles menaces pourraient exister si c'était à votre adversaire de jouer" #: sidepanel/bookPanel.py:159 sidepanel/bookPanel.py:269 msgid "Calculating..." msgstr "Calculs en cours..." #: sidepanel/bookPanel.py:300 msgid "" "Engine scores are in units of pawns, from White's point of view. Double " "clicking on analysis lines you can insert them into Annotation panel as " "variations." msgstr "" #: sidepanel/bookPanel.py:302 msgid "" "Adding suggestions can help you find ideas, but slows down the computer's " "analysis." msgstr "Ajouter des suggestions peut vous aider à trouver des idées, mais ralentis l'analyse de l'ordinateur." #: sidepanel/bookPanel.py:311 msgid "Endgame Table" msgstr "Tableau de fin de partie" #: sidepanel/bookPanel.py:315 msgid "" "The endgame table will show exact analysis when there are few pieces on the " "board." msgstr "La table de fin de jeu montre une analyse exact uniquement lorsqu'il ne reste que quelques pièces sur l'échiquer." #: sidepanel/bookPanel.py:364 sidepanel/bookPanel.py:367 #, python-format msgid "Mate in %d" msgstr "Mate en %d" #: sidepanel/bookPanel.py:554 msgid "" "In this position,\n" "there is no legal move." msgstr "Dans cette position,\nil n'y a pas de coup légale." #: sidepanel/chatPanel.py:21 msgid "" "The chat panel lets you communicate with your opponent during the game, " "assuming he or she is interested" msgstr "Le panneau de chat vous permet de communiquer avec votre adversaire pendant le jeu, en supposant qu'il ou elle soit intéressé(e)." #: sidepanel/commentPanel.py:16 msgid "Comments" msgstr "Commentaires" #: sidepanel/commentPanel.py:20 msgid "The comments panel will try to analyze and explain the moves played" msgstr "Ce panneau de commentaires va essayer d'analyser et d'expliquer les coups joués." #: sidepanel/commentPanel.py:121 msgid "Initial position" msgstr "Position initiale" #: sidepanel/commentPanel.py:254 #, python-format msgid "%(color)s moves a %(piece)s to %(cord)s" msgstr "%(color)s déplace un %(piece)s en %(cord)s" #: sidepanel/engineOutputPanel.py:15 msgid "Engines" msgstr "Moteurs" #: sidepanel/engineOutputPanel.py:20 msgid "" "The engine output panel shows the thinking output of chess engines (computer" " players) during a game" msgstr "Durant une partie, le panneau d'affichage du moteur montre le résultat des calculs du moteur d'échecs." #: sidepanel/engineOutputPanel.py:44 msgid "No chess engines (computer players) are participating in this game." msgstr "Pas d'I.A. (Intelligence Artificielle) ne participe à ce jeu." #: sidepanel/historyPanel.py:10 msgid "Move History" msgstr "Historique des Coups" #: sidepanel/historyPanel.py:13 msgid "" "The moves sheet keeps track of the players' moves and lets you navigate " "through the game history" msgstr "La feuille de jeu assure le suivi des coups des joueurs et vous permet de naviguer dans l'historique du jeu." #: sidepanel/scorePanel.py:15 msgid "Score" msgstr "Score" #: sidepanel/scorePanel.py:19 msgid "" "The score panel tries to evaluate the positions and shows you a graph of the" " game progress" msgstr "Le panneau de score essaie d'évaluer les positions et vous montre un graphe de la progression du jeu." pychess-0.12.2/lang/fr/LC_MESSAGES/pychess.mo0000644000175000017470000017464212653231273020722 0ustar tamasusers00000000000000l-< < << <$< <<=+= >=J=O=/c=0=N=>%*>`P>(>+>'?#.?R?*k?,?0?? @(@?@F@#^@$@'@@ @!AQ&AJxAAAAAA#B&BAB%FBlBBB9B'B@ CKC\CmCCCCECD D#W BW LW XWeW kWyW}W W X&XFXLXSXjX sX}X@XFX=Y SZ_ZbZxZ ZZ ZZZZZZZ [[$[5[ [[[ [ [[[ [ \\\\A\>\\X\c\]X]?]B];9^qu^S^O;_F` `)` a a&a ;aDIaaaaaa aaa a ab b&b :b Fb Qb^bobbbb bbb bb b!bc "c -c ;c HcUcWc/\cc cCccd d d d (d3dCd Hd Udad td d d d d d d d ddd\e,ce*e+e*eff-f.Gf vfff ffffff g ggg #g -g :gGgLgQgkg }gggg gg gggh h %hE1hwh'h h h#hhhi/i@i iii i i j jjj"j (j3j:jTjcjxj jjjj jjjjjj j j jj kk"k *k 6k CkQk"fkkkk kkkk ll#l )l 6lAlWlollll llll l llm mm&m-m@mVm^m`mcm fmsmmpmnhn"DM ^j p{% ˆ ш܈    $/ B OY b$p lj؉   !.!2)T8~ъ1׊' 1J\ do ŋ"ϋ+3Jb! Ȍ  $3DTj6z(ڍ2%< MZaj}#׎!8L]agov  &$2 W*a9 ֑R,SJ˒(a1p.+ѓ!*8,c6ǔ$;$`!)'\`m!Ζ !2K1P(Fʗ)M; (Ř!M^$w'&ę3P_|[ +QG4WΛD&rk6ޜ.DZp 8ʝ0%Gmg ; FQ`pc  /PY=m ĠϠѠ=נx&(:8c $"=xC'A/iC'ӥ_4[b8:,>gL!YIo441#4U?Eʩ%N6--2@"@c!  $8OTjLHVPȭ:  * 7 DObw@ $= N\pr w !ɯUcCn1 ȱ̱ ";C!5! WcrCFwI εѵ  1= @KfoҶ  ÷Էܷ QvYиclVjSwKWT 2 Z4οпԿݿ   &3P%` !" (6IP"f % U aq>   '0DXq9 VQc,(* )6 `j,A<Wn  %BZl+   % :iH3 ).Nn ~  "!; R^ o y '0D JXn)! 9N_)="Ru    ,2DV^`cf~89$Q=42r=5s/$h1UBjfy~*#@XtP'wl# 0 f(zdyS BFB V@ *;@B[o   !5#Q)u)X R\I*O.z3AAaiz  7/3c'SKYZ89U-/Br*.)Y+.;1Lw+|4B^w-+&00W*1&g " )2; Q_g y7 .6GP ky 27N a  ;Y5Y! :#Ko ! ."?Q$(,U s"%49'nK$8 GRZn+r)&-#0Tm y]CUnn]Id2iV1o+`1Yw{k yFU}jT$b+y'9?>t:B7#Ls|Mv,3TXu;=IRB5(uCn6N<rpDl a_ h_g_/E5PZEr3q ^@Q?P/ O6 88:WMbV|<u0(!B=%KD"[.A9F3[R FS@K N'44qh,2HGbj C o ^oI:Xx@m=l*1}$#0{~g$48J)Q 'mwz60&c%?`~vdHG+>N\fPtl;2~k.ZekOz)Y&Zz|sc9O-S7Q a5[J!"T{A c iD*\pxif)eXf;UxAK !"dht. a-`q^sjp,weSL\vW-]g&Y>EL/#R% VM(*<Grm7JW}H Gain: + %d sec chess has arrived has declined your offer for a match has departed has lagged for 30 seconds is censoring you is lagging heavily but hasn't disconnected is present min noplay listing you uses a formula not fitting your match request: where %(player)s plays %(color)s. would like to resume your adjourned %(time)s %(gametype)s game.%(black)s won the game%(color)s got a double pawn %(place)s%(color)s got an isolated pawn in the %(x)s file%(color)s got isolated pawns in the %(x)s files%(color)s got new double pawns %(place)s%(color)s has a new passed pawn on %(cord)s%(color)s moves a %(piece)s to %(cord)s%(minutes)d min + %(gain)d sec/move%(name)s %(minutes)d min%(name)s %(minutes)d min %(gain)d sec/move%(name)s %(minutes)d min + %(gain)d sec/move%(opcolor)s has a new trapped bishop on %(cord)s%(player)s is %(status)s%(player)s plays %(color)s%(white)s won the game%d min%s can no longer castle%s can no longer castle in kingside%s can no longer castle in queenside%s moves pawns into stonewall formation%s returns an error%s was declined by your opponent%s was withdrawn by your opponent%s will identify what threats would exist if it were your opponent's turn to move%s will try to predict which move is best and which side has the advantage'%s' is not a registered name(Blitz)*0 Players Ready0 of 010 min + 6 sec/move, 1400↑, White10 min + 6 sec/move, White12002 min, Fischer Random, 1800↓, Black2 min, Fischer Random, Black5 min5 min, 1200-1800, ManualConnect to the Free Online Chess ServerPromote pawn to what?PyChess was unable to load your panel settingsAnalyzingAnimationChess VariantDate of gameEnter Game NotationGame dataHint mode analyzing your game, enable this type Ctrl+H.Initial PositionInstalled SidepanelsName of _first human player:Name of s_econd human player:NewsOpen GameOpening, endgameOpponent StrengthOptionsPlay Sound When...PlayersSpy mode analyzing the oponnent game, enable this type Ctrl+Y.Time ControlToolsYour Color_Start GameA file named '%s' already exists. Would you like to replace it?Engine, %s, has diedPyChess is discovering your engines. Please wait.PyChess was not able to save the gameThere are %d games with unsaved moves. Save changes before closing?Unable to save file '%s'Unknown file type '%s'Challenge:A player _checks:A player _moves:A player c_aptures:AbortAbout ChessAc_tiveAcceptActivate alarm when _remaining sec is:Active seeks: %dAdd commentAdd evaluation symbolAdd move symbolAdd start commentAdding suggestions can help you find ideas, but slows down the computer's analysis.Address ErrorAdjournAdministratorAll Chess FilesAll FilesAll whiteAnalysis by %sAnalyze gameAnalyzer startedAnimate pieces, board rotation and more. Use this on fast machines.Annotated gameAnnotationAny strengthAsk to _MoveAsymmetric RandomAtomicAuto Call _FlagAuto _rotate board to current human playerAuto-logoutAvailableBB EloBecause %(black)s lost connection to the serverBecause %(black)s lost connection to the server and %(white)s requested adjournmentBecause %(black)s ran out of time and %(white)s has insufficient material to mateBecause %(loser)s disconnectedBecause %(loser)s king explodedBecause %(loser)s ran out of timeBecause %(loser)s resignedBecause %(loser)s was checkmatedBecause %(mover)s stalematedBecause %(white)s lost connection to the serverBecause %(white)s lost connection to the server and %(black)s requested adjournmentBecause %(white)s ran out of time and %(black)s has insufficient material to mateBecause %(winner)s has fewer piecesBecause %(winner)s lost all piecesBecause a player aborted the game. Either player can abort the game without the other's consent before the second move. No rating changes have occurred.Because a player disconnected and there are too few moves to warrant adjournment. No rating changes have occurred.Because a player lost connectionBecause a player lost connection and the other player requested adjournmentBecause both players agreed to a drawBecause both players agreed to abort the game. No rating changes have occurred.Because both players agreed to an adjournmentBecause both players have the same amount of piecesBecause both players ran out of timeBecause neither player has sufficient material to mateBecause of adjudication by an adminBecause of adjudication by an admin. No rating changes have occurred.Because of courtesy by a player. No rating changes have occurred.Because the %(black)s engine diedBecause the %(white)s engine diedBecause the connection to the server was lostBecause the game exceed the max lengthBecause the last 50 moves brought nothing newBecause the same position was repeated three times in a rowBecause the server was shut downBecause the server was shut down. No rating changes have occurred.BeepBishopBlackBlack has a new piece in outpost: %sBlack has a rather cramped positionBlack has a slightly cramped positionBlack should do pawn storm in leftBlack should do pawn storm in rightBlack:BlindfoldBlindfold AccountBlitzBlitz:CCACalculating...Center:ChallengeChallenge: Challenge: Change ToleranceChatChess AdvisorChess Alpha 2 DiagramChess GameChess PositionChess ShoutChess Variants are like the pieces of the last line will be placed on the board.Claim DrawClassic chess rules http://en.wikipedia.org/wiki/ChessClassic chess rules with hidden figurines http://en.wikipedia.org/wiki/Blindfold_chessClockClose _without SavingColorize analyzed movesCommand line parameters needed by the engine.Command:CommentsCompensationComputerConnectingConnecting to serverConnection ErrorConnection was closedContinue to wait for opponent, or try to adjourn the game?Conversation infoConversationsCornerCould not save the fileCounterplayCrazyhouseCreate SeekDDateDate/TimeDeclineDefaultDestination Host UnreachableDetect type automaticallyDevelopment adv.DiedDo you know that it is possible to finish a chess game in just 2 turns?Do you know that the number of possible chess games exceeds the number of atoms in the Universe?Do you know that you can call flag when the clock is with you, Actions > Call Flag.Do you know that you can help translate Pychess in your language, Help > Translate Pychess.Don't careDrawDummy AccountECOEdit SeekEdit Seek: Edit commentEmailEndgame TableEnginesEngines use uci or xboard communication protocol to talk to the GUI. If it can use both you can set here which one you like.Enter GameEnter Game _NotationError parsing move %(moveno)s %(mstr)sEventEvent:Examine Adjourned GameExaminedExaminingExport positionFICS atomic: http://www.freechess.org/Help/HelpFiles/atomic.htmlFICS losers: http://www.freechess.org/Help/HelpFiles/losers_chess.htmlFICS wild/4: http://www.freechess.org/Help/HelpFiles/wild.html * Randomly chosen pieces (two queens or three rooks possible) * Exactly one king of each color * Pieces placed randomly behind the pawns, SUBJECT TO THE CONSTRAINT THAT THE BISHOPS ARE BALANCED * No castling * Black's arrangement DOES NOT mirrors white'sFIDE MasterFMF_ull board animationFace _to Face display modeFile existsFischer RandomForced moveGMGain:Game informationGame is _drawn:Game is _lost:Game is _set-up:Game is _won:Games running: %dGaviota TB path:Generally this means nothing, as the game is time-based, but if you want to please your opponent, perhaps you should get going.Grand MasterGuestHa_ndle:Hidden pawnsHidden piecesHideHintsHow to PlayHuman BeingIMIdIdleIf set, PyChess will colorize suboptimal analyzed moves with red.If set, PyChess will suggest best opening moves on hint panel.If set, PyChess will use figures to express moved pieces, rather than uppercase letters.If set, the black pieces will be head down, suitable for playing against friends on mobile devices.If set, the board will turn after each move, to show the natural view for the current player.If set, the captured figurines will be shown next to the board.If set, the elapsed time that a player used for the move is shown.If set, the hint analyzer engine evaluation value is shown.If set, the playing board will display labels and ranks for each chess field. These are usable in chess notation.If set, this hides the tab in the top of the playing window, when it is not needed.If the analyzer finds a move where the evaluation difference (the difference between the evaluation for the move it thinks is the best move and the evaluation for the move made in the game) exceeds this value, it will add an annotation for that move (consisting of the engine's Principal Variation for the move) to the Annotation panelIf you don't save, new changes to your games will be permanently lost.In TournamentIn this position, there is no legal move.Initial positionInitiativeInternational MasterInvalid move.It is not possible later to continue the game, if you don't save it.Jump to initial positionJump to latest positionKKingKnightKnight oddsKnightsLeave _FullscreenLightningLightning:Load _Recent GameLoaded gameLoading player dataLocal EventLocal SiteLog on ErrorLog on as G_uestLog on as _GuestLogging on to serverLosersLossMamer ManagerManage enginesManualManual AcceptManually accept opponentMate in %dMaximum analysis time in seconds:Minutes:Minutes: More channelsMore playersMove HistoryNNameNever use animation. Use this on slow machines.New GameNo _animationNo chess engines (computer players) are participating in this game.No conversation's selectedNo soundNormalNot AvailableObserveObserve %sObserved _ends:OddsOffer A_bortOffer AbortOffer Ad_journmentOffer PauseOffer RematchOffer ResumeOffer UndoOffer _AbortOffer _DrawOffer _PauseOffer _ResumeOffer _UndoOfficial PyChess panel.OfflineOn FICS, your "Wild" rating encompasses all of the following variants at all time controls: One player starts with one less knight pieceOne player starts with one less pawn pieceOne player starts with one less queen pieceOne player starts with one less rook pieceOnlineOnly animate _movesOnly animate piece moves.Only registered users may talk to this channelOpen GameOpen Sound FileOpen _DatabaseOpening BookOpponent RatingOpponent's strength: OtherOther (non standard rules)Other (standard rules)PParameters:PausePawnPawn oddsPawns PassedPawns PushedPingPlayPlay Fischer Random chessPlay Losers chessPlay RematchPlay _Internet ChessPlay normal chess rulesPlayer _RatingPlayers: %dPlayingPng imagePo_rts:Polyglot book file:Pre_viewPrefer figures in _notationPreferencesPressing Ctrl+Z to offer opponent the possible rollback moves.PrivateProbably because it has been withdrawn.PromotionProtocol:PyChess - Connect to Internet ChessPyChess - Internet Chess: FICSPyChess Game DatabasePyChess Information WindowPyChess databasePyChess has lost connection to the engine, probably because it has died. You can try to start a new game with the engine, or try to play against another one.PyChess.py:QQueenQueen oddsQuit PyChessRR_esignRandomRapidRatedRated gameRatingReceiving list of playersRemove symbolsRequest ContinuationResendResend %s?ResultResumeRookRook oddsRoundRound:Running Simul MatchSRS_ign upSanctionsSave GameSave Game _AsSave moves before closing?Saved gameScoreSearch:Seek _GraphSeek updatedSelect engineSelect sound file...Select the games you want to save:Select working directorySend ChallengeSend all seeksSend seekService RepresentativeSetting up environmentSetup PositionSho_w cordsShort on _time:ShoutShow ConsoleShow _ChatShow _captured piecesShow elapsed move timesShow evaluation valuesShow tips at startupShredderLinuxChess:ShuffleSide_panelsSimple Chess PositionSiteSite:Sound filesSp_y modeSpentStandardStandard:Start Private ChatStatusStep back one moveStep forward one moveSuicideTTDTMTeam AccountThe abort offerThe adjourn offerThe analyzer will run in the background and analyze the game. This is necessary for the hint mode to workThe chain button is disabled because you are logged in as a guest. Guests can't establish ratings, and the chain button's state has no effect when there is no rating to which to tie "Opponent Strength" toThe chat panel lets you communicate with your opponent during the game, assuming he or she is interestedThe clock hasn't been started yet.The comments panel will try to analyze and explain the moves playedThe connection was broken - got "end of file" messageThe directory where the engine will be started from.The displayed name of the first human player, e.g., John.The displayed name of the guest player, e.g., Mary.The draw offerThe endgame table will show exact analysis when there are few pieces on the board.The engine %s reports an error:The engine output panel shows the thinking output of chess engines (computer players) during a gameThe error was: %sThe file already exists in '%s'. If you replace it, its content will be overwritten.The flag callThe game #%s can't be loaded, because of an error parsing FENThe game can't be loaded, because of an error parsing FENThe game can't be read to end, because of an error parsing move %(moveno)s '%(notation)s'.The game ended in a drawThe game has been abortedThe game has been adjournedThe game has been killedThe game is pausedThe hint panel will provide computer advice during each stage of the gameThe inverse analyzer will analyze the game as if your opponent was to move. This is necessary for the spy mode to workThe move failed because %s.The moves sheet keeps track of the players' moves and lets you navigate through the game historyThe offer to switch sidesThe opening book will try to inspire you during the opening phase of the game by showing you common moves made by chess mastersThe pause offerThe reason is unknownThe resignationThe resume offerThe score panel tries to evaluate the positions and shows you a graph of the game progressThe takeback offerThemesThere is %d game with unsaved moves.There are %d games with unsaved moves.This game can be automatically aborted without rating loss because there has not yet been two moves madeThis game can not be adjourned because one or both players are guestsThis is a continuation of an adjourned matchThis option is not applicable because you're challenging a playerThis option is not available because you're challenging a guest, Threat analysis by %sTimeTime control: Time pressureTip Of The dayTip of the DayTo play on Fullscreen mode, just type F11. Coming back, F11 again.To save a game Game > Save Game As, give the filename and choose where you want to be saved. At the bottom choose extension type of the file, and Save.Tolerance:Tournament DirectorTranslate PyChessTypeUUnable to accept %sUnclear positionUndescribed panelUndoUndo one moveUndo two movesUninstallUnknownUnofficial channel %dUnratedUnregisteredUntimedUpside DownUse _analyzerUse _inverted analyzerUse _local tablebasesUse _online tablebasesUse analyzer:Use opening _bookW EloWFMWGMWIMWaitWas unable to save '%(uri)s' as PyChess doesn't know the format '%(ending)s'.WelcomeWhen this button is in the "locked" state, the relationship between "Opponent's strength" and "Your strength" will be preserved when a) your rating for the type of game sought has changed b) you change the variant or the time controlWhiteWhite has a new piece in outpost: %sWhite has a rather cramped positionWhite has a slightly cramped positionWhite should do pawn storm in leftWhite should do pawn storm in rightWhite:WildWinWith attackWoman FIDE MasterWoman Grand MasterWoman International MasterWorking directory:YouYou are currently logged in as a guest. A guest can't play rated games and therefore isn't able to play as many of the types of matches offered as a registered user. To register an account, go to http://www.freechess.org/Register/index.html.You asked your opponent to moveYou can play chess listening to the sounds of the game, for that, Settings > Preferences > Sound tab, enable Use sounds in PyChess and choose your preferred sounds.You can start a new game by Game > New Game, in New Game window do you can choose Players, Time Control and Chess Variants.You can't play rated games because "Untimed" is checked, You can't play rated games because you are logged in as a guestYou can't select a variant because "Untimed" is checked, You can't switch colors during the game.You don't have the necessary rights to save the file. Please ensure that you have given the right path and try again.You have been logged out because you were idle more than 60 minutesYou have opened no conversations yetYou have tried to undo too many moves.You may only have 3 outstanding seeks at the same time. If you want to add a new seek you must clear your currently active seeks. Clear your seeks?You sent a draw offerYou sent a pause offerYou sent a resume offerYou sent an abort offerYou sent an adjournment offerYou sent an undo offerYour opponent asks you to hurry!Your opponent has asked that the game be aborted. If you accept this offer, the game will end with no rating change.Your opponent has asked that the game be adjourned. If you accept this offer, the game will be adjourned and you can resume it later (when your opponent is online and both players agree to resume).Your opponent has asked that the game be paused. If you accept this offer, the game clock will be paused until both players agree to resume the game.Your opponent has asked that the game be resumed. If you accept this offer, the game clock will continue from where it was paused.Your opponent has asked that the last %s move(s) be undone. If you accept this offer, the game will continue from the earlier position.Your opponent has offered you a draw.Your opponent has offered you a draw. If you accept this offer, the game will end with a score of 1/2 - 1/2.Your opponent is not out of time.Your opponent must agree to abort the game because there has been two or more moves madeYour opponent seems to have changed their mind.Your opponent wants to abort the game.Your opponent wants to adjourn the game.Your opponent wants to pause the game.Your opponent wants to resume the game.Your opponent wants to undo %s move(s).Your panel settings have been reset. If this problem repeats, you should report it to the developersYour seeks have been removedYour strength: Zugzwang_Accept_Actions_Analyze Game_Black player:_Call Flag_Clear Seeks_Decline_Edit_Engines_Export Position_Fullscreen_Game_Game List_General_Help_Hide tabs when only one game is open_Hint mode_Hints_Invalid move:_Load Game_Log Off_Log Viewer_Name:_New Game_Next_Observed moves:_Opponent:_Password:_Play Normal chess_Player List_Previous_Replace_Rotate Board_Save %d document_Save %d documents_Save %d documents_Save Game_Seeks / Challenges_Show Sidepanels_Sounds_Start Game_Untimed_Use sounds in PyChess_View_White player:_Your Color:andand guests can't play rated gamesand on FICS, untimed games can't be ratedand on FICS, untimed games have to be normal chess rulesask your opponent to moveblackbrings a %(piece)s closer to enemy king: %(cord)sbrings a pawn closer to the backrow: %scall your opponents flagcaptures materialcastlesdefends %sdevelops a %(piece)s: %(cord)sdevelops a pawn: %sdrawsexchanges materialgnuchess:half-openhttp://en.wikipedia.org/wiki/Chesshttp://en.wikipedia.org/wiki/Rules_of_chessimproves king safetyin the %(x)s%(y)s filein the %(x)s%(y)s filesincreases the pressure on %smatesminmoves a rook to an open filemoves an rook to a half-open filemoves bishop into fianchetto: %snot playingofoffer a drawoffer a pauseoffer a takebackoffer an abortoffer to adjournoffer to resumeoffer to switch sidesonline in totalpins an enemy %(oppiece)s on the %(piece)s at %(cord)splaces a %(piece)s more active: %(cord)spromotes a Pawn to a %spromotion move without promoted piece is incorrectputs opponent in checkrating range nowrescues a %sresignround %ssacrifies materialsecslightly improves king safetytakes back materialthe captured cord (%s) is incorrectthe end cord (%s) is incorrectthe move needs a piece and a cordthreatens to win material by %sto automatic acceptto manual acceptvs.whitewindow1xboardProject-Id-Version: pychess Report-Msgid-Bugs-To: POT-Creation-Date: 2016-01-27 13:28+0100 PO-Revision-Date: 2016-01-28 08:56+0000 Last-Translator: slav0nic Language-Team: French (http://www.transifex.com/gbtami/pychess/language/fr/) MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Language: fr Plural-Forms: nplurals=2; plural=(n > 1); Gain : + %d s échecest arrivéa décliné votre proposition de jeuest partia eu un retard de connexion de 30 secondesvous a censuréa des retards de connexion mais n'a pas été deconnectéest présent minaucun jeu ne vous listeutilisation d'une formule ne correspondant pas à votre demande de correspondance:Où %(player)s joue %(color)s.désire reprendre la partie %(gametype)s ajournée %(time)s.%(black)s gagne la partie%(color)s a des pions doublés %(place)s%(color)s a un pion isolé en colonne %(x)s%(color)s a des pions isolés dans les colonnes %(x)s%(color)s a des nouveaux pions doublés %(place)s%(color)s a un nouveau pion passé en %(cord)s%(color)s déplace un %(piece)s en %(cord)s%(minutes)d min + %(gain)d s/coup%(name)s %(minutes)d min%(name)s %(minutes)d min %(gain)d sec/coup%(name)s %(minutes)d min + %(gain)d sec/coupLes %(opcolor)s ont un nouveau fou piégé en %(cord)s%(player)s est %(status)s%(player)s joue %(color)s%(white)s gagne la partie%d min%s ne peut plus faire de roque%s ne peut plus faire de petit roque%s ne peut plus faire de grand roque%s adopte une formation stonewall%s retourne une erreur%s a été décliné par votre adversaire%s a été retiré pas votre adversaire%s va identifier quelles menaces pourraient exister si c'était à votre adversaire de jouer%s va essayer de prédire quel est le meilleur déplacement et qui de noir ou blanc a l'avantage'%s' n'est pas un nom enregistré(Blitz)*0 Joueur prêt0 de 010 min + 6 s/coup, 1400↑, Blanc10 min + 6 s/coup, Blanc12002 min, échecs aléatoires Fischer, 1800↓, Noir2 min, échecs aléatoires Fischer, Noir5 min5 min, 1200-1800, ManuelConnexion au serveur gratuit d'échecs en ligne FICSPromouvoir le pion en ?PyChess n'a pas pu charger les paramètres de votre panneauAnalyseAnimationVarianteDateEntrer l'évaluation de la partieInformations sur la partieLe mode assistant analyse votre partie, activez le avec Ctrl+H.Position initialePanneaux latéraux installésNom du _premier joueur humain :Nom du _second joueur humain :NouvellesCharger une partieOuverture, fin de jeuForce de l'adversaireOptionsJouer un son quand...JoueursLe mode espion analyse la partie de votre adversaire, activez le avec Ctrl+Y.Paramètres de la penduleOutilsVotre couleur_Démarrer la partieUn fichier nommé '%s' existe déjà. Voulez-vous le remplacer?Le calculateur, %s, a rendu l'âmePyChess recherche les moteurs de jeu disponibles. Veuillez patienter.PyChess n'est pas capable de sauvegarder la partieIl y a %d parties avec des coups non sauvegardés. Enregistrer les changements avant de fermer ?Impossible de sauver le fichier '%s'Type de fichier inconnu '%s'Défier :Vérification _JoueurUn joueur déplace :Un joueur c_apture :AbandonnerÀ propos des échecsActifAccepterActiver l'alarme quand le temps _restant en seconde est:Requêtes active : %dAjouter un commentaireAjouter une annotationAjouter une annotation de la positionAjouter un premier commentaireAjouter des suggestions peut vous aider à trouver des idées, mais ralentis l'analyse de l'ordinateur.Erreur d'adressageAjournerAdministrateurTous les fichiers d'échecsTous typesTout blancAnalyse par %sAnalyser le jeuAnalyseur démarréAnime les pièces, fait pivoter l'échiquier et plus encore. À utiliser sur une machine puissante.Partie commentéeCommentaireN'importe quel niveau_Demander de jouerEchecs aléatoires asymétriquesAtomiqueAppel _Drapeau Auto_Retourner automatiquement l'échiquier vers le joueur humainDéconnexion automatiqueDisponibleFN EloParce que le joueur %(black)s a perdu la connexion au serveurParce que le joueur %(black)s a perdu la connexion au serveur et que le joueur %(white)s a demandé d'ajourner la partieParce que les %(black)s ont écoulé leur temps de jeu et que les %(white)s n'ont plus suffisamment de pièces pour mettre en échecParce que %(loser)s s'est déconnectéParce que le roi de %(loser)s a exploséParce que %(loser)s a dépassé son temps réglementaireParce que %(loser)s a abandonnéParce %(loser)s était échec et matParce que %(mover)s a fait un pat.Parce que le joueur %(white)s a perdu la connexion au serveurParce que le joueur %(white)s a perdu la connexion au serveur et que le joueur %(black)s a demandé d'ajourner la partieParce que les %(white)s ont écoulé leur temps de jeu et que les %(black)s n'ont plus suffisamment de pièces pour mettre en échecParce que %(winner)s a moins de piècesParce que %(winner)s a perdu toutes ses piècesParce qu'un joueur a annulé le jeu. Un joueur peut annuler le jeu sans l’approbation de l'autre avant le second déplacement. Aucune évaluation n'a été effectuée.Parce qu'un joueur s'est déconnecté et qu'il y a trop peu de déplacement pour avoir un ajournement. Aucune évaluation n'a été effectuée.Parce qu'un joueur a perdu sa connexionParce qu'un joueur a perdu sa connexion et que l'autre joueur a demandé un report de la partieParce que les deux joueurs ont accepté un match nulParce que les deux joueurs ont accepté d'annuler le jeu. Aucune évaluation n'a été effectuée.Parce que les deux joueurs ont décidé d'un ajournementParce que les deux joueurs ont le même nombre de pièces.Parce que les deux joueurs ont dépassé leur limite de temps.Parce que aucun des joueurs n'a suffisamment de pièce pour mettre en échecPar arbitrage d'un administrateurA cause d'une adjudication par l'administrateur. Aucune évaluation n'a été effectuée.Du à la courtoisie d'un joueur. Aucune évaluation n'a été effectuée.Parce que le calculateur de %(black)s a rendu l'âmeParce que le calculateur de %(white)s a rendu l'âmeParce que la connexion au serveur a été perdue.Parce que la partie a dépassé la longueur maximaleParce que les 50 derniers coups n'ont rien apporté de nouveau.Parce que la même position a été répétée trois fois d'affilée.Parce que le serveur a été arrêtéParce que le serveur a été éteint. Aucune évaluation n'a été effectuée.BeepFouNoirLes noirs postent une nouvelle pièce en : %sLes noirs ont une position plutôt resserréeLes noirs ont une position légèrement resserréeLes noirs devraient mener une attaque de pions sur l'aile gaucheLes noirs devraient mener une attaque de pions sur l'aile droiteNoir :Partie à l'aveugleCompte "à l'aveugle" (blindfold)BlitzBlitz :CCACalculs en cours...Centre :DéfiDéfier : Défier : Modifier la toléranceChatConseiller en échecsDiagramme Chess Alpha 2Partie d'ÉchecsPosition d'ÉchecCrierLes variantes d'échecs modifient le placement des pièces sur l'échiquier.Demander NulleRègles classiques des échecs https://fr.wikipedia.org/wiki/%C3%89checsRègle classique des échecs à l'aveugle http://en.wikipedia.org/wiki/Blindfold_chessPenduleFermer _sans enregistrerColorer les coups analysésParamètres de la ligne de commande nécessaire au moteur.Commande :CommentairesCompensationOrdinateurConnexion en coursConnexion au serveurErreur de connexionLa connexion a été ferméeContinuer d'attendre un adversaire, ou tenter d'ajourner le jeu?Informations de la discussionDiscussionsCoinImpossible de sauvegarder le fichierContre la montreMaison de fouCréer une requêteDDateDate/HeureDéclinerDéfautHôte InaccessibleDétecter le type automatiquementAvantage de développementArrêtéSavez-vous qu'il est possible de terminer une partie d'échecs en seulement 2 tours ?Savez-vous que le nombre de parties possible est plus grand que le nombre d'atomes dans l'univers ?Savez-vous que vous pouvez demander la victoire au temps quand la pendule est en votre faveur, Actions > Victoire au temps.Savez-vous que vous pouvez aider à traduire PyChess dans votre langue, Aide > Traduire PyChess.Pas de préférenceNulleCompte fictifECOEditer une requêteEditer une requête Éditer un commentaireAdresse électroniqueTableau de fin de partieMoteursAfin de communiquer avec l'interface graphique, les moteurs d'échecs utilisent le protocole UCI ou xboard. Définissez ici le protocole que vous souhaitez utiliser.Entrer dans la partieEntrer l'évaluation de la partieErreur pour analyser le mouvement %(moveno)s %(mstr)sÉvénementÉvènement :Examiner la partie ajournéeAnalyséAnalyse en coursExporter la positionFICS atomiques: http://www.freechess.org/Help/HelpFiles/atomic.htmlQui perd gagne : http://fr.wikipedia.org/wiki/Qui_perd_gagne_(échecs)FICS wild/4: http://www.freechess.org/Help/HelpFiles/wild.html * Pièces choisies aléatoirement (deux reines ou trois roques possibles) * Exactement un roi de chaque couleur * Pièces placées aléatoirement derrières les pions, SOUMIS A LA CONTRAINTE QUE LES FOUS SOIENT ÉQUILIBRÉS * Pas de roque * La position des Noirs ne doient pas être la même que celle des blancsMaître FIDEMFEchiquier totalement animéAffichage en mode face à faceLe fichier existeFischer aléatoireCoup forcéGMIncrémentInformations sur la partieEx-aequoLa partie est _perdue :L'échiqiuer est disposé :La partie est _gagnée :Parties en cours : %dChemin de Gaviota TB :Cela ne veut généralement rien dire, comme le jeu est basé sur le temps, mais si vous voulez faire plaisir à votre adversaire, vous devriez peut-être continuer.Grand MaîtreInvitéPseudo (handle)Pions cachésPièces cachéesMasquerIndicesComment jouerHumainMIIdInactifSi sélectionné, PyChess colorie les mouvements analysés suboptimales en rouge.Lorsque cette option est sélectionnée, PyChess suggérera les meilleurs ouvertures possibles dans le panneau d'aide.Lorsque cette option est sélectionnée, PyChess utilise des figurines pour désigner les pièces déplacées, plutôt que des lettres majuscules.Lorsque cette option est sélectionnée, les pièces noires sont affichées la tête pointant vers le bas. Adapté au jeu entre amis sur des appareils mobiles.Lorsque cette option est sélectionnée, l'échiquier pivote après chaque coup pour afficher le point de vue du joueur dont c'est le tour.Lorsque cette option est sélectionnée, les pièces capturées seront affichées à côté de l'échiquier.Si sélectionné, on affiche le temps écoulé mis par un joueur pour le déplacement.Lorsque cette option est sélectionnée, la valeur du coup proposé par le moteur d'analyse est affichée.Lorsque cette option est sélectionnée, les colonnes et les lignes de l'échiquier sont identifiées respectivement par des lettres et des chiffres. Cette désignation est conforme à la notation algébrique.Lorsque cette option est sélectionnée, cache l'onglet en haut de la fenêtre de jeu lorsque ce n'est pas nécessaire.Si l'analyseur détecte un coup où la différence d'évaluation (la différence entre l'évaluation pour ce qu'il pense être le meilleur coup et l'évaluation du coup joué) dépasse cette valeur, il ajoute une annotation pour ce coup (sous la forme de la variation principale du moteur pour le coup) dans le panneau d'annotationSi vous ne sauvegardez pas, les changements des parties seront définitivement perdues.En tournoiDans cette position, il n'y a pas de coup légale.Position initialeInitiativeMaître InternationalDéplacement invalide.Il ne sera pas possible de continuer cette partie plus tard si vous ne la sauvegarder pas.Revenir à la position initialeAller à la dernière positionRRoiCavalierHandicap d'un cavalierCavaliersQuitter le mode _plein écranLightningLightning :Charger une partie _récentePartie chargéeChargement des informations du joueurÉvenement LocalSite localErreur à l'authentificationS'identifier comme i_nvitéSe connecter en tant qu' _invitéDébut de transactionQui perd gagnePerduMamer ManagerGérer les moteursManuelAccepter manuellementAccepter l'adversaire manuellementMate en %dTemps maximum d'analyse en secondes :Minutes :Minutes : Plus de canauxPlus de joueursHistorique des CoupsCNomAucune animation durant la partie. À utiliser sur les machines les moins puissantes.Nouvelle partieAucune animationPas d'I.A. (Intelligence Artificielle) ne participe à ce jeu.Aucune consersation selectionéeAucun sonNormalIndisponibleObserverObserve %s_Fins observées :HandicapProposer l'a_bandonProposer un abandonProposer un a_journementProposer une pauseProposer une revancheProposer de reprendreProposer d'annuler le coupProposer un _abandonProposer _ex-aequoProposer une _pauseProposer de _reprendreProposer d'annuler le coupPanneau officiel de PyChess.DéconnectéSur FICS, votre classement "variantes" prend en compte les variantes suivantes : Un joueur commence avec un cavalier en moinsUn joueur commence avec un pion en moinsUn joueur commence avec une reine en moinsUn joueur commence avec une tour de moinsConnectéAnimer seulement les coupsAnime uniquement les mouvements des pièces.Seuls les utilisateurs enregistrés peuvent discuter sur ce canalOuvrir une partieOuvrir le fichier de sonOuvrir une base de _donnéesBibliothèque d'OuverturesNiveau de l'adversaireNiveau de l'adversaire : AutreAutre (règles non standards)Autre (règles standards)PParamètres :PausePionHandicap d'un pionPions libresPions poussésPingJouerJouer aux échecs aléatoires FischerJouer au Qui Perd GagneJouer la revancheJouer aux échecs en _ligneJouer avec les règles normales des échecsNiveau du joueurJoueurs : %dLectureImage PNGPo_rts :Fichier du livre multilangue:AperçuPréférer la notation avec figurinesPréférencesEn appuyant sur Ctrl+Z, vous offrez à l'adversaire la possibilité de rejouer les derniers coups.PrivéProbablement parce que l'élément a été retiré.PromotionProtocole :Connexion serveur d'échecs en ligne FICSPyChess - Jeu d'échecs : FICSBase de données du jeu PyChessFenêtre d'Information PyChessBase de données de PyChessPyChess a perdu la connexion avec le calculateur, probablement parce que celui-ci a rendu l'âme. Vous pouvez essayer de relancer une nouvelle partie avec ce calculateur ou bien essayer de jouer contre un autre.PyChess.py :DDameHandicap de la reineQuitter PyChessTAbandonnerAléatoireRapideNotéPartie avec classementClassementRéception de la liste des joueursSupprimer les annotationsDemander à poursuivreRé-envoyerRé-envoyer %s ?RésultatReprendreTourHandicap d'une tourTourTour :Partie simultanéeAS_InscriptionSanctionsSauvegarder La PartieEnregistrer la partie _sousSauvegarder les coups avant de fermer ?Partie sauvegardéeScoreRechercher :_Graphe des requêtesProposition mise à jourSélectionner un moteurSélectionnez un fichier son...Selectionner les parties à sauvegarder :Choisir le répertoire de travailEnvoyer un défiEnvoyer toutes les requêtesEnvoyer une requêteAgent de serviceParamètrage de l'environnementDisposer les piècesÉchiquier avec coordonnéesCourt sur _temps:CrierVoir la consoleMontrer les conversationsMontrer les pièces _capturéesMontrer le temps de déplacement écouléAfficher les valeursAfficher des astuces au démarrageShredderLinuxChess :AléatoirePanneaux latérauxPosition simple des piècesLieuLieu :Fichiers de sonMode _espionDépenséStandardStandard :Démarrer conversation privéeÉtatReculer d'un coupAvancer d'un coupSuicideTDTTMCompte "équipe" (team)La proposition d'abandonLa proposition d'ajournementL'analyseur va tourner en tâche de fond et analyser la partie. C'est nécessaire pour que le mode "aide" puisse fonctionnerLe bouton Chaînage est désactivé parce que vous êtes connecté en tant qu'invité. Les invités ne peuvent pas être classés, et l'état du bouton Chaînage n'a aucun effet quand il n'y a aucun classement à mettre en regard du niveau de l'adversaire.Le panneau de chat vous permet de communiquer avec votre adversaire pendant le jeu, en supposant qu'il ou elle soit intéressé(e).La pendule n'a pas encore commencé.Ce panneau de commentaires va essayer d'analyser et d'expliquer les coups joués.La connexion a été coupée - message "fin de fichier" reçuLe dossier à partir duquel le moteur sera lancé.Le nom affiché du premier joueur humain, par exemple Pierre.Le nom affiché du joueur invité, par exemple Marie.La proposition de nulLa table de fin de jeu montre une analyse exact uniquement lorsqu'il ne reste que quelques pièces sur l'échiquer.Le moteur %s a signalé une erreur :Durant une partie, le panneau d'affichage du moteur montre le résultat des calculs du moteur d'échecs.L'erreur est: %sLe fichier existe déjà dans '%s'. Si vous le remplacez, son contenu sera écrasé.La chute du drapeauImpossible de charger la partie #%s car une erreur s'est produite lors de l'interprétation du fichier FENImpossible de charger la partie car une erreur s'est produite lors de l'interprétation du fichier FENLa partie n'a pas pu être lue jusqu'à la fin à cause d'une erreur d'interprétation au coup %(moveno)s '%(notation)s'.La partie s'est terminée par un match nulLa partie a été abandonéeLa partie est suspendueLa partie a été détruiteLa partie est en pauseL'écran d'indice fournira des conseils de l'ordinateur à chaque étape du jeu.L'analyseur inverse va analyser la partie comme si c'était à votre adversaire de jouer. Ceci est nécessaire pour que le mode "espion" fonctionneLe coup n'a pas réussi à cause de %s.La feuille de jeu assure le suivi des coups des joueurs et vous permet de naviguer dans l'historique du jeu.La proposition de changer de côtéLe livre des ouvertures va essayer de vous inspirer pendant la phase d'ouverture en vous montrant les coups les plus joués par des maîtres.La proposition de pauseLa raison est inconnueL'abandonLa proposition de reprendreLe panneau de score essaie d'évaluer les positions et vous montre un graphe de la progression du jeu.La proposition d'annuler le dernier coupThèmesIl y a %d partie avec des coups non sauvegardés.Il y a %d parties avec des coups non sauvegardés.Cette partie peut être abandonnée automatiquement sans perte de classement car deux coups n'ont pas encore été jouésCette partie ne peut pas être ajournée car au moins un des joueurs est un invitéC'est la suite d'un jeu suspenduCette option n'est pas disponible parce que vous défier un joueurCette option n'est pas disponible, parce que vous défiez un invité, Menace analysée par %sCadenceCadence : Pressé par le tempsAstuce du jourAstuce du jourPour jouer en mode plein écran, appuyez sur F11. Puis F11 pour revenir.Pour sauvegarder une partie Partie > Enregistrer la partie sous, choisissez un nom et où le fichier doit être sauvé. En bas, choisissez l'extension du fichier et Enregistrer.Tolérance :Directeur de tournoiTraduire PyChessTypeUImpossible d'accepter %sPosition non clairePanneau non décritAnnuler le coupRefaire un coupRefaire deux coupsDésinstallerInconnuCannal non officiel %dNon notéNon-enregistréSans décompte de tempsUpside downUtiliser _analyseurUtiliser _analyseur inverseUtiliser les tables de base _localeUtiliser les tables de bases _connectéesUtiliser l'analyseurUtiliser la _bibliothèque des ouverturesB EloFMfGMfMIFAttendezPyChess n'a pas pu sauvegarder '%(uri)s' car il ne reconnait pas le format '%(ending)s'.BienvenueQuand ce bouton est verrouillé, le rapport entre "Niveau de l'adversaire" et "Votre niveau" sera préservé si a) votre niveau pour le type de parties recherché a été modifié b) vous avez changé de variante ou modifié la cadenceBlancLes blancs posent une nouvelle pièce en%sLes blancs ont une position plutôt resserréeLes blancs ont une position légèrement resserréeLes blancs devraient mener une attaque de pions sur l'aile gaucheLes blancs devraient mener une attaque de pions sur l'aile droiteBlanc :Variantes "Wild"GagnéEn attaquantMaître FIDE féminineGrand Maître fémininMaître Internationale FéminineRépertoire de travail :VousVous êtes connecté en tant qu'invité. Un invité ne peut pas jouer à des jeux évalués et ne peut donc pas jouer à autant de type de jeux qui sont offerts si on est inscrits. Pour s'inscrire, aller à http://www.freechess.org/Register/index.html.Vous avez demandé à votre adversaire de jouerVous pouvez écouter les sons de la partie dans Paramètres > Préférences > onglet Sons puis cochez Activer les sons dans PyChess et choisissez vos sons préférés.Vous pouvez commencer une nouvelle partie dans Partie > Nouvelle Partie, dans la fenêtre Nouvelle Partie vous pouvez choisir les Joueurs, la Gestion du temps et les Variantes d'échecs.L'option "sans cadence" étant sélectionnée, vous ne pouvez pas jouer de partie. Connecté en tant qu'invité, vous ne pouvez pas jouer de partie évaluée.L'option "sans cadence" étant sélectionnée, vous ne ne pouvez pas choisir de variante, Vous ne pouvez pas changer de couleur pendant la partie.Vous n'avez pas les permissions nécessaires pour sauver le fichier. Assurez-vous que vous avez donné le bon chemin et recommencez.Vous avez été déconnecté parce que vous étiez inactif pendant plus de 60 minutesVous n'avez pas encore ouvert de conversationVous avez essayé d'annuler trop de mouvements.Vous ne pouvez avoir que 3 requêtes simultanément. Si vous voulez ajouter une requête, vous devez effacer vos requêtes actives. Effacer les requêtes ?Vous avez proposé un match nulVous avez envoyé une proposition de pauseVous avez proposé de reprendre la partieVous avez envoyé une proposition d'abandonVous avez proposé un ajournement de la partieVous avez envoyé une proposition d'annuler le dernier coupVotre adversaire vous demande de vous dépêcher.Votre adversaire propose d'abandonner la partie. Si vous acceptez cette proposition, la partie terminera sans modification du niveau.Votre adversaire à demander d'ajourner la partie. Si vous acceptez cette proposition, la partie sera ajournée et vous pourrez la reprendre plus tard (quand votre adversaire est connecté et que les deux joueurs acceptent de reprendre la partie).Votre adversaire souhaite faire une pause. Si vous acceptez cette proposition, la pendule sera arrêtée jusqu'à ce que les deux joueurs acceptent de reprendre la partie.Votre adversaire souhaite reprendre la partie. Si vous acceptez cette proposition, la pendule reprendra là où elle a été arrêtéeVotre adversaire propose d'annuler le(s) %s coups précédents. Si vous acceptez cette proposition, la partie continuera à partir de l'ancienne position.Votre adversaire vous propose un match nul.Votre adversaire vous propose un nul. Si vous acceptez cette proposition, la partie se terminera avec un score de 1/2 - 1/2.Votre adversaire n'a pas dépassé le temps imparti.Votre adversaire doit accepter d'abandonner la partie car au moins deux coups ont été jouésVotre adversaire semble avoir changer d'avis.Votre adversaire veut abandonner la partie.Votre adversaire veut ajourner le jeu.Votre adversaire veut mettre en pause la partie.Votre adversaire veut reprendre la partie.Votre adversaire veut annuler %s déplacement(s).Les paramètres de votre panneau ont été réinitialisés. Si ce problème persiste, vous devriez le reporter aux développeurs.Vos propositions ont été suppriméesVotre niveau : Zugzwang (coup forcé)_Accepter_Actions_Analyser le JeuJoueur _noir :_Victoire au temps_Initialiser les offres de parties_Refuser_Éditer_Moteurs_Exporter la position_Plein écran_PartieListe des parties_GénéralA_ide_Cacher les onglets quand une seule partie est en cours_Mode assistant_Astuces_Déplacement incorrect:_Charger une partieDéconnecter_Informations du journal_Nom :_Nouvelle partie_Suivant_Déplacements observés :_Adversaire :Mot de _passe :_Jouer les règles normalesListe des joueurs_Précédent_Remplacer_Rotation de l'échiquier_Sauvegarder %d document_Sauvegarder %d documents_Sauvegarder %d documents_Enregistrer la partieRequêtes / Défis_Afficher les panneaux latéraux_Sons_Commencer la partie_Sans cadence_Activer les sons dans PyChessA_ffichageJoueur _blanc :_Votre couleur:etet les invités ne peuvent pas jouer de parties évaluées.et sur FICS, les parties jouées sans contrôle de temps ne peuvent pas être évaluées.et sur FICS, les parties sans contrôle de temps suivent les règles normales des échecsdemander à l'adversaire de jouernoirdéplace un %(piece)s plus près du roi adverse : %(cord)savance un pion vers la rangée : %sdemander la victoire au tempscapture une pièceroquedéfend %sDéveloppe un %(piece)s: %(cord)savance un pion : %sobtient le nuléchange une piècegnuchess :semi-ouvertehttp://fr.wikipedia.org/wiki/Jeu_d'%C3%A9checshttp://fr.wikipedia.org/wiki/R%C3%A8gles_du_jeu_d%27%C3%A9checsamélioré la sécurité du roidans la colonne %(x)s%(y)sdans les colonnes %(x)s%(y)sfait pression sur %smateminmet une tour sur une colonne ouvertemet la tour sur une colonne semi-ouvertemet le fou en fianchetto : %sne joue passurproposer un nulproposer une pauseProposer d'annuler le dernier coupproposer un abandonproposer d'ajournerproposer de reprendreproposer de changer de côtéConnectés au totalcloue un %(oppiece)s ennemi au %(piece)s en %(cord)sRend un %(piece)s plus actif : %(cord)spromeut le pion en %sUn mouvement de promotion sans indication de la pièce promue est incorrectmet l'adversaire en échecévaluation de l'ensemble maintenantprotège un %sabandonnertour %ssacrifie une piècesecaméliore légérement la sécurité du roireprend une piècela position capturée (%s) est incorrectela position de fin (%s) est incorrectele coup nécessite une pièce et une positionmenace de prendre une pièce par %sAccepter automatiquementAccepter manuellementcontreblancFenêtre 1xboardpychess-0.12.2/lang/uk/0000755000175000017470000000000012653231274015115 5ustar tamasusers00000000000000pychess-0.12.2/lang/uk/LC_MESSAGES/0000755000175000017470000000000012653231274016702 5ustar tamasusers00000000000000pychess-0.12.2/lang/uk/LC_MESSAGES/pychess.po0000644000175000017470000024375212653216205020732 0ustar tamasusers00000000000000# SOME DESCRIPTIVE TITLE. # Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER # This file is distributed under the same license as the pychess package. # # Translators: # Max Lyashuk , 2013 msgid "" msgstr "" "Project-Id-Version: pychess\n" "Report-Msgid-Bugs-To: \n" "POT-Creation-Date: 2016-01-27 13:28+0100\n" "PO-Revision-Date: 2016-01-28 08:56+0000\n" "Last-Translator: slav0nic \n" "Language-Team: Ukrainian (http://www.transifex.com/gbtami/pychess/language/uk/)\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" "Language: uk\n" "Plural-Forms: nplurals=3; plural=(n%10==1 && n%100!=11 ? 0 : n%10>=2 && n%10<=4 && (n%100<10 || n%100>=20) ? 1 : 2);\n" # "Plural-Forms: nplurals=INTEGER; plural=EXPRESSION;\n" #: glade/analyze_game.glade:22 msgid "Analyze game" msgstr "" #: glade/analyze_game.glade:87 msgid "Use analyzer:" msgstr "" #: glade/analyze_game.glade:122 glade/PyChess.glade:2054 msgid "Maximum analysis time in seconds:" msgstr "" #: glade/analyze_game.glade:163 msgid "" "If the analyzer finds a move where the evaluation difference (the difference" " between the evaluation for the move it thinks is the best move and the " "evaluation for the move made in the game) exceeds this value, it will add an" " annotation for that move (consisting of the engine's Principal Variation " "for the move) to the Annotation panel" msgstr "" #: glade/analyze_game.glade:164 msgid "Variation annotation creation threshold in centipawns:" msgstr "" #: glade/analyze_game.glade:198 msgid "Analyze from current position" msgstr "" #: glade/analyze_game.glade:214 msgid "Add threatening variation lines " msgstr "" #: glade/analyze_game.glade:229 glade/PyChess.glade:1459 msgid "Colorize analyzed moves" msgstr "" #: glade/analyze_game.glade:244 glade/PyChess.glade:1495 msgid "Show evaluation values" msgstr "" #: glade/discovererDialog.glade:18 msgid "PyChess is discovering your engines. Please wait." msgstr "" #: glade/discovererDialog.glade:77 msgid "PyChess.py:" msgstr "PyChess.py:" #: glade/discovererDialog.glade:89 msgid "ShredderLinuxChess:" msgstr "ShredderLinuxChess:" #: glade/discovererDialog.glade:101 msgid "gnuchess:" msgstr "gnuchess:" #: glade/fics_logon.glade:7 msgid "PyChess - Connect to Internet Chess" msgstr "" #: glade/fics_logon.glade:47 msgid "Connect to the Free Online Chess Server" msgstr "" #: glade/fics_logon.glade:129 glade/taskers.glade:394 msgid "_Password:" msgstr "_Пароль:" #: glade/fics_logon.glade:143 msgid "_Name:" msgstr "_Ім’я:" #: glade/fics_logon.glade:191 msgid "Log on as _Guest" msgstr "" #: glade/fics_logon.glade:227 msgid "Host:" msgstr "" #: glade/fics_logon.glade:259 msgid "Po_rts:" msgstr "По_рти:" #: glade/fics_logon.glade:271 msgid "Auto login on startup" msgstr "" #: glade/fics_logon.glade:385 msgid "S_ign up" msgstr "" #: glade/fics_lounge.glade:35 msgid "Challenge: " msgstr "Змагання: " #: glade/fics_lounge.glade:97 msgid "Send Challenge" msgstr "" #: glade/fics_lounge.glade:133 msgid "Challenge:" msgstr "" #: glade/fics_lounge.glade:327 glade/fics_lounge.glade:2078 msgid "Lightning:" msgstr "" #: glade/fics_lounge.glade:351 glade/fics_lounge.glade:2102 msgid "Standard:" msgstr "Стандарт:" #: glade/fics_lounge.glade:375 glade/fics_lounge.glade:2126 msgid "Blitz:" msgstr "Блітц:" #: glade/fics_lounge.glade:400 msgid "2 min, Fischer Random, Black" msgstr "" #: glade/fics_lounge.glade:422 msgid "10 min + 6 sec/move, White" msgstr "10 хв + 6 сек/хід, Білі" #: glade/fics_lounge.glade:444 msgid "5 min" msgstr "5 хв" #: glade/fics_lounge.glade:480 msgid "Edit Seek" msgstr "" #: glade/fics_lounge.glade:584 lib/pychess/ic/ICLounge.py:2208 #: lib/pychess/ic/__init__.py:101 lib/pychess/Utils/GameModel.py:206 msgid "Untimed" msgstr "" #: glade/fics_lounge.glade:637 msgid "Minutes: " msgstr "Хвилин:" #: glade/fics_lounge.glade:665 msgid " Gain: " msgstr "" #: glade/fics_lounge.glade:703 msgid "Time control: " msgstr "Контроль часу:" #: glade/fics_lounge.glade:716 lib/pychess/ic/FICSObjects.py:56 #: lib/pychess/ic/ICLounge.py:1137 lib/pychess/ic/ICLounge.py:2208 #: lib/pychess/ic/__init__.py:99 msgid "Standard" msgstr "Стандарт" #: glade/fics_lounge.glade:757 glade/newInOut.glade:633 msgid "Time Control" msgstr "Контроль часу" #: glade/fics_lounge.glade:814 glade/fics_lounge.glade:1346 msgid "Don't care" msgstr "Все рівно" #: glade/fics_lounge.glade:879 msgid "Your strength: " msgstr "" #: glade/fics_lounge.glade:921 msgid "(Blitz)" msgstr "(Блітц)" #: glade/fics_lounge.glade:951 msgid "Opponent's strength: " msgstr "" #: glade/fics_lounge.glade:1055 msgid "" "When this button is in the \"locked\" state, the relationship\n" "between \"Opponent's strength\" and \"Your strength\" will be\n" "preserved when \n" "a) your rating for the type of game sought has changed\n" "b) you change the variant or the time control" msgstr "" #: glade/fics_lounge.glade:1095 msgid "Center:" msgstr "" #: glade/fics_lounge.glade:1134 msgid "1200" msgstr "1200" #: glade/fics_lounge.glade:1188 msgid "Tolerance:" msgstr "" #: glade/fics_lounge.glade:1243 lib/pychess/ic/ICLounge.py:2452 msgid "Hide" msgstr "Сховати" #: glade/fics_lounge.glade:1289 msgid "Opponent Strength" msgstr "" #: glade/fics_lounge.glade:1386 lib/pychess/Database/gamelist.py:40 #: lib/pychess/ic/ICLounge.py:1357 lib/pychess/ic/ICLounge.py:1557 #: lib/pychess/ic/ICLounge.py:2108 lib/pychess/Utils/repr.py:10 #: lib/pychess/widgets/ChessClock.py:40 #: lib/pychess/widgets/TaskerManager.py:153 msgid "White" msgstr "Білі" #: glade/fics_lounge.glade:1414 lib/pychess/Database/gamelist.py:40 #: lib/pychess/ic/ICLounge.py:1358 lib/pychess/ic/ICLounge.py:1558 #: lib/pychess/ic/ICLounge.py:2110 lib/pychess/Utils/repr.py:10 #: lib/pychess/widgets/ChessClock.py:40 #: lib/pychess/widgets/TaskerManager.py:154 msgid "Black" msgstr "Чорні" #: glade/fics_lounge.glade:1453 msgid "Your Color" msgstr "Ваш колір" #: glade/fics_lounge.glade:1512 msgid "Play normal chess rules" msgstr "" #: glade/fics_lounge.glade:1552 msgid "Play" msgstr "Грати" #: glade/fics_lounge.glade:1618 glade/newInOut.glade:833 msgid "Chess Variant" msgstr "" #: glade/fics_lounge.glade:1676 msgid "Rated game" msgstr "" #: glade/fics_lounge.glade:1692 msgid "Manually accept opponent" msgstr "" #: glade/fics_lounge.glade:1722 msgid "Options" msgstr "Опції" #: glade/fics_lounge.glade:1750 msgid "PyChess - Internet Chess: FICS" msgstr "" #: glade/fics_lounge.glade:1823 msgid "_Clear Seeks" msgstr "" #: glade/fics_lounge.glade:1847 msgid "_Accept" msgstr "_Прийняти" #: glade/fics_lounge.glade:1871 msgid "_Decline" msgstr "_Відхилити" #: glade/fics_lounge.glade:2151 msgid "2 min, Fischer Random, 1800↓, Black" msgstr "" #: glade/fics_lounge.glade:2172 msgid "10 min + 6 sec/move, 1400↑, White" msgstr "10 хв + 6 сек/хід, 1400↑, Білі" #: glade/fics_lounge.glade:2193 msgid "5 min, 1200-1800, Manual" msgstr "" #: glade/fics_lounge.glade:2247 msgid "Send all seeks" msgstr "" #: glade/fics_lounge.glade:2301 msgid "Send seek" msgstr "" #: glade/fics_lounge.glade:2337 msgid "Create Seek" msgstr "" #: glade/fics_lounge.glade:2353 msgid "_Seeks / Challenges" msgstr "" #: glade/fics_lounge.glade:2374 lib/pychess/ic/ICLounge.py:472 #: lib/pychess/ic/ICLounge.py:670 lib/pychess/ic/ICLounge.py:1357 #: lib/pychess/ic/ICLounge.py:1358 msgid "Rating" msgstr "Рейтинг" #: glade/fics_lounge.glade:2399 msgid "Time" msgstr "Час" #: glade/fics_lounge.glade:2419 msgid "Seek _Graph" msgstr "" #: glade/fics_lounge.glade:2444 msgid "0 Players Ready" msgstr "" #: glade/fics_lounge.glade:2496 msgid "Challenge" msgstr "Змагання" #: glade/fics_lounge.glade:2549 glade/fics_lounge.glade:2735 msgid "Observe" msgstr "" #: glade/fics_lounge.glade:2602 msgid "Start Private Chat" msgstr "" #: glade/fics_lounge.glade:2659 msgid "_Player List" msgstr "_Список гравців" #: glade/fics_lounge.glade:2792 msgid "_Game List" msgstr "_Список ігор" #: glade/fics_lounge.glade:2847 msgid "_My games" msgstr "" #: glade/fics_lounge.glade:2904 glade/PyChess.glade:841 msgid "Offer _Resume" msgstr "" #: glade/fics_lounge.glade:2962 glade/PyChess.glade:880 msgid "R_esign" msgstr "" #: glade/fics_lounge.glade:3006 glade/PyChess.glade:820 msgid "Offer _Draw" msgstr "" #: glade/fics_lounge.glade:3050 msgid "Offer A_bort" msgstr "" #: glade/fics_lounge.glade:3107 msgid "Pre_view" msgstr "" #: glade/fics_lounge.glade:3151 msgid "Examine" msgstr "" #: glade/fics_lounge.glade:3208 msgid "_Archived" msgstr "" #: glade/fics_lounge.glade:3313 msgid "News" msgstr "Новини" #: glade/fics_lounge.glade:3345 msgid "Show Console" msgstr "" #: glade/fics_lounge.glade:3359 msgid "Show _Chat" msgstr "Показати _чат" #: glade/fics_lounge.glade:3373 msgid "_Log Off" msgstr "" #: glade/fics_lounge.glade:3393 msgid "Tools" msgstr "Утиліти" #: glade/fics_lounge.glade:3428 msgid "Asymmetric Random " msgstr "" #: glade/findbar.glade:6 msgid "window1" msgstr "" #: glade/findbar.glade:21 msgid "0 of 0" msgstr "0 з 0" #: glade/findbar.glade:66 msgid "Search:" msgstr "Пошук:" #: glade/findbar.glade:134 msgid "_Previous" msgstr "" #: glade/findbar.glade:192 msgid "_Next" msgstr "" #: glade/newInOut.glade:45 lib/pychess/widgets/newGameDialog.py:445 msgid "New Game" msgstr "Нова гра" #: glade/newInOut.glade:108 msgid "_Start Game" msgstr "_Почати гру" #: glade/newInOut.glade:130 msgid "Copy FEN" msgstr "" #: glade/newInOut.glade:143 msgid "Clear" msgstr "" #: glade/newInOut.glade:156 msgid "Paste FEN" msgstr "" #: glade/newInOut.glade:257 msgid "_Black player:" msgstr "" #: glade/newInOut.glade:274 msgid "_White player:" msgstr "" #: glade/newInOut.glade:385 msgid "Players" msgstr "Гравці" #: glade/newInOut.glade:436 msgid "_Untimed" msgstr "" #: glade/newInOut.glade:475 msgid "Blitz: 5 min" msgstr "" #: glade/newInOut.glade:526 msgid "Rapid: 15 min + 10 sec/move" msgstr "" #: glade/newInOut.glade:575 msgid "Normal: 40 min + 15 sec/move" msgstr "" #: glade/newInOut.glade:684 msgid "_Play Normal chess" msgstr "" #: glade/newInOut.glade:724 msgid "Play Fischer Random chess" msgstr "" #: glade/newInOut.glade:774 msgid "Play Losers chess" msgstr "" #: glade/newInOut.glade:919 msgid "Open Game" msgstr "Відкрити гру" #: glade/newInOut.glade:1162 msgid "Initial Position" msgstr "" #: glade/newInOut.glade:1219 msgid "Enter Game Notation" msgstr "" #: glade/newInOut.glade:1314 msgid "Halfmove clock" msgstr "" #: glade/newInOut.glade:1327 msgid "En passant line" msgstr "" #: glade/newInOut.glade:1339 msgid "Side to move" msgstr "" #: glade/newInOut.glade:1351 msgid "Move number" msgstr "" #: glade/newInOut.glade:1361 msgid "Black O-O" msgstr "" #: glade/newInOut.glade:1375 msgid "Black O-O-O" msgstr "" #: glade/newInOut.glade:1389 msgid "White O-O-O" msgstr "" #: glade/newInOut.glade:1403 msgid "White O-O" msgstr "" #: glade/promotion.glade:7 msgid "Promotion" msgstr "" #: glade/promotion.glade:49 lib/pychess/Utils/repr.py:12 msgid "Queen" msgstr "Королева" #: glade/promotion.glade:95 lib/pychess/Utils/repr.py:12 msgid "Rook" msgstr "" #: glade/promotion.glade:141 lib/pychess/Utils/repr.py:12 msgid "Bishop" msgstr "Слон" #: glade/promotion.glade:187 lib/pychess/Utils/repr.py:12 msgid "Knight" msgstr "" #: glade/promotion.glade:233 lib/pychess/Utils/repr.py:12 msgid "King" msgstr "" #: glade/promotion.glade:265 msgid "Promote pawn to what?" msgstr "" #: glade/PyChess.glade:9 msgid "Chess client" msgstr "" #: glade/PyChess.glade:44 msgid "Game information" msgstr "" #: glade/PyChess.glade:164 msgid "Event:" msgstr "" #: glade/PyChess.glade:178 msgid "Site:" msgstr "Сайт:" #: glade/PyChess.glade:204 msgid "Round:" msgstr "Раунд:" #: glade/PyChess.glade:237 msgid "White:" msgstr "" #: glade/PyChess.glade:249 msgid "Black:" msgstr "" #: glade/PyChess.glade:302 msgid "Game data" msgstr "" #: glade/PyChess.glade:357 msgid "Date of game" msgstr "" #: glade/PyChess.glade:495 msgid "_Game" msgstr "_Гра" #: glade/PyChess.glade:502 msgid "_New Game" msgstr "_Нова гра" #: glade/PyChess.glade:515 msgid "Play _Internet Chess" msgstr "" #: glade/PyChess.glade:534 msgid "_Load Game" msgstr "_Завантажити гру" #: glade/PyChess.glade:550 msgid "Load _Recent Game" msgstr "" #: glade/PyChess.glade:558 msgid "Open _Database" msgstr "" #: glade/PyChess.glade:569 lib/pychess/widgets/newGameDialog.py:615 msgid "Setup Position" msgstr "" #: glade/PyChess.glade:579 msgid "Enter Game _Notation" msgstr "" #: glade/PyChess.glade:592 msgid "_Save Game" msgstr "_Зберегти гру" #: glade/PyChess.glade:606 msgid "Save Game _As" msgstr "Зберегти гру _як" #: glade/PyChess.glade:624 msgid "Share Game" msgstr "" #: glade/PyChess.glade:630 msgid "_Export Position" msgstr "" #: glade/PyChess.glade:644 msgid "_Analyze Game" msgstr "" #: glade/PyChess.glade:678 msgid "Player _Rating" msgstr "_Рейтинг гравця" #: glade/PyChess.glade:723 msgid "_Edit" msgstr "" #: glade/PyChess.glade:734 msgid "_Copy PGN" msgstr "" #: glade/PyChess.glade:746 msgid "_Copy FEN" msgstr "" #: glade/PyChess.glade:763 msgid "_Engines" msgstr "" #: glade/PyChess.glade:789 msgid "_Actions" msgstr "_Дії" #: glade/PyChess.glade:800 msgid "Offer _Abort" msgstr "" #: glade/PyChess.glade:810 msgid "Offer Ad_journment" msgstr "" #: glade/PyChess.glade:831 msgid "Offer _Pause" msgstr "" #: glade/PyChess.glade:847 msgid "Offer _Undo" msgstr "" #: glade/PyChess.glade:870 msgid "_Call Flag" msgstr "" #: glade/PyChess.glade:890 msgid "Ask to _Move" msgstr "" #: glade/PyChess.glade:905 msgid "Auto Call _Flag" msgstr "" #: glade/PyChess.glade:918 msgid "_View" msgstr "" #: glade/PyChess.glade:925 msgid "_Rotate Board" msgstr "" #: glade/PyChess.glade:939 msgid "_Fullscreen" msgstr "_Весь екран" #: glade/PyChess.glade:952 msgid "Leave _Fullscreen" msgstr "" #: glade/PyChess.glade:969 msgid "_Show Sidepanels" msgstr "" #: glade/PyChess.glade:980 msgid "_Log Viewer" msgstr "_Переглядач журналу" #: glade/PyChess.glade:997 msgid "_Hint mode" msgstr "" #: glade/PyChess.glade:1009 msgid "Sp_y mode" msgstr "" #: glade/PyChess.glade:1024 msgid "_Help" msgstr "_Допомога" #: glade/PyChess.glade:1034 msgid "About Chess" msgstr "Про Шахи" #: glade/PyChess.glade:1043 msgid "How to Play" msgstr "" #: glade/PyChess.glade:1052 msgid "Translate PyChess" msgstr "Перекласти PyChess" #: glade/PyChess.glade:1058 msgid "Tip of the Day" msgstr "Порада дня" #: glade/PyChess.glade:1153 msgid "Default" msgstr "" #: glade/PyChess.glade:1156 msgid "Knights" msgstr "" #: glade/PyChess.glade:1167 lib/pychess/widgets/preferencesDialog.py:349 msgid "Beep" msgstr "" #: glade/PyChess.glade:1170 lib/pychess/widgets/preferencesDialog.py:350 msgid "Select sound file..." msgstr "" #: glade/PyChess.glade:1173 lib/pychess/widgets/preferencesDialog.py:348 msgid "No sound" msgstr "" #: glade/PyChess.glade:1180 msgid "Preferences" msgstr "Налаштування" #: glade/PyChess.glade:1218 msgid "The displayed name of the first human player, e.g., John." msgstr "" #: glade/PyChess.glade:1230 msgid "Name of _first human player:" msgstr "" #: glade/PyChess.glade:1259 msgid "The displayed name of the guest player, e.g., Mary." msgstr "" #: glade/PyChess.glade:1271 msgid "Name of s_econd human player:" msgstr "" #: glade/PyChess.glade:1307 msgid "_Hide tabs when only one game is open" msgstr "" #: glade/PyChess.glade:1312 msgid "" "If set, this hides the tab in the top of the playing window, when it is not " "needed." msgstr "" #: glade/PyChess.glade:1326 msgid "_Use main app closer [x] to close all games" msgstr "" #: glade/PyChess.glade:1331 msgid "" "If set, clicking on main application window closer first time it closes all " "games." msgstr "" #: glade/PyChess.glade:1345 msgid "Auto _rotate board to current human player" msgstr "" #: glade/PyChess.glade:1350 msgid "" "If set, the board will turn after each move, to show the natural view for " "the current player." msgstr "" #: glade/PyChess.glade:1364 msgid "Auto _promote to queen" msgstr "" #: glade/PyChess.glade:1369 msgid "If set, pawn promotes to queen without promotion dialog selection." msgstr "" #: glade/PyChess.glade:1383 msgid "Face _to Face display mode" msgstr "" #: glade/PyChess.glade:1388 msgid "" "If set, the black pieces will be head down, suitable for playing against " "friends on mobile devices." msgstr "" #: glade/PyChess.glade:1402 msgid "Sho_w cords" msgstr "" #: glade/PyChess.glade:1407 msgid "" "If set, the playing board will display labels and ranks for each chess " "field. These are usable in chess notation." msgstr "" #: glade/PyChess.glade:1421 msgid "Show _captured pieces" msgstr "" #: glade/PyChess.glade:1426 msgid "If set, the captured figurines will be shown next to the board." msgstr "" #: glade/PyChess.glade:1440 msgid "Prefer figures in _notation" msgstr "" #: glade/PyChess.glade:1445 msgid "" "If set, PyChess will use figures to express moved pieces, rather than " "uppercase letters." msgstr "" #: glade/PyChess.glade:1464 msgid "If set, PyChess will colorize suboptimal analyzed moves with red." msgstr "" #: glade/PyChess.glade:1477 msgid "Show elapsed move times" msgstr "" #: glade/PyChess.glade:1482 msgid "If set, the elapsed time that a player used for the move is shown." msgstr "" #: glade/PyChess.glade:1500 msgid "If set, the hint analyzer engine evaluation value is shown." msgstr "" #: glade/PyChess.glade:1526 msgid "General Options" msgstr "" #: glade/PyChess.glade:1560 msgid "F_ull board animation" msgstr "" #: glade/PyChess.glade:1565 msgid "Animate pieces, board rotation and more. Use this on fast machines." msgstr "" #: glade/PyChess.glade:1579 msgid "Only animate _moves" msgstr "" #: glade/PyChess.glade:1584 msgid "Only animate piece moves." msgstr "" #: glade/PyChess.glade:1599 msgid "No _animation" msgstr "" #: glade/PyChess.glade:1604 msgid "Never use animation. Use this on slow machines." msgstr "" #: glade/PyChess.glade:1632 msgid "Animation" msgstr "" #: glade/PyChess.glade:1651 msgid "_General" msgstr "" #: glade/PyChess.glade:1692 msgid "Use opening _book" msgstr "" #: glade/PyChess.glade:1697 msgid "If set, PyChess will suggest best opening moves on hint panel." msgstr "" #: glade/PyChess.glade:1724 msgid "Polyglot book file:" msgstr "" #: glade/PyChess.glade:1768 msgid "Use _local tablebases" msgstr "" #: glade/PyChess.glade:1773 msgid "" "If set, PyChess will show game results for different moves in positions containing 6 or less pieces.\n" "You can download tablebase files from:\n" "http://www.olympuschess.com/egtb/gaviota/" msgstr "" #: glade/PyChess.glade:1803 msgid "Gaviota TB path:" msgstr "" #: glade/PyChess.glade:1843 msgid "Use _online tablebases" msgstr "" #: glade/PyChess.glade:1848 msgid "" "If set, PyChess will show game results for different moves in positions containing 6 or less pieces.\n" "It will search positions from http://www.k4it.de/" msgstr "" #: glade/PyChess.glade:1870 msgid "Opening, endgame" msgstr "" #: glade/PyChess.glade:1904 msgid "Use _analyzer" msgstr "" #: glade/PyChess.glade:1946 msgid "" "The analyzer will run in the background and analyze the game. This is " "necessary for the hint mode to work" msgstr "" #: glade/PyChess.glade:1978 msgid "Use _inverted analyzer" msgstr "" #: glade/PyChess.glade:2020 msgid "" "The inverse analyzer will analyze the game as if your opponent was to move. " "This is necessary for the spy mode to work" msgstr "" #: glade/PyChess.glade:2096 msgid "Analyzing" msgstr "" #: glade/PyChess.glade:2118 msgid "_Hints" msgstr "" #: glade/PyChess.glade:2263 msgid "Uninstall" msgstr "" #: glade/PyChess.glade:2317 msgid "Ac_tive" msgstr "" #: glade/PyChess.glade:2367 msgid "Installed Sidepanels" msgstr "" #: glade/PyChess.glade:2382 msgid "Side_panels" msgstr "" #: glade/PyChess.glade:2440 msgid "Light Squares :" msgstr "" #: glade/PyChess.glade:2479 msgid "Dark Squares :" msgstr "" #: glade/PyChess.glade:2515 msgid "Reset Default Colours" msgstr "" #: glade/PyChess.glade:2551 msgid "Board Colours" msgstr "" #: glade/PyChess.glade:2610 msgid "Chess Sets" msgstr "" #: glade/PyChess.glade:2634 msgid "Themes" msgstr "Теми" #: glade/PyChess.glade:2659 msgid "_Use sounds in PyChess" msgstr "" #: glade/PyChess.glade:2982 msgid "A player _checks:" msgstr "" #: glade/PyChess.glade:2997 msgid "A player _moves:" msgstr "Кроки _гравця:" #: glade/PyChess.glade:3010 msgid "Game is _drawn:" msgstr "" #: glade/PyChess.glade:3025 msgid "Game is _lost:" msgstr "" #: glade/PyChess.glade:3040 msgid "Game is _won:" msgstr "" #: glade/PyChess.glade:3055 msgid "A player c_aptures:" msgstr "" #: glade/PyChess.glade:3084 msgid "Game is _set-up:" msgstr "" #: glade/PyChess.glade:3136 msgid "_Observed moves:" msgstr "" #: glade/PyChess.glade:3151 msgid "Observed _ends:" msgstr "" #: glade/PyChess.glade:3265 msgid "Short on _time:" msgstr "" #: glade/PyChess.glade:3317 msgid "_Invalid move:" msgstr "" #: glade/PyChess.glade:3369 msgid "Activate alarm when _remaining sec is:" msgstr "" #: glade/PyChess.glade:3416 msgid "Play Sound When..." msgstr "" #: glade/PyChess.glade:3438 msgid "_Sounds" msgstr "" #: glade/PyChess.glade:3463 msgid "_Auto save finished games" msgstr "" #: glade/PyChess.glade:3497 msgid "Save files to:" msgstr "" #: glade/PyChess.glade:3525 msgid "Use name format:" msgstr "" #: glade/PyChess.glade:3569 msgid "Names: #n1, #n2" msgstr "" #: glade/PyChess.glade:3582 msgid "Year, month, day: #y, #m, #d" msgstr "" #: glade/PyChess.glade:3619 msgid "Save elapsed move _times" msgstr "" #: glade/PyChess.glade:3644 msgid "Save analyzing engine _evaluation values" msgstr "" #: glade/PyChess.glade:3669 msgid "Save _own games only" msgstr "" #: glade/PyChess.glade:3698 msgid "Save" msgstr "" #: glade/PyChess.glade:3728 msgid "uci" msgstr "" #: glade/PyChess.glade:3731 msgid "xboard" msgstr "" #: glade/PyChess.glade:3739 msgid "Manage engines" msgstr "" #: glade/PyChess.glade:3837 msgid "Command:" msgstr "" #: glade/PyChess.glade:3851 msgid "Protocol:" msgstr "" #: glade/PyChess.glade:3865 msgid "Parameters:" msgstr "Параметри:" #: glade/PyChess.glade:3878 msgid "Command line parameters needed by the engine." msgstr "" #: glade/PyChess.glade:3903 msgid "" "Engines use uci or xboard communication protocol to talk to the GUI.\n" "If it can use both you can set here which one you like." msgstr "" #: glade/PyChess.glade:3929 msgid "Working directory:" msgstr "" #: glade/PyChess.glade:3942 msgid "The directory where the engine will be started from." msgstr "" #: glade/saveGamesDialog.glade:7 msgid "Quit PyChess" msgstr "Покинути PyChess" #: glade/saveGamesDialog.glade:24 lib/pychess/widgets/ionest.py:424 msgid "Close _without Saving" msgstr "" #: glade/saveGamesDialog.glade:83 msgid "_Save %d documents" msgstr "" #: glade/saveGamesDialog.glade:141 msgid "" "There are %d games with unsaved moves. Save changes before " "closing?" msgstr "" #: glade/saveGamesDialog.glade:161 msgid "Select the games you want to save:" msgstr "" #: glade/saveGamesDialog.glade:204 msgid "If you don't save, new changes to your games will be permanently lost." msgstr "" #: glade/taskers.glade:126 msgid "_Opponent:" msgstr "" #: glade/taskers.glade:154 msgid "_Your Color:" msgstr "" #: glade/taskers.glade:219 msgid "_Start Game" msgstr "" #: glade/taskers.glade:338 msgid "Log on as G_uest" msgstr "" #: glade/taskers.glade:410 msgid "Ha_ndle:" msgstr "" #: glade/taskers.glade:469 msgid "_Connect to server" msgstr "" #: glade/tipoftheday.glade:7 msgid "Tip Of The day" msgstr "" #: glade/tipoftheday.glade:62 msgid "Show tips at startup" msgstr "" #: lib/pychess/Main.py:302 msgid "http://en.wikipedia.org/wiki/Chess" msgstr "http://en.wikipedia.org/wiki/Chess" #: lib/pychess/Main.py:305 msgid "http://en.wikipedia.org/wiki/Rules_of_chess" msgstr "" #: lib/pychess/Main.py:370 lib/pychess/widgets/gamenanny.py:80 msgid "Welcome" msgstr "" #: lib/pychess/Database/gamelist.py:40 msgid "Id" msgstr "" #: lib/pychess/Database/gamelist.py:40 msgid "W Elo" msgstr "" #: lib/pychess/Database/gamelist.py:40 msgid "B Elo" msgstr "" #: lib/pychess/Database/gamelist.py:41 msgid "Result" msgstr "" #: lib/pychess/Database/gamelist.py:41 msgid "Event" msgstr "" #: lib/pychess/Database/gamelist.py:41 msgid "Site" msgstr "" #: lib/pychess/Database/gamelist.py:41 msgid "Round" msgstr "" #: lib/pychess/Database/gamelist.py:41 msgid "Date" msgstr "" #: lib/pychess/Database/gamelist.py:41 msgid "ECO" msgstr "" #: lib/pychess/Database/gamelist.py:62 msgid "PyChess Game Database" msgstr "" #: lib/pychess/Database/PgnImport.py:188 #, python-format msgid "The game #%s can't be loaded, because of an error parsing FEN" msgstr "" #: lib/pychess/ic/FICSConnection.py:139 msgid "The connection was broken - got \"end of file\" message" msgstr "" #: lib/pychess/ic/FICSConnection.py:140 #, python-format msgid "'%s' is not a registered name" msgstr "" #: lib/pychess/ic/FICSConnection.py:141 msgid "" "The entered password was invalid.\n" "If you forgot your password, go to http://www.freechess.org/password to request a new one over email." msgstr "" #: lib/pychess/ic/FICSConnection.py:145 #, python-format msgid "Sorry '%s' is already logged in" msgstr "" #: lib/pychess/ic/FICSConnection.py:146 #, python-format msgid "'%s' is a registered name. If it is yours, type the password." msgstr "" #: lib/pychess/ic/FICSConnection.py:147 msgid "" "Due to abuse problems, guest connections have been prevented.\n" "You can still register on http://www.freechess.org" msgstr "" #: lib/pychess/ic/FICSConnection.py:166 msgid "Connecting to server" msgstr "" #: lib/pychess/ic/FICSConnection.py:181 msgid "Logging on to server" msgstr "" #: lib/pychess/ic/FICSConnection.py:239 msgid "Setting up environment" msgstr "" #: lib/pychess/ic/FICSObjects.py:35 lib/pychess/ic/FICSObjects.py:47 #, python-format msgid "%(player)s is %(status)s" msgstr "" #: lib/pychess/ic/FICSObjects.py:46 msgid "not playing" msgstr "" #: lib/pychess/ic/FICSObjects.py:54 lib/pychess/ic/ICLounge.py:1136 #: lib/pychess/ic/ICLounge.py:2209 lib/pychess/ic/__init__.py:98 #: lib/pychess/widgets/newGameDialog.py:153 msgid "Blitz" msgstr "" #: lib/pychess/ic/FICSObjects.py:58 lib/pychess/ic/ICLounge.py:1137 #: lib/pychess/ic/ICLounge.py:2209 lib/pychess/ic/__init__.py:100 msgid "Lightning" msgstr "" #: lib/pychess/ic/FICSObjects.py:60 lib/pychess/Variants/atomic.py:15 msgid "Atomic" msgstr "" #: lib/pychess/ic/FICSObjects.py:62 lib/pychess/Variants/bughouse.py:9 msgid "Bughouse" msgstr "" #: lib/pychess/ic/FICSObjects.py:64 lib/pychess/Variants/crazyhouse.py:9 msgid "Crazyhouse" msgstr "" #: lib/pychess/ic/FICSObjects.py:66 lib/pychess/Variants/losers.py:9 msgid "Losers" msgstr "" #: lib/pychess/ic/FICSObjects.py:68 lib/pychess/Variants/suicide.py:12 msgid "Suicide" msgstr "" #: lib/pychess/ic/FICSObjects.py:70 lib/pychess/ic/__init__.py:129 msgid "Wild" msgstr "" #: lib/pychess/ic/FICSObjects.py:117 msgid "Online" msgstr "Онлайн" #: lib/pychess/ic/FICSObjects.py:118 lib/pychess/ic/FICSObjects.py:143 msgid "Offline" msgstr "Офлайн" #: lib/pychess/ic/FICSObjects.py:133 msgid "Available" msgstr "" #: lib/pychess/ic/FICSObjects.py:135 msgid "Playing" msgstr "" #: lib/pychess/ic/FICSObjects.py:141 msgid "Idle" msgstr "" #: lib/pychess/ic/FICSObjects.py:145 msgid "Examining" msgstr "" #: lib/pychess/ic/FICSObjects.py:147 msgid "Not Available" msgstr "" #: lib/pychess/ic/FICSObjects.py:149 msgid "Running Simul Match" msgstr "" #: lib/pychess/ic/FICSObjects.py:151 msgid "In Tournament" msgstr "" #: lib/pychess/ic/FICSObjects.py:308 lib/pychess/ic/FICSObjects.py:492 #: lib/pychess/ic/ICLounge.py:2278 msgid "Unrated" msgstr "" #: lib/pychess/ic/FICSObjects.py:491 lib/pychess/ic/ICLounge.py:670 #: lib/pychess/ic/ICLounge.py:1358 lib/pychess/ic/ICLounge.py:1558 #: lib/pychess/ic/ICLounge.py:2113 msgid "Rated" msgstr "" #: lib/pychess/ic/FICSObjects.py:498 lib/pychess/ic/ICLounge.py:2098 #, python-format msgid "%d min" msgstr "%d хв" #: lib/pychess/ic/FICSObjects.py:500 #, python-format msgid " + %d sec" msgstr " + %d с" #: lib/pychess/ic/FICSObjects.py:517 #, python-format msgid "%(player)s plays %(color)s" msgstr "" #: lib/pychess/ic/FICSObjects.py:519 lib/pychess/ic/ICLounge.py:909 msgid "white" msgstr "" #: lib/pychess/ic/FICSObjects.py:519 lib/pychess/ic/ICLounge.py:909 msgid "black" msgstr "" #: lib/pychess/ic/FICSObjects.py:565 msgid "This is a continuation of an adjourned match" msgstr "" #: lib/pychess/ic/FICSObjects.py:654 msgid "Opponent Rating" msgstr "" #: lib/pychess/ic/FICSObjects.py:656 msgid "Manual Accept" msgstr "" #: lib/pychess/ic/FICSObjects.py:810 msgid "Private" msgstr "" #: lib/pychess/ic/FICSObjects.py:930 lib/pychess/ic/ICLounge.py:527 #: lib/pychess/Savers/epd.py:139 msgid "Unknown" msgstr "" #: lib/pychess/ic/ICLogon.py:159 lib/pychess/ic/ICLogon.py:165 msgid "Connection Error" msgstr "" #: lib/pychess/ic/ICLogon.py:161 msgid "Log on Error" msgstr "" #: lib/pychess/ic/ICLogon.py:163 msgid "Connection was closed" msgstr "" #: lib/pychess/ic/ICLogon.py:169 msgid "Address Error" msgstr "" #: lib/pychess/ic/ICLogon.py:172 msgid "Auto-logout" msgstr "" #: lib/pychess/ic/ICLogon.py:173 msgid "You have been logged out because you were idle more than 60 minutes" msgstr "" #: lib/pychess/ic/ICLounge.py:222 msgid "You have to set kibitz on to see bot messages here." msgstr "" #: lib/pychess/ic/ICLounge.py:241 msgid "" "You may only have 3 outstanding seeks at the same time. If you want to add a" " new seek you must clear your currently active seeks. Clear your seeks?" msgstr "" #: lib/pychess/ic/ICLounge.py:258 msgid "You can't touch this! You are examining a game." msgstr "" #: lib/pychess/ic/ICLounge.py:270 msgid " has declined your offer for a match" msgstr "" #: lib/pychess/ic/ICLounge.py:283 msgid " is censoring you" msgstr "" #: lib/pychess/ic/ICLounge.py:296 msgid " noplay listing you" msgstr "" #: lib/pychess/ic/ICLounge.py:311 msgid " uses a formula not fitting your match request:" msgstr "" #: lib/pychess/ic/ICLounge.py:325 msgid "to manual accept" msgstr "" #: lib/pychess/ic/ICLounge.py:327 msgid "to automatic accept" msgstr "" #: lib/pychess/ic/ICLounge.py:329 msgid "rating range now" msgstr "" #: lib/pychess/ic/ICLounge.py:330 msgid "Seek updated" msgstr "" #: lib/pychess/ic/ICLounge.py:342 msgid "Your seeks have been removed" msgstr "" #: lib/pychess/ic/ICLounge.py:363 msgid " has arrived" msgstr "" #: lib/pychess/ic/ICLounge.py:370 msgid " has departed" msgstr "" #: lib/pychess/ic/ICLounge.py:374 msgid " is present" msgstr "" #: lib/pychess/ic/ICLounge.py:391 sidepanel/chatPanel.py:17 msgid "Chat" msgstr "Чат" #: lib/pychess/ic/ICLounge.py:472 sidepanel/bookPanel.py:366 msgid "Win" msgstr "" #: lib/pychess/ic/ICLounge.py:472 sidepanel/bookPanel.py:360 msgid "Draw" msgstr "" #: lib/pychess/ic/ICLounge.py:472 sidepanel/bookPanel.py:363 msgid "Loss" msgstr "" #: lib/pychess/ic/ICLounge.py:482 msgid "" "On FICS, your \"Wild\" rating encompasses all of the following variants at " "all time controls:\n" msgstr "" #: lib/pychess/ic/ICLounge.py:494 msgid "Sanctions" msgstr "" #: lib/pychess/ic/ICLounge.py:499 msgid "Email" msgstr "" #: lib/pychess/ic/ICLounge.py:504 msgid "Spent" msgstr "" #: lib/pychess/ic/ICLounge.py:506 msgid "online in total" msgstr "" #: lib/pychess/ic/ICLounge.py:512 msgid "Ping" msgstr "" #: lib/pychess/ic/ICLounge.py:517 msgid "Connecting" msgstr "" #: lib/pychess/ic/ICLounge.py:544 msgid "" "You are currently logged in as a guest.\n" "A guest can't play rated games and therefore isn't able to play as many of the types of matches offered as a registered user. To register an account, go to http://www.freechess.org/Register/index.html." msgstr "" #: lib/pychess/ic/ICLounge.py:669 lib/pychess/ic/ICLounge.py:1136 msgid "Name" msgstr "" #: lib/pychess/ic/ICLounge.py:670 lib/pychess/ic/ICLounge.py:1358 #: lib/pychess/ic/ICLounge.py:1558 msgid "Type" msgstr "" #: lib/pychess/ic/ICLounge.py:670 lib/pychess/ic/ICLounge.py:1558 msgid "Clock" msgstr "" #: lib/pychess/ic/ICLounge.py:726 lib/pychess/ic/ICLounge.py:923 #: lib/pychess/Players/Human.py:250 msgid "Accept" msgstr "Прийняти" #: lib/pychess/ic/ICLounge.py:728 msgid "Assess" msgstr "" #: lib/pychess/ic/ICLounge.py:734 msgid "Archived" msgstr "" #: lib/pychess/ic/ICLounge.py:848 #, python-format msgid "Active seeks: %d" msgstr "" #: lib/pychess/ic/ICLounge.py:897 #, python-format msgid "" " would like to resume your adjourned %(time)s %(gametype)s " "game." msgstr "" #: lib/pychess/ic/ICLounge.py:902 #, python-format msgid "" " challenges you to a %(time)s %(rated)s %(gametype)s game" msgstr "" #: lib/pychess/ic/ICLounge.py:907 #, python-format msgid " where %(player)s plays %(color)s." msgstr "" #: lib/pychess/ic/ICLounge.py:924 lib/pychess/Players/Human.py:251 msgid "Decline" msgstr "Відхилити" #: lib/pychess/ic/ICLounge.py:1065 msgid " min" msgstr "" #: lib/pychess/ic/ICLounge.py:1137 msgid "Status" msgstr "" #: lib/pychess/ic/ICLounge.py:1203 lib/pychess/ic/ICLounge.py:1233 #, python-format msgid "Players: %d" msgstr "" #: lib/pychess/ic/ICLounge.py:1469 #, python-format msgid "Games running: %d" msgstr "" #: lib/pychess/ic/ICLounge.py:1559 msgid "Date/Time" msgstr "" #: lib/pychess/ic/ICLounge.py:1614 #, python-format msgid "" " with whom you have an adjourned %(timecontrol)s %(gametype)s " "game is online." msgstr "" #: lib/pychess/ic/ICLounge.py:1635 msgid "Request Continuation" msgstr "" #: lib/pychess/ic/ICLounge.py:1637 msgid "Examine Adjourned Game" msgstr "" #: lib/pychess/ic/ICLounge.py:1965 msgid "" "The chain button is disabled because you are logged in as a guest. Guests " "can't establish ratings, and the chain button's state has no effect when " "there is no rating to which to tie \"Opponent Strength\" to" msgstr "" #: lib/pychess/ic/ICLounge.py:2006 msgid "Challenge: " msgstr "" #: lib/pychess/ic/ICLounge.py:2044 msgid "If set you can refuse players accepting your seek" msgstr "" #: lib/pychess/ic/ICLounge.py:2048 lib/pychess/ic/ICLounge.py:2051 msgid "This option is not applicable because you're challenging a player" msgstr "" #: lib/pychess/ic/ICLounge.py:2064 msgid "Edit Seek: " msgstr "" #: lib/pychess/ic/ICLounge.py:2095 #, python-format msgid "%(minutes)d min + %(gain)d sec/move" msgstr "" #: lib/pychess/ic/ICLounge.py:2116 msgid "Manual" msgstr "" #: lib/pychess/ic/ICLounge.py:2256 msgid "Any strength" msgstr "" #: lib/pychess/ic/ICLounge.py:2308 msgid "You can't play rated games because you are logged in as a guest" msgstr "" #: lib/pychess/ic/ICLounge.py:2312 msgid "You can't play rated games because \"Untimed\" is checked, " msgstr "" #: lib/pychess/ic/ICLounge.py:2313 msgid "and on FICS, untimed games can't be rated" msgstr "" #: lib/pychess/ic/ICLounge.py:2317 msgid "This option is not available because you're challenging a guest, " msgstr "" #: lib/pychess/ic/ICLounge.py:2318 msgid "and guests can't play rated games" msgstr "" #: lib/pychess/ic/ICLounge.py:2332 lib/pychess/Variants/shuffle.py:16 #: lib/pychess/widgets/newGameDialog.py:266 msgid "Shuffle" msgstr "" #: lib/pychess/ic/ICLounge.py:2333 lib/pychess/widgets/newGameDialog.py:267 msgid "Other (standard rules)" msgstr "" #: lib/pychess/ic/ICLounge.py:2334 lib/pychess/widgets/newGameDialog.py:268 msgid "Other (non standard rules)" msgstr "" #: lib/pychess/ic/ICLounge.py:2421 msgid "You can't select a variant because \"Untimed\" is checked, " msgstr "" #: lib/pychess/ic/ICLounge.py:2422 msgid "and on FICS, untimed games have to be normal chess rules" msgstr "" #: lib/pychess/ic/ICLounge.py:2454 msgid "Change Tolerance" msgstr "" #: lib/pychess/ic/__init__.py:102 msgid "Examined" msgstr "" #: lib/pychess/ic/__init__.py:103 msgid "Other" msgstr "" #: lib/pychess/ic/__init__.py:182 msgid "Administrator" msgstr "" #: lib/pychess/ic/__init__.py:182 msgid "Blindfold Account" msgstr "" #: lib/pychess/ic/__init__.py:182 msgid "Computer" msgstr "" #: lib/pychess/ic/__init__.py:183 msgid "Team Account" msgstr "" #: lib/pychess/ic/__init__.py:183 msgid "Unregistered" msgstr "" #: lib/pychess/ic/__init__.py:183 msgid "Chess Advisor" msgstr "" #: lib/pychess/ic/__init__.py:184 msgid "Service Representative" msgstr "" #: lib/pychess/ic/__init__.py:184 msgid "Tournament Director" msgstr "" #: lib/pychess/ic/__init__.py:184 msgid "Mamer Manager" msgstr "" #: lib/pychess/ic/__init__.py:185 msgid "Grand Master" msgstr "" #: lib/pychess/ic/__init__.py:185 msgid "International Master" msgstr "" #: lib/pychess/ic/__init__.py:185 msgid "FIDE Master" msgstr "" #: lib/pychess/ic/__init__.py:186 msgid "Woman Grand Master" msgstr "" #: lib/pychess/ic/__init__.py:186 msgid "Woman International Master" msgstr "" #: lib/pychess/ic/__init__.py:186 msgid "Woman FIDE Master" msgstr "" #: lib/pychess/ic/__init__.py:187 msgid "Dummy Account" msgstr "" #: lib/pychess/ic/__init__.py:191 msgid "*" msgstr "*" #: lib/pychess/ic/__init__.py:191 lib/pychess/Utils/repr.py:14 msgid "B" msgstr "" #: lib/pychess/ic/__init__.py:191 msgid "C" msgstr "" #: lib/pychess/ic/__init__.py:192 msgid "T" msgstr "" #: lib/pychess/ic/__init__.py:192 msgid "U" msgstr "" #: lib/pychess/ic/__init__.py:192 msgid "CA" msgstr "" #: lib/pychess/ic/__init__.py:193 msgid "SR" msgstr "" #: lib/pychess/ic/__init__.py:193 msgid "TD" msgstr "" #: lib/pychess/ic/__init__.py:193 msgid "TM" msgstr "" #: lib/pychess/ic/__init__.py:194 msgid "GM" msgstr "" #: lib/pychess/ic/__init__.py:194 msgid "IM" msgstr "" #: lib/pychess/ic/__init__.py:194 msgid "FM" msgstr "" #: lib/pychess/ic/__init__.py:195 msgid "WGM" msgstr "" #: lib/pychess/ic/__init__.py:195 msgid "WIM" msgstr "" #: lib/pychess/ic/__init__.py:195 msgid "WFM" msgstr "" #: lib/pychess/ic/__init__.py:195 msgid "D" msgstr "" #: lib/pychess/ic/__init__.py:195 msgid "H" msgstr "" #: lib/pychess/ic/__init__.py:195 msgid "CM" msgstr "" #: lib/pychess/ic/__init__.py:195 msgid "FA" msgstr "" #: lib/pychess/ic/__init__.py:195 msgid "NM" msgstr "" #: lib/pychess/Players/CECPEngine.py:857 #, python-format msgid "The engine %s reports an error:" msgstr "" #: lib/pychess/Players/Human.py:20 msgid "Your opponent has offered you a draw." msgstr "" #: lib/pychess/Players/Human.py:21 msgid "" "Your opponent has offered you a draw. If you accept this offer, the game " "will end with a score of 1/2 - 1/2." msgstr "" #: lib/pychess/Players/Human.py:23 msgid "Your opponent wants to abort the game." msgstr "" #: lib/pychess/Players/Human.py:24 msgid "" "Your opponent has asked that the game be aborted. If you accept this offer, " "the game will end with no rating change." msgstr "" #: lib/pychess/Players/Human.py:26 msgid "Your opponent wants to adjourn the game." msgstr "" #: lib/pychess/Players/Human.py:27 msgid "" "Your opponent has asked that the game be adjourned. If you accept this " "offer, the game will be adjourned and you can resume it later (when your " "opponent is online and both players agree to resume)." msgstr "" #: lib/pychess/Players/Human.py:29 #, python-format msgid "Your opponent wants to undo %s move(s)." msgstr "" #: lib/pychess/Players/Human.py:30 #, python-format msgid "" "Your opponent has asked that the last %s move(s) be undone. If you accept " "this offer, the game will continue from the earlier position." msgstr "" #: lib/pychess/Players/Human.py:32 msgid "Your opponent wants to pause the game." msgstr "" #: lib/pychess/Players/Human.py:33 msgid "" "Your opponent has asked that the game be paused. If you accept this offer, " "the game clock will be paused until both players agree to resume the game." msgstr "" #: lib/pychess/Players/Human.py:35 msgid "Your opponent wants to resume the game." msgstr "" #: lib/pychess/Players/Human.py:36 msgid "" "Your opponent has asked that the game be resumed. If you accept this offer, " "the game clock will continue from where it was paused." msgstr "" #: lib/pychess/Players/Human.py:40 msgid "The resignation" msgstr "" #: lib/pychess/Players/Human.py:41 msgid "The flag call" msgstr "" #: lib/pychess/Players/Human.py:42 msgid "The draw offer" msgstr "" #: lib/pychess/Players/Human.py:43 msgid "The abort offer" msgstr "" #: lib/pychess/Players/Human.py:44 msgid "The adjourn offer" msgstr "" #: lib/pychess/Players/Human.py:45 msgid "The pause offer" msgstr "" #: lib/pychess/Players/Human.py:46 msgid "The resume offer" msgstr "" #: lib/pychess/Players/Human.py:47 msgid "The offer to switch sides" msgstr "" #: lib/pychess/Players/Human.py:48 msgid "The takeback offer" msgstr "" #: lib/pychess/Players/Human.py:52 msgid "resign" msgstr "" #: lib/pychess/Players/Human.py:53 msgid "call your opponents flag" msgstr "" #: lib/pychess/Players/Human.py:54 msgid "offer a draw" msgstr "" #: lib/pychess/Players/Human.py:55 msgid "offer an abort" msgstr "" #: lib/pychess/Players/Human.py:56 msgid "offer to adjourn" msgstr "" #: lib/pychess/Players/Human.py:57 msgid "offer a pause" msgstr "" #: lib/pychess/Players/Human.py:58 msgid "offer to resume" msgstr "" #: lib/pychess/Players/Human.py:59 msgid "offer to switch sides" msgstr "" #: lib/pychess/Players/Human.py:60 msgid "offer a takeback" msgstr "" #: lib/pychess/Players/Human.py:61 msgid "ask your opponent to move" msgstr "" #: lib/pychess/Players/Human.py:66 msgid "Your opponent is not out of time." msgstr "" #: lib/pychess/Players/Human.py:68 msgid "The clock hasn't been started yet." msgstr "" #: lib/pychess/Players/Human.py:70 msgid "You can't switch colors during the game." msgstr "" #: lib/pychess/Players/Human.py:72 msgid "You have tried to undo too many moves." msgstr "" #: lib/pychess/Players/Human.py:180 msgid "Your opponent asks you to hurry!" msgstr "" #: lib/pychess/Players/Human.py:181 msgid "" "Generally this means nothing, as the game is time-based, but if you want to " "please your opponent, perhaps you should get going." msgstr "" #: lib/pychess/Players/Human.py:259 #, python-format msgid "%s was declined by your opponent" msgstr "" #: lib/pychess/Players/Human.py:260 #, python-format msgid "Resend %s?" msgstr "" #: lib/pychess/Players/Human.py:267 msgid "Resend" msgstr "" #: lib/pychess/Players/Human.py:275 #, python-format msgid "%s was withdrawn by your opponent" msgstr "" #: lib/pychess/Players/Human.py:276 msgid "Your opponent seems to have changed their mind." msgstr "" #: lib/pychess/Players/Human.py:290 #, python-format msgid "Unable to accept %s" msgstr "" #: lib/pychess/Players/Human.py:291 msgid "Probably because it has been withdrawn." msgstr "" #: lib/pychess/Players/Human.py:298 #, python-format msgid "%s returns an error" msgstr "" #: lib/pychess/Savers/chessalpha2.py:12 msgid "Chess Alpha 2 Diagram" msgstr "" #: lib/pychess/Savers/chesspastebin.py:39 msgid "Game shared at " msgstr "" #: lib/pychess/Savers/chesspastebin.py:41 msgid "(Link is available on clipboard.)" msgstr "" #: lib/pychess/Savers/database.py:19 msgid "PyChess database" msgstr "" #: lib/pychess/Savers/epd.py:12 msgid "Chess Position" msgstr "" #: lib/pychess/Savers/fen.py:12 msgid "Simple Chess Position" msgstr "" #: lib/pychess/Savers/fen.py:44 lib/pychess/Savers/pgn.py:329 msgid "The game can't be loaded, because of an error parsing FEN" msgstr "" #: lib/pychess/Savers/pgnbase.py:100 #, python-format msgid "" "The game can't be read to end, because of an error parsing move %(moveno)s " "'%(notation)s'." msgstr "" #: lib/pychess/Savers/pgnbase.py:102 #, python-format msgid "The move failed because %s." msgstr "" #: lib/pychess/Savers/pgnbase.py:110 #, python-format msgid "Error parsing move %(moveno)s %(mstr)s" msgstr "" #: lib/pychess/Savers/pgn.py:28 msgid "Chess Game" msgstr "" #: lib/pychess/Savers/pgn.py:362 msgid "Invalid move." msgstr "" #: lib/pychess/Savers/png.py:15 msgid "Png image" msgstr "" #: lib/pychess/System/ping.py:31 msgid "Destination Host Unreachable" msgstr "" #: lib/pychess/System/ping.py:74 msgid "Died" msgstr "" #: lib/pychess/Utils/GameModel.py:147 msgid "Local Event" msgstr "" #: lib/pychess/Utils/GameModel.py:148 msgid "Local Site" msgstr "" #: lib/pychess/Utils/repr.py:12 msgid "Pawn" msgstr "" #: lib/pychess/Utils/repr.py:14 msgid "P" msgstr "" #: lib/pychess/Utils/repr.py:14 msgid "N" msgstr "" #: lib/pychess/Utils/repr.py:14 msgid "R" msgstr "" #: lib/pychess/Utils/repr.py:14 msgid "Q" msgstr "" #: lib/pychess/Utils/repr.py:14 msgid "K" msgstr "" #: lib/pychess/Utils/repr.py:17 msgid "The game ended in a draw" msgstr "" #: lib/pychess/Utils/repr.py:18 #, python-format msgid "%(white)s won the game" msgstr "" #: lib/pychess/Utils/repr.py:19 #, python-format msgid "%(black)s won the game" msgstr "" #: lib/pychess/Utils/repr.py:20 msgid "The game has been killed" msgstr "" #: lib/pychess/Utils/repr.py:21 msgid "The game has been adjourned" msgstr "" #: lib/pychess/Utils/repr.py:22 msgid "The game has been aborted" msgstr "" #: lib/pychess/Utils/repr.py:26 msgid "Because neither player has sufficient material to mate" msgstr "" #: lib/pychess/Utils/repr.py:27 msgid "Because the same position was repeated three times in a row" msgstr "" #: lib/pychess/Utils/repr.py:28 msgid "Because the last 50 moves brought nothing new" msgstr "" #: lib/pychess/Utils/repr.py:29 msgid "Because both players ran out of time" msgstr "" #: lib/pychess/Utils/repr.py:30 #, python-format msgid "Because %(mover)s stalemated" msgstr "" #: lib/pychess/Utils/repr.py:31 msgid "Because both players agreed to a draw" msgstr "" #: lib/pychess/Utils/repr.py:32 lib/pychess/Utils/repr.py:42 msgid "Because of adjudication by an admin" msgstr "" #: lib/pychess/Utils/repr.py:33 msgid "Because the game exceed the max length" msgstr "" #: lib/pychess/Utils/repr.py:34 #, python-format msgid "" "Because %(white)s ran out of time and %(black)s has insufficient material to" " mate" msgstr "" #: lib/pychess/Utils/repr.py:35 #, python-format msgid "" "Because %(black)s ran out of time and %(white)s has insufficient material to" " mate" msgstr "" #: lib/pychess/Utils/repr.py:36 msgid "Because both players have the same amount of pieces" msgstr "" #: lib/pychess/Utils/repr.py:38 #, python-format msgid "Because %(loser)s resigned" msgstr "" #: lib/pychess/Utils/repr.py:39 #, python-format msgid "Because %(loser)s ran out of time" msgstr "" #: lib/pychess/Utils/repr.py:40 #, python-format msgid "Because %(loser)s was checkmated" msgstr "" #: lib/pychess/Utils/repr.py:41 #, python-format msgid "Because %(loser)s disconnected" msgstr "" #: lib/pychess/Utils/repr.py:43 #, python-format msgid "Because %(winner)s has fewer pieces" msgstr "" #: lib/pychess/Utils/repr.py:44 #, python-format msgid "Because %(winner)s lost all pieces" msgstr "" #: lib/pychess/Utils/repr.py:45 #, python-format msgid "Because %(loser)s king exploded" msgstr "" #: lib/pychess/Utils/repr.py:46 #, python-format msgid "Because %(winner)s king reached the center" msgstr "" #: lib/pychess/Utils/repr.py:47 #, python-format msgid "Because %(winner)s was giving check 3 times" msgstr "" #: lib/pychess/Utils/repr.py:49 msgid "Because a player lost connection" msgstr "" #: lib/pychess/Utils/repr.py:50 msgid "Because both players agreed to an adjournment" msgstr "" #: lib/pychess/Utils/repr.py:51 msgid "Because the server was shut down" msgstr "" #: lib/pychess/Utils/repr.py:52 msgid "" "Because a player lost connection and the other player requested adjournment" msgstr "" #: lib/pychess/Utils/repr.py:53 #, python-format msgid "" "Because %(black)s lost connection to the server and %(white)s requested " "adjournment" msgstr "" #: lib/pychess/Utils/repr.py:54 #, python-format msgid "" "Because %(white)s lost connection to the server and %(black)s requested " "adjournment" msgstr "" #: lib/pychess/Utils/repr.py:55 #, python-format msgid "Because %(white)s lost connection to the server" msgstr "" #: lib/pychess/Utils/repr.py:56 #, python-format msgid "Because %(black)s lost connection to the server" msgstr "" #: lib/pychess/Utils/repr.py:58 msgid "Because of adjudication by an admin. No rating changes have occurred." msgstr "" #: lib/pychess/Utils/repr.py:59 msgid "" "Because both players agreed to abort the game. No rating changes have " "occurred." msgstr "" #: lib/pychess/Utils/repr.py:60 msgid "Because of courtesy by a player. No rating changes have occurred." msgstr "" #: lib/pychess/Utils/repr.py:61 msgid "" "Because a player aborted the game. Either player can abort the game without " "the other's consent before the second move. No rating changes have occurred." msgstr "" #: lib/pychess/Utils/repr.py:62 msgid "" "Because a player disconnected and there are too few moves to warrant " "adjournment. No rating changes have occurred." msgstr "" #: lib/pychess/Utils/repr.py:63 msgid "Because the server was shut down. No rating changes have occurred." msgstr "" #: lib/pychess/Utils/repr.py:65 #, python-format msgid "Because the %(white)s engine died" msgstr "" #: lib/pychess/Utils/repr.py:66 #, python-format msgid "Because the %(black)s engine died" msgstr "" #: lib/pychess/Utils/repr.py:67 msgid "Because the connection to the server was lost" msgstr "" #: lib/pychess/Utils/repr.py:68 msgid "The reason is unknown" msgstr "" #: lib/pychess/Utils/TimeModel.py:229 msgid "min" msgstr "хв" #: lib/pychess/Utils/TimeModel.py:231 msgid "sec" msgstr "с" #: lib/pychess/Variants/asean.py:12 msgid "" "ASEAN: http://www.ncf-" "phil.org/downloadables/2014/May/Asean_chess/Laws_of_ASEAN_Chess_2011_Nov_26.doc" msgstr "" #: lib/pychess/Variants/asean.py:13 msgid "ASEAN" msgstr "" #: lib/pychess/Variants/asean.py:33 msgid "Makruk: http://en.wikipedia.org/wiki/Makruk" msgstr "" #: lib/pychess/Variants/asean.py:34 msgid "Makruk" msgstr "" #: lib/pychess/Variants/asean.py:60 msgid "Cambodian: http://www.khmerinstitute.org/culture/ok.html" msgstr "" #: lib/pychess/Variants/asean.py:61 msgid "Cambodian" msgstr "" #: lib/pychess/Variants/asean.py:86 msgid "" "Ai-Wok: http://www.open-" "aurec.com/wbforum/viewtopic.php?p=199364&sid=20963a1de2c164050de019e5ed6bf7c4#p199364" msgstr "" #: lib/pychess/Variants/asean.py:87 msgid "Ai-Wok" msgstr "" #: lib/pychess/Variants/asean.py:111 msgid "Sittuyin: http://en.wikipedia.org/wiki/Sittuyin" msgstr "" #: lib/pychess/Variants/asean.py:112 msgid "Sittuyin" msgstr "" #: lib/pychess/Variants/asymmetricrandom.py:12 msgid "" "FICS wild/4: http://www.freechess.org/Help/HelpFiles/wild.html\n" "* Randomly chosen pieces (two queens or three rooks possible)\n" "* Exactly one king of each color\n" "* Pieces placed randomly behind the pawns, SUBJECT TO THE CONSTRAINT THAT THE BISHOPS ARE BALANCED\n" "* No castling\n" "* Black's arrangement DOES NOT mirrors white's" msgstr "" #: lib/pychess/Variants/asymmetricrandom.py:18 msgid "Asymmetric Random" msgstr "" #: lib/pychess/Variants/atomic.py:14 msgid "FICS atomic: http://www.freechess.org/Help/HelpFiles/atomic.html" msgstr "" #: lib/pychess/Variants/blindfold.py:7 msgid "" "Classic chess rules with hidden figurines\n" "http://en.wikipedia.org/wiki/Blindfold_chess" msgstr "" #: lib/pychess/Variants/blindfold.py:9 #: lib/pychess/widgets/newGameDialog.py:264 msgid "Blindfold" msgstr "" #: lib/pychess/Variants/blindfold.py:18 msgid "" "Classic chess rules with hidden pawns\n" "http://en.wikipedia.org/wiki/Blindfold_chess" msgstr "" #: lib/pychess/Variants/blindfold.py:20 msgid "Hidden pawns" msgstr "" #: lib/pychess/Variants/blindfold.py:29 msgid "" "Classic chess rules with hidden pieces\n" "http://en.wikipedia.org/wiki/Blindfold_chess" msgstr "" #: lib/pychess/Variants/blindfold.py:31 msgid "Hidden pieces" msgstr "" #: lib/pychess/Variants/blindfold.py:40 msgid "" "Classic chess rules with all pieces white\n" "http://en.wikipedia.org/wiki/Blindfold_chess" msgstr "" #: lib/pychess/Variants/blindfold.py:42 msgid "All white" msgstr "" #: lib/pychess/Variants/bughouse.py:8 msgid "FICS bughouse: http://www.freechess.org/Help/HelpFiles/bughouse.html" msgstr "" #: lib/pychess/Variants/corner.py:12 msgid "" "http://brainking.com/en/GameRules?tp=2\n" "* Placement of the pieces on the 1st and 8th row are randomized\n" "* The king is in the right hand corner\n" "* Bishops must start on opposite color squares\n" "* Black's starting position is obtained by rotating white's position 180 degrees around the board's center\n" "* No castling" msgstr "" #: lib/pychess/Variants/corner.py:18 msgid "Corner" msgstr "" #: lib/pychess/Variants/crazyhouse.py:8 msgid "" "FICS crazyhouse: http://www.freechess.org/Help/HelpFiles/crazyhouse.html" msgstr "" #: lib/pychess/Variants/euroshogi.py:9 msgid "EuroShogi: http://en.wikipedia.org/wiki/EuroShogi" msgstr "" #: lib/pychess/Variants/euroshogi.py:10 msgid "EuroShogi" msgstr "" #: lib/pychess/Variants/fischerandom.py:18 msgid "" "http://en.wikipedia.org/wiki/Chess960\n" "FICS wild/fr: http://www.freechess.org/Help/HelpFiles/wild.html" msgstr "" #: lib/pychess/Variants/fischerandom.py:20 msgid "Fischer Random" msgstr "" #: lib/pychess/Variants/kingofthehill.py:8 msgid "" "Bringing your king legally to the center (e4, d4, e5, d5) instantly wins the game!\n" "Normal rules apply in other cases and checkmate also ends the game." msgstr "" #: lib/pychess/Variants/kingofthehill.py:10 msgid "King of the hill" msgstr "" #: lib/pychess/Variants/knightodds.py:8 msgid "One player starts with one less knight piece" msgstr "" #: lib/pychess/Variants/knightodds.py:9 msgid "Knight odds" msgstr "" #: lib/pychess/Variants/losers.py:8 msgid "FICS losers: http://www.freechess.org/Help/HelpFiles/losers_chess.html" msgstr "" #: lib/pychess/Variants/normal.py:4 msgid "" "Classic chess rules\n" "http://en.wikipedia.org/wiki/Chess" msgstr "" #: lib/pychess/Variants/normal.py:6 lib/pychess/widgets/newGameDialog.py:157 msgid "Normal" msgstr "" #: lib/pychess/Variants/pawnodds.py:8 msgid "One player starts with one less pawn piece" msgstr "" #: lib/pychess/Variants/pawnodds.py:9 msgid "Pawn odds" msgstr "" #: lib/pychess/Variants/pawnspassed.py:11 msgid "" "FICS wild/8a: http://www.freechess.org/Help/HelpFiles/wild.html\n" "White pawns start on 5th rank and black pawns on the 4th rank" msgstr "" #: lib/pychess/Variants/pawnspassed.py:13 msgid "Pawns Passed" msgstr "" #: lib/pychess/Variants/pawnspushed.py:10 msgid "" "FICS wild/8: http://www.freechess.org/Help/HelpFiles/wild.html\n" "Pawns start on 4th and 5th ranks rather than 2nd and 7th" msgstr "" #: lib/pychess/Variants/pawnspushed.py:12 msgid "Pawns Pushed" msgstr "" #: lib/pychess/Variants/queenodds.py:8 msgid "One player starts with one less queen piece" msgstr "" #: lib/pychess/Variants/queenodds.py:9 msgid "Queen odds" msgstr "" #: lib/pychess/Variants/randomchess.py:11 msgid "" "FICS wild/3: http://www.freechess.org/Help/HelpFiles/wild.html\n" "* Randomly chosen pieces (two queens or three rooks possible)\n" "* Exactly one king of each color\n" "* Pieces placed randomly behind the pawns\n" "* No castling\n" "* Black's arrangement mirrors white's" msgstr "" #: lib/pychess/Variants/randomchess.py:17 #: lib/pychess/widgets/TaskerManager.py:155 msgid "Random" msgstr "" #: lib/pychess/Variants/rookodds.py:8 msgid "One player starts with one less rook piece" msgstr "" #: lib/pychess/Variants/rookodds.py:9 msgid "Rook odds" msgstr "" #: lib/pychess/Variants/shuffle.py:11 msgid "" "xboard nocastle: http://home.hccnet.nl/h.g.muller/engine-intf.html#8\n" "FICS wild/2: http://www.freechess.org/Help/HelpFiles/wild.html\n" "* Random arrangement of the pieces behind the pawns\n" "* No castling\n" "* Black's arrangement mirrors white's" msgstr "" #: lib/pychess/Variants/suicide.py:11 msgid "" "FICS suicide: http://www.freechess.org/Help/HelpFiles/suicide_chess.html" msgstr "" #: lib/pychess/Variants/theban.py:10 msgid "" "Variant developed by Kai Laskos: " "http://talkchess.com/forum/viewtopic.php?t=40990" msgstr "" #: lib/pychess/Variants/theban.py:11 msgid "Theban" msgstr "" #: lib/pychess/Variants/threecheck.py:10 msgid "Win by giving check 3 times" msgstr "" #: lib/pychess/Variants/threecheck.py:11 msgid "Three-check" msgstr "" #: lib/pychess/Variants/upsidedown.py:10 msgid "" "FICS wild/5: http://www.freechess.org/Help/HelpFiles/wild.html\n" "http://en.wikipedia.org/wiki/Chess_variant#Chess_with_different_starting_positions\n" "Pawns start on their 7th rank rather than their 2nd rank!" msgstr "" #: lib/pychess/Variants/upsidedown.py:13 msgid "Upside Down" msgstr "" #: lib/pychess/Variants/wildcastle.py:10 msgid "" "xboard wildcastle http://home.hccnet.nl/h.g.muller/engine-intf.html#8\n" "FICS wild/0: http://www.freechess.org/Help/HelpFiles/wild.html\n" "* White has the typical set-up at the start.\n" "* Black's pieces are the same, except that the King and Queen are reversed,\n" "* so they are not on the same files as White's King and Queen.\n" "* Castling is done similarly to normal chess:\n" "* o-o-o indicates long castling and o-o short castling." msgstr "" #: lib/pychess/Variants/wildcastle.py:17 msgid "Wildcastle" msgstr "" #: lib/pychess/Variants/wildcastleshuffle.py:11 msgid "" "xboard wildcastle http://home.hccnet.nl/h.g.muller/engine-intf.html#8\n" "FICS wild/1: http://www.freechess.org/Help/HelpFiles/wild.html\n" "* In this variant both sides have the same set of pieces as in normal chess.\n" "* The white king starts on d1 or e1 and the black king starts on d8 or e8,\n" "* and the rooks are in their usual positions.\n" "* Bishops are always on opposite colors.\n" "* Subject to these constraints the position of the pieces on their first ranks is random.\n" "* Castling is done similarly to normal chess:\n" "* o-o-o indicates long castling and o-o short castling." msgstr "" #: lib/pychess/Variants/wildcastleshuffle.py:20 msgid "Wildcastle shuffle" msgstr "" #: lib/pychess/widgets/analyzegameDialog.py:85 msgid "Game analyzing in progress..." msgstr "" #: lib/pychess/widgets/analyzegameDialog.py:86 msgid "Do you want to abort it?" msgstr "" #: lib/pychess/widgets/analyzegameDialog.py:95 #: lib/pychess/widgets/gamewidget.py:202 lib/pychess/widgets/gamewidget.py:320 msgid "Abort" msgstr "" #: lib/pychess/widgets/ChatView.py:125 msgid "Observers" msgstr "" #: lib/pychess/widgets/ChatWindow.py:222 msgid "You have opened no conversations yet" msgstr "" #: lib/pychess/widgets/ChatWindow.py:254 msgid "Only registered users may talk to this channel" msgstr "" #: lib/pychess/widgets/ChatWindow.py:312 msgid "No conversation's selected" msgstr "" #: lib/pychess/widgets/ChatWindow.py:350 msgid "Loading player data" msgstr "" #: lib/pychess/widgets/ChatWindow.py:400 msgid "Receiving list of players" msgstr "" #: lib/pychess/widgets/ChatWindow.py:518 msgid "Friends" msgstr "" #: lib/pychess/widgets/ChatWindow.py:529 msgid "Admin" msgstr "" #: lib/pychess/widgets/ChatWindow.py:540 msgid "More channels" msgstr "" #: lib/pychess/widgets/ChatWindow.py:548 msgid "More players" msgstr "" #: lib/pychess/widgets/ChatWindow.py:558 msgid "Computers" msgstr "" #: lib/pychess/widgets/ChatWindow.py:568 msgid "BlindFold" msgstr "" #: lib/pychess/widgets/ChatWindow.py:578 msgid "Guests" msgstr "" #: lib/pychess/widgets/ChatWindow.py:805 msgid "Conversations" msgstr "" #: lib/pychess/widgets/ChatWindow.py:807 msgid "Conversation info" msgstr "" #: lib/pychess/widgets/enginesDialog.py:152 msgid "Select engine" msgstr "" #: lib/pychess/widgets/enginesDialog.py:156 msgid "Executable files" msgstr "" #: lib/pychess/widgets/enginesDialog.py:176 #: lib/pychess/widgets/enginesDialog.py:210 #: lib/pychess/widgets/enginesDialog.py:235 #, python-format msgid "Unable to add %s" msgstr "" #: lib/pychess/widgets/enginesDialog.py:177 msgid "wine not installed" msgstr "" #: lib/pychess/widgets/enginesDialog.py:211 #: lib/pychess/widgets/enginesDialog.py:236 msgid "There is something wrong with this executable" msgstr "" #: lib/pychess/widgets/enginesDialog.py:266 msgid "Select working directory" msgstr "" #: lib/pychess/widgets/gamenanny.py:115 #, python-format msgid " invalid engine move: %s" msgstr "" #: lib/pychess/widgets/gamenanny.py:134 msgid "Offer Rematch" msgstr "" #: lib/pychess/widgets/gamenanny.py:136 lib/pychess/widgets/gamenanny.py:147 #, python-format msgid "Observe %s" msgstr "" #: lib/pychess/widgets/gamenanny.py:168 msgid "Play Rematch" msgstr "" #: lib/pychess/widgets/gamenanny.py:171 msgid "Undo one move" msgstr "" #: lib/pychess/widgets/gamenanny.py:173 msgid "Undo two moves" msgstr "" #: lib/pychess/widgets/gamenanny.py:203 msgid "The game is paused" msgstr "" #: lib/pychess/widgets/gamenanny.py:221 lib/pychess/widgets/gamenanny.py:222 msgid "Loaded game" msgstr "" #: lib/pychess/widgets/gamenanny.py:228 msgid "Saved game" msgstr "" #: lib/pychess/widgets/gamenanny.py:232 msgid "Analyzer started" msgstr "" #: lib/pychess/widgets/gamenanny.py:281 msgid "You sent an abort offer" msgstr "" #: lib/pychess/widgets/gamenanny.py:283 msgid "You sent an adjournment offer" msgstr "" #: lib/pychess/widgets/gamenanny.py:285 msgid "You sent a draw offer" msgstr "" #: lib/pychess/widgets/gamenanny.py:287 msgid "You sent a pause offer" msgstr "" #: lib/pychess/widgets/gamenanny.py:289 msgid "You sent a resume offer" msgstr "" #: lib/pychess/widgets/gamenanny.py:291 msgid "You sent an undo offer" msgstr "" #: lib/pychess/widgets/gamenanny.py:293 msgid "You asked your opponent to move" msgstr "" #: lib/pychess/widgets/gamenanny.py:305 #, python-format msgid "Engine, %s, has died" msgstr "" #: lib/pychess/widgets/gamenanny.py:306 msgid "" "PyChess has lost connection to the engine, probably because it has died.\n" "\n" "You can try to start a new game with the engine, or try to play against another one." msgstr "" #: lib/pychess/widgets/gamewidget.py:204 msgid "" "This game can be automatically aborted without rating loss because there has" " not yet been two moves made" msgstr "" #: lib/pychess/widgets/gamewidget.py:206 msgid "Offer Abort" msgstr "" #: lib/pychess/widgets/gamewidget.py:208 msgid "" "Your opponent must agree to abort the game because there has been two or " "more moves made" msgstr "" #: lib/pychess/widgets/gamewidget.py:226 msgid "This game can not be adjourned because one or both players are guests" msgstr "" #: lib/pychess/widgets/gamewidget.py:243 msgid "Claim Draw" msgstr "" #: lib/pychess/widgets/gamewidget.py:325 msgid "Pause" msgstr "" #: lib/pychess/widgets/gamewidget.py:326 msgid "Resume" msgstr "" #: lib/pychess/widgets/gamewidget.py:328 msgid "Offer Pause" msgstr "" #: lib/pychess/widgets/gamewidget.py:329 msgid "Offer Resume" msgstr "" #: lib/pychess/widgets/gamewidget.py:333 msgid "Undo" msgstr "" #: lib/pychess/widgets/gamewidget.py:335 msgid "Offer Undo" msgstr "" #: lib/pychess/widgets/gamewidget.py:550 msgid " has lagged for 30 seconds" msgstr "" #: lib/pychess/widgets/gamewidget.py:566 msgid " is lagging heavily but hasn't disconnected" msgstr "" #: lib/pychess/widgets/gamewidget.py:567 msgid "Continue to wait for opponent, or try to adjourn the game?" msgstr "" #: lib/pychess/widgets/gamewidget.py:575 msgid "Wait" msgstr "" #: lib/pychess/widgets/gamewidget.py:576 msgid "Adjourn" msgstr "" #: lib/pychess/widgets/gamewidget.py:648 msgid "Jump to initial position" msgstr "" #: lib/pychess/widgets/gamewidget.py:653 msgid "Step back one move" msgstr "" #: lib/pychess/widgets/gamewidget.py:658 msgid "Go back to the main line" msgstr "" #: lib/pychess/widgets/gamewidget.py:664 msgid "Step forward one move" msgstr "" #: lib/pychess/widgets/gamewidget.py:669 msgid "Jump to latest position" msgstr "" #: lib/pychess/widgets/gamewidget.py:903 msgid "PyChess was unable to load your panel settings" msgstr "" #: lib/pychess/widgets/gamewidget.py:904 msgid "" "Your panel settings have been reset. If this problem repeats, you should " "report it to the developers" msgstr "" #: lib/pychess/widgets/ionest.py:67 lib/pychess/widgets/newGameDialog.py:389 #: lib/pychess/widgets/TaskerManager.py:210 msgid "You" msgstr "" #: lib/pychess/widgets/ionest.py:70 lib/pychess/widgets/newGameDialog.py:390 #: lib/pychess/widgets/preferencesDialog.py:61 #: lib/pychess/widgets/TaskerManager.py:213 msgid "Guest" msgstr "" #: lib/pychess/widgets/ionest.py:93 msgid "Error loading game" msgstr "" #: lib/pychess/widgets/ionest.py:127 lib/pychess/widgets/newGameDialog.py:480 msgid "Open Game" msgstr "Відкрити гру" #: lib/pychess/widgets/ionest.py:137 msgid "All Files" msgstr "Всі файли" #: lib/pychess/widgets/ionest.py:140 msgid "Detect type automatically" msgstr "" #: lib/pychess/widgets/ionest.py:146 msgid "All Chess Files" msgstr "" #: lib/pychess/widgets/ionest.py:228 msgid "Save Game" msgstr "Зберегти гру" #: lib/pychess/widgets/ionest.py:228 msgid "Export position" msgstr "" #: lib/pychess/widgets/ionest.py:232 lib/pychess/widgets/ionest.py:360 msgid "vs." msgstr "" #: lib/pychess/widgets/ionest.py:249 #, python-format msgid "Unknown file type '%s'" msgstr "" #: lib/pychess/widgets/ionest.py:250 #, python-format msgid "" "Was unable to save '%(uri)s' as PyChess doesn't know the format " "'%(ending)s'." msgstr "" #: lib/pychess/widgets/ionest.py:266 #, python-format msgid "Unable to save file '%s'" msgstr "" #: lib/pychess/widgets/ionest.py:268 msgid "" "You don't have the necessary rights to save the file.\n" "Please ensure that you have given the right path and try again." msgstr "" #: lib/pychess/widgets/ionest.py:276 msgid "_Replace" msgstr "" #: lib/pychess/widgets/ionest.py:280 msgid "File exists" msgstr "" #: lib/pychess/widgets/ionest.py:282 #, python-format msgid "" "A file named '%s' already exists. Would you like to replace " "it?" msgstr "" #: lib/pychess/widgets/ionest.py:283 #, python-format msgid "" "The file already exists in '%s'. If you replace it, its content will be " "overwritten." msgstr "" #: lib/pychess/widgets/ionest.py:299 msgid "Could not save the file" msgstr "" #: lib/pychess/widgets/ionest.py:300 msgid "PyChess was not able to save the game" msgstr "" #: lib/pychess/widgets/ionest.py:301 #, python-format msgid "The error was: %s" msgstr "" #: lib/pychess/widgets/ionest.py:325 #, python-format msgid "There is %d game with unsaved moves." msgid_plural "There are %d games with unsaved moves." msgstr[0] "" msgstr[1] "" msgstr[2] "" #: lib/pychess/widgets/ionest.py:328 msgid "Save moves before closing?" msgstr "" #: lib/pychess/widgets/ionest.py:339 msgid "Unable to save to configured file. Save the games before closing?" msgstr "" #: lib/pychess/widgets/ionest.py:366 #, python-format msgid "_Save %d document" msgid_plural "_Save %d documents" msgstr[0] "" msgstr[1] "" msgstr[2] "" #: lib/pychess/widgets/ionest.py:412 msgid "Save the current game before you close it?" msgstr "" #: lib/pychess/widgets/ionest.py:420 msgid "" "Unable to save to configured file. Save the current game before you close " "it?" msgstr "" #: lib/pychess/widgets/ionest.py:434 msgid "" "It is not possible later to continue the game,\n" "if you don't save it." msgstr "" #: lib/pychess/widgets/LogDialog.py:26 msgid "PyChess Information Window" msgstr "" #: lib/pychess/widgets/LogDialog.py:184 lib/pychess/widgets/LogDialog.py:188 msgid "of" msgstr "" #: lib/pychess/widgets/newGameDialog.py:84 #: lib/pychess/widgets/newGameDialog.py:85 msgid "Human Being" msgstr "" #: lib/pychess/widgets/newGameDialog.py:155 msgid "Rapid" msgstr "" #: lib/pychess/widgets/newGameDialog.py:224 msgid "Minutes:" msgstr "" #: lib/pychess/widgets/newGameDialog.py:228 msgid "Gain:" msgstr "" #: lib/pychess/widgets/newGameDialog.py:241 #, python-format msgid "%(name)s %(minutes)d min + %(gain)d sec/move" msgstr "" #: lib/pychess/widgets/newGameDialog.py:244 #, python-format msgid "%(name)s %(minutes)d min %(gain)d sec/move" msgstr "" #: lib/pychess/widgets/newGameDialog.py:247 #, python-format msgid "%(name)s %(minutes)d min" msgstr "" #: lib/pychess/widgets/newGameDialog.py:265 msgid "Odds" msgstr "" #: lib/pychess/widgets/newGameDialog.py:269 msgid "Asian variants" msgstr "" #: lib/pychess/widgets/newGameDialog.py:301 msgid " chess" msgstr "" #: lib/pychess/widgets/newGameDialog.py:682 msgid "Type or paste PGN game or FEN positions here" msgstr "" #: lib/pychess/widgets/newGameDialog.py:725 msgid "Enter Game" msgstr "" #: lib/pychess/widgets/preferencesDialog.py:123 msgid "Select book file" msgstr "" #: lib/pychess/widgets/preferencesDialog.py:128 msgid "Opening books" msgstr "" #: lib/pychess/widgets/preferencesDialog.py:156 msgid "Select Gaviota TB path" msgstr "" #: lib/pychess/widgets/preferencesDialog.py:331 msgid "Open Sound File" msgstr "" #: lib/pychess/widgets/preferencesDialog.py:341 msgid "Sound files" msgstr "" #: lib/pychess/widgets/preferencesDialog.py:485 msgid "Undescribed panel" msgstr "" #: lib/pychess/widgets/preferencesDialog.py:678 msgid "Select auto save path" msgstr "" #: lib/pychess/widgets/tipOfTheDay.py:51 msgid "" "You can start a new game by Game > New Game, in New Game " "window do you can choose Players, Time Control and Chess " "Variants." msgstr "" #: lib/pychess/widgets/tipOfTheDay.py:52 msgid "" "You can choose from 20 different difficulties to play against the computer." msgstr "" #: lib/pychess/widgets/tipOfTheDay.py:53 msgid "" "Chess Variants are like the pieces of the last line will be placed on the " "board." msgstr "" #: lib/pychess/widgets/tipOfTheDay.py:54 msgid "" "To save a game Game > Save Game As, give the filename and " "choose where you want to be saved. At the bottom choose extension type of " "the file, and Save." msgstr "" #: lib/pychess/widgets/tipOfTheDay.py:55 msgid "" "Do you know that you can call flag when the clock is with you, " "Actions > Call Flag." msgstr "" #: lib/pychess/widgets/tipOfTheDay.py:56 msgid "Pressing Ctrl+Z to offer opponent the possible rollback moves." msgstr "" #: lib/pychess/widgets/tipOfTheDay.py:57 msgid "" "To play on Fullscreen mode, just type F11. Coming back, F11 " "again." msgstr "" #: lib/pychess/widgets/tipOfTheDay.py:58 msgid "Hint mode analyzing your game, enable this type Ctrl+H." msgstr "" #: lib/pychess/widgets/tipOfTheDay.py:59 msgid "" "Spy mode analyzing the oponnent game, enable this type Ctrl+Y." msgstr "" #: lib/pychess/widgets/tipOfTheDay.py:60 msgid "" "You can play chess listening to the sounds of the game, for that, " "Settings > Preferences > Sound tab, enable Use " "sounds in PyChess and choose your preferred sounds." msgstr "" #: lib/pychess/widgets/tipOfTheDay.py:61 msgid "" "Do you know that you can help translate Pychess in your language, " "Help > Translate Pychess." msgstr "" #: lib/pychess/widgets/tipOfTheDay.py:62 msgid "" "Do you know that it is possible to finish a chess game in just 2 turns?" msgstr "" #: lib/pychess/widgets/tipOfTheDay.py:63 msgid "" "Do you know that the number of possible chess games exceeds the number of " "atoms in the Universe?" msgstr "" #: lib/pychess/ic/managers/ChatManager.py:184 msgid "Shout" msgstr "" #: lib/pychess/ic/managers/ChatManager.py:185 msgid "Chess Shout" msgstr "" #: lib/pychess/ic/managers/ChatManager.py:195 #, python-format msgid "Unofficial channel %d" msgstr "" #: lib/pychess/Utils/lutils/LBoard.py:152 #, python-format msgid "" "FEN needs 6 data fields. \n" "\n" "%s" msgstr "" #: lib/pychess/Utils/lutils/LBoard.py:154 #, python-format msgid "" "FEN needs at least 2 data fields in fenstr. \n" "\n" "%s" msgstr "" #: lib/pychess/Utils/lutils/LBoard.py:175 #, python-format msgid "" "Needs 7 slashes in piece placement field. \n" "\n" "%s" msgstr "" #: lib/pychess/Utils/lutils/LBoard.py:178 #, python-format msgid "" "Active color field must be one of w or b. \n" "\n" "%s" msgstr "" #: lib/pychess/Utils/lutils/LBoard.py:189 #, python-format msgid "" "Castling availability field is not legal. \n" "\n" "%s" msgstr "" #: lib/pychess/Utils/lutils/LBoard.py:192 #, python-format msgid "" "En passant cord is not legal. \n" "\n" "%s" msgstr "" #: lib/pychess/Utils/lutils/lmove.py:260 msgid "invalid promoted piece" msgstr "" #: lib/pychess/Utils/lutils/lmove.py:272 msgid "the move needs a piece and a cord" msgstr "" #: lib/pychess/Utils/lutils/lmove.py:306 lib/pychess/Utils/lutils/lmove.py:556 msgid "promotion move without promoted piece is incorrect" msgstr "" #: lib/pychess/Utils/lutils/lmove.py:312 #, python-format msgid "the captured cord (%s) is incorrect" msgstr "" #: lib/pychess/Utils/lutils/lmove.py:323 #, python-format msgid "the end cord (%s) is incorrect" msgstr "" #: lib/pychess/Utils/lutils/strateval.py:24 sidepanel/commentPanel.py:191 #: sidepanel/commentPanel.py:208 msgid "and" msgstr "" #: lib/pychess/Utils/lutils/strateval.py:43 msgid "draws" msgstr "" #: lib/pychess/Utils/lutils/strateval.py:45 msgid "mates" msgstr "" #: lib/pychess/Utils/lutils/strateval.py:49 msgid "puts opponent in check" msgstr "" #: lib/pychess/Utils/lutils/strateval.py:73 msgid "improves king safety" msgstr "" #: lib/pychess/Utils/lutils/strateval.py:75 msgid "slightly improves king safety" msgstr "" #: lib/pychess/Utils/lutils/strateval.py:108 msgid "moves a rook to an open file" msgstr "" #: lib/pychess/Utils/lutils/strateval.py:109 msgid "moves an rook to a half-open file" msgstr "" #: lib/pychess/Utils/lutils/strateval.py:119 #: lib/pychess/Utils/lutils/strateval.py:121 #: lib/pychess/Utils/lutils/strateval.py:124 #: lib/pychess/Utils/lutils/strateval.py:126 #, python-format msgid "moves bishop into fianchetto: %s" msgstr "" #: lib/pychess/Utils/lutils/strateval.py:132 #, python-format msgid "promotes a Pawn to a %s" msgstr "" #: lib/pychess/Utils/lutils/strateval.py:135 msgid "castles" msgstr "" #: lib/pychess/Utils/lutils/strateval.py:158 msgid "takes back material" msgstr "" #: lib/pychess/Utils/lutils/strateval.py:162 #: lib/pychess/Utils/lutils/strateval.py:170 msgid "sacrifies material" msgstr "" #: lib/pychess/Utils/lutils/strateval.py:164 msgid "exchanges material" msgstr "" #: lib/pychess/Utils/lutils/strateval.py:166 msgid "captures material" msgstr "" #: lib/pychess/Utils/lutils/strateval.py:291 #, python-format msgid "rescues a %s" msgstr "" #: lib/pychess/Utils/lutils/strateval.py:294 #, python-format msgid "threatens to win material by %s" msgstr "" #: lib/pychess/Utils/lutils/strateval.py:296 #, python-format msgid "increases the pressure on %s" msgstr "" #: lib/pychess/Utils/lutils/strateval.py:298 #, python-format msgid "defends %s" msgstr "" #: lib/pychess/Utils/lutils/strateval.py:336 #, python-format msgid "pins an enemy %(oppiece)s on the %(piece)s at %(cord)s" msgstr "" #: lib/pychess/Utils/lutils/strateval.py:369 #, python-format msgid "White has a new piece in outpost: %s" msgstr "" #: lib/pychess/Utils/lutils/strateval.py:377 #, python-format msgid "Black has a new piece in outpost: %s" msgstr "" #: lib/pychess/Utils/lutils/strateval.py:416 #, python-format msgid "%(color)s has a new passed pawn on %(cord)s" msgstr "" #: lib/pychess/Utils/lutils/strateval.py:470 msgid "half-open" msgstr "" #: lib/pychess/Utils/lutils/strateval.py:472 #, python-format msgid "in the %(x)s%(y)s file" msgstr "" #: lib/pychess/Utils/lutils/strateval.py:474 #, python-format msgid "in the %(x)s%(y)s files" msgstr "" #: lib/pychess/Utils/lutils/strateval.py:477 #, python-format msgid "%(color)s got a double pawn %(place)s" msgstr "" #: lib/pychess/Utils/lutils/strateval.py:478 #, python-format msgid "%(color)s got new double pawns %(place)s" msgstr "" #: lib/pychess/Utils/lutils/strateval.py:485 #, python-format msgid "%(color)s got an isolated pawn in the %(x)s file" msgid_plural "%(color)s got isolated pawns in the %(x)s files" msgstr[0] "" msgstr[1] "" msgstr[2] "" #: lib/pychess/Utils/lutils/strateval.py:492 #, python-format msgid "%s moves pawns into stonewall formation" msgstr "" #: lib/pychess/Utils/lutils/strateval.py:507 #: lib/pychess/Utils/lutils/strateval.py:514 #, python-format msgid "%s can no longer castle" msgstr "" #: lib/pychess/Utils/lutils/strateval.py:508 #: lib/pychess/Utils/lutils/strateval.py:515 #, python-format msgid "%s can no longer castle in queenside" msgstr "" #: lib/pychess/Utils/lutils/strateval.py:510 #: lib/pychess/Utils/lutils/strateval.py:517 #, python-format msgid "%s can no longer castle in kingside" msgstr "" #: lib/pychess/Utils/lutils/strateval.py:551 #, python-format msgid "%(opcolor)s has a new trapped bishop on %(cord)s" msgstr "" #: lib/pychess/Utils/lutils/strateval.py:573 #, python-format msgid "develops a pawn: %s" msgstr "" #: lib/pychess/Utils/lutils/strateval.py:574 #, python-format msgid "brings a pawn closer to the backrow: %s" msgstr "" #: lib/pychess/Utils/lutils/strateval.py:591 #, python-format msgid "brings a %(piece)s closer to enemy king: %(cord)s" msgstr "" #: lib/pychess/Utils/lutils/strateval.py:594 #, python-format msgid "develops a %(piece)s: %(cord)s" msgstr "" #: lib/pychess/Utils/lutils/strateval.py:612 #, python-format msgid "places a %(piece)s more active: %(cord)s" msgstr "" #: lib/pychess/Utils/lutils/strateval.py:638 msgid "White should do pawn storm in right" msgstr "" #: lib/pychess/Utils/lutils/strateval.py:640 msgid "Black should do pawn storm in left" msgstr "" #: lib/pychess/Utils/lutils/strateval.py:643 msgid "White should do pawn storm in left" msgstr "" #: lib/pychess/Utils/lutils/strateval.py:645 msgid "Black should do pawn storm in right" msgstr "" #: lib/pychess/Utils/lutils/strateval.py:671 msgid "Black has a rather cramped position" msgstr "" #: lib/pychess/Utils/lutils/strateval.py:673 msgid "Black has a slightly cramped position" msgstr "" #: lib/pychess/Utils/lutils/strateval.py:675 msgid "White has a rather cramped position" msgstr "" #: lib/pychess/Utils/lutils/strateval.py:677 msgid "White has a slightly cramped position" msgstr "" #: sidepanel/annotationPanel.py:26 msgid "Annotation" msgstr "" #: sidepanel/annotationPanel.py:29 msgid "Annotated game" msgstr "" #: sidepanel/annotationPanel.py:236 msgid "Copy PGN" msgstr "" #: sidepanel/annotationPanel.py:249 msgid "Add start comment" msgstr "" #: sidepanel/annotationPanel.py:254 msgid "Add comment" msgstr "Додати коментар" #: sidepanel/annotationPanel.py:258 sidepanel/annotationPanel.py:316 msgid "Edit comment" msgstr "Редагувати коментар" #: sidepanel/annotationPanel.py:269 msgid "Forced move" msgstr "" #: sidepanel/annotationPanel.py:274 msgid "Add move symbol" msgstr "" #: sidepanel/annotationPanel.py:280 msgid "Unclear position" msgstr "" #: sidepanel/annotationPanel.py:289 msgid "Zugzwang" msgstr "" #: sidepanel/annotationPanel.py:290 msgid "Development adv." msgstr "" #: sidepanel/annotationPanel.py:291 msgid "Initiative" msgstr "" #: sidepanel/annotationPanel.py:292 msgid "With attack" msgstr "" #: sidepanel/annotationPanel.py:293 msgid "Compensation" msgstr "" #: sidepanel/annotationPanel.py:294 msgid "Counterplay" msgstr "" #: sidepanel/annotationPanel.py:295 msgid "Time pressure" msgstr "" #: sidepanel/annotationPanel.py:300 msgid "Add evaluation symbol" msgstr "" #: sidepanel/annotationPanel.py:304 msgid "Remove symbols" msgstr "" #: sidepanel/annotationPanel.py:911 #, python-format msgid "round %s" msgstr "" #: sidepanel/bookPanel.py:21 msgid "Hints" msgstr "" #: sidepanel/bookPanel.py:25 msgid "" "The hint panel will provide computer advice during each stage of the game" msgstr "" #: sidepanel/bookPanel.py:27 msgid "Official PyChess panel." msgstr "" #: sidepanel/bookPanel.py:87 msgid "Opening Book" msgstr "" #: sidepanel/bookPanel.py:88 msgid "" "The opening book will try to inspire you during the opening phase of the " "game by showing you common moves made by chess masters" msgstr "" #: sidepanel/bookPanel.py:139 #, python-format msgid "Analysis by %s" msgstr "" #: sidepanel/bookPanel.py:140 #, python-format msgid "" "%s will try to predict which move is best and which side has the advantage" msgstr "" #: sidepanel/bookPanel.py:142 #, python-format msgid "Threat analysis by %s" msgstr "" #: sidepanel/bookPanel.py:143 #, python-format msgid "" "%s will identify what threats would exist if it were your opponent's turn to" " move" msgstr "" #: sidepanel/bookPanel.py:159 sidepanel/bookPanel.py:269 msgid "Calculating..." msgstr "" #: sidepanel/bookPanel.py:300 msgid "" "Engine scores are in units of pawns, from White's point of view. Double " "clicking on analysis lines you can insert them into Annotation panel as " "variations." msgstr "" #: sidepanel/bookPanel.py:302 msgid "" "Adding suggestions can help you find ideas, but slows down the computer's " "analysis." msgstr "" #: sidepanel/bookPanel.py:311 msgid "Endgame Table" msgstr "" #: sidepanel/bookPanel.py:315 msgid "" "The endgame table will show exact analysis when there are few pieces on the " "board." msgstr "" #: sidepanel/bookPanel.py:364 sidepanel/bookPanel.py:367 #, python-format msgid "Mate in %d" msgstr "" #: sidepanel/bookPanel.py:554 msgid "" "In this position,\n" "there is no legal move." msgstr "" #: sidepanel/chatPanel.py:21 msgid "" "The chat panel lets you communicate with your opponent during the game, " "assuming he or she is interested" msgstr "" #: sidepanel/commentPanel.py:16 msgid "Comments" msgstr "Коментарі" #: sidepanel/commentPanel.py:20 msgid "The comments panel will try to analyze and explain the moves played" msgstr "" #: sidepanel/commentPanel.py:121 msgid "Initial position" msgstr "" #: sidepanel/commentPanel.py:254 #, python-format msgid "%(color)s moves a %(piece)s to %(cord)s" msgstr "" #: sidepanel/engineOutputPanel.py:15 msgid "Engines" msgstr "" #: sidepanel/engineOutputPanel.py:20 msgid "" "The engine output panel shows the thinking output of chess engines (computer" " players) during a game" msgstr "" #: sidepanel/engineOutputPanel.py:44 msgid "No chess engines (computer players) are participating in this game." msgstr "" #: sidepanel/historyPanel.py:10 msgid "Move History" msgstr "" #: sidepanel/historyPanel.py:13 msgid "" "The moves sheet keeps track of the players' moves and lets you navigate " "through the game history" msgstr "" #: sidepanel/scorePanel.py:15 msgid "Score" msgstr "Рахунок" #: sidepanel/scorePanel.py:19 msgid "" "The score panel tries to evaluate the positions and shows you a graph of the" " game progress" msgstr "" pychess-0.12.2/lang/uk/LC_MESSAGES/pychess.mo0000644000175000017470000001102212653231273020710 0ustar tamasusers00000000000000Rm<   #7RW ]iz      #7<E M Xe ju~           ) = C L V ] b r          ! - "7 Z ^ b C L T a c ,j #       A W p        '.AT%f      '4 MYj   &7IRYt"$A fr " >, K;E3 (R"1? #IC4N 6=+5/F8AL 9QO<)0'%D2M-&P*$@ !JGHB:.7 + %d sec%d min(Blitz)*0 of 010 min + 6 sec/move, 1400↑, White10 min + 6 sec/move, White12005 minNewsOpen GameOptionsPlayersTime ControlToolsYour ColorA player _moves:About ChessAcceptAdd commentAll FilesBishopBlackBlitz:ChallengeChallenge: ChatCommentsDeclineDon't careEdit commentHideMinutes: New GameOfflineOnlineOpen GameParameters:PlayPlayer _RatingPo_rts:PreferencesPyChess.py:QueenQuit PyChessRatingRound:Save GameSave Game _AsScoreSearch:Show _ChatShredderLinuxChess:Site:StandardStandard:ThemesTimeTime control: Tip of the DayTranslate PyChessWhite_Accept_Actions_Decline_Fullscreen_Game_Game List_Help_Load Game_Log Viewer_Name:_New Game_Password:_Player List_Save Game_Start Gamegnuchess:http://en.wikipedia.org/wiki/ChessminsecProject-Id-Version: pychess Report-Msgid-Bugs-To: POT-Creation-Date: 2016-01-27 13:28+0100 PO-Revision-Date: 2016-01-28 08:56+0000 Last-Translator: slav0nic Language-Team: Ukrainian (http://www.transifex.com/gbtami/pychess/language/uk/) MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Language: uk Plural-Forms: nplurals=3; plural=(n%10==1 && n%100!=11 ? 0 : n%10>=2 && n%10<=4 && (n%100<10 || n%100>=20) ? 1 : 2); + %d с%d хв(Блітц)*0 з 010 хв + 6 сек/хід, 1400↑, Білі10 хв + 6 сек/хід, Білі12005 хвНовиниВідкрити груОпціїГравціКонтроль часуУтилітиВаш колірКроки _гравця:Про ШахиПрийнятиДодати коментарВсі файлиСлонЧорніБлітц:ЗмаганняЗмагання: ЧатКоментаріВідхилитиВсе рівноРедагувати коментарСховатиХвилин:Нова граОфлайнОнлайнВідкрити груПараметри:Грати_Рейтинг гравцяПо_рти:НалаштуванняPyChess.py:КоролеваПокинути PyChessРейтингРаунд:Зберегти груЗберегти гру _якРахунокПошук:Показати _чатShredderLinuxChess:Сайт:СтандартСтандарт:ТемиЧасКонтроль часу:Порада дняПерекласти PyChessБілі_Прийняти_Дії_Відхилити_Весь екран_Гра_Список ігор_Допомога_Завантажити гру_Переглядач журналу_Ім’я:_Нова гра_Пароль:_Список гравців_Зберегти гру_Почати груgnuchess:http://en.wikipedia.org/wiki/Chessхвсpychess-0.12.2/lang/de/0000755000175000017470000000000012653231274015066 5ustar tamasusers00000000000000pychess-0.12.2/lang/de/LC_MESSAGES/0000755000175000017470000000000012653231274016653 5ustar tamasusers00000000000000pychess-0.12.2/lang/de/LC_MESSAGES/pychess.po0000644000175000017470000033606612653216206020705 0ustar tamasusers00000000000000# SOME DESCRIPTIVE TITLE. # Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER # This file is distributed under the same license as the pychess package. # # Translators: # Alfred, 2015 # Alfred, 2015 # Ettore Atalan , 2014-2015 # gbtami , 2015 # kopiersperre , 2013 # Jochen , 2014 # Lars H. , 2015 # Matthias Walther , 2012 # Norbert Fabritius , 2006 # Pilgrim , 2013 # scuffi , 2014-2015 # Steve , 2014 # Valsu , 2015 msgid "" msgstr "" "Project-Id-Version: pychess\n" "Report-Msgid-Bugs-To: \n" "POT-Creation-Date: 2016-01-27 13:28+0100\n" "PO-Revision-Date: 2016-01-28 08:56+0000\n" "Last-Translator: slav0nic \n" "Language-Team: German (http://www.transifex.com/gbtami/pychess/language/de/)\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" "Language: de\n" "Plural-Forms: nplurals=2; plural=(n != 1);\n" # "Plural-Forms: nplurals=INTEGER; plural=EXPRESSION;\n" #: glade/analyze_game.glade:22 msgid "Analyze game" msgstr "Spiel analysieren" #: glade/analyze_game.glade:87 msgid "Use analyzer:" msgstr "Analyseprogramm verwenden:" #: glade/analyze_game.glade:122 glade/PyChess.glade:2054 msgid "Maximum analysis time in seconds:" msgstr "Maximale Analysezeit in Sekunden:" #: glade/analyze_game.glade:163 msgid "" "If the analyzer finds a move where the evaluation difference (the difference" " between the evaluation for the move it thinks is the best move and the " "evaluation for the move made in the game) exceeds this value, it will add an" " annotation for that move (consisting of the engine's Principal Variation " "for the move) to the Annotation panel" msgstr "Wenn das Analyseprogramm einen Zug findet, bei dem die Bewertungsdifferenz (die Differenz zwischen der Bewertung des Zuges, den es als den besten ansieht, und der Bewertung des Zuges, der im Spiel gemacht wurde) diesen Wert übersteigt, wird es einen Kommentar dieses Zuges (bestehend aus der von dem Schachprogramm errechneten bestmöglichen Variante für diesen Zug) in das Kommentarfenster einfügen" #: glade/analyze_game.glade:164 msgid "Variation annotation creation threshold in centipawns:" msgstr "Schwellenwert für die Erzeugung von Variantenkommentaren in Zentibauern:" #: glade/analyze_game.glade:198 msgid "Analyze from current position" msgstr "Von aktueller Position analysieren" #: glade/analyze_game.glade:214 msgid "Add threatening variation lines " msgstr "Bedrohliche Variationslinien hinzufügen" #: glade/analyze_game.glade:229 glade/PyChess.glade:1459 msgid "Colorize analyzed moves" msgstr "Analysierte Züge einfärben" #: glade/analyze_game.glade:244 glade/PyChess.glade:1495 msgid "Show evaluation values" msgstr "Zeige Bewertungen" #: glade/discovererDialog.glade:18 msgid "PyChess is discovering your engines. Please wait." msgstr "Pychess sucht nach Ihren Schachprogrammen. Bitte warten." #: glade/discovererDialog.glade:77 msgid "PyChess.py:" msgstr "PyChess.py" #: glade/discovererDialog.glade:89 msgid "ShredderLinuxChess:" msgstr "ShredderLinuxChess" #: glade/discovererDialog.glade:101 msgid "gnuchess:" msgstr "gnuchess:" #: glade/fics_logon.glade:7 msgid "PyChess - Connect to Internet Chess" msgstr "PyChess - Mit Internet-Schach verbinden" #: glade/fics_logon.glade:47 msgid "Connect to the Free Online Chess Server" msgstr "Mit freechess.org verbinden" #: glade/fics_logon.glade:129 glade/taskers.glade:394 msgid "_Password:" msgstr "_Passwort:" #: glade/fics_logon.glade:143 msgid "_Name:" msgstr "_Name:" #: glade/fics_logon.glade:191 msgid "Log on as _Guest" msgstr "Als _Gast anmelden" #: glade/fics_logon.glade:227 msgid "Host:" msgstr "Server:" #: glade/fics_logon.glade:259 msgid "Po_rts:" msgstr "Po_rts:" #: glade/fics_logon.glade:271 msgid "Auto login on startup" msgstr "Automatische Anmeldung beim Start" #: glade/fics_logon.glade:385 msgid "S_ign up" msgstr "Registrieren" #: glade/fics_lounge.glade:35 msgid "Challenge: " msgstr "Herausfordern: " #: glade/fics_lounge.glade:97 msgid "Send Challenge" msgstr "Herausforderung senden" #: glade/fics_lounge.glade:133 msgid "Challenge:" msgstr "Herausforderung:" #: glade/fics_lounge.glade:327 glade/fics_lounge.glade:2078 msgid "Lightning:" msgstr "Blitz" #: glade/fics_lounge.glade:351 glade/fics_lounge.glade:2102 msgid "Standard:" msgstr "Standard:" #: glade/fics_lounge.glade:375 glade/fics_lounge.glade:2126 msgid "Blitz:" msgstr "Blitz:" #: glade/fics_lounge.glade:400 msgid "2 min, Fischer Random, Black" msgstr "2 min, Fischer Random, Schwarz" #: glade/fics_lounge.glade:422 msgid "10 min + 6 sec/move, White" msgstr "10 min + 6 s/Zug, Weiß" #: glade/fics_lounge.glade:444 msgid "5 min" msgstr "5 min" #: glade/fics_lounge.glade:480 msgid "Edit Seek" msgstr "Bearbeite Suchanfrage" #: glade/fics_lounge.glade:584 lib/pychess/ic/ICLounge.py:2208 #: lib/pychess/ic/__init__.py:101 lib/pychess/Utils/GameModel.py:206 msgid "Untimed" msgstr "Ohne Zeitlimit" #: glade/fics_lounge.glade:637 msgid "Minutes: " msgstr "Minuten: " #: glade/fics_lounge.glade:665 msgid " Gain: " msgstr " Aufschlag: " #: glade/fics_lounge.glade:703 msgid "Time control: " msgstr "Zeitkontrolle " #: glade/fics_lounge.glade:716 lib/pychess/ic/FICSObjects.py:56 #: lib/pychess/ic/ICLounge.py:1137 lib/pychess/ic/ICLounge.py:2208 #: lib/pychess/ic/__init__.py:99 msgid "Standard" msgstr "Standard" #: glade/fics_lounge.glade:757 glade/newInOut.glade:633 msgid "Time Control" msgstr "Zeitkontrolle" #: glade/fics_lounge.glade:814 glade/fics_lounge.glade:1346 msgid "Don't care" msgstr "Egal" #: glade/fics_lounge.glade:879 msgid "Your strength: " msgstr "Eigene Spielstärke: " #: glade/fics_lounge.glade:921 msgid "(Blitz)" msgstr "(Blitz)" #: glade/fics_lounge.glade:951 msgid "Opponent's strength: " msgstr "Gegnerische Stärke " #: glade/fics_lounge.glade:1055 msgid "" "When this button is in the \"locked\" state, the relationship\n" "between \"Opponent's strength\" and \"Your strength\" will be\n" "preserved when \n" "a) your rating for the type of game sought has changed\n" "b) you change the variant or the time control" msgstr "Ist dieser Knopf »gesperrt«, wird das Verhältnis zwischen\n»Gegnerischer Stärke« und »Eigener Spielstärke« gespeichert,\nwenn \n\na) sich Ihre Wertung für gesuchte Spiele ändert.\nb) Sie die Art der Zeitsteuerung ändern." #: glade/fics_lounge.glade:1095 msgid "Center:" msgstr "Mitte:" #: glade/fics_lounge.glade:1134 msgid "1200" msgstr "1200" #: glade/fics_lounge.glade:1188 msgid "Tolerance:" msgstr "Toleranz:" #: glade/fics_lounge.glade:1243 lib/pychess/ic/ICLounge.py:2452 msgid "Hide" msgstr "Ausblenden" #: glade/fics_lounge.glade:1289 msgid "Opponent Strength" msgstr "Gegnerische Stärke" #: glade/fics_lounge.glade:1386 lib/pychess/Database/gamelist.py:40 #: lib/pychess/ic/ICLounge.py:1357 lib/pychess/ic/ICLounge.py:1557 #: lib/pychess/ic/ICLounge.py:2108 lib/pychess/Utils/repr.py:10 #: lib/pychess/widgets/ChessClock.py:40 #: lib/pychess/widgets/TaskerManager.py:153 msgid "White" msgstr "Weiß" #: glade/fics_lounge.glade:1414 lib/pychess/Database/gamelist.py:40 #: lib/pychess/ic/ICLounge.py:1358 lib/pychess/ic/ICLounge.py:1558 #: lib/pychess/ic/ICLounge.py:2110 lib/pychess/Utils/repr.py:10 #: lib/pychess/widgets/ChessClock.py:40 #: lib/pychess/widgets/TaskerManager.py:154 msgid "Black" msgstr "Schwarz" #: glade/fics_lounge.glade:1453 msgid "Your Color" msgstr "Ihre Farbe" #: glade/fics_lounge.glade:1512 msgid "Play normal chess rules" msgstr "Nach normalen Schach-Regeln spielen" #: glade/fics_lounge.glade:1552 msgid "Play" msgstr "Spielen" #: glade/fics_lounge.glade:1618 glade/newInOut.glade:833 msgid "Chess Variant" msgstr "Schach-Variante" #: glade/fics_lounge.glade:1676 msgid "Rated game" msgstr "Bewertete Partie" #: glade/fics_lounge.glade:1692 msgid "Manually accept opponent" msgstr "Gegner manuell bestätigen" #: glade/fics_lounge.glade:1722 msgid "Options" msgstr "Einstellungen" #: glade/fics_lounge.glade:1750 msgid "PyChess - Internet Chess: FICS" msgstr "PyChess - Internet-Schach: FICS" #: glade/fics_lounge.glade:1823 msgid "_Clear Seeks" msgstr "Su_chergebnisse löschen" #: glade/fics_lounge.glade:1847 msgid "_Accept" msgstr "_Annehmen" #: glade/fics_lounge.glade:1871 msgid "_Decline" msgstr "_Ablehnen" #: glade/fics_lounge.glade:2151 msgid "2 min, Fischer Random, 1800↓, Black" msgstr "2 Min, Fischer Random, 1800↓, Schwarz" #: glade/fics_lounge.glade:2172 msgid "10 min + 6 sec/move, 1400↑, White" msgstr "10 Min + 6 Sek/Zug, 1400↑, Weiß" #: glade/fics_lounge.glade:2193 msgid "5 min, 1200-1800, Manual" msgstr "5 Min, 1200-1800, manuell" #: glade/fics_lounge.glade:2247 msgid "Send all seeks" msgstr "Alle Suchanfragen senden" #: glade/fics_lounge.glade:2301 msgid "Send seek" msgstr "Suchanfrage senden" #: glade/fics_lounge.glade:2337 msgid "Create Seek" msgstr "Suchanfrage erstellen" #: glade/fics_lounge.glade:2353 msgid "_Seeks / Challenges" msgstr "_Suchanfrage / Herausforderung" #: glade/fics_lounge.glade:2374 lib/pychess/ic/ICLounge.py:472 #: lib/pychess/ic/ICLounge.py:670 lib/pychess/ic/ICLounge.py:1357 #: lib/pychess/ic/ICLounge.py:1358 msgid "Rating" msgstr "Wertung" #: glade/fics_lounge.glade:2399 msgid "Time" msgstr "Zeit" #: glade/fics_lounge.glade:2419 msgid "Seek _Graph" msgstr "Suchgraph" #: glade/fics_lounge.glade:2444 msgid "0 Players Ready" msgstr "0 Spieler bereit" #: glade/fics_lounge.glade:2496 msgid "Challenge" msgstr "Herausforderung" #: glade/fics_lounge.glade:2549 glade/fics_lounge.glade:2735 msgid "Observe" msgstr "Beobachten" #: glade/fics_lounge.glade:2602 msgid "Start Private Chat" msgstr "Private Unterhaltung starten" #: glade/fics_lounge.glade:2659 msgid "_Player List" msgstr "_Spielerliste" #: glade/fics_lounge.glade:2792 msgid "_Game List" msgstr "_Spieleliste" #: glade/fics_lounge.glade:2847 msgid "_My games" msgstr "" #: glade/fics_lounge.glade:2904 glade/PyChess.glade:841 msgid "Offer _Resume" msgstr "Fortsetzung anbieten" #: glade/fics_lounge.glade:2962 glade/PyChess.glade:880 msgid "R_esign" msgstr "Aufgeben" #: glade/fics_lounge.glade:3006 glade/PyChess.glade:820 msgid "Offer _Draw" msgstr "Remis _anbieten" #: glade/fics_lounge.glade:3050 msgid "Offer A_bort" msgstr "Abbruch Anbieten" #: glade/fics_lounge.glade:3107 msgid "Pre_view" msgstr "_Vorschau" #: glade/fics_lounge.glade:3151 msgid "Examine" msgstr "" #: glade/fics_lounge.glade:3208 msgid "_Archived" msgstr "" #: glade/fics_lounge.glade:3313 msgid "News" msgstr "Neuigkeiten" #: glade/fics_lounge.glade:3345 msgid "Show Console" msgstr "Konsole anzeigen" #: glade/fics_lounge.glade:3359 msgid "Show _Chat" msgstr "Zeige _Gespräch" #: glade/fics_lounge.glade:3373 msgid "_Log Off" msgstr ":Abmeldung" #: glade/fics_lounge.glade:3393 msgid "Tools" msgstr "Werkzeuge" #: glade/fics_lounge.glade:3428 msgid "Asymmetric Random " msgstr "Asymmetrisch zufällig\t" #: glade/findbar.glade:6 msgid "window1" msgstr "Fenster 1" #: glade/findbar.glade:21 msgid "0 of 0" msgstr "0 von 0" #: glade/findbar.glade:66 msgid "Search:" msgstr "Suchen:" #: glade/findbar.glade:134 msgid "_Previous" msgstr "_Vorheriger" #: glade/findbar.glade:192 msgid "_Next" msgstr "_Nächster" #: glade/newInOut.glade:45 lib/pychess/widgets/newGameDialog.py:445 msgid "New Game" msgstr "Neue Partie" #: glade/newInOut.glade:108 msgid "_Start Game" msgstr "Partie _Starten" #: glade/newInOut.glade:130 msgid "Copy FEN" msgstr "FEN kopieren" #: glade/newInOut.glade:143 msgid "Clear" msgstr "Löschen" #: glade/newInOut.glade:156 msgid "Paste FEN" msgstr "FEN einfügen" #: glade/newInOut.glade:257 msgid "_Black player:" msgstr "Spieler _Schwarz:" #: glade/newInOut.glade:274 msgid "_White player:" msgstr "Spieler _Weiß:" #: glade/newInOut.glade:385 msgid "Players" msgstr "Spieler" #: glade/newInOut.glade:436 msgid "_Untimed" msgstr "_Unbegrenzt" #: glade/newInOut.glade:475 msgid "Blitz: 5 min" msgstr "Blitz: 5 min" #: glade/newInOut.glade:526 msgid "Rapid: 15 min + 10 sec/move" msgstr "Schnell: 15 min + 10 s/Zug" #: glade/newInOut.glade:575 msgid "Normal: 40 min + 15 sec/move" msgstr "Normal: 40 min + 15 s/Zug" #: glade/newInOut.glade:684 msgid "_Play Normal chess" msgstr "Normales Schach s_pielen" #: glade/newInOut.glade:724 msgid "Play Fischer Random chess" msgstr "Spiele Fischer Random Schach" #: glade/newInOut.glade:774 msgid "Play Losers chess" msgstr "Räuberschach spielen" #: glade/newInOut.glade:919 msgid "Open Game" msgstr "Partie öffnen" #: glade/newInOut.glade:1162 msgid "Initial Position" msgstr "Grundstellung" #: glade/newInOut.glade:1219 msgid "Enter Game Notation" msgstr "Notation eingeben" #: glade/newInOut.glade:1314 msgid "Halfmove clock" msgstr "Halbzug Uhr" #: glade/newInOut.glade:1327 msgid "En passant line" msgstr "En passant Zeile" #: glade/newInOut.glade:1339 msgid "Side to move" msgstr "Seite am Zug" #: glade/newInOut.glade:1351 msgid "Move number" msgstr "Zugnummer" #: glade/newInOut.glade:1361 msgid "Black O-O" msgstr "Schwarz O-O" #: glade/newInOut.glade:1375 msgid "Black O-O-O" msgstr "Schwarz O-O-O" #: glade/newInOut.glade:1389 msgid "White O-O-O" msgstr "Weiß O-O-O" #: glade/newInOut.glade:1403 msgid "White O-O" msgstr "Weiß O-O" #: glade/promotion.glade:7 msgid "Promotion" msgstr "Umwandlung" #: glade/promotion.glade:49 lib/pychess/Utils/repr.py:12 msgid "Queen" msgstr "Dame" #: glade/promotion.glade:95 lib/pychess/Utils/repr.py:12 msgid "Rook" msgstr "Turm" #: glade/promotion.glade:141 lib/pychess/Utils/repr.py:12 msgid "Bishop" msgstr "Läufer" #: glade/promotion.glade:187 lib/pychess/Utils/repr.py:12 msgid "Knight" msgstr "Springer" #: glade/promotion.glade:233 lib/pychess/Utils/repr.py:12 msgid "King" msgstr "König" #: glade/promotion.glade:265 msgid "Promote pawn to what?" msgstr "Den Bauern in welche andere Spielfigur umwandeln?" #: glade/PyChess.glade:9 msgid "Chess client" msgstr "Schach-Client" #: glade/PyChess.glade:44 msgid "Game information" msgstr "Partiedaten" #: glade/PyChess.glade:164 msgid "Event:" msgstr "Ereignis" #: glade/PyChess.glade:178 msgid "Site:" msgstr "Ort:" #: glade/PyChess.glade:204 msgid "Round:" msgstr "Runde:" #: glade/PyChess.glade:237 msgid "White:" msgstr "Weiß:" #: glade/PyChess.glade:249 msgid "Black:" msgstr "Schwarz:" #: glade/PyChess.glade:302 msgid "Game data" msgstr "Patiedaten" #: glade/PyChess.glade:357 msgid "Date of game" msgstr "Datum der Partie" #: glade/PyChess.glade:495 msgid "_Game" msgstr "_Partie" #: glade/PyChess.glade:502 msgid "_New Game" msgstr "_Neue Partie" #: glade/PyChess.glade:515 msgid "Play _Internet Chess" msgstr "_Internetschach spielen" #: glade/PyChess.glade:534 msgid "_Load Game" msgstr "Partie _Laden" #: glade/PyChess.glade:550 msgid "Load _Recent Game" msgstr "Letztes Spiel laden" #: glade/PyChess.glade:558 msgid "Open _Database" msgstr "_Datenbank öffnen" #: glade/PyChess.glade:569 lib/pychess/widgets/newGameDialog.py:615 msgid "Setup Position" msgstr "Stellung aufbauen" #: glade/PyChess.glade:579 msgid "Enter Game _Notation" msgstr "Partie-_Notation eingeben" #: glade/PyChess.glade:592 msgid "_Save Game" msgstr "Partie _speichern" #: glade/PyChess.glade:606 msgid "Save Game _As" msgstr "Partie speichern _unter" #: glade/PyChess.glade:624 msgid "Share Game" msgstr "Geteiltes Spiel" #: glade/PyChess.glade:630 msgid "_Export Position" msgstr "_Exportiere Spielstand" #: glade/PyChess.glade:644 msgid "_Analyze Game" msgstr "Spiel _analysieren" #: glade/PyChess.glade:678 msgid "Player _Rating" msgstr "Spieler _Bewertung" #: glade/PyChess.glade:723 msgid "_Edit" msgstr "Einstellung" #: glade/PyChess.glade:734 msgid "_Copy PGN" msgstr "_PGN kopieren" #: glade/PyChess.glade:746 msgid "_Copy FEN" msgstr "FEN kopieren" #: glade/PyChess.glade:763 msgid "_Engines" msgstr "_Engines" #: glade/PyChess.glade:789 msgid "_Actions" msgstr "_Aktionen" #: glade/PyChess.glade:800 msgid "Offer _Abort" msgstr "_Aufgeben anbieten" #: glade/PyChess.glade:810 msgid "Offer Ad_journment" msgstr "Aufschub anbieten" #: glade/PyChess.glade:831 msgid "Offer _Pause" msgstr "_Pause anbieten" #: glade/PyChess.glade:847 msgid "Offer _Undo" msgstr "_Rücknahme anbieten" #: glade/PyChess.glade:870 msgid "_Call Flag" msgstr "Abgelaufene _Zeit reklamieren" #: glade/PyChess.glade:890 msgid "Ask to _Move" msgstr "Zum Ziehen auffordern" #: glade/PyChess.glade:905 msgid "Auto Call _Flag" msgstr "Automatisch abgelaufene _Zeit reklamieren" #: glade/PyChess.glade:918 msgid "_View" msgstr "_Ansicht" #: glade/PyChess.glade:925 msgid "_Rotate Board" msgstr "Brett _Drehen" #: glade/PyChess.glade:939 msgid "_Fullscreen" msgstr "_Vollbild" #: glade/PyChess.glade:952 msgid "Leave _Fullscreen" msgstr "_Vollbild verlassen" #: glade/PyChess.glade:969 msgid "_Show Sidepanels" msgstr "_Seitenleiste anzeigen" #: glade/PyChess.glade:980 msgid "_Log Viewer" msgstr "_Protokoll" #: glade/PyChess.glade:997 msgid "_Hint mode" msgstr "_Tipp-Modus" #: glade/PyChess.glade:1009 msgid "Sp_y mode" msgstr "S_pionage-Modus" #: glade/PyChess.glade:1024 msgid "_Help" msgstr "_Hilfe" #: glade/PyChess.glade:1034 msgid "About Chess" msgstr "Was ist Schach?" #: glade/PyChess.glade:1043 msgid "How to Play" msgstr "Wie gespielt wird" #: glade/PyChess.glade:1052 msgid "Translate PyChess" msgstr "PyChess übersetzen" #: glade/PyChess.glade:1058 msgid "Tip of the Day" msgstr "Tipp des Tages" #: glade/PyChess.glade:1153 msgid "Default" msgstr "Standard" #: glade/PyChess.glade:1156 msgid "Knights" msgstr "Springer" #: glade/PyChess.glade:1167 lib/pychess/widgets/preferencesDialog.py:349 msgid "Beep" msgstr "Signalton" #: glade/PyChess.glade:1170 lib/pychess/widgets/preferencesDialog.py:350 msgid "Select sound file..." msgstr "Audiodatei wählen …" #: glade/PyChess.glade:1173 lib/pychess/widgets/preferencesDialog.py:348 msgid "No sound" msgstr "Kein Ton" #: glade/PyChess.glade:1180 msgid "Preferences" msgstr "Einstellungen" #: glade/PyChess.glade:1218 msgid "The displayed name of the first human player, e.g., John." msgstr "Der anzuzeigende Name des ersten menschlichen Spielers, z.B. John." #: glade/PyChess.glade:1230 msgid "Name of _first human player:" msgstr "Name des er_sten menschlichen Spielers:" #: glade/PyChess.glade:1259 msgid "The displayed name of the guest player, e.g., Mary." msgstr "Der anzuzeigende Name des Gastspielers, z.B. Mary." #: glade/PyChess.glade:1271 msgid "Name of s_econd human player:" msgstr "Name des zw_eiten menschlichen Spielers:" #: glade/PyChess.glade:1307 msgid "_Hide tabs when only one game is open" msgstr "Tabs _verstecken, wenn nur eine Partie offen ist" #: glade/PyChess.glade:1312 msgid "" "If set, this hides the tab in the top of the playing window, when it is not " "needed." msgstr "Wenn aktiviert, wird die Tableiste nur angezeigt, wenn sie benötigt wird." #: glade/PyChess.glade:1326 msgid "_Use main app closer [x] to close all games" msgstr "Mit [x] schließen Sie alle Spiele" #: glade/PyChess.glade:1331 msgid "" "If set, clicking on main application window closer first time it closes all " "games." msgstr "Beim Schliessen des Hauptfensters werden alle Spiele ohne Rückfrage geschlossen." #: glade/PyChess.glade:1345 msgid "Auto _rotate board to current human player" msgstr "Spielbrett automatisch zum aktiven menschlichen Spieler d_rehen" #: glade/PyChess.glade:1350 msgid "" "If set, the board will turn after each move, to show the natural view for " "the current player." msgstr "Wenn aktiviert, wird das Brett nach jedem Zug gedreht, sodass beide Spielder das Brett aus ihrer Sicht sehen können." #: glade/PyChess.glade:1364 msgid "Auto _promote to queen" msgstr "" #: glade/PyChess.glade:1369 msgid "If set, pawn promotes to queen without promotion dialog selection." msgstr "" #: glade/PyChess.glade:1383 msgid "Face _to Face display mode" msgstr "Angesicht _zu Angesicht Anzeigemodus" #: glade/PyChess.glade:1388 msgid "" "If set, the black pieces will be head down, suitable for playing against " "friends on mobile devices." msgstr "Wenn aktiviert, werden die schwarzen Figuren auf den Kopf gestellt. Sinnvoll für mobile Geräte, wenn der Gegenspieler auf der anderen Seite des Bildschirms sitzt." #: glade/PyChess.glade:1402 msgid "Sho_w cords" msgstr "Zeige Koordinaten" #: glade/PyChess.glade:1407 msgid "" "If set, the playing board will display labels and ranks for each chess " "field. These are usable in chess notation." msgstr "Aktiviert Beschriftungen auf dem Schachbrett. Dies kann sinnvoll für die Schachnotation sein." #: glade/PyChess.glade:1421 msgid "Show _captured pieces" msgstr "Zeige _geschlagene Figuren" #: glade/PyChess.glade:1426 msgid "If set, the captured figurines will be shown next to the board." msgstr "Wenn aktiviert, werden die geschlagenen Figuren neben dem Brett angezeigt." #: glade/PyChess.glade:1440 msgid "Prefer figures in _notation" msgstr "Bevorzuge Figuren in der Notation." #: glade/PyChess.glade:1445 msgid "" "If set, PyChess will use figures to express moved pieces, rather than " "uppercase letters." msgstr "Wenn aktiviert, werden Figuren statt Großbuchstaben genutzt um die Züge zu dokumentieren." #: glade/PyChess.glade:1464 msgid "If set, PyChess will colorize suboptimal analyzed moves with red." msgstr "Wenn aktiviert, wird PyChess als suboptimal analysierte Züge rot einfärben." #: glade/PyChess.glade:1477 msgid "Show elapsed move times" msgstr "Zeige verbrauchte Zugzeiten" #: glade/PyChess.glade:1482 msgid "If set, the elapsed time that a player used for the move is shown." msgstr "Wenn aktiviert, wird die vom Spieler verbrauchte Zugzeit angezeigt." #: glade/PyChess.glade:1500 msgid "If set, the hint analyzer engine evaluation value is shown." msgstr "Wenn aktiviert, wird die Bewertung des Tipp-Analyseschachprogramm angezeigt." #: glade/PyChess.glade:1526 msgid "General Options" msgstr "" #: glade/PyChess.glade:1560 msgid "F_ull board animation" msgstr "V_ollständige Animation des Spielbretts" #: glade/PyChess.glade:1565 msgid "Animate pieces, board rotation and more. Use this on fast machines." msgstr "Animiere Spielfiguren, -brettrotation und anderes. Für schnelle Rechner." #: glade/PyChess.glade:1579 msgid "Only animate _moves" msgstr "Nur Züge ani_mieren" #: glade/PyChess.glade:1584 msgid "Only animate piece moves." msgstr "Nur Spielfiguren animieren." #: glade/PyChess.glade:1599 msgid "No _animation" msgstr "Keine _Animationen" #: glade/PyChess.glade:1604 msgid "Never use animation. Use this on slow machines." msgstr "Es werden keine Animationen dargestellt. Auf langsamen Rechnern nützlich." #: glade/PyChess.glade:1632 msgid "Animation" msgstr "Animation" #: glade/PyChess.glade:1651 msgid "_General" msgstr "All_gemein" #: glade/PyChess.glade:1692 msgid "Use opening _book" msgstr "Eröffnungsbuch verwenden" #: glade/PyChess.glade:1697 msgid "If set, PyChess will suggest best opening moves on hint panel." msgstr "Wenn aktiviert, wird PyChess die besten Eröffnungszüge im Tipp-Fenster vorschlagen." #: glade/PyChess.glade:1724 msgid "Polyglot book file:" msgstr "Polyglot Buch Datei:" #: glade/PyChess.glade:1768 msgid "Use _local tablebases" msgstr "_Lokale Endspieldatenbanken verwenden" #: glade/PyChess.glade:1773 msgid "" "If set, PyChess will show game results for different moves in positions containing 6 or less pieces.\n" "You can download tablebase files from:\n" "http://www.olympuschess.com/egtb/gaviota/" msgstr "Wenn aktiviert, wird PyChess die Spielergebnisse für verschiedene Züge in Stellungen mit 6 oder weniger Figuren anzeigen.\nSie können Endspieldatenbanken hier herunterladen:\nhttp://www.olympuschess.com/egtb/gaviota/" #: glade/PyChess.glade:1803 msgid "Gaviota TB path:" msgstr "Gaviota TB Pfad:" #: glade/PyChess.glade:1843 msgid "Use _online tablebases" msgstr "_Online-Endspieldatenbanken verwenden" #: glade/PyChess.glade:1848 msgid "" "If set, PyChess will show game results for different moves in positions containing 6 or less pieces.\n" "It will search positions from http://www.k4it.de/" msgstr "Wenn aktiviert, wird PyChess die Spielergebnisse für verschiedene Züge in Stellungen mit 6 oder weniger Figuren anzeigen.\nEs sucht nach Stellungen aus http://www.k4it.de/" #: glade/PyChess.glade:1870 msgid "Opening, endgame" msgstr "Eröffnung, Endspiel" #: glade/PyChess.glade:1904 msgid "Use _analyzer" msgstr "Verwende _Analysierer" #: glade/PyChess.glade:1946 msgid "" "The analyzer will run in the background and analyze the game. This is " "necessary for the hint mode to work" msgstr "Die Analyse wird im Hintergrund laufen und das Spiel bewerten. Dies ist nötig für den Tipp-Modus." #: glade/PyChess.glade:1978 msgid "Use _inverted analyzer" msgstr "Verwende _umgekehrten Analysierer" #: glade/PyChess.glade:2020 msgid "" "The inverse analyzer will analyze the game as if your opponent was to move. " "This is necessary for the spy mode to work" msgstr "Das umgedrehte Analysetool wird das Spiel bewerten, wenn Ihr Gegner am Zug ist. Dies ist nötig für den Spion-Modus" #: glade/PyChess.glade:2096 msgid "Analyzing" msgstr "Analysieren" #: glade/PyChess.glade:2118 msgid "_Hints" msgstr "_Hinweise" #: glade/PyChess.glade:2263 msgid "Uninstall" msgstr "Deinstallieren" #: glade/PyChess.glade:2317 msgid "Ac_tive" msgstr "Ak_tiv" #: glade/PyChess.glade:2367 msgid "Installed Sidepanels" msgstr "Installierte Seitenleisten" #: glade/PyChess.glade:2382 msgid "Side_panels" msgstr "Seiten_leisten" #: glade/PyChess.glade:2440 msgid "Light Squares :" msgstr "" #: glade/PyChess.glade:2479 msgid "Dark Squares :" msgstr "" #: glade/PyChess.glade:2515 msgid "Reset Default Colours" msgstr "Auf Standardfarben zurücksetzen" #: glade/PyChess.glade:2551 msgid "Board Colours" msgstr "" #: glade/PyChess.glade:2610 msgid "Chess Sets" msgstr "" #: glade/PyChess.glade:2634 msgid "Themes" msgstr "Themen" #: glade/PyChess.glade:2659 msgid "_Use sounds in PyChess" msgstr "_Verwende Klänge in PyChess" #: glade/PyChess.glade:2982 msgid "A player _checks:" msgstr "Ein Spieler setzt _Schach" #: glade/PyChess.glade:2997 msgid "A player _moves:" msgstr "Ein Spieler _zieht" #: glade/PyChess.glade:3010 msgid "Game is _drawn:" msgstr "Partie ist _unentschieden:" #: glade/PyChess.glade:3025 msgid "Game is _lost:" msgstr "Partie wurde _verloren:" #: glade/PyChess.glade:3040 msgid "Game is _won:" msgstr "Partie wurde ge_wonnen:" #: glade/PyChess.glade:3055 msgid "A player c_aptures:" msgstr "Ein Spieler schl_ägt" #: glade/PyChess.glade:3084 msgid "Game is _set-up:" msgstr "Spiel ist _bereit:" #: glade/PyChess.glade:3136 msgid "_Observed moves:" msgstr "_Überwachte Züge:" #: glade/PyChess.glade:3151 msgid "Observed _ends:" msgstr "Überwachung _endet:" #: glade/PyChess.glade:3265 msgid "Short on _time:" msgstr "Zeit_not" #: glade/PyChess.glade:3317 msgid "_Invalid move:" msgstr "_Ungültiger Zug:" #: glade/PyChess.glade:3369 msgid "Activate alarm when _remaining sec is:" msgstr "Alarm geben falls _Restzeit unter" #: glade/PyChess.glade:3416 msgid "Play Sound When..." msgstr "Spiele Klang wenn..." #: glade/PyChess.glade:3438 msgid "_Sounds" msgstr "_Klänge" #: glade/PyChess.glade:3463 msgid "_Auto save finished games" msgstr "_Automatisch beendete Spiele speichern" #: glade/PyChess.glade:3497 msgid "Save files to:" msgstr "Datei speichern nach:" #: glade/PyChess.glade:3525 msgid "Use name format:" msgstr "Namensformat verwenden:" #: glade/PyChess.glade:3569 msgid "Names: #n1, #n2" msgstr "Namen: #n1, #n2" #: glade/PyChess.glade:3582 msgid "Year, month, day: #y, #m, #d" msgstr "Jahr, Monat, Tag: #y, #m, #d" #: glade/PyChess.glade:3619 msgid "Save elapsed move _times" msgstr "Verbrauch_te Zugzeiten anzeigen" #: glade/PyChess.glade:3644 msgid "Save analyzing engine _evaluation values" msgstr "Speichern der Computerbewertung" #: glade/PyChess.glade:3669 msgid "Save _own games only" msgstr "Nur _eigene Spiele speichern" #: glade/PyChess.glade:3698 msgid "Save" msgstr "Speichern" #: glade/PyChess.glade:3728 msgid "uci" msgstr "uci" #: glade/PyChess.glade:3731 msgid "xboard" msgstr "xboard" #: glade/PyChess.glade:3739 msgid "Manage engines" msgstr "Engines-Einstellungen" #: glade/PyChess.glade:3837 msgid "Command:" msgstr "Kommando:" #: glade/PyChess.glade:3851 msgid "Protocol:" msgstr "Protokoll" #: glade/PyChess.glade:3865 msgid "Parameters:" msgstr "Parameter:" #: glade/PyChess.glade:3878 msgid "Command line parameters needed by the engine." msgstr "Vom Schachprogramm benötigte Kommandozeilenparamenter." #: glade/PyChess.glade:3903 msgid "" "Engines use uci or xboard communication protocol to talk to the GUI.\n" "If it can use both you can set here which one you like." msgstr "Schachprogramme benutzen das uci oder xboard Protokoll um mit dem GUI zu kommunizieren.\nWenn es beide benutzen kann, können Sie hier einstellen, welches Sie bevorzugen." #: glade/PyChess.glade:3929 msgid "Working directory:" msgstr "Arbeitsverzeichnis:" #: glade/PyChess.glade:3942 msgid "The directory where the engine will be started from." msgstr "Das Verzeichnis aus dem das Schachprogramm gestartet wird." #: glade/saveGamesDialog.glade:7 msgid "Quit PyChess" msgstr "Beende PyChess" #: glade/saveGamesDialog.glade:24 lib/pychess/widgets/ionest.py:424 msgid "Close _without Saving" msgstr "Schließen _ohne Speichern" #: glade/saveGamesDialog.glade:83 msgid "_Save %d documents" msgstr "_Sichere %d Dokumente" #: glade/saveGamesDialog.glade:141 msgid "" "There are %d games with unsaved moves. Save changes before " "closing?" msgstr "Es gibt %d Spiele mit ungesicherten Zügen. Sollen diese vor dem Schließen gesichert werden?" #: glade/saveGamesDialog.glade:161 msgid "Select the games you want to save:" msgstr "Spiel zum Sichern auswählen:" #: glade/saveGamesDialog.glade:204 msgid "If you don't save, new changes to your games will be permanently lost." msgstr "Wenn Sie nicht speichern, wird der aktuelle Spielstand unwiderbringlich verworfen." #: glade/taskers.glade:126 msgid "_Opponent:" msgstr "_Gegner:" #: glade/taskers.glade:154 msgid "_Your Color:" msgstr "_Ihre Farbe:" #: glade/taskers.glade:219 msgid "_Start Game" msgstr "Spiel _starten" #: glade/taskers.glade:338 msgid "Log on as G_uest" msgstr "Als G_ast anmelden" #: glade/taskers.glade:410 msgid "Ha_ndle:" msgstr "Lo_gin:" #: glade/taskers.glade:469 msgid "_Connect to server" msgstr "" #: glade/tipoftheday.glade:7 msgid "Tip Of The day" msgstr "Tipp des Tages" #: glade/tipoftheday.glade:62 msgid "Show tips at startup" msgstr "Tipps beim Start anzeigen" #: lib/pychess/Main.py:302 msgid "http://en.wikipedia.org/wiki/Chess" msgstr "http://de.wikipedia.org/wiki/Schach" #: lib/pychess/Main.py:305 msgid "http://en.wikipedia.org/wiki/Rules_of_chess" msgstr "http://de.wikipedia.org/wiki/Schach#Spielregeln" #: lib/pychess/Main.py:370 lib/pychess/widgets/gamenanny.py:80 msgid "Welcome" msgstr "Willkommen" #: lib/pychess/Database/gamelist.py:40 msgid "Id" msgstr "Kennung" #: lib/pychess/Database/gamelist.py:40 msgid "W Elo" msgstr "W Elo" #: lib/pychess/Database/gamelist.py:40 msgid "B Elo" msgstr "S Elo" #: lib/pychess/Database/gamelist.py:41 msgid "Result" msgstr "Ergebnis" #: lib/pychess/Database/gamelist.py:41 msgid "Event" msgstr "Ereignis" #: lib/pychess/Database/gamelist.py:41 msgid "Site" msgstr "Ort" #: lib/pychess/Database/gamelist.py:41 msgid "Round" msgstr "Runde" #: lib/pychess/Database/gamelist.py:41 msgid "Date" msgstr "Datum" #: lib/pychess/Database/gamelist.py:41 msgid "ECO" msgstr "ECO" #: lib/pychess/Database/gamelist.py:62 msgid "PyChess Game Database" msgstr "PyChess Datenbank" #: lib/pychess/Database/PgnImport.py:188 #, python-format msgid "The game #%s can't be loaded, because of an error parsing FEN" msgstr "Das Spiel #%s kann nicht geladen werden, weil beim Einlesen der FEN-Datei ein Fehler aufgetreten ist" #: lib/pychess/ic/FICSConnection.py:139 msgid "The connection was broken - got \"end of file\" message" msgstr "Die Verbindung wurde unterbrochen - \"End Of File\"-Meldung erhalten" #: lib/pychess/ic/FICSConnection.py:140 #, python-format msgid "'%s' is not a registered name" msgstr "'%s' ist kein registrierter Name" #: lib/pychess/ic/FICSConnection.py:141 msgid "" "The entered password was invalid.\n" "If you forgot your password, go to http://www.freechess.org/password to request a new one over email." msgstr "Das eingegebene Passwort war ungültig.\nWenn Sie Ihr Passwort vergessen haben, besuchen sie http://www.freechess.org/password um ein neues per email anzufordern." #: lib/pychess/ic/FICSConnection.py:145 #, python-format msgid "Sorry '%s' is already logged in" msgstr "Entschuldigung, '%s' ist bereits angemeldet" #: lib/pychess/ic/FICSConnection.py:146 #, python-format msgid "'%s' is a registered name. If it is yours, type the password." msgstr "'%s' ist ein registrierter Name. Gehört er zu Ihnen, tippen Sie bitte das Passwort ein." #: lib/pychess/ic/FICSConnection.py:147 msgid "" "Due to abuse problems, guest connections have been prevented.\n" "You can still register on http://www.freechess.org" msgstr "Wegen Missbrauchs wurden Gastzugriffe unterbunden.\nSie können sich aber bei http://www.freechess.org registrieren lassen." #: lib/pychess/ic/FICSConnection.py:166 msgid "Connecting to server" msgstr "Verbindung zum Server herstellen" #: lib/pychess/ic/FICSConnection.py:181 msgid "Logging on to server" msgstr "Beim Server anmelden" #: lib/pychess/ic/FICSConnection.py:239 msgid "Setting up environment" msgstr "Umgebung wird eingerichtet" #: lib/pychess/ic/FICSObjects.py:35 lib/pychess/ic/FICSObjects.py:47 #, python-format msgid "%(player)s is %(status)s" msgstr "%(player)s ist %(status)s" #: lib/pychess/ic/FICSObjects.py:46 msgid "not playing" msgstr "spielt nicht" #: lib/pychess/ic/FICSObjects.py:54 lib/pychess/ic/ICLounge.py:1136 #: lib/pychess/ic/ICLounge.py:2209 lib/pychess/ic/__init__.py:98 #: lib/pychess/widgets/newGameDialog.py:153 msgid "Blitz" msgstr "Blitz" #: lib/pychess/ic/FICSObjects.py:58 lib/pychess/ic/ICLounge.py:1137 #: lib/pychess/ic/ICLounge.py:2209 lib/pychess/ic/__init__.py:100 msgid "Lightning" msgstr "Bullet" #: lib/pychess/ic/FICSObjects.py:60 lib/pychess/Variants/atomic.py:15 msgid "Atomic" msgstr "Atomschach" #: lib/pychess/ic/FICSObjects.py:62 lib/pychess/Variants/bughouse.py:9 msgid "Bughouse" msgstr "Tandemschach" #: lib/pychess/ic/FICSObjects.py:64 lib/pychess/Variants/crazyhouse.py:9 msgid "Crazyhouse" msgstr "Einsetzschach" #: lib/pychess/ic/FICSObjects.py:66 lib/pychess/Variants/losers.py:9 msgid "Losers" msgstr "Losers, engl. Räberschachvariante" #: lib/pychess/ic/FICSObjects.py:68 lib/pychess/Variants/suicide.py:12 msgid "Suicide" msgstr "Räuberschach" #: lib/pychess/ic/FICSObjects.py:70 lib/pychess/ic/__init__.py:129 msgid "Wild" msgstr "Wild" #: lib/pychess/ic/FICSObjects.py:117 msgid "Online" msgstr "Verbunden" #: lib/pychess/ic/FICSObjects.py:118 lib/pychess/ic/FICSObjects.py:143 msgid "Offline" msgstr "Nicht verbunden" #: lib/pychess/ic/FICSObjects.py:133 msgid "Available" msgstr "Verfügbar" #: lib/pychess/ic/FICSObjects.py:135 msgid "Playing" msgstr "Es wird gespielt" #: lib/pychess/ic/FICSObjects.py:141 msgid "Idle" msgstr "Untätig" #: lib/pychess/ic/FICSObjects.py:145 msgid "Examining" msgstr "Prüfe" #: lib/pychess/ic/FICSObjects.py:147 msgid "Not Available" msgstr "Nicht verfügbar" #: lib/pychess/ic/FICSObjects.py:149 msgid "Running Simul Match" msgstr "Simultanes Match läuft" #: lib/pychess/ic/FICSObjects.py:151 msgid "In Tournament" msgstr "Im Turnier" #: lib/pychess/ic/FICSObjects.py:308 lib/pychess/ic/FICSObjects.py:492 #: lib/pychess/ic/ICLounge.py:2278 msgid "Unrated" msgstr "Unbewertet" #: lib/pychess/ic/FICSObjects.py:491 lib/pychess/ic/ICLounge.py:670 #: lib/pychess/ic/ICLounge.py:1358 lib/pychess/ic/ICLounge.py:1558 #: lib/pychess/ic/ICLounge.py:2113 msgid "Rated" msgstr "Bewertet" #: lib/pychess/ic/FICSObjects.py:498 lib/pychess/ic/ICLounge.py:2098 #, python-format msgid "%d min" msgstr "%d Min." #: lib/pychess/ic/FICSObjects.py:500 #, python-format msgid " + %d sec" msgstr " +%d s" #: lib/pychess/ic/FICSObjects.py:517 #, python-format msgid "%(player)s plays %(color)s" msgstr "%(player)s spielt %(color)s" #: lib/pychess/ic/FICSObjects.py:519 lib/pychess/ic/ICLounge.py:909 msgid "white" msgstr "weiß" #: lib/pychess/ic/FICSObjects.py:519 lib/pychess/ic/ICLounge.py:909 msgid "black" msgstr "schwarz" #: lib/pychess/ic/FICSObjects.py:565 msgid "This is a continuation of an adjourned match" msgstr "Dies ist die Fortsetzung einer vertagten Partie" #: lib/pychess/ic/FICSObjects.py:654 msgid "Opponent Rating" msgstr "Rang des Gegners" #: lib/pychess/ic/FICSObjects.py:656 msgid "Manual Accept" msgstr "Manuell Annehmen" #: lib/pychess/ic/FICSObjects.py:810 msgid "Private" msgstr "Privat" #: lib/pychess/ic/FICSObjects.py:930 lib/pychess/ic/ICLounge.py:527 #: lib/pychess/Savers/epd.py:139 msgid "Unknown" msgstr "Unbekannt" #: lib/pychess/ic/ICLogon.py:159 lib/pychess/ic/ICLogon.py:165 msgid "Connection Error" msgstr "Verbindungsfehler" #: lib/pychess/ic/ICLogon.py:161 msgid "Log on Error" msgstr "Fehler bei der Anmeldung" #: lib/pychess/ic/ICLogon.py:163 msgid "Connection was closed" msgstr "Verbindung wurde getrennt" #: lib/pychess/ic/ICLogon.py:169 msgid "Address Error" msgstr "Adressfehler" #: lib/pychess/ic/ICLogon.py:172 msgid "Auto-logout" msgstr "Automatisch abmelden" #: lib/pychess/ic/ICLogon.py:173 msgid "You have been logged out because you were idle more than 60 minutes" msgstr "Sie wurden ausgeloggt, weil so länger als 60 Minuten untätig waren." #: lib/pychess/ic/ICLounge.py:222 msgid "You have to set kibitz on to see bot messages here." msgstr "" #: lib/pychess/ic/ICLounge.py:241 msgid "" "You may only have 3 outstanding seeks at the same time. If you want to add a" " new seek you must clear your currently active seeks. Clear your seeks?" msgstr "Es können nur 3 Suchanfragen gleichzeitig gestellt werden. Für weitere Suchanfragen werden die bestehenden Suchanfragen gelöscht. Löschen?" #: lib/pychess/ic/ICLounge.py:258 msgid "You can't touch this! You are examining a game." msgstr "" #: lib/pychess/ic/ICLounge.py:270 msgid " has declined your offer for a match" msgstr "hat Ihre Partieeinladung abgelehnt" #: lib/pychess/ic/ICLounge.py:283 msgid " is censoring you" msgstr "begutachtet Sie" #: lib/pychess/ic/ICLounge.py:296 msgid " noplay listing you" msgstr "setzt Sie auf die Noplay-Liste" #: lib/pychess/ic/ICLounge.py:311 msgid " uses a formula not fitting your match request:" msgstr "entspricht nicht den Kriterien Ihrer Spielanfrage" #: lib/pychess/ic/ICLounge.py:325 msgid "to manual accept" msgstr "zum manuellen Annehmen" #: lib/pychess/ic/ICLounge.py:327 msgid "to automatic accept" msgstr "zum automatischen Annehmen" #: lib/pychess/ic/ICLounge.py:329 msgid "rating range now" msgstr "Bewertungsspektrum" #: lib/pychess/ic/ICLounge.py:330 msgid "Seek updated" msgstr "Suche aktualisiert" #: lib/pychess/ic/ICLounge.py:342 msgid "Your seeks have been removed" msgstr "Suchanfragen wurden gelöscht" #: lib/pychess/ic/ICLounge.py:363 msgid " has arrived" msgstr "ist angekommen" #: lib/pychess/ic/ICLounge.py:370 msgid " has departed" msgstr "ist abgereist" #: lib/pychess/ic/ICLounge.py:374 msgid " is present" msgstr "ist anwesend" #: lib/pychess/ic/ICLounge.py:391 sidepanel/chatPanel.py:17 msgid "Chat" msgstr "Chat" #: lib/pychess/ic/ICLounge.py:472 sidepanel/bookPanel.py:366 msgid "Win" msgstr "Sieg" #: lib/pychess/ic/ICLounge.py:472 sidepanel/bookPanel.py:360 msgid "Draw" msgstr "Remis" #: lib/pychess/ic/ICLounge.py:472 sidepanel/bookPanel.py:363 msgid "Loss" msgstr "Niederlage" #: lib/pychess/ic/ICLounge.py:482 msgid "" "On FICS, your \"Wild\" rating encompasses all of the following variants at " "all time controls:\n" msgstr "Auf FICS umfasst Ihre \"Wild\" Wertung alle der folgenden Varianten bei allen Zeitkontrollen:\n" #: lib/pychess/ic/ICLounge.py:494 msgid "Sanctions" msgstr "Sanktionen" #: lib/pychess/ic/ICLounge.py:499 msgid "Email" msgstr "eMail" #: lib/pychess/ic/ICLounge.py:504 msgid "Spent" msgstr "verstrichene Zeit" #: lib/pychess/ic/ICLounge.py:506 msgid "online in total" msgstr "Insgesamt online" #: lib/pychess/ic/ICLounge.py:512 msgid "Ping" msgstr "Ping" #: lib/pychess/ic/ICLounge.py:517 msgid "Connecting" msgstr "Verbinde" #: lib/pychess/ic/ICLounge.py:544 msgid "" "You are currently logged in as a guest.\n" "A guest can't play rated games and therefore isn't able to play as many of the types of matches offered as a registered user. To register an account, go to http://www.freechess.org/Register/index.html." msgstr "Sie sind momentan als Gast eingeloggt.\nAls Gast können sie keine Wertungspartien spielen und sind dementsprechend nicht in der Lage, die gleiche Anzahl an Spieltypen zu spielen, die einem registrierten Benutzer zu Verfügung stehen. Um ein Konto zu registrieren, besuchen Sie http://www.freechess.org/Register/index.html." #: lib/pychess/ic/ICLounge.py:669 lib/pychess/ic/ICLounge.py:1136 msgid "Name" msgstr "Name" #: lib/pychess/ic/ICLounge.py:670 lib/pychess/ic/ICLounge.py:1358 #: lib/pychess/ic/ICLounge.py:1558 msgid "Type" msgstr "Typ" #: lib/pychess/ic/ICLounge.py:670 lib/pychess/ic/ICLounge.py:1558 msgid "Clock" msgstr "Uhr" #: lib/pychess/ic/ICLounge.py:726 lib/pychess/ic/ICLounge.py:923 #: lib/pychess/Players/Human.py:250 msgid "Accept" msgstr "Annehmen" #: lib/pychess/ic/ICLounge.py:728 msgid "Assess" msgstr "" #: lib/pychess/ic/ICLounge.py:734 msgid "Archived" msgstr "" #: lib/pychess/ic/ICLounge.py:848 #, python-format msgid "Active seeks: %d" msgstr "Aktive Suchanfragen: %d" #: lib/pychess/ic/ICLounge.py:897 #, python-format msgid "" " would like to resume your adjourned %(time)s %(gametype)s " "game." msgstr "würden Sie gerne Ihr vertagtes Spiel %(time)s %(gametype)s wieder aufnehmen?" #: lib/pychess/ic/ICLounge.py:902 #, python-format msgid "" " challenges you to a %(time)s %(rated)s %(gametype)s game" msgstr "fordert Sie zu einem %(time)s %(rated)s %(gametype)s Spiel heraus" #: lib/pychess/ic/ICLounge.py:907 #, python-format msgid " where %(player)s plays %(color)s." msgstr " indem %(player)s %(color)s spielt." #: lib/pychess/ic/ICLounge.py:924 lib/pychess/Players/Human.py:251 msgid "Decline" msgstr "Ablehnen" #: lib/pychess/ic/ICLounge.py:1065 msgid " min" msgstr " Min." #: lib/pychess/ic/ICLounge.py:1137 msgid "Status" msgstr "Status" #: lib/pychess/ic/ICLounge.py:1203 lib/pychess/ic/ICLounge.py:1233 #, python-format msgid "Players: %d" msgstr "Spieler: %d" #: lib/pychess/ic/ICLounge.py:1469 #, python-format msgid "Games running: %d" msgstr "Laufende Partien: %d" #: lib/pychess/ic/ICLounge.py:1559 msgid "Date/Time" msgstr "Datum/Zeit" #: lib/pychess/ic/ICLounge.py:1614 #, python-format msgid "" " with whom you have an adjourned %(timecontrol)s %(gametype)s " "game is online." msgstr "mit dem Sie ein vertagtes %(timecontrol)s %(gametype)s Spiel haben, ist online." #: lib/pychess/ic/ICLounge.py:1635 msgid "Request Continuation" msgstr "Fortsetzung erbitten" #: lib/pychess/ic/ICLounge.py:1637 msgid "Examine Adjourned Game" msgstr "Pausiertes Spiel untersuchen" #: lib/pychess/ic/ICLounge.py:1965 msgid "" "The chain button is disabled because you are logged in as a guest. Guests " "can't establish ratings, and the chain button's state has no effect when " "there is no rating to which to tie \"Opponent Strength\" to" msgstr "Der Ketten-Button ist deaktiviert, weil Sie als Gast eingeloggt sind. Gäste können keine Bewertungen abgeben, und der Ketten-Button hat keine Wirkung ohne Bewertung der gegnerischen Stärke." #: lib/pychess/ic/ICLounge.py:2006 msgid "Challenge: " msgstr "Herausforderung: " #: lib/pychess/ic/ICLounge.py:2044 msgid "If set you can refuse players accepting your seek" msgstr "" #: lib/pychess/ic/ICLounge.py:2048 lib/pychess/ic/ICLounge.py:2051 msgid "This option is not applicable because you're challenging a player" msgstr "Diese Option wird nicht angewendet, weil Sie der herausfordernde Spieler sind" #: lib/pychess/ic/ICLounge.py:2064 msgid "Edit Seek: " msgstr "Bearbeite Suchanfrage" #: lib/pychess/ic/ICLounge.py:2095 #, python-format msgid "%(minutes)d min + %(gain)d sec/move" msgstr "%(minutes)d Min + %(gain)d Sek/Zug" #: lib/pychess/ic/ICLounge.py:2116 msgid "Manual" msgstr "Anleitung" #: lib/pychess/ic/ICLounge.py:2256 msgid "Any strength" msgstr "Beliebige Stärke" #: lib/pychess/ic/ICLounge.py:2308 msgid "You can't play rated games because you are logged in as a guest" msgstr "Sie können keine bewerteten Spiele spielen, da Sie als Gast eingeloggt sind" #: lib/pychess/ic/ICLounge.py:2312 msgid "You can't play rated games because \"Untimed\" is checked, " msgstr "Sie können keine bewerteten Spiele spielen, da die Schachuhr deaktiviert ist" #: lib/pychess/ic/ICLounge.py:2313 msgid "and on FICS, untimed games can't be rated" msgstr "Im FICS können keine Spiele ohne Schachuhr bewertet werden" #: lib/pychess/ic/ICLounge.py:2317 msgid "This option is not available because you're challenging a guest, " msgstr "Diese Option steht nicht zur Verfügung, weil Sie einen Gast herausfordern, " #: lib/pychess/ic/ICLounge.py:2318 msgid "and guests can't play rated games" msgstr "Gäste können nicht an bewerteten Spielen teilnehmen" #: lib/pychess/ic/ICLounge.py:2332 lib/pychess/Variants/shuffle.py:16 #: lib/pychess/widgets/newGameDialog.py:266 msgid "Shuffle" msgstr "Mischen" #: lib/pychess/ic/ICLounge.py:2333 lib/pychess/widgets/newGameDialog.py:267 msgid "Other (standard rules)" msgstr "Andere (Standardregeln)" #: lib/pychess/ic/ICLounge.py:2334 lib/pychess/widgets/newGameDialog.py:268 msgid "Other (non standard rules)" msgstr "Andere (keine Standardregeln)" #: lib/pychess/ic/ICLounge.py:2421 msgid "You can't select a variant because \"Untimed\" is checked, " msgstr "Sie können keine Varianten einstellen, da die Schachuhr deaktiviert ist" #: lib/pychess/ic/ICLounge.py:2422 msgid "and on FICS, untimed games have to be normal chess rules" msgstr "Im FICS können Spiele ohne Schachuhr nur nach den Standard Schachregeln gespielt werden." #: lib/pychess/ic/ICLounge.py:2454 msgid "Change Tolerance" msgstr "Toleranz ändern" #: lib/pychess/ic/__init__.py:102 msgid "Examined" msgstr "Untersucht" #: lib/pychess/ic/__init__.py:103 msgid "Other" msgstr "Sonstiges" #: lib/pychess/ic/__init__.py:182 msgid "Administrator" msgstr "Administrator" #: lib/pychess/ic/__init__.py:182 msgid "Blindfold Account" msgstr "Blindschach Account" #: lib/pychess/ic/__init__.py:182 msgid "Computer" msgstr "Rechner" #: lib/pychess/ic/__init__.py:183 msgid "Team Account" msgstr "Team-Konto" #: lib/pychess/ic/__init__.py:183 msgid "Unregistered" msgstr "Unregistriert" #: lib/pychess/ic/__init__.py:183 msgid "Chess Advisor" msgstr "Schachbeistand" #: lib/pychess/ic/__init__.py:184 msgid "Service Representative" msgstr "Verteter des Dienstes" #: lib/pychess/ic/__init__.py:184 msgid "Tournament Director" msgstr "Turnierleiter" #: lib/pychess/ic/__init__.py:184 msgid "Mamer Manager" msgstr "Mamer Manager" #: lib/pychess/ic/__init__.py:185 msgid "Grand Master" msgstr "Großmeister" #: lib/pychess/ic/__init__.py:185 msgid "International Master" msgstr "Internationaler Meister" #: lib/pychess/ic/__init__.py:185 msgid "FIDE Master" msgstr "FIDE-Meister" #: lib/pychess/ic/__init__.py:186 msgid "Woman Grand Master" msgstr "Großmeisterin" #: lib/pychess/ic/__init__.py:186 msgid "Woman International Master" msgstr "Internationale Meisterin" #: lib/pychess/ic/__init__.py:186 msgid "Woman FIDE Master" msgstr "Frauen-FIDE-Meister" #: lib/pychess/ic/__init__.py:187 msgid "Dummy Account" msgstr "Dummy-Konto" #: lib/pychess/ic/__init__.py:191 msgid "*" msgstr "*" #: lib/pychess/ic/__init__.py:191 lib/pychess/Utils/repr.py:14 msgid "B" msgstr "B" #: lib/pychess/ic/__init__.py:191 msgid "C" msgstr "C" #: lib/pychess/ic/__init__.py:192 msgid "T" msgstr "T" #: lib/pychess/ic/__init__.py:192 msgid "U" msgstr "U" #: lib/pychess/ic/__init__.py:192 msgid "CA" msgstr "CA" #: lib/pychess/ic/__init__.py:193 msgid "SR" msgstr "SR" #: lib/pychess/ic/__init__.py:193 msgid "TD" msgstr "TD" #: lib/pychess/ic/__init__.py:193 msgid "TM" msgstr "TM" #: lib/pychess/ic/__init__.py:194 msgid "GM" msgstr "GM" #: lib/pychess/ic/__init__.py:194 msgid "IM" msgstr "IM" #: lib/pychess/ic/__init__.py:194 msgid "FM" msgstr "FM" #: lib/pychess/ic/__init__.py:195 msgid "WGM" msgstr "WGM" #: lib/pychess/ic/__init__.py:195 msgid "WIM" msgstr "WIM" #: lib/pychess/ic/__init__.py:195 msgid "WFM" msgstr "WFM" #: lib/pychess/ic/__init__.py:195 msgid "D" msgstr "D" #: lib/pychess/ic/__init__.py:195 msgid "H" msgstr "" #: lib/pychess/ic/__init__.py:195 msgid "CM" msgstr "" #: lib/pychess/ic/__init__.py:195 msgid "FA" msgstr "" #: lib/pychess/ic/__init__.py:195 msgid "NM" msgstr "" #: lib/pychess/Players/CECPEngine.py:857 #, python-format msgid "The engine %s reports an error:" msgstr "The Engine %s hat einen Fehler ausgegeben:" #: lib/pychess/Players/Human.py:20 msgid "Your opponent has offered you a draw." msgstr "Ihr Gegner bietet Ihnen ein Unentschieden an." #: lib/pychess/Players/Human.py:21 msgid "" "Your opponent has offered you a draw. If you accept this offer, the game " "will end with a score of 1/2 - 1/2." msgstr "Ihr Gegner hat Remis angeboten. Wenn Sie es annehmen, wird die Partie 1/2 zu 1/2 bewertet." #: lib/pychess/Players/Human.py:23 msgid "Your opponent wants to abort the game." msgstr "Ihr Gegner möchte die Partie beenden" #: lib/pychess/Players/Human.py:24 msgid "" "Your opponent has asked that the game be aborted. If you accept this offer, " "the game will end with no rating change." msgstr "Ihr Gegner bittet darum, die Partie abzubrechen. Sie wird dann nicht bewertet." #: lib/pychess/Players/Human.py:26 msgid "Your opponent wants to adjourn the game." msgstr "Dein Gegner möchte die Partie verschieben" #: lib/pychess/Players/Human.py:27 msgid "" "Your opponent has asked that the game be adjourned. If you accept this " "offer, the game will be adjourned and you can resume it later (when your " "opponent is online and both players agree to resume)." msgstr "Ihr Gegner bittet darum die Partie zu vertagen. Wenn Sie annehmen kann sie später wiederaufgenommen werden (wenn beide Gegner online sind und der Wiederaufnahme zustimmen)." #: lib/pychess/Players/Human.py:29 #, python-format msgid "Your opponent wants to undo %s move(s)." msgstr "Ihr Gegner möchte %s Zug/Züge zurücknehmen." #: lib/pychess/Players/Human.py:30 #, python-format msgid "" "Your opponent has asked that the last %s move(s) be undone. If you accept " "this offer, the game will continue from the earlier position." msgstr "Ihr Gegner bittet darum, die letzten %s Züge zurückzunehmen. Wenn Sie annehmen, wird die Partie von der früheren Position weitergeführt." #: lib/pychess/Players/Human.py:32 msgid "Your opponent wants to pause the game." msgstr "Ihr Gegner will eine Spielpause." #: lib/pychess/Players/Human.py:33 msgid "" "Your opponent has asked that the game be paused. If you accept this offer, " "the game clock will be paused until both players agree to resume the game." msgstr "Ihr Gegner bitte um eine Pause. Wenn Sie annehmen, wird die Uhr so lange angehalten, bis beide Spieler der Wiederaufnahme zustimmen." #: lib/pychess/Players/Human.py:35 msgid "Your opponent wants to resume the game." msgstr "Ihr Gegner möchte die Partie fortsetzen." #: lib/pychess/Players/Human.py:36 msgid "" "Your opponent has asked that the game be resumed. If you accept this offer, " "the game clock will continue from where it was paused." msgstr "Ihr Gegner möchte mit der Partie fortfahren. Wenn Sie annehmen, läuft die Uhr weiter." #: lib/pychess/Players/Human.py:40 msgid "The resignation" msgstr "Die Aufgabe" #: lib/pychess/Players/Human.py:41 msgid "The flag call" msgstr "Zeitablauf reklamieren" #: lib/pychess/Players/Human.py:42 msgid "The draw offer" msgstr "Das Remis-Angebot" #: lib/pychess/Players/Human.py:43 msgid "The abort offer" msgstr "Das Abbruch-Angebot" #: lib/pychess/Players/Human.py:44 msgid "The adjourn offer" msgstr "Das Vertagungs-Angebot" #: lib/pychess/Players/Human.py:45 msgid "The pause offer" msgstr "Das Pausen-Angebot" #: lib/pychess/Players/Human.py:46 msgid "The resume offer" msgstr "Das Fortsetzen-Angebot" #: lib/pychess/Players/Human.py:47 msgid "The offer to switch sides" msgstr "Das Seitentausch-Angebot" #: lib/pychess/Players/Human.py:48 msgid "The takeback offer" msgstr "Das Rücknahme-Angebot" #: lib/pychess/Players/Human.py:52 msgid "resign" msgstr "aufgeben" #: lib/pychess/Players/Human.py:53 msgid "call your opponents flag" msgstr "Zeitablauf des Gegners reklamieren" #: lib/pychess/Players/Human.py:54 msgid "offer a draw" msgstr "Remis anbieten" #: lib/pychess/Players/Human.py:55 msgid "offer an abort" msgstr "Aufgabe anbieten" #: lib/pychess/Players/Human.py:56 msgid "offer to adjourn" msgstr "Vertagung anbieten" #: lib/pychess/Players/Human.py:57 msgid "offer a pause" msgstr "Eine Pause anbieten" #: lib/pychess/Players/Human.py:58 msgid "offer to resume" msgstr "Anbieten, weiter zu spielen" #: lib/pychess/Players/Human.py:59 msgid "offer to switch sides" msgstr "Anbieten, die Seiten zu wechseln" #: lib/pychess/Players/Human.py:60 msgid "offer a takeback" msgstr "Eine Zurücknahme des letzten Zugs anbieten" #: lib/pychess/Players/Human.py:61 msgid "ask your opponent to move" msgstr "Um zügiges Weiterspielen bitten" #: lib/pychess/Players/Human.py:66 msgid "Your opponent is not out of time." msgstr "Ihr Gegner verfügt noch über Restspielzeit." #: lib/pychess/Players/Human.py:68 msgid "The clock hasn't been started yet." msgstr "Die Uhr läuft noch nicht." #: lib/pychess/Players/Human.py:70 msgid "You can't switch colors during the game." msgstr "Sie können die Farbe nicht während des Spiels wechseln." #: lib/pychess/Players/Human.py:72 msgid "You have tried to undo too many moves." msgstr "Sie haben versucht, zu viele Züge zurückzunehmen." #: lib/pychess/Players/Human.py:180 msgid "Your opponent asks you to hurry!" msgstr "Ihr Gegner bittet Sie, sich zu beeilen!" #: lib/pychess/Players/Human.py:181 msgid "" "Generally this means nothing, as the game is time-based, but if you want to " "please your opponent, perhaps you should get going." msgstr "Generell bedeutet dies nichts, da das Spiel zeitbasiert ist, aber wenn Sie Ihren Gegner zufriedenstellen wollen, sollten Sie vielleicht weitermachen." #: lib/pychess/Players/Human.py:259 #, python-format msgid "%s was declined by your opponent" msgstr "%s wurde durch Ihren Gegner abgelehnt." #: lib/pychess/Players/Human.py:260 #, python-format msgid "Resend %s?" msgstr "%s erneut senden?" #: lib/pychess/Players/Human.py:267 msgid "Resend" msgstr "Erneut senden" #: lib/pychess/Players/Human.py:275 #, python-format msgid "%s was withdrawn by your opponent" msgstr "%s wurde von Ihrem Gegner zurückgenommen" #: lib/pychess/Players/Human.py:276 msgid "Your opponent seems to have changed their mind." msgstr "Scheinbar hat Ihr Gegner seine Meinung geändert." #: lib/pychess/Players/Human.py:290 #, python-format msgid "Unable to accept %s" msgstr "Unfähig %s zu akzeptieren" #: lib/pychess/Players/Human.py:291 msgid "Probably because it has been withdrawn." msgstr "Möglicherweise weil es zurückgezogen wurde." #: lib/pychess/Players/Human.py:298 #, python-format msgid "%s returns an error" msgstr "%s gibt einen Fehler zurück" #: lib/pychess/Savers/chessalpha2.py:12 msgid "Chess Alpha 2 Diagram" msgstr "Schach-Alpha-2-Diagramm" #: lib/pychess/Savers/chesspastebin.py:39 msgid "Game shared at " msgstr "Spiel geteilt auf" #: lib/pychess/Savers/chesspastebin.py:41 msgid "(Link is available on clipboard.)" msgstr "(Der Link wurde in die Zwischenablage kopiert)" #: lib/pychess/Savers/database.py:19 msgid "PyChess database" msgstr "PyChess Datenbank" #: lib/pychess/Savers/epd.py:12 msgid "Chess Position" msgstr "Schachstellung" #: lib/pychess/Savers/fen.py:12 msgid "Simple Chess Position" msgstr "Einfache Schach-Position" #: lib/pychess/Savers/fen.py:44 lib/pychess/Savers/pgn.py:329 msgid "The game can't be loaded, because of an error parsing FEN" msgstr "Das Spiel kann wegen eines Fehlers in der FEN-Datei nicht geladen werden." #: lib/pychess/Savers/pgnbase.py:100 #, python-format msgid "" "The game can't be read to end, because of an error parsing move %(moveno)s " "'%(notation)s'." msgstr "Das Spiel kann wegen eines Fehlers beim verarbeiten von Zug %(moveno)s '%(notation)s' nicht bis zum Ende eingelesen werden." #: lib/pychess/Savers/pgnbase.py:102 #, python-format msgid "The move failed because %s." msgstr "Der Zug schlug fehl, weil %s." #: lib/pychess/Savers/pgnbase.py:110 #, python-format msgid "Error parsing move %(moveno)s %(mstr)s" msgstr "Fehler beim verarbeiten von Zug %(moveno)s %(mstr)s" #: lib/pychess/Savers/pgn.py:28 msgid "Chess Game" msgstr "Schachpartie" #: lib/pychess/Savers/pgn.py:362 msgid "Invalid move." msgstr "Ungültiger Zug." #: lib/pychess/Savers/png.py:15 msgid "Png image" msgstr "PNG Bild" #: lib/pychess/System/ping.py:31 msgid "Destination Host Unreachable" msgstr "Zielrechner nicht erreichbar" #: lib/pychess/System/ping.py:74 msgid "Died" msgstr "Gestorben" #: lib/pychess/Utils/GameModel.py:147 msgid "Local Event" msgstr "Lokales Ereignis" #: lib/pychess/Utils/GameModel.py:148 msgid "Local Site" msgstr "Lokaler Ort" #: lib/pychess/Utils/repr.py:12 msgid "Pawn" msgstr "Bauer" #: lib/pychess/Utils/repr.py:14 msgid "P" msgstr "B" #: lib/pychess/Utils/repr.py:14 msgid "N" msgstr "S" #: lib/pychess/Utils/repr.py:14 msgid "R" msgstr "T" #: lib/pychess/Utils/repr.py:14 msgid "Q" msgstr "D" #: lib/pychess/Utils/repr.py:14 msgid "K" msgstr "K" #: lib/pychess/Utils/repr.py:17 msgid "The game ended in a draw" msgstr "Die Partie endete Remis" #: lib/pychess/Utils/repr.py:18 #, python-format msgid "%(white)s won the game" msgstr "%(white)s hat das Spiel gewonnen" #: lib/pychess/Utils/repr.py:19 #, python-format msgid "%(black)s won the game" msgstr "%(black)s hat das Spiel gewonnen" #: lib/pychess/Utils/repr.py:20 msgid "The game has been killed" msgstr "Die Partie wurde beendet" #: lib/pychess/Utils/repr.py:21 msgid "The game has been adjourned" msgstr "Die Partie wurde vertagt" #: lib/pychess/Utils/repr.py:22 msgid "The game has been aborted" msgstr "Das Spiel wurde abgebrochen" #: lib/pychess/Utils/repr.py:26 msgid "Because neither player has sufficient material to mate" msgstr "Weil kein Spieler ausreichendes Material zum Mattsetzen hat" #: lib/pychess/Utils/repr.py:27 msgid "Because the same position was repeated three times in a row" msgstr "Dieselbe Stellung hat sich dreimal hintereinander wiederholt" #: lib/pychess/Utils/repr.py:28 msgid "Because the last 50 moves brought nothing new" msgstr "Wegen der 50-Züge-Regel" #: lib/pychess/Utils/repr.py:29 msgid "Because both players ran out of time" msgstr "Weil beide Spieler an Zeitnot gestorben sind" #: lib/pychess/Utils/repr.py:30 #, python-format msgid "Because %(mover)s stalemated" msgstr "Weil %(mover)s zugunfähig ist: Patt!" #: lib/pychess/Utils/repr.py:31 msgid "Because both players agreed to a draw" msgstr "Beide Spieler einigten sich auf ein Unentschieden" #: lib/pychess/Utils/repr.py:32 lib/pychess/Utils/repr.py:42 msgid "Because of adjudication by an admin" msgstr "Entscheidung eines Admins" #: lib/pychess/Utils/repr.py:33 msgid "Because the game exceed the max length" msgstr "Die Partie hat die maximale Länge überschritten" #: lib/pychess/Utils/repr.py:34 #, python-format msgid "" "Because %(white)s ran out of time and %(black)s has insufficient material to" " mate" msgstr "Weil die Zeit von %(white)s abgelaufen ist und %(black)s kein ausreichendes Material zum Mattsetzen hat" #: lib/pychess/Utils/repr.py:35 #, python-format msgid "" "Because %(black)s ran out of time and %(white)s has insufficient material to" " mate" msgstr "Weil die Zeit von %(black)s abgelaufen ist und %(white)s kein ausreichendes Material zum Mattsetzen hat" #: lib/pychess/Utils/repr.py:36 msgid "Because both players have the same amount of pieces" msgstr "Weil beide Spieler dieselbe Anzahl Figuren haben" #: lib/pychess/Utils/repr.py:38 #, python-format msgid "Because %(loser)s resigned" msgstr "Weil %(loser)s aufgegeben hat" #: lib/pychess/Utils/repr.py:39 #, python-format msgid "Because %(loser)s ran out of time" msgstr "Weil %(loser)s an Zeitnot gestorben ist" #: lib/pychess/Utils/repr.py:40 #, python-format msgid "Because %(loser)s was checkmated" msgstr "Weil %(loser)s schachmatt gesetzt wurde" #: lib/pychess/Utils/repr.py:41 #, python-format msgid "Because %(loser)s disconnected" msgstr "%(loser)s hat sich abgemeldet" #: lib/pychess/Utils/repr.py:43 #, python-format msgid "Because %(winner)s has fewer pieces" msgstr "%(winner)s hat weniger Figuren" #: lib/pychess/Utils/repr.py:44 #, python-format msgid "Because %(winner)s lost all pieces" msgstr "%(winner)s verlor alle Figuren" #: lib/pychess/Utils/repr.py:45 #, python-format msgid "Because %(loser)s king exploded" msgstr "Weil der König von %(loser)s explodiert ist" #: lib/pychess/Utils/repr.py:46 #, python-format msgid "Because %(winner)s king reached the center" msgstr "Weil %(winner)s König die Brettmitte erreicht hat" #: lib/pychess/Utils/repr.py:47 #, python-format msgid "Because %(winner)s was giving check 3 times" msgstr "Weil %(winner)s 3-mal im Schach gestanden hat" #: lib/pychess/Utils/repr.py:49 msgid "Because a player lost connection" msgstr "Weil ein Spieler die Verbindung verloren hat" #: lib/pychess/Utils/repr.py:50 msgid "Because both players agreed to an adjournment" msgstr "Beide Spieler einigten sich auf eine Unterbrechung." #: lib/pychess/Utils/repr.py:51 msgid "Because the server was shut down" msgstr "Weil der Server heruntergefahren wurde" #: lib/pychess/Utils/repr.py:52 msgid "" "Because a player lost connection and the other player requested adjournment" msgstr "Weil ein Spieler seine Verbindung verloren- und der andere Spieler Unterbrechung gefordert hat" #: lib/pychess/Utils/repr.py:53 #, python-format msgid "" "Because %(black)s lost connection to the server and %(white)s requested " "adjournment" msgstr "Weil %(black)s die Verbindung zum Server verloren- und %(white)s Unterbrechung gefordert hat" #: lib/pychess/Utils/repr.py:54 #, python-format msgid "" "Because %(white)s lost connection to the server and %(black)s requested " "adjournment" msgstr "Weil %(white)s die Verbindung zum Server verloren- und %(black)s Unterbrechung gefordert hat" #: lib/pychess/Utils/repr.py:55 #, python-format msgid "Because %(white)s lost connection to the server" msgstr "Weil %(white)s die Verbindung verloren hat" #: lib/pychess/Utils/repr.py:56 #, python-format msgid "Because %(black)s lost connection to the server" msgstr "Weil %(black)s die Verbindung verloren hat" #: lib/pychess/Utils/repr.py:58 msgid "Because of adjudication by an admin. No rating changes have occurred." msgstr "Aufgrund einer Entscheidung eines Administrators. Keine Wertungsänderungen sind aufgetreten." #: lib/pychess/Utils/repr.py:59 msgid "" "Because both players agreed to abort the game. No rating changes have " "occurred." msgstr "Weil beide Spieler einem Spielabbruch zugestimmt haben. Keine Wertungsänderungen sind aufgetreten." #: lib/pychess/Utils/repr.py:60 msgid "Because of courtesy by a player. No rating changes have occurred." msgstr "Aufgrund der Großzügigkeit eines Spielers. Keine Wertungsänderungen sind aufgetreten." #: lib/pychess/Utils/repr.py:61 msgid "" "Because a player aborted the game. Either player can abort the game without " "the other's consent before the second move. No rating changes have occurred." msgstr "Weil ein Spieler das Spiel abgebrochen hat. Jeder Spieler kann das Spiel vor dem zweiten Zug, ohne die Zustimmung des Anderen abbrechen. Keine Wertungsänderungen sind aufgetreten." #: lib/pychess/Utils/repr.py:62 msgid "" "Because a player disconnected and there are too few moves to warrant " "adjournment. No rating changes have occurred." msgstr "Weil ein Spieler sich abgemeldet hat und zu wenig Züge hatte um eine Vertagung zu fordern. Es wurden keine Bewertungsänderungen vorgenommen" #: lib/pychess/Utils/repr.py:63 msgid "Because the server was shut down. No rating changes have occurred." msgstr "Weil der Server heruntergefahren wurde. Es wurden keine Bewertungsänderungen vorgenommen" #: lib/pychess/Utils/repr.py:65 #, python-format msgid "Because the %(white)s engine died" msgstr "Weil die Engine von %(white)s abgestürzt ist" #: lib/pychess/Utils/repr.py:66 #, python-format msgid "Because the %(black)s engine died" msgstr "Weil die Engine von %(black)s abgestürzt ist" #: lib/pychess/Utils/repr.py:67 msgid "Because the connection to the server was lost" msgstr "Weil die Verbindung zum Server verloren wurde" #: lib/pychess/Utils/repr.py:68 msgid "The reason is unknown" msgstr "Der Grund ist nicht bekannt." #: lib/pychess/Utils/TimeModel.py:229 msgid "min" msgstr "Min." #: lib/pychess/Utils/TimeModel.py:231 msgid "sec" msgstr "s" #: lib/pychess/Variants/asean.py:12 msgid "" "ASEAN: http://www.ncf-" "phil.org/downloadables/2014/May/Asean_chess/Laws_of_ASEAN_Chess_2011_Nov_26.doc" msgstr "ASEAN: http://www.ncf-phil.org/downloadables/2014/May/Asean_chess/Laws_of_ASEAN_Chess_2011_Nov_26.doc" #: lib/pychess/Variants/asean.py:13 msgid "ASEAN" msgstr "ASEAN" #: lib/pychess/Variants/asean.py:33 msgid "Makruk: http://en.wikipedia.org/wiki/Makruk" msgstr "Makruk: https://de.wikipedia.org/wiki/Makruk" #: lib/pychess/Variants/asean.py:34 msgid "Makruk" msgstr "Makruk" #: lib/pychess/Variants/asean.py:60 msgid "Cambodian: http://www.khmerinstitute.org/culture/ok.html" msgstr "Ouk-Khmer: https://en.wikipedia.org/wiki/Ouk-Khmer_%28Hill's_version%29" #: lib/pychess/Variants/asean.py:61 msgid "Cambodian" msgstr "Ouk-Khmer" #: lib/pychess/Variants/asean.py:86 msgid "" "Ai-Wok: http://www.open-" "aurec.com/wbforum/viewtopic.php?p=199364&sid=20963a1de2c164050de019e5ed6bf7c4#p199364" msgstr "Ai-Wok: http://www.open-aurec.com/wbforum/viewtopic.php?p=199364&sid=20963a1de2c164050de019e5ed6bf7c4#p199364" #: lib/pychess/Variants/asean.py:87 msgid "Ai-Wok" msgstr "Ai-Wok" #: lib/pychess/Variants/asean.py:111 msgid "Sittuyin: http://en.wikipedia.org/wiki/Sittuyin" msgstr "Sittuyin: http://en.wikipedia.org/wiki/Sittuyin" #: lib/pychess/Variants/asean.py:112 msgid "Sittuyin" msgstr "Sittuyin" #: lib/pychess/Variants/asymmetricrandom.py:12 msgid "" "FICS wild/4: http://www.freechess.org/Help/HelpFiles/wild.html\n" "* Randomly chosen pieces (two queens or three rooks possible)\n" "* Exactly one king of each color\n" "* Pieces placed randomly behind the pawns, SUBJECT TO THE CONSTRAINT THAT THE BISHOPS ARE BALANCED\n" "* No castling\n" "* Black's arrangement DOES NOT mirrors white's" msgstr "FICS wild/4: http://www.freechess.org/Help/HelpFiles/wild.html\n* Zufällige Aufstellung (2 Damen oder 3 Türme möglich)\n* Genau ein König pro Farbe\n* Figuren werden zufällig hinter den Bauern aufgestellt. Jedoch sind die Läufer immer ausgeglichen.\n* Keine Rochade\n* Die schwarze Aufstellung spiegelt NICHT die weisse wider" #: lib/pychess/Variants/asymmetricrandom.py:18 msgid "Asymmetric Random" msgstr "Asymmetrisches Random-Chess" #: lib/pychess/Variants/atomic.py:14 msgid "FICS atomic: http://www.freechess.org/Help/HelpFiles/atomic.html" msgstr "FICS Atomschach: http://www.freechess.org/Help/HelpFiles/atomic.html" #: lib/pychess/Variants/blindfold.py:7 msgid "" "Classic chess rules with hidden figurines\n" "http://en.wikipedia.org/wiki/Blindfold_chess" msgstr "Klassische Schachregeln mit ausgeblendeten Figuren\nhttp://de.wikipedia.org/wiki/Blindschach" #: lib/pychess/Variants/blindfold.py:9 #: lib/pychess/widgets/newGameDialog.py:264 msgid "Blindfold" msgstr "Blindschach" #: lib/pychess/Variants/blindfold.py:18 msgid "" "Classic chess rules with hidden pawns\n" "http://en.wikipedia.org/wiki/Blindfold_chess" msgstr "Klassische Schachregeln mit ausgeblendeten Bauern\nhttp://de.wikipedia.org/wiki/Blindschach" #: lib/pychess/Variants/blindfold.py:20 msgid "Hidden pawns" msgstr "Versteckte Bauern" #: lib/pychess/Variants/blindfold.py:29 msgid "" "Classic chess rules with hidden pieces\n" "http://en.wikipedia.org/wiki/Blindfold_chess" msgstr "Klassische Schachregeln mit ausgeblendeten Figuren\nhttp://de.wikipedia.org/wiki/Blindschach" #: lib/pychess/Variants/blindfold.py:31 msgid "Hidden pieces" msgstr "Verdeckte Spielsteine" #: lib/pychess/Variants/blindfold.py:40 msgid "" "Classic chess rules with all pieces white\n" "http://en.wikipedia.org/wiki/Blindfold_chess" msgstr "Klassische Schachregeln mit allen weißen Figuren\nhttp://de.wikipedia.org/wiki/Blindschach" #: lib/pychess/Variants/blindfold.py:42 msgid "All white" msgstr "Alle weiß" #: lib/pychess/Variants/bughouse.py:8 msgid "FICS bughouse: http://www.freechess.org/Help/HelpFiles/bughouse.html" msgstr "FICS Tandemschach: http://www.freechess.org/Help/HelpFiles/bughouse.html" #: lib/pychess/Variants/corner.py:12 msgid "" "http://brainking.com/en/GameRules?tp=2\n" "* Placement of the pieces on the 1st and 8th row are randomized\n" "* The king is in the right hand corner\n" "* Bishops must start on opposite color squares\n" "* Black's starting position is obtained by rotating white's position 180 degrees around the board's center\n" "* No castling" msgstr "http://brainking.com/en/GameRules?tp=2\n* Zufällige Aufstellung der Figuren der 1. und 8. Reihe\n* Der König befindet sich in der rechten Ecke\n* Läufer stehen sich, in der Startaufstellung, gegenüber\n* Schwarze Aufstellung ist um 180 Grad gedrehte weisse\n* Keine Rochade" #: lib/pychess/Variants/corner.py:18 msgid "Corner" msgstr "Ecke" #: lib/pychess/Variants/crazyhouse.py:8 msgid "" "FICS crazyhouse: http://www.freechess.org/Help/HelpFiles/crazyhouse.html" msgstr "FICS Einsetzschach: http://www.freechess.org/Help/HelpFiles/crazyhouse.html" #: lib/pychess/Variants/euroshogi.py:9 msgid "EuroShogi: http://en.wikipedia.org/wiki/EuroShogi" msgstr "EuroShogi: http://en.wikipedia.org/wiki/EuroShogi" #: lib/pychess/Variants/euroshogi.py:10 msgid "EuroShogi" msgstr "EuroShogi" #: lib/pychess/Variants/fischerandom.py:18 msgid "" "http://en.wikipedia.org/wiki/Chess960\n" "FICS wild/fr: http://www.freechess.org/Help/HelpFiles/wild.html" msgstr "http://de.wikipedia.org/wiki/Chess960\nFICS wild/fr: http://www.freechess.org/Help/HelpFiles/wild.html" #: lib/pychess/Variants/fischerandom.py:20 msgid "Fischer Random" msgstr "Fischer Random" #: lib/pychess/Variants/kingofthehill.py:8 msgid "" "Bringing your king legally to the center (e4, d4, e5, d5) instantly wins the game!\n" "Normal rules apply in other cases and checkmate also ends the game." msgstr "Wessen König das Zentrum (e4, d4, e5, d5) erreicht, gewinnt das Spiel sofort!\nSonst gelten die normalen Regeln mit Sieg durch Matt setzen." #: lib/pychess/Variants/kingofthehill.py:10 msgid "King of the hill" msgstr "König des Hügels" #: lib/pychess/Variants/knightodds.py:8 msgid "One player starts with one less knight piece" msgstr "Ein Spieler startet mit einem Bauern weniger" #: lib/pychess/Variants/knightodds.py:9 msgid "Knight odds" msgstr "Springer Zugmöglichkeiten" #: lib/pychess/Variants/losers.py:8 msgid "FICS losers: http://www.freechess.org/Help/HelpFiles/losers_chess.html" msgstr "FICS losers: http://www.freechess.org/Help/HelpFiles/losers_chess.html" #: lib/pychess/Variants/normal.py:4 msgid "" "Classic chess rules\n" "http://en.wikipedia.org/wiki/Chess" msgstr "Klassische Schachregeln\nhttp://de.wikipedia.org/wiki/Schach" #: lib/pychess/Variants/normal.py:6 lib/pychess/widgets/newGameDialog.py:157 msgid "Normal" msgstr "Normal" #: lib/pychess/Variants/pawnodds.py:8 msgid "One player starts with one less pawn piece" msgstr "Ein Spieler beginnt mit einen Bauern weniger" #: lib/pychess/Variants/pawnodds.py:9 msgid "Pawn odds" msgstr "Bauern Zugmöglichkeiten" #: lib/pychess/Variants/pawnspassed.py:11 msgid "" "FICS wild/8a: http://www.freechess.org/Help/HelpFiles/wild.html\n" "White pawns start on 5th rank and black pawns on the 4th rank" msgstr "FICS wild/8a: http://www.freechess.org/Help/HelpFiles/wild.html\nWeisse Bauern starten auf der 5. Reihe und schwarze auf der 4." #: lib/pychess/Variants/pawnspassed.py:13 msgid "Pawns Passed" msgstr "Freibauern" #: lib/pychess/Variants/pawnspushed.py:10 msgid "" "FICS wild/8: http://www.freechess.org/Help/HelpFiles/wild.html\n" "Pawns start on 4th and 5th ranks rather than 2nd and 7th" msgstr "FICS wild/8: http://www.freechess.org/Help/HelpFiles/wild.html\nBauern starten auf der 4. und 5. Reihe, statt der 2. und 7. wie im normalen Spiel" #: lib/pychess/Variants/pawnspushed.py:12 msgid "Pawns Pushed" msgstr "Freibauern" #: lib/pychess/Variants/queenodds.py:8 msgid "One player starts with one less queen piece" msgstr "Ein Spieler startet ohne Dame" #: lib/pychess/Variants/queenodds.py:9 msgid "Queen odds" msgstr "Dame Zugmöglichkeiten" #: lib/pychess/Variants/randomchess.py:11 msgid "" "FICS wild/3: http://www.freechess.org/Help/HelpFiles/wild.html\n" "* Randomly chosen pieces (two queens or three rooks possible)\n" "* Exactly one king of each color\n" "* Pieces placed randomly behind the pawns\n" "* No castling\n" "* Black's arrangement mirrors white's" msgstr "FICS wild/3: http://www.freechess.org/Help/HelpFiles/wild.html\n* Zufällige Figuren (2 Damen oder 3 Türme möglich)\n* Genau ein König pro Farbe\n* Figuren werden zufällig hinter die Bauern gestellt\n* Keine Rochade\n* Die schwarze Aufstellung spiegelt die weisse wider" #: lib/pychess/Variants/randomchess.py:17 #: lib/pychess/widgets/TaskerManager.py:155 msgid "Random" msgstr "Zufall" #: lib/pychess/Variants/rookodds.py:8 msgid "One player starts with one less rook piece" msgstr "Ein Spieler beginnt mit einem Turm weniger" #: lib/pychess/Variants/rookodds.py:9 msgid "Rook odds" msgstr "Turm Zugmöglichkeiten" #: lib/pychess/Variants/shuffle.py:11 msgid "" "xboard nocastle: http://home.hccnet.nl/h.g.muller/engine-intf.html#8\n" "FICS wild/2: http://www.freechess.org/Help/HelpFiles/wild.html\n" "* Random arrangement of the pieces behind the pawns\n" "* No castling\n" "* Black's arrangement mirrors white's" msgstr "xboard nocastle: http://home.hccnet.nl/h.g.muller/engine-intf.html#8\nFICS wild/2: http://www.freechess.org/Help/HelpFiles/wild.html\n* Zufällige Aufstellung hinter den Bauern\n* Keine Rochade\n* Die schwarze Aufstellung spiegelt die weisse wider" #: lib/pychess/Variants/suicide.py:11 msgid "" "FICS suicide: http://www.freechess.org/Help/HelpFiles/suicide_chess.html" msgstr "FICS Räuberschach: http://www.freechess.org/Help/HelpFiles/suicide_chess.html" #: lib/pychess/Variants/theban.py:10 msgid "" "Variant developed by Kai Laskos: " "http://talkchess.com/forum/viewtopic.php?t=40990" msgstr "Variante entwickelt von Kai Laskos: http://talkchess.com/forum/viewtopic.php?t=40990" #: lib/pychess/Variants/theban.py:11 msgid "Theban" msgstr "" #: lib/pychess/Variants/threecheck.py:10 msgid "Win by giving check 3 times" msgstr "Gewonnen durch 3-maliges Schach geben" #: lib/pychess/Variants/threecheck.py:11 msgid "Three-check" msgstr "Drei Matt" #: lib/pychess/Variants/upsidedown.py:10 msgid "" "FICS wild/5: http://www.freechess.org/Help/HelpFiles/wild.html\n" "http://en.wikipedia.org/wiki/Chess_variant#Chess_with_different_starting_positions\n" "Pawns start on their 7th rank rather than their 2nd rank!" msgstr "FICS wild/5: http://www.freechess.org/Help/HelpFiles/wild.html\nhttp://en.wikipedia.org/wiki/Chess_variant#Chess_with_different_starting_positions\nBauern starten von Reihe 7 anstatt von Reihe 2!" #: lib/pychess/Variants/upsidedown.py:13 msgid "Upside Down" msgstr "Verkehrt herum" #: lib/pychess/Variants/wildcastle.py:10 msgid "" "xboard wildcastle http://home.hccnet.nl/h.g.muller/engine-intf.html#8\n" "FICS wild/0: http://www.freechess.org/Help/HelpFiles/wild.html\n" "* White has the typical set-up at the start.\n" "* Black's pieces are the same, except that the King and Queen are reversed,\n" "* so they are not on the same files as White's King and Queen.\n" "* Castling is done similarly to normal chess:\n" "* o-o-o indicates long castling and o-o short castling." msgstr "xboard wildcastle http://home.hccnet.nl/h.g.muller/engine-intf.html#8\nFICS wild/0: http://www.freechess.org/Help/HelpFiles/wild.html\n* Weiß hat die typische Startformation\n* Die schwarzen Figuren sind gleich aufgestellt, mit Ausnahme von König und Dame, die vertauscht sind,\n* sodass sie nicht auf den gleichen Linien sind wie der weiße König und die weiße Dame sind.\n* Die Rochade wird gleich ausgeführt wie bei normalem Schach:\n* o-o-o bezeichnet die lange, o-o die kurze Rochade." #: lib/pychess/Variants/wildcastle.py:17 msgid "Wildcastle" msgstr "Wildcastle" #: lib/pychess/Variants/wildcastleshuffle.py:11 msgid "" "xboard wildcastle http://home.hccnet.nl/h.g.muller/engine-intf.html#8\n" "FICS wild/1: http://www.freechess.org/Help/HelpFiles/wild.html\n" "* In this variant both sides have the same set of pieces as in normal chess.\n" "* The white king starts on d1 or e1 and the black king starts on d8 or e8,\n" "* and the rooks are in their usual positions.\n" "* Bishops are always on opposite colors.\n" "* Subject to these constraints the position of the pieces on their first ranks is random.\n" "* Castling is done similarly to normal chess:\n" "* o-o-o indicates long castling and o-o short castling." msgstr "xboard wildcastle http://home.hccnet.nl/h.g.muller/engine-intf.html#8\nFICS wild/1: http://www.freechess.org/Help/HelpFiles/wild.html\n* In dieser Variante haben beide Seiten dieselben Figuren wie bei normalem Schach.\n* Der Weiße König startet auf d1 oder e1 und der schwarze König startet auf d8 oder e8,\n* und die Türme sind auf ihrer üblichen Position.\n* Läufer sind immer auf unterschiedlichen Farben.\n* Unter Beachtung dieser Vorgaben sind die Positionen der Figuren auf ihrer ersten Reihe zufällig.\n* Die Rochade wird gleich ausgeführt wie bei normalem Schach:\n* o-o-o bezeichnet die lange, o-o die kurze Rochade." #: lib/pychess/Variants/wildcastleshuffle.py:20 msgid "Wildcastle shuffle" msgstr "Wildcastle shuffle" #: lib/pychess/widgets/analyzegameDialog.py:85 msgid "Game analyzing in progress..." msgstr "Spielanalyse läuft..." #: lib/pychess/widgets/analyzegameDialog.py:86 msgid "Do you want to abort it?" msgstr "Möchten Sie abbrechen?" #: lib/pychess/widgets/analyzegameDialog.py:95 #: lib/pychess/widgets/gamewidget.py:202 lib/pychess/widgets/gamewidget.py:320 msgid "Abort" msgstr "Abbruch" #: lib/pychess/widgets/ChatView.py:125 msgid "Observers" msgstr "" #: lib/pychess/widgets/ChatWindow.py:222 msgid "You have opened no conversations yet" msgstr "Sie haben noch keine Konversation begonnen" #: lib/pychess/widgets/ChatWindow.py:254 msgid "Only registered users may talk to this channel" msgstr "Nur registrierte Benutzer können hier chatten" #: lib/pychess/widgets/ChatWindow.py:312 msgid "No conversation's selected" msgstr "Keine Konversation ausgewählt" #: lib/pychess/widgets/ChatWindow.py:350 msgid "Loading player data" msgstr "Lade Spielerdaten" #: lib/pychess/widgets/ChatWindow.py:400 msgid "Receiving list of players" msgstr "Empfange Spielerliste" #: lib/pychess/widgets/ChatWindow.py:518 msgid "Friends" msgstr "Freunde" #: lib/pychess/widgets/ChatWindow.py:529 msgid "Admin" msgstr "" #: lib/pychess/widgets/ChatWindow.py:540 msgid "More channels" msgstr "Mehr Kanäle" #: lib/pychess/widgets/ChatWindow.py:548 msgid "More players" msgstr "Mehr Spieler" #: lib/pychess/widgets/ChatWindow.py:558 msgid "Computers" msgstr "" #: lib/pychess/widgets/ChatWindow.py:568 msgid "BlindFold" msgstr "" #: lib/pychess/widgets/ChatWindow.py:578 msgid "Guests" msgstr "" #: lib/pychess/widgets/ChatWindow.py:805 msgid "Conversations" msgstr "Konversationen" #: lib/pychess/widgets/ChatWindow.py:807 msgid "Conversation info" msgstr "Konversationsinformationen" #: lib/pychess/widgets/enginesDialog.py:152 msgid "Select engine" msgstr "Engine auswählen" #: lib/pychess/widgets/enginesDialog.py:156 msgid "Executable files" msgstr "Ausführbare Dateien" #: lib/pychess/widgets/enginesDialog.py:176 #: lib/pychess/widgets/enginesDialog.py:210 #: lib/pychess/widgets/enginesDialog.py:235 #, python-format msgid "Unable to add %s" msgstr "Konnte %s nicht hinzufügen" #: lib/pychess/widgets/enginesDialog.py:177 msgid "wine not installed" msgstr "wine ist nicht installiert" #: lib/pychess/widgets/enginesDialog.py:211 #: lib/pychess/widgets/enginesDialog.py:236 msgid "There is something wrong with this executable" msgstr "Etwas stimmt mit dieser ausführbaren Datei nicht" #: lib/pychess/widgets/enginesDialog.py:266 msgid "Select working directory" msgstr "Arbeitsverzeichnis auswählen" #: lib/pychess/widgets/gamenanny.py:115 #, python-format msgid " invalid engine move: %s" msgstr "unzulässiger Zug der Schach-Engine: %s" #: lib/pychess/widgets/gamenanny.py:134 msgid "Offer Rematch" msgstr "Revanche anbieten" #: lib/pychess/widgets/gamenanny.py:136 lib/pychess/widgets/gamenanny.py:147 #, python-format msgid "Observe %s" msgstr "%s beobachten" #: lib/pychess/widgets/gamenanny.py:168 msgid "Play Rematch" msgstr "Revanche spielen" #: lib/pychess/widgets/gamenanny.py:171 msgid "Undo one move" msgstr "Einen Zug zurücknehmen" #: lib/pychess/widgets/gamenanny.py:173 msgid "Undo two moves" msgstr "Zwei Züge zurücknehmen" #: lib/pychess/widgets/gamenanny.py:203 msgid "The game is paused" msgstr "Das Spiel wurde angehalten" #: lib/pychess/widgets/gamenanny.py:221 lib/pychess/widgets/gamenanny.py:222 msgid "Loaded game" msgstr "Spiel geladen" #: lib/pychess/widgets/gamenanny.py:228 msgid "Saved game" msgstr "Spiel gespeichert" #: lib/pychess/widgets/gamenanny.py:232 msgid "Analyzer started" msgstr "Analyseprogramm gestartet" #: lib/pychess/widgets/gamenanny.py:281 msgid "You sent an abort offer" msgstr "Sie haben ein Abbruch-Angebot gesendet." #: lib/pychess/widgets/gamenanny.py:283 msgid "You sent an adjournment offer" msgstr "Sie haben ein Vertagungs-Angebot gesendet." #: lib/pychess/widgets/gamenanny.py:285 msgid "You sent a draw offer" msgstr "Sie haben ein Remis-Angebot gesendet." #: lib/pychess/widgets/gamenanny.py:287 msgid "You sent a pause offer" msgstr "Sie haben ein Pausen-Angebot gesendet." #: lib/pychess/widgets/gamenanny.py:289 msgid "You sent a resume offer" msgstr "Sie haben ein Wiederaufnahme-Angebot gesendet." #: lib/pychess/widgets/gamenanny.py:291 msgid "You sent an undo offer" msgstr "Sie haben ein Rücknahme-Angebot gesendet." #: lib/pychess/widgets/gamenanny.py:293 msgid "You asked your opponent to move" msgstr "Sie haben den gegnerischen Zug nachgefragt" #: lib/pychess/widgets/gamenanny.py:305 #, python-format msgid "Engine, %s, has died" msgstr "Engine %s, ist abgestürzt" #: lib/pychess/widgets/gamenanny.py:306 msgid "" "PyChess has lost connection to the engine, probably because it has died.\n" "\n" "You can try to start a new game with the engine, or try to play against another one." msgstr "PyChess hat die Verbindung zur Engine verloren, möglicherweise ist sie abgestürzt.\n\nSie können versuchen eine neue Partie mit der Engine zu starten, oder versuchen gegen eine andere spielen." #: lib/pychess/widgets/gamewidget.py:204 msgid "" "This game can be automatically aborted without rating loss because there has" " not yet been two moves made" msgstr "Dieses Spiel kann ohne Verlust der Wertung automatisch abgebrochen werden, da noch keine zwei Züge gespielt wurden." #: lib/pychess/widgets/gamewidget.py:206 msgid "Offer Abort" msgstr "Aufgabe anbieten" #: lib/pychess/widgets/gamewidget.py:208 msgid "" "Your opponent must agree to abort the game because there has been two or " "more moves made" msgstr "Ihr Gegner muss dem Spielabbruch zustimmen, da bereits zwei Züge gespielt wurden." #: lib/pychess/widgets/gamewidget.py:226 msgid "This game can not be adjourned because one or both players are guests" msgstr "Dieses Spiel kann nicht unterbrochen werden, da einer oder beide Spieler Gäste sind." #: lib/pychess/widgets/gamewidget.py:243 msgid "Claim Draw" msgstr "Remis reklamieren" #: lib/pychess/widgets/gamewidget.py:325 msgid "Pause" msgstr "Pause" #: lib/pychess/widgets/gamewidget.py:326 msgid "Resume" msgstr "Fortsetzen" #: lib/pychess/widgets/gamewidget.py:328 msgid "Offer Pause" msgstr "Pause anbieten" #: lib/pychess/widgets/gamewidget.py:329 msgid "Offer Resume" msgstr "Fortsetzung anbieten" #: lib/pychess/widgets/gamewidget.py:333 msgid "Undo" msgstr "Rückgängig machen" #: lib/pychess/widgets/gamewidget.py:335 msgid "Offer Undo" msgstr "Rückgängig machen anbieten" #: lib/pychess/widgets/gamewidget.py:550 msgid " has lagged for 30 seconds" msgstr "hängt seit 30 Sekunden hinterher" #: lib/pychess/widgets/gamewidget.py:566 msgid " is lagging heavily but hasn't disconnected" msgstr "hängt sehr stark hinterher, hat sich aber nicht abgemeldet" #: lib/pychess/widgets/gamewidget.py:567 msgid "Continue to wait for opponent, or try to adjourn the game?" msgstr "Weiter auf Gegner warten oder Partie vertagen? " #: lib/pychess/widgets/gamewidget.py:575 msgid "Wait" msgstr "Warten" #: lib/pychess/widgets/gamewidget.py:576 msgid "Adjourn" msgstr "Vertagen" #: lib/pychess/widgets/gamewidget.py:648 msgid "Jump to initial position" msgstr "Zur Anfangsposition zurückgehen" #: lib/pychess/widgets/gamewidget.py:653 msgid "Step back one move" msgstr "Einen Zug zurück" #: lib/pychess/widgets/gamewidget.py:658 msgid "Go back to the main line" msgstr "" #: lib/pychess/widgets/gamewidget.py:664 msgid "Step forward one move" msgstr "Einen Zug vor" #: lib/pychess/widgets/gamewidget.py:669 msgid "Jump to latest position" msgstr "Zur letzten Stellung zurückspringen" #: lib/pychess/widgets/gamewidget.py:903 msgid "PyChess was unable to load your panel settings" msgstr "PyChess konnte Ihre GUI-Einstellungen nicht laden" #: lib/pychess/widgets/gamewidget.py:904 msgid "" "Your panel settings have been reset. If this problem repeats, you should " "report it to the developers" msgstr "Die Fenstereinstellungen wurden zurückgesetzt. Sollte dieses Problem weiterhin auftreten, wenden Sie sich an die Entwickler." #: lib/pychess/widgets/ionest.py:67 lib/pychess/widgets/newGameDialog.py:389 #: lib/pychess/widgets/TaskerManager.py:210 msgid "You" msgstr "Sie" #: lib/pychess/widgets/ionest.py:70 lib/pychess/widgets/newGameDialog.py:390 #: lib/pychess/widgets/preferencesDialog.py:61 #: lib/pychess/widgets/TaskerManager.py:213 msgid "Guest" msgstr "Gast" #: lib/pychess/widgets/ionest.py:93 msgid "Error loading game" msgstr "Fehler beim Laden des Spiels" #: lib/pychess/widgets/ionest.py:127 lib/pychess/widgets/newGameDialog.py:480 msgid "Open Game" msgstr "Partie öffnen" #: lib/pychess/widgets/ionest.py:137 msgid "All Files" msgstr "Alle Dateien" #: lib/pychess/widgets/ionest.py:140 msgid "Detect type automatically" msgstr "Ermittele Dateityp automatisch" #: lib/pychess/widgets/ionest.py:146 msgid "All Chess Files" msgstr "Alle Schach-Dateien" #: lib/pychess/widgets/ionest.py:228 msgid "Save Game" msgstr "Partie speichern" #: lib/pychess/widgets/ionest.py:228 msgid "Export position" msgstr "Exportiere Spielstand" #: lib/pychess/widgets/ionest.py:232 lib/pychess/widgets/ionest.py:360 msgid "vs." msgstr "gegen" #: lib/pychess/widgets/ionest.py:249 #, python-format msgid "Unknown file type '%s'" msgstr "Unbekannter Dateityp '%s'" #: lib/pychess/widgets/ionest.py:250 #, python-format msgid "" "Was unable to save '%(uri)s' as PyChess doesn't know the format " "'%(ending)s'." msgstr "Kann '%(uri)s' nicht speichern da PyChess das Format '%(ending)s' nicht kennt." #: lib/pychess/widgets/ionest.py:266 #, python-format msgid "Unable to save file '%s'" msgstr "Datei konnte nicht gespeichert werden '%s'" #: lib/pychess/widgets/ionest.py:268 msgid "" "You don't have the necessary rights to save the file.\n" "Please ensure that you have given the right path and try again." msgstr "Sie haben nicht die nötigen Rechte um die Datei zu speichern.\nÜberprüfen Sie bitte den angegebenen Pfad und versuchen Sie es erneut." #: lib/pychess/widgets/ionest.py:276 msgid "_Replace" msgstr "_Ersetzen" #: lib/pychess/widgets/ionest.py:280 msgid "File exists" msgstr "Datei existiert" #: lib/pychess/widgets/ionest.py:282 #, python-format msgid "" "A file named '%s' already exists. Would you like to replace " "it?" msgstr "Eine Datei namens '%s' existiert bereits. Wollen Sie sie ersetzen?" #: lib/pychess/widgets/ionest.py:283 #, python-format msgid "" "The file already exists in '%s'. If you replace it, its content will be " "overwritten." msgstr "Die Datei existiert bereits in '%s'. Wenn Sie die Datei ersetzen, wird der Inhalt überschrieben." #: lib/pychess/widgets/ionest.py:299 msgid "Could not save the file" msgstr "Konnte die Datei nicht speichern" #: lib/pychess/widgets/ionest.py:300 msgid "PyChess was not able to save the game" msgstr "PyChess war es nicht möglich, die Partie zu speichern" #: lib/pychess/widgets/ionest.py:301 #, python-format msgid "The error was: %s" msgstr "Der Fehler war: %s" #: lib/pychess/widgets/ionest.py:325 #, python-format msgid "There is %d game with unsaved moves." msgid_plural "There are %d games with unsaved moves." msgstr[0] "Es gibt %d Spiele mit ungespeicherten Zügen." msgstr[1] "Es gibt %d Spiele mit ungespeicherten Zügen." #: lib/pychess/widgets/ionest.py:328 msgid "Save moves before closing?" msgstr "Züge vor dem Beenden speichern?" #: lib/pychess/widgets/ionest.py:339 msgid "Unable to save to configured file. Save the games before closing?" msgstr "Konfigurationsdabei konnte nicht gespeichert werden. Spiele vorm Schließen speichern?" #: lib/pychess/widgets/ionest.py:366 #, python-format msgid "_Save %d document" msgid_plural "_Save %d documents" msgstr[0] "Speichere %d Partie" msgstr[1] "Speichere %d Partien" #: lib/pychess/widgets/ionest.py:412 msgid "Save the current game before you close it?" msgstr "Aktuelles Spiel vor dem schließen speichern?" #: lib/pychess/widgets/ionest.py:420 msgid "" "Unable to save to configured file. Save the current game before you close " "it?" msgstr "Konfigurationsdabei konnte nicht gespeichert werden. Spiel vorm Schließen speichern?" #: lib/pychess/widgets/ionest.py:434 msgid "" "It is not possible later to continue the game,\n" "if you don't save it." msgstr "Es ist nicht möglich, die Partie später fortzusetzen, wenn Sie sie jetzt nicht abspeichern." #: lib/pychess/widgets/LogDialog.py:26 msgid "PyChess Information Window" msgstr "PyChess Infofenster" #: lib/pychess/widgets/LogDialog.py:184 lib/pychess/widgets/LogDialog.py:188 msgid "of" msgstr "von" #: lib/pychess/widgets/newGameDialog.py:84 #: lib/pychess/widgets/newGameDialog.py:85 msgid "Human Being" msgstr "Mensch" #: lib/pychess/widgets/newGameDialog.py:155 msgid "Rapid" msgstr "Schnell" #: lib/pychess/widgets/newGameDialog.py:224 msgid "Minutes:" msgstr "Minuten:" #: lib/pychess/widgets/newGameDialog.py:228 msgid "Gain:" msgstr "Zuschlag (pro Zug):" #: lib/pychess/widgets/newGameDialog.py:241 #, python-format msgid "%(name)s %(minutes)d min + %(gain)d sec/move" msgstr "%(name)s %(minutes)d Min + %(gain)d Sek/Zug" #: lib/pychess/widgets/newGameDialog.py:244 #, python-format msgid "%(name)s %(minutes)d min %(gain)d sec/move" msgstr "%(name)s %(minutes)d Min %(gain)d Sek/Zug" #: lib/pychess/widgets/newGameDialog.py:247 #, python-format msgid "%(name)s %(minutes)d min" msgstr "%(name)s %(minutes)d Min" #: lib/pychess/widgets/newGameDialog.py:265 msgid "Odds" msgstr "Möglichkeiten" #: lib/pychess/widgets/newGameDialog.py:269 msgid "Asian variants" msgstr "Asiatische Varianten" #: lib/pychess/widgets/newGameDialog.py:301 msgid " chess" msgstr "Schach" #: lib/pychess/widgets/newGameDialog.py:682 msgid "Type or paste PGN game or FEN positions here" msgstr "PGN oder FEN Positionen hier eingeben oder einfügen" #: lib/pychess/widgets/newGameDialog.py:725 msgid "Enter Game" msgstr "Spiel betreten" #: lib/pychess/widgets/preferencesDialog.py:123 msgid "Select book file" msgstr "Buchdatei auswählen" #: lib/pychess/widgets/preferencesDialog.py:128 msgid "Opening books" msgstr "Eröffnungsbücher" #: lib/pychess/widgets/preferencesDialog.py:156 msgid "Select Gaviota TB path" msgstr "Pfad zu Gaviota-TB auswählen" #: lib/pychess/widgets/preferencesDialog.py:331 msgid "Open Sound File" msgstr "Öffne Klang-Datei" #: lib/pychess/widgets/preferencesDialog.py:341 msgid "Sound files" msgstr "Klangdateien" #: lib/pychess/widgets/preferencesDialog.py:485 msgid "Undescribed panel" msgstr "Unbeschriftete Fläche" #: lib/pychess/widgets/preferencesDialog.py:678 msgid "Select auto save path" msgstr "Pfad zum automatischen Speichern auswählen" #: lib/pychess/widgets/tipOfTheDay.py:51 msgid "" "You can start a new game by Game > New Game, in New Game " "window do you can choose Players, Time Control and Chess " "Variants." msgstr "Starte eine neue Partie mit Partie > Neue Partie. Im neuen Partiefenster kann Spieler, Zeitkontrolle und Schach-Variante gewählt werden." #: lib/pychess/widgets/tipOfTheDay.py:52 msgid "" "You can choose from 20 different difficulties to play against the computer." msgstr "Sie können aus 20 Schwierigkeitsgraden auswählen um gegen den Computer zu spielen." #: lib/pychess/widgets/tipOfTheDay.py:53 msgid "" "Chess Variants are like the pieces of the last line will be placed on the " "board." msgstr "Schachvarianten bestimmen die Aufstellung der hintersten Linie." #: lib/pychess/widgets/tipOfTheDay.py:54 msgid "" "To save a game Game > Save Game As, give the filename and " "choose where you want to be saved. At the bottom choose extension type of " "the file, and Save." msgstr "Um eine Partie zu speichern Partie > Partie speichern unter, Dateinamen und Speicherort eingebe. Wähle unten den Dateityp und drücke Speichern." #: lib/pychess/widgets/tipOfTheDay.py:55 msgid "" "Do you know that you can call flag when the clock is with you, " "Actions > Call Flag." msgstr "Wussten Sie, daß Sie per Actions > Call Flag auf Zeit reklamieren können wenn das Blättchen gefallen ist?" #: lib/pychess/widgets/tipOfTheDay.py:56 msgid "Pressing Ctrl+Z to offer opponent the possible rollback moves." msgstr "Durch drücken von Strg+Z können Sie dem Gegener anbieten einen Zug zurück zunehmen." #: lib/pychess/widgets/tipOfTheDay.py:57 msgid "" "To play on Fullscreen mode, just type F11. Coming back, F11 " "again." msgstr "Um im Vollbildmodus zu spielen drücken Sie F11. Um den Vollbildmodus zu verlassen, drücken Sie nochmal F11." #: lib/pychess/widgets/tipOfTheDay.py:58 msgid "Hint mode analyzing your game, enable this type Ctrl+H." msgstr "Der Hinweis Modus analysiert Ihr Spiel, zum Aktivieren Ctrl+H drücken." #: lib/pychess/widgets/tipOfTheDay.py:59 msgid "" "Spy mode analyzing the oponnent game, enable this type Ctrl+Y." msgstr "Der Spion-Modus analysiert das gegnerische Spiel, drücke Steuerung+Y zum Aktivieren." #: lib/pychess/widgets/tipOfTheDay.py:60 msgid "" "You can play chess listening to the sounds of the game, for that, " "Settings > Preferences > Sound tab, enable Use " "sounds in PyChess and choose your preferred sounds." msgstr "Nutzen sie Settings > Preferences > Sound tab um Töne zu aktivieren oder einzustellen." #: lib/pychess/widgets/tipOfTheDay.py:61 msgid "" "Do you know that you can help translate Pychess in your language, " "Help > Translate Pychess." msgstr "Wussten Sie, dass sie bei der Übersetzung von Pychess in Ihre Sprache helfen können, Hilfe > Pychess übersetzen." #: lib/pychess/widgets/tipOfTheDay.py:62 msgid "" "Do you know that it is possible to finish a chess game in just 2 turns?" msgstr "Wussten Sie, dass es möglich ist ein Schachspiel in nur 2 Zügen zu beenden?" #: lib/pychess/widgets/tipOfTheDay.py:63 msgid "" "Do you know that the number of possible chess games exceeds the number of " "atoms in the Universe?" msgstr "Wussten Sie, dass die Anzahl der möglichen Schachspiele größer ist, als es Atome im Universum gibt?" #: lib/pychess/ic/managers/ChatManager.py:184 msgid "Shout" msgstr "Rufen" #: lib/pychess/ic/managers/ChatManager.py:185 msgid "Chess Shout" msgstr "Schach" #: lib/pychess/ic/managers/ChatManager.py:195 #, python-format msgid "Unofficial channel %d" msgstr "Inoffizieller Kanal %d" #: lib/pychess/Utils/lutils/LBoard.py:152 #, python-format msgid "" "FEN needs 6 data fields. \n" "\n" "%s" msgstr "FEN benötigt 6 Datenfelder. \n\n%s" #: lib/pychess/Utils/lutils/LBoard.py:154 #, python-format msgid "" "FEN needs at least 2 data fields in fenstr. \n" "\n" "%s" msgstr "FEN benötigt mindestens 2 Datenfelder in fenstr.\n\n%s" #: lib/pychess/Utils/lutils/LBoard.py:175 #, python-format msgid "" "Needs 7 slashes in piece placement field. \n" "\n" "%s" msgstr "Der Eintrag im Plazierungsfeld muss insgesamt 7 Schrägstriche (/) enthalten.\n\n%s" #: lib/pychess/Utils/lutils/LBoard.py:178 #, python-format msgid "" "Active color field must be one of w or b. \n" "\n" "%s" msgstr "Aktives Farbfeld muss entweder w oder b sein.\n\n%s" #: lib/pychess/Utils/lutils/LBoard.py:189 #, python-format msgid "" "Castling availability field is not legal. \n" "\n" "%s" msgstr "Falsches Rochadefeld. \n\n%s" #: lib/pychess/Utils/lutils/LBoard.py:192 #, python-format msgid "" "En passant cord is not legal. \n" "\n" "%s" msgstr "Kein gültiges Zielfeld eines En-Passant-Zuges. \n\n%s" #: lib/pychess/Utils/lutils/lmove.py:260 msgid "invalid promoted piece" msgstr "Ungültig umgewandelte Figur" #: lib/pychess/Utils/lutils/lmove.py:272 msgid "the move needs a piece and a cord" msgstr "Der Zug braucht eine Figur und ein Zielfeld" #: lib/pychess/Utils/lutils/lmove.py:306 lib/pychess/Utils/lutils/lmove.py:556 msgid "promotion move without promoted piece is incorrect" msgstr "Ziehen ist erst nach der Umwandlung gestattet." #: lib/pychess/Utils/lutils/lmove.py:312 #, python-format msgid "the captured cord (%s) is incorrect" msgstr "Das ausgewählte Feld (%s) ist ungültig" #: lib/pychess/Utils/lutils/lmove.py:323 #, python-format msgid "the end cord (%s) is incorrect" msgstr "Das Schlussfeld (%s) ist ungültig" #: lib/pychess/Utils/lutils/strateval.py:24 sidepanel/commentPanel.py:191 #: sidepanel/commentPanel.py:208 msgid "and" msgstr "und" #: lib/pychess/Utils/lutils/strateval.py:43 msgid "draws" msgstr "zieht" #: lib/pychess/Utils/lutils/strateval.py:45 msgid "mates" msgstr "setzt matt" #: lib/pychess/Utils/lutils/strateval.py:49 msgid "puts opponent in check" msgstr "setzt den Gegner Schach" #: lib/pychess/Utils/lutils/strateval.py:73 msgid "improves king safety" msgstr "erhöht die Königssicherheit" #: lib/pychess/Utils/lutils/strateval.py:75 msgid "slightly improves king safety" msgstr "erhöht leicht die Königssicherheit" #: lib/pychess/Utils/lutils/strateval.py:108 msgid "moves a rook to an open file" msgstr "bewegt den Turm auf eine offene Linie" #: lib/pychess/Utils/lutils/strateval.py:109 msgid "moves an rook to a half-open file" msgstr "bewegt den Turm auf eine halboffene Linie" #: lib/pychess/Utils/lutils/strateval.py:119 #: lib/pychess/Utils/lutils/strateval.py:121 #: lib/pychess/Utils/lutils/strateval.py:124 #: lib/pychess/Utils/lutils/strateval.py:126 #, python-format msgid "moves bishop into fianchetto: %s" msgstr "bewegt den Läufer ins Fianchetto: %s" #: lib/pychess/Utils/lutils/strateval.py:132 #, python-format msgid "promotes a Pawn to a %s" msgstr "wandelt den Bauern in eine(n) %s" #: lib/pychess/Utils/lutils/strateval.py:135 msgid "castles" msgstr "rochiert" #: lib/pychess/Utils/lutils/strateval.py:158 msgid "takes back material" msgstr "gewinnt Material zurück" #: lib/pychess/Utils/lutils/strateval.py:162 #: lib/pychess/Utils/lutils/strateval.py:170 msgid "sacrifies material" msgstr "opfert Material" #: lib/pychess/Utils/lutils/strateval.py:164 msgid "exchanges material" msgstr "tauscht Material ab" #: lib/pychess/Utils/lutils/strateval.py:166 msgid "captures material" msgstr "schlägt Material" #: lib/pychess/Utils/lutils/strateval.py:291 #, python-format msgid "rescues a %s" msgstr "retten einen %s" #: lib/pychess/Utils/lutils/strateval.py:294 #, python-format msgid "threatens to win material by %s" msgstr "Materialgewinn droht auf %s" #: lib/pychess/Utils/lutils/strateval.py:296 #, python-format msgid "increases the pressure on %s" msgstr "erhöht den Druck auf %s" #: lib/pychess/Utils/lutils/strateval.py:298 #, python-format msgid "defends %s" msgstr "verteidigt %s" #: lib/pychess/Utils/lutils/strateval.py:336 #, python-format msgid "pins an enemy %(oppiece)s on the %(piece)s at %(cord)s" msgstr "fesselt %(oppiece)s an %(piece)s auf %(cord)s-Linie" #: lib/pychess/Utils/lutils/strateval.py:369 #, python-format msgid "White has a new piece in outpost: %s" msgstr "Weiß hat eine neue Figur als Vorposten: %s" #: lib/pychess/Utils/lutils/strateval.py:377 #, python-format msgid "Black has a new piece in outpost: %s" msgstr "Schwarz hat eine neue Figur als Vorposten: %s" #: lib/pychess/Utils/lutils/strateval.py:416 #, python-format msgid "%(color)s has a new passed pawn on %(cord)s" msgstr "%(color)s hat einen neuen Freibauern auf %(cord)s" #: lib/pychess/Utils/lutils/strateval.py:470 msgid "half-open" msgstr "halboffen" #: lib/pychess/Utils/lutils/strateval.py:472 #, python-format msgid "in the %(x)s%(y)s file" msgstr "auf der %(x)s%(y)s Linie" #: lib/pychess/Utils/lutils/strateval.py:474 #, python-format msgid "in the %(x)s%(y)s files" msgstr "auf den %(x)s%(y)s Linien" #: lib/pychess/Utils/lutils/strateval.py:477 #, python-format msgid "%(color)s got a double pawn %(place)s" msgstr "%(color)s hat einen Doppelbauern %(place)s" #: lib/pychess/Utils/lutils/strateval.py:478 #, python-format msgid "%(color)s got new double pawns %(place)s" msgstr "%(color)s hat einen neuen Doppelbauern %(place)s" #: lib/pychess/Utils/lutils/strateval.py:485 #, python-format msgid "%(color)s got an isolated pawn in the %(x)s file" msgid_plural "%(color)s got isolated pawns in the %(x)s files" msgstr[0] "%(color)s hat einen isolierten Bauern in der %(x)s Linie" msgstr[1] "%(color)s hat isolierte Bauern in den %(x)s Linien" #: lib/pychess/Utils/lutils/strateval.py:492 #, python-format msgid "%s moves pawns into stonewall formation" msgstr "%s bewegt einen Bauern in eine Mauer-Formation" #: lib/pychess/Utils/lutils/strateval.py:507 #: lib/pychess/Utils/lutils/strateval.py:514 #, python-format msgid "%s can no longer castle" msgstr "%s kann nicht mehr rochieren" #: lib/pychess/Utils/lutils/strateval.py:508 #: lib/pychess/Utils/lutils/strateval.py:515 #, python-format msgid "%s can no longer castle in queenside" msgstr "%s kann nicht mehr lang rochieren" #: lib/pychess/Utils/lutils/strateval.py:510 #: lib/pychess/Utils/lutils/strateval.py:517 #, python-format msgid "%s can no longer castle in kingside" msgstr "%s kann nicht mehr kurz rochieren" #: lib/pychess/Utils/lutils/strateval.py:551 #, python-format msgid "%(opcolor)s has a new trapped bishop on %(cord)s" msgstr "%(opcolor)s hat einen neuen gefangenen Läufer auf %(cord)s" #: lib/pychess/Utils/lutils/strateval.py:573 #, python-format msgid "develops a pawn: %s" msgstr "entwickelt einen Bauern: %s" #: lib/pychess/Utils/lutils/strateval.py:574 #, python-format msgid "brings a pawn closer to the backrow: %s" msgstr "bringt einen Bauern näher an die hinterste Reihe: %s" #: lib/pychess/Utils/lutils/strateval.py:591 #, python-format msgid "brings a %(piece)s closer to enemy king: %(cord)s" msgstr "bringt einen %(piece)s näher zum feindlichen König: %(cord)s" #: lib/pychess/Utils/lutils/strateval.py:594 #, python-format msgid "develops a %(piece)s: %(cord)s" msgstr "entwickelt einen %(piece)s: %(cord)s" #: lib/pychess/Utils/lutils/strateval.py:612 #, python-format msgid "places a %(piece)s more active: %(cord)s" msgstr "platziert einen %(piece)s aktiver: %(cord)s" #: lib/pychess/Utils/lutils/strateval.py:638 msgid "White should do pawn storm in right" msgstr "Weiß sollte einen Bauernsturm rechts unternehmen" #: lib/pychess/Utils/lutils/strateval.py:640 msgid "Black should do pawn storm in left" msgstr "Schwarz sollte einen Bauernansturm links unternehmen" #: lib/pychess/Utils/lutils/strateval.py:643 msgid "White should do pawn storm in left" msgstr "Weiß sollte einen Bauernansturm links unternehmen" #: lib/pychess/Utils/lutils/strateval.py:645 msgid "Black should do pawn storm in right" msgstr "Schwarz sollt einen Bauernansturm rechts unternehmen" #: lib/pychess/Utils/lutils/strateval.py:671 msgid "Black has a rather cramped position" msgstr "Schwarz hat eine äußerst eingeengte Position" #: lib/pychess/Utils/lutils/strateval.py:673 msgid "Black has a slightly cramped position" msgstr "Schwarz hat eine leicht eingeengte Position" #: lib/pychess/Utils/lutils/strateval.py:675 msgid "White has a rather cramped position" msgstr "Weiß hat eine äußerst eingeengte Position" #: lib/pychess/Utils/lutils/strateval.py:677 msgid "White has a slightly cramped position" msgstr "Weiß hat eine leicht eingeengte Position" #: sidepanel/annotationPanel.py:26 msgid "Annotation" msgstr "Kommentar" #: sidepanel/annotationPanel.py:29 msgid "Annotated game" msgstr "Kommentierte Partie" #: sidepanel/annotationPanel.py:236 msgid "Copy PGN" msgstr "PGN kopieren" #: sidepanel/annotationPanel.py:249 msgid "Add start comment" msgstr "Startkommentar hinzufügen" #: sidepanel/annotationPanel.py:254 msgid "Add comment" msgstr "Kommentar hinzufügen" #: sidepanel/annotationPanel.py:258 sidepanel/annotationPanel.py:316 msgid "Edit comment" msgstr "Kommentar bearbeiten" #: sidepanel/annotationPanel.py:269 msgid "Forced move" msgstr "Erzwungener Zug" #: sidepanel/annotationPanel.py:274 msgid "Add move symbol" msgstr "Bewegungssymbol hinzufügen" #: sidepanel/annotationPanel.py:280 msgid "Unclear position" msgstr "Unklare Position" #: sidepanel/annotationPanel.py:289 msgid "Zugzwang" msgstr "Zugzwang" #: sidepanel/annotationPanel.py:290 msgid "Development adv." msgstr "Entwicklungsvorteil" #: sidepanel/annotationPanel.py:291 msgid "Initiative" msgstr "Initiative" #: sidepanel/annotationPanel.py:292 msgid "With attack" msgstr "Mit Angriff" #: sidepanel/annotationPanel.py:293 msgid "Compensation" msgstr "Ausgleich" #: sidepanel/annotationPanel.py:294 msgid "Counterplay" msgstr "Gegenspiel" #: sidepanel/annotationPanel.py:295 msgid "Time pressure" msgstr "Zeitdruck" #: sidepanel/annotationPanel.py:300 msgid "Add evaluation symbol" msgstr "Auswertungssymbol hinzufügen" #: sidepanel/annotationPanel.py:304 msgid "Remove symbols" msgstr "Symbole entfernen" #: sidepanel/annotationPanel.py:911 #, python-format msgid "round %s" msgstr "Runde %s" #: sidepanel/bookPanel.py:21 msgid "Hints" msgstr "Tipps" #: sidepanel/bookPanel.py:25 msgid "" "The hint panel will provide computer advice during each stage of the game" msgstr "Diese Leiste bietet Computerunterstützung über die gesamte Partie hinweg." #: sidepanel/bookPanel.py:27 msgid "Official PyChess panel." msgstr "Offizielle PyChess-Leiste." #: sidepanel/bookPanel.py:87 msgid "Opening Book" msgstr "Eröffnungsbuch" #: sidepanel/bookPanel.py:88 msgid "" "The opening book will try to inspire you during the opening phase of the " "game by showing you common moves made by chess masters" msgstr "Das Eröffnungsbuch wird versuchen Sie während der Eröffnung zu inspirieren, indem es gebräuchliche Züge von Schachmeistern zeigt" #: sidepanel/bookPanel.py:139 #, python-format msgid "Analysis by %s" msgstr "Analyse durch %s" #: sidepanel/bookPanel.py:140 #, python-format msgid "" "%s will try to predict which move is best and which side has the advantage" msgstr "%s versucht den besten Zug vorherzusagen und welche Seite in Führung liegt" #: sidepanel/bookPanel.py:142 #, python-format msgid "Threat analysis by %s" msgstr "Bedrohungsanalyse durch %s" #: sidepanel/bookPanel.py:143 #, python-format msgid "" "%s will identify what threats would exist if it were your opponent's turn to" " move" msgstr "%s indentifiziert die Bedrohungen, wenn Ihr Gegner am Zug wäre" #: sidepanel/bookPanel.py:159 sidepanel/bookPanel.py:269 msgid "Calculating..." msgstr "Berechne..." #: sidepanel/bookPanel.py:300 msgid "" "Engine scores are in units of pawns, from White's point of view. Double " "clicking on analysis lines you can insert them into Annotation panel as " "variations." msgstr "Punktzahlen des Schachprogramms sind in Bauerneinheiten angegeben (aus Sicht von Weiß). Durch Doppelklick auf die Analysezeile können sie als Variationen den Kommentaren hinzugefügt werden." #: sidepanel/bookPanel.py:302 msgid "" "Adding suggestions can help you find ideas, but slows down the computer's " "analysis." msgstr "Vorschläge können Ihnen helfen Ideen zu finden, können aber die Spielstärke des Computers beeinträchtigen." #: sidepanel/bookPanel.py:311 msgid "Endgame Table" msgstr "Endspieltabelle" #: sidepanel/bookPanel.py:315 msgid "" "The endgame table will show exact analysis when there are few pieces on the " "board." msgstr "Die Endspieldatenbank zeigt eine exakte Analyse, wenn sich nur wenige Figuren auf dem Brett befinden" #: sidepanel/bookPanel.py:364 sidepanel/bookPanel.py:367 #, python-format msgid "Mate in %d" msgstr "Matt in %d" #: sidepanel/bookPanel.py:554 msgid "" "In this position,\n" "there is no legal move." msgstr "In dieser Stellung\ngibt es keinen legalen Zug." #: sidepanel/chatPanel.py:21 msgid "" "The chat panel lets you communicate with your opponent during the game, " "assuming he or she is interested" msgstr "Das Chatfenster lässt Sie mit Ihrem Gegner kommunizieren, vorausgesetzt er oder sie ist daran interessiert" #: sidepanel/commentPanel.py:16 msgid "Comments" msgstr "Kommentare" #: sidepanel/commentPanel.py:20 msgid "The comments panel will try to analyze and explain the moves played" msgstr "Das Kommentarfenster versucht die gespielten Züge zu analysieren und zu erklären" #: sidepanel/commentPanel.py:121 msgid "Initial position" msgstr "Ursprungsposition" #: sidepanel/commentPanel.py:254 #, python-format msgid "%(color)s moves a %(piece)s to %(cord)s" msgstr "%(color)s zieht %(piece)s auf %(cord)s" #: sidepanel/engineOutputPanel.py:15 msgid "Engines" msgstr "Engines" #: sidepanel/engineOutputPanel.py:20 msgid "" "The engine output panel shows the thinking output of chess engines (computer" " players) during a game" msgstr "Die Engine-Ausgabeleiste zeigt die Überlegungen der Computerschach-Engine während des Spiels an" #: sidepanel/engineOutputPanel.py:44 msgid "No chess engines (computer players) are participating in this game." msgstr "An diesem Spiel nehmen keine Engines (Computerspieler) teil." #: sidepanel/historyPanel.py:10 msgid "Move History" msgstr "Zugliste" #: sidepanel/historyPanel.py:13 msgid "" "The moves sheet keeps track of the players' moves and lets you navigate " "through the game history" msgstr "Die Zugliste speichert die Züge der Spieler und ermöglicht es Ihnen, durch die gespielte Partie zu navigieren" #: sidepanel/scorePanel.py:15 msgid "Score" msgstr "Ergebnis" #: sidepanel/scorePanel.py:19 msgid "" "The score panel tries to evaluate the positions and shows you a graph of the" " game progress" msgstr "Das Ergebnisfenster versucht die Stellungen zu bewerten und zeigt Ihnen ein Diagramm des Spielfortschrittes" pychess-0.12.2/lang/de/LC_MESSAGES/pychess.mo0000644000175000017470000022742112653231273020675 0ustar tamasusers00000000000000ED]l4E E EGE>F EF$RF wFFFF+F FGG/G0LG[}GNG(H%?H`eH(H+H'I#CIgI*I,I0I J"J=JTJ[J#sJ$J'JJ J!KQ;KJK>KL5L!=L_LaLqL#xLLL%LLLM9M'XM@MMMMM N'NE8N~NN#N$N NOO0OIOXOrOLOO OOPQP&fP$PCP7PU.Q"Q*Q(QQR#R4RHReNRR RRR&R.R+S dHdPdXdudddGd`daNeief 3f>fpCf ff f f ff"fg "g0gg}g Rh]h&rh h1hhhhh i ii-i0Ki@|iDiHjFKjHjj=kmwm}Yn nnnn o#o 2o>oFoIoOomo~ooo ooooo op|ppp p pppp p ppppAp+qq>xrXrRsccs]s?%tBet;tqtSVuOuFv Aw)Owyw ww wDwwx.x0x5xFx MxYxax sx }xx xx x x xxxyyy!y+(y Tybyqy xyy y!yy y y y y zzzz.,z/[zz zCzz{ {{ 0{>{ F{Q{a{ f{ s{{ { { { { { { { { {||\$|,|*|+|*}0}7}K}.e} }}} } }}}}~~6~ 8~ D~N~T~ Y~ c~ p~}~~~~ ~~~~ ~ "6? [Eg'  #4Jev !# ) 4ACKRXw }́ ԁ߁ 36 ?I N Xf({̂* # + 7D[q "ȃ   7 F Q]m s Є  05;/Dt  Åօ݅ #3pEh"C5S493,R;cʊT܊ 1=?9}Z+EazI}׌U`qҍl|Z!K(-thE ,QA~A $) 9GVPe cn,ƒȒMܒA*l}  Óٓ  '= TbsQ6ה M%s{f l v$#%˖"#8? DObf Η,/KO\9?59u(u؛CN$&ޜrϝ t%`y%l'!X/&?(f&''ޢdk ڣ  $- >J P[d%j   ŤѤ ؤ  " /9 B$Pu  ̥+ե -:!>)`8æݦ1'=Vh p{ ǧ ѧ5ۧ"e4+Ʃ۩ '>DH!e  ĪҪ)69(p2  )<@^#r!׬  $*2EL83ۯO " C!Q's; 11K]}[۵ 7*Xk01 &R"y)+߷; Ga }!ø!.6&S)z?KY0 ." 8'=e-CһCZm~ƼUؼ.!C.e/Ľ׽+GcVϾT,].JHpM-<+)Uqe (8?!H1j(oH  mQ e r}"I' ;EWl )?!+M bmo+u\gf,''%+E\qg62U-,^E1c3:0n,;]"X---51c<&Y lv~ -.+4)4^  boq t G.?DS kx? ;Z*[Z[<7   *4< Efx/  , 7E[] cnw Mf(z z *6:Pf{4JY3s 1 $9!O5qDHK5FN F$k-~ =J(M$v  '?Rj| 8EJ R^p MU[QSuJJC LO^JFR ,.7f x] $+PRYlu   $7J"_ ,   !&H Q \ iv QJ >J<]  "1BSet0\@,,* @J_.{ (2Ph j u #'K ^j{ " ]:-A o z'  3<MUk}    ( + 8 CM^v - 8JS [ex+<Sl0L^x /+ 6CSe nx  jsk4RB:QB2d*yaaMddI{K{\of 5AkX[1>tpU/; Mk L   ! + 0  @ J Y th      4   U V\        / 9  P  [ i x  ! % %  &>TXI N _jN T ^+j,)21 RY ^i|%  }$*Tl"M<LH9 ZE*(3S%&<.c'**'O87W-[--R[1%* 1)R.|})G] f pz&    ".7 NX ` mx0          /  8 C  \  j  v  (     !! .!":!]!z!! !!5!;!Y" p"">"5""#1#C# L#$Z#### # ###$e$/d%%%%%% &&&%+&)Q&%{& &&&&+&''%' A'b'3s'+' '.'#(;(N(^(g(p(($(((("(+ )8)T)o)))) ))))*q,qWmjC]x`5 0{@9K6O;2M )0oete!0`.  'R }El3Qs[gSf;[{Z7jMq*2gxJVd"x>!*XcDHV;N}b"|"6C_G S7ZIXQTC<(/m- 2H@(_%]RBzt+>kuUlfz6$pDp)w48B#1L+rM['e=H~,<Z')\r?uOsJDsW{ =?4< 8S %9: ,  1 (oq k@K-OFI1~n*BYh &w \Inu.F@taRA$=.v&XUE,.}l-?:r0/7z`A^4!P~k;YV/$*>+Cch!8B: ,w:GF>=cbL m6%5y| d/APp|a1Y<if?"]'K&bD#hvN-3yT8#59^Q+E4^2T ii(PUG\#  &o%N_a3$g5vWA9d3nLJyE 7j) Gain: + %d sec challenges you to a %(time)s %(rated)s %(gametype)s game chess has arrived has declined your offer for a match has departed has lagged for 30 seconds invalid engine move: %s is censoring you is lagging heavily but hasn't disconnected is present min noplay listing you uses a formula not fitting your match request: where %(player)s plays %(color)s. with whom you have an adjourned %(timecontrol)s %(gametype)s game is online. would like to resume your adjourned %(time)s %(gametype)s game.%(black)s won the game%(color)s got a double pawn %(place)s%(color)s got an isolated pawn in the %(x)s file%(color)s got isolated pawns in the %(x)s files%(color)s got new double pawns %(place)s%(color)s has a new passed pawn on %(cord)s%(color)s moves a %(piece)s to %(cord)s%(minutes)d min + %(gain)d sec/move%(name)s %(minutes)d min%(name)s %(minutes)d min %(gain)d sec/move%(name)s %(minutes)d min + %(gain)d sec/move%(opcolor)s has a new trapped bishop on %(cord)s%(player)s is %(status)s%(player)s plays %(color)s%(white)s won the game%d min%s can no longer castle%s can no longer castle in kingside%s can no longer castle in queenside%s moves pawns into stonewall formation%s returns an error%s was declined by your opponent%s was withdrawn by your opponent%s will identify what threats would exist if it were your opponent's turn to move%s will try to predict which move is best and which side has the advantage'%s' is a registered name. If it is yours, type the password.'%s' is not a registered name(Blitz)(Link is available on clipboard.)*0 Players Ready0 of 010 min + 6 sec/move, 1400↑, White10 min + 6 sec/move, White12002 min, Fischer Random, 1800↓, Black2 min, Fischer Random, Black5 min5 min, 1200-1800, ManualConnect to the Free Online Chess ServerPromote pawn to what?PyChess was unable to load your panel settingsAnalyzingAnimationChess VariantDate of gameEnter Game NotationGame dataHint mode analyzing your game, enable this type Ctrl+H.Initial PositionInstalled SidepanelsName of _first human player:Name of s_econd human player:NewsOpen GameOpening, endgameOpponent StrengthOptionsPlay Sound When...PlayersSpy mode analyzing the oponnent game, enable this type Ctrl+Y.Time ControlToolsYour Color_Start GameA file named '%s' already exists. Would you like to replace it?Engine, %s, has diedError loading gamePyChess is discovering your engines. Please wait.PyChess was not able to save the gameThere are %d games with unsaved moves. Save changes before closing?Unable to add %sUnable to save file '%s'Unknown file type '%s'Challenge:A player _checks:A player _moves:A player c_aptures:ASEANASEAN: http://www.ncf-phil.org/downloadables/2014/May/Asean_chess/Laws_of_ASEAN_Chess_2011_Nov_26.docAbortAbout ChessAc_tiveAcceptActivate alarm when _remaining sec is:Active color field must be one of w or b. %sActive seeks: %dAdd commentAdd evaluation symbolAdd move symbolAdd start commentAdd threatening variation lines Adding suggestions can help you find ideas, but slows down the computer's analysis.Address ErrorAdjournAdministratorAi-WokAi-Wok: http://www.open-aurec.com/wbforum/viewtopic.php?p=199364&sid=20963a1de2c164050de019e5ed6bf7c4#p199364All Chess FilesAll FilesAll whiteAnalysis by %sAnalyze from current positionAnalyze gameAnalyzer startedAnimate pieces, board rotation and more. Use this on fast machines.Annotated gameAnnotationAny strengthAsian variantsAsk to _MoveAsymmetric RandomAsymmetric Random AtomicAuto Call _FlagAuto _rotate board to current human playerAuto login on startupAuto-logoutAvailableBB EloBecause %(black)s lost connection to the serverBecause %(black)s lost connection to the server and %(white)s requested adjournmentBecause %(black)s ran out of time and %(white)s has insufficient material to mateBecause %(loser)s disconnectedBecause %(loser)s king explodedBecause %(loser)s ran out of timeBecause %(loser)s resignedBecause %(loser)s was checkmatedBecause %(mover)s stalematedBecause %(white)s lost connection to the serverBecause %(white)s lost connection to the server and %(black)s requested adjournmentBecause %(white)s ran out of time and %(black)s has insufficient material to mateBecause %(winner)s has fewer piecesBecause %(winner)s king reached the centerBecause %(winner)s lost all piecesBecause %(winner)s was giving check 3 timesBecause a player aborted the game. Either player can abort the game without the other's consent before the second move. No rating changes have occurred.Because a player disconnected and there are too few moves to warrant adjournment. No rating changes have occurred.Because a player lost connectionBecause a player lost connection and the other player requested adjournmentBecause both players agreed to a drawBecause both players agreed to abort the game. No rating changes have occurred.Because both players agreed to an adjournmentBecause both players have the same amount of piecesBecause both players ran out of timeBecause neither player has sufficient material to mateBecause of adjudication by an adminBecause of adjudication by an admin. No rating changes have occurred.Because of courtesy by a player. No rating changes have occurred.Because the %(black)s engine diedBecause the %(white)s engine diedBecause the connection to the server was lostBecause the game exceed the max lengthBecause the last 50 moves brought nothing newBecause the same position was repeated three times in a rowBecause the server was shut downBecause the server was shut down. No rating changes have occurred.BeepBishopBlackBlack O-OBlack O-O-OBlack has a new piece in outpost: %sBlack has a rather cramped positionBlack has a slightly cramped positionBlack should do pawn storm in leftBlack should do pawn storm in rightBlack:BlindfoldBlindfold AccountBlitzBlitz:Blitz: 5 minBringing your king legally to the center (e4, d4, e5, d5) instantly wins the game! Normal rules apply in other cases and checkmate also ends the game.BughouseCCACalculating...CambodianCambodian: http://www.khmerinstitute.org/culture/ok.htmlCastling availability field is not legal. %sCenter:ChallengeChallenge: Challenge: Change ToleranceChatChess AdvisorChess Alpha 2 DiagramChess GameChess PositionChess ShoutChess Variants are like the pieces of the last line will be placed on the board.Chess clientClaim DrawClassic chess rules http://en.wikipedia.org/wiki/ChessClassic chess rules with all pieces white http://en.wikipedia.org/wiki/Blindfold_chessClassic chess rules with hidden figurines http://en.wikipedia.org/wiki/Blindfold_chessClassic chess rules with hidden pawns http://en.wikipedia.org/wiki/Blindfold_chessClassic chess rules with hidden pieces http://en.wikipedia.org/wiki/Blindfold_chessClearClockClose _without SavingColorize analyzed movesCommand line parameters needed by the engine.Command:CommentsCompensationComputerConnectingConnecting to serverConnection ErrorConnection was closedContinue to wait for opponent, or try to adjourn the game?Conversation infoConversationsCopy FENCopy PGNCornerCould not save the fileCounterplayCrazyhouseCreate SeekDDateDate/TimeDeclineDefaultDestination Host UnreachableDetect type automaticallyDevelopment adv.DiedDo you know that it is possible to finish a chess game in just 2 turns?Do you know that the number of possible chess games exceeds the number of atoms in the Universe?Do you know that you can call flag when the clock is with you, Actions > Call Flag.Do you know that you can help translate Pychess in your language, Help > Translate Pychess.Do you want to abort it?Don't careDrawDue to abuse problems, guest connections have been prevented. You can still register on http://www.freechess.orgDummy AccountECOEdit SeekEdit Seek: Edit commentEmailEn passant cord is not legal. %sEn passant lineEndgame TableEngine scores are in units of pawns, from White's point of view. Double clicking on analysis lines you can insert them into Annotation panel as variations.EnginesEngines use uci or xboard communication protocol to talk to the GUI. If it can use both you can set here which one you like.Enter GameEnter Game _NotationError parsing move %(moveno)s %(mstr)sEuroShogiEuroShogi: http://en.wikipedia.org/wiki/EuroShogiEventEvent:Examine Adjourned GameExaminedExaminingExecutable filesExport positionFEN needs 6 data fields. %sFEN needs at least 2 data fields in fenstr. %sFICS atomic: http://www.freechess.org/Help/HelpFiles/atomic.htmlFICS bughouse: http://www.freechess.org/Help/HelpFiles/bughouse.htmlFICS crazyhouse: http://www.freechess.org/Help/HelpFiles/crazyhouse.htmlFICS losers: http://www.freechess.org/Help/HelpFiles/losers_chess.htmlFICS suicide: http://www.freechess.org/Help/HelpFiles/suicide_chess.htmlFICS wild/3: http://www.freechess.org/Help/HelpFiles/wild.html * Randomly chosen pieces (two queens or three rooks possible) * Exactly one king of each color * Pieces placed randomly behind the pawns * No castling * Black's arrangement mirrors white'sFICS wild/4: http://www.freechess.org/Help/HelpFiles/wild.html * Randomly chosen pieces (two queens or three rooks possible) * Exactly one king of each color * Pieces placed randomly behind the pawns, SUBJECT TO THE CONSTRAINT THAT THE BISHOPS ARE BALANCED * No castling * Black's arrangement DOES NOT mirrors white'sFICS wild/5: http://www.freechess.org/Help/HelpFiles/wild.html http://en.wikipedia.org/wiki/Chess_variant#Chess_with_different_starting_positions Pawns start on their 7th rank rather than their 2nd rank!FICS wild/8: http://www.freechess.org/Help/HelpFiles/wild.html Pawns start on 4th and 5th ranks rather than 2nd and 7thFICS wild/8a: http://www.freechess.org/Help/HelpFiles/wild.html White pawns start on 5th rank and black pawns on the 4th rankFIDE MasterFMF_ull board animationFace _to Face display modeFile existsFischer RandomForced moveFriendsGMGain:Game analyzing in progress...Game informationGame is _drawn:Game is _lost:Game is _set-up:Game is _won:Game shared at Games running: %dGaviota TB path:Generally this means nothing, as the game is time-based, but if you want to please your opponent, perhaps you should get going.Grand MasterGuestHa_ndle:Halfmove clockHidden pawnsHidden piecesHideHintsHost:How to PlayHuman BeingIMIdIdleIf set, PyChess will colorize suboptimal analyzed moves with red.If set, PyChess will show game results for different moves in positions containing 6 or less pieces. It will search positions from http://www.k4it.de/If set, PyChess will show game results for different moves in positions containing 6 or less pieces. You can download tablebase files from: http://www.olympuschess.com/egtb/gaviota/If set, PyChess will suggest best opening moves on hint panel.If set, PyChess will use figures to express moved pieces, rather than uppercase letters.If set, clicking on main application window closer first time it closes all games.If set, the black pieces will be head down, suitable for playing against friends on mobile devices.If set, the board will turn after each move, to show the natural view for the current player.If set, the captured figurines will be shown next to the board.If set, the elapsed time that a player used for the move is shown.If set, the hint analyzer engine evaluation value is shown.If set, the playing board will display labels and ranks for each chess field. These are usable in chess notation.If set, this hides the tab in the top of the playing window, when it is not needed.If the analyzer finds a move where the evaluation difference (the difference between the evaluation for the move it thinks is the best move and the evaluation for the move made in the game) exceeds this value, it will add an annotation for that move (consisting of the engine's Principal Variation for the move) to the Annotation panelIf you don't save, new changes to your games will be permanently lost.In TournamentIn this position, there is no legal move.Initial positionInitiativeInternational MasterInvalid move.It is not possible later to continue the game, if you don't save it.Jump to initial positionJump to latest positionKKingKing of the hillKnightKnight oddsKnightsLeave _FullscreenLightningLightning:Load _Recent GameLoaded gameLoading player dataLocal EventLocal SiteLog on ErrorLog on as G_uestLog on as _GuestLogging on to serverLosersLossMakrukMakruk: http://en.wikipedia.org/wiki/MakrukMamer ManagerManage enginesManualManual AcceptManually accept opponentMate in %dMaximum analysis time in seconds:Minutes:Minutes: More channelsMore playersMove HistoryMove numberNNameNames: #n1, #n2Needs 7 slashes in piece placement field. %sNever use animation. Use this on slow machines.New GameNo _animationNo chess engines (computer players) are participating in this game.No conversation's selectedNo soundNormalNormal: 40 min + 15 sec/moveNot AvailableObserveObserve %sObserved _ends:OddsOffer A_bortOffer AbortOffer Ad_journmentOffer PauseOffer RematchOffer ResumeOffer UndoOffer _AbortOffer _DrawOffer _PauseOffer _ResumeOffer _UndoOfficial PyChess panel.OfflineOn FICS, your "Wild" rating encompasses all of the following variants at all time controls: One player starts with one less knight pieceOne player starts with one less pawn pieceOne player starts with one less queen pieceOne player starts with one less rook pieceOnlineOnly animate _movesOnly animate piece moves.Only registered users may talk to this channelOpen GameOpen Sound FileOpen _DatabaseOpening BookOpening booksOpponent RatingOpponent's strength: OtherOther (non standard rules)Other (standard rules)PParameters:Paste FENPausePawnPawn oddsPawns PassedPawns PushedPingPlayPlay Fischer Random chessPlay Losers chessPlay RematchPlay _Internet ChessPlay normal chess rulesPlayer _RatingPlayers: %dPlayingPng imagePo_rts:Polyglot book file:Pre_viewPrefer figures in _notationPreferencesPressing Ctrl+Z to offer opponent the possible rollback moves.PrivateProbably because it has been withdrawn.PromotionProtocol:PyChess - Connect to Internet ChessPyChess - Internet Chess: FICSPyChess Game DatabasePyChess Information WindowPyChess databasePyChess has lost connection to the engine, probably because it has died. You can try to start a new game with the engine, or try to play against another one.PyChess.py:QQueenQueen oddsQuit PyChessRR_esignRandomRapidRapid: 15 min + 10 sec/moveRatedRated gameRatingReceiving list of playersRemove symbolsRequest ContinuationResendResend %s?Reset Default ColoursResultResumeRookRook oddsRoundRound:Running Simul MatchSRS_ign upSanctionsSaveSave GameSave Game _AsSave _own games onlySave analyzing engine _evaluation valuesSave elapsed move _timesSave files to:Save moves before closing?Save the current game before you close it?Saved gameScoreSearch:Seek _GraphSeek updatedSelect Gaviota TB pathSelect auto save pathSelect book fileSelect engineSelect sound file...Select the games you want to save:Select working directorySend ChallengeSend all seeksSend seekService RepresentativeSetting up environmentSetup PositionShare GameSho_w cordsShort on _time:ShoutShow ConsoleShow _ChatShow _captured piecesShow elapsed move timesShow evaluation valuesShow tips at startupShredderLinuxChess:ShuffleSide to moveSide_panelsSimple Chess PositionSiteSite:SittuyinSittuyin: http://en.wikipedia.org/wiki/SittuyinSorry '%s' is already logged inSound filesSp_y modeSpentStandardStandard:Start Private ChatStatusStep back one moveStep forward one moveSuicideTTDTMTeam AccountThe abort offerThe adjourn offerThe analyzer will run in the background and analyze the game. This is necessary for the hint mode to workThe chain button is disabled because you are logged in as a guest. Guests can't establish ratings, and the chain button's state has no effect when there is no rating to which to tie "Opponent Strength" toThe chat panel lets you communicate with your opponent during the game, assuming he or she is interestedThe clock hasn't been started yet.The comments panel will try to analyze and explain the moves playedThe connection was broken - got "end of file" messageThe directory where the engine will be started from.The displayed name of the first human player, e.g., John.The displayed name of the guest player, e.g., Mary.The draw offerThe endgame table will show exact analysis when there are few pieces on the board.The engine %s reports an error:The engine output panel shows the thinking output of chess engines (computer players) during a gameThe entered password was invalid. If you forgot your password, go to http://www.freechess.org/password to request a new one over email.The error was: %sThe file already exists in '%s'. If you replace it, its content will be overwritten.The flag callThe game #%s can't be loaded, because of an error parsing FENThe game can't be loaded, because of an error parsing FENThe game can't be read to end, because of an error parsing move %(moveno)s '%(notation)s'.The game ended in a drawThe game has been abortedThe game has been adjournedThe game has been killedThe game is pausedThe hint panel will provide computer advice during each stage of the gameThe inverse analyzer will analyze the game as if your opponent was to move. This is necessary for the spy mode to workThe move failed because %s.The moves sheet keeps track of the players' moves and lets you navigate through the game historyThe offer to switch sidesThe opening book will try to inspire you during the opening phase of the game by showing you common moves made by chess mastersThe pause offerThe reason is unknownThe resignationThe resume offerThe score panel tries to evaluate the positions and shows you a graph of the game progressThe takeback offerThemesThere is %d game with unsaved moves.There are %d games with unsaved moves.There is something wrong with this executableThis game can be automatically aborted without rating loss because there has not yet been two moves madeThis game can not be adjourned because one or both players are guestsThis is a continuation of an adjourned matchThis option is not applicable because you're challenging a playerThis option is not available because you're challenging a guest, Threat analysis by %sThree-checkTimeTime control: Time pressureTip Of The dayTip of the DayTo play on Fullscreen mode, just type F11. Coming back, F11 again.To save a game Game > Save Game As, give the filename and choose where you want to be saved. At the bottom choose extension type of the file, and Save.Tolerance:Tournament DirectorTranslate PyChessTypeType or paste PGN game or FEN positions hereUUnable to accept %sUnable to save to configured file. Save the current game before you close it?Unable to save to configured file. Save the games before closing?Unclear positionUndescribed panelUndoUndo one moveUndo two movesUninstallUnknownUnofficial channel %dUnratedUnregisteredUntimedUpside DownUse _analyzerUse _inverted analyzerUse _local tablebasesUse _online tablebasesUse analyzer:Use name format:Use opening _bookVariant developed by Kai Laskos: http://talkchess.com/forum/viewtopic.php?t=40990Variation annotation creation threshold in centipawns:W EloWFMWGMWIMWaitWas unable to save '%(uri)s' as PyChess doesn't know the format '%(ending)s'.WelcomeWhen this button is in the "locked" state, the relationship between "Opponent's strength" and "Your strength" will be preserved when a) your rating for the type of game sought has changed b) you change the variant or the time controlWhiteWhite O-OWhite O-O-OWhite has a new piece in outpost: %sWhite has a rather cramped positionWhite has a slightly cramped positionWhite should do pawn storm in leftWhite should do pawn storm in rightWhite:WildWildcastleWildcastle shuffleWinWin by giving check 3 timesWith attackWoman FIDE MasterWoman Grand MasterWoman International MasterWorking directory:Year, month, day: #y, #m, #dYouYou are currently logged in as a guest. A guest can't play rated games and therefore isn't able to play as many of the types of matches offered as a registered user. To register an account, go to http://www.freechess.org/Register/index.html.You asked your opponent to moveYou can choose from 20 different difficulties to play against the computer.You can play chess listening to the sounds of the game, for that, Settings > Preferences > Sound tab, enable Use sounds in PyChess and choose your preferred sounds.You can start a new game by Game > New Game, in New Game window do you can choose Players, Time Control and Chess Variants.You can't play rated games because "Untimed" is checked, You can't play rated games because you are logged in as a guestYou can't select a variant because "Untimed" is checked, You can't switch colors during the game.You don't have the necessary rights to save the file. Please ensure that you have given the right path and try again.You have been logged out because you were idle more than 60 minutesYou have opened no conversations yetYou have tried to undo too many moves.You may only have 3 outstanding seeks at the same time. If you want to add a new seek you must clear your currently active seeks. Clear your seeks?You sent a draw offerYou sent a pause offerYou sent a resume offerYou sent an abort offerYou sent an adjournment offerYou sent an undo offerYour opponent asks you to hurry!Your opponent has asked that the game be aborted. If you accept this offer, the game will end with no rating change.Your opponent has asked that the game be adjourned. If you accept this offer, the game will be adjourned and you can resume it later (when your opponent is online and both players agree to resume).Your opponent has asked that the game be paused. If you accept this offer, the game clock will be paused until both players agree to resume the game.Your opponent has asked that the game be resumed. If you accept this offer, the game clock will continue from where it was paused.Your opponent has asked that the last %s move(s) be undone. If you accept this offer, the game will continue from the earlier position.Your opponent has offered you a draw.Your opponent has offered you a draw. If you accept this offer, the game will end with a score of 1/2 - 1/2.Your opponent is not out of time.Your opponent must agree to abort the game because there has been two or more moves madeYour opponent seems to have changed their mind.Your opponent wants to abort the game.Your opponent wants to adjourn the game.Your opponent wants to pause the game.Your opponent wants to resume the game.Your opponent wants to undo %s move(s).Your panel settings have been reset. If this problem repeats, you should report it to the developersYour seeks have been removedYour strength: Zugzwang_Accept_Actions_Analyze Game_Auto save finished games_Black player:_Call Flag_Clear Seeks_Copy FEN_Copy PGN_Decline_Edit_Engines_Export Position_Fullscreen_Game_Game List_General_Help_Hide tabs when only one game is open_Hint mode_Hints_Invalid move:_Load Game_Log Off_Log Viewer_Name:_New Game_Next_Observed moves:_Opponent:_Password:_Play Normal chess_Player List_Previous_Replace_Rotate Board_Save %d document_Save %d documents_Save %d documents_Save Game_Seeks / Challenges_Show Sidepanels_Sounds_Start Game_Untimed_Use main app closer [x] to close all games_Use sounds in PyChess_View_White player:_Your Color:andand guests can't play rated gamesand on FICS, untimed games can't be ratedand on FICS, untimed games have to be normal chess rulesask your opponent to moveblackbrings a %(piece)s closer to enemy king: %(cord)sbrings a pawn closer to the backrow: %scall your opponents flagcaptures materialcastlesdefends %sdevelops a %(piece)s: %(cord)sdevelops a pawn: %sdrawsexchanges materialgnuchess:half-openhttp://brainking.com/en/GameRules?tp=2 * Placement of the pieces on the 1st and 8th row are randomized * The king is in the right hand corner * Bishops must start on opposite color squares * Black's starting position is obtained by rotating white's position 180 degrees around the board's center * No castlinghttp://en.wikipedia.org/wiki/Chesshttp://en.wikipedia.org/wiki/Chess960 FICS wild/fr: http://www.freechess.org/Help/HelpFiles/wild.htmlhttp://en.wikipedia.org/wiki/Rules_of_chessimproves king safetyin the %(x)s%(y)s filein the %(x)s%(y)s filesincreases the pressure on %sinvalid promoted piecematesminmoves a rook to an open filemoves an rook to a half-open filemoves bishop into fianchetto: %snot playingofoffer a drawoffer a pauseoffer a takebackoffer an abortoffer to adjournoffer to resumeoffer to switch sidesonline in totalpins an enemy %(oppiece)s on the %(piece)s at %(cord)splaces a %(piece)s more active: %(cord)spromotes a Pawn to a %spromotion move without promoted piece is incorrectputs opponent in checkrating range nowrescues a %sresignround %ssacrifies materialsecslightly improves king safetytakes back materialthe captured cord (%s) is incorrectthe end cord (%s) is incorrectthe move needs a piece and a cordthreatens to win material by %sto automatic acceptto manual acceptucivs.whitewindow1wine not installedxboardxboard nocastle: http://home.hccnet.nl/h.g.muller/engine-intf.html#8 FICS wild/2: http://www.freechess.org/Help/HelpFiles/wild.html * Random arrangement of the pieces behind the pawns * No castling * Black's arrangement mirrors white'sxboard wildcastle http://home.hccnet.nl/h.g.muller/engine-intf.html#8 FICS wild/0: http://www.freechess.org/Help/HelpFiles/wild.html * White has the typical set-up at the start. * Black's pieces are the same, except that the King and Queen are reversed, * so they are not on the same files as White's King and Queen. * Castling is done similarly to normal chess: * o-o-o indicates long castling and o-o short castling.xboard wildcastle http://home.hccnet.nl/h.g.muller/engine-intf.html#8 FICS wild/1: http://www.freechess.org/Help/HelpFiles/wild.html * In this variant both sides have the same set of pieces as in normal chess. * The white king starts on d1 or e1 and the black king starts on d8 or e8, * and the rooks are in their usual positions. * Bishops are always on opposite colors. * Subject to these constraints the position of the pieces on their first ranks is random. * Castling is done similarly to normal chess: * o-o-o indicates long castling and o-o short castling.Project-Id-Version: pychess Report-Msgid-Bugs-To: POT-Creation-Date: 2016-01-27 13:28+0100 PO-Revision-Date: 2016-01-28 08:56+0000 Last-Translator: slav0nic Language-Team: German (http://www.transifex.com/gbtami/pychess/language/de/) MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Language: de Plural-Forms: nplurals=2; plural=(n != 1); Aufschlag: +%d sfordert Sie zu einem %(time)s %(rated)s %(gametype)s Spiel herausSchachist angekommenhat Ihre Partieeinladung abgelehntist abgereisthängt seit 30 Sekunden hinterherunzulässiger Zug der Schach-Engine: %sbegutachtet Siehängt sehr stark hinterher, hat sich aber nicht abgemeldetist anwesend Min.setzt Sie auf die Noplay-Listeentspricht nicht den Kriterien Ihrer Spielanfrage indem %(player)s %(color)s spielt.mit dem Sie ein vertagtes %(timecontrol)s %(gametype)s Spiel haben, ist online.würden Sie gerne Ihr vertagtes Spiel %(time)s %(gametype)s wieder aufnehmen?%(black)s hat das Spiel gewonnen%(color)s hat einen Doppelbauern %(place)s%(color)s hat einen isolierten Bauern in der %(x)s Linie%(color)s hat isolierte Bauern in den %(x)s Linien%(color)s hat einen neuen Doppelbauern %(place)s%(color)s hat einen neuen Freibauern auf %(cord)s%(color)s zieht %(piece)s auf %(cord)s%(minutes)d Min + %(gain)d Sek/Zug%(name)s %(minutes)d Min%(name)s %(minutes)d Min %(gain)d Sek/Zug%(name)s %(minutes)d Min + %(gain)d Sek/Zug%(opcolor)s hat einen neuen gefangenen Läufer auf %(cord)s%(player)s ist %(status)s%(player)s spielt %(color)s%(white)s hat das Spiel gewonnen%d Min.%s kann nicht mehr rochieren%s kann nicht mehr kurz rochieren%s kann nicht mehr lang rochieren%s bewegt einen Bauern in eine Mauer-Formation%s gibt einen Fehler zurück%s wurde durch Ihren Gegner abgelehnt.%s wurde von Ihrem Gegner zurückgenommen%s indentifiziert die Bedrohungen, wenn Ihr Gegner am Zug wäre%s versucht den besten Zug vorherzusagen und welche Seite in Führung liegt'%s' ist ein registrierter Name. Gehört er zu Ihnen, tippen Sie bitte das Passwort ein.'%s' ist kein registrierter Name(Blitz)(Der Link wurde in die Zwischenablage kopiert)*0 Spieler bereit0 von 010 Min + 6 Sek/Zug, 1400↑, Weiß10 min + 6 s/Zug, Weiß12002 Min, Fischer Random, 1800↓, Schwarz2 min, Fischer Random, Schwarz5 min5 Min, 1200-1800, manuellMit freechess.org verbindenDen Bauern in welche andere Spielfigur umwandeln?PyChess konnte Ihre GUI-Einstellungen nicht ladenAnalysierenAnimationSchach-VarianteDatum der PartieNotation eingebenPatiedatenDer Hinweis Modus analysiert Ihr Spiel, zum Aktivieren Ctrl+H drücken.GrundstellungInstallierte SeitenleistenName des er_sten menschlichen Spielers:Name des zw_eiten menschlichen Spielers:NeuigkeitenPartie öffnenEröffnung, EndspielGegnerische StärkeEinstellungenSpiele Klang wenn...SpielerDer Spion-Modus analysiert das gegnerische Spiel, drücke Steuerung+Y zum Aktivieren.ZeitkontrolleWerkzeugeIhre FarbeSpiel _startenEine Datei namens '%s' existiert bereits. Wollen Sie sie ersetzen?Engine %s, ist abgestürztFehler beim Laden des SpielsPychess sucht nach Ihren Schachprogrammen. Bitte warten.PyChess war es nicht möglich, die Partie zu speichernEs gibt %d Spiele mit ungesicherten Zügen. Sollen diese vor dem Schließen gesichert werden?Konnte %s nicht hinzufügenDatei konnte nicht gespeichert werden '%s'Unbekannter Dateityp '%s'Herausforderung:Ein Spieler setzt _SchachEin Spieler _ziehtEin Spieler schl_ägtASEANASEAN: http://www.ncf-phil.org/downloadables/2014/May/Asean_chess/Laws_of_ASEAN_Chess_2011_Nov_26.docAbbruchWas ist Schach?Ak_tivAnnehmenAlarm geben falls _Restzeit unterAktives Farbfeld muss entweder w oder b sein. %sAktive Suchanfragen: %dKommentar hinzufügenAuswertungssymbol hinzufügenBewegungssymbol hinzufügenStartkommentar hinzufügenBedrohliche Variationslinien hinzufügenVorschläge können Ihnen helfen Ideen zu finden, können aber die Spielstärke des Computers beeinträchtigen.AdressfehlerVertagenAdministratorAi-WokAi-Wok: http://www.open-aurec.com/wbforum/viewtopic.php?p=199364&sid=20963a1de2c164050de019e5ed6bf7c4#p199364Alle Schach-DateienAlle DateienAlle weißAnalyse durch %sVon aktueller Position analysierenSpiel analysierenAnalyseprogramm gestartetAnimiere Spielfiguren, -brettrotation und anderes. Für schnelle Rechner.Kommentierte PartieKommentarBeliebige StärkeAsiatische VariantenZum Ziehen auffordernAsymmetrisches Random-ChessAsymmetrisch zufällig AtomschachAutomatisch abgelaufene _Zeit reklamierenSpielbrett automatisch zum aktiven menschlichen Spieler d_rehenAutomatische Anmeldung beim StartAutomatisch abmeldenVerfügbarBS EloWeil %(black)s die Verbindung verloren hatWeil %(black)s die Verbindung zum Server verloren- und %(white)s Unterbrechung gefordert hatWeil die Zeit von %(black)s abgelaufen ist und %(white)s kein ausreichendes Material zum Mattsetzen hat%(loser)s hat sich abgemeldetWeil der König von %(loser)s explodiert istWeil %(loser)s an Zeitnot gestorben istWeil %(loser)s aufgegeben hatWeil %(loser)s schachmatt gesetzt wurdeWeil %(mover)s zugunfähig ist: Patt!Weil %(white)s die Verbindung verloren hatWeil %(white)s die Verbindung zum Server verloren- und %(black)s Unterbrechung gefordert hatWeil die Zeit von %(white)s abgelaufen ist und %(black)s kein ausreichendes Material zum Mattsetzen hat%(winner)s hat weniger FigurenWeil %(winner)s König die Brettmitte erreicht hat%(winner)s verlor alle FigurenWeil %(winner)s 3-mal im Schach gestanden hatWeil ein Spieler das Spiel abgebrochen hat. Jeder Spieler kann das Spiel vor dem zweiten Zug, ohne die Zustimmung des Anderen abbrechen. Keine Wertungsänderungen sind aufgetreten.Weil ein Spieler sich abgemeldet hat und zu wenig Züge hatte um eine Vertagung zu fordern. Es wurden keine Bewertungsänderungen vorgenommenWeil ein Spieler die Verbindung verloren hatWeil ein Spieler seine Verbindung verloren- und der andere Spieler Unterbrechung gefordert hatBeide Spieler einigten sich auf ein UnentschiedenWeil beide Spieler einem Spielabbruch zugestimmt haben. Keine Wertungsänderungen sind aufgetreten.Beide Spieler einigten sich auf eine Unterbrechung.Weil beide Spieler dieselbe Anzahl Figuren habenWeil beide Spieler an Zeitnot gestorben sindWeil kein Spieler ausreichendes Material zum Mattsetzen hatEntscheidung eines AdminsAufgrund einer Entscheidung eines Administrators. Keine Wertungsänderungen sind aufgetreten.Aufgrund der Großzügigkeit eines Spielers. Keine Wertungsänderungen sind aufgetreten.Weil die Engine von %(black)s abgestürzt istWeil die Engine von %(white)s abgestürzt istWeil die Verbindung zum Server verloren wurdeDie Partie hat die maximale Länge überschrittenWegen der 50-Züge-RegelDieselbe Stellung hat sich dreimal hintereinander wiederholtWeil der Server heruntergefahren wurdeWeil der Server heruntergefahren wurde. Es wurden keine Bewertungsänderungen vorgenommenSignaltonLäuferSchwarzSchwarz O-OSchwarz O-O-OSchwarz hat eine neue Figur als Vorposten: %sSchwarz hat eine äußerst eingeengte PositionSchwarz hat eine leicht eingeengte PositionSchwarz sollte einen Bauernansturm links unternehmenSchwarz sollt einen Bauernansturm rechts unternehmenSchwarz:BlindschachBlindschach AccountBlitzBlitz:Blitz: 5 minWessen König das Zentrum (e4, d4, e5, d5) erreicht, gewinnt das Spiel sofort! Sonst gelten die normalen Regeln mit Sieg durch Matt setzen.TandemschachCCABerechne...Ouk-KhmerOuk-Khmer: https://en.wikipedia.org/wiki/Ouk-Khmer_%28Hill's_version%29Falsches Rochadefeld. %sMitte:HerausforderungHerausforderung: Herausfordern: Toleranz ändernChatSchachbeistandSchach-Alpha-2-DiagrammSchachpartieSchachstellungSchachSchachvarianten bestimmen die Aufstellung der hintersten Linie.Schach-ClientRemis reklamierenKlassische Schachregeln http://de.wikipedia.org/wiki/SchachKlassische Schachregeln mit allen weißen Figuren http://de.wikipedia.org/wiki/BlindschachKlassische Schachregeln mit ausgeblendeten Figuren http://de.wikipedia.org/wiki/BlindschachKlassische Schachregeln mit ausgeblendeten Bauern http://de.wikipedia.org/wiki/BlindschachKlassische Schachregeln mit ausgeblendeten Figuren http://de.wikipedia.org/wiki/BlindschachLöschenUhrSchließen _ohne SpeichernAnalysierte Züge einfärbenVom Schachprogramm benötigte Kommandozeilenparamenter.Kommando:KommentareAusgleichRechnerVerbindeVerbindung zum Server herstellenVerbindungsfehlerVerbindung wurde getrenntWeiter auf Gegner warten oder Partie vertagen? KonversationsinformationenKonversationenFEN kopierenPGN kopierenEckeKonnte die Datei nicht speichernGegenspielEinsetzschachSuchanfrage erstellenDDatumDatum/ZeitAblehnenStandardZielrechner nicht erreichbarErmittele Dateityp automatischEntwicklungsvorteilGestorbenWussten Sie, dass es möglich ist ein Schachspiel in nur 2 Zügen zu beenden?Wussten Sie, dass die Anzahl der möglichen Schachspiele größer ist, als es Atome im Universum gibt?Wussten Sie, daß Sie per Actions > Call Flag auf Zeit reklamieren können wenn das Blättchen gefallen ist?Wussten Sie, dass sie bei der Übersetzung von Pychess in Ihre Sprache helfen können, Hilfe > Pychess übersetzen.Möchten Sie abbrechen?EgalRemisWegen Missbrauchs wurden Gastzugriffe unterbunden. Sie können sich aber bei http://www.freechess.org registrieren lassen.Dummy-KontoECOBearbeite SuchanfrageBearbeite SuchanfrageKommentar bearbeiteneMailKein gültiges Zielfeld eines En-Passant-Zuges. %sEn passant ZeileEndspieltabellePunktzahlen des Schachprogramms sind in Bauerneinheiten angegeben (aus Sicht von Weiß). Durch Doppelklick auf die Analysezeile können sie als Variationen den Kommentaren hinzugefügt werden.EnginesSchachprogramme benutzen das uci oder xboard Protokoll um mit dem GUI zu kommunizieren. Wenn es beide benutzen kann, können Sie hier einstellen, welches Sie bevorzugen.Spiel betretenPartie-_Notation eingebenFehler beim verarbeiten von Zug %(moveno)s %(mstr)sEuroShogiEuroShogi: http://en.wikipedia.org/wiki/EuroShogiEreignisEreignisPausiertes Spiel untersuchenUntersuchtPrüfeAusführbare DateienExportiere SpielstandFEN benötigt 6 Datenfelder. %sFEN benötigt mindestens 2 Datenfelder in fenstr. %sFICS Atomschach: http://www.freechess.org/Help/HelpFiles/atomic.htmlFICS Tandemschach: http://www.freechess.org/Help/HelpFiles/bughouse.htmlFICS Einsetzschach: http://www.freechess.org/Help/HelpFiles/crazyhouse.htmlFICS losers: http://www.freechess.org/Help/HelpFiles/losers_chess.htmlFICS Räuberschach: http://www.freechess.org/Help/HelpFiles/suicide_chess.htmlFICS wild/3: http://www.freechess.org/Help/HelpFiles/wild.html * Zufällige Figuren (2 Damen oder 3 Türme möglich) * Genau ein König pro Farbe * Figuren werden zufällig hinter die Bauern gestellt * Keine Rochade * Die schwarze Aufstellung spiegelt die weisse widerFICS wild/4: http://www.freechess.org/Help/HelpFiles/wild.html * Zufällige Aufstellung (2 Damen oder 3 Türme möglich) * Genau ein König pro Farbe * Figuren werden zufällig hinter den Bauern aufgestellt. Jedoch sind die Läufer immer ausgeglichen. * Keine Rochade * Die schwarze Aufstellung spiegelt NICHT die weisse widerFICS wild/5: http://www.freechess.org/Help/HelpFiles/wild.html http://en.wikipedia.org/wiki/Chess_variant#Chess_with_different_starting_positions Bauern starten von Reihe 7 anstatt von Reihe 2!FICS wild/8: http://www.freechess.org/Help/HelpFiles/wild.html Bauern starten auf der 4. und 5. Reihe, statt der 2. und 7. wie im normalen SpielFICS wild/8a: http://www.freechess.org/Help/HelpFiles/wild.html Weisse Bauern starten auf der 5. Reihe und schwarze auf der 4.FIDE-MeisterFMV_ollständige Animation des SpielbrettsAngesicht _zu Angesicht AnzeigemodusDatei existiertFischer RandomErzwungener ZugFreundeGMZuschlag (pro Zug):Spielanalyse läuft...PartiedatenPartie ist _unentschieden:Partie wurde _verloren:Spiel ist _bereit:Partie wurde ge_wonnen:Spiel geteilt aufLaufende Partien: %dGaviota TB Pfad:Generell bedeutet dies nichts, da das Spiel zeitbasiert ist, aber wenn Sie Ihren Gegner zufriedenstellen wollen, sollten Sie vielleicht weitermachen.GroßmeisterGastLo_gin:Halbzug UhrVersteckte BauernVerdeckte SpielsteineAusblendenTippsServer:Wie gespielt wirdMenschIMKennungUntätigWenn aktiviert, wird PyChess als suboptimal analysierte Züge rot einfärben.Wenn aktiviert, wird PyChess die Spielergebnisse für verschiedene Züge in Stellungen mit 6 oder weniger Figuren anzeigen. Es sucht nach Stellungen aus http://www.k4it.de/Wenn aktiviert, wird PyChess die Spielergebnisse für verschiedene Züge in Stellungen mit 6 oder weniger Figuren anzeigen. Sie können Endspieldatenbanken hier herunterladen: http://www.olympuschess.com/egtb/gaviota/Wenn aktiviert, wird PyChess die besten Eröffnungszüge im Tipp-Fenster vorschlagen.Wenn aktiviert, werden Figuren statt Großbuchstaben genutzt um die Züge zu dokumentieren.Beim Schliessen des Hauptfensters werden alle Spiele ohne Rückfrage geschlossen.Wenn aktiviert, werden die schwarzen Figuren auf den Kopf gestellt. Sinnvoll für mobile Geräte, wenn der Gegenspieler auf der anderen Seite des Bildschirms sitzt.Wenn aktiviert, wird das Brett nach jedem Zug gedreht, sodass beide Spielder das Brett aus ihrer Sicht sehen können.Wenn aktiviert, werden die geschlagenen Figuren neben dem Brett angezeigt.Wenn aktiviert, wird die vom Spieler verbrauchte Zugzeit angezeigt.Wenn aktiviert, wird die Bewertung des Tipp-Analyseschachprogramm angezeigt.Aktiviert Beschriftungen auf dem Schachbrett. Dies kann sinnvoll für die Schachnotation sein.Wenn aktiviert, wird die Tableiste nur angezeigt, wenn sie benötigt wird.Wenn das Analyseprogramm einen Zug findet, bei dem die Bewertungsdifferenz (die Differenz zwischen der Bewertung des Zuges, den es als den besten ansieht, und der Bewertung des Zuges, der im Spiel gemacht wurde) diesen Wert übersteigt, wird es einen Kommentar dieses Zuges (bestehend aus der von dem Schachprogramm errechneten bestmöglichen Variante für diesen Zug) in das Kommentarfenster einfügenWenn Sie nicht speichern, wird der aktuelle Spielstand unwiderbringlich verworfen.Im TurnierIn dieser Stellung gibt es keinen legalen Zug.UrsprungspositionInitiativeInternationaler MeisterUngültiger Zug.Es ist nicht möglich, die Partie später fortzusetzen, wenn Sie sie jetzt nicht abspeichern.Zur Anfangsposition zurückgehenZur letzten Stellung zurückspringenKKönigKönig des HügelsSpringerSpringer ZugmöglichkeitenSpringer_Vollbild verlassenBulletBlitzLetztes Spiel ladenSpiel geladenLade SpielerdatenLokales EreignisLokaler OrtFehler bei der AnmeldungAls G_ast anmeldenAls _Gast anmeldenBeim Server anmeldenLosers, engl. RäberschachvarianteNiederlageMakrukMakruk: https://de.wikipedia.org/wiki/MakrukMamer ManagerEngines-EinstellungenAnleitungManuell AnnehmenGegner manuell bestätigenMatt in %dMaximale Analysezeit in Sekunden:Minuten:Minuten: Mehr KanäleMehr SpielerZuglisteZugnummerSNameNamen: #n1, #n2Der Eintrag im Plazierungsfeld muss insgesamt 7 Schrägstriche (/) enthalten. %sEs werden keine Animationen dargestellt. Auf langsamen Rechnern nützlich.Neue PartieKeine _AnimationenAn diesem Spiel nehmen keine Engines (Computerspieler) teil.Keine Konversation ausgewähltKein TonNormalNormal: 40 min + 15 s/ZugNicht verfügbarBeobachten%s beobachtenÜberwachung _endet:MöglichkeitenAbbruch AnbietenAufgabe anbietenAufschub anbietenPause anbietenRevanche anbietenFortsetzung anbietenRückgängig machen anbieten_Aufgeben anbietenRemis _anbieten_Pause anbietenFortsetzung anbieten_Rücknahme anbietenOffizielle PyChess-Leiste.Nicht verbundenAuf FICS umfasst Ihre "Wild" Wertung alle der folgenden Varianten bei allen Zeitkontrollen: Ein Spieler startet mit einem Bauern wenigerEin Spieler beginnt mit einen Bauern wenigerEin Spieler startet ohne DameEin Spieler beginnt mit einem Turm wenigerVerbundenNur Züge ani_mierenNur Spielfiguren animieren.Nur registrierte Benutzer können hier chattenPartie öffnenÖffne Klang-Datei_Datenbank öffnenEröffnungsbuchEröffnungsbücherRang des GegnersGegnerische Stärke SonstigesAndere (keine Standardregeln)Andere (Standardregeln)BParameter:FEN einfügenPauseBauerBauern ZugmöglichkeitenFreibauernFreibauernPingSpielenSpiele Fischer Random SchachRäuberschach spielenRevanche spielen_Internetschach spielenNach normalen Schach-Regeln spielenSpieler _BewertungSpieler: %dEs wird gespieltPNG BildPo_rts:Polyglot Buch Datei:_VorschauBevorzuge Figuren in der Notation.EinstellungenDurch drücken von Strg+Z können Sie dem Gegener anbieten einen Zug zurück zunehmen.PrivatMöglicherweise weil es zurückgezogen wurde.UmwandlungProtokollPyChess - Mit Internet-Schach verbindenPyChess - Internet-Schach: FICSPyChess DatenbankPyChess InfofensterPyChess DatenbankPyChess hat die Verbindung zur Engine verloren, möglicherweise ist sie abgestürzt. Sie können versuchen eine neue Partie mit der Engine zu starten, oder versuchen gegen eine andere spielen.PyChess.pyDDameDame ZugmöglichkeitenBeende PyChessTAufgebenZufallSchnellSchnell: 15 min + 10 s/ZugBewertetBewertete PartieWertungEmpfange SpielerlisteSymbole entfernenFortsetzung erbittenErneut senden%s erneut senden?Auf Standardfarben zurücksetzenErgebnisFortsetzenTurmTurm ZugmöglichkeitenRundeRunde:Simultanes Match läuftSRRegistrierenSanktionenSpeichernPartie speichernPartie speichern _unterNur _eigene Spiele speichernSpeichern der ComputerbewertungVerbrauch_te Zugzeiten anzeigenDatei speichern nach:Züge vor dem Beenden speichern?Aktuelles Spiel vor dem schließen speichern?Spiel gespeichertErgebnisSuchen:SuchgraphSuche aktualisiertPfad zu Gaviota-TB auswählenPfad zum automatischen Speichern auswählenBuchdatei auswählenEngine auswählenAudiodatei wählen …Spiel zum Sichern auswählen:Arbeitsverzeichnis auswählenHerausforderung sendenAlle Suchanfragen sendenSuchanfrage sendenVerteter des DienstesUmgebung wird eingerichtetStellung aufbauenGeteiltes SpielZeige KoordinatenZeit_notRufenKonsole anzeigenZeige _GesprächZeige _geschlagene FigurenZeige verbrauchte ZugzeitenZeige BewertungenTipps beim Start anzeigenShredderLinuxChessMischenSeite am ZugSeiten_leistenEinfache Schach-PositionOrtOrt:SittuyinSittuyin: http://en.wikipedia.org/wiki/SittuyinEntschuldigung, '%s' ist bereits angemeldetKlangdateienS_pionage-Modusverstrichene ZeitStandardStandard:Private Unterhaltung startenStatusEinen Zug zurückEinen Zug vorRäuberschachTTDTMTeam-KontoDas Abbruch-AngebotDas Vertagungs-AngebotDie Analyse wird im Hintergrund laufen und das Spiel bewerten. Dies ist nötig für den Tipp-Modus.Der Ketten-Button ist deaktiviert, weil Sie als Gast eingeloggt sind. Gäste können keine Bewertungen abgeben, und der Ketten-Button hat keine Wirkung ohne Bewertung der gegnerischen Stärke.Das Chatfenster lässt Sie mit Ihrem Gegner kommunizieren, vorausgesetzt er oder sie ist daran interessiertDie Uhr läuft noch nicht.Das Kommentarfenster versucht die gespielten Züge zu analysieren und zu erklärenDie Verbindung wurde unterbrochen - "End Of File"-Meldung erhaltenDas Verzeichnis aus dem das Schachprogramm gestartet wird.Der anzuzeigende Name des ersten menschlichen Spielers, z.B. John.Der anzuzeigende Name des Gastspielers, z.B. Mary.Das Remis-AngebotDie Endspieldatenbank zeigt eine exakte Analyse, wenn sich nur wenige Figuren auf dem Brett befindenThe Engine %s hat einen Fehler ausgegeben:Die Engine-Ausgabeleiste zeigt die Überlegungen der Computerschach-Engine während des Spiels anDas eingegebene Passwort war ungültig. Wenn Sie Ihr Passwort vergessen haben, besuchen sie http://www.freechess.org/password um ein neues per email anzufordern.Der Fehler war: %sDie Datei existiert bereits in '%s'. Wenn Sie die Datei ersetzen, wird der Inhalt überschrieben.Zeitablauf reklamierenDas Spiel #%s kann nicht geladen werden, weil beim Einlesen der FEN-Datei ein Fehler aufgetreten istDas Spiel kann wegen eines Fehlers in der FEN-Datei nicht geladen werden.Das Spiel kann wegen eines Fehlers beim verarbeiten von Zug %(moveno)s '%(notation)s' nicht bis zum Ende eingelesen werden.Die Partie endete RemisDas Spiel wurde abgebrochenDie Partie wurde vertagtDie Partie wurde beendetDas Spiel wurde angehaltenDiese Leiste bietet Computerunterstützung über die gesamte Partie hinweg.Das umgedrehte Analysetool wird das Spiel bewerten, wenn Ihr Gegner am Zug ist. Dies ist nötig für den Spion-ModusDer Zug schlug fehl, weil %s.Die Zugliste speichert die Züge der Spieler und ermöglicht es Ihnen, durch die gespielte Partie zu navigierenDas Seitentausch-AngebotDas Eröffnungsbuch wird versuchen Sie während der Eröffnung zu inspirieren, indem es gebräuchliche Züge von Schachmeistern zeigtDas Pausen-AngebotDer Grund ist nicht bekannt.Die AufgabeDas Fortsetzen-AngebotDas Ergebnisfenster versucht die Stellungen zu bewerten und zeigt Ihnen ein Diagramm des SpielfortschrittesDas Rücknahme-AngebotThemenEs gibt %d Spiele mit ungespeicherten Zügen.Es gibt %d Spiele mit ungespeicherten Zügen.Etwas stimmt mit dieser ausführbaren Datei nichtDieses Spiel kann ohne Verlust der Wertung automatisch abgebrochen werden, da noch keine zwei Züge gespielt wurden.Dieses Spiel kann nicht unterbrochen werden, da einer oder beide Spieler Gäste sind.Dies ist die Fortsetzung einer vertagten PartieDiese Option wird nicht angewendet, weil Sie der herausfordernde Spieler sindDiese Option steht nicht zur Verfügung, weil Sie einen Gast herausfordern, Bedrohungsanalyse durch %sDrei MattZeitZeitkontrolle ZeitdruckTipp des TagesTipp des TagesUm im Vollbildmodus zu spielen drücken Sie F11. Um den Vollbildmodus zu verlassen, drücken Sie nochmal F11.Um eine Partie zu speichern Partie > Partie speichern unter, Dateinamen und Speicherort eingebe. Wähle unten den Dateityp und drücke Speichern.Toleranz:TurnierleiterPyChess übersetzenTypPGN oder FEN Positionen hier eingeben oder einfügenUUnfähig %s zu akzeptierenKonfigurationsdabei konnte nicht gespeichert werden. Spiel vorm Schließen speichern?Konfigurationsdabei konnte nicht gespeichert werden. Spiele vorm Schließen speichern?Unklare PositionUnbeschriftete FlächeRückgängig machenEinen Zug zurücknehmenZwei Züge zurücknehmenDeinstallierenUnbekanntInoffizieller Kanal %dUnbewertetUnregistriertOhne ZeitlimitVerkehrt herumVerwende _AnalysiererVerwende _umgekehrten Analysierer_Lokale Endspieldatenbanken verwenden_Online-Endspieldatenbanken verwendenAnalyseprogramm verwenden:Namensformat verwenden:Eröffnungsbuch verwendenVariante entwickelt von Kai Laskos: http://talkchess.com/forum/viewtopic.php?t=40990Schwellenwert für die Erzeugung von Variantenkommentaren in Zentibauern:W EloWFMWGMWIMWartenKann '%(uri)s' nicht speichern da PyChess das Format '%(ending)s' nicht kennt.WillkommenIst dieser Knopf »gesperrt«, wird das Verhältnis zwischen »Gegnerischer Stärke« und »Eigener Spielstärke« gespeichert, wenn a) sich Ihre Wertung für gesuchte Spiele ändert. b) Sie die Art der Zeitsteuerung ändern.WeißWeiß O-OWeiß O-O-OWeiß hat eine neue Figur als Vorposten: %sWeiß hat eine äußerst eingeengte PositionWeiß hat eine leicht eingeengte PositionWeiß sollte einen Bauernansturm links unternehmenWeiß sollte einen Bauernsturm rechts unternehmenWeiß:WildWildcastleWildcastle shuffleSiegGewonnen durch 3-maliges Schach gebenMit AngriffFrauen-FIDE-MeisterGroßmeisterinInternationale MeisterinArbeitsverzeichnis:Jahr, Monat, Tag: #y, #m, #dSieSie sind momentan als Gast eingeloggt. Als Gast können sie keine Wertungspartien spielen und sind dementsprechend nicht in der Lage, die gleiche Anzahl an Spieltypen zu spielen, die einem registrierten Benutzer zu Verfügung stehen. Um ein Konto zu registrieren, besuchen Sie http://www.freechess.org/Register/index.html.Sie haben den gegnerischen Zug nachgefragtSie können aus 20 Schwierigkeitsgraden auswählen um gegen den Computer zu spielen.Nutzen sie Settings > Preferences > Sound tab um Töne zu aktivieren oder einzustellen.Starte eine neue Partie mit Partie > Neue Partie. Im neuen Partiefenster kann Spieler, Zeitkontrolle und Schach-Variante gewählt werden.Sie können keine bewerteten Spiele spielen, da die Schachuhr deaktiviert istSie können keine bewerteten Spiele spielen, da Sie als Gast eingeloggt sindSie können keine Varianten einstellen, da die Schachuhr deaktiviert istSie können die Farbe nicht während des Spiels wechseln.Sie haben nicht die nötigen Rechte um die Datei zu speichern. Überprüfen Sie bitte den angegebenen Pfad und versuchen Sie es erneut.Sie wurden ausgeloggt, weil so länger als 60 Minuten untätig waren.Sie haben noch keine Konversation begonnenSie haben versucht, zu viele Züge zurückzunehmen.Es können nur 3 Suchanfragen gleichzeitig gestellt werden. Für weitere Suchanfragen werden die bestehenden Suchanfragen gelöscht. Löschen?Sie haben ein Remis-Angebot gesendet.Sie haben ein Pausen-Angebot gesendet.Sie haben ein Wiederaufnahme-Angebot gesendet.Sie haben ein Abbruch-Angebot gesendet.Sie haben ein Vertagungs-Angebot gesendet.Sie haben ein Rücknahme-Angebot gesendet.Ihr Gegner bittet Sie, sich zu beeilen!Ihr Gegner bittet darum, die Partie abzubrechen. Sie wird dann nicht bewertet.Ihr Gegner bittet darum die Partie zu vertagen. Wenn Sie annehmen kann sie später wiederaufgenommen werden (wenn beide Gegner online sind und der Wiederaufnahme zustimmen).Ihr Gegner bitte um eine Pause. Wenn Sie annehmen, wird die Uhr so lange angehalten, bis beide Spieler der Wiederaufnahme zustimmen.Ihr Gegner möchte mit der Partie fortfahren. Wenn Sie annehmen, läuft die Uhr weiter.Ihr Gegner bittet darum, die letzten %s Züge zurückzunehmen. Wenn Sie annehmen, wird die Partie von der früheren Position weitergeführt.Ihr Gegner bietet Ihnen ein Unentschieden an.Ihr Gegner hat Remis angeboten. Wenn Sie es annehmen, wird die Partie 1/2 zu 1/2 bewertet.Ihr Gegner verfügt noch über Restspielzeit.Ihr Gegner muss dem Spielabbruch zustimmen, da bereits zwei Züge gespielt wurden.Scheinbar hat Ihr Gegner seine Meinung geändert.Ihr Gegner möchte die Partie beendenDein Gegner möchte die Partie verschiebenIhr Gegner will eine Spielpause.Ihr Gegner möchte die Partie fortsetzen.Ihr Gegner möchte %s Zug/Züge zurücknehmen.Die Fenstereinstellungen wurden zurückgesetzt. Sollte dieses Problem weiterhin auftreten, wenden Sie sich an die Entwickler.Suchanfragen wurden gelöschtEigene Spielstärke: Zugzwang_Annehmen_AktionenSpiel _analysieren_Automatisch beendete Spiele speichernSpieler _Schwarz:Abgelaufene _Zeit reklamierenSu_chergebnisse löschenFEN kopieren_PGN kopieren_AblehnenEinstellung_Engines_Exportiere Spielstand_Vollbild_Partie_SpielelisteAll_gemein_HilfeTabs _verstecken, wenn nur eine Partie offen ist_Tipp-Modus_Hinweise_Ungültiger Zug:Partie _Laden:Abmeldung_Protokoll_Name:_Neue Partie_Nächster_Überwachte Züge:_Gegner:_Passwort:Normales Schach s_pielen_Spielerliste_Vorheriger_ErsetzenBrett _DrehenSpeichere %d PartieSpeichere %d Partien_Sichere %d DokumentePartie _speichern_Suchanfrage / Herausforderung_Seitenleiste anzeigen_KlängePartie _Starten_UnbegrenztMit [x] schließen Sie alle Spiele_Verwende Klänge in PyChess_AnsichtSpieler _Weiß:_Ihre Farbe:undGäste können nicht an bewerteten Spielen teilnehmenIm FICS können keine Spiele ohne Schachuhr bewertet werdenIm FICS können Spiele ohne Schachuhr nur nach den Standard Schachregeln gespielt werden.Um zügiges Weiterspielen bittenschwarzbringt einen %(piece)s näher zum feindlichen König: %(cord)sbringt einen Bauern näher an die hinterste Reihe: %sZeitablauf des Gegners reklamierenschlägt Materialrochiertverteidigt %sentwickelt einen %(piece)s: %(cord)sentwickelt einen Bauern: %sziehttauscht Material abgnuchess:halboffenhttp://brainking.com/en/GameRules?tp=2 * Zufällige Aufstellung der Figuren der 1. und 8. Reihe * Der König befindet sich in der rechten Ecke * Läufer stehen sich, in der Startaufstellung, gegenüber * Schwarze Aufstellung ist um 180 Grad gedrehte weisse * Keine Rochadehttp://de.wikipedia.org/wiki/Schachhttp://de.wikipedia.org/wiki/Chess960 FICS wild/fr: http://www.freechess.org/Help/HelpFiles/wild.htmlhttp://de.wikipedia.org/wiki/Schach#Spielregelnerhöht die Königssicherheitauf der %(x)s%(y)s Linieauf den %(x)s%(y)s Linienerhöht den Druck auf %sUngültig umgewandelte Figursetzt mattMin.bewegt den Turm auf eine offene Liniebewegt den Turm auf eine halboffene Liniebewegt den Läufer ins Fianchetto: %sspielt nichtvonRemis anbietenEine Pause anbietenEine Zurücknahme des letzten Zugs anbietenAufgabe anbietenVertagung anbietenAnbieten, weiter zu spielenAnbieten, die Seiten zu wechselnInsgesamt onlinefesselt %(oppiece)s an %(piece)s auf %(cord)s-Linieplatziert einen %(piece)s aktiver: %(cord)swandelt den Bauern in eine(n) %sZiehen ist erst nach der Umwandlung gestattet.setzt den Gegner SchachBewertungsspektrumretten einen %saufgebenRunde %sopfert Materialserhöht leicht die Königssicherheitgewinnt Material zurückDas ausgewählte Feld (%s) ist ungültigDas Schlussfeld (%s) ist ungültigDer Zug braucht eine Figur und ein ZielfeldMaterialgewinn droht auf %szum automatischen Annehmenzum manuellen AnnehmenucigegenweißFenster 1wine ist nicht installiertxboardxboard nocastle: http://home.hccnet.nl/h.g.muller/engine-intf.html#8 FICS wild/2: http://www.freechess.org/Help/HelpFiles/wild.html * Zufällige Aufstellung hinter den Bauern * Keine Rochade * Die schwarze Aufstellung spiegelt die weisse widerxboard wildcastle http://home.hccnet.nl/h.g.muller/engine-intf.html#8 FICS wild/0: http://www.freechess.org/Help/HelpFiles/wild.html * Weiß hat die typische Startformation * Die schwarzen Figuren sind gleich aufgestellt, mit Ausnahme von König und Dame, die vertauscht sind, * sodass sie nicht auf den gleichen Linien sind wie der weiße König und die weiße Dame sind. * Die Rochade wird gleich ausgeführt wie bei normalem Schach: * o-o-o bezeichnet die lange, o-o die kurze Rochade.xboard wildcastle http://home.hccnet.nl/h.g.muller/engine-intf.html#8 FICS wild/1: http://www.freechess.org/Help/HelpFiles/wild.html * In dieser Variante haben beide Seiten dieselben Figuren wie bei normalem Schach. * Der Weiße König startet auf d1 oder e1 und der schwarze König startet auf d8 oder e8, * und die Türme sind auf ihrer üblichen Position. * Läufer sind immer auf unterschiedlichen Farben. * Unter Beachtung dieser Vorgaben sind die Positionen der Figuren auf ihrer ersten Reihe zufällig. * Die Rochade wird gleich ausgeführt wie bei normalem Schach: * o-o-o bezeichnet die lange, o-o die kurze Rochade.pychess-0.12.2/lang/bn/0000755000175000017470000000000012653231274015075 5ustar tamasusers00000000000000pychess-0.12.2/lang/bn/LC_MESSAGES/0000755000175000017470000000000012653231274016662 5ustar tamasusers00000000000000pychess-0.12.2/lang/bn/LC_MESSAGES/pychess.po0000644000175000017470000025175112653216212020706 0ustar tamasusers00000000000000# SOME DESCRIPTIVE TITLE. # Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER # This file is distributed under the same license as the pychess package. # # Translators: # FIRST AUTHOR , 2009 msgid "" msgstr "" "Project-Id-Version: pychess\n" "Report-Msgid-Bugs-To: \n" "POT-Creation-Date: 2016-01-27 13:28+0100\n" "PO-Revision-Date: 2016-01-28 08:56+0000\n" "Last-Translator: slav0nic \n" "Language-Team: Bengali (http://www.transifex.com/gbtami/pychess/language/bn/)\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" "Language: bn\n" "Plural-Forms: nplurals=2; plural=(n != 1);\n" # "Plural-Forms: nplurals=INTEGER; plural=EXPRESSION;\n" #: glade/analyze_game.glade:22 msgid "Analyze game" msgstr "" #: glade/analyze_game.glade:87 msgid "Use analyzer:" msgstr "" #: glade/analyze_game.glade:122 glade/PyChess.glade:2054 msgid "Maximum analysis time in seconds:" msgstr "" #: glade/analyze_game.glade:163 msgid "" "If the analyzer finds a move where the evaluation difference (the difference" " between the evaluation for the move it thinks is the best move and the " "evaluation for the move made in the game) exceeds this value, it will add an" " annotation for that move (consisting of the engine's Principal Variation " "for the move) to the Annotation panel" msgstr "" #: glade/analyze_game.glade:164 msgid "Variation annotation creation threshold in centipawns:" msgstr "" #: glade/analyze_game.glade:198 msgid "Analyze from current position" msgstr "" #: glade/analyze_game.glade:214 msgid "Add threatening variation lines " msgstr "" #: glade/analyze_game.glade:229 glade/PyChess.glade:1459 msgid "Colorize analyzed moves" msgstr "" #: glade/analyze_game.glade:244 glade/PyChess.glade:1495 msgid "Show evaluation values" msgstr "" #: glade/discovererDialog.glade:18 msgid "PyChess is discovering your engines. Please wait." msgstr "" #: glade/discovererDialog.glade:77 msgid "PyChess.py:" msgstr "PyChess.py:" #: glade/discovererDialog.glade:89 msgid "ShredderLinuxChess:" msgstr "" #: glade/discovererDialog.glade:101 msgid "gnuchess:" msgstr "" #: glade/fics_logon.glade:7 msgid "PyChess - Connect to Internet Chess" msgstr "পাইচেস - ইন্টারনেটে সংযুক্ত করো" #: glade/fics_logon.glade:47 msgid "Connect to the Free Online Chess Server" msgstr "" #: glade/fics_logon.glade:129 glade/taskers.glade:394 msgid "_Password:" msgstr "পাসওয়ার্ড:(_P)" #: glade/fics_logon.glade:143 msgid "_Name:" msgstr "নাম:(_N)" #: glade/fics_logon.glade:191 msgid "Log on as _Guest" msgstr "অতিথি হিসাবে লগ-অন করো" #: glade/fics_logon.glade:227 msgid "Host:" msgstr "" #: glade/fics_logon.glade:259 msgid "Po_rts:" msgstr "" #: glade/fics_logon.glade:271 msgid "Auto login on startup" msgstr "" #: glade/fics_logon.glade:385 msgid "S_ign up" msgstr "" #: glade/fics_lounge.glade:35 msgid "Challenge: " msgstr "" #: glade/fics_lounge.glade:97 msgid "Send Challenge" msgstr "" #: glade/fics_lounge.glade:133 msgid "Challenge:" msgstr "" #: glade/fics_lounge.glade:327 glade/fics_lounge.glade:2078 msgid "Lightning:" msgstr "" #: glade/fics_lounge.glade:351 glade/fics_lounge.glade:2102 msgid "Standard:" msgstr "" #: glade/fics_lounge.glade:375 glade/fics_lounge.glade:2126 msgid "Blitz:" msgstr "" #: glade/fics_lounge.glade:400 msgid "2 min, Fischer Random, Black" msgstr "" #: glade/fics_lounge.glade:422 msgid "10 min + 6 sec/move, White" msgstr "" #: glade/fics_lounge.glade:444 msgid "5 min" msgstr "" #: glade/fics_lounge.glade:480 msgid "Edit Seek" msgstr "" #: glade/fics_lounge.glade:584 lib/pychess/ic/ICLounge.py:2208 #: lib/pychess/ic/__init__.py:101 lib/pychess/Utils/GameModel.py:206 msgid "Untimed" msgstr "" #: glade/fics_lounge.glade:637 msgid "Minutes: " msgstr "" #: glade/fics_lounge.glade:665 msgid " Gain: " msgstr "" #: glade/fics_lounge.glade:703 msgid "Time control: " msgstr "" #: glade/fics_lounge.glade:716 lib/pychess/ic/FICSObjects.py:56 #: lib/pychess/ic/ICLounge.py:1137 lib/pychess/ic/ICLounge.py:2208 #: lib/pychess/ic/__init__.py:99 msgid "Standard" msgstr "" #: glade/fics_lounge.glade:757 glade/newInOut.glade:633 msgid "Time Control" msgstr "" #: glade/fics_lounge.glade:814 glade/fics_lounge.glade:1346 msgid "Don't care" msgstr "" #: glade/fics_lounge.glade:879 msgid "Your strength: " msgstr "" #: glade/fics_lounge.glade:921 msgid "(Blitz)" msgstr "" #: glade/fics_lounge.glade:951 msgid "Opponent's strength: " msgstr "" #: glade/fics_lounge.glade:1055 msgid "" "When this button is in the \"locked\" state, the relationship\n" "between \"Opponent's strength\" and \"Your strength\" will be\n" "preserved when \n" "a) your rating for the type of game sought has changed\n" "b) you change the variant or the time control" msgstr "" #: glade/fics_lounge.glade:1095 msgid "Center:" msgstr "" #: glade/fics_lounge.glade:1134 msgid "1200" msgstr "" #: glade/fics_lounge.glade:1188 msgid "Tolerance:" msgstr "" #: glade/fics_lounge.glade:1243 lib/pychess/ic/ICLounge.py:2452 msgid "Hide" msgstr "" #: glade/fics_lounge.glade:1289 msgid "Opponent Strength" msgstr "" #: glade/fics_lounge.glade:1386 lib/pychess/Database/gamelist.py:40 #: lib/pychess/ic/ICLounge.py:1357 lib/pychess/ic/ICLounge.py:1557 #: lib/pychess/ic/ICLounge.py:2108 lib/pychess/Utils/repr.py:10 #: lib/pychess/widgets/ChessClock.py:40 #: lib/pychess/widgets/TaskerManager.py:153 msgid "White" msgstr "" #: glade/fics_lounge.glade:1414 lib/pychess/Database/gamelist.py:40 #: lib/pychess/ic/ICLounge.py:1358 lib/pychess/ic/ICLounge.py:1558 #: lib/pychess/ic/ICLounge.py:2110 lib/pychess/Utils/repr.py:10 #: lib/pychess/widgets/ChessClock.py:40 #: lib/pychess/widgets/TaskerManager.py:154 msgid "Black" msgstr "" #: glade/fics_lounge.glade:1453 msgid "Your Color" msgstr "" #: glade/fics_lounge.glade:1512 msgid "Play normal chess rules" msgstr "" #: glade/fics_lounge.glade:1552 msgid "Play" msgstr "" #: glade/fics_lounge.glade:1618 glade/newInOut.glade:833 msgid "Chess Variant" msgstr "" #: glade/fics_lounge.glade:1676 msgid "Rated game" msgstr "" #: glade/fics_lounge.glade:1692 msgid "Manually accept opponent" msgstr "" #: glade/fics_lounge.glade:1722 msgid "Options" msgstr "" #: glade/fics_lounge.glade:1750 msgid "PyChess - Internet Chess: FICS" msgstr "পাইচেস - ইন্টারনেট-দাবা: FICS" #: glade/fics_lounge.glade:1823 msgid "_Clear Seeks" msgstr "" #: glade/fics_lounge.glade:1847 msgid "_Accept" msgstr "গ্রহণ করো (_A)" #: glade/fics_lounge.glade:1871 msgid "_Decline" msgstr "" #: glade/fics_lounge.glade:2151 msgid "2 min, Fischer Random, 1800↓, Black" msgstr "" #: glade/fics_lounge.glade:2172 msgid "10 min + 6 sec/move, 1400↑, White" msgstr "" #: glade/fics_lounge.glade:2193 msgid "5 min, 1200-1800, Manual" msgstr "" #: glade/fics_lounge.glade:2247 msgid "Send all seeks" msgstr "" #: glade/fics_lounge.glade:2301 msgid "Send seek" msgstr "সন্ধান প্রেরন করো" #: glade/fics_lounge.glade:2337 msgid "Create Seek" msgstr "" #: glade/fics_lounge.glade:2353 msgid "_Seeks / Challenges" msgstr "" #: glade/fics_lounge.glade:2374 lib/pychess/ic/ICLounge.py:472 #: lib/pychess/ic/ICLounge.py:670 lib/pychess/ic/ICLounge.py:1357 #: lib/pychess/ic/ICLounge.py:1358 msgid "Rating" msgstr "রেটিং" #: glade/fics_lounge.glade:2399 msgid "Time" msgstr "সময়" #: glade/fics_lounge.glade:2419 msgid "Seek _Graph" msgstr "" #: glade/fics_lounge.glade:2444 msgid "0 Players Ready" msgstr "" #: glade/fics_lounge.glade:2496 msgid "Challenge" msgstr "" #: glade/fics_lounge.glade:2549 glade/fics_lounge.glade:2735 msgid "Observe" msgstr "" #: glade/fics_lounge.glade:2602 msgid "Start Private Chat" msgstr "" #: glade/fics_lounge.glade:2659 msgid "_Player List" msgstr "" #: glade/fics_lounge.glade:2792 msgid "_Game List" msgstr "" #: glade/fics_lounge.glade:2847 msgid "_My games" msgstr "" #: glade/fics_lounge.glade:2904 glade/PyChess.glade:841 msgid "Offer _Resume" msgstr "" #: glade/fics_lounge.glade:2962 glade/PyChess.glade:880 msgid "R_esign" msgstr "" #: glade/fics_lounge.glade:3006 glade/PyChess.glade:820 msgid "Offer _Draw" msgstr "ড্র অফার করো (_D)" #: glade/fics_lounge.glade:3050 msgid "Offer A_bort" msgstr "" #: glade/fics_lounge.glade:3107 msgid "Pre_view" msgstr "" #: glade/fics_lounge.glade:3151 msgid "Examine" msgstr "" #: glade/fics_lounge.glade:3208 msgid "_Archived" msgstr "" #: glade/fics_lounge.glade:3313 msgid "News" msgstr "খবর" #: glade/fics_lounge.glade:3345 msgid "Show Console" msgstr "" #: glade/fics_lounge.glade:3359 msgid "Show _Chat" msgstr "" #: glade/fics_lounge.glade:3373 msgid "_Log Off" msgstr "" #: glade/fics_lounge.glade:3393 msgid "Tools" msgstr "টুলস" #: glade/fics_lounge.glade:3428 msgid "Asymmetric Random " msgstr "" #: glade/findbar.glade:6 msgid "window1" msgstr "" #: glade/findbar.glade:21 msgid "0 of 0" msgstr "" #: glade/findbar.glade:66 msgid "Search:" msgstr "" #: glade/findbar.glade:134 msgid "_Previous" msgstr "" #: glade/findbar.glade:192 msgid "_Next" msgstr "" #: glade/newInOut.glade:45 lib/pychess/widgets/newGameDialog.py:445 msgid "New Game" msgstr "নতুন খেলা" #: glade/newInOut.glade:108 msgid "_Start Game" msgstr "খেলা আরম্ভ করো (_S)" #: glade/newInOut.glade:130 msgid "Copy FEN" msgstr "" #: glade/newInOut.glade:143 msgid "Clear" msgstr "" #: glade/newInOut.glade:156 msgid "Paste FEN" msgstr "" #: glade/newInOut.glade:257 msgid "_Black player:" msgstr "" #: glade/newInOut.glade:274 msgid "_White player:" msgstr "" #: glade/newInOut.glade:385 msgid "Players" msgstr "খেলোয়ারগন" #: glade/newInOut.glade:436 msgid "_Untimed" msgstr "" #: glade/newInOut.glade:475 msgid "Blitz: 5 min" msgstr "" #: glade/newInOut.glade:526 msgid "Rapid: 15 min + 10 sec/move" msgstr "" #: glade/newInOut.glade:575 msgid "Normal: 40 min + 15 sec/move" msgstr "" #: glade/newInOut.glade:684 msgid "_Play Normal chess" msgstr "" #: glade/newInOut.glade:724 msgid "Play Fischer Random chess" msgstr "" #: glade/newInOut.glade:774 msgid "Play Losers chess" msgstr "" #: glade/newInOut.glade:919 msgid "Open Game" msgstr "" #: glade/newInOut.glade:1162 msgid "Initial Position" msgstr "" #: glade/newInOut.glade:1219 msgid "Enter Game Notation" msgstr "খেলার সংকেতপদ্ধতি নির্দেশ করো" #: glade/newInOut.glade:1314 msgid "Halfmove clock" msgstr "" #: glade/newInOut.glade:1327 msgid "En passant line" msgstr "" #: glade/newInOut.glade:1339 msgid "Side to move" msgstr "" #: glade/newInOut.glade:1351 msgid "Move number" msgstr "" #: glade/newInOut.glade:1361 msgid "Black O-O" msgstr "" #: glade/newInOut.glade:1375 msgid "Black O-O-O" msgstr "" #: glade/newInOut.glade:1389 msgid "White O-O-O" msgstr "" #: glade/newInOut.glade:1403 msgid "White O-O" msgstr "" #: glade/promotion.glade:7 msgid "Promotion" msgstr "পদোন্নতি" #: glade/promotion.glade:49 lib/pychess/Utils/repr.py:12 msgid "Queen" msgstr "মন্ত্রী" #: glade/promotion.glade:95 lib/pychess/Utils/repr.py:12 msgid "Rook" msgstr "নৌকা" #: glade/promotion.glade:141 lib/pychess/Utils/repr.py:12 msgid "Bishop" msgstr "গজ" #: glade/promotion.glade:187 lib/pychess/Utils/repr.py:12 msgid "Knight" msgstr "ঘোড়া" #: glade/promotion.glade:233 lib/pychess/Utils/repr.py:12 msgid "King" msgstr "" #: glade/promotion.glade:265 msgid "Promote pawn to what?" msgstr "বড়ের কিসে পদন্নতি হবে?" #: glade/PyChess.glade:9 msgid "Chess client" msgstr "" #: glade/PyChess.glade:44 msgid "Game information" msgstr "খেলার তথ্যাবলী" #: glade/PyChess.glade:164 msgid "Event:" msgstr "ইভেন্ট:" #: glade/PyChess.glade:178 msgid "Site:" msgstr "সাইট:" #: glade/PyChess.glade:204 msgid "Round:" msgstr "রাউন্ড:" #: glade/PyChess.glade:237 msgid "White:" msgstr "" #: glade/PyChess.glade:249 msgid "Black:" msgstr "" #: glade/PyChess.glade:302 msgid "Game data" msgstr "খেলার ডাটা" #: glade/PyChess.glade:357 msgid "Date of game" msgstr "খেলার তারিখ" #: glade/PyChess.glade:495 msgid "_Game" msgstr "খেলা (_G)" #: glade/PyChess.glade:502 msgid "_New Game" msgstr "নতুন খেলা (_N)" #: glade/PyChess.glade:515 msgid "Play _Internet Chess" msgstr "" #: glade/PyChess.glade:534 msgid "_Load Game" msgstr "খেলা লোড করো(_L)" #: glade/PyChess.glade:550 msgid "Load _Recent Game" msgstr "" #: glade/PyChess.glade:558 msgid "Open _Database" msgstr "" #: glade/PyChess.glade:569 lib/pychess/widgets/newGameDialog.py:615 msgid "Setup Position" msgstr "" #: glade/PyChess.glade:579 msgid "Enter Game _Notation" msgstr "" #: glade/PyChess.glade:592 msgid "_Save Game" msgstr "খেলা সেভ করো (_S)" #: glade/PyChess.glade:606 msgid "Save Game _As" msgstr "অন্য নামে খেলা সেভ করো (_A)" #: glade/PyChess.glade:624 msgid "Share Game" msgstr "" #: glade/PyChess.glade:630 msgid "_Export Position" msgstr "" #: glade/PyChess.glade:644 msgid "_Analyze Game" msgstr "" #: glade/PyChess.glade:678 msgid "Player _Rating" msgstr "খেলোয়ারের রেটিং" #: glade/PyChess.glade:723 msgid "_Edit" msgstr "" #: glade/PyChess.glade:734 msgid "_Copy PGN" msgstr "" #: glade/PyChess.glade:746 msgid "_Copy FEN" msgstr "" #: glade/PyChess.glade:763 msgid "_Engines" msgstr "" #: glade/PyChess.glade:789 msgid "_Actions" msgstr "ক্রিয়াসমূহ (_K)" #: glade/PyChess.glade:800 msgid "Offer _Abort" msgstr "" #: glade/PyChess.glade:810 msgid "Offer Ad_journment" msgstr "" #: glade/PyChess.glade:831 msgid "Offer _Pause" msgstr "" #: glade/PyChess.glade:847 msgid "Offer _Undo" msgstr "" #: glade/PyChess.glade:870 msgid "_Call Flag" msgstr "কল ফ্ল্যাগ (_C)" #: glade/PyChess.glade:890 msgid "Ask to _Move" msgstr "" #: glade/PyChess.glade:905 msgid "Auto Call _Flag" msgstr "" #: glade/PyChess.glade:918 msgid "_View" msgstr "প্রদর্শন (_V)" #: glade/PyChess.glade:925 msgid "_Rotate Board" msgstr "বোর্ড ঘোরাও (_R)" #: glade/PyChess.glade:939 msgid "_Fullscreen" msgstr "" #: glade/PyChess.glade:952 msgid "Leave _Fullscreen" msgstr "" #: glade/PyChess.glade:969 msgid "_Show Sidepanels" msgstr "" #: glade/PyChess.glade:980 msgid "_Log Viewer" msgstr "লগ প্রদর্শক (_L)" #: glade/PyChess.glade:997 msgid "_Hint mode" msgstr "হিন্ট মোড(_H)" #: glade/PyChess.glade:1009 msgid "Sp_y mode" msgstr "স্পাই মোড (_Y)" #: glade/PyChess.glade:1024 msgid "_Help" msgstr "সহায়িকা (_H)" #: glade/PyChess.glade:1034 msgid "About Chess" msgstr "দাবা সম্বন্ধে" #: glade/PyChess.glade:1043 msgid "How to Play" msgstr "" #: glade/PyChess.glade:1052 msgid "Translate PyChess" msgstr "" #: glade/PyChess.glade:1058 msgid "Tip of the Day" msgstr "" #: glade/PyChess.glade:1153 msgid "Default" msgstr "" #: glade/PyChess.glade:1156 msgid "Knights" msgstr "" #: glade/PyChess.glade:1167 lib/pychess/widgets/preferencesDialog.py:349 msgid "Beep" msgstr "" #: glade/PyChess.glade:1170 lib/pychess/widgets/preferencesDialog.py:350 msgid "Select sound file..." msgstr "" #: glade/PyChess.glade:1173 lib/pychess/widgets/preferencesDialog.py:348 msgid "No sound" msgstr "" #: glade/PyChess.glade:1180 msgid "Preferences" msgstr "পছন্দসমূহ" #: glade/PyChess.glade:1218 msgid "The displayed name of the first human player, e.g., John." msgstr "" #: glade/PyChess.glade:1230 msgid "Name of _first human player:" msgstr "" #: glade/PyChess.glade:1259 msgid "The displayed name of the guest player, e.g., Mary." msgstr "" #: glade/PyChess.glade:1271 msgid "Name of s_econd human player:" msgstr "" #: glade/PyChess.glade:1307 msgid "_Hide tabs when only one game is open" msgstr "একটি মাত্র খেলা খোলা থাকলে ট্যাবগুলি লুকোনো থাকুক (_H)" #: glade/PyChess.glade:1312 msgid "" "If set, this hides the tab in the top of the playing window, when it is not " "needed." msgstr "" #: glade/PyChess.glade:1326 msgid "_Use main app closer [x] to close all games" msgstr "" #: glade/PyChess.glade:1331 msgid "" "If set, clicking on main application window closer first time it closes all " "games." msgstr "" #: glade/PyChess.glade:1345 msgid "Auto _rotate board to current human player" msgstr "" #: glade/PyChess.glade:1350 msgid "" "If set, the board will turn after each move, to show the natural view for " "the current player." msgstr "" #: glade/PyChess.glade:1364 msgid "Auto _promote to queen" msgstr "" #: glade/PyChess.glade:1369 msgid "If set, pawn promotes to queen without promotion dialog selection." msgstr "" #: glade/PyChess.glade:1383 msgid "Face _to Face display mode" msgstr "" #: glade/PyChess.glade:1388 msgid "" "If set, the black pieces will be head down, suitable for playing against " "friends on mobile devices." msgstr "" #: glade/PyChess.glade:1402 msgid "Sho_w cords" msgstr "" #: glade/PyChess.glade:1407 msgid "" "If set, the playing board will display labels and ranks for each chess " "field. These are usable in chess notation." msgstr "" #: glade/PyChess.glade:1421 msgid "Show _captured pieces" msgstr "" #: glade/PyChess.glade:1426 msgid "If set, the captured figurines will be shown next to the board." msgstr "" #: glade/PyChess.glade:1440 msgid "Prefer figures in _notation" msgstr "" #: glade/PyChess.glade:1445 msgid "" "If set, PyChess will use figures to express moved pieces, rather than " "uppercase letters." msgstr "" #: glade/PyChess.glade:1464 msgid "If set, PyChess will colorize suboptimal analyzed moves with red." msgstr "" #: glade/PyChess.glade:1477 msgid "Show elapsed move times" msgstr "" #: glade/PyChess.glade:1482 msgid "If set, the elapsed time that a player used for the move is shown." msgstr "" #: glade/PyChess.glade:1500 msgid "If set, the hint analyzer engine evaluation value is shown." msgstr "" #: glade/PyChess.glade:1526 msgid "General Options" msgstr "" #: glade/PyChess.glade:1560 msgid "F_ull board animation" msgstr "" #: glade/PyChess.glade:1565 msgid "Animate pieces, board rotation and more. Use this on fast machines." msgstr "" #: glade/PyChess.glade:1579 msgid "Only animate _moves" msgstr "" #: glade/PyChess.glade:1584 msgid "Only animate piece moves." msgstr "" #: glade/PyChess.glade:1599 msgid "No _animation" msgstr "" #: glade/PyChess.glade:1604 msgid "Never use animation. Use this on slow machines." msgstr "" #: glade/PyChess.glade:1632 msgid "Animation" msgstr "অ্যানিমেশন" #: glade/PyChess.glade:1651 msgid "_General" msgstr "" #: glade/PyChess.glade:1692 msgid "Use opening _book" msgstr "" #: glade/PyChess.glade:1697 msgid "If set, PyChess will suggest best opening moves on hint panel." msgstr "" #: glade/PyChess.glade:1724 msgid "Polyglot book file:" msgstr "" #: glade/PyChess.glade:1768 msgid "Use _local tablebases" msgstr "" #: glade/PyChess.glade:1773 msgid "" "If set, PyChess will show game results for different moves in positions containing 6 or less pieces.\n" "You can download tablebase files from:\n" "http://www.olympuschess.com/egtb/gaviota/" msgstr "" #: glade/PyChess.glade:1803 msgid "Gaviota TB path:" msgstr "" #: glade/PyChess.glade:1843 msgid "Use _online tablebases" msgstr "" #: glade/PyChess.glade:1848 msgid "" "If set, PyChess will show game results for different moves in positions containing 6 or less pieces.\n" "It will search positions from http://www.k4it.de/" msgstr "" #: glade/PyChess.glade:1870 msgid "Opening, endgame" msgstr "" #: glade/PyChess.glade:1904 msgid "Use _analyzer" msgstr "অ্যানালাইজার ব্যাবহার করা হোক (_a)" #: glade/PyChess.glade:1946 msgid "" "The analyzer will run in the background and analyze the game. This is " "necessary for the hint mode to work" msgstr "" #: glade/PyChess.glade:1978 msgid "Use _inverted analyzer" msgstr "ইনভার্টেড অ্যানালাইজার ব্যাবহার করা হোক (_a)" #: glade/PyChess.glade:2020 msgid "" "The inverse analyzer will analyze the game as if your opponent was to move. " "This is necessary for the spy mode to work" msgstr "" #: glade/PyChess.glade:2096 msgid "Analyzing" msgstr "অ্যানালাইজ করা হচ্ছে" #: glade/PyChess.glade:2118 msgid "_Hints" msgstr "" #: glade/PyChess.glade:2263 msgid "Uninstall" msgstr "" #: glade/PyChess.glade:2317 msgid "Ac_tive" msgstr "" #: glade/PyChess.glade:2367 msgid "Installed Sidepanels" msgstr "" #: glade/PyChess.glade:2382 msgid "Side_panels" msgstr "" #: glade/PyChess.glade:2440 msgid "Light Squares :" msgstr "" #: glade/PyChess.glade:2479 msgid "Dark Squares :" msgstr "" #: glade/PyChess.glade:2515 msgid "Reset Default Colours" msgstr "" #: glade/PyChess.glade:2551 msgid "Board Colours" msgstr "" #: glade/PyChess.glade:2610 msgid "Chess Sets" msgstr "" #: glade/PyChess.glade:2634 msgid "Themes" msgstr "" #: glade/PyChess.glade:2659 msgid "_Use sounds in PyChess" msgstr "পাইচেস-এ শব্দ ব্যাবহার করা হোক (_U)" #: glade/PyChess.glade:2982 msgid "A player _checks:" msgstr "একজন খেলোয়ার চেক করছে: (_c)" #: glade/PyChess.glade:2997 msgid "A player _moves:" msgstr "একজন খেলোয়ার দান দিচ্ছে: (_m)" #: glade/PyChess.glade:3010 msgid "Game is _drawn:" msgstr "খেলাটি ড্র হয়েছে: (_d)" #: glade/PyChess.glade:3025 msgid "Game is _lost:" msgstr "খেলাটি হারা হয়েছে: (_l)" #: glade/PyChess.glade:3040 msgid "Game is _won:" msgstr "খেলাটি জেতা হয়েছে: (_w)" #: glade/PyChess.glade:3055 msgid "A player c_aptures:" msgstr "একজন খেলোয়ার ঘুঁটি খেয়েছে: (_a)" #: glade/PyChess.glade:3084 msgid "Game is _set-up:" msgstr "খেলাটি সেট-আপ করা হয়েছে: (_S)" #: glade/PyChess.glade:3136 msgid "_Observed moves:" msgstr "পর্যবেক্ষিত দানসমূহ: (_O)" #: glade/PyChess.glade:3151 msgid "Observed _ends:" msgstr "পর্যবেক্ষিত অন্তসমূহ: (_O)" #: glade/PyChess.glade:3265 msgid "Short on _time:" msgstr "" #: glade/PyChess.glade:3317 msgid "_Invalid move:" msgstr "" #: glade/PyChess.glade:3369 msgid "Activate alarm when _remaining sec is:" msgstr "" #: glade/PyChess.glade:3416 msgid "Play Sound When..." msgstr "শব্দ কর যখন..." #: glade/PyChess.glade:3438 msgid "_Sounds" msgstr "" #: glade/PyChess.glade:3463 msgid "_Auto save finished games" msgstr "" #: glade/PyChess.glade:3497 msgid "Save files to:" msgstr "" #: glade/PyChess.glade:3525 msgid "Use name format:" msgstr "" #: glade/PyChess.glade:3569 msgid "Names: #n1, #n2" msgstr "" #: glade/PyChess.glade:3582 msgid "Year, month, day: #y, #m, #d" msgstr "" #: glade/PyChess.glade:3619 msgid "Save elapsed move _times" msgstr "" #: glade/PyChess.glade:3644 msgid "Save analyzing engine _evaluation values" msgstr "" #: glade/PyChess.glade:3669 msgid "Save _own games only" msgstr "" #: glade/PyChess.glade:3698 msgid "Save" msgstr "" #: glade/PyChess.glade:3728 msgid "uci" msgstr "" #: glade/PyChess.glade:3731 msgid "xboard" msgstr "" #: glade/PyChess.glade:3739 msgid "Manage engines" msgstr "" #: glade/PyChess.glade:3837 msgid "Command:" msgstr "" #: glade/PyChess.glade:3851 msgid "Protocol:" msgstr "" #: glade/PyChess.glade:3865 msgid "Parameters:" msgstr "" #: glade/PyChess.glade:3878 msgid "Command line parameters needed by the engine." msgstr "" #: glade/PyChess.glade:3903 msgid "" "Engines use uci or xboard communication protocol to talk to the GUI.\n" "If it can use both you can set here which one you like." msgstr "" #: glade/PyChess.glade:3929 msgid "Working directory:" msgstr "" #: glade/PyChess.glade:3942 msgid "The directory where the engine will be started from." msgstr "" #: glade/saveGamesDialog.glade:7 msgid "Quit PyChess" msgstr "" #: glade/saveGamesDialog.glade:24 lib/pychess/widgets/ionest.py:424 msgid "Close _without Saving" msgstr "" #: glade/saveGamesDialog.glade:83 msgid "_Save %d documents" msgstr "" #: glade/saveGamesDialog.glade:141 msgid "" "There are %d games with unsaved moves. Save changes before " "closing?" msgstr "" #: glade/saveGamesDialog.glade:161 msgid "Select the games you want to save:" msgstr "" #: glade/saveGamesDialog.glade:204 msgid "If you don't save, new changes to your games will be permanently lost." msgstr "" #: glade/taskers.glade:126 msgid "_Opponent:" msgstr "" #: glade/taskers.glade:154 msgid "_Your Color:" msgstr "" #: glade/taskers.glade:219 msgid "_Start Game" msgstr "" #: glade/taskers.glade:338 msgid "Log on as G_uest" msgstr "" #: glade/taskers.glade:410 msgid "Ha_ndle:" msgstr "" #: glade/taskers.glade:469 msgid "_Connect to server" msgstr "" #: glade/tipoftheday.glade:7 msgid "Tip Of The day" msgstr "" #: glade/tipoftheday.glade:62 msgid "Show tips at startup" msgstr "" #: lib/pychess/Main.py:302 msgid "http://en.wikipedia.org/wiki/Chess" msgstr "http://bn.wikipedia.org/wiki/দাবা" #: lib/pychess/Main.py:305 msgid "http://en.wikipedia.org/wiki/Rules_of_chess" msgstr "http://en.wikipedia.org/wiki/Rules_of_chess" #: lib/pychess/Main.py:370 lib/pychess/widgets/gamenanny.py:80 msgid "Welcome" msgstr "" #: lib/pychess/Database/gamelist.py:40 msgid "Id" msgstr "" #: lib/pychess/Database/gamelist.py:40 msgid "W Elo" msgstr "" #: lib/pychess/Database/gamelist.py:40 msgid "B Elo" msgstr "" #: lib/pychess/Database/gamelist.py:41 msgid "Result" msgstr "" #: lib/pychess/Database/gamelist.py:41 msgid "Event" msgstr "" #: lib/pychess/Database/gamelist.py:41 msgid "Site" msgstr "" #: lib/pychess/Database/gamelist.py:41 msgid "Round" msgstr "" #: lib/pychess/Database/gamelist.py:41 msgid "Date" msgstr "" #: lib/pychess/Database/gamelist.py:41 msgid "ECO" msgstr "" #: lib/pychess/Database/gamelist.py:62 msgid "PyChess Game Database" msgstr "" #: lib/pychess/Database/PgnImport.py:188 #, python-format msgid "The game #%s can't be loaded, because of an error parsing FEN" msgstr "" #: lib/pychess/ic/FICSConnection.py:139 msgid "The connection was broken - got \"end of file\" message" msgstr "যোগাযোগ বিচ্ছিন্ন হল — \"end of file\" মেসেজ পাওয়া গেছে" #: lib/pychess/ic/FICSConnection.py:140 #, python-format msgid "'%s' is not a registered name" msgstr "'%s' কোন রেজিস্টার করা নাম নয়" #: lib/pychess/ic/FICSConnection.py:141 msgid "" "The entered password was invalid.\n" "If you forgot your password, go to http://www.freechess.org/password to request a new one over email." msgstr "" #: lib/pychess/ic/FICSConnection.py:145 #, python-format msgid "Sorry '%s' is already logged in" msgstr "" #: lib/pychess/ic/FICSConnection.py:146 #, python-format msgid "'%s' is a registered name. If it is yours, type the password." msgstr "" #: lib/pychess/ic/FICSConnection.py:147 msgid "" "Due to abuse problems, guest connections have been prevented.\n" "You can still register on http://www.freechess.org" msgstr "" #: lib/pychess/ic/FICSConnection.py:166 msgid "Connecting to server" msgstr "" #: lib/pychess/ic/FICSConnection.py:181 msgid "Logging on to server" msgstr "" #: lib/pychess/ic/FICSConnection.py:239 msgid "Setting up environment" msgstr "" #: lib/pychess/ic/FICSObjects.py:35 lib/pychess/ic/FICSObjects.py:47 #, python-format msgid "%(player)s is %(status)s" msgstr "" #: lib/pychess/ic/FICSObjects.py:46 msgid "not playing" msgstr "" #: lib/pychess/ic/FICSObjects.py:54 lib/pychess/ic/ICLounge.py:1136 #: lib/pychess/ic/ICLounge.py:2209 lib/pychess/ic/__init__.py:98 #: lib/pychess/widgets/newGameDialog.py:153 msgid "Blitz" msgstr "ব্লিটজ্‌" #: lib/pychess/ic/FICSObjects.py:58 lib/pychess/ic/ICLounge.py:1137 #: lib/pychess/ic/ICLounge.py:2209 lib/pychess/ic/__init__.py:100 msgid "Lightning" msgstr "লাইটনিং" #: lib/pychess/ic/FICSObjects.py:60 lib/pychess/Variants/atomic.py:15 msgid "Atomic" msgstr "" #: lib/pychess/ic/FICSObjects.py:62 lib/pychess/Variants/bughouse.py:9 msgid "Bughouse" msgstr "" #: lib/pychess/ic/FICSObjects.py:64 lib/pychess/Variants/crazyhouse.py:9 msgid "Crazyhouse" msgstr "" #: lib/pychess/ic/FICSObjects.py:66 lib/pychess/Variants/losers.py:9 msgid "Losers" msgstr "" #: lib/pychess/ic/FICSObjects.py:68 lib/pychess/Variants/suicide.py:12 msgid "Suicide" msgstr "" #: lib/pychess/ic/FICSObjects.py:70 lib/pychess/ic/__init__.py:129 msgid "Wild" msgstr "" #: lib/pychess/ic/FICSObjects.py:117 msgid "Online" msgstr "" #: lib/pychess/ic/FICSObjects.py:118 lib/pychess/ic/FICSObjects.py:143 msgid "Offline" msgstr "" #: lib/pychess/ic/FICSObjects.py:133 msgid "Available" msgstr "" #: lib/pychess/ic/FICSObjects.py:135 msgid "Playing" msgstr "" #: lib/pychess/ic/FICSObjects.py:141 msgid "Idle" msgstr "" #: lib/pychess/ic/FICSObjects.py:145 msgid "Examining" msgstr "" #: lib/pychess/ic/FICSObjects.py:147 msgid "Not Available" msgstr "" #: lib/pychess/ic/FICSObjects.py:149 msgid "Running Simul Match" msgstr "" #: lib/pychess/ic/FICSObjects.py:151 msgid "In Tournament" msgstr "" #: lib/pychess/ic/FICSObjects.py:308 lib/pychess/ic/FICSObjects.py:492 #: lib/pychess/ic/ICLounge.py:2278 msgid "Unrated" msgstr "রেট না করা" #: lib/pychess/ic/FICSObjects.py:491 lib/pychess/ic/ICLounge.py:670 #: lib/pychess/ic/ICLounge.py:1358 lib/pychess/ic/ICLounge.py:1558 #: lib/pychess/ic/ICLounge.py:2113 msgid "Rated" msgstr "রেট করা" #: lib/pychess/ic/FICSObjects.py:498 lib/pychess/ic/ICLounge.py:2098 #, python-format msgid "%d min" msgstr "" #: lib/pychess/ic/FICSObjects.py:500 #, python-format msgid " + %d sec" msgstr "" #: lib/pychess/ic/FICSObjects.py:517 #, python-format msgid "%(player)s plays %(color)s" msgstr "" #: lib/pychess/ic/FICSObjects.py:519 lib/pychess/ic/ICLounge.py:909 msgid "white" msgstr "" #: lib/pychess/ic/FICSObjects.py:519 lib/pychess/ic/ICLounge.py:909 msgid "black" msgstr "" #: lib/pychess/ic/FICSObjects.py:565 msgid "This is a continuation of an adjourned match" msgstr "" #: lib/pychess/ic/FICSObjects.py:654 msgid "Opponent Rating" msgstr "" #: lib/pychess/ic/FICSObjects.py:656 msgid "Manual Accept" msgstr "" #: lib/pychess/ic/FICSObjects.py:810 msgid "Private" msgstr "" #: lib/pychess/ic/FICSObjects.py:930 lib/pychess/ic/ICLounge.py:527 #: lib/pychess/Savers/epd.py:139 msgid "Unknown" msgstr "অজ্ঞাত" #: lib/pychess/ic/ICLogon.py:159 lib/pychess/ic/ICLogon.py:165 msgid "Connection Error" msgstr "সংযোগে ত্রুটি" #: lib/pychess/ic/ICLogon.py:161 msgid "Log on Error" msgstr "লগ-অন-এ ত্রুটি" #: lib/pychess/ic/ICLogon.py:163 msgid "Connection was closed" msgstr "সংযোগ বন্ধ করা হয়েছে" #: lib/pychess/ic/ICLogon.py:169 msgid "Address Error" msgstr "" #: lib/pychess/ic/ICLogon.py:172 msgid "Auto-logout" msgstr "" #: lib/pychess/ic/ICLogon.py:173 msgid "You have been logged out because you were idle more than 60 minutes" msgstr "" #: lib/pychess/ic/ICLounge.py:222 msgid "You have to set kibitz on to see bot messages here." msgstr "" #: lib/pychess/ic/ICLounge.py:241 msgid "" "You may only have 3 outstanding seeks at the same time. If you want to add a" " new seek you must clear your currently active seeks. Clear your seeks?" msgstr "" #: lib/pychess/ic/ICLounge.py:258 msgid "You can't touch this! You are examining a game." msgstr "" #: lib/pychess/ic/ICLounge.py:270 msgid " has declined your offer for a match" msgstr "" #: lib/pychess/ic/ICLounge.py:283 msgid " is censoring you" msgstr "" #: lib/pychess/ic/ICLounge.py:296 msgid " noplay listing you" msgstr "" #: lib/pychess/ic/ICLounge.py:311 msgid " uses a formula not fitting your match request:" msgstr "" #: lib/pychess/ic/ICLounge.py:325 msgid "to manual accept" msgstr "" #: lib/pychess/ic/ICLounge.py:327 msgid "to automatic accept" msgstr "" #: lib/pychess/ic/ICLounge.py:329 msgid "rating range now" msgstr "" #: lib/pychess/ic/ICLounge.py:330 msgid "Seek updated" msgstr "" #: lib/pychess/ic/ICLounge.py:342 msgid "Your seeks have been removed" msgstr "" #: lib/pychess/ic/ICLounge.py:363 msgid " has arrived" msgstr "" #: lib/pychess/ic/ICLounge.py:370 msgid " has departed" msgstr "" #: lib/pychess/ic/ICLounge.py:374 msgid " is present" msgstr "" #: lib/pychess/ic/ICLounge.py:391 sidepanel/chatPanel.py:17 msgid "Chat" msgstr "" #: lib/pychess/ic/ICLounge.py:472 sidepanel/bookPanel.py:366 msgid "Win" msgstr "" #: lib/pychess/ic/ICLounge.py:472 sidepanel/bookPanel.py:360 msgid "Draw" msgstr "" #: lib/pychess/ic/ICLounge.py:472 sidepanel/bookPanel.py:363 msgid "Loss" msgstr "" #: lib/pychess/ic/ICLounge.py:482 msgid "" "On FICS, your \"Wild\" rating encompasses all of the following variants at " "all time controls:\n" msgstr "" #: lib/pychess/ic/ICLounge.py:494 msgid "Sanctions" msgstr "" #: lib/pychess/ic/ICLounge.py:499 msgid "Email" msgstr "ইমেইল" #: lib/pychess/ic/ICLounge.py:504 msgid "Spent" msgstr "ব্যায় করা হয়েছে" #: lib/pychess/ic/ICLounge.py:506 msgid "online in total" msgstr "অনলাইন মোট" #: lib/pychess/ic/ICLounge.py:512 msgid "Ping" msgstr "পিং করুন" #: lib/pychess/ic/ICLounge.py:517 msgid "Connecting" msgstr "সংযুক্ত করা হচ্ছে" #: lib/pychess/ic/ICLounge.py:544 msgid "" "You are currently logged in as a guest.\n" "A guest can't play rated games and therefore isn't able to play as many of the types of matches offered as a registered user. To register an account, go to http://www.freechess.org/Register/index.html." msgstr "" #: lib/pychess/ic/ICLounge.py:669 lib/pychess/ic/ICLounge.py:1136 msgid "Name" msgstr "নাম" #: lib/pychess/ic/ICLounge.py:670 lib/pychess/ic/ICLounge.py:1358 #: lib/pychess/ic/ICLounge.py:1558 msgid "Type" msgstr "ধরণ" #: lib/pychess/ic/ICLounge.py:670 lib/pychess/ic/ICLounge.py:1558 msgid "Clock" msgstr "ঘড়ি" #: lib/pychess/ic/ICLounge.py:726 lib/pychess/ic/ICLounge.py:923 #: lib/pychess/Players/Human.py:250 msgid "Accept" msgstr "" #: lib/pychess/ic/ICLounge.py:728 msgid "Assess" msgstr "" #: lib/pychess/ic/ICLounge.py:734 msgid "Archived" msgstr "" #: lib/pychess/ic/ICLounge.py:848 #, python-format msgid "Active seeks: %d" msgstr "" #: lib/pychess/ic/ICLounge.py:897 #, python-format msgid "" " would like to resume your adjourned %(time)s %(gametype)s " "game." msgstr "" #: lib/pychess/ic/ICLounge.py:902 #, python-format msgid "" " challenges you to a %(time)s %(rated)s %(gametype)s game" msgstr "" #: lib/pychess/ic/ICLounge.py:907 #, python-format msgid " where %(player)s plays %(color)s." msgstr "" #: lib/pychess/ic/ICLounge.py:924 lib/pychess/Players/Human.py:251 msgid "Decline" msgstr "" #: lib/pychess/ic/ICLounge.py:1065 msgid " min" msgstr "" #: lib/pychess/ic/ICLounge.py:1137 msgid "Status" msgstr "" #: lib/pychess/ic/ICLounge.py:1203 lib/pychess/ic/ICLounge.py:1233 #, python-format msgid "Players: %d" msgstr "" #: lib/pychess/ic/ICLounge.py:1469 #, python-format msgid "Games running: %d" msgstr "" #: lib/pychess/ic/ICLounge.py:1559 msgid "Date/Time" msgstr "" #: lib/pychess/ic/ICLounge.py:1614 #, python-format msgid "" " with whom you have an adjourned %(timecontrol)s %(gametype)s " "game is online." msgstr "" #: lib/pychess/ic/ICLounge.py:1635 msgid "Request Continuation" msgstr "" #: lib/pychess/ic/ICLounge.py:1637 msgid "Examine Adjourned Game" msgstr "" #: lib/pychess/ic/ICLounge.py:1965 msgid "" "The chain button is disabled because you are logged in as a guest. Guests " "can't establish ratings, and the chain button's state has no effect when " "there is no rating to which to tie \"Opponent Strength\" to" msgstr "" #: lib/pychess/ic/ICLounge.py:2006 msgid "Challenge: " msgstr "" #: lib/pychess/ic/ICLounge.py:2044 msgid "If set you can refuse players accepting your seek" msgstr "" #: lib/pychess/ic/ICLounge.py:2048 lib/pychess/ic/ICLounge.py:2051 msgid "This option is not applicable because you're challenging a player" msgstr "" #: lib/pychess/ic/ICLounge.py:2064 msgid "Edit Seek: " msgstr "" #: lib/pychess/ic/ICLounge.py:2095 #, python-format msgid "%(minutes)d min + %(gain)d sec/move" msgstr "" #: lib/pychess/ic/ICLounge.py:2116 msgid "Manual" msgstr "" #: lib/pychess/ic/ICLounge.py:2256 msgid "Any strength" msgstr "" #: lib/pychess/ic/ICLounge.py:2308 msgid "You can't play rated games because you are logged in as a guest" msgstr "" #: lib/pychess/ic/ICLounge.py:2312 msgid "You can't play rated games because \"Untimed\" is checked, " msgstr "" #: lib/pychess/ic/ICLounge.py:2313 msgid "and on FICS, untimed games can't be rated" msgstr "" #: lib/pychess/ic/ICLounge.py:2317 msgid "This option is not available because you're challenging a guest, " msgstr "" #: lib/pychess/ic/ICLounge.py:2318 msgid "and guests can't play rated games" msgstr "" #: lib/pychess/ic/ICLounge.py:2332 lib/pychess/Variants/shuffle.py:16 #: lib/pychess/widgets/newGameDialog.py:266 msgid "Shuffle" msgstr "" #: lib/pychess/ic/ICLounge.py:2333 lib/pychess/widgets/newGameDialog.py:267 msgid "Other (standard rules)" msgstr "" #: lib/pychess/ic/ICLounge.py:2334 lib/pychess/widgets/newGameDialog.py:268 msgid "Other (non standard rules)" msgstr "" #: lib/pychess/ic/ICLounge.py:2421 msgid "You can't select a variant because \"Untimed\" is checked, " msgstr "" #: lib/pychess/ic/ICLounge.py:2422 msgid "and on FICS, untimed games have to be normal chess rules" msgstr "" #: lib/pychess/ic/ICLounge.py:2454 msgid "Change Tolerance" msgstr "" #: lib/pychess/ic/__init__.py:102 msgid "Examined" msgstr "" #: lib/pychess/ic/__init__.py:103 msgid "Other" msgstr "" #: lib/pychess/ic/__init__.py:182 msgid "Administrator" msgstr "" #: lib/pychess/ic/__init__.py:182 msgid "Blindfold Account" msgstr "" #: lib/pychess/ic/__init__.py:182 msgid "Computer" msgstr "" #: lib/pychess/ic/__init__.py:183 msgid "Team Account" msgstr "" #: lib/pychess/ic/__init__.py:183 msgid "Unregistered" msgstr "" #: lib/pychess/ic/__init__.py:183 msgid "Chess Advisor" msgstr "" #: lib/pychess/ic/__init__.py:184 msgid "Service Representative" msgstr "" #: lib/pychess/ic/__init__.py:184 msgid "Tournament Director" msgstr "" #: lib/pychess/ic/__init__.py:184 msgid "Mamer Manager" msgstr "" #: lib/pychess/ic/__init__.py:185 msgid "Grand Master" msgstr "" #: lib/pychess/ic/__init__.py:185 msgid "International Master" msgstr "" #: lib/pychess/ic/__init__.py:185 msgid "FIDE Master" msgstr "" #: lib/pychess/ic/__init__.py:186 msgid "Woman Grand Master" msgstr "" #: lib/pychess/ic/__init__.py:186 msgid "Woman International Master" msgstr "" #: lib/pychess/ic/__init__.py:186 msgid "Woman FIDE Master" msgstr "" #: lib/pychess/ic/__init__.py:187 msgid "Dummy Account" msgstr "" #: lib/pychess/ic/__init__.py:191 msgid "*" msgstr "" #: lib/pychess/ic/__init__.py:191 lib/pychess/Utils/repr.py:14 msgid "B" msgstr "" #: lib/pychess/ic/__init__.py:191 msgid "C" msgstr "" #: lib/pychess/ic/__init__.py:192 msgid "T" msgstr "" #: lib/pychess/ic/__init__.py:192 msgid "U" msgstr "" #: lib/pychess/ic/__init__.py:192 msgid "CA" msgstr "" #: lib/pychess/ic/__init__.py:193 msgid "SR" msgstr "" #: lib/pychess/ic/__init__.py:193 msgid "TD" msgstr "" #: lib/pychess/ic/__init__.py:193 msgid "TM" msgstr "" #: lib/pychess/ic/__init__.py:194 msgid "GM" msgstr "" #: lib/pychess/ic/__init__.py:194 msgid "IM" msgstr "" #: lib/pychess/ic/__init__.py:194 msgid "FM" msgstr "" #: lib/pychess/ic/__init__.py:195 msgid "WGM" msgstr "" #: lib/pychess/ic/__init__.py:195 msgid "WIM" msgstr "" #: lib/pychess/ic/__init__.py:195 msgid "WFM" msgstr "" #: lib/pychess/ic/__init__.py:195 msgid "D" msgstr "" #: lib/pychess/ic/__init__.py:195 msgid "H" msgstr "" #: lib/pychess/ic/__init__.py:195 msgid "CM" msgstr "" #: lib/pychess/ic/__init__.py:195 msgid "FA" msgstr "" #: lib/pychess/ic/__init__.py:195 msgid "NM" msgstr "" #: lib/pychess/Players/CECPEngine.py:857 #, python-format msgid "The engine %s reports an error:" msgstr "" #: lib/pychess/Players/Human.py:20 msgid "Your opponent has offered you a draw." msgstr "" #: lib/pychess/Players/Human.py:21 msgid "" "Your opponent has offered you a draw. If you accept this offer, the game " "will end with a score of 1/2 - 1/2." msgstr "" #: lib/pychess/Players/Human.py:23 msgid "Your opponent wants to abort the game." msgstr "" #: lib/pychess/Players/Human.py:24 msgid "" "Your opponent has asked that the game be aborted. If you accept this offer, " "the game will end with no rating change." msgstr "" #: lib/pychess/Players/Human.py:26 msgid "Your opponent wants to adjourn the game." msgstr "" #: lib/pychess/Players/Human.py:27 msgid "" "Your opponent has asked that the game be adjourned. If you accept this " "offer, the game will be adjourned and you can resume it later (when your " "opponent is online and both players agree to resume)." msgstr "" #: lib/pychess/Players/Human.py:29 #, python-format msgid "Your opponent wants to undo %s move(s)." msgstr "" #: lib/pychess/Players/Human.py:30 #, python-format msgid "" "Your opponent has asked that the last %s move(s) be undone. If you accept " "this offer, the game will continue from the earlier position." msgstr "" #: lib/pychess/Players/Human.py:32 msgid "Your opponent wants to pause the game." msgstr "" #: lib/pychess/Players/Human.py:33 msgid "" "Your opponent has asked that the game be paused. If you accept this offer, " "the game clock will be paused until both players agree to resume the game." msgstr "" #: lib/pychess/Players/Human.py:35 msgid "Your opponent wants to resume the game." msgstr "" #: lib/pychess/Players/Human.py:36 msgid "" "Your opponent has asked that the game be resumed. If you accept this offer, " "the game clock will continue from where it was paused." msgstr "" #: lib/pychess/Players/Human.py:40 msgid "The resignation" msgstr "" #: lib/pychess/Players/Human.py:41 msgid "The flag call" msgstr "" #: lib/pychess/Players/Human.py:42 msgid "The draw offer" msgstr "" #: lib/pychess/Players/Human.py:43 msgid "The abort offer" msgstr "" #: lib/pychess/Players/Human.py:44 msgid "The adjourn offer" msgstr "" #: lib/pychess/Players/Human.py:45 msgid "The pause offer" msgstr "" #: lib/pychess/Players/Human.py:46 msgid "The resume offer" msgstr "" #: lib/pychess/Players/Human.py:47 msgid "The offer to switch sides" msgstr "" #: lib/pychess/Players/Human.py:48 msgid "The takeback offer" msgstr "" #: lib/pychess/Players/Human.py:52 msgid "resign" msgstr "" #: lib/pychess/Players/Human.py:53 msgid "call your opponents flag" msgstr "" #: lib/pychess/Players/Human.py:54 msgid "offer a draw" msgstr "" #: lib/pychess/Players/Human.py:55 msgid "offer an abort" msgstr "" #: lib/pychess/Players/Human.py:56 msgid "offer to adjourn" msgstr "" #: lib/pychess/Players/Human.py:57 msgid "offer a pause" msgstr "" #: lib/pychess/Players/Human.py:58 msgid "offer to resume" msgstr "" #: lib/pychess/Players/Human.py:59 msgid "offer to switch sides" msgstr "" #: lib/pychess/Players/Human.py:60 msgid "offer a takeback" msgstr "" #: lib/pychess/Players/Human.py:61 msgid "ask your opponent to move" msgstr "" #: lib/pychess/Players/Human.py:66 msgid "Your opponent is not out of time." msgstr "" #: lib/pychess/Players/Human.py:68 msgid "The clock hasn't been started yet." msgstr "" #: lib/pychess/Players/Human.py:70 msgid "You can't switch colors during the game." msgstr "" #: lib/pychess/Players/Human.py:72 msgid "You have tried to undo too many moves." msgstr "" #: lib/pychess/Players/Human.py:180 msgid "Your opponent asks you to hurry!" msgstr "আপনার প্রতিদ্বন্দি আপনাকে তারা দিচ্ছেন!" #: lib/pychess/Players/Human.py:181 msgid "" "Generally this means nothing, as the game is time-based, but if you want to " "please your opponent, perhaps you should get going." msgstr "" #: lib/pychess/Players/Human.py:259 #, python-format msgid "%s was declined by your opponent" msgstr "" #: lib/pychess/Players/Human.py:260 #, python-format msgid "Resend %s?" msgstr "" #: lib/pychess/Players/Human.py:267 msgid "Resend" msgstr "" #: lib/pychess/Players/Human.py:275 #, python-format msgid "%s was withdrawn by your opponent" msgstr "" #: lib/pychess/Players/Human.py:276 msgid "Your opponent seems to have changed their mind." msgstr "" #: lib/pychess/Players/Human.py:290 #, python-format msgid "Unable to accept %s" msgstr "" #: lib/pychess/Players/Human.py:291 msgid "Probably because it has been withdrawn." msgstr "" #: lib/pychess/Players/Human.py:298 #, python-format msgid "%s returns an error" msgstr "" #: lib/pychess/Savers/chessalpha2.py:12 msgid "Chess Alpha 2 Diagram" msgstr "" #: lib/pychess/Savers/chesspastebin.py:39 msgid "Game shared at " msgstr "" #: lib/pychess/Savers/chesspastebin.py:41 msgid "(Link is available on clipboard.)" msgstr "" #: lib/pychess/Savers/database.py:19 msgid "PyChess database" msgstr "" #: lib/pychess/Savers/epd.py:12 msgid "Chess Position" msgstr "দাবার অবস্থান" #: lib/pychess/Savers/fen.py:12 msgid "Simple Chess Position" msgstr "সাধারণ দাবার অবস্থান" #: lib/pychess/Savers/fen.py:44 lib/pychess/Savers/pgn.py:329 msgid "The game can't be loaded, because of an error parsing FEN" msgstr "" #: lib/pychess/Savers/pgnbase.py:100 #, python-format msgid "" "The game can't be read to end, because of an error parsing move %(moveno)s " "'%(notation)s'." msgstr "" #: lib/pychess/Savers/pgnbase.py:102 #, python-format msgid "The move failed because %s." msgstr "" #: lib/pychess/Savers/pgnbase.py:110 #, python-format msgid "Error parsing move %(moveno)s %(mstr)s" msgstr "" #: lib/pychess/Savers/pgn.py:28 msgid "Chess Game" msgstr "" #: lib/pychess/Savers/pgn.py:362 msgid "Invalid move." msgstr "" #: lib/pychess/Savers/png.py:15 msgid "Png image" msgstr "" #: lib/pychess/System/ping.py:31 msgid "Destination Host Unreachable" msgstr "" #: lib/pychess/System/ping.py:74 msgid "Died" msgstr "" #: lib/pychess/Utils/GameModel.py:147 msgid "Local Event" msgstr "" #: lib/pychess/Utils/GameModel.py:148 msgid "Local Site" msgstr "" #: lib/pychess/Utils/repr.py:12 msgid "Pawn" msgstr "" #: lib/pychess/Utils/repr.py:14 msgid "P" msgstr "" #: lib/pychess/Utils/repr.py:14 msgid "N" msgstr "" #: lib/pychess/Utils/repr.py:14 msgid "R" msgstr "" #: lib/pychess/Utils/repr.py:14 msgid "Q" msgstr "" #: lib/pychess/Utils/repr.py:14 msgid "K" msgstr "" #: lib/pychess/Utils/repr.py:17 msgid "The game ended in a draw" msgstr "খেলাটি ড্র-এ অন্ত হয়েছে" #: lib/pychess/Utils/repr.py:18 #, python-format msgid "%(white)s won the game" msgstr "" #: lib/pychess/Utils/repr.py:19 #, python-format msgid "%(black)s won the game" msgstr "" #: lib/pychess/Utils/repr.py:20 msgid "The game has been killed" msgstr "খেলাটি মারা হয়েছে" #: lib/pychess/Utils/repr.py:21 msgid "The game has been adjourned" msgstr "খেলাটি স্থগিত হয়েছে" #: lib/pychess/Utils/repr.py:22 msgid "The game has been aborted" msgstr "খেলাটি বন্ধ করা হয়েছে" #: lib/pychess/Utils/repr.py:26 msgid "Because neither player has sufficient material to mate" msgstr "" #: lib/pychess/Utils/repr.py:27 msgid "Because the same position was repeated three times in a row" msgstr "" #: lib/pychess/Utils/repr.py:28 msgid "Because the last 50 moves brought nothing new" msgstr "" #: lib/pychess/Utils/repr.py:29 msgid "Because both players ran out of time" msgstr "" #: lib/pychess/Utils/repr.py:30 #, python-format msgid "Because %(mover)s stalemated" msgstr "" #: lib/pychess/Utils/repr.py:31 msgid "Because both players agreed to a draw" msgstr "" #: lib/pychess/Utils/repr.py:32 lib/pychess/Utils/repr.py:42 msgid "Because of adjudication by an admin" msgstr "" #: lib/pychess/Utils/repr.py:33 msgid "Because the game exceed the max length" msgstr "" #: lib/pychess/Utils/repr.py:34 #, python-format msgid "" "Because %(white)s ran out of time and %(black)s has insufficient material to" " mate" msgstr "" #: lib/pychess/Utils/repr.py:35 #, python-format msgid "" "Because %(black)s ran out of time and %(white)s has insufficient material to" " mate" msgstr "" #: lib/pychess/Utils/repr.py:36 msgid "Because both players have the same amount of pieces" msgstr "" #: lib/pychess/Utils/repr.py:38 #, python-format msgid "Because %(loser)s resigned" msgstr "" #: lib/pychess/Utils/repr.py:39 #, python-format msgid "Because %(loser)s ran out of time" msgstr "" #: lib/pychess/Utils/repr.py:40 #, python-format msgid "Because %(loser)s was checkmated" msgstr "" #: lib/pychess/Utils/repr.py:41 #, python-format msgid "Because %(loser)s disconnected" msgstr "" #: lib/pychess/Utils/repr.py:43 #, python-format msgid "Because %(winner)s has fewer pieces" msgstr "" #: lib/pychess/Utils/repr.py:44 #, python-format msgid "Because %(winner)s lost all pieces" msgstr "" #: lib/pychess/Utils/repr.py:45 #, python-format msgid "Because %(loser)s king exploded" msgstr "" #: lib/pychess/Utils/repr.py:46 #, python-format msgid "Because %(winner)s king reached the center" msgstr "" #: lib/pychess/Utils/repr.py:47 #, python-format msgid "Because %(winner)s was giving check 3 times" msgstr "" #: lib/pychess/Utils/repr.py:49 msgid "Because a player lost connection" msgstr "" #: lib/pychess/Utils/repr.py:50 msgid "Because both players agreed to an adjournment" msgstr "" #: lib/pychess/Utils/repr.py:51 msgid "Because the server was shut down" msgstr "" #: lib/pychess/Utils/repr.py:52 msgid "" "Because a player lost connection and the other player requested adjournment" msgstr "" #: lib/pychess/Utils/repr.py:53 #, python-format msgid "" "Because %(black)s lost connection to the server and %(white)s requested " "adjournment" msgstr "" #: lib/pychess/Utils/repr.py:54 #, python-format msgid "" "Because %(white)s lost connection to the server and %(black)s requested " "adjournment" msgstr "" #: lib/pychess/Utils/repr.py:55 #, python-format msgid "Because %(white)s lost connection to the server" msgstr "" #: lib/pychess/Utils/repr.py:56 #, python-format msgid "Because %(black)s lost connection to the server" msgstr "" #: lib/pychess/Utils/repr.py:58 msgid "Because of adjudication by an admin. No rating changes have occurred." msgstr "" #: lib/pychess/Utils/repr.py:59 msgid "" "Because both players agreed to abort the game. No rating changes have " "occurred." msgstr "" #: lib/pychess/Utils/repr.py:60 msgid "Because of courtesy by a player. No rating changes have occurred." msgstr "" #: lib/pychess/Utils/repr.py:61 msgid "" "Because a player aborted the game. Either player can abort the game without " "the other's consent before the second move. No rating changes have occurred." msgstr "" #: lib/pychess/Utils/repr.py:62 msgid "" "Because a player disconnected and there are too few moves to warrant " "adjournment. No rating changes have occurred." msgstr "" #: lib/pychess/Utils/repr.py:63 msgid "Because the server was shut down. No rating changes have occurred." msgstr "" #: lib/pychess/Utils/repr.py:65 #, python-format msgid "Because the %(white)s engine died" msgstr "" #: lib/pychess/Utils/repr.py:66 #, python-format msgid "Because the %(black)s engine died" msgstr "" #: lib/pychess/Utils/repr.py:67 msgid "Because the connection to the server was lost" msgstr "" #: lib/pychess/Utils/repr.py:68 msgid "The reason is unknown" msgstr "" #: lib/pychess/Utils/TimeModel.py:229 msgid "min" msgstr "" #: lib/pychess/Utils/TimeModel.py:231 msgid "sec" msgstr "" #: lib/pychess/Variants/asean.py:12 msgid "" "ASEAN: http://www.ncf-" "phil.org/downloadables/2014/May/Asean_chess/Laws_of_ASEAN_Chess_2011_Nov_26.doc" msgstr "" #: lib/pychess/Variants/asean.py:13 msgid "ASEAN" msgstr "" #: lib/pychess/Variants/asean.py:33 msgid "Makruk: http://en.wikipedia.org/wiki/Makruk" msgstr "" #: lib/pychess/Variants/asean.py:34 msgid "Makruk" msgstr "" #: lib/pychess/Variants/asean.py:60 msgid "Cambodian: http://www.khmerinstitute.org/culture/ok.html" msgstr "" #: lib/pychess/Variants/asean.py:61 msgid "Cambodian" msgstr "" #: lib/pychess/Variants/asean.py:86 msgid "" "Ai-Wok: http://www.open-" "aurec.com/wbforum/viewtopic.php?p=199364&sid=20963a1de2c164050de019e5ed6bf7c4#p199364" msgstr "" #: lib/pychess/Variants/asean.py:87 msgid "Ai-Wok" msgstr "" #: lib/pychess/Variants/asean.py:111 msgid "Sittuyin: http://en.wikipedia.org/wiki/Sittuyin" msgstr "" #: lib/pychess/Variants/asean.py:112 msgid "Sittuyin" msgstr "" #: lib/pychess/Variants/asymmetricrandom.py:12 msgid "" "FICS wild/4: http://www.freechess.org/Help/HelpFiles/wild.html\n" "* Randomly chosen pieces (two queens or three rooks possible)\n" "* Exactly one king of each color\n" "* Pieces placed randomly behind the pawns, SUBJECT TO THE CONSTRAINT THAT THE BISHOPS ARE BALANCED\n" "* No castling\n" "* Black's arrangement DOES NOT mirrors white's" msgstr "" #: lib/pychess/Variants/asymmetricrandom.py:18 msgid "Asymmetric Random" msgstr "" #: lib/pychess/Variants/atomic.py:14 msgid "FICS atomic: http://www.freechess.org/Help/HelpFiles/atomic.html" msgstr "" #: lib/pychess/Variants/blindfold.py:7 msgid "" "Classic chess rules with hidden figurines\n" "http://en.wikipedia.org/wiki/Blindfold_chess" msgstr "" #: lib/pychess/Variants/blindfold.py:9 #: lib/pychess/widgets/newGameDialog.py:264 msgid "Blindfold" msgstr "" #: lib/pychess/Variants/blindfold.py:18 msgid "" "Classic chess rules with hidden pawns\n" "http://en.wikipedia.org/wiki/Blindfold_chess" msgstr "" #: lib/pychess/Variants/blindfold.py:20 msgid "Hidden pawns" msgstr "" #: lib/pychess/Variants/blindfold.py:29 msgid "" "Classic chess rules with hidden pieces\n" "http://en.wikipedia.org/wiki/Blindfold_chess" msgstr "" #: lib/pychess/Variants/blindfold.py:31 msgid "Hidden pieces" msgstr "" #: lib/pychess/Variants/blindfold.py:40 msgid "" "Classic chess rules with all pieces white\n" "http://en.wikipedia.org/wiki/Blindfold_chess" msgstr "" #: lib/pychess/Variants/blindfold.py:42 msgid "All white" msgstr "" #: lib/pychess/Variants/bughouse.py:8 msgid "FICS bughouse: http://www.freechess.org/Help/HelpFiles/bughouse.html" msgstr "" #: lib/pychess/Variants/corner.py:12 msgid "" "http://brainking.com/en/GameRules?tp=2\n" "* Placement of the pieces on the 1st and 8th row are randomized\n" "* The king is in the right hand corner\n" "* Bishops must start on opposite color squares\n" "* Black's starting position is obtained by rotating white's position 180 degrees around the board's center\n" "* No castling" msgstr "" #: lib/pychess/Variants/corner.py:18 msgid "Corner" msgstr "" #: lib/pychess/Variants/crazyhouse.py:8 msgid "" "FICS crazyhouse: http://www.freechess.org/Help/HelpFiles/crazyhouse.html" msgstr "" #: lib/pychess/Variants/euroshogi.py:9 msgid "EuroShogi: http://en.wikipedia.org/wiki/EuroShogi" msgstr "" #: lib/pychess/Variants/euroshogi.py:10 msgid "EuroShogi" msgstr "" #: lib/pychess/Variants/fischerandom.py:18 msgid "" "http://en.wikipedia.org/wiki/Chess960\n" "FICS wild/fr: http://www.freechess.org/Help/HelpFiles/wild.html" msgstr "" #: lib/pychess/Variants/fischerandom.py:20 msgid "Fischer Random" msgstr "" #: lib/pychess/Variants/kingofthehill.py:8 msgid "" "Bringing your king legally to the center (e4, d4, e5, d5) instantly wins the game!\n" "Normal rules apply in other cases and checkmate also ends the game." msgstr "" #: lib/pychess/Variants/kingofthehill.py:10 msgid "King of the hill" msgstr "" #: lib/pychess/Variants/knightodds.py:8 msgid "One player starts with one less knight piece" msgstr "" #: lib/pychess/Variants/knightodds.py:9 msgid "Knight odds" msgstr "" #: lib/pychess/Variants/losers.py:8 msgid "FICS losers: http://www.freechess.org/Help/HelpFiles/losers_chess.html" msgstr "" #: lib/pychess/Variants/normal.py:4 msgid "" "Classic chess rules\n" "http://en.wikipedia.org/wiki/Chess" msgstr "" #: lib/pychess/Variants/normal.py:6 lib/pychess/widgets/newGameDialog.py:157 msgid "Normal" msgstr "নরমাল" #: lib/pychess/Variants/pawnodds.py:8 msgid "One player starts with one less pawn piece" msgstr "" #: lib/pychess/Variants/pawnodds.py:9 msgid "Pawn odds" msgstr "" #: lib/pychess/Variants/pawnspassed.py:11 msgid "" "FICS wild/8a: http://www.freechess.org/Help/HelpFiles/wild.html\n" "White pawns start on 5th rank and black pawns on the 4th rank" msgstr "" #: lib/pychess/Variants/pawnspassed.py:13 msgid "Pawns Passed" msgstr "" #: lib/pychess/Variants/pawnspushed.py:10 msgid "" "FICS wild/8: http://www.freechess.org/Help/HelpFiles/wild.html\n" "Pawns start on 4th and 5th ranks rather than 2nd and 7th" msgstr "" #: lib/pychess/Variants/pawnspushed.py:12 msgid "Pawns Pushed" msgstr "" #: lib/pychess/Variants/queenodds.py:8 msgid "One player starts with one less queen piece" msgstr "" #: lib/pychess/Variants/queenodds.py:9 msgid "Queen odds" msgstr "" #: lib/pychess/Variants/randomchess.py:11 msgid "" "FICS wild/3: http://www.freechess.org/Help/HelpFiles/wild.html\n" "* Randomly chosen pieces (two queens or three rooks possible)\n" "* Exactly one king of each color\n" "* Pieces placed randomly behind the pawns\n" "* No castling\n" "* Black's arrangement mirrors white's" msgstr "" #: lib/pychess/Variants/randomchess.py:17 #: lib/pychess/widgets/TaskerManager.py:155 msgid "Random" msgstr "" #: lib/pychess/Variants/rookodds.py:8 msgid "One player starts with one less rook piece" msgstr "" #: lib/pychess/Variants/rookodds.py:9 msgid "Rook odds" msgstr "" #: lib/pychess/Variants/shuffle.py:11 msgid "" "xboard nocastle: http://home.hccnet.nl/h.g.muller/engine-intf.html#8\n" "FICS wild/2: http://www.freechess.org/Help/HelpFiles/wild.html\n" "* Random arrangement of the pieces behind the pawns\n" "* No castling\n" "* Black's arrangement mirrors white's" msgstr "" #: lib/pychess/Variants/suicide.py:11 msgid "" "FICS suicide: http://www.freechess.org/Help/HelpFiles/suicide_chess.html" msgstr "" #: lib/pychess/Variants/theban.py:10 msgid "" "Variant developed by Kai Laskos: " "http://talkchess.com/forum/viewtopic.php?t=40990" msgstr "" #: lib/pychess/Variants/theban.py:11 msgid "Theban" msgstr "" #: lib/pychess/Variants/threecheck.py:10 msgid "Win by giving check 3 times" msgstr "" #: lib/pychess/Variants/threecheck.py:11 msgid "Three-check" msgstr "" #: lib/pychess/Variants/upsidedown.py:10 msgid "" "FICS wild/5: http://www.freechess.org/Help/HelpFiles/wild.html\n" "http://en.wikipedia.org/wiki/Chess_variant#Chess_with_different_starting_positions\n" "Pawns start on their 7th rank rather than their 2nd rank!" msgstr "" #: lib/pychess/Variants/upsidedown.py:13 msgid "Upside Down" msgstr "" #: lib/pychess/Variants/wildcastle.py:10 msgid "" "xboard wildcastle http://home.hccnet.nl/h.g.muller/engine-intf.html#8\n" "FICS wild/0: http://www.freechess.org/Help/HelpFiles/wild.html\n" "* White has the typical set-up at the start.\n" "* Black's pieces are the same, except that the King and Queen are reversed,\n" "* so they are not on the same files as White's King and Queen.\n" "* Castling is done similarly to normal chess:\n" "* o-o-o indicates long castling and o-o short castling." msgstr "" #: lib/pychess/Variants/wildcastle.py:17 msgid "Wildcastle" msgstr "" #: lib/pychess/Variants/wildcastleshuffle.py:11 msgid "" "xboard wildcastle http://home.hccnet.nl/h.g.muller/engine-intf.html#8\n" "FICS wild/1: http://www.freechess.org/Help/HelpFiles/wild.html\n" "* In this variant both sides have the same set of pieces as in normal chess.\n" "* The white king starts on d1 or e1 and the black king starts on d8 or e8,\n" "* and the rooks are in their usual positions.\n" "* Bishops are always on opposite colors.\n" "* Subject to these constraints the position of the pieces on their first ranks is random.\n" "* Castling is done similarly to normal chess:\n" "* o-o-o indicates long castling and o-o short castling." msgstr "" #: lib/pychess/Variants/wildcastleshuffle.py:20 msgid "Wildcastle shuffle" msgstr "" #: lib/pychess/widgets/analyzegameDialog.py:85 msgid "Game analyzing in progress..." msgstr "" #: lib/pychess/widgets/analyzegameDialog.py:86 msgid "Do you want to abort it?" msgstr "" #: lib/pychess/widgets/analyzegameDialog.py:95 #: lib/pychess/widgets/gamewidget.py:202 lib/pychess/widgets/gamewidget.py:320 msgid "Abort" msgstr "" #: lib/pychess/widgets/ChatView.py:125 msgid "Observers" msgstr "" #: lib/pychess/widgets/ChatWindow.py:222 msgid "You have opened no conversations yet" msgstr "" #: lib/pychess/widgets/ChatWindow.py:254 msgid "Only registered users may talk to this channel" msgstr "" #: lib/pychess/widgets/ChatWindow.py:312 msgid "No conversation's selected" msgstr "" #: lib/pychess/widgets/ChatWindow.py:350 msgid "Loading player data" msgstr "" #: lib/pychess/widgets/ChatWindow.py:400 msgid "Receiving list of players" msgstr "" #: lib/pychess/widgets/ChatWindow.py:518 msgid "Friends" msgstr "" #: lib/pychess/widgets/ChatWindow.py:529 msgid "Admin" msgstr "" #: lib/pychess/widgets/ChatWindow.py:540 msgid "More channels" msgstr "" #: lib/pychess/widgets/ChatWindow.py:548 msgid "More players" msgstr "" #: lib/pychess/widgets/ChatWindow.py:558 msgid "Computers" msgstr "" #: lib/pychess/widgets/ChatWindow.py:568 msgid "BlindFold" msgstr "" #: lib/pychess/widgets/ChatWindow.py:578 msgid "Guests" msgstr "" #: lib/pychess/widgets/ChatWindow.py:805 msgid "Conversations" msgstr "" #: lib/pychess/widgets/ChatWindow.py:807 msgid "Conversation info" msgstr "" #: lib/pychess/widgets/enginesDialog.py:152 msgid "Select engine" msgstr "" #: lib/pychess/widgets/enginesDialog.py:156 msgid "Executable files" msgstr "" #: lib/pychess/widgets/enginesDialog.py:176 #: lib/pychess/widgets/enginesDialog.py:210 #: lib/pychess/widgets/enginesDialog.py:235 #, python-format msgid "Unable to add %s" msgstr "" #: lib/pychess/widgets/enginesDialog.py:177 msgid "wine not installed" msgstr "" #: lib/pychess/widgets/enginesDialog.py:211 #: lib/pychess/widgets/enginesDialog.py:236 msgid "There is something wrong with this executable" msgstr "" #: lib/pychess/widgets/enginesDialog.py:266 msgid "Select working directory" msgstr "" #: lib/pychess/widgets/gamenanny.py:115 #, python-format msgid " invalid engine move: %s" msgstr "" #: lib/pychess/widgets/gamenanny.py:134 msgid "Offer Rematch" msgstr "" #: lib/pychess/widgets/gamenanny.py:136 lib/pychess/widgets/gamenanny.py:147 #, python-format msgid "Observe %s" msgstr "" #: lib/pychess/widgets/gamenanny.py:168 msgid "Play Rematch" msgstr "" #: lib/pychess/widgets/gamenanny.py:171 msgid "Undo one move" msgstr "" #: lib/pychess/widgets/gamenanny.py:173 msgid "Undo two moves" msgstr "" #: lib/pychess/widgets/gamenanny.py:203 msgid "The game is paused" msgstr "" #: lib/pychess/widgets/gamenanny.py:221 lib/pychess/widgets/gamenanny.py:222 msgid "Loaded game" msgstr "লোড করা খেলা" #: lib/pychess/widgets/gamenanny.py:228 msgid "Saved game" msgstr "সেভ করা খেলা" #: lib/pychess/widgets/gamenanny.py:232 msgid "Analyzer started" msgstr "" #: lib/pychess/widgets/gamenanny.py:281 msgid "You sent an abort offer" msgstr "" #: lib/pychess/widgets/gamenanny.py:283 msgid "You sent an adjournment offer" msgstr "" #: lib/pychess/widgets/gamenanny.py:285 msgid "You sent a draw offer" msgstr "তুমি একটি ড্র-এর অফার পাঠালে" #: lib/pychess/widgets/gamenanny.py:287 msgid "You sent a pause offer" msgstr "" #: lib/pychess/widgets/gamenanny.py:289 msgid "You sent a resume offer" msgstr "" #: lib/pychess/widgets/gamenanny.py:291 msgid "You sent an undo offer" msgstr "" #: lib/pychess/widgets/gamenanny.py:293 msgid "You asked your opponent to move" msgstr "" #: lib/pychess/widgets/gamenanny.py:305 #, python-format msgid "Engine, %s, has died" msgstr "ইঞ্জিন, %s, মারা গেছে" #: lib/pychess/widgets/gamenanny.py:306 msgid "" "PyChess has lost connection to the engine, probably because it has died.\n" "\n" "You can try to start a new game with the engine, or try to play against another one." msgstr "পাইচেস-এর ইঞ্জিন-এর সঙ্গে যোগাযোগ বিচ্ছিন্ন হয়েছে, হয়ত ইঞ্জিন-টি মারা গেছে।\n\nতুমি ইঞ্জিন-টির সঙ্গে একটি নতুন খেলা আরম্ভ করতে পারো, অথবা একে অপরের সঙ্গে খেলতে পারো." #: lib/pychess/widgets/gamewidget.py:204 msgid "" "This game can be automatically aborted without rating loss because there has" " not yet been two moves made" msgstr "" #: lib/pychess/widgets/gamewidget.py:206 msgid "Offer Abort" msgstr "" #: lib/pychess/widgets/gamewidget.py:208 msgid "" "Your opponent must agree to abort the game because there has been two or " "more moves made" msgstr "" #: lib/pychess/widgets/gamewidget.py:226 msgid "This game can not be adjourned because one or both players are guests" msgstr "" #: lib/pychess/widgets/gamewidget.py:243 msgid "Claim Draw" msgstr "" #: lib/pychess/widgets/gamewidget.py:325 msgid "Pause" msgstr "" #: lib/pychess/widgets/gamewidget.py:326 msgid "Resume" msgstr "" #: lib/pychess/widgets/gamewidget.py:328 msgid "Offer Pause" msgstr "" #: lib/pychess/widgets/gamewidget.py:329 msgid "Offer Resume" msgstr "" #: lib/pychess/widgets/gamewidget.py:333 msgid "Undo" msgstr "" #: lib/pychess/widgets/gamewidget.py:335 msgid "Offer Undo" msgstr "" #: lib/pychess/widgets/gamewidget.py:550 msgid " has lagged for 30 seconds" msgstr "" #: lib/pychess/widgets/gamewidget.py:566 msgid " is lagging heavily but hasn't disconnected" msgstr "" #: lib/pychess/widgets/gamewidget.py:567 msgid "Continue to wait for opponent, or try to adjourn the game?" msgstr "" #: lib/pychess/widgets/gamewidget.py:575 msgid "Wait" msgstr "" #: lib/pychess/widgets/gamewidget.py:576 msgid "Adjourn" msgstr "" #: lib/pychess/widgets/gamewidget.py:648 msgid "Jump to initial position" msgstr "" #: lib/pychess/widgets/gamewidget.py:653 msgid "Step back one move" msgstr "" #: lib/pychess/widgets/gamewidget.py:658 msgid "Go back to the main line" msgstr "" #: lib/pychess/widgets/gamewidget.py:664 msgid "Step forward one move" msgstr "" #: lib/pychess/widgets/gamewidget.py:669 msgid "Jump to latest position" msgstr "" #: lib/pychess/widgets/gamewidget.py:903 msgid "PyChess was unable to load your panel settings" msgstr "" #: lib/pychess/widgets/gamewidget.py:904 msgid "" "Your panel settings have been reset. If this problem repeats, you should " "report it to the developers" msgstr "" #: lib/pychess/widgets/ionest.py:67 lib/pychess/widgets/newGameDialog.py:389 #: lib/pychess/widgets/TaskerManager.py:210 msgid "You" msgstr "" #: lib/pychess/widgets/ionest.py:70 lib/pychess/widgets/newGameDialog.py:390 #: lib/pychess/widgets/preferencesDialog.py:61 #: lib/pychess/widgets/TaskerManager.py:213 msgid "Guest" msgstr "" #: lib/pychess/widgets/ionest.py:93 msgid "Error loading game" msgstr "" #: lib/pychess/widgets/ionest.py:127 lib/pychess/widgets/newGameDialog.py:480 msgid "Open Game" msgstr "খেলা খোলো" #: lib/pychess/widgets/ionest.py:137 msgid "All Files" msgstr "" #: lib/pychess/widgets/ionest.py:140 msgid "Detect type automatically" msgstr "" #: lib/pychess/widgets/ionest.py:146 msgid "All Chess Files" msgstr "দাবার সব ফাইল" #: lib/pychess/widgets/ionest.py:228 msgid "Save Game" msgstr "" #: lib/pychess/widgets/ionest.py:228 msgid "Export position" msgstr "" #: lib/pychess/widgets/ionest.py:232 lib/pychess/widgets/ionest.py:360 msgid "vs." msgstr "" #: lib/pychess/widgets/ionest.py:249 #, python-format msgid "Unknown file type '%s'" msgstr "" #: lib/pychess/widgets/ionest.py:250 #, python-format msgid "" "Was unable to save '%(uri)s' as PyChess doesn't know the format " "'%(ending)s'." msgstr "" #: lib/pychess/widgets/ionest.py:266 #, python-format msgid "Unable to save file '%s'" msgstr "'%s' ফাইল সংরক্ষণ করা সম্ভব হচ্ছেনা" #: lib/pychess/widgets/ionest.py:268 msgid "" "You don't have the necessary rights to save the file.\n" "Please ensure that you have given the right path and try again." msgstr "" #: lib/pychess/widgets/ionest.py:276 msgid "_Replace" msgstr "" #: lib/pychess/widgets/ionest.py:280 msgid "File exists" msgstr "" #: lib/pychess/widgets/ionest.py:282 #, python-format msgid "" "A file named '%s' already exists. Would you like to replace " "it?" msgstr "" #: lib/pychess/widgets/ionest.py:283 #, python-format msgid "" "The file already exists in '%s'. If you replace it, its content will be " "overwritten." msgstr "" #: lib/pychess/widgets/ionest.py:299 msgid "Could not save the file" msgstr "" #: lib/pychess/widgets/ionest.py:300 msgid "PyChess was not able to save the game" msgstr "" #: lib/pychess/widgets/ionest.py:301 #, python-format msgid "The error was: %s" msgstr "" #: lib/pychess/widgets/ionest.py:325 #, python-format msgid "There is %d game with unsaved moves." msgid_plural "There are %d games with unsaved moves." msgstr[0] "" msgstr[1] "" #: lib/pychess/widgets/ionest.py:328 msgid "Save moves before closing?" msgstr "" #: lib/pychess/widgets/ionest.py:339 msgid "Unable to save to configured file. Save the games before closing?" msgstr "" #: lib/pychess/widgets/ionest.py:366 #, python-format msgid "_Save %d document" msgid_plural "_Save %d documents" msgstr[0] "" msgstr[1] "" #: lib/pychess/widgets/ionest.py:412 msgid "Save the current game before you close it?" msgstr "" #: lib/pychess/widgets/ionest.py:420 msgid "" "Unable to save to configured file. Save the current game before you close " "it?" msgstr "" #: lib/pychess/widgets/ionest.py:434 msgid "" "It is not possible later to continue the game,\n" "if you don't save it." msgstr "" #: lib/pychess/widgets/LogDialog.py:26 msgid "PyChess Information Window" msgstr "" #: lib/pychess/widgets/LogDialog.py:184 lib/pychess/widgets/LogDialog.py:188 msgid "of" msgstr "" #: lib/pychess/widgets/newGameDialog.py:84 #: lib/pychess/widgets/newGameDialog.py:85 msgid "Human Being" msgstr "মানুষ" #: lib/pychess/widgets/newGameDialog.py:155 msgid "Rapid" msgstr "" #: lib/pychess/widgets/newGameDialog.py:224 msgid "Minutes:" msgstr "মিনিট:" #: lib/pychess/widgets/newGameDialog.py:228 msgid "Gain:" msgstr "লাভ:" #: lib/pychess/widgets/newGameDialog.py:241 #, python-format msgid "%(name)s %(minutes)d min + %(gain)d sec/move" msgstr "" #: lib/pychess/widgets/newGameDialog.py:244 #, python-format msgid "%(name)s %(minutes)d min %(gain)d sec/move" msgstr "" #: lib/pychess/widgets/newGameDialog.py:247 #, python-format msgid "%(name)s %(minutes)d min" msgstr "" #: lib/pychess/widgets/newGameDialog.py:265 msgid "Odds" msgstr "" #: lib/pychess/widgets/newGameDialog.py:269 msgid "Asian variants" msgstr "" #: lib/pychess/widgets/newGameDialog.py:301 msgid " chess" msgstr "" #: lib/pychess/widgets/newGameDialog.py:682 msgid "Type or paste PGN game or FEN positions here" msgstr "" #: lib/pychess/widgets/newGameDialog.py:725 msgid "Enter Game" msgstr "খেলা শুরু করুণ" #: lib/pychess/widgets/preferencesDialog.py:123 msgid "Select book file" msgstr "" #: lib/pychess/widgets/preferencesDialog.py:128 msgid "Opening books" msgstr "" #: lib/pychess/widgets/preferencesDialog.py:156 msgid "Select Gaviota TB path" msgstr "" #: lib/pychess/widgets/preferencesDialog.py:331 msgid "Open Sound File" msgstr "" #: lib/pychess/widgets/preferencesDialog.py:341 msgid "Sound files" msgstr "" #: lib/pychess/widgets/preferencesDialog.py:485 msgid "Undescribed panel" msgstr "" #: lib/pychess/widgets/preferencesDialog.py:678 msgid "Select auto save path" msgstr "" #: lib/pychess/widgets/tipOfTheDay.py:51 msgid "" "You can start a new game by Game > New Game, in New Game " "window do you can choose Players, Time Control and Chess " "Variants." msgstr "" #: lib/pychess/widgets/tipOfTheDay.py:52 msgid "" "You can choose from 20 different difficulties to play against the computer." msgstr "" #: lib/pychess/widgets/tipOfTheDay.py:53 msgid "" "Chess Variants are like the pieces of the last line will be placed on the " "board." msgstr "" #: lib/pychess/widgets/tipOfTheDay.py:54 msgid "" "To save a game Game > Save Game As, give the filename and " "choose where you want to be saved. At the bottom choose extension type of " "the file, and Save." msgstr "" #: lib/pychess/widgets/tipOfTheDay.py:55 msgid "" "Do you know that you can call flag when the clock is with you, " "Actions > Call Flag." msgstr "" #: lib/pychess/widgets/tipOfTheDay.py:56 msgid "Pressing Ctrl+Z to offer opponent the possible rollback moves." msgstr "" #: lib/pychess/widgets/tipOfTheDay.py:57 msgid "" "To play on Fullscreen mode, just type F11. Coming back, F11 " "again." msgstr "" #: lib/pychess/widgets/tipOfTheDay.py:58 msgid "Hint mode analyzing your game, enable this type Ctrl+H." msgstr "" #: lib/pychess/widgets/tipOfTheDay.py:59 msgid "" "Spy mode analyzing the oponnent game, enable this type Ctrl+Y." msgstr "" #: lib/pychess/widgets/tipOfTheDay.py:60 msgid "" "You can play chess listening to the sounds of the game, for that, " "Settings > Preferences > Sound tab, enable Use " "sounds in PyChess and choose your preferred sounds." msgstr "" #: lib/pychess/widgets/tipOfTheDay.py:61 msgid "" "Do you know that you can help translate Pychess in your language, " "Help > Translate Pychess." msgstr "" #: lib/pychess/widgets/tipOfTheDay.py:62 msgid "" "Do you know that it is possible to finish a chess game in just 2 turns?" msgstr "" #: lib/pychess/widgets/tipOfTheDay.py:63 msgid "" "Do you know that the number of possible chess games exceeds the number of " "atoms in the Universe?" msgstr "" #: lib/pychess/ic/managers/ChatManager.py:184 msgid "Shout" msgstr "" #: lib/pychess/ic/managers/ChatManager.py:185 msgid "Chess Shout" msgstr "" #: lib/pychess/ic/managers/ChatManager.py:195 #, python-format msgid "Unofficial channel %d" msgstr "" #: lib/pychess/Utils/lutils/LBoard.py:152 #, python-format msgid "" "FEN needs 6 data fields. \n" "\n" "%s" msgstr "" #: lib/pychess/Utils/lutils/LBoard.py:154 #, python-format msgid "" "FEN needs at least 2 data fields in fenstr. \n" "\n" "%s" msgstr "" #: lib/pychess/Utils/lutils/LBoard.py:175 #, python-format msgid "" "Needs 7 slashes in piece placement field. \n" "\n" "%s" msgstr "" #: lib/pychess/Utils/lutils/LBoard.py:178 #, python-format msgid "" "Active color field must be one of w or b. \n" "\n" "%s" msgstr "" #: lib/pychess/Utils/lutils/LBoard.py:189 #, python-format msgid "" "Castling availability field is not legal. \n" "\n" "%s" msgstr "" #: lib/pychess/Utils/lutils/LBoard.py:192 #, python-format msgid "" "En passant cord is not legal. \n" "\n" "%s" msgstr "" #: lib/pychess/Utils/lutils/lmove.py:260 msgid "invalid promoted piece" msgstr "" #: lib/pychess/Utils/lutils/lmove.py:272 msgid "the move needs a piece and a cord" msgstr "" #: lib/pychess/Utils/lutils/lmove.py:306 lib/pychess/Utils/lutils/lmove.py:556 msgid "promotion move without promoted piece is incorrect" msgstr "" #: lib/pychess/Utils/lutils/lmove.py:312 #, python-format msgid "the captured cord (%s) is incorrect" msgstr "" #: lib/pychess/Utils/lutils/lmove.py:323 #, python-format msgid "the end cord (%s) is incorrect" msgstr "" #: lib/pychess/Utils/lutils/strateval.py:24 sidepanel/commentPanel.py:191 #: sidepanel/commentPanel.py:208 msgid "and" msgstr "" #: lib/pychess/Utils/lutils/strateval.py:43 msgid "draws" msgstr "" #: lib/pychess/Utils/lutils/strateval.py:45 msgid "mates" msgstr "" #: lib/pychess/Utils/lutils/strateval.py:49 msgid "puts opponent in check" msgstr "" #: lib/pychess/Utils/lutils/strateval.py:73 msgid "improves king safety" msgstr "" #: lib/pychess/Utils/lutils/strateval.py:75 msgid "slightly improves king safety" msgstr "" #: lib/pychess/Utils/lutils/strateval.py:108 msgid "moves a rook to an open file" msgstr "" #: lib/pychess/Utils/lutils/strateval.py:109 msgid "moves an rook to a half-open file" msgstr "" #: lib/pychess/Utils/lutils/strateval.py:119 #: lib/pychess/Utils/lutils/strateval.py:121 #: lib/pychess/Utils/lutils/strateval.py:124 #: lib/pychess/Utils/lutils/strateval.py:126 #, python-format msgid "moves bishop into fianchetto: %s" msgstr "" #: lib/pychess/Utils/lutils/strateval.py:132 #, python-format msgid "promotes a Pawn to a %s" msgstr "" #: lib/pychess/Utils/lutils/strateval.py:135 msgid "castles" msgstr "" #: lib/pychess/Utils/lutils/strateval.py:158 msgid "takes back material" msgstr "" #: lib/pychess/Utils/lutils/strateval.py:162 #: lib/pychess/Utils/lutils/strateval.py:170 msgid "sacrifies material" msgstr "" #: lib/pychess/Utils/lutils/strateval.py:164 msgid "exchanges material" msgstr "" #: lib/pychess/Utils/lutils/strateval.py:166 msgid "captures material" msgstr "" #: lib/pychess/Utils/lutils/strateval.py:291 #, python-format msgid "rescues a %s" msgstr "" #: lib/pychess/Utils/lutils/strateval.py:294 #, python-format msgid "threatens to win material by %s" msgstr "" #: lib/pychess/Utils/lutils/strateval.py:296 #, python-format msgid "increases the pressure on %s" msgstr "" #: lib/pychess/Utils/lutils/strateval.py:298 #, python-format msgid "defends %s" msgstr "" #: lib/pychess/Utils/lutils/strateval.py:336 #, python-format msgid "pins an enemy %(oppiece)s on the %(piece)s at %(cord)s" msgstr "" #: lib/pychess/Utils/lutils/strateval.py:369 #, python-format msgid "White has a new piece in outpost: %s" msgstr "" #: lib/pychess/Utils/lutils/strateval.py:377 #, python-format msgid "Black has a new piece in outpost: %s" msgstr "" #: lib/pychess/Utils/lutils/strateval.py:416 #, python-format msgid "%(color)s has a new passed pawn on %(cord)s" msgstr "" #: lib/pychess/Utils/lutils/strateval.py:470 msgid "half-open" msgstr "" #: lib/pychess/Utils/lutils/strateval.py:472 #, python-format msgid "in the %(x)s%(y)s file" msgstr "" #: lib/pychess/Utils/lutils/strateval.py:474 #, python-format msgid "in the %(x)s%(y)s files" msgstr "" #: lib/pychess/Utils/lutils/strateval.py:477 #, python-format msgid "%(color)s got a double pawn %(place)s" msgstr "" #: lib/pychess/Utils/lutils/strateval.py:478 #, python-format msgid "%(color)s got new double pawns %(place)s" msgstr "" #: lib/pychess/Utils/lutils/strateval.py:485 #, python-format msgid "%(color)s got an isolated pawn in the %(x)s file" msgid_plural "%(color)s got isolated pawns in the %(x)s files" msgstr[0] "" msgstr[1] "" #: lib/pychess/Utils/lutils/strateval.py:492 #, python-format msgid "%s moves pawns into stonewall formation" msgstr "" #: lib/pychess/Utils/lutils/strateval.py:507 #: lib/pychess/Utils/lutils/strateval.py:514 #, python-format msgid "%s can no longer castle" msgstr "" #: lib/pychess/Utils/lutils/strateval.py:508 #: lib/pychess/Utils/lutils/strateval.py:515 #, python-format msgid "%s can no longer castle in queenside" msgstr "" #: lib/pychess/Utils/lutils/strateval.py:510 #: lib/pychess/Utils/lutils/strateval.py:517 #, python-format msgid "%s can no longer castle in kingside" msgstr "" #: lib/pychess/Utils/lutils/strateval.py:551 #, python-format msgid "%(opcolor)s has a new trapped bishop on %(cord)s" msgstr "" #: lib/pychess/Utils/lutils/strateval.py:573 #, python-format msgid "develops a pawn: %s" msgstr "" #: lib/pychess/Utils/lutils/strateval.py:574 #, python-format msgid "brings a pawn closer to the backrow: %s" msgstr "" #: lib/pychess/Utils/lutils/strateval.py:591 #, python-format msgid "brings a %(piece)s closer to enemy king: %(cord)s" msgstr "" #: lib/pychess/Utils/lutils/strateval.py:594 #, python-format msgid "develops a %(piece)s: %(cord)s" msgstr "" #: lib/pychess/Utils/lutils/strateval.py:612 #, python-format msgid "places a %(piece)s more active: %(cord)s" msgstr "" #: lib/pychess/Utils/lutils/strateval.py:638 msgid "White should do pawn storm in right" msgstr "" #: lib/pychess/Utils/lutils/strateval.py:640 msgid "Black should do pawn storm in left" msgstr "" #: lib/pychess/Utils/lutils/strateval.py:643 msgid "White should do pawn storm in left" msgstr "" #: lib/pychess/Utils/lutils/strateval.py:645 msgid "Black should do pawn storm in right" msgstr "" #: lib/pychess/Utils/lutils/strateval.py:671 msgid "Black has a rather cramped position" msgstr "" #: lib/pychess/Utils/lutils/strateval.py:673 msgid "Black has a slightly cramped position" msgstr "" #: lib/pychess/Utils/lutils/strateval.py:675 msgid "White has a rather cramped position" msgstr "" #: lib/pychess/Utils/lutils/strateval.py:677 msgid "White has a slightly cramped position" msgstr "" #: sidepanel/annotationPanel.py:26 msgid "Annotation" msgstr "" #: sidepanel/annotationPanel.py:29 msgid "Annotated game" msgstr "" #: sidepanel/annotationPanel.py:236 msgid "Copy PGN" msgstr "" #: sidepanel/annotationPanel.py:249 msgid "Add start comment" msgstr "" #: sidepanel/annotationPanel.py:254 msgid "Add comment" msgstr "" #: sidepanel/annotationPanel.py:258 sidepanel/annotationPanel.py:316 msgid "Edit comment" msgstr "" #: sidepanel/annotationPanel.py:269 msgid "Forced move" msgstr "" #: sidepanel/annotationPanel.py:274 msgid "Add move symbol" msgstr "" #: sidepanel/annotationPanel.py:280 msgid "Unclear position" msgstr "" #: sidepanel/annotationPanel.py:289 msgid "Zugzwang" msgstr "" #: sidepanel/annotationPanel.py:290 msgid "Development adv." msgstr "" #: sidepanel/annotationPanel.py:291 msgid "Initiative" msgstr "" #: sidepanel/annotationPanel.py:292 msgid "With attack" msgstr "" #: sidepanel/annotationPanel.py:293 msgid "Compensation" msgstr "" #: sidepanel/annotationPanel.py:294 msgid "Counterplay" msgstr "" #: sidepanel/annotationPanel.py:295 msgid "Time pressure" msgstr "" #: sidepanel/annotationPanel.py:300 msgid "Add evaluation symbol" msgstr "" #: sidepanel/annotationPanel.py:304 msgid "Remove symbols" msgstr "" #: sidepanel/annotationPanel.py:911 #, python-format msgid "round %s" msgstr "" #: sidepanel/bookPanel.py:21 msgid "Hints" msgstr "" #: sidepanel/bookPanel.py:25 msgid "" "The hint panel will provide computer advice during each stage of the game" msgstr "" #: sidepanel/bookPanel.py:27 msgid "Official PyChess panel." msgstr "" #: sidepanel/bookPanel.py:87 msgid "Opening Book" msgstr "" #: sidepanel/bookPanel.py:88 msgid "" "The opening book will try to inspire you during the opening phase of the " "game by showing you common moves made by chess masters" msgstr "" #: sidepanel/bookPanel.py:139 #, python-format msgid "Analysis by %s" msgstr "" #: sidepanel/bookPanel.py:140 #, python-format msgid "" "%s will try to predict which move is best and which side has the advantage" msgstr "" #: sidepanel/bookPanel.py:142 #, python-format msgid "Threat analysis by %s" msgstr "" #: sidepanel/bookPanel.py:143 #, python-format msgid "" "%s will identify what threats would exist if it were your opponent's turn to" " move" msgstr "" #: sidepanel/bookPanel.py:159 sidepanel/bookPanel.py:269 msgid "Calculating..." msgstr "" #: sidepanel/bookPanel.py:300 msgid "" "Engine scores are in units of pawns, from White's point of view. Double " "clicking on analysis lines you can insert them into Annotation panel as " "variations." msgstr "" #: sidepanel/bookPanel.py:302 msgid "" "Adding suggestions can help you find ideas, but slows down the computer's " "analysis." msgstr "" #: sidepanel/bookPanel.py:311 msgid "Endgame Table" msgstr "" #: sidepanel/bookPanel.py:315 msgid "" "The endgame table will show exact analysis when there are few pieces on the " "board." msgstr "" #: sidepanel/bookPanel.py:364 sidepanel/bookPanel.py:367 #, python-format msgid "Mate in %d" msgstr "" #: sidepanel/bookPanel.py:554 msgid "" "In this position,\n" "there is no legal move." msgstr "" #: sidepanel/chatPanel.py:21 msgid "" "The chat panel lets you communicate with your opponent during the game, " "assuming he or she is interested" msgstr "" #: sidepanel/commentPanel.py:16 msgid "Comments" msgstr "" #: sidepanel/commentPanel.py:20 msgid "The comments panel will try to analyze and explain the moves played" msgstr "" #: sidepanel/commentPanel.py:121 msgid "Initial position" msgstr "" #: sidepanel/commentPanel.py:254 #, python-format msgid "%(color)s moves a %(piece)s to %(cord)s" msgstr "" #: sidepanel/engineOutputPanel.py:15 msgid "Engines" msgstr "" #: sidepanel/engineOutputPanel.py:20 msgid "" "The engine output panel shows the thinking output of chess engines (computer" " players) during a game" msgstr "" #: sidepanel/engineOutputPanel.py:44 msgid "No chess engines (computer players) are participating in this game." msgstr "" #: sidepanel/historyPanel.py:10 msgid "Move History" msgstr "" #: sidepanel/historyPanel.py:13 msgid "" "The moves sheet keeps track of the players' moves and lets you navigate " "through the game history" msgstr "" #: sidepanel/scorePanel.py:15 msgid "Score" msgstr "" #: sidepanel/scorePanel.py:19 msgid "" "The score panel tries to evaluate the positions and shows you a graph of the" " game progress" msgstr "" pychess-0.12.2/lang/bn/LC_MESSAGES/pychess.mo0000644000175000017470000002147512653231273020705 0ustar tamasusers00000000000000fL|'  8 I U o ~ & *      0 7 = L R ] n            ' 8 A F O V f r |  #          5 8 Q k         '28%> d o z     "+DTEL/?|%&X b'"Ci3?EK#%o#% / %96_& (25HC~5  +$L:q @%2Xr+SC> ,8Nb r? /8$ ]k)w=,9j5/  1VLrJka#! 2 D _  $!$-!R!a!=! !$!%"+*"UV"")"+" #N`/=#Tb:PL-U7C 0B[3F'(G _ED;H4,K>Q2AeJ865 \Z$ "I .dW)*]V@+R<X1?M%YSO^&9 cf!a'%s' is not a registered namePromote pawn to what?AnalyzingAnimationDate of gameEnter Game NotationGame dataNewsPlay Sound When...PlayersToolsEngine, %s, has diedUnable to save file '%s'A player _checks:A player _moves:A player c_aptures:About ChessAll Chess FilesBishopBlitzChess PositionClockConnectingConnection ErrorConnection was closedEmailEnter GameEvent:Gain:Game informationGame is _drawn:Game is _lost:Game is _set-up:Game is _won:Human BeingKnightLightningLoaded gameLog on ErrorLog on as _GuestMinutes:NameNew GameNormalObserved _ends:Offer _DrawOpen GamePingPlayer _RatingPreferencesPromotionPyChess - Connect to Internet ChessPyChess - Internet Chess: FICSPyChess has lost connection to the engine, probably because it has died. You can try to start a new game with the engine, or try to play against another one.PyChess.py:QueenRatedRatingRookRound:Save Game _AsSaved gameSend seekSimple Chess PositionSite:Sp_y modeSpentThe connection was broken - got "end of file" messageThe game ended in a drawThe game has been abortedThe game has been adjournedThe game has been killedTimeTypeUnknownUnratedUse _analyzerUse _inverted analyzerYou sent a draw offerYour opponent asks you to hurry!_Accept_Actions_Call Flag_Game_Help_Hide tabs when only one game is open_Hint mode_Load Game_Log Viewer_Name:_New Game_Observed moves:_Password:_Rotate Board_Save Game_Start Game_Use sounds in PyChess_Viewhttp://en.wikipedia.org/wiki/Chesshttp://en.wikipedia.org/wiki/Rules_of_chessonline in totalProject-Id-Version: pychess Report-Msgid-Bugs-To: POT-Creation-Date: 2016-01-27 13:28+0100 PO-Revision-Date: 2016-01-28 08:56+0000 Last-Translator: slav0nic Language-Team: Bengali (http://www.transifex.com/gbtami/pychess/language/bn/) MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Language: bn Plural-Forms: nplurals=2; plural=(n != 1); '%s' কোন রেজিস্টার করা নাম নয়বড়ের কিসে পদন্নতি হবে?অ্যানালাইজ করা হচ্ছেঅ্যানিমেশনখেলার তারিখখেলার সংকেতপদ্ধতি নির্দেশ করোখেলার ডাটাখবরশব্দ কর যখন...খেলোয়ারগনটুলসইঞ্জিন, %s, মারা গেছে'%s' ফাইল সংরক্ষণ করা সম্ভব হচ্ছেনাএকজন খেলোয়ার চেক করছে: (_c)একজন খেলোয়ার দান দিচ্ছে: (_m)একজন খেলোয়ার ঘুঁটি খেয়েছে: (_a)দাবা সম্বন্ধেদাবার সব ফাইলগজব্লিটজ্‌দাবার অবস্থানঘড়িসংযুক্ত করা হচ্ছেসংযোগে ত্রুটিসংযোগ বন্ধ করা হয়েছেইমেইলখেলা শুরু করুণইভেন্ট:লাভ:খেলার তথ্যাবলীখেলাটি ড্র হয়েছে: (_d)খেলাটি হারা হয়েছে: (_l)খেলাটি সেট-আপ করা হয়েছে: (_S)খেলাটি জেতা হয়েছে: (_w)মানুষঘোড়ালাইটনিংলোড করা খেলালগ-অন-এ ত্রুটিঅতিথি হিসাবে লগ-অন করোমিনিট:নামনতুন খেলানরমালপর্যবেক্ষিত অন্তসমূহ: (_O)ড্র অফার করো (_D)খেলা খোলোপিং করুনখেলোয়ারের রেটিংপছন্দসমূহপদোন্নতিপাইচেস - ইন্টারনেটে সংযুক্ত করোপাইচেস - ইন্টারনেট-দাবা: FICSপাইচেস-এর ইঞ্জিন-এর সঙ্গে যোগাযোগ বিচ্ছিন্ন হয়েছে, হয়ত ইঞ্জিন-টি মারা গেছে। তুমি ইঞ্জিন-টির সঙ্গে একটি নতুন খেলা আরম্ভ করতে পারো, অথবা একে অপরের সঙ্গে খেলতে পারো.PyChess.py:মন্ত্রীরেট করারেটিংনৌকারাউন্ড:অন্য নামে খেলা সেভ করো (_A)সেভ করা খেলাসন্ধান প্রেরন করোসাধারণ দাবার অবস্থানসাইট:স্পাই মোড (_Y)ব্যায় করা হয়েছেযোগাযোগ বিচ্ছিন্ন হল — "end of file" মেসেজ পাওয়া গেছেখেলাটি ড্র-এ অন্ত হয়েছেখেলাটি বন্ধ করা হয়েছেখেলাটি স্থগিত হয়েছেখেলাটি মারা হয়েছেসময়ধরণঅজ্ঞাতরেট না করাঅ্যানালাইজার ব্যাবহার করা হোক (_a)ইনভার্টেড অ্যানালাইজার ব্যাবহার করা হোক (_a)তুমি একটি ড্র-এর অফার পাঠালেআপনার প্রতিদ্বন্দি আপনাকে তারা দিচ্ছেন!গ্রহণ করো (_A)ক্রিয়াসমূহ (_K)কল ফ্ল্যাগ (_C)খেলা (_G)সহায়িকা (_H)একটি মাত্র খেলা খোলা থাকলে ট্যাবগুলি লুকোনো থাকুক (_H)হিন্ট মোড(_H)খেলা লোড করো(_L)লগ প্রদর্শক (_L)নাম:(_N)নতুন খেলা (_N)পর্যবেক্ষিত দানসমূহ: (_O)পাসওয়ার্ড:(_P)বোর্ড ঘোরাও (_R)খেলা সেভ করো (_S)খেলা আরম্ভ করো (_S)পাইচেস-এ শব্দ ব্যাবহার করা হোক (_U)প্রদর্শন (_V)http://bn.wikipedia.org/wiki/দাবাhttp://en.wikipedia.org/wiki/Rules_of_chessঅনলাইন মোটpychess-0.12.2/lang/eu/0000755000175000017470000000000012653231274015107 5ustar tamasusers00000000000000pychess-0.12.2/lang/eu/LC_MESSAGES/0000755000175000017470000000000012653231274016674 5ustar tamasusers00000000000000pychess-0.12.2/lang/eu/LC_MESSAGES/pychess.po0000644000175000017470000024100712653216176020722 0ustar tamasusers00000000000000# SOME DESCRIPTIVE TITLE. # Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER # This file is distributed under the same license as the pychess package. # # Translators: # FIRST AUTHOR , 2008 msgid "" msgstr "" "Project-Id-Version: pychess\n" "Report-Msgid-Bugs-To: \n" "POT-Creation-Date: 2016-01-27 13:28+0100\n" "PO-Revision-Date: 2016-01-28 08:56+0000\n" "Last-Translator: slav0nic \n" "Language-Team: Basque (http://www.transifex.com/gbtami/pychess/language/eu/)\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" "Language: eu\n" "Plural-Forms: nplurals=2; plural=(n != 1);\n" # "Plural-Forms: nplurals=INTEGER; plural=EXPRESSION;\n" #: glade/analyze_game.glade:22 msgid "Analyze game" msgstr "" #: glade/analyze_game.glade:87 msgid "Use analyzer:" msgstr "" #: glade/analyze_game.glade:122 glade/PyChess.glade:2054 msgid "Maximum analysis time in seconds:" msgstr "" #: glade/analyze_game.glade:163 msgid "" "If the analyzer finds a move where the evaluation difference (the difference" " between the evaluation for the move it thinks is the best move and the " "evaluation for the move made in the game) exceeds this value, it will add an" " annotation for that move (consisting of the engine's Principal Variation " "for the move) to the Annotation panel" msgstr "" #: glade/analyze_game.glade:164 msgid "Variation annotation creation threshold in centipawns:" msgstr "" #: glade/analyze_game.glade:198 msgid "Analyze from current position" msgstr "" #: glade/analyze_game.glade:214 msgid "Add threatening variation lines " msgstr "" #: glade/analyze_game.glade:229 glade/PyChess.glade:1459 msgid "Colorize analyzed moves" msgstr "" #: glade/analyze_game.glade:244 glade/PyChess.glade:1495 msgid "Show evaluation values" msgstr "" #: glade/discovererDialog.glade:18 msgid "PyChess is discovering your engines. Please wait." msgstr "" #: glade/discovererDialog.glade:77 msgid "PyChess.py:" msgstr "" #: glade/discovererDialog.glade:89 msgid "ShredderLinuxChess:" msgstr "" #: glade/discovererDialog.glade:101 msgid "gnuchess:" msgstr "" #: glade/fics_logon.glade:7 msgid "PyChess - Connect to Internet Chess" msgstr "" #: glade/fics_logon.glade:47 msgid "Connect to the Free Online Chess Server" msgstr "" #: glade/fics_logon.glade:129 glade/taskers.glade:394 msgid "_Password:" msgstr "_Pasahitza:" #: glade/fics_logon.glade:143 msgid "_Name:" msgstr "_Izena:" #: glade/fics_logon.glade:191 msgid "Log on as _Guest" msgstr "" #: glade/fics_logon.glade:227 msgid "Host:" msgstr "" #: glade/fics_logon.glade:259 msgid "Po_rts:" msgstr "" #: glade/fics_logon.glade:271 msgid "Auto login on startup" msgstr "" #: glade/fics_logon.glade:385 msgid "S_ign up" msgstr "" #: glade/fics_lounge.glade:35 msgid "Challenge: " msgstr "" #: glade/fics_lounge.glade:97 msgid "Send Challenge" msgstr "" #: glade/fics_lounge.glade:133 msgid "Challenge:" msgstr "" #: glade/fics_lounge.glade:327 glade/fics_lounge.glade:2078 msgid "Lightning:" msgstr "" #: glade/fics_lounge.glade:351 glade/fics_lounge.glade:2102 msgid "Standard:" msgstr "" #: glade/fics_lounge.glade:375 glade/fics_lounge.glade:2126 msgid "Blitz:" msgstr "" #: glade/fics_lounge.glade:400 msgid "2 min, Fischer Random, Black" msgstr "" #: glade/fics_lounge.glade:422 msgid "10 min + 6 sec/move, White" msgstr "" #: glade/fics_lounge.glade:444 msgid "5 min" msgstr "" #: glade/fics_lounge.glade:480 msgid "Edit Seek" msgstr "" #: glade/fics_lounge.glade:584 lib/pychess/ic/ICLounge.py:2208 #: lib/pychess/ic/__init__.py:101 lib/pychess/Utils/GameModel.py:206 msgid "Untimed" msgstr "" #: glade/fics_lounge.glade:637 msgid "Minutes: " msgstr "" #: glade/fics_lounge.glade:665 msgid " Gain: " msgstr "" #: glade/fics_lounge.glade:703 msgid "Time control: " msgstr "" #: glade/fics_lounge.glade:716 lib/pychess/ic/FICSObjects.py:56 #: lib/pychess/ic/ICLounge.py:1137 lib/pychess/ic/ICLounge.py:2208 #: lib/pychess/ic/__init__.py:99 msgid "Standard" msgstr "" #: glade/fics_lounge.glade:757 glade/newInOut.glade:633 msgid "Time Control" msgstr "" #: glade/fics_lounge.glade:814 glade/fics_lounge.glade:1346 msgid "Don't care" msgstr "" #: glade/fics_lounge.glade:879 msgid "Your strength: " msgstr "" #: glade/fics_lounge.glade:921 msgid "(Blitz)" msgstr "" #: glade/fics_lounge.glade:951 msgid "Opponent's strength: " msgstr "" #: glade/fics_lounge.glade:1055 msgid "" "When this button is in the \"locked\" state, the relationship\n" "between \"Opponent's strength\" and \"Your strength\" will be\n" "preserved when \n" "a) your rating for the type of game sought has changed\n" "b) you change the variant or the time control" msgstr "" #: glade/fics_lounge.glade:1095 msgid "Center:" msgstr "" #: glade/fics_lounge.glade:1134 msgid "1200" msgstr "" #: glade/fics_lounge.glade:1188 msgid "Tolerance:" msgstr "" #: glade/fics_lounge.glade:1243 lib/pychess/ic/ICLounge.py:2452 msgid "Hide" msgstr "" #: glade/fics_lounge.glade:1289 msgid "Opponent Strength" msgstr "" #: glade/fics_lounge.glade:1386 lib/pychess/Database/gamelist.py:40 #: lib/pychess/ic/ICLounge.py:1357 lib/pychess/ic/ICLounge.py:1557 #: lib/pychess/ic/ICLounge.py:2108 lib/pychess/Utils/repr.py:10 #: lib/pychess/widgets/ChessClock.py:40 #: lib/pychess/widgets/TaskerManager.py:153 msgid "White" msgstr "" #: glade/fics_lounge.glade:1414 lib/pychess/Database/gamelist.py:40 #: lib/pychess/ic/ICLounge.py:1358 lib/pychess/ic/ICLounge.py:1558 #: lib/pychess/ic/ICLounge.py:2110 lib/pychess/Utils/repr.py:10 #: lib/pychess/widgets/ChessClock.py:40 #: lib/pychess/widgets/TaskerManager.py:154 msgid "Black" msgstr "" #: glade/fics_lounge.glade:1453 msgid "Your Color" msgstr "" #: glade/fics_lounge.glade:1512 msgid "Play normal chess rules" msgstr "" #: glade/fics_lounge.glade:1552 msgid "Play" msgstr "" #: glade/fics_lounge.glade:1618 glade/newInOut.glade:833 msgid "Chess Variant" msgstr "" #: glade/fics_lounge.glade:1676 msgid "Rated game" msgstr "" #: glade/fics_lounge.glade:1692 msgid "Manually accept opponent" msgstr "" #: glade/fics_lounge.glade:1722 msgid "Options" msgstr "" #: glade/fics_lounge.glade:1750 msgid "PyChess - Internet Chess: FICS" msgstr "" #: glade/fics_lounge.glade:1823 msgid "_Clear Seeks" msgstr "" #: glade/fics_lounge.glade:1847 msgid "_Accept" msgstr "" #: glade/fics_lounge.glade:1871 msgid "_Decline" msgstr "" #: glade/fics_lounge.glade:2151 msgid "2 min, Fischer Random, 1800↓, Black" msgstr "" #: glade/fics_lounge.glade:2172 msgid "10 min + 6 sec/move, 1400↑, White" msgstr "" #: glade/fics_lounge.glade:2193 msgid "5 min, 1200-1800, Manual" msgstr "" #: glade/fics_lounge.glade:2247 msgid "Send all seeks" msgstr "" #: glade/fics_lounge.glade:2301 msgid "Send seek" msgstr "" #: glade/fics_lounge.glade:2337 msgid "Create Seek" msgstr "" #: glade/fics_lounge.glade:2353 msgid "_Seeks / Challenges" msgstr "" #: glade/fics_lounge.glade:2374 lib/pychess/ic/ICLounge.py:472 #: lib/pychess/ic/ICLounge.py:670 lib/pychess/ic/ICLounge.py:1357 #: lib/pychess/ic/ICLounge.py:1358 msgid "Rating" msgstr "" #: glade/fics_lounge.glade:2399 msgid "Time" msgstr "" #: glade/fics_lounge.glade:2419 msgid "Seek _Graph" msgstr "" #: glade/fics_lounge.glade:2444 msgid "0 Players Ready" msgstr "" #: glade/fics_lounge.glade:2496 msgid "Challenge" msgstr "" #: glade/fics_lounge.glade:2549 glade/fics_lounge.glade:2735 msgid "Observe" msgstr "" #: glade/fics_lounge.glade:2602 msgid "Start Private Chat" msgstr "" #: glade/fics_lounge.glade:2659 msgid "_Player List" msgstr "" #: glade/fics_lounge.glade:2792 msgid "_Game List" msgstr "" #: glade/fics_lounge.glade:2847 msgid "_My games" msgstr "" #: glade/fics_lounge.glade:2904 glade/PyChess.glade:841 msgid "Offer _Resume" msgstr "" #: glade/fics_lounge.glade:2962 glade/PyChess.glade:880 msgid "R_esign" msgstr "" #: glade/fics_lounge.glade:3006 glade/PyChess.glade:820 msgid "Offer _Draw" msgstr "" #: glade/fics_lounge.glade:3050 msgid "Offer A_bort" msgstr "" #: glade/fics_lounge.glade:3107 msgid "Pre_view" msgstr "" #: glade/fics_lounge.glade:3151 msgid "Examine" msgstr "" #: glade/fics_lounge.glade:3208 msgid "_Archived" msgstr "" #: glade/fics_lounge.glade:3313 msgid "News" msgstr "" #: glade/fics_lounge.glade:3345 msgid "Show Console" msgstr "" #: glade/fics_lounge.glade:3359 msgid "Show _Chat" msgstr "" #: glade/fics_lounge.glade:3373 msgid "_Log Off" msgstr "" #: glade/fics_lounge.glade:3393 msgid "Tools" msgstr "" #: glade/fics_lounge.glade:3428 msgid "Asymmetric Random " msgstr "" #: glade/findbar.glade:6 msgid "window1" msgstr "" #: glade/findbar.glade:21 msgid "0 of 0" msgstr "" #: glade/findbar.glade:66 msgid "Search:" msgstr "" #: glade/findbar.glade:134 msgid "_Previous" msgstr "" #: glade/findbar.glade:192 msgid "_Next" msgstr "" #: glade/newInOut.glade:45 lib/pychess/widgets/newGameDialog.py:445 msgid "New Game" msgstr "" #: glade/newInOut.glade:108 msgid "_Start Game" msgstr "" #: glade/newInOut.glade:130 msgid "Copy FEN" msgstr "" #: glade/newInOut.glade:143 msgid "Clear" msgstr "" #: glade/newInOut.glade:156 msgid "Paste FEN" msgstr "" #: glade/newInOut.glade:257 msgid "_Black player:" msgstr "" #: glade/newInOut.glade:274 msgid "_White player:" msgstr "" #: glade/newInOut.glade:385 msgid "Players" msgstr "" #: glade/newInOut.glade:436 msgid "_Untimed" msgstr "" #: glade/newInOut.glade:475 msgid "Blitz: 5 min" msgstr "" #: glade/newInOut.glade:526 msgid "Rapid: 15 min + 10 sec/move" msgstr "" #: glade/newInOut.glade:575 msgid "Normal: 40 min + 15 sec/move" msgstr "" #: glade/newInOut.glade:684 msgid "_Play Normal chess" msgstr "" #: glade/newInOut.glade:724 msgid "Play Fischer Random chess" msgstr "" #: glade/newInOut.glade:774 msgid "Play Losers chess" msgstr "" #: glade/newInOut.glade:919 msgid "Open Game" msgstr "" #: glade/newInOut.glade:1162 msgid "Initial Position" msgstr "" #: glade/newInOut.glade:1219 msgid "Enter Game Notation" msgstr "" #: glade/newInOut.glade:1314 msgid "Halfmove clock" msgstr "" #: glade/newInOut.glade:1327 msgid "En passant line" msgstr "" #: glade/newInOut.glade:1339 msgid "Side to move" msgstr "" #: glade/newInOut.glade:1351 msgid "Move number" msgstr "" #: glade/newInOut.glade:1361 msgid "Black O-O" msgstr "" #: glade/newInOut.glade:1375 msgid "Black O-O-O" msgstr "" #: glade/newInOut.glade:1389 msgid "White O-O-O" msgstr "" #: glade/newInOut.glade:1403 msgid "White O-O" msgstr "" #: glade/promotion.glade:7 msgid "Promotion" msgstr "" #: glade/promotion.glade:49 lib/pychess/Utils/repr.py:12 msgid "Queen" msgstr "" #: glade/promotion.glade:95 lib/pychess/Utils/repr.py:12 msgid "Rook" msgstr "" #: glade/promotion.glade:141 lib/pychess/Utils/repr.py:12 msgid "Bishop" msgstr "" #: glade/promotion.glade:187 lib/pychess/Utils/repr.py:12 msgid "Knight" msgstr "" #: glade/promotion.glade:233 lib/pychess/Utils/repr.py:12 msgid "King" msgstr "" #: glade/promotion.glade:265 msgid "Promote pawn to what?" msgstr "" #: glade/PyChess.glade:9 msgid "Chess client" msgstr "" #: glade/PyChess.glade:44 msgid "Game information" msgstr "" #: glade/PyChess.glade:164 msgid "Event:" msgstr "" #: glade/PyChess.glade:178 msgid "Site:" msgstr "" #: glade/PyChess.glade:204 msgid "Round:" msgstr "" #: glade/PyChess.glade:237 msgid "White:" msgstr "" #: glade/PyChess.glade:249 msgid "Black:" msgstr "" #: glade/PyChess.glade:302 msgid "Game data" msgstr "" #: glade/PyChess.glade:357 msgid "Date of game" msgstr "" #: glade/PyChess.glade:495 msgid "_Game" msgstr "" #: glade/PyChess.glade:502 msgid "_New Game" msgstr "" #: glade/PyChess.glade:515 msgid "Play _Internet Chess" msgstr "" #: glade/PyChess.glade:534 msgid "_Load Game" msgstr "" #: glade/PyChess.glade:550 msgid "Load _Recent Game" msgstr "" #: glade/PyChess.glade:558 msgid "Open _Database" msgstr "" #: glade/PyChess.glade:569 lib/pychess/widgets/newGameDialog.py:615 msgid "Setup Position" msgstr "" #: glade/PyChess.glade:579 msgid "Enter Game _Notation" msgstr "" #: glade/PyChess.glade:592 msgid "_Save Game" msgstr "" #: glade/PyChess.glade:606 msgid "Save Game _As" msgstr "" #: glade/PyChess.glade:624 msgid "Share Game" msgstr "" #: glade/PyChess.glade:630 msgid "_Export Position" msgstr "" #: glade/PyChess.glade:644 msgid "_Analyze Game" msgstr "" #: glade/PyChess.glade:678 msgid "Player _Rating" msgstr "" #: glade/PyChess.glade:723 msgid "_Edit" msgstr "" #: glade/PyChess.glade:734 msgid "_Copy PGN" msgstr "" #: glade/PyChess.glade:746 msgid "_Copy FEN" msgstr "" #: glade/PyChess.glade:763 msgid "_Engines" msgstr "" #: glade/PyChess.glade:789 msgid "_Actions" msgstr "" #: glade/PyChess.glade:800 msgid "Offer _Abort" msgstr "" #: glade/PyChess.glade:810 msgid "Offer Ad_journment" msgstr "" #: glade/PyChess.glade:831 msgid "Offer _Pause" msgstr "" #: glade/PyChess.glade:847 msgid "Offer _Undo" msgstr "" #: glade/PyChess.glade:870 msgid "_Call Flag" msgstr "" #: glade/PyChess.glade:890 msgid "Ask to _Move" msgstr "" #: glade/PyChess.glade:905 msgid "Auto Call _Flag" msgstr "" #: glade/PyChess.glade:918 msgid "_View" msgstr "" #: glade/PyChess.glade:925 msgid "_Rotate Board" msgstr "" #: glade/PyChess.glade:939 msgid "_Fullscreen" msgstr "" #: glade/PyChess.glade:952 msgid "Leave _Fullscreen" msgstr "" #: glade/PyChess.glade:969 msgid "_Show Sidepanels" msgstr "" #: glade/PyChess.glade:980 msgid "_Log Viewer" msgstr "" #: glade/PyChess.glade:997 msgid "_Hint mode" msgstr "" #: glade/PyChess.glade:1009 msgid "Sp_y mode" msgstr "" #: glade/PyChess.glade:1024 msgid "_Help" msgstr "" #: glade/PyChess.glade:1034 msgid "About Chess" msgstr "" #: glade/PyChess.glade:1043 msgid "How to Play" msgstr "" #: glade/PyChess.glade:1052 msgid "Translate PyChess" msgstr "" #: glade/PyChess.glade:1058 msgid "Tip of the Day" msgstr "" #: glade/PyChess.glade:1153 msgid "Default" msgstr "" #: glade/PyChess.glade:1156 msgid "Knights" msgstr "" #: glade/PyChess.glade:1167 lib/pychess/widgets/preferencesDialog.py:349 msgid "Beep" msgstr "" #: glade/PyChess.glade:1170 lib/pychess/widgets/preferencesDialog.py:350 msgid "Select sound file..." msgstr "" #: glade/PyChess.glade:1173 lib/pychess/widgets/preferencesDialog.py:348 msgid "No sound" msgstr "" #: glade/PyChess.glade:1180 msgid "Preferences" msgstr "" #: glade/PyChess.glade:1218 msgid "The displayed name of the first human player, e.g., John." msgstr "" #: glade/PyChess.glade:1230 msgid "Name of _first human player:" msgstr "" #: glade/PyChess.glade:1259 msgid "The displayed name of the guest player, e.g., Mary." msgstr "" #: glade/PyChess.glade:1271 msgid "Name of s_econd human player:" msgstr "" #: glade/PyChess.glade:1307 msgid "_Hide tabs when only one game is open" msgstr "" #: glade/PyChess.glade:1312 msgid "" "If set, this hides the tab in the top of the playing window, when it is not " "needed." msgstr "" #: glade/PyChess.glade:1326 msgid "_Use main app closer [x] to close all games" msgstr "" #: glade/PyChess.glade:1331 msgid "" "If set, clicking on main application window closer first time it closes all " "games." msgstr "" #: glade/PyChess.glade:1345 msgid "Auto _rotate board to current human player" msgstr "" #: glade/PyChess.glade:1350 msgid "" "If set, the board will turn after each move, to show the natural view for " "the current player." msgstr "" #: glade/PyChess.glade:1364 msgid "Auto _promote to queen" msgstr "" #: glade/PyChess.glade:1369 msgid "If set, pawn promotes to queen without promotion dialog selection." msgstr "" #: glade/PyChess.glade:1383 msgid "Face _to Face display mode" msgstr "" #: glade/PyChess.glade:1388 msgid "" "If set, the black pieces will be head down, suitable for playing against " "friends on mobile devices." msgstr "" #: glade/PyChess.glade:1402 msgid "Sho_w cords" msgstr "" #: glade/PyChess.glade:1407 msgid "" "If set, the playing board will display labels and ranks for each chess " "field. These are usable in chess notation." msgstr "" #: glade/PyChess.glade:1421 msgid "Show _captured pieces" msgstr "" #: glade/PyChess.glade:1426 msgid "If set, the captured figurines will be shown next to the board." msgstr "" #: glade/PyChess.glade:1440 msgid "Prefer figures in _notation" msgstr "" #: glade/PyChess.glade:1445 msgid "" "If set, PyChess will use figures to express moved pieces, rather than " "uppercase letters." msgstr "" #: glade/PyChess.glade:1464 msgid "If set, PyChess will colorize suboptimal analyzed moves with red." msgstr "" #: glade/PyChess.glade:1477 msgid "Show elapsed move times" msgstr "" #: glade/PyChess.glade:1482 msgid "If set, the elapsed time that a player used for the move is shown." msgstr "" #: glade/PyChess.glade:1500 msgid "If set, the hint analyzer engine evaluation value is shown." msgstr "" #: glade/PyChess.glade:1526 msgid "General Options" msgstr "" #: glade/PyChess.glade:1560 msgid "F_ull board animation" msgstr "" #: glade/PyChess.glade:1565 msgid "Animate pieces, board rotation and more. Use this on fast machines." msgstr "" #: glade/PyChess.glade:1579 msgid "Only animate _moves" msgstr "" #: glade/PyChess.glade:1584 msgid "Only animate piece moves." msgstr "" #: glade/PyChess.glade:1599 msgid "No _animation" msgstr "" #: glade/PyChess.glade:1604 msgid "Never use animation. Use this on slow machines." msgstr "" #: glade/PyChess.glade:1632 msgid "Animation" msgstr "" #: glade/PyChess.glade:1651 msgid "_General" msgstr "" #: glade/PyChess.glade:1692 msgid "Use opening _book" msgstr "" #: glade/PyChess.glade:1697 msgid "If set, PyChess will suggest best opening moves on hint panel." msgstr "" #: glade/PyChess.glade:1724 msgid "Polyglot book file:" msgstr "" #: glade/PyChess.glade:1768 msgid "Use _local tablebases" msgstr "" #: glade/PyChess.glade:1773 msgid "" "If set, PyChess will show game results for different moves in positions containing 6 or less pieces.\n" "You can download tablebase files from:\n" "http://www.olympuschess.com/egtb/gaviota/" msgstr "" #: glade/PyChess.glade:1803 msgid "Gaviota TB path:" msgstr "" #: glade/PyChess.glade:1843 msgid "Use _online tablebases" msgstr "" #: glade/PyChess.glade:1848 msgid "" "If set, PyChess will show game results for different moves in positions containing 6 or less pieces.\n" "It will search positions from http://www.k4it.de/" msgstr "" #: glade/PyChess.glade:1870 msgid "Opening, endgame" msgstr "" #: glade/PyChess.glade:1904 msgid "Use _analyzer" msgstr "" #: glade/PyChess.glade:1946 msgid "" "The analyzer will run in the background and analyze the game. This is " "necessary for the hint mode to work" msgstr "" #: glade/PyChess.glade:1978 msgid "Use _inverted analyzer" msgstr "" #: glade/PyChess.glade:2020 msgid "" "The inverse analyzer will analyze the game as if your opponent was to move. " "This is necessary for the spy mode to work" msgstr "" #: glade/PyChess.glade:2096 msgid "Analyzing" msgstr "" #: glade/PyChess.glade:2118 msgid "_Hints" msgstr "" #: glade/PyChess.glade:2263 msgid "Uninstall" msgstr "" #: glade/PyChess.glade:2317 msgid "Ac_tive" msgstr "" #: glade/PyChess.glade:2367 msgid "Installed Sidepanels" msgstr "" #: glade/PyChess.glade:2382 msgid "Side_panels" msgstr "" #: glade/PyChess.glade:2440 msgid "Light Squares :" msgstr "" #: glade/PyChess.glade:2479 msgid "Dark Squares :" msgstr "" #: glade/PyChess.glade:2515 msgid "Reset Default Colours" msgstr "" #: glade/PyChess.glade:2551 msgid "Board Colours" msgstr "" #: glade/PyChess.glade:2610 msgid "Chess Sets" msgstr "" #: glade/PyChess.glade:2634 msgid "Themes" msgstr "" #: glade/PyChess.glade:2659 msgid "_Use sounds in PyChess" msgstr "" #: glade/PyChess.glade:2982 msgid "A player _checks:" msgstr "" #: glade/PyChess.glade:2997 msgid "A player _moves:" msgstr "" #: glade/PyChess.glade:3010 msgid "Game is _drawn:" msgstr "" #: glade/PyChess.glade:3025 msgid "Game is _lost:" msgstr "" #: glade/PyChess.glade:3040 msgid "Game is _won:" msgstr "" #: glade/PyChess.glade:3055 msgid "A player c_aptures:" msgstr "" #: glade/PyChess.glade:3084 msgid "Game is _set-up:" msgstr "" #: glade/PyChess.glade:3136 msgid "_Observed moves:" msgstr "" #: glade/PyChess.glade:3151 msgid "Observed _ends:" msgstr "" #: glade/PyChess.glade:3265 msgid "Short on _time:" msgstr "" #: glade/PyChess.glade:3317 msgid "_Invalid move:" msgstr "" #: glade/PyChess.glade:3369 msgid "Activate alarm when _remaining sec is:" msgstr "" #: glade/PyChess.glade:3416 msgid "Play Sound When..." msgstr "" #: glade/PyChess.glade:3438 msgid "_Sounds" msgstr "" #: glade/PyChess.glade:3463 msgid "_Auto save finished games" msgstr "" #: glade/PyChess.glade:3497 msgid "Save files to:" msgstr "" #: glade/PyChess.glade:3525 msgid "Use name format:" msgstr "" #: glade/PyChess.glade:3569 msgid "Names: #n1, #n2" msgstr "" #: glade/PyChess.glade:3582 msgid "Year, month, day: #y, #m, #d" msgstr "" #: glade/PyChess.glade:3619 msgid "Save elapsed move _times" msgstr "" #: glade/PyChess.glade:3644 msgid "Save analyzing engine _evaluation values" msgstr "" #: glade/PyChess.glade:3669 msgid "Save _own games only" msgstr "" #: glade/PyChess.glade:3698 msgid "Save" msgstr "" #: glade/PyChess.glade:3728 msgid "uci" msgstr "" #: glade/PyChess.glade:3731 msgid "xboard" msgstr "" #: glade/PyChess.glade:3739 msgid "Manage engines" msgstr "" #: glade/PyChess.glade:3837 msgid "Command:" msgstr "" #: glade/PyChess.glade:3851 msgid "Protocol:" msgstr "" #: glade/PyChess.glade:3865 msgid "Parameters:" msgstr "" #: glade/PyChess.glade:3878 msgid "Command line parameters needed by the engine." msgstr "" #: glade/PyChess.glade:3903 msgid "" "Engines use uci or xboard communication protocol to talk to the GUI.\n" "If it can use both you can set here which one you like." msgstr "" #: glade/PyChess.glade:3929 msgid "Working directory:" msgstr "" #: glade/PyChess.glade:3942 msgid "The directory where the engine will be started from." msgstr "" #: glade/saveGamesDialog.glade:7 msgid "Quit PyChess" msgstr "" #: glade/saveGamesDialog.glade:24 lib/pychess/widgets/ionest.py:424 msgid "Close _without Saving" msgstr "" #: glade/saveGamesDialog.glade:83 msgid "_Save %d documents" msgstr "" #: glade/saveGamesDialog.glade:141 msgid "" "There are %d games with unsaved moves. Save changes before " "closing?" msgstr "" #: glade/saveGamesDialog.glade:161 msgid "Select the games you want to save:" msgstr "" #: glade/saveGamesDialog.glade:204 msgid "If you don't save, new changes to your games will be permanently lost." msgstr "" #: glade/taskers.glade:126 msgid "_Opponent:" msgstr "" #: glade/taskers.glade:154 msgid "_Your Color:" msgstr "" #: glade/taskers.glade:219 msgid "_Start Game" msgstr "" #: glade/taskers.glade:338 msgid "Log on as G_uest" msgstr "" #: glade/taskers.glade:410 msgid "Ha_ndle:" msgstr "" #: glade/taskers.glade:469 msgid "_Connect to server" msgstr "" #: glade/tipoftheday.glade:7 msgid "Tip Of The day" msgstr "" #: glade/tipoftheday.glade:62 msgid "Show tips at startup" msgstr "" #: lib/pychess/Main.py:302 msgid "http://en.wikipedia.org/wiki/Chess" msgstr "" #: lib/pychess/Main.py:305 msgid "http://en.wikipedia.org/wiki/Rules_of_chess" msgstr "" #: lib/pychess/Main.py:370 lib/pychess/widgets/gamenanny.py:80 msgid "Welcome" msgstr "" #: lib/pychess/Database/gamelist.py:40 msgid "Id" msgstr "" #: lib/pychess/Database/gamelist.py:40 msgid "W Elo" msgstr "" #: lib/pychess/Database/gamelist.py:40 msgid "B Elo" msgstr "" #: lib/pychess/Database/gamelist.py:41 msgid "Result" msgstr "" #: lib/pychess/Database/gamelist.py:41 msgid "Event" msgstr "" #: lib/pychess/Database/gamelist.py:41 msgid "Site" msgstr "" #: lib/pychess/Database/gamelist.py:41 msgid "Round" msgstr "" #: lib/pychess/Database/gamelist.py:41 msgid "Date" msgstr "" #: lib/pychess/Database/gamelist.py:41 msgid "ECO" msgstr "" #: lib/pychess/Database/gamelist.py:62 msgid "PyChess Game Database" msgstr "" #: lib/pychess/Database/PgnImport.py:188 #, python-format msgid "The game #%s can't be loaded, because of an error parsing FEN" msgstr "" #: lib/pychess/ic/FICSConnection.py:139 msgid "The connection was broken - got \"end of file\" message" msgstr "" #: lib/pychess/ic/FICSConnection.py:140 #, python-format msgid "'%s' is not a registered name" msgstr "" #: lib/pychess/ic/FICSConnection.py:141 msgid "" "The entered password was invalid.\n" "If you forgot your password, go to http://www.freechess.org/password to request a new one over email." msgstr "" #: lib/pychess/ic/FICSConnection.py:145 #, python-format msgid "Sorry '%s' is already logged in" msgstr "" #: lib/pychess/ic/FICSConnection.py:146 #, python-format msgid "'%s' is a registered name. If it is yours, type the password." msgstr "" #: lib/pychess/ic/FICSConnection.py:147 msgid "" "Due to abuse problems, guest connections have been prevented.\n" "You can still register on http://www.freechess.org" msgstr "" #: lib/pychess/ic/FICSConnection.py:166 msgid "Connecting to server" msgstr "" #: lib/pychess/ic/FICSConnection.py:181 msgid "Logging on to server" msgstr "" #: lib/pychess/ic/FICSConnection.py:239 msgid "Setting up environment" msgstr "" #: lib/pychess/ic/FICSObjects.py:35 lib/pychess/ic/FICSObjects.py:47 #, python-format msgid "%(player)s is %(status)s" msgstr "" #: lib/pychess/ic/FICSObjects.py:46 msgid "not playing" msgstr "" #: lib/pychess/ic/FICSObjects.py:54 lib/pychess/ic/ICLounge.py:1136 #: lib/pychess/ic/ICLounge.py:2209 lib/pychess/ic/__init__.py:98 #: lib/pychess/widgets/newGameDialog.py:153 msgid "Blitz" msgstr "" #: lib/pychess/ic/FICSObjects.py:58 lib/pychess/ic/ICLounge.py:1137 #: lib/pychess/ic/ICLounge.py:2209 lib/pychess/ic/__init__.py:100 msgid "Lightning" msgstr "" #: lib/pychess/ic/FICSObjects.py:60 lib/pychess/Variants/atomic.py:15 msgid "Atomic" msgstr "" #: lib/pychess/ic/FICSObjects.py:62 lib/pychess/Variants/bughouse.py:9 msgid "Bughouse" msgstr "" #: lib/pychess/ic/FICSObjects.py:64 lib/pychess/Variants/crazyhouse.py:9 msgid "Crazyhouse" msgstr "" #: lib/pychess/ic/FICSObjects.py:66 lib/pychess/Variants/losers.py:9 msgid "Losers" msgstr "" #: lib/pychess/ic/FICSObjects.py:68 lib/pychess/Variants/suicide.py:12 msgid "Suicide" msgstr "" #: lib/pychess/ic/FICSObjects.py:70 lib/pychess/ic/__init__.py:129 msgid "Wild" msgstr "" #: lib/pychess/ic/FICSObjects.py:117 msgid "Online" msgstr "" #: lib/pychess/ic/FICSObjects.py:118 lib/pychess/ic/FICSObjects.py:143 msgid "Offline" msgstr "" #: lib/pychess/ic/FICSObjects.py:133 msgid "Available" msgstr "" #: lib/pychess/ic/FICSObjects.py:135 msgid "Playing" msgstr "" #: lib/pychess/ic/FICSObjects.py:141 msgid "Idle" msgstr "" #: lib/pychess/ic/FICSObjects.py:145 msgid "Examining" msgstr "" #: lib/pychess/ic/FICSObjects.py:147 msgid "Not Available" msgstr "" #: lib/pychess/ic/FICSObjects.py:149 msgid "Running Simul Match" msgstr "" #: lib/pychess/ic/FICSObjects.py:151 msgid "In Tournament" msgstr "" #: lib/pychess/ic/FICSObjects.py:308 lib/pychess/ic/FICSObjects.py:492 #: lib/pychess/ic/ICLounge.py:2278 msgid "Unrated" msgstr "" #: lib/pychess/ic/FICSObjects.py:491 lib/pychess/ic/ICLounge.py:670 #: lib/pychess/ic/ICLounge.py:1358 lib/pychess/ic/ICLounge.py:1558 #: lib/pychess/ic/ICLounge.py:2113 msgid "Rated" msgstr "" #: lib/pychess/ic/FICSObjects.py:498 lib/pychess/ic/ICLounge.py:2098 #, python-format msgid "%d min" msgstr "" #: lib/pychess/ic/FICSObjects.py:500 #, python-format msgid " + %d sec" msgstr "" #: lib/pychess/ic/FICSObjects.py:517 #, python-format msgid "%(player)s plays %(color)s" msgstr "" #: lib/pychess/ic/FICSObjects.py:519 lib/pychess/ic/ICLounge.py:909 msgid "white" msgstr "" #: lib/pychess/ic/FICSObjects.py:519 lib/pychess/ic/ICLounge.py:909 msgid "black" msgstr "" #: lib/pychess/ic/FICSObjects.py:565 msgid "This is a continuation of an adjourned match" msgstr "" #: lib/pychess/ic/FICSObjects.py:654 msgid "Opponent Rating" msgstr "" #: lib/pychess/ic/FICSObjects.py:656 msgid "Manual Accept" msgstr "" #: lib/pychess/ic/FICSObjects.py:810 msgid "Private" msgstr "" #: lib/pychess/ic/FICSObjects.py:930 lib/pychess/ic/ICLounge.py:527 #: lib/pychess/Savers/epd.py:139 msgid "Unknown" msgstr "" #: lib/pychess/ic/ICLogon.py:159 lib/pychess/ic/ICLogon.py:165 msgid "Connection Error" msgstr "" #: lib/pychess/ic/ICLogon.py:161 msgid "Log on Error" msgstr "" #: lib/pychess/ic/ICLogon.py:163 msgid "Connection was closed" msgstr "" #: lib/pychess/ic/ICLogon.py:169 msgid "Address Error" msgstr "" #: lib/pychess/ic/ICLogon.py:172 msgid "Auto-logout" msgstr "" #: lib/pychess/ic/ICLogon.py:173 msgid "You have been logged out because you were idle more than 60 minutes" msgstr "" #: lib/pychess/ic/ICLounge.py:222 msgid "You have to set kibitz on to see bot messages here." msgstr "" #: lib/pychess/ic/ICLounge.py:241 msgid "" "You may only have 3 outstanding seeks at the same time. If you want to add a" " new seek you must clear your currently active seeks. Clear your seeks?" msgstr "" #: lib/pychess/ic/ICLounge.py:258 msgid "You can't touch this! You are examining a game." msgstr "" #: lib/pychess/ic/ICLounge.py:270 msgid " has declined your offer for a match" msgstr "" #: lib/pychess/ic/ICLounge.py:283 msgid " is censoring you" msgstr "" #: lib/pychess/ic/ICLounge.py:296 msgid " noplay listing you" msgstr "" #: lib/pychess/ic/ICLounge.py:311 msgid " uses a formula not fitting your match request:" msgstr "" #: lib/pychess/ic/ICLounge.py:325 msgid "to manual accept" msgstr "" #: lib/pychess/ic/ICLounge.py:327 msgid "to automatic accept" msgstr "" #: lib/pychess/ic/ICLounge.py:329 msgid "rating range now" msgstr "" #: lib/pychess/ic/ICLounge.py:330 msgid "Seek updated" msgstr "" #: lib/pychess/ic/ICLounge.py:342 msgid "Your seeks have been removed" msgstr "" #: lib/pychess/ic/ICLounge.py:363 msgid " has arrived" msgstr "" #: lib/pychess/ic/ICLounge.py:370 msgid " has departed" msgstr "" #: lib/pychess/ic/ICLounge.py:374 msgid " is present" msgstr "" #: lib/pychess/ic/ICLounge.py:391 sidepanel/chatPanel.py:17 msgid "Chat" msgstr "" #: lib/pychess/ic/ICLounge.py:472 sidepanel/bookPanel.py:366 msgid "Win" msgstr "" #: lib/pychess/ic/ICLounge.py:472 sidepanel/bookPanel.py:360 msgid "Draw" msgstr "" #: lib/pychess/ic/ICLounge.py:472 sidepanel/bookPanel.py:363 msgid "Loss" msgstr "" #: lib/pychess/ic/ICLounge.py:482 msgid "" "On FICS, your \"Wild\" rating encompasses all of the following variants at " "all time controls:\n" msgstr "" #: lib/pychess/ic/ICLounge.py:494 msgid "Sanctions" msgstr "" #: lib/pychess/ic/ICLounge.py:499 msgid "Email" msgstr "" #: lib/pychess/ic/ICLounge.py:504 msgid "Spent" msgstr "" #: lib/pychess/ic/ICLounge.py:506 msgid "online in total" msgstr "" #: lib/pychess/ic/ICLounge.py:512 msgid "Ping" msgstr "" #: lib/pychess/ic/ICLounge.py:517 msgid "Connecting" msgstr "" #: lib/pychess/ic/ICLounge.py:544 msgid "" "You are currently logged in as a guest.\n" "A guest can't play rated games and therefore isn't able to play as many of the types of matches offered as a registered user. To register an account, go to http://www.freechess.org/Register/index.html." msgstr "" #: lib/pychess/ic/ICLounge.py:669 lib/pychess/ic/ICLounge.py:1136 msgid "Name" msgstr "" #: lib/pychess/ic/ICLounge.py:670 lib/pychess/ic/ICLounge.py:1358 #: lib/pychess/ic/ICLounge.py:1558 msgid "Type" msgstr "" #: lib/pychess/ic/ICLounge.py:670 lib/pychess/ic/ICLounge.py:1558 msgid "Clock" msgstr "" #: lib/pychess/ic/ICLounge.py:726 lib/pychess/ic/ICLounge.py:923 #: lib/pychess/Players/Human.py:250 msgid "Accept" msgstr "" #: lib/pychess/ic/ICLounge.py:728 msgid "Assess" msgstr "" #: lib/pychess/ic/ICLounge.py:734 msgid "Archived" msgstr "" #: lib/pychess/ic/ICLounge.py:848 #, python-format msgid "Active seeks: %d" msgstr "" #: lib/pychess/ic/ICLounge.py:897 #, python-format msgid "" " would like to resume your adjourned %(time)s %(gametype)s " "game." msgstr "" #: lib/pychess/ic/ICLounge.py:902 #, python-format msgid "" " challenges you to a %(time)s %(rated)s %(gametype)s game" msgstr "" #: lib/pychess/ic/ICLounge.py:907 #, python-format msgid " where %(player)s plays %(color)s." msgstr "" #: lib/pychess/ic/ICLounge.py:924 lib/pychess/Players/Human.py:251 msgid "Decline" msgstr "" #: lib/pychess/ic/ICLounge.py:1065 msgid " min" msgstr "" #: lib/pychess/ic/ICLounge.py:1137 msgid "Status" msgstr "" #: lib/pychess/ic/ICLounge.py:1203 lib/pychess/ic/ICLounge.py:1233 #, python-format msgid "Players: %d" msgstr "" #: lib/pychess/ic/ICLounge.py:1469 #, python-format msgid "Games running: %d" msgstr "" #: lib/pychess/ic/ICLounge.py:1559 msgid "Date/Time" msgstr "" #: lib/pychess/ic/ICLounge.py:1614 #, python-format msgid "" " with whom you have an adjourned %(timecontrol)s %(gametype)s " "game is online." msgstr "" #: lib/pychess/ic/ICLounge.py:1635 msgid "Request Continuation" msgstr "" #: lib/pychess/ic/ICLounge.py:1637 msgid "Examine Adjourned Game" msgstr "" #: lib/pychess/ic/ICLounge.py:1965 msgid "" "The chain button is disabled because you are logged in as a guest. Guests " "can't establish ratings, and the chain button's state has no effect when " "there is no rating to which to tie \"Opponent Strength\" to" msgstr "" #: lib/pychess/ic/ICLounge.py:2006 msgid "Challenge: " msgstr "" #: lib/pychess/ic/ICLounge.py:2044 msgid "If set you can refuse players accepting your seek" msgstr "" #: lib/pychess/ic/ICLounge.py:2048 lib/pychess/ic/ICLounge.py:2051 msgid "This option is not applicable because you're challenging a player" msgstr "" #: lib/pychess/ic/ICLounge.py:2064 msgid "Edit Seek: " msgstr "" #: lib/pychess/ic/ICLounge.py:2095 #, python-format msgid "%(minutes)d min + %(gain)d sec/move" msgstr "" #: lib/pychess/ic/ICLounge.py:2116 msgid "Manual" msgstr "" #: lib/pychess/ic/ICLounge.py:2256 msgid "Any strength" msgstr "" #: lib/pychess/ic/ICLounge.py:2308 msgid "You can't play rated games because you are logged in as a guest" msgstr "" #: lib/pychess/ic/ICLounge.py:2312 msgid "You can't play rated games because \"Untimed\" is checked, " msgstr "" #: lib/pychess/ic/ICLounge.py:2313 msgid "and on FICS, untimed games can't be rated" msgstr "" #: lib/pychess/ic/ICLounge.py:2317 msgid "This option is not available because you're challenging a guest, " msgstr "" #: lib/pychess/ic/ICLounge.py:2318 msgid "and guests can't play rated games" msgstr "" #: lib/pychess/ic/ICLounge.py:2332 lib/pychess/Variants/shuffle.py:16 #: lib/pychess/widgets/newGameDialog.py:266 msgid "Shuffle" msgstr "" #: lib/pychess/ic/ICLounge.py:2333 lib/pychess/widgets/newGameDialog.py:267 msgid "Other (standard rules)" msgstr "" #: lib/pychess/ic/ICLounge.py:2334 lib/pychess/widgets/newGameDialog.py:268 msgid "Other (non standard rules)" msgstr "" #: lib/pychess/ic/ICLounge.py:2421 msgid "You can't select a variant because \"Untimed\" is checked, " msgstr "" #: lib/pychess/ic/ICLounge.py:2422 msgid "and on FICS, untimed games have to be normal chess rules" msgstr "" #: lib/pychess/ic/ICLounge.py:2454 msgid "Change Tolerance" msgstr "" #: lib/pychess/ic/__init__.py:102 msgid "Examined" msgstr "" #: lib/pychess/ic/__init__.py:103 msgid "Other" msgstr "" #: lib/pychess/ic/__init__.py:182 msgid "Administrator" msgstr "" #: lib/pychess/ic/__init__.py:182 msgid "Blindfold Account" msgstr "" #: lib/pychess/ic/__init__.py:182 msgid "Computer" msgstr "" #: lib/pychess/ic/__init__.py:183 msgid "Team Account" msgstr "" #: lib/pychess/ic/__init__.py:183 msgid "Unregistered" msgstr "" #: lib/pychess/ic/__init__.py:183 msgid "Chess Advisor" msgstr "" #: lib/pychess/ic/__init__.py:184 msgid "Service Representative" msgstr "" #: lib/pychess/ic/__init__.py:184 msgid "Tournament Director" msgstr "" #: lib/pychess/ic/__init__.py:184 msgid "Mamer Manager" msgstr "" #: lib/pychess/ic/__init__.py:185 msgid "Grand Master" msgstr "" #: lib/pychess/ic/__init__.py:185 msgid "International Master" msgstr "" #: lib/pychess/ic/__init__.py:185 msgid "FIDE Master" msgstr "" #: lib/pychess/ic/__init__.py:186 msgid "Woman Grand Master" msgstr "" #: lib/pychess/ic/__init__.py:186 msgid "Woman International Master" msgstr "" #: lib/pychess/ic/__init__.py:186 msgid "Woman FIDE Master" msgstr "" #: lib/pychess/ic/__init__.py:187 msgid "Dummy Account" msgstr "" #: lib/pychess/ic/__init__.py:191 msgid "*" msgstr "" #: lib/pychess/ic/__init__.py:191 lib/pychess/Utils/repr.py:14 msgid "B" msgstr "" #: lib/pychess/ic/__init__.py:191 msgid "C" msgstr "" #: lib/pychess/ic/__init__.py:192 msgid "T" msgstr "" #: lib/pychess/ic/__init__.py:192 msgid "U" msgstr "" #: lib/pychess/ic/__init__.py:192 msgid "CA" msgstr "" #: lib/pychess/ic/__init__.py:193 msgid "SR" msgstr "" #: lib/pychess/ic/__init__.py:193 msgid "TD" msgstr "" #: lib/pychess/ic/__init__.py:193 msgid "TM" msgstr "" #: lib/pychess/ic/__init__.py:194 msgid "GM" msgstr "" #: lib/pychess/ic/__init__.py:194 msgid "IM" msgstr "" #: lib/pychess/ic/__init__.py:194 msgid "FM" msgstr "" #: lib/pychess/ic/__init__.py:195 msgid "WGM" msgstr "" #: lib/pychess/ic/__init__.py:195 msgid "WIM" msgstr "" #: lib/pychess/ic/__init__.py:195 msgid "WFM" msgstr "" #: lib/pychess/ic/__init__.py:195 msgid "D" msgstr "" #: lib/pychess/ic/__init__.py:195 msgid "H" msgstr "" #: lib/pychess/ic/__init__.py:195 msgid "CM" msgstr "" #: lib/pychess/ic/__init__.py:195 msgid "FA" msgstr "" #: lib/pychess/ic/__init__.py:195 msgid "NM" msgstr "" #: lib/pychess/Players/CECPEngine.py:857 #, python-format msgid "The engine %s reports an error:" msgstr "" #: lib/pychess/Players/Human.py:20 msgid "Your opponent has offered you a draw." msgstr "" #: lib/pychess/Players/Human.py:21 msgid "" "Your opponent has offered you a draw. If you accept this offer, the game " "will end with a score of 1/2 - 1/2." msgstr "" #: lib/pychess/Players/Human.py:23 msgid "Your opponent wants to abort the game." msgstr "" #: lib/pychess/Players/Human.py:24 msgid "" "Your opponent has asked that the game be aborted. If you accept this offer, " "the game will end with no rating change." msgstr "" #: lib/pychess/Players/Human.py:26 msgid "Your opponent wants to adjourn the game." msgstr "" #: lib/pychess/Players/Human.py:27 msgid "" "Your opponent has asked that the game be adjourned. If you accept this " "offer, the game will be adjourned and you can resume it later (when your " "opponent is online and both players agree to resume)." msgstr "" #: lib/pychess/Players/Human.py:29 #, python-format msgid "Your opponent wants to undo %s move(s)." msgstr "" #: lib/pychess/Players/Human.py:30 #, python-format msgid "" "Your opponent has asked that the last %s move(s) be undone. If you accept " "this offer, the game will continue from the earlier position." msgstr "" #: lib/pychess/Players/Human.py:32 msgid "Your opponent wants to pause the game." msgstr "" #: lib/pychess/Players/Human.py:33 msgid "" "Your opponent has asked that the game be paused. If you accept this offer, " "the game clock will be paused until both players agree to resume the game." msgstr "" #: lib/pychess/Players/Human.py:35 msgid "Your opponent wants to resume the game." msgstr "" #: lib/pychess/Players/Human.py:36 msgid "" "Your opponent has asked that the game be resumed. If you accept this offer, " "the game clock will continue from where it was paused." msgstr "" #: lib/pychess/Players/Human.py:40 msgid "The resignation" msgstr "" #: lib/pychess/Players/Human.py:41 msgid "The flag call" msgstr "" #: lib/pychess/Players/Human.py:42 msgid "The draw offer" msgstr "" #: lib/pychess/Players/Human.py:43 msgid "The abort offer" msgstr "" #: lib/pychess/Players/Human.py:44 msgid "The adjourn offer" msgstr "" #: lib/pychess/Players/Human.py:45 msgid "The pause offer" msgstr "" #: lib/pychess/Players/Human.py:46 msgid "The resume offer" msgstr "" #: lib/pychess/Players/Human.py:47 msgid "The offer to switch sides" msgstr "" #: lib/pychess/Players/Human.py:48 msgid "The takeback offer" msgstr "" #: lib/pychess/Players/Human.py:52 msgid "resign" msgstr "" #: lib/pychess/Players/Human.py:53 msgid "call your opponents flag" msgstr "" #: lib/pychess/Players/Human.py:54 msgid "offer a draw" msgstr "" #: lib/pychess/Players/Human.py:55 msgid "offer an abort" msgstr "" #: lib/pychess/Players/Human.py:56 msgid "offer to adjourn" msgstr "" #: lib/pychess/Players/Human.py:57 msgid "offer a pause" msgstr "" #: lib/pychess/Players/Human.py:58 msgid "offer to resume" msgstr "" #: lib/pychess/Players/Human.py:59 msgid "offer to switch sides" msgstr "" #: lib/pychess/Players/Human.py:60 msgid "offer a takeback" msgstr "" #: lib/pychess/Players/Human.py:61 msgid "ask your opponent to move" msgstr "" #: lib/pychess/Players/Human.py:66 msgid "Your opponent is not out of time." msgstr "" #: lib/pychess/Players/Human.py:68 msgid "The clock hasn't been started yet." msgstr "" #: lib/pychess/Players/Human.py:70 msgid "You can't switch colors during the game." msgstr "" #: lib/pychess/Players/Human.py:72 msgid "You have tried to undo too many moves." msgstr "" #: lib/pychess/Players/Human.py:180 msgid "Your opponent asks you to hurry!" msgstr "" #: lib/pychess/Players/Human.py:181 msgid "" "Generally this means nothing, as the game is time-based, but if you want to " "please your opponent, perhaps you should get going." msgstr "" #: lib/pychess/Players/Human.py:259 #, python-format msgid "%s was declined by your opponent" msgstr "" #: lib/pychess/Players/Human.py:260 #, python-format msgid "Resend %s?" msgstr "" #: lib/pychess/Players/Human.py:267 msgid "Resend" msgstr "" #: lib/pychess/Players/Human.py:275 #, python-format msgid "%s was withdrawn by your opponent" msgstr "" #: lib/pychess/Players/Human.py:276 msgid "Your opponent seems to have changed their mind." msgstr "" #: lib/pychess/Players/Human.py:290 #, python-format msgid "Unable to accept %s" msgstr "" #: lib/pychess/Players/Human.py:291 msgid "Probably because it has been withdrawn." msgstr "" #: lib/pychess/Players/Human.py:298 #, python-format msgid "%s returns an error" msgstr "" #: lib/pychess/Savers/chessalpha2.py:12 msgid "Chess Alpha 2 Diagram" msgstr "" #: lib/pychess/Savers/chesspastebin.py:39 msgid "Game shared at " msgstr "" #: lib/pychess/Savers/chesspastebin.py:41 msgid "(Link is available on clipboard.)" msgstr "" #: lib/pychess/Savers/database.py:19 msgid "PyChess database" msgstr "" #: lib/pychess/Savers/epd.py:12 msgid "Chess Position" msgstr "" #: lib/pychess/Savers/fen.py:12 msgid "Simple Chess Position" msgstr "" #: lib/pychess/Savers/fen.py:44 lib/pychess/Savers/pgn.py:329 msgid "The game can't be loaded, because of an error parsing FEN" msgstr "" #: lib/pychess/Savers/pgnbase.py:100 #, python-format msgid "" "The game can't be read to end, because of an error parsing move %(moveno)s " "'%(notation)s'." msgstr "" #: lib/pychess/Savers/pgnbase.py:102 #, python-format msgid "The move failed because %s." msgstr "" #: lib/pychess/Savers/pgnbase.py:110 #, python-format msgid "Error parsing move %(moveno)s %(mstr)s" msgstr "" #: lib/pychess/Savers/pgn.py:28 msgid "Chess Game" msgstr "" #: lib/pychess/Savers/pgn.py:362 msgid "Invalid move." msgstr "" #: lib/pychess/Savers/png.py:15 msgid "Png image" msgstr "" #: lib/pychess/System/ping.py:31 msgid "Destination Host Unreachable" msgstr "" #: lib/pychess/System/ping.py:74 msgid "Died" msgstr "" #: lib/pychess/Utils/GameModel.py:147 msgid "Local Event" msgstr "" #: lib/pychess/Utils/GameModel.py:148 msgid "Local Site" msgstr "" #: lib/pychess/Utils/repr.py:12 msgid "Pawn" msgstr "" #: lib/pychess/Utils/repr.py:14 msgid "P" msgstr "" #: lib/pychess/Utils/repr.py:14 msgid "N" msgstr "" #: lib/pychess/Utils/repr.py:14 msgid "R" msgstr "" #: lib/pychess/Utils/repr.py:14 msgid "Q" msgstr "" #: lib/pychess/Utils/repr.py:14 msgid "K" msgstr "" #: lib/pychess/Utils/repr.py:17 msgid "The game ended in a draw" msgstr "" #: lib/pychess/Utils/repr.py:18 #, python-format msgid "%(white)s won the game" msgstr "" #: lib/pychess/Utils/repr.py:19 #, python-format msgid "%(black)s won the game" msgstr "" #: lib/pychess/Utils/repr.py:20 msgid "The game has been killed" msgstr "" #: lib/pychess/Utils/repr.py:21 msgid "The game has been adjourned" msgstr "" #: lib/pychess/Utils/repr.py:22 msgid "The game has been aborted" msgstr "" #: lib/pychess/Utils/repr.py:26 msgid "Because neither player has sufficient material to mate" msgstr "" #: lib/pychess/Utils/repr.py:27 msgid "Because the same position was repeated three times in a row" msgstr "" #: lib/pychess/Utils/repr.py:28 msgid "Because the last 50 moves brought nothing new" msgstr "" #: lib/pychess/Utils/repr.py:29 msgid "Because both players ran out of time" msgstr "" #: lib/pychess/Utils/repr.py:30 #, python-format msgid "Because %(mover)s stalemated" msgstr "" #: lib/pychess/Utils/repr.py:31 msgid "Because both players agreed to a draw" msgstr "" #: lib/pychess/Utils/repr.py:32 lib/pychess/Utils/repr.py:42 msgid "Because of adjudication by an admin" msgstr "" #: lib/pychess/Utils/repr.py:33 msgid "Because the game exceed the max length" msgstr "" #: lib/pychess/Utils/repr.py:34 #, python-format msgid "" "Because %(white)s ran out of time and %(black)s has insufficient material to" " mate" msgstr "" #: lib/pychess/Utils/repr.py:35 #, python-format msgid "" "Because %(black)s ran out of time and %(white)s has insufficient material to" " mate" msgstr "" #: lib/pychess/Utils/repr.py:36 msgid "Because both players have the same amount of pieces" msgstr "" #: lib/pychess/Utils/repr.py:38 #, python-format msgid "Because %(loser)s resigned" msgstr "" #: lib/pychess/Utils/repr.py:39 #, python-format msgid "Because %(loser)s ran out of time" msgstr "" #: lib/pychess/Utils/repr.py:40 #, python-format msgid "Because %(loser)s was checkmated" msgstr "" #: lib/pychess/Utils/repr.py:41 #, python-format msgid "Because %(loser)s disconnected" msgstr "" #: lib/pychess/Utils/repr.py:43 #, python-format msgid "Because %(winner)s has fewer pieces" msgstr "" #: lib/pychess/Utils/repr.py:44 #, python-format msgid "Because %(winner)s lost all pieces" msgstr "" #: lib/pychess/Utils/repr.py:45 #, python-format msgid "Because %(loser)s king exploded" msgstr "" #: lib/pychess/Utils/repr.py:46 #, python-format msgid "Because %(winner)s king reached the center" msgstr "" #: lib/pychess/Utils/repr.py:47 #, python-format msgid "Because %(winner)s was giving check 3 times" msgstr "" #: lib/pychess/Utils/repr.py:49 msgid "Because a player lost connection" msgstr "" #: lib/pychess/Utils/repr.py:50 msgid "Because both players agreed to an adjournment" msgstr "" #: lib/pychess/Utils/repr.py:51 msgid "Because the server was shut down" msgstr "" #: lib/pychess/Utils/repr.py:52 msgid "" "Because a player lost connection and the other player requested adjournment" msgstr "" #: lib/pychess/Utils/repr.py:53 #, python-format msgid "" "Because %(black)s lost connection to the server and %(white)s requested " "adjournment" msgstr "" #: lib/pychess/Utils/repr.py:54 #, python-format msgid "" "Because %(white)s lost connection to the server and %(black)s requested " "adjournment" msgstr "" #: lib/pychess/Utils/repr.py:55 #, python-format msgid "Because %(white)s lost connection to the server" msgstr "" #: lib/pychess/Utils/repr.py:56 #, python-format msgid "Because %(black)s lost connection to the server" msgstr "" #: lib/pychess/Utils/repr.py:58 msgid "Because of adjudication by an admin. No rating changes have occurred." msgstr "" #: lib/pychess/Utils/repr.py:59 msgid "" "Because both players agreed to abort the game. No rating changes have " "occurred." msgstr "" #: lib/pychess/Utils/repr.py:60 msgid "Because of courtesy by a player. No rating changes have occurred." msgstr "" #: lib/pychess/Utils/repr.py:61 msgid "" "Because a player aborted the game. Either player can abort the game without " "the other's consent before the second move. No rating changes have occurred." msgstr "" #: lib/pychess/Utils/repr.py:62 msgid "" "Because a player disconnected and there are too few moves to warrant " "adjournment. No rating changes have occurred." msgstr "" #: lib/pychess/Utils/repr.py:63 msgid "Because the server was shut down. No rating changes have occurred." msgstr "" #: lib/pychess/Utils/repr.py:65 #, python-format msgid "Because the %(white)s engine died" msgstr "" #: lib/pychess/Utils/repr.py:66 #, python-format msgid "Because the %(black)s engine died" msgstr "" #: lib/pychess/Utils/repr.py:67 msgid "Because the connection to the server was lost" msgstr "" #: lib/pychess/Utils/repr.py:68 msgid "The reason is unknown" msgstr "" #: lib/pychess/Utils/TimeModel.py:229 msgid "min" msgstr "" #: lib/pychess/Utils/TimeModel.py:231 msgid "sec" msgstr "" #: lib/pychess/Variants/asean.py:12 msgid "" "ASEAN: http://www.ncf-" "phil.org/downloadables/2014/May/Asean_chess/Laws_of_ASEAN_Chess_2011_Nov_26.doc" msgstr "" #: lib/pychess/Variants/asean.py:13 msgid "ASEAN" msgstr "" #: lib/pychess/Variants/asean.py:33 msgid "Makruk: http://en.wikipedia.org/wiki/Makruk" msgstr "" #: lib/pychess/Variants/asean.py:34 msgid "Makruk" msgstr "" #: lib/pychess/Variants/asean.py:60 msgid "Cambodian: http://www.khmerinstitute.org/culture/ok.html" msgstr "" #: lib/pychess/Variants/asean.py:61 msgid "Cambodian" msgstr "" #: lib/pychess/Variants/asean.py:86 msgid "" "Ai-Wok: http://www.open-" "aurec.com/wbforum/viewtopic.php?p=199364&sid=20963a1de2c164050de019e5ed6bf7c4#p199364" msgstr "" #: lib/pychess/Variants/asean.py:87 msgid "Ai-Wok" msgstr "" #: lib/pychess/Variants/asean.py:111 msgid "Sittuyin: http://en.wikipedia.org/wiki/Sittuyin" msgstr "" #: lib/pychess/Variants/asean.py:112 msgid "Sittuyin" msgstr "" #: lib/pychess/Variants/asymmetricrandom.py:12 msgid "" "FICS wild/4: http://www.freechess.org/Help/HelpFiles/wild.html\n" "* Randomly chosen pieces (two queens or three rooks possible)\n" "* Exactly one king of each color\n" "* Pieces placed randomly behind the pawns, SUBJECT TO THE CONSTRAINT THAT THE BISHOPS ARE BALANCED\n" "* No castling\n" "* Black's arrangement DOES NOT mirrors white's" msgstr "" #: lib/pychess/Variants/asymmetricrandom.py:18 msgid "Asymmetric Random" msgstr "" #: lib/pychess/Variants/atomic.py:14 msgid "FICS atomic: http://www.freechess.org/Help/HelpFiles/atomic.html" msgstr "" #: lib/pychess/Variants/blindfold.py:7 msgid "" "Classic chess rules with hidden figurines\n" "http://en.wikipedia.org/wiki/Blindfold_chess" msgstr "" #: lib/pychess/Variants/blindfold.py:9 #: lib/pychess/widgets/newGameDialog.py:264 msgid "Blindfold" msgstr "" #: lib/pychess/Variants/blindfold.py:18 msgid "" "Classic chess rules with hidden pawns\n" "http://en.wikipedia.org/wiki/Blindfold_chess" msgstr "" #: lib/pychess/Variants/blindfold.py:20 msgid "Hidden pawns" msgstr "" #: lib/pychess/Variants/blindfold.py:29 msgid "" "Classic chess rules with hidden pieces\n" "http://en.wikipedia.org/wiki/Blindfold_chess" msgstr "" #: lib/pychess/Variants/blindfold.py:31 msgid "Hidden pieces" msgstr "" #: lib/pychess/Variants/blindfold.py:40 msgid "" "Classic chess rules with all pieces white\n" "http://en.wikipedia.org/wiki/Blindfold_chess" msgstr "" #: lib/pychess/Variants/blindfold.py:42 msgid "All white" msgstr "" #: lib/pychess/Variants/bughouse.py:8 msgid "FICS bughouse: http://www.freechess.org/Help/HelpFiles/bughouse.html" msgstr "" #: lib/pychess/Variants/corner.py:12 msgid "" "http://brainking.com/en/GameRules?tp=2\n" "* Placement of the pieces on the 1st and 8th row are randomized\n" "* The king is in the right hand corner\n" "* Bishops must start on opposite color squares\n" "* Black's starting position is obtained by rotating white's position 180 degrees around the board's center\n" "* No castling" msgstr "" #: lib/pychess/Variants/corner.py:18 msgid "Corner" msgstr "" #: lib/pychess/Variants/crazyhouse.py:8 msgid "" "FICS crazyhouse: http://www.freechess.org/Help/HelpFiles/crazyhouse.html" msgstr "" #: lib/pychess/Variants/euroshogi.py:9 msgid "EuroShogi: http://en.wikipedia.org/wiki/EuroShogi" msgstr "" #: lib/pychess/Variants/euroshogi.py:10 msgid "EuroShogi" msgstr "" #: lib/pychess/Variants/fischerandom.py:18 msgid "" "http://en.wikipedia.org/wiki/Chess960\n" "FICS wild/fr: http://www.freechess.org/Help/HelpFiles/wild.html" msgstr "" #: lib/pychess/Variants/fischerandom.py:20 msgid "Fischer Random" msgstr "" #: lib/pychess/Variants/kingofthehill.py:8 msgid "" "Bringing your king legally to the center (e4, d4, e5, d5) instantly wins the game!\n" "Normal rules apply in other cases and checkmate also ends the game." msgstr "" #: lib/pychess/Variants/kingofthehill.py:10 msgid "King of the hill" msgstr "" #: lib/pychess/Variants/knightodds.py:8 msgid "One player starts with one less knight piece" msgstr "" #: lib/pychess/Variants/knightodds.py:9 msgid "Knight odds" msgstr "" #: lib/pychess/Variants/losers.py:8 msgid "FICS losers: http://www.freechess.org/Help/HelpFiles/losers_chess.html" msgstr "" #: lib/pychess/Variants/normal.py:4 msgid "" "Classic chess rules\n" "http://en.wikipedia.org/wiki/Chess" msgstr "" #: lib/pychess/Variants/normal.py:6 lib/pychess/widgets/newGameDialog.py:157 msgid "Normal" msgstr "" #: lib/pychess/Variants/pawnodds.py:8 msgid "One player starts with one less pawn piece" msgstr "" #: lib/pychess/Variants/pawnodds.py:9 msgid "Pawn odds" msgstr "" #: lib/pychess/Variants/pawnspassed.py:11 msgid "" "FICS wild/8a: http://www.freechess.org/Help/HelpFiles/wild.html\n" "White pawns start on 5th rank and black pawns on the 4th rank" msgstr "" #: lib/pychess/Variants/pawnspassed.py:13 msgid "Pawns Passed" msgstr "" #: lib/pychess/Variants/pawnspushed.py:10 msgid "" "FICS wild/8: http://www.freechess.org/Help/HelpFiles/wild.html\n" "Pawns start on 4th and 5th ranks rather than 2nd and 7th" msgstr "" #: lib/pychess/Variants/pawnspushed.py:12 msgid "Pawns Pushed" msgstr "" #: lib/pychess/Variants/queenodds.py:8 msgid "One player starts with one less queen piece" msgstr "" #: lib/pychess/Variants/queenodds.py:9 msgid "Queen odds" msgstr "" #: lib/pychess/Variants/randomchess.py:11 msgid "" "FICS wild/3: http://www.freechess.org/Help/HelpFiles/wild.html\n" "* Randomly chosen pieces (two queens or three rooks possible)\n" "* Exactly one king of each color\n" "* Pieces placed randomly behind the pawns\n" "* No castling\n" "* Black's arrangement mirrors white's" msgstr "" #: lib/pychess/Variants/randomchess.py:17 #: lib/pychess/widgets/TaskerManager.py:155 msgid "Random" msgstr "" #: lib/pychess/Variants/rookodds.py:8 msgid "One player starts with one less rook piece" msgstr "" #: lib/pychess/Variants/rookodds.py:9 msgid "Rook odds" msgstr "" #: lib/pychess/Variants/shuffle.py:11 msgid "" "xboard nocastle: http://home.hccnet.nl/h.g.muller/engine-intf.html#8\n" "FICS wild/2: http://www.freechess.org/Help/HelpFiles/wild.html\n" "* Random arrangement of the pieces behind the pawns\n" "* No castling\n" "* Black's arrangement mirrors white's" msgstr "" #: lib/pychess/Variants/suicide.py:11 msgid "" "FICS suicide: http://www.freechess.org/Help/HelpFiles/suicide_chess.html" msgstr "" #: lib/pychess/Variants/theban.py:10 msgid "" "Variant developed by Kai Laskos: " "http://talkchess.com/forum/viewtopic.php?t=40990" msgstr "" #: lib/pychess/Variants/theban.py:11 msgid "Theban" msgstr "" #: lib/pychess/Variants/threecheck.py:10 msgid "Win by giving check 3 times" msgstr "" #: lib/pychess/Variants/threecheck.py:11 msgid "Three-check" msgstr "" #: lib/pychess/Variants/upsidedown.py:10 msgid "" "FICS wild/5: http://www.freechess.org/Help/HelpFiles/wild.html\n" "http://en.wikipedia.org/wiki/Chess_variant#Chess_with_different_starting_positions\n" "Pawns start on their 7th rank rather than their 2nd rank!" msgstr "" #: lib/pychess/Variants/upsidedown.py:13 msgid "Upside Down" msgstr "" #: lib/pychess/Variants/wildcastle.py:10 msgid "" "xboard wildcastle http://home.hccnet.nl/h.g.muller/engine-intf.html#8\n" "FICS wild/0: http://www.freechess.org/Help/HelpFiles/wild.html\n" "* White has the typical set-up at the start.\n" "* Black's pieces are the same, except that the King and Queen are reversed,\n" "* so they are not on the same files as White's King and Queen.\n" "* Castling is done similarly to normal chess:\n" "* o-o-o indicates long castling and o-o short castling." msgstr "" #: lib/pychess/Variants/wildcastle.py:17 msgid "Wildcastle" msgstr "" #: lib/pychess/Variants/wildcastleshuffle.py:11 msgid "" "xboard wildcastle http://home.hccnet.nl/h.g.muller/engine-intf.html#8\n" "FICS wild/1: http://www.freechess.org/Help/HelpFiles/wild.html\n" "* In this variant both sides have the same set of pieces as in normal chess.\n" "* The white king starts on d1 or e1 and the black king starts on d8 or e8,\n" "* and the rooks are in their usual positions.\n" "* Bishops are always on opposite colors.\n" "* Subject to these constraints the position of the pieces on their first ranks is random.\n" "* Castling is done similarly to normal chess:\n" "* o-o-o indicates long castling and o-o short castling." msgstr "" #: lib/pychess/Variants/wildcastleshuffle.py:20 msgid "Wildcastle shuffle" msgstr "" #: lib/pychess/widgets/analyzegameDialog.py:85 msgid "Game analyzing in progress..." msgstr "" #: lib/pychess/widgets/analyzegameDialog.py:86 msgid "Do you want to abort it?" msgstr "" #: lib/pychess/widgets/analyzegameDialog.py:95 #: lib/pychess/widgets/gamewidget.py:202 lib/pychess/widgets/gamewidget.py:320 msgid "Abort" msgstr "" #: lib/pychess/widgets/ChatView.py:125 msgid "Observers" msgstr "" #: lib/pychess/widgets/ChatWindow.py:222 msgid "You have opened no conversations yet" msgstr "" #: lib/pychess/widgets/ChatWindow.py:254 msgid "Only registered users may talk to this channel" msgstr "" #: lib/pychess/widgets/ChatWindow.py:312 msgid "No conversation's selected" msgstr "" #: lib/pychess/widgets/ChatWindow.py:350 msgid "Loading player data" msgstr "" #: lib/pychess/widgets/ChatWindow.py:400 msgid "Receiving list of players" msgstr "" #: lib/pychess/widgets/ChatWindow.py:518 msgid "Friends" msgstr "" #: lib/pychess/widgets/ChatWindow.py:529 msgid "Admin" msgstr "" #: lib/pychess/widgets/ChatWindow.py:540 msgid "More channels" msgstr "" #: lib/pychess/widgets/ChatWindow.py:548 msgid "More players" msgstr "" #: lib/pychess/widgets/ChatWindow.py:558 msgid "Computers" msgstr "" #: lib/pychess/widgets/ChatWindow.py:568 msgid "BlindFold" msgstr "" #: lib/pychess/widgets/ChatWindow.py:578 msgid "Guests" msgstr "" #: lib/pychess/widgets/ChatWindow.py:805 msgid "Conversations" msgstr "" #: lib/pychess/widgets/ChatWindow.py:807 msgid "Conversation info" msgstr "" #: lib/pychess/widgets/enginesDialog.py:152 msgid "Select engine" msgstr "" #: lib/pychess/widgets/enginesDialog.py:156 msgid "Executable files" msgstr "" #: lib/pychess/widgets/enginesDialog.py:176 #: lib/pychess/widgets/enginesDialog.py:210 #: lib/pychess/widgets/enginesDialog.py:235 #, python-format msgid "Unable to add %s" msgstr "" #: lib/pychess/widgets/enginesDialog.py:177 msgid "wine not installed" msgstr "" #: lib/pychess/widgets/enginesDialog.py:211 #: lib/pychess/widgets/enginesDialog.py:236 msgid "There is something wrong with this executable" msgstr "" #: lib/pychess/widgets/enginesDialog.py:266 msgid "Select working directory" msgstr "" #: lib/pychess/widgets/gamenanny.py:115 #, python-format msgid " invalid engine move: %s" msgstr "" #: lib/pychess/widgets/gamenanny.py:134 msgid "Offer Rematch" msgstr "" #: lib/pychess/widgets/gamenanny.py:136 lib/pychess/widgets/gamenanny.py:147 #, python-format msgid "Observe %s" msgstr "" #: lib/pychess/widgets/gamenanny.py:168 msgid "Play Rematch" msgstr "" #: lib/pychess/widgets/gamenanny.py:171 msgid "Undo one move" msgstr "" #: lib/pychess/widgets/gamenanny.py:173 msgid "Undo two moves" msgstr "" #: lib/pychess/widgets/gamenanny.py:203 msgid "The game is paused" msgstr "" #: lib/pychess/widgets/gamenanny.py:221 lib/pychess/widgets/gamenanny.py:222 msgid "Loaded game" msgstr "" #: lib/pychess/widgets/gamenanny.py:228 msgid "Saved game" msgstr "" #: lib/pychess/widgets/gamenanny.py:232 msgid "Analyzer started" msgstr "" #: lib/pychess/widgets/gamenanny.py:281 msgid "You sent an abort offer" msgstr "" #: lib/pychess/widgets/gamenanny.py:283 msgid "You sent an adjournment offer" msgstr "" #: lib/pychess/widgets/gamenanny.py:285 msgid "You sent a draw offer" msgstr "" #: lib/pychess/widgets/gamenanny.py:287 msgid "You sent a pause offer" msgstr "" #: lib/pychess/widgets/gamenanny.py:289 msgid "You sent a resume offer" msgstr "" #: lib/pychess/widgets/gamenanny.py:291 msgid "You sent an undo offer" msgstr "" #: lib/pychess/widgets/gamenanny.py:293 msgid "You asked your opponent to move" msgstr "" #: lib/pychess/widgets/gamenanny.py:305 #, python-format msgid "Engine, %s, has died" msgstr "" #: lib/pychess/widgets/gamenanny.py:306 msgid "" "PyChess has lost connection to the engine, probably because it has died.\n" "\n" "You can try to start a new game with the engine, or try to play against another one." msgstr "" #: lib/pychess/widgets/gamewidget.py:204 msgid "" "This game can be automatically aborted without rating loss because there has" " not yet been two moves made" msgstr "" #: lib/pychess/widgets/gamewidget.py:206 msgid "Offer Abort" msgstr "" #: lib/pychess/widgets/gamewidget.py:208 msgid "" "Your opponent must agree to abort the game because there has been two or " "more moves made" msgstr "" #: lib/pychess/widgets/gamewidget.py:226 msgid "This game can not be adjourned because one or both players are guests" msgstr "" #: lib/pychess/widgets/gamewidget.py:243 msgid "Claim Draw" msgstr "" #: lib/pychess/widgets/gamewidget.py:325 msgid "Pause" msgstr "" #: lib/pychess/widgets/gamewidget.py:326 msgid "Resume" msgstr "" #: lib/pychess/widgets/gamewidget.py:328 msgid "Offer Pause" msgstr "" #: lib/pychess/widgets/gamewidget.py:329 msgid "Offer Resume" msgstr "" #: lib/pychess/widgets/gamewidget.py:333 msgid "Undo" msgstr "" #: lib/pychess/widgets/gamewidget.py:335 msgid "Offer Undo" msgstr "" #: lib/pychess/widgets/gamewidget.py:550 msgid " has lagged for 30 seconds" msgstr "" #: lib/pychess/widgets/gamewidget.py:566 msgid " is lagging heavily but hasn't disconnected" msgstr "" #: lib/pychess/widgets/gamewidget.py:567 msgid "Continue to wait for opponent, or try to adjourn the game?" msgstr "" #: lib/pychess/widgets/gamewidget.py:575 msgid "Wait" msgstr "" #: lib/pychess/widgets/gamewidget.py:576 msgid "Adjourn" msgstr "" #: lib/pychess/widgets/gamewidget.py:648 msgid "Jump to initial position" msgstr "" #: lib/pychess/widgets/gamewidget.py:653 msgid "Step back one move" msgstr "" #: lib/pychess/widgets/gamewidget.py:658 msgid "Go back to the main line" msgstr "" #: lib/pychess/widgets/gamewidget.py:664 msgid "Step forward one move" msgstr "" #: lib/pychess/widgets/gamewidget.py:669 msgid "Jump to latest position" msgstr "" #: lib/pychess/widgets/gamewidget.py:903 msgid "PyChess was unable to load your panel settings" msgstr "" #: lib/pychess/widgets/gamewidget.py:904 msgid "" "Your panel settings have been reset. If this problem repeats, you should " "report it to the developers" msgstr "" #: lib/pychess/widgets/ionest.py:67 lib/pychess/widgets/newGameDialog.py:389 #: lib/pychess/widgets/TaskerManager.py:210 msgid "You" msgstr "" #: lib/pychess/widgets/ionest.py:70 lib/pychess/widgets/newGameDialog.py:390 #: lib/pychess/widgets/preferencesDialog.py:61 #: lib/pychess/widgets/TaskerManager.py:213 msgid "Guest" msgstr "" #: lib/pychess/widgets/ionest.py:93 msgid "Error loading game" msgstr "" #: lib/pychess/widgets/ionest.py:127 lib/pychess/widgets/newGameDialog.py:480 msgid "Open Game" msgstr "" #: lib/pychess/widgets/ionest.py:137 msgid "All Files" msgstr "" #: lib/pychess/widgets/ionest.py:140 msgid "Detect type automatically" msgstr "" #: lib/pychess/widgets/ionest.py:146 msgid "All Chess Files" msgstr "" #: lib/pychess/widgets/ionest.py:228 msgid "Save Game" msgstr "" #: lib/pychess/widgets/ionest.py:228 msgid "Export position" msgstr "" #: lib/pychess/widgets/ionest.py:232 lib/pychess/widgets/ionest.py:360 msgid "vs." msgstr "" #: lib/pychess/widgets/ionest.py:249 #, python-format msgid "Unknown file type '%s'" msgstr "" #: lib/pychess/widgets/ionest.py:250 #, python-format msgid "" "Was unable to save '%(uri)s' as PyChess doesn't know the format " "'%(ending)s'." msgstr "" #: lib/pychess/widgets/ionest.py:266 #, python-format msgid "Unable to save file '%s'" msgstr "" #: lib/pychess/widgets/ionest.py:268 msgid "" "You don't have the necessary rights to save the file.\n" "Please ensure that you have given the right path and try again." msgstr "" #: lib/pychess/widgets/ionest.py:276 msgid "_Replace" msgstr "" #: lib/pychess/widgets/ionest.py:280 msgid "File exists" msgstr "" #: lib/pychess/widgets/ionest.py:282 #, python-format msgid "" "A file named '%s' already exists. Would you like to replace " "it?" msgstr "" #: lib/pychess/widgets/ionest.py:283 #, python-format msgid "" "The file already exists in '%s'. If you replace it, its content will be " "overwritten." msgstr "" #: lib/pychess/widgets/ionest.py:299 msgid "Could not save the file" msgstr "" #: lib/pychess/widgets/ionest.py:300 msgid "PyChess was not able to save the game" msgstr "" #: lib/pychess/widgets/ionest.py:301 #, python-format msgid "The error was: %s" msgstr "" #: lib/pychess/widgets/ionest.py:325 #, python-format msgid "There is %d game with unsaved moves." msgid_plural "There are %d games with unsaved moves." msgstr[0] "" msgstr[1] "" #: lib/pychess/widgets/ionest.py:328 msgid "Save moves before closing?" msgstr "" #: lib/pychess/widgets/ionest.py:339 msgid "Unable to save to configured file. Save the games before closing?" msgstr "" #: lib/pychess/widgets/ionest.py:366 #, python-format msgid "_Save %d document" msgid_plural "_Save %d documents" msgstr[0] "" msgstr[1] "" #: lib/pychess/widgets/ionest.py:412 msgid "Save the current game before you close it?" msgstr "" #: lib/pychess/widgets/ionest.py:420 msgid "" "Unable to save to configured file. Save the current game before you close " "it?" msgstr "" #: lib/pychess/widgets/ionest.py:434 msgid "" "It is not possible later to continue the game,\n" "if you don't save it." msgstr "" #: lib/pychess/widgets/LogDialog.py:26 msgid "PyChess Information Window" msgstr "" #: lib/pychess/widgets/LogDialog.py:184 lib/pychess/widgets/LogDialog.py:188 msgid "of" msgstr "" #: lib/pychess/widgets/newGameDialog.py:84 #: lib/pychess/widgets/newGameDialog.py:85 msgid "Human Being" msgstr "" #: lib/pychess/widgets/newGameDialog.py:155 msgid "Rapid" msgstr "" #: lib/pychess/widgets/newGameDialog.py:224 msgid "Minutes:" msgstr "" #: lib/pychess/widgets/newGameDialog.py:228 msgid "Gain:" msgstr "" #: lib/pychess/widgets/newGameDialog.py:241 #, python-format msgid "%(name)s %(minutes)d min + %(gain)d sec/move" msgstr "" #: lib/pychess/widgets/newGameDialog.py:244 #, python-format msgid "%(name)s %(minutes)d min %(gain)d sec/move" msgstr "" #: lib/pychess/widgets/newGameDialog.py:247 #, python-format msgid "%(name)s %(minutes)d min" msgstr "" #: lib/pychess/widgets/newGameDialog.py:265 msgid "Odds" msgstr "" #: lib/pychess/widgets/newGameDialog.py:269 msgid "Asian variants" msgstr "" #: lib/pychess/widgets/newGameDialog.py:301 msgid " chess" msgstr "" #: lib/pychess/widgets/newGameDialog.py:682 msgid "Type or paste PGN game or FEN positions here" msgstr "" #: lib/pychess/widgets/newGameDialog.py:725 msgid "Enter Game" msgstr "" #: lib/pychess/widgets/preferencesDialog.py:123 msgid "Select book file" msgstr "" #: lib/pychess/widgets/preferencesDialog.py:128 msgid "Opening books" msgstr "" #: lib/pychess/widgets/preferencesDialog.py:156 msgid "Select Gaviota TB path" msgstr "" #: lib/pychess/widgets/preferencesDialog.py:331 msgid "Open Sound File" msgstr "" #: lib/pychess/widgets/preferencesDialog.py:341 msgid "Sound files" msgstr "" #: lib/pychess/widgets/preferencesDialog.py:485 msgid "Undescribed panel" msgstr "" #: lib/pychess/widgets/preferencesDialog.py:678 msgid "Select auto save path" msgstr "" #: lib/pychess/widgets/tipOfTheDay.py:51 msgid "" "You can start a new game by Game > New Game, in New Game " "window do you can choose Players, Time Control and Chess " "Variants." msgstr "" #: lib/pychess/widgets/tipOfTheDay.py:52 msgid "" "You can choose from 20 different difficulties to play against the computer." msgstr "" #: lib/pychess/widgets/tipOfTheDay.py:53 msgid "" "Chess Variants are like the pieces of the last line will be placed on the " "board." msgstr "" #: lib/pychess/widgets/tipOfTheDay.py:54 msgid "" "To save a game Game > Save Game As, give the filename and " "choose where you want to be saved. At the bottom choose extension type of " "the file, and Save." msgstr "" #: lib/pychess/widgets/tipOfTheDay.py:55 msgid "" "Do you know that you can call flag when the clock is with you, " "Actions > Call Flag." msgstr "" #: lib/pychess/widgets/tipOfTheDay.py:56 msgid "Pressing Ctrl+Z to offer opponent the possible rollback moves." msgstr "" #: lib/pychess/widgets/tipOfTheDay.py:57 msgid "" "To play on Fullscreen mode, just type F11. Coming back, F11 " "again." msgstr "" #: lib/pychess/widgets/tipOfTheDay.py:58 msgid "Hint mode analyzing your game, enable this type Ctrl+H." msgstr "" #: lib/pychess/widgets/tipOfTheDay.py:59 msgid "" "Spy mode analyzing the oponnent game, enable this type Ctrl+Y." msgstr "" #: lib/pychess/widgets/tipOfTheDay.py:60 msgid "" "You can play chess listening to the sounds of the game, for that, " "Settings > Preferences > Sound tab, enable Use " "sounds in PyChess and choose your preferred sounds." msgstr "" #: lib/pychess/widgets/tipOfTheDay.py:61 msgid "" "Do you know that you can help translate Pychess in your language, " "Help > Translate Pychess." msgstr "" #: lib/pychess/widgets/tipOfTheDay.py:62 msgid "" "Do you know that it is possible to finish a chess game in just 2 turns?" msgstr "" #: lib/pychess/widgets/tipOfTheDay.py:63 msgid "" "Do you know that the number of possible chess games exceeds the number of " "atoms in the Universe?" msgstr "" #: lib/pychess/ic/managers/ChatManager.py:184 msgid "Shout" msgstr "" #: lib/pychess/ic/managers/ChatManager.py:185 msgid "Chess Shout" msgstr "" #: lib/pychess/ic/managers/ChatManager.py:195 #, python-format msgid "Unofficial channel %d" msgstr "" #: lib/pychess/Utils/lutils/LBoard.py:152 #, python-format msgid "" "FEN needs 6 data fields. \n" "\n" "%s" msgstr "" #: lib/pychess/Utils/lutils/LBoard.py:154 #, python-format msgid "" "FEN needs at least 2 data fields in fenstr. \n" "\n" "%s" msgstr "" #: lib/pychess/Utils/lutils/LBoard.py:175 #, python-format msgid "" "Needs 7 slashes in piece placement field. \n" "\n" "%s" msgstr "" #: lib/pychess/Utils/lutils/LBoard.py:178 #, python-format msgid "" "Active color field must be one of w or b. \n" "\n" "%s" msgstr "" #: lib/pychess/Utils/lutils/LBoard.py:189 #, python-format msgid "" "Castling availability field is not legal. \n" "\n" "%s" msgstr "" #: lib/pychess/Utils/lutils/LBoard.py:192 #, python-format msgid "" "En passant cord is not legal. \n" "\n" "%s" msgstr "" #: lib/pychess/Utils/lutils/lmove.py:260 msgid "invalid promoted piece" msgstr "" #: lib/pychess/Utils/lutils/lmove.py:272 msgid "the move needs a piece and a cord" msgstr "" #: lib/pychess/Utils/lutils/lmove.py:306 lib/pychess/Utils/lutils/lmove.py:556 msgid "promotion move without promoted piece is incorrect" msgstr "" #: lib/pychess/Utils/lutils/lmove.py:312 #, python-format msgid "the captured cord (%s) is incorrect" msgstr "" #: lib/pychess/Utils/lutils/lmove.py:323 #, python-format msgid "the end cord (%s) is incorrect" msgstr "" #: lib/pychess/Utils/lutils/strateval.py:24 sidepanel/commentPanel.py:191 #: sidepanel/commentPanel.py:208 msgid "and" msgstr "" #: lib/pychess/Utils/lutils/strateval.py:43 msgid "draws" msgstr "" #: lib/pychess/Utils/lutils/strateval.py:45 msgid "mates" msgstr "" #: lib/pychess/Utils/lutils/strateval.py:49 msgid "puts opponent in check" msgstr "" #: lib/pychess/Utils/lutils/strateval.py:73 msgid "improves king safety" msgstr "" #: lib/pychess/Utils/lutils/strateval.py:75 msgid "slightly improves king safety" msgstr "" #: lib/pychess/Utils/lutils/strateval.py:108 msgid "moves a rook to an open file" msgstr "" #: lib/pychess/Utils/lutils/strateval.py:109 msgid "moves an rook to a half-open file" msgstr "" #: lib/pychess/Utils/lutils/strateval.py:119 #: lib/pychess/Utils/lutils/strateval.py:121 #: lib/pychess/Utils/lutils/strateval.py:124 #: lib/pychess/Utils/lutils/strateval.py:126 #, python-format msgid "moves bishop into fianchetto: %s" msgstr "" #: lib/pychess/Utils/lutils/strateval.py:132 #, python-format msgid "promotes a Pawn to a %s" msgstr "" #: lib/pychess/Utils/lutils/strateval.py:135 msgid "castles" msgstr "" #: lib/pychess/Utils/lutils/strateval.py:158 msgid "takes back material" msgstr "" #: lib/pychess/Utils/lutils/strateval.py:162 #: lib/pychess/Utils/lutils/strateval.py:170 msgid "sacrifies material" msgstr "" #: lib/pychess/Utils/lutils/strateval.py:164 msgid "exchanges material" msgstr "" #: lib/pychess/Utils/lutils/strateval.py:166 msgid "captures material" msgstr "" #: lib/pychess/Utils/lutils/strateval.py:291 #, python-format msgid "rescues a %s" msgstr "" #: lib/pychess/Utils/lutils/strateval.py:294 #, python-format msgid "threatens to win material by %s" msgstr "" #: lib/pychess/Utils/lutils/strateval.py:296 #, python-format msgid "increases the pressure on %s" msgstr "" #: lib/pychess/Utils/lutils/strateval.py:298 #, python-format msgid "defends %s" msgstr "" #: lib/pychess/Utils/lutils/strateval.py:336 #, python-format msgid "pins an enemy %(oppiece)s on the %(piece)s at %(cord)s" msgstr "" #: lib/pychess/Utils/lutils/strateval.py:369 #, python-format msgid "White has a new piece in outpost: %s" msgstr "" #: lib/pychess/Utils/lutils/strateval.py:377 #, python-format msgid "Black has a new piece in outpost: %s" msgstr "" #: lib/pychess/Utils/lutils/strateval.py:416 #, python-format msgid "%(color)s has a new passed pawn on %(cord)s" msgstr "" #: lib/pychess/Utils/lutils/strateval.py:470 msgid "half-open" msgstr "" #: lib/pychess/Utils/lutils/strateval.py:472 #, python-format msgid "in the %(x)s%(y)s file" msgstr "" #: lib/pychess/Utils/lutils/strateval.py:474 #, python-format msgid "in the %(x)s%(y)s files" msgstr "" #: lib/pychess/Utils/lutils/strateval.py:477 #, python-format msgid "%(color)s got a double pawn %(place)s" msgstr "" #: lib/pychess/Utils/lutils/strateval.py:478 #, python-format msgid "%(color)s got new double pawns %(place)s" msgstr "" #: lib/pychess/Utils/lutils/strateval.py:485 #, python-format msgid "%(color)s got an isolated pawn in the %(x)s file" msgid_plural "%(color)s got isolated pawns in the %(x)s files" msgstr[0] "" msgstr[1] "" #: lib/pychess/Utils/lutils/strateval.py:492 #, python-format msgid "%s moves pawns into stonewall formation" msgstr "" #: lib/pychess/Utils/lutils/strateval.py:507 #: lib/pychess/Utils/lutils/strateval.py:514 #, python-format msgid "%s can no longer castle" msgstr "" #: lib/pychess/Utils/lutils/strateval.py:508 #: lib/pychess/Utils/lutils/strateval.py:515 #, python-format msgid "%s can no longer castle in queenside" msgstr "" #: lib/pychess/Utils/lutils/strateval.py:510 #: lib/pychess/Utils/lutils/strateval.py:517 #, python-format msgid "%s can no longer castle in kingside" msgstr "" #: lib/pychess/Utils/lutils/strateval.py:551 #, python-format msgid "%(opcolor)s has a new trapped bishop on %(cord)s" msgstr "" #: lib/pychess/Utils/lutils/strateval.py:573 #, python-format msgid "develops a pawn: %s" msgstr "" #: lib/pychess/Utils/lutils/strateval.py:574 #, python-format msgid "brings a pawn closer to the backrow: %s" msgstr "" #: lib/pychess/Utils/lutils/strateval.py:591 #, python-format msgid "brings a %(piece)s closer to enemy king: %(cord)s" msgstr "" #: lib/pychess/Utils/lutils/strateval.py:594 #, python-format msgid "develops a %(piece)s: %(cord)s" msgstr "" #: lib/pychess/Utils/lutils/strateval.py:612 #, python-format msgid "places a %(piece)s more active: %(cord)s" msgstr "" #: lib/pychess/Utils/lutils/strateval.py:638 msgid "White should do pawn storm in right" msgstr "" #: lib/pychess/Utils/lutils/strateval.py:640 msgid "Black should do pawn storm in left" msgstr "" #: lib/pychess/Utils/lutils/strateval.py:643 msgid "White should do pawn storm in left" msgstr "" #: lib/pychess/Utils/lutils/strateval.py:645 msgid "Black should do pawn storm in right" msgstr "" #: lib/pychess/Utils/lutils/strateval.py:671 msgid "Black has a rather cramped position" msgstr "" #: lib/pychess/Utils/lutils/strateval.py:673 msgid "Black has a slightly cramped position" msgstr "" #: lib/pychess/Utils/lutils/strateval.py:675 msgid "White has a rather cramped position" msgstr "" #: lib/pychess/Utils/lutils/strateval.py:677 msgid "White has a slightly cramped position" msgstr "" #: sidepanel/annotationPanel.py:26 msgid "Annotation" msgstr "" #: sidepanel/annotationPanel.py:29 msgid "Annotated game" msgstr "" #: sidepanel/annotationPanel.py:236 msgid "Copy PGN" msgstr "" #: sidepanel/annotationPanel.py:249 msgid "Add start comment" msgstr "" #: sidepanel/annotationPanel.py:254 msgid "Add comment" msgstr "" #: sidepanel/annotationPanel.py:258 sidepanel/annotationPanel.py:316 msgid "Edit comment" msgstr "" #: sidepanel/annotationPanel.py:269 msgid "Forced move" msgstr "" #: sidepanel/annotationPanel.py:274 msgid "Add move symbol" msgstr "" #: sidepanel/annotationPanel.py:280 msgid "Unclear position" msgstr "" #: sidepanel/annotationPanel.py:289 msgid "Zugzwang" msgstr "" #: sidepanel/annotationPanel.py:290 msgid "Development adv." msgstr "" #: sidepanel/annotationPanel.py:291 msgid "Initiative" msgstr "" #: sidepanel/annotationPanel.py:292 msgid "With attack" msgstr "" #: sidepanel/annotationPanel.py:293 msgid "Compensation" msgstr "" #: sidepanel/annotationPanel.py:294 msgid "Counterplay" msgstr "" #: sidepanel/annotationPanel.py:295 msgid "Time pressure" msgstr "" #: sidepanel/annotationPanel.py:300 msgid "Add evaluation symbol" msgstr "" #: sidepanel/annotationPanel.py:304 msgid "Remove symbols" msgstr "" #: sidepanel/annotationPanel.py:911 #, python-format msgid "round %s" msgstr "" #: sidepanel/bookPanel.py:21 msgid "Hints" msgstr "" #: sidepanel/bookPanel.py:25 msgid "" "The hint panel will provide computer advice during each stage of the game" msgstr "" #: sidepanel/bookPanel.py:27 msgid "Official PyChess panel." msgstr "" #: sidepanel/bookPanel.py:87 msgid "Opening Book" msgstr "" #: sidepanel/bookPanel.py:88 msgid "" "The opening book will try to inspire you during the opening phase of the " "game by showing you common moves made by chess masters" msgstr "" #: sidepanel/bookPanel.py:139 #, python-format msgid "Analysis by %s" msgstr "" #: sidepanel/bookPanel.py:140 #, python-format msgid "" "%s will try to predict which move is best and which side has the advantage" msgstr "" #: sidepanel/bookPanel.py:142 #, python-format msgid "Threat analysis by %s" msgstr "" #: sidepanel/bookPanel.py:143 #, python-format msgid "" "%s will identify what threats would exist if it were your opponent's turn to" " move" msgstr "" #: sidepanel/bookPanel.py:159 sidepanel/bookPanel.py:269 msgid "Calculating..." msgstr "" #: sidepanel/bookPanel.py:300 msgid "" "Engine scores are in units of pawns, from White's point of view. Double " "clicking on analysis lines you can insert them into Annotation panel as " "variations." msgstr "" #: sidepanel/bookPanel.py:302 msgid "" "Adding suggestions can help you find ideas, but slows down the computer's " "analysis." msgstr "" #: sidepanel/bookPanel.py:311 msgid "Endgame Table" msgstr "" #: sidepanel/bookPanel.py:315 msgid "" "The endgame table will show exact analysis when there are few pieces on the " "board." msgstr "" #: sidepanel/bookPanel.py:364 sidepanel/bookPanel.py:367 #, python-format msgid "Mate in %d" msgstr "" #: sidepanel/bookPanel.py:554 msgid "" "In this position,\n" "there is no legal move." msgstr "" #: sidepanel/chatPanel.py:21 msgid "" "The chat panel lets you communicate with your opponent during the game, " "assuming he or she is interested" msgstr "" #: sidepanel/commentPanel.py:16 msgid "Comments" msgstr "" #: sidepanel/commentPanel.py:20 msgid "The comments panel will try to analyze and explain the moves played" msgstr "" #: sidepanel/commentPanel.py:121 msgid "Initial position" msgstr "" #: sidepanel/commentPanel.py:254 #, python-format msgid "%(color)s moves a %(piece)s to %(cord)s" msgstr "" #: sidepanel/engineOutputPanel.py:15 msgid "Engines" msgstr "" #: sidepanel/engineOutputPanel.py:20 msgid "" "The engine output panel shows the thinking output of chess engines (computer" " players) during a game" msgstr "" #: sidepanel/engineOutputPanel.py:44 msgid "No chess engines (computer players) are participating in this game." msgstr "" #: sidepanel/historyPanel.py:10 msgid "Move History" msgstr "" #: sidepanel/historyPanel.py:13 msgid "" "The moves sheet keeps track of the players' moves and lets you navigate " "through the game history" msgstr "" #: sidepanel/scorePanel.py:15 msgid "Score" msgstr "" #: sidepanel/scorePanel.py:19 msgid "" "The score panel tries to evaluate the positions and shows you a graph of the" " game progress" msgstr "" pychess-0.12.2/lang/eu/LC_MESSAGES/pychess.mo0000644000175000017470000000103312653231273020703 0ustar tamasusers000000000000004L`a hs _Name:_Password:Project-Id-Version: pychess Report-Msgid-Bugs-To: POT-Creation-Date: 2016-01-27 13:28+0100 PO-Revision-Date: 2016-01-28 08:56+0000 Last-Translator: slav0nic Language-Team: Basque (http://www.transifex.com/gbtami/pychess/language/eu/) MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Language: eu Plural-Forms: nplurals=2; plural=(n != 1); _Izena:_Pasahitza:pychess-0.12.2/lang/el/0000755000175000017470000000000012653231274015076 5ustar tamasusers00000000000000pychess-0.12.2/lang/el/LC_MESSAGES/0000755000175000017470000000000012653231274016663 5ustar tamasusers00000000000000pychess-0.12.2/lang/el/LC_MESSAGES/pychess.po0000644000175000017470000026215412653216172020713 0ustar tamasusers00000000000000# SOME DESCRIPTIVE TITLE. # Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER # This file is distributed under the same license as the pychess package. # # Translators: # FIRST AUTHOR , 2007 # anvo , 2015 # Γιάννης Ανθυμίδης, 2012 msgid "" msgstr "" "Project-Id-Version: pychess\n" "Report-Msgid-Bugs-To: \n" "POT-Creation-Date: 2016-01-27 13:28+0100\n" "PO-Revision-Date: 2016-01-28 08:56+0000\n" "Last-Translator: slav0nic \n" "Language-Team: Greek (http://www.transifex.com/gbtami/pychess/language/el/)\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" "Language: el\n" "Plural-Forms: nplurals=2; plural=(n != 1);\n" # "Plural-Forms: nplurals=INTEGER; plural=EXPRESSION;\n" #: glade/analyze_game.glade:22 msgid "Analyze game" msgstr "Ανάλυση παρτίδας" #: glade/analyze_game.glade:87 msgid "Use analyzer:" msgstr "Χρήση του αναλυτή:" #: glade/analyze_game.glade:122 glade/PyChess.glade:2054 msgid "Maximum analysis time in seconds:" msgstr "Μέγιστος χρόνος ανάλυσης σε δευτερόλεπτα:" #: glade/analyze_game.glade:163 msgid "" "If the analyzer finds a move where the evaluation difference (the difference" " between the evaluation for the move it thinks is the best move and the " "evaluation for the move made in the game) exceeds this value, it will add an" " annotation for that move (consisting of the engine's Principal Variation " "for the move) to the Annotation panel" msgstr "Αν ο αναλυτής βρει μια κίνηση με την οποία η διαφορά ανάλυσης (η διαφορά μεταξύ της ανάλυσης για την κίνηση αυτή που αυτός πιστεύει ότι είναι η καλύτερη και της ανάλυσης για την κίνηση που έγινε στην παρτίδα) υπερβαίνει την τιμή αυτή, ο αναλυτής θα προσθέσει σχολιασμό για την κίνηση αυτή (θα περιλαμβάνει την αρχική βαριάντα της μηχανής για την κίνηση) στον πίνακα των Σχολιασμών." #: glade/analyze_game.glade:164 msgid "Variation annotation creation threshold in centipawns:" msgstr "" #: glade/analyze_game.glade:198 msgid "Analyze from current position" msgstr "Ανάλυση από την τρέχουσα θέση" #: glade/analyze_game.glade:214 msgid "Add threatening variation lines " msgstr "" #: glade/analyze_game.glade:229 glade/PyChess.glade:1459 msgid "Colorize analyzed moves" msgstr "Χρωματισμός των αναλυμέων κινήσεων" #: glade/analyze_game.glade:244 glade/PyChess.glade:1495 msgid "Show evaluation values" msgstr "Προβολή τιμών ανάλυσης" #: glade/discovererDialog.glade:18 msgid "PyChess is discovering your engines. Please wait." msgstr "Το PyChess ανακαλύπτει τις μηχανές σας. Παρακαλώ περιμένετε." #: glade/discovererDialog.glade:77 msgid "PyChess.py:" msgstr "PyChess.py:" #: glade/discovererDialog.glade:89 msgid "ShredderLinuxChess:" msgstr "ShredderLinuxChess:" #: glade/discovererDialog.glade:101 msgid "gnuchess:" msgstr "gnuchess:" #: glade/fics_logon.glade:7 msgid "PyChess - Connect to Internet Chess" msgstr "PyChess - Διαδικτυακή Σύνδεση" #: glade/fics_logon.glade:47 msgid "Connect to the Free Online Chess Server" msgstr "Σύνδεση με τον Δωρεάν Διαδικτυακό Σκακιστικό Εξυπηρετητή" #: glade/fics_logon.glade:129 glade/taskers.glade:394 msgid "_Password:" msgstr "_Συνθηματικό:" #: glade/fics_logon.glade:143 msgid "_Name:" msgstr "_Όνομα:" #: glade/fics_logon.glade:191 msgid "Log on as _Guest" msgstr "Συνδεθείτε ως _Επισκέπτης" #: glade/fics_logon.glade:227 msgid "Host:" msgstr "" #: glade/fics_logon.glade:259 msgid "Po_rts:" msgstr "θύ_ρες" #: glade/fics_logon.glade:271 msgid "Auto login on startup" msgstr "" #: glade/fics_logon.glade:385 msgid "S_ign up" msgstr "Ε_γγραφείτε" #: glade/fics_lounge.glade:35 msgid "Challenge: " msgstr "Πρόκληση: <Παίχτης>" #: glade/fics_lounge.glade:97 msgid "Send Challenge" msgstr "Αποστολή Πρόκλησης" #: glade/fics_lounge.glade:133 msgid "Challenge:" msgstr "Πρόκληση:" #: glade/fics_lounge.glade:327 glade/fics_lounge.glade:2078 msgid "Lightning:" msgstr "Αστραπιαία:" #: glade/fics_lounge.glade:351 glade/fics_lounge.glade:2102 msgid "Standard:" msgstr "Τυπική:" #: glade/fics_lounge.glade:375 glade/fics_lounge.glade:2126 msgid "Blitz:" msgstr "Μπλιτς:" #: glade/fics_lounge.glade:400 msgid "2 min, Fischer Random, Black" msgstr "2 λεπτά, Τυχαίο Φίσερ, Μαύρα" #: glade/fics_lounge.glade:422 msgid "10 min + 6 sec/move, White" msgstr "10 λεπτά + 6 δευτ/κίνηση, Λευκά" #: glade/fics_lounge.glade:444 msgid "5 min" msgstr "5 λεπτά" #: glade/fics_lounge.glade:480 msgid "Edit Seek" msgstr "Επεξεργασία Αναζήτησης" #: glade/fics_lounge.glade:584 lib/pychess/ic/ICLounge.py:2208 #: lib/pychess/ic/__init__.py:101 lib/pychess/Utils/GameModel.py:206 msgid "Untimed" msgstr "Χωρίς χρόνο" #: glade/fics_lounge.glade:637 msgid "Minutes: " msgstr "Λεπτά: " #: glade/fics_lounge.glade:665 msgid " Gain: " msgstr " Κέρδος: " #: glade/fics_lounge.glade:703 msgid "Time control: " msgstr "Έλεγχος χρόνου: " #: glade/fics_lounge.glade:716 lib/pychess/ic/FICSObjects.py:56 #: lib/pychess/ic/ICLounge.py:1137 lib/pychess/ic/ICLounge.py:2208 #: lib/pychess/ic/__init__.py:99 msgid "Standard" msgstr "Πρότυπο" #: glade/fics_lounge.glade:757 glade/newInOut.glade:633 msgid "Time Control" msgstr "Έλεγχος χρόνου" #: glade/fics_lounge.glade:814 glade/fics_lounge.glade:1346 msgid "Don't care" msgstr "Αδιάφορο" #: glade/fics_lounge.glade:879 msgid "Your strength: " msgstr "Η δυναμικότητά σας: " #: glade/fics_lounge.glade:921 msgid "(Blitz)" msgstr "(Μπλιτς)" #: glade/fics_lounge.glade:951 msgid "Opponent's strength: " msgstr "Δυναμικότητα αντιπάλου: " #: glade/fics_lounge.glade:1055 msgid "" "When this button is in the \"locked\" state, the relationship\n" "between \"Opponent's strength\" and \"Your strength\" will be\n" "preserved when \n" "a) your rating for the type of game sought has changed\n" "b) you change the variant or the time control" msgstr "Όταν αυτό το κουμπί είναι στη κατάσταση «κλειδωμένου», τότε\nη σχέση ανάμεσα στην «Δύναμικότητα αντιπάλου» και την\n«Δικιά σας δυναμικότητά» θα κρατηθεί όταν \nα) η εκτίμισή σας για τον τύπο παιχνιδιού που ψάχνετε αλλάζει\nβ) αλλάζεται την παραλλαγή ή τον έλεγχο χρόνου" #: glade/fics_lounge.glade:1095 msgid "Center:" msgstr "Κέντρο:" #: glade/fics_lounge.glade:1134 msgid "1200" msgstr "1200" #: glade/fics_lounge.glade:1188 msgid "Tolerance:" msgstr "Ανοχή:" #: glade/fics_lounge.glade:1243 lib/pychess/ic/ICLounge.py:2452 msgid "Hide" msgstr "Απόκρυψη" #: glade/fics_lounge.glade:1289 msgid "Opponent Strength" msgstr "Ισχυς Αντιπάλου" #: glade/fics_lounge.glade:1386 lib/pychess/Database/gamelist.py:40 #: lib/pychess/ic/ICLounge.py:1357 lib/pychess/ic/ICLounge.py:1557 #: lib/pychess/ic/ICLounge.py:2108 lib/pychess/Utils/repr.py:10 #: lib/pychess/widgets/ChessClock.py:40 #: lib/pychess/widgets/TaskerManager.py:153 msgid "White" msgstr "Λευκά" #: glade/fics_lounge.glade:1414 lib/pychess/Database/gamelist.py:40 #: lib/pychess/ic/ICLounge.py:1358 lib/pychess/ic/ICLounge.py:1558 #: lib/pychess/ic/ICLounge.py:2110 lib/pychess/Utils/repr.py:10 #: lib/pychess/widgets/ChessClock.py:40 #: lib/pychess/widgets/TaskerManager.py:154 msgid "Black" msgstr "Μαύρα" #: glade/fics_lounge.glade:1453 msgid "Your Color" msgstr "Το Χρώμα σας" #: glade/fics_lounge.glade:1512 msgid "Play normal chess rules" msgstr "Παίξτε με κανονικούς κανόνες σκακιού" #: glade/fics_lounge.glade:1552 msgid "Play" msgstr "Παίξτε" #: glade/fics_lounge.glade:1618 glade/newInOut.glade:833 msgid "Chess Variant" msgstr "Σκακιστική Βαριάντα" #: glade/fics_lounge.glade:1676 msgid "Rated game" msgstr "Βαθμολογημένο παιχνίδι" #: glade/fics_lounge.glade:1692 msgid "Manually accept opponent" msgstr "Χειροκίνητη αποδοχή αντιπάλου" #: glade/fics_lounge.glade:1722 msgid "Options" msgstr "Επιλογές" #: glade/fics_lounge.glade:1750 msgid "PyChess - Internet Chess: FICS" msgstr "PyChess - Διαδικτυακό Σκάκι: FICS" #: glade/fics_lounge.glade:1823 msgid "_Clear Seeks" msgstr "_Καθαρισμός Αναζητήσεων" #: glade/fics_lounge.glade:1847 msgid "_Accept" msgstr "_Αποδοχή" #: glade/fics_lounge.glade:1871 msgid "_Decline" msgstr "_Άρνηση" #: glade/fics_lounge.glade:2151 msgid "2 min, Fischer Random, 1800↓, Black" msgstr "2 λεπτά, Τυχαίο Φίσερ, 1800↓, Μαύρα" #: glade/fics_lounge.glade:2172 msgid "10 min + 6 sec/move, 1400↑, White" msgstr "10 λεπτά + 6 δευτ/κίνηση, 1400↑, Λευκά" #: glade/fics_lounge.glade:2193 msgid "5 min, 1200-1800, Manual" msgstr "5 λεπτά, 1200-1800, Χειροκίνητα" #: glade/fics_lounge.glade:2247 msgid "Send all seeks" msgstr "" #: glade/fics_lounge.glade:2301 msgid "Send seek" msgstr "Αποστολή Αναζήτησης" #: glade/fics_lounge.glade:2337 msgid "Create Seek" msgstr "Δημιουργία Αναζήτησης" #: glade/fics_lounge.glade:2353 msgid "_Seeks / Challenges" msgstr "_Αναζητήσεις / Προκλήσεις" #: glade/fics_lounge.glade:2374 lib/pychess/ic/ICLounge.py:472 #: lib/pychess/ic/ICLounge.py:670 lib/pychess/ic/ICLounge.py:1357 #: lib/pychess/ic/ICLounge.py:1358 msgid "Rating" msgstr "Βαθμολογία" #: glade/fics_lounge.glade:2399 msgid "Time" msgstr "Χρόνος" #: glade/fics_lounge.glade:2419 msgid "Seek _Graph" msgstr "Γράφημα αναζήτησης" #: glade/fics_lounge.glade:2444 msgid "0 Players Ready" msgstr "0 έτοιμοι παίχτες" #: glade/fics_lounge.glade:2496 msgid "Challenge" msgstr "Πρόκληση" #: glade/fics_lounge.glade:2549 glade/fics_lounge.glade:2735 msgid "Observe" msgstr "Παρατήρηση" #: glade/fics_lounge.glade:2602 msgid "Start Private Chat" msgstr "Έναρξη Ιδιωτικής Συνομιλίας" #: glade/fics_lounge.glade:2659 msgid "_Player List" msgstr "_Κατάλογος Παίκτη" #: glade/fics_lounge.glade:2792 msgid "_Game List" msgstr "_Κατάλογος Παιχνιδιού" #: glade/fics_lounge.glade:2847 msgid "_My games" msgstr "" #: glade/fics_lounge.glade:2904 glade/PyChess.glade:841 msgid "Offer _Resume" msgstr "Πρόταση _Συνέχειας" #: glade/fics_lounge.glade:2962 glade/PyChess.glade:880 msgid "R_esign" msgstr "Ε_γκατάληψη" #: glade/fics_lounge.glade:3006 glade/PyChess.glade:820 msgid "Offer _Draw" msgstr "Προσφορά _Ισοπαλίας" #: glade/fics_lounge.glade:3050 msgid "Offer A_bort" msgstr "Προσφορά Μ_αταίωσης" #: glade/fics_lounge.glade:3107 msgid "Pre_view" msgstr "Π_ροεπισκόπηση" #: glade/fics_lounge.glade:3151 msgid "Examine" msgstr "" #: glade/fics_lounge.glade:3208 msgid "_Archived" msgstr "" #: glade/fics_lounge.glade:3313 msgid "News" msgstr "Νέα" #: glade/fics_lounge.glade:3345 msgid "Show Console" msgstr "Προβολής κονσόλας" #: glade/fics_lounge.glade:3359 msgid "Show _Chat" msgstr "Εμφάνιση _Συνομιλίας" #: glade/fics_lounge.glade:3373 msgid "_Log Off" msgstr "_Αποσύνδεση" #: glade/fics_lounge.glade:3393 msgid "Tools" msgstr "Εργαλεία" #: glade/fics_lounge.glade:3428 msgid "Asymmetric Random " msgstr "" #: glade/findbar.glade:6 msgid "window1" msgstr "παράθυρο1" #: glade/findbar.glade:21 msgid "0 of 0" msgstr "0 από 0" #: glade/findbar.glade:66 msgid "Search:" msgstr "Αναζήτηση:" #: glade/findbar.glade:134 msgid "_Previous" msgstr "_Προηγούμενο" #: glade/findbar.glade:192 msgid "_Next" msgstr "_Επόμενο" #: glade/newInOut.glade:45 lib/pychess/widgets/newGameDialog.py:445 msgid "New Game" msgstr "Νέο Παιχνίδι" #: glade/newInOut.glade:108 msgid "_Start Game" msgstr "Έ_ναρξη Παιχνιδιού" #: glade/newInOut.glade:130 msgid "Copy FEN" msgstr "" #: glade/newInOut.glade:143 msgid "Clear" msgstr "" #: glade/newInOut.glade:156 msgid "Paste FEN" msgstr "" #: glade/newInOut.glade:257 msgid "_Black player:" msgstr "_Μαύρος παίκτης:" #: glade/newInOut.glade:274 msgid "_White player:" msgstr "_Λεύκος παίκτης:" #: glade/newInOut.glade:385 msgid "Players" msgstr "Παίκτες" #: glade/newInOut.glade:436 msgid "_Untimed" msgstr "_Χωρίς χρόνο" #: glade/newInOut.glade:475 msgid "Blitz: 5 min" msgstr "" #: glade/newInOut.glade:526 msgid "Rapid: 15 min + 10 sec/move" msgstr "" #: glade/newInOut.glade:575 msgid "Normal: 40 min + 15 sec/move" msgstr "" #: glade/newInOut.glade:684 msgid "_Play Normal chess" msgstr "_Παίξτε Κανονικό σκάκι" #: glade/newInOut.glade:724 msgid "Play Fischer Random chess" msgstr "Παίξτε σκάκι τύπου Τυχαίο του Φίσερ" #: glade/newInOut.glade:774 msgid "Play Losers chess" msgstr "Παίξτε σκάκι τύπου Losers" #: glade/newInOut.glade:919 msgid "Open Game" msgstr "Ανοιχτό Παιχνίδι" #: glade/newInOut.glade:1162 msgid "Initial Position" msgstr "Αρχική Θέση" #: glade/newInOut.glade:1219 msgid "Enter Game Notation" msgstr "" #: glade/newInOut.glade:1314 msgid "Halfmove clock" msgstr "" #: glade/newInOut.glade:1327 msgid "En passant line" msgstr "" #: glade/newInOut.glade:1339 msgid "Side to move" msgstr "" #: glade/newInOut.glade:1351 msgid "Move number" msgstr "" #: glade/newInOut.glade:1361 msgid "Black O-O" msgstr "" #: glade/newInOut.glade:1375 msgid "Black O-O-O" msgstr "" #: glade/newInOut.glade:1389 msgid "White O-O-O" msgstr "" #: glade/newInOut.glade:1403 msgid "White O-O" msgstr "" #: glade/promotion.glade:7 msgid "Promotion" msgstr "Προαγωγή" #: glade/promotion.glade:49 lib/pychess/Utils/repr.py:12 msgid "Queen" msgstr "Βασίλισσα" #: glade/promotion.glade:95 lib/pychess/Utils/repr.py:12 msgid "Rook" msgstr "Πύργος" #: glade/promotion.glade:141 lib/pychess/Utils/repr.py:12 msgid "Bishop" msgstr "Αξιωματικός" #: glade/promotion.glade:187 lib/pychess/Utils/repr.py:12 msgid "Knight" msgstr "Ίππος" #: glade/promotion.glade:233 lib/pychess/Utils/repr.py:12 msgid "King" msgstr "Βασιλιάς" #: glade/promotion.glade:265 msgid "Promote pawn to what?" msgstr "Προαγωγή του πιονιού σε τι;" #: glade/PyChess.glade:9 msgid "Chess client" msgstr "" #: glade/PyChess.glade:44 msgid "Game information" msgstr "Πληροφορίες παιχνιδιού" #: glade/PyChess.glade:164 msgid "Event:" msgstr "Συμβάν:" #: glade/PyChess.glade:178 msgid "Site:" msgstr "Ιστοσελίδα:" #: glade/PyChess.glade:204 msgid "Round:" msgstr "Γύρος:" #: glade/PyChess.glade:237 msgid "White:" msgstr "" #: glade/PyChess.glade:249 msgid "Black:" msgstr "" #: glade/PyChess.glade:302 msgid "Game data" msgstr "Δεδομένα Παιχνιδιού" #: glade/PyChess.glade:357 msgid "Date of game" msgstr "Ημερομηνία Παιχνιδιού" #: glade/PyChess.glade:495 msgid "_Game" msgstr "_Παιχνίδι" #: glade/PyChess.glade:502 msgid "_New Game" msgstr "_Νέο Παιxνίδι" #: glade/PyChess.glade:515 msgid "Play _Internet Chess" msgstr "Παίξτε _Διαδικτυακό Σκάκι" #: glade/PyChess.glade:534 msgid "_Load Game" msgstr "_Φόρτωση Παιχνιδιού" #: glade/PyChess.glade:550 msgid "Load _Recent Game" msgstr "" #: glade/PyChess.glade:558 msgid "Open _Database" msgstr "" #: glade/PyChess.glade:569 lib/pychess/widgets/newGameDialog.py:615 msgid "Setup Position" msgstr "Καθορισμός Θέσης" #: glade/PyChess.glade:579 msgid "Enter Game _Notation" msgstr "" #: glade/PyChess.glade:592 msgid "_Save Game" msgstr "Α_ποθήκευση Παιχνιδιού" #: glade/PyChess.glade:606 msgid "Save Game _As" msgstr "Αποθήκευση Παιχνιδιού Ω_ς" #: glade/PyChess.glade:624 msgid "Share Game" msgstr "" #: glade/PyChess.glade:630 msgid "_Export Position" msgstr "" #: glade/PyChess.glade:644 msgid "_Analyze Game" msgstr "" #: glade/PyChess.glade:678 msgid "Player _Rating" msgstr "_Βαθμολογία Παίκτη" #: glade/PyChess.glade:723 msgid "_Edit" msgstr "" #: glade/PyChess.glade:734 msgid "_Copy PGN" msgstr "" #: glade/PyChess.glade:746 msgid "_Copy FEN" msgstr "" #: glade/PyChess.glade:763 msgid "_Engines" msgstr "" #: glade/PyChess.glade:789 msgid "_Actions" msgstr "Ε_νέργειες" #: glade/PyChess.glade:800 msgid "Offer _Abort" msgstr "" #: glade/PyChess.glade:810 msgid "Offer Ad_journment" msgstr "" #: glade/PyChess.glade:831 msgid "Offer _Pause" msgstr "Πρόσφερετε _Παύση" #: glade/PyChess.glade:847 msgid "Offer _Undo" msgstr "Πρόσφερετε _Αναίρεση" #: glade/PyChess.glade:870 msgid "_Call Flag" msgstr "" #: glade/PyChess.glade:890 msgid "Ask to _Move" msgstr "" #: glade/PyChess.glade:905 msgid "Auto Call _Flag" msgstr "" #: glade/PyChess.glade:918 msgid "_View" msgstr "Προ_βολή" #: glade/PyChess.glade:925 msgid "_Rotate Board" msgstr "Π_εριστροφή Σκακιέρας" #: glade/PyChess.glade:939 msgid "_Fullscreen" msgstr "_Πλήρης οθόνη" #: glade/PyChess.glade:952 msgid "Leave _Fullscreen" msgstr "Έξοδος από _Πλήρη οθόνη" #: glade/PyChess.glade:969 msgid "_Show Sidepanels" msgstr "" #: glade/PyChess.glade:980 msgid "_Log Viewer" msgstr "Προβολέας _Καταγραφών" #: glade/PyChess.glade:997 msgid "_Hint mode" msgstr "Λειτουργία Σ_υμβουλής" #: glade/PyChess.glade:1009 msgid "Sp_y mode" msgstr "Λειτουργία _Κατασκοπίας" #: glade/PyChess.glade:1024 msgid "_Help" msgstr "_Βοήθεια" #: glade/PyChess.glade:1034 msgid "About Chess" msgstr "Σχετικά με το Σκάκι" #: glade/PyChess.glade:1043 msgid "How to Play" msgstr "Πως να Παίξετε" #: glade/PyChess.glade:1052 msgid "Translate PyChess" msgstr "Μετάφραση του PyChess" #: glade/PyChess.glade:1058 msgid "Tip of the Day" msgstr "Συμβουλή της ηΗ" #: glade/PyChess.glade:1153 msgid "Default" msgstr "" #: glade/PyChess.glade:1156 msgid "Knights" msgstr "Ίπποι" #: glade/PyChess.glade:1167 lib/pychess/widgets/preferencesDialog.py:349 msgid "Beep" msgstr "Ηχητικό σήμα" #: glade/PyChess.glade:1170 lib/pychess/widgets/preferencesDialog.py:350 msgid "Select sound file..." msgstr "Επιλογή αρχείου ήχου..." #: glade/PyChess.glade:1173 lib/pychess/widgets/preferencesDialog.py:348 msgid "No sound" msgstr "Χωρίς ήχο" #: glade/PyChess.glade:1180 msgid "Preferences" msgstr "Προτιμήσεις" #: glade/PyChess.glade:1218 msgid "The displayed name of the first human player, e.g., John." msgstr "Το εμφανιζόμενο όνομα του πρώτου ανθρώπινου παίκτη, π.χ. Ιωάννης" #: glade/PyChess.glade:1230 msgid "Name of _first human player:" msgstr "Όνομα του _πρώτου ανθρώπινου παίκτη:" #: glade/PyChess.glade:1259 msgid "The displayed name of the guest player, e.g., Mary." msgstr "Το όνομα του καλεσμένου, π.χ. Μαρία." #: glade/PyChess.glade:1271 msgid "Name of s_econd human player:" msgstr "Όνομα του δ_εύτερου ανθρώπινου παίκτη:" #: glade/PyChess.glade:1307 msgid "_Hide tabs when only one game is open" msgstr "Α_πόκρυψη καρτελών όταν είναι ανοιχτό μόνο ένα παιχνίδι" #: glade/PyChess.glade:1312 msgid "" "If set, this hides the tab in the top of the playing window, when it is not " "needed." msgstr "" #: glade/PyChess.glade:1326 msgid "_Use main app closer [x] to close all games" msgstr "" #: glade/PyChess.glade:1331 msgid "" "If set, clicking on main application window closer first time it closes all " "games." msgstr "" #: glade/PyChess.glade:1345 msgid "Auto _rotate board to current human player" msgstr "" #: glade/PyChess.glade:1350 msgid "" "If set, the board will turn after each move, to show the natural view for " "the current player." msgstr "" #: glade/PyChess.glade:1364 msgid "Auto _promote to queen" msgstr "" #: glade/PyChess.glade:1369 msgid "If set, pawn promotes to queen without promotion dialog selection." msgstr "" #: glade/PyChess.glade:1383 msgid "Face _to Face display mode" msgstr "" #: glade/PyChess.glade:1388 msgid "" "If set, the black pieces will be head down, suitable for playing against " "friends on mobile devices." msgstr "" #: glade/PyChess.glade:1402 msgid "Sho_w cords" msgstr "" #: glade/PyChess.glade:1407 msgid "" "If set, the playing board will display labels and ranks for each chess " "field. These are usable in chess notation." msgstr "" #: glade/PyChess.glade:1421 msgid "Show _captured pieces" msgstr "" #: glade/PyChess.glade:1426 msgid "If set, the captured figurines will be shown next to the board." msgstr "" #: glade/PyChess.glade:1440 msgid "Prefer figures in _notation" msgstr "" #: glade/PyChess.glade:1445 msgid "" "If set, PyChess will use figures to express moved pieces, rather than " "uppercase letters." msgstr "" #: glade/PyChess.glade:1464 msgid "If set, PyChess will colorize suboptimal analyzed moves with red." msgstr "" #: glade/PyChess.glade:1477 msgid "Show elapsed move times" msgstr "" #: glade/PyChess.glade:1482 msgid "If set, the elapsed time that a player used for the move is shown." msgstr "" #: glade/PyChess.glade:1500 msgid "If set, the hint analyzer engine evaluation value is shown." msgstr "" #: glade/PyChess.glade:1526 msgid "General Options" msgstr "" #: glade/PyChess.glade:1560 msgid "F_ull board animation" msgstr "" #: glade/PyChess.glade:1565 msgid "Animate pieces, board rotation and more. Use this on fast machines." msgstr "" #: glade/PyChess.glade:1579 msgid "Only animate _moves" msgstr "" #: glade/PyChess.glade:1584 msgid "Only animate piece moves." msgstr "" #: glade/PyChess.glade:1599 msgid "No _animation" msgstr "Χωρίς _κίνηση" #: glade/PyChess.glade:1604 msgid "Never use animation. Use this on slow machines." msgstr "" #: glade/PyChess.glade:1632 msgid "Animation" msgstr "Κίνηση" #: glade/PyChess.glade:1651 msgid "_General" msgstr "_Γενικά" #: glade/PyChess.glade:1692 msgid "Use opening _book" msgstr "" #: glade/PyChess.glade:1697 msgid "If set, PyChess will suggest best opening moves on hint panel." msgstr "" #: glade/PyChess.glade:1724 msgid "Polyglot book file:" msgstr "" #: glade/PyChess.glade:1768 msgid "Use _local tablebases" msgstr "" #: glade/PyChess.glade:1773 msgid "" "If set, PyChess will show game results for different moves in positions containing 6 or less pieces.\n" "You can download tablebase files from:\n" "http://www.olympuschess.com/egtb/gaviota/" msgstr "" #: glade/PyChess.glade:1803 msgid "Gaviota TB path:" msgstr "" #: glade/PyChess.glade:1843 msgid "Use _online tablebases" msgstr "" #: glade/PyChess.glade:1848 msgid "" "If set, PyChess will show game results for different moves in positions containing 6 or less pieces.\n" "It will search positions from http://www.k4it.de/" msgstr "" #: glade/PyChess.glade:1870 msgid "Opening, endgame" msgstr "" #: glade/PyChess.glade:1904 msgid "Use _analyzer" msgstr "Χρήση _αναλυτή" #: glade/PyChess.glade:1946 msgid "" "The analyzer will run in the background and analyze the game. This is " "necessary for the hint mode to work" msgstr "" #: glade/PyChess.glade:1978 msgid "Use _inverted analyzer" msgstr "" #: glade/PyChess.glade:2020 msgid "" "The inverse analyzer will analyze the game as if your opponent was to move. " "This is necessary for the spy mode to work" msgstr "" #: glade/PyChess.glade:2096 msgid "Analyzing" msgstr "" #: glade/PyChess.glade:2118 msgid "_Hints" msgstr "" #: glade/PyChess.glade:2263 msgid "Uninstall" msgstr "Απεγκατάσταση" #: glade/PyChess.glade:2317 msgid "Ac_tive" msgstr "" #: glade/PyChess.glade:2367 msgid "Installed Sidepanels" msgstr "" #: glade/PyChess.glade:2382 msgid "Side_panels" msgstr "" #: glade/PyChess.glade:2440 msgid "Light Squares :" msgstr "" #: glade/PyChess.glade:2479 msgid "Dark Squares :" msgstr "" #: glade/PyChess.glade:2515 msgid "Reset Default Colours" msgstr "" #: glade/PyChess.glade:2551 msgid "Board Colours" msgstr "" #: glade/PyChess.glade:2610 msgid "Chess Sets" msgstr "" #: glade/PyChess.glade:2634 msgid "Themes" msgstr "Θέματα" #: glade/PyChess.glade:2659 msgid "_Use sounds in PyChess" msgstr "_Χρήση Ήχων στο PyChess" #: glade/PyChess.glade:2982 msgid "A player _checks:" msgstr "" #: glade/PyChess.glade:2997 msgid "A player _moves:" msgstr "" #: glade/PyChess.glade:3010 msgid "Game is _drawn:" msgstr "Το παιχνίδι λήγει _ισόπαλο:" #: glade/PyChess.glade:3025 msgid "Game is _lost:" msgstr "Το παιχνίδι λήγει _χαμένο:" #: glade/PyChess.glade:3040 msgid "Game is _won:" msgstr "Το παιχνίδι λίγει σε _νίκη:" #: glade/PyChess.glade:3055 msgid "A player c_aptures:" msgstr "" #: glade/PyChess.glade:3084 msgid "Game is _set-up:" msgstr "" #: glade/PyChess.glade:3136 msgid "_Observed moves:" msgstr "" #: glade/PyChess.glade:3151 msgid "Observed _ends:" msgstr "" #: glade/PyChess.glade:3265 msgid "Short on _time:" msgstr "" #: glade/PyChess.glade:3317 msgid "_Invalid move:" msgstr "" #: glade/PyChess.glade:3369 msgid "Activate alarm when _remaining sec is:" msgstr "" #: glade/PyChess.glade:3416 msgid "Play Sound When..." msgstr "Αναπαραγωγή Ήχου Όταν..." #: glade/PyChess.glade:3438 msgid "_Sounds" msgstr "" #: glade/PyChess.glade:3463 msgid "_Auto save finished games" msgstr "" #: glade/PyChess.glade:3497 msgid "Save files to:" msgstr "" #: glade/PyChess.glade:3525 msgid "Use name format:" msgstr "" #: glade/PyChess.glade:3569 msgid "Names: #n1, #n2" msgstr "" #: glade/PyChess.glade:3582 msgid "Year, month, day: #y, #m, #d" msgstr "" #: glade/PyChess.glade:3619 msgid "Save elapsed move _times" msgstr "" #: glade/PyChess.glade:3644 msgid "Save analyzing engine _evaluation values" msgstr "" #: glade/PyChess.glade:3669 msgid "Save _own games only" msgstr "" #: glade/PyChess.glade:3698 msgid "Save" msgstr "" #: glade/PyChess.glade:3728 msgid "uci" msgstr "uci" #: glade/PyChess.glade:3731 msgid "xboard" msgstr "xboard" #: glade/PyChess.glade:3739 msgid "Manage engines" msgstr "Διαχείρηση μηχανών" #: glade/PyChess.glade:3837 msgid "Command:" msgstr "Εντολή:" #: glade/PyChess.glade:3851 msgid "Protocol:" msgstr "Πρωτόκολο:" #: glade/PyChess.glade:3865 msgid "Parameters:" msgstr "Παράμετροι:" #: glade/PyChess.glade:3878 msgid "Command line parameters needed by the engine." msgstr "Παράμετροι γραμμής εντολής που χρειάζεται η μηχανή." #: glade/PyChess.glade:3903 msgid "" "Engines use uci or xboard communication protocol to talk to the GUI.\n" "If it can use both you can set here which one you like." msgstr "Οι μηχανες χρησιμοποιούν το uci ή το xboard για να επικοινωνούν με το γραφικό περιβάλλον.\nΑν αυτό μπορεί να χρησιμοιεί αμφότερα, εδώ μπορείτε να ρυθμίσετε εκείνο που επιθυμείτε." #: glade/PyChess.glade:3929 msgid "Working directory:" msgstr "Κατάλογος εργασίας:" #: glade/PyChess.glade:3942 msgid "The directory where the engine will be started from." msgstr "Ο κατάλογος από τον οποίο θα εκκινεί η μηχανή." #: glade/saveGamesDialog.glade:7 msgid "Quit PyChess" msgstr "Έξοδος PyChess" #: glade/saveGamesDialog.glade:24 lib/pychess/widgets/ionest.py:424 msgid "Close _without Saving" msgstr "" #: glade/saveGamesDialog.glade:83 msgid "_Save %d documents" msgstr "_Αποθήκευση %d αρχείων" #: glade/saveGamesDialog.glade:141 msgid "" "There are %d games with unsaved moves. Save changes before " "closing?" msgstr "" #: glade/saveGamesDialog.glade:161 msgid "Select the games you want to save:" msgstr "" #: glade/saveGamesDialog.glade:204 msgid "If you don't save, new changes to your games will be permanently lost." msgstr "" #: glade/taskers.glade:126 msgid "_Opponent:" msgstr "_Αντίπαλος:" #: glade/taskers.glade:154 msgid "_Your Color:" msgstr "_Το Χρώμα Σου" #: glade/taskers.glade:219 msgid "_Start Game" msgstr "_Έναρξη Παρτίδας" #: glade/taskers.glade:338 msgid "Log on as G_uest" msgstr "" #: glade/taskers.glade:410 msgid "Ha_ndle:" msgstr "" #: glade/taskers.glade:469 msgid "_Connect to server" msgstr "" #: glade/tipoftheday.glade:7 msgid "Tip Of The day" msgstr "" #: glade/tipoftheday.glade:62 msgid "Show tips at startup" msgstr "" #: lib/pychess/Main.py:302 msgid "http://en.wikipedia.org/wiki/Chess" msgstr "http://en.wikipedia.org/wiki/Chess" #: lib/pychess/Main.py:305 msgid "http://en.wikipedia.org/wiki/Rules_of_chess" msgstr "http://en.wikipedia.org/wiki/Rules_of_chess" #: lib/pychess/Main.py:370 lib/pychess/widgets/gamenanny.py:80 msgid "Welcome" msgstr "" #: lib/pychess/Database/gamelist.py:40 msgid "Id" msgstr "" #: lib/pychess/Database/gamelist.py:40 msgid "W Elo" msgstr "" #: lib/pychess/Database/gamelist.py:40 msgid "B Elo" msgstr "" #: lib/pychess/Database/gamelist.py:41 msgid "Result" msgstr "" #: lib/pychess/Database/gamelist.py:41 msgid "Event" msgstr "" #: lib/pychess/Database/gamelist.py:41 msgid "Site" msgstr "" #: lib/pychess/Database/gamelist.py:41 msgid "Round" msgstr "" #: lib/pychess/Database/gamelist.py:41 msgid "Date" msgstr "" #: lib/pychess/Database/gamelist.py:41 msgid "ECO" msgstr "" #: lib/pychess/Database/gamelist.py:62 msgid "PyChess Game Database" msgstr "" #: lib/pychess/Database/PgnImport.py:188 #, python-format msgid "The game #%s can't be loaded, because of an error parsing FEN" msgstr "" #: lib/pychess/ic/FICSConnection.py:139 msgid "The connection was broken - got \"end of file\" message" msgstr "" #: lib/pychess/ic/FICSConnection.py:140 #, python-format msgid "'%s' is not a registered name" msgstr "" #: lib/pychess/ic/FICSConnection.py:141 msgid "" "The entered password was invalid.\n" "If you forgot your password, go to http://www.freechess.org/password to request a new one over email." msgstr "" #: lib/pychess/ic/FICSConnection.py:145 #, python-format msgid "Sorry '%s' is already logged in" msgstr "" #: lib/pychess/ic/FICSConnection.py:146 #, python-format msgid "'%s' is a registered name. If it is yours, type the password." msgstr "" #: lib/pychess/ic/FICSConnection.py:147 msgid "" "Due to abuse problems, guest connections have been prevented.\n" "You can still register on http://www.freechess.org" msgstr "" #: lib/pychess/ic/FICSConnection.py:166 msgid "Connecting to server" msgstr "" #: lib/pychess/ic/FICSConnection.py:181 msgid "Logging on to server" msgstr "" #: lib/pychess/ic/FICSConnection.py:239 msgid "Setting up environment" msgstr "" #: lib/pychess/ic/FICSObjects.py:35 lib/pychess/ic/FICSObjects.py:47 #, python-format msgid "%(player)s is %(status)s" msgstr "" #: lib/pychess/ic/FICSObjects.py:46 msgid "not playing" msgstr "" #: lib/pychess/ic/FICSObjects.py:54 lib/pychess/ic/ICLounge.py:1136 #: lib/pychess/ic/ICLounge.py:2209 lib/pychess/ic/__init__.py:98 #: lib/pychess/widgets/newGameDialog.py:153 msgid "Blitz" msgstr "" #: lib/pychess/ic/FICSObjects.py:58 lib/pychess/ic/ICLounge.py:1137 #: lib/pychess/ic/ICLounge.py:2209 lib/pychess/ic/__init__.py:100 msgid "Lightning" msgstr "" #: lib/pychess/ic/FICSObjects.py:60 lib/pychess/Variants/atomic.py:15 msgid "Atomic" msgstr "" #: lib/pychess/ic/FICSObjects.py:62 lib/pychess/Variants/bughouse.py:9 msgid "Bughouse" msgstr "" #: lib/pychess/ic/FICSObjects.py:64 lib/pychess/Variants/crazyhouse.py:9 msgid "Crazyhouse" msgstr "" #: lib/pychess/ic/FICSObjects.py:66 lib/pychess/Variants/losers.py:9 msgid "Losers" msgstr "" #: lib/pychess/ic/FICSObjects.py:68 lib/pychess/Variants/suicide.py:12 msgid "Suicide" msgstr "" #: lib/pychess/ic/FICSObjects.py:70 lib/pychess/ic/__init__.py:129 msgid "Wild" msgstr "" #: lib/pychess/ic/FICSObjects.py:117 msgid "Online" msgstr "" #: lib/pychess/ic/FICSObjects.py:118 lib/pychess/ic/FICSObjects.py:143 msgid "Offline" msgstr "" #: lib/pychess/ic/FICSObjects.py:133 msgid "Available" msgstr "" #: lib/pychess/ic/FICSObjects.py:135 msgid "Playing" msgstr "" #: lib/pychess/ic/FICSObjects.py:141 msgid "Idle" msgstr "" #: lib/pychess/ic/FICSObjects.py:145 msgid "Examining" msgstr "" #: lib/pychess/ic/FICSObjects.py:147 msgid "Not Available" msgstr "" #: lib/pychess/ic/FICSObjects.py:149 msgid "Running Simul Match" msgstr "" #: lib/pychess/ic/FICSObjects.py:151 msgid "In Tournament" msgstr "" #: lib/pychess/ic/FICSObjects.py:308 lib/pychess/ic/FICSObjects.py:492 #: lib/pychess/ic/ICLounge.py:2278 msgid "Unrated" msgstr "" #: lib/pychess/ic/FICSObjects.py:491 lib/pychess/ic/ICLounge.py:670 #: lib/pychess/ic/ICLounge.py:1358 lib/pychess/ic/ICLounge.py:1558 #: lib/pychess/ic/ICLounge.py:2113 msgid "Rated" msgstr "" #: lib/pychess/ic/FICSObjects.py:498 lib/pychess/ic/ICLounge.py:2098 #, python-format msgid "%d min" msgstr "" #: lib/pychess/ic/FICSObjects.py:500 #, python-format msgid " + %d sec" msgstr "" #: lib/pychess/ic/FICSObjects.py:517 #, python-format msgid "%(player)s plays %(color)s" msgstr "" #: lib/pychess/ic/FICSObjects.py:519 lib/pychess/ic/ICLounge.py:909 msgid "white" msgstr "" #: lib/pychess/ic/FICSObjects.py:519 lib/pychess/ic/ICLounge.py:909 msgid "black" msgstr "" #: lib/pychess/ic/FICSObjects.py:565 msgid "This is a continuation of an adjourned match" msgstr "" #: lib/pychess/ic/FICSObjects.py:654 msgid "Opponent Rating" msgstr "" #: lib/pychess/ic/FICSObjects.py:656 msgid "Manual Accept" msgstr "" #: lib/pychess/ic/FICSObjects.py:810 msgid "Private" msgstr "" #: lib/pychess/ic/FICSObjects.py:930 lib/pychess/ic/ICLounge.py:527 #: lib/pychess/Savers/epd.py:139 msgid "Unknown" msgstr "" #: lib/pychess/ic/ICLogon.py:159 lib/pychess/ic/ICLogon.py:165 msgid "Connection Error" msgstr "" #: lib/pychess/ic/ICLogon.py:161 msgid "Log on Error" msgstr "" #: lib/pychess/ic/ICLogon.py:163 msgid "Connection was closed" msgstr "" #: lib/pychess/ic/ICLogon.py:169 msgid "Address Error" msgstr "" #: lib/pychess/ic/ICLogon.py:172 msgid "Auto-logout" msgstr "" #: lib/pychess/ic/ICLogon.py:173 msgid "You have been logged out because you were idle more than 60 minutes" msgstr "" #: lib/pychess/ic/ICLounge.py:222 msgid "You have to set kibitz on to see bot messages here." msgstr "" #: lib/pychess/ic/ICLounge.py:241 msgid "" "You may only have 3 outstanding seeks at the same time. If you want to add a" " new seek you must clear your currently active seeks. Clear your seeks?" msgstr "" #: lib/pychess/ic/ICLounge.py:258 msgid "You can't touch this! You are examining a game." msgstr "" #: lib/pychess/ic/ICLounge.py:270 msgid " has declined your offer for a match" msgstr "" #: lib/pychess/ic/ICLounge.py:283 msgid " is censoring you" msgstr "" #: lib/pychess/ic/ICLounge.py:296 msgid " noplay listing you" msgstr "" #: lib/pychess/ic/ICLounge.py:311 msgid " uses a formula not fitting your match request:" msgstr "" #: lib/pychess/ic/ICLounge.py:325 msgid "to manual accept" msgstr "" #: lib/pychess/ic/ICLounge.py:327 msgid "to automatic accept" msgstr "" #: lib/pychess/ic/ICLounge.py:329 msgid "rating range now" msgstr "" #: lib/pychess/ic/ICLounge.py:330 msgid "Seek updated" msgstr "" #: lib/pychess/ic/ICLounge.py:342 msgid "Your seeks have been removed" msgstr "" #: lib/pychess/ic/ICLounge.py:363 msgid " has arrived" msgstr "" #: lib/pychess/ic/ICLounge.py:370 msgid " has departed" msgstr "" #: lib/pychess/ic/ICLounge.py:374 msgid " is present" msgstr "" #: lib/pychess/ic/ICLounge.py:391 sidepanel/chatPanel.py:17 msgid "Chat" msgstr "Συζήτηση" #: lib/pychess/ic/ICLounge.py:472 sidepanel/bookPanel.py:366 msgid "Win" msgstr "" #: lib/pychess/ic/ICLounge.py:472 sidepanel/bookPanel.py:360 msgid "Draw" msgstr "" #: lib/pychess/ic/ICLounge.py:472 sidepanel/bookPanel.py:363 msgid "Loss" msgstr "" #: lib/pychess/ic/ICLounge.py:482 msgid "" "On FICS, your \"Wild\" rating encompasses all of the following variants at " "all time controls:\n" msgstr "" #: lib/pychess/ic/ICLounge.py:494 msgid "Sanctions" msgstr "" #: lib/pychess/ic/ICLounge.py:499 msgid "Email" msgstr "Ηλεκτρονικό Ταχυδρομείο" #: lib/pychess/ic/ICLounge.py:504 msgid "Spent" msgstr "" #: lib/pychess/ic/ICLounge.py:506 msgid "online in total" msgstr "" #: lib/pychess/ic/ICLounge.py:512 msgid "Ping" msgstr "" #: lib/pychess/ic/ICLounge.py:517 msgid "Connecting" msgstr "" #: lib/pychess/ic/ICLounge.py:544 msgid "" "You are currently logged in as a guest.\n" "A guest can't play rated games and therefore isn't able to play as many of the types of matches offered as a registered user. To register an account, go to http://www.freechess.org/Register/index.html." msgstr "" #: lib/pychess/ic/ICLounge.py:669 lib/pychess/ic/ICLounge.py:1136 msgid "Name" msgstr "Όνομα" #: lib/pychess/ic/ICLounge.py:670 lib/pychess/ic/ICLounge.py:1358 #: lib/pychess/ic/ICLounge.py:1558 msgid "Type" msgstr "Τύπος" #: lib/pychess/ic/ICLounge.py:670 lib/pychess/ic/ICLounge.py:1558 msgid "Clock" msgstr "Ρολόι" #: lib/pychess/ic/ICLounge.py:726 lib/pychess/ic/ICLounge.py:923 #: lib/pychess/Players/Human.py:250 msgid "Accept" msgstr "" #: lib/pychess/ic/ICLounge.py:728 msgid "Assess" msgstr "" #: lib/pychess/ic/ICLounge.py:734 msgid "Archived" msgstr "" #: lib/pychess/ic/ICLounge.py:848 #, python-format msgid "Active seeks: %d" msgstr "" #: lib/pychess/ic/ICLounge.py:897 #, python-format msgid "" " would like to resume your adjourned %(time)s %(gametype)s " "game." msgstr "" #: lib/pychess/ic/ICLounge.py:902 #, python-format msgid "" " challenges you to a %(time)s %(rated)s %(gametype)s game" msgstr "" #: lib/pychess/ic/ICLounge.py:907 #, python-format msgid " where %(player)s plays %(color)s." msgstr "" #: lib/pychess/ic/ICLounge.py:924 lib/pychess/Players/Human.py:251 msgid "Decline" msgstr "" #: lib/pychess/ic/ICLounge.py:1065 msgid " min" msgstr " λεπτ" #: lib/pychess/ic/ICLounge.py:1137 msgid "Status" msgstr "" #: lib/pychess/ic/ICLounge.py:1203 lib/pychess/ic/ICLounge.py:1233 #, python-format msgid "Players: %d" msgstr "" #: lib/pychess/ic/ICLounge.py:1469 #, python-format msgid "Games running: %d" msgstr "" #: lib/pychess/ic/ICLounge.py:1559 msgid "Date/Time" msgstr "Ημερομηνία/Ώρα" #: lib/pychess/ic/ICLounge.py:1614 #, python-format msgid "" " with whom you have an adjourned %(timecontrol)s %(gametype)s " "game is online." msgstr "" #: lib/pychess/ic/ICLounge.py:1635 msgid "Request Continuation" msgstr "" #: lib/pychess/ic/ICLounge.py:1637 msgid "Examine Adjourned Game" msgstr "" #: lib/pychess/ic/ICLounge.py:1965 msgid "" "The chain button is disabled because you are logged in as a guest. Guests " "can't establish ratings, and the chain button's state has no effect when " "there is no rating to which to tie \"Opponent Strength\" to" msgstr "" #: lib/pychess/ic/ICLounge.py:2006 msgid "Challenge: " msgstr "" #: lib/pychess/ic/ICLounge.py:2044 msgid "If set you can refuse players accepting your seek" msgstr "" #: lib/pychess/ic/ICLounge.py:2048 lib/pychess/ic/ICLounge.py:2051 msgid "This option is not applicable because you're challenging a player" msgstr "" #: lib/pychess/ic/ICLounge.py:2064 msgid "Edit Seek: " msgstr "" #: lib/pychess/ic/ICLounge.py:2095 #, python-format msgid "%(minutes)d min + %(gain)d sec/move" msgstr "" #: lib/pychess/ic/ICLounge.py:2116 msgid "Manual" msgstr "" #: lib/pychess/ic/ICLounge.py:2256 msgid "Any strength" msgstr "" #: lib/pychess/ic/ICLounge.py:2308 msgid "You can't play rated games because you are logged in as a guest" msgstr "" #: lib/pychess/ic/ICLounge.py:2312 msgid "You can't play rated games because \"Untimed\" is checked, " msgstr "" #: lib/pychess/ic/ICLounge.py:2313 msgid "and on FICS, untimed games can't be rated" msgstr "" #: lib/pychess/ic/ICLounge.py:2317 msgid "This option is not available because you're challenging a guest, " msgstr "" #: lib/pychess/ic/ICLounge.py:2318 msgid "and guests can't play rated games" msgstr "" #: lib/pychess/ic/ICLounge.py:2332 lib/pychess/Variants/shuffle.py:16 #: lib/pychess/widgets/newGameDialog.py:266 msgid "Shuffle" msgstr "" #: lib/pychess/ic/ICLounge.py:2333 lib/pychess/widgets/newGameDialog.py:267 msgid "Other (standard rules)" msgstr "" #: lib/pychess/ic/ICLounge.py:2334 lib/pychess/widgets/newGameDialog.py:268 msgid "Other (non standard rules)" msgstr "" #: lib/pychess/ic/ICLounge.py:2421 msgid "You can't select a variant because \"Untimed\" is checked, " msgstr "" #: lib/pychess/ic/ICLounge.py:2422 msgid "and on FICS, untimed games have to be normal chess rules" msgstr "" #: lib/pychess/ic/ICLounge.py:2454 msgid "Change Tolerance" msgstr "" #: lib/pychess/ic/__init__.py:102 msgid "Examined" msgstr "" #: lib/pychess/ic/__init__.py:103 msgid "Other" msgstr "" #: lib/pychess/ic/__init__.py:182 msgid "Administrator" msgstr "" #: lib/pychess/ic/__init__.py:182 msgid "Blindfold Account" msgstr "" #: lib/pychess/ic/__init__.py:182 msgid "Computer" msgstr "" #: lib/pychess/ic/__init__.py:183 msgid "Team Account" msgstr "Λογαριασμός Ομάδας" #: lib/pychess/ic/__init__.py:183 msgid "Unregistered" msgstr "" #: lib/pychess/ic/__init__.py:183 msgid "Chess Advisor" msgstr "" #: lib/pychess/ic/__init__.py:184 msgid "Service Representative" msgstr "" #: lib/pychess/ic/__init__.py:184 msgid "Tournament Director" msgstr "" #: lib/pychess/ic/__init__.py:184 msgid "Mamer Manager" msgstr "" #: lib/pychess/ic/__init__.py:185 msgid "Grand Master" msgstr "" #: lib/pychess/ic/__init__.py:185 msgid "International Master" msgstr "" #: lib/pychess/ic/__init__.py:185 msgid "FIDE Master" msgstr "" #: lib/pychess/ic/__init__.py:186 msgid "Woman Grand Master" msgstr "" #: lib/pychess/ic/__init__.py:186 msgid "Woman International Master" msgstr "" #: lib/pychess/ic/__init__.py:186 msgid "Woman FIDE Master" msgstr "" #: lib/pychess/ic/__init__.py:187 msgid "Dummy Account" msgstr "" #: lib/pychess/ic/__init__.py:191 msgid "*" msgstr "" #: lib/pychess/ic/__init__.py:191 lib/pychess/Utils/repr.py:14 msgid "B" msgstr "" #: lib/pychess/ic/__init__.py:191 msgid "C" msgstr "" #: lib/pychess/ic/__init__.py:192 msgid "T" msgstr "" #: lib/pychess/ic/__init__.py:192 msgid "U" msgstr "" #: lib/pychess/ic/__init__.py:192 msgid "CA" msgstr "" #: lib/pychess/ic/__init__.py:193 msgid "SR" msgstr "" #: lib/pychess/ic/__init__.py:193 msgid "TD" msgstr "" #: lib/pychess/ic/__init__.py:193 msgid "TM" msgstr "" #: lib/pychess/ic/__init__.py:194 msgid "GM" msgstr "" #: lib/pychess/ic/__init__.py:194 msgid "IM" msgstr "" #: lib/pychess/ic/__init__.py:194 msgid "FM" msgstr "" #: lib/pychess/ic/__init__.py:195 msgid "WGM" msgstr "" #: lib/pychess/ic/__init__.py:195 msgid "WIM" msgstr "" #: lib/pychess/ic/__init__.py:195 msgid "WFM" msgstr "" #: lib/pychess/ic/__init__.py:195 msgid "D" msgstr "" #: lib/pychess/ic/__init__.py:195 msgid "H" msgstr "" #: lib/pychess/ic/__init__.py:195 msgid "CM" msgstr "" #: lib/pychess/ic/__init__.py:195 msgid "FA" msgstr "" #: lib/pychess/ic/__init__.py:195 msgid "NM" msgstr "" #: lib/pychess/Players/CECPEngine.py:857 #, python-format msgid "The engine %s reports an error:" msgstr "" #: lib/pychess/Players/Human.py:20 msgid "Your opponent has offered you a draw." msgstr "" #: lib/pychess/Players/Human.py:21 msgid "" "Your opponent has offered you a draw. If you accept this offer, the game " "will end with a score of 1/2 - 1/2." msgstr "" #: lib/pychess/Players/Human.py:23 msgid "Your opponent wants to abort the game." msgstr "" #: lib/pychess/Players/Human.py:24 msgid "" "Your opponent has asked that the game be aborted. If you accept this offer, " "the game will end with no rating change." msgstr "" #: lib/pychess/Players/Human.py:26 msgid "Your opponent wants to adjourn the game." msgstr "" #: lib/pychess/Players/Human.py:27 msgid "" "Your opponent has asked that the game be adjourned. If you accept this " "offer, the game will be adjourned and you can resume it later (when your " "opponent is online and both players agree to resume)." msgstr "" #: lib/pychess/Players/Human.py:29 #, python-format msgid "Your opponent wants to undo %s move(s)." msgstr "" #: lib/pychess/Players/Human.py:30 #, python-format msgid "" "Your opponent has asked that the last %s move(s) be undone. If you accept " "this offer, the game will continue from the earlier position." msgstr "" #: lib/pychess/Players/Human.py:32 msgid "Your opponent wants to pause the game." msgstr "" #: lib/pychess/Players/Human.py:33 msgid "" "Your opponent has asked that the game be paused. If you accept this offer, " "the game clock will be paused until both players agree to resume the game." msgstr "" #: lib/pychess/Players/Human.py:35 msgid "Your opponent wants to resume the game." msgstr "" #: lib/pychess/Players/Human.py:36 msgid "" "Your opponent has asked that the game be resumed. If you accept this offer, " "the game clock will continue from where it was paused." msgstr "" #: lib/pychess/Players/Human.py:40 msgid "The resignation" msgstr "" #: lib/pychess/Players/Human.py:41 msgid "The flag call" msgstr "" #: lib/pychess/Players/Human.py:42 msgid "The draw offer" msgstr "" #: lib/pychess/Players/Human.py:43 msgid "The abort offer" msgstr "" #: lib/pychess/Players/Human.py:44 msgid "The adjourn offer" msgstr "" #: lib/pychess/Players/Human.py:45 msgid "The pause offer" msgstr "" #: lib/pychess/Players/Human.py:46 msgid "The resume offer" msgstr "" #: lib/pychess/Players/Human.py:47 msgid "The offer to switch sides" msgstr "" #: lib/pychess/Players/Human.py:48 msgid "The takeback offer" msgstr "" #: lib/pychess/Players/Human.py:52 msgid "resign" msgstr "" #: lib/pychess/Players/Human.py:53 msgid "call your opponents flag" msgstr "" #: lib/pychess/Players/Human.py:54 msgid "offer a draw" msgstr "" #: lib/pychess/Players/Human.py:55 msgid "offer an abort" msgstr "" #: lib/pychess/Players/Human.py:56 msgid "offer to adjourn" msgstr "" #: lib/pychess/Players/Human.py:57 msgid "offer a pause" msgstr "" #: lib/pychess/Players/Human.py:58 msgid "offer to resume" msgstr "" #: lib/pychess/Players/Human.py:59 msgid "offer to switch sides" msgstr "" #: lib/pychess/Players/Human.py:60 msgid "offer a takeback" msgstr "" #: lib/pychess/Players/Human.py:61 msgid "ask your opponent to move" msgstr "" #: lib/pychess/Players/Human.py:66 msgid "Your opponent is not out of time." msgstr "" #: lib/pychess/Players/Human.py:68 msgid "The clock hasn't been started yet." msgstr "" #: lib/pychess/Players/Human.py:70 msgid "You can't switch colors during the game." msgstr "" #: lib/pychess/Players/Human.py:72 msgid "You have tried to undo too many moves." msgstr "" #: lib/pychess/Players/Human.py:180 msgid "Your opponent asks you to hurry!" msgstr "" #: lib/pychess/Players/Human.py:181 msgid "" "Generally this means nothing, as the game is time-based, but if you want to " "please your opponent, perhaps you should get going." msgstr "" #: lib/pychess/Players/Human.py:259 #, python-format msgid "%s was declined by your opponent" msgstr "" #: lib/pychess/Players/Human.py:260 #, python-format msgid "Resend %s?" msgstr "" #: lib/pychess/Players/Human.py:267 msgid "Resend" msgstr "" #: lib/pychess/Players/Human.py:275 #, python-format msgid "%s was withdrawn by your opponent" msgstr "" #: lib/pychess/Players/Human.py:276 msgid "Your opponent seems to have changed their mind." msgstr "" #: lib/pychess/Players/Human.py:290 #, python-format msgid "Unable to accept %s" msgstr "" #: lib/pychess/Players/Human.py:291 msgid "Probably because it has been withdrawn." msgstr "" #: lib/pychess/Players/Human.py:298 #, python-format msgid "%s returns an error" msgstr "" #: lib/pychess/Savers/chessalpha2.py:12 msgid "Chess Alpha 2 Diagram" msgstr "" #: lib/pychess/Savers/chesspastebin.py:39 msgid "Game shared at " msgstr "" #: lib/pychess/Savers/chesspastebin.py:41 msgid "(Link is available on clipboard.)" msgstr "" #: lib/pychess/Savers/database.py:19 msgid "PyChess database" msgstr "" #: lib/pychess/Savers/epd.py:12 msgid "Chess Position" msgstr "" #: lib/pychess/Savers/fen.py:12 msgid "Simple Chess Position" msgstr "" #: lib/pychess/Savers/fen.py:44 lib/pychess/Savers/pgn.py:329 msgid "The game can't be loaded, because of an error parsing FEN" msgstr "" #: lib/pychess/Savers/pgnbase.py:100 #, python-format msgid "" "The game can't be read to end, because of an error parsing move %(moveno)s " "'%(notation)s'." msgstr "" #: lib/pychess/Savers/pgnbase.py:102 #, python-format msgid "The move failed because %s." msgstr "" #: lib/pychess/Savers/pgnbase.py:110 #, python-format msgid "Error parsing move %(moveno)s %(mstr)s" msgstr "" #: lib/pychess/Savers/pgn.py:28 msgid "Chess Game" msgstr "Παρτίδα Σκακιού" #: lib/pychess/Savers/pgn.py:362 msgid "Invalid move." msgstr "" #: lib/pychess/Savers/png.py:15 msgid "Png image" msgstr "" #: lib/pychess/System/ping.py:31 msgid "Destination Host Unreachable" msgstr "" #: lib/pychess/System/ping.py:74 msgid "Died" msgstr "" #: lib/pychess/Utils/GameModel.py:147 msgid "Local Event" msgstr "Τοπικό Γεγονός" #: lib/pychess/Utils/GameModel.py:148 msgid "Local Site" msgstr "" #: lib/pychess/Utils/repr.py:12 msgid "Pawn" msgstr "Πιόνι" #: lib/pychess/Utils/repr.py:14 msgid "P" msgstr "Πι" #: lib/pychess/Utils/repr.py:14 msgid "N" msgstr "Ι" #: lib/pychess/Utils/repr.py:14 msgid "R" msgstr "Πυ" #: lib/pychess/Utils/repr.py:14 msgid "Q" msgstr "Β" #: lib/pychess/Utils/repr.py:14 msgid "K" msgstr "Πα" #: lib/pychess/Utils/repr.py:17 msgid "The game ended in a draw" msgstr "Το παιχνίδι έληξε σε ισοπαλία" #: lib/pychess/Utils/repr.py:18 #, python-format msgid "%(white)s won the game" msgstr "" #: lib/pychess/Utils/repr.py:19 #, python-format msgid "%(black)s won the game" msgstr "" #: lib/pychess/Utils/repr.py:20 msgid "The game has been killed" msgstr "" #: lib/pychess/Utils/repr.py:21 msgid "The game has been adjourned" msgstr "" #: lib/pychess/Utils/repr.py:22 msgid "The game has been aborted" msgstr "" #: lib/pychess/Utils/repr.py:26 msgid "Because neither player has sufficient material to mate" msgstr "" #: lib/pychess/Utils/repr.py:27 msgid "Because the same position was repeated three times in a row" msgstr "" #: lib/pychess/Utils/repr.py:28 msgid "Because the last 50 moves brought nothing new" msgstr "" #: lib/pychess/Utils/repr.py:29 msgid "Because both players ran out of time" msgstr "" #: lib/pychess/Utils/repr.py:30 #, python-format msgid "Because %(mover)s stalemated" msgstr "" #: lib/pychess/Utils/repr.py:31 msgid "Because both players agreed to a draw" msgstr "" #: lib/pychess/Utils/repr.py:32 lib/pychess/Utils/repr.py:42 msgid "Because of adjudication by an admin" msgstr "" #: lib/pychess/Utils/repr.py:33 msgid "Because the game exceed the max length" msgstr "" #: lib/pychess/Utils/repr.py:34 #, python-format msgid "" "Because %(white)s ran out of time and %(black)s has insufficient material to" " mate" msgstr "" #: lib/pychess/Utils/repr.py:35 #, python-format msgid "" "Because %(black)s ran out of time and %(white)s has insufficient material to" " mate" msgstr "" #: lib/pychess/Utils/repr.py:36 msgid "Because both players have the same amount of pieces" msgstr "" #: lib/pychess/Utils/repr.py:38 #, python-format msgid "Because %(loser)s resigned" msgstr "" #: lib/pychess/Utils/repr.py:39 #, python-format msgid "Because %(loser)s ran out of time" msgstr "" #: lib/pychess/Utils/repr.py:40 #, python-format msgid "Because %(loser)s was checkmated" msgstr "" #: lib/pychess/Utils/repr.py:41 #, python-format msgid "Because %(loser)s disconnected" msgstr "" #: lib/pychess/Utils/repr.py:43 #, python-format msgid "Because %(winner)s has fewer pieces" msgstr "" #: lib/pychess/Utils/repr.py:44 #, python-format msgid "Because %(winner)s lost all pieces" msgstr "" #: lib/pychess/Utils/repr.py:45 #, python-format msgid "Because %(loser)s king exploded" msgstr "" #: lib/pychess/Utils/repr.py:46 #, python-format msgid "Because %(winner)s king reached the center" msgstr "" #: lib/pychess/Utils/repr.py:47 #, python-format msgid "Because %(winner)s was giving check 3 times" msgstr "" #: lib/pychess/Utils/repr.py:49 msgid "Because a player lost connection" msgstr "" #: lib/pychess/Utils/repr.py:50 msgid "Because both players agreed to an adjournment" msgstr "" #: lib/pychess/Utils/repr.py:51 msgid "Because the server was shut down" msgstr "" #: lib/pychess/Utils/repr.py:52 msgid "" "Because a player lost connection and the other player requested adjournment" msgstr "" #: lib/pychess/Utils/repr.py:53 #, python-format msgid "" "Because %(black)s lost connection to the server and %(white)s requested " "adjournment" msgstr "" #: lib/pychess/Utils/repr.py:54 #, python-format msgid "" "Because %(white)s lost connection to the server and %(black)s requested " "adjournment" msgstr "" #: lib/pychess/Utils/repr.py:55 #, python-format msgid "Because %(white)s lost connection to the server" msgstr "" #: lib/pychess/Utils/repr.py:56 #, python-format msgid "Because %(black)s lost connection to the server" msgstr "" #: lib/pychess/Utils/repr.py:58 msgid "Because of adjudication by an admin. No rating changes have occurred." msgstr "" #: lib/pychess/Utils/repr.py:59 msgid "" "Because both players agreed to abort the game. No rating changes have " "occurred." msgstr "" #: lib/pychess/Utils/repr.py:60 msgid "Because of courtesy by a player. No rating changes have occurred." msgstr "" #: lib/pychess/Utils/repr.py:61 msgid "" "Because a player aborted the game. Either player can abort the game without " "the other's consent before the second move. No rating changes have occurred." msgstr "" #: lib/pychess/Utils/repr.py:62 msgid "" "Because a player disconnected and there are too few moves to warrant " "adjournment. No rating changes have occurred." msgstr "" #: lib/pychess/Utils/repr.py:63 msgid "Because the server was shut down. No rating changes have occurred." msgstr "" #: lib/pychess/Utils/repr.py:65 #, python-format msgid "Because the %(white)s engine died" msgstr "" #: lib/pychess/Utils/repr.py:66 #, python-format msgid "Because the %(black)s engine died" msgstr "" #: lib/pychess/Utils/repr.py:67 msgid "Because the connection to the server was lost" msgstr "" #: lib/pychess/Utils/repr.py:68 msgid "The reason is unknown" msgstr "Ο λόγος είναι άγνωστος" #: lib/pychess/Utils/TimeModel.py:229 msgid "min" msgstr "λεπτ" #: lib/pychess/Utils/TimeModel.py:231 msgid "sec" msgstr "δευτ" #: lib/pychess/Variants/asean.py:12 msgid "" "ASEAN: http://www.ncf-" "phil.org/downloadables/2014/May/Asean_chess/Laws_of_ASEAN_Chess_2011_Nov_26.doc" msgstr "" #: lib/pychess/Variants/asean.py:13 msgid "ASEAN" msgstr "" #: lib/pychess/Variants/asean.py:33 msgid "Makruk: http://en.wikipedia.org/wiki/Makruk" msgstr "" #: lib/pychess/Variants/asean.py:34 msgid "Makruk" msgstr "" #: lib/pychess/Variants/asean.py:60 msgid "Cambodian: http://www.khmerinstitute.org/culture/ok.html" msgstr "" #: lib/pychess/Variants/asean.py:61 msgid "Cambodian" msgstr "" #: lib/pychess/Variants/asean.py:86 msgid "" "Ai-Wok: http://www.open-" "aurec.com/wbforum/viewtopic.php?p=199364&sid=20963a1de2c164050de019e5ed6bf7c4#p199364" msgstr "" #: lib/pychess/Variants/asean.py:87 msgid "Ai-Wok" msgstr "" #: lib/pychess/Variants/asean.py:111 msgid "Sittuyin: http://en.wikipedia.org/wiki/Sittuyin" msgstr "" #: lib/pychess/Variants/asean.py:112 msgid "Sittuyin" msgstr "" #: lib/pychess/Variants/asymmetricrandom.py:12 msgid "" "FICS wild/4: http://www.freechess.org/Help/HelpFiles/wild.html\n" "* Randomly chosen pieces (two queens or three rooks possible)\n" "* Exactly one king of each color\n" "* Pieces placed randomly behind the pawns, SUBJECT TO THE CONSTRAINT THAT THE BISHOPS ARE BALANCED\n" "* No castling\n" "* Black's arrangement DOES NOT mirrors white's" msgstr "" #: lib/pychess/Variants/asymmetricrandom.py:18 msgid "Asymmetric Random" msgstr "Τυχαίο Ασυμμετρικό" #: lib/pychess/Variants/atomic.py:14 msgid "FICS atomic: http://www.freechess.org/Help/HelpFiles/atomic.html" msgstr "" #: lib/pychess/Variants/blindfold.py:7 msgid "" "Classic chess rules with hidden figurines\n" "http://en.wikipedia.org/wiki/Blindfold_chess" msgstr "" #: lib/pychess/Variants/blindfold.py:9 #: lib/pychess/widgets/newGameDialog.py:264 msgid "Blindfold" msgstr "" #: lib/pychess/Variants/blindfold.py:18 msgid "" "Classic chess rules with hidden pawns\n" "http://en.wikipedia.org/wiki/Blindfold_chess" msgstr "" #: lib/pychess/Variants/blindfold.py:20 msgid "Hidden pawns" msgstr "" #: lib/pychess/Variants/blindfold.py:29 msgid "" "Classic chess rules with hidden pieces\n" "http://en.wikipedia.org/wiki/Blindfold_chess" msgstr "" #: lib/pychess/Variants/blindfold.py:31 msgid "Hidden pieces" msgstr "" #: lib/pychess/Variants/blindfold.py:40 msgid "" "Classic chess rules with all pieces white\n" "http://en.wikipedia.org/wiki/Blindfold_chess" msgstr "" #: lib/pychess/Variants/blindfold.py:42 msgid "All white" msgstr "Ολόλευκο" #: lib/pychess/Variants/bughouse.py:8 msgid "FICS bughouse: http://www.freechess.org/Help/HelpFiles/bughouse.html" msgstr "" #: lib/pychess/Variants/corner.py:12 msgid "" "http://brainking.com/en/GameRules?tp=2\n" "* Placement of the pieces on the 1st and 8th row are randomized\n" "* The king is in the right hand corner\n" "* Bishops must start on opposite color squares\n" "* Black's starting position is obtained by rotating white's position 180 degrees around the board's center\n" "* No castling" msgstr "" #: lib/pychess/Variants/corner.py:18 msgid "Corner" msgstr "Γωνία" #: lib/pychess/Variants/crazyhouse.py:8 msgid "" "FICS crazyhouse: http://www.freechess.org/Help/HelpFiles/crazyhouse.html" msgstr "" #: lib/pychess/Variants/euroshogi.py:9 msgid "EuroShogi: http://en.wikipedia.org/wiki/EuroShogi" msgstr "" #: lib/pychess/Variants/euroshogi.py:10 msgid "EuroShogi" msgstr "" #: lib/pychess/Variants/fischerandom.py:18 msgid "" "http://en.wikipedia.org/wiki/Chess960\n" "FICS wild/fr: http://www.freechess.org/Help/HelpFiles/wild.html" msgstr "" #: lib/pychess/Variants/fischerandom.py:20 msgid "Fischer Random" msgstr "Τυχαίο Φίσερ" #: lib/pychess/Variants/kingofthehill.py:8 msgid "" "Bringing your king legally to the center (e4, d4, e5, d5) instantly wins the game!\n" "Normal rules apply in other cases and checkmate also ends the game." msgstr "" #: lib/pychess/Variants/kingofthehill.py:10 msgid "King of the hill" msgstr "" #: lib/pychess/Variants/knightodds.py:8 msgid "One player starts with one less knight piece" msgstr "" #: lib/pychess/Variants/knightodds.py:9 msgid "Knight odds" msgstr "" #: lib/pychess/Variants/losers.py:8 msgid "FICS losers: http://www.freechess.org/Help/HelpFiles/losers_chess.html" msgstr "" #: lib/pychess/Variants/normal.py:4 msgid "" "Classic chess rules\n" "http://en.wikipedia.org/wiki/Chess" msgstr "" #: lib/pychess/Variants/normal.py:6 lib/pychess/widgets/newGameDialog.py:157 msgid "Normal" msgstr "Κανονικό" #: lib/pychess/Variants/pawnodds.py:8 msgid "One player starts with one less pawn piece" msgstr "" #: lib/pychess/Variants/pawnodds.py:9 msgid "Pawn odds" msgstr "" #: lib/pychess/Variants/pawnspassed.py:11 msgid "" "FICS wild/8a: http://www.freechess.org/Help/HelpFiles/wild.html\n" "White pawns start on 5th rank and black pawns on the 4th rank" msgstr "" #: lib/pychess/Variants/pawnspassed.py:13 msgid "Pawns Passed" msgstr "" #: lib/pychess/Variants/pawnspushed.py:10 msgid "" "FICS wild/8: http://www.freechess.org/Help/HelpFiles/wild.html\n" "Pawns start on 4th and 5th ranks rather than 2nd and 7th" msgstr "" #: lib/pychess/Variants/pawnspushed.py:12 msgid "Pawns Pushed" msgstr "" #: lib/pychess/Variants/queenodds.py:8 msgid "One player starts with one less queen piece" msgstr "" #: lib/pychess/Variants/queenodds.py:9 msgid "Queen odds" msgstr "" #: lib/pychess/Variants/randomchess.py:11 msgid "" "FICS wild/3: http://www.freechess.org/Help/HelpFiles/wild.html\n" "* Randomly chosen pieces (two queens or three rooks possible)\n" "* Exactly one king of each color\n" "* Pieces placed randomly behind the pawns\n" "* No castling\n" "* Black's arrangement mirrors white's" msgstr "" #: lib/pychess/Variants/randomchess.py:17 #: lib/pychess/widgets/TaskerManager.py:155 msgid "Random" msgstr "Τυχαίο" #: lib/pychess/Variants/rookodds.py:8 msgid "One player starts with one less rook piece" msgstr "" #: lib/pychess/Variants/rookodds.py:9 msgid "Rook odds" msgstr "" #: lib/pychess/Variants/shuffle.py:11 msgid "" "xboard nocastle: http://home.hccnet.nl/h.g.muller/engine-intf.html#8\n" "FICS wild/2: http://www.freechess.org/Help/HelpFiles/wild.html\n" "* Random arrangement of the pieces behind the pawns\n" "* No castling\n" "* Black's arrangement mirrors white's" msgstr "" #: lib/pychess/Variants/suicide.py:11 msgid "" "FICS suicide: http://www.freechess.org/Help/HelpFiles/suicide_chess.html" msgstr "" #: lib/pychess/Variants/theban.py:10 msgid "" "Variant developed by Kai Laskos: " "http://talkchess.com/forum/viewtopic.php?t=40990" msgstr "" #: lib/pychess/Variants/theban.py:11 msgid "Theban" msgstr "" #: lib/pychess/Variants/threecheck.py:10 msgid "Win by giving check 3 times" msgstr "" #: lib/pychess/Variants/threecheck.py:11 msgid "Three-check" msgstr "" #: lib/pychess/Variants/upsidedown.py:10 msgid "" "FICS wild/5: http://www.freechess.org/Help/HelpFiles/wild.html\n" "http://en.wikipedia.org/wiki/Chess_variant#Chess_with_different_starting_positions\n" "Pawns start on their 7th rank rather than their 2nd rank!" msgstr "" #: lib/pychess/Variants/upsidedown.py:13 msgid "Upside Down" msgstr "Πάνω Κάτω" #: lib/pychess/Variants/wildcastle.py:10 msgid "" "xboard wildcastle http://home.hccnet.nl/h.g.muller/engine-intf.html#8\n" "FICS wild/0: http://www.freechess.org/Help/HelpFiles/wild.html\n" "* White has the typical set-up at the start.\n" "* Black's pieces are the same, except that the King and Queen are reversed,\n" "* so they are not on the same files as White's King and Queen.\n" "* Castling is done similarly to normal chess:\n" "* o-o-o indicates long castling and o-o short castling." msgstr "" #: lib/pychess/Variants/wildcastle.py:17 msgid "Wildcastle" msgstr "" #: lib/pychess/Variants/wildcastleshuffle.py:11 msgid "" "xboard wildcastle http://home.hccnet.nl/h.g.muller/engine-intf.html#8\n" "FICS wild/1: http://www.freechess.org/Help/HelpFiles/wild.html\n" "* In this variant both sides have the same set of pieces as in normal chess.\n" "* The white king starts on d1 or e1 and the black king starts on d8 or e8,\n" "* and the rooks are in their usual positions.\n" "* Bishops are always on opposite colors.\n" "* Subject to these constraints the position of the pieces on their first ranks is random.\n" "* Castling is done similarly to normal chess:\n" "* o-o-o indicates long castling and o-o short castling." msgstr "" #: lib/pychess/Variants/wildcastleshuffle.py:20 msgid "Wildcastle shuffle" msgstr "" #: lib/pychess/widgets/analyzegameDialog.py:85 msgid "Game analyzing in progress..." msgstr "" #: lib/pychess/widgets/analyzegameDialog.py:86 msgid "Do you want to abort it?" msgstr "" #: lib/pychess/widgets/analyzegameDialog.py:95 #: lib/pychess/widgets/gamewidget.py:202 lib/pychess/widgets/gamewidget.py:320 msgid "Abort" msgstr "Ακύρωση" #: lib/pychess/widgets/ChatView.py:125 msgid "Observers" msgstr "" #: lib/pychess/widgets/ChatWindow.py:222 msgid "You have opened no conversations yet" msgstr "" #: lib/pychess/widgets/ChatWindow.py:254 msgid "Only registered users may talk to this channel" msgstr "" #: lib/pychess/widgets/ChatWindow.py:312 msgid "No conversation's selected" msgstr "" #: lib/pychess/widgets/ChatWindow.py:350 msgid "Loading player data" msgstr "" #: lib/pychess/widgets/ChatWindow.py:400 msgid "Receiving list of players" msgstr "" #: lib/pychess/widgets/ChatWindow.py:518 msgid "Friends" msgstr "" #: lib/pychess/widgets/ChatWindow.py:529 msgid "Admin" msgstr "" #: lib/pychess/widgets/ChatWindow.py:540 msgid "More channels" msgstr "" #: lib/pychess/widgets/ChatWindow.py:548 msgid "More players" msgstr "" #: lib/pychess/widgets/ChatWindow.py:558 msgid "Computers" msgstr "" #: lib/pychess/widgets/ChatWindow.py:568 msgid "BlindFold" msgstr "" #: lib/pychess/widgets/ChatWindow.py:578 msgid "Guests" msgstr "" #: lib/pychess/widgets/ChatWindow.py:805 msgid "Conversations" msgstr "" #: lib/pychess/widgets/ChatWindow.py:807 msgid "Conversation info" msgstr "" #: lib/pychess/widgets/enginesDialog.py:152 msgid "Select engine" msgstr "" #: lib/pychess/widgets/enginesDialog.py:156 msgid "Executable files" msgstr "" #: lib/pychess/widgets/enginesDialog.py:176 #: lib/pychess/widgets/enginesDialog.py:210 #: lib/pychess/widgets/enginesDialog.py:235 #, python-format msgid "Unable to add %s" msgstr "" #: lib/pychess/widgets/enginesDialog.py:177 msgid "wine not installed" msgstr "" #: lib/pychess/widgets/enginesDialog.py:211 #: lib/pychess/widgets/enginesDialog.py:236 msgid "There is something wrong with this executable" msgstr "" #: lib/pychess/widgets/enginesDialog.py:266 msgid "Select working directory" msgstr "" #: lib/pychess/widgets/gamenanny.py:115 #, python-format msgid " invalid engine move: %s" msgstr "" #: lib/pychess/widgets/gamenanny.py:134 msgid "Offer Rematch" msgstr "Πρόταση Επανάληψης" #: lib/pychess/widgets/gamenanny.py:136 lib/pychess/widgets/gamenanny.py:147 #, python-format msgid "Observe %s" msgstr "" #: lib/pychess/widgets/gamenanny.py:168 msgid "Play Rematch" msgstr "Παίξτε Επανάληψη" #: lib/pychess/widgets/gamenanny.py:171 msgid "Undo one move" msgstr "Αναίρεση μιας κίνησης" #: lib/pychess/widgets/gamenanny.py:173 msgid "Undo two moves" msgstr "Αναίρεση δύο κινήσεων" #: lib/pychess/widgets/gamenanny.py:203 msgid "The game is paused" msgstr "" #: lib/pychess/widgets/gamenanny.py:221 lib/pychess/widgets/gamenanny.py:222 msgid "Loaded game" msgstr "" #: lib/pychess/widgets/gamenanny.py:228 msgid "Saved game" msgstr "" #: lib/pychess/widgets/gamenanny.py:232 msgid "Analyzer started" msgstr "" #: lib/pychess/widgets/gamenanny.py:281 msgid "You sent an abort offer" msgstr "" #: lib/pychess/widgets/gamenanny.py:283 msgid "You sent an adjournment offer" msgstr "" #: lib/pychess/widgets/gamenanny.py:285 msgid "You sent a draw offer" msgstr "" #: lib/pychess/widgets/gamenanny.py:287 msgid "You sent a pause offer" msgstr "" #: lib/pychess/widgets/gamenanny.py:289 msgid "You sent a resume offer" msgstr "" #: lib/pychess/widgets/gamenanny.py:291 msgid "You sent an undo offer" msgstr "" #: lib/pychess/widgets/gamenanny.py:293 msgid "You asked your opponent to move" msgstr "" #: lib/pychess/widgets/gamenanny.py:305 #, python-format msgid "Engine, %s, has died" msgstr "" #: lib/pychess/widgets/gamenanny.py:306 msgid "" "PyChess has lost connection to the engine, probably because it has died.\n" "\n" "You can try to start a new game with the engine, or try to play against another one." msgstr "" #: lib/pychess/widgets/gamewidget.py:204 msgid "" "This game can be automatically aborted without rating loss because there has" " not yet been two moves made" msgstr "" #: lib/pychess/widgets/gamewidget.py:206 msgid "Offer Abort" msgstr "" #: lib/pychess/widgets/gamewidget.py:208 msgid "" "Your opponent must agree to abort the game because there has been two or " "more moves made" msgstr "" #: lib/pychess/widgets/gamewidget.py:226 msgid "This game can not be adjourned because one or both players are guests" msgstr "" #: lib/pychess/widgets/gamewidget.py:243 msgid "Claim Draw" msgstr "" #: lib/pychess/widgets/gamewidget.py:325 msgid "Pause" msgstr "" #: lib/pychess/widgets/gamewidget.py:326 msgid "Resume" msgstr "" #: lib/pychess/widgets/gamewidget.py:328 msgid "Offer Pause" msgstr "" #: lib/pychess/widgets/gamewidget.py:329 msgid "Offer Resume" msgstr "" #: lib/pychess/widgets/gamewidget.py:333 msgid "Undo" msgstr "" #: lib/pychess/widgets/gamewidget.py:335 msgid "Offer Undo" msgstr "" #: lib/pychess/widgets/gamewidget.py:550 msgid " has lagged for 30 seconds" msgstr "" #: lib/pychess/widgets/gamewidget.py:566 msgid " is lagging heavily but hasn't disconnected" msgstr "" #: lib/pychess/widgets/gamewidget.py:567 msgid "Continue to wait for opponent, or try to adjourn the game?" msgstr "" #: lib/pychess/widgets/gamewidget.py:575 msgid "Wait" msgstr "" #: lib/pychess/widgets/gamewidget.py:576 msgid "Adjourn" msgstr "" #: lib/pychess/widgets/gamewidget.py:648 msgid "Jump to initial position" msgstr "" #: lib/pychess/widgets/gamewidget.py:653 msgid "Step back one move" msgstr "" #: lib/pychess/widgets/gamewidget.py:658 msgid "Go back to the main line" msgstr "" #: lib/pychess/widgets/gamewidget.py:664 msgid "Step forward one move" msgstr "" #: lib/pychess/widgets/gamewidget.py:669 msgid "Jump to latest position" msgstr "" #: lib/pychess/widgets/gamewidget.py:903 msgid "PyChess was unable to load your panel settings" msgstr "" #: lib/pychess/widgets/gamewidget.py:904 msgid "" "Your panel settings have been reset. If this problem repeats, you should " "report it to the developers" msgstr "" #: lib/pychess/widgets/ionest.py:67 lib/pychess/widgets/newGameDialog.py:389 #: lib/pychess/widgets/TaskerManager.py:210 msgid "You" msgstr "" #: lib/pychess/widgets/ionest.py:70 lib/pychess/widgets/newGameDialog.py:390 #: lib/pychess/widgets/preferencesDialog.py:61 #: lib/pychess/widgets/TaskerManager.py:213 msgid "Guest" msgstr "" #: lib/pychess/widgets/ionest.py:93 msgid "Error loading game" msgstr "" #: lib/pychess/widgets/ionest.py:127 lib/pychess/widgets/newGameDialog.py:480 msgid "Open Game" msgstr "'Ανοιγμα Παιχνιδιού" #: lib/pychess/widgets/ionest.py:137 msgid "All Files" msgstr "Αρχεία" #: lib/pychess/widgets/ionest.py:140 msgid "Detect type automatically" msgstr "Αυτόματος εντοπισμός τύπου" #: lib/pychess/widgets/ionest.py:146 msgid "All Chess Files" msgstr "Αρχεία Σκακιού" #: lib/pychess/widgets/ionest.py:228 msgid "Save Game" msgstr "Αποθήκευση παιχνιδιού" #: lib/pychess/widgets/ionest.py:228 msgid "Export position" msgstr "" #: lib/pychess/widgets/ionest.py:232 lib/pychess/widgets/ionest.py:360 msgid "vs." msgstr "εναντίων" #: lib/pychess/widgets/ionest.py:249 #, python-format msgid "Unknown file type '%s'" msgstr "" #: lib/pychess/widgets/ionest.py:250 #, python-format msgid "" "Was unable to save '%(uri)s' as PyChess doesn't know the format " "'%(ending)s'." msgstr "" #: lib/pychess/widgets/ionest.py:266 #, python-format msgid "Unable to save file '%s'" msgstr "Αδύνατη η αποθήκευση του αρχείου '%s'" #: lib/pychess/widgets/ionest.py:268 msgid "" "You don't have the necessary rights to save the file.\n" "Please ensure that you have given the right path and try again." msgstr "Δεν έχετε τα απαραίτητα δικαιώματα για την αποθήκευση του αρχείου.\nΒεβαιωθείτε οτι ακολουθείσατε την σωστή διαδρομή (path) και ξαναπροσπαθήστε." #: lib/pychess/widgets/ionest.py:276 msgid "_Replace" msgstr "_Αντικατάσταση" #: lib/pychess/widgets/ionest.py:280 msgid "File exists" msgstr "Το αρχείο υπάρχει ήδη" #: lib/pychess/widgets/ionest.py:282 #, python-format msgid "" "A file named '%s' already exists. Would you like to replace " "it?" msgstr "" #: lib/pychess/widgets/ionest.py:283 #, python-format msgid "" "The file already exists in '%s'. If you replace it, its content will be " "overwritten." msgstr "" #: lib/pychess/widgets/ionest.py:299 msgid "Could not save the file" msgstr "" #: lib/pychess/widgets/ionest.py:300 msgid "PyChess was not able to save the game" msgstr "" #: lib/pychess/widgets/ionest.py:301 #, python-format msgid "The error was: %s" msgstr "" #: lib/pychess/widgets/ionest.py:325 #, python-format msgid "There is %d game with unsaved moves." msgid_plural "There are %d games with unsaved moves." msgstr[0] "" msgstr[1] "" #: lib/pychess/widgets/ionest.py:328 msgid "Save moves before closing?" msgstr "" #: lib/pychess/widgets/ionest.py:339 msgid "Unable to save to configured file. Save the games before closing?" msgstr "" #: lib/pychess/widgets/ionest.py:366 #, python-format msgid "_Save %d document" msgid_plural "_Save %d documents" msgstr[0] "_Αποθήκευση %d αρχείου" msgstr[1] "_Αποθήκευση %d αρχείων" #: lib/pychess/widgets/ionest.py:412 msgid "Save the current game before you close it?" msgstr "" #: lib/pychess/widgets/ionest.py:420 msgid "" "Unable to save to configured file. Save the current game before you close " "it?" msgstr "" #: lib/pychess/widgets/ionest.py:434 msgid "" "It is not possible later to continue the game,\n" "if you don't save it." msgstr "" #: lib/pychess/widgets/LogDialog.py:26 msgid "PyChess Information Window" msgstr "" #: lib/pychess/widgets/LogDialog.py:184 lib/pychess/widgets/LogDialog.py:188 msgid "of" msgstr "από" #: lib/pychess/widgets/newGameDialog.py:84 #: lib/pychess/widgets/newGameDialog.py:85 msgid "Human Being" msgstr "Άνθρωπος" #: lib/pychess/widgets/newGameDialog.py:155 msgid "Rapid" msgstr "" #: lib/pychess/widgets/newGameDialog.py:224 msgid "Minutes:" msgstr "Λεπτά:" #: lib/pychess/widgets/newGameDialog.py:228 msgid "Gain:" msgstr "Κέρδος" #: lib/pychess/widgets/newGameDialog.py:241 #, python-format msgid "%(name)s %(minutes)d min + %(gain)d sec/move" msgstr "" #: lib/pychess/widgets/newGameDialog.py:244 #, python-format msgid "%(name)s %(minutes)d min %(gain)d sec/move" msgstr "" #: lib/pychess/widgets/newGameDialog.py:247 #, python-format msgid "%(name)s %(minutes)d min" msgstr "" #: lib/pychess/widgets/newGameDialog.py:265 msgid "Odds" msgstr "" #: lib/pychess/widgets/newGameDialog.py:269 msgid "Asian variants" msgstr "" #: lib/pychess/widgets/newGameDialog.py:301 msgid " chess" msgstr " σκάκι" #: lib/pychess/widgets/newGameDialog.py:682 msgid "Type or paste PGN game or FEN positions here" msgstr "" #: lib/pychess/widgets/newGameDialog.py:725 msgid "Enter Game" msgstr "Εισαγωγή στο Παιχνίδι" #: lib/pychess/widgets/preferencesDialog.py:123 msgid "Select book file" msgstr "" #: lib/pychess/widgets/preferencesDialog.py:128 msgid "Opening books" msgstr "" #: lib/pychess/widgets/preferencesDialog.py:156 msgid "Select Gaviota TB path" msgstr "" #: lib/pychess/widgets/preferencesDialog.py:331 msgid "Open Sound File" msgstr "Άνοιγμα Αρχείου Ήχου" #: lib/pychess/widgets/preferencesDialog.py:341 msgid "Sound files" msgstr "" #: lib/pychess/widgets/preferencesDialog.py:485 msgid "Undescribed panel" msgstr "" #: lib/pychess/widgets/preferencesDialog.py:678 msgid "Select auto save path" msgstr "" #: lib/pychess/widgets/tipOfTheDay.py:51 msgid "" "You can start a new game by Game > New Game, in New Game " "window do you can choose Players, Time Control and Chess " "Variants." msgstr "" #: lib/pychess/widgets/tipOfTheDay.py:52 msgid "" "You can choose from 20 different difficulties to play against the computer." msgstr "" #: lib/pychess/widgets/tipOfTheDay.py:53 msgid "" "Chess Variants are like the pieces of the last line will be placed on the " "board." msgstr "" #: lib/pychess/widgets/tipOfTheDay.py:54 msgid "" "To save a game Game > Save Game As, give the filename and " "choose where you want to be saved. At the bottom choose extension type of " "the file, and Save." msgstr "" #: lib/pychess/widgets/tipOfTheDay.py:55 msgid "" "Do you know that you can call flag when the clock is with you, " "Actions > Call Flag." msgstr "" #: lib/pychess/widgets/tipOfTheDay.py:56 msgid "Pressing Ctrl+Z to offer opponent the possible rollback moves." msgstr "" #: lib/pychess/widgets/tipOfTheDay.py:57 msgid "" "To play on Fullscreen mode, just type F11. Coming back, F11 " "again." msgstr "" #: lib/pychess/widgets/tipOfTheDay.py:58 msgid "Hint mode analyzing your game, enable this type Ctrl+H." msgstr "" #: lib/pychess/widgets/tipOfTheDay.py:59 msgid "" "Spy mode analyzing the oponnent game, enable this type Ctrl+Y." msgstr "" #: lib/pychess/widgets/tipOfTheDay.py:60 msgid "" "You can play chess listening to the sounds of the game, for that, " "Settings > Preferences > Sound tab, enable Use " "sounds in PyChess and choose your preferred sounds." msgstr "" #: lib/pychess/widgets/tipOfTheDay.py:61 msgid "" "Do you know that you can help translate Pychess in your language, " "Help > Translate Pychess." msgstr "" #: lib/pychess/widgets/tipOfTheDay.py:62 msgid "" "Do you know that it is possible to finish a chess game in just 2 turns?" msgstr "" #: lib/pychess/widgets/tipOfTheDay.py:63 msgid "" "Do you know that the number of possible chess games exceeds the number of " "atoms in the Universe?" msgstr "" #: lib/pychess/ic/managers/ChatManager.py:184 msgid "Shout" msgstr "" #: lib/pychess/ic/managers/ChatManager.py:185 msgid "Chess Shout" msgstr "" #: lib/pychess/ic/managers/ChatManager.py:195 #, python-format msgid "Unofficial channel %d" msgstr "" #: lib/pychess/Utils/lutils/LBoard.py:152 #, python-format msgid "" "FEN needs 6 data fields. \n" "\n" "%s" msgstr "" #: lib/pychess/Utils/lutils/LBoard.py:154 #, python-format msgid "" "FEN needs at least 2 data fields in fenstr. \n" "\n" "%s" msgstr "" #: lib/pychess/Utils/lutils/LBoard.py:175 #, python-format msgid "" "Needs 7 slashes in piece placement field. \n" "\n" "%s" msgstr "" #: lib/pychess/Utils/lutils/LBoard.py:178 #, python-format msgid "" "Active color field must be one of w or b. \n" "\n" "%s" msgstr "" #: lib/pychess/Utils/lutils/LBoard.py:189 #, python-format msgid "" "Castling availability field is not legal. \n" "\n" "%s" msgstr "" #: lib/pychess/Utils/lutils/LBoard.py:192 #, python-format msgid "" "En passant cord is not legal. \n" "\n" "%s" msgstr "" #: lib/pychess/Utils/lutils/lmove.py:260 msgid "invalid promoted piece" msgstr "" #: lib/pychess/Utils/lutils/lmove.py:272 msgid "the move needs a piece and a cord" msgstr "" #: lib/pychess/Utils/lutils/lmove.py:306 lib/pychess/Utils/lutils/lmove.py:556 msgid "promotion move without promoted piece is incorrect" msgstr "" #: lib/pychess/Utils/lutils/lmove.py:312 #, python-format msgid "the captured cord (%s) is incorrect" msgstr "" #: lib/pychess/Utils/lutils/lmove.py:323 #, python-format msgid "the end cord (%s) is incorrect" msgstr "" #: lib/pychess/Utils/lutils/strateval.py:24 sidepanel/commentPanel.py:191 #: sidepanel/commentPanel.py:208 msgid "and" msgstr "και" #: lib/pychess/Utils/lutils/strateval.py:43 msgid "draws" msgstr "" #: lib/pychess/Utils/lutils/strateval.py:45 msgid "mates" msgstr "" #: lib/pychess/Utils/lutils/strateval.py:49 msgid "puts opponent in check" msgstr "" #: lib/pychess/Utils/lutils/strateval.py:73 msgid "improves king safety" msgstr "" #: lib/pychess/Utils/lutils/strateval.py:75 msgid "slightly improves king safety" msgstr "" #: lib/pychess/Utils/lutils/strateval.py:108 msgid "moves a rook to an open file" msgstr "" #: lib/pychess/Utils/lutils/strateval.py:109 msgid "moves an rook to a half-open file" msgstr "" #: lib/pychess/Utils/lutils/strateval.py:119 #: lib/pychess/Utils/lutils/strateval.py:121 #: lib/pychess/Utils/lutils/strateval.py:124 #: lib/pychess/Utils/lutils/strateval.py:126 #, python-format msgid "moves bishop into fianchetto: %s" msgstr "" #: lib/pychess/Utils/lutils/strateval.py:132 #, python-format msgid "promotes a Pawn to a %s" msgstr "" #: lib/pychess/Utils/lutils/strateval.py:135 msgid "castles" msgstr "" #: lib/pychess/Utils/lutils/strateval.py:158 msgid "takes back material" msgstr "" #: lib/pychess/Utils/lutils/strateval.py:162 #: lib/pychess/Utils/lutils/strateval.py:170 msgid "sacrifies material" msgstr "" #: lib/pychess/Utils/lutils/strateval.py:164 msgid "exchanges material" msgstr "" #: lib/pychess/Utils/lutils/strateval.py:166 msgid "captures material" msgstr "" #: lib/pychess/Utils/lutils/strateval.py:291 #, python-format msgid "rescues a %s" msgstr "" #: lib/pychess/Utils/lutils/strateval.py:294 #, python-format msgid "threatens to win material by %s" msgstr "" #: lib/pychess/Utils/lutils/strateval.py:296 #, python-format msgid "increases the pressure on %s" msgstr "" #: lib/pychess/Utils/lutils/strateval.py:298 #, python-format msgid "defends %s" msgstr "" #: lib/pychess/Utils/lutils/strateval.py:336 #, python-format msgid "pins an enemy %(oppiece)s on the %(piece)s at %(cord)s" msgstr "" #: lib/pychess/Utils/lutils/strateval.py:369 #, python-format msgid "White has a new piece in outpost: %s" msgstr "" #: lib/pychess/Utils/lutils/strateval.py:377 #, python-format msgid "Black has a new piece in outpost: %s" msgstr "" #: lib/pychess/Utils/lutils/strateval.py:416 #, python-format msgid "%(color)s has a new passed pawn on %(cord)s" msgstr "" #: lib/pychess/Utils/lutils/strateval.py:470 msgid "half-open" msgstr "" #: lib/pychess/Utils/lutils/strateval.py:472 #, python-format msgid "in the %(x)s%(y)s file" msgstr "" #: lib/pychess/Utils/lutils/strateval.py:474 #, python-format msgid "in the %(x)s%(y)s files" msgstr "" #: lib/pychess/Utils/lutils/strateval.py:477 #, python-format msgid "%(color)s got a double pawn %(place)s" msgstr "" #: lib/pychess/Utils/lutils/strateval.py:478 #, python-format msgid "%(color)s got new double pawns %(place)s" msgstr "" #: lib/pychess/Utils/lutils/strateval.py:485 #, python-format msgid "%(color)s got an isolated pawn in the %(x)s file" msgid_plural "%(color)s got isolated pawns in the %(x)s files" msgstr[0] "" msgstr[1] "" #: lib/pychess/Utils/lutils/strateval.py:492 #, python-format msgid "%s moves pawns into stonewall formation" msgstr "" #: lib/pychess/Utils/lutils/strateval.py:507 #: lib/pychess/Utils/lutils/strateval.py:514 #, python-format msgid "%s can no longer castle" msgstr "" #: lib/pychess/Utils/lutils/strateval.py:508 #: lib/pychess/Utils/lutils/strateval.py:515 #, python-format msgid "%s can no longer castle in queenside" msgstr "" #: lib/pychess/Utils/lutils/strateval.py:510 #: lib/pychess/Utils/lutils/strateval.py:517 #, python-format msgid "%s can no longer castle in kingside" msgstr "" #: lib/pychess/Utils/lutils/strateval.py:551 #, python-format msgid "%(opcolor)s has a new trapped bishop on %(cord)s" msgstr "" #: lib/pychess/Utils/lutils/strateval.py:573 #, python-format msgid "develops a pawn: %s" msgstr "" #: lib/pychess/Utils/lutils/strateval.py:574 #, python-format msgid "brings a pawn closer to the backrow: %s" msgstr "" #: lib/pychess/Utils/lutils/strateval.py:591 #, python-format msgid "brings a %(piece)s closer to enemy king: %(cord)s" msgstr "" #: lib/pychess/Utils/lutils/strateval.py:594 #, python-format msgid "develops a %(piece)s: %(cord)s" msgstr "" #: lib/pychess/Utils/lutils/strateval.py:612 #, python-format msgid "places a %(piece)s more active: %(cord)s" msgstr "" #: lib/pychess/Utils/lutils/strateval.py:638 msgid "White should do pawn storm in right" msgstr "" #: lib/pychess/Utils/lutils/strateval.py:640 msgid "Black should do pawn storm in left" msgstr "" #: lib/pychess/Utils/lutils/strateval.py:643 msgid "White should do pawn storm in left" msgstr "" #: lib/pychess/Utils/lutils/strateval.py:645 msgid "Black should do pawn storm in right" msgstr "" #: lib/pychess/Utils/lutils/strateval.py:671 msgid "Black has a rather cramped position" msgstr "" #: lib/pychess/Utils/lutils/strateval.py:673 msgid "Black has a slightly cramped position" msgstr "" #: lib/pychess/Utils/lutils/strateval.py:675 msgid "White has a rather cramped position" msgstr "" #: lib/pychess/Utils/lutils/strateval.py:677 msgid "White has a slightly cramped position" msgstr "" #: sidepanel/annotationPanel.py:26 msgid "Annotation" msgstr "" #: sidepanel/annotationPanel.py:29 msgid "Annotated game" msgstr "" #: sidepanel/annotationPanel.py:236 msgid "Copy PGN" msgstr "" #: sidepanel/annotationPanel.py:249 msgid "Add start comment" msgstr "" #: sidepanel/annotationPanel.py:254 msgid "Add comment" msgstr "Προσθήκη σχολίου" #: sidepanel/annotationPanel.py:258 sidepanel/annotationPanel.py:316 msgid "Edit comment" msgstr "Επεξεργασία σχολίου" #: sidepanel/annotationPanel.py:269 msgid "Forced move" msgstr "" #: sidepanel/annotationPanel.py:274 msgid "Add move symbol" msgstr "" #: sidepanel/annotationPanel.py:280 msgid "Unclear position" msgstr "" #: sidepanel/annotationPanel.py:289 msgid "Zugzwang" msgstr "" #: sidepanel/annotationPanel.py:290 msgid "Development adv." msgstr "" #: sidepanel/annotationPanel.py:291 msgid "Initiative" msgstr "" #: sidepanel/annotationPanel.py:292 msgid "With attack" msgstr "" #: sidepanel/annotationPanel.py:293 msgid "Compensation" msgstr "" #: sidepanel/annotationPanel.py:294 msgid "Counterplay" msgstr "" #: sidepanel/annotationPanel.py:295 msgid "Time pressure" msgstr "" #: sidepanel/annotationPanel.py:300 msgid "Add evaluation symbol" msgstr "" #: sidepanel/annotationPanel.py:304 msgid "Remove symbols" msgstr "" #: sidepanel/annotationPanel.py:911 #, python-format msgid "round %s" msgstr "" #: sidepanel/bookPanel.py:21 msgid "Hints" msgstr "" #: sidepanel/bookPanel.py:25 msgid "" "The hint panel will provide computer advice during each stage of the game" msgstr "" #: sidepanel/bookPanel.py:27 msgid "Official PyChess panel." msgstr "" #: sidepanel/bookPanel.py:87 msgid "Opening Book" msgstr "" #: sidepanel/bookPanel.py:88 msgid "" "The opening book will try to inspire you during the opening phase of the " "game by showing you common moves made by chess masters" msgstr "" #: sidepanel/bookPanel.py:139 #, python-format msgid "Analysis by %s" msgstr "Ανάλυση από %s" #: sidepanel/bookPanel.py:140 #, python-format msgid "" "%s will try to predict which move is best and which side has the advantage" msgstr "" #: sidepanel/bookPanel.py:142 #, python-format msgid "Threat analysis by %s" msgstr "Ανάλυση απειλών από %s" #: sidepanel/bookPanel.py:143 #, python-format msgid "" "%s will identify what threats would exist if it were your opponent's turn to" " move" msgstr "" #: sidepanel/bookPanel.py:159 sidepanel/bookPanel.py:269 msgid "Calculating..." msgstr "" #: sidepanel/bookPanel.py:300 msgid "" "Engine scores are in units of pawns, from White's point of view. Double " "clicking on analysis lines you can insert them into Annotation panel as " "variations." msgstr "" #: sidepanel/bookPanel.py:302 msgid "" "Adding suggestions can help you find ideas, but slows down the computer's " "analysis." msgstr "" #: sidepanel/bookPanel.py:311 msgid "Endgame Table" msgstr "" #: sidepanel/bookPanel.py:315 msgid "" "The endgame table will show exact analysis when there are few pieces on the " "board." msgstr "" #: sidepanel/bookPanel.py:364 sidepanel/bookPanel.py:367 #, python-format msgid "Mate in %d" msgstr "Ματ σε %d" #: sidepanel/bookPanel.py:554 msgid "" "In this position,\n" "there is no legal move." msgstr "" #: sidepanel/chatPanel.py:21 msgid "" "The chat panel lets you communicate with your opponent during the game, " "assuming he or she is interested" msgstr "" #: sidepanel/commentPanel.py:16 msgid "Comments" msgstr "Σχόλια" #: sidepanel/commentPanel.py:20 msgid "The comments panel will try to analyze and explain the moves played" msgstr "" #: sidepanel/commentPanel.py:121 msgid "Initial position" msgstr "" #: sidepanel/commentPanel.py:254 #, python-format msgid "%(color)s moves a %(piece)s to %(cord)s" msgstr "" #: sidepanel/engineOutputPanel.py:15 msgid "Engines" msgstr "" #: sidepanel/engineOutputPanel.py:20 msgid "" "The engine output panel shows the thinking output of chess engines (computer" " players) during a game" msgstr "" #: sidepanel/engineOutputPanel.py:44 msgid "No chess engines (computer players) are participating in this game." msgstr "" #: sidepanel/historyPanel.py:10 msgid "Move History" msgstr "Ιστορικό Κινήσεων" #: sidepanel/historyPanel.py:13 msgid "" "The moves sheet keeps track of the players' moves and lets you navigate " "through the game history" msgstr "" #: sidepanel/scorePanel.py:15 msgid "Score" msgstr "Βαθμολογία" #: sidepanel/scorePanel.py:19 msgid "" "The score panel tries to evaluate the positions and shows you a graph of the" " game progress" msgstr "" pychess-0.12.2/lang/el/LC_MESSAGES/pychess.mo0000644000175000017470000004412012653231273020676 0ustar tamasusers00000000000000\7x y#%6<9U'#$> co C*[     */6<C KUi ny-     #0}6   % * 6OB   !7 @ KXZ_ hv         $> P]r   #  !.08 ?JQV] f p~     ( 1; N4[93-4JO_ ny       u a!q!y!! !! !! !!!%! ! "" "$" +"5" ;" F"Q" d" q"{" "$"" "" """## *#7# ;#"E#+h#########I% \% h%r%% %<%3%&:"&1]& &/&|&CI'','0',',(II(M( (&($);)2S))")))%)z*S**+#+:+Z+ v+++6++#,(,@, W, b, p,~,",,, ,A,_.- - - -)--2--.+>.%j.-.;.(/ #0'10Y0 q0+~010/00 1=1N1i1z10454 F4 Q4*\444/4#48 5F5MU5 5 5!55 556606A6$V6#{6$6 6"6&7$/7&T7-{777 7 7A7)8H8/h8D8"8 9 9(9?9P9/d919 99999: :+%:Q: f: s::):/::;#;)<;#f;%;;!;&;*<D<X<,n<< <4<#<S=ue=?=6>)R> |>'> >>> >!? (?(3?(\?????!?@ A$AB$ CECUCiC,C CCC(C D$Df4D(D$DD(D (E5EME]ErE)E EEE( FO3F'F*F.F"G(G#?GcGsGGG G"G+G HHH"H&H7HIHR{ gOY_&3W ?7( *4LT.=q+eSy-rhol@ND[H^U,}6J' w> |KbnEI!%j CQc:1\B$f)vM2sp9ZxV`5P]F<~zkim"8auG#X/;tA0d Gain: chess min(Blitz)0 Players Ready0 of 010 min + 6 sec/move, 1400↑, White10 min + 6 sec/move, White12002 min, Fischer Random, 1800↓, Black2 min, Fischer Random, Black5 min5 min, 1200-1800, ManualConnect to the Free Online Chess ServerPromote pawn to what?AnimationChess VariantDate of gameGame dataInitial PositionName of _first human player:Name of s_econd human player:NewsOpen GameOpponent StrengthOptionsPlay Sound When...PlayersTime ControlToolsYour Color_Start GamePyChess is discovering your engines. Please wait.Unable to save file '%s'Challenge:AbortAbout ChessAdd commentAll Chess FilesAll FilesAll whiteAnalysis by %sAnalyze from current positionAnalyze gameAsymmetric RandomBeepBishopBlackBlitz:Center:ChallengeChallenge: ChatChess GameClockColorize analyzed movesCommand line parameters needed by the engine.Command:CommentsCornerCreate SeekDate/TimeDetect type automaticallyDon't careEdit SeekEdit commentEmailEngines use uci or xboard communication protocol to talk to the GUI. If it can use both you can set here which one you like.Enter GameEvent:File existsFischer RandomGain:Game informationGame is _drawn:Game is _lost:Game is _won:HideHow to PlayHuman BeingIf the analyzer finds a move where the evaluation difference (the difference between the evaluation for the move it thinks is the best move and the evaluation for the move made in the game) exceeds this value, it will add an annotation for that move (consisting of the engine's Principal Variation for the move) to the Annotation panelKKingKnightKnightsLeave _FullscreenLightning:Local EventLog on as _GuestManage enginesManually accept opponentMate in %dMaximum analysis time in seconds:Minutes:Minutes: Move HistoryNNameNew GameNo _animationNo soundNormalObserveOffer A_bortOffer RematchOffer _DrawOffer _PauseOffer _ResumeOffer _UndoOpen GameOpen Sound FileOpponent's strength: PParameters:PawnPlayPlay Fischer Random chessPlay Losers chessPlay RematchPlay _Internet ChessPlay normal chess rulesPlayer _RatingPo_rts:Pre_viewPreferencesPromotionProtocol:PyChess - Connect to Internet ChessPyChess - Internet Chess: FICSPyChess.py:QQueenQuit PyChessRR_esignRandomRated gameRatingRookRound:S_ign upSave GameSave Game _AsScoreSearch:Seek _GraphSelect sound file...Send ChallengeSend seekSetup PositionShow ConsoleShow _ChatShow evaluation valuesShredderLinuxChess:Site:Sp_y modeStandardStandard:Start Private ChatTeam AccountThe directory where the engine will be started from.The displayed name of the first human player, e.g., John.The displayed name of the guest player, e.g., Mary.The game ended in a drawThe reason is unknownThemesThreat analysis by %sTimeTime control: Tip of the DayTolerance:Translate PyChessTypeUndo one moveUndo two movesUninstallUntimedUpside DownUse _analyzerUse analyzer:When this button is in the "locked" state, the relationship between "Opponent's strength" and "Your strength" will be preserved when a) your rating for the type of game sought has changed b) you change the variant or the time controlWhiteWorking directory:You don't have the necessary rights to save the file. Please ensure that you have given the right path and try again.Your strength: _Accept_Actions_Black player:_Clear Seeks_Decline_Fullscreen_Game_Game List_General_Help_Hide tabs when only one game is open_Hint mode_Load Game_Log Off_Log Viewer_Name:_New Game_Next_Opponent:_Password:_Play Normal chess_Player List_Previous_Replace_Rotate Board_Save %d document_Save %d documents_Save %d documents_Save Game_Seeks / Challenges_Start Game_Untimed_Use sounds in PyChess_View_White player:_Your Color:andgnuchess:http://en.wikipedia.org/wiki/Chesshttp://en.wikipedia.org/wiki/Rules_of_chessminofsecucivs.window1xboardProject-Id-Version: pychess Report-Msgid-Bugs-To: POT-Creation-Date: 2016-01-27 13:28+0100 PO-Revision-Date: 2016-01-28 08:56+0000 Last-Translator: slav0nic Language-Team: Greek (http://www.transifex.com/gbtami/pychess/language/el/) MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Language: el Plural-Forms: nplurals=2; plural=(n != 1); Κέρδος: σκάκι λεπτ(Μπλιτς)0 έτοιμοι παίχτες0 από 010 λεπτά + 6 δευτ/κίνηση, 1400↑, Λευκά10 λεπτά + 6 δευτ/κίνηση, Λευκά12002 λεπτά, Τυχαίο Φίσερ, 1800↓, Μαύρα2 λεπτά, Τυχαίο Φίσερ, Μαύρα5 λεπτά5 λεπτά, 1200-1800, ΧειροκίνηταΣύνδεση με τον Δωρεάν Διαδικτυακό Σκακιστικό ΕξυπηρετητήΠροαγωγή του πιονιού σε τι;ΚίνησηΣκακιστική ΒαριάνταΗμερομηνία ΠαιχνιδιούΔεδομένα ΠαιχνιδιούΑρχική ΘέσηΌνομα του _πρώτου ανθρώπινου παίκτη:Όνομα του δ_εύτερου ανθρώπινου παίκτη:ΝέαΑνοιχτό ΠαιχνίδιΙσχυς ΑντιπάλουΕπιλογέςΑναπαραγωγή Ήχου Όταν...ΠαίκτεςΈλεγχος χρόνουΕργαλείαΤο Χρώμα σας_Έναρξη ΠαρτίδαςΤο PyChess ανακαλύπτει τις μηχανές σας. Παρακαλώ περιμένετε.Αδύνατη η αποθήκευση του αρχείου '%s'Πρόκληση:ΑκύρωσηΣχετικά με το ΣκάκιΠροσθήκη σχολίουΑρχεία ΣκακιούΑρχείαΟλόλευκοΑνάλυση από %sΑνάλυση από την τρέχουσα θέσηΑνάλυση παρτίδαςΤυχαίο ΑσυμμετρικόΗχητικό σήμαΑξιωματικόςΜαύραΜπλιτς:Κέντρο:ΠρόκλησηΠρόκληση: <Παίχτης>ΣυζήτησηΠαρτίδα ΣκακιούΡολόιΧρωματισμός των αναλυμέων κινήσεωνΠαράμετροι γραμμής εντολής που χρειάζεται η μηχανή.Εντολή:ΣχόλιαΓωνίαΔημιουργία ΑναζήτησηςΗμερομηνία/ΏραΑυτόματος εντοπισμός τύπουΑδιάφοροΕπεξεργασία ΑναζήτησηςΕπεξεργασία σχολίουΗλεκτρονικό ΤαχυδρομείοΟι μηχανες χρησιμοποιούν το uci ή το xboard για να επικοινωνούν με το γραφικό περιβάλλον. Αν αυτό μπορεί να χρησιμοιεί αμφότερα, εδώ μπορείτε να ρυθμίσετε εκείνο που επιθυμείτε.Εισαγωγή στο ΠαιχνίδιΣυμβάν:Το αρχείο υπάρχει ήδηΤυχαίο ΦίσερΚέρδοςΠληροφορίες παιχνιδιούΤο παιχνίδι λήγει _ισόπαλο:Το παιχνίδι λήγει _χαμένο:Το παιχνίδι λίγει σε _νίκη:ΑπόκρυψηΠως να ΠαίξετεΆνθρωποςΑν ο αναλυτής βρει μια κίνηση με την οποία η διαφορά ανάλυσης (η διαφορά μεταξύ της ανάλυσης για την κίνηση αυτή που αυτός πιστεύει ότι είναι η καλύτερη και της ανάλυσης για την κίνηση που έγινε στην παρτίδα) υπερβαίνει την τιμή αυτή, ο αναλυτής θα προσθέσει σχολιασμό για την κίνηση αυτή (θα περιλαμβάνει την αρχική βαριάντα της μηχανής για την κίνηση) στον πίνακα των Σχολιασμών.ΠαΒασιλιάςΊπποςΊπποιΈξοδος από _Πλήρη οθόνηΑστραπιαία:Τοπικό ΓεγονόςΣυνδεθείτε ως _ΕπισκέπτηςΔιαχείρηση μηχανώνΧειροκίνητη αποδοχή αντιπάλουΜατ σε %dΜέγιστος χρόνος ανάλυσης σε δευτερόλεπτα:Λεπτά:Λεπτά: Ιστορικό ΚινήσεωνΙΌνομαΝέο ΠαιχνίδιΧωρίς _κίνησηΧωρίς ήχοΚανονικόΠαρατήρησηΠροσφορά Μ_αταίωσηςΠρόταση ΕπανάληψηςΠροσφορά _ΙσοπαλίαςΠρόσφερετε _ΠαύσηΠρόταση _ΣυνέχειαςΠρόσφερετε _Αναίρεση'Ανοιγμα ΠαιχνιδιούΆνοιγμα Αρχείου ΉχουΔυναμικότητα αντιπάλου: ΠιΠαράμετροι:ΠιόνιΠαίξτεΠαίξτε σκάκι τύπου Τυχαίο του ΦίσερΠαίξτε σκάκι τύπου LosersΠαίξτε ΕπανάληψηΠαίξτε _Διαδικτυακό ΣκάκιΠαίξτε με κανονικούς κανόνες σκακιού_Βαθμολογία Παίκτηθύ_ρεςΠ_ροεπισκόπησηΠροτιμήσειςΠροαγωγήΠρωτόκολο:PyChess - Διαδικτυακή ΣύνδεσηPyChess - Διαδικτυακό Σκάκι: FICSPyChess.py:ΒΒασίλισσαΈξοδος PyChessΠυΕ_γκατάληψηΤυχαίοΒαθμολογημένο παιχνίδιΒαθμολογίαΠύργοςΓύρος:Ε_γγραφείτεΑποθήκευση παιχνιδιούΑποθήκευση Παιχνιδιού Ω_ςΒαθμολογίαΑναζήτηση:Γράφημα αναζήτησηςΕπιλογή αρχείου ήχου...Αποστολή ΠρόκλησηςΑποστολή ΑναζήτησηςΚαθορισμός ΘέσηςΠροβολής κονσόλαςΕμφάνιση _ΣυνομιλίαςΠροβολή τιμών ανάλυσηςShredderLinuxChess:Ιστοσελίδα:Λειτουργία _ΚατασκοπίαςΠρότυποΤυπική:Έναρξη Ιδιωτικής ΣυνομιλίαςΛογαριασμός ΟμάδαςΟ κατάλογος από τον οποίο θα εκκινεί η μηχανή.Το εμφανιζόμενο όνομα του πρώτου ανθρώπινου παίκτη, π.χ. ΙωάννηςΤο όνομα του καλεσμένου, π.χ. Μαρία.Το παιχνίδι έληξε σε ισοπαλίαΟ λόγος είναι άγνωστοςΘέματαΑνάλυση απειλών από %sΧρόνοςΈλεγχος χρόνου: Συμβουλή της ηΗΑνοχή:Μετάφραση του PyChessΤύποςΑναίρεση μιας κίνησηςΑναίρεση δύο κινήσεωνΑπεγκατάστασηΧωρίς χρόνοΠάνω ΚάτωΧρήση _αναλυτήΧρήση του αναλυτή:Όταν αυτό το κουμπί είναι στη κατάσταση «κλειδωμένου», τότε η σχέση ανάμεσα στην «Δύναμικότητα αντιπάλου» και την «Δικιά σας δυναμικότητά» θα κρατηθεί όταν α) η εκτίμισή σας για τον τύπο παιχνιδιού που ψάχνετε αλλάζει β) αλλάζεται την παραλλαγή ή τον έλεγχο χρόνουΛευκάΚατάλογος εργασίας:Δεν έχετε τα απαραίτητα δικαιώματα για την αποθήκευση του αρχείου. Βεβαιωθείτε οτι ακολουθείσατε την σωστή διαδρομή (path) και ξαναπροσπαθήστε.Η δυναμικότητά σας: _ΑποδοχήΕ_νέργειες_Μαύρος παίκτης:_Καθαρισμός Αναζητήσεων_Άρνηση_Πλήρης οθόνη_Παιχνίδι_Κατάλογος Παιχνιδιού_Γενικά_ΒοήθειαΑ_πόκρυψη καρτελών όταν είναι ανοιχτό μόνο ένα παιχνίδιΛειτουργία Σ_υμβουλής_Φόρτωση Παιχνιδιού_ΑποσύνδεσηΠροβολέας _Καταγραφών_Όνομα:_Νέο Παιxνίδι_Επόμενο_Αντίπαλος:_Συνθηματικό:_Παίξτε Κανονικό σκάκι_Κατάλογος Παίκτη_Προηγούμενο_ΑντικατάστασηΠ_εριστροφή Σκακιέρας_Αποθήκευση %d αρχείου_Αποθήκευση %d αρχείων_Αποθήκευση %d αρχείωνΑ_ποθήκευση Παιχνιδιού_Αναζητήσεις / ΠροκλήσειςΈ_ναρξη Παιχνιδιού_Χωρίς χρόνο_Χρήση Ήχων στο PyChessΠρο_βολή_Λεύκος παίκτης:_Το Χρώμα Σουκαιgnuchess:http://en.wikipedia.org/wiki/Chesshttp://en.wikipedia.org/wiki/Rules_of_chessλεπταπόδευτuciεναντίωνπαράθυρο1xboardpychess-0.12.2/lang/kn/0000755000175000017470000000000012653231274015106 5ustar tamasusers00000000000000pychess-0.12.2/lang/kn/LC_MESSAGES/0000755000175000017470000000000012653231274016673 5ustar tamasusers00000000000000pychess-0.12.2/lang/kn/LC_MESSAGES/pychess.po0000644000175000017470000024457412653216174020733 0ustar tamasusers00000000000000# SOME DESCRIPTIVE TITLE. # Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER # This file is distributed under the same license as the pychess package. # # Translators: # srividya , 2014 # Yogesh K S , 2013 msgid "" msgstr "" "Project-Id-Version: pychess\n" "Report-Msgid-Bugs-To: \n" "POT-Creation-Date: 2016-01-27 13:28+0100\n" "PO-Revision-Date: 2016-01-28 08:56+0000\n" "Last-Translator: slav0nic \n" "Language-Team: Kannada (http://www.transifex.com/gbtami/pychess/language/kn/)\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" "Language: kn\n" "Plural-Forms: nplurals=1; plural=0;\n" # "Plural-Forms: nplurals=INTEGER; plural=EXPRESSION;\n" #: glade/analyze_game.glade:22 msgid "Analyze game" msgstr "ಆಟವನ್ನು ವಿಶ್ಲೇಷಿಸು" #: glade/analyze_game.glade:87 msgid "Use analyzer:" msgstr "ವಿಶ್ಲೇಷಕವನ್ನು ಬಳಸು:" #: glade/analyze_game.glade:122 glade/PyChess.glade:2054 msgid "Maximum analysis time in seconds:" msgstr "ವಿಶ್ಲೇಷಣೆಯ ಗರಿಷ್ಠ ಸಮಯ ಸೆಕೆಂಡುಗಳಲ್ಲಿ:" #: glade/analyze_game.glade:163 msgid "" "If the analyzer finds a move where the evaluation difference (the difference" " between the evaluation for the move it thinks is the best move and the " "evaluation for the move made in the game) exceeds this value, it will add an" " annotation for that move (consisting of the engine's Principal Variation " "for the move) to the Annotation panel" msgstr "" #: glade/analyze_game.glade:164 msgid "Variation annotation creation threshold in centipawns:" msgstr "" #: glade/analyze_game.glade:198 msgid "Analyze from current position" msgstr "" #: glade/analyze_game.glade:214 msgid "Add threatening variation lines " msgstr "" #: glade/analyze_game.glade:229 glade/PyChess.glade:1459 msgid "Colorize analyzed moves" msgstr "ವಿಶ್ಲೇಷಿಸಿದ ನಡಿಗೆಗಳಿಗೆ ಬಣ್ಣೆಸು" #: glade/analyze_game.glade:244 glade/PyChess.glade:1495 msgid "Show evaluation values" msgstr "ಮೌಲ್ಯಮಾಪನ ಮೌಲ್ಯಗಳನ್ನು ತೋರಿಸು" #: glade/discovererDialog.glade:18 msgid "PyChess is discovering your engines. Please wait." msgstr "" #: glade/discovererDialog.glade:77 msgid "PyChess.py:" msgstr "PyChess.py:" #: glade/discovererDialog.glade:89 msgid "ShredderLinuxChess:" msgstr "" #: glade/discovererDialog.glade:101 msgid "gnuchess:" msgstr "ಗ್ನು ಚೆಸ್" #: glade/fics_logon.glade:7 msgid "PyChess - Connect to Internet Chess" msgstr "" #: glade/fics_logon.glade:47 msgid "Connect to the Free Online Chess Server" msgstr "ಉಚಿತ ಆನ್ ಲೈನ್ ಚದುರಂಗ ಸರ್ವರ್ ಗೆ ಸಂಪರ್ಕ ಮಾಡಿ" #: glade/fics_logon.glade:129 glade/taskers.glade:394 msgid "_Password:" msgstr "_ಗುಪ್ತಪದ" #: glade/fics_logon.glade:143 msgid "_Name:" msgstr "_ಹೆಸರು" #: glade/fics_logon.glade:191 msgid "Log on as _Guest" msgstr "ಅತಿಥಿಯಾಗಿ ಪ್ರವೇಶಿಸು" #: glade/fics_logon.glade:227 msgid "Host:" msgstr "" #: glade/fics_logon.glade:259 msgid "Po_rts:" msgstr "" #: glade/fics_logon.glade:271 msgid "Auto login on startup" msgstr "" #: glade/fics_logon.glade:385 msgid "S_ign up" msgstr "ಸೈನ್ ಅಪ್" #: glade/fics_lounge.glade:35 msgid "Challenge: " msgstr "ಸವಾಲು: " #: glade/fics_lounge.glade:97 msgid "Send Challenge" msgstr "ಸವಾಲನ್ನು ಕಳುಹಿಸು" #: glade/fics_lounge.glade:133 msgid "Challenge:" msgstr "ಸವಾಲು:" #: glade/fics_lounge.glade:327 glade/fics_lounge.glade:2078 msgid "Lightning:" msgstr "ಮಿಂಚಿನ :" #: glade/fics_lounge.glade:351 glade/fics_lounge.glade:2102 msgid "Standard:" msgstr "" #: glade/fics_lounge.glade:375 glade/fics_lounge.glade:2126 msgid "Blitz:" msgstr "ಬ್ಲಿಟ್ಜ್" #: glade/fics_lounge.glade:400 msgid "2 min, Fischer Random, Black" msgstr "" #: glade/fics_lounge.glade:422 msgid "10 min + 6 sec/move, White" msgstr "" #: glade/fics_lounge.glade:444 msgid "5 min" msgstr "5 ನಿಮಿಷ" #: glade/fics_lounge.glade:480 msgid "Edit Seek" msgstr "" #: glade/fics_lounge.glade:584 lib/pychess/ic/ICLounge.py:2208 #: lib/pychess/ic/__init__.py:101 lib/pychess/Utils/GameModel.py:206 msgid "Untimed" msgstr "" #: glade/fics_lounge.glade:637 msgid "Minutes: " msgstr "ನಿಮಿಶಗಳು:" #: glade/fics_lounge.glade:665 msgid " Gain: " msgstr "" #: glade/fics_lounge.glade:703 msgid "Time control: " msgstr "" #: glade/fics_lounge.glade:716 lib/pychess/ic/FICSObjects.py:56 #: lib/pychess/ic/ICLounge.py:1137 lib/pychess/ic/ICLounge.py:2208 #: lib/pychess/ic/__init__.py:99 msgid "Standard" msgstr "" #: glade/fics_lounge.glade:757 glade/newInOut.glade:633 msgid "Time Control" msgstr "" #: glade/fics_lounge.glade:814 glade/fics_lounge.glade:1346 msgid "Don't care" msgstr "" #: glade/fics_lounge.glade:879 msgid "Your strength: " msgstr "" #: glade/fics_lounge.glade:921 msgid "(Blitz)" msgstr "" #: glade/fics_lounge.glade:951 msgid "Opponent's strength: " msgstr "" #: glade/fics_lounge.glade:1055 msgid "" "When this button is in the \"locked\" state, the relationship\n" "between \"Opponent's strength\" and \"Your strength\" will be\n" "preserved when \n" "a) your rating for the type of game sought has changed\n" "b) you change the variant or the time control" msgstr "" #: glade/fics_lounge.glade:1095 msgid "Center:" msgstr "" #: glade/fics_lounge.glade:1134 msgid "1200" msgstr "1200" #: glade/fics_lounge.glade:1188 msgid "Tolerance:" msgstr "" #: glade/fics_lounge.glade:1243 lib/pychess/ic/ICLounge.py:2452 msgid "Hide" msgstr "" #: glade/fics_lounge.glade:1289 msgid "Opponent Strength" msgstr "" #: glade/fics_lounge.glade:1386 lib/pychess/Database/gamelist.py:40 #: lib/pychess/ic/ICLounge.py:1357 lib/pychess/ic/ICLounge.py:1557 #: lib/pychess/ic/ICLounge.py:2108 lib/pychess/Utils/repr.py:10 #: lib/pychess/widgets/ChessClock.py:40 #: lib/pychess/widgets/TaskerManager.py:153 msgid "White" msgstr "ಬಿಳಿ" #: glade/fics_lounge.glade:1414 lib/pychess/Database/gamelist.py:40 #: lib/pychess/ic/ICLounge.py:1358 lib/pychess/ic/ICLounge.py:1558 #: lib/pychess/ic/ICLounge.py:2110 lib/pychess/Utils/repr.py:10 #: lib/pychess/widgets/ChessClock.py:40 #: lib/pychess/widgets/TaskerManager.py:154 msgid "Black" msgstr "ಕಪ್ಪು" #: glade/fics_lounge.glade:1453 msgid "Your Color" msgstr "ನಿಮ್ಮ ಬಣ್ಣ" #: glade/fics_lounge.glade:1512 msgid "Play normal chess rules" msgstr "" #: glade/fics_lounge.glade:1552 msgid "Play" msgstr "ಆಡು" #: glade/fics_lounge.glade:1618 glade/newInOut.glade:833 msgid "Chess Variant" msgstr "" #: glade/fics_lounge.glade:1676 msgid "Rated game" msgstr "" #: glade/fics_lounge.glade:1692 msgid "Manually accept opponent" msgstr "" #: glade/fics_lounge.glade:1722 msgid "Options" msgstr "ಆಯ್ಕೆಗಳು" #: glade/fics_lounge.glade:1750 msgid "PyChess - Internet Chess: FICS" msgstr "" #: glade/fics_lounge.glade:1823 msgid "_Clear Seeks" msgstr "" #: glade/fics_lounge.glade:1847 msgid "_Accept" msgstr "" #: glade/fics_lounge.glade:1871 msgid "_Decline" msgstr "" #: glade/fics_lounge.glade:2151 msgid "2 min, Fischer Random, 1800↓, Black" msgstr "" #: glade/fics_lounge.glade:2172 msgid "10 min + 6 sec/move, 1400↑, White" msgstr "" #: glade/fics_lounge.glade:2193 msgid "5 min, 1200-1800, Manual" msgstr "" #: glade/fics_lounge.glade:2247 msgid "Send all seeks" msgstr "" #: glade/fics_lounge.glade:2301 msgid "Send seek" msgstr "" #: glade/fics_lounge.glade:2337 msgid "Create Seek" msgstr "" #: glade/fics_lounge.glade:2353 msgid "_Seeks / Challenges" msgstr "" #: glade/fics_lounge.glade:2374 lib/pychess/ic/ICLounge.py:472 #: lib/pychess/ic/ICLounge.py:670 lib/pychess/ic/ICLounge.py:1357 #: lib/pychess/ic/ICLounge.py:1358 msgid "Rating" msgstr "" #: glade/fics_lounge.glade:2399 msgid "Time" msgstr "ಸಮಯ" #: glade/fics_lounge.glade:2419 msgid "Seek _Graph" msgstr "" #: glade/fics_lounge.glade:2444 msgid "0 Players Ready" msgstr "" #: glade/fics_lounge.glade:2496 msgid "Challenge" msgstr "" #: glade/fics_lounge.glade:2549 glade/fics_lounge.glade:2735 msgid "Observe" msgstr "" #: glade/fics_lounge.glade:2602 msgid "Start Private Chat" msgstr "" #: glade/fics_lounge.glade:2659 msgid "_Player List" msgstr "" #: glade/fics_lounge.glade:2792 msgid "_Game List" msgstr "" #: glade/fics_lounge.glade:2847 msgid "_My games" msgstr "" #: glade/fics_lounge.glade:2904 glade/PyChess.glade:841 msgid "Offer _Resume" msgstr "" #: glade/fics_lounge.glade:2962 glade/PyChess.glade:880 msgid "R_esign" msgstr "" #: glade/fics_lounge.glade:3006 glade/PyChess.glade:820 msgid "Offer _Draw" msgstr "" #: glade/fics_lounge.glade:3050 msgid "Offer A_bort" msgstr "" #: glade/fics_lounge.glade:3107 msgid "Pre_view" msgstr "" #: glade/fics_lounge.glade:3151 msgid "Examine" msgstr "" #: glade/fics_lounge.glade:3208 msgid "_Archived" msgstr "" #: glade/fics_lounge.glade:3313 msgid "News" msgstr "" #: glade/fics_lounge.glade:3345 msgid "Show Console" msgstr "" #: glade/fics_lounge.glade:3359 msgid "Show _Chat" msgstr "" #: glade/fics_lounge.glade:3373 msgid "_Log Off" msgstr "" #: glade/fics_lounge.glade:3393 msgid "Tools" msgstr "" #: glade/fics_lounge.glade:3428 msgid "Asymmetric Random " msgstr "" #: glade/findbar.glade:6 msgid "window1" msgstr "" #: glade/findbar.glade:21 msgid "0 of 0" msgstr "" #: glade/findbar.glade:66 msgid "Search:" msgstr "" #: glade/findbar.glade:134 msgid "_Previous" msgstr "" #: glade/findbar.glade:192 msgid "_Next" msgstr "" #: glade/newInOut.glade:45 lib/pychess/widgets/newGameDialog.py:445 msgid "New Game" msgstr "ಹೊಸ ಆಟ" #: glade/newInOut.glade:108 msgid "_Start Game" msgstr "" #: glade/newInOut.glade:130 msgid "Copy FEN" msgstr "" #: glade/newInOut.glade:143 msgid "Clear" msgstr "" #: glade/newInOut.glade:156 msgid "Paste FEN" msgstr "" #: glade/newInOut.glade:257 msgid "_Black player:" msgstr "_ಕಪ್ಪು ಆಟಗಾರ" #: glade/newInOut.glade:274 msgid "_White player:" msgstr "" #: glade/newInOut.glade:385 msgid "Players" msgstr "" #: glade/newInOut.glade:436 msgid "_Untimed" msgstr "" #: glade/newInOut.glade:475 msgid "Blitz: 5 min" msgstr "" #: glade/newInOut.glade:526 msgid "Rapid: 15 min + 10 sec/move" msgstr "" #: glade/newInOut.glade:575 msgid "Normal: 40 min + 15 sec/move" msgstr "" #: glade/newInOut.glade:684 msgid "_Play Normal chess" msgstr "" #: glade/newInOut.glade:724 msgid "Play Fischer Random chess" msgstr "" #: glade/newInOut.glade:774 msgid "Play Losers chess" msgstr "" #: glade/newInOut.glade:919 msgid "Open Game" msgstr "" #: glade/newInOut.glade:1162 msgid "Initial Position" msgstr "" #: glade/newInOut.glade:1219 msgid "Enter Game Notation" msgstr "" #: glade/newInOut.glade:1314 msgid "Halfmove clock" msgstr "" #: glade/newInOut.glade:1327 msgid "En passant line" msgstr "" #: glade/newInOut.glade:1339 msgid "Side to move" msgstr "" #: glade/newInOut.glade:1351 msgid "Move number" msgstr "" #: glade/newInOut.glade:1361 msgid "Black O-O" msgstr "" #: glade/newInOut.glade:1375 msgid "Black O-O-O" msgstr "" #: glade/newInOut.glade:1389 msgid "White O-O-O" msgstr "" #: glade/newInOut.glade:1403 msgid "White O-O" msgstr "" #: glade/promotion.glade:7 msgid "Promotion" msgstr "" #: glade/promotion.glade:49 lib/pychess/Utils/repr.py:12 msgid "Queen" msgstr "ರಾಣಿ" #: glade/promotion.glade:95 lib/pychess/Utils/repr.py:12 msgid "Rook" msgstr "" #: glade/promotion.glade:141 lib/pychess/Utils/repr.py:12 msgid "Bishop" msgstr "ಒಂಟೆ" #: glade/promotion.glade:187 lib/pychess/Utils/repr.py:12 msgid "Knight" msgstr "" #: glade/promotion.glade:233 lib/pychess/Utils/repr.py:12 msgid "King" msgstr "ರಾಜ" #: glade/promotion.glade:265 msgid "Promote pawn to what?" msgstr "" #: glade/PyChess.glade:9 msgid "Chess client" msgstr "" #: glade/PyChess.glade:44 msgid "Game information" msgstr "" #: glade/PyChess.glade:164 msgid "Event:" msgstr "" #: glade/PyChess.glade:178 msgid "Site:" msgstr "" #: glade/PyChess.glade:204 msgid "Round:" msgstr "" #: glade/PyChess.glade:237 msgid "White:" msgstr "" #: glade/PyChess.glade:249 msgid "Black:" msgstr "" #: glade/PyChess.glade:302 msgid "Game data" msgstr "" #: glade/PyChess.glade:357 msgid "Date of game" msgstr "" #: glade/PyChess.glade:495 msgid "_Game" msgstr "_ಆಟ" #: glade/PyChess.glade:502 msgid "_New Game" msgstr "_ಹೊಸ ಆಟ" #: glade/PyChess.glade:515 msgid "Play _Internet Chess" msgstr "ಅಂತರಜಾಲದಲ್ಲಿ ಚದುರಂಗವನ್ನು ಆಡು " #: glade/PyChess.glade:534 msgid "_Load Game" msgstr "" #: glade/PyChess.glade:550 msgid "Load _Recent Game" msgstr "" #: glade/PyChess.glade:558 msgid "Open _Database" msgstr "" #: glade/PyChess.glade:569 lib/pychess/widgets/newGameDialog.py:615 msgid "Setup Position" msgstr "" #: glade/PyChess.glade:579 msgid "Enter Game _Notation" msgstr "" #: glade/PyChess.glade:592 msgid "_Save Game" msgstr "" #: glade/PyChess.glade:606 msgid "Save Game _As" msgstr "" #: glade/PyChess.glade:624 msgid "Share Game" msgstr "" #: glade/PyChess.glade:630 msgid "_Export Position" msgstr "" #: glade/PyChess.glade:644 msgid "_Analyze Game" msgstr "" #: glade/PyChess.glade:678 msgid "Player _Rating" msgstr "" #: glade/PyChess.glade:723 msgid "_Edit" msgstr "" #: glade/PyChess.glade:734 msgid "_Copy PGN" msgstr "" #: glade/PyChess.glade:746 msgid "_Copy FEN" msgstr "" #: glade/PyChess.glade:763 msgid "_Engines" msgstr "" #: glade/PyChess.glade:789 msgid "_Actions" msgstr "" #: glade/PyChess.glade:800 msgid "Offer _Abort" msgstr "" #: glade/PyChess.glade:810 msgid "Offer Ad_journment" msgstr "" #: glade/PyChess.glade:831 msgid "Offer _Pause" msgstr "" #: glade/PyChess.glade:847 msgid "Offer _Undo" msgstr "" #: glade/PyChess.glade:870 msgid "_Call Flag" msgstr "" #: glade/PyChess.glade:890 msgid "Ask to _Move" msgstr "" #: glade/PyChess.glade:905 msgid "Auto Call _Flag" msgstr "" #: glade/PyChess.glade:918 msgid "_View" msgstr "" #: glade/PyChess.glade:925 msgid "_Rotate Board" msgstr "" #: glade/PyChess.glade:939 msgid "_Fullscreen" msgstr "" #: glade/PyChess.glade:952 msgid "Leave _Fullscreen" msgstr "" #: glade/PyChess.glade:969 msgid "_Show Sidepanels" msgstr "" #: glade/PyChess.glade:980 msgid "_Log Viewer" msgstr "" #: glade/PyChess.glade:997 msgid "_Hint mode" msgstr "" #: glade/PyChess.glade:1009 msgid "Sp_y mode" msgstr "" #: glade/PyChess.glade:1024 msgid "_Help" msgstr "" #: glade/PyChess.glade:1034 msgid "About Chess" msgstr "ಚದುರಂಗದ ಬಗ್ಗೆ" #: glade/PyChess.glade:1043 msgid "How to Play" msgstr "" #: glade/PyChess.glade:1052 msgid "Translate PyChess" msgstr "ಪೈಚೆಸ್ ಅನುವಾದಿಸು" #: glade/PyChess.glade:1058 msgid "Tip of the Day" msgstr "" #: glade/PyChess.glade:1153 msgid "Default" msgstr "" #: glade/PyChess.glade:1156 msgid "Knights" msgstr "" #: glade/PyChess.glade:1167 lib/pychess/widgets/preferencesDialog.py:349 msgid "Beep" msgstr "" #: glade/PyChess.glade:1170 lib/pychess/widgets/preferencesDialog.py:350 msgid "Select sound file..." msgstr "" #: glade/PyChess.glade:1173 lib/pychess/widgets/preferencesDialog.py:348 msgid "No sound" msgstr "" #: glade/PyChess.glade:1180 msgid "Preferences" msgstr "" #: glade/PyChess.glade:1218 msgid "The displayed name of the first human player, e.g., John." msgstr "" #: glade/PyChess.glade:1230 msgid "Name of _first human player:" msgstr "" #: glade/PyChess.glade:1259 msgid "The displayed name of the guest player, e.g., Mary." msgstr "" #: glade/PyChess.glade:1271 msgid "Name of s_econd human player:" msgstr "" #: glade/PyChess.glade:1307 msgid "_Hide tabs when only one game is open" msgstr "" #: glade/PyChess.glade:1312 msgid "" "If set, this hides the tab in the top of the playing window, when it is not " "needed." msgstr "" #: glade/PyChess.glade:1326 msgid "_Use main app closer [x] to close all games" msgstr "" #: glade/PyChess.glade:1331 msgid "" "If set, clicking on main application window closer first time it closes all " "games." msgstr "" #: glade/PyChess.glade:1345 msgid "Auto _rotate board to current human player" msgstr "" #: glade/PyChess.glade:1350 msgid "" "If set, the board will turn after each move, to show the natural view for " "the current player." msgstr "" #: glade/PyChess.glade:1364 msgid "Auto _promote to queen" msgstr "" #: glade/PyChess.glade:1369 msgid "If set, pawn promotes to queen without promotion dialog selection." msgstr "" #: glade/PyChess.glade:1383 msgid "Face _to Face display mode" msgstr "" #: glade/PyChess.glade:1388 msgid "" "If set, the black pieces will be head down, suitable for playing against " "friends on mobile devices." msgstr "" #: glade/PyChess.glade:1402 msgid "Sho_w cords" msgstr "" #: glade/PyChess.glade:1407 msgid "" "If set, the playing board will display labels and ranks for each chess " "field. These are usable in chess notation." msgstr "" #: glade/PyChess.glade:1421 msgid "Show _captured pieces" msgstr "" #: glade/PyChess.glade:1426 msgid "If set, the captured figurines will be shown next to the board." msgstr "" #: glade/PyChess.glade:1440 msgid "Prefer figures in _notation" msgstr "" #: glade/PyChess.glade:1445 msgid "" "If set, PyChess will use figures to express moved pieces, rather than " "uppercase letters." msgstr "" #: glade/PyChess.glade:1464 msgid "If set, PyChess will colorize suboptimal analyzed moves with red." msgstr "" #: glade/PyChess.glade:1477 msgid "Show elapsed move times" msgstr "" #: glade/PyChess.glade:1482 msgid "If set, the elapsed time that a player used for the move is shown." msgstr "" #: glade/PyChess.glade:1500 msgid "If set, the hint analyzer engine evaluation value is shown." msgstr "" #: glade/PyChess.glade:1526 msgid "General Options" msgstr "" #: glade/PyChess.glade:1560 msgid "F_ull board animation" msgstr "" #: glade/PyChess.glade:1565 msgid "Animate pieces, board rotation and more. Use this on fast machines." msgstr "" #: glade/PyChess.glade:1579 msgid "Only animate _moves" msgstr "" #: glade/PyChess.glade:1584 msgid "Only animate piece moves." msgstr "" #: glade/PyChess.glade:1599 msgid "No _animation" msgstr "" #: glade/PyChess.glade:1604 msgid "Never use animation. Use this on slow machines." msgstr "" #: glade/PyChess.glade:1632 msgid "Animation" msgstr "" #: glade/PyChess.glade:1651 msgid "_General" msgstr "_ಸಾಮಾನ್ಯ" #: glade/PyChess.glade:1692 msgid "Use opening _book" msgstr "" #: glade/PyChess.glade:1697 msgid "If set, PyChess will suggest best opening moves on hint panel." msgstr "" #: glade/PyChess.glade:1724 msgid "Polyglot book file:" msgstr "" #: glade/PyChess.glade:1768 msgid "Use _local tablebases" msgstr "" #: glade/PyChess.glade:1773 msgid "" "If set, PyChess will show game results for different moves in positions containing 6 or less pieces.\n" "You can download tablebase files from:\n" "http://www.olympuschess.com/egtb/gaviota/" msgstr "" #: glade/PyChess.glade:1803 msgid "Gaviota TB path:" msgstr "" #: glade/PyChess.glade:1843 msgid "Use _online tablebases" msgstr "" #: glade/PyChess.glade:1848 msgid "" "If set, PyChess will show game results for different moves in positions containing 6 or less pieces.\n" "It will search positions from http://www.k4it.de/" msgstr "" #: glade/PyChess.glade:1870 msgid "Opening, endgame" msgstr "" #: glade/PyChess.glade:1904 msgid "Use _analyzer" msgstr "" #: glade/PyChess.glade:1946 msgid "" "The analyzer will run in the background and analyze the game. This is " "necessary for the hint mode to work" msgstr "" #: glade/PyChess.glade:1978 msgid "Use _inverted analyzer" msgstr "" #: glade/PyChess.glade:2020 msgid "" "The inverse analyzer will analyze the game as if your opponent was to move. " "This is necessary for the spy mode to work" msgstr "" #: glade/PyChess.glade:2096 msgid "Analyzing" msgstr "" #: glade/PyChess.glade:2118 msgid "_Hints" msgstr "" #: glade/PyChess.glade:2263 msgid "Uninstall" msgstr "" #: glade/PyChess.glade:2317 msgid "Ac_tive" msgstr "" #: glade/PyChess.glade:2367 msgid "Installed Sidepanels" msgstr "" #: glade/PyChess.glade:2382 msgid "Side_panels" msgstr "" #: glade/PyChess.glade:2440 msgid "Light Squares :" msgstr "" #: glade/PyChess.glade:2479 msgid "Dark Squares :" msgstr "" #: glade/PyChess.glade:2515 msgid "Reset Default Colours" msgstr "" #: glade/PyChess.glade:2551 msgid "Board Colours" msgstr "" #: glade/PyChess.glade:2610 msgid "Chess Sets" msgstr "" #: glade/PyChess.glade:2634 msgid "Themes" msgstr "" #: glade/PyChess.glade:2659 msgid "_Use sounds in PyChess" msgstr "" #: glade/PyChess.glade:2982 msgid "A player _checks:" msgstr "" #: glade/PyChess.glade:2997 msgid "A player _moves:" msgstr "" #: glade/PyChess.glade:3010 msgid "Game is _drawn:" msgstr "" #: glade/PyChess.glade:3025 msgid "Game is _lost:" msgstr "" #: glade/PyChess.glade:3040 msgid "Game is _won:" msgstr "" #: glade/PyChess.glade:3055 msgid "A player c_aptures:" msgstr "" #: glade/PyChess.glade:3084 msgid "Game is _set-up:" msgstr "" #: glade/PyChess.glade:3136 msgid "_Observed moves:" msgstr "" #: glade/PyChess.glade:3151 msgid "Observed _ends:" msgstr "" #: glade/PyChess.glade:3265 msgid "Short on _time:" msgstr "" #: glade/PyChess.glade:3317 msgid "_Invalid move:" msgstr "" #: glade/PyChess.glade:3369 msgid "Activate alarm when _remaining sec is:" msgstr "" #: glade/PyChess.glade:3416 msgid "Play Sound When..." msgstr "" #: glade/PyChess.glade:3438 msgid "_Sounds" msgstr "" #: glade/PyChess.glade:3463 msgid "_Auto save finished games" msgstr "" #: glade/PyChess.glade:3497 msgid "Save files to:" msgstr "" #: glade/PyChess.glade:3525 msgid "Use name format:" msgstr "" #: glade/PyChess.glade:3569 msgid "Names: #n1, #n2" msgstr "" #: glade/PyChess.glade:3582 msgid "Year, month, day: #y, #m, #d" msgstr "" #: glade/PyChess.glade:3619 msgid "Save elapsed move _times" msgstr "" #: glade/PyChess.glade:3644 msgid "Save analyzing engine _evaluation values" msgstr "" #: glade/PyChess.glade:3669 msgid "Save _own games only" msgstr "" #: glade/PyChess.glade:3698 msgid "Save" msgstr "" #: glade/PyChess.glade:3728 msgid "uci" msgstr "" #: glade/PyChess.glade:3731 msgid "xboard" msgstr "" #: glade/PyChess.glade:3739 msgid "Manage engines" msgstr "" #: glade/PyChess.glade:3837 msgid "Command:" msgstr "" #: glade/PyChess.glade:3851 msgid "Protocol:" msgstr "" #: glade/PyChess.glade:3865 msgid "Parameters:" msgstr "" #: glade/PyChess.glade:3878 msgid "Command line parameters needed by the engine." msgstr "" #: glade/PyChess.glade:3903 msgid "" "Engines use uci or xboard communication protocol to talk to the GUI.\n" "If it can use both you can set here which one you like." msgstr "" #: glade/PyChess.glade:3929 msgid "Working directory:" msgstr "" #: glade/PyChess.glade:3942 msgid "The directory where the engine will be started from." msgstr "" #: glade/saveGamesDialog.glade:7 msgid "Quit PyChess" msgstr "" #: glade/saveGamesDialog.glade:24 lib/pychess/widgets/ionest.py:424 msgid "Close _without Saving" msgstr "" #: glade/saveGamesDialog.glade:83 msgid "_Save %d documents" msgstr "" #: glade/saveGamesDialog.glade:141 msgid "" "There are %d games with unsaved moves. Save changes before " "closing?" msgstr "" #: glade/saveGamesDialog.glade:161 msgid "Select the games you want to save:" msgstr "" #: glade/saveGamesDialog.glade:204 msgid "If you don't save, new changes to your games will be permanently lost." msgstr "" #: glade/taskers.glade:126 msgid "_Opponent:" msgstr "" #: glade/taskers.glade:154 msgid "_Your Color:" msgstr "_ನಿಮ್ಮ ಬಣ್ಣ" #: glade/taskers.glade:219 msgid "_Start Game" msgstr "" #: glade/taskers.glade:338 msgid "Log on as G_uest" msgstr "" #: glade/taskers.glade:410 msgid "Ha_ndle:" msgstr "" #: glade/taskers.glade:469 msgid "_Connect to server" msgstr "" #: glade/tipoftheday.glade:7 msgid "Tip Of The day" msgstr "" #: glade/tipoftheday.glade:62 msgid "Show tips at startup" msgstr "" #: lib/pychess/Main.py:302 msgid "http://en.wikipedia.org/wiki/Chess" msgstr "http://kn.wikipedia.org/wiki/ಚದುರಂಗ_(ಆಟ)" #: lib/pychess/Main.py:305 msgid "http://en.wikipedia.org/wiki/Rules_of_chess" msgstr "http://kn.wikipedia.org/wiki/ಚದುರಂಗದ_ನಿಯಮಗಳು" #: lib/pychess/Main.py:370 lib/pychess/widgets/gamenanny.py:80 msgid "Welcome" msgstr "ಸುಸ್ವಾಗತ" #: lib/pychess/Database/gamelist.py:40 msgid "Id" msgstr "" #: lib/pychess/Database/gamelist.py:40 msgid "W Elo" msgstr "" #: lib/pychess/Database/gamelist.py:40 msgid "B Elo" msgstr "" #: lib/pychess/Database/gamelist.py:41 msgid "Result" msgstr "ಫಲಿತಾಂಶ" #: lib/pychess/Database/gamelist.py:41 msgid "Event" msgstr "" #: lib/pychess/Database/gamelist.py:41 msgid "Site" msgstr "" #: lib/pychess/Database/gamelist.py:41 msgid "Round" msgstr "" #: lib/pychess/Database/gamelist.py:41 msgid "Date" msgstr "ದಿನಾಂಕ" #: lib/pychess/Database/gamelist.py:41 msgid "ECO" msgstr "" #: lib/pychess/Database/gamelist.py:62 msgid "PyChess Game Database" msgstr "" #: lib/pychess/Database/PgnImport.py:188 #, python-format msgid "The game #%s can't be loaded, because of an error parsing FEN" msgstr "" #: lib/pychess/ic/FICSConnection.py:139 msgid "The connection was broken - got \"end of file\" message" msgstr "" #: lib/pychess/ic/FICSConnection.py:140 #, python-format msgid "'%s' is not a registered name" msgstr "" #: lib/pychess/ic/FICSConnection.py:141 msgid "" "The entered password was invalid.\n" "If you forgot your password, go to http://www.freechess.org/password to request a new one over email." msgstr "" #: lib/pychess/ic/FICSConnection.py:145 #, python-format msgid "Sorry '%s' is already logged in" msgstr "" #: lib/pychess/ic/FICSConnection.py:146 #, python-format msgid "'%s' is a registered name. If it is yours, type the password." msgstr "" #: lib/pychess/ic/FICSConnection.py:147 msgid "" "Due to abuse problems, guest connections have been prevented.\n" "You can still register on http://www.freechess.org" msgstr "" #: lib/pychess/ic/FICSConnection.py:166 msgid "Connecting to server" msgstr "" #: lib/pychess/ic/FICSConnection.py:181 msgid "Logging on to server" msgstr "" #: lib/pychess/ic/FICSConnection.py:239 msgid "Setting up environment" msgstr "" #: lib/pychess/ic/FICSObjects.py:35 lib/pychess/ic/FICSObjects.py:47 #, python-format msgid "%(player)s is %(status)s" msgstr "" #: lib/pychess/ic/FICSObjects.py:46 msgid "not playing" msgstr "" #: lib/pychess/ic/FICSObjects.py:54 lib/pychess/ic/ICLounge.py:1136 #: lib/pychess/ic/ICLounge.py:2209 lib/pychess/ic/__init__.py:98 #: lib/pychess/widgets/newGameDialog.py:153 msgid "Blitz" msgstr "" #: lib/pychess/ic/FICSObjects.py:58 lib/pychess/ic/ICLounge.py:1137 #: lib/pychess/ic/ICLounge.py:2209 lib/pychess/ic/__init__.py:100 msgid "Lightning" msgstr "" #: lib/pychess/ic/FICSObjects.py:60 lib/pychess/Variants/atomic.py:15 msgid "Atomic" msgstr "" #: lib/pychess/ic/FICSObjects.py:62 lib/pychess/Variants/bughouse.py:9 msgid "Bughouse" msgstr "" #: lib/pychess/ic/FICSObjects.py:64 lib/pychess/Variants/crazyhouse.py:9 msgid "Crazyhouse" msgstr "" #: lib/pychess/ic/FICSObjects.py:66 lib/pychess/Variants/losers.py:9 msgid "Losers" msgstr "" #: lib/pychess/ic/FICSObjects.py:68 lib/pychess/Variants/suicide.py:12 msgid "Suicide" msgstr "" #: lib/pychess/ic/FICSObjects.py:70 lib/pychess/ic/__init__.py:129 msgid "Wild" msgstr "" #: lib/pychess/ic/FICSObjects.py:117 msgid "Online" msgstr "" #: lib/pychess/ic/FICSObjects.py:118 lib/pychess/ic/FICSObjects.py:143 msgid "Offline" msgstr "" #: lib/pychess/ic/FICSObjects.py:133 msgid "Available" msgstr "" #: lib/pychess/ic/FICSObjects.py:135 msgid "Playing" msgstr "" #: lib/pychess/ic/FICSObjects.py:141 msgid "Idle" msgstr "" #: lib/pychess/ic/FICSObjects.py:145 msgid "Examining" msgstr "" #: lib/pychess/ic/FICSObjects.py:147 msgid "Not Available" msgstr "" #: lib/pychess/ic/FICSObjects.py:149 msgid "Running Simul Match" msgstr "" #: lib/pychess/ic/FICSObjects.py:151 msgid "In Tournament" msgstr "" #: lib/pychess/ic/FICSObjects.py:308 lib/pychess/ic/FICSObjects.py:492 #: lib/pychess/ic/ICLounge.py:2278 msgid "Unrated" msgstr "" #: lib/pychess/ic/FICSObjects.py:491 lib/pychess/ic/ICLounge.py:670 #: lib/pychess/ic/ICLounge.py:1358 lib/pychess/ic/ICLounge.py:1558 #: lib/pychess/ic/ICLounge.py:2113 msgid "Rated" msgstr "" #: lib/pychess/ic/FICSObjects.py:498 lib/pychess/ic/ICLounge.py:2098 #, python-format msgid "%d min" msgstr "" #: lib/pychess/ic/FICSObjects.py:500 #, python-format msgid " + %d sec" msgstr "" #: lib/pychess/ic/FICSObjects.py:517 #, python-format msgid "%(player)s plays %(color)s" msgstr "" #: lib/pychess/ic/FICSObjects.py:519 lib/pychess/ic/ICLounge.py:909 msgid "white" msgstr "" #: lib/pychess/ic/FICSObjects.py:519 lib/pychess/ic/ICLounge.py:909 msgid "black" msgstr "" #: lib/pychess/ic/FICSObjects.py:565 msgid "This is a continuation of an adjourned match" msgstr "" #: lib/pychess/ic/FICSObjects.py:654 msgid "Opponent Rating" msgstr "" #: lib/pychess/ic/FICSObjects.py:656 msgid "Manual Accept" msgstr "" #: lib/pychess/ic/FICSObjects.py:810 msgid "Private" msgstr "" #: lib/pychess/ic/FICSObjects.py:930 lib/pychess/ic/ICLounge.py:527 #: lib/pychess/Savers/epd.py:139 msgid "Unknown" msgstr "" #: lib/pychess/ic/ICLogon.py:159 lib/pychess/ic/ICLogon.py:165 msgid "Connection Error" msgstr "" #: lib/pychess/ic/ICLogon.py:161 msgid "Log on Error" msgstr "" #: lib/pychess/ic/ICLogon.py:163 msgid "Connection was closed" msgstr "" #: lib/pychess/ic/ICLogon.py:169 msgid "Address Error" msgstr "" #: lib/pychess/ic/ICLogon.py:172 msgid "Auto-logout" msgstr "" #: lib/pychess/ic/ICLogon.py:173 msgid "You have been logged out because you were idle more than 60 minutes" msgstr "" #: lib/pychess/ic/ICLounge.py:222 msgid "You have to set kibitz on to see bot messages here." msgstr "" #: lib/pychess/ic/ICLounge.py:241 msgid "" "You may only have 3 outstanding seeks at the same time. If you want to add a" " new seek you must clear your currently active seeks. Clear your seeks?" msgstr "" #: lib/pychess/ic/ICLounge.py:258 msgid "You can't touch this! You are examining a game." msgstr "" #: lib/pychess/ic/ICLounge.py:270 msgid " has declined your offer for a match" msgstr "" #: lib/pychess/ic/ICLounge.py:283 msgid " is censoring you" msgstr "" #: lib/pychess/ic/ICLounge.py:296 msgid " noplay listing you" msgstr "" #: lib/pychess/ic/ICLounge.py:311 msgid " uses a formula not fitting your match request:" msgstr "" #: lib/pychess/ic/ICLounge.py:325 msgid "to manual accept" msgstr "" #: lib/pychess/ic/ICLounge.py:327 msgid "to automatic accept" msgstr "" #: lib/pychess/ic/ICLounge.py:329 msgid "rating range now" msgstr "" #: lib/pychess/ic/ICLounge.py:330 msgid "Seek updated" msgstr "" #: lib/pychess/ic/ICLounge.py:342 msgid "Your seeks have been removed" msgstr "" #: lib/pychess/ic/ICLounge.py:363 msgid " has arrived" msgstr "" #: lib/pychess/ic/ICLounge.py:370 msgid " has departed" msgstr "" #: lib/pychess/ic/ICLounge.py:374 msgid " is present" msgstr "" #: lib/pychess/ic/ICLounge.py:391 sidepanel/chatPanel.py:17 msgid "Chat" msgstr "" #: lib/pychess/ic/ICLounge.py:472 sidepanel/bookPanel.py:366 msgid "Win" msgstr "ಗೆಲುವು" #: lib/pychess/ic/ICLounge.py:472 sidepanel/bookPanel.py:360 msgid "Draw" msgstr "" #: lib/pychess/ic/ICLounge.py:472 sidepanel/bookPanel.py:363 msgid "Loss" msgstr "ಸೋಲು" #: lib/pychess/ic/ICLounge.py:482 msgid "" "On FICS, your \"Wild\" rating encompasses all of the following variants at " "all time controls:\n" msgstr "" #: lib/pychess/ic/ICLounge.py:494 msgid "Sanctions" msgstr "" #: lib/pychess/ic/ICLounge.py:499 msgid "Email" msgstr "ಇ-ಸಂದೇಶ" #: lib/pychess/ic/ICLounge.py:504 msgid "Spent" msgstr "" #: lib/pychess/ic/ICLounge.py:506 msgid "online in total" msgstr "" #: lib/pychess/ic/ICLounge.py:512 msgid "Ping" msgstr "" #: lib/pychess/ic/ICLounge.py:517 msgid "Connecting" msgstr "" #: lib/pychess/ic/ICLounge.py:544 msgid "" "You are currently logged in as a guest.\n" "A guest can't play rated games and therefore isn't able to play as many of the types of matches offered as a registered user. To register an account, go to http://www.freechess.org/Register/index.html." msgstr "" #: lib/pychess/ic/ICLounge.py:669 lib/pychess/ic/ICLounge.py:1136 msgid "Name" msgstr "ಹೆಸರು" #: lib/pychess/ic/ICLounge.py:670 lib/pychess/ic/ICLounge.py:1358 #: lib/pychess/ic/ICLounge.py:1558 msgid "Type" msgstr "" #: lib/pychess/ic/ICLounge.py:670 lib/pychess/ic/ICLounge.py:1558 msgid "Clock" msgstr "ಗಂಟೆ" #: lib/pychess/ic/ICLounge.py:726 lib/pychess/ic/ICLounge.py:923 #: lib/pychess/Players/Human.py:250 msgid "Accept" msgstr "" #: lib/pychess/ic/ICLounge.py:728 msgid "Assess" msgstr "" #: lib/pychess/ic/ICLounge.py:734 msgid "Archived" msgstr "" #: lib/pychess/ic/ICLounge.py:848 #, python-format msgid "Active seeks: %d" msgstr "" #: lib/pychess/ic/ICLounge.py:897 #, python-format msgid "" " would like to resume your adjourned %(time)s %(gametype)s " "game." msgstr "" #: lib/pychess/ic/ICLounge.py:902 #, python-format msgid "" " challenges you to a %(time)s %(rated)s %(gametype)s game" msgstr "" #: lib/pychess/ic/ICLounge.py:907 #, python-format msgid " where %(player)s plays %(color)s." msgstr "" #: lib/pychess/ic/ICLounge.py:924 lib/pychess/Players/Human.py:251 msgid "Decline" msgstr "" #: lib/pychess/ic/ICLounge.py:1065 msgid " min" msgstr "ನಿಮಿಷ" #: lib/pychess/ic/ICLounge.py:1137 msgid "Status" msgstr "" #: lib/pychess/ic/ICLounge.py:1203 lib/pychess/ic/ICLounge.py:1233 #, python-format msgid "Players: %d" msgstr "" #: lib/pychess/ic/ICLounge.py:1469 #, python-format msgid "Games running: %d" msgstr "" #: lib/pychess/ic/ICLounge.py:1559 msgid "Date/Time" msgstr "" #: lib/pychess/ic/ICLounge.py:1614 #, python-format msgid "" " with whom you have an adjourned %(timecontrol)s %(gametype)s " "game is online." msgstr "" #: lib/pychess/ic/ICLounge.py:1635 msgid "Request Continuation" msgstr "" #: lib/pychess/ic/ICLounge.py:1637 msgid "Examine Adjourned Game" msgstr "" #: lib/pychess/ic/ICLounge.py:1965 msgid "" "The chain button is disabled because you are logged in as a guest. Guests " "can't establish ratings, and the chain button's state has no effect when " "there is no rating to which to tie \"Opponent Strength\" to" msgstr "" #: lib/pychess/ic/ICLounge.py:2006 msgid "Challenge: " msgstr "" #: lib/pychess/ic/ICLounge.py:2044 msgid "If set you can refuse players accepting your seek" msgstr "" #: lib/pychess/ic/ICLounge.py:2048 lib/pychess/ic/ICLounge.py:2051 msgid "This option is not applicable because you're challenging a player" msgstr "" #: lib/pychess/ic/ICLounge.py:2064 msgid "Edit Seek: " msgstr "" #: lib/pychess/ic/ICLounge.py:2095 #, python-format msgid "%(minutes)d min + %(gain)d sec/move" msgstr "" #: lib/pychess/ic/ICLounge.py:2116 msgid "Manual" msgstr "" #: lib/pychess/ic/ICLounge.py:2256 msgid "Any strength" msgstr "" #: lib/pychess/ic/ICLounge.py:2308 msgid "You can't play rated games because you are logged in as a guest" msgstr "" #: lib/pychess/ic/ICLounge.py:2312 msgid "You can't play rated games because \"Untimed\" is checked, " msgstr "" #: lib/pychess/ic/ICLounge.py:2313 msgid "and on FICS, untimed games can't be rated" msgstr "" #: lib/pychess/ic/ICLounge.py:2317 msgid "This option is not available because you're challenging a guest, " msgstr "" #: lib/pychess/ic/ICLounge.py:2318 msgid "and guests can't play rated games" msgstr "" #: lib/pychess/ic/ICLounge.py:2332 lib/pychess/Variants/shuffle.py:16 #: lib/pychess/widgets/newGameDialog.py:266 msgid "Shuffle" msgstr "" #: lib/pychess/ic/ICLounge.py:2333 lib/pychess/widgets/newGameDialog.py:267 msgid "Other (standard rules)" msgstr "" #: lib/pychess/ic/ICLounge.py:2334 lib/pychess/widgets/newGameDialog.py:268 msgid "Other (non standard rules)" msgstr "" #: lib/pychess/ic/ICLounge.py:2421 msgid "You can't select a variant because \"Untimed\" is checked, " msgstr "" #: lib/pychess/ic/ICLounge.py:2422 msgid "and on FICS, untimed games have to be normal chess rules" msgstr "" #: lib/pychess/ic/ICLounge.py:2454 msgid "Change Tolerance" msgstr "" #: lib/pychess/ic/__init__.py:102 msgid "Examined" msgstr "" #: lib/pychess/ic/__init__.py:103 msgid "Other" msgstr "" #: lib/pychess/ic/__init__.py:182 msgid "Administrator" msgstr "" #: lib/pychess/ic/__init__.py:182 msgid "Blindfold Account" msgstr "" #: lib/pychess/ic/__init__.py:182 msgid "Computer" msgstr "" #: lib/pychess/ic/__init__.py:183 msgid "Team Account" msgstr "" #: lib/pychess/ic/__init__.py:183 msgid "Unregistered" msgstr "" #: lib/pychess/ic/__init__.py:183 msgid "Chess Advisor" msgstr "" #: lib/pychess/ic/__init__.py:184 msgid "Service Representative" msgstr "" #: lib/pychess/ic/__init__.py:184 msgid "Tournament Director" msgstr "" #: lib/pychess/ic/__init__.py:184 msgid "Mamer Manager" msgstr "" #: lib/pychess/ic/__init__.py:185 msgid "Grand Master" msgstr "" #: lib/pychess/ic/__init__.py:185 msgid "International Master" msgstr "" #: lib/pychess/ic/__init__.py:185 msgid "FIDE Master" msgstr "" #: lib/pychess/ic/__init__.py:186 msgid "Woman Grand Master" msgstr "" #: lib/pychess/ic/__init__.py:186 msgid "Woman International Master" msgstr "" #: lib/pychess/ic/__init__.py:186 msgid "Woman FIDE Master" msgstr "" #: lib/pychess/ic/__init__.py:187 msgid "Dummy Account" msgstr "" #: lib/pychess/ic/__init__.py:191 msgid "*" msgstr "*" #: lib/pychess/ic/__init__.py:191 lib/pychess/Utils/repr.py:14 msgid "B" msgstr "" #: lib/pychess/ic/__init__.py:191 msgid "C" msgstr "" #: lib/pychess/ic/__init__.py:192 msgid "T" msgstr "" #: lib/pychess/ic/__init__.py:192 msgid "U" msgstr "" #: lib/pychess/ic/__init__.py:192 msgid "CA" msgstr "" #: lib/pychess/ic/__init__.py:193 msgid "SR" msgstr "" #: lib/pychess/ic/__init__.py:193 msgid "TD" msgstr "" #: lib/pychess/ic/__init__.py:193 msgid "TM" msgstr "" #: lib/pychess/ic/__init__.py:194 msgid "GM" msgstr "" #: lib/pychess/ic/__init__.py:194 msgid "IM" msgstr "" #: lib/pychess/ic/__init__.py:194 msgid "FM" msgstr "" #: lib/pychess/ic/__init__.py:195 msgid "WGM" msgstr "" #: lib/pychess/ic/__init__.py:195 msgid "WIM" msgstr "" #: lib/pychess/ic/__init__.py:195 msgid "WFM" msgstr "" #: lib/pychess/ic/__init__.py:195 msgid "D" msgstr "" #: lib/pychess/ic/__init__.py:195 msgid "H" msgstr "" #: lib/pychess/ic/__init__.py:195 msgid "CM" msgstr "" #: lib/pychess/ic/__init__.py:195 msgid "FA" msgstr "" #: lib/pychess/ic/__init__.py:195 msgid "NM" msgstr "" #: lib/pychess/Players/CECPEngine.py:857 #, python-format msgid "The engine %s reports an error:" msgstr "" #: lib/pychess/Players/Human.py:20 msgid "Your opponent has offered you a draw." msgstr "" #: lib/pychess/Players/Human.py:21 msgid "" "Your opponent has offered you a draw. If you accept this offer, the game " "will end with a score of 1/2 - 1/2." msgstr "" #: lib/pychess/Players/Human.py:23 msgid "Your opponent wants to abort the game." msgstr "" #: lib/pychess/Players/Human.py:24 msgid "" "Your opponent has asked that the game be aborted. If you accept this offer, " "the game will end with no rating change." msgstr "" #: lib/pychess/Players/Human.py:26 msgid "Your opponent wants to adjourn the game." msgstr "" #: lib/pychess/Players/Human.py:27 msgid "" "Your opponent has asked that the game be adjourned. If you accept this " "offer, the game will be adjourned and you can resume it later (when your " "opponent is online and both players agree to resume)." msgstr "" #: lib/pychess/Players/Human.py:29 #, python-format msgid "Your opponent wants to undo %s move(s)." msgstr "" #: lib/pychess/Players/Human.py:30 #, python-format msgid "" "Your opponent has asked that the last %s move(s) be undone. If you accept " "this offer, the game will continue from the earlier position." msgstr "" #: lib/pychess/Players/Human.py:32 msgid "Your opponent wants to pause the game." msgstr "" #: lib/pychess/Players/Human.py:33 msgid "" "Your opponent has asked that the game be paused. If you accept this offer, " "the game clock will be paused until both players agree to resume the game." msgstr "" #: lib/pychess/Players/Human.py:35 msgid "Your opponent wants to resume the game." msgstr "" #: lib/pychess/Players/Human.py:36 msgid "" "Your opponent has asked that the game be resumed. If you accept this offer, " "the game clock will continue from where it was paused." msgstr "" #: lib/pychess/Players/Human.py:40 msgid "The resignation" msgstr "" #: lib/pychess/Players/Human.py:41 msgid "The flag call" msgstr "" #: lib/pychess/Players/Human.py:42 msgid "The draw offer" msgstr "" #: lib/pychess/Players/Human.py:43 msgid "The abort offer" msgstr "" #: lib/pychess/Players/Human.py:44 msgid "The adjourn offer" msgstr "" #: lib/pychess/Players/Human.py:45 msgid "The pause offer" msgstr "" #: lib/pychess/Players/Human.py:46 msgid "The resume offer" msgstr "" #: lib/pychess/Players/Human.py:47 msgid "The offer to switch sides" msgstr "" #: lib/pychess/Players/Human.py:48 msgid "The takeback offer" msgstr "" #: lib/pychess/Players/Human.py:52 msgid "resign" msgstr "" #: lib/pychess/Players/Human.py:53 msgid "call your opponents flag" msgstr "" #: lib/pychess/Players/Human.py:54 msgid "offer a draw" msgstr "" #: lib/pychess/Players/Human.py:55 msgid "offer an abort" msgstr "" #: lib/pychess/Players/Human.py:56 msgid "offer to adjourn" msgstr "" #: lib/pychess/Players/Human.py:57 msgid "offer a pause" msgstr "" #: lib/pychess/Players/Human.py:58 msgid "offer to resume" msgstr "" #: lib/pychess/Players/Human.py:59 msgid "offer to switch sides" msgstr "" #: lib/pychess/Players/Human.py:60 msgid "offer a takeback" msgstr "" #: lib/pychess/Players/Human.py:61 msgid "ask your opponent to move" msgstr "" #: lib/pychess/Players/Human.py:66 msgid "Your opponent is not out of time." msgstr "" #: lib/pychess/Players/Human.py:68 msgid "The clock hasn't been started yet." msgstr "" #: lib/pychess/Players/Human.py:70 msgid "You can't switch colors during the game." msgstr "" #: lib/pychess/Players/Human.py:72 msgid "You have tried to undo too many moves." msgstr "" #: lib/pychess/Players/Human.py:180 msgid "Your opponent asks you to hurry!" msgstr "" #: lib/pychess/Players/Human.py:181 msgid "" "Generally this means nothing, as the game is time-based, but if you want to " "please your opponent, perhaps you should get going." msgstr "" #: lib/pychess/Players/Human.py:259 #, python-format msgid "%s was declined by your opponent" msgstr "" #: lib/pychess/Players/Human.py:260 #, python-format msgid "Resend %s?" msgstr "" #: lib/pychess/Players/Human.py:267 msgid "Resend" msgstr "" #: lib/pychess/Players/Human.py:275 #, python-format msgid "%s was withdrawn by your opponent" msgstr "" #: lib/pychess/Players/Human.py:276 msgid "Your opponent seems to have changed their mind." msgstr "" #: lib/pychess/Players/Human.py:290 #, python-format msgid "Unable to accept %s" msgstr "" #: lib/pychess/Players/Human.py:291 msgid "Probably because it has been withdrawn." msgstr "" #: lib/pychess/Players/Human.py:298 #, python-format msgid "%s returns an error" msgstr "" #: lib/pychess/Savers/chessalpha2.py:12 msgid "Chess Alpha 2 Diagram" msgstr "" #: lib/pychess/Savers/chesspastebin.py:39 msgid "Game shared at " msgstr "" #: lib/pychess/Savers/chesspastebin.py:41 msgid "(Link is available on clipboard.)" msgstr "" #: lib/pychess/Savers/database.py:19 msgid "PyChess database" msgstr "ಪೈಚೆಸ್ ದತ್ತಸಂಚಯ" #: lib/pychess/Savers/epd.py:12 msgid "Chess Position" msgstr "" #: lib/pychess/Savers/fen.py:12 msgid "Simple Chess Position" msgstr "" #: lib/pychess/Savers/fen.py:44 lib/pychess/Savers/pgn.py:329 msgid "The game can't be loaded, because of an error parsing FEN" msgstr "" #: lib/pychess/Savers/pgnbase.py:100 #, python-format msgid "" "The game can't be read to end, because of an error parsing move %(moveno)s " "'%(notation)s'." msgstr "" #: lib/pychess/Savers/pgnbase.py:102 #, python-format msgid "The move failed because %s." msgstr "" #: lib/pychess/Savers/pgnbase.py:110 #, python-format msgid "Error parsing move %(moveno)s %(mstr)s" msgstr "" #: lib/pychess/Savers/pgn.py:28 msgid "Chess Game" msgstr "ಚದುರಂಗ ಆಟ" #: lib/pychess/Savers/pgn.py:362 msgid "Invalid move." msgstr "" #: lib/pychess/Savers/png.py:15 msgid "Png image" msgstr "" #: lib/pychess/System/ping.py:31 msgid "Destination Host Unreachable" msgstr "" #: lib/pychess/System/ping.py:74 msgid "Died" msgstr "" #: lib/pychess/Utils/GameModel.py:147 msgid "Local Event" msgstr "" #: lib/pychess/Utils/GameModel.py:148 msgid "Local Site" msgstr "" #: lib/pychess/Utils/repr.py:12 msgid "Pawn" msgstr "ಪದಾತಿ" #: lib/pychess/Utils/repr.py:14 msgid "P" msgstr "" #: lib/pychess/Utils/repr.py:14 msgid "N" msgstr "" #: lib/pychess/Utils/repr.py:14 msgid "R" msgstr "" #: lib/pychess/Utils/repr.py:14 msgid "Q" msgstr "" #: lib/pychess/Utils/repr.py:14 msgid "K" msgstr "" #: lib/pychess/Utils/repr.py:17 msgid "The game ended in a draw" msgstr "" #: lib/pychess/Utils/repr.py:18 #, python-format msgid "%(white)s won the game" msgstr "" #: lib/pychess/Utils/repr.py:19 #, python-format msgid "%(black)s won the game" msgstr "" #: lib/pychess/Utils/repr.py:20 msgid "The game has been killed" msgstr "" #: lib/pychess/Utils/repr.py:21 msgid "The game has been adjourned" msgstr "" #: lib/pychess/Utils/repr.py:22 msgid "The game has been aborted" msgstr "" #: lib/pychess/Utils/repr.py:26 msgid "Because neither player has sufficient material to mate" msgstr "" #: lib/pychess/Utils/repr.py:27 msgid "Because the same position was repeated three times in a row" msgstr "" #: lib/pychess/Utils/repr.py:28 msgid "Because the last 50 moves brought nothing new" msgstr "" #: lib/pychess/Utils/repr.py:29 msgid "Because both players ran out of time" msgstr "" #: lib/pychess/Utils/repr.py:30 #, python-format msgid "Because %(mover)s stalemated" msgstr "" #: lib/pychess/Utils/repr.py:31 msgid "Because both players agreed to a draw" msgstr "" #: lib/pychess/Utils/repr.py:32 lib/pychess/Utils/repr.py:42 msgid "Because of adjudication by an admin" msgstr "" #: lib/pychess/Utils/repr.py:33 msgid "Because the game exceed the max length" msgstr "" #: lib/pychess/Utils/repr.py:34 #, python-format msgid "" "Because %(white)s ran out of time and %(black)s has insufficient material to" " mate" msgstr "" #: lib/pychess/Utils/repr.py:35 #, python-format msgid "" "Because %(black)s ran out of time and %(white)s has insufficient material to" " mate" msgstr "" #: lib/pychess/Utils/repr.py:36 msgid "Because both players have the same amount of pieces" msgstr "" #: lib/pychess/Utils/repr.py:38 #, python-format msgid "Because %(loser)s resigned" msgstr "" #: lib/pychess/Utils/repr.py:39 #, python-format msgid "Because %(loser)s ran out of time" msgstr "" #: lib/pychess/Utils/repr.py:40 #, python-format msgid "Because %(loser)s was checkmated" msgstr "" #: lib/pychess/Utils/repr.py:41 #, python-format msgid "Because %(loser)s disconnected" msgstr "" #: lib/pychess/Utils/repr.py:43 #, python-format msgid "Because %(winner)s has fewer pieces" msgstr "" #: lib/pychess/Utils/repr.py:44 #, python-format msgid "Because %(winner)s lost all pieces" msgstr "" #: lib/pychess/Utils/repr.py:45 #, python-format msgid "Because %(loser)s king exploded" msgstr "" #: lib/pychess/Utils/repr.py:46 #, python-format msgid "Because %(winner)s king reached the center" msgstr "" #: lib/pychess/Utils/repr.py:47 #, python-format msgid "Because %(winner)s was giving check 3 times" msgstr "" #: lib/pychess/Utils/repr.py:49 msgid "Because a player lost connection" msgstr "" #: lib/pychess/Utils/repr.py:50 msgid "Because both players agreed to an adjournment" msgstr "" #: lib/pychess/Utils/repr.py:51 msgid "Because the server was shut down" msgstr "" #: lib/pychess/Utils/repr.py:52 msgid "" "Because a player lost connection and the other player requested adjournment" msgstr "" #: lib/pychess/Utils/repr.py:53 #, python-format msgid "" "Because %(black)s lost connection to the server and %(white)s requested " "adjournment" msgstr "" #: lib/pychess/Utils/repr.py:54 #, python-format msgid "" "Because %(white)s lost connection to the server and %(black)s requested " "adjournment" msgstr "" #: lib/pychess/Utils/repr.py:55 #, python-format msgid "Because %(white)s lost connection to the server" msgstr "" #: lib/pychess/Utils/repr.py:56 #, python-format msgid "Because %(black)s lost connection to the server" msgstr "" #: lib/pychess/Utils/repr.py:58 msgid "Because of adjudication by an admin. No rating changes have occurred." msgstr "" #: lib/pychess/Utils/repr.py:59 msgid "" "Because both players agreed to abort the game. No rating changes have " "occurred." msgstr "" #: lib/pychess/Utils/repr.py:60 msgid "Because of courtesy by a player. No rating changes have occurred." msgstr "" #: lib/pychess/Utils/repr.py:61 msgid "" "Because a player aborted the game. Either player can abort the game without " "the other's consent before the second move. No rating changes have occurred." msgstr "" #: lib/pychess/Utils/repr.py:62 msgid "" "Because a player disconnected and there are too few moves to warrant " "adjournment. No rating changes have occurred." msgstr "" #: lib/pychess/Utils/repr.py:63 msgid "Because the server was shut down. No rating changes have occurred." msgstr "" #: lib/pychess/Utils/repr.py:65 #, python-format msgid "Because the %(white)s engine died" msgstr "" #: lib/pychess/Utils/repr.py:66 #, python-format msgid "Because the %(black)s engine died" msgstr "" #: lib/pychess/Utils/repr.py:67 msgid "Because the connection to the server was lost" msgstr "" #: lib/pychess/Utils/repr.py:68 msgid "The reason is unknown" msgstr "" #: lib/pychess/Utils/TimeModel.py:229 msgid "min" msgstr "ನಿಮಿಷ" #: lib/pychess/Utils/TimeModel.py:231 msgid "sec" msgstr "" #: lib/pychess/Variants/asean.py:12 msgid "" "ASEAN: http://www.ncf-" "phil.org/downloadables/2014/May/Asean_chess/Laws_of_ASEAN_Chess_2011_Nov_26.doc" msgstr "" #: lib/pychess/Variants/asean.py:13 msgid "ASEAN" msgstr "" #: lib/pychess/Variants/asean.py:33 msgid "Makruk: http://en.wikipedia.org/wiki/Makruk" msgstr "" #: lib/pychess/Variants/asean.py:34 msgid "Makruk" msgstr "" #: lib/pychess/Variants/asean.py:60 msgid "Cambodian: http://www.khmerinstitute.org/culture/ok.html" msgstr "" #: lib/pychess/Variants/asean.py:61 msgid "Cambodian" msgstr "" #: lib/pychess/Variants/asean.py:86 msgid "" "Ai-Wok: http://www.open-" "aurec.com/wbforum/viewtopic.php?p=199364&sid=20963a1de2c164050de019e5ed6bf7c4#p199364" msgstr "" #: lib/pychess/Variants/asean.py:87 msgid "Ai-Wok" msgstr "" #: lib/pychess/Variants/asean.py:111 msgid "Sittuyin: http://en.wikipedia.org/wiki/Sittuyin" msgstr "" #: lib/pychess/Variants/asean.py:112 msgid "Sittuyin" msgstr "" #: lib/pychess/Variants/asymmetricrandom.py:12 msgid "" "FICS wild/4: http://www.freechess.org/Help/HelpFiles/wild.html\n" "* Randomly chosen pieces (two queens or three rooks possible)\n" "* Exactly one king of each color\n" "* Pieces placed randomly behind the pawns, SUBJECT TO THE CONSTRAINT THAT THE BISHOPS ARE BALANCED\n" "* No castling\n" "* Black's arrangement DOES NOT mirrors white's" msgstr "" #: lib/pychess/Variants/asymmetricrandom.py:18 msgid "Asymmetric Random" msgstr "" #: lib/pychess/Variants/atomic.py:14 msgid "FICS atomic: http://www.freechess.org/Help/HelpFiles/atomic.html" msgstr "" #: lib/pychess/Variants/blindfold.py:7 msgid "" "Classic chess rules with hidden figurines\n" "http://en.wikipedia.org/wiki/Blindfold_chess" msgstr "" #: lib/pychess/Variants/blindfold.py:9 #: lib/pychess/widgets/newGameDialog.py:264 msgid "Blindfold" msgstr "" #: lib/pychess/Variants/blindfold.py:18 msgid "" "Classic chess rules with hidden pawns\n" "http://en.wikipedia.org/wiki/Blindfold_chess" msgstr "" #: lib/pychess/Variants/blindfold.py:20 msgid "Hidden pawns" msgstr "" #: lib/pychess/Variants/blindfold.py:29 msgid "" "Classic chess rules with hidden pieces\n" "http://en.wikipedia.org/wiki/Blindfold_chess" msgstr "" #: lib/pychess/Variants/blindfold.py:31 msgid "Hidden pieces" msgstr "" #: lib/pychess/Variants/blindfold.py:40 msgid "" "Classic chess rules with all pieces white\n" "http://en.wikipedia.org/wiki/Blindfold_chess" msgstr "" #: lib/pychess/Variants/blindfold.py:42 msgid "All white" msgstr "" #: lib/pychess/Variants/bughouse.py:8 msgid "FICS bughouse: http://www.freechess.org/Help/HelpFiles/bughouse.html" msgstr "" #: lib/pychess/Variants/corner.py:12 msgid "" "http://brainking.com/en/GameRules?tp=2\n" "* Placement of the pieces on the 1st and 8th row are randomized\n" "* The king is in the right hand corner\n" "* Bishops must start on opposite color squares\n" "* Black's starting position is obtained by rotating white's position 180 degrees around the board's center\n" "* No castling" msgstr "" #: lib/pychess/Variants/corner.py:18 msgid "Corner" msgstr "ಮೂಲೆ" #: lib/pychess/Variants/crazyhouse.py:8 msgid "" "FICS crazyhouse: http://www.freechess.org/Help/HelpFiles/crazyhouse.html" msgstr "" #: lib/pychess/Variants/euroshogi.py:9 msgid "EuroShogi: http://en.wikipedia.org/wiki/EuroShogi" msgstr "" #: lib/pychess/Variants/euroshogi.py:10 msgid "EuroShogi" msgstr "" #: lib/pychess/Variants/fischerandom.py:18 msgid "" "http://en.wikipedia.org/wiki/Chess960\n" "FICS wild/fr: http://www.freechess.org/Help/HelpFiles/wild.html" msgstr "" #: lib/pychess/Variants/fischerandom.py:20 msgid "Fischer Random" msgstr "" #: lib/pychess/Variants/kingofthehill.py:8 msgid "" "Bringing your king legally to the center (e4, d4, e5, d5) instantly wins the game!\n" "Normal rules apply in other cases and checkmate also ends the game." msgstr "" #: lib/pychess/Variants/kingofthehill.py:10 msgid "King of the hill" msgstr "" #: lib/pychess/Variants/knightodds.py:8 msgid "One player starts with one less knight piece" msgstr "" #: lib/pychess/Variants/knightodds.py:9 msgid "Knight odds" msgstr "" #: lib/pychess/Variants/losers.py:8 msgid "FICS losers: http://www.freechess.org/Help/HelpFiles/losers_chess.html" msgstr "" #: lib/pychess/Variants/normal.py:4 msgid "" "Classic chess rules\n" "http://en.wikipedia.org/wiki/Chess" msgstr "" #: lib/pychess/Variants/normal.py:6 lib/pychess/widgets/newGameDialog.py:157 msgid "Normal" msgstr "" #: lib/pychess/Variants/pawnodds.py:8 msgid "One player starts with one less pawn piece" msgstr "" #: lib/pychess/Variants/pawnodds.py:9 msgid "Pawn odds" msgstr "" #: lib/pychess/Variants/pawnspassed.py:11 msgid "" "FICS wild/8a: http://www.freechess.org/Help/HelpFiles/wild.html\n" "White pawns start on 5th rank and black pawns on the 4th rank" msgstr "" #: lib/pychess/Variants/pawnspassed.py:13 msgid "Pawns Passed" msgstr "" #: lib/pychess/Variants/pawnspushed.py:10 msgid "" "FICS wild/8: http://www.freechess.org/Help/HelpFiles/wild.html\n" "Pawns start on 4th and 5th ranks rather than 2nd and 7th" msgstr "" #: lib/pychess/Variants/pawnspushed.py:12 msgid "Pawns Pushed" msgstr "" #: lib/pychess/Variants/queenodds.py:8 msgid "One player starts with one less queen piece" msgstr "" #: lib/pychess/Variants/queenodds.py:9 msgid "Queen odds" msgstr "" #: lib/pychess/Variants/randomchess.py:11 msgid "" "FICS wild/3: http://www.freechess.org/Help/HelpFiles/wild.html\n" "* Randomly chosen pieces (two queens or three rooks possible)\n" "* Exactly one king of each color\n" "* Pieces placed randomly behind the pawns\n" "* No castling\n" "* Black's arrangement mirrors white's" msgstr "" #: lib/pychess/Variants/randomchess.py:17 #: lib/pychess/widgets/TaskerManager.py:155 msgid "Random" msgstr "" #: lib/pychess/Variants/rookodds.py:8 msgid "One player starts with one less rook piece" msgstr "" #: lib/pychess/Variants/rookodds.py:9 msgid "Rook odds" msgstr "" #: lib/pychess/Variants/shuffle.py:11 msgid "" "xboard nocastle: http://home.hccnet.nl/h.g.muller/engine-intf.html#8\n" "FICS wild/2: http://www.freechess.org/Help/HelpFiles/wild.html\n" "* Random arrangement of the pieces behind the pawns\n" "* No castling\n" "* Black's arrangement mirrors white's" msgstr "" #: lib/pychess/Variants/suicide.py:11 msgid "" "FICS suicide: http://www.freechess.org/Help/HelpFiles/suicide_chess.html" msgstr "" #: lib/pychess/Variants/theban.py:10 msgid "" "Variant developed by Kai Laskos: " "http://talkchess.com/forum/viewtopic.php?t=40990" msgstr "" #: lib/pychess/Variants/theban.py:11 msgid "Theban" msgstr "" #: lib/pychess/Variants/threecheck.py:10 msgid "Win by giving check 3 times" msgstr "" #: lib/pychess/Variants/threecheck.py:11 msgid "Three-check" msgstr "" #: lib/pychess/Variants/upsidedown.py:10 msgid "" "FICS wild/5: http://www.freechess.org/Help/HelpFiles/wild.html\n" "http://en.wikipedia.org/wiki/Chess_variant#Chess_with_different_starting_positions\n" "Pawns start on their 7th rank rather than their 2nd rank!" msgstr "" #: lib/pychess/Variants/upsidedown.py:13 msgid "Upside Down" msgstr "" #: lib/pychess/Variants/wildcastle.py:10 msgid "" "xboard wildcastle http://home.hccnet.nl/h.g.muller/engine-intf.html#8\n" "FICS wild/0: http://www.freechess.org/Help/HelpFiles/wild.html\n" "* White has the typical set-up at the start.\n" "* Black's pieces are the same, except that the King and Queen are reversed,\n" "* so they are not on the same files as White's King and Queen.\n" "* Castling is done similarly to normal chess:\n" "* o-o-o indicates long castling and o-o short castling." msgstr "" #: lib/pychess/Variants/wildcastle.py:17 msgid "Wildcastle" msgstr "" #: lib/pychess/Variants/wildcastleshuffle.py:11 msgid "" "xboard wildcastle http://home.hccnet.nl/h.g.muller/engine-intf.html#8\n" "FICS wild/1: http://www.freechess.org/Help/HelpFiles/wild.html\n" "* In this variant both sides have the same set of pieces as in normal chess.\n" "* The white king starts on d1 or e1 and the black king starts on d8 or e8,\n" "* and the rooks are in their usual positions.\n" "* Bishops are always on opposite colors.\n" "* Subject to these constraints the position of the pieces on their first ranks is random.\n" "* Castling is done similarly to normal chess:\n" "* o-o-o indicates long castling and o-o short castling." msgstr "" #: lib/pychess/Variants/wildcastleshuffle.py:20 msgid "Wildcastle shuffle" msgstr "" #: lib/pychess/widgets/analyzegameDialog.py:85 msgid "Game analyzing in progress..." msgstr "" #: lib/pychess/widgets/analyzegameDialog.py:86 msgid "Do you want to abort it?" msgstr "" #: lib/pychess/widgets/analyzegameDialog.py:95 #: lib/pychess/widgets/gamewidget.py:202 lib/pychess/widgets/gamewidget.py:320 msgid "Abort" msgstr "" #: lib/pychess/widgets/ChatView.py:125 msgid "Observers" msgstr "" #: lib/pychess/widgets/ChatWindow.py:222 msgid "You have opened no conversations yet" msgstr "" #: lib/pychess/widgets/ChatWindow.py:254 msgid "Only registered users may talk to this channel" msgstr "" #: lib/pychess/widgets/ChatWindow.py:312 msgid "No conversation's selected" msgstr "" #: lib/pychess/widgets/ChatWindow.py:350 msgid "Loading player data" msgstr "" #: lib/pychess/widgets/ChatWindow.py:400 msgid "Receiving list of players" msgstr "" #: lib/pychess/widgets/ChatWindow.py:518 msgid "Friends" msgstr "" #: lib/pychess/widgets/ChatWindow.py:529 msgid "Admin" msgstr "" #: lib/pychess/widgets/ChatWindow.py:540 msgid "More channels" msgstr "" #: lib/pychess/widgets/ChatWindow.py:548 msgid "More players" msgstr "" #: lib/pychess/widgets/ChatWindow.py:558 msgid "Computers" msgstr "" #: lib/pychess/widgets/ChatWindow.py:568 msgid "BlindFold" msgstr "" #: lib/pychess/widgets/ChatWindow.py:578 msgid "Guests" msgstr "" #: lib/pychess/widgets/ChatWindow.py:805 msgid "Conversations" msgstr "" #: lib/pychess/widgets/ChatWindow.py:807 msgid "Conversation info" msgstr "" #: lib/pychess/widgets/enginesDialog.py:152 msgid "Select engine" msgstr "" #: lib/pychess/widgets/enginesDialog.py:156 msgid "Executable files" msgstr "" #: lib/pychess/widgets/enginesDialog.py:176 #: lib/pychess/widgets/enginesDialog.py:210 #: lib/pychess/widgets/enginesDialog.py:235 #, python-format msgid "Unable to add %s" msgstr "" #: lib/pychess/widgets/enginesDialog.py:177 msgid "wine not installed" msgstr "" #: lib/pychess/widgets/enginesDialog.py:211 #: lib/pychess/widgets/enginesDialog.py:236 msgid "There is something wrong with this executable" msgstr "" #: lib/pychess/widgets/enginesDialog.py:266 msgid "Select working directory" msgstr "" #: lib/pychess/widgets/gamenanny.py:115 #, python-format msgid " invalid engine move: %s" msgstr "" #: lib/pychess/widgets/gamenanny.py:134 msgid "Offer Rematch" msgstr "" #: lib/pychess/widgets/gamenanny.py:136 lib/pychess/widgets/gamenanny.py:147 #, python-format msgid "Observe %s" msgstr "" #: lib/pychess/widgets/gamenanny.py:168 msgid "Play Rematch" msgstr "" #: lib/pychess/widgets/gamenanny.py:171 msgid "Undo one move" msgstr "" #: lib/pychess/widgets/gamenanny.py:173 msgid "Undo two moves" msgstr "" #: lib/pychess/widgets/gamenanny.py:203 msgid "The game is paused" msgstr "" #: lib/pychess/widgets/gamenanny.py:221 lib/pychess/widgets/gamenanny.py:222 msgid "Loaded game" msgstr "" #: lib/pychess/widgets/gamenanny.py:228 msgid "Saved game" msgstr "" #: lib/pychess/widgets/gamenanny.py:232 msgid "Analyzer started" msgstr "" #: lib/pychess/widgets/gamenanny.py:281 msgid "You sent an abort offer" msgstr "" #: lib/pychess/widgets/gamenanny.py:283 msgid "You sent an adjournment offer" msgstr "" #: lib/pychess/widgets/gamenanny.py:285 msgid "You sent a draw offer" msgstr "" #: lib/pychess/widgets/gamenanny.py:287 msgid "You sent a pause offer" msgstr "" #: lib/pychess/widgets/gamenanny.py:289 msgid "You sent a resume offer" msgstr "" #: lib/pychess/widgets/gamenanny.py:291 msgid "You sent an undo offer" msgstr "" #: lib/pychess/widgets/gamenanny.py:293 msgid "You asked your opponent to move" msgstr "" #: lib/pychess/widgets/gamenanny.py:305 #, python-format msgid "Engine, %s, has died" msgstr "" #: lib/pychess/widgets/gamenanny.py:306 msgid "" "PyChess has lost connection to the engine, probably because it has died.\n" "\n" "You can try to start a new game with the engine, or try to play against another one." msgstr "" #: lib/pychess/widgets/gamewidget.py:204 msgid "" "This game can be automatically aborted without rating loss because there has" " not yet been two moves made" msgstr "" #: lib/pychess/widgets/gamewidget.py:206 msgid "Offer Abort" msgstr "" #: lib/pychess/widgets/gamewidget.py:208 msgid "" "Your opponent must agree to abort the game because there has been two or " "more moves made" msgstr "" #: lib/pychess/widgets/gamewidget.py:226 msgid "This game can not be adjourned because one or both players are guests" msgstr "" #: lib/pychess/widgets/gamewidget.py:243 msgid "Claim Draw" msgstr "" #: lib/pychess/widgets/gamewidget.py:325 msgid "Pause" msgstr "" #: lib/pychess/widgets/gamewidget.py:326 msgid "Resume" msgstr "" #: lib/pychess/widgets/gamewidget.py:328 msgid "Offer Pause" msgstr "" #: lib/pychess/widgets/gamewidget.py:329 msgid "Offer Resume" msgstr "" #: lib/pychess/widgets/gamewidget.py:333 msgid "Undo" msgstr "" #: lib/pychess/widgets/gamewidget.py:335 msgid "Offer Undo" msgstr "" #: lib/pychess/widgets/gamewidget.py:550 msgid " has lagged for 30 seconds" msgstr "" #: lib/pychess/widgets/gamewidget.py:566 msgid " is lagging heavily but hasn't disconnected" msgstr "" #: lib/pychess/widgets/gamewidget.py:567 msgid "Continue to wait for opponent, or try to adjourn the game?" msgstr "" #: lib/pychess/widgets/gamewidget.py:575 msgid "Wait" msgstr "" #: lib/pychess/widgets/gamewidget.py:576 msgid "Adjourn" msgstr "" #: lib/pychess/widgets/gamewidget.py:648 msgid "Jump to initial position" msgstr "" #: lib/pychess/widgets/gamewidget.py:653 msgid "Step back one move" msgstr "" #: lib/pychess/widgets/gamewidget.py:658 msgid "Go back to the main line" msgstr "" #: lib/pychess/widgets/gamewidget.py:664 msgid "Step forward one move" msgstr "" #: lib/pychess/widgets/gamewidget.py:669 msgid "Jump to latest position" msgstr "" #: lib/pychess/widgets/gamewidget.py:903 msgid "PyChess was unable to load your panel settings" msgstr "" #: lib/pychess/widgets/gamewidget.py:904 msgid "" "Your panel settings have been reset. If this problem repeats, you should " "report it to the developers" msgstr "" #: lib/pychess/widgets/ionest.py:67 lib/pychess/widgets/newGameDialog.py:389 #: lib/pychess/widgets/TaskerManager.py:210 msgid "You" msgstr "" #: lib/pychess/widgets/ionest.py:70 lib/pychess/widgets/newGameDialog.py:390 #: lib/pychess/widgets/preferencesDialog.py:61 #: lib/pychess/widgets/TaskerManager.py:213 msgid "Guest" msgstr "" #: lib/pychess/widgets/ionest.py:93 msgid "Error loading game" msgstr "" #: lib/pychess/widgets/ionest.py:127 lib/pychess/widgets/newGameDialog.py:480 msgid "Open Game" msgstr "" #: lib/pychess/widgets/ionest.py:137 msgid "All Files" msgstr "ಎಲ್ಲಾ ಕಡತಗಳು" #: lib/pychess/widgets/ionest.py:140 msgid "Detect type automatically" msgstr "" #: lib/pychess/widgets/ionest.py:146 msgid "All Chess Files" msgstr "ಎಲ್ಲಾ ಚದುರಂಗದ ಕಡತಗಳು" #: lib/pychess/widgets/ionest.py:228 msgid "Save Game" msgstr "ಆಟವನ್ನು ಉಳಿಸಿ" #: lib/pychess/widgets/ionest.py:228 msgid "Export position" msgstr "" #: lib/pychess/widgets/ionest.py:232 lib/pychess/widgets/ionest.py:360 msgid "vs." msgstr "" #: lib/pychess/widgets/ionest.py:249 #, python-format msgid "Unknown file type '%s'" msgstr "" #: lib/pychess/widgets/ionest.py:250 #, python-format msgid "" "Was unable to save '%(uri)s' as PyChess doesn't know the format " "'%(ending)s'." msgstr "" #: lib/pychess/widgets/ionest.py:266 #, python-format msgid "Unable to save file '%s'" msgstr "" #: lib/pychess/widgets/ionest.py:268 msgid "" "You don't have the necessary rights to save the file.\n" "Please ensure that you have given the right path and try again." msgstr "" #: lib/pychess/widgets/ionest.py:276 msgid "_Replace" msgstr "" #: lib/pychess/widgets/ionest.py:280 msgid "File exists" msgstr "" #: lib/pychess/widgets/ionest.py:282 #, python-format msgid "" "A file named '%s' already exists. Would you like to replace " "it?" msgstr "" #: lib/pychess/widgets/ionest.py:283 #, python-format msgid "" "The file already exists in '%s'. If you replace it, its content will be " "overwritten." msgstr "" #: lib/pychess/widgets/ionest.py:299 msgid "Could not save the file" msgstr "ಕಡತವನ್ನು ಉಳಿಸಲಾಗಲಿಲ್ಲ" #: lib/pychess/widgets/ionest.py:300 msgid "PyChess was not able to save the game" msgstr "" #: lib/pychess/widgets/ionest.py:301 #, python-format msgid "The error was: %s" msgstr "" #: lib/pychess/widgets/ionest.py:325 #, python-format msgid "There is %d game with unsaved moves." msgid_plural "There are %d games with unsaved moves." msgstr[0] "" #: lib/pychess/widgets/ionest.py:328 msgid "Save moves before closing?" msgstr "" #: lib/pychess/widgets/ionest.py:339 msgid "Unable to save to configured file. Save the games before closing?" msgstr "" #: lib/pychess/widgets/ionest.py:366 #, python-format msgid "_Save %d document" msgid_plural "_Save %d documents" msgstr[0] "" #: lib/pychess/widgets/ionest.py:412 msgid "Save the current game before you close it?" msgstr "" #: lib/pychess/widgets/ionest.py:420 msgid "" "Unable to save to configured file. Save the current game before you close " "it?" msgstr "" #: lib/pychess/widgets/ionest.py:434 msgid "" "It is not possible later to continue the game,\n" "if you don't save it." msgstr "" #: lib/pychess/widgets/LogDialog.py:26 msgid "PyChess Information Window" msgstr "" #: lib/pychess/widgets/LogDialog.py:184 lib/pychess/widgets/LogDialog.py:188 msgid "of" msgstr "" #: lib/pychess/widgets/newGameDialog.py:84 #: lib/pychess/widgets/newGameDialog.py:85 msgid "Human Being" msgstr "" #: lib/pychess/widgets/newGameDialog.py:155 msgid "Rapid" msgstr "" #: lib/pychess/widgets/newGameDialog.py:224 msgid "Minutes:" msgstr "ನಿಮಿಷಗಳು:" #: lib/pychess/widgets/newGameDialog.py:228 msgid "Gain:" msgstr "" #: lib/pychess/widgets/newGameDialog.py:241 #, python-format msgid "%(name)s %(minutes)d min + %(gain)d sec/move" msgstr "" #: lib/pychess/widgets/newGameDialog.py:244 #, python-format msgid "%(name)s %(minutes)d min %(gain)d sec/move" msgstr "" #: lib/pychess/widgets/newGameDialog.py:247 #, python-format msgid "%(name)s %(minutes)d min" msgstr "" #: lib/pychess/widgets/newGameDialog.py:265 msgid "Odds" msgstr "" #: lib/pychess/widgets/newGameDialog.py:269 msgid "Asian variants" msgstr "" #: lib/pychess/widgets/newGameDialog.py:301 msgid " chess" msgstr "ಚದುರಂಗ" #: lib/pychess/widgets/newGameDialog.py:682 msgid "Type or paste PGN game or FEN positions here" msgstr "" #: lib/pychess/widgets/newGameDialog.py:725 msgid "Enter Game" msgstr "" #: lib/pychess/widgets/preferencesDialog.py:123 msgid "Select book file" msgstr "" #: lib/pychess/widgets/preferencesDialog.py:128 msgid "Opening books" msgstr "" #: lib/pychess/widgets/preferencesDialog.py:156 msgid "Select Gaviota TB path" msgstr "" #: lib/pychess/widgets/preferencesDialog.py:331 msgid "Open Sound File" msgstr "" #: lib/pychess/widgets/preferencesDialog.py:341 msgid "Sound files" msgstr "" #: lib/pychess/widgets/preferencesDialog.py:485 msgid "Undescribed panel" msgstr "" #: lib/pychess/widgets/preferencesDialog.py:678 msgid "Select auto save path" msgstr "" #: lib/pychess/widgets/tipOfTheDay.py:51 msgid "" "You can start a new game by Game > New Game, in New Game " "window do you can choose Players, Time Control and Chess " "Variants." msgstr "" #: lib/pychess/widgets/tipOfTheDay.py:52 msgid "" "You can choose from 20 different difficulties to play against the computer." msgstr "" #: lib/pychess/widgets/tipOfTheDay.py:53 msgid "" "Chess Variants are like the pieces of the last line will be placed on the " "board." msgstr "" #: lib/pychess/widgets/tipOfTheDay.py:54 msgid "" "To save a game Game > Save Game As, give the filename and " "choose where you want to be saved. At the bottom choose extension type of " "the file, and Save." msgstr "" #: lib/pychess/widgets/tipOfTheDay.py:55 msgid "" "Do you know that you can call flag when the clock is with you, " "Actions > Call Flag." msgstr "" #: lib/pychess/widgets/tipOfTheDay.py:56 msgid "Pressing Ctrl+Z to offer opponent the possible rollback moves." msgstr "" #: lib/pychess/widgets/tipOfTheDay.py:57 msgid "" "To play on Fullscreen mode, just type F11. Coming back, F11 " "again." msgstr "" #: lib/pychess/widgets/tipOfTheDay.py:58 msgid "Hint mode analyzing your game, enable this type Ctrl+H." msgstr "" #: lib/pychess/widgets/tipOfTheDay.py:59 msgid "" "Spy mode analyzing the oponnent game, enable this type Ctrl+Y." msgstr "" #: lib/pychess/widgets/tipOfTheDay.py:60 msgid "" "You can play chess listening to the sounds of the game, for that, " "Settings > Preferences > Sound tab, enable Use " "sounds in PyChess and choose your preferred sounds." msgstr "" #: lib/pychess/widgets/tipOfTheDay.py:61 msgid "" "Do you know that you can help translate Pychess in your language, " "Help > Translate Pychess." msgstr "" #: lib/pychess/widgets/tipOfTheDay.py:62 msgid "" "Do you know that it is possible to finish a chess game in just 2 turns?" msgstr "" #: lib/pychess/widgets/tipOfTheDay.py:63 msgid "" "Do you know that the number of possible chess games exceeds the number of " "atoms in the Universe?" msgstr "" #: lib/pychess/ic/managers/ChatManager.py:184 msgid "Shout" msgstr "" #: lib/pychess/ic/managers/ChatManager.py:185 msgid "Chess Shout" msgstr "" #: lib/pychess/ic/managers/ChatManager.py:195 #, python-format msgid "Unofficial channel %d" msgstr "" #: lib/pychess/Utils/lutils/LBoard.py:152 #, python-format msgid "" "FEN needs 6 data fields. \n" "\n" "%s" msgstr "" #: lib/pychess/Utils/lutils/LBoard.py:154 #, python-format msgid "" "FEN needs at least 2 data fields in fenstr. \n" "\n" "%s" msgstr "" #: lib/pychess/Utils/lutils/LBoard.py:175 #, python-format msgid "" "Needs 7 slashes in piece placement field. \n" "\n" "%s" msgstr "" #: lib/pychess/Utils/lutils/LBoard.py:178 #, python-format msgid "" "Active color field must be one of w or b. \n" "\n" "%s" msgstr "" #: lib/pychess/Utils/lutils/LBoard.py:189 #, python-format msgid "" "Castling availability field is not legal. \n" "\n" "%s" msgstr "" #: lib/pychess/Utils/lutils/LBoard.py:192 #, python-format msgid "" "En passant cord is not legal. \n" "\n" "%s" msgstr "" #: lib/pychess/Utils/lutils/lmove.py:260 msgid "invalid promoted piece" msgstr "" #: lib/pychess/Utils/lutils/lmove.py:272 msgid "the move needs a piece and a cord" msgstr "" #: lib/pychess/Utils/lutils/lmove.py:306 lib/pychess/Utils/lutils/lmove.py:556 msgid "promotion move without promoted piece is incorrect" msgstr "" #: lib/pychess/Utils/lutils/lmove.py:312 #, python-format msgid "the captured cord (%s) is incorrect" msgstr "" #: lib/pychess/Utils/lutils/lmove.py:323 #, python-format msgid "the end cord (%s) is incorrect" msgstr "" #: lib/pychess/Utils/lutils/strateval.py:24 sidepanel/commentPanel.py:191 #: sidepanel/commentPanel.py:208 msgid "and" msgstr "" #: lib/pychess/Utils/lutils/strateval.py:43 msgid "draws" msgstr "" #: lib/pychess/Utils/lutils/strateval.py:45 msgid "mates" msgstr "" #: lib/pychess/Utils/lutils/strateval.py:49 msgid "puts opponent in check" msgstr "" #: lib/pychess/Utils/lutils/strateval.py:73 msgid "improves king safety" msgstr "" #: lib/pychess/Utils/lutils/strateval.py:75 msgid "slightly improves king safety" msgstr "" #: lib/pychess/Utils/lutils/strateval.py:108 msgid "moves a rook to an open file" msgstr "" #: lib/pychess/Utils/lutils/strateval.py:109 msgid "moves an rook to a half-open file" msgstr "" #: lib/pychess/Utils/lutils/strateval.py:119 #: lib/pychess/Utils/lutils/strateval.py:121 #: lib/pychess/Utils/lutils/strateval.py:124 #: lib/pychess/Utils/lutils/strateval.py:126 #, python-format msgid "moves bishop into fianchetto: %s" msgstr "" #: lib/pychess/Utils/lutils/strateval.py:132 #, python-format msgid "promotes a Pawn to a %s" msgstr "" #: lib/pychess/Utils/lutils/strateval.py:135 msgid "castles" msgstr "" #: lib/pychess/Utils/lutils/strateval.py:158 msgid "takes back material" msgstr "" #: lib/pychess/Utils/lutils/strateval.py:162 #: lib/pychess/Utils/lutils/strateval.py:170 msgid "sacrifies material" msgstr "" #: lib/pychess/Utils/lutils/strateval.py:164 msgid "exchanges material" msgstr "" #: lib/pychess/Utils/lutils/strateval.py:166 msgid "captures material" msgstr "" #: lib/pychess/Utils/lutils/strateval.py:291 #, python-format msgid "rescues a %s" msgstr "" #: lib/pychess/Utils/lutils/strateval.py:294 #, python-format msgid "threatens to win material by %s" msgstr "" #: lib/pychess/Utils/lutils/strateval.py:296 #, python-format msgid "increases the pressure on %s" msgstr "" #: lib/pychess/Utils/lutils/strateval.py:298 #, python-format msgid "defends %s" msgstr "" #: lib/pychess/Utils/lutils/strateval.py:336 #, python-format msgid "pins an enemy %(oppiece)s on the %(piece)s at %(cord)s" msgstr "" #: lib/pychess/Utils/lutils/strateval.py:369 #, python-format msgid "White has a new piece in outpost: %s" msgstr "" #: lib/pychess/Utils/lutils/strateval.py:377 #, python-format msgid "Black has a new piece in outpost: %s" msgstr "" #: lib/pychess/Utils/lutils/strateval.py:416 #, python-format msgid "%(color)s has a new passed pawn on %(cord)s" msgstr "" #: lib/pychess/Utils/lutils/strateval.py:470 msgid "half-open" msgstr "" #: lib/pychess/Utils/lutils/strateval.py:472 #, python-format msgid "in the %(x)s%(y)s file" msgstr "" #: lib/pychess/Utils/lutils/strateval.py:474 #, python-format msgid "in the %(x)s%(y)s files" msgstr "" #: lib/pychess/Utils/lutils/strateval.py:477 #, python-format msgid "%(color)s got a double pawn %(place)s" msgstr "" #: lib/pychess/Utils/lutils/strateval.py:478 #, python-format msgid "%(color)s got new double pawns %(place)s" msgstr "" #: lib/pychess/Utils/lutils/strateval.py:485 #, python-format msgid "%(color)s got an isolated pawn in the %(x)s file" msgid_plural "%(color)s got isolated pawns in the %(x)s files" msgstr[0] "" #: lib/pychess/Utils/lutils/strateval.py:492 #, python-format msgid "%s moves pawns into stonewall formation" msgstr "" #: lib/pychess/Utils/lutils/strateval.py:507 #: lib/pychess/Utils/lutils/strateval.py:514 #, python-format msgid "%s can no longer castle" msgstr "" #: lib/pychess/Utils/lutils/strateval.py:508 #: lib/pychess/Utils/lutils/strateval.py:515 #, python-format msgid "%s can no longer castle in queenside" msgstr "" #: lib/pychess/Utils/lutils/strateval.py:510 #: lib/pychess/Utils/lutils/strateval.py:517 #, python-format msgid "%s can no longer castle in kingside" msgstr "" #: lib/pychess/Utils/lutils/strateval.py:551 #, python-format msgid "%(opcolor)s has a new trapped bishop on %(cord)s" msgstr "" #: lib/pychess/Utils/lutils/strateval.py:573 #, python-format msgid "develops a pawn: %s" msgstr "" #: lib/pychess/Utils/lutils/strateval.py:574 #, python-format msgid "brings a pawn closer to the backrow: %s" msgstr "" #: lib/pychess/Utils/lutils/strateval.py:591 #, python-format msgid "brings a %(piece)s closer to enemy king: %(cord)s" msgstr "" #: lib/pychess/Utils/lutils/strateval.py:594 #, python-format msgid "develops a %(piece)s: %(cord)s" msgstr "" #: lib/pychess/Utils/lutils/strateval.py:612 #, python-format msgid "places a %(piece)s more active: %(cord)s" msgstr "" #: lib/pychess/Utils/lutils/strateval.py:638 msgid "White should do pawn storm in right" msgstr "" #: lib/pychess/Utils/lutils/strateval.py:640 msgid "Black should do pawn storm in left" msgstr "" #: lib/pychess/Utils/lutils/strateval.py:643 msgid "White should do pawn storm in left" msgstr "" #: lib/pychess/Utils/lutils/strateval.py:645 msgid "Black should do pawn storm in right" msgstr "" #: lib/pychess/Utils/lutils/strateval.py:671 msgid "Black has a rather cramped position" msgstr "" #: lib/pychess/Utils/lutils/strateval.py:673 msgid "Black has a slightly cramped position" msgstr "" #: lib/pychess/Utils/lutils/strateval.py:675 msgid "White has a rather cramped position" msgstr "" #: lib/pychess/Utils/lutils/strateval.py:677 msgid "White has a slightly cramped position" msgstr "" #: sidepanel/annotationPanel.py:26 msgid "Annotation" msgstr "" #: sidepanel/annotationPanel.py:29 msgid "Annotated game" msgstr "" #: sidepanel/annotationPanel.py:236 msgid "Copy PGN" msgstr "" #: sidepanel/annotationPanel.py:249 msgid "Add start comment" msgstr "" #: sidepanel/annotationPanel.py:254 msgid "Add comment" msgstr "" #: sidepanel/annotationPanel.py:258 sidepanel/annotationPanel.py:316 msgid "Edit comment" msgstr "" #: sidepanel/annotationPanel.py:269 msgid "Forced move" msgstr "" #: sidepanel/annotationPanel.py:274 msgid "Add move symbol" msgstr "" #: sidepanel/annotationPanel.py:280 msgid "Unclear position" msgstr "" #: sidepanel/annotationPanel.py:289 msgid "Zugzwang" msgstr "" #: sidepanel/annotationPanel.py:290 msgid "Development adv." msgstr "" #: sidepanel/annotationPanel.py:291 msgid "Initiative" msgstr "" #: sidepanel/annotationPanel.py:292 msgid "With attack" msgstr "" #: sidepanel/annotationPanel.py:293 msgid "Compensation" msgstr "" #: sidepanel/annotationPanel.py:294 msgid "Counterplay" msgstr "" #: sidepanel/annotationPanel.py:295 msgid "Time pressure" msgstr "" #: sidepanel/annotationPanel.py:300 msgid "Add evaluation symbol" msgstr "" #: sidepanel/annotationPanel.py:304 msgid "Remove symbols" msgstr "" #: sidepanel/annotationPanel.py:911 #, python-format msgid "round %s" msgstr "" #: sidepanel/bookPanel.py:21 msgid "Hints" msgstr "" #: sidepanel/bookPanel.py:25 msgid "" "The hint panel will provide computer advice during each stage of the game" msgstr "" #: sidepanel/bookPanel.py:27 msgid "Official PyChess panel." msgstr "" #: sidepanel/bookPanel.py:87 msgid "Opening Book" msgstr "" #: sidepanel/bookPanel.py:88 msgid "" "The opening book will try to inspire you during the opening phase of the " "game by showing you common moves made by chess masters" msgstr "" #: sidepanel/bookPanel.py:139 #, python-format msgid "Analysis by %s" msgstr "" #: sidepanel/bookPanel.py:140 #, python-format msgid "" "%s will try to predict which move is best and which side has the advantage" msgstr "" #: sidepanel/bookPanel.py:142 #, python-format msgid "Threat analysis by %s" msgstr "" #: sidepanel/bookPanel.py:143 #, python-format msgid "" "%s will identify what threats would exist if it were your opponent's turn to" " move" msgstr "" #: sidepanel/bookPanel.py:159 sidepanel/bookPanel.py:269 msgid "Calculating..." msgstr "" #: sidepanel/bookPanel.py:300 msgid "" "Engine scores are in units of pawns, from White's point of view. Double " "clicking on analysis lines you can insert them into Annotation panel as " "variations." msgstr "" #: sidepanel/bookPanel.py:302 msgid "" "Adding suggestions can help you find ideas, but slows down the computer's " "analysis." msgstr "" #: sidepanel/bookPanel.py:311 msgid "Endgame Table" msgstr "" #: sidepanel/bookPanel.py:315 msgid "" "The endgame table will show exact analysis when there are few pieces on the " "board." msgstr "" #: sidepanel/bookPanel.py:364 sidepanel/bookPanel.py:367 #, python-format msgid "Mate in %d" msgstr "" #: sidepanel/bookPanel.py:554 msgid "" "In this position,\n" "there is no legal move." msgstr "" #: sidepanel/chatPanel.py:21 msgid "" "The chat panel lets you communicate with your opponent during the game, " "assuming he or she is interested" msgstr "" #: sidepanel/commentPanel.py:16 msgid "Comments" msgstr "" #: sidepanel/commentPanel.py:20 msgid "The comments panel will try to analyze and explain the moves played" msgstr "" #: sidepanel/commentPanel.py:121 msgid "Initial position" msgstr "" #: sidepanel/commentPanel.py:254 #, python-format msgid "%(color)s moves a %(piece)s to %(cord)s" msgstr "" #: sidepanel/engineOutputPanel.py:15 msgid "Engines" msgstr "" #: sidepanel/engineOutputPanel.py:20 msgid "" "The engine output panel shows the thinking output of chess engines (computer" " players) during a game" msgstr "" #: sidepanel/engineOutputPanel.py:44 msgid "No chess engines (computer players) are participating in this game." msgstr "" #: sidepanel/historyPanel.py:10 msgid "Move History" msgstr "" #: sidepanel/historyPanel.py:13 msgid "" "The moves sheet keeps track of the players' moves and lets you navigate " "through the game history" msgstr "" #: sidepanel/scorePanel.py:15 msgid "Score" msgstr "" #: sidepanel/scorePanel.py:19 msgid "" "The score panel tries to evaluate the positions and shows you a graph of the" " game progress" msgstr "" pychess-0.12.2/lang/kn/LC_MESSAGES/pychess.mo0000644000175000017470000001060512653231273020707 0ustar tamasusers00000000000000> SHIPUW\9b     .9?W^v{ !   '-4 =GVmr     "+DH         % 8 "M 7p      Y y =    7 B gO       Q&+x  %.V? .8 !. Abj8H,u(5:,<$06'";# .) % 8!4*7+/>-19= & 23 chess min*12005 minConnect to the Free Online Chess ServerOptionsYour ColorChallenge:About ChessAll Chess FilesAll FilesAnalyze gameBishopBlackBlitz:Challenge: Chess GameClockColorize analyzed movesCornerCould not save the fileDateEmailKingLightning:Log on as _GuestLossMaximum analysis time in seconds:Minutes:Minutes: NameNew GamePawnPlayPlay _Internet ChessPyChess databasePyChess.py:QueenResultS_ign upSave GameSend ChallengeShow evaluation valuesTimeTranslate PyChessUse analyzer:WelcomeWhiteWin_Black player:_Game_General_Name:_New Game_Password:_Your Color:gnuchess:http://en.wikipedia.org/wiki/Chesshttp://en.wikipedia.org/wiki/Rules_of_chessminProject-Id-Version: pychess Report-Msgid-Bugs-To: POT-Creation-Date: 2016-01-27 13:28+0100 PO-Revision-Date: 2016-01-28 08:56+0000 Last-Translator: slav0nic Language-Team: Kannada (http://www.transifex.com/gbtami/pychess/language/kn/) MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Language: kn Plural-Forms: nplurals=1; plural=0; ಚದುರಂಗನಿಮಿಷ*12005 ನಿಮಿಷಉಚಿತ ಆನ್ ಲೈನ್ ಚದುರಂಗ ಸರ್ವರ್ ಗೆ ಸಂಪರ್ಕ ಮಾಡಿಆಯ್ಕೆಗಳುನಿಮ್ಮ ಬಣ್ಣಸವಾಲು:ಚದುರಂಗದ ಬಗ್ಗೆಎಲ್ಲಾ ಚದುರಂಗದ ಕಡತಗಳುಎಲ್ಲಾ ಕಡತಗಳುಆಟವನ್ನು ವಿಶ್ಲೇಷಿಸುಒಂಟೆಕಪ್ಪುಬ್ಲಿಟ್ಜ್ಸವಾಲು: ಚದುರಂಗ ಆಟಗಂಟೆವಿಶ್ಲೇಷಿಸಿದ ನಡಿಗೆಗಳಿಗೆ ಬಣ್ಣೆಸುಮೂಲೆಕಡತವನ್ನು ಉಳಿಸಲಾಗಲಿಲ್ಲದಿನಾಂಕಇ-ಸಂದೇಶರಾಜಮಿಂಚಿನ :ಅತಿಥಿಯಾಗಿ ಪ್ರವೇಶಿಸುಸೋಲುವಿಶ್ಲೇಷಣೆಯ ಗರಿಷ್ಠ ಸಮಯ ಸೆಕೆಂಡುಗಳಲ್ಲಿ:ನಿಮಿಷಗಳು:ನಿಮಿಶಗಳು:ಹೆಸರುಹೊಸ ಆಟಪದಾತಿಆಡುಅಂತರಜಾಲದಲ್ಲಿ ಚದುರಂಗವನ್ನು ಆಡು ಪೈಚೆಸ್ ದತ್ತಸಂಚಯPyChess.py:ರಾಣಿಫಲಿತಾಂಶಸೈನ್ ಅಪ್ಆಟವನ್ನು ಉಳಿಸಿಸವಾಲನ್ನು ಕಳುಹಿಸುಮೌಲ್ಯಮಾಪನ ಮೌಲ್ಯಗಳನ್ನು ತೋರಿಸುಸಮಯಪೈಚೆಸ್ ಅನುವಾದಿಸುವಿಶ್ಲೇಷಕವನ್ನು ಬಳಸು:ಸುಸ್ವಾಗತಬಿಳಿಗೆಲುವು_ಕಪ್ಪು ಆಟಗಾರ_ಆಟ_ಸಾಮಾನ್ಯ_ಹೆಸರು_ಹೊಸ ಆಟ_ಗುಪ್ತಪದ_ನಿಮ್ಮ ಬಣ್ಣಗ್ನು ಚೆಸ್http://kn.wikipedia.org/wiki/ಚದುರಂಗ_(ಆಟ)http://kn.wikipedia.org/wiki/ಚದುರಂಗದ_ನಿಯಮಗಳುನಿಮಿಷpychess-0.12.2/lang/he/0000755000175000017470000000000012653231274015072 5ustar tamasusers00000000000000pychess-0.12.2/lang/he/LC_MESSAGES/0000755000175000017470000000000012653231274016657 5ustar tamasusers00000000000000pychess-0.12.2/lang/he/LC_MESSAGES/pychess.po0000644000175000017470000024213012653216211020671 0ustar tamasusers00000000000000# SOME DESCRIPTIVE TITLE. # Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER # This file is distributed under the same license as the pychess package. # # Translators: # FIRST AUTHOR , 2007 msgid "" msgstr "" "Project-Id-Version: pychess\n" "Report-Msgid-Bugs-To: \n" "POT-Creation-Date: 2016-01-27 13:28+0100\n" "PO-Revision-Date: 2016-01-28 08:56+0000\n" "Last-Translator: slav0nic \n" "Language-Team: Hebrew (http://www.transifex.com/gbtami/pychess/language/he/)\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" "Language: he\n" "Plural-Forms: nplurals=2; plural=(n != 1);\n" # "Plural-Forms: nplurals=INTEGER; plural=EXPRESSION;\n" #: glade/analyze_game.glade:22 msgid "Analyze game" msgstr "" #: glade/analyze_game.glade:87 msgid "Use analyzer:" msgstr "" #: glade/analyze_game.glade:122 glade/PyChess.glade:2054 msgid "Maximum analysis time in seconds:" msgstr "" #: glade/analyze_game.glade:163 msgid "" "If the analyzer finds a move where the evaluation difference (the difference" " between the evaluation for the move it thinks is the best move and the " "evaluation for the move made in the game) exceeds this value, it will add an" " annotation for that move (consisting of the engine's Principal Variation " "for the move) to the Annotation panel" msgstr "" #: glade/analyze_game.glade:164 msgid "Variation annotation creation threshold in centipawns:" msgstr "" #: glade/analyze_game.glade:198 msgid "Analyze from current position" msgstr "" #: glade/analyze_game.glade:214 msgid "Add threatening variation lines " msgstr "" #: glade/analyze_game.glade:229 glade/PyChess.glade:1459 msgid "Colorize analyzed moves" msgstr "" #: glade/analyze_game.glade:244 glade/PyChess.glade:1495 msgid "Show evaluation values" msgstr "" #: glade/discovererDialog.glade:18 msgid "PyChess is discovering your engines. Please wait." msgstr "PyChess הגלה את המנועים שלך. אנא המתן." #: glade/discovererDialog.glade:77 msgid "PyChess.py:" msgstr "PyChess.py:" #: glade/discovererDialog.glade:89 msgid "ShredderLinuxChess:" msgstr "ShredderLinuxChess:" #: glade/discovererDialog.glade:101 msgid "gnuchess:" msgstr "gnuchess:" #: glade/fics_logon.glade:7 msgid "PyChess - Connect to Internet Chess" msgstr "PyChess - התחבר לשח-מט באינטרנט" #: glade/fics_logon.glade:47 msgid "Connect to the Free Online Chess Server" msgstr "התבחר ל-Free Online Chess Server" #: glade/fics_logon.glade:129 glade/taskers.glade:394 msgid "_Password:" msgstr "_סיסמה:" #: glade/fics_logon.glade:143 msgid "_Name:" msgstr "_שם:" #: glade/fics_logon.glade:191 msgid "Log on as _Guest" msgstr "התחבר בתור _Guest" #: glade/fics_logon.glade:227 msgid "Host:" msgstr "" #: glade/fics_logon.glade:259 msgid "Po_rts:" msgstr "" #: glade/fics_logon.glade:271 msgid "Auto login on startup" msgstr "" #: glade/fics_logon.glade:385 msgid "S_ign up" msgstr "_הירשם" #: glade/fics_lounge.glade:35 msgid "Challenge: " msgstr "" #: glade/fics_lounge.glade:97 msgid "Send Challenge" msgstr "" #: glade/fics_lounge.glade:133 msgid "Challenge:" msgstr "" #: glade/fics_lounge.glade:327 glade/fics_lounge.glade:2078 msgid "Lightning:" msgstr "בזק:" #: glade/fics_lounge.glade:351 glade/fics_lounge.glade:2102 msgid "Standard:" msgstr "רגיל:" #: glade/fics_lounge.glade:375 glade/fics_lounge.glade:2126 msgid "Blitz:" msgstr "בליץ:" #: glade/fics_lounge.glade:400 msgid "2 min, Fischer Random, Black" msgstr "" #: glade/fics_lounge.glade:422 msgid "10 min + 6 sec/move, White" msgstr "" #: glade/fics_lounge.glade:444 msgid "5 min" msgstr "" #: glade/fics_lounge.glade:480 msgid "Edit Seek" msgstr "" #: glade/fics_lounge.glade:584 lib/pychess/ic/ICLounge.py:2208 #: lib/pychess/ic/__init__.py:101 lib/pychess/Utils/GameModel.py:206 msgid "Untimed" msgstr "" #: glade/fics_lounge.glade:637 msgid "Minutes: " msgstr "" #: glade/fics_lounge.glade:665 msgid " Gain: " msgstr "" #: glade/fics_lounge.glade:703 msgid "Time control: " msgstr "" #: glade/fics_lounge.glade:716 lib/pychess/ic/FICSObjects.py:56 #: lib/pychess/ic/ICLounge.py:1137 lib/pychess/ic/ICLounge.py:2208 #: lib/pychess/ic/__init__.py:99 msgid "Standard" msgstr "" #: glade/fics_lounge.glade:757 glade/newInOut.glade:633 msgid "Time Control" msgstr "" #: glade/fics_lounge.glade:814 glade/fics_lounge.glade:1346 msgid "Don't care" msgstr "" #: glade/fics_lounge.glade:879 msgid "Your strength: " msgstr "" #: glade/fics_lounge.glade:921 msgid "(Blitz)" msgstr "" #: glade/fics_lounge.glade:951 msgid "Opponent's strength: " msgstr "" #: glade/fics_lounge.glade:1055 msgid "" "When this button is in the \"locked\" state, the relationship\n" "between \"Opponent's strength\" and \"Your strength\" will be\n" "preserved when \n" "a) your rating for the type of game sought has changed\n" "b) you change the variant or the time control" msgstr "" #: glade/fics_lounge.glade:1095 msgid "Center:" msgstr "" #: glade/fics_lounge.glade:1134 msgid "1200" msgstr "" #: glade/fics_lounge.glade:1188 msgid "Tolerance:" msgstr "" #: glade/fics_lounge.glade:1243 lib/pychess/ic/ICLounge.py:2452 msgid "Hide" msgstr "" #: glade/fics_lounge.glade:1289 msgid "Opponent Strength" msgstr "" #: glade/fics_lounge.glade:1386 lib/pychess/Database/gamelist.py:40 #: lib/pychess/ic/ICLounge.py:1357 lib/pychess/ic/ICLounge.py:1557 #: lib/pychess/ic/ICLounge.py:2108 lib/pychess/Utils/repr.py:10 #: lib/pychess/widgets/ChessClock.py:40 #: lib/pychess/widgets/TaskerManager.py:153 msgid "White" msgstr "" #: glade/fics_lounge.glade:1414 lib/pychess/Database/gamelist.py:40 #: lib/pychess/ic/ICLounge.py:1358 lib/pychess/ic/ICLounge.py:1558 #: lib/pychess/ic/ICLounge.py:2110 lib/pychess/Utils/repr.py:10 #: lib/pychess/widgets/ChessClock.py:40 #: lib/pychess/widgets/TaskerManager.py:154 msgid "Black" msgstr "" #: glade/fics_lounge.glade:1453 msgid "Your Color" msgstr "" #: glade/fics_lounge.glade:1512 msgid "Play normal chess rules" msgstr "" #: glade/fics_lounge.glade:1552 msgid "Play" msgstr "" #: glade/fics_lounge.glade:1618 glade/newInOut.glade:833 msgid "Chess Variant" msgstr "" #: glade/fics_lounge.glade:1676 msgid "Rated game" msgstr "" #: glade/fics_lounge.glade:1692 msgid "Manually accept opponent" msgstr "" #: glade/fics_lounge.glade:1722 msgid "Options" msgstr "" #: glade/fics_lounge.glade:1750 msgid "PyChess - Internet Chess: FICS" msgstr "" #: glade/fics_lounge.glade:1823 msgid "_Clear Seeks" msgstr "" #: glade/fics_lounge.glade:1847 msgid "_Accept" msgstr "_קבל" #: glade/fics_lounge.glade:1871 msgid "_Decline" msgstr "" #: glade/fics_lounge.glade:2151 msgid "2 min, Fischer Random, 1800↓, Black" msgstr "2 דקות, פישר - ראנדום, 1800↓, שחור" #: glade/fics_lounge.glade:2172 msgid "10 min + 6 sec/move, 1400↑, White" msgstr "10 דקות + 6 שניות/מסע, 1400↑, לבן" #: glade/fics_lounge.glade:2193 msgid "5 min, 1200-1800, Manual" msgstr "5 דקות, 1200-1800, ידני" #: glade/fics_lounge.glade:2247 msgid "Send all seeks" msgstr "" #: glade/fics_lounge.glade:2301 msgid "Send seek" msgstr "" #: glade/fics_lounge.glade:2337 msgid "Create Seek" msgstr "" #: glade/fics_lounge.glade:2353 msgid "_Seeks / Challenges" msgstr "" #: glade/fics_lounge.glade:2374 lib/pychess/ic/ICLounge.py:472 #: lib/pychess/ic/ICLounge.py:670 lib/pychess/ic/ICLounge.py:1357 #: lib/pychess/ic/ICLounge.py:1358 msgid "Rating" msgstr "דירוג" #: glade/fics_lounge.glade:2399 msgid "Time" msgstr "זמן" #: glade/fics_lounge.glade:2419 msgid "Seek _Graph" msgstr "" #: glade/fics_lounge.glade:2444 msgid "0 Players Ready" msgstr "0 שחקנים מוכנים" #: glade/fics_lounge.glade:2496 msgid "Challenge" msgstr "" #: glade/fics_lounge.glade:2549 glade/fics_lounge.glade:2735 msgid "Observe" msgstr "" #: glade/fics_lounge.glade:2602 msgid "Start Private Chat" msgstr "" #: glade/fics_lounge.glade:2659 msgid "_Player List" msgstr "" #: glade/fics_lounge.glade:2792 msgid "_Game List" msgstr "" #: glade/fics_lounge.glade:2847 msgid "_My games" msgstr "" #: glade/fics_lounge.glade:2904 glade/PyChess.glade:841 msgid "Offer _Resume" msgstr "" #: glade/fics_lounge.glade:2962 glade/PyChess.glade:880 msgid "R_esign" msgstr "" #: glade/fics_lounge.glade:3006 glade/PyChess.glade:820 msgid "Offer _Draw" msgstr "" #: glade/fics_lounge.glade:3050 msgid "Offer A_bort" msgstr "" #: glade/fics_lounge.glade:3107 msgid "Pre_view" msgstr "" #: glade/fics_lounge.glade:3151 msgid "Examine" msgstr "" #: glade/fics_lounge.glade:3208 msgid "_Archived" msgstr "" #: glade/fics_lounge.glade:3313 msgid "News" msgstr "חדשות" #: glade/fics_lounge.glade:3345 msgid "Show Console" msgstr "" #: glade/fics_lounge.glade:3359 msgid "Show _Chat" msgstr "" #: glade/fics_lounge.glade:3373 msgid "_Log Off" msgstr "" #: glade/fics_lounge.glade:3393 msgid "Tools" msgstr "כלים" #: glade/fics_lounge.glade:3428 msgid "Asymmetric Random " msgstr "" #: glade/findbar.glade:6 msgid "window1" msgstr "" #: glade/findbar.glade:21 msgid "0 of 0" msgstr "" #: glade/findbar.glade:66 msgid "Search:" msgstr "" #: glade/findbar.glade:134 msgid "_Previous" msgstr "" #: glade/findbar.glade:192 msgid "_Next" msgstr "" #: glade/newInOut.glade:45 lib/pychess/widgets/newGameDialog.py:445 msgid "New Game" msgstr "משחק חדש" #: glade/newInOut.glade:108 msgid "_Start Game" msgstr "_התחל משחק" #: glade/newInOut.glade:130 msgid "Copy FEN" msgstr "" #: glade/newInOut.glade:143 msgid "Clear" msgstr "" #: glade/newInOut.glade:156 msgid "Paste FEN" msgstr "" #: glade/newInOut.glade:257 msgid "_Black player:" msgstr "" #: glade/newInOut.glade:274 msgid "_White player:" msgstr "" #: glade/newInOut.glade:385 msgid "Players" msgstr "" #: glade/newInOut.glade:436 msgid "_Untimed" msgstr "" #: glade/newInOut.glade:475 msgid "Blitz: 5 min" msgstr "" #: glade/newInOut.glade:526 msgid "Rapid: 15 min + 10 sec/move" msgstr "" #: glade/newInOut.glade:575 msgid "Normal: 40 min + 15 sec/move" msgstr "" #: glade/newInOut.glade:684 msgid "_Play Normal chess" msgstr "" #: glade/newInOut.glade:724 msgid "Play Fischer Random chess" msgstr "" #: glade/newInOut.glade:774 msgid "Play Losers chess" msgstr "" #: glade/newInOut.glade:919 msgid "Open Game" msgstr "" #: glade/newInOut.glade:1162 msgid "Initial Position" msgstr "" #: glade/newInOut.glade:1219 msgid "Enter Game Notation" msgstr "" #: glade/newInOut.glade:1314 msgid "Halfmove clock" msgstr "" #: glade/newInOut.glade:1327 msgid "En passant line" msgstr "" #: glade/newInOut.glade:1339 msgid "Side to move" msgstr "" #: glade/newInOut.glade:1351 msgid "Move number" msgstr "" #: glade/newInOut.glade:1361 msgid "Black O-O" msgstr "" #: glade/newInOut.glade:1375 msgid "Black O-O-O" msgstr "" #: glade/newInOut.glade:1389 msgid "White O-O-O" msgstr "" #: glade/newInOut.glade:1403 msgid "White O-O" msgstr "" #: glade/promotion.glade:7 msgid "Promotion" msgstr "" #: glade/promotion.glade:49 lib/pychess/Utils/repr.py:12 msgid "Queen" msgstr "" #: glade/promotion.glade:95 lib/pychess/Utils/repr.py:12 msgid "Rook" msgstr "" #: glade/promotion.glade:141 lib/pychess/Utils/repr.py:12 msgid "Bishop" msgstr "" #: glade/promotion.glade:187 lib/pychess/Utils/repr.py:12 msgid "Knight" msgstr "" #: glade/promotion.glade:233 lib/pychess/Utils/repr.py:12 msgid "King" msgstr "" #: glade/promotion.glade:265 msgid "Promote pawn to what?" msgstr "" #: glade/PyChess.glade:9 msgid "Chess client" msgstr "" #: glade/PyChess.glade:44 msgid "Game information" msgstr "" #: glade/PyChess.glade:164 msgid "Event:" msgstr "" #: glade/PyChess.glade:178 msgid "Site:" msgstr "אתר:" #: glade/PyChess.glade:204 msgid "Round:" msgstr "" #: glade/PyChess.glade:237 msgid "White:" msgstr "" #: glade/PyChess.glade:249 msgid "Black:" msgstr "" #: glade/PyChess.glade:302 msgid "Game data" msgstr "" #: glade/PyChess.glade:357 msgid "Date of game" msgstr "" #: glade/PyChess.glade:495 msgid "_Game" msgstr "" #: glade/PyChess.glade:502 msgid "_New Game" msgstr "" #: glade/PyChess.glade:515 msgid "Play _Internet Chess" msgstr "" #: glade/PyChess.glade:534 msgid "_Load Game" msgstr "" #: glade/PyChess.glade:550 msgid "Load _Recent Game" msgstr "" #: glade/PyChess.glade:558 msgid "Open _Database" msgstr "" #: glade/PyChess.glade:569 lib/pychess/widgets/newGameDialog.py:615 msgid "Setup Position" msgstr "" #: glade/PyChess.glade:579 msgid "Enter Game _Notation" msgstr "" #: glade/PyChess.glade:592 msgid "_Save Game" msgstr "" #: glade/PyChess.glade:606 msgid "Save Game _As" msgstr "" #: glade/PyChess.glade:624 msgid "Share Game" msgstr "" #: glade/PyChess.glade:630 msgid "_Export Position" msgstr "" #: glade/PyChess.glade:644 msgid "_Analyze Game" msgstr "" #: glade/PyChess.glade:678 msgid "Player _Rating" msgstr "" #: glade/PyChess.glade:723 msgid "_Edit" msgstr "" #: glade/PyChess.glade:734 msgid "_Copy PGN" msgstr "" #: glade/PyChess.glade:746 msgid "_Copy FEN" msgstr "" #: glade/PyChess.glade:763 msgid "_Engines" msgstr "" #: glade/PyChess.glade:789 msgid "_Actions" msgstr "" #: glade/PyChess.glade:800 msgid "Offer _Abort" msgstr "" #: glade/PyChess.glade:810 msgid "Offer Ad_journment" msgstr "" #: glade/PyChess.glade:831 msgid "Offer _Pause" msgstr "" #: glade/PyChess.glade:847 msgid "Offer _Undo" msgstr "" #: glade/PyChess.glade:870 msgid "_Call Flag" msgstr "" #: glade/PyChess.glade:890 msgid "Ask to _Move" msgstr "" #: glade/PyChess.glade:905 msgid "Auto Call _Flag" msgstr "" #: glade/PyChess.glade:918 msgid "_View" msgstr "_עריכה" #: glade/PyChess.glade:925 msgid "_Rotate Board" msgstr "" #: glade/PyChess.glade:939 msgid "_Fullscreen" msgstr "" #: glade/PyChess.glade:952 msgid "Leave _Fullscreen" msgstr "" #: glade/PyChess.glade:969 msgid "_Show Sidepanels" msgstr "" #: glade/PyChess.glade:980 msgid "_Log Viewer" msgstr "" #: glade/PyChess.glade:997 msgid "_Hint mode" msgstr "" #: glade/PyChess.glade:1009 msgid "Sp_y mode" msgstr "" #: glade/PyChess.glade:1024 msgid "_Help" msgstr "" #: glade/PyChess.glade:1034 msgid "About Chess" msgstr "" #: glade/PyChess.glade:1043 msgid "How to Play" msgstr "" #: glade/PyChess.glade:1052 msgid "Translate PyChess" msgstr "" #: glade/PyChess.glade:1058 msgid "Tip of the Day" msgstr "" #: glade/PyChess.glade:1153 msgid "Default" msgstr "" #: glade/PyChess.glade:1156 msgid "Knights" msgstr "" #: glade/PyChess.glade:1167 lib/pychess/widgets/preferencesDialog.py:349 msgid "Beep" msgstr "" #: glade/PyChess.glade:1170 lib/pychess/widgets/preferencesDialog.py:350 msgid "Select sound file..." msgstr "" #: glade/PyChess.glade:1173 lib/pychess/widgets/preferencesDialog.py:348 msgid "No sound" msgstr "" #: glade/PyChess.glade:1180 msgid "Preferences" msgstr "" #: glade/PyChess.glade:1218 msgid "The displayed name of the first human player, e.g., John." msgstr "" #: glade/PyChess.glade:1230 msgid "Name of _first human player:" msgstr "" #: glade/PyChess.glade:1259 msgid "The displayed name of the guest player, e.g., Mary." msgstr "" #: glade/PyChess.glade:1271 msgid "Name of s_econd human player:" msgstr "" #: glade/PyChess.glade:1307 msgid "_Hide tabs when only one game is open" msgstr "" #: glade/PyChess.glade:1312 msgid "" "If set, this hides the tab in the top of the playing window, when it is not " "needed." msgstr "" #: glade/PyChess.glade:1326 msgid "_Use main app closer [x] to close all games" msgstr "" #: glade/PyChess.glade:1331 msgid "" "If set, clicking on main application window closer first time it closes all " "games." msgstr "" #: glade/PyChess.glade:1345 msgid "Auto _rotate board to current human player" msgstr "" #: glade/PyChess.glade:1350 msgid "" "If set, the board will turn after each move, to show the natural view for " "the current player." msgstr "" #: glade/PyChess.glade:1364 msgid "Auto _promote to queen" msgstr "" #: glade/PyChess.glade:1369 msgid "If set, pawn promotes to queen without promotion dialog selection." msgstr "" #: glade/PyChess.glade:1383 msgid "Face _to Face display mode" msgstr "" #: glade/PyChess.glade:1388 msgid "" "If set, the black pieces will be head down, suitable for playing against " "friends on mobile devices." msgstr "" #: glade/PyChess.glade:1402 msgid "Sho_w cords" msgstr "" #: glade/PyChess.glade:1407 msgid "" "If set, the playing board will display labels and ranks for each chess " "field. These are usable in chess notation." msgstr "" #: glade/PyChess.glade:1421 msgid "Show _captured pieces" msgstr "" #: glade/PyChess.glade:1426 msgid "If set, the captured figurines will be shown next to the board." msgstr "" #: glade/PyChess.glade:1440 msgid "Prefer figures in _notation" msgstr "" #: glade/PyChess.glade:1445 msgid "" "If set, PyChess will use figures to express moved pieces, rather than " "uppercase letters." msgstr "" #: glade/PyChess.glade:1464 msgid "If set, PyChess will colorize suboptimal analyzed moves with red." msgstr "" #: glade/PyChess.glade:1477 msgid "Show elapsed move times" msgstr "" #: glade/PyChess.glade:1482 msgid "If set, the elapsed time that a player used for the move is shown." msgstr "" #: glade/PyChess.glade:1500 msgid "If set, the hint analyzer engine evaluation value is shown." msgstr "" #: glade/PyChess.glade:1526 msgid "General Options" msgstr "" #: glade/PyChess.glade:1560 msgid "F_ull board animation" msgstr "" #: glade/PyChess.glade:1565 msgid "Animate pieces, board rotation and more. Use this on fast machines." msgstr "" #: glade/PyChess.glade:1579 msgid "Only animate _moves" msgstr "" #: glade/PyChess.glade:1584 msgid "Only animate piece moves." msgstr "" #: glade/PyChess.glade:1599 msgid "No _animation" msgstr "" #: glade/PyChess.glade:1604 msgid "Never use animation. Use this on slow machines." msgstr "" #: glade/PyChess.glade:1632 msgid "Animation" msgstr "" #: glade/PyChess.glade:1651 msgid "_General" msgstr "" #: glade/PyChess.glade:1692 msgid "Use opening _book" msgstr "" #: glade/PyChess.glade:1697 msgid "If set, PyChess will suggest best opening moves on hint panel." msgstr "" #: glade/PyChess.glade:1724 msgid "Polyglot book file:" msgstr "" #: glade/PyChess.glade:1768 msgid "Use _local tablebases" msgstr "" #: glade/PyChess.glade:1773 msgid "" "If set, PyChess will show game results for different moves in positions containing 6 or less pieces.\n" "You can download tablebase files from:\n" "http://www.olympuschess.com/egtb/gaviota/" msgstr "" #: glade/PyChess.glade:1803 msgid "Gaviota TB path:" msgstr "" #: glade/PyChess.glade:1843 msgid "Use _online tablebases" msgstr "" #: glade/PyChess.glade:1848 msgid "" "If set, PyChess will show game results for different moves in positions containing 6 or less pieces.\n" "It will search positions from http://www.k4it.de/" msgstr "" #: glade/PyChess.glade:1870 msgid "Opening, endgame" msgstr "" #: glade/PyChess.glade:1904 msgid "Use _analyzer" msgstr "" #: glade/PyChess.glade:1946 msgid "" "The analyzer will run in the background and analyze the game. This is " "necessary for the hint mode to work" msgstr "" #: glade/PyChess.glade:1978 msgid "Use _inverted analyzer" msgstr "" #: glade/PyChess.glade:2020 msgid "" "The inverse analyzer will analyze the game as if your opponent was to move. " "This is necessary for the spy mode to work" msgstr "" #: glade/PyChess.glade:2096 msgid "Analyzing" msgstr "" #: glade/PyChess.glade:2118 msgid "_Hints" msgstr "" #: glade/PyChess.glade:2263 msgid "Uninstall" msgstr "" #: glade/PyChess.glade:2317 msgid "Ac_tive" msgstr "" #: glade/PyChess.glade:2367 msgid "Installed Sidepanels" msgstr "" #: glade/PyChess.glade:2382 msgid "Side_panels" msgstr "" #: glade/PyChess.glade:2440 msgid "Light Squares :" msgstr "" #: glade/PyChess.glade:2479 msgid "Dark Squares :" msgstr "" #: glade/PyChess.glade:2515 msgid "Reset Default Colours" msgstr "" #: glade/PyChess.glade:2551 msgid "Board Colours" msgstr "" #: glade/PyChess.glade:2610 msgid "Chess Sets" msgstr "" #: glade/PyChess.glade:2634 msgid "Themes" msgstr "" #: glade/PyChess.glade:2659 msgid "_Use sounds in PyChess" msgstr "" #: glade/PyChess.glade:2982 msgid "A player _checks:" msgstr "" #: glade/PyChess.glade:2997 msgid "A player _moves:" msgstr "" #: glade/PyChess.glade:3010 msgid "Game is _drawn:" msgstr "" #: glade/PyChess.glade:3025 msgid "Game is _lost:" msgstr "" #: glade/PyChess.glade:3040 msgid "Game is _won:" msgstr "" #: glade/PyChess.glade:3055 msgid "A player c_aptures:" msgstr "" #: glade/PyChess.glade:3084 msgid "Game is _set-up:" msgstr "" #: glade/PyChess.glade:3136 msgid "_Observed moves:" msgstr "" #: glade/PyChess.glade:3151 msgid "Observed _ends:" msgstr "" #: glade/PyChess.glade:3265 msgid "Short on _time:" msgstr "" #: glade/PyChess.glade:3317 msgid "_Invalid move:" msgstr "" #: glade/PyChess.glade:3369 msgid "Activate alarm when _remaining sec is:" msgstr "" #: glade/PyChess.glade:3416 msgid "Play Sound When..." msgstr "" #: glade/PyChess.glade:3438 msgid "_Sounds" msgstr "" #: glade/PyChess.glade:3463 msgid "_Auto save finished games" msgstr "" #: glade/PyChess.glade:3497 msgid "Save files to:" msgstr "" #: glade/PyChess.glade:3525 msgid "Use name format:" msgstr "" #: glade/PyChess.glade:3569 msgid "Names: #n1, #n2" msgstr "" #: glade/PyChess.glade:3582 msgid "Year, month, day: #y, #m, #d" msgstr "" #: glade/PyChess.glade:3619 msgid "Save elapsed move _times" msgstr "" #: glade/PyChess.glade:3644 msgid "Save analyzing engine _evaluation values" msgstr "" #: glade/PyChess.glade:3669 msgid "Save _own games only" msgstr "" #: glade/PyChess.glade:3698 msgid "Save" msgstr "" #: glade/PyChess.glade:3728 msgid "uci" msgstr "" #: glade/PyChess.glade:3731 msgid "xboard" msgstr "" #: glade/PyChess.glade:3739 msgid "Manage engines" msgstr "" #: glade/PyChess.glade:3837 msgid "Command:" msgstr "" #: glade/PyChess.glade:3851 msgid "Protocol:" msgstr "" #: glade/PyChess.glade:3865 msgid "Parameters:" msgstr "" #: glade/PyChess.glade:3878 msgid "Command line parameters needed by the engine." msgstr "" #: glade/PyChess.glade:3903 msgid "" "Engines use uci or xboard communication protocol to talk to the GUI.\n" "If it can use both you can set here which one you like." msgstr "" #: glade/PyChess.glade:3929 msgid "Working directory:" msgstr "" #: glade/PyChess.glade:3942 msgid "The directory where the engine will be started from." msgstr "" #: glade/saveGamesDialog.glade:7 msgid "Quit PyChess" msgstr "" #: glade/saveGamesDialog.glade:24 lib/pychess/widgets/ionest.py:424 msgid "Close _without Saving" msgstr "" #: glade/saveGamesDialog.glade:83 msgid "_Save %d documents" msgstr "" #: glade/saveGamesDialog.glade:141 msgid "" "There are %d games with unsaved moves. Save changes before " "closing?" msgstr "" #: glade/saveGamesDialog.glade:161 msgid "Select the games you want to save:" msgstr "" #: glade/saveGamesDialog.glade:204 msgid "If you don't save, new changes to your games will be permanently lost." msgstr "" #: glade/taskers.glade:126 msgid "_Opponent:" msgstr "" #: glade/taskers.glade:154 msgid "_Your Color:" msgstr "" #: glade/taskers.glade:219 msgid "_Start Game" msgstr "" #: glade/taskers.glade:338 msgid "Log on as G_uest" msgstr "" #: glade/taskers.glade:410 msgid "Ha_ndle:" msgstr "" #: glade/taskers.glade:469 msgid "_Connect to server" msgstr "" #: glade/tipoftheday.glade:7 msgid "Tip Of The day" msgstr "" #: glade/tipoftheday.glade:62 msgid "Show tips at startup" msgstr "" #: lib/pychess/Main.py:302 msgid "http://en.wikipedia.org/wiki/Chess" msgstr "" #: lib/pychess/Main.py:305 msgid "http://en.wikipedia.org/wiki/Rules_of_chess" msgstr "" #: lib/pychess/Main.py:370 lib/pychess/widgets/gamenanny.py:80 msgid "Welcome" msgstr "" #: lib/pychess/Database/gamelist.py:40 msgid "Id" msgstr "" #: lib/pychess/Database/gamelist.py:40 msgid "W Elo" msgstr "" #: lib/pychess/Database/gamelist.py:40 msgid "B Elo" msgstr "" #: lib/pychess/Database/gamelist.py:41 msgid "Result" msgstr "" #: lib/pychess/Database/gamelist.py:41 msgid "Event" msgstr "" #: lib/pychess/Database/gamelist.py:41 msgid "Site" msgstr "" #: lib/pychess/Database/gamelist.py:41 msgid "Round" msgstr "" #: lib/pychess/Database/gamelist.py:41 msgid "Date" msgstr "" #: lib/pychess/Database/gamelist.py:41 msgid "ECO" msgstr "" #: lib/pychess/Database/gamelist.py:62 msgid "PyChess Game Database" msgstr "" #: lib/pychess/Database/PgnImport.py:188 #, python-format msgid "The game #%s can't be loaded, because of an error parsing FEN" msgstr "" #: lib/pychess/ic/FICSConnection.py:139 msgid "The connection was broken - got \"end of file\" message" msgstr "" #: lib/pychess/ic/FICSConnection.py:140 #, python-format msgid "'%s' is not a registered name" msgstr "" #: lib/pychess/ic/FICSConnection.py:141 msgid "" "The entered password was invalid.\n" "If you forgot your password, go to http://www.freechess.org/password to request a new one over email." msgstr "" #: lib/pychess/ic/FICSConnection.py:145 #, python-format msgid "Sorry '%s' is already logged in" msgstr "" #: lib/pychess/ic/FICSConnection.py:146 #, python-format msgid "'%s' is a registered name. If it is yours, type the password." msgstr "" #: lib/pychess/ic/FICSConnection.py:147 msgid "" "Due to abuse problems, guest connections have been prevented.\n" "You can still register on http://www.freechess.org" msgstr "" #: lib/pychess/ic/FICSConnection.py:166 msgid "Connecting to server" msgstr "" #: lib/pychess/ic/FICSConnection.py:181 msgid "Logging on to server" msgstr "" #: lib/pychess/ic/FICSConnection.py:239 msgid "Setting up environment" msgstr "" #: lib/pychess/ic/FICSObjects.py:35 lib/pychess/ic/FICSObjects.py:47 #, python-format msgid "%(player)s is %(status)s" msgstr "" #: lib/pychess/ic/FICSObjects.py:46 msgid "not playing" msgstr "" #: lib/pychess/ic/FICSObjects.py:54 lib/pychess/ic/ICLounge.py:1136 #: lib/pychess/ic/ICLounge.py:2209 lib/pychess/ic/__init__.py:98 #: lib/pychess/widgets/newGameDialog.py:153 msgid "Blitz" msgstr "" #: lib/pychess/ic/FICSObjects.py:58 lib/pychess/ic/ICLounge.py:1137 #: lib/pychess/ic/ICLounge.py:2209 lib/pychess/ic/__init__.py:100 msgid "Lightning" msgstr "" #: lib/pychess/ic/FICSObjects.py:60 lib/pychess/Variants/atomic.py:15 msgid "Atomic" msgstr "" #: lib/pychess/ic/FICSObjects.py:62 lib/pychess/Variants/bughouse.py:9 msgid "Bughouse" msgstr "" #: lib/pychess/ic/FICSObjects.py:64 lib/pychess/Variants/crazyhouse.py:9 msgid "Crazyhouse" msgstr "" #: lib/pychess/ic/FICSObjects.py:66 lib/pychess/Variants/losers.py:9 msgid "Losers" msgstr "" #: lib/pychess/ic/FICSObjects.py:68 lib/pychess/Variants/suicide.py:12 msgid "Suicide" msgstr "" #: lib/pychess/ic/FICSObjects.py:70 lib/pychess/ic/__init__.py:129 msgid "Wild" msgstr "" #: lib/pychess/ic/FICSObjects.py:117 msgid "Online" msgstr "" #: lib/pychess/ic/FICSObjects.py:118 lib/pychess/ic/FICSObjects.py:143 msgid "Offline" msgstr "" #: lib/pychess/ic/FICSObjects.py:133 msgid "Available" msgstr "" #: lib/pychess/ic/FICSObjects.py:135 msgid "Playing" msgstr "" #: lib/pychess/ic/FICSObjects.py:141 msgid "Idle" msgstr "" #: lib/pychess/ic/FICSObjects.py:145 msgid "Examining" msgstr "" #: lib/pychess/ic/FICSObjects.py:147 msgid "Not Available" msgstr "" #: lib/pychess/ic/FICSObjects.py:149 msgid "Running Simul Match" msgstr "" #: lib/pychess/ic/FICSObjects.py:151 msgid "In Tournament" msgstr "" #: lib/pychess/ic/FICSObjects.py:308 lib/pychess/ic/FICSObjects.py:492 #: lib/pychess/ic/ICLounge.py:2278 msgid "Unrated" msgstr "" #: lib/pychess/ic/FICSObjects.py:491 lib/pychess/ic/ICLounge.py:670 #: lib/pychess/ic/ICLounge.py:1358 lib/pychess/ic/ICLounge.py:1558 #: lib/pychess/ic/ICLounge.py:2113 msgid "Rated" msgstr "" #: lib/pychess/ic/FICSObjects.py:498 lib/pychess/ic/ICLounge.py:2098 #, python-format msgid "%d min" msgstr "" #: lib/pychess/ic/FICSObjects.py:500 #, python-format msgid " + %d sec" msgstr "" #: lib/pychess/ic/FICSObjects.py:517 #, python-format msgid "%(player)s plays %(color)s" msgstr "" #: lib/pychess/ic/FICSObjects.py:519 lib/pychess/ic/ICLounge.py:909 msgid "white" msgstr "" #: lib/pychess/ic/FICSObjects.py:519 lib/pychess/ic/ICLounge.py:909 msgid "black" msgstr "" #: lib/pychess/ic/FICSObjects.py:565 msgid "This is a continuation of an adjourned match" msgstr "" #: lib/pychess/ic/FICSObjects.py:654 msgid "Opponent Rating" msgstr "" #: lib/pychess/ic/FICSObjects.py:656 msgid "Manual Accept" msgstr "" #: lib/pychess/ic/FICSObjects.py:810 msgid "Private" msgstr "" #: lib/pychess/ic/FICSObjects.py:930 lib/pychess/ic/ICLounge.py:527 #: lib/pychess/Savers/epd.py:139 msgid "Unknown" msgstr "" #: lib/pychess/ic/ICLogon.py:159 lib/pychess/ic/ICLogon.py:165 msgid "Connection Error" msgstr "" #: lib/pychess/ic/ICLogon.py:161 msgid "Log on Error" msgstr "" #: lib/pychess/ic/ICLogon.py:163 msgid "Connection was closed" msgstr "" #: lib/pychess/ic/ICLogon.py:169 msgid "Address Error" msgstr "" #: lib/pychess/ic/ICLogon.py:172 msgid "Auto-logout" msgstr "" #: lib/pychess/ic/ICLogon.py:173 msgid "You have been logged out because you were idle more than 60 minutes" msgstr "" #: lib/pychess/ic/ICLounge.py:222 msgid "You have to set kibitz on to see bot messages here." msgstr "" #: lib/pychess/ic/ICLounge.py:241 msgid "" "You may only have 3 outstanding seeks at the same time. If you want to add a" " new seek you must clear your currently active seeks. Clear your seeks?" msgstr "" #: lib/pychess/ic/ICLounge.py:258 msgid "You can't touch this! You are examining a game." msgstr "" #: lib/pychess/ic/ICLounge.py:270 msgid " has declined your offer for a match" msgstr "" #: lib/pychess/ic/ICLounge.py:283 msgid " is censoring you" msgstr "" #: lib/pychess/ic/ICLounge.py:296 msgid " noplay listing you" msgstr "" #: lib/pychess/ic/ICLounge.py:311 msgid " uses a formula not fitting your match request:" msgstr "" #: lib/pychess/ic/ICLounge.py:325 msgid "to manual accept" msgstr "" #: lib/pychess/ic/ICLounge.py:327 msgid "to automatic accept" msgstr "" #: lib/pychess/ic/ICLounge.py:329 msgid "rating range now" msgstr "" #: lib/pychess/ic/ICLounge.py:330 msgid "Seek updated" msgstr "" #: lib/pychess/ic/ICLounge.py:342 msgid "Your seeks have been removed" msgstr "" #: lib/pychess/ic/ICLounge.py:363 msgid " has arrived" msgstr "" #: lib/pychess/ic/ICLounge.py:370 msgid " has departed" msgstr "" #: lib/pychess/ic/ICLounge.py:374 msgid " is present" msgstr "" #: lib/pychess/ic/ICLounge.py:391 sidepanel/chatPanel.py:17 msgid "Chat" msgstr "" #: lib/pychess/ic/ICLounge.py:472 sidepanel/bookPanel.py:366 msgid "Win" msgstr "" #: lib/pychess/ic/ICLounge.py:472 sidepanel/bookPanel.py:360 msgid "Draw" msgstr "" #: lib/pychess/ic/ICLounge.py:472 sidepanel/bookPanel.py:363 msgid "Loss" msgstr "" #: lib/pychess/ic/ICLounge.py:482 msgid "" "On FICS, your \"Wild\" rating encompasses all of the following variants at " "all time controls:\n" msgstr "" #: lib/pychess/ic/ICLounge.py:494 msgid "Sanctions" msgstr "" #: lib/pychess/ic/ICLounge.py:499 msgid "Email" msgstr "" #: lib/pychess/ic/ICLounge.py:504 msgid "Spent" msgstr "" #: lib/pychess/ic/ICLounge.py:506 msgid "online in total" msgstr "" #: lib/pychess/ic/ICLounge.py:512 msgid "Ping" msgstr "" #: lib/pychess/ic/ICLounge.py:517 msgid "Connecting" msgstr "" #: lib/pychess/ic/ICLounge.py:544 msgid "" "You are currently logged in as a guest.\n" "A guest can't play rated games and therefore isn't able to play as many of the types of matches offered as a registered user. To register an account, go to http://www.freechess.org/Register/index.html." msgstr "" #: lib/pychess/ic/ICLounge.py:669 lib/pychess/ic/ICLounge.py:1136 msgid "Name" msgstr "" #: lib/pychess/ic/ICLounge.py:670 lib/pychess/ic/ICLounge.py:1358 #: lib/pychess/ic/ICLounge.py:1558 msgid "Type" msgstr "" #: lib/pychess/ic/ICLounge.py:670 lib/pychess/ic/ICLounge.py:1558 msgid "Clock" msgstr "" #: lib/pychess/ic/ICLounge.py:726 lib/pychess/ic/ICLounge.py:923 #: lib/pychess/Players/Human.py:250 msgid "Accept" msgstr "" #: lib/pychess/ic/ICLounge.py:728 msgid "Assess" msgstr "" #: lib/pychess/ic/ICLounge.py:734 msgid "Archived" msgstr "" #: lib/pychess/ic/ICLounge.py:848 #, python-format msgid "Active seeks: %d" msgstr "" #: lib/pychess/ic/ICLounge.py:897 #, python-format msgid "" " would like to resume your adjourned %(time)s %(gametype)s " "game." msgstr "" #: lib/pychess/ic/ICLounge.py:902 #, python-format msgid "" " challenges you to a %(time)s %(rated)s %(gametype)s game" msgstr "" #: lib/pychess/ic/ICLounge.py:907 #, python-format msgid " where %(player)s plays %(color)s." msgstr "" #: lib/pychess/ic/ICLounge.py:924 lib/pychess/Players/Human.py:251 msgid "Decline" msgstr "" #: lib/pychess/ic/ICLounge.py:1065 msgid " min" msgstr "" #: lib/pychess/ic/ICLounge.py:1137 msgid "Status" msgstr "" #: lib/pychess/ic/ICLounge.py:1203 lib/pychess/ic/ICLounge.py:1233 #, python-format msgid "Players: %d" msgstr "" #: lib/pychess/ic/ICLounge.py:1469 #, python-format msgid "Games running: %d" msgstr "" #: lib/pychess/ic/ICLounge.py:1559 msgid "Date/Time" msgstr "" #: lib/pychess/ic/ICLounge.py:1614 #, python-format msgid "" " with whom you have an adjourned %(timecontrol)s %(gametype)s " "game is online." msgstr "" #: lib/pychess/ic/ICLounge.py:1635 msgid "Request Continuation" msgstr "" #: lib/pychess/ic/ICLounge.py:1637 msgid "Examine Adjourned Game" msgstr "" #: lib/pychess/ic/ICLounge.py:1965 msgid "" "The chain button is disabled because you are logged in as a guest. Guests " "can't establish ratings, and the chain button's state has no effect when " "there is no rating to which to tie \"Opponent Strength\" to" msgstr "" #: lib/pychess/ic/ICLounge.py:2006 msgid "Challenge: " msgstr "" #: lib/pychess/ic/ICLounge.py:2044 msgid "If set you can refuse players accepting your seek" msgstr "" #: lib/pychess/ic/ICLounge.py:2048 lib/pychess/ic/ICLounge.py:2051 msgid "This option is not applicable because you're challenging a player" msgstr "" #: lib/pychess/ic/ICLounge.py:2064 msgid "Edit Seek: " msgstr "" #: lib/pychess/ic/ICLounge.py:2095 #, python-format msgid "%(minutes)d min + %(gain)d sec/move" msgstr "" #: lib/pychess/ic/ICLounge.py:2116 msgid "Manual" msgstr "" #: lib/pychess/ic/ICLounge.py:2256 msgid "Any strength" msgstr "" #: lib/pychess/ic/ICLounge.py:2308 msgid "You can't play rated games because you are logged in as a guest" msgstr "" #: lib/pychess/ic/ICLounge.py:2312 msgid "You can't play rated games because \"Untimed\" is checked, " msgstr "" #: lib/pychess/ic/ICLounge.py:2313 msgid "and on FICS, untimed games can't be rated" msgstr "" #: lib/pychess/ic/ICLounge.py:2317 msgid "This option is not available because you're challenging a guest, " msgstr "" #: lib/pychess/ic/ICLounge.py:2318 msgid "and guests can't play rated games" msgstr "" #: lib/pychess/ic/ICLounge.py:2332 lib/pychess/Variants/shuffle.py:16 #: lib/pychess/widgets/newGameDialog.py:266 msgid "Shuffle" msgstr "" #: lib/pychess/ic/ICLounge.py:2333 lib/pychess/widgets/newGameDialog.py:267 msgid "Other (standard rules)" msgstr "" #: lib/pychess/ic/ICLounge.py:2334 lib/pychess/widgets/newGameDialog.py:268 msgid "Other (non standard rules)" msgstr "" #: lib/pychess/ic/ICLounge.py:2421 msgid "You can't select a variant because \"Untimed\" is checked, " msgstr "" #: lib/pychess/ic/ICLounge.py:2422 msgid "and on FICS, untimed games have to be normal chess rules" msgstr "" #: lib/pychess/ic/ICLounge.py:2454 msgid "Change Tolerance" msgstr "" #: lib/pychess/ic/__init__.py:102 msgid "Examined" msgstr "" #: lib/pychess/ic/__init__.py:103 msgid "Other" msgstr "" #: lib/pychess/ic/__init__.py:182 msgid "Administrator" msgstr "" #: lib/pychess/ic/__init__.py:182 msgid "Blindfold Account" msgstr "" #: lib/pychess/ic/__init__.py:182 msgid "Computer" msgstr "" #: lib/pychess/ic/__init__.py:183 msgid "Team Account" msgstr "" #: lib/pychess/ic/__init__.py:183 msgid "Unregistered" msgstr "" #: lib/pychess/ic/__init__.py:183 msgid "Chess Advisor" msgstr "" #: lib/pychess/ic/__init__.py:184 msgid "Service Representative" msgstr "" #: lib/pychess/ic/__init__.py:184 msgid "Tournament Director" msgstr "" #: lib/pychess/ic/__init__.py:184 msgid "Mamer Manager" msgstr "" #: lib/pychess/ic/__init__.py:185 msgid "Grand Master" msgstr "" #: lib/pychess/ic/__init__.py:185 msgid "International Master" msgstr "" #: lib/pychess/ic/__init__.py:185 msgid "FIDE Master" msgstr "" #: lib/pychess/ic/__init__.py:186 msgid "Woman Grand Master" msgstr "" #: lib/pychess/ic/__init__.py:186 msgid "Woman International Master" msgstr "" #: lib/pychess/ic/__init__.py:186 msgid "Woman FIDE Master" msgstr "" #: lib/pychess/ic/__init__.py:187 msgid "Dummy Account" msgstr "" #: lib/pychess/ic/__init__.py:191 msgid "*" msgstr "" #: lib/pychess/ic/__init__.py:191 lib/pychess/Utils/repr.py:14 msgid "B" msgstr "" #: lib/pychess/ic/__init__.py:191 msgid "C" msgstr "" #: lib/pychess/ic/__init__.py:192 msgid "T" msgstr "" #: lib/pychess/ic/__init__.py:192 msgid "U" msgstr "" #: lib/pychess/ic/__init__.py:192 msgid "CA" msgstr "" #: lib/pychess/ic/__init__.py:193 msgid "SR" msgstr "" #: lib/pychess/ic/__init__.py:193 msgid "TD" msgstr "" #: lib/pychess/ic/__init__.py:193 msgid "TM" msgstr "" #: lib/pychess/ic/__init__.py:194 msgid "GM" msgstr "" #: lib/pychess/ic/__init__.py:194 msgid "IM" msgstr "" #: lib/pychess/ic/__init__.py:194 msgid "FM" msgstr "" #: lib/pychess/ic/__init__.py:195 msgid "WGM" msgstr "" #: lib/pychess/ic/__init__.py:195 msgid "WIM" msgstr "" #: lib/pychess/ic/__init__.py:195 msgid "WFM" msgstr "" #: lib/pychess/ic/__init__.py:195 msgid "D" msgstr "" #: lib/pychess/ic/__init__.py:195 msgid "H" msgstr "" #: lib/pychess/ic/__init__.py:195 msgid "CM" msgstr "" #: lib/pychess/ic/__init__.py:195 msgid "FA" msgstr "" #: lib/pychess/ic/__init__.py:195 msgid "NM" msgstr "" #: lib/pychess/Players/CECPEngine.py:857 #, python-format msgid "The engine %s reports an error:" msgstr "" #: lib/pychess/Players/Human.py:20 msgid "Your opponent has offered you a draw." msgstr "" #: lib/pychess/Players/Human.py:21 msgid "" "Your opponent has offered you a draw. If you accept this offer, the game " "will end with a score of 1/2 - 1/2." msgstr "" #: lib/pychess/Players/Human.py:23 msgid "Your opponent wants to abort the game." msgstr "" #: lib/pychess/Players/Human.py:24 msgid "" "Your opponent has asked that the game be aborted. If you accept this offer, " "the game will end with no rating change." msgstr "" #: lib/pychess/Players/Human.py:26 msgid "Your opponent wants to adjourn the game." msgstr "" #: lib/pychess/Players/Human.py:27 msgid "" "Your opponent has asked that the game be adjourned. If you accept this " "offer, the game will be adjourned and you can resume it later (when your " "opponent is online and both players agree to resume)." msgstr "" #: lib/pychess/Players/Human.py:29 #, python-format msgid "Your opponent wants to undo %s move(s)." msgstr "" #: lib/pychess/Players/Human.py:30 #, python-format msgid "" "Your opponent has asked that the last %s move(s) be undone. If you accept " "this offer, the game will continue from the earlier position." msgstr "" #: lib/pychess/Players/Human.py:32 msgid "Your opponent wants to pause the game." msgstr "" #: lib/pychess/Players/Human.py:33 msgid "" "Your opponent has asked that the game be paused. If you accept this offer, " "the game clock will be paused until both players agree to resume the game." msgstr "" #: lib/pychess/Players/Human.py:35 msgid "Your opponent wants to resume the game." msgstr "" #: lib/pychess/Players/Human.py:36 msgid "" "Your opponent has asked that the game be resumed. If you accept this offer, " "the game clock will continue from where it was paused." msgstr "" #: lib/pychess/Players/Human.py:40 msgid "The resignation" msgstr "" #: lib/pychess/Players/Human.py:41 msgid "The flag call" msgstr "" #: lib/pychess/Players/Human.py:42 msgid "The draw offer" msgstr "" #: lib/pychess/Players/Human.py:43 msgid "The abort offer" msgstr "" #: lib/pychess/Players/Human.py:44 msgid "The adjourn offer" msgstr "" #: lib/pychess/Players/Human.py:45 msgid "The pause offer" msgstr "" #: lib/pychess/Players/Human.py:46 msgid "The resume offer" msgstr "" #: lib/pychess/Players/Human.py:47 msgid "The offer to switch sides" msgstr "" #: lib/pychess/Players/Human.py:48 msgid "The takeback offer" msgstr "" #: lib/pychess/Players/Human.py:52 msgid "resign" msgstr "" #: lib/pychess/Players/Human.py:53 msgid "call your opponents flag" msgstr "" #: lib/pychess/Players/Human.py:54 msgid "offer a draw" msgstr "" #: lib/pychess/Players/Human.py:55 msgid "offer an abort" msgstr "" #: lib/pychess/Players/Human.py:56 msgid "offer to adjourn" msgstr "" #: lib/pychess/Players/Human.py:57 msgid "offer a pause" msgstr "" #: lib/pychess/Players/Human.py:58 msgid "offer to resume" msgstr "" #: lib/pychess/Players/Human.py:59 msgid "offer to switch sides" msgstr "" #: lib/pychess/Players/Human.py:60 msgid "offer a takeback" msgstr "" #: lib/pychess/Players/Human.py:61 msgid "ask your opponent to move" msgstr "" #: lib/pychess/Players/Human.py:66 msgid "Your opponent is not out of time." msgstr "" #: lib/pychess/Players/Human.py:68 msgid "The clock hasn't been started yet." msgstr "" #: lib/pychess/Players/Human.py:70 msgid "You can't switch colors during the game." msgstr "" #: lib/pychess/Players/Human.py:72 msgid "You have tried to undo too many moves." msgstr "" #: lib/pychess/Players/Human.py:180 msgid "Your opponent asks you to hurry!" msgstr "" #: lib/pychess/Players/Human.py:181 msgid "" "Generally this means nothing, as the game is time-based, but if you want to " "please your opponent, perhaps you should get going." msgstr "" #: lib/pychess/Players/Human.py:259 #, python-format msgid "%s was declined by your opponent" msgstr "" #: lib/pychess/Players/Human.py:260 #, python-format msgid "Resend %s?" msgstr "" #: lib/pychess/Players/Human.py:267 msgid "Resend" msgstr "" #: lib/pychess/Players/Human.py:275 #, python-format msgid "%s was withdrawn by your opponent" msgstr "" #: lib/pychess/Players/Human.py:276 msgid "Your opponent seems to have changed their mind." msgstr "" #: lib/pychess/Players/Human.py:290 #, python-format msgid "Unable to accept %s" msgstr "" #: lib/pychess/Players/Human.py:291 msgid "Probably because it has been withdrawn." msgstr "" #: lib/pychess/Players/Human.py:298 #, python-format msgid "%s returns an error" msgstr "" #: lib/pychess/Savers/chessalpha2.py:12 msgid "Chess Alpha 2 Diagram" msgstr "" #: lib/pychess/Savers/chesspastebin.py:39 msgid "Game shared at " msgstr "" #: lib/pychess/Savers/chesspastebin.py:41 msgid "(Link is available on clipboard.)" msgstr "" #: lib/pychess/Savers/database.py:19 msgid "PyChess database" msgstr "" #: lib/pychess/Savers/epd.py:12 msgid "Chess Position" msgstr "" #: lib/pychess/Savers/fen.py:12 msgid "Simple Chess Position" msgstr "" #: lib/pychess/Savers/fen.py:44 lib/pychess/Savers/pgn.py:329 msgid "The game can't be loaded, because of an error parsing FEN" msgstr "" #: lib/pychess/Savers/pgnbase.py:100 #, python-format msgid "" "The game can't be read to end, because of an error parsing move %(moveno)s " "'%(notation)s'." msgstr "" #: lib/pychess/Savers/pgnbase.py:102 #, python-format msgid "The move failed because %s." msgstr "" #: lib/pychess/Savers/pgnbase.py:110 #, python-format msgid "Error parsing move %(moveno)s %(mstr)s" msgstr "" #: lib/pychess/Savers/pgn.py:28 msgid "Chess Game" msgstr "" #: lib/pychess/Savers/pgn.py:362 msgid "Invalid move." msgstr "" #: lib/pychess/Savers/png.py:15 msgid "Png image" msgstr "" #: lib/pychess/System/ping.py:31 msgid "Destination Host Unreachable" msgstr "" #: lib/pychess/System/ping.py:74 msgid "Died" msgstr "" #: lib/pychess/Utils/GameModel.py:147 msgid "Local Event" msgstr "אירוע מקומי" #: lib/pychess/Utils/GameModel.py:148 msgid "Local Site" msgstr "" #: lib/pychess/Utils/repr.py:12 msgid "Pawn" msgstr "" #: lib/pychess/Utils/repr.py:14 msgid "P" msgstr "" #: lib/pychess/Utils/repr.py:14 msgid "N" msgstr "" #: lib/pychess/Utils/repr.py:14 msgid "R" msgstr "" #: lib/pychess/Utils/repr.py:14 msgid "Q" msgstr "" #: lib/pychess/Utils/repr.py:14 msgid "K" msgstr "" #: lib/pychess/Utils/repr.py:17 msgid "The game ended in a draw" msgstr "" #: lib/pychess/Utils/repr.py:18 #, python-format msgid "%(white)s won the game" msgstr "" #: lib/pychess/Utils/repr.py:19 #, python-format msgid "%(black)s won the game" msgstr "" #: lib/pychess/Utils/repr.py:20 msgid "The game has been killed" msgstr "" #: lib/pychess/Utils/repr.py:21 msgid "The game has been adjourned" msgstr "" #: lib/pychess/Utils/repr.py:22 msgid "The game has been aborted" msgstr "" #: lib/pychess/Utils/repr.py:26 msgid "Because neither player has sufficient material to mate" msgstr "" #: lib/pychess/Utils/repr.py:27 msgid "Because the same position was repeated three times in a row" msgstr "" #: lib/pychess/Utils/repr.py:28 msgid "Because the last 50 moves brought nothing new" msgstr "" #: lib/pychess/Utils/repr.py:29 msgid "Because both players ran out of time" msgstr "" #: lib/pychess/Utils/repr.py:30 #, python-format msgid "Because %(mover)s stalemated" msgstr "" #: lib/pychess/Utils/repr.py:31 msgid "Because both players agreed to a draw" msgstr "" #: lib/pychess/Utils/repr.py:32 lib/pychess/Utils/repr.py:42 msgid "Because of adjudication by an admin" msgstr "" #: lib/pychess/Utils/repr.py:33 msgid "Because the game exceed the max length" msgstr "" #: lib/pychess/Utils/repr.py:34 #, python-format msgid "" "Because %(white)s ran out of time and %(black)s has insufficient material to" " mate" msgstr "" #: lib/pychess/Utils/repr.py:35 #, python-format msgid "" "Because %(black)s ran out of time and %(white)s has insufficient material to" " mate" msgstr "" #: lib/pychess/Utils/repr.py:36 msgid "Because both players have the same amount of pieces" msgstr "" #: lib/pychess/Utils/repr.py:38 #, python-format msgid "Because %(loser)s resigned" msgstr "" #: lib/pychess/Utils/repr.py:39 #, python-format msgid "Because %(loser)s ran out of time" msgstr "" #: lib/pychess/Utils/repr.py:40 #, python-format msgid "Because %(loser)s was checkmated" msgstr "" #: lib/pychess/Utils/repr.py:41 #, python-format msgid "Because %(loser)s disconnected" msgstr "" #: lib/pychess/Utils/repr.py:43 #, python-format msgid "Because %(winner)s has fewer pieces" msgstr "" #: lib/pychess/Utils/repr.py:44 #, python-format msgid "Because %(winner)s lost all pieces" msgstr "" #: lib/pychess/Utils/repr.py:45 #, python-format msgid "Because %(loser)s king exploded" msgstr "" #: lib/pychess/Utils/repr.py:46 #, python-format msgid "Because %(winner)s king reached the center" msgstr "" #: lib/pychess/Utils/repr.py:47 #, python-format msgid "Because %(winner)s was giving check 3 times" msgstr "" #: lib/pychess/Utils/repr.py:49 msgid "Because a player lost connection" msgstr "" #: lib/pychess/Utils/repr.py:50 msgid "Because both players agreed to an adjournment" msgstr "" #: lib/pychess/Utils/repr.py:51 msgid "Because the server was shut down" msgstr "" #: lib/pychess/Utils/repr.py:52 msgid "" "Because a player lost connection and the other player requested adjournment" msgstr "" #: lib/pychess/Utils/repr.py:53 #, python-format msgid "" "Because %(black)s lost connection to the server and %(white)s requested " "adjournment" msgstr "" #: lib/pychess/Utils/repr.py:54 #, python-format msgid "" "Because %(white)s lost connection to the server and %(black)s requested " "adjournment" msgstr "" #: lib/pychess/Utils/repr.py:55 #, python-format msgid "Because %(white)s lost connection to the server" msgstr "" #: lib/pychess/Utils/repr.py:56 #, python-format msgid "Because %(black)s lost connection to the server" msgstr "" #: lib/pychess/Utils/repr.py:58 msgid "Because of adjudication by an admin. No rating changes have occurred." msgstr "" #: lib/pychess/Utils/repr.py:59 msgid "" "Because both players agreed to abort the game. No rating changes have " "occurred." msgstr "" #: lib/pychess/Utils/repr.py:60 msgid "Because of courtesy by a player. No rating changes have occurred." msgstr "" #: lib/pychess/Utils/repr.py:61 msgid "" "Because a player aborted the game. Either player can abort the game without " "the other's consent before the second move. No rating changes have occurred." msgstr "" #: lib/pychess/Utils/repr.py:62 msgid "" "Because a player disconnected and there are too few moves to warrant " "adjournment. No rating changes have occurred." msgstr "" #: lib/pychess/Utils/repr.py:63 msgid "Because the server was shut down. No rating changes have occurred." msgstr "" #: lib/pychess/Utils/repr.py:65 #, python-format msgid "Because the %(white)s engine died" msgstr "" #: lib/pychess/Utils/repr.py:66 #, python-format msgid "Because the %(black)s engine died" msgstr "" #: lib/pychess/Utils/repr.py:67 msgid "Because the connection to the server was lost" msgstr "" #: lib/pychess/Utils/repr.py:68 msgid "The reason is unknown" msgstr "" #: lib/pychess/Utils/TimeModel.py:229 msgid "min" msgstr "" #: lib/pychess/Utils/TimeModel.py:231 msgid "sec" msgstr "" #: lib/pychess/Variants/asean.py:12 msgid "" "ASEAN: http://www.ncf-" "phil.org/downloadables/2014/May/Asean_chess/Laws_of_ASEAN_Chess_2011_Nov_26.doc" msgstr "" #: lib/pychess/Variants/asean.py:13 msgid "ASEAN" msgstr "" #: lib/pychess/Variants/asean.py:33 msgid "Makruk: http://en.wikipedia.org/wiki/Makruk" msgstr "" #: lib/pychess/Variants/asean.py:34 msgid "Makruk" msgstr "" #: lib/pychess/Variants/asean.py:60 msgid "Cambodian: http://www.khmerinstitute.org/culture/ok.html" msgstr "" #: lib/pychess/Variants/asean.py:61 msgid "Cambodian" msgstr "" #: lib/pychess/Variants/asean.py:86 msgid "" "Ai-Wok: http://www.open-" "aurec.com/wbforum/viewtopic.php?p=199364&sid=20963a1de2c164050de019e5ed6bf7c4#p199364" msgstr "" #: lib/pychess/Variants/asean.py:87 msgid "Ai-Wok" msgstr "" #: lib/pychess/Variants/asean.py:111 msgid "Sittuyin: http://en.wikipedia.org/wiki/Sittuyin" msgstr "" #: lib/pychess/Variants/asean.py:112 msgid "Sittuyin" msgstr "" #: lib/pychess/Variants/asymmetricrandom.py:12 msgid "" "FICS wild/4: http://www.freechess.org/Help/HelpFiles/wild.html\n" "* Randomly chosen pieces (two queens or three rooks possible)\n" "* Exactly one king of each color\n" "* Pieces placed randomly behind the pawns, SUBJECT TO THE CONSTRAINT THAT THE BISHOPS ARE BALANCED\n" "* No castling\n" "* Black's arrangement DOES NOT mirrors white's" msgstr "" #: lib/pychess/Variants/asymmetricrandom.py:18 msgid "Asymmetric Random" msgstr "" #: lib/pychess/Variants/atomic.py:14 msgid "FICS atomic: http://www.freechess.org/Help/HelpFiles/atomic.html" msgstr "" #: lib/pychess/Variants/blindfold.py:7 msgid "" "Classic chess rules with hidden figurines\n" "http://en.wikipedia.org/wiki/Blindfold_chess" msgstr "" #: lib/pychess/Variants/blindfold.py:9 #: lib/pychess/widgets/newGameDialog.py:264 msgid "Blindfold" msgstr "" #: lib/pychess/Variants/blindfold.py:18 msgid "" "Classic chess rules with hidden pawns\n" "http://en.wikipedia.org/wiki/Blindfold_chess" msgstr "" #: lib/pychess/Variants/blindfold.py:20 msgid "Hidden pawns" msgstr "" #: lib/pychess/Variants/blindfold.py:29 msgid "" "Classic chess rules with hidden pieces\n" "http://en.wikipedia.org/wiki/Blindfold_chess" msgstr "" #: lib/pychess/Variants/blindfold.py:31 msgid "Hidden pieces" msgstr "" #: lib/pychess/Variants/blindfold.py:40 msgid "" "Classic chess rules with all pieces white\n" "http://en.wikipedia.org/wiki/Blindfold_chess" msgstr "" #: lib/pychess/Variants/blindfold.py:42 msgid "All white" msgstr "" #: lib/pychess/Variants/bughouse.py:8 msgid "FICS bughouse: http://www.freechess.org/Help/HelpFiles/bughouse.html" msgstr "" #: lib/pychess/Variants/corner.py:12 msgid "" "http://brainking.com/en/GameRules?tp=2\n" "* Placement of the pieces on the 1st and 8th row are randomized\n" "* The king is in the right hand corner\n" "* Bishops must start on opposite color squares\n" "* Black's starting position is obtained by rotating white's position 180 degrees around the board's center\n" "* No castling" msgstr "" #: lib/pychess/Variants/corner.py:18 msgid "Corner" msgstr "" #: lib/pychess/Variants/crazyhouse.py:8 msgid "" "FICS crazyhouse: http://www.freechess.org/Help/HelpFiles/crazyhouse.html" msgstr "" #: lib/pychess/Variants/euroshogi.py:9 msgid "EuroShogi: http://en.wikipedia.org/wiki/EuroShogi" msgstr "" #: lib/pychess/Variants/euroshogi.py:10 msgid "EuroShogi" msgstr "" #: lib/pychess/Variants/fischerandom.py:18 msgid "" "http://en.wikipedia.org/wiki/Chess960\n" "FICS wild/fr: http://www.freechess.org/Help/HelpFiles/wild.html" msgstr "" #: lib/pychess/Variants/fischerandom.py:20 msgid "Fischer Random" msgstr "" #: lib/pychess/Variants/kingofthehill.py:8 msgid "" "Bringing your king legally to the center (e4, d4, e5, d5) instantly wins the game!\n" "Normal rules apply in other cases and checkmate also ends the game." msgstr "" #: lib/pychess/Variants/kingofthehill.py:10 msgid "King of the hill" msgstr "" #: lib/pychess/Variants/knightodds.py:8 msgid "One player starts with one less knight piece" msgstr "" #: lib/pychess/Variants/knightodds.py:9 msgid "Knight odds" msgstr "" #: lib/pychess/Variants/losers.py:8 msgid "FICS losers: http://www.freechess.org/Help/HelpFiles/losers_chess.html" msgstr "" #: lib/pychess/Variants/normal.py:4 msgid "" "Classic chess rules\n" "http://en.wikipedia.org/wiki/Chess" msgstr "" #: lib/pychess/Variants/normal.py:6 lib/pychess/widgets/newGameDialog.py:157 msgid "Normal" msgstr "" #: lib/pychess/Variants/pawnodds.py:8 msgid "One player starts with one less pawn piece" msgstr "" #: lib/pychess/Variants/pawnodds.py:9 msgid "Pawn odds" msgstr "" #: lib/pychess/Variants/pawnspassed.py:11 msgid "" "FICS wild/8a: http://www.freechess.org/Help/HelpFiles/wild.html\n" "White pawns start on 5th rank and black pawns on the 4th rank" msgstr "" #: lib/pychess/Variants/pawnspassed.py:13 msgid "Pawns Passed" msgstr "" #: lib/pychess/Variants/pawnspushed.py:10 msgid "" "FICS wild/8: http://www.freechess.org/Help/HelpFiles/wild.html\n" "Pawns start on 4th and 5th ranks rather than 2nd and 7th" msgstr "" #: lib/pychess/Variants/pawnspushed.py:12 msgid "Pawns Pushed" msgstr "" #: lib/pychess/Variants/queenodds.py:8 msgid "One player starts with one less queen piece" msgstr "" #: lib/pychess/Variants/queenodds.py:9 msgid "Queen odds" msgstr "" #: lib/pychess/Variants/randomchess.py:11 msgid "" "FICS wild/3: http://www.freechess.org/Help/HelpFiles/wild.html\n" "* Randomly chosen pieces (two queens or three rooks possible)\n" "* Exactly one king of each color\n" "* Pieces placed randomly behind the pawns\n" "* No castling\n" "* Black's arrangement mirrors white's" msgstr "" #: lib/pychess/Variants/randomchess.py:17 #: lib/pychess/widgets/TaskerManager.py:155 msgid "Random" msgstr "" #: lib/pychess/Variants/rookodds.py:8 msgid "One player starts with one less rook piece" msgstr "" #: lib/pychess/Variants/rookodds.py:9 msgid "Rook odds" msgstr "" #: lib/pychess/Variants/shuffle.py:11 msgid "" "xboard nocastle: http://home.hccnet.nl/h.g.muller/engine-intf.html#8\n" "FICS wild/2: http://www.freechess.org/Help/HelpFiles/wild.html\n" "* Random arrangement of the pieces behind the pawns\n" "* No castling\n" "* Black's arrangement mirrors white's" msgstr "" #: lib/pychess/Variants/suicide.py:11 msgid "" "FICS suicide: http://www.freechess.org/Help/HelpFiles/suicide_chess.html" msgstr "" #: lib/pychess/Variants/theban.py:10 msgid "" "Variant developed by Kai Laskos: " "http://talkchess.com/forum/viewtopic.php?t=40990" msgstr "" #: lib/pychess/Variants/theban.py:11 msgid "Theban" msgstr "" #: lib/pychess/Variants/threecheck.py:10 msgid "Win by giving check 3 times" msgstr "" #: lib/pychess/Variants/threecheck.py:11 msgid "Three-check" msgstr "" #: lib/pychess/Variants/upsidedown.py:10 msgid "" "FICS wild/5: http://www.freechess.org/Help/HelpFiles/wild.html\n" "http://en.wikipedia.org/wiki/Chess_variant#Chess_with_different_starting_positions\n" "Pawns start on their 7th rank rather than their 2nd rank!" msgstr "" #: lib/pychess/Variants/upsidedown.py:13 msgid "Upside Down" msgstr "" #: lib/pychess/Variants/wildcastle.py:10 msgid "" "xboard wildcastle http://home.hccnet.nl/h.g.muller/engine-intf.html#8\n" "FICS wild/0: http://www.freechess.org/Help/HelpFiles/wild.html\n" "* White has the typical set-up at the start.\n" "* Black's pieces are the same, except that the King and Queen are reversed,\n" "* so they are not on the same files as White's King and Queen.\n" "* Castling is done similarly to normal chess:\n" "* o-o-o indicates long castling and o-o short castling." msgstr "" #: lib/pychess/Variants/wildcastle.py:17 msgid "Wildcastle" msgstr "" #: lib/pychess/Variants/wildcastleshuffle.py:11 msgid "" "xboard wildcastle http://home.hccnet.nl/h.g.muller/engine-intf.html#8\n" "FICS wild/1: http://www.freechess.org/Help/HelpFiles/wild.html\n" "* In this variant both sides have the same set of pieces as in normal chess.\n" "* The white king starts on d1 or e1 and the black king starts on d8 or e8,\n" "* and the rooks are in their usual positions.\n" "* Bishops are always on opposite colors.\n" "* Subject to these constraints the position of the pieces on their first ranks is random.\n" "* Castling is done similarly to normal chess:\n" "* o-o-o indicates long castling and o-o short castling." msgstr "" #: lib/pychess/Variants/wildcastleshuffle.py:20 msgid "Wildcastle shuffle" msgstr "" #: lib/pychess/widgets/analyzegameDialog.py:85 msgid "Game analyzing in progress..." msgstr "" #: lib/pychess/widgets/analyzegameDialog.py:86 msgid "Do you want to abort it?" msgstr "" #: lib/pychess/widgets/analyzegameDialog.py:95 #: lib/pychess/widgets/gamewidget.py:202 lib/pychess/widgets/gamewidget.py:320 msgid "Abort" msgstr "" #: lib/pychess/widgets/ChatView.py:125 msgid "Observers" msgstr "" #: lib/pychess/widgets/ChatWindow.py:222 msgid "You have opened no conversations yet" msgstr "" #: lib/pychess/widgets/ChatWindow.py:254 msgid "Only registered users may talk to this channel" msgstr "" #: lib/pychess/widgets/ChatWindow.py:312 msgid "No conversation's selected" msgstr "" #: lib/pychess/widgets/ChatWindow.py:350 msgid "Loading player data" msgstr "" #: lib/pychess/widgets/ChatWindow.py:400 msgid "Receiving list of players" msgstr "" #: lib/pychess/widgets/ChatWindow.py:518 msgid "Friends" msgstr "" #: lib/pychess/widgets/ChatWindow.py:529 msgid "Admin" msgstr "" #: lib/pychess/widgets/ChatWindow.py:540 msgid "More channels" msgstr "" #: lib/pychess/widgets/ChatWindow.py:548 msgid "More players" msgstr "" #: lib/pychess/widgets/ChatWindow.py:558 msgid "Computers" msgstr "" #: lib/pychess/widgets/ChatWindow.py:568 msgid "BlindFold" msgstr "" #: lib/pychess/widgets/ChatWindow.py:578 msgid "Guests" msgstr "" #: lib/pychess/widgets/ChatWindow.py:805 msgid "Conversations" msgstr "" #: lib/pychess/widgets/ChatWindow.py:807 msgid "Conversation info" msgstr "" #: lib/pychess/widgets/enginesDialog.py:152 msgid "Select engine" msgstr "" #: lib/pychess/widgets/enginesDialog.py:156 msgid "Executable files" msgstr "" #: lib/pychess/widgets/enginesDialog.py:176 #: lib/pychess/widgets/enginesDialog.py:210 #: lib/pychess/widgets/enginesDialog.py:235 #, python-format msgid "Unable to add %s" msgstr "" #: lib/pychess/widgets/enginesDialog.py:177 msgid "wine not installed" msgstr "" #: lib/pychess/widgets/enginesDialog.py:211 #: lib/pychess/widgets/enginesDialog.py:236 msgid "There is something wrong with this executable" msgstr "" #: lib/pychess/widgets/enginesDialog.py:266 msgid "Select working directory" msgstr "" #: lib/pychess/widgets/gamenanny.py:115 #, python-format msgid " invalid engine move: %s" msgstr "" #: lib/pychess/widgets/gamenanny.py:134 msgid "Offer Rematch" msgstr "" #: lib/pychess/widgets/gamenanny.py:136 lib/pychess/widgets/gamenanny.py:147 #, python-format msgid "Observe %s" msgstr "" #: lib/pychess/widgets/gamenanny.py:168 msgid "Play Rematch" msgstr "" #: lib/pychess/widgets/gamenanny.py:171 msgid "Undo one move" msgstr "" #: lib/pychess/widgets/gamenanny.py:173 msgid "Undo two moves" msgstr "" #: lib/pychess/widgets/gamenanny.py:203 msgid "The game is paused" msgstr "" #: lib/pychess/widgets/gamenanny.py:221 lib/pychess/widgets/gamenanny.py:222 msgid "Loaded game" msgstr "" #: lib/pychess/widgets/gamenanny.py:228 msgid "Saved game" msgstr "" #: lib/pychess/widgets/gamenanny.py:232 msgid "Analyzer started" msgstr "" #: lib/pychess/widgets/gamenanny.py:281 msgid "You sent an abort offer" msgstr "" #: lib/pychess/widgets/gamenanny.py:283 msgid "You sent an adjournment offer" msgstr "" #: lib/pychess/widgets/gamenanny.py:285 msgid "You sent a draw offer" msgstr "" #: lib/pychess/widgets/gamenanny.py:287 msgid "You sent a pause offer" msgstr "" #: lib/pychess/widgets/gamenanny.py:289 msgid "You sent a resume offer" msgstr "" #: lib/pychess/widgets/gamenanny.py:291 msgid "You sent an undo offer" msgstr "" #: lib/pychess/widgets/gamenanny.py:293 msgid "You asked your opponent to move" msgstr "" #: lib/pychess/widgets/gamenanny.py:305 #, python-format msgid "Engine, %s, has died" msgstr "" #: lib/pychess/widgets/gamenanny.py:306 msgid "" "PyChess has lost connection to the engine, probably because it has died.\n" "\n" "You can try to start a new game with the engine, or try to play against another one." msgstr "" #: lib/pychess/widgets/gamewidget.py:204 msgid "" "This game can be automatically aborted without rating loss because there has" " not yet been two moves made" msgstr "" #: lib/pychess/widgets/gamewidget.py:206 msgid "Offer Abort" msgstr "" #: lib/pychess/widgets/gamewidget.py:208 msgid "" "Your opponent must agree to abort the game because there has been two or " "more moves made" msgstr "" #: lib/pychess/widgets/gamewidget.py:226 msgid "This game can not be adjourned because one or both players are guests" msgstr "" #: lib/pychess/widgets/gamewidget.py:243 msgid "Claim Draw" msgstr "" #: lib/pychess/widgets/gamewidget.py:325 msgid "Pause" msgstr "" #: lib/pychess/widgets/gamewidget.py:326 msgid "Resume" msgstr "" #: lib/pychess/widgets/gamewidget.py:328 msgid "Offer Pause" msgstr "" #: lib/pychess/widgets/gamewidget.py:329 msgid "Offer Resume" msgstr "" #: lib/pychess/widgets/gamewidget.py:333 msgid "Undo" msgstr "" #: lib/pychess/widgets/gamewidget.py:335 msgid "Offer Undo" msgstr "" #: lib/pychess/widgets/gamewidget.py:550 msgid " has lagged for 30 seconds" msgstr "" #: lib/pychess/widgets/gamewidget.py:566 msgid " is lagging heavily but hasn't disconnected" msgstr "" #: lib/pychess/widgets/gamewidget.py:567 msgid "Continue to wait for opponent, or try to adjourn the game?" msgstr "" #: lib/pychess/widgets/gamewidget.py:575 msgid "Wait" msgstr "" #: lib/pychess/widgets/gamewidget.py:576 msgid "Adjourn" msgstr "" #: lib/pychess/widgets/gamewidget.py:648 msgid "Jump to initial position" msgstr "" #: lib/pychess/widgets/gamewidget.py:653 msgid "Step back one move" msgstr "" #: lib/pychess/widgets/gamewidget.py:658 msgid "Go back to the main line" msgstr "" #: lib/pychess/widgets/gamewidget.py:664 msgid "Step forward one move" msgstr "" #: lib/pychess/widgets/gamewidget.py:669 msgid "Jump to latest position" msgstr "" #: lib/pychess/widgets/gamewidget.py:903 msgid "PyChess was unable to load your panel settings" msgstr "" #: lib/pychess/widgets/gamewidget.py:904 msgid "" "Your panel settings have been reset. If this problem repeats, you should " "report it to the developers" msgstr "" #: lib/pychess/widgets/ionest.py:67 lib/pychess/widgets/newGameDialog.py:389 #: lib/pychess/widgets/TaskerManager.py:210 msgid "You" msgstr "" #: lib/pychess/widgets/ionest.py:70 lib/pychess/widgets/newGameDialog.py:390 #: lib/pychess/widgets/preferencesDialog.py:61 #: lib/pychess/widgets/TaskerManager.py:213 msgid "Guest" msgstr "" #: lib/pychess/widgets/ionest.py:93 msgid "Error loading game" msgstr "" #: lib/pychess/widgets/ionest.py:127 lib/pychess/widgets/newGameDialog.py:480 msgid "Open Game" msgstr "" #: lib/pychess/widgets/ionest.py:137 msgid "All Files" msgstr "" #: lib/pychess/widgets/ionest.py:140 msgid "Detect type automatically" msgstr "" #: lib/pychess/widgets/ionest.py:146 msgid "All Chess Files" msgstr "" #: lib/pychess/widgets/ionest.py:228 msgid "Save Game" msgstr "שמירת משחק" #: lib/pychess/widgets/ionest.py:228 msgid "Export position" msgstr "" #: lib/pychess/widgets/ionest.py:232 lib/pychess/widgets/ionest.py:360 msgid "vs." msgstr "" #: lib/pychess/widgets/ionest.py:249 #, python-format msgid "Unknown file type '%s'" msgstr "" #: lib/pychess/widgets/ionest.py:250 #, python-format msgid "" "Was unable to save '%(uri)s' as PyChess doesn't know the format " "'%(ending)s'." msgstr "" #: lib/pychess/widgets/ionest.py:266 #, python-format msgid "Unable to save file '%s'" msgstr "" #: lib/pychess/widgets/ionest.py:268 msgid "" "You don't have the necessary rights to save the file.\n" "Please ensure that you have given the right path and try again." msgstr "" #: lib/pychess/widgets/ionest.py:276 msgid "_Replace" msgstr "" #: lib/pychess/widgets/ionest.py:280 msgid "File exists" msgstr "" #: lib/pychess/widgets/ionest.py:282 #, python-format msgid "" "A file named '%s' already exists. Would you like to replace " "it?" msgstr "" #: lib/pychess/widgets/ionest.py:283 #, python-format msgid "" "The file already exists in '%s'. If you replace it, its content will be " "overwritten." msgstr "" #: lib/pychess/widgets/ionest.py:299 msgid "Could not save the file" msgstr "" #: lib/pychess/widgets/ionest.py:300 msgid "PyChess was not able to save the game" msgstr "" #: lib/pychess/widgets/ionest.py:301 #, python-format msgid "The error was: %s" msgstr "" #: lib/pychess/widgets/ionest.py:325 #, python-format msgid "There is %d game with unsaved moves." msgid_plural "There are %d games with unsaved moves." msgstr[0] "" msgstr[1] "" #: lib/pychess/widgets/ionest.py:328 msgid "Save moves before closing?" msgstr "" #: lib/pychess/widgets/ionest.py:339 msgid "Unable to save to configured file. Save the games before closing?" msgstr "" #: lib/pychess/widgets/ionest.py:366 #, python-format msgid "_Save %d document" msgid_plural "_Save %d documents" msgstr[0] "" msgstr[1] "" #: lib/pychess/widgets/ionest.py:412 msgid "Save the current game before you close it?" msgstr "" #: lib/pychess/widgets/ionest.py:420 msgid "" "Unable to save to configured file. Save the current game before you close " "it?" msgstr "" #: lib/pychess/widgets/ionest.py:434 msgid "" "It is not possible later to continue the game,\n" "if you don't save it." msgstr "" #: lib/pychess/widgets/LogDialog.py:26 msgid "PyChess Information Window" msgstr "" #: lib/pychess/widgets/LogDialog.py:184 lib/pychess/widgets/LogDialog.py:188 msgid "of" msgstr "" #: lib/pychess/widgets/newGameDialog.py:84 #: lib/pychess/widgets/newGameDialog.py:85 msgid "Human Being" msgstr "" #: lib/pychess/widgets/newGameDialog.py:155 msgid "Rapid" msgstr "" #: lib/pychess/widgets/newGameDialog.py:224 msgid "Minutes:" msgstr "" #: lib/pychess/widgets/newGameDialog.py:228 msgid "Gain:" msgstr "" #: lib/pychess/widgets/newGameDialog.py:241 #, python-format msgid "%(name)s %(minutes)d min + %(gain)d sec/move" msgstr "" #: lib/pychess/widgets/newGameDialog.py:244 #, python-format msgid "%(name)s %(minutes)d min %(gain)d sec/move" msgstr "" #: lib/pychess/widgets/newGameDialog.py:247 #, python-format msgid "%(name)s %(minutes)d min" msgstr "" #: lib/pychess/widgets/newGameDialog.py:265 msgid "Odds" msgstr "" #: lib/pychess/widgets/newGameDialog.py:269 msgid "Asian variants" msgstr "" #: lib/pychess/widgets/newGameDialog.py:301 msgid " chess" msgstr "" #: lib/pychess/widgets/newGameDialog.py:682 msgid "Type or paste PGN game or FEN positions here" msgstr "" #: lib/pychess/widgets/newGameDialog.py:725 msgid "Enter Game" msgstr "" #: lib/pychess/widgets/preferencesDialog.py:123 msgid "Select book file" msgstr "" #: lib/pychess/widgets/preferencesDialog.py:128 msgid "Opening books" msgstr "" #: lib/pychess/widgets/preferencesDialog.py:156 msgid "Select Gaviota TB path" msgstr "" #: lib/pychess/widgets/preferencesDialog.py:331 msgid "Open Sound File" msgstr "" #: lib/pychess/widgets/preferencesDialog.py:341 msgid "Sound files" msgstr "" #: lib/pychess/widgets/preferencesDialog.py:485 msgid "Undescribed panel" msgstr "" #: lib/pychess/widgets/preferencesDialog.py:678 msgid "Select auto save path" msgstr "" #: lib/pychess/widgets/tipOfTheDay.py:51 msgid "" "You can start a new game by Game > New Game, in New Game " "window do you can choose Players, Time Control and Chess " "Variants." msgstr "" #: lib/pychess/widgets/tipOfTheDay.py:52 msgid "" "You can choose from 20 different difficulties to play against the computer." msgstr "" #: lib/pychess/widgets/tipOfTheDay.py:53 msgid "" "Chess Variants are like the pieces of the last line will be placed on the " "board." msgstr "" #: lib/pychess/widgets/tipOfTheDay.py:54 msgid "" "To save a game Game > Save Game As, give the filename and " "choose where you want to be saved. At the bottom choose extension type of " "the file, and Save." msgstr "" #: lib/pychess/widgets/tipOfTheDay.py:55 msgid "" "Do you know that you can call flag when the clock is with you, " "Actions > Call Flag." msgstr "" #: lib/pychess/widgets/tipOfTheDay.py:56 msgid "Pressing Ctrl+Z to offer opponent the possible rollback moves." msgstr "" #: lib/pychess/widgets/tipOfTheDay.py:57 msgid "" "To play on Fullscreen mode, just type F11. Coming back, F11 " "again." msgstr "" #: lib/pychess/widgets/tipOfTheDay.py:58 msgid "Hint mode analyzing your game, enable this type Ctrl+H." msgstr "" #: lib/pychess/widgets/tipOfTheDay.py:59 msgid "" "Spy mode analyzing the oponnent game, enable this type Ctrl+Y." msgstr "" #: lib/pychess/widgets/tipOfTheDay.py:60 msgid "" "You can play chess listening to the sounds of the game, for that, " "Settings > Preferences > Sound tab, enable Use " "sounds in PyChess and choose your preferred sounds." msgstr "" #: lib/pychess/widgets/tipOfTheDay.py:61 msgid "" "Do you know that you can help translate Pychess in your language, " "Help > Translate Pychess." msgstr "" #: lib/pychess/widgets/tipOfTheDay.py:62 msgid "" "Do you know that it is possible to finish a chess game in just 2 turns?" msgstr "" #: lib/pychess/widgets/tipOfTheDay.py:63 msgid "" "Do you know that the number of possible chess games exceeds the number of " "atoms in the Universe?" msgstr "" #: lib/pychess/ic/managers/ChatManager.py:184 msgid "Shout" msgstr "" #: lib/pychess/ic/managers/ChatManager.py:185 msgid "Chess Shout" msgstr "" #: lib/pychess/ic/managers/ChatManager.py:195 #, python-format msgid "Unofficial channel %d" msgstr "" #: lib/pychess/Utils/lutils/LBoard.py:152 #, python-format msgid "" "FEN needs 6 data fields. \n" "\n" "%s" msgstr "" #: lib/pychess/Utils/lutils/LBoard.py:154 #, python-format msgid "" "FEN needs at least 2 data fields in fenstr. \n" "\n" "%s" msgstr "" #: lib/pychess/Utils/lutils/LBoard.py:175 #, python-format msgid "" "Needs 7 slashes in piece placement field. \n" "\n" "%s" msgstr "" #: lib/pychess/Utils/lutils/LBoard.py:178 #, python-format msgid "" "Active color field must be one of w or b. \n" "\n" "%s" msgstr "" #: lib/pychess/Utils/lutils/LBoard.py:189 #, python-format msgid "" "Castling availability field is not legal. \n" "\n" "%s" msgstr "" #: lib/pychess/Utils/lutils/LBoard.py:192 #, python-format msgid "" "En passant cord is not legal. \n" "\n" "%s" msgstr "" #: lib/pychess/Utils/lutils/lmove.py:260 msgid "invalid promoted piece" msgstr "" #: lib/pychess/Utils/lutils/lmove.py:272 msgid "the move needs a piece and a cord" msgstr "" #: lib/pychess/Utils/lutils/lmove.py:306 lib/pychess/Utils/lutils/lmove.py:556 msgid "promotion move without promoted piece is incorrect" msgstr "" #: lib/pychess/Utils/lutils/lmove.py:312 #, python-format msgid "the captured cord (%s) is incorrect" msgstr "" #: lib/pychess/Utils/lutils/lmove.py:323 #, python-format msgid "the end cord (%s) is incorrect" msgstr "" #: lib/pychess/Utils/lutils/strateval.py:24 sidepanel/commentPanel.py:191 #: sidepanel/commentPanel.py:208 msgid "and" msgstr "" #: lib/pychess/Utils/lutils/strateval.py:43 msgid "draws" msgstr "" #: lib/pychess/Utils/lutils/strateval.py:45 msgid "mates" msgstr "" #: lib/pychess/Utils/lutils/strateval.py:49 msgid "puts opponent in check" msgstr "" #: lib/pychess/Utils/lutils/strateval.py:73 msgid "improves king safety" msgstr "" #: lib/pychess/Utils/lutils/strateval.py:75 msgid "slightly improves king safety" msgstr "" #: lib/pychess/Utils/lutils/strateval.py:108 msgid "moves a rook to an open file" msgstr "" #: lib/pychess/Utils/lutils/strateval.py:109 msgid "moves an rook to a half-open file" msgstr "" #: lib/pychess/Utils/lutils/strateval.py:119 #: lib/pychess/Utils/lutils/strateval.py:121 #: lib/pychess/Utils/lutils/strateval.py:124 #: lib/pychess/Utils/lutils/strateval.py:126 #, python-format msgid "moves bishop into fianchetto: %s" msgstr "" #: lib/pychess/Utils/lutils/strateval.py:132 #, python-format msgid "promotes a Pawn to a %s" msgstr "" #: lib/pychess/Utils/lutils/strateval.py:135 msgid "castles" msgstr "" #: lib/pychess/Utils/lutils/strateval.py:158 msgid "takes back material" msgstr "" #: lib/pychess/Utils/lutils/strateval.py:162 #: lib/pychess/Utils/lutils/strateval.py:170 msgid "sacrifies material" msgstr "" #: lib/pychess/Utils/lutils/strateval.py:164 msgid "exchanges material" msgstr "" #: lib/pychess/Utils/lutils/strateval.py:166 msgid "captures material" msgstr "" #: lib/pychess/Utils/lutils/strateval.py:291 #, python-format msgid "rescues a %s" msgstr "" #: lib/pychess/Utils/lutils/strateval.py:294 #, python-format msgid "threatens to win material by %s" msgstr "" #: lib/pychess/Utils/lutils/strateval.py:296 #, python-format msgid "increases the pressure on %s" msgstr "" #: lib/pychess/Utils/lutils/strateval.py:298 #, python-format msgid "defends %s" msgstr "" #: lib/pychess/Utils/lutils/strateval.py:336 #, python-format msgid "pins an enemy %(oppiece)s on the %(piece)s at %(cord)s" msgstr "" #: lib/pychess/Utils/lutils/strateval.py:369 #, python-format msgid "White has a new piece in outpost: %s" msgstr "" #: lib/pychess/Utils/lutils/strateval.py:377 #, python-format msgid "Black has a new piece in outpost: %s" msgstr "" #: lib/pychess/Utils/lutils/strateval.py:416 #, python-format msgid "%(color)s has a new passed pawn on %(cord)s" msgstr "" #: lib/pychess/Utils/lutils/strateval.py:470 msgid "half-open" msgstr "" #: lib/pychess/Utils/lutils/strateval.py:472 #, python-format msgid "in the %(x)s%(y)s file" msgstr "" #: lib/pychess/Utils/lutils/strateval.py:474 #, python-format msgid "in the %(x)s%(y)s files" msgstr "" #: lib/pychess/Utils/lutils/strateval.py:477 #, python-format msgid "%(color)s got a double pawn %(place)s" msgstr "" #: lib/pychess/Utils/lutils/strateval.py:478 #, python-format msgid "%(color)s got new double pawns %(place)s" msgstr "" #: lib/pychess/Utils/lutils/strateval.py:485 #, python-format msgid "%(color)s got an isolated pawn in the %(x)s file" msgid_plural "%(color)s got isolated pawns in the %(x)s files" msgstr[0] "" msgstr[1] "" #: lib/pychess/Utils/lutils/strateval.py:492 #, python-format msgid "%s moves pawns into stonewall formation" msgstr "" #: lib/pychess/Utils/lutils/strateval.py:507 #: lib/pychess/Utils/lutils/strateval.py:514 #, python-format msgid "%s can no longer castle" msgstr "" #: lib/pychess/Utils/lutils/strateval.py:508 #: lib/pychess/Utils/lutils/strateval.py:515 #, python-format msgid "%s can no longer castle in queenside" msgstr "" #: lib/pychess/Utils/lutils/strateval.py:510 #: lib/pychess/Utils/lutils/strateval.py:517 #, python-format msgid "%s can no longer castle in kingside" msgstr "" #: lib/pychess/Utils/lutils/strateval.py:551 #, python-format msgid "%(opcolor)s has a new trapped bishop on %(cord)s" msgstr "" #: lib/pychess/Utils/lutils/strateval.py:573 #, python-format msgid "develops a pawn: %s" msgstr "" #: lib/pychess/Utils/lutils/strateval.py:574 #, python-format msgid "brings a pawn closer to the backrow: %s" msgstr "" #: lib/pychess/Utils/lutils/strateval.py:591 #, python-format msgid "brings a %(piece)s closer to enemy king: %(cord)s" msgstr "" #: lib/pychess/Utils/lutils/strateval.py:594 #, python-format msgid "develops a %(piece)s: %(cord)s" msgstr "" #: lib/pychess/Utils/lutils/strateval.py:612 #, python-format msgid "places a %(piece)s more active: %(cord)s" msgstr "" #: lib/pychess/Utils/lutils/strateval.py:638 msgid "White should do pawn storm in right" msgstr "" #: lib/pychess/Utils/lutils/strateval.py:640 msgid "Black should do pawn storm in left" msgstr "" #: lib/pychess/Utils/lutils/strateval.py:643 msgid "White should do pawn storm in left" msgstr "" #: lib/pychess/Utils/lutils/strateval.py:645 msgid "Black should do pawn storm in right" msgstr "" #: lib/pychess/Utils/lutils/strateval.py:671 msgid "Black has a rather cramped position" msgstr "" #: lib/pychess/Utils/lutils/strateval.py:673 msgid "Black has a slightly cramped position" msgstr "" #: lib/pychess/Utils/lutils/strateval.py:675 msgid "White has a rather cramped position" msgstr "" #: lib/pychess/Utils/lutils/strateval.py:677 msgid "White has a slightly cramped position" msgstr "" #: sidepanel/annotationPanel.py:26 msgid "Annotation" msgstr "" #: sidepanel/annotationPanel.py:29 msgid "Annotated game" msgstr "" #: sidepanel/annotationPanel.py:236 msgid "Copy PGN" msgstr "" #: sidepanel/annotationPanel.py:249 msgid "Add start comment" msgstr "" #: sidepanel/annotationPanel.py:254 msgid "Add comment" msgstr "" #: sidepanel/annotationPanel.py:258 sidepanel/annotationPanel.py:316 msgid "Edit comment" msgstr "" #: sidepanel/annotationPanel.py:269 msgid "Forced move" msgstr "" #: sidepanel/annotationPanel.py:274 msgid "Add move symbol" msgstr "" #: sidepanel/annotationPanel.py:280 msgid "Unclear position" msgstr "" #: sidepanel/annotationPanel.py:289 msgid "Zugzwang" msgstr "" #: sidepanel/annotationPanel.py:290 msgid "Development adv." msgstr "" #: sidepanel/annotationPanel.py:291 msgid "Initiative" msgstr "" #: sidepanel/annotationPanel.py:292 msgid "With attack" msgstr "" #: sidepanel/annotationPanel.py:293 msgid "Compensation" msgstr "" #: sidepanel/annotationPanel.py:294 msgid "Counterplay" msgstr "" #: sidepanel/annotationPanel.py:295 msgid "Time pressure" msgstr "" #: sidepanel/annotationPanel.py:300 msgid "Add evaluation symbol" msgstr "" #: sidepanel/annotationPanel.py:304 msgid "Remove symbols" msgstr "" #: sidepanel/annotationPanel.py:911 #, python-format msgid "round %s" msgstr "" #: sidepanel/bookPanel.py:21 msgid "Hints" msgstr "" #: sidepanel/bookPanel.py:25 msgid "" "The hint panel will provide computer advice during each stage of the game" msgstr "" #: sidepanel/bookPanel.py:27 msgid "Official PyChess panel." msgstr "" #: sidepanel/bookPanel.py:87 msgid "Opening Book" msgstr "" #: sidepanel/bookPanel.py:88 msgid "" "The opening book will try to inspire you during the opening phase of the " "game by showing you common moves made by chess masters" msgstr "" #: sidepanel/bookPanel.py:139 #, python-format msgid "Analysis by %s" msgstr "" #: sidepanel/bookPanel.py:140 #, python-format msgid "" "%s will try to predict which move is best and which side has the advantage" msgstr "" #: sidepanel/bookPanel.py:142 #, python-format msgid "Threat analysis by %s" msgstr "" #: sidepanel/bookPanel.py:143 #, python-format msgid "" "%s will identify what threats would exist if it were your opponent's turn to" " move" msgstr "" #: sidepanel/bookPanel.py:159 sidepanel/bookPanel.py:269 msgid "Calculating..." msgstr "" #: sidepanel/bookPanel.py:300 msgid "" "Engine scores are in units of pawns, from White's point of view. Double " "clicking on analysis lines you can insert them into Annotation panel as " "variations." msgstr "" #: sidepanel/bookPanel.py:302 msgid "" "Adding suggestions can help you find ideas, but slows down the computer's " "analysis." msgstr "" #: sidepanel/bookPanel.py:311 msgid "Endgame Table" msgstr "" #: sidepanel/bookPanel.py:315 msgid "" "The endgame table will show exact analysis when there are few pieces on the " "board." msgstr "" #: sidepanel/bookPanel.py:364 sidepanel/bookPanel.py:367 #, python-format msgid "Mate in %d" msgstr "" #: sidepanel/bookPanel.py:554 msgid "" "In this position,\n" "there is no legal move." msgstr "" #: sidepanel/chatPanel.py:21 msgid "" "The chat panel lets you communicate with your opponent during the game, " "assuming he or she is interested" msgstr "" #: sidepanel/commentPanel.py:16 msgid "Comments" msgstr "" #: sidepanel/commentPanel.py:20 msgid "The comments panel will try to analyze and explain the moves played" msgstr "" #: sidepanel/commentPanel.py:121 msgid "Initial position" msgstr "" #: sidepanel/commentPanel.py:254 #, python-format msgid "%(color)s moves a %(piece)s to %(cord)s" msgstr "" #: sidepanel/engineOutputPanel.py:15 msgid "Engines" msgstr "" #: sidepanel/engineOutputPanel.py:20 msgid "" "The engine output panel shows the thinking output of chess engines (computer" " players) during a game" msgstr "" #: sidepanel/engineOutputPanel.py:44 msgid "No chess engines (computer players) are participating in this game." msgstr "" #: sidepanel/historyPanel.py:10 msgid "Move History" msgstr "" #: sidepanel/historyPanel.py:13 msgid "" "The moves sheet keeps track of the players' moves and lets you navigate " "through the game history" msgstr "" #: sidepanel/scorePanel.py:15 msgid "Score" msgstr "" #: sidepanel/scorePanel.py:19 msgid "" "The score panel tries to evaluate the positions and shows you a graph of the" " game progress" msgstr "" pychess-0.12.2/lang/he/LC_MESSAGES/pychess.mo0000644000175000017470000000421712653231273020675 0ustar tamasusers00000000000000)#%9 > JCW  #   1 7AFN U `l r|2,6_8O aks1    1 9CJR Yf y      0 Players Ready10 min + 6 sec/move, 1400↑, White2 min, Fischer Random, 1800↓, Black5 min, 1200-1800, ManualConnect to the Free Online Chess ServerNewsToolsPyChess is discovering your engines. Please wait.Blitz:Lightning:Local EventLog on as _GuestNew GamePyChess - Connect to Internet ChessPyChess.py:RatingS_ign upSave GameShredderLinuxChess:Site:Standard:Time_Accept_Name:_Password:_Start Game_Viewgnuchess:Project-Id-Version: pychess Report-Msgid-Bugs-To: POT-Creation-Date: 2016-01-27 13:28+0100 PO-Revision-Date: 2016-01-28 08:56+0000 Last-Translator: slav0nic Language-Team: Hebrew (http://www.transifex.com/gbtami/pychess/language/he/) MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Language: he Plural-Forms: nplurals=2; plural=(n != 1); 0 שחקנים מוכנים10 דקות + 6 שניות/מסע, 1400↑, לבן2 דקות, פישר - ראנדום, 1800↓, שחור5 דקות, 1200-1800, ידניהתבחר ל-Free Online Chess ServerחדשותכליםPyChess הגלה את המנועים שלך. אנא המתן.בליץ:בזק:אירוע מקומיהתחבר בתור _Guestמשחק חדשPyChess - התחבר לשח-מט באינטרנטPyChess.py:דירוג_הירשםשמירת משחקShredderLinuxChess:אתר:רגיל:זמן_קבל_שם:_סיסמה:_התחל משחק_עריכהgnuchess:pychess-0.12.2/lang/ml/0000755000175000017470000000000012653231274015106 5ustar tamasusers00000000000000pychess-0.12.2/lang/ml/LC_MESSAGES/0000755000175000017470000000000012653231274016673 5ustar tamasusers00000000000000pychess-0.12.2/lang/ml/LC_MESSAGES/pychess.po0000644000175000017470000024245012653216212020713 0ustar tamasusers00000000000000# SOME DESCRIPTIVE TITLE. # Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER # This file is distributed under the same license as the pychess package. # # Translators: # FIRST AUTHOR , 2009 # Sreekumar , 2015 msgid "" msgstr "" "Project-Id-Version: pychess\n" "Report-Msgid-Bugs-To: \n" "POT-Creation-Date: 2016-01-27 13:28+0100\n" "PO-Revision-Date: 2016-01-28 08:56+0000\n" "Last-Translator: slav0nic \n" "Language-Team: Malayalam (http://www.transifex.com/gbtami/pychess/language/ml/)\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" "Language: ml\n" "Plural-Forms: nplurals=2; plural=(n != 1);\n" # "Plural-Forms: nplurals=INTEGER; plural=EXPRESSION;\n" #: glade/analyze_game.glade:22 msgid "Analyze game" msgstr "കളി വിശകലനം ചെയ്യുക" #: glade/analyze_game.glade:87 msgid "Use analyzer:" msgstr "" #: glade/analyze_game.glade:122 glade/PyChess.glade:2054 msgid "Maximum analysis time in seconds:" msgstr "വിശകലനത്തിനുള്ള പരമാവതി സമയം seconds-ഇൽ" #: glade/analyze_game.glade:163 msgid "" "If the analyzer finds a move where the evaluation difference (the difference" " between the evaluation for the move it thinks is the best move and the " "evaluation for the move made in the game) exceeds this value, it will add an" " annotation for that move (consisting of the engine's Principal Variation " "for the move) to the Annotation panel" msgstr "" #: glade/analyze_game.glade:164 msgid "Variation annotation creation threshold in centipawns:" msgstr "" #: glade/analyze_game.glade:198 msgid "Analyze from current position" msgstr "" #: glade/analyze_game.glade:214 msgid "Add threatening variation lines " msgstr "" #: glade/analyze_game.glade:229 glade/PyChess.glade:1459 msgid "Colorize analyzed moves" msgstr "വിശകലനം ചെയ്ത നീകങ്ങൽക്കു നിറം നല്കുക" #: glade/analyze_game.glade:244 glade/PyChess.glade:1495 msgid "Show evaluation values" msgstr "" #: glade/discovererDialog.glade:18 msgid "PyChess is discovering your engines. Please wait." msgstr "പൈചെസ്സ് നിങ്ങളുടെ എഞ്ചിനുകൾ കണ്ടെത്തുകയാണ്. ദെയവായി കാത്തിരിക്കുക" #: glade/discovererDialog.glade:77 msgid "PyChess.py:" msgstr "" #: glade/discovererDialog.glade:89 msgid "ShredderLinuxChess:" msgstr "" #: glade/discovererDialog.glade:101 msgid "gnuchess:" msgstr "" #: glade/fics_logon.glade:7 msgid "PyChess - Connect to Internet Chess" msgstr "" #: glade/fics_logon.glade:47 msgid "Connect to the Free Online Chess Server" msgstr "" #: glade/fics_logon.glade:129 glade/taskers.glade:394 msgid "_Password:" msgstr "പാസ്‍വേര്‍ഡ്" #: glade/fics_logon.glade:143 msgid "_Name:" msgstr "_ നാമം" #: glade/fics_logon.glade:191 msgid "Log on as _Guest" msgstr "_അദിതിയായി കേറുക" #: glade/fics_logon.glade:227 msgid "Host:" msgstr "" #: glade/fics_logon.glade:259 msgid "Po_rts:" msgstr "" #: glade/fics_logon.glade:271 msgid "Auto login on startup" msgstr "" #: glade/fics_logon.glade:385 msgid "S_ign up" msgstr "" #: glade/fics_lounge.glade:35 msgid "Challenge: " msgstr "" #: glade/fics_lounge.glade:97 msgid "Send Challenge" msgstr "" #: glade/fics_lounge.glade:133 msgid "Challenge:" msgstr "" #: glade/fics_lounge.glade:327 glade/fics_lounge.glade:2078 msgid "Lightning:" msgstr "" #: glade/fics_lounge.glade:351 glade/fics_lounge.glade:2102 msgid "Standard:" msgstr "" #: glade/fics_lounge.glade:375 glade/fics_lounge.glade:2126 msgid "Blitz:" msgstr "" #: glade/fics_lounge.glade:400 msgid "2 min, Fischer Random, Black" msgstr "" #: glade/fics_lounge.glade:422 msgid "10 min + 6 sec/move, White" msgstr "" #: glade/fics_lounge.glade:444 msgid "5 min" msgstr "" #: glade/fics_lounge.glade:480 msgid "Edit Seek" msgstr "" #: glade/fics_lounge.glade:584 lib/pychess/ic/ICLounge.py:2208 #: lib/pychess/ic/__init__.py:101 lib/pychess/Utils/GameModel.py:206 msgid "Untimed" msgstr "" #: glade/fics_lounge.glade:637 msgid "Minutes: " msgstr "" #: glade/fics_lounge.glade:665 msgid " Gain: " msgstr "" #: glade/fics_lounge.glade:703 msgid "Time control: " msgstr "" #: glade/fics_lounge.glade:716 lib/pychess/ic/FICSObjects.py:56 #: lib/pychess/ic/ICLounge.py:1137 lib/pychess/ic/ICLounge.py:2208 #: lib/pychess/ic/__init__.py:99 msgid "Standard" msgstr "" #: glade/fics_lounge.glade:757 glade/newInOut.glade:633 msgid "Time Control" msgstr "" #: glade/fics_lounge.glade:814 glade/fics_lounge.glade:1346 msgid "Don't care" msgstr "" #: glade/fics_lounge.glade:879 msgid "Your strength: " msgstr "" #: glade/fics_lounge.glade:921 msgid "(Blitz)" msgstr "" #: glade/fics_lounge.glade:951 msgid "Opponent's strength: " msgstr "" #: glade/fics_lounge.glade:1055 msgid "" "When this button is in the \"locked\" state, the relationship\n" "between \"Opponent's strength\" and \"Your strength\" will be\n" "preserved when \n" "a) your rating for the type of game sought has changed\n" "b) you change the variant or the time control" msgstr "" #: glade/fics_lounge.glade:1095 msgid "Center:" msgstr "" #: glade/fics_lounge.glade:1134 msgid "1200" msgstr "" #: glade/fics_lounge.glade:1188 msgid "Tolerance:" msgstr "" #: glade/fics_lounge.glade:1243 lib/pychess/ic/ICLounge.py:2452 msgid "Hide" msgstr "" #: glade/fics_lounge.glade:1289 msgid "Opponent Strength" msgstr "" #: glade/fics_lounge.glade:1386 lib/pychess/Database/gamelist.py:40 #: lib/pychess/ic/ICLounge.py:1357 lib/pychess/ic/ICLounge.py:1557 #: lib/pychess/ic/ICLounge.py:2108 lib/pychess/Utils/repr.py:10 #: lib/pychess/widgets/ChessClock.py:40 #: lib/pychess/widgets/TaskerManager.py:153 msgid "White" msgstr "" #: glade/fics_lounge.glade:1414 lib/pychess/Database/gamelist.py:40 #: lib/pychess/ic/ICLounge.py:1358 lib/pychess/ic/ICLounge.py:1558 #: lib/pychess/ic/ICLounge.py:2110 lib/pychess/Utils/repr.py:10 #: lib/pychess/widgets/ChessClock.py:40 #: lib/pychess/widgets/TaskerManager.py:154 msgid "Black" msgstr "" #: glade/fics_lounge.glade:1453 msgid "Your Color" msgstr "" #: glade/fics_lounge.glade:1512 msgid "Play normal chess rules" msgstr "" #: glade/fics_lounge.glade:1552 msgid "Play" msgstr "" #: glade/fics_lounge.glade:1618 glade/newInOut.glade:833 msgid "Chess Variant" msgstr "" #: glade/fics_lounge.glade:1676 msgid "Rated game" msgstr "" #: glade/fics_lounge.glade:1692 msgid "Manually accept opponent" msgstr "" #: glade/fics_lounge.glade:1722 msgid "Options" msgstr "" #: glade/fics_lounge.glade:1750 msgid "PyChess - Internet Chess: FICS" msgstr "" #: glade/fics_lounge.glade:1823 msgid "_Clear Seeks" msgstr "" #: glade/fics_lounge.glade:1847 msgid "_Accept" msgstr "അംഗീകരിക്കുക" #: glade/fics_lounge.glade:1871 msgid "_Decline" msgstr "" #: glade/fics_lounge.glade:2151 msgid "2 min, Fischer Random, 1800↓, Black" msgstr "" #: glade/fics_lounge.glade:2172 msgid "10 min + 6 sec/move, 1400↑, White" msgstr "" #: glade/fics_lounge.glade:2193 msgid "5 min, 1200-1800, Manual" msgstr "" #: glade/fics_lounge.glade:2247 msgid "Send all seeks" msgstr "" #: glade/fics_lounge.glade:2301 msgid "Send seek" msgstr "" #: glade/fics_lounge.glade:2337 msgid "Create Seek" msgstr "" #: glade/fics_lounge.glade:2353 msgid "_Seeks / Challenges" msgstr "" #: glade/fics_lounge.glade:2374 lib/pychess/ic/ICLounge.py:472 #: lib/pychess/ic/ICLounge.py:670 lib/pychess/ic/ICLounge.py:1357 #: lib/pychess/ic/ICLounge.py:1358 msgid "Rating" msgstr "" #: glade/fics_lounge.glade:2399 msgid "Time" msgstr "സമയം " #: glade/fics_lounge.glade:2419 msgid "Seek _Graph" msgstr "" #: glade/fics_lounge.glade:2444 msgid "0 Players Ready" msgstr "" #: glade/fics_lounge.glade:2496 msgid "Challenge" msgstr "" #: glade/fics_lounge.glade:2549 glade/fics_lounge.glade:2735 msgid "Observe" msgstr "നിരീക്ഷിക്കുക" #: glade/fics_lounge.glade:2602 msgid "Start Private Chat" msgstr "" #: glade/fics_lounge.glade:2659 msgid "_Player List" msgstr "" #: glade/fics_lounge.glade:2792 msgid "_Game List" msgstr "" #: glade/fics_lounge.glade:2847 msgid "_My games" msgstr "" #: glade/fics_lounge.glade:2904 glade/PyChess.glade:841 msgid "Offer _Resume" msgstr "" #: glade/fics_lounge.glade:2962 glade/PyChess.glade:880 msgid "R_esign" msgstr "" #: glade/fics_lounge.glade:3006 glade/PyChess.glade:820 msgid "Offer _Draw" msgstr "" #: glade/fics_lounge.glade:3050 msgid "Offer A_bort" msgstr "" #: glade/fics_lounge.glade:3107 msgid "Pre_view" msgstr "" #: glade/fics_lounge.glade:3151 msgid "Examine" msgstr "" #: glade/fics_lounge.glade:3208 msgid "_Archived" msgstr "" #: glade/fics_lounge.glade:3313 msgid "News" msgstr "" #: glade/fics_lounge.glade:3345 msgid "Show Console" msgstr "" #: glade/fics_lounge.glade:3359 msgid "Show _Chat" msgstr "" #: glade/fics_lounge.glade:3373 msgid "_Log Off" msgstr "" #: glade/fics_lounge.glade:3393 msgid "Tools" msgstr "" #: glade/fics_lounge.glade:3428 msgid "Asymmetric Random " msgstr "" #: glade/findbar.glade:6 msgid "window1" msgstr "" #: glade/findbar.glade:21 msgid "0 of 0" msgstr "" #: glade/findbar.glade:66 msgid "Search:" msgstr "" #: glade/findbar.glade:134 msgid "_Previous" msgstr "" #: glade/findbar.glade:192 msgid "_Next" msgstr "_അടുത്തതു" #: glade/newInOut.glade:45 lib/pychess/widgets/newGameDialog.py:445 msgid "New Game" msgstr "പുതിയ കളി" #: glade/newInOut.glade:108 msgid "_Start Game" msgstr "_കളി തുടങ്ങുക" #: glade/newInOut.glade:130 msgid "Copy FEN" msgstr "" #: glade/newInOut.glade:143 msgid "Clear" msgstr "" #: glade/newInOut.glade:156 msgid "Paste FEN" msgstr "" #: glade/newInOut.glade:257 msgid "_Black player:" msgstr "_കറുപ്പിന്റെ കളികാരാൻ:" #: glade/newInOut.glade:274 msgid "_White player:" msgstr "" #: glade/newInOut.glade:385 msgid "Players" msgstr "" #: glade/newInOut.glade:436 msgid "_Untimed" msgstr "" #: glade/newInOut.glade:475 msgid "Blitz: 5 min" msgstr "" #: glade/newInOut.glade:526 msgid "Rapid: 15 min + 10 sec/move" msgstr "" #: glade/newInOut.glade:575 msgid "Normal: 40 min + 15 sec/move" msgstr "" #: glade/newInOut.glade:684 msgid "_Play Normal chess" msgstr "" #: glade/newInOut.glade:724 msgid "Play Fischer Random chess" msgstr "" #: glade/newInOut.glade:774 msgid "Play Losers chess" msgstr "" #: glade/newInOut.glade:919 msgid "Open Game" msgstr "" #: glade/newInOut.glade:1162 msgid "Initial Position" msgstr "" #: glade/newInOut.glade:1219 msgid "Enter Game Notation" msgstr "" #: glade/newInOut.glade:1314 msgid "Halfmove clock" msgstr "" #: glade/newInOut.glade:1327 msgid "En passant line" msgstr "" #: glade/newInOut.glade:1339 msgid "Side to move" msgstr "" #: glade/newInOut.glade:1351 msgid "Move number" msgstr "" #: glade/newInOut.glade:1361 msgid "Black O-O" msgstr "" #: glade/newInOut.glade:1375 msgid "Black O-O-O" msgstr "" #: glade/newInOut.glade:1389 msgid "White O-O-O" msgstr "" #: glade/newInOut.glade:1403 msgid "White O-O" msgstr "" #: glade/promotion.glade:7 msgid "Promotion" msgstr "" #: glade/promotion.glade:49 lib/pychess/Utils/repr.py:12 msgid "Queen" msgstr "" #: glade/promotion.glade:95 lib/pychess/Utils/repr.py:12 msgid "Rook" msgstr "" #: glade/promotion.glade:141 lib/pychess/Utils/repr.py:12 msgid "Bishop" msgstr "" #: glade/promotion.glade:187 lib/pychess/Utils/repr.py:12 msgid "Knight" msgstr "" #: glade/promotion.glade:233 lib/pychess/Utils/repr.py:12 msgid "King" msgstr "" #: glade/promotion.glade:265 msgid "Promote pawn to what?" msgstr "" #: glade/PyChess.glade:9 msgid "Chess client" msgstr "" #: glade/PyChess.glade:44 msgid "Game information" msgstr "" #: glade/PyChess.glade:164 msgid "Event:" msgstr "" #: glade/PyChess.glade:178 msgid "Site:" msgstr "" #: glade/PyChess.glade:204 msgid "Round:" msgstr "" #: glade/PyChess.glade:237 msgid "White:" msgstr "" #: glade/PyChess.glade:249 msgid "Black:" msgstr "" #: glade/PyChess.glade:302 msgid "Game data" msgstr "" #: glade/PyChess.glade:357 msgid "Date of game" msgstr "" #: glade/PyChess.glade:495 msgid "_Game" msgstr "" #: glade/PyChess.glade:502 msgid "_New Game" msgstr "" #: glade/PyChess.glade:515 msgid "Play _Internet Chess" msgstr "" #: glade/PyChess.glade:534 msgid "_Load Game" msgstr "" #: glade/PyChess.glade:550 msgid "Load _Recent Game" msgstr "" #: glade/PyChess.glade:558 msgid "Open _Database" msgstr "" #: glade/PyChess.glade:569 lib/pychess/widgets/newGameDialog.py:615 msgid "Setup Position" msgstr "" #: glade/PyChess.glade:579 msgid "Enter Game _Notation" msgstr "" #: glade/PyChess.glade:592 msgid "_Save Game" msgstr "" #: glade/PyChess.glade:606 msgid "Save Game _As" msgstr "" #: glade/PyChess.glade:624 msgid "Share Game" msgstr "" #: glade/PyChess.glade:630 msgid "_Export Position" msgstr "" #: glade/PyChess.glade:644 msgid "_Analyze Game" msgstr "" #: glade/PyChess.glade:678 msgid "Player _Rating" msgstr "" #: glade/PyChess.glade:723 msgid "_Edit" msgstr "" #: glade/PyChess.glade:734 msgid "_Copy PGN" msgstr "" #: glade/PyChess.glade:746 msgid "_Copy FEN" msgstr "" #: glade/PyChess.glade:763 msgid "_Engines" msgstr "" #: glade/PyChess.glade:789 msgid "_Actions" msgstr "" #: glade/PyChess.glade:800 msgid "Offer _Abort" msgstr "" #: glade/PyChess.glade:810 msgid "Offer Ad_journment" msgstr "" #: glade/PyChess.glade:831 msgid "Offer _Pause" msgstr "" #: glade/PyChess.glade:847 msgid "Offer _Undo" msgstr "" #: glade/PyChess.glade:870 msgid "_Call Flag" msgstr "" #: glade/PyChess.glade:890 msgid "Ask to _Move" msgstr "" #: glade/PyChess.glade:905 msgid "Auto Call _Flag" msgstr "" #: glade/PyChess.glade:918 msgid "_View" msgstr "" #: glade/PyChess.glade:925 msgid "_Rotate Board" msgstr "" #: glade/PyChess.glade:939 msgid "_Fullscreen" msgstr "" #: glade/PyChess.glade:952 msgid "Leave _Fullscreen" msgstr "" #: glade/PyChess.glade:969 msgid "_Show Sidepanels" msgstr "" #: glade/PyChess.glade:980 msgid "_Log Viewer" msgstr "" #: glade/PyChess.glade:997 msgid "_Hint mode" msgstr "" #: glade/PyChess.glade:1009 msgid "Sp_y mode" msgstr "" #: glade/PyChess.glade:1024 msgid "_Help" msgstr "" #: glade/PyChess.glade:1034 msgid "About Chess" msgstr "" #: glade/PyChess.glade:1043 msgid "How to Play" msgstr "" #: glade/PyChess.glade:1052 msgid "Translate PyChess" msgstr "" #: glade/PyChess.glade:1058 msgid "Tip of the Day" msgstr "" #: glade/PyChess.glade:1153 msgid "Default" msgstr "" #: glade/PyChess.glade:1156 msgid "Knights" msgstr "" #: glade/PyChess.glade:1167 lib/pychess/widgets/preferencesDialog.py:349 msgid "Beep" msgstr "" #: glade/PyChess.glade:1170 lib/pychess/widgets/preferencesDialog.py:350 msgid "Select sound file..." msgstr "" #: glade/PyChess.glade:1173 lib/pychess/widgets/preferencesDialog.py:348 msgid "No sound" msgstr "" #: glade/PyChess.glade:1180 msgid "Preferences" msgstr "" #: glade/PyChess.glade:1218 msgid "The displayed name of the first human player, e.g., John." msgstr "" #: glade/PyChess.glade:1230 msgid "Name of _first human player:" msgstr "" #: glade/PyChess.glade:1259 msgid "The displayed name of the guest player, e.g., Mary." msgstr "" #: glade/PyChess.glade:1271 msgid "Name of s_econd human player:" msgstr "" #: glade/PyChess.glade:1307 msgid "_Hide tabs when only one game is open" msgstr "" #: glade/PyChess.glade:1312 msgid "" "If set, this hides the tab in the top of the playing window, when it is not " "needed." msgstr "" #: glade/PyChess.glade:1326 msgid "_Use main app closer [x] to close all games" msgstr "" #: glade/PyChess.glade:1331 msgid "" "If set, clicking on main application window closer first time it closes all " "games." msgstr "" #: glade/PyChess.glade:1345 msgid "Auto _rotate board to current human player" msgstr "" #: glade/PyChess.glade:1350 msgid "" "If set, the board will turn after each move, to show the natural view for " "the current player." msgstr "" #: glade/PyChess.glade:1364 msgid "Auto _promote to queen" msgstr "" #: glade/PyChess.glade:1369 msgid "If set, pawn promotes to queen without promotion dialog selection." msgstr "" #: glade/PyChess.glade:1383 msgid "Face _to Face display mode" msgstr "" #: glade/PyChess.glade:1388 msgid "" "If set, the black pieces will be head down, suitable for playing against " "friends on mobile devices." msgstr "" #: glade/PyChess.glade:1402 msgid "Sho_w cords" msgstr "" #: glade/PyChess.glade:1407 msgid "" "If set, the playing board will display labels and ranks for each chess " "field. These are usable in chess notation." msgstr "" #: glade/PyChess.glade:1421 msgid "Show _captured pieces" msgstr "" #: glade/PyChess.glade:1426 msgid "If set, the captured figurines will be shown next to the board." msgstr "" #: glade/PyChess.glade:1440 msgid "Prefer figures in _notation" msgstr "" #: glade/PyChess.glade:1445 msgid "" "If set, PyChess will use figures to express moved pieces, rather than " "uppercase letters." msgstr "" #: glade/PyChess.glade:1464 msgid "If set, PyChess will colorize suboptimal analyzed moves with red." msgstr "" #: glade/PyChess.glade:1477 msgid "Show elapsed move times" msgstr "" #: glade/PyChess.glade:1482 msgid "If set, the elapsed time that a player used for the move is shown." msgstr "" #: glade/PyChess.glade:1500 msgid "If set, the hint analyzer engine evaluation value is shown." msgstr "" #: glade/PyChess.glade:1526 msgid "General Options" msgstr "" #: glade/PyChess.glade:1560 msgid "F_ull board animation" msgstr "" #: glade/PyChess.glade:1565 msgid "Animate pieces, board rotation and more. Use this on fast machines." msgstr "" #: glade/PyChess.glade:1579 msgid "Only animate _moves" msgstr "" #: glade/PyChess.glade:1584 msgid "Only animate piece moves." msgstr "" #: glade/PyChess.glade:1599 msgid "No _animation" msgstr "" #: glade/PyChess.glade:1604 msgid "Never use animation. Use this on slow machines." msgstr "" #: glade/PyChess.glade:1632 msgid "Animation" msgstr "" #: glade/PyChess.glade:1651 msgid "_General" msgstr "" #: glade/PyChess.glade:1692 msgid "Use opening _book" msgstr "" #: glade/PyChess.glade:1697 msgid "If set, PyChess will suggest best opening moves on hint panel." msgstr "" #: glade/PyChess.glade:1724 msgid "Polyglot book file:" msgstr "" #: glade/PyChess.glade:1768 msgid "Use _local tablebases" msgstr "" #: glade/PyChess.glade:1773 msgid "" "If set, PyChess will show game results for different moves in positions containing 6 or less pieces.\n" "You can download tablebase files from:\n" "http://www.olympuschess.com/egtb/gaviota/" msgstr "" #: glade/PyChess.glade:1803 msgid "Gaviota TB path:" msgstr "" #: glade/PyChess.glade:1843 msgid "Use _online tablebases" msgstr "" #: glade/PyChess.glade:1848 msgid "" "If set, PyChess will show game results for different moves in positions containing 6 or less pieces.\n" "It will search positions from http://www.k4it.de/" msgstr "" #: glade/PyChess.glade:1870 msgid "Opening, endgame" msgstr "" #: glade/PyChess.glade:1904 msgid "Use _analyzer" msgstr "" #: glade/PyChess.glade:1946 msgid "" "The analyzer will run in the background and analyze the game. This is " "necessary for the hint mode to work" msgstr "" #: glade/PyChess.glade:1978 msgid "Use _inverted analyzer" msgstr "" #: glade/PyChess.glade:2020 msgid "" "The inverse analyzer will analyze the game as if your opponent was to move. " "This is necessary for the spy mode to work" msgstr "" #: glade/PyChess.glade:2096 msgid "Analyzing" msgstr "" #: glade/PyChess.glade:2118 msgid "_Hints" msgstr "" #: glade/PyChess.glade:2263 msgid "Uninstall" msgstr "" #: glade/PyChess.glade:2317 msgid "Ac_tive" msgstr "" #: glade/PyChess.glade:2367 msgid "Installed Sidepanels" msgstr "" #: glade/PyChess.glade:2382 msgid "Side_panels" msgstr "" #: glade/PyChess.glade:2440 msgid "Light Squares :" msgstr "" #: glade/PyChess.glade:2479 msgid "Dark Squares :" msgstr "" #: glade/PyChess.glade:2515 msgid "Reset Default Colours" msgstr "" #: glade/PyChess.glade:2551 msgid "Board Colours" msgstr "" #: glade/PyChess.glade:2610 msgid "Chess Sets" msgstr "" #: glade/PyChess.glade:2634 msgid "Themes" msgstr "" #: glade/PyChess.glade:2659 msgid "_Use sounds in PyChess" msgstr "" #: glade/PyChess.glade:2982 msgid "A player _checks:" msgstr "" #: glade/PyChess.glade:2997 msgid "A player _moves:" msgstr "" #: glade/PyChess.glade:3010 msgid "Game is _drawn:" msgstr "" #: glade/PyChess.glade:3025 msgid "Game is _lost:" msgstr "" #: glade/PyChess.glade:3040 msgid "Game is _won:" msgstr "" #: glade/PyChess.glade:3055 msgid "A player c_aptures:" msgstr "" #: glade/PyChess.glade:3084 msgid "Game is _set-up:" msgstr "" #: glade/PyChess.glade:3136 msgid "_Observed moves:" msgstr "" #: glade/PyChess.glade:3151 msgid "Observed _ends:" msgstr "" #: glade/PyChess.glade:3265 msgid "Short on _time:" msgstr "" #: glade/PyChess.glade:3317 msgid "_Invalid move:" msgstr "" #: glade/PyChess.glade:3369 msgid "Activate alarm when _remaining sec is:" msgstr "" #: glade/PyChess.glade:3416 msgid "Play Sound When..." msgstr "" #: glade/PyChess.glade:3438 msgid "_Sounds" msgstr "" #: glade/PyChess.glade:3463 msgid "_Auto save finished games" msgstr "" #: glade/PyChess.glade:3497 msgid "Save files to:" msgstr "" #: glade/PyChess.glade:3525 msgid "Use name format:" msgstr "" #: glade/PyChess.glade:3569 msgid "Names: #n1, #n2" msgstr "" #: glade/PyChess.glade:3582 msgid "Year, month, day: #y, #m, #d" msgstr "" #: glade/PyChess.glade:3619 msgid "Save elapsed move _times" msgstr "" #: glade/PyChess.glade:3644 msgid "Save analyzing engine _evaluation values" msgstr "" #: glade/PyChess.glade:3669 msgid "Save _own games only" msgstr "" #: glade/PyChess.glade:3698 msgid "Save" msgstr "" #: glade/PyChess.glade:3728 msgid "uci" msgstr "" #: glade/PyChess.glade:3731 msgid "xboard" msgstr "" #: glade/PyChess.glade:3739 msgid "Manage engines" msgstr "" #: glade/PyChess.glade:3837 msgid "Command:" msgstr "" #: glade/PyChess.glade:3851 msgid "Protocol:" msgstr "" #: glade/PyChess.glade:3865 msgid "Parameters:" msgstr "" #: glade/PyChess.glade:3878 msgid "Command line parameters needed by the engine." msgstr "" #: glade/PyChess.glade:3903 msgid "" "Engines use uci or xboard communication protocol to talk to the GUI.\n" "If it can use both you can set here which one you like." msgstr "" #: glade/PyChess.glade:3929 msgid "Working directory:" msgstr "" #: glade/PyChess.glade:3942 msgid "The directory where the engine will be started from." msgstr "" #: glade/saveGamesDialog.glade:7 msgid "Quit PyChess" msgstr "" #: glade/saveGamesDialog.glade:24 lib/pychess/widgets/ionest.py:424 msgid "Close _without Saving" msgstr "" #: glade/saveGamesDialog.glade:83 msgid "_Save %d documents" msgstr "" #: glade/saveGamesDialog.glade:141 msgid "" "There are %d games with unsaved moves. Save changes before " "closing?" msgstr "" #: glade/saveGamesDialog.glade:161 msgid "Select the games you want to save:" msgstr "" #: glade/saveGamesDialog.glade:204 msgid "If you don't save, new changes to your games will be permanently lost." msgstr "" #: glade/taskers.glade:126 msgid "_Opponent:" msgstr "" #: glade/taskers.glade:154 msgid "_Your Color:" msgstr "" #: glade/taskers.glade:219 msgid "_Start Game" msgstr "" #: glade/taskers.glade:338 msgid "Log on as G_uest" msgstr "" #: glade/taskers.glade:410 msgid "Ha_ndle:" msgstr "" #: glade/taskers.glade:469 msgid "_Connect to server" msgstr "" #: glade/tipoftheday.glade:7 msgid "Tip Of The day" msgstr "" #: glade/tipoftheday.glade:62 msgid "Show tips at startup" msgstr "" #: lib/pychess/Main.py:302 msgid "http://en.wikipedia.org/wiki/Chess" msgstr "" #: lib/pychess/Main.py:305 msgid "http://en.wikipedia.org/wiki/Rules_of_chess" msgstr "" #: lib/pychess/Main.py:370 lib/pychess/widgets/gamenanny.py:80 msgid "Welcome" msgstr "" #: lib/pychess/Database/gamelist.py:40 msgid "Id" msgstr "" #: lib/pychess/Database/gamelist.py:40 msgid "W Elo" msgstr "" #: lib/pychess/Database/gamelist.py:40 msgid "B Elo" msgstr "" #: lib/pychess/Database/gamelist.py:41 msgid "Result" msgstr "" #: lib/pychess/Database/gamelist.py:41 msgid "Event" msgstr "" #: lib/pychess/Database/gamelist.py:41 msgid "Site" msgstr "" #: lib/pychess/Database/gamelist.py:41 msgid "Round" msgstr "" #: lib/pychess/Database/gamelist.py:41 msgid "Date" msgstr "" #: lib/pychess/Database/gamelist.py:41 msgid "ECO" msgstr "" #: lib/pychess/Database/gamelist.py:62 msgid "PyChess Game Database" msgstr "" #: lib/pychess/Database/PgnImport.py:188 #, python-format msgid "The game #%s can't be loaded, because of an error parsing FEN" msgstr "" #: lib/pychess/ic/FICSConnection.py:139 msgid "The connection was broken - got \"end of file\" message" msgstr "" #: lib/pychess/ic/FICSConnection.py:140 #, python-format msgid "'%s' is not a registered name" msgstr "" #: lib/pychess/ic/FICSConnection.py:141 msgid "" "The entered password was invalid.\n" "If you forgot your password, go to http://www.freechess.org/password to request a new one over email." msgstr "" #: lib/pychess/ic/FICSConnection.py:145 #, python-format msgid "Sorry '%s' is already logged in" msgstr "" #: lib/pychess/ic/FICSConnection.py:146 #, python-format msgid "'%s' is a registered name. If it is yours, type the password." msgstr "" #: lib/pychess/ic/FICSConnection.py:147 msgid "" "Due to abuse problems, guest connections have been prevented.\n" "You can still register on http://www.freechess.org" msgstr "" #: lib/pychess/ic/FICSConnection.py:166 msgid "Connecting to server" msgstr "" #: lib/pychess/ic/FICSConnection.py:181 msgid "Logging on to server" msgstr "" #: lib/pychess/ic/FICSConnection.py:239 msgid "Setting up environment" msgstr "" #: lib/pychess/ic/FICSObjects.py:35 lib/pychess/ic/FICSObjects.py:47 #, python-format msgid "%(player)s is %(status)s" msgstr "" #: lib/pychess/ic/FICSObjects.py:46 msgid "not playing" msgstr "" #: lib/pychess/ic/FICSObjects.py:54 lib/pychess/ic/ICLounge.py:1136 #: lib/pychess/ic/ICLounge.py:2209 lib/pychess/ic/__init__.py:98 #: lib/pychess/widgets/newGameDialog.py:153 msgid "Blitz" msgstr "" #: lib/pychess/ic/FICSObjects.py:58 lib/pychess/ic/ICLounge.py:1137 #: lib/pychess/ic/ICLounge.py:2209 lib/pychess/ic/__init__.py:100 msgid "Lightning" msgstr "" #: lib/pychess/ic/FICSObjects.py:60 lib/pychess/Variants/atomic.py:15 msgid "Atomic" msgstr "" #: lib/pychess/ic/FICSObjects.py:62 lib/pychess/Variants/bughouse.py:9 msgid "Bughouse" msgstr "" #: lib/pychess/ic/FICSObjects.py:64 lib/pychess/Variants/crazyhouse.py:9 msgid "Crazyhouse" msgstr "" #: lib/pychess/ic/FICSObjects.py:66 lib/pychess/Variants/losers.py:9 msgid "Losers" msgstr "" #: lib/pychess/ic/FICSObjects.py:68 lib/pychess/Variants/suicide.py:12 msgid "Suicide" msgstr "" #: lib/pychess/ic/FICSObjects.py:70 lib/pychess/ic/__init__.py:129 msgid "Wild" msgstr "" #: lib/pychess/ic/FICSObjects.py:117 msgid "Online" msgstr "" #: lib/pychess/ic/FICSObjects.py:118 lib/pychess/ic/FICSObjects.py:143 msgid "Offline" msgstr "" #: lib/pychess/ic/FICSObjects.py:133 msgid "Available" msgstr "" #: lib/pychess/ic/FICSObjects.py:135 msgid "Playing" msgstr "" #: lib/pychess/ic/FICSObjects.py:141 msgid "Idle" msgstr "" #: lib/pychess/ic/FICSObjects.py:145 msgid "Examining" msgstr "" #: lib/pychess/ic/FICSObjects.py:147 msgid "Not Available" msgstr "" #: lib/pychess/ic/FICSObjects.py:149 msgid "Running Simul Match" msgstr "" #: lib/pychess/ic/FICSObjects.py:151 msgid "In Tournament" msgstr "" #: lib/pychess/ic/FICSObjects.py:308 lib/pychess/ic/FICSObjects.py:492 #: lib/pychess/ic/ICLounge.py:2278 msgid "Unrated" msgstr "" #: lib/pychess/ic/FICSObjects.py:491 lib/pychess/ic/ICLounge.py:670 #: lib/pychess/ic/ICLounge.py:1358 lib/pychess/ic/ICLounge.py:1558 #: lib/pychess/ic/ICLounge.py:2113 msgid "Rated" msgstr "" #: lib/pychess/ic/FICSObjects.py:498 lib/pychess/ic/ICLounge.py:2098 #, python-format msgid "%d min" msgstr "" #: lib/pychess/ic/FICSObjects.py:500 #, python-format msgid " + %d sec" msgstr "" #: lib/pychess/ic/FICSObjects.py:517 #, python-format msgid "%(player)s plays %(color)s" msgstr "" #: lib/pychess/ic/FICSObjects.py:519 lib/pychess/ic/ICLounge.py:909 msgid "white" msgstr "" #: lib/pychess/ic/FICSObjects.py:519 lib/pychess/ic/ICLounge.py:909 msgid "black" msgstr "" #: lib/pychess/ic/FICSObjects.py:565 msgid "This is a continuation of an adjourned match" msgstr "" #: lib/pychess/ic/FICSObjects.py:654 msgid "Opponent Rating" msgstr "" #: lib/pychess/ic/FICSObjects.py:656 msgid "Manual Accept" msgstr "" #: lib/pychess/ic/FICSObjects.py:810 msgid "Private" msgstr "" #: lib/pychess/ic/FICSObjects.py:930 lib/pychess/ic/ICLounge.py:527 #: lib/pychess/Savers/epd.py:139 msgid "Unknown" msgstr "" #: lib/pychess/ic/ICLogon.py:159 lib/pychess/ic/ICLogon.py:165 msgid "Connection Error" msgstr "" #: lib/pychess/ic/ICLogon.py:161 msgid "Log on Error" msgstr "" #: lib/pychess/ic/ICLogon.py:163 msgid "Connection was closed" msgstr "" #: lib/pychess/ic/ICLogon.py:169 msgid "Address Error" msgstr "" #: lib/pychess/ic/ICLogon.py:172 msgid "Auto-logout" msgstr "" #: lib/pychess/ic/ICLogon.py:173 msgid "You have been logged out because you were idle more than 60 minutes" msgstr "" #: lib/pychess/ic/ICLounge.py:222 msgid "You have to set kibitz on to see bot messages here." msgstr "" #: lib/pychess/ic/ICLounge.py:241 msgid "" "You may only have 3 outstanding seeks at the same time. If you want to add a" " new seek you must clear your currently active seeks. Clear your seeks?" msgstr "" #: lib/pychess/ic/ICLounge.py:258 msgid "You can't touch this! You are examining a game." msgstr "" #: lib/pychess/ic/ICLounge.py:270 msgid " has declined your offer for a match" msgstr "" #: lib/pychess/ic/ICLounge.py:283 msgid " is censoring you" msgstr "" #: lib/pychess/ic/ICLounge.py:296 msgid " noplay listing you" msgstr "" #: lib/pychess/ic/ICLounge.py:311 msgid " uses a formula not fitting your match request:" msgstr "" #: lib/pychess/ic/ICLounge.py:325 msgid "to manual accept" msgstr "" #: lib/pychess/ic/ICLounge.py:327 msgid "to automatic accept" msgstr "" #: lib/pychess/ic/ICLounge.py:329 msgid "rating range now" msgstr "" #: lib/pychess/ic/ICLounge.py:330 msgid "Seek updated" msgstr "" #: lib/pychess/ic/ICLounge.py:342 msgid "Your seeks have been removed" msgstr "" #: lib/pychess/ic/ICLounge.py:363 msgid " has arrived" msgstr "" #: lib/pychess/ic/ICLounge.py:370 msgid " has departed" msgstr "" #: lib/pychess/ic/ICLounge.py:374 msgid " is present" msgstr "" #: lib/pychess/ic/ICLounge.py:391 sidepanel/chatPanel.py:17 msgid "Chat" msgstr "" #: lib/pychess/ic/ICLounge.py:472 sidepanel/bookPanel.py:366 msgid "Win" msgstr "" #: lib/pychess/ic/ICLounge.py:472 sidepanel/bookPanel.py:360 msgid "Draw" msgstr "" #: lib/pychess/ic/ICLounge.py:472 sidepanel/bookPanel.py:363 msgid "Loss" msgstr "" #: lib/pychess/ic/ICLounge.py:482 msgid "" "On FICS, your \"Wild\" rating encompasses all of the following variants at " "all time controls:\n" msgstr "" #: lib/pychess/ic/ICLounge.py:494 msgid "Sanctions" msgstr "" #: lib/pychess/ic/ICLounge.py:499 msgid "Email" msgstr "" #: lib/pychess/ic/ICLounge.py:504 msgid "Spent" msgstr "" #: lib/pychess/ic/ICLounge.py:506 msgid "online in total" msgstr "" #: lib/pychess/ic/ICLounge.py:512 msgid "Ping" msgstr "" #: lib/pychess/ic/ICLounge.py:517 msgid "Connecting" msgstr "" #: lib/pychess/ic/ICLounge.py:544 msgid "" "You are currently logged in as a guest.\n" "A guest can't play rated games and therefore isn't able to play as many of the types of matches offered as a registered user. To register an account, go to http://www.freechess.org/Register/index.html." msgstr "" #: lib/pychess/ic/ICLounge.py:669 lib/pychess/ic/ICLounge.py:1136 msgid "Name" msgstr "" #: lib/pychess/ic/ICLounge.py:670 lib/pychess/ic/ICLounge.py:1358 #: lib/pychess/ic/ICLounge.py:1558 msgid "Type" msgstr "" #: lib/pychess/ic/ICLounge.py:670 lib/pychess/ic/ICLounge.py:1558 msgid "Clock" msgstr "" #: lib/pychess/ic/ICLounge.py:726 lib/pychess/ic/ICLounge.py:923 #: lib/pychess/Players/Human.py:250 msgid "Accept" msgstr "" #: lib/pychess/ic/ICLounge.py:728 msgid "Assess" msgstr "" #: lib/pychess/ic/ICLounge.py:734 msgid "Archived" msgstr "" #: lib/pychess/ic/ICLounge.py:848 #, python-format msgid "Active seeks: %d" msgstr "" #: lib/pychess/ic/ICLounge.py:897 #, python-format msgid "" " would like to resume your adjourned %(time)s %(gametype)s " "game." msgstr "" #: lib/pychess/ic/ICLounge.py:902 #, python-format msgid "" " challenges you to a %(time)s %(rated)s %(gametype)s game" msgstr "" #: lib/pychess/ic/ICLounge.py:907 #, python-format msgid " where %(player)s plays %(color)s." msgstr "" #: lib/pychess/ic/ICLounge.py:924 lib/pychess/Players/Human.py:251 msgid "Decline" msgstr "" #: lib/pychess/ic/ICLounge.py:1065 msgid " min" msgstr "" #: lib/pychess/ic/ICLounge.py:1137 msgid "Status" msgstr "" #: lib/pychess/ic/ICLounge.py:1203 lib/pychess/ic/ICLounge.py:1233 #, python-format msgid "Players: %d" msgstr "" #: lib/pychess/ic/ICLounge.py:1469 #, python-format msgid "Games running: %d" msgstr "" #: lib/pychess/ic/ICLounge.py:1559 msgid "Date/Time" msgstr "" #: lib/pychess/ic/ICLounge.py:1614 #, python-format msgid "" " with whom you have an adjourned %(timecontrol)s %(gametype)s " "game is online." msgstr "" #: lib/pychess/ic/ICLounge.py:1635 msgid "Request Continuation" msgstr "" #: lib/pychess/ic/ICLounge.py:1637 msgid "Examine Adjourned Game" msgstr "" #: lib/pychess/ic/ICLounge.py:1965 msgid "" "The chain button is disabled because you are logged in as a guest. Guests " "can't establish ratings, and the chain button's state has no effect when " "there is no rating to which to tie \"Opponent Strength\" to" msgstr "" #: lib/pychess/ic/ICLounge.py:2006 msgid "Challenge: " msgstr "" #: lib/pychess/ic/ICLounge.py:2044 msgid "If set you can refuse players accepting your seek" msgstr "" #: lib/pychess/ic/ICLounge.py:2048 lib/pychess/ic/ICLounge.py:2051 msgid "This option is not applicable because you're challenging a player" msgstr "" #: lib/pychess/ic/ICLounge.py:2064 msgid "Edit Seek: " msgstr "" #: lib/pychess/ic/ICLounge.py:2095 #, python-format msgid "%(minutes)d min + %(gain)d sec/move" msgstr "" #: lib/pychess/ic/ICLounge.py:2116 msgid "Manual" msgstr "" #: lib/pychess/ic/ICLounge.py:2256 msgid "Any strength" msgstr "" #: lib/pychess/ic/ICLounge.py:2308 msgid "You can't play rated games because you are logged in as a guest" msgstr "" #: lib/pychess/ic/ICLounge.py:2312 msgid "You can't play rated games because \"Untimed\" is checked, " msgstr "" #: lib/pychess/ic/ICLounge.py:2313 msgid "and on FICS, untimed games can't be rated" msgstr "" #: lib/pychess/ic/ICLounge.py:2317 msgid "This option is not available because you're challenging a guest, " msgstr "" #: lib/pychess/ic/ICLounge.py:2318 msgid "and guests can't play rated games" msgstr "" #: lib/pychess/ic/ICLounge.py:2332 lib/pychess/Variants/shuffle.py:16 #: lib/pychess/widgets/newGameDialog.py:266 msgid "Shuffle" msgstr "" #: lib/pychess/ic/ICLounge.py:2333 lib/pychess/widgets/newGameDialog.py:267 msgid "Other (standard rules)" msgstr "" #: lib/pychess/ic/ICLounge.py:2334 lib/pychess/widgets/newGameDialog.py:268 msgid "Other (non standard rules)" msgstr "" #: lib/pychess/ic/ICLounge.py:2421 msgid "You can't select a variant because \"Untimed\" is checked, " msgstr "" #: lib/pychess/ic/ICLounge.py:2422 msgid "and on FICS, untimed games have to be normal chess rules" msgstr "" #: lib/pychess/ic/ICLounge.py:2454 msgid "Change Tolerance" msgstr "" #: lib/pychess/ic/__init__.py:102 msgid "Examined" msgstr "" #: lib/pychess/ic/__init__.py:103 msgid "Other" msgstr "" #: lib/pychess/ic/__init__.py:182 msgid "Administrator" msgstr "" #: lib/pychess/ic/__init__.py:182 msgid "Blindfold Account" msgstr "" #: lib/pychess/ic/__init__.py:182 msgid "Computer" msgstr "" #: lib/pychess/ic/__init__.py:183 msgid "Team Account" msgstr "" #: lib/pychess/ic/__init__.py:183 msgid "Unregistered" msgstr "" #: lib/pychess/ic/__init__.py:183 msgid "Chess Advisor" msgstr "" #: lib/pychess/ic/__init__.py:184 msgid "Service Representative" msgstr "" #: lib/pychess/ic/__init__.py:184 msgid "Tournament Director" msgstr "" #: lib/pychess/ic/__init__.py:184 msgid "Mamer Manager" msgstr "" #: lib/pychess/ic/__init__.py:185 msgid "Grand Master" msgstr "" #: lib/pychess/ic/__init__.py:185 msgid "International Master" msgstr "" #: lib/pychess/ic/__init__.py:185 msgid "FIDE Master" msgstr "" #: lib/pychess/ic/__init__.py:186 msgid "Woman Grand Master" msgstr "" #: lib/pychess/ic/__init__.py:186 msgid "Woman International Master" msgstr "" #: lib/pychess/ic/__init__.py:186 msgid "Woman FIDE Master" msgstr "" #: lib/pychess/ic/__init__.py:187 msgid "Dummy Account" msgstr "" #: lib/pychess/ic/__init__.py:191 msgid "*" msgstr "" #: lib/pychess/ic/__init__.py:191 lib/pychess/Utils/repr.py:14 msgid "B" msgstr "" #: lib/pychess/ic/__init__.py:191 msgid "C" msgstr "" #: lib/pychess/ic/__init__.py:192 msgid "T" msgstr "" #: lib/pychess/ic/__init__.py:192 msgid "U" msgstr "" #: lib/pychess/ic/__init__.py:192 msgid "CA" msgstr "" #: lib/pychess/ic/__init__.py:193 msgid "SR" msgstr "" #: lib/pychess/ic/__init__.py:193 msgid "TD" msgstr "" #: lib/pychess/ic/__init__.py:193 msgid "TM" msgstr "" #: lib/pychess/ic/__init__.py:194 msgid "GM" msgstr "" #: lib/pychess/ic/__init__.py:194 msgid "IM" msgstr "" #: lib/pychess/ic/__init__.py:194 msgid "FM" msgstr "" #: lib/pychess/ic/__init__.py:195 msgid "WGM" msgstr "" #: lib/pychess/ic/__init__.py:195 msgid "WIM" msgstr "" #: lib/pychess/ic/__init__.py:195 msgid "WFM" msgstr "" #: lib/pychess/ic/__init__.py:195 msgid "D" msgstr "" #: lib/pychess/ic/__init__.py:195 msgid "H" msgstr "" #: lib/pychess/ic/__init__.py:195 msgid "CM" msgstr "" #: lib/pychess/ic/__init__.py:195 msgid "FA" msgstr "" #: lib/pychess/ic/__init__.py:195 msgid "NM" msgstr "" #: lib/pychess/Players/CECPEngine.py:857 #, python-format msgid "The engine %s reports an error:" msgstr "" #: lib/pychess/Players/Human.py:20 msgid "Your opponent has offered you a draw." msgstr "" #: lib/pychess/Players/Human.py:21 msgid "" "Your opponent has offered you a draw. If you accept this offer, the game " "will end with a score of 1/2 - 1/2." msgstr "" #: lib/pychess/Players/Human.py:23 msgid "Your opponent wants to abort the game." msgstr "" #: lib/pychess/Players/Human.py:24 msgid "" "Your opponent has asked that the game be aborted. If you accept this offer, " "the game will end with no rating change." msgstr "" #: lib/pychess/Players/Human.py:26 msgid "Your opponent wants to adjourn the game." msgstr "" #: lib/pychess/Players/Human.py:27 msgid "" "Your opponent has asked that the game be adjourned. If you accept this " "offer, the game will be adjourned and you can resume it later (when your " "opponent is online and both players agree to resume)." msgstr "" #: lib/pychess/Players/Human.py:29 #, python-format msgid "Your opponent wants to undo %s move(s)." msgstr "" #: lib/pychess/Players/Human.py:30 #, python-format msgid "" "Your opponent has asked that the last %s move(s) be undone. If you accept " "this offer, the game will continue from the earlier position." msgstr "" #: lib/pychess/Players/Human.py:32 msgid "Your opponent wants to pause the game." msgstr "" #: lib/pychess/Players/Human.py:33 msgid "" "Your opponent has asked that the game be paused. If you accept this offer, " "the game clock will be paused until both players agree to resume the game." msgstr "" #: lib/pychess/Players/Human.py:35 msgid "Your opponent wants to resume the game." msgstr "" #: lib/pychess/Players/Human.py:36 msgid "" "Your opponent has asked that the game be resumed. If you accept this offer, " "the game clock will continue from where it was paused." msgstr "" #: lib/pychess/Players/Human.py:40 msgid "The resignation" msgstr "" #: lib/pychess/Players/Human.py:41 msgid "The flag call" msgstr "" #: lib/pychess/Players/Human.py:42 msgid "The draw offer" msgstr "" #: lib/pychess/Players/Human.py:43 msgid "The abort offer" msgstr "" #: lib/pychess/Players/Human.py:44 msgid "The adjourn offer" msgstr "" #: lib/pychess/Players/Human.py:45 msgid "The pause offer" msgstr "" #: lib/pychess/Players/Human.py:46 msgid "The resume offer" msgstr "" #: lib/pychess/Players/Human.py:47 msgid "The offer to switch sides" msgstr "" #: lib/pychess/Players/Human.py:48 msgid "The takeback offer" msgstr "" #: lib/pychess/Players/Human.py:52 msgid "resign" msgstr "" #: lib/pychess/Players/Human.py:53 msgid "call your opponents flag" msgstr "" #: lib/pychess/Players/Human.py:54 msgid "offer a draw" msgstr "" #: lib/pychess/Players/Human.py:55 msgid "offer an abort" msgstr "" #: lib/pychess/Players/Human.py:56 msgid "offer to adjourn" msgstr "" #: lib/pychess/Players/Human.py:57 msgid "offer a pause" msgstr "" #: lib/pychess/Players/Human.py:58 msgid "offer to resume" msgstr "" #: lib/pychess/Players/Human.py:59 msgid "offer to switch sides" msgstr "" #: lib/pychess/Players/Human.py:60 msgid "offer a takeback" msgstr "" #: lib/pychess/Players/Human.py:61 msgid "ask your opponent to move" msgstr "" #: lib/pychess/Players/Human.py:66 msgid "Your opponent is not out of time." msgstr "" #: lib/pychess/Players/Human.py:68 msgid "The clock hasn't been started yet." msgstr "" #: lib/pychess/Players/Human.py:70 msgid "You can't switch colors during the game." msgstr "" #: lib/pychess/Players/Human.py:72 msgid "You have tried to undo too many moves." msgstr "" #: lib/pychess/Players/Human.py:180 msgid "Your opponent asks you to hurry!" msgstr "" #: lib/pychess/Players/Human.py:181 msgid "" "Generally this means nothing, as the game is time-based, but if you want to " "please your opponent, perhaps you should get going." msgstr "" #: lib/pychess/Players/Human.py:259 #, python-format msgid "%s was declined by your opponent" msgstr "" #: lib/pychess/Players/Human.py:260 #, python-format msgid "Resend %s?" msgstr "" #: lib/pychess/Players/Human.py:267 msgid "Resend" msgstr "" #: lib/pychess/Players/Human.py:275 #, python-format msgid "%s was withdrawn by your opponent" msgstr "" #: lib/pychess/Players/Human.py:276 msgid "Your opponent seems to have changed their mind." msgstr "" #: lib/pychess/Players/Human.py:290 #, python-format msgid "Unable to accept %s" msgstr "" #: lib/pychess/Players/Human.py:291 msgid "Probably because it has been withdrawn." msgstr "" #: lib/pychess/Players/Human.py:298 #, python-format msgid "%s returns an error" msgstr "" #: lib/pychess/Savers/chessalpha2.py:12 msgid "Chess Alpha 2 Diagram" msgstr "" #: lib/pychess/Savers/chesspastebin.py:39 msgid "Game shared at " msgstr "" #: lib/pychess/Savers/chesspastebin.py:41 msgid "(Link is available on clipboard.)" msgstr "" #: lib/pychess/Savers/database.py:19 msgid "PyChess database" msgstr "" #: lib/pychess/Savers/epd.py:12 msgid "Chess Position" msgstr "" #: lib/pychess/Savers/fen.py:12 msgid "Simple Chess Position" msgstr "" #: lib/pychess/Savers/fen.py:44 lib/pychess/Savers/pgn.py:329 msgid "The game can't be loaded, because of an error parsing FEN" msgstr "" #: lib/pychess/Savers/pgnbase.py:100 #, python-format msgid "" "The game can't be read to end, because of an error parsing move %(moveno)s " "'%(notation)s'." msgstr "" #: lib/pychess/Savers/pgnbase.py:102 #, python-format msgid "The move failed because %s." msgstr "" #: lib/pychess/Savers/pgnbase.py:110 #, python-format msgid "Error parsing move %(moveno)s %(mstr)s" msgstr "" #: lib/pychess/Savers/pgn.py:28 msgid "Chess Game" msgstr "" #: lib/pychess/Savers/pgn.py:362 msgid "Invalid move." msgstr "" #: lib/pychess/Savers/png.py:15 msgid "Png image" msgstr "" #: lib/pychess/System/ping.py:31 msgid "Destination Host Unreachable" msgstr "" #: lib/pychess/System/ping.py:74 msgid "Died" msgstr "" #: lib/pychess/Utils/GameModel.py:147 msgid "Local Event" msgstr "" #: lib/pychess/Utils/GameModel.py:148 msgid "Local Site" msgstr "" #: lib/pychess/Utils/repr.py:12 msgid "Pawn" msgstr "" #: lib/pychess/Utils/repr.py:14 msgid "P" msgstr "" #: lib/pychess/Utils/repr.py:14 msgid "N" msgstr "" #: lib/pychess/Utils/repr.py:14 msgid "R" msgstr "" #: lib/pychess/Utils/repr.py:14 msgid "Q" msgstr "" #: lib/pychess/Utils/repr.py:14 msgid "K" msgstr "" #: lib/pychess/Utils/repr.py:17 msgid "The game ended in a draw" msgstr "" #: lib/pychess/Utils/repr.py:18 #, python-format msgid "%(white)s won the game" msgstr "" #: lib/pychess/Utils/repr.py:19 #, python-format msgid "%(black)s won the game" msgstr "" #: lib/pychess/Utils/repr.py:20 msgid "The game has been killed" msgstr "" #: lib/pychess/Utils/repr.py:21 msgid "The game has been adjourned" msgstr "" #: lib/pychess/Utils/repr.py:22 msgid "The game has been aborted" msgstr "" #: lib/pychess/Utils/repr.py:26 msgid "Because neither player has sufficient material to mate" msgstr "" #: lib/pychess/Utils/repr.py:27 msgid "Because the same position was repeated three times in a row" msgstr "" #: lib/pychess/Utils/repr.py:28 msgid "Because the last 50 moves brought nothing new" msgstr "" #: lib/pychess/Utils/repr.py:29 msgid "Because both players ran out of time" msgstr "" #: lib/pychess/Utils/repr.py:30 #, python-format msgid "Because %(mover)s stalemated" msgstr "" #: lib/pychess/Utils/repr.py:31 msgid "Because both players agreed to a draw" msgstr "" #: lib/pychess/Utils/repr.py:32 lib/pychess/Utils/repr.py:42 msgid "Because of adjudication by an admin" msgstr "" #: lib/pychess/Utils/repr.py:33 msgid "Because the game exceed the max length" msgstr "" #: lib/pychess/Utils/repr.py:34 #, python-format msgid "" "Because %(white)s ran out of time and %(black)s has insufficient material to" " mate" msgstr "" #: lib/pychess/Utils/repr.py:35 #, python-format msgid "" "Because %(black)s ran out of time and %(white)s has insufficient material to" " mate" msgstr "" #: lib/pychess/Utils/repr.py:36 msgid "Because both players have the same amount of pieces" msgstr "" #: lib/pychess/Utils/repr.py:38 #, python-format msgid "Because %(loser)s resigned" msgstr "" #: lib/pychess/Utils/repr.py:39 #, python-format msgid "Because %(loser)s ran out of time" msgstr "" #: lib/pychess/Utils/repr.py:40 #, python-format msgid "Because %(loser)s was checkmated" msgstr "" #: lib/pychess/Utils/repr.py:41 #, python-format msgid "Because %(loser)s disconnected" msgstr "" #: lib/pychess/Utils/repr.py:43 #, python-format msgid "Because %(winner)s has fewer pieces" msgstr "" #: lib/pychess/Utils/repr.py:44 #, python-format msgid "Because %(winner)s lost all pieces" msgstr "" #: lib/pychess/Utils/repr.py:45 #, python-format msgid "Because %(loser)s king exploded" msgstr "" #: lib/pychess/Utils/repr.py:46 #, python-format msgid "Because %(winner)s king reached the center" msgstr "" #: lib/pychess/Utils/repr.py:47 #, python-format msgid "Because %(winner)s was giving check 3 times" msgstr "" #: lib/pychess/Utils/repr.py:49 msgid "Because a player lost connection" msgstr "" #: lib/pychess/Utils/repr.py:50 msgid "Because both players agreed to an adjournment" msgstr "" #: lib/pychess/Utils/repr.py:51 msgid "Because the server was shut down" msgstr "" #: lib/pychess/Utils/repr.py:52 msgid "" "Because a player lost connection and the other player requested adjournment" msgstr "" #: lib/pychess/Utils/repr.py:53 #, python-format msgid "" "Because %(black)s lost connection to the server and %(white)s requested " "adjournment" msgstr "" #: lib/pychess/Utils/repr.py:54 #, python-format msgid "" "Because %(white)s lost connection to the server and %(black)s requested " "adjournment" msgstr "" #: lib/pychess/Utils/repr.py:55 #, python-format msgid "Because %(white)s lost connection to the server" msgstr "" #: lib/pychess/Utils/repr.py:56 #, python-format msgid "Because %(black)s lost connection to the server" msgstr "" #: lib/pychess/Utils/repr.py:58 msgid "Because of adjudication by an admin. No rating changes have occurred." msgstr "" #: lib/pychess/Utils/repr.py:59 msgid "" "Because both players agreed to abort the game. No rating changes have " "occurred." msgstr "" #: lib/pychess/Utils/repr.py:60 msgid "Because of courtesy by a player. No rating changes have occurred." msgstr "" #: lib/pychess/Utils/repr.py:61 msgid "" "Because a player aborted the game. Either player can abort the game without " "the other's consent before the second move. No rating changes have occurred." msgstr "" #: lib/pychess/Utils/repr.py:62 msgid "" "Because a player disconnected and there are too few moves to warrant " "adjournment. No rating changes have occurred." msgstr "" #: lib/pychess/Utils/repr.py:63 msgid "Because the server was shut down. No rating changes have occurred." msgstr "" #: lib/pychess/Utils/repr.py:65 #, python-format msgid "Because the %(white)s engine died" msgstr "" #: lib/pychess/Utils/repr.py:66 #, python-format msgid "Because the %(black)s engine died" msgstr "" #: lib/pychess/Utils/repr.py:67 msgid "Because the connection to the server was lost" msgstr "" #: lib/pychess/Utils/repr.py:68 msgid "The reason is unknown" msgstr "" #: lib/pychess/Utils/TimeModel.py:229 msgid "min" msgstr "" #: lib/pychess/Utils/TimeModel.py:231 msgid "sec" msgstr "" #: lib/pychess/Variants/asean.py:12 msgid "" "ASEAN: http://www.ncf-" "phil.org/downloadables/2014/May/Asean_chess/Laws_of_ASEAN_Chess_2011_Nov_26.doc" msgstr "" #: lib/pychess/Variants/asean.py:13 msgid "ASEAN" msgstr "" #: lib/pychess/Variants/asean.py:33 msgid "Makruk: http://en.wikipedia.org/wiki/Makruk" msgstr "" #: lib/pychess/Variants/asean.py:34 msgid "Makruk" msgstr "" #: lib/pychess/Variants/asean.py:60 msgid "Cambodian: http://www.khmerinstitute.org/culture/ok.html" msgstr "" #: lib/pychess/Variants/asean.py:61 msgid "Cambodian" msgstr "" #: lib/pychess/Variants/asean.py:86 msgid "" "Ai-Wok: http://www.open-" "aurec.com/wbforum/viewtopic.php?p=199364&sid=20963a1de2c164050de019e5ed6bf7c4#p199364" msgstr "" #: lib/pychess/Variants/asean.py:87 msgid "Ai-Wok" msgstr "" #: lib/pychess/Variants/asean.py:111 msgid "Sittuyin: http://en.wikipedia.org/wiki/Sittuyin" msgstr "" #: lib/pychess/Variants/asean.py:112 msgid "Sittuyin" msgstr "" #: lib/pychess/Variants/asymmetricrandom.py:12 msgid "" "FICS wild/4: http://www.freechess.org/Help/HelpFiles/wild.html\n" "* Randomly chosen pieces (two queens or three rooks possible)\n" "* Exactly one king of each color\n" "* Pieces placed randomly behind the pawns, SUBJECT TO THE CONSTRAINT THAT THE BISHOPS ARE BALANCED\n" "* No castling\n" "* Black's arrangement DOES NOT mirrors white's" msgstr "" #: lib/pychess/Variants/asymmetricrandom.py:18 msgid "Asymmetric Random" msgstr "" #: lib/pychess/Variants/atomic.py:14 msgid "FICS atomic: http://www.freechess.org/Help/HelpFiles/atomic.html" msgstr "" #: lib/pychess/Variants/blindfold.py:7 msgid "" "Classic chess rules with hidden figurines\n" "http://en.wikipedia.org/wiki/Blindfold_chess" msgstr "" #: lib/pychess/Variants/blindfold.py:9 #: lib/pychess/widgets/newGameDialog.py:264 msgid "Blindfold" msgstr "" #: lib/pychess/Variants/blindfold.py:18 msgid "" "Classic chess rules with hidden pawns\n" "http://en.wikipedia.org/wiki/Blindfold_chess" msgstr "" #: lib/pychess/Variants/blindfold.py:20 msgid "Hidden pawns" msgstr "" #: lib/pychess/Variants/blindfold.py:29 msgid "" "Classic chess rules with hidden pieces\n" "http://en.wikipedia.org/wiki/Blindfold_chess" msgstr "" #: lib/pychess/Variants/blindfold.py:31 msgid "Hidden pieces" msgstr "" #: lib/pychess/Variants/blindfold.py:40 msgid "" "Classic chess rules with all pieces white\n" "http://en.wikipedia.org/wiki/Blindfold_chess" msgstr "" #: lib/pychess/Variants/blindfold.py:42 msgid "All white" msgstr "" #: lib/pychess/Variants/bughouse.py:8 msgid "FICS bughouse: http://www.freechess.org/Help/HelpFiles/bughouse.html" msgstr "" #: lib/pychess/Variants/corner.py:12 msgid "" "http://brainking.com/en/GameRules?tp=2\n" "* Placement of the pieces on the 1st and 8th row are randomized\n" "* The king is in the right hand corner\n" "* Bishops must start on opposite color squares\n" "* Black's starting position is obtained by rotating white's position 180 degrees around the board's center\n" "* No castling" msgstr "" #: lib/pychess/Variants/corner.py:18 msgid "Corner" msgstr "" #: lib/pychess/Variants/crazyhouse.py:8 msgid "" "FICS crazyhouse: http://www.freechess.org/Help/HelpFiles/crazyhouse.html" msgstr "" #: lib/pychess/Variants/euroshogi.py:9 msgid "EuroShogi: http://en.wikipedia.org/wiki/EuroShogi" msgstr "" #: lib/pychess/Variants/euroshogi.py:10 msgid "EuroShogi" msgstr "" #: lib/pychess/Variants/fischerandom.py:18 msgid "" "http://en.wikipedia.org/wiki/Chess960\n" "FICS wild/fr: http://www.freechess.org/Help/HelpFiles/wild.html" msgstr "" #: lib/pychess/Variants/fischerandom.py:20 msgid "Fischer Random" msgstr "" #: lib/pychess/Variants/kingofthehill.py:8 msgid "" "Bringing your king legally to the center (e4, d4, e5, d5) instantly wins the game!\n" "Normal rules apply in other cases and checkmate also ends the game." msgstr "" #: lib/pychess/Variants/kingofthehill.py:10 msgid "King of the hill" msgstr "" #: lib/pychess/Variants/knightodds.py:8 msgid "One player starts with one less knight piece" msgstr "" #: lib/pychess/Variants/knightodds.py:9 msgid "Knight odds" msgstr "" #: lib/pychess/Variants/losers.py:8 msgid "FICS losers: http://www.freechess.org/Help/HelpFiles/losers_chess.html" msgstr "" #: lib/pychess/Variants/normal.py:4 msgid "" "Classic chess rules\n" "http://en.wikipedia.org/wiki/Chess" msgstr "" #: lib/pychess/Variants/normal.py:6 lib/pychess/widgets/newGameDialog.py:157 msgid "Normal" msgstr "" #: lib/pychess/Variants/pawnodds.py:8 msgid "One player starts with one less pawn piece" msgstr "" #: lib/pychess/Variants/pawnodds.py:9 msgid "Pawn odds" msgstr "" #: lib/pychess/Variants/pawnspassed.py:11 msgid "" "FICS wild/8a: http://www.freechess.org/Help/HelpFiles/wild.html\n" "White pawns start on 5th rank and black pawns on the 4th rank" msgstr "" #: lib/pychess/Variants/pawnspassed.py:13 msgid "Pawns Passed" msgstr "" #: lib/pychess/Variants/pawnspushed.py:10 msgid "" "FICS wild/8: http://www.freechess.org/Help/HelpFiles/wild.html\n" "Pawns start on 4th and 5th ranks rather than 2nd and 7th" msgstr "" #: lib/pychess/Variants/pawnspushed.py:12 msgid "Pawns Pushed" msgstr "" #: lib/pychess/Variants/queenodds.py:8 msgid "One player starts with one less queen piece" msgstr "" #: lib/pychess/Variants/queenodds.py:9 msgid "Queen odds" msgstr "" #: lib/pychess/Variants/randomchess.py:11 msgid "" "FICS wild/3: http://www.freechess.org/Help/HelpFiles/wild.html\n" "* Randomly chosen pieces (two queens or three rooks possible)\n" "* Exactly one king of each color\n" "* Pieces placed randomly behind the pawns\n" "* No castling\n" "* Black's arrangement mirrors white's" msgstr "" #: lib/pychess/Variants/randomchess.py:17 #: lib/pychess/widgets/TaskerManager.py:155 msgid "Random" msgstr "" #: lib/pychess/Variants/rookodds.py:8 msgid "One player starts with one less rook piece" msgstr "" #: lib/pychess/Variants/rookodds.py:9 msgid "Rook odds" msgstr "" #: lib/pychess/Variants/shuffle.py:11 msgid "" "xboard nocastle: http://home.hccnet.nl/h.g.muller/engine-intf.html#8\n" "FICS wild/2: http://www.freechess.org/Help/HelpFiles/wild.html\n" "* Random arrangement of the pieces behind the pawns\n" "* No castling\n" "* Black's arrangement mirrors white's" msgstr "" #: lib/pychess/Variants/suicide.py:11 msgid "" "FICS suicide: http://www.freechess.org/Help/HelpFiles/suicide_chess.html" msgstr "" #: lib/pychess/Variants/theban.py:10 msgid "" "Variant developed by Kai Laskos: " "http://talkchess.com/forum/viewtopic.php?t=40990" msgstr "" #: lib/pychess/Variants/theban.py:11 msgid "Theban" msgstr "" #: lib/pychess/Variants/threecheck.py:10 msgid "Win by giving check 3 times" msgstr "" #: lib/pychess/Variants/threecheck.py:11 msgid "Three-check" msgstr "" #: lib/pychess/Variants/upsidedown.py:10 msgid "" "FICS wild/5: http://www.freechess.org/Help/HelpFiles/wild.html\n" "http://en.wikipedia.org/wiki/Chess_variant#Chess_with_different_starting_positions\n" "Pawns start on their 7th rank rather than their 2nd rank!" msgstr "" #: lib/pychess/Variants/upsidedown.py:13 msgid "Upside Down" msgstr "" #: lib/pychess/Variants/wildcastle.py:10 msgid "" "xboard wildcastle http://home.hccnet.nl/h.g.muller/engine-intf.html#8\n" "FICS wild/0: http://www.freechess.org/Help/HelpFiles/wild.html\n" "* White has the typical set-up at the start.\n" "* Black's pieces are the same, except that the King and Queen are reversed,\n" "* so they are not on the same files as White's King and Queen.\n" "* Castling is done similarly to normal chess:\n" "* o-o-o indicates long castling and o-o short castling." msgstr "" #: lib/pychess/Variants/wildcastle.py:17 msgid "Wildcastle" msgstr "" #: lib/pychess/Variants/wildcastleshuffle.py:11 msgid "" "xboard wildcastle http://home.hccnet.nl/h.g.muller/engine-intf.html#8\n" "FICS wild/1: http://www.freechess.org/Help/HelpFiles/wild.html\n" "* In this variant both sides have the same set of pieces as in normal chess.\n" "* The white king starts on d1 or e1 and the black king starts on d8 or e8,\n" "* and the rooks are in their usual positions.\n" "* Bishops are always on opposite colors.\n" "* Subject to these constraints the position of the pieces on their first ranks is random.\n" "* Castling is done similarly to normal chess:\n" "* o-o-o indicates long castling and o-o short castling." msgstr "" #: lib/pychess/Variants/wildcastleshuffle.py:20 msgid "Wildcastle shuffle" msgstr "" #: lib/pychess/widgets/analyzegameDialog.py:85 msgid "Game analyzing in progress..." msgstr "" #: lib/pychess/widgets/analyzegameDialog.py:86 msgid "Do you want to abort it?" msgstr "" #: lib/pychess/widgets/analyzegameDialog.py:95 #: lib/pychess/widgets/gamewidget.py:202 lib/pychess/widgets/gamewidget.py:320 msgid "Abort" msgstr "" #: lib/pychess/widgets/ChatView.py:125 msgid "Observers" msgstr "" #: lib/pychess/widgets/ChatWindow.py:222 msgid "You have opened no conversations yet" msgstr "" #: lib/pychess/widgets/ChatWindow.py:254 msgid "Only registered users may talk to this channel" msgstr "" #: lib/pychess/widgets/ChatWindow.py:312 msgid "No conversation's selected" msgstr "" #: lib/pychess/widgets/ChatWindow.py:350 msgid "Loading player data" msgstr "" #: lib/pychess/widgets/ChatWindow.py:400 msgid "Receiving list of players" msgstr "" #: lib/pychess/widgets/ChatWindow.py:518 msgid "Friends" msgstr "" #: lib/pychess/widgets/ChatWindow.py:529 msgid "Admin" msgstr "" #: lib/pychess/widgets/ChatWindow.py:540 msgid "More channels" msgstr "" #: lib/pychess/widgets/ChatWindow.py:548 msgid "More players" msgstr "" #: lib/pychess/widgets/ChatWindow.py:558 msgid "Computers" msgstr "" #: lib/pychess/widgets/ChatWindow.py:568 msgid "BlindFold" msgstr "" #: lib/pychess/widgets/ChatWindow.py:578 msgid "Guests" msgstr "" #: lib/pychess/widgets/ChatWindow.py:805 msgid "Conversations" msgstr "" #: lib/pychess/widgets/ChatWindow.py:807 msgid "Conversation info" msgstr "" #: lib/pychess/widgets/enginesDialog.py:152 msgid "Select engine" msgstr "" #: lib/pychess/widgets/enginesDialog.py:156 msgid "Executable files" msgstr "" #: lib/pychess/widgets/enginesDialog.py:176 #: lib/pychess/widgets/enginesDialog.py:210 #: lib/pychess/widgets/enginesDialog.py:235 #, python-format msgid "Unable to add %s" msgstr "" #: lib/pychess/widgets/enginesDialog.py:177 msgid "wine not installed" msgstr "" #: lib/pychess/widgets/enginesDialog.py:211 #: lib/pychess/widgets/enginesDialog.py:236 msgid "There is something wrong with this executable" msgstr "" #: lib/pychess/widgets/enginesDialog.py:266 msgid "Select working directory" msgstr "" #: lib/pychess/widgets/gamenanny.py:115 #, python-format msgid " invalid engine move: %s" msgstr "" #: lib/pychess/widgets/gamenanny.py:134 msgid "Offer Rematch" msgstr "" #: lib/pychess/widgets/gamenanny.py:136 lib/pychess/widgets/gamenanny.py:147 #, python-format msgid "Observe %s" msgstr "" #: lib/pychess/widgets/gamenanny.py:168 msgid "Play Rematch" msgstr "" #: lib/pychess/widgets/gamenanny.py:171 msgid "Undo one move" msgstr "" #: lib/pychess/widgets/gamenanny.py:173 msgid "Undo two moves" msgstr "" #: lib/pychess/widgets/gamenanny.py:203 msgid "The game is paused" msgstr "" #: lib/pychess/widgets/gamenanny.py:221 lib/pychess/widgets/gamenanny.py:222 msgid "Loaded game" msgstr "" #: lib/pychess/widgets/gamenanny.py:228 msgid "Saved game" msgstr "" #: lib/pychess/widgets/gamenanny.py:232 msgid "Analyzer started" msgstr "" #: lib/pychess/widgets/gamenanny.py:281 msgid "You sent an abort offer" msgstr "" #: lib/pychess/widgets/gamenanny.py:283 msgid "You sent an adjournment offer" msgstr "" #: lib/pychess/widgets/gamenanny.py:285 msgid "You sent a draw offer" msgstr "" #: lib/pychess/widgets/gamenanny.py:287 msgid "You sent a pause offer" msgstr "" #: lib/pychess/widgets/gamenanny.py:289 msgid "You sent a resume offer" msgstr "" #: lib/pychess/widgets/gamenanny.py:291 msgid "You sent an undo offer" msgstr "" #: lib/pychess/widgets/gamenanny.py:293 msgid "You asked your opponent to move" msgstr "" #: lib/pychess/widgets/gamenanny.py:305 #, python-format msgid "Engine, %s, has died" msgstr "" #: lib/pychess/widgets/gamenanny.py:306 msgid "" "PyChess has lost connection to the engine, probably because it has died.\n" "\n" "You can try to start a new game with the engine, or try to play against another one." msgstr "" #: lib/pychess/widgets/gamewidget.py:204 msgid "" "This game can be automatically aborted without rating loss because there has" " not yet been two moves made" msgstr "" #: lib/pychess/widgets/gamewidget.py:206 msgid "Offer Abort" msgstr "" #: lib/pychess/widgets/gamewidget.py:208 msgid "" "Your opponent must agree to abort the game because there has been two or " "more moves made" msgstr "" #: lib/pychess/widgets/gamewidget.py:226 msgid "This game can not be adjourned because one or both players are guests" msgstr "" #: lib/pychess/widgets/gamewidget.py:243 msgid "Claim Draw" msgstr "" #: lib/pychess/widgets/gamewidget.py:325 msgid "Pause" msgstr "" #: lib/pychess/widgets/gamewidget.py:326 msgid "Resume" msgstr "" #: lib/pychess/widgets/gamewidget.py:328 msgid "Offer Pause" msgstr "" #: lib/pychess/widgets/gamewidget.py:329 msgid "Offer Resume" msgstr "" #: lib/pychess/widgets/gamewidget.py:333 msgid "Undo" msgstr "" #: lib/pychess/widgets/gamewidget.py:335 msgid "Offer Undo" msgstr "" #: lib/pychess/widgets/gamewidget.py:550 msgid " has lagged for 30 seconds" msgstr "" #: lib/pychess/widgets/gamewidget.py:566 msgid " is lagging heavily but hasn't disconnected" msgstr "" #: lib/pychess/widgets/gamewidget.py:567 msgid "Continue to wait for opponent, or try to adjourn the game?" msgstr "" #: lib/pychess/widgets/gamewidget.py:575 msgid "Wait" msgstr "" #: lib/pychess/widgets/gamewidget.py:576 msgid "Adjourn" msgstr "" #: lib/pychess/widgets/gamewidget.py:648 msgid "Jump to initial position" msgstr "" #: lib/pychess/widgets/gamewidget.py:653 msgid "Step back one move" msgstr "" #: lib/pychess/widgets/gamewidget.py:658 msgid "Go back to the main line" msgstr "" #: lib/pychess/widgets/gamewidget.py:664 msgid "Step forward one move" msgstr "" #: lib/pychess/widgets/gamewidget.py:669 msgid "Jump to latest position" msgstr "" #: lib/pychess/widgets/gamewidget.py:903 msgid "PyChess was unable to load your panel settings" msgstr "" #: lib/pychess/widgets/gamewidget.py:904 msgid "" "Your panel settings have been reset. If this problem repeats, you should " "report it to the developers" msgstr "" #: lib/pychess/widgets/ionest.py:67 lib/pychess/widgets/newGameDialog.py:389 #: lib/pychess/widgets/TaskerManager.py:210 msgid "You" msgstr "" #: lib/pychess/widgets/ionest.py:70 lib/pychess/widgets/newGameDialog.py:390 #: lib/pychess/widgets/preferencesDialog.py:61 #: lib/pychess/widgets/TaskerManager.py:213 msgid "Guest" msgstr "" #: lib/pychess/widgets/ionest.py:93 msgid "Error loading game" msgstr "" #: lib/pychess/widgets/ionest.py:127 lib/pychess/widgets/newGameDialog.py:480 msgid "Open Game" msgstr "" #: lib/pychess/widgets/ionest.py:137 msgid "All Files" msgstr "" #: lib/pychess/widgets/ionest.py:140 msgid "Detect type automatically" msgstr "" #: lib/pychess/widgets/ionest.py:146 msgid "All Chess Files" msgstr "" #: lib/pychess/widgets/ionest.py:228 msgid "Save Game" msgstr "" #: lib/pychess/widgets/ionest.py:228 msgid "Export position" msgstr "" #: lib/pychess/widgets/ionest.py:232 lib/pychess/widgets/ionest.py:360 msgid "vs." msgstr "" #: lib/pychess/widgets/ionest.py:249 #, python-format msgid "Unknown file type '%s'" msgstr "" #: lib/pychess/widgets/ionest.py:250 #, python-format msgid "" "Was unable to save '%(uri)s' as PyChess doesn't know the format " "'%(ending)s'." msgstr "" #: lib/pychess/widgets/ionest.py:266 #, python-format msgid "Unable to save file '%s'" msgstr "" #: lib/pychess/widgets/ionest.py:268 msgid "" "You don't have the necessary rights to save the file.\n" "Please ensure that you have given the right path and try again." msgstr "" #: lib/pychess/widgets/ionest.py:276 msgid "_Replace" msgstr "" #: lib/pychess/widgets/ionest.py:280 msgid "File exists" msgstr "" #: lib/pychess/widgets/ionest.py:282 #, python-format msgid "" "A file named '%s' already exists. Would you like to replace " "it?" msgstr "" #: lib/pychess/widgets/ionest.py:283 #, python-format msgid "" "The file already exists in '%s'. If you replace it, its content will be " "overwritten." msgstr "" #: lib/pychess/widgets/ionest.py:299 msgid "Could not save the file" msgstr "" #: lib/pychess/widgets/ionest.py:300 msgid "PyChess was not able to save the game" msgstr "" #: lib/pychess/widgets/ionest.py:301 #, python-format msgid "The error was: %s" msgstr "" #: lib/pychess/widgets/ionest.py:325 #, python-format msgid "There is %d game with unsaved moves." msgid_plural "There are %d games with unsaved moves." msgstr[0] "" msgstr[1] "" #: lib/pychess/widgets/ionest.py:328 msgid "Save moves before closing?" msgstr "" #: lib/pychess/widgets/ionest.py:339 msgid "Unable to save to configured file. Save the games before closing?" msgstr "" #: lib/pychess/widgets/ionest.py:366 #, python-format msgid "_Save %d document" msgid_plural "_Save %d documents" msgstr[0] "" msgstr[1] "" #: lib/pychess/widgets/ionest.py:412 msgid "Save the current game before you close it?" msgstr "" #: lib/pychess/widgets/ionest.py:420 msgid "" "Unable to save to configured file. Save the current game before you close " "it?" msgstr "" #: lib/pychess/widgets/ionest.py:434 msgid "" "It is not possible later to continue the game,\n" "if you don't save it." msgstr "" #: lib/pychess/widgets/LogDialog.py:26 msgid "PyChess Information Window" msgstr "" #: lib/pychess/widgets/LogDialog.py:184 lib/pychess/widgets/LogDialog.py:188 msgid "of" msgstr "" #: lib/pychess/widgets/newGameDialog.py:84 #: lib/pychess/widgets/newGameDialog.py:85 msgid "Human Being" msgstr "" #: lib/pychess/widgets/newGameDialog.py:155 msgid "Rapid" msgstr "" #: lib/pychess/widgets/newGameDialog.py:224 msgid "Minutes:" msgstr "" #: lib/pychess/widgets/newGameDialog.py:228 msgid "Gain:" msgstr "" #: lib/pychess/widgets/newGameDialog.py:241 #, python-format msgid "%(name)s %(minutes)d min + %(gain)d sec/move" msgstr "" #: lib/pychess/widgets/newGameDialog.py:244 #, python-format msgid "%(name)s %(minutes)d min %(gain)d sec/move" msgstr "" #: lib/pychess/widgets/newGameDialog.py:247 #, python-format msgid "%(name)s %(minutes)d min" msgstr "" #: lib/pychess/widgets/newGameDialog.py:265 msgid "Odds" msgstr "" #: lib/pychess/widgets/newGameDialog.py:269 msgid "Asian variants" msgstr "" #: lib/pychess/widgets/newGameDialog.py:301 msgid " chess" msgstr "" #: lib/pychess/widgets/newGameDialog.py:682 msgid "Type or paste PGN game or FEN positions here" msgstr "" #: lib/pychess/widgets/newGameDialog.py:725 msgid "Enter Game" msgstr "" #: lib/pychess/widgets/preferencesDialog.py:123 msgid "Select book file" msgstr "" #: lib/pychess/widgets/preferencesDialog.py:128 msgid "Opening books" msgstr "" #: lib/pychess/widgets/preferencesDialog.py:156 msgid "Select Gaviota TB path" msgstr "" #: lib/pychess/widgets/preferencesDialog.py:331 msgid "Open Sound File" msgstr "" #: lib/pychess/widgets/preferencesDialog.py:341 msgid "Sound files" msgstr "" #: lib/pychess/widgets/preferencesDialog.py:485 msgid "Undescribed panel" msgstr "" #: lib/pychess/widgets/preferencesDialog.py:678 msgid "Select auto save path" msgstr "" #: lib/pychess/widgets/tipOfTheDay.py:51 msgid "" "You can start a new game by Game > New Game, in New Game " "window do you can choose Players, Time Control and Chess " "Variants." msgstr "" #: lib/pychess/widgets/tipOfTheDay.py:52 msgid "" "You can choose from 20 different difficulties to play against the computer." msgstr "" #: lib/pychess/widgets/tipOfTheDay.py:53 msgid "" "Chess Variants are like the pieces of the last line will be placed on the " "board." msgstr "" #: lib/pychess/widgets/tipOfTheDay.py:54 msgid "" "To save a game Game > Save Game As, give the filename and " "choose where you want to be saved. At the bottom choose extension type of " "the file, and Save." msgstr "" #: lib/pychess/widgets/tipOfTheDay.py:55 msgid "" "Do you know that you can call flag when the clock is with you, " "Actions > Call Flag." msgstr "" #: lib/pychess/widgets/tipOfTheDay.py:56 msgid "Pressing Ctrl+Z to offer opponent the possible rollback moves." msgstr "" #: lib/pychess/widgets/tipOfTheDay.py:57 msgid "" "To play on Fullscreen mode, just type F11. Coming back, F11 " "again." msgstr "" #: lib/pychess/widgets/tipOfTheDay.py:58 msgid "Hint mode analyzing your game, enable this type Ctrl+H." msgstr "" #: lib/pychess/widgets/tipOfTheDay.py:59 msgid "" "Spy mode analyzing the oponnent game, enable this type Ctrl+Y." msgstr "" #: lib/pychess/widgets/tipOfTheDay.py:60 msgid "" "You can play chess listening to the sounds of the game, for that, " "Settings > Preferences > Sound tab, enable Use " "sounds in PyChess and choose your preferred sounds." msgstr "" #: lib/pychess/widgets/tipOfTheDay.py:61 msgid "" "Do you know that you can help translate Pychess in your language, " "Help > Translate Pychess." msgstr "" #: lib/pychess/widgets/tipOfTheDay.py:62 msgid "" "Do you know that it is possible to finish a chess game in just 2 turns?" msgstr "" #: lib/pychess/widgets/tipOfTheDay.py:63 msgid "" "Do you know that the number of possible chess games exceeds the number of " "atoms in the Universe?" msgstr "" #: lib/pychess/ic/managers/ChatManager.py:184 msgid "Shout" msgstr "" #: lib/pychess/ic/managers/ChatManager.py:185 msgid "Chess Shout" msgstr "" #: lib/pychess/ic/managers/ChatManager.py:195 #, python-format msgid "Unofficial channel %d" msgstr "" #: lib/pychess/Utils/lutils/LBoard.py:152 #, python-format msgid "" "FEN needs 6 data fields. \n" "\n" "%s" msgstr "" #: lib/pychess/Utils/lutils/LBoard.py:154 #, python-format msgid "" "FEN needs at least 2 data fields in fenstr. \n" "\n" "%s" msgstr "" #: lib/pychess/Utils/lutils/LBoard.py:175 #, python-format msgid "" "Needs 7 slashes in piece placement field. \n" "\n" "%s" msgstr "" #: lib/pychess/Utils/lutils/LBoard.py:178 #, python-format msgid "" "Active color field must be one of w or b. \n" "\n" "%s" msgstr "" #: lib/pychess/Utils/lutils/LBoard.py:189 #, python-format msgid "" "Castling availability field is not legal. \n" "\n" "%s" msgstr "" #: lib/pychess/Utils/lutils/LBoard.py:192 #, python-format msgid "" "En passant cord is not legal. \n" "\n" "%s" msgstr "" #: lib/pychess/Utils/lutils/lmove.py:260 msgid "invalid promoted piece" msgstr "" #: lib/pychess/Utils/lutils/lmove.py:272 msgid "the move needs a piece and a cord" msgstr "" #: lib/pychess/Utils/lutils/lmove.py:306 lib/pychess/Utils/lutils/lmove.py:556 msgid "promotion move without promoted piece is incorrect" msgstr "" #: lib/pychess/Utils/lutils/lmove.py:312 #, python-format msgid "the captured cord (%s) is incorrect" msgstr "" #: lib/pychess/Utils/lutils/lmove.py:323 #, python-format msgid "the end cord (%s) is incorrect" msgstr "" #: lib/pychess/Utils/lutils/strateval.py:24 sidepanel/commentPanel.py:191 #: sidepanel/commentPanel.py:208 msgid "and" msgstr "" #: lib/pychess/Utils/lutils/strateval.py:43 msgid "draws" msgstr "" #: lib/pychess/Utils/lutils/strateval.py:45 msgid "mates" msgstr "" #: lib/pychess/Utils/lutils/strateval.py:49 msgid "puts opponent in check" msgstr "" #: lib/pychess/Utils/lutils/strateval.py:73 msgid "improves king safety" msgstr "" #: lib/pychess/Utils/lutils/strateval.py:75 msgid "slightly improves king safety" msgstr "" #: lib/pychess/Utils/lutils/strateval.py:108 msgid "moves a rook to an open file" msgstr "" #: lib/pychess/Utils/lutils/strateval.py:109 msgid "moves an rook to a half-open file" msgstr "" #: lib/pychess/Utils/lutils/strateval.py:119 #: lib/pychess/Utils/lutils/strateval.py:121 #: lib/pychess/Utils/lutils/strateval.py:124 #: lib/pychess/Utils/lutils/strateval.py:126 #, python-format msgid "moves bishop into fianchetto: %s" msgstr "" #: lib/pychess/Utils/lutils/strateval.py:132 #, python-format msgid "promotes a Pawn to a %s" msgstr "" #: lib/pychess/Utils/lutils/strateval.py:135 msgid "castles" msgstr "" #: lib/pychess/Utils/lutils/strateval.py:158 msgid "takes back material" msgstr "" #: lib/pychess/Utils/lutils/strateval.py:162 #: lib/pychess/Utils/lutils/strateval.py:170 msgid "sacrifies material" msgstr "" #: lib/pychess/Utils/lutils/strateval.py:164 msgid "exchanges material" msgstr "" #: lib/pychess/Utils/lutils/strateval.py:166 msgid "captures material" msgstr "" #: lib/pychess/Utils/lutils/strateval.py:291 #, python-format msgid "rescues a %s" msgstr "" #: lib/pychess/Utils/lutils/strateval.py:294 #, python-format msgid "threatens to win material by %s" msgstr "" #: lib/pychess/Utils/lutils/strateval.py:296 #, python-format msgid "increases the pressure on %s" msgstr "" #: lib/pychess/Utils/lutils/strateval.py:298 #, python-format msgid "defends %s" msgstr "" #: lib/pychess/Utils/lutils/strateval.py:336 #, python-format msgid "pins an enemy %(oppiece)s on the %(piece)s at %(cord)s" msgstr "" #: lib/pychess/Utils/lutils/strateval.py:369 #, python-format msgid "White has a new piece in outpost: %s" msgstr "" #: lib/pychess/Utils/lutils/strateval.py:377 #, python-format msgid "Black has a new piece in outpost: %s" msgstr "" #: lib/pychess/Utils/lutils/strateval.py:416 #, python-format msgid "%(color)s has a new passed pawn on %(cord)s" msgstr "" #: lib/pychess/Utils/lutils/strateval.py:470 msgid "half-open" msgstr "" #: lib/pychess/Utils/lutils/strateval.py:472 #, python-format msgid "in the %(x)s%(y)s file" msgstr "" #: lib/pychess/Utils/lutils/strateval.py:474 #, python-format msgid "in the %(x)s%(y)s files" msgstr "" #: lib/pychess/Utils/lutils/strateval.py:477 #, python-format msgid "%(color)s got a double pawn %(place)s" msgstr "" #: lib/pychess/Utils/lutils/strateval.py:478 #, python-format msgid "%(color)s got new double pawns %(place)s" msgstr "" #: lib/pychess/Utils/lutils/strateval.py:485 #, python-format msgid "%(color)s got an isolated pawn in the %(x)s file" msgid_plural "%(color)s got isolated pawns in the %(x)s files" msgstr[0] "" msgstr[1] "" #: lib/pychess/Utils/lutils/strateval.py:492 #, python-format msgid "%s moves pawns into stonewall formation" msgstr "" #: lib/pychess/Utils/lutils/strateval.py:507 #: lib/pychess/Utils/lutils/strateval.py:514 #, python-format msgid "%s can no longer castle" msgstr "" #: lib/pychess/Utils/lutils/strateval.py:508 #: lib/pychess/Utils/lutils/strateval.py:515 #, python-format msgid "%s can no longer castle in queenside" msgstr "" #: lib/pychess/Utils/lutils/strateval.py:510 #: lib/pychess/Utils/lutils/strateval.py:517 #, python-format msgid "%s can no longer castle in kingside" msgstr "" #: lib/pychess/Utils/lutils/strateval.py:551 #, python-format msgid "%(opcolor)s has a new trapped bishop on %(cord)s" msgstr "" #: lib/pychess/Utils/lutils/strateval.py:573 #, python-format msgid "develops a pawn: %s" msgstr "" #: lib/pychess/Utils/lutils/strateval.py:574 #, python-format msgid "brings a pawn closer to the backrow: %s" msgstr "" #: lib/pychess/Utils/lutils/strateval.py:591 #, python-format msgid "brings a %(piece)s closer to enemy king: %(cord)s" msgstr "" #: lib/pychess/Utils/lutils/strateval.py:594 #, python-format msgid "develops a %(piece)s: %(cord)s" msgstr "" #: lib/pychess/Utils/lutils/strateval.py:612 #, python-format msgid "places a %(piece)s more active: %(cord)s" msgstr "" #: lib/pychess/Utils/lutils/strateval.py:638 msgid "White should do pawn storm in right" msgstr "" #: lib/pychess/Utils/lutils/strateval.py:640 msgid "Black should do pawn storm in left" msgstr "" #: lib/pychess/Utils/lutils/strateval.py:643 msgid "White should do pawn storm in left" msgstr "" #: lib/pychess/Utils/lutils/strateval.py:645 msgid "Black should do pawn storm in right" msgstr "" #: lib/pychess/Utils/lutils/strateval.py:671 msgid "Black has a rather cramped position" msgstr "" #: lib/pychess/Utils/lutils/strateval.py:673 msgid "Black has a slightly cramped position" msgstr "" #: lib/pychess/Utils/lutils/strateval.py:675 msgid "White has a rather cramped position" msgstr "" #: lib/pychess/Utils/lutils/strateval.py:677 msgid "White has a slightly cramped position" msgstr "" #: sidepanel/annotationPanel.py:26 msgid "Annotation" msgstr "" #: sidepanel/annotationPanel.py:29 msgid "Annotated game" msgstr "" #: sidepanel/annotationPanel.py:236 msgid "Copy PGN" msgstr "" #: sidepanel/annotationPanel.py:249 msgid "Add start comment" msgstr "" #: sidepanel/annotationPanel.py:254 msgid "Add comment" msgstr "" #: sidepanel/annotationPanel.py:258 sidepanel/annotationPanel.py:316 msgid "Edit comment" msgstr "" #: sidepanel/annotationPanel.py:269 msgid "Forced move" msgstr "" #: sidepanel/annotationPanel.py:274 msgid "Add move symbol" msgstr "" #: sidepanel/annotationPanel.py:280 msgid "Unclear position" msgstr "" #: sidepanel/annotationPanel.py:289 msgid "Zugzwang" msgstr "" #: sidepanel/annotationPanel.py:290 msgid "Development adv." msgstr "" #: sidepanel/annotationPanel.py:291 msgid "Initiative" msgstr "" #: sidepanel/annotationPanel.py:292 msgid "With attack" msgstr "" #: sidepanel/annotationPanel.py:293 msgid "Compensation" msgstr "" #: sidepanel/annotationPanel.py:294 msgid "Counterplay" msgstr "" #: sidepanel/annotationPanel.py:295 msgid "Time pressure" msgstr "" #: sidepanel/annotationPanel.py:300 msgid "Add evaluation symbol" msgstr "" #: sidepanel/annotationPanel.py:304 msgid "Remove symbols" msgstr "" #: sidepanel/annotationPanel.py:911 #, python-format msgid "round %s" msgstr "" #: sidepanel/bookPanel.py:21 msgid "Hints" msgstr "" #: sidepanel/bookPanel.py:25 msgid "" "The hint panel will provide computer advice during each stage of the game" msgstr "" #: sidepanel/bookPanel.py:27 msgid "Official PyChess panel." msgstr "" #: sidepanel/bookPanel.py:87 msgid "Opening Book" msgstr "" #: sidepanel/bookPanel.py:88 msgid "" "The opening book will try to inspire you during the opening phase of the " "game by showing you common moves made by chess masters" msgstr "" #: sidepanel/bookPanel.py:139 #, python-format msgid "Analysis by %s" msgstr "" #: sidepanel/bookPanel.py:140 #, python-format msgid "" "%s will try to predict which move is best and which side has the advantage" msgstr "" #: sidepanel/bookPanel.py:142 #, python-format msgid "Threat analysis by %s" msgstr "" #: sidepanel/bookPanel.py:143 #, python-format msgid "" "%s will identify what threats would exist if it were your opponent's turn to" " move" msgstr "" #: sidepanel/bookPanel.py:159 sidepanel/bookPanel.py:269 msgid "Calculating..." msgstr "" #: sidepanel/bookPanel.py:300 msgid "" "Engine scores are in units of pawns, from White's point of view. Double " "clicking on analysis lines you can insert them into Annotation panel as " "variations." msgstr "" #: sidepanel/bookPanel.py:302 msgid "" "Adding suggestions can help you find ideas, but slows down the computer's " "analysis." msgstr "" #: sidepanel/bookPanel.py:311 msgid "Endgame Table" msgstr "" #: sidepanel/bookPanel.py:315 msgid "" "The endgame table will show exact analysis when there are few pieces on the " "board." msgstr "" #: sidepanel/bookPanel.py:364 sidepanel/bookPanel.py:367 #, python-format msgid "Mate in %d" msgstr "" #: sidepanel/bookPanel.py:554 msgid "" "In this position,\n" "there is no legal move." msgstr "" #: sidepanel/chatPanel.py:21 msgid "" "The chat panel lets you communicate with your opponent during the game, " "assuming he or she is interested" msgstr "" #: sidepanel/commentPanel.py:16 msgid "Comments" msgstr "" #: sidepanel/commentPanel.py:20 msgid "The comments panel will try to analyze and explain the moves played" msgstr "" #: sidepanel/commentPanel.py:121 msgid "Initial position" msgstr "" #: sidepanel/commentPanel.py:254 #, python-format msgid "%(color)s moves a %(piece)s to %(cord)s" msgstr "" #: sidepanel/engineOutputPanel.py:15 msgid "Engines" msgstr "" #: sidepanel/engineOutputPanel.py:20 msgid "" "The engine output panel shows the thinking output of chess engines (computer" " players) during a game" msgstr "" #: sidepanel/engineOutputPanel.py:44 msgid "No chess engines (computer players) are participating in this game." msgstr "" #: sidepanel/historyPanel.py:10 msgid "Move History" msgstr "" #: sidepanel/historyPanel.py:13 msgid "" "The moves sheet keeps track of the players' moves and lets you navigate " "through the game history" msgstr "" #: sidepanel/scorePanel.py:15 msgid "Score" msgstr "" #: sidepanel/scorePanel.py:19 msgid "" "The score panel tries to evaluate the positions and shows you a graph of the" " game progress" msgstr "" pychess-0.12.2/lang/ml/LC_MESSAGES/pychess.mo0000644000175000017470000000340012653231273020702 0ustar tamasusers00000000000000 hCi !#29 ? JV5g,O_|' $,<Q$#  PyChess is discovering your engines. Please wait.Analyze gameColorize analyzed movesLog on as _GuestMaximum analysis time in seconds:New GameObserveTime_Accept_Black player:_Name:_Next_Password:_Start GameProject-Id-Version: pychess Report-Msgid-Bugs-To: POT-Creation-Date: 2016-01-27 13:28+0100 PO-Revision-Date: 2016-01-28 08:56+0000 Last-Translator: slav0nic Language-Team: Malayalam (http://www.transifex.com/gbtami/pychess/language/ml/) MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Language: ml Plural-Forms: nplurals=2; plural=(n != 1); പൈചെസ്സ് നിങ്ങളുടെ എഞ്ചിനുകൾ കണ്ടെത്തുകയാണ്. ദെയവായി കാത്തിരിക്കുകകളി വിശകലനം ചെയ്യുകവിശകലനം ചെയ്ത നീകങ്ങൽക്കു നിറം നല്കുക_അദിതിയായി കേറുകവിശകലനത്തിനുള്ള പരമാവതി സമയം seconds-ഇൽപുതിയ കളിനിരീക്ഷിക്കുകസമയം അംഗീകരിക്കുക_കറുപ്പിന്റെ കളികാരാൻ:_ നാമം_അടുത്തതുപാസ്‍വേര്‍ഡ്_കളി തുടങ്ങുകpychess-0.12.2/lang/fa/0000755000175000017470000000000012653231274015064 5ustar tamasusers00000000000000pychess-0.12.2/lang/fa/LC_MESSAGES/0000755000175000017470000000000012653231274016651 5ustar tamasusers00000000000000pychess-0.12.2/lang/fa/LC_MESSAGES/pychess.po0000644000175000017470000024112512653216207020673 0ustar tamasusers00000000000000# SOME DESCRIPTIVE TITLE. # Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER # This file is distributed under the same license as the pychess package. # # Translators: # FIRST AUTHOR , 2008 msgid "" msgstr "" "Project-Id-Version: pychess\n" "Report-Msgid-Bugs-To: \n" "POT-Creation-Date: 2016-01-27 13:28+0100\n" "PO-Revision-Date: 2016-01-28 08:56+0000\n" "Last-Translator: slav0nic \n" "Language-Team: Persian (http://www.transifex.com/gbtami/pychess/language/fa/)\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" "Language: fa\n" "Plural-Forms: nplurals=1; plural=0;\n" # "Plural-Forms: nplurals=INTEGER; plural=EXPRESSION;\n" #: glade/analyze_game.glade:22 msgid "Analyze game" msgstr "" #: glade/analyze_game.glade:87 msgid "Use analyzer:" msgstr "" #: glade/analyze_game.glade:122 glade/PyChess.glade:2054 msgid "Maximum analysis time in seconds:" msgstr "" #: glade/analyze_game.glade:163 msgid "" "If the analyzer finds a move where the evaluation difference (the difference" " between the evaluation for the move it thinks is the best move and the " "evaluation for the move made in the game) exceeds this value, it will add an" " annotation for that move (consisting of the engine's Principal Variation " "for the move) to the Annotation panel" msgstr "" #: glade/analyze_game.glade:164 msgid "Variation annotation creation threshold in centipawns:" msgstr "" #: glade/analyze_game.glade:198 msgid "Analyze from current position" msgstr "" #: glade/analyze_game.glade:214 msgid "Add threatening variation lines " msgstr "" #: glade/analyze_game.glade:229 glade/PyChess.glade:1459 msgid "Colorize analyzed moves" msgstr "" #: glade/analyze_game.glade:244 glade/PyChess.glade:1495 msgid "Show evaluation values" msgstr "" #: glade/discovererDialog.glade:18 msgid "PyChess is discovering your engines. Please wait." msgstr "" #: glade/discovererDialog.glade:77 msgid "PyChess.py:" msgstr "" #: glade/discovererDialog.glade:89 msgid "ShredderLinuxChess:" msgstr "" #: glade/discovererDialog.glade:101 msgid "gnuchess:" msgstr "" #: glade/fics_logon.glade:7 msgid "PyChess - Connect to Internet Chess" msgstr "" #: glade/fics_logon.glade:47 msgid "Connect to the Free Online Chess Server" msgstr "" #: glade/fics_logon.glade:129 glade/taskers.glade:394 msgid "_Password:" msgstr "" #: glade/fics_logon.glade:143 msgid "_Name:" msgstr "نام:" #: glade/fics_logon.glade:191 msgid "Log on as _Guest" msgstr "" #: glade/fics_logon.glade:227 msgid "Host:" msgstr "" #: glade/fics_logon.glade:259 msgid "Po_rts:" msgstr "" #: glade/fics_logon.glade:271 msgid "Auto login on startup" msgstr "" #: glade/fics_logon.glade:385 msgid "S_ign up" msgstr "" #: glade/fics_lounge.glade:35 msgid "Challenge: " msgstr "" #: glade/fics_lounge.glade:97 msgid "Send Challenge" msgstr "" #: glade/fics_lounge.glade:133 msgid "Challenge:" msgstr "" #: glade/fics_lounge.glade:327 glade/fics_lounge.glade:2078 msgid "Lightning:" msgstr "" #: glade/fics_lounge.glade:351 glade/fics_lounge.glade:2102 msgid "Standard:" msgstr "" #: glade/fics_lounge.glade:375 glade/fics_lounge.glade:2126 msgid "Blitz:" msgstr "" #: glade/fics_lounge.glade:400 msgid "2 min, Fischer Random, Black" msgstr "" #: glade/fics_lounge.glade:422 msgid "10 min + 6 sec/move, White" msgstr "" #: glade/fics_lounge.glade:444 msgid "5 min" msgstr "" #: glade/fics_lounge.glade:480 msgid "Edit Seek" msgstr "" #: glade/fics_lounge.glade:584 lib/pychess/ic/ICLounge.py:2208 #: lib/pychess/ic/__init__.py:101 lib/pychess/Utils/GameModel.py:206 msgid "Untimed" msgstr "" #: glade/fics_lounge.glade:637 msgid "Minutes: " msgstr "" #: glade/fics_lounge.glade:665 msgid " Gain: " msgstr "" #: glade/fics_lounge.glade:703 msgid "Time control: " msgstr "" #: glade/fics_lounge.glade:716 lib/pychess/ic/FICSObjects.py:56 #: lib/pychess/ic/ICLounge.py:1137 lib/pychess/ic/ICLounge.py:2208 #: lib/pychess/ic/__init__.py:99 msgid "Standard" msgstr "" #: glade/fics_lounge.glade:757 glade/newInOut.glade:633 msgid "Time Control" msgstr "" #: glade/fics_lounge.glade:814 glade/fics_lounge.glade:1346 msgid "Don't care" msgstr "" #: glade/fics_lounge.glade:879 msgid "Your strength: " msgstr "" #: glade/fics_lounge.glade:921 msgid "(Blitz)" msgstr "" #: glade/fics_lounge.glade:951 msgid "Opponent's strength: " msgstr "" #: glade/fics_lounge.glade:1055 msgid "" "When this button is in the \"locked\" state, the relationship\n" "between \"Opponent's strength\" and \"Your strength\" will be\n" "preserved when \n" "a) your rating for the type of game sought has changed\n" "b) you change the variant or the time control" msgstr "" #: glade/fics_lounge.glade:1095 msgid "Center:" msgstr "" #: glade/fics_lounge.glade:1134 msgid "1200" msgstr "" #: glade/fics_lounge.glade:1188 msgid "Tolerance:" msgstr "" #: glade/fics_lounge.glade:1243 lib/pychess/ic/ICLounge.py:2452 msgid "Hide" msgstr "" #: glade/fics_lounge.glade:1289 msgid "Opponent Strength" msgstr "" #: glade/fics_lounge.glade:1386 lib/pychess/Database/gamelist.py:40 #: lib/pychess/ic/ICLounge.py:1357 lib/pychess/ic/ICLounge.py:1557 #: lib/pychess/ic/ICLounge.py:2108 lib/pychess/Utils/repr.py:10 #: lib/pychess/widgets/ChessClock.py:40 #: lib/pychess/widgets/TaskerManager.py:153 msgid "White" msgstr "" #: glade/fics_lounge.glade:1414 lib/pychess/Database/gamelist.py:40 #: lib/pychess/ic/ICLounge.py:1358 lib/pychess/ic/ICLounge.py:1558 #: lib/pychess/ic/ICLounge.py:2110 lib/pychess/Utils/repr.py:10 #: lib/pychess/widgets/ChessClock.py:40 #: lib/pychess/widgets/TaskerManager.py:154 msgid "Black" msgstr "" #: glade/fics_lounge.glade:1453 msgid "Your Color" msgstr "" #: glade/fics_lounge.glade:1512 msgid "Play normal chess rules" msgstr "" #: glade/fics_lounge.glade:1552 msgid "Play" msgstr "" #: glade/fics_lounge.glade:1618 glade/newInOut.glade:833 msgid "Chess Variant" msgstr "" #: glade/fics_lounge.glade:1676 msgid "Rated game" msgstr "" #: glade/fics_lounge.glade:1692 msgid "Manually accept opponent" msgstr "" #: glade/fics_lounge.glade:1722 msgid "Options" msgstr "" #: glade/fics_lounge.glade:1750 msgid "PyChess - Internet Chess: FICS" msgstr "" #: glade/fics_lounge.glade:1823 msgid "_Clear Seeks" msgstr "" #: glade/fics_lounge.glade:1847 msgid "_Accept" msgstr "_پذیرش" #: glade/fics_lounge.glade:1871 msgid "_Decline" msgstr "" #: glade/fics_lounge.glade:2151 msgid "2 min, Fischer Random, 1800↓, Black" msgstr "" #: glade/fics_lounge.glade:2172 msgid "10 min + 6 sec/move, 1400↑, White" msgstr "" #: glade/fics_lounge.glade:2193 msgid "5 min, 1200-1800, Manual" msgstr "" #: glade/fics_lounge.glade:2247 msgid "Send all seeks" msgstr "" #: glade/fics_lounge.glade:2301 msgid "Send seek" msgstr "" #: glade/fics_lounge.glade:2337 msgid "Create Seek" msgstr "" #: glade/fics_lounge.glade:2353 msgid "_Seeks / Challenges" msgstr "" #: glade/fics_lounge.glade:2374 lib/pychess/ic/ICLounge.py:472 #: lib/pychess/ic/ICLounge.py:670 lib/pychess/ic/ICLounge.py:1357 #: lib/pychess/ic/ICLounge.py:1358 msgid "Rating" msgstr "باقی‌مانده" #: glade/fics_lounge.glade:2399 msgid "Time" msgstr "زمان" #: glade/fics_lounge.glade:2419 msgid "Seek _Graph" msgstr "" #: glade/fics_lounge.glade:2444 msgid "0 Players Ready" msgstr "" #: glade/fics_lounge.glade:2496 msgid "Challenge" msgstr "" #: glade/fics_lounge.glade:2549 glade/fics_lounge.glade:2735 msgid "Observe" msgstr "" #: glade/fics_lounge.glade:2602 msgid "Start Private Chat" msgstr "" #: glade/fics_lounge.glade:2659 msgid "_Player List" msgstr "" #: glade/fics_lounge.glade:2792 msgid "_Game List" msgstr "" #: glade/fics_lounge.glade:2847 msgid "_My games" msgstr "" #: glade/fics_lounge.glade:2904 glade/PyChess.glade:841 msgid "Offer _Resume" msgstr "" #: glade/fics_lounge.glade:2962 glade/PyChess.glade:880 msgid "R_esign" msgstr "" #: glade/fics_lounge.glade:3006 glade/PyChess.glade:820 msgid "Offer _Draw" msgstr "" #: glade/fics_lounge.glade:3050 msgid "Offer A_bort" msgstr "" #: glade/fics_lounge.glade:3107 msgid "Pre_view" msgstr "" #: glade/fics_lounge.glade:3151 msgid "Examine" msgstr "" #: glade/fics_lounge.glade:3208 msgid "_Archived" msgstr "" #: glade/fics_lounge.glade:3313 msgid "News" msgstr "" #: glade/fics_lounge.glade:3345 msgid "Show Console" msgstr "" #: glade/fics_lounge.glade:3359 msgid "Show _Chat" msgstr "" #: glade/fics_lounge.glade:3373 msgid "_Log Off" msgstr "" #: glade/fics_lounge.glade:3393 msgid "Tools" msgstr "" #: glade/fics_lounge.glade:3428 msgid "Asymmetric Random " msgstr "" #: glade/findbar.glade:6 msgid "window1" msgstr "" #: glade/findbar.glade:21 msgid "0 of 0" msgstr "" #: glade/findbar.glade:66 msgid "Search:" msgstr "" #: glade/findbar.glade:134 msgid "_Previous" msgstr "" #: glade/findbar.glade:192 msgid "_Next" msgstr "" #: glade/newInOut.glade:45 lib/pychess/widgets/newGameDialog.py:445 msgid "New Game" msgstr "بازی جدید" #: glade/newInOut.glade:108 msgid "_Start Game" msgstr "_شروع بازی" #: glade/newInOut.glade:130 msgid "Copy FEN" msgstr "" #: glade/newInOut.glade:143 msgid "Clear" msgstr "" #: glade/newInOut.glade:156 msgid "Paste FEN" msgstr "" #: glade/newInOut.glade:257 msgid "_Black player:" msgstr "" #: glade/newInOut.glade:274 msgid "_White player:" msgstr "" #: glade/newInOut.glade:385 msgid "Players" msgstr "" #: glade/newInOut.glade:436 msgid "_Untimed" msgstr "" #: glade/newInOut.glade:475 msgid "Blitz: 5 min" msgstr "" #: glade/newInOut.glade:526 msgid "Rapid: 15 min + 10 sec/move" msgstr "" #: glade/newInOut.glade:575 msgid "Normal: 40 min + 15 sec/move" msgstr "" #: glade/newInOut.glade:684 msgid "_Play Normal chess" msgstr "" #: glade/newInOut.glade:724 msgid "Play Fischer Random chess" msgstr "" #: glade/newInOut.glade:774 msgid "Play Losers chess" msgstr "" #: glade/newInOut.glade:919 msgid "Open Game" msgstr "" #: glade/newInOut.glade:1162 msgid "Initial Position" msgstr "" #: glade/newInOut.glade:1219 msgid "Enter Game Notation" msgstr "" #: glade/newInOut.glade:1314 msgid "Halfmove clock" msgstr "" #: glade/newInOut.glade:1327 msgid "En passant line" msgstr "" #: glade/newInOut.glade:1339 msgid "Side to move" msgstr "" #: glade/newInOut.glade:1351 msgid "Move number" msgstr "" #: glade/newInOut.glade:1361 msgid "Black O-O" msgstr "" #: glade/newInOut.glade:1375 msgid "Black O-O-O" msgstr "" #: glade/newInOut.glade:1389 msgid "White O-O-O" msgstr "" #: glade/newInOut.glade:1403 msgid "White O-O" msgstr "" #: glade/promotion.glade:7 msgid "Promotion" msgstr "" #: glade/promotion.glade:49 lib/pychess/Utils/repr.py:12 msgid "Queen" msgstr "" #: glade/promotion.glade:95 lib/pychess/Utils/repr.py:12 msgid "Rook" msgstr "" #: glade/promotion.glade:141 lib/pychess/Utils/repr.py:12 msgid "Bishop" msgstr "" #: glade/promotion.glade:187 lib/pychess/Utils/repr.py:12 msgid "Knight" msgstr "" #: glade/promotion.glade:233 lib/pychess/Utils/repr.py:12 msgid "King" msgstr "" #: glade/promotion.glade:265 msgid "Promote pawn to what?" msgstr "" #: glade/PyChess.glade:9 msgid "Chess client" msgstr "" #: glade/PyChess.glade:44 msgid "Game information" msgstr "" #: glade/PyChess.glade:164 msgid "Event:" msgstr "" #: glade/PyChess.glade:178 msgid "Site:" msgstr "پایگاه:" #: glade/PyChess.glade:204 msgid "Round:" msgstr "" #: glade/PyChess.glade:237 msgid "White:" msgstr "" #: glade/PyChess.glade:249 msgid "Black:" msgstr "" #: glade/PyChess.glade:302 msgid "Game data" msgstr "" #: glade/PyChess.glade:357 msgid "Date of game" msgstr "" #: glade/PyChess.glade:495 msgid "_Game" msgstr "_بازی" #: glade/PyChess.glade:502 msgid "_New Game" msgstr "" #: glade/PyChess.glade:515 msgid "Play _Internet Chess" msgstr "" #: glade/PyChess.glade:534 msgid "_Load Game" msgstr "" #: glade/PyChess.glade:550 msgid "Load _Recent Game" msgstr "" #: glade/PyChess.glade:558 msgid "Open _Database" msgstr "" #: glade/PyChess.glade:569 lib/pychess/widgets/newGameDialog.py:615 msgid "Setup Position" msgstr "" #: glade/PyChess.glade:579 msgid "Enter Game _Notation" msgstr "" #: glade/PyChess.glade:592 msgid "_Save Game" msgstr "" #: glade/PyChess.glade:606 msgid "Save Game _As" msgstr "" #: glade/PyChess.glade:624 msgid "Share Game" msgstr "" #: glade/PyChess.glade:630 msgid "_Export Position" msgstr "" #: glade/PyChess.glade:644 msgid "_Analyze Game" msgstr "" #: glade/PyChess.glade:678 msgid "Player _Rating" msgstr "" #: glade/PyChess.glade:723 msgid "_Edit" msgstr "" #: glade/PyChess.glade:734 msgid "_Copy PGN" msgstr "" #: glade/PyChess.glade:746 msgid "_Copy FEN" msgstr "" #: glade/PyChess.glade:763 msgid "_Engines" msgstr "" #: glade/PyChess.glade:789 msgid "_Actions" msgstr "" #: glade/PyChess.glade:800 msgid "Offer _Abort" msgstr "" #: glade/PyChess.glade:810 msgid "Offer Ad_journment" msgstr "" #: glade/PyChess.glade:831 msgid "Offer _Pause" msgstr "" #: glade/PyChess.glade:847 msgid "Offer _Undo" msgstr "" #: glade/PyChess.glade:870 msgid "_Call Flag" msgstr "" #: glade/PyChess.glade:890 msgid "Ask to _Move" msgstr "" #: glade/PyChess.glade:905 msgid "Auto Call _Flag" msgstr "" #: glade/PyChess.glade:918 msgid "_View" msgstr "_نما" #: glade/PyChess.glade:925 msgid "_Rotate Board" msgstr "" #: glade/PyChess.glade:939 msgid "_Fullscreen" msgstr "" #: glade/PyChess.glade:952 msgid "Leave _Fullscreen" msgstr "" #: glade/PyChess.glade:969 msgid "_Show Sidepanels" msgstr "" #: glade/PyChess.glade:980 msgid "_Log Viewer" msgstr "" #: glade/PyChess.glade:997 msgid "_Hint mode" msgstr "" #: glade/PyChess.glade:1009 msgid "Sp_y mode" msgstr "" #: glade/PyChess.glade:1024 msgid "_Help" msgstr "_راهنما" #: glade/PyChess.glade:1034 msgid "About Chess" msgstr "" #: glade/PyChess.glade:1043 msgid "How to Play" msgstr "" #: glade/PyChess.glade:1052 msgid "Translate PyChess" msgstr "" #: glade/PyChess.glade:1058 msgid "Tip of the Day" msgstr "" #: glade/PyChess.glade:1153 msgid "Default" msgstr "" #: glade/PyChess.glade:1156 msgid "Knights" msgstr "" #: glade/PyChess.glade:1167 lib/pychess/widgets/preferencesDialog.py:349 msgid "Beep" msgstr "" #: glade/PyChess.glade:1170 lib/pychess/widgets/preferencesDialog.py:350 msgid "Select sound file..." msgstr "" #: glade/PyChess.glade:1173 lib/pychess/widgets/preferencesDialog.py:348 msgid "No sound" msgstr "" #: glade/PyChess.glade:1180 msgid "Preferences" msgstr "تنظیمات‌" #: glade/PyChess.glade:1218 msgid "The displayed name of the first human player, e.g., John." msgstr "" #: glade/PyChess.glade:1230 msgid "Name of _first human player:" msgstr "" #: glade/PyChess.glade:1259 msgid "The displayed name of the guest player, e.g., Mary." msgstr "" #: glade/PyChess.glade:1271 msgid "Name of s_econd human player:" msgstr "" #: glade/PyChess.glade:1307 msgid "_Hide tabs when only one game is open" msgstr "" #: glade/PyChess.glade:1312 msgid "" "If set, this hides the tab in the top of the playing window, when it is not " "needed." msgstr "" #: glade/PyChess.glade:1326 msgid "_Use main app closer [x] to close all games" msgstr "" #: glade/PyChess.glade:1331 msgid "" "If set, clicking on main application window closer first time it closes all " "games." msgstr "" #: glade/PyChess.glade:1345 msgid "Auto _rotate board to current human player" msgstr "" #: glade/PyChess.glade:1350 msgid "" "If set, the board will turn after each move, to show the natural view for " "the current player." msgstr "" #: glade/PyChess.glade:1364 msgid "Auto _promote to queen" msgstr "" #: glade/PyChess.glade:1369 msgid "If set, pawn promotes to queen without promotion dialog selection." msgstr "" #: glade/PyChess.glade:1383 msgid "Face _to Face display mode" msgstr "" #: glade/PyChess.glade:1388 msgid "" "If set, the black pieces will be head down, suitable for playing against " "friends on mobile devices." msgstr "" #: glade/PyChess.glade:1402 msgid "Sho_w cords" msgstr "" #: glade/PyChess.glade:1407 msgid "" "If set, the playing board will display labels and ranks for each chess " "field. These are usable in chess notation." msgstr "" #: glade/PyChess.glade:1421 msgid "Show _captured pieces" msgstr "" #: glade/PyChess.glade:1426 msgid "If set, the captured figurines will be shown next to the board." msgstr "" #: glade/PyChess.glade:1440 msgid "Prefer figures in _notation" msgstr "" #: glade/PyChess.glade:1445 msgid "" "If set, PyChess will use figures to express moved pieces, rather than " "uppercase letters." msgstr "" #: glade/PyChess.glade:1464 msgid "If set, PyChess will colorize suboptimal analyzed moves with red." msgstr "" #: glade/PyChess.glade:1477 msgid "Show elapsed move times" msgstr "" #: glade/PyChess.glade:1482 msgid "If set, the elapsed time that a player used for the move is shown." msgstr "" #: glade/PyChess.glade:1500 msgid "If set, the hint analyzer engine evaluation value is shown." msgstr "" #: glade/PyChess.glade:1526 msgid "General Options" msgstr "" #: glade/PyChess.glade:1560 msgid "F_ull board animation" msgstr "" #: glade/PyChess.glade:1565 msgid "Animate pieces, board rotation and more. Use this on fast machines." msgstr "" #: glade/PyChess.glade:1579 msgid "Only animate _moves" msgstr "" #: glade/PyChess.glade:1584 msgid "Only animate piece moves." msgstr "" #: glade/PyChess.glade:1599 msgid "No _animation" msgstr "" #: glade/PyChess.glade:1604 msgid "Never use animation. Use this on slow machines." msgstr "" #: glade/PyChess.glade:1632 msgid "Animation" msgstr "" #: glade/PyChess.glade:1651 msgid "_General" msgstr "" #: glade/PyChess.glade:1692 msgid "Use opening _book" msgstr "" #: glade/PyChess.glade:1697 msgid "If set, PyChess will suggest best opening moves on hint panel." msgstr "" #: glade/PyChess.glade:1724 msgid "Polyglot book file:" msgstr "" #: glade/PyChess.glade:1768 msgid "Use _local tablebases" msgstr "" #: glade/PyChess.glade:1773 msgid "" "If set, PyChess will show game results for different moves in positions containing 6 or less pieces.\n" "You can download tablebase files from:\n" "http://www.olympuschess.com/egtb/gaviota/" msgstr "" #: glade/PyChess.glade:1803 msgid "Gaviota TB path:" msgstr "" #: glade/PyChess.glade:1843 msgid "Use _online tablebases" msgstr "" #: glade/PyChess.glade:1848 msgid "" "If set, PyChess will show game results for different moves in positions containing 6 or less pieces.\n" "It will search positions from http://www.k4it.de/" msgstr "" #: glade/PyChess.glade:1870 msgid "Opening, endgame" msgstr "" #: glade/PyChess.glade:1904 msgid "Use _analyzer" msgstr "" #: glade/PyChess.glade:1946 msgid "" "The analyzer will run in the background and analyze the game. This is " "necessary for the hint mode to work" msgstr "" #: glade/PyChess.glade:1978 msgid "Use _inverted analyzer" msgstr "" #: glade/PyChess.glade:2020 msgid "" "The inverse analyzer will analyze the game as if your opponent was to move. " "This is necessary for the spy mode to work" msgstr "" #: glade/PyChess.glade:2096 msgid "Analyzing" msgstr "" #: glade/PyChess.glade:2118 msgid "_Hints" msgstr "" #: glade/PyChess.glade:2263 msgid "Uninstall" msgstr "" #: glade/PyChess.glade:2317 msgid "Ac_tive" msgstr "" #: glade/PyChess.glade:2367 msgid "Installed Sidepanels" msgstr "" #: glade/PyChess.glade:2382 msgid "Side_panels" msgstr "" #: glade/PyChess.glade:2440 msgid "Light Squares :" msgstr "" #: glade/PyChess.glade:2479 msgid "Dark Squares :" msgstr "" #: glade/PyChess.glade:2515 msgid "Reset Default Colours" msgstr "" #: glade/PyChess.glade:2551 msgid "Board Colours" msgstr "" #: glade/PyChess.glade:2610 msgid "Chess Sets" msgstr "" #: glade/PyChess.glade:2634 msgid "Themes" msgstr "" #: glade/PyChess.glade:2659 msgid "_Use sounds in PyChess" msgstr "" #: glade/PyChess.glade:2982 msgid "A player _checks:" msgstr "" #: glade/PyChess.glade:2997 msgid "A player _moves:" msgstr "" #: glade/PyChess.glade:3010 msgid "Game is _drawn:" msgstr "" #: glade/PyChess.glade:3025 msgid "Game is _lost:" msgstr "" #: glade/PyChess.glade:3040 msgid "Game is _won:" msgstr "" #: glade/PyChess.glade:3055 msgid "A player c_aptures:" msgstr "" #: glade/PyChess.glade:3084 msgid "Game is _set-up:" msgstr "" #: glade/PyChess.glade:3136 msgid "_Observed moves:" msgstr "" #: glade/PyChess.glade:3151 msgid "Observed _ends:" msgstr "" #: glade/PyChess.glade:3265 msgid "Short on _time:" msgstr "" #: glade/PyChess.glade:3317 msgid "_Invalid move:" msgstr "" #: glade/PyChess.glade:3369 msgid "Activate alarm when _remaining sec is:" msgstr "" #: glade/PyChess.glade:3416 msgid "Play Sound When..." msgstr "" #: glade/PyChess.glade:3438 msgid "_Sounds" msgstr "" #: glade/PyChess.glade:3463 msgid "_Auto save finished games" msgstr "" #: glade/PyChess.glade:3497 msgid "Save files to:" msgstr "" #: glade/PyChess.glade:3525 msgid "Use name format:" msgstr "" #: glade/PyChess.glade:3569 msgid "Names: #n1, #n2" msgstr "" #: glade/PyChess.glade:3582 msgid "Year, month, day: #y, #m, #d" msgstr "" #: glade/PyChess.glade:3619 msgid "Save elapsed move _times" msgstr "" #: glade/PyChess.glade:3644 msgid "Save analyzing engine _evaluation values" msgstr "" #: glade/PyChess.glade:3669 msgid "Save _own games only" msgstr "" #: glade/PyChess.glade:3698 msgid "Save" msgstr "" #: glade/PyChess.glade:3728 msgid "uci" msgstr "" #: glade/PyChess.glade:3731 msgid "xboard" msgstr "" #: glade/PyChess.glade:3739 msgid "Manage engines" msgstr "" #: glade/PyChess.glade:3837 msgid "Command:" msgstr "" #: glade/PyChess.glade:3851 msgid "Protocol:" msgstr "" #: glade/PyChess.glade:3865 msgid "Parameters:" msgstr "" #: glade/PyChess.glade:3878 msgid "Command line parameters needed by the engine." msgstr "" #: glade/PyChess.glade:3903 msgid "" "Engines use uci or xboard communication protocol to talk to the GUI.\n" "If it can use both you can set here which one you like." msgstr "" #: glade/PyChess.glade:3929 msgid "Working directory:" msgstr "" #: glade/PyChess.glade:3942 msgid "The directory where the engine will be started from." msgstr "" #: glade/saveGamesDialog.glade:7 msgid "Quit PyChess" msgstr "" #: glade/saveGamesDialog.glade:24 lib/pychess/widgets/ionest.py:424 msgid "Close _without Saving" msgstr "" #: glade/saveGamesDialog.glade:83 msgid "_Save %d documents" msgstr "" #: glade/saveGamesDialog.glade:141 msgid "" "There are %d games with unsaved moves. Save changes before " "closing?" msgstr "" #: glade/saveGamesDialog.glade:161 msgid "Select the games you want to save:" msgstr "" #: glade/saveGamesDialog.glade:204 msgid "If you don't save, new changes to your games will be permanently lost." msgstr "" #: glade/taskers.glade:126 msgid "_Opponent:" msgstr "" #: glade/taskers.glade:154 msgid "_Your Color:" msgstr "" #: glade/taskers.glade:219 msgid "_Start Game" msgstr "" #: glade/taskers.glade:338 msgid "Log on as G_uest" msgstr "" #: glade/taskers.glade:410 msgid "Ha_ndle:" msgstr "" #: glade/taskers.glade:469 msgid "_Connect to server" msgstr "" #: glade/tipoftheday.glade:7 msgid "Tip Of The day" msgstr "" #: glade/tipoftheday.glade:62 msgid "Show tips at startup" msgstr "" #: lib/pychess/Main.py:302 msgid "http://en.wikipedia.org/wiki/Chess" msgstr "" #: lib/pychess/Main.py:305 msgid "http://en.wikipedia.org/wiki/Rules_of_chess" msgstr "" #: lib/pychess/Main.py:370 lib/pychess/widgets/gamenanny.py:80 msgid "Welcome" msgstr "" #: lib/pychess/Database/gamelist.py:40 msgid "Id" msgstr "" #: lib/pychess/Database/gamelist.py:40 msgid "W Elo" msgstr "" #: lib/pychess/Database/gamelist.py:40 msgid "B Elo" msgstr "" #: lib/pychess/Database/gamelist.py:41 msgid "Result" msgstr "" #: lib/pychess/Database/gamelist.py:41 msgid "Event" msgstr "" #: lib/pychess/Database/gamelist.py:41 msgid "Site" msgstr "" #: lib/pychess/Database/gamelist.py:41 msgid "Round" msgstr "" #: lib/pychess/Database/gamelist.py:41 msgid "Date" msgstr "" #: lib/pychess/Database/gamelist.py:41 msgid "ECO" msgstr "" #: lib/pychess/Database/gamelist.py:62 msgid "PyChess Game Database" msgstr "" #: lib/pychess/Database/PgnImport.py:188 #, python-format msgid "The game #%s can't be loaded, because of an error parsing FEN" msgstr "" #: lib/pychess/ic/FICSConnection.py:139 msgid "The connection was broken - got \"end of file\" message" msgstr "" #: lib/pychess/ic/FICSConnection.py:140 #, python-format msgid "'%s' is not a registered name" msgstr "" #: lib/pychess/ic/FICSConnection.py:141 msgid "" "The entered password was invalid.\n" "If you forgot your password, go to http://www.freechess.org/password to request a new one over email." msgstr "" #: lib/pychess/ic/FICSConnection.py:145 #, python-format msgid "Sorry '%s' is already logged in" msgstr "" #: lib/pychess/ic/FICSConnection.py:146 #, python-format msgid "'%s' is a registered name. If it is yours, type the password." msgstr "" #: lib/pychess/ic/FICSConnection.py:147 msgid "" "Due to abuse problems, guest connections have been prevented.\n" "You can still register on http://www.freechess.org" msgstr "" #: lib/pychess/ic/FICSConnection.py:166 msgid "Connecting to server" msgstr "" #: lib/pychess/ic/FICSConnection.py:181 msgid "Logging on to server" msgstr "" #: lib/pychess/ic/FICSConnection.py:239 msgid "Setting up environment" msgstr "" #: lib/pychess/ic/FICSObjects.py:35 lib/pychess/ic/FICSObjects.py:47 #, python-format msgid "%(player)s is %(status)s" msgstr "" #: lib/pychess/ic/FICSObjects.py:46 msgid "not playing" msgstr "" #: lib/pychess/ic/FICSObjects.py:54 lib/pychess/ic/ICLounge.py:1136 #: lib/pychess/ic/ICLounge.py:2209 lib/pychess/ic/__init__.py:98 #: lib/pychess/widgets/newGameDialog.py:153 msgid "Blitz" msgstr "" #: lib/pychess/ic/FICSObjects.py:58 lib/pychess/ic/ICLounge.py:1137 #: lib/pychess/ic/ICLounge.py:2209 lib/pychess/ic/__init__.py:100 msgid "Lightning" msgstr "" #: lib/pychess/ic/FICSObjects.py:60 lib/pychess/Variants/atomic.py:15 msgid "Atomic" msgstr "" #: lib/pychess/ic/FICSObjects.py:62 lib/pychess/Variants/bughouse.py:9 msgid "Bughouse" msgstr "" #: lib/pychess/ic/FICSObjects.py:64 lib/pychess/Variants/crazyhouse.py:9 msgid "Crazyhouse" msgstr "" #: lib/pychess/ic/FICSObjects.py:66 lib/pychess/Variants/losers.py:9 msgid "Losers" msgstr "" #: lib/pychess/ic/FICSObjects.py:68 lib/pychess/Variants/suicide.py:12 msgid "Suicide" msgstr "" #: lib/pychess/ic/FICSObjects.py:70 lib/pychess/ic/__init__.py:129 msgid "Wild" msgstr "" #: lib/pychess/ic/FICSObjects.py:117 msgid "Online" msgstr "" #: lib/pychess/ic/FICSObjects.py:118 lib/pychess/ic/FICSObjects.py:143 msgid "Offline" msgstr "" #: lib/pychess/ic/FICSObjects.py:133 msgid "Available" msgstr "" #: lib/pychess/ic/FICSObjects.py:135 msgid "Playing" msgstr "" #: lib/pychess/ic/FICSObjects.py:141 msgid "Idle" msgstr "" #: lib/pychess/ic/FICSObjects.py:145 msgid "Examining" msgstr "" #: lib/pychess/ic/FICSObjects.py:147 msgid "Not Available" msgstr "" #: lib/pychess/ic/FICSObjects.py:149 msgid "Running Simul Match" msgstr "" #: lib/pychess/ic/FICSObjects.py:151 msgid "In Tournament" msgstr "" #: lib/pychess/ic/FICSObjects.py:308 lib/pychess/ic/FICSObjects.py:492 #: lib/pychess/ic/ICLounge.py:2278 msgid "Unrated" msgstr "" #: lib/pychess/ic/FICSObjects.py:491 lib/pychess/ic/ICLounge.py:670 #: lib/pychess/ic/ICLounge.py:1358 lib/pychess/ic/ICLounge.py:1558 #: lib/pychess/ic/ICLounge.py:2113 msgid "Rated" msgstr "" #: lib/pychess/ic/FICSObjects.py:498 lib/pychess/ic/ICLounge.py:2098 #, python-format msgid "%d min" msgstr "" #: lib/pychess/ic/FICSObjects.py:500 #, python-format msgid " + %d sec" msgstr "" #: lib/pychess/ic/FICSObjects.py:517 #, python-format msgid "%(player)s plays %(color)s" msgstr "" #: lib/pychess/ic/FICSObjects.py:519 lib/pychess/ic/ICLounge.py:909 msgid "white" msgstr "" #: lib/pychess/ic/FICSObjects.py:519 lib/pychess/ic/ICLounge.py:909 msgid "black" msgstr "" #: lib/pychess/ic/FICSObjects.py:565 msgid "This is a continuation of an adjourned match" msgstr "" #: lib/pychess/ic/FICSObjects.py:654 msgid "Opponent Rating" msgstr "" #: lib/pychess/ic/FICSObjects.py:656 msgid "Manual Accept" msgstr "" #: lib/pychess/ic/FICSObjects.py:810 msgid "Private" msgstr "" #: lib/pychess/ic/FICSObjects.py:930 lib/pychess/ic/ICLounge.py:527 #: lib/pychess/Savers/epd.py:139 msgid "Unknown" msgstr "" #: lib/pychess/ic/ICLogon.py:159 lib/pychess/ic/ICLogon.py:165 msgid "Connection Error" msgstr "" #: lib/pychess/ic/ICLogon.py:161 msgid "Log on Error" msgstr "" #: lib/pychess/ic/ICLogon.py:163 msgid "Connection was closed" msgstr "" #: lib/pychess/ic/ICLogon.py:169 msgid "Address Error" msgstr "" #: lib/pychess/ic/ICLogon.py:172 msgid "Auto-logout" msgstr "" #: lib/pychess/ic/ICLogon.py:173 msgid "You have been logged out because you were idle more than 60 minutes" msgstr "" #: lib/pychess/ic/ICLounge.py:222 msgid "You have to set kibitz on to see bot messages here." msgstr "" #: lib/pychess/ic/ICLounge.py:241 msgid "" "You may only have 3 outstanding seeks at the same time. If you want to add a" " new seek you must clear your currently active seeks. Clear your seeks?" msgstr "" #: lib/pychess/ic/ICLounge.py:258 msgid "You can't touch this! You are examining a game." msgstr "" #: lib/pychess/ic/ICLounge.py:270 msgid " has declined your offer for a match" msgstr "" #: lib/pychess/ic/ICLounge.py:283 msgid " is censoring you" msgstr "" #: lib/pychess/ic/ICLounge.py:296 msgid " noplay listing you" msgstr "" #: lib/pychess/ic/ICLounge.py:311 msgid " uses a formula not fitting your match request:" msgstr "" #: lib/pychess/ic/ICLounge.py:325 msgid "to manual accept" msgstr "" #: lib/pychess/ic/ICLounge.py:327 msgid "to automatic accept" msgstr "" #: lib/pychess/ic/ICLounge.py:329 msgid "rating range now" msgstr "" #: lib/pychess/ic/ICLounge.py:330 msgid "Seek updated" msgstr "" #: lib/pychess/ic/ICLounge.py:342 msgid "Your seeks have been removed" msgstr "" #: lib/pychess/ic/ICLounge.py:363 msgid " has arrived" msgstr "" #: lib/pychess/ic/ICLounge.py:370 msgid " has departed" msgstr "" #: lib/pychess/ic/ICLounge.py:374 msgid " is present" msgstr "" #: lib/pychess/ic/ICLounge.py:391 sidepanel/chatPanel.py:17 msgid "Chat" msgstr "" #: lib/pychess/ic/ICLounge.py:472 sidepanel/bookPanel.py:366 msgid "Win" msgstr "" #: lib/pychess/ic/ICLounge.py:472 sidepanel/bookPanel.py:360 msgid "Draw" msgstr "" #: lib/pychess/ic/ICLounge.py:472 sidepanel/bookPanel.py:363 msgid "Loss" msgstr "" #: lib/pychess/ic/ICLounge.py:482 msgid "" "On FICS, your \"Wild\" rating encompasses all of the following variants at " "all time controls:\n" msgstr "" #: lib/pychess/ic/ICLounge.py:494 msgid "Sanctions" msgstr "" #: lib/pychess/ic/ICLounge.py:499 msgid "Email" msgstr "" #: lib/pychess/ic/ICLounge.py:504 msgid "Spent" msgstr "" #: lib/pychess/ic/ICLounge.py:506 msgid "online in total" msgstr "" #: lib/pychess/ic/ICLounge.py:512 msgid "Ping" msgstr "" #: lib/pychess/ic/ICLounge.py:517 msgid "Connecting" msgstr "" #: lib/pychess/ic/ICLounge.py:544 msgid "" "You are currently logged in as a guest.\n" "A guest can't play rated games and therefore isn't able to play as many of the types of matches offered as a registered user. To register an account, go to http://www.freechess.org/Register/index.html." msgstr "" #: lib/pychess/ic/ICLounge.py:669 lib/pychess/ic/ICLounge.py:1136 msgid "Name" msgstr "" #: lib/pychess/ic/ICLounge.py:670 lib/pychess/ic/ICLounge.py:1358 #: lib/pychess/ic/ICLounge.py:1558 msgid "Type" msgstr "" #: lib/pychess/ic/ICLounge.py:670 lib/pychess/ic/ICLounge.py:1558 msgid "Clock" msgstr "" #: lib/pychess/ic/ICLounge.py:726 lib/pychess/ic/ICLounge.py:923 #: lib/pychess/Players/Human.py:250 msgid "Accept" msgstr "" #: lib/pychess/ic/ICLounge.py:728 msgid "Assess" msgstr "" #: lib/pychess/ic/ICLounge.py:734 msgid "Archived" msgstr "" #: lib/pychess/ic/ICLounge.py:848 #, python-format msgid "Active seeks: %d" msgstr "" #: lib/pychess/ic/ICLounge.py:897 #, python-format msgid "" " would like to resume your adjourned %(time)s %(gametype)s " "game." msgstr "" #: lib/pychess/ic/ICLounge.py:902 #, python-format msgid "" " challenges you to a %(time)s %(rated)s %(gametype)s game" msgstr "" #: lib/pychess/ic/ICLounge.py:907 #, python-format msgid " where %(player)s plays %(color)s." msgstr "" #: lib/pychess/ic/ICLounge.py:924 lib/pychess/Players/Human.py:251 msgid "Decline" msgstr "" #: lib/pychess/ic/ICLounge.py:1065 msgid " min" msgstr "" #: lib/pychess/ic/ICLounge.py:1137 msgid "Status" msgstr "" #: lib/pychess/ic/ICLounge.py:1203 lib/pychess/ic/ICLounge.py:1233 #, python-format msgid "Players: %d" msgstr "" #: lib/pychess/ic/ICLounge.py:1469 #, python-format msgid "Games running: %d" msgstr "" #: lib/pychess/ic/ICLounge.py:1559 msgid "Date/Time" msgstr "" #: lib/pychess/ic/ICLounge.py:1614 #, python-format msgid "" " with whom you have an adjourned %(timecontrol)s %(gametype)s " "game is online." msgstr "" #: lib/pychess/ic/ICLounge.py:1635 msgid "Request Continuation" msgstr "" #: lib/pychess/ic/ICLounge.py:1637 msgid "Examine Adjourned Game" msgstr "" #: lib/pychess/ic/ICLounge.py:1965 msgid "" "The chain button is disabled because you are logged in as a guest. Guests " "can't establish ratings, and the chain button's state has no effect when " "there is no rating to which to tie \"Opponent Strength\" to" msgstr "" #: lib/pychess/ic/ICLounge.py:2006 msgid "Challenge: " msgstr "" #: lib/pychess/ic/ICLounge.py:2044 msgid "If set you can refuse players accepting your seek" msgstr "" #: lib/pychess/ic/ICLounge.py:2048 lib/pychess/ic/ICLounge.py:2051 msgid "This option is not applicable because you're challenging a player" msgstr "" #: lib/pychess/ic/ICLounge.py:2064 msgid "Edit Seek: " msgstr "" #: lib/pychess/ic/ICLounge.py:2095 #, python-format msgid "%(minutes)d min + %(gain)d sec/move" msgstr "" #: lib/pychess/ic/ICLounge.py:2116 msgid "Manual" msgstr "" #: lib/pychess/ic/ICLounge.py:2256 msgid "Any strength" msgstr "" #: lib/pychess/ic/ICLounge.py:2308 msgid "You can't play rated games because you are logged in as a guest" msgstr "" #: lib/pychess/ic/ICLounge.py:2312 msgid "You can't play rated games because \"Untimed\" is checked, " msgstr "" #: lib/pychess/ic/ICLounge.py:2313 msgid "and on FICS, untimed games can't be rated" msgstr "" #: lib/pychess/ic/ICLounge.py:2317 msgid "This option is not available because you're challenging a guest, " msgstr "" #: lib/pychess/ic/ICLounge.py:2318 msgid "and guests can't play rated games" msgstr "" #: lib/pychess/ic/ICLounge.py:2332 lib/pychess/Variants/shuffle.py:16 #: lib/pychess/widgets/newGameDialog.py:266 msgid "Shuffle" msgstr "" #: lib/pychess/ic/ICLounge.py:2333 lib/pychess/widgets/newGameDialog.py:267 msgid "Other (standard rules)" msgstr "" #: lib/pychess/ic/ICLounge.py:2334 lib/pychess/widgets/newGameDialog.py:268 msgid "Other (non standard rules)" msgstr "" #: lib/pychess/ic/ICLounge.py:2421 msgid "You can't select a variant because \"Untimed\" is checked, " msgstr "" #: lib/pychess/ic/ICLounge.py:2422 msgid "and on FICS, untimed games have to be normal chess rules" msgstr "" #: lib/pychess/ic/ICLounge.py:2454 msgid "Change Tolerance" msgstr "" #: lib/pychess/ic/__init__.py:102 msgid "Examined" msgstr "" #: lib/pychess/ic/__init__.py:103 msgid "Other" msgstr "" #: lib/pychess/ic/__init__.py:182 msgid "Administrator" msgstr "" #: lib/pychess/ic/__init__.py:182 msgid "Blindfold Account" msgstr "" #: lib/pychess/ic/__init__.py:182 msgid "Computer" msgstr "" #: lib/pychess/ic/__init__.py:183 msgid "Team Account" msgstr "" #: lib/pychess/ic/__init__.py:183 msgid "Unregistered" msgstr "" #: lib/pychess/ic/__init__.py:183 msgid "Chess Advisor" msgstr "" #: lib/pychess/ic/__init__.py:184 msgid "Service Representative" msgstr "" #: lib/pychess/ic/__init__.py:184 msgid "Tournament Director" msgstr "" #: lib/pychess/ic/__init__.py:184 msgid "Mamer Manager" msgstr "" #: lib/pychess/ic/__init__.py:185 msgid "Grand Master" msgstr "" #: lib/pychess/ic/__init__.py:185 msgid "International Master" msgstr "" #: lib/pychess/ic/__init__.py:185 msgid "FIDE Master" msgstr "" #: lib/pychess/ic/__init__.py:186 msgid "Woman Grand Master" msgstr "" #: lib/pychess/ic/__init__.py:186 msgid "Woman International Master" msgstr "" #: lib/pychess/ic/__init__.py:186 msgid "Woman FIDE Master" msgstr "" #: lib/pychess/ic/__init__.py:187 msgid "Dummy Account" msgstr "" #: lib/pychess/ic/__init__.py:191 msgid "*" msgstr "" #: lib/pychess/ic/__init__.py:191 lib/pychess/Utils/repr.py:14 msgid "B" msgstr "" #: lib/pychess/ic/__init__.py:191 msgid "C" msgstr "" #: lib/pychess/ic/__init__.py:192 msgid "T" msgstr "" #: lib/pychess/ic/__init__.py:192 msgid "U" msgstr "" #: lib/pychess/ic/__init__.py:192 msgid "CA" msgstr "" #: lib/pychess/ic/__init__.py:193 msgid "SR" msgstr "" #: lib/pychess/ic/__init__.py:193 msgid "TD" msgstr "" #: lib/pychess/ic/__init__.py:193 msgid "TM" msgstr "" #: lib/pychess/ic/__init__.py:194 msgid "GM" msgstr "" #: lib/pychess/ic/__init__.py:194 msgid "IM" msgstr "" #: lib/pychess/ic/__init__.py:194 msgid "FM" msgstr "" #: lib/pychess/ic/__init__.py:195 msgid "WGM" msgstr "" #: lib/pychess/ic/__init__.py:195 msgid "WIM" msgstr "" #: lib/pychess/ic/__init__.py:195 msgid "WFM" msgstr "" #: lib/pychess/ic/__init__.py:195 msgid "D" msgstr "" #: lib/pychess/ic/__init__.py:195 msgid "H" msgstr "" #: lib/pychess/ic/__init__.py:195 msgid "CM" msgstr "" #: lib/pychess/ic/__init__.py:195 msgid "FA" msgstr "" #: lib/pychess/ic/__init__.py:195 msgid "NM" msgstr "" #: lib/pychess/Players/CECPEngine.py:857 #, python-format msgid "The engine %s reports an error:" msgstr "" #: lib/pychess/Players/Human.py:20 msgid "Your opponent has offered you a draw." msgstr "" #: lib/pychess/Players/Human.py:21 msgid "" "Your opponent has offered you a draw. If you accept this offer, the game " "will end with a score of 1/2 - 1/2." msgstr "" #: lib/pychess/Players/Human.py:23 msgid "Your opponent wants to abort the game." msgstr "" #: lib/pychess/Players/Human.py:24 msgid "" "Your opponent has asked that the game be aborted. If you accept this offer, " "the game will end with no rating change." msgstr "" #: lib/pychess/Players/Human.py:26 msgid "Your opponent wants to adjourn the game." msgstr "" #: lib/pychess/Players/Human.py:27 msgid "" "Your opponent has asked that the game be adjourned. If you accept this " "offer, the game will be adjourned and you can resume it later (when your " "opponent is online and both players agree to resume)." msgstr "" #: lib/pychess/Players/Human.py:29 #, python-format msgid "Your opponent wants to undo %s move(s)." msgstr "" #: lib/pychess/Players/Human.py:30 #, python-format msgid "" "Your opponent has asked that the last %s move(s) be undone. If you accept " "this offer, the game will continue from the earlier position." msgstr "" #: lib/pychess/Players/Human.py:32 msgid "Your opponent wants to pause the game." msgstr "" #: lib/pychess/Players/Human.py:33 msgid "" "Your opponent has asked that the game be paused. If you accept this offer, " "the game clock will be paused until both players agree to resume the game." msgstr "" #: lib/pychess/Players/Human.py:35 msgid "Your opponent wants to resume the game." msgstr "" #: lib/pychess/Players/Human.py:36 msgid "" "Your opponent has asked that the game be resumed. If you accept this offer, " "the game clock will continue from where it was paused." msgstr "" #: lib/pychess/Players/Human.py:40 msgid "The resignation" msgstr "" #: lib/pychess/Players/Human.py:41 msgid "The flag call" msgstr "" #: lib/pychess/Players/Human.py:42 msgid "The draw offer" msgstr "" #: lib/pychess/Players/Human.py:43 msgid "The abort offer" msgstr "" #: lib/pychess/Players/Human.py:44 msgid "The adjourn offer" msgstr "" #: lib/pychess/Players/Human.py:45 msgid "The pause offer" msgstr "" #: lib/pychess/Players/Human.py:46 msgid "The resume offer" msgstr "" #: lib/pychess/Players/Human.py:47 msgid "The offer to switch sides" msgstr "" #: lib/pychess/Players/Human.py:48 msgid "The takeback offer" msgstr "" #: lib/pychess/Players/Human.py:52 msgid "resign" msgstr "" #: lib/pychess/Players/Human.py:53 msgid "call your opponents flag" msgstr "" #: lib/pychess/Players/Human.py:54 msgid "offer a draw" msgstr "" #: lib/pychess/Players/Human.py:55 msgid "offer an abort" msgstr "" #: lib/pychess/Players/Human.py:56 msgid "offer to adjourn" msgstr "" #: lib/pychess/Players/Human.py:57 msgid "offer a pause" msgstr "" #: lib/pychess/Players/Human.py:58 msgid "offer to resume" msgstr "" #: lib/pychess/Players/Human.py:59 msgid "offer to switch sides" msgstr "" #: lib/pychess/Players/Human.py:60 msgid "offer a takeback" msgstr "" #: lib/pychess/Players/Human.py:61 msgid "ask your opponent to move" msgstr "" #: lib/pychess/Players/Human.py:66 msgid "Your opponent is not out of time." msgstr "" #: lib/pychess/Players/Human.py:68 msgid "The clock hasn't been started yet." msgstr "" #: lib/pychess/Players/Human.py:70 msgid "You can't switch colors during the game." msgstr "" #: lib/pychess/Players/Human.py:72 msgid "You have tried to undo too many moves." msgstr "" #: lib/pychess/Players/Human.py:180 msgid "Your opponent asks you to hurry!" msgstr "" #: lib/pychess/Players/Human.py:181 msgid "" "Generally this means nothing, as the game is time-based, but if you want to " "please your opponent, perhaps you should get going." msgstr "" #: lib/pychess/Players/Human.py:259 #, python-format msgid "%s was declined by your opponent" msgstr "" #: lib/pychess/Players/Human.py:260 #, python-format msgid "Resend %s?" msgstr "" #: lib/pychess/Players/Human.py:267 msgid "Resend" msgstr "" #: lib/pychess/Players/Human.py:275 #, python-format msgid "%s was withdrawn by your opponent" msgstr "" #: lib/pychess/Players/Human.py:276 msgid "Your opponent seems to have changed their mind." msgstr "" #: lib/pychess/Players/Human.py:290 #, python-format msgid "Unable to accept %s" msgstr "" #: lib/pychess/Players/Human.py:291 msgid "Probably because it has been withdrawn." msgstr "" #: lib/pychess/Players/Human.py:298 #, python-format msgid "%s returns an error" msgstr "" #: lib/pychess/Savers/chessalpha2.py:12 msgid "Chess Alpha 2 Diagram" msgstr "" #: lib/pychess/Savers/chesspastebin.py:39 msgid "Game shared at " msgstr "" #: lib/pychess/Savers/chesspastebin.py:41 msgid "(Link is available on clipboard.)" msgstr "" #: lib/pychess/Savers/database.py:19 msgid "PyChess database" msgstr "" #: lib/pychess/Savers/epd.py:12 msgid "Chess Position" msgstr "" #: lib/pychess/Savers/fen.py:12 msgid "Simple Chess Position" msgstr "" #: lib/pychess/Savers/fen.py:44 lib/pychess/Savers/pgn.py:329 msgid "The game can't be loaded, because of an error parsing FEN" msgstr "" #: lib/pychess/Savers/pgnbase.py:100 #, python-format msgid "" "The game can't be read to end, because of an error parsing move %(moveno)s " "'%(notation)s'." msgstr "" #: lib/pychess/Savers/pgnbase.py:102 #, python-format msgid "The move failed because %s." msgstr "" #: lib/pychess/Savers/pgnbase.py:110 #, python-format msgid "Error parsing move %(moveno)s %(mstr)s" msgstr "" #: lib/pychess/Savers/pgn.py:28 msgid "Chess Game" msgstr "" #: lib/pychess/Savers/pgn.py:362 msgid "Invalid move." msgstr "" #: lib/pychess/Savers/png.py:15 msgid "Png image" msgstr "" #: lib/pychess/System/ping.py:31 msgid "Destination Host Unreachable" msgstr "" #: lib/pychess/System/ping.py:74 msgid "Died" msgstr "" #: lib/pychess/Utils/GameModel.py:147 msgid "Local Event" msgstr "" #: lib/pychess/Utils/GameModel.py:148 msgid "Local Site" msgstr "" #: lib/pychess/Utils/repr.py:12 msgid "Pawn" msgstr "" #: lib/pychess/Utils/repr.py:14 msgid "P" msgstr "" #: lib/pychess/Utils/repr.py:14 msgid "N" msgstr "" #: lib/pychess/Utils/repr.py:14 msgid "R" msgstr "" #: lib/pychess/Utils/repr.py:14 msgid "Q" msgstr "" #: lib/pychess/Utils/repr.py:14 msgid "K" msgstr "" #: lib/pychess/Utils/repr.py:17 msgid "The game ended in a draw" msgstr "" #: lib/pychess/Utils/repr.py:18 #, python-format msgid "%(white)s won the game" msgstr "" #: lib/pychess/Utils/repr.py:19 #, python-format msgid "%(black)s won the game" msgstr "" #: lib/pychess/Utils/repr.py:20 msgid "The game has been killed" msgstr "" #: lib/pychess/Utils/repr.py:21 msgid "The game has been adjourned" msgstr "" #: lib/pychess/Utils/repr.py:22 msgid "The game has been aborted" msgstr "" #: lib/pychess/Utils/repr.py:26 msgid "Because neither player has sufficient material to mate" msgstr "" #: lib/pychess/Utils/repr.py:27 msgid "Because the same position was repeated three times in a row" msgstr "" #: lib/pychess/Utils/repr.py:28 msgid "Because the last 50 moves brought nothing new" msgstr "" #: lib/pychess/Utils/repr.py:29 msgid "Because both players ran out of time" msgstr "" #: lib/pychess/Utils/repr.py:30 #, python-format msgid "Because %(mover)s stalemated" msgstr "" #: lib/pychess/Utils/repr.py:31 msgid "Because both players agreed to a draw" msgstr "" #: lib/pychess/Utils/repr.py:32 lib/pychess/Utils/repr.py:42 msgid "Because of adjudication by an admin" msgstr "" #: lib/pychess/Utils/repr.py:33 msgid "Because the game exceed the max length" msgstr "" #: lib/pychess/Utils/repr.py:34 #, python-format msgid "" "Because %(white)s ran out of time and %(black)s has insufficient material to" " mate" msgstr "" #: lib/pychess/Utils/repr.py:35 #, python-format msgid "" "Because %(black)s ran out of time and %(white)s has insufficient material to" " mate" msgstr "" #: lib/pychess/Utils/repr.py:36 msgid "Because both players have the same amount of pieces" msgstr "" #: lib/pychess/Utils/repr.py:38 #, python-format msgid "Because %(loser)s resigned" msgstr "" #: lib/pychess/Utils/repr.py:39 #, python-format msgid "Because %(loser)s ran out of time" msgstr "" #: lib/pychess/Utils/repr.py:40 #, python-format msgid "Because %(loser)s was checkmated" msgstr "" #: lib/pychess/Utils/repr.py:41 #, python-format msgid "Because %(loser)s disconnected" msgstr "" #: lib/pychess/Utils/repr.py:43 #, python-format msgid "Because %(winner)s has fewer pieces" msgstr "" #: lib/pychess/Utils/repr.py:44 #, python-format msgid "Because %(winner)s lost all pieces" msgstr "" #: lib/pychess/Utils/repr.py:45 #, python-format msgid "Because %(loser)s king exploded" msgstr "" #: lib/pychess/Utils/repr.py:46 #, python-format msgid "Because %(winner)s king reached the center" msgstr "" #: lib/pychess/Utils/repr.py:47 #, python-format msgid "Because %(winner)s was giving check 3 times" msgstr "" #: lib/pychess/Utils/repr.py:49 msgid "Because a player lost connection" msgstr "" #: lib/pychess/Utils/repr.py:50 msgid "Because both players agreed to an adjournment" msgstr "" #: lib/pychess/Utils/repr.py:51 msgid "Because the server was shut down" msgstr "" #: lib/pychess/Utils/repr.py:52 msgid "" "Because a player lost connection and the other player requested adjournment" msgstr "" #: lib/pychess/Utils/repr.py:53 #, python-format msgid "" "Because %(black)s lost connection to the server and %(white)s requested " "adjournment" msgstr "" #: lib/pychess/Utils/repr.py:54 #, python-format msgid "" "Because %(white)s lost connection to the server and %(black)s requested " "adjournment" msgstr "" #: lib/pychess/Utils/repr.py:55 #, python-format msgid "Because %(white)s lost connection to the server" msgstr "" #: lib/pychess/Utils/repr.py:56 #, python-format msgid "Because %(black)s lost connection to the server" msgstr "" #: lib/pychess/Utils/repr.py:58 msgid "Because of adjudication by an admin. No rating changes have occurred." msgstr "" #: lib/pychess/Utils/repr.py:59 msgid "" "Because both players agreed to abort the game. No rating changes have " "occurred." msgstr "" #: lib/pychess/Utils/repr.py:60 msgid "Because of courtesy by a player. No rating changes have occurred." msgstr "" #: lib/pychess/Utils/repr.py:61 msgid "" "Because a player aborted the game. Either player can abort the game without " "the other's consent before the second move. No rating changes have occurred." msgstr "" #: lib/pychess/Utils/repr.py:62 msgid "" "Because a player disconnected and there are too few moves to warrant " "adjournment. No rating changes have occurred." msgstr "" #: lib/pychess/Utils/repr.py:63 msgid "Because the server was shut down. No rating changes have occurred." msgstr "" #: lib/pychess/Utils/repr.py:65 #, python-format msgid "Because the %(white)s engine died" msgstr "" #: lib/pychess/Utils/repr.py:66 #, python-format msgid "Because the %(black)s engine died" msgstr "" #: lib/pychess/Utils/repr.py:67 msgid "Because the connection to the server was lost" msgstr "" #: lib/pychess/Utils/repr.py:68 msgid "The reason is unknown" msgstr "" #: lib/pychess/Utils/TimeModel.py:229 msgid "min" msgstr "" #: lib/pychess/Utils/TimeModel.py:231 msgid "sec" msgstr "" #: lib/pychess/Variants/asean.py:12 msgid "" "ASEAN: http://www.ncf-" "phil.org/downloadables/2014/May/Asean_chess/Laws_of_ASEAN_Chess_2011_Nov_26.doc" msgstr "" #: lib/pychess/Variants/asean.py:13 msgid "ASEAN" msgstr "" #: lib/pychess/Variants/asean.py:33 msgid "Makruk: http://en.wikipedia.org/wiki/Makruk" msgstr "" #: lib/pychess/Variants/asean.py:34 msgid "Makruk" msgstr "" #: lib/pychess/Variants/asean.py:60 msgid "Cambodian: http://www.khmerinstitute.org/culture/ok.html" msgstr "" #: lib/pychess/Variants/asean.py:61 msgid "Cambodian" msgstr "" #: lib/pychess/Variants/asean.py:86 msgid "" "Ai-Wok: http://www.open-" "aurec.com/wbforum/viewtopic.php?p=199364&sid=20963a1de2c164050de019e5ed6bf7c4#p199364" msgstr "" #: lib/pychess/Variants/asean.py:87 msgid "Ai-Wok" msgstr "" #: lib/pychess/Variants/asean.py:111 msgid "Sittuyin: http://en.wikipedia.org/wiki/Sittuyin" msgstr "" #: lib/pychess/Variants/asean.py:112 msgid "Sittuyin" msgstr "" #: lib/pychess/Variants/asymmetricrandom.py:12 msgid "" "FICS wild/4: http://www.freechess.org/Help/HelpFiles/wild.html\n" "* Randomly chosen pieces (two queens or three rooks possible)\n" "* Exactly one king of each color\n" "* Pieces placed randomly behind the pawns, SUBJECT TO THE CONSTRAINT THAT THE BISHOPS ARE BALANCED\n" "* No castling\n" "* Black's arrangement DOES NOT mirrors white's" msgstr "" #: lib/pychess/Variants/asymmetricrandom.py:18 msgid "Asymmetric Random" msgstr "" #: lib/pychess/Variants/atomic.py:14 msgid "FICS atomic: http://www.freechess.org/Help/HelpFiles/atomic.html" msgstr "" #: lib/pychess/Variants/blindfold.py:7 msgid "" "Classic chess rules with hidden figurines\n" "http://en.wikipedia.org/wiki/Blindfold_chess" msgstr "" #: lib/pychess/Variants/blindfold.py:9 #: lib/pychess/widgets/newGameDialog.py:264 msgid "Blindfold" msgstr "" #: lib/pychess/Variants/blindfold.py:18 msgid "" "Classic chess rules with hidden pawns\n" "http://en.wikipedia.org/wiki/Blindfold_chess" msgstr "" #: lib/pychess/Variants/blindfold.py:20 msgid "Hidden pawns" msgstr "" #: lib/pychess/Variants/blindfold.py:29 msgid "" "Classic chess rules with hidden pieces\n" "http://en.wikipedia.org/wiki/Blindfold_chess" msgstr "" #: lib/pychess/Variants/blindfold.py:31 msgid "Hidden pieces" msgstr "" #: lib/pychess/Variants/blindfold.py:40 msgid "" "Classic chess rules with all pieces white\n" "http://en.wikipedia.org/wiki/Blindfold_chess" msgstr "" #: lib/pychess/Variants/blindfold.py:42 msgid "All white" msgstr "" #: lib/pychess/Variants/bughouse.py:8 msgid "FICS bughouse: http://www.freechess.org/Help/HelpFiles/bughouse.html" msgstr "" #: lib/pychess/Variants/corner.py:12 msgid "" "http://brainking.com/en/GameRules?tp=2\n" "* Placement of the pieces on the 1st and 8th row are randomized\n" "* The king is in the right hand corner\n" "* Bishops must start on opposite color squares\n" "* Black's starting position is obtained by rotating white's position 180 degrees around the board's center\n" "* No castling" msgstr "" #: lib/pychess/Variants/corner.py:18 msgid "Corner" msgstr "" #: lib/pychess/Variants/crazyhouse.py:8 msgid "" "FICS crazyhouse: http://www.freechess.org/Help/HelpFiles/crazyhouse.html" msgstr "" #: lib/pychess/Variants/euroshogi.py:9 msgid "EuroShogi: http://en.wikipedia.org/wiki/EuroShogi" msgstr "" #: lib/pychess/Variants/euroshogi.py:10 msgid "EuroShogi" msgstr "" #: lib/pychess/Variants/fischerandom.py:18 msgid "" "http://en.wikipedia.org/wiki/Chess960\n" "FICS wild/fr: http://www.freechess.org/Help/HelpFiles/wild.html" msgstr "" #: lib/pychess/Variants/fischerandom.py:20 msgid "Fischer Random" msgstr "" #: lib/pychess/Variants/kingofthehill.py:8 msgid "" "Bringing your king legally to the center (e4, d4, e5, d5) instantly wins the game!\n" "Normal rules apply in other cases and checkmate also ends the game." msgstr "" #: lib/pychess/Variants/kingofthehill.py:10 msgid "King of the hill" msgstr "" #: lib/pychess/Variants/knightodds.py:8 msgid "One player starts with one less knight piece" msgstr "" #: lib/pychess/Variants/knightodds.py:9 msgid "Knight odds" msgstr "" #: lib/pychess/Variants/losers.py:8 msgid "FICS losers: http://www.freechess.org/Help/HelpFiles/losers_chess.html" msgstr "" #: lib/pychess/Variants/normal.py:4 msgid "" "Classic chess rules\n" "http://en.wikipedia.org/wiki/Chess" msgstr "" #: lib/pychess/Variants/normal.py:6 lib/pychess/widgets/newGameDialog.py:157 msgid "Normal" msgstr "" #: lib/pychess/Variants/pawnodds.py:8 msgid "One player starts with one less pawn piece" msgstr "" #: lib/pychess/Variants/pawnodds.py:9 msgid "Pawn odds" msgstr "" #: lib/pychess/Variants/pawnspassed.py:11 msgid "" "FICS wild/8a: http://www.freechess.org/Help/HelpFiles/wild.html\n" "White pawns start on 5th rank and black pawns on the 4th rank" msgstr "" #: lib/pychess/Variants/pawnspassed.py:13 msgid "Pawns Passed" msgstr "" #: lib/pychess/Variants/pawnspushed.py:10 msgid "" "FICS wild/8: http://www.freechess.org/Help/HelpFiles/wild.html\n" "Pawns start on 4th and 5th ranks rather than 2nd and 7th" msgstr "" #: lib/pychess/Variants/pawnspushed.py:12 msgid "Pawns Pushed" msgstr "" #: lib/pychess/Variants/queenodds.py:8 msgid "One player starts with one less queen piece" msgstr "" #: lib/pychess/Variants/queenodds.py:9 msgid "Queen odds" msgstr "" #: lib/pychess/Variants/randomchess.py:11 msgid "" "FICS wild/3: http://www.freechess.org/Help/HelpFiles/wild.html\n" "* Randomly chosen pieces (two queens or three rooks possible)\n" "* Exactly one king of each color\n" "* Pieces placed randomly behind the pawns\n" "* No castling\n" "* Black's arrangement mirrors white's" msgstr "" #: lib/pychess/Variants/randomchess.py:17 #: lib/pychess/widgets/TaskerManager.py:155 msgid "Random" msgstr "" #: lib/pychess/Variants/rookodds.py:8 msgid "One player starts with one less rook piece" msgstr "" #: lib/pychess/Variants/rookodds.py:9 msgid "Rook odds" msgstr "" #: lib/pychess/Variants/shuffle.py:11 msgid "" "xboard nocastle: http://home.hccnet.nl/h.g.muller/engine-intf.html#8\n" "FICS wild/2: http://www.freechess.org/Help/HelpFiles/wild.html\n" "* Random arrangement of the pieces behind the pawns\n" "* No castling\n" "* Black's arrangement mirrors white's" msgstr "" #: lib/pychess/Variants/suicide.py:11 msgid "" "FICS suicide: http://www.freechess.org/Help/HelpFiles/suicide_chess.html" msgstr "" #: lib/pychess/Variants/theban.py:10 msgid "" "Variant developed by Kai Laskos: " "http://talkchess.com/forum/viewtopic.php?t=40990" msgstr "" #: lib/pychess/Variants/theban.py:11 msgid "Theban" msgstr "" #: lib/pychess/Variants/threecheck.py:10 msgid "Win by giving check 3 times" msgstr "" #: lib/pychess/Variants/threecheck.py:11 msgid "Three-check" msgstr "" #: lib/pychess/Variants/upsidedown.py:10 msgid "" "FICS wild/5: http://www.freechess.org/Help/HelpFiles/wild.html\n" "http://en.wikipedia.org/wiki/Chess_variant#Chess_with_different_starting_positions\n" "Pawns start on their 7th rank rather than their 2nd rank!" msgstr "" #: lib/pychess/Variants/upsidedown.py:13 msgid "Upside Down" msgstr "" #: lib/pychess/Variants/wildcastle.py:10 msgid "" "xboard wildcastle http://home.hccnet.nl/h.g.muller/engine-intf.html#8\n" "FICS wild/0: http://www.freechess.org/Help/HelpFiles/wild.html\n" "* White has the typical set-up at the start.\n" "* Black's pieces are the same, except that the King and Queen are reversed,\n" "* so they are not on the same files as White's King and Queen.\n" "* Castling is done similarly to normal chess:\n" "* o-o-o indicates long castling and o-o short castling." msgstr "" #: lib/pychess/Variants/wildcastle.py:17 msgid "Wildcastle" msgstr "" #: lib/pychess/Variants/wildcastleshuffle.py:11 msgid "" "xboard wildcastle http://home.hccnet.nl/h.g.muller/engine-intf.html#8\n" "FICS wild/1: http://www.freechess.org/Help/HelpFiles/wild.html\n" "* In this variant both sides have the same set of pieces as in normal chess.\n" "* The white king starts on d1 or e1 and the black king starts on d8 or e8,\n" "* and the rooks are in their usual positions.\n" "* Bishops are always on opposite colors.\n" "* Subject to these constraints the position of the pieces on their first ranks is random.\n" "* Castling is done similarly to normal chess:\n" "* o-o-o indicates long castling and o-o short castling." msgstr "" #: lib/pychess/Variants/wildcastleshuffle.py:20 msgid "Wildcastle shuffle" msgstr "" #: lib/pychess/widgets/analyzegameDialog.py:85 msgid "Game analyzing in progress..." msgstr "" #: lib/pychess/widgets/analyzegameDialog.py:86 msgid "Do you want to abort it?" msgstr "" #: lib/pychess/widgets/analyzegameDialog.py:95 #: lib/pychess/widgets/gamewidget.py:202 lib/pychess/widgets/gamewidget.py:320 msgid "Abort" msgstr "" #: lib/pychess/widgets/ChatView.py:125 msgid "Observers" msgstr "" #: lib/pychess/widgets/ChatWindow.py:222 msgid "You have opened no conversations yet" msgstr "" #: lib/pychess/widgets/ChatWindow.py:254 msgid "Only registered users may talk to this channel" msgstr "" #: lib/pychess/widgets/ChatWindow.py:312 msgid "No conversation's selected" msgstr "" #: lib/pychess/widgets/ChatWindow.py:350 msgid "Loading player data" msgstr "" #: lib/pychess/widgets/ChatWindow.py:400 msgid "Receiving list of players" msgstr "" #: lib/pychess/widgets/ChatWindow.py:518 msgid "Friends" msgstr "" #: lib/pychess/widgets/ChatWindow.py:529 msgid "Admin" msgstr "" #: lib/pychess/widgets/ChatWindow.py:540 msgid "More channels" msgstr "" #: lib/pychess/widgets/ChatWindow.py:548 msgid "More players" msgstr "" #: lib/pychess/widgets/ChatWindow.py:558 msgid "Computers" msgstr "" #: lib/pychess/widgets/ChatWindow.py:568 msgid "BlindFold" msgstr "" #: lib/pychess/widgets/ChatWindow.py:578 msgid "Guests" msgstr "" #: lib/pychess/widgets/ChatWindow.py:805 msgid "Conversations" msgstr "" #: lib/pychess/widgets/ChatWindow.py:807 msgid "Conversation info" msgstr "" #: lib/pychess/widgets/enginesDialog.py:152 msgid "Select engine" msgstr "" #: lib/pychess/widgets/enginesDialog.py:156 msgid "Executable files" msgstr "" #: lib/pychess/widgets/enginesDialog.py:176 #: lib/pychess/widgets/enginesDialog.py:210 #: lib/pychess/widgets/enginesDialog.py:235 #, python-format msgid "Unable to add %s" msgstr "" #: lib/pychess/widgets/enginesDialog.py:177 msgid "wine not installed" msgstr "" #: lib/pychess/widgets/enginesDialog.py:211 #: lib/pychess/widgets/enginesDialog.py:236 msgid "There is something wrong with this executable" msgstr "" #: lib/pychess/widgets/enginesDialog.py:266 msgid "Select working directory" msgstr "" #: lib/pychess/widgets/gamenanny.py:115 #, python-format msgid " invalid engine move: %s" msgstr "" #: lib/pychess/widgets/gamenanny.py:134 msgid "Offer Rematch" msgstr "" #: lib/pychess/widgets/gamenanny.py:136 lib/pychess/widgets/gamenanny.py:147 #, python-format msgid "Observe %s" msgstr "" #: lib/pychess/widgets/gamenanny.py:168 msgid "Play Rematch" msgstr "" #: lib/pychess/widgets/gamenanny.py:171 msgid "Undo one move" msgstr "" #: lib/pychess/widgets/gamenanny.py:173 msgid "Undo two moves" msgstr "" #: lib/pychess/widgets/gamenanny.py:203 msgid "The game is paused" msgstr "" #: lib/pychess/widgets/gamenanny.py:221 lib/pychess/widgets/gamenanny.py:222 msgid "Loaded game" msgstr "" #: lib/pychess/widgets/gamenanny.py:228 msgid "Saved game" msgstr "" #: lib/pychess/widgets/gamenanny.py:232 msgid "Analyzer started" msgstr "" #: lib/pychess/widgets/gamenanny.py:281 msgid "You sent an abort offer" msgstr "" #: lib/pychess/widgets/gamenanny.py:283 msgid "You sent an adjournment offer" msgstr "" #: lib/pychess/widgets/gamenanny.py:285 msgid "You sent a draw offer" msgstr "" #: lib/pychess/widgets/gamenanny.py:287 msgid "You sent a pause offer" msgstr "" #: lib/pychess/widgets/gamenanny.py:289 msgid "You sent a resume offer" msgstr "" #: lib/pychess/widgets/gamenanny.py:291 msgid "You sent an undo offer" msgstr "" #: lib/pychess/widgets/gamenanny.py:293 msgid "You asked your opponent to move" msgstr "" #: lib/pychess/widgets/gamenanny.py:305 #, python-format msgid "Engine, %s, has died" msgstr "" #: lib/pychess/widgets/gamenanny.py:306 msgid "" "PyChess has lost connection to the engine, probably because it has died.\n" "\n" "You can try to start a new game with the engine, or try to play against another one." msgstr "" #: lib/pychess/widgets/gamewidget.py:204 msgid "" "This game can be automatically aborted without rating loss because there has" " not yet been two moves made" msgstr "" #: lib/pychess/widgets/gamewidget.py:206 msgid "Offer Abort" msgstr "" #: lib/pychess/widgets/gamewidget.py:208 msgid "" "Your opponent must agree to abort the game because there has been two or " "more moves made" msgstr "" #: lib/pychess/widgets/gamewidget.py:226 msgid "This game can not be adjourned because one or both players are guests" msgstr "" #: lib/pychess/widgets/gamewidget.py:243 msgid "Claim Draw" msgstr "" #: lib/pychess/widgets/gamewidget.py:325 msgid "Pause" msgstr "" #: lib/pychess/widgets/gamewidget.py:326 msgid "Resume" msgstr "" #: lib/pychess/widgets/gamewidget.py:328 msgid "Offer Pause" msgstr "" #: lib/pychess/widgets/gamewidget.py:329 msgid "Offer Resume" msgstr "" #: lib/pychess/widgets/gamewidget.py:333 msgid "Undo" msgstr "" #: lib/pychess/widgets/gamewidget.py:335 msgid "Offer Undo" msgstr "" #: lib/pychess/widgets/gamewidget.py:550 msgid " has lagged for 30 seconds" msgstr "" #: lib/pychess/widgets/gamewidget.py:566 msgid " is lagging heavily but hasn't disconnected" msgstr "" #: lib/pychess/widgets/gamewidget.py:567 msgid "Continue to wait for opponent, or try to adjourn the game?" msgstr "" #: lib/pychess/widgets/gamewidget.py:575 msgid "Wait" msgstr "" #: lib/pychess/widgets/gamewidget.py:576 msgid "Adjourn" msgstr "" #: lib/pychess/widgets/gamewidget.py:648 msgid "Jump to initial position" msgstr "" #: lib/pychess/widgets/gamewidget.py:653 msgid "Step back one move" msgstr "" #: lib/pychess/widgets/gamewidget.py:658 msgid "Go back to the main line" msgstr "" #: lib/pychess/widgets/gamewidget.py:664 msgid "Step forward one move" msgstr "" #: lib/pychess/widgets/gamewidget.py:669 msgid "Jump to latest position" msgstr "" #: lib/pychess/widgets/gamewidget.py:903 msgid "PyChess was unable to load your panel settings" msgstr "" #: lib/pychess/widgets/gamewidget.py:904 msgid "" "Your panel settings have been reset. If this problem repeats, you should " "report it to the developers" msgstr "" #: lib/pychess/widgets/ionest.py:67 lib/pychess/widgets/newGameDialog.py:389 #: lib/pychess/widgets/TaskerManager.py:210 msgid "You" msgstr "" #: lib/pychess/widgets/ionest.py:70 lib/pychess/widgets/newGameDialog.py:390 #: lib/pychess/widgets/preferencesDialog.py:61 #: lib/pychess/widgets/TaskerManager.py:213 msgid "Guest" msgstr "" #: lib/pychess/widgets/ionest.py:93 msgid "Error loading game" msgstr "" #: lib/pychess/widgets/ionest.py:127 lib/pychess/widgets/newGameDialog.py:480 msgid "Open Game" msgstr "" #: lib/pychess/widgets/ionest.py:137 msgid "All Files" msgstr "" #: lib/pychess/widgets/ionest.py:140 msgid "Detect type automatically" msgstr "" #: lib/pychess/widgets/ionest.py:146 msgid "All Chess Files" msgstr "" #: lib/pychess/widgets/ionest.py:228 msgid "Save Game" msgstr "" #: lib/pychess/widgets/ionest.py:228 msgid "Export position" msgstr "" #: lib/pychess/widgets/ionest.py:232 lib/pychess/widgets/ionest.py:360 msgid "vs." msgstr "" #: lib/pychess/widgets/ionest.py:249 #, python-format msgid "Unknown file type '%s'" msgstr "" #: lib/pychess/widgets/ionest.py:250 #, python-format msgid "" "Was unable to save '%(uri)s' as PyChess doesn't know the format " "'%(ending)s'." msgstr "" #: lib/pychess/widgets/ionest.py:266 #, python-format msgid "Unable to save file '%s'" msgstr "" #: lib/pychess/widgets/ionest.py:268 msgid "" "You don't have the necessary rights to save the file.\n" "Please ensure that you have given the right path and try again." msgstr "" #: lib/pychess/widgets/ionest.py:276 msgid "_Replace" msgstr "" #: lib/pychess/widgets/ionest.py:280 msgid "File exists" msgstr "" #: lib/pychess/widgets/ionest.py:282 #, python-format msgid "" "A file named '%s' already exists. Would you like to replace " "it?" msgstr "" #: lib/pychess/widgets/ionest.py:283 #, python-format msgid "" "The file already exists in '%s'. If you replace it, its content will be " "overwritten." msgstr "" #: lib/pychess/widgets/ionest.py:299 msgid "Could not save the file" msgstr "" #: lib/pychess/widgets/ionest.py:300 msgid "PyChess was not able to save the game" msgstr "" #: lib/pychess/widgets/ionest.py:301 #, python-format msgid "The error was: %s" msgstr "" #: lib/pychess/widgets/ionest.py:325 #, python-format msgid "There is %d game with unsaved moves." msgid_plural "There are %d games with unsaved moves." msgstr[0] "" #: lib/pychess/widgets/ionest.py:328 msgid "Save moves before closing?" msgstr "" #: lib/pychess/widgets/ionest.py:339 msgid "Unable to save to configured file. Save the games before closing?" msgstr "" #: lib/pychess/widgets/ionest.py:366 #, python-format msgid "_Save %d document" msgid_plural "_Save %d documents" msgstr[0] "" #: lib/pychess/widgets/ionest.py:412 msgid "Save the current game before you close it?" msgstr "" #: lib/pychess/widgets/ionest.py:420 msgid "" "Unable to save to configured file. Save the current game before you close " "it?" msgstr "" #: lib/pychess/widgets/ionest.py:434 msgid "" "It is not possible later to continue the game,\n" "if you don't save it." msgstr "" #: lib/pychess/widgets/LogDialog.py:26 msgid "PyChess Information Window" msgstr "" #: lib/pychess/widgets/LogDialog.py:184 lib/pychess/widgets/LogDialog.py:188 msgid "of" msgstr "" #: lib/pychess/widgets/newGameDialog.py:84 #: lib/pychess/widgets/newGameDialog.py:85 msgid "Human Being" msgstr "" #: lib/pychess/widgets/newGameDialog.py:155 msgid "Rapid" msgstr "" #: lib/pychess/widgets/newGameDialog.py:224 msgid "Minutes:" msgstr "" #: lib/pychess/widgets/newGameDialog.py:228 msgid "Gain:" msgstr "" #: lib/pychess/widgets/newGameDialog.py:241 #, python-format msgid "%(name)s %(minutes)d min + %(gain)d sec/move" msgstr "" #: lib/pychess/widgets/newGameDialog.py:244 #, python-format msgid "%(name)s %(minutes)d min %(gain)d sec/move" msgstr "" #: lib/pychess/widgets/newGameDialog.py:247 #, python-format msgid "%(name)s %(minutes)d min" msgstr "" #: lib/pychess/widgets/newGameDialog.py:265 msgid "Odds" msgstr "" #: lib/pychess/widgets/newGameDialog.py:269 msgid "Asian variants" msgstr "" #: lib/pychess/widgets/newGameDialog.py:301 msgid " chess" msgstr "" #: lib/pychess/widgets/newGameDialog.py:682 msgid "Type or paste PGN game or FEN positions here" msgstr "" #: lib/pychess/widgets/newGameDialog.py:725 msgid "Enter Game" msgstr "" #: lib/pychess/widgets/preferencesDialog.py:123 msgid "Select book file" msgstr "" #: lib/pychess/widgets/preferencesDialog.py:128 msgid "Opening books" msgstr "" #: lib/pychess/widgets/preferencesDialog.py:156 msgid "Select Gaviota TB path" msgstr "" #: lib/pychess/widgets/preferencesDialog.py:331 msgid "Open Sound File" msgstr "" #: lib/pychess/widgets/preferencesDialog.py:341 msgid "Sound files" msgstr "" #: lib/pychess/widgets/preferencesDialog.py:485 msgid "Undescribed panel" msgstr "" #: lib/pychess/widgets/preferencesDialog.py:678 msgid "Select auto save path" msgstr "" #: lib/pychess/widgets/tipOfTheDay.py:51 msgid "" "You can start a new game by Game > New Game, in New Game " "window do you can choose Players, Time Control and Chess " "Variants." msgstr "" #: lib/pychess/widgets/tipOfTheDay.py:52 msgid "" "You can choose from 20 different difficulties to play against the computer." msgstr "" #: lib/pychess/widgets/tipOfTheDay.py:53 msgid "" "Chess Variants are like the pieces of the last line will be placed on the " "board." msgstr "" #: lib/pychess/widgets/tipOfTheDay.py:54 msgid "" "To save a game Game > Save Game As, give the filename and " "choose where you want to be saved. At the bottom choose extension type of " "the file, and Save." msgstr "" #: lib/pychess/widgets/tipOfTheDay.py:55 msgid "" "Do you know that you can call flag when the clock is with you, " "Actions > Call Flag." msgstr "" #: lib/pychess/widgets/tipOfTheDay.py:56 msgid "Pressing Ctrl+Z to offer opponent the possible rollback moves." msgstr "" #: lib/pychess/widgets/tipOfTheDay.py:57 msgid "" "To play on Fullscreen mode, just type F11. Coming back, F11 " "again." msgstr "" #: lib/pychess/widgets/tipOfTheDay.py:58 msgid "Hint mode analyzing your game, enable this type Ctrl+H." msgstr "" #: lib/pychess/widgets/tipOfTheDay.py:59 msgid "" "Spy mode analyzing the oponnent game, enable this type Ctrl+Y." msgstr "" #: lib/pychess/widgets/tipOfTheDay.py:60 msgid "" "You can play chess listening to the sounds of the game, for that, " "Settings > Preferences > Sound tab, enable Use " "sounds in PyChess and choose your preferred sounds." msgstr "" #: lib/pychess/widgets/tipOfTheDay.py:61 msgid "" "Do you know that you can help translate Pychess in your language, " "Help > Translate Pychess." msgstr "" #: lib/pychess/widgets/tipOfTheDay.py:62 msgid "" "Do you know that it is possible to finish a chess game in just 2 turns?" msgstr "" #: lib/pychess/widgets/tipOfTheDay.py:63 msgid "" "Do you know that the number of possible chess games exceeds the number of " "atoms in the Universe?" msgstr "" #: lib/pychess/ic/managers/ChatManager.py:184 msgid "Shout" msgstr "" #: lib/pychess/ic/managers/ChatManager.py:185 msgid "Chess Shout" msgstr "" #: lib/pychess/ic/managers/ChatManager.py:195 #, python-format msgid "Unofficial channel %d" msgstr "" #: lib/pychess/Utils/lutils/LBoard.py:152 #, python-format msgid "" "FEN needs 6 data fields. \n" "\n" "%s" msgstr "" #: lib/pychess/Utils/lutils/LBoard.py:154 #, python-format msgid "" "FEN needs at least 2 data fields in fenstr. \n" "\n" "%s" msgstr "" #: lib/pychess/Utils/lutils/LBoard.py:175 #, python-format msgid "" "Needs 7 slashes in piece placement field. \n" "\n" "%s" msgstr "" #: lib/pychess/Utils/lutils/LBoard.py:178 #, python-format msgid "" "Active color field must be one of w or b. \n" "\n" "%s" msgstr "" #: lib/pychess/Utils/lutils/LBoard.py:189 #, python-format msgid "" "Castling availability field is not legal. \n" "\n" "%s" msgstr "" #: lib/pychess/Utils/lutils/LBoard.py:192 #, python-format msgid "" "En passant cord is not legal. \n" "\n" "%s" msgstr "" #: lib/pychess/Utils/lutils/lmove.py:260 msgid "invalid promoted piece" msgstr "" #: lib/pychess/Utils/lutils/lmove.py:272 msgid "the move needs a piece and a cord" msgstr "" #: lib/pychess/Utils/lutils/lmove.py:306 lib/pychess/Utils/lutils/lmove.py:556 msgid "promotion move without promoted piece is incorrect" msgstr "" #: lib/pychess/Utils/lutils/lmove.py:312 #, python-format msgid "the captured cord (%s) is incorrect" msgstr "" #: lib/pychess/Utils/lutils/lmove.py:323 #, python-format msgid "the end cord (%s) is incorrect" msgstr "" #: lib/pychess/Utils/lutils/strateval.py:24 sidepanel/commentPanel.py:191 #: sidepanel/commentPanel.py:208 msgid "and" msgstr "" #: lib/pychess/Utils/lutils/strateval.py:43 msgid "draws" msgstr "" #: lib/pychess/Utils/lutils/strateval.py:45 msgid "mates" msgstr "" #: lib/pychess/Utils/lutils/strateval.py:49 msgid "puts opponent in check" msgstr "" #: lib/pychess/Utils/lutils/strateval.py:73 msgid "improves king safety" msgstr "" #: lib/pychess/Utils/lutils/strateval.py:75 msgid "slightly improves king safety" msgstr "" #: lib/pychess/Utils/lutils/strateval.py:108 msgid "moves a rook to an open file" msgstr "" #: lib/pychess/Utils/lutils/strateval.py:109 msgid "moves an rook to a half-open file" msgstr "" #: lib/pychess/Utils/lutils/strateval.py:119 #: lib/pychess/Utils/lutils/strateval.py:121 #: lib/pychess/Utils/lutils/strateval.py:124 #: lib/pychess/Utils/lutils/strateval.py:126 #, python-format msgid "moves bishop into fianchetto: %s" msgstr "" #: lib/pychess/Utils/lutils/strateval.py:132 #, python-format msgid "promotes a Pawn to a %s" msgstr "" #: lib/pychess/Utils/lutils/strateval.py:135 msgid "castles" msgstr "" #: lib/pychess/Utils/lutils/strateval.py:158 msgid "takes back material" msgstr "" #: lib/pychess/Utils/lutils/strateval.py:162 #: lib/pychess/Utils/lutils/strateval.py:170 msgid "sacrifies material" msgstr "" #: lib/pychess/Utils/lutils/strateval.py:164 msgid "exchanges material" msgstr "" #: lib/pychess/Utils/lutils/strateval.py:166 msgid "captures material" msgstr "" #: lib/pychess/Utils/lutils/strateval.py:291 #, python-format msgid "rescues a %s" msgstr "" #: lib/pychess/Utils/lutils/strateval.py:294 #, python-format msgid "threatens to win material by %s" msgstr "" #: lib/pychess/Utils/lutils/strateval.py:296 #, python-format msgid "increases the pressure on %s" msgstr "" #: lib/pychess/Utils/lutils/strateval.py:298 #, python-format msgid "defends %s" msgstr "" #: lib/pychess/Utils/lutils/strateval.py:336 #, python-format msgid "pins an enemy %(oppiece)s on the %(piece)s at %(cord)s" msgstr "" #: lib/pychess/Utils/lutils/strateval.py:369 #, python-format msgid "White has a new piece in outpost: %s" msgstr "" #: lib/pychess/Utils/lutils/strateval.py:377 #, python-format msgid "Black has a new piece in outpost: %s" msgstr "" #: lib/pychess/Utils/lutils/strateval.py:416 #, python-format msgid "%(color)s has a new passed pawn on %(cord)s" msgstr "" #: lib/pychess/Utils/lutils/strateval.py:470 msgid "half-open" msgstr "" #: lib/pychess/Utils/lutils/strateval.py:472 #, python-format msgid "in the %(x)s%(y)s file" msgstr "" #: lib/pychess/Utils/lutils/strateval.py:474 #, python-format msgid "in the %(x)s%(y)s files" msgstr "" #: lib/pychess/Utils/lutils/strateval.py:477 #, python-format msgid "%(color)s got a double pawn %(place)s" msgstr "" #: lib/pychess/Utils/lutils/strateval.py:478 #, python-format msgid "%(color)s got new double pawns %(place)s" msgstr "" #: lib/pychess/Utils/lutils/strateval.py:485 #, python-format msgid "%(color)s got an isolated pawn in the %(x)s file" msgid_plural "%(color)s got isolated pawns in the %(x)s files" msgstr[0] "" #: lib/pychess/Utils/lutils/strateval.py:492 #, python-format msgid "%s moves pawns into stonewall formation" msgstr "" #: lib/pychess/Utils/lutils/strateval.py:507 #: lib/pychess/Utils/lutils/strateval.py:514 #, python-format msgid "%s can no longer castle" msgstr "" #: lib/pychess/Utils/lutils/strateval.py:508 #: lib/pychess/Utils/lutils/strateval.py:515 #, python-format msgid "%s can no longer castle in queenside" msgstr "" #: lib/pychess/Utils/lutils/strateval.py:510 #: lib/pychess/Utils/lutils/strateval.py:517 #, python-format msgid "%s can no longer castle in kingside" msgstr "" #: lib/pychess/Utils/lutils/strateval.py:551 #, python-format msgid "%(opcolor)s has a new trapped bishop on %(cord)s" msgstr "" #: lib/pychess/Utils/lutils/strateval.py:573 #, python-format msgid "develops a pawn: %s" msgstr "" #: lib/pychess/Utils/lutils/strateval.py:574 #, python-format msgid "brings a pawn closer to the backrow: %s" msgstr "" #: lib/pychess/Utils/lutils/strateval.py:591 #, python-format msgid "brings a %(piece)s closer to enemy king: %(cord)s" msgstr "" #: lib/pychess/Utils/lutils/strateval.py:594 #, python-format msgid "develops a %(piece)s: %(cord)s" msgstr "" #: lib/pychess/Utils/lutils/strateval.py:612 #, python-format msgid "places a %(piece)s more active: %(cord)s" msgstr "" #: lib/pychess/Utils/lutils/strateval.py:638 msgid "White should do pawn storm in right" msgstr "" #: lib/pychess/Utils/lutils/strateval.py:640 msgid "Black should do pawn storm in left" msgstr "" #: lib/pychess/Utils/lutils/strateval.py:643 msgid "White should do pawn storm in left" msgstr "" #: lib/pychess/Utils/lutils/strateval.py:645 msgid "Black should do pawn storm in right" msgstr "" #: lib/pychess/Utils/lutils/strateval.py:671 msgid "Black has a rather cramped position" msgstr "" #: lib/pychess/Utils/lutils/strateval.py:673 msgid "Black has a slightly cramped position" msgstr "" #: lib/pychess/Utils/lutils/strateval.py:675 msgid "White has a rather cramped position" msgstr "" #: lib/pychess/Utils/lutils/strateval.py:677 msgid "White has a slightly cramped position" msgstr "" #: sidepanel/annotationPanel.py:26 msgid "Annotation" msgstr "" #: sidepanel/annotationPanel.py:29 msgid "Annotated game" msgstr "" #: sidepanel/annotationPanel.py:236 msgid "Copy PGN" msgstr "" #: sidepanel/annotationPanel.py:249 msgid "Add start comment" msgstr "" #: sidepanel/annotationPanel.py:254 msgid "Add comment" msgstr "" #: sidepanel/annotationPanel.py:258 sidepanel/annotationPanel.py:316 msgid "Edit comment" msgstr "" #: sidepanel/annotationPanel.py:269 msgid "Forced move" msgstr "" #: sidepanel/annotationPanel.py:274 msgid "Add move symbol" msgstr "" #: sidepanel/annotationPanel.py:280 msgid "Unclear position" msgstr "" #: sidepanel/annotationPanel.py:289 msgid "Zugzwang" msgstr "" #: sidepanel/annotationPanel.py:290 msgid "Development adv." msgstr "" #: sidepanel/annotationPanel.py:291 msgid "Initiative" msgstr "" #: sidepanel/annotationPanel.py:292 msgid "With attack" msgstr "" #: sidepanel/annotationPanel.py:293 msgid "Compensation" msgstr "" #: sidepanel/annotationPanel.py:294 msgid "Counterplay" msgstr "" #: sidepanel/annotationPanel.py:295 msgid "Time pressure" msgstr "" #: sidepanel/annotationPanel.py:300 msgid "Add evaluation symbol" msgstr "" #: sidepanel/annotationPanel.py:304 msgid "Remove symbols" msgstr "" #: sidepanel/annotationPanel.py:911 #, python-format msgid "round %s" msgstr "" #: sidepanel/bookPanel.py:21 msgid "Hints" msgstr "" #: sidepanel/bookPanel.py:25 msgid "" "The hint panel will provide computer advice during each stage of the game" msgstr "" #: sidepanel/bookPanel.py:27 msgid "Official PyChess panel." msgstr "" #: sidepanel/bookPanel.py:87 msgid "Opening Book" msgstr "" #: sidepanel/bookPanel.py:88 msgid "" "The opening book will try to inspire you during the opening phase of the " "game by showing you common moves made by chess masters" msgstr "" #: sidepanel/bookPanel.py:139 #, python-format msgid "Analysis by %s" msgstr "" #: sidepanel/bookPanel.py:140 #, python-format msgid "" "%s will try to predict which move is best and which side has the advantage" msgstr "" #: sidepanel/bookPanel.py:142 #, python-format msgid "Threat analysis by %s" msgstr "" #: sidepanel/bookPanel.py:143 #, python-format msgid "" "%s will identify what threats would exist if it were your opponent's turn to" " move" msgstr "" #: sidepanel/bookPanel.py:159 sidepanel/bookPanel.py:269 msgid "Calculating..." msgstr "" #: sidepanel/bookPanel.py:300 msgid "" "Engine scores are in units of pawns, from White's point of view. Double " "clicking on analysis lines you can insert them into Annotation panel as " "variations." msgstr "" #: sidepanel/bookPanel.py:302 msgid "" "Adding suggestions can help you find ideas, but slows down the computer's " "analysis." msgstr "" #: sidepanel/bookPanel.py:311 msgid "Endgame Table" msgstr "" #: sidepanel/bookPanel.py:315 msgid "" "The endgame table will show exact analysis when there are few pieces on the " "board." msgstr "" #: sidepanel/bookPanel.py:364 sidepanel/bookPanel.py:367 #, python-format msgid "Mate in %d" msgstr "" #: sidepanel/bookPanel.py:554 msgid "" "In this position,\n" "there is no legal move." msgstr "" #: sidepanel/chatPanel.py:21 msgid "" "The chat panel lets you communicate with your opponent during the game, " "assuming he or she is interested" msgstr "" #: sidepanel/commentPanel.py:16 msgid "Comments" msgstr "" #: sidepanel/commentPanel.py:20 msgid "The comments panel will try to analyze and explain the moves played" msgstr "" #: sidepanel/commentPanel.py:121 msgid "Initial position" msgstr "" #: sidepanel/commentPanel.py:254 #, python-format msgid "%(color)s moves a %(piece)s to %(cord)s" msgstr "" #: sidepanel/engineOutputPanel.py:15 msgid "Engines" msgstr "" #: sidepanel/engineOutputPanel.py:20 msgid "" "The engine output panel shows the thinking output of chess engines (computer" " players) during a game" msgstr "" #: sidepanel/engineOutputPanel.py:44 msgid "No chess engines (computer players) are participating in this game." msgstr "" #: sidepanel/historyPanel.py:10 msgid "Move History" msgstr "" #: sidepanel/historyPanel.py:13 msgid "" "The moves sheet keeps track of the players' moves and lets you navigate " "through the game history" msgstr "" #: sidepanel/scorePanel.py:15 msgid "Score" msgstr "" #: sidepanel/scorePanel.py:19 msgid "" "The score panel tries to evaluate the positions and shows you a graph of the" " game progress" msgstr "" pychess-0.12.2/lang/fa/LC_MESSAGES/pychess.mo0000644000175000017470000000163312653231273020666 0ustar tamasusers00000000000000 | ! *6=CHPV\ cou' =K T ` jx New GamePreferencesRatingSite:Time_Accept_Game_Help_Name:_Start Game_ViewProject-Id-Version: pychess Report-Msgid-Bugs-To: POT-Creation-Date: 2016-01-27 13:28+0100 PO-Revision-Date: 2016-01-28 08:56+0000 Last-Translator: slav0nic Language-Team: Persian (http://www.transifex.com/gbtami/pychess/language/fa/) MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Language: fa Plural-Forms: nplurals=1; plural=0; بازی جدیدتنظیمات‌باقی‌ماندهپایگاه:زمان_پذیرش_بازی_راهنمانام:_شروع بازی_نماpychess-0.12.2/lang/ar/0000755000175000017470000000000012653231274015100 5ustar tamasusers00000000000000pychess-0.12.2/lang/ar/LC_MESSAGES/0000755000175000017470000000000012653231274016665 5ustar tamasusers00000000000000pychess-0.12.2/lang/ar/LC_MESSAGES/pychess.po0000644000175000017470000024422312653216174020714 0ustar tamasusers00000000000000# SOME DESCRIPTIVE TITLE. # Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER # This file is distributed under the same license as the pychess package. # # Translators: # FIRST AUTHOR , 2008 msgid "" msgstr "" "Project-Id-Version: pychess\n" "Report-Msgid-Bugs-To: \n" "POT-Creation-Date: 2016-01-27 13:28+0100\n" "PO-Revision-Date: 2016-01-28 08:56+0000\n" "Last-Translator: slav0nic \n" "Language-Team: Arabic (http://www.transifex.com/gbtami/pychess/language/ar/)\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" "Language: ar\n" "Plural-Forms: nplurals=6; plural=n==0 ? 0 : n==1 ? 1 : n==2 ? 2 : n%100>=3 && n%100<=10 ? 3 : n%100>=11 && n%100<=99 ? 4 : 5;\n" # "Plural-Forms: nplurals=INTEGER; plural=EXPRESSION;\n" #: glade/analyze_game.glade:22 msgid "Analyze game" msgstr "" #: glade/analyze_game.glade:87 msgid "Use analyzer:" msgstr "" #: glade/analyze_game.glade:122 glade/PyChess.glade:2054 msgid "Maximum analysis time in seconds:" msgstr "" #: glade/analyze_game.glade:163 msgid "" "If the analyzer finds a move where the evaluation difference (the difference" " between the evaluation for the move it thinks is the best move and the " "evaluation for the move made in the game) exceeds this value, it will add an" " annotation for that move (consisting of the engine's Principal Variation " "for the move) to the Annotation panel" msgstr "" #: glade/analyze_game.glade:164 msgid "Variation annotation creation threshold in centipawns:" msgstr "" #: glade/analyze_game.glade:198 msgid "Analyze from current position" msgstr "" #: glade/analyze_game.glade:214 msgid "Add threatening variation lines " msgstr "" #: glade/analyze_game.glade:229 glade/PyChess.glade:1459 msgid "Colorize analyzed moves" msgstr "" #: glade/analyze_game.glade:244 glade/PyChess.glade:1495 msgid "Show evaluation values" msgstr "" #: glade/discovererDialog.glade:18 msgid "PyChess is discovering your engines. Please wait." msgstr "" #: glade/discovererDialog.glade:77 msgid "PyChess.py:" msgstr "" #: glade/discovererDialog.glade:89 msgid "ShredderLinuxChess:" msgstr "" #: glade/discovererDialog.glade:101 msgid "gnuchess:" msgstr "" #: glade/fics_logon.glade:7 msgid "PyChess - Connect to Internet Chess" msgstr "PyChess - اتصل بالشطرنج على الانترنت" #: glade/fics_logon.glade:47 msgid "Connect to the Free Online Chess Server" msgstr "" #: glade/fics_logon.glade:129 glade/taskers.glade:394 msgid "_Password:" msgstr "كلمة المرور_" #: glade/fics_logon.glade:143 msgid "_Name:" msgstr "_الاسم:" #: glade/fics_logon.glade:191 msgid "Log on as _Guest" msgstr "الدخول بحساب زائر" #: glade/fics_logon.glade:227 msgid "Host:" msgstr "" #: glade/fics_logon.glade:259 msgid "Po_rts:" msgstr "" #: glade/fics_logon.glade:271 msgid "Auto login on startup" msgstr "" #: glade/fics_logon.glade:385 msgid "S_ign up" msgstr "" #: glade/fics_lounge.glade:35 msgid "Challenge: " msgstr "" #: glade/fics_lounge.glade:97 msgid "Send Challenge" msgstr "" #: glade/fics_lounge.glade:133 msgid "Challenge:" msgstr "" #: glade/fics_lounge.glade:327 glade/fics_lounge.glade:2078 msgid "Lightning:" msgstr "" #: glade/fics_lounge.glade:351 glade/fics_lounge.glade:2102 msgid "Standard:" msgstr "" #: glade/fics_lounge.glade:375 glade/fics_lounge.glade:2126 msgid "Blitz:" msgstr "" #: glade/fics_lounge.glade:400 msgid "2 min, Fischer Random, Black" msgstr "" #: glade/fics_lounge.glade:422 msgid "10 min + 6 sec/move, White" msgstr "" #: glade/fics_lounge.glade:444 msgid "5 min" msgstr "" #: glade/fics_lounge.glade:480 msgid "Edit Seek" msgstr "" #: glade/fics_lounge.glade:584 lib/pychess/ic/ICLounge.py:2208 #: lib/pychess/ic/__init__.py:101 lib/pychess/Utils/GameModel.py:206 msgid "Untimed" msgstr "" #: glade/fics_lounge.glade:637 msgid "Minutes: " msgstr "" #: glade/fics_lounge.glade:665 msgid " Gain: " msgstr "" #: glade/fics_lounge.glade:703 msgid "Time control: " msgstr "" #: glade/fics_lounge.glade:716 lib/pychess/ic/FICSObjects.py:56 #: lib/pychess/ic/ICLounge.py:1137 lib/pychess/ic/ICLounge.py:2208 #: lib/pychess/ic/__init__.py:99 msgid "Standard" msgstr "" #: glade/fics_lounge.glade:757 glade/newInOut.glade:633 msgid "Time Control" msgstr "" #: glade/fics_lounge.glade:814 glade/fics_lounge.glade:1346 msgid "Don't care" msgstr "" #: glade/fics_lounge.glade:879 msgid "Your strength: " msgstr "" #: glade/fics_lounge.glade:921 msgid "(Blitz)" msgstr "" #: glade/fics_lounge.glade:951 msgid "Opponent's strength: " msgstr "" #: glade/fics_lounge.glade:1055 msgid "" "When this button is in the \"locked\" state, the relationship\n" "between \"Opponent's strength\" and \"Your strength\" will be\n" "preserved when \n" "a) your rating for the type of game sought has changed\n" "b) you change the variant or the time control" msgstr "" #: glade/fics_lounge.glade:1095 msgid "Center:" msgstr "" #: glade/fics_lounge.glade:1134 msgid "1200" msgstr "" #: glade/fics_lounge.glade:1188 msgid "Tolerance:" msgstr "" #: glade/fics_lounge.glade:1243 lib/pychess/ic/ICLounge.py:2452 msgid "Hide" msgstr "" #: glade/fics_lounge.glade:1289 msgid "Opponent Strength" msgstr "" #: glade/fics_lounge.glade:1386 lib/pychess/Database/gamelist.py:40 #: lib/pychess/ic/ICLounge.py:1357 lib/pychess/ic/ICLounge.py:1557 #: lib/pychess/ic/ICLounge.py:2108 lib/pychess/Utils/repr.py:10 #: lib/pychess/widgets/ChessClock.py:40 #: lib/pychess/widgets/TaskerManager.py:153 msgid "White" msgstr "" #: glade/fics_lounge.glade:1414 lib/pychess/Database/gamelist.py:40 #: lib/pychess/ic/ICLounge.py:1358 lib/pychess/ic/ICLounge.py:1558 #: lib/pychess/ic/ICLounge.py:2110 lib/pychess/Utils/repr.py:10 #: lib/pychess/widgets/ChessClock.py:40 #: lib/pychess/widgets/TaskerManager.py:154 msgid "Black" msgstr "" #: glade/fics_lounge.glade:1453 msgid "Your Color" msgstr "" #: glade/fics_lounge.glade:1512 msgid "Play normal chess rules" msgstr "" #: glade/fics_lounge.glade:1552 msgid "Play" msgstr "" #: glade/fics_lounge.glade:1618 glade/newInOut.glade:833 msgid "Chess Variant" msgstr "" #: glade/fics_lounge.glade:1676 msgid "Rated game" msgstr "" #: glade/fics_lounge.glade:1692 msgid "Manually accept opponent" msgstr "" #: glade/fics_lounge.glade:1722 msgid "Options" msgstr "" #: glade/fics_lounge.glade:1750 msgid "PyChess - Internet Chess: FICS" msgstr "Pychess - شطرنج الإنترنت: FICS" #: glade/fics_lounge.glade:1823 msgid "_Clear Seeks" msgstr "" #: glade/fics_lounge.glade:1847 msgid "_Accept" msgstr "موافقة_" #: glade/fics_lounge.glade:1871 msgid "_Decline" msgstr "" #: glade/fics_lounge.glade:2151 msgid "2 min, Fischer Random, 1800↓, Black" msgstr "" #: glade/fics_lounge.glade:2172 msgid "10 min + 6 sec/move, 1400↑, White" msgstr "" #: glade/fics_lounge.glade:2193 msgid "5 min, 1200-1800, Manual" msgstr "" #: glade/fics_lounge.glade:2247 msgid "Send all seeks" msgstr "" #: glade/fics_lounge.glade:2301 msgid "Send seek" msgstr "أرسل طلب" #: glade/fics_lounge.glade:2337 msgid "Create Seek" msgstr "" #: glade/fics_lounge.glade:2353 msgid "_Seeks / Challenges" msgstr "" #: glade/fics_lounge.glade:2374 lib/pychess/ic/ICLounge.py:472 #: lib/pychess/ic/ICLounge.py:670 lib/pychess/ic/ICLounge.py:1357 #: lib/pychess/ic/ICLounge.py:1358 msgid "Rating" msgstr "التقييم" #: glade/fics_lounge.glade:2399 msgid "Time" msgstr "الوقت" #: glade/fics_lounge.glade:2419 msgid "Seek _Graph" msgstr "" #: glade/fics_lounge.glade:2444 msgid "0 Players Ready" msgstr "" #: glade/fics_lounge.glade:2496 msgid "Challenge" msgstr "" #: glade/fics_lounge.glade:2549 glade/fics_lounge.glade:2735 msgid "Observe" msgstr "" #: glade/fics_lounge.glade:2602 msgid "Start Private Chat" msgstr "" #: glade/fics_lounge.glade:2659 msgid "_Player List" msgstr "" #: glade/fics_lounge.glade:2792 msgid "_Game List" msgstr "" #: glade/fics_lounge.glade:2847 msgid "_My games" msgstr "" #: glade/fics_lounge.glade:2904 glade/PyChess.glade:841 msgid "Offer _Resume" msgstr "" #: glade/fics_lounge.glade:2962 glade/PyChess.glade:880 msgid "R_esign" msgstr "" #: glade/fics_lounge.glade:3006 glade/PyChess.glade:820 msgid "Offer _Draw" msgstr "عرض _تعادل" #: glade/fics_lounge.glade:3050 msgid "Offer A_bort" msgstr "" #: glade/fics_lounge.glade:3107 msgid "Pre_view" msgstr "" #: glade/fics_lounge.glade:3151 msgid "Examine" msgstr "" #: glade/fics_lounge.glade:3208 msgid "_Archived" msgstr "" #: glade/fics_lounge.glade:3313 msgid "News" msgstr "الأخبار" #: glade/fics_lounge.glade:3345 msgid "Show Console" msgstr "" #: glade/fics_lounge.glade:3359 msgid "Show _Chat" msgstr "" #: glade/fics_lounge.glade:3373 msgid "_Log Off" msgstr "" #: glade/fics_lounge.glade:3393 msgid "Tools" msgstr "أدوات" #: glade/fics_lounge.glade:3428 msgid "Asymmetric Random " msgstr "" #: glade/findbar.glade:6 msgid "window1" msgstr "" #: glade/findbar.glade:21 msgid "0 of 0" msgstr "" #: glade/findbar.glade:66 msgid "Search:" msgstr "" #: glade/findbar.glade:134 msgid "_Previous" msgstr "" #: glade/findbar.glade:192 msgid "_Next" msgstr "" #: glade/newInOut.glade:45 lib/pychess/widgets/newGameDialog.py:445 msgid "New Game" msgstr "لعبة جديدة" #: glade/newInOut.glade:108 msgid "_Start Game" msgstr "بدأ اللعبة_" #: glade/newInOut.glade:130 msgid "Copy FEN" msgstr "" #: glade/newInOut.glade:143 msgid "Clear" msgstr "" #: glade/newInOut.glade:156 msgid "Paste FEN" msgstr "" #: glade/newInOut.glade:257 msgid "_Black player:" msgstr "" #: glade/newInOut.glade:274 msgid "_White player:" msgstr "" #: glade/newInOut.glade:385 msgid "Players" msgstr "اللاعبون" #: glade/newInOut.glade:436 msgid "_Untimed" msgstr "" #: glade/newInOut.glade:475 msgid "Blitz: 5 min" msgstr "" #: glade/newInOut.glade:526 msgid "Rapid: 15 min + 10 sec/move" msgstr "" #: glade/newInOut.glade:575 msgid "Normal: 40 min + 15 sec/move" msgstr "" #: glade/newInOut.glade:684 msgid "_Play Normal chess" msgstr "" #: glade/newInOut.glade:724 msgid "Play Fischer Random chess" msgstr "" #: glade/newInOut.glade:774 msgid "Play Losers chess" msgstr "" #: glade/newInOut.glade:919 msgid "Open Game" msgstr "" #: glade/newInOut.glade:1162 msgid "Initial Position" msgstr "" #: glade/newInOut.glade:1219 msgid "Enter Game Notation" msgstr "أدخل تأشيرة اللعبة" #: glade/newInOut.glade:1314 msgid "Halfmove clock" msgstr "" #: glade/newInOut.glade:1327 msgid "En passant line" msgstr "" #: glade/newInOut.glade:1339 msgid "Side to move" msgstr "" #: glade/newInOut.glade:1351 msgid "Move number" msgstr "" #: glade/newInOut.glade:1361 msgid "Black O-O" msgstr "" #: glade/newInOut.glade:1375 msgid "Black O-O-O" msgstr "" #: glade/newInOut.glade:1389 msgid "White O-O-O" msgstr "" #: glade/newInOut.glade:1403 msgid "White O-O" msgstr "" #: glade/promotion.glade:7 msgid "Promotion" msgstr "ترقية" #: glade/promotion.glade:49 lib/pychess/Utils/repr.py:12 msgid "Queen" msgstr "وزير" #: glade/promotion.glade:95 lib/pychess/Utils/repr.py:12 msgid "Rook" msgstr "قلعة" #: glade/promotion.glade:141 lib/pychess/Utils/repr.py:12 msgid "Bishop" msgstr "فيل" #: glade/promotion.glade:187 lib/pychess/Utils/repr.py:12 msgid "Knight" msgstr "الحصان" #: glade/promotion.glade:233 lib/pychess/Utils/repr.py:12 msgid "King" msgstr "" #: glade/promotion.glade:265 msgid "Promote pawn to what?" msgstr "رهينة لتعزيز ما؟" #: glade/PyChess.glade:9 msgid "Chess client" msgstr "" #: glade/PyChess.glade:44 msgid "Game information" msgstr "معلومات اللعبة" #: glade/PyChess.glade:164 msgid "Event:" msgstr "مناسبة" #: glade/PyChess.glade:178 msgid "Site:" msgstr "موقع" #: glade/PyChess.glade:204 msgid "Round:" msgstr "جولة" #: glade/PyChess.glade:237 msgid "White:" msgstr "" #: glade/PyChess.glade:249 msgid "Black:" msgstr "" #: glade/PyChess.glade:302 msgid "Game data" msgstr "بيانات اللعبة" #: glade/PyChess.glade:357 msgid "Date of game" msgstr "بيانات اللعبة" #: glade/PyChess.glade:495 msgid "_Game" msgstr "لعبة_" #: glade/PyChess.glade:502 msgid "_New Game" msgstr "لعبة جديدة_" #: glade/PyChess.glade:515 msgid "Play _Internet Chess" msgstr "" #: glade/PyChess.glade:534 msgid "_Load Game" msgstr "تحميل لعبة_" #: glade/PyChess.glade:550 msgid "Load _Recent Game" msgstr "" #: glade/PyChess.glade:558 msgid "Open _Database" msgstr "" #: glade/PyChess.glade:569 lib/pychess/widgets/newGameDialog.py:615 msgid "Setup Position" msgstr "" #: glade/PyChess.glade:579 msgid "Enter Game _Notation" msgstr "" #: glade/PyChess.glade:592 msgid "_Save Game" msgstr "حفظ اللعبة_" #: glade/PyChess.glade:606 msgid "Save Game _As" msgstr "حفظ اللعبة باسم_" #: glade/PyChess.glade:624 msgid "Share Game" msgstr "" #: glade/PyChess.glade:630 msgid "_Export Position" msgstr "" #: glade/PyChess.glade:644 msgid "_Analyze Game" msgstr "" #: glade/PyChess.glade:678 msgid "Player _Rating" msgstr "ترتيب_ اللاعب" #: glade/PyChess.glade:723 msgid "_Edit" msgstr "" #: glade/PyChess.glade:734 msgid "_Copy PGN" msgstr "" #: glade/PyChess.glade:746 msgid "_Copy FEN" msgstr "" #: glade/PyChess.glade:763 msgid "_Engines" msgstr "" #: glade/PyChess.glade:789 msgid "_Actions" msgstr "إجراءات_" #: glade/PyChess.glade:800 msgid "Offer _Abort" msgstr "" #: glade/PyChess.glade:810 msgid "Offer Ad_journment" msgstr "" #: glade/PyChess.glade:831 msgid "Offer _Pause" msgstr "" #: glade/PyChess.glade:847 msgid "Offer _Undo" msgstr "" #: glade/PyChess.glade:870 msgid "_Call Flag" msgstr "طلب علم_" #: glade/PyChess.glade:890 msgid "Ask to _Move" msgstr "" #: glade/PyChess.glade:905 msgid "Auto Call _Flag" msgstr "" #: glade/PyChess.glade:918 msgid "_View" msgstr "_عرض" #: glade/PyChess.glade:925 msgid "_Rotate Board" msgstr "_تغيير إتجاه لوحة اللعب" #: glade/PyChess.glade:939 msgid "_Fullscreen" msgstr "" #: glade/PyChess.glade:952 msgid "Leave _Fullscreen" msgstr "" #: glade/PyChess.glade:969 msgid "_Show Sidepanels" msgstr "" #: glade/PyChess.glade:980 msgid "_Log Viewer" msgstr "_عارض التقارير" #: glade/PyChess.glade:997 msgid "_Hint mode" msgstr "_إختيار طريقة" #: glade/PyChess.glade:1009 msgid "Sp_y mode" msgstr "طريقة Sp_y" #: glade/PyChess.glade:1024 msgid "_Help" msgstr "_مساعدة" #: glade/PyChess.glade:1034 msgid "About Chess" msgstr "بخصوص الشطرنج" #: glade/PyChess.glade:1043 msgid "How to Play" msgstr "" #: glade/PyChess.glade:1052 msgid "Translate PyChess" msgstr "" #: glade/PyChess.glade:1058 msgid "Tip of the Day" msgstr "" #: glade/PyChess.glade:1153 msgid "Default" msgstr "" #: glade/PyChess.glade:1156 msgid "Knights" msgstr "" #: glade/PyChess.glade:1167 lib/pychess/widgets/preferencesDialog.py:349 msgid "Beep" msgstr "" #: glade/PyChess.glade:1170 lib/pychess/widgets/preferencesDialog.py:350 msgid "Select sound file..." msgstr "" #: glade/PyChess.glade:1173 lib/pychess/widgets/preferencesDialog.py:348 msgid "No sound" msgstr "" #: glade/PyChess.glade:1180 msgid "Preferences" msgstr "التفضيلات" #: glade/PyChess.glade:1218 msgid "The displayed name of the first human player, e.g., John." msgstr "" #: glade/PyChess.glade:1230 msgid "Name of _first human player:" msgstr "" #: glade/PyChess.glade:1259 msgid "The displayed name of the guest player, e.g., Mary." msgstr "" #: glade/PyChess.glade:1271 msgid "Name of s_econd human player:" msgstr "" #: glade/PyChess.glade:1307 msgid "_Hide tabs when only one game is open" msgstr "_إخفاء علامات التبويب فقط عندما تكون اللعبة مفتوحة" #: glade/PyChess.glade:1312 msgid "" "If set, this hides the tab in the top of the playing window, when it is not " "needed." msgstr "" #: glade/PyChess.glade:1326 msgid "_Use main app closer [x] to close all games" msgstr "" #: glade/PyChess.glade:1331 msgid "" "If set, clicking on main application window closer first time it closes all " "games." msgstr "" #: glade/PyChess.glade:1345 msgid "Auto _rotate board to current human player" msgstr "" #: glade/PyChess.glade:1350 msgid "" "If set, the board will turn after each move, to show the natural view for " "the current player." msgstr "" #: glade/PyChess.glade:1364 msgid "Auto _promote to queen" msgstr "" #: glade/PyChess.glade:1369 msgid "If set, pawn promotes to queen without promotion dialog selection." msgstr "" #: glade/PyChess.glade:1383 msgid "Face _to Face display mode" msgstr "" #: glade/PyChess.glade:1388 msgid "" "If set, the black pieces will be head down, suitable for playing against " "friends on mobile devices." msgstr "" #: glade/PyChess.glade:1402 msgid "Sho_w cords" msgstr "" #: glade/PyChess.glade:1407 msgid "" "If set, the playing board will display labels and ranks for each chess " "field. These are usable in chess notation." msgstr "" #: glade/PyChess.glade:1421 msgid "Show _captured pieces" msgstr "" #: glade/PyChess.glade:1426 msgid "If set, the captured figurines will be shown next to the board." msgstr "" #: glade/PyChess.glade:1440 msgid "Prefer figures in _notation" msgstr "" #: glade/PyChess.glade:1445 msgid "" "If set, PyChess will use figures to express moved pieces, rather than " "uppercase letters." msgstr "" #: glade/PyChess.glade:1464 msgid "If set, PyChess will colorize suboptimal analyzed moves with red." msgstr "" #: glade/PyChess.glade:1477 msgid "Show elapsed move times" msgstr "" #: glade/PyChess.glade:1482 msgid "If set, the elapsed time that a player used for the move is shown." msgstr "" #: glade/PyChess.glade:1500 msgid "If set, the hint analyzer engine evaluation value is shown." msgstr "" #: glade/PyChess.glade:1526 msgid "General Options" msgstr "" #: glade/PyChess.glade:1560 msgid "F_ull board animation" msgstr "" #: glade/PyChess.glade:1565 msgid "Animate pieces, board rotation and more. Use this on fast machines." msgstr "" #: glade/PyChess.glade:1579 msgid "Only animate _moves" msgstr "" #: glade/PyChess.glade:1584 msgid "Only animate piece moves." msgstr "" #: glade/PyChess.glade:1599 msgid "No _animation" msgstr "" #: glade/PyChess.glade:1604 msgid "Never use animation. Use this on slow machines." msgstr "" #: glade/PyChess.glade:1632 msgid "Animation" msgstr "صور متحركة" #: glade/PyChess.glade:1651 msgid "_General" msgstr "" #: glade/PyChess.glade:1692 msgid "Use opening _book" msgstr "" #: glade/PyChess.glade:1697 msgid "If set, PyChess will suggest best opening moves on hint panel." msgstr "" #: glade/PyChess.glade:1724 msgid "Polyglot book file:" msgstr "" #: glade/PyChess.glade:1768 msgid "Use _local tablebases" msgstr "" #: glade/PyChess.glade:1773 msgid "" "If set, PyChess will show game results for different moves in positions containing 6 or less pieces.\n" "You can download tablebase files from:\n" "http://www.olympuschess.com/egtb/gaviota/" msgstr "" #: glade/PyChess.glade:1803 msgid "Gaviota TB path:" msgstr "" #: glade/PyChess.glade:1843 msgid "Use _online tablebases" msgstr "" #: glade/PyChess.glade:1848 msgid "" "If set, PyChess will show game results for different moves in positions containing 6 or less pieces.\n" "It will search positions from http://www.k4it.de/" msgstr "" #: glade/PyChess.glade:1870 msgid "Opening, endgame" msgstr "" #: glade/PyChess.glade:1904 msgid "Use _analyzer" msgstr "إستخدام _المحلل" #: glade/PyChess.glade:1946 msgid "" "The analyzer will run in the background and analyze the game. This is " "necessary for the hint mode to work" msgstr "" #: glade/PyChess.glade:1978 msgid "Use _inverted analyzer" msgstr "إستخدام _المحلل العكسي" #: glade/PyChess.glade:2020 msgid "" "The inverse analyzer will analyze the game as if your opponent was to move. " "This is necessary for the spy mode to work" msgstr "" #: glade/PyChess.glade:2096 msgid "Analyzing" msgstr "تحليل" #: glade/PyChess.glade:2118 msgid "_Hints" msgstr "" #: glade/PyChess.glade:2263 msgid "Uninstall" msgstr "" #: glade/PyChess.glade:2317 msgid "Ac_tive" msgstr "" #: glade/PyChess.glade:2367 msgid "Installed Sidepanels" msgstr "" #: glade/PyChess.glade:2382 msgid "Side_panels" msgstr "" #: glade/PyChess.glade:2440 msgid "Light Squares :" msgstr "" #: glade/PyChess.glade:2479 msgid "Dark Squares :" msgstr "" #: glade/PyChess.glade:2515 msgid "Reset Default Colours" msgstr "" #: glade/PyChess.glade:2551 msgid "Board Colours" msgstr "" #: glade/PyChess.glade:2610 msgid "Chess Sets" msgstr "" #: glade/PyChess.glade:2634 msgid "Themes" msgstr "" #: glade/PyChess.glade:2659 msgid "_Use sounds in PyChess" msgstr "_إستخدام الصوت" #: glade/PyChess.glade:2982 msgid "A player _checks:" msgstr "اللاعب الأول _تشك ملك" #: glade/PyChess.glade:2997 msgid "A player _moves:" msgstr "اللاعب الاول _تحرك" #: glade/PyChess.glade:3010 msgid "Game is _drawn:" msgstr "اللعبه إنتهت _بالتعادل" #: glade/PyChess.glade:3025 msgid "Game is _lost:" msgstr "_خسرت اللعبة" #: glade/PyChess.glade:3040 msgid "Game is _won:" msgstr "_ربحت اللعبة" #: glade/PyChess.glade:3055 msgid "A player c_aptures:" msgstr "" #: glade/PyChess.glade:3084 msgid "Game is _set-up:" msgstr "" #: glade/PyChess.glade:3136 msgid "_Observed moves:" msgstr "" #: glade/PyChess.glade:3151 msgid "Observed _ends:" msgstr "" #: glade/PyChess.glade:3265 msgid "Short on _time:" msgstr "" #: glade/PyChess.glade:3317 msgid "_Invalid move:" msgstr "" #: glade/PyChess.glade:3369 msgid "Activate alarm when _remaining sec is:" msgstr "" #: glade/PyChess.glade:3416 msgid "Play Sound When..." msgstr "تشغيل الصوت عند.." #: glade/PyChess.glade:3438 msgid "_Sounds" msgstr "" #: glade/PyChess.glade:3463 msgid "_Auto save finished games" msgstr "" #: glade/PyChess.glade:3497 msgid "Save files to:" msgstr "" #: glade/PyChess.glade:3525 msgid "Use name format:" msgstr "" #: glade/PyChess.glade:3569 msgid "Names: #n1, #n2" msgstr "" #: glade/PyChess.glade:3582 msgid "Year, month, day: #y, #m, #d" msgstr "" #: glade/PyChess.glade:3619 msgid "Save elapsed move _times" msgstr "" #: glade/PyChess.glade:3644 msgid "Save analyzing engine _evaluation values" msgstr "" #: glade/PyChess.glade:3669 msgid "Save _own games only" msgstr "" #: glade/PyChess.glade:3698 msgid "Save" msgstr "" #: glade/PyChess.glade:3728 msgid "uci" msgstr "" #: glade/PyChess.glade:3731 msgid "xboard" msgstr "" #: glade/PyChess.glade:3739 msgid "Manage engines" msgstr "" #: glade/PyChess.glade:3837 msgid "Command:" msgstr "" #: glade/PyChess.glade:3851 msgid "Protocol:" msgstr "" #: glade/PyChess.glade:3865 msgid "Parameters:" msgstr "" #: glade/PyChess.glade:3878 msgid "Command line parameters needed by the engine." msgstr "" #: glade/PyChess.glade:3903 msgid "" "Engines use uci or xboard communication protocol to talk to the GUI.\n" "If it can use both you can set here which one you like." msgstr "" #: glade/PyChess.glade:3929 msgid "Working directory:" msgstr "" #: glade/PyChess.glade:3942 msgid "The directory where the engine will be started from." msgstr "" #: glade/saveGamesDialog.glade:7 msgid "Quit PyChess" msgstr "" #: glade/saveGamesDialog.glade:24 lib/pychess/widgets/ionest.py:424 msgid "Close _without Saving" msgstr "" #: glade/saveGamesDialog.glade:83 msgid "_Save %d documents" msgstr "" #: glade/saveGamesDialog.glade:141 msgid "" "There are %d games with unsaved moves. Save changes before " "closing?" msgstr "" #: glade/saveGamesDialog.glade:161 msgid "Select the games you want to save:" msgstr "" #: glade/saveGamesDialog.glade:204 msgid "If you don't save, new changes to your games will be permanently lost." msgstr "" #: glade/taskers.glade:126 msgid "_Opponent:" msgstr "" #: glade/taskers.glade:154 msgid "_Your Color:" msgstr "" #: glade/taskers.glade:219 msgid "_Start Game" msgstr "" #: glade/taskers.glade:338 msgid "Log on as G_uest" msgstr "" #: glade/taskers.glade:410 msgid "Ha_ndle:" msgstr "" #: glade/taskers.glade:469 msgid "_Connect to server" msgstr "" #: glade/tipoftheday.glade:7 msgid "Tip Of The day" msgstr "" #: glade/tipoftheday.glade:62 msgid "Show tips at startup" msgstr "" #: lib/pychess/Main.py:302 msgid "http://en.wikipedia.org/wiki/Chess" msgstr "" #: lib/pychess/Main.py:305 msgid "http://en.wikipedia.org/wiki/Rules_of_chess" msgstr "" #: lib/pychess/Main.py:370 lib/pychess/widgets/gamenanny.py:80 msgid "Welcome" msgstr "" #: lib/pychess/Database/gamelist.py:40 msgid "Id" msgstr "" #: lib/pychess/Database/gamelist.py:40 msgid "W Elo" msgstr "" #: lib/pychess/Database/gamelist.py:40 msgid "B Elo" msgstr "" #: lib/pychess/Database/gamelist.py:41 msgid "Result" msgstr "" #: lib/pychess/Database/gamelist.py:41 msgid "Event" msgstr "" #: lib/pychess/Database/gamelist.py:41 msgid "Site" msgstr "" #: lib/pychess/Database/gamelist.py:41 msgid "Round" msgstr "" #: lib/pychess/Database/gamelist.py:41 msgid "Date" msgstr "" #: lib/pychess/Database/gamelist.py:41 msgid "ECO" msgstr "" #: lib/pychess/Database/gamelist.py:62 msgid "PyChess Game Database" msgstr "" #: lib/pychess/Database/PgnImport.py:188 #, python-format msgid "The game #%s can't be loaded, because of an error parsing FEN" msgstr "" #: lib/pychess/ic/FICSConnection.py:139 msgid "The connection was broken - got \"end of file\" message" msgstr "" #: lib/pychess/ic/FICSConnection.py:140 #, python-format msgid "'%s' is not a registered name" msgstr "" #: lib/pychess/ic/FICSConnection.py:141 msgid "" "The entered password was invalid.\n" "If you forgot your password, go to http://www.freechess.org/password to request a new one over email." msgstr "" #: lib/pychess/ic/FICSConnection.py:145 #, python-format msgid "Sorry '%s' is already logged in" msgstr "" #: lib/pychess/ic/FICSConnection.py:146 #, python-format msgid "'%s' is a registered name. If it is yours, type the password." msgstr "" #: lib/pychess/ic/FICSConnection.py:147 msgid "" "Due to abuse problems, guest connections have been prevented.\n" "You can still register on http://www.freechess.org" msgstr "" #: lib/pychess/ic/FICSConnection.py:166 msgid "Connecting to server" msgstr "" #: lib/pychess/ic/FICSConnection.py:181 msgid "Logging on to server" msgstr "" #: lib/pychess/ic/FICSConnection.py:239 msgid "Setting up environment" msgstr "" #: lib/pychess/ic/FICSObjects.py:35 lib/pychess/ic/FICSObjects.py:47 #, python-format msgid "%(player)s is %(status)s" msgstr "" #: lib/pychess/ic/FICSObjects.py:46 msgid "not playing" msgstr "" #: lib/pychess/ic/FICSObjects.py:54 lib/pychess/ic/ICLounge.py:1136 #: lib/pychess/ic/ICLounge.py:2209 lib/pychess/ic/__init__.py:98 #: lib/pychess/widgets/newGameDialog.py:153 msgid "Blitz" msgstr "" #: lib/pychess/ic/FICSObjects.py:58 lib/pychess/ic/ICLounge.py:1137 #: lib/pychess/ic/ICLounge.py:2209 lib/pychess/ic/__init__.py:100 msgid "Lightning" msgstr "" #: lib/pychess/ic/FICSObjects.py:60 lib/pychess/Variants/atomic.py:15 msgid "Atomic" msgstr "" #: lib/pychess/ic/FICSObjects.py:62 lib/pychess/Variants/bughouse.py:9 msgid "Bughouse" msgstr "" #: lib/pychess/ic/FICSObjects.py:64 lib/pychess/Variants/crazyhouse.py:9 msgid "Crazyhouse" msgstr "" #: lib/pychess/ic/FICSObjects.py:66 lib/pychess/Variants/losers.py:9 msgid "Losers" msgstr "" #: lib/pychess/ic/FICSObjects.py:68 lib/pychess/Variants/suicide.py:12 msgid "Suicide" msgstr "" #: lib/pychess/ic/FICSObjects.py:70 lib/pychess/ic/__init__.py:129 msgid "Wild" msgstr "" #: lib/pychess/ic/FICSObjects.py:117 msgid "Online" msgstr "" #: lib/pychess/ic/FICSObjects.py:118 lib/pychess/ic/FICSObjects.py:143 msgid "Offline" msgstr "" #: lib/pychess/ic/FICSObjects.py:133 msgid "Available" msgstr "" #: lib/pychess/ic/FICSObjects.py:135 msgid "Playing" msgstr "" #: lib/pychess/ic/FICSObjects.py:141 msgid "Idle" msgstr "" #: lib/pychess/ic/FICSObjects.py:145 msgid "Examining" msgstr "" #: lib/pychess/ic/FICSObjects.py:147 msgid "Not Available" msgstr "" #: lib/pychess/ic/FICSObjects.py:149 msgid "Running Simul Match" msgstr "" #: lib/pychess/ic/FICSObjects.py:151 msgid "In Tournament" msgstr "" #: lib/pychess/ic/FICSObjects.py:308 lib/pychess/ic/FICSObjects.py:492 #: lib/pychess/ic/ICLounge.py:2278 msgid "Unrated" msgstr "" #: lib/pychess/ic/FICSObjects.py:491 lib/pychess/ic/ICLounge.py:670 #: lib/pychess/ic/ICLounge.py:1358 lib/pychess/ic/ICLounge.py:1558 #: lib/pychess/ic/ICLounge.py:2113 msgid "Rated" msgstr "" #: lib/pychess/ic/FICSObjects.py:498 lib/pychess/ic/ICLounge.py:2098 #, python-format msgid "%d min" msgstr "" #: lib/pychess/ic/FICSObjects.py:500 #, python-format msgid " + %d sec" msgstr "" #: lib/pychess/ic/FICSObjects.py:517 #, python-format msgid "%(player)s plays %(color)s" msgstr "" #: lib/pychess/ic/FICSObjects.py:519 lib/pychess/ic/ICLounge.py:909 msgid "white" msgstr "" #: lib/pychess/ic/FICSObjects.py:519 lib/pychess/ic/ICLounge.py:909 msgid "black" msgstr "" #: lib/pychess/ic/FICSObjects.py:565 msgid "This is a continuation of an adjourned match" msgstr "" #: lib/pychess/ic/FICSObjects.py:654 msgid "Opponent Rating" msgstr "" #: lib/pychess/ic/FICSObjects.py:656 msgid "Manual Accept" msgstr "" #: lib/pychess/ic/FICSObjects.py:810 msgid "Private" msgstr "" #: lib/pychess/ic/FICSObjects.py:930 lib/pychess/ic/ICLounge.py:527 #: lib/pychess/Savers/epd.py:139 msgid "Unknown" msgstr "" #: lib/pychess/ic/ICLogon.py:159 lib/pychess/ic/ICLogon.py:165 msgid "Connection Error" msgstr "" #: lib/pychess/ic/ICLogon.py:161 msgid "Log on Error" msgstr "" #: lib/pychess/ic/ICLogon.py:163 msgid "Connection was closed" msgstr "" #: lib/pychess/ic/ICLogon.py:169 msgid "Address Error" msgstr "" #: lib/pychess/ic/ICLogon.py:172 msgid "Auto-logout" msgstr "" #: lib/pychess/ic/ICLogon.py:173 msgid "You have been logged out because you were idle more than 60 minutes" msgstr "" #: lib/pychess/ic/ICLounge.py:222 msgid "You have to set kibitz on to see bot messages here." msgstr "" #: lib/pychess/ic/ICLounge.py:241 msgid "" "You may only have 3 outstanding seeks at the same time. If you want to add a" " new seek you must clear your currently active seeks. Clear your seeks?" msgstr "" #: lib/pychess/ic/ICLounge.py:258 msgid "You can't touch this! You are examining a game." msgstr "" #: lib/pychess/ic/ICLounge.py:270 msgid " has declined your offer for a match" msgstr "" #: lib/pychess/ic/ICLounge.py:283 msgid " is censoring you" msgstr "" #: lib/pychess/ic/ICLounge.py:296 msgid " noplay listing you" msgstr "" #: lib/pychess/ic/ICLounge.py:311 msgid " uses a formula not fitting your match request:" msgstr "" #: lib/pychess/ic/ICLounge.py:325 msgid "to manual accept" msgstr "" #: lib/pychess/ic/ICLounge.py:327 msgid "to automatic accept" msgstr "" #: lib/pychess/ic/ICLounge.py:329 msgid "rating range now" msgstr "" #: lib/pychess/ic/ICLounge.py:330 msgid "Seek updated" msgstr "" #: lib/pychess/ic/ICLounge.py:342 msgid "Your seeks have been removed" msgstr "" #: lib/pychess/ic/ICLounge.py:363 msgid " has arrived" msgstr "" #: lib/pychess/ic/ICLounge.py:370 msgid " has departed" msgstr "" #: lib/pychess/ic/ICLounge.py:374 msgid " is present" msgstr "" #: lib/pychess/ic/ICLounge.py:391 sidepanel/chatPanel.py:17 msgid "Chat" msgstr "" #: lib/pychess/ic/ICLounge.py:472 sidepanel/bookPanel.py:366 msgid "Win" msgstr "" #: lib/pychess/ic/ICLounge.py:472 sidepanel/bookPanel.py:360 msgid "Draw" msgstr "" #: lib/pychess/ic/ICLounge.py:472 sidepanel/bookPanel.py:363 msgid "Loss" msgstr "" #: lib/pychess/ic/ICLounge.py:482 msgid "" "On FICS, your \"Wild\" rating encompasses all of the following variants at " "all time controls:\n" msgstr "" #: lib/pychess/ic/ICLounge.py:494 msgid "Sanctions" msgstr "" #: lib/pychess/ic/ICLounge.py:499 msgid "Email" msgstr "" #: lib/pychess/ic/ICLounge.py:504 msgid "Spent" msgstr "" #: lib/pychess/ic/ICLounge.py:506 msgid "online in total" msgstr "" #: lib/pychess/ic/ICLounge.py:512 msgid "Ping" msgstr "" #: lib/pychess/ic/ICLounge.py:517 msgid "Connecting" msgstr "" #: lib/pychess/ic/ICLounge.py:544 msgid "" "You are currently logged in as a guest.\n" "A guest can't play rated games and therefore isn't able to play as many of the types of matches offered as a registered user. To register an account, go to http://www.freechess.org/Register/index.html." msgstr "" #: lib/pychess/ic/ICLounge.py:669 lib/pychess/ic/ICLounge.py:1136 msgid "Name" msgstr "" #: lib/pychess/ic/ICLounge.py:670 lib/pychess/ic/ICLounge.py:1358 #: lib/pychess/ic/ICLounge.py:1558 msgid "Type" msgstr "" #: lib/pychess/ic/ICLounge.py:670 lib/pychess/ic/ICLounge.py:1558 msgid "Clock" msgstr "" #: lib/pychess/ic/ICLounge.py:726 lib/pychess/ic/ICLounge.py:923 #: lib/pychess/Players/Human.py:250 msgid "Accept" msgstr "" #: lib/pychess/ic/ICLounge.py:728 msgid "Assess" msgstr "" #: lib/pychess/ic/ICLounge.py:734 msgid "Archived" msgstr "" #: lib/pychess/ic/ICLounge.py:848 #, python-format msgid "Active seeks: %d" msgstr "" #: lib/pychess/ic/ICLounge.py:897 #, python-format msgid "" " would like to resume your adjourned %(time)s %(gametype)s " "game." msgstr "" #: lib/pychess/ic/ICLounge.py:902 #, python-format msgid "" " challenges you to a %(time)s %(rated)s %(gametype)s game" msgstr "" #: lib/pychess/ic/ICLounge.py:907 #, python-format msgid " where %(player)s plays %(color)s." msgstr "" #: lib/pychess/ic/ICLounge.py:924 lib/pychess/Players/Human.py:251 msgid "Decline" msgstr "" #: lib/pychess/ic/ICLounge.py:1065 msgid " min" msgstr "" #: lib/pychess/ic/ICLounge.py:1137 msgid "Status" msgstr "" #: lib/pychess/ic/ICLounge.py:1203 lib/pychess/ic/ICLounge.py:1233 #, python-format msgid "Players: %d" msgstr "" #: lib/pychess/ic/ICLounge.py:1469 #, python-format msgid "Games running: %d" msgstr "" #: lib/pychess/ic/ICLounge.py:1559 msgid "Date/Time" msgstr "" #: lib/pychess/ic/ICLounge.py:1614 #, python-format msgid "" " with whom you have an adjourned %(timecontrol)s %(gametype)s " "game is online." msgstr "" #: lib/pychess/ic/ICLounge.py:1635 msgid "Request Continuation" msgstr "" #: lib/pychess/ic/ICLounge.py:1637 msgid "Examine Adjourned Game" msgstr "" #: lib/pychess/ic/ICLounge.py:1965 msgid "" "The chain button is disabled because you are logged in as a guest. Guests " "can't establish ratings, and the chain button's state has no effect when " "there is no rating to which to tie \"Opponent Strength\" to" msgstr "" #: lib/pychess/ic/ICLounge.py:2006 msgid "Challenge: " msgstr "" #: lib/pychess/ic/ICLounge.py:2044 msgid "If set you can refuse players accepting your seek" msgstr "" #: lib/pychess/ic/ICLounge.py:2048 lib/pychess/ic/ICLounge.py:2051 msgid "This option is not applicable because you're challenging a player" msgstr "" #: lib/pychess/ic/ICLounge.py:2064 msgid "Edit Seek: " msgstr "" #: lib/pychess/ic/ICLounge.py:2095 #, python-format msgid "%(minutes)d min + %(gain)d sec/move" msgstr "" #: lib/pychess/ic/ICLounge.py:2116 msgid "Manual" msgstr "" #: lib/pychess/ic/ICLounge.py:2256 msgid "Any strength" msgstr "" #: lib/pychess/ic/ICLounge.py:2308 msgid "You can't play rated games because you are logged in as a guest" msgstr "" #: lib/pychess/ic/ICLounge.py:2312 msgid "You can't play rated games because \"Untimed\" is checked, " msgstr "" #: lib/pychess/ic/ICLounge.py:2313 msgid "and on FICS, untimed games can't be rated" msgstr "" #: lib/pychess/ic/ICLounge.py:2317 msgid "This option is not available because you're challenging a guest, " msgstr "" #: lib/pychess/ic/ICLounge.py:2318 msgid "and guests can't play rated games" msgstr "" #: lib/pychess/ic/ICLounge.py:2332 lib/pychess/Variants/shuffle.py:16 #: lib/pychess/widgets/newGameDialog.py:266 msgid "Shuffle" msgstr "" #: lib/pychess/ic/ICLounge.py:2333 lib/pychess/widgets/newGameDialog.py:267 msgid "Other (standard rules)" msgstr "" #: lib/pychess/ic/ICLounge.py:2334 lib/pychess/widgets/newGameDialog.py:268 msgid "Other (non standard rules)" msgstr "" #: lib/pychess/ic/ICLounge.py:2421 msgid "You can't select a variant because \"Untimed\" is checked, " msgstr "" #: lib/pychess/ic/ICLounge.py:2422 msgid "and on FICS, untimed games have to be normal chess rules" msgstr "" #: lib/pychess/ic/ICLounge.py:2454 msgid "Change Tolerance" msgstr "" #: lib/pychess/ic/__init__.py:102 msgid "Examined" msgstr "" #: lib/pychess/ic/__init__.py:103 msgid "Other" msgstr "" #: lib/pychess/ic/__init__.py:182 msgid "Administrator" msgstr "" #: lib/pychess/ic/__init__.py:182 msgid "Blindfold Account" msgstr "" #: lib/pychess/ic/__init__.py:182 msgid "Computer" msgstr "" #: lib/pychess/ic/__init__.py:183 msgid "Team Account" msgstr "" #: lib/pychess/ic/__init__.py:183 msgid "Unregistered" msgstr "" #: lib/pychess/ic/__init__.py:183 msgid "Chess Advisor" msgstr "" #: lib/pychess/ic/__init__.py:184 msgid "Service Representative" msgstr "" #: lib/pychess/ic/__init__.py:184 msgid "Tournament Director" msgstr "" #: lib/pychess/ic/__init__.py:184 msgid "Mamer Manager" msgstr "" #: lib/pychess/ic/__init__.py:185 msgid "Grand Master" msgstr "" #: lib/pychess/ic/__init__.py:185 msgid "International Master" msgstr "" #: lib/pychess/ic/__init__.py:185 msgid "FIDE Master" msgstr "" #: lib/pychess/ic/__init__.py:186 msgid "Woman Grand Master" msgstr "" #: lib/pychess/ic/__init__.py:186 msgid "Woman International Master" msgstr "" #: lib/pychess/ic/__init__.py:186 msgid "Woman FIDE Master" msgstr "" #: lib/pychess/ic/__init__.py:187 msgid "Dummy Account" msgstr "" #: lib/pychess/ic/__init__.py:191 msgid "*" msgstr "" #: lib/pychess/ic/__init__.py:191 lib/pychess/Utils/repr.py:14 msgid "B" msgstr "" #: lib/pychess/ic/__init__.py:191 msgid "C" msgstr "" #: lib/pychess/ic/__init__.py:192 msgid "T" msgstr "" #: lib/pychess/ic/__init__.py:192 msgid "U" msgstr "" #: lib/pychess/ic/__init__.py:192 msgid "CA" msgstr "" #: lib/pychess/ic/__init__.py:193 msgid "SR" msgstr "" #: lib/pychess/ic/__init__.py:193 msgid "TD" msgstr "" #: lib/pychess/ic/__init__.py:193 msgid "TM" msgstr "" #: lib/pychess/ic/__init__.py:194 msgid "GM" msgstr "" #: lib/pychess/ic/__init__.py:194 msgid "IM" msgstr "" #: lib/pychess/ic/__init__.py:194 msgid "FM" msgstr "" #: lib/pychess/ic/__init__.py:195 msgid "WGM" msgstr "" #: lib/pychess/ic/__init__.py:195 msgid "WIM" msgstr "" #: lib/pychess/ic/__init__.py:195 msgid "WFM" msgstr "" #: lib/pychess/ic/__init__.py:195 msgid "D" msgstr "" #: lib/pychess/ic/__init__.py:195 msgid "H" msgstr "" #: lib/pychess/ic/__init__.py:195 msgid "CM" msgstr "" #: lib/pychess/ic/__init__.py:195 msgid "FA" msgstr "" #: lib/pychess/ic/__init__.py:195 msgid "NM" msgstr "" #: lib/pychess/Players/CECPEngine.py:857 #, python-format msgid "The engine %s reports an error:" msgstr "" #: lib/pychess/Players/Human.py:20 msgid "Your opponent has offered you a draw." msgstr "" #: lib/pychess/Players/Human.py:21 msgid "" "Your opponent has offered you a draw. If you accept this offer, the game " "will end with a score of 1/2 - 1/2." msgstr "" #: lib/pychess/Players/Human.py:23 msgid "Your opponent wants to abort the game." msgstr "" #: lib/pychess/Players/Human.py:24 msgid "" "Your opponent has asked that the game be aborted. If you accept this offer, " "the game will end with no rating change." msgstr "" #: lib/pychess/Players/Human.py:26 msgid "Your opponent wants to adjourn the game." msgstr "" #: lib/pychess/Players/Human.py:27 msgid "" "Your opponent has asked that the game be adjourned. If you accept this " "offer, the game will be adjourned and you can resume it later (when your " "opponent is online and both players agree to resume)." msgstr "" #: lib/pychess/Players/Human.py:29 #, python-format msgid "Your opponent wants to undo %s move(s)." msgstr "" #: lib/pychess/Players/Human.py:30 #, python-format msgid "" "Your opponent has asked that the last %s move(s) be undone. If you accept " "this offer, the game will continue from the earlier position." msgstr "" #: lib/pychess/Players/Human.py:32 msgid "Your opponent wants to pause the game." msgstr "" #: lib/pychess/Players/Human.py:33 msgid "" "Your opponent has asked that the game be paused. If you accept this offer, " "the game clock will be paused until both players agree to resume the game." msgstr "" #: lib/pychess/Players/Human.py:35 msgid "Your opponent wants to resume the game." msgstr "" #: lib/pychess/Players/Human.py:36 msgid "" "Your opponent has asked that the game be resumed. If you accept this offer, " "the game clock will continue from where it was paused." msgstr "" #: lib/pychess/Players/Human.py:40 msgid "The resignation" msgstr "" #: lib/pychess/Players/Human.py:41 msgid "The flag call" msgstr "" #: lib/pychess/Players/Human.py:42 msgid "The draw offer" msgstr "" #: lib/pychess/Players/Human.py:43 msgid "The abort offer" msgstr "" #: lib/pychess/Players/Human.py:44 msgid "The adjourn offer" msgstr "" #: lib/pychess/Players/Human.py:45 msgid "The pause offer" msgstr "" #: lib/pychess/Players/Human.py:46 msgid "The resume offer" msgstr "" #: lib/pychess/Players/Human.py:47 msgid "The offer to switch sides" msgstr "" #: lib/pychess/Players/Human.py:48 msgid "The takeback offer" msgstr "" #: lib/pychess/Players/Human.py:52 msgid "resign" msgstr "" #: lib/pychess/Players/Human.py:53 msgid "call your opponents flag" msgstr "" #: lib/pychess/Players/Human.py:54 msgid "offer a draw" msgstr "" #: lib/pychess/Players/Human.py:55 msgid "offer an abort" msgstr "" #: lib/pychess/Players/Human.py:56 msgid "offer to adjourn" msgstr "" #: lib/pychess/Players/Human.py:57 msgid "offer a pause" msgstr "" #: lib/pychess/Players/Human.py:58 msgid "offer to resume" msgstr "" #: lib/pychess/Players/Human.py:59 msgid "offer to switch sides" msgstr "" #: lib/pychess/Players/Human.py:60 msgid "offer a takeback" msgstr "" #: lib/pychess/Players/Human.py:61 msgid "ask your opponent to move" msgstr "" #: lib/pychess/Players/Human.py:66 msgid "Your opponent is not out of time." msgstr "" #: lib/pychess/Players/Human.py:68 msgid "The clock hasn't been started yet." msgstr "" #: lib/pychess/Players/Human.py:70 msgid "You can't switch colors during the game." msgstr "" #: lib/pychess/Players/Human.py:72 msgid "You have tried to undo too many moves." msgstr "" #: lib/pychess/Players/Human.py:180 msgid "Your opponent asks you to hurry!" msgstr "" #: lib/pychess/Players/Human.py:181 msgid "" "Generally this means nothing, as the game is time-based, but if you want to " "please your opponent, perhaps you should get going." msgstr "" #: lib/pychess/Players/Human.py:259 #, python-format msgid "%s was declined by your opponent" msgstr "" #: lib/pychess/Players/Human.py:260 #, python-format msgid "Resend %s?" msgstr "" #: lib/pychess/Players/Human.py:267 msgid "Resend" msgstr "" #: lib/pychess/Players/Human.py:275 #, python-format msgid "%s was withdrawn by your opponent" msgstr "" #: lib/pychess/Players/Human.py:276 msgid "Your opponent seems to have changed their mind." msgstr "" #: lib/pychess/Players/Human.py:290 #, python-format msgid "Unable to accept %s" msgstr "" #: lib/pychess/Players/Human.py:291 msgid "Probably because it has been withdrawn." msgstr "" #: lib/pychess/Players/Human.py:298 #, python-format msgid "%s returns an error" msgstr "" #: lib/pychess/Savers/chessalpha2.py:12 msgid "Chess Alpha 2 Diagram" msgstr "" #: lib/pychess/Savers/chesspastebin.py:39 msgid "Game shared at " msgstr "" #: lib/pychess/Savers/chesspastebin.py:41 msgid "(Link is available on clipboard.)" msgstr "" #: lib/pychess/Savers/database.py:19 msgid "PyChess database" msgstr "" #: lib/pychess/Savers/epd.py:12 msgid "Chess Position" msgstr "" #: lib/pychess/Savers/fen.py:12 msgid "Simple Chess Position" msgstr "" #: lib/pychess/Savers/fen.py:44 lib/pychess/Savers/pgn.py:329 msgid "The game can't be loaded, because of an error parsing FEN" msgstr "" #: lib/pychess/Savers/pgnbase.py:100 #, python-format msgid "" "The game can't be read to end, because of an error parsing move %(moveno)s " "'%(notation)s'." msgstr "" #: lib/pychess/Savers/pgnbase.py:102 #, python-format msgid "The move failed because %s." msgstr "" #: lib/pychess/Savers/pgnbase.py:110 #, python-format msgid "Error parsing move %(moveno)s %(mstr)s" msgstr "" #: lib/pychess/Savers/pgn.py:28 msgid "Chess Game" msgstr "" #: lib/pychess/Savers/pgn.py:362 msgid "Invalid move." msgstr "" #: lib/pychess/Savers/png.py:15 msgid "Png image" msgstr "" #: lib/pychess/System/ping.py:31 msgid "Destination Host Unreachable" msgstr "" #: lib/pychess/System/ping.py:74 msgid "Died" msgstr "" #: lib/pychess/Utils/GameModel.py:147 msgid "Local Event" msgstr "" #: lib/pychess/Utils/GameModel.py:148 msgid "Local Site" msgstr "" #: lib/pychess/Utils/repr.py:12 msgid "Pawn" msgstr "" #: lib/pychess/Utils/repr.py:14 msgid "P" msgstr "" #: lib/pychess/Utils/repr.py:14 msgid "N" msgstr "" #: lib/pychess/Utils/repr.py:14 msgid "R" msgstr "" #: lib/pychess/Utils/repr.py:14 msgid "Q" msgstr "" #: lib/pychess/Utils/repr.py:14 msgid "K" msgstr "" #: lib/pychess/Utils/repr.py:17 msgid "The game ended in a draw" msgstr "اللعبة انتهت بالتعادل" #: lib/pychess/Utils/repr.py:18 #, python-format msgid "%(white)s won the game" msgstr "" #: lib/pychess/Utils/repr.py:19 #, python-format msgid "%(black)s won the game" msgstr "" #: lib/pychess/Utils/repr.py:20 msgid "The game has been killed" msgstr "تم إنهاء اللعبة" #: lib/pychess/Utils/repr.py:21 msgid "The game has been adjourned" msgstr "" #: lib/pychess/Utils/repr.py:22 msgid "The game has been aborted" msgstr "" #: lib/pychess/Utils/repr.py:26 msgid "Because neither player has sufficient material to mate" msgstr "" #: lib/pychess/Utils/repr.py:27 msgid "Because the same position was repeated three times in a row" msgstr "" #: lib/pychess/Utils/repr.py:28 msgid "Because the last 50 moves brought nothing new" msgstr "" #: lib/pychess/Utils/repr.py:29 msgid "Because both players ran out of time" msgstr "" #: lib/pychess/Utils/repr.py:30 #, python-format msgid "Because %(mover)s stalemated" msgstr "" #: lib/pychess/Utils/repr.py:31 msgid "Because both players agreed to a draw" msgstr "" #: lib/pychess/Utils/repr.py:32 lib/pychess/Utils/repr.py:42 msgid "Because of adjudication by an admin" msgstr "" #: lib/pychess/Utils/repr.py:33 msgid "Because the game exceed the max length" msgstr "" #: lib/pychess/Utils/repr.py:34 #, python-format msgid "" "Because %(white)s ran out of time and %(black)s has insufficient material to" " mate" msgstr "" #: lib/pychess/Utils/repr.py:35 #, python-format msgid "" "Because %(black)s ran out of time and %(white)s has insufficient material to" " mate" msgstr "" #: lib/pychess/Utils/repr.py:36 msgid "Because both players have the same amount of pieces" msgstr "" #: lib/pychess/Utils/repr.py:38 #, python-format msgid "Because %(loser)s resigned" msgstr "" #: lib/pychess/Utils/repr.py:39 #, python-format msgid "Because %(loser)s ran out of time" msgstr "" #: lib/pychess/Utils/repr.py:40 #, python-format msgid "Because %(loser)s was checkmated" msgstr "" #: lib/pychess/Utils/repr.py:41 #, python-format msgid "Because %(loser)s disconnected" msgstr "" #: lib/pychess/Utils/repr.py:43 #, python-format msgid "Because %(winner)s has fewer pieces" msgstr "" #: lib/pychess/Utils/repr.py:44 #, python-format msgid "Because %(winner)s lost all pieces" msgstr "" #: lib/pychess/Utils/repr.py:45 #, python-format msgid "Because %(loser)s king exploded" msgstr "" #: lib/pychess/Utils/repr.py:46 #, python-format msgid "Because %(winner)s king reached the center" msgstr "" #: lib/pychess/Utils/repr.py:47 #, python-format msgid "Because %(winner)s was giving check 3 times" msgstr "" #: lib/pychess/Utils/repr.py:49 msgid "Because a player lost connection" msgstr "" #: lib/pychess/Utils/repr.py:50 msgid "Because both players agreed to an adjournment" msgstr "" #: lib/pychess/Utils/repr.py:51 msgid "Because the server was shut down" msgstr "" #: lib/pychess/Utils/repr.py:52 msgid "" "Because a player lost connection and the other player requested adjournment" msgstr "" #: lib/pychess/Utils/repr.py:53 #, python-format msgid "" "Because %(black)s lost connection to the server and %(white)s requested " "adjournment" msgstr "" #: lib/pychess/Utils/repr.py:54 #, python-format msgid "" "Because %(white)s lost connection to the server and %(black)s requested " "adjournment" msgstr "" #: lib/pychess/Utils/repr.py:55 #, python-format msgid "Because %(white)s lost connection to the server" msgstr "" #: lib/pychess/Utils/repr.py:56 #, python-format msgid "Because %(black)s lost connection to the server" msgstr "" #: lib/pychess/Utils/repr.py:58 msgid "Because of adjudication by an admin. No rating changes have occurred." msgstr "" #: lib/pychess/Utils/repr.py:59 msgid "" "Because both players agreed to abort the game. No rating changes have " "occurred." msgstr "" #: lib/pychess/Utils/repr.py:60 msgid "Because of courtesy by a player. No rating changes have occurred." msgstr "" #: lib/pychess/Utils/repr.py:61 msgid "" "Because a player aborted the game. Either player can abort the game without " "the other's consent before the second move. No rating changes have occurred." msgstr "" #: lib/pychess/Utils/repr.py:62 msgid "" "Because a player disconnected and there are too few moves to warrant " "adjournment. No rating changes have occurred." msgstr "" #: lib/pychess/Utils/repr.py:63 msgid "Because the server was shut down. No rating changes have occurred." msgstr "" #: lib/pychess/Utils/repr.py:65 #, python-format msgid "Because the %(white)s engine died" msgstr "" #: lib/pychess/Utils/repr.py:66 #, python-format msgid "Because the %(black)s engine died" msgstr "" #: lib/pychess/Utils/repr.py:67 msgid "Because the connection to the server was lost" msgstr "" #: lib/pychess/Utils/repr.py:68 msgid "The reason is unknown" msgstr "" #: lib/pychess/Utils/TimeModel.py:229 msgid "min" msgstr "" #: lib/pychess/Utils/TimeModel.py:231 msgid "sec" msgstr "" #: lib/pychess/Variants/asean.py:12 msgid "" "ASEAN: http://www.ncf-" "phil.org/downloadables/2014/May/Asean_chess/Laws_of_ASEAN_Chess_2011_Nov_26.doc" msgstr "" #: lib/pychess/Variants/asean.py:13 msgid "ASEAN" msgstr "" #: lib/pychess/Variants/asean.py:33 msgid "Makruk: http://en.wikipedia.org/wiki/Makruk" msgstr "" #: lib/pychess/Variants/asean.py:34 msgid "Makruk" msgstr "" #: lib/pychess/Variants/asean.py:60 msgid "Cambodian: http://www.khmerinstitute.org/culture/ok.html" msgstr "" #: lib/pychess/Variants/asean.py:61 msgid "Cambodian" msgstr "" #: lib/pychess/Variants/asean.py:86 msgid "" "Ai-Wok: http://www.open-" "aurec.com/wbforum/viewtopic.php?p=199364&sid=20963a1de2c164050de019e5ed6bf7c4#p199364" msgstr "" #: lib/pychess/Variants/asean.py:87 msgid "Ai-Wok" msgstr "" #: lib/pychess/Variants/asean.py:111 msgid "Sittuyin: http://en.wikipedia.org/wiki/Sittuyin" msgstr "" #: lib/pychess/Variants/asean.py:112 msgid "Sittuyin" msgstr "" #: lib/pychess/Variants/asymmetricrandom.py:12 msgid "" "FICS wild/4: http://www.freechess.org/Help/HelpFiles/wild.html\n" "* Randomly chosen pieces (two queens or three rooks possible)\n" "* Exactly one king of each color\n" "* Pieces placed randomly behind the pawns, SUBJECT TO THE CONSTRAINT THAT THE BISHOPS ARE BALANCED\n" "* No castling\n" "* Black's arrangement DOES NOT mirrors white's" msgstr "" #: lib/pychess/Variants/asymmetricrandom.py:18 msgid "Asymmetric Random" msgstr "" #: lib/pychess/Variants/atomic.py:14 msgid "FICS atomic: http://www.freechess.org/Help/HelpFiles/atomic.html" msgstr "" #: lib/pychess/Variants/blindfold.py:7 msgid "" "Classic chess rules with hidden figurines\n" "http://en.wikipedia.org/wiki/Blindfold_chess" msgstr "" #: lib/pychess/Variants/blindfold.py:9 #: lib/pychess/widgets/newGameDialog.py:264 msgid "Blindfold" msgstr "" #: lib/pychess/Variants/blindfold.py:18 msgid "" "Classic chess rules with hidden pawns\n" "http://en.wikipedia.org/wiki/Blindfold_chess" msgstr "" #: lib/pychess/Variants/blindfold.py:20 msgid "Hidden pawns" msgstr "" #: lib/pychess/Variants/blindfold.py:29 msgid "" "Classic chess rules with hidden pieces\n" "http://en.wikipedia.org/wiki/Blindfold_chess" msgstr "" #: lib/pychess/Variants/blindfold.py:31 msgid "Hidden pieces" msgstr "" #: lib/pychess/Variants/blindfold.py:40 msgid "" "Classic chess rules with all pieces white\n" "http://en.wikipedia.org/wiki/Blindfold_chess" msgstr "" #: lib/pychess/Variants/blindfold.py:42 msgid "All white" msgstr "" #: lib/pychess/Variants/bughouse.py:8 msgid "FICS bughouse: http://www.freechess.org/Help/HelpFiles/bughouse.html" msgstr "" #: lib/pychess/Variants/corner.py:12 msgid "" "http://brainking.com/en/GameRules?tp=2\n" "* Placement of the pieces on the 1st and 8th row are randomized\n" "* The king is in the right hand corner\n" "* Bishops must start on opposite color squares\n" "* Black's starting position is obtained by rotating white's position 180 degrees around the board's center\n" "* No castling" msgstr "" #: lib/pychess/Variants/corner.py:18 msgid "Corner" msgstr "" #: lib/pychess/Variants/crazyhouse.py:8 msgid "" "FICS crazyhouse: http://www.freechess.org/Help/HelpFiles/crazyhouse.html" msgstr "" #: lib/pychess/Variants/euroshogi.py:9 msgid "EuroShogi: http://en.wikipedia.org/wiki/EuroShogi" msgstr "" #: lib/pychess/Variants/euroshogi.py:10 msgid "EuroShogi" msgstr "" #: lib/pychess/Variants/fischerandom.py:18 msgid "" "http://en.wikipedia.org/wiki/Chess960\n" "FICS wild/fr: http://www.freechess.org/Help/HelpFiles/wild.html" msgstr "" #: lib/pychess/Variants/fischerandom.py:20 msgid "Fischer Random" msgstr "" #: lib/pychess/Variants/kingofthehill.py:8 msgid "" "Bringing your king legally to the center (e4, d4, e5, d5) instantly wins the game!\n" "Normal rules apply in other cases and checkmate also ends the game." msgstr "" #: lib/pychess/Variants/kingofthehill.py:10 msgid "King of the hill" msgstr "" #: lib/pychess/Variants/knightodds.py:8 msgid "One player starts with one less knight piece" msgstr "" #: lib/pychess/Variants/knightodds.py:9 msgid "Knight odds" msgstr "" #: lib/pychess/Variants/losers.py:8 msgid "FICS losers: http://www.freechess.org/Help/HelpFiles/losers_chess.html" msgstr "" #: lib/pychess/Variants/normal.py:4 msgid "" "Classic chess rules\n" "http://en.wikipedia.org/wiki/Chess" msgstr "" #: lib/pychess/Variants/normal.py:6 lib/pychess/widgets/newGameDialog.py:157 msgid "Normal" msgstr "" #: lib/pychess/Variants/pawnodds.py:8 msgid "One player starts with one less pawn piece" msgstr "" #: lib/pychess/Variants/pawnodds.py:9 msgid "Pawn odds" msgstr "" #: lib/pychess/Variants/pawnspassed.py:11 msgid "" "FICS wild/8a: http://www.freechess.org/Help/HelpFiles/wild.html\n" "White pawns start on 5th rank and black pawns on the 4th rank" msgstr "" #: lib/pychess/Variants/pawnspassed.py:13 msgid "Pawns Passed" msgstr "" #: lib/pychess/Variants/pawnspushed.py:10 msgid "" "FICS wild/8: http://www.freechess.org/Help/HelpFiles/wild.html\n" "Pawns start on 4th and 5th ranks rather than 2nd and 7th" msgstr "" #: lib/pychess/Variants/pawnspushed.py:12 msgid "Pawns Pushed" msgstr "" #: lib/pychess/Variants/queenodds.py:8 msgid "One player starts with one less queen piece" msgstr "" #: lib/pychess/Variants/queenodds.py:9 msgid "Queen odds" msgstr "" #: lib/pychess/Variants/randomchess.py:11 msgid "" "FICS wild/3: http://www.freechess.org/Help/HelpFiles/wild.html\n" "* Randomly chosen pieces (two queens or three rooks possible)\n" "* Exactly one king of each color\n" "* Pieces placed randomly behind the pawns\n" "* No castling\n" "* Black's arrangement mirrors white's" msgstr "" #: lib/pychess/Variants/randomchess.py:17 #: lib/pychess/widgets/TaskerManager.py:155 msgid "Random" msgstr "" #: lib/pychess/Variants/rookodds.py:8 msgid "One player starts with one less rook piece" msgstr "" #: lib/pychess/Variants/rookodds.py:9 msgid "Rook odds" msgstr "" #: lib/pychess/Variants/shuffle.py:11 msgid "" "xboard nocastle: http://home.hccnet.nl/h.g.muller/engine-intf.html#8\n" "FICS wild/2: http://www.freechess.org/Help/HelpFiles/wild.html\n" "* Random arrangement of the pieces behind the pawns\n" "* No castling\n" "* Black's arrangement mirrors white's" msgstr "" #: lib/pychess/Variants/suicide.py:11 msgid "" "FICS suicide: http://www.freechess.org/Help/HelpFiles/suicide_chess.html" msgstr "" #: lib/pychess/Variants/theban.py:10 msgid "" "Variant developed by Kai Laskos: " "http://talkchess.com/forum/viewtopic.php?t=40990" msgstr "" #: lib/pychess/Variants/theban.py:11 msgid "Theban" msgstr "" #: lib/pychess/Variants/threecheck.py:10 msgid "Win by giving check 3 times" msgstr "" #: lib/pychess/Variants/threecheck.py:11 msgid "Three-check" msgstr "" #: lib/pychess/Variants/upsidedown.py:10 msgid "" "FICS wild/5: http://www.freechess.org/Help/HelpFiles/wild.html\n" "http://en.wikipedia.org/wiki/Chess_variant#Chess_with_different_starting_positions\n" "Pawns start on their 7th rank rather than their 2nd rank!" msgstr "" #: lib/pychess/Variants/upsidedown.py:13 msgid "Upside Down" msgstr "" #: lib/pychess/Variants/wildcastle.py:10 msgid "" "xboard wildcastle http://home.hccnet.nl/h.g.muller/engine-intf.html#8\n" "FICS wild/0: http://www.freechess.org/Help/HelpFiles/wild.html\n" "* White has the typical set-up at the start.\n" "* Black's pieces are the same, except that the King and Queen are reversed,\n" "* so they are not on the same files as White's King and Queen.\n" "* Castling is done similarly to normal chess:\n" "* o-o-o indicates long castling and o-o short castling." msgstr "" #: lib/pychess/Variants/wildcastle.py:17 msgid "Wildcastle" msgstr "" #: lib/pychess/Variants/wildcastleshuffle.py:11 msgid "" "xboard wildcastle http://home.hccnet.nl/h.g.muller/engine-intf.html#8\n" "FICS wild/1: http://www.freechess.org/Help/HelpFiles/wild.html\n" "* In this variant both sides have the same set of pieces as in normal chess.\n" "* The white king starts on d1 or e1 and the black king starts on d8 or e8,\n" "* and the rooks are in their usual positions.\n" "* Bishops are always on opposite colors.\n" "* Subject to these constraints the position of the pieces on their first ranks is random.\n" "* Castling is done similarly to normal chess:\n" "* o-o-o indicates long castling and o-o short castling." msgstr "" #: lib/pychess/Variants/wildcastleshuffle.py:20 msgid "Wildcastle shuffle" msgstr "" #: lib/pychess/widgets/analyzegameDialog.py:85 msgid "Game analyzing in progress..." msgstr "" #: lib/pychess/widgets/analyzegameDialog.py:86 msgid "Do you want to abort it?" msgstr "" #: lib/pychess/widgets/analyzegameDialog.py:95 #: lib/pychess/widgets/gamewidget.py:202 lib/pychess/widgets/gamewidget.py:320 msgid "Abort" msgstr "" #: lib/pychess/widgets/ChatView.py:125 msgid "Observers" msgstr "" #: lib/pychess/widgets/ChatWindow.py:222 msgid "You have opened no conversations yet" msgstr "" #: lib/pychess/widgets/ChatWindow.py:254 msgid "Only registered users may talk to this channel" msgstr "" #: lib/pychess/widgets/ChatWindow.py:312 msgid "No conversation's selected" msgstr "" #: lib/pychess/widgets/ChatWindow.py:350 msgid "Loading player data" msgstr "" #: lib/pychess/widgets/ChatWindow.py:400 msgid "Receiving list of players" msgstr "" #: lib/pychess/widgets/ChatWindow.py:518 msgid "Friends" msgstr "" #: lib/pychess/widgets/ChatWindow.py:529 msgid "Admin" msgstr "" #: lib/pychess/widgets/ChatWindow.py:540 msgid "More channels" msgstr "" #: lib/pychess/widgets/ChatWindow.py:548 msgid "More players" msgstr "" #: lib/pychess/widgets/ChatWindow.py:558 msgid "Computers" msgstr "" #: lib/pychess/widgets/ChatWindow.py:568 msgid "BlindFold" msgstr "" #: lib/pychess/widgets/ChatWindow.py:578 msgid "Guests" msgstr "" #: lib/pychess/widgets/ChatWindow.py:805 msgid "Conversations" msgstr "" #: lib/pychess/widgets/ChatWindow.py:807 msgid "Conversation info" msgstr "" #: lib/pychess/widgets/enginesDialog.py:152 msgid "Select engine" msgstr "" #: lib/pychess/widgets/enginesDialog.py:156 msgid "Executable files" msgstr "" #: lib/pychess/widgets/enginesDialog.py:176 #: lib/pychess/widgets/enginesDialog.py:210 #: lib/pychess/widgets/enginesDialog.py:235 #, python-format msgid "Unable to add %s" msgstr "" #: lib/pychess/widgets/enginesDialog.py:177 msgid "wine not installed" msgstr "" #: lib/pychess/widgets/enginesDialog.py:211 #: lib/pychess/widgets/enginesDialog.py:236 msgid "There is something wrong with this executable" msgstr "" #: lib/pychess/widgets/enginesDialog.py:266 msgid "Select working directory" msgstr "" #: lib/pychess/widgets/gamenanny.py:115 #, python-format msgid " invalid engine move: %s" msgstr "" #: lib/pychess/widgets/gamenanny.py:134 msgid "Offer Rematch" msgstr "" #: lib/pychess/widgets/gamenanny.py:136 lib/pychess/widgets/gamenanny.py:147 #, python-format msgid "Observe %s" msgstr "" #: lib/pychess/widgets/gamenanny.py:168 msgid "Play Rematch" msgstr "" #: lib/pychess/widgets/gamenanny.py:171 msgid "Undo one move" msgstr "" #: lib/pychess/widgets/gamenanny.py:173 msgid "Undo two moves" msgstr "" #: lib/pychess/widgets/gamenanny.py:203 msgid "The game is paused" msgstr "" #: lib/pychess/widgets/gamenanny.py:221 lib/pychess/widgets/gamenanny.py:222 msgid "Loaded game" msgstr "" #: lib/pychess/widgets/gamenanny.py:228 msgid "Saved game" msgstr "لعبة محفوظة" #: lib/pychess/widgets/gamenanny.py:232 msgid "Analyzer started" msgstr "" #: lib/pychess/widgets/gamenanny.py:281 msgid "You sent an abort offer" msgstr "" #: lib/pychess/widgets/gamenanny.py:283 msgid "You sent an adjournment offer" msgstr "" #: lib/pychess/widgets/gamenanny.py:285 msgid "You sent a draw offer" msgstr "" #: lib/pychess/widgets/gamenanny.py:287 msgid "You sent a pause offer" msgstr "" #: lib/pychess/widgets/gamenanny.py:289 msgid "You sent a resume offer" msgstr "" #: lib/pychess/widgets/gamenanny.py:291 msgid "You sent an undo offer" msgstr "" #: lib/pychess/widgets/gamenanny.py:293 msgid "You asked your opponent to move" msgstr "" #: lib/pychess/widgets/gamenanny.py:305 #, python-format msgid "Engine, %s, has died" msgstr "" #: lib/pychess/widgets/gamenanny.py:306 msgid "" "PyChess has lost connection to the engine, probably because it has died.\n" "\n" "You can try to start a new game with the engine, or try to play against another one." msgstr "" #: lib/pychess/widgets/gamewidget.py:204 msgid "" "This game can be automatically aborted without rating loss because there has" " not yet been two moves made" msgstr "" #: lib/pychess/widgets/gamewidget.py:206 msgid "Offer Abort" msgstr "" #: lib/pychess/widgets/gamewidget.py:208 msgid "" "Your opponent must agree to abort the game because there has been two or " "more moves made" msgstr "" #: lib/pychess/widgets/gamewidget.py:226 msgid "This game can not be adjourned because one or both players are guests" msgstr "" #: lib/pychess/widgets/gamewidget.py:243 msgid "Claim Draw" msgstr "" #: lib/pychess/widgets/gamewidget.py:325 msgid "Pause" msgstr "" #: lib/pychess/widgets/gamewidget.py:326 msgid "Resume" msgstr "" #: lib/pychess/widgets/gamewidget.py:328 msgid "Offer Pause" msgstr "" #: lib/pychess/widgets/gamewidget.py:329 msgid "Offer Resume" msgstr "" #: lib/pychess/widgets/gamewidget.py:333 msgid "Undo" msgstr "" #: lib/pychess/widgets/gamewidget.py:335 msgid "Offer Undo" msgstr "" #: lib/pychess/widgets/gamewidget.py:550 msgid " has lagged for 30 seconds" msgstr "" #: lib/pychess/widgets/gamewidget.py:566 msgid " is lagging heavily but hasn't disconnected" msgstr "" #: lib/pychess/widgets/gamewidget.py:567 msgid "Continue to wait for opponent, or try to adjourn the game?" msgstr "" #: lib/pychess/widgets/gamewidget.py:575 msgid "Wait" msgstr "" #: lib/pychess/widgets/gamewidget.py:576 msgid "Adjourn" msgstr "" #: lib/pychess/widgets/gamewidget.py:648 msgid "Jump to initial position" msgstr "" #: lib/pychess/widgets/gamewidget.py:653 msgid "Step back one move" msgstr "" #: lib/pychess/widgets/gamewidget.py:658 msgid "Go back to the main line" msgstr "" #: lib/pychess/widgets/gamewidget.py:664 msgid "Step forward one move" msgstr "" #: lib/pychess/widgets/gamewidget.py:669 msgid "Jump to latest position" msgstr "" #: lib/pychess/widgets/gamewidget.py:903 msgid "PyChess was unable to load your panel settings" msgstr "" #: lib/pychess/widgets/gamewidget.py:904 msgid "" "Your panel settings have been reset. If this problem repeats, you should " "report it to the developers" msgstr "" #: lib/pychess/widgets/ionest.py:67 lib/pychess/widgets/newGameDialog.py:389 #: lib/pychess/widgets/TaskerManager.py:210 msgid "You" msgstr "" #: lib/pychess/widgets/ionest.py:70 lib/pychess/widgets/newGameDialog.py:390 #: lib/pychess/widgets/preferencesDialog.py:61 #: lib/pychess/widgets/TaskerManager.py:213 msgid "Guest" msgstr "" #: lib/pychess/widgets/ionest.py:93 msgid "Error loading game" msgstr "" #: lib/pychess/widgets/ionest.py:127 lib/pychess/widgets/newGameDialog.py:480 msgid "Open Game" msgstr "فتح لعبة" #: lib/pychess/widgets/ionest.py:137 msgid "All Files" msgstr "" #: lib/pychess/widgets/ionest.py:140 msgid "Detect type automatically" msgstr "" #: lib/pychess/widgets/ionest.py:146 msgid "All Chess Files" msgstr "" #: lib/pychess/widgets/ionest.py:228 msgid "Save Game" msgstr "" #: lib/pychess/widgets/ionest.py:228 msgid "Export position" msgstr "" #: lib/pychess/widgets/ionest.py:232 lib/pychess/widgets/ionest.py:360 msgid "vs." msgstr "" #: lib/pychess/widgets/ionest.py:249 #, python-format msgid "Unknown file type '%s'" msgstr "" #: lib/pychess/widgets/ionest.py:250 #, python-format msgid "" "Was unable to save '%(uri)s' as PyChess doesn't know the format " "'%(ending)s'." msgstr "" #: lib/pychess/widgets/ionest.py:266 #, python-format msgid "Unable to save file '%s'" msgstr "" #: lib/pychess/widgets/ionest.py:268 msgid "" "You don't have the necessary rights to save the file.\n" "Please ensure that you have given the right path and try again." msgstr "" #: lib/pychess/widgets/ionest.py:276 msgid "_Replace" msgstr "" #: lib/pychess/widgets/ionest.py:280 msgid "File exists" msgstr "" #: lib/pychess/widgets/ionest.py:282 #, python-format msgid "" "A file named '%s' already exists. Would you like to replace " "it?" msgstr "" #: lib/pychess/widgets/ionest.py:283 #, python-format msgid "" "The file already exists in '%s'. If you replace it, its content will be " "overwritten." msgstr "" #: lib/pychess/widgets/ionest.py:299 msgid "Could not save the file" msgstr "" #: lib/pychess/widgets/ionest.py:300 msgid "PyChess was not able to save the game" msgstr "" #: lib/pychess/widgets/ionest.py:301 #, python-format msgid "The error was: %s" msgstr "" #: lib/pychess/widgets/ionest.py:325 #, python-format msgid "There is %d game with unsaved moves." msgid_plural "There are %d games with unsaved moves." msgstr[0] "" msgstr[1] "" msgstr[2] "" msgstr[3] "" msgstr[4] "" msgstr[5] "" #: lib/pychess/widgets/ionest.py:328 msgid "Save moves before closing?" msgstr "" #: lib/pychess/widgets/ionest.py:339 msgid "Unable to save to configured file. Save the games before closing?" msgstr "" #: lib/pychess/widgets/ionest.py:366 #, python-format msgid "_Save %d document" msgid_plural "_Save %d documents" msgstr[0] "" msgstr[1] "" msgstr[2] "" msgstr[3] "" msgstr[4] "" msgstr[5] "" #: lib/pychess/widgets/ionest.py:412 msgid "Save the current game before you close it?" msgstr "" #: lib/pychess/widgets/ionest.py:420 msgid "" "Unable to save to configured file. Save the current game before you close " "it?" msgstr "" #: lib/pychess/widgets/ionest.py:434 msgid "" "It is not possible later to continue the game,\n" "if you don't save it." msgstr "" #: lib/pychess/widgets/LogDialog.py:26 msgid "PyChess Information Window" msgstr "" #: lib/pychess/widgets/LogDialog.py:184 lib/pychess/widgets/LogDialog.py:188 msgid "of" msgstr "" #: lib/pychess/widgets/newGameDialog.py:84 #: lib/pychess/widgets/newGameDialog.py:85 msgid "Human Being" msgstr "" #: lib/pychess/widgets/newGameDialog.py:155 msgid "Rapid" msgstr "" #: lib/pychess/widgets/newGameDialog.py:224 msgid "Minutes:" msgstr "دقائق:" #: lib/pychess/widgets/newGameDialog.py:228 msgid "Gain:" msgstr "كسب" #: lib/pychess/widgets/newGameDialog.py:241 #, python-format msgid "%(name)s %(minutes)d min + %(gain)d sec/move" msgstr "" #: lib/pychess/widgets/newGameDialog.py:244 #, python-format msgid "%(name)s %(minutes)d min %(gain)d sec/move" msgstr "" #: lib/pychess/widgets/newGameDialog.py:247 #, python-format msgid "%(name)s %(minutes)d min" msgstr "" #: lib/pychess/widgets/newGameDialog.py:265 msgid "Odds" msgstr "" #: lib/pychess/widgets/newGameDialog.py:269 msgid "Asian variants" msgstr "" #: lib/pychess/widgets/newGameDialog.py:301 msgid " chess" msgstr "" #: lib/pychess/widgets/newGameDialog.py:682 msgid "Type or paste PGN game or FEN positions here" msgstr "" #: lib/pychess/widgets/newGameDialog.py:725 msgid "Enter Game" msgstr "" #: lib/pychess/widgets/preferencesDialog.py:123 msgid "Select book file" msgstr "" #: lib/pychess/widgets/preferencesDialog.py:128 msgid "Opening books" msgstr "" #: lib/pychess/widgets/preferencesDialog.py:156 msgid "Select Gaviota TB path" msgstr "" #: lib/pychess/widgets/preferencesDialog.py:331 msgid "Open Sound File" msgstr "" #: lib/pychess/widgets/preferencesDialog.py:341 msgid "Sound files" msgstr "" #: lib/pychess/widgets/preferencesDialog.py:485 msgid "Undescribed panel" msgstr "" #: lib/pychess/widgets/preferencesDialog.py:678 msgid "Select auto save path" msgstr "" #: lib/pychess/widgets/tipOfTheDay.py:51 msgid "" "You can start a new game by Game > New Game, in New Game " "window do you can choose Players, Time Control and Chess " "Variants." msgstr "" #: lib/pychess/widgets/tipOfTheDay.py:52 msgid "" "You can choose from 20 different difficulties to play against the computer." msgstr "" #: lib/pychess/widgets/tipOfTheDay.py:53 msgid "" "Chess Variants are like the pieces of the last line will be placed on the " "board." msgstr "" #: lib/pychess/widgets/tipOfTheDay.py:54 msgid "" "To save a game Game > Save Game As, give the filename and " "choose where you want to be saved. At the bottom choose extension type of " "the file, and Save." msgstr "" #: lib/pychess/widgets/tipOfTheDay.py:55 msgid "" "Do you know that you can call flag when the clock is with you, " "Actions > Call Flag." msgstr "" #: lib/pychess/widgets/tipOfTheDay.py:56 msgid "Pressing Ctrl+Z to offer opponent the possible rollback moves." msgstr "" #: lib/pychess/widgets/tipOfTheDay.py:57 msgid "" "To play on Fullscreen mode, just type F11. Coming back, F11 " "again." msgstr "" #: lib/pychess/widgets/tipOfTheDay.py:58 msgid "Hint mode analyzing your game, enable this type Ctrl+H." msgstr "" #: lib/pychess/widgets/tipOfTheDay.py:59 msgid "" "Spy mode analyzing the oponnent game, enable this type Ctrl+Y." msgstr "" #: lib/pychess/widgets/tipOfTheDay.py:60 msgid "" "You can play chess listening to the sounds of the game, for that, " "Settings > Preferences > Sound tab, enable Use " "sounds in PyChess and choose your preferred sounds." msgstr "" #: lib/pychess/widgets/tipOfTheDay.py:61 msgid "" "Do you know that you can help translate Pychess in your language, " "Help > Translate Pychess." msgstr "" #: lib/pychess/widgets/tipOfTheDay.py:62 msgid "" "Do you know that it is possible to finish a chess game in just 2 turns?" msgstr "" #: lib/pychess/widgets/tipOfTheDay.py:63 msgid "" "Do you know that the number of possible chess games exceeds the number of " "atoms in the Universe?" msgstr "" #: lib/pychess/ic/managers/ChatManager.py:184 msgid "Shout" msgstr "" #: lib/pychess/ic/managers/ChatManager.py:185 msgid "Chess Shout" msgstr "" #: lib/pychess/ic/managers/ChatManager.py:195 #, python-format msgid "Unofficial channel %d" msgstr "" #: lib/pychess/Utils/lutils/LBoard.py:152 #, python-format msgid "" "FEN needs 6 data fields. \n" "\n" "%s" msgstr "" #: lib/pychess/Utils/lutils/LBoard.py:154 #, python-format msgid "" "FEN needs at least 2 data fields in fenstr. \n" "\n" "%s" msgstr "" #: lib/pychess/Utils/lutils/LBoard.py:175 #, python-format msgid "" "Needs 7 slashes in piece placement field. \n" "\n" "%s" msgstr "" #: lib/pychess/Utils/lutils/LBoard.py:178 #, python-format msgid "" "Active color field must be one of w or b. \n" "\n" "%s" msgstr "" #: lib/pychess/Utils/lutils/LBoard.py:189 #, python-format msgid "" "Castling availability field is not legal. \n" "\n" "%s" msgstr "" #: lib/pychess/Utils/lutils/LBoard.py:192 #, python-format msgid "" "En passant cord is not legal. \n" "\n" "%s" msgstr "" #: lib/pychess/Utils/lutils/lmove.py:260 msgid "invalid promoted piece" msgstr "" #: lib/pychess/Utils/lutils/lmove.py:272 msgid "the move needs a piece and a cord" msgstr "" #: lib/pychess/Utils/lutils/lmove.py:306 lib/pychess/Utils/lutils/lmove.py:556 msgid "promotion move without promoted piece is incorrect" msgstr "" #: lib/pychess/Utils/lutils/lmove.py:312 #, python-format msgid "the captured cord (%s) is incorrect" msgstr "" #: lib/pychess/Utils/lutils/lmove.py:323 #, python-format msgid "the end cord (%s) is incorrect" msgstr "" #: lib/pychess/Utils/lutils/strateval.py:24 sidepanel/commentPanel.py:191 #: sidepanel/commentPanel.py:208 msgid "and" msgstr "" #: lib/pychess/Utils/lutils/strateval.py:43 msgid "draws" msgstr "" #: lib/pychess/Utils/lutils/strateval.py:45 msgid "mates" msgstr "" #: lib/pychess/Utils/lutils/strateval.py:49 msgid "puts opponent in check" msgstr "" #: lib/pychess/Utils/lutils/strateval.py:73 msgid "improves king safety" msgstr "" #: lib/pychess/Utils/lutils/strateval.py:75 msgid "slightly improves king safety" msgstr "" #: lib/pychess/Utils/lutils/strateval.py:108 msgid "moves a rook to an open file" msgstr "" #: lib/pychess/Utils/lutils/strateval.py:109 msgid "moves an rook to a half-open file" msgstr "" #: lib/pychess/Utils/lutils/strateval.py:119 #: lib/pychess/Utils/lutils/strateval.py:121 #: lib/pychess/Utils/lutils/strateval.py:124 #: lib/pychess/Utils/lutils/strateval.py:126 #, python-format msgid "moves bishop into fianchetto: %s" msgstr "" #: lib/pychess/Utils/lutils/strateval.py:132 #, python-format msgid "promotes a Pawn to a %s" msgstr "" #: lib/pychess/Utils/lutils/strateval.py:135 msgid "castles" msgstr "" #: lib/pychess/Utils/lutils/strateval.py:158 msgid "takes back material" msgstr "" #: lib/pychess/Utils/lutils/strateval.py:162 #: lib/pychess/Utils/lutils/strateval.py:170 msgid "sacrifies material" msgstr "" #: lib/pychess/Utils/lutils/strateval.py:164 msgid "exchanges material" msgstr "" #: lib/pychess/Utils/lutils/strateval.py:166 msgid "captures material" msgstr "" #: lib/pychess/Utils/lutils/strateval.py:291 #, python-format msgid "rescues a %s" msgstr "" #: lib/pychess/Utils/lutils/strateval.py:294 #, python-format msgid "threatens to win material by %s" msgstr "" #: lib/pychess/Utils/lutils/strateval.py:296 #, python-format msgid "increases the pressure on %s" msgstr "" #: lib/pychess/Utils/lutils/strateval.py:298 #, python-format msgid "defends %s" msgstr "" #: lib/pychess/Utils/lutils/strateval.py:336 #, python-format msgid "pins an enemy %(oppiece)s on the %(piece)s at %(cord)s" msgstr "" #: lib/pychess/Utils/lutils/strateval.py:369 #, python-format msgid "White has a new piece in outpost: %s" msgstr "" #: lib/pychess/Utils/lutils/strateval.py:377 #, python-format msgid "Black has a new piece in outpost: %s" msgstr "" #: lib/pychess/Utils/lutils/strateval.py:416 #, python-format msgid "%(color)s has a new passed pawn on %(cord)s" msgstr "" #: lib/pychess/Utils/lutils/strateval.py:470 msgid "half-open" msgstr "" #: lib/pychess/Utils/lutils/strateval.py:472 #, python-format msgid "in the %(x)s%(y)s file" msgstr "" #: lib/pychess/Utils/lutils/strateval.py:474 #, python-format msgid "in the %(x)s%(y)s files" msgstr "" #: lib/pychess/Utils/lutils/strateval.py:477 #, python-format msgid "%(color)s got a double pawn %(place)s" msgstr "" #: lib/pychess/Utils/lutils/strateval.py:478 #, python-format msgid "%(color)s got new double pawns %(place)s" msgstr "" #: lib/pychess/Utils/lutils/strateval.py:485 #, python-format msgid "%(color)s got an isolated pawn in the %(x)s file" msgid_plural "%(color)s got isolated pawns in the %(x)s files" msgstr[0] "" msgstr[1] "" msgstr[2] "" msgstr[3] "" msgstr[4] "" msgstr[5] "" #: lib/pychess/Utils/lutils/strateval.py:492 #, python-format msgid "%s moves pawns into stonewall formation" msgstr "" #: lib/pychess/Utils/lutils/strateval.py:507 #: lib/pychess/Utils/lutils/strateval.py:514 #, python-format msgid "%s can no longer castle" msgstr "" #: lib/pychess/Utils/lutils/strateval.py:508 #: lib/pychess/Utils/lutils/strateval.py:515 #, python-format msgid "%s can no longer castle in queenside" msgstr "" #: lib/pychess/Utils/lutils/strateval.py:510 #: lib/pychess/Utils/lutils/strateval.py:517 #, python-format msgid "%s can no longer castle in kingside" msgstr "" #: lib/pychess/Utils/lutils/strateval.py:551 #, python-format msgid "%(opcolor)s has a new trapped bishop on %(cord)s" msgstr "" #: lib/pychess/Utils/lutils/strateval.py:573 #, python-format msgid "develops a pawn: %s" msgstr "" #: lib/pychess/Utils/lutils/strateval.py:574 #, python-format msgid "brings a pawn closer to the backrow: %s" msgstr "" #: lib/pychess/Utils/lutils/strateval.py:591 #, python-format msgid "brings a %(piece)s closer to enemy king: %(cord)s" msgstr "" #: lib/pychess/Utils/lutils/strateval.py:594 #, python-format msgid "develops a %(piece)s: %(cord)s" msgstr "" #: lib/pychess/Utils/lutils/strateval.py:612 #, python-format msgid "places a %(piece)s more active: %(cord)s" msgstr "" #: lib/pychess/Utils/lutils/strateval.py:638 msgid "White should do pawn storm in right" msgstr "" #: lib/pychess/Utils/lutils/strateval.py:640 msgid "Black should do pawn storm in left" msgstr "" #: lib/pychess/Utils/lutils/strateval.py:643 msgid "White should do pawn storm in left" msgstr "" #: lib/pychess/Utils/lutils/strateval.py:645 msgid "Black should do pawn storm in right" msgstr "" #: lib/pychess/Utils/lutils/strateval.py:671 msgid "Black has a rather cramped position" msgstr "" #: lib/pychess/Utils/lutils/strateval.py:673 msgid "Black has a slightly cramped position" msgstr "" #: lib/pychess/Utils/lutils/strateval.py:675 msgid "White has a rather cramped position" msgstr "" #: lib/pychess/Utils/lutils/strateval.py:677 msgid "White has a slightly cramped position" msgstr "" #: sidepanel/annotationPanel.py:26 msgid "Annotation" msgstr "" #: sidepanel/annotationPanel.py:29 msgid "Annotated game" msgstr "" #: sidepanel/annotationPanel.py:236 msgid "Copy PGN" msgstr "" #: sidepanel/annotationPanel.py:249 msgid "Add start comment" msgstr "" #: sidepanel/annotationPanel.py:254 msgid "Add comment" msgstr "" #: sidepanel/annotationPanel.py:258 sidepanel/annotationPanel.py:316 msgid "Edit comment" msgstr "" #: sidepanel/annotationPanel.py:269 msgid "Forced move" msgstr "" #: sidepanel/annotationPanel.py:274 msgid "Add move symbol" msgstr "" #: sidepanel/annotationPanel.py:280 msgid "Unclear position" msgstr "" #: sidepanel/annotationPanel.py:289 msgid "Zugzwang" msgstr "" #: sidepanel/annotationPanel.py:290 msgid "Development adv." msgstr "" #: sidepanel/annotationPanel.py:291 msgid "Initiative" msgstr "" #: sidepanel/annotationPanel.py:292 msgid "With attack" msgstr "" #: sidepanel/annotationPanel.py:293 msgid "Compensation" msgstr "" #: sidepanel/annotationPanel.py:294 msgid "Counterplay" msgstr "" #: sidepanel/annotationPanel.py:295 msgid "Time pressure" msgstr "" #: sidepanel/annotationPanel.py:300 msgid "Add evaluation symbol" msgstr "" #: sidepanel/annotationPanel.py:304 msgid "Remove symbols" msgstr "" #: sidepanel/annotationPanel.py:911 #, python-format msgid "round %s" msgstr "" #: sidepanel/bookPanel.py:21 msgid "Hints" msgstr "" #: sidepanel/bookPanel.py:25 msgid "" "The hint panel will provide computer advice during each stage of the game" msgstr "" #: sidepanel/bookPanel.py:27 msgid "Official PyChess panel." msgstr "" #: sidepanel/bookPanel.py:87 msgid "Opening Book" msgstr "" #: sidepanel/bookPanel.py:88 msgid "" "The opening book will try to inspire you during the opening phase of the " "game by showing you common moves made by chess masters" msgstr "" #: sidepanel/bookPanel.py:139 #, python-format msgid "Analysis by %s" msgstr "" #: sidepanel/bookPanel.py:140 #, python-format msgid "" "%s will try to predict which move is best and which side has the advantage" msgstr "" #: sidepanel/bookPanel.py:142 #, python-format msgid "Threat analysis by %s" msgstr "" #: sidepanel/bookPanel.py:143 #, python-format msgid "" "%s will identify what threats would exist if it were your opponent's turn to" " move" msgstr "" #: sidepanel/bookPanel.py:159 sidepanel/bookPanel.py:269 msgid "Calculating..." msgstr "" #: sidepanel/bookPanel.py:300 msgid "" "Engine scores are in units of pawns, from White's point of view. Double " "clicking on analysis lines you can insert them into Annotation panel as " "variations." msgstr "" #: sidepanel/bookPanel.py:302 msgid "" "Adding suggestions can help you find ideas, but slows down the computer's " "analysis." msgstr "" #: sidepanel/bookPanel.py:311 msgid "Endgame Table" msgstr "" #: sidepanel/bookPanel.py:315 msgid "" "The endgame table will show exact analysis when there are few pieces on the " "board." msgstr "" #: sidepanel/bookPanel.py:364 sidepanel/bookPanel.py:367 #, python-format msgid "Mate in %d" msgstr "" #: sidepanel/bookPanel.py:554 msgid "" "In this position,\n" "there is no legal move." msgstr "" #: sidepanel/chatPanel.py:21 msgid "" "The chat panel lets you communicate with your opponent during the game, " "assuming he or she is interested" msgstr "" #: sidepanel/commentPanel.py:16 msgid "Comments" msgstr "" #: sidepanel/commentPanel.py:20 msgid "The comments panel will try to analyze and explain the moves played" msgstr "" #: sidepanel/commentPanel.py:121 msgid "Initial position" msgstr "" #: sidepanel/commentPanel.py:254 #, python-format msgid "%(color)s moves a %(piece)s to %(cord)s" msgstr "" #: sidepanel/engineOutputPanel.py:15 msgid "Engines" msgstr "" #: sidepanel/engineOutputPanel.py:20 msgid "" "The engine output panel shows the thinking output of chess engines (computer" " players) during a game" msgstr "" #: sidepanel/engineOutputPanel.py:44 msgid "No chess engines (computer players) are participating in this game." msgstr "" #: sidepanel/historyPanel.py:10 msgid "Move History" msgstr "" #: sidepanel/historyPanel.py:13 msgid "" "The moves sheet keeps track of the players' moves and lets you navigate " "through the game history" msgstr "" #: sidepanel/scorePanel.py:15 msgid "Score" msgstr "" #: sidepanel/scorePanel.py:19 msgid "" "The score panel tries to evaluate the positions and shows you a graph of the" " game progress" msgstr "" pychess-0.12.2/lang/ar/LC_MESSAGES/pychess.mo0000644000175000017470000001026012653231273020676 0ustar tamasusers00000000000000?Y p'q ! 0=O `lsz     ##Gflsx      *0%6 \ g r~     0   ! )B l  %   & ! < V ] j q )     3 F V o ; +    =Scl(| ) "2 A K\Y  !*8cx?/8! 2%7# 6$0:+)*,-'= (19 5">& 4.<;3Promote pawn to what?AnalyzingAnimationDate of gameEnter Game NotationGame dataNewsPlay Sound When...PlayersToolsA player _checks:A player _moves:About ChessBishopEvent:Gain:Game informationGame is _drawn:Game is _lost:Game is _won:KnightLog on as _GuestMinutes:New GameOffer _DrawOpen GamePlayer _RatingPreferencesPromotionPyChess - Connect to Internet ChessPyChess - Internet Chess: FICSQueenRatingRookRound:Save Game _AsSaved gameSend seekSite:Sp_y modeThe game ended in a drawThe game has been killedTimeUse _analyzerUse _inverted analyzer_Accept_Actions_Call Flag_Game_Help_Hide tabs when only one game is open_Hint mode_Load Game_Log Viewer_Name:_New Game_Password:_Rotate Board_Save Game_Start Game_Use sounds in PyChess_ViewProject-Id-Version: pychess Report-Msgid-Bugs-To: POT-Creation-Date: 2016-01-27 13:28+0100 PO-Revision-Date: 2016-01-28 08:56+0000 Last-Translator: slav0nic Language-Team: Arabic (http://www.transifex.com/gbtami/pychess/language/ar/) MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Language: ar Plural-Forms: nplurals=6; plural=n==0 ? 0 : n==1 ? 1 : n==2 ? 2 : n%100>=3 && n%100<=10 ? 3 : n%100>=11 && n%100<=99 ? 4 : 5; رهينة لتعزيز ما؟تحليلصور متحركةبيانات اللعبةأدخل تأشيرة اللعبةبيانات اللعبةالأخبارتشغيل الصوت عند..اللاعبونأدواتاللاعب الأول _تشك ملكاللاعب الاول _تحركبخصوص الشطرنجفيلمناسبةكسبمعلومات اللعبةاللعبه إنتهت _بالتعادل_خسرت اللعبة_ربحت اللعبةالحصانالدخول بحساب زائردقائق:لعبة جديدةعرض _تعادلفتح لعبةترتيب_ اللاعبالتفضيلاتترقيةPyChess - اتصل بالشطرنج على الانترنتPychess - شطرنج الإنترنت: FICSوزيرالتقييمقلعةجولةحفظ اللعبة باسم_لعبة محفوظةأرسل طلبموقعطريقة Sp_yاللعبة انتهت بالتعادلتم إنهاء اللعبةالوقتإستخدام _المحللإستخدام _المحلل العكسيموافقة_إجراءات_طلب علم_لعبة__مساعدة_إخفاء علامات التبويب فقط عندما تكون اللعبة مفتوحة_إختيار طريقةتحميل لعبة__عارض التقارير_الاسم:لعبة جديدة_كلمة المرور__تغيير إتجاه لوحة اللعبحفظ اللعبة_بدأ اللعبة__إستخدام الصوت_عرضpychess-0.12.2/lang/zh_CN/0000755000175000017470000000000012653231274015477 5ustar tamasusers00000000000000pychess-0.12.2/lang/zh_CN/LC_MESSAGES/0000755000175000017470000000000012653231274017264 5ustar tamasusers00000000000000pychess-0.12.2/lang/zh_CN/LC_MESSAGES/pychess.po0000644000175000017470000025236012653216212021305 0ustar tamasusers00000000000000# SOME DESCRIPTIVE TITLE. # Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER # This file is distributed under the same license as the pychess package. # # Translators: # FIRST AUTHOR , 2008 # doZeR , 2014 # Tiansworld , 2013 msgid "" msgstr "" "Project-Id-Version: pychess\n" "Report-Msgid-Bugs-To: \n" "POT-Creation-Date: 2016-01-27 13:28+0100\n" "PO-Revision-Date: 2016-01-28 08:56+0000\n" "Last-Translator: slav0nic \n" "Language-Team: Chinese (China) (http://www.transifex.com/gbtami/pychess/language/zh_CN/)\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" "Language: zh_CN\n" "Plural-Forms: nplurals=1; plural=0;\n" # "Plural-Forms: nplurals=INTEGER; plural=EXPRESSION;\n" #: glade/analyze_game.glade:22 msgid "Analyze game" msgstr "" #: glade/analyze_game.glade:87 msgid "Use analyzer:" msgstr "" #: glade/analyze_game.glade:122 glade/PyChess.glade:2054 msgid "Maximum analysis time in seconds:" msgstr "" #: glade/analyze_game.glade:163 msgid "" "If the analyzer finds a move where the evaluation difference (the difference" " between the evaluation for the move it thinks is the best move and the " "evaluation for the move made in the game) exceeds this value, it will add an" " annotation for that move (consisting of the engine's Principal Variation " "for the move) to the Annotation panel" msgstr "" #: glade/analyze_game.glade:164 msgid "Variation annotation creation threshold in centipawns:" msgstr "" #: glade/analyze_game.glade:198 msgid "Analyze from current position" msgstr "" #: glade/analyze_game.glade:214 msgid "Add threatening variation lines " msgstr "" #: glade/analyze_game.glade:229 glade/PyChess.glade:1459 msgid "Colorize analyzed moves" msgstr "" #: glade/analyze_game.glade:244 glade/PyChess.glade:1495 msgid "Show evaluation values" msgstr "" #: glade/discovererDialog.glade:18 msgid "PyChess is discovering your engines. Please wait." msgstr "PyChess 正在寻找你的引擎,请稍候。" #: glade/discovererDialog.glade:77 msgid "PyChess.py:" msgstr "PyChess.py:" #: glade/discovererDialog.glade:89 msgid "ShredderLinuxChess:" msgstr "ShredderLinuxChess:" #: glade/discovererDialog.glade:101 msgid "gnuchess:" msgstr "gnuchess:" #: glade/fics_logon.glade:7 msgid "PyChess - Connect to Internet Chess" msgstr "PyChess - 连接到互联网象棋" #: glade/fics_logon.glade:47 msgid "Connect to the Free Online Chess Server" msgstr "连接到Free Online Chess Server" #: glade/fics_logon.glade:129 glade/taskers.glade:394 msgid "_Password:" msgstr "密码(_P):" #: glade/fics_logon.glade:143 msgid "_Name:" msgstr "用户名(_N):" #: glade/fics_logon.glade:191 msgid "Log on as _Guest" msgstr "登录为来宾用户(_G)" #: glade/fics_logon.glade:227 msgid "Host:" msgstr "" #: glade/fics_logon.glade:259 msgid "Po_rts:" msgstr "端口(_R):" #: glade/fics_logon.glade:271 msgid "Auto login on startup" msgstr "" #: glade/fics_logon.glade:385 msgid "S_ign up" msgstr "注册" #: glade/fics_lounge.glade:35 msgid "Challenge: " msgstr "挑战: <玩家>" #: glade/fics_lounge.glade:97 msgid "Send Challenge" msgstr "发出挑战" #: glade/fics_lounge.glade:133 msgid "Challenge:" msgstr "挑战:" #: glade/fics_lounge.glade:327 glade/fics_lounge.glade:2078 msgid "Lightning:" msgstr "超快棋:" #: glade/fics_lounge.glade:351 glade/fics_lounge.glade:2102 msgid "Standard:" msgstr "标准:" #: glade/fics_lounge.glade:375 glade/fics_lounge.glade:2126 msgid "Blitz:" msgstr "快棋:" #: glade/fics_lounge.glade:400 msgid "2 min, Fischer Random, Black" msgstr "" #: glade/fics_lounge.glade:422 msgid "10 min + 6 sec/move, White" msgstr "" #: glade/fics_lounge.glade:444 msgid "5 min" msgstr "5 分钟" #: glade/fics_lounge.glade:480 msgid "Edit Seek" msgstr "编辑查找条件" #: glade/fics_lounge.glade:584 lib/pychess/ic/ICLounge.py:2208 #: lib/pychess/ic/__init__.py:101 lib/pychess/Utils/GameModel.py:206 msgid "Untimed" msgstr "不限时间" #: glade/fics_lounge.glade:637 msgid "Minutes: " msgstr "分钟: " #: glade/fics_lounge.glade:665 msgid " Gain: " msgstr "" #: glade/fics_lounge.glade:703 msgid "Time control: " msgstr "时间控制: " #: glade/fics_lounge.glade:716 lib/pychess/ic/FICSObjects.py:56 #: lib/pychess/ic/ICLounge.py:1137 lib/pychess/ic/ICLounge.py:2208 #: lib/pychess/ic/__init__.py:99 msgid "Standard" msgstr "标准" #: glade/fics_lounge.glade:757 glade/newInOut.glade:633 msgid "Time Control" msgstr "时间控制" #: glade/fics_lounge.glade:814 glade/fics_lounge.glade:1346 msgid "Don't care" msgstr "不必在意" #: glade/fics_lounge.glade:879 msgid "Your strength: " msgstr "你的棋力:" #: glade/fics_lounge.glade:921 msgid "(Blitz)" msgstr "(快棋)" #: glade/fics_lounge.glade:951 msgid "Opponent's strength: " msgstr "对手棋力:" #: glade/fics_lounge.glade:1055 msgid "" "When this button is in the \"locked\" state, the relationship\n" "between \"Opponent's strength\" and \"Your strength\" will be\n" "preserved when \n" "a) your rating for the type of game sought has changed\n" "b) you change the variant or the time control" msgstr "" #: glade/fics_lounge.glade:1095 msgid "Center:" msgstr "" #: glade/fics_lounge.glade:1134 msgid "1200" msgstr "1200" #: glade/fics_lounge.glade:1188 msgid "Tolerance:" msgstr "" #: glade/fics_lounge.glade:1243 lib/pychess/ic/ICLounge.py:2452 msgid "Hide" msgstr "隐藏" #: glade/fics_lounge.glade:1289 msgid "Opponent Strength" msgstr "" #: glade/fics_lounge.glade:1386 lib/pychess/Database/gamelist.py:40 #: lib/pychess/ic/ICLounge.py:1357 lib/pychess/ic/ICLounge.py:1557 #: lib/pychess/ic/ICLounge.py:2108 lib/pychess/Utils/repr.py:10 #: lib/pychess/widgets/ChessClock.py:40 #: lib/pychess/widgets/TaskerManager.py:153 msgid "White" msgstr "白方" #: glade/fics_lounge.glade:1414 lib/pychess/Database/gamelist.py:40 #: lib/pychess/ic/ICLounge.py:1358 lib/pychess/ic/ICLounge.py:1558 #: lib/pychess/ic/ICLounge.py:2110 lib/pychess/Utils/repr.py:10 #: lib/pychess/widgets/ChessClock.py:40 #: lib/pychess/widgets/TaskerManager.py:154 msgid "Black" msgstr "黑方" #: glade/fics_lounge.glade:1453 msgid "Your Color" msgstr "您的颜色" #: glade/fics_lounge.glade:1512 msgid "Play normal chess rules" msgstr "" #: glade/fics_lounge.glade:1552 msgid "Play" msgstr "开始游戏" #: glade/fics_lounge.glade:1618 glade/newInOut.glade:833 msgid "Chess Variant" msgstr "" #: glade/fics_lounge.glade:1676 msgid "Rated game" msgstr "积分游戏" #: glade/fics_lounge.glade:1692 msgid "Manually accept opponent" msgstr "手动接受对手" #: glade/fics_lounge.glade:1722 msgid "Options" msgstr "选项" #: glade/fics_lounge.glade:1750 msgid "PyChess - Internet Chess: FICS" msgstr "PyChess - 网络象棋:免费网络象棋服务器 (FICS)" #: glade/fics_lounge.glade:1823 msgid "_Clear Seeks" msgstr "清空查询(_C)" #: glade/fics_lounge.glade:1847 msgid "_Accept" msgstr "接受(_A)" #: glade/fics_lounge.glade:1871 msgid "_Decline" msgstr "拒绝(_D)" #: glade/fics_lounge.glade:2151 msgid "2 min, Fischer Random, 1800↓, Black" msgstr "时限2分钟,Fischer规则,1800分以下,执黑棋" #: glade/fics_lounge.glade:2172 msgid "10 min + 6 sec/move, 1400↑, White" msgstr "时限10分钟,每步棋加6秒,1400分以上,执白棋" #: glade/fics_lounge.glade:2193 msgid "5 min, 1200-1800, Manual" msgstr "5 分钟,1200-1800,手动" #: glade/fics_lounge.glade:2247 msgid "Send all seeks" msgstr "" #: glade/fics_lounge.glade:2301 msgid "Send seek" msgstr "开始寻找" #: glade/fics_lounge.glade:2337 msgid "Create Seek" msgstr "开始查找" #: glade/fics_lounge.glade:2353 msgid "_Seeks / Challenges" msgstr "查找/挑战(_S)" #: glade/fics_lounge.glade:2374 lib/pychess/ic/ICLounge.py:472 #: lib/pychess/ic/ICLounge.py:670 lib/pychess/ic/ICLounge.py:1357 #: lib/pychess/ic/ICLounge.py:1358 msgid "Rating" msgstr "等级分" #: glade/fics_lounge.glade:2399 msgid "Time" msgstr "时间" #: glade/fics_lounge.glade:2419 msgid "Seek _Graph" msgstr "" #: glade/fics_lounge.glade:2444 msgid "0 Players Ready" msgstr "0 个玩家已就绪" #: glade/fics_lounge.glade:2496 msgid "Challenge" msgstr "挑战" #: glade/fics_lounge.glade:2549 glade/fics_lounge.glade:2735 msgid "Observe" msgstr "旁观" #: glade/fics_lounge.glade:2602 msgid "Start Private Chat" msgstr "进行私聊" #: glade/fics_lounge.glade:2659 msgid "_Player List" msgstr "玩家列表(_P)" #: glade/fics_lounge.glade:2792 msgid "_Game List" msgstr "游戏列表(_G)" #: glade/fics_lounge.glade:2847 msgid "_My games" msgstr "" #: glade/fics_lounge.glade:2904 glade/PyChess.glade:841 msgid "Offer _Resume" msgstr "" #: glade/fics_lounge.glade:2962 glade/PyChess.glade:880 msgid "R_esign" msgstr "认输(_E)" #: glade/fics_lounge.glade:3006 glade/PyChess.glade:820 msgid "Offer _Draw" msgstr "提议和棋(_D)" #: glade/fics_lounge.glade:3050 msgid "Offer A_bort" msgstr "提议取消(_B)" #: glade/fics_lounge.glade:3107 msgid "Pre_view" msgstr "预览(_V)" #: glade/fics_lounge.glade:3151 msgid "Examine" msgstr "" #: glade/fics_lounge.glade:3208 msgid "_Archived" msgstr "" #: glade/fics_lounge.glade:3313 msgid "News" msgstr "新闻" #: glade/fics_lounge.glade:3345 msgid "Show Console" msgstr "" #: glade/fics_lounge.glade:3359 msgid "Show _Chat" msgstr "显示 对话(_C)" #: glade/fics_lounge.glade:3373 msgid "_Log Off" msgstr "登出(_L)" #: glade/fics_lounge.glade:3393 msgid "Tools" msgstr "工具" #: glade/fics_lounge.glade:3428 msgid "Asymmetric Random " msgstr "" #: glade/findbar.glade:6 msgid "window1" msgstr "" #: glade/findbar.glade:21 msgid "0 of 0" msgstr "0 中的 0" #: glade/findbar.glade:66 msgid "Search:" msgstr "查找:" #: glade/findbar.glade:134 msgid "_Previous" msgstr "上一个(_P)" #: glade/findbar.glade:192 msgid "_Next" msgstr "下一个(_N)" #: glade/newInOut.glade:45 lib/pychess/widgets/newGameDialog.py:445 msgid "New Game" msgstr "新游戏" #: glade/newInOut.glade:108 msgid "_Start Game" msgstr "开始游戏(_S)" #: glade/newInOut.glade:130 msgid "Copy FEN" msgstr "" #: glade/newInOut.glade:143 msgid "Clear" msgstr "" #: glade/newInOut.glade:156 msgid "Paste FEN" msgstr "" #: glade/newInOut.glade:257 msgid "_Black player:" msgstr "黑方选手" #: glade/newInOut.glade:274 msgid "_White player:" msgstr "白方选手" #: glade/newInOut.glade:385 msgid "Players" msgstr "玩家" #: glade/newInOut.glade:436 msgid "_Untimed" msgstr "不限时(_U)" #: glade/newInOut.glade:475 msgid "Blitz: 5 min" msgstr "" #: glade/newInOut.glade:526 msgid "Rapid: 15 min + 10 sec/move" msgstr "" #: glade/newInOut.glade:575 msgid "Normal: 40 min + 15 sec/move" msgstr "" #: glade/newInOut.glade:684 msgid "_Play Normal chess" msgstr "玩普通棋(_P)" #: glade/newInOut.glade:724 msgid "Play Fischer Random chess" msgstr "" #: glade/newInOut.glade:774 msgid "Play Losers chess" msgstr "" #: glade/newInOut.glade:919 msgid "Open Game" msgstr "打开游戏" #: glade/newInOut.glade:1162 msgid "Initial Position" msgstr "最初的位置" #: glade/newInOut.glade:1219 msgid "Enter Game Notation" msgstr "进入游戏记谱" #: glade/newInOut.glade:1314 msgid "Halfmove clock" msgstr "" #: glade/newInOut.glade:1327 msgid "En passant line" msgstr "" #: glade/newInOut.glade:1339 msgid "Side to move" msgstr "" #: glade/newInOut.glade:1351 msgid "Move number" msgstr "" #: glade/newInOut.glade:1361 msgid "Black O-O" msgstr "" #: glade/newInOut.glade:1375 msgid "Black O-O-O" msgstr "" #: glade/newInOut.glade:1389 msgid "White O-O-O" msgstr "" #: glade/newInOut.glade:1403 msgid "White O-O" msgstr "" #: glade/promotion.glade:7 msgid "Promotion" msgstr "升变" #: glade/promotion.glade:49 lib/pychess/Utils/repr.py:12 msgid "Queen" msgstr "后" #: glade/promotion.glade:95 lib/pychess/Utils/repr.py:12 msgid "Rook" msgstr "车" #: glade/promotion.glade:141 lib/pychess/Utils/repr.py:12 msgid "Bishop" msgstr "象" #: glade/promotion.glade:187 lib/pychess/Utils/repr.py:12 msgid "Knight" msgstr "马" #: glade/promotion.glade:233 lib/pychess/Utils/repr.py:12 msgid "King" msgstr "王" #: glade/promotion.glade:265 msgid "Promote pawn to what?" msgstr "兵升变为什么?" #: glade/PyChess.glade:9 msgid "Chess client" msgstr "" #: glade/PyChess.glade:44 msgid "Game information" msgstr "游戏信息" #: glade/PyChess.glade:164 msgid "Event:" msgstr "事件:" #: glade/PyChess.glade:178 msgid "Site:" msgstr "站点:" #: glade/PyChess.glade:204 msgid "Round:" msgstr "轮次:" #: glade/PyChess.glade:237 msgid "White:" msgstr "" #: glade/PyChess.glade:249 msgid "Black:" msgstr "" #: glade/PyChess.glade:302 msgid "Game data" msgstr "游戏数据" #: glade/PyChess.glade:357 msgid "Date of game" msgstr "游戏日期" #: glade/PyChess.glade:495 msgid "_Game" msgstr "游戏(_G)" #: glade/PyChess.glade:502 msgid "_New Game" msgstr "新游戏(_N)" #: glade/PyChess.glade:515 msgid "Play _Internet Chess" msgstr "开始线上对战" #: glade/PyChess.glade:534 msgid "_Load Game" msgstr "读取游戏(_L)" #: glade/PyChess.glade:550 msgid "Load _Recent Game" msgstr "载入最近的游戏(_R)" #: glade/PyChess.glade:558 msgid "Open _Database" msgstr "" #: glade/PyChess.glade:569 lib/pychess/widgets/newGameDialog.py:615 msgid "Setup Position" msgstr "设置位置" #: glade/PyChess.glade:579 msgid "Enter Game _Notation" msgstr "" #: glade/PyChess.glade:592 msgid "_Save Game" msgstr "保存游戏(_Save)" #: glade/PyChess.glade:606 msgid "Save Game _As" msgstr "游戏另存为(_A)" #: glade/PyChess.glade:624 msgid "Share Game" msgstr "" #: glade/PyChess.glade:630 msgid "_Export Position" msgstr "" #: glade/PyChess.glade:644 msgid "_Analyze Game" msgstr "" #: glade/PyChess.glade:678 msgid "Player _Rating" msgstr "玩家积分(_P)" #: glade/PyChess.glade:723 msgid "_Edit" msgstr "" #: glade/PyChess.glade:734 msgid "_Copy PGN" msgstr "" #: glade/PyChess.glade:746 msgid "_Copy FEN" msgstr "" #: glade/PyChess.glade:763 msgid "_Engines" msgstr "" #: glade/PyChess.glade:789 msgid "_Actions" msgstr "操作(_A)" #: glade/PyChess.glade:800 msgid "Offer _Abort" msgstr "请求中断" #: glade/PyChess.glade:810 msgid "Offer Ad_journment" msgstr "" #: glade/PyChess.glade:831 msgid "Offer _Pause" msgstr "请求暂停" #: glade/PyChess.glade:847 msgid "Offer _Undo" msgstr "请求悔棋" #: glade/PyChess.glade:870 msgid "_Call Flag" msgstr "请求裁判(_C)" #: glade/PyChess.glade:890 msgid "Ask to _Move" msgstr "" #: glade/PyChess.glade:905 msgid "Auto Call _Flag" msgstr "" #: glade/PyChess.glade:918 msgid "_View" msgstr "查看(_V)" #: glade/PyChess.glade:925 msgid "_Rotate Board" msgstr "旋转棋盘(_R)" #: glade/PyChess.glade:939 msgid "_Fullscreen" msgstr "全屏(_F)" #: glade/PyChess.glade:952 msgid "Leave _Fullscreen" msgstr "离开全屏(_F)" #: glade/PyChess.glade:969 msgid "_Show Sidepanels" msgstr "显示边栏(_S)" #: glade/PyChess.glade:980 msgid "_Log Viewer" msgstr "日志查看(_L)" #: glade/PyChess.glade:997 msgid "_Hint mode" msgstr "提示模式(_H)" #: glade/PyChess.glade:1009 msgid "Sp_y mode" msgstr "间谍模式(_y)" #: glade/PyChess.glade:1024 msgid "_Help" msgstr "帮助(_H)" #: glade/PyChess.glade:1034 msgid "About Chess" msgstr "关于" #: glade/PyChess.glade:1043 msgid "How to Play" msgstr "如何游戏" #: glade/PyChess.glade:1052 msgid "Translate PyChess" msgstr "翻译 PyChess" #: glade/PyChess.glade:1058 msgid "Tip of the Day" msgstr "今日提示" #: glade/PyChess.glade:1153 msgid "Default" msgstr "" #: glade/PyChess.glade:1156 msgid "Knights" msgstr "" #: glade/PyChess.glade:1167 lib/pychess/widgets/preferencesDialog.py:349 msgid "Beep" msgstr "" #: glade/PyChess.glade:1170 lib/pychess/widgets/preferencesDialog.py:350 msgid "Select sound file..." msgstr "选择声音文件…" #: glade/PyChess.glade:1173 lib/pychess/widgets/preferencesDialog.py:348 msgid "No sound" msgstr "无声" #: glade/PyChess.glade:1180 msgid "Preferences" msgstr "首选项" #: glade/PyChess.glade:1218 msgid "The displayed name of the first human player, e.g., John." msgstr "P1的显示名称,例如 约翰" #: glade/PyChess.glade:1230 msgid "Name of _first human player:" msgstr "" #: glade/PyChess.glade:1259 msgid "The displayed name of the guest player, e.g., Mary." msgstr "" #: glade/PyChess.glade:1271 msgid "Name of s_econd human player:" msgstr "" #: glade/PyChess.glade:1307 msgid "_Hide tabs when only one game is open" msgstr "只有一个游戏的时候隐藏标签(_H)" #: glade/PyChess.glade:1312 msgid "" "If set, this hides the tab in the top of the playing window, when it is not " "needed." msgstr "" #: glade/PyChess.glade:1326 msgid "_Use main app closer [x] to close all games" msgstr "" #: glade/PyChess.glade:1331 msgid "" "If set, clicking on main application window closer first time it closes all " "games." msgstr "" #: glade/PyChess.glade:1345 msgid "Auto _rotate board to current human player" msgstr "" #: glade/PyChess.glade:1350 msgid "" "If set, the board will turn after each move, to show the natural view for " "the current player." msgstr "" #: glade/PyChess.glade:1364 msgid "Auto _promote to queen" msgstr "" #: glade/PyChess.glade:1369 msgid "If set, pawn promotes to queen without promotion dialog selection." msgstr "" #: glade/PyChess.glade:1383 msgid "Face _to Face display mode" msgstr "面对面显示模式(_T)" #: glade/PyChess.glade:1388 msgid "" "If set, the black pieces will be head down, suitable for playing against " "friends on mobile devices." msgstr "" #: glade/PyChess.glade:1402 msgid "Sho_w cords" msgstr "" #: glade/PyChess.glade:1407 msgid "" "If set, the playing board will display labels and ranks for each chess " "field. These are usable in chess notation." msgstr "" #: glade/PyChess.glade:1421 msgid "Show _captured pieces" msgstr "" #: glade/PyChess.glade:1426 msgid "If set, the captured figurines will be shown next to the board." msgstr "" #: glade/PyChess.glade:1440 msgid "Prefer figures in _notation" msgstr "" #: glade/PyChess.glade:1445 msgid "" "If set, PyChess will use figures to express moved pieces, rather than " "uppercase letters." msgstr "" #: glade/PyChess.glade:1464 msgid "If set, PyChess will colorize suboptimal analyzed moves with red." msgstr "" #: glade/PyChess.glade:1477 msgid "Show elapsed move times" msgstr "" #: glade/PyChess.glade:1482 msgid "If set, the elapsed time that a player used for the move is shown." msgstr "" #: glade/PyChess.glade:1500 msgid "If set, the hint analyzer engine evaluation value is shown." msgstr "" #: glade/PyChess.glade:1526 msgid "General Options" msgstr "" #: glade/PyChess.glade:1560 msgid "F_ull board animation" msgstr "" #: glade/PyChess.glade:1565 msgid "Animate pieces, board rotation and more. Use this on fast machines." msgstr "" #: glade/PyChess.glade:1579 msgid "Only animate _moves" msgstr "" #: glade/PyChess.glade:1584 msgid "Only animate piece moves." msgstr "只显示棋子移动时的动画" #: glade/PyChess.glade:1599 msgid "No _animation" msgstr "无动画(_A)" #: glade/PyChess.glade:1604 msgid "Never use animation. Use this on slow machines." msgstr "永远不显示动画.在配置差的机器上用这项." #: glade/PyChess.glade:1632 msgid "Animation" msgstr "动画" #: glade/PyChess.glade:1651 msgid "_General" msgstr "常规(G)" #: glade/PyChess.glade:1692 msgid "Use opening _book" msgstr "" #: glade/PyChess.glade:1697 msgid "If set, PyChess will suggest best opening moves on hint panel." msgstr "" #: glade/PyChess.glade:1724 msgid "Polyglot book file:" msgstr "" #: glade/PyChess.glade:1768 msgid "Use _local tablebases" msgstr "" #: glade/PyChess.glade:1773 msgid "" "If set, PyChess will show game results for different moves in positions containing 6 or less pieces.\n" "You can download tablebase files from:\n" "http://www.olympuschess.com/egtb/gaviota/" msgstr "" #: glade/PyChess.glade:1803 msgid "Gaviota TB path:" msgstr "" #: glade/PyChess.glade:1843 msgid "Use _online tablebases" msgstr "" #: glade/PyChess.glade:1848 msgid "" "If set, PyChess will show game results for different moves in positions containing 6 or less pieces.\n" "It will search positions from http://www.k4it.de/" msgstr "" #: glade/PyChess.glade:1870 msgid "Opening, endgame" msgstr "" #: glade/PyChess.glade:1904 msgid "Use _analyzer" msgstr "使用分析工具(_a)" #: glade/PyChess.glade:1946 msgid "" "The analyzer will run in the background and analyze the game. This is " "necessary for the hint mode to work" msgstr "" #: glade/PyChess.glade:1978 msgid "Use _inverted analyzer" msgstr "使用逆向分析工具(_i)" #: glade/PyChess.glade:2020 msgid "" "The inverse analyzer will analyze the game as if your opponent was to move. " "This is necessary for the spy mode to work" msgstr "" #: glade/PyChess.glade:2096 msgid "Analyzing" msgstr "分析中" #: glade/PyChess.glade:2118 msgid "_Hints" msgstr "" #: glade/PyChess.glade:2263 msgid "Uninstall" msgstr "卸载" #: glade/PyChess.glade:2317 msgid "Ac_tive" msgstr "" #: glade/PyChess.glade:2367 msgid "Installed Sidepanels" msgstr "已安装侧栏面板" #: glade/PyChess.glade:2382 msgid "Side_panels" msgstr "侧栏面板(_P)" #: glade/PyChess.glade:2440 msgid "Light Squares :" msgstr "" #: glade/PyChess.glade:2479 msgid "Dark Squares :" msgstr "" #: glade/PyChess.glade:2515 msgid "Reset Default Colours" msgstr "" #: glade/PyChess.glade:2551 msgid "Board Colours" msgstr "" #: glade/PyChess.glade:2610 msgid "Chess Sets" msgstr "" #: glade/PyChess.glade:2634 msgid "Themes" msgstr "" #: glade/PyChess.glade:2659 msgid "_Use sounds in PyChess" msgstr "在PyChess中使用声音" #: glade/PyChess.glade:2982 msgid "A player _checks:" msgstr "将军(_c):" #: glade/PyChess.glade:2997 msgid "A player _moves:" msgstr "走棋(_m):" #: glade/PyChess.glade:3010 msgid "Game is _drawn:" msgstr "和棋:" #: glade/PyChess.glade:3025 msgid "Game is _lost:" msgstr "输棋:" #: glade/PyChess.glade:3040 msgid "Game is _won:" msgstr "赢棋:" #: glade/PyChess.glade:3055 msgid "A player c_aptures:" msgstr "吃子(_a):" #: glade/PyChess.glade:3084 msgid "Game is _set-up:" msgstr "比赛开始(_s):" #: glade/PyChess.glade:3136 msgid "_Observed moves:" msgstr "定式(_O):" #: glade/PyChess.glade:3151 msgid "Observed _ends:" msgstr "残局(_e):" #: glade/PyChess.glade:3265 msgid "Short on _time:" msgstr "" #: glade/PyChess.glade:3317 msgid "_Invalid move:" msgstr "" #: glade/PyChess.glade:3369 msgid "Activate alarm when _remaining sec is:" msgstr "" #: glade/PyChess.glade:3416 msgid "Play Sound When..." msgstr "当...播放声音" #: glade/PyChess.glade:3438 msgid "_Sounds" msgstr "声音(_S)" #: glade/PyChess.glade:3463 msgid "_Auto save finished games" msgstr "" #: glade/PyChess.glade:3497 msgid "Save files to:" msgstr "" #: glade/PyChess.glade:3525 msgid "Use name format:" msgstr "" #: glade/PyChess.glade:3569 msgid "Names: #n1, #n2" msgstr "" #: glade/PyChess.glade:3582 msgid "Year, month, day: #y, #m, #d" msgstr "" #: glade/PyChess.glade:3619 msgid "Save elapsed move _times" msgstr "" #: glade/PyChess.glade:3644 msgid "Save analyzing engine _evaluation values" msgstr "" #: glade/PyChess.glade:3669 msgid "Save _own games only" msgstr "" #: glade/PyChess.glade:3698 msgid "Save" msgstr "" #: glade/PyChess.glade:3728 msgid "uci" msgstr "" #: glade/PyChess.glade:3731 msgid "xboard" msgstr "" #: glade/PyChess.glade:3739 msgid "Manage engines" msgstr "" #: glade/PyChess.glade:3837 msgid "Command:" msgstr "" #: glade/PyChess.glade:3851 msgid "Protocol:" msgstr "" #: glade/PyChess.glade:3865 msgid "Parameters:" msgstr "" #: glade/PyChess.glade:3878 msgid "Command line parameters needed by the engine." msgstr "" #: glade/PyChess.glade:3903 msgid "" "Engines use uci or xboard communication protocol to talk to the GUI.\n" "If it can use both you can set here which one you like." msgstr "" #: glade/PyChess.glade:3929 msgid "Working directory:" msgstr "" #: glade/PyChess.glade:3942 msgid "The directory where the engine will be started from." msgstr "" #: glade/saveGamesDialog.glade:7 msgid "Quit PyChess" msgstr "退出Pychess" #: glade/saveGamesDialog.glade:24 lib/pychess/widgets/ionest.py:424 msgid "Close _without Saving" msgstr "关闭而不保存(_W)" #: glade/saveGamesDialog.glade:83 msgid "_Save %d documents" msgstr "保存 %d 文档(_S)" #: glade/saveGamesDialog.glade:141 msgid "" "There are %d games with unsaved moves. Save changes before " "closing?" msgstr "有 %d 个游戏还未保存. 关闭前先保存吗?" #: glade/saveGamesDialog.glade:161 msgid "Select the games you want to save:" msgstr "请选择你想要保存的游戏:" #: glade/saveGamesDialog.glade:204 msgid "If you don't save, new changes to your games will be permanently lost." msgstr "如果不保存,您游戏的新更改将永久丢失。" #: glade/taskers.glade:126 msgid "_Opponent:" msgstr "" #: glade/taskers.glade:154 msgid "_Your Color:" msgstr "您的颜色(_Y):" #: glade/taskers.glade:219 msgid "_Start Game" msgstr "开始游戏(_S)" #: glade/taskers.glade:338 msgid "Log on as G_uest" msgstr "以访客身份登录(_U)" #: glade/taskers.glade:410 msgid "Ha_ndle:" msgstr "" #: glade/taskers.glade:469 msgid "_Connect to server" msgstr "" #: glade/tipoftheday.glade:7 msgid "Tip Of The day" msgstr "日积月累" #: glade/tipoftheday.glade:62 msgid "Show tips at startup" msgstr "启动时显示日积月累" #: lib/pychess/Main.py:302 msgid "http://en.wikipedia.org/wiki/Chess" msgstr "http://zh.wikipedia.org/wiki/%E5%9B%BD%E9%99%85%E8%B1%A1%E6%A3%8B" #: lib/pychess/Main.py:305 msgid "http://en.wikipedia.org/wiki/Rules_of_chess" msgstr "http://zh.wikipedia.org/wiki/%E5%9B%BD%E9%99%85%E8%B1%A1%E6%A3%8B#.E8.A6.8F.E5.89.87" #: lib/pychess/Main.py:370 lib/pychess/widgets/gamenanny.py:80 msgid "Welcome" msgstr "欢迎" #: lib/pychess/Database/gamelist.py:40 msgid "Id" msgstr "" #: lib/pychess/Database/gamelist.py:40 msgid "W Elo" msgstr "" #: lib/pychess/Database/gamelist.py:40 msgid "B Elo" msgstr "" #: lib/pychess/Database/gamelist.py:41 msgid "Result" msgstr "" #: lib/pychess/Database/gamelist.py:41 msgid "Event" msgstr "" #: lib/pychess/Database/gamelist.py:41 msgid "Site" msgstr "" #: lib/pychess/Database/gamelist.py:41 msgid "Round" msgstr "" #: lib/pychess/Database/gamelist.py:41 msgid "Date" msgstr "" #: lib/pychess/Database/gamelist.py:41 msgid "ECO" msgstr "" #: lib/pychess/Database/gamelist.py:62 msgid "PyChess Game Database" msgstr "" #: lib/pychess/Database/PgnImport.py:188 #, python-format msgid "The game #%s can't be loaded, because of an error parsing FEN" msgstr "" #: lib/pychess/ic/FICSConnection.py:139 msgid "The connection was broken - got \"end of file\" message" msgstr "连接已经断开 - 存在\"end of file\"信息" #: lib/pychess/ic/FICSConnection.py:140 #, python-format msgid "'%s' is not a registered name" msgstr "'%s'不是一个注册姓名" #: lib/pychess/ic/FICSConnection.py:141 msgid "" "The entered password was invalid.\n" "If you forgot your password, go to http://www.freechess.org/password to request a new one over email." msgstr "" #: lib/pychess/ic/FICSConnection.py:145 #, python-format msgid "Sorry '%s' is already logged in" msgstr "" #: lib/pychess/ic/FICSConnection.py:146 #, python-format msgid "'%s' is a registered name. If it is yours, type the password." msgstr "" #: lib/pychess/ic/FICSConnection.py:147 msgid "" "Due to abuse problems, guest connections have been prevented.\n" "You can still register on http://www.freechess.org" msgstr "" #: lib/pychess/ic/FICSConnection.py:166 msgid "Connecting to server" msgstr "正在连接到服务器" #: lib/pychess/ic/FICSConnection.py:181 msgid "Logging on to server" msgstr "正在登录到服务器" #: lib/pychess/ic/FICSConnection.py:239 msgid "Setting up environment" msgstr "正在设置环境" #: lib/pychess/ic/FICSObjects.py:35 lib/pychess/ic/FICSObjects.py:47 #, python-format msgid "%(player)s is %(status)s" msgstr "%(player)s 目前 %(status)s" #: lib/pychess/ic/FICSObjects.py:46 msgid "not playing" msgstr "" #: lib/pychess/ic/FICSObjects.py:54 lib/pychess/ic/ICLounge.py:1136 #: lib/pychess/ic/ICLounge.py:2209 lib/pychess/ic/__init__.py:98 #: lib/pychess/widgets/newGameDialog.py:153 msgid "Blitz" msgstr "快速" #: lib/pychess/ic/FICSObjects.py:58 lib/pychess/ic/ICLounge.py:1137 #: lib/pychess/ic/ICLounge.py:2209 lib/pychess/ic/__init__.py:100 msgid "Lightning" msgstr "闪电" #: lib/pychess/ic/FICSObjects.py:60 lib/pychess/Variants/atomic.py:15 msgid "Atomic" msgstr "" #: lib/pychess/ic/FICSObjects.py:62 lib/pychess/Variants/bughouse.py:9 msgid "Bughouse" msgstr "" #: lib/pychess/ic/FICSObjects.py:64 lib/pychess/Variants/crazyhouse.py:9 msgid "Crazyhouse" msgstr "" #: lib/pychess/ic/FICSObjects.py:66 lib/pychess/Variants/losers.py:9 msgid "Losers" msgstr "失败者" #: lib/pychess/ic/FICSObjects.py:68 lib/pychess/Variants/suicide.py:12 msgid "Suicide" msgstr "" #: lib/pychess/ic/FICSObjects.py:70 lib/pychess/ic/__init__.py:129 msgid "Wild" msgstr "" #: lib/pychess/ic/FICSObjects.py:117 msgid "Online" msgstr "在线" #: lib/pychess/ic/FICSObjects.py:118 lib/pychess/ic/FICSObjects.py:143 msgid "Offline" msgstr "离线" #: lib/pychess/ic/FICSObjects.py:133 msgid "Available" msgstr "可用" #: lib/pychess/ic/FICSObjects.py:135 msgid "Playing" msgstr "游戏中" #: lib/pychess/ic/FICSObjects.py:141 msgid "Idle" msgstr "空闲" #: lib/pychess/ic/FICSObjects.py:145 msgid "Examining" msgstr "" #: lib/pychess/ic/FICSObjects.py:147 msgid "Not Available" msgstr "不可用" #: lib/pychess/ic/FICSObjects.py:149 msgid "Running Simul Match" msgstr "" #: lib/pychess/ic/FICSObjects.py:151 msgid "In Tournament" msgstr "" #: lib/pychess/ic/FICSObjects.py:308 lib/pychess/ic/FICSObjects.py:492 #: lib/pychess/ic/ICLounge.py:2278 msgid "Unrated" msgstr "不计分" #: lib/pychess/ic/FICSObjects.py:491 lib/pychess/ic/ICLounge.py:670 #: lib/pychess/ic/ICLounge.py:1358 lib/pychess/ic/ICLounge.py:1558 #: lib/pychess/ic/ICLounge.py:2113 msgid "Rated" msgstr "已记分" #: lib/pychess/ic/FICSObjects.py:498 lib/pychess/ic/ICLounge.py:2098 #, python-format msgid "%d min" msgstr "%d 分钟" #: lib/pychess/ic/FICSObjects.py:500 #, python-format msgid " + %d sec" msgstr " + %d 秒" #: lib/pychess/ic/FICSObjects.py:517 #, python-format msgid "%(player)s plays %(color)s" msgstr "" #: lib/pychess/ic/FICSObjects.py:519 lib/pychess/ic/ICLounge.py:909 msgid "white" msgstr "" #: lib/pychess/ic/FICSObjects.py:519 lib/pychess/ic/ICLounge.py:909 msgid "black" msgstr "" #: lib/pychess/ic/FICSObjects.py:565 msgid "This is a continuation of an adjourned match" msgstr "" #: lib/pychess/ic/FICSObjects.py:654 msgid "Opponent Rating" msgstr "" #: lib/pychess/ic/FICSObjects.py:656 msgid "Manual Accept" msgstr "手动接受" #: lib/pychess/ic/FICSObjects.py:810 msgid "Private" msgstr "" #: lib/pychess/ic/FICSObjects.py:930 lib/pychess/ic/ICLounge.py:527 #: lib/pychess/Savers/epd.py:139 msgid "Unknown" msgstr "未知的" #: lib/pychess/ic/ICLogon.py:159 lib/pychess/ic/ICLogon.py:165 msgid "Connection Error" msgstr "连接错误" #: lib/pychess/ic/ICLogon.py:161 msgid "Log on Error" msgstr "登录错误" #: lib/pychess/ic/ICLogon.py:163 msgid "Connection was closed" msgstr "连接已经关闭" #: lib/pychess/ic/ICLogon.py:169 msgid "Address Error" msgstr "地址错误" #: lib/pychess/ic/ICLogon.py:172 msgid "Auto-logout" msgstr "自动注销" #: lib/pychess/ic/ICLogon.py:173 msgid "You have been logged out because you were idle more than 60 minutes" msgstr "您已经注销因为您空闲时间超过了 60 分钟" #: lib/pychess/ic/ICLounge.py:222 msgid "You have to set kibitz on to see bot messages here." msgstr "" #: lib/pychess/ic/ICLounge.py:241 msgid "" "You may only have 3 outstanding seeks at the same time. If you want to add a" " new seek you must clear your currently active seeks. Clear your seeks?" msgstr "" #: lib/pychess/ic/ICLounge.py:258 msgid "You can't touch this! You are examining a game." msgstr "" #: lib/pychess/ic/ICLounge.py:270 msgid " has declined your offer for a match" msgstr "" #: lib/pychess/ic/ICLounge.py:283 msgid " is censoring you" msgstr "" #: lib/pychess/ic/ICLounge.py:296 msgid " noplay listing you" msgstr "" #: lib/pychess/ic/ICLounge.py:311 msgid " uses a formula not fitting your match request:" msgstr "" #: lib/pychess/ic/ICLounge.py:325 msgid "to manual accept" msgstr "" #: lib/pychess/ic/ICLounge.py:327 msgid "to automatic accept" msgstr "" #: lib/pychess/ic/ICLounge.py:329 msgid "rating range now" msgstr "" #: lib/pychess/ic/ICLounge.py:330 msgid "Seek updated" msgstr "" #: lib/pychess/ic/ICLounge.py:342 msgid "Your seeks have been removed" msgstr "" #: lib/pychess/ic/ICLounge.py:363 msgid " has arrived" msgstr "" #: lib/pychess/ic/ICLounge.py:370 msgid " has departed" msgstr "" #: lib/pychess/ic/ICLounge.py:374 msgid " is present" msgstr "" #: lib/pychess/ic/ICLounge.py:391 sidepanel/chatPanel.py:17 msgid "Chat" msgstr "对话" #: lib/pychess/ic/ICLounge.py:472 sidepanel/bookPanel.py:366 msgid "Win" msgstr "获胜" #: lib/pychess/ic/ICLounge.py:472 sidepanel/bookPanel.py:360 msgid "Draw" msgstr "平局" #: lib/pychess/ic/ICLounge.py:472 sidepanel/bookPanel.py:363 msgid "Loss" msgstr "失败" #: lib/pychess/ic/ICLounge.py:482 msgid "" "On FICS, your \"Wild\" rating encompasses all of the following variants at " "all time controls:\n" msgstr "" #: lib/pychess/ic/ICLounge.py:494 msgid "Sanctions" msgstr "" #: lib/pychess/ic/ICLounge.py:499 msgid "Email" msgstr "电子邮件" #: lib/pychess/ic/ICLounge.py:504 msgid "Spent" msgstr "花费" #: lib/pychess/ic/ICLounge.py:506 msgid "online in total" msgstr "在线总数" #: lib/pychess/ic/ICLounge.py:512 msgid "Ping" msgstr "牵制" #: lib/pychess/ic/ICLounge.py:517 msgid "Connecting" msgstr "连接中" #: lib/pychess/ic/ICLounge.py:544 msgid "" "You are currently logged in as a guest.\n" "A guest can't play rated games and therefore isn't able to play as many of the types of matches offered as a registered user. To register an account, go to http://www.freechess.org/Register/index.html." msgstr "" #: lib/pychess/ic/ICLounge.py:669 lib/pychess/ic/ICLounge.py:1136 msgid "Name" msgstr "姓名" #: lib/pychess/ic/ICLounge.py:670 lib/pychess/ic/ICLounge.py:1358 #: lib/pychess/ic/ICLounge.py:1558 msgid "Type" msgstr "类別" #: lib/pychess/ic/ICLounge.py:670 lib/pychess/ic/ICLounge.py:1558 msgid "Clock" msgstr "时钟" #: lib/pychess/ic/ICLounge.py:726 lib/pychess/ic/ICLounge.py:923 #: lib/pychess/Players/Human.py:250 msgid "Accept" msgstr "" #: lib/pychess/ic/ICLounge.py:728 msgid "Assess" msgstr "" #: lib/pychess/ic/ICLounge.py:734 msgid "Archived" msgstr "" #: lib/pychess/ic/ICLounge.py:848 #, python-format msgid "Active seeks: %d" msgstr "" #: lib/pychess/ic/ICLounge.py:897 #, python-format msgid "" " would like to resume your adjourned %(time)s %(gametype)s " "game." msgstr "" #: lib/pychess/ic/ICLounge.py:902 #, python-format msgid "" " challenges you to a %(time)s %(rated)s %(gametype)s game" msgstr "" #: lib/pychess/ic/ICLounge.py:907 #, python-format msgid " where %(player)s plays %(color)s." msgstr "" #: lib/pychess/ic/ICLounge.py:924 lib/pychess/Players/Human.py:251 msgid "Decline" msgstr "" #: lib/pychess/ic/ICLounge.py:1065 msgid " min" msgstr " 分钟" #: lib/pychess/ic/ICLounge.py:1137 msgid "Status" msgstr "状态" #: lib/pychess/ic/ICLounge.py:1203 lib/pychess/ic/ICLounge.py:1233 #, python-format msgid "Players: %d" msgstr "玩家:%d" #: lib/pychess/ic/ICLounge.py:1469 #, python-format msgid "Games running: %d" msgstr "" #: lib/pychess/ic/ICLounge.py:1559 msgid "Date/Time" msgstr "日期/时间" #: lib/pychess/ic/ICLounge.py:1614 #, python-format msgid "" " with whom you have an adjourned %(timecontrol)s %(gametype)s " "game is online." msgstr "" #: lib/pychess/ic/ICLounge.py:1635 msgid "Request Continuation" msgstr "请求继续" #: lib/pychess/ic/ICLounge.py:1637 msgid "Examine Adjourned Game" msgstr "" #: lib/pychess/ic/ICLounge.py:1965 msgid "" "The chain button is disabled because you are logged in as a guest. Guests " "can't establish ratings, and the chain button's state has no effect when " "there is no rating to which to tie \"Opponent Strength\" to" msgstr "" #: lib/pychess/ic/ICLounge.py:2006 msgid "Challenge: " msgstr "" #: lib/pychess/ic/ICLounge.py:2044 msgid "If set you can refuse players accepting your seek" msgstr "" #: lib/pychess/ic/ICLounge.py:2048 lib/pychess/ic/ICLounge.py:2051 msgid "This option is not applicable because you're challenging a player" msgstr "" #: lib/pychess/ic/ICLounge.py:2064 msgid "Edit Seek: " msgstr "" #: lib/pychess/ic/ICLounge.py:2095 #, python-format msgid "%(minutes)d min + %(gain)d sec/move" msgstr "" #: lib/pychess/ic/ICLounge.py:2116 msgid "Manual" msgstr "手动" #: lib/pychess/ic/ICLounge.py:2256 msgid "Any strength" msgstr "任何能量" #: lib/pychess/ic/ICLounge.py:2308 msgid "You can't play rated games because you are logged in as a guest" msgstr "" #: lib/pychess/ic/ICLounge.py:2312 msgid "You can't play rated games because \"Untimed\" is checked, " msgstr "" #: lib/pychess/ic/ICLounge.py:2313 msgid "and on FICS, untimed games can't be rated" msgstr "" #: lib/pychess/ic/ICLounge.py:2317 msgid "This option is not available because you're challenging a guest, " msgstr "" #: lib/pychess/ic/ICLounge.py:2318 msgid "and guests can't play rated games" msgstr "" #: lib/pychess/ic/ICLounge.py:2332 lib/pychess/Variants/shuffle.py:16 #: lib/pychess/widgets/newGameDialog.py:266 msgid "Shuffle" msgstr "随机" #: lib/pychess/ic/ICLounge.py:2333 lib/pychess/widgets/newGameDialog.py:267 msgid "Other (standard rules)" msgstr "" #: lib/pychess/ic/ICLounge.py:2334 lib/pychess/widgets/newGameDialog.py:268 msgid "Other (non standard rules)" msgstr "" #: lib/pychess/ic/ICLounge.py:2421 msgid "You can't select a variant because \"Untimed\" is checked, " msgstr "" #: lib/pychess/ic/ICLounge.py:2422 msgid "and on FICS, untimed games have to be normal chess rules" msgstr "" #: lib/pychess/ic/ICLounge.py:2454 msgid "Change Tolerance" msgstr "" #: lib/pychess/ic/__init__.py:102 msgid "Examined" msgstr "" #: lib/pychess/ic/__init__.py:103 msgid "Other" msgstr "其它" #: lib/pychess/ic/__init__.py:182 msgid "Administrator" msgstr "管理员" #: lib/pychess/ic/__init__.py:182 msgid "Blindfold Account" msgstr "" #: lib/pychess/ic/__init__.py:182 msgid "Computer" msgstr "" #: lib/pychess/ic/__init__.py:183 msgid "Team Account" msgstr "团队账户" #: lib/pychess/ic/__init__.py:183 msgid "Unregistered" msgstr "" #: lib/pychess/ic/__init__.py:183 msgid "Chess Advisor" msgstr "" #: lib/pychess/ic/__init__.py:184 msgid "Service Representative" msgstr "" #: lib/pychess/ic/__init__.py:184 msgid "Tournament Director" msgstr "" #: lib/pychess/ic/__init__.py:184 msgid "Mamer Manager" msgstr "" #: lib/pychess/ic/__init__.py:185 msgid "Grand Master" msgstr "超级大师" #: lib/pychess/ic/__init__.py:185 msgid "International Master" msgstr "国际大师" #: lib/pychess/ic/__init__.py:185 msgid "FIDE Master" msgstr "国际棋联大师" #: lib/pychess/ic/__init__.py:186 msgid "Woman Grand Master" msgstr "" #: lib/pychess/ic/__init__.py:186 msgid "Woman International Master" msgstr "" #: lib/pychess/ic/__init__.py:186 msgid "Woman FIDE Master" msgstr "" #: lib/pychess/ic/__init__.py:187 msgid "Dummy Account" msgstr "" #: lib/pychess/ic/__init__.py:191 msgid "*" msgstr "*" #: lib/pychess/ic/__init__.py:191 lib/pychess/Utils/repr.py:14 msgid "B" msgstr "B" #: lib/pychess/ic/__init__.py:191 msgid "C" msgstr "C" #: lib/pychess/ic/__init__.py:192 msgid "T" msgstr "T" #: lib/pychess/ic/__init__.py:192 msgid "U" msgstr "U" #: lib/pychess/ic/__init__.py:192 msgid "CA" msgstr "CA" #: lib/pychess/ic/__init__.py:193 msgid "SR" msgstr "SR" #: lib/pychess/ic/__init__.py:193 msgid "TD" msgstr "TD" #: lib/pychess/ic/__init__.py:193 msgid "TM" msgstr "TM" #: lib/pychess/ic/__init__.py:194 msgid "GM" msgstr "GM" #: lib/pychess/ic/__init__.py:194 msgid "IM" msgstr "IM" #: lib/pychess/ic/__init__.py:194 msgid "FM" msgstr "FM" #: lib/pychess/ic/__init__.py:195 msgid "WGM" msgstr "WGM" #: lib/pychess/ic/__init__.py:195 msgid "WIM" msgstr "WIM" #: lib/pychess/ic/__init__.py:195 msgid "WFM" msgstr "" #: lib/pychess/ic/__init__.py:195 msgid "D" msgstr "D" #: lib/pychess/ic/__init__.py:195 msgid "H" msgstr "" #: lib/pychess/ic/__init__.py:195 msgid "CM" msgstr "" #: lib/pychess/ic/__init__.py:195 msgid "FA" msgstr "" #: lib/pychess/ic/__init__.py:195 msgid "NM" msgstr "" #: lib/pychess/Players/CECPEngine.py:857 #, python-format msgid "The engine %s reports an error:" msgstr "" #: lib/pychess/Players/Human.py:20 msgid "Your opponent has offered you a draw." msgstr "" #: lib/pychess/Players/Human.py:21 msgid "" "Your opponent has offered you a draw. If you accept this offer, the game " "will end with a score of 1/2 - 1/2." msgstr "" #: lib/pychess/Players/Human.py:23 msgid "Your opponent wants to abort the game." msgstr "" #: lib/pychess/Players/Human.py:24 msgid "" "Your opponent has asked that the game be aborted. If you accept this offer, " "the game will end with no rating change." msgstr "" #: lib/pychess/Players/Human.py:26 msgid "Your opponent wants to adjourn the game." msgstr "" #: lib/pychess/Players/Human.py:27 msgid "" "Your opponent has asked that the game be adjourned. If you accept this " "offer, the game will be adjourned and you can resume it later (when your " "opponent is online and both players agree to resume)." msgstr "" #: lib/pychess/Players/Human.py:29 #, python-format msgid "Your opponent wants to undo %s move(s)." msgstr "" #: lib/pychess/Players/Human.py:30 #, python-format msgid "" "Your opponent has asked that the last %s move(s) be undone. If you accept " "this offer, the game will continue from the earlier position." msgstr "" #: lib/pychess/Players/Human.py:32 msgid "Your opponent wants to pause the game." msgstr "" #: lib/pychess/Players/Human.py:33 msgid "" "Your opponent has asked that the game be paused. If you accept this offer, " "the game clock will be paused until both players agree to resume the game." msgstr "" #: lib/pychess/Players/Human.py:35 msgid "Your opponent wants to resume the game." msgstr "" #: lib/pychess/Players/Human.py:36 msgid "" "Your opponent has asked that the game be resumed. If you accept this offer, " "the game clock will continue from where it was paused." msgstr "" #: lib/pychess/Players/Human.py:40 msgid "The resignation" msgstr "" #: lib/pychess/Players/Human.py:41 msgid "The flag call" msgstr "" #: lib/pychess/Players/Human.py:42 msgid "The draw offer" msgstr "" #: lib/pychess/Players/Human.py:43 msgid "The abort offer" msgstr "" #: lib/pychess/Players/Human.py:44 msgid "The adjourn offer" msgstr "" #: lib/pychess/Players/Human.py:45 msgid "The pause offer" msgstr "" #: lib/pychess/Players/Human.py:46 msgid "The resume offer" msgstr "" #: lib/pychess/Players/Human.py:47 msgid "The offer to switch sides" msgstr "" #: lib/pychess/Players/Human.py:48 msgid "The takeback offer" msgstr "" #: lib/pychess/Players/Human.py:52 msgid "resign" msgstr "" #: lib/pychess/Players/Human.py:53 msgid "call your opponents flag" msgstr "" #: lib/pychess/Players/Human.py:54 msgid "offer a draw" msgstr "" #: lib/pychess/Players/Human.py:55 msgid "offer an abort" msgstr "" #: lib/pychess/Players/Human.py:56 msgid "offer to adjourn" msgstr "" #: lib/pychess/Players/Human.py:57 msgid "offer a pause" msgstr "" #: lib/pychess/Players/Human.py:58 msgid "offer to resume" msgstr "" #: lib/pychess/Players/Human.py:59 msgid "offer to switch sides" msgstr "" #: lib/pychess/Players/Human.py:60 msgid "offer a takeback" msgstr "" #: lib/pychess/Players/Human.py:61 msgid "ask your opponent to move" msgstr "要求您的对手走棋" #: lib/pychess/Players/Human.py:66 msgid "Your opponent is not out of time." msgstr "您的对手未超时。" #: lib/pychess/Players/Human.py:68 msgid "The clock hasn't been started yet." msgstr "时钟还没有开始。" #: lib/pychess/Players/Human.py:70 msgid "You can't switch colors during the game." msgstr "游戏期间您不能切换颜色。" #: lib/pychess/Players/Human.py:72 msgid "You have tried to undo too many moves." msgstr "您已经尝试撤销太多走棋。" #: lib/pychess/Players/Human.py:180 msgid "Your opponent asks you to hurry!" msgstr "您的对手请您快点!" #: lib/pychess/Players/Human.py:181 msgid "" "Generally this means nothing, as the game is time-based, but if you want to " "please your opponent, perhaps you should get going." msgstr "" #: lib/pychess/Players/Human.py:259 #, python-format msgid "%s was declined by your opponent" msgstr "您的对手拒绝了%s。" #: lib/pychess/Players/Human.py:260 #, python-format msgid "Resend %s?" msgstr "" #: lib/pychess/Players/Human.py:267 msgid "Resend" msgstr "" #: lib/pychess/Players/Human.py:275 #, python-format msgid "%s was withdrawn by your opponent" msgstr "您的对手撤销了%s。" #: lib/pychess/Players/Human.py:276 msgid "Your opponent seems to have changed their mind." msgstr "" #: lib/pychess/Players/Human.py:290 #, python-format msgid "Unable to accept %s" msgstr "无法接受%s。" #: lib/pychess/Players/Human.py:291 msgid "Probably because it has been withdrawn." msgstr "" #: lib/pychess/Players/Human.py:298 #, python-format msgid "%s returns an error" msgstr "%s返回错误。" #: lib/pychess/Savers/chessalpha2.py:12 msgid "Chess Alpha 2 Diagram" msgstr "" #: lib/pychess/Savers/chesspastebin.py:39 msgid "Game shared at " msgstr "" #: lib/pychess/Savers/chesspastebin.py:41 msgid "(Link is available on clipboard.)" msgstr "" #: lib/pychess/Savers/database.py:19 msgid "PyChess database" msgstr "" #: lib/pychess/Savers/epd.py:12 msgid "Chess Position" msgstr "" #: lib/pychess/Savers/fen.py:12 msgid "Simple Chess Position" msgstr "" #: lib/pychess/Savers/fen.py:44 lib/pychess/Savers/pgn.py:329 msgid "The game can't be loaded, because of an error parsing FEN" msgstr "" #: lib/pychess/Savers/pgnbase.py:100 #, python-format msgid "" "The game can't be read to end, because of an error parsing move %(moveno)s " "'%(notation)s'." msgstr "" #: lib/pychess/Savers/pgnbase.py:102 #, python-format msgid "The move failed because %s." msgstr "走棋失败因为 %s。" #: lib/pychess/Savers/pgnbase.py:110 #, python-format msgid "Error parsing move %(moveno)s %(mstr)s" msgstr "" #: lib/pychess/Savers/pgn.py:28 msgid "Chess Game" msgstr "国际象棋" #: lib/pychess/Savers/pgn.py:362 msgid "Invalid move." msgstr "" #: lib/pychess/Savers/png.py:15 msgid "Png image" msgstr "" #: lib/pychess/System/ping.py:31 msgid "Destination Host Unreachable" msgstr "" #: lib/pychess/System/ping.py:74 msgid "Died" msgstr "" #: lib/pychess/Utils/GameModel.py:147 msgid "Local Event" msgstr "本地事件" #: lib/pychess/Utils/GameModel.py:148 msgid "Local Site" msgstr "本地站点" #: lib/pychess/Utils/repr.py:12 msgid "Pawn" msgstr "兵" #: lib/pychess/Utils/repr.py:14 msgid "P" msgstr "P" #: lib/pychess/Utils/repr.py:14 msgid "N" msgstr "N" #: lib/pychess/Utils/repr.py:14 msgid "R" msgstr "R" #: lib/pychess/Utils/repr.py:14 msgid "Q" msgstr "Q" #: lib/pychess/Utils/repr.py:14 msgid "K" msgstr "K" #: lib/pychess/Utils/repr.py:17 msgid "The game ended in a draw" msgstr "一方投降游戏结束" #: lib/pychess/Utils/repr.py:18 #, python-format msgid "%(white)s won the game" msgstr "%(white)s 赢得游戏" #: lib/pychess/Utils/repr.py:19 #, python-format msgid "%(black)s won the game" msgstr "%(black)s 赢得游戏" #: lib/pychess/Utils/repr.py:20 msgid "The game has been killed" msgstr "比赛被终止" #: lib/pychess/Utils/repr.py:21 msgid "The game has been adjourned" msgstr "比赛被封盘" #: lib/pychess/Utils/repr.py:22 msgid "The game has been aborted" msgstr "比赛被取消" #: lib/pychess/Utils/repr.py:26 msgid "Because neither player has sufficient material to mate" msgstr "" #: lib/pychess/Utils/repr.py:27 msgid "Because the same position was repeated three times in a row" msgstr "" #: lib/pychess/Utils/repr.py:28 msgid "Because the last 50 moves brought nothing new" msgstr "" #: lib/pychess/Utils/repr.py:29 msgid "Because both players ran out of time" msgstr "" #: lib/pychess/Utils/repr.py:30 #, python-format msgid "Because %(mover)s stalemated" msgstr "" #: lib/pychess/Utils/repr.py:31 msgid "Because both players agreed to a draw" msgstr "" #: lib/pychess/Utils/repr.py:32 lib/pychess/Utils/repr.py:42 msgid "Because of adjudication by an admin" msgstr "" #: lib/pychess/Utils/repr.py:33 msgid "Because the game exceed the max length" msgstr "" #: lib/pychess/Utils/repr.py:34 #, python-format msgid "" "Because %(white)s ran out of time and %(black)s has insufficient material to" " mate" msgstr "" #: lib/pychess/Utils/repr.py:35 #, python-format msgid "" "Because %(black)s ran out of time and %(white)s has insufficient material to" " mate" msgstr "" #: lib/pychess/Utils/repr.py:36 msgid "Because both players have the same amount of pieces" msgstr "" #: lib/pychess/Utils/repr.py:38 #, python-format msgid "Because %(loser)s resigned" msgstr "" #: lib/pychess/Utils/repr.py:39 #, python-format msgid "Because %(loser)s ran out of time" msgstr "因为 %(loser)s 超时" #: lib/pychess/Utils/repr.py:40 #, python-format msgid "Because %(loser)s was checkmated" msgstr "" #: lib/pychess/Utils/repr.py:41 #, python-format msgid "Because %(loser)s disconnected" msgstr "因为 %(loser)s 断开连接" #: lib/pychess/Utils/repr.py:43 #, python-format msgid "Because %(winner)s has fewer pieces" msgstr "" #: lib/pychess/Utils/repr.py:44 #, python-format msgid "Because %(winner)s lost all pieces" msgstr "" #: lib/pychess/Utils/repr.py:45 #, python-format msgid "Because %(loser)s king exploded" msgstr "" #: lib/pychess/Utils/repr.py:46 #, python-format msgid "Because %(winner)s king reached the center" msgstr "" #: lib/pychess/Utils/repr.py:47 #, python-format msgid "Because %(winner)s was giving check 3 times" msgstr "" #: lib/pychess/Utils/repr.py:49 msgid "Because a player lost connection" msgstr "因为一个玩家失去连接" #: lib/pychess/Utils/repr.py:50 msgid "Because both players agreed to an adjournment" msgstr "" #: lib/pychess/Utils/repr.py:51 msgid "Because the server was shut down" msgstr "" #: lib/pychess/Utils/repr.py:52 msgid "" "Because a player lost connection and the other player requested adjournment" msgstr "" #: lib/pychess/Utils/repr.py:53 #, python-format msgid "" "Because %(black)s lost connection to the server and %(white)s requested " "adjournment" msgstr "" #: lib/pychess/Utils/repr.py:54 #, python-format msgid "" "Because %(white)s lost connection to the server and %(black)s requested " "adjournment" msgstr "" #: lib/pychess/Utils/repr.py:55 #, python-format msgid "Because %(white)s lost connection to the server" msgstr "" #: lib/pychess/Utils/repr.py:56 #, python-format msgid "Because %(black)s lost connection to the server" msgstr "" #: lib/pychess/Utils/repr.py:58 msgid "Because of adjudication by an admin. No rating changes have occurred." msgstr "" #: lib/pychess/Utils/repr.py:59 msgid "" "Because both players agreed to abort the game. No rating changes have " "occurred." msgstr "" #: lib/pychess/Utils/repr.py:60 msgid "Because of courtesy by a player. No rating changes have occurred." msgstr "" #: lib/pychess/Utils/repr.py:61 msgid "" "Because a player aborted the game. Either player can abort the game without " "the other's consent before the second move. No rating changes have occurred." msgstr "" #: lib/pychess/Utils/repr.py:62 msgid "" "Because a player disconnected and there are too few moves to warrant " "adjournment. No rating changes have occurred." msgstr "" #: lib/pychess/Utils/repr.py:63 msgid "Because the server was shut down. No rating changes have occurred." msgstr "" #: lib/pychess/Utils/repr.py:65 #, python-format msgid "Because the %(white)s engine died" msgstr "" #: lib/pychess/Utils/repr.py:66 #, python-format msgid "Because the %(black)s engine died" msgstr "" #: lib/pychess/Utils/repr.py:67 msgid "Because the connection to the server was lost" msgstr "" #: lib/pychess/Utils/repr.py:68 msgid "The reason is unknown" msgstr "未知原因" #: lib/pychess/Utils/TimeModel.py:229 msgid "min" msgstr "分钟" #: lib/pychess/Utils/TimeModel.py:231 msgid "sec" msgstr "秒" #: lib/pychess/Variants/asean.py:12 msgid "" "ASEAN: http://www.ncf-" "phil.org/downloadables/2014/May/Asean_chess/Laws_of_ASEAN_Chess_2011_Nov_26.doc" msgstr "" #: lib/pychess/Variants/asean.py:13 msgid "ASEAN" msgstr "" #: lib/pychess/Variants/asean.py:33 msgid "Makruk: http://en.wikipedia.org/wiki/Makruk" msgstr "" #: lib/pychess/Variants/asean.py:34 msgid "Makruk" msgstr "" #: lib/pychess/Variants/asean.py:60 msgid "Cambodian: http://www.khmerinstitute.org/culture/ok.html" msgstr "" #: lib/pychess/Variants/asean.py:61 msgid "Cambodian" msgstr "" #: lib/pychess/Variants/asean.py:86 msgid "" "Ai-Wok: http://www.open-" "aurec.com/wbforum/viewtopic.php?p=199364&sid=20963a1de2c164050de019e5ed6bf7c4#p199364" msgstr "" #: lib/pychess/Variants/asean.py:87 msgid "Ai-Wok" msgstr "" #: lib/pychess/Variants/asean.py:111 msgid "Sittuyin: http://en.wikipedia.org/wiki/Sittuyin" msgstr "" #: lib/pychess/Variants/asean.py:112 msgid "Sittuyin" msgstr "" #: lib/pychess/Variants/asymmetricrandom.py:12 msgid "" "FICS wild/4: http://www.freechess.org/Help/HelpFiles/wild.html\n" "* Randomly chosen pieces (two queens or three rooks possible)\n" "* Exactly one king of each color\n" "* Pieces placed randomly behind the pawns, SUBJECT TO THE CONSTRAINT THAT THE BISHOPS ARE BALANCED\n" "* No castling\n" "* Black's arrangement DOES NOT mirrors white's" msgstr "" #: lib/pychess/Variants/asymmetricrandom.py:18 msgid "Asymmetric Random" msgstr "" #: lib/pychess/Variants/atomic.py:14 msgid "FICS atomic: http://www.freechess.org/Help/HelpFiles/atomic.html" msgstr "" #: lib/pychess/Variants/blindfold.py:7 msgid "" "Classic chess rules with hidden figurines\n" "http://en.wikipedia.org/wiki/Blindfold_chess" msgstr "" #: lib/pychess/Variants/blindfold.py:9 #: lib/pychess/widgets/newGameDialog.py:264 msgid "Blindfold" msgstr "" #: lib/pychess/Variants/blindfold.py:18 msgid "" "Classic chess rules with hidden pawns\n" "http://en.wikipedia.org/wiki/Blindfold_chess" msgstr "" #: lib/pychess/Variants/blindfold.py:20 msgid "Hidden pawns" msgstr "" #: lib/pychess/Variants/blindfold.py:29 msgid "" "Classic chess rules with hidden pieces\n" "http://en.wikipedia.org/wiki/Blindfold_chess" msgstr "" #: lib/pychess/Variants/blindfold.py:31 msgid "Hidden pieces" msgstr "" #: lib/pychess/Variants/blindfold.py:40 msgid "" "Classic chess rules with all pieces white\n" "http://en.wikipedia.org/wiki/Blindfold_chess" msgstr "" #: lib/pychess/Variants/blindfold.py:42 msgid "All white" msgstr "" #: lib/pychess/Variants/bughouse.py:8 msgid "FICS bughouse: http://www.freechess.org/Help/HelpFiles/bughouse.html" msgstr "" #: lib/pychess/Variants/corner.py:12 msgid "" "http://brainking.com/en/GameRules?tp=2\n" "* Placement of the pieces on the 1st and 8th row are randomized\n" "* The king is in the right hand corner\n" "* Bishops must start on opposite color squares\n" "* Black's starting position is obtained by rotating white's position 180 degrees around the board's center\n" "* No castling" msgstr "" #: lib/pychess/Variants/corner.py:18 msgid "Corner" msgstr "角落" #: lib/pychess/Variants/crazyhouse.py:8 msgid "" "FICS crazyhouse: http://www.freechess.org/Help/HelpFiles/crazyhouse.html" msgstr "" #: lib/pychess/Variants/euroshogi.py:9 msgid "EuroShogi: http://en.wikipedia.org/wiki/EuroShogi" msgstr "" #: lib/pychess/Variants/euroshogi.py:10 msgid "EuroShogi" msgstr "" #: lib/pychess/Variants/fischerandom.py:18 msgid "" "http://en.wikipedia.org/wiki/Chess960\n" "FICS wild/fr: http://www.freechess.org/Help/HelpFiles/wild.html" msgstr "" #: lib/pychess/Variants/fischerandom.py:20 msgid "Fischer Random" msgstr "" #: lib/pychess/Variants/kingofthehill.py:8 msgid "" "Bringing your king legally to the center (e4, d4, e5, d5) instantly wins the game!\n" "Normal rules apply in other cases and checkmate also ends the game." msgstr "" #: lib/pychess/Variants/kingofthehill.py:10 msgid "King of the hill" msgstr "" #: lib/pychess/Variants/knightodds.py:8 msgid "One player starts with one less knight piece" msgstr "" #: lib/pychess/Variants/knightodds.py:9 msgid "Knight odds" msgstr "" #: lib/pychess/Variants/losers.py:8 msgid "FICS losers: http://www.freechess.org/Help/HelpFiles/losers_chess.html" msgstr "" #: lib/pychess/Variants/normal.py:4 msgid "" "Classic chess rules\n" "http://en.wikipedia.org/wiki/Chess" msgstr "" #: lib/pychess/Variants/normal.py:6 lib/pychess/widgets/newGameDialog.py:157 msgid "Normal" msgstr "普通" #: lib/pychess/Variants/pawnodds.py:8 msgid "One player starts with one less pawn piece" msgstr "" #: lib/pychess/Variants/pawnodds.py:9 msgid "Pawn odds" msgstr "" #: lib/pychess/Variants/pawnspassed.py:11 msgid "" "FICS wild/8a: http://www.freechess.org/Help/HelpFiles/wild.html\n" "White pawns start on 5th rank and black pawns on the 4th rank" msgstr "" #: lib/pychess/Variants/pawnspassed.py:13 msgid "Pawns Passed" msgstr "" #: lib/pychess/Variants/pawnspushed.py:10 msgid "" "FICS wild/8: http://www.freechess.org/Help/HelpFiles/wild.html\n" "Pawns start on 4th and 5th ranks rather than 2nd and 7th" msgstr "" #: lib/pychess/Variants/pawnspushed.py:12 msgid "Pawns Pushed" msgstr "" #: lib/pychess/Variants/queenodds.py:8 msgid "One player starts with one less queen piece" msgstr "" #: lib/pychess/Variants/queenodds.py:9 msgid "Queen odds" msgstr "" #: lib/pychess/Variants/randomchess.py:11 msgid "" "FICS wild/3: http://www.freechess.org/Help/HelpFiles/wild.html\n" "* Randomly chosen pieces (two queens or three rooks possible)\n" "* Exactly one king of each color\n" "* Pieces placed randomly behind the pawns\n" "* No castling\n" "* Black's arrangement mirrors white's" msgstr "" #: lib/pychess/Variants/randomchess.py:17 #: lib/pychess/widgets/TaskerManager.py:155 msgid "Random" msgstr "随机" #: lib/pychess/Variants/rookodds.py:8 msgid "One player starts with one less rook piece" msgstr "" #: lib/pychess/Variants/rookodds.py:9 msgid "Rook odds" msgstr "" #: lib/pychess/Variants/shuffle.py:11 msgid "" "xboard nocastle: http://home.hccnet.nl/h.g.muller/engine-intf.html#8\n" "FICS wild/2: http://www.freechess.org/Help/HelpFiles/wild.html\n" "* Random arrangement of the pieces behind the pawns\n" "* No castling\n" "* Black's arrangement mirrors white's" msgstr "" #: lib/pychess/Variants/suicide.py:11 msgid "" "FICS suicide: http://www.freechess.org/Help/HelpFiles/suicide_chess.html" msgstr "" #: lib/pychess/Variants/theban.py:10 msgid "" "Variant developed by Kai Laskos: " "http://talkchess.com/forum/viewtopic.php?t=40990" msgstr "" #: lib/pychess/Variants/theban.py:11 msgid "Theban" msgstr "" #: lib/pychess/Variants/threecheck.py:10 msgid "Win by giving check 3 times" msgstr "" #: lib/pychess/Variants/threecheck.py:11 msgid "Three-check" msgstr "" #: lib/pychess/Variants/upsidedown.py:10 msgid "" "FICS wild/5: http://www.freechess.org/Help/HelpFiles/wild.html\n" "http://en.wikipedia.org/wiki/Chess_variant#Chess_with_different_starting_positions\n" "Pawns start on their 7th rank rather than their 2nd rank!" msgstr "" #: lib/pychess/Variants/upsidedown.py:13 msgid "Upside Down" msgstr "倒置" #: lib/pychess/Variants/wildcastle.py:10 msgid "" "xboard wildcastle http://home.hccnet.nl/h.g.muller/engine-intf.html#8\n" "FICS wild/0: http://www.freechess.org/Help/HelpFiles/wild.html\n" "* White has the typical set-up at the start.\n" "* Black's pieces are the same, except that the King and Queen are reversed,\n" "* so they are not on the same files as White's King and Queen.\n" "* Castling is done similarly to normal chess:\n" "* o-o-o indicates long castling and o-o short castling." msgstr "" #: lib/pychess/Variants/wildcastle.py:17 msgid "Wildcastle" msgstr "" #: lib/pychess/Variants/wildcastleshuffle.py:11 msgid "" "xboard wildcastle http://home.hccnet.nl/h.g.muller/engine-intf.html#8\n" "FICS wild/1: http://www.freechess.org/Help/HelpFiles/wild.html\n" "* In this variant both sides have the same set of pieces as in normal chess.\n" "* The white king starts on d1 or e1 and the black king starts on d8 or e8,\n" "* and the rooks are in their usual positions.\n" "* Bishops are always on opposite colors.\n" "* Subject to these constraints the position of the pieces on their first ranks is random.\n" "* Castling is done similarly to normal chess:\n" "* o-o-o indicates long castling and o-o short castling." msgstr "" #: lib/pychess/Variants/wildcastleshuffle.py:20 msgid "Wildcastle shuffle" msgstr "" #: lib/pychess/widgets/analyzegameDialog.py:85 msgid "Game analyzing in progress..." msgstr "" #: lib/pychess/widgets/analyzegameDialog.py:86 msgid "Do you want to abort it?" msgstr "" #: lib/pychess/widgets/analyzegameDialog.py:95 #: lib/pychess/widgets/gamewidget.py:202 lib/pychess/widgets/gamewidget.py:320 msgid "Abort" msgstr "" #: lib/pychess/widgets/ChatView.py:125 msgid "Observers" msgstr "" #: lib/pychess/widgets/ChatWindow.py:222 msgid "You have opened no conversations yet" msgstr "" #: lib/pychess/widgets/ChatWindow.py:254 msgid "Only registered users may talk to this channel" msgstr "" #: lib/pychess/widgets/ChatWindow.py:312 msgid "No conversation's selected" msgstr "" #: lib/pychess/widgets/ChatWindow.py:350 msgid "Loading player data" msgstr "" #: lib/pychess/widgets/ChatWindow.py:400 msgid "Receiving list of players" msgstr "" #: lib/pychess/widgets/ChatWindow.py:518 msgid "Friends" msgstr "" #: lib/pychess/widgets/ChatWindow.py:529 msgid "Admin" msgstr "" #: lib/pychess/widgets/ChatWindow.py:540 msgid "More channels" msgstr "" #: lib/pychess/widgets/ChatWindow.py:548 msgid "More players" msgstr "更多玩家" #: lib/pychess/widgets/ChatWindow.py:558 msgid "Computers" msgstr "" #: lib/pychess/widgets/ChatWindow.py:568 msgid "BlindFold" msgstr "" #: lib/pychess/widgets/ChatWindow.py:578 msgid "Guests" msgstr "" #: lib/pychess/widgets/ChatWindow.py:805 msgid "Conversations" msgstr "" #: lib/pychess/widgets/ChatWindow.py:807 msgid "Conversation info" msgstr "" #: lib/pychess/widgets/enginesDialog.py:152 msgid "Select engine" msgstr "" #: lib/pychess/widgets/enginesDialog.py:156 msgid "Executable files" msgstr "" #: lib/pychess/widgets/enginesDialog.py:176 #: lib/pychess/widgets/enginesDialog.py:210 #: lib/pychess/widgets/enginesDialog.py:235 #, python-format msgid "Unable to add %s" msgstr "" #: lib/pychess/widgets/enginesDialog.py:177 msgid "wine not installed" msgstr "" #: lib/pychess/widgets/enginesDialog.py:211 #: lib/pychess/widgets/enginesDialog.py:236 msgid "There is something wrong with this executable" msgstr "" #: lib/pychess/widgets/enginesDialog.py:266 msgid "Select working directory" msgstr "" #: lib/pychess/widgets/gamenanny.py:115 #, python-format msgid " invalid engine move: %s" msgstr "" #: lib/pychess/widgets/gamenanny.py:134 msgid "Offer Rematch" msgstr "" #: lib/pychess/widgets/gamenanny.py:136 lib/pychess/widgets/gamenanny.py:147 #, python-format msgid "Observe %s" msgstr "" #: lib/pychess/widgets/gamenanny.py:168 msgid "Play Rematch" msgstr "" #: lib/pychess/widgets/gamenanny.py:171 msgid "Undo one move" msgstr "悔一步棋" #: lib/pychess/widgets/gamenanny.py:173 msgid "Undo two moves" msgstr "悔两步棋" #: lib/pychess/widgets/gamenanny.py:203 msgid "The game is paused" msgstr "" #: lib/pychess/widgets/gamenanny.py:221 lib/pychess/widgets/gamenanny.py:222 msgid "Loaded game" msgstr "读取的比赛" #: lib/pychess/widgets/gamenanny.py:228 msgid "Saved game" msgstr "保存的比赛" #: lib/pychess/widgets/gamenanny.py:232 msgid "Analyzer started" msgstr "" #: lib/pychess/widgets/gamenanny.py:281 msgid "You sent an abort offer" msgstr "" #: lib/pychess/widgets/gamenanny.py:283 msgid "You sent an adjournment offer" msgstr "" #: lib/pychess/widgets/gamenanny.py:285 msgid "You sent a draw offer" msgstr "你发送了一个提和请求" #: lib/pychess/widgets/gamenanny.py:287 msgid "You sent a pause offer" msgstr "" #: lib/pychess/widgets/gamenanny.py:289 msgid "You sent a resume offer" msgstr "" #: lib/pychess/widgets/gamenanny.py:291 msgid "You sent an undo offer" msgstr "" #: lib/pychess/widgets/gamenanny.py:293 msgid "You asked your opponent to move" msgstr "" #: lib/pychess/widgets/gamenanny.py:305 #, python-format msgid "Engine, %s, has died" msgstr "引擎(%s)已经僵死" #: lib/pychess/widgets/gamenanny.py:306 msgid "" "PyChess has lost connection to the engine, probably because it has died.\n" "\n" "You can try to start a new game with the engine, or try to play against another one." msgstr "PyChess已经失去与国际象棋引擎的连接,可能是引擎已经僵死。\n\n你可以尝试仍然使用此引擎开始一个新游戏,或者使用另外一个引擎比赛。" #: lib/pychess/widgets/gamewidget.py:204 msgid "" "This game can be automatically aborted without rating loss because there has" " not yet been two moves made" msgstr "" #: lib/pychess/widgets/gamewidget.py:206 msgid "Offer Abort" msgstr "" #: lib/pychess/widgets/gamewidget.py:208 msgid "" "Your opponent must agree to abort the game because there has been two or " "more moves made" msgstr "" #: lib/pychess/widgets/gamewidget.py:226 msgid "This game can not be adjourned because one or both players are guests" msgstr "" #: lib/pychess/widgets/gamewidget.py:243 msgid "Claim Draw" msgstr "" #: lib/pychess/widgets/gamewidget.py:325 msgid "Pause" msgstr "" #: lib/pychess/widgets/gamewidget.py:326 msgid "Resume" msgstr "" #: lib/pychess/widgets/gamewidget.py:328 msgid "Offer Pause" msgstr "" #: lib/pychess/widgets/gamewidget.py:329 msgid "Offer Resume" msgstr "" #: lib/pychess/widgets/gamewidget.py:333 msgid "Undo" msgstr "" #: lib/pychess/widgets/gamewidget.py:335 msgid "Offer Undo" msgstr "" #: lib/pychess/widgets/gamewidget.py:550 msgid " has lagged for 30 seconds" msgstr "" #: lib/pychess/widgets/gamewidget.py:566 msgid " is lagging heavily but hasn't disconnected" msgstr "" #: lib/pychess/widgets/gamewidget.py:567 msgid "Continue to wait for opponent, or try to adjourn the game?" msgstr "" #: lib/pychess/widgets/gamewidget.py:575 msgid "Wait" msgstr "" #: lib/pychess/widgets/gamewidget.py:576 msgid "Adjourn" msgstr "" #: lib/pychess/widgets/gamewidget.py:648 msgid "Jump to initial position" msgstr "" #: lib/pychess/widgets/gamewidget.py:653 msgid "Step back one move" msgstr "" #: lib/pychess/widgets/gamewidget.py:658 msgid "Go back to the main line" msgstr "" #: lib/pychess/widgets/gamewidget.py:664 msgid "Step forward one move" msgstr "" #: lib/pychess/widgets/gamewidget.py:669 msgid "Jump to latest position" msgstr "" #: lib/pychess/widgets/gamewidget.py:903 msgid "PyChess was unable to load your panel settings" msgstr "" #: lib/pychess/widgets/gamewidget.py:904 msgid "" "Your panel settings have been reset. If this problem repeats, you should " "report it to the developers" msgstr "" #: lib/pychess/widgets/ionest.py:67 lib/pychess/widgets/newGameDialog.py:389 #: lib/pychess/widgets/TaskerManager.py:210 msgid "You" msgstr "" #: lib/pychess/widgets/ionest.py:70 lib/pychess/widgets/newGameDialog.py:390 #: lib/pychess/widgets/preferencesDialog.py:61 #: lib/pychess/widgets/TaskerManager.py:213 msgid "Guest" msgstr "来宾" #: lib/pychess/widgets/ionest.py:93 msgid "Error loading game" msgstr "" #: lib/pychess/widgets/ionest.py:127 lib/pychess/widgets/newGameDialog.py:480 msgid "Open Game" msgstr "公开赛" #: lib/pychess/widgets/ionest.py:137 msgid "All Files" msgstr "所有文件" #: lib/pychess/widgets/ionest.py:140 msgid "Detect type automatically" msgstr "自动探测类型" #: lib/pychess/widgets/ionest.py:146 msgid "All Chess Files" msgstr "所有象棋文件" #: lib/pychess/widgets/ionest.py:228 msgid "Save Game" msgstr "保存游戏" #: lib/pychess/widgets/ionest.py:228 msgid "Export position" msgstr "" #: lib/pychess/widgets/ionest.py:232 lib/pychess/widgets/ionest.py:360 msgid "vs." msgstr "" #: lib/pychess/widgets/ionest.py:249 #, python-format msgid "Unknown file type '%s'" msgstr "未知文件类型‘%s’" #: lib/pychess/widgets/ionest.py:250 #, python-format msgid "" "Was unable to save '%(uri)s' as PyChess doesn't know the format " "'%(ending)s'." msgstr "" #: lib/pychess/widgets/ionest.py:266 #, python-format msgid "Unable to save file '%s'" msgstr "无法保存文件‘%s’" #: lib/pychess/widgets/ionest.py:268 msgid "" "You don't have the necessary rights to save the file.\n" "Please ensure that you have given the right path and try again." msgstr "" #: lib/pychess/widgets/ionest.py:276 msgid "_Replace" msgstr "" #: lib/pychess/widgets/ionest.py:280 msgid "File exists" msgstr "文件存在" #: lib/pychess/widgets/ionest.py:282 #, python-format msgid "" "A file named '%s' already exists. Would you like to replace " "it?" msgstr "" #: lib/pychess/widgets/ionest.py:283 #, python-format msgid "" "The file already exists in '%s'. If you replace it, its content will be " "overwritten." msgstr "" #: lib/pychess/widgets/ionest.py:299 msgid "Could not save the file" msgstr "无法保存文件" #: lib/pychess/widgets/ionest.py:300 msgid "PyChess was not able to save the game" msgstr "PyChess无法保存此游戏" #: lib/pychess/widgets/ionest.py:301 #, python-format msgid "The error was: %s" msgstr "错误为:%s" #: lib/pychess/widgets/ionest.py:325 #, python-format msgid "There is %d game with unsaved moves." msgid_plural "There are %d games with unsaved moves." msgstr[0] "" #: lib/pychess/widgets/ionest.py:328 msgid "Save moves before closing?" msgstr "" #: lib/pychess/widgets/ionest.py:339 msgid "Unable to save to configured file. Save the games before closing?" msgstr "" #: lib/pychess/widgets/ionest.py:366 #, python-format msgid "_Save %d document" msgid_plural "_Save %d documents" msgstr[0] "" #: lib/pychess/widgets/ionest.py:412 msgid "Save the current game before you close it?" msgstr "" #: lib/pychess/widgets/ionest.py:420 msgid "" "Unable to save to configured file. Save the current game before you close " "it?" msgstr "" #: lib/pychess/widgets/ionest.py:434 msgid "" "It is not possible later to continue the game,\n" "if you don't save it." msgstr "" #: lib/pychess/widgets/LogDialog.py:26 msgid "PyChess Information Window" msgstr "PyChess 信息窗口" #: lib/pychess/widgets/LogDialog.py:184 lib/pychess/widgets/LogDialog.py:188 msgid "of" msgstr "" #: lib/pychess/widgets/newGameDialog.py:84 #: lib/pychess/widgets/newGameDialog.py:85 msgid "Human Being" msgstr "人类" #: lib/pychess/widgets/newGameDialog.py:155 msgid "Rapid" msgstr "快速" #: lib/pychess/widgets/newGameDialog.py:224 msgid "Minutes:" msgstr "分:" #: lib/pychess/widgets/newGameDialog.py:228 msgid "Gain:" msgstr "获得:" #: lib/pychess/widgets/newGameDialog.py:241 #, python-format msgid "%(name)s %(minutes)d min + %(gain)d sec/move" msgstr "" #: lib/pychess/widgets/newGameDialog.py:244 #, python-format msgid "%(name)s %(minutes)d min %(gain)d sec/move" msgstr "" #: lib/pychess/widgets/newGameDialog.py:247 #, python-format msgid "%(name)s %(minutes)d min" msgstr "" #: lib/pychess/widgets/newGameDialog.py:265 msgid "Odds" msgstr "" #: lib/pychess/widgets/newGameDialog.py:269 msgid "Asian variants" msgstr "" #: lib/pychess/widgets/newGameDialog.py:301 msgid " chess" msgstr "" #: lib/pychess/widgets/newGameDialog.py:682 msgid "Type or paste PGN game or FEN positions here" msgstr "" #: lib/pychess/widgets/newGameDialog.py:725 msgid "Enter Game" msgstr "进入游戏" #: lib/pychess/widgets/preferencesDialog.py:123 msgid "Select book file" msgstr "" #: lib/pychess/widgets/preferencesDialog.py:128 msgid "Opening books" msgstr "" #: lib/pychess/widgets/preferencesDialog.py:156 msgid "Select Gaviota TB path" msgstr "" #: lib/pychess/widgets/preferencesDialog.py:331 msgid "Open Sound File" msgstr "打开声音文件" #: lib/pychess/widgets/preferencesDialog.py:341 msgid "Sound files" msgstr "" #: lib/pychess/widgets/preferencesDialog.py:485 msgid "Undescribed panel" msgstr "" #: lib/pychess/widgets/preferencesDialog.py:678 msgid "Select auto save path" msgstr "" #: lib/pychess/widgets/tipOfTheDay.py:51 msgid "" "You can start a new game by Game > New Game, in New Game " "window do you can choose Players, Time Control and Chess " "Variants." msgstr "" #: lib/pychess/widgets/tipOfTheDay.py:52 msgid "" "You can choose from 20 different difficulties to play against the computer." msgstr "" #: lib/pychess/widgets/tipOfTheDay.py:53 msgid "" "Chess Variants are like the pieces of the last line will be placed on the " "board." msgstr "" #: lib/pychess/widgets/tipOfTheDay.py:54 msgid "" "To save a game Game > Save Game As, give the filename and " "choose where you want to be saved. At the bottom choose extension type of " "the file, and Save." msgstr "" #: lib/pychess/widgets/tipOfTheDay.py:55 msgid "" "Do you know that you can call flag when the clock is with you, " "Actions > Call Flag." msgstr "" #: lib/pychess/widgets/tipOfTheDay.py:56 msgid "Pressing Ctrl+Z to offer opponent the possible rollback moves." msgstr "" #: lib/pychess/widgets/tipOfTheDay.py:57 msgid "" "To play on Fullscreen mode, just type F11. Coming back, F11 " "again." msgstr "" #: lib/pychess/widgets/tipOfTheDay.py:58 msgid "Hint mode analyzing your game, enable this type Ctrl+H." msgstr "" #: lib/pychess/widgets/tipOfTheDay.py:59 msgid "" "Spy mode analyzing the oponnent game, enable this type Ctrl+Y." msgstr "" #: lib/pychess/widgets/tipOfTheDay.py:60 msgid "" "You can play chess listening to the sounds of the game, for that, " "Settings > Preferences > Sound tab, enable Use " "sounds in PyChess and choose your preferred sounds." msgstr "" #: lib/pychess/widgets/tipOfTheDay.py:61 msgid "" "Do you know that you can help translate Pychess in your language, " "Help > Translate Pychess." msgstr "" #: lib/pychess/widgets/tipOfTheDay.py:62 msgid "" "Do you know that it is possible to finish a chess game in just 2 turns?" msgstr "" #: lib/pychess/widgets/tipOfTheDay.py:63 msgid "" "Do you know that the number of possible chess games exceeds the number of " "atoms in the Universe?" msgstr "" #: lib/pychess/ic/managers/ChatManager.py:184 msgid "Shout" msgstr "" #: lib/pychess/ic/managers/ChatManager.py:185 msgid "Chess Shout" msgstr "" #: lib/pychess/ic/managers/ChatManager.py:195 #, python-format msgid "Unofficial channel %d" msgstr "" #: lib/pychess/Utils/lutils/LBoard.py:152 #, python-format msgid "" "FEN needs 6 data fields. \n" "\n" "%s" msgstr "" #: lib/pychess/Utils/lutils/LBoard.py:154 #, python-format msgid "" "FEN needs at least 2 data fields in fenstr. \n" "\n" "%s" msgstr "" #: lib/pychess/Utils/lutils/LBoard.py:175 #, python-format msgid "" "Needs 7 slashes in piece placement field. \n" "\n" "%s" msgstr "" #: lib/pychess/Utils/lutils/LBoard.py:178 #, python-format msgid "" "Active color field must be one of w or b. \n" "\n" "%s" msgstr "" #: lib/pychess/Utils/lutils/LBoard.py:189 #, python-format msgid "" "Castling availability field is not legal. \n" "\n" "%s" msgstr "" #: lib/pychess/Utils/lutils/LBoard.py:192 #, python-format msgid "" "En passant cord is not legal. \n" "\n" "%s" msgstr "" #: lib/pychess/Utils/lutils/lmove.py:260 msgid "invalid promoted piece" msgstr "" #: lib/pychess/Utils/lutils/lmove.py:272 msgid "the move needs a piece and a cord" msgstr "" #: lib/pychess/Utils/lutils/lmove.py:306 lib/pychess/Utils/lutils/lmove.py:556 msgid "promotion move without promoted piece is incorrect" msgstr "" #: lib/pychess/Utils/lutils/lmove.py:312 #, python-format msgid "the captured cord (%s) is incorrect" msgstr "" #: lib/pychess/Utils/lutils/lmove.py:323 #, python-format msgid "the end cord (%s) is incorrect" msgstr "" #: lib/pychess/Utils/lutils/strateval.py:24 sidepanel/commentPanel.py:191 #: sidepanel/commentPanel.py:208 msgid "and" msgstr "和" #: lib/pychess/Utils/lutils/strateval.py:43 msgid "draws" msgstr "和局" #: lib/pychess/Utils/lutils/strateval.py:45 msgid "mates" msgstr "将死" #: lib/pychess/Utils/lutils/strateval.py:49 msgid "puts opponent in check" msgstr "" #: lib/pychess/Utils/lutils/strateval.py:73 msgid "improves king safety" msgstr "" #: lib/pychess/Utils/lutils/strateval.py:75 msgid "slightly improves king safety" msgstr "" #: lib/pychess/Utils/lutils/strateval.py:108 msgid "moves a rook to an open file" msgstr "" #: lib/pychess/Utils/lutils/strateval.py:109 msgid "moves an rook to a half-open file" msgstr "" #: lib/pychess/Utils/lutils/strateval.py:119 #: lib/pychess/Utils/lutils/strateval.py:121 #: lib/pychess/Utils/lutils/strateval.py:124 #: lib/pychess/Utils/lutils/strateval.py:126 #, python-format msgid "moves bishop into fianchetto: %s" msgstr "" #: lib/pychess/Utils/lutils/strateval.py:132 #, python-format msgid "promotes a Pawn to a %s" msgstr "" #: lib/pychess/Utils/lutils/strateval.py:135 msgid "castles" msgstr "车" #: lib/pychess/Utils/lutils/strateval.py:158 msgid "takes back material" msgstr "" #: lib/pychess/Utils/lutils/strateval.py:162 #: lib/pychess/Utils/lutils/strateval.py:170 msgid "sacrifies material" msgstr "" #: lib/pychess/Utils/lutils/strateval.py:164 msgid "exchanges material" msgstr "" #: lib/pychess/Utils/lutils/strateval.py:166 msgid "captures material" msgstr "" #: lib/pychess/Utils/lutils/strateval.py:291 #, python-format msgid "rescues a %s" msgstr "" #: lib/pychess/Utils/lutils/strateval.py:294 #, python-format msgid "threatens to win material by %s" msgstr "" #: lib/pychess/Utils/lutils/strateval.py:296 #, python-format msgid "increases the pressure on %s" msgstr "" #: lib/pychess/Utils/lutils/strateval.py:298 #, python-format msgid "defends %s" msgstr "防御 %s" #: lib/pychess/Utils/lutils/strateval.py:336 #, python-format msgid "pins an enemy %(oppiece)s on the %(piece)s at %(cord)s" msgstr "" #: lib/pychess/Utils/lutils/strateval.py:369 #, python-format msgid "White has a new piece in outpost: %s" msgstr "" #: lib/pychess/Utils/lutils/strateval.py:377 #, python-format msgid "Black has a new piece in outpost: %s" msgstr "" #: lib/pychess/Utils/lutils/strateval.py:416 #, python-format msgid "%(color)s has a new passed pawn on %(cord)s" msgstr "" #: lib/pychess/Utils/lutils/strateval.py:470 msgid "half-open" msgstr "半封闭" #: lib/pychess/Utils/lutils/strateval.py:472 #, python-format msgid "in the %(x)s%(y)s file" msgstr "" #: lib/pychess/Utils/lutils/strateval.py:474 #, python-format msgid "in the %(x)s%(y)s files" msgstr "" #: lib/pychess/Utils/lutils/strateval.py:477 #, python-format msgid "%(color)s got a double pawn %(place)s" msgstr "" #: lib/pychess/Utils/lutils/strateval.py:478 #, python-format msgid "%(color)s got new double pawns %(place)s" msgstr "" #: lib/pychess/Utils/lutils/strateval.py:485 #, python-format msgid "%(color)s got an isolated pawn in the %(x)s file" msgid_plural "%(color)s got isolated pawns in the %(x)s files" msgstr[0] "" #: lib/pychess/Utils/lutils/strateval.py:492 #, python-format msgid "%s moves pawns into stonewall formation" msgstr "" #: lib/pychess/Utils/lutils/strateval.py:507 #: lib/pychess/Utils/lutils/strateval.py:514 #, python-format msgid "%s can no longer castle" msgstr "" #: lib/pychess/Utils/lutils/strateval.py:508 #: lib/pychess/Utils/lutils/strateval.py:515 #, python-format msgid "%s can no longer castle in queenside" msgstr "" #: lib/pychess/Utils/lutils/strateval.py:510 #: lib/pychess/Utils/lutils/strateval.py:517 #, python-format msgid "%s can no longer castle in kingside" msgstr "" #: lib/pychess/Utils/lutils/strateval.py:551 #, python-format msgid "%(opcolor)s has a new trapped bishop on %(cord)s" msgstr "" #: lib/pychess/Utils/lutils/strateval.py:573 #, python-format msgid "develops a pawn: %s" msgstr "" #: lib/pychess/Utils/lutils/strateval.py:574 #, python-format msgid "brings a pawn closer to the backrow: %s" msgstr "" #: lib/pychess/Utils/lutils/strateval.py:591 #, python-format msgid "brings a %(piece)s closer to enemy king: %(cord)s" msgstr "" #: lib/pychess/Utils/lutils/strateval.py:594 #, python-format msgid "develops a %(piece)s: %(cord)s" msgstr "" #: lib/pychess/Utils/lutils/strateval.py:612 #, python-format msgid "places a %(piece)s more active: %(cord)s" msgstr "" #: lib/pychess/Utils/lutils/strateval.py:638 msgid "White should do pawn storm in right" msgstr "" #: lib/pychess/Utils/lutils/strateval.py:640 msgid "Black should do pawn storm in left" msgstr "" #: lib/pychess/Utils/lutils/strateval.py:643 msgid "White should do pawn storm in left" msgstr "" #: lib/pychess/Utils/lutils/strateval.py:645 msgid "Black should do pawn storm in right" msgstr "" #: lib/pychess/Utils/lutils/strateval.py:671 msgid "Black has a rather cramped position" msgstr "" #: lib/pychess/Utils/lutils/strateval.py:673 msgid "Black has a slightly cramped position" msgstr "" #: lib/pychess/Utils/lutils/strateval.py:675 msgid "White has a rather cramped position" msgstr "" #: lib/pychess/Utils/lutils/strateval.py:677 msgid "White has a slightly cramped position" msgstr "" #: sidepanel/annotationPanel.py:26 msgid "Annotation" msgstr "" #: sidepanel/annotationPanel.py:29 msgid "Annotated game" msgstr "" #: sidepanel/annotationPanel.py:236 msgid "Copy PGN" msgstr "" #: sidepanel/annotationPanel.py:249 msgid "Add start comment" msgstr "" #: sidepanel/annotationPanel.py:254 msgid "Add comment" msgstr "" #: sidepanel/annotationPanel.py:258 sidepanel/annotationPanel.py:316 msgid "Edit comment" msgstr "" #: sidepanel/annotationPanel.py:269 msgid "Forced move" msgstr "" #: sidepanel/annotationPanel.py:274 msgid "Add move symbol" msgstr "" #: sidepanel/annotationPanel.py:280 msgid "Unclear position" msgstr "" #: sidepanel/annotationPanel.py:289 msgid "Zugzwang" msgstr "" #: sidepanel/annotationPanel.py:290 msgid "Development adv." msgstr "" #: sidepanel/annotationPanel.py:291 msgid "Initiative" msgstr "" #: sidepanel/annotationPanel.py:292 msgid "With attack" msgstr "" #: sidepanel/annotationPanel.py:293 msgid "Compensation" msgstr "" #: sidepanel/annotationPanel.py:294 msgid "Counterplay" msgstr "" #: sidepanel/annotationPanel.py:295 msgid "Time pressure" msgstr "" #: sidepanel/annotationPanel.py:300 msgid "Add evaluation symbol" msgstr "" #: sidepanel/annotationPanel.py:304 msgid "Remove symbols" msgstr "" #: sidepanel/annotationPanel.py:911 #, python-format msgid "round %s" msgstr "" #: sidepanel/bookPanel.py:21 msgid "Hints" msgstr "提示" #: sidepanel/bookPanel.py:25 msgid "" "The hint panel will provide computer advice during each stage of the game" msgstr "" #: sidepanel/bookPanel.py:27 msgid "Official PyChess panel." msgstr "" #: sidepanel/bookPanel.py:87 msgid "Opening Book" msgstr "开局库" #: sidepanel/bookPanel.py:88 msgid "" "The opening book will try to inspire you during the opening phase of the " "game by showing you common moves made by chess masters" msgstr "" #: sidepanel/bookPanel.py:139 #, python-format msgid "Analysis by %s" msgstr "" #: sidepanel/bookPanel.py:140 #, python-format msgid "" "%s will try to predict which move is best and which side has the advantage" msgstr "" #: sidepanel/bookPanel.py:142 #, python-format msgid "Threat analysis by %s" msgstr "" #: sidepanel/bookPanel.py:143 #, python-format msgid "" "%s will identify what threats would exist if it were your opponent's turn to" " move" msgstr "" #: sidepanel/bookPanel.py:159 sidepanel/bookPanel.py:269 msgid "Calculating..." msgstr "" #: sidepanel/bookPanel.py:300 msgid "" "Engine scores are in units of pawns, from White's point of view. Double " "clicking on analysis lines you can insert them into Annotation panel as " "variations." msgstr "" #: sidepanel/bookPanel.py:302 msgid "" "Adding suggestions can help you find ideas, but slows down the computer's " "analysis." msgstr "" #: sidepanel/bookPanel.py:311 msgid "Endgame Table" msgstr "" #: sidepanel/bookPanel.py:315 msgid "" "The endgame table will show exact analysis when there are few pieces on the " "board." msgstr "" #: sidepanel/bookPanel.py:364 sidepanel/bookPanel.py:367 #, python-format msgid "Mate in %d" msgstr "" #: sidepanel/bookPanel.py:554 msgid "" "In this position,\n" "there is no legal move." msgstr "" #: sidepanel/chatPanel.py:21 msgid "" "The chat panel lets you communicate with your opponent during the game, " "assuming he or she is interested" msgstr "" #: sidepanel/commentPanel.py:16 msgid "Comments" msgstr "注释" #: sidepanel/commentPanel.py:20 msgid "The comments panel will try to analyze and explain the moves played" msgstr "" #: sidepanel/commentPanel.py:121 msgid "Initial position" msgstr "初始位置" #: sidepanel/commentPanel.py:254 #, python-format msgid "%(color)s moves a %(piece)s to %(cord)s" msgstr "" #: sidepanel/engineOutputPanel.py:15 msgid "Engines" msgstr "" #: sidepanel/engineOutputPanel.py:20 msgid "" "The engine output panel shows the thinking output of chess engines (computer" " players) during a game" msgstr "" #: sidepanel/engineOutputPanel.py:44 msgid "No chess engines (computer players) are participating in this game." msgstr "" #: sidepanel/historyPanel.py:10 msgid "Move History" msgstr "移动历史" #: sidepanel/historyPanel.py:13 msgid "" "The moves sheet keeps track of the players' moves and lets you navigate " "through the game history" msgstr "" #: sidepanel/scorePanel.py:15 msgid "Score" msgstr "得分" #: sidepanel/scorePanel.py:19 msgid "" "The score panel tries to evaluate the positions and shows you a graph of the" " game progress" msgstr "" pychess-0.12.2/lang/zh_CN/LC_MESSAGES/pychess.mo0000644000175000017470000004076012653231273021305 0ustar tamasusers000000000000000   !5S[]m#t%9'DUfz  / CPb&uC7U*n(   )7 G Q ^ jtv!   %+A JUj{         # > J M S d t       F '!8!M!O!T![! m! w!! ! ! ! !!!!!"" ""5" >" I" V"c"e"/j"" """ """ " " # # #&#.#5# O#Y# i#v######## #### # ##$&$E$`$ $ % % % %"%*%1%7% =%H%O%d%i%p%s% |% % %%%%"%% %%& $&/&D&X& `&l& r&|&& &&&&&& &"&5&9'W'i''''''((('(6(H(M(O( c(q( (((( ( (((((((((C)&Z)) )!))))) * *"* +*7* =*H*Q*%W* }* ** ** *** ** * * ++ &+1+E+V+ ^+j+s+++ ++++ ++ + +"++,F,L,P,`,d, . ..).F. ].g.y...... .=.5/9:/t/}/3/%// 00(0;0O0f0 00 0000 00 1,"1AO1.1F1,2,42a2t22 22 2 22 2 2 2233%3=3\3`3g3 n3x3z3}333 3333 33 3344 +484 :4H4 [4h4o4 4 4 4444 444 4 4 55 #5 -5:5A5H5 O5\5c5f59m5 5 555555 55 6 6 '6 46A6[6u6 666 666 6 6 66686 57 ?7M7T7 [7e7 l7z7 77 7 777!7 78 8"82898;8?8 F8S8f8 {8 8 8 8 88"8;89/9 999 9: ::: ": ,: 9: C:P: T:^:a: h:u:::::": : :: ;;1;M;a;h; y;;;; ; ;;;;; ;;.;!<A<P<i<y<<< <<< < <<== = = )=6= == G= Q=^=e= ~======$=7=$>>>]>y>> > > >>> > > ? ? ? '?/2?b?w? ??? ? ? ? ??@ @#@8@M@a@s@ @@ @@ @ @@@@A AA &A 0AA:AT|AAA AA DPk$+5 e (~! l4E9AQ3puS#%}"_JR0@Gt)*V-ob +X-T{jq 871NUL</'w.FM$\ixy,?K.a)0 |6& (;nfshB &:#/2 *Y"r zdWOv=`'>[cgCH%!^, mZI] + %d sec min%(black)s won the game%(player)s is %(status)s%(white)s won the game%d min%s returns an error%s was declined by your opponent%s was withdrawn by your opponent'%s' is not a registered name(Blitz)*0 Players Ready0 of 010 min + 6 sec/move, 1400↑, White12002 min, Fischer Random, 1800↓, Black5 min5 min, 1200-1800, ManualConnect to the Free Online Chess ServerPromote pawn to what?AnalyzingAnimationDate of gameEnter Game NotationGame dataInitial PositionInstalled SidepanelsNewsOpen GameOptionsPlay Sound When...PlayersTime ControlToolsYour Color_Start GameEngine, %s, has diedPyChess is discovering your engines. Please wait.PyChess was not able to save the gameThere are %d games with unsaved moves. Save changes before closing?Unable to save file '%s'Unknown file type '%s'Challenge:A player _checks:A player _moves:A player c_aptures:About ChessAddress ErrorAdministratorAll Chess FilesAll FilesAny strengthAuto-logoutAvailableBBecause %(loser)s disconnectedBecause %(loser)s ran out of timeBecause a player lost connectionBishopBlackBlitzBlitz:CCAChallengeChallenge: ChatChess GameClockClose _without SavingCommentsConnectingConnecting to serverConnection ErrorConnection was closedCornerCould not save the fileCreate SeekDDate/TimeDetect type automaticallyDon't careDrawEdit SeekEmailEnter GameEvent:FIDE MasterFMFace _to Face display modeFile existsGMGain:Game informationGame is _drawn:Game is _lost:Game is _set-up:Game is _won:Grand MasterGuestHideHintsHow to PlayHuman BeingIMIdleIf you don't save, new changes to your games will be permanently lost.Initial positionInternational MasterKKingKnightLeave _FullscreenLightningLightning:Load _Recent GameLoaded gameLocal EventLocal SiteLog on ErrorLog on as G_uestLog on as _GuestLogging on to serverLosersLossManualManual AcceptManually accept opponentMinutes:Minutes: More playersMove HistoryNNameNever use animation. Use this on slow machines.New GameNo _animationNo soundNormalNot AvailableObserveObserved _ends:Offer A_bortOffer _AbortOffer _DrawOffer _PauseOffer _UndoOfflineOnlineOnly animate piece moves.Open GameOpen Sound FileOpening BookOpponent's strength: OtherPPawnPingPlayPlay _Internet ChessPlayer _RatingPlayers: %dPlayingPo_rts:Pre_viewPreferencesPromotionPyChess - Connect to Internet ChessPyChess - Internet Chess: FICSPyChess Information WindowPyChess has lost connection to the engine, probably because it has died. You can try to start a new game with the engine, or try to play against another one.PyChess.py:QQueenQuit PyChessRR_esignRandomRapidRatedRated gameRatingRequest ContinuationRookRound:SRS_ign upSave GameSave Game _AsSaved gameScoreSearch:Select sound file...Select the games you want to save:Send ChallengeSend seekSetting up environmentSetup PositionShow _ChatShow tips at startupShredderLinuxChess:ShuffleSide_panelsSite:Sp_y modeSpentStandardStandard:Start Private ChatStatusTTDTMTeam AccountThe clock hasn't been started yet.The connection was broken - got "end of file" messageThe displayed name of the first human player, e.g., John.The error was: %sThe game ended in a drawThe game has been abortedThe game has been adjournedThe game has been killedThe move failed because %s.The reason is unknownTimeTime control: Tip Of The dayTip of the DayTranslate PyChessTypeUUnable to accept %sUndo one moveUndo two movesUninstallUnknownUnratedUntimedUpside DownUse _analyzerUse _inverted analyzerWGMWIMWelcomeWhiteWinYou can't switch colors during the game.You have been logged out because you were idle more than 60 minutesYou have tried to undo too many moves.You sent a draw offerYour opponent asks you to hurry!Your opponent is not out of time.Your strength: _Accept_Actions_Black player:_Call Flag_Clear Seeks_Decline_Fullscreen_Game_Game List_General_Help_Hide tabs when only one game is open_Hint mode_Load Game_Log Off_Log Viewer_Name:_New Game_Next_Observed moves:_Password:_Play Normal chess_Player List_Previous_Rotate Board_Save %d documents_Save Game_Seeks / Challenges_Show Sidepanels_Sounds_Start Game_Untimed_Use sounds in PyChess_View_White player:_Your Color:andask your opponent to movecastlesdefends %sdrawsgnuchess:half-openhttp://en.wikipedia.org/wiki/Chesshttp://en.wikipedia.org/wiki/Rules_of_chessmatesminonline in totalsecProject-Id-Version: pychess Report-Msgid-Bugs-To: POT-Creation-Date: 2016-01-27 13:28+0100 PO-Revision-Date: 2016-01-28 08:56+0000 Last-Translator: slav0nic Language-Team: Chinese (China) (http://www.transifex.com/gbtami/pychess/language/zh_CN/) MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Language: zh_CN Plural-Forms: nplurals=1; plural=0; + %d 秒 分钟%(black)s 赢得游戏%(player)s 目前 %(status)s%(white)s 赢得游戏%d 分钟%s返回错误。您的对手拒绝了%s。您的对手撤销了%s。'%s'不是一个注册姓名(快棋)*0 个玩家已就绪0 中的 0时限10分钟,每步棋加6秒,1400分以上,执白棋1200时限2分钟,Fischer规则,1800分以下,执黑棋5 分钟5 分钟,1200-1800,手动连接到Free Online Chess Server兵升变为什么?分析中动画游戏日期进入游戏记谱游戏数据最初的位置已安装侧栏面板新闻打开游戏选项当...播放声音玩家时间控制工具您的颜色开始游戏(_S)引擎(%s)已经僵死PyChess 正在寻找你的引擎,请稍候。PyChess无法保存此游戏有 %d 个游戏还未保存. 关闭前先保存吗?无法保存文件‘%s’未知文件类型‘%s’挑战:将军(_c):走棋(_m):吃子(_a):关于地址错误管理员所有象棋文件所有文件任何能量自动注销可用B因为 %(loser)s 断开连接因为 %(loser)s 超时因为一个玩家失去连接象黑方快速快棋:CCA挑战挑战: <玩家>对话国际象棋时钟关闭而不保存(_W)注释连接中正在连接到服务器连接错误连接已经关闭角落无法保存文件开始查找D日期/时间自动探测类型不必在意平局编辑查找条件电子邮件进入游戏事件:国际棋联大师FM面对面显示模式(_T)文件存在GM获得:游戏信息和棋:输棋:比赛开始(_s):赢棋:超级大师来宾隐藏提示如何游戏人类IM空闲如果不保存,您游戏的新更改将永久丢失。初始位置国际大师K王马离开全屏(_F)闪电超快棋:载入最近的游戏(_R)读取的比赛本地事件本地站点登录错误以访客身份登录(_U)登录为来宾用户(_G)正在登录到服务器失败者失败手动手动接受手动接受对手分:分钟: 更多玩家移动历史N姓名永远不显示动画.在配置差的机器上用这项.新游戏无动画(_A)无声普通不可用旁观残局(_e):提议取消(_B)请求中断提议和棋(_D)请求暂停请求悔棋离线在线只显示棋子移动时的动画公开赛打开声音文件开局库对手棋力:其它P兵牵制开始游戏开始线上对战玩家积分(_P)玩家:%d游戏中端口(_R):预览(_V)首选项升变PyChess - 连接到互联网象棋PyChess - 网络象棋:免费网络象棋服务器 (FICS)PyChess 信息窗口PyChess已经失去与国际象棋引擎的连接,可能是引擎已经僵死。 你可以尝试仍然使用此引擎开始一个新游戏,或者使用另外一个引擎比赛。PyChess.py:Q后退出PychessR认输(_E)随机快速已记分积分游戏等级分请求继续车轮次:SR注册保存游戏游戏另存为(_A)保存的比赛得分查找:选择声音文件…请选择你想要保存的游戏:发出挑战开始寻找正在设置环境设置位置显示 对话(_C)启动时显示日积月累ShredderLinuxChess:随机侧栏面板(_P)站点:间谍模式(_y)花费标准标准:进行私聊状态TTDTM团队账户时钟还没有开始。连接已经断开 - 存在"end of file"信息P1的显示名称,例如 约翰错误为:%s一方投降游戏结束比赛被取消比赛被封盘比赛被终止走棋失败因为 %s。未知原因时间时间控制: 日积月累今日提示翻译 PyChess类別U无法接受%s。悔一步棋悔两步棋卸载未知的不计分不限时间倒置使用分析工具(_a)使用逆向分析工具(_i)WGMWIM欢迎白方获胜游戏期间您不能切换颜色。您已经注销因为您空闲时间超过了 60 分钟您已经尝试撤销太多走棋。你发送了一个提和请求您的对手请您快点!您的对手未超时。你的棋力:接受(_A)操作(_A)黑方选手请求裁判(_C)清空查询(_C)拒绝(_D)全屏(_F)游戏(_G)游戏列表(_G)常规(G)帮助(_H)只有一个游戏的时候隐藏标签(_H)提示模式(_H)读取游戏(_L)登出(_L)日志查看(_L)用户名(_N):新游戏(_N)下一个(_N)定式(_O):密码(_P):玩普通棋(_P)玩家列表(_P)上一个(_P)旋转棋盘(_R)保存 %d 文档(_S)保存游戏(_Save)查找/挑战(_S)显示边栏(_S)声音(_S)开始游戏(_S)不限时(_U)在PyChess中使用声音查看(_V)白方选手您的颜色(_Y):和要求您的对手走棋车防御 %s和局gnuchess:半封闭http://zh.wikipedia.org/wiki/%E5%9B%BD%E9%99%85%E8%B1%A1%E6%A3%8Bhttp://zh.wikipedia.org/wiki/%E5%9B%BD%E9%99%85%E8%B1%A1%E6%A3%8B#.E8.A6.8F.E5.89.87将死分钟在线总数秒pychess-0.12.2/lang/bg/0000755000175000017470000000000012653231274015066 5ustar tamasusers00000000000000pychess-0.12.2/lang/bg/LC_MESSAGES/0000755000175000017470000000000012653231274016653 5ustar tamasusers00000000000000pychess-0.12.2/lang/bg/LC_MESSAGES/pychess.po0000644000175000017470000024357512653216205020706 0ustar tamasusers00000000000000# SOME DESCRIPTIVE TITLE. # Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER # This file is distributed under the same license as the pychess package. # # Translators: # FIRST AUTHOR , 2008 msgid "" msgstr "" "Project-Id-Version: pychess\n" "Report-Msgid-Bugs-To: \n" "POT-Creation-Date: 2016-01-27 13:28+0100\n" "PO-Revision-Date: 2016-01-28 08:56+0000\n" "Last-Translator: slav0nic \n" "Language-Team: Bulgarian (http://www.transifex.com/gbtami/pychess/language/bg/)\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" "Language: bg\n" "Plural-Forms: nplurals=2; plural=(n != 1);\n" # "Plural-Forms: nplurals=INTEGER; plural=EXPRESSION;\n" #: glade/analyze_game.glade:22 msgid "Analyze game" msgstr "" #: glade/analyze_game.glade:87 msgid "Use analyzer:" msgstr "" #: glade/analyze_game.glade:122 glade/PyChess.glade:2054 msgid "Maximum analysis time in seconds:" msgstr "" #: glade/analyze_game.glade:163 msgid "" "If the analyzer finds a move where the evaluation difference (the difference" " between the evaluation for the move it thinks is the best move and the " "evaluation for the move made in the game) exceeds this value, it will add an" " annotation for that move (consisting of the engine's Principal Variation " "for the move) to the Annotation panel" msgstr "" #: glade/analyze_game.glade:164 msgid "Variation annotation creation threshold in centipawns:" msgstr "" #: glade/analyze_game.glade:198 msgid "Analyze from current position" msgstr "" #: glade/analyze_game.glade:214 msgid "Add threatening variation lines " msgstr "" #: glade/analyze_game.glade:229 glade/PyChess.glade:1459 msgid "Colorize analyzed moves" msgstr "" #: glade/analyze_game.glade:244 glade/PyChess.glade:1495 msgid "Show evaluation values" msgstr "" #: glade/discovererDialog.glade:18 msgid "PyChess is discovering your engines. Please wait." msgstr "" #: glade/discovererDialog.glade:77 msgid "PyChess.py:" msgstr "" #: glade/discovererDialog.glade:89 msgid "ShredderLinuxChess:" msgstr "" #: glade/discovererDialog.glade:101 msgid "gnuchess:" msgstr "" #: glade/fics_logon.glade:7 msgid "PyChess - Connect to Internet Chess" msgstr "" #: glade/fics_logon.glade:47 msgid "Connect to the Free Online Chess Server" msgstr "" #: glade/fics_logon.glade:129 glade/taskers.glade:394 msgid "_Password:" msgstr "_Парола:" #: glade/fics_logon.glade:143 msgid "_Name:" msgstr "_Име:" #: glade/fics_logon.glade:191 msgid "Log on as _Guest" msgstr "Влез като _Гост" #: glade/fics_logon.glade:227 msgid "Host:" msgstr "" #: glade/fics_logon.glade:259 msgid "Po_rts:" msgstr "" #: glade/fics_logon.glade:271 msgid "Auto login on startup" msgstr "" #: glade/fics_logon.glade:385 msgid "S_ign up" msgstr "" #: glade/fics_lounge.glade:35 msgid "Challenge: " msgstr "" #: glade/fics_lounge.glade:97 msgid "Send Challenge" msgstr "" #: glade/fics_lounge.glade:133 msgid "Challenge:" msgstr "" #: glade/fics_lounge.glade:327 glade/fics_lounge.glade:2078 msgid "Lightning:" msgstr "" #: glade/fics_lounge.glade:351 glade/fics_lounge.glade:2102 msgid "Standard:" msgstr "" #: glade/fics_lounge.glade:375 glade/fics_lounge.glade:2126 msgid "Blitz:" msgstr "" #: glade/fics_lounge.glade:400 msgid "2 min, Fischer Random, Black" msgstr "" #: glade/fics_lounge.glade:422 msgid "10 min + 6 sec/move, White" msgstr "" #: glade/fics_lounge.glade:444 msgid "5 min" msgstr "" #: glade/fics_lounge.glade:480 msgid "Edit Seek" msgstr "" #: glade/fics_lounge.glade:584 lib/pychess/ic/ICLounge.py:2208 #: lib/pychess/ic/__init__.py:101 lib/pychess/Utils/GameModel.py:206 msgid "Untimed" msgstr "" #: glade/fics_lounge.glade:637 msgid "Minutes: " msgstr "" #: glade/fics_lounge.glade:665 msgid " Gain: " msgstr "" #: glade/fics_lounge.glade:703 msgid "Time control: " msgstr "" #: glade/fics_lounge.glade:716 lib/pychess/ic/FICSObjects.py:56 #: lib/pychess/ic/ICLounge.py:1137 lib/pychess/ic/ICLounge.py:2208 #: lib/pychess/ic/__init__.py:99 msgid "Standard" msgstr "" #: glade/fics_lounge.glade:757 glade/newInOut.glade:633 msgid "Time Control" msgstr "" #: glade/fics_lounge.glade:814 glade/fics_lounge.glade:1346 msgid "Don't care" msgstr "" #: glade/fics_lounge.glade:879 msgid "Your strength: " msgstr "" #: glade/fics_lounge.glade:921 msgid "(Blitz)" msgstr "" #: glade/fics_lounge.glade:951 msgid "Opponent's strength: " msgstr "" #: glade/fics_lounge.glade:1055 msgid "" "When this button is in the \"locked\" state, the relationship\n" "between \"Opponent's strength\" and \"Your strength\" will be\n" "preserved when \n" "a) your rating for the type of game sought has changed\n" "b) you change the variant or the time control" msgstr "" #: glade/fics_lounge.glade:1095 msgid "Center:" msgstr "" #: glade/fics_lounge.glade:1134 msgid "1200" msgstr "" #: glade/fics_lounge.glade:1188 msgid "Tolerance:" msgstr "" #: glade/fics_lounge.glade:1243 lib/pychess/ic/ICLounge.py:2452 msgid "Hide" msgstr "" #: glade/fics_lounge.glade:1289 msgid "Opponent Strength" msgstr "" #: glade/fics_lounge.glade:1386 lib/pychess/Database/gamelist.py:40 #: lib/pychess/ic/ICLounge.py:1357 lib/pychess/ic/ICLounge.py:1557 #: lib/pychess/ic/ICLounge.py:2108 lib/pychess/Utils/repr.py:10 #: lib/pychess/widgets/ChessClock.py:40 #: lib/pychess/widgets/TaskerManager.py:153 msgid "White" msgstr "Бял" #: glade/fics_lounge.glade:1414 lib/pychess/Database/gamelist.py:40 #: lib/pychess/ic/ICLounge.py:1358 lib/pychess/ic/ICLounge.py:1558 #: lib/pychess/ic/ICLounge.py:2110 lib/pychess/Utils/repr.py:10 #: lib/pychess/widgets/ChessClock.py:40 #: lib/pychess/widgets/TaskerManager.py:154 msgid "Black" msgstr "Черен" #: glade/fics_lounge.glade:1453 msgid "Your Color" msgstr "" #: glade/fics_lounge.glade:1512 msgid "Play normal chess rules" msgstr "" #: glade/fics_lounge.glade:1552 msgid "Play" msgstr "" #: glade/fics_lounge.glade:1618 glade/newInOut.glade:833 msgid "Chess Variant" msgstr "" #: glade/fics_lounge.glade:1676 msgid "Rated game" msgstr "" #: glade/fics_lounge.glade:1692 msgid "Manually accept opponent" msgstr "" #: glade/fics_lounge.glade:1722 msgid "Options" msgstr "" #: glade/fics_lounge.glade:1750 msgid "PyChess - Internet Chess: FICS" msgstr "PyChess - Интернет Шах: FICS" #: glade/fics_lounge.glade:1823 msgid "_Clear Seeks" msgstr "" #: glade/fics_lounge.glade:1847 msgid "_Accept" msgstr "_Приемане" #: glade/fics_lounge.glade:1871 msgid "_Decline" msgstr "" #: glade/fics_lounge.glade:2151 msgid "2 min, Fischer Random, 1800↓, Black" msgstr "" #: glade/fics_lounge.glade:2172 msgid "10 min + 6 sec/move, 1400↑, White" msgstr "" #: glade/fics_lounge.glade:2193 msgid "5 min, 1200-1800, Manual" msgstr "" #: glade/fics_lounge.glade:2247 msgid "Send all seeks" msgstr "" #: glade/fics_lounge.glade:2301 msgid "Send seek" msgstr "" #: glade/fics_lounge.glade:2337 msgid "Create Seek" msgstr "" #: glade/fics_lounge.glade:2353 msgid "_Seeks / Challenges" msgstr "" #: glade/fics_lounge.glade:2374 lib/pychess/ic/ICLounge.py:472 #: lib/pychess/ic/ICLounge.py:670 lib/pychess/ic/ICLounge.py:1357 #: lib/pychess/ic/ICLounge.py:1358 msgid "Rating" msgstr "Оценка" #: glade/fics_lounge.glade:2399 msgid "Time" msgstr "Време" #: glade/fics_lounge.glade:2419 msgid "Seek _Graph" msgstr "" #: glade/fics_lounge.glade:2444 msgid "0 Players Ready" msgstr "" #: glade/fics_lounge.glade:2496 msgid "Challenge" msgstr "" #: glade/fics_lounge.glade:2549 glade/fics_lounge.glade:2735 msgid "Observe" msgstr "" #: glade/fics_lounge.glade:2602 msgid "Start Private Chat" msgstr "" #: glade/fics_lounge.glade:2659 msgid "_Player List" msgstr "" #: glade/fics_lounge.glade:2792 msgid "_Game List" msgstr "" #: glade/fics_lounge.glade:2847 msgid "_My games" msgstr "" #: glade/fics_lounge.glade:2904 glade/PyChess.glade:841 msgid "Offer _Resume" msgstr "" #: glade/fics_lounge.glade:2962 glade/PyChess.glade:880 msgid "R_esign" msgstr "" #: glade/fics_lounge.glade:3006 glade/PyChess.glade:820 msgid "Offer _Draw" msgstr "" #: glade/fics_lounge.glade:3050 msgid "Offer A_bort" msgstr "" #: glade/fics_lounge.glade:3107 msgid "Pre_view" msgstr "" #: glade/fics_lounge.glade:3151 msgid "Examine" msgstr "" #: glade/fics_lounge.glade:3208 msgid "_Archived" msgstr "" #: glade/fics_lounge.glade:3313 msgid "News" msgstr "Новини" #: glade/fics_lounge.glade:3345 msgid "Show Console" msgstr "" #: glade/fics_lounge.glade:3359 msgid "Show _Chat" msgstr "" #: glade/fics_lounge.glade:3373 msgid "_Log Off" msgstr "" #: glade/fics_lounge.glade:3393 msgid "Tools" msgstr "Инструменти" #: glade/fics_lounge.glade:3428 msgid "Asymmetric Random " msgstr "" #: glade/findbar.glade:6 msgid "window1" msgstr "" #: glade/findbar.glade:21 msgid "0 of 0" msgstr "" #: glade/findbar.glade:66 msgid "Search:" msgstr "" #: glade/findbar.glade:134 msgid "_Previous" msgstr "" #: glade/findbar.glade:192 msgid "_Next" msgstr "" #: glade/newInOut.glade:45 lib/pychess/widgets/newGameDialog.py:445 msgid "New Game" msgstr "Нова Игра" #: glade/newInOut.glade:108 msgid "_Start Game" msgstr "_Стартирай Играта" #: glade/newInOut.glade:130 msgid "Copy FEN" msgstr "" #: glade/newInOut.glade:143 msgid "Clear" msgstr "" #: glade/newInOut.glade:156 msgid "Paste FEN" msgstr "" #: glade/newInOut.glade:257 msgid "_Black player:" msgstr "" #: glade/newInOut.glade:274 msgid "_White player:" msgstr "" #: glade/newInOut.glade:385 msgid "Players" msgstr "Играчи" #: glade/newInOut.glade:436 msgid "_Untimed" msgstr "" #: glade/newInOut.glade:475 msgid "Blitz: 5 min" msgstr "" #: glade/newInOut.glade:526 msgid "Rapid: 15 min + 10 sec/move" msgstr "" #: glade/newInOut.glade:575 msgid "Normal: 40 min + 15 sec/move" msgstr "" #: glade/newInOut.glade:684 msgid "_Play Normal chess" msgstr "" #: glade/newInOut.glade:724 msgid "Play Fischer Random chess" msgstr "" #: glade/newInOut.glade:774 msgid "Play Losers chess" msgstr "" #: glade/newInOut.glade:919 msgid "Open Game" msgstr "" #: glade/newInOut.glade:1162 msgid "Initial Position" msgstr "" #: glade/newInOut.glade:1219 msgid "Enter Game Notation" msgstr "" #: glade/newInOut.glade:1314 msgid "Halfmove clock" msgstr "" #: glade/newInOut.glade:1327 msgid "En passant line" msgstr "" #: glade/newInOut.glade:1339 msgid "Side to move" msgstr "" #: glade/newInOut.glade:1351 msgid "Move number" msgstr "" #: glade/newInOut.glade:1361 msgid "Black O-O" msgstr "" #: glade/newInOut.glade:1375 msgid "Black O-O-O" msgstr "" #: glade/newInOut.glade:1389 msgid "White O-O-O" msgstr "" #: glade/newInOut.glade:1403 msgid "White O-O" msgstr "" #: glade/promotion.glade:7 msgid "Promotion" msgstr "" #: glade/promotion.glade:49 lib/pychess/Utils/repr.py:12 msgid "Queen" msgstr "Царица" #: glade/promotion.glade:95 lib/pychess/Utils/repr.py:12 msgid "Rook" msgstr "Топ" #: glade/promotion.glade:141 lib/pychess/Utils/repr.py:12 msgid "Bishop" msgstr "Офицер" #: glade/promotion.glade:187 lib/pychess/Utils/repr.py:12 msgid "Knight" msgstr "Рицар" #: glade/promotion.glade:233 lib/pychess/Utils/repr.py:12 msgid "King" msgstr "" #: glade/promotion.glade:265 msgid "Promote pawn to what?" msgstr "Повиши пешката в?" #: glade/PyChess.glade:9 msgid "Chess client" msgstr "" #: glade/PyChess.glade:44 msgid "Game information" msgstr "Информация за играта" #: glade/PyChess.glade:164 msgid "Event:" msgstr "Събитие:" #: glade/PyChess.glade:178 msgid "Site:" msgstr "Сайт:" #: glade/PyChess.glade:204 msgid "Round:" msgstr "Рунд:" #: glade/PyChess.glade:237 msgid "White:" msgstr "" #: glade/PyChess.glade:249 msgid "Black:" msgstr "" #: glade/PyChess.glade:302 msgid "Game data" msgstr "" #: glade/PyChess.glade:357 msgid "Date of game" msgstr "" #: glade/PyChess.glade:495 msgid "_Game" msgstr "_Игра" #: glade/PyChess.glade:502 msgid "_New Game" msgstr "_Нова Игра" #: glade/PyChess.glade:515 msgid "Play _Internet Chess" msgstr "" #: glade/PyChess.glade:534 msgid "_Load Game" msgstr "_Зареди Игра" #: glade/PyChess.glade:550 msgid "Load _Recent Game" msgstr "" #: glade/PyChess.glade:558 msgid "Open _Database" msgstr "" #: glade/PyChess.glade:569 lib/pychess/widgets/newGameDialog.py:615 msgid "Setup Position" msgstr "" #: glade/PyChess.glade:579 msgid "Enter Game _Notation" msgstr "" #: glade/PyChess.glade:592 msgid "_Save Game" msgstr "_Запази Играта" #: glade/PyChess.glade:606 msgid "Save Game _As" msgstr "Запази Играта _Като" #: glade/PyChess.glade:624 msgid "Share Game" msgstr "" #: glade/PyChess.glade:630 msgid "_Export Position" msgstr "" #: glade/PyChess.glade:644 msgid "_Analyze Game" msgstr "" #: glade/PyChess.glade:678 msgid "Player _Rating" msgstr "" #: glade/PyChess.glade:723 msgid "_Edit" msgstr "" #: glade/PyChess.glade:734 msgid "_Copy PGN" msgstr "" #: glade/PyChess.glade:746 msgid "_Copy FEN" msgstr "" #: glade/PyChess.glade:763 msgid "_Engines" msgstr "" #: glade/PyChess.glade:789 msgid "_Actions" msgstr "_Действия" #: glade/PyChess.glade:800 msgid "Offer _Abort" msgstr "" #: glade/PyChess.glade:810 msgid "Offer Ad_journment" msgstr "" #: glade/PyChess.glade:831 msgid "Offer _Pause" msgstr "" #: glade/PyChess.glade:847 msgid "Offer _Undo" msgstr "" #: glade/PyChess.glade:870 msgid "_Call Flag" msgstr "" #: glade/PyChess.glade:890 msgid "Ask to _Move" msgstr "" #: glade/PyChess.glade:905 msgid "Auto Call _Flag" msgstr "" #: glade/PyChess.glade:918 msgid "_View" msgstr "_Изглед" #: glade/PyChess.glade:925 msgid "_Rotate Board" msgstr "_Завърти масата" #: glade/PyChess.glade:939 msgid "_Fullscreen" msgstr "" #: glade/PyChess.glade:952 msgid "Leave _Fullscreen" msgstr "" #: glade/PyChess.glade:969 msgid "_Show Sidepanels" msgstr "" #: glade/PyChess.glade:980 msgid "_Log Viewer" msgstr "" #: glade/PyChess.glade:997 msgid "_Hint mode" msgstr "" #: glade/PyChess.glade:1009 msgid "Sp_y mode" msgstr "" #: glade/PyChess.glade:1024 msgid "_Help" msgstr "_Помощ" #: glade/PyChess.glade:1034 msgid "About Chess" msgstr "За Шаха" #: glade/PyChess.glade:1043 msgid "How to Play" msgstr "" #: glade/PyChess.glade:1052 msgid "Translate PyChess" msgstr "" #: glade/PyChess.glade:1058 msgid "Tip of the Day" msgstr "" #: glade/PyChess.glade:1153 msgid "Default" msgstr "" #: glade/PyChess.glade:1156 msgid "Knights" msgstr "" #: glade/PyChess.glade:1167 lib/pychess/widgets/preferencesDialog.py:349 msgid "Beep" msgstr "" #: glade/PyChess.glade:1170 lib/pychess/widgets/preferencesDialog.py:350 msgid "Select sound file..." msgstr "Избор на звуков файл…" #: glade/PyChess.glade:1173 lib/pychess/widgets/preferencesDialog.py:348 msgid "No sound" msgstr "Без звук" #: glade/PyChess.glade:1180 msgid "Preferences" msgstr "Предпочитания" #: glade/PyChess.glade:1218 msgid "The displayed name of the first human player, e.g., John." msgstr "" #: glade/PyChess.glade:1230 msgid "Name of _first human player:" msgstr "" #: glade/PyChess.glade:1259 msgid "The displayed name of the guest player, e.g., Mary." msgstr "" #: glade/PyChess.glade:1271 msgid "Name of s_econd human player:" msgstr "" #: glade/PyChess.glade:1307 msgid "_Hide tabs when only one game is open" msgstr "" #: glade/PyChess.glade:1312 msgid "" "If set, this hides the tab in the top of the playing window, when it is not " "needed." msgstr "" #: glade/PyChess.glade:1326 msgid "_Use main app closer [x] to close all games" msgstr "" #: glade/PyChess.glade:1331 msgid "" "If set, clicking on main application window closer first time it closes all " "games." msgstr "" #: glade/PyChess.glade:1345 msgid "Auto _rotate board to current human player" msgstr "" #: glade/PyChess.glade:1350 msgid "" "If set, the board will turn after each move, to show the natural view for " "the current player." msgstr "" #: glade/PyChess.glade:1364 msgid "Auto _promote to queen" msgstr "" #: glade/PyChess.glade:1369 msgid "If set, pawn promotes to queen without promotion dialog selection." msgstr "" #: glade/PyChess.glade:1383 msgid "Face _to Face display mode" msgstr "" #: glade/PyChess.glade:1388 msgid "" "If set, the black pieces will be head down, suitable for playing against " "friends on mobile devices." msgstr "" #: glade/PyChess.glade:1402 msgid "Sho_w cords" msgstr "" #: glade/PyChess.glade:1407 msgid "" "If set, the playing board will display labels and ranks for each chess " "field. These are usable in chess notation." msgstr "" #: glade/PyChess.glade:1421 msgid "Show _captured pieces" msgstr "" #: glade/PyChess.glade:1426 msgid "If set, the captured figurines will be shown next to the board." msgstr "" #: glade/PyChess.glade:1440 msgid "Prefer figures in _notation" msgstr "" #: glade/PyChess.glade:1445 msgid "" "If set, PyChess will use figures to express moved pieces, rather than " "uppercase letters." msgstr "" #: glade/PyChess.glade:1464 msgid "If set, PyChess will colorize suboptimal analyzed moves with red." msgstr "" #: glade/PyChess.glade:1477 msgid "Show elapsed move times" msgstr "" #: glade/PyChess.glade:1482 msgid "If set, the elapsed time that a player used for the move is shown." msgstr "" #: glade/PyChess.glade:1500 msgid "If set, the hint analyzer engine evaluation value is shown." msgstr "" #: glade/PyChess.glade:1526 msgid "General Options" msgstr "" #: glade/PyChess.glade:1560 msgid "F_ull board animation" msgstr "" #: glade/PyChess.glade:1565 msgid "Animate pieces, board rotation and more. Use this on fast machines." msgstr "" #: glade/PyChess.glade:1579 msgid "Only animate _moves" msgstr "" #: glade/PyChess.glade:1584 msgid "Only animate piece moves." msgstr "" #: glade/PyChess.glade:1599 msgid "No _animation" msgstr "" #: glade/PyChess.glade:1604 msgid "Never use animation. Use this on slow machines." msgstr "" #: glade/PyChess.glade:1632 msgid "Animation" msgstr "Анимация" #: glade/PyChess.glade:1651 msgid "_General" msgstr "" #: glade/PyChess.glade:1692 msgid "Use opening _book" msgstr "" #: glade/PyChess.glade:1697 msgid "If set, PyChess will suggest best opening moves on hint panel." msgstr "" #: glade/PyChess.glade:1724 msgid "Polyglot book file:" msgstr "" #: glade/PyChess.glade:1768 msgid "Use _local tablebases" msgstr "" #: glade/PyChess.glade:1773 msgid "" "If set, PyChess will show game results for different moves in positions containing 6 or less pieces.\n" "You can download tablebase files from:\n" "http://www.olympuschess.com/egtb/gaviota/" msgstr "" #: glade/PyChess.glade:1803 msgid "Gaviota TB path:" msgstr "" #: glade/PyChess.glade:1843 msgid "Use _online tablebases" msgstr "" #: glade/PyChess.glade:1848 msgid "" "If set, PyChess will show game results for different moves in positions containing 6 or less pieces.\n" "It will search positions from http://www.k4it.de/" msgstr "" #: glade/PyChess.glade:1870 msgid "Opening, endgame" msgstr "" #: glade/PyChess.glade:1904 msgid "Use _analyzer" msgstr "" #: glade/PyChess.glade:1946 msgid "" "The analyzer will run in the background and analyze the game. This is " "necessary for the hint mode to work" msgstr "" #: glade/PyChess.glade:1978 msgid "Use _inverted analyzer" msgstr "" #: glade/PyChess.glade:2020 msgid "" "The inverse analyzer will analyze the game as if your opponent was to move. " "This is necessary for the spy mode to work" msgstr "" #: glade/PyChess.glade:2096 msgid "Analyzing" msgstr "Анализиране" #: glade/PyChess.glade:2118 msgid "_Hints" msgstr "" #: glade/PyChess.glade:2263 msgid "Uninstall" msgstr "" #: glade/PyChess.glade:2317 msgid "Ac_tive" msgstr "" #: glade/PyChess.glade:2367 msgid "Installed Sidepanels" msgstr "" #: glade/PyChess.glade:2382 msgid "Side_panels" msgstr "" #: glade/PyChess.glade:2440 msgid "Light Squares :" msgstr "" #: glade/PyChess.glade:2479 msgid "Dark Squares :" msgstr "" #: glade/PyChess.glade:2515 msgid "Reset Default Colours" msgstr "" #: glade/PyChess.glade:2551 msgid "Board Colours" msgstr "" #: glade/PyChess.glade:2610 msgid "Chess Sets" msgstr "" #: glade/PyChess.glade:2634 msgid "Themes" msgstr "" #: glade/PyChess.glade:2659 msgid "_Use sounds in PyChess" msgstr "" #: glade/PyChess.glade:2982 msgid "A player _checks:" msgstr "" #: glade/PyChess.glade:2997 msgid "A player _moves:" msgstr "" #: glade/PyChess.glade:3010 msgid "Game is _drawn:" msgstr "" #: glade/PyChess.glade:3025 msgid "Game is _lost:" msgstr "" #: glade/PyChess.glade:3040 msgid "Game is _won:" msgstr "" #: glade/PyChess.glade:3055 msgid "A player c_aptures:" msgstr "" #: glade/PyChess.glade:3084 msgid "Game is _set-up:" msgstr "" #: glade/PyChess.glade:3136 msgid "_Observed moves:" msgstr "" #: glade/PyChess.glade:3151 msgid "Observed _ends:" msgstr "" #: glade/PyChess.glade:3265 msgid "Short on _time:" msgstr "" #: glade/PyChess.glade:3317 msgid "_Invalid move:" msgstr "" #: glade/PyChess.glade:3369 msgid "Activate alarm when _remaining sec is:" msgstr "" #: glade/PyChess.glade:3416 msgid "Play Sound When..." msgstr "" #: glade/PyChess.glade:3438 msgid "_Sounds" msgstr "" #: glade/PyChess.glade:3463 msgid "_Auto save finished games" msgstr "" #: glade/PyChess.glade:3497 msgid "Save files to:" msgstr "" #: glade/PyChess.glade:3525 msgid "Use name format:" msgstr "" #: glade/PyChess.glade:3569 msgid "Names: #n1, #n2" msgstr "" #: glade/PyChess.glade:3582 msgid "Year, month, day: #y, #m, #d" msgstr "" #: glade/PyChess.glade:3619 msgid "Save elapsed move _times" msgstr "" #: glade/PyChess.glade:3644 msgid "Save analyzing engine _evaluation values" msgstr "" #: glade/PyChess.glade:3669 msgid "Save _own games only" msgstr "" #: glade/PyChess.glade:3698 msgid "Save" msgstr "" #: glade/PyChess.glade:3728 msgid "uci" msgstr "" #: glade/PyChess.glade:3731 msgid "xboard" msgstr "" #: glade/PyChess.glade:3739 msgid "Manage engines" msgstr "" #: glade/PyChess.glade:3837 msgid "Command:" msgstr "" #: glade/PyChess.glade:3851 msgid "Protocol:" msgstr "" #: glade/PyChess.glade:3865 msgid "Parameters:" msgstr "" #: glade/PyChess.glade:3878 msgid "Command line parameters needed by the engine." msgstr "" #: glade/PyChess.glade:3903 msgid "" "Engines use uci or xboard communication protocol to talk to the GUI.\n" "If it can use both you can set here which one you like." msgstr "" #: glade/PyChess.glade:3929 msgid "Working directory:" msgstr "" #: glade/PyChess.glade:3942 msgid "The directory where the engine will be started from." msgstr "" #: glade/saveGamesDialog.glade:7 msgid "Quit PyChess" msgstr "" #: glade/saveGamesDialog.glade:24 lib/pychess/widgets/ionest.py:424 msgid "Close _without Saving" msgstr "Затваряне _без запазване" #: glade/saveGamesDialog.glade:83 msgid "_Save %d documents" msgstr "" #: glade/saveGamesDialog.glade:141 msgid "" "There are %d games with unsaved moves. Save changes before " "closing?" msgstr "" #: glade/saveGamesDialog.glade:161 msgid "Select the games you want to save:" msgstr "" #: glade/saveGamesDialog.glade:204 msgid "If you don't save, new changes to your games will be permanently lost." msgstr "" #: glade/taskers.glade:126 msgid "_Opponent:" msgstr "" #: glade/taskers.glade:154 msgid "_Your Color:" msgstr "" #: glade/taskers.glade:219 msgid "_Start Game" msgstr "" #: glade/taskers.glade:338 msgid "Log on as G_uest" msgstr "" #: glade/taskers.glade:410 msgid "Ha_ndle:" msgstr "" #: glade/taskers.glade:469 msgid "_Connect to server" msgstr "" #: glade/tipoftheday.glade:7 msgid "Tip Of The day" msgstr "" #: glade/tipoftheday.glade:62 msgid "Show tips at startup" msgstr "" #: lib/pychess/Main.py:302 msgid "http://en.wikipedia.org/wiki/Chess" msgstr "" #: lib/pychess/Main.py:305 msgid "http://en.wikipedia.org/wiki/Rules_of_chess" msgstr "" #: lib/pychess/Main.py:370 lib/pychess/widgets/gamenanny.py:80 msgid "Welcome" msgstr "" #: lib/pychess/Database/gamelist.py:40 msgid "Id" msgstr "" #: lib/pychess/Database/gamelist.py:40 msgid "W Elo" msgstr "" #: lib/pychess/Database/gamelist.py:40 msgid "B Elo" msgstr "" #: lib/pychess/Database/gamelist.py:41 msgid "Result" msgstr "" #: lib/pychess/Database/gamelist.py:41 msgid "Event" msgstr "" #: lib/pychess/Database/gamelist.py:41 msgid "Site" msgstr "" #: lib/pychess/Database/gamelist.py:41 msgid "Round" msgstr "" #: lib/pychess/Database/gamelist.py:41 msgid "Date" msgstr "" #: lib/pychess/Database/gamelist.py:41 msgid "ECO" msgstr "" #: lib/pychess/Database/gamelist.py:62 msgid "PyChess Game Database" msgstr "" #: lib/pychess/Database/PgnImport.py:188 #, python-format msgid "The game #%s can't be loaded, because of an error parsing FEN" msgstr "" #: lib/pychess/ic/FICSConnection.py:139 msgid "The connection was broken - got \"end of file\" message" msgstr "" #: lib/pychess/ic/FICSConnection.py:140 #, python-format msgid "'%s' is not a registered name" msgstr "" #: lib/pychess/ic/FICSConnection.py:141 msgid "" "The entered password was invalid.\n" "If you forgot your password, go to http://www.freechess.org/password to request a new one over email." msgstr "" #: lib/pychess/ic/FICSConnection.py:145 #, python-format msgid "Sorry '%s' is already logged in" msgstr "" #: lib/pychess/ic/FICSConnection.py:146 #, python-format msgid "'%s' is a registered name. If it is yours, type the password." msgstr "" #: lib/pychess/ic/FICSConnection.py:147 msgid "" "Due to abuse problems, guest connections have been prevented.\n" "You can still register on http://www.freechess.org" msgstr "" #: lib/pychess/ic/FICSConnection.py:166 msgid "Connecting to server" msgstr "" #: lib/pychess/ic/FICSConnection.py:181 msgid "Logging on to server" msgstr "" #: lib/pychess/ic/FICSConnection.py:239 msgid "Setting up environment" msgstr "" #: lib/pychess/ic/FICSObjects.py:35 lib/pychess/ic/FICSObjects.py:47 #, python-format msgid "%(player)s is %(status)s" msgstr "" #: lib/pychess/ic/FICSObjects.py:46 msgid "not playing" msgstr "" #: lib/pychess/ic/FICSObjects.py:54 lib/pychess/ic/ICLounge.py:1136 #: lib/pychess/ic/ICLounge.py:2209 lib/pychess/ic/__init__.py:98 #: lib/pychess/widgets/newGameDialog.py:153 msgid "Blitz" msgstr "" #: lib/pychess/ic/FICSObjects.py:58 lib/pychess/ic/ICLounge.py:1137 #: lib/pychess/ic/ICLounge.py:2209 lib/pychess/ic/__init__.py:100 msgid "Lightning" msgstr "" #: lib/pychess/ic/FICSObjects.py:60 lib/pychess/Variants/atomic.py:15 msgid "Atomic" msgstr "" #: lib/pychess/ic/FICSObjects.py:62 lib/pychess/Variants/bughouse.py:9 msgid "Bughouse" msgstr "" #: lib/pychess/ic/FICSObjects.py:64 lib/pychess/Variants/crazyhouse.py:9 msgid "Crazyhouse" msgstr "" #: lib/pychess/ic/FICSObjects.py:66 lib/pychess/Variants/losers.py:9 msgid "Losers" msgstr "" #: lib/pychess/ic/FICSObjects.py:68 lib/pychess/Variants/suicide.py:12 msgid "Suicide" msgstr "" #: lib/pychess/ic/FICSObjects.py:70 lib/pychess/ic/__init__.py:129 msgid "Wild" msgstr "" #: lib/pychess/ic/FICSObjects.py:117 msgid "Online" msgstr "" #: lib/pychess/ic/FICSObjects.py:118 lib/pychess/ic/FICSObjects.py:143 msgid "Offline" msgstr "" #: lib/pychess/ic/FICSObjects.py:133 msgid "Available" msgstr "" #: lib/pychess/ic/FICSObjects.py:135 msgid "Playing" msgstr "" #: lib/pychess/ic/FICSObjects.py:141 msgid "Idle" msgstr "" #: lib/pychess/ic/FICSObjects.py:145 msgid "Examining" msgstr "" #: lib/pychess/ic/FICSObjects.py:147 msgid "Not Available" msgstr "" #: lib/pychess/ic/FICSObjects.py:149 msgid "Running Simul Match" msgstr "" #: lib/pychess/ic/FICSObjects.py:151 msgid "In Tournament" msgstr "" #: lib/pychess/ic/FICSObjects.py:308 lib/pychess/ic/FICSObjects.py:492 #: lib/pychess/ic/ICLounge.py:2278 msgid "Unrated" msgstr "" #: lib/pychess/ic/FICSObjects.py:491 lib/pychess/ic/ICLounge.py:670 #: lib/pychess/ic/ICLounge.py:1358 lib/pychess/ic/ICLounge.py:1558 #: lib/pychess/ic/ICLounge.py:2113 msgid "Rated" msgstr "" #: lib/pychess/ic/FICSObjects.py:498 lib/pychess/ic/ICLounge.py:2098 #, python-format msgid "%d min" msgstr "" #: lib/pychess/ic/FICSObjects.py:500 #, python-format msgid " + %d sec" msgstr "" #: lib/pychess/ic/FICSObjects.py:517 #, python-format msgid "%(player)s plays %(color)s" msgstr "" #: lib/pychess/ic/FICSObjects.py:519 lib/pychess/ic/ICLounge.py:909 msgid "white" msgstr "" #: lib/pychess/ic/FICSObjects.py:519 lib/pychess/ic/ICLounge.py:909 msgid "black" msgstr "" #: lib/pychess/ic/FICSObjects.py:565 msgid "This is a continuation of an adjourned match" msgstr "" #: lib/pychess/ic/FICSObjects.py:654 msgid "Opponent Rating" msgstr "" #: lib/pychess/ic/FICSObjects.py:656 msgid "Manual Accept" msgstr "" #: lib/pychess/ic/FICSObjects.py:810 msgid "Private" msgstr "" #: lib/pychess/ic/FICSObjects.py:930 lib/pychess/ic/ICLounge.py:527 #: lib/pychess/Savers/epd.py:139 msgid "Unknown" msgstr "" #: lib/pychess/ic/ICLogon.py:159 lib/pychess/ic/ICLogon.py:165 msgid "Connection Error" msgstr "Грешка при свързване" #: lib/pychess/ic/ICLogon.py:161 msgid "Log on Error" msgstr "" #: lib/pychess/ic/ICLogon.py:163 msgid "Connection was closed" msgstr "Връзката е затворена" #: lib/pychess/ic/ICLogon.py:169 msgid "Address Error" msgstr "" #: lib/pychess/ic/ICLogon.py:172 msgid "Auto-logout" msgstr "" #: lib/pychess/ic/ICLogon.py:173 msgid "You have been logged out because you were idle more than 60 minutes" msgstr "" #: lib/pychess/ic/ICLounge.py:222 msgid "You have to set kibitz on to see bot messages here." msgstr "" #: lib/pychess/ic/ICLounge.py:241 msgid "" "You may only have 3 outstanding seeks at the same time. If you want to add a" " new seek you must clear your currently active seeks. Clear your seeks?" msgstr "" #: lib/pychess/ic/ICLounge.py:258 msgid "You can't touch this! You are examining a game." msgstr "" #: lib/pychess/ic/ICLounge.py:270 msgid " has declined your offer for a match" msgstr "" #: lib/pychess/ic/ICLounge.py:283 msgid " is censoring you" msgstr "" #: lib/pychess/ic/ICLounge.py:296 msgid " noplay listing you" msgstr "" #: lib/pychess/ic/ICLounge.py:311 msgid " uses a formula not fitting your match request:" msgstr "" #: lib/pychess/ic/ICLounge.py:325 msgid "to manual accept" msgstr "" #: lib/pychess/ic/ICLounge.py:327 msgid "to automatic accept" msgstr "" #: lib/pychess/ic/ICLounge.py:329 msgid "rating range now" msgstr "" #: lib/pychess/ic/ICLounge.py:330 msgid "Seek updated" msgstr "" #: lib/pychess/ic/ICLounge.py:342 msgid "Your seeks have been removed" msgstr "" #: lib/pychess/ic/ICLounge.py:363 msgid " has arrived" msgstr "" #: lib/pychess/ic/ICLounge.py:370 msgid " has departed" msgstr "" #: lib/pychess/ic/ICLounge.py:374 msgid " is present" msgstr "" #: lib/pychess/ic/ICLounge.py:391 sidepanel/chatPanel.py:17 msgid "Chat" msgstr "" #: lib/pychess/ic/ICLounge.py:472 sidepanel/bookPanel.py:366 msgid "Win" msgstr "" #: lib/pychess/ic/ICLounge.py:472 sidepanel/bookPanel.py:360 msgid "Draw" msgstr "" #: lib/pychess/ic/ICLounge.py:472 sidepanel/bookPanel.py:363 msgid "Loss" msgstr "" #: lib/pychess/ic/ICLounge.py:482 msgid "" "On FICS, your \"Wild\" rating encompasses all of the following variants at " "all time controls:\n" msgstr "" #: lib/pychess/ic/ICLounge.py:494 msgid "Sanctions" msgstr "" #: lib/pychess/ic/ICLounge.py:499 msgid "Email" msgstr "Електронна поща" #: lib/pychess/ic/ICLounge.py:504 msgid "Spent" msgstr "" #: lib/pychess/ic/ICLounge.py:506 msgid "online in total" msgstr "" #: lib/pychess/ic/ICLounge.py:512 msgid "Ping" msgstr "" #: lib/pychess/ic/ICLounge.py:517 msgid "Connecting" msgstr "Свързване" #: lib/pychess/ic/ICLounge.py:544 msgid "" "You are currently logged in as a guest.\n" "A guest can't play rated games and therefore isn't able to play as many of the types of matches offered as a registered user. To register an account, go to http://www.freechess.org/Register/index.html." msgstr "" #: lib/pychess/ic/ICLounge.py:669 lib/pychess/ic/ICLounge.py:1136 msgid "Name" msgstr "Име" #: lib/pychess/ic/ICLounge.py:670 lib/pychess/ic/ICLounge.py:1358 #: lib/pychess/ic/ICLounge.py:1558 msgid "Type" msgstr "" #: lib/pychess/ic/ICLounge.py:670 lib/pychess/ic/ICLounge.py:1558 msgid "Clock" msgstr "Часовник" #: lib/pychess/ic/ICLounge.py:726 lib/pychess/ic/ICLounge.py:923 #: lib/pychess/Players/Human.py:250 msgid "Accept" msgstr "" #: lib/pychess/ic/ICLounge.py:728 msgid "Assess" msgstr "" #: lib/pychess/ic/ICLounge.py:734 msgid "Archived" msgstr "" #: lib/pychess/ic/ICLounge.py:848 #, python-format msgid "Active seeks: %d" msgstr "" #: lib/pychess/ic/ICLounge.py:897 #, python-format msgid "" " would like to resume your adjourned %(time)s %(gametype)s " "game." msgstr "" #: lib/pychess/ic/ICLounge.py:902 #, python-format msgid "" " challenges you to a %(time)s %(rated)s %(gametype)s game" msgstr "" #: lib/pychess/ic/ICLounge.py:907 #, python-format msgid " where %(player)s plays %(color)s." msgstr "" #: lib/pychess/ic/ICLounge.py:924 lib/pychess/Players/Human.py:251 msgid "Decline" msgstr "" #: lib/pychess/ic/ICLounge.py:1065 msgid " min" msgstr "" #: lib/pychess/ic/ICLounge.py:1137 msgid "Status" msgstr "" #: lib/pychess/ic/ICLounge.py:1203 lib/pychess/ic/ICLounge.py:1233 #, python-format msgid "Players: %d" msgstr "" #: lib/pychess/ic/ICLounge.py:1469 #, python-format msgid "Games running: %d" msgstr "" #: lib/pychess/ic/ICLounge.py:1559 msgid "Date/Time" msgstr "" #: lib/pychess/ic/ICLounge.py:1614 #, python-format msgid "" " with whom you have an adjourned %(timecontrol)s %(gametype)s " "game is online." msgstr "" #: lib/pychess/ic/ICLounge.py:1635 msgid "Request Continuation" msgstr "" #: lib/pychess/ic/ICLounge.py:1637 msgid "Examine Adjourned Game" msgstr "" #: lib/pychess/ic/ICLounge.py:1965 msgid "" "The chain button is disabled because you are logged in as a guest. Guests " "can't establish ratings, and the chain button's state has no effect when " "there is no rating to which to tie \"Opponent Strength\" to" msgstr "" #: lib/pychess/ic/ICLounge.py:2006 msgid "Challenge: " msgstr "" #: lib/pychess/ic/ICLounge.py:2044 msgid "If set you can refuse players accepting your seek" msgstr "" #: lib/pychess/ic/ICLounge.py:2048 lib/pychess/ic/ICLounge.py:2051 msgid "This option is not applicable because you're challenging a player" msgstr "" #: lib/pychess/ic/ICLounge.py:2064 msgid "Edit Seek: " msgstr "" #: lib/pychess/ic/ICLounge.py:2095 #, python-format msgid "%(minutes)d min + %(gain)d sec/move" msgstr "" #: lib/pychess/ic/ICLounge.py:2116 msgid "Manual" msgstr "" #: lib/pychess/ic/ICLounge.py:2256 msgid "Any strength" msgstr "" #: lib/pychess/ic/ICLounge.py:2308 msgid "You can't play rated games because you are logged in as a guest" msgstr "" #: lib/pychess/ic/ICLounge.py:2312 msgid "You can't play rated games because \"Untimed\" is checked, " msgstr "" #: lib/pychess/ic/ICLounge.py:2313 msgid "and on FICS, untimed games can't be rated" msgstr "" #: lib/pychess/ic/ICLounge.py:2317 msgid "This option is not available because you're challenging a guest, " msgstr "" #: lib/pychess/ic/ICLounge.py:2318 msgid "and guests can't play rated games" msgstr "" #: lib/pychess/ic/ICLounge.py:2332 lib/pychess/Variants/shuffle.py:16 #: lib/pychess/widgets/newGameDialog.py:266 msgid "Shuffle" msgstr "" #: lib/pychess/ic/ICLounge.py:2333 lib/pychess/widgets/newGameDialog.py:267 msgid "Other (standard rules)" msgstr "" #: lib/pychess/ic/ICLounge.py:2334 lib/pychess/widgets/newGameDialog.py:268 msgid "Other (non standard rules)" msgstr "" #: lib/pychess/ic/ICLounge.py:2421 msgid "You can't select a variant because \"Untimed\" is checked, " msgstr "" #: lib/pychess/ic/ICLounge.py:2422 msgid "and on FICS, untimed games have to be normal chess rules" msgstr "" #: lib/pychess/ic/ICLounge.py:2454 msgid "Change Tolerance" msgstr "" #: lib/pychess/ic/__init__.py:102 msgid "Examined" msgstr "" #: lib/pychess/ic/__init__.py:103 msgid "Other" msgstr "" #: lib/pychess/ic/__init__.py:182 msgid "Administrator" msgstr "" #: lib/pychess/ic/__init__.py:182 msgid "Blindfold Account" msgstr "" #: lib/pychess/ic/__init__.py:182 msgid "Computer" msgstr "" #: lib/pychess/ic/__init__.py:183 msgid "Team Account" msgstr "" #: lib/pychess/ic/__init__.py:183 msgid "Unregistered" msgstr "" #: lib/pychess/ic/__init__.py:183 msgid "Chess Advisor" msgstr "" #: lib/pychess/ic/__init__.py:184 msgid "Service Representative" msgstr "" #: lib/pychess/ic/__init__.py:184 msgid "Tournament Director" msgstr "" #: lib/pychess/ic/__init__.py:184 msgid "Mamer Manager" msgstr "" #: lib/pychess/ic/__init__.py:185 msgid "Grand Master" msgstr "" #: lib/pychess/ic/__init__.py:185 msgid "International Master" msgstr "" #: lib/pychess/ic/__init__.py:185 msgid "FIDE Master" msgstr "" #: lib/pychess/ic/__init__.py:186 msgid "Woman Grand Master" msgstr "" #: lib/pychess/ic/__init__.py:186 msgid "Woman International Master" msgstr "" #: lib/pychess/ic/__init__.py:186 msgid "Woman FIDE Master" msgstr "" #: lib/pychess/ic/__init__.py:187 msgid "Dummy Account" msgstr "" #: lib/pychess/ic/__init__.py:191 msgid "*" msgstr "" #: lib/pychess/ic/__init__.py:191 lib/pychess/Utils/repr.py:14 msgid "B" msgstr "" #: lib/pychess/ic/__init__.py:191 msgid "C" msgstr "" #: lib/pychess/ic/__init__.py:192 msgid "T" msgstr "" #: lib/pychess/ic/__init__.py:192 msgid "U" msgstr "" #: lib/pychess/ic/__init__.py:192 msgid "CA" msgstr "" #: lib/pychess/ic/__init__.py:193 msgid "SR" msgstr "" #: lib/pychess/ic/__init__.py:193 msgid "TD" msgstr "" #: lib/pychess/ic/__init__.py:193 msgid "TM" msgstr "" #: lib/pychess/ic/__init__.py:194 msgid "GM" msgstr "" #: lib/pychess/ic/__init__.py:194 msgid "IM" msgstr "" #: lib/pychess/ic/__init__.py:194 msgid "FM" msgstr "" #: lib/pychess/ic/__init__.py:195 msgid "WGM" msgstr "" #: lib/pychess/ic/__init__.py:195 msgid "WIM" msgstr "" #: lib/pychess/ic/__init__.py:195 msgid "WFM" msgstr "" #: lib/pychess/ic/__init__.py:195 msgid "D" msgstr "" #: lib/pychess/ic/__init__.py:195 msgid "H" msgstr "" #: lib/pychess/ic/__init__.py:195 msgid "CM" msgstr "" #: lib/pychess/ic/__init__.py:195 msgid "FA" msgstr "" #: lib/pychess/ic/__init__.py:195 msgid "NM" msgstr "" #: lib/pychess/Players/CECPEngine.py:857 #, python-format msgid "The engine %s reports an error:" msgstr "" #: lib/pychess/Players/Human.py:20 msgid "Your opponent has offered you a draw." msgstr "" #: lib/pychess/Players/Human.py:21 msgid "" "Your opponent has offered you a draw. If you accept this offer, the game " "will end with a score of 1/2 - 1/2." msgstr "" #: lib/pychess/Players/Human.py:23 msgid "Your opponent wants to abort the game." msgstr "" #: lib/pychess/Players/Human.py:24 msgid "" "Your opponent has asked that the game be aborted. If you accept this offer, " "the game will end with no rating change." msgstr "" #: lib/pychess/Players/Human.py:26 msgid "Your opponent wants to adjourn the game." msgstr "" #: lib/pychess/Players/Human.py:27 msgid "" "Your opponent has asked that the game be adjourned. If you accept this " "offer, the game will be adjourned and you can resume it later (when your " "opponent is online and both players agree to resume)." msgstr "" #: lib/pychess/Players/Human.py:29 #, python-format msgid "Your opponent wants to undo %s move(s)." msgstr "" #: lib/pychess/Players/Human.py:30 #, python-format msgid "" "Your opponent has asked that the last %s move(s) be undone. If you accept " "this offer, the game will continue from the earlier position." msgstr "" #: lib/pychess/Players/Human.py:32 msgid "Your opponent wants to pause the game." msgstr "" #: lib/pychess/Players/Human.py:33 msgid "" "Your opponent has asked that the game be paused. If you accept this offer, " "the game clock will be paused until both players agree to resume the game." msgstr "" #: lib/pychess/Players/Human.py:35 msgid "Your opponent wants to resume the game." msgstr "" #: lib/pychess/Players/Human.py:36 msgid "" "Your opponent has asked that the game be resumed. If you accept this offer, " "the game clock will continue from where it was paused." msgstr "" #: lib/pychess/Players/Human.py:40 msgid "The resignation" msgstr "" #: lib/pychess/Players/Human.py:41 msgid "The flag call" msgstr "" #: lib/pychess/Players/Human.py:42 msgid "The draw offer" msgstr "" #: lib/pychess/Players/Human.py:43 msgid "The abort offer" msgstr "" #: lib/pychess/Players/Human.py:44 msgid "The adjourn offer" msgstr "" #: lib/pychess/Players/Human.py:45 msgid "The pause offer" msgstr "" #: lib/pychess/Players/Human.py:46 msgid "The resume offer" msgstr "" #: lib/pychess/Players/Human.py:47 msgid "The offer to switch sides" msgstr "" #: lib/pychess/Players/Human.py:48 msgid "The takeback offer" msgstr "" #: lib/pychess/Players/Human.py:52 msgid "resign" msgstr "" #: lib/pychess/Players/Human.py:53 msgid "call your opponents flag" msgstr "" #: lib/pychess/Players/Human.py:54 msgid "offer a draw" msgstr "" #: lib/pychess/Players/Human.py:55 msgid "offer an abort" msgstr "" #: lib/pychess/Players/Human.py:56 msgid "offer to adjourn" msgstr "" #: lib/pychess/Players/Human.py:57 msgid "offer a pause" msgstr "" #: lib/pychess/Players/Human.py:58 msgid "offer to resume" msgstr "" #: lib/pychess/Players/Human.py:59 msgid "offer to switch sides" msgstr "" #: lib/pychess/Players/Human.py:60 msgid "offer a takeback" msgstr "" #: lib/pychess/Players/Human.py:61 msgid "ask your opponent to move" msgstr "" #: lib/pychess/Players/Human.py:66 msgid "Your opponent is not out of time." msgstr "" #: lib/pychess/Players/Human.py:68 msgid "The clock hasn't been started yet." msgstr "" #: lib/pychess/Players/Human.py:70 msgid "You can't switch colors during the game." msgstr "" #: lib/pychess/Players/Human.py:72 msgid "You have tried to undo too many moves." msgstr "" #: lib/pychess/Players/Human.py:180 msgid "Your opponent asks you to hurry!" msgstr "" #: lib/pychess/Players/Human.py:181 msgid "" "Generally this means nothing, as the game is time-based, but if you want to " "please your opponent, perhaps you should get going." msgstr "" #: lib/pychess/Players/Human.py:259 #, python-format msgid "%s was declined by your opponent" msgstr "" #: lib/pychess/Players/Human.py:260 #, python-format msgid "Resend %s?" msgstr "" #: lib/pychess/Players/Human.py:267 msgid "Resend" msgstr "" #: lib/pychess/Players/Human.py:275 #, python-format msgid "%s was withdrawn by your opponent" msgstr "" #: lib/pychess/Players/Human.py:276 msgid "Your opponent seems to have changed their mind." msgstr "" #: lib/pychess/Players/Human.py:290 #, python-format msgid "Unable to accept %s" msgstr "" #: lib/pychess/Players/Human.py:291 msgid "Probably because it has been withdrawn." msgstr "" #: lib/pychess/Players/Human.py:298 #, python-format msgid "%s returns an error" msgstr "" #: lib/pychess/Savers/chessalpha2.py:12 msgid "Chess Alpha 2 Diagram" msgstr "" #: lib/pychess/Savers/chesspastebin.py:39 msgid "Game shared at " msgstr "" #: lib/pychess/Savers/chesspastebin.py:41 msgid "(Link is available on clipboard.)" msgstr "" #: lib/pychess/Savers/database.py:19 msgid "PyChess database" msgstr "" #: lib/pychess/Savers/epd.py:12 msgid "Chess Position" msgstr "" #: lib/pychess/Savers/fen.py:12 msgid "Simple Chess Position" msgstr "" #: lib/pychess/Savers/fen.py:44 lib/pychess/Savers/pgn.py:329 msgid "The game can't be loaded, because of an error parsing FEN" msgstr "" #: lib/pychess/Savers/pgnbase.py:100 #, python-format msgid "" "The game can't be read to end, because of an error parsing move %(moveno)s " "'%(notation)s'." msgstr "" #: lib/pychess/Savers/pgnbase.py:102 #, python-format msgid "The move failed because %s." msgstr "" #: lib/pychess/Savers/pgnbase.py:110 #, python-format msgid "Error parsing move %(moveno)s %(mstr)s" msgstr "" #: lib/pychess/Savers/pgn.py:28 msgid "Chess Game" msgstr "" #: lib/pychess/Savers/pgn.py:362 msgid "Invalid move." msgstr "" #: lib/pychess/Savers/png.py:15 msgid "Png image" msgstr "" #: lib/pychess/System/ping.py:31 msgid "Destination Host Unreachable" msgstr "" #: lib/pychess/System/ping.py:74 msgid "Died" msgstr "" #: lib/pychess/Utils/GameModel.py:147 msgid "Local Event" msgstr "" #: lib/pychess/Utils/GameModel.py:148 msgid "Local Site" msgstr "" #: lib/pychess/Utils/repr.py:12 msgid "Pawn" msgstr "" #: lib/pychess/Utils/repr.py:14 msgid "P" msgstr "" #: lib/pychess/Utils/repr.py:14 msgid "N" msgstr "" #: lib/pychess/Utils/repr.py:14 msgid "R" msgstr "" #: lib/pychess/Utils/repr.py:14 msgid "Q" msgstr "" #: lib/pychess/Utils/repr.py:14 msgid "K" msgstr "" #: lib/pychess/Utils/repr.py:17 msgid "The game ended in a draw" msgstr "" #: lib/pychess/Utils/repr.py:18 #, python-format msgid "%(white)s won the game" msgstr "" #: lib/pychess/Utils/repr.py:19 #, python-format msgid "%(black)s won the game" msgstr "" #: lib/pychess/Utils/repr.py:20 msgid "The game has been killed" msgstr "Играта беше убита" #: lib/pychess/Utils/repr.py:21 msgid "The game has been adjourned" msgstr "Играта беше закрита" #: lib/pychess/Utils/repr.py:22 msgid "The game has been aborted" msgstr "Играта беше прекратена" #: lib/pychess/Utils/repr.py:26 msgid "Because neither player has sufficient material to mate" msgstr "" #: lib/pychess/Utils/repr.py:27 msgid "Because the same position was repeated three times in a row" msgstr "" #: lib/pychess/Utils/repr.py:28 msgid "Because the last 50 moves brought nothing new" msgstr "" #: lib/pychess/Utils/repr.py:29 msgid "Because both players ran out of time" msgstr "" #: lib/pychess/Utils/repr.py:30 #, python-format msgid "Because %(mover)s stalemated" msgstr "" #: lib/pychess/Utils/repr.py:31 msgid "Because both players agreed to a draw" msgstr "" #: lib/pychess/Utils/repr.py:32 lib/pychess/Utils/repr.py:42 msgid "Because of adjudication by an admin" msgstr "" #: lib/pychess/Utils/repr.py:33 msgid "Because the game exceed the max length" msgstr "" #: lib/pychess/Utils/repr.py:34 #, python-format msgid "" "Because %(white)s ran out of time and %(black)s has insufficient material to" " mate" msgstr "" #: lib/pychess/Utils/repr.py:35 #, python-format msgid "" "Because %(black)s ran out of time and %(white)s has insufficient material to" " mate" msgstr "" #: lib/pychess/Utils/repr.py:36 msgid "Because both players have the same amount of pieces" msgstr "" #: lib/pychess/Utils/repr.py:38 #, python-format msgid "Because %(loser)s resigned" msgstr "" #: lib/pychess/Utils/repr.py:39 #, python-format msgid "Because %(loser)s ran out of time" msgstr "" #: lib/pychess/Utils/repr.py:40 #, python-format msgid "Because %(loser)s was checkmated" msgstr "" #: lib/pychess/Utils/repr.py:41 #, python-format msgid "Because %(loser)s disconnected" msgstr "" #: lib/pychess/Utils/repr.py:43 #, python-format msgid "Because %(winner)s has fewer pieces" msgstr "" #: lib/pychess/Utils/repr.py:44 #, python-format msgid "Because %(winner)s lost all pieces" msgstr "" #: lib/pychess/Utils/repr.py:45 #, python-format msgid "Because %(loser)s king exploded" msgstr "" #: lib/pychess/Utils/repr.py:46 #, python-format msgid "Because %(winner)s king reached the center" msgstr "" #: lib/pychess/Utils/repr.py:47 #, python-format msgid "Because %(winner)s was giving check 3 times" msgstr "" #: lib/pychess/Utils/repr.py:49 msgid "Because a player lost connection" msgstr "" #: lib/pychess/Utils/repr.py:50 msgid "Because both players agreed to an adjournment" msgstr "" #: lib/pychess/Utils/repr.py:51 msgid "Because the server was shut down" msgstr "" #: lib/pychess/Utils/repr.py:52 msgid "" "Because a player lost connection and the other player requested adjournment" msgstr "" #: lib/pychess/Utils/repr.py:53 #, python-format msgid "" "Because %(black)s lost connection to the server and %(white)s requested " "adjournment" msgstr "" #: lib/pychess/Utils/repr.py:54 #, python-format msgid "" "Because %(white)s lost connection to the server and %(black)s requested " "adjournment" msgstr "" #: lib/pychess/Utils/repr.py:55 #, python-format msgid "Because %(white)s lost connection to the server" msgstr "" #: lib/pychess/Utils/repr.py:56 #, python-format msgid "Because %(black)s lost connection to the server" msgstr "" #: lib/pychess/Utils/repr.py:58 msgid "Because of adjudication by an admin. No rating changes have occurred." msgstr "" #: lib/pychess/Utils/repr.py:59 msgid "" "Because both players agreed to abort the game. No rating changes have " "occurred." msgstr "" #: lib/pychess/Utils/repr.py:60 msgid "Because of courtesy by a player. No rating changes have occurred." msgstr "" #: lib/pychess/Utils/repr.py:61 msgid "" "Because a player aborted the game. Either player can abort the game without " "the other's consent before the second move. No rating changes have occurred." msgstr "" #: lib/pychess/Utils/repr.py:62 msgid "" "Because a player disconnected and there are too few moves to warrant " "adjournment. No rating changes have occurred." msgstr "" #: lib/pychess/Utils/repr.py:63 msgid "Because the server was shut down. No rating changes have occurred." msgstr "" #: lib/pychess/Utils/repr.py:65 #, python-format msgid "Because the %(white)s engine died" msgstr "" #: lib/pychess/Utils/repr.py:66 #, python-format msgid "Because the %(black)s engine died" msgstr "" #: lib/pychess/Utils/repr.py:67 msgid "Because the connection to the server was lost" msgstr "" #: lib/pychess/Utils/repr.py:68 msgid "The reason is unknown" msgstr "" #: lib/pychess/Utils/TimeModel.py:229 msgid "min" msgstr "" #: lib/pychess/Utils/TimeModel.py:231 msgid "sec" msgstr "" #: lib/pychess/Variants/asean.py:12 msgid "" "ASEAN: http://www.ncf-" "phil.org/downloadables/2014/May/Asean_chess/Laws_of_ASEAN_Chess_2011_Nov_26.doc" msgstr "" #: lib/pychess/Variants/asean.py:13 msgid "ASEAN" msgstr "" #: lib/pychess/Variants/asean.py:33 msgid "Makruk: http://en.wikipedia.org/wiki/Makruk" msgstr "" #: lib/pychess/Variants/asean.py:34 msgid "Makruk" msgstr "" #: lib/pychess/Variants/asean.py:60 msgid "Cambodian: http://www.khmerinstitute.org/culture/ok.html" msgstr "" #: lib/pychess/Variants/asean.py:61 msgid "Cambodian" msgstr "" #: lib/pychess/Variants/asean.py:86 msgid "" "Ai-Wok: http://www.open-" "aurec.com/wbforum/viewtopic.php?p=199364&sid=20963a1de2c164050de019e5ed6bf7c4#p199364" msgstr "" #: lib/pychess/Variants/asean.py:87 msgid "Ai-Wok" msgstr "" #: lib/pychess/Variants/asean.py:111 msgid "Sittuyin: http://en.wikipedia.org/wiki/Sittuyin" msgstr "" #: lib/pychess/Variants/asean.py:112 msgid "Sittuyin" msgstr "" #: lib/pychess/Variants/asymmetricrandom.py:12 msgid "" "FICS wild/4: http://www.freechess.org/Help/HelpFiles/wild.html\n" "* Randomly chosen pieces (two queens or three rooks possible)\n" "* Exactly one king of each color\n" "* Pieces placed randomly behind the pawns, SUBJECT TO THE CONSTRAINT THAT THE BISHOPS ARE BALANCED\n" "* No castling\n" "* Black's arrangement DOES NOT mirrors white's" msgstr "" #: lib/pychess/Variants/asymmetricrandom.py:18 msgid "Asymmetric Random" msgstr "" #: lib/pychess/Variants/atomic.py:14 msgid "FICS atomic: http://www.freechess.org/Help/HelpFiles/atomic.html" msgstr "" #: lib/pychess/Variants/blindfold.py:7 msgid "" "Classic chess rules with hidden figurines\n" "http://en.wikipedia.org/wiki/Blindfold_chess" msgstr "" #: lib/pychess/Variants/blindfold.py:9 #: lib/pychess/widgets/newGameDialog.py:264 msgid "Blindfold" msgstr "" #: lib/pychess/Variants/blindfold.py:18 msgid "" "Classic chess rules with hidden pawns\n" "http://en.wikipedia.org/wiki/Blindfold_chess" msgstr "" #: lib/pychess/Variants/blindfold.py:20 msgid "Hidden pawns" msgstr "" #: lib/pychess/Variants/blindfold.py:29 msgid "" "Classic chess rules with hidden pieces\n" "http://en.wikipedia.org/wiki/Blindfold_chess" msgstr "" #: lib/pychess/Variants/blindfold.py:31 msgid "Hidden pieces" msgstr "" #: lib/pychess/Variants/blindfold.py:40 msgid "" "Classic chess rules with all pieces white\n" "http://en.wikipedia.org/wiki/Blindfold_chess" msgstr "" #: lib/pychess/Variants/blindfold.py:42 msgid "All white" msgstr "" #: lib/pychess/Variants/bughouse.py:8 msgid "FICS bughouse: http://www.freechess.org/Help/HelpFiles/bughouse.html" msgstr "" #: lib/pychess/Variants/corner.py:12 msgid "" "http://brainking.com/en/GameRules?tp=2\n" "* Placement of the pieces on the 1st and 8th row are randomized\n" "* The king is in the right hand corner\n" "* Bishops must start on opposite color squares\n" "* Black's starting position is obtained by rotating white's position 180 degrees around the board's center\n" "* No castling" msgstr "" #: lib/pychess/Variants/corner.py:18 msgid "Corner" msgstr "" #: lib/pychess/Variants/crazyhouse.py:8 msgid "" "FICS crazyhouse: http://www.freechess.org/Help/HelpFiles/crazyhouse.html" msgstr "" #: lib/pychess/Variants/euroshogi.py:9 msgid "EuroShogi: http://en.wikipedia.org/wiki/EuroShogi" msgstr "" #: lib/pychess/Variants/euroshogi.py:10 msgid "EuroShogi" msgstr "" #: lib/pychess/Variants/fischerandom.py:18 msgid "" "http://en.wikipedia.org/wiki/Chess960\n" "FICS wild/fr: http://www.freechess.org/Help/HelpFiles/wild.html" msgstr "" #: lib/pychess/Variants/fischerandom.py:20 msgid "Fischer Random" msgstr "" #: lib/pychess/Variants/kingofthehill.py:8 msgid "" "Bringing your king legally to the center (e4, d4, e5, d5) instantly wins the game!\n" "Normal rules apply in other cases and checkmate also ends the game." msgstr "" #: lib/pychess/Variants/kingofthehill.py:10 msgid "King of the hill" msgstr "" #: lib/pychess/Variants/knightodds.py:8 msgid "One player starts with one less knight piece" msgstr "" #: lib/pychess/Variants/knightodds.py:9 msgid "Knight odds" msgstr "" #: lib/pychess/Variants/losers.py:8 msgid "FICS losers: http://www.freechess.org/Help/HelpFiles/losers_chess.html" msgstr "" #: lib/pychess/Variants/normal.py:4 msgid "" "Classic chess rules\n" "http://en.wikipedia.org/wiki/Chess" msgstr "" #: lib/pychess/Variants/normal.py:6 lib/pychess/widgets/newGameDialog.py:157 msgid "Normal" msgstr "" #: lib/pychess/Variants/pawnodds.py:8 msgid "One player starts with one less pawn piece" msgstr "" #: lib/pychess/Variants/pawnodds.py:9 msgid "Pawn odds" msgstr "" #: lib/pychess/Variants/pawnspassed.py:11 msgid "" "FICS wild/8a: http://www.freechess.org/Help/HelpFiles/wild.html\n" "White pawns start on 5th rank and black pawns on the 4th rank" msgstr "" #: lib/pychess/Variants/pawnspassed.py:13 msgid "Pawns Passed" msgstr "" #: lib/pychess/Variants/pawnspushed.py:10 msgid "" "FICS wild/8: http://www.freechess.org/Help/HelpFiles/wild.html\n" "Pawns start on 4th and 5th ranks rather than 2nd and 7th" msgstr "" #: lib/pychess/Variants/pawnspushed.py:12 msgid "Pawns Pushed" msgstr "" #: lib/pychess/Variants/queenodds.py:8 msgid "One player starts with one less queen piece" msgstr "" #: lib/pychess/Variants/queenodds.py:9 msgid "Queen odds" msgstr "" #: lib/pychess/Variants/randomchess.py:11 msgid "" "FICS wild/3: http://www.freechess.org/Help/HelpFiles/wild.html\n" "* Randomly chosen pieces (two queens or three rooks possible)\n" "* Exactly one king of each color\n" "* Pieces placed randomly behind the pawns\n" "* No castling\n" "* Black's arrangement mirrors white's" msgstr "" #: lib/pychess/Variants/randomchess.py:17 #: lib/pychess/widgets/TaskerManager.py:155 msgid "Random" msgstr "" #: lib/pychess/Variants/rookodds.py:8 msgid "One player starts with one less rook piece" msgstr "" #: lib/pychess/Variants/rookodds.py:9 msgid "Rook odds" msgstr "" #: lib/pychess/Variants/shuffle.py:11 msgid "" "xboard nocastle: http://home.hccnet.nl/h.g.muller/engine-intf.html#8\n" "FICS wild/2: http://www.freechess.org/Help/HelpFiles/wild.html\n" "* Random arrangement of the pieces behind the pawns\n" "* No castling\n" "* Black's arrangement mirrors white's" msgstr "" #: lib/pychess/Variants/suicide.py:11 msgid "" "FICS suicide: http://www.freechess.org/Help/HelpFiles/suicide_chess.html" msgstr "" #: lib/pychess/Variants/theban.py:10 msgid "" "Variant developed by Kai Laskos: " "http://talkchess.com/forum/viewtopic.php?t=40990" msgstr "" #: lib/pychess/Variants/theban.py:11 msgid "Theban" msgstr "" #: lib/pychess/Variants/threecheck.py:10 msgid "Win by giving check 3 times" msgstr "" #: lib/pychess/Variants/threecheck.py:11 msgid "Three-check" msgstr "" #: lib/pychess/Variants/upsidedown.py:10 msgid "" "FICS wild/5: http://www.freechess.org/Help/HelpFiles/wild.html\n" "http://en.wikipedia.org/wiki/Chess_variant#Chess_with_different_starting_positions\n" "Pawns start on their 7th rank rather than their 2nd rank!" msgstr "" #: lib/pychess/Variants/upsidedown.py:13 msgid "Upside Down" msgstr "" #: lib/pychess/Variants/wildcastle.py:10 msgid "" "xboard wildcastle http://home.hccnet.nl/h.g.muller/engine-intf.html#8\n" "FICS wild/0: http://www.freechess.org/Help/HelpFiles/wild.html\n" "* White has the typical set-up at the start.\n" "* Black's pieces are the same, except that the King and Queen are reversed,\n" "* so they are not on the same files as White's King and Queen.\n" "* Castling is done similarly to normal chess:\n" "* o-o-o indicates long castling and o-o short castling." msgstr "" #: lib/pychess/Variants/wildcastle.py:17 msgid "Wildcastle" msgstr "" #: lib/pychess/Variants/wildcastleshuffle.py:11 msgid "" "xboard wildcastle http://home.hccnet.nl/h.g.muller/engine-intf.html#8\n" "FICS wild/1: http://www.freechess.org/Help/HelpFiles/wild.html\n" "* In this variant both sides have the same set of pieces as in normal chess.\n" "* The white king starts on d1 or e1 and the black king starts on d8 or e8,\n" "* and the rooks are in their usual positions.\n" "* Bishops are always on opposite colors.\n" "* Subject to these constraints the position of the pieces on their first ranks is random.\n" "* Castling is done similarly to normal chess:\n" "* o-o-o indicates long castling and o-o short castling." msgstr "" #: lib/pychess/Variants/wildcastleshuffle.py:20 msgid "Wildcastle shuffle" msgstr "" #: lib/pychess/widgets/analyzegameDialog.py:85 msgid "Game analyzing in progress..." msgstr "" #: lib/pychess/widgets/analyzegameDialog.py:86 msgid "Do you want to abort it?" msgstr "" #: lib/pychess/widgets/analyzegameDialog.py:95 #: lib/pychess/widgets/gamewidget.py:202 lib/pychess/widgets/gamewidget.py:320 msgid "Abort" msgstr "" #: lib/pychess/widgets/ChatView.py:125 msgid "Observers" msgstr "" #: lib/pychess/widgets/ChatWindow.py:222 msgid "You have opened no conversations yet" msgstr "" #: lib/pychess/widgets/ChatWindow.py:254 msgid "Only registered users may talk to this channel" msgstr "" #: lib/pychess/widgets/ChatWindow.py:312 msgid "No conversation's selected" msgstr "" #: lib/pychess/widgets/ChatWindow.py:350 msgid "Loading player data" msgstr "" #: lib/pychess/widgets/ChatWindow.py:400 msgid "Receiving list of players" msgstr "" #: lib/pychess/widgets/ChatWindow.py:518 msgid "Friends" msgstr "" #: lib/pychess/widgets/ChatWindow.py:529 msgid "Admin" msgstr "" #: lib/pychess/widgets/ChatWindow.py:540 msgid "More channels" msgstr "" #: lib/pychess/widgets/ChatWindow.py:548 msgid "More players" msgstr "" #: lib/pychess/widgets/ChatWindow.py:558 msgid "Computers" msgstr "" #: lib/pychess/widgets/ChatWindow.py:568 msgid "BlindFold" msgstr "" #: lib/pychess/widgets/ChatWindow.py:578 msgid "Guests" msgstr "" #: lib/pychess/widgets/ChatWindow.py:805 msgid "Conversations" msgstr "" #: lib/pychess/widgets/ChatWindow.py:807 msgid "Conversation info" msgstr "" #: lib/pychess/widgets/enginesDialog.py:152 msgid "Select engine" msgstr "" #: lib/pychess/widgets/enginesDialog.py:156 msgid "Executable files" msgstr "" #: lib/pychess/widgets/enginesDialog.py:176 #: lib/pychess/widgets/enginesDialog.py:210 #: lib/pychess/widgets/enginesDialog.py:235 #, python-format msgid "Unable to add %s" msgstr "" #: lib/pychess/widgets/enginesDialog.py:177 msgid "wine not installed" msgstr "" #: lib/pychess/widgets/enginesDialog.py:211 #: lib/pychess/widgets/enginesDialog.py:236 msgid "There is something wrong with this executable" msgstr "" #: lib/pychess/widgets/enginesDialog.py:266 msgid "Select working directory" msgstr "" #: lib/pychess/widgets/gamenanny.py:115 #, python-format msgid " invalid engine move: %s" msgstr "" #: lib/pychess/widgets/gamenanny.py:134 msgid "Offer Rematch" msgstr "" #: lib/pychess/widgets/gamenanny.py:136 lib/pychess/widgets/gamenanny.py:147 #, python-format msgid "Observe %s" msgstr "" #: lib/pychess/widgets/gamenanny.py:168 msgid "Play Rematch" msgstr "" #: lib/pychess/widgets/gamenanny.py:171 msgid "Undo one move" msgstr "" #: lib/pychess/widgets/gamenanny.py:173 msgid "Undo two moves" msgstr "" #: lib/pychess/widgets/gamenanny.py:203 msgid "The game is paused" msgstr "" #: lib/pychess/widgets/gamenanny.py:221 lib/pychess/widgets/gamenanny.py:222 msgid "Loaded game" msgstr "Заредена игра" #: lib/pychess/widgets/gamenanny.py:228 msgid "Saved game" msgstr "Запазена игра" #: lib/pychess/widgets/gamenanny.py:232 msgid "Analyzer started" msgstr "" #: lib/pychess/widgets/gamenanny.py:281 msgid "You sent an abort offer" msgstr "" #: lib/pychess/widgets/gamenanny.py:283 msgid "You sent an adjournment offer" msgstr "" #: lib/pychess/widgets/gamenanny.py:285 msgid "You sent a draw offer" msgstr "" #: lib/pychess/widgets/gamenanny.py:287 msgid "You sent a pause offer" msgstr "" #: lib/pychess/widgets/gamenanny.py:289 msgid "You sent a resume offer" msgstr "" #: lib/pychess/widgets/gamenanny.py:291 msgid "You sent an undo offer" msgstr "" #: lib/pychess/widgets/gamenanny.py:293 msgid "You asked your opponent to move" msgstr "" #: lib/pychess/widgets/gamenanny.py:305 #, python-format msgid "Engine, %s, has died" msgstr "" #: lib/pychess/widgets/gamenanny.py:306 msgid "" "PyChess has lost connection to the engine, probably because it has died.\n" "\n" "You can try to start a new game with the engine, or try to play against another one." msgstr "" #: lib/pychess/widgets/gamewidget.py:204 msgid "" "This game can be automatically aborted without rating loss because there has" " not yet been two moves made" msgstr "" #: lib/pychess/widgets/gamewidget.py:206 msgid "Offer Abort" msgstr "" #: lib/pychess/widgets/gamewidget.py:208 msgid "" "Your opponent must agree to abort the game because there has been two or " "more moves made" msgstr "" #: lib/pychess/widgets/gamewidget.py:226 msgid "This game can not be adjourned because one or both players are guests" msgstr "" #: lib/pychess/widgets/gamewidget.py:243 msgid "Claim Draw" msgstr "" #: lib/pychess/widgets/gamewidget.py:325 msgid "Pause" msgstr "" #: lib/pychess/widgets/gamewidget.py:326 msgid "Resume" msgstr "" #: lib/pychess/widgets/gamewidget.py:328 msgid "Offer Pause" msgstr "" #: lib/pychess/widgets/gamewidget.py:329 msgid "Offer Resume" msgstr "" #: lib/pychess/widgets/gamewidget.py:333 msgid "Undo" msgstr "" #: lib/pychess/widgets/gamewidget.py:335 msgid "Offer Undo" msgstr "" #: lib/pychess/widgets/gamewidget.py:550 msgid " has lagged for 30 seconds" msgstr "" #: lib/pychess/widgets/gamewidget.py:566 msgid " is lagging heavily but hasn't disconnected" msgstr "" #: lib/pychess/widgets/gamewidget.py:567 msgid "Continue to wait for opponent, or try to adjourn the game?" msgstr "" #: lib/pychess/widgets/gamewidget.py:575 msgid "Wait" msgstr "" #: lib/pychess/widgets/gamewidget.py:576 msgid "Adjourn" msgstr "" #: lib/pychess/widgets/gamewidget.py:648 msgid "Jump to initial position" msgstr "" #: lib/pychess/widgets/gamewidget.py:653 msgid "Step back one move" msgstr "" #: lib/pychess/widgets/gamewidget.py:658 msgid "Go back to the main line" msgstr "" #: lib/pychess/widgets/gamewidget.py:664 msgid "Step forward one move" msgstr "" #: lib/pychess/widgets/gamewidget.py:669 msgid "Jump to latest position" msgstr "" #: lib/pychess/widgets/gamewidget.py:903 msgid "PyChess was unable to load your panel settings" msgstr "" #: lib/pychess/widgets/gamewidget.py:904 msgid "" "Your panel settings have been reset. If this problem repeats, you should " "report it to the developers" msgstr "" #: lib/pychess/widgets/ionest.py:67 lib/pychess/widgets/newGameDialog.py:389 #: lib/pychess/widgets/TaskerManager.py:210 msgid "You" msgstr "" #: lib/pychess/widgets/ionest.py:70 lib/pychess/widgets/newGameDialog.py:390 #: lib/pychess/widgets/preferencesDialog.py:61 #: lib/pychess/widgets/TaskerManager.py:213 msgid "Guest" msgstr "Гост" #: lib/pychess/widgets/ionest.py:93 msgid "Error loading game" msgstr "" #: lib/pychess/widgets/ionest.py:127 lib/pychess/widgets/newGameDialog.py:480 msgid "Open Game" msgstr "" #: lib/pychess/widgets/ionest.py:137 msgid "All Files" msgstr "Всички Файлове" #: lib/pychess/widgets/ionest.py:140 msgid "Detect type automatically" msgstr "" #: lib/pychess/widgets/ionest.py:146 msgid "All Chess Files" msgstr "" #: lib/pychess/widgets/ionest.py:228 msgid "Save Game" msgstr "Запис на игра" #: lib/pychess/widgets/ionest.py:228 msgid "Export position" msgstr "" #: lib/pychess/widgets/ionest.py:232 lib/pychess/widgets/ionest.py:360 msgid "vs." msgstr "" #: lib/pychess/widgets/ionest.py:249 #, python-format msgid "Unknown file type '%s'" msgstr "" #: lib/pychess/widgets/ionest.py:250 #, python-format msgid "" "Was unable to save '%(uri)s' as PyChess doesn't know the format " "'%(ending)s'." msgstr "" #: lib/pychess/widgets/ionest.py:266 #, python-format msgid "Unable to save file '%s'" msgstr "" #: lib/pychess/widgets/ionest.py:268 msgid "" "You don't have the necessary rights to save the file.\n" "Please ensure that you have given the right path and try again." msgstr "" #: lib/pychess/widgets/ionest.py:276 msgid "_Replace" msgstr "" #: lib/pychess/widgets/ionest.py:280 msgid "File exists" msgstr "Файлът вече съществува" #: lib/pychess/widgets/ionest.py:282 #, python-format msgid "" "A file named '%s' already exists. Would you like to replace " "it?" msgstr "" #: lib/pychess/widgets/ionest.py:283 #, python-format msgid "" "The file already exists in '%s'. If you replace it, its content will be " "overwritten." msgstr "" #: lib/pychess/widgets/ionest.py:299 msgid "Could not save the file" msgstr "" #: lib/pychess/widgets/ionest.py:300 msgid "PyChess was not able to save the game" msgstr "PyChess не може да запази играта" #: lib/pychess/widgets/ionest.py:301 #, python-format msgid "The error was: %s" msgstr "Грешка : %s" #: lib/pychess/widgets/ionest.py:325 #, python-format msgid "There is %d game with unsaved moves." msgid_plural "There are %d games with unsaved moves." msgstr[0] "" msgstr[1] "" #: lib/pychess/widgets/ionest.py:328 msgid "Save moves before closing?" msgstr "" #: lib/pychess/widgets/ionest.py:339 msgid "Unable to save to configured file. Save the games before closing?" msgstr "" #: lib/pychess/widgets/ionest.py:366 #, python-format msgid "_Save %d document" msgid_plural "_Save %d documents" msgstr[0] "" msgstr[1] "" #: lib/pychess/widgets/ionest.py:412 msgid "Save the current game before you close it?" msgstr "" #: lib/pychess/widgets/ionest.py:420 msgid "" "Unable to save to configured file. Save the current game before you close " "it?" msgstr "" #: lib/pychess/widgets/ionest.py:434 msgid "" "It is not possible later to continue the game,\n" "if you don't save it." msgstr "" #: lib/pychess/widgets/LogDialog.py:26 msgid "PyChess Information Window" msgstr "" #: lib/pychess/widgets/LogDialog.py:184 lib/pychess/widgets/LogDialog.py:188 msgid "of" msgstr "" #: lib/pychess/widgets/newGameDialog.py:84 #: lib/pychess/widgets/newGameDialog.py:85 msgid "Human Being" msgstr "" #: lib/pychess/widgets/newGameDialog.py:155 msgid "Rapid" msgstr "" #: lib/pychess/widgets/newGameDialog.py:224 msgid "Minutes:" msgstr "Минути:" #: lib/pychess/widgets/newGameDialog.py:228 msgid "Gain:" msgstr "Печалба:" #: lib/pychess/widgets/newGameDialog.py:241 #, python-format msgid "%(name)s %(minutes)d min + %(gain)d sec/move" msgstr "" #: lib/pychess/widgets/newGameDialog.py:244 #, python-format msgid "%(name)s %(minutes)d min %(gain)d sec/move" msgstr "" #: lib/pychess/widgets/newGameDialog.py:247 #, python-format msgid "%(name)s %(minutes)d min" msgstr "" #: lib/pychess/widgets/newGameDialog.py:265 msgid "Odds" msgstr "" #: lib/pychess/widgets/newGameDialog.py:269 msgid "Asian variants" msgstr "" #: lib/pychess/widgets/newGameDialog.py:301 msgid " chess" msgstr "" #: lib/pychess/widgets/newGameDialog.py:682 msgid "Type or paste PGN game or FEN positions here" msgstr "" #: lib/pychess/widgets/newGameDialog.py:725 msgid "Enter Game" msgstr "" #: lib/pychess/widgets/preferencesDialog.py:123 msgid "Select book file" msgstr "" #: lib/pychess/widgets/preferencesDialog.py:128 msgid "Opening books" msgstr "" #: lib/pychess/widgets/preferencesDialog.py:156 msgid "Select Gaviota TB path" msgstr "" #: lib/pychess/widgets/preferencesDialog.py:331 msgid "Open Sound File" msgstr "" #: lib/pychess/widgets/preferencesDialog.py:341 msgid "Sound files" msgstr "" #: lib/pychess/widgets/preferencesDialog.py:485 msgid "Undescribed panel" msgstr "" #: lib/pychess/widgets/preferencesDialog.py:678 msgid "Select auto save path" msgstr "" #: lib/pychess/widgets/tipOfTheDay.py:51 msgid "" "You can start a new game by Game > New Game, in New Game " "window do you can choose Players, Time Control and Chess " "Variants." msgstr "" #: lib/pychess/widgets/tipOfTheDay.py:52 msgid "" "You can choose from 20 different difficulties to play against the computer." msgstr "" #: lib/pychess/widgets/tipOfTheDay.py:53 msgid "" "Chess Variants are like the pieces of the last line will be placed on the " "board." msgstr "" #: lib/pychess/widgets/tipOfTheDay.py:54 msgid "" "To save a game Game > Save Game As, give the filename and " "choose where you want to be saved. At the bottom choose extension type of " "the file, and Save." msgstr "" #: lib/pychess/widgets/tipOfTheDay.py:55 msgid "" "Do you know that you can call flag when the clock is with you, " "Actions > Call Flag." msgstr "" #: lib/pychess/widgets/tipOfTheDay.py:56 msgid "Pressing Ctrl+Z to offer opponent the possible rollback moves." msgstr "" #: lib/pychess/widgets/tipOfTheDay.py:57 msgid "" "To play on Fullscreen mode, just type F11. Coming back, F11 " "again." msgstr "" #: lib/pychess/widgets/tipOfTheDay.py:58 msgid "Hint mode analyzing your game, enable this type Ctrl+H." msgstr "" #: lib/pychess/widgets/tipOfTheDay.py:59 msgid "" "Spy mode analyzing the oponnent game, enable this type Ctrl+Y." msgstr "" #: lib/pychess/widgets/tipOfTheDay.py:60 msgid "" "You can play chess listening to the sounds of the game, for that, " "Settings > Preferences > Sound tab, enable Use " "sounds in PyChess and choose your preferred sounds." msgstr "" #: lib/pychess/widgets/tipOfTheDay.py:61 msgid "" "Do you know that you can help translate Pychess in your language, " "Help > Translate Pychess." msgstr "" #: lib/pychess/widgets/tipOfTheDay.py:62 msgid "" "Do you know that it is possible to finish a chess game in just 2 turns?" msgstr "" #: lib/pychess/widgets/tipOfTheDay.py:63 msgid "" "Do you know that the number of possible chess games exceeds the number of " "atoms in the Universe?" msgstr "" #: lib/pychess/ic/managers/ChatManager.py:184 msgid "Shout" msgstr "" #: lib/pychess/ic/managers/ChatManager.py:185 msgid "Chess Shout" msgstr "" #: lib/pychess/ic/managers/ChatManager.py:195 #, python-format msgid "Unofficial channel %d" msgstr "" #: lib/pychess/Utils/lutils/LBoard.py:152 #, python-format msgid "" "FEN needs 6 data fields. \n" "\n" "%s" msgstr "" #: lib/pychess/Utils/lutils/LBoard.py:154 #, python-format msgid "" "FEN needs at least 2 data fields in fenstr. \n" "\n" "%s" msgstr "" #: lib/pychess/Utils/lutils/LBoard.py:175 #, python-format msgid "" "Needs 7 slashes in piece placement field. \n" "\n" "%s" msgstr "" #: lib/pychess/Utils/lutils/LBoard.py:178 #, python-format msgid "" "Active color field must be one of w or b. \n" "\n" "%s" msgstr "" #: lib/pychess/Utils/lutils/LBoard.py:189 #, python-format msgid "" "Castling availability field is not legal. \n" "\n" "%s" msgstr "" #: lib/pychess/Utils/lutils/LBoard.py:192 #, python-format msgid "" "En passant cord is not legal. \n" "\n" "%s" msgstr "" #: lib/pychess/Utils/lutils/lmove.py:260 msgid "invalid promoted piece" msgstr "" #: lib/pychess/Utils/lutils/lmove.py:272 msgid "the move needs a piece and a cord" msgstr "" #: lib/pychess/Utils/lutils/lmove.py:306 lib/pychess/Utils/lutils/lmove.py:556 msgid "promotion move without promoted piece is incorrect" msgstr "" #: lib/pychess/Utils/lutils/lmove.py:312 #, python-format msgid "the captured cord (%s) is incorrect" msgstr "" #: lib/pychess/Utils/lutils/lmove.py:323 #, python-format msgid "the end cord (%s) is incorrect" msgstr "" #: lib/pychess/Utils/lutils/strateval.py:24 sidepanel/commentPanel.py:191 #: sidepanel/commentPanel.py:208 msgid "and" msgstr "" #: lib/pychess/Utils/lutils/strateval.py:43 msgid "draws" msgstr "" #: lib/pychess/Utils/lutils/strateval.py:45 msgid "mates" msgstr "" #: lib/pychess/Utils/lutils/strateval.py:49 msgid "puts opponent in check" msgstr "" #: lib/pychess/Utils/lutils/strateval.py:73 msgid "improves king safety" msgstr "" #: lib/pychess/Utils/lutils/strateval.py:75 msgid "slightly improves king safety" msgstr "" #: lib/pychess/Utils/lutils/strateval.py:108 msgid "moves a rook to an open file" msgstr "" #: lib/pychess/Utils/lutils/strateval.py:109 msgid "moves an rook to a half-open file" msgstr "" #: lib/pychess/Utils/lutils/strateval.py:119 #: lib/pychess/Utils/lutils/strateval.py:121 #: lib/pychess/Utils/lutils/strateval.py:124 #: lib/pychess/Utils/lutils/strateval.py:126 #, python-format msgid "moves bishop into fianchetto: %s" msgstr "" #: lib/pychess/Utils/lutils/strateval.py:132 #, python-format msgid "promotes a Pawn to a %s" msgstr "" #: lib/pychess/Utils/lutils/strateval.py:135 msgid "castles" msgstr "" #: lib/pychess/Utils/lutils/strateval.py:158 msgid "takes back material" msgstr "" #: lib/pychess/Utils/lutils/strateval.py:162 #: lib/pychess/Utils/lutils/strateval.py:170 msgid "sacrifies material" msgstr "" #: lib/pychess/Utils/lutils/strateval.py:164 msgid "exchanges material" msgstr "" #: lib/pychess/Utils/lutils/strateval.py:166 msgid "captures material" msgstr "" #: lib/pychess/Utils/lutils/strateval.py:291 #, python-format msgid "rescues a %s" msgstr "" #: lib/pychess/Utils/lutils/strateval.py:294 #, python-format msgid "threatens to win material by %s" msgstr "" #: lib/pychess/Utils/lutils/strateval.py:296 #, python-format msgid "increases the pressure on %s" msgstr "" #: lib/pychess/Utils/lutils/strateval.py:298 #, python-format msgid "defends %s" msgstr "" #: lib/pychess/Utils/lutils/strateval.py:336 #, python-format msgid "pins an enemy %(oppiece)s on the %(piece)s at %(cord)s" msgstr "" #: lib/pychess/Utils/lutils/strateval.py:369 #, python-format msgid "White has a new piece in outpost: %s" msgstr "" #: lib/pychess/Utils/lutils/strateval.py:377 #, python-format msgid "Black has a new piece in outpost: %s" msgstr "" #: lib/pychess/Utils/lutils/strateval.py:416 #, python-format msgid "%(color)s has a new passed pawn on %(cord)s" msgstr "" #: lib/pychess/Utils/lutils/strateval.py:470 msgid "half-open" msgstr "" #: lib/pychess/Utils/lutils/strateval.py:472 #, python-format msgid "in the %(x)s%(y)s file" msgstr "" #: lib/pychess/Utils/lutils/strateval.py:474 #, python-format msgid "in the %(x)s%(y)s files" msgstr "" #: lib/pychess/Utils/lutils/strateval.py:477 #, python-format msgid "%(color)s got a double pawn %(place)s" msgstr "" #: lib/pychess/Utils/lutils/strateval.py:478 #, python-format msgid "%(color)s got new double pawns %(place)s" msgstr "" #: lib/pychess/Utils/lutils/strateval.py:485 #, python-format msgid "%(color)s got an isolated pawn in the %(x)s file" msgid_plural "%(color)s got isolated pawns in the %(x)s files" msgstr[0] "" msgstr[1] "" #: lib/pychess/Utils/lutils/strateval.py:492 #, python-format msgid "%s moves pawns into stonewall formation" msgstr "" #: lib/pychess/Utils/lutils/strateval.py:507 #: lib/pychess/Utils/lutils/strateval.py:514 #, python-format msgid "%s can no longer castle" msgstr "" #: lib/pychess/Utils/lutils/strateval.py:508 #: lib/pychess/Utils/lutils/strateval.py:515 #, python-format msgid "%s can no longer castle in queenside" msgstr "" #: lib/pychess/Utils/lutils/strateval.py:510 #: lib/pychess/Utils/lutils/strateval.py:517 #, python-format msgid "%s can no longer castle in kingside" msgstr "" #: lib/pychess/Utils/lutils/strateval.py:551 #, python-format msgid "%(opcolor)s has a new trapped bishop on %(cord)s" msgstr "" #: lib/pychess/Utils/lutils/strateval.py:573 #, python-format msgid "develops a pawn: %s" msgstr "" #: lib/pychess/Utils/lutils/strateval.py:574 #, python-format msgid "brings a pawn closer to the backrow: %s" msgstr "" #: lib/pychess/Utils/lutils/strateval.py:591 #, python-format msgid "brings a %(piece)s closer to enemy king: %(cord)s" msgstr "" #: lib/pychess/Utils/lutils/strateval.py:594 #, python-format msgid "develops a %(piece)s: %(cord)s" msgstr "" #: lib/pychess/Utils/lutils/strateval.py:612 #, python-format msgid "places a %(piece)s more active: %(cord)s" msgstr "" #: lib/pychess/Utils/lutils/strateval.py:638 msgid "White should do pawn storm in right" msgstr "" #: lib/pychess/Utils/lutils/strateval.py:640 msgid "Black should do pawn storm in left" msgstr "" #: lib/pychess/Utils/lutils/strateval.py:643 msgid "White should do pawn storm in left" msgstr "" #: lib/pychess/Utils/lutils/strateval.py:645 msgid "Black should do pawn storm in right" msgstr "" #: lib/pychess/Utils/lutils/strateval.py:671 msgid "Black has a rather cramped position" msgstr "" #: lib/pychess/Utils/lutils/strateval.py:673 msgid "Black has a slightly cramped position" msgstr "" #: lib/pychess/Utils/lutils/strateval.py:675 msgid "White has a rather cramped position" msgstr "" #: lib/pychess/Utils/lutils/strateval.py:677 msgid "White has a slightly cramped position" msgstr "" #: sidepanel/annotationPanel.py:26 msgid "Annotation" msgstr "" #: sidepanel/annotationPanel.py:29 msgid "Annotated game" msgstr "" #: sidepanel/annotationPanel.py:236 msgid "Copy PGN" msgstr "" #: sidepanel/annotationPanel.py:249 msgid "Add start comment" msgstr "" #: sidepanel/annotationPanel.py:254 msgid "Add comment" msgstr "" #: sidepanel/annotationPanel.py:258 sidepanel/annotationPanel.py:316 msgid "Edit comment" msgstr "" #: sidepanel/annotationPanel.py:269 msgid "Forced move" msgstr "" #: sidepanel/annotationPanel.py:274 msgid "Add move symbol" msgstr "" #: sidepanel/annotationPanel.py:280 msgid "Unclear position" msgstr "" #: sidepanel/annotationPanel.py:289 msgid "Zugzwang" msgstr "" #: sidepanel/annotationPanel.py:290 msgid "Development adv." msgstr "" #: sidepanel/annotationPanel.py:291 msgid "Initiative" msgstr "" #: sidepanel/annotationPanel.py:292 msgid "With attack" msgstr "" #: sidepanel/annotationPanel.py:293 msgid "Compensation" msgstr "" #: sidepanel/annotationPanel.py:294 msgid "Counterplay" msgstr "" #: sidepanel/annotationPanel.py:295 msgid "Time pressure" msgstr "" #: sidepanel/annotationPanel.py:300 msgid "Add evaluation symbol" msgstr "" #: sidepanel/annotationPanel.py:304 msgid "Remove symbols" msgstr "" #: sidepanel/annotationPanel.py:911 #, python-format msgid "round %s" msgstr "" #: sidepanel/bookPanel.py:21 msgid "Hints" msgstr "" #: sidepanel/bookPanel.py:25 msgid "" "The hint panel will provide computer advice during each stage of the game" msgstr "" #: sidepanel/bookPanel.py:27 msgid "Official PyChess panel." msgstr "" #: sidepanel/bookPanel.py:87 msgid "Opening Book" msgstr "" #: sidepanel/bookPanel.py:88 msgid "" "The opening book will try to inspire you during the opening phase of the " "game by showing you common moves made by chess masters" msgstr "" #: sidepanel/bookPanel.py:139 #, python-format msgid "Analysis by %s" msgstr "" #: sidepanel/bookPanel.py:140 #, python-format msgid "" "%s will try to predict which move is best and which side has the advantage" msgstr "" #: sidepanel/bookPanel.py:142 #, python-format msgid "Threat analysis by %s" msgstr "" #: sidepanel/bookPanel.py:143 #, python-format msgid "" "%s will identify what threats would exist if it were your opponent's turn to" " move" msgstr "" #: sidepanel/bookPanel.py:159 sidepanel/bookPanel.py:269 msgid "Calculating..." msgstr "" #: sidepanel/bookPanel.py:300 msgid "" "Engine scores are in units of pawns, from White's point of view. Double " "clicking on analysis lines you can insert them into Annotation panel as " "variations." msgstr "" #: sidepanel/bookPanel.py:302 msgid "" "Adding suggestions can help you find ideas, but slows down the computer's " "analysis." msgstr "" #: sidepanel/bookPanel.py:311 msgid "Endgame Table" msgstr "" #: sidepanel/bookPanel.py:315 msgid "" "The endgame table will show exact analysis when there are few pieces on the " "board." msgstr "" #: sidepanel/bookPanel.py:364 sidepanel/bookPanel.py:367 #, python-format msgid "Mate in %d" msgstr "" #: sidepanel/bookPanel.py:554 msgid "" "In this position,\n" "there is no legal move." msgstr "" #: sidepanel/chatPanel.py:21 msgid "" "The chat panel lets you communicate with your opponent during the game, " "assuming he or she is interested" msgstr "" #: sidepanel/commentPanel.py:16 msgid "Comments" msgstr "Коментари" #: sidepanel/commentPanel.py:20 msgid "The comments panel will try to analyze and explain the moves played" msgstr "" #: sidepanel/commentPanel.py:121 msgid "Initial position" msgstr "Начална позиция" #: sidepanel/commentPanel.py:254 #, python-format msgid "%(color)s moves a %(piece)s to %(cord)s" msgstr "" #: sidepanel/engineOutputPanel.py:15 msgid "Engines" msgstr "" #: sidepanel/engineOutputPanel.py:20 msgid "" "The engine output panel shows the thinking output of chess engines (computer" " players) during a game" msgstr "" #: sidepanel/engineOutputPanel.py:44 msgid "No chess engines (computer players) are participating in this game." msgstr "" #: sidepanel/historyPanel.py:10 msgid "Move History" msgstr "История на движенията" #: sidepanel/historyPanel.py:13 msgid "" "The moves sheet keeps track of the players' moves and lets you navigate " "through the game history" msgstr "" #: sidepanel/scorePanel.py:15 msgid "Score" msgstr "Резултат" #: sidepanel/scorePanel.py:19 msgid "" "The score panel tries to evaluate the positions and shows you a graph of the" " game progress" msgstr "" pychess-0.12.2/lang/bg/LC_MESSAGES/pychess.mo0000644000175000017470000000775212653231273020700 0ustar tamasusers00000000000000?Y p'q  7  '18>DZ cn   $ -9X^ej q { !)28 >I P Z e s ~1' Y w    F  * F S ^ -o   & &  / *? j &z     ( @ G Y i '   # .(? hr*$   + 5AXat  /"9$&% .)108;( 5' ,! 243-#6 *:>?=<7+ Promote pawn to what?AnalyzingAnimationNewsPlayersToolsPyChess was not able to save the gameAbout ChessAll FilesBishopBlackClockClose _without SavingCommentsConnectingConnection ErrorConnection was closedEmailEvent:File existsGain:Game informationGuestInitial positionKnightLoaded gameLog on as _GuestMinutes:Move HistoryNameNew GameNo soundPreferencesPyChess - Internet Chess: FICSQueenRatingRookRound:Save GameSave Game _AsSaved gameScoreSelect sound file...Site:The error was: %sThe game has been abortedThe game has been adjournedThe game has been killedTimeWhite_Accept_Actions_Game_Help_Load Game_Name:_New Game_Password:_Rotate Board_Save Game_Start Game_ViewProject-Id-Version: pychess Report-Msgid-Bugs-To: POT-Creation-Date: 2016-01-27 13:28+0100 PO-Revision-Date: 2016-01-28 08:56+0000 Last-Translator: slav0nic Language-Team: Bulgarian (http://www.transifex.com/gbtami/pychess/language/bg/) MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Language: bg Plural-Forms: nplurals=2; plural=(n != 1); Повиши пешката в?АнализиранеАнимацияНовиниИграчиИнструментиPyChess не може да запази игратаЗа ШахаВсички ФайловеОфицерЧеренЧасовникЗатваряне _без запазванеКоментариСвързванеГрешка при свързванеВръзката е затворенаЕлектронна пощаСъбитие:Файлът вече съществуваПечалба:Информация за игратаГостНачална позицияРицарЗаредена играВлез като _ГостМинути:История на движениятаИмеНова ИграБез звукПредпочитанияPyChess - Интернет Шах: FICSЦарицаОценкаТопРунд:Запис на играЗапази Играта _КатоЗапазена играРезултатИзбор на звуков файл…Сайт:Грешка : %sИграта беше прекратенаИграта беше закритаИграта беше убитаВремеБял_Приемане_Действия_Игра_Помощ_Зареди Игра_Име:_Нова Игра_Парола:_Завърти масата_Запази Играта_Стартирай Играта_Изгледpychess-0.12.2/lang/et/0000755000175000017470000000000012653231274015106 5ustar tamasusers00000000000000pychess-0.12.2/lang/et/LC_MESSAGES/0000755000175000017470000000000012653231274016673 5ustar tamasusers00000000000000pychess-0.12.2/lang/et/LC_MESSAGES/pychess.po0000644000175000017470000024741012653216176020725 0ustar tamasusers00000000000000# SOME DESCRIPTIVE TITLE. # Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER # This file is distributed under the same license as the pychess package. # # Translators: # FIRST AUTHOR , 2007 msgid "" msgstr "" "Project-Id-Version: pychess\n" "Report-Msgid-Bugs-To: \n" "POT-Creation-Date: 2016-01-27 13:28+0100\n" "PO-Revision-Date: 2016-01-28 08:56+0000\n" "Last-Translator: slav0nic \n" "Language-Team: Estonian (http://www.transifex.com/gbtami/pychess/language/et/)\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" "Language: et\n" "Plural-Forms: nplurals=2; plural=(n != 1);\n" # "Plural-Forms: nplurals=INTEGER; plural=EXPRESSION;\n" #: glade/analyze_game.glade:22 msgid "Analyze game" msgstr "" #: glade/analyze_game.glade:87 msgid "Use analyzer:" msgstr "" #: glade/analyze_game.glade:122 glade/PyChess.glade:2054 msgid "Maximum analysis time in seconds:" msgstr "" #: glade/analyze_game.glade:163 msgid "" "If the analyzer finds a move where the evaluation difference (the difference" " between the evaluation for the move it thinks is the best move and the " "evaluation for the move made in the game) exceeds this value, it will add an" " annotation for that move (consisting of the engine's Principal Variation " "for the move) to the Annotation panel" msgstr "" #: glade/analyze_game.glade:164 msgid "Variation annotation creation threshold in centipawns:" msgstr "" #: glade/analyze_game.glade:198 msgid "Analyze from current position" msgstr "" #: glade/analyze_game.glade:214 msgid "Add threatening variation lines " msgstr "" #: glade/analyze_game.glade:229 glade/PyChess.glade:1459 msgid "Colorize analyzed moves" msgstr "" #: glade/analyze_game.glade:244 glade/PyChess.glade:1495 msgid "Show evaluation values" msgstr "" #: glade/discovererDialog.glade:18 msgid "PyChess is discovering your engines. Please wait." msgstr "" #: glade/discovererDialog.glade:77 msgid "PyChess.py:" msgstr "" #: glade/discovererDialog.glade:89 msgid "ShredderLinuxChess:" msgstr "" #: glade/discovererDialog.glade:101 msgid "gnuchess:" msgstr "" #: glade/fics_logon.glade:7 msgid "PyChess - Connect to Internet Chess" msgstr "PyChess - Mängi malet Internetis" #: glade/fics_logon.glade:47 msgid "Connect to the Free Online Chess Server" msgstr "" #: glade/fics_logon.glade:129 glade/taskers.glade:394 msgid "_Password:" msgstr "_Parool:" #: glade/fics_logon.glade:143 msgid "_Name:" msgstr "_Nimi:" #: glade/fics_logon.glade:191 msgid "Log on as _Guest" msgstr "Logi sisse _Külalisena" #: glade/fics_logon.glade:227 msgid "Host:" msgstr "" #: glade/fics_logon.glade:259 msgid "Po_rts:" msgstr "" #: glade/fics_logon.glade:271 msgid "Auto login on startup" msgstr "" #: glade/fics_logon.glade:385 msgid "S_ign up" msgstr "" #: glade/fics_lounge.glade:35 msgid "Challenge: " msgstr "" #: glade/fics_lounge.glade:97 msgid "Send Challenge" msgstr "" #: glade/fics_lounge.glade:133 msgid "Challenge:" msgstr "" #: glade/fics_lounge.glade:327 glade/fics_lounge.glade:2078 msgid "Lightning:" msgstr "" #: glade/fics_lounge.glade:351 glade/fics_lounge.glade:2102 msgid "Standard:" msgstr "" #: glade/fics_lounge.glade:375 glade/fics_lounge.glade:2126 msgid "Blitz:" msgstr "" #: glade/fics_lounge.glade:400 msgid "2 min, Fischer Random, Black" msgstr "" #: glade/fics_lounge.glade:422 msgid "10 min + 6 sec/move, White" msgstr "" #: glade/fics_lounge.glade:444 msgid "5 min" msgstr "" #: glade/fics_lounge.glade:480 msgid "Edit Seek" msgstr "" #: glade/fics_lounge.glade:584 lib/pychess/ic/ICLounge.py:2208 #: lib/pychess/ic/__init__.py:101 lib/pychess/Utils/GameModel.py:206 msgid "Untimed" msgstr "" #: glade/fics_lounge.glade:637 msgid "Minutes: " msgstr "" #: glade/fics_lounge.glade:665 msgid " Gain: " msgstr "" #: glade/fics_lounge.glade:703 msgid "Time control: " msgstr "" #: glade/fics_lounge.glade:716 lib/pychess/ic/FICSObjects.py:56 #: lib/pychess/ic/ICLounge.py:1137 lib/pychess/ic/ICLounge.py:2208 #: lib/pychess/ic/__init__.py:99 msgid "Standard" msgstr "" #: glade/fics_lounge.glade:757 glade/newInOut.glade:633 msgid "Time Control" msgstr "" #: glade/fics_lounge.glade:814 glade/fics_lounge.glade:1346 msgid "Don't care" msgstr "" #: glade/fics_lounge.glade:879 msgid "Your strength: " msgstr "" #: glade/fics_lounge.glade:921 msgid "(Blitz)" msgstr "" #: glade/fics_lounge.glade:951 msgid "Opponent's strength: " msgstr "" #: glade/fics_lounge.glade:1055 msgid "" "When this button is in the \"locked\" state, the relationship\n" "between \"Opponent's strength\" and \"Your strength\" will be\n" "preserved when \n" "a) your rating for the type of game sought has changed\n" "b) you change the variant or the time control" msgstr "" #: glade/fics_lounge.glade:1095 msgid "Center:" msgstr "" #: glade/fics_lounge.glade:1134 msgid "1200" msgstr "" #: glade/fics_lounge.glade:1188 msgid "Tolerance:" msgstr "" #: glade/fics_lounge.glade:1243 lib/pychess/ic/ICLounge.py:2452 msgid "Hide" msgstr "" #: glade/fics_lounge.glade:1289 msgid "Opponent Strength" msgstr "" #: glade/fics_lounge.glade:1386 lib/pychess/Database/gamelist.py:40 #: lib/pychess/ic/ICLounge.py:1357 lib/pychess/ic/ICLounge.py:1557 #: lib/pychess/ic/ICLounge.py:2108 lib/pychess/Utils/repr.py:10 #: lib/pychess/widgets/ChessClock.py:40 #: lib/pychess/widgets/TaskerManager.py:153 msgid "White" msgstr "Valge" #: glade/fics_lounge.glade:1414 lib/pychess/Database/gamelist.py:40 #: lib/pychess/ic/ICLounge.py:1358 lib/pychess/ic/ICLounge.py:1558 #: lib/pychess/ic/ICLounge.py:2110 lib/pychess/Utils/repr.py:10 #: lib/pychess/widgets/ChessClock.py:40 #: lib/pychess/widgets/TaskerManager.py:154 msgid "Black" msgstr "Must" #: glade/fics_lounge.glade:1453 msgid "Your Color" msgstr "" #: glade/fics_lounge.glade:1512 msgid "Play normal chess rules" msgstr "" #: glade/fics_lounge.glade:1552 msgid "Play" msgstr "" #: glade/fics_lounge.glade:1618 glade/newInOut.glade:833 msgid "Chess Variant" msgstr "" #: glade/fics_lounge.glade:1676 msgid "Rated game" msgstr "" #: glade/fics_lounge.glade:1692 msgid "Manually accept opponent" msgstr "" #: glade/fics_lounge.glade:1722 msgid "Options" msgstr "" #: glade/fics_lounge.glade:1750 msgid "PyChess - Internet Chess: FICS" msgstr "PyChess - Male Internetis: FICS" #: glade/fics_lounge.glade:1823 msgid "_Clear Seeks" msgstr "" #: glade/fics_lounge.glade:1847 msgid "_Accept" msgstr "_Nõustu" #: glade/fics_lounge.glade:1871 msgid "_Decline" msgstr "" #: glade/fics_lounge.glade:2151 msgid "2 min, Fischer Random, 1800↓, Black" msgstr "" #: glade/fics_lounge.glade:2172 msgid "10 min + 6 sec/move, 1400↑, White" msgstr "" #: glade/fics_lounge.glade:2193 msgid "5 min, 1200-1800, Manual" msgstr "" #: glade/fics_lounge.glade:2247 msgid "Send all seeks" msgstr "" #: glade/fics_lounge.glade:2301 msgid "Send seek" msgstr "Saada mänguotsing" #: glade/fics_lounge.glade:2337 msgid "Create Seek" msgstr "" #: glade/fics_lounge.glade:2353 msgid "_Seeks / Challenges" msgstr "" #: glade/fics_lounge.glade:2374 lib/pychess/ic/ICLounge.py:472 #: lib/pychess/ic/ICLounge.py:670 lib/pychess/ic/ICLounge.py:1357 #: lib/pychess/ic/ICLounge.py:1358 msgid "Rating" msgstr "Reiting" #: glade/fics_lounge.glade:2399 msgid "Time" msgstr "Aeg" #: glade/fics_lounge.glade:2419 msgid "Seek _Graph" msgstr "" #: glade/fics_lounge.glade:2444 msgid "0 Players Ready" msgstr "" #: glade/fics_lounge.glade:2496 msgid "Challenge" msgstr "" #: glade/fics_lounge.glade:2549 glade/fics_lounge.glade:2735 msgid "Observe" msgstr "" #: glade/fics_lounge.glade:2602 msgid "Start Private Chat" msgstr "" #: glade/fics_lounge.glade:2659 msgid "_Player List" msgstr "" #: glade/fics_lounge.glade:2792 msgid "_Game List" msgstr "" #: glade/fics_lounge.glade:2847 msgid "_My games" msgstr "" #: glade/fics_lounge.glade:2904 glade/PyChess.glade:841 msgid "Offer _Resume" msgstr "" #: glade/fics_lounge.glade:2962 glade/PyChess.glade:880 msgid "R_esign" msgstr "" #: glade/fics_lounge.glade:3006 glade/PyChess.glade:820 msgid "Offer _Draw" msgstr "Paku _viiki" #: glade/fics_lounge.glade:3050 msgid "Offer A_bort" msgstr "" #: glade/fics_lounge.glade:3107 msgid "Pre_view" msgstr "" #: glade/fics_lounge.glade:3151 msgid "Examine" msgstr "" #: glade/fics_lounge.glade:3208 msgid "_Archived" msgstr "" #: glade/fics_lounge.glade:3313 msgid "News" msgstr "Uudised" #: glade/fics_lounge.glade:3345 msgid "Show Console" msgstr "" #: glade/fics_lounge.glade:3359 msgid "Show _Chat" msgstr "" #: glade/fics_lounge.glade:3373 msgid "_Log Off" msgstr "" #: glade/fics_lounge.glade:3393 msgid "Tools" msgstr "Tööriistad" #: glade/fics_lounge.glade:3428 msgid "Asymmetric Random " msgstr "" #: glade/findbar.glade:6 msgid "window1" msgstr "" #: glade/findbar.glade:21 msgid "0 of 0" msgstr "" #: glade/findbar.glade:66 msgid "Search:" msgstr "" #: glade/findbar.glade:134 msgid "_Previous" msgstr "" #: glade/findbar.glade:192 msgid "_Next" msgstr "" #: glade/newInOut.glade:45 lib/pychess/widgets/newGameDialog.py:445 msgid "New Game" msgstr "Uus mäng" #: glade/newInOut.glade:108 msgid "_Start Game" msgstr "_Alusta mängu" #: glade/newInOut.glade:130 msgid "Copy FEN" msgstr "" #: glade/newInOut.glade:143 msgid "Clear" msgstr "" #: glade/newInOut.glade:156 msgid "Paste FEN" msgstr "" #: glade/newInOut.glade:257 msgid "_Black player:" msgstr "" #: glade/newInOut.glade:274 msgid "_White player:" msgstr "" #: glade/newInOut.glade:385 msgid "Players" msgstr "Mängijad" #: glade/newInOut.glade:436 msgid "_Untimed" msgstr "" #: glade/newInOut.glade:475 msgid "Blitz: 5 min" msgstr "" #: glade/newInOut.glade:526 msgid "Rapid: 15 min + 10 sec/move" msgstr "" #: glade/newInOut.glade:575 msgid "Normal: 40 min + 15 sec/move" msgstr "" #: glade/newInOut.glade:684 msgid "_Play Normal chess" msgstr "" #: glade/newInOut.glade:724 msgid "Play Fischer Random chess" msgstr "" #: glade/newInOut.glade:774 msgid "Play Losers chess" msgstr "" #: glade/newInOut.glade:919 msgid "Open Game" msgstr "" #: glade/newInOut.glade:1162 msgid "Initial Position" msgstr "" #: glade/newInOut.glade:1219 msgid "Enter Game Notation" msgstr "Sisesta mängu üleskirjutus" #: glade/newInOut.glade:1314 msgid "Halfmove clock" msgstr "" #: glade/newInOut.glade:1327 msgid "En passant line" msgstr "" #: glade/newInOut.glade:1339 msgid "Side to move" msgstr "" #: glade/newInOut.glade:1351 msgid "Move number" msgstr "" #: glade/newInOut.glade:1361 msgid "Black O-O" msgstr "" #: glade/newInOut.glade:1375 msgid "Black O-O-O" msgstr "" #: glade/newInOut.glade:1389 msgid "White O-O-O" msgstr "" #: glade/newInOut.glade:1403 msgid "White O-O" msgstr "" #: glade/promotion.glade:7 msgid "Promotion" msgstr "Lipustumine" #: glade/promotion.glade:49 lib/pychess/Utils/repr.py:12 msgid "Queen" msgstr "Lipp" #: glade/promotion.glade:95 lib/pychess/Utils/repr.py:12 msgid "Rook" msgstr "Vanker" #: glade/promotion.glade:141 lib/pychess/Utils/repr.py:12 msgid "Bishop" msgstr "Oda" #: glade/promotion.glade:187 lib/pychess/Utils/repr.py:12 msgid "Knight" msgstr "Ratsu" #: glade/promotion.glade:233 lib/pychess/Utils/repr.py:12 msgid "King" msgstr "" #: glade/promotion.glade:265 msgid "Promote pawn to what?" msgstr "Milliseks malendiks muuta lipustuv ettur?" #: glade/PyChess.glade:9 msgid "Chess client" msgstr "" #: glade/PyChess.glade:44 msgid "Game information" msgstr "Mänguinfo" #: glade/PyChess.glade:164 msgid "Event:" msgstr "Sündmus:" #: glade/PyChess.glade:178 msgid "Site:" msgstr "Lehekülg:" #: glade/PyChess.glade:204 msgid "Round:" msgstr "Raund:" #: glade/PyChess.glade:237 msgid "White:" msgstr "" #: glade/PyChess.glade:249 msgid "Black:" msgstr "" #: glade/PyChess.glade:302 msgid "Game data" msgstr "Mängu andmed" #: glade/PyChess.glade:357 msgid "Date of game" msgstr "Mängu kuupäev" #: glade/PyChess.glade:495 msgid "_Game" msgstr "_Mäng" #: glade/PyChess.glade:502 msgid "_New Game" msgstr "_Uus mäng" #: glade/PyChess.glade:515 msgid "Play _Internet Chess" msgstr "" #: glade/PyChess.glade:534 msgid "_Load Game" msgstr "_Lae mäng" #: glade/PyChess.glade:550 msgid "Load _Recent Game" msgstr "" #: glade/PyChess.glade:558 msgid "Open _Database" msgstr "" #: glade/PyChess.glade:569 lib/pychess/widgets/newGameDialog.py:615 msgid "Setup Position" msgstr "" #: glade/PyChess.glade:579 msgid "Enter Game _Notation" msgstr "" #: glade/PyChess.glade:592 msgid "_Save Game" msgstr "_Salvesta mäng" #: glade/PyChess.glade:606 msgid "Save Game _As" msgstr "Salvesta mäng _kui" #: glade/PyChess.glade:624 msgid "Share Game" msgstr "" #: glade/PyChess.glade:630 msgid "_Export Position" msgstr "" #: glade/PyChess.glade:644 msgid "_Analyze Game" msgstr "" #: glade/PyChess.glade:678 msgid "Player _Rating" msgstr "Mängija _reiting" #: glade/PyChess.glade:723 msgid "_Edit" msgstr "" #: glade/PyChess.glade:734 msgid "_Copy PGN" msgstr "" #: glade/PyChess.glade:746 msgid "_Copy FEN" msgstr "" #: glade/PyChess.glade:763 msgid "_Engines" msgstr "" #: glade/PyChess.glade:789 msgid "_Actions" msgstr "_Tegevused" #: glade/PyChess.glade:800 msgid "Offer _Abort" msgstr "" #: glade/PyChess.glade:810 msgid "Offer Ad_journment" msgstr "" #: glade/PyChess.glade:831 msgid "Offer _Pause" msgstr "" #: glade/PyChess.glade:847 msgid "Offer _Undo" msgstr "" #: glade/PyChess.glade:870 msgid "_Call Flag" msgstr "_Kutse Lipp" #: glade/PyChess.glade:890 msgid "Ask to _Move" msgstr "" #: glade/PyChess.glade:905 msgid "Auto Call _Flag" msgstr "" #: glade/PyChess.glade:918 msgid "_View" msgstr "_Vaade" #: glade/PyChess.glade:925 msgid "_Rotate Board" msgstr "_Pööra lauda" #: glade/PyChess.glade:939 msgid "_Fullscreen" msgstr "" #: glade/PyChess.glade:952 msgid "Leave _Fullscreen" msgstr "" #: glade/PyChess.glade:969 msgid "_Show Sidepanels" msgstr "" #: glade/PyChess.glade:980 msgid "_Log Viewer" msgstr "_Logi vaataja" #: glade/PyChess.glade:997 msgid "_Hint mode" msgstr "Nõustamismood" #: glade/PyChess.glade:1009 msgid "Sp_y mode" msgstr "_Nuhi mood" #: glade/PyChess.glade:1024 msgid "_Help" msgstr "_Abi" #: glade/PyChess.glade:1034 msgid "About Chess" msgstr "Male kohta" #: glade/PyChess.glade:1043 msgid "How to Play" msgstr "" #: glade/PyChess.glade:1052 msgid "Translate PyChess" msgstr "" #: glade/PyChess.glade:1058 msgid "Tip of the Day" msgstr "" #: glade/PyChess.glade:1153 msgid "Default" msgstr "" #: glade/PyChess.glade:1156 msgid "Knights" msgstr "" #: glade/PyChess.glade:1167 lib/pychess/widgets/preferencesDialog.py:349 msgid "Beep" msgstr "Piiks" #: glade/PyChess.glade:1170 lib/pychess/widgets/preferencesDialog.py:350 msgid "Select sound file..." msgstr "Vali helifail..." #: glade/PyChess.glade:1173 lib/pychess/widgets/preferencesDialog.py:348 msgid "No sound" msgstr "Heli puudub" #: glade/PyChess.glade:1180 msgid "Preferences" msgstr "Eelistused" #: glade/PyChess.glade:1218 msgid "The displayed name of the first human player, e.g., John." msgstr "" #: glade/PyChess.glade:1230 msgid "Name of _first human player:" msgstr "" #: glade/PyChess.glade:1259 msgid "The displayed name of the guest player, e.g., Mary." msgstr "" #: glade/PyChess.glade:1271 msgid "Name of s_econd human player:" msgstr "" #: glade/PyChess.glade:1307 msgid "_Hide tabs when only one game is open" msgstr "_Peida vahelehed, kui ainult üks mäng on lahti" #: glade/PyChess.glade:1312 msgid "" "If set, this hides the tab in the top of the playing window, when it is not " "needed." msgstr "" #: glade/PyChess.glade:1326 msgid "_Use main app closer [x] to close all games" msgstr "" #: glade/PyChess.glade:1331 msgid "" "If set, clicking on main application window closer first time it closes all " "games." msgstr "" #: glade/PyChess.glade:1345 msgid "Auto _rotate board to current human player" msgstr "" #: glade/PyChess.glade:1350 msgid "" "If set, the board will turn after each move, to show the natural view for " "the current player." msgstr "" #: glade/PyChess.glade:1364 msgid "Auto _promote to queen" msgstr "" #: glade/PyChess.glade:1369 msgid "If set, pawn promotes to queen without promotion dialog selection." msgstr "" #: glade/PyChess.glade:1383 msgid "Face _to Face display mode" msgstr "" #: glade/PyChess.glade:1388 msgid "" "If set, the black pieces will be head down, suitable for playing against " "friends on mobile devices." msgstr "" #: glade/PyChess.glade:1402 msgid "Sho_w cords" msgstr "" #: glade/PyChess.glade:1407 msgid "" "If set, the playing board will display labels and ranks for each chess " "field. These are usable in chess notation." msgstr "" #: glade/PyChess.glade:1421 msgid "Show _captured pieces" msgstr "" #: glade/PyChess.glade:1426 msgid "If set, the captured figurines will be shown next to the board." msgstr "" #: glade/PyChess.glade:1440 msgid "Prefer figures in _notation" msgstr "" #: glade/PyChess.glade:1445 msgid "" "If set, PyChess will use figures to express moved pieces, rather than " "uppercase letters." msgstr "" #: glade/PyChess.glade:1464 msgid "If set, PyChess will colorize suboptimal analyzed moves with red." msgstr "" #: glade/PyChess.glade:1477 msgid "Show elapsed move times" msgstr "" #: glade/PyChess.glade:1482 msgid "If set, the elapsed time that a player used for the move is shown." msgstr "" #: glade/PyChess.glade:1500 msgid "If set, the hint analyzer engine evaluation value is shown." msgstr "" #: glade/PyChess.glade:1526 msgid "General Options" msgstr "" #: glade/PyChess.glade:1560 msgid "F_ull board animation" msgstr "" #: glade/PyChess.glade:1565 msgid "Animate pieces, board rotation and more. Use this on fast machines." msgstr "" #: glade/PyChess.glade:1579 msgid "Only animate _moves" msgstr "" #: glade/PyChess.glade:1584 msgid "Only animate piece moves." msgstr "" #: glade/PyChess.glade:1599 msgid "No _animation" msgstr "" #: glade/PyChess.glade:1604 msgid "Never use animation. Use this on slow machines." msgstr "" #: glade/PyChess.glade:1632 msgid "Animation" msgstr "Animatsioon" #: glade/PyChess.glade:1651 msgid "_General" msgstr "" #: glade/PyChess.glade:1692 msgid "Use opening _book" msgstr "" #: glade/PyChess.glade:1697 msgid "If set, PyChess will suggest best opening moves on hint panel." msgstr "" #: glade/PyChess.glade:1724 msgid "Polyglot book file:" msgstr "" #: glade/PyChess.glade:1768 msgid "Use _local tablebases" msgstr "" #: glade/PyChess.glade:1773 msgid "" "If set, PyChess will show game results for different moves in positions containing 6 or less pieces.\n" "You can download tablebase files from:\n" "http://www.olympuschess.com/egtb/gaviota/" msgstr "" #: glade/PyChess.glade:1803 msgid "Gaviota TB path:" msgstr "" #: glade/PyChess.glade:1843 msgid "Use _online tablebases" msgstr "" #: glade/PyChess.glade:1848 msgid "" "If set, PyChess will show game results for different moves in positions containing 6 or less pieces.\n" "It will search positions from http://www.k4it.de/" msgstr "" #: glade/PyChess.glade:1870 msgid "Opening, endgame" msgstr "" #: glade/PyChess.glade:1904 msgid "Use _analyzer" msgstr "Kasuta _analüüsijat" #: glade/PyChess.glade:1946 msgid "" "The analyzer will run in the background and analyze the game. This is " "necessary for the hint mode to work" msgstr "" #: glade/PyChess.glade:1978 msgid "Use _inverted analyzer" msgstr "Kasuta _pööratud analüüsijat" #: glade/PyChess.glade:2020 msgid "" "The inverse analyzer will analyze the game as if your opponent was to move. " "This is necessary for the spy mode to work" msgstr "" #: glade/PyChess.glade:2096 msgid "Analyzing" msgstr "Analüüsin" #: glade/PyChess.glade:2118 msgid "_Hints" msgstr "" #: glade/PyChess.glade:2263 msgid "Uninstall" msgstr "" #: glade/PyChess.glade:2317 msgid "Ac_tive" msgstr "" #: glade/PyChess.glade:2367 msgid "Installed Sidepanels" msgstr "" #: glade/PyChess.glade:2382 msgid "Side_panels" msgstr "" #: glade/PyChess.glade:2440 msgid "Light Squares :" msgstr "" #: glade/PyChess.glade:2479 msgid "Dark Squares :" msgstr "" #: glade/PyChess.glade:2515 msgid "Reset Default Colours" msgstr "" #: glade/PyChess.glade:2551 msgid "Board Colours" msgstr "" #: glade/PyChess.glade:2610 msgid "Chess Sets" msgstr "" #: glade/PyChess.glade:2634 msgid "Themes" msgstr "" #: glade/PyChess.glade:2659 msgid "_Use sounds in PyChess" msgstr "_Kasuta helisid PyChessis" #: glade/PyChess.glade:2982 msgid "A player _checks:" msgstr "Mängija annab _tule" #: glade/PyChess.glade:2997 msgid "A player _moves:" msgstr "Mängija _käib" #: glade/PyChess.glade:3010 msgid "Game is _drawn:" msgstr "Mäng on _viigis" #: glade/PyChess.glade:3025 msgid "Game is _lost:" msgstr "Mäng on _kaotatud" #: glade/PyChess.glade:3040 msgid "Game is _won:" msgstr "Mäng on _võidetud" #: glade/PyChess.glade:3055 msgid "A player c_aptures:" msgstr "Mängija lööb:" #: glade/PyChess.glade:3084 msgid "Game is _set-up:" msgstr "Mäng on üles _seatud" #: glade/PyChess.glade:3136 msgid "_Observed moves:" msgstr "_Vaadeldud käigud" #: glade/PyChess.glade:3151 msgid "Observed _ends:" msgstr "Vaadeldav _lõppeb" #: glade/PyChess.glade:3265 msgid "Short on _time:" msgstr "" #: glade/PyChess.glade:3317 msgid "_Invalid move:" msgstr "" #: glade/PyChess.glade:3369 msgid "Activate alarm when _remaining sec is:" msgstr "" #: glade/PyChess.glade:3416 msgid "Play Sound When..." msgstr "Mängi helilõik kui ..." #: glade/PyChess.glade:3438 msgid "_Sounds" msgstr "" #: glade/PyChess.glade:3463 msgid "_Auto save finished games" msgstr "" #: glade/PyChess.glade:3497 msgid "Save files to:" msgstr "" #: glade/PyChess.glade:3525 msgid "Use name format:" msgstr "" #: glade/PyChess.glade:3569 msgid "Names: #n1, #n2" msgstr "" #: glade/PyChess.glade:3582 msgid "Year, month, day: #y, #m, #d" msgstr "" #: glade/PyChess.glade:3619 msgid "Save elapsed move _times" msgstr "" #: glade/PyChess.glade:3644 msgid "Save analyzing engine _evaluation values" msgstr "" #: glade/PyChess.glade:3669 msgid "Save _own games only" msgstr "" #: glade/PyChess.glade:3698 msgid "Save" msgstr "" #: glade/PyChess.glade:3728 msgid "uci" msgstr "" #: glade/PyChess.glade:3731 msgid "xboard" msgstr "" #: glade/PyChess.glade:3739 msgid "Manage engines" msgstr "" #: glade/PyChess.glade:3837 msgid "Command:" msgstr "" #: glade/PyChess.glade:3851 msgid "Protocol:" msgstr "" #: glade/PyChess.glade:3865 msgid "Parameters:" msgstr "" #: glade/PyChess.glade:3878 msgid "Command line parameters needed by the engine." msgstr "" #: glade/PyChess.glade:3903 msgid "" "Engines use uci or xboard communication protocol to talk to the GUI.\n" "If it can use both you can set here which one you like." msgstr "" #: glade/PyChess.glade:3929 msgid "Working directory:" msgstr "" #: glade/PyChess.glade:3942 msgid "The directory where the engine will be started from." msgstr "" #: glade/saveGamesDialog.glade:7 msgid "Quit PyChess" msgstr "" #: glade/saveGamesDialog.glade:24 lib/pychess/widgets/ionest.py:424 msgid "Close _without Saving" msgstr "Sulge _ilma salvestamiseta" #: glade/saveGamesDialog.glade:83 msgid "_Save %d documents" msgstr "" #: glade/saveGamesDialog.glade:141 msgid "" "There are %d games with unsaved moves. Save changes before " "closing?" msgstr "" #: glade/saveGamesDialog.glade:161 msgid "Select the games you want to save:" msgstr "" #: glade/saveGamesDialog.glade:204 msgid "If you don't save, new changes to your games will be permanently lost." msgstr "" #: glade/taskers.glade:126 msgid "_Opponent:" msgstr "" #: glade/taskers.glade:154 msgid "_Your Color:" msgstr "" #: glade/taskers.glade:219 msgid "_Start Game" msgstr "" #: glade/taskers.glade:338 msgid "Log on as G_uest" msgstr "" #: glade/taskers.glade:410 msgid "Ha_ndle:" msgstr "" #: glade/taskers.glade:469 msgid "_Connect to server" msgstr "" #: glade/tipoftheday.glade:7 msgid "Tip Of The day" msgstr "" #: glade/tipoftheday.glade:62 msgid "Show tips at startup" msgstr "" #: lib/pychess/Main.py:302 msgid "http://en.wikipedia.org/wiki/Chess" msgstr "http://et.wikipedia.org/wiki/Male" #: lib/pychess/Main.py:305 msgid "http://en.wikipedia.org/wiki/Rules_of_chess" msgstr "http://et.wikipedia.org/wiki/Male" #: lib/pychess/Main.py:370 lib/pychess/widgets/gamenanny.py:80 msgid "Welcome" msgstr "" #: lib/pychess/Database/gamelist.py:40 msgid "Id" msgstr "" #: lib/pychess/Database/gamelist.py:40 msgid "W Elo" msgstr "" #: lib/pychess/Database/gamelist.py:40 msgid "B Elo" msgstr "" #: lib/pychess/Database/gamelist.py:41 msgid "Result" msgstr "" #: lib/pychess/Database/gamelist.py:41 msgid "Event" msgstr "" #: lib/pychess/Database/gamelist.py:41 msgid "Site" msgstr "" #: lib/pychess/Database/gamelist.py:41 msgid "Round" msgstr "" #: lib/pychess/Database/gamelist.py:41 msgid "Date" msgstr "" #: lib/pychess/Database/gamelist.py:41 msgid "ECO" msgstr "" #: lib/pychess/Database/gamelist.py:62 msgid "PyChess Game Database" msgstr "" #: lib/pychess/Database/PgnImport.py:188 #, python-format msgid "The game #%s can't be loaded, because of an error parsing FEN" msgstr "" #: lib/pychess/ic/FICSConnection.py:139 msgid "The connection was broken - got \"end of file\" message" msgstr "Ühendus katkes - sain \"faililõpu\" sõnumi" #: lib/pychess/ic/FICSConnection.py:140 #, python-format msgid "'%s' is not a registered name" msgstr "'%s' ei ole registreeritud nimi" #: lib/pychess/ic/FICSConnection.py:141 msgid "" "The entered password was invalid.\n" "If you forgot your password, go to http://www.freechess.org/password to request a new one over email." msgstr "" #: lib/pychess/ic/FICSConnection.py:145 #, python-format msgid "Sorry '%s' is already logged in" msgstr "" #: lib/pychess/ic/FICSConnection.py:146 #, python-format msgid "'%s' is a registered name. If it is yours, type the password." msgstr "" #: lib/pychess/ic/FICSConnection.py:147 msgid "" "Due to abuse problems, guest connections have been prevented.\n" "You can still register on http://www.freechess.org" msgstr "" #: lib/pychess/ic/FICSConnection.py:166 msgid "Connecting to server" msgstr "" #: lib/pychess/ic/FICSConnection.py:181 msgid "Logging on to server" msgstr "" #: lib/pychess/ic/FICSConnection.py:239 msgid "Setting up environment" msgstr "" #: lib/pychess/ic/FICSObjects.py:35 lib/pychess/ic/FICSObjects.py:47 #, python-format msgid "%(player)s is %(status)s" msgstr "" #: lib/pychess/ic/FICSObjects.py:46 msgid "not playing" msgstr "" #: lib/pychess/ic/FICSObjects.py:54 lib/pychess/ic/ICLounge.py:1136 #: lib/pychess/ic/ICLounge.py:2209 lib/pychess/ic/__init__.py:98 #: lib/pychess/widgets/newGameDialog.py:153 msgid "Blitz" msgstr "Kiirmale" #: lib/pychess/ic/FICSObjects.py:58 lib/pychess/ic/ICLounge.py:1137 #: lib/pychess/ic/ICLounge.py:2209 lib/pychess/ic/__init__.py:100 msgid "Lightning" msgstr "Välkmale" #: lib/pychess/ic/FICSObjects.py:60 lib/pychess/Variants/atomic.py:15 msgid "Atomic" msgstr "" #: lib/pychess/ic/FICSObjects.py:62 lib/pychess/Variants/bughouse.py:9 msgid "Bughouse" msgstr "" #: lib/pychess/ic/FICSObjects.py:64 lib/pychess/Variants/crazyhouse.py:9 msgid "Crazyhouse" msgstr "" #: lib/pychess/ic/FICSObjects.py:66 lib/pychess/Variants/losers.py:9 msgid "Losers" msgstr "" #: lib/pychess/ic/FICSObjects.py:68 lib/pychess/Variants/suicide.py:12 msgid "Suicide" msgstr "" #: lib/pychess/ic/FICSObjects.py:70 lib/pychess/ic/__init__.py:129 msgid "Wild" msgstr "" #: lib/pychess/ic/FICSObjects.py:117 msgid "Online" msgstr "" #: lib/pychess/ic/FICSObjects.py:118 lib/pychess/ic/FICSObjects.py:143 msgid "Offline" msgstr "" #: lib/pychess/ic/FICSObjects.py:133 msgid "Available" msgstr "" #: lib/pychess/ic/FICSObjects.py:135 msgid "Playing" msgstr "" #: lib/pychess/ic/FICSObjects.py:141 msgid "Idle" msgstr "" #: lib/pychess/ic/FICSObjects.py:145 msgid "Examining" msgstr "" #: lib/pychess/ic/FICSObjects.py:147 msgid "Not Available" msgstr "" #: lib/pychess/ic/FICSObjects.py:149 msgid "Running Simul Match" msgstr "" #: lib/pychess/ic/FICSObjects.py:151 msgid "In Tournament" msgstr "" #: lib/pychess/ic/FICSObjects.py:308 lib/pychess/ic/FICSObjects.py:492 #: lib/pychess/ic/ICLounge.py:2278 msgid "Unrated" msgstr "Reitinguta" #: lib/pychess/ic/FICSObjects.py:491 lib/pychess/ic/ICLounge.py:670 #: lib/pychess/ic/ICLounge.py:1358 lib/pychess/ic/ICLounge.py:1558 #: lib/pychess/ic/ICLounge.py:2113 msgid "Rated" msgstr "Reitinguga" #: lib/pychess/ic/FICSObjects.py:498 lib/pychess/ic/ICLounge.py:2098 #, python-format msgid "%d min" msgstr "" #: lib/pychess/ic/FICSObjects.py:500 #, python-format msgid " + %d sec" msgstr "" #: lib/pychess/ic/FICSObjects.py:517 #, python-format msgid "%(player)s plays %(color)s" msgstr "" #: lib/pychess/ic/FICSObjects.py:519 lib/pychess/ic/ICLounge.py:909 msgid "white" msgstr "" #: lib/pychess/ic/FICSObjects.py:519 lib/pychess/ic/ICLounge.py:909 msgid "black" msgstr "" #: lib/pychess/ic/FICSObjects.py:565 msgid "This is a continuation of an adjourned match" msgstr "" #: lib/pychess/ic/FICSObjects.py:654 msgid "Opponent Rating" msgstr "" #: lib/pychess/ic/FICSObjects.py:656 msgid "Manual Accept" msgstr "" #: lib/pychess/ic/FICSObjects.py:810 msgid "Private" msgstr "" #: lib/pychess/ic/FICSObjects.py:930 lib/pychess/ic/ICLounge.py:527 #: lib/pychess/Savers/epd.py:139 msgid "Unknown" msgstr "Tundmatu" #: lib/pychess/ic/ICLogon.py:159 lib/pychess/ic/ICLogon.py:165 msgid "Connection Error" msgstr "Ühenduse viga" #: lib/pychess/ic/ICLogon.py:161 msgid "Log on Error" msgstr "Viga sisselogimisel" #: lib/pychess/ic/ICLogon.py:163 msgid "Connection was closed" msgstr "Ühendus suleti" #: lib/pychess/ic/ICLogon.py:169 msgid "Address Error" msgstr "" #: lib/pychess/ic/ICLogon.py:172 msgid "Auto-logout" msgstr "" #: lib/pychess/ic/ICLogon.py:173 msgid "You have been logged out because you were idle more than 60 minutes" msgstr "" #: lib/pychess/ic/ICLounge.py:222 msgid "You have to set kibitz on to see bot messages here." msgstr "" #: lib/pychess/ic/ICLounge.py:241 msgid "" "You may only have 3 outstanding seeks at the same time. If you want to add a" " new seek you must clear your currently active seeks. Clear your seeks?" msgstr "" #: lib/pychess/ic/ICLounge.py:258 msgid "You can't touch this! You are examining a game." msgstr "" #: lib/pychess/ic/ICLounge.py:270 msgid " has declined your offer for a match" msgstr "" #: lib/pychess/ic/ICLounge.py:283 msgid " is censoring you" msgstr "" #: lib/pychess/ic/ICLounge.py:296 msgid " noplay listing you" msgstr "" #: lib/pychess/ic/ICLounge.py:311 msgid " uses a formula not fitting your match request:" msgstr "" #: lib/pychess/ic/ICLounge.py:325 msgid "to manual accept" msgstr "" #: lib/pychess/ic/ICLounge.py:327 msgid "to automatic accept" msgstr "" #: lib/pychess/ic/ICLounge.py:329 msgid "rating range now" msgstr "" #: lib/pychess/ic/ICLounge.py:330 msgid "Seek updated" msgstr "" #: lib/pychess/ic/ICLounge.py:342 msgid "Your seeks have been removed" msgstr "" #: lib/pychess/ic/ICLounge.py:363 msgid " has arrived" msgstr "" #: lib/pychess/ic/ICLounge.py:370 msgid " has departed" msgstr "" #: lib/pychess/ic/ICLounge.py:374 msgid " is present" msgstr "" #: lib/pychess/ic/ICLounge.py:391 sidepanel/chatPanel.py:17 msgid "Chat" msgstr "" #: lib/pychess/ic/ICLounge.py:472 sidepanel/bookPanel.py:366 msgid "Win" msgstr "" #: lib/pychess/ic/ICLounge.py:472 sidepanel/bookPanel.py:360 msgid "Draw" msgstr "" #: lib/pychess/ic/ICLounge.py:472 sidepanel/bookPanel.py:363 msgid "Loss" msgstr "" #: lib/pychess/ic/ICLounge.py:482 msgid "" "On FICS, your \"Wild\" rating encompasses all of the following variants at " "all time controls:\n" msgstr "" #: lib/pychess/ic/ICLounge.py:494 msgid "Sanctions" msgstr "" #: lib/pychess/ic/ICLounge.py:499 msgid "Email" msgstr "E-post" #: lib/pychess/ic/ICLounge.py:504 msgid "Spent" msgstr "Kulutanud" #: lib/pychess/ic/ICLounge.py:506 msgid "online in total" msgstr "kokku ühendatud" #: lib/pychess/ic/ICLounge.py:512 msgid "Ping" msgstr "Ping" #: lib/pychess/ic/ICLounge.py:517 msgid "Connecting" msgstr "Ühendumine" #: lib/pychess/ic/ICLounge.py:544 msgid "" "You are currently logged in as a guest.\n" "A guest can't play rated games and therefore isn't able to play as many of the types of matches offered as a registered user. To register an account, go to http://www.freechess.org/Register/index.html." msgstr "" #: lib/pychess/ic/ICLounge.py:669 lib/pychess/ic/ICLounge.py:1136 msgid "Name" msgstr "Nimi" #: lib/pychess/ic/ICLounge.py:670 lib/pychess/ic/ICLounge.py:1358 #: lib/pychess/ic/ICLounge.py:1558 msgid "Type" msgstr "Tüüp" #: lib/pychess/ic/ICLounge.py:670 lib/pychess/ic/ICLounge.py:1558 msgid "Clock" msgstr "Kell" #: lib/pychess/ic/ICLounge.py:726 lib/pychess/ic/ICLounge.py:923 #: lib/pychess/Players/Human.py:250 msgid "Accept" msgstr "" #: lib/pychess/ic/ICLounge.py:728 msgid "Assess" msgstr "" #: lib/pychess/ic/ICLounge.py:734 msgid "Archived" msgstr "" #: lib/pychess/ic/ICLounge.py:848 #, python-format msgid "Active seeks: %d" msgstr "" #: lib/pychess/ic/ICLounge.py:897 #, python-format msgid "" " would like to resume your adjourned %(time)s %(gametype)s " "game." msgstr "" #: lib/pychess/ic/ICLounge.py:902 #, python-format msgid "" " challenges you to a %(time)s %(rated)s %(gametype)s game" msgstr "" #: lib/pychess/ic/ICLounge.py:907 #, python-format msgid " where %(player)s plays %(color)s." msgstr "" #: lib/pychess/ic/ICLounge.py:924 lib/pychess/Players/Human.py:251 msgid "Decline" msgstr "" #: lib/pychess/ic/ICLounge.py:1065 msgid " min" msgstr "" #: lib/pychess/ic/ICLounge.py:1137 msgid "Status" msgstr "" #: lib/pychess/ic/ICLounge.py:1203 lib/pychess/ic/ICLounge.py:1233 #, python-format msgid "Players: %d" msgstr "" #: lib/pychess/ic/ICLounge.py:1469 #, python-format msgid "Games running: %d" msgstr "" #: lib/pychess/ic/ICLounge.py:1559 msgid "Date/Time" msgstr "" #: lib/pychess/ic/ICLounge.py:1614 #, python-format msgid "" " with whom you have an adjourned %(timecontrol)s %(gametype)s " "game is online." msgstr "" #: lib/pychess/ic/ICLounge.py:1635 msgid "Request Continuation" msgstr "" #: lib/pychess/ic/ICLounge.py:1637 msgid "Examine Adjourned Game" msgstr "" #: lib/pychess/ic/ICLounge.py:1965 msgid "" "The chain button is disabled because you are logged in as a guest. Guests " "can't establish ratings, and the chain button's state has no effect when " "there is no rating to which to tie \"Opponent Strength\" to" msgstr "" #: lib/pychess/ic/ICLounge.py:2006 msgid "Challenge: " msgstr "" #: lib/pychess/ic/ICLounge.py:2044 msgid "If set you can refuse players accepting your seek" msgstr "" #: lib/pychess/ic/ICLounge.py:2048 lib/pychess/ic/ICLounge.py:2051 msgid "This option is not applicable because you're challenging a player" msgstr "" #: lib/pychess/ic/ICLounge.py:2064 msgid "Edit Seek: " msgstr "" #: lib/pychess/ic/ICLounge.py:2095 #, python-format msgid "%(minutes)d min + %(gain)d sec/move" msgstr "" #: lib/pychess/ic/ICLounge.py:2116 msgid "Manual" msgstr "" #: lib/pychess/ic/ICLounge.py:2256 msgid "Any strength" msgstr "" #: lib/pychess/ic/ICLounge.py:2308 msgid "You can't play rated games because you are logged in as a guest" msgstr "" #: lib/pychess/ic/ICLounge.py:2312 msgid "You can't play rated games because \"Untimed\" is checked, " msgstr "" #: lib/pychess/ic/ICLounge.py:2313 msgid "and on FICS, untimed games can't be rated" msgstr "" #: lib/pychess/ic/ICLounge.py:2317 msgid "This option is not available because you're challenging a guest, " msgstr "" #: lib/pychess/ic/ICLounge.py:2318 msgid "and guests can't play rated games" msgstr "" #: lib/pychess/ic/ICLounge.py:2332 lib/pychess/Variants/shuffle.py:16 #: lib/pychess/widgets/newGameDialog.py:266 msgid "Shuffle" msgstr "" #: lib/pychess/ic/ICLounge.py:2333 lib/pychess/widgets/newGameDialog.py:267 msgid "Other (standard rules)" msgstr "" #: lib/pychess/ic/ICLounge.py:2334 lib/pychess/widgets/newGameDialog.py:268 msgid "Other (non standard rules)" msgstr "" #: lib/pychess/ic/ICLounge.py:2421 msgid "You can't select a variant because \"Untimed\" is checked, " msgstr "" #: lib/pychess/ic/ICLounge.py:2422 msgid "and on FICS, untimed games have to be normal chess rules" msgstr "" #: lib/pychess/ic/ICLounge.py:2454 msgid "Change Tolerance" msgstr "" #: lib/pychess/ic/__init__.py:102 msgid "Examined" msgstr "" #: lib/pychess/ic/__init__.py:103 msgid "Other" msgstr "" #: lib/pychess/ic/__init__.py:182 msgid "Administrator" msgstr "" #: lib/pychess/ic/__init__.py:182 msgid "Blindfold Account" msgstr "" #: lib/pychess/ic/__init__.py:182 msgid "Computer" msgstr "" #: lib/pychess/ic/__init__.py:183 msgid "Team Account" msgstr "" #: lib/pychess/ic/__init__.py:183 msgid "Unregistered" msgstr "" #: lib/pychess/ic/__init__.py:183 msgid "Chess Advisor" msgstr "" #: lib/pychess/ic/__init__.py:184 msgid "Service Representative" msgstr "" #: lib/pychess/ic/__init__.py:184 msgid "Tournament Director" msgstr "" #: lib/pychess/ic/__init__.py:184 msgid "Mamer Manager" msgstr "" #: lib/pychess/ic/__init__.py:185 msgid "Grand Master" msgstr "" #: lib/pychess/ic/__init__.py:185 msgid "International Master" msgstr "" #: lib/pychess/ic/__init__.py:185 msgid "FIDE Master" msgstr "" #: lib/pychess/ic/__init__.py:186 msgid "Woman Grand Master" msgstr "" #: lib/pychess/ic/__init__.py:186 msgid "Woman International Master" msgstr "" #: lib/pychess/ic/__init__.py:186 msgid "Woman FIDE Master" msgstr "" #: lib/pychess/ic/__init__.py:187 msgid "Dummy Account" msgstr "" #: lib/pychess/ic/__init__.py:191 msgid "*" msgstr "" #: lib/pychess/ic/__init__.py:191 lib/pychess/Utils/repr.py:14 msgid "B" msgstr "O" #: lib/pychess/ic/__init__.py:191 msgid "C" msgstr "" #: lib/pychess/ic/__init__.py:192 msgid "T" msgstr "" #: lib/pychess/ic/__init__.py:192 msgid "U" msgstr "" #: lib/pychess/ic/__init__.py:192 msgid "CA" msgstr "" #: lib/pychess/ic/__init__.py:193 msgid "SR" msgstr "" #: lib/pychess/ic/__init__.py:193 msgid "TD" msgstr "" #: lib/pychess/ic/__init__.py:193 msgid "TM" msgstr "" #: lib/pychess/ic/__init__.py:194 msgid "GM" msgstr "" #: lib/pychess/ic/__init__.py:194 msgid "IM" msgstr "" #: lib/pychess/ic/__init__.py:194 msgid "FM" msgstr "" #: lib/pychess/ic/__init__.py:195 msgid "WGM" msgstr "" #: lib/pychess/ic/__init__.py:195 msgid "WIM" msgstr "" #: lib/pychess/ic/__init__.py:195 msgid "WFM" msgstr "" #: lib/pychess/ic/__init__.py:195 msgid "D" msgstr "" #: lib/pychess/ic/__init__.py:195 msgid "H" msgstr "" #: lib/pychess/ic/__init__.py:195 msgid "CM" msgstr "" #: lib/pychess/ic/__init__.py:195 msgid "FA" msgstr "" #: lib/pychess/ic/__init__.py:195 msgid "NM" msgstr "" #: lib/pychess/Players/CECPEngine.py:857 #, python-format msgid "The engine %s reports an error:" msgstr "" #: lib/pychess/Players/Human.py:20 msgid "Your opponent has offered you a draw." msgstr "" #: lib/pychess/Players/Human.py:21 msgid "" "Your opponent has offered you a draw. If you accept this offer, the game " "will end with a score of 1/2 - 1/2." msgstr "" #: lib/pychess/Players/Human.py:23 msgid "Your opponent wants to abort the game." msgstr "" #: lib/pychess/Players/Human.py:24 msgid "" "Your opponent has asked that the game be aborted. If you accept this offer, " "the game will end with no rating change." msgstr "" #: lib/pychess/Players/Human.py:26 msgid "Your opponent wants to adjourn the game." msgstr "" #: lib/pychess/Players/Human.py:27 msgid "" "Your opponent has asked that the game be adjourned. If you accept this " "offer, the game will be adjourned and you can resume it later (when your " "opponent is online and both players agree to resume)." msgstr "" #: lib/pychess/Players/Human.py:29 #, python-format msgid "Your opponent wants to undo %s move(s)." msgstr "" #: lib/pychess/Players/Human.py:30 #, python-format msgid "" "Your opponent has asked that the last %s move(s) be undone. If you accept " "this offer, the game will continue from the earlier position." msgstr "" #: lib/pychess/Players/Human.py:32 msgid "Your opponent wants to pause the game." msgstr "" #: lib/pychess/Players/Human.py:33 msgid "" "Your opponent has asked that the game be paused. If you accept this offer, " "the game clock will be paused until both players agree to resume the game." msgstr "" #: lib/pychess/Players/Human.py:35 msgid "Your opponent wants to resume the game." msgstr "" #: lib/pychess/Players/Human.py:36 msgid "" "Your opponent has asked that the game be resumed. If you accept this offer, " "the game clock will continue from where it was paused." msgstr "" #: lib/pychess/Players/Human.py:40 msgid "The resignation" msgstr "" #: lib/pychess/Players/Human.py:41 msgid "The flag call" msgstr "" #: lib/pychess/Players/Human.py:42 msgid "The draw offer" msgstr "" #: lib/pychess/Players/Human.py:43 msgid "The abort offer" msgstr "" #: lib/pychess/Players/Human.py:44 msgid "The adjourn offer" msgstr "" #: lib/pychess/Players/Human.py:45 msgid "The pause offer" msgstr "" #: lib/pychess/Players/Human.py:46 msgid "The resume offer" msgstr "" #: lib/pychess/Players/Human.py:47 msgid "The offer to switch sides" msgstr "" #: lib/pychess/Players/Human.py:48 msgid "The takeback offer" msgstr "" #: lib/pychess/Players/Human.py:52 msgid "resign" msgstr "" #: lib/pychess/Players/Human.py:53 msgid "call your opponents flag" msgstr "" #: lib/pychess/Players/Human.py:54 msgid "offer a draw" msgstr "" #: lib/pychess/Players/Human.py:55 msgid "offer an abort" msgstr "" #: lib/pychess/Players/Human.py:56 msgid "offer to adjourn" msgstr "" #: lib/pychess/Players/Human.py:57 msgid "offer a pause" msgstr "" #: lib/pychess/Players/Human.py:58 msgid "offer to resume" msgstr "" #: lib/pychess/Players/Human.py:59 msgid "offer to switch sides" msgstr "" #: lib/pychess/Players/Human.py:60 msgid "offer a takeback" msgstr "" #: lib/pychess/Players/Human.py:61 msgid "ask your opponent to move" msgstr "" #: lib/pychess/Players/Human.py:66 msgid "Your opponent is not out of time." msgstr "Sinu vastane pole ületanud ajalimiiti" #: lib/pychess/Players/Human.py:68 msgid "The clock hasn't been started yet." msgstr "" #: lib/pychess/Players/Human.py:70 msgid "You can't switch colors during the game." msgstr "" #: lib/pychess/Players/Human.py:72 msgid "You have tried to undo too many moves." msgstr "" #: lib/pychess/Players/Human.py:180 msgid "Your opponent asks you to hurry!" msgstr "Sinu vastane palub sul kiirustada!" #: lib/pychess/Players/Human.py:181 msgid "" "Generally this means nothing, as the game is time-based, but if you want to " "please your opponent, perhaps you should get going." msgstr "" #: lib/pychess/Players/Human.py:259 #, python-format msgid "%s was declined by your opponent" msgstr "Sinu vastane keeldus %s" #: lib/pychess/Players/Human.py:260 #, python-format msgid "Resend %s?" msgstr "" #: lib/pychess/Players/Human.py:267 msgid "Resend" msgstr "" #: lib/pychess/Players/Human.py:275 #, python-format msgid "%s was withdrawn by your opponent" msgstr "%s võeti su vastase poolt tagasi" #: lib/pychess/Players/Human.py:276 msgid "Your opponent seems to have changed their mind." msgstr "" #: lib/pychess/Players/Human.py:290 #, python-format msgid "Unable to accept %s" msgstr "%s ei saa vastu võtta" #: lib/pychess/Players/Human.py:291 msgid "Probably because it has been withdrawn." msgstr "" #: lib/pychess/Players/Human.py:298 #, python-format msgid "%s returns an error" msgstr "%s annab vea" #: lib/pychess/Savers/chessalpha2.py:12 msgid "Chess Alpha 2 Diagram" msgstr "" #: lib/pychess/Savers/chesspastebin.py:39 msgid "Game shared at " msgstr "" #: lib/pychess/Savers/chesspastebin.py:41 msgid "(Link is available on clipboard.)" msgstr "" #: lib/pychess/Savers/database.py:19 msgid "PyChess database" msgstr "" #: lib/pychess/Savers/epd.py:12 msgid "Chess Position" msgstr "Male positsioon" #: lib/pychess/Savers/fen.py:12 msgid "Simple Chess Position" msgstr "Lihtne male positsioon" #: lib/pychess/Savers/fen.py:44 lib/pychess/Savers/pgn.py:329 msgid "The game can't be loaded, because of an error parsing FEN" msgstr "" #: lib/pychess/Savers/pgnbase.py:100 #, python-format msgid "" "The game can't be read to end, because of an error parsing move %(moveno)s " "'%(notation)s'." msgstr "" #: lib/pychess/Savers/pgnbase.py:102 #, python-format msgid "The move failed because %s." msgstr "" #: lib/pychess/Savers/pgnbase.py:110 #, python-format msgid "Error parsing move %(moveno)s %(mstr)s" msgstr "" #: lib/pychess/Savers/pgn.py:28 msgid "Chess Game" msgstr "Malemäng" #: lib/pychess/Savers/pgn.py:362 msgid "Invalid move." msgstr "" #: lib/pychess/Savers/png.py:15 msgid "Png image" msgstr "" #: lib/pychess/System/ping.py:31 msgid "Destination Host Unreachable" msgstr "" #: lib/pychess/System/ping.py:74 msgid "Died" msgstr "" #: lib/pychess/Utils/GameModel.py:147 msgid "Local Event" msgstr "Kohalik sündmus" #: lib/pychess/Utils/GameModel.py:148 msgid "Local Site" msgstr "Kohalik lehekülg" #: lib/pychess/Utils/repr.py:12 msgid "Pawn" msgstr "" #: lib/pychess/Utils/repr.py:14 msgid "P" msgstr "E" #: lib/pychess/Utils/repr.py:14 msgid "N" msgstr "R" #: lib/pychess/Utils/repr.py:14 msgid "R" msgstr "V" #: lib/pychess/Utils/repr.py:14 msgid "Q" msgstr "L" #: lib/pychess/Utils/repr.py:14 msgid "K" msgstr "K" #: lib/pychess/Utils/repr.py:17 msgid "The game ended in a draw" msgstr "Mäng lõppes viigiga" #: lib/pychess/Utils/repr.py:18 #, python-format msgid "%(white)s won the game" msgstr "" #: lib/pychess/Utils/repr.py:19 #, python-format msgid "%(black)s won the game" msgstr "" #: lib/pychess/Utils/repr.py:20 msgid "The game has been killed" msgstr "Mäng on tapetud" #: lib/pychess/Utils/repr.py:21 msgid "The game has been adjourned" msgstr "Mäng on edasi lükatud" #: lib/pychess/Utils/repr.py:22 msgid "The game has been aborted" msgstr "Mäng on katkestatud" #: lib/pychess/Utils/repr.py:26 msgid "Because neither player has sufficient material to mate" msgstr "" #: lib/pychess/Utils/repr.py:27 msgid "Because the same position was repeated three times in a row" msgstr "" #: lib/pychess/Utils/repr.py:28 msgid "Because the last 50 moves brought nothing new" msgstr "" #: lib/pychess/Utils/repr.py:29 msgid "Because both players ran out of time" msgstr "" #: lib/pychess/Utils/repr.py:30 #, python-format msgid "Because %(mover)s stalemated" msgstr "" #: lib/pychess/Utils/repr.py:31 msgid "Because both players agreed to a draw" msgstr "" #: lib/pychess/Utils/repr.py:32 lib/pychess/Utils/repr.py:42 msgid "Because of adjudication by an admin" msgstr "" #: lib/pychess/Utils/repr.py:33 msgid "Because the game exceed the max length" msgstr "" #: lib/pychess/Utils/repr.py:34 #, python-format msgid "" "Because %(white)s ran out of time and %(black)s has insufficient material to" " mate" msgstr "" #: lib/pychess/Utils/repr.py:35 #, python-format msgid "" "Because %(black)s ran out of time and %(white)s has insufficient material to" " mate" msgstr "" #: lib/pychess/Utils/repr.py:36 msgid "Because both players have the same amount of pieces" msgstr "" #: lib/pychess/Utils/repr.py:38 #, python-format msgid "Because %(loser)s resigned" msgstr "" #: lib/pychess/Utils/repr.py:39 #, python-format msgid "Because %(loser)s ran out of time" msgstr "" #: lib/pychess/Utils/repr.py:40 #, python-format msgid "Because %(loser)s was checkmated" msgstr "" #: lib/pychess/Utils/repr.py:41 #, python-format msgid "Because %(loser)s disconnected" msgstr "" #: lib/pychess/Utils/repr.py:43 #, python-format msgid "Because %(winner)s has fewer pieces" msgstr "" #: lib/pychess/Utils/repr.py:44 #, python-format msgid "Because %(winner)s lost all pieces" msgstr "" #: lib/pychess/Utils/repr.py:45 #, python-format msgid "Because %(loser)s king exploded" msgstr "" #: lib/pychess/Utils/repr.py:46 #, python-format msgid "Because %(winner)s king reached the center" msgstr "" #: lib/pychess/Utils/repr.py:47 #, python-format msgid "Because %(winner)s was giving check 3 times" msgstr "" #: lib/pychess/Utils/repr.py:49 msgid "Because a player lost connection" msgstr "" #: lib/pychess/Utils/repr.py:50 msgid "Because both players agreed to an adjournment" msgstr "" #: lib/pychess/Utils/repr.py:51 msgid "Because the server was shut down" msgstr "" #: lib/pychess/Utils/repr.py:52 msgid "" "Because a player lost connection and the other player requested adjournment" msgstr "" #: lib/pychess/Utils/repr.py:53 #, python-format msgid "" "Because %(black)s lost connection to the server and %(white)s requested " "adjournment" msgstr "" #: lib/pychess/Utils/repr.py:54 #, python-format msgid "" "Because %(white)s lost connection to the server and %(black)s requested " "adjournment" msgstr "" #: lib/pychess/Utils/repr.py:55 #, python-format msgid "Because %(white)s lost connection to the server" msgstr "" #: lib/pychess/Utils/repr.py:56 #, python-format msgid "Because %(black)s lost connection to the server" msgstr "" #: lib/pychess/Utils/repr.py:58 msgid "Because of adjudication by an admin. No rating changes have occurred." msgstr "" #: lib/pychess/Utils/repr.py:59 msgid "" "Because both players agreed to abort the game. No rating changes have " "occurred." msgstr "" #: lib/pychess/Utils/repr.py:60 msgid "Because of courtesy by a player. No rating changes have occurred." msgstr "" #: lib/pychess/Utils/repr.py:61 msgid "" "Because a player aborted the game. Either player can abort the game without " "the other's consent before the second move. No rating changes have occurred." msgstr "" #: lib/pychess/Utils/repr.py:62 msgid "" "Because a player disconnected and there are too few moves to warrant " "adjournment. No rating changes have occurred." msgstr "" #: lib/pychess/Utils/repr.py:63 msgid "Because the server was shut down. No rating changes have occurred." msgstr "" #: lib/pychess/Utils/repr.py:65 #, python-format msgid "Because the %(white)s engine died" msgstr "" #: lib/pychess/Utils/repr.py:66 #, python-format msgid "Because the %(black)s engine died" msgstr "" #: lib/pychess/Utils/repr.py:67 msgid "Because the connection to the server was lost" msgstr "" #: lib/pychess/Utils/repr.py:68 msgid "The reason is unknown" msgstr "" #: lib/pychess/Utils/TimeModel.py:229 msgid "min" msgstr "" #: lib/pychess/Utils/TimeModel.py:231 msgid "sec" msgstr "" #: lib/pychess/Variants/asean.py:12 msgid "" "ASEAN: http://www.ncf-" "phil.org/downloadables/2014/May/Asean_chess/Laws_of_ASEAN_Chess_2011_Nov_26.doc" msgstr "" #: lib/pychess/Variants/asean.py:13 msgid "ASEAN" msgstr "" #: lib/pychess/Variants/asean.py:33 msgid "Makruk: http://en.wikipedia.org/wiki/Makruk" msgstr "" #: lib/pychess/Variants/asean.py:34 msgid "Makruk" msgstr "" #: lib/pychess/Variants/asean.py:60 msgid "Cambodian: http://www.khmerinstitute.org/culture/ok.html" msgstr "" #: lib/pychess/Variants/asean.py:61 msgid "Cambodian" msgstr "" #: lib/pychess/Variants/asean.py:86 msgid "" "Ai-Wok: http://www.open-" "aurec.com/wbforum/viewtopic.php?p=199364&sid=20963a1de2c164050de019e5ed6bf7c4#p199364" msgstr "" #: lib/pychess/Variants/asean.py:87 msgid "Ai-Wok" msgstr "" #: lib/pychess/Variants/asean.py:111 msgid "Sittuyin: http://en.wikipedia.org/wiki/Sittuyin" msgstr "" #: lib/pychess/Variants/asean.py:112 msgid "Sittuyin" msgstr "" #: lib/pychess/Variants/asymmetricrandom.py:12 msgid "" "FICS wild/4: http://www.freechess.org/Help/HelpFiles/wild.html\n" "* Randomly chosen pieces (two queens or three rooks possible)\n" "* Exactly one king of each color\n" "* Pieces placed randomly behind the pawns, SUBJECT TO THE CONSTRAINT THAT THE BISHOPS ARE BALANCED\n" "* No castling\n" "* Black's arrangement DOES NOT mirrors white's" msgstr "" #: lib/pychess/Variants/asymmetricrandom.py:18 msgid "Asymmetric Random" msgstr "" #: lib/pychess/Variants/atomic.py:14 msgid "FICS atomic: http://www.freechess.org/Help/HelpFiles/atomic.html" msgstr "" #: lib/pychess/Variants/blindfold.py:7 msgid "" "Classic chess rules with hidden figurines\n" "http://en.wikipedia.org/wiki/Blindfold_chess" msgstr "" #: lib/pychess/Variants/blindfold.py:9 #: lib/pychess/widgets/newGameDialog.py:264 msgid "Blindfold" msgstr "" #: lib/pychess/Variants/blindfold.py:18 msgid "" "Classic chess rules with hidden pawns\n" "http://en.wikipedia.org/wiki/Blindfold_chess" msgstr "" #: lib/pychess/Variants/blindfold.py:20 msgid "Hidden pawns" msgstr "" #: lib/pychess/Variants/blindfold.py:29 msgid "" "Classic chess rules with hidden pieces\n" "http://en.wikipedia.org/wiki/Blindfold_chess" msgstr "" #: lib/pychess/Variants/blindfold.py:31 msgid "Hidden pieces" msgstr "" #: lib/pychess/Variants/blindfold.py:40 msgid "" "Classic chess rules with all pieces white\n" "http://en.wikipedia.org/wiki/Blindfold_chess" msgstr "" #: lib/pychess/Variants/blindfold.py:42 msgid "All white" msgstr "" #: lib/pychess/Variants/bughouse.py:8 msgid "FICS bughouse: http://www.freechess.org/Help/HelpFiles/bughouse.html" msgstr "" #: lib/pychess/Variants/corner.py:12 msgid "" "http://brainking.com/en/GameRules?tp=2\n" "* Placement of the pieces on the 1st and 8th row are randomized\n" "* The king is in the right hand corner\n" "* Bishops must start on opposite color squares\n" "* Black's starting position is obtained by rotating white's position 180 degrees around the board's center\n" "* No castling" msgstr "" #: lib/pychess/Variants/corner.py:18 msgid "Corner" msgstr "" #: lib/pychess/Variants/crazyhouse.py:8 msgid "" "FICS crazyhouse: http://www.freechess.org/Help/HelpFiles/crazyhouse.html" msgstr "" #: lib/pychess/Variants/euroshogi.py:9 msgid "EuroShogi: http://en.wikipedia.org/wiki/EuroShogi" msgstr "" #: lib/pychess/Variants/euroshogi.py:10 msgid "EuroShogi" msgstr "" #: lib/pychess/Variants/fischerandom.py:18 msgid "" "http://en.wikipedia.org/wiki/Chess960\n" "FICS wild/fr: http://www.freechess.org/Help/HelpFiles/wild.html" msgstr "" #: lib/pychess/Variants/fischerandom.py:20 msgid "Fischer Random" msgstr "" #: lib/pychess/Variants/kingofthehill.py:8 msgid "" "Bringing your king legally to the center (e4, d4, e5, d5) instantly wins the game!\n" "Normal rules apply in other cases and checkmate also ends the game." msgstr "" #: lib/pychess/Variants/kingofthehill.py:10 msgid "King of the hill" msgstr "" #: lib/pychess/Variants/knightodds.py:8 msgid "One player starts with one less knight piece" msgstr "" #: lib/pychess/Variants/knightodds.py:9 msgid "Knight odds" msgstr "" #: lib/pychess/Variants/losers.py:8 msgid "FICS losers: http://www.freechess.org/Help/HelpFiles/losers_chess.html" msgstr "" #: lib/pychess/Variants/normal.py:4 msgid "" "Classic chess rules\n" "http://en.wikipedia.org/wiki/Chess" msgstr "" #: lib/pychess/Variants/normal.py:6 lib/pychess/widgets/newGameDialog.py:157 msgid "Normal" msgstr "Tavaline" #: lib/pychess/Variants/pawnodds.py:8 msgid "One player starts with one less pawn piece" msgstr "" #: lib/pychess/Variants/pawnodds.py:9 msgid "Pawn odds" msgstr "" #: lib/pychess/Variants/pawnspassed.py:11 msgid "" "FICS wild/8a: http://www.freechess.org/Help/HelpFiles/wild.html\n" "White pawns start on 5th rank and black pawns on the 4th rank" msgstr "" #: lib/pychess/Variants/pawnspassed.py:13 msgid "Pawns Passed" msgstr "" #: lib/pychess/Variants/pawnspushed.py:10 msgid "" "FICS wild/8: http://www.freechess.org/Help/HelpFiles/wild.html\n" "Pawns start on 4th and 5th ranks rather than 2nd and 7th" msgstr "" #: lib/pychess/Variants/pawnspushed.py:12 msgid "Pawns Pushed" msgstr "" #: lib/pychess/Variants/queenodds.py:8 msgid "One player starts with one less queen piece" msgstr "" #: lib/pychess/Variants/queenodds.py:9 msgid "Queen odds" msgstr "" #: lib/pychess/Variants/randomchess.py:11 msgid "" "FICS wild/3: http://www.freechess.org/Help/HelpFiles/wild.html\n" "* Randomly chosen pieces (two queens or three rooks possible)\n" "* Exactly one king of each color\n" "* Pieces placed randomly behind the pawns\n" "* No castling\n" "* Black's arrangement mirrors white's" msgstr "" #: lib/pychess/Variants/randomchess.py:17 #: lib/pychess/widgets/TaskerManager.py:155 msgid "Random" msgstr "" #: lib/pychess/Variants/rookodds.py:8 msgid "One player starts with one less rook piece" msgstr "" #: lib/pychess/Variants/rookodds.py:9 msgid "Rook odds" msgstr "" #: lib/pychess/Variants/shuffle.py:11 msgid "" "xboard nocastle: http://home.hccnet.nl/h.g.muller/engine-intf.html#8\n" "FICS wild/2: http://www.freechess.org/Help/HelpFiles/wild.html\n" "* Random arrangement of the pieces behind the pawns\n" "* No castling\n" "* Black's arrangement mirrors white's" msgstr "" #: lib/pychess/Variants/suicide.py:11 msgid "" "FICS suicide: http://www.freechess.org/Help/HelpFiles/suicide_chess.html" msgstr "" #: lib/pychess/Variants/theban.py:10 msgid "" "Variant developed by Kai Laskos: " "http://talkchess.com/forum/viewtopic.php?t=40990" msgstr "" #: lib/pychess/Variants/theban.py:11 msgid "Theban" msgstr "" #: lib/pychess/Variants/threecheck.py:10 msgid "Win by giving check 3 times" msgstr "" #: lib/pychess/Variants/threecheck.py:11 msgid "Three-check" msgstr "" #: lib/pychess/Variants/upsidedown.py:10 msgid "" "FICS wild/5: http://www.freechess.org/Help/HelpFiles/wild.html\n" "http://en.wikipedia.org/wiki/Chess_variant#Chess_with_different_starting_positions\n" "Pawns start on their 7th rank rather than their 2nd rank!" msgstr "" #: lib/pychess/Variants/upsidedown.py:13 msgid "Upside Down" msgstr "" #: lib/pychess/Variants/wildcastle.py:10 msgid "" "xboard wildcastle http://home.hccnet.nl/h.g.muller/engine-intf.html#8\n" "FICS wild/0: http://www.freechess.org/Help/HelpFiles/wild.html\n" "* White has the typical set-up at the start.\n" "* Black's pieces are the same, except that the King and Queen are reversed,\n" "* so they are not on the same files as White's King and Queen.\n" "* Castling is done similarly to normal chess:\n" "* o-o-o indicates long castling and o-o short castling." msgstr "" #: lib/pychess/Variants/wildcastle.py:17 msgid "Wildcastle" msgstr "" #: lib/pychess/Variants/wildcastleshuffle.py:11 msgid "" "xboard wildcastle http://home.hccnet.nl/h.g.muller/engine-intf.html#8\n" "FICS wild/1: http://www.freechess.org/Help/HelpFiles/wild.html\n" "* In this variant both sides have the same set of pieces as in normal chess.\n" "* The white king starts on d1 or e1 and the black king starts on d8 or e8,\n" "* and the rooks are in their usual positions.\n" "* Bishops are always on opposite colors.\n" "* Subject to these constraints the position of the pieces on their first ranks is random.\n" "* Castling is done similarly to normal chess:\n" "* o-o-o indicates long castling and o-o short castling." msgstr "" #: lib/pychess/Variants/wildcastleshuffle.py:20 msgid "Wildcastle shuffle" msgstr "" #: lib/pychess/widgets/analyzegameDialog.py:85 msgid "Game analyzing in progress..." msgstr "" #: lib/pychess/widgets/analyzegameDialog.py:86 msgid "Do you want to abort it?" msgstr "" #: lib/pychess/widgets/analyzegameDialog.py:95 #: lib/pychess/widgets/gamewidget.py:202 lib/pychess/widgets/gamewidget.py:320 msgid "Abort" msgstr "" #: lib/pychess/widgets/ChatView.py:125 msgid "Observers" msgstr "" #: lib/pychess/widgets/ChatWindow.py:222 msgid "You have opened no conversations yet" msgstr "" #: lib/pychess/widgets/ChatWindow.py:254 msgid "Only registered users may talk to this channel" msgstr "" #: lib/pychess/widgets/ChatWindow.py:312 msgid "No conversation's selected" msgstr "" #: lib/pychess/widgets/ChatWindow.py:350 msgid "Loading player data" msgstr "" #: lib/pychess/widgets/ChatWindow.py:400 msgid "Receiving list of players" msgstr "" #: lib/pychess/widgets/ChatWindow.py:518 msgid "Friends" msgstr "" #: lib/pychess/widgets/ChatWindow.py:529 msgid "Admin" msgstr "" #: lib/pychess/widgets/ChatWindow.py:540 msgid "More channels" msgstr "" #: lib/pychess/widgets/ChatWindow.py:548 msgid "More players" msgstr "" #: lib/pychess/widgets/ChatWindow.py:558 msgid "Computers" msgstr "" #: lib/pychess/widgets/ChatWindow.py:568 msgid "BlindFold" msgstr "" #: lib/pychess/widgets/ChatWindow.py:578 msgid "Guests" msgstr "" #: lib/pychess/widgets/ChatWindow.py:805 msgid "Conversations" msgstr "" #: lib/pychess/widgets/ChatWindow.py:807 msgid "Conversation info" msgstr "" #: lib/pychess/widgets/enginesDialog.py:152 msgid "Select engine" msgstr "" #: lib/pychess/widgets/enginesDialog.py:156 msgid "Executable files" msgstr "" #: lib/pychess/widgets/enginesDialog.py:176 #: lib/pychess/widgets/enginesDialog.py:210 #: lib/pychess/widgets/enginesDialog.py:235 #, python-format msgid "Unable to add %s" msgstr "" #: lib/pychess/widgets/enginesDialog.py:177 msgid "wine not installed" msgstr "" #: lib/pychess/widgets/enginesDialog.py:211 #: lib/pychess/widgets/enginesDialog.py:236 msgid "There is something wrong with this executable" msgstr "" #: lib/pychess/widgets/enginesDialog.py:266 msgid "Select working directory" msgstr "" #: lib/pychess/widgets/gamenanny.py:115 #, python-format msgid " invalid engine move: %s" msgstr "" #: lib/pychess/widgets/gamenanny.py:134 msgid "Offer Rematch" msgstr "" #: lib/pychess/widgets/gamenanny.py:136 lib/pychess/widgets/gamenanny.py:147 #, python-format msgid "Observe %s" msgstr "" #: lib/pychess/widgets/gamenanny.py:168 msgid "Play Rematch" msgstr "" #: lib/pychess/widgets/gamenanny.py:171 msgid "Undo one move" msgstr "" #: lib/pychess/widgets/gamenanny.py:173 msgid "Undo two moves" msgstr "" #: lib/pychess/widgets/gamenanny.py:203 msgid "The game is paused" msgstr "" #: lib/pychess/widgets/gamenanny.py:221 lib/pychess/widgets/gamenanny.py:222 msgid "Loaded game" msgstr "Laetud mäng" #: lib/pychess/widgets/gamenanny.py:228 msgid "Saved game" msgstr "Salvestatud mäng" #: lib/pychess/widgets/gamenanny.py:232 msgid "Analyzer started" msgstr "" #: lib/pychess/widgets/gamenanny.py:281 msgid "You sent an abort offer" msgstr "" #: lib/pychess/widgets/gamenanny.py:283 msgid "You sent an adjournment offer" msgstr "" #: lib/pychess/widgets/gamenanny.py:285 msgid "You sent a draw offer" msgstr "Sa saatsid viigipakkumise" #: lib/pychess/widgets/gamenanny.py:287 msgid "You sent a pause offer" msgstr "" #: lib/pychess/widgets/gamenanny.py:289 msgid "You sent a resume offer" msgstr "" #: lib/pychess/widgets/gamenanny.py:291 msgid "You sent an undo offer" msgstr "" #: lib/pychess/widgets/gamenanny.py:293 msgid "You asked your opponent to move" msgstr "" #: lib/pychess/widgets/gamenanny.py:305 #, python-format msgid "Engine, %s, has died" msgstr "Mootor, %s, suri" #: lib/pychess/widgets/gamenanny.py:306 msgid "" "PyChess has lost connection to the engine, probably because it has died.\n" "\n" "You can try to start a new game with the engine, or try to play against another one." msgstr "PyChess on kaotanud sideme mootoriga. Tõenäoliselt seetõttu, et see on surnud.\nSa võid proovida alustada uut mängu selle mootoriga või siis proovida mängida mõne teise vastu." #: lib/pychess/widgets/gamewidget.py:204 msgid "" "This game can be automatically aborted without rating loss because there has" " not yet been two moves made" msgstr "" #: lib/pychess/widgets/gamewidget.py:206 msgid "Offer Abort" msgstr "" #: lib/pychess/widgets/gamewidget.py:208 msgid "" "Your opponent must agree to abort the game because there has been two or " "more moves made" msgstr "" #: lib/pychess/widgets/gamewidget.py:226 msgid "This game can not be adjourned because one or both players are guests" msgstr "" #: lib/pychess/widgets/gamewidget.py:243 msgid "Claim Draw" msgstr "" #: lib/pychess/widgets/gamewidget.py:325 msgid "Pause" msgstr "" #: lib/pychess/widgets/gamewidget.py:326 msgid "Resume" msgstr "" #: lib/pychess/widgets/gamewidget.py:328 msgid "Offer Pause" msgstr "" #: lib/pychess/widgets/gamewidget.py:329 msgid "Offer Resume" msgstr "" #: lib/pychess/widgets/gamewidget.py:333 msgid "Undo" msgstr "" #: lib/pychess/widgets/gamewidget.py:335 msgid "Offer Undo" msgstr "" #: lib/pychess/widgets/gamewidget.py:550 msgid " has lagged for 30 seconds" msgstr "" #: lib/pychess/widgets/gamewidget.py:566 msgid " is lagging heavily but hasn't disconnected" msgstr "" #: lib/pychess/widgets/gamewidget.py:567 msgid "Continue to wait for opponent, or try to adjourn the game?" msgstr "" #: lib/pychess/widgets/gamewidget.py:575 msgid "Wait" msgstr "" #: lib/pychess/widgets/gamewidget.py:576 msgid "Adjourn" msgstr "" #: lib/pychess/widgets/gamewidget.py:648 msgid "Jump to initial position" msgstr "" #: lib/pychess/widgets/gamewidget.py:653 msgid "Step back one move" msgstr "" #: lib/pychess/widgets/gamewidget.py:658 msgid "Go back to the main line" msgstr "" #: lib/pychess/widgets/gamewidget.py:664 msgid "Step forward one move" msgstr "" #: lib/pychess/widgets/gamewidget.py:669 msgid "Jump to latest position" msgstr "" #: lib/pychess/widgets/gamewidget.py:903 msgid "PyChess was unable to load your panel settings" msgstr "" #: lib/pychess/widgets/gamewidget.py:904 msgid "" "Your panel settings have been reset. If this problem repeats, you should " "report it to the developers" msgstr "" #: lib/pychess/widgets/ionest.py:67 lib/pychess/widgets/newGameDialog.py:389 #: lib/pychess/widgets/TaskerManager.py:210 msgid "You" msgstr "" #: lib/pychess/widgets/ionest.py:70 lib/pychess/widgets/newGameDialog.py:390 #: lib/pychess/widgets/preferencesDialog.py:61 #: lib/pychess/widgets/TaskerManager.py:213 msgid "Guest" msgstr "Külaline" #: lib/pychess/widgets/ionest.py:93 msgid "Error loading game" msgstr "" #: lib/pychess/widgets/ionest.py:127 lib/pychess/widgets/newGameDialog.py:480 msgid "Open Game" msgstr "Ava mäng" #: lib/pychess/widgets/ionest.py:137 msgid "All Files" msgstr "Kõik failid" #: lib/pychess/widgets/ionest.py:140 msgid "Detect type automatically" msgstr "Määra tüüp automaatselt" #: lib/pychess/widgets/ionest.py:146 msgid "All Chess Files" msgstr "Kõik malefailid" #: lib/pychess/widgets/ionest.py:228 msgid "Save Game" msgstr "Salvesta mäng" #: lib/pychess/widgets/ionest.py:228 msgid "Export position" msgstr "" #: lib/pychess/widgets/ionest.py:232 lib/pychess/widgets/ionest.py:360 msgid "vs." msgstr "" #: lib/pychess/widgets/ionest.py:249 #, python-format msgid "Unknown file type '%s'" msgstr "Tundmatu failitüüp '%s'" #: lib/pychess/widgets/ionest.py:250 #, python-format msgid "" "Was unable to save '%(uri)s' as PyChess doesn't know the format " "'%(ending)s'." msgstr "" #: lib/pychess/widgets/ionest.py:266 #, python-format msgid "Unable to save file '%s'" msgstr "Faili '%s' ei õnnestu salvestada" #: lib/pychess/widgets/ionest.py:268 msgid "" "You don't have the necessary rights to save the file.\n" "Please ensure that you have given the right path and try again." msgstr "Sul pole faili salvestamiseks vajalikke õigusi.\nPalun veendu, et sa andsid õige teekonna ja proovi uuesti." #: lib/pychess/widgets/ionest.py:276 msgid "_Replace" msgstr "_Asenda" #: lib/pychess/widgets/ionest.py:280 msgid "File exists" msgstr "Fail on juba olemas" #: lib/pychess/widgets/ionest.py:282 #, python-format msgid "" "A file named '%s' already exists. Would you like to replace " "it?" msgstr "Faili nimega '%s' on juba olemas. Kas sa soovid seda asendada?" #: lib/pychess/widgets/ionest.py:283 #, python-format msgid "" "The file already exists in '%s'. If you replace it, its content will be " "overwritten." msgstr "Fail eksisteerib juba kataloogis '%s' Kui sa ta asendad siis kirjutatakse tema sisu üle." #: lib/pychess/widgets/ionest.py:299 msgid "Could not save the file" msgstr "Faili ei saa salvestada" #: lib/pychess/widgets/ionest.py:300 msgid "PyChess was not able to save the game" msgstr "PyChess ei suutnud mängu salvestada" #: lib/pychess/widgets/ionest.py:301 #, python-format msgid "The error was: %s" msgstr "Viga oli: %s" #: lib/pychess/widgets/ionest.py:325 #, python-format msgid "There is %d game with unsaved moves." msgid_plural "There are %d games with unsaved moves." msgstr[0] "" msgstr[1] "" #: lib/pychess/widgets/ionest.py:328 msgid "Save moves before closing?" msgstr "" #: lib/pychess/widgets/ionest.py:339 msgid "Unable to save to configured file. Save the games before closing?" msgstr "" #: lib/pychess/widgets/ionest.py:366 #, python-format msgid "_Save %d document" msgid_plural "_Save %d documents" msgstr[0] "" msgstr[1] "" #: lib/pychess/widgets/ionest.py:412 msgid "Save the current game before you close it?" msgstr "" #: lib/pychess/widgets/ionest.py:420 msgid "" "Unable to save to configured file. Save the current game before you close " "it?" msgstr "" #: lib/pychess/widgets/ionest.py:434 msgid "" "It is not possible later to continue the game,\n" "if you don't save it." msgstr "" #: lib/pychess/widgets/LogDialog.py:26 msgid "PyChess Information Window" msgstr "" #: lib/pychess/widgets/LogDialog.py:184 lib/pychess/widgets/LogDialog.py:188 msgid "of" msgstr "" #: lib/pychess/widgets/newGameDialog.py:84 #: lib/pychess/widgets/newGameDialog.py:85 msgid "Human Being" msgstr "Inimene" #: lib/pychess/widgets/newGameDialog.py:155 msgid "Rapid" msgstr "" #: lib/pychess/widgets/newGameDialog.py:224 msgid "Minutes:" msgstr "Minutid:" #: lib/pychess/widgets/newGameDialog.py:228 msgid "Gain:" msgstr "Teenitud:" #: lib/pychess/widgets/newGameDialog.py:241 #, python-format msgid "%(name)s %(minutes)d min + %(gain)d sec/move" msgstr "" #: lib/pychess/widgets/newGameDialog.py:244 #, python-format msgid "%(name)s %(minutes)d min %(gain)d sec/move" msgstr "" #: lib/pychess/widgets/newGameDialog.py:247 #, python-format msgid "%(name)s %(minutes)d min" msgstr "" #: lib/pychess/widgets/newGameDialog.py:265 msgid "Odds" msgstr "" #: lib/pychess/widgets/newGameDialog.py:269 msgid "Asian variants" msgstr "" #: lib/pychess/widgets/newGameDialog.py:301 msgid " chess" msgstr "" #: lib/pychess/widgets/newGameDialog.py:682 msgid "Type or paste PGN game or FEN positions here" msgstr "" #: lib/pychess/widgets/newGameDialog.py:725 msgid "Enter Game" msgstr "Sisene mängu" #: lib/pychess/widgets/preferencesDialog.py:123 msgid "Select book file" msgstr "" #: lib/pychess/widgets/preferencesDialog.py:128 msgid "Opening books" msgstr "" #: lib/pychess/widgets/preferencesDialog.py:156 msgid "Select Gaviota TB path" msgstr "" #: lib/pychess/widgets/preferencesDialog.py:331 msgid "Open Sound File" msgstr "Ava helifail" #: lib/pychess/widgets/preferencesDialog.py:341 msgid "Sound files" msgstr "" #: lib/pychess/widgets/preferencesDialog.py:485 msgid "Undescribed panel" msgstr "" #: lib/pychess/widgets/preferencesDialog.py:678 msgid "Select auto save path" msgstr "" #: lib/pychess/widgets/tipOfTheDay.py:51 msgid "" "You can start a new game by Game > New Game, in New Game " "window do you can choose Players, Time Control and Chess " "Variants." msgstr "" #: lib/pychess/widgets/tipOfTheDay.py:52 msgid "" "You can choose from 20 different difficulties to play against the computer." msgstr "" #: lib/pychess/widgets/tipOfTheDay.py:53 msgid "" "Chess Variants are like the pieces of the last line will be placed on the " "board." msgstr "" #: lib/pychess/widgets/tipOfTheDay.py:54 msgid "" "To save a game Game > Save Game As, give the filename and " "choose where you want to be saved. At the bottom choose extension type of " "the file, and Save." msgstr "" #: lib/pychess/widgets/tipOfTheDay.py:55 msgid "" "Do you know that you can call flag when the clock is with you, " "Actions > Call Flag." msgstr "" #: lib/pychess/widgets/tipOfTheDay.py:56 msgid "Pressing Ctrl+Z to offer opponent the possible rollback moves." msgstr "" #: lib/pychess/widgets/tipOfTheDay.py:57 msgid "" "To play on Fullscreen mode, just type F11. Coming back, F11 " "again." msgstr "" #: lib/pychess/widgets/tipOfTheDay.py:58 msgid "Hint mode analyzing your game, enable this type Ctrl+H." msgstr "" #: lib/pychess/widgets/tipOfTheDay.py:59 msgid "" "Spy mode analyzing the oponnent game, enable this type Ctrl+Y." msgstr "" #: lib/pychess/widgets/tipOfTheDay.py:60 msgid "" "You can play chess listening to the sounds of the game, for that, " "Settings > Preferences > Sound tab, enable Use " "sounds in PyChess and choose your preferred sounds." msgstr "" #: lib/pychess/widgets/tipOfTheDay.py:61 msgid "" "Do you know that you can help translate Pychess in your language, " "Help > Translate Pychess." msgstr "" #: lib/pychess/widgets/tipOfTheDay.py:62 msgid "" "Do you know that it is possible to finish a chess game in just 2 turns?" msgstr "" #: lib/pychess/widgets/tipOfTheDay.py:63 msgid "" "Do you know that the number of possible chess games exceeds the number of " "atoms in the Universe?" msgstr "" #: lib/pychess/ic/managers/ChatManager.py:184 msgid "Shout" msgstr "" #: lib/pychess/ic/managers/ChatManager.py:185 msgid "Chess Shout" msgstr "" #: lib/pychess/ic/managers/ChatManager.py:195 #, python-format msgid "Unofficial channel %d" msgstr "" #: lib/pychess/Utils/lutils/LBoard.py:152 #, python-format msgid "" "FEN needs 6 data fields. \n" "\n" "%s" msgstr "" #: lib/pychess/Utils/lutils/LBoard.py:154 #, python-format msgid "" "FEN needs at least 2 data fields in fenstr. \n" "\n" "%s" msgstr "" #: lib/pychess/Utils/lutils/LBoard.py:175 #, python-format msgid "" "Needs 7 slashes in piece placement field. \n" "\n" "%s" msgstr "" #: lib/pychess/Utils/lutils/LBoard.py:178 #, python-format msgid "" "Active color field must be one of w or b. \n" "\n" "%s" msgstr "" #: lib/pychess/Utils/lutils/LBoard.py:189 #, python-format msgid "" "Castling availability field is not legal. \n" "\n" "%s" msgstr "" #: lib/pychess/Utils/lutils/LBoard.py:192 #, python-format msgid "" "En passant cord is not legal. \n" "\n" "%s" msgstr "" #: lib/pychess/Utils/lutils/lmove.py:260 msgid "invalid promoted piece" msgstr "" #: lib/pychess/Utils/lutils/lmove.py:272 msgid "the move needs a piece and a cord" msgstr "" #: lib/pychess/Utils/lutils/lmove.py:306 lib/pychess/Utils/lutils/lmove.py:556 msgid "promotion move without promoted piece is incorrect" msgstr "" #: lib/pychess/Utils/lutils/lmove.py:312 #, python-format msgid "the captured cord (%s) is incorrect" msgstr "" #: lib/pychess/Utils/lutils/lmove.py:323 #, python-format msgid "the end cord (%s) is incorrect" msgstr "" #: lib/pychess/Utils/lutils/strateval.py:24 sidepanel/commentPanel.py:191 #: sidepanel/commentPanel.py:208 msgid "and" msgstr "" #: lib/pychess/Utils/lutils/strateval.py:43 msgid "draws" msgstr "viigistab" #: lib/pychess/Utils/lutils/strateval.py:45 msgid "mates" msgstr "matistab" #: lib/pychess/Utils/lutils/strateval.py:49 msgid "puts opponent in check" msgstr "annab vastasele tule" #: lib/pychess/Utils/lutils/strateval.py:73 msgid "improves king safety" msgstr "parandab kuninga julgeolekut" #: lib/pychess/Utils/lutils/strateval.py:75 msgid "slightly improves king safety" msgstr "parandab pisut kuninga julgeolekut" #: lib/pychess/Utils/lutils/strateval.py:108 msgid "moves a rook to an open file" msgstr "viib vankri avatud liinile" #: lib/pychess/Utils/lutils/strateval.py:109 msgid "moves an rook to a half-open file" msgstr "viib vankri poolavatud liinile" #: lib/pychess/Utils/lutils/strateval.py:119 #: lib/pychess/Utils/lutils/strateval.py:121 #: lib/pychess/Utils/lutils/strateval.py:124 #: lib/pychess/Utils/lutils/strateval.py:126 #, python-format msgid "moves bishop into fianchetto: %s" msgstr "käib odaga fianchetto positsiooni: %s" #: lib/pychess/Utils/lutils/strateval.py:132 #, python-format msgid "promotes a Pawn to a %s" msgstr "ettur lipustub viguriks %s" #: lib/pychess/Utils/lutils/strateval.py:135 msgid "castles" msgstr "vangerdab" #: lib/pychess/Utils/lutils/strateval.py:158 msgid "takes back material" msgstr "võidab materjali tagasi" #: lib/pychess/Utils/lutils/strateval.py:162 #: lib/pychess/Utils/lutils/strateval.py:170 msgid "sacrifies material" msgstr "ohverdab materjali" #: lib/pychess/Utils/lutils/strateval.py:164 msgid "exchanges material" msgstr "vahetab materjali" #: lib/pychess/Utils/lutils/strateval.py:166 msgid "captures material" msgstr "võtab materjali" #: lib/pychess/Utils/lutils/strateval.py:291 #, python-format msgid "rescues a %s" msgstr "" #: lib/pychess/Utils/lutils/strateval.py:294 #, python-format msgid "threatens to win material by %s" msgstr "" #: lib/pychess/Utils/lutils/strateval.py:296 #, python-format msgid "increases the pressure on %s" msgstr "suurendab survet %s" #: lib/pychess/Utils/lutils/strateval.py:298 #, python-format msgid "defends %s" msgstr "kaitseb %s" #: lib/pychess/Utils/lutils/strateval.py:336 #, python-format msgid "pins an enemy %(oppiece)s on the %(piece)s at %(cord)s" msgstr "" #: lib/pychess/Utils/lutils/strateval.py:369 #, python-format msgid "White has a new piece in outpost: %s" msgstr "Valgel on uus vigur eelpostil: %s" #: lib/pychess/Utils/lutils/strateval.py:377 #, python-format msgid "Black has a new piece in outpost: %s" msgstr "Mustall on uus vigur eelpostil: %s" #: lib/pychess/Utils/lutils/strateval.py:416 #, python-format msgid "%(color)s has a new passed pawn on %(cord)s" msgstr "" #: lib/pychess/Utils/lutils/strateval.py:470 msgid "half-open" msgstr "" #: lib/pychess/Utils/lutils/strateval.py:472 #, python-format msgid "in the %(x)s%(y)s file" msgstr "" #: lib/pychess/Utils/lutils/strateval.py:474 #, python-format msgid "in the %(x)s%(y)s files" msgstr "" #: lib/pychess/Utils/lutils/strateval.py:477 #, python-format msgid "%(color)s got a double pawn %(place)s" msgstr "" #: lib/pychess/Utils/lutils/strateval.py:478 #, python-format msgid "%(color)s got new double pawns %(place)s" msgstr "" #: lib/pychess/Utils/lutils/strateval.py:485 #, python-format msgid "%(color)s got an isolated pawn in the %(x)s file" msgid_plural "%(color)s got isolated pawns in the %(x)s files" msgstr[0] "" msgstr[1] "" #: lib/pychess/Utils/lutils/strateval.py:492 #, python-format msgid "%s moves pawns into stonewall formation" msgstr "" #: lib/pychess/Utils/lutils/strateval.py:507 #: lib/pychess/Utils/lutils/strateval.py:514 #, python-format msgid "%s can no longer castle" msgstr "" #: lib/pychess/Utils/lutils/strateval.py:508 #: lib/pychess/Utils/lutils/strateval.py:515 #, python-format msgid "%s can no longer castle in queenside" msgstr "" #: lib/pychess/Utils/lutils/strateval.py:510 #: lib/pychess/Utils/lutils/strateval.py:517 #, python-format msgid "%s can no longer castle in kingside" msgstr "" #: lib/pychess/Utils/lutils/strateval.py:551 #, python-format msgid "%(opcolor)s has a new trapped bishop on %(cord)s" msgstr "" #: lib/pychess/Utils/lutils/strateval.py:573 #, python-format msgid "develops a pawn: %s" msgstr "" #: lib/pychess/Utils/lutils/strateval.py:574 #, python-format msgid "brings a pawn closer to the backrow: %s" msgstr "Toob etturi tagareale lähemale: %s" #: lib/pychess/Utils/lutils/strateval.py:591 #, python-format msgid "brings a %(piece)s closer to enemy king: %(cord)s" msgstr "" #: lib/pychess/Utils/lutils/strateval.py:594 #, python-format msgid "develops a %(piece)s: %(cord)s" msgstr "" #: lib/pychess/Utils/lutils/strateval.py:612 #, python-format msgid "places a %(piece)s more active: %(cord)s" msgstr "" #: lib/pychess/Utils/lutils/strateval.py:638 msgid "White should do pawn storm in right" msgstr "Valge peaks alustama etturite rünnakut paremal" #: lib/pychess/Utils/lutils/strateval.py:640 msgid "Black should do pawn storm in left" msgstr "Must peaks alustama etturite rünnakut vasakul" #: lib/pychess/Utils/lutils/strateval.py:643 msgid "White should do pawn storm in left" msgstr "Valge peaks alustama etturite rünnakut vasakul" #: lib/pychess/Utils/lutils/strateval.py:645 msgid "Black should do pawn storm in right" msgstr "Must peaks alustama etturite rünnakut paremal" #: lib/pychess/Utils/lutils/strateval.py:671 msgid "Black has a rather cramped position" msgstr "Must on üsna surutud seisus" #: lib/pychess/Utils/lutils/strateval.py:673 msgid "Black has a slightly cramped position" msgstr "Must on kergelt surutud seisus" #: lib/pychess/Utils/lutils/strateval.py:675 msgid "White has a rather cramped position" msgstr "Valgel on üsna surutud positsioon" #: lib/pychess/Utils/lutils/strateval.py:677 msgid "White has a slightly cramped position" msgstr "Valgel on pisut surutud positsioon" #: sidepanel/annotationPanel.py:26 msgid "Annotation" msgstr "" #: sidepanel/annotationPanel.py:29 msgid "Annotated game" msgstr "" #: sidepanel/annotationPanel.py:236 msgid "Copy PGN" msgstr "" #: sidepanel/annotationPanel.py:249 msgid "Add start comment" msgstr "" #: sidepanel/annotationPanel.py:254 msgid "Add comment" msgstr "" #: sidepanel/annotationPanel.py:258 sidepanel/annotationPanel.py:316 msgid "Edit comment" msgstr "" #: sidepanel/annotationPanel.py:269 msgid "Forced move" msgstr "" #: sidepanel/annotationPanel.py:274 msgid "Add move symbol" msgstr "" #: sidepanel/annotationPanel.py:280 msgid "Unclear position" msgstr "" #: sidepanel/annotationPanel.py:289 msgid "Zugzwang" msgstr "" #: sidepanel/annotationPanel.py:290 msgid "Development adv." msgstr "" #: sidepanel/annotationPanel.py:291 msgid "Initiative" msgstr "" #: sidepanel/annotationPanel.py:292 msgid "With attack" msgstr "" #: sidepanel/annotationPanel.py:293 msgid "Compensation" msgstr "" #: sidepanel/annotationPanel.py:294 msgid "Counterplay" msgstr "" #: sidepanel/annotationPanel.py:295 msgid "Time pressure" msgstr "" #: sidepanel/annotationPanel.py:300 msgid "Add evaluation symbol" msgstr "" #: sidepanel/annotationPanel.py:304 msgid "Remove symbols" msgstr "" #: sidepanel/annotationPanel.py:911 #, python-format msgid "round %s" msgstr "" #: sidepanel/bookPanel.py:21 msgid "Hints" msgstr "" #: sidepanel/bookPanel.py:25 msgid "" "The hint panel will provide computer advice during each stage of the game" msgstr "" #: sidepanel/bookPanel.py:27 msgid "Official PyChess panel." msgstr "" #: sidepanel/bookPanel.py:87 msgid "Opening Book" msgstr "Avanguraamat" #: sidepanel/bookPanel.py:88 msgid "" "The opening book will try to inspire you during the opening phase of the " "game by showing you common moves made by chess masters" msgstr "" #: sidepanel/bookPanel.py:139 #, python-format msgid "Analysis by %s" msgstr "" #: sidepanel/bookPanel.py:140 #, python-format msgid "" "%s will try to predict which move is best and which side has the advantage" msgstr "" #: sidepanel/bookPanel.py:142 #, python-format msgid "Threat analysis by %s" msgstr "" #: sidepanel/bookPanel.py:143 #, python-format msgid "" "%s will identify what threats would exist if it were your opponent's turn to" " move" msgstr "" #: sidepanel/bookPanel.py:159 sidepanel/bookPanel.py:269 msgid "Calculating..." msgstr "" #: sidepanel/bookPanel.py:300 msgid "" "Engine scores are in units of pawns, from White's point of view. Double " "clicking on analysis lines you can insert them into Annotation panel as " "variations." msgstr "" #: sidepanel/bookPanel.py:302 msgid "" "Adding suggestions can help you find ideas, but slows down the computer's " "analysis." msgstr "" #: sidepanel/bookPanel.py:311 msgid "Endgame Table" msgstr "" #: sidepanel/bookPanel.py:315 msgid "" "The endgame table will show exact analysis when there are few pieces on the " "board." msgstr "" #: sidepanel/bookPanel.py:364 sidepanel/bookPanel.py:367 #, python-format msgid "Mate in %d" msgstr "" #: sidepanel/bookPanel.py:554 msgid "" "In this position,\n" "there is no legal move." msgstr "" #: sidepanel/chatPanel.py:21 msgid "" "The chat panel lets you communicate with your opponent during the game, " "assuming he or she is interested" msgstr "" #: sidepanel/commentPanel.py:16 msgid "Comments" msgstr "Kommentaarid" #: sidepanel/commentPanel.py:20 msgid "The comments panel will try to analyze and explain the moves played" msgstr "" #: sidepanel/commentPanel.py:121 msgid "Initial position" msgstr "Algseis" #: sidepanel/commentPanel.py:254 #, python-format msgid "%(color)s moves a %(piece)s to %(cord)s" msgstr "" #: sidepanel/engineOutputPanel.py:15 msgid "Engines" msgstr "" #: sidepanel/engineOutputPanel.py:20 msgid "" "The engine output panel shows the thinking output of chess engines (computer" " players) during a game" msgstr "" #: sidepanel/engineOutputPanel.py:44 msgid "No chess engines (computer players) are participating in this game." msgstr "" #: sidepanel/historyPanel.py:10 msgid "Move History" msgstr "Käikude ajalugu" #: sidepanel/historyPanel.py:13 msgid "" "The moves sheet keeps track of the players' moves and lets you navigate " "through the game history" msgstr "" #: sidepanel/scorePanel.py:15 msgid "Score" msgstr "Tulemus" #: sidepanel/scorePanel.py:19 msgid "" "The score panel tries to evaluate the positions and shows you a graph of the" " game progress" msgstr "" pychess-0.12.2/lang/et/LC_MESSAGES/pychess.mo0000644000175000017470000002502212653231273020706 0ustar tamasusers00000000000000T   !>`'~ . =QJ&7*(&Oar  $#% "/#Rv |  %0 7CIZjy        %',5>E U ak {  #     '5-cTu27<PX `n$#%"#uA ! !,2%8 ^ i t     ' 2 :EK"^+! $EUm _l!;(#?cxP"6@3w+  )68>B"Gj..  ' , G T ` o       !!6! J!T!\!d!f! l! v!!!!!!!!! ! ! "" %" 1" ;" H"U"W"\" n" y"!"""~### ########## $ $ +$ 6$+@$ l$Yy$$$$%'%+%2%I% R%]% s%%!%"%"%/&/2&lb&&"&& '3' <' G'S'Z'0_'' ' '' '''''' ((6(#=(a( r( |( ((!(!(())!)<)&[)))))"))by]B  KR"3e=lUk N54%?Y\{_q;GHO0vFiPXZ.}#8$,I7gt9Do1/mr:!2nCJx-s`*a+Ej<fp|zTu)@S~^ L(Qdh& VW'w6[A>Mc%s returns an error%s was declined by your opponent%s was withdrawn by your opponent'%s' is not a registered namePromote pawn to what?AnalyzingAnimationDate of gameEnter Game NotationGame dataNewsPlay Sound When...PlayersToolsA file named '%s' already exists. Would you like to replace it?Engine, %s, has diedPyChess was not able to save the gameUnable to save file '%s'Unknown file type '%s'A player _checks:A player _moves:A player c_aptures:About ChessAll Chess FilesAll FilesBBeepBishopBlackBlack has a new piece in outpost: %sBlack has a rather cramped positionBlack has a slightly cramped positionBlack should do pawn storm in leftBlack should do pawn storm in rightBlitzChess GameChess PositionClockClose _without SavingCommentsConnectingConnection ErrorConnection was closedCould not save the fileDetect type automaticallyEmailEnter GameEvent:File existsGain:Game informationGame is _drawn:Game is _lost:Game is _set-up:Game is _won:GuestHuman BeingInitial positionKKnightLightningLoaded gameLocal EventLocal SiteLog on ErrorLog on as _GuestMinutes:Move HistoryNNameNew GameNo soundNormalObserved _ends:Offer _DrawOpen GameOpen Sound FileOpening BookPPingPlayer _RatingPreferencesPromotionPyChess - Connect to Internet ChessPyChess - Internet Chess: FICSPyChess has lost connection to the engine, probably because it has died. You can try to start a new game with the engine, or try to play against another one.QQueenRRatedRatingRookRound:Save GameSave Game _AsSaved gameScoreSelect sound file...Send seekSimple Chess PositionSite:Sp_y modeSpentThe connection was broken - got "end of file" messageThe error was: %sThe file already exists in '%s'. If you replace it, its content will be overwritten.The game ended in a drawThe game has been abortedThe game has been adjournedThe game has been killedTimeTypeUnable to accept %sUnknownUnratedUse _analyzerUse _inverted analyzerWhiteWhite has a new piece in outpost: %sWhite has a rather cramped positionWhite has a slightly cramped positionWhite should do pawn storm in leftWhite should do pawn storm in rightYou don't have the necessary rights to save the file. Please ensure that you have given the right path and try again.You sent a draw offerYour opponent asks you to hurry!Your opponent is not out of time._Accept_Actions_Call Flag_Game_Help_Hide tabs when only one game is open_Hint mode_Load Game_Log Viewer_Name:_New Game_Observed moves:_Password:_Replace_Rotate Board_Save Game_Start Game_Use sounds in PyChess_Viewbrings a pawn closer to the backrow: %scaptures materialcastlesdefends %sdrawsexchanges materialhttp://en.wikipedia.org/wiki/Chesshttp://en.wikipedia.org/wiki/Rules_of_chessimproves king safetyincreases the pressure on %smatesmoves a rook to an open filemoves an rook to a half-open filemoves bishop into fianchetto: %sonline in totalpromotes a Pawn to a %sputs opponent in checksacrifies materialslightly improves king safetytakes back materialProject-Id-Version: pychess Report-Msgid-Bugs-To: POT-Creation-Date: 2016-01-27 13:28+0100 PO-Revision-Date: 2016-01-28 08:56+0000 Last-Translator: slav0nic Language-Team: Estonian (http://www.transifex.com/gbtami/pychess/language/et/) MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Language: et Plural-Forms: nplurals=2; plural=(n != 1); %s annab veaSinu vastane keeldus %s%s võeti su vastase poolt tagasi'%s' ei ole registreeritud nimiMilliseks malendiks muuta lipustuv ettur?AnalüüsinAnimatsioonMängu kuupäevSisesta mängu üleskirjutusMängu andmedUudisedMängi helilõik kui ...MängijadTööriistadFaili nimega '%s' on juba olemas. Kas sa soovid seda asendada?Mootor, %s, suriPyChess ei suutnud mängu salvestadaFaili '%s' ei õnnestu salvestadaTundmatu failitüüp '%s'Mängija annab _tuleMängija _käibMängija lööb:Male kohtaKõik malefailidKõik failidOPiiksOdaMustMustall on uus vigur eelpostil: %sMust on üsna surutud seisusMust on kergelt surutud seisusMust peaks alustama etturite rünnakut vasakulMust peaks alustama etturite rünnakut paremalKiirmaleMalemängMale positsioonKellSulge _ilma salvestamisetaKommentaaridÜhendumineÜhenduse vigaÜhendus suletiFaili ei saa salvestadaMäära tüüp automaatseltE-postSisene mänguSündmus:Fail on juba olemasTeenitud:MänguinfoMäng on _viigisMäng on _kaotatudMäng on üles _seatudMäng on _võidetudKülalineInimeneAlgseisKRatsuVälkmaleLaetud mängKohalik sündmusKohalik lehekülgViga sisselogimiselLogi sisse _KülalisenaMinutid:Käikude ajaluguRNimiUus mängHeli puudubTavalineVaadeldav _lõppebPaku _viikiAva mängAva helifailAvanguraamatEPingMängija _reitingEelistusedLipustuminePyChess - Mängi malet InternetisPyChess - Male Internetis: FICSPyChess on kaotanud sideme mootoriga. Tõenäoliselt seetõttu, et see on surnud. Sa võid proovida alustada uut mängu selle mootoriga või siis proovida mängida mõne teise vastu.LLippVReitingugaReitingVankerRaund:Salvesta mängSalvesta mäng _kuiSalvestatud mängTulemusVali helifail...Saada mänguotsingLihtne male positsioonLehekülg:_Nuhi moodKulutanudÜhendus katkes - sain "faililõpu" sõnumiViga oli: %sFail eksisteerib juba kataloogis '%s' Kui sa ta asendad siis kirjutatakse tema sisu üle.Mäng lõppes viigigaMäng on katkestatudMäng on edasi lükatudMäng on tapetudAegTüüp%s ei saa vastu võttaTundmatuReitingutaKasuta _analüüsijatKasuta _pööratud analüüsijatValgeValgel on uus vigur eelpostil: %sValgel on üsna surutud positsioonValgel on pisut surutud positsioonValge peaks alustama etturite rünnakut vasakulValge peaks alustama etturite rünnakut paremalSul pole faili salvestamiseks vajalikke õigusi. Palun veendu, et sa andsid õige teekonna ja proovi uuesti.Sa saatsid viigipakkumiseSinu vastane palub sul kiirustada!Sinu vastane pole ületanud ajalimiiti_Nõustu_Tegevused_Kutse Lipp_Mäng_Abi_Peida vahelehed, kui ainult üks mäng on lahtiNõustamismood_Lae mäng_Logi vaataja_Nimi:_Uus mäng_Vaadeldud käigud_Parool:_Asenda_Pööra lauda_Salvesta mäng_Alusta mängu_Kasuta helisid PyChessis_VaadeToob etturi tagareale lähemale: %svõtab materjalivangerdabkaitseb %sviigistabvahetab materjalihttp://et.wikipedia.org/wiki/Malehttp://et.wikipedia.org/wiki/Maleparandab kuninga julgeolekutsuurendab survet %smatistabviib vankri avatud liinileviib vankri poolavatud liinilekäib odaga fianchetto positsiooni: %skokku ühendatudettur lipustub viguriks %sannab vastasele tuleohverdab materjaliparandab pisut kuninga julgeolekutvõidab materjali tagasipychess-0.12.2/lang/jv/0000755000175000017470000000000012653231274015115 5ustar tamasusers00000000000000pychess-0.12.2/lang/jv/LC_MESSAGES/0000755000175000017470000000000012653231274016702 5ustar tamasusers00000000000000pychess-0.12.2/lang/jv/LC_MESSAGES/pychess.po0000644000175000017470000024201312653216206020720 0ustar tamasusers00000000000000# SOME DESCRIPTIVE TITLE. # Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER # This file is distributed under the same license as the pychess package. # # Translators: # FIRST AUTHOR , 2009 msgid "" msgstr "" "Project-Id-Version: pychess\n" "Report-Msgid-Bugs-To: \n" "POT-Creation-Date: 2016-01-27 13:28+0100\n" "PO-Revision-Date: 2016-01-28 08:56+0000\n" "Last-Translator: slav0nic \n" "Language-Team: Javanese (http://www.transifex.com/gbtami/pychess/language/jv/)\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" "Language: jv\n" "Plural-Forms: nplurals=2; plural=(n != 1);\n" # "Plural-Forms: nplurals=INTEGER; plural=EXPRESSION;\n" #: glade/analyze_game.glade:22 msgid "Analyze game" msgstr "" #: glade/analyze_game.glade:87 msgid "Use analyzer:" msgstr "" #: glade/analyze_game.glade:122 glade/PyChess.glade:2054 msgid "Maximum analysis time in seconds:" msgstr "" #: glade/analyze_game.glade:163 msgid "" "If the analyzer finds a move where the evaluation difference (the difference" " between the evaluation for the move it thinks is the best move and the " "evaluation for the move made in the game) exceeds this value, it will add an" " annotation for that move (consisting of the engine's Principal Variation " "for the move) to the Annotation panel" msgstr "" #: glade/analyze_game.glade:164 msgid "Variation annotation creation threshold in centipawns:" msgstr "" #: glade/analyze_game.glade:198 msgid "Analyze from current position" msgstr "" #: glade/analyze_game.glade:214 msgid "Add threatening variation lines " msgstr "" #: glade/analyze_game.glade:229 glade/PyChess.glade:1459 msgid "Colorize analyzed moves" msgstr "" #: glade/analyze_game.glade:244 glade/PyChess.glade:1495 msgid "Show evaluation values" msgstr "" #: glade/discovererDialog.glade:18 msgid "PyChess is discovering your engines. Please wait." msgstr "" #: glade/discovererDialog.glade:77 msgid "PyChess.py:" msgstr "" #: glade/discovererDialog.glade:89 msgid "ShredderLinuxChess:" msgstr "" #: glade/discovererDialog.glade:101 msgid "gnuchess:" msgstr "" #: glade/fics_logon.glade:7 msgid "PyChess - Connect to Internet Chess" msgstr "PyChess - Nggabung ning Internet Chess" #: glade/fics_logon.glade:47 msgid "Connect to the Free Online Chess Server" msgstr "" #: glade/fics_logon.glade:129 glade/taskers.glade:394 msgid "_Password:" msgstr "_Pasword" #: glade/fics_logon.glade:143 msgid "_Name:" msgstr "_Nomo" #: glade/fics_logon.glade:191 msgid "Log on as _Guest" msgstr "" #: glade/fics_logon.glade:227 msgid "Host:" msgstr "" #: glade/fics_logon.glade:259 msgid "Po_rts:" msgstr "" #: glade/fics_logon.glade:271 msgid "Auto login on startup" msgstr "" #: glade/fics_logon.glade:385 msgid "S_ign up" msgstr "" #: glade/fics_lounge.glade:35 msgid "Challenge: " msgstr "" #: glade/fics_lounge.glade:97 msgid "Send Challenge" msgstr "" #: glade/fics_lounge.glade:133 msgid "Challenge:" msgstr "" #: glade/fics_lounge.glade:327 glade/fics_lounge.glade:2078 msgid "Lightning:" msgstr "" #: glade/fics_lounge.glade:351 glade/fics_lounge.glade:2102 msgid "Standard:" msgstr "" #: glade/fics_lounge.glade:375 glade/fics_lounge.glade:2126 msgid "Blitz:" msgstr "" #: glade/fics_lounge.glade:400 msgid "2 min, Fischer Random, Black" msgstr "" #: glade/fics_lounge.glade:422 msgid "10 min + 6 sec/move, White" msgstr "" #: glade/fics_lounge.glade:444 msgid "5 min" msgstr "" #: glade/fics_lounge.glade:480 msgid "Edit Seek" msgstr "" #: glade/fics_lounge.glade:584 lib/pychess/ic/ICLounge.py:2208 #: lib/pychess/ic/__init__.py:101 lib/pychess/Utils/GameModel.py:206 msgid "Untimed" msgstr "" #: glade/fics_lounge.glade:637 msgid "Minutes: " msgstr "" #: glade/fics_lounge.glade:665 msgid " Gain: " msgstr "" #: glade/fics_lounge.glade:703 msgid "Time control: " msgstr "" #: glade/fics_lounge.glade:716 lib/pychess/ic/FICSObjects.py:56 #: lib/pychess/ic/ICLounge.py:1137 lib/pychess/ic/ICLounge.py:2208 #: lib/pychess/ic/__init__.py:99 msgid "Standard" msgstr "" #: glade/fics_lounge.glade:757 glade/newInOut.glade:633 msgid "Time Control" msgstr "" #: glade/fics_lounge.glade:814 glade/fics_lounge.glade:1346 msgid "Don't care" msgstr "" #: glade/fics_lounge.glade:879 msgid "Your strength: " msgstr "" #: glade/fics_lounge.glade:921 msgid "(Blitz)" msgstr "" #: glade/fics_lounge.glade:951 msgid "Opponent's strength: " msgstr "" #: glade/fics_lounge.glade:1055 msgid "" "When this button is in the \"locked\" state, the relationship\n" "between \"Opponent's strength\" and \"Your strength\" will be\n" "preserved when \n" "a) your rating for the type of game sought has changed\n" "b) you change the variant or the time control" msgstr "" #: glade/fics_lounge.glade:1095 msgid "Center:" msgstr "" #: glade/fics_lounge.glade:1134 msgid "1200" msgstr "" #: glade/fics_lounge.glade:1188 msgid "Tolerance:" msgstr "" #: glade/fics_lounge.glade:1243 lib/pychess/ic/ICLounge.py:2452 msgid "Hide" msgstr "" #: glade/fics_lounge.glade:1289 msgid "Opponent Strength" msgstr "" #: glade/fics_lounge.glade:1386 lib/pychess/Database/gamelist.py:40 #: lib/pychess/ic/ICLounge.py:1357 lib/pychess/ic/ICLounge.py:1557 #: lib/pychess/ic/ICLounge.py:2108 lib/pychess/Utils/repr.py:10 #: lib/pychess/widgets/ChessClock.py:40 #: lib/pychess/widgets/TaskerManager.py:153 msgid "White" msgstr "" #: glade/fics_lounge.glade:1414 lib/pychess/Database/gamelist.py:40 #: lib/pychess/ic/ICLounge.py:1358 lib/pychess/ic/ICLounge.py:1558 #: lib/pychess/ic/ICLounge.py:2110 lib/pychess/Utils/repr.py:10 #: lib/pychess/widgets/ChessClock.py:40 #: lib/pychess/widgets/TaskerManager.py:154 msgid "Black" msgstr "" #: glade/fics_lounge.glade:1453 msgid "Your Color" msgstr "" #: glade/fics_lounge.glade:1512 msgid "Play normal chess rules" msgstr "" #: glade/fics_lounge.glade:1552 msgid "Play" msgstr "" #: glade/fics_lounge.glade:1618 glade/newInOut.glade:833 msgid "Chess Variant" msgstr "" #: glade/fics_lounge.glade:1676 msgid "Rated game" msgstr "" #: glade/fics_lounge.glade:1692 msgid "Manually accept opponent" msgstr "" #: glade/fics_lounge.glade:1722 msgid "Options" msgstr "" #: glade/fics_lounge.glade:1750 msgid "PyChess - Internet Chess: FICS" msgstr "PyChess - Internet Chess: FICS" #: glade/fics_lounge.glade:1823 msgid "_Clear Seeks" msgstr "" #: glade/fics_lounge.glade:1847 msgid "_Accept" msgstr "T_Ampa" #: glade/fics_lounge.glade:1871 msgid "_Decline" msgstr "" #: glade/fics_lounge.glade:2151 msgid "2 min, Fischer Random, 1800↓, Black" msgstr "" #: glade/fics_lounge.glade:2172 msgid "10 min + 6 sec/move, 1400↑, White" msgstr "" #: glade/fics_lounge.glade:2193 msgid "5 min, 1200-1800, Manual" msgstr "" #: glade/fics_lounge.glade:2247 msgid "Send all seeks" msgstr "" #: glade/fics_lounge.glade:2301 msgid "Send seek" msgstr "" #: glade/fics_lounge.glade:2337 msgid "Create Seek" msgstr "" #: glade/fics_lounge.glade:2353 msgid "_Seeks / Challenges" msgstr "" #: glade/fics_lounge.glade:2374 lib/pychess/ic/ICLounge.py:472 #: lib/pychess/ic/ICLounge.py:670 lib/pychess/ic/ICLounge.py:1357 #: lib/pychess/ic/ICLounge.py:1358 msgid "Rating" msgstr "Rating" #: glade/fics_lounge.glade:2399 msgid "Time" msgstr "Wektu" #: glade/fics_lounge.glade:2419 msgid "Seek _Graph" msgstr "" #: glade/fics_lounge.glade:2444 msgid "0 Players Ready" msgstr "" #: glade/fics_lounge.glade:2496 msgid "Challenge" msgstr "" #: glade/fics_lounge.glade:2549 glade/fics_lounge.glade:2735 msgid "Observe" msgstr "" #: glade/fics_lounge.glade:2602 msgid "Start Private Chat" msgstr "" #: glade/fics_lounge.glade:2659 msgid "_Player List" msgstr "" #: glade/fics_lounge.glade:2792 msgid "_Game List" msgstr "" #: glade/fics_lounge.glade:2847 msgid "_My games" msgstr "" #: glade/fics_lounge.glade:2904 glade/PyChess.glade:841 msgid "Offer _Resume" msgstr "" #: glade/fics_lounge.glade:2962 glade/PyChess.glade:880 msgid "R_esign" msgstr "" #: glade/fics_lounge.glade:3006 glade/PyChess.glade:820 msgid "Offer _Draw" msgstr "Tawani _Draw" #: glade/fics_lounge.glade:3050 msgid "Offer A_bort" msgstr "" #: glade/fics_lounge.glade:3107 msgid "Pre_view" msgstr "" #: glade/fics_lounge.glade:3151 msgid "Examine" msgstr "" #: glade/fics_lounge.glade:3208 msgid "_Archived" msgstr "" #: glade/fics_lounge.glade:3313 msgid "News" msgstr "Warta" #: glade/fics_lounge.glade:3345 msgid "Show Console" msgstr "" #: glade/fics_lounge.glade:3359 msgid "Show _Chat" msgstr "" #: glade/fics_lounge.glade:3373 msgid "_Log Off" msgstr "" #: glade/fics_lounge.glade:3393 msgid "Tools" msgstr "" #: glade/fics_lounge.glade:3428 msgid "Asymmetric Random " msgstr "" #: glade/findbar.glade:6 msgid "window1" msgstr "" #: glade/findbar.glade:21 msgid "0 of 0" msgstr "" #: glade/findbar.glade:66 msgid "Search:" msgstr "" #: glade/findbar.glade:134 msgid "_Previous" msgstr "" #: glade/findbar.glade:192 msgid "_Next" msgstr "" #: glade/newInOut.glade:45 lib/pychess/widgets/newGameDialog.py:445 msgid "New Game" msgstr "Gim Anyar" #: glade/newInOut.glade:108 msgid "_Start Game" msgstr "" #: glade/newInOut.glade:130 msgid "Copy FEN" msgstr "" #: glade/newInOut.glade:143 msgid "Clear" msgstr "" #: glade/newInOut.glade:156 msgid "Paste FEN" msgstr "" #: glade/newInOut.glade:257 msgid "_Black player:" msgstr "" #: glade/newInOut.glade:274 msgid "_White player:" msgstr "" #: glade/newInOut.glade:385 msgid "Players" msgstr "Pemain" #: glade/newInOut.glade:436 msgid "_Untimed" msgstr "" #: glade/newInOut.glade:475 msgid "Blitz: 5 min" msgstr "" #: glade/newInOut.glade:526 msgid "Rapid: 15 min + 10 sec/move" msgstr "" #: glade/newInOut.glade:575 msgid "Normal: 40 min + 15 sec/move" msgstr "" #: glade/newInOut.glade:684 msgid "_Play Normal chess" msgstr "" #: glade/newInOut.glade:724 msgid "Play Fischer Random chess" msgstr "" #: glade/newInOut.glade:774 msgid "Play Losers chess" msgstr "" #: glade/newInOut.glade:919 msgid "Open Game" msgstr "" #: glade/newInOut.glade:1162 msgid "Initial Position" msgstr "" #: glade/newInOut.glade:1219 msgid "Enter Game Notation" msgstr "" #: glade/newInOut.glade:1314 msgid "Halfmove clock" msgstr "" #: glade/newInOut.glade:1327 msgid "En passant line" msgstr "" #: glade/newInOut.glade:1339 msgid "Side to move" msgstr "" #: glade/newInOut.glade:1351 msgid "Move number" msgstr "" #: glade/newInOut.glade:1361 msgid "Black O-O" msgstr "" #: glade/newInOut.glade:1375 msgid "Black O-O-O" msgstr "" #: glade/newInOut.glade:1389 msgid "White O-O-O" msgstr "" #: glade/newInOut.glade:1403 msgid "White O-O" msgstr "" #: glade/promotion.glade:7 msgid "Promotion" msgstr "Promosi" #: glade/promotion.glade:49 lib/pychess/Utils/repr.py:12 msgid "Queen" msgstr "Ratu" #: glade/promotion.glade:95 lib/pychess/Utils/repr.py:12 msgid "Rook" msgstr "Beteng" #: glade/promotion.glade:141 lib/pychess/Utils/repr.py:12 msgid "Bishop" msgstr "Menteri" #: glade/promotion.glade:187 lib/pychess/Utils/repr.py:12 msgid "Knight" msgstr "Jaran" #: glade/promotion.glade:233 lib/pychess/Utils/repr.py:12 msgid "King" msgstr "" #: glade/promotion.glade:265 msgid "Promote pawn to what?" msgstr "Promosi pion dadi apa?" #: glade/PyChess.glade:9 msgid "Chess client" msgstr "" #: glade/PyChess.glade:44 msgid "Game information" msgstr "Informasi Gim" #: glade/PyChess.glade:164 msgid "Event:" msgstr "Even:" #: glade/PyChess.glade:178 msgid "Site:" msgstr "Situs:" #: glade/PyChess.glade:204 msgid "Round:" msgstr "" #: glade/PyChess.glade:237 msgid "White:" msgstr "" #: glade/PyChess.glade:249 msgid "Black:" msgstr "" #: glade/PyChess.glade:302 msgid "Game data" msgstr "Data gim" #: glade/PyChess.glade:357 msgid "Date of game" msgstr "Tanggal main" #: glade/PyChess.glade:495 msgid "_Game" msgstr "_Gim" #: glade/PyChess.glade:502 msgid "_New Game" msgstr "Gim A_Nyar" #: glade/PyChess.glade:515 msgid "Play _Internet Chess" msgstr "" #: glade/PyChess.glade:534 msgid "_Load Game" msgstr "" #: glade/PyChess.glade:550 msgid "Load _Recent Game" msgstr "" #: glade/PyChess.glade:558 msgid "Open _Database" msgstr "" #: glade/PyChess.glade:569 lib/pychess/widgets/newGameDialog.py:615 msgid "Setup Position" msgstr "" #: glade/PyChess.glade:579 msgid "Enter Game _Notation" msgstr "" #: glade/PyChess.glade:592 msgid "_Save Game" msgstr "_Simpen Gim" #: glade/PyChess.glade:606 msgid "Save Game _As" msgstr "Simpen Gim D_Adi" #: glade/PyChess.glade:624 msgid "Share Game" msgstr "" #: glade/PyChess.glade:630 msgid "_Export Position" msgstr "" #: glade/PyChess.glade:644 msgid "_Analyze Game" msgstr "" #: glade/PyChess.glade:678 msgid "Player _Rating" msgstr "_Rating Pemain" #: glade/PyChess.glade:723 msgid "_Edit" msgstr "" #: glade/PyChess.glade:734 msgid "_Copy PGN" msgstr "" #: glade/PyChess.glade:746 msgid "_Copy FEN" msgstr "" #: glade/PyChess.glade:763 msgid "_Engines" msgstr "" #: glade/PyChess.glade:789 msgid "_Actions" msgstr "_Aksi" #: glade/PyChess.glade:800 msgid "Offer _Abort" msgstr "" #: glade/PyChess.glade:810 msgid "Offer Ad_journment" msgstr "" #: glade/PyChess.glade:831 msgid "Offer _Pause" msgstr "" #: glade/PyChess.glade:847 msgid "Offer _Undo" msgstr "" #: glade/PyChess.glade:870 msgid "_Call Flag" msgstr "" #: glade/PyChess.glade:890 msgid "Ask to _Move" msgstr "" #: glade/PyChess.glade:905 msgid "Auto Call _Flag" msgstr "" #: glade/PyChess.glade:918 msgid "_View" msgstr "" #: glade/PyChess.glade:925 msgid "_Rotate Board" msgstr "" #: glade/PyChess.glade:939 msgid "_Fullscreen" msgstr "" #: glade/PyChess.glade:952 msgid "Leave _Fullscreen" msgstr "" #: glade/PyChess.glade:969 msgid "_Show Sidepanels" msgstr "" #: glade/PyChess.glade:980 msgid "_Log Viewer" msgstr "" #: glade/PyChess.glade:997 msgid "_Hint mode" msgstr "" #: glade/PyChess.glade:1009 msgid "Sp_y mode" msgstr "" #: glade/PyChess.glade:1024 msgid "_Help" msgstr "" #: glade/PyChess.glade:1034 msgid "About Chess" msgstr "" #: glade/PyChess.glade:1043 msgid "How to Play" msgstr "" #: glade/PyChess.glade:1052 msgid "Translate PyChess" msgstr "" #: glade/PyChess.glade:1058 msgid "Tip of the Day" msgstr "" #: glade/PyChess.glade:1153 msgid "Default" msgstr "" #: glade/PyChess.glade:1156 msgid "Knights" msgstr "" #: glade/PyChess.glade:1167 lib/pychess/widgets/preferencesDialog.py:349 msgid "Beep" msgstr "" #: glade/PyChess.glade:1170 lib/pychess/widgets/preferencesDialog.py:350 msgid "Select sound file..." msgstr "" #: glade/PyChess.glade:1173 lib/pychess/widgets/preferencesDialog.py:348 msgid "No sound" msgstr "" #: glade/PyChess.glade:1180 msgid "Preferences" msgstr "Pilihan" #: glade/PyChess.glade:1218 msgid "The displayed name of the first human player, e.g., John." msgstr "" #: glade/PyChess.glade:1230 msgid "Name of _first human player:" msgstr "" #: glade/PyChess.glade:1259 msgid "The displayed name of the guest player, e.g., Mary." msgstr "" #: glade/PyChess.glade:1271 msgid "Name of s_econd human player:" msgstr "" #: glade/PyChess.glade:1307 msgid "_Hide tabs when only one game is open" msgstr "" #: glade/PyChess.glade:1312 msgid "" "If set, this hides the tab in the top of the playing window, when it is not " "needed." msgstr "" #: glade/PyChess.glade:1326 msgid "_Use main app closer [x] to close all games" msgstr "" #: glade/PyChess.glade:1331 msgid "" "If set, clicking on main application window closer first time it closes all " "games." msgstr "" #: glade/PyChess.glade:1345 msgid "Auto _rotate board to current human player" msgstr "" #: glade/PyChess.glade:1350 msgid "" "If set, the board will turn after each move, to show the natural view for " "the current player." msgstr "" #: glade/PyChess.glade:1364 msgid "Auto _promote to queen" msgstr "" #: glade/PyChess.glade:1369 msgid "If set, pawn promotes to queen without promotion dialog selection." msgstr "" #: glade/PyChess.glade:1383 msgid "Face _to Face display mode" msgstr "" #: glade/PyChess.glade:1388 msgid "" "If set, the black pieces will be head down, suitable for playing against " "friends on mobile devices." msgstr "" #: glade/PyChess.glade:1402 msgid "Sho_w cords" msgstr "" #: glade/PyChess.glade:1407 msgid "" "If set, the playing board will display labels and ranks for each chess " "field. These are usable in chess notation." msgstr "" #: glade/PyChess.glade:1421 msgid "Show _captured pieces" msgstr "" #: glade/PyChess.glade:1426 msgid "If set, the captured figurines will be shown next to the board." msgstr "" #: glade/PyChess.glade:1440 msgid "Prefer figures in _notation" msgstr "" #: glade/PyChess.glade:1445 msgid "" "If set, PyChess will use figures to express moved pieces, rather than " "uppercase letters." msgstr "" #: glade/PyChess.glade:1464 msgid "If set, PyChess will colorize suboptimal analyzed moves with red." msgstr "" #: glade/PyChess.glade:1477 msgid "Show elapsed move times" msgstr "" #: glade/PyChess.glade:1482 msgid "If set, the elapsed time that a player used for the move is shown." msgstr "" #: glade/PyChess.glade:1500 msgid "If set, the hint analyzer engine evaluation value is shown." msgstr "" #: glade/PyChess.glade:1526 msgid "General Options" msgstr "" #: glade/PyChess.glade:1560 msgid "F_ull board animation" msgstr "" #: glade/PyChess.glade:1565 msgid "Animate pieces, board rotation and more. Use this on fast machines." msgstr "" #: glade/PyChess.glade:1579 msgid "Only animate _moves" msgstr "" #: glade/PyChess.glade:1584 msgid "Only animate piece moves." msgstr "" #: glade/PyChess.glade:1599 msgid "No _animation" msgstr "" #: glade/PyChess.glade:1604 msgid "Never use animation. Use this on slow machines." msgstr "" #: glade/PyChess.glade:1632 msgid "Animation" msgstr "Animasi" #: glade/PyChess.glade:1651 msgid "_General" msgstr "" #: glade/PyChess.glade:1692 msgid "Use opening _book" msgstr "" #: glade/PyChess.glade:1697 msgid "If set, PyChess will suggest best opening moves on hint panel." msgstr "" #: glade/PyChess.glade:1724 msgid "Polyglot book file:" msgstr "" #: glade/PyChess.glade:1768 msgid "Use _local tablebases" msgstr "" #: glade/PyChess.glade:1773 msgid "" "If set, PyChess will show game results for different moves in positions containing 6 or less pieces.\n" "You can download tablebase files from:\n" "http://www.olympuschess.com/egtb/gaviota/" msgstr "" #: glade/PyChess.glade:1803 msgid "Gaviota TB path:" msgstr "" #: glade/PyChess.glade:1843 msgid "Use _online tablebases" msgstr "" #: glade/PyChess.glade:1848 msgid "" "If set, PyChess will show game results for different moves in positions containing 6 or less pieces.\n" "It will search positions from http://www.k4it.de/" msgstr "" #: glade/PyChess.glade:1870 msgid "Opening, endgame" msgstr "" #: glade/PyChess.glade:1904 msgid "Use _analyzer" msgstr "" #: glade/PyChess.glade:1946 msgid "" "The analyzer will run in the background and analyze the game. This is " "necessary for the hint mode to work" msgstr "" #: glade/PyChess.glade:1978 msgid "Use _inverted analyzer" msgstr "" #: glade/PyChess.glade:2020 msgid "" "The inverse analyzer will analyze the game as if your opponent was to move. " "This is necessary for the spy mode to work" msgstr "" #: glade/PyChess.glade:2096 msgid "Analyzing" msgstr "" #: glade/PyChess.glade:2118 msgid "_Hints" msgstr "" #: glade/PyChess.glade:2263 msgid "Uninstall" msgstr "" #: glade/PyChess.glade:2317 msgid "Ac_tive" msgstr "" #: glade/PyChess.glade:2367 msgid "Installed Sidepanels" msgstr "" #: glade/PyChess.glade:2382 msgid "Side_panels" msgstr "" #: glade/PyChess.glade:2440 msgid "Light Squares :" msgstr "" #: glade/PyChess.glade:2479 msgid "Dark Squares :" msgstr "" #: glade/PyChess.glade:2515 msgid "Reset Default Colours" msgstr "" #: glade/PyChess.glade:2551 msgid "Board Colours" msgstr "" #: glade/PyChess.glade:2610 msgid "Chess Sets" msgstr "" #: glade/PyChess.glade:2634 msgid "Themes" msgstr "" #: glade/PyChess.glade:2659 msgid "_Use sounds in PyChess" msgstr "" #: glade/PyChess.glade:2982 msgid "A player _checks:" msgstr "" #: glade/PyChess.glade:2997 msgid "A player _moves:" msgstr "" #: glade/PyChess.glade:3010 msgid "Game is _drawn:" msgstr "" #: glade/PyChess.glade:3025 msgid "Game is _lost:" msgstr "" #: glade/PyChess.glade:3040 msgid "Game is _won:" msgstr "" #: glade/PyChess.glade:3055 msgid "A player c_aptures:" msgstr "" #: glade/PyChess.glade:3084 msgid "Game is _set-up:" msgstr "" #: glade/PyChess.glade:3136 msgid "_Observed moves:" msgstr "" #: glade/PyChess.glade:3151 msgid "Observed _ends:" msgstr "" #: glade/PyChess.glade:3265 msgid "Short on _time:" msgstr "" #: glade/PyChess.glade:3317 msgid "_Invalid move:" msgstr "" #: glade/PyChess.glade:3369 msgid "Activate alarm when _remaining sec is:" msgstr "" #: glade/PyChess.glade:3416 msgid "Play Sound When..." msgstr "Mainke suara yen..." #: glade/PyChess.glade:3438 msgid "_Sounds" msgstr "" #: glade/PyChess.glade:3463 msgid "_Auto save finished games" msgstr "" #: glade/PyChess.glade:3497 msgid "Save files to:" msgstr "" #: glade/PyChess.glade:3525 msgid "Use name format:" msgstr "" #: glade/PyChess.glade:3569 msgid "Names: #n1, #n2" msgstr "" #: glade/PyChess.glade:3582 msgid "Year, month, day: #y, #m, #d" msgstr "" #: glade/PyChess.glade:3619 msgid "Save elapsed move _times" msgstr "" #: glade/PyChess.glade:3644 msgid "Save analyzing engine _evaluation values" msgstr "" #: glade/PyChess.glade:3669 msgid "Save _own games only" msgstr "" #: glade/PyChess.glade:3698 msgid "Save" msgstr "" #: glade/PyChess.glade:3728 msgid "uci" msgstr "" #: glade/PyChess.glade:3731 msgid "xboard" msgstr "" #: glade/PyChess.glade:3739 msgid "Manage engines" msgstr "" #: glade/PyChess.glade:3837 msgid "Command:" msgstr "" #: glade/PyChess.glade:3851 msgid "Protocol:" msgstr "" #: glade/PyChess.glade:3865 msgid "Parameters:" msgstr "" #: glade/PyChess.glade:3878 msgid "Command line parameters needed by the engine." msgstr "" #: glade/PyChess.glade:3903 msgid "" "Engines use uci or xboard communication protocol to talk to the GUI.\n" "If it can use both you can set here which one you like." msgstr "" #: glade/PyChess.glade:3929 msgid "Working directory:" msgstr "" #: glade/PyChess.glade:3942 msgid "The directory where the engine will be started from." msgstr "" #: glade/saveGamesDialog.glade:7 msgid "Quit PyChess" msgstr "" #: glade/saveGamesDialog.glade:24 lib/pychess/widgets/ionest.py:424 msgid "Close _without Saving" msgstr "" #: glade/saveGamesDialog.glade:83 msgid "_Save %d documents" msgstr "" #: glade/saveGamesDialog.glade:141 msgid "" "There are %d games with unsaved moves. Save changes before " "closing?" msgstr "" #: glade/saveGamesDialog.glade:161 msgid "Select the games you want to save:" msgstr "" #: glade/saveGamesDialog.glade:204 msgid "If you don't save, new changes to your games will be permanently lost." msgstr "" #: glade/taskers.glade:126 msgid "_Opponent:" msgstr "" #: glade/taskers.glade:154 msgid "_Your Color:" msgstr "" #: glade/taskers.glade:219 msgid "_Start Game" msgstr "" #: glade/taskers.glade:338 msgid "Log on as G_uest" msgstr "" #: glade/taskers.glade:410 msgid "Ha_ndle:" msgstr "" #: glade/taskers.glade:469 msgid "_Connect to server" msgstr "" #: glade/tipoftheday.glade:7 msgid "Tip Of The day" msgstr "" #: glade/tipoftheday.glade:62 msgid "Show tips at startup" msgstr "" #: lib/pychess/Main.py:302 msgid "http://en.wikipedia.org/wiki/Chess" msgstr "http://en.wikipedia.org/wiki/Chess" #: lib/pychess/Main.py:305 msgid "http://en.wikipedia.org/wiki/Rules_of_chess" msgstr "http://en.wikipedia.org/wiki/Rules_of_chess" #: lib/pychess/Main.py:370 lib/pychess/widgets/gamenanny.py:80 msgid "Welcome" msgstr "" #: lib/pychess/Database/gamelist.py:40 msgid "Id" msgstr "" #: lib/pychess/Database/gamelist.py:40 msgid "W Elo" msgstr "" #: lib/pychess/Database/gamelist.py:40 msgid "B Elo" msgstr "" #: lib/pychess/Database/gamelist.py:41 msgid "Result" msgstr "" #: lib/pychess/Database/gamelist.py:41 msgid "Event" msgstr "" #: lib/pychess/Database/gamelist.py:41 msgid "Site" msgstr "" #: lib/pychess/Database/gamelist.py:41 msgid "Round" msgstr "" #: lib/pychess/Database/gamelist.py:41 msgid "Date" msgstr "" #: lib/pychess/Database/gamelist.py:41 msgid "ECO" msgstr "" #: lib/pychess/Database/gamelist.py:62 msgid "PyChess Game Database" msgstr "" #: lib/pychess/Database/PgnImport.py:188 #, python-format msgid "The game #%s can't be loaded, because of an error parsing FEN" msgstr "" #: lib/pychess/ic/FICSConnection.py:139 msgid "The connection was broken - got \"end of file\" message" msgstr "" #: lib/pychess/ic/FICSConnection.py:140 #, python-format msgid "'%s' is not a registered name" msgstr "" #: lib/pychess/ic/FICSConnection.py:141 msgid "" "The entered password was invalid.\n" "If you forgot your password, go to http://www.freechess.org/password to request a new one over email." msgstr "" #: lib/pychess/ic/FICSConnection.py:145 #, python-format msgid "Sorry '%s' is already logged in" msgstr "" #: lib/pychess/ic/FICSConnection.py:146 #, python-format msgid "'%s' is a registered name. If it is yours, type the password." msgstr "" #: lib/pychess/ic/FICSConnection.py:147 msgid "" "Due to abuse problems, guest connections have been prevented.\n" "You can still register on http://www.freechess.org" msgstr "" #: lib/pychess/ic/FICSConnection.py:166 msgid "Connecting to server" msgstr "" #: lib/pychess/ic/FICSConnection.py:181 msgid "Logging on to server" msgstr "" #: lib/pychess/ic/FICSConnection.py:239 msgid "Setting up environment" msgstr "" #: lib/pychess/ic/FICSObjects.py:35 lib/pychess/ic/FICSObjects.py:47 #, python-format msgid "%(player)s is %(status)s" msgstr "" #: lib/pychess/ic/FICSObjects.py:46 msgid "not playing" msgstr "" #: lib/pychess/ic/FICSObjects.py:54 lib/pychess/ic/ICLounge.py:1136 #: lib/pychess/ic/ICLounge.py:2209 lib/pychess/ic/__init__.py:98 #: lib/pychess/widgets/newGameDialog.py:153 msgid "Blitz" msgstr "" #: lib/pychess/ic/FICSObjects.py:58 lib/pychess/ic/ICLounge.py:1137 #: lib/pychess/ic/ICLounge.py:2209 lib/pychess/ic/__init__.py:100 msgid "Lightning" msgstr "" #: lib/pychess/ic/FICSObjects.py:60 lib/pychess/Variants/atomic.py:15 msgid "Atomic" msgstr "" #: lib/pychess/ic/FICSObjects.py:62 lib/pychess/Variants/bughouse.py:9 msgid "Bughouse" msgstr "" #: lib/pychess/ic/FICSObjects.py:64 lib/pychess/Variants/crazyhouse.py:9 msgid "Crazyhouse" msgstr "" #: lib/pychess/ic/FICSObjects.py:66 lib/pychess/Variants/losers.py:9 msgid "Losers" msgstr "" #: lib/pychess/ic/FICSObjects.py:68 lib/pychess/Variants/suicide.py:12 msgid "Suicide" msgstr "" #: lib/pychess/ic/FICSObjects.py:70 lib/pychess/ic/__init__.py:129 msgid "Wild" msgstr "" #: lib/pychess/ic/FICSObjects.py:117 msgid "Online" msgstr "" #: lib/pychess/ic/FICSObjects.py:118 lib/pychess/ic/FICSObjects.py:143 msgid "Offline" msgstr "" #: lib/pychess/ic/FICSObjects.py:133 msgid "Available" msgstr "" #: lib/pychess/ic/FICSObjects.py:135 msgid "Playing" msgstr "" #: lib/pychess/ic/FICSObjects.py:141 msgid "Idle" msgstr "" #: lib/pychess/ic/FICSObjects.py:145 msgid "Examining" msgstr "" #: lib/pychess/ic/FICSObjects.py:147 msgid "Not Available" msgstr "" #: lib/pychess/ic/FICSObjects.py:149 msgid "Running Simul Match" msgstr "" #: lib/pychess/ic/FICSObjects.py:151 msgid "In Tournament" msgstr "" #: lib/pychess/ic/FICSObjects.py:308 lib/pychess/ic/FICSObjects.py:492 #: lib/pychess/ic/ICLounge.py:2278 msgid "Unrated" msgstr "" #: lib/pychess/ic/FICSObjects.py:491 lib/pychess/ic/ICLounge.py:670 #: lib/pychess/ic/ICLounge.py:1358 lib/pychess/ic/ICLounge.py:1558 #: lib/pychess/ic/ICLounge.py:2113 msgid "Rated" msgstr "" #: lib/pychess/ic/FICSObjects.py:498 lib/pychess/ic/ICLounge.py:2098 #, python-format msgid "%d min" msgstr "" #: lib/pychess/ic/FICSObjects.py:500 #, python-format msgid " + %d sec" msgstr "" #: lib/pychess/ic/FICSObjects.py:517 #, python-format msgid "%(player)s plays %(color)s" msgstr "" #: lib/pychess/ic/FICSObjects.py:519 lib/pychess/ic/ICLounge.py:909 msgid "white" msgstr "" #: lib/pychess/ic/FICSObjects.py:519 lib/pychess/ic/ICLounge.py:909 msgid "black" msgstr "" #: lib/pychess/ic/FICSObjects.py:565 msgid "This is a continuation of an adjourned match" msgstr "" #: lib/pychess/ic/FICSObjects.py:654 msgid "Opponent Rating" msgstr "" #: lib/pychess/ic/FICSObjects.py:656 msgid "Manual Accept" msgstr "" #: lib/pychess/ic/FICSObjects.py:810 msgid "Private" msgstr "" #: lib/pychess/ic/FICSObjects.py:930 lib/pychess/ic/ICLounge.py:527 #: lib/pychess/Savers/epd.py:139 msgid "Unknown" msgstr "Ora dikenali" #: lib/pychess/ic/ICLogon.py:159 lib/pychess/ic/ICLogon.py:165 msgid "Connection Error" msgstr "" #: lib/pychess/ic/ICLogon.py:161 msgid "Log on Error" msgstr "" #: lib/pychess/ic/ICLogon.py:163 msgid "Connection was closed" msgstr "" #: lib/pychess/ic/ICLogon.py:169 msgid "Address Error" msgstr "" #: lib/pychess/ic/ICLogon.py:172 msgid "Auto-logout" msgstr "" #: lib/pychess/ic/ICLogon.py:173 msgid "You have been logged out because you were idle more than 60 minutes" msgstr "" #: lib/pychess/ic/ICLounge.py:222 msgid "You have to set kibitz on to see bot messages here." msgstr "" #: lib/pychess/ic/ICLounge.py:241 msgid "" "You may only have 3 outstanding seeks at the same time. If you want to add a" " new seek you must clear your currently active seeks. Clear your seeks?" msgstr "" #: lib/pychess/ic/ICLounge.py:258 msgid "You can't touch this! You are examining a game." msgstr "" #: lib/pychess/ic/ICLounge.py:270 msgid " has declined your offer for a match" msgstr "" #: lib/pychess/ic/ICLounge.py:283 msgid " is censoring you" msgstr "" #: lib/pychess/ic/ICLounge.py:296 msgid " noplay listing you" msgstr "" #: lib/pychess/ic/ICLounge.py:311 msgid " uses a formula not fitting your match request:" msgstr "" #: lib/pychess/ic/ICLounge.py:325 msgid "to manual accept" msgstr "" #: lib/pychess/ic/ICLounge.py:327 msgid "to automatic accept" msgstr "" #: lib/pychess/ic/ICLounge.py:329 msgid "rating range now" msgstr "" #: lib/pychess/ic/ICLounge.py:330 msgid "Seek updated" msgstr "" #: lib/pychess/ic/ICLounge.py:342 msgid "Your seeks have been removed" msgstr "" #: lib/pychess/ic/ICLounge.py:363 msgid " has arrived" msgstr "" #: lib/pychess/ic/ICLounge.py:370 msgid " has departed" msgstr "" #: lib/pychess/ic/ICLounge.py:374 msgid " is present" msgstr "" #: lib/pychess/ic/ICLounge.py:391 sidepanel/chatPanel.py:17 msgid "Chat" msgstr "" #: lib/pychess/ic/ICLounge.py:472 sidepanel/bookPanel.py:366 msgid "Win" msgstr "" #: lib/pychess/ic/ICLounge.py:472 sidepanel/bookPanel.py:360 msgid "Draw" msgstr "" #: lib/pychess/ic/ICLounge.py:472 sidepanel/bookPanel.py:363 msgid "Loss" msgstr "" #: lib/pychess/ic/ICLounge.py:482 msgid "" "On FICS, your \"Wild\" rating encompasses all of the following variants at " "all time controls:\n" msgstr "" #: lib/pychess/ic/ICLounge.py:494 msgid "Sanctions" msgstr "" #: lib/pychess/ic/ICLounge.py:499 msgid "Email" msgstr "Email" #: lib/pychess/ic/ICLounge.py:504 msgid "Spent" msgstr "" #: lib/pychess/ic/ICLounge.py:506 msgid "online in total" msgstr "" #: lib/pychess/ic/ICLounge.py:512 msgid "Ping" msgstr "Ping" #: lib/pychess/ic/ICLounge.py:517 msgid "Connecting" msgstr "" #: lib/pychess/ic/ICLounge.py:544 msgid "" "You are currently logged in as a guest.\n" "A guest can't play rated games and therefore isn't able to play as many of the types of matches offered as a registered user. To register an account, go to http://www.freechess.org/Register/index.html." msgstr "" #: lib/pychess/ic/ICLounge.py:669 lib/pychess/ic/ICLounge.py:1136 msgid "Name" msgstr "Jeneng" #: lib/pychess/ic/ICLounge.py:670 lib/pychess/ic/ICLounge.py:1358 #: lib/pychess/ic/ICLounge.py:1558 msgid "Type" msgstr "Tipe" #: lib/pychess/ic/ICLounge.py:670 lib/pychess/ic/ICLounge.py:1558 msgid "Clock" msgstr "Jam" #: lib/pychess/ic/ICLounge.py:726 lib/pychess/ic/ICLounge.py:923 #: lib/pychess/Players/Human.py:250 msgid "Accept" msgstr "" #: lib/pychess/ic/ICLounge.py:728 msgid "Assess" msgstr "" #: lib/pychess/ic/ICLounge.py:734 msgid "Archived" msgstr "" #: lib/pychess/ic/ICLounge.py:848 #, python-format msgid "Active seeks: %d" msgstr "" #: lib/pychess/ic/ICLounge.py:897 #, python-format msgid "" " would like to resume your adjourned %(time)s %(gametype)s " "game." msgstr "" #: lib/pychess/ic/ICLounge.py:902 #, python-format msgid "" " challenges you to a %(time)s %(rated)s %(gametype)s game" msgstr "" #: lib/pychess/ic/ICLounge.py:907 #, python-format msgid " where %(player)s plays %(color)s." msgstr "" #: lib/pychess/ic/ICLounge.py:924 lib/pychess/Players/Human.py:251 msgid "Decline" msgstr "" #: lib/pychess/ic/ICLounge.py:1065 msgid " min" msgstr "" #: lib/pychess/ic/ICLounge.py:1137 msgid "Status" msgstr "" #: lib/pychess/ic/ICLounge.py:1203 lib/pychess/ic/ICLounge.py:1233 #, python-format msgid "Players: %d" msgstr "" #: lib/pychess/ic/ICLounge.py:1469 #, python-format msgid "Games running: %d" msgstr "" #: lib/pychess/ic/ICLounge.py:1559 msgid "Date/Time" msgstr "" #: lib/pychess/ic/ICLounge.py:1614 #, python-format msgid "" " with whom you have an adjourned %(timecontrol)s %(gametype)s " "game is online." msgstr "" #: lib/pychess/ic/ICLounge.py:1635 msgid "Request Continuation" msgstr "" #: lib/pychess/ic/ICLounge.py:1637 msgid "Examine Adjourned Game" msgstr "" #: lib/pychess/ic/ICLounge.py:1965 msgid "" "The chain button is disabled because you are logged in as a guest. Guests " "can't establish ratings, and the chain button's state has no effect when " "there is no rating to which to tie \"Opponent Strength\" to" msgstr "" #: lib/pychess/ic/ICLounge.py:2006 msgid "Challenge: " msgstr "" #: lib/pychess/ic/ICLounge.py:2044 msgid "If set you can refuse players accepting your seek" msgstr "" #: lib/pychess/ic/ICLounge.py:2048 lib/pychess/ic/ICLounge.py:2051 msgid "This option is not applicable because you're challenging a player" msgstr "" #: lib/pychess/ic/ICLounge.py:2064 msgid "Edit Seek: " msgstr "" #: lib/pychess/ic/ICLounge.py:2095 #, python-format msgid "%(minutes)d min + %(gain)d sec/move" msgstr "" #: lib/pychess/ic/ICLounge.py:2116 msgid "Manual" msgstr "" #: lib/pychess/ic/ICLounge.py:2256 msgid "Any strength" msgstr "" #: lib/pychess/ic/ICLounge.py:2308 msgid "You can't play rated games because you are logged in as a guest" msgstr "" #: lib/pychess/ic/ICLounge.py:2312 msgid "You can't play rated games because \"Untimed\" is checked, " msgstr "" #: lib/pychess/ic/ICLounge.py:2313 msgid "and on FICS, untimed games can't be rated" msgstr "" #: lib/pychess/ic/ICLounge.py:2317 msgid "This option is not available because you're challenging a guest, " msgstr "" #: lib/pychess/ic/ICLounge.py:2318 msgid "and guests can't play rated games" msgstr "" #: lib/pychess/ic/ICLounge.py:2332 lib/pychess/Variants/shuffle.py:16 #: lib/pychess/widgets/newGameDialog.py:266 msgid "Shuffle" msgstr "" #: lib/pychess/ic/ICLounge.py:2333 lib/pychess/widgets/newGameDialog.py:267 msgid "Other (standard rules)" msgstr "" #: lib/pychess/ic/ICLounge.py:2334 lib/pychess/widgets/newGameDialog.py:268 msgid "Other (non standard rules)" msgstr "" #: lib/pychess/ic/ICLounge.py:2421 msgid "You can't select a variant because \"Untimed\" is checked, " msgstr "" #: lib/pychess/ic/ICLounge.py:2422 msgid "and on FICS, untimed games have to be normal chess rules" msgstr "" #: lib/pychess/ic/ICLounge.py:2454 msgid "Change Tolerance" msgstr "" #: lib/pychess/ic/__init__.py:102 msgid "Examined" msgstr "" #: lib/pychess/ic/__init__.py:103 msgid "Other" msgstr "" #: lib/pychess/ic/__init__.py:182 msgid "Administrator" msgstr "" #: lib/pychess/ic/__init__.py:182 msgid "Blindfold Account" msgstr "" #: lib/pychess/ic/__init__.py:182 msgid "Computer" msgstr "" #: lib/pychess/ic/__init__.py:183 msgid "Team Account" msgstr "" #: lib/pychess/ic/__init__.py:183 msgid "Unregistered" msgstr "" #: lib/pychess/ic/__init__.py:183 msgid "Chess Advisor" msgstr "" #: lib/pychess/ic/__init__.py:184 msgid "Service Representative" msgstr "" #: lib/pychess/ic/__init__.py:184 msgid "Tournament Director" msgstr "" #: lib/pychess/ic/__init__.py:184 msgid "Mamer Manager" msgstr "" #: lib/pychess/ic/__init__.py:185 msgid "Grand Master" msgstr "" #: lib/pychess/ic/__init__.py:185 msgid "International Master" msgstr "" #: lib/pychess/ic/__init__.py:185 msgid "FIDE Master" msgstr "" #: lib/pychess/ic/__init__.py:186 msgid "Woman Grand Master" msgstr "" #: lib/pychess/ic/__init__.py:186 msgid "Woman International Master" msgstr "" #: lib/pychess/ic/__init__.py:186 msgid "Woman FIDE Master" msgstr "" #: lib/pychess/ic/__init__.py:187 msgid "Dummy Account" msgstr "" #: lib/pychess/ic/__init__.py:191 msgid "*" msgstr "" #: lib/pychess/ic/__init__.py:191 lib/pychess/Utils/repr.py:14 msgid "B" msgstr "" #: lib/pychess/ic/__init__.py:191 msgid "C" msgstr "" #: lib/pychess/ic/__init__.py:192 msgid "T" msgstr "" #: lib/pychess/ic/__init__.py:192 msgid "U" msgstr "" #: lib/pychess/ic/__init__.py:192 msgid "CA" msgstr "" #: lib/pychess/ic/__init__.py:193 msgid "SR" msgstr "" #: lib/pychess/ic/__init__.py:193 msgid "TD" msgstr "" #: lib/pychess/ic/__init__.py:193 msgid "TM" msgstr "" #: lib/pychess/ic/__init__.py:194 msgid "GM" msgstr "" #: lib/pychess/ic/__init__.py:194 msgid "IM" msgstr "" #: lib/pychess/ic/__init__.py:194 msgid "FM" msgstr "" #: lib/pychess/ic/__init__.py:195 msgid "WGM" msgstr "" #: lib/pychess/ic/__init__.py:195 msgid "WIM" msgstr "" #: lib/pychess/ic/__init__.py:195 msgid "WFM" msgstr "" #: lib/pychess/ic/__init__.py:195 msgid "D" msgstr "" #: lib/pychess/ic/__init__.py:195 msgid "H" msgstr "" #: lib/pychess/ic/__init__.py:195 msgid "CM" msgstr "" #: lib/pychess/ic/__init__.py:195 msgid "FA" msgstr "" #: lib/pychess/ic/__init__.py:195 msgid "NM" msgstr "" #: lib/pychess/Players/CECPEngine.py:857 #, python-format msgid "The engine %s reports an error:" msgstr "" #: lib/pychess/Players/Human.py:20 msgid "Your opponent has offered you a draw." msgstr "" #: lib/pychess/Players/Human.py:21 msgid "" "Your opponent has offered you a draw. If you accept this offer, the game " "will end with a score of 1/2 - 1/2." msgstr "" #: lib/pychess/Players/Human.py:23 msgid "Your opponent wants to abort the game." msgstr "" #: lib/pychess/Players/Human.py:24 msgid "" "Your opponent has asked that the game be aborted. If you accept this offer, " "the game will end with no rating change." msgstr "" #: lib/pychess/Players/Human.py:26 msgid "Your opponent wants to adjourn the game." msgstr "" #: lib/pychess/Players/Human.py:27 msgid "" "Your opponent has asked that the game be adjourned. If you accept this " "offer, the game will be adjourned and you can resume it later (when your " "opponent is online and both players agree to resume)." msgstr "" #: lib/pychess/Players/Human.py:29 #, python-format msgid "Your opponent wants to undo %s move(s)." msgstr "" #: lib/pychess/Players/Human.py:30 #, python-format msgid "" "Your opponent has asked that the last %s move(s) be undone. If you accept " "this offer, the game will continue from the earlier position." msgstr "" #: lib/pychess/Players/Human.py:32 msgid "Your opponent wants to pause the game." msgstr "" #: lib/pychess/Players/Human.py:33 msgid "" "Your opponent has asked that the game be paused. If you accept this offer, " "the game clock will be paused until both players agree to resume the game." msgstr "" #: lib/pychess/Players/Human.py:35 msgid "Your opponent wants to resume the game." msgstr "" #: lib/pychess/Players/Human.py:36 msgid "" "Your opponent has asked that the game be resumed. If you accept this offer, " "the game clock will continue from where it was paused." msgstr "" #: lib/pychess/Players/Human.py:40 msgid "The resignation" msgstr "" #: lib/pychess/Players/Human.py:41 msgid "The flag call" msgstr "" #: lib/pychess/Players/Human.py:42 msgid "The draw offer" msgstr "" #: lib/pychess/Players/Human.py:43 msgid "The abort offer" msgstr "" #: lib/pychess/Players/Human.py:44 msgid "The adjourn offer" msgstr "" #: lib/pychess/Players/Human.py:45 msgid "The pause offer" msgstr "" #: lib/pychess/Players/Human.py:46 msgid "The resume offer" msgstr "" #: lib/pychess/Players/Human.py:47 msgid "The offer to switch sides" msgstr "" #: lib/pychess/Players/Human.py:48 msgid "The takeback offer" msgstr "" #: lib/pychess/Players/Human.py:52 msgid "resign" msgstr "" #: lib/pychess/Players/Human.py:53 msgid "call your opponents flag" msgstr "" #: lib/pychess/Players/Human.py:54 msgid "offer a draw" msgstr "" #: lib/pychess/Players/Human.py:55 msgid "offer an abort" msgstr "" #: lib/pychess/Players/Human.py:56 msgid "offer to adjourn" msgstr "" #: lib/pychess/Players/Human.py:57 msgid "offer a pause" msgstr "" #: lib/pychess/Players/Human.py:58 msgid "offer to resume" msgstr "" #: lib/pychess/Players/Human.py:59 msgid "offer to switch sides" msgstr "" #: lib/pychess/Players/Human.py:60 msgid "offer a takeback" msgstr "" #: lib/pychess/Players/Human.py:61 msgid "ask your opponent to move" msgstr "" #: lib/pychess/Players/Human.py:66 msgid "Your opponent is not out of time." msgstr "" #: lib/pychess/Players/Human.py:68 msgid "The clock hasn't been started yet." msgstr "" #: lib/pychess/Players/Human.py:70 msgid "You can't switch colors during the game." msgstr "" #: lib/pychess/Players/Human.py:72 msgid "You have tried to undo too many moves." msgstr "" #: lib/pychess/Players/Human.py:180 msgid "Your opponent asks you to hurry!" msgstr "" #: lib/pychess/Players/Human.py:181 msgid "" "Generally this means nothing, as the game is time-based, but if you want to " "please your opponent, perhaps you should get going." msgstr "" #: lib/pychess/Players/Human.py:259 #, python-format msgid "%s was declined by your opponent" msgstr "" #: lib/pychess/Players/Human.py:260 #, python-format msgid "Resend %s?" msgstr "" #: lib/pychess/Players/Human.py:267 msgid "Resend" msgstr "" #: lib/pychess/Players/Human.py:275 #, python-format msgid "%s was withdrawn by your opponent" msgstr "" #: lib/pychess/Players/Human.py:276 msgid "Your opponent seems to have changed their mind." msgstr "" #: lib/pychess/Players/Human.py:290 #, python-format msgid "Unable to accept %s" msgstr "" #: lib/pychess/Players/Human.py:291 msgid "Probably because it has been withdrawn." msgstr "" #: lib/pychess/Players/Human.py:298 #, python-format msgid "%s returns an error" msgstr "" #: lib/pychess/Savers/chessalpha2.py:12 msgid "Chess Alpha 2 Diagram" msgstr "" #: lib/pychess/Savers/chesspastebin.py:39 msgid "Game shared at " msgstr "" #: lib/pychess/Savers/chesspastebin.py:41 msgid "(Link is available on clipboard.)" msgstr "" #: lib/pychess/Savers/database.py:19 msgid "PyChess database" msgstr "" #: lib/pychess/Savers/epd.py:12 msgid "Chess Position" msgstr "" #: lib/pychess/Savers/fen.py:12 msgid "Simple Chess Position" msgstr "" #: lib/pychess/Savers/fen.py:44 lib/pychess/Savers/pgn.py:329 msgid "The game can't be loaded, because of an error parsing FEN" msgstr "" #: lib/pychess/Savers/pgnbase.py:100 #, python-format msgid "" "The game can't be read to end, because of an error parsing move %(moveno)s " "'%(notation)s'." msgstr "" #: lib/pychess/Savers/pgnbase.py:102 #, python-format msgid "The move failed because %s." msgstr "" #: lib/pychess/Savers/pgnbase.py:110 #, python-format msgid "Error parsing move %(moveno)s %(mstr)s" msgstr "" #: lib/pychess/Savers/pgn.py:28 msgid "Chess Game" msgstr "" #: lib/pychess/Savers/pgn.py:362 msgid "Invalid move." msgstr "" #: lib/pychess/Savers/png.py:15 msgid "Png image" msgstr "" #: lib/pychess/System/ping.py:31 msgid "Destination Host Unreachable" msgstr "" #: lib/pychess/System/ping.py:74 msgid "Died" msgstr "" #: lib/pychess/Utils/GameModel.py:147 msgid "Local Event" msgstr "" #: lib/pychess/Utils/GameModel.py:148 msgid "Local Site" msgstr "" #: lib/pychess/Utils/repr.py:12 msgid "Pawn" msgstr "" #: lib/pychess/Utils/repr.py:14 msgid "P" msgstr "" #: lib/pychess/Utils/repr.py:14 msgid "N" msgstr "" #: lib/pychess/Utils/repr.py:14 msgid "R" msgstr "" #: lib/pychess/Utils/repr.py:14 msgid "Q" msgstr "" #: lib/pychess/Utils/repr.py:14 msgid "K" msgstr "" #: lib/pychess/Utils/repr.py:17 msgid "The game ended in a draw" msgstr "" #: lib/pychess/Utils/repr.py:18 #, python-format msgid "%(white)s won the game" msgstr "" #: lib/pychess/Utils/repr.py:19 #, python-format msgid "%(black)s won the game" msgstr "" #: lib/pychess/Utils/repr.py:20 msgid "The game has been killed" msgstr "" #: lib/pychess/Utils/repr.py:21 msgid "The game has been adjourned" msgstr "" #: lib/pychess/Utils/repr.py:22 msgid "The game has been aborted" msgstr "Gim dibatalke" #: lib/pychess/Utils/repr.py:26 msgid "Because neither player has sufficient material to mate" msgstr "" #: lib/pychess/Utils/repr.py:27 msgid "Because the same position was repeated three times in a row" msgstr "" #: lib/pychess/Utils/repr.py:28 msgid "Because the last 50 moves brought nothing new" msgstr "" #: lib/pychess/Utils/repr.py:29 msgid "Because both players ran out of time" msgstr "" #: lib/pychess/Utils/repr.py:30 #, python-format msgid "Because %(mover)s stalemated" msgstr "" #: lib/pychess/Utils/repr.py:31 msgid "Because both players agreed to a draw" msgstr "" #: lib/pychess/Utils/repr.py:32 lib/pychess/Utils/repr.py:42 msgid "Because of adjudication by an admin" msgstr "" #: lib/pychess/Utils/repr.py:33 msgid "Because the game exceed the max length" msgstr "" #: lib/pychess/Utils/repr.py:34 #, python-format msgid "" "Because %(white)s ran out of time and %(black)s has insufficient material to" " mate" msgstr "" #: lib/pychess/Utils/repr.py:35 #, python-format msgid "" "Because %(black)s ran out of time and %(white)s has insufficient material to" " mate" msgstr "" #: lib/pychess/Utils/repr.py:36 msgid "Because both players have the same amount of pieces" msgstr "" #: lib/pychess/Utils/repr.py:38 #, python-format msgid "Because %(loser)s resigned" msgstr "" #: lib/pychess/Utils/repr.py:39 #, python-format msgid "Because %(loser)s ran out of time" msgstr "" #: lib/pychess/Utils/repr.py:40 #, python-format msgid "Because %(loser)s was checkmated" msgstr "" #: lib/pychess/Utils/repr.py:41 #, python-format msgid "Because %(loser)s disconnected" msgstr "" #: lib/pychess/Utils/repr.py:43 #, python-format msgid "Because %(winner)s has fewer pieces" msgstr "" #: lib/pychess/Utils/repr.py:44 #, python-format msgid "Because %(winner)s lost all pieces" msgstr "" #: lib/pychess/Utils/repr.py:45 #, python-format msgid "Because %(loser)s king exploded" msgstr "" #: lib/pychess/Utils/repr.py:46 #, python-format msgid "Because %(winner)s king reached the center" msgstr "" #: lib/pychess/Utils/repr.py:47 #, python-format msgid "Because %(winner)s was giving check 3 times" msgstr "" #: lib/pychess/Utils/repr.py:49 msgid "Because a player lost connection" msgstr "" #: lib/pychess/Utils/repr.py:50 msgid "Because both players agreed to an adjournment" msgstr "" #: lib/pychess/Utils/repr.py:51 msgid "Because the server was shut down" msgstr "" #: lib/pychess/Utils/repr.py:52 msgid "" "Because a player lost connection and the other player requested adjournment" msgstr "" #: lib/pychess/Utils/repr.py:53 #, python-format msgid "" "Because %(black)s lost connection to the server and %(white)s requested " "adjournment" msgstr "" #: lib/pychess/Utils/repr.py:54 #, python-format msgid "" "Because %(white)s lost connection to the server and %(black)s requested " "adjournment" msgstr "" #: lib/pychess/Utils/repr.py:55 #, python-format msgid "Because %(white)s lost connection to the server" msgstr "" #: lib/pychess/Utils/repr.py:56 #, python-format msgid "Because %(black)s lost connection to the server" msgstr "" #: lib/pychess/Utils/repr.py:58 msgid "Because of adjudication by an admin. No rating changes have occurred." msgstr "" #: lib/pychess/Utils/repr.py:59 msgid "" "Because both players agreed to abort the game. No rating changes have " "occurred." msgstr "" #: lib/pychess/Utils/repr.py:60 msgid "Because of courtesy by a player. No rating changes have occurred." msgstr "" #: lib/pychess/Utils/repr.py:61 msgid "" "Because a player aborted the game. Either player can abort the game without " "the other's consent before the second move. No rating changes have occurred." msgstr "" #: lib/pychess/Utils/repr.py:62 msgid "" "Because a player disconnected and there are too few moves to warrant " "adjournment. No rating changes have occurred." msgstr "" #: lib/pychess/Utils/repr.py:63 msgid "Because the server was shut down. No rating changes have occurred." msgstr "" #: lib/pychess/Utils/repr.py:65 #, python-format msgid "Because the %(white)s engine died" msgstr "" #: lib/pychess/Utils/repr.py:66 #, python-format msgid "Because the %(black)s engine died" msgstr "" #: lib/pychess/Utils/repr.py:67 msgid "Because the connection to the server was lost" msgstr "" #: lib/pychess/Utils/repr.py:68 msgid "The reason is unknown" msgstr "" #: lib/pychess/Utils/TimeModel.py:229 msgid "min" msgstr "" #: lib/pychess/Utils/TimeModel.py:231 msgid "sec" msgstr "" #: lib/pychess/Variants/asean.py:12 msgid "" "ASEAN: http://www.ncf-" "phil.org/downloadables/2014/May/Asean_chess/Laws_of_ASEAN_Chess_2011_Nov_26.doc" msgstr "" #: lib/pychess/Variants/asean.py:13 msgid "ASEAN" msgstr "" #: lib/pychess/Variants/asean.py:33 msgid "Makruk: http://en.wikipedia.org/wiki/Makruk" msgstr "" #: lib/pychess/Variants/asean.py:34 msgid "Makruk" msgstr "" #: lib/pychess/Variants/asean.py:60 msgid "Cambodian: http://www.khmerinstitute.org/culture/ok.html" msgstr "" #: lib/pychess/Variants/asean.py:61 msgid "Cambodian" msgstr "" #: lib/pychess/Variants/asean.py:86 msgid "" "Ai-Wok: http://www.open-" "aurec.com/wbforum/viewtopic.php?p=199364&sid=20963a1de2c164050de019e5ed6bf7c4#p199364" msgstr "" #: lib/pychess/Variants/asean.py:87 msgid "Ai-Wok" msgstr "" #: lib/pychess/Variants/asean.py:111 msgid "Sittuyin: http://en.wikipedia.org/wiki/Sittuyin" msgstr "" #: lib/pychess/Variants/asean.py:112 msgid "Sittuyin" msgstr "" #: lib/pychess/Variants/asymmetricrandom.py:12 msgid "" "FICS wild/4: http://www.freechess.org/Help/HelpFiles/wild.html\n" "* Randomly chosen pieces (two queens or three rooks possible)\n" "* Exactly one king of each color\n" "* Pieces placed randomly behind the pawns, SUBJECT TO THE CONSTRAINT THAT THE BISHOPS ARE BALANCED\n" "* No castling\n" "* Black's arrangement DOES NOT mirrors white's" msgstr "" #: lib/pychess/Variants/asymmetricrandom.py:18 msgid "Asymmetric Random" msgstr "" #: lib/pychess/Variants/atomic.py:14 msgid "FICS atomic: http://www.freechess.org/Help/HelpFiles/atomic.html" msgstr "" #: lib/pychess/Variants/blindfold.py:7 msgid "" "Classic chess rules with hidden figurines\n" "http://en.wikipedia.org/wiki/Blindfold_chess" msgstr "" #: lib/pychess/Variants/blindfold.py:9 #: lib/pychess/widgets/newGameDialog.py:264 msgid "Blindfold" msgstr "" #: lib/pychess/Variants/blindfold.py:18 msgid "" "Classic chess rules with hidden pawns\n" "http://en.wikipedia.org/wiki/Blindfold_chess" msgstr "" #: lib/pychess/Variants/blindfold.py:20 msgid "Hidden pawns" msgstr "" #: lib/pychess/Variants/blindfold.py:29 msgid "" "Classic chess rules with hidden pieces\n" "http://en.wikipedia.org/wiki/Blindfold_chess" msgstr "" #: lib/pychess/Variants/blindfold.py:31 msgid "Hidden pieces" msgstr "" #: lib/pychess/Variants/blindfold.py:40 msgid "" "Classic chess rules with all pieces white\n" "http://en.wikipedia.org/wiki/Blindfold_chess" msgstr "" #: lib/pychess/Variants/blindfold.py:42 msgid "All white" msgstr "" #: lib/pychess/Variants/bughouse.py:8 msgid "FICS bughouse: http://www.freechess.org/Help/HelpFiles/bughouse.html" msgstr "" #: lib/pychess/Variants/corner.py:12 msgid "" "http://brainking.com/en/GameRules?tp=2\n" "* Placement of the pieces on the 1st and 8th row are randomized\n" "* The king is in the right hand corner\n" "* Bishops must start on opposite color squares\n" "* Black's starting position is obtained by rotating white's position 180 degrees around the board's center\n" "* No castling" msgstr "" #: lib/pychess/Variants/corner.py:18 msgid "Corner" msgstr "" #: lib/pychess/Variants/crazyhouse.py:8 msgid "" "FICS crazyhouse: http://www.freechess.org/Help/HelpFiles/crazyhouse.html" msgstr "" #: lib/pychess/Variants/euroshogi.py:9 msgid "EuroShogi: http://en.wikipedia.org/wiki/EuroShogi" msgstr "" #: lib/pychess/Variants/euroshogi.py:10 msgid "EuroShogi" msgstr "" #: lib/pychess/Variants/fischerandom.py:18 msgid "" "http://en.wikipedia.org/wiki/Chess960\n" "FICS wild/fr: http://www.freechess.org/Help/HelpFiles/wild.html" msgstr "" #: lib/pychess/Variants/fischerandom.py:20 msgid "Fischer Random" msgstr "" #: lib/pychess/Variants/kingofthehill.py:8 msgid "" "Bringing your king legally to the center (e4, d4, e5, d5) instantly wins the game!\n" "Normal rules apply in other cases and checkmate also ends the game." msgstr "" #: lib/pychess/Variants/kingofthehill.py:10 msgid "King of the hill" msgstr "" #: lib/pychess/Variants/knightodds.py:8 msgid "One player starts with one less knight piece" msgstr "" #: lib/pychess/Variants/knightodds.py:9 msgid "Knight odds" msgstr "" #: lib/pychess/Variants/losers.py:8 msgid "FICS losers: http://www.freechess.org/Help/HelpFiles/losers_chess.html" msgstr "" #: lib/pychess/Variants/normal.py:4 msgid "" "Classic chess rules\n" "http://en.wikipedia.org/wiki/Chess" msgstr "" #: lib/pychess/Variants/normal.py:6 lib/pychess/widgets/newGameDialog.py:157 msgid "Normal" msgstr "Normal" #: lib/pychess/Variants/pawnodds.py:8 msgid "One player starts with one less pawn piece" msgstr "" #: lib/pychess/Variants/pawnodds.py:9 msgid "Pawn odds" msgstr "" #: lib/pychess/Variants/pawnspassed.py:11 msgid "" "FICS wild/8a: http://www.freechess.org/Help/HelpFiles/wild.html\n" "White pawns start on 5th rank and black pawns on the 4th rank" msgstr "" #: lib/pychess/Variants/pawnspassed.py:13 msgid "Pawns Passed" msgstr "" #: lib/pychess/Variants/pawnspushed.py:10 msgid "" "FICS wild/8: http://www.freechess.org/Help/HelpFiles/wild.html\n" "Pawns start on 4th and 5th ranks rather than 2nd and 7th" msgstr "" #: lib/pychess/Variants/pawnspushed.py:12 msgid "Pawns Pushed" msgstr "" #: lib/pychess/Variants/queenodds.py:8 msgid "One player starts with one less queen piece" msgstr "" #: lib/pychess/Variants/queenodds.py:9 msgid "Queen odds" msgstr "" #: lib/pychess/Variants/randomchess.py:11 msgid "" "FICS wild/3: http://www.freechess.org/Help/HelpFiles/wild.html\n" "* Randomly chosen pieces (two queens or three rooks possible)\n" "* Exactly one king of each color\n" "* Pieces placed randomly behind the pawns\n" "* No castling\n" "* Black's arrangement mirrors white's" msgstr "" #: lib/pychess/Variants/randomchess.py:17 #: lib/pychess/widgets/TaskerManager.py:155 msgid "Random" msgstr "" #: lib/pychess/Variants/rookodds.py:8 msgid "One player starts with one less rook piece" msgstr "" #: lib/pychess/Variants/rookodds.py:9 msgid "Rook odds" msgstr "" #: lib/pychess/Variants/shuffle.py:11 msgid "" "xboard nocastle: http://home.hccnet.nl/h.g.muller/engine-intf.html#8\n" "FICS wild/2: http://www.freechess.org/Help/HelpFiles/wild.html\n" "* Random arrangement of the pieces behind the pawns\n" "* No castling\n" "* Black's arrangement mirrors white's" msgstr "" #: lib/pychess/Variants/suicide.py:11 msgid "" "FICS suicide: http://www.freechess.org/Help/HelpFiles/suicide_chess.html" msgstr "" #: lib/pychess/Variants/theban.py:10 msgid "" "Variant developed by Kai Laskos: " "http://talkchess.com/forum/viewtopic.php?t=40990" msgstr "" #: lib/pychess/Variants/theban.py:11 msgid "Theban" msgstr "" #: lib/pychess/Variants/threecheck.py:10 msgid "Win by giving check 3 times" msgstr "" #: lib/pychess/Variants/threecheck.py:11 msgid "Three-check" msgstr "" #: lib/pychess/Variants/upsidedown.py:10 msgid "" "FICS wild/5: http://www.freechess.org/Help/HelpFiles/wild.html\n" "http://en.wikipedia.org/wiki/Chess_variant#Chess_with_different_starting_positions\n" "Pawns start on their 7th rank rather than their 2nd rank!" msgstr "" #: lib/pychess/Variants/upsidedown.py:13 msgid "Upside Down" msgstr "" #: lib/pychess/Variants/wildcastle.py:10 msgid "" "xboard wildcastle http://home.hccnet.nl/h.g.muller/engine-intf.html#8\n" "FICS wild/0: http://www.freechess.org/Help/HelpFiles/wild.html\n" "* White has the typical set-up at the start.\n" "* Black's pieces are the same, except that the King and Queen are reversed,\n" "* so they are not on the same files as White's King and Queen.\n" "* Castling is done similarly to normal chess:\n" "* o-o-o indicates long castling and o-o short castling." msgstr "" #: lib/pychess/Variants/wildcastle.py:17 msgid "Wildcastle" msgstr "" #: lib/pychess/Variants/wildcastleshuffle.py:11 msgid "" "xboard wildcastle http://home.hccnet.nl/h.g.muller/engine-intf.html#8\n" "FICS wild/1: http://www.freechess.org/Help/HelpFiles/wild.html\n" "* In this variant both sides have the same set of pieces as in normal chess.\n" "* The white king starts on d1 or e1 and the black king starts on d8 or e8,\n" "* and the rooks are in their usual positions.\n" "* Bishops are always on opposite colors.\n" "* Subject to these constraints the position of the pieces on their first ranks is random.\n" "* Castling is done similarly to normal chess:\n" "* o-o-o indicates long castling and o-o short castling." msgstr "" #: lib/pychess/Variants/wildcastleshuffle.py:20 msgid "Wildcastle shuffle" msgstr "" #: lib/pychess/widgets/analyzegameDialog.py:85 msgid "Game analyzing in progress..." msgstr "" #: lib/pychess/widgets/analyzegameDialog.py:86 msgid "Do you want to abort it?" msgstr "" #: lib/pychess/widgets/analyzegameDialog.py:95 #: lib/pychess/widgets/gamewidget.py:202 lib/pychess/widgets/gamewidget.py:320 msgid "Abort" msgstr "" #: lib/pychess/widgets/ChatView.py:125 msgid "Observers" msgstr "" #: lib/pychess/widgets/ChatWindow.py:222 msgid "You have opened no conversations yet" msgstr "" #: lib/pychess/widgets/ChatWindow.py:254 msgid "Only registered users may talk to this channel" msgstr "" #: lib/pychess/widgets/ChatWindow.py:312 msgid "No conversation's selected" msgstr "" #: lib/pychess/widgets/ChatWindow.py:350 msgid "Loading player data" msgstr "" #: lib/pychess/widgets/ChatWindow.py:400 msgid "Receiving list of players" msgstr "" #: lib/pychess/widgets/ChatWindow.py:518 msgid "Friends" msgstr "" #: lib/pychess/widgets/ChatWindow.py:529 msgid "Admin" msgstr "" #: lib/pychess/widgets/ChatWindow.py:540 msgid "More channels" msgstr "" #: lib/pychess/widgets/ChatWindow.py:548 msgid "More players" msgstr "" #: lib/pychess/widgets/ChatWindow.py:558 msgid "Computers" msgstr "" #: lib/pychess/widgets/ChatWindow.py:568 msgid "BlindFold" msgstr "" #: lib/pychess/widgets/ChatWindow.py:578 msgid "Guests" msgstr "" #: lib/pychess/widgets/ChatWindow.py:805 msgid "Conversations" msgstr "" #: lib/pychess/widgets/ChatWindow.py:807 msgid "Conversation info" msgstr "" #: lib/pychess/widgets/enginesDialog.py:152 msgid "Select engine" msgstr "" #: lib/pychess/widgets/enginesDialog.py:156 msgid "Executable files" msgstr "" #: lib/pychess/widgets/enginesDialog.py:176 #: lib/pychess/widgets/enginesDialog.py:210 #: lib/pychess/widgets/enginesDialog.py:235 #, python-format msgid "Unable to add %s" msgstr "" #: lib/pychess/widgets/enginesDialog.py:177 msgid "wine not installed" msgstr "" #: lib/pychess/widgets/enginesDialog.py:211 #: lib/pychess/widgets/enginesDialog.py:236 msgid "There is something wrong with this executable" msgstr "" #: lib/pychess/widgets/enginesDialog.py:266 msgid "Select working directory" msgstr "" #: lib/pychess/widgets/gamenanny.py:115 #, python-format msgid " invalid engine move: %s" msgstr "" #: lib/pychess/widgets/gamenanny.py:134 msgid "Offer Rematch" msgstr "" #: lib/pychess/widgets/gamenanny.py:136 lib/pychess/widgets/gamenanny.py:147 #, python-format msgid "Observe %s" msgstr "" #: lib/pychess/widgets/gamenanny.py:168 msgid "Play Rematch" msgstr "" #: lib/pychess/widgets/gamenanny.py:171 msgid "Undo one move" msgstr "" #: lib/pychess/widgets/gamenanny.py:173 msgid "Undo two moves" msgstr "" #: lib/pychess/widgets/gamenanny.py:203 msgid "The game is paused" msgstr "" #: lib/pychess/widgets/gamenanny.py:221 lib/pychess/widgets/gamenanny.py:222 msgid "Loaded game" msgstr "" #: lib/pychess/widgets/gamenanny.py:228 msgid "Saved game" msgstr "" #: lib/pychess/widgets/gamenanny.py:232 msgid "Analyzer started" msgstr "" #: lib/pychess/widgets/gamenanny.py:281 msgid "You sent an abort offer" msgstr "" #: lib/pychess/widgets/gamenanny.py:283 msgid "You sent an adjournment offer" msgstr "" #: lib/pychess/widgets/gamenanny.py:285 msgid "You sent a draw offer" msgstr "" #: lib/pychess/widgets/gamenanny.py:287 msgid "You sent a pause offer" msgstr "" #: lib/pychess/widgets/gamenanny.py:289 msgid "You sent a resume offer" msgstr "" #: lib/pychess/widgets/gamenanny.py:291 msgid "You sent an undo offer" msgstr "" #: lib/pychess/widgets/gamenanny.py:293 msgid "You asked your opponent to move" msgstr "" #: lib/pychess/widgets/gamenanny.py:305 #, python-format msgid "Engine, %s, has died" msgstr "" #: lib/pychess/widgets/gamenanny.py:306 msgid "" "PyChess has lost connection to the engine, probably because it has died.\n" "\n" "You can try to start a new game with the engine, or try to play against another one." msgstr "" #: lib/pychess/widgets/gamewidget.py:204 msgid "" "This game can be automatically aborted without rating loss because there has" " not yet been two moves made" msgstr "" #: lib/pychess/widgets/gamewidget.py:206 msgid "Offer Abort" msgstr "" #: lib/pychess/widgets/gamewidget.py:208 msgid "" "Your opponent must agree to abort the game because there has been two or " "more moves made" msgstr "" #: lib/pychess/widgets/gamewidget.py:226 msgid "This game can not be adjourned because one or both players are guests" msgstr "" #: lib/pychess/widgets/gamewidget.py:243 msgid "Claim Draw" msgstr "" #: lib/pychess/widgets/gamewidget.py:325 msgid "Pause" msgstr "" #: lib/pychess/widgets/gamewidget.py:326 msgid "Resume" msgstr "" #: lib/pychess/widgets/gamewidget.py:328 msgid "Offer Pause" msgstr "" #: lib/pychess/widgets/gamewidget.py:329 msgid "Offer Resume" msgstr "" #: lib/pychess/widgets/gamewidget.py:333 msgid "Undo" msgstr "" #: lib/pychess/widgets/gamewidget.py:335 msgid "Offer Undo" msgstr "" #: lib/pychess/widgets/gamewidget.py:550 msgid " has lagged for 30 seconds" msgstr "" #: lib/pychess/widgets/gamewidget.py:566 msgid " is lagging heavily but hasn't disconnected" msgstr "" #: lib/pychess/widgets/gamewidget.py:567 msgid "Continue to wait for opponent, or try to adjourn the game?" msgstr "" #: lib/pychess/widgets/gamewidget.py:575 msgid "Wait" msgstr "" #: lib/pychess/widgets/gamewidget.py:576 msgid "Adjourn" msgstr "" #: lib/pychess/widgets/gamewidget.py:648 msgid "Jump to initial position" msgstr "" #: lib/pychess/widgets/gamewidget.py:653 msgid "Step back one move" msgstr "" #: lib/pychess/widgets/gamewidget.py:658 msgid "Go back to the main line" msgstr "" #: lib/pychess/widgets/gamewidget.py:664 msgid "Step forward one move" msgstr "" #: lib/pychess/widgets/gamewidget.py:669 msgid "Jump to latest position" msgstr "" #: lib/pychess/widgets/gamewidget.py:903 msgid "PyChess was unable to load your panel settings" msgstr "" #: lib/pychess/widgets/gamewidget.py:904 msgid "" "Your panel settings have been reset. If this problem repeats, you should " "report it to the developers" msgstr "" #: lib/pychess/widgets/ionest.py:67 lib/pychess/widgets/newGameDialog.py:389 #: lib/pychess/widgets/TaskerManager.py:210 msgid "You" msgstr "" #: lib/pychess/widgets/ionest.py:70 lib/pychess/widgets/newGameDialog.py:390 #: lib/pychess/widgets/preferencesDialog.py:61 #: lib/pychess/widgets/TaskerManager.py:213 msgid "Guest" msgstr "" #: lib/pychess/widgets/ionest.py:93 msgid "Error loading game" msgstr "" #: lib/pychess/widgets/ionest.py:127 lib/pychess/widgets/newGameDialog.py:480 msgid "Open Game" msgstr "Buka Gim" #: lib/pychess/widgets/ionest.py:137 msgid "All Files" msgstr "" #: lib/pychess/widgets/ionest.py:140 msgid "Detect type automatically" msgstr "" #: lib/pychess/widgets/ionest.py:146 msgid "All Chess Files" msgstr "" #: lib/pychess/widgets/ionest.py:228 msgid "Save Game" msgstr "" #: lib/pychess/widgets/ionest.py:228 msgid "Export position" msgstr "" #: lib/pychess/widgets/ionest.py:232 lib/pychess/widgets/ionest.py:360 msgid "vs." msgstr "" #: lib/pychess/widgets/ionest.py:249 #, python-format msgid "Unknown file type '%s'" msgstr "" #: lib/pychess/widgets/ionest.py:250 #, python-format msgid "" "Was unable to save '%(uri)s' as PyChess doesn't know the format " "'%(ending)s'." msgstr "" #: lib/pychess/widgets/ionest.py:266 #, python-format msgid "Unable to save file '%s'" msgstr "" #: lib/pychess/widgets/ionest.py:268 msgid "" "You don't have the necessary rights to save the file.\n" "Please ensure that you have given the right path and try again." msgstr "" #: lib/pychess/widgets/ionest.py:276 msgid "_Replace" msgstr "" #: lib/pychess/widgets/ionest.py:280 msgid "File exists" msgstr "" #: lib/pychess/widgets/ionest.py:282 #, python-format msgid "" "A file named '%s' already exists. Would you like to replace " "it?" msgstr "" #: lib/pychess/widgets/ionest.py:283 #, python-format msgid "" "The file already exists in '%s'. If you replace it, its content will be " "overwritten." msgstr "" #: lib/pychess/widgets/ionest.py:299 msgid "Could not save the file" msgstr "" #: lib/pychess/widgets/ionest.py:300 msgid "PyChess was not able to save the game" msgstr "" #: lib/pychess/widgets/ionest.py:301 #, python-format msgid "The error was: %s" msgstr "" #: lib/pychess/widgets/ionest.py:325 #, python-format msgid "There is %d game with unsaved moves." msgid_plural "There are %d games with unsaved moves." msgstr[0] "" msgstr[1] "" #: lib/pychess/widgets/ionest.py:328 msgid "Save moves before closing?" msgstr "" #: lib/pychess/widgets/ionest.py:339 msgid "Unable to save to configured file. Save the games before closing?" msgstr "" #: lib/pychess/widgets/ionest.py:366 #, python-format msgid "_Save %d document" msgid_plural "_Save %d documents" msgstr[0] "" msgstr[1] "" #: lib/pychess/widgets/ionest.py:412 msgid "Save the current game before you close it?" msgstr "" #: lib/pychess/widgets/ionest.py:420 msgid "" "Unable to save to configured file. Save the current game before you close " "it?" msgstr "" #: lib/pychess/widgets/ionest.py:434 msgid "" "It is not possible later to continue the game,\n" "if you don't save it." msgstr "" #: lib/pychess/widgets/LogDialog.py:26 msgid "PyChess Information Window" msgstr "" #: lib/pychess/widgets/LogDialog.py:184 lib/pychess/widgets/LogDialog.py:188 msgid "of" msgstr "" #: lib/pychess/widgets/newGameDialog.py:84 #: lib/pychess/widgets/newGameDialog.py:85 msgid "Human Being" msgstr "" #: lib/pychess/widgets/newGameDialog.py:155 msgid "Rapid" msgstr "" #: lib/pychess/widgets/newGameDialog.py:224 msgid "Minutes:" msgstr "Menit:" #: lib/pychess/widgets/newGameDialog.py:228 msgid "Gain:" msgstr "" #: lib/pychess/widgets/newGameDialog.py:241 #, python-format msgid "%(name)s %(minutes)d min + %(gain)d sec/move" msgstr "" #: lib/pychess/widgets/newGameDialog.py:244 #, python-format msgid "%(name)s %(minutes)d min %(gain)d sec/move" msgstr "" #: lib/pychess/widgets/newGameDialog.py:247 #, python-format msgid "%(name)s %(minutes)d min" msgstr "" #: lib/pychess/widgets/newGameDialog.py:265 msgid "Odds" msgstr "" #: lib/pychess/widgets/newGameDialog.py:269 msgid "Asian variants" msgstr "" #: lib/pychess/widgets/newGameDialog.py:301 msgid " chess" msgstr "" #: lib/pychess/widgets/newGameDialog.py:682 msgid "Type or paste PGN game or FEN positions here" msgstr "" #: lib/pychess/widgets/newGameDialog.py:725 msgid "Enter Game" msgstr "" #: lib/pychess/widgets/preferencesDialog.py:123 msgid "Select book file" msgstr "" #: lib/pychess/widgets/preferencesDialog.py:128 msgid "Opening books" msgstr "" #: lib/pychess/widgets/preferencesDialog.py:156 msgid "Select Gaviota TB path" msgstr "" #: lib/pychess/widgets/preferencesDialog.py:331 msgid "Open Sound File" msgstr "" #: lib/pychess/widgets/preferencesDialog.py:341 msgid "Sound files" msgstr "" #: lib/pychess/widgets/preferencesDialog.py:485 msgid "Undescribed panel" msgstr "" #: lib/pychess/widgets/preferencesDialog.py:678 msgid "Select auto save path" msgstr "" #: lib/pychess/widgets/tipOfTheDay.py:51 msgid "" "You can start a new game by Game > New Game, in New Game " "window do you can choose Players, Time Control and Chess " "Variants." msgstr "" #: lib/pychess/widgets/tipOfTheDay.py:52 msgid "" "You can choose from 20 different difficulties to play against the computer." msgstr "" #: lib/pychess/widgets/tipOfTheDay.py:53 msgid "" "Chess Variants are like the pieces of the last line will be placed on the " "board." msgstr "" #: lib/pychess/widgets/tipOfTheDay.py:54 msgid "" "To save a game Game > Save Game As, give the filename and " "choose where you want to be saved. At the bottom choose extension type of " "the file, and Save." msgstr "" #: lib/pychess/widgets/tipOfTheDay.py:55 msgid "" "Do you know that you can call flag when the clock is with you, " "Actions > Call Flag." msgstr "" #: lib/pychess/widgets/tipOfTheDay.py:56 msgid "Pressing Ctrl+Z to offer opponent the possible rollback moves." msgstr "" #: lib/pychess/widgets/tipOfTheDay.py:57 msgid "" "To play on Fullscreen mode, just type F11. Coming back, F11 " "again." msgstr "" #: lib/pychess/widgets/tipOfTheDay.py:58 msgid "Hint mode analyzing your game, enable this type Ctrl+H." msgstr "" #: lib/pychess/widgets/tipOfTheDay.py:59 msgid "" "Spy mode analyzing the oponnent game, enable this type Ctrl+Y." msgstr "" #: lib/pychess/widgets/tipOfTheDay.py:60 msgid "" "You can play chess listening to the sounds of the game, for that, " "Settings > Preferences > Sound tab, enable Use " "sounds in PyChess and choose your preferred sounds." msgstr "" #: lib/pychess/widgets/tipOfTheDay.py:61 msgid "" "Do you know that you can help translate Pychess in your language, " "Help > Translate Pychess." msgstr "" #: lib/pychess/widgets/tipOfTheDay.py:62 msgid "" "Do you know that it is possible to finish a chess game in just 2 turns?" msgstr "" #: lib/pychess/widgets/tipOfTheDay.py:63 msgid "" "Do you know that the number of possible chess games exceeds the number of " "atoms in the Universe?" msgstr "" #: lib/pychess/ic/managers/ChatManager.py:184 msgid "Shout" msgstr "" #: lib/pychess/ic/managers/ChatManager.py:185 msgid "Chess Shout" msgstr "" #: lib/pychess/ic/managers/ChatManager.py:195 #, python-format msgid "Unofficial channel %d" msgstr "" #: lib/pychess/Utils/lutils/LBoard.py:152 #, python-format msgid "" "FEN needs 6 data fields. \n" "\n" "%s" msgstr "" #: lib/pychess/Utils/lutils/LBoard.py:154 #, python-format msgid "" "FEN needs at least 2 data fields in fenstr. \n" "\n" "%s" msgstr "" #: lib/pychess/Utils/lutils/LBoard.py:175 #, python-format msgid "" "Needs 7 slashes in piece placement field. \n" "\n" "%s" msgstr "" #: lib/pychess/Utils/lutils/LBoard.py:178 #, python-format msgid "" "Active color field must be one of w or b. \n" "\n" "%s" msgstr "" #: lib/pychess/Utils/lutils/LBoard.py:189 #, python-format msgid "" "Castling availability field is not legal. \n" "\n" "%s" msgstr "" #: lib/pychess/Utils/lutils/LBoard.py:192 #, python-format msgid "" "En passant cord is not legal. \n" "\n" "%s" msgstr "" #: lib/pychess/Utils/lutils/lmove.py:260 msgid "invalid promoted piece" msgstr "" #: lib/pychess/Utils/lutils/lmove.py:272 msgid "the move needs a piece and a cord" msgstr "" #: lib/pychess/Utils/lutils/lmove.py:306 lib/pychess/Utils/lutils/lmove.py:556 msgid "promotion move without promoted piece is incorrect" msgstr "" #: lib/pychess/Utils/lutils/lmove.py:312 #, python-format msgid "the captured cord (%s) is incorrect" msgstr "" #: lib/pychess/Utils/lutils/lmove.py:323 #, python-format msgid "the end cord (%s) is incorrect" msgstr "" #: lib/pychess/Utils/lutils/strateval.py:24 sidepanel/commentPanel.py:191 #: sidepanel/commentPanel.py:208 msgid "and" msgstr "" #: lib/pychess/Utils/lutils/strateval.py:43 msgid "draws" msgstr "" #: lib/pychess/Utils/lutils/strateval.py:45 msgid "mates" msgstr "" #: lib/pychess/Utils/lutils/strateval.py:49 msgid "puts opponent in check" msgstr "" #: lib/pychess/Utils/lutils/strateval.py:73 msgid "improves king safety" msgstr "" #: lib/pychess/Utils/lutils/strateval.py:75 msgid "slightly improves king safety" msgstr "" #: lib/pychess/Utils/lutils/strateval.py:108 msgid "moves a rook to an open file" msgstr "" #: lib/pychess/Utils/lutils/strateval.py:109 msgid "moves an rook to a half-open file" msgstr "" #: lib/pychess/Utils/lutils/strateval.py:119 #: lib/pychess/Utils/lutils/strateval.py:121 #: lib/pychess/Utils/lutils/strateval.py:124 #: lib/pychess/Utils/lutils/strateval.py:126 #, python-format msgid "moves bishop into fianchetto: %s" msgstr "" #: lib/pychess/Utils/lutils/strateval.py:132 #, python-format msgid "promotes a Pawn to a %s" msgstr "" #: lib/pychess/Utils/lutils/strateval.py:135 msgid "castles" msgstr "" #: lib/pychess/Utils/lutils/strateval.py:158 msgid "takes back material" msgstr "" #: lib/pychess/Utils/lutils/strateval.py:162 #: lib/pychess/Utils/lutils/strateval.py:170 msgid "sacrifies material" msgstr "" #: lib/pychess/Utils/lutils/strateval.py:164 msgid "exchanges material" msgstr "" #: lib/pychess/Utils/lutils/strateval.py:166 msgid "captures material" msgstr "" #: lib/pychess/Utils/lutils/strateval.py:291 #, python-format msgid "rescues a %s" msgstr "" #: lib/pychess/Utils/lutils/strateval.py:294 #, python-format msgid "threatens to win material by %s" msgstr "" #: lib/pychess/Utils/lutils/strateval.py:296 #, python-format msgid "increases the pressure on %s" msgstr "" #: lib/pychess/Utils/lutils/strateval.py:298 #, python-format msgid "defends %s" msgstr "" #: lib/pychess/Utils/lutils/strateval.py:336 #, python-format msgid "pins an enemy %(oppiece)s on the %(piece)s at %(cord)s" msgstr "" #: lib/pychess/Utils/lutils/strateval.py:369 #, python-format msgid "White has a new piece in outpost: %s" msgstr "" #: lib/pychess/Utils/lutils/strateval.py:377 #, python-format msgid "Black has a new piece in outpost: %s" msgstr "" #: lib/pychess/Utils/lutils/strateval.py:416 #, python-format msgid "%(color)s has a new passed pawn on %(cord)s" msgstr "" #: lib/pychess/Utils/lutils/strateval.py:470 msgid "half-open" msgstr "" #: lib/pychess/Utils/lutils/strateval.py:472 #, python-format msgid "in the %(x)s%(y)s file" msgstr "" #: lib/pychess/Utils/lutils/strateval.py:474 #, python-format msgid "in the %(x)s%(y)s files" msgstr "" #: lib/pychess/Utils/lutils/strateval.py:477 #, python-format msgid "%(color)s got a double pawn %(place)s" msgstr "" #: lib/pychess/Utils/lutils/strateval.py:478 #, python-format msgid "%(color)s got new double pawns %(place)s" msgstr "" #: lib/pychess/Utils/lutils/strateval.py:485 #, python-format msgid "%(color)s got an isolated pawn in the %(x)s file" msgid_plural "%(color)s got isolated pawns in the %(x)s files" msgstr[0] "" msgstr[1] "" #: lib/pychess/Utils/lutils/strateval.py:492 #, python-format msgid "%s moves pawns into stonewall formation" msgstr "" #: lib/pychess/Utils/lutils/strateval.py:507 #: lib/pychess/Utils/lutils/strateval.py:514 #, python-format msgid "%s can no longer castle" msgstr "" #: lib/pychess/Utils/lutils/strateval.py:508 #: lib/pychess/Utils/lutils/strateval.py:515 #, python-format msgid "%s can no longer castle in queenside" msgstr "" #: lib/pychess/Utils/lutils/strateval.py:510 #: lib/pychess/Utils/lutils/strateval.py:517 #, python-format msgid "%s can no longer castle in kingside" msgstr "" #: lib/pychess/Utils/lutils/strateval.py:551 #, python-format msgid "%(opcolor)s has a new trapped bishop on %(cord)s" msgstr "" #: lib/pychess/Utils/lutils/strateval.py:573 #, python-format msgid "develops a pawn: %s" msgstr "" #: lib/pychess/Utils/lutils/strateval.py:574 #, python-format msgid "brings a pawn closer to the backrow: %s" msgstr "" #: lib/pychess/Utils/lutils/strateval.py:591 #, python-format msgid "brings a %(piece)s closer to enemy king: %(cord)s" msgstr "" #: lib/pychess/Utils/lutils/strateval.py:594 #, python-format msgid "develops a %(piece)s: %(cord)s" msgstr "" #: lib/pychess/Utils/lutils/strateval.py:612 #, python-format msgid "places a %(piece)s more active: %(cord)s" msgstr "" #: lib/pychess/Utils/lutils/strateval.py:638 msgid "White should do pawn storm in right" msgstr "" #: lib/pychess/Utils/lutils/strateval.py:640 msgid "Black should do pawn storm in left" msgstr "" #: lib/pychess/Utils/lutils/strateval.py:643 msgid "White should do pawn storm in left" msgstr "" #: lib/pychess/Utils/lutils/strateval.py:645 msgid "Black should do pawn storm in right" msgstr "" #: lib/pychess/Utils/lutils/strateval.py:671 msgid "Black has a rather cramped position" msgstr "" #: lib/pychess/Utils/lutils/strateval.py:673 msgid "Black has a slightly cramped position" msgstr "" #: lib/pychess/Utils/lutils/strateval.py:675 msgid "White has a rather cramped position" msgstr "" #: lib/pychess/Utils/lutils/strateval.py:677 msgid "White has a slightly cramped position" msgstr "" #: sidepanel/annotationPanel.py:26 msgid "Annotation" msgstr "" #: sidepanel/annotationPanel.py:29 msgid "Annotated game" msgstr "" #: sidepanel/annotationPanel.py:236 msgid "Copy PGN" msgstr "" #: sidepanel/annotationPanel.py:249 msgid "Add start comment" msgstr "" #: sidepanel/annotationPanel.py:254 msgid "Add comment" msgstr "" #: sidepanel/annotationPanel.py:258 sidepanel/annotationPanel.py:316 msgid "Edit comment" msgstr "" #: sidepanel/annotationPanel.py:269 msgid "Forced move" msgstr "" #: sidepanel/annotationPanel.py:274 msgid "Add move symbol" msgstr "" #: sidepanel/annotationPanel.py:280 msgid "Unclear position" msgstr "" #: sidepanel/annotationPanel.py:289 msgid "Zugzwang" msgstr "" #: sidepanel/annotationPanel.py:290 msgid "Development adv." msgstr "" #: sidepanel/annotationPanel.py:291 msgid "Initiative" msgstr "" #: sidepanel/annotationPanel.py:292 msgid "With attack" msgstr "" #: sidepanel/annotationPanel.py:293 msgid "Compensation" msgstr "" #: sidepanel/annotationPanel.py:294 msgid "Counterplay" msgstr "" #: sidepanel/annotationPanel.py:295 msgid "Time pressure" msgstr "" #: sidepanel/annotationPanel.py:300 msgid "Add evaluation symbol" msgstr "" #: sidepanel/annotationPanel.py:304 msgid "Remove symbols" msgstr "" #: sidepanel/annotationPanel.py:911 #, python-format msgid "round %s" msgstr "" #: sidepanel/bookPanel.py:21 msgid "Hints" msgstr "" #: sidepanel/bookPanel.py:25 msgid "" "The hint panel will provide computer advice during each stage of the game" msgstr "" #: sidepanel/bookPanel.py:27 msgid "Official PyChess panel." msgstr "" #: sidepanel/bookPanel.py:87 msgid "Opening Book" msgstr "" #: sidepanel/bookPanel.py:88 msgid "" "The opening book will try to inspire you during the opening phase of the " "game by showing you common moves made by chess masters" msgstr "" #: sidepanel/bookPanel.py:139 #, python-format msgid "Analysis by %s" msgstr "" #: sidepanel/bookPanel.py:140 #, python-format msgid "" "%s will try to predict which move is best and which side has the advantage" msgstr "" #: sidepanel/bookPanel.py:142 #, python-format msgid "Threat analysis by %s" msgstr "" #: sidepanel/bookPanel.py:143 #, python-format msgid "" "%s will identify what threats would exist if it were your opponent's turn to" " move" msgstr "" #: sidepanel/bookPanel.py:159 sidepanel/bookPanel.py:269 msgid "Calculating..." msgstr "" #: sidepanel/bookPanel.py:300 msgid "" "Engine scores are in units of pawns, from White's point of view. Double " "clicking on analysis lines you can insert them into Annotation panel as " "variations." msgstr "" #: sidepanel/bookPanel.py:302 msgid "" "Adding suggestions can help you find ideas, but slows down the computer's " "analysis." msgstr "" #: sidepanel/bookPanel.py:311 msgid "Endgame Table" msgstr "" #: sidepanel/bookPanel.py:315 msgid "" "The endgame table will show exact analysis when there are few pieces on the " "board." msgstr "" #: sidepanel/bookPanel.py:364 sidepanel/bookPanel.py:367 #, python-format msgid "Mate in %d" msgstr "" #: sidepanel/bookPanel.py:554 msgid "" "In this position,\n" "there is no legal move." msgstr "" #: sidepanel/chatPanel.py:21 msgid "" "The chat panel lets you communicate with your opponent during the game, " "assuming he or she is interested" msgstr "" #: sidepanel/commentPanel.py:16 msgid "Comments" msgstr "" #: sidepanel/commentPanel.py:20 msgid "The comments panel will try to analyze and explain the moves played" msgstr "" #: sidepanel/commentPanel.py:121 msgid "Initial position" msgstr "" #: sidepanel/commentPanel.py:254 #, python-format msgid "%(color)s moves a %(piece)s to %(cord)s" msgstr "" #: sidepanel/engineOutputPanel.py:15 msgid "Engines" msgstr "" #: sidepanel/engineOutputPanel.py:20 msgid "" "The engine output panel shows the thinking output of chess engines (computer" " players) during a game" msgstr "" #: sidepanel/engineOutputPanel.py:44 msgid "No chess engines (computer players) are participating in this game." msgstr "" #: sidepanel/historyPanel.py:10 msgid "Move History" msgstr "" #: sidepanel/historyPanel.py:13 msgid "" "The moves sheet keeps track of the players' moves and lets you navigate " "through the game history" msgstr "" #: sidepanel/scorePanel.py:15 msgid "Score" msgstr "" #: sidepanel/scorePanel.py:19 msgid "" "The score panel tries to evaluate the positions and shows you a graph of the" " game progress" msgstr "" pychess-0.12.2/lang/jv/LC_MESSAGES/pychess.mo0000644000175000017470000000501112653231273020711 0ustar tamasusers00000000000000-=' . ?Ke t    #5TZa ftz   "+3( %2 M [fnrx ~  & 1 6 = D U \ j p u      " + ' )$+ "%&-*(   , !#Promote pawn to what?AnimationDate of gameGame dataNewsPlay Sound When...PlayersToolsBishopClockEmailEvent:Game informationKnightMinutes:NameNew GameNormalOffer _DrawOpen GamePingPlayer _RatingPreferencesPromotionPyChess - Connect to Internet ChessPyChess - Internet Chess: FICSQueenRatingRookSave Game _AsSite:The game has been abortedTimeTypeUnknown_Accept_Actions_Game_Name:_New Game_Password:_Save Gamehttp://en.wikipedia.org/wiki/Chesshttp://en.wikipedia.org/wiki/Rules_of_chessProject-Id-Version: pychess Report-Msgid-Bugs-To: POT-Creation-Date: 2016-01-27 13:28+0100 PO-Revision-Date: 2016-01-28 08:56+0000 Last-Translator: slav0nic Language-Team: Javanese (http://www.transifex.com/gbtami/pychess/language/jv/) MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Language: jv Plural-Forms: nplurals=2; plural=(n != 1); Promosi pion dadi apa?AnimasiTanggal mainData gimWartaMainke suara yen...PemainMenteriJamEmailEven:Informasi GimJaranMenit:JenengGim AnyarNormalTawani _DrawBuka GimPing_Rating PemainPilihanPromosiPyChess - Nggabung ning Internet ChessPyChess - Internet Chess: FICSRatuRatingBetengSimpen Gim D_AdiSitus:Gim dibatalkeWektuTipeOra dikenaliT_Ampa_Aksi_Gim_NomoGim A_Nyar_Pasword_Simpen Gimhttp://en.wikipedia.org/wiki/Chesshttp://en.wikipedia.org/wiki/Rules_of_chesspychess-0.12.2/lang/sq/0000755000175000017470000000000012653231274015121 5ustar tamasusers00000000000000pychess-0.12.2/lang/sq/LC_MESSAGES/0000755000175000017470000000000012653231274016706 5ustar tamasusers00000000000000pychess-0.12.2/lang/sq/LC_MESSAGES/pychess.po0000644000175000017470000033641512653216213020734 0ustar tamasusers00000000000000# SOME DESCRIPTIVE TITLE. # Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER # This file is distributed under the same license as the pychess package. # # Translators: # Ardit Dani , 2014-2015 # gbtami , 2015 msgid "" msgstr "" "Project-Id-Version: pychess\n" "Report-Msgid-Bugs-To: \n" "POT-Creation-Date: 2016-01-27 13:28+0100\n" "PO-Revision-Date: 2016-01-28 08:56+0000\n" "Last-Translator: slav0nic \n" "Language-Team: Albanian (http://www.transifex.com/gbtami/pychess/language/sq/)\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" "Language: sq\n" "Plural-Forms: nplurals=2; plural=(n != 1);\n" # "Plural-Forms: nplurals=INTEGER; plural=EXPRESSION;\n" #: glade/analyze_game.glade:22 msgid "Analyze game" msgstr "Analizo lojën" #: glade/analyze_game.glade:87 msgid "Use analyzer:" msgstr "Përdorimi Analizuesit:" #: glade/analyze_game.glade:122 glade/PyChess.glade:2054 msgid "Maximum analysis time in seconds:" msgstr "Koha maksimale analize në sekonda:" #: glade/analyze_game.glade:163 msgid "" "If the analyzer finds a move where the evaluation difference (the difference" " between the evaluation for the move it thinks is the best move and the " "evaluation for the move made in the game) exceeds this value, it will add an" " annotation for that move (consisting of the engine's Principal Variation " "for the move) to the Annotation panel" msgstr "Nëse analizuesi gjen një lëvizje ku vlerësimi dallon (dallimi në mes të vlerësimit për lëvizje mendon është veprim më i mirë dhe vlerësimi për lëvizje të bëra në lojë) tejkalon këtë vlerë, ajo do të shtojë një shënim për këtë lëvizje (të përbërë në variacionin kryesor të motorrit për lëvizje) në panelin shënimit" #: glade/analyze_game.glade:164 msgid "Variation annotation creation threshold in centipawns:" msgstr "Variacion shënim krijimi pragu në inçushtarë:" #: glade/analyze_game.glade:198 msgid "Analyze from current position" msgstr "Analizo nga pozicioni aktual" #: glade/analyze_game.glade:214 msgid "Add threatening variation lines " msgstr "Shto linja kërcënuese variacioni" #: glade/analyze_game.glade:229 glade/PyChess.glade:1459 msgid "Colorize analyzed moves" msgstr "Ngjyros lëvizje të analizuara" #: glade/analyze_game.glade:244 glade/PyChess.glade:1495 msgid "Show evaluation values" msgstr "Trego vlerat e vlerësimit" #: glade/discovererDialog.glade:18 msgid "PyChess is discovering your engines. Please wait." msgstr "PyShah po zbulon motorët tuaj. Ju lutem prisni." #: glade/discovererDialog.glade:77 msgid "PyChess.py:" msgstr "PyChess.py:" #: glade/discovererDialog.glade:89 msgid "ShredderLinuxChess:" msgstr "ShredderLinuxShah:" #: glade/discovererDialog.glade:101 msgid "gnuchess:" msgstr "gnushah:" #: glade/fics_logon.glade:7 msgid "PyChess - Connect to Internet Chess" msgstr "PyShah - Lidhu me Shahun në Internet" #: glade/fics_logon.glade:47 msgid "Connect to the Free Online Chess Server" msgstr "Lidhu me Serverin e Shahut Nëlinjë Falas" #: glade/fics_logon.glade:129 glade/taskers.glade:394 msgid "_Password:" msgstr "_Fjalëkalim:" #: glade/fics_logon.glade:143 msgid "_Name:" msgstr "_Emri:" #: glade/fics_logon.glade:191 msgid "Log on as _Guest" msgstr "Hyr si_Mysafir" #: glade/fics_logon.glade:227 msgid "Host:" msgstr "Pritësi:" #: glade/fics_logon.glade:259 msgid "Po_rts:" msgstr "Po_rtë:" #: glade/fics_logon.glade:271 msgid "Auto login on startup" msgstr "Hyrje automatike në fillim" #: glade/fics_logon.glade:385 msgid "S_ign up" msgstr "Hyr" #: glade/fics_lounge.glade:35 msgid "Challenge: " msgstr "Sfidë: " #: glade/fics_lounge.glade:97 msgid "Send Challenge" msgstr "Dërgo Sfidë" #: glade/fics_lounge.glade:133 msgid "Challenge:" msgstr "Sfidë:" #: glade/fics_lounge.glade:327 glade/fics_lounge.glade:2078 msgid "Lightning:" msgstr "Ndriçimi:" #: glade/fics_lounge.glade:351 glade/fics_lounge.glade:2102 msgid "Standard:" msgstr "Standart:" #: glade/fics_lounge.glade:375 glade/fics_lounge.glade:2126 msgid "Blitz:" msgstr "Blitz:" #: glade/fics_lounge.glade:400 msgid "2 min, Fischer Random, Black" msgstr "2 min, Fischer Rastësishëm, Zezë" #: glade/fics_lounge.glade:422 msgid "10 min + 6 sec/move, White" msgstr "10 min + 6 sek/leviz, Bardhë" #: glade/fics_lounge.glade:444 msgid "5 min" msgstr "5 min" #: glade/fics_lounge.glade:480 msgid "Edit Seek" msgstr "Redakto Kërko" #: glade/fics_lounge.glade:584 lib/pychess/ic/ICLounge.py:2208 #: lib/pychess/ic/__init__.py:101 lib/pychess/Utils/GameModel.py:206 msgid "Untimed" msgstr "Pambatur" #: glade/fics_lounge.glade:637 msgid "Minutes: " msgstr "Minuta:" #: glade/fics_lounge.glade:665 msgid " Gain: " msgstr "Rritje:" #: glade/fics_lounge.glade:703 msgid "Time control: " msgstr "kontroll Kohe:" #: glade/fics_lounge.glade:716 lib/pychess/ic/FICSObjects.py:56 #: lib/pychess/ic/ICLounge.py:1137 lib/pychess/ic/ICLounge.py:2208 #: lib/pychess/ic/__init__.py:99 msgid "Standard" msgstr "Standart" #: glade/fics_lounge.glade:757 glade/newInOut.glade:633 msgid "Time Control" msgstr "Kontroll Kohe" #: glade/fics_lounge.glade:814 glade/fics_lounge.glade:1346 msgid "Don't care" msgstr "Nuk dua tja di" #: glade/fics_lounge.glade:879 msgid "Your strength: " msgstr "Forca juaj:" #: glade/fics_lounge.glade:921 msgid "(Blitz)" msgstr "(Blitz)" #: glade/fics_lounge.glade:951 msgid "Opponent's strength: " msgstr "Forca kundërshtarit:" #: glade/fics_lounge.glade:1055 msgid "" "When this button is in the \"locked\" state, the relationship\n" "between \"Opponent's strength\" and \"Your strength\" will be\n" "preserved when \n" "a) your rating for the type of game sought has changed\n" "b) you change the variant or the time control" msgstr "Kur ky buton është në gjëndje \"mbyllur\", marrëdhënia\nmidis \"forcë të kundërshtarit\" dhe \"forcës tënde\" do të jetë\nruajtur kur\na) Vlerësimi juaj për llojin e lojës që kërkohet ka ndryshuar\nb) ju ndryshoni variantin ose kontrollin e kohës" #: glade/fics_lounge.glade:1095 msgid "Center:" msgstr "Qender:" #: glade/fics_lounge.glade:1134 msgid "1200" msgstr "1200" #: glade/fics_lounge.glade:1188 msgid "Tolerance:" msgstr "Tolerance:" #: glade/fics_lounge.glade:1243 lib/pychess/ic/ICLounge.py:2452 msgid "Hide" msgstr "Fsheh" #: glade/fics_lounge.glade:1289 msgid "Opponent Strength" msgstr "Forca Kundërshtrarit" #: glade/fics_lounge.glade:1386 lib/pychess/Database/gamelist.py:40 #: lib/pychess/ic/ICLounge.py:1357 lib/pychess/ic/ICLounge.py:1557 #: lib/pychess/ic/ICLounge.py:2108 lib/pychess/Utils/repr.py:10 #: lib/pychess/widgets/ChessClock.py:40 #: lib/pychess/widgets/TaskerManager.py:153 msgid "White" msgstr "Bardhë" #: glade/fics_lounge.glade:1414 lib/pychess/Database/gamelist.py:40 #: lib/pychess/ic/ICLounge.py:1358 lib/pychess/ic/ICLounge.py:1558 #: lib/pychess/ic/ICLounge.py:2110 lib/pychess/Utils/repr.py:10 #: lib/pychess/widgets/ChessClock.py:40 #: lib/pychess/widgets/TaskerManager.py:154 msgid "Black" msgstr "Zezë" #: glade/fics_lounge.glade:1453 msgid "Your Color" msgstr "Ngjyra Juaj" #: glade/fics_lounge.glade:1512 msgid "Play normal chess rules" msgstr "Luaj rregulla normale shahi" #: glade/fics_lounge.glade:1552 msgid "Play" msgstr "Luaj" #: glade/fics_lounge.glade:1618 glade/newInOut.glade:833 msgid "Chess Variant" msgstr "Variante Shahi" #: glade/fics_lounge.glade:1676 msgid "Rated game" msgstr "Lojë e vlerësuar" #: glade/fics_lounge.glade:1692 msgid "Manually accept opponent" msgstr "Pranoni kundërshtar joautomatikisht " #: glade/fics_lounge.glade:1722 msgid "Options" msgstr "Opsione" #: glade/fics_lounge.glade:1750 msgid "PyChess - Internet Chess: FICS" msgstr "PyShah - Shah Në Internet: FICS" #: glade/fics_lounge.glade:1823 msgid "_Clear Seeks" msgstr "_Pastro kërkim" #: glade/fics_lounge.glade:1847 msgid "_Accept" msgstr "_Prano" #: glade/fics_lounge.glade:1871 msgid "_Decline" msgstr "_Refuzo" #: glade/fics_lounge.glade:2151 msgid "2 min, Fischer Random, 1800↓, Black" msgstr "2 min, Fischer Rastësishëm, 1800↓, Zezë" #: glade/fics_lounge.glade:2172 msgid "10 min + 6 sec/move, 1400↑, White" msgstr "10 min + 6 sek/leviz, 1400↑, Bardhë" #: glade/fics_lounge.glade:2193 msgid "5 min, 1200-1800, Manual" msgstr "5 min, 1200-1800, Manuale" #: glade/fics_lounge.glade:2247 msgid "Send all seeks" msgstr "Dërgo t'gjitha kërkimet" #: glade/fics_lounge.glade:2301 msgid "Send seek" msgstr "Dërgo kërkim" #: glade/fics_lounge.glade:2337 msgid "Create Seek" msgstr "Krijo kërkim" #: glade/fics_lounge.glade:2353 msgid "_Seeks / Challenges" msgstr "_Kërko / Sfidat" #: glade/fics_lounge.glade:2374 lib/pychess/ic/ICLounge.py:472 #: lib/pychess/ic/ICLounge.py:670 lib/pychess/ic/ICLounge.py:1357 #: lib/pychess/ic/ICLounge.py:1358 msgid "Rating" msgstr "Vlerësim" #: glade/fics_lounge.glade:2399 msgid "Time" msgstr "Orë" #: glade/fics_lounge.glade:2419 msgid "Seek _Graph" msgstr "Kërko _Grafik" #: glade/fics_lounge.glade:2444 msgid "0 Players Ready" msgstr "0 Lojtarë Gati" #: glade/fics_lounge.glade:2496 msgid "Challenge" msgstr "Sfidë" #: glade/fics_lounge.glade:2549 glade/fics_lounge.glade:2735 msgid "Observe" msgstr "Vëzhgo" #: glade/fics_lounge.glade:2602 msgid "Start Private Chat" msgstr "Fillo bisedë private" #: glade/fics_lounge.glade:2659 msgid "_Player List" msgstr "_Lista Lojtarëve" #: glade/fics_lounge.glade:2792 msgid "_Game List" msgstr "_Lista Lojrave" #: glade/fics_lounge.glade:2847 msgid "_My games" msgstr "" #: glade/fics_lounge.glade:2904 glade/PyChess.glade:841 msgid "Offer _Resume" msgstr "Ofro _Rifillim" #: glade/fics_lounge.glade:2962 glade/PyChess.glade:880 msgid "R_esign" msgstr "Dorëh_eqje" #: glade/fics_lounge.glade:3006 glade/PyChess.glade:820 msgid "Offer _Draw" msgstr "Ofro Barazim" #: glade/fics_lounge.glade:3050 msgid "Offer A_bort" msgstr "Ofro Ndërpre" #: glade/fics_lounge.glade:3107 msgid "Pre_view" msgstr "Parashikim" #: glade/fics_lounge.glade:3151 msgid "Examine" msgstr "" #: glade/fics_lounge.glade:3208 msgid "_Archived" msgstr "" #: glade/fics_lounge.glade:3313 msgid "News" msgstr "Lajme" #: glade/fics_lounge.glade:3345 msgid "Show Console" msgstr "Trego Tastierë" #: glade/fics_lounge.glade:3359 msgid "Show _Chat" msgstr "Shfaq _Bisedë" #: glade/fics_lounge.glade:3373 msgid "_Log Off" msgstr "_Dil" #: glade/fics_lounge.glade:3393 msgid "Tools" msgstr "Vegla" #: glade/fics_lounge.glade:3428 msgid "Asymmetric Random " msgstr "Asimetrik të rastësishme" #: glade/findbar.glade:6 msgid "window1" msgstr "Dritare1" #: glade/findbar.glade:21 msgid "0 of 0" msgstr "0 e 0" #: glade/findbar.glade:66 msgid "Search:" msgstr "Kërko:" #: glade/findbar.glade:134 msgid "_Previous" msgstr "_Mëparshme" #: glade/findbar.glade:192 msgid "_Next" msgstr "_tjetri" #: glade/newInOut.glade:45 lib/pychess/widgets/newGameDialog.py:445 msgid "New Game" msgstr "Lojë e Re" #: glade/newInOut.glade:108 msgid "_Start Game" msgstr "_Fillo Lojen" #: glade/newInOut.glade:130 msgid "Copy FEN" msgstr "Kopjo FEN" #: glade/newInOut.glade:143 msgid "Clear" msgstr "Pastro" #: glade/newInOut.glade:156 msgid "Paste FEN" msgstr "Ngjit FEN" #: glade/newInOut.glade:257 msgid "_Black player:" msgstr "_Lojtari Zi:" #: glade/newInOut.glade:274 msgid "_White player:" msgstr "_Lojtari Bardhë:" #: glade/newInOut.glade:385 msgid "Players" msgstr "Lojtarët" #: glade/newInOut.glade:436 msgid "_Untimed" msgstr "_Pamatur" #: glade/newInOut.glade:475 msgid "Blitz: 5 min" msgstr "Blitz: 5 min" #: glade/newInOut.glade:526 msgid "Rapid: 15 min + 10 sec/move" msgstr "Shpejtë: 15 min + 10 sek/lëvizje" #: glade/newInOut.glade:575 msgid "Normal: 40 min + 15 sec/move" msgstr "Normale: 40 min + 15 sek/lëvizje" #: glade/newInOut.glade:684 msgid "_Play Normal chess" msgstr "_Luaj shah normal" #: glade/newInOut.glade:724 msgid "Play Fischer Random chess" msgstr "Luaj Fischer shah Rastësishëm" #: glade/newInOut.glade:774 msgid "Play Losers chess" msgstr "Luaj Shah T'dobët" #: glade/newInOut.glade:919 msgid "Open Game" msgstr "Lojë Hapur" #: glade/newInOut.glade:1162 msgid "Initial Position" msgstr "Pozicioni Fillestarë" #: glade/newInOut.glade:1219 msgid "Enter Game Notation" msgstr "Shkruaj Shënimin Lojës" #: glade/newInOut.glade:1314 msgid "Halfmove clock" msgstr "Gjysëmlevizje orë " #: glade/newInOut.glade:1327 msgid "En passant line" msgstr "Një linjë kalimi" #: glade/newInOut.glade:1339 msgid "Side to move" msgstr "Anë për të lëvizur" #: glade/newInOut.glade:1351 msgid "Move number" msgstr "Numërim lëvizje" #: glade/newInOut.glade:1361 msgid "Black O-O" msgstr "Zezë O-O" #: glade/newInOut.glade:1375 msgid "Black O-O-O" msgstr "Zezë O-O-O" #: glade/newInOut.glade:1389 msgid "White O-O-O" msgstr "Bardhë O-O-O" #: glade/newInOut.glade:1403 msgid "White O-O" msgstr "Bardhë O-O" #: glade/promotion.glade:7 msgid "Promotion" msgstr "Promocion" #: glade/promotion.glade:49 lib/pychess/Utils/repr.py:12 msgid "Queen" msgstr "Mbreteresha" #: glade/promotion.glade:95 lib/pychess/Utils/repr.py:12 msgid "Rook" msgstr "Torra" #: glade/promotion.glade:141 lib/pychess/Utils/repr.py:12 msgid "Bishop" msgstr "Oficeri" #: glade/promotion.glade:187 lib/pychess/Utils/repr.py:12 msgid "Knight" msgstr "Kali" #: glade/promotion.glade:233 lib/pychess/Utils/repr.py:12 msgid "King" msgstr "Mberti" #: glade/promotion.glade:265 msgid "Promote pawn to what?" msgstr "Nxitja torrës në çfarë?" #: glade/PyChess.glade:9 msgid "Chess client" msgstr "Klientë shahu" #: glade/PyChess.glade:44 msgid "Game information" msgstr "Informacioni lojës" #: glade/PyChess.glade:164 msgid "Event:" msgstr "Ngjarje:" #: glade/PyChess.glade:178 msgid "Site:" msgstr "Faqe:" #: glade/PyChess.glade:204 msgid "Round:" msgstr "Loja:" #: glade/PyChess.glade:237 msgid "White:" msgstr "Bardhë:" #: glade/PyChess.glade:249 msgid "Black:" msgstr "Zezë:" #: glade/PyChess.glade:302 msgid "Game data" msgstr "Të Dhëna Loje" #: glade/PyChess.glade:357 msgid "Date of game" msgstr "Data e lojës" #: glade/PyChess.glade:495 msgid "_Game" msgstr "_Lojë" #: glade/PyChess.glade:502 msgid "_New Game" msgstr "_Lojë e Re" #: glade/PyChess.glade:515 msgid "Play _Internet Chess" msgstr "Luaj Shah _Interneti" #: glade/PyChess.glade:534 msgid "_Load Game" msgstr "_Ngarko Lojen" #: glade/PyChess.glade:550 msgid "Load _Recent Game" msgstr "Ngarko Lojën e Fundit" #: glade/PyChess.glade:558 msgid "Open _Database" msgstr "Hap _Bazë të Dhënash" #: glade/PyChess.glade:569 lib/pychess/widgets/newGameDialog.py:615 msgid "Setup Position" msgstr "Pozicioni Ndërtuesit" #: glade/PyChess.glade:579 msgid "Enter Game _Notation" msgstr "Shkruaj Shë_nimet Lojës" #: glade/PyChess.glade:592 msgid "_Save Game" msgstr "_Ruaj Lojën" #: glade/PyChess.glade:606 msgid "Save Game _As" msgstr "Ruaj Lojën _Si" #: glade/PyChess.glade:624 msgid "Share Game" msgstr "Shpërndaj lojën" #: glade/PyChess.glade:630 msgid "_Export Position" msgstr "_Eksporto Pozicionin" #: glade/PyChess.glade:644 msgid "_Analyze Game" msgstr "_Analizo Lojën" #: glade/PyChess.glade:678 msgid "Player _Rating" msgstr "Vlerësim Lojtarit" #: glade/PyChess.glade:723 msgid "_Edit" msgstr "_Modifiko" #: glade/PyChess.glade:734 msgid "_Copy PGN" msgstr "_Kopjo PGN" #: glade/PyChess.glade:746 msgid "_Copy FEN" msgstr "_Kopjo FEN" #: glade/PyChess.glade:763 msgid "_Engines" msgstr "_Motorë" #: glade/PyChess.glade:789 msgid "_Actions" msgstr "_Veprim" #: glade/PyChess.glade:800 msgid "Offer _Abort" msgstr "Ofro Ndërpre" #: glade/PyChess.glade:810 msgid "Offer Ad_journment" msgstr "Ofro Pezullim" #: glade/PyChess.glade:831 msgid "Offer _Pause" msgstr "Ofro _Pushim" #: glade/PyChess.glade:847 msgid "Offer _Undo" msgstr "Ofro _Kthe" #: glade/PyChess.glade:870 msgid "_Call Flag" msgstr "_Thirr Flamur" #: glade/PyChess.glade:890 msgid "Ask to _Move" msgstr "Kërko të _Leviz" #: glade/PyChess.glade:905 msgid "Auto Call _Flag" msgstr "Thirr _Flamurë Auto" #: glade/PyChess.glade:918 msgid "_View" msgstr "_Vëzhgo" #: glade/PyChess.glade:925 msgid "_Rotate Board" msgstr "_Rotullo Fushën" #: glade/PyChess.glade:939 msgid "_Fullscreen" msgstr "_Ekranplotë" #: glade/PyChess.glade:952 msgid "Leave _Fullscreen" msgstr "Lëre _Ekran-plotë" #: glade/PyChess.glade:969 msgid "_Show Sidepanels" msgstr "_Shfaq Panelanësor" #: glade/PyChess.glade:980 msgid "_Log Viewer" msgstr "_Vëzhgo Shenime " #: glade/PyChess.glade:997 msgid "_Hint mode" msgstr "Mënyrë shenje" #: glade/PyChess.glade:1009 msgid "Sp_y mode" msgstr "Mënyrë Spiune" #: glade/PyChess.glade:1024 msgid "_Help" msgstr "_Ndihmë" #: glade/PyChess.glade:1034 msgid "About Chess" msgstr "Rreth Shahut" #: glade/PyChess.glade:1043 msgid "How to Play" msgstr "Si të Luaj" #: glade/PyChess.glade:1052 msgid "Translate PyChess" msgstr "Përkthe PyShah" #: glade/PyChess.glade:1058 msgid "Tip of the Day" msgstr "Këshillë e Ditës" #: glade/PyChess.glade:1153 msgid "Default" msgstr "Parazgjedhur" #: glade/PyChess.glade:1156 msgid "Knights" msgstr "Kalorës" #: glade/PyChess.glade:1167 lib/pychess/widgets/preferencesDialog.py:349 msgid "Beep" msgstr "Bip" #: glade/PyChess.glade:1170 lib/pychess/widgets/preferencesDialog.py:350 msgid "Select sound file..." msgstr "Zgjedh dokument zëri..." #: glade/PyChess.glade:1173 lib/pychess/widgets/preferencesDialog.py:348 msgid "No sound" msgstr "Ska volum" #: glade/PyChess.glade:1180 msgid "Preferences" msgstr "Preferencat" #: glade/PyChess.glade:1218 msgid "The displayed name of the first human player, e.g., John." msgstr "Emri shfaqur i lojtarit të parë njerëzor, p.sh., John." #: glade/PyChess.glade:1230 msgid "Name of _first human player:" msgstr "Emri i lojtarit të parë njerëzorë:" #: glade/PyChess.glade:1259 msgid "The displayed name of the guest player, e.g., Mary." msgstr "Emri shfaqur i lojtarit vizitor, p.sh., Mary." #: glade/PyChess.glade:1271 msgid "Name of s_econd human player:" msgstr "Emri i lojtarit të dytë njerëzorë:" #: glade/PyChess.glade:1307 msgid "_Hide tabs when only one game is open" msgstr "_Fsheh kutine kur vetëm një lojë është e hapur" #: glade/PyChess.glade:1312 msgid "" "If set, this hides the tab in the top of the playing window, when it is not " "needed." msgstr "Nëse vendosur, kjo fsheh kutinë në krye të dritares së lojës, kur nuk është e nevojshme." #: glade/PyChess.glade:1326 msgid "_Use main app closer [x] to close all games" msgstr "_Përdor app kryesorë afër [x] për të mbyllur të gjithë lojrat" #: glade/PyChess.glade:1331 msgid "" "If set, clicking on main application window closer first time it closes all " "games." msgstr "Nëse është vendosur, duke klikuar në dritaren kryesore mbyllëse të programit për herë të parë mbyll të gjitha lojrat." #: glade/PyChess.glade:1345 msgid "Auto _rotate board to current human player" msgstr "Rrotullo fushën për lojtarin aktual njeri" #: glade/PyChess.glade:1350 msgid "" "If set, the board will turn after each move, to show the natural view for " "the current player." msgstr "Nëse vendosur, bordi do të kthehet pas çdo lëvizje, për të treguar pamje natyrore për lojtarin aktual." #: glade/PyChess.glade:1364 msgid "Auto _promote to queen" msgstr "" #: glade/PyChess.glade:1369 msgid "If set, pawn promotes to queen without promotion dialog selection." msgstr "" #: glade/PyChess.glade:1383 msgid "Face _to Face display mode" msgstr "Ballë_Përballë mënyrë shfaqje" #: glade/PyChess.glade:1388 msgid "" "If set, the black pieces will be head down, suitable for playing against " "friends on mobile devices." msgstr "Nëse vendosur, gurët e zi do të jenë kokë poshtë, të përshtatshme për të luajtur kundër miqve në pajisje të lëvizshme." #: glade/PyChess.glade:1402 msgid "Sho_w cords" msgstr "Shfaq litarët" #: glade/PyChess.glade:1407 msgid "" "If set, the playing board will display labels and ranks for each chess " "field. These are usable in chess notation." msgstr "Nëse vendosur, bordi i lojës do të tregojë etiketat dhe rradhët për çdo fushë të shahut. Këto janë të përdorshme në simbol shahu." #: glade/PyChess.glade:1421 msgid "Show _captured pieces" msgstr "Shfaq gurët kapur" #: glade/PyChess.glade:1426 msgid "If set, the captured figurines will be shown next to the board." msgstr "Nëse vendosur, gurët e kapur do të shfaqen pranë fushës." #: glade/PyChess.glade:1440 msgid "Prefer figures in _notation" msgstr "Gurët e preferuar në _shënime" #: glade/PyChess.glade:1445 msgid "" "If set, PyChess will use figures to express moved pieces, rather than " "uppercase letters." msgstr "Nëse vendosur, PyShah do të përdorin shifra të shprehur gurët e lëvizur, në vend të shkronjave të mëdha." #: glade/PyChess.glade:1464 msgid "If set, PyChess will colorize suboptimal analyzed moves with red." msgstr "Nëse vendosur, PyChess do të ngjyrose analizat optimale të lëvizjeve me të kuqe." #: glade/PyChess.glade:1477 msgid "Show elapsed move times" msgstr "Shfaq kohën e lëvizjeve kaluar" #: glade/PyChess.glade:1482 msgid "If set, the elapsed time that a player used for the move is shown." msgstr "Nëse caktuar, koha e kaluar se një lojtari e përdorur për lëvizje është treguar." #: glade/PyChess.glade:1500 msgid "If set, the hint analyzer engine evaluation value is shown." msgstr "Nëse caktuar, vlera vlerësimit analizues së motorit është treguar." #: glade/PyChess.glade:1526 msgid "General Options" msgstr "" #: glade/PyChess.glade:1560 msgid "F_ull board animation" msgstr "Fushë e plotë animuar" #: glade/PyChess.glade:1565 msgid "Animate pieces, board rotation and more. Use this on fast machines." msgstr "Zbukuro gurët, rotacionin bordit dhe më shumë. Përdoreni këtë në makinat e shpejta." #: glade/PyChess.glade:1579 msgid "Only animate _moves" msgstr "Vetëm lëvizje të animuara" #: glade/PyChess.glade:1584 msgid "Only animate piece moves." msgstr "Vetëm gurë të animuar levizin" #: glade/PyChess.glade:1599 msgid "No _animation" msgstr "Jo _animuar" #: glade/PyChess.glade:1604 msgid "Never use animation. Use this on slow machines." msgstr "Asnjëherë mos përdorni animacion. Përdoreni këtë në makinat e ngadalta." #: glade/PyChess.glade:1632 msgid "Animation" msgstr "Animim" #: glade/PyChess.glade:1651 msgid "_General" msgstr "_Përgjithshëm" #: glade/PyChess.glade:1692 msgid "Use opening _book" msgstr "Përdor hapja_librit" #: glade/PyChess.glade:1697 msgid "If set, PyChess will suggest best opening moves on hint panel." msgstr "Nëse vendosur, PyShah do të sygjerojë levizjet hapëse më të mira në panelin shenjave." #: glade/PyChess.glade:1724 msgid "Polyglot book file:" msgstr "Polyglot dokument libri:" #: glade/PyChess.glade:1768 msgid "Use _local tablebases" msgstr "Përdor fushëbazë lokale " #: glade/PyChess.glade:1773 msgid "" "If set, PyChess will show game results for different moves in positions containing 6 or less pieces.\n" "You can download tablebase files from:\n" "http://www.olympuschess.com/egtb/gaviota/" msgstr "Nëse vendosur, PyShah do të tregojnë rezultate lojë për lëvizje të ndryshme në pozita që përmbajnë 6 ose më pak gurë.\nJu mund të shkarkoni dokumentet tabelë baza të dhënash nga:\n http://www.olympuschess.com/egtb/gaviota/" #: glade/PyChess.glade:1803 msgid "Gaviota TB path:" msgstr "Gaviota TB rrugë:" #: glade/PyChess.glade:1843 msgid "Use _online tablebases" msgstr "Përdor fushëbazë në linjë " #: glade/PyChess.glade:1848 msgid "" "If set, PyChess will show game results for different moves in positions containing 6 or less pieces.\n" "It will search positions from http://www.k4it.de/" msgstr "Nëse vendosur, PyShah do të tregojnë rezultate lojë për lëvizje të ndryshme në pozita që përmbajnë 6 ose më pak gurë.\nDo të kërkojë pozicione nga http://www.k4it.de/" #: glade/PyChess.glade:1870 msgid "Opening, endgame" msgstr "Hapje, fund-loje" #: glade/PyChess.glade:1904 msgid "Use _analyzer" msgstr "Përdor _analizuesin" #: glade/PyChess.glade:1946 msgid "" "The analyzer will run in the background and analyze the game. This is " "necessary for the hint mode to work" msgstr "Analizuesi do të punojë në sfond dh do të analizojë lojën. Kjo është e nevojshme për mënyrën ndihmë për të punuar" #: glade/PyChess.glade:1978 msgid "Use _inverted analyzer" msgstr "Përdor analizuesin kthyer" #: glade/PyChess.glade:2020 msgid "" "The inverse analyzer will analyze the game as if your opponent was to move. " "This is necessary for the spy mode to work" msgstr "Analizuesi kthyer do të analizojnë lojën si në qoftë se kundërshtari juaj është për të lëvizur. Kjo është e nevojshme për mënyrën spiun për të punuar" #: glade/PyChess.glade:2096 msgid "Analyzing" msgstr "Analizimi" #: glade/PyChess.glade:2118 msgid "_Hints" msgstr "_Shenja" #: glade/PyChess.glade:2263 msgid "Uninstall" msgstr "Ç'instalo" #: glade/PyChess.glade:2317 msgid "Ac_tive" msgstr "Ak_tive" #: glade/PyChess.glade:2367 msgid "Installed Sidepanels" msgstr "PaneliKrahut Instaluar" #: glade/PyChess.glade:2382 msgid "Side_panels" msgstr "Paneli_krahut" #: glade/PyChess.glade:2440 msgid "Light Squares :" msgstr "" #: glade/PyChess.glade:2479 msgid "Dark Squares :" msgstr "" #: glade/PyChess.glade:2515 msgid "Reset Default Colours" msgstr "" #: glade/PyChess.glade:2551 msgid "Board Colours" msgstr "" #: glade/PyChess.glade:2610 msgid "Chess Sets" msgstr "" #: glade/PyChess.glade:2634 msgid "Themes" msgstr "Temë" #: glade/PyChess.glade:2659 msgid "_Use sounds in PyChess" msgstr "_Përdor tinguj në PyShah" #: glade/PyChess.glade:2982 msgid "A player _checks:" msgstr "Një lojtarë jep _shah:" #: glade/PyChess.glade:2997 msgid "A player _moves:" msgstr "Një lojtarl _levizë:" #: glade/PyChess.glade:3010 msgid "Game is _drawn:" msgstr "Loja _remi:" #: glade/PyChess.glade:3025 msgid "Game is _lost:" msgstr "Loja _humbëse:" #: glade/PyChess.glade:3040 msgid "Game is _won:" msgstr "Loja u _fitua:" #: glade/PyChess.glade:3055 msgid "A player c_aptures:" msgstr "Një lojtarë jep k_apë:" #: glade/PyChess.glade:3084 msgid "Game is _set-up:" msgstr "Loja është ndërt_uar:" #: glade/PyChess.glade:3136 msgid "_Observed moves:" msgstr "Lëvizje vërejtura:" #: glade/PyChess.glade:3151 msgid "Observed _ends:" msgstr "Vëzhgimi _mbaroj:" #: glade/PyChess.glade:3265 msgid "Short on _time:" msgstr "Mbaroj _koha:" #: glade/PyChess.glade:3317 msgid "_Invalid move:" msgstr "_Lëvizje gabuar:" #: glade/PyChess.glade:3369 msgid "Activate alarm when _remaining sec is:" msgstr "Aktivizo alarmin kur _sekondat e mbetur janë:" #: glade/PyChess.glade:3416 msgid "Play Sound When..." msgstr "Luaj Tingull Kur..." #: glade/PyChess.glade:3438 msgid "_Sounds" msgstr "_Tinguj" #: glade/PyChess.glade:3463 msgid "_Auto save finished games" msgstr "_Ruaj automatikisht lojrat e mbaruara" #: glade/PyChess.glade:3497 msgid "Save files to:" msgstr "Ruaj skedarë në:" #: glade/PyChess.glade:3525 msgid "Use name format:" msgstr "Formati përdoruesi:" #: glade/PyChess.glade:3569 msgid "Names: #n1, #n2" msgstr "Emra: #n1, #n2" #: glade/PyChess.glade:3582 msgid "Year, month, day: #y, #m, #d" msgstr "Viti, muaj, dita: #v, #m, #d" #: glade/PyChess.glade:3619 msgid "Save elapsed move _times" msgstr "Ruaj lëvizjen_kohës kaluar" #: glade/PyChess.glade:3644 msgid "Save analyzing engine _evaluation values" msgstr "Ruaj analizën e vlerave e _vlerësimit së motorit " #: glade/PyChess.glade:3669 msgid "Save _own games only" msgstr "Ruani vetën lojën _tuaj " #: glade/PyChess.glade:3698 msgid "Save" msgstr "Ruaj" #: glade/PyChess.glade:3728 msgid "uci" msgstr "uci" #: glade/PyChess.glade:3731 msgid "xboard" msgstr "xfusha" #: glade/PyChess.glade:3739 msgid "Manage engines" msgstr "Menaxho motorët" #: glade/PyChess.glade:3837 msgid "Command:" msgstr "Komandë:" #: glade/PyChess.glade:3851 msgid "Protocol:" msgstr "Protokoll:" #: glade/PyChess.glade:3865 msgid "Parameters:" msgstr "Parametra:" #: glade/PyChess.glade:3878 msgid "Command line parameters needed by the engine." msgstr "Parametrat e linjës Komandave të nevojshme nga motori." #: glade/PyChess.glade:3903 msgid "" "Engines use uci or xboard communication protocol to talk to the GUI.\n" "If it can use both you can set here which one you like." msgstr "Motorët përdorin protokollin UCI ose xboard për komunikim bisedimi me GUI.\nNë qoftë se kjo mund të përdorë dy ju mund të vendosni këtu cilën një që ju pëlqen." #: glade/PyChess.glade:3929 msgid "Working directory:" msgstr "Skedarë funksional" #: glade/PyChess.glade:3942 msgid "The directory where the engine will be started from." msgstr "Skedari ku motori do të fillojë nga." #: glade/saveGamesDialog.glade:7 msgid "Quit PyChess" msgstr "Dil PyShah" #: glade/saveGamesDialog.glade:24 lib/pychess/widgets/ionest.py:424 msgid "Close _without Saving" msgstr "Mbyll _pa Ruajtur" #: glade/saveGamesDialog.glade:83 msgid "_Save %d documents" msgstr "_Ruaj %d dokumentet" #: glade/saveGamesDialog.glade:141 msgid "" "There are %d games with unsaved moves. Save changes before " "closing?" msgstr " Ka %d lojëra me lëvizje të pa-shpëtuara. Ruaj ndryshimet para mbylljes? " #: glade/saveGamesDialog.glade:161 msgid "Select the games you want to save:" msgstr "Zgjidhni lojrat që ju dëshironi të ruani:" #: glade/saveGamesDialog.glade:204 msgid "If you don't save, new changes to your games will be permanently lost." msgstr "Nëse nuk ruani, ndryshimet e reja në lojërat tuaja do të humbasin përgjithmonë." #: glade/taskers.glade:126 msgid "_Opponent:" msgstr "_Kundërshtari:" #: glade/taskers.glade:154 msgid "_Your Color:" msgstr "_Ngjyrat Tuaja:" #: glade/taskers.glade:219 msgid "_Start Game" msgstr "_Fillo Lojen" #: glade/taskers.glade:338 msgid "Log on as G_uest" msgstr "Hyr si Vizitor" #: glade/taskers.glade:410 msgid "Ha_ndle:" msgstr "Nofkë:" #: glade/taskers.glade:469 msgid "_Connect to server" msgstr "" #: glade/tipoftheday.glade:7 msgid "Tip Of The day" msgstr "Këshillë e Ditës" #: glade/tipoftheday.glade:62 msgid "Show tips at startup" msgstr "Shfaq këshillën në fillim" #: lib/pychess/Main.py:302 msgid "http://en.wikipedia.org/wiki/Chess" msgstr "http://en.wikipedia.org/wiki/Chess" #: lib/pychess/Main.py:305 msgid "http://en.wikipedia.org/wiki/Rules_of_chess" msgstr "http://en.wikipedia.org/wiki/Rules_of_chess" #: lib/pychess/Main.py:370 lib/pychess/widgets/gamenanny.py:80 msgid "Welcome" msgstr "Mirësevini" #: lib/pychess/Database/gamelist.py:40 msgid "Id" msgstr "Id" #: lib/pychess/Database/gamelist.py:40 msgid "W Elo" msgstr "W Elo" #: lib/pychess/Database/gamelist.py:40 msgid "B Elo" msgstr "B Elo" #: lib/pychess/Database/gamelist.py:41 msgid "Result" msgstr "Rezultat" #: lib/pychess/Database/gamelist.py:41 msgid "Event" msgstr "Ngjarje" #: lib/pychess/Database/gamelist.py:41 msgid "Site" msgstr "Faqe" #: lib/pychess/Database/gamelist.py:41 msgid "Round" msgstr "Loja" #: lib/pychess/Database/gamelist.py:41 msgid "Date" msgstr "Data" #: lib/pychess/Database/gamelist.py:41 msgid "ECO" msgstr "ECO" #: lib/pychess/Database/gamelist.py:62 msgid "PyChess Game Database" msgstr "PyShah Lojë Basë të Dhënash" #: lib/pychess/Database/PgnImport.py:188 #, python-format msgid "The game #%s can't be loaded, because of an error parsing FEN" msgstr "Loja #%s nuk mund të ngarkohet, për shkak të një gabim analizë FEN" #: lib/pychess/ic/FICSConnection.py:139 msgid "The connection was broken - got \"end of file\" message" msgstr "Lidhje ishte thyer - mora \"fundin e dokumentit\" mesazh" #: lib/pychess/ic/FICSConnection.py:140 #, python-format msgid "'%s' is not a registered name" msgstr "'%s' nuk është një emër i regjistruar" #: lib/pychess/ic/FICSConnection.py:141 msgid "" "The entered password was invalid.\n" "If you forgot your password, go to http://www.freechess.org/password to request a new one over email." msgstr "Fjalëkalimi i futur nuk është i vlefshëm.\nNëse keni harruar fjalëkalimin, shko në http://www.freechess.org/password për të kërkuar një të ri ndërmjet email." #: lib/pychess/ic/FICSConnection.py:145 #, python-format msgid "Sorry '%s' is already logged in" msgstr "Më vjen keq '%s' është i kyçur tashmë" #: lib/pychess/ic/FICSConnection.py:146 #, python-format msgid "'%s' is a registered name. If it is yours, type the password." msgstr "'%s' është një emër i regjistruar. Në qoftë se kjo është e juaja, shkruani fjalëkalimin." #: lib/pychess/ic/FICSConnection.py:147 msgid "" "Due to abuse problems, guest connections have been prevented.\n" "You can still register on http://www.freechess.org" msgstr "" #: lib/pychess/ic/FICSConnection.py:166 msgid "Connecting to server" msgstr "Lidhu me server" #: lib/pychess/ic/FICSConnection.py:181 msgid "Logging on to server" msgstr "Hyr në server" #: lib/pychess/ic/FICSConnection.py:239 msgid "Setting up environment" msgstr "Ndërto mjedisin" #: lib/pychess/ic/FICSObjects.py:35 lib/pychess/ic/FICSObjects.py:47 #, python-format msgid "%(player)s is %(status)s" msgstr "%(player)s është %(status)s" #: lib/pychess/ic/FICSObjects.py:46 msgid "not playing" msgstr "dukemos luajtur" #: lib/pychess/ic/FICSObjects.py:54 lib/pychess/ic/ICLounge.py:1136 #: lib/pychess/ic/ICLounge.py:2209 lib/pychess/ic/__init__.py:98 #: lib/pychess/widgets/newGameDialog.py:153 msgid "Blitz" msgstr "Blitz" #: lib/pychess/ic/FICSObjects.py:58 lib/pychess/ic/ICLounge.py:1137 #: lib/pychess/ic/ICLounge.py:2209 lib/pychess/ic/__init__.py:100 msgid "Lightning" msgstr "Ndriçim" #: lib/pychess/ic/FICSObjects.py:60 lib/pychess/Variants/atomic.py:15 msgid "Atomic" msgstr "Atomic" #: lib/pychess/ic/FICSObjects.py:62 lib/pychess/Variants/bughouse.py:9 msgid "Bughouse" msgstr "Shtëpi-Gabimesh" #: lib/pychess/ic/FICSObjects.py:64 lib/pychess/Variants/crazyhouse.py:9 msgid "Crazyhouse" msgstr "Shtëpi-çmëndur " #: lib/pychess/ic/FICSObjects.py:66 lib/pychess/Variants/losers.py:9 msgid "Losers" msgstr "Humbësit" #: lib/pychess/ic/FICSObjects.py:68 lib/pychess/Variants/suicide.py:12 msgid "Suicide" msgstr "Vetëvrasje" #: lib/pychess/ic/FICSObjects.py:70 lib/pychess/ic/__init__.py:129 msgid "Wild" msgstr "Egër" #: lib/pychess/ic/FICSObjects.py:117 msgid "Online" msgstr "Nëlinjë" #: lib/pychess/ic/FICSObjects.py:118 lib/pychess/ic/FICSObjects.py:143 msgid "Offline" msgstr "Jashtëlinje" #: lib/pychess/ic/FICSObjects.py:133 msgid "Available" msgstr "Dispozicion" #: lib/pychess/ic/FICSObjects.py:135 msgid "Playing" msgstr "Lojë" #: lib/pychess/ic/FICSObjects.py:141 msgid "Idle" msgstr "Pushim" #: lib/pychess/ic/FICSObjects.py:145 msgid "Examining" msgstr "Ekzaminim" #: lib/pychess/ic/FICSObjects.py:147 msgid "Not Available" msgstr "Jo disponushëm" #: lib/pychess/ic/FICSObjects.py:149 msgid "Running Simul Match" msgstr "Drejtimin Ndeshje Njëko " #: lib/pychess/ic/FICSObjects.py:151 msgid "In Tournament" msgstr "Në Turne" #: lib/pychess/ic/FICSObjects.py:308 lib/pychess/ic/FICSObjects.py:492 #: lib/pychess/ic/ICLounge.py:2278 msgid "Unrated" msgstr "Pavlersuar" #: lib/pychess/ic/FICSObjects.py:491 lib/pychess/ic/ICLounge.py:670 #: lib/pychess/ic/ICLounge.py:1358 lib/pychess/ic/ICLounge.py:1558 #: lib/pychess/ic/ICLounge.py:2113 msgid "Rated" msgstr "Vlerësuar" #: lib/pychess/ic/FICSObjects.py:498 lib/pychess/ic/ICLounge.py:2098 #, python-format msgid "%d min" msgstr "%d min" #: lib/pychess/ic/FICSObjects.py:500 #, python-format msgid " + %d sec" msgstr " + %d sek" #: lib/pychess/ic/FICSObjects.py:517 #, python-format msgid "%(player)s plays %(color)s" msgstr "%(player)s luan %(color)s" #: lib/pychess/ic/FICSObjects.py:519 lib/pychess/ic/ICLounge.py:909 msgid "white" msgstr "bardhë" #: lib/pychess/ic/FICSObjects.py:519 lib/pychess/ic/ICLounge.py:909 msgid "black" msgstr "zezë" #: lib/pychess/ic/FICSObjects.py:565 msgid "This is a continuation of an adjourned match" msgstr "Ky është një vazhdim i një ndeshje shtyer" #: lib/pychess/ic/FICSObjects.py:654 msgid "Opponent Rating" msgstr "Vlersimi Kundërshtarit" #: lib/pychess/ic/FICSObjects.py:656 msgid "Manual Accept" msgstr "Prano Manualisht" #: lib/pychess/ic/FICSObjects.py:810 msgid "Private" msgstr "Private" #: lib/pychess/ic/FICSObjects.py:930 lib/pychess/ic/ICLounge.py:527 #: lib/pychess/Savers/epd.py:139 msgid "Unknown" msgstr "Panjohur" #: lib/pychess/ic/ICLogon.py:159 lib/pychess/ic/ICLogon.py:165 msgid "Connection Error" msgstr "Gabim Lidhje" #: lib/pychess/ic/ICLogon.py:161 msgid "Log on Error" msgstr "Shenim mbi Gabimin" #: lib/pychess/ic/ICLogon.py:163 msgid "Connection was closed" msgstr "Lidhja u mbyll" #: lib/pychess/ic/ICLogon.py:169 msgid "Address Error" msgstr "Gabim Adrese" #: lib/pychess/ic/ICLogon.py:172 msgid "Auto-logout" msgstr "Dil Automatikisht" #: lib/pychess/ic/ICLogon.py:173 msgid "You have been logged out because you were idle more than 60 minutes" msgstr "Ju keni dalë jashtë për shkak se keni qenë pushim më shumë se 60 minuta" #: lib/pychess/ic/ICLounge.py:222 msgid "You have to set kibitz on to see bot messages here." msgstr "" #: lib/pychess/ic/ICLounge.py:241 msgid "" "You may only have 3 outstanding seeks at the same time. If you want to add a" " new seek you must clear your currently active seeks. Clear your seeks?" msgstr "Ju mund të keni vetëm 3 teprica kërkuese në të njëjtën kohë. Nëse doni të shtoni një kërkesë të re ju duhet të pastroni kërkesen tuaj aktuale aktive. Pastro kërkesën tuaj?" #: lib/pychess/ic/ICLounge.py:258 msgid "You can't touch this! You are examining a game." msgstr "" #: lib/pychess/ic/ICLounge.py:270 msgid " has declined your offer for a match" msgstr "ka refuzuar ofertën tuaj për një ndeshje" #: lib/pychess/ic/ICLounge.py:283 msgid " is censoring you" msgstr "censurimi juaj" #: lib/pychess/ic/ICLounge.py:296 msgid " noplay listing you" msgstr "i listuar jashtëloje" #: lib/pychess/ic/ICLounge.py:311 msgid " uses a formula not fitting your match request:" msgstr "përdor një formulë jo të përshtatshëm kërkesës tuaj për ndeshje:" #: lib/pychess/ic/ICLounge.py:325 msgid "to manual accept" msgstr "tek pranimi joautomatik " #: lib/pychess/ic/ICLounge.py:327 msgid "to automatic accept" msgstr "tek pranimi automatik" #: lib/pychess/ic/ICLounge.py:329 msgid "rating range now" msgstr "Vlerësimi shtrirjes tani" #: lib/pychess/ic/ICLounge.py:330 msgid "Seek updated" msgstr "Kërko azhornuarit " #: lib/pychess/ic/ICLounge.py:342 msgid "Your seeks have been removed" msgstr "Kërkimet tuaja janë hequr" #: lib/pychess/ic/ICLounge.py:363 msgid " has arrived" msgstr "ka arritur" #: lib/pychess/ic/ICLounge.py:370 msgid " has departed" msgstr "ka nis" #: lib/pychess/ic/ICLounge.py:374 msgid " is present" msgstr "është i pranishëm" #: lib/pychess/ic/ICLounge.py:391 sidepanel/chatPanel.py:17 msgid "Chat" msgstr "Bisedë" #: lib/pychess/ic/ICLounge.py:472 sidepanel/bookPanel.py:366 msgid "Win" msgstr "Fito" #: lib/pychess/ic/ICLounge.py:472 sidepanel/bookPanel.py:360 msgid "Draw" msgstr "Remi" #: lib/pychess/ic/ICLounge.py:472 sidepanel/bookPanel.py:363 msgid "Loss" msgstr "Humb" #: lib/pychess/ic/ICLounge.py:482 msgid "" "On FICS, your \"Wild\" rating encompasses all of the following variants at " "all time controls:\n" msgstr "Në FICS, tuaj \"Joker\" Vlerësimi përfshin të gjitha variantet e mëposhtme në të gjitha kontrollet kohore:\n" #: lib/pychess/ic/ICLounge.py:494 msgid "Sanctions" msgstr "Sanksionet" #: lib/pychess/ic/ICLounge.py:499 msgid "Email" msgstr "Email" #: lib/pychess/ic/ICLounge.py:504 msgid "Spent" msgstr "Shpenzuar" #: lib/pychess/ic/ICLounge.py:506 msgid "online in total" msgstr "total në linjë" #: lib/pychess/ic/ICLounge.py:512 msgid "Ping" msgstr "Ping" #: lib/pychess/ic/ICLounge.py:517 msgid "Connecting" msgstr "Lidhje" #: lib/pychess/ic/ICLounge.py:544 msgid "" "You are currently logged in as a guest.\n" "A guest can't play rated games and therefore isn't able to play as many of the types of matches offered as a registered user. To register an account, go to http://www.freechess.org/Register/index.html." msgstr "Ju jeni i kyçur aktualisht si mysafir.\nNjë mysafir nuk mund të luajë lojëra të vlerësuara dhe për këtë arsye nuk është në gjendje për të luajtur lojëra e llojeve të ndeshjeve të ofruara si përdorues i regjistruar. Për të regjistruar një llogari, shko në http://www.freechess.org/Register/index.html." #: lib/pychess/ic/ICLounge.py:669 lib/pychess/ic/ICLounge.py:1136 msgid "Name" msgstr "Emri" #: lib/pychess/ic/ICLounge.py:670 lib/pychess/ic/ICLounge.py:1358 #: lib/pychess/ic/ICLounge.py:1558 msgid "Type" msgstr "Tipi" #: lib/pychess/ic/ICLounge.py:670 lib/pychess/ic/ICLounge.py:1558 msgid "Clock" msgstr "Ora" #: lib/pychess/ic/ICLounge.py:726 lib/pychess/ic/ICLounge.py:923 #: lib/pychess/Players/Human.py:250 msgid "Accept" msgstr "Prano" #: lib/pychess/ic/ICLounge.py:728 msgid "Assess" msgstr "" #: lib/pychess/ic/ICLounge.py:734 msgid "Archived" msgstr "" #: lib/pychess/ic/ICLounge.py:848 #, python-format msgid "Active seeks: %d" msgstr "Kerkime Aktive: %d" #: lib/pychess/ic/ICLounge.py:897 #, python-format msgid "" " would like to resume your adjourned %(time)s %(gametype)s " "game." msgstr " do të doni për të rifilloni shtyrjen tuaj %(time)s %(gametype)s lojë." #: lib/pychess/ic/ICLounge.py:902 #, python-format msgid "" " challenges you to a %(time)s %(rated)s %(gametype)s game" msgstr " Ju sfidon në një %(time)s %(rated)s %(gametype)s lojë" #: lib/pychess/ic/ICLounge.py:907 #, python-format msgid " where %(player)s plays %(color)s." msgstr " ku %(player)s luan %(color)s." #: lib/pychess/ic/ICLounge.py:924 lib/pychess/Players/Human.py:251 msgid "Decline" msgstr "Refuzo" #: lib/pychess/ic/ICLounge.py:1065 msgid " min" msgstr " min" #: lib/pychess/ic/ICLounge.py:1137 msgid "Status" msgstr "Status" #: lib/pychess/ic/ICLounge.py:1203 lib/pychess/ic/ICLounge.py:1233 #, python-format msgid "Players: %d" msgstr "Lojtarë: %d" #: lib/pychess/ic/ICLounge.py:1469 #, python-format msgid "Games running: %d" msgstr "Loja funksionale: %d" #: lib/pychess/ic/ICLounge.py:1559 msgid "Date/Time" msgstr "Data/Ora" #: lib/pychess/ic/ICLounge.py:1614 #, python-format msgid "" " with whom you have an adjourned %(timecontrol)s %(gametype)s " "game is online." msgstr " me të cilët ju keni një shtyrje %(timecontrol)s %(gametype)s loja është në-linjë." #: lib/pychess/ic/ICLounge.py:1635 msgid "Request Continuation" msgstr "Vazhdim Kërkesë" #: lib/pychess/ic/ICLounge.py:1637 msgid "Examine Adjourned Game" msgstr "Shqyrto Shtyrjen Lojës" #: lib/pychess/ic/ICLounge.py:1965 msgid "" "The chain button is disabled because you are logged in as a guest. Guests " "can't establish ratings, and the chain button's state has no effect when " "there is no rating to which to tie \"Opponent Strength\" to" msgstr "Butoni zinxhir është me aftësi të kufizuara për shkak se ju jeni regjistruar si vizitor. Vizitorët nuk mund të krijojë vlerësime, dhe gjëndja butonin zinxhir nuk ka efekt kur nuk ka vlerësim për të cilat të lidhin \"Forca kundërshtari\" për të" #: lib/pychess/ic/ICLounge.py:2006 msgid "Challenge: " msgstr "Sfidë:" #: lib/pychess/ic/ICLounge.py:2044 msgid "If set you can refuse players accepting your seek" msgstr "" #: lib/pychess/ic/ICLounge.py:2048 lib/pychess/ic/ICLounge.py:2051 msgid "This option is not applicable because you're challenging a player" msgstr "Ky opsion nuk zbatohet për shkak se ju jeni duke sfiduar një lojtarë" #: lib/pychess/ic/ICLounge.py:2064 msgid "Edit Seek: " msgstr "Redakto Kërko:" #: lib/pychess/ic/ICLounge.py:2095 #, python-format msgid "%(minutes)d min + %(gain)d sec/move" msgstr "%(minutes)d min + %(gain)d sek/leviz" #: lib/pychess/ic/ICLounge.py:2116 msgid "Manual" msgstr "Manuale" #: lib/pychess/ic/ICLounge.py:2256 msgid "Any strength" msgstr "Ndonjë Forcë" #: lib/pychess/ic/ICLounge.py:2308 msgid "You can't play rated games because you are logged in as a guest" msgstr "Ju nuk mund të luani lojëra të vlerësuara për shkak se ju jeni regjistruar si vizitor" #: lib/pychess/ic/ICLounge.py:2312 msgid "You can't play rated games because \"Untimed\" is checked, " msgstr "Ju nuk mund të luani lojëra të vlerësuarat sepse \"pambatur\" është e kontrolluar," #: lib/pychess/ic/ICLounge.py:2313 msgid "and on FICS, untimed games can't be rated" msgstr "dhe në FICS, lojrat e pambatura nuk mund të vlerësohen" #: lib/pychess/ic/ICLounge.py:2317 msgid "This option is not available because you're challenging a guest, " msgstr "Ky opsion nuk është i mundshem për shkak se ju jeni duke sfiduar një lojtarë" #: lib/pychess/ic/ICLounge.py:2318 msgid "and guests can't play rated games" msgstr "dhe vizitorët nuk mund të luajnë lojëra të vlerësuara" #: lib/pychess/ic/ICLounge.py:2332 lib/pychess/Variants/shuffle.py:16 #: lib/pychess/widgets/newGameDialog.py:266 msgid "Shuffle" msgstr "Përziej" #: lib/pychess/ic/ICLounge.py:2333 lib/pychess/widgets/newGameDialog.py:267 msgid "Other (standard rules)" msgstr "Të tjera (rregullat standarde)" #: lib/pychess/ic/ICLounge.py:2334 lib/pychess/widgets/newGameDialog.py:268 msgid "Other (non standard rules)" msgstr "Të tjera (jo rregulla standarde)" #: lib/pychess/ic/ICLounge.py:2421 msgid "You can't select a variant because \"Untimed\" is checked, " msgstr "Ju nuk mund të zgjidhni një variant sepse \"pambatur\" është i zgjedhur," #: lib/pychess/ic/ICLounge.py:2422 msgid "and on FICS, untimed games have to be normal chess rules" msgstr "dhe në FICS, lojra të pambatura duhen të ketë rregulla normale shahu" #: lib/pychess/ic/ICLounge.py:2454 msgid "Change Tolerance" msgstr "Ndrysho Tolerancen" #: lib/pychess/ic/__init__.py:102 msgid "Examined" msgstr "Ekzaminuar" #: lib/pychess/ic/__init__.py:103 msgid "Other" msgstr "Të'tjera" #: lib/pychess/ic/__init__.py:182 msgid "Administrator" msgstr "Administrator" #: lib/pychess/ic/__init__.py:182 msgid "Blindfold Account" msgstr "Llogari Qorrazi" #: lib/pychess/ic/__init__.py:182 msgid "Computer" msgstr "Kompjuter" #: lib/pychess/ic/__init__.py:183 msgid "Team Account" msgstr "Llogari Ekipi" #: lib/pychess/ic/__init__.py:183 msgid "Unregistered" msgstr "Joregjistruar " #: lib/pychess/ic/__init__.py:183 msgid "Chess Advisor" msgstr "Këshillues Shahu" #: lib/pychess/ic/__init__.py:184 msgid "Service Representative" msgstr "Përfaqësues Shërbimi" #: lib/pychess/ic/__init__.py:184 msgid "Tournament Director" msgstr "Drejtori Turnesë " #: lib/pychess/ic/__init__.py:184 msgid "Mamer Manager" msgstr "Mamer Menaxhuan " #: lib/pychess/ic/__init__.py:185 msgid "Grand Master" msgstr "Mjeshtri Madh" #: lib/pychess/ic/__init__.py:185 msgid "International Master" msgstr "Mjeshtri Internacional" #: lib/pychess/ic/__init__.py:185 msgid "FIDE Master" msgstr "Mjeshtri FIDE" #: lib/pychess/ic/__init__.py:186 msgid "Woman Grand Master" msgstr "Mjeshtria Madhe Femërore" #: lib/pychess/ic/__init__.py:186 msgid "Woman International Master" msgstr "Mjeshtria Internacionale Femërore" #: lib/pychess/ic/__init__.py:186 msgid "Woman FIDE Master" msgstr "Mjeshtre Femër FIDE" #: lib/pychess/ic/__init__.py:187 msgid "Dummy Account" msgstr "Llogari Bedele " #: lib/pychess/ic/__init__.py:191 msgid "*" msgstr "*" #: lib/pychess/ic/__init__.py:191 lib/pychess/Utils/repr.py:14 msgid "B" msgstr "B" #: lib/pychess/ic/__init__.py:191 msgid "C" msgstr "C" #: lib/pychess/ic/__init__.py:192 msgid "T" msgstr "T" #: lib/pychess/ic/__init__.py:192 msgid "U" msgstr "U" #: lib/pychess/ic/__init__.py:192 msgid "CA" msgstr "CA" #: lib/pychess/ic/__init__.py:193 msgid "SR" msgstr "SR" #: lib/pychess/ic/__init__.py:193 msgid "TD" msgstr "TD" #: lib/pychess/ic/__init__.py:193 msgid "TM" msgstr "TM" #: lib/pychess/ic/__init__.py:194 msgid "GM" msgstr "GM" #: lib/pychess/ic/__init__.py:194 msgid "IM" msgstr "IM" #: lib/pychess/ic/__init__.py:194 msgid "FM" msgstr "FM" #: lib/pychess/ic/__init__.py:195 msgid "WGM" msgstr "WGM" #: lib/pychess/ic/__init__.py:195 msgid "WIM" msgstr "WIM" #: lib/pychess/ic/__init__.py:195 msgid "WFM" msgstr "WFM" #: lib/pychess/ic/__init__.py:195 msgid "D" msgstr "D" #: lib/pychess/ic/__init__.py:195 msgid "H" msgstr "" #: lib/pychess/ic/__init__.py:195 msgid "CM" msgstr "" #: lib/pychess/ic/__init__.py:195 msgid "FA" msgstr "" #: lib/pychess/ic/__init__.py:195 msgid "NM" msgstr "" #: lib/pychess/Players/CECPEngine.py:857 #, python-format msgid "The engine %s reports an error:" msgstr "Motori %s raporton një gabim:" #: lib/pychess/Players/Human.py:20 msgid "Your opponent has offered you a draw." msgstr "Kundërshtari juaj ju ofroi një parëzim. " #: lib/pychess/Players/Human.py:21 msgid "" "Your opponent has offered you a draw. If you accept this offer, the game " "will end with a score of 1/2 - 1/2." msgstr "Kundërshtari juaj ju ka ofruar një barazim. Në qoftë se ju pranoni këtë ofertë, loja do të përfundojë me një rezultat prej 1/2 - 1/2." #: lib/pychess/Players/Human.py:23 msgid "Your opponent wants to abort the game." msgstr "Kundërshtari juaj do të ndërpresi lojën." #: lib/pychess/Players/Human.py:24 msgid "" "Your opponent has asked that the game be aborted. If you accept this offer, " "the game will end with no rating change." msgstr "Kundërshtari juaj ka kërkuar që loja të ndërpritet. Në qoftë se ju pranoni këtë ofertë, loja do të përfundojë me asnjë vlerësim ndryshimi." #: lib/pychess/Players/Human.py:26 msgid "Your opponent wants to adjourn the game." msgstr "Kundërshtari juaj do të shtyjë lojën." #: lib/pychess/Players/Human.py:27 msgid "" "Your opponent has asked that the game be adjourned. If you accept this " "offer, the game will be adjourned and you can resume it later (when your " "opponent is online and both players agree to resume)." msgstr "Kundërshtari juaj ka kërkuar që loja të shtyhet. Në qoftë se ju pranoni këtë ofertë, loja do të shtyhet dhe ju mund të rifillojë më vonë (kur kundërshtari juaj është në linjë dhe të dy lojtarët bien dakord të rinisin)." #: lib/pychess/Players/Human.py:29 #, python-format msgid "Your opponent wants to undo %s move(s)." msgstr "Kundërshtari juaj do të ribëjë %s lëvizje(s)." #: lib/pychess/Players/Human.py:30 #, python-format msgid "" "Your opponent has asked that the last %s move(s) be undone. If you accept " "this offer, the game will continue from the earlier position." msgstr "Kundërshtari juaj ka kërkuar që lëvizjet e %s kaluara(s) të kthehen. Në qoftë se ju pranoni këtë ofertë, loja do të vazhdojë nga pozicioni mëparshëm." #: lib/pychess/Players/Human.py:32 msgid "Your opponent wants to pause the game." msgstr "Kundërshtari juaj do të bëj një pauzë të lojës." #: lib/pychess/Players/Human.py:33 msgid "" "Your opponent has asked that the game be paused. If you accept this offer, " "the game clock will be paused until both players agree to resume the game." msgstr "Kundërshtari juaj ka kërkuar që loja të ndalohet. Në qoftë se ju pranoni këtë ofertë, ora e lojes do të jenë ndaluar derisa të dy lojtarët të bien dakord për të rifilluar lojën." #: lib/pychess/Players/Human.py:35 msgid "Your opponent wants to resume the game." msgstr "Kundërshtari juaj do të rifillojë lojën." #: lib/pychess/Players/Human.py:36 msgid "" "Your opponent has asked that the game be resumed. If you accept this offer, " "the game clock will continue from where it was paused." msgstr "Kundërshtari juaj ka kërkuar që loja të rifillojë. Në qoftë se ju pranoni këtë ofertë, ora e lojes do të vazhdojë nga ku ajo ishte ndaluar." #: lib/pychess/Players/Human.py:40 msgid "The resignation" msgstr "Dorëheqja" #: lib/pychess/Players/Human.py:41 msgid "The flag call" msgstr "Thirrje Flamuri" #: lib/pychess/Players/Human.py:42 msgid "The draw offer" msgstr "Oferta Remi" #: lib/pychess/Players/Human.py:43 msgid "The abort offer" msgstr "Ofertë ndërprerje" #: lib/pychess/Players/Human.py:44 msgid "The adjourn offer" msgstr "Oferta pezullo" #: lib/pychess/Players/Human.py:45 msgid "The pause offer" msgstr "Oferta pushim" #: lib/pychess/Players/Human.py:46 msgid "The resume offer" msgstr "Oferta rinisë" #: lib/pychess/Players/Human.py:47 msgid "The offer to switch sides" msgstr "Oferta për të ndryshuar anët" #: lib/pychess/Players/Human.py:48 msgid "The takeback offer" msgstr "Oferta merrmbrapa" #: lib/pychess/Players/Human.py:52 msgid "resign" msgstr "tërhiqu" #: lib/pychess/Players/Human.py:53 msgid "call your opponents flag" msgstr "thirr flamujt e kundërshtarët tuaj" #: lib/pychess/Players/Human.py:54 msgid "offer a draw" msgstr "Ofro një Barazim" #: lib/pychess/Players/Human.py:55 msgid "offer an abort" msgstr "Ofro një ndërprerje" #: lib/pychess/Players/Human.py:56 msgid "offer to adjourn" msgstr "Ofro një pezullim" #: lib/pychess/Players/Human.py:57 msgid "offer a pause" msgstr "Ofro një pushim" #: lib/pychess/Players/Human.py:58 msgid "offer to resume" msgstr "Ofro një rifillim" #: lib/pychess/Players/Human.py:59 msgid "offer to switch sides" msgstr "Ofro një ndryshim anësh" #: lib/pychess/Players/Human.py:60 msgid "offer a takeback" msgstr "Ofro një merrmbrapa" #: lib/pychess/Players/Human.py:61 msgid "ask your opponent to move" msgstr "kërkoi kundërshtarit tuaj për të lëvizur" #: lib/pychess/Players/Human.py:66 msgid "Your opponent is not out of time." msgstr "Kundërshtari juaj nuk është jashtë kohe." #: lib/pychess/Players/Human.py:68 msgid "The clock hasn't been started yet." msgstr "Ora nuk ka filluar ende." #: lib/pychess/Players/Human.py:70 msgid "You can't switch colors during the game." msgstr "Ju nuk mund të ndryshoni ngjyra gjatë lojës." #: lib/pychess/Players/Human.py:72 msgid "You have tried to undo too many moves." msgstr "Ju keni provuar për të ndrequr shumë lëvizje." #: lib/pychess/Players/Human.py:180 msgid "Your opponent asks you to hurry!" msgstr "Kundërshtari juaj ju pyet që të ngutemi!" #: lib/pychess/Players/Human.py:181 msgid "" "Generally this means nothing, as the game is time-based, but if you want to " "please your opponent, perhaps you should get going." msgstr "Në përgjithësi kjo do të thotë asgjë, pasi loja është e bazuar në kohë, por në qoftë se ju doni të kënaqni kundërshtarin tuaj, ndoshta ju duhet të merrni do." #: lib/pychess/Players/Human.py:259 #, python-format msgid "%s was declined by your opponent" msgstr "%s është refuzuar nga kundërshtari juaj" #: lib/pychess/Players/Human.py:260 #, python-format msgid "Resend %s?" msgstr "Ridergoni %s?" #: lib/pychess/Players/Human.py:267 msgid "Resend" msgstr "Ridërgoni" #: lib/pychess/Players/Human.py:275 #, python-format msgid "%s was withdrawn by your opponent" msgstr "%s është tërhequr nga kundërshtari juaj" #: lib/pychess/Players/Human.py:276 msgid "Your opponent seems to have changed their mind." msgstr "Kundërshtari juaj duket të ketë ndryshuar mendjen e tyre." #: lib/pychess/Players/Human.py:290 #, python-format msgid "Unable to accept %s" msgstr "Në pamundësi për të pranuar %s" #: lib/pychess/Players/Human.py:291 msgid "Probably because it has been withdrawn." msgstr "Ndoshta për shkak se ajo është tërhequr." #: lib/pychess/Players/Human.py:298 #, python-format msgid "%s returns an error" msgstr "%s kthen një gabim" #: lib/pychess/Savers/chessalpha2.py:12 msgid "Chess Alpha 2 Diagram" msgstr "Shah Alfa 2 Diagram" #: lib/pychess/Savers/chesspastebin.py:39 msgid "Game shared at " msgstr "Loja e shpërndarë në" #: lib/pychess/Savers/chesspastebin.py:41 msgid "(Link is available on clipboard.)" msgstr "(Lidhja është në dispozicion në tabelë.)" #: lib/pychess/Savers/database.py:19 msgid "PyChess database" msgstr "PyShah Bazë të Dhënash" #: lib/pychess/Savers/epd.py:12 msgid "Chess Position" msgstr "Pozicion Shahu" #: lib/pychess/Savers/fen.py:12 msgid "Simple Chess Position" msgstr "Pozicion i Thjesht Shahu" #: lib/pychess/Savers/fen.py:44 lib/pychess/Savers/pgn.py:329 msgid "The game can't be loaded, because of an error parsing FEN" msgstr "Loja nuk mund të ngarkohet, për shkak të një gabim analizues FEN" #: lib/pychess/Savers/pgnbase.py:100 #, python-format msgid "" "The game can't be read to end, because of an error parsing move %(moveno)s " "'%(notation)s'." msgstr "Loja nuk mund të lexohet në fund, për shkak të një masë gabimi analize %(moveno)s '%(notation)s'." #: lib/pychess/Savers/pgnbase.py:102 #, python-format msgid "The move failed because %s." msgstr "Levizja dështoi për shkak se %s." #: lib/pychess/Savers/pgnbase.py:110 #, python-format msgid "Error parsing move %(moveno)s %(mstr)s" msgstr "Gabim në analizën e lëvizjes %(moveno)s %(mstr)s" #: lib/pychess/Savers/pgn.py:28 msgid "Chess Game" msgstr "Lojë Shahu" #: lib/pychess/Savers/pgn.py:362 msgid "Invalid move." msgstr "Lëvizje gabuar." #: lib/pychess/Savers/png.py:15 msgid "Png image" msgstr "Foto Png" #: lib/pychess/System/ping.py:31 msgid "Destination Host Unreachable" msgstr "Destinacion i Pritësit Paarritshëm" #: lib/pychess/System/ping.py:74 msgid "Died" msgstr "Vdiq" #: lib/pychess/Utils/GameModel.py:147 msgid "Local Event" msgstr "Ngjarje Vendorë" #: lib/pychess/Utils/GameModel.py:148 msgid "Local Site" msgstr "Faqja Vendore" #: lib/pychess/Utils/repr.py:12 msgid "Pawn" msgstr "Ushtari" #: lib/pychess/Utils/repr.py:14 msgid "P" msgstr "P" #: lib/pychess/Utils/repr.py:14 msgid "N" msgstr "N" #: lib/pychess/Utils/repr.py:14 msgid "R" msgstr "R" #: lib/pychess/Utils/repr.py:14 msgid "Q" msgstr "Q" #: lib/pychess/Utils/repr.py:14 msgid "K" msgstr "K" #: lib/pychess/Utils/repr.py:17 msgid "The game ended in a draw" msgstr "Loja përfundoi me remi" #: lib/pychess/Utils/repr.py:18 #, python-format msgid "%(white)s won the game" msgstr "%(white)s fitoi lojën" #: lib/pychess/Utils/repr.py:19 #, python-format msgid "%(black)s won the game" msgstr "%(black)s fitoj lojën" #: lib/pychess/Utils/repr.py:20 msgid "The game has been killed" msgstr "Loja është vrarë" #: lib/pychess/Utils/repr.py:21 msgid "The game has been adjourned" msgstr "Loja është shtyrë" #: lib/pychess/Utils/repr.py:22 msgid "The game has been aborted" msgstr "Loja është ndërprerë" #: lib/pychess/Utils/repr.py:26 msgid "Because neither player has sufficient material to mate" msgstr "Sepse as lojtar nuk ka material të mjaftueshëm për tu bashkuar" #: lib/pychess/Utils/repr.py:27 msgid "Because the same position was repeated three times in a row" msgstr "Për shkak se i njëjti pozicion u përsërit tri herë radhazi" #: lib/pychess/Utils/repr.py:28 msgid "Because the last 50 moves brought nothing new" msgstr "Për shkak se 50 lëvizjet e fundit sollën asgjë të re" #: lib/pychess/Utils/repr.py:29 msgid "Because both players ran out of time" msgstr "Për shkak se të dy lojtarëve u mbraoj koha" #: lib/pychess/Utils/repr.py:30 #, python-format msgid "Because %(mover)s stalemated" msgstr "Sepse %(mover)s qorrsokak" #: lib/pychess/Utils/repr.py:31 msgid "Because both players agreed to a draw" msgstr "Për shkak se të dy lojtarët ranë dakord për një barazim" #: lib/pychess/Utils/repr.py:32 lib/pychess/Utils/repr.py:42 msgid "Because of adjudication by an admin" msgstr "Për shkak të gjykimit nga një admin" #: lib/pychess/Utils/repr.py:33 msgid "Because the game exceed the max length" msgstr "Për shkak të lojës që kalojë gjatësinë maksimale" #: lib/pychess/Utils/repr.py:34 #, python-format msgid "" "Because %(white)s ran out of time and %(black)s has insufficient material to" " mate" msgstr "Sepse %(white)s rend jashtë kohe dhe %(black)s ka materiale të pamjaftueshme për tu bashkuar" #: lib/pychess/Utils/repr.py:35 #, python-format msgid "" "Because %(black)s ran out of time and %(white)s has insufficient material to" " mate" msgstr "Sepse %(black)s rend jashtë kohe dhe %(white)s ka materiale të pamjaftueshme për tu bashkuar" #: lib/pychess/Utils/repr.py:36 msgid "Because both players have the same amount of pieces" msgstr "Për shkak se të dy lojtarët kanë të njëjtën sasi të gurëve" #: lib/pychess/Utils/repr.py:38 #, python-format msgid "Because %(loser)s resigned" msgstr "Sepse %(loser)s dorëheqjes" #: lib/pychess/Utils/repr.py:39 #, python-format msgid "Because %(loser)s ran out of time" msgstr "Sepse %(loser)s mbaroj koha" #: lib/pychess/Utils/repr.py:40 #, python-format msgid "Because %(loser)s was checkmated" msgstr "Sepse %(loser)s ishte shahmat " #: lib/pychess/Utils/repr.py:41 #, python-format msgid "Because %(loser)s disconnected" msgstr "Sepse %(loser)s shkëput" #: lib/pychess/Utils/repr.py:43 #, python-format msgid "Because %(winner)s has fewer pieces" msgstr "Sepse %(winner)s ka më pak gurë" #: lib/pychess/Utils/repr.py:44 #, python-format msgid "Because %(winner)s lost all pieces" msgstr "Sepse %(winner)s humbi të gjithë gurët" #: lib/pychess/Utils/repr.py:45 #, python-format msgid "Because %(loser)s king exploded" msgstr "Sepse %(loser)s mbreti shpërtheu" #: lib/pychess/Utils/repr.py:46 #, python-format msgid "Because %(winner)s king reached the center" msgstr "Sepse %(winner)s mbreti arriti në qendër" #: lib/pychess/Utils/repr.py:47 #, python-format msgid "Because %(winner)s was giving check 3 times" msgstr "Sepse %(winner)s i është dhënë shah 3 herë" #: lib/pychess/Utils/repr.py:49 msgid "Because a player lost connection" msgstr "Sepse lojtari humbi lidhjen" #: lib/pychess/Utils/repr.py:50 msgid "Because both players agreed to an adjournment" msgstr "Për shkak se të dy lojtarët ranë dakord për një shtyrje" #: lib/pychess/Utils/repr.py:51 msgid "Because the server was shut down" msgstr "Për shkak se serveri ishte fikur" #: lib/pychess/Utils/repr.py:52 msgid "" "Because a player lost connection and the other player requested adjournment" msgstr "Për shkak se lojtari humbi lidhjen dhe lojtari tjetër kërkoi shtyrje" #: lib/pychess/Utils/repr.py:53 #, python-format msgid "" "Because %(black)s lost connection to the server and %(white)s requested " "adjournment" msgstr "Sepse %(black)s humbi lidhjen me serverin dhe %(white)s kërkoj shtyrje" #: lib/pychess/Utils/repr.py:54 #, python-format msgid "" "Because %(white)s lost connection to the server and %(black)s requested " "adjournment" msgstr "Sepse %(white)s humbi lidhjen me serverin dhe %(black)s kërkoj shtyrje" #: lib/pychess/Utils/repr.py:55 #, python-format msgid "Because %(white)s lost connection to the server" msgstr "Sepse %(white)s humbi lidhjen me serverin" #: lib/pychess/Utils/repr.py:56 #, python-format msgid "Because %(black)s lost connection to the server" msgstr "Sepse %(black)s humbi lidhjen me serverin" #: lib/pychess/Utils/repr.py:58 msgid "Because of adjudication by an admin. No rating changes have occurred." msgstr "Për shkak të gjykimit nga një admin. Nuk ka ndryshime vlerësim." #: lib/pychess/Utils/repr.py:59 msgid "" "Because both players agreed to abort the game. No rating changes have " "occurred." msgstr "Për shkak se të dy lojtarët ranë dakord të ndërpresin lojën. Nuk ka ndryshime vlerësim." #: lib/pychess/Utils/repr.py:60 msgid "Because of courtesy by a player. No rating changes have occurred." msgstr "Për shkak të mirësjellje nga një lojtar. Nuk ka ndryshime vlerësim." #: lib/pychess/Utils/repr.py:61 msgid "" "Because a player aborted the game. Either player can abort the game without " "the other's consent before the second move. No rating changes have occurred." msgstr "Për shkak se një lojtar e ndërpreu lojën. Ose lojtari mund të ndërpresin lojën pa pëlqimin e tjetrit para lëvizje e dytë. Nuk ka ndryshime vlerësim." #: lib/pychess/Utils/repr.py:62 msgid "" "Because a player disconnected and there are too few moves to warrant " "adjournment. No rating changes have occurred." msgstr "Sepse një lojtar i shkëputur dhe ka shumë pak lëvizje që kërkojnë shtyrje. Nuk ka ndryshime pozicioni." #: lib/pychess/Utils/repr.py:63 msgid "Because the server was shut down. No rating changes have occurred." msgstr "Për shkak se serveri ishte mbyllur. Nuk ka ndryshime vlerësim." #: lib/pychess/Utils/repr.py:65 #, python-format msgid "Because the %(white)s engine died" msgstr "Sepse motorri %(white)s vdiq" #: lib/pychess/Utils/repr.py:66 #, python-format msgid "Because the %(black)s engine died" msgstr "Sepse motori %(black)s vdiq" #: lib/pychess/Utils/repr.py:67 msgid "Because the connection to the server was lost" msgstr "Sepse lidhja me serverin humbi" #: lib/pychess/Utils/repr.py:68 msgid "The reason is unknown" msgstr "Arsyeja është e panjohur" #: lib/pychess/Utils/TimeModel.py:229 msgid "min" msgstr "min" #: lib/pychess/Utils/TimeModel.py:231 msgid "sec" msgstr "sek" #: lib/pychess/Variants/asean.py:12 msgid "" "ASEAN: http://www.ncf-" "phil.org/downloadables/2014/May/Asean_chess/Laws_of_ASEAN_Chess_2011_Nov_26.doc" msgstr "ASEAN: http://www.ncf-phil.org/downloadables/2014/May/Asean_chess/Laws_of_ASEAN_Chess_2011_Nov_26.doc" #: lib/pychess/Variants/asean.py:13 msgid "ASEAN" msgstr "ASEAN" #: lib/pychess/Variants/asean.py:33 msgid "Makruk: http://en.wikipedia.org/wiki/Makruk" msgstr "Makruk: http://en.wikipedia.org/wiki/Makruk" #: lib/pychess/Variants/asean.py:34 msgid "Makruk" msgstr "Makruk" #: lib/pychess/Variants/asean.py:60 msgid "Cambodian: http://www.khmerinstitute.org/culture/ok.html" msgstr "Kambodian: http://www.khmerinstitute.org/culture/ok.html" #: lib/pychess/Variants/asean.py:61 msgid "Cambodian" msgstr "Kambodian" #: lib/pychess/Variants/asean.py:86 msgid "" "Ai-Wok: http://www.open-" "aurec.com/wbforum/viewtopic.php?p=199364&sid=20963a1de2c164050de019e5ed6bf7c4#p199364" msgstr "Ai-Wok: http://www.open-aurec.com/wbforum/viewtopic.php?p=199364&sid=20963a1de2c164050de019e5ed6bf7c4#p199364" #: lib/pychess/Variants/asean.py:87 msgid "Ai-Wok" msgstr "Ai-Wok" #: lib/pychess/Variants/asean.py:111 msgid "Sittuyin: http://en.wikipedia.org/wiki/Sittuyin" msgstr "Sittuyin: http://en.wikipedia.org/wiki/Sittuyin" #: lib/pychess/Variants/asean.py:112 msgid "Sittuyin" msgstr "Sittuyin" #: lib/pychess/Variants/asymmetricrandom.py:12 msgid "" "FICS wild/4: http://www.freechess.org/Help/HelpFiles/wild.html\n" "* Randomly chosen pieces (two queens or three rooks possible)\n" "* Exactly one king of each color\n" "* Pieces placed randomly behind the pawns, SUBJECT TO THE CONSTRAINT THAT THE BISHOPS ARE BALANCED\n" "* No castling\n" "* Black's arrangement DOES NOT mirrors white's" msgstr "FICS egër/4: http://www.freechess.org/Help/HelpFiles/wild.html\n* Gurë të zgjedhura rastësisht (dy mbretëreshat ose tre torrë mundshme)\n* Pikërisht një mbret i çdo ngjyrë\n* Gurë të vendosura rastësisht pas ushtarëve, NËNSHTROHEN KUFIZIMI QE PESHKOPËT JANË TË BALANCUARA\n* Nuk ka rrekat\n* Rregullim zezë NUK BËN pasqyrë bardhë" #: lib/pychess/Variants/asymmetricrandom.py:18 msgid "Asymmetric Random" msgstr "Asimetri të Rastësishme" #: lib/pychess/Variants/atomic.py:14 msgid "FICS atomic: http://www.freechess.org/Help/HelpFiles/atomic.html" msgstr "FICS atomic: http://www.freechess.org/Help/HelpFiles/atomic.html" #: lib/pychess/Variants/blindfold.py:7 msgid "" "Classic chess rules with hidden figurines\n" "http://en.wikipedia.org/wiki/Blindfold_chess" msgstr "Rregullat klasike të shahut me gurët fshehur\n http://en.wikipedia.org/wiki/Blindfold_chess" #: lib/pychess/Variants/blindfold.py:9 #: lib/pychess/widgets/newGameDialog.py:264 msgid "Blindfold" msgstr "Qorrazi" #: lib/pychess/Variants/blindfold.py:18 msgid "" "Classic chess rules with hidden pawns\n" "http://en.wikipedia.org/wiki/Blindfold_chess" msgstr "Rregullat klasike të shahut me ushtarë të fshehur\nhttp://en.wikipedia.org/wiki/Blindfold_chess" #: lib/pychess/Variants/blindfold.py:20 msgid "Hidden pawns" msgstr "Ushtarë fshehur" #: lib/pychess/Variants/blindfold.py:29 msgid "" "Classic chess rules with hidden pieces\n" "http://en.wikipedia.org/wiki/Blindfold_chess" msgstr "Rregullat shahu klasike me gurë të fshehur\nhttp://en.wikipedia.org/wiki/Blindfold_chess" #: lib/pychess/Variants/blindfold.py:31 msgid "Hidden pieces" msgstr "Fsheh gurët" #: lib/pychess/Variants/blindfold.py:40 msgid "" "Classic chess rules with all pieces white\n" "http://en.wikipedia.org/wiki/Blindfold_chess" msgstr "Rregullat klasike të shahut me të gjitha gurët të bardhë\nhttp://en.wikipedia.org/wiki/Blindfold_chess" #: lib/pychess/Variants/blindfold.py:42 msgid "All white" msgstr "Të Gjithë bardha" #: lib/pychess/Variants/bughouse.py:8 msgid "FICS bughouse: http://www.freechess.org/Help/HelpFiles/bughouse.html" msgstr "FICS shtëpi-gabimesh: http://www.freechess.org/Help/HelpFiles/bughouse.html" #: lib/pychess/Variants/corner.py:12 msgid "" "http://brainking.com/en/GameRules?tp=2\n" "* Placement of the pieces on the 1st and 8th row are randomized\n" "* The king is in the right hand corner\n" "* Bishops must start on opposite color squares\n" "* Black's starting position is obtained by rotating white's position 180 degrees around the board's center\n" "* No castling" msgstr "http://brainking.com/en/GameRules?tp=2\n* Vendosja e gurëve në rreshtin e 1rë dhe 8të janë rastësishme\n* Mbreti është në këndin e djathtë\n* Peshkopët duhet të fillojë në kuti ngjyre të kundërta\n* Pozicioni fillestare zezë është marrë nga rutollim pozicionin e Bardhë 180 gradë rreth qendrës të fushës\n* Jo Rrëke" #: lib/pychess/Variants/corner.py:18 msgid "Corner" msgstr "Qoshe" #: lib/pychess/Variants/crazyhouse.py:8 msgid "" "FICS crazyhouse: http://www.freechess.org/Help/HelpFiles/crazyhouse.html" msgstr "FICS shtëpi-çmendur: http://www.freechess.org/Help/HelpFiles/crazyhouse.html" #: lib/pychess/Variants/euroshogi.py:9 msgid "EuroShogi: http://en.wikipedia.org/wiki/EuroShogi" msgstr "EuroShogi: http://en.wikipedia.org/wiki/EuroShogi" #: lib/pychess/Variants/euroshogi.py:10 msgid "EuroShogi" msgstr "EuroShogi" #: lib/pychess/Variants/fischerandom.py:18 msgid "" "http://en.wikipedia.org/wiki/Chess960\n" "FICS wild/fr: http://www.freechess.org/Help/HelpFiles/wild.html" msgstr "http://en.wikipedia.org/wiki/Chess960\nFICS egër/fr: http://www.freechess.org/Help/HelpFiles/wild.html" #: lib/pychess/Variants/fischerandom.py:20 msgid "Fischer Random" msgstr "Fischer Rastësishëm" #: lib/pychess/Variants/kingofthehill.py:8 msgid "" "Bringing your king legally to the center (e4, d4, e5, d5) instantly wins the game!\n" "Normal rules apply in other cases and checkmate also ends the game." msgstr "Sjellja e mbretit tuaj ligjërisht në qendër (e4, d4, e5, d5) menjëherë fiton lojën!\nRregullat normale aplikohen në raste të tjera dhe shahmate gjithashtu përfundon lojën." #: lib/pychess/Variants/kingofthehill.py:10 msgid "King of the hill" msgstr "Mbreti i lartësisë" #: lib/pychess/Variants/knightodds.py:8 msgid "One player starts with one less knight piece" msgstr "Një lojtar fillon me një gurë kalorë më pak" #: lib/pychess/Variants/knightodds.py:9 msgid "Knight odds" msgstr "shanset kalit" #: lib/pychess/Variants/losers.py:8 msgid "FICS losers: http://www.freechess.org/Help/HelpFiles/losers_chess.html" msgstr "FICS humbësit: http://www.freechess.org/Help/HelpFiles/losers_chess.html" #: lib/pychess/Variants/normal.py:4 msgid "" "Classic chess rules\n" "http://en.wikipedia.org/wiki/Chess" msgstr "Rregullat Klasike Shahut\nhttp://en.wikipedia.org/wiki/Chess" #: lib/pychess/Variants/normal.py:6 lib/pychess/widgets/newGameDialog.py:157 msgid "Normal" msgstr "Normale" #: lib/pychess/Variants/pawnodds.py:8 msgid "One player starts with one less pawn piece" msgstr "Një lojtar fillon me një gurë ushtarë më pak" #: lib/pychess/Variants/pawnodds.py:9 msgid "Pawn odds" msgstr "Shanset ushtarit" #: lib/pychess/Variants/pawnspassed.py:11 msgid "" "FICS wild/8a: http://www.freechess.org/Help/HelpFiles/wild.html\n" "White pawns start on 5th rank and black pawns on the 4th rank" msgstr "FICS egër/8a: http://www.freechess.org/Help/HelpFiles/wild.html\nUshtarë Bardhë fillojë në radhën 5st dhe ushtarë zezë në radhën e 4rt" #: lib/pychess/Variants/pawnspassed.py:13 msgid "Pawns Passed" msgstr "Ushtari Kaloi" #: lib/pychess/Variants/pawnspushed.py:10 msgid "" "FICS wild/8: http://www.freechess.org/Help/HelpFiles/wild.html\n" "Pawns start on 4th and 5th ranks rather than 2nd and 7th" msgstr "FICS egër/8: http://www.freechess.org/Help/HelpFiles/wild.html\nUshtarët fillojnë në radhën 4rt dhe 5st në-vend se në 2të dhe 7të" #: lib/pychess/Variants/pawnspushed.py:12 msgid "Pawns Pushed" msgstr "Ushtari U shty" #: lib/pychess/Variants/queenodds.py:8 msgid "One player starts with one less queen piece" msgstr "Një lojtar fillon me një gurë mbretëreshë më pak" #: lib/pychess/Variants/queenodds.py:9 msgid "Queen odds" msgstr "Shanset mbretëreshë" #: lib/pychess/Variants/randomchess.py:11 msgid "" "FICS wild/3: http://www.freechess.org/Help/HelpFiles/wild.html\n" "* Randomly chosen pieces (two queens or three rooks possible)\n" "* Exactly one king of each color\n" "* Pieces placed randomly behind the pawns\n" "* No castling\n" "* Black's arrangement mirrors white's" msgstr "FICS egër/3: http://www.freechess.org/Help/HelpFiles/wild.html\n* Gurë të zgjedhura rastësisht (dy mbretëreshat ose tre torrë mundshme)\n* Pikërisht një mbret i çdo ngjyrë\n* Gurë të vendosura rastësisht pas ushtarëve\n* Jo Rrëke\n* Rregullim zezë pasqyron bardhë" #: lib/pychess/Variants/randomchess.py:17 #: lib/pychess/widgets/TaskerManager.py:155 msgid "Random" msgstr "Rastësishëm" #: lib/pychess/Variants/rookodds.py:8 msgid "One player starts with one less rook piece" msgstr "Një lojtar fillon me një gurë torrë më pak" #: lib/pychess/Variants/rookodds.py:9 msgid "Rook odds" msgstr "Shanset torrës" #: lib/pychess/Variants/shuffle.py:11 msgid "" "xboard nocastle: http://home.hccnet.nl/h.g.muller/engine-intf.html#8\n" "FICS wild/2: http://www.freechess.org/Help/HelpFiles/wild.html\n" "* Random arrangement of the pieces behind the pawns\n" "* No castling\n" "* Black's arrangement mirrors white's" msgstr "xfushë jorrëke: http://home.hccnet.nl/h.g.muller/engine-intf.html#8\nFICS egër/2: http://www.freechess.org/Help/HelpFiles/wild.html\n* Rregullim rastësishëm e gurëve pas ushtarëve\n* Jo Rrëke\n* Rregullim zezë pasqyron bardhë" #: lib/pychess/Variants/suicide.py:11 msgid "" "FICS suicide: http://www.freechess.org/Help/HelpFiles/suicide_chess.html" msgstr "FICS vetëvrasje: http://www.freechess.org/Help/HelpFiles/suicide_chess.html" #: lib/pychess/Variants/theban.py:10 msgid "" "Variant developed by Kai Laskos: " "http://talkchess.com/forum/viewtopic.php?t=40990" msgstr "Varianti i zhvilluar nga Kai Laskos: http://talkchess.com/forum/viewtopic.php?t=40990" #: lib/pychess/Variants/theban.py:11 msgid "Theban" msgstr "Theban" #: lib/pychess/Variants/threecheck.py:10 msgid "Win by giving check 3 times" msgstr "Fito duke dhënë 3 herë shah" #: lib/pychess/Variants/threecheck.py:11 msgid "Three-check" msgstr "Tre-shah" #: lib/pychess/Variants/upsidedown.py:10 msgid "" "FICS wild/5: http://www.freechess.org/Help/HelpFiles/wild.html\n" "http://en.wikipedia.org/wiki/Chess_variant#Chess_with_different_starting_positions\n" "Pawns start on their 7th rank rather than their 2nd rank!" msgstr "FICS egër/5: http://www.freechess.org/Help/HelpFiles/wild.html\nhttp://en.wikipedia.org/wiki/Chess_variant#Chess_with_different_starting_positions\nUshtarët fillojnë radhitjen në 7të në vend se në radhitjen e 2të!" #: lib/pychess/Variants/upsidedown.py:13 msgid "Upside Down" msgstr "kokëposhtë" #: lib/pychess/Variants/wildcastle.py:10 msgid "" "xboard wildcastle http://home.hccnet.nl/h.g.muller/engine-intf.html#8\n" "FICS wild/0: http://www.freechess.org/Help/HelpFiles/wild.html\n" "* White has the typical set-up at the start.\n" "* Black's pieces are the same, except that the King and Queen are reversed,\n" "* so they are not on the same files as White's King and Queen.\n" "* Castling is done similarly to normal chess:\n" "* o-o-o indicates long castling and o-o short castling." msgstr "xfushë kështjellegër http://home.hccnet.nl/h.g.muller/engine-intf.html#8\nFICS egër/0: http://www.freechess.org/Help/HelpFiles/wild.html\n* Të bardhat kanë ndërtimin tipik në fillim.\n* Gurët e zi janë të njëjtë, përjashtuar që Mbreti dhe Mbretëresha janë kundërt,\n* Kështu që ata nuk janë në të njëjtat dokument si Mbreti Bardhë dhe Mbretëresha.\n* Rrëke është bërë në mënyrë të ngjashme me shahun normal:\n* o-o-o tregon rrëke të gjatë dhe o-o rrëke të shkurtër." #: lib/pychess/Variants/wildcastle.py:17 msgid "Wildcastle" msgstr "Kala-terbuar " #: lib/pychess/Variants/wildcastleshuffle.py:11 msgid "" "xboard wildcastle http://home.hccnet.nl/h.g.muller/engine-intf.html#8\n" "FICS wild/1: http://www.freechess.org/Help/HelpFiles/wild.html\n" "* In this variant both sides have the same set of pieces as in normal chess.\n" "* The white king starts on d1 or e1 and the black king starts on d8 or e8,\n" "* and the rooks are in their usual positions.\n" "* Bishops are always on opposite colors.\n" "* Subject to these constraints the position of the pieces on their first ranks is random.\n" "* Castling is done similarly to normal chess:\n" "* o-o-o indicates long castling and o-o short castling." msgstr "xfushë rrëke-egër http://home.hccnet.nl/h.g.muller/engine-intf.html#8\nFICS egër/1: http://www.freechess.org/Help/HelpFiles/wild.html\n* Në këtë variant të dy palët kanë të njëjtat gurë si në shah normale.\n* Mbreti i bardhë fillon në D1 ose E1 dhe mbreti i zi fillon në D8 ose E8,\n* dhe torrët janë në pozicionet e tyre të zakonshme.\n* Peshkopët janë gjithmonë në ngjyra të kundërta.\n* Në varësi të këtyre kufizimeve pozita nga pjesët në radhët e tyre të para është e rastit.\n* Rrëkea është bërë në mënyrë të ngjashme me shahun normal:\n* o-o-o tregon rrëke të gjatë dhe o-o rrëke shkurtër." #: lib/pychess/Variants/wildcastleshuffle.py:20 msgid "Wildcastle shuffle" msgstr "Kala-terbuar përzierje" #: lib/pychess/widgets/analyzegameDialog.py:85 msgid "Game analyzing in progress..." msgstr "Analiza e lojës në progres..." #: lib/pychess/widgets/analyzegameDialog.py:86 msgid "Do you want to abort it?" msgstr "Dëshironi ta ndërprisni?" #: lib/pychess/widgets/analyzegameDialog.py:95 #: lib/pychess/widgets/gamewidget.py:202 lib/pychess/widgets/gamewidget.py:320 msgid "Abort" msgstr "Ndërpre" #: lib/pychess/widgets/ChatView.py:125 msgid "Observers" msgstr "" #: lib/pychess/widgets/ChatWindow.py:222 msgid "You have opened no conversations yet" msgstr "Ju nuk keni hapur biseda ende" #: lib/pychess/widgets/ChatWindow.py:254 msgid "Only registered users may talk to this channel" msgstr "Vetëm përdoruesit e regjistruar mund të bisedojnë në këtë kanal" #: lib/pychess/widgets/ChatWindow.py:312 msgid "No conversation's selected" msgstr "Nuk ka biseda të zgjedhura" #: lib/pychess/widgets/ChatWindow.py:350 msgid "Loading player data" msgstr "Ngarko informacionet e lojtarit" #: lib/pychess/widgets/ChatWindow.py:400 msgid "Receiving list of players" msgstr "Marrja e listës së lojtarëve" #: lib/pychess/widgets/ChatWindow.py:518 msgid "Friends" msgstr "Shoqëria" #: lib/pychess/widgets/ChatWindow.py:529 msgid "Admin" msgstr "" #: lib/pychess/widgets/ChatWindow.py:540 msgid "More channels" msgstr "Më shumë kanale" #: lib/pychess/widgets/ChatWindow.py:548 msgid "More players" msgstr "Më shumë lojtarë" #: lib/pychess/widgets/ChatWindow.py:558 msgid "Computers" msgstr "" #: lib/pychess/widgets/ChatWindow.py:568 msgid "BlindFold" msgstr "" #: lib/pychess/widgets/ChatWindow.py:578 msgid "Guests" msgstr "" #: lib/pychess/widgets/ChatWindow.py:805 msgid "Conversations" msgstr "Biseda" #: lib/pychess/widgets/ChatWindow.py:807 msgid "Conversation info" msgstr "Informacion bisede" #: lib/pychess/widgets/enginesDialog.py:152 msgid "Select engine" msgstr "Përzgjedh motorin" #: lib/pychess/widgets/enginesDialog.py:156 msgid "Executable files" msgstr "Skedarë ekzekutues" #: lib/pychess/widgets/enginesDialog.py:176 #: lib/pychess/widgets/enginesDialog.py:210 #: lib/pychess/widgets/enginesDialog.py:235 #, python-format msgid "Unable to add %s" msgstr "I pamundur shtimi %s" #: lib/pychess/widgets/enginesDialog.py:177 msgid "wine not installed" msgstr "wine jo i instaluar" #: lib/pychess/widgets/enginesDialog.py:211 #: lib/pychess/widgets/enginesDialog.py:236 msgid "There is something wrong with this executable" msgstr "Ka diçka të gabuar me këtë ekzekutues" #: lib/pychess/widgets/enginesDialog.py:266 msgid "Select working directory" msgstr "Përzgjedh skedarë funksional" #: lib/pychess/widgets/gamenanny.py:115 #, python-format msgid " invalid engine move: %s" msgstr " lëvizje e gabuar motorri: %s" #: lib/pychess/widgets/gamenanny.py:134 msgid "Offer Rematch" msgstr "Ofro Ndeshjekthimi" #: lib/pychess/widgets/gamenanny.py:136 lib/pychess/widgets/gamenanny.py:147 #, python-format msgid "Observe %s" msgstr "Vëzhgo %s" #: lib/pychess/widgets/gamenanny.py:168 msgid "Play Rematch" msgstr "Luaj Ndeshjekthimi" #: lib/pychess/widgets/gamenanny.py:171 msgid "Undo one move" msgstr "Kthe një veprim" #: lib/pychess/widgets/gamenanny.py:173 msgid "Undo two moves" msgstr "Kthe dy veprime" #: lib/pychess/widgets/gamenanny.py:203 msgid "The game is paused" msgstr "Loja është e ndaluar" #: lib/pychess/widgets/gamenanny.py:221 lib/pychess/widgets/gamenanny.py:222 msgid "Loaded game" msgstr "Loja ngarkuar" #: lib/pychess/widgets/gamenanny.py:228 msgid "Saved game" msgstr "Loja ruajtur" #: lib/pychess/widgets/gamenanny.py:232 msgid "Analyzer started" msgstr "Analizuesi filloj" #: lib/pychess/widgets/gamenanny.py:281 msgid "You sent an abort offer" msgstr "Ju dërguat një ofertë ndërprerje" #: lib/pychess/widgets/gamenanny.py:283 msgid "You sent an adjournment offer" msgstr "Ju dërguat një ofertë pezullimi" #: lib/pychess/widgets/gamenanny.py:285 msgid "You sent a draw offer" msgstr "Ju dërguat një ofertë rem" #: lib/pychess/widgets/gamenanny.py:287 msgid "You sent a pause offer" msgstr "Ju dërguat një ofertë pushimi" #: lib/pychess/widgets/gamenanny.py:289 msgid "You sent a resume offer" msgstr "Ju dërguat një ofertë rinisëse" #: lib/pychess/widgets/gamenanny.py:291 msgid "You sent an undo offer" msgstr "Ju dërguat një ofertë kthimi" #: lib/pychess/widgets/gamenanny.py:293 msgid "You asked your opponent to move" msgstr "Ju kërkuat kundërshtarin tuaj për të lëvizur" #: lib/pychess/widgets/gamenanny.py:305 #, python-format msgid "Engine, %s, has died" msgstr "Motorri, %s, ka vdekur" #: lib/pychess/widgets/gamenanny.py:306 msgid "" "PyChess has lost connection to the engine, probably because it has died.\n" "\n" "You can try to start a new game with the engine, or try to play against another one." msgstr "PyShah ka humbur lidhjen me motorrin, ndoshta për shkak se ka vdekur.\n\nJu mund të përpiqeni për të filluar një lojë të re me motor, ose të përpiqeni për të luajtur kundër një tjetri." #: lib/pychess/widgets/gamewidget.py:204 msgid "" "This game can be automatically aborted without rating loss because there has" " not yet been two moves made" msgstr "Kjo lojë mund të jetë e ndërprerë automatikisht pa humbje vlerësimi, sepse nuk ka pasur ende dy lëvizje të bëra" #: lib/pychess/widgets/gamewidget.py:206 msgid "Offer Abort" msgstr "Ofro Ndërprerje" #: lib/pychess/widgets/gamewidget.py:208 msgid "" "Your opponent must agree to abort the game because there has been two or " "more moves made" msgstr "Kundërshtari juaj duhet të bie dakord për të ndërprerë lojën sepse si ka pasur dy ose më shumë lëvizje të bëra" #: lib/pychess/widgets/gamewidget.py:226 msgid "This game can not be adjourned because one or both players are guests" msgstr "Kjo lojë nuk mund të shtyhet për shkak se një ose të dy lojtarët janë vizitorë" #: lib/pychess/widgets/gamewidget.py:243 msgid "Claim Draw" msgstr "Pretendim Remi" #: lib/pychess/widgets/gamewidget.py:325 msgid "Pause" msgstr "Pushim" #: lib/pychess/widgets/gamewidget.py:326 msgid "Resume" msgstr "Rifillo" #: lib/pychess/widgets/gamewidget.py:328 msgid "Offer Pause" msgstr "Ofro Pushim" #: lib/pychess/widgets/gamewidget.py:329 msgid "Offer Resume" msgstr "Ofro Rifillim" #: lib/pychess/widgets/gamewidget.py:333 msgid "Undo" msgstr "Kthe" #: lib/pychess/widgets/gamewidget.py:335 msgid "Offer Undo" msgstr "Ofro Kthe" #: lib/pychess/widgets/gamewidget.py:550 msgid " has lagged for 30 seconds" msgstr "është vonuar për 30 sekonda" #: lib/pychess/widgets/gamewidget.py:566 msgid " is lagging heavily but hasn't disconnected" msgstr "është vonuar shumë, por nuk është shkëputur" #: lib/pychess/widgets/gamewidget.py:567 msgid "Continue to wait for opponent, or try to adjourn the game?" msgstr "Vazhdoni të prisni për kundërshtarin, ose përpiquni të shtyni lojën?" #: lib/pychess/widgets/gamewidget.py:575 msgid "Wait" msgstr "Prit" #: lib/pychess/widgets/gamewidget.py:576 msgid "Adjourn" msgstr "Pezulloj" #: lib/pychess/widgets/gamewidget.py:648 msgid "Jump to initial position" msgstr "Shko ne pozicionin fillestar" #: lib/pychess/widgets/gamewidget.py:653 msgid "Step back one move" msgstr "Shko prapa një levizje" #: lib/pychess/widgets/gamewidget.py:658 msgid "Go back to the main line" msgstr "" #: lib/pychess/widgets/gamewidget.py:664 msgid "Step forward one move" msgstr "Shko para një lëvizje" #: lib/pychess/widgets/gamewidget.py:669 msgid "Jump to latest position" msgstr "Shko tek pozicioni fundit" #: lib/pychess/widgets/gamewidget.py:903 msgid "PyChess was unable to load your panel settings" msgstr "PyShah nuk ishte në gjendje për të ngarkuar parametrat tuaj panelit" #: lib/pychess/widgets/gamewidget.py:904 msgid "" "Your panel settings have been reset. If this problem repeats, you should " "report it to the developers" msgstr "Parametrat tuaja panelit janë rivendosur. Nëse ky problem përsëritet, ju duhet të raportoni tek zhvilluesit" #: lib/pychess/widgets/ionest.py:67 lib/pychess/widgets/newGameDialog.py:389 #: lib/pychess/widgets/TaskerManager.py:210 msgid "You" msgstr "Ju" #: lib/pychess/widgets/ionest.py:70 lib/pychess/widgets/newGameDialog.py:390 #: lib/pychess/widgets/preferencesDialog.py:61 #: lib/pychess/widgets/TaskerManager.py:213 msgid "Guest" msgstr "Vizitor" #: lib/pychess/widgets/ionest.py:93 msgid "Error loading game" msgstr "Gabim në ngarkimin e lojës" #: lib/pychess/widgets/ionest.py:127 lib/pychess/widgets/newGameDialog.py:480 msgid "Open Game" msgstr "Hap Lojën" #: lib/pychess/widgets/ionest.py:137 msgid "All Files" msgstr "T'gjithë Dokumentet" #: lib/pychess/widgets/ionest.py:140 msgid "Detect type automatically" msgstr "Zbulo llojin automatikisht" #: lib/pychess/widgets/ionest.py:146 msgid "All Chess Files" msgstr "T'gjithë Dokumente Shahu" #: lib/pychess/widgets/ionest.py:228 msgid "Save Game" msgstr "Ruaj Lojën" #: lib/pychess/widgets/ionest.py:228 msgid "Export position" msgstr "Eksporto Pozicionin" #: lib/pychess/widgets/ionest.py:232 lib/pychess/widgets/ionest.py:360 msgid "vs." msgstr "vs." #: lib/pychess/widgets/ionest.py:249 #, python-format msgid "Unknown file type '%s'" msgstr "Tip dokumentesh panjohur '%s'" #: lib/pychess/widgets/ionest.py:250 #, python-format msgid "" "Was unable to save '%(uri)s' as PyChess doesn't know the format " "'%(ending)s'." msgstr "Në pamundësi për të ruajtur '%(uri)s' sepse PyShah nuk e di formatin '%(ending)s'." #: lib/pychess/widgets/ionest.py:266 #, python-format msgid "Unable to save file '%s'" msgstr "Pamundur ruajtja e dokumenti '%s'" #: lib/pychess/widgets/ionest.py:268 msgid "" "You don't have the necessary rights to save the file.\n" "Please ensure that you have given the right path and try again." msgstr "Ju nuk keni të drejtat e nevojshme për të ruajtur dokumentin.\nJu lutemi sigurohuni që ju kanë dhënë rrugën e drejtë dhe të provoni përsëri." #: lib/pychess/widgets/ionest.py:276 msgid "_Replace" msgstr "_Zëvendëso" #: lib/pychess/widgets/ionest.py:280 msgid "File exists" msgstr "Dokumenti ekziston" #: lib/pychess/widgets/ionest.py:282 #, python-format msgid "" "A file named '%s' already exists. Would you like to replace " "it?" msgstr "Një dokument me këtë emer '%s' ekziston. Dëshironi të zëvendësuar atë?" #: lib/pychess/widgets/ionest.py:283 #, python-format msgid "" "The file already exists in '%s'. If you replace it, its content will be " "overwritten." msgstr "Dokumenti tashmë ekziston në '%s'. Nëse ju zëvendësoni atë, përmbajtja e tij do të jetë mbishkruar." #: lib/pychess/widgets/ionest.py:299 msgid "Could not save the file" msgstr "Nuk mund të ruaj dokumentin" #: lib/pychess/widgets/ionest.py:300 msgid "PyChess was not able to save the game" msgstr "PyShah nuk ishte në gjendje për të ruajtur lojën" #: lib/pychess/widgets/ionest.py:301 #, python-format msgid "The error was: %s" msgstr "Gabimi ishte: %s" #: lib/pychess/widgets/ionest.py:325 #, python-format msgid "There is %d game with unsaved moves." msgid_plural "There are %d games with unsaved moves." msgstr[0] "Ka %d lojë me lëvizje të paruajtur." msgstr[1] "Ka %d lojëra me lëvizje të paruajtura." #: lib/pychess/widgets/ionest.py:328 msgid "Save moves before closing?" msgstr "Ruaj lëvizjet para mbylljes?" #: lib/pychess/widgets/ionest.py:339 msgid "Unable to save to configured file. Save the games before closing?" msgstr "Në pamundësi për të ruajtur në skedarin e konfiguruar. Ruaj lojën para se ta mbyllni?" #: lib/pychess/widgets/ionest.py:366 #, python-format msgid "_Save %d document" msgid_plural "_Save %d documents" msgstr[0] "_Ruaj %d dokumentin" msgstr[1] "_Ruaj %d dokumentet" #: lib/pychess/widgets/ionest.py:412 msgid "Save the current game before you close it?" msgstr "Ruaj lojën aktuale para se të mbyllni atë?" #: lib/pychess/widgets/ionest.py:420 msgid "" "Unable to save to configured file. Save the current game before you close " "it?" msgstr "Në pamundësi për të ruajtur në skedarin e konfiguruar. Ruaj lojën aktuale para se të mbyllni atë?" #: lib/pychess/widgets/ionest.py:434 msgid "" "It is not possible later to continue the game,\n" "if you don't save it." msgstr "Nuk është e mundur të vazhdojë lojën më vonë,\nnëse nuk e ruani atë." #: lib/pychess/widgets/LogDialog.py:26 msgid "PyChess Information Window" msgstr "Dritarja Informative PyShah" #: lib/pychess/widgets/LogDialog.py:184 lib/pychess/widgets/LogDialog.py:188 msgid "of" msgstr "e" #: lib/pychess/widgets/newGameDialog.py:84 #: lib/pychess/widgets/newGameDialog.py:85 msgid "Human Being" msgstr "Qenie Njerëzore" #: lib/pychess/widgets/newGameDialog.py:155 msgid "Rapid" msgstr "Shpejtë" #: lib/pychess/widgets/newGameDialog.py:224 msgid "Minutes:" msgstr "Minuta:" #: lib/pychess/widgets/newGameDialog.py:228 msgid "Gain:" msgstr "Rritje:" #: lib/pychess/widgets/newGameDialog.py:241 #, python-format msgid "%(name)s %(minutes)d min + %(gain)d sec/move" msgstr "%(name)s %(minutes)d min + %(gain)d se/levizje" #: lib/pychess/widgets/newGameDialog.py:244 #, python-format msgid "%(name)s %(minutes)d min %(gain)d sec/move" msgstr "%(name)s %(minutes)d min %(gain)d sek/levizje" #: lib/pychess/widgets/newGameDialog.py:247 #, python-format msgid "%(name)s %(minutes)d min" msgstr "%(name)s %(minutes)d min" #: lib/pychess/widgets/newGameDialog.py:265 msgid "Odds" msgstr "Shanset" #: lib/pychess/widgets/newGameDialog.py:269 msgid "Asian variants" msgstr "Variante aziatik" #: lib/pychess/widgets/newGameDialog.py:301 msgid " chess" msgstr "Shah" #: lib/pychess/widgets/newGameDialog.py:682 msgid "Type or paste PGN game or FEN positions here" msgstr "Shkruaj ose ngjit këtu pozicionet e lojës PGN ose Fen" #: lib/pychess/widgets/newGameDialog.py:725 msgid "Enter Game" msgstr "Hyr Lojë" #: lib/pychess/widgets/preferencesDialog.py:123 msgid "Select book file" msgstr "Përzgjedh dokument libri" #: lib/pychess/widgets/preferencesDialog.py:128 msgid "Opening books" msgstr "Hapja Librave" #: lib/pychess/widgets/preferencesDialog.py:156 msgid "Select Gaviota TB path" msgstr "Zgjedh rrugën Gaviota TB" #: lib/pychess/widgets/preferencesDialog.py:331 msgid "Open Sound File" msgstr "Hap Dokument Zëri" #: lib/pychess/widgets/preferencesDialog.py:341 msgid "Sound files" msgstr "Dokumente zëri" #: lib/pychess/widgets/preferencesDialog.py:485 msgid "Undescribed panel" msgstr "Paneli papërshkrimit" #: lib/pychess/widgets/preferencesDialog.py:678 msgid "Select auto save path" msgstr "Zgjedh rrugën automatike ruajtëse" #: lib/pychess/widgets/tipOfTheDay.py:51 msgid "" "You can start a new game by Game > New Game, in New Game " "window do you can choose Players, Time Control and Chess " "Variants." msgstr "Ju mund të filloni një lojë të re dukeLojë > Lojë e Re , në një dritare të re loje ku mund të zgjidhniLojtarin, Kohë KontrollidheVariantet shahut ." #: lib/pychess/widgets/tipOfTheDay.py:52 msgid "" "You can choose from 20 different difficulties to play against the computer." msgstr "Ju mund të zgjidhni nga 20 vështirësi të ndryshme për të luajtur kundër kompjuter." #: lib/pychess/widgets/tipOfTheDay.py:53 msgid "" "Chess Variants are like the pieces of the last line will be placed on the " "board." msgstr "Variantet e Shahut janë si gurët e vijës së fundit që do të vendosen në bord." #: lib/pychess/widgets/tipOfTheDay.py:54 msgid "" "To save a game Game > Save Game As, give the filename and " "choose where you want to be saved. At the bottom choose extension type of " "the file, and Save." msgstr "Për të ruajtur një lojënLojë > Ruaj Lojën Si, jepni emrin e dokumentit dhe zgjidhni ku doni të jetë i ruajtur. Në fund të zgjedhni llojin e shtesës së dokumentit, dheRuaj." #: lib/pychess/widgets/tipOfTheDay.py:55 msgid "" "Do you know that you can call flag when the clock is with you, " "Actions > Call Flag." msgstr "A e dini se ju mund të thirrni flamurin kur ora është me ju, Veprimet > Thirr Flamurin." #: lib/pychess/widgets/tipOfTheDay.py:56 msgid "Pressing Ctrl+Z to offer opponent the possible rollback moves." msgstr "Shtypja Ctrl+Z për ti ofruar kundërshtarit lëvizjet e mundshme rikthyese." #: lib/pychess/widgets/tipOfTheDay.py:57 msgid "" "To play on Fullscreen mode, just type F11. Coming back, F11 " "again." msgstr "Për të luajtur në Ekran të plotë, vetëm shkruaj F11. Po vij mbrapa, F11 përsëri." #: lib/pychess/widgets/tipOfTheDay.py:58 msgid "Hint mode analyzing your game, enable this type Ctrl+H." msgstr "Mënyra Shëmbull analizo lojën tënde, mundëso këtë llojCtrl+H." #: lib/pychess/widgets/tipOfTheDay.py:59 msgid "" "Spy mode analyzing the oponnent game, enable this type Ctrl+Y." msgstr " Mënyra Spiun analizo lojën e kundërshtarit, mundëso këtë llojCtrl+Y." #: lib/pychess/widgets/tipOfTheDay.py:60 msgid "" "You can play chess listening to the sounds of the game, for that, " "Settings > Preferences > Sound tab, enable Use " "sounds in PyChess and choose your preferred sounds." msgstr "Ju mund të luani shah duke dëgjuar zërin e lojës, për të cilat, Parametrat > Preferencat > Tabelë zëri, mundësuar përdorimin përdor zërin në PyShah dhe zgjidhni tingujt e tuaj të preferuar." #: lib/pychess/widgets/tipOfTheDay.py:61 msgid "" "Do you know that you can help translate Pychess in your language, " "Help > Translate Pychess." msgstr "A e dini se ju mund të ndihmojë të përktheni PyShah në gjuhën tuaj, Ndihmë > Përkthe Pyshah." #: lib/pychess/widgets/tipOfTheDay.py:62 msgid "" "Do you know that it is possible to finish a chess game in just 2 turns?" msgstr "A e dini se është e mundur për të përfunduar një lojë shahu në vetëm 2 radhë?" #: lib/pychess/widgets/tipOfTheDay.py:63 msgid "" "Do you know that the number of possible chess games exceeds the number of " "atoms in the Universe?" msgstr "A e dini se numri i lojrave të mundshme shahut e tejkalon numrin e atomeve në univers?" #: lib/pychess/ic/managers/ChatManager.py:184 msgid "Shout" msgstr "Thirrje" #: lib/pychess/ic/managers/ChatManager.py:185 msgid "Chess Shout" msgstr "Thirrje shahu" #: lib/pychess/ic/managers/ChatManager.py:195 #, python-format msgid "Unofficial channel %d" msgstr "Kanal jozyrtar %d" #: lib/pychess/Utils/lutils/LBoard.py:152 #, python-format msgid "" "FEN needs 6 data fields. \n" "\n" "%s" msgstr "FEN ka nevojë për 6 fushat e të dhënave. \n\n%s" #: lib/pychess/Utils/lutils/LBoard.py:154 #, python-format msgid "" "FEN needs at least 2 data fields in fenstr. \n" "\n" "%s" msgstr "FEN ka nevojë për të paktën 2 fusha të dhënash në fenstr. \n\n%s" #: lib/pychess/Utils/lutils/LBoard.py:175 #, python-format msgid "" "Needs 7 slashes in piece placement field. \n" "\n" "%s" msgstr "Nevojiten 7 lëvizje në pjesët e vendosura në fushë. \n\n%s" #: lib/pychess/Utils/lutils/LBoard.py:178 #, python-format msgid "" "Active color field must be one of w or b. \n" "\n" "%s" msgstr "Ngjyra aktive e fushës duhet të jetë njëra e w ose b. \n\n%s" #: lib/pychess/Utils/lutils/LBoard.py:189 #, python-format msgid "" "Castling availability field is not legal. \n" "\n" "%s" msgstr "Vlefshmëria e fushës për rrëke nuk është e ligjshme. \n\n%s" #: lib/pychess/Utils/lutils/LBoard.py:192 #, python-format msgid "" "En passant cord is not legal. \n" "\n" "%s" msgstr "Marrëveshja kalimtare nuk është e ligjshme. \n\n%s" #: lib/pychess/Utils/lutils/lmove.py:260 msgid "invalid promoted piece" msgstr "Gurë i promovuar paligjmërisht" #: lib/pychess/Utils/lutils/lmove.py:272 msgid "the move needs a piece and a cord" msgstr "veprim ka nevojë për një gurë dhe një lidhje" #: lib/pychess/Utils/lutils/lmove.py:306 lib/pychess/Utils/lutils/lmove.py:556 msgid "promotion move without promoted piece is incorrect" msgstr "promovimin veprim pa pjesë të promovuar guri është e pasaktë" #: lib/pychess/Utils/lutils/lmove.py:312 #, python-format msgid "the captured cord (%s) is incorrect" msgstr "lidhja e kapur (%s) është e pasaktë" #: lib/pychess/Utils/lutils/lmove.py:323 #, python-format msgid "the end cord (%s) is incorrect" msgstr "lidhja e fundit (%s) është e pasaktë" #: lib/pychess/Utils/lutils/strateval.py:24 sidepanel/commentPanel.py:191 #: sidepanel/commentPanel.py:208 msgid "and" msgstr "dhe" #: lib/pychess/Utils/lutils/strateval.py:43 msgid "draws" msgstr "remi" #: lib/pychess/Utils/lutils/strateval.py:45 msgid "mates" msgstr "shahmat" #: lib/pychess/Utils/lutils/strateval.py:49 msgid "puts opponent in check" msgstr "vë kundërshtarin në shah" #: lib/pychess/Utils/lutils/strateval.py:73 msgid "improves king safety" msgstr "përmirëson sigurinë mbret" #: lib/pychess/Utils/lutils/strateval.py:75 msgid "slightly improves king safety" msgstr "pak përmirëson sigurinë mbret" #: lib/pychess/Utils/lutils/strateval.py:108 msgid "moves a rook to an open file" msgstr "lëviz një torrë në një kuti të hapur" #: lib/pychess/Utils/lutils/strateval.py:109 msgid "moves an rook to a half-open file" msgstr "lëviz një torrë në një kuti gjysmë-hapur" #: lib/pychess/Utils/lutils/strateval.py:119 #: lib/pychess/Utils/lutils/strateval.py:121 #: lib/pychess/Utils/lutils/strateval.py:124 #: lib/pychess/Utils/lutils/strateval.py:126 #, python-format msgid "moves bishop into fianchetto: %s" msgstr "lëviz oficerin në fianchetto: %s" #: lib/pychess/Utils/lutils/strateval.py:132 #, python-format msgid "promotes a Pawn to a %s" msgstr "promovon një ushtar në një %s" #: lib/pychess/Utils/lutils/strateval.py:135 msgid "castles" msgstr "kështjella" #: lib/pychess/Utils/lutils/strateval.py:158 msgid "takes back material" msgstr "merr prapa materialin" #: lib/pychess/Utils/lutils/strateval.py:162 #: lib/pychess/Utils/lutils/strateval.py:170 msgid "sacrifies material" msgstr "sakrifikon materialin" #: lib/pychess/Utils/lutils/strateval.py:164 msgid "exchanges material" msgstr "shkëmbimet materiali" #: lib/pychess/Utils/lutils/strateval.py:166 msgid "captures material" msgstr "kap materialin" #: lib/pychess/Utils/lutils/strateval.py:291 #, python-format msgid "rescues a %s" msgstr "shpëton si %s" #: lib/pychess/Utils/lutils/strateval.py:294 #, python-format msgid "threatens to win material by %s" msgstr "kërcënon për të fituar materialin nga %s" #: lib/pychess/Utils/lutils/strateval.py:296 #, python-format msgid "increases the pressure on %s" msgstr "rrit presionin mbi %s" #: lib/pychess/Utils/lutils/strateval.py:298 #, python-format msgid "defends %s" msgstr "mbron %s" #: lib/pychess/Utils/lutils/strateval.py:336 #, python-format msgid "pins an enemy %(oppiece)s on the %(piece)s at %(cord)s" msgstr "kapë një armik %(oppiece)s në %(piece)s në %(cord)s" #: lib/pychess/Utils/lutils/strateval.py:369 #, python-format msgid "White has a new piece in outpost: %s" msgstr "E Bardha ka një pjesë të re nga-pas: %s" #: lib/pychess/Utils/lutils/strateval.py:377 #, python-format msgid "Black has a new piece in outpost: %s" msgstr "E Zeza ka një pjesë të re nga-pas: %s" #: lib/pychess/Utils/lutils/strateval.py:416 #, python-format msgid "%(color)s has a new passed pawn on %(cord)s" msgstr "%(color)s ka një ushtarë të ri të miratuar në %(cord)s" #: lib/pychess/Utils/lutils/strateval.py:470 msgid "half-open" msgstr "gjysmë-hapur " #: lib/pychess/Utils/lutils/strateval.py:472 #, python-format msgid "in the %(x)s%(y)s file" msgstr "në %(x)s%(y)s dokument" #: lib/pychess/Utils/lutils/strateval.py:474 #, python-format msgid "in the %(x)s%(y)s files" msgstr "në %(x)s%(y)s dokumente " #: lib/pychess/Utils/lutils/strateval.py:477 #, python-format msgid "%(color)s got a double pawn %(place)s" msgstr "%(color)s mori një ushtar të dyfishtë %(place)s" #: lib/pychess/Utils/lutils/strateval.py:478 #, python-format msgid "%(color)s got new double pawns %(place)s" msgstr "%(color)s mori ushtarë të ri të dyfishtë %(place)s" #: lib/pychess/Utils/lutils/strateval.py:485 #, python-format msgid "%(color)s got an isolated pawn in the %(x)s file" msgid_plural "%(color)s got isolated pawns in the %(x)s files" msgstr[0] "%(color)s mori ushtarë të izoluar në %(x)s dokument" msgstr[1] "%(color)s mori ushtarë të izoluar në %(x)s dokumentet" #: lib/pychess/Utils/lutils/strateval.py:492 #, python-format msgid "%s moves pawns into stonewall formation" msgstr "%s lëviz ushtarin në formimin Murrë-gurë " #: lib/pychess/Utils/lutils/strateval.py:507 #: lib/pychess/Utils/lutils/strateval.py:514 #, python-format msgid "%s can no longer castle" msgstr "%s nuk mund të bëjë kalanë më" #: lib/pychess/Utils/lutils/strateval.py:508 #: lib/pychess/Utils/lutils/strateval.py:515 #, python-format msgid "%s can no longer castle in queenside" msgstr "%s nuk mund të bëjë kalanë në anën e mbretëreshës" #: lib/pychess/Utils/lutils/strateval.py:510 #: lib/pychess/Utils/lutils/strateval.py:517 #, python-format msgid "%s can no longer castle in kingside" msgstr "%s nuk mund të bëjë kalanë në anën e mbretit" #: lib/pychess/Utils/lutils/strateval.py:551 #, python-format msgid "%(opcolor)s has a new trapped bishop on %(cord)s" msgstr "%(opcolor)s ka një peshkop të ri të bllokuar në %(cord)s" #: lib/pychess/Utils/lutils/strateval.py:573 #, python-format msgid "develops a pawn: %s" msgstr "zhvillon një ushtarë: %s" #: lib/pychess/Utils/lutils/strateval.py:574 #, python-format msgid "brings a pawn closer to the backrow: %s" msgstr "sjell një ushtarë pranë kuti-mbrapa: %s" #: lib/pychess/Utils/lutils/strateval.py:591 #, python-format msgid "brings a %(piece)s closer to enemy king: %(cord)s" msgstr "sjellë një %(piece)s më pranë mbretit armik: %(cord)s" #: lib/pychess/Utils/lutils/strateval.py:594 #, python-format msgid "develops a %(piece)s: %(cord)s" msgstr "zhvillon një %(piece)s: %(cord)s" #: lib/pychess/Utils/lutils/strateval.py:612 #, python-format msgid "places a %(piece)s more active: %(cord)s" msgstr "vendosë një %(piece)s më aktiv: %(cord)s" #: lib/pychess/Utils/lutils/strateval.py:638 msgid "White should do pawn storm in right" msgstr "E bardha duhet të bëjë stuhi me ushtarë në të djathtë" #: lib/pychess/Utils/lutils/strateval.py:640 msgid "Black should do pawn storm in left" msgstr "E zeza duhet të bëjë stuhi me ushtarë në të majtë" #: lib/pychess/Utils/lutils/strateval.py:643 msgid "White should do pawn storm in left" msgstr "E bardha duhet të bëjë stuhi me ushtarë në të majtë" #: lib/pychess/Utils/lutils/strateval.py:645 msgid "Black should do pawn storm in right" msgstr "E zeza duhet të bëjë stuhi me ushtarë në të djathtë" #: lib/pychess/Utils/lutils/strateval.py:671 msgid "Black has a rather cramped position" msgstr "E zeza ka një pozicion mjaft ngërç" #: lib/pychess/Utils/lutils/strateval.py:673 msgid "Black has a slightly cramped position" msgstr "E zeza ka një pozicion pak ngërç" #: lib/pychess/Utils/lutils/strateval.py:675 msgid "White has a rather cramped position" msgstr "E bardha ka një pozicion mjaft ngërç" #: lib/pychess/Utils/lutils/strateval.py:677 msgid "White has a slightly cramped position" msgstr "E bardha ka një pozicion pak ngërç" #: sidepanel/annotationPanel.py:26 msgid "Annotation" msgstr "Shënim" #: sidepanel/annotationPanel.py:29 msgid "Annotated game" msgstr "Lojë e shënuar" #: sidepanel/annotationPanel.py:236 msgid "Copy PGN" msgstr "Kopjo PGN" #: sidepanel/annotationPanel.py:249 msgid "Add start comment" msgstr "Shto koment fillimi" #: sidepanel/annotationPanel.py:254 msgid "Add comment" msgstr "Shto koment" #: sidepanel/annotationPanel.py:258 sidepanel/annotationPanel.py:316 msgid "Edit comment" msgstr "Modifiko koment" #: sidepanel/annotationPanel.py:269 msgid "Forced move" msgstr "Masa e detyruar" #: sidepanel/annotationPanel.py:274 msgid "Add move symbol" msgstr "Shto simbol levizje " #: sidepanel/annotationPanel.py:280 msgid "Unclear position" msgstr "Pozicioni Paqartë" #: sidepanel/annotationPanel.py:289 msgid "Zugzwang" msgstr "Zugzwang" #: sidepanel/annotationPanel.py:290 msgid "Development adv." msgstr "Zhvillim adv." #: sidepanel/annotationPanel.py:291 msgid "Initiative" msgstr "iniciativë" #: sidepanel/annotationPanel.py:292 msgid "With attack" msgstr "Me sulm" #: sidepanel/annotationPanel.py:293 msgid "Compensation" msgstr "Kompensim" #: sidepanel/annotationPanel.py:294 msgid "Counterplay" msgstr "Kundërlojë " #: sidepanel/annotationPanel.py:295 msgid "Time pressure" msgstr "Presioni Koha" #: sidepanel/annotationPanel.py:300 msgid "Add evaluation symbol" msgstr "Shto simbol vlerësimi" #: sidepanel/annotationPanel.py:304 msgid "Remove symbols" msgstr "Hiq simbole" #: sidepanel/annotationPanel.py:911 #, python-format msgid "round %s" msgstr "loja %s" #: sidepanel/bookPanel.py:21 msgid "Hints" msgstr "Shenja" #: sidepanel/bookPanel.py:25 msgid "" "The hint panel will provide computer advice during each stage of the game" msgstr "Paneli shenjë do të ofrojë këshilla kompjuteri gjatë çdo fazë të lojës" #: sidepanel/bookPanel.py:27 msgid "Official PyChess panel." msgstr "Paneli Zyrtarë PyShah." #: sidepanel/bookPanel.py:87 msgid "Opening Book" msgstr "Hapja Librit" #: sidepanel/bookPanel.py:88 msgid "" "The opening book will try to inspire you during the opening phase of the " "game by showing you common moves made by chess masters" msgstr "Libri hapjes do të përpiqet për të frymëzuar ju gjatë fazës së hapjes së lojës duke ju treguar lëvizje të zakonshme të bëra nga mjeshtrit e shahut" #: sidepanel/bookPanel.py:139 #, python-format msgid "Analysis by %s" msgstr "Analizë nga %s" #: sidepanel/bookPanel.py:140 #, python-format msgid "" "%s will try to predict which move is best and which side has the advantage" msgstr "%s do të përpiqen të parashikojnë cili veprim është më i mirë dhe cila anë ka avantazhin" #: sidepanel/bookPanel.py:142 #, python-format msgid "Threat analysis by %s" msgstr "Analiza kërcënimi nga %s" #: sidepanel/bookPanel.py:143 #, python-format msgid "" "%s will identify what threats would exist if it were your opponent's turn to" " move" msgstr "%s do të identifikohet se çfarë kërcënime do të ekzistonte nëse do të ishte radha e kundërshtarit tuaj në lëvizje" #: sidepanel/bookPanel.py:159 sidepanel/bookPanel.py:269 msgid "Calculating..." msgstr "Llogaritjen..." #: sidepanel/bookPanel.py:300 msgid "" "Engine scores are in units of pawns, from White's point of view. Double " "clicking on analysis lines you can insert them into Annotation panel as " "variations." msgstr "Rezultatet Motori janë në njësitë e ushtarëve, nga pamja e parë të Bardhë. Kliko Dyfish në linjat e analizës që ju mund të fusni ato në panel anotacion si variacion." #: sidepanel/bookPanel.py:302 msgid "" "Adding suggestions can help you find ideas, but slows down the computer's " "analysis." msgstr "Shtimi sugjerime mund të ju ndihmojë të gjeni ide, por ngadalëson analizën e kompjuterit." #: sidepanel/bookPanel.py:311 msgid "Endgame Table" msgstr "Tabela Lojafundit " #: sidepanel/bookPanel.py:315 msgid "" "The endgame table will show exact analysis when there are few pieces on the " "board." msgstr "Tabela Fundi i lojës do të tregojë analizën e saktë kur ka shumë pak pjesë në fushë." #: sidepanel/bookPanel.py:364 sidepanel/bookPanel.py:367 #, python-format msgid "Mate in %d" msgstr "Shah në %d" #: sidepanel/bookPanel.py:554 msgid "" "In this position,\n" "there is no legal move." msgstr "Në këtë pozicion,\nnuk ka asnjë levizje ligjore." #: sidepanel/chatPanel.py:21 msgid "" "The chat panel lets you communicate with your opponent during the game, " "assuming he or she is interested" msgstr "Paneli bisedës ju lejon të komunikoni me kundërshtarin tuaj gjatë lojës, duke supozuar se ai ose ajo është i interesuar" #: sidepanel/commentPanel.py:16 msgid "Comments" msgstr "Komente" #: sidepanel/commentPanel.py:20 msgid "The comments panel will try to analyze and explain the moves played" msgstr "Paneli komenteve do të përpiqet për të analizuar dhe shpjeguar lëvizjet luajtura" #: sidepanel/commentPanel.py:121 msgid "Initial position" msgstr "Pozicioni Fillestarë" #: sidepanel/commentPanel.py:254 #, python-format msgid "%(color)s moves a %(piece)s to %(cord)s" msgstr "%(color)s lëvizë një %(piece)s në %(cord)s" #: sidepanel/engineOutputPanel.py:15 msgid "Engines" msgstr "Motorët " #: sidepanel/engineOutputPanel.py:20 msgid "" "The engine output panel shows the thinking output of chess engines (computer" " players) during a game" msgstr "Paneli Prodhimi Motori tregon prodhimin e menduarit të motorëve të shahut (lojtarët e kompjuterit) gjatë një lojë" #: sidepanel/engineOutputPanel.py:44 msgid "No chess engines (computer players) are participating in this game." msgstr "Jo motorët shah (lojtarët e kompjuterit) janë duke marrë pjesë në këtë lojë." #: sidepanel/historyPanel.py:10 msgid "Move History" msgstr "Lëviz Histori " #: sidepanel/historyPanel.py:13 msgid "" "The moves sheet keeps track of the players' moves and lets you navigate " "through the game history" msgstr "Fletë lëvizje mban gjurmët e lëvizjes së lojtarëve dhe ju lejon të për të lundruar nëpër historinë e lojës" #: sidepanel/scorePanel.py:15 msgid "Score" msgstr "Pikë" #: sidepanel/scorePanel.py:19 msgid "" "The score panel tries to evaluate the positions and shows you a graph of the" " game progress" msgstr "Paneli Rezultatit përpiqet për të vlerësuar qëndrimet dhe ju tregon një grafik të progresit lojës" pychess-0.12.2/lang/sq/LC_MESSAGES/pychess.mo0000644000175000017470000023035112653231273020724 0ustar tamasusers00000000000000D<]\4E E EGE.F 5F$BF gFuFFF+F FFF/ G0KL%L!-LOLQLaL#hLLL%LLLL9M'HM@pMMMMMMNE(NnNN#N$N NNO O9OHObOLqOO OOOQP&VP$}PCP7PUQ"tQ*Q(QQRR$R8Re>RR RRR&R.RS ,S8SNS^S pSSS SS S TmT~T T TTT TTCT1U @U KUXU gUtUUUU*UU U V V V/VSBVQVVW!'WIW dWW/WSWQ&X#xX*X"X+XYrY "ZKCZ%ZOZ-[33[$g[6[#[E[A-\!o\!\-\&\-];6] r]B]]]] ] ]$]##^%G^"m^#^^ ^^^^^^____ _8_._` "` ,`8`L`]` b`p` `` `P` ` a6aVLaVaRaSMbbbbb-b cc c(c 1ceie f #f.f 3fAf Ef Of [fhf"nff ffKg}Sg gg&g h1"hThZhahxh hhhh0h@hDqX6rRrcr]Fs?sBs;'tqctStO)uFyv v)vv ww )wD7w|wwwwww www w wx x%x 9x Ex Px]xnxxxxx+x xxx xy y!)yKy Ty _y my zy yyyy.y/y z zC!zezzzz zz zzz z zz { { +{ 8{ C{ P{ \{ i{ w{{{\{,|*-|+X|*||||.| }}-} <} I}W}g}}}}}} } }}} } } }}~~ ~ 2~?~T~l~ {~~ ~~~~~ ~E~,'4 \ f#p  €ʀр׀ (7L S^el q{  ρ( &5*P { Ăڂ "1JY hr ƃփ ܃  "9Nb j w/݄  ",?FYowy| ph"UCx549'3aRc{3TE =9Z {ʋI}@`ڌ;UՍ ZwK-hE{,AA0r  ƐPՐ& ӑޑ, 68MLAܒ  !+3I Q^ f r ēғQ6G~M֕ ܕ $#%;"a# Җ֖ #>Qn,rK ̙9k?9(uHC$&'N'?] tt Оf%ql!X&/&(֡&'&'Ndvۢ "0J Y d q {  ˣԣ%ڣ   !, 5A HRX i t  $ ( 0<+Eq !)Х83M1S'Ʀئ  $ 7 A5K"e+ 6Kbz!թ $ ' 4BSbs6( 2!Tk |Ϋ#!%Gg{3K G'o t+ѳ11FKIa,gشX@2o6S;.ƶ$-3.a<ͷ"#2F9y-*+ |Laɹa+)-&,J,O#|<-X+ μRYv--½ )FUpY۾ `$(.CݿF!_h&3/#Sfe %2:.@>o " ^0  m(BWjzZ$,;L^x, )GH_! +Gc)G_!n*)/m#G?=_=%Cc-A&C>H7#9[?!@8<D J T(`%#8: GNVfls8IKN ]8g? $6 JV eTs;j"\aYL8 & . 8BI YfJu   2@BGP W$d WXihrE`ot3 3 1' ? JTh1|E@L5NILhZ|= ",B R\_g    $ + 5ARUXU_k\Yr)m/=WG3{` blU %3/c yL13:O Tbk    ( 7AF+My% # ,@Pbdi=yN  Us #   " 0< O ] h v   p0@1q6/  1FR   !"Dd f q{ 9 LY_hq S, K U%`     %" HS fp   & +7G4b-  &.=Q#k, !/IXp  !<Ylu /*"2 BL U_u|  x~{U6i&9- /];x1 lGDg&OO"w! Zh i P&)wxV-qGQ9 T ] b  q   f      7 F "H ik [ 1 D Z _ p           " B Z o U 1  V# z  *'%:!<\ ")L`}}1Y0tV7ZJ/4dMJ1hX u"$"+!M3+,z<<,y)6,24pg     %(  N  [ i  y           3 /!?!G! Y!g!l!~! !!!! !!! ! ! "'"B" V"c"t"" ""D""##!#1#;5#9q#H#-#"$9($*b$$$$ $$!$$%%.%7%QF%"&f&+"'N'k''' '''*'. (":(](m(o((((((((7)+F) r)A))) **#*+*A* E*f*&|*'*1*,**+@+Y+]+a+i+r+++u,~j.qmiB\w_3 0z>8U6O:2M ( .odtd!/`.  &R}Ek3QrZfSe;ZzY6iKp*1gwITc x=(WcDHU:L|~a!{"4C^ F R5ZHXORA:&.l+ 0G?'_#\PBys)=ktUlfz5#oCo'v37A"0L*qL[%e;F},;X&([q>tNsJCrW{ <?2;7Q $79 +  0 'np j@J-MEG/}m~)@Yh $Yv \Inu,D?s` Q@$<-u%VSD*-|k,>8r//6y_A]4 N~j9XV.")>+Bbg 6A:+w9GF <=bbJl5$4x{ d-?Pp|a1W<ie=!]'K&aB"guN,2yT8#I58^P*C3]1Shh(OTE[! %n%M^`1#f4vV@9c2mKHxD7j) Gain: + %d sec challenges you to a %(time)s %(rated)s %(gametype)s game chess has arrived has declined your offer for a match has departed has lagged for 30 seconds invalid engine move: %s is censoring you is lagging heavily but hasn't disconnected is present min noplay listing you uses a formula not fitting your match request: where %(player)s plays %(color)s. with whom you have an adjourned %(timecontrol)s %(gametype)s game is online. would like to resume your adjourned %(time)s %(gametype)s game.%(black)s won the game%(color)s got a double pawn %(place)s%(color)s got an isolated pawn in the %(x)s file%(color)s got isolated pawns in the %(x)s files%(color)s got new double pawns %(place)s%(color)s has a new passed pawn on %(cord)s%(color)s moves a %(piece)s to %(cord)s%(minutes)d min + %(gain)d sec/move%(name)s %(minutes)d min%(name)s %(minutes)d min %(gain)d sec/move%(name)s %(minutes)d min + %(gain)d sec/move%(opcolor)s has a new trapped bishop on %(cord)s%(player)s is %(status)s%(player)s plays %(color)s%(white)s won the game%d min%s can no longer castle%s can no longer castle in kingside%s can no longer castle in queenside%s moves pawns into stonewall formation%s returns an error%s was declined by your opponent%s was withdrawn by your opponent%s will identify what threats would exist if it were your opponent's turn to move%s will try to predict which move is best and which side has the advantage'%s' is a registered name. If it is yours, type the password.'%s' is not a registered name(Blitz)(Link is available on clipboard.)*0 Players Ready0 of 010 min + 6 sec/move, 1400↑, White10 min + 6 sec/move, White12002 min, Fischer Random, 1800↓, Black2 min, Fischer Random, Black5 min5 min, 1200-1800, ManualConnect to the Free Online Chess ServerPromote pawn to what?PyChess was unable to load your panel settingsAnalyzingAnimationChess VariantDate of gameEnter Game NotationGame dataHint mode analyzing your game, enable this type Ctrl+H.Initial PositionInstalled SidepanelsName of _first human player:Name of s_econd human player:NewsOpen GameOpening, endgameOpponent StrengthOptionsPlay Sound When...PlayersSpy mode analyzing the oponnent game, enable this type Ctrl+Y.Time ControlToolsYour Color_Start GameA file named '%s' already exists. Would you like to replace it?Engine, %s, has diedError loading gamePyChess is discovering your engines. Please wait.PyChess was not able to save the gameThere are %d games with unsaved moves. Save changes before closing?Unable to add %sUnable to save file '%s'Unknown file type '%s'Challenge:A player _checks:A player _moves:A player c_aptures:ASEANASEAN: http://www.ncf-phil.org/downloadables/2014/May/Asean_chess/Laws_of_ASEAN_Chess_2011_Nov_26.docAbortAbout ChessAc_tiveAcceptActivate alarm when _remaining sec is:Active color field must be one of w or b. %sActive seeks: %dAdd commentAdd evaluation symbolAdd move symbolAdd start commentAdd threatening variation lines Adding suggestions can help you find ideas, but slows down the computer's analysis.Address ErrorAdjournAdministratorAi-WokAi-Wok: http://www.open-aurec.com/wbforum/viewtopic.php?p=199364&sid=20963a1de2c164050de019e5ed6bf7c4#p199364All Chess FilesAll FilesAll whiteAnalysis by %sAnalyze from current positionAnalyze gameAnalyzer startedAnimate pieces, board rotation and more. Use this on fast machines.Annotated gameAnnotationAny strengthAsian variantsAsk to _MoveAsymmetric RandomAsymmetric Random AtomicAuto Call _FlagAuto _rotate board to current human playerAuto login on startupAuto-logoutAvailableBB EloBecause %(black)s lost connection to the serverBecause %(black)s lost connection to the server and %(white)s requested adjournmentBecause %(black)s ran out of time and %(white)s has insufficient material to mateBecause %(loser)s disconnectedBecause %(loser)s king explodedBecause %(loser)s ran out of timeBecause %(loser)s resignedBecause %(loser)s was checkmatedBecause %(mover)s stalematedBecause %(white)s lost connection to the serverBecause %(white)s lost connection to the server and %(black)s requested adjournmentBecause %(white)s ran out of time and %(black)s has insufficient material to mateBecause %(winner)s has fewer piecesBecause %(winner)s king reached the centerBecause %(winner)s lost all piecesBecause %(winner)s was giving check 3 timesBecause a player aborted the game. Either player can abort the game without the other's consent before the second move. No rating changes have occurred.Because a player disconnected and there are too few moves to warrant adjournment. No rating changes have occurred.Because a player lost connectionBecause a player lost connection and the other player requested adjournmentBecause both players agreed to a drawBecause both players agreed to abort the game. No rating changes have occurred.Because both players agreed to an adjournmentBecause both players have the same amount of piecesBecause both players ran out of timeBecause neither player has sufficient material to mateBecause of adjudication by an adminBecause of adjudication by an admin. No rating changes have occurred.Because of courtesy by a player. No rating changes have occurred.Because the %(black)s engine diedBecause the %(white)s engine diedBecause the connection to the server was lostBecause the game exceed the max lengthBecause the last 50 moves brought nothing newBecause the same position was repeated three times in a rowBecause the server was shut downBecause the server was shut down. No rating changes have occurred.BeepBishopBlackBlack O-OBlack O-O-OBlack has a new piece in outpost: %sBlack has a rather cramped positionBlack has a slightly cramped positionBlack should do pawn storm in leftBlack should do pawn storm in rightBlack:BlindfoldBlindfold AccountBlitzBlitz:Blitz: 5 minBringing your king legally to the center (e4, d4, e5, d5) instantly wins the game! Normal rules apply in other cases and checkmate also ends the game.BughouseCCACalculating...CambodianCambodian: http://www.khmerinstitute.org/culture/ok.htmlCastling availability field is not legal. %sCenter:ChallengeChallenge: Challenge: Change ToleranceChatChess AdvisorChess Alpha 2 DiagramChess GameChess PositionChess ShoutChess Variants are like the pieces of the last line will be placed on the board.Chess clientClaim DrawClassic chess rules http://en.wikipedia.org/wiki/ChessClassic chess rules with all pieces white http://en.wikipedia.org/wiki/Blindfold_chessClassic chess rules with hidden figurines http://en.wikipedia.org/wiki/Blindfold_chessClassic chess rules with hidden pawns http://en.wikipedia.org/wiki/Blindfold_chessClassic chess rules with hidden pieces http://en.wikipedia.org/wiki/Blindfold_chessClearClockClose _without SavingColorize analyzed movesCommand line parameters needed by the engine.Command:CommentsCompensationComputerConnectingConnecting to serverConnection ErrorConnection was closedContinue to wait for opponent, or try to adjourn the game?Conversation infoConversationsCopy FENCopy PGNCornerCould not save the fileCounterplayCrazyhouseCreate SeekDDateDate/TimeDeclineDefaultDestination Host UnreachableDetect type automaticallyDevelopment adv.DiedDo you know that it is possible to finish a chess game in just 2 turns?Do you know that the number of possible chess games exceeds the number of atoms in the Universe?Do you know that you can call flag when the clock is with you, Actions > Call Flag.Do you know that you can help translate Pychess in your language, Help > Translate Pychess.Do you want to abort it?Don't careDrawDummy AccountECOEdit SeekEdit Seek: Edit commentEmailEn passant cord is not legal. %sEn passant lineEndgame TableEngine scores are in units of pawns, from White's point of view. Double clicking on analysis lines you can insert them into Annotation panel as variations.EnginesEngines use uci or xboard communication protocol to talk to the GUI. If it can use both you can set here which one you like.Enter GameEnter Game _NotationError parsing move %(moveno)s %(mstr)sEuroShogiEuroShogi: http://en.wikipedia.org/wiki/EuroShogiEventEvent:Examine Adjourned GameExaminedExaminingExecutable filesExport positionFEN needs 6 data fields. %sFEN needs at least 2 data fields in fenstr. %sFICS atomic: http://www.freechess.org/Help/HelpFiles/atomic.htmlFICS bughouse: http://www.freechess.org/Help/HelpFiles/bughouse.htmlFICS crazyhouse: http://www.freechess.org/Help/HelpFiles/crazyhouse.htmlFICS losers: http://www.freechess.org/Help/HelpFiles/losers_chess.htmlFICS suicide: http://www.freechess.org/Help/HelpFiles/suicide_chess.htmlFICS wild/3: http://www.freechess.org/Help/HelpFiles/wild.html * Randomly chosen pieces (two queens or three rooks possible) * Exactly one king of each color * Pieces placed randomly behind the pawns * No castling * Black's arrangement mirrors white'sFICS wild/4: http://www.freechess.org/Help/HelpFiles/wild.html * Randomly chosen pieces (two queens or three rooks possible) * Exactly one king of each color * Pieces placed randomly behind the pawns, SUBJECT TO THE CONSTRAINT THAT THE BISHOPS ARE BALANCED * No castling * Black's arrangement DOES NOT mirrors white'sFICS wild/5: http://www.freechess.org/Help/HelpFiles/wild.html http://en.wikipedia.org/wiki/Chess_variant#Chess_with_different_starting_positions Pawns start on their 7th rank rather than their 2nd rank!FICS wild/8: http://www.freechess.org/Help/HelpFiles/wild.html Pawns start on 4th and 5th ranks rather than 2nd and 7thFICS wild/8a: http://www.freechess.org/Help/HelpFiles/wild.html White pawns start on 5th rank and black pawns on the 4th rankFIDE MasterFMF_ull board animationFace _to Face display modeFile existsFischer RandomForced moveFriendsGMGain:Game analyzing in progress...Game informationGame is _drawn:Game is _lost:Game is _set-up:Game is _won:Game shared at Games running: %dGaviota TB path:Generally this means nothing, as the game is time-based, but if you want to please your opponent, perhaps you should get going.Grand MasterGuestHa_ndle:Halfmove clockHidden pawnsHidden piecesHideHintsHost:How to PlayHuman BeingIMIdIdleIf set, PyChess will colorize suboptimal analyzed moves with red.If set, PyChess will show game results for different moves in positions containing 6 or less pieces. It will search positions from http://www.k4it.de/If set, PyChess will show game results for different moves in positions containing 6 or less pieces. You can download tablebase files from: http://www.olympuschess.com/egtb/gaviota/If set, PyChess will suggest best opening moves on hint panel.If set, PyChess will use figures to express moved pieces, rather than uppercase letters.If set, clicking on main application window closer first time it closes all games.If set, the black pieces will be head down, suitable for playing against friends on mobile devices.If set, the board will turn after each move, to show the natural view for the current player.If set, the captured figurines will be shown next to the board.If set, the elapsed time that a player used for the move is shown.If set, the hint analyzer engine evaluation value is shown.If set, the playing board will display labels and ranks for each chess field. These are usable in chess notation.If set, this hides the tab in the top of the playing window, when it is not needed.If the analyzer finds a move where the evaluation difference (the difference between the evaluation for the move it thinks is the best move and the evaluation for the move made in the game) exceeds this value, it will add an annotation for that move (consisting of the engine's Principal Variation for the move) to the Annotation panelIf you don't save, new changes to your games will be permanently lost.In TournamentIn this position, there is no legal move.Initial positionInitiativeInternational MasterInvalid move.It is not possible later to continue the game, if you don't save it.Jump to initial positionJump to latest positionKKingKing of the hillKnightKnight oddsKnightsLeave _FullscreenLightningLightning:Load _Recent GameLoaded gameLoading player dataLocal EventLocal SiteLog on ErrorLog on as G_uestLog on as _GuestLogging on to serverLosersLossMakrukMakruk: http://en.wikipedia.org/wiki/MakrukMamer ManagerManage enginesManualManual AcceptManually accept opponentMate in %dMaximum analysis time in seconds:Minutes:Minutes: More channelsMore playersMove HistoryMove numberNNameNames: #n1, #n2Needs 7 slashes in piece placement field. %sNever use animation. Use this on slow machines.New GameNo _animationNo chess engines (computer players) are participating in this game.No conversation's selectedNo soundNormalNormal: 40 min + 15 sec/moveNot AvailableObserveObserve %sObserved _ends:OddsOffer A_bortOffer AbortOffer Ad_journmentOffer PauseOffer RematchOffer ResumeOffer UndoOffer _AbortOffer _DrawOffer _PauseOffer _ResumeOffer _UndoOfficial PyChess panel.OfflineOn FICS, your "Wild" rating encompasses all of the following variants at all time controls: One player starts with one less knight pieceOne player starts with one less pawn pieceOne player starts with one less queen pieceOne player starts with one less rook pieceOnlineOnly animate _movesOnly animate piece moves.Only registered users may talk to this channelOpen GameOpen Sound FileOpen _DatabaseOpening BookOpening booksOpponent RatingOpponent's strength: OtherOther (non standard rules)Other (standard rules)PParameters:Paste FENPausePawnPawn oddsPawns PassedPawns PushedPingPlayPlay Fischer Random chessPlay Losers chessPlay RematchPlay _Internet ChessPlay normal chess rulesPlayer _RatingPlayers: %dPlayingPng imagePo_rts:Polyglot book file:Pre_viewPrefer figures in _notationPreferencesPressing Ctrl+Z to offer opponent the possible rollback moves.PrivateProbably because it has been withdrawn.PromotionProtocol:PyChess - Connect to Internet ChessPyChess - Internet Chess: FICSPyChess Game DatabasePyChess Information WindowPyChess databasePyChess has lost connection to the engine, probably because it has died. You can try to start a new game with the engine, or try to play against another one.PyChess.py:QQueenQueen oddsQuit PyChessRR_esignRandomRapidRapid: 15 min + 10 sec/moveRatedRated gameRatingReceiving list of playersRemove symbolsRequest ContinuationResendResend %s?ResultResumeRookRook oddsRoundRound:Running Simul MatchSRS_ign upSanctionsSaveSave GameSave Game _AsSave _own games onlySave analyzing engine _evaluation valuesSave elapsed move _timesSave files to:Save moves before closing?Save the current game before you close it?Saved gameScoreSearch:Seek _GraphSeek updatedSelect Gaviota TB pathSelect auto save pathSelect book fileSelect engineSelect sound file...Select the games you want to save:Select working directorySend ChallengeSend all seeksSend seekService RepresentativeSetting up environmentSetup PositionShare GameSho_w cordsShort on _time:ShoutShow ConsoleShow _ChatShow _captured piecesShow elapsed move timesShow evaluation valuesShow tips at startupShredderLinuxChess:ShuffleSide to moveSide_panelsSimple Chess PositionSiteSite:SittuyinSittuyin: http://en.wikipedia.org/wiki/SittuyinSorry '%s' is already logged inSound filesSp_y modeSpentStandardStandard:Start Private ChatStatusStep back one moveStep forward one moveSuicideTTDTMTeam AccountThe abort offerThe adjourn offerThe analyzer will run in the background and analyze the game. This is necessary for the hint mode to workThe chain button is disabled because you are logged in as a guest. Guests can't establish ratings, and the chain button's state has no effect when there is no rating to which to tie "Opponent Strength" toThe chat panel lets you communicate with your opponent during the game, assuming he or she is interestedThe clock hasn't been started yet.The comments panel will try to analyze and explain the moves playedThe connection was broken - got "end of file" messageThe directory where the engine will be started from.The displayed name of the first human player, e.g., John.The displayed name of the guest player, e.g., Mary.The draw offerThe endgame table will show exact analysis when there are few pieces on the board.The engine %s reports an error:The engine output panel shows the thinking output of chess engines (computer players) during a gameThe entered password was invalid. If you forgot your password, go to http://www.freechess.org/password to request a new one over email.The error was: %sThe file already exists in '%s'. If you replace it, its content will be overwritten.The flag callThe game #%s can't be loaded, because of an error parsing FENThe game can't be loaded, because of an error parsing FENThe game can't be read to end, because of an error parsing move %(moveno)s '%(notation)s'.The game ended in a drawThe game has been abortedThe game has been adjournedThe game has been killedThe game is pausedThe hint panel will provide computer advice during each stage of the gameThe inverse analyzer will analyze the game as if your opponent was to move. This is necessary for the spy mode to workThe move failed because %s.The moves sheet keeps track of the players' moves and lets you navigate through the game historyThe offer to switch sidesThe opening book will try to inspire you during the opening phase of the game by showing you common moves made by chess mastersThe pause offerThe reason is unknownThe resignationThe resume offerThe score panel tries to evaluate the positions and shows you a graph of the game progressThe takeback offerThebanThemesThere is %d game with unsaved moves.There are %d games with unsaved moves.There is something wrong with this executableThis game can be automatically aborted without rating loss because there has not yet been two moves madeThis game can not be adjourned because one or both players are guestsThis is a continuation of an adjourned matchThis option is not applicable because you're challenging a playerThis option is not available because you're challenging a guest, Threat analysis by %sThree-checkTimeTime control: Time pressureTip Of The dayTip of the DayTo play on Fullscreen mode, just type F11. Coming back, F11 again.To save a game Game > Save Game As, give the filename and choose where you want to be saved. At the bottom choose extension type of the file, and Save.Tolerance:Tournament DirectorTranslate PyChessTypeType or paste PGN game or FEN positions hereUUnable to accept %sUnable to save to configured file. Save the current game before you close it?Unable to save to configured file. Save the games before closing?Unclear positionUndescribed panelUndoUndo one moveUndo two movesUninstallUnknownUnofficial channel %dUnratedUnregisteredUntimedUpside DownUse _analyzerUse _inverted analyzerUse _local tablebasesUse _online tablebasesUse analyzer:Use name format:Use opening _bookVariant developed by Kai Laskos: http://talkchess.com/forum/viewtopic.php?t=40990Variation annotation creation threshold in centipawns:W EloWFMWGMWIMWaitWas unable to save '%(uri)s' as PyChess doesn't know the format '%(ending)s'.WelcomeWhen this button is in the "locked" state, the relationship between "Opponent's strength" and "Your strength" will be preserved when a) your rating for the type of game sought has changed b) you change the variant or the time controlWhiteWhite O-OWhite O-O-OWhite has a new piece in outpost: %sWhite has a rather cramped positionWhite has a slightly cramped positionWhite should do pawn storm in leftWhite should do pawn storm in rightWhite:WildWildcastleWildcastle shuffleWinWin by giving check 3 timesWith attackWoman FIDE MasterWoman Grand MasterWoman International MasterWorking directory:Year, month, day: #y, #m, #dYouYou are currently logged in as a guest. A guest can't play rated games and therefore isn't able to play as many of the types of matches offered as a registered user. To register an account, go to http://www.freechess.org/Register/index.html.You asked your opponent to moveYou can choose from 20 different difficulties to play against the computer.You can play chess listening to the sounds of the game, for that, Settings > Preferences > Sound tab, enable Use sounds in PyChess and choose your preferred sounds.You can start a new game by Game > New Game, in New Game window do you can choose Players, Time Control and Chess Variants.You can't play rated games because "Untimed" is checked, You can't play rated games because you are logged in as a guestYou can't select a variant because "Untimed" is checked, You can't switch colors during the game.You don't have the necessary rights to save the file. Please ensure that you have given the right path and try again.You have been logged out because you were idle more than 60 minutesYou have opened no conversations yetYou have tried to undo too many moves.You may only have 3 outstanding seeks at the same time. If you want to add a new seek you must clear your currently active seeks. Clear your seeks?You sent a draw offerYou sent a pause offerYou sent a resume offerYou sent an abort offerYou sent an adjournment offerYou sent an undo offerYour opponent asks you to hurry!Your opponent has asked that the game be aborted. If you accept this offer, the game will end with no rating change.Your opponent has asked that the game be adjourned. If you accept this offer, the game will be adjourned and you can resume it later (when your opponent is online and both players agree to resume).Your opponent has asked that the game be paused. If you accept this offer, the game clock will be paused until both players agree to resume the game.Your opponent has asked that the game be resumed. If you accept this offer, the game clock will continue from where it was paused.Your opponent has asked that the last %s move(s) be undone. If you accept this offer, the game will continue from the earlier position.Your opponent has offered you a draw.Your opponent has offered you a draw. If you accept this offer, the game will end with a score of 1/2 - 1/2.Your opponent is not out of time.Your opponent must agree to abort the game because there has been two or more moves madeYour opponent seems to have changed their mind.Your opponent wants to abort the game.Your opponent wants to adjourn the game.Your opponent wants to pause the game.Your opponent wants to resume the game.Your opponent wants to undo %s move(s).Your panel settings have been reset. If this problem repeats, you should report it to the developersYour seeks have been removedYour strength: Zugzwang_Accept_Actions_Analyze Game_Auto save finished games_Black player:_Call Flag_Clear Seeks_Copy FEN_Copy PGN_Decline_Edit_Engines_Export Position_Fullscreen_Game_Game List_General_Help_Hide tabs when only one game is open_Hint mode_Hints_Invalid move:_Load Game_Log Off_Log Viewer_Name:_New Game_Next_Observed moves:_Opponent:_Password:_Play Normal chess_Player List_Previous_Replace_Rotate Board_Save %d document_Save %d documents_Save %d documents_Save Game_Seeks / Challenges_Show Sidepanels_Sounds_Start Game_Untimed_Use main app closer [x] to close all games_Use sounds in PyChess_View_White player:_Your Color:andand guests can't play rated gamesand on FICS, untimed games can't be ratedand on FICS, untimed games have to be normal chess rulesask your opponent to moveblackbrings a %(piece)s closer to enemy king: %(cord)sbrings a pawn closer to the backrow: %scall your opponents flagcaptures materialcastlesdefends %sdevelops a %(piece)s: %(cord)sdevelops a pawn: %sdrawsexchanges materialgnuchess:half-openhttp://brainking.com/en/GameRules?tp=2 * Placement of the pieces on the 1st and 8th row are randomized * The king is in the right hand corner * Bishops must start on opposite color squares * Black's starting position is obtained by rotating white's position 180 degrees around the board's center * No castlinghttp://en.wikipedia.org/wiki/Chesshttp://en.wikipedia.org/wiki/Chess960 FICS wild/fr: http://www.freechess.org/Help/HelpFiles/wild.htmlhttp://en.wikipedia.org/wiki/Rules_of_chessimproves king safetyin the %(x)s%(y)s filein the %(x)s%(y)s filesincreases the pressure on %sinvalid promoted piecematesminmoves a rook to an open filemoves an rook to a half-open filemoves bishop into fianchetto: %snot playingofoffer a drawoffer a pauseoffer a takebackoffer an abortoffer to adjournoffer to resumeoffer to switch sidesonline in totalpins an enemy %(oppiece)s on the %(piece)s at %(cord)splaces a %(piece)s more active: %(cord)spromotes a Pawn to a %spromotion move without promoted piece is incorrectputs opponent in checkrating range nowrescues a %sresignround %ssacrifies materialsecslightly improves king safetytakes back materialthe captured cord (%s) is incorrectthe end cord (%s) is incorrectthe move needs a piece and a cordthreatens to win material by %sto automatic acceptto manual acceptucivs.whitewindow1wine not installedxboardxboard nocastle: http://home.hccnet.nl/h.g.muller/engine-intf.html#8 FICS wild/2: http://www.freechess.org/Help/HelpFiles/wild.html * Random arrangement of the pieces behind the pawns * No castling * Black's arrangement mirrors white'sxboard wildcastle http://home.hccnet.nl/h.g.muller/engine-intf.html#8 FICS wild/0: http://www.freechess.org/Help/HelpFiles/wild.html * White has the typical set-up at the start. * Black's pieces are the same, except that the King and Queen are reversed, * so they are not on the same files as White's King and Queen. * Castling is done similarly to normal chess: * o-o-o indicates long castling and o-o short castling.xboard wildcastle http://home.hccnet.nl/h.g.muller/engine-intf.html#8 FICS wild/1: http://www.freechess.org/Help/HelpFiles/wild.html * In this variant both sides have the same set of pieces as in normal chess. * The white king starts on d1 or e1 and the black king starts on d8 or e8, * and the rooks are in their usual positions. * Bishops are always on opposite colors. * Subject to these constraints the position of the pieces on their first ranks is random. * Castling is done similarly to normal chess: * o-o-o indicates long castling and o-o short castling.Project-Id-Version: pychess Report-Msgid-Bugs-To: POT-Creation-Date: 2016-01-27 13:28+0100 PO-Revision-Date: 2016-01-28 08:56+0000 Last-Translator: slav0nic Language-Team: Albanian (http://www.transifex.com/gbtami/pychess/language/sq/) MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Language: sq Plural-Forms: nplurals=2; plural=(n != 1); Rritje: + %d sek Ju sfidon në një %(time)s %(rated)s %(gametype)s lojëShahka arriturka refuzuar ofertën tuaj për një ndeshjeka nisështë vonuar për 30 sekonda lëvizje e gabuar motorri: %scensurimi juajështë vonuar shumë, por nuk është shkëputurështë i pranishëm mini listuar jashtëlojepërdor një formulë jo të përshtatshëm kërkesës tuaj për ndeshje: ku %(player)s luan %(color)s. me të cilët ju keni një shtyrje %(timecontrol)s %(gametype)s loja është në-linjë. do të doni për të rifilloni shtyrjen tuaj %(time)s %(gametype)s lojë.%(black)s fitoj lojën%(color)s mori një ushtar të dyfishtë %(place)s%(color)s mori ushtarë të izoluar në %(x)s dokument%(color)s mori ushtarë të izoluar në %(x)s dokumentet%(color)s mori ushtarë të ri të dyfishtë %(place)s%(color)s ka një ushtarë të ri të miratuar në %(cord)s%(color)s lëvizë një %(piece)s në %(cord)s%(minutes)d min + %(gain)d sek/leviz%(name)s %(minutes)d min%(name)s %(minutes)d min %(gain)d sek/levizje%(name)s %(minutes)d min + %(gain)d se/levizje%(opcolor)s ka një peshkop të ri të bllokuar në %(cord)s%(player)s është %(status)s%(player)s luan %(color)s%(white)s fitoi lojën%d min%s nuk mund të bëjë kalanë më%s nuk mund të bëjë kalanë në anën e mbretit%s nuk mund të bëjë kalanë në anën e mbretëreshës%s lëviz ushtarin në formimin Murrë-gurë %s kthen një gabim%s është refuzuar nga kundërshtari juaj%s është tërhequr nga kundërshtari juaj%s do të identifikohet se çfarë kërcënime do të ekzistonte nëse do të ishte radha e kundërshtarit tuaj në lëvizje%s do të përpiqen të parashikojnë cili veprim është më i mirë dhe cila anë ka avantazhin'%s' është një emër i regjistruar. Në qoftë se kjo është e juaja, shkruani fjalëkalimin.'%s' nuk është një emër i regjistruar(Blitz)(Lidhja është në dispozicion në tabelë.)*0 Lojtarë Gati0 e 010 min + 6 sek/leviz, 1400↑, Bardhë10 min + 6 sek/leviz, Bardhë12002 min, Fischer Rastësishëm, 1800↓, Zezë2 min, Fischer Rastësishëm, Zezë5 min5 min, 1200-1800, ManualeLidhu me Serverin e Shahut Nëlinjë FalasNxitja torrës në çfarë?PyShah nuk ishte në gjendje për të ngarkuar parametrat tuaj panelitAnalizimiAnimimVariante ShahiData e lojësShkruaj Shënimin LojësTë Dhëna LojeMënyra Shëmbull analizo lojën tënde, mundëso këtë llojCtrl+H.Pozicioni FillestarëPaneliKrahut InstaluarEmri i lojtarit të parë njerëzorë:Emri i lojtarit të dytë njerëzorë:LajmeLojë HapurHapje, fund-lojeForca KundërshtraritOpsioneLuaj Tingull Kur...Lojtarët Mënyra Spiun analizo lojën e kundërshtarit, mundëso këtë llojCtrl+Y.Kontroll KoheVeglaNgjyra Juaj_Fillo LojenNjë dokument me këtë emer '%s' ekziston. Dëshironi të zëvendësuar atë?Motorri, %s, ka vdekurGabim në ngarkimin e lojësPyShah po zbulon motorët tuaj. Ju lutem prisni.PyShah nuk ishte në gjendje për të ruajtur lojën Ka %d lojëra me lëvizje të pa-shpëtuara. Ruaj ndryshimet para mbylljes? I pamundur shtimi %sPamundur ruajtja e dokumenti '%s'Tip dokumentesh panjohur '%s'Sfidë:Një lojtarë jep _shah:Një lojtarl _levizë:Një lojtarë jep k_apë:ASEANASEAN: http://www.ncf-phil.org/downloadables/2014/May/Asean_chess/Laws_of_ASEAN_Chess_2011_Nov_26.docNdërpreRreth ShahutAk_tivePranoAktivizo alarmin kur _sekondat e mbetur janë:Ngjyra aktive e fushës duhet të jetë njëra e w ose b. %sKerkime Aktive: %dShto komentShto simbol vlerësimiShto simbol levizje Shto koment fillimiShto linja kërcënuese variacioniShtimi sugjerime mund të ju ndihmojë të gjeni ide, por ngadalëson analizën e kompjuterit.Gabim AdresePezullojAdministratorAi-WokAi-Wok: http://www.open-aurec.com/wbforum/viewtopic.php?p=199364&sid=20963a1de2c164050de019e5ed6bf7c4#p199364T'gjithë Dokumente ShahuT'gjithë DokumentetTë Gjithë bardhaAnalizë nga %sAnalizo nga pozicioni aktualAnalizo lojënAnalizuesi fillojZbukuro gurët, rotacionin bordit dhe më shumë. Përdoreni këtë në makinat e shpejta.Lojë e shënuarShënimNdonjë ForcëVariante aziatikKërko të _LevizAsimetri të RastësishmeAsimetrik të rastësishmeAtomicThirr _Flamurë AutoRrotullo fushën për lojtarin aktual njeriHyrje automatike në fillimDil AutomatikishtDispozicionBB EloSepse %(black)s humbi lidhjen me serverinSepse %(black)s humbi lidhjen me serverin dhe %(white)s kërkoj shtyrjeSepse %(black)s rend jashtë kohe dhe %(white)s ka materiale të pamjaftueshme për tu bashkuarSepse %(loser)s shkëputSepse %(loser)s mbreti shpërtheuSepse %(loser)s mbaroj kohaSepse %(loser)s dorëheqjesSepse %(loser)s ishte shahmat Sepse %(mover)s qorrsokakSepse %(white)s humbi lidhjen me serverinSepse %(white)s humbi lidhjen me serverin dhe %(black)s kërkoj shtyrjeSepse %(white)s rend jashtë kohe dhe %(black)s ka materiale të pamjaftueshme për tu bashkuarSepse %(winner)s ka më pak gurëSepse %(winner)s mbreti arriti në qendërSepse %(winner)s humbi të gjithë gurëtSepse %(winner)s i është dhënë shah 3 herëPër shkak se një lojtar e ndërpreu lojën. Ose lojtari mund të ndërpresin lojën pa pëlqimin e tjetrit para lëvizje e dytë. Nuk ka ndryshime vlerësim.Sepse një lojtar i shkëputur dhe ka shumë pak lëvizje që kërkojnë shtyrje. Nuk ka ndryshime pozicioni.Sepse lojtari humbi lidhjenPër shkak se lojtari humbi lidhjen dhe lojtari tjetër kërkoi shtyrjePër shkak se të dy lojtarët ranë dakord për një barazimPër shkak se të dy lojtarët ranë dakord të ndërpresin lojën. Nuk ka ndryshime vlerësim.Për shkak se të dy lojtarët ranë dakord për një shtyrjePër shkak se të dy lojtarët kanë të njëjtën sasi të gurëvePër shkak se të dy lojtarëve u mbraoj kohaSepse as lojtar nuk ka material të mjaftueshëm për tu bashkuarPër shkak të gjykimit nga një adminPër shkak të gjykimit nga një admin. Nuk ka ndryshime vlerësim.Për shkak të mirësjellje nga një lojtar. Nuk ka ndryshime vlerësim.Sepse motori %(black)s vdiqSepse motorri %(white)s vdiqSepse lidhja me serverin humbiPër shkak të lojës që kalojë gjatësinë maksimalePër shkak se 50 lëvizjet e fundit sollën asgjë të rePër shkak se i njëjti pozicion u përsërit tri herë radhaziPër shkak se serveri ishte fikurPër shkak se serveri ishte mbyllur. Nuk ka ndryshime vlerësim.BipOficeriZezëZezë O-OZezë O-O-OE Zeza ka një pjesë të re nga-pas: %sE zeza ka një pozicion mjaft ngërçE zeza ka një pozicion pak ngërçE zeza duhet të bëjë stuhi me ushtarë në të majtëE zeza duhet të bëjë stuhi me ushtarë në të djathtëZezë:QorraziLlogari QorraziBlitzBlitz:Blitz: 5 minSjellja e mbretit tuaj ligjërisht në qendër (e4, d4, e5, d5) menjëherë fiton lojën! Rregullat normale aplikohen në raste të tjera dhe shahmate gjithashtu përfundon lojën.Shtëpi-GabimeshCCALlogaritjen...KambodianKambodian: http://www.khmerinstitute.org/culture/ok.htmlVlefshmëria e fushës për rrëke nuk është e ligjshme. %sQender:SfidëSfidë:Sfidë: Ndrysho TolerancenBisedëKëshillues ShahuShah Alfa 2 DiagramLojë ShahuPozicion ShahuThirrje shahuVariantet e Shahut janë si gurët e vijës së fundit që do të vendosen në bord.Klientë shahuPretendim RemiRregullat Klasike Shahut http://en.wikipedia.org/wiki/ChessRregullat klasike të shahut me të gjitha gurët të bardhë http://en.wikipedia.org/wiki/Blindfold_chessRregullat klasike të shahut me gurët fshehur http://en.wikipedia.org/wiki/Blindfold_chessRregullat klasike të shahut me ushtarë të fshehur http://en.wikipedia.org/wiki/Blindfold_chessRregullat shahu klasike me gurë të fshehur http://en.wikipedia.org/wiki/Blindfold_chessPastroOraMbyll _pa RuajturNgjyros lëvizje të analizuaraParametrat e linjës Komandave të nevojshme nga motori.Komandë:KomenteKompensimKompjuterLidhjeLidhu me serverGabim LidhjeLidhja u mbyllVazhdoni të prisni për kundërshtarin, ose përpiquni të shtyni lojën?Informacion bisedeBisedaKopjo FENKopjo PGNQosheNuk mund të ruaj dokumentinKundërlojë Shtëpi-çmëndur Krijo kërkimDDataData/OraRefuzoParazgjedhurDestinacion i Pritësit PaarritshëmZbulo llojin automatikishtZhvillim adv.VdiqA e dini se është e mundur për të përfunduar një lojë shahu në vetëm 2 radhë?A e dini se numri i lojrave të mundshme shahut e tejkalon numrin e atomeve në univers?A e dini se ju mund të thirrni flamurin kur ora është me ju, Veprimet > Thirr Flamurin.A e dini se ju mund të ndihmojë të përktheni PyShah në gjuhën tuaj, Ndihmë > Përkthe Pyshah.Dëshironi ta ndërprisni?Nuk dua tja diRemiLlogari Bedele ECORedakto KërkoRedakto Kërko:Modifiko komentEmailMarrëveshja kalimtare nuk është e ligjshme. %sNjë linjë kalimiTabela Lojafundit Rezultatet Motori janë në njësitë e ushtarëve, nga pamja e parë të Bardhë. Kliko Dyfish në linjat e analizës që ju mund të fusni ato në panel anotacion si variacion.Motorët Motorët përdorin protokollin UCI ose xboard për komunikim bisedimi me GUI. Në qoftë se kjo mund të përdorë dy ju mund të vendosni këtu cilën një që ju pëlqen.Hyr LojëShkruaj Shë_nimet LojësGabim në analizën e lëvizjes %(moveno)s %(mstr)sEuroShogiEuroShogi: http://en.wikipedia.org/wiki/EuroShogiNgjarjeNgjarje:Shqyrto Shtyrjen LojësEkzaminuarEkzaminimSkedarë ekzekutuesEksporto PozicioninFEN ka nevojë për 6 fushat e të dhënave. %sFEN ka nevojë për të paktën 2 fusha të dhënash në fenstr. %sFICS atomic: http://www.freechess.org/Help/HelpFiles/atomic.htmlFICS shtëpi-gabimesh: http://www.freechess.org/Help/HelpFiles/bughouse.htmlFICS shtëpi-çmendur: http://www.freechess.org/Help/HelpFiles/crazyhouse.htmlFICS humbësit: http://www.freechess.org/Help/HelpFiles/losers_chess.htmlFICS vetëvrasje: http://www.freechess.org/Help/HelpFiles/suicide_chess.htmlFICS egër/3: http://www.freechess.org/Help/HelpFiles/wild.html * Gurë të zgjedhura rastësisht (dy mbretëreshat ose tre torrë mundshme) * Pikërisht një mbret i çdo ngjyrë * Gurë të vendosura rastësisht pas ushtarëve * Jo Rrëke * Rregullim zezë pasqyron bardhëFICS egër/4: http://www.freechess.org/Help/HelpFiles/wild.html * Gurë të zgjedhura rastësisht (dy mbretëreshat ose tre torrë mundshme) * Pikërisht një mbret i çdo ngjyrë * Gurë të vendosura rastësisht pas ushtarëve, NËNSHTROHEN KUFIZIMI QE PESHKOPËT JANË TË BALANCUARA * Nuk ka rrekat * Rregullim zezë NUK BËN pasqyrë bardhëFICS egër/5: http://www.freechess.org/Help/HelpFiles/wild.html http://en.wikipedia.org/wiki/Chess_variant#Chess_with_different_starting_positions Ushtarët fillojnë radhitjen në 7të në vend se në radhitjen e 2të!FICS egër/8: http://www.freechess.org/Help/HelpFiles/wild.html Ushtarët fillojnë në radhën 4rt dhe 5st në-vend se në 2të dhe 7tëFICS egër/8a: http://www.freechess.org/Help/HelpFiles/wild.html Ushtarë Bardhë fillojë në radhën 5st dhe ushtarë zezë në radhën e 4rtMjeshtri FIDEFMFushë e plotë animuarBallë_Përballë mënyrë shfaqjeDokumenti ekzistonFischer RastësishëmMasa e detyruarShoqëriaGMRritje:Analiza e lojës në progres...Informacioni lojësLoja _remi:Loja _humbëse:Loja është ndërt_uar:Loja u _fitua:Loja e shpërndarë nëLoja funksionale: %dGaviota TB rrugë:Në përgjithësi kjo do të thotë asgjë, pasi loja është e bazuar në kohë, por në qoftë se ju doni të kënaqni kundërshtarin tuaj, ndoshta ju duhet të merrni do.Mjeshtri MadhVizitorNofkë:Gjysëmlevizje orë Ushtarë fshehurFsheh gurëtFshehShenjaPritësi:Si të LuajQenie NjerëzoreIMIdPushimNëse vendosur, PyChess do të ngjyrose analizat optimale të lëvizjeve me të kuqe.Nëse vendosur, PyShah do të tregojnë rezultate lojë për lëvizje të ndryshme në pozita që përmbajnë 6 ose më pak gurë. Do të kërkojë pozicione nga http://www.k4it.de/Nëse vendosur, PyShah do të tregojnë rezultate lojë për lëvizje të ndryshme në pozita që përmbajnë 6 ose më pak gurë. Ju mund të shkarkoni dokumentet tabelë baza të dhënash nga: http://www.olympuschess.com/egtb/gaviota/Nëse vendosur, PyShah do të sygjerojë levizjet hapëse më të mira në panelin shenjave.Nëse vendosur, PyShah do të përdorin shifra të shprehur gurët e lëvizur, në vend të shkronjave të mëdha.Nëse është vendosur, duke klikuar në dritaren kryesore mbyllëse të programit për herë të parë mbyll të gjitha lojrat.Nëse vendosur, gurët e zi do të jenë kokë poshtë, të përshtatshme për të luajtur kundër miqve në pajisje të lëvizshme.Nëse vendosur, bordi do të kthehet pas çdo lëvizje, për të treguar pamje natyrore për lojtarin aktual.Nëse vendosur, gurët e kapur do të shfaqen pranë fushës.Nëse caktuar, koha e kaluar se një lojtari e përdorur për lëvizje është treguar.Nëse caktuar, vlera vlerësimit analizues së motorit është treguar.Nëse vendosur, bordi i lojës do të tregojë etiketat dhe rradhët për çdo fushë të shahut. Këto janë të përdorshme në simbol shahu.Nëse vendosur, kjo fsheh kutinë në krye të dritares së lojës, kur nuk është e nevojshme.Nëse analizuesi gjen një lëvizje ku vlerësimi dallon (dallimi në mes të vlerësimit për lëvizje mendon është veprim më i mirë dhe vlerësimi për lëvizje të bëra në lojë) tejkalon këtë vlerë, ajo do të shtojë një shënim për këtë lëvizje (të përbërë në variacionin kryesor të motorrit për lëvizje) në panelin shënimitNëse nuk ruani, ndryshimet e reja në lojërat tuaja do të humbasin përgjithmonë.Në TurneNë këtë pozicion, nuk ka asnjë levizje ligjore.Pozicioni FillestarëiniciativëMjeshtri InternacionalLëvizje gabuar.Nuk është e mundur të vazhdojë lojën më vonë, nëse nuk e ruani atë.Shko ne pozicionin fillestarShko tek pozicioni funditKMbertiMbreti i lartësisëKalishanset kalitKalorësLëre _Ekran-plotëNdriçimNdriçimi:Ngarko Lojën e FunditLoja ngarkuarNgarko informacionet e lojtaritNgjarje VendorëFaqja VendoreShenim mbi GabiminHyr si VizitorHyr si_MysafirHyr në serverHumbësitHumbMakrukMakruk: http://en.wikipedia.org/wiki/MakrukMamer Menaxhuan Menaxho motorëtManualePrano ManualishtPranoni kundërshtar joautomatikisht Shah në %dKoha maksimale analize në sekonda:Minuta:Minuta:Më shumë kanaleMë shumë lojtarëLëviz Histori Numërim lëvizjeNEmriEmra: #n1, #n2Nevojiten 7 lëvizje në pjesët e vendosura në fushë. %sAsnjëherë mos përdorni animacion. Përdoreni këtë në makinat e ngadalta.Lojë e ReJo _animuarJo motorët shah (lojtarët e kompjuterit) janë duke marrë pjesë në këtë lojë.Nuk ka biseda të zgjedhuraSka volumNormaleNormale: 40 min + 15 sek/lëvizjeJo disponushëmVëzhgoVëzhgo %sVëzhgimi _mbaroj:ShansetOfro NdërpreOfro NdërprerjeOfro PezullimOfro PushimOfro NdeshjekthimiOfro RifillimOfro KtheOfro NdërpreOfro BarazimOfro _PushimOfro _RifillimOfro _KthePaneli Zyrtarë PyShah.JashtëlinjeNë FICS, tuaj "Joker" Vlerësimi përfshin të gjitha variantet e mëposhtme në të gjitha kontrollet kohore: Një lojtar fillon me një gurë kalorë më pakNjë lojtar fillon me një gurë ushtarë më pakNjë lojtar fillon me një gurë mbretëreshë më pakNjë lojtar fillon me një gurë torrë më pakNëlinjëVetëm lëvizje të animuaraVetëm gurë të animuar levizinVetëm përdoruesit e regjistruar mund të bisedojnë në këtë kanalHap LojënHap Dokument ZëriHap _Bazë të DhënashHapja LibritHapja LibraveVlersimi KundërshtaritForca kundërshtarit:Të'tjeraTë tjera (jo rregulla standarde)Të tjera (rregullat standarde)PParametra:Ngjit FENPushimUshtariShanset ushtaritUshtari KaloiUshtari U shtyPingLuajLuaj Fischer shah RastësishëmLuaj Shah T'dobëtLuaj NdeshjekthimiLuaj Shah _InternetiLuaj rregulla normale shahiVlerësim LojtaritLojtarë: %dLojëFoto PngPo_rtë:Polyglot dokument libri:ParashikimGurët e preferuar në _shënimePreferencatShtypja Ctrl+Z për ti ofruar kundërshtarit lëvizjet e mundshme rikthyese.PrivateNdoshta për shkak se ajo është tërhequr.PromocionProtokoll:PyShah - Lidhu me Shahun në InternetPyShah - Shah Në Internet: FICSPyShah Lojë Basë të DhënashDritarja Informative PyShahPyShah Bazë të DhënashPyShah ka humbur lidhjen me motorrin, ndoshta për shkak se ka vdekur. Ju mund të përpiqeni për të filluar një lojë të re me motor, ose të përpiqeni për të luajtur kundër një tjetri.PyChess.py:QMbretereshaShanset mbretëreshëDil PyShahRDorëh_eqjeRastësishëmShpejtëShpejtë: 15 min + 10 sek/lëvizjeVlerësuarLojë e vlerësuarVlerësimMarrja e listës së lojtarëveHiq simboleVazhdim KërkesëRidërgoniRidergoni %s?RezultatRifilloTorraShanset torrësLojaLoja:Drejtimin Ndeshje Njëko SRHyrSanksionetRuajRuaj LojënRuaj Lojën _SiRuani vetën lojën _tuaj Ruaj analizën e vlerave e _vlerësimit së motorit Ruaj lëvizjen_kohës kaluarRuaj skedarë në:Ruaj lëvizjet para mbylljes?Ruaj lojën aktuale para se të mbyllni atë?Loja ruajturPikëKërko:Kërko _GrafikKërko azhornuarit Zgjedh rrugën Gaviota TBZgjedh rrugën automatike ruajtësePërzgjedh dokument libriPërzgjedh motorinZgjedh dokument zëri...Zgjidhni lojrat që ju dëshironi të ruani:Përzgjedh skedarë funksionalDërgo SfidëDërgo t'gjitha kërkimetDërgo kërkimPërfaqësues ShërbimiNdërto mjedisinPozicioni NdërtuesitShpërndaj lojënShfaq litarëtMbaroj _koha:ThirrjeTrego TastierëShfaq _BisedëShfaq gurët kapurShfaq kohën e lëvizjeve kaluarTrego vlerat e vlerësimitShfaq këshillën në fillimShredderLinuxShah:PërziejAnë për të lëvizurPaneli_krahutPozicion i Thjesht ShahuFaqeFaqe:SittuyinSittuyin: http://en.wikipedia.org/wiki/SittuyinMë vjen keq '%s' është i kyçur tashmëDokumente zëriMënyrë SpiuneShpenzuarStandartStandart:Fillo bisedë privateStatusShko prapa një levizjeShko para një lëvizjeVetëvrasjeTTDTMLlogari EkipiOfertë ndërprerjeOferta pezulloAnalizuesi do të punojë në sfond dh do të analizojë lojën. Kjo është e nevojshme për mënyrën ndihmë për të punuarButoni zinxhir është me aftësi të kufizuara për shkak se ju jeni regjistruar si vizitor. Vizitorët nuk mund të krijojë vlerësime, dhe gjëndja butonin zinxhir nuk ka efekt kur nuk ka vlerësim për të cilat të lidhin "Forca kundërshtari" për tëPaneli bisedës ju lejon të komunikoni me kundërshtarin tuaj gjatë lojës, duke supozuar se ai ose ajo është i interesuarOra nuk ka filluar ende.Paneli komenteve do të përpiqet për të analizuar dhe shpjeguar lëvizjet luajturaLidhje ishte thyer - mora "fundin e dokumentit" mesazhSkedari ku motori do të fillojë nga.Emri shfaqur i lojtarit të parë njerëzor, p.sh., John.Emri shfaqur i lojtarit vizitor, p.sh., Mary.Oferta RemiTabela Fundi i lojës do të tregojë analizën e saktë kur ka shumë pak pjesë në fushë.Motori %s raporton një gabim:Paneli Prodhimi Motori tregon prodhimin e menduarit të motorëve të shahut (lojtarët e kompjuterit) gjatë një lojëFjalëkalimi i futur nuk është i vlefshëm. Nëse keni harruar fjalëkalimin, shko në http://www.freechess.org/password për të kërkuar një të ri ndërmjet email.Gabimi ishte: %sDokumenti tashmë ekziston në '%s'. Nëse ju zëvendësoni atë, përmbajtja e tij do të jetë mbishkruar.Thirrje FlamuriLoja #%s nuk mund të ngarkohet, për shkak të një gabim analizë FENLoja nuk mund të ngarkohet, për shkak të një gabim analizues FENLoja nuk mund të lexohet në fund, për shkak të një masë gabimi analize %(moveno)s '%(notation)s'.Loja përfundoi me remiLoja është ndërprerëLoja është shtyrëLoja është vrarëLoja është e ndaluarPaneli shenjë do të ofrojë këshilla kompjuteri gjatë çdo fazë të lojësAnalizuesi kthyer do të analizojnë lojën si në qoftë se kundërshtari juaj është për të lëvizur. Kjo është e nevojshme për mënyrën spiun për të punuarLevizja dështoi për shkak se %s.Fletë lëvizje mban gjurmët e lëvizjes së lojtarëve dhe ju lejon të për të lundruar nëpër historinë e lojësOferta për të ndryshuar anëtLibri hapjes do të përpiqet për të frymëzuar ju gjatë fazës së hapjes së lojës duke ju treguar lëvizje të zakonshme të bëra nga mjeshtrit e shahutOferta pushimArsyeja është e panjohurDorëheqjaOferta rinisëPaneli Rezultatit përpiqet për të vlerësuar qëndrimet dhe ju tregon një grafik të progresit lojësOferta merrmbrapaThebanTemëKa %d lojë me lëvizje të paruajtur.Ka %d lojëra me lëvizje të paruajtura.Ka diçka të gabuar me këtë ekzekutuesKjo lojë mund të jetë e ndërprerë automatikisht pa humbje vlerësimi, sepse nuk ka pasur ende dy lëvizje të bëraKjo lojë nuk mund të shtyhet për shkak se një ose të dy lojtarët janë vizitorëKy është një vazhdim i një ndeshje shtyerKy opsion nuk zbatohet për shkak se ju jeni duke sfiduar një lojtarëKy opsion nuk është i mundshem për shkak se ju jeni duke sfiduar një lojtarëAnaliza kërcënimi nga %sTre-shahOrëkontroll Kohe:Presioni KohaKëshillë e DitësKëshillë e DitësPër të luajtur në Ekran të plotë, vetëm shkruaj F11. Po vij mbrapa, F11 përsëri.Për të ruajtur një lojënLojë > Ruaj Lojën Si, jepni emrin e dokumentit dhe zgjidhni ku doni të jetë i ruajtur. Në fund të zgjedhni llojin e shtesës së dokumentit, dheRuaj.Tolerance:Drejtori Turnesë Përkthe PyShahTipiShkruaj ose ngjit këtu pozicionet e lojës PGN ose FenUNë pamundësi për të pranuar %sNë pamundësi për të ruajtur në skedarin e konfiguruar. Ruaj lojën aktuale para se të mbyllni atë?Në pamundësi për të ruajtur në skedarin e konfiguruar. Ruaj lojën para se ta mbyllni?Pozicioni PaqartëPaneli papërshkrimitKtheKthe një veprimKthe dy veprimeÇ'instaloPanjohurKanal jozyrtar %dPavlersuarJoregjistruar PambaturkokëposhtëPërdor _analizuesinPërdor analizuesin kthyerPërdor fushëbazë lokale Përdor fushëbazë në linjë Përdorimi Analizuesit:Formati përdoruesi:Përdor hapja_libritVarianti i zhvilluar nga Kai Laskos: http://talkchess.com/forum/viewtopic.php?t=40990Variacion shënim krijimi pragu në inçushtarë:W EloWFMWGMWIMPritNë pamundësi për të ruajtur '%(uri)s' sepse PyShah nuk e di formatin '%(ending)s'.MirëseviniKur ky buton është në gjëndje "mbyllur", marrëdhënia midis "forcë të kundërshtarit" dhe "forcës tënde" do të jetë ruajtur kur a) Vlerësimi juaj për llojin e lojës që kërkohet ka ndryshuar b) ju ndryshoni variantin ose kontrollin e kohësBardhëBardhë O-OBardhë O-O-OE Bardha ka një pjesë të re nga-pas: %sE bardha ka një pozicion mjaft ngërçE bardha ka një pozicion pak ngërçE bardha duhet të bëjë stuhi me ushtarë në të majtëE bardha duhet të bëjë stuhi me ushtarë në të djathtëBardhë:EgërKala-terbuar Kala-terbuar përzierjeFitoFito duke dhënë 3 herë shahMe sulmMjeshtre Femër FIDEMjeshtria Madhe FemëroreMjeshtria Internacionale FemëroreSkedarë funksionalViti, muaj, dita: #v, #m, #dJuJu jeni i kyçur aktualisht si mysafir. Një mysafir nuk mund të luajë lojëra të vlerësuara dhe për këtë arsye nuk është në gjendje për të luajtur lojëra e llojeve të ndeshjeve të ofruara si përdorues i regjistruar. Për të regjistruar një llogari, shko në http://www.freechess.org/Register/index.html.Ju kërkuat kundërshtarin tuaj për të lëvizurJu mund të zgjidhni nga 20 vështirësi të ndryshme për të luajtur kundër kompjuter.Ju mund të luani shah duke dëgjuar zërin e lojës, për të cilat, Parametrat > Preferencat > Tabelë zëri, mundësuar përdorimin përdor zërin në PyShah dhe zgjidhni tingujt e tuaj të preferuar.Ju mund të filloni një lojë të re dukeLojë > Lojë e Re , në një dritare të re loje ku mund të zgjidhniLojtarin, Kohë KontrollidheVariantet shahut .Ju nuk mund të luani lojëra të vlerësuarat sepse "pambatur" është e kontrolluar,Ju nuk mund të luani lojëra të vlerësuara për shkak se ju jeni regjistruar si vizitorJu nuk mund të zgjidhni një variant sepse "pambatur" është i zgjedhur,Ju nuk mund të ndryshoni ngjyra gjatë lojës.Ju nuk keni të drejtat e nevojshme për të ruajtur dokumentin. Ju lutemi sigurohuni që ju kanë dhënë rrugën e drejtë dhe të provoni përsëri.Ju keni dalë jashtë për shkak se keni qenë pushim më shumë se 60 minutaJu nuk keni hapur biseda endeJu keni provuar për të ndrequr shumë lëvizje.Ju mund të keni vetëm 3 teprica kërkuese në të njëjtën kohë. Nëse doni të shtoni një kërkesë të re ju duhet të pastroni kërkesen tuaj aktuale aktive. Pastro kërkesën tuaj?Ju dërguat një ofertë remJu dërguat një ofertë pushimiJu dërguat një ofertë rinisëseJu dërguat një ofertë ndërprerjeJu dërguat një ofertë pezullimiJu dërguat një ofertë kthimiKundërshtari juaj ju pyet që të ngutemi!Kundërshtari juaj ka kërkuar që loja të ndërpritet. Në qoftë se ju pranoni këtë ofertë, loja do të përfundojë me asnjë vlerësim ndryshimi.Kundërshtari juaj ka kërkuar që loja të shtyhet. Në qoftë se ju pranoni këtë ofertë, loja do të shtyhet dhe ju mund të rifillojë më vonë (kur kundërshtari juaj është në linjë dhe të dy lojtarët bien dakord të rinisin).Kundërshtari juaj ka kërkuar që loja të ndalohet. Në qoftë se ju pranoni këtë ofertë, ora e lojes do të jenë ndaluar derisa të dy lojtarët të bien dakord për të rifilluar lojën.Kundërshtari juaj ka kërkuar që loja të rifillojë. Në qoftë se ju pranoni këtë ofertë, ora e lojes do të vazhdojë nga ku ajo ishte ndaluar.Kundërshtari juaj ka kërkuar që lëvizjet e %s kaluara(s) të kthehen. Në qoftë se ju pranoni këtë ofertë, loja do të vazhdojë nga pozicioni mëparshëm.Kundërshtari juaj ju ofroi një parëzim. Kundërshtari juaj ju ka ofruar një barazim. Në qoftë se ju pranoni këtë ofertë, loja do të përfundojë me një rezultat prej 1/2 - 1/2.Kundërshtari juaj nuk është jashtë kohe.Kundërshtari juaj duhet të bie dakord për të ndërprerë lojën sepse si ka pasur dy ose më shumë lëvizje të bëraKundërshtari juaj duket të ketë ndryshuar mendjen e tyre.Kundërshtari juaj do të ndërpresi lojën.Kundërshtari juaj do të shtyjë lojën.Kundërshtari juaj do të bëj një pauzë të lojës.Kundërshtari juaj do të rifillojë lojën.Kundërshtari juaj do të ribëjë %s lëvizje(s).Parametrat tuaja panelit janë rivendosur. Nëse ky problem përsëritet, ju duhet të raportoni tek zhvilluesitKërkimet tuaja janë hequrForca juaj:Zugzwang_Prano_Veprim_Analizo Lojën_Ruaj automatikisht lojrat e mbaruara_Lojtari Zi:_Thirr Flamur_Pastro kërkim_Kopjo FEN_Kopjo PGN_Refuzo_Modifiko_Motorë_Eksporto Pozicionin_Ekranplotë_Lojë_Lista Lojrave_Përgjithshëm_Ndihmë_Fsheh kutine kur vetëm një lojë është e hapurMënyrë shenje_Shenja_Lëvizje gabuar:_Ngarko Lojen_Dil_Vëzhgo Shenime _Emri:_Lojë e Re_tjetriLëvizje vërejtura:_Kundërshtari:_Fjalëkalim:_Luaj shah normal_Lista Lojtarëve_Mëparshme_Zëvendëso_Rotullo Fushën_Ruaj %d dokumentin_Ruaj %d dokumentet_Ruaj %d dokumentet_Ruaj Lojën_Kërko / Sfidat_Shfaq Panelanësor_Tinguj_Fillo Lojen_Pamatur_Përdor app kryesorë afër [x] për të mbyllur të gjithë lojrat_Përdor tinguj në PyShah_Vëzhgo_Lojtari Bardhë:_Ngjyrat Tuaja:dhedhe vizitorët nuk mund të luajnë lojëra të vlerësuaradhe në FICS, lojrat e pambatura nuk mund të vlerësohendhe në FICS, lojra të pambatura duhen të ketë rregulla normale shahukërkoi kundërshtarit tuaj për të lëvizurzezësjellë një %(piece)s më pranë mbretit armik: %(cord)ssjell një ushtarë pranë kuti-mbrapa: %sthirr flamujt e kundërshtarët tuajkap materialinkështjellambron %szhvillon një %(piece)s: %(cord)szhvillon një ushtarë: %sremishkëmbimet materialignushah:gjysmë-hapur http://brainking.com/en/GameRules?tp=2 * Vendosja e gurëve në rreshtin e 1rë dhe 8të janë rastësishme * Mbreti është në këndin e djathtë * Peshkopët duhet të fillojë në kuti ngjyre të kundërta * Pozicioni fillestare zezë është marrë nga rutollim pozicionin e Bardhë 180 gradë rreth qendrës të fushës * Jo Rrëkehttp://en.wikipedia.org/wiki/Chesshttp://en.wikipedia.org/wiki/Chess960 FICS egër/fr: http://www.freechess.org/Help/HelpFiles/wild.htmlhttp://en.wikipedia.org/wiki/Rules_of_chesspërmirëson sigurinë mbretnë %(x)s%(y)s dokumentnë %(x)s%(y)s dokumente rrit presionin mbi %sGurë i promovuar paligjmërishtshahmatminlëviz një torrë në një kuti të hapurlëviz një torrë në një kuti gjysmë-hapurlëviz oficerin në fianchetto: %sdukemos luajtureOfro një BarazimOfro një pushimOfro një merrmbrapaOfro një ndërprerjeOfro një pezullimOfro një rifillimOfro një ndryshim anështotal në linjëkapë një armik %(oppiece)s në %(piece)s në %(cord)svendosë një %(piece)s më aktiv: %(cord)spromovon një ushtar në një %spromovimin veprim pa pjesë të promovuar guri është e pasaktëvë kundërshtarin në shahVlerësimi shtrirjes tanishpëton si %stërhiquloja %ssakrifikon materialinsekpak përmirëson sigurinë mbretmerr prapa materialinlidhja e kapur (%s) është e pasaktëlidhja e fundit (%s) është e pasaktëveprim ka nevojë për një gurë dhe një lidhjekërcënon për të fituar materialin nga %stek pranimi automatiktek pranimi joautomatik ucivs.bardhëDritare1wine jo i instaluarxfushaxfushë jorrëke: http://home.hccnet.nl/h.g.muller/engine-intf.html#8 FICS egër/2: http://www.freechess.org/Help/HelpFiles/wild.html * Rregullim rastësishëm e gurëve pas ushtarëve * Jo Rrëke * Rregullim zezë pasqyron bardhëxfushë kështjellegër http://home.hccnet.nl/h.g.muller/engine-intf.html#8 FICS egër/0: http://www.freechess.org/Help/HelpFiles/wild.html * Të bardhat kanë ndërtimin tipik në fillim. * Gurët e zi janë të njëjtë, përjashtuar që Mbreti dhe Mbretëresha janë kundërt, * Kështu që ata nuk janë në të njëjtat dokument si Mbreti Bardhë dhe Mbretëresha. * Rrëke është bërë në mënyrë të ngjashme me shahun normal: * o-o-o tregon rrëke të gjatë dhe o-o rrëke të shkurtër.xfushë rrëke-egër http://home.hccnet.nl/h.g.muller/engine-intf.html#8 FICS egër/1: http://www.freechess.org/Help/HelpFiles/wild.html * Në këtë variant të dy palët kanë të njëjtat gurë si në shah normale. * Mbreti i bardhë fillon në D1 ose E1 dhe mbreti i zi fillon në D8 ose E8, * dhe torrët janë në pozicionet e tyre të zakonshme. * Peshkopët janë gjithmonë në ngjyra të kundërta. * Në varësi të këtyre kufizimeve pozita nga pjesët në radhët e tyre të para është e rastit. * Rrëkea është bërë në mënyrë të ngjashme me shahun normal: * o-o-o tregon rrëke të gjatë dhe o-o rrëke shkurtër.pychess-0.12.2/lang/oc/0000755000175000017470000000000012653231274015077 5ustar tamasusers00000000000000pychess-0.12.2/lang/oc/LC_MESSAGES/0000755000175000017470000000000012653231274016664 5ustar tamasusers00000000000000pychess-0.12.2/lang/oc/LC_MESSAGES/pychess.po0000644000175000017470000025132412653216213020705 0ustar tamasusers00000000000000# SOME DESCRIPTIVE TITLE. # Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER # This file is distributed under the same license as the pychess package. # # Translators: # FIRST AUTHOR , 2008 msgid "" msgstr "" "Project-Id-Version: pychess\n" "Report-Msgid-Bugs-To: \n" "POT-Creation-Date: 2016-01-27 13:28+0100\n" "PO-Revision-Date: 2016-01-28 08:56+0000\n" "Last-Translator: slav0nic \n" "Language-Team: Occitan (post 1500) (http://www.transifex.com/gbtami/pychess/language/oc/)\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" "Language: oc\n" "Plural-Forms: nplurals=2; plural=(n > 1);\n" # "Plural-Forms: nplurals=INTEGER; plural=EXPRESSION;\n" #: glade/analyze_game.glade:22 msgid "Analyze game" msgstr "" #: glade/analyze_game.glade:87 msgid "Use analyzer:" msgstr "" #: glade/analyze_game.glade:122 glade/PyChess.glade:2054 msgid "Maximum analysis time in seconds:" msgstr "" #: glade/analyze_game.glade:163 msgid "" "If the analyzer finds a move where the evaluation difference (the difference" " between the evaluation for the move it thinks is the best move and the " "evaluation for the move made in the game) exceeds this value, it will add an" " annotation for that move (consisting of the engine's Principal Variation " "for the move) to the Annotation panel" msgstr "" #: glade/analyze_game.glade:164 msgid "Variation annotation creation threshold in centipawns:" msgstr "" #: glade/analyze_game.glade:198 msgid "Analyze from current position" msgstr "" #: glade/analyze_game.glade:214 msgid "Add threatening variation lines " msgstr "" #: glade/analyze_game.glade:229 glade/PyChess.glade:1459 msgid "Colorize analyzed moves" msgstr "" #: glade/analyze_game.glade:244 glade/PyChess.glade:1495 msgid "Show evaluation values" msgstr "" #: glade/discovererDialog.glade:18 msgid "PyChess is discovering your engines. Please wait." msgstr "PyChess recèrca los motors de jòc disponibles. Pacientatz.Connect to the Free Online Chess Server" msgstr "Connexion al servidor liure en linha Chess" #: glade/fics_logon.glade:129 glade/taskers.glade:394 msgid "_Password:" msgstr "Sen_hal :" #: glade/fics_logon.glade:143 msgid "_Name:" msgstr "_Nom :" #: glade/fics_logon.glade:191 msgid "Log on as _Guest" msgstr "Se connectar coma convidat" #: glade/fics_logon.glade:227 msgid "Host:" msgstr "" #: glade/fics_logon.glade:259 msgid "Po_rts:" msgstr "Pòrts :" #: glade/fics_logon.glade:271 msgid "Auto login on startup" msgstr "" #: glade/fics_logon.glade:385 msgid "S_ign up" msgstr "inscripcion" #: glade/fics_lounge.glade:35 msgid "Challenge: " msgstr "Desfiar : " #: glade/fics_lounge.glade:97 msgid "Send Challenge" msgstr "" #: glade/fics_lounge.glade:133 msgid "Challenge:" msgstr "Desfiar :" #: glade/fics_lounge.glade:327 glade/fics_lounge.glade:2078 msgid "Lightning:" msgstr "" #: glade/fics_lounge.glade:351 glade/fics_lounge.glade:2102 msgid "Standard:" msgstr "Estandard :" #: glade/fics_lounge.glade:375 glade/fics_lounge.glade:2126 msgid "Blitz:" msgstr "Blitz :" #: glade/fics_lounge.glade:400 msgid "2 min, Fischer Random, Black" msgstr "" #: glade/fics_lounge.glade:422 msgid "10 min + 6 sec/move, White" msgstr "10 min + 6seg/movement , Blancs" #: glade/fics_lounge.glade:444 msgid "5 min" msgstr "5 min" #: glade/fics_lounge.glade:480 msgid "Edit Seek" msgstr "Editar una requèsta" #: glade/fics_lounge.glade:584 lib/pychess/ic/ICLounge.py:2208 #: lib/pychess/ic/__init__.py:101 lib/pychess/Utils/GameModel.py:206 msgid "Untimed" msgstr "Sens temporizacion" #: glade/fics_lounge.glade:637 msgid "Minutes: " msgstr "Minutas : " #: glade/fics_lounge.glade:665 msgid " Gain: " msgstr " Ganh : " #: glade/fics_lounge.glade:703 msgid "Time control: " msgstr "Paramètres del cronomètre : " #: glade/fics_lounge.glade:716 lib/pychess/ic/FICSObjects.py:56 #: lib/pychess/ic/ICLounge.py:1137 lib/pychess/ic/ICLounge.py:2208 #: lib/pychess/ic/__init__.py:99 msgid "Standard" msgstr "Estandard" #: glade/fics_lounge.glade:757 glade/newInOut.glade:633 msgid "Time Control" msgstr "Paramètres del cronomètre" #: glade/fics_lounge.glade:814 glade/fics_lounge.glade:1346 msgid "Don't care" msgstr "" #: glade/fics_lounge.glade:879 msgid "Your strength: " msgstr "Vòstre nivèl : " #: glade/fics_lounge.glade:921 msgid "(Blitz)" msgstr "(Blitz)" #: glade/fics_lounge.glade:951 msgid "Opponent's strength: " msgstr "Nivèl de l'adversari : " #: glade/fics_lounge.glade:1055 msgid "" "When this button is in the \"locked\" state, the relationship\n" "between \"Opponent's strength\" and \"Your strength\" will be\n" "preserved when \n" "a) your rating for the type of game sought has changed\n" "b) you change the variant or the time control" msgstr "" #: glade/fics_lounge.glade:1095 msgid "Center:" msgstr "Centrar :" #: glade/fics_lounge.glade:1134 msgid "1200" msgstr "1200" #: glade/fics_lounge.glade:1188 msgid "Tolerance:" msgstr "Tolerança  :" #: glade/fics_lounge.glade:1243 lib/pychess/ic/ICLounge.py:2452 msgid "Hide" msgstr "Amagar" #: glade/fics_lounge.glade:1289 msgid "Opponent Strength" msgstr "Fòrça de l'adversari" #: glade/fics_lounge.glade:1386 lib/pychess/Database/gamelist.py:40 #: lib/pychess/ic/ICLounge.py:1357 lib/pychess/ic/ICLounge.py:1557 #: lib/pychess/ic/ICLounge.py:2108 lib/pychess/Utils/repr.py:10 #: lib/pychess/widgets/ChessClock.py:40 #: lib/pychess/widgets/TaskerManager.py:153 msgid "White" msgstr "Blanc" #: glade/fics_lounge.glade:1414 lib/pychess/Database/gamelist.py:40 #: lib/pychess/ic/ICLounge.py:1358 lib/pychess/ic/ICLounge.py:1558 #: lib/pychess/ic/ICLounge.py:2110 lib/pychess/Utils/repr.py:10 #: lib/pychess/widgets/ChessClock.py:40 #: lib/pychess/widgets/TaskerManager.py:154 msgid "Black" msgstr "Negre" #: glade/fics_lounge.glade:1453 msgid "Your Color" msgstr "Vòstra color" #: glade/fics_lounge.glade:1512 msgid "Play normal chess rules" msgstr "Jogar amb las règlas normalas dels escacs" #: glade/fics_lounge.glade:1552 msgid "Play" msgstr "Aviar" #: glade/fics_lounge.glade:1618 glade/newInOut.glade:833 msgid "Chess Variant" msgstr "Varianta" #: glade/fics_lounge.glade:1676 msgid "Rated game" msgstr "Partida amb classament" #: glade/fics_lounge.glade:1692 msgid "Manually accept opponent" msgstr "" #: glade/fics_lounge.glade:1722 msgid "Options" msgstr "Opcions" #: glade/fics_lounge.glade:1750 msgid "PyChess - Internet Chess: FICS" msgstr "PyChess - Jòcs d'escacs sus internet : FICS (servidor internet gratuit per jòcs d'escacs)" #: glade/fics_lounge.glade:1823 msgid "_Clear Seeks" msgstr "_Inicializar las ofèrtas de partidas" #: glade/fics_lounge.glade:1847 msgid "_Accept" msgstr "_Acceptar" #: glade/fics_lounge.glade:1871 msgid "_Decline" msgstr "_Refusar" #: glade/fics_lounge.glade:2151 msgid "2 min, Fischer Random, 1800↓, Black" msgstr "2 min, Fischer Random, 1800↓, Negre" #: glade/fics_lounge.glade:2172 msgid "10 min + 6 sec/move, 1400↑, White" msgstr "10 min + 6 s/còp, 1400↑, Blanc" #: glade/fics_lounge.glade:2193 msgid "5 min, 1200-1800, Manual" msgstr "5 min, 1200-1800, Manual" #: glade/fics_lounge.glade:2247 msgid "Send all seeks" msgstr "" #: glade/fics_lounge.glade:2301 msgid "Send seek" msgstr "Mandar una requèsta" #: glade/fics_lounge.glade:2337 msgid "Create Seek" msgstr "Crear una requèsta" #: glade/fics_lounge.glade:2353 msgid "_Seeks / Challenges" msgstr "Requèstas / Desfís" #: glade/fics_lounge.glade:2374 lib/pychess/ic/ICLounge.py:472 #: lib/pychess/ic/ICLounge.py:670 lib/pychess/ic/ICLounge.py:1357 #: lib/pychess/ic/ICLounge.py:1358 msgid "Rating" msgstr "Nòta" #: glade/fics_lounge.glade:2399 msgid "Time" msgstr "Ora" #: glade/fics_lounge.glade:2419 msgid "Seek _Graph" msgstr "Graf de las requèstas" #: glade/fics_lounge.glade:2444 msgid "0 Players Ready" msgstr "0 Jogaires prèstes" #: glade/fics_lounge.glade:2496 msgid "Challenge" msgstr "" #: glade/fics_lounge.glade:2549 glade/fics_lounge.glade:2735 msgid "Observe" msgstr "Observacion" #: glade/fics_lounge.glade:2602 msgid "Start Private Chat" msgstr "" #: glade/fics_lounge.glade:2659 msgid "_Player List" msgstr "Lista dels jogaires" #: glade/fics_lounge.glade:2792 msgid "_Game List" msgstr "Lista de partidas" #: glade/fics_lounge.glade:2847 msgid "_My games" msgstr "" #: glade/fics_lounge.glade:2904 glade/PyChess.glade:841 msgid "Offer _Resume" msgstr "" #: glade/fics_lounge.glade:2962 glade/PyChess.glade:880 msgid "R_esign" msgstr "Abandonar" #: glade/fics_lounge.glade:3006 glade/PyChess.glade:820 msgid "Offer _Draw" msgstr "Prepausar _ex-aequo" #: glade/fics_lounge.glade:3050 msgid "Offer A_bort" msgstr "" #: glade/fics_lounge.glade:3107 msgid "Pre_view" msgstr "Pre_visualizacion" #: glade/fics_lounge.glade:3151 msgid "Examine" msgstr "" #: glade/fics_lounge.glade:3208 msgid "_Archived" msgstr "" #: glade/fics_lounge.glade:3313 msgid "News" msgstr "Nòvas" #: glade/fics_lounge.glade:3345 msgid "Show Console" msgstr "" #: glade/fics_lounge.glade:3359 msgid "Show _Chat" msgstr "" #: glade/fics_lounge.glade:3373 msgid "_Log Off" msgstr "Desconnectar" #: glade/fics_lounge.glade:3393 msgid "Tools" msgstr "Espleches" #: glade/fics_lounge.glade:3428 msgid "Asymmetric Random " msgstr "" #: glade/findbar.glade:6 msgid "window1" msgstr "Fenèstra 1" #: glade/findbar.glade:21 msgid "0 of 0" msgstr "0 de 0" #: glade/findbar.glade:66 msgid "Search:" msgstr "Recercar :" #: glade/findbar.glade:134 msgid "_Previous" msgstr "_Precedent" #: glade/findbar.glade:192 msgid "_Next" msgstr "_Seguent" #: glade/newInOut.glade:45 lib/pychess/widgets/newGameDialog.py:445 msgid "New Game" msgstr "Partida novèla" #: glade/newInOut.glade:108 msgid "_Start Game" msgstr "Començar La Partida" #: glade/newInOut.glade:130 msgid "Copy FEN" msgstr "" #: glade/newInOut.glade:143 msgid "Clear" msgstr "" #: glade/newInOut.glade:156 msgid "Paste FEN" msgstr "" #: glade/newInOut.glade:257 msgid "_Black player:" msgstr "_Jogaire negre :" #: glade/newInOut.glade:274 msgid "_White player:" msgstr "_Jogaire blanc :" #: glade/newInOut.glade:385 msgid "Players" msgstr "Jogaires" #: glade/newInOut.glade:436 msgid "_Untimed" msgstr "" #: glade/newInOut.glade:475 msgid "Blitz: 5 min" msgstr "" #: glade/newInOut.glade:526 msgid "Rapid: 15 min + 10 sec/move" msgstr "" #: glade/newInOut.glade:575 msgid "Normal: 40 min + 15 sec/move" msgstr "" #: glade/newInOut.glade:684 msgid "_Play Normal chess" msgstr "" #: glade/newInOut.glade:724 msgid "Play Fischer Random chess" msgstr "" #: glade/newInOut.glade:774 msgid "Play Losers chess" msgstr "" #: glade/newInOut.glade:919 msgid "Open Game" msgstr "" #: glade/newInOut.glade:1162 msgid "Initial Position" msgstr "Posicion Iniciala" #: glade/newInOut.glade:1219 msgid "Enter Game Notation" msgstr "Entrar la nòta del jòc" #: glade/newInOut.glade:1314 msgid "Halfmove clock" msgstr "" #: glade/newInOut.glade:1327 msgid "En passant line" msgstr "" #: glade/newInOut.glade:1339 msgid "Side to move" msgstr "" #: glade/newInOut.glade:1351 msgid "Move number" msgstr "" #: glade/newInOut.glade:1361 msgid "Black O-O" msgstr "" #: glade/newInOut.glade:1375 msgid "Black O-O-O" msgstr "" #: glade/newInOut.glade:1389 msgid "White O-O-O" msgstr "" #: glade/newInOut.glade:1403 msgid "White O-O" msgstr "" #: glade/promotion.glade:7 msgid "Promotion" msgstr "Promocion" #: glade/promotion.glade:49 lib/pychess/Utils/repr.py:12 msgid "Queen" msgstr "Reina" #: glade/promotion.glade:95 lib/pychess/Utils/repr.py:12 msgid "Rook" msgstr "Torre" #: glade/promotion.glade:141 lib/pychess/Utils/repr.py:12 msgid "Bishop" msgstr "Fòl" #: glade/promotion.glade:187 lib/pychess/Utils/repr.py:12 msgid "Knight" msgstr "Cavalièr" #: glade/promotion.glade:233 lib/pychess/Utils/repr.py:12 msgid "King" msgstr "Rei" #: glade/promotion.glade:265 msgid "Promote pawn to what?" msgstr "Promòure pion en ?" #: glade/PyChess.glade:9 msgid "Chess client" msgstr "" #: glade/PyChess.glade:44 msgid "Game information" msgstr "Informacions Sus La Partida" #: glade/PyChess.glade:164 msgid "Event:" msgstr "Eveniment :" #: glade/PyChess.glade:178 msgid "Site:" msgstr "Site :" #: glade/PyChess.glade:204 msgid "Round:" msgstr "Torn :" #: glade/PyChess.glade:237 msgid "White:" msgstr "" #: glade/PyChess.glade:249 msgid "Black:" msgstr "" #: glade/PyChess.glade:302 msgid "Game data" msgstr "Informacions" #: glade/PyChess.glade:357 msgid "Date of game" msgstr "Data" #: glade/PyChess.glade:495 msgid "_Game" msgstr "_Partida" #: glade/PyChess.glade:502 msgid "_New Game" msgstr "Partida _novèla" #: glade/PyChess.glade:515 msgid "Play _Internet Chess" msgstr "" #: glade/PyChess.glade:534 msgid "_Load Game" msgstr "_Cargar Partida" #: glade/PyChess.glade:550 msgid "Load _Recent Game" msgstr "" #: glade/PyChess.glade:558 msgid "Open _Database" msgstr "" #: glade/PyChess.glade:569 lib/pychess/widgets/newGameDialog.py:615 msgid "Setup Position" msgstr "" #: glade/PyChess.glade:579 msgid "Enter Game _Notation" msgstr "" #: glade/PyChess.glade:592 msgid "_Save Game" msgstr "_Salvar la Partida" #: glade/PyChess.glade:606 msgid "Save Game _As" msgstr "Salvar la Partica Jo_s" #: glade/PyChess.glade:624 msgid "Share Game" msgstr "" #: glade/PyChess.glade:630 msgid "_Export Position" msgstr "" #: glade/PyChess.glade:644 msgid "_Analyze Game" msgstr "" #: glade/PyChess.glade:678 msgid "Player _Rating" msgstr "Jogaire _Nòta" #: glade/PyChess.glade:723 msgid "_Edit" msgstr "" #: glade/PyChess.glade:734 msgid "_Copy PGN" msgstr "" #: glade/PyChess.glade:746 msgid "_Copy FEN" msgstr "" #: glade/PyChess.glade:763 msgid "_Engines" msgstr "" #: glade/PyChess.glade:789 msgid "_Actions" msgstr "_Accions" #: glade/PyChess.glade:800 msgid "Offer _Abort" msgstr "Prepausar un _abandon" #: glade/PyChess.glade:810 msgid "Offer Ad_journment" msgstr "" #: glade/PyChess.glade:831 msgid "Offer _Pause" msgstr "_Pausa" #: glade/PyChess.glade:847 msgid "Offer _Undo" msgstr "" #: glade/PyChess.glade:870 msgid "_Call Flag" msgstr "_Victòria Al Temps" #: glade/PyChess.glade:890 msgid "Ask to _Move" msgstr "" #: glade/PyChess.glade:905 msgid "Auto Call _Flag" msgstr "" #: glade/PyChess.glade:918 msgid "_View" msgstr "_Afichatge" #: glade/PyChess.glade:925 msgid "_Rotate Board" msgstr "_Rotacion de l'Escaquièr" #: glade/PyChess.glade:939 msgid "_Fullscreen" msgstr "Ecran _complet" #: glade/PyChess.glade:952 msgid "Leave _Fullscreen" msgstr "Quitar lo mòde _ecran complet" #: glade/PyChess.glade:969 msgid "_Show Sidepanels" msgstr "" #: glade/PyChess.glade:980 msgid "_Log Viewer" msgstr "_Informacions del Jornal" #: glade/PyChess.glade:997 msgid "_Hint mode" msgstr "_Mòde Conselh" #: glade/PyChess.glade:1009 msgid "Sp_y mode" msgstr "Mòde _Espion" #: glade/PyChess.glade:1024 msgid "_Help" msgstr "_Ajuda" #: glade/PyChess.glade:1034 msgid "About Chess" msgstr "A Prepaus dels Escacs" #: glade/PyChess.glade:1043 msgid "How to Play" msgstr "Cossí jogar" #: glade/PyChess.glade:1052 msgid "Translate PyChess" msgstr "Traduire PyChess" #: glade/PyChess.glade:1058 msgid "Tip of the Day" msgstr "Conselh del jorn" #: glade/PyChess.glade:1153 msgid "Default" msgstr "" #: glade/PyChess.glade:1156 msgid "Knights" msgstr "" #: glade/PyChess.glade:1167 lib/pychess/widgets/preferencesDialog.py:349 msgid "Beep" msgstr "Bip" #: glade/PyChess.glade:1170 lib/pychess/widgets/preferencesDialog.py:350 msgid "Select sound file..." msgstr "Seleccionar un fichièr son..." #: glade/PyChess.glade:1173 lib/pychess/widgets/preferencesDialog.py:348 msgid "No sound" msgstr "Pas cap de son" #: glade/PyChess.glade:1180 msgid "Preferences" msgstr "Preferéncias" #: glade/PyChess.glade:1218 msgid "The displayed name of the first human player, e.g., John." msgstr "" #: glade/PyChess.glade:1230 msgid "Name of _first human player:" msgstr "Nom del _primièr jogaire" #: glade/PyChess.glade:1259 msgid "The displayed name of the guest player, e.g., Mary." msgstr "" #: glade/PyChess.glade:1271 msgid "Name of s_econd human player:" msgstr "Nom del _segond jogaire" #: glade/PyChess.glade:1307 msgid "_Hide tabs when only one game is open" msgstr "" #: glade/PyChess.glade:1312 msgid "" "If set, this hides the tab in the top of the playing window, when it is not " "needed." msgstr "" #: glade/PyChess.glade:1326 msgid "_Use main app closer [x] to close all games" msgstr "" #: glade/PyChess.glade:1331 msgid "" "If set, clicking on main application window closer first time it closes all " "games." msgstr "" #: glade/PyChess.glade:1345 msgid "Auto _rotate board to current human player" msgstr "" #: glade/PyChess.glade:1350 msgid "" "If set, the board will turn after each move, to show the natural view for " "the current player." msgstr "" #: glade/PyChess.glade:1364 msgid "Auto _promote to queen" msgstr "" #: glade/PyChess.glade:1369 msgid "If set, pawn promotes to queen without promotion dialog selection." msgstr "" #: glade/PyChess.glade:1383 msgid "Face _to Face display mode" msgstr "" #: glade/PyChess.glade:1388 msgid "" "If set, the black pieces will be head down, suitable for playing against " "friends on mobile devices." msgstr "" #: glade/PyChess.glade:1402 msgid "Sho_w cords" msgstr "" #: glade/PyChess.glade:1407 msgid "" "If set, the playing board will display labels and ranks for each chess " "field. These are usable in chess notation." msgstr "" #: glade/PyChess.glade:1421 msgid "Show _captured pieces" msgstr "" #: glade/PyChess.glade:1426 msgid "If set, the captured figurines will be shown next to the board." msgstr "" #: glade/PyChess.glade:1440 msgid "Prefer figures in _notation" msgstr "" #: glade/PyChess.glade:1445 msgid "" "If set, PyChess will use figures to express moved pieces, rather than " "uppercase letters." msgstr "" #: glade/PyChess.glade:1464 msgid "If set, PyChess will colorize suboptimal analyzed moves with red." msgstr "" #: glade/PyChess.glade:1477 msgid "Show elapsed move times" msgstr "" #: glade/PyChess.glade:1482 msgid "If set, the elapsed time that a player used for the move is shown." msgstr "" #: glade/PyChess.glade:1500 msgid "If set, the hint analyzer engine evaluation value is shown." msgstr "" #: glade/PyChess.glade:1526 msgid "General Options" msgstr "" #: glade/PyChess.glade:1560 msgid "F_ull board animation" msgstr "" #: glade/PyChess.glade:1565 msgid "Animate pieces, board rotation and more. Use this on fast machines." msgstr "" #: glade/PyChess.glade:1579 msgid "Only animate _moves" msgstr "" #: glade/PyChess.glade:1584 msgid "Only animate piece moves." msgstr "" #: glade/PyChess.glade:1599 msgid "No _animation" msgstr "" #: glade/PyChess.glade:1604 msgid "Never use animation. Use this on slow machines." msgstr "" #: glade/PyChess.glade:1632 msgid "Animation" msgstr "Animacion" #: glade/PyChess.glade:1651 msgid "_General" msgstr "_General" #: glade/PyChess.glade:1692 msgid "Use opening _book" msgstr "" #: glade/PyChess.glade:1697 msgid "If set, PyChess will suggest best opening moves on hint panel." msgstr "" #: glade/PyChess.glade:1724 msgid "Polyglot book file:" msgstr "" #: glade/PyChess.glade:1768 msgid "Use _local tablebases" msgstr "" #: glade/PyChess.glade:1773 msgid "" "If set, PyChess will show game results for different moves in positions containing 6 or less pieces.\n" "You can download tablebase files from:\n" "http://www.olympuschess.com/egtb/gaviota/" msgstr "" #: glade/PyChess.glade:1803 msgid "Gaviota TB path:" msgstr "" #: glade/PyChess.glade:1843 msgid "Use _online tablebases" msgstr "" #: glade/PyChess.glade:1848 msgid "" "If set, PyChess will show game results for different moves in positions containing 6 or less pieces.\n" "It will search positions from http://www.k4it.de/" msgstr "" #: glade/PyChess.glade:1870 msgid "Opening, endgame" msgstr "" #: glade/PyChess.glade:1904 msgid "Use _analyzer" msgstr "Utilizar l'_analisador" #: glade/PyChess.glade:1946 msgid "" "The analyzer will run in the background and analyze the game. This is " "necessary for the hint mode to work" msgstr "" #: glade/PyChess.glade:1978 msgid "Use _inverted analyzer" msgstr "Utilizar _analisador inversat" #: glade/PyChess.glade:2020 msgid "" "The inverse analyzer will analyze the game as if your opponent was to move. " "This is necessary for the spy mode to work" msgstr "" #: glade/PyChess.glade:2096 msgid "Analyzing" msgstr "Analisi" #: glade/PyChess.glade:2118 msgid "_Hints" msgstr "" #: glade/PyChess.glade:2263 msgid "Uninstall" msgstr "Desinstallar" #: glade/PyChess.glade:2317 msgid "Ac_tive" msgstr "" #: glade/PyChess.glade:2367 msgid "Installed Sidepanels" msgstr "" #: glade/PyChess.glade:2382 msgid "Side_panels" msgstr "" #: glade/PyChess.glade:2440 msgid "Light Squares :" msgstr "" #: glade/PyChess.glade:2479 msgid "Dark Squares :" msgstr "" #: glade/PyChess.glade:2515 msgid "Reset Default Colours" msgstr "" #: glade/PyChess.glade:2551 msgid "Board Colours" msgstr "" #: glade/PyChess.glade:2610 msgid "Chess Sets" msgstr "" #: glade/PyChess.glade:2634 msgid "Themes" msgstr "" #: glade/PyChess.glade:2659 msgid "_Use sounds in PyChess" msgstr "_Activar los sons dins Pychess" #: glade/PyChess.glade:2982 msgid "A player _checks:" msgstr "Verificacion _Jogaire" #: glade/PyChess.glade:2997 msgid "A player _moves:" msgstr "Un jogaire se _desplaça :" #: glade/PyChess.glade:3010 msgid "Game is _drawn:" msgstr "La partida es _ex-aequo" #: glade/PyChess.glade:3025 msgid "Game is _lost:" msgstr "La partida es _perduda :" #: glade/PyChess.glade:3040 msgid "Game is _won:" msgstr "La partida es _ganhada" #: glade/PyChess.glade:3055 msgid "A player c_aptures:" msgstr "Un jogaire c_aptura :" #: glade/PyChess.glade:3084 msgid "Game is _set-up:" msgstr "La partida es _configurada :" #: glade/PyChess.glade:3136 msgid "_Observed moves:" msgstr "_Desplaçaments observats :" #: glade/PyChess.glade:3151 msgid "Observed _ends:" msgstr "_Fin observada :" #: glade/PyChess.glade:3265 msgid "Short on _time:" msgstr "" #: glade/PyChess.glade:3317 msgid "_Invalid move:" msgstr "" #: glade/PyChess.glade:3369 msgid "Activate alarm when _remaining sec is:" msgstr "" #: glade/PyChess.glade:3416 msgid "Play Sound When..." msgstr "Jogar un son quand..." #: glade/PyChess.glade:3438 msgid "_Sounds" msgstr "_Sons" #: glade/PyChess.glade:3463 msgid "_Auto save finished games" msgstr "" #: glade/PyChess.glade:3497 msgid "Save files to:" msgstr "" #: glade/PyChess.glade:3525 msgid "Use name format:" msgstr "" #: glade/PyChess.glade:3569 msgid "Names: #n1, #n2" msgstr "" #: glade/PyChess.glade:3582 msgid "Year, month, day: #y, #m, #d" msgstr "" #: glade/PyChess.glade:3619 msgid "Save elapsed move _times" msgstr "" #: glade/PyChess.glade:3644 msgid "Save analyzing engine _evaluation values" msgstr "" #: glade/PyChess.glade:3669 msgid "Save _own games only" msgstr "" #: glade/PyChess.glade:3698 msgid "Save" msgstr "" #: glade/PyChess.glade:3728 msgid "uci" msgstr "" #: glade/PyChess.glade:3731 msgid "xboard" msgstr "" #: glade/PyChess.glade:3739 msgid "Manage engines" msgstr "" #: glade/PyChess.glade:3837 msgid "Command:" msgstr "" #: glade/PyChess.glade:3851 msgid "Protocol:" msgstr "" #: glade/PyChess.glade:3865 msgid "Parameters:" msgstr "" #: glade/PyChess.glade:3878 msgid "Command line parameters needed by the engine." msgstr "" #: glade/PyChess.glade:3903 msgid "" "Engines use uci or xboard communication protocol to talk to the GUI.\n" "If it can use both you can set here which one you like." msgstr "" #: glade/PyChess.glade:3929 msgid "Working directory:" msgstr "" #: glade/PyChess.glade:3942 msgid "The directory where the engine will be started from." msgstr "" #: glade/saveGamesDialog.glade:7 msgid "Quit PyChess" msgstr "Quitar PyChess." #: glade/saveGamesDialog.glade:24 lib/pychess/widgets/ionest.py:424 msgid "Close _without Saving" msgstr "Tampar _sens enregistrar" #: glade/saveGamesDialog.glade:83 msgid "_Save %d documents" msgstr "" #: glade/saveGamesDialog.glade:141 msgid "" "There are %d games with unsaved moves. Save changes before " "closing?" msgstr "" #: glade/saveGamesDialog.glade:161 msgid "Select the games you want to save:" msgstr "" #: glade/saveGamesDialog.glade:204 msgid "If you don't save, new changes to your games will be permanently lost." msgstr "" #: glade/taskers.glade:126 msgid "_Opponent:" msgstr "" #: glade/taskers.glade:154 msgid "_Your Color:" msgstr "" #: glade/taskers.glade:219 msgid "_Start Game" msgstr "" #: glade/taskers.glade:338 msgid "Log on as G_uest" msgstr "" #: glade/taskers.glade:410 msgid "Ha_ndle:" msgstr "" #: glade/taskers.glade:469 msgid "_Connect to server" msgstr "" #: glade/tipoftheday.glade:7 msgid "Tip Of The day" msgstr "" #: glade/tipoftheday.glade:62 msgid "Show tips at startup" msgstr "Afichar de conselhs a l'aviada" #: lib/pychess/Main.py:302 msgid "http://en.wikipedia.org/wiki/Chess" msgstr "http://oc.wikipedia.org/wiki/Jòc_d'escacs" #: lib/pychess/Main.py:305 msgid "http://en.wikipedia.org/wiki/Rules_of_chess" msgstr "http://oc.wikipedia.org/wiki/R%C3%A8glas_del_jòc_d%27%escacs" #: lib/pychess/Main.py:370 lib/pychess/widgets/gamenanny.py:80 msgid "Welcome" msgstr "Benvenguda" #: lib/pychess/Database/gamelist.py:40 msgid "Id" msgstr "" #: lib/pychess/Database/gamelist.py:40 msgid "W Elo" msgstr "" #: lib/pychess/Database/gamelist.py:40 msgid "B Elo" msgstr "" #: lib/pychess/Database/gamelist.py:41 msgid "Result" msgstr "" #: lib/pychess/Database/gamelist.py:41 msgid "Event" msgstr "" #: lib/pychess/Database/gamelist.py:41 msgid "Site" msgstr "" #: lib/pychess/Database/gamelist.py:41 msgid "Round" msgstr "" #: lib/pychess/Database/gamelist.py:41 msgid "Date" msgstr "" #: lib/pychess/Database/gamelist.py:41 msgid "ECO" msgstr "" #: lib/pychess/Database/gamelist.py:62 msgid "PyChess Game Database" msgstr "" #: lib/pychess/Database/PgnImport.py:188 #, python-format msgid "The game #%s can't be loaded, because of an error parsing FEN" msgstr "" #: lib/pychess/ic/FICSConnection.py:139 msgid "The connection was broken - got \"end of file\" message" msgstr "La connexion es estada copada - Messatge \"fin de fichièr\" recebut" #: lib/pychess/ic/FICSConnection.py:140 #, python-format msgid "'%s' is not a registered name" msgstr "'%s' es pas un nom enregistrat" #: lib/pychess/ic/FICSConnection.py:141 msgid "" "The entered password was invalid.\n" "If you forgot your password, go to http://www.freechess.org/password to request a new one over email." msgstr "" #: lib/pychess/ic/FICSConnection.py:145 #, python-format msgid "Sorry '%s' is already logged in" msgstr "" #: lib/pychess/ic/FICSConnection.py:146 #, python-format msgid "'%s' is a registered name. If it is yours, type the password." msgstr "" #: lib/pychess/ic/FICSConnection.py:147 msgid "" "Due to abuse problems, guest connections have been prevented.\n" "You can still register on http://www.freechess.org" msgstr "" #: lib/pychess/ic/FICSConnection.py:166 msgid "Connecting to server" msgstr "Connexion al servidor" #: lib/pychess/ic/FICSConnection.py:181 msgid "Logging on to server" msgstr "" #: lib/pychess/ic/FICSConnection.py:239 msgid "Setting up environment" msgstr "" #: lib/pychess/ic/FICSObjects.py:35 lib/pychess/ic/FICSObjects.py:47 #, python-format msgid "%(player)s is %(status)s" msgstr "" #: lib/pychess/ic/FICSObjects.py:46 msgid "not playing" msgstr "" #: lib/pychess/ic/FICSObjects.py:54 lib/pychess/ic/ICLounge.py:1136 #: lib/pychess/ic/ICLounge.py:2209 lib/pychess/ic/__init__.py:98 #: lib/pychess/widgets/newGameDialog.py:153 msgid "Blitz" msgstr "Rapid" #: lib/pychess/ic/FICSObjects.py:58 lib/pychess/ic/ICLounge.py:1137 #: lib/pychess/ic/ICLounge.py:2209 lib/pychess/ic/__init__.py:100 msgid "Lightning" msgstr "Lhauces" #: lib/pychess/ic/FICSObjects.py:60 lib/pychess/Variants/atomic.py:15 msgid "Atomic" msgstr "" #: lib/pychess/ic/FICSObjects.py:62 lib/pychess/Variants/bughouse.py:9 msgid "Bughouse" msgstr "" #: lib/pychess/ic/FICSObjects.py:64 lib/pychess/Variants/crazyhouse.py:9 msgid "Crazyhouse" msgstr "" #: lib/pychess/ic/FICSObjects.py:66 lib/pychess/Variants/losers.py:9 msgid "Losers" msgstr "" #: lib/pychess/ic/FICSObjects.py:68 lib/pychess/Variants/suicide.py:12 msgid "Suicide" msgstr "" #: lib/pychess/ic/FICSObjects.py:70 lib/pychess/ic/__init__.py:129 msgid "Wild" msgstr "" #: lib/pychess/ic/FICSObjects.py:117 msgid "Online" msgstr "En marcha" #: lib/pychess/ic/FICSObjects.py:118 lib/pychess/ic/FICSObjects.py:143 msgid "Offline" msgstr "Desconnectat" #: lib/pychess/ic/FICSObjects.py:133 msgid "Available" msgstr "Disponible" #: lib/pychess/ic/FICSObjects.py:135 msgid "Playing" msgstr "En cors de lectura" #: lib/pychess/ic/FICSObjects.py:141 msgid "Idle" msgstr "Inactiu" #: lib/pychess/ic/FICSObjects.py:145 msgid "Examining" msgstr "Analisi" #: lib/pychess/ic/FICSObjects.py:147 msgid "Not Available" msgstr "Pas disponible" #: lib/pychess/ic/FICSObjects.py:149 msgid "Running Simul Match" msgstr "" #: lib/pychess/ic/FICSObjects.py:151 msgid "In Tournament" msgstr "" #: lib/pychess/ic/FICSObjects.py:308 lib/pychess/ic/FICSObjects.py:492 #: lib/pychess/ic/ICLounge.py:2278 msgid "Unrated" msgstr "Pas notat" #: lib/pychess/ic/FICSObjects.py:491 lib/pychess/ic/ICLounge.py:670 #: lib/pychess/ic/ICLounge.py:1358 lib/pychess/ic/ICLounge.py:1558 #: lib/pychess/ic/ICLounge.py:2113 msgid "Rated" msgstr "Notat" #: lib/pychess/ic/FICSObjects.py:498 lib/pychess/ic/ICLounge.py:2098 #, python-format msgid "%d min" msgstr "%d minutas" #: lib/pychess/ic/FICSObjects.py:500 #, python-format msgid " + %d sec" msgstr " + %d seg" #: lib/pychess/ic/FICSObjects.py:517 #, python-format msgid "%(player)s plays %(color)s" msgstr "" #: lib/pychess/ic/FICSObjects.py:519 lib/pychess/ic/ICLounge.py:909 msgid "white" msgstr "" #: lib/pychess/ic/FICSObjects.py:519 lib/pychess/ic/ICLounge.py:909 msgid "black" msgstr "" #: lib/pychess/ic/FICSObjects.py:565 msgid "This is a continuation of an adjourned match" msgstr "" #: lib/pychess/ic/FICSObjects.py:654 msgid "Opponent Rating" msgstr "" #: lib/pychess/ic/FICSObjects.py:656 msgid "Manual Accept" msgstr "" #: lib/pychess/ic/FICSObjects.py:810 msgid "Private" msgstr "Privat" #: lib/pychess/ic/FICSObjects.py:930 lib/pychess/ic/ICLounge.py:527 #: lib/pychess/Savers/epd.py:139 msgid "Unknown" msgstr "Desconegut" #: lib/pychess/ic/ICLogon.py:159 lib/pychess/ic/ICLogon.py:165 msgid "Connection Error" msgstr "Error de connexion" #: lib/pychess/ic/ICLogon.py:161 msgid "Log on Error" msgstr "Error a l'autentificacion" #: lib/pychess/ic/ICLogon.py:163 msgid "Connection was closed" msgstr "La connexion es estada tampada" #: lib/pychess/ic/ICLogon.py:169 msgid "Address Error" msgstr "" #: lib/pychess/ic/ICLogon.py:172 msgid "Auto-logout" msgstr "" #: lib/pychess/ic/ICLogon.py:173 msgid "You have been logged out because you were idle more than 60 minutes" msgstr "" #: lib/pychess/ic/ICLounge.py:222 msgid "You have to set kibitz on to see bot messages here." msgstr "" #: lib/pychess/ic/ICLounge.py:241 msgid "" "You may only have 3 outstanding seeks at the same time. If you want to add a" " new seek you must clear your currently active seeks. Clear your seeks?" msgstr "" #: lib/pychess/ic/ICLounge.py:258 msgid "You can't touch this! You are examining a game." msgstr "" #: lib/pychess/ic/ICLounge.py:270 msgid " has declined your offer for a match" msgstr "" #: lib/pychess/ic/ICLounge.py:283 msgid " is censoring you" msgstr "" #: lib/pychess/ic/ICLounge.py:296 msgid " noplay listing you" msgstr "" #: lib/pychess/ic/ICLounge.py:311 msgid " uses a formula not fitting your match request:" msgstr "" #: lib/pychess/ic/ICLounge.py:325 msgid "to manual accept" msgstr "" #: lib/pychess/ic/ICLounge.py:327 msgid "to automatic accept" msgstr "" #: lib/pychess/ic/ICLounge.py:329 msgid "rating range now" msgstr "" #: lib/pychess/ic/ICLounge.py:330 msgid "Seek updated" msgstr "" #: lib/pychess/ic/ICLounge.py:342 msgid "Your seeks have been removed" msgstr "" #: lib/pychess/ic/ICLounge.py:363 msgid " has arrived" msgstr "" #: lib/pychess/ic/ICLounge.py:370 msgid " has departed" msgstr "" #: lib/pychess/ic/ICLounge.py:374 msgid " is present" msgstr "" #: lib/pychess/ic/ICLounge.py:391 sidepanel/chatPanel.py:17 msgid "Chat" msgstr "" #: lib/pychess/ic/ICLounge.py:472 sidepanel/bookPanel.py:366 msgid "Win" msgstr "" #: lib/pychess/ic/ICLounge.py:472 sidepanel/bookPanel.py:360 msgid "Draw" msgstr "" #: lib/pychess/ic/ICLounge.py:472 sidepanel/bookPanel.py:363 msgid "Loss" msgstr "" #: lib/pychess/ic/ICLounge.py:482 msgid "" "On FICS, your \"Wild\" rating encompasses all of the following variants at " "all time controls:\n" msgstr "" #: lib/pychess/ic/ICLounge.py:494 msgid "Sanctions" msgstr "" #: lib/pychess/ic/ICLounge.py:499 msgid "Email" msgstr "Corrièr electronic" #: lib/pychess/ic/ICLounge.py:504 msgid "Spent" msgstr "Despensat" #: lib/pychess/ic/ICLounge.py:506 msgid "online in total" msgstr "Connectat al total" #: lib/pychess/ic/ICLounge.py:512 msgid "Ping" msgstr "Ping" #: lib/pychess/ic/ICLounge.py:517 msgid "Connecting" msgstr "Connexion en cors" #: lib/pychess/ic/ICLounge.py:544 msgid "" "You are currently logged in as a guest.\n" "A guest can't play rated games and therefore isn't able to play as many of the types of matches offered as a registered user. To register an account, go to http://www.freechess.org/Register/index.html." msgstr "" #: lib/pychess/ic/ICLounge.py:669 lib/pychess/ic/ICLounge.py:1136 msgid "Name" msgstr "Nom" #: lib/pychess/ic/ICLounge.py:670 lib/pychess/ic/ICLounge.py:1358 #: lib/pychess/ic/ICLounge.py:1558 msgid "Type" msgstr "Tipe" #: lib/pychess/ic/ICLounge.py:670 lib/pychess/ic/ICLounge.py:1558 msgid "Clock" msgstr "Relòtge" #: lib/pychess/ic/ICLounge.py:726 lib/pychess/ic/ICLounge.py:923 #: lib/pychess/Players/Human.py:250 msgid "Accept" msgstr "" #: lib/pychess/ic/ICLounge.py:728 msgid "Assess" msgstr "" #: lib/pychess/ic/ICLounge.py:734 msgid "Archived" msgstr "" #: lib/pychess/ic/ICLounge.py:848 #, python-format msgid "Active seeks: %d" msgstr "" #: lib/pychess/ic/ICLounge.py:897 #, python-format msgid "" " would like to resume your adjourned %(time)s %(gametype)s " "game." msgstr "" #: lib/pychess/ic/ICLounge.py:902 #, python-format msgid "" " challenges you to a %(time)s %(rated)s %(gametype)s game" msgstr "" #: lib/pychess/ic/ICLounge.py:907 #, python-format msgid " where %(player)s plays %(color)s." msgstr "" #: lib/pychess/ic/ICLounge.py:924 lib/pychess/Players/Human.py:251 msgid "Decline" msgstr "" #: lib/pychess/ic/ICLounge.py:1065 msgid " min" msgstr " min" #: lib/pychess/ic/ICLounge.py:1137 msgid "Status" msgstr "Estat" #: lib/pychess/ic/ICLounge.py:1203 lib/pychess/ic/ICLounge.py:1233 #, python-format msgid "Players: %d" msgstr "" #: lib/pychess/ic/ICLounge.py:1469 #, python-format msgid "Games running: %d" msgstr "" #: lib/pychess/ic/ICLounge.py:1559 msgid "Date/Time" msgstr "Data / ora" #: lib/pychess/ic/ICLounge.py:1614 #, python-format msgid "" " with whom you have an adjourned %(timecontrol)s %(gametype)s " "game is online." msgstr "" #: lib/pychess/ic/ICLounge.py:1635 msgid "Request Continuation" msgstr "" #: lib/pychess/ic/ICLounge.py:1637 msgid "Examine Adjourned Game" msgstr "" #: lib/pychess/ic/ICLounge.py:1965 msgid "" "The chain button is disabled because you are logged in as a guest. Guests " "can't establish ratings, and the chain button's state has no effect when " "there is no rating to which to tie \"Opponent Strength\" to" msgstr "" #: lib/pychess/ic/ICLounge.py:2006 msgid "Challenge: " msgstr "Demanda d'accès : " #: lib/pychess/ic/ICLounge.py:2044 msgid "If set you can refuse players accepting your seek" msgstr "" #: lib/pychess/ic/ICLounge.py:2048 lib/pychess/ic/ICLounge.py:2051 msgid "This option is not applicable because you're challenging a player" msgstr "" #: lib/pychess/ic/ICLounge.py:2064 msgid "Edit Seek: " msgstr "" #: lib/pychess/ic/ICLounge.py:2095 #, python-format msgid "%(minutes)d min + %(gain)d sec/move" msgstr "" #: lib/pychess/ic/ICLounge.py:2116 msgid "Manual" msgstr "Manual" #: lib/pychess/ic/ICLounge.py:2256 msgid "Any strength" msgstr "" #: lib/pychess/ic/ICLounge.py:2308 msgid "You can't play rated games because you are logged in as a guest" msgstr "" #: lib/pychess/ic/ICLounge.py:2312 msgid "You can't play rated games because \"Untimed\" is checked, " msgstr "" #: lib/pychess/ic/ICLounge.py:2313 msgid "and on FICS, untimed games can't be rated" msgstr "" #: lib/pychess/ic/ICLounge.py:2317 msgid "This option is not available because you're challenging a guest, " msgstr "" #: lib/pychess/ic/ICLounge.py:2318 msgid "and guests can't play rated games" msgstr "" #: lib/pychess/ic/ICLounge.py:2332 lib/pychess/Variants/shuffle.py:16 #: lib/pychess/widgets/newGameDialog.py:266 msgid "Shuffle" msgstr "Mòde aleatòri" #: lib/pychess/ic/ICLounge.py:2333 lib/pychess/widgets/newGameDialog.py:267 msgid "Other (standard rules)" msgstr "" #: lib/pychess/ic/ICLounge.py:2334 lib/pychess/widgets/newGameDialog.py:268 msgid "Other (non standard rules)" msgstr "" #: lib/pychess/ic/ICLounge.py:2421 msgid "You can't select a variant because \"Untimed\" is checked, " msgstr "" #: lib/pychess/ic/ICLounge.py:2422 msgid "and on FICS, untimed games have to be normal chess rules" msgstr "" #: lib/pychess/ic/ICLounge.py:2454 msgid "Change Tolerance" msgstr "" #: lib/pychess/ic/__init__.py:102 msgid "Examined" msgstr "" #: lib/pychess/ic/__init__.py:103 msgid "Other" msgstr "Autre" #: lib/pychess/ic/__init__.py:182 msgid "Administrator" msgstr "Administrador" #: lib/pychess/ic/__init__.py:182 msgid "Blindfold Account" msgstr "" #: lib/pychess/ic/__init__.py:182 msgid "Computer" msgstr "" #: lib/pychess/ic/__init__.py:183 msgid "Team Account" msgstr "" #: lib/pychess/ic/__init__.py:183 msgid "Unregistered" msgstr "" #: lib/pychess/ic/__init__.py:183 msgid "Chess Advisor" msgstr "" #: lib/pychess/ic/__init__.py:184 msgid "Service Representative" msgstr "" #: lib/pychess/ic/__init__.py:184 msgid "Tournament Director" msgstr "" #: lib/pychess/ic/__init__.py:184 msgid "Mamer Manager" msgstr "" #: lib/pychess/ic/__init__.py:185 msgid "Grand Master" msgstr "" #: lib/pychess/ic/__init__.py:185 msgid "International Master" msgstr "" #: lib/pychess/ic/__init__.py:185 msgid "FIDE Master" msgstr "" #: lib/pychess/ic/__init__.py:186 msgid "Woman Grand Master" msgstr "" #: lib/pychess/ic/__init__.py:186 msgid "Woman International Master" msgstr "" #: lib/pychess/ic/__init__.py:186 msgid "Woman FIDE Master" msgstr "" #: lib/pychess/ic/__init__.py:187 msgid "Dummy Account" msgstr "" #: lib/pychess/ic/__init__.py:191 msgid "*" msgstr "*" #: lib/pychess/ic/__init__.py:191 lib/pychess/Utils/repr.py:14 msgid "B" msgstr "F" #: lib/pychess/ic/__init__.py:191 msgid "C" msgstr "°C" #: lib/pychess/ic/__init__.py:192 msgid "T" msgstr "" #: lib/pychess/ic/__init__.py:192 msgid "U" msgstr "" #: lib/pychess/ic/__init__.py:192 msgid "CA" msgstr "" #: lib/pychess/ic/__init__.py:193 msgid "SR" msgstr "" #: lib/pychess/ic/__init__.py:193 msgid "TD" msgstr "TD" #: lib/pychess/ic/__init__.py:193 msgid "TM" msgstr "TM" #: lib/pychess/ic/__init__.py:194 msgid "GM" msgstr "" #: lib/pychess/ic/__init__.py:194 msgid "IM" msgstr "IM" #: lib/pychess/ic/__init__.py:194 msgid "FM" msgstr "FM" #: lib/pychess/ic/__init__.py:195 msgid "WGM" msgstr "WGM" #: lib/pychess/ic/__init__.py:195 msgid "WIM" msgstr "WIM" #: lib/pychess/ic/__init__.py:195 msgid "WFM" msgstr "" #: lib/pychess/ic/__init__.py:195 msgid "D" msgstr "" #: lib/pychess/ic/__init__.py:195 msgid "H" msgstr "" #: lib/pychess/ic/__init__.py:195 msgid "CM" msgstr "" #: lib/pychess/ic/__init__.py:195 msgid "FA" msgstr "" #: lib/pychess/ic/__init__.py:195 msgid "NM" msgstr "" #: lib/pychess/Players/CECPEngine.py:857 #, python-format msgid "The engine %s reports an error:" msgstr "" #: lib/pychess/Players/Human.py:20 msgid "Your opponent has offered you a draw." msgstr "" #: lib/pychess/Players/Human.py:21 msgid "" "Your opponent has offered you a draw. If you accept this offer, the game " "will end with a score of 1/2 - 1/2." msgstr "" #: lib/pychess/Players/Human.py:23 msgid "Your opponent wants to abort the game." msgstr "" #: lib/pychess/Players/Human.py:24 msgid "" "Your opponent has asked that the game be aborted. If you accept this offer, " "the game will end with no rating change." msgstr "" #: lib/pychess/Players/Human.py:26 msgid "Your opponent wants to adjourn the game." msgstr "" #: lib/pychess/Players/Human.py:27 msgid "" "Your opponent has asked that the game be adjourned. If you accept this " "offer, the game will be adjourned and you can resume it later (when your " "opponent is online and both players agree to resume)." msgstr "" #: lib/pychess/Players/Human.py:29 #, python-format msgid "Your opponent wants to undo %s move(s)." msgstr "" #: lib/pychess/Players/Human.py:30 #, python-format msgid "" "Your opponent has asked that the last %s move(s) be undone. If you accept " "this offer, the game will continue from the earlier position." msgstr "" #: lib/pychess/Players/Human.py:32 msgid "Your opponent wants to pause the game." msgstr "" #: lib/pychess/Players/Human.py:33 msgid "" "Your opponent has asked that the game be paused. If you accept this offer, " "the game clock will be paused until both players agree to resume the game." msgstr "" #: lib/pychess/Players/Human.py:35 msgid "Your opponent wants to resume the game." msgstr "" #: lib/pychess/Players/Human.py:36 msgid "" "Your opponent has asked that the game be resumed. If you accept this offer, " "the game clock will continue from where it was paused." msgstr "" #: lib/pychess/Players/Human.py:40 msgid "The resignation" msgstr "" #: lib/pychess/Players/Human.py:41 msgid "The flag call" msgstr "" #: lib/pychess/Players/Human.py:42 msgid "The draw offer" msgstr "" #: lib/pychess/Players/Human.py:43 msgid "The abort offer" msgstr "" #: lib/pychess/Players/Human.py:44 msgid "The adjourn offer" msgstr "" #: lib/pychess/Players/Human.py:45 msgid "The pause offer" msgstr "" #: lib/pychess/Players/Human.py:46 msgid "The resume offer" msgstr "" #: lib/pychess/Players/Human.py:47 msgid "The offer to switch sides" msgstr "" #: lib/pychess/Players/Human.py:48 msgid "The takeback offer" msgstr "" #: lib/pychess/Players/Human.py:52 msgid "resign" msgstr "" #: lib/pychess/Players/Human.py:53 msgid "call your opponents flag" msgstr "" #: lib/pychess/Players/Human.py:54 msgid "offer a draw" msgstr "" #: lib/pychess/Players/Human.py:55 msgid "offer an abort" msgstr "" #: lib/pychess/Players/Human.py:56 msgid "offer to adjourn" msgstr "" #: lib/pychess/Players/Human.py:57 msgid "offer a pause" msgstr "" #: lib/pychess/Players/Human.py:58 msgid "offer to resume" msgstr "" #: lib/pychess/Players/Human.py:59 msgid "offer to switch sides" msgstr "" #: lib/pychess/Players/Human.py:60 msgid "offer a takeback" msgstr "" #: lib/pychess/Players/Human.py:61 msgid "ask your opponent to move" msgstr "" #: lib/pychess/Players/Human.py:66 msgid "Your opponent is not out of time." msgstr "" #: lib/pychess/Players/Human.py:68 msgid "The clock hasn't been started yet." msgstr "" #: lib/pychess/Players/Human.py:70 msgid "You can't switch colors during the game." msgstr "" #: lib/pychess/Players/Human.py:72 msgid "You have tried to undo too many moves." msgstr "" #: lib/pychess/Players/Human.py:180 msgid "Your opponent asks you to hurry!" msgstr "" #: lib/pychess/Players/Human.py:181 msgid "" "Generally this means nothing, as the game is time-based, but if you want to " "please your opponent, perhaps you should get going." msgstr "" #: lib/pychess/Players/Human.py:259 #, python-format msgid "%s was declined by your opponent" msgstr "" #: lib/pychess/Players/Human.py:260 #, python-format msgid "Resend %s?" msgstr "" #: lib/pychess/Players/Human.py:267 msgid "Resend" msgstr "" #: lib/pychess/Players/Human.py:275 #, python-format msgid "%s was withdrawn by your opponent" msgstr "" #: lib/pychess/Players/Human.py:276 msgid "Your opponent seems to have changed their mind." msgstr "" #: lib/pychess/Players/Human.py:290 #, python-format msgid "Unable to accept %s" msgstr "Autoriza a acceptar %s" #: lib/pychess/Players/Human.py:291 msgid "Probably because it has been withdrawn." msgstr "" #: lib/pychess/Players/Human.py:298 #, python-format msgid "%s returns an error" msgstr "%s torna una error" #: lib/pychess/Savers/chessalpha2.py:12 msgid "Chess Alpha 2 Diagram" msgstr "" #: lib/pychess/Savers/chesspastebin.py:39 msgid "Game shared at " msgstr "" #: lib/pychess/Savers/chesspastebin.py:41 msgid "(Link is available on clipboard.)" msgstr "" #: lib/pychess/Savers/database.py:19 msgid "PyChess database" msgstr "" #: lib/pychess/Savers/epd.py:12 msgid "Chess Position" msgstr "Posicion d'Escac" #: lib/pychess/Savers/fen.py:12 msgid "Simple Chess Position" msgstr "Posicion simpla de las pèças" #: lib/pychess/Savers/fen.py:44 lib/pychess/Savers/pgn.py:329 msgid "The game can't be loaded, because of an error parsing FEN" msgstr "" #: lib/pychess/Savers/pgnbase.py:100 #, python-format msgid "" "The game can't be read to end, because of an error parsing move %(moveno)s " "'%(notation)s'." msgstr "" #: lib/pychess/Savers/pgnbase.py:102 #, python-format msgid "The move failed because %s." msgstr "" #: lib/pychess/Savers/pgnbase.py:110 #, python-format msgid "Error parsing move %(moveno)s %(mstr)s" msgstr "" #: lib/pychess/Savers/pgn.py:28 msgid "Chess Game" msgstr "Partida d'escacs" #: lib/pychess/Savers/pgn.py:362 msgid "Invalid move." msgstr "" #: lib/pychess/Savers/png.py:15 msgid "Png image" msgstr "" #: lib/pychess/System/ping.py:31 msgid "Destination Host Unreachable" msgstr "" #: lib/pychess/System/ping.py:74 msgid "Died" msgstr "Mòrtas" #: lib/pychess/Utils/GameModel.py:147 msgid "Local Event" msgstr "Eveniment local" #: lib/pychess/Utils/GameModel.py:148 msgid "Local Site" msgstr "Site local" #: lib/pychess/Utils/repr.py:12 msgid "Pawn" msgstr "Pion" #: lib/pychess/Utils/repr.py:14 msgid "P" msgstr "P" #: lib/pychess/Utils/repr.py:14 msgid "N" msgstr "N" #: lib/pychess/Utils/repr.py:14 msgid "R" msgstr "R" #: lib/pychess/Utils/repr.py:14 msgid "Q" msgstr "D" #: lib/pychess/Utils/repr.py:14 msgid "K" msgstr "R" #: lib/pychess/Utils/repr.py:17 msgid "The game ended in a draw" msgstr "La partida s'es acabada per un nul" #: lib/pychess/Utils/repr.py:18 #, python-format msgid "%(white)s won the game" msgstr "" #: lib/pychess/Utils/repr.py:19 #, python-format msgid "%(black)s won the game" msgstr "" #: lib/pychess/Utils/repr.py:20 msgid "The game has been killed" msgstr "La partida es estada destrucha" #: lib/pychess/Utils/repr.py:21 msgid "The game has been adjourned" msgstr "La partida es suspenduda" #: lib/pychess/Utils/repr.py:22 msgid "The game has been aborted" msgstr "La partida es estada abandonada" #: lib/pychess/Utils/repr.py:26 msgid "Because neither player has sufficient material to mate" msgstr "" #: lib/pychess/Utils/repr.py:27 msgid "Because the same position was repeated three times in a row" msgstr "" #: lib/pychess/Utils/repr.py:28 msgid "Because the last 50 moves brought nothing new" msgstr "" #: lib/pychess/Utils/repr.py:29 msgid "Because both players ran out of time" msgstr "" #: lib/pychess/Utils/repr.py:30 #, python-format msgid "Because %(mover)s stalemated" msgstr "" #: lib/pychess/Utils/repr.py:31 msgid "Because both players agreed to a draw" msgstr "" #: lib/pychess/Utils/repr.py:32 lib/pychess/Utils/repr.py:42 msgid "Because of adjudication by an admin" msgstr "Per arbitratge d'un administrator" #: lib/pychess/Utils/repr.py:33 msgid "Because the game exceed the max length" msgstr "" #: lib/pychess/Utils/repr.py:34 #, python-format msgid "" "Because %(white)s ran out of time and %(black)s has insufficient material to" " mate" msgstr "" #: lib/pychess/Utils/repr.py:35 #, python-format msgid "" "Because %(black)s ran out of time and %(white)s has insufficient material to" " mate" msgstr "" #: lib/pychess/Utils/repr.py:36 msgid "Because both players have the same amount of pieces" msgstr "" #: lib/pychess/Utils/repr.py:38 #, python-format msgid "Because %(loser)s resigned" msgstr "Perque %(loser)s a abandonat" #: lib/pychess/Utils/repr.py:39 #, python-format msgid "Because %(loser)s ran out of time" msgstr "" #: lib/pychess/Utils/repr.py:40 #, python-format msgid "Because %(loser)s was checkmated" msgstr "" #: lib/pychess/Utils/repr.py:41 #, python-format msgid "Because %(loser)s disconnected" msgstr "" #: lib/pychess/Utils/repr.py:43 #, python-format msgid "Because %(winner)s has fewer pieces" msgstr "" #: lib/pychess/Utils/repr.py:44 #, python-format msgid "Because %(winner)s lost all pieces" msgstr "" #: lib/pychess/Utils/repr.py:45 #, python-format msgid "Because %(loser)s king exploded" msgstr "" #: lib/pychess/Utils/repr.py:46 #, python-format msgid "Because %(winner)s king reached the center" msgstr "" #: lib/pychess/Utils/repr.py:47 #, python-format msgid "Because %(winner)s was giving check 3 times" msgstr "" #: lib/pychess/Utils/repr.py:49 msgid "Because a player lost connection" msgstr "" #: lib/pychess/Utils/repr.py:50 msgid "Because both players agreed to an adjournment" msgstr "" #: lib/pychess/Utils/repr.py:51 msgid "Because the server was shut down" msgstr "" #: lib/pychess/Utils/repr.py:52 msgid "" "Because a player lost connection and the other player requested adjournment" msgstr "" #: lib/pychess/Utils/repr.py:53 #, python-format msgid "" "Because %(black)s lost connection to the server and %(white)s requested " "adjournment" msgstr "" #: lib/pychess/Utils/repr.py:54 #, python-format msgid "" "Because %(white)s lost connection to the server and %(black)s requested " "adjournment" msgstr "" #: lib/pychess/Utils/repr.py:55 #, python-format msgid "Because %(white)s lost connection to the server" msgstr "" #: lib/pychess/Utils/repr.py:56 #, python-format msgid "Because %(black)s lost connection to the server" msgstr "" #: lib/pychess/Utils/repr.py:58 msgid "Because of adjudication by an admin. No rating changes have occurred." msgstr "" #: lib/pychess/Utils/repr.py:59 msgid "" "Because both players agreed to abort the game. No rating changes have " "occurred." msgstr "" #: lib/pychess/Utils/repr.py:60 msgid "Because of courtesy by a player. No rating changes have occurred." msgstr "" #: lib/pychess/Utils/repr.py:61 msgid "" "Because a player aborted the game. Either player can abort the game without " "the other's consent before the second move. No rating changes have occurred." msgstr "" #: lib/pychess/Utils/repr.py:62 msgid "" "Because a player disconnected and there are too few moves to warrant " "adjournment. No rating changes have occurred." msgstr "" #: lib/pychess/Utils/repr.py:63 msgid "Because the server was shut down. No rating changes have occurred." msgstr "" #: lib/pychess/Utils/repr.py:65 #, python-format msgid "Because the %(white)s engine died" msgstr "" #: lib/pychess/Utils/repr.py:66 #, python-format msgid "Because the %(black)s engine died" msgstr "" #: lib/pychess/Utils/repr.py:67 msgid "Because the connection to the server was lost" msgstr "" #: lib/pychess/Utils/repr.py:68 msgid "The reason is unknown" msgstr "" #: lib/pychess/Utils/TimeModel.py:229 msgid "min" msgstr "min" #: lib/pychess/Utils/TimeModel.py:231 msgid "sec" msgstr "seg" #: lib/pychess/Variants/asean.py:12 msgid "" "ASEAN: http://www.ncf-" "phil.org/downloadables/2014/May/Asean_chess/Laws_of_ASEAN_Chess_2011_Nov_26.doc" msgstr "" #: lib/pychess/Variants/asean.py:13 msgid "ASEAN" msgstr "" #: lib/pychess/Variants/asean.py:33 msgid "Makruk: http://en.wikipedia.org/wiki/Makruk" msgstr "" #: lib/pychess/Variants/asean.py:34 msgid "Makruk" msgstr "" #: lib/pychess/Variants/asean.py:60 msgid "Cambodian: http://www.khmerinstitute.org/culture/ok.html" msgstr "" #: lib/pychess/Variants/asean.py:61 msgid "Cambodian" msgstr "" #: lib/pychess/Variants/asean.py:86 msgid "" "Ai-Wok: http://www.open-" "aurec.com/wbforum/viewtopic.php?p=199364&sid=20963a1de2c164050de019e5ed6bf7c4#p199364" msgstr "" #: lib/pychess/Variants/asean.py:87 msgid "Ai-Wok" msgstr "" #: lib/pychess/Variants/asean.py:111 msgid "Sittuyin: http://en.wikipedia.org/wiki/Sittuyin" msgstr "" #: lib/pychess/Variants/asean.py:112 msgid "Sittuyin" msgstr "" #: lib/pychess/Variants/asymmetricrandom.py:12 msgid "" "FICS wild/4: http://www.freechess.org/Help/HelpFiles/wild.html\n" "* Randomly chosen pieces (two queens or three rooks possible)\n" "* Exactly one king of each color\n" "* Pieces placed randomly behind the pawns, SUBJECT TO THE CONSTRAINT THAT THE BISHOPS ARE BALANCED\n" "* No castling\n" "* Black's arrangement DOES NOT mirrors white's" msgstr "" #: lib/pychess/Variants/asymmetricrandom.py:18 msgid "Asymmetric Random" msgstr "" #: lib/pychess/Variants/atomic.py:14 msgid "FICS atomic: http://www.freechess.org/Help/HelpFiles/atomic.html" msgstr "" #: lib/pychess/Variants/blindfold.py:7 msgid "" "Classic chess rules with hidden figurines\n" "http://en.wikipedia.org/wiki/Blindfold_chess" msgstr "" #: lib/pychess/Variants/blindfold.py:9 #: lib/pychess/widgets/newGameDialog.py:264 msgid "Blindfold" msgstr "" #: lib/pychess/Variants/blindfold.py:18 msgid "" "Classic chess rules with hidden pawns\n" "http://en.wikipedia.org/wiki/Blindfold_chess" msgstr "" #: lib/pychess/Variants/blindfold.py:20 msgid "Hidden pawns" msgstr "" #: lib/pychess/Variants/blindfold.py:29 msgid "" "Classic chess rules with hidden pieces\n" "http://en.wikipedia.org/wiki/Blindfold_chess" msgstr "" #: lib/pychess/Variants/blindfold.py:31 msgid "Hidden pieces" msgstr "" #: lib/pychess/Variants/blindfold.py:40 msgid "" "Classic chess rules with all pieces white\n" "http://en.wikipedia.org/wiki/Blindfold_chess" msgstr "" #: lib/pychess/Variants/blindfold.py:42 msgid "All white" msgstr "" #: lib/pychess/Variants/bughouse.py:8 msgid "FICS bughouse: http://www.freechess.org/Help/HelpFiles/bughouse.html" msgstr "" #: lib/pychess/Variants/corner.py:12 msgid "" "http://brainking.com/en/GameRules?tp=2\n" "* Placement of the pieces on the 1st and 8th row are randomized\n" "* The king is in the right hand corner\n" "* Bishops must start on opposite color squares\n" "* Black's starting position is obtained by rotating white's position 180 degrees around the board's center\n" "* No castling" msgstr "" #: lib/pychess/Variants/corner.py:18 msgid "Corner" msgstr "" #: lib/pychess/Variants/crazyhouse.py:8 msgid "" "FICS crazyhouse: http://www.freechess.org/Help/HelpFiles/crazyhouse.html" msgstr "" #: lib/pychess/Variants/euroshogi.py:9 msgid "EuroShogi: http://en.wikipedia.org/wiki/EuroShogi" msgstr "" #: lib/pychess/Variants/euroshogi.py:10 msgid "EuroShogi" msgstr "" #: lib/pychess/Variants/fischerandom.py:18 msgid "" "http://en.wikipedia.org/wiki/Chess960\n" "FICS wild/fr: http://www.freechess.org/Help/HelpFiles/wild.html" msgstr "" #: lib/pychess/Variants/fischerandom.py:20 msgid "Fischer Random" msgstr "Fischer aleatòri" #: lib/pychess/Variants/kingofthehill.py:8 msgid "" "Bringing your king legally to the center (e4, d4, e5, d5) instantly wins the game!\n" "Normal rules apply in other cases and checkmate also ends the game." msgstr "" #: lib/pychess/Variants/kingofthehill.py:10 msgid "King of the hill" msgstr "" #: lib/pychess/Variants/knightodds.py:8 msgid "One player starts with one less knight piece" msgstr "" #: lib/pychess/Variants/knightodds.py:9 msgid "Knight odds" msgstr "Possibilitats del cavalièr" #: lib/pychess/Variants/losers.py:8 msgid "FICS losers: http://www.freechess.org/Help/HelpFiles/losers_chess.html" msgstr "" #: lib/pychess/Variants/normal.py:4 msgid "" "Classic chess rules\n" "http://en.wikipedia.org/wiki/Chess" msgstr "" #: lib/pychess/Variants/normal.py:6 lib/pychess/widgets/newGameDialog.py:157 msgid "Normal" msgstr "Normal" #: lib/pychess/Variants/pawnodds.py:8 msgid "One player starts with one less pawn piece" msgstr "" #: lib/pychess/Variants/pawnodds.py:9 msgid "Pawn odds" msgstr "Possibilitats del pion" #: lib/pychess/Variants/pawnspassed.py:11 msgid "" "FICS wild/8a: http://www.freechess.org/Help/HelpFiles/wild.html\n" "White pawns start on 5th rank and black pawns on the 4th rank" msgstr "" #: lib/pychess/Variants/pawnspassed.py:13 msgid "Pawns Passed" msgstr "Pions liures" #: lib/pychess/Variants/pawnspushed.py:10 msgid "" "FICS wild/8: http://www.freechess.org/Help/HelpFiles/wild.html\n" "Pawns start on 4th and 5th ranks rather than 2nd and 7th" msgstr "" #: lib/pychess/Variants/pawnspushed.py:12 msgid "Pawns Pushed" msgstr "" #: lib/pychess/Variants/queenodds.py:8 msgid "One player starts with one less queen piece" msgstr "" #: lib/pychess/Variants/queenodds.py:9 msgid "Queen odds" msgstr "" #: lib/pychess/Variants/randomchess.py:11 msgid "" "FICS wild/3: http://www.freechess.org/Help/HelpFiles/wild.html\n" "* Randomly chosen pieces (two queens or three rooks possible)\n" "* Exactly one king of each color\n" "* Pieces placed randomly behind the pawns\n" "* No castling\n" "* Black's arrangement mirrors white's" msgstr "" #: lib/pychess/Variants/randomchess.py:17 #: lib/pychess/widgets/TaskerManager.py:155 msgid "Random" msgstr "Aleatòri" #: lib/pychess/Variants/rookodds.py:8 msgid "One player starts with one less rook piece" msgstr "" #: lib/pychess/Variants/rookodds.py:9 msgid "Rook odds" msgstr "Possibilitats de la torre" #: lib/pychess/Variants/shuffle.py:11 msgid "" "xboard nocastle: http://home.hccnet.nl/h.g.muller/engine-intf.html#8\n" "FICS wild/2: http://www.freechess.org/Help/HelpFiles/wild.html\n" "* Random arrangement of the pieces behind the pawns\n" "* No castling\n" "* Black's arrangement mirrors white's" msgstr "" #: lib/pychess/Variants/suicide.py:11 msgid "" "FICS suicide: http://www.freechess.org/Help/HelpFiles/suicide_chess.html" msgstr "" #: lib/pychess/Variants/theban.py:10 msgid "" "Variant developed by Kai Laskos: " "http://talkchess.com/forum/viewtopic.php?t=40990" msgstr "" #: lib/pychess/Variants/theban.py:11 msgid "Theban" msgstr "" #: lib/pychess/Variants/threecheck.py:10 msgid "Win by giving check 3 times" msgstr "" #: lib/pychess/Variants/threecheck.py:11 msgid "Three-check" msgstr "" #: lib/pychess/Variants/upsidedown.py:10 msgid "" "FICS wild/5: http://www.freechess.org/Help/HelpFiles/wild.html\n" "http://en.wikipedia.org/wiki/Chess_variant#Chess_with_different_starting_positions\n" "Pawns start on their 7th rank rather than their 2nd rank!" msgstr "" #: lib/pychess/Variants/upsidedown.py:13 msgid "Upside Down" msgstr "Inversat" #: lib/pychess/Variants/wildcastle.py:10 msgid "" "xboard wildcastle http://home.hccnet.nl/h.g.muller/engine-intf.html#8\n" "FICS wild/0: http://www.freechess.org/Help/HelpFiles/wild.html\n" "* White has the typical set-up at the start.\n" "* Black's pieces are the same, except that the King and Queen are reversed,\n" "* so they are not on the same files as White's King and Queen.\n" "* Castling is done similarly to normal chess:\n" "* o-o-o indicates long castling and o-o short castling." msgstr "" #: lib/pychess/Variants/wildcastle.py:17 msgid "Wildcastle" msgstr "" #: lib/pychess/Variants/wildcastleshuffle.py:11 msgid "" "xboard wildcastle http://home.hccnet.nl/h.g.muller/engine-intf.html#8\n" "FICS wild/1: http://www.freechess.org/Help/HelpFiles/wild.html\n" "* In this variant both sides have the same set of pieces as in normal chess.\n" "* The white king starts on d1 or e1 and the black king starts on d8 or e8,\n" "* and the rooks are in their usual positions.\n" "* Bishops are always on opposite colors.\n" "* Subject to these constraints the position of the pieces on their first ranks is random.\n" "* Castling is done similarly to normal chess:\n" "* o-o-o indicates long castling and o-o short castling." msgstr "" #: lib/pychess/Variants/wildcastleshuffle.py:20 msgid "Wildcastle shuffle" msgstr "" #: lib/pychess/widgets/analyzegameDialog.py:85 msgid "Game analyzing in progress..." msgstr "" #: lib/pychess/widgets/analyzegameDialog.py:86 msgid "Do you want to abort it?" msgstr "" #: lib/pychess/widgets/analyzegameDialog.py:95 #: lib/pychess/widgets/gamewidget.py:202 lib/pychess/widgets/gamewidget.py:320 msgid "Abort" msgstr "" #: lib/pychess/widgets/ChatView.py:125 msgid "Observers" msgstr "" #: lib/pychess/widgets/ChatWindow.py:222 msgid "You have opened no conversations yet" msgstr "" #: lib/pychess/widgets/ChatWindow.py:254 msgid "Only registered users may talk to this channel" msgstr "" #: lib/pychess/widgets/ChatWindow.py:312 msgid "No conversation's selected" msgstr "" #: lib/pychess/widgets/ChatWindow.py:350 msgid "Loading player data" msgstr "" #: lib/pychess/widgets/ChatWindow.py:400 msgid "Receiving list of players" msgstr "" #: lib/pychess/widgets/ChatWindow.py:518 msgid "Friends" msgstr "" #: lib/pychess/widgets/ChatWindow.py:529 msgid "Admin" msgstr "" #: lib/pychess/widgets/ChatWindow.py:540 msgid "More channels" msgstr "" #: lib/pychess/widgets/ChatWindow.py:548 msgid "More players" msgstr "" #: lib/pychess/widgets/ChatWindow.py:558 msgid "Computers" msgstr "" #: lib/pychess/widgets/ChatWindow.py:568 msgid "BlindFold" msgstr "" #: lib/pychess/widgets/ChatWindow.py:578 msgid "Guests" msgstr "" #: lib/pychess/widgets/ChatWindow.py:805 msgid "Conversations" msgstr "Discussions" #: lib/pychess/widgets/ChatWindow.py:807 msgid "Conversation info" msgstr "Informacions de la discussion" #: lib/pychess/widgets/enginesDialog.py:152 msgid "Select engine" msgstr "" #: lib/pychess/widgets/enginesDialog.py:156 msgid "Executable files" msgstr "" #: lib/pychess/widgets/enginesDialog.py:176 #: lib/pychess/widgets/enginesDialog.py:210 #: lib/pychess/widgets/enginesDialog.py:235 #, python-format msgid "Unable to add %s" msgstr "" #: lib/pychess/widgets/enginesDialog.py:177 msgid "wine not installed" msgstr "" #: lib/pychess/widgets/enginesDialog.py:211 #: lib/pychess/widgets/enginesDialog.py:236 msgid "There is something wrong with this executable" msgstr "" #: lib/pychess/widgets/enginesDialog.py:266 msgid "Select working directory" msgstr "" #: lib/pychess/widgets/gamenanny.py:115 #, python-format msgid " invalid engine move: %s" msgstr "" #: lib/pychess/widgets/gamenanny.py:134 msgid "Offer Rematch" msgstr "" #: lib/pychess/widgets/gamenanny.py:136 lib/pychess/widgets/gamenanny.py:147 #, python-format msgid "Observe %s" msgstr "" #: lib/pychess/widgets/gamenanny.py:168 msgid "Play Rematch" msgstr "" #: lib/pychess/widgets/gamenanny.py:171 msgid "Undo one move" msgstr "" #: lib/pychess/widgets/gamenanny.py:173 msgid "Undo two moves" msgstr "" #: lib/pychess/widgets/gamenanny.py:203 msgid "The game is paused" msgstr "" #: lib/pychess/widgets/gamenanny.py:221 lib/pychess/widgets/gamenanny.py:222 msgid "Loaded game" msgstr "Partida cargada" #: lib/pychess/widgets/gamenanny.py:228 msgid "Saved game" msgstr "Partidas salvadas" #: lib/pychess/widgets/gamenanny.py:232 msgid "Analyzer started" msgstr "" #: lib/pychess/widgets/gamenanny.py:281 msgid "You sent an abort offer" msgstr "" #: lib/pychess/widgets/gamenanny.py:283 msgid "You sent an adjournment offer" msgstr "" #: lib/pychess/widgets/gamenanny.py:285 msgid "You sent a draw offer" msgstr "Avètz prepausat l'ex-aequo" #: lib/pychess/widgets/gamenanny.py:287 msgid "You sent a pause offer" msgstr "" #: lib/pychess/widgets/gamenanny.py:289 msgid "You sent a resume offer" msgstr "" #: lib/pychess/widgets/gamenanny.py:291 msgid "You sent an undo offer" msgstr "" #: lib/pychess/widgets/gamenanny.py:293 msgid "You asked your opponent to move" msgstr "" #: lib/pychess/widgets/gamenanny.py:305 #, python-format msgid "Engine, %s, has died" msgstr "Lo motor, %s, s'es arrestat" #: lib/pychess/widgets/gamenanny.py:306 msgid "" "PyChess has lost connection to the engine, probably because it has died.\n" "\n" "You can try to start a new game with the engine, or try to play against another one." msgstr "" #: lib/pychess/widgets/gamewidget.py:204 msgid "" "This game can be automatically aborted without rating loss because there has" " not yet been two moves made" msgstr "" #: lib/pychess/widgets/gamewidget.py:206 msgid "Offer Abort" msgstr "" #: lib/pychess/widgets/gamewidget.py:208 msgid "" "Your opponent must agree to abort the game because there has been two or " "more moves made" msgstr "" #: lib/pychess/widgets/gamewidget.py:226 msgid "This game can not be adjourned because one or both players are guests" msgstr "" #: lib/pychess/widgets/gamewidget.py:243 msgid "Claim Draw" msgstr "" #: lib/pychess/widgets/gamewidget.py:325 msgid "Pause" msgstr "" #: lib/pychess/widgets/gamewidget.py:326 msgid "Resume" msgstr "" #: lib/pychess/widgets/gamewidget.py:328 msgid "Offer Pause" msgstr "" #: lib/pychess/widgets/gamewidget.py:329 msgid "Offer Resume" msgstr "" #: lib/pychess/widgets/gamewidget.py:333 msgid "Undo" msgstr "" #: lib/pychess/widgets/gamewidget.py:335 msgid "Offer Undo" msgstr "" #: lib/pychess/widgets/gamewidget.py:550 msgid " has lagged for 30 seconds" msgstr "" #: lib/pychess/widgets/gamewidget.py:566 msgid " is lagging heavily but hasn't disconnected" msgstr "" #: lib/pychess/widgets/gamewidget.py:567 msgid "Continue to wait for opponent, or try to adjourn the game?" msgstr "" #: lib/pychess/widgets/gamewidget.py:575 msgid "Wait" msgstr "" #: lib/pychess/widgets/gamewidget.py:576 msgid "Adjourn" msgstr "" #: lib/pychess/widgets/gamewidget.py:648 msgid "Jump to initial position" msgstr "" #: lib/pychess/widgets/gamewidget.py:653 msgid "Step back one move" msgstr "" #: lib/pychess/widgets/gamewidget.py:658 msgid "Go back to the main line" msgstr "" #: lib/pychess/widgets/gamewidget.py:664 msgid "Step forward one move" msgstr "" #: lib/pychess/widgets/gamewidget.py:669 msgid "Jump to latest position" msgstr "" #: lib/pychess/widgets/gamewidget.py:903 msgid "PyChess was unable to load your panel settings" msgstr "" #: lib/pychess/widgets/gamewidget.py:904 msgid "" "Your panel settings have been reset. If this problem repeats, you should " "report it to the developers" msgstr "" #: lib/pychess/widgets/ionest.py:67 lib/pychess/widgets/newGameDialog.py:389 #: lib/pychess/widgets/TaskerManager.py:210 msgid "You" msgstr "" #: lib/pychess/widgets/ionest.py:70 lib/pychess/widgets/newGameDialog.py:390 #: lib/pychess/widgets/preferencesDialog.py:61 #: lib/pychess/widgets/TaskerManager.py:213 msgid "Guest" msgstr "Convidat" #: lib/pychess/widgets/ionest.py:93 msgid "Error loading game" msgstr "" #: lib/pychess/widgets/ionest.py:127 lib/pychess/widgets/newGameDialog.py:480 msgid "Open Game" msgstr "Dobrir una partida" #: lib/pychess/widgets/ionest.py:137 msgid "All Files" msgstr "Totes los fichièrs" #: lib/pychess/widgets/ionest.py:140 msgid "Detect type automatically" msgstr "Detectar lo tipe automaticament" #: lib/pychess/widgets/ionest.py:146 msgid "All Chess Files" msgstr "Totes los fichièrs d'escacs" #: lib/pychess/widgets/ionest.py:228 msgid "Save Game" msgstr "Salvar La Partida" #: lib/pychess/widgets/ionest.py:228 msgid "Export position" msgstr "" #: lib/pychess/widgets/ionest.py:232 lib/pychess/widgets/ionest.py:360 msgid "vs." msgstr "" #: lib/pychess/widgets/ionest.py:249 #, python-format msgid "Unknown file type '%s'" msgstr "Tipe de fichièr desconegut '%s'" #: lib/pychess/widgets/ionest.py:250 #, python-format msgid "" "Was unable to save '%(uri)s' as PyChess doesn't know the format " "'%(ending)s'." msgstr "" #: lib/pychess/widgets/ionest.py:266 #, python-format msgid "Unable to save file '%s'" msgstr "Impossible de salvar lo fichièr '%s'" #: lib/pychess/widgets/ionest.py:268 msgid "" "You don't have the necessary rights to save the file.\n" "Please ensure that you have given the right path and try again." msgstr "" #: lib/pychess/widgets/ionest.py:276 msgid "_Replace" msgstr "_Remplaçar" #: lib/pychess/widgets/ionest.py:280 msgid "File exists" msgstr "Lo fichièr existís" #: lib/pychess/widgets/ionest.py:282 #, python-format msgid "" "A file named '%s' already exists. Would you like to replace " "it?" msgstr "" #: lib/pychess/widgets/ionest.py:283 #, python-format msgid "" "The file already exists in '%s'. If you replace it, its content will be " "overwritten." msgstr "" #: lib/pychess/widgets/ionest.py:299 msgid "Could not save the file" msgstr "Impossible de salvar lo fichièr" #: lib/pychess/widgets/ionest.py:300 msgid "PyChess was not able to save the game" msgstr "PyChess es pas capable de salvar la partida" #: lib/pychess/widgets/ionest.py:301 #, python-format msgid "The error was: %s" msgstr "L'error es : %s" #: lib/pychess/widgets/ionest.py:325 #, python-format msgid "There is %d game with unsaved moves." msgid_plural "There are %d games with unsaved moves." msgstr[0] "" msgstr[1] "" #: lib/pychess/widgets/ionest.py:328 msgid "Save moves before closing?" msgstr "" #: lib/pychess/widgets/ionest.py:339 msgid "Unable to save to configured file. Save the games before closing?" msgstr "" #: lib/pychess/widgets/ionest.py:366 #, python-format msgid "_Save %d document" msgid_plural "_Save %d documents" msgstr[0] "" msgstr[1] "" #: lib/pychess/widgets/ionest.py:412 msgid "Save the current game before you close it?" msgstr "" #: lib/pychess/widgets/ionest.py:420 msgid "" "Unable to save to configured file. Save the current game before you close " "it?" msgstr "" #: lib/pychess/widgets/ionest.py:434 msgid "" "It is not possible later to continue the game,\n" "if you don't save it." msgstr "" #: lib/pychess/widgets/LogDialog.py:26 msgid "PyChess Information Window" msgstr "" #: lib/pychess/widgets/LogDialog.py:184 lib/pychess/widgets/LogDialog.py:188 msgid "of" msgstr "" #: lib/pychess/widgets/newGameDialog.py:84 #: lib/pychess/widgets/newGameDialog.py:85 msgid "Human Being" msgstr "Uman" #: lib/pychess/widgets/newGameDialog.py:155 msgid "Rapid" msgstr "" #: lib/pychess/widgets/newGameDialog.py:224 msgid "Minutes:" msgstr "Minutas :" #: lib/pychess/widgets/newGameDialog.py:228 msgid "Gain:" msgstr "Ganh :" #: lib/pychess/widgets/newGameDialog.py:241 #, python-format msgid "%(name)s %(minutes)d min + %(gain)d sec/move" msgstr "" #: lib/pychess/widgets/newGameDialog.py:244 #, python-format msgid "%(name)s %(minutes)d min %(gain)d sec/move" msgstr "" #: lib/pychess/widgets/newGameDialog.py:247 #, python-format msgid "%(name)s %(minutes)d min" msgstr "" #: lib/pychess/widgets/newGameDialog.py:265 msgid "Odds" msgstr "" #: lib/pychess/widgets/newGameDialog.py:269 msgid "Asian variants" msgstr "" #: lib/pychess/widgets/newGameDialog.py:301 msgid " chess" msgstr "" #: lib/pychess/widgets/newGameDialog.py:682 msgid "Type or paste PGN game or FEN positions here" msgstr "" #: lib/pychess/widgets/newGameDialog.py:725 msgid "Enter Game" msgstr "Entrar dins la partida" #: lib/pychess/widgets/preferencesDialog.py:123 msgid "Select book file" msgstr "" #: lib/pychess/widgets/preferencesDialog.py:128 msgid "Opening books" msgstr "" #: lib/pychess/widgets/preferencesDialog.py:156 msgid "Select Gaviota TB path" msgstr "" #: lib/pychess/widgets/preferencesDialog.py:331 msgid "Open Sound File" msgstr "Dobrir lo fichièr de son" #: lib/pychess/widgets/preferencesDialog.py:341 msgid "Sound files" msgstr "" #: lib/pychess/widgets/preferencesDialog.py:485 msgid "Undescribed panel" msgstr "" #: lib/pychess/widgets/preferencesDialog.py:678 msgid "Select auto save path" msgstr "" #: lib/pychess/widgets/tipOfTheDay.py:51 msgid "" "You can start a new game by Game > New Game, in New Game " "window do you can choose Players, Time Control and Chess " "Variants." msgstr "" #: lib/pychess/widgets/tipOfTheDay.py:52 msgid "" "You can choose from 20 different difficulties to play against the computer." msgstr "" #: lib/pychess/widgets/tipOfTheDay.py:53 msgid "" "Chess Variants are like the pieces of the last line will be placed on the " "board." msgstr "" #: lib/pychess/widgets/tipOfTheDay.py:54 msgid "" "To save a game Game > Save Game As, give the filename and " "choose where you want to be saved. At the bottom choose extension type of " "the file, and Save." msgstr "" #: lib/pychess/widgets/tipOfTheDay.py:55 msgid "" "Do you know that you can call flag when the clock is with you, " "Actions > Call Flag." msgstr "" #: lib/pychess/widgets/tipOfTheDay.py:56 msgid "Pressing Ctrl+Z to offer opponent the possible rollback moves." msgstr "" #: lib/pychess/widgets/tipOfTheDay.py:57 msgid "" "To play on Fullscreen mode, just type F11. Coming back, F11 " "again." msgstr "" #: lib/pychess/widgets/tipOfTheDay.py:58 msgid "Hint mode analyzing your game, enable this type Ctrl+H." msgstr "" #: lib/pychess/widgets/tipOfTheDay.py:59 msgid "" "Spy mode analyzing the oponnent game, enable this type Ctrl+Y." msgstr "" #: lib/pychess/widgets/tipOfTheDay.py:60 msgid "" "You can play chess listening to the sounds of the game, for that, " "Settings > Preferences > Sound tab, enable Use " "sounds in PyChess and choose your preferred sounds." msgstr "" #: lib/pychess/widgets/tipOfTheDay.py:61 msgid "" "Do you know that you can help translate Pychess in your language, " "Help > Translate Pychess." msgstr "" #: lib/pychess/widgets/tipOfTheDay.py:62 msgid "" "Do you know that it is possible to finish a chess game in just 2 turns?" msgstr "" #: lib/pychess/widgets/tipOfTheDay.py:63 msgid "" "Do you know that the number of possible chess games exceeds the number of " "atoms in the Universe?" msgstr "" #: lib/pychess/ic/managers/ChatManager.py:184 msgid "Shout" msgstr "" #: lib/pychess/ic/managers/ChatManager.py:185 msgid "Chess Shout" msgstr "" #: lib/pychess/ic/managers/ChatManager.py:195 #, python-format msgid "Unofficial channel %d" msgstr "" #: lib/pychess/Utils/lutils/LBoard.py:152 #, python-format msgid "" "FEN needs 6 data fields. \n" "\n" "%s" msgstr "" #: lib/pychess/Utils/lutils/LBoard.py:154 #, python-format msgid "" "FEN needs at least 2 data fields in fenstr. \n" "\n" "%s" msgstr "" #: lib/pychess/Utils/lutils/LBoard.py:175 #, python-format msgid "" "Needs 7 slashes in piece placement field. \n" "\n" "%s" msgstr "" #: lib/pychess/Utils/lutils/LBoard.py:178 #, python-format msgid "" "Active color field must be one of w or b. \n" "\n" "%s" msgstr "" #: lib/pychess/Utils/lutils/LBoard.py:189 #, python-format msgid "" "Castling availability field is not legal. \n" "\n" "%s" msgstr "" #: lib/pychess/Utils/lutils/LBoard.py:192 #, python-format msgid "" "En passant cord is not legal. \n" "\n" "%s" msgstr "" #: lib/pychess/Utils/lutils/lmove.py:260 msgid "invalid promoted piece" msgstr "" #: lib/pychess/Utils/lutils/lmove.py:272 msgid "the move needs a piece and a cord" msgstr "" #: lib/pychess/Utils/lutils/lmove.py:306 lib/pychess/Utils/lutils/lmove.py:556 msgid "promotion move without promoted piece is incorrect" msgstr "" #: lib/pychess/Utils/lutils/lmove.py:312 #, python-format msgid "the captured cord (%s) is incorrect" msgstr "" #: lib/pychess/Utils/lutils/lmove.py:323 #, python-format msgid "the end cord (%s) is incorrect" msgstr "" #: lib/pychess/Utils/lutils/strateval.py:24 sidepanel/commentPanel.py:191 #: sidepanel/commentPanel.py:208 msgid "and" msgstr "" #: lib/pychess/Utils/lutils/strateval.py:43 msgid "draws" msgstr "Egalitat" #: lib/pychess/Utils/lutils/strateval.py:45 msgid "mates" msgstr "" #: lib/pychess/Utils/lutils/strateval.py:49 msgid "puts opponent in check" msgstr "met l'adversari en fracàs" #: lib/pychess/Utils/lutils/strateval.py:73 msgid "improves king safety" msgstr "melhora la seguretat del rei" #: lib/pychess/Utils/lutils/strateval.py:75 msgid "slightly improves king safety" msgstr "" #: lib/pychess/Utils/lutils/strateval.py:108 msgid "moves a rook to an open file" msgstr "" #: lib/pychess/Utils/lutils/strateval.py:109 msgid "moves an rook to a half-open file" msgstr "" #: lib/pychess/Utils/lutils/strateval.py:119 #: lib/pychess/Utils/lutils/strateval.py:121 #: lib/pychess/Utils/lutils/strateval.py:124 #: lib/pychess/Utils/lutils/strateval.py:126 #, python-format msgid "moves bishop into fianchetto: %s" msgstr "" #: lib/pychess/Utils/lutils/strateval.py:132 #, python-format msgid "promotes a Pawn to a %s" msgstr "" #: lib/pychess/Utils/lutils/strateval.py:135 msgid "castles" msgstr "" #: lib/pychess/Utils/lutils/strateval.py:158 msgid "takes back material" msgstr "" #: lib/pychess/Utils/lutils/strateval.py:162 #: lib/pychess/Utils/lutils/strateval.py:170 msgid "sacrifies material" msgstr "sacrifica una pèça" #: lib/pychess/Utils/lutils/strateval.py:164 msgid "exchanges material" msgstr "" #: lib/pychess/Utils/lutils/strateval.py:166 msgid "captures material" msgstr "captura una pèça" #: lib/pychess/Utils/lutils/strateval.py:291 #, python-format msgid "rescues a %s" msgstr "" #: lib/pychess/Utils/lutils/strateval.py:294 #, python-format msgid "threatens to win material by %s" msgstr "" #: lib/pychess/Utils/lutils/strateval.py:296 #, python-format msgid "increases the pressure on %s" msgstr "fa pression sus %s" #: lib/pychess/Utils/lutils/strateval.py:298 #, python-format msgid "defends %s" msgstr "defend %s" #: lib/pychess/Utils/lutils/strateval.py:336 #, python-format msgid "pins an enemy %(oppiece)s on the %(piece)s at %(cord)s" msgstr "" #: lib/pychess/Utils/lutils/strateval.py:369 #, python-format msgid "White has a new piece in outpost: %s" msgstr "" #: lib/pychess/Utils/lutils/strateval.py:377 #, python-format msgid "Black has a new piece in outpost: %s" msgstr "" #: lib/pychess/Utils/lutils/strateval.py:416 #, python-format msgid "%(color)s has a new passed pawn on %(cord)s" msgstr "" #: lib/pychess/Utils/lutils/strateval.py:470 msgid "half-open" msgstr "" #: lib/pychess/Utils/lutils/strateval.py:472 #, python-format msgid "in the %(x)s%(y)s file" msgstr "" #: lib/pychess/Utils/lutils/strateval.py:474 #, python-format msgid "in the %(x)s%(y)s files" msgstr "" #: lib/pychess/Utils/lutils/strateval.py:477 #, python-format msgid "%(color)s got a double pawn %(place)s" msgstr "" #: lib/pychess/Utils/lutils/strateval.py:478 #, python-format msgid "%(color)s got new double pawns %(place)s" msgstr "" #: lib/pychess/Utils/lutils/strateval.py:485 #, python-format msgid "%(color)s got an isolated pawn in the %(x)s file" msgid_plural "%(color)s got isolated pawns in the %(x)s files" msgstr[0] "" msgstr[1] "" #: lib/pychess/Utils/lutils/strateval.py:492 #, python-format msgid "%s moves pawns into stonewall formation" msgstr "" #: lib/pychess/Utils/lutils/strateval.py:507 #: lib/pychess/Utils/lutils/strateval.py:514 #, python-format msgid "%s can no longer castle" msgstr "" #: lib/pychess/Utils/lutils/strateval.py:508 #: lib/pychess/Utils/lutils/strateval.py:515 #, python-format msgid "%s can no longer castle in queenside" msgstr "" #: lib/pychess/Utils/lutils/strateval.py:510 #: lib/pychess/Utils/lutils/strateval.py:517 #, python-format msgid "%s can no longer castle in kingside" msgstr "" #: lib/pychess/Utils/lutils/strateval.py:551 #, python-format msgid "%(opcolor)s has a new trapped bishop on %(cord)s" msgstr "" #: lib/pychess/Utils/lutils/strateval.py:573 #, python-format msgid "develops a pawn: %s" msgstr "" #: lib/pychess/Utils/lutils/strateval.py:574 #, python-format msgid "brings a pawn closer to the backrow: %s" msgstr "" #: lib/pychess/Utils/lutils/strateval.py:591 #, python-format msgid "brings a %(piece)s closer to enemy king: %(cord)s" msgstr "" #: lib/pychess/Utils/lutils/strateval.py:594 #, python-format msgid "develops a %(piece)s: %(cord)s" msgstr "" #: lib/pychess/Utils/lutils/strateval.py:612 #, python-format msgid "places a %(piece)s more active: %(cord)s" msgstr "" #: lib/pychess/Utils/lutils/strateval.py:638 msgid "White should do pawn storm in right" msgstr "" #: lib/pychess/Utils/lutils/strateval.py:640 msgid "Black should do pawn storm in left" msgstr "" #: lib/pychess/Utils/lutils/strateval.py:643 msgid "White should do pawn storm in left" msgstr "" #: lib/pychess/Utils/lutils/strateval.py:645 msgid "Black should do pawn storm in right" msgstr "" #: lib/pychess/Utils/lutils/strateval.py:671 msgid "Black has a rather cramped position" msgstr "" #: lib/pychess/Utils/lutils/strateval.py:673 msgid "Black has a slightly cramped position" msgstr "" #: lib/pychess/Utils/lutils/strateval.py:675 msgid "White has a rather cramped position" msgstr "" #: lib/pychess/Utils/lutils/strateval.py:677 msgid "White has a slightly cramped position" msgstr "" #: sidepanel/annotationPanel.py:26 msgid "Annotation" msgstr "" #: sidepanel/annotationPanel.py:29 msgid "Annotated game" msgstr "" #: sidepanel/annotationPanel.py:236 msgid "Copy PGN" msgstr "" #: sidepanel/annotationPanel.py:249 msgid "Add start comment" msgstr "" #: sidepanel/annotationPanel.py:254 msgid "Add comment" msgstr "" #: sidepanel/annotationPanel.py:258 sidepanel/annotationPanel.py:316 msgid "Edit comment" msgstr "" #: sidepanel/annotationPanel.py:269 msgid "Forced move" msgstr "" #: sidepanel/annotationPanel.py:274 msgid "Add move symbol" msgstr "" #: sidepanel/annotationPanel.py:280 msgid "Unclear position" msgstr "" #: sidepanel/annotationPanel.py:289 msgid "Zugzwang" msgstr "" #: sidepanel/annotationPanel.py:290 msgid "Development adv." msgstr "" #: sidepanel/annotationPanel.py:291 msgid "Initiative" msgstr "" #: sidepanel/annotationPanel.py:292 msgid "With attack" msgstr "" #: sidepanel/annotationPanel.py:293 msgid "Compensation" msgstr "" #: sidepanel/annotationPanel.py:294 msgid "Counterplay" msgstr "" #: sidepanel/annotationPanel.py:295 msgid "Time pressure" msgstr "" #: sidepanel/annotationPanel.py:300 msgid "Add evaluation symbol" msgstr "" #: sidepanel/annotationPanel.py:304 msgid "Remove symbols" msgstr "" #: sidepanel/annotationPanel.py:911 #, python-format msgid "round %s" msgstr "" #: sidepanel/bookPanel.py:21 msgid "Hints" msgstr "" #: sidepanel/bookPanel.py:25 msgid "" "The hint panel will provide computer advice during each stage of the game" msgstr "" #: sidepanel/bookPanel.py:27 msgid "Official PyChess panel." msgstr "" #: sidepanel/bookPanel.py:87 msgid "Opening Book" msgstr "Bibliotèca de boberturas" #: sidepanel/bookPanel.py:88 msgid "" "The opening book will try to inspire you during the opening phase of the " "game by showing you common moves made by chess masters" msgstr "" #: sidepanel/bookPanel.py:139 #, python-format msgid "Analysis by %s" msgstr "" #: sidepanel/bookPanel.py:140 #, python-format msgid "" "%s will try to predict which move is best and which side has the advantage" msgstr "" #: sidepanel/bookPanel.py:142 #, python-format msgid "Threat analysis by %s" msgstr "" #: sidepanel/bookPanel.py:143 #, python-format msgid "" "%s will identify what threats would exist if it were your opponent's turn to" " move" msgstr "" #: sidepanel/bookPanel.py:159 sidepanel/bookPanel.py:269 msgid "Calculating..." msgstr "" #: sidepanel/bookPanel.py:300 msgid "" "Engine scores are in units of pawns, from White's point of view. Double " "clicking on analysis lines you can insert them into Annotation panel as " "variations." msgstr "" #: sidepanel/bookPanel.py:302 msgid "" "Adding suggestions can help you find ideas, but slows down the computer's " "analysis." msgstr "" #: sidepanel/bookPanel.py:311 msgid "Endgame Table" msgstr "" #: sidepanel/bookPanel.py:315 msgid "" "The endgame table will show exact analysis when there are few pieces on the " "board." msgstr "" #: sidepanel/bookPanel.py:364 sidepanel/bookPanel.py:367 #, python-format msgid "Mate in %d" msgstr "" #: sidepanel/bookPanel.py:554 msgid "" "In this position,\n" "there is no legal move." msgstr "" #: sidepanel/chatPanel.py:21 msgid "" "The chat panel lets you communicate with your opponent during the game, " "assuming he or she is interested" msgstr "" #: sidepanel/commentPanel.py:16 msgid "Comments" msgstr "Comentaris" #: sidepanel/commentPanel.py:20 msgid "The comments panel will try to analyze and explain the moves played" msgstr "" #: sidepanel/commentPanel.py:121 msgid "Initial position" msgstr "Posicion iniciala" #: sidepanel/commentPanel.py:254 #, python-format msgid "%(color)s moves a %(piece)s to %(cord)s" msgstr "" #: sidepanel/engineOutputPanel.py:15 msgid "Engines" msgstr "" #: sidepanel/engineOutputPanel.py:20 msgid "" "The engine output panel shows the thinking output of chess engines (computer" " players) during a game" msgstr "" #: sidepanel/engineOutputPanel.py:44 msgid "No chess engines (computer players) are participating in this game." msgstr "" #: sidepanel/historyPanel.py:10 msgid "Move History" msgstr "Istoric dels movements" #: sidepanel/historyPanel.py:13 msgid "" "The moves sheet keeps track of the players' moves and lets you navigate " "through the game history" msgstr "" #: sidepanel/scorePanel.py:15 msgid "Score" msgstr "Marca" #: sidepanel/scorePanel.py:19 msgid "" "The score panel tries to evaluate the positions and shows you a graph of the" " game progress" msgstr "" pychess-0.12.2/lang/oc/LC_MESSAGES/pychess.mo0000644000175000017470000003315312653231273020703 0ustar tamasusers00000000000000Q  ! ,6;BVt|~#%9'X#$3 Xd} &C7S*( , 8F V `jl#  * 3>Sdz       "17HXg x        (9@ I Tachqz      ! & 0=BG_nv~  #     +2 7AH Q [ itz     5L^w   * 2 : B N \ s w {         ! !! ! '!2! ;!G! N!X!^! o! z! !! ! !!! !!!!" "$" *""4"+W"""""""""" $ $$ $$$$%%%!%?%_%%d%%%<%%% &&,& <&H&h&|&&& &&&&'"('K' \'-j'M'='7$(2\(((((( ))-) A)L)N)!k))))))) )))))** '*2*D*Z*m** * ** **+ +5+I+ `+m+u+x+++++++,(,1, 8,E,J,M,U,g,i, m,w,,,,, ,,,- !- ,-9-P-R-V-f-u-|- ----- - --..7.Q.W.Y.^. u...*..... ./ /1/[F/ ///// / /////00 '030E0\0n0 t00000001 !1 /1 91 C1P1V1Y1B\11"111 2*2 .2O2`2o222 2 2 2222233 3"3(3D3 W3a3j3|3%333333334 4%4>4F4W4`4 |44 4 4444445 .595K5 ^5h5 q5*{5=55666+6F6[6 _6m%:E\26&!4<1$lK@c 7P5Q ZH3;Cs9o q{0u8i=Y LBOrzWA|/,hdgx}w'")nt#jMF^v([pk>b.?aT_IS XR~-*` De]fN+GUyVJ Gain: + %d sec min%d min%s returns an error'%s' is not a registered name(Blitz)*0 Players Ready0 of 010 min + 6 sec/move, 1400↑, White10 min + 6 sec/move, White12002 min, Fischer Random, 1800↓, Black5 min5 min, 1200-1800, ManualConnect to the Free Online Chess ServerPromote pawn to what?AnalyzingAnimationChess VariantDate of gameEnter Game NotationGame dataInitial PositionName of _first human player:Name of s_econd human player:NewsOpponent StrengthOptionsPlay Sound When...PlayersTime ControlToolsYour ColorEngine, %s, has diedPyChess is discovering your engines. Please wait.PyChess was not able to save the gameUnable to save file '%s'Unknown file type '%s'Challenge:A player _checks:A player _moves:A player c_aptures:About ChessAdministratorAll Chess FilesAll FilesAvailableBBecause %(loser)s resignedBecause of adjudication by an adminBeepBishopBlackBlitzBlitz:CCenter:Challenge: Challenge: Chess GameChess PositionClockClose _without SavingCommentsConnectingConnecting to serverConnection ErrorConnection was closedConversation infoConversationsCould not save the fileCreate SeekDate/TimeDetect type automaticallyDiedEdit SeekEmailEnter GameEvent:ExaminingFMFile existsFischer RandomGain:Game informationGame is _drawn:Game is _lost:Game is _set-up:Game is _won:GuestHideHow to PlayHuman BeingIMIdleInitial positionKKingKnightKnight oddsLeave _FullscreenLightningLoaded gameLocal EventLocal SiteLog on ErrorLog on as _GuestManualMinutes:Minutes: Move HistoryNNameNew GameNo soundNormalNot AvailableObserveObserved _ends:Offer _AbortOffer _DrawOffer _PauseOfflineOnlineOpen GameOpen Sound FileOpening BookOpponent's strength: OtherPPawnPawn oddsPawns PassedPingPlayPlay normal chess rulesPlayer _RatingPlayingPo_rts:Pre_viewPreferencesPrivatePromotionPyChess - Connect to Internet ChessPyChess - Internet Chess: FICSPyChess.py:QQueenQuit PyChessRR_esignRandomRatedRated gameRatingRookRook oddsRound:S_ign upSave GameSave Game _AsSaved gameScoreSearch:Seek _GraphSelect sound file...Send seekShow tips at startupShuffleSimple Chess PositionSite:Sp_y modeSpentStandardStandard:StatusTDTMThe connection was broken - got "end of file" messageThe error was: %sThe game ended in a drawThe game has been abortedThe game has been adjournedThe game has been killedTimeTime control: Tip of the DayTolerance:Translate PyChessTypeUnable to accept %sUninstallUnknownUnratedUntimedUpside DownUse _analyzerUse _inverted analyzerWGMWIMWelcomeWhiteYou sent a draw offerYour strength: _Accept_Actions_Black player:_Call Flag_Clear Seeks_Decline_Fullscreen_Game_Game List_General_Help_Hint mode_Load Game_Log Off_Log Viewer_Name:_New Game_Next_Observed moves:_Password:_Player List_Previous_Replace_Rotate Board_Save Game_Seeks / Challenges_Sounds_Start Game_Use sounds in PyChess_View_White player:captures materialdefends %sdrawsgnuchess:http://en.wikipedia.org/wiki/Chesshttp://en.wikipedia.org/wiki/Rules_of_chessimproves king safetyincreases the pressure on %sminonline in totalputs opponent in checksacrifies materialsecwindow1Project-Id-Version: pychess Report-Msgid-Bugs-To: POT-Creation-Date: 2016-01-27 13:28+0100 PO-Revision-Date: 2016-01-28 08:56+0000 Last-Translator: slav0nic Language-Team: Occitan (post 1500) (http://www.transifex.com/gbtami/pychess/language/oc/) MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Language: oc Plural-Forms: nplurals=2; plural=(n > 1); Ganh : + %d seg min%d minutas%s torna una error'%s' es pas un nom enregistrat(Blitz)*0 Jogaires prèstes0 de 010 min + 6 s/còp, 1400↑, Blanc10 min + 6seg/movement , Blancs12002 min, Fischer Random, 1800↓, Negre5 min5 min, 1200-1800, ManualConnexion al servidor liure en linha ChessPromòure pion en ?AnalisiAnimacionVariantaDataEntrar la nòta del jòcInformacionsPosicion InicialaNom del _primièr jogaireNom del _segond jogaireNòvasFòrça de l'adversariOpcionsJogar un son quand...JogairesParamètres del cronomètreEsplechesVòstra colorLo motor, %s, s'es arrestatPyChess recèrca los motors de jòc disponibles. Pacientatz.PyChess es pas capable de salvar la partidaImpossible de salvar lo fichièr '%s'Tipe de fichièr desconegut '%s'Desfiar :Verificacion _JogaireUn jogaire se _desplaça :Un jogaire c_aptura :A Prepaus dels EscacsAdministradorTotes los fichièrs d'escacsTotes los fichièrsDisponibleFPerque %(loser)s a abandonatPer arbitratge d'un administratorBipFòlNegreRapidBlitz :°CCentrar :Demanda d'accès : Desfiar : Partida d'escacsPosicion d'EscacRelòtgeTampar _sens enregistrarComentarisConnexion en corsConnexion al servidorError de connexionLa connexion es estada tampadaInformacions de la discussionDiscussionsImpossible de salvar lo fichièrCrear una requèstaData / oraDetectar lo tipe automaticamentMòrtasEditar una requèstaCorrièr electronicEntrar dins la partidaEveniment :AnalisiFMLo fichièr existísFischer aleatòriGanh :Informacions Sus La PartidaLa partida es _ex-aequoLa partida es _perduda :La partida es _configurada :La partida es _ganhadaConvidatAmagarCossí jogarUmanIMInactiuPosicion inicialaRReiCavalièrPossibilitats del cavalièrQuitar lo mòde _ecran completLhaucesPartida cargadaEveniment localSite localError a l'autentificacionSe connectar coma convidatManualMinutas :Minutas : Istoric dels movementsNNomPartida novèlaPas cap de sonNormalPas disponibleObservacion_Fin observada :Prepausar un _abandonPrepausar _ex-aequo_PausaDesconnectatEn marchaDobrir una partidaDobrir lo fichièr de sonBibliotèca de boberturasNivèl de l'adversari : AutrePPionPossibilitats del pionPions liuresPingAviarJogar amb las règlas normalas dels escacsJogaire _NòtaEn cors de lecturaPòrts :Pre_visualizacionPreferénciasPrivatPromocionPyChess - Connexion al jòc d'escacs sus internetPyChess - Jòcs d'escacs sus internet : FICS (servidor internet gratuit per jòcs d'escacs)PyChess.py:DReinaQuitar PyChess.RAbandonarAleatòriNotatPartida amb classamentNòtaTorrePossibilitats de la torreTorn :inscripcionSalvar La PartidaSalvar la Partica Jo_sPartidas salvadasMarcaRecercar :Graf de las requèstasSeleccionar un fichièr son...Mandar una requèstaAfichar de conselhs a l'aviadaMòde aleatòriPosicion simpla de las pèçasSite :Mòde _EspionDespensatEstandardEstandard :EstatTDTMLa connexion es estada copada - Messatge "fin de fichièr" recebutL'error es : %sLa partida s'es acabada per un nulLa partida es estada abandonadaLa partida es suspendudaLa partida es estada destruchaOraParamètres del cronomètre : Conselh del jornTolerança  :Traduire PyChessTipeAutoriza a acceptar %sDesinstallarDesconegutPas notatSens temporizacionInversatUtilizar l'_analisadorUtilizar _analisador inversatWGMWIMBenvengudaBlancAvètz prepausat l'ex-aequoVòstre nivèl : _Acceptar_Accions_Jogaire negre :_Victòria Al Temps_Inicializar las ofèrtas de partidas_RefusarEcran _complet_PartidaLista de partidas_General_Ajuda_Mòde Conselh_Cargar PartidaDesconnectar_Informacions del Jornal_Nom :Partida _novèla_Seguent_Desplaçaments observats :Sen_hal :Lista dels jogaires_Precedent_Remplaçar_Rotacion de l'Escaquièr_Salvar la PartidaRequèstas / Desfís_SonsComençar La Partida_Activar los sons dins Pychess_Afichatge_Jogaire blanc :captura una pèçadefend %sEgalitatgnuchess:http://oc.wikipedia.org/wiki/Jòc_d'escacshttp://oc.wikipedia.org/wiki/R%C3%A8glas_del_jòc_d%27%escacsmelhora la seguretat del reifa pression sus %sminConnectat al totalmet l'adversari en fracàssacrifica una pèçasegFenèstra 1pychess-0.12.2/lang/hi/0000755000175000017470000000000012653231274015076 5ustar tamasusers00000000000000pychess-0.12.2/lang/hi/LC_MESSAGES/0000755000175000017470000000000012653231274016663 5ustar tamasusers00000000000000pychess-0.12.2/lang/hi/LC_MESSAGES/pychess.po0000644000175000017470000024364112653216210020704 0ustar tamasusers00000000000000# SOME DESCRIPTIVE TITLE. # Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER # This file is distributed under the same license as the pychess package. # # Translators: # FIRST AUTHOR , 2007 # Saiwal Krishna , 2016 msgid "" msgstr "" "Project-Id-Version: pychess\n" "Report-Msgid-Bugs-To: \n" "POT-Creation-Date: 2016-01-27 13:28+0100\n" "PO-Revision-Date: 2016-01-28 08:56+0000\n" "Last-Translator: slav0nic \n" "Language-Team: Hindi (http://www.transifex.com/gbtami/pychess/language/hi/)\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" "Language: hi\n" "Plural-Forms: nplurals=2; plural=(n != 1);\n" # "Plural-Forms: nplurals=INTEGER; plural=EXPRESSION;\n" #: glade/analyze_game.glade:22 msgid "Analyze game" msgstr "खेल का विश्लेषण कीजिए" #: glade/analyze_game.glade:87 msgid "Use analyzer:" msgstr "विश्लेषक का उपयोग कीजिए" #: glade/analyze_game.glade:122 glade/PyChess.glade:2054 msgid "Maximum analysis time in seconds:" msgstr "अधिकतम विश्लेषण समय सेकंड मे " #: glade/analyze_game.glade:163 msgid "" "If the analyzer finds a move where the evaluation difference (the difference" " between the evaluation for the move it thinks is the best move and the " "evaluation for the move made in the game) exceeds this value, it will add an" " annotation for that move (consisting of the engine's Principal Variation " "for the move) to the Annotation panel" msgstr "" #: glade/analyze_game.glade:164 msgid "Variation annotation creation threshold in centipawns:" msgstr "" #: glade/analyze_game.glade:198 msgid "Analyze from current position" msgstr "" #: glade/analyze_game.glade:214 msgid "Add threatening variation lines " msgstr "" #: glade/analyze_game.glade:229 glade/PyChess.glade:1459 msgid "Colorize analyzed moves" msgstr "" #: glade/analyze_game.glade:244 glade/PyChess.glade:1495 msgid "Show evaluation values" msgstr "" #: glade/discovererDialog.glade:18 msgid "PyChess is discovering your engines. Please wait." msgstr "<बड़ा><बी>प्य्चेस्स आपके इंजनों की खोज कर रही है.कृपया प्रतीक्षा करें.<बी><बड़ा>" #: glade/discovererDialog.glade:77 msgid "PyChess.py:" msgstr "प्य्चेस्स.प्य" #: glade/discovererDialog.glade:89 msgid "ShredderLinuxChess:" msgstr "ष्रेद्देरलिनक्सचेस्स:" #: glade/discovererDialog.glade:101 msgid "gnuchess:" msgstr "ग्नुचेस्स" #: glade/fics_logon.glade:7 msgid "PyChess - Connect to Internet Chess" msgstr "प्य्चेस्स - इंटरनेट शतरंज से जुड़ें" #: glade/fics_logon.glade:47 msgid "Connect to the Free Online Chess Server" msgstr "<बड़ा><बी>मुफ्त ऑनलाइन शतरंज सर्वर से कनेक्ट कर<बड़ा><बी>" #: glade/fics_logon.glade:129 glade/taskers.glade:394 msgid "_Password:" msgstr "_पासवर्ड:" #: glade/fics_logon.glade:143 msgid "_Name:" msgstr "_नाम:" #: glade/fics_logon.glade:191 msgid "Log on as _Guest" msgstr "ळोग ओन अस _गुएस्त" #: glade/fics_logon.glade:227 msgid "Host:" msgstr "" #: glade/fics_logon.glade:259 msgid "Po_rts:" msgstr "पो_र्त्स:" #: glade/fics_logon.glade:271 msgid "Auto login on startup" msgstr "" #: glade/fics_logon.glade:385 msgid "S_ign up" msgstr "स_इग्न उप" #: glade/fics_lounge.glade:35 msgid "Challenge: " msgstr "" #: glade/fics_lounge.glade:97 msgid "Send Challenge" msgstr "" #: glade/fics_lounge.glade:133 msgid "Challenge:" msgstr "" #: glade/fics_lounge.glade:327 glade/fics_lounge.glade:2078 msgid "Lightning:" msgstr "बिजली:" #: glade/fics_lounge.glade:351 glade/fics_lounge.glade:2102 msgid "Standard:" msgstr "मानक:" #: glade/fics_lounge.glade:375 glade/fics_lounge.glade:2126 msgid "Blitz:" msgstr "हमले की तैयारी:" #: glade/fics_lounge.glade:400 msgid "2 min, Fischer Random, Black" msgstr "" #: glade/fics_lounge.glade:422 msgid "10 min + 6 sec/move, White" msgstr "" #: glade/fics_lounge.glade:444 msgid "5 min" msgstr "" #: glade/fics_lounge.glade:480 msgid "Edit Seek" msgstr "" #: glade/fics_lounge.glade:584 lib/pychess/ic/ICLounge.py:2208 #: lib/pychess/ic/__init__.py:101 lib/pychess/Utils/GameModel.py:206 msgid "Untimed" msgstr "" #: glade/fics_lounge.glade:637 msgid "Minutes: " msgstr "" #: glade/fics_lounge.glade:665 msgid " Gain: " msgstr "" #: glade/fics_lounge.glade:703 msgid "Time control: " msgstr "" #: glade/fics_lounge.glade:716 lib/pychess/ic/FICSObjects.py:56 #: lib/pychess/ic/ICLounge.py:1137 lib/pychess/ic/ICLounge.py:2208 #: lib/pychess/ic/__init__.py:99 msgid "Standard" msgstr "मानक" #: glade/fics_lounge.glade:757 glade/newInOut.glade:633 msgid "Time Control" msgstr "" #: glade/fics_lounge.glade:814 glade/fics_lounge.glade:1346 msgid "Don't care" msgstr "" #: glade/fics_lounge.glade:879 msgid "Your strength: " msgstr "" #: glade/fics_lounge.glade:921 msgid "(Blitz)" msgstr "" #: glade/fics_lounge.glade:951 msgid "Opponent's strength: " msgstr "" #: glade/fics_lounge.glade:1055 msgid "" "When this button is in the \"locked\" state, the relationship\n" "between \"Opponent's strength\" and \"Your strength\" will be\n" "preserved when \n" "a) your rating for the type of game sought has changed\n" "b) you change the variant or the time control" msgstr "" #: glade/fics_lounge.glade:1095 msgid "Center:" msgstr "" #: glade/fics_lounge.glade:1134 msgid "1200" msgstr "1200" #: glade/fics_lounge.glade:1188 msgid "Tolerance:" msgstr "" #: glade/fics_lounge.glade:1243 lib/pychess/ic/ICLounge.py:2452 msgid "Hide" msgstr "छिपाएँ" #: glade/fics_lounge.glade:1289 msgid "Opponent Strength" msgstr "" #: glade/fics_lounge.glade:1386 lib/pychess/Database/gamelist.py:40 #: lib/pychess/ic/ICLounge.py:1357 lib/pychess/ic/ICLounge.py:1557 #: lib/pychess/ic/ICLounge.py:2108 lib/pychess/Utils/repr.py:10 #: lib/pychess/widgets/ChessClock.py:40 #: lib/pychess/widgets/TaskerManager.py:153 msgid "White" msgstr "" #: glade/fics_lounge.glade:1414 lib/pychess/Database/gamelist.py:40 #: lib/pychess/ic/ICLounge.py:1358 lib/pychess/ic/ICLounge.py:1558 #: lib/pychess/ic/ICLounge.py:2110 lib/pychess/Utils/repr.py:10 #: lib/pychess/widgets/ChessClock.py:40 #: lib/pychess/widgets/TaskerManager.py:154 msgid "Black" msgstr "" #: glade/fics_lounge.glade:1453 msgid "Your Color" msgstr "" #: glade/fics_lounge.glade:1512 msgid "Play normal chess rules" msgstr "" #: glade/fics_lounge.glade:1552 msgid "Play" msgstr "" #: glade/fics_lounge.glade:1618 glade/newInOut.glade:833 msgid "Chess Variant" msgstr "" #: glade/fics_lounge.glade:1676 msgid "Rated game" msgstr "" #: glade/fics_lounge.glade:1692 msgid "Manually accept opponent" msgstr "" #: glade/fics_lounge.glade:1722 msgid "Options" msgstr "" #: glade/fics_lounge.glade:1750 msgid "PyChess - Internet Chess: FICS" msgstr "पय्चेस्स -ईन्तेर्नेत चेस्स:एफइएसीस" #: glade/fics_lounge.glade:1823 msgid "_Clear Seeks" msgstr "_कलेअर सीक्स" #: glade/fics_lounge.glade:1847 msgid "_Accept" msgstr "_स्वीकारें" #: glade/fics_lounge.glade:1871 msgid "_Decline" msgstr "" #: glade/fics_lounge.glade:2151 msgid "2 min, Fischer Random, 1800↓, Black" msgstr "2 मिनट,फिस्चेर रन्दोम,1800↓,काला" #: glade/fics_lounge.glade:2172 msgid "10 min + 6 sec/move, 1400↑, White" msgstr "" #: glade/fics_lounge.glade:2193 msgid "5 min, 1200-1800, Manual" msgstr "" #: glade/fics_lounge.glade:2247 msgid "Send all seeks" msgstr "" #: glade/fics_lounge.glade:2301 msgid "Send seek" msgstr "" #: glade/fics_lounge.glade:2337 msgid "Create Seek" msgstr "" #: glade/fics_lounge.glade:2353 msgid "_Seeks / Challenges" msgstr "" #: glade/fics_lounge.glade:2374 lib/pychess/ic/ICLounge.py:472 #: lib/pychess/ic/ICLounge.py:670 lib/pychess/ic/ICLounge.py:1357 #: lib/pychess/ic/ICLounge.py:1358 msgid "Rating" msgstr "" #: glade/fics_lounge.glade:2399 msgid "Time" msgstr "समय" #: glade/fics_lounge.glade:2419 msgid "Seek _Graph" msgstr "" #: glade/fics_lounge.glade:2444 msgid "0 Players Ready" msgstr "" #: glade/fics_lounge.glade:2496 msgid "Challenge" msgstr "चुनौती" #: glade/fics_lounge.glade:2549 glade/fics_lounge.glade:2735 msgid "Observe" msgstr "" #: glade/fics_lounge.glade:2602 msgid "Start Private Chat" msgstr "" #: glade/fics_lounge.glade:2659 msgid "_Player List" msgstr "" #: glade/fics_lounge.glade:2792 msgid "_Game List" msgstr "" #: glade/fics_lounge.glade:2847 msgid "_My games" msgstr "" #: glade/fics_lounge.glade:2904 glade/PyChess.glade:841 msgid "Offer _Resume" msgstr "" #: glade/fics_lounge.glade:2962 glade/PyChess.glade:880 msgid "R_esign" msgstr "" #: glade/fics_lounge.glade:3006 glade/PyChess.glade:820 msgid "Offer _Draw" msgstr "" #: glade/fics_lounge.glade:3050 msgid "Offer A_bort" msgstr "" #: glade/fics_lounge.glade:3107 msgid "Pre_view" msgstr "पूर्वावलोकन (_v)" #: glade/fics_lounge.glade:3151 msgid "Examine" msgstr "" #: glade/fics_lounge.glade:3208 msgid "_Archived" msgstr "" #: glade/fics_lounge.glade:3313 msgid "News" msgstr "" #: glade/fics_lounge.glade:3345 msgid "Show Console" msgstr "" #: glade/fics_lounge.glade:3359 msgid "Show _Chat" msgstr "" #: glade/fics_lounge.glade:3373 msgid "_Log Off" msgstr "" #: glade/fics_lounge.glade:3393 msgid "Tools" msgstr "" #: glade/fics_lounge.glade:3428 msgid "Asymmetric Random " msgstr "" #: glade/findbar.glade:6 msgid "window1" msgstr "" #: glade/findbar.glade:21 msgid "0 of 0" msgstr "" #: glade/findbar.glade:66 msgid "Search:" msgstr "" #: glade/findbar.glade:134 msgid "_Previous" msgstr "" #: glade/findbar.glade:192 msgid "_Next" msgstr "" #: glade/newInOut.glade:45 lib/pychess/widgets/newGameDialog.py:445 msgid "New Game" msgstr "नया खेल" #: glade/newInOut.glade:108 msgid "_Start Game" msgstr "खेल आरंभ करें (_S)" #: glade/newInOut.glade:130 msgid "Copy FEN" msgstr "" #: glade/newInOut.glade:143 msgid "Clear" msgstr "" #: glade/newInOut.glade:156 msgid "Paste FEN" msgstr "" #: glade/newInOut.glade:257 msgid "_Black player:" msgstr "" #: glade/newInOut.glade:274 msgid "_White player:" msgstr "" #: glade/newInOut.glade:385 msgid "Players" msgstr "" #: glade/newInOut.glade:436 msgid "_Untimed" msgstr "" #: glade/newInOut.glade:475 msgid "Blitz: 5 min" msgstr "" #: glade/newInOut.glade:526 msgid "Rapid: 15 min + 10 sec/move" msgstr "" #: glade/newInOut.glade:575 msgid "Normal: 40 min + 15 sec/move" msgstr "" #: glade/newInOut.glade:684 msgid "_Play Normal chess" msgstr "" #: glade/newInOut.glade:724 msgid "Play Fischer Random chess" msgstr "" #: glade/newInOut.glade:774 msgid "Play Losers chess" msgstr "" #: glade/newInOut.glade:919 msgid "Open Game" msgstr "" #: glade/newInOut.glade:1162 msgid "Initial Position" msgstr "" #: glade/newInOut.glade:1219 msgid "Enter Game Notation" msgstr "" #: glade/newInOut.glade:1314 msgid "Halfmove clock" msgstr "" #: glade/newInOut.glade:1327 msgid "En passant line" msgstr "" #: glade/newInOut.glade:1339 msgid "Side to move" msgstr "" #: glade/newInOut.glade:1351 msgid "Move number" msgstr "" #: glade/newInOut.glade:1361 msgid "Black O-O" msgstr "" #: glade/newInOut.glade:1375 msgid "Black O-O-O" msgstr "" #: glade/newInOut.glade:1389 msgid "White O-O-O" msgstr "" #: glade/newInOut.glade:1403 msgid "White O-O" msgstr "" #: glade/promotion.glade:7 msgid "Promotion" msgstr "" #: glade/promotion.glade:49 lib/pychess/Utils/repr.py:12 msgid "Queen" msgstr "" #: glade/promotion.glade:95 lib/pychess/Utils/repr.py:12 msgid "Rook" msgstr "" #: glade/promotion.glade:141 lib/pychess/Utils/repr.py:12 msgid "Bishop" msgstr "" #: glade/promotion.glade:187 lib/pychess/Utils/repr.py:12 msgid "Knight" msgstr "" #: glade/promotion.glade:233 lib/pychess/Utils/repr.py:12 msgid "King" msgstr "" #: glade/promotion.glade:265 msgid "Promote pawn to what?" msgstr "" #: glade/PyChess.glade:9 msgid "Chess client" msgstr "" #: glade/PyChess.glade:44 msgid "Game information" msgstr "" #: glade/PyChess.glade:164 msgid "Event:" msgstr "" #: glade/PyChess.glade:178 msgid "Site:" msgstr "" #: glade/PyChess.glade:204 msgid "Round:" msgstr "" #: glade/PyChess.glade:237 msgid "White:" msgstr "" #: glade/PyChess.glade:249 msgid "Black:" msgstr "" #: glade/PyChess.glade:302 msgid "Game data" msgstr "" #: glade/PyChess.glade:357 msgid "Date of game" msgstr "" #: glade/PyChess.glade:495 msgid "_Game" msgstr "" #: glade/PyChess.glade:502 msgid "_New Game" msgstr "नया खेल (_N)" #: glade/PyChess.glade:515 msgid "Play _Internet Chess" msgstr "" #: glade/PyChess.glade:534 msgid "_Load Game" msgstr "" #: glade/PyChess.glade:550 msgid "Load _Recent Game" msgstr "" #: glade/PyChess.glade:558 msgid "Open _Database" msgstr "" #: glade/PyChess.glade:569 lib/pychess/widgets/newGameDialog.py:615 msgid "Setup Position" msgstr "" #: glade/PyChess.glade:579 msgid "Enter Game _Notation" msgstr "" #: glade/PyChess.glade:592 msgid "_Save Game" msgstr "" #: glade/PyChess.glade:606 msgid "Save Game _As" msgstr "" #: glade/PyChess.glade:624 msgid "Share Game" msgstr "" #: glade/PyChess.glade:630 msgid "_Export Position" msgstr "" #: glade/PyChess.glade:644 msgid "_Analyze Game" msgstr "" #: glade/PyChess.glade:678 msgid "Player _Rating" msgstr "" #: glade/PyChess.glade:723 msgid "_Edit" msgstr "" #: glade/PyChess.glade:734 msgid "_Copy PGN" msgstr "" #: glade/PyChess.glade:746 msgid "_Copy FEN" msgstr "" #: glade/PyChess.glade:763 msgid "_Engines" msgstr "" #: glade/PyChess.glade:789 msgid "_Actions" msgstr "" #: glade/PyChess.glade:800 msgid "Offer _Abort" msgstr "" #: glade/PyChess.glade:810 msgid "Offer Ad_journment" msgstr "" #: glade/PyChess.glade:831 msgid "Offer _Pause" msgstr "" #: glade/PyChess.glade:847 msgid "Offer _Undo" msgstr "" #: glade/PyChess.glade:870 msgid "_Call Flag" msgstr "" #: glade/PyChess.glade:890 msgid "Ask to _Move" msgstr "" #: glade/PyChess.glade:905 msgid "Auto Call _Flag" msgstr "" #: glade/PyChess.glade:918 msgid "_View" msgstr "" #: glade/PyChess.glade:925 msgid "_Rotate Board" msgstr "" #: glade/PyChess.glade:939 msgid "_Fullscreen" msgstr "" #: glade/PyChess.glade:952 msgid "Leave _Fullscreen" msgstr "" #: glade/PyChess.glade:969 msgid "_Show Sidepanels" msgstr "" #: glade/PyChess.glade:980 msgid "_Log Viewer" msgstr "" #: glade/PyChess.glade:997 msgid "_Hint mode" msgstr "" #: glade/PyChess.glade:1009 msgid "Sp_y mode" msgstr "" #: glade/PyChess.glade:1024 msgid "_Help" msgstr "मदद(_H)" #: glade/PyChess.glade:1034 msgid "About Chess" msgstr "" #: glade/PyChess.glade:1043 msgid "How to Play" msgstr "" #: glade/PyChess.glade:1052 msgid "Translate PyChess" msgstr "" #: glade/PyChess.glade:1058 msgid "Tip of the Day" msgstr "" #: glade/PyChess.glade:1153 msgid "Default" msgstr "" #: glade/PyChess.glade:1156 msgid "Knights" msgstr "" #: glade/PyChess.glade:1167 lib/pychess/widgets/preferencesDialog.py:349 msgid "Beep" msgstr "" #: glade/PyChess.glade:1170 lib/pychess/widgets/preferencesDialog.py:350 msgid "Select sound file..." msgstr "" #: glade/PyChess.glade:1173 lib/pychess/widgets/preferencesDialog.py:348 msgid "No sound" msgstr "" #: glade/PyChess.glade:1180 msgid "Preferences" msgstr "" #: glade/PyChess.glade:1218 msgid "The displayed name of the first human player, e.g., John." msgstr "" #: glade/PyChess.glade:1230 msgid "Name of _first human player:" msgstr "" #: glade/PyChess.glade:1259 msgid "The displayed name of the guest player, e.g., Mary." msgstr "" #: glade/PyChess.glade:1271 msgid "Name of s_econd human player:" msgstr "" #: glade/PyChess.glade:1307 msgid "_Hide tabs when only one game is open" msgstr "" #: glade/PyChess.glade:1312 msgid "" "If set, this hides the tab in the top of the playing window, when it is not " "needed." msgstr "" #: glade/PyChess.glade:1326 msgid "_Use main app closer [x] to close all games" msgstr "" #: glade/PyChess.glade:1331 msgid "" "If set, clicking on main application window closer first time it closes all " "games." msgstr "" #: glade/PyChess.glade:1345 msgid "Auto _rotate board to current human player" msgstr "" #: glade/PyChess.glade:1350 msgid "" "If set, the board will turn after each move, to show the natural view for " "the current player." msgstr "" #: glade/PyChess.glade:1364 msgid "Auto _promote to queen" msgstr "" #: glade/PyChess.glade:1369 msgid "If set, pawn promotes to queen without promotion dialog selection." msgstr "" #: glade/PyChess.glade:1383 msgid "Face _to Face display mode" msgstr "" #: glade/PyChess.glade:1388 msgid "" "If set, the black pieces will be head down, suitable for playing against " "friends on mobile devices." msgstr "" #: glade/PyChess.glade:1402 msgid "Sho_w cords" msgstr "" #: glade/PyChess.glade:1407 msgid "" "If set, the playing board will display labels and ranks for each chess " "field. These are usable in chess notation." msgstr "" #: glade/PyChess.glade:1421 msgid "Show _captured pieces" msgstr "" #: glade/PyChess.glade:1426 msgid "If set, the captured figurines will be shown next to the board." msgstr "" #: glade/PyChess.glade:1440 msgid "Prefer figures in _notation" msgstr "" #: glade/PyChess.glade:1445 msgid "" "If set, PyChess will use figures to express moved pieces, rather than " "uppercase letters." msgstr "" #: glade/PyChess.glade:1464 msgid "If set, PyChess will colorize suboptimal analyzed moves with red." msgstr "" #: glade/PyChess.glade:1477 msgid "Show elapsed move times" msgstr "" #: glade/PyChess.glade:1482 msgid "If set, the elapsed time that a player used for the move is shown." msgstr "" #: glade/PyChess.glade:1500 msgid "If set, the hint analyzer engine evaluation value is shown." msgstr "" #: glade/PyChess.glade:1526 msgid "General Options" msgstr "" #: glade/PyChess.glade:1560 msgid "F_ull board animation" msgstr "" #: glade/PyChess.glade:1565 msgid "Animate pieces, board rotation and more. Use this on fast machines." msgstr "" #: glade/PyChess.glade:1579 msgid "Only animate _moves" msgstr "" #: glade/PyChess.glade:1584 msgid "Only animate piece moves." msgstr "" #: glade/PyChess.glade:1599 msgid "No _animation" msgstr "" #: glade/PyChess.glade:1604 msgid "Never use animation. Use this on slow machines." msgstr "" #: glade/PyChess.glade:1632 msgid "Animation" msgstr "" #: glade/PyChess.glade:1651 msgid "_General" msgstr "" #: glade/PyChess.glade:1692 msgid "Use opening _book" msgstr "" #: glade/PyChess.glade:1697 msgid "If set, PyChess will suggest best opening moves on hint panel." msgstr "" #: glade/PyChess.glade:1724 msgid "Polyglot book file:" msgstr "" #: glade/PyChess.glade:1768 msgid "Use _local tablebases" msgstr "" #: glade/PyChess.glade:1773 msgid "" "If set, PyChess will show game results for different moves in positions containing 6 or less pieces.\n" "You can download tablebase files from:\n" "http://www.olympuschess.com/egtb/gaviota/" msgstr "" #: glade/PyChess.glade:1803 msgid "Gaviota TB path:" msgstr "" #: glade/PyChess.glade:1843 msgid "Use _online tablebases" msgstr "" #: glade/PyChess.glade:1848 msgid "" "If set, PyChess will show game results for different moves in positions containing 6 or less pieces.\n" "It will search positions from http://www.k4it.de/" msgstr "" #: glade/PyChess.glade:1870 msgid "Opening, endgame" msgstr "" #: glade/PyChess.glade:1904 msgid "Use _analyzer" msgstr "" #: glade/PyChess.glade:1946 msgid "" "The analyzer will run in the background and analyze the game. This is " "necessary for the hint mode to work" msgstr "" #: glade/PyChess.glade:1978 msgid "Use _inverted analyzer" msgstr "" #: glade/PyChess.glade:2020 msgid "" "The inverse analyzer will analyze the game as if your opponent was to move. " "This is necessary for the spy mode to work" msgstr "" #: glade/PyChess.glade:2096 msgid "Analyzing" msgstr "" #: glade/PyChess.glade:2118 msgid "_Hints" msgstr "" #: glade/PyChess.glade:2263 msgid "Uninstall" msgstr "" #: glade/PyChess.glade:2317 msgid "Ac_tive" msgstr "" #: glade/PyChess.glade:2367 msgid "Installed Sidepanels" msgstr "" #: glade/PyChess.glade:2382 msgid "Side_panels" msgstr "" #: glade/PyChess.glade:2440 msgid "Light Squares :" msgstr "" #: glade/PyChess.glade:2479 msgid "Dark Squares :" msgstr "" #: glade/PyChess.glade:2515 msgid "Reset Default Colours" msgstr "" #: glade/PyChess.glade:2551 msgid "Board Colours" msgstr "" #: glade/PyChess.glade:2610 msgid "Chess Sets" msgstr "" #: glade/PyChess.glade:2634 msgid "Themes" msgstr "" #: glade/PyChess.glade:2659 msgid "_Use sounds in PyChess" msgstr "" #: glade/PyChess.glade:2982 msgid "A player _checks:" msgstr "" #: glade/PyChess.glade:2997 msgid "A player _moves:" msgstr "" #: glade/PyChess.glade:3010 msgid "Game is _drawn:" msgstr "" #: glade/PyChess.glade:3025 msgid "Game is _lost:" msgstr "" #: glade/PyChess.glade:3040 msgid "Game is _won:" msgstr "" #: glade/PyChess.glade:3055 msgid "A player c_aptures:" msgstr "" #: glade/PyChess.glade:3084 msgid "Game is _set-up:" msgstr "" #: glade/PyChess.glade:3136 msgid "_Observed moves:" msgstr "" #: glade/PyChess.glade:3151 msgid "Observed _ends:" msgstr "" #: glade/PyChess.glade:3265 msgid "Short on _time:" msgstr "" #: glade/PyChess.glade:3317 msgid "_Invalid move:" msgstr "" #: glade/PyChess.glade:3369 msgid "Activate alarm when _remaining sec is:" msgstr "" #: glade/PyChess.glade:3416 msgid "Play Sound When..." msgstr "" #: glade/PyChess.glade:3438 msgid "_Sounds" msgstr "" #: glade/PyChess.glade:3463 msgid "_Auto save finished games" msgstr "" #: glade/PyChess.glade:3497 msgid "Save files to:" msgstr "" #: glade/PyChess.glade:3525 msgid "Use name format:" msgstr "" #: glade/PyChess.glade:3569 msgid "Names: #n1, #n2" msgstr "" #: glade/PyChess.glade:3582 msgid "Year, month, day: #y, #m, #d" msgstr "" #: glade/PyChess.glade:3619 msgid "Save elapsed move _times" msgstr "" #: glade/PyChess.glade:3644 msgid "Save analyzing engine _evaluation values" msgstr "" #: glade/PyChess.glade:3669 msgid "Save _own games only" msgstr "" #: glade/PyChess.glade:3698 msgid "Save" msgstr "" #: glade/PyChess.glade:3728 msgid "uci" msgstr "" #: glade/PyChess.glade:3731 msgid "xboard" msgstr "" #: glade/PyChess.glade:3739 msgid "Manage engines" msgstr "" #: glade/PyChess.glade:3837 msgid "Command:" msgstr "" #: glade/PyChess.glade:3851 msgid "Protocol:" msgstr "" #: glade/PyChess.glade:3865 msgid "Parameters:" msgstr "" #: glade/PyChess.glade:3878 msgid "Command line parameters needed by the engine." msgstr "" #: glade/PyChess.glade:3903 msgid "" "Engines use uci or xboard communication protocol to talk to the GUI.\n" "If it can use both you can set here which one you like." msgstr "" #: glade/PyChess.glade:3929 msgid "Working directory:" msgstr "" #: glade/PyChess.glade:3942 msgid "The directory where the engine will be started from." msgstr "" #: glade/saveGamesDialog.glade:7 msgid "Quit PyChess" msgstr "" #: glade/saveGamesDialog.glade:24 lib/pychess/widgets/ionest.py:424 msgid "Close _without Saving" msgstr "" #: glade/saveGamesDialog.glade:83 msgid "_Save %d documents" msgstr "" #: glade/saveGamesDialog.glade:141 msgid "" "There are %d games with unsaved moves. Save changes before " "closing?" msgstr "" #: glade/saveGamesDialog.glade:161 msgid "Select the games you want to save:" msgstr "" #: glade/saveGamesDialog.glade:204 msgid "If you don't save, new changes to your games will be permanently lost." msgstr "" #: glade/taskers.glade:126 msgid "_Opponent:" msgstr "" #: glade/taskers.glade:154 msgid "_Your Color:" msgstr "" #: glade/taskers.glade:219 msgid "_Start Game" msgstr "" #: glade/taskers.glade:338 msgid "Log on as G_uest" msgstr "" #: glade/taskers.glade:410 msgid "Ha_ndle:" msgstr "" #: glade/taskers.glade:469 msgid "_Connect to server" msgstr "" #: glade/tipoftheday.glade:7 msgid "Tip Of The day" msgstr "" #: glade/tipoftheday.glade:62 msgid "Show tips at startup" msgstr "" #: lib/pychess/Main.py:302 msgid "http://en.wikipedia.org/wiki/Chess" msgstr "" #: lib/pychess/Main.py:305 msgid "http://en.wikipedia.org/wiki/Rules_of_chess" msgstr "" #: lib/pychess/Main.py:370 lib/pychess/widgets/gamenanny.py:80 msgid "Welcome" msgstr "" #: lib/pychess/Database/gamelist.py:40 msgid "Id" msgstr "" #: lib/pychess/Database/gamelist.py:40 msgid "W Elo" msgstr "" #: lib/pychess/Database/gamelist.py:40 msgid "B Elo" msgstr "" #: lib/pychess/Database/gamelist.py:41 msgid "Result" msgstr "" #: lib/pychess/Database/gamelist.py:41 msgid "Event" msgstr "" #: lib/pychess/Database/gamelist.py:41 msgid "Site" msgstr "" #: lib/pychess/Database/gamelist.py:41 msgid "Round" msgstr "" #: lib/pychess/Database/gamelist.py:41 msgid "Date" msgstr "" #: lib/pychess/Database/gamelist.py:41 msgid "ECO" msgstr "" #: lib/pychess/Database/gamelist.py:62 msgid "PyChess Game Database" msgstr "" #: lib/pychess/Database/PgnImport.py:188 #, python-format msgid "The game #%s can't be loaded, because of an error parsing FEN" msgstr "" #: lib/pychess/ic/FICSConnection.py:139 msgid "The connection was broken - got \"end of file\" message" msgstr "" #: lib/pychess/ic/FICSConnection.py:140 #, python-format msgid "'%s' is not a registered name" msgstr "" #: lib/pychess/ic/FICSConnection.py:141 msgid "" "The entered password was invalid.\n" "If you forgot your password, go to http://www.freechess.org/password to request a new one over email." msgstr "" #: lib/pychess/ic/FICSConnection.py:145 #, python-format msgid "Sorry '%s' is already logged in" msgstr "" #: lib/pychess/ic/FICSConnection.py:146 #, python-format msgid "'%s' is a registered name. If it is yours, type the password." msgstr "" #: lib/pychess/ic/FICSConnection.py:147 msgid "" "Due to abuse problems, guest connections have been prevented.\n" "You can still register on http://www.freechess.org" msgstr "" #: lib/pychess/ic/FICSConnection.py:166 msgid "Connecting to server" msgstr "" #: lib/pychess/ic/FICSConnection.py:181 msgid "Logging on to server" msgstr "" #: lib/pychess/ic/FICSConnection.py:239 msgid "Setting up environment" msgstr "" #: lib/pychess/ic/FICSObjects.py:35 lib/pychess/ic/FICSObjects.py:47 #, python-format msgid "%(player)s is %(status)s" msgstr "" #: lib/pychess/ic/FICSObjects.py:46 msgid "not playing" msgstr "" #: lib/pychess/ic/FICSObjects.py:54 lib/pychess/ic/ICLounge.py:1136 #: lib/pychess/ic/ICLounge.py:2209 lib/pychess/ic/__init__.py:98 #: lib/pychess/widgets/newGameDialog.py:153 msgid "Blitz" msgstr "" #: lib/pychess/ic/FICSObjects.py:58 lib/pychess/ic/ICLounge.py:1137 #: lib/pychess/ic/ICLounge.py:2209 lib/pychess/ic/__init__.py:100 msgid "Lightning" msgstr "" #: lib/pychess/ic/FICSObjects.py:60 lib/pychess/Variants/atomic.py:15 msgid "Atomic" msgstr "" #: lib/pychess/ic/FICSObjects.py:62 lib/pychess/Variants/bughouse.py:9 msgid "Bughouse" msgstr "" #: lib/pychess/ic/FICSObjects.py:64 lib/pychess/Variants/crazyhouse.py:9 msgid "Crazyhouse" msgstr "" #: lib/pychess/ic/FICSObjects.py:66 lib/pychess/Variants/losers.py:9 msgid "Losers" msgstr "" #: lib/pychess/ic/FICSObjects.py:68 lib/pychess/Variants/suicide.py:12 msgid "Suicide" msgstr "" #: lib/pychess/ic/FICSObjects.py:70 lib/pychess/ic/__init__.py:129 msgid "Wild" msgstr "" #: lib/pychess/ic/FICSObjects.py:117 msgid "Online" msgstr "" #: lib/pychess/ic/FICSObjects.py:118 lib/pychess/ic/FICSObjects.py:143 msgid "Offline" msgstr "" #: lib/pychess/ic/FICSObjects.py:133 msgid "Available" msgstr "" #: lib/pychess/ic/FICSObjects.py:135 msgid "Playing" msgstr "" #: lib/pychess/ic/FICSObjects.py:141 msgid "Idle" msgstr "" #: lib/pychess/ic/FICSObjects.py:145 msgid "Examining" msgstr "" #: lib/pychess/ic/FICSObjects.py:147 msgid "Not Available" msgstr "" #: lib/pychess/ic/FICSObjects.py:149 msgid "Running Simul Match" msgstr "" #: lib/pychess/ic/FICSObjects.py:151 msgid "In Tournament" msgstr "" #: lib/pychess/ic/FICSObjects.py:308 lib/pychess/ic/FICSObjects.py:492 #: lib/pychess/ic/ICLounge.py:2278 msgid "Unrated" msgstr "" #: lib/pychess/ic/FICSObjects.py:491 lib/pychess/ic/ICLounge.py:670 #: lib/pychess/ic/ICLounge.py:1358 lib/pychess/ic/ICLounge.py:1558 #: lib/pychess/ic/ICLounge.py:2113 msgid "Rated" msgstr "" #: lib/pychess/ic/FICSObjects.py:498 lib/pychess/ic/ICLounge.py:2098 #, python-format msgid "%d min" msgstr "" #: lib/pychess/ic/FICSObjects.py:500 #, python-format msgid " + %d sec" msgstr "" #: lib/pychess/ic/FICSObjects.py:517 #, python-format msgid "%(player)s plays %(color)s" msgstr "" #: lib/pychess/ic/FICSObjects.py:519 lib/pychess/ic/ICLounge.py:909 msgid "white" msgstr "" #: lib/pychess/ic/FICSObjects.py:519 lib/pychess/ic/ICLounge.py:909 msgid "black" msgstr "" #: lib/pychess/ic/FICSObjects.py:565 msgid "This is a continuation of an adjourned match" msgstr "" #: lib/pychess/ic/FICSObjects.py:654 msgid "Opponent Rating" msgstr "" #: lib/pychess/ic/FICSObjects.py:656 msgid "Manual Accept" msgstr "" #: lib/pychess/ic/FICSObjects.py:810 msgid "Private" msgstr "" #: lib/pychess/ic/FICSObjects.py:930 lib/pychess/ic/ICLounge.py:527 #: lib/pychess/Savers/epd.py:139 msgid "Unknown" msgstr "" #: lib/pychess/ic/ICLogon.py:159 lib/pychess/ic/ICLogon.py:165 msgid "Connection Error" msgstr "" #: lib/pychess/ic/ICLogon.py:161 msgid "Log on Error" msgstr "" #: lib/pychess/ic/ICLogon.py:163 msgid "Connection was closed" msgstr "" #: lib/pychess/ic/ICLogon.py:169 msgid "Address Error" msgstr "" #: lib/pychess/ic/ICLogon.py:172 msgid "Auto-logout" msgstr "" #: lib/pychess/ic/ICLogon.py:173 msgid "You have been logged out because you were idle more than 60 minutes" msgstr "" #: lib/pychess/ic/ICLounge.py:222 msgid "You have to set kibitz on to see bot messages here." msgstr "" #: lib/pychess/ic/ICLounge.py:241 msgid "" "You may only have 3 outstanding seeks at the same time. If you want to add a" " new seek you must clear your currently active seeks. Clear your seeks?" msgstr "" #: lib/pychess/ic/ICLounge.py:258 msgid "You can't touch this! You are examining a game." msgstr "" #: lib/pychess/ic/ICLounge.py:270 msgid " has declined your offer for a match" msgstr "" #: lib/pychess/ic/ICLounge.py:283 msgid " is censoring you" msgstr "" #: lib/pychess/ic/ICLounge.py:296 msgid " noplay listing you" msgstr "" #: lib/pychess/ic/ICLounge.py:311 msgid " uses a formula not fitting your match request:" msgstr "" #: lib/pychess/ic/ICLounge.py:325 msgid "to manual accept" msgstr "" #: lib/pychess/ic/ICLounge.py:327 msgid "to automatic accept" msgstr "" #: lib/pychess/ic/ICLounge.py:329 msgid "rating range now" msgstr "" #: lib/pychess/ic/ICLounge.py:330 msgid "Seek updated" msgstr "" #: lib/pychess/ic/ICLounge.py:342 msgid "Your seeks have been removed" msgstr "" #: lib/pychess/ic/ICLounge.py:363 msgid " has arrived" msgstr "" #: lib/pychess/ic/ICLounge.py:370 msgid " has departed" msgstr "" #: lib/pychess/ic/ICLounge.py:374 msgid " is present" msgstr "" #: lib/pychess/ic/ICLounge.py:391 sidepanel/chatPanel.py:17 msgid "Chat" msgstr "" #: lib/pychess/ic/ICLounge.py:472 sidepanel/bookPanel.py:366 msgid "Win" msgstr "" #: lib/pychess/ic/ICLounge.py:472 sidepanel/bookPanel.py:360 msgid "Draw" msgstr "" #: lib/pychess/ic/ICLounge.py:472 sidepanel/bookPanel.py:363 msgid "Loss" msgstr "" #: lib/pychess/ic/ICLounge.py:482 msgid "" "On FICS, your \"Wild\" rating encompasses all of the following variants at " "all time controls:\n" msgstr "" #: lib/pychess/ic/ICLounge.py:494 msgid "Sanctions" msgstr "" #: lib/pychess/ic/ICLounge.py:499 msgid "Email" msgstr "" #: lib/pychess/ic/ICLounge.py:504 msgid "Spent" msgstr "" #: lib/pychess/ic/ICLounge.py:506 msgid "online in total" msgstr "" #: lib/pychess/ic/ICLounge.py:512 msgid "Ping" msgstr "" #: lib/pychess/ic/ICLounge.py:517 msgid "Connecting" msgstr "" #: lib/pychess/ic/ICLounge.py:544 msgid "" "You are currently logged in as a guest.\n" "A guest can't play rated games and therefore isn't able to play as many of the types of matches offered as a registered user. To register an account, go to http://www.freechess.org/Register/index.html." msgstr "" #: lib/pychess/ic/ICLounge.py:669 lib/pychess/ic/ICLounge.py:1136 msgid "Name" msgstr "" #: lib/pychess/ic/ICLounge.py:670 lib/pychess/ic/ICLounge.py:1358 #: lib/pychess/ic/ICLounge.py:1558 msgid "Type" msgstr "" #: lib/pychess/ic/ICLounge.py:670 lib/pychess/ic/ICLounge.py:1558 msgid "Clock" msgstr "" #: lib/pychess/ic/ICLounge.py:726 lib/pychess/ic/ICLounge.py:923 #: lib/pychess/Players/Human.py:250 msgid "Accept" msgstr "" #: lib/pychess/ic/ICLounge.py:728 msgid "Assess" msgstr "" #: lib/pychess/ic/ICLounge.py:734 msgid "Archived" msgstr "" #: lib/pychess/ic/ICLounge.py:848 #, python-format msgid "Active seeks: %d" msgstr "" #: lib/pychess/ic/ICLounge.py:897 #, python-format msgid "" " would like to resume your adjourned %(time)s %(gametype)s " "game." msgstr "" #: lib/pychess/ic/ICLounge.py:902 #, python-format msgid "" " challenges you to a %(time)s %(rated)s %(gametype)s game" msgstr "" #: lib/pychess/ic/ICLounge.py:907 #, python-format msgid " where %(player)s plays %(color)s." msgstr "" #: lib/pychess/ic/ICLounge.py:924 lib/pychess/Players/Human.py:251 msgid "Decline" msgstr "" #: lib/pychess/ic/ICLounge.py:1065 msgid " min" msgstr "" #: lib/pychess/ic/ICLounge.py:1137 msgid "Status" msgstr "" #: lib/pychess/ic/ICLounge.py:1203 lib/pychess/ic/ICLounge.py:1233 #, python-format msgid "Players: %d" msgstr "" #: lib/pychess/ic/ICLounge.py:1469 #, python-format msgid "Games running: %d" msgstr "" #: lib/pychess/ic/ICLounge.py:1559 msgid "Date/Time" msgstr "" #: lib/pychess/ic/ICLounge.py:1614 #, python-format msgid "" " with whom you have an adjourned %(timecontrol)s %(gametype)s " "game is online." msgstr "" #: lib/pychess/ic/ICLounge.py:1635 msgid "Request Continuation" msgstr "" #: lib/pychess/ic/ICLounge.py:1637 msgid "Examine Adjourned Game" msgstr "" #: lib/pychess/ic/ICLounge.py:1965 msgid "" "The chain button is disabled because you are logged in as a guest. Guests " "can't establish ratings, and the chain button's state has no effect when " "there is no rating to which to tie \"Opponent Strength\" to" msgstr "" #: lib/pychess/ic/ICLounge.py:2006 msgid "Challenge: " msgstr "" #: lib/pychess/ic/ICLounge.py:2044 msgid "If set you can refuse players accepting your seek" msgstr "" #: lib/pychess/ic/ICLounge.py:2048 lib/pychess/ic/ICLounge.py:2051 msgid "This option is not applicable because you're challenging a player" msgstr "" #: lib/pychess/ic/ICLounge.py:2064 msgid "Edit Seek: " msgstr "" #: lib/pychess/ic/ICLounge.py:2095 #, python-format msgid "%(minutes)d min + %(gain)d sec/move" msgstr "" #: lib/pychess/ic/ICLounge.py:2116 msgid "Manual" msgstr "" #: lib/pychess/ic/ICLounge.py:2256 msgid "Any strength" msgstr "" #: lib/pychess/ic/ICLounge.py:2308 msgid "You can't play rated games because you are logged in as a guest" msgstr "" #: lib/pychess/ic/ICLounge.py:2312 msgid "You can't play rated games because \"Untimed\" is checked, " msgstr "" #: lib/pychess/ic/ICLounge.py:2313 msgid "and on FICS, untimed games can't be rated" msgstr "" #: lib/pychess/ic/ICLounge.py:2317 msgid "This option is not available because you're challenging a guest, " msgstr "" #: lib/pychess/ic/ICLounge.py:2318 msgid "and guests can't play rated games" msgstr "" #: lib/pychess/ic/ICLounge.py:2332 lib/pychess/Variants/shuffle.py:16 #: lib/pychess/widgets/newGameDialog.py:266 msgid "Shuffle" msgstr "" #: lib/pychess/ic/ICLounge.py:2333 lib/pychess/widgets/newGameDialog.py:267 msgid "Other (standard rules)" msgstr "" #: lib/pychess/ic/ICLounge.py:2334 lib/pychess/widgets/newGameDialog.py:268 msgid "Other (non standard rules)" msgstr "" #: lib/pychess/ic/ICLounge.py:2421 msgid "You can't select a variant because \"Untimed\" is checked, " msgstr "" #: lib/pychess/ic/ICLounge.py:2422 msgid "and on FICS, untimed games have to be normal chess rules" msgstr "" #: lib/pychess/ic/ICLounge.py:2454 msgid "Change Tolerance" msgstr "" #: lib/pychess/ic/__init__.py:102 msgid "Examined" msgstr "" #: lib/pychess/ic/__init__.py:103 msgid "Other" msgstr "" #: lib/pychess/ic/__init__.py:182 msgid "Administrator" msgstr "" #: lib/pychess/ic/__init__.py:182 msgid "Blindfold Account" msgstr "" #: lib/pychess/ic/__init__.py:182 msgid "Computer" msgstr "" #: lib/pychess/ic/__init__.py:183 msgid "Team Account" msgstr "" #: lib/pychess/ic/__init__.py:183 msgid "Unregistered" msgstr "" #: lib/pychess/ic/__init__.py:183 msgid "Chess Advisor" msgstr "" #: lib/pychess/ic/__init__.py:184 msgid "Service Representative" msgstr "" #: lib/pychess/ic/__init__.py:184 msgid "Tournament Director" msgstr "" #: lib/pychess/ic/__init__.py:184 msgid "Mamer Manager" msgstr "" #: lib/pychess/ic/__init__.py:185 msgid "Grand Master" msgstr "" #: lib/pychess/ic/__init__.py:185 msgid "International Master" msgstr "" #: lib/pychess/ic/__init__.py:185 msgid "FIDE Master" msgstr "" #: lib/pychess/ic/__init__.py:186 msgid "Woman Grand Master" msgstr "" #: lib/pychess/ic/__init__.py:186 msgid "Woman International Master" msgstr "" #: lib/pychess/ic/__init__.py:186 msgid "Woman FIDE Master" msgstr "" #: lib/pychess/ic/__init__.py:187 msgid "Dummy Account" msgstr "" #: lib/pychess/ic/__init__.py:191 msgid "*" msgstr "" #: lib/pychess/ic/__init__.py:191 lib/pychess/Utils/repr.py:14 msgid "B" msgstr "" #: lib/pychess/ic/__init__.py:191 msgid "C" msgstr "" #: lib/pychess/ic/__init__.py:192 msgid "T" msgstr "" #: lib/pychess/ic/__init__.py:192 msgid "U" msgstr "" #: lib/pychess/ic/__init__.py:192 msgid "CA" msgstr "" #: lib/pychess/ic/__init__.py:193 msgid "SR" msgstr "" #: lib/pychess/ic/__init__.py:193 msgid "TD" msgstr "" #: lib/pychess/ic/__init__.py:193 msgid "TM" msgstr "" #: lib/pychess/ic/__init__.py:194 msgid "GM" msgstr "" #: lib/pychess/ic/__init__.py:194 msgid "IM" msgstr "" #: lib/pychess/ic/__init__.py:194 msgid "FM" msgstr "" #: lib/pychess/ic/__init__.py:195 msgid "WGM" msgstr "" #: lib/pychess/ic/__init__.py:195 msgid "WIM" msgstr "" #: lib/pychess/ic/__init__.py:195 msgid "WFM" msgstr "" #: lib/pychess/ic/__init__.py:195 msgid "D" msgstr "" #: lib/pychess/ic/__init__.py:195 msgid "H" msgstr "" #: lib/pychess/ic/__init__.py:195 msgid "CM" msgstr "" #: lib/pychess/ic/__init__.py:195 msgid "FA" msgstr "" #: lib/pychess/ic/__init__.py:195 msgid "NM" msgstr "" #: lib/pychess/Players/CECPEngine.py:857 #, python-format msgid "The engine %s reports an error:" msgstr "" #: lib/pychess/Players/Human.py:20 msgid "Your opponent has offered you a draw." msgstr "" #: lib/pychess/Players/Human.py:21 msgid "" "Your opponent has offered you a draw. If you accept this offer, the game " "will end with a score of 1/2 - 1/2." msgstr "" #: lib/pychess/Players/Human.py:23 msgid "Your opponent wants to abort the game." msgstr "" #: lib/pychess/Players/Human.py:24 msgid "" "Your opponent has asked that the game be aborted. If you accept this offer, " "the game will end with no rating change." msgstr "" #: lib/pychess/Players/Human.py:26 msgid "Your opponent wants to adjourn the game." msgstr "" #: lib/pychess/Players/Human.py:27 msgid "" "Your opponent has asked that the game be adjourned. If you accept this " "offer, the game will be adjourned and you can resume it later (when your " "opponent is online and both players agree to resume)." msgstr "" #: lib/pychess/Players/Human.py:29 #, python-format msgid "Your opponent wants to undo %s move(s)." msgstr "" #: lib/pychess/Players/Human.py:30 #, python-format msgid "" "Your opponent has asked that the last %s move(s) be undone. If you accept " "this offer, the game will continue from the earlier position." msgstr "" #: lib/pychess/Players/Human.py:32 msgid "Your opponent wants to pause the game." msgstr "" #: lib/pychess/Players/Human.py:33 msgid "" "Your opponent has asked that the game be paused. If you accept this offer, " "the game clock will be paused until both players agree to resume the game." msgstr "" #: lib/pychess/Players/Human.py:35 msgid "Your opponent wants to resume the game." msgstr "" #: lib/pychess/Players/Human.py:36 msgid "" "Your opponent has asked that the game be resumed. If you accept this offer, " "the game clock will continue from where it was paused." msgstr "" #: lib/pychess/Players/Human.py:40 msgid "The resignation" msgstr "" #: lib/pychess/Players/Human.py:41 msgid "The flag call" msgstr "" #: lib/pychess/Players/Human.py:42 msgid "The draw offer" msgstr "" #: lib/pychess/Players/Human.py:43 msgid "The abort offer" msgstr "" #: lib/pychess/Players/Human.py:44 msgid "The adjourn offer" msgstr "" #: lib/pychess/Players/Human.py:45 msgid "The pause offer" msgstr "" #: lib/pychess/Players/Human.py:46 msgid "The resume offer" msgstr "" #: lib/pychess/Players/Human.py:47 msgid "The offer to switch sides" msgstr "" #: lib/pychess/Players/Human.py:48 msgid "The takeback offer" msgstr "" #: lib/pychess/Players/Human.py:52 msgid "resign" msgstr "" #: lib/pychess/Players/Human.py:53 msgid "call your opponents flag" msgstr "" #: lib/pychess/Players/Human.py:54 msgid "offer a draw" msgstr "" #: lib/pychess/Players/Human.py:55 msgid "offer an abort" msgstr "" #: lib/pychess/Players/Human.py:56 msgid "offer to adjourn" msgstr "" #: lib/pychess/Players/Human.py:57 msgid "offer a pause" msgstr "" #: lib/pychess/Players/Human.py:58 msgid "offer to resume" msgstr "" #: lib/pychess/Players/Human.py:59 msgid "offer to switch sides" msgstr "" #: lib/pychess/Players/Human.py:60 msgid "offer a takeback" msgstr "" #: lib/pychess/Players/Human.py:61 msgid "ask your opponent to move" msgstr "" #: lib/pychess/Players/Human.py:66 msgid "Your opponent is not out of time." msgstr "" #: lib/pychess/Players/Human.py:68 msgid "The clock hasn't been started yet." msgstr "" #: lib/pychess/Players/Human.py:70 msgid "You can't switch colors during the game." msgstr "" #: lib/pychess/Players/Human.py:72 msgid "You have tried to undo too many moves." msgstr "" #: lib/pychess/Players/Human.py:180 msgid "Your opponent asks you to hurry!" msgstr "" #: lib/pychess/Players/Human.py:181 msgid "" "Generally this means nothing, as the game is time-based, but if you want to " "please your opponent, perhaps you should get going." msgstr "" #: lib/pychess/Players/Human.py:259 #, python-format msgid "%s was declined by your opponent" msgstr "" #: lib/pychess/Players/Human.py:260 #, python-format msgid "Resend %s?" msgstr "" #: lib/pychess/Players/Human.py:267 msgid "Resend" msgstr "" #: lib/pychess/Players/Human.py:275 #, python-format msgid "%s was withdrawn by your opponent" msgstr "" #: lib/pychess/Players/Human.py:276 msgid "Your opponent seems to have changed their mind." msgstr "" #: lib/pychess/Players/Human.py:290 #, python-format msgid "Unable to accept %s" msgstr "" #: lib/pychess/Players/Human.py:291 msgid "Probably because it has been withdrawn." msgstr "" #: lib/pychess/Players/Human.py:298 #, python-format msgid "%s returns an error" msgstr "" #: lib/pychess/Savers/chessalpha2.py:12 msgid "Chess Alpha 2 Diagram" msgstr "" #: lib/pychess/Savers/chesspastebin.py:39 msgid "Game shared at " msgstr "" #: lib/pychess/Savers/chesspastebin.py:41 msgid "(Link is available on clipboard.)" msgstr "" #: lib/pychess/Savers/database.py:19 msgid "PyChess database" msgstr "" #: lib/pychess/Savers/epd.py:12 msgid "Chess Position" msgstr "" #: lib/pychess/Savers/fen.py:12 msgid "Simple Chess Position" msgstr "" #: lib/pychess/Savers/fen.py:44 lib/pychess/Savers/pgn.py:329 msgid "The game can't be loaded, because of an error parsing FEN" msgstr "" #: lib/pychess/Savers/pgnbase.py:100 #, python-format msgid "" "The game can't be read to end, because of an error parsing move %(moveno)s " "'%(notation)s'." msgstr "" #: lib/pychess/Savers/pgnbase.py:102 #, python-format msgid "The move failed because %s." msgstr "" #: lib/pychess/Savers/pgnbase.py:110 #, python-format msgid "Error parsing move %(moveno)s %(mstr)s" msgstr "" #: lib/pychess/Savers/pgn.py:28 msgid "Chess Game" msgstr "" #: lib/pychess/Savers/pgn.py:362 msgid "Invalid move." msgstr "" #: lib/pychess/Savers/png.py:15 msgid "Png image" msgstr "" #: lib/pychess/System/ping.py:31 msgid "Destination Host Unreachable" msgstr "" #: lib/pychess/System/ping.py:74 msgid "Died" msgstr "" #: lib/pychess/Utils/GameModel.py:147 msgid "Local Event" msgstr "" #: lib/pychess/Utils/GameModel.py:148 msgid "Local Site" msgstr "" #: lib/pychess/Utils/repr.py:12 msgid "Pawn" msgstr "" #: lib/pychess/Utils/repr.py:14 msgid "P" msgstr "" #: lib/pychess/Utils/repr.py:14 msgid "N" msgstr "" #: lib/pychess/Utils/repr.py:14 msgid "R" msgstr "" #: lib/pychess/Utils/repr.py:14 msgid "Q" msgstr "" #: lib/pychess/Utils/repr.py:14 msgid "K" msgstr "" #: lib/pychess/Utils/repr.py:17 msgid "The game ended in a draw" msgstr "" #: lib/pychess/Utils/repr.py:18 #, python-format msgid "%(white)s won the game" msgstr "" #: lib/pychess/Utils/repr.py:19 #, python-format msgid "%(black)s won the game" msgstr "" #: lib/pychess/Utils/repr.py:20 msgid "The game has been killed" msgstr "" #: lib/pychess/Utils/repr.py:21 msgid "The game has been adjourned" msgstr "" #: lib/pychess/Utils/repr.py:22 msgid "The game has been aborted" msgstr "" #: lib/pychess/Utils/repr.py:26 msgid "Because neither player has sufficient material to mate" msgstr "" #: lib/pychess/Utils/repr.py:27 msgid "Because the same position was repeated three times in a row" msgstr "" #: lib/pychess/Utils/repr.py:28 msgid "Because the last 50 moves brought nothing new" msgstr "" #: lib/pychess/Utils/repr.py:29 msgid "Because both players ran out of time" msgstr "" #: lib/pychess/Utils/repr.py:30 #, python-format msgid "Because %(mover)s stalemated" msgstr "" #: lib/pychess/Utils/repr.py:31 msgid "Because both players agreed to a draw" msgstr "" #: lib/pychess/Utils/repr.py:32 lib/pychess/Utils/repr.py:42 msgid "Because of adjudication by an admin" msgstr "" #: lib/pychess/Utils/repr.py:33 msgid "Because the game exceed the max length" msgstr "" #: lib/pychess/Utils/repr.py:34 #, python-format msgid "" "Because %(white)s ran out of time and %(black)s has insufficient material to" " mate" msgstr "" #: lib/pychess/Utils/repr.py:35 #, python-format msgid "" "Because %(black)s ran out of time and %(white)s has insufficient material to" " mate" msgstr "" #: lib/pychess/Utils/repr.py:36 msgid "Because both players have the same amount of pieces" msgstr "" #: lib/pychess/Utils/repr.py:38 #, python-format msgid "Because %(loser)s resigned" msgstr "" #: lib/pychess/Utils/repr.py:39 #, python-format msgid "Because %(loser)s ran out of time" msgstr "" #: lib/pychess/Utils/repr.py:40 #, python-format msgid "Because %(loser)s was checkmated" msgstr "" #: lib/pychess/Utils/repr.py:41 #, python-format msgid "Because %(loser)s disconnected" msgstr "" #: lib/pychess/Utils/repr.py:43 #, python-format msgid "Because %(winner)s has fewer pieces" msgstr "" #: lib/pychess/Utils/repr.py:44 #, python-format msgid "Because %(winner)s lost all pieces" msgstr "" #: lib/pychess/Utils/repr.py:45 #, python-format msgid "Because %(loser)s king exploded" msgstr "" #: lib/pychess/Utils/repr.py:46 #, python-format msgid "Because %(winner)s king reached the center" msgstr "" #: lib/pychess/Utils/repr.py:47 #, python-format msgid "Because %(winner)s was giving check 3 times" msgstr "" #: lib/pychess/Utils/repr.py:49 msgid "Because a player lost connection" msgstr "" #: lib/pychess/Utils/repr.py:50 msgid "Because both players agreed to an adjournment" msgstr "" #: lib/pychess/Utils/repr.py:51 msgid "Because the server was shut down" msgstr "" #: lib/pychess/Utils/repr.py:52 msgid "" "Because a player lost connection and the other player requested adjournment" msgstr "" #: lib/pychess/Utils/repr.py:53 #, python-format msgid "" "Because %(black)s lost connection to the server and %(white)s requested " "adjournment" msgstr "" #: lib/pychess/Utils/repr.py:54 #, python-format msgid "" "Because %(white)s lost connection to the server and %(black)s requested " "adjournment" msgstr "" #: lib/pychess/Utils/repr.py:55 #, python-format msgid "Because %(white)s lost connection to the server" msgstr "" #: lib/pychess/Utils/repr.py:56 #, python-format msgid "Because %(black)s lost connection to the server" msgstr "" #: lib/pychess/Utils/repr.py:58 msgid "Because of adjudication by an admin. No rating changes have occurred." msgstr "" #: lib/pychess/Utils/repr.py:59 msgid "" "Because both players agreed to abort the game. No rating changes have " "occurred." msgstr "" #: lib/pychess/Utils/repr.py:60 msgid "Because of courtesy by a player. No rating changes have occurred." msgstr "" #: lib/pychess/Utils/repr.py:61 msgid "" "Because a player aborted the game. Either player can abort the game without " "the other's consent before the second move. No rating changes have occurred." msgstr "" #: lib/pychess/Utils/repr.py:62 msgid "" "Because a player disconnected and there are too few moves to warrant " "adjournment. No rating changes have occurred." msgstr "" #: lib/pychess/Utils/repr.py:63 msgid "Because the server was shut down. No rating changes have occurred." msgstr "" #: lib/pychess/Utils/repr.py:65 #, python-format msgid "Because the %(white)s engine died" msgstr "" #: lib/pychess/Utils/repr.py:66 #, python-format msgid "Because the %(black)s engine died" msgstr "" #: lib/pychess/Utils/repr.py:67 msgid "Because the connection to the server was lost" msgstr "" #: lib/pychess/Utils/repr.py:68 msgid "The reason is unknown" msgstr "" #: lib/pychess/Utils/TimeModel.py:229 msgid "min" msgstr "" #: lib/pychess/Utils/TimeModel.py:231 msgid "sec" msgstr "" #: lib/pychess/Variants/asean.py:12 msgid "" "ASEAN: http://www.ncf-" "phil.org/downloadables/2014/May/Asean_chess/Laws_of_ASEAN_Chess_2011_Nov_26.doc" msgstr "" #: lib/pychess/Variants/asean.py:13 msgid "ASEAN" msgstr "" #: lib/pychess/Variants/asean.py:33 msgid "Makruk: http://en.wikipedia.org/wiki/Makruk" msgstr "" #: lib/pychess/Variants/asean.py:34 msgid "Makruk" msgstr "" #: lib/pychess/Variants/asean.py:60 msgid "Cambodian: http://www.khmerinstitute.org/culture/ok.html" msgstr "" #: lib/pychess/Variants/asean.py:61 msgid "Cambodian" msgstr "" #: lib/pychess/Variants/asean.py:86 msgid "" "Ai-Wok: http://www.open-" "aurec.com/wbforum/viewtopic.php?p=199364&sid=20963a1de2c164050de019e5ed6bf7c4#p199364" msgstr "" #: lib/pychess/Variants/asean.py:87 msgid "Ai-Wok" msgstr "" #: lib/pychess/Variants/asean.py:111 msgid "Sittuyin: http://en.wikipedia.org/wiki/Sittuyin" msgstr "" #: lib/pychess/Variants/asean.py:112 msgid "Sittuyin" msgstr "" #: lib/pychess/Variants/asymmetricrandom.py:12 msgid "" "FICS wild/4: http://www.freechess.org/Help/HelpFiles/wild.html\n" "* Randomly chosen pieces (two queens or three rooks possible)\n" "* Exactly one king of each color\n" "* Pieces placed randomly behind the pawns, SUBJECT TO THE CONSTRAINT THAT THE BISHOPS ARE BALANCED\n" "* No castling\n" "* Black's arrangement DOES NOT mirrors white's" msgstr "" #: lib/pychess/Variants/asymmetricrandom.py:18 msgid "Asymmetric Random" msgstr "" #: lib/pychess/Variants/atomic.py:14 msgid "FICS atomic: http://www.freechess.org/Help/HelpFiles/atomic.html" msgstr "" #: lib/pychess/Variants/blindfold.py:7 msgid "" "Classic chess rules with hidden figurines\n" "http://en.wikipedia.org/wiki/Blindfold_chess" msgstr "" #: lib/pychess/Variants/blindfold.py:9 #: lib/pychess/widgets/newGameDialog.py:264 msgid "Blindfold" msgstr "" #: lib/pychess/Variants/blindfold.py:18 msgid "" "Classic chess rules with hidden pawns\n" "http://en.wikipedia.org/wiki/Blindfold_chess" msgstr "" #: lib/pychess/Variants/blindfold.py:20 msgid "Hidden pawns" msgstr "" #: lib/pychess/Variants/blindfold.py:29 msgid "" "Classic chess rules with hidden pieces\n" "http://en.wikipedia.org/wiki/Blindfold_chess" msgstr "" #: lib/pychess/Variants/blindfold.py:31 msgid "Hidden pieces" msgstr "" #: lib/pychess/Variants/blindfold.py:40 msgid "" "Classic chess rules with all pieces white\n" "http://en.wikipedia.org/wiki/Blindfold_chess" msgstr "" #: lib/pychess/Variants/blindfold.py:42 msgid "All white" msgstr "" #: lib/pychess/Variants/bughouse.py:8 msgid "FICS bughouse: http://www.freechess.org/Help/HelpFiles/bughouse.html" msgstr "" #: lib/pychess/Variants/corner.py:12 msgid "" "http://brainking.com/en/GameRules?tp=2\n" "* Placement of the pieces on the 1st and 8th row are randomized\n" "* The king is in the right hand corner\n" "* Bishops must start on opposite color squares\n" "* Black's starting position is obtained by rotating white's position 180 degrees around the board's center\n" "* No castling" msgstr "" #: lib/pychess/Variants/corner.py:18 msgid "Corner" msgstr "" #: lib/pychess/Variants/crazyhouse.py:8 msgid "" "FICS crazyhouse: http://www.freechess.org/Help/HelpFiles/crazyhouse.html" msgstr "" #: lib/pychess/Variants/euroshogi.py:9 msgid "EuroShogi: http://en.wikipedia.org/wiki/EuroShogi" msgstr "" #: lib/pychess/Variants/euroshogi.py:10 msgid "EuroShogi" msgstr "" #: lib/pychess/Variants/fischerandom.py:18 msgid "" "http://en.wikipedia.org/wiki/Chess960\n" "FICS wild/fr: http://www.freechess.org/Help/HelpFiles/wild.html" msgstr "" #: lib/pychess/Variants/fischerandom.py:20 msgid "Fischer Random" msgstr "" #: lib/pychess/Variants/kingofthehill.py:8 msgid "" "Bringing your king legally to the center (e4, d4, e5, d5) instantly wins the game!\n" "Normal rules apply in other cases and checkmate also ends the game." msgstr "" #: lib/pychess/Variants/kingofthehill.py:10 msgid "King of the hill" msgstr "" #: lib/pychess/Variants/knightodds.py:8 msgid "One player starts with one less knight piece" msgstr "" #: lib/pychess/Variants/knightodds.py:9 msgid "Knight odds" msgstr "" #: lib/pychess/Variants/losers.py:8 msgid "FICS losers: http://www.freechess.org/Help/HelpFiles/losers_chess.html" msgstr "" #: lib/pychess/Variants/normal.py:4 msgid "" "Classic chess rules\n" "http://en.wikipedia.org/wiki/Chess" msgstr "" #: lib/pychess/Variants/normal.py:6 lib/pychess/widgets/newGameDialog.py:157 msgid "Normal" msgstr "" #: lib/pychess/Variants/pawnodds.py:8 msgid "One player starts with one less pawn piece" msgstr "" #: lib/pychess/Variants/pawnodds.py:9 msgid "Pawn odds" msgstr "" #: lib/pychess/Variants/pawnspassed.py:11 msgid "" "FICS wild/8a: http://www.freechess.org/Help/HelpFiles/wild.html\n" "White pawns start on 5th rank and black pawns on the 4th rank" msgstr "" #: lib/pychess/Variants/pawnspassed.py:13 msgid "Pawns Passed" msgstr "" #: lib/pychess/Variants/pawnspushed.py:10 msgid "" "FICS wild/8: http://www.freechess.org/Help/HelpFiles/wild.html\n" "Pawns start on 4th and 5th ranks rather than 2nd and 7th" msgstr "" #: lib/pychess/Variants/pawnspushed.py:12 msgid "Pawns Pushed" msgstr "" #: lib/pychess/Variants/queenodds.py:8 msgid "One player starts with one less queen piece" msgstr "" #: lib/pychess/Variants/queenodds.py:9 msgid "Queen odds" msgstr "" #: lib/pychess/Variants/randomchess.py:11 msgid "" "FICS wild/3: http://www.freechess.org/Help/HelpFiles/wild.html\n" "* Randomly chosen pieces (two queens or three rooks possible)\n" "* Exactly one king of each color\n" "* Pieces placed randomly behind the pawns\n" "* No castling\n" "* Black's arrangement mirrors white's" msgstr "" #: lib/pychess/Variants/randomchess.py:17 #: lib/pychess/widgets/TaskerManager.py:155 msgid "Random" msgstr "" #: lib/pychess/Variants/rookodds.py:8 msgid "One player starts with one less rook piece" msgstr "" #: lib/pychess/Variants/rookodds.py:9 msgid "Rook odds" msgstr "" #: lib/pychess/Variants/shuffle.py:11 msgid "" "xboard nocastle: http://home.hccnet.nl/h.g.muller/engine-intf.html#8\n" "FICS wild/2: http://www.freechess.org/Help/HelpFiles/wild.html\n" "* Random arrangement of the pieces behind the pawns\n" "* No castling\n" "* Black's arrangement mirrors white's" msgstr "" #: lib/pychess/Variants/suicide.py:11 msgid "" "FICS suicide: http://www.freechess.org/Help/HelpFiles/suicide_chess.html" msgstr "" #: lib/pychess/Variants/theban.py:10 msgid "" "Variant developed by Kai Laskos: " "http://talkchess.com/forum/viewtopic.php?t=40990" msgstr "" #: lib/pychess/Variants/theban.py:11 msgid "Theban" msgstr "" #: lib/pychess/Variants/threecheck.py:10 msgid "Win by giving check 3 times" msgstr "" #: lib/pychess/Variants/threecheck.py:11 msgid "Three-check" msgstr "" #: lib/pychess/Variants/upsidedown.py:10 msgid "" "FICS wild/5: http://www.freechess.org/Help/HelpFiles/wild.html\n" "http://en.wikipedia.org/wiki/Chess_variant#Chess_with_different_starting_positions\n" "Pawns start on their 7th rank rather than their 2nd rank!" msgstr "" #: lib/pychess/Variants/upsidedown.py:13 msgid "Upside Down" msgstr "" #: lib/pychess/Variants/wildcastle.py:10 msgid "" "xboard wildcastle http://home.hccnet.nl/h.g.muller/engine-intf.html#8\n" "FICS wild/0: http://www.freechess.org/Help/HelpFiles/wild.html\n" "* White has the typical set-up at the start.\n" "* Black's pieces are the same, except that the King and Queen are reversed,\n" "* so they are not on the same files as White's King and Queen.\n" "* Castling is done similarly to normal chess:\n" "* o-o-o indicates long castling and o-o short castling." msgstr "" #: lib/pychess/Variants/wildcastle.py:17 msgid "Wildcastle" msgstr "" #: lib/pychess/Variants/wildcastleshuffle.py:11 msgid "" "xboard wildcastle http://home.hccnet.nl/h.g.muller/engine-intf.html#8\n" "FICS wild/1: http://www.freechess.org/Help/HelpFiles/wild.html\n" "* In this variant both sides have the same set of pieces as in normal chess.\n" "* The white king starts on d1 or e1 and the black king starts on d8 or e8,\n" "* and the rooks are in their usual positions.\n" "* Bishops are always on opposite colors.\n" "* Subject to these constraints the position of the pieces on their first ranks is random.\n" "* Castling is done similarly to normal chess:\n" "* o-o-o indicates long castling and o-o short castling." msgstr "" #: lib/pychess/Variants/wildcastleshuffle.py:20 msgid "Wildcastle shuffle" msgstr "" #: lib/pychess/widgets/analyzegameDialog.py:85 msgid "Game analyzing in progress..." msgstr "" #: lib/pychess/widgets/analyzegameDialog.py:86 msgid "Do you want to abort it?" msgstr "" #: lib/pychess/widgets/analyzegameDialog.py:95 #: lib/pychess/widgets/gamewidget.py:202 lib/pychess/widgets/gamewidget.py:320 msgid "Abort" msgstr "" #: lib/pychess/widgets/ChatView.py:125 msgid "Observers" msgstr "" #: lib/pychess/widgets/ChatWindow.py:222 msgid "You have opened no conversations yet" msgstr "" #: lib/pychess/widgets/ChatWindow.py:254 msgid "Only registered users may talk to this channel" msgstr "" #: lib/pychess/widgets/ChatWindow.py:312 msgid "No conversation's selected" msgstr "" #: lib/pychess/widgets/ChatWindow.py:350 msgid "Loading player data" msgstr "" #: lib/pychess/widgets/ChatWindow.py:400 msgid "Receiving list of players" msgstr "" #: lib/pychess/widgets/ChatWindow.py:518 msgid "Friends" msgstr "" #: lib/pychess/widgets/ChatWindow.py:529 msgid "Admin" msgstr "" #: lib/pychess/widgets/ChatWindow.py:540 msgid "More channels" msgstr "" #: lib/pychess/widgets/ChatWindow.py:548 msgid "More players" msgstr "" #: lib/pychess/widgets/ChatWindow.py:558 msgid "Computers" msgstr "" #: lib/pychess/widgets/ChatWindow.py:568 msgid "BlindFold" msgstr "" #: lib/pychess/widgets/ChatWindow.py:578 msgid "Guests" msgstr "" #: lib/pychess/widgets/ChatWindow.py:805 msgid "Conversations" msgstr "" #: lib/pychess/widgets/ChatWindow.py:807 msgid "Conversation info" msgstr "" #: lib/pychess/widgets/enginesDialog.py:152 msgid "Select engine" msgstr "" #: lib/pychess/widgets/enginesDialog.py:156 msgid "Executable files" msgstr "" #: lib/pychess/widgets/enginesDialog.py:176 #: lib/pychess/widgets/enginesDialog.py:210 #: lib/pychess/widgets/enginesDialog.py:235 #, python-format msgid "Unable to add %s" msgstr "" #: lib/pychess/widgets/enginesDialog.py:177 msgid "wine not installed" msgstr "" #: lib/pychess/widgets/enginesDialog.py:211 #: lib/pychess/widgets/enginesDialog.py:236 msgid "There is something wrong with this executable" msgstr "" #: lib/pychess/widgets/enginesDialog.py:266 msgid "Select working directory" msgstr "" #: lib/pychess/widgets/gamenanny.py:115 #, python-format msgid " invalid engine move: %s" msgstr "" #: lib/pychess/widgets/gamenanny.py:134 msgid "Offer Rematch" msgstr "" #: lib/pychess/widgets/gamenanny.py:136 lib/pychess/widgets/gamenanny.py:147 #, python-format msgid "Observe %s" msgstr "" #: lib/pychess/widgets/gamenanny.py:168 msgid "Play Rematch" msgstr "" #: lib/pychess/widgets/gamenanny.py:171 msgid "Undo one move" msgstr "" #: lib/pychess/widgets/gamenanny.py:173 msgid "Undo two moves" msgstr "" #: lib/pychess/widgets/gamenanny.py:203 msgid "The game is paused" msgstr "" #: lib/pychess/widgets/gamenanny.py:221 lib/pychess/widgets/gamenanny.py:222 msgid "Loaded game" msgstr "" #: lib/pychess/widgets/gamenanny.py:228 msgid "Saved game" msgstr "" #: lib/pychess/widgets/gamenanny.py:232 msgid "Analyzer started" msgstr "" #: lib/pychess/widgets/gamenanny.py:281 msgid "You sent an abort offer" msgstr "" #: lib/pychess/widgets/gamenanny.py:283 msgid "You sent an adjournment offer" msgstr "" #: lib/pychess/widgets/gamenanny.py:285 msgid "You sent a draw offer" msgstr "" #: lib/pychess/widgets/gamenanny.py:287 msgid "You sent a pause offer" msgstr "" #: lib/pychess/widgets/gamenanny.py:289 msgid "You sent a resume offer" msgstr "" #: lib/pychess/widgets/gamenanny.py:291 msgid "You sent an undo offer" msgstr "" #: lib/pychess/widgets/gamenanny.py:293 msgid "You asked your opponent to move" msgstr "" #: lib/pychess/widgets/gamenanny.py:305 #, python-format msgid "Engine, %s, has died" msgstr "" #: lib/pychess/widgets/gamenanny.py:306 msgid "" "PyChess has lost connection to the engine, probably because it has died.\n" "\n" "You can try to start a new game with the engine, or try to play against another one." msgstr "" #: lib/pychess/widgets/gamewidget.py:204 msgid "" "This game can be automatically aborted without rating loss because there has" " not yet been two moves made" msgstr "" #: lib/pychess/widgets/gamewidget.py:206 msgid "Offer Abort" msgstr "" #: lib/pychess/widgets/gamewidget.py:208 msgid "" "Your opponent must agree to abort the game because there has been two or " "more moves made" msgstr "" #: lib/pychess/widgets/gamewidget.py:226 msgid "This game can not be adjourned because one or both players are guests" msgstr "" #: lib/pychess/widgets/gamewidget.py:243 msgid "Claim Draw" msgstr "" #: lib/pychess/widgets/gamewidget.py:325 msgid "Pause" msgstr "" #: lib/pychess/widgets/gamewidget.py:326 msgid "Resume" msgstr "" #: lib/pychess/widgets/gamewidget.py:328 msgid "Offer Pause" msgstr "" #: lib/pychess/widgets/gamewidget.py:329 msgid "Offer Resume" msgstr "" #: lib/pychess/widgets/gamewidget.py:333 msgid "Undo" msgstr "" #: lib/pychess/widgets/gamewidget.py:335 msgid "Offer Undo" msgstr "" #: lib/pychess/widgets/gamewidget.py:550 msgid " has lagged for 30 seconds" msgstr "" #: lib/pychess/widgets/gamewidget.py:566 msgid " is lagging heavily but hasn't disconnected" msgstr "" #: lib/pychess/widgets/gamewidget.py:567 msgid "Continue to wait for opponent, or try to adjourn the game?" msgstr "" #: lib/pychess/widgets/gamewidget.py:575 msgid "Wait" msgstr "" #: lib/pychess/widgets/gamewidget.py:576 msgid "Adjourn" msgstr "" #: lib/pychess/widgets/gamewidget.py:648 msgid "Jump to initial position" msgstr "" #: lib/pychess/widgets/gamewidget.py:653 msgid "Step back one move" msgstr "" #: lib/pychess/widgets/gamewidget.py:658 msgid "Go back to the main line" msgstr "" #: lib/pychess/widgets/gamewidget.py:664 msgid "Step forward one move" msgstr "" #: lib/pychess/widgets/gamewidget.py:669 msgid "Jump to latest position" msgstr "" #: lib/pychess/widgets/gamewidget.py:903 msgid "PyChess was unable to load your panel settings" msgstr "" #: lib/pychess/widgets/gamewidget.py:904 msgid "" "Your panel settings have been reset. If this problem repeats, you should " "report it to the developers" msgstr "" #: lib/pychess/widgets/ionest.py:67 lib/pychess/widgets/newGameDialog.py:389 #: lib/pychess/widgets/TaskerManager.py:210 msgid "You" msgstr "" #: lib/pychess/widgets/ionest.py:70 lib/pychess/widgets/newGameDialog.py:390 #: lib/pychess/widgets/preferencesDialog.py:61 #: lib/pychess/widgets/TaskerManager.py:213 msgid "Guest" msgstr "" #: lib/pychess/widgets/ionest.py:93 msgid "Error loading game" msgstr "" #: lib/pychess/widgets/ionest.py:127 lib/pychess/widgets/newGameDialog.py:480 msgid "Open Game" msgstr "" #: lib/pychess/widgets/ionest.py:137 msgid "All Files" msgstr "" #: lib/pychess/widgets/ionest.py:140 msgid "Detect type automatically" msgstr "" #: lib/pychess/widgets/ionest.py:146 msgid "All Chess Files" msgstr "" #: lib/pychess/widgets/ionest.py:228 msgid "Save Game" msgstr "खेल सहेजें" #: lib/pychess/widgets/ionest.py:228 msgid "Export position" msgstr "" #: lib/pychess/widgets/ionest.py:232 lib/pychess/widgets/ionest.py:360 msgid "vs." msgstr "" #: lib/pychess/widgets/ionest.py:249 #, python-format msgid "Unknown file type '%s'" msgstr "" #: lib/pychess/widgets/ionest.py:250 #, python-format msgid "" "Was unable to save '%(uri)s' as PyChess doesn't know the format " "'%(ending)s'." msgstr "" #: lib/pychess/widgets/ionest.py:266 #, python-format msgid "Unable to save file '%s'" msgstr "" #: lib/pychess/widgets/ionest.py:268 msgid "" "You don't have the necessary rights to save the file.\n" "Please ensure that you have given the right path and try again." msgstr "" #: lib/pychess/widgets/ionest.py:276 msgid "_Replace" msgstr "" #: lib/pychess/widgets/ionest.py:280 msgid "File exists" msgstr "" #: lib/pychess/widgets/ionest.py:282 #, python-format msgid "" "A file named '%s' already exists. Would you like to replace " "it?" msgstr "" #: lib/pychess/widgets/ionest.py:283 #, python-format msgid "" "The file already exists in '%s'. If you replace it, its content will be " "overwritten." msgstr "" #: lib/pychess/widgets/ionest.py:299 msgid "Could not save the file" msgstr "" #: lib/pychess/widgets/ionest.py:300 msgid "PyChess was not able to save the game" msgstr "" #: lib/pychess/widgets/ionest.py:301 #, python-format msgid "The error was: %s" msgstr "" #: lib/pychess/widgets/ionest.py:325 #, python-format msgid "There is %d game with unsaved moves." msgid_plural "There are %d games with unsaved moves." msgstr[0] "" msgstr[1] "" #: lib/pychess/widgets/ionest.py:328 msgid "Save moves before closing?" msgstr "" #: lib/pychess/widgets/ionest.py:339 msgid "Unable to save to configured file. Save the games before closing?" msgstr "" #: lib/pychess/widgets/ionest.py:366 #, python-format msgid "_Save %d document" msgid_plural "_Save %d documents" msgstr[0] "" msgstr[1] "" #: lib/pychess/widgets/ionest.py:412 msgid "Save the current game before you close it?" msgstr "" #: lib/pychess/widgets/ionest.py:420 msgid "" "Unable to save to configured file. Save the current game before you close " "it?" msgstr "" #: lib/pychess/widgets/ionest.py:434 msgid "" "It is not possible later to continue the game,\n" "if you don't save it." msgstr "" #: lib/pychess/widgets/LogDialog.py:26 msgid "PyChess Information Window" msgstr "" #: lib/pychess/widgets/LogDialog.py:184 lib/pychess/widgets/LogDialog.py:188 msgid "of" msgstr "" #: lib/pychess/widgets/newGameDialog.py:84 #: lib/pychess/widgets/newGameDialog.py:85 msgid "Human Being" msgstr "" #: lib/pychess/widgets/newGameDialog.py:155 msgid "Rapid" msgstr "" #: lib/pychess/widgets/newGameDialog.py:224 msgid "Minutes:" msgstr "" #: lib/pychess/widgets/newGameDialog.py:228 msgid "Gain:" msgstr "" #: lib/pychess/widgets/newGameDialog.py:241 #, python-format msgid "%(name)s %(minutes)d min + %(gain)d sec/move" msgstr "" #: lib/pychess/widgets/newGameDialog.py:244 #, python-format msgid "%(name)s %(minutes)d min %(gain)d sec/move" msgstr "" #: lib/pychess/widgets/newGameDialog.py:247 #, python-format msgid "%(name)s %(minutes)d min" msgstr "" #: lib/pychess/widgets/newGameDialog.py:265 msgid "Odds" msgstr "" #: lib/pychess/widgets/newGameDialog.py:269 msgid "Asian variants" msgstr "" #: lib/pychess/widgets/newGameDialog.py:301 msgid " chess" msgstr "" #: lib/pychess/widgets/newGameDialog.py:682 msgid "Type or paste PGN game or FEN positions here" msgstr "" #: lib/pychess/widgets/newGameDialog.py:725 msgid "Enter Game" msgstr "" #: lib/pychess/widgets/preferencesDialog.py:123 msgid "Select book file" msgstr "" #: lib/pychess/widgets/preferencesDialog.py:128 msgid "Opening books" msgstr "" #: lib/pychess/widgets/preferencesDialog.py:156 msgid "Select Gaviota TB path" msgstr "" #: lib/pychess/widgets/preferencesDialog.py:331 msgid "Open Sound File" msgstr "" #: lib/pychess/widgets/preferencesDialog.py:341 msgid "Sound files" msgstr "" #: lib/pychess/widgets/preferencesDialog.py:485 msgid "Undescribed panel" msgstr "" #: lib/pychess/widgets/preferencesDialog.py:678 msgid "Select auto save path" msgstr "" #: lib/pychess/widgets/tipOfTheDay.py:51 msgid "" "You can start a new game by Game > New Game, in New Game " "window do you can choose Players, Time Control and Chess " "Variants." msgstr "" #: lib/pychess/widgets/tipOfTheDay.py:52 msgid "" "You can choose from 20 different difficulties to play against the computer." msgstr "" #: lib/pychess/widgets/tipOfTheDay.py:53 msgid "" "Chess Variants are like the pieces of the last line will be placed on the " "board." msgstr "" #: lib/pychess/widgets/tipOfTheDay.py:54 msgid "" "To save a game Game > Save Game As, give the filename and " "choose where you want to be saved. At the bottom choose extension type of " "the file, and Save." msgstr "" #: lib/pychess/widgets/tipOfTheDay.py:55 msgid "" "Do you know that you can call flag when the clock is with you, " "Actions > Call Flag." msgstr "" #: lib/pychess/widgets/tipOfTheDay.py:56 msgid "Pressing Ctrl+Z to offer opponent the possible rollback moves." msgstr "" #: lib/pychess/widgets/tipOfTheDay.py:57 msgid "" "To play on Fullscreen mode, just type F11. Coming back, F11 " "again." msgstr "" #: lib/pychess/widgets/tipOfTheDay.py:58 msgid "Hint mode analyzing your game, enable this type Ctrl+H." msgstr "" #: lib/pychess/widgets/tipOfTheDay.py:59 msgid "" "Spy mode analyzing the oponnent game, enable this type Ctrl+Y." msgstr "" #: lib/pychess/widgets/tipOfTheDay.py:60 msgid "" "You can play chess listening to the sounds of the game, for that, " "Settings > Preferences > Sound tab, enable Use " "sounds in PyChess and choose your preferred sounds." msgstr "" #: lib/pychess/widgets/tipOfTheDay.py:61 msgid "" "Do you know that you can help translate Pychess in your language, " "Help > Translate Pychess." msgstr "" #: lib/pychess/widgets/tipOfTheDay.py:62 msgid "" "Do you know that it is possible to finish a chess game in just 2 turns?" msgstr "" #: lib/pychess/widgets/tipOfTheDay.py:63 msgid "" "Do you know that the number of possible chess games exceeds the number of " "atoms in the Universe?" msgstr "" #: lib/pychess/ic/managers/ChatManager.py:184 msgid "Shout" msgstr "" #: lib/pychess/ic/managers/ChatManager.py:185 msgid "Chess Shout" msgstr "" #: lib/pychess/ic/managers/ChatManager.py:195 #, python-format msgid "Unofficial channel %d" msgstr "" #: lib/pychess/Utils/lutils/LBoard.py:152 #, python-format msgid "" "FEN needs 6 data fields. \n" "\n" "%s" msgstr "" #: lib/pychess/Utils/lutils/LBoard.py:154 #, python-format msgid "" "FEN needs at least 2 data fields in fenstr. \n" "\n" "%s" msgstr "" #: lib/pychess/Utils/lutils/LBoard.py:175 #, python-format msgid "" "Needs 7 slashes in piece placement field. \n" "\n" "%s" msgstr "" #: lib/pychess/Utils/lutils/LBoard.py:178 #, python-format msgid "" "Active color field must be one of w or b. \n" "\n" "%s" msgstr "" #: lib/pychess/Utils/lutils/LBoard.py:189 #, python-format msgid "" "Castling availability field is not legal. \n" "\n" "%s" msgstr "" #: lib/pychess/Utils/lutils/LBoard.py:192 #, python-format msgid "" "En passant cord is not legal. \n" "\n" "%s" msgstr "" #: lib/pychess/Utils/lutils/lmove.py:260 msgid "invalid promoted piece" msgstr "" #: lib/pychess/Utils/lutils/lmove.py:272 msgid "the move needs a piece and a cord" msgstr "" #: lib/pychess/Utils/lutils/lmove.py:306 lib/pychess/Utils/lutils/lmove.py:556 msgid "promotion move without promoted piece is incorrect" msgstr "" #: lib/pychess/Utils/lutils/lmove.py:312 #, python-format msgid "the captured cord (%s) is incorrect" msgstr "" #: lib/pychess/Utils/lutils/lmove.py:323 #, python-format msgid "the end cord (%s) is incorrect" msgstr "" #: lib/pychess/Utils/lutils/strateval.py:24 sidepanel/commentPanel.py:191 #: sidepanel/commentPanel.py:208 msgid "and" msgstr "" #: lib/pychess/Utils/lutils/strateval.py:43 msgid "draws" msgstr "" #: lib/pychess/Utils/lutils/strateval.py:45 msgid "mates" msgstr "" #: lib/pychess/Utils/lutils/strateval.py:49 msgid "puts opponent in check" msgstr "" #: lib/pychess/Utils/lutils/strateval.py:73 msgid "improves king safety" msgstr "" #: lib/pychess/Utils/lutils/strateval.py:75 msgid "slightly improves king safety" msgstr "" #: lib/pychess/Utils/lutils/strateval.py:108 msgid "moves a rook to an open file" msgstr "" #: lib/pychess/Utils/lutils/strateval.py:109 msgid "moves an rook to a half-open file" msgstr "" #: lib/pychess/Utils/lutils/strateval.py:119 #: lib/pychess/Utils/lutils/strateval.py:121 #: lib/pychess/Utils/lutils/strateval.py:124 #: lib/pychess/Utils/lutils/strateval.py:126 #, python-format msgid "moves bishop into fianchetto: %s" msgstr "" #: lib/pychess/Utils/lutils/strateval.py:132 #, python-format msgid "promotes a Pawn to a %s" msgstr "" #: lib/pychess/Utils/lutils/strateval.py:135 msgid "castles" msgstr "" #: lib/pychess/Utils/lutils/strateval.py:158 msgid "takes back material" msgstr "" #: lib/pychess/Utils/lutils/strateval.py:162 #: lib/pychess/Utils/lutils/strateval.py:170 msgid "sacrifies material" msgstr "" #: lib/pychess/Utils/lutils/strateval.py:164 msgid "exchanges material" msgstr "" #: lib/pychess/Utils/lutils/strateval.py:166 msgid "captures material" msgstr "" #: lib/pychess/Utils/lutils/strateval.py:291 #, python-format msgid "rescues a %s" msgstr "" #: lib/pychess/Utils/lutils/strateval.py:294 #, python-format msgid "threatens to win material by %s" msgstr "" #: lib/pychess/Utils/lutils/strateval.py:296 #, python-format msgid "increases the pressure on %s" msgstr "" #: lib/pychess/Utils/lutils/strateval.py:298 #, python-format msgid "defends %s" msgstr "" #: lib/pychess/Utils/lutils/strateval.py:336 #, python-format msgid "pins an enemy %(oppiece)s on the %(piece)s at %(cord)s" msgstr "" #: lib/pychess/Utils/lutils/strateval.py:369 #, python-format msgid "White has a new piece in outpost: %s" msgstr "" #: lib/pychess/Utils/lutils/strateval.py:377 #, python-format msgid "Black has a new piece in outpost: %s" msgstr "" #: lib/pychess/Utils/lutils/strateval.py:416 #, python-format msgid "%(color)s has a new passed pawn on %(cord)s" msgstr "" #: lib/pychess/Utils/lutils/strateval.py:470 msgid "half-open" msgstr "" #: lib/pychess/Utils/lutils/strateval.py:472 #, python-format msgid "in the %(x)s%(y)s file" msgstr "" #: lib/pychess/Utils/lutils/strateval.py:474 #, python-format msgid "in the %(x)s%(y)s files" msgstr "" #: lib/pychess/Utils/lutils/strateval.py:477 #, python-format msgid "%(color)s got a double pawn %(place)s" msgstr "" #: lib/pychess/Utils/lutils/strateval.py:478 #, python-format msgid "%(color)s got new double pawns %(place)s" msgstr "" #: lib/pychess/Utils/lutils/strateval.py:485 #, python-format msgid "%(color)s got an isolated pawn in the %(x)s file" msgid_plural "%(color)s got isolated pawns in the %(x)s files" msgstr[0] "" msgstr[1] "" #: lib/pychess/Utils/lutils/strateval.py:492 #, python-format msgid "%s moves pawns into stonewall formation" msgstr "" #: lib/pychess/Utils/lutils/strateval.py:507 #: lib/pychess/Utils/lutils/strateval.py:514 #, python-format msgid "%s can no longer castle" msgstr "" #: lib/pychess/Utils/lutils/strateval.py:508 #: lib/pychess/Utils/lutils/strateval.py:515 #, python-format msgid "%s can no longer castle in queenside" msgstr "" #: lib/pychess/Utils/lutils/strateval.py:510 #: lib/pychess/Utils/lutils/strateval.py:517 #, python-format msgid "%s can no longer castle in kingside" msgstr "" #: lib/pychess/Utils/lutils/strateval.py:551 #, python-format msgid "%(opcolor)s has a new trapped bishop on %(cord)s" msgstr "" #: lib/pychess/Utils/lutils/strateval.py:573 #, python-format msgid "develops a pawn: %s" msgstr "" #: lib/pychess/Utils/lutils/strateval.py:574 #, python-format msgid "brings a pawn closer to the backrow: %s" msgstr "" #: lib/pychess/Utils/lutils/strateval.py:591 #, python-format msgid "brings a %(piece)s closer to enemy king: %(cord)s" msgstr "" #: lib/pychess/Utils/lutils/strateval.py:594 #, python-format msgid "develops a %(piece)s: %(cord)s" msgstr "" #: lib/pychess/Utils/lutils/strateval.py:612 #, python-format msgid "places a %(piece)s more active: %(cord)s" msgstr "" #: lib/pychess/Utils/lutils/strateval.py:638 msgid "White should do pawn storm in right" msgstr "" #: lib/pychess/Utils/lutils/strateval.py:640 msgid "Black should do pawn storm in left" msgstr "" #: lib/pychess/Utils/lutils/strateval.py:643 msgid "White should do pawn storm in left" msgstr "" #: lib/pychess/Utils/lutils/strateval.py:645 msgid "Black should do pawn storm in right" msgstr "" #: lib/pychess/Utils/lutils/strateval.py:671 msgid "Black has a rather cramped position" msgstr "" #: lib/pychess/Utils/lutils/strateval.py:673 msgid "Black has a slightly cramped position" msgstr "" #: lib/pychess/Utils/lutils/strateval.py:675 msgid "White has a rather cramped position" msgstr "" #: lib/pychess/Utils/lutils/strateval.py:677 msgid "White has a slightly cramped position" msgstr "" #: sidepanel/annotationPanel.py:26 msgid "Annotation" msgstr "" #: sidepanel/annotationPanel.py:29 msgid "Annotated game" msgstr "" #: sidepanel/annotationPanel.py:236 msgid "Copy PGN" msgstr "" #: sidepanel/annotationPanel.py:249 msgid "Add start comment" msgstr "" #: sidepanel/annotationPanel.py:254 msgid "Add comment" msgstr "" #: sidepanel/annotationPanel.py:258 sidepanel/annotationPanel.py:316 msgid "Edit comment" msgstr "" #: sidepanel/annotationPanel.py:269 msgid "Forced move" msgstr "" #: sidepanel/annotationPanel.py:274 msgid "Add move symbol" msgstr "" #: sidepanel/annotationPanel.py:280 msgid "Unclear position" msgstr "" #: sidepanel/annotationPanel.py:289 msgid "Zugzwang" msgstr "" #: sidepanel/annotationPanel.py:290 msgid "Development adv." msgstr "" #: sidepanel/annotationPanel.py:291 msgid "Initiative" msgstr "" #: sidepanel/annotationPanel.py:292 msgid "With attack" msgstr "" #: sidepanel/annotationPanel.py:293 msgid "Compensation" msgstr "" #: sidepanel/annotationPanel.py:294 msgid "Counterplay" msgstr "" #: sidepanel/annotationPanel.py:295 msgid "Time pressure" msgstr "" #: sidepanel/annotationPanel.py:300 msgid "Add evaluation symbol" msgstr "" #: sidepanel/annotationPanel.py:304 msgid "Remove symbols" msgstr "" #: sidepanel/annotationPanel.py:911 #, python-format msgid "round %s" msgstr "" #: sidepanel/bookPanel.py:21 msgid "Hints" msgstr "" #: sidepanel/bookPanel.py:25 msgid "" "The hint panel will provide computer advice during each stage of the game" msgstr "" #: sidepanel/bookPanel.py:27 msgid "Official PyChess panel." msgstr "" #: sidepanel/bookPanel.py:87 msgid "Opening Book" msgstr "" #: sidepanel/bookPanel.py:88 msgid "" "The opening book will try to inspire you during the opening phase of the " "game by showing you common moves made by chess masters" msgstr "" #: sidepanel/bookPanel.py:139 #, python-format msgid "Analysis by %s" msgstr "" #: sidepanel/bookPanel.py:140 #, python-format msgid "" "%s will try to predict which move is best and which side has the advantage" msgstr "" #: sidepanel/bookPanel.py:142 #, python-format msgid "Threat analysis by %s" msgstr "" #: sidepanel/bookPanel.py:143 #, python-format msgid "" "%s will identify what threats would exist if it were your opponent's turn to" " move" msgstr "" #: sidepanel/bookPanel.py:159 sidepanel/bookPanel.py:269 msgid "Calculating..." msgstr "" #: sidepanel/bookPanel.py:300 msgid "" "Engine scores are in units of pawns, from White's point of view. Double " "clicking on analysis lines you can insert them into Annotation panel as " "variations." msgstr "" #: sidepanel/bookPanel.py:302 msgid "" "Adding suggestions can help you find ideas, but slows down the computer's " "analysis." msgstr "" #: sidepanel/bookPanel.py:311 msgid "Endgame Table" msgstr "" #: sidepanel/bookPanel.py:315 msgid "" "The endgame table will show exact analysis when there are few pieces on the " "board." msgstr "" #: sidepanel/bookPanel.py:364 sidepanel/bookPanel.py:367 #, python-format msgid "Mate in %d" msgstr "" #: sidepanel/bookPanel.py:554 msgid "" "In this position,\n" "there is no legal move." msgstr "" #: sidepanel/chatPanel.py:21 msgid "" "The chat panel lets you communicate with your opponent during the game, " "assuming he or she is interested" msgstr "" #: sidepanel/commentPanel.py:16 msgid "Comments" msgstr "" #: sidepanel/commentPanel.py:20 msgid "The comments panel will try to analyze and explain the moves played" msgstr "" #: sidepanel/commentPanel.py:121 msgid "Initial position" msgstr "" #: sidepanel/commentPanel.py:254 #, python-format msgid "%(color)s moves a %(piece)s to %(cord)s" msgstr "" #: sidepanel/engineOutputPanel.py:15 msgid "Engines" msgstr "" #: sidepanel/engineOutputPanel.py:20 msgid "" "The engine output panel shows the thinking output of chess engines (computer" " players) during a game" msgstr "" #: sidepanel/engineOutputPanel.py:44 msgid "No chess engines (computer players) are participating in this game." msgstr "" #: sidepanel/historyPanel.py:10 msgid "Move History" msgstr "" #: sidepanel/historyPanel.py:13 msgid "" "The moves sheet keeps track of the players' moves and lets you navigate " "through the game history" msgstr "" #: sidepanel/scorePanel.py:15 msgid "Score" msgstr "" #: sidepanel/scorePanel.py:19 msgid "" "The score panel tries to evaluate the positions and shows you a graph of the" " game progress" msgstr "" pychess-0.12.2/lang/hi/LC_MESSAGES/pychess.mo0000644000175000017470000000604512653231273020702 0ustar tamasusers00000000000000!$/,%9CN   !# 1 P\ eo       Lk96'p+MI ] &u ] ^ %Y   = ? W t   (  !     12002 min, Fischer Random, 1800↓, BlackConnect to the Free Online Chess ServerPyChess is discovering your engines. Please wait.Analyze gameBlitz:ChallengeHideLightning:Log on as _GuestMaximum analysis time in seconds:New GamePo_rts:Pre_viewPyChess - Connect to Internet ChessPyChess - Internet Chess: FICSPyChess.py:S_ign upSave GameShredderLinuxChess:StandardStandard:TimeUse analyzer:_Accept_Clear Seeks_Help_Name:_New Game_Password:_Start Gamegnuchess:Project-Id-Version: pychess Report-Msgid-Bugs-To: POT-Creation-Date: 2016-01-27 13:28+0100 PO-Revision-Date: 2016-01-28 08:56+0000 Last-Translator: slav0nic Language-Team: Hindi (http://www.transifex.com/gbtami/pychess/language/hi/) MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Language: hi Plural-Forms: nplurals=2; plural=(n != 1); 12002 मिनट,फिस्चेर रन्दोम,1800↓,काला<बड़ा><बी>मुफ्त ऑनलाइन शतरंज सर्वर से कनेक्ट कर<बड़ा><बी><बड़ा><बी>प्य्चेस्स आपके इंजनों की खोज कर रही है.कृपया प्रतीक्षा करें.<बी><बड़ा>खेल का विश्लेषण कीजिएहमले की तैयारी:चुनौतीछिपाएँबिजली:ळोग ओन अस _गुएस्तअधिकतम विश्लेषण समय सेकंड मे नया खेलपो_र्त्स:पूर्वावलोकन (_v)प्य्चेस्स - इंटरनेट शतरंज से जुड़ेंपय्चेस्स -ईन्तेर्नेत चेस्स:एफइएसीसप्य्चेस्स.प्यस_इग्न उपखेल सहेजेंष्रेद्देरलिनक्सचेस्स:मानकमानक:समयविश्लेषक का उपयोग कीजिए_स्वीकारें_कलेअर सीक्समदद(_H)_नाम:नया खेल (_N)_पासवर्ड:खेल आरंभ करें (_S)ग्नुचेस्सpychess-0.12.2/lang/ga/0000755000175000017470000000000012653231274015065 5ustar tamasusers00000000000000pychess-0.12.2/lang/ga/LC_MESSAGES/0000755000175000017470000000000012653231274016652 5ustar tamasusers00000000000000pychess-0.12.2/lang/ga/LC_MESSAGES/pychess.po0000644000175000017470000024452012653216175020702 0ustar tamasusers00000000000000# SOME DESCRIPTIVE TITLE. # Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER # This file is distributed under the same license as the pychess package. # # Translators: # FIRST AUTHOR , 2008 msgid "" msgstr "" "Project-Id-Version: pychess\n" "Report-Msgid-Bugs-To: \n" "POT-Creation-Date: 2016-01-27 13:28+0100\n" "PO-Revision-Date: 2016-01-28 08:56+0000\n" "Last-Translator: slav0nic \n" "Language-Team: Irish (http://www.transifex.com/gbtami/pychess/language/ga/)\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" "Language: ga\n" "Plural-Forms: nplurals=5; plural=(n==1 ? 0 : n==2 ? 1 : n<7 ? 2 : n<11 ? 3 : 4);\n" # "Plural-Forms: nplurals=INTEGER; plural=EXPRESSION;\n" #: glade/analyze_game.glade:22 msgid "Analyze game" msgstr "" #: glade/analyze_game.glade:87 msgid "Use analyzer:" msgstr "" #: glade/analyze_game.glade:122 glade/PyChess.glade:2054 msgid "Maximum analysis time in seconds:" msgstr "" #: glade/analyze_game.glade:163 msgid "" "If the analyzer finds a move where the evaluation difference (the difference" " between the evaluation for the move it thinks is the best move and the " "evaluation for the move made in the game) exceeds this value, it will add an" " annotation for that move (consisting of the engine's Principal Variation " "for the move) to the Annotation panel" msgstr "" #: glade/analyze_game.glade:164 msgid "Variation annotation creation threshold in centipawns:" msgstr "" #: glade/analyze_game.glade:198 msgid "Analyze from current position" msgstr "" #: glade/analyze_game.glade:214 msgid "Add threatening variation lines " msgstr "" #: glade/analyze_game.glade:229 glade/PyChess.glade:1459 msgid "Colorize analyzed moves" msgstr "" #: glade/analyze_game.glade:244 glade/PyChess.glade:1495 msgid "Show evaluation values" msgstr "" #: glade/discovererDialog.glade:18 msgid "PyChess is discovering your engines. Please wait." msgstr "" #: glade/discovererDialog.glade:77 msgid "PyChess.py:" msgstr "" #: glade/discovererDialog.glade:89 msgid "ShredderLinuxChess:" msgstr "" #: glade/discovererDialog.glade:101 msgid "gnuchess:" msgstr "" #: glade/fics_logon.glade:7 msgid "PyChess - Connect to Internet Chess" msgstr "PyChess - Ficheall Nasctha leis an t-Idirlíon" #: glade/fics_logon.glade:47 msgid "Connect to the Free Online Chess Server" msgstr "" #: glade/fics_logon.glade:129 glade/taskers.glade:394 msgid "_Password:" msgstr "_Focal Faire:" #: glade/fics_logon.glade:143 msgid "_Name:" msgstr "_Ainm:" #: glade/fics_logon.glade:191 msgid "Log on as _Guest" msgstr "Sínigh isteach mar _Aoí" #: glade/fics_logon.glade:227 msgid "Host:" msgstr "" #: glade/fics_logon.glade:259 msgid "Po_rts:" msgstr "" #: glade/fics_logon.glade:271 msgid "Auto login on startup" msgstr "" #: glade/fics_logon.glade:385 msgid "S_ign up" msgstr "" #: glade/fics_lounge.glade:35 msgid "Challenge: " msgstr "" #: glade/fics_lounge.glade:97 msgid "Send Challenge" msgstr "" #: glade/fics_lounge.glade:133 msgid "Challenge:" msgstr "" #: glade/fics_lounge.glade:327 glade/fics_lounge.glade:2078 msgid "Lightning:" msgstr "" #: glade/fics_lounge.glade:351 glade/fics_lounge.glade:2102 msgid "Standard:" msgstr "" #: glade/fics_lounge.glade:375 glade/fics_lounge.glade:2126 msgid "Blitz:" msgstr "" #: glade/fics_lounge.glade:400 msgid "2 min, Fischer Random, Black" msgstr "" #: glade/fics_lounge.glade:422 msgid "10 min + 6 sec/move, White" msgstr "" #: glade/fics_lounge.glade:444 msgid "5 min" msgstr "" #: glade/fics_lounge.glade:480 msgid "Edit Seek" msgstr "" #: glade/fics_lounge.glade:584 lib/pychess/ic/ICLounge.py:2208 #: lib/pychess/ic/__init__.py:101 lib/pychess/Utils/GameModel.py:206 msgid "Untimed" msgstr "" #: glade/fics_lounge.glade:637 msgid "Minutes: " msgstr "" #: glade/fics_lounge.glade:665 msgid " Gain: " msgstr "" #: glade/fics_lounge.glade:703 msgid "Time control: " msgstr "" #: glade/fics_lounge.glade:716 lib/pychess/ic/FICSObjects.py:56 #: lib/pychess/ic/ICLounge.py:1137 lib/pychess/ic/ICLounge.py:2208 #: lib/pychess/ic/__init__.py:99 msgid "Standard" msgstr "" #: glade/fics_lounge.glade:757 glade/newInOut.glade:633 msgid "Time Control" msgstr "" #: glade/fics_lounge.glade:814 glade/fics_lounge.glade:1346 msgid "Don't care" msgstr "" #: glade/fics_lounge.glade:879 msgid "Your strength: " msgstr "" #: glade/fics_lounge.glade:921 msgid "(Blitz)" msgstr "" #: glade/fics_lounge.glade:951 msgid "Opponent's strength: " msgstr "" #: glade/fics_lounge.glade:1055 msgid "" "When this button is in the \"locked\" state, the relationship\n" "between \"Opponent's strength\" and \"Your strength\" will be\n" "preserved when \n" "a) your rating for the type of game sought has changed\n" "b) you change the variant or the time control" msgstr "" #: glade/fics_lounge.glade:1095 msgid "Center:" msgstr "" #: glade/fics_lounge.glade:1134 msgid "1200" msgstr "" #: glade/fics_lounge.glade:1188 msgid "Tolerance:" msgstr "" #: glade/fics_lounge.glade:1243 lib/pychess/ic/ICLounge.py:2452 msgid "Hide" msgstr "" #: glade/fics_lounge.glade:1289 msgid "Opponent Strength" msgstr "" #: glade/fics_lounge.glade:1386 lib/pychess/Database/gamelist.py:40 #: lib/pychess/ic/ICLounge.py:1357 lib/pychess/ic/ICLounge.py:1557 #: lib/pychess/ic/ICLounge.py:2108 lib/pychess/Utils/repr.py:10 #: lib/pychess/widgets/ChessClock.py:40 #: lib/pychess/widgets/TaskerManager.py:153 msgid "White" msgstr "Bán" #: glade/fics_lounge.glade:1414 lib/pychess/Database/gamelist.py:40 #: lib/pychess/ic/ICLounge.py:1358 lib/pychess/ic/ICLounge.py:1558 #: lib/pychess/ic/ICLounge.py:2110 lib/pychess/Utils/repr.py:10 #: lib/pychess/widgets/ChessClock.py:40 #: lib/pychess/widgets/TaskerManager.py:154 msgid "Black" msgstr "Dubh" #: glade/fics_lounge.glade:1453 msgid "Your Color" msgstr "" #: glade/fics_lounge.glade:1512 msgid "Play normal chess rules" msgstr "" #: glade/fics_lounge.glade:1552 msgid "Play" msgstr "" #: glade/fics_lounge.glade:1618 glade/newInOut.glade:833 msgid "Chess Variant" msgstr "" #: glade/fics_lounge.glade:1676 msgid "Rated game" msgstr "" #: glade/fics_lounge.glade:1692 msgid "Manually accept opponent" msgstr "" #: glade/fics_lounge.glade:1722 msgid "Options" msgstr "" #: glade/fics_lounge.glade:1750 msgid "PyChess - Internet Chess: FICS" msgstr "PyChess - Ficheall Idirlín: FICS" #: glade/fics_lounge.glade:1823 msgid "_Clear Seeks" msgstr "" #: glade/fics_lounge.glade:1847 msgid "_Accept" msgstr "_Glac" #: glade/fics_lounge.glade:1871 msgid "_Decline" msgstr "" #: glade/fics_lounge.glade:2151 msgid "2 min, Fischer Random, 1800↓, Black" msgstr "" #: glade/fics_lounge.glade:2172 msgid "10 min + 6 sec/move, 1400↑, White" msgstr "" #: glade/fics_lounge.glade:2193 msgid "5 min, 1200-1800, Manual" msgstr "" #: glade/fics_lounge.glade:2247 msgid "Send all seeks" msgstr "" #: glade/fics_lounge.glade:2301 msgid "Send seek" msgstr "" #: glade/fics_lounge.glade:2337 msgid "Create Seek" msgstr "" #: glade/fics_lounge.glade:2353 msgid "_Seeks / Challenges" msgstr "" #: glade/fics_lounge.glade:2374 lib/pychess/ic/ICLounge.py:472 #: lib/pychess/ic/ICLounge.py:670 lib/pychess/ic/ICLounge.py:1357 #: lib/pychess/ic/ICLounge.py:1358 msgid "Rating" msgstr "Meastachán" #: glade/fics_lounge.glade:2399 msgid "Time" msgstr "Am" #: glade/fics_lounge.glade:2419 msgid "Seek _Graph" msgstr "" #: glade/fics_lounge.glade:2444 msgid "0 Players Ready" msgstr "" #: glade/fics_lounge.glade:2496 msgid "Challenge" msgstr "" #: glade/fics_lounge.glade:2549 glade/fics_lounge.glade:2735 msgid "Observe" msgstr "" #: glade/fics_lounge.glade:2602 msgid "Start Private Chat" msgstr "" #: glade/fics_lounge.glade:2659 msgid "_Player List" msgstr "" #: glade/fics_lounge.glade:2792 msgid "_Game List" msgstr "" #: glade/fics_lounge.glade:2847 msgid "_My games" msgstr "" #: glade/fics_lounge.glade:2904 glade/PyChess.glade:841 msgid "Offer _Resume" msgstr "" #: glade/fics_lounge.glade:2962 glade/PyChess.glade:880 msgid "R_esign" msgstr "" #: glade/fics_lounge.glade:3006 glade/PyChess.glade:820 msgid "Offer _Draw" msgstr "" #: glade/fics_lounge.glade:3050 msgid "Offer A_bort" msgstr "" #: glade/fics_lounge.glade:3107 msgid "Pre_view" msgstr "" #: glade/fics_lounge.glade:3151 msgid "Examine" msgstr "" #: glade/fics_lounge.glade:3208 msgid "_Archived" msgstr "" #: glade/fics_lounge.glade:3313 msgid "News" msgstr "Nuacht" #: glade/fics_lounge.glade:3345 msgid "Show Console" msgstr "" #: glade/fics_lounge.glade:3359 msgid "Show _Chat" msgstr "" #: glade/fics_lounge.glade:3373 msgid "_Log Off" msgstr "" #: glade/fics_lounge.glade:3393 msgid "Tools" msgstr "Uirlisí" #: glade/fics_lounge.glade:3428 msgid "Asymmetric Random " msgstr "" #: glade/findbar.glade:6 msgid "window1" msgstr "" #: glade/findbar.glade:21 msgid "0 of 0" msgstr "" #: glade/findbar.glade:66 msgid "Search:" msgstr "" #: glade/findbar.glade:134 msgid "_Previous" msgstr "" #: glade/findbar.glade:192 msgid "_Next" msgstr "" #: glade/newInOut.glade:45 lib/pychess/widgets/newGameDialog.py:445 msgid "New Game" msgstr "Cluiche Nua" #: glade/newInOut.glade:108 msgid "_Start Game" msgstr "_Tosaigh an Cluiche" #: glade/newInOut.glade:130 msgid "Copy FEN" msgstr "" #: glade/newInOut.glade:143 msgid "Clear" msgstr "" #: glade/newInOut.glade:156 msgid "Paste FEN" msgstr "" #: glade/newInOut.glade:257 msgid "_Black player:" msgstr "" #: glade/newInOut.glade:274 msgid "_White player:" msgstr "" #: glade/newInOut.glade:385 msgid "Players" msgstr "Imreoirí" #: glade/newInOut.glade:436 msgid "_Untimed" msgstr "" #: glade/newInOut.glade:475 msgid "Blitz: 5 min" msgstr "" #: glade/newInOut.glade:526 msgid "Rapid: 15 min + 10 sec/move" msgstr "" #: glade/newInOut.glade:575 msgid "Normal: 40 min + 15 sec/move" msgstr "" #: glade/newInOut.glade:684 msgid "_Play Normal chess" msgstr "" #: glade/newInOut.glade:724 msgid "Play Fischer Random chess" msgstr "" #: glade/newInOut.glade:774 msgid "Play Losers chess" msgstr "" #: glade/newInOut.glade:919 msgid "Open Game" msgstr "" #: glade/newInOut.glade:1162 msgid "Initial Position" msgstr "" #: glade/newInOut.glade:1219 msgid "Enter Game Notation" msgstr "" #: glade/newInOut.glade:1314 msgid "Halfmove clock" msgstr "" #: glade/newInOut.glade:1327 msgid "En passant line" msgstr "" #: glade/newInOut.glade:1339 msgid "Side to move" msgstr "" #: glade/newInOut.glade:1351 msgid "Move number" msgstr "" #: glade/newInOut.glade:1361 msgid "Black O-O" msgstr "" #: glade/newInOut.glade:1375 msgid "Black O-O-O" msgstr "" #: glade/newInOut.glade:1389 msgid "White O-O-O" msgstr "" #: glade/newInOut.glade:1403 msgid "White O-O" msgstr "" #: glade/promotion.glade:7 msgid "Promotion" msgstr "" #: glade/promotion.glade:49 lib/pychess/Utils/repr.py:12 msgid "Queen" msgstr "Banríon" #: glade/promotion.glade:95 lib/pychess/Utils/repr.py:12 msgid "Rook" msgstr "Rúcach" #: glade/promotion.glade:141 lib/pychess/Utils/repr.py:12 msgid "Bishop" msgstr "Easpag" #: glade/promotion.glade:187 lib/pychess/Utils/repr.py:12 msgid "Knight" msgstr "Ridire" #: glade/promotion.glade:233 lib/pychess/Utils/repr.py:12 msgid "King" msgstr "" #: glade/promotion.glade:265 msgid "Promote pawn to what?" msgstr "" #: glade/PyChess.glade:9 msgid "Chess client" msgstr "" #: glade/PyChess.glade:44 msgid "Game information" msgstr "Faisnéis an chluiche" #: glade/PyChess.glade:164 msgid "Event:" msgstr "Teagmhas:" #: glade/PyChess.glade:178 msgid "Site:" msgstr "Suíomh:" #: glade/PyChess.glade:204 msgid "Round:" msgstr "Dreas:" #: glade/PyChess.glade:237 msgid "White:" msgstr "" #: glade/PyChess.glade:249 msgid "Black:" msgstr "" #: glade/PyChess.glade:302 msgid "Game data" msgstr "Sonraí an chluiche" #: glade/PyChess.glade:357 msgid "Date of game" msgstr "Dáta an chluiche" #: glade/PyChess.glade:495 msgid "_Game" msgstr "_Cluiche" #: glade/PyChess.glade:502 msgid "_New Game" msgstr "Cluiche _Nua" #: glade/PyChess.glade:515 msgid "Play _Internet Chess" msgstr "" #: glade/PyChess.glade:534 msgid "_Load Game" msgstr "_Luchtaigh Cluiche" #: glade/PyChess.glade:550 msgid "Load _Recent Game" msgstr "" #: glade/PyChess.glade:558 msgid "Open _Database" msgstr "" #: glade/PyChess.glade:569 lib/pychess/widgets/newGameDialog.py:615 msgid "Setup Position" msgstr "" #: glade/PyChess.glade:579 msgid "Enter Game _Notation" msgstr "" #: glade/PyChess.glade:592 msgid "_Save Game" msgstr "" #: glade/PyChess.glade:606 msgid "Save Game _As" msgstr "" #: glade/PyChess.glade:624 msgid "Share Game" msgstr "" #: glade/PyChess.glade:630 msgid "_Export Position" msgstr "" #: glade/PyChess.glade:644 msgid "_Analyze Game" msgstr "" #: glade/PyChess.glade:678 msgid "Player _Rating" msgstr "" #: glade/PyChess.glade:723 msgid "_Edit" msgstr "" #: glade/PyChess.glade:734 msgid "_Copy PGN" msgstr "" #: glade/PyChess.glade:746 msgid "_Copy FEN" msgstr "" #: glade/PyChess.glade:763 msgid "_Engines" msgstr "" #: glade/PyChess.glade:789 msgid "_Actions" msgstr "_Gníomhartha" #: glade/PyChess.glade:800 msgid "Offer _Abort" msgstr "" #: glade/PyChess.glade:810 msgid "Offer Ad_journment" msgstr "" #: glade/PyChess.glade:831 msgid "Offer _Pause" msgstr "" #: glade/PyChess.glade:847 msgid "Offer _Undo" msgstr "" #: glade/PyChess.glade:870 msgid "_Call Flag" msgstr "" #: glade/PyChess.glade:890 msgid "Ask to _Move" msgstr "" #: glade/PyChess.glade:905 msgid "Auto Call _Flag" msgstr "" #: glade/PyChess.glade:918 msgid "_View" msgstr "_Amharc" #: glade/PyChess.glade:925 msgid "_Rotate Board" msgstr "_Rothlaigh an Clár" #: glade/PyChess.glade:939 msgid "_Fullscreen" msgstr "" #: glade/PyChess.glade:952 msgid "Leave _Fullscreen" msgstr "" #: glade/PyChess.glade:969 msgid "_Show Sidepanels" msgstr "" #: glade/PyChess.glade:980 msgid "_Log Viewer" msgstr "" #: glade/PyChess.glade:997 msgid "_Hint mode" msgstr "" #: glade/PyChess.glade:1009 msgid "Sp_y mode" msgstr "" #: glade/PyChess.glade:1024 msgid "_Help" msgstr "_Cabhair" #: glade/PyChess.glade:1034 msgid "About Chess" msgstr "Maidir le Ficheall" #: glade/PyChess.glade:1043 msgid "How to Play" msgstr "" #: glade/PyChess.glade:1052 msgid "Translate PyChess" msgstr "" #: glade/PyChess.glade:1058 msgid "Tip of the Day" msgstr "" #: glade/PyChess.glade:1153 msgid "Default" msgstr "" #: glade/PyChess.glade:1156 msgid "Knights" msgstr "" #: glade/PyChess.glade:1167 lib/pychess/widgets/preferencesDialog.py:349 msgid "Beep" msgstr "Bíp" #: glade/PyChess.glade:1170 lib/pychess/widgets/preferencesDialog.py:350 msgid "Select sound file..." msgstr "Roghnaigh comhad fuaime..." #: glade/PyChess.glade:1173 lib/pychess/widgets/preferencesDialog.py:348 msgid "No sound" msgstr "Gan fuaim" #: glade/PyChess.glade:1180 msgid "Preferences" msgstr "Sainroghanna" #: glade/PyChess.glade:1218 msgid "The displayed name of the first human player, e.g., John." msgstr "" #: glade/PyChess.glade:1230 msgid "Name of _first human player:" msgstr "" #: glade/PyChess.glade:1259 msgid "The displayed name of the guest player, e.g., Mary." msgstr "" #: glade/PyChess.glade:1271 msgid "Name of s_econd human player:" msgstr "" #: glade/PyChess.glade:1307 msgid "_Hide tabs when only one game is open" msgstr "_Folaigh na cluaisíní nuair atá nach bhfuil ach cluiche amháin ar oscailt" #: glade/PyChess.glade:1312 msgid "" "If set, this hides the tab in the top of the playing window, when it is not " "needed." msgstr "" #: glade/PyChess.glade:1326 msgid "_Use main app closer [x] to close all games" msgstr "" #: glade/PyChess.glade:1331 msgid "" "If set, clicking on main application window closer first time it closes all " "games." msgstr "" #: glade/PyChess.glade:1345 msgid "Auto _rotate board to current human player" msgstr "" #: glade/PyChess.glade:1350 msgid "" "If set, the board will turn after each move, to show the natural view for " "the current player." msgstr "" #: glade/PyChess.glade:1364 msgid "Auto _promote to queen" msgstr "" #: glade/PyChess.glade:1369 msgid "If set, pawn promotes to queen without promotion dialog selection." msgstr "" #: glade/PyChess.glade:1383 msgid "Face _to Face display mode" msgstr "" #: glade/PyChess.glade:1388 msgid "" "If set, the black pieces will be head down, suitable for playing against " "friends on mobile devices." msgstr "" #: glade/PyChess.glade:1402 msgid "Sho_w cords" msgstr "" #: glade/PyChess.glade:1407 msgid "" "If set, the playing board will display labels and ranks for each chess " "field. These are usable in chess notation." msgstr "" #: glade/PyChess.glade:1421 msgid "Show _captured pieces" msgstr "" #: glade/PyChess.glade:1426 msgid "If set, the captured figurines will be shown next to the board." msgstr "" #: glade/PyChess.glade:1440 msgid "Prefer figures in _notation" msgstr "" #: glade/PyChess.glade:1445 msgid "" "If set, PyChess will use figures to express moved pieces, rather than " "uppercase letters." msgstr "" #: glade/PyChess.glade:1464 msgid "If set, PyChess will colorize suboptimal analyzed moves with red." msgstr "" #: glade/PyChess.glade:1477 msgid "Show elapsed move times" msgstr "" #: glade/PyChess.glade:1482 msgid "If set, the elapsed time that a player used for the move is shown." msgstr "" #: glade/PyChess.glade:1500 msgid "If set, the hint analyzer engine evaluation value is shown." msgstr "" #: glade/PyChess.glade:1526 msgid "General Options" msgstr "" #: glade/PyChess.glade:1560 msgid "F_ull board animation" msgstr "" #: glade/PyChess.glade:1565 msgid "Animate pieces, board rotation and more. Use this on fast machines." msgstr "" #: glade/PyChess.glade:1579 msgid "Only animate _moves" msgstr "" #: glade/PyChess.glade:1584 msgid "Only animate piece moves." msgstr "" #: glade/PyChess.glade:1599 msgid "No _animation" msgstr "" #: glade/PyChess.glade:1604 msgid "Never use animation. Use this on slow machines." msgstr "" #: glade/PyChess.glade:1632 msgid "Animation" msgstr "Beochan" #: glade/PyChess.glade:1651 msgid "_General" msgstr "" #: glade/PyChess.glade:1692 msgid "Use opening _book" msgstr "" #: glade/PyChess.glade:1697 msgid "If set, PyChess will suggest best opening moves on hint panel." msgstr "" #: glade/PyChess.glade:1724 msgid "Polyglot book file:" msgstr "" #: glade/PyChess.glade:1768 msgid "Use _local tablebases" msgstr "" #: glade/PyChess.glade:1773 msgid "" "If set, PyChess will show game results for different moves in positions containing 6 or less pieces.\n" "You can download tablebase files from:\n" "http://www.olympuschess.com/egtb/gaviota/" msgstr "" #: glade/PyChess.glade:1803 msgid "Gaviota TB path:" msgstr "" #: glade/PyChess.glade:1843 msgid "Use _online tablebases" msgstr "" #: glade/PyChess.glade:1848 msgid "" "If set, PyChess will show game results for different moves in positions containing 6 or less pieces.\n" "It will search positions from http://www.k4it.de/" msgstr "" #: glade/PyChess.glade:1870 msgid "Opening, endgame" msgstr "" #: glade/PyChess.glade:1904 msgid "Use _analyzer" msgstr "Bain feidhm as an" #: glade/PyChess.glade:1946 msgid "" "The analyzer will run in the background and analyze the game. This is " "necessary for the hint mode to work" msgstr "" #: glade/PyChess.glade:1978 msgid "Use _inverted analyzer" msgstr "" #: glade/PyChess.glade:2020 msgid "" "The inverse analyzer will analyze the game as if your opponent was to move. " "This is necessary for the spy mode to work" msgstr "" #: glade/PyChess.glade:2096 msgid "Analyzing" msgstr "Ag miondealú" #: glade/PyChess.glade:2118 msgid "_Hints" msgstr "" #: glade/PyChess.glade:2263 msgid "Uninstall" msgstr "" #: glade/PyChess.glade:2317 msgid "Ac_tive" msgstr "" #: glade/PyChess.glade:2367 msgid "Installed Sidepanels" msgstr "" #: glade/PyChess.glade:2382 msgid "Side_panels" msgstr "" #: glade/PyChess.glade:2440 msgid "Light Squares :" msgstr "" #: glade/PyChess.glade:2479 msgid "Dark Squares :" msgstr "" #: glade/PyChess.glade:2515 msgid "Reset Default Colours" msgstr "" #: glade/PyChess.glade:2551 msgid "Board Colours" msgstr "" #: glade/PyChess.glade:2610 msgid "Chess Sets" msgstr "" #: glade/PyChess.glade:2634 msgid "Themes" msgstr "" #: glade/PyChess.glade:2659 msgid "_Use sounds in PyChess" msgstr "_Bain feidhm as fuaimeanna i bPyChess" #: glade/PyChess.glade:2982 msgid "A player _checks:" msgstr "" #: glade/PyChess.glade:2997 msgid "A player _moves:" msgstr "" #: glade/PyChess.glade:3010 msgid "Game is _drawn:" msgstr "" #: glade/PyChess.glade:3025 msgid "Game is _lost:" msgstr "" #: glade/PyChess.glade:3040 msgid "Game is _won:" msgstr "" #: glade/PyChess.glade:3055 msgid "A player c_aptures:" msgstr "" #: glade/PyChess.glade:3084 msgid "Game is _set-up:" msgstr "" #: glade/PyChess.glade:3136 msgid "_Observed moves:" msgstr "" #: glade/PyChess.glade:3151 msgid "Observed _ends:" msgstr "" #: glade/PyChess.glade:3265 msgid "Short on _time:" msgstr "" #: glade/PyChess.glade:3317 msgid "_Invalid move:" msgstr "" #: glade/PyChess.glade:3369 msgid "Activate alarm when _remaining sec is:" msgstr "" #: glade/PyChess.glade:3416 msgid "Play Sound When..." msgstr "Seinn Fuaim Nuair A..." #: glade/PyChess.glade:3438 msgid "_Sounds" msgstr "" #: glade/PyChess.glade:3463 msgid "_Auto save finished games" msgstr "" #: glade/PyChess.glade:3497 msgid "Save files to:" msgstr "" #: glade/PyChess.glade:3525 msgid "Use name format:" msgstr "" #: glade/PyChess.glade:3569 msgid "Names: #n1, #n2" msgstr "" #: glade/PyChess.glade:3582 msgid "Year, month, day: #y, #m, #d" msgstr "" #: glade/PyChess.glade:3619 msgid "Save elapsed move _times" msgstr "" #: glade/PyChess.glade:3644 msgid "Save analyzing engine _evaluation values" msgstr "" #: glade/PyChess.glade:3669 msgid "Save _own games only" msgstr "" #: glade/PyChess.glade:3698 msgid "Save" msgstr "" #: glade/PyChess.glade:3728 msgid "uci" msgstr "" #: glade/PyChess.glade:3731 msgid "xboard" msgstr "" #: glade/PyChess.glade:3739 msgid "Manage engines" msgstr "" #: glade/PyChess.glade:3837 msgid "Command:" msgstr "" #: glade/PyChess.glade:3851 msgid "Protocol:" msgstr "" #: glade/PyChess.glade:3865 msgid "Parameters:" msgstr "" #: glade/PyChess.glade:3878 msgid "Command line parameters needed by the engine." msgstr "" #: glade/PyChess.glade:3903 msgid "" "Engines use uci or xboard communication protocol to talk to the GUI.\n" "If it can use both you can set here which one you like." msgstr "" #: glade/PyChess.glade:3929 msgid "Working directory:" msgstr "" #: glade/PyChess.glade:3942 msgid "The directory where the engine will be started from." msgstr "" #: glade/saveGamesDialog.glade:7 msgid "Quit PyChess" msgstr "" #: glade/saveGamesDialog.glade:24 lib/pychess/widgets/ionest.py:424 msgid "Close _without Saving" msgstr "Dún gan cuir i dtaisce" #: glade/saveGamesDialog.glade:83 msgid "_Save %d documents" msgstr "" #: glade/saveGamesDialog.glade:141 msgid "" "There are %d games with unsaved moves. Save changes before " "closing?" msgstr "" #: glade/saveGamesDialog.glade:161 msgid "Select the games you want to save:" msgstr "" #: glade/saveGamesDialog.glade:204 msgid "If you don't save, new changes to your games will be permanently lost." msgstr "" #: glade/taskers.glade:126 msgid "_Opponent:" msgstr "" #: glade/taskers.glade:154 msgid "_Your Color:" msgstr "" #: glade/taskers.glade:219 msgid "_Start Game" msgstr "" #: glade/taskers.glade:338 msgid "Log on as G_uest" msgstr "" #: glade/taskers.glade:410 msgid "Ha_ndle:" msgstr "" #: glade/taskers.glade:469 msgid "_Connect to server" msgstr "" #: glade/tipoftheday.glade:7 msgid "Tip Of The day" msgstr "" #: glade/tipoftheday.glade:62 msgid "Show tips at startup" msgstr "" #: lib/pychess/Main.py:302 msgid "http://en.wikipedia.org/wiki/Chess" msgstr "http://en.wikipedia.org/wiki/Chess" #: lib/pychess/Main.py:305 msgid "http://en.wikipedia.org/wiki/Rules_of_chess" msgstr "http://en.wikipedia.org/wiki/Rules_of_chess" #: lib/pychess/Main.py:370 lib/pychess/widgets/gamenanny.py:80 msgid "Welcome" msgstr "" #: lib/pychess/Database/gamelist.py:40 msgid "Id" msgstr "" #: lib/pychess/Database/gamelist.py:40 msgid "W Elo" msgstr "" #: lib/pychess/Database/gamelist.py:40 msgid "B Elo" msgstr "" #: lib/pychess/Database/gamelist.py:41 msgid "Result" msgstr "" #: lib/pychess/Database/gamelist.py:41 msgid "Event" msgstr "" #: lib/pychess/Database/gamelist.py:41 msgid "Site" msgstr "" #: lib/pychess/Database/gamelist.py:41 msgid "Round" msgstr "" #: lib/pychess/Database/gamelist.py:41 msgid "Date" msgstr "" #: lib/pychess/Database/gamelist.py:41 msgid "ECO" msgstr "" #: lib/pychess/Database/gamelist.py:62 msgid "PyChess Game Database" msgstr "" #: lib/pychess/Database/PgnImport.py:188 #, python-format msgid "The game #%s can't be loaded, because of an error parsing FEN" msgstr "" #: lib/pychess/ic/FICSConnection.py:139 msgid "The connection was broken - got \"end of file\" message" msgstr "" #: lib/pychess/ic/FICSConnection.py:140 #, python-format msgid "'%s' is not a registered name" msgstr "" #: lib/pychess/ic/FICSConnection.py:141 msgid "" "The entered password was invalid.\n" "If you forgot your password, go to http://www.freechess.org/password to request a new one over email." msgstr "" #: lib/pychess/ic/FICSConnection.py:145 #, python-format msgid "Sorry '%s' is already logged in" msgstr "" #: lib/pychess/ic/FICSConnection.py:146 #, python-format msgid "'%s' is a registered name. If it is yours, type the password." msgstr "" #: lib/pychess/ic/FICSConnection.py:147 msgid "" "Due to abuse problems, guest connections have been prevented.\n" "You can still register on http://www.freechess.org" msgstr "" #: lib/pychess/ic/FICSConnection.py:166 msgid "Connecting to server" msgstr "" #: lib/pychess/ic/FICSConnection.py:181 msgid "Logging on to server" msgstr "" #: lib/pychess/ic/FICSConnection.py:239 msgid "Setting up environment" msgstr "" #: lib/pychess/ic/FICSObjects.py:35 lib/pychess/ic/FICSObjects.py:47 #, python-format msgid "%(player)s is %(status)s" msgstr "" #: lib/pychess/ic/FICSObjects.py:46 msgid "not playing" msgstr "" #: lib/pychess/ic/FICSObjects.py:54 lib/pychess/ic/ICLounge.py:1136 #: lib/pychess/ic/ICLounge.py:2209 lib/pychess/ic/__init__.py:98 #: lib/pychess/widgets/newGameDialog.py:153 msgid "Blitz" msgstr "Gasta" #: lib/pychess/ic/FICSObjects.py:58 lib/pychess/ic/ICLounge.py:1137 #: lib/pychess/ic/ICLounge.py:2209 lib/pychess/ic/__init__.py:100 msgid "Lightning" msgstr "Fíor-Thapa" #: lib/pychess/ic/FICSObjects.py:60 lib/pychess/Variants/atomic.py:15 msgid "Atomic" msgstr "" #: lib/pychess/ic/FICSObjects.py:62 lib/pychess/Variants/bughouse.py:9 msgid "Bughouse" msgstr "" #: lib/pychess/ic/FICSObjects.py:64 lib/pychess/Variants/crazyhouse.py:9 msgid "Crazyhouse" msgstr "" #: lib/pychess/ic/FICSObjects.py:66 lib/pychess/Variants/losers.py:9 msgid "Losers" msgstr "" #: lib/pychess/ic/FICSObjects.py:68 lib/pychess/Variants/suicide.py:12 msgid "Suicide" msgstr "" #: lib/pychess/ic/FICSObjects.py:70 lib/pychess/ic/__init__.py:129 msgid "Wild" msgstr "" #: lib/pychess/ic/FICSObjects.py:117 msgid "Online" msgstr "" #: lib/pychess/ic/FICSObjects.py:118 lib/pychess/ic/FICSObjects.py:143 msgid "Offline" msgstr "" #: lib/pychess/ic/FICSObjects.py:133 msgid "Available" msgstr "" #: lib/pychess/ic/FICSObjects.py:135 msgid "Playing" msgstr "" #: lib/pychess/ic/FICSObjects.py:141 msgid "Idle" msgstr "" #: lib/pychess/ic/FICSObjects.py:145 msgid "Examining" msgstr "" #: lib/pychess/ic/FICSObjects.py:147 msgid "Not Available" msgstr "" #: lib/pychess/ic/FICSObjects.py:149 msgid "Running Simul Match" msgstr "" #: lib/pychess/ic/FICSObjects.py:151 msgid "In Tournament" msgstr "" #: lib/pychess/ic/FICSObjects.py:308 lib/pychess/ic/FICSObjects.py:492 #: lib/pychess/ic/ICLounge.py:2278 msgid "Unrated" msgstr "" #: lib/pychess/ic/FICSObjects.py:491 lib/pychess/ic/ICLounge.py:670 #: lib/pychess/ic/ICLounge.py:1358 lib/pychess/ic/ICLounge.py:1558 #: lib/pychess/ic/ICLounge.py:2113 msgid "Rated" msgstr "" #: lib/pychess/ic/FICSObjects.py:498 lib/pychess/ic/ICLounge.py:2098 #, python-format msgid "%d min" msgstr "" #: lib/pychess/ic/FICSObjects.py:500 #, python-format msgid " + %d sec" msgstr "" #: lib/pychess/ic/FICSObjects.py:517 #, python-format msgid "%(player)s plays %(color)s" msgstr "" #: lib/pychess/ic/FICSObjects.py:519 lib/pychess/ic/ICLounge.py:909 msgid "white" msgstr "" #: lib/pychess/ic/FICSObjects.py:519 lib/pychess/ic/ICLounge.py:909 msgid "black" msgstr "" #: lib/pychess/ic/FICSObjects.py:565 msgid "This is a continuation of an adjourned match" msgstr "" #: lib/pychess/ic/FICSObjects.py:654 msgid "Opponent Rating" msgstr "" #: lib/pychess/ic/FICSObjects.py:656 msgid "Manual Accept" msgstr "" #: lib/pychess/ic/FICSObjects.py:810 msgid "Private" msgstr "" #: lib/pychess/ic/FICSObjects.py:930 lib/pychess/ic/ICLounge.py:527 #: lib/pychess/Savers/epd.py:139 msgid "Unknown" msgstr "Anaithnid" #: lib/pychess/ic/ICLogon.py:159 lib/pychess/ic/ICLogon.py:165 msgid "Connection Error" msgstr "Botún Naisc" #: lib/pychess/ic/ICLogon.py:161 msgid "Log on Error" msgstr "Botún ag Síniú Isteach" #: lib/pychess/ic/ICLogon.py:163 msgid "Connection was closed" msgstr "Dúnadh an nasc" #: lib/pychess/ic/ICLogon.py:169 msgid "Address Error" msgstr "" #: lib/pychess/ic/ICLogon.py:172 msgid "Auto-logout" msgstr "" #: lib/pychess/ic/ICLogon.py:173 msgid "You have been logged out because you were idle more than 60 minutes" msgstr "" #: lib/pychess/ic/ICLounge.py:222 msgid "You have to set kibitz on to see bot messages here." msgstr "" #: lib/pychess/ic/ICLounge.py:241 msgid "" "You may only have 3 outstanding seeks at the same time. If you want to add a" " new seek you must clear your currently active seeks. Clear your seeks?" msgstr "" #: lib/pychess/ic/ICLounge.py:258 msgid "You can't touch this! You are examining a game." msgstr "" #: lib/pychess/ic/ICLounge.py:270 msgid " has declined your offer for a match" msgstr "" #: lib/pychess/ic/ICLounge.py:283 msgid " is censoring you" msgstr "" #: lib/pychess/ic/ICLounge.py:296 msgid " noplay listing you" msgstr "" #: lib/pychess/ic/ICLounge.py:311 msgid " uses a formula not fitting your match request:" msgstr "" #: lib/pychess/ic/ICLounge.py:325 msgid "to manual accept" msgstr "" #: lib/pychess/ic/ICLounge.py:327 msgid "to automatic accept" msgstr "" #: lib/pychess/ic/ICLounge.py:329 msgid "rating range now" msgstr "" #: lib/pychess/ic/ICLounge.py:330 msgid "Seek updated" msgstr "" #: lib/pychess/ic/ICLounge.py:342 msgid "Your seeks have been removed" msgstr "" #: lib/pychess/ic/ICLounge.py:363 msgid " has arrived" msgstr "" #: lib/pychess/ic/ICLounge.py:370 msgid " has departed" msgstr "" #: lib/pychess/ic/ICLounge.py:374 msgid " is present" msgstr "" #: lib/pychess/ic/ICLounge.py:391 sidepanel/chatPanel.py:17 msgid "Chat" msgstr "" #: lib/pychess/ic/ICLounge.py:472 sidepanel/bookPanel.py:366 msgid "Win" msgstr "" #: lib/pychess/ic/ICLounge.py:472 sidepanel/bookPanel.py:360 msgid "Draw" msgstr "" #: lib/pychess/ic/ICLounge.py:472 sidepanel/bookPanel.py:363 msgid "Loss" msgstr "" #: lib/pychess/ic/ICLounge.py:482 msgid "" "On FICS, your \"Wild\" rating encompasses all of the following variants at " "all time controls:\n" msgstr "" #: lib/pychess/ic/ICLounge.py:494 msgid "Sanctions" msgstr "" #: lib/pychess/ic/ICLounge.py:499 msgid "Email" msgstr "Ríomhphost" #: lib/pychess/ic/ICLounge.py:504 msgid "Spent" msgstr "Caite" #: lib/pychess/ic/ICLounge.py:506 msgid "online in total" msgstr "" #: lib/pychess/ic/ICLounge.py:512 msgid "Ping" msgstr "Ping" #: lib/pychess/ic/ICLounge.py:517 msgid "Connecting" msgstr "Ag Ceangailt" #: lib/pychess/ic/ICLounge.py:544 msgid "" "You are currently logged in as a guest.\n" "A guest can't play rated games and therefore isn't able to play as many of the types of matches offered as a registered user. To register an account, go to http://www.freechess.org/Register/index.html." msgstr "" #: lib/pychess/ic/ICLounge.py:669 lib/pychess/ic/ICLounge.py:1136 msgid "Name" msgstr "Ainm" #: lib/pychess/ic/ICLounge.py:670 lib/pychess/ic/ICLounge.py:1358 #: lib/pychess/ic/ICLounge.py:1558 msgid "Type" msgstr "Cineál" #: lib/pychess/ic/ICLounge.py:670 lib/pychess/ic/ICLounge.py:1558 msgid "Clock" msgstr "Clog" #: lib/pychess/ic/ICLounge.py:726 lib/pychess/ic/ICLounge.py:923 #: lib/pychess/Players/Human.py:250 msgid "Accept" msgstr "" #: lib/pychess/ic/ICLounge.py:728 msgid "Assess" msgstr "" #: lib/pychess/ic/ICLounge.py:734 msgid "Archived" msgstr "" #: lib/pychess/ic/ICLounge.py:848 #, python-format msgid "Active seeks: %d" msgstr "" #: lib/pychess/ic/ICLounge.py:897 #, python-format msgid "" " would like to resume your adjourned %(time)s %(gametype)s " "game." msgstr "" #: lib/pychess/ic/ICLounge.py:902 #, python-format msgid "" " challenges you to a %(time)s %(rated)s %(gametype)s game" msgstr "" #: lib/pychess/ic/ICLounge.py:907 #, python-format msgid " where %(player)s plays %(color)s." msgstr "" #: lib/pychess/ic/ICLounge.py:924 lib/pychess/Players/Human.py:251 msgid "Decline" msgstr "" #: lib/pychess/ic/ICLounge.py:1065 msgid " min" msgstr "" #: lib/pychess/ic/ICLounge.py:1137 msgid "Status" msgstr "" #: lib/pychess/ic/ICLounge.py:1203 lib/pychess/ic/ICLounge.py:1233 #, python-format msgid "Players: %d" msgstr "" #: lib/pychess/ic/ICLounge.py:1469 #, python-format msgid "Games running: %d" msgstr "" #: lib/pychess/ic/ICLounge.py:1559 msgid "Date/Time" msgstr "" #: lib/pychess/ic/ICLounge.py:1614 #, python-format msgid "" " with whom you have an adjourned %(timecontrol)s %(gametype)s " "game is online." msgstr "" #: lib/pychess/ic/ICLounge.py:1635 msgid "Request Continuation" msgstr "" #: lib/pychess/ic/ICLounge.py:1637 msgid "Examine Adjourned Game" msgstr "" #: lib/pychess/ic/ICLounge.py:1965 msgid "" "The chain button is disabled because you are logged in as a guest. Guests " "can't establish ratings, and the chain button's state has no effect when " "there is no rating to which to tie \"Opponent Strength\" to" msgstr "" #: lib/pychess/ic/ICLounge.py:2006 msgid "Challenge: " msgstr "" #: lib/pychess/ic/ICLounge.py:2044 msgid "If set you can refuse players accepting your seek" msgstr "" #: lib/pychess/ic/ICLounge.py:2048 lib/pychess/ic/ICLounge.py:2051 msgid "This option is not applicable because you're challenging a player" msgstr "" #: lib/pychess/ic/ICLounge.py:2064 msgid "Edit Seek: " msgstr "" #: lib/pychess/ic/ICLounge.py:2095 #, python-format msgid "%(minutes)d min + %(gain)d sec/move" msgstr "" #: lib/pychess/ic/ICLounge.py:2116 msgid "Manual" msgstr "" #: lib/pychess/ic/ICLounge.py:2256 msgid "Any strength" msgstr "" #: lib/pychess/ic/ICLounge.py:2308 msgid "You can't play rated games because you are logged in as a guest" msgstr "" #: lib/pychess/ic/ICLounge.py:2312 msgid "You can't play rated games because \"Untimed\" is checked, " msgstr "" #: lib/pychess/ic/ICLounge.py:2313 msgid "and on FICS, untimed games can't be rated" msgstr "" #: lib/pychess/ic/ICLounge.py:2317 msgid "This option is not available because you're challenging a guest, " msgstr "" #: lib/pychess/ic/ICLounge.py:2318 msgid "and guests can't play rated games" msgstr "" #: lib/pychess/ic/ICLounge.py:2332 lib/pychess/Variants/shuffle.py:16 #: lib/pychess/widgets/newGameDialog.py:266 msgid "Shuffle" msgstr "" #: lib/pychess/ic/ICLounge.py:2333 lib/pychess/widgets/newGameDialog.py:267 msgid "Other (standard rules)" msgstr "" #: lib/pychess/ic/ICLounge.py:2334 lib/pychess/widgets/newGameDialog.py:268 msgid "Other (non standard rules)" msgstr "" #: lib/pychess/ic/ICLounge.py:2421 msgid "You can't select a variant because \"Untimed\" is checked, " msgstr "" #: lib/pychess/ic/ICLounge.py:2422 msgid "and on FICS, untimed games have to be normal chess rules" msgstr "" #: lib/pychess/ic/ICLounge.py:2454 msgid "Change Tolerance" msgstr "" #: lib/pychess/ic/__init__.py:102 msgid "Examined" msgstr "" #: lib/pychess/ic/__init__.py:103 msgid "Other" msgstr "" #: lib/pychess/ic/__init__.py:182 msgid "Administrator" msgstr "" #: lib/pychess/ic/__init__.py:182 msgid "Blindfold Account" msgstr "" #: lib/pychess/ic/__init__.py:182 msgid "Computer" msgstr "" #: lib/pychess/ic/__init__.py:183 msgid "Team Account" msgstr "" #: lib/pychess/ic/__init__.py:183 msgid "Unregistered" msgstr "" #: lib/pychess/ic/__init__.py:183 msgid "Chess Advisor" msgstr "" #: lib/pychess/ic/__init__.py:184 msgid "Service Representative" msgstr "" #: lib/pychess/ic/__init__.py:184 msgid "Tournament Director" msgstr "" #: lib/pychess/ic/__init__.py:184 msgid "Mamer Manager" msgstr "" #: lib/pychess/ic/__init__.py:185 msgid "Grand Master" msgstr "" #: lib/pychess/ic/__init__.py:185 msgid "International Master" msgstr "" #: lib/pychess/ic/__init__.py:185 msgid "FIDE Master" msgstr "" #: lib/pychess/ic/__init__.py:186 msgid "Woman Grand Master" msgstr "" #: lib/pychess/ic/__init__.py:186 msgid "Woman International Master" msgstr "" #: lib/pychess/ic/__init__.py:186 msgid "Woman FIDE Master" msgstr "" #: lib/pychess/ic/__init__.py:187 msgid "Dummy Account" msgstr "" #: lib/pychess/ic/__init__.py:191 msgid "*" msgstr "" #: lib/pychess/ic/__init__.py:191 lib/pychess/Utils/repr.py:14 msgid "B" msgstr "E" #: lib/pychess/ic/__init__.py:191 msgid "C" msgstr "" #: lib/pychess/ic/__init__.py:192 msgid "T" msgstr "" #: lib/pychess/ic/__init__.py:192 msgid "U" msgstr "" #: lib/pychess/ic/__init__.py:192 msgid "CA" msgstr "" #: lib/pychess/ic/__init__.py:193 msgid "SR" msgstr "" #: lib/pychess/ic/__init__.py:193 msgid "TD" msgstr "" #: lib/pychess/ic/__init__.py:193 msgid "TM" msgstr "" #: lib/pychess/ic/__init__.py:194 msgid "GM" msgstr "" #: lib/pychess/ic/__init__.py:194 msgid "IM" msgstr "" #: lib/pychess/ic/__init__.py:194 msgid "FM" msgstr "" #: lib/pychess/ic/__init__.py:195 msgid "WGM" msgstr "" #: lib/pychess/ic/__init__.py:195 msgid "WIM" msgstr "" #: lib/pychess/ic/__init__.py:195 msgid "WFM" msgstr "" #: lib/pychess/ic/__init__.py:195 msgid "D" msgstr "" #: lib/pychess/ic/__init__.py:195 msgid "H" msgstr "" #: lib/pychess/ic/__init__.py:195 msgid "CM" msgstr "" #: lib/pychess/ic/__init__.py:195 msgid "FA" msgstr "" #: lib/pychess/ic/__init__.py:195 msgid "NM" msgstr "" #: lib/pychess/Players/CECPEngine.py:857 #, python-format msgid "The engine %s reports an error:" msgstr "" #: lib/pychess/Players/Human.py:20 msgid "Your opponent has offered you a draw." msgstr "" #: lib/pychess/Players/Human.py:21 msgid "" "Your opponent has offered you a draw. If you accept this offer, the game " "will end with a score of 1/2 - 1/2." msgstr "" #: lib/pychess/Players/Human.py:23 msgid "Your opponent wants to abort the game." msgstr "" #: lib/pychess/Players/Human.py:24 msgid "" "Your opponent has asked that the game be aborted. If you accept this offer, " "the game will end with no rating change." msgstr "" #: lib/pychess/Players/Human.py:26 msgid "Your opponent wants to adjourn the game." msgstr "" #: lib/pychess/Players/Human.py:27 msgid "" "Your opponent has asked that the game be adjourned. If you accept this " "offer, the game will be adjourned and you can resume it later (when your " "opponent is online and both players agree to resume)." msgstr "" #: lib/pychess/Players/Human.py:29 #, python-format msgid "Your opponent wants to undo %s move(s)." msgstr "" #: lib/pychess/Players/Human.py:30 #, python-format msgid "" "Your opponent has asked that the last %s move(s) be undone. If you accept " "this offer, the game will continue from the earlier position." msgstr "" #: lib/pychess/Players/Human.py:32 msgid "Your opponent wants to pause the game." msgstr "" #: lib/pychess/Players/Human.py:33 msgid "" "Your opponent has asked that the game be paused. If you accept this offer, " "the game clock will be paused until both players agree to resume the game." msgstr "" #: lib/pychess/Players/Human.py:35 msgid "Your opponent wants to resume the game." msgstr "" #: lib/pychess/Players/Human.py:36 msgid "" "Your opponent has asked that the game be resumed. If you accept this offer, " "the game clock will continue from where it was paused." msgstr "" #: lib/pychess/Players/Human.py:40 msgid "The resignation" msgstr "" #: lib/pychess/Players/Human.py:41 msgid "The flag call" msgstr "" #: lib/pychess/Players/Human.py:42 msgid "The draw offer" msgstr "" #: lib/pychess/Players/Human.py:43 msgid "The abort offer" msgstr "" #: lib/pychess/Players/Human.py:44 msgid "The adjourn offer" msgstr "" #: lib/pychess/Players/Human.py:45 msgid "The pause offer" msgstr "" #: lib/pychess/Players/Human.py:46 msgid "The resume offer" msgstr "" #: lib/pychess/Players/Human.py:47 msgid "The offer to switch sides" msgstr "" #: lib/pychess/Players/Human.py:48 msgid "The takeback offer" msgstr "" #: lib/pychess/Players/Human.py:52 msgid "resign" msgstr "" #: lib/pychess/Players/Human.py:53 msgid "call your opponents flag" msgstr "" #: lib/pychess/Players/Human.py:54 msgid "offer a draw" msgstr "" #: lib/pychess/Players/Human.py:55 msgid "offer an abort" msgstr "" #: lib/pychess/Players/Human.py:56 msgid "offer to adjourn" msgstr "" #: lib/pychess/Players/Human.py:57 msgid "offer a pause" msgstr "" #: lib/pychess/Players/Human.py:58 msgid "offer to resume" msgstr "" #: lib/pychess/Players/Human.py:59 msgid "offer to switch sides" msgstr "" #: lib/pychess/Players/Human.py:60 msgid "offer a takeback" msgstr "" #: lib/pychess/Players/Human.py:61 msgid "ask your opponent to move" msgstr "" #: lib/pychess/Players/Human.py:66 msgid "Your opponent is not out of time." msgstr "" #: lib/pychess/Players/Human.py:68 msgid "The clock hasn't been started yet." msgstr "" #: lib/pychess/Players/Human.py:70 msgid "You can't switch colors during the game." msgstr "" #: lib/pychess/Players/Human.py:72 msgid "You have tried to undo too many moves." msgstr "" #: lib/pychess/Players/Human.py:180 msgid "Your opponent asks you to hurry!" msgstr "" #: lib/pychess/Players/Human.py:181 msgid "" "Generally this means nothing, as the game is time-based, but if you want to " "please your opponent, perhaps you should get going." msgstr "" #: lib/pychess/Players/Human.py:259 #, python-format msgid "%s was declined by your opponent" msgstr "" #: lib/pychess/Players/Human.py:260 #, python-format msgid "Resend %s?" msgstr "" #: lib/pychess/Players/Human.py:267 msgid "Resend" msgstr "" #: lib/pychess/Players/Human.py:275 #, python-format msgid "%s was withdrawn by your opponent" msgstr "" #: lib/pychess/Players/Human.py:276 msgid "Your opponent seems to have changed their mind." msgstr "" #: lib/pychess/Players/Human.py:290 #, python-format msgid "Unable to accept %s" msgstr "" #: lib/pychess/Players/Human.py:291 msgid "Probably because it has been withdrawn." msgstr "" #: lib/pychess/Players/Human.py:298 #, python-format msgid "%s returns an error" msgstr "" #: lib/pychess/Savers/chessalpha2.py:12 msgid "Chess Alpha 2 Diagram" msgstr "" #: lib/pychess/Savers/chesspastebin.py:39 msgid "Game shared at " msgstr "" #: lib/pychess/Savers/chesspastebin.py:41 msgid "(Link is available on clipboard.)" msgstr "" #: lib/pychess/Savers/database.py:19 msgid "PyChess database" msgstr "" #: lib/pychess/Savers/epd.py:12 msgid "Chess Position" msgstr "" #: lib/pychess/Savers/fen.py:12 msgid "Simple Chess Position" msgstr "" #: lib/pychess/Savers/fen.py:44 lib/pychess/Savers/pgn.py:329 msgid "The game can't be loaded, because of an error parsing FEN" msgstr "" #: lib/pychess/Savers/pgnbase.py:100 #, python-format msgid "" "The game can't be read to end, because of an error parsing move %(moveno)s " "'%(notation)s'." msgstr "" #: lib/pychess/Savers/pgnbase.py:102 #, python-format msgid "The move failed because %s." msgstr "" #: lib/pychess/Savers/pgnbase.py:110 #, python-format msgid "Error parsing move %(moveno)s %(mstr)s" msgstr "" #: lib/pychess/Savers/pgn.py:28 msgid "Chess Game" msgstr "Cluiche Ficheall" #: lib/pychess/Savers/pgn.py:362 msgid "Invalid move." msgstr "" #: lib/pychess/Savers/png.py:15 msgid "Png image" msgstr "" #: lib/pychess/System/ping.py:31 msgid "Destination Host Unreachable" msgstr "" #: lib/pychess/System/ping.py:74 msgid "Died" msgstr "" #: lib/pychess/Utils/GameModel.py:147 msgid "Local Event" msgstr "Teagmhas Logánta" #: lib/pychess/Utils/GameModel.py:148 msgid "Local Site" msgstr "Suíomh Logánta" #: lib/pychess/Utils/repr.py:12 msgid "Pawn" msgstr "" #: lib/pychess/Utils/repr.py:14 msgid "P" msgstr "P" #: lib/pychess/Utils/repr.py:14 msgid "N" msgstr "N" #: lib/pychess/Utils/repr.py:14 msgid "R" msgstr "R" #: lib/pychess/Utils/repr.py:14 msgid "Q" msgstr "B" #: lib/pychess/Utils/repr.py:14 msgid "K" msgstr "R" #: lib/pychess/Utils/repr.py:17 msgid "The game ended in a draw" msgstr "Chríochnaigh an cluiche ar comhscór" #: lib/pychess/Utils/repr.py:18 #, python-format msgid "%(white)s won the game" msgstr "" #: lib/pychess/Utils/repr.py:19 #, python-format msgid "%(black)s won the game" msgstr "" #: lib/pychess/Utils/repr.py:20 msgid "The game has been killed" msgstr "Cuireadh deireadh leis an cluiche" #: lib/pychess/Utils/repr.py:21 msgid "The game has been adjourned" msgstr "Cuireadh an cluiche ar fionraí" #: lib/pychess/Utils/repr.py:22 msgid "The game has been aborted" msgstr "Tobscoireadh an cluiche" #: lib/pychess/Utils/repr.py:26 msgid "Because neither player has sufficient material to mate" msgstr "" #: lib/pychess/Utils/repr.py:27 msgid "Because the same position was repeated three times in a row" msgstr "" #: lib/pychess/Utils/repr.py:28 msgid "Because the last 50 moves brought nothing new" msgstr "" #: lib/pychess/Utils/repr.py:29 msgid "Because both players ran out of time" msgstr "" #: lib/pychess/Utils/repr.py:30 #, python-format msgid "Because %(mover)s stalemated" msgstr "" #: lib/pychess/Utils/repr.py:31 msgid "Because both players agreed to a draw" msgstr "" #: lib/pychess/Utils/repr.py:32 lib/pychess/Utils/repr.py:42 msgid "Because of adjudication by an admin" msgstr "" #: lib/pychess/Utils/repr.py:33 msgid "Because the game exceed the max length" msgstr "" #: lib/pychess/Utils/repr.py:34 #, python-format msgid "" "Because %(white)s ran out of time and %(black)s has insufficient material to" " mate" msgstr "" #: lib/pychess/Utils/repr.py:35 #, python-format msgid "" "Because %(black)s ran out of time and %(white)s has insufficient material to" " mate" msgstr "" #: lib/pychess/Utils/repr.py:36 msgid "Because both players have the same amount of pieces" msgstr "" #: lib/pychess/Utils/repr.py:38 #, python-format msgid "Because %(loser)s resigned" msgstr "" #: lib/pychess/Utils/repr.py:39 #, python-format msgid "Because %(loser)s ran out of time" msgstr "" #: lib/pychess/Utils/repr.py:40 #, python-format msgid "Because %(loser)s was checkmated" msgstr "" #: lib/pychess/Utils/repr.py:41 #, python-format msgid "Because %(loser)s disconnected" msgstr "" #: lib/pychess/Utils/repr.py:43 #, python-format msgid "Because %(winner)s has fewer pieces" msgstr "" #: lib/pychess/Utils/repr.py:44 #, python-format msgid "Because %(winner)s lost all pieces" msgstr "" #: lib/pychess/Utils/repr.py:45 #, python-format msgid "Because %(loser)s king exploded" msgstr "" #: lib/pychess/Utils/repr.py:46 #, python-format msgid "Because %(winner)s king reached the center" msgstr "" #: lib/pychess/Utils/repr.py:47 #, python-format msgid "Because %(winner)s was giving check 3 times" msgstr "" #: lib/pychess/Utils/repr.py:49 msgid "Because a player lost connection" msgstr "" #: lib/pychess/Utils/repr.py:50 msgid "Because both players agreed to an adjournment" msgstr "" #: lib/pychess/Utils/repr.py:51 msgid "Because the server was shut down" msgstr "" #: lib/pychess/Utils/repr.py:52 msgid "" "Because a player lost connection and the other player requested adjournment" msgstr "" #: lib/pychess/Utils/repr.py:53 #, python-format msgid "" "Because %(black)s lost connection to the server and %(white)s requested " "adjournment" msgstr "" #: lib/pychess/Utils/repr.py:54 #, python-format msgid "" "Because %(white)s lost connection to the server and %(black)s requested " "adjournment" msgstr "" #: lib/pychess/Utils/repr.py:55 #, python-format msgid "Because %(white)s lost connection to the server" msgstr "" #: lib/pychess/Utils/repr.py:56 #, python-format msgid "Because %(black)s lost connection to the server" msgstr "" #: lib/pychess/Utils/repr.py:58 msgid "Because of adjudication by an admin. No rating changes have occurred." msgstr "" #: lib/pychess/Utils/repr.py:59 msgid "" "Because both players agreed to abort the game. No rating changes have " "occurred." msgstr "" #: lib/pychess/Utils/repr.py:60 msgid "Because of courtesy by a player. No rating changes have occurred." msgstr "" #: lib/pychess/Utils/repr.py:61 msgid "" "Because a player aborted the game. Either player can abort the game without " "the other's consent before the second move. No rating changes have occurred." msgstr "" #: lib/pychess/Utils/repr.py:62 msgid "" "Because a player disconnected and there are too few moves to warrant " "adjournment. No rating changes have occurred." msgstr "" #: lib/pychess/Utils/repr.py:63 msgid "Because the server was shut down. No rating changes have occurred." msgstr "" #: lib/pychess/Utils/repr.py:65 #, python-format msgid "Because the %(white)s engine died" msgstr "" #: lib/pychess/Utils/repr.py:66 #, python-format msgid "Because the %(black)s engine died" msgstr "" #: lib/pychess/Utils/repr.py:67 msgid "Because the connection to the server was lost" msgstr "" #: lib/pychess/Utils/repr.py:68 msgid "The reason is unknown" msgstr "" #: lib/pychess/Utils/TimeModel.py:229 msgid "min" msgstr "" #: lib/pychess/Utils/TimeModel.py:231 msgid "sec" msgstr "" #: lib/pychess/Variants/asean.py:12 msgid "" "ASEAN: http://www.ncf-" "phil.org/downloadables/2014/May/Asean_chess/Laws_of_ASEAN_Chess_2011_Nov_26.doc" msgstr "" #: lib/pychess/Variants/asean.py:13 msgid "ASEAN" msgstr "" #: lib/pychess/Variants/asean.py:33 msgid "Makruk: http://en.wikipedia.org/wiki/Makruk" msgstr "" #: lib/pychess/Variants/asean.py:34 msgid "Makruk" msgstr "" #: lib/pychess/Variants/asean.py:60 msgid "Cambodian: http://www.khmerinstitute.org/culture/ok.html" msgstr "" #: lib/pychess/Variants/asean.py:61 msgid "Cambodian" msgstr "" #: lib/pychess/Variants/asean.py:86 msgid "" "Ai-Wok: http://www.open-" "aurec.com/wbforum/viewtopic.php?p=199364&sid=20963a1de2c164050de019e5ed6bf7c4#p199364" msgstr "" #: lib/pychess/Variants/asean.py:87 msgid "Ai-Wok" msgstr "" #: lib/pychess/Variants/asean.py:111 msgid "Sittuyin: http://en.wikipedia.org/wiki/Sittuyin" msgstr "" #: lib/pychess/Variants/asean.py:112 msgid "Sittuyin" msgstr "" #: lib/pychess/Variants/asymmetricrandom.py:12 msgid "" "FICS wild/4: http://www.freechess.org/Help/HelpFiles/wild.html\n" "* Randomly chosen pieces (two queens or three rooks possible)\n" "* Exactly one king of each color\n" "* Pieces placed randomly behind the pawns, SUBJECT TO THE CONSTRAINT THAT THE BISHOPS ARE BALANCED\n" "* No castling\n" "* Black's arrangement DOES NOT mirrors white's" msgstr "" #: lib/pychess/Variants/asymmetricrandom.py:18 msgid "Asymmetric Random" msgstr "" #: lib/pychess/Variants/atomic.py:14 msgid "FICS atomic: http://www.freechess.org/Help/HelpFiles/atomic.html" msgstr "" #: lib/pychess/Variants/blindfold.py:7 msgid "" "Classic chess rules with hidden figurines\n" "http://en.wikipedia.org/wiki/Blindfold_chess" msgstr "" #: lib/pychess/Variants/blindfold.py:9 #: lib/pychess/widgets/newGameDialog.py:264 msgid "Blindfold" msgstr "" #: lib/pychess/Variants/blindfold.py:18 msgid "" "Classic chess rules with hidden pawns\n" "http://en.wikipedia.org/wiki/Blindfold_chess" msgstr "" #: lib/pychess/Variants/blindfold.py:20 msgid "Hidden pawns" msgstr "" #: lib/pychess/Variants/blindfold.py:29 msgid "" "Classic chess rules with hidden pieces\n" "http://en.wikipedia.org/wiki/Blindfold_chess" msgstr "" #: lib/pychess/Variants/blindfold.py:31 msgid "Hidden pieces" msgstr "" #: lib/pychess/Variants/blindfold.py:40 msgid "" "Classic chess rules with all pieces white\n" "http://en.wikipedia.org/wiki/Blindfold_chess" msgstr "" #: lib/pychess/Variants/blindfold.py:42 msgid "All white" msgstr "" #: lib/pychess/Variants/bughouse.py:8 msgid "FICS bughouse: http://www.freechess.org/Help/HelpFiles/bughouse.html" msgstr "" #: lib/pychess/Variants/corner.py:12 msgid "" "http://brainking.com/en/GameRules?tp=2\n" "* Placement of the pieces on the 1st and 8th row are randomized\n" "* The king is in the right hand corner\n" "* Bishops must start on opposite color squares\n" "* Black's starting position is obtained by rotating white's position 180 degrees around the board's center\n" "* No castling" msgstr "" #: lib/pychess/Variants/corner.py:18 msgid "Corner" msgstr "" #: lib/pychess/Variants/crazyhouse.py:8 msgid "" "FICS crazyhouse: http://www.freechess.org/Help/HelpFiles/crazyhouse.html" msgstr "" #: lib/pychess/Variants/euroshogi.py:9 msgid "EuroShogi: http://en.wikipedia.org/wiki/EuroShogi" msgstr "" #: lib/pychess/Variants/euroshogi.py:10 msgid "EuroShogi" msgstr "" #: lib/pychess/Variants/fischerandom.py:18 msgid "" "http://en.wikipedia.org/wiki/Chess960\n" "FICS wild/fr: http://www.freechess.org/Help/HelpFiles/wild.html" msgstr "" #: lib/pychess/Variants/fischerandom.py:20 msgid "Fischer Random" msgstr "" #: lib/pychess/Variants/kingofthehill.py:8 msgid "" "Bringing your king legally to the center (e4, d4, e5, d5) instantly wins the game!\n" "Normal rules apply in other cases and checkmate also ends the game." msgstr "" #: lib/pychess/Variants/kingofthehill.py:10 msgid "King of the hill" msgstr "" #: lib/pychess/Variants/knightodds.py:8 msgid "One player starts with one less knight piece" msgstr "" #: lib/pychess/Variants/knightodds.py:9 msgid "Knight odds" msgstr "" #: lib/pychess/Variants/losers.py:8 msgid "FICS losers: http://www.freechess.org/Help/HelpFiles/losers_chess.html" msgstr "" #: lib/pychess/Variants/normal.py:4 msgid "" "Classic chess rules\n" "http://en.wikipedia.org/wiki/Chess" msgstr "" #: lib/pychess/Variants/normal.py:6 lib/pychess/widgets/newGameDialog.py:157 msgid "Normal" msgstr "Gnáth" #: lib/pychess/Variants/pawnodds.py:8 msgid "One player starts with one less pawn piece" msgstr "" #: lib/pychess/Variants/pawnodds.py:9 msgid "Pawn odds" msgstr "" #: lib/pychess/Variants/pawnspassed.py:11 msgid "" "FICS wild/8a: http://www.freechess.org/Help/HelpFiles/wild.html\n" "White pawns start on 5th rank and black pawns on the 4th rank" msgstr "" #: lib/pychess/Variants/pawnspassed.py:13 msgid "Pawns Passed" msgstr "" #: lib/pychess/Variants/pawnspushed.py:10 msgid "" "FICS wild/8: http://www.freechess.org/Help/HelpFiles/wild.html\n" "Pawns start on 4th and 5th ranks rather than 2nd and 7th" msgstr "" #: lib/pychess/Variants/pawnspushed.py:12 msgid "Pawns Pushed" msgstr "" #: lib/pychess/Variants/queenodds.py:8 msgid "One player starts with one less queen piece" msgstr "" #: lib/pychess/Variants/queenodds.py:9 msgid "Queen odds" msgstr "" #: lib/pychess/Variants/randomchess.py:11 msgid "" "FICS wild/3: http://www.freechess.org/Help/HelpFiles/wild.html\n" "* Randomly chosen pieces (two queens or three rooks possible)\n" "* Exactly one king of each color\n" "* Pieces placed randomly behind the pawns\n" "* No castling\n" "* Black's arrangement mirrors white's" msgstr "" #: lib/pychess/Variants/randomchess.py:17 #: lib/pychess/widgets/TaskerManager.py:155 msgid "Random" msgstr "" #: lib/pychess/Variants/rookodds.py:8 msgid "One player starts with one less rook piece" msgstr "" #: lib/pychess/Variants/rookodds.py:9 msgid "Rook odds" msgstr "" #: lib/pychess/Variants/shuffle.py:11 msgid "" "xboard nocastle: http://home.hccnet.nl/h.g.muller/engine-intf.html#8\n" "FICS wild/2: http://www.freechess.org/Help/HelpFiles/wild.html\n" "* Random arrangement of the pieces behind the pawns\n" "* No castling\n" "* Black's arrangement mirrors white's" msgstr "" #: lib/pychess/Variants/suicide.py:11 msgid "" "FICS suicide: http://www.freechess.org/Help/HelpFiles/suicide_chess.html" msgstr "" #: lib/pychess/Variants/theban.py:10 msgid "" "Variant developed by Kai Laskos: " "http://talkchess.com/forum/viewtopic.php?t=40990" msgstr "" #: lib/pychess/Variants/theban.py:11 msgid "Theban" msgstr "" #: lib/pychess/Variants/threecheck.py:10 msgid "Win by giving check 3 times" msgstr "" #: lib/pychess/Variants/threecheck.py:11 msgid "Three-check" msgstr "" #: lib/pychess/Variants/upsidedown.py:10 msgid "" "FICS wild/5: http://www.freechess.org/Help/HelpFiles/wild.html\n" "http://en.wikipedia.org/wiki/Chess_variant#Chess_with_different_starting_positions\n" "Pawns start on their 7th rank rather than their 2nd rank!" msgstr "" #: lib/pychess/Variants/upsidedown.py:13 msgid "Upside Down" msgstr "" #: lib/pychess/Variants/wildcastle.py:10 msgid "" "xboard wildcastle http://home.hccnet.nl/h.g.muller/engine-intf.html#8\n" "FICS wild/0: http://www.freechess.org/Help/HelpFiles/wild.html\n" "* White has the typical set-up at the start.\n" "* Black's pieces are the same, except that the King and Queen are reversed,\n" "* so they are not on the same files as White's King and Queen.\n" "* Castling is done similarly to normal chess:\n" "* o-o-o indicates long castling and o-o short castling." msgstr "" #: lib/pychess/Variants/wildcastle.py:17 msgid "Wildcastle" msgstr "" #: lib/pychess/Variants/wildcastleshuffle.py:11 msgid "" "xboard wildcastle http://home.hccnet.nl/h.g.muller/engine-intf.html#8\n" "FICS wild/1: http://www.freechess.org/Help/HelpFiles/wild.html\n" "* In this variant both sides have the same set of pieces as in normal chess.\n" "* The white king starts on d1 or e1 and the black king starts on d8 or e8,\n" "* and the rooks are in their usual positions.\n" "* Bishops are always on opposite colors.\n" "* Subject to these constraints the position of the pieces on their first ranks is random.\n" "* Castling is done similarly to normal chess:\n" "* o-o-o indicates long castling and o-o short castling." msgstr "" #: lib/pychess/Variants/wildcastleshuffle.py:20 msgid "Wildcastle shuffle" msgstr "" #: lib/pychess/widgets/analyzegameDialog.py:85 msgid "Game analyzing in progress..." msgstr "" #: lib/pychess/widgets/analyzegameDialog.py:86 msgid "Do you want to abort it?" msgstr "" #: lib/pychess/widgets/analyzegameDialog.py:95 #: lib/pychess/widgets/gamewidget.py:202 lib/pychess/widgets/gamewidget.py:320 msgid "Abort" msgstr "" #: lib/pychess/widgets/ChatView.py:125 msgid "Observers" msgstr "" #: lib/pychess/widgets/ChatWindow.py:222 msgid "You have opened no conversations yet" msgstr "" #: lib/pychess/widgets/ChatWindow.py:254 msgid "Only registered users may talk to this channel" msgstr "" #: lib/pychess/widgets/ChatWindow.py:312 msgid "No conversation's selected" msgstr "" #: lib/pychess/widgets/ChatWindow.py:350 msgid "Loading player data" msgstr "" #: lib/pychess/widgets/ChatWindow.py:400 msgid "Receiving list of players" msgstr "" #: lib/pychess/widgets/ChatWindow.py:518 msgid "Friends" msgstr "" #: lib/pychess/widgets/ChatWindow.py:529 msgid "Admin" msgstr "" #: lib/pychess/widgets/ChatWindow.py:540 msgid "More channels" msgstr "" #: lib/pychess/widgets/ChatWindow.py:548 msgid "More players" msgstr "" #: lib/pychess/widgets/ChatWindow.py:558 msgid "Computers" msgstr "" #: lib/pychess/widgets/ChatWindow.py:568 msgid "BlindFold" msgstr "" #: lib/pychess/widgets/ChatWindow.py:578 msgid "Guests" msgstr "" #: lib/pychess/widgets/ChatWindow.py:805 msgid "Conversations" msgstr "" #: lib/pychess/widgets/ChatWindow.py:807 msgid "Conversation info" msgstr "" #: lib/pychess/widgets/enginesDialog.py:152 msgid "Select engine" msgstr "" #: lib/pychess/widgets/enginesDialog.py:156 msgid "Executable files" msgstr "" #: lib/pychess/widgets/enginesDialog.py:176 #: lib/pychess/widgets/enginesDialog.py:210 #: lib/pychess/widgets/enginesDialog.py:235 #, python-format msgid "Unable to add %s" msgstr "" #: lib/pychess/widgets/enginesDialog.py:177 msgid "wine not installed" msgstr "" #: lib/pychess/widgets/enginesDialog.py:211 #: lib/pychess/widgets/enginesDialog.py:236 msgid "There is something wrong with this executable" msgstr "" #: lib/pychess/widgets/enginesDialog.py:266 msgid "Select working directory" msgstr "" #: lib/pychess/widgets/gamenanny.py:115 #, python-format msgid " invalid engine move: %s" msgstr "" #: lib/pychess/widgets/gamenanny.py:134 msgid "Offer Rematch" msgstr "" #: lib/pychess/widgets/gamenanny.py:136 lib/pychess/widgets/gamenanny.py:147 #, python-format msgid "Observe %s" msgstr "" #: lib/pychess/widgets/gamenanny.py:168 msgid "Play Rematch" msgstr "" #: lib/pychess/widgets/gamenanny.py:171 msgid "Undo one move" msgstr "" #: lib/pychess/widgets/gamenanny.py:173 msgid "Undo two moves" msgstr "" #: lib/pychess/widgets/gamenanny.py:203 msgid "The game is paused" msgstr "" #: lib/pychess/widgets/gamenanny.py:221 lib/pychess/widgets/gamenanny.py:222 msgid "Loaded game" msgstr "Cluiche luchtaithe" #: lib/pychess/widgets/gamenanny.py:228 msgid "Saved game" msgstr "" #: lib/pychess/widgets/gamenanny.py:232 msgid "Analyzer started" msgstr "" #: lib/pychess/widgets/gamenanny.py:281 msgid "You sent an abort offer" msgstr "" #: lib/pychess/widgets/gamenanny.py:283 msgid "You sent an adjournment offer" msgstr "" #: lib/pychess/widgets/gamenanny.py:285 msgid "You sent a draw offer" msgstr "" #: lib/pychess/widgets/gamenanny.py:287 msgid "You sent a pause offer" msgstr "" #: lib/pychess/widgets/gamenanny.py:289 msgid "You sent a resume offer" msgstr "" #: lib/pychess/widgets/gamenanny.py:291 msgid "You sent an undo offer" msgstr "" #: lib/pychess/widgets/gamenanny.py:293 msgid "You asked your opponent to move" msgstr "" #: lib/pychess/widgets/gamenanny.py:305 #, python-format msgid "Engine, %s, has died" msgstr "D'éag an t-Inneall %s" #: lib/pychess/widgets/gamenanny.py:306 msgid "" "PyChess has lost connection to the engine, probably because it has died.\n" "\n" "You can try to start a new game with the engine, or try to play against another one." msgstr "" #: lib/pychess/widgets/gamewidget.py:204 msgid "" "This game can be automatically aborted without rating loss because there has" " not yet been two moves made" msgstr "" #: lib/pychess/widgets/gamewidget.py:206 msgid "Offer Abort" msgstr "" #: lib/pychess/widgets/gamewidget.py:208 msgid "" "Your opponent must agree to abort the game because there has been two or " "more moves made" msgstr "" #: lib/pychess/widgets/gamewidget.py:226 msgid "This game can not be adjourned because one or both players are guests" msgstr "" #: lib/pychess/widgets/gamewidget.py:243 msgid "Claim Draw" msgstr "" #: lib/pychess/widgets/gamewidget.py:325 msgid "Pause" msgstr "" #: lib/pychess/widgets/gamewidget.py:326 msgid "Resume" msgstr "" #: lib/pychess/widgets/gamewidget.py:328 msgid "Offer Pause" msgstr "" #: lib/pychess/widgets/gamewidget.py:329 msgid "Offer Resume" msgstr "" #: lib/pychess/widgets/gamewidget.py:333 msgid "Undo" msgstr "" #: lib/pychess/widgets/gamewidget.py:335 msgid "Offer Undo" msgstr "" #: lib/pychess/widgets/gamewidget.py:550 msgid " has lagged for 30 seconds" msgstr "" #: lib/pychess/widgets/gamewidget.py:566 msgid " is lagging heavily but hasn't disconnected" msgstr "" #: lib/pychess/widgets/gamewidget.py:567 msgid "Continue to wait for opponent, or try to adjourn the game?" msgstr "" #: lib/pychess/widgets/gamewidget.py:575 msgid "Wait" msgstr "" #: lib/pychess/widgets/gamewidget.py:576 msgid "Adjourn" msgstr "" #: lib/pychess/widgets/gamewidget.py:648 msgid "Jump to initial position" msgstr "" #: lib/pychess/widgets/gamewidget.py:653 msgid "Step back one move" msgstr "" #: lib/pychess/widgets/gamewidget.py:658 msgid "Go back to the main line" msgstr "" #: lib/pychess/widgets/gamewidget.py:664 msgid "Step forward one move" msgstr "" #: lib/pychess/widgets/gamewidget.py:669 msgid "Jump to latest position" msgstr "" #: lib/pychess/widgets/gamewidget.py:903 msgid "PyChess was unable to load your panel settings" msgstr "" #: lib/pychess/widgets/gamewidget.py:904 msgid "" "Your panel settings have been reset. If this problem repeats, you should " "report it to the developers" msgstr "" #: lib/pychess/widgets/ionest.py:67 lib/pychess/widgets/newGameDialog.py:389 #: lib/pychess/widgets/TaskerManager.py:210 msgid "You" msgstr "" #: lib/pychess/widgets/ionest.py:70 lib/pychess/widgets/newGameDialog.py:390 #: lib/pychess/widgets/preferencesDialog.py:61 #: lib/pychess/widgets/TaskerManager.py:213 msgid "Guest" msgstr "Aoí" #: lib/pychess/widgets/ionest.py:93 msgid "Error loading game" msgstr "" #: lib/pychess/widgets/ionest.py:127 lib/pychess/widgets/newGameDialog.py:480 msgid "Open Game" msgstr "Oscail Cluiche" #: lib/pychess/widgets/ionest.py:137 msgid "All Files" msgstr "Gach Comhad" #: lib/pychess/widgets/ionest.py:140 msgid "Detect type automatically" msgstr "" #: lib/pychess/widgets/ionest.py:146 msgid "All Chess Files" msgstr "Gach Comhad Ficheall" #: lib/pychess/widgets/ionest.py:228 msgid "Save Game" msgstr "Cuir an Cluiche i dtaisce" #: lib/pychess/widgets/ionest.py:228 msgid "Export position" msgstr "" #: lib/pychess/widgets/ionest.py:232 lib/pychess/widgets/ionest.py:360 msgid "vs." msgstr "" #: lib/pychess/widgets/ionest.py:249 #, python-format msgid "Unknown file type '%s'" msgstr "Cineál comhad anaithnid '%s'" #: lib/pychess/widgets/ionest.py:250 #, python-format msgid "" "Was unable to save '%(uri)s' as PyChess doesn't know the format " "'%(ending)s'." msgstr "" #: lib/pychess/widgets/ionest.py:266 #, python-format msgid "Unable to save file '%s'" msgstr "" #: lib/pychess/widgets/ionest.py:268 msgid "" "You don't have the necessary rights to save the file.\n" "Please ensure that you have given the right path and try again." msgstr "" #: lib/pychess/widgets/ionest.py:276 msgid "_Replace" msgstr "_Ionadaigh" #: lib/pychess/widgets/ionest.py:280 msgid "File exists" msgstr "Tá an comhad ann cheana" #: lib/pychess/widgets/ionest.py:282 #, python-format msgid "" "A file named '%s' already exists. Would you like to replace " "it?" msgstr "Tá comhad leis an t-ainm '%s' ann cheana. Ar mhaith leat é a chuir ina ionad?" #: lib/pychess/widgets/ionest.py:283 #, python-format msgid "" "The file already exists in '%s'. If you replace it, its content will be " "overwritten." msgstr "" #: lib/pychess/widgets/ionest.py:299 msgid "Could not save the file" msgstr "Níorbh fhéidir an comhad a chuir i dtaisce" #: lib/pychess/widgets/ionest.py:300 msgid "PyChess was not able to save the game" msgstr "" #: lib/pychess/widgets/ionest.py:301 #, python-format msgid "The error was: %s" msgstr "An botún ná: %s" #: lib/pychess/widgets/ionest.py:325 #, python-format msgid "There is %d game with unsaved moves." msgid_plural "There are %d games with unsaved moves." msgstr[0] "" msgstr[1] "" msgstr[2] "" msgstr[3] "" msgstr[4] "" #: lib/pychess/widgets/ionest.py:328 msgid "Save moves before closing?" msgstr "" #: lib/pychess/widgets/ionest.py:339 msgid "Unable to save to configured file. Save the games before closing?" msgstr "" #: lib/pychess/widgets/ionest.py:366 #, python-format msgid "_Save %d document" msgid_plural "_Save %d documents" msgstr[0] "" msgstr[1] "" msgstr[2] "" msgstr[3] "" msgstr[4] "" #: lib/pychess/widgets/ionest.py:412 msgid "Save the current game before you close it?" msgstr "" #: lib/pychess/widgets/ionest.py:420 msgid "" "Unable to save to configured file. Save the current game before you close " "it?" msgstr "" #: lib/pychess/widgets/ionest.py:434 msgid "" "It is not possible later to continue the game,\n" "if you don't save it." msgstr "" #: lib/pychess/widgets/LogDialog.py:26 msgid "PyChess Information Window" msgstr "" #: lib/pychess/widgets/LogDialog.py:184 lib/pychess/widgets/LogDialog.py:188 msgid "of" msgstr "" #: lib/pychess/widgets/newGameDialog.py:84 #: lib/pychess/widgets/newGameDialog.py:85 msgid "Human Being" msgstr "Duine" #: lib/pychess/widgets/newGameDialog.py:155 msgid "Rapid" msgstr "" #: lib/pychess/widgets/newGameDialog.py:224 msgid "Minutes:" msgstr "Nóiméid:" #: lib/pychess/widgets/newGameDialog.py:228 msgid "Gain:" msgstr "Buachan:" #: lib/pychess/widgets/newGameDialog.py:241 #, python-format msgid "%(name)s %(minutes)d min + %(gain)d sec/move" msgstr "" #: lib/pychess/widgets/newGameDialog.py:244 #, python-format msgid "%(name)s %(minutes)d min %(gain)d sec/move" msgstr "" #: lib/pychess/widgets/newGameDialog.py:247 #, python-format msgid "%(name)s %(minutes)d min" msgstr "" #: lib/pychess/widgets/newGameDialog.py:265 msgid "Odds" msgstr "" #: lib/pychess/widgets/newGameDialog.py:269 msgid "Asian variants" msgstr "" #: lib/pychess/widgets/newGameDialog.py:301 msgid " chess" msgstr "" #: lib/pychess/widgets/newGameDialog.py:682 msgid "Type or paste PGN game or FEN positions here" msgstr "" #: lib/pychess/widgets/newGameDialog.py:725 msgid "Enter Game" msgstr "Téigh Isteach i gCluiche" #: lib/pychess/widgets/preferencesDialog.py:123 msgid "Select book file" msgstr "" #: lib/pychess/widgets/preferencesDialog.py:128 msgid "Opening books" msgstr "" #: lib/pychess/widgets/preferencesDialog.py:156 msgid "Select Gaviota TB path" msgstr "" #: lib/pychess/widgets/preferencesDialog.py:331 msgid "Open Sound File" msgstr "Oscail an Comhad Fuaime" #: lib/pychess/widgets/preferencesDialog.py:341 msgid "Sound files" msgstr "" #: lib/pychess/widgets/preferencesDialog.py:485 msgid "Undescribed panel" msgstr "" #: lib/pychess/widgets/preferencesDialog.py:678 msgid "Select auto save path" msgstr "" #: lib/pychess/widgets/tipOfTheDay.py:51 msgid "" "You can start a new game by Game > New Game, in New Game " "window do you can choose Players, Time Control and Chess " "Variants." msgstr "" #: lib/pychess/widgets/tipOfTheDay.py:52 msgid "" "You can choose from 20 different difficulties to play against the computer." msgstr "" #: lib/pychess/widgets/tipOfTheDay.py:53 msgid "" "Chess Variants are like the pieces of the last line will be placed on the " "board." msgstr "" #: lib/pychess/widgets/tipOfTheDay.py:54 msgid "" "To save a game Game > Save Game As, give the filename and " "choose where you want to be saved. At the bottom choose extension type of " "the file, and Save." msgstr "" #: lib/pychess/widgets/tipOfTheDay.py:55 msgid "" "Do you know that you can call flag when the clock is with you, " "Actions > Call Flag." msgstr "" #: lib/pychess/widgets/tipOfTheDay.py:56 msgid "Pressing Ctrl+Z to offer opponent the possible rollback moves." msgstr "" #: lib/pychess/widgets/tipOfTheDay.py:57 msgid "" "To play on Fullscreen mode, just type F11. Coming back, F11 " "again." msgstr "" #: lib/pychess/widgets/tipOfTheDay.py:58 msgid "Hint mode analyzing your game, enable this type Ctrl+H." msgstr "" #: lib/pychess/widgets/tipOfTheDay.py:59 msgid "" "Spy mode analyzing the oponnent game, enable this type Ctrl+Y." msgstr "" #: lib/pychess/widgets/tipOfTheDay.py:60 msgid "" "You can play chess listening to the sounds of the game, for that, " "Settings > Preferences > Sound tab, enable Use " "sounds in PyChess and choose your preferred sounds." msgstr "" #: lib/pychess/widgets/tipOfTheDay.py:61 msgid "" "Do you know that you can help translate Pychess in your language, " "Help > Translate Pychess." msgstr "" #: lib/pychess/widgets/tipOfTheDay.py:62 msgid "" "Do you know that it is possible to finish a chess game in just 2 turns?" msgstr "" #: lib/pychess/widgets/tipOfTheDay.py:63 msgid "" "Do you know that the number of possible chess games exceeds the number of " "atoms in the Universe?" msgstr "" #: lib/pychess/ic/managers/ChatManager.py:184 msgid "Shout" msgstr "" #: lib/pychess/ic/managers/ChatManager.py:185 msgid "Chess Shout" msgstr "" #: lib/pychess/ic/managers/ChatManager.py:195 #, python-format msgid "Unofficial channel %d" msgstr "" #: lib/pychess/Utils/lutils/LBoard.py:152 #, python-format msgid "" "FEN needs 6 data fields. \n" "\n" "%s" msgstr "" #: lib/pychess/Utils/lutils/LBoard.py:154 #, python-format msgid "" "FEN needs at least 2 data fields in fenstr. \n" "\n" "%s" msgstr "" #: lib/pychess/Utils/lutils/LBoard.py:175 #, python-format msgid "" "Needs 7 slashes in piece placement field. \n" "\n" "%s" msgstr "" #: lib/pychess/Utils/lutils/LBoard.py:178 #, python-format msgid "" "Active color field must be one of w or b. \n" "\n" "%s" msgstr "" #: lib/pychess/Utils/lutils/LBoard.py:189 #, python-format msgid "" "Castling availability field is not legal. \n" "\n" "%s" msgstr "" #: lib/pychess/Utils/lutils/LBoard.py:192 #, python-format msgid "" "En passant cord is not legal. \n" "\n" "%s" msgstr "" #: lib/pychess/Utils/lutils/lmove.py:260 msgid "invalid promoted piece" msgstr "" #: lib/pychess/Utils/lutils/lmove.py:272 msgid "the move needs a piece and a cord" msgstr "" #: lib/pychess/Utils/lutils/lmove.py:306 lib/pychess/Utils/lutils/lmove.py:556 msgid "promotion move without promoted piece is incorrect" msgstr "" #: lib/pychess/Utils/lutils/lmove.py:312 #, python-format msgid "the captured cord (%s) is incorrect" msgstr "" #: lib/pychess/Utils/lutils/lmove.py:323 #, python-format msgid "the end cord (%s) is incorrect" msgstr "" #: lib/pychess/Utils/lutils/strateval.py:24 sidepanel/commentPanel.py:191 #: sidepanel/commentPanel.py:208 msgid "and" msgstr "" #: lib/pychess/Utils/lutils/strateval.py:43 msgid "draws" msgstr "cluichí cothrom" #: lib/pychess/Utils/lutils/strateval.py:45 msgid "mates" msgstr "marbhsháinnithe" #: lib/pychess/Utils/lutils/strateval.py:49 msgid "puts opponent in check" msgstr "cuireann sé an céile iomaíocht i marbhsháinn" #: lib/pychess/Utils/lutils/strateval.py:73 msgid "improves king safety" msgstr "feabhsaíonn sé slándála an rí" #: lib/pychess/Utils/lutils/strateval.py:75 msgid "slightly improves king safety" msgstr "" #: lib/pychess/Utils/lutils/strateval.py:108 msgid "moves a rook to an open file" msgstr "" #: lib/pychess/Utils/lutils/strateval.py:109 msgid "moves an rook to a half-open file" msgstr "" #: lib/pychess/Utils/lutils/strateval.py:119 #: lib/pychess/Utils/lutils/strateval.py:121 #: lib/pychess/Utils/lutils/strateval.py:124 #: lib/pychess/Utils/lutils/strateval.py:126 #, python-format msgid "moves bishop into fianchetto: %s" msgstr "" #: lib/pychess/Utils/lutils/strateval.py:132 #, python-format msgid "promotes a Pawn to a %s" msgstr "" #: lib/pychess/Utils/lutils/strateval.py:135 msgid "castles" msgstr "caisleáin" #: lib/pychess/Utils/lutils/strateval.py:158 msgid "takes back material" msgstr "" #: lib/pychess/Utils/lutils/strateval.py:162 #: lib/pychess/Utils/lutils/strateval.py:170 msgid "sacrifies material" msgstr "" #: lib/pychess/Utils/lutils/strateval.py:164 msgid "exchanges material" msgstr "" #: lib/pychess/Utils/lutils/strateval.py:166 msgid "captures material" msgstr "" #: lib/pychess/Utils/lutils/strateval.py:291 #, python-format msgid "rescues a %s" msgstr "" #: lib/pychess/Utils/lutils/strateval.py:294 #, python-format msgid "threatens to win material by %s" msgstr "" #: lib/pychess/Utils/lutils/strateval.py:296 #, python-format msgid "increases the pressure on %s" msgstr "" #: lib/pychess/Utils/lutils/strateval.py:298 #, python-format msgid "defends %s" msgstr "cosnaíonn sé %s" #: lib/pychess/Utils/lutils/strateval.py:336 #, python-format msgid "pins an enemy %(oppiece)s on the %(piece)s at %(cord)s" msgstr "" #: lib/pychess/Utils/lutils/strateval.py:369 #, python-format msgid "White has a new piece in outpost: %s" msgstr "" #: lib/pychess/Utils/lutils/strateval.py:377 #, python-format msgid "Black has a new piece in outpost: %s" msgstr "" #: lib/pychess/Utils/lutils/strateval.py:416 #, python-format msgid "%(color)s has a new passed pawn on %(cord)s" msgstr "" #: lib/pychess/Utils/lutils/strateval.py:470 msgid "half-open" msgstr "" #: lib/pychess/Utils/lutils/strateval.py:472 #, python-format msgid "in the %(x)s%(y)s file" msgstr "" #: lib/pychess/Utils/lutils/strateval.py:474 #, python-format msgid "in the %(x)s%(y)s files" msgstr "" #: lib/pychess/Utils/lutils/strateval.py:477 #, python-format msgid "%(color)s got a double pawn %(place)s" msgstr "" #: lib/pychess/Utils/lutils/strateval.py:478 #, python-format msgid "%(color)s got new double pawns %(place)s" msgstr "" #: lib/pychess/Utils/lutils/strateval.py:485 #, python-format msgid "%(color)s got an isolated pawn in the %(x)s file" msgid_plural "%(color)s got isolated pawns in the %(x)s files" msgstr[0] "" msgstr[1] "" msgstr[2] "" msgstr[3] "" msgstr[4] "" #: lib/pychess/Utils/lutils/strateval.py:492 #, python-format msgid "%s moves pawns into stonewall formation" msgstr "" #: lib/pychess/Utils/lutils/strateval.py:507 #: lib/pychess/Utils/lutils/strateval.py:514 #, python-format msgid "%s can no longer castle" msgstr "" #: lib/pychess/Utils/lutils/strateval.py:508 #: lib/pychess/Utils/lutils/strateval.py:515 #, python-format msgid "%s can no longer castle in queenside" msgstr "" #: lib/pychess/Utils/lutils/strateval.py:510 #: lib/pychess/Utils/lutils/strateval.py:517 #, python-format msgid "%s can no longer castle in kingside" msgstr "" #: lib/pychess/Utils/lutils/strateval.py:551 #, python-format msgid "%(opcolor)s has a new trapped bishop on %(cord)s" msgstr "" #: lib/pychess/Utils/lutils/strateval.py:573 #, python-format msgid "develops a pawn: %s" msgstr "" #: lib/pychess/Utils/lutils/strateval.py:574 #, python-format msgid "brings a pawn closer to the backrow: %s" msgstr "" #: lib/pychess/Utils/lutils/strateval.py:591 #, python-format msgid "brings a %(piece)s closer to enemy king: %(cord)s" msgstr "" #: lib/pychess/Utils/lutils/strateval.py:594 #, python-format msgid "develops a %(piece)s: %(cord)s" msgstr "" #: lib/pychess/Utils/lutils/strateval.py:612 #, python-format msgid "places a %(piece)s more active: %(cord)s" msgstr "" #: lib/pychess/Utils/lutils/strateval.py:638 msgid "White should do pawn storm in right" msgstr "" #: lib/pychess/Utils/lutils/strateval.py:640 msgid "Black should do pawn storm in left" msgstr "" #: lib/pychess/Utils/lutils/strateval.py:643 msgid "White should do pawn storm in left" msgstr "" #: lib/pychess/Utils/lutils/strateval.py:645 msgid "Black should do pawn storm in right" msgstr "" #: lib/pychess/Utils/lutils/strateval.py:671 msgid "Black has a rather cramped position" msgstr "" #: lib/pychess/Utils/lutils/strateval.py:673 msgid "Black has a slightly cramped position" msgstr "" #: lib/pychess/Utils/lutils/strateval.py:675 msgid "White has a rather cramped position" msgstr "" #: lib/pychess/Utils/lutils/strateval.py:677 msgid "White has a slightly cramped position" msgstr "" #: sidepanel/annotationPanel.py:26 msgid "Annotation" msgstr "" #: sidepanel/annotationPanel.py:29 msgid "Annotated game" msgstr "" #: sidepanel/annotationPanel.py:236 msgid "Copy PGN" msgstr "" #: sidepanel/annotationPanel.py:249 msgid "Add start comment" msgstr "" #: sidepanel/annotationPanel.py:254 msgid "Add comment" msgstr "" #: sidepanel/annotationPanel.py:258 sidepanel/annotationPanel.py:316 msgid "Edit comment" msgstr "" #: sidepanel/annotationPanel.py:269 msgid "Forced move" msgstr "" #: sidepanel/annotationPanel.py:274 msgid "Add move symbol" msgstr "" #: sidepanel/annotationPanel.py:280 msgid "Unclear position" msgstr "" #: sidepanel/annotationPanel.py:289 msgid "Zugzwang" msgstr "" #: sidepanel/annotationPanel.py:290 msgid "Development adv." msgstr "" #: sidepanel/annotationPanel.py:291 msgid "Initiative" msgstr "" #: sidepanel/annotationPanel.py:292 msgid "With attack" msgstr "" #: sidepanel/annotationPanel.py:293 msgid "Compensation" msgstr "" #: sidepanel/annotationPanel.py:294 msgid "Counterplay" msgstr "" #: sidepanel/annotationPanel.py:295 msgid "Time pressure" msgstr "" #: sidepanel/annotationPanel.py:300 msgid "Add evaluation symbol" msgstr "" #: sidepanel/annotationPanel.py:304 msgid "Remove symbols" msgstr "" #: sidepanel/annotationPanel.py:911 #, python-format msgid "round %s" msgstr "" #: sidepanel/bookPanel.py:21 msgid "Hints" msgstr "" #: sidepanel/bookPanel.py:25 msgid "" "The hint panel will provide computer advice during each stage of the game" msgstr "" #: sidepanel/bookPanel.py:27 msgid "Official PyChess panel." msgstr "" #: sidepanel/bookPanel.py:87 msgid "Opening Book" msgstr "" #: sidepanel/bookPanel.py:88 msgid "" "The opening book will try to inspire you during the opening phase of the " "game by showing you common moves made by chess masters" msgstr "" #: sidepanel/bookPanel.py:139 #, python-format msgid "Analysis by %s" msgstr "" #: sidepanel/bookPanel.py:140 #, python-format msgid "" "%s will try to predict which move is best and which side has the advantage" msgstr "" #: sidepanel/bookPanel.py:142 #, python-format msgid "Threat analysis by %s" msgstr "" #: sidepanel/bookPanel.py:143 #, python-format msgid "" "%s will identify what threats would exist if it were your opponent's turn to" " move" msgstr "" #: sidepanel/bookPanel.py:159 sidepanel/bookPanel.py:269 msgid "Calculating..." msgstr "" #: sidepanel/bookPanel.py:300 msgid "" "Engine scores are in units of pawns, from White's point of view. Double " "clicking on analysis lines you can insert them into Annotation panel as " "variations." msgstr "" #: sidepanel/bookPanel.py:302 msgid "" "Adding suggestions can help you find ideas, but slows down the computer's " "analysis." msgstr "" #: sidepanel/bookPanel.py:311 msgid "Endgame Table" msgstr "" #: sidepanel/bookPanel.py:315 msgid "" "The endgame table will show exact analysis when there are few pieces on the " "board." msgstr "" #: sidepanel/bookPanel.py:364 sidepanel/bookPanel.py:367 #, python-format msgid "Mate in %d" msgstr "" #: sidepanel/bookPanel.py:554 msgid "" "In this position,\n" "there is no legal move." msgstr "" #: sidepanel/chatPanel.py:21 msgid "" "The chat panel lets you communicate with your opponent during the game, " "assuming he or she is interested" msgstr "" #: sidepanel/commentPanel.py:16 msgid "Comments" msgstr "Tráchtaí" #: sidepanel/commentPanel.py:20 msgid "The comments panel will try to analyze and explain the moves played" msgstr "" #: sidepanel/commentPanel.py:121 msgid "Initial position" msgstr "Suíomh tosaigh" #: sidepanel/commentPanel.py:254 #, python-format msgid "%(color)s moves a %(piece)s to %(cord)s" msgstr "" #: sidepanel/engineOutputPanel.py:15 msgid "Engines" msgstr "" #: sidepanel/engineOutputPanel.py:20 msgid "" "The engine output panel shows the thinking output of chess engines (computer" " players) during a game" msgstr "" #: sidepanel/engineOutputPanel.py:44 msgid "No chess engines (computer players) are participating in this game." msgstr "" #: sidepanel/historyPanel.py:10 msgid "Move History" msgstr "Bog an t-Oireas" #: sidepanel/historyPanel.py:13 msgid "" "The moves sheet keeps track of the players' moves and lets you navigate " "through the game history" msgstr "" #: sidepanel/scorePanel.py:15 msgid "Score" msgstr "Scór" #: sidepanel/scorePanel.py:19 msgid "" "The score panel tries to evaluate the positions and shows you a graph of the" " game progress" msgstr "" pychess-0.12.2/lang/ga/LC_MESSAGES/pychess.mo0000644000175000017470000001335712653231273020675 0ustar tamasusers00000000000000fL|   Q* &| (         3 < G X n            ' 8 A N P U ^ g n x   #           & , > W q          %   ! + 6 ? M Y p v ~  " +     !/M^an(/)< Q]_dkpv   ,  ,6OXnsy  #% * 6@GVnp u.! 6?E%W}!   M)w   % *";+^"0O(4AWJB]6QN S0T5< 9H,I 2eF?*)_M"+ Ya[fcL;3:E&XC$ G 8b/U-.D1Z7@dK>'`%!R=V^#P\AnalyzingAnimationDate of gameGame dataNewsPlay Sound When...PlayersToolsA file named '%s' already exists. Would you like to replace it?Engine, %s, has diedUnknown file type '%s'About ChessAll Chess FilesAll FilesBBeepBishopBlackBlitzChess GameClockClose _without SavingCommentsConnectingConnection ErrorConnection was closedCould not save the fileEmailEnter GameEvent:File existsGain:Game informationGuestHuman BeingInitial positionKKnightLightningLoaded gameLocal EventLocal SiteLog on ErrorLog on as _GuestMinutes:Move HistoryNNameNew GameNo soundNormalOpen GameOpen Sound FilePPingPreferencesPyChess - Connect to Internet ChessPyChess - Internet Chess: FICSQQueenRRatingRookRound:Save GameScoreSelect sound file...Site:SpentThe error was: %sThe game ended in a drawThe game has been abortedThe game has been adjournedThe game has been killedTimeTypeUnknownUse _analyzerWhite_Accept_Actions_Game_Help_Hide tabs when only one game is open_Load Game_Name:_New Game_Password:_Replace_Rotate Board_Start Game_Use sounds in PyChess_Viewcastlesdefends %sdrawshttp://en.wikipedia.org/wiki/Chesshttp://en.wikipedia.org/wiki/Rules_of_chessimproves king safetymatesputs opponent in checkProject-Id-Version: pychess Report-Msgid-Bugs-To: POT-Creation-Date: 2016-01-27 13:28+0100 PO-Revision-Date: 2016-01-28 08:56+0000 Last-Translator: slav0nic Language-Team: Irish (http://www.transifex.com/gbtami/pychess/language/ga/) MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Language: ga Plural-Forms: nplurals=5; plural=(n==1 ? 0 : n==2 ? 1 : n<7 ? 2 : n<11 ? 3 : 4); Ag miondealúBeochanDáta an chluicheSonraí an chluicheNuachtSeinn Fuaim Nuair A...ImreoiríUirlisíTá comhad leis an t-ainm '%s' ann cheana. Ar mhaith leat é a chuir ina ionad?D'éag an t-Inneall %sCineál comhad anaithnid '%s'Maidir le FicheallGach Comhad FicheallGach ComhadEBípEaspagDubhGastaCluiche FicheallClogDún gan cuir i dtaisceTráchtaíAg CeangailtBotún NaiscDúnadh an nascNíorbh fhéidir an comhad a chuir i dtaisceRíomhphostTéigh Isteach i gCluicheTeagmhas:Tá an comhad ann cheanaBuachan:Faisnéis an chluicheAoíDuineSuíomh tosaighRRidireFíor-ThapaCluiche luchtaitheTeagmhas LogántaSuíomh LogántaBotún ag Síniú IsteachSínigh isteach mar _AoíNóiméid:Bog an t-OireasNAinmCluiche NuaGan fuaimGnáthOscail CluicheOscail an Comhad FuaimePPingSainroghannaPyChess - Ficheall Nasctha leis an t-IdirlíonPyChess - Ficheall Idirlín: FICSBBanríonRMeastachánRúcachDreas:Cuir an Cluiche i dtaisceScórRoghnaigh comhad fuaime...Suíomh:CaiteAn botún ná: %sChríochnaigh an cluiche ar comhscórTobscoireadh an cluicheCuireadh an cluiche ar fionraíCuireadh deireadh leis an cluicheAmCineálAnaithnidBain feidhm as anBán_Glac_Gníomhartha_Cluiche_Cabhair_Folaigh na cluaisíní nuair atá nach bhfuil ach cluiche amháin ar oscailt_Luchtaigh Cluiche_Ainm:Cluiche _Nua_Focal Faire:_Ionadaigh_Rothlaigh an Clár_Tosaigh an Cluiche_Bain feidhm as fuaimeanna i bPyChess_Amharccaisleáincosnaíonn sé %scluichí cothromhttp://en.wikipedia.org/wiki/Chesshttp://en.wikipedia.org/wiki/Rules_of_chessfeabhsaíonn sé slándála an rímarbhsháinnithecuireann sé an céile iomaíocht i marbhsháinnpychess-0.12.2/lang/si/0000755000175000017470000000000012653231274015111 5ustar tamasusers00000000000000pychess-0.12.2/lang/si/LC_MESSAGES/0000755000175000017470000000000012653231274016676 5ustar tamasusers00000000000000pychess-0.12.2/lang/si/LC_MESSAGES/pychess.po0000644000175000017470000024103312653216214020714 0ustar tamasusers00000000000000# SOME DESCRIPTIVE TITLE. # Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER # This file is distributed under the same license as the pychess package. # # Translators: # FIRST AUTHOR , 2008 msgid "" msgstr "" "Project-Id-Version: pychess\n" "Report-Msgid-Bugs-To: \n" "POT-Creation-Date: 2016-01-27 13:28+0100\n" "PO-Revision-Date: 2016-01-28 08:56+0000\n" "Last-Translator: slav0nic \n" "Language-Team: Sinhala (http://www.transifex.com/gbtami/pychess/language/si/)\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" "Language: si\n" "Plural-Forms: nplurals=2; plural=(n != 1);\n" # "Plural-Forms: nplurals=INTEGER; plural=EXPRESSION;\n" #: glade/analyze_game.glade:22 msgid "Analyze game" msgstr "" #: glade/analyze_game.glade:87 msgid "Use analyzer:" msgstr "" #: glade/analyze_game.glade:122 glade/PyChess.glade:2054 msgid "Maximum analysis time in seconds:" msgstr "" #: glade/analyze_game.glade:163 msgid "" "If the analyzer finds a move where the evaluation difference (the difference" " between the evaluation for the move it thinks is the best move and the " "evaluation for the move made in the game) exceeds this value, it will add an" " annotation for that move (consisting of the engine's Principal Variation " "for the move) to the Annotation panel" msgstr "" #: glade/analyze_game.glade:164 msgid "Variation annotation creation threshold in centipawns:" msgstr "" #: glade/analyze_game.glade:198 msgid "Analyze from current position" msgstr "" #: glade/analyze_game.glade:214 msgid "Add threatening variation lines " msgstr "" #: glade/analyze_game.glade:229 glade/PyChess.glade:1459 msgid "Colorize analyzed moves" msgstr "" #: glade/analyze_game.glade:244 glade/PyChess.glade:1495 msgid "Show evaluation values" msgstr "" #: glade/discovererDialog.glade:18 msgid "PyChess is discovering your engines. Please wait." msgstr "" #: glade/discovererDialog.glade:77 msgid "PyChess.py:" msgstr "" #: glade/discovererDialog.glade:89 msgid "ShredderLinuxChess:" msgstr "" #: glade/discovererDialog.glade:101 msgid "gnuchess:" msgstr "" #: glade/fics_logon.glade:7 msgid "PyChess - Connect to Internet Chess" msgstr "" #: glade/fics_logon.glade:47 msgid "Connect to the Free Online Chess Server" msgstr "" #: glade/fics_logon.glade:129 glade/taskers.glade:394 msgid "_Password:" msgstr "රහස්පදය(_P)" #: glade/fics_logon.glade:143 msgid "_Name:" msgstr "නම (_N):" #: glade/fics_logon.glade:191 msgid "Log on as _Guest" msgstr "" #: glade/fics_logon.glade:227 msgid "Host:" msgstr "" #: glade/fics_logon.glade:259 msgid "Po_rts:" msgstr "" #: glade/fics_logon.glade:271 msgid "Auto login on startup" msgstr "" #: glade/fics_logon.glade:385 msgid "S_ign up" msgstr "" #: glade/fics_lounge.glade:35 msgid "Challenge: " msgstr "" #: glade/fics_lounge.glade:97 msgid "Send Challenge" msgstr "" #: glade/fics_lounge.glade:133 msgid "Challenge:" msgstr "" #: glade/fics_lounge.glade:327 glade/fics_lounge.glade:2078 msgid "Lightning:" msgstr "" #: glade/fics_lounge.glade:351 glade/fics_lounge.glade:2102 msgid "Standard:" msgstr "" #: glade/fics_lounge.glade:375 glade/fics_lounge.glade:2126 msgid "Blitz:" msgstr "" #: glade/fics_lounge.glade:400 msgid "2 min, Fischer Random, Black" msgstr "" #: glade/fics_lounge.glade:422 msgid "10 min + 6 sec/move, White" msgstr "" #: glade/fics_lounge.glade:444 msgid "5 min" msgstr "" #: glade/fics_lounge.glade:480 msgid "Edit Seek" msgstr "" #: glade/fics_lounge.glade:584 lib/pychess/ic/ICLounge.py:2208 #: lib/pychess/ic/__init__.py:101 lib/pychess/Utils/GameModel.py:206 msgid "Untimed" msgstr "" #: glade/fics_lounge.glade:637 msgid "Minutes: " msgstr "" #: glade/fics_lounge.glade:665 msgid " Gain: " msgstr "" #: glade/fics_lounge.glade:703 msgid "Time control: " msgstr "" #: glade/fics_lounge.glade:716 lib/pychess/ic/FICSObjects.py:56 #: lib/pychess/ic/ICLounge.py:1137 lib/pychess/ic/ICLounge.py:2208 #: lib/pychess/ic/__init__.py:99 msgid "Standard" msgstr "" #: glade/fics_lounge.glade:757 glade/newInOut.glade:633 msgid "Time Control" msgstr "" #: glade/fics_lounge.glade:814 glade/fics_lounge.glade:1346 msgid "Don't care" msgstr "" #: glade/fics_lounge.glade:879 msgid "Your strength: " msgstr "" #: glade/fics_lounge.glade:921 msgid "(Blitz)" msgstr "" #: glade/fics_lounge.glade:951 msgid "Opponent's strength: " msgstr "" #: glade/fics_lounge.glade:1055 msgid "" "When this button is in the \"locked\" state, the relationship\n" "between \"Opponent's strength\" and \"Your strength\" will be\n" "preserved when \n" "a) your rating for the type of game sought has changed\n" "b) you change the variant or the time control" msgstr "" #: glade/fics_lounge.glade:1095 msgid "Center:" msgstr "" #: glade/fics_lounge.glade:1134 msgid "1200" msgstr "" #: glade/fics_lounge.glade:1188 msgid "Tolerance:" msgstr "" #: glade/fics_lounge.glade:1243 lib/pychess/ic/ICLounge.py:2452 msgid "Hide" msgstr "" #: glade/fics_lounge.glade:1289 msgid "Opponent Strength" msgstr "" #: glade/fics_lounge.glade:1386 lib/pychess/Database/gamelist.py:40 #: lib/pychess/ic/ICLounge.py:1357 lib/pychess/ic/ICLounge.py:1557 #: lib/pychess/ic/ICLounge.py:2108 lib/pychess/Utils/repr.py:10 #: lib/pychess/widgets/ChessClock.py:40 #: lib/pychess/widgets/TaskerManager.py:153 msgid "White" msgstr "" #: glade/fics_lounge.glade:1414 lib/pychess/Database/gamelist.py:40 #: lib/pychess/ic/ICLounge.py:1358 lib/pychess/ic/ICLounge.py:1558 #: lib/pychess/ic/ICLounge.py:2110 lib/pychess/Utils/repr.py:10 #: lib/pychess/widgets/ChessClock.py:40 #: lib/pychess/widgets/TaskerManager.py:154 msgid "Black" msgstr "" #: glade/fics_lounge.glade:1453 msgid "Your Color" msgstr "" #: glade/fics_lounge.glade:1512 msgid "Play normal chess rules" msgstr "" #: glade/fics_lounge.glade:1552 msgid "Play" msgstr "" #: glade/fics_lounge.glade:1618 glade/newInOut.glade:833 msgid "Chess Variant" msgstr "" #: glade/fics_lounge.glade:1676 msgid "Rated game" msgstr "" #: glade/fics_lounge.glade:1692 msgid "Manually accept opponent" msgstr "" #: glade/fics_lounge.glade:1722 msgid "Options" msgstr "" #: glade/fics_lounge.glade:1750 msgid "PyChess - Internet Chess: FICS" msgstr "" #: glade/fics_lounge.glade:1823 msgid "_Clear Seeks" msgstr "" #: glade/fics_lounge.glade:1847 msgid "_Accept" msgstr "" #: glade/fics_lounge.glade:1871 msgid "_Decline" msgstr "" #: glade/fics_lounge.glade:2151 msgid "2 min, Fischer Random, 1800↓, Black" msgstr "" #: glade/fics_lounge.glade:2172 msgid "10 min + 6 sec/move, 1400↑, White" msgstr "" #: glade/fics_lounge.glade:2193 msgid "5 min, 1200-1800, Manual" msgstr "" #: glade/fics_lounge.glade:2247 msgid "Send all seeks" msgstr "" #: glade/fics_lounge.glade:2301 msgid "Send seek" msgstr "" #: glade/fics_lounge.glade:2337 msgid "Create Seek" msgstr "" #: glade/fics_lounge.glade:2353 msgid "_Seeks / Challenges" msgstr "" #: glade/fics_lounge.glade:2374 lib/pychess/ic/ICLounge.py:472 #: lib/pychess/ic/ICLounge.py:670 lib/pychess/ic/ICLounge.py:1357 #: lib/pychess/ic/ICLounge.py:1358 msgid "Rating" msgstr "" #: glade/fics_lounge.glade:2399 msgid "Time" msgstr "" #: glade/fics_lounge.glade:2419 msgid "Seek _Graph" msgstr "" #: glade/fics_lounge.glade:2444 msgid "0 Players Ready" msgstr "" #: glade/fics_lounge.glade:2496 msgid "Challenge" msgstr "" #: glade/fics_lounge.glade:2549 glade/fics_lounge.glade:2735 msgid "Observe" msgstr "" #: glade/fics_lounge.glade:2602 msgid "Start Private Chat" msgstr "" #: glade/fics_lounge.glade:2659 msgid "_Player List" msgstr "" #: glade/fics_lounge.glade:2792 msgid "_Game List" msgstr "" #: glade/fics_lounge.glade:2847 msgid "_My games" msgstr "" #: glade/fics_lounge.glade:2904 glade/PyChess.glade:841 msgid "Offer _Resume" msgstr "" #: glade/fics_lounge.glade:2962 glade/PyChess.glade:880 msgid "R_esign" msgstr "" #: glade/fics_lounge.glade:3006 glade/PyChess.glade:820 msgid "Offer _Draw" msgstr "" #: glade/fics_lounge.glade:3050 msgid "Offer A_bort" msgstr "" #: glade/fics_lounge.glade:3107 msgid "Pre_view" msgstr "" #: glade/fics_lounge.glade:3151 msgid "Examine" msgstr "" #: glade/fics_lounge.glade:3208 msgid "_Archived" msgstr "" #: glade/fics_lounge.glade:3313 msgid "News" msgstr "" #: glade/fics_lounge.glade:3345 msgid "Show Console" msgstr "" #: glade/fics_lounge.glade:3359 msgid "Show _Chat" msgstr "" #: glade/fics_lounge.glade:3373 msgid "_Log Off" msgstr "" #: glade/fics_lounge.glade:3393 msgid "Tools" msgstr "" #: glade/fics_lounge.glade:3428 msgid "Asymmetric Random " msgstr "" #: glade/findbar.glade:6 msgid "window1" msgstr "" #: glade/findbar.glade:21 msgid "0 of 0" msgstr "" #: glade/findbar.glade:66 msgid "Search:" msgstr "" #: glade/findbar.glade:134 msgid "_Previous" msgstr "" #: glade/findbar.glade:192 msgid "_Next" msgstr "" #: glade/newInOut.glade:45 lib/pychess/widgets/newGameDialog.py:445 msgid "New Game" msgstr "" #: glade/newInOut.glade:108 msgid "_Start Game" msgstr "" #: glade/newInOut.glade:130 msgid "Copy FEN" msgstr "" #: glade/newInOut.glade:143 msgid "Clear" msgstr "" #: glade/newInOut.glade:156 msgid "Paste FEN" msgstr "" #: glade/newInOut.glade:257 msgid "_Black player:" msgstr "" #: glade/newInOut.glade:274 msgid "_White player:" msgstr "" #: glade/newInOut.glade:385 msgid "Players" msgstr "" #: glade/newInOut.glade:436 msgid "_Untimed" msgstr "" #: glade/newInOut.glade:475 msgid "Blitz: 5 min" msgstr "" #: glade/newInOut.glade:526 msgid "Rapid: 15 min + 10 sec/move" msgstr "" #: glade/newInOut.glade:575 msgid "Normal: 40 min + 15 sec/move" msgstr "" #: glade/newInOut.glade:684 msgid "_Play Normal chess" msgstr "" #: glade/newInOut.glade:724 msgid "Play Fischer Random chess" msgstr "" #: glade/newInOut.glade:774 msgid "Play Losers chess" msgstr "" #: glade/newInOut.glade:919 msgid "Open Game" msgstr "" #: glade/newInOut.glade:1162 msgid "Initial Position" msgstr "" #: glade/newInOut.glade:1219 msgid "Enter Game Notation" msgstr "" #: glade/newInOut.glade:1314 msgid "Halfmove clock" msgstr "" #: glade/newInOut.glade:1327 msgid "En passant line" msgstr "" #: glade/newInOut.glade:1339 msgid "Side to move" msgstr "" #: glade/newInOut.glade:1351 msgid "Move number" msgstr "" #: glade/newInOut.glade:1361 msgid "Black O-O" msgstr "" #: glade/newInOut.glade:1375 msgid "Black O-O-O" msgstr "" #: glade/newInOut.glade:1389 msgid "White O-O-O" msgstr "" #: glade/newInOut.glade:1403 msgid "White O-O" msgstr "" #: glade/promotion.glade:7 msgid "Promotion" msgstr "" #: glade/promotion.glade:49 lib/pychess/Utils/repr.py:12 msgid "Queen" msgstr "" #: glade/promotion.glade:95 lib/pychess/Utils/repr.py:12 msgid "Rook" msgstr "" #: glade/promotion.glade:141 lib/pychess/Utils/repr.py:12 msgid "Bishop" msgstr "" #: glade/promotion.glade:187 lib/pychess/Utils/repr.py:12 msgid "Knight" msgstr "" #: glade/promotion.glade:233 lib/pychess/Utils/repr.py:12 msgid "King" msgstr "" #: glade/promotion.glade:265 msgid "Promote pawn to what?" msgstr "" #: glade/PyChess.glade:9 msgid "Chess client" msgstr "" #: glade/PyChess.glade:44 msgid "Game information" msgstr "" #: glade/PyChess.glade:164 msgid "Event:" msgstr "" #: glade/PyChess.glade:178 msgid "Site:" msgstr "" #: glade/PyChess.glade:204 msgid "Round:" msgstr "" #: glade/PyChess.glade:237 msgid "White:" msgstr "" #: glade/PyChess.glade:249 msgid "Black:" msgstr "" #: glade/PyChess.glade:302 msgid "Game data" msgstr "" #: glade/PyChess.glade:357 msgid "Date of game" msgstr "" #: glade/PyChess.glade:495 msgid "_Game" msgstr "" #: glade/PyChess.glade:502 msgid "_New Game" msgstr "" #: glade/PyChess.glade:515 msgid "Play _Internet Chess" msgstr "" #: glade/PyChess.glade:534 msgid "_Load Game" msgstr "" #: glade/PyChess.glade:550 msgid "Load _Recent Game" msgstr "" #: glade/PyChess.glade:558 msgid "Open _Database" msgstr "" #: glade/PyChess.glade:569 lib/pychess/widgets/newGameDialog.py:615 msgid "Setup Position" msgstr "" #: glade/PyChess.glade:579 msgid "Enter Game _Notation" msgstr "" #: glade/PyChess.glade:592 msgid "_Save Game" msgstr "" #: glade/PyChess.glade:606 msgid "Save Game _As" msgstr "" #: glade/PyChess.glade:624 msgid "Share Game" msgstr "" #: glade/PyChess.glade:630 msgid "_Export Position" msgstr "" #: glade/PyChess.glade:644 msgid "_Analyze Game" msgstr "" #: glade/PyChess.glade:678 msgid "Player _Rating" msgstr "" #: glade/PyChess.glade:723 msgid "_Edit" msgstr "" #: glade/PyChess.glade:734 msgid "_Copy PGN" msgstr "" #: glade/PyChess.glade:746 msgid "_Copy FEN" msgstr "" #: glade/PyChess.glade:763 msgid "_Engines" msgstr "" #: glade/PyChess.glade:789 msgid "_Actions" msgstr "" #: glade/PyChess.glade:800 msgid "Offer _Abort" msgstr "" #: glade/PyChess.glade:810 msgid "Offer Ad_journment" msgstr "" #: glade/PyChess.glade:831 msgid "Offer _Pause" msgstr "" #: glade/PyChess.glade:847 msgid "Offer _Undo" msgstr "" #: glade/PyChess.glade:870 msgid "_Call Flag" msgstr "" #: glade/PyChess.glade:890 msgid "Ask to _Move" msgstr "" #: glade/PyChess.glade:905 msgid "Auto Call _Flag" msgstr "" #: glade/PyChess.glade:918 msgid "_View" msgstr "" #: glade/PyChess.glade:925 msgid "_Rotate Board" msgstr "" #: glade/PyChess.glade:939 msgid "_Fullscreen" msgstr "" #: glade/PyChess.glade:952 msgid "Leave _Fullscreen" msgstr "" #: glade/PyChess.glade:969 msgid "_Show Sidepanels" msgstr "" #: glade/PyChess.glade:980 msgid "_Log Viewer" msgstr "" #: glade/PyChess.glade:997 msgid "_Hint mode" msgstr "" #: glade/PyChess.glade:1009 msgid "Sp_y mode" msgstr "" #: glade/PyChess.glade:1024 msgid "_Help" msgstr "" #: glade/PyChess.glade:1034 msgid "About Chess" msgstr "" #: glade/PyChess.glade:1043 msgid "How to Play" msgstr "" #: glade/PyChess.glade:1052 msgid "Translate PyChess" msgstr "" #: glade/PyChess.glade:1058 msgid "Tip of the Day" msgstr "" #: glade/PyChess.glade:1153 msgid "Default" msgstr "" #: glade/PyChess.glade:1156 msgid "Knights" msgstr "" #: glade/PyChess.glade:1167 lib/pychess/widgets/preferencesDialog.py:349 msgid "Beep" msgstr "" #: glade/PyChess.glade:1170 lib/pychess/widgets/preferencesDialog.py:350 msgid "Select sound file..." msgstr "" #: glade/PyChess.glade:1173 lib/pychess/widgets/preferencesDialog.py:348 msgid "No sound" msgstr "" #: glade/PyChess.glade:1180 msgid "Preferences" msgstr "" #: glade/PyChess.glade:1218 msgid "The displayed name of the first human player, e.g., John." msgstr "" #: glade/PyChess.glade:1230 msgid "Name of _first human player:" msgstr "" #: glade/PyChess.glade:1259 msgid "The displayed name of the guest player, e.g., Mary." msgstr "" #: glade/PyChess.glade:1271 msgid "Name of s_econd human player:" msgstr "" #: glade/PyChess.glade:1307 msgid "_Hide tabs when only one game is open" msgstr "" #: glade/PyChess.glade:1312 msgid "" "If set, this hides the tab in the top of the playing window, when it is not " "needed." msgstr "" #: glade/PyChess.glade:1326 msgid "_Use main app closer [x] to close all games" msgstr "" #: glade/PyChess.glade:1331 msgid "" "If set, clicking on main application window closer first time it closes all " "games." msgstr "" #: glade/PyChess.glade:1345 msgid "Auto _rotate board to current human player" msgstr "" #: glade/PyChess.glade:1350 msgid "" "If set, the board will turn after each move, to show the natural view for " "the current player." msgstr "" #: glade/PyChess.glade:1364 msgid "Auto _promote to queen" msgstr "" #: glade/PyChess.glade:1369 msgid "If set, pawn promotes to queen without promotion dialog selection." msgstr "" #: glade/PyChess.glade:1383 msgid "Face _to Face display mode" msgstr "" #: glade/PyChess.glade:1388 msgid "" "If set, the black pieces will be head down, suitable for playing against " "friends on mobile devices." msgstr "" #: glade/PyChess.glade:1402 msgid "Sho_w cords" msgstr "" #: glade/PyChess.glade:1407 msgid "" "If set, the playing board will display labels and ranks for each chess " "field. These are usable in chess notation." msgstr "" #: glade/PyChess.glade:1421 msgid "Show _captured pieces" msgstr "" #: glade/PyChess.glade:1426 msgid "If set, the captured figurines will be shown next to the board." msgstr "" #: glade/PyChess.glade:1440 msgid "Prefer figures in _notation" msgstr "" #: glade/PyChess.glade:1445 msgid "" "If set, PyChess will use figures to express moved pieces, rather than " "uppercase letters." msgstr "" #: glade/PyChess.glade:1464 msgid "If set, PyChess will colorize suboptimal analyzed moves with red." msgstr "" #: glade/PyChess.glade:1477 msgid "Show elapsed move times" msgstr "" #: glade/PyChess.glade:1482 msgid "If set, the elapsed time that a player used for the move is shown." msgstr "" #: glade/PyChess.glade:1500 msgid "If set, the hint analyzer engine evaluation value is shown." msgstr "" #: glade/PyChess.glade:1526 msgid "General Options" msgstr "" #: glade/PyChess.glade:1560 msgid "F_ull board animation" msgstr "" #: glade/PyChess.glade:1565 msgid "Animate pieces, board rotation and more. Use this on fast machines." msgstr "" #: glade/PyChess.glade:1579 msgid "Only animate _moves" msgstr "" #: glade/PyChess.glade:1584 msgid "Only animate piece moves." msgstr "" #: glade/PyChess.glade:1599 msgid "No _animation" msgstr "" #: glade/PyChess.glade:1604 msgid "Never use animation. Use this on slow machines." msgstr "" #: glade/PyChess.glade:1632 msgid "Animation" msgstr "" #: glade/PyChess.glade:1651 msgid "_General" msgstr "" #: glade/PyChess.glade:1692 msgid "Use opening _book" msgstr "" #: glade/PyChess.glade:1697 msgid "If set, PyChess will suggest best opening moves on hint panel." msgstr "" #: glade/PyChess.glade:1724 msgid "Polyglot book file:" msgstr "" #: glade/PyChess.glade:1768 msgid "Use _local tablebases" msgstr "" #: glade/PyChess.glade:1773 msgid "" "If set, PyChess will show game results for different moves in positions containing 6 or less pieces.\n" "You can download tablebase files from:\n" "http://www.olympuschess.com/egtb/gaviota/" msgstr "" #: glade/PyChess.glade:1803 msgid "Gaviota TB path:" msgstr "" #: glade/PyChess.glade:1843 msgid "Use _online tablebases" msgstr "" #: glade/PyChess.glade:1848 msgid "" "If set, PyChess will show game results for different moves in positions containing 6 or less pieces.\n" "It will search positions from http://www.k4it.de/" msgstr "" #: glade/PyChess.glade:1870 msgid "Opening, endgame" msgstr "" #: glade/PyChess.glade:1904 msgid "Use _analyzer" msgstr "" #: glade/PyChess.glade:1946 msgid "" "The analyzer will run in the background and analyze the game. This is " "necessary for the hint mode to work" msgstr "" #: glade/PyChess.glade:1978 msgid "Use _inverted analyzer" msgstr "" #: glade/PyChess.glade:2020 msgid "" "The inverse analyzer will analyze the game as if your opponent was to move. " "This is necessary for the spy mode to work" msgstr "" #: glade/PyChess.glade:2096 msgid "Analyzing" msgstr "" #: glade/PyChess.glade:2118 msgid "_Hints" msgstr "" #: glade/PyChess.glade:2263 msgid "Uninstall" msgstr "" #: glade/PyChess.glade:2317 msgid "Ac_tive" msgstr "" #: glade/PyChess.glade:2367 msgid "Installed Sidepanels" msgstr "" #: glade/PyChess.glade:2382 msgid "Side_panels" msgstr "" #: glade/PyChess.glade:2440 msgid "Light Squares :" msgstr "" #: glade/PyChess.glade:2479 msgid "Dark Squares :" msgstr "" #: glade/PyChess.glade:2515 msgid "Reset Default Colours" msgstr "" #: glade/PyChess.glade:2551 msgid "Board Colours" msgstr "" #: glade/PyChess.glade:2610 msgid "Chess Sets" msgstr "" #: glade/PyChess.glade:2634 msgid "Themes" msgstr "" #: glade/PyChess.glade:2659 msgid "_Use sounds in PyChess" msgstr "" #: glade/PyChess.glade:2982 msgid "A player _checks:" msgstr "" #: glade/PyChess.glade:2997 msgid "A player _moves:" msgstr "" #: glade/PyChess.glade:3010 msgid "Game is _drawn:" msgstr "" #: glade/PyChess.glade:3025 msgid "Game is _lost:" msgstr "" #: glade/PyChess.glade:3040 msgid "Game is _won:" msgstr "" #: glade/PyChess.glade:3055 msgid "A player c_aptures:" msgstr "" #: glade/PyChess.glade:3084 msgid "Game is _set-up:" msgstr "" #: glade/PyChess.glade:3136 msgid "_Observed moves:" msgstr "" #: glade/PyChess.glade:3151 msgid "Observed _ends:" msgstr "" #: glade/PyChess.glade:3265 msgid "Short on _time:" msgstr "" #: glade/PyChess.glade:3317 msgid "_Invalid move:" msgstr "" #: glade/PyChess.glade:3369 msgid "Activate alarm when _remaining sec is:" msgstr "" #: glade/PyChess.glade:3416 msgid "Play Sound When..." msgstr "" #: glade/PyChess.glade:3438 msgid "_Sounds" msgstr "" #: glade/PyChess.glade:3463 msgid "_Auto save finished games" msgstr "" #: glade/PyChess.glade:3497 msgid "Save files to:" msgstr "" #: glade/PyChess.glade:3525 msgid "Use name format:" msgstr "" #: glade/PyChess.glade:3569 msgid "Names: #n1, #n2" msgstr "" #: glade/PyChess.glade:3582 msgid "Year, month, day: #y, #m, #d" msgstr "" #: glade/PyChess.glade:3619 msgid "Save elapsed move _times" msgstr "" #: glade/PyChess.glade:3644 msgid "Save analyzing engine _evaluation values" msgstr "" #: glade/PyChess.glade:3669 msgid "Save _own games only" msgstr "" #: glade/PyChess.glade:3698 msgid "Save" msgstr "" #: glade/PyChess.glade:3728 msgid "uci" msgstr "" #: glade/PyChess.glade:3731 msgid "xboard" msgstr "" #: glade/PyChess.glade:3739 msgid "Manage engines" msgstr "" #: glade/PyChess.glade:3837 msgid "Command:" msgstr "" #: glade/PyChess.glade:3851 msgid "Protocol:" msgstr "" #: glade/PyChess.glade:3865 msgid "Parameters:" msgstr "" #: glade/PyChess.glade:3878 msgid "Command line parameters needed by the engine." msgstr "" #: glade/PyChess.glade:3903 msgid "" "Engines use uci or xboard communication protocol to talk to the GUI.\n" "If it can use both you can set here which one you like." msgstr "" #: glade/PyChess.glade:3929 msgid "Working directory:" msgstr "" #: glade/PyChess.glade:3942 msgid "The directory where the engine will be started from." msgstr "" #: glade/saveGamesDialog.glade:7 msgid "Quit PyChess" msgstr "" #: glade/saveGamesDialog.glade:24 lib/pychess/widgets/ionest.py:424 msgid "Close _without Saving" msgstr "" #: glade/saveGamesDialog.glade:83 msgid "_Save %d documents" msgstr "" #: glade/saveGamesDialog.glade:141 msgid "" "There are %d games with unsaved moves. Save changes before " "closing?" msgstr "" #: glade/saveGamesDialog.glade:161 msgid "Select the games you want to save:" msgstr "" #: glade/saveGamesDialog.glade:204 msgid "If you don't save, new changes to your games will be permanently lost." msgstr "" #: glade/taskers.glade:126 msgid "_Opponent:" msgstr "" #: glade/taskers.glade:154 msgid "_Your Color:" msgstr "" #: glade/taskers.glade:219 msgid "_Start Game" msgstr "" #: glade/taskers.glade:338 msgid "Log on as G_uest" msgstr "" #: glade/taskers.glade:410 msgid "Ha_ndle:" msgstr "" #: glade/taskers.glade:469 msgid "_Connect to server" msgstr "" #: glade/tipoftheday.glade:7 msgid "Tip Of The day" msgstr "" #: glade/tipoftheday.glade:62 msgid "Show tips at startup" msgstr "" #: lib/pychess/Main.py:302 msgid "http://en.wikipedia.org/wiki/Chess" msgstr "" #: lib/pychess/Main.py:305 msgid "http://en.wikipedia.org/wiki/Rules_of_chess" msgstr "" #: lib/pychess/Main.py:370 lib/pychess/widgets/gamenanny.py:80 msgid "Welcome" msgstr "" #: lib/pychess/Database/gamelist.py:40 msgid "Id" msgstr "" #: lib/pychess/Database/gamelist.py:40 msgid "W Elo" msgstr "" #: lib/pychess/Database/gamelist.py:40 msgid "B Elo" msgstr "" #: lib/pychess/Database/gamelist.py:41 msgid "Result" msgstr "" #: lib/pychess/Database/gamelist.py:41 msgid "Event" msgstr "" #: lib/pychess/Database/gamelist.py:41 msgid "Site" msgstr "" #: lib/pychess/Database/gamelist.py:41 msgid "Round" msgstr "" #: lib/pychess/Database/gamelist.py:41 msgid "Date" msgstr "" #: lib/pychess/Database/gamelist.py:41 msgid "ECO" msgstr "" #: lib/pychess/Database/gamelist.py:62 msgid "PyChess Game Database" msgstr "" #: lib/pychess/Database/PgnImport.py:188 #, python-format msgid "The game #%s can't be loaded, because of an error parsing FEN" msgstr "" #: lib/pychess/ic/FICSConnection.py:139 msgid "The connection was broken - got \"end of file\" message" msgstr "" #: lib/pychess/ic/FICSConnection.py:140 #, python-format msgid "'%s' is not a registered name" msgstr "" #: lib/pychess/ic/FICSConnection.py:141 msgid "" "The entered password was invalid.\n" "If you forgot your password, go to http://www.freechess.org/password to request a new one over email." msgstr "" #: lib/pychess/ic/FICSConnection.py:145 #, python-format msgid "Sorry '%s' is already logged in" msgstr "" #: lib/pychess/ic/FICSConnection.py:146 #, python-format msgid "'%s' is a registered name. If it is yours, type the password." msgstr "" #: lib/pychess/ic/FICSConnection.py:147 msgid "" "Due to abuse problems, guest connections have been prevented.\n" "You can still register on http://www.freechess.org" msgstr "" #: lib/pychess/ic/FICSConnection.py:166 msgid "Connecting to server" msgstr "" #: lib/pychess/ic/FICSConnection.py:181 msgid "Logging on to server" msgstr "" #: lib/pychess/ic/FICSConnection.py:239 msgid "Setting up environment" msgstr "" #: lib/pychess/ic/FICSObjects.py:35 lib/pychess/ic/FICSObjects.py:47 #, python-format msgid "%(player)s is %(status)s" msgstr "" #: lib/pychess/ic/FICSObjects.py:46 msgid "not playing" msgstr "" #: lib/pychess/ic/FICSObjects.py:54 lib/pychess/ic/ICLounge.py:1136 #: lib/pychess/ic/ICLounge.py:2209 lib/pychess/ic/__init__.py:98 #: lib/pychess/widgets/newGameDialog.py:153 msgid "Blitz" msgstr "" #: lib/pychess/ic/FICSObjects.py:58 lib/pychess/ic/ICLounge.py:1137 #: lib/pychess/ic/ICLounge.py:2209 lib/pychess/ic/__init__.py:100 msgid "Lightning" msgstr "" #: lib/pychess/ic/FICSObjects.py:60 lib/pychess/Variants/atomic.py:15 msgid "Atomic" msgstr "" #: lib/pychess/ic/FICSObjects.py:62 lib/pychess/Variants/bughouse.py:9 msgid "Bughouse" msgstr "" #: lib/pychess/ic/FICSObjects.py:64 lib/pychess/Variants/crazyhouse.py:9 msgid "Crazyhouse" msgstr "" #: lib/pychess/ic/FICSObjects.py:66 lib/pychess/Variants/losers.py:9 msgid "Losers" msgstr "" #: lib/pychess/ic/FICSObjects.py:68 lib/pychess/Variants/suicide.py:12 msgid "Suicide" msgstr "" #: lib/pychess/ic/FICSObjects.py:70 lib/pychess/ic/__init__.py:129 msgid "Wild" msgstr "" #: lib/pychess/ic/FICSObjects.py:117 msgid "Online" msgstr "" #: lib/pychess/ic/FICSObjects.py:118 lib/pychess/ic/FICSObjects.py:143 msgid "Offline" msgstr "" #: lib/pychess/ic/FICSObjects.py:133 msgid "Available" msgstr "" #: lib/pychess/ic/FICSObjects.py:135 msgid "Playing" msgstr "" #: lib/pychess/ic/FICSObjects.py:141 msgid "Idle" msgstr "" #: lib/pychess/ic/FICSObjects.py:145 msgid "Examining" msgstr "" #: lib/pychess/ic/FICSObjects.py:147 msgid "Not Available" msgstr "" #: lib/pychess/ic/FICSObjects.py:149 msgid "Running Simul Match" msgstr "" #: lib/pychess/ic/FICSObjects.py:151 msgid "In Tournament" msgstr "" #: lib/pychess/ic/FICSObjects.py:308 lib/pychess/ic/FICSObjects.py:492 #: lib/pychess/ic/ICLounge.py:2278 msgid "Unrated" msgstr "" #: lib/pychess/ic/FICSObjects.py:491 lib/pychess/ic/ICLounge.py:670 #: lib/pychess/ic/ICLounge.py:1358 lib/pychess/ic/ICLounge.py:1558 #: lib/pychess/ic/ICLounge.py:2113 msgid "Rated" msgstr "" #: lib/pychess/ic/FICSObjects.py:498 lib/pychess/ic/ICLounge.py:2098 #, python-format msgid "%d min" msgstr "" #: lib/pychess/ic/FICSObjects.py:500 #, python-format msgid " + %d sec" msgstr "" #: lib/pychess/ic/FICSObjects.py:517 #, python-format msgid "%(player)s plays %(color)s" msgstr "" #: lib/pychess/ic/FICSObjects.py:519 lib/pychess/ic/ICLounge.py:909 msgid "white" msgstr "" #: lib/pychess/ic/FICSObjects.py:519 lib/pychess/ic/ICLounge.py:909 msgid "black" msgstr "" #: lib/pychess/ic/FICSObjects.py:565 msgid "This is a continuation of an adjourned match" msgstr "" #: lib/pychess/ic/FICSObjects.py:654 msgid "Opponent Rating" msgstr "" #: lib/pychess/ic/FICSObjects.py:656 msgid "Manual Accept" msgstr "" #: lib/pychess/ic/FICSObjects.py:810 msgid "Private" msgstr "" #: lib/pychess/ic/FICSObjects.py:930 lib/pychess/ic/ICLounge.py:527 #: lib/pychess/Savers/epd.py:139 msgid "Unknown" msgstr "" #: lib/pychess/ic/ICLogon.py:159 lib/pychess/ic/ICLogon.py:165 msgid "Connection Error" msgstr "" #: lib/pychess/ic/ICLogon.py:161 msgid "Log on Error" msgstr "" #: lib/pychess/ic/ICLogon.py:163 msgid "Connection was closed" msgstr "" #: lib/pychess/ic/ICLogon.py:169 msgid "Address Error" msgstr "" #: lib/pychess/ic/ICLogon.py:172 msgid "Auto-logout" msgstr "" #: lib/pychess/ic/ICLogon.py:173 msgid "You have been logged out because you were idle more than 60 minutes" msgstr "" #: lib/pychess/ic/ICLounge.py:222 msgid "You have to set kibitz on to see bot messages here." msgstr "" #: lib/pychess/ic/ICLounge.py:241 msgid "" "You may only have 3 outstanding seeks at the same time. If you want to add a" " new seek you must clear your currently active seeks. Clear your seeks?" msgstr "" #: lib/pychess/ic/ICLounge.py:258 msgid "You can't touch this! You are examining a game." msgstr "" #: lib/pychess/ic/ICLounge.py:270 msgid " has declined your offer for a match" msgstr "" #: lib/pychess/ic/ICLounge.py:283 msgid " is censoring you" msgstr "" #: lib/pychess/ic/ICLounge.py:296 msgid " noplay listing you" msgstr "" #: lib/pychess/ic/ICLounge.py:311 msgid " uses a formula not fitting your match request:" msgstr "" #: lib/pychess/ic/ICLounge.py:325 msgid "to manual accept" msgstr "" #: lib/pychess/ic/ICLounge.py:327 msgid "to automatic accept" msgstr "" #: lib/pychess/ic/ICLounge.py:329 msgid "rating range now" msgstr "" #: lib/pychess/ic/ICLounge.py:330 msgid "Seek updated" msgstr "" #: lib/pychess/ic/ICLounge.py:342 msgid "Your seeks have been removed" msgstr "" #: lib/pychess/ic/ICLounge.py:363 msgid " has arrived" msgstr "" #: lib/pychess/ic/ICLounge.py:370 msgid " has departed" msgstr "" #: lib/pychess/ic/ICLounge.py:374 msgid " is present" msgstr "" #: lib/pychess/ic/ICLounge.py:391 sidepanel/chatPanel.py:17 msgid "Chat" msgstr "" #: lib/pychess/ic/ICLounge.py:472 sidepanel/bookPanel.py:366 msgid "Win" msgstr "" #: lib/pychess/ic/ICLounge.py:472 sidepanel/bookPanel.py:360 msgid "Draw" msgstr "" #: lib/pychess/ic/ICLounge.py:472 sidepanel/bookPanel.py:363 msgid "Loss" msgstr "" #: lib/pychess/ic/ICLounge.py:482 msgid "" "On FICS, your \"Wild\" rating encompasses all of the following variants at " "all time controls:\n" msgstr "" #: lib/pychess/ic/ICLounge.py:494 msgid "Sanctions" msgstr "" #: lib/pychess/ic/ICLounge.py:499 msgid "Email" msgstr "" #: lib/pychess/ic/ICLounge.py:504 msgid "Spent" msgstr "" #: lib/pychess/ic/ICLounge.py:506 msgid "online in total" msgstr "" #: lib/pychess/ic/ICLounge.py:512 msgid "Ping" msgstr "" #: lib/pychess/ic/ICLounge.py:517 msgid "Connecting" msgstr "" #: lib/pychess/ic/ICLounge.py:544 msgid "" "You are currently logged in as a guest.\n" "A guest can't play rated games and therefore isn't able to play as many of the types of matches offered as a registered user. To register an account, go to http://www.freechess.org/Register/index.html." msgstr "" #: lib/pychess/ic/ICLounge.py:669 lib/pychess/ic/ICLounge.py:1136 msgid "Name" msgstr "" #: lib/pychess/ic/ICLounge.py:670 lib/pychess/ic/ICLounge.py:1358 #: lib/pychess/ic/ICLounge.py:1558 msgid "Type" msgstr "" #: lib/pychess/ic/ICLounge.py:670 lib/pychess/ic/ICLounge.py:1558 msgid "Clock" msgstr "" #: lib/pychess/ic/ICLounge.py:726 lib/pychess/ic/ICLounge.py:923 #: lib/pychess/Players/Human.py:250 msgid "Accept" msgstr "" #: lib/pychess/ic/ICLounge.py:728 msgid "Assess" msgstr "" #: lib/pychess/ic/ICLounge.py:734 msgid "Archived" msgstr "" #: lib/pychess/ic/ICLounge.py:848 #, python-format msgid "Active seeks: %d" msgstr "" #: lib/pychess/ic/ICLounge.py:897 #, python-format msgid "" " would like to resume your adjourned %(time)s %(gametype)s " "game." msgstr "" #: lib/pychess/ic/ICLounge.py:902 #, python-format msgid "" " challenges you to a %(time)s %(rated)s %(gametype)s game" msgstr "" #: lib/pychess/ic/ICLounge.py:907 #, python-format msgid " where %(player)s plays %(color)s." msgstr "" #: lib/pychess/ic/ICLounge.py:924 lib/pychess/Players/Human.py:251 msgid "Decline" msgstr "" #: lib/pychess/ic/ICLounge.py:1065 msgid " min" msgstr "" #: lib/pychess/ic/ICLounge.py:1137 msgid "Status" msgstr "" #: lib/pychess/ic/ICLounge.py:1203 lib/pychess/ic/ICLounge.py:1233 #, python-format msgid "Players: %d" msgstr "" #: lib/pychess/ic/ICLounge.py:1469 #, python-format msgid "Games running: %d" msgstr "" #: lib/pychess/ic/ICLounge.py:1559 msgid "Date/Time" msgstr "" #: lib/pychess/ic/ICLounge.py:1614 #, python-format msgid "" " with whom you have an adjourned %(timecontrol)s %(gametype)s " "game is online." msgstr "" #: lib/pychess/ic/ICLounge.py:1635 msgid "Request Continuation" msgstr "" #: lib/pychess/ic/ICLounge.py:1637 msgid "Examine Adjourned Game" msgstr "" #: lib/pychess/ic/ICLounge.py:1965 msgid "" "The chain button is disabled because you are logged in as a guest. Guests " "can't establish ratings, and the chain button's state has no effect when " "there is no rating to which to tie \"Opponent Strength\" to" msgstr "" #: lib/pychess/ic/ICLounge.py:2006 msgid "Challenge: " msgstr "" #: lib/pychess/ic/ICLounge.py:2044 msgid "If set you can refuse players accepting your seek" msgstr "" #: lib/pychess/ic/ICLounge.py:2048 lib/pychess/ic/ICLounge.py:2051 msgid "This option is not applicable because you're challenging a player" msgstr "" #: lib/pychess/ic/ICLounge.py:2064 msgid "Edit Seek: " msgstr "" #: lib/pychess/ic/ICLounge.py:2095 #, python-format msgid "%(minutes)d min + %(gain)d sec/move" msgstr "" #: lib/pychess/ic/ICLounge.py:2116 msgid "Manual" msgstr "" #: lib/pychess/ic/ICLounge.py:2256 msgid "Any strength" msgstr "" #: lib/pychess/ic/ICLounge.py:2308 msgid "You can't play rated games because you are logged in as a guest" msgstr "" #: lib/pychess/ic/ICLounge.py:2312 msgid "You can't play rated games because \"Untimed\" is checked, " msgstr "" #: lib/pychess/ic/ICLounge.py:2313 msgid "and on FICS, untimed games can't be rated" msgstr "" #: lib/pychess/ic/ICLounge.py:2317 msgid "This option is not available because you're challenging a guest, " msgstr "" #: lib/pychess/ic/ICLounge.py:2318 msgid "and guests can't play rated games" msgstr "" #: lib/pychess/ic/ICLounge.py:2332 lib/pychess/Variants/shuffle.py:16 #: lib/pychess/widgets/newGameDialog.py:266 msgid "Shuffle" msgstr "" #: lib/pychess/ic/ICLounge.py:2333 lib/pychess/widgets/newGameDialog.py:267 msgid "Other (standard rules)" msgstr "" #: lib/pychess/ic/ICLounge.py:2334 lib/pychess/widgets/newGameDialog.py:268 msgid "Other (non standard rules)" msgstr "" #: lib/pychess/ic/ICLounge.py:2421 msgid "You can't select a variant because \"Untimed\" is checked, " msgstr "" #: lib/pychess/ic/ICLounge.py:2422 msgid "and on FICS, untimed games have to be normal chess rules" msgstr "" #: lib/pychess/ic/ICLounge.py:2454 msgid "Change Tolerance" msgstr "" #: lib/pychess/ic/__init__.py:102 msgid "Examined" msgstr "" #: lib/pychess/ic/__init__.py:103 msgid "Other" msgstr "" #: lib/pychess/ic/__init__.py:182 msgid "Administrator" msgstr "" #: lib/pychess/ic/__init__.py:182 msgid "Blindfold Account" msgstr "" #: lib/pychess/ic/__init__.py:182 msgid "Computer" msgstr "" #: lib/pychess/ic/__init__.py:183 msgid "Team Account" msgstr "" #: lib/pychess/ic/__init__.py:183 msgid "Unregistered" msgstr "" #: lib/pychess/ic/__init__.py:183 msgid "Chess Advisor" msgstr "" #: lib/pychess/ic/__init__.py:184 msgid "Service Representative" msgstr "" #: lib/pychess/ic/__init__.py:184 msgid "Tournament Director" msgstr "" #: lib/pychess/ic/__init__.py:184 msgid "Mamer Manager" msgstr "" #: lib/pychess/ic/__init__.py:185 msgid "Grand Master" msgstr "" #: lib/pychess/ic/__init__.py:185 msgid "International Master" msgstr "" #: lib/pychess/ic/__init__.py:185 msgid "FIDE Master" msgstr "" #: lib/pychess/ic/__init__.py:186 msgid "Woman Grand Master" msgstr "" #: lib/pychess/ic/__init__.py:186 msgid "Woman International Master" msgstr "" #: lib/pychess/ic/__init__.py:186 msgid "Woman FIDE Master" msgstr "" #: lib/pychess/ic/__init__.py:187 msgid "Dummy Account" msgstr "" #: lib/pychess/ic/__init__.py:191 msgid "*" msgstr "" #: lib/pychess/ic/__init__.py:191 lib/pychess/Utils/repr.py:14 msgid "B" msgstr "" #: lib/pychess/ic/__init__.py:191 msgid "C" msgstr "" #: lib/pychess/ic/__init__.py:192 msgid "T" msgstr "" #: lib/pychess/ic/__init__.py:192 msgid "U" msgstr "" #: lib/pychess/ic/__init__.py:192 msgid "CA" msgstr "" #: lib/pychess/ic/__init__.py:193 msgid "SR" msgstr "" #: lib/pychess/ic/__init__.py:193 msgid "TD" msgstr "" #: lib/pychess/ic/__init__.py:193 msgid "TM" msgstr "" #: lib/pychess/ic/__init__.py:194 msgid "GM" msgstr "" #: lib/pychess/ic/__init__.py:194 msgid "IM" msgstr "" #: lib/pychess/ic/__init__.py:194 msgid "FM" msgstr "" #: lib/pychess/ic/__init__.py:195 msgid "WGM" msgstr "" #: lib/pychess/ic/__init__.py:195 msgid "WIM" msgstr "" #: lib/pychess/ic/__init__.py:195 msgid "WFM" msgstr "" #: lib/pychess/ic/__init__.py:195 msgid "D" msgstr "" #: lib/pychess/ic/__init__.py:195 msgid "H" msgstr "" #: lib/pychess/ic/__init__.py:195 msgid "CM" msgstr "" #: lib/pychess/ic/__init__.py:195 msgid "FA" msgstr "" #: lib/pychess/ic/__init__.py:195 msgid "NM" msgstr "" #: lib/pychess/Players/CECPEngine.py:857 #, python-format msgid "The engine %s reports an error:" msgstr "" #: lib/pychess/Players/Human.py:20 msgid "Your opponent has offered you a draw." msgstr "" #: lib/pychess/Players/Human.py:21 msgid "" "Your opponent has offered you a draw. If you accept this offer, the game " "will end with a score of 1/2 - 1/2." msgstr "" #: lib/pychess/Players/Human.py:23 msgid "Your opponent wants to abort the game." msgstr "" #: lib/pychess/Players/Human.py:24 msgid "" "Your opponent has asked that the game be aborted. If you accept this offer, " "the game will end with no rating change." msgstr "" #: lib/pychess/Players/Human.py:26 msgid "Your opponent wants to adjourn the game." msgstr "" #: lib/pychess/Players/Human.py:27 msgid "" "Your opponent has asked that the game be adjourned. If you accept this " "offer, the game will be adjourned and you can resume it later (when your " "opponent is online and both players agree to resume)." msgstr "" #: lib/pychess/Players/Human.py:29 #, python-format msgid "Your opponent wants to undo %s move(s)." msgstr "" #: lib/pychess/Players/Human.py:30 #, python-format msgid "" "Your opponent has asked that the last %s move(s) be undone. If you accept " "this offer, the game will continue from the earlier position." msgstr "" #: lib/pychess/Players/Human.py:32 msgid "Your opponent wants to pause the game." msgstr "" #: lib/pychess/Players/Human.py:33 msgid "" "Your opponent has asked that the game be paused. If you accept this offer, " "the game clock will be paused until both players agree to resume the game." msgstr "" #: lib/pychess/Players/Human.py:35 msgid "Your opponent wants to resume the game." msgstr "" #: lib/pychess/Players/Human.py:36 msgid "" "Your opponent has asked that the game be resumed. If you accept this offer, " "the game clock will continue from where it was paused." msgstr "" #: lib/pychess/Players/Human.py:40 msgid "The resignation" msgstr "" #: lib/pychess/Players/Human.py:41 msgid "The flag call" msgstr "" #: lib/pychess/Players/Human.py:42 msgid "The draw offer" msgstr "" #: lib/pychess/Players/Human.py:43 msgid "The abort offer" msgstr "" #: lib/pychess/Players/Human.py:44 msgid "The adjourn offer" msgstr "" #: lib/pychess/Players/Human.py:45 msgid "The pause offer" msgstr "" #: lib/pychess/Players/Human.py:46 msgid "The resume offer" msgstr "" #: lib/pychess/Players/Human.py:47 msgid "The offer to switch sides" msgstr "" #: lib/pychess/Players/Human.py:48 msgid "The takeback offer" msgstr "" #: lib/pychess/Players/Human.py:52 msgid "resign" msgstr "" #: lib/pychess/Players/Human.py:53 msgid "call your opponents flag" msgstr "" #: lib/pychess/Players/Human.py:54 msgid "offer a draw" msgstr "" #: lib/pychess/Players/Human.py:55 msgid "offer an abort" msgstr "" #: lib/pychess/Players/Human.py:56 msgid "offer to adjourn" msgstr "" #: lib/pychess/Players/Human.py:57 msgid "offer a pause" msgstr "" #: lib/pychess/Players/Human.py:58 msgid "offer to resume" msgstr "" #: lib/pychess/Players/Human.py:59 msgid "offer to switch sides" msgstr "" #: lib/pychess/Players/Human.py:60 msgid "offer a takeback" msgstr "" #: lib/pychess/Players/Human.py:61 msgid "ask your opponent to move" msgstr "" #: lib/pychess/Players/Human.py:66 msgid "Your opponent is not out of time." msgstr "" #: lib/pychess/Players/Human.py:68 msgid "The clock hasn't been started yet." msgstr "" #: lib/pychess/Players/Human.py:70 msgid "You can't switch colors during the game." msgstr "" #: lib/pychess/Players/Human.py:72 msgid "You have tried to undo too many moves." msgstr "" #: lib/pychess/Players/Human.py:180 msgid "Your opponent asks you to hurry!" msgstr "" #: lib/pychess/Players/Human.py:181 msgid "" "Generally this means nothing, as the game is time-based, but if you want to " "please your opponent, perhaps you should get going." msgstr "" #: lib/pychess/Players/Human.py:259 #, python-format msgid "%s was declined by your opponent" msgstr "" #: lib/pychess/Players/Human.py:260 #, python-format msgid "Resend %s?" msgstr "" #: lib/pychess/Players/Human.py:267 msgid "Resend" msgstr "" #: lib/pychess/Players/Human.py:275 #, python-format msgid "%s was withdrawn by your opponent" msgstr "" #: lib/pychess/Players/Human.py:276 msgid "Your opponent seems to have changed their mind." msgstr "" #: lib/pychess/Players/Human.py:290 #, python-format msgid "Unable to accept %s" msgstr "" #: lib/pychess/Players/Human.py:291 msgid "Probably because it has been withdrawn." msgstr "" #: lib/pychess/Players/Human.py:298 #, python-format msgid "%s returns an error" msgstr "" #: lib/pychess/Savers/chessalpha2.py:12 msgid "Chess Alpha 2 Diagram" msgstr "" #: lib/pychess/Savers/chesspastebin.py:39 msgid "Game shared at " msgstr "" #: lib/pychess/Savers/chesspastebin.py:41 msgid "(Link is available on clipboard.)" msgstr "" #: lib/pychess/Savers/database.py:19 msgid "PyChess database" msgstr "" #: lib/pychess/Savers/epd.py:12 msgid "Chess Position" msgstr "" #: lib/pychess/Savers/fen.py:12 msgid "Simple Chess Position" msgstr "" #: lib/pychess/Savers/fen.py:44 lib/pychess/Savers/pgn.py:329 msgid "The game can't be loaded, because of an error parsing FEN" msgstr "" #: lib/pychess/Savers/pgnbase.py:100 #, python-format msgid "" "The game can't be read to end, because of an error parsing move %(moveno)s " "'%(notation)s'." msgstr "" #: lib/pychess/Savers/pgnbase.py:102 #, python-format msgid "The move failed because %s." msgstr "" #: lib/pychess/Savers/pgnbase.py:110 #, python-format msgid "Error parsing move %(moveno)s %(mstr)s" msgstr "" #: lib/pychess/Savers/pgn.py:28 msgid "Chess Game" msgstr "" #: lib/pychess/Savers/pgn.py:362 msgid "Invalid move." msgstr "" #: lib/pychess/Savers/png.py:15 msgid "Png image" msgstr "" #: lib/pychess/System/ping.py:31 msgid "Destination Host Unreachable" msgstr "" #: lib/pychess/System/ping.py:74 msgid "Died" msgstr "" #: lib/pychess/Utils/GameModel.py:147 msgid "Local Event" msgstr "" #: lib/pychess/Utils/GameModel.py:148 msgid "Local Site" msgstr "" #: lib/pychess/Utils/repr.py:12 msgid "Pawn" msgstr "" #: lib/pychess/Utils/repr.py:14 msgid "P" msgstr "" #: lib/pychess/Utils/repr.py:14 msgid "N" msgstr "" #: lib/pychess/Utils/repr.py:14 msgid "R" msgstr "" #: lib/pychess/Utils/repr.py:14 msgid "Q" msgstr "" #: lib/pychess/Utils/repr.py:14 msgid "K" msgstr "" #: lib/pychess/Utils/repr.py:17 msgid "The game ended in a draw" msgstr "" #: lib/pychess/Utils/repr.py:18 #, python-format msgid "%(white)s won the game" msgstr "" #: lib/pychess/Utils/repr.py:19 #, python-format msgid "%(black)s won the game" msgstr "" #: lib/pychess/Utils/repr.py:20 msgid "The game has been killed" msgstr "" #: lib/pychess/Utils/repr.py:21 msgid "The game has been adjourned" msgstr "" #: lib/pychess/Utils/repr.py:22 msgid "The game has been aborted" msgstr "" #: lib/pychess/Utils/repr.py:26 msgid "Because neither player has sufficient material to mate" msgstr "" #: lib/pychess/Utils/repr.py:27 msgid "Because the same position was repeated three times in a row" msgstr "" #: lib/pychess/Utils/repr.py:28 msgid "Because the last 50 moves brought nothing new" msgstr "" #: lib/pychess/Utils/repr.py:29 msgid "Because both players ran out of time" msgstr "" #: lib/pychess/Utils/repr.py:30 #, python-format msgid "Because %(mover)s stalemated" msgstr "" #: lib/pychess/Utils/repr.py:31 msgid "Because both players agreed to a draw" msgstr "" #: lib/pychess/Utils/repr.py:32 lib/pychess/Utils/repr.py:42 msgid "Because of adjudication by an admin" msgstr "" #: lib/pychess/Utils/repr.py:33 msgid "Because the game exceed the max length" msgstr "" #: lib/pychess/Utils/repr.py:34 #, python-format msgid "" "Because %(white)s ran out of time and %(black)s has insufficient material to" " mate" msgstr "" #: lib/pychess/Utils/repr.py:35 #, python-format msgid "" "Because %(black)s ran out of time and %(white)s has insufficient material to" " mate" msgstr "" #: lib/pychess/Utils/repr.py:36 msgid "Because both players have the same amount of pieces" msgstr "" #: lib/pychess/Utils/repr.py:38 #, python-format msgid "Because %(loser)s resigned" msgstr "" #: lib/pychess/Utils/repr.py:39 #, python-format msgid "Because %(loser)s ran out of time" msgstr "" #: lib/pychess/Utils/repr.py:40 #, python-format msgid "Because %(loser)s was checkmated" msgstr "" #: lib/pychess/Utils/repr.py:41 #, python-format msgid "Because %(loser)s disconnected" msgstr "" #: lib/pychess/Utils/repr.py:43 #, python-format msgid "Because %(winner)s has fewer pieces" msgstr "" #: lib/pychess/Utils/repr.py:44 #, python-format msgid "Because %(winner)s lost all pieces" msgstr "" #: lib/pychess/Utils/repr.py:45 #, python-format msgid "Because %(loser)s king exploded" msgstr "" #: lib/pychess/Utils/repr.py:46 #, python-format msgid "Because %(winner)s king reached the center" msgstr "" #: lib/pychess/Utils/repr.py:47 #, python-format msgid "Because %(winner)s was giving check 3 times" msgstr "" #: lib/pychess/Utils/repr.py:49 msgid "Because a player lost connection" msgstr "" #: lib/pychess/Utils/repr.py:50 msgid "Because both players agreed to an adjournment" msgstr "" #: lib/pychess/Utils/repr.py:51 msgid "Because the server was shut down" msgstr "" #: lib/pychess/Utils/repr.py:52 msgid "" "Because a player lost connection and the other player requested adjournment" msgstr "" #: lib/pychess/Utils/repr.py:53 #, python-format msgid "" "Because %(black)s lost connection to the server and %(white)s requested " "adjournment" msgstr "" #: lib/pychess/Utils/repr.py:54 #, python-format msgid "" "Because %(white)s lost connection to the server and %(black)s requested " "adjournment" msgstr "" #: lib/pychess/Utils/repr.py:55 #, python-format msgid "Because %(white)s lost connection to the server" msgstr "" #: lib/pychess/Utils/repr.py:56 #, python-format msgid "Because %(black)s lost connection to the server" msgstr "" #: lib/pychess/Utils/repr.py:58 msgid "Because of adjudication by an admin. No rating changes have occurred." msgstr "" #: lib/pychess/Utils/repr.py:59 msgid "" "Because both players agreed to abort the game. No rating changes have " "occurred." msgstr "" #: lib/pychess/Utils/repr.py:60 msgid "Because of courtesy by a player. No rating changes have occurred." msgstr "" #: lib/pychess/Utils/repr.py:61 msgid "" "Because a player aborted the game. Either player can abort the game without " "the other's consent before the second move. No rating changes have occurred." msgstr "" #: lib/pychess/Utils/repr.py:62 msgid "" "Because a player disconnected and there are too few moves to warrant " "adjournment. No rating changes have occurred." msgstr "" #: lib/pychess/Utils/repr.py:63 msgid "Because the server was shut down. No rating changes have occurred." msgstr "" #: lib/pychess/Utils/repr.py:65 #, python-format msgid "Because the %(white)s engine died" msgstr "" #: lib/pychess/Utils/repr.py:66 #, python-format msgid "Because the %(black)s engine died" msgstr "" #: lib/pychess/Utils/repr.py:67 msgid "Because the connection to the server was lost" msgstr "" #: lib/pychess/Utils/repr.py:68 msgid "The reason is unknown" msgstr "" #: lib/pychess/Utils/TimeModel.py:229 msgid "min" msgstr "" #: lib/pychess/Utils/TimeModel.py:231 msgid "sec" msgstr "" #: lib/pychess/Variants/asean.py:12 msgid "" "ASEAN: http://www.ncf-" "phil.org/downloadables/2014/May/Asean_chess/Laws_of_ASEAN_Chess_2011_Nov_26.doc" msgstr "" #: lib/pychess/Variants/asean.py:13 msgid "ASEAN" msgstr "" #: lib/pychess/Variants/asean.py:33 msgid "Makruk: http://en.wikipedia.org/wiki/Makruk" msgstr "" #: lib/pychess/Variants/asean.py:34 msgid "Makruk" msgstr "" #: lib/pychess/Variants/asean.py:60 msgid "Cambodian: http://www.khmerinstitute.org/culture/ok.html" msgstr "" #: lib/pychess/Variants/asean.py:61 msgid "Cambodian" msgstr "" #: lib/pychess/Variants/asean.py:86 msgid "" "Ai-Wok: http://www.open-" "aurec.com/wbforum/viewtopic.php?p=199364&sid=20963a1de2c164050de019e5ed6bf7c4#p199364" msgstr "" #: lib/pychess/Variants/asean.py:87 msgid "Ai-Wok" msgstr "" #: lib/pychess/Variants/asean.py:111 msgid "Sittuyin: http://en.wikipedia.org/wiki/Sittuyin" msgstr "" #: lib/pychess/Variants/asean.py:112 msgid "Sittuyin" msgstr "" #: lib/pychess/Variants/asymmetricrandom.py:12 msgid "" "FICS wild/4: http://www.freechess.org/Help/HelpFiles/wild.html\n" "* Randomly chosen pieces (two queens or three rooks possible)\n" "* Exactly one king of each color\n" "* Pieces placed randomly behind the pawns, SUBJECT TO THE CONSTRAINT THAT THE BISHOPS ARE BALANCED\n" "* No castling\n" "* Black's arrangement DOES NOT mirrors white's" msgstr "" #: lib/pychess/Variants/asymmetricrandom.py:18 msgid "Asymmetric Random" msgstr "" #: lib/pychess/Variants/atomic.py:14 msgid "FICS atomic: http://www.freechess.org/Help/HelpFiles/atomic.html" msgstr "" #: lib/pychess/Variants/blindfold.py:7 msgid "" "Classic chess rules with hidden figurines\n" "http://en.wikipedia.org/wiki/Blindfold_chess" msgstr "" #: lib/pychess/Variants/blindfold.py:9 #: lib/pychess/widgets/newGameDialog.py:264 msgid "Blindfold" msgstr "" #: lib/pychess/Variants/blindfold.py:18 msgid "" "Classic chess rules with hidden pawns\n" "http://en.wikipedia.org/wiki/Blindfold_chess" msgstr "" #: lib/pychess/Variants/blindfold.py:20 msgid "Hidden pawns" msgstr "" #: lib/pychess/Variants/blindfold.py:29 msgid "" "Classic chess rules with hidden pieces\n" "http://en.wikipedia.org/wiki/Blindfold_chess" msgstr "" #: lib/pychess/Variants/blindfold.py:31 msgid "Hidden pieces" msgstr "" #: lib/pychess/Variants/blindfold.py:40 msgid "" "Classic chess rules with all pieces white\n" "http://en.wikipedia.org/wiki/Blindfold_chess" msgstr "" #: lib/pychess/Variants/blindfold.py:42 msgid "All white" msgstr "" #: lib/pychess/Variants/bughouse.py:8 msgid "FICS bughouse: http://www.freechess.org/Help/HelpFiles/bughouse.html" msgstr "" #: lib/pychess/Variants/corner.py:12 msgid "" "http://brainking.com/en/GameRules?tp=2\n" "* Placement of the pieces on the 1st and 8th row are randomized\n" "* The king is in the right hand corner\n" "* Bishops must start on opposite color squares\n" "* Black's starting position is obtained by rotating white's position 180 degrees around the board's center\n" "* No castling" msgstr "" #: lib/pychess/Variants/corner.py:18 msgid "Corner" msgstr "" #: lib/pychess/Variants/crazyhouse.py:8 msgid "" "FICS crazyhouse: http://www.freechess.org/Help/HelpFiles/crazyhouse.html" msgstr "" #: lib/pychess/Variants/euroshogi.py:9 msgid "EuroShogi: http://en.wikipedia.org/wiki/EuroShogi" msgstr "" #: lib/pychess/Variants/euroshogi.py:10 msgid "EuroShogi" msgstr "" #: lib/pychess/Variants/fischerandom.py:18 msgid "" "http://en.wikipedia.org/wiki/Chess960\n" "FICS wild/fr: http://www.freechess.org/Help/HelpFiles/wild.html" msgstr "" #: lib/pychess/Variants/fischerandom.py:20 msgid "Fischer Random" msgstr "" #: lib/pychess/Variants/kingofthehill.py:8 msgid "" "Bringing your king legally to the center (e4, d4, e5, d5) instantly wins the game!\n" "Normal rules apply in other cases and checkmate also ends the game." msgstr "" #: lib/pychess/Variants/kingofthehill.py:10 msgid "King of the hill" msgstr "" #: lib/pychess/Variants/knightodds.py:8 msgid "One player starts with one less knight piece" msgstr "" #: lib/pychess/Variants/knightodds.py:9 msgid "Knight odds" msgstr "" #: lib/pychess/Variants/losers.py:8 msgid "FICS losers: http://www.freechess.org/Help/HelpFiles/losers_chess.html" msgstr "" #: lib/pychess/Variants/normal.py:4 msgid "" "Classic chess rules\n" "http://en.wikipedia.org/wiki/Chess" msgstr "" #: lib/pychess/Variants/normal.py:6 lib/pychess/widgets/newGameDialog.py:157 msgid "Normal" msgstr "" #: lib/pychess/Variants/pawnodds.py:8 msgid "One player starts with one less pawn piece" msgstr "" #: lib/pychess/Variants/pawnodds.py:9 msgid "Pawn odds" msgstr "" #: lib/pychess/Variants/pawnspassed.py:11 msgid "" "FICS wild/8a: http://www.freechess.org/Help/HelpFiles/wild.html\n" "White pawns start on 5th rank and black pawns on the 4th rank" msgstr "" #: lib/pychess/Variants/pawnspassed.py:13 msgid "Pawns Passed" msgstr "" #: lib/pychess/Variants/pawnspushed.py:10 msgid "" "FICS wild/8: http://www.freechess.org/Help/HelpFiles/wild.html\n" "Pawns start on 4th and 5th ranks rather than 2nd and 7th" msgstr "" #: lib/pychess/Variants/pawnspushed.py:12 msgid "Pawns Pushed" msgstr "" #: lib/pychess/Variants/queenodds.py:8 msgid "One player starts with one less queen piece" msgstr "" #: lib/pychess/Variants/queenodds.py:9 msgid "Queen odds" msgstr "" #: lib/pychess/Variants/randomchess.py:11 msgid "" "FICS wild/3: http://www.freechess.org/Help/HelpFiles/wild.html\n" "* Randomly chosen pieces (two queens or three rooks possible)\n" "* Exactly one king of each color\n" "* Pieces placed randomly behind the pawns\n" "* No castling\n" "* Black's arrangement mirrors white's" msgstr "" #: lib/pychess/Variants/randomchess.py:17 #: lib/pychess/widgets/TaskerManager.py:155 msgid "Random" msgstr "" #: lib/pychess/Variants/rookodds.py:8 msgid "One player starts with one less rook piece" msgstr "" #: lib/pychess/Variants/rookodds.py:9 msgid "Rook odds" msgstr "" #: lib/pychess/Variants/shuffle.py:11 msgid "" "xboard nocastle: http://home.hccnet.nl/h.g.muller/engine-intf.html#8\n" "FICS wild/2: http://www.freechess.org/Help/HelpFiles/wild.html\n" "* Random arrangement of the pieces behind the pawns\n" "* No castling\n" "* Black's arrangement mirrors white's" msgstr "" #: lib/pychess/Variants/suicide.py:11 msgid "" "FICS suicide: http://www.freechess.org/Help/HelpFiles/suicide_chess.html" msgstr "" #: lib/pychess/Variants/theban.py:10 msgid "" "Variant developed by Kai Laskos: " "http://talkchess.com/forum/viewtopic.php?t=40990" msgstr "" #: lib/pychess/Variants/theban.py:11 msgid "Theban" msgstr "" #: lib/pychess/Variants/threecheck.py:10 msgid "Win by giving check 3 times" msgstr "" #: lib/pychess/Variants/threecheck.py:11 msgid "Three-check" msgstr "" #: lib/pychess/Variants/upsidedown.py:10 msgid "" "FICS wild/5: http://www.freechess.org/Help/HelpFiles/wild.html\n" "http://en.wikipedia.org/wiki/Chess_variant#Chess_with_different_starting_positions\n" "Pawns start on their 7th rank rather than their 2nd rank!" msgstr "" #: lib/pychess/Variants/upsidedown.py:13 msgid "Upside Down" msgstr "" #: lib/pychess/Variants/wildcastle.py:10 msgid "" "xboard wildcastle http://home.hccnet.nl/h.g.muller/engine-intf.html#8\n" "FICS wild/0: http://www.freechess.org/Help/HelpFiles/wild.html\n" "* White has the typical set-up at the start.\n" "* Black's pieces are the same, except that the King and Queen are reversed,\n" "* so they are not on the same files as White's King and Queen.\n" "* Castling is done similarly to normal chess:\n" "* o-o-o indicates long castling and o-o short castling." msgstr "" #: lib/pychess/Variants/wildcastle.py:17 msgid "Wildcastle" msgstr "" #: lib/pychess/Variants/wildcastleshuffle.py:11 msgid "" "xboard wildcastle http://home.hccnet.nl/h.g.muller/engine-intf.html#8\n" "FICS wild/1: http://www.freechess.org/Help/HelpFiles/wild.html\n" "* In this variant both sides have the same set of pieces as in normal chess.\n" "* The white king starts on d1 or e1 and the black king starts on d8 or e8,\n" "* and the rooks are in their usual positions.\n" "* Bishops are always on opposite colors.\n" "* Subject to these constraints the position of the pieces on their first ranks is random.\n" "* Castling is done similarly to normal chess:\n" "* o-o-o indicates long castling and o-o short castling." msgstr "" #: lib/pychess/Variants/wildcastleshuffle.py:20 msgid "Wildcastle shuffle" msgstr "" #: lib/pychess/widgets/analyzegameDialog.py:85 msgid "Game analyzing in progress..." msgstr "" #: lib/pychess/widgets/analyzegameDialog.py:86 msgid "Do you want to abort it?" msgstr "" #: lib/pychess/widgets/analyzegameDialog.py:95 #: lib/pychess/widgets/gamewidget.py:202 lib/pychess/widgets/gamewidget.py:320 msgid "Abort" msgstr "" #: lib/pychess/widgets/ChatView.py:125 msgid "Observers" msgstr "" #: lib/pychess/widgets/ChatWindow.py:222 msgid "You have opened no conversations yet" msgstr "" #: lib/pychess/widgets/ChatWindow.py:254 msgid "Only registered users may talk to this channel" msgstr "" #: lib/pychess/widgets/ChatWindow.py:312 msgid "No conversation's selected" msgstr "" #: lib/pychess/widgets/ChatWindow.py:350 msgid "Loading player data" msgstr "" #: lib/pychess/widgets/ChatWindow.py:400 msgid "Receiving list of players" msgstr "" #: lib/pychess/widgets/ChatWindow.py:518 msgid "Friends" msgstr "" #: lib/pychess/widgets/ChatWindow.py:529 msgid "Admin" msgstr "" #: lib/pychess/widgets/ChatWindow.py:540 msgid "More channels" msgstr "" #: lib/pychess/widgets/ChatWindow.py:548 msgid "More players" msgstr "" #: lib/pychess/widgets/ChatWindow.py:558 msgid "Computers" msgstr "" #: lib/pychess/widgets/ChatWindow.py:568 msgid "BlindFold" msgstr "" #: lib/pychess/widgets/ChatWindow.py:578 msgid "Guests" msgstr "" #: lib/pychess/widgets/ChatWindow.py:805 msgid "Conversations" msgstr "" #: lib/pychess/widgets/ChatWindow.py:807 msgid "Conversation info" msgstr "" #: lib/pychess/widgets/enginesDialog.py:152 msgid "Select engine" msgstr "" #: lib/pychess/widgets/enginesDialog.py:156 msgid "Executable files" msgstr "" #: lib/pychess/widgets/enginesDialog.py:176 #: lib/pychess/widgets/enginesDialog.py:210 #: lib/pychess/widgets/enginesDialog.py:235 #, python-format msgid "Unable to add %s" msgstr "" #: lib/pychess/widgets/enginesDialog.py:177 msgid "wine not installed" msgstr "" #: lib/pychess/widgets/enginesDialog.py:211 #: lib/pychess/widgets/enginesDialog.py:236 msgid "There is something wrong with this executable" msgstr "" #: lib/pychess/widgets/enginesDialog.py:266 msgid "Select working directory" msgstr "" #: lib/pychess/widgets/gamenanny.py:115 #, python-format msgid " invalid engine move: %s" msgstr "" #: lib/pychess/widgets/gamenanny.py:134 msgid "Offer Rematch" msgstr "" #: lib/pychess/widgets/gamenanny.py:136 lib/pychess/widgets/gamenanny.py:147 #, python-format msgid "Observe %s" msgstr "" #: lib/pychess/widgets/gamenanny.py:168 msgid "Play Rematch" msgstr "" #: lib/pychess/widgets/gamenanny.py:171 msgid "Undo one move" msgstr "" #: lib/pychess/widgets/gamenanny.py:173 msgid "Undo two moves" msgstr "" #: lib/pychess/widgets/gamenanny.py:203 msgid "The game is paused" msgstr "" #: lib/pychess/widgets/gamenanny.py:221 lib/pychess/widgets/gamenanny.py:222 msgid "Loaded game" msgstr "" #: lib/pychess/widgets/gamenanny.py:228 msgid "Saved game" msgstr "" #: lib/pychess/widgets/gamenanny.py:232 msgid "Analyzer started" msgstr "" #: lib/pychess/widgets/gamenanny.py:281 msgid "You sent an abort offer" msgstr "" #: lib/pychess/widgets/gamenanny.py:283 msgid "You sent an adjournment offer" msgstr "" #: lib/pychess/widgets/gamenanny.py:285 msgid "You sent a draw offer" msgstr "" #: lib/pychess/widgets/gamenanny.py:287 msgid "You sent a pause offer" msgstr "" #: lib/pychess/widgets/gamenanny.py:289 msgid "You sent a resume offer" msgstr "" #: lib/pychess/widgets/gamenanny.py:291 msgid "You sent an undo offer" msgstr "" #: lib/pychess/widgets/gamenanny.py:293 msgid "You asked your opponent to move" msgstr "" #: lib/pychess/widgets/gamenanny.py:305 #, python-format msgid "Engine, %s, has died" msgstr "" #: lib/pychess/widgets/gamenanny.py:306 msgid "" "PyChess has lost connection to the engine, probably because it has died.\n" "\n" "You can try to start a new game with the engine, or try to play against another one." msgstr "" #: lib/pychess/widgets/gamewidget.py:204 msgid "" "This game can be automatically aborted without rating loss because there has" " not yet been two moves made" msgstr "" #: lib/pychess/widgets/gamewidget.py:206 msgid "Offer Abort" msgstr "" #: lib/pychess/widgets/gamewidget.py:208 msgid "" "Your opponent must agree to abort the game because there has been two or " "more moves made" msgstr "" #: lib/pychess/widgets/gamewidget.py:226 msgid "This game can not be adjourned because one or both players are guests" msgstr "" #: lib/pychess/widgets/gamewidget.py:243 msgid "Claim Draw" msgstr "" #: lib/pychess/widgets/gamewidget.py:325 msgid "Pause" msgstr "" #: lib/pychess/widgets/gamewidget.py:326 msgid "Resume" msgstr "" #: lib/pychess/widgets/gamewidget.py:328 msgid "Offer Pause" msgstr "" #: lib/pychess/widgets/gamewidget.py:329 msgid "Offer Resume" msgstr "" #: lib/pychess/widgets/gamewidget.py:333 msgid "Undo" msgstr "" #: lib/pychess/widgets/gamewidget.py:335 msgid "Offer Undo" msgstr "" #: lib/pychess/widgets/gamewidget.py:550 msgid " has lagged for 30 seconds" msgstr "" #: lib/pychess/widgets/gamewidget.py:566 msgid " is lagging heavily but hasn't disconnected" msgstr "" #: lib/pychess/widgets/gamewidget.py:567 msgid "Continue to wait for opponent, or try to adjourn the game?" msgstr "" #: lib/pychess/widgets/gamewidget.py:575 msgid "Wait" msgstr "" #: lib/pychess/widgets/gamewidget.py:576 msgid "Adjourn" msgstr "" #: lib/pychess/widgets/gamewidget.py:648 msgid "Jump to initial position" msgstr "" #: lib/pychess/widgets/gamewidget.py:653 msgid "Step back one move" msgstr "" #: lib/pychess/widgets/gamewidget.py:658 msgid "Go back to the main line" msgstr "" #: lib/pychess/widgets/gamewidget.py:664 msgid "Step forward one move" msgstr "" #: lib/pychess/widgets/gamewidget.py:669 msgid "Jump to latest position" msgstr "" #: lib/pychess/widgets/gamewidget.py:903 msgid "PyChess was unable to load your panel settings" msgstr "" #: lib/pychess/widgets/gamewidget.py:904 msgid "" "Your panel settings have been reset. If this problem repeats, you should " "report it to the developers" msgstr "" #: lib/pychess/widgets/ionest.py:67 lib/pychess/widgets/newGameDialog.py:389 #: lib/pychess/widgets/TaskerManager.py:210 msgid "You" msgstr "" #: lib/pychess/widgets/ionest.py:70 lib/pychess/widgets/newGameDialog.py:390 #: lib/pychess/widgets/preferencesDialog.py:61 #: lib/pychess/widgets/TaskerManager.py:213 msgid "Guest" msgstr "" #: lib/pychess/widgets/ionest.py:93 msgid "Error loading game" msgstr "" #: lib/pychess/widgets/ionest.py:127 lib/pychess/widgets/newGameDialog.py:480 msgid "Open Game" msgstr "" #: lib/pychess/widgets/ionest.py:137 msgid "All Files" msgstr "" #: lib/pychess/widgets/ionest.py:140 msgid "Detect type automatically" msgstr "" #: lib/pychess/widgets/ionest.py:146 msgid "All Chess Files" msgstr "" #: lib/pychess/widgets/ionest.py:228 msgid "Save Game" msgstr "" #: lib/pychess/widgets/ionest.py:228 msgid "Export position" msgstr "" #: lib/pychess/widgets/ionest.py:232 lib/pychess/widgets/ionest.py:360 msgid "vs." msgstr "" #: lib/pychess/widgets/ionest.py:249 #, python-format msgid "Unknown file type '%s'" msgstr "" #: lib/pychess/widgets/ionest.py:250 #, python-format msgid "" "Was unable to save '%(uri)s' as PyChess doesn't know the format " "'%(ending)s'." msgstr "" #: lib/pychess/widgets/ionest.py:266 #, python-format msgid "Unable to save file '%s'" msgstr "" #: lib/pychess/widgets/ionest.py:268 msgid "" "You don't have the necessary rights to save the file.\n" "Please ensure that you have given the right path and try again." msgstr "" #: lib/pychess/widgets/ionest.py:276 msgid "_Replace" msgstr "" #: lib/pychess/widgets/ionest.py:280 msgid "File exists" msgstr "" #: lib/pychess/widgets/ionest.py:282 #, python-format msgid "" "A file named '%s' already exists. Would you like to replace " "it?" msgstr "" #: lib/pychess/widgets/ionest.py:283 #, python-format msgid "" "The file already exists in '%s'. If you replace it, its content will be " "overwritten." msgstr "" #: lib/pychess/widgets/ionest.py:299 msgid "Could not save the file" msgstr "" #: lib/pychess/widgets/ionest.py:300 msgid "PyChess was not able to save the game" msgstr "" #: lib/pychess/widgets/ionest.py:301 #, python-format msgid "The error was: %s" msgstr "" #: lib/pychess/widgets/ionest.py:325 #, python-format msgid "There is %d game with unsaved moves." msgid_plural "There are %d games with unsaved moves." msgstr[0] "" msgstr[1] "" #: lib/pychess/widgets/ionest.py:328 msgid "Save moves before closing?" msgstr "" #: lib/pychess/widgets/ionest.py:339 msgid "Unable to save to configured file. Save the games before closing?" msgstr "" #: lib/pychess/widgets/ionest.py:366 #, python-format msgid "_Save %d document" msgid_plural "_Save %d documents" msgstr[0] "" msgstr[1] "" #: lib/pychess/widgets/ionest.py:412 msgid "Save the current game before you close it?" msgstr "" #: lib/pychess/widgets/ionest.py:420 msgid "" "Unable to save to configured file. Save the current game before you close " "it?" msgstr "" #: lib/pychess/widgets/ionest.py:434 msgid "" "It is not possible later to continue the game,\n" "if you don't save it." msgstr "" #: lib/pychess/widgets/LogDialog.py:26 msgid "PyChess Information Window" msgstr "" #: lib/pychess/widgets/LogDialog.py:184 lib/pychess/widgets/LogDialog.py:188 msgid "of" msgstr "" #: lib/pychess/widgets/newGameDialog.py:84 #: lib/pychess/widgets/newGameDialog.py:85 msgid "Human Being" msgstr "" #: lib/pychess/widgets/newGameDialog.py:155 msgid "Rapid" msgstr "" #: lib/pychess/widgets/newGameDialog.py:224 msgid "Minutes:" msgstr "" #: lib/pychess/widgets/newGameDialog.py:228 msgid "Gain:" msgstr "" #: lib/pychess/widgets/newGameDialog.py:241 #, python-format msgid "%(name)s %(minutes)d min + %(gain)d sec/move" msgstr "" #: lib/pychess/widgets/newGameDialog.py:244 #, python-format msgid "%(name)s %(minutes)d min %(gain)d sec/move" msgstr "" #: lib/pychess/widgets/newGameDialog.py:247 #, python-format msgid "%(name)s %(minutes)d min" msgstr "" #: lib/pychess/widgets/newGameDialog.py:265 msgid "Odds" msgstr "" #: lib/pychess/widgets/newGameDialog.py:269 msgid "Asian variants" msgstr "" #: lib/pychess/widgets/newGameDialog.py:301 msgid " chess" msgstr "" #: lib/pychess/widgets/newGameDialog.py:682 msgid "Type or paste PGN game or FEN positions here" msgstr "" #: lib/pychess/widgets/newGameDialog.py:725 msgid "Enter Game" msgstr "" #: lib/pychess/widgets/preferencesDialog.py:123 msgid "Select book file" msgstr "" #: lib/pychess/widgets/preferencesDialog.py:128 msgid "Opening books" msgstr "" #: lib/pychess/widgets/preferencesDialog.py:156 msgid "Select Gaviota TB path" msgstr "" #: lib/pychess/widgets/preferencesDialog.py:331 msgid "Open Sound File" msgstr "" #: lib/pychess/widgets/preferencesDialog.py:341 msgid "Sound files" msgstr "" #: lib/pychess/widgets/preferencesDialog.py:485 msgid "Undescribed panel" msgstr "" #: lib/pychess/widgets/preferencesDialog.py:678 msgid "Select auto save path" msgstr "" #: lib/pychess/widgets/tipOfTheDay.py:51 msgid "" "You can start a new game by Game > New Game, in New Game " "window do you can choose Players, Time Control and Chess " "Variants." msgstr "" #: lib/pychess/widgets/tipOfTheDay.py:52 msgid "" "You can choose from 20 different difficulties to play against the computer." msgstr "" #: lib/pychess/widgets/tipOfTheDay.py:53 msgid "" "Chess Variants are like the pieces of the last line will be placed on the " "board." msgstr "" #: lib/pychess/widgets/tipOfTheDay.py:54 msgid "" "To save a game Game > Save Game As, give the filename and " "choose where you want to be saved. At the bottom choose extension type of " "the file, and Save." msgstr "" #: lib/pychess/widgets/tipOfTheDay.py:55 msgid "" "Do you know that you can call flag when the clock is with you, " "Actions > Call Flag." msgstr "" #: lib/pychess/widgets/tipOfTheDay.py:56 msgid "Pressing Ctrl+Z to offer opponent the possible rollback moves." msgstr "" #: lib/pychess/widgets/tipOfTheDay.py:57 msgid "" "To play on Fullscreen mode, just type F11. Coming back, F11 " "again." msgstr "" #: lib/pychess/widgets/tipOfTheDay.py:58 msgid "Hint mode analyzing your game, enable this type Ctrl+H." msgstr "" #: lib/pychess/widgets/tipOfTheDay.py:59 msgid "" "Spy mode analyzing the oponnent game, enable this type Ctrl+Y." msgstr "" #: lib/pychess/widgets/tipOfTheDay.py:60 msgid "" "You can play chess listening to the sounds of the game, for that, " "Settings > Preferences > Sound tab, enable Use " "sounds in PyChess and choose your preferred sounds." msgstr "" #: lib/pychess/widgets/tipOfTheDay.py:61 msgid "" "Do you know that you can help translate Pychess in your language, " "Help > Translate Pychess." msgstr "" #: lib/pychess/widgets/tipOfTheDay.py:62 msgid "" "Do you know that it is possible to finish a chess game in just 2 turns?" msgstr "" #: lib/pychess/widgets/tipOfTheDay.py:63 msgid "" "Do you know that the number of possible chess games exceeds the number of " "atoms in the Universe?" msgstr "" #: lib/pychess/ic/managers/ChatManager.py:184 msgid "Shout" msgstr "" #: lib/pychess/ic/managers/ChatManager.py:185 msgid "Chess Shout" msgstr "" #: lib/pychess/ic/managers/ChatManager.py:195 #, python-format msgid "Unofficial channel %d" msgstr "" #: lib/pychess/Utils/lutils/LBoard.py:152 #, python-format msgid "" "FEN needs 6 data fields. \n" "\n" "%s" msgstr "" #: lib/pychess/Utils/lutils/LBoard.py:154 #, python-format msgid "" "FEN needs at least 2 data fields in fenstr. \n" "\n" "%s" msgstr "" #: lib/pychess/Utils/lutils/LBoard.py:175 #, python-format msgid "" "Needs 7 slashes in piece placement field. \n" "\n" "%s" msgstr "" #: lib/pychess/Utils/lutils/LBoard.py:178 #, python-format msgid "" "Active color field must be one of w or b. \n" "\n" "%s" msgstr "" #: lib/pychess/Utils/lutils/LBoard.py:189 #, python-format msgid "" "Castling availability field is not legal. \n" "\n" "%s" msgstr "" #: lib/pychess/Utils/lutils/LBoard.py:192 #, python-format msgid "" "En passant cord is not legal. \n" "\n" "%s" msgstr "" #: lib/pychess/Utils/lutils/lmove.py:260 msgid "invalid promoted piece" msgstr "" #: lib/pychess/Utils/lutils/lmove.py:272 msgid "the move needs a piece and a cord" msgstr "" #: lib/pychess/Utils/lutils/lmove.py:306 lib/pychess/Utils/lutils/lmove.py:556 msgid "promotion move without promoted piece is incorrect" msgstr "" #: lib/pychess/Utils/lutils/lmove.py:312 #, python-format msgid "the captured cord (%s) is incorrect" msgstr "" #: lib/pychess/Utils/lutils/lmove.py:323 #, python-format msgid "the end cord (%s) is incorrect" msgstr "" #: lib/pychess/Utils/lutils/strateval.py:24 sidepanel/commentPanel.py:191 #: sidepanel/commentPanel.py:208 msgid "and" msgstr "" #: lib/pychess/Utils/lutils/strateval.py:43 msgid "draws" msgstr "" #: lib/pychess/Utils/lutils/strateval.py:45 msgid "mates" msgstr "" #: lib/pychess/Utils/lutils/strateval.py:49 msgid "puts opponent in check" msgstr "" #: lib/pychess/Utils/lutils/strateval.py:73 msgid "improves king safety" msgstr "" #: lib/pychess/Utils/lutils/strateval.py:75 msgid "slightly improves king safety" msgstr "" #: lib/pychess/Utils/lutils/strateval.py:108 msgid "moves a rook to an open file" msgstr "" #: lib/pychess/Utils/lutils/strateval.py:109 msgid "moves an rook to a half-open file" msgstr "" #: lib/pychess/Utils/lutils/strateval.py:119 #: lib/pychess/Utils/lutils/strateval.py:121 #: lib/pychess/Utils/lutils/strateval.py:124 #: lib/pychess/Utils/lutils/strateval.py:126 #, python-format msgid "moves bishop into fianchetto: %s" msgstr "" #: lib/pychess/Utils/lutils/strateval.py:132 #, python-format msgid "promotes a Pawn to a %s" msgstr "" #: lib/pychess/Utils/lutils/strateval.py:135 msgid "castles" msgstr "" #: lib/pychess/Utils/lutils/strateval.py:158 msgid "takes back material" msgstr "" #: lib/pychess/Utils/lutils/strateval.py:162 #: lib/pychess/Utils/lutils/strateval.py:170 msgid "sacrifies material" msgstr "" #: lib/pychess/Utils/lutils/strateval.py:164 msgid "exchanges material" msgstr "" #: lib/pychess/Utils/lutils/strateval.py:166 msgid "captures material" msgstr "" #: lib/pychess/Utils/lutils/strateval.py:291 #, python-format msgid "rescues a %s" msgstr "" #: lib/pychess/Utils/lutils/strateval.py:294 #, python-format msgid "threatens to win material by %s" msgstr "" #: lib/pychess/Utils/lutils/strateval.py:296 #, python-format msgid "increases the pressure on %s" msgstr "" #: lib/pychess/Utils/lutils/strateval.py:298 #, python-format msgid "defends %s" msgstr "" #: lib/pychess/Utils/lutils/strateval.py:336 #, python-format msgid "pins an enemy %(oppiece)s on the %(piece)s at %(cord)s" msgstr "" #: lib/pychess/Utils/lutils/strateval.py:369 #, python-format msgid "White has a new piece in outpost: %s" msgstr "" #: lib/pychess/Utils/lutils/strateval.py:377 #, python-format msgid "Black has a new piece in outpost: %s" msgstr "" #: lib/pychess/Utils/lutils/strateval.py:416 #, python-format msgid "%(color)s has a new passed pawn on %(cord)s" msgstr "" #: lib/pychess/Utils/lutils/strateval.py:470 msgid "half-open" msgstr "" #: lib/pychess/Utils/lutils/strateval.py:472 #, python-format msgid "in the %(x)s%(y)s file" msgstr "" #: lib/pychess/Utils/lutils/strateval.py:474 #, python-format msgid "in the %(x)s%(y)s files" msgstr "" #: lib/pychess/Utils/lutils/strateval.py:477 #, python-format msgid "%(color)s got a double pawn %(place)s" msgstr "" #: lib/pychess/Utils/lutils/strateval.py:478 #, python-format msgid "%(color)s got new double pawns %(place)s" msgstr "" #: lib/pychess/Utils/lutils/strateval.py:485 #, python-format msgid "%(color)s got an isolated pawn in the %(x)s file" msgid_plural "%(color)s got isolated pawns in the %(x)s files" msgstr[0] "" msgstr[1] "" #: lib/pychess/Utils/lutils/strateval.py:492 #, python-format msgid "%s moves pawns into stonewall formation" msgstr "" #: lib/pychess/Utils/lutils/strateval.py:507 #: lib/pychess/Utils/lutils/strateval.py:514 #, python-format msgid "%s can no longer castle" msgstr "" #: lib/pychess/Utils/lutils/strateval.py:508 #: lib/pychess/Utils/lutils/strateval.py:515 #, python-format msgid "%s can no longer castle in queenside" msgstr "" #: lib/pychess/Utils/lutils/strateval.py:510 #: lib/pychess/Utils/lutils/strateval.py:517 #, python-format msgid "%s can no longer castle in kingside" msgstr "" #: lib/pychess/Utils/lutils/strateval.py:551 #, python-format msgid "%(opcolor)s has a new trapped bishop on %(cord)s" msgstr "" #: lib/pychess/Utils/lutils/strateval.py:573 #, python-format msgid "develops a pawn: %s" msgstr "" #: lib/pychess/Utils/lutils/strateval.py:574 #, python-format msgid "brings a pawn closer to the backrow: %s" msgstr "" #: lib/pychess/Utils/lutils/strateval.py:591 #, python-format msgid "brings a %(piece)s closer to enemy king: %(cord)s" msgstr "" #: lib/pychess/Utils/lutils/strateval.py:594 #, python-format msgid "develops a %(piece)s: %(cord)s" msgstr "" #: lib/pychess/Utils/lutils/strateval.py:612 #, python-format msgid "places a %(piece)s more active: %(cord)s" msgstr "" #: lib/pychess/Utils/lutils/strateval.py:638 msgid "White should do pawn storm in right" msgstr "" #: lib/pychess/Utils/lutils/strateval.py:640 msgid "Black should do pawn storm in left" msgstr "" #: lib/pychess/Utils/lutils/strateval.py:643 msgid "White should do pawn storm in left" msgstr "" #: lib/pychess/Utils/lutils/strateval.py:645 msgid "Black should do pawn storm in right" msgstr "" #: lib/pychess/Utils/lutils/strateval.py:671 msgid "Black has a rather cramped position" msgstr "" #: lib/pychess/Utils/lutils/strateval.py:673 msgid "Black has a slightly cramped position" msgstr "" #: lib/pychess/Utils/lutils/strateval.py:675 msgid "White has a rather cramped position" msgstr "" #: lib/pychess/Utils/lutils/strateval.py:677 msgid "White has a slightly cramped position" msgstr "" #: sidepanel/annotationPanel.py:26 msgid "Annotation" msgstr "" #: sidepanel/annotationPanel.py:29 msgid "Annotated game" msgstr "" #: sidepanel/annotationPanel.py:236 msgid "Copy PGN" msgstr "" #: sidepanel/annotationPanel.py:249 msgid "Add start comment" msgstr "" #: sidepanel/annotationPanel.py:254 msgid "Add comment" msgstr "" #: sidepanel/annotationPanel.py:258 sidepanel/annotationPanel.py:316 msgid "Edit comment" msgstr "" #: sidepanel/annotationPanel.py:269 msgid "Forced move" msgstr "" #: sidepanel/annotationPanel.py:274 msgid "Add move symbol" msgstr "" #: sidepanel/annotationPanel.py:280 msgid "Unclear position" msgstr "" #: sidepanel/annotationPanel.py:289 msgid "Zugzwang" msgstr "" #: sidepanel/annotationPanel.py:290 msgid "Development adv." msgstr "" #: sidepanel/annotationPanel.py:291 msgid "Initiative" msgstr "" #: sidepanel/annotationPanel.py:292 msgid "With attack" msgstr "" #: sidepanel/annotationPanel.py:293 msgid "Compensation" msgstr "" #: sidepanel/annotationPanel.py:294 msgid "Counterplay" msgstr "" #: sidepanel/annotationPanel.py:295 msgid "Time pressure" msgstr "" #: sidepanel/annotationPanel.py:300 msgid "Add evaluation symbol" msgstr "" #: sidepanel/annotationPanel.py:304 msgid "Remove symbols" msgstr "" #: sidepanel/annotationPanel.py:911 #, python-format msgid "round %s" msgstr "" #: sidepanel/bookPanel.py:21 msgid "Hints" msgstr "" #: sidepanel/bookPanel.py:25 msgid "" "The hint panel will provide computer advice during each stage of the game" msgstr "" #: sidepanel/bookPanel.py:27 msgid "Official PyChess panel." msgstr "" #: sidepanel/bookPanel.py:87 msgid "Opening Book" msgstr "" #: sidepanel/bookPanel.py:88 msgid "" "The opening book will try to inspire you during the opening phase of the " "game by showing you common moves made by chess masters" msgstr "" #: sidepanel/bookPanel.py:139 #, python-format msgid "Analysis by %s" msgstr "" #: sidepanel/bookPanel.py:140 #, python-format msgid "" "%s will try to predict which move is best and which side has the advantage" msgstr "" #: sidepanel/bookPanel.py:142 #, python-format msgid "Threat analysis by %s" msgstr "" #: sidepanel/bookPanel.py:143 #, python-format msgid "" "%s will identify what threats would exist if it were your opponent's turn to" " move" msgstr "" #: sidepanel/bookPanel.py:159 sidepanel/bookPanel.py:269 msgid "Calculating..." msgstr "" #: sidepanel/bookPanel.py:300 msgid "" "Engine scores are in units of pawns, from White's point of view. Double " "clicking on analysis lines you can insert them into Annotation panel as " "variations." msgstr "" #: sidepanel/bookPanel.py:302 msgid "" "Adding suggestions can help you find ideas, but slows down the computer's " "analysis." msgstr "" #: sidepanel/bookPanel.py:311 msgid "Endgame Table" msgstr "" #: sidepanel/bookPanel.py:315 msgid "" "The endgame table will show exact analysis when there are few pieces on the " "board." msgstr "" #: sidepanel/bookPanel.py:364 sidepanel/bookPanel.py:367 #, python-format msgid "Mate in %d" msgstr "" #: sidepanel/bookPanel.py:554 msgid "" "In this position,\n" "there is no legal move." msgstr "" #: sidepanel/chatPanel.py:21 msgid "" "The chat panel lets you communicate with your opponent during the game, " "assuming he or she is interested" msgstr "" #: sidepanel/commentPanel.py:16 msgid "Comments" msgstr "" #: sidepanel/commentPanel.py:20 msgid "The comments panel will try to analyze and explain the moves played" msgstr "" #: sidepanel/commentPanel.py:121 msgid "Initial position" msgstr "" #: sidepanel/commentPanel.py:254 #, python-format msgid "%(color)s moves a %(piece)s to %(cord)s" msgstr "" #: sidepanel/engineOutputPanel.py:15 msgid "Engines" msgstr "" #: sidepanel/engineOutputPanel.py:20 msgid "" "The engine output panel shows the thinking output of chess engines (computer" " players) during a game" msgstr "" #: sidepanel/engineOutputPanel.py:44 msgid "No chess engines (computer players) are participating in this game." msgstr "" #: sidepanel/historyPanel.py:10 msgid "Move History" msgstr "" #: sidepanel/historyPanel.py:13 msgid "" "The moves sheet keeps track of the players' moves and lets you navigate " "through the game history" msgstr "" #: sidepanel/scorePanel.py:15 msgid "Score" msgstr "" #: sidepanel/scorePanel.py:19 msgid "" "The score panel tries to evaluate the positions and shows you a graph of the" " game progress" msgstr "" pychess-0.12.2/lang/si/LC_MESSAGES/pychess.mo0000644000175000017470000000105712653231273020713 0ustar tamasusers000000000000004L`a hs _Name:_Password:Project-Id-Version: pychess Report-Msgid-Bugs-To: POT-Creation-Date: 2016-01-27 13:28+0100 PO-Revision-Date: 2016-01-28 08:56+0000 Last-Translator: slav0nic Language-Team: Sinhala (http://www.transifex.com/gbtami/pychess/language/si/) MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Language: si Plural-Forms: nplurals=2; plural=(n != 1); නම (_N):රහස්පදය(_P)pychess-0.12.2/lang/wa/0000755000175000017470000000000012653231274015105 5ustar tamasusers00000000000000pychess-0.12.2/lang/wa/LC_MESSAGES/0000755000175000017470000000000012653231274016672 5ustar tamasusers00000000000000pychess-0.12.2/lang/wa/LC_MESSAGES/pychess.po0000644000175000017470000024104712653216205020715 0ustar tamasusers00000000000000# SOME DESCRIPTIVE TITLE. # Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER # This file is distributed under the same license as the pychess package. # # Translators: # FIRST AUTHOR , 2007 msgid "" msgstr "" "Project-Id-Version: pychess\n" "Report-Msgid-Bugs-To: \n" "POT-Creation-Date: 2016-01-27 13:28+0100\n" "PO-Revision-Date: 2016-01-28 08:56+0000\n" "Last-Translator: slav0nic \n" "Language-Team: Walloon (http://www.transifex.com/gbtami/pychess/language/wa/)\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" "Language: wa\n" "Plural-Forms: nplurals=2; plural=(n > 1);\n" # "Plural-Forms: nplurals=INTEGER; plural=EXPRESSION;\n" #: glade/analyze_game.glade:22 msgid "Analyze game" msgstr "" #: glade/analyze_game.glade:87 msgid "Use analyzer:" msgstr "" #: glade/analyze_game.glade:122 glade/PyChess.glade:2054 msgid "Maximum analysis time in seconds:" msgstr "" #: glade/analyze_game.glade:163 msgid "" "If the analyzer finds a move where the evaluation difference (the difference" " between the evaluation for the move it thinks is the best move and the " "evaluation for the move made in the game) exceeds this value, it will add an" " annotation for that move (consisting of the engine's Principal Variation " "for the move) to the Annotation panel" msgstr "" #: glade/analyze_game.glade:164 msgid "Variation annotation creation threshold in centipawns:" msgstr "" #: glade/analyze_game.glade:198 msgid "Analyze from current position" msgstr "" #: glade/analyze_game.glade:214 msgid "Add threatening variation lines " msgstr "" #: glade/analyze_game.glade:229 glade/PyChess.glade:1459 msgid "Colorize analyzed moves" msgstr "" #: glade/analyze_game.glade:244 glade/PyChess.glade:1495 msgid "Show evaluation values" msgstr "" #: glade/discovererDialog.glade:18 msgid "PyChess is discovering your engines. Please wait." msgstr "" #: glade/discovererDialog.glade:77 msgid "PyChess.py:" msgstr "" #: glade/discovererDialog.glade:89 msgid "ShredderLinuxChess:" msgstr "" #: glade/discovererDialog.glade:101 msgid "gnuchess:" msgstr "" #: glade/fics_logon.glade:7 msgid "PyChess - Connect to Internet Chess" msgstr "" #: glade/fics_logon.glade:47 msgid "Connect to the Free Online Chess Server" msgstr "" #: glade/fics_logon.glade:129 glade/taskers.glade:394 msgid "_Password:" msgstr "_Mot de passe:" #: glade/fics_logon.glade:143 msgid "_Name:" msgstr "_Nom:" #: glade/fics_logon.glade:191 msgid "Log on as _Guest" msgstr "Se connecter en tant qu'invité" #: glade/fics_logon.glade:227 msgid "Host:" msgstr "" #: glade/fics_logon.glade:259 msgid "Po_rts:" msgstr "" #: glade/fics_logon.glade:271 msgid "Auto login on startup" msgstr "" #: glade/fics_logon.glade:385 msgid "S_ign up" msgstr "" #: glade/fics_lounge.glade:35 msgid "Challenge: " msgstr "" #: glade/fics_lounge.glade:97 msgid "Send Challenge" msgstr "" #: glade/fics_lounge.glade:133 msgid "Challenge:" msgstr "" #: glade/fics_lounge.glade:327 glade/fics_lounge.glade:2078 msgid "Lightning:" msgstr "" #: glade/fics_lounge.glade:351 glade/fics_lounge.glade:2102 msgid "Standard:" msgstr "" #: glade/fics_lounge.glade:375 glade/fics_lounge.glade:2126 msgid "Blitz:" msgstr "" #: glade/fics_lounge.glade:400 msgid "2 min, Fischer Random, Black" msgstr "" #: glade/fics_lounge.glade:422 msgid "10 min + 6 sec/move, White" msgstr "" #: glade/fics_lounge.glade:444 msgid "5 min" msgstr "" #: glade/fics_lounge.glade:480 msgid "Edit Seek" msgstr "" #: glade/fics_lounge.glade:584 lib/pychess/ic/ICLounge.py:2208 #: lib/pychess/ic/__init__.py:101 lib/pychess/Utils/GameModel.py:206 msgid "Untimed" msgstr "" #: glade/fics_lounge.glade:637 msgid "Minutes: " msgstr "" #: glade/fics_lounge.glade:665 msgid " Gain: " msgstr "" #: glade/fics_lounge.glade:703 msgid "Time control: " msgstr "" #: glade/fics_lounge.glade:716 lib/pychess/ic/FICSObjects.py:56 #: lib/pychess/ic/ICLounge.py:1137 lib/pychess/ic/ICLounge.py:2208 #: lib/pychess/ic/__init__.py:99 msgid "Standard" msgstr "" #: glade/fics_lounge.glade:757 glade/newInOut.glade:633 msgid "Time Control" msgstr "" #: glade/fics_lounge.glade:814 glade/fics_lounge.glade:1346 msgid "Don't care" msgstr "" #: glade/fics_lounge.glade:879 msgid "Your strength: " msgstr "" #: glade/fics_lounge.glade:921 msgid "(Blitz)" msgstr "" #: glade/fics_lounge.glade:951 msgid "Opponent's strength: " msgstr "" #: glade/fics_lounge.glade:1055 msgid "" "When this button is in the \"locked\" state, the relationship\n" "between \"Opponent's strength\" and \"Your strength\" will be\n" "preserved when \n" "a) your rating for the type of game sought has changed\n" "b) you change the variant or the time control" msgstr "" #: glade/fics_lounge.glade:1095 msgid "Center:" msgstr "" #: glade/fics_lounge.glade:1134 msgid "1200" msgstr "" #: glade/fics_lounge.glade:1188 msgid "Tolerance:" msgstr "" #: glade/fics_lounge.glade:1243 lib/pychess/ic/ICLounge.py:2452 msgid "Hide" msgstr "" #: glade/fics_lounge.glade:1289 msgid "Opponent Strength" msgstr "" #: glade/fics_lounge.glade:1386 lib/pychess/Database/gamelist.py:40 #: lib/pychess/ic/ICLounge.py:1357 lib/pychess/ic/ICLounge.py:1557 #: lib/pychess/ic/ICLounge.py:2108 lib/pychess/Utils/repr.py:10 #: lib/pychess/widgets/ChessClock.py:40 #: lib/pychess/widgets/TaskerManager.py:153 msgid "White" msgstr "" #: glade/fics_lounge.glade:1414 lib/pychess/Database/gamelist.py:40 #: lib/pychess/ic/ICLounge.py:1358 lib/pychess/ic/ICLounge.py:1558 #: lib/pychess/ic/ICLounge.py:2110 lib/pychess/Utils/repr.py:10 #: lib/pychess/widgets/ChessClock.py:40 #: lib/pychess/widgets/TaskerManager.py:154 msgid "Black" msgstr "" #: glade/fics_lounge.glade:1453 msgid "Your Color" msgstr "" #: glade/fics_lounge.glade:1512 msgid "Play normal chess rules" msgstr "" #: glade/fics_lounge.glade:1552 msgid "Play" msgstr "" #: glade/fics_lounge.glade:1618 glade/newInOut.glade:833 msgid "Chess Variant" msgstr "" #: glade/fics_lounge.glade:1676 msgid "Rated game" msgstr "" #: glade/fics_lounge.glade:1692 msgid "Manually accept opponent" msgstr "" #: glade/fics_lounge.glade:1722 msgid "Options" msgstr "" #: glade/fics_lounge.glade:1750 msgid "PyChess - Internet Chess: FICS" msgstr "" #: glade/fics_lounge.glade:1823 msgid "_Clear Seeks" msgstr "" #: glade/fics_lounge.glade:1847 msgid "_Accept" msgstr "" #: glade/fics_lounge.glade:1871 msgid "_Decline" msgstr "" #: glade/fics_lounge.glade:2151 msgid "2 min, Fischer Random, 1800↓, Black" msgstr "" #: glade/fics_lounge.glade:2172 msgid "10 min + 6 sec/move, 1400↑, White" msgstr "" #: glade/fics_lounge.glade:2193 msgid "5 min, 1200-1800, Manual" msgstr "" #: glade/fics_lounge.glade:2247 msgid "Send all seeks" msgstr "" #: glade/fics_lounge.glade:2301 msgid "Send seek" msgstr "" #: glade/fics_lounge.glade:2337 msgid "Create Seek" msgstr "" #: glade/fics_lounge.glade:2353 msgid "_Seeks / Challenges" msgstr "" #: glade/fics_lounge.glade:2374 lib/pychess/ic/ICLounge.py:472 #: lib/pychess/ic/ICLounge.py:670 lib/pychess/ic/ICLounge.py:1357 #: lib/pychess/ic/ICLounge.py:1358 msgid "Rating" msgstr "" #: glade/fics_lounge.glade:2399 msgid "Time" msgstr "" #: glade/fics_lounge.glade:2419 msgid "Seek _Graph" msgstr "" #: glade/fics_lounge.glade:2444 msgid "0 Players Ready" msgstr "" #: glade/fics_lounge.glade:2496 msgid "Challenge" msgstr "" #: glade/fics_lounge.glade:2549 glade/fics_lounge.glade:2735 msgid "Observe" msgstr "" #: glade/fics_lounge.glade:2602 msgid "Start Private Chat" msgstr "" #: glade/fics_lounge.glade:2659 msgid "_Player List" msgstr "" #: glade/fics_lounge.glade:2792 msgid "_Game List" msgstr "" #: glade/fics_lounge.glade:2847 msgid "_My games" msgstr "" #: glade/fics_lounge.glade:2904 glade/PyChess.glade:841 msgid "Offer _Resume" msgstr "" #: glade/fics_lounge.glade:2962 glade/PyChess.glade:880 msgid "R_esign" msgstr "" #: glade/fics_lounge.glade:3006 glade/PyChess.glade:820 msgid "Offer _Draw" msgstr "" #: glade/fics_lounge.glade:3050 msgid "Offer A_bort" msgstr "" #: glade/fics_lounge.glade:3107 msgid "Pre_view" msgstr "" #: glade/fics_lounge.glade:3151 msgid "Examine" msgstr "" #: glade/fics_lounge.glade:3208 msgid "_Archived" msgstr "" #: glade/fics_lounge.glade:3313 msgid "News" msgstr "" #: glade/fics_lounge.glade:3345 msgid "Show Console" msgstr "" #: glade/fics_lounge.glade:3359 msgid "Show _Chat" msgstr "" #: glade/fics_lounge.glade:3373 msgid "_Log Off" msgstr "" #: glade/fics_lounge.glade:3393 msgid "Tools" msgstr "" #: glade/fics_lounge.glade:3428 msgid "Asymmetric Random " msgstr "" #: glade/findbar.glade:6 msgid "window1" msgstr "" #: glade/findbar.glade:21 msgid "0 of 0" msgstr "" #: glade/findbar.glade:66 msgid "Search:" msgstr "" #: glade/findbar.glade:134 msgid "_Previous" msgstr "" #: glade/findbar.glade:192 msgid "_Next" msgstr "" #: glade/newInOut.glade:45 lib/pychess/widgets/newGameDialog.py:445 msgid "New Game" msgstr "" #: glade/newInOut.glade:108 msgid "_Start Game" msgstr "" #: glade/newInOut.glade:130 msgid "Copy FEN" msgstr "" #: glade/newInOut.glade:143 msgid "Clear" msgstr "" #: glade/newInOut.glade:156 msgid "Paste FEN" msgstr "" #: glade/newInOut.glade:257 msgid "_Black player:" msgstr "" #: glade/newInOut.glade:274 msgid "_White player:" msgstr "" #: glade/newInOut.glade:385 msgid "Players" msgstr "" #: glade/newInOut.glade:436 msgid "_Untimed" msgstr "" #: glade/newInOut.glade:475 msgid "Blitz: 5 min" msgstr "" #: glade/newInOut.glade:526 msgid "Rapid: 15 min + 10 sec/move" msgstr "" #: glade/newInOut.glade:575 msgid "Normal: 40 min + 15 sec/move" msgstr "" #: glade/newInOut.glade:684 msgid "_Play Normal chess" msgstr "" #: glade/newInOut.glade:724 msgid "Play Fischer Random chess" msgstr "" #: glade/newInOut.glade:774 msgid "Play Losers chess" msgstr "" #: glade/newInOut.glade:919 msgid "Open Game" msgstr "" #: glade/newInOut.glade:1162 msgid "Initial Position" msgstr "" #: glade/newInOut.glade:1219 msgid "Enter Game Notation" msgstr "" #: glade/newInOut.glade:1314 msgid "Halfmove clock" msgstr "" #: glade/newInOut.glade:1327 msgid "En passant line" msgstr "" #: glade/newInOut.glade:1339 msgid "Side to move" msgstr "" #: glade/newInOut.glade:1351 msgid "Move number" msgstr "" #: glade/newInOut.glade:1361 msgid "Black O-O" msgstr "" #: glade/newInOut.glade:1375 msgid "Black O-O-O" msgstr "" #: glade/newInOut.glade:1389 msgid "White O-O-O" msgstr "" #: glade/newInOut.glade:1403 msgid "White O-O" msgstr "" #: glade/promotion.glade:7 msgid "Promotion" msgstr "" #: glade/promotion.glade:49 lib/pychess/Utils/repr.py:12 msgid "Queen" msgstr "" #: glade/promotion.glade:95 lib/pychess/Utils/repr.py:12 msgid "Rook" msgstr "" #: glade/promotion.glade:141 lib/pychess/Utils/repr.py:12 msgid "Bishop" msgstr "" #: glade/promotion.glade:187 lib/pychess/Utils/repr.py:12 msgid "Knight" msgstr "" #: glade/promotion.glade:233 lib/pychess/Utils/repr.py:12 msgid "King" msgstr "" #: glade/promotion.glade:265 msgid "Promote pawn to what?" msgstr "" #: glade/PyChess.glade:9 msgid "Chess client" msgstr "" #: glade/PyChess.glade:44 msgid "Game information" msgstr "" #: glade/PyChess.glade:164 msgid "Event:" msgstr "" #: glade/PyChess.glade:178 msgid "Site:" msgstr "" #: glade/PyChess.glade:204 msgid "Round:" msgstr "" #: glade/PyChess.glade:237 msgid "White:" msgstr "" #: glade/PyChess.glade:249 msgid "Black:" msgstr "" #: glade/PyChess.glade:302 msgid "Game data" msgstr "" #: glade/PyChess.glade:357 msgid "Date of game" msgstr "" #: glade/PyChess.glade:495 msgid "_Game" msgstr "" #: glade/PyChess.glade:502 msgid "_New Game" msgstr "" #: glade/PyChess.glade:515 msgid "Play _Internet Chess" msgstr "" #: glade/PyChess.glade:534 msgid "_Load Game" msgstr "" #: glade/PyChess.glade:550 msgid "Load _Recent Game" msgstr "" #: glade/PyChess.glade:558 msgid "Open _Database" msgstr "" #: glade/PyChess.glade:569 lib/pychess/widgets/newGameDialog.py:615 msgid "Setup Position" msgstr "" #: glade/PyChess.glade:579 msgid "Enter Game _Notation" msgstr "" #: glade/PyChess.glade:592 msgid "_Save Game" msgstr "" #: glade/PyChess.glade:606 msgid "Save Game _As" msgstr "" #: glade/PyChess.glade:624 msgid "Share Game" msgstr "" #: glade/PyChess.glade:630 msgid "_Export Position" msgstr "" #: glade/PyChess.glade:644 msgid "_Analyze Game" msgstr "" #: glade/PyChess.glade:678 msgid "Player _Rating" msgstr "" #: glade/PyChess.glade:723 msgid "_Edit" msgstr "" #: glade/PyChess.glade:734 msgid "_Copy PGN" msgstr "" #: glade/PyChess.glade:746 msgid "_Copy FEN" msgstr "" #: glade/PyChess.glade:763 msgid "_Engines" msgstr "" #: glade/PyChess.glade:789 msgid "_Actions" msgstr "" #: glade/PyChess.glade:800 msgid "Offer _Abort" msgstr "" #: glade/PyChess.glade:810 msgid "Offer Ad_journment" msgstr "" #: glade/PyChess.glade:831 msgid "Offer _Pause" msgstr "" #: glade/PyChess.glade:847 msgid "Offer _Undo" msgstr "" #: glade/PyChess.glade:870 msgid "_Call Flag" msgstr "" #: glade/PyChess.glade:890 msgid "Ask to _Move" msgstr "" #: glade/PyChess.glade:905 msgid "Auto Call _Flag" msgstr "" #: glade/PyChess.glade:918 msgid "_View" msgstr "" #: glade/PyChess.glade:925 msgid "_Rotate Board" msgstr "" #: glade/PyChess.glade:939 msgid "_Fullscreen" msgstr "" #: glade/PyChess.glade:952 msgid "Leave _Fullscreen" msgstr "" #: glade/PyChess.glade:969 msgid "_Show Sidepanels" msgstr "" #: glade/PyChess.glade:980 msgid "_Log Viewer" msgstr "" #: glade/PyChess.glade:997 msgid "_Hint mode" msgstr "" #: glade/PyChess.glade:1009 msgid "Sp_y mode" msgstr "" #: glade/PyChess.glade:1024 msgid "_Help" msgstr "" #: glade/PyChess.glade:1034 msgid "About Chess" msgstr "" #: glade/PyChess.glade:1043 msgid "How to Play" msgstr "" #: glade/PyChess.glade:1052 msgid "Translate PyChess" msgstr "" #: glade/PyChess.glade:1058 msgid "Tip of the Day" msgstr "" #: glade/PyChess.glade:1153 msgid "Default" msgstr "" #: glade/PyChess.glade:1156 msgid "Knights" msgstr "" #: glade/PyChess.glade:1167 lib/pychess/widgets/preferencesDialog.py:349 msgid "Beep" msgstr "" #: glade/PyChess.glade:1170 lib/pychess/widgets/preferencesDialog.py:350 msgid "Select sound file..." msgstr "" #: glade/PyChess.glade:1173 lib/pychess/widgets/preferencesDialog.py:348 msgid "No sound" msgstr "" #: glade/PyChess.glade:1180 msgid "Preferences" msgstr "" #: glade/PyChess.glade:1218 msgid "The displayed name of the first human player, e.g., John." msgstr "" #: glade/PyChess.glade:1230 msgid "Name of _first human player:" msgstr "" #: glade/PyChess.glade:1259 msgid "The displayed name of the guest player, e.g., Mary." msgstr "" #: glade/PyChess.glade:1271 msgid "Name of s_econd human player:" msgstr "" #: glade/PyChess.glade:1307 msgid "_Hide tabs when only one game is open" msgstr "" #: glade/PyChess.glade:1312 msgid "" "If set, this hides the tab in the top of the playing window, when it is not " "needed." msgstr "" #: glade/PyChess.glade:1326 msgid "_Use main app closer [x] to close all games" msgstr "" #: glade/PyChess.glade:1331 msgid "" "If set, clicking on main application window closer first time it closes all " "games." msgstr "" #: glade/PyChess.glade:1345 msgid "Auto _rotate board to current human player" msgstr "" #: glade/PyChess.glade:1350 msgid "" "If set, the board will turn after each move, to show the natural view for " "the current player." msgstr "" #: glade/PyChess.glade:1364 msgid "Auto _promote to queen" msgstr "" #: glade/PyChess.glade:1369 msgid "If set, pawn promotes to queen without promotion dialog selection." msgstr "" #: glade/PyChess.glade:1383 msgid "Face _to Face display mode" msgstr "" #: glade/PyChess.glade:1388 msgid "" "If set, the black pieces will be head down, suitable for playing against " "friends on mobile devices." msgstr "" #: glade/PyChess.glade:1402 msgid "Sho_w cords" msgstr "" #: glade/PyChess.glade:1407 msgid "" "If set, the playing board will display labels and ranks for each chess " "field. These are usable in chess notation." msgstr "" #: glade/PyChess.glade:1421 msgid "Show _captured pieces" msgstr "" #: glade/PyChess.glade:1426 msgid "If set, the captured figurines will be shown next to the board." msgstr "" #: glade/PyChess.glade:1440 msgid "Prefer figures in _notation" msgstr "" #: glade/PyChess.glade:1445 msgid "" "If set, PyChess will use figures to express moved pieces, rather than " "uppercase letters." msgstr "" #: glade/PyChess.glade:1464 msgid "If set, PyChess will colorize suboptimal analyzed moves with red." msgstr "" #: glade/PyChess.glade:1477 msgid "Show elapsed move times" msgstr "" #: glade/PyChess.glade:1482 msgid "If set, the elapsed time that a player used for the move is shown." msgstr "" #: glade/PyChess.glade:1500 msgid "If set, the hint analyzer engine evaluation value is shown." msgstr "" #: glade/PyChess.glade:1526 msgid "General Options" msgstr "" #: glade/PyChess.glade:1560 msgid "F_ull board animation" msgstr "" #: glade/PyChess.glade:1565 msgid "Animate pieces, board rotation and more. Use this on fast machines." msgstr "" #: glade/PyChess.glade:1579 msgid "Only animate _moves" msgstr "" #: glade/PyChess.glade:1584 msgid "Only animate piece moves." msgstr "" #: glade/PyChess.glade:1599 msgid "No _animation" msgstr "" #: glade/PyChess.glade:1604 msgid "Never use animation. Use this on slow machines." msgstr "" #: glade/PyChess.glade:1632 msgid "Animation" msgstr "" #: glade/PyChess.glade:1651 msgid "_General" msgstr "" #: glade/PyChess.glade:1692 msgid "Use opening _book" msgstr "" #: glade/PyChess.glade:1697 msgid "If set, PyChess will suggest best opening moves on hint panel." msgstr "" #: glade/PyChess.glade:1724 msgid "Polyglot book file:" msgstr "" #: glade/PyChess.glade:1768 msgid "Use _local tablebases" msgstr "" #: glade/PyChess.glade:1773 msgid "" "If set, PyChess will show game results for different moves in positions containing 6 or less pieces.\n" "You can download tablebase files from:\n" "http://www.olympuschess.com/egtb/gaviota/" msgstr "" #: glade/PyChess.glade:1803 msgid "Gaviota TB path:" msgstr "" #: glade/PyChess.glade:1843 msgid "Use _online tablebases" msgstr "" #: glade/PyChess.glade:1848 msgid "" "If set, PyChess will show game results for different moves in positions containing 6 or less pieces.\n" "It will search positions from http://www.k4it.de/" msgstr "" #: glade/PyChess.glade:1870 msgid "Opening, endgame" msgstr "" #: glade/PyChess.glade:1904 msgid "Use _analyzer" msgstr "" #: glade/PyChess.glade:1946 msgid "" "The analyzer will run in the background and analyze the game. This is " "necessary for the hint mode to work" msgstr "" #: glade/PyChess.glade:1978 msgid "Use _inverted analyzer" msgstr "" #: glade/PyChess.glade:2020 msgid "" "The inverse analyzer will analyze the game as if your opponent was to move. " "This is necessary for the spy mode to work" msgstr "" #: glade/PyChess.glade:2096 msgid "Analyzing" msgstr "" #: glade/PyChess.glade:2118 msgid "_Hints" msgstr "" #: glade/PyChess.glade:2263 msgid "Uninstall" msgstr "" #: glade/PyChess.glade:2317 msgid "Ac_tive" msgstr "" #: glade/PyChess.glade:2367 msgid "Installed Sidepanels" msgstr "" #: glade/PyChess.glade:2382 msgid "Side_panels" msgstr "" #: glade/PyChess.glade:2440 msgid "Light Squares :" msgstr "" #: glade/PyChess.glade:2479 msgid "Dark Squares :" msgstr "" #: glade/PyChess.glade:2515 msgid "Reset Default Colours" msgstr "" #: glade/PyChess.glade:2551 msgid "Board Colours" msgstr "" #: glade/PyChess.glade:2610 msgid "Chess Sets" msgstr "" #: glade/PyChess.glade:2634 msgid "Themes" msgstr "" #: glade/PyChess.glade:2659 msgid "_Use sounds in PyChess" msgstr "" #: glade/PyChess.glade:2982 msgid "A player _checks:" msgstr "" #: glade/PyChess.glade:2997 msgid "A player _moves:" msgstr "" #: glade/PyChess.glade:3010 msgid "Game is _drawn:" msgstr "" #: glade/PyChess.glade:3025 msgid "Game is _lost:" msgstr "" #: glade/PyChess.glade:3040 msgid "Game is _won:" msgstr "" #: glade/PyChess.glade:3055 msgid "A player c_aptures:" msgstr "" #: glade/PyChess.glade:3084 msgid "Game is _set-up:" msgstr "" #: glade/PyChess.glade:3136 msgid "_Observed moves:" msgstr "" #: glade/PyChess.glade:3151 msgid "Observed _ends:" msgstr "" #: glade/PyChess.glade:3265 msgid "Short on _time:" msgstr "" #: glade/PyChess.glade:3317 msgid "_Invalid move:" msgstr "" #: glade/PyChess.glade:3369 msgid "Activate alarm when _remaining sec is:" msgstr "" #: glade/PyChess.glade:3416 msgid "Play Sound When..." msgstr "" #: glade/PyChess.glade:3438 msgid "_Sounds" msgstr "" #: glade/PyChess.glade:3463 msgid "_Auto save finished games" msgstr "" #: glade/PyChess.glade:3497 msgid "Save files to:" msgstr "" #: glade/PyChess.glade:3525 msgid "Use name format:" msgstr "" #: glade/PyChess.glade:3569 msgid "Names: #n1, #n2" msgstr "" #: glade/PyChess.glade:3582 msgid "Year, month, day: #y, #m, #d" msgstr "" #: glade/PyChess.glade:3619 msgid "Save elapsed move _times" msgstr "" #: glade/PyChess.glade:3644 msgid "Save analyzing engine _evaluation values" msgstr "" #: glade/PyChess.glade:3669 msgid "Save _own games only" msgstr "" #: glade/PyChess.glade:3698 msgid "Save" msgstr "" #: glade/PyChess.glade:3728 msgid "uci" msgstr "" #: glade/PyChess.glade:3731 msgid "xboard" msgstr "" #: glade/PyChess.glade:3739 msgid "Manage engines" msgstr "" #: glade/PyChess.glade:3837 msgid "Command:" msgstr "" #: glade/PyChess.glade:3851 msgid "Protocol:" msgstr "" #: glade/PyChess.glade:3865 msgid "Parameters:" msgstr "" #: glade/PyChess.glade:3878 msgid "Command line parameters needed by the engine." msgstr "" #: glade/PyChess.glade:3903 msgid "" "Engines use uci or xboard communication protocol to talk to the GUI.\n" "If it can use both you can set here which one you like." msgstr "" #: glade/PyChess.glade:3929 msgid "Working directory:" msgstr "" #: glade/PyChess.glade:3942 msgid "The directory where the engine will be started from." msgstr "" #: glade/saveGamesDialog.glade:7 msgid "Quit PyChess" msgstr "" #: glade/saveGamesDialog.glade:24 lib/pychess/widgets/ionest.py:424 msgid "Close _without Saving" msgstr "" #: glade/saveGamesDialog.glade:83 msgid "_Save %d documents" msgstr "" #: glade/saveGamesDialog.glade:141 msgid "" "There are %d games with unsaved moves. Save changes before " "closing?" msgstr "" #: glade/saveGamesDialog.glade:161 msgid "Select the games you want to save:" msgstr "" #: glade/saveGamesDialog.glade:204 msgid "If you don't save, new changes to your games will be permanently lost." msgstr "" #: glade/taskers.glade:126 msgid "_Opponent:" msgstr "" #: glade/taskers.glade:154 msgid "_Your Color:" msgstr "" #: glade/taskers.glade:219 msgid "_Start Game" msgstr "" #: glade/taskers.glade:338 msgid "Log on as G_uest" msgstr "" #: glade/taskers.glade:410 msgid "Ha_ndle:" msgstr "" #: glade/taskers.glade:469 msgid "_Connect to server" msgstr "" #: glade/tipoftheday.glade:7 msgid "Tip Of The day" msgstr "" #: glade/tipoftheday.glade:62 msgid "Show tips at startup" msgstr "" #: lib/pychess/Main.py:302 msgid "http://en.wikipedia.org/wiki/Chess" msgstr "" #: lib/pychess/Main.py:305 msgid "http://en.wikipedia.org/wiki/Rules_of_chess" msgstr "" #: lib/pychess/Main.py:370 lib/pychess/widgets/gamenanny.py:80 msgid "Welcome" msgstr "" #: lib/pychess/Database/gamelist.py:40 msgid "Id" msgstr "" #: lib/pychess/Database/gamelist.py:40 msgid "W Elo" msgstr "" #: lib/pychess/Database/gamelist.py:40 msgid "B Elo" msgstr "" #: lib/pychess/Database/gamelist.py:41 msgid "Result" msgstr "" #: lib/pychess/Database/gamelist.py:41 msgid "Event" msgstr "" #: lib/pychess/Database/gamelist.py:41 msgid "Site" msgstr "" #: lib/pychess/Database/gamelist.py:41 msgid "Round" msgstr "" #: lib/pychess/Database/gamelist.py:41 msgid "Date" msgstr "" #: lib/pychess/Database/gamelist.py:41 msgid "ECO" msgstr "" #: lib/pychess/Database/gamelist.py:62 msgid "PyChess Game Database" msgstr "" #: lib/pychess/Database/PgnImport.py:188 #, python-format msgid "The game #%s can't be loaded, because of an error parsing FEN" msgstr "" #: lib/pychess/ic/FICSConnection.py:139 msgid "The connection was broken - got \"end of file\" message" msgstr "" #: lib/pychess/ic/FICSConnection.py:140 #, python-format msgid "'%s' is not a registered name" msgstr "" #: lib/pychess/ic/FICSConnection.py:141 msgid "" "The entered password was invalid.\n" "If you forgot your password, go to http://www.freechess.org/password to request a new one over email." msgstr "" #: lib/pychess/ic/FICSConnection.py:145 #, python-format msgid "Sorry '%s' is already logged in" msgstr "" #: lib/pychess/ic/FICSConnection.py:146 #, python-format msgid "'%s' is a registered name. If it is yours, type the password." msgstr "" #: lib/pychess/ic/FICSConnection.py:147 msgid "" "Due to abuse problems, guest connections have been prevented.\n" "You can still register on http://www.freechess.org" msgstr "" #: lib/pychess/ic/FICSConnection.py:166 msgid "Connecting to server" msgstr "" #: lib/pychess/ic/FICSConnection.py:181 msgid "Logging on to server" msgstr "" #: lib/pychess/ic/FICSConnection.py:239 msgid "Setting up environment" msgstr "" #: lib/pychess/ic/FICSObjects.py:35 lib/pychess/ic/FICSObjects.py:47 #, python-format msgid "%(player)s is %(status)s" msgstr "" #: lib/pychess/ic/FICSObjects.py:46 msgid "not playing" msgstr "" #: lib/pychess/ic/FICSObjects.py:54 lib/pychess/ic/ICLounge.py:1136 #: lib/pychess/ic/ICLounge.py:2209 lib/pychess/ic/__init__.py:98 #: lib/pychess/widgets/newGameDialog.py:153 msgid "Blitz" msgstr "" #: lib/pychess/ic/FICSObjects.py:58 lib/pychess/ic/ICLounge.py:1137 #: lib/pychess/ic/ICLounge.py:2209 lib/pychess/ic/__init__.py:100 msgid "Lightning" msgstr "" #: lib/pychess/ic/FICSObjects.py:60 lib/pychess/Variants/atomic.py:15 msgid "Atomic" msgstr "" #: lib/pychess/ic/FICSObjects.py:62 lib/pychess/Variants/bughouse.py:9 msgid "Bughouse" msgstr "" #: lib/pychess/ic/FICSObjects.py:64 lib/pychess/Variants/crazyhouse.py:9 msgid "Crazyhouse" msgstr "" #: lib/pychess/ic/FICSObjects.py:66 lib/pychess/Variants/losers.py:9 msgid "Losers" msgstr "" #: lib/pychess/ic/FICSObjects.py:68 lib/pychess/Variants/suicide.py:12 msgid "Suicide" msgstr "" #: lib/pychess/ic/FICSObjects.py:70 lib/pychess/ic/__init__.py:129 msgid "Wild" msgstr "" #: lib/pychess/ic/FICSObjects.py:117 msgid "Online" msgstr "" #: lib/pychess/ic/FICSObjects.py:118 lib/pychess/ic/FICSObjects.py:143 msgid "Offline" msgstr "" #: lib/pychess/ic/FICSObjects.py:133 msgid "Available" msgstr "" #: lib/pychess/ic/FICSObjects.py:135 msgid "Playing" msgstr "" #: lib/pychess/ic/FICSObjects.py:141 msgid "Idle" msgstr "" #: lib/pychess/ic/FICSObjects.py:145 msgid "Examining" msgstr "" #: lib/pychess/ic/FICSObjects.py:147 msgid "Not Available" msgstr "" #: lib/pychess/ic/FICSObjects.py:149 msgid "Running Simul Match" msgstr "" #: lib/pychess/ic/FICSObjects.py:151 msgid "In Tournament" msgstr "" #: lib/pychess/ic/FICSObjects.py:308 lib/pychess/ic/FICSObjects.py:492 #: lib/pychess/ic/ICLounge.py:2278 msgid "Unrated" msgstr "" #: lib/pychess/ic/FICSObjects.py:491 lib/pychess/ic/ICLounge.py:670 #: lib/pychess/ic/ICLounge.py:1358 lib/pychess/ic/ICLounge.py:1558 #: lib/pychess/ic/ICLounge.py:2113 msgid "Rated" msgstr "" #: lib/pychess/ic/FICSObjects.py:498 lib/pychess/ic/ICLounge.py:2098 #, python-format msgid "%d min" msgstr "" #: lib/pychess/ic/FICSObjects.py:500 #, python-format msgid " + %d sec" msgstr "" #: lib/pychess/ic/FICSObjects.py:517 #, python-format msgid "%(player)s plays %(color)s" msgstr "" #: lib/pychess/ic/FICSObjects.py:519 lib/pychess/ic/ICLounge.py:909 msgid "white" msgstr "" #: lib/pychess/ic/FICSObjects.py:519 lib/pychess/ic/ICLounge.py:909 msgid "black" msgstr "" #: lib/pychess/ic/FICSObjects.py:565 msgid "This is a continuation of an adjourned match" msgstr "" #: lib/pychess/ic/FICSObjects.py:654 msgid "Opponent Rating" msgstr "" #: lib/pychess/ic/FICSObjects.py:656 msgid "Manual Accept" msgstr "" #: lib/pychess/ic/FICSObjects.py:810 msgid "Private" msgstr "" #: lib/pychess/ic/FICSObjects.py:930 lib/pychess/ic/ICLounge.py:527 #: lib/pychess/Savers/epd.py:139 msgid "Unknown" msgstr "" #: lib/pychess/ic/ICLogon.py:159 lib/pychess/ic/ICLogon.py:165 msgid "Connection Error" msgstr "" #: lib/pychess/ic/ICLogon.py:161 msgid "Log on Error" msgstr "" #: lib/pychess/ic/ICLogon.py:163 msgid "Connection was closed" msgstr "" #: lib/pychess/ic/ICLogon.py:169 msgid "Address Error" msgstr "" #: lib/pychess/ic/ICLogon.py:172 msgid "Auto-logout" msgstr "" #: lib/pychess/ic/ICLogon.py:173 msgid "You have been logged out because you were idle more than 60 minutes" msgstr "" #: lib/pychess/ic/ICLounge.py:222 msgid "You have to set kibitz on to see bot messages here." msgstr "" #: lib/pychess/ic/ICLounge.py:241 msgid "" "You may only have 3 outstanding seeks at the same time. If you want to add a" " new seek you must clear your currently active seeks. Clear your seeks?" msgstr "" #: lib/pychess/ic/ICLounge.py:258 msgid "You can't touch this! You are examining a game." msgstr "" #: lib/pychess/ic/ICLounge.py:270 msgid " has declined your offer for a match" msgstr "" #: lib/pychess/ic/ICLounge.py:283 msgid " is censoring you" msgstr "" #: lib/pychess/ic/ICLounge.py:296 msgid " noplay listing you" msgstr "" #: lib/pychess/ic/ICLounge.py:311 msgid " uses a formula not fitting your match request:" msgstr "" #: lib/pychess/ic/ICLounge.py:325 msgid "to manual accept" msgstr "" #: lib/pychess/ic/ICLounge.py:327 msgid "to automatic accept" msgstr "" #: lib/pychess/ic/ICLounge.py:329 msgid "rating range now" msgstr "" #: lib/pychess/ic/ICLounge.py:330 msgid "Seek updated" msgstr "" #: lib/pychess/ic/ICLounge.py:342 msgid "Your seeks have been removed" msgstr "" #: lib/pychess/ic/ICLounge.py:363 msgid " has arrived" msgstr "" #: lib/pychess/ic/ICLounge.py:370 msgid " has departed" msgstr "" #: lib/pychess/ic/ICLounge.py:374 msgid " is present" msgstr "" #: lib/pychess/ic/ICLounge.py:391 sidepanel/chatPanel.py:17 msgid "Chat" msgstr "" #: lib/pychess/ic/ICLounge.py:472 sidepanel/bookPanel.py:366 msgid "Win" msgstr "" #: lib/pychess/ic/ICLounge.py:472 sidepanel/bookPanel.py:360 msgid "Draw" msgstr "" #: lib/pychess/ic/ICLounge.py:472 sidepanel/bookPanel.py:363 msgid "Loss" msgstr "" #: lib/pychess/ic/ICLounge.py:482 msgid "" "On FICS, your \"Wild\" rating encompasses all of the following variants at " "all time controls:\n" msgstr "" #: lib/pychess/ic/ICLounge.py:494 msgid "Sanctions" msgstr "" #: lib/pychess/ic/ICLounge.py:499 msgid "Email" msgstr "" #: lib/pychess/ic/ICLounge.py:504 msgid "Spent" msgstr "" #: lib/pychess/ic/ICLounge.py:506 msgid "online in total" msgstr "" #: lib/pychess/ic/ICLounge.py:512 msgid "Ping" msgstr "" #: lib/pychess/ic/ICLounge.py:517 msgid "Connecting" msgstr "" #: lib/pychess/ic/ICLounge.py:544 msgid "" "You are currently logged in as a guest.\n" "A guest can't play rated games and therefore isn't able to play as many of the types of matches offered as a registered user. To register an account, go to http://www.freechess.org/Register/index.html." msgstr "" #: lib/pychess/ic/ICLounge.py:669 lib/pychess/ic/ICLounge.py:1136 msgid "Name" msgstr "" #: lib/pychess/ic/ICLounge.py:670 lib/pychess/ic/ICLounge.py:1358 #: lib/pychess/ic/ICLounge.py:1558 msgid "Type" msgstr "" #: lib/pychess/ic/ICLounge.py:670 lib/pychess/ic/ICLounge.py:1558 msgid "Clock" msgstr "" #: lib/pychess/ic/ICLounge.py:726 lib/pychess/ic/ICLounge.py:923 #: lib/pychess/Players/Human.py:250 msgid "Accept" msgstr "" #: lib/pychess/ic/ICLounge.py:728 msgid "Assess" msgstr "" #: lib/pychess/ic/ICLounge.py:734 msgid "Archived" msgstr "" #: lib/pychess/ic/ICLounge.py:848 #, python-format msgid "Active seeks: %d" msgstr "" #: lib/pychess/ic/ICLounge.py:897 #, python-format msgid "" " would like to resume your adjourned %(time)s %(gametype)s " "game." msgstr "" #: lib/pychess/ic/ICLounge.py:902 #, python-format msgid "" " challenges you to a %(time)s %(rated)s %(gametype)s game" msgstr "" #: lib/pychess/ic/ICLounge.py:907 #, python-format msgid " where %(player)s plays %(color)s." msgstr "" #: lib/pychess/ic/ICLounge.py:924 lib/pychess/Players/Human.py:251 msgid "Decline" msgstr "" #: lib/pychess/ic/ICLounge.py:1065 msgid " min" msgstr "" #: lib/pychess/ic/ICLounge.py:1137 msgid "Status" msgstr "" #: lib/pychess/ic/ICLounge.py:1203 lib/pychess/ic/ICLounge.py:1233 #, python-format msgid "Players: %d" msgstr "" #: lib/pychess/ic/ICLounge.py:1469 #, python-format msgid "Games running: %d" msgstr "" #: lib/pychess/ic/ICLounge.py:1559 msgid "Date/Time" msgstr "" #: lib/pychess/ic/ICLounge.py:1614 #, python-format msgid "" " with whom you have an adjourned %(timecontrol)s %(gametype)s " "game is online." msgstr "" #: lib/pychess/ic/ICLounge.py:1635 msgid "Request Continuation" msgstr "" #: lib/pychess/ic/ICLounge.py:1637 msgid "Examine Adjourned Game" msgstr "" #: lib/pychess/ic/ICLounge.py:1965 msgid "" "The chain button is disabled because you are logged in as a guest. Guests " "can't establish ratings, and the chain button's state has no effect when " "there is no rating to which to tie \"Opponent Strength\" to" msgstr "" #: lib/pychess/ic/ICLounge.py:2006 msgid "Challenge: " msgstr "" #: lib/pychess/ic/ICLounge.py:2044 msgid "If set you can refuse players accepting your seek" msgstr "" #: lib/pychess/ic/ICLounge.py:2048 lib/pychess/ic/ICLounge.py:2051 msgid "This option is not applicable because you're challenging a player" msgstr "" #: lib/pychess/ic/ICLounge.py:2064 msgid "Edit Seek: " msgstr "" #: lib/pychess/ic/ICLounge.py:2095 #, python-format msgid "%(minutes)d min + %(gain)d sec/move" msgstr "" #: lib/pychess/ic/ICLounge.py:2116 msgid "Manual" msgstr "" #: lib/pychess/ic/ICLounge.py:2256 msgid "Any strength" msgstr "" #: lib/pychess/ic/ICLounge.py:2308 msgid "You can't play rated games because you are logged in as a guest" msgstr "" #: lib/pychess/ic/ICLounge.py:2312 msgid "You can't play rated games because \"Untimed\" is checked, " msgstr "" #: lib/pychess/ic/ICLounge.py:2313 msgid "and on FICS, untimed games can't be rated" msgstr "" #: lib/pychess/ic/ICLounge.py:2317 msgid "This option is not available because you're challenging a guest, " msgstr "" #: lib/pychess/ic/ICLounge.py:2318 msgid "and guests can't play rated games" msgstr "" #: lib/pychess/ic/ICLounge.py:2332 lib/pychess/Variants/shuffle.py:16 #: lib/pychess/widgets/newGameDialog.py:266 msgid "Shuffle" msgstr "" #: lib/pychess/ic/ICLounge.py:2333 lib/pychess/widgets/newGameDialog.py:267 msgid "Other (standard rules)" msgstr "" #: lib/pychess/ic/ICLounge.py:2334 lib/pychess/widgets/newGameDialog.py:268 msgid "Other (non standard rules)" msgstr "" #: lib/pychess/ic/ICLounge.py:2421 msgid "You can't select a variant because \"Untimed\" is checked, " msgstr "" #: lib/pychess/ic/ICLounge.py:2422 msgid "and on FICS, untimed games have to be normal chess rules" msgstr "" #: lib/pychess/ic/ICLounge.py:2454 msgid "Change Tolerance" msgstr "" #: lib/pychess/ic/__init__.py:102 msgid "Examined" msgstr "" #: lib/pychess/ic/__init__.py:103 msgid "Other" msgstr "" #: lib/pychess/ic/__init__.py:182 msgid "Administrator" msgstr "" #: lib/pychess/ic/__init__.py:182 msgid "Blindfold Account" msgstr "" #: lib/pychess/ic/__init__.py:182 msgid "Computer" msgstr "" #: lib/pychess/ic/__init__.py:183 msgid "Team Account" msgstr "" #: lib/pychess/ic/__init__.py:183 msgid "Unregistered" msgstr "" #: lib/pychess/ic/__init__.py:183 msgid "Chess Advisor" msgstr "" #: lib/pychess/ic/__init__.py:184 msgid "Service Representative" msgstr "" #: lib/pychess/ic/__init__.py:184 msgid "Tournament Director" msgstr "" #: lib/pychess/ic/__init__.py:184 msgid "Mamer Manager" msgstr "" #: lib/pychess/ic/__init__.py:185 msgid "Grand Master" msgstr "" #: lib/pychess/ic/__init__.py:185 msgid "International Master" msgstr "" #: lib/pychess/ic/__init__.py:185 msgid "FIDE Master" msgstr "" #: lib/pychess/ic/__init__.py:186 msgid "Woman Grand Master" msgstr "" #: lib/pychess/ic/__init__.py:186 msgid "Woman International Master" msgstr "" #: lib/pychess/ic/__init__.py:186 msgid "Woman FIDE Master" msgstr "" #: lib/pychess/ic/__init__.py:187 msgid "Dummy Account" msgstr "" #: lib/pychess/ic/__init__.py:191 msgid "*" msgstr "" #: lib/pychess/ic/__init__.py:191 lib/pychess/Utils/repr.py:14 msgid "B" msgstr "" #: lib/pychess/ic/__init__.py:191 msgid "C" msgstr "" #: lib/pychess/ic/__init__.py:192 msgid "T" msgstr "" #: lib/pychess/ic/__init__.py:192 msgid "U" msgstr "" #: lib/pychess/ic/__init__.py:192 msgid "CA" msgstr "" #: lib/pychess/ic/__init__.py:193 msgid "SR" msgstr "" #: lib/pychess/ic/__init__.py:193 msgid "TD" msgstr "" #: lib/pychess/ic/__init__.py:193 msgid "TM" msgstr "" #: lib/pychess/ic/__init__.py:194 msgid "GM" msgstr "" #: lib/pychess/ic/__init__.py:194 msgid "IM" msgstr "" #: lib/pychess/ic/__init__.py:194 msgid "FM" msgstr "" #: lib/pychess/ic/__init__.py:195 msgid "WGM" msgstr "" #: lib/pychess/ic/__init__.py:195 msgid "WIM" msgstr "" #: lib/pychess/ic/__init__.py:195 msgid "WFM" msgstr "" #: lib/pychess/ic/__init__.py:195 msgid "D" msgstr "" #: lib/pychess/ic/__init__.py:195 msgid "H" msgstr "" #: lib/pychess/ic/__init__.py:195 msgid "CM" msgstr "" #: lib/pychess/ic/__init__.py:195 msgid "FA" msgstr "" #: lib/pychess/ic/__init__.py:195 msgid "NM" msgstr "" #: lib/pychess/Players/CECPEngine.py:857 #, python-format msgid "The engine %s reports an error:" msgstr "" #: lib/pychess/Players/Human.py:20 msgid "Your opponent has offered you a draw." msgstr "" #: lib/pychess/Players/Human.py:21 msgid "" "Your opponent has offered you a draw. If you accept this offer, the game " "will end with a score of 1/2 - 1/2." msgstr "" #: lib/pychess/Players/Human.py:23 msgid "Your opponent wants to abort the game." msgstr "" #: lib/pychess/Players/Human.py:24 msgid "" "Your opponent has asked that the game be aborted. If you accept this offer, " "the game will end with no rating change." msgstr "" #: lib/pychess/Players/Human.py:26 msgid "Your opponent wants to adjourn the game." msgstr "" #: lib/pychess/Players/Human.py:27 msgid "" "Your opponent has asked that the game be adjourned. If you accept this " "offer, the game will be adjourned and you can resume it later (when your " "opponent is online and both players agree to resume)." msgstr "" #: lib/pychess/Players/Human.py:29 #, python-format msgid "Your opponent wants to undo %s move(s)." msgstr "" #: lib/pychess/Players/Human.py:30 #, python-format msgid "" "Your opponent has asked that the last %s move(s) be undone. If you accept " "this offer, the game will continue from the earlier position." msgstr "" #: lib/pychess/Players/Human.py:32 msgid "Your opponent wants to pause the game." msgstr "" #: lib/pychess/Players/Human.py:33 msgid "" "Your opponent has asked that the game be paused. If you accept this offer, " "the game clock will be paused until both players agree to resume the game." msgstr "" #: lib/pychess/Players/Human.py:35 msgid "Your opponent wants to resume the game." msgstr "" #: lib/pychess/Players/Human.py:36 msgid "" "Your opponent has asked that the game be resumed. If you accept this offer, " "the game clock will continue from where it was paused." msgstr "" #: lib/pychess/Players/Human.py:40 msgid "The resignation" msgstr "" #: lib/pychess/Players/Human.py:41 msgid "The flag call" msgstr "" #: lib/pychess/Players/Human.py:42 msgid "The draw offer" msgstr "" #: lib/pychess/Players/Human.py:43 msgid "The abort offer" msgstr "" #: lib/pychess/Players/Human.py:44 msgid "The adjourn offer" msgstr "" #: lib/pychess/Players/Human.py:45 msgid "The pause offer" msgstr "" #: lib/pychess/Players/Human.py:46 msgid "The resume offer" msgstr "" #: lib/pychess/Players/Human.py:47 msgid "The offer to switch sides" msgstr "" #: lib/pychess/Players/Human.py:48 msgid "The takeback offer" msgstr "" #: lib/pychess/Players/Human.py:52 msgid "resign" msgstr "" #: lib/pychess/Players/Human.py:53 msgid "call your opponents flag" msgstr "" #: lib/pychess/Players/Human.py:54 msgid "offer a draw" msgstr "" #: lib/pychess/Players/Human.py:55 msgid "offer an abort" msgstr "" #: lib/pychess/Players/Human.py:56 msgid "offer to adjourn" msgstr "" #: lib/pychess/Players/Human.py:57 msgid "offer a pause" msgstr "" #: lib/pychess/Players/Human.py:58 msgid "offer to resume" msgstr "" #: lib/pychess/Players/Human.py:59 msgid "offer to switch sides" msgstr "" #: lib/pychess/Players/Human.py:60 msgid "offer a takeback" msgstr "" #: lib/pychess/Players/Human.py:61 msgid "ask your opponent to move" msgstr "" #: lib/pychess/Players/Human.py:66 msgid "Your opponent is not out of time." msgstr "" #: lib/pychess/Players/Human.py:68 msgid "The clock hasn't been started yet." msgstr "" #: lib/pychess/Players/Human.py:70 msgid "You can't switch colors during the game." msgstr "" #: lib/pychess/Players/Human.py:72 msgid "You have tried to undo too many moves." msgstr "" #: lib/pychess/Players/Human.py:180 msgid "Your opponent asks you to hurry!" msgstr "" #: lib/pychess/Players/Human.py:181 msgid "" "Generally this means nothing, as the game is time-based, but if you want to " "please your opponent, perhaps you should get going." msgstr "" #: lib/pychess/Players/Human.py:259 #, python-format msgid "%s was declined by your opponent" msgstr "" #: lib/pychess/Players/Human.py:260 #, python-format msgid "Resend %s?" msgstr "" #: lib/pychess/Players/Human.py:267 msgid "Resend" msgstr "" #: lib/pychess/Players/Human.py:275 #, python-format msgid "%s was withdrawn by your opponent" msgstr "" #: lib/pychess/Players/Human.py:276 msgid "Your opponent seems to have changed their mind." msgstr "" #: lib/pychess/Players/Human.py:290 #, python-format msgid "Unable to accept %s" msgstr "" #: lib/pychess/Players/Human.py:291 msgid "Probably because it has been withdrawn." msgstr "" #: lib/pychess/Players/Human.py:298 #, python-format msgid "%s returns an error" msgstr "" #: lib/pychess/Savers/chessalpha2.py:12 msgid "Chess Alpha 2 Diagram" msgstr "" #: lib/pychess/Savers/chesspastebin.py:39 msgid "Game shared at " msgstr "" #: lib/pychess/Savers/chesspastebin.py:41 msgid "(Link is available on clipboard.)" msgstr "" #: lib/pychess/Savers/database.py:19 msgid "PyChess database" msgstr "" #: lib/pychess/Savers/epd.py:12 msgid "Chess Position" msgstr "" #: lib/pychess/Savers/fen.py:12 msgid "Simple Chess Position" msgstr "" #: lib/pychess/Savers/fen.py:44 lib/pychess/Savers/pgn.py:329 msgid "The game can't be loaded, because of an error parsing FEN" msgstr "" #: lib/pychess/Savers/pgnbase.py:100 #, python-format msgid "" "The game can't be read to end, because of an error parsing move %(moveno)s " "'%(notation)s'." msgstr "" #: lib/pychess/Savers/pgnbase.py:102 #, python-format msgid "The move failed because %s." msgstr "" #: lib/pychess/Savers/pgnbase.py:110 #, python-format msgid "Error parsing move %(moveno)s %(mstr)s" msgstr "" #: lib/pychess/Savers/pgn.py:28 msgid "Chess Game" msgstr "" #: lib/pychess/Savers/pgn.py:362 msgid "Invalid move." msgstr "" #: lib/pychess/Savers/png.py:15 msgid "Png image" msgstr "" #: lib/pychess/System/ping.py:31 msgid "Destination Host Unreachable" msgstr "" #: lib/pychess/System/ping.py:74 msgid "Died" msgstr "" #: lib/pychess/Utils/GameModel.py:147 msgid "Local Event" msgstr "" #: lib/pychess/Utils/GameModel.py:148 msgid "Local Site" msgstr "" #: lib/pychess/Utils/repr.py:12 msgid "Pawn" msgstr "" #: lib/pychess/Utils/repr.py:14 msgid "P" msgstr "" #: lib/pychess/Utils/repr.py:14 msgid "N" msgstr "" #: lib/pychess/Utils/repr.py:14 msgid "R" msgstr "" #: lib/pychess/Utils/repr.py:14 msgid "Q" msgstr "" #: lib/pychess/Utils/repr.py:14 msgid "K" msgstr "" #: lib/pychess/Utils/repr.py:17 msgid "The game ended in a draw" msgstr "" #: lib/pychess/Utils/repr.py:18 #, python-format msgid "%(white)s won the game" msgstr "" #: lib/pychess/Utils/repr.py:19 #, python-format msgid "%(black)s won the game" msgstr "" #: lib/pychess/Utils/repr.py:20 msgid "The game has been killed" msgstr "" #: lib/pychess/Utils/repr.py:21 msgid "The game has been adjourned" msgstr "" #: lib/pychess/Utils/repr.py:22 msgid "The game has been aborted" msgstr "" #: lib/pychess/Utils/repr.py:26 msgid "Because neither player has sufficient material to mate" msgstr "" #: lib/pychess/Utils/repr.py:27 msgid "Because the same position was repeated three times in a row" msgstr "" #: lib/pychess/Utils/repr.py:28 msgid "Because the last 50 moves brought nothing new" msgstr "" #: lib/pychess/Utils/repr.py:29 msgid "Because both players ran out of time" msgstr "" #: lib/pychess/Utils/repr.py:30 #, python-format msgid "Because %(mover)s stalemated" msgstr "" #: lib/pychess/Utils/repr.py:31 msgid "Because both players agreed to a draw" msgstr "" #: lib/pychess/Utils/repr.py:32 lib/pychess/Utils/repr.py:42 msgid "Because of adjudication by an admin" msgstr "" #: lib/pychess/Utils/repr.py:33 msgid "Because the game exceed the max length" msgstr "" #: lib/pychess/Utils/repr.py:34 #, python-format msgid "" "Because %(white)s ran out of time and %(black)s has insufficient material to" " mate" msgstr "" #: lib/pychess/Utils/repr.py:35 #, python-format msgid "" "Because %(black)s ran out of time and %(white)s has insufficient material to" " mate" msgstr "" #: lib/pychess/Utils/repr.py:36 msgid "Because both players have the same amount of pieces" msgstr "" #: lib/pychess/Utils/repr.py:38 #, python-format msgid "Because %(loser)s resigned" msgstr "" #: lib/pychess/Utils/repr.py:39 #, python-format msgid "Because %(loser)s ran out of time" msgstr "" #: lib/pychess/Utils/repr.py:40 #, python-format msgid "Because %(loser)s was checkmated" msgstr "" #: lib/pychess/Utils/repr.py:41 #, python-format msgid "Because %(loser)s disconnected" msgstr "" #: lib/pychess/Utils/repr.py:43 #, python-format msgid "Because %(winner)s has fewer pieces" msgstr "" #: lib/pychess/Utils/repr.py:44 #, python-format msgid "Because %(winner)s lost all pieces" msgstr "" #: lib/pychess/Utils/repr.py:45 #, python-format msgid "Because %(loser)s king exploded" msgstr "" #: lib/pychess/Utils/repr.py:46 #, python-format msgid "Because %(winner)s king reached the center" msgstr "" #: lib/pychess/Utils/repr.py:47 #, python-format msgid "Because %(winner)s was giving check 3 times" msgstr "" #: lib/pychess/Utils/repr.py:49 msgid "Because a player lost connection" msgstr "" #: lib/pychess/Utils/repr.py:50 msgid "Because both players agreed to an adjournment" msgstr "" #: lib/pychess/Utils/repr.py:51 msgid "Because the server was shut down" msgstr "" #: lib/pychess/Utils/repr.py:52 msgid "" "Because a player lost connection and the other player requested adjournment" msgstr "" #: lib/pychess/Utils/repr.py:53 #, python-format msgid "" "Because %(black)s lost connection to the server and %(white)s requested " "adjournment" msgstr "" #: lib/pychess/Utils/repr.py:54 #, python-format msgid "" "Because %(white)s lost connection to the server and %(black)s requested " "adjournment" msgstr "" #: lib/pychess/Utils/repr.py:55 #, python-format msgid "Because %(white)s lost connection to the server" msgstr "" #: lib/pychess/Utils/repr.py:56 #, python-format msgid "Because %(black)s lost connection to the server" msgstr "" #: lib/pychess/Utils/repr.py:58 msgid "Because of adjudication by an admin. No rating changes have occurred." msgstr "" #: lib/pychess/Utils/repr.py:59 msgid "" "Because both players agreed to abort the game. No rating changes have " "occurred." msgstr "" #: lib/pychess/Utils/repr.py:60 msgid "Because of courtesy by a player. No rating changes have occurred." msgstr "" #: lib/pychess/Utils/repr.py:61 msgid "" "Because a player aborted the game. Either player can abort the game without " "the other's consent before the second move. No rating changes have occurred." msgstr "" #: lib/pychess/Utils/repr.py:62 msgid "" "Because a player disconnected and there are too few moves to warrant " "adjournment. No rating changes have occurred." msgstr "" #: lib/pychess/Utils/repr.py:63 msgid "Because the server was shut down. No rating changes have occurred." msgstr "" #: lib/pychess/Utils/repr.py:65 #, python-format msgid "Because the %(white)s engine died" msgstr "" #: lib/pychess/Utils/repr.py:66 #, python-format msgid "Because the %(black)s engine died" msgstr "" #: lib/pychess/Utils/repr.py:67 msgid "Because the connection to the server was lost" msgstr "" #: lib/pychess/Utils/repr.py:68 msgid "The reason is unknown" msgstr "" #: lib/pychess/Utils/TimeModel.py:229 msgid "min" msgstr "" #: lib/pychess/Utils/TimeModel.py:231 msgid "sec" msgstr "" #: lib/pychess/Variants/asean.py:12 msgid "" "ASEAN: http://www.ncf-" "phil.org/downloadables/2014/May/Asean_chess/Laws_of_ASEAN_Chess_2011_Nov_26.doc" msgstr "" #: lib/pychess/Variants/asean.py:13 msgid "ASEAN" msgstr "" #: lib/pychess/Variants/asean.py:33 msgid "Makruk: http://en.wikipedia.org/wiki/Makruk" msgstr "" #: lib/pychess/Variants/asean.py:34 msgid "Makruk" msgstr "" #: lib/pychess/Variants/asean.py:60 msgid "Cambodian: http://www.khmerinstitute.org/culture/ok.html" msgstr "" #: lib/pychess/Variants/asean.py:61 msgid "Cambodian" msgstr "" #: lib/pychess/Variants/asean.py:86 msgid "" "Ai-Wok: http://www.open-" "aurec.com/wbforum/viewtopic.php?p=199364&sid=20963a1de2c164050de019e5ed6bf7c4#p199364" msgstr "" #: lib/pychess/Variants/asean.py:87 msgid "Ai-Wok" msgstr "" #: lib/pychess/Variants/asean.py:111 msgid "Sittuyin: http://en.wikipedia.org/wiki/Sittuyin" msgstr "" #: lib/pychess/Variants/asean.py:112 msgid "Sittuyin" msgstr "" #: lib/pychess/Variants/asymmetricrandom.py:12 msgid "" "FICS wild/4: http://www.freechess.org/Help/HelpFiles/wild.html\n" "* Randomly chosen pieces (two queens or three rooks possible)\n" "* Exactly one king of each color\n" "* Pieces placed randomly behind the pawns, SUBJECT TO THE CONSTRAINT THAT THE BISHOPS ARE BALANCED\n" "* No castling\n" "* Black's arrangement DOES NOT mirrors white's" msgstr "" #: lib/pychess/Variants/asymmetricrandom.py:18 msgid "Asymmetric Random" msgstr "" #: lib/pychess/Variants/atomic.py:14 msgid "FICS atomic: http://www.freechess.org/Help/HelpFiles/atomic.html" msgstr "" #: lib/pychess/Variants/blindfold.py:7 msgid "" "Classic chess rules with hidden figurines\n" "http://en.wikipedia.org/wiki/Blindfold_chess" msgstr "" #: lib/pychess/Variants/blindfold.py:9 #: lib/pychess/widgets/newGameDialog.py:264 msgid "Blindfold" msgstr "" #: lib/pychess/Variants/blindfold.py:18 msgid "" "Classic chess rules with hidden pawns\n" "http://en.wikipedia.org/wiki/Blindfold_chess" msgstr "" #: lib/pychess/Variants/blindfold.py:20 msgid "Hidden pawns" msgstr "" #: lib/pychess/Variants/blindfold.py:29 msgid "" "Classic chess rules with hidden pieces\n" "http://en.wikipedia.org/wiki/Blindfold_chess" msgstr "" #: lib/pychess/Variants/blindfold.py:31 msgid "Hidden pieces" msgstr "" #: lib/pychess/Variants/blindfold.py:40 msgid "" "Classic chess rules with all pieces white\n" "http://en.wikipedia.org/wiki/Blindfold_chess" msgstr "" #: lib/pychess/Variants/blindfold.py:42 msgid "All white" msgstr "" #: lib/pychess/Variants/bughouse.py:8 msgid "FICS bughouse: http://www.freechess.org/Help/HelpFiles/bughouse.html" msgstr "" #: lib/pychess/Variants/corner.py:12 msgid "" "http://brainking.com/en/GameRules?tp=2\n" "* Placement of the pieces on the 1st and 8th row are randomized\n" "* The king is in the right hand corner\n" "* Bishops must start on opposite color squares\n" "* Black's starting position is obtained by rotating white's position 180 degrees around the board's center\n" "* No castling" msgstr "" #: lib/pychess/Variants/corner.py:18 msgid "Corner" msgstr "" #: lib/pychess/Variants/crazyhouse.py:8 msgid "" "FICS crazyhouse: http://www.freechess.org/Help/HelpFiles/crazyhouse.html" msgstr "" #: lib/pychess/Variants/euroshogi.py:9 msgid "EuroShogi: http://en.wikipedia.org/wiki/EuroShogi" msgstr "" #: lib/pychess/Variants/euroshogi.py:10 msgid "EuroShogi" msgstr "" #: lib/pychess/Variants/fischerandom.py:18 msgid "" "http://en.wikipedia.org/wiki/Chess960\n" "FICS wild/fr: http://www.freechess.org/Help/HelpFiles/wild.html" msgstr "" #: lib/pychess/Variants/fischerandom.py:20 msgid "Fischer Random" msgstr "" #: lib/pychess/Variants/kingofthehill.py:8 msgid "" "Bringing your king legally to the center (e4, d4, e5, d5) instantly wins the game!\n" "Normal rules apply in other cases and checkmate also ends the game." msgstr "" #: lib/pychess/Variants/kingofthehill.py:10 msgid "King of the hill" msgstr "" #: lib/pychess/Variants/knightodds.py:8 msgid "One player starts with one less knight piece" msgstr "" #: lib/pychess/Variants/knightodds.py:9 msgid "Knight odds" msgstr "" #: lib/pychess/Variants/losers.py:8 msgid "FICS losers: http://www.freechess.org/Help/HelpFiles/losers_chess.html" msgstr "" #: lib/pychess/Variants/normal.py:4 msgid "" "Classic chess rules\n" "http://en.wikipedia.org/wiki/Chess" msgstr "" #: lib/pychess/Variants/normal.py:6 lib/pychess/widgets/newGameDialog.py:157 msgid "Normal" msgstr "" #: lib/pychess/Variants/pawnodds.py:8 msgid "One player starts with one less pawn piece" msgstr "" #: lib/pychess/Variants/pawnodds.py:9 msgid "Pawn odds" msgstr "" #: lib/pychess/Variants/pawnspassed.py:11 msgid "" "FICS wild/8a: http://www.freechess.org/Help/HelpFiles/wild.html\n" "White pawns start on 5th rank and black pawns on the 4th rank" msgstr "" #: lib/pychess/Variants/pawnspassed.py:13 msgid "Pawns Passed" msgstr "" #: lib/pychess/Variants/pawnspushed.py:10 msgid "" "FICS wild/8: http://www.freechess.org/Help/HelpFiles/wild.html\n" "Pawns start on 4th and 5th ranks rather than 2nd and 7th" msgstr "" #: lib/pychess/Variants/pawnspushed.py:12 msgid "Pawns Pushed" msgstr "" #: lib/pychess/Variants/queenodds.py:8 msgid "One player starts with one less queen piece" msgstr "" #: lib/pychess/Variants/queenodds.py:9 msgid "Queen odds" msgstr "" #: lib/pychess/Variants/randomchess.py:11 msgid "" "FICS wild/3: http://www.freechess.org/Help/HelpFiles/wild.html\n" "* Randomly chosen pieces (two queens or three rooks possible)\n" "* Exactly one king of each color\n" "* Pieces placed randomly behind the pawns\n" "* No castling\n" "* Black's arrangement mirrors white's" msgstr "" #: lib/pychess/Variants/randomchess.py:17 #: lib/pychess/widgets/TaskerManager.py:155 msgid "Random" msgstr "" #: lib/pychess/Variants/rookodds.py:8 msgid "One player starts with one less rook piece" msgstr "" #: lib/pychess/Variants/rookodds.py:9 msgid "Rook odds" msgstr "" #: lib/pychess/Variants/shuffle.py:11 msgid "" "xboard nocastle: http://home.hccnet.nl/h.g.muller/engine-intf.html#8\n" "FICS wild/2: http://www.freechess.org/Help/HelpFiles/wild.html\n" "* Random arrangement of the pieces behind the pawns\n" "* No castling\n" "* Black's arrangement mirrors white's" msgstr "" #: lib/pychess/Variants/suicide.py:11 msgid "" "FICS suicide: http://www.freechess.org/Help/HelpFiles/suicide_chess.html" msgstr "" #: lib/pychess/Variants/theban.py:10 msgid "" "Variant developed by Kai Laskos: " "http://talkchess.com/forum/viewtopic.php?t=40990" msgstr "" #: lib/pychess/Variants/theban.py:11 msgid "Theban" msgstr "" #: lib/pychess/Variants/threecheck.py:10 msgid "Win by giving check 3 times" msgstr "" #: lib/pychess/Variants/threecheck.py:11 msgid "Three-check" msgstr "" #: lib/pychess/Variants/upsidedown.py:10 msgid "" "FICS wild/5: http://www.freechess.org/Help/HelpFiles/wild.html\n" "http://en.wikipedia.org/wiki/Chess_variant#Chess_with_different_starting_positions\n" "Pawns start on their 7th rank rather than their 2nd rank!" msgstr "" #: lib/pychess/Variants/upsidedown.py:13 msgid "Upside Down" msgstr "" #: lib/pychess/Variants/wildcastle.py:10 msgid "" "xboard wildcastle http://home.hccnet.nl/h.g.muller/engine-intf.html#8\n" "FICS wild/0: http://www.freechess.org/Help/HelpFiles/wild.html\n" "* White has the typical set-up at the start.\n" "* Black's pieces are the same, except that the King and Queen are reversed,\n" "* so they are not on the same files as White's King and Queen.\n" "* Castling is done similarly to normal chess:\n" "* o-o-o indicates long castling and o-o short castling." msgstr "" #: lib/pychess/Variants/wildcastle.py:17 msgid "Wildcastle" msgstr "" #: lib/pychess/Variants/wildcastleshuffle.py:11 msgid "" "xboard wildcastle http://home.hccnet.nl/h.g.muller/engine-intf.html#8\n" "FICS wild/1: http://www.freechess.org/Help/HelpFiles/wild.html\n" "* In this variant both sides have the same set of pieces as in normal chess.\n" "* The white king starts on d1 or e1 and the black king starts on d8 or e8,\n" "* and the rooks are in their usual positions.\n" "* Bishops are always on opposite colors.\n" "* Subject to these constraints the position of the pieces on their first ranks is random.\n" "* Castling is done similarly to normal chess:\n" "* o-o-o indicates long castling and o-o short castling." msgstr "" #: lib/pychess/Variants/wildcastleshuffle.py:20 msgid "Wildcastle shuffle" msgstr "" #: lib/pychess/widgets/analyzegameDialog.py:85 msgid "Game analyzing in progress..." msgstr "" #: lib/pychess/widgets/analyzegameDialog.py:86 msgid "Do you want to abort it?" msgstr "" #: lib/pychess/widgets/analyzegameDialog.py:95 #: lib/pychess/widgets/gamewidget.py:202 lib/pychess/widgets/gamewidget.py:320 msgid "Abort" msgstr "" #: lib/pychess/widgets/ChatView.py:125 msgid "Observers" msgstr "" #: lib/pychess/widgets/ChatWindow.py:222 msgid "You have opened no conversations yet" msgstr "" #: lib/pychess/widgets/ChatWindow.py:254 msgid "Only registered users may talk to this channel" msgstr "" #: lib/pychess/widgets/ChatWindow.py:312 msgid "No conversation's selected" msgstr "" #: lib/pychess/widgets/ChatWindow.py:350 msgid "Loading player data" msgstr "" #: lib/pychess/widgets/ChatWindow.py:400 msgid "Receiving list of players" msgstr "" #: lib/pychess/widgets/ChatWindow.py:518 msgid "Friends" msgstr "" #: lib/pychess/widgets/ChatWindow.py:529 msgid "Admin" msgstr "" #: lib/pychess/widgets/ChatWindow.py:540 msgid "More channels" msgstr "" #: lib/pychess/widgets/ChatWindow.py:548 msgid "More players" msgstr "" #: lib/pychess/widgets/ChatWindow.py:558 msgid "Computers" msgstr "" #: lib/pychess/widgets/ChatWindow.py:568 msgid "BlindFold" msgstr "" #: lib/pychess/widgets/ChatWindow.py:578 msgid "Guests" msgstr "" #: lib/pychess/widgets/ChatWindow.py:805 msgid "Conversations" msgstr "" #: lib/pychess/widgets/ChatWindow.py:807 msgid "Conversation info" msgstr "" #: lib/pychess/widgets/enginesDialog.py:152 msgid "Select engine" msgstr "" #: lib/pychess/widgets/enginesDialog.py:156 msgid "Executable files" msgstr "" #: lib/pychess/widgets/enginesDialog.py:176 #: lib/pychess/widgets/enginesDialog.py:210 #: lib/pychess/widgets/enginesDialog.py:235 #, python-format msgid "Unable to add %s" msgstr "" #: lib/pychess/widgets/enginesDialog.py:177 msgid "wine not installed" msgstr "" #: lib/pychess/widgets/enginesDialog.py:211 #: lib/pychess/widgets/enginesDialog.py:236 msgid "There is something wrong with this executable" msgstr "" #: lib/pychess/widgets/enginesDialog.py:266 msgid "Select working directory" msgstr "" #: lib/pychess/widgets/gamenanny.py:115 #, python-format msgid " invalid engine move: %s" msgstr "" #: lib/pychess/widgets/gamenanny.py:134 msgid "Offer Rematch" msgstr "" #: lib/pychess/widgets/gamenanny.py:136 lib/pychess/widgets/gamenanny.py:147 #, python-format msgid "Observe %s" msgstr "" #: lib/pychess/widgets/gamenanny.py:168 msgid "Play Rematch" msgstr "" #: lib/pychess/widgets/gamenanny.py:171 msgid "Undo one move" msgstr "" #: lib/pychess/widgets/gamenanny.py:173 msgid "Undo two moves" msgstr "" #: lib/pychess/widgets/gamenanny.py:203 msgid "The game is paused" msgstr "" #: lib/pychess/widgets/gamenanny.py:221 lib/pychess/widgets/gamenanny.py:222 msgid "Loaded game" msgstr "" #: lib/pychess/widgets/gamenanny.py:228 msgid "Saved game" msgstr "" #: lib/pychess/widgets/gamenanny.py:232 msgid "Analyzer started" msgstr "" #: lib/pychess/widgets/gamenanny.py:281 msgid "You sent an abort offer" msgstr "" #: lib/pychess/widgets/gamenanny.py:283 msgid "You sent an adjournment offer" msgstr "" #: lib/pychess/widgets/gamenanny.py:285 msgid "You sent a draw offer" msgstr "" #: lib/pychess/widgets/gamenanny.py:287 msgid "You sent a pause offer" msgstr "" #: lib/pychess/widgets/gamenanny.py:289 msgid "You sent a resume offer" msgstr "" #: lib/pychess/widgets/gamenanny.py:291 msgid "You sent an undo offer" msgstr "" #: lib/pychess/widgets/gamenanny.py:293 msgid "You asked your opponent to move" msgstr "" #: lib/pychess/widgets/gamenanny.py:305 #, python-format msgid "Engine, %s, has died" msgstr "" #: lib/pychess/widgets/gamenanny.py:306 msgid "" "PyChess has lost connection to the engine, probably because it has died.\n" "\n" "You can try to start a new game with the engine, or try to play against another one." msgstr "" #: lib/pychess/widgets/gamewidget.py:204 msgid "" "This game can be automatically aborted without rating loss because there has" " not yet been two moves made" msgstr "" #: lib/pychess/widgets/gamewidget.py:206 msgid "Offer Abort" msgstr "" #: lib/pychess/widgets/gamewidget.py:208 msgid "" "Your opponent must agree to abort the game because there has been two or " "more moves made" msgstr "" #: lib/pychess/widgets/gamewidget.py:226 msgid "This game can not be adjourned because one or both players are guests" msgstr "" #: lib/pychess/widgets/gamewidget.py:243 msgid "Claim Draw" msgstr "" #: lib/pychess/widgets/gamewidget.py:325 msgid "Pause" msgstr "" #: lib/pychess/widgets/gamewidget.py:326 msgid "Resume" msgstr "" #: lib/pychess/widgets/gamewidget.py:328 msgid "Offer Pause" msgstr "" #: lib/pychess/widgets/gamewidget.py:329 msgid "Offer Resume" msgstr "" #: lib/pychess/widgets/gamewidget.py:333 msgid "Undo" msgstr "" #: lib/pychess/widgets/gamewidget.py:335 msgid "Offer Undo" msgstr "" #: lib/pychess/widgets/gamewidget.py:550 msgid " has lagged for 30 seconds" msgstr "" #: lib/pychess/widgets/gamewidget.py:566 msgid " is lagging heavily but hasn't disconnected" msgstr "" #: lib/pychess/widgets/gamewidget.py:567 msgid "Continue to wait for opponent, or try to adjourn the game?" msgstr "" #: lib/pychess/widgets/gamewidget.py:575 msgid "Wait" msgstr "" #: lib/pychess/widgets/gamewidget.py:576 msgid "Adjourn" msgstr "" #: lib/pychess/widgets/gamewidget.py:648 msgid "Jump to initial position" msgstr "" #: lib/pychess/widgets/gamewidget.py:653 msgid "Step back one move" msgstr "" #: lib/pychess/widgets/gamewidget.py:658 msgid "Go back to the main line" msgstr "" #: lib/pychess/widgets/gamewidget.py:664 msgid "Step forward one move" msgstr "" #: lib/pychess/widgets/gamewidget.py:669 msgid "Jump to latest position" msgstr "" #: lib/pychess/widgets/gamewidget.py:903 msgid "PyChess was unable to load your panel settings" msgstr "" #: lib/pychess/widgets/gamewidget.py:904 msgid "" "Your panel settings have been reset. If this problem repeats, you should " "report it to the developers" msgstr "" #: lib/pychess/widgets/ionest.py:67 lib/pychess/widgets/newGameDialog.py:389 #: lib/pychess/widgets/TaskerManager.py:210 msgid "You" msgstr "" #: lib/pychess/widgets/ionest.py:70 lib/pychess/widgets/newGameDialog.py:390 #: lib/pychess/widgets/preferencesDialog.py:61 #: lib/pychess/widgets/TaskerManager.py:213 msgid "Guest" msgstr "" #: lib/pychess/widgets/ionest.py:93 msgid "Error loading game" msgstr "" #: lib/pychess/widgets/ionest.py:127 lib/pychess/widgets/newGameDialog.py:480 msgid "Open Game" msgstr "" #: lib/pychess/widgets/ionest.py:137 msgid "All Files" msgstr "" #: lib/pychess/widgets/ionest.py:140 msgid "Detect type automatically" msgstr "" #: lib/pychess/widgets/ionest.py:146 msgid "All Chess Files" msgstr "" #: lib/pychess/widgets/ionest.py:228 msgid "Save Game" msgstr "" #: lib/pychess/widgets/ionest.py:228 msgid "Export position" msgstr "" #: lib/pychess/widgets/ionest.py:232 lib/pychess/widgets/ionest.py:360 msgid "vs." msgstr "" #: lib/pychess/widgets/ionest.py:249 #, python-format msgid "Unknown file type '%s'" msgstr "" #: lib/pychess/widgets/ionest.py:250 #, python-format msgid "" "Was unable to save '%(uri)s' as PyChess doesn't know the format " "'%(ending)s'." msgstr "" #: lib/pychess/widgets/ionest.py:266 #, python-format msgid "Unable to save file '%s'" msgstr "" #: lib/pychess/widgets/ionest.py:268 msgid "" "You don't have the necessary rights to save the file.\n" "Please ensure that you have given the right path and try again." msgstr "" #: lib/pychess/widgets/ionest.py:276 msgid "_Replace" msgstr "" #: lib/pychess/widgets/ionest.py:280 msgid "File exists" msgstr "" #: lib/pychess/widgets/ionest.py:282 #, python-format msgid "" "A file named '%s' already exists. Would you like to replace " "it?" msgstr "" #: lib/pychess/widgets/ionest.py:283 #, python-format msgid "" "The file already exists in '%s'. If you replace it, its content will be " "overwritten." msgstr "" #: lib/pychess/widgets/ionest.py:299 msgid "Could not save the file" msgstr "" #: lib/pychess/widgets/ionest.py:300 msgid "PyChess was not able to save the game" msgstr "" #: lib/pychess/widgets/ionest.py:301 #, python-format msgid "The error was: %s" msgstr "" #: lib/pychess/widgets/ionest.py:325 #, python-format msgid "There is %d game with unsaved moves." msgid_plural "There are %d games with unsaved moves." msgstr[0] "" msgstr[1] "" #: lib/pychess/widgets/ionest.py:328 msgid "Save moves before closing?" msgstr "" #: lib/pychess/widgets/ionest.py:339 msgid "Unable to save to configured file. Save the games before closing?" msgstr "" #: lib/pychess/widgets/ionest.py:366 #, python-format msgid "_Save %d document" msgid_plural "_Save %d documents" msgstr[0] "" msgstr[1] "" #: lib/pychess/widgets/ionest.py:412 msgid "Save the current game before you close it?" msgstr "" #: lib/pychess/widgets/ionest.py:420 msgid "" "Unable to save to configured file. Save the current game before you close " "it?" msgstr "" #: lib/pychess/widgets/ionest.py:434 msgid "" "It is not possible later to continue the game,\n" "if you don't save it." msgstr "" #: lib/pychess/widgets/LogDialog.py:26 msgid "PyChess Information Window" msgstr "" #: lib/pychess/widgets/LogDialog.py:184 lib/pychess/widgets/LogDialog.py:188 msgid "of" msgstr "" #: lib/pychess/widgets/newGameDialog.py:84 #: lib/pychess/widgets/newGameDialog.py:85 msgid "Human Being" msgstr "" #: lib/pychess/widgets/newGameDialog.py:155 msgid "Rapid" msgstr "" #: lib/pychess/widgets/newGameDialog.py:224 msgid "Minutes:" msgstr "" #: lib/pychess/widgets/newGameDialog.py:228 msgid "Gain:" msgstr "" #: lib/pychess/widgets/newGameDialog.py:241 #, python-format msgid "%(name)s %(minutes)d min + %(gain)d sec/move" msgstr "" #: lib/pychess/widgets/newGameDialog.py:244 #, python-format msgid "%(name)s %(minutes)d min %(gain)d sec/move" msgstr "" #: lib/pychess/widgets/newGameDialog.py:247 #, python-format msgid "%(name)s %(minutes)d min" msgstr "" #: lib/pychess/widgets/newGameDialog.py:265 msgid "Odds" msgstr "" #: lib/pychess/widgets/newGameDialog.py:269 msgid "Asian variants" msgstr "" #: lib/pychess/widgets/newGameDialog.py:301 msgid " chess" msgstr "" #: lib/pychess/widgets/newGameDialog.py:682 msgid "Type or paste PGN game or FEN positions here" msgstr "" #: lib/pychess/widgets/newGameDialog.py:725 msgid "Enter Game" msgstr "" #: lib/pychess/widgets/preferencesDialog.py:123 msgid "Select book file" msgstr "" #: lib/pychess/widgets/preferencesDialog.py:128 msgid "Opening books" msgstr "" #: lib/pychess/widgets/preferencesDialog.py:156 msgid "Select Gaviota TB path" msgstr "" #: lib/pychess/widgets/preferencesDialog.py:331 msgid "Open Sound File" msgstr "" #: lib/pychess/widgets/preferencesDialog.py:341 msgid "Sound files" msgstr "" #: lib/pychess/widgets/preferencesDialog.py:485 msgid "Undescribed panel" msgstr "" #: lib/pychess/widgets/preferencesDialog.py:678 msgid "Select auto save path" msgstr "" #: lib/pychess/widgets/tipOfTheDay.py:51 msgid "" "You can start a new game by Game > New Game, in New Game " "window do you can choose Players, Time Control and Chess " "Variants." msgstr "" #: lib/pychess/widgets/tipOfTheDay.py:52 msgid "" "You can choose from 20 different difficulties to play against the computer." msgstr "" #: lib/pychess/widgets/tipOfTheDay.py:53 msgid "" "Chess Variants are like the pieces of the last line will be placed on the " "board." msgstr "" #: lib/pychess/widgets/tipOfTheDay.py:54 msgid "" "To save a game Game > Save Game As, give the filename and " "choose where you want to be saved. At the bottom choose extension type of " "the file, and Save." msgstr "" #: lib/pychess/widgets/tipOfTheDay.py:55 msgid "" "Do you know that you can call flag when the clock is with you, " "Actions > Call Flag." msgstr "" #: lib/pychess/widgets/tipOfTheDay.py:56 msgid "Pressing Ctrl+Z to offer opponent the possible rollback moves." msgstr "" #: lib/pychess/widgets/tipOfTheDay.py:57 msgid "" "To play on Fullscreen mode, just type F11. Coming back, F11 " "again." msgstr "" #: lib/pychess/widgets/tipOfTheDay.py:58 msgid "Hint mode analyzing your game, enable this type Ctrl+H." msgstr "" #: lib/pychess/widgets/tipOfTheDay.py:59 msgid "" "Spy mode analyzing the oponnent game, enable this type Ctrl+Y." msgstr "" #: lib/pychess/widgets/tipOfTheDay.py:60 msgid "" "You can play chess listening to the sounds of the game, for that, " "Settings > Preferences > Sound tab, enable Use " "sounds in PyChess and choose your preferred sounds." msgstr "" #: lib/pychess/widgets/tipOfTheDay.py:61 msgid "" "Do you know that you can help translate Pychess in your language, " "Help > Translate Pychess." msgstr "" #: lib/pychess/widgets/tipOfTheDay.py:62 msgid "" "Do you know that it is possible to finish a chess game in just 2 turns?" msgstr "" #: lib/pychess/widgets/tipOfTheDay.py:63 msgid "" "Do you know that the number of possible chess games exceeds the number of " "atoms in the Universe?" msgstr "" #: lib/pychess/ic/managers/ChatManager.py:184 msgid "Shout" msgstr "" #: lib/pychess/ic/managers/ChatManager.py:185 msgid "Chess Shout" msgstr "" #: lib/pychess/ic/managers/ChatManager.py:195 #, python-format msgid "Unofficial channel %d" msgstr "" #: lib/pychess/Utils/lutils/LBoard.py:152 #, python-format msgid "" "FEN needs 6 data fields. \n" "\n" "%s" msgstr "" #: lib/pychess/Utils/lutils/LBoard.py:154 #, python-format msgid "" "FEN needs at least 2 data fields in fenstr. \n" "\n" "%s" msgstr "" #: lib/pychess/Utils/lutils/LBoard.py:175 #, python-format msgid "" "Needs 7 slashes in piece placement field. \n" "\n" "%s" msgstr "" #: lib/pychess/Utils/lutils/LBoard.py:178 #, python-format msgid "" "Active color field must be one of w or b. \n" "\n" "%s" msgstr "" #: lib/pychess/Utils/lutils/LBoard.py:189 #, python-format msgid "" "Castling availability field is not legal. \n" "\n" "%s" msgstr "" #: lib/pychess/Utils/lutils/LBoard.py:192 #, python-format msgid "" "En passant cord is not legal. \n" "\n" "%s" msgstr "" #: lib/pychess/Utils/lutils/lmove.py:260 msgid "invalid promoted piece" msgstr "" #: lib/pychess/Utils/lutils/lmove.py:272 msgid "the move needs a piece and a cord" msgstr "" #: lib/pychess/Utils/lutils/lmove.py:306 lib/pychess/Utils/lutils/lmove.py:556 msgid "promotion move without promoted piece is incorrect" msgstr "" #: lib/pychess/Utils/lutils/lmove.py:312 #, python-format msgid "the captured cord (%s) is incorrect" msgstr "" #: lib/pychess/Utils/lutils/lmove.py:323 #, python-format msgid "the end cord (%s) is incorrect" msgstr "" #: lib/pychess/Utils/lutils/strateval.py:24 sidepanel/commentPanel.py:191 #: sidepanel/commentPanel.py:208 msgid "and" msgstr "" #: lib/pychess/Utils/lutils/strateval.py:43 msgid "draws" msgstr "" #: lib/pychess/Utils/lutils/strateval.py:45 msgid "mates" msgstr "" #: lib/pychess/Utils/lutils/strateval.py:49 msgid "puts opponent in check" msgstr "" #: lib/pychess/Utils/lutils/strateval.py:73 msgid "improves king safety" msgstr "" #: lib/pychess/Utils/lutils/strateval.py:75 msgid "slightly improves king safety" msgstr "" #: lib/pychess/Utils/lutils/strateval.py:108 msgid "moves a rook to an open file" msgstr "" #: lib/pychess/Utils/lutils/strateval.py:109 msgid "moves an rook to a half-open file" msgstr "" #: lib/pychess/Utils/lutils/strateval.py:119 #: lib/pychess/Utils/lutils/strateval.py:121 #: lib/pychess/Utils/lutils/strateval.py:124 #: lib/pychess/Utils/lutils/strateval.py:126 #, python-format msgid "moves bishop into fianchetto: %s" msgstr "" #: lib/pychess/Utils/lutils/strateval.py:132 #, python-format msgid "promotes a Pawn to a %s" msgstr "" #: lib/pychess/Utils/lutils/strateval.py:135 msgid "castles" msgstr "" #: lib/pychess/Utils/lutils/strateval.py:158 msgid "takes back material" msgstr "" #: lib/pychess/Utils/lutils/strateval.py:162 #: lib/pychess/Utils/lutils/strateval.py:170 msgid "sacrifies material" msgstr "" #: lib/pychess/Utils/lutils/strateval.py:164 msgid "exchanges material" msgstr "" #: lib/pychess/Utils/lutils/strateval.py:166 msgid "captures material" msgstr "" #: lib/pychess/Utils/lutils/strateval.py:291 #, python-format msgid "rescues a %s" msgstr "" #: lib/pychess/Utils/lutils/strateval.py:294 #, python-format msgid "threatens to win material by %s" msgstr "" #: lib/pychess/Utils/lutils/strateval.py:296 #, python-format msgid "increases the pressure on %s" msgstr "" #: lib/pychess/Utils/lutils/strateval.py:298 #, python-format msgid "defends %s" msgstr "" #: lib/pychess/Utils/lutils/strateval.py:336 #, python-format msgid "pins an enemy %(oppiece)s on the %(piece)s at %(cord)s" msgstr "" #: lib/pychess/Utils/lutils/strateval.py:369 #, python-format msgid "White has a new piece in outpost: %s" msgstr "" #: lib/pychess/Utils/lutils/strateval.py:377 #, python-format msgid "Black has a new piece in outpost: %s" msgstr "" #: lib/pychess/Utils/lutils/strateval.py:416 #, python-format msgid "%(color)s has a new passed pawn on %(cord)s" msgstr "" #: lib/pychess/Utils/lutils/strateval.py:470 msgid "half-open" msgstr "" #: lib/pychess/Utils/lutils/strateval.py:472 #, python-format msgid "in the %(x)s%(y)s file" msgstr "" #: lib/pychess/Utils/lutils/strateval.py:474 #, python-format msgid "in the %(x)s%(y)s files" msgstr "" #: lib/pychess/Utils/lutils/strateval.py:477 #, python-format msgid "%(color)s got a double pawn %(place)s" msgstr "" #: lib/pychess/Utils/lutils/strateval.py:478 #, python-format msgid "%(color)s got new double pawns %(place)s" msgstr "" #: lib/pychess/Utils/lutils/strateval.py:485 #, python-format msgid "%(color)s got an isolated pawn in the %(x)s file" msgid_plural "%(color)s got isolated pawns in the %(x)s files" msgstr[0] "" msgstr[1] "" #: lib/pychess/Utils/lutils/strateval.py:492 #, python-format msgid "%s moves pawns into stonewall formation" msgstr "" #: lib/pychess/Utils/lutils/strateval.py:507 #: lib/pychess/Utils/lutils/strateval.py:514 #, python-format msgid "%s can no longer castle" msgstr "" #: lib/pychess/Utils/lutils/strateval.py:508 #: lib/pychess/Utils/lutils/strateval.py:515 #, python-format msgid "%s can no longer castle in queenside" msgstr "" #: lib/pychess/Utils/lutils/strateval.py:510 #: lib/pychess/Utils/lutils/strateval.py:517 #, python-format msgid "%s can no longer castle in kingside" msgstr "" #: lib/pychess/Utils/lutils/strateval.py:551 #, python-format msgid "%(opcolor)s has a new trapped bishop on %(cord)s" msgstr "" #: lib/pychess/Utils/lutils/strateval.py:573 #, python-format msgid "develops a pawn: %s" msgstr "" #: lib/pychess/Utils/lutils/strateval.py:574 #, python-format msgid "brings a pawn closer to the backrow: %s" msgstr "" #: lib/pychess/Utils/lutils/strateval.py:591 #, python-format msgid "brings a %(piece)s closer to enemy king: %(cord)s" msgstr "" #: lib/pychess/Utils/lutils/strateval.py:594 #, python-format msgid "develops a %(piece)s: %(cord)s" msgstr "" #: lib/pychess/Utils/lutils/strateval.py:612 #, python-format msgid "places a %(piece)s more active: %(cord)s" msgstr "" #: lib/pychess/Utils/lutils/strateval.py:638 msgid "White should do pawn storm in right" msgstr "" #: lib/pychess/Utils/lutils/strateval.py:640 msgid "Black should do pawn storm in left" msgstr "" #: lib/pychess/Utils/lutils/strateval.py:643 msgid "White should do pawn storm in left" msgstr "" #: lib/pychess/Utils/lutils/strateval.py:645 msgid "Black should do pawn storm in right" msgstr "" #: lib/pychess/Utils/lutils/strateval.py:671 msgid "Black has a rather cramped position" msgstr "" #: lib/pychess/Utils/lutils/strateval.py:673 msgid "Black has a slightly cramped position" msgstr "" #: lib/pychess/Utils/lutils/strateval.py:675 msgid "White has a rather cramped position" msgstr "" #: lib/pychess/Utils/lutils/strateval.py:677 msgid "White has a slightly cramped position" msgstr "" #: sidepanel/annotationPanel.py:26 msgid "Annotation" msgstr "" #: sidepanel/annotationPanel.py:29 msgid "Annotated game" msgstr "" #: sidepanel/annotationPanel.py:236 msgid "Copy PGN" msgstr "" #: sidepanel/annotationPanel.py:249 msgid "Add start comment" msgstr "" #: sidepanel/annotationPanel.py:254 msgid "Add comment" msgstr "" #: sidepanel/annotationPanel.py:258 sidepanel/annotationPanel.py:316 msgid "Edit comment" msgstr "" #: sidepanel/annotationPanel.py:269 msgid "Forced move" msgstr "" #: sidepanel/annotationPanel.py:274 msgid "Add move symbol" msgstr "" #: sidepanel/annotationPanel.py:280 msgid "Unclear position" msgstr "" #: sidepanel/annotationPanel.py:289 msgid "Zugzwang" msgstr "" #: sidepanel/annotationPanel.py:290 msgid "Development adv." msgstr "" #: sidepanel/annotationPanel.py:291 msgid "Initiative" msgstr "" #: sidepanel/annotationPanel.py:292 msgid "With attack" msgstr "" #: sidepanel/annotationPanel.py:293 msgid "Compensation" msgstr "" #: sidepanel/annotationPanel.py:294 msgid "Counterplay" msgstr "" #: sidepanel/annotationPanel.py:295 msgid "Time pressure" msgstr "" #: sidepanel/annotationPanel.py:300 msgid "Add evaluation symbol" msgstr "" #: sidepanel/annotationPanel.py:304 msgid "Remove symbols" msgstr "" #: sidepanel/annotationPanel.py:911 #, python-format msgid "round %s" msgstr "" #: sidepanel/bookPanel.py:21 msgid "Hints" msgstr "" #: sidepanel/bookPanel.py:25 msgid "" "The hint panel will provide computer advice during each stage of the game" msgstr "" #: sidepanel/bookPanel.py:27 msgid "Official PyChess panel." msgstr "" #: sidepanel/bookPanel.py:87 msgid "Opening Book" msgstr "" #: sidepanel/bookPanel.py:88 msgid "" "The opening book will try to inspire you during the opening phase of the " "game by showing you common moves made by chess masters" msgstr "" #: sidepanel/bookPanel.py:139 #, python-format msgid "Analysis by %s" msgstr "" #: sidepanel/bookPanel.py:140 #, python-format msgid "" "%s will try to predict which move is best and which side has the advantage" msgstr "" #: sidepanel/bookPanel.py:142 #, python-format msgid "Threat analysis by %s" msgstr "" #: sidepanel/bookPanel.py:143 #, python-format msgid "" "%s will identify what threats would exist if it were your opponent's turn to" " move" msgstr "" #: sidepanel/bookPanel.py:159 sidepanel/bookPanel.py:269 msgid "Calculating..." msgstr "" #: sidepanel/bookPanel.py:300 msgid "" "Engine scores are in units of pawns, from White's point of view. Double " "clicking on analysis lines you can insert them into Annotation panel as " "variations." msgstr "" #: sidepanel/bookPanel.py:302 msgid "" "Adding suggestions can help you find ideas, but slows down the computer's " "analysis." msgstr "" #: sidepanel/bookPanel.py:311 msgid "Endgame Table" msgstr "" #: sidepanel/bookPanel.py:315 msgid "" "The endgame table will show exact analysis when there are few pieces on the " "board." msgstr "" #: sidepanel/bookPanel.py:364 sidepanel/bookPanel.py:367 #, python-format msgid "Mate in %d" msgstr "" #: sidepanel/bookPanel.py:554 msgid "" "In this position,\n" "there is no legal move." msgstr "" #: sidepanel/chatPanel.py:21 msgid "" "The chat panel lets you communicate with your opponent during the game, " "assuming he or she is interested" msgstr "" #: sidepanel/commentPanel.py:16 msgid "Comments" msgstr "" #: sidepanel/commentPanel.py:20 msgid "The comments panel will try to analyze and explain the moves played" msgstr "" #: sidepanel/commentPanel.py:121 msgid "Initial position" msgstr "" #: sidepanel/commentPanel.py:254 #, python-format msgid "%(color)s moves a %(piece)s to %(cord)s" msgstr "" #: sidepanel/engineOutputPanel.py:15 msgid "Engines" msgstr "" #: sidepanel/engineOutputPanel.py:20 msgid "" "The engine output panel shows the thinking output of chess engines (computer" " players) during a game" msgstr "" #: sidepanel/engineOutputPanel.py:44 msgid "No chess engines (computer players) are participating in this game." msgstr "" #: sidepanel/historyPanel.py:10 msgid "Move History" msgstr "" #: sidepanel/historyPanel.py:13 msgid "" "The moves sheet keeps track of the players' moves and lets you navigate " "through the game history" msgstr "" #: sidepanel/scorePanel.py:15 msgid "Score" msgstr "" #: sidepanel/scorePanel.py:19 msgid "" "The score panel tries to evaluate the positions and shows you a graph of the" " game progress" msgstr "" pychess-0.12.2/lang/wa/LC_MESSAGES/pychess.mo0000644000175000017470000000113512653231273020704 0ustar tamasusers00000000000000<\pq (HNLog on as _Guest_Name:_Password:Project-Id-Version: pychess Report-Msgid-Bugs-To: POT-Creation-Date: 2016-01-27 13:28+0100 PO-Revision-Date: 2016-01-28 08:56+0000 Last-Translator: slav0nic Language-Team: Walloon (http://www.transifex.com/gbtami/pychess/language/wa/) MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Language: wa Plural-Forms: nplurals=2; plural=(n > 1); Se connecter en tant qu'invité_Nom:_Mot de passe:pychess-0.12.2/lang/tr/0000755000175000017470000000000012653231274015123 5ustar tamasusers00000000000000pychess-0.12.2/lang/tr/LC_MESSAGES/0000755000175000017470000000000012653231274016710 5ustar tamasusers00000000000000pychess-0.12.2/lang/tr/LC_MESSAGES/pychess.po0000644000175000017470000025502612653216203020733 0ustar tamasusers00000000000000# SOME DESCRIPTIVE TITLE. # Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER # This file is distributed under the same license as the pychess package. # # Translators: # Ali Polatel , 2013 # Alkım Kaçmaz , 2013 # AYBERK HALAC , 2013 # Caner Başaran , 2012 # Ege Öz , 2014 # Ege Öz , 2013 # Emre FIRAT , 2013 # gbtami , 2013 msgid "" msgstr "" "Project-Id-Version: pychess\n" "Report-Msgid-Bugs-To: \n" "POT-Creation-Date: 2016-01-27 13:28+0100\n" "PO-Revision-Date: 2016-01-28 08:56+0000\n" "Last-Translator: slav0nic \n" "Language-Team: Turkish (http://www.transifex.com/gbtami/pychess/language/tr/)\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" "Language: tr\n" "Plural-Forms: nplurals=2; plural=(n > 1);\n" # "Plural-Forms: nplurals=INTEGER; plural=EXPRESSION;\n" #: glade/analyze_game.glade:22 msgid "Analyze game" msgstr "Oyunu analiz et" #: glade/analyze_game.glade:87 msgid "Use analyzer:" msgstr "" #: glade/analyze_game.glade:122 glade/PyChess.glade:2054 msgid "Maximum analysis time in seconds:" msgstr "" #: glade/analyze_game.glade:163 msgid "" "If the analyzer finds a move where the evaluation difference (the difference" " between the evaluation for the move it thinks is the best move and the " "evaluation for the move made in the game) exceeds this value, it will add an" " annotation for that move (consisting of the engine's Principal Variation " "for the move) to the Annotation panel" msgstr "" #: glade/analyze_game.glade:164 msgid "Variation annotation creation threshold in centipawns:" msgstr "" #: glade/analyze_game.glade:198 msgid "Analyze from current position" msgstr "" #: glade/analyze_game.glade:214 msgid "Add threatening variation lines " msgstr "" #: glade/analyze_game.glade:229 glade/PyChess.glade:1459 msgid "Colorize analyzed moves" msgstr "" #: glade/analyze_game.glade:244 glade/PyChess.glade:1495 msgid "Show evaluation values" msgstr "" #: glade/discovererDialog.glade:18 msgid "PyChess is discovering your engines. Please wait." msgstr "PyChess motorlarınızı arıyor. Lütfen bekleyin." #: glade/discovererDialog.glade:77 msgid "PyChess.py:" msgstr "PyChess.py:" #: glade/discovererDialog.glade:89 msgid "ShredderLinuxChess:" msgstr "ShredderLinuxChess:" #: glade/discovererDialog.glade:101 msgid "gnuchess:" msgstr "gnuchess:" #: glade/fics_logon.glade:7 msgid "PyChess - Connect to Internet Chess" msgstr "PyChess - internet satrancına bağlan" #: glade/fics_logon.glade:47 msgid "Connect to the Free Online Chess Server" msgstr "Ücretsiz online satranç sunucusuna bağlan" #: glade/fics_logon.glade:129 glade/taskers.glade:394 msgid "_Password:" msgstr "_Parola:" #: glade/fics_logon.glade:143 msgid "_Name:" msgstr "_Adı:" #: glade/fics_logon.glade:191 msgid "Log on as _Guest" msgstr "_Ziyaretçi olarak bağlan" #: glade/fics_logon.glade:227 msgid "Host:" msgstr "" #: glade/fics_logon.glade:259 msgid "Po_rts:" msgstr "Portlar:" #: glade/fics_logon.glade:271 msgid "Auto login on startup" msgstr "" #: glade/fics_logon.glade:385 msgid "S_ign up" msgstr "_Oturum Aç" #: glade/fics_lounge.glade:35 msgid "Challenge: " msgstr "Meydan oku: " #: glade/fics_lounge.glade:97 msgid "Send Challenge" msgstr "Meydan Okuma İsteği Gönder" #: glade/fics_lounge.glade:133 msgid "Challenge:" msgstr "Meydan Okuma:" #: glade/fics_lounge.glade:327 glade/fics_lounge.glade:2078 msgid "Lightning:" msgstr "Işıklandırma:" #: glade/fics_lounge.glade:351 glade/fics_lounge.glade:2102 msgid "Standard:" msgstr "Standart:" #: glade/fics_lounge.glade:375 glade/fics_lounge.glade:2126 msgid "Blitz:" msgstr "Hızlı Oyun:" #: glade/fics_lounge.glade:400 msgid "2 min, Fischer Random, Black" msgstr "" #: glade/fics_lounge.glade:422 msgid "10 min + 6 sec/move, White" msgstr "10 dak + 6 san/hareket, Beyaz" #: glade/fics_lounge.glade:444 msgid "5 min" msgstr "5 dak" #: glade/fics_lounge.glade:480 msgid "Edit Seek" msgstr "Araştırma Düzenle" #: glade/fics_lounge.glade:584 lib/pychess/ic/ICLounge.py:2208 #: lib/pychess/ic/__init__.py:101 lib/pychess/Utils/GameModel.py:206 msgid "Untimed" msgstr "Süresiz" #: glade/fics_lounge.glade:637 msgid "Minutes: " msgstr "Dakika: " #: glade/fics_lounge.glade:665 msgid " Gain: " msgstr "Kazan:" #: glade/fics_lounge.glade:703 msgid "Time control: " msgstr "Zaman Kontrol: " #: glade/fics_lounge.glade:716 lib/pychess/ic/FICSObjects.py:56 #: lib/pychess/ic/ICLounge.py:1137 lib/pychess/ic/ICLounge.py:2208 #: lib/pychess/ic/__init__.py:99 msgid "Standard" msgstr "Standart" #: glade/fics_lounge.glade:757 glade/newInOut.glade:633 msgid "Time Control" msgstr "Zaman Kontrol" #: glade/fics_lounge.glade:814 glade/fics_lounge.glade:1346 msgid "Don't care" msgstr "Görmezden gel" #: glade/fics_lounge.glade:879 msgid "Your strength: " msgstr "Gücünüz: " #: glade/fics_lounge.glade:921 msgid "(Blitz)" msgstr "" #: glade/fics_lounge.glade:951 msgid "Opponent's strength: " msgstr "Rakibin Gücü: " #: glade/fics_lounge.glade:1055 msgid "" "When this button is in the \"locked\" state, the relationship\n" "between \"Opponent's strength\" and \"Your strength\" will be\n" "preserved when \n" "a) your rating for the type of game sought has changed\n" "b) you change the variant or the time control" msgstr "" #: glade/fics_lounge.glade:1095 msgid "Center:" msgstr "Merkez:" #: glade/fics_lounge.glade:1134 msgid "1200" msgstr "1200" #: glade/fics_lounge.glade:1188 msgid "Tolerance:" msgstr "Tolerans:" #: glade/fics_lounge.glade:1243 lib/pychess/ic/ICLounge.py:2452 msgid "Hide" msgstr "Gizle" #: glade/fics_lounge.glade:1289 msgid "Opponent Strength" msgstr "Rakibin Gücü" #: glade/fics_lounge.glade:1386 lib/pychess/Database/gamelist.py:40 #: lib/pychess/ic/ICLounge.py:1357 lib/pychess/ic/ICLounge.py:1557 #: lib/pychess/ic/ICLounge.py:2108 lib/pychess/Utils/repr.py:10 #: lib/pychess/widgets/ChessClock.py:40 #: lib/pychess/widgets/TaskerManager.py:153 msgid "White" msgstr "Beyaz" #: glade/fics_lounge.glade:1414 lib/pychess/Database/gamelist.py:40 #: lib/pychess/ic/ICLounge.py:1358 lib/pychess/ic/ICLounge.py:1558 #: lib/pychess/ic/ICLounge.py:2110 lib/pychess/Utils/repr.py:10 #: lib/pychess/widgets/ChessClock.py:40 #: lib/pychess/widgets/TaskerManager.py:154 msgid "Black" msgstr "Siyah" #: glade/fics_lounge.glade:1453 msgid "Your Color" msgstr "Renginiz" #: glade/fics_lounge.glade:1512 msgid "Play normal chess rules" msgstr "Normal satranç kuralları ile oyna" #: glade/fics_lounge.glade:1552 msgid "Play" msgstr "Oyna" #: glade/fics_lounge.glade:1618 glade/newInOut.glade:833 msgid "Chess Variant" msgstr "Satranç Çeşidi" #: glade/fics_lounge.glade:1676 msgid "Rated game" msgstr "Dereceli oyun" #: glade/fics_lounge.glade:1692 msgid "Manually accept opponent" msgstr "" #: glade/fics_lounge.glade:1722 msgid "Options" msgstr "Seçenekler" #: glade/fics_lounge.glade:1750 msgid "PyChess - Internet Chess: FICS" msgstr "PyChess - Internet Satranç : FICS" #: glade/fics_lounge.glade:1823 msgid "_Clear Seeks" msgstr "" #: glade/fics_lounge.glade:1847 msgid "_Accept" msgstr "_Kabul Et" #: glade/fics_lounge.glade:1871 msgid "_Decline" msgstr "_Reddet" #: glade/fics_lounge.glade:2151 msgid "2 min, Fischer Random, 1800↓, Black" msgstr "2 dak, Fischer Rastgele, 1800↓, Siyah" #: glade/fics_lounge.glade:2172 msgid "10 min + 6 sec/move, 1400↑, White" msgstr "10 dak + 6 sn/hamle, 1400↑, Beyaz" #: glade/fics_lounge.glade:2193 msgid "5 min, 1200-1800, Manual" msgstr "5 dak, 1200-1800, Manuel" #: glade/fics_lounge.glade:2247 msgid "Send all seeks" msgstr "" #: glade/fics_lounge.glade:2301 msgid "Send seek" msgstr "Oyun daveti gönder" #: glade/fics_lounge.glade:2337 msgid "Create Seek" msgstr "Araştırma oluştur" #: glade/fics_lounge.glade:2353 msgid "_Seeks / Challenges" msgstr "_Araştır / Meydan Oku" #: glade/fics_lounge.glade:2374 lib/pychess/ic/ICLounge.py:472 #: lib/pychess/ic/ICLounge.py:670 lib/pychess/ic/ICLounge.py:1357 #: lib/pychess/ic/ICLounge.py:1358 msgid "Rating" msgstr "Puan" #: glade/fics_lounge.glade:2399 msgid "Time" msgstr "Süre" #: glade/fics_lounge.glade:2419 msgid "Seek _Graph" msgstr "" #: glade/fics_lounge.glade:2444 msgid "0 Players Ready" msgstr "0 Oyuncu Hazır" #: glade/fics_lounge.glade:2496 msgid "Challenge" msgstr "Meydan Okuma" #: glade/fics_lounge.glade:2549 glade/fics_lounge.glade:2735 msgid "Observe" msgstr "İzle" #: glade/fics_lounge.glade:2602 msgid "Start Private Chat" msgstr "Kişiyle sohbet et" #: glade/fics_lounge.glade:2659 msgid "_Player List" msgstr "_Oyuncu Listesi" #: glade/fics_lounge.glade:2792 msgid "_Game List" msgstr "_Oyun Listesi" #: glade/fics_lounge.glade:2847 msgid "_My games" msgstr "" #: glade/fics_lounge.glade:2904 glade/PyChess.glade:841 msgid "Offer _Resume" msgstr "Maça devam öner" #: glade/fics_lounge.glade:2962 glade/PyChess.glade:880 msgid "R_esign" msgstr "Pes_et" #: glade/fics_lounge.glade:3006 glade/PyChess.glade:820 msgid "Offer _Draw" msgstr "_Beraberlik Öner" #: glade/fics_lounge.glade:3050 msgid "Offer A_bort" msgstr "Maçın iptalini öner" #: glade/fics_lounge.glade:3107 msgid "Pre_view" msgstr "Ön_izleme" #: glade/fics_lounge.glade:3151 msgid "Examine" msgstr "" #: glade/fics_lounge.glade:3208 msgid "_Archived" msgstr "" #: glade/fics_lounge.glade:3313 msgid "News" msgstr "Haberler" #: glade/fics_lounge.glade:3345 msgid "Show Console" msgstr "" #: glade/fics_lounge.glade:3359 msgid "Show _Chat" msgstr "Konuşma _Göster" #: glade/fics_lounge.glade:3373 msgid "_Log Off" msgstr "_Oturum Kapat" #: glade/fics_lounge.glade:3393 msgid "Tools" msgstr "Araçlar" #: glade/fics_lounge.glade:3428 msgid "Asymmetric Random " msgstr "" #: glade/findbar.glade:6 msgid "window1" msgstr "pencere1" #: glade/findbar.glade:21 msgid "0 of 0" msgstr "0'da 0" #: glade/findbar.glade:66 msgid "Search:" msgstr "Ara:" #: glade/findbar.glade:134 msgid "_Previous" msgstr "_Önceki" #: glade/findbar.glade:192 msgid "_Next" msgstr "_Sonraki" #: glade/newInOut.glade:45 lib/pychess/widgets/newGameDialog.py:445 msgid "New Game" msgstr "Yeni Oyun" #: glade/newInOut.glade:108 msgid "_Start Game" msgstr "_Oyuna Başla" #: glade/newInOut.glade:130 msgid "Copy FEN" msgstr "" #: glade/newInOut.glade:143 msgid "Clear" msgstr "" #: glade/newInOut.glade:156 msgid "Paste FEN" msgstr "" #: glade/newInOut.glade:257 msgid "_Black player:" msgstr "_Siyah oyuncu:" #: glade/newInOut.glade:274 msgid "_White player:" msgstr "_Beyaz oyuncu:" #: glade/newInOut.glade:385 msgid "Players" msgstr "Oyuncular" #: glade/newInOut.glade:436 msgid "_Untimed" msgstr "_Süresiz" #: glade/newInOut.glade:475 msgid "Blitz: 5 min" msgstr "" #: glade/newInOut.glade:526 msgid "Rapid: 15 min + 10 sec/move" msgstr "" #: glade/newInOut.glade:575 msgid "Normal: 40 min + 15 sec/move" msgstr "" #: glade/newInOut.glade:684 msgid "_Play Normal chess" msgstr "_Normal satranç oyna" #: glade/newInOut.glade:724 msgid "Play Fischer Random chess" msgstr "" #: glade/newInOut.glade:774 msgid "Play Losers chess" msgstr "" #: glade/newInOut.glade:919 msgid "Open Game" msgstr "Açık Oyun" #: glade/newInOut.glade:1162 msgid "Initial Position" msgstr "Başlangıç ​​Konumu" #: glade/newInOut.glade:1219 msgid "Enter Game Notation" msgstr "Oyun notasyonunu giriniz" #: glade/newInOut.glade:1314 msgid "Halfmove clock" msgstr "" #: glade/newInOut.glade:1327 msgid "En passant line" msgstr "" #: glade/newInOut.glade:1339 msgid "Side to move" msgstr "" #: glade/newInOut.glade:1351 msgid "Move number" msgstr "" #: glade/newInOut.glade:1361 msgid "Black O-O" msgstr "" #: glade/newInOut.glade:1375 msgid "Black O-O-O" msgstr "" #: glade/newInOut.glade:1389 msgid "White O-O-O" msgstr "" #: glade/newInOut.glade:1403 msgid "White O-O" msgstr "" #: glade/promotion.glade:7 msgid "Promotion" msgstr "Terfi" #: glade/promotion.glade:49 lib/pychess/Utils/repr.py:12 msgid "Queen" msgstr "Vezir" #: glade/promotion.glade:95 lib/pychess/Utils/repr.py:12 msgid "Rook" msgstr "Kale" #: glade/promotion.glade:141 lib/pychess/Utils/repr.py:12 msgid "Bishop" msgstr "Fil" #: glade/promotion.glade:187 lib/pychess/Utils/repr.py:12 msgid "Knight" msgstr "At" #: glade/promotion.glade:233 lib/pychess/Utils/repr.py:12 msgid "King" msgstr "Kral" #: glade/promotion.glade:265 msgid "Promote pawn to what?" msgstr "Piyon hangi taşa terfi etsin?" #: glade/PyChess.glade:9 msgid "Chess client" msgstr "" #: glade/PyChess.glade:44 msgid "Game information" msgstr "Oyun bilgisi" #: glade/PyChess.glade:164 msgid "Event:" msgstr "Müsabaka:" #: glade/PyChess.glade:178 msgid "Site:" msgstr "Yer:" #: glade/PyChess.glade:204 msgid "Round:" msgstr "Raunt:" #: glade/PyChess.glade:237 msgid "White:" msgstr "Beyaz:" #: glade/PyChess.glade:249 msgid "Black:" msgstr "Siyah:" #: glade/PyChess.glade:302 msgid "Game data" msgstr "Oyun verisi" #: glade/PyChess.glade:357 msgid "Date of game" msgstr "Oyunun tarihi" #: glade/PyChess.glade:495 msgid "_Game" msgstr "_Oyun" #: glade/PyChess.glade:502 msgid "_New Game" msgstr "Yeni _Oyun" #: glade/PyChess.glade:515 msgid "Play _Internet Chess" msgstr "" #: glade/PyChess.glade:534 msgid "_Load Game" msgstr "Oyun _Yükle" #: glade/PyChess.glade:550 msgid "Load _Recent Game" msgstr "" #: glade/PyChess.glade:558 msgid "Open _Database" msgstr "" #: glade/PyChess.glade:569 lib/pychess/widgets/newGameDialog.py:615 msgid "Setup Position" msgstr "Pozisyon Kur" #: glade/PyChess.glade:579 msgid "Enter Game _Notation" msgstr "" #: glade/PyChess.glade:592 msgid "_Save Game" msgstr "Oyunu _Kaydet" #: glade/PyChess.glade:606 msgid "Save Game _As" msgstr "Oyunu _Farklı Kaydet" #: glade/PyChess.glade:624 msgid "Share Game" msgstr "" #: glade/PyChess.glade:630 msgid "_Export Position" msgstr "" #: glade/PyChess.glade:644 msgid "_Analyze Game" msgstr "" #: glade/PyChess.glade:678 msgid "Player _Rating" msgstr "Oyuncu _Reytingi" #: glade/PyChess.glade:723 msgid "_Edit" msgstr "_Düzenle" #: glade/PyChess.glade:734 msgid "_Copy PGN" msgstr "" #: glade/PyChess.glade:746 msgid "_Copy FEN" msgstr "" #: glade/PyChess.glade:763 msgid "_Engines" msgstr "" #: glade/PyChess.glade:789 msgid "_Actions" msgstr "_Eylemler" #: glade/PyChess.glade:800 msgid "Offer _Abort" msgstr "" #: glade/PyChess.glade:810 msgid "Offer Ad_journment" msgstr "" #: glade/PyChess.glade:831 msgid "Offer _Pause" msgstr "" #: glade/PyChess.glade:847 msgid "Offer _Undo" msgstr "" #: glade/PyChess.glade:870 msgid "_Call Flag" msgstr "_Bayrak Düştü" #: glade/PyChess.glade:890 msgid "Ask to _Move" msgstr "" #: glade/PyChess.glade:905 msgid "Auto Call _Flag" msgstr "" #: glade/PyChess.glade:918 msgid "_View" msgstr "_Görünüm" #: glade/PyChess.glade:925 msgid "_Rotate Board" msgstr "_Tahtayı Çevir" #: glade/PyChess.glade:939 msgid "_Fullscreen" msgstr "_Tam Ekran" #: glade/PyChess.glade:952 msgid "Leave _Fullscreen" msgstr "_Tam Ekrandan Çık" #: glade/PyChess.glade:969 msgid "_Show Sidepanels" msgstr "_Yan Paneli Göster " #: glade/PyChess.glade:980 msgid "_Log Viewer" msgstr "Günlük (_Log) Görüntüleyici" #: glade/PyChess.glade:997 msgid "_Hint mode" msgstr "_İpucu kipi" #: glade/PyChess.glade:1009 msgid "Sp_y mode" msgstr "_Casus kipi" #: glade/PyChess.glade:1024 msgid "_Help" msgstr "_Yardım" #: glade/PyChess.glade:1034 msgid "About Chess" msgstr "Satranç Hakkında" #: glade/PyChess.glade:1043 msgid "How to Play" msgstr "Nasıl Oynanır" #: glade/PyChess.glade:1052 msgid "Translate PyChess" msgstr "PyChess'i Çevir" #: glade/PyChess.glade:1058 msgid "Tip of the Day" msgstr "Günün İpucu" #: glade/PyChess.glade:1153 msgid "Default" msgstr "Varsayılan:" #: glade/PyChess.glade:1156 msgid "Knights" msgstr "Atlar" #: glade/PyChess.glade:1167 lib/pychess/widgets/preferencesDialog.py:349 msgid "Beep" msgstr "Bip" #: glade/PyChess.glade:1170 lib/pychess/widgets/preferencesDialog.py:350 msgid "Select sound file..." msgstr "Ses dosyası seçin..." #: glade/PyChess.glade:1173 lib/pychess/widgets/preferencesDialog.py:348 msgid "No sound" msgstr "Ses yok" #: glade/PyChess.glade:1180 msgid "Preferences" msgstr "Tercihler" #: glade/PyChess.glade:1218 msgid "The displayed name of the first human player, e.g., John." msgstr "" #: glade/PyChess.glade:1230 msgid "Name of _first human player:" msgstr "_İlk insan oyuncunun adı" #: glade/PyChess.glade:1259 msgid "The displayed name of the guest player, e.g., Mary." msgstr "" #: glade/PyChess.glade:1271 msgid "Name of s_econd human player:" msgstr "" #: glade/PyChess.glade:1307 msgid "_Hide tabs when only one game is open" msgstr "Sadece bir oyun açıkken sekmeleri _gizle" #: glade/PyChess.glade:1312 msgid "" "If set, this hides the tab in the top of the playing window, when it is not " "needed." msgstr "" #: glade/PyChess.glade:1326 msgid "_Use main app closer [x] to close all games" msgstr "" #: glade/PyChess.glade:1331 msgid "" "If set, clicking on main application window closer first time it closes all " "games." msgstr "" #: glade/PyChess.glade:1345 msgid "Auto _rotate board to current human player" msgstr "" #: glade/PyChess.glade:1350 msgid "" "If set, the board will turn after each move, to show the natural view for " "the current player." msgstr "" #: glade/PyChess.glade:1364 msgid "Auto _promote to queen" msgstr "" #: glade/PyChess.glade:1369 msgid "If set, pawn promotes to queen without promotion dialog selection." msgstr "" #: glade/PyChess.glade:1383 msgid "Face _to Face display mode" msgstr "" #: glade/PyChess.glade:1388 msgid "" "If set, the black pieces will be head down, suitable for playing against " "friends on mobile devices." msgstr "" #: glade/PyChess.glade:1402 msgid "Sho_w cords" msgstr "Kordinatları _göster" #: glade/PyChess.glade:1407 msgid "" "If set, the playing board will display labels and ranks for each chess " "field. These are usable in chess notation." msgstr "" #: glade/PyChess.glade:1421 msgid "Show _captured pieces" msgstr "" #: glade/PyChess.glade:1426 msgid "If set, the captured figurines will be shown next to the board." msgstr "" #: glade/PyChess.glade:1440 msgid "Prefer figures in _notation" msgstr "" #: glade/PyChess.glade:1445 msgid "" "If set, PyChess will use figures to express moved pieces, rather than " "uppercase letters." msgstr "" #: glade/PyChess.glade:1464 msgid "If set, PyChess will colorize suboptimal analyzed moves with red." msgstr "" #: glade/PyChess.glade:1477 msgid "Show elapsed move times" msgstr "" #: glade/PyChess.glade:1482 msgid "If set, the elapsed time that a player used for the move is shown." msgstr "" #: glade/PyChess.glade:1500 msgid "If set, the hint analyzer engine evaluation value is shown." msgstr "" #: glade/PyChess.glade:1526 msgid "General Options" msgstr "" #: glade/PyChess.glade:1560 msgid "F_ull board animation" msgstr "" #: glade/PyChess.glade:1565 msgid "Animate pieces, board rotation and more. Use this on fast machines." msgstr "" #: glade/PyChess.glade:1579 msgid "Only animate _moves" msgstr "Sadece _hareketleri canlandır" #: glade/PyChess.glade:1584 msgid "Only animate piece moves." msgstr "" #: glade/PyChess.glade:1599 msgid "No _animation" msgstr "Animasyonları kapat" #: glade/PyChess.glade:1604 msgid "Never use animation. Use this on slow machines." msgstr "Hiçbir zaman animasyonları kullanma.Bunu yavaş bilgisayarlarda kullanın" #: glade/PyChess.glade:1632 msgid "Animation" msgstr "Canlandırma" #: glade/PyChess.glade:1651 msgid "_General" msgstr "_Genel" #: glade/PyChess.glade:1692 msgid "Use opening _book" msgstr "" #: glade/PyChess.glade:1697 msgid "If set, PyChess will suggest best opening moves on hint panel." msgstr "" #: glade/PyChess.glade:1724 msgid "Polyglot book file:" msgstr "" #: glade/PyChess.glade:1768 msgid "Use _local tablebases" msgstr "" #: glade/PyChess.glade:1773 msgid "" "If set, PyChess will show game results for different moves in positions containing 6 or less pieces.\n" "You can download tablebase files from:\n" "http://www.olympuschess.com/egtb/gaviota/" msgstr "" #: glade/PyChess.glade:1803 msgid "Gaviota TB path:" msgstr "" #: glade/PyChess.glade:1843 msgid "Use _online tablebases" msgstr "" #: glade/PyChess.glade:1848 msgid "" "If set, PyChess will show game results for different moves in positions containing 6 or less pieces.\n" "It will search positions from http://www.k4it.de/" msgstr "" #: glade/PyChess.glade:1870 msgid "Opening, endgame" msgstr "" #: glade/PyChess.glade:1904 msgid "Use _analyzer" msgstr "Çözümleyici kull_an" #: glade/PyChess.glade:1946 msgid "" "The analyzer will run in the background and analyze the game. This is " "necessary for the hint mode to work" msgstr "" #: glade/PyChess.glade:1978 msgid "Use _inverted analyzer" msgstr "Ters analiz kullan" #: glade/PyChess.glade:2020 msgid "" "The inverse analyzer will analyze the game as if your opponent was to move. " "This is necessary for the spy mode to work" msgstr "" #: glade/PyChess.glade:2096 msgid "Analyzing" msgstr "Çözümlüyor" #: glade/PyChess.glade:2118 msgid "_Hints" msgstr "_İpuçları" #: glade/PyChess.glade:2263 msgid "Uninstall" msgstr "Kaldır" #: glade/PyChess.glade:2317 msgid "Ac_tive" msgstr "Aktif" #: glade/PyChess.glade:2367 msgid "Installed Sidepanels" msgstr "" #: glade/PyChess.glade:2382 msgid "Side_panels" msgstr "Yan_paneller" #: glade/PyChess.glade:2440 msgid "Light Squares :" msgstr "" #: glade/PyChess.glade:2479 msgid "Dark Squares :" msgstr "" #: glade/PyChess.glade:2515 msgid "Reset Default Colours" msgstr "" #: glade/PyChess.glade:2551 msgid "Board Colours" msgstr "" #: glade/PyChess.glade:2610 msgid "Chess Sets" msgstr "" #: glade/PyChess.glade:2634 msgid "Themes" msgstr "Temalar" #: glade/PyChess.glade:2659 msgid "_Use sounds in PyChess" msgstr "S_esleri kullan" #: glade/PyChess.glade:2982 msgid "A player _checks:" msgstr "Bir oyuncu _şah çekti:" #: glade/PyChess.glade:2997 msgid "A player _moves:" msgstr "Bir ouyuncu _hamle yaptı:" #: glade/PyChess.glade:3010 msgid "Game is _drawn:" msgstr "Oyun Berabere" #: glade/PyChess.glade:3025 msgid "Game is _lost:" msgstr "Oyunu kaybettiniz" #: glade/PyChess.glade:3040 msgid "Game is _won:" msgstr "Oyunu Kazandınız" #: glade/PyChess.glade:3055 msgid "A player c_aptures:" msgstr "Oyuncu taş kazandı:" #: glade/PyChess.glade:3084 msgid "Game is _set-up:" msgstr "Oyun hazır" #: glade/PyChess.glade:3136 msgid "_Observed moves:" msgstr "Gözlenmiş hamleler" #: glade/PyChess.glade:3151 msgid "Observed _ends:" msgstr "" #: glade/PyChess.glade:3265 msgid "Short on _time:" msgstr "" #: glade/PyChess.glade:3317 msgid "_Invalid move:" msgstr "" #: glade/PyChess.glade:3369 msgid "Activate alarm when _remaining sec is:" msgstr "" #: glade/PyChess.glade:3416 msgid "Play Sound When..." msgstr "Şu durumlarda ses çal" #: glade/PyChess.glade:3438 msgid "_Sounds" msgstr "_Sesler" #: glade/PyChess.glade:3463 msgid "_Auto save finished games" msgstr "" #: glade/PyChess.glade:3497 msgid "Save files to:" msgstr "" #: glade/PyChess.glade:3525 msgid "Use name format:" msgstr "" #: glade/PyChess.glade:3569 msgid "Names: #n1, #n2" msgstr "" #: glade/PyChess.glade:3582 msgid "Year, month, day: #y, #m, #d" msgstr "" #: glade/PyChess.glade:3619 msgid "Save elapsed move _times" msgstr "" #: glade/PyChess.glade:3644 msgid "Save analyzing engine _evaluation values" msgstr "" #: glade/PyChess.glade:3669 msgid "Save _own games only" msgstr "" #: glade/PyChess.glade:3698 msgid "Save" msgstr "" #: glade/PyChess.glade:3728 msgid "uci" msgstr "" #: glade/PyChess.glade:3731 msgid "xboard" msgstr "" #: glade/PyChess.glade:3739 msgid "Manage engines" msgstr "" #: glade/PyChess.glade:3837 msgid "Command:" msgstr "Komut:" #: glade/PyChess.glade:3851 msgid "Protocol:" msgstr "Protokol:" #: glade/PyChess.glade:3865 msgid "Parameters:" msgstr "Parametreler:" #: glade/PyChess.glade:3878 msgid "Command line parameters needed by the engine." msgstr "" #: glade/PyChess.glade:3903 msgid "" "Engines use uci or xboard communication protocol to talk to the GUI.\n" "If it can use both you can set here which one you like." msgstr "" #: glade/PyChess.glade:3929 msgid "Working directory:" msgstr "Çalışma dizini:" #: glade/PyChess.glade:3942 msgid "The directory where the engine will be started from." msgstr "" #: glade/saveGamesDialog.glade:7 msgid "Quit PyChess" msgstr "PyChess' ten Çık" #: glade/saveGamesDialog.glade:24 lib/pychess/widgets/ionest.py:424 msgid "Close _without Saving" msgstr "Kaydetmeden _Kapat" #: glade/saveGamesDialog.glade:83 msgid "_Save %d documents" msgstr "" #: glade/saveGamesDialog.glade:141 msgid "" "There are %d games with unsaved moves. Save changes before " "closing?" msgstr "" #: glade/saveGamesDialog.glade:161 msgid "Select the games you want to save:" msgstr "Kaydetmek istediğiniz oyunu seçin:" #: glade/saveGamesDialog.glade:204 msgid "If you don't save, new changes to your games will be permanently lost." msgstr "Eğer kaydetmezseniz, değişiklikler sonsuza kadar kaybolacak." #: glade/taskers.glade:126 msgid "_Opponent:" msgstr "_Rakip" #: glade/taskers.glade:154 msgid "_Your Color:" msgstr "_Renginiz:" #: glade/taskers.glade:219 msgid "_Start Game" msgstr "_Oyunu Başlat" #: glade/taskers.glade:338 msgid "Log on as G_uest" msgstr "Misafir olarak gir" #: glade/taskers.glade:410 msgid "Ha_ndle:" msgstr "" #: glade/taskers.glade:469 msgid "_Connect to server" msgstr "" #: glade/tipoftheday.glade:7 msgid "Tip Of The day" msgstr "Günün İpucu" #: glade/tipoftheday.glade:62 msgid "Show tips at startup" msgstr "İpuçlarını başlangıçta göster" #: lib/pychess/Main.py:302 msgid "http://en.wikipedia.org/wiki/Chess" msgstr "http://tr.wikipedia.org/wiki/Satran%C3%A7" #: lib/pychess/Main.py:305 msgid "http://en.wikipedia.org/wiki/Rules_of_chess" msgstr "http://tr.wikipedia.org/wiki/Satran%C3%A7#Oynan.C4.B1.C5.9F.C4.B1" #: lib/pychess/Main.py:370 lib/pychess/widgets/gamenanny.py:80 msgid "Welcome" msgstr "Hoşgeldiniz" #: lib/pychess/Database/gamelist.py:40 msgid "Id" msgstr "" #: lib/pychess/Database/gamelist.py:40 msgid "W Elo" msgstr "" #: lib/pychess/Database/gamelist.py:40 msgid "B Elo" msgstr "" #: lib/pychess/Database/gamelist.py:41 msgid "Result" msgstr "" #: lib/pychess/Database/gamelist.py:41 msgid "Event" msgstr "" #: lib/pychess/Database/gamelist.py:41 msgid "Site" msgstr "" #: lib/pychess/Database/gamelist.py:41 msgid "Round" msgstr "" #: lib/pychess/Database/gamelist.py:41 msgid "Date" msgstr "Tarih" #: lib/pychess/Database/gamelist.py:41 msgid "ECO" msgstr "" #: lib/pychess/Database/gamelist.py:62 msgid "PyChess Game Database" msgstr "PyChess Oyun Veritabanı" #: lib/pychess/Database/PgnImport.py:188 #, python-format msgid "The game #%s can't be loaded, because of an error parsing FEN" msgstr "" #: lib/pychess/ic/FICSConnection.py:139 msgid "The connection was broken - got \"end of file\" message" msgstr "Bağlantı koptu -\"dosya sonu\" iletisi aldı" #: lib/pychess/ic/FICSConnection.py:140 #, python-format msgid "'%s' is not a registered name" msgstr "%s kayıtlı bir oyun değil" #: lib/pychess/ic/FICSConnection.py:141 msgid "" "The entered password was invalid.\n" "If you forgot your password, go to http://www.freechess.org/password to request a new one over email." msgstr "" #: lib/pychess/ic/FICSConnection.py:145 #, python-format msgid "Sorry '%s' is already logged in" msgstr "" #: lib/pychess/ic/FICSConnection.py:146 #, python-format msgid "'%s' is a registered name. If it is yours, type the password." msgstr "" #: lib/pychess/ic/FICSConnection.py:147 msgid "" "Due to abuse problems, guest connections have been prevented.\n" "You can still register on http://www.freechess.org" msgstr "" #: lib/pychess/ic/FICSConnection.py:166 msgid "Connecting to server" msgstr "Sunucuya bağlanılıyor" #: lib/pychess/ic/FICSConnection.py:181 msgid "Logging on to server" msgstr "Sunucuda oturum açılıyor" #: lib/pychess/ic/FICSConnection.py:239 msgid "Setting up environment" msgstr "" #: lib/pychess/ic/FICSObjects.py:35 lib/pychess/ic/FICSObjects.py:47 #, python-format msgid "%(player)s is %(status)s" msgstr "" #: lib/pychess/ic/FICSObjects.py:46 msgid "not playing" msgstr "" #: lib/pychess/ic/FICSObjects.py:54 lib/pychess/ic/ICLounge.py:1136 #: lib/pychess/ic/ICLounge.py:2209 lib/pychess/ic/__init__.py:98 #: lib/pychess/widgets/newGameDialog.py:153 msgid "Blitz" msgstr "Blitz - Hızlı oyun" #: lib/pychess/ic/FICSObjects.py:58 lib/pychess/ic/ICLounge.py:1137 #: lib/pychess/ic/ICLounge.py:2209 lib/pychess/ic/__init__.py:100 msgid "Lightning" msgstr "Yıldırım" #: lib/pychess/ic/FICSObjects.py:60 lib/pychess/Variants/atomic.py:15 msgid "Atomic" msgstr "" #: lib/pychess/ic/FICSObjects.py:62 lib/pychess/Variants/bughouse.py:9 msgid "Bughouse" msgstr "" #: lib/pychess/ic/FICSObjects.py:64 lib/pychess/Variants/crazyhouse.py:9 msgid "Crazyhouse" msgstr "" #: lib/pychess/ic/FICSObjects.py:66 lib/pychess/Variants/losers.py:9 msgid "Losers" msgstr "Kaybedenler" #: lib/pychess/ic/FICSObjects.py:68 lib/pychess/Variants/suicide.py:12 msgid "Suicide" msgstr "" #: lib/pychess/ic/FICSObjects.py:70 lib/pychess/ic/__init__.py:129 msgid "Wild" msgstr "Vahşi" #: lib/pychess/ic/FICSObjects.py:117 msgid "Online" msgstr "Çevrimiçi" #: lib/pychess/ic/FICSObjects.py:118 lib/pychess/ic/FICSObjects.py:143 msgid "Offline" msgstr "Çevrimdışı" #: lib/pychess/ic/FICSObjects.py:133 msgid "Available" msgstr "Uygun" #: lib/pychess/ic/FICSObjects.py:135 msgid "Playing" msgstr "Oynuyor" #: lib/pychess/ic/FICSObjects.py:141 msgid "Idle" msgstr "Boşta" #: lib/pychess/ic/FICSObjects.py:145 msgid "Examining" msgstr "" #: lib/pychess/ic/FICSObjects.py:147 msgid "Not Available" msgstr "" #: lib/pychess/ic/FICSObjects.py:149 msgid "Running Simul Match" msgstr "" #: lib/pychess/ic/FICSObjects.py:151 msgid "In Tournament" msgstr "" #: lib/pychess/ic/FICSObjects.py:308 lib/pychess/ic/FICSObjects.py:492 #: lib/pychess/ic/ICLounge.py:2278 msgid "Unrated" msgstr "Puansız" #: lib/pychess/ic/FICSObjects.py:491 lib/pychess/ic/ICLounge.py:670 #: lib/pychess/ic/ICLounge.py:1358 lib/pychess/ic/ICLounge.py:1558 #: lib/pychess/ic/ICLounge.py:2113 msgid "Rated" msgstr "Puanlı" #: lib/pychess/ic/FICSObjects.py:498 lib/pychess/ic/ICLounge.py:2098 #, python-format msgid "%d min" msgstr "%d dakika" #: lib/pychess/ic/FICSObjects.py:500 #, python-format msgid " + %d sec" msgstr "+ %d saniye" #: lib/pychess/ic/FICSObjects.py:517 #, python-format msgid "%(player)s plays %(color)s" msgstr "" #: lib/pychess/ic/FICSObjects.py:519 lib/pychess/ic/ICLounge.py:909 msgid "white" msgstr "beyaz" #: lib/pychess/ic/FICSObjects.py:519 lib/pychess/ic/ICLounge.py:909 msgid "black" msgstr "siyah" #: lib/pychess/ic/FICSObjects.py:565 msgid "This is a continuation of an adjourned match" msgstr "" #: lib/pychess/ic/FICSObjects.py:654 msgid "Opponent Rating" msgstr "" #: lib/pychess/ic/FICSObjects.py:656 msgid "Manual Accept" msgstr "Manuel Onaylama" #: lib/pychess/ic/FICSObjects.py:810 msgid "Private" msgstr "" #: lib/pychess/ic/FICSObjects.py:930 lib/pychess/ic/ICLounge.py:527 #: lib/pychess/Savers/epd.py:139 msgid "Unknown" msgstr "Bilinmeyen" #: lib/pychess/ic/ICLogon.py:159 lib/pychess/ic/ICLogon.py:165 msgid "Connection Error" msgstr "Bağlantı Hatası" #: lib/pychess/ic/ICLogon.py:161 msgid "Log on Error" msgstr "Oturum açmada hata" #: lib/pychess/ic/ICLogon.py:163 msgid "Connection was closed" msgstr "Bağlantı kapatıldı" #: lib/pychess/ic/ICLogon.py:169 msgid "Address Error" msgstr "Adres Hatası" #: lib/pychess/ic/ICLogon.py:172 msgid "Auto-logout" msgstr "Otomatik-Çıkış" #: lib/pychess/ic/ICLogon.py:173 msgid "You have been logged out because you were idle more than 60 minutes" msgstr "" #: lib/pychess/ic/ICLounge.py:222 msgid "You have to set kibitz on to see bot messages here." msgstr "" #: lib/pychess/ic/ICLounge.py:241 msgid "" "You may only have 3 outstanding seeks at the same time. If you want to add a" " new seek you must clear your currently active seeks. Clear your seeks?" msgstr "" #: lib/pychess/ic/ICLounge.py:258 msgid "You can't touch this! You are examining a game." msgstr "" #: lib/pychess/ic/ICLounge.py:270 msgid " has declined your offer for a match" msgstr "" #: lib/pychess/ic/ICLounge.py:283 msgid " is censoring you" msgstr "" #: lib/pychess/ic/ICLounge.py:296 msgid " noplay listing you" msgstr "" #: lib/pychess/ic/ICLounge.py:311 msgid " uses a formula not fitting your match request:" msgstr "" #: lib/pychess/ic/ICLounge.py:325 msgid "to manual accept" msgstr "" #: lib/pychess/ic/ICLounge.py:327 msgid "to automatic accept" msgstr "" #: lib/pychess/ic/ICLounge.py:329 msgid "rating range now" msgstr "" #: lib/pychess/ic/ICLounge.py:330 msgid "Seek updated" msgstr "" #: lib/pychess/ic/ICLounge.py:342 msgid "Your seeks have been removed" msgstr "" #: lib/pychess/ic/ICLounge.py:363 msgid " has arrived" msgstr "" #: lib/pychess/ic/ICLounge.py:370 msgid " has departed" msgstr "" #: lib/pychess/ic/ICLounge.py:374 msgid " is present" msgstr "" #: lib/pychess/ic/ICLounge.py:391 sidepanel/chatPanel.py:17 msgid "Chat" msgstr "" #: lib/pychess/ic/ICLounge.py:472 sidepanel/bookPanel.py:366 msgid "Win" msgstr "Kazandın" #: lib/pychess/ic/ICLounge.py:472 sidepanel/bookPanel.py:360 msgid "Draw" msgstr "Berabere" #: lib/pychess/ic/ICLounge.py:472 sidepanel/bookPanel.py:363 msgid "Loss" msgstr "Kaydettin" #: lib/pychess/ic/ICLounge.py:482 msgid "" "On FICS, your \"Wild\" rating encompasses all of the following variants at " "all time controls:\n" msgstr "" #: lib/pychess/ic/ICLounge.py:494 msgid "Sanctions" msgstr "" #: lib/pychess/ic/ICLounge.py:499 msgid "Email" msgstr "E-posta" #: lib/pychess/ic/ICLounge.py:504 msgid "Spent" msgstr "Harcanan" #: lib/pychess/ic/ICLounge.py:506 msgid "online in total" msgstr "toplam çevirimiçi süre" #: lib/pychess/ic/ICLounge.py:512 msgid "Ping" msgstr "CTCP PING yanıtı" #: lib/pychess/ic/ICLounge.py:517 msgid "Connecting" msgstr "Bağlanıyor" #: lib/pychess/ic/ICLounge.py:544 msgid "" "You are currently logged in as a guest.\n" "A guest can't play rated games and therefore isn't able to play as many of the types of matches offered as a registered user. To register an account, go to http://www.freechess.org/Register/index.html." msgstr "" #: lib/pychess/ic/ICLounge.py:669 lib/pychess/ic/ICLounge.py:1136 msgid "Name" msgstr "Ad" #: lib/pychess/ic/ICLounge.py:670 lib/pychess/ic/ICLounge.py:1358 #: lib/pychess/ic/ICLounge.py:1558 msgid "Type" msgstr "Tür" #: lib/pychess/ic/ICLounge.py:670 lib/pychess/ic/ICLounge.py:1558 msgid "Clock" msgstr "Saat" #: lib/pychess/ic/ICLounge.py:726 lib/pychess/ic/ICLounge.py:923 #: lib/pychess/Players/Human.py:250 msgid "Accept" msgstr "Kabul et" #: lib/pychess/ic/ICLounge.py:728 msgid "Assess" msgstr "" #: lib/pychess/ic/ICLounge.py:734 msgid "Archived" msgstr "" #: lib/pychess/ic/ICLounge.py:848 #, python-format msgid "Active seeks: %d" msgstr "" #: lib/pychess/ic/ICLounge.py:897 #, python-format msgid "" " would like to resume your adjourned %(time)s %(gametype)s " "game." msgstr "" #: lib/pychess/ic/ICLounge.py:902 #, python-format msgid "" " challenges you to a %(time)s %(rated)s %(gametype)s game" msgstr "" #: lib/pychess/ic/ICLounge.py:907 #, python-format msgid " where %(player)s plays %(color)s." msgstr "" #: lib/pychess/ic/ICLounge.py:924 lib/pychess/Players/Human.py:251 msgid "Decline" msgstr "Reddet" #: lib/pychess/ic/ICLounge.py:1065 msgid " min" msgstr "dk" #: lib/pychess/ic/ICLounge.py:1137 msgid "Status" msgstr "Durum" #: lib/pychess/ic/ICLounge.py:1203 lib/pychess/ic/ICLounge.py:1233 #, python-format msgid "Players: %d" msgstr "Oyuncular: %d" #: lib/pychess/ic/ICLounge.py:1469 #, python-format msgid "Games running: %d" msgstr "Çalışan oyunlar: %d" #: lib/pychess/ic/ICLounge.py:1559 msgid "Date/Time" msgstr "Tarih/Zaman" #: lib/pychess/ic/ICLounge.py:1614 #, python-format msgid "" " with whom you have an adjourned %(timecontrol)s %(gametype)s " "game is online." msgstr "" #: lib/pychess/ic/ICLounge.py:1635 msgid "Request Continuation" msgstr "" #: lib/pychess/ic/ICLounge.py:1637 msgid "Examine Adjourned Game" msgstr "" #: lib/pychess/ic/ICLounge.py:1965 msgid "" "The chain button is disabled because you are logged in as a guest. Guests " "can't establish ratings, and the chain button's state has no effect when " "there is no rating to which to tie \"Opponent Strength\" to" msgstr "" #: lib/pychess/ic/ICLounge.py:2006 msgid "Challenge: " msgstr "Meydan Okuma:" #: lib/pychess/ic/ICLounge.py:2044 msgid "If set you can refuse players accepting your seek" msgstr "" #: lib/pychess/ic/ICLounge.py:2048 lib/pychess/ic/ICLounge.py:2051 msgid "This option is not applicable because you're challenging a player" msgstr "" #: lib/pychess/ic/ICLounge.py:2064 msgid "Edit Seek: " msgstr "" #: lib/pychess/ic/ICLounge.py:2095 #, python-format msgid "%(minutes)d min + %(gain)d sec/move" msgstr "" #: lib/pychess/ic/ICLounge.py:2116 msgid "Manual" msgstr "Elle" #: lib/pychess/ic/ICLounge.py:2256 msgid "Any strength" msgstr "" #: lib/pychess/ic/ICLounge.py:2308 msgid "You can't play rated games because you are logged in as a guest" msgstr "Misafir olarak girdiğiniz için puanlandırılmış oyunlarda oynayamzsınız " #: lib/pychess/ic/ICLounge.py:2312 msgid "You can't play rated games because \"Untimed\" is checked, " msgstr "Süresiz özelliği etkin olduğu için puanlandırlımış oyunları oynayamazsınız," #: lib/pychess/ic/ICLounge.py:2313 msgid "and on FICS, untimed games can't be rated" msgstr "" #: lib/pychess/ic/ICLounge.py:2317 msgid "This option is not available because you're challenging a guest, " msgstr "" #: lib/pychess/ic/ICLounge.py:2318 msgid "and guests can't play rated games" msgstr "" #: lib/pychess/ic/ICLounge.py:2332 lib/pychess/Variants/shuffle.py:16 #: lib/pychess/widgets/newGameDialog.py:266 msgid "Shuffle" msgstr "Karıştır" #: lib/pychess/ic/ICLounge.py:2333 lib/pychess/widgets/newGameDialog.py:267 msgid "Other (standard rules)" msgstr "" #: lib/pychess/ic/ICLounge.py:2334 lib/pychess/widgets/newGameDialog.py:268 msgid "Other (non standard rules)" msgstr "" #: lib/pychess/ic/ICLounge.py:2421 msgid "You can't select a variant because \"Untimed\" is checked, " msgstr "" #: lib/pychess/ic/ICLounge.py:2422 msgid "and on FICS, untimed games have to be normal chess rules" msgstr "" #: lib/pychess/ic/ICLounge.py:2454 msgid "Change Tolerance" msgstr "" #: lib/pychess/ic/__init__.py:102 msgid "Examined" msgstr "" #: lib/pychess/ic/__init__.py:103 msgid "Other" msgstr "Diğer" #: lib/pychess/ic/__init__.py:182 msgid "Administrator" msgstr "Yönetici" #: lib/pychess/ic/__init__.py:182 msgid "Blindfold Account" msgstr "" #: lib/pychess/ic/__init__.py:182 msgid "Computer" msgstr "" #: lib/pychess/ic/__init__.py:183 msgid "Team Account" msgstr "Takım Hesabı" #: lib/pychess/ic/__init__.py:183 msgid "Unregistered" msgstr "" #: lib/pychess/ic/__init__.py:183 msgid "Chess Advisor" msgstr "" #: lib/pychess/ic/__init__.py:184 msgid "Service Representative" msgstr "" #: lib/pychess/ic/__init__.py:184 msgid "Tournament Director" msgstr "" #: lib/pychess/ic/__init__.py:184 msgid "Mamer Manager" msgstr "" #: lib/pychess/ic/__init__.py:185 msgid "Grand Master" msgstr "" #: lib/pychess/ic/__init__.py:185 msgid "International Master" msgstr "" #: lib/pychess/ic/__init__.py:185 msgid "FIDE Master" msgstr "" #: lib/pychess/ic/__init__.py:186 msgid "Woman Grand Master" msgstr "" #: lib/pychess/ic/__init__.py:186 msgid "Woman International Master" msgstr "" #: lib/pychess/ic/__init__.py:186 msgid "Woman FIDE Master" msgstr "" #: lib/pychess/ic/__init__.py:187 msgid "Dummy Account" msgstr "" #: lib/pychess/ic/__init__.py:191 msgid "*" msgstr "*" #: lib/pychess/ic/__init__.py:191 lib/pychess/Utils/repr.py:14 msgid "B" msgstr "F" #: lib/pychess/ic/__init__.py:191 msgid "C" msgstr "" #: lib/pychess/ic/__init__.py:192 msgid "T" msgstr "" #: lib/pychess/ic/__init__.py:192 msgid "U" msgstr "" #: lib/pychess/ic/__init__.py:192 msgid "CA" msgstr "" #: lib/pychess/ic/__init__.py:193 msgid "SR" msgstr "" #: lib/pychess/ic/__init__.py:193 msgid "TD" msgstr "" #: lib/pychess/ic/__init__.py:193 msgid "TM" msgstr "" #: lib/pychess/ic/__init__.py:194 msgid "GM" msgstr "" #: lib/pychess/ic/__init__.py:194 msgid "IM" msgstr "" #: lib/pychess/ic/__init__.py:194 msgid "FM" msgstr "" #: lib/pychess/ic/__init__.py:195 msgid "WGM" msgstr "" #: lib/pychess/ic/__init__.py:195 msgid "WIM" msgstr "" #: lib/pychess/ic/__init__.py:195 msgid "WFM" msgstr "" #: lib/pychess/ic/__init__.py:195 msgid "D" msgstr "D" #: lib/pychess/ic/__init__.py:195 msgid "H" msgstr "" #: lib/pychess/ic/__init__.py:195 msgid "CM" msgstr "" #: lib/pychess/ic/__init__.py:195 msgid "FA" msgstr "" #: lib/pychess/ic/__init__.py:195 msgid "NM" msgstr "" #: lib/pychess/Players/CECPEngine.py:857 #, python-format msgid "The engine %s reports an error:" msgstr "" #: lib/pychess/Players/Human.py:20 msgid "Your opponent has offered you a draw." msgstr "" #: lib/pychess/Players/Human.py:21 msgid "" "Your opponent has offered you a draw. If you accept this offer, the game " "will end with a score of 1/2 - 1/2." msgstr "" #: lib/pychess/Players/Human.py:23 msgid "Your opponent wants to abort the game." msgstr "" #: lib/pychess/Players/Human.py:24 msgid "" "Your opponent has asked that the game be aborted. If you accept this offer, " "the game will end with no rating change." msgstr "" #: lib/pychess/Players/Human.py:26 msgid "Your opponent wants to adjourn the game." msgstr "" #: lib/pychess/Players/Human.py:27 msgid "" "Your opponent has asked that the game be adjourned. If you accept this " "offer, the game will be adjourned and you can resume it later (when your " "opponent is online and both players agree to resume)." msgstr "" #: lib/pychess/Players/Human.py:29 #, python-format msgid "Your opponent wants to undo %s move(s)." msgstr "" #: lib/pychess/Players/Human.py:30 #, python-format msgid "" "Your opponent has asked that the last %s move(s) be undone. If you accept " "this offer, the game will continue from the earlier position." msgstr "" #: lib/pychess/Players/Human.py:32 msgid "Your opponent wants to pause the game." msgstr "" #: lib/pychess/Players/Human.py:33 msgid "" "Your opponent has asked that the game be paused. If you accept this offer, " "the game clock will be paused until both players agree to resume the game." msgstr "" #: lib/pychess/Players/Human.py:35 msgid "Your opponent wants to resume the game." msgstr "" #: lib/pychess/Players/Human.py:36 msgid "" "Your opponent has asked that the game be resumed. If you accept this offer, " "the game clock will continue from where it was paused." msgstr "" #: lib/pychess/Players/Human.py:40 msgid "The resignation" msgstr "" #: lib/pychess/Players/Human.py:41 msgid "The flag call" msgstr "" #: lib/pychess/Players/Human.py:42 msgid "The draw offer" msgstr "" #: lib/pychess/Players/Human.py:43 msgid "The abort offer" msgstr "" #: lib/pychess/Players/Human.py:44 msgid "The adjourn offer" msgstr "" #: lib/pychess/Players/Human.py:45 msgid "The pause offer" msgstr "" #: lib/pychess/Players/Human.py:46 msgid "The resume offer" msgstr "" #: lib/pychess/Players/Human.py:47 msgid "The offer to switch sides" msgstr "" #: lib/pychess/Players/Human.py:48 msgid "The takeback offer" msgstr "" #: lib/pychess/Players/Human.py:52 msgid "resign" msgstr "Geri çekil" #: lib/pychess/Players/Human.py:53 msgid "call your opponents flag" msgstr "" #: lib/pychess/Players/Human.py:54 msgid "offer a draw" msgstr "" #: lib/pychess/Players/Human.py:55 msgid "offer an abort" msgstr "" #: lib/pychess/Players/Human.py:56 msgid "offer to adjourn" msgstr "" #: lib/pychess/Players/Human.py:57 msgid "offer a pause" msgstr "" #: lib/pychess/Players/Human.py:58 msgid "offer to resume" msgstr "" #: lib/pychess/Players/Human.py:59 msgid "offer to switch sides" msgstr "" #: lib/pychess/Players/Human.py:60 msgid "offer a takeback" msgstr "" #: lib/pychess/Players/Human.py:61 msgid "ask your opponent to move" msgstr "" #: lib/pychess/Players/Human.py:66 msgid "Your opponent is not out of time." msgstr "Rakibinizin süresi bitmedi." #: lib/pychess/Players/Human.py:68 msgid "The clock hasn't been started yet." msgstr "" #: lib/pychess/Players/Human.py:70 msgid "You can't switch colors during the game." msgstr "" #: lib/pychess/Players/Human.py:72 msgid "You have tried to undo too many moves." msgstr "" #: lib/pychess/Players/Human.py:180 msgid "Your opponent asks you to hurry!" msgstr "Rakibiniz çabuk olmanızı istiyor!" #: lib/pychess/Players/Human.py:181 msgid "" "Generally this means nothing, as the game is time-based, but if you want to " "please your opponent, perhaps you should get going." msgstr "" #: lib/pychess/Players/Human.py:259 #, python-format msgid "%s was declined by your opponent" msgstr "%s rakibiniz tarafından reddedildi" #: lib/pychess/Players/Human.py:260 #, python-format msgid "Resend %s?" msgstr "" #: lib/pychess/Players/Human.py:267 msgid "Resend" msgstr "" #: lib/pychess/Players/Human.py:275 #, python-format msgid "%s was withdrawn by your opponent" msgstr "%s hamlesi rakibiniz tarafından geri alındı" #: lib/pychess/Players/Human.py:276 msgid "Your opponent seems to have changed their mind." msgstr "" #: lib/pychess/Players/Human.py:290 #, python-format msgid "Unable to accept %s" msgstr "%s kabul edilemiyor" #: lib/pychess/Players/Human.py:291 msgid "Probably because it has been withdrawn." msgstr "" #: lib/pychess/Players/Human.py:298 #, python-format msgid "%s returns an error" msgstr "%s bir hata döndürdü" #: lib/pychess/Savers/chessalpha2.py:12 msgid "Chess Alpha 2 Diagram" msgstr "" #: lib/pychess/Savers/chesspastebin.py:39 msgid "Game shared at " msgstr "" #: lib/pychess/Savers/chesspastebin.py:41 msgid "(Link is available on clipboard.)" msgstr "" #: lib/pychess/Savers/database.py:19 msgid "PyChess database" msgstr "" #: lib/pychess/Savers/epd.py:12 msgid "Chess Position" msgstr "Satranç Pozisyonu" #: lib/pychess/Savers/fen.py:12 msgid "Simple Chess Position" msgstr "Basit Satranç Pozisyonu" #: lib/pychess/Savers/fen.py:44 lib/pychess/Savers/pgn.py:329 msgid "The game can't be loaded, because of an error parsing FEN" msgstr "" #: lib/pychess/Savers/pgnbase.py:100 #, python-format msgid "" "The game can't be read to end, because of an error parsing move %(moveno)s " "'%(notation)s'." msgstr "" #: lib/pychess/Savers/pgnbase.py:102 #, python-format msgid "The move failed because %s." msgstr "" #: lib/pychess/Savers/pgnbase.py:110 #, python-format msgid "Error parsing move %(moveno)s %(mstr)s" msgstr "" #: lib/pychess/Savers/pgn.py:28 msgid "Chess Game" msgstr "Satranç Oyunu" #: lib/pychess/Savers/pgn.py:362 msgid "Invalid move." msgstr "" #: lib/pychess/Savers/png.py:15 msgid "Png image" msgstr "" #: lib/pychess/System/ping.py:31 msgid "Destination Host Unreachable" msgstr "" #: lib/pychess/System/ping.py:74 msgid "Died" msgstr "Öldü" #: lib/pychess/Utils/GameModel.py:147 msgid "Local Event" msgstr "Müsabaka" #: lib/pychess/Utils/GameModel.py:148 msgid "Local Site" msgstr "Yerel Site" #: lib/pychess/Utils/repr.py:12 msgid "Pawn" msgstr "Pençe" #: lib/pychess/Utils/repr.py:14 msgid "P" msgstr "P" #: lib/pychess/Utils/repr.py:14 msgid "N" msgstr "A" #: lib/pychess/Utils/repr.py:14 msgid "R" msgstr "K" #: lib/pychess/Utils/repr.py:14 msgid "Q" msgstr "V" #: lib/pychess/Utils/repr.py:14 msgid "K" msgstr "Ş" #: lib/pychess/Utils/repr.py:17 msgid "The game ended in a draw" msgstr "Oyun beraberlikle sonuçlandı" #: lib/pychess/Utils/repr.py:18 #, python-format msgid "%(white)s won the game" msgstr "%(white)s oyunu kazandı" #: lib/pychess/Utils/repr.py:19 #, python-format msgid "%(black)s won the game" msgstr "%(black)s oyunu kazandı" #: lib/pychess/Utils/repr.py:20 msgid "The game has been killed" msgstr "Bu oyun sonlandırıldı" #: lib/pychess/Utils/repr.py:21 msgid "The game has been adjourned" msgstr "Bu oyun sonraya bırakıldı" #: lib/pychess/Utils/repr.py:22 msgid "The game has been aborted" msgstr "Bu oyun iptal edildi" #: lib/pychess/Utils/repr.py:26 msgid "Because neither player has sufficient material to mate" msgstr "" #: lib/pychess/Utils/repr.py:27 msgid "Because the same position was repeated three times in a row" msgstr "" #: lib/pychess/Utils/repr.py:28 msgid "Because the last 50 moves brought nothing new" msgstr "" #: lib/pychess/Utils/repr.py:29 msgid "Because both players ran out of time" msgstr "" #: lib/pychess/Utils/repr.py:30 #, python-format msgid "Because %(mover)s stalemated" msgstr "" #: lib/pychess/Utils/repr.py:31 msgid "Because both players agreed to a draw" msgstr "" #: lib/pychess/Utils/repr.py:32 lib/pychess/Utils/repr.py:42 msgid "Because of adjudication by an admin" msgstr "" #: lib/pychess/Utils/repr.py:33 msgid "Because the game exceed the max length" msgstr "" #: lib/pychess/Utils/repr.py:34 #, python-format msgid "" "Because %(white)s ran out of time and %(black)s has insufficient material to" " mate" msgstr "" #: lib/pychess/Utils/repr.py:35 #, python-format msgid "" "Because %(black)s ran out of time and %(white)s has insufficient material to" " mate" msgstr "" #: lib/pychess/Utils/repr.py:36 msgid "Because both players have the same amount of pieces" msgstr "" #: lib/pychess/Utils/repr.py:38 #, python-format msgid "Because %(loser)s resigned" msgstr "" #: lib/pychess/Utils/repr.py:39 #, python-format msgid "Because %(loser)s ran out of time" msgstr "" #: lib/pychess/Utils/repr.py:40 #, python-format msgid "Because %(loser)s was checkmated" msgstr "" #: lib/pychess/Utils/repr.py:41 #, python-format msgid "Because %(loser)s disconnected" msgstr "" #: lib/pychess/Utils/repr.py:43 #, python-format msgid "Because %(winner)s has fewer pieces" msgstr "" #: lib/pychess/Utils/repr.py:44 #, python-format msgid "Because %(winner)s lost all pieces" msgstr "" #: lib/pychess/Utils/repr.py:45 #, python-format msgid "Because %(loser)s king exploded" msgstr "" #: lib/pychess/Utils/repr.py:46 #, python-format msgid "Because %(winner)s king reached the center" msgstr "" #: lib/pychess/Utils/repr.py:47 #, python-format msgid "Because %(winner)s was giving check 3 times" msgstr "" #: lib/pychess/Utils/repr.py:49 msgid "Because a player lost connection" msgstr "" #: lib/pychess/Utils/repr.py:50 msgid "Because both players agreed to an adjournment" msgstr "" #: lib/pychess/Utils/repr.py:51 msgid "Because the server was shut down" msgstr "" #: lib/pychess/Utils/repr.py:52 msgid "" "Because a player lost connection and the other player requested adjournment" msgstr "" #: lib/pychess/Utils/repr.py:53 #, python-format msgid "" "Because %(black)s lost connection to the server and %(white)s requested " "adjournment" msgstr "" #: lib/pychess/Utils/repr.py:54 #, python-format msgid "" "Because %(white)s lost connection to the server and %(black)s requested " "adjournment" msgstr "" #: lib/pychess/Utils/repr.py:55 #, python-format msgid "Because %(white)s lost connection to the server" msgstr "" #: lib/pychess/Utils/repr.py:56 #, python-format msgid "Because %(black)s lost connection to the server" msgstr "" #: lib/pychess/Utils/repr.py:58 msgid "Because of adjudication by an admin. No rating changes have occurred." msgstr "" #: lib/pychess/Utils/repr.py:59 msgid "" "Because both players agreed to abort the game. No rating changes have " "occurred." msgstr "" #: lib/pychess/Utils/repr.py:60 msgid "Because of courtesy by a player. No rating changes have occurred." msgstr "" #: lib/pychess/Utils/repr.py:61 msgid "" "Because a player aborted the game. Either player can abort the game without " "the other's consent before the second move. No rating changes have occurred." msgstr "" #: lib/pychess/Utils/repr.py:62 msgid "" "Because a player disconnected and there are too few moves to warrant " "adjournment. No rating changes have occurred." msgstr "" #: lib/pychess/Utils/repr.py:63 msgid "Because the server was shut down. No rating changes have occurred." msgstr "" #: lib/pychess/Utils/repr.py:65 #, python-format msgid "Because the %(white)s engine died" msgstr "" #: lib/pychess/Utils/repr.py:66 #, python-format msgid "Because the %(black)s engine died" msgstr "" #: lib/pychess/Utils/repr.py:67 msgid "Because the connection to the server was lost" msgstr "" #: lib/pychess/Utils/repr.py:68 msgid "The reason is unknown" msgstr "" #: lib/pychess/Utils/TimeModel.py:229 msgid "min" msgstr "dakika" #: lib/pychess/Utils/TimeModel.py:231 msgid "sec" msgstr "saniye" #: lib/pychess/Variants/asean.py:12 msgid "" "ASEAN: http://www.ncf-" "phil.org/downloadables/2014/May/Asean_chess/Laws_of_ASEAN_Chess_2011_Nov_26.doc" msgstr "" #: lib/pychess/Variants/asean.py:13 msgid "ASEAN" msgstr "" #: lib/pychess/Variants/asean.py:33 msgid "Makruk: http://en.wikipedia.org/wiki/Makruk" msgstr "" #: lib/pychess/Variants/asean.py:34 msgid "Makruk" msgstr "" #: lib/pychess/Variants/asean.py:60 msgid "Cambodian: http://www.khmerinstitute.org/culture/ok.html" msgstr "" #: lib/pychess/Variants/asean.py:61 msgid "Cambodian" msgstr "" #: lib/pychess/Variants/asean.py:86 msgid "" "Ai-Wok: http://www.open-" "aurec.com/wbforum/viewtopic.php?p=199364&sid=20963a1de2c164050de019e5ed6bf7c4#p199364" msgstr "" #: lib/pychess/Variants/asean.py:87 msgid "Ai-Wok" msgstr "" #: lib/pychess/Variants/asean.py:111 msgid "Sittuyin: http://en.wikipedia.org/wiki/Sittuyin" msgstr "" #: lib/pychess/Variants/asean.py:112 msgid "Sittuyin" msgstr "" #: lib/pychess/Variants/asymmetricrandom.py:12 msgid "" "FICS wild/4: http://www.freechess.org/Help/HelpFiles/wild.html\n" "* Randomly chosen pieces (two queens or three rooks possible)\n" "* Exactly one king of each color\n" "* Pieces placed randomly behind the pawns, SUBJECT TO THE CONSTRAINT THAT THE BISHOPS ARE BALANCED\n" "* No castling\n" "* Black's arrangement DOES NOT mirrors white's" msgstr "" #: lib/pychess/Variants/asymmetricrandom.py:18 msgid "Asymmetric Random" msgstr "" #: lib/pychess/Variants/atomic.py:14 msgid "FICS atomic: http://www.freechess.org/Help/HelpFiles/atomic.html" msgstr "" #: lib/pychess/Variants/blindfold.py:7 msgid "" "Classic chess rules with hidden figurines\n" "http://en.wikipedia.org/wiki/Blindfold_chess" msgstr "" #: lib/pychess/Variants/blindfold.py:9 #: lib/pychess/widgets/newGameDialog.py:264 msgid "Blindfold" msgstr "" #: lib/pychess/Variants/blindfold.py:18 msgid "" "Classic chess rules with hidden pawns\n" "http://en.wikipedia.org/wiki/Blindfold_chess" msgstr "" #: lib/pychess/Variants/blindfold.py:20 msgid "Hidden pawns" msgstr "" #: lib/pychess/Variants/blindfold.py:29 msgid "" "Classic chess rules with hidden pieces\n" "http://en.wikipedia.org/wiki/Blindfold_chess" msgstr "" #: lib/pychess/Variants/blindfold.py:31 msgid "Hidden pieces" msgstr "" #: lib/pychess/Variants/blindfold.py:40 msgid "" "Classic chess rules with all pieces white\n" "http://en.wikipedia.org/wiki/Blindfold_chess" msgstr "" #: lib/pychess/Variants/blindfold.py:42 msgid "All white" msgstr "Hepsi beyaz" #: lib/pychess/Variants/bughouse.py:8 msgid "FICS bughouse: http://www.freechess.org/Help/HelpFiles/bughouse.html" msgstr "" #: lib/pychess/Variants/corner.py:12 msgid "" "http://brainking.com/en/GameRules?tp=2\n" "* Placement of the pieces on the 1st and 8th row are randomized\n" "* The king is in the right hand corner\n" "* Bishops must start on opposite color squares\n" "* Black's starting position is obtained by rotating white's position 180 degrees around the board's center\n" "* No castling" msgstr "" #: lib/pychess/Variants/corner.py:18 msgid "Corner" msgstr "Köşe" #: lib/pychess/Variants/crazyhouse.py:8 msgid "" "FICS crazyhouse: http://www.freechess.org/Help/HelpFiles/crazyhouse.html" msgstr "" #: lib/pychess/Variants/euroshogi.py:9 msgid "EuroShogi: http://en.wikipedia.org/wiki/EuroShogi" msgstr "" #: lib/pychess/Variants/euroshogi.py:10 msgid "EuroShogi" msgstr "" #: lib/pychess/Variants/fischerandom.py:18 msgid "" "http://en.wikipedia.org/wiki/Chess960\n" "FICS wild/fr: http://www.freechess.org/Help/HelpFiles/wild.html" msgstr "" #: lib/pychess/Variants/fischerandom.py:20 msgid "Fischer Random" msgstr "" #: lib/pychess/Variants/kingofthehill.py:8 msgid "" "Bringing your king legally to the center (e4, d4, e5, d5) instantly wins the game!\n" "Normal rules apply in other cases and checkmate also ends the game." msgstr "" #: lib/pychess/Variants/kingofthehill.py:10 msgid "King of the hill" msgstr "" #: lib/pychess/Variants/knightodds.py:8 msgid "One player starts with one less knight piece" msgstr "" #: lib/pychess/Variants/knightodds.py:9 msgid "Knight odds" msgstr "" #: lib/pychess/Variants/losers.py:8 msgid "FICS losers: http://www.freechess.org/Help/HelpFiles/losers_chess.html" msgstr "" #: lib/pychess/Variants/normal.py:4 msgid "" "Classic chess rules\n" "http://en.wikipedia.org/wiki/Chess" msgstr "" #: lib/pychess/Variants/normal.py:6 lib/pychess/widgets/newGameDialog.py:157 msgid "Normal" msgstr "Olağan" #: lib/pychess/Variants/pawnodds.py:8 msgid "One player starts with one less pawn piece" msgstr "" #: lib/pychess/Variants/pawnodds.py:9 msgid "Pawn odds" msgstr "" #: lib/pychess/Variants/pawnspassed.py:11 msgid "" "FICS wild/8a: http://www.freechess.org/Help/HelpFiles/wild.html\n" "White pawns start on 5th rank and black pawns on the 4th rank" msgstr "" #: lib/pychess/Variants/pawnspassed.py:13 msgid "Pawns Passed" msgstr "" #: lib/pychess/Variants/pawnspushed.py:10 msgid "" "FICS wild/8: http://www.freechess.org/Help/HelpFiles/wild.html\n" "Pawns start on 4th and 5th ranks rather than 2nd and 7th" msgstr "" #: lib/pychess/Variants/pawnspushed.py:12 msgid "Pawns Pushed" msgstr "" #: lib/pychess/Variants/queenodds.py:8 msgid "One player starts with one less queen piece" msgstr "" #: lib/pychess/Variants/queenodds.py:9 msgid "Queen odds" msgstr "" #: lib/pychess/Variants/randomchess.py:11 msgid "" "FICS wild/3: http://www.freechess.org/Help/HelpFiles/wild.html\n" "* Randomly chosen pieces (two queens or three rooks possible)\n" "* Exactly one king of each color\n" "* Pieces placed randomly behind the pawns\n" "* No castling\n" "* Black's arrangement mirrors white's" msgstr "" #: lib/pychess/Variants/randomchess.py:17 #: lib/pychess/widgets/TaskerManager.py:155 msgid "Random" msgstr "Rastgele" #: lib/pychess/Variants/rookodds.py:8 msgid "One player starts with one less rook piece" msgstr "" #: lib/pychess/Variants/rookodds.py:9 msgid "Rook odds" msgstr "" #: lib/pychess/Variants/shuffle.py:11 msgid "" "xboard nocastle: http://home.hccnet.nl/h.g.muller/engine-intf.html#8\n" "FICS wild/2: http://www.freechess.org/Help/HelpFiles/wild.html\n" "* Random arrangement of the pieces behind the pawns\n" "* No castling\n" "* Black's arrangement mirrors white's" msgstr "" #: lib/pychess/Variants/suicide.py:11 msgid "" "FICS suicide: http://www.freechess.org/Help/HelpFiles/suicide_chess.html" msgstr "" #: lib/pychess/Variants/theban.py:10 msgid "" "Variant developed by Kai Laskos: " "http://talkchess.com/forum/viewtopic.php?t=40990" msgstr "" #: lib/pychess/Variants/theban.py:11 msgid "Theban" msgstr "" #: lib/pychess/Variants/threecheck.py:10 msgid "Win by giving check 3 times" msgstr "" #: lib/pychess/Variants/threecheck.py:11 msgid "Three-check" msgstr "" #: lib/pychess/Variants/upsidedown.py:10 msgid "" "FICS wild/5: http://www.freechess.org/Help/HelpFiles/wild.html\n" "http://en.wikipedia.org/wiki/Chess_variant#Chess_with_different_starting_positions\n" "Pawns start on their 7th rank rather than their 2nd rank!" msgstr "" #: lib/pychess/Variants/upsidedown.py:13 msgid "Upside Down" msgstr "" #: lib/pychess/Variants/wildcastle.py:10 msgid "" "xboard wildcastle http://home.hccnet.nl/h.g.muller/engine-intf.html#8\n" "FICS wild/0: http://www.freechess.org/Help/HelpFiles/wild.html\n" "* White has the typical set-up at the start.\n" "* Black's pieces are the same, except that the King and Queen are reversed,\n" "* so they are not on the same files as White's King and Queen.\n" "* Castling is done similarly to normal chess:\n" "* o-o-o indicates long castling and o-o short castling." msgstr "" #: lib/pychess/Variants/wildcastle.py:17 msgid "Wildcastle" msgstr "" #: lib/pychess/Variants/wildcastleshuffle.py:11 msgid "" "xboard wildcastle http://home.hccnet.nl/h.g.muller/engine-intf.html#8\n" "FICS wild/1: http://www.freechess.org/Help/HelpFiles/wild.html\n" "* In this variant both sides have the same set of pieces as in normal chess.\n" "* The white king starts on d1 or e1 and the black king starts on d8 or e8,\n" "* and the rooks are in their usual positions.\n" "* Bishops are always on opposite colors.\n" "* Subject to these constraints the position of the pieces on their first ranks is random.\n" "* Castling is done similarly to normal chess:\n" "* o-o-o indicates long castling and o-o short castling." msgstr "" #: lib/pychess/Variants/wildcastleshuffle.py:20 msgid "Wildcastle shuffle" msgstr "" #: lib/pychess/widgets/analyzegameDialog.py:85 msgid "Game analyzing in progress..." msgstr "" #: lib/pychess/widgets/analyzegameDialog.py:86 msgid "Do you want to abort it?" msgstr "" #: lib/pychess/widgets/analyzegameDialog.py:95 #: lib/pychess/widgets/gamewidget.py:202 lib/pychess/widgets/gamewidget.py:320 msgid "Abort" msgstr "Durduruldu" #: lib/pychess/widgets/ChatView.py:125 msgid "Observers" msgstr "" #: lib/pychess/widgets/ChatWindow.py:222 msgid "You have opened no conversations yet" msgstr "" #: lib/pychess/widgets/ChatWindow.py:254 msgid "Only registered users may talk to this channel" msgstr "" #: lib/pychess/widgets/ChatWindow.py:312 msgid "No conversation's selected" msgstr "" #: lib/pychess/widgets/ChatWindow.py:350 msgid "Loading player data" msgstr "" #: lib/pychess/widgets/ChatWindow.py:400 msgid "Receiving list of players" msgstr "" #: lib/pychess/widgets/ChatWindow.py:518 msgid "Friends" msgstr "" #: lib/pychess/widgets/ChatWindow.py:529 msgid "Admin" msgstr "" #: lib/pychess/widgets/ChatWindow.py:540 msgid "More channels" msgstr "" #: lib/pychess/widgets/ChatWindow.py:548 msgid "More players" msgstr "" #: lib/pychess/widgets/ChatWindow.py:558 msgid "Computers" msgstr "" #: lib/pychess/widgets/ChatWindow.py:568 msgid "BlindFold" msgstr "" #: lib/pychess/widgets/ChatWindow.py:578 msgid "Guests" msgstr "" #: lib/pychess/widgets/ChatWindow.py:805 msgid "Conversations" msgstr "" #: lib/pychess/widgets/ChatWindow.py:807 msgid "Conversation info" msgstr "" #: lib/pychess/widgets/enginesDialog.py:152 msgid "Select engine" msgstr "" #: lib/pychess/widgets/enginesDialog.py:156 msgid "Executable files" msgstr "" #: lib/pychess/widgets/enginesDialog.py:176 #: lib/pychess/widgets/enginesDialog.py:210 #: lib/pychess/widgets/enginesDialog.py:235 #, python-format msgid "Unable to add %s" msgstr "" #: lib/pychess/widgets/enginesDialog.py:177 msgid "wine not installed" msgstr "" #: lib/pychess/widgets/enginesDialog.py:211 #: lib/pychess/widgets/enginesDialog.py:236 msgid "There is something wrong with this executable" msgstr "" #: lib/pychess/widgets/enginesDialog.py:266 msgid "Select working directory" msgstr "" #: lib/pychess/widgets/gamenanny.py:115 #, python-format msgid " invalid engine move: %s" msgstr "" #: lib/pychess/widgets/gamenanny.py:134 msgid "Offer Rematch" msgstr "" #: lib/pychess/widgets/gamenanny.py:136 lib/pychess/widgets/gamenanny.py:147 #, python-format msgid "Observe %s" msgstr "" #: lib/pychess/widgets/gamenanny.py:168 msgid "Play Rematch" msgstr "" #: lib/pychess/widgets/gamenanny.py:171 msgid "Undo one move" msgstr "Bir önceki hamleye dön" #: lib/pychess/widgets/gamenanny.py:173 msgid "Undo two moves" msgstr "İki önceki hamleye dön" #: lib/pychess/widgets/gamenanny.py:203 msgid "The game is paused" msgstr "Oyu durduruldu" #: lib/pychess/widgets/gamenanny.py:221 lib/pychess/widgets/gamenanny.py:222 msgid "Loaded game" msgstr "Yüklü oyun" #: lib/pychess/widgets/gamenanny.py:228 msgid "Saved game" msgstr "Kayıtlı oyun" #: lib/pychess/widgets/gamenanny.py:232 msgid "Analyzer started" msgstr "Analiz başladı" #: lib/pychess/widgets/gamenanny.py:281 msgid "You sent an abort offer" msgstr "" #: lib/pychess/widgets/gamenanny.py:283 msgid "You sent an adjournment offer" msgstr "" #: lib/pychess/widgets/gamenanny.py:285 msgid "You sent a draw offer" msgstr "beraberlik teklifinde bulundunuz" #: lib/pychess/widgets/gamenanny.py:287 msgid "You sent a pause offer" msgstr "" #: lib/pychess/widgets/gamenanny.py:289 msgid "You sent a resume offer" msgstr "" #: lib/pychess/widgets/gamenanny.py:291 msgid "You sent an undo offer" msgstr "" #: lib/pychess/widgets/gamenanny.py:293 msgid "You asked your opponent to move" msgstr "" #: lib/pychess/widgets/gamenanny.py:305 #, python-format msgid "Engine, %s, has died" msgstr "Program motoru, %s, öldü" #: lib/pychess/widgets/gamenanny.py:306 msgid "" "PyChess has lost connection to the engine, probably because it has died.\n" "\n" "You can try to start a new game with the engine, or try to play against another one." msgstr "PyChess program motoruyla bağlantısını yitirdi, muhtemelen motor öldüğü için.\n\nYeni bir oyun başlatmayı ya da başka bir motora karşı oynamayı deneyebilirsiniz." #: lib/pychess/widgets/gamewidget.py:204 msgid "" "This game can be automatically aborted without rating loss because there has" " not yet been two moves made" msgstr "" #: lib/pychess/widgets/gamewidget.py:206 msgid "Offer Abort" msgstr "" #: lib/pychess/widgets/gamewidget.py:208 msgid "" "Your opponent must agree to abort the game because there has been two or " "more moves made" msgstr "" #: lib/pychess/widgets/gamewidget.py:226 msgid "This game can not be adjourned because one or both players are guests" msgstr "" #: lib/pychess/widgets/gamewidget.py:243 msgid "Claim Draw" msgstr "" #: lib/pychess/widgets/gamewidget.py:325 msgid "Pause" msgstr "" #: lib/pychess/widgets/gamewidget.py:326 msgid "Resume" msgstr "" #: lib/pychess/widgets/gamewidget.py:328 msgid "Offer Pause" msgstr "" #: lib/pychess/widgets/gamewidget.py:329 msgid "Offer Resume" msgstr "" #: lib/pychess/widgets/gamewidget.py:333 msgid "Undo" msgstr "" #: lib/pychess/widgets/gamewidget.py:335 msgid "Offer Undo" msgstr "" #: lib/pychess/widgets/gamewidget.py:550 msgid " has lagged for 30 seconds" msgstr "" #: lib/pychess/widgets/gamewidget.py:566 msgid " is lagging heavily but hasn't disconnected" msgstr "" #: lib/pychess/widgets/gamewidget.py:567 msgid "Continue to wait for opponent, or try to adjourn the game?" msgstr "" #: lib/pychess/widgets/gamewidget.py:575 msgid "Wait" msgstr "" #: lib/pychess/widgets/gamewidget.py:576 msgid "Adjourn" msgstr "" #: lib/pychess/widgets/gamewidget.py:648 msgid "Jump to initial position" msgstr "" #: lib/pychess/widgets/gamewidget.py:653 msgid "Step back one move" msgstr "" #: lib/pychess/widgets/gamewidget.py:658 msgid "Go back to the main line" msgstr "" #: lib/pychess/widgets/gamewidget.py:664 msgid "Step forward one move" msgstr "" #: lib/pychess/widgets/gamewidget.py:669 msgid "Jump to latest position" msgstr "" #: lib/pychess/widgets/gamewidget.py:903 msgid "PyChess was unable to load your panel settings" msgstr "" #: lib/pychess/widgets/gamewidget.py:904 msgid "" "Your panel settings have been reset. If this problem repeats, you should " "report it to the developers" msgstr "" #: lib/pychess/widgets/ionest.py:67 lib/pychess/widgets/newGameDialog.py:389 #: lib/pychess/widgets/TaskerManager.py:210 msgid "You" msgstr "Siz" #: lib/pychess/widgets/ionest.py:70 lib/pychess/widgets/newGameDialog.py:390 #: lib/pychess/widgets/preferencesDialog.py:61 #: lib/pychess/widgets/TaskerManager.py:213 msgid "Guest" msgstr "Konuk" #: lib/pychess/widgets/ionest.py:93 msgid "Error loading game" msgstr "" #: lib/pychess/widgets/ionest.py:127 lib/pychess/widgets/newGameDialog.py:480 msgid "Open Game" msgstr "Oyun Aç" #: lib/pychess/widgets/ionest.py:137 msgid "All Files" msgstr "Tüm Dosyalar" #: lib/pychess/widgets/ionest.py:140 msgid "Detect type automatically" msgstr "Dosya türünü otomatik belirle" #: lib/pychess/widgets/ionest.py:146 msgid "All Chess Files" msgstr "Bütün Satranç Dosyaları" #: lib/pychess/widgets/ionest.py:228 msgid "Save Game" msgstr "Oyunu Kaydet" #: lib/pychess/widgets/ionest.py:228 msgid "Export position" msgstr "" #: lib/pychess/widgets/ionest.py:232 lib/pychess/widgets/ionest.py:360 msgid "vs." msgstr "karşı" #: lib/pychess/widgets/ionest.py:249 #, python-format msgid "Unknown file type '%s'" msgstr "Bilinmeyen dosya türü '%s'" #: lib/pychess/widgets/ionest.py:250 #, python-format msgid "" "Was unable to save '%(uri)s' as PyChess doesn't know the format " "'%(ending)s'." msgstr "" #: lib/pychess/widgets/ionest.py:266 #, python-format msgid "Unable to save file '%s'" msgstr "'%s' dosyası kaydedilemedi" #: lib/pychess/widgets/ionest.py:268 msgid "" "You don't have the necessary rights to save the file.\n" "Please ensure that you have given the right path and try again." msgstr "Dosyayı kaydetmek için gerekli haklara sahip değilsiniz.\nLütfen doğru dizin yolunu girdiğinizden emin olun ve tekrar deneyin." #: lib/pychess/widgets/ionest.py:276 msgid "_Replace" msgstr "_Değiştir" #: lib/pychess/widgets/ionest.py:280 msgid "File exists" msgstr "Dosya mevcut" #: lib/pychess/widgets/ionest.py:282 #, python-format msgid "" "A file named '%s' already exists. Would you like to replace " "it?" msgstr "'%s' adında bir dosya zaten var. Değiştirmek ister misiniz?" #: lib/pychess/widgets/ionest.py:283 #, python-format msgid "" "The file already exists in '%s'. If you replace it, its content will be " "overwritten." msgstr "Dosya zaten '%s' de bulunuyır. Eğer değiştirirseniz, içeriğin üzerine yazılacak." #: lib/pychess/widgets/ionest.py:299 msgid "Could not save the file" msgstr "Dosya kaydedilemedi" #: lib/pychess/widgets/ionest.py:300 msgid "PyChess was not able to save the game" msgstr "PyChess oyunu kaydedemedi" #: lib/pychess/widgets/ionest.py:301 #, python-format msgid "The error was: %s" msgstr "Hata şuydu %s" #: lib/pychess/widgets/ionest.py:325 #, python-format msgid "There is %d game with unsaved moves." msgid_plural "There are %d games with unsaved moves." msgstr[0] "" msgstr[1] "" #: lib/pychess/widgets/ionest.py:328 msgid "Save moves before closing?" msgstr "" #: lib/pychess/widgets/ionest.py:339 msgid "Unable to save to configured file. Save the games before closing?" msgstr "" #: lib/pychess/widgets/ionest.py:366 #, python-format msgid "_Save %d document" msgid_plural "_Save %d documents" msgstr[0] "" msgstr[1] "" #: lib/pychess/widgets/ionest.py:412 msgid "Save the current game before you close it?" msgstr "" #: lib/pychess/widgets/ionest.py:420 msgid "" "Unable to save to configured file. Save the current game before you close " "it?" msgstr "" #: lib/pychess/widgets/ionest.py:434 msgid "" "It is not possible later to continue the game,\n" "if you don't save it." msgstr "Kaydetmezseniz, daha sonra oyuna devam etmeniz mümkün olmayacak." #: lib/pychess/widgets/LogDialog.py:26 msgid "PyChess Information Window" msgstr "" #: lib/pychess/widgets/LogDialog.py:184 lib/pychess/widgets/LogDialog.py:188 msgid "of" msgstr "" #: lib/pychess/widgets/newGameDialog.py:84 #: lib/pychess/widgets/newGameDialog.py:85 msgid "Human Being" msgstr "İnsan" #: lib/pychess/widgets/newGameDialog.py:155 msgid "Rapid" msgstr "" #: lib/pychess/widgets/newGameDialog.py:224 msgid "Minutes:" msgstr "Dakika:" #: lib/pychess/widgets/newGameDialog.py:228 msgid "Gain:" msgstr "Kazanç:" #: lib/pychess/widgets/newGameDialog.py:241 #, python-format msgid "%(name)s %(minutes)d min + %(gain)d sec/move" msgstr "" #: lib/pychess/widgets/newGameDialog.py:244 #, python-format msgid "%(name)s %(minutes)d min %(gain)d sec/move" msgstr "" #: lib/pychess/widgets/newGameDialog.py:247 #, python-format msgid "%(name)s %(minutes)d min" msgstr "" #: lib/pychess/widgets/newGameDialog.py:265 msgid "Odds" msgstr "" #: lib/pychess/widgets/newGameDialog.py:269 msgid "Asian variants" msgstr "" #: lib/pychess/widgets/newGameDialog.py:301 msgid " chess" msgstr "satranç" #: lib/pychess/widgets/newGameDialog.py:682 msgid "Type or paste PGN game or FEN positions here" msgstr "" #: lib/pychess/widgets/newGameDialog.py:725 msgid "Enter Game" msgstr "Oyuna gir" #: lib/pychess/widgets/preferencesDialog.py:123 msgid "Select book file" msgstr "" #: lib/pychess/widgets/preferencesDialog.py:128 msgid "Opening books" msgstr "" #: lib/pychess/widgets/preferencesDialog.py:156 msgid "Select Gaviota TB path" msgstr "" #: lib/pychess/widgets/preferencesDialog.py:331 msgid "Open Sound File" msgstr "Ses Dosyası Aç" #: lib/pychess/widgets/preferencesDialog.py:341 msgid "Sound files" msgstr "" #: lib/pychess/widgets/preferencesDialog.py:485 msgid "Undescribed panel" msgstr "" #: lib/pychess/widgets/preferencesDialog.py:678 msgid "Select auto save path" msgstr "" #: lib/pychess/widgets/tipOfTheDay.py:51 msgid "" "You can start a new game by Game > New Game, in New Game " "window do you can choose Players, Time Control and Chess " "Variants." msgstr "" #: lib/pychess/widgets/tipOfTheDay.py:52 msgid "" "You can choose from 20 different difficulties to play against the computer." msgstr "" #: lib/pychess/widgets/tipOfTheDay.py:53 msgid "" "Chess Variants are like the pieces of the last line will be placed on the " "board." msgstr "" #: lib/pychess/widgets/tipOfTheDay.py:54 msgid "" "To save a game Game > Save Game As, give the filename and " "choose where you want to be saved. At the bottom choose extension type of " "the file, and Save." msgstr "" #: lib/pychess/widgets/tipOfTheDay.py:55 msgid "" "Do you know that you can call flag when the clock is with you, " "Actions > Call Flag." msgstr "" #: lib/pychess/widgets/tipOfTheDay.py:56 msgid "Pressing Ctrl+Z to offer opponent the possible rollback moves." msgstr "" #: lib/pychess/widgets/tipOfTheDay.py:57 msgid "" "To play on Fullscreen mode, just type F11. Coming back, F11 " "again." msgstr "" #: lib/pychess/widgets/tipOfTheDay.py:58 msgid "Hint mode analyzing your game, enable this type Ctrl+H." msgstr "" #: lib/pychess/widgets/tipOfTheDay.py:59 msgid "" "Spy mode analyzing the oponnent game, enable this type Ctrl+Y." msgstr "" #: lib/pychess/widgets/tipOfTheDay.py:60 msgid "" "You can play chess listening to the sounds of the game, for that, " "Settings > Preferences > Sound tab, enable Use " "sounds in PyChess and choose your preferred sounds." msgstr "" #: lib/pychess/widgets/tipOfTheDay.py:61 msgid "" "Do you know that you can help translate Pychess in your language, " "Help > Translate Pychess." msgstr "" #: lib/pychess/widgets/tipOfTheDay.py:62 msgid "" "Do you know that it is possible to finish a chess game in just 2 turns?" msgstr "" #: lib/pychess/widgets/tipOfTheDay.py:63 msgid "" "Do you know that the number of possible chess games exceeds the number of " "atoms in the Universe?" msgstr "" #: lib/pychess/ic/managers/ChatManager.py:184 msgid "Shout" msgstr "" #: lib/pychess/ic/managers/ChatManager.py:185 msgid "Chess Shout" msgstr "" #: lib/pychess/ic/managers/ChatManager.py:195 #, python-format msgid "Unofficial channel %d" msgstr "" #: lib/pychess/Utils/lutils/LBoard.py:152 #, python-format msgid "" "FEN needs 6 data fields. \n" "\n" "%s" msgstr "" #: lib/pychess/Utils/lutils/LBoard.py:154 #, python-format msgid "" "FEN needs at least 2 data fields in fenstr. \n" "\n" "%s" msgstr "" #: lib/pychess/Utils/lutils/LBoard.py:175 #, python-format msgid "" "Needs 7 slashes in piece placement field. \n" "\n" "%s" msgstr "" #: lib/pychess/Utils/lutils/LBoard.py:178 #, python-format msgid "" "Active color field must be one of w or b. \n" "\n" "%s" msgstr "" #: lib/pychess/Utils/lutils/LBoard.py:189 #, python-format msgid "" "Castling availability field is not legal. \n" "\n" "%s" msgstr "" #: lib/pychess/Utils/lutils/LBoard.py:192 #, python-format msgid "" "En passant cord is not legal. \n" "\n" "%s" msgstr "" #: lib/pychess/Utils/lutils/lmove.py:260 msgid "invalid promoted piece" msgstr "" #: lib/pychess/Utils/lutils/lmove.py:272 msgid "the move needs a piece and a cord" msgstr "" #: lib/pychess/Utils/lutils/lmove.py:306 lib/pychess/Utils/lutils/lmove.py:556 msgid "promotion move without promoted piece is incorrect" msgstr "" #: lib/pychess/Utils/lutils/lmove.py:312 #, python-format msgid "the captured cord (%s) is incorrect" msgstr "" #: lib/pychess/Utils/lutils/lmove.py:323 #, python-format msgid "the end cord (%s) is incorrect" msgstr "" #: lib/pychess/Utils/lutils/strateval.py:24 sidepanel/commentPanel.py:191 #: sidepanel/commentPanel.py:208 msgid "and" msgstr "" #: lib/pychess/Utils/lutils/strateval.py:43 msgid "draws" msgstr "beraberlikler" #: lib/pychess/Utils/lutils/strateval.py:45 msgid "mates" msgstr "matlar" #: lib/pychess/Utils/lutils/strateval.py:49 msgid "puts opponent in check" msgstr "rakibe şah çeker" #: lib/pychess/Utils/lutils/strateval.py:73 msgid "improves king safety" msgstr "Şahın güvenliğini arttırır" #: lib/pychess/Utils/lutils/strateval.py:75 msgid "slightly improves king safety" msgstr "Şahın güvenliğini hafifçe arttırır" #: lib/pychess/Utils/lutils/strateval.py:108 msgid "moves a rook to an open file" msgstr "kaleyi açık bir hatta koyar" #: lib/pychess/Utils/lutils/strateval.py:109 msgid "moves an rook to a half-open file" msgstr "kaleyi yarıaçık bir hatta koyar" #: lib/pychess/Utils/lutils/strateval.py:119 #: lib/pychess/Utils/lutils/strateval.py:121 #: lib/pychess/Utils/lutils/strateval.py:124 #: lib/pychess/Utils/lutils/strateval.py:126 #, python-format msgid "moves bishop into fianchetto: %s" msgstr "fil fiancchetto pozisyonuna geliyor: %s" #: lib/pychess/Utils/lutils/strateval.py:132 #, python-format msgid "promotes a Pawn to a %s" msgstr "piyonu %s'e terfi ettirir" #: lib/pychess/Utils/lutils/strateval.py:135 msgid "castles" msgstr "kaleler" #: lib/pychess/Utils/lutils/strateval.py:158 msgid "takes back material" msgstr "kaybedilen materyalı geri alır" #: lib/pychess/Utils/lutils/strateval.py:162 #: lib/pychess/Utils/lutils/strateval.py:170 msgid "sacrifies material" msgstr "taşı feda eder" #: lib/pychess/Utils/lutils/strateval.py:164 msgid "exchanges material" msgstr "taşları değişir" #: lib/pychess/Utils/lutils/strateval.py:166 msgid "captures material" msgstr "taşı alır" #: lib/pychess/Utils/lutils/strateval.py:291 #, python-format msgid "rescues a %s" msgstr "" #: lib/pychess/Utils/lutils/strateval.py:294 #, python-format msgid "threatens to win material by %s" msgstr "" #: lib/pychess/Utils/lutils/strateval.py:296 #, python-format msgid "increases the pressure on %s" msgstr "%s üzerindeki baskıyı arttırır" #: lib/pychess/Utils/lutils/strateval.py:298 #, python-format msgid "defends %s" msgstr "%s'i korur" #: lib/pychess/Utils/lutils/strateval.py:336 #, python-format msgid "pins an enemy %(oppiece)s on the %(piece)s at %(cord)s" msgstr "" #: lib/pychess/Utils/lutils/strateval.py:369 #, python-format msgid "White has a new piece in outpost: %s" msgstr "" #: lib/pychess/Utils/lutils/strateval.py:377 #, python-format msgid "Black has a new piece in outpost: %s" msgstr "" #: lib/pychess/Utils/lutils/strateval.py:416 #, python-format msgid "%(color)s has a new passed pawn on %(cord)s" msgstr "" #: lib/pychess/Utils/lutils/strateval.py:470 msgid "half-open" msgstr "" #: lib/pychess/Utils/lutils/strateval.py:472 #, python-format msgid "in the %(x)s%(y)s file" msgstr "" #: lib/pychess/Utils/lutils/strateval.py:474 #, python-format msgid "in the %(x)s%(y)s files" msgstr "" #: lib/pychess/Utils/lutils/strateval.py:477 #, python-format msgid "%(color)s got a double pawn %(place)s" msgstr "" #: lib/pychess/Utils/lutils/strateval.py:478 #, python-format msgid "%(color)s got new double pawns %(place)s" msgstr "" #: lib/pychess/Utils/lutils/strateval.py:485 #, python-format msgid "%(color)s got an isolated pawn in the %(x)s file" msgid_plural "%(color)s got isolated pawns in the %(x)s files" msgstr[0] "" msgstr[1] "" #: lib/pychess/Utils/lutils/strateval.py:492 #, python-format msgid "%s moves pawns into stonewall formation" msgstr "%s piyonlarını stonewall biçmine getiriyor" #: lib/pychess/Utils/lutils/strateval.py:507 #: lib/pychess/Utils/lutils/strateval.py:514 #, python-format msgid "%s can no longer castle" msgstr "" #: lib/pychess/Utils/lutils/strateval.py:508 #: lib/pychess/Utils/lutils/strateval.py:515 #, python-format msgid "%s can no longer castle in queenside" msgstr "" #: lib/pychess/Utils/lutils/strateval.py:510 #: lib/pychess/Utils/lutils/strateval.py:517 #, python-format msgid "%s can no longer castle in kingside" msgstr "" #: lib/pychess/Utils/lutils/strateval.py:551 #, python-format msgid "%(opcolor)s has a new trapped bishop on %(cord)s" msgstr "" #: lib/pychess/Utils/lutils/strateval.py:573 #, python-format msgid "develops a pawn: %s" msgstr "" #: lib/pychess/Utils/lutils/strateval.py:574 #, python-format msgid "brings a pawn closer to the backrow: %s" msgstr "" #: lib/pychess/Utils/lutils/strateval.py:591 #, python-format msgid "brings a %(piece)s closer to enemy king: %(cord)s" msgstr "" #: lib/pychess/Utils/lutils/strateval.py:594 #, python-format msgid "develops a %(piece)s: %(cord)s" msgstr "" #: lib/pychess/Utils/lutils/strateval.py:612 #, python-format msgid "places a %(piece)s more active: %(cord)s" msgstr "" #: lib/pychess/Utils/lutils/strateval.py:638 msgid "White should do pawn storm in right" msgstr "Beyaz sağ kanattan piyonla saldırmalı" #: lib/pychess/Utils/lutils/strateval.py:640 msgid "Black should do pawn storm in left" msgstr "Siyah sol kanattan piyonla saldırmalı" #: lib/pychess/Utils/lutils/strateval.py:643 msgid "White should do pawn storm in left" msgstr "Beyaz sol kanattan piyonla saldırmalı" #: lib/pychess/Utils/lutils/strateval.py:645 msgid "Black should do pawn storm in right" msgstr "Siyah sağ kanattan piyonla saldırmalı" #: lib/pychess/Utils/lutils/strateval.py:671 msgid "Black has a rather cramped position" msgstr "" #: lib/pychess/Utils/lutils/strateval.py:673 msgid "Black has a slightly cramped position" msgstr "" #: lib/pychess/Utils/lutils/strateval.py:675 msgid "White has a rather cramped position" msgstr "" #: lib/pychess/Utils/lutils/strateval.py:677 msgid "White has a slightly cramped position" msgstr "" #: sidepanel/annotationPanel.py:26 msgid "Annotation" msgstr "" #: sidepanel/annotationPanel.py:29 msgid "Annotated game" msgstr "" #: sidepanel/annotationPanel.py:236 msgid "Copy PGN" msgstr "" #: sidepanel/annotationPanel.py:249 msgid "Add start comment" msgstr "" #: sidepanel/annotationPanel.py:254 msgid "Add comment" msgstr "" #: sidepanel/annotationPanel.py:258 sidepanel/annotationPanel.py:316 msgid "Edit comment" msgstr "" #: sidepanel/annotationPanel.py:269 msgid "Forced move" msgstr "" #: sidepanel/annotationPanel.py:274 msgid "Add move symbol" msgstr "" #: sidepanel/annotationPanel.py:280 msgid "Unclear position" msgstr "" #: sidepanel/annotationPanel.py:289 msgid "Zugzwang" msgstr "" #: sidepanel/annotationPanel.py:290 msgid "Development adv." msgstr "" #: sidepanel/annotationPanel.py:291 msgid "Initiative" msgstr "" #: sidepanel/annotationPanel.py:292 msgid "With attack" msgstr "" #: sidepanel/annotationPanel.py:293 msgid "Compensation" msgstr "" #: sidepanel/annotationPanel.py:294 msgid "Counterplay" msgstr "" #: sidepanel/annotationPanel.py:295 msgid "Time pressure" msgstr "" #: sidepanel/annotationPanel.py:300 msgid "Add evaluation symbol" msgstr "" #: sidepanel/annotationPanel.py:304 msgid "Remove symbols" msgstr "" #: sidepanel/annotationPanel.py:911 #, python-format msgid "round %s" msgstr "" #: sidepanel/bookPanel.py:21 msgid "Hints" msgstr "" #: sidepanel/bookPanel.py:25 msgid "" "The hint panel will provide computer advice during each stage of the game" msgstr "" #: sidepanel/bookPanel.py:27 msgid "Official PyChess panel." msgstr "" #: sidepanel/bookPanel.py:87 msgid "Opening Book" msgstr "Açılış Kitabı" #: sidepanel/bookPanel.py:88 msgid "" "The opening book will try to inspire you during the opening phase of the " "game by showing you common moves made by chess masters" msgstr "" #: sidepanel/bookPanel.py:139 #, python-format msgid "Analysis by %s" msgstr "" #: sidepanel/bookPanel.py:140 #, python-format msgid "" "%s will try to predict which move is best and which side has the advantage" msgstr "" #: sidepanel/bookPanel.py:142 #, python-format msgid "Threat analysis by %s" msgstr "" #: sidepanel/bookPanel.py:143 #, python-format msgid "" "%s will identify what threats would exist if it were your opponent's turn to" " move" msgstr "" #: sidepanel/bookPanel.py:159 sidepanel/bookPanel.py:269 msgid "Calculating..." msgstr "" #: sidepanel/bookPanel.py:300 msgid "" "Engine scores are in units of pawns, from White's point of view. Double " "clicking on analysis lines you can insert them into Annotation panel as " "variations." msgstr "" #: sidepanel/bookPanel.py:302 msgid "" "Adding suggestions can help you find ideas, but slows down the computer's " "analysis." msgstr "" #: sidepanel/bookPanel.py:311 msgid "Endgame Table" msgstr "" #: sidepanel/bookPanel.py:315 msgid "" "The endgame table will show exact analysis when there are few pieces on the " "board." msgstr "" #: sidepanel/bookPanel.py:364 sidepanel/bookPanel.py:367 #, python-format msgid "Mate in %d" msgstr "" #: sidepanel/bookPanel.py:554 msgid "" "In this position,\n" "there is no legal move." msgstr "" #: sidepanel/chatPanel.py:21 msgid "" "The chat panel lets you communicate with your opponent during the game, " "assuming he or she is interested" msgstr "" #: sidepanel/commentPanel.py:16 msgid "Comments" msgstr "Yorumlar" #: sidepanel/commentPanel.py:20 msgid "The comments panel will try to analyze and explain the moves played" msgstr "" #: sidepanel/commentPanel.py:121 msgid "Initial position" msgstr "Başlangıç Pozisyonu" #: sidepanel/commentPanel.py:254 #, python-format msgid "%(color)s moves a %(piece)s to %(cord)s" msgstr "" #: sidepanel/engineOutputPanel.py:15 msgid "Engines" msgstr "" #: sidepanel/engineOutputPanel.py:20 msgid "" "The engine output panel shows the thinking output of chess engines (computer" " players) during a game" msgstr "" #: sidepanel/engineOutputPanel.py:44 msgid "No chess engines (computer players) are participating in this game." msgstr "" #: sidepanel/historyPanel.py:10 msgid "Move History" msgstr "Hamle Geçmişi" #: sidepanel/historyPanel.py:13 msgid "" "The moves sheet keeps track of the players' moves and lets you navigate " "through the game history" msgstr "" #: sidepanel/scorePanel.py:15 msgid "Score" msgstr "Skor" #: sidepanel/scorePanel.py:19 msgid "" "The score panel tries to evaluate the positions and shows you a graph of the" " game progress" msgstr "" pychess-0.12.2/lang/tr/LC_MESSAGES/pychess.mo0000644000175000017470000004463412653231273020735 0ustar tamasusers00000000000000B, <  1H'Ow !#)D%Iou9'';Vg#  %2DQW&C7*L(w    * : D N [ l x     " #     !! #!.!=!C!Y!b! k!v!!!!! !!! !!!!" "(" -"7" ="H" O"["a"r""" """" " ""F"1#DB###### # # # # # ##$$+$2$7$ >$L$ U$ `$m$o$/t$$ $$$$ $ $ $$% % %'% 7%D%Z%`% b%n%s%x%}%% %%%% % % %#% &,&B& &&& &'' '' '$'+'0'7' @' J' X'c'i'q'"'' '' ' '''( (%(;( A(K(Q( Z(d(w( ~(5((T(()A)[)w))))))) )))) *!* 0*:*B*J* R*`*w**"*#******9*?-+um++ +!,<,L,T,], l,w,, ,, ,,,%, ,, ,, , - --!- 2- =-H- [- h-r- {- ---- ----- ...'. /.:.@. S."].+......!/ '/H/X/p//////////}1 11111 1-12#2.B2q2222#222'233>530t3333334 04!Q4s44444444 55P35,5E5+5-#6.Q66666 6677 7 7(7 D7 R7^7n7777777'7(778 8#8 +8 88F8[8j8}8888 8888889%9'9 -999 @9 M9n9u9999 9 9 99 9 99 ::!:8:>:D:T:[:?b::B:::;; ; !;-; >; K; U;`;t;;; ; ;;;; ;; < <K< \<f<{<<<<<<< <<== =3=D=K= M=[=b=u=#z== === = == =&=">=>V> ????,?.?5?>? F?T?Y?^? e? q?~?????$??@ @(@?@%Q@w@ @ @@@ @@@ @@@A,A?AXNAAAAAB B(B.B?BNB ]BgBxB}BBBB BBBBC C C'&C(NCwC~C CCCWCOCND D$DE 5E BE LEVEeEvE ~E EE EEE*E E E E F F8F ?FJFSFhFoFxFFF FF FFFF G GG /G;G JGUG [GhG pG {GG G)GAG H#4HXH_HfH"H'HHHI I"I3I):I dIIII63n ,GPxEZ 7 W;3a2B{2=)9B\-!d-e44/&C@lJ16g, N<o.y!X($%q5u'w8_s`zF<>+fK#t?O0~m#M@H*bAU:/0iYrc"1h?8j:[D)L"&p+* =]$AS .>R ;5Vk% 9|I}( ^T'Q  7v Gain: + %d sec chess min%(black)s won the game%(white)s won the game%d min%s moves pawns into stonewall formation%s returns an error%s was declined by your opponent%s was withdrawn by your opponent'%s' is not a registered name*0 Players Ready0 of 010 min + 6 sec/move, 1400↑, White10 min + 6 sec/move, White12002 min, Fischer Random, 1800↓, Black5 min5 min, 1200-1800, ManualConnect to the Free Online Chess ServerPromote pawn to what?AnalyzingAnimationChess VariantDate of gameEnter Game NotationGame dataInitial PositionName of _first human player:NewsOpen GameOpponent StrengthOptionsPlay Sound When...PlayersTime ControlToolsYour Color_Start GameA file named '%s' already exists. Would you like to replace it?Engine, %s, has diedPyChess is discovering your engines. Please wait.PyChess was not able to save the gameUnable to save file '%s'Unknown file type '%s'Challenge:A player _checks:A player _moves:A player c_aptures:AbortAbout ChessAc_tiveAcceptAddress ErrorAdministratorAll Chess FilesAll FilesAll whiteAnalyze gameAnalyzer startedAuto-logoutAvailableBBeepBishopBlackBlack should do pawn storm in leftBlack should do pawn storm in rightBlack:BlitzBlitz:Center:ChallengeChallenge: Challenge: Chess GameChess PositionClockClose _without SavingCommand:CommentsConnectingConnecting to serverConnection ErrorConnection was closedCornerCould not save the fileCreate SeekDDateDate/TimeDeclineDefaultDetect type automaticallyDiedDon't careDrawEdit SeekEmailEnter GameEvent:File existsGain:Game informationGame is _drawn:Game is _lost:Game is _set-up:Game is _won:Games running: %dGuestHideHow to PlayHuman BeingIdleIf you don't save, new changes to your games will be permanently lost.Initial positionIt is not possible later to continue the game, if you don't save it.KKingKnightKnightsLeave _FullscreenLightningLightning:Loaded gameLocal EventLocal SiteLog on ErrorLog on as G_uestLog on as _GuestLogging on to serverLosersLossManualManual AcceptMinutes:Minutes: Move HistoryNNameNever use animation. Use this on slow machines.New GameNo _animationNo soundNormalObserveOffer A_bortOffer _DrawOffer _ResumeOfflineOnlineOnly animate _movesOpen GameOpen Sound FileOpening BookOpponent's strength: OtherPParameters:PawnPingPlayPlay normal chess rulesPlayer _RatingPlayers: %dPlayingPo_rts:Pre_viewPreferencesPromotionProtocol:PyChess - Connect to Internet ChessPyChess - Internet Chess: FICSPyChess Game DatabasePyChess has lost connection to the engine, probably because it has died. You can try to start a new game with the engine, or try to play against another one.PyChess.py:QQueenQuit PyChessRR_esignRandomRatedRated gameRatingRookRound:S_ign upSave GameSave Game _AsSaved gameScoreSearch:Select sound file...Select the games you want to save:Send ChallengeSend seekSetup PositionSho_w cordsShow _ChatShow tips at startupShredderLinuxChess:ShuffleSide_panelsSimple Chess PositionSite:Sp_y modeSpentStandardStandard:Start Private ChatStatusTeam AccountThe connection was broken - got "end of file" messageThe error was: %sThe file already exists in '%s'. If you replace it, its content will be overwritten.The game ended in a drawThe game has been abortedThe game has been adjournedThe game has been killedThe game is pausedThemesTimeTime control: Tip Of The dayTip of the DayTolerance:Translate PyChessTypeUnable to accept %sUndo one moveUndo two movesUninstallUnknownUnratedUntimedUse _analyzerUse _inverted analyzerWelcomeWhiteWhite should do pawn storm in leftWhite should do pawn storm in rightWhite:WildWinWorking directory:YouYou can't play rated games because "Untimed" is checked, You can't play rated games because you are logged in as a guestYou don't have the necessary rights to save the file. Please ensure that you have given the right path and try again.You sent a draw offerYour opponent asks you to hurry!Your opponent is not out of time.Your strength: _Accept_Actions_Black player:_Call Flag_Decline_Edit_Fullscreen_Game_Game List_General_Help_Hide tabs when only one game is open_Hint mode_Hints_Load Game_Log Off_Log Viewer_Name:_New Game_Next_Observed moves:_Opponent:_Password:_Play Normal chess_Player List_Previous_Replace_Rotate Board_Save Game_Seeks / Challenges_Show Sidepanels_Sounds_Start Game_Untimed_Use sounds in PyChess_View_White player:_Your Color:blackcaptures materialcastlesdefends %sdrawsexchanges materialgnuchess:http://en.wikipedia.org/wiki/Chesshttp://en.wikipedia.org/wiki/Rules_of_chessimproves king safetyincreases the pressure on %smatesminmoves a rook to an open filemoves an rook to a half-open filemoves bishop into fianchetto: %sonline in totalpromotes a Pawn to a %sputs opponent in checkresignsacrifies materialsecslightly improves king safetytakes back materialvs.whitewindow1Project-Id-Version: pychess Report-Msgid-Bugs-To: POT-Creation-Date: 2016-01-27 13:28+0100 PO-Revision-Date: 2016-01-28 08:56+0000 Last-Translator: slav0nic Language-Team: Turkish (http://www.transifex.com/gbtami/pychess/language/tr/) MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Language: tr Plural-Forms: nplurals=2; plural=(n > 1); Kazan:+ %d saniyesatrançdk%(black)s oyunu kazandı%(white)s oyunu kazandı%d dakika%s piyonlarını stonewall biçmine getiriyor%s bir hata döndürdü%s rakibiniz tarafından reddedildi%s hamlesi rakibiniz tarafından geri alındı%s kayıtlı bir oyun değil*0 Oyuncu Hazır0'da 010 dak + 6 sn/hamle, 1400↑, Beyaz10 dak + 6 san/hareket, Beyaz12002 dak, Fischer Rastgele, 1800↓, Siyah5 dak5 dak, 1200-1800, ManuelÜcretsiz online satranç sunucusuna bağlanPiyon hangi taşa terfi etsin?ÇözümlüyorCanlandırmaSatranç ÇeşidiOyunun tarihiOyun notasyonunu girinizOyun verisiBaşlangıç ​​Konumu_İlk insan oyuncunun adıHaberlerAçık OyunRakibin GücüSeçeneklerŞu durumlarda ses çalOyuncularZaman KontrolAraçlarRenginiz_Oyunu Başlat'%s' adında bir dosya zaten var. Değiştirmek ister misiniz?Program motoru, %s, öldüPyChess motorlarınızı arıyor. Lütfen bekleyin.PyChess oyunu kaydedemedi'%s' dosyası kaydedilemediBilinmeyen dosya türü '%s'Meydan Okuma:Bir oyuncu _şah çekti:Bir ouyuncu _hamle yaptı:Oyuncu taş kazandı:DurdurulduSatranç HakkındaAktifKabul etAdres HatasıYöneticiBütün Satranç DosyalarıTüm DosyalarHepsi beyazOyunu analiz etAnaliz başladıOtomatik-ÇıkışUygunFBipFilSiyahSiyah sol kanattan piyonla saldırmalıSiyah sağ kanattan piyonla saldırmalıSiyah:Blitz - Hızlı oyunHızlı Oyun:Merkez:Meydan OkumaMeydan Okuma:Meydan oku: Satranç OyunuSatranç PozisyonuSaatKaydetmeden _KapatKomut:YorumlarBağlanıyorSunucuya bağlanılıyorBağlantı HatasıBağlantı kapatıldıKöşeDosya kaydedilemediAraştırma oluşturDTarihTarih/ZamanReddetVarsayılan:Dosya türünü otomatik belirleÖldüGörmezden gelBerabereAraştırma DüzenleE-postaOyuna girMüsabaka:Dosya mevcutKazanç:Oyun bilgisiOyun BerabereOyunu kaybettinizOyun hazırOyunu KazandınızÇalışan oyunlar: %dKonukGizleNasıl OynanırİnsanBoştaEğer kaydetmezseniz, değişiklikler sonsuza kadar kaybolacak.Başlangıç PozisyonuKaydetmezseniz, daha sonra oyuna devam etmeniz mümkün olmayacak.ŞKralAtAtlar_Tam Ekrandan ÇıkYıldırımIşıklandırma:Yüklü oyunMüsabakaYerel SiteOturum açmada hataMisafir olarak gir_Ziyaretçi olarak bağlanSunucuda oturum açılıyorKaybedenlerKaydettinElleManuel OnaylamaDakika:Dakika: Hamle GeçmişiAAdHiçbir zaman animasyonları kullanma.Bunu yavaş bilgisayarlarda kullanınYeni OyunAnimasyonları kapatSes yokOlağanİzleMaçın iptalini öner_Beraberlik ÖnerMaça devam önerÇevrimdışıÇevrimiçiSadece _hareketleri canlandırOyun AçSes Dosyası AçAçılış KitabıRakibin Gücü: DiğerPParametreler:PençeCTCP PING yanıtıOynaNormal satranç kuralları ile oynaOyuncu _ReytingiOyuncular: %dOynuyorPortlar:Ön_izlemeTercihlerTerfiProtokol:PyChess - internet satrancına bağlanPyChess - Internet Satranç : FICSPyChess Oyun VeritabanıPyChess program motoruyla bağlantısını yitirdi, muhtemelen motor öldüğü için. Yeni bir oyun başlatmayı ya da başka bir motora karşı oynamayı deneyebilirsiniz.PyChess.py:VVezirPyChess' ten ÇıkKPes_etRastgelePuanlıDereceli oyunPuanKaleRaunt:_Oturum AçOyunu KaydetOyunu _Farklı KaydetKayıtlı oyunSkorAra:Ses dosyası seçin...Kaydetmek istediğiniz oyunu seçin:Meydan Okuma İsteği GönderOyun daveti gönderPozisyon KurKordinatları _gösterKonuşma _Gösterİpuçlarını başlangıçta gösterShredderLinuxChess:KarıştırYan_panellerBasit Satranç PozisyonuYer:_Casus kipiHarcananStandartStandart:Kişiyle sohbet etDurumTakım HesabıBağlantı koptu -"dosya sonu" iletisi aldıHata şuydu %sDosya zaten '%s' de bulunuyır. Eğer değiştirirseniz, içeriğin üzerine yazılacak.Oyun beraberlikle sonuçlandıBu oyun iptal edildiBu oyun sonraya bırakıldıBu oyun sonlandırıldıOyu durdurulduTemalarSüreZaman Kontrol: Günün İpucuGünün İpucuTolerans:PyChess'i ÇevirTür%s kabul edilemiyorBir önceki hamleye dönİki önceki hamleye dönKaldırBilinmeyenPuansızSüresizÇözümleyici kull_anTers analiz kullanHoşgeldinizBeyazBeyaz sol kanattan piyonla saldırmalıBeyaz sağ kanattan piyonla saldırmalıBeyaz:VahşiKazandınÇalışma dizini:SizSüresiz özelliği etkin olduğu için puanlandırlımış oyunları oynayamazsınız,Misafir olarak girdiğiniz için puanlandırılmış oyunlarda oynayamzsınız Dosyayı kaydetmek için gerekli haklara sahip değilsiniz. Lütfen doğru dizin yolunu girdiğinizden emin olun ve tekrar deneyin.beraberlik teklifinde bulundunuzRakibiniz çabuk olmanızı istiyor!Rakibinizin süresi bitmedi.Gücünüz: _Kabul Et_Eylemler_Siyah oyuncu:_Bayrak Düştü_Reddet_Düzenle_Tam Ekran_Oyun_Oyun Listesi_Genel_YardımSadece bir oyun açıkken sekmeleri _gizle_İpucu kipi_İpuçlarıOyun _Yükle_Oturum KapatGünlük (_Log) Görüntüleyici_Adı:Yeni _Oyun_SonrakiGözlenmiş hamleler_Rakip_Parola:_Normal satranç oyna_Oyuncu Listesi_Önceki_Değiştir_Tahtayı ÇevirOyunu _Kaydet_Araştır / Meydan Oku_Yan Paneli Göster _Sesler_Oyuna Başla_SüresizS_esleri kullan_Görünüm_Beyaz oyuncu:_Renginiz:siyahtaşı alırkaleler%s'i korurberaberliklertaşları değişirgnuchess:http://tr.wikipedia.org/wiki/Satran%C3%A7http://tr.wikipedia.org/wiki/Satran%C3%A7#Oynan.C4.B1.C5.9F.C4.B1Şahın güvenliğini arttırır%s üzerindeki baskıyı arttırırmatlardakikakaleyi açık bir hatta koyarkaleyi yarıaçık bir hatta koyarfil fiancchetto pozisyonuna geliyor: %stoplam çevirimiçi sürepiyonu %s'e terfi ettirirrakibe şah çekerGeri çekiltaşı feda edersaniyeŞahın güvenliğini hafifçe arttırırkaybedilen materyalı geri alırkarşıbeyazpencere1pychess-0.12.2/lang/it/0000755000175000017470000000000012653231274015112 5ustar tamasusers00000000000000pychess-0.12.2/lang/it/LC_MESSAGES/0000755000175000017470000000000012653231274016677 5ustar tamasusers00000000000000pychess-0.12.2/lang/it/LC_MESSAGES/pychess.po0000644000175000017470000031501412653216173020722 0ustar tamasusers00000000000000# SOME DESCRIPTIVE TITLE. # Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER # This file is distributed under the same license as the pychess package. # # Translators: # Emilio Bologna , 2012 # FIRST AUTHOR , 2007 # gbtami , 2013 # Kenan Catic , 2015 # massimiliano_leoni , 2014 # Riccardo Di Maio , 2015 msgid "" msgstr "" "Project-Id-Version: pychess\n" "Report-Msgid-Bugs-To: \n" "POT-Creation-Date: 2016-01-27 13:28+0100\n" "PO-Revision-Date: 2016-01-28 08:56+0000\n" "Last-Translator: slav0nic \n" "Language-Team: Italian (http://www.transifex.com/gbtami/pychess/language/it/)\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" "Language: it\n" "Plural-Forms: nplurals=2; plural=(n != 1);\n" # "Plural-Forms: nplurals=INTEGER; plural=EXPRESSION;\n" #: glade/analyze_game.glade:22 msgid "Analyze game" msgstr "Analizza partita" #: glade/analyze_game.glade:87 msgid "Use analyzer:" msgstr "Utilizza l'analizzatore" #: glade/analyze_game.glade:122 glade/PyChess.glade:2054 msgid "Maximum analysis time in seconds:" msgstr "Durata massima dell'analisi, in secondi:" #: glade/analyze_game.glade:163 msgid "" "If the analyzer finds a move where the evaluation difference (the difference" " between the evaluation for the move it thinks is the best move and the " "evaluation for the move made in the game) exceeds this value, it will add an" " annotation for that move (consisting of the engine's Principal Variation " "for the move) to the Annotation panel" msgstr "" #: glade/analyze_game.glade:164 msgid "Variation annotation creation threshold in centipawns:" msgstr "" #: glade/analyze_game.glade:198 msgid "Analyze from current position" msgstr "Analizza a partire dalla posizione attuale" #: glade/analyze_game.glade:214 msgid "Add threatening variation lines " msgstr "" #: glade/analyze_game.glade:229 glade/PyChess.glade:1459 msgid "Colorize analyzed moves" msgstr "Colora le mosse analizzate" #: glade/analyze_game.glade:244 glade/PyChess.glade:1495 msgid "Show evaluation values" msgstr "Mostra punteggi delle valutazioni" #: glade/discovererDialog.glade:18 msgid "PyChess is discovering your engines. Please wait." msgstr "PyChess sta cercando i motori installati. Attendere prego." #: glade/discovererDialog.glade:77 msgid "PyChess.py:" msgstr "PyChess.py:" #: glade/discovererDialog.glade:89 msgid "ShredderLinuxChess:" msgstr "ShredderLinuxChess:" #: glade/discovererDialog.glade:101 msgid "gnuchess:" msgstr "gnuchess:" #: glade/fics_logon.glade:7 msgid "PyChess - Connect to Internet Chess" msgstr "PyChess - Connettiti al server scacchistico" #: glade/fics_logon.glade:47 msgid "Connect to the Free Online Chess Server" msgstr "Connessione ad un server scacchistico Online gratuito" #: glade/fics_logon.glade:129 glade/taskers.glade:394 msgid "_Password:" msgstr "_Password:" #: glade/fics_logon.glade:143 msgid "_Name:" msgstr "_Nome:" #: glade/fics_logon.glade:191 msgid "Log on as _Guest" msgstr "Connettiti come _ospite" #: glade/fics_logon.glade:227 msgid "Host:" msgstr "Padrone:" #: glade/fics_logon.glade:259 msgid "Po_rts:" msgstr "Po_rte:" #: glade/fics_logon.glade:271 msgid "Auto login on startup" msgstr "" #: glade/fics_logon.glade:385 msgid "S_ign up" msgstr "_Registrati" #: glade/fics_lounge.glade:35 msgid "Challenge: " msgstr "Sfida: " #: glade/fics_lounge.glade:97 msgid "Send Challenge" msgstr "Invia Sfida" #: glade/fics_lounge.glade:133 msgid "Challenge:" msgstr "Sfida:" #: glade/fics_lounge.glade:327 glade/fics_lounge.glade:2078 msgid "Lightning:" msgstr "Lampo:" #: glade/fics_lounge.glade:351 glade/fics_lounge.glade:2102 msgid "Standard:" msgstr "Standard:" #: glade/fics_lounge.glade:375 glade/fics_lounge.glade:2126 msgid "Blitz:" msgstr "Blitz:" #: glade/fics_lounge.glade:400 msgid "2 min, Fischer Random, Black" msgstr "2 min, Fischer Casuale, Nero" #: glade/fics_lounge.glade:422 msgid "10 min + 6 sec/move, White" msgstr "10 min + 6 sec/mossa, Bianco" #: glade/fics_lounge.glade:444 msgid "5 min" msgstr "5 min" #: glade/fics_lounge.glade:480 msgid "Edit Seek" msgstr "Modifica Sfida" #: glade/fics_lounge.glade:584 lib/pychess/ic/ICLounge.py:2208 #: lib/pychess/ic/__init__.py:101 lib/pychess/Utils/GameModel.py:206 msgid "Untimed" msgstr "Senza cronometro" #: glade/fics_lounge.glade:637 msgid "Minutes: " msgstr "Minuti: " #: glade/fics_lounge.glade:665 msgid " Gain: " msgstr " Guadagno: " #: glade/fics_lounge.glade:703 msgid "Time control: " msgstr "Cronometro: " #: glade/fics_lounge.glade:716 lib/pychess/ic/FICSObjects.py:56 #: lib/pychess/ic/ICLounge.py:1137 lib/pychess/ic/ICLounge.py:2208 #: lib/pychess/ic/__init__.py:99 msgid "Standard" msgstr "Standard" #: glade/fics_lounge.glade:757 glade/newInOut.glade:633 msgid "Time Control" msgstr "Cronometro" #: glade/fics_lounge.glade:814 glade/fics_lounge.glade:1346 msgid "Don't care" msgstr "Indifferente" #: glade/fics_lounge.glade:879 msgid "Your strength: " msgstr "Tuo livello: " #: glade/fics_lounge.glade:921 msgid "(Blitz)" msgstr "(Blitz)" #: glade/fics_lounge.glade:951 msgid "Opponent's strength: " msgstr "Livello dell'avversario " #: glade/fics_lounge.glade:1055 msgid "" "When this button is in the \"locked\" state, the relationship\n" "between \"Opponent's strength\" and \"Your strength\" will be\n" "preserved when \n" "a) your rating for the type of game sought has changed\n" "b) you change the variant or the time control" msgstr "Quando questo pulsante è \"premuto\", la relazione\ntra il \"Livello dell'avversario\" e il \"Tuo livello\" rimarrà\nbloccata anche nel caso che: \na) il tuo punteggio per il tipo di gioco scelto è cambiato\nb) si modificassero la variante o il tempo" #: glade/fics_lounge.glade:1095 msgid "Center:" msgstr "Centro:" #: glade/fics_lounge.glade:1134 msgid "1200" msgstr "1200" #: glade/fics_lounge.glade:1188 msgid "Tolerance:" msgstr "Tolleranza:" #: glade/fics_lounge.glade:1243 lib/pychess/ic/ICLounge.py:2452 msgid "Hide" msgstr "Nascondi" #: glade/fics_lounge.glade:1289 msgid "Opponent Strength" msgstr "Livello dell'avversario" #: glade/fics_lounge.glade:1386 lib/pychess/Database/gamelist.py:40 #: lib/pychess/ic/ICLounge.py:1357 lib/pychess/ic/ICLounge.py:1557 #: lib/pychess/ic/ICLounge.py:2108 lib/pychess/Utils/repr.py:10 #: lib/pychess/widgets/ChessClock.py:40 #: lib/pychess/widgets/TaskerManager.py:153 msgid "White" msgstr "Bianco" #: glade/fics_lounge.glade:1414 lib/pychess/Database/gamelist.py:40 #: lib/pychess/ic/ICLounge.py:1358 lib/pychess/ic/ICLounge.py:1558 #: lib/pychess/ic/ICLounge.py:2110 lib/pychess/Utils/repr.py:10 #: lib/pychess/widgets/ChessClock.py:40 #: lib/pychess/widgets/TaskerManager.py:154 msgid "Black" msgstr "Nero" #: glade/fics_lounge.glade:1453 msgid "Your Color" msgstr "Colore" #: glade/fics_lounge.glade:1512 msgid "Play normal chess rules" msgstr "Gioca con le regole classiche" #: glade/fics_lounge.glade:1552 msgid "Play" msgstr "Gioca" #: glade/fics_lounge.glade:1618 glade/newInOut.glade:833 msgid "Chess Variant" msgstr "Varianti" #: glade/fics_lounge.glade:1676 msgid "Rated game" msgstr "Partita a punteggio" #: glade/fics_lounge.glade:1692 msgid "Manually accept opponent" msgstr "Accetta avversario manualmente" #: glade/fics_lounge.glade:1722 msgid "Options" msgstr "Opzioni" #: glade/fics_lounge.glade:1750 msgid "PyChess - Internet Chess: FICS" msgstr "PyChess - Internet Chess Server: FICS" #: glade/fics_lounge.glade:1823 msgid "_Clear Seeks" msgstr "_Azzera Ricerche" #: glade/fics_lounge.glade:1847 msgid "_Accept" msgstr "_Accetta" #: glade/fics_lounge.glade:1871 msgid "_Decline" msgstr "_Rifiuta" #: glade/fics_lounge.glade:2151 msgid "2 min, Fischer Random, 1800↓, Black" msgstr "2 min, Fischer Casuale, 1800↓, Nero" #: glade/fics_lounge.glade:2172 msgid "10 min + 6 sec/move, 1400↑, White" msgstr "10 min + 6 sec/mossa, 1400↑, Bianco" #: glade/fics_lounge.glade:2193 msgid "5 min, 1200-1800, Manual" msgstr "5 min, 1200-1800, Manuale" #: glade/fics_lounge.glade:2247 msgid "Send all seeks" msgstr "" #: glade/fics_lounge.glade:2301 msgid "Send seek" msgstr "Invia Sfida" #: glade/fics_lounge.glade:2337 msgid "Create Seek" msgstr "Crea Sfida" #: glade/fics_lounge.glade:2353 msgid "_Seeks / Challenges" msgstr "_Elenco Sfide" #: glade/fics_lounge.glade:2374 lib/pychess/ic/ICLounge.py:472 #: lib/pychess/ic/ICLounge.py:670 lib/pychess/ic/ICLounge.py:1357 #: lib/pychess/ic/ICLounge.py:1358 msgid "Rating" msgstr "Valutazione" #: glade/fics_lounge.glade:2399 msgid "Time" msgstr "Durata" #: glade/fics_lounge.glade:2419 msgid "Seek _Graph" msgstr "_Grafico Sfide" #: glade/fics_lounge.glade:2444 msgid "0 Players Ready" msgstr "0 Giocatori Pronti" #: glade/fics_lounge.glade:2496 msgid "Challenge" msgstr "Sfida" #: glade/fics_lounge.glade:2549 glade/fics_lounge.glade:2735 msgid "Observe" msgstr "Osserva" #: glade/fics_lounge.glade:2602 msgid "Start Private Chat" msgstr "Inizia una chat privata" #: glade/fics_lounge.glade:2659 msgid "_Player List" msgstr "Elenco _Giocatori" #: glade/fics_lounge.glade:2792 msgid "_Game List" msgstr "Elenco _Partite" #: glade/fics_lounge.glade:2847 msgid "_My games" msgstr "" #: glade/fics_lounge.glade:2904 glade/PyChess.glade:841 msgid "Offer _Resume" msgstr "Chiedi la ripresa" #: glade/fics_lounge.glade:2962 glade/PyChess.glade:880 msgid "R_esign" msgstr "Rinuncia" #: glade/fics_lounge.glade:3006 glade/PyChess.glade:820 msgid "Offer _Draw" msgstr "Chiedi la patta" #: glade/fics_lounge.glade:3050 msgid "Offer A_bort" msgstr "Chiedi di smettere" #: glade/fics_lounge.glade:3107 msgid "Pre_view" msgstr "_Anteprima" #: glade/fics_lounge.glade:3151 msgid "Examine" msgstr "" #: glade/fics_lounge.glade:3208 msgid "_Archived" msgstr "" #: glade/fics_lounge.glade:3313 msgid "News" msgstr "Novità" #: glade/fics_lounge.glade:3345 msgid "Show Console" msgstr "Mostra terminale" #: glade/fics_lounge.glade:3359 msgid "Show _Chat" msgstr "Visualizza _Chat" #: glade/fics_lounge.glade:3373 msgid "_Log Off" msgstr "_Disconnettiti" #: glade/fics_lounge.glade:3393 msgid "Tools" msgstr "Strumenti" #: glade/fics_lounge.glade:3428 msgid "Asymmetric Random " msgstr "" #: glade/findbar.glade:6 msgid "window1" msgstr "finestra1" #: glade/findbar.glade:21 msgid "0 of 0" msgstr "0 di 0" #: glade/findbar.glade:66 msgid "Search:" msgstr "Cerca:" #: glade/findbar.glade:134 msgid "_Previous" msgstr "_Precedente" #: glade/findbar.glade:192 msgid "_Next" msgstr "_Successivo" #: glade/newInOut.glade:45 lib/pychess/widgets/newGameDialog.py:445 msgid "New Game" msgstr "Nuova partita" #: glade/newInOut.glade:108 msgid "_Start Game" msgstr "_Inizia partita" #: glade/newInOut.glade:130 msgid "Copy FEN" msgstr "" #: glade/newInOut.glade:143 msgid "Clear" msgstr "Pulito" #: glade/newInOut.glade:156 msgid "Paste FEN" msgstr "" #: glade/newInOut.glade:257 msgid "_Black player:" msgstr "Giocatore _Nero" #: glade/newInOut.glade:274 msgid "_White player:" msgstr "Giocatore _Bianco" #: glade/newInOut.glade:385 msgid "Players" msgstr "Giocatori" #: glade/newInOut.glade:436 msgid "_Untimed" msgstr "Senza tempo" #: glade/newInOut.glade:475 msgid "Blitz: 5 min" msgstr "Blitz:\t5 min" #: glade/newInOut.glade:526 msgid "Rapid: 15 min + 10 sec/move" msgstr "Rapida:\t15 min + 10 sec/mossa" #: glade/newInOut.glade:575 msgid "Normal: 40 min + 15 sec/move" msgstr "Normale:\t40 min + 15 sec/mossa" #: glade/newInOut.glade:684 msgid "_Play Normal chess" msgstr "_Gioca partita Normale" #: glade/newInOut.glade:724 msgid "Play Fischer Random chess" msgstr "Gioca partita Fischer Casuale" #: glade/newInOut.glade:774 msgid "Play Losers chess" msgstr "Gioca a Vinciperdi" #: glade/newInOut.glade:919 msgid "Open Game" msgstr "Apri Partita" #: glade/newInOut.glade:1162 msgid "Initial Position" msgstr "Posizione Iniziale" #: glade/newInOut.glade:1219 msgid "Enter Game Notation" msgstr "Inserire note di gioco" #: glade/newInOut.glade:1314 msgid "Halfmove clock" msgstr "" #: glade/newInOut.glade:1327 msgid "En passant line" msgstr "" #: glade/newInOut.glade:1339 msgid "Side to move" msgstr "" #: glade/newInOut.glade:1351 msgid "Move number" msgstr "" #: glade/newInOut.glade:1361 msgid "Black O-O" msgstr "NERO O-O" #: glade/newInOut.glade:1375 msgid "Black O-O-O" msgstr "NERO O-O-O" #: glade/newInOut.glade:1389 msgid "White O-O-O" msgstr "BIANCO O-O-O" #: glade/newInOut.glade:1403 msgid "White O-O" msgstr "BIANCO O-O" #: glade/promotion.glade:7 msgid "Promotion" msgstr "Promozione" #: glade/promotion.glade:49 lib/pychess/Utils/repr.py:12 msgid "Queen" msgstr "Donna" #: glade/promotion.glade:95 lib/pychess/Utils/repr.py:12 msgid "Rook" msgstr "Torre" #: glade/promotion.glade:141 lib/pychess/Utils/repr.py:12 msgid "Bishop" msgstr "Alfiere" #: glade/promotion.glade:187 lib/pychess/Utils/repr.py:12 msgid "Knight" msgstr "Cavallo" #: glade/promotion.glade:233 lib/pychess/Utils/repr.py:12 msgid "King" msgstr "Re" #: glade/promotion.glade:265 msgid "Promote pawn to what?" msgstr "In cosa vuoi promuovere il pedone?" #: glade/PyChess.glade:9 msgid "Chess client" msgstr "" #: glade/PyChess.glade:44 msgid "Game information" msgstr "Informazioni di gioco" #: glade/PyChess.glade:164 msgid "Event:" msgstr "Evento:" #: glade/PyChess.glade:178 msgid "Site:" msgstr "Sito web:" #: glade/PyChess.glade:204 msgid "Round:" msgstr "Turno:" #: glade/PyChess.glade:237 msgid "White:" msgstr "Bianco:" #: glade/PyChess.glade:249 msgid "Black:" msgstr "Nero:" #: glade/PyChess.glade:302 msgid "Game data" msgstr "Dati di gioco" #: glade/PyChess.glade:357 msgid "Date of game" msgstr "Data della partita" #: glade/PyChess.glade:495 msgid "_Game" msgstr "_Partita" #: glade/PyChess.glade:502 msgid "_New Game" msgstr "_Nuova partita" #: glade/PyChess.glade:515 msgid "Play _Internet Chess" msgstr "Gioca partita su _Internet" #: glade/PyChess.glade:534 msgid "_Load Game" msgstr "_Carica partita" #: glade/PyChess.glade:550 msgid "Load _Recent Game" msgstr "Carica _Gioco Recente" #: glade/PyChess.glade:558 msgid "Open _Database" msgstr "Apri _Database" #: glade/PyChess.glade:569 lib/pychess/widgets/newGameDialog.py:615 msgid "Setup Position" msgstr "Imposta Posizione" #: glade/PyChess.glade:579 msgid "Enter Game _Notation" msgstr "Inserire _Note di Gioco" #: glade/PyChess.glade:592 msgid "_Save Game" msgstr "_Salva partita" #: glade/PyChess.glade:606 msgid "Save Game _As" msgstr "Salva la partita con _nome" #: glade/PyChess.glade:624 msgid "Share Game" msgstr "Condividi la partita" #: glade/PyChess.glade:630 msgid "_Export Position" msgstr "_Esporta Posizioni" #: glade/PyChess.glade:644 msgid "_Analyze Game" msgstr "_Analizza partita" #: glade/PyChess.glade:678 msgid "Player _Rating" msgstr "_Punteggio giocatore" #: glade/PyChess.glade:723 msgid "_Edit" msgstr "_Modifica" #: glade/PyChess.glade:734 msgid "_Copy PGN" msgstr "_Copia PGN" #: glade/PyChess.glade:746 msgid "_Copy FEN" msgstr "_Copia FEN" #: glade/PyChess.glade:763 msgid "_Engines" msgstr "_Motori" #: glade/PyChess.glade:789 msgid "_Actions" msgstr "_Azioni" #: glade/PyChess.glade:800 msgid "Offer _Abort" msgstr "Offri _Abbandono" #: glade/PyChess.glade:810 msgid "Offer Ad_journment" msgstr "Offri S_ospensione" #: glade/PyChess.glade:831 msgid "Offer _Pause" msgstr "Offri _Pausa" #: glade/PyChess.glade:847 msgid "Offer _Undo" msgstr "Offri _Annullamento mossa" #: glade/PyChess.glade:870 msgid "_Call Flag" msgstr "_Verifica la bandierina" #: glade/PyChess.glade:890 msgid "Ask to _Move" msgstr "Chiedo per _Muovere" #: glade/PyChess.glade:905 msgid "Auto Call _Flag" msgstr "" #: glade/PyChess.glade:918 msgid "_View" msgstr "_Vista" #: glade/PyChess.glade:925 msgid "_Rotate Board" msgstr "_Ruota scacchiera" #: glade/PyChess.glade:939 msgid "_Fullscreen" msgstr "Sc_hermo intero" #: glade/PyChess.glade:952 msgid "Leave _Fullscreen" msgstr "_Esci da schermo intero" #: glade/PyChess.glade:969 msgid "_Show Sidepanels" msgstr "_Mostra pannello Laterale" #: glade/PyChess.glade:980 msgid "_Log Viewer" msgstr "Visua_lizza registro" #: glade/PyChess.glade:997 msgid "_Hint mode" msgstr "Modalità _aiuto" #: glade/PyChess.glade:1009 msgid "Sp_y mode" msgstr "Modalità _spia" #: glade/PyChess.glade:1024 msgid "_Help" msgstr "_Aiuto" #: glade/PyChess.glade:1034 msgid "About Chess" msgstr "Info sul gioco" #: glade/PyChess.glade:1043 msgid "How to Play" msgstr "Come Giocare" #: glade/PyChess.glade:1052 msgid "Translate PyChess" msgstr "Traduci PyChess" #: glade/PyChess.glade:1058 msgid "Tip of the Day" msgstr "Suggerimento del giorno" #: glade/PyChess.glade:1153 msgid "Default" msgstr "Prederfinito" #: glade/PyChess.glade:1156 msgid "Knights" msgstr "Cavalli" #: glade/PyChess.glade:1167 lib/pychess/widgets/preferencesDialog.py:349 msgid "Beep" msgstr "Avviso acustico" #: glade/PyChess.glade:1170 lib/pychess/widgets/preferencesDialog.py:350 msgid "Select sound file..." msgstr "Seleziona un file sonoro..." #: glade/PyChess.glade:1173 lib/pychess/widgets/preferencesDialog.py:348 msgid "No sound" msgstr "Nessun suono" #: glade/PyChess.glade:1180 msgid "Preferences" msgstr "Preferenze" #: glade/PyChess.glade:1218 msgid "The displayed name of the first human player, e.g., John." msgstr "Il nome visualizzato del primo giocatore umano, ad es., Giovanni." #: glade/PyChess.glade:1230 msgid "Name of _first human player:" msgstr "Nome del _primo giocatore:" #: glade/PyChess.glade:1259 msgid "The displayed name of the guest player, e.g., Mary." msgstr "Il nome visualizzato del giocatore ospite, ad es., Maria." #: glade/PyChess.glade:1271 msgid "Name of s_econd human player:" msgstr "Nome del _secondo giocatore:" #: glade/PyChess.glade:1307 msgid "_Hide tabs when only one game is open" msgstr "_Nascondi le schede quando c'è una sola partita" #: glade/PyChess.glade:1312 msgid "" "If set, this hides the tab in the top of the playing window, when it is not " "needed." msgstr "se selezionato, nasconde le Tab in alto quando non servono." #: glade/PyChess.glade:1326 msgid "_Use main app closer [x] to close all games" msgstr "" #: glade/PyChess.glade:1331 msgid "" "If set, clicking on main application window closer first time it closes all " "games." msgstr "" #: glade/PyChess.glade:1345 msgid "Auto _rotate board to current human player" msgstr "_Ruota automaticamente la scacchiera verso il giocatore corrente" #: glade/PyChess.glade:1350 msgid "" "If set, the board will turn after each move, to show the natural view for " "the current player." msgstr "Se selezionato, la scacchiera ruoterà ad ogni turno, in modo che il giocatore corrente possa vederla dal proprio lato." #: glade/PyChess.glade:1364 msgid "Auto _promote to queen" msgstr "" #: glade/PyChess.glade:1369 msgid "If set, pawn promotes to queen without promotion dialog selection." msgstr "" #: glade/PyChess.glade:1383 msgid "Face _to Face display mode" msgstr "_Visualizzazione Faccia a Faccia" #: glade/PyChess.glade:1388 msgid "" "If set, the black pieces will be head down, suitable for playing against " "friends on mobile devices." msgstr "Se selezionato, i pezzi neri saranno visualizzati a testa in giù, utile per giocare contro un amico su di un dispositivo mobile." #: glade/PyChess.glade:1402 msgid "Sho_w cords" msgstr "Visualizza _Etichette" #: glade/PyChess.glade:1407 msgid "" "If set, the playing board will display labels and ranks for each chess " "field. These are usable in chess notation." msgstr "Se selezionato, la scacchiera mostrerà le etichette di riga e colonna. Usati nella notazione delle partite." #: glade/PyChess.glade:1421 msgid "Show _captured pieces" msgstr "Mostra pezzi _catturati" #: glade/PyChess.glade:1426 msgid "If set, the captured figurines will be shown next to the board." msgstr "Se attivo, le icone dei pezzi catturati saranno mostrate di fianco alla scacchiera." #: glade/PyChess.glade:1440 msgid "Prefer figures in _notation" msgstr "Utilizza le immagini nella _notazione" #: glade/PyChess.glade:1445 msgid "" "If set, PyChess will use figures to express moved pieces, rather than " "uppercase letters." msgstr "Se selezionato, PyChess utilizzerà le immagini per identificare le mosse, al posto delle lettere maiuscole." #: glade/PyChess.glade:1464 msgid "If set, PyChess will colorize suboptimal analyzed moves with red." msgstr "Se attivo, PyChess colorerà le mosse analizzate subottimali in rosso." #: glade/PyChess.glade:1477 msgid "Show elapsed move times" msgstr "" #: glade/PyChess.glade:1482 msgid "If set, the elapsed time that a player used for the move is shown." msgstr "Se attivo, mostra il tempo impiegato dal giocatore per muovere." #: glade/PyChess.glade:1500 msgid "If set, the hint analyzer engine evaluation value is shown." msgstr "" #: glade/PyChess.glade:1526 msgid "General Options" msgstr "" #: glade/PyChess.glade:1560 msgid "F_ull board animation" msgstr "Animazione _Completa della Scacchiera" #: glade/PyChess.glade:1565 msgid "Animate pieces, board rotation and more. Use this on fast machines." msgstr "Animazione dei pezzi, della scacchiera e altro. Da usare su computer veloci." #: glade/PyChess.glade:1579 msgid "Only animate _moves" msgstr "Animazione delle sole _mosse" #: glade/PyChess.glade:1584 msgid "Only animate piece moves." msgstr "Animazione dell movimento dei soli pezzi" #: glade/PyChess.glade:1599 msgid "No _animation" msgstr "Nessuna _Animazione" #: glade/PyChess.glade:1604 msgid "Never use animation. Use this on slow machines." msgstr "Non usare animazioni. Utile per computer lenti." #: glade/PyChess.glade:1632 msgid "Animation" msgstr "Animazione" #: glade/PyChess.glade:1651 msgid "_General" msgstr "_Generale" #: glade/PyChess.glade:1692 msgid "Use opening _book" msgstr "" #: glade/PyChess.glade:1697 msgid "If set, PyChess will suggest best opening moves on hint panel." msgstr "Se attivato, PyChess proporrà le migliori mosse di apertura nel pannello dei consigli." #: glade/PyChess.glade:1724 msgid "Polyglot book file:" msgstr "File del libro poliglotta:" #: glade/PyChess.glade:1768 msgid "Use _local tablebases" msgstr "" #: glade/PyChess.glade:1773 msgid "" "If set, PyChess will show game results for different moves in positions containing 6 or less pieces.\n" "You can download tablebase files from:\n" "http://www.olympuschess.com/egtb/gaviota/" msgstr "" #: glade/PyChess.glade:1803 msgid "Gaviota TB path:" msgstr "" #: glade/PyChess.glade:1843 msgid "Use _online tablebases" msgstr "" #: glade/PyChess.glade:1848 msgid "" "If set, PyChess will show game results for different moves in positions containing 6 or less pieces.\n" "It will search positions from http://www.k4it.de/" msgstr "" #: glade/PyChess.glade:1870 msgid "Opening, endgame" msgstr "" #: glade/PyChess.glade:1904 msgid "Use _analyzer" msgstr "Usa l'_analizzatore" #: glade/PyChess.glade:1946 msgid "" "The analyzer will run in the background and analyze the game. This is " "necessary for the hint mode to work" msgstr "L'analizzatore sarà attivato in background e analizzerà la partita. E' una funzione necessaria per permettere il funzionamento dei suggerimenti" #: glade/PyChess.glade:1978 msgid "Use _inverted analyzer" msgstr "Usa analizzatore _inverso" #: glade/PyChess.glade:2020 msgid "" "The inverse analyzer will analyze the game as if your opponent was to move. " "This is necessary for the spy mode to work" msgstr "L'analizzatore inverso analizzerà la partita come se toccasse al tuo avversario. E' una funzione è necessaria per permettere il funzionamento della modalità spia" #: glade/PyChess.glade:2096 msgid "Analyzing" msgstr "Analisi" #: glade/PyChess.glade:2118 msgid "_Hints" msgstr "_Consigli" #: glade/PyChess.glade:2263 msgid "Uninstall" msgstr "Rimuovi" #: glade/PyChess.glade:2317 msgid "Ac_tive" msgstr "A_ttivo" #: glade/PyChess.glade:2367 msgid "Installed Sidepanels" msgstr "Pannelli Laterali Installati" #: glade/PyChess.glade:2382 msgid "Side_panels" msgstr "_Pannelli Laterali" #: glade/PyChess.glade:2440 msgid "Light Squares :" msgstr "Quadrati chiari :" #: glade/PyChess.glade:2479 msgid "Dark Squares :" msgstr "Quadrati scuri :" #: glade/PyChess.glade:2515 msgid "Reset Default Colours" msgstr "" #: glade/PyChess.glade:2551 msgid "Board Colours" msgstr "Colori della scacchiera" #: glade/PyChess.glade:2610 msgid "Chess Sets" msgstr "" #: glade/PyChess.glade:2634 msgid "Themes" msgstr "Temi" #: glade/PyChess.glade:2659 msgid "_Use sounds in PyChess" msgstr "_Usare suoni in PyChess" #: glade/PyChess.glade:2982 msgid "A player _checks:" msgstr "Un giocatore ha dato _scacco:" #: glade/PyChess.glade:2997 msgid "A player _moves:" msgstr "Un giocatore ha _mosso:" #: glade/PyChess.glade:3010 msgid "Game is _drawn:" msgstr "La partita è _patta:" #: glade/PyChess.glade:3025 msgid "Game is _lost:" msgstr "La partita è pe_rsa:" #: glade/PyChess.glade:3040 msgid "Game is _won:" msgstr "La partita è _vinta:" #: glade/PyChess.glade:3055 msgid "A player c_aptures:" msgstr "Un giocatore ha _catturato" #: glade/PyChess.glade:3084 msgid "Game is _set-up:" msgstr "La partita è stata _impostata:" #: glade/PyChess.glade:3136 msgid "_Observed moves:" msgstr "Mosse _osservate" #: glade/PyChess.glade:3151 msgid "Observed _ends:" msgstr "_Finali osservati:" #: glade/PyChess.glade:3265 msgid "Short on _time:" msgstr "" #: glade/PyChess.glade:3317 msgid "_Invalid move:" msgstr "" #: glade/PyChess.glade:3369 msgid "Activate alarm when _remaining sec is:" msgstr "" #: glade/PyChess.glade:3416 msgid "Play Sound When..." msgstr "Riprodurre un suono quando..." #: glade/PyChess.glade:3438 msgid "_Sounds" msgstr "_Suoni" #: glade/PyChess.glade:3463 msgid "_Auto save finished games" msgstr "" #: glade/PyChess.glade:3497 msgid "Save files to:" msgstr "Salva file sotto:" #: glade/PyChess.glade:3525 msgid "Use name format:" msgstr "" #: glade/PyChess.glade:3569 msgid "Names: #n1, #n2" msgstr "" #: glade/PyChess.glade:3582 msgid "Year, month, day: #y, #m, #d" msgstr "" #: glade/PyChess.glade:3619 msgid "Save elapsed move _times" msgstr "" #: glade/PyChess.glade:3644 msgid "Save analyzing engine _evaluation values" msgstr "" #: glade/PyChess.glade:3669 msgid "Save _own games only" msgstr "" #: glade/PyChess.glade:3698 msgid "Save" msgstr "Salva" #: glade/PyChess.glade:3728 msgid "uci" msgstr "uci" #: glade/PyChess.glade:3731 msgid "xboard" msgstr "xboard" #: glade/PyChess.glade:3739 msgid "Manage engines" msgstr "Gestisci motori di analisi" #: glade/PyChess.glade:3837 msgid "Command:" msgstr "Comando:" #: glade/PyChess.glade:3851 msgid "Protocol:" msgstr "Protocollo:" #: glade/PyChess.glade:3865 msgid "Parameters:" msgstr "Parametri:" #: glade/PyChess.glade:3878 msgid "Command line parameters needed by the engine." msgstr "Parametri a linea di comando necessari per il motore." #: glade/PyChess.glade:3903 msgid "" "Engines use uci or xboard communication protocol to talk to the GUI.\n" "If it can use both you can set here which one you like." msgstr "I motori di analisi utilizzano il protocollo di comunicazione uci o xboard per dialogare con la GUI.\nSe entrambi i protocolli sono disponibili, qui hai la possibilità di scegliere quello che preferisci." #: glade/PyChess.glade:3929 msgid "Working directory:" msgstr "Cartella attuale:" #: glade/PyChess.glade:3942 msgid "The directory where the engine will be started from." msgstr "La cartella da cui verrà lanciato il motore d'analisi." #: glade/saveGamesDialog.glade:7 msgid "Quit PyChess" msgstr "Esci da PyChess" #: glade/saveGamesDialog.glade:24 lib/pychess/widgets/ionest.py:424 msgid "Close _without Saving" msgstr "Chiudi _senza salvare" #: glade/saveGamesDialog.glade:83 msgid "_Save %d documents" msgstr "_Salva %d partite" #: glade/saveGamesDialog.glade:141 msgid "" "There are %d games with unsaved moves. Save changes before " "closing?" msgstr "Ci sono %d partite con mosse non salvate. Vuoi salvare prima della chiusura?" #: glade/saveGamesDialog.glade:161 msgid "Select the games you want to save:" msgstr "Seleziona le partite che vuoi salvare:" #: glade/saveGamesDialog.glade:204 msgid "If you don't save, new changes to your games will be permanently lost." msgstr "Se non salvi, le ultime modifiche alla tua partita saranno perse." #: glade/taskers.glade:126 msgid "_Opponent:" msgstr "A_vversari:" #: glade/taskers.glade:154 msgid "_Your Color:" msgstr "_Tuo Colore:" #: glade/taskers.glade:219 msgid "_Start Game" msgstr "_Inizia Partita" #: glade/taskers.glade:338 msgid "Log on as G_uest" msgstr "Collegati come _Ospite" #: glade/taskers.glade:410 msgid "Ha_ndle:" msgstr "Ha_ndle:" #: glade/taskers.glade:469 msgid "_Connect to server" msgstr "" #: glade/tipoftheday.glade:7 msgid "Tip Of The day" msgstr "Suggerimento del giorno" #: glade/tipoftheday.glade:62 msgid "Show tips at startup" msgstr "Mostra suggerimenti all'avvio" #: lib/pychess/Main.py:302 msgid "http://en.wikipedia.org/wiki/Chess" msgstr "http://it.wikipedia.org/wiki/Scacchi" #: lib/pychess/Main.py:305 msgid "http://en.wikipedia.org/wiki/Rules_of_chess" msgstr "http://it.wikipedia.org/wiki/Scacchi" #: lib/pychess/Main.py:370 lib/pychess/widgets/gamenanny.py:80 msgid "Welcome" msgstr "Benvenuto" #: lib/pychess/Database/gamelist.py:40 msgid "Id" msgstr "Id" #: lib/pychess/Database/gamelist.py:40 msgid "W Elo" msgstr "W Elo" #: lib/pychess/Database/gamelist.py:40 msgid "B Elo" msgstr "B Elo" #: lib/pychess/Database/gamelist.py:41 msgid "Result" msgstr "Risultato" #: lib/pychess/Database/gamelist.py:41 msgid "Event" msgstr "Evento" #: lib/pychess/Database/gamelist.py:41 msgid "Site" msgstr "Sito" #: lib/pychess/Database/gamelist.py:41 msgid "Round" msgstr "Turno" #: lib/pychess/Database/gamelist.py:41 msgid "Date" msgstr "Data" #: lib/pychess/Database/gamelist.py:41 msgid "ECO" msgstr "ECO" #: lib/pychess/Database/gamelist.py:62 msgid "PyChess Game Database" msgstr "Banca dati del gioco PyChess" #: lib/pychess/Database/PgnImport.py:188 #, python-format msgid "The game #%s can't be loaded, because of an error parsing FEN" msgstr "La partita #%s non può essere caricata per un errore nella lettura del file" #: lib/pychess/ic/FICSConnection.py:139 msgid "The connection was broken - got \"end of file\" message" msgstr "La connessione è stata interrotta - ricevuto messaggio di \"end of file\"" #: lib/pychess/ic/FICSConnection.py:140 #, python-format msgid "'%s' is not a registered name" msgstr "'%s' non è un nome registrato" #: lib/pychess/ic/FICSConnection.py:141 msgid "" "The entered password was invalid.\n" "If you forgot your password, go to http://www.freechess.org/password to request a new one over email." msgstr "La password inserita non è valida.\nSe hai dimenticato la tua password, vai su http://www.freechess.org/password per richiederne una nuova per e-mail." #: lib/pychess/ic/FICSConnection.py:145 #, python-format msgid "Sorry '%s' is already logged in" msgstr "Scusa '%s' è già connesso" #: lib/pychess/ic/FICSConnection.py:146 #, python-format msgid "'%s' is a registered name. If it is yours, type the password." msgstr "" #: lib/pychess/ic/FICSConnection.py:147 msgid "" "Due to abuse problems, guest connections have been prevented.\n" "You can still register on http://www.freechess.org" msgstr "" #: lib/pychess/ic/FICSConnection.py:166 msgid "Connecting to server" msgstr "Connessione al server in corso..." #: lib/pychess/ic/FICSConnection.py:181 msgid "Logging on to server" msgstr "Autenticazione sul server in corso..." #: lib/pychess/ic/FICSConnection.py:239 msgid "Setting up environment" msgstr "Impostazione dell'ambiente" #: lib/pychess/ic/FICSObjects.py:35 lib/pychess/ic/FICSObjects.py:47 #, python-format msgid "%(player)s is %(status)s" msgstr "%(player)s è %(status)s" #: lib/pychess/ic/FICSObjects.py:46 msgid "not playing" msgstr "non in gioco" #: lib/pychess/ic/FICSObjects.py:54 lib/pychess/ic/ICLounge.py:1136 #: lib/pychess/ic/ICLounge.py:2209 lib/pychess/ic/__init__.py:98 #: lib/pychess/widgets/newGameDialog.py:153 msgid "Blitz" msgstr "Blitz" #: lib/pychess/ic/FICSObjects.py:58 lib/pychess/ic/ICLounge.py:1137 #: lib/pychess/ic/ICLounge.py:2209 lib/pychess/ic/__init__.py:100 msgid "Lightning" msgstr "Lampo" #: lib/pychess/ic/FICSObjects.py:60 lib/pychess/Variants/atomic.py:15 msgid "Atomic" msgstr "Atomico" #: lib/pychess/ic/FICSObjects.py:62 lib/pychess/Variants/bughouse.py:9 msgid "Bughouse" msgstr "" #: lib/pychess/ic/FICSObjects.py:64 lib/pychess/Variants/crazyhouse.py:9 msgid "Crazyhouse" msgstr "" #: lib/pychess/ic/FICSObjects.py:66 lib/pychess/Variants/losers.py:9 msgid "Losers" msgstr "Vinciperdi 2" #: lib/pychess/ic/FICSObjects.py:68 lib/pychess/Variants/suicide.py:12 msgid "Suicide" msgstr "Suicidio" #: lib/pychess/ic/FICSObjects.py:70 lib/pychess/ic/__init__.py:129 msgid "Wild" msgstr "Selvaggio" #: lib/pychess/ic/FICSObjects.py:117 msgid "Online" msgstr "Online" #: lib/pychess/ic/FICSObjects.py:118 lib/pychess/ic/FICSObjects.py:143 msgid "Offline" msgstr "Offline" #: lib/pychess/ic/FICSObjects.py:133 msgid "Available" msgstr "Disponibile" #: lib/pychess/ic/FICSObjects.py:135 msgid "Playing" msgstr "Giocando" #: lib/pychess/ic/FICSObjects.py:141 msgid "Idle" msgstr "In attesa" #: lib/pychess/ic/FICSObjects.py:145 msgid "Examining" msgstr "Esamino" #: lib/pychess/ic/FICSObjects.py:147 msgid "Not Available" msgstr "Non disponibile" #: lib/pychess/ic/FICSObjects.py:149 msgid "Running Simul Match" msgstr "Simul Match in esecuzione" #: lib/pychess/ic/FICSObjects.py:151 msgid "In Tournament" msgstr "Torneo in corso" #: lib/pychess/ic/FICSObjects.py:308 lib/pychess/ic/FICSObjects.py:492 #: lib/pychess/ic/ICLounge.py:2278 msgid "Unrated" msgstr "Senza punteggio" #: lib/pychess/ic/FICSObjects.py:491 lib/pychess/ic/ICLounge.py:670 #: lib/pychess/ic/ICLounge.py:1358 lib/pychess/ic/ICLounge.py:1558 #: lib/pychess/ic/ICLounge.py:2113 msgid "Rated" msgstr "Valutata" #: lib/pychess/ic/FICSObjects.py:498 lib/pychess/ic/ICLounge.py:2098 #, python-format msgid "%d min" msgstr "%d min" #: lib/pychess/ic/FICSObjects.py:500 #, python-format msgid " + %d sec" msgstr " + %d sec" #: lib/pychess/ic/FICSObjects.py:517 #, python-format msgid "%(player)s plays %(color)s" msgstr "%(player)s gioca %(color)s" #: lib/pychess/ic/FICSObjects.py:519 lib/pychess/ic/ICLounge.py:909 msgid "white" msgstr "bianco" #: lib/pychess/ic/FICSObjects.py:519 lib/pychess/ic/ICLounge.py:909 msgid "black" msgstr "nero" #: lib/pychess/ic/FICSObjects.py:565 msgid "This is a continuation of an adjourned match" msgstr "" #: lib/pychess/ic/FICSObjects.py:654 msgid "Opponent Rating" msgstr "Punteggio dell'avversatio" #: lib/pychess/ic/FICSObjects.py:656 msgid "Manual Accept" msgstr "Accetta manualmente" #: lib/pychess/ic/FICSObjects.py:810 msgid "Private" msgstr "Privato" #: lib/pychess/ic/FICSObjects.py:930 lib/pychess/ic/ICLounge.py:527 #: lib/pychess/Savers/epd.py:139 msgid "Unknown" msgstr "Sconosciuto" #: lib/pychess/ic/ICLogon.py:159 lib/pychess/ic/ICLogon.py:165 msgid "Connection Error" msgstr "Errore di connessione" #: lib/pychess/ic/ICLogon.py:161 msgid "Log on Error" msgstr "Errore di accesso" #: lib/pychess/ic/ICLogon.py:163 msgid "Connection was closed" msgstr "La connessione è terminata" #: lib/pychess/ic/ICLogon.py:169 msgid "Address Error" msgstr "Errore indirizzo" #: lib/pychess/ic/ICLogon.py:172 msgid "Auto-logout" msgstr "Disconnessione automatica" #: lib/pychess/ic/ICLogon.py:173 msgid "You have been logged out because you were idle more than 60 minutes" msgstr "Sei stato disconnesso perché non attivo per più di 60 minuti" #: lib/pychess/ic/ICLounge.py:222 msgid "You have to set kibitz on to see bot messages here." msgstr "" #: lib/pychess/ic/ICLounge.py:241 msgid "" "You may only have 3 outstanding seeks at the same time. If you want to add a" " new seek you must clear your currently active seeks. Clear your seeks?" msgstr "Si possono avere 3 ricerce eccezionali allo stesso tempo. Se vuoi aggiungere una nuova ricerca devi eliminare le ricerche correnti. Eliminare le ricerche correnti?" #: lib/pychess/ic/ICLounge.py:258 msgid "You can't touch this! You are examining a game." msgstr "" #: lib/pychess/ic/ICLounge.py:270 msgid " has declined your offer for a match" msgstr "ha declinato la tua proposta per una partita" #: lib/pychess/ic/ICLounge.py:283 msgid " is censoring you" msgstr "ti sta censurando" #: lib/pychess/ic/ICLounge.py:296 msgid " noplay listing you" msgstr "" #: lib/pychess/ic/ICLounge.py:311 msgid " uses a formula not fitting your match request:" msgstr "" #: lib/pychess/ic/ICLounge.py:325 msgid "to manual accept" msgstr "" #: lib/pychess/ic/ICLounge.py:327 msgid "to automatic accept" msgstr "" #: lib/pychess/ic/ICLounge.py:329 msgid "rating range now" msgstr "" #: lib/pychess/ic/ICLounge.py:330 msgid "Seek updated" msgstr "Richiesta aggiornata" #: lib/pychess/ic/ICLounge.py:342 msgid "Your seeks have been removed" msgstr "" #: lib/pychess/ic/ICLounge.py:363 msgid " has arrived" msgstr "è arrivato" #: lib/pychess/ic/ICLounge.py:370 msgid " has departed" msgstr "è partito" #: lib/pychess/ic/ICLounge.py:374 msgid " is present" msgstr "è presente" #: lib/pychess/ic/ICLounge.py:391 sidepanel/chatPanel.py:17 msgid "Chat" msgstr "Chat" #: lib/pychess/ic/ICLounge.py:472 sidepanel/bookPanel.py:366 msgid "Win" msgstr "Vinto" #: lib/pychess/ic/ICLounge.py:472 sidepanel/bookPanel.py:360 msgid "Draw" msgstr "Patta" #: lib/pychess/ic/ICLounge.py:472 sidepanel/bookPanel.py:363 msgid "Loss" msgstr "Perso" #: lib/pychess/ic/ICLounge.py:482 msgid "" "On FICS, your \"Wild\" rating encompasses all of the following variants at " "all time controls:\n" msgstr "Su FICS, il tuo punteggio \"Wild\" comprende tutte le seguenti varianti su tutti i tempi:\n" #: lib/pychess/ic/ICLounge.py:494 msgid "Sanctions" msgstr "Sanzioni" #: lib/pychess/ic/ICLounge.py:499 msgid "Email" msgstr "Email" #: lib/pychess/ic/ICLounge.py:504 msgid "Spent" msgstr "Trascorsi" #: lib/pychess/ic/ICLounge.py:506 msgid "online in total" msgstr "in rete su un totale di" #: lib/pychess/ic/ICLounge.py:512 msgid "Ping" msgstr "Ping" #: lib/pychess/ic/ICLounge.py:517 msgid "Connecting" msgstr "Connessione in corso" #: lib/pychess/ic/ICLounge.py:544 msgid "" "You are currently logged in as a guest.\n" "A guest can't play rated games and therefore isn't able to play as many of the types of matches offered as a registered user. To register an account, go to http://www.freechess.org/Register/index.html." msgstr "" #: lib/pychess/ic/ICLounge.py:669 lib/pychess/ic/ICLounge.py:1136 msgid "Name" msgstr "Nome" #: lib/pychess/ic/ICLounge.py:670 lib/pychess/ic/ICLounge.py:1358 #: lib/pychess/ic/ICLounge.py:1558 msgid "Type" msgstr "Tipo" #: lib/pychess/ic/ICLounge.py:670 lib/pychess/ic/ICLounge.py:1558 msgid "Clock" msgstr "Orologio" #: lib/pychess/ic/ICLounge.py:726 lib/pychess/ic/ICLounge.py:923 #: lib/pychess/Players/Human.py:250 msgid "Accept" msgstr "Accetta" #: lib/pychess/ic/ICLounge.py:728 msgid "Assess" msgstr "" #: lib/pychess/ic/ICLounge.py:734 msgid "Archived" msgstr "" #: lib/pychess/ic/ICLounge.py:848 #, python-format msgid "Active seeks: %d" msgstr "Ricerche attive: %d" #: lib/pychess/ic/ICLounge.py:897 #, python-format msgid "" " would like to resume your adjourned %(time)s %(gametype)s " "game." msgstr "" #: lib/pychess/ic/ICLounge.py:902 #, python-format msgid "" " challenges you to a %(time)s %(rated)s %(gametype)s game" msgstr "" #: lib/pychess/ic/ICLounge.py:907 #, python-format msgid " where %(player)s plays %(color)s." msgstr "" #: lib/pychess/ic/ICLounge.py:924 lib/pychess/Players/Human.py:251 msgid "Decline" msgstr "Rifiuta" #: lib/pychess/ic/ICLounge.py:1065 msgid " min" msgstr " minuti" #: lib/pychess/ic/ICLounge.py:1137 msgid "Status" msgstr "Stato" #: lib/pychess/ic/ICLounge.py:1203 lib/pychess/ic/ICLounge.py:1233 #, python-format msgid "Players: %d" msgstr "Numero di Giocatori: %d" #: lib/pychess/ic/ICLounge.py:1469 #, python-format msgid "Games running: %d" msgstr "Partite in corso: %d" #: lib/pychess/ic/ICLounge.py:1559 msgid "Date/Time" msgstr "Data/Ora" #: lib/pychess/ic/ICLounge.py:1614 #, python-format msgid "" " with whom you have an adjourned %(timecontrol)s %(gametype)s " "game is online." msgstr "" #: lib/pychess/ic/ICLounge.py:1635 msgid "Request Continuation" msgstr "Richiedi di continuare" #: lib/pychess/ic/ICLounge.py:1637 msgid "Examine Adjourned Game" msgstr "Esamina partita aggiornata" #: lib/pychess/ic/ICLounge.py:1965 msgid "" "The chain button is disabled because you are logged in as a guest. Guests " "can't establish ratings, and the chain button's state has no effect when " "there is no rating to which to tie \"Opponent Strength\" to" msgstr "Il pulsante \"Chain\" è disabilitato perché se collegato come \"ospite\". Gli \"ospiti\" non gestiscono il punteggio e il pulsante \"Chain\" non avrebbe effetto in quanto non ci sarebbe punteggio da legare al livello dell'avversario." #: lib/pychess/ic/ICLounge.py:2006 msgid "Challenge: " msgstr "Sfida: " #: lib/pychess/ic/ICLounge.py:2044 msgid "If set you can refuse players accepting your seek" msgstr "" #: lib/pychess/ic/ICLounge.py:2048 lib/pychess/ic/ICLounge.py:2051 msgid "This option is not applicable because you're challenging a player" msgstr "Questa opzione non è applicabile perché stai sfidando un giocatore" #: lib/pychess/ic/ICLounge.py:2064 msgid "Edit Seek: " msgstr "Modifica ricerca: " #: lib/pychess/ic/ICLounge.py:2095 #, python-format msgid "%(minutes)d min + %(gain)d sec/move" msgstr "%(minutes)d min + %(gain)d sec/mossa" #: lib/pychess/ic/ICLounge.py:2116 msgid "Manual" msgstr "Comando manuale" #: lib/pychess/ic/ICLounge.py:2256 msgid "Any strength" msgstr "Qualsiasi titolo" #: lib/pychess/ic/ICLounge.py:2308 msgid "You can't play rated games because you are logged in as a guest" msgstr "Non puoi scegliere partite a punteggio perché sei connesso come \"ospite\"" #: lib/pychess/ic/ICLounge.py:2312 msgid "You can't play rated games because \"Untimed\" is checked, " msgstr "Non puoi giocare una partita a punteggio perché è selezionata l'opzione \"Senza tempo\", " #: lib/pychess/ic/ICLounge.py:2313 msgid "and on FICS, untimed games can't be rated" msgstr "e su FICS, le partite \"Senza tempo\" non possono essere a punteggio." #: lib/pychess/ic/ICLounge.py:2317 msgid "This option is not available because you're challenging a guest, " msgstr "Questa opzione non è disponibile perché stai sfidando un \"Ospite\", " #: lib/pychess/ic/ICLounge.py:2318 msgid "and guests can't play rated games" msgstr "e gli \"Ospiti\" non possono giocare partite a punteggio" #: lib/pychess/ic/ICLounge.py:2332 lib/pychess/Variants/shuffle.py:16 #: lib/pychess/widgets/newGameDialog.py:266 msgid "Shuffle" msgstr "Mischia" #: lib/pychess/ic/ICLounge.py:2333 lib/pychess/widgets/newGameDialog.py:267 msgid "Other (standard rules)" msgstr "Altro (regole standard)" #: lib/pychess/ic/ICLounge.py:2334 lib/pychess/widgets/newGameDialog.py:268 msgid "Other (non standard rules)" msgstr "Altro (regole non standard)" #: lib/pychess/ic/ICLounge.py:2421 msgid "You can't select a variant because \"Untimed\" is checked, " msgstr "Non puoi scegliere una variante perché hai selezionato \"Senza cronometro\", " #: lib/pychess/ic/ICLounge.py:2422 msgid "and on FICS, untimed games have to be normal chess rules" msgstr "e su FICS, le partite \"Senza cronometro\" devono seguire le normali regole scacchistiche" #: lib/pychess/ic/ICLounge.py:2454 msgid "Change Tolerance" msgstr "Modifica tolleranza" #: lib/pychess/ic/__init__.py:102 msgid "Examined" msgstr "Esaminato" #: lib/pychess/ic/__init__.py:103 msgid "Other" msgstr "Altre" #: lib/pychess/ic/__init__.py:182 msgid "Administrator" msgstr "Amministratore" #: lib/pychess/ic/__init__.py:182 msgid "Blindfold Account" msgstr "Account alla cieca" #: lib/pychess/ic/__init__.py:182 msgid "Computer" msgstr "Computer" #: lib/pychess/ic/__init__.py:183 msgid "Team Account" msgstr "Team Account" #: lib/pychess/ic/__init__.py:183 msgid "Unregistered" msgstr "Non registrato" #: lib/pychess/ic/__init__.py:183 msgid "Chess Advisor" msgstr "Consulente" #: lib/pychess/ic/__init__.py:184 msgid "Service Representative" msgstr "Rappresentante del servizio" #: lib/pychess/ic/__init__.py:184 msgid "Tournament Director" msgstr "Direttore di torneo" #: lib/pychess/ic/__init__.py:184 msgid "Mamer Manager" msgstr "Mamer Manager" #: lib/pychess/ic/__init__.py:185 msgid "Grand Master" msgstr "Gran Maestro" #: lib/pychess/ic/__init__.py:185 msgid "International Master" msgstr "Maestro internazionale" #: lib/pychess/ic/__init__.py:185 msgid "FIDE Master" msgstr "Maestro FIDE" #: lib/pychess/ic/__init__.py:186 msgid "Woman Grand Master" msgstr "Grande Maestro Donna" #: lib/pychess/ic/__init__.py:186 msgid "Woman International Master" msgstr "Maestro Internazionale Donna" #: lib/pychess/ic/__init__.py:186 msgid "Woman FIDE Master" msgstr "Maestro FIDE di sesso femminile" #: lib/pychess/ic/__init__.py:187 msgid "Dummy Account" msgstr "Account fittizio" #: lib/pychess/ic/__init__.py:191 msgid "*" msgstr "*" #: lib/pychess/ic/__init__.py:191 lib/pychess/Utils/repr.py:14 msgid "B" msgstr "A" #: lib/pychess/ic/__init__.py:191 msgid "C" msgstr "C" #: lib/pychess/ic/__init__.py:192 msgid "T" msgstr "T" #: lib/pychess/ic/__init__.py:192 msgid "U" msgstr "U" #: lib/pychess/ic/__init__.py:192 msgid "CA" msgstr "CA" #: lib/pychess/ic/__init__.py:193 msgid "SR" msgstr "SR" #: lib/pychess/ic/__init__.py:193 msgid "TD" msgstr "TD" #: lib/pychess/ic/__init__.py:193 msgid "TM" msgstr "TM" #: lib/pychess/ic/__init__.py:194 msgid "GM" msgstr "GM" #: lib/pychess/ic/__init__.py:194 msgid "IM" msgstr "IM" #: lib/pychess/ic/__init__.py:194 msgid "FM" msgstr "FM" #: lib/pychess/ic/__init__.py:195 msgid "WGM" msgstr "WGM" #: lib/pychess/ic/__init__.py:195 msgid "WIM" msgstr "WIM" #: lib/pychess/ic/__init__.py:195 msgid "WFM" msgstr "" #: lib/pychess/ic/__init__.py:195 msgid "D" msgstr "D" #: lib/pychess/ic/__init__.py:195 msgid "H" msgstr "" #: lib/pychess/ic/__init__.py:195 msgid "CM" msgstr "" #: lib/pychess/ic/__init__.py:195 msgid "FA" msgstr "" #: lib/pychess/ic/__init__.py:195 msgid "NM" msgstr "" #: lib/pychess/Players/CECPEngine.py:857 #, python-format msgid "The engine %s reports an error:" msgstr "Il motore %s segnala un errore:" #: lib/pychess/Players/Human.py:20 msgid "Your opponent has offered you a draw." msgstr "" #: lib/pychess/Players/Human.py:21 msgid "" "Your opponent has offered you a draw. If you accept this offer, the game " "will end with a score of 1/2 - 1/2." msgstr "Il tuo avversario ti ha offerto la patta. Se accetti l'offerta, la partita finirà con punteggio di 1/2 - 1/2." #: lib/pychess/Players/Human.py:23 msgid "Your opponent wants to abort the game." msgstr "" #: lib/pychess/Players/Human.py:24 msgid "" "Your opponent has asked that the game be aborted. If you accept this offer, " "the game will end with no rating change." msgstr "Il tuo avversario ha chiesto l'annullamento. Se accetti l'offerta, la partita finirà senza modifica di punteggio." #: lib/pychess/Players/Human.py:26 msgid "Your opponent wants to adjourn the game." msgstr "" #: lib/pychess/Players/Human.py:27 msgid "" "Your opponent has asked that the game be adjourned. If you accept this " "offer, the game will be adjourned and you can resume it later (when your " "opponent is online and both players agree to resume)." msgstr "Il tuo avversario ha chiesto che la partita venga sospesa. Se accetti questa offerta, la partita verrà sospesa e potrà essere ripresa più tardi (quando il tuo avversario sarà nuovamente online ed entrambi sarete d'accordo a riprendere)." #: lib/pychess/Players/Human.py:29 #, python-format msgid "Your opponent wants to undo %s move(s)." msgstr "" #: lib/pychess/Players/Human.py:30 #, python-format msgid "" "Your opponent has asked that the last %s move(s) be undone. If you accept " "this offer, the game will continue from the earlier position." msgstr "Il tuo avversario chiede di annullare %s mossa(e). Se accetti, il gioco riprenderà dall'ultima mossa non annullata." #: lib/pychess/Players/Human.py:32 msgid "Your opponent wants to pause the game." msgstr "" #: lib/pychess/Players/Human.py:33 msgid "" "Your opponent has asked that the game be paused. If you accept this offer, " "the game clock will be paused until both players agree to resume the game." msgstr "Il tuo avversario chiede una pausa. Se accetti, l'orologio della partita verrà fermata fino a quando entrambi i giocatori non si accorderanno per riprendere la partita." #: lib/pychess/Players/Human.py:35 msgid "Your opponent wants to resume the game." msgstr "" #: lib/pychess/Players/Human.py:36 msgid "" "Your opponent has asked that the game be resumed. If you accept this offer, " "the game clock will continue from where it was paused." msgstr "Il tuo avversario chiede di riprendere la partita. Se accetti, l'orologio della partita riprenderà dal momento in cui era stato messo in pausa." #: lib/pychess/Players/Human.py:40 msgid "The resignation" msgstr "La resa" #: lib/pychess/Players/Human.py:41 msgid "The flag call" msgstr "Controllo bandierina" #: lib/pychess/Players/Human.py:42 msgid "The draw offer" msgstr "L'offerta di Patta" #: lib/pychess/Players/Human.py:43 msgid "The abort offer" msgstr "L'offerta di Abbandono" #: lib/pychess/Players/Human.py:44 msgid "The adjourn offer" msgstr "L'offerta di sospensione" #: lib/pychess/Players/Human.py:45 msgid "The pause offer" msgstr "L'offerta di pausa" #: lib/pychess/Players/Human.py:46 msgid "The resume offer" msgstr "L'offerta di Ripresa" #: lib/pychess/Players/Human.py:47 msgid "The offer to switch sides" msgstr "L'offerta di cambio lato" #: lib/pychess/Players/Human.py:48 msgid "The takeback offer" msgstr "L'offerta di Ritiro" #: lib/pychess/Players/Human.py:52 msgid "resign" msgstr "abbandona" #: lib/pychess/Players/Human.py:53 msgid "call your opponents flag" msgstr "controlla la bandierina del tuo avversario" #: lib/pychess/Players/Human.py:54 msgid "offer a draw" msgstr "offri una patta" #: lib/pychess/Players/Human.py:55 msgid "offer an abort" msgstr "offri l'abbandono" #: lib/pychess/Players/Human.py:56 msgid "offer to adjourn" msgstr "Offri di sospendere" #: lib/pychess/Players/Human.py:57 msgid "offer a pause" msgstr "offri una pausa" #: lib/pychess/Players/Human.py:58 msgid "offer to resume" msgstr "offri di riprendere" #: lib/pychess/Players/Human.py:59 msgid "offer to switch sides" msgstr "offri di cambiare lati" #: lib/pychess/Players/Human.py:60 msgid "offer a takeback" msgstr "Offri Ritiro" #: lib/pychess/Players/Human.py:61 msgid "ask your opponent to move" msgstr "richiedi all'avversario di muovere" #: lib/pychess/Players/Human.py:66 msgid "Your opponent is not out of time." msgstr "Il tuo avversario non ha finito il tempo a disposizione." #: lib/pychess/Players/Human.py:68 msgid "The clock hasn't been started yet." msgstr "L'orologio non è stato ancora avviato." #: lib/pychess/Players/Human.py:70 msgid "You can't switch colors during the game." msgstr "Non è possibile cambiare i colori durante il gioco." #: lib/pychess/Players/Human.py:72 msgid "You have tried to undo too many moves." msgstr "Si è tentato di annullare troppe mosse." #: lib/pychess/Players/Human.py:180 msgid "Your opponent asks you to hurry!" msgstr "Il tuo avversario ti chiede di fare in fretta!" #: lib/pychess/Players/Human.py:181 msgid "" "Generally this means nothing, as the game is time-based, but if you want to " "please your opponent, perhaps you should get going." msgstr "" #: lib/pychess/Players/Human.py:259 #, python-format msgid "%s was declined by your opponent" msgstr "%s è stato rifiutata dal tuo avversario" #: lib/pychess/Players/Human.py:260 #, python-format msgid "Resend %s?" msgstr "" #: lib/pychess/Players/Human.py:267 msgid "Resend" msgstr "Manda di nuovo" #: lib/pychess/Players/Human.py:275 #, python-format msgid "%s was withdrawn by your opponent" msgstr "%s è stato annullato dal tuo avversario" #: lib/pychess/Players/Human.py:276 msgid "Your opponent seems to have changed their mind." msgstr "" #: lib/pychess/Players/Human.py:290 #, python-format msgid "Unable to accept %s" msgstr "Impossibile accettare %s" #: lib/pychess/Players/Human.py:291 msgid "Probably because it has been withdrawn." msgstr "" #: lib/pychess/Players/Human.py:298 #, python-format msgid "%s returns an error" msgstr "%s ha riportato un errore" #: lib/pychess/Savers/chessalpha2.py:12 msgid "Chess Alpha 2 Diagram" msgstr "Diagramma Scacchi Alpha 2" #: lib/pychess/Savers/chesspastebin.py:39 msgid "Game shared at " msgstr "" #: lib/pychess/Savers/chesspastebin.py:41 msgid "(Link is available on clipboard.)" msgstr "" #: lib/pychess/Savers/database.py:19 msgid "PyChess database" msgstr "Database PyChess" #: lib/pychess/Savers/epd.py:12 msgid "Chess Position" msgstr "Posizione scacchiera" #: lib/pychess/Savers/fen.py:12 msgid "Simple Chess Position" msgstr "Posizione semplice della scacchiera" #: lib/pychess/Savers/fen.py:44 lib/pychess/Savers/pgn.py:329 msgid "The game can't be loaded, because of an error parsing FEN" msgstr "" #: lib/pychess/Savers/pgnbase.py:100 #, python-format msgid "" "The game can't be read to end, because of an error parsing move %(moveno)s " "'%(notation)s'." msgstr "La partita non può essere letta fino alla fine a causa di un errore di analisi mossa %(moveno)s '%(notation)s'." #: lib/pychess/Savers/pgnbase.py:102 #, python-format msgid "The move failed because %s." msgstr "La mossa è fallita perché %s." #: lib/pychess/Savers/pgnbase.py:110 #, python-format msgid "Error parsing move %(moveno)s %(mstr)s" msgstr "" #: lib/pychess/Savers/pgn.py:28 msgid "Chess Game" msgstr "Partita di Scacchi" #: lib/pychess/Savers/pgn.py:362 msgid "Invalid move." msgstr "Mossa non valida." #: lib/pychess/Savers/png.py:15 msgid "Png image" msgstr "Immagine Png" #: lib/pychess/System/ping.py:31 msgid "Destination Host Unreachable" msgstr "L'host di destinazione non è raggiungibile" #: lib/pychess/System/ping.py:74 msgid "Died" msgstr "Deceduto" #: lib/pychess/Utils/GameModel.py:147 msgid "Local Event" msgstr "Evento locale" #: lib/pychess/Utils/GameModel.py:148 msgid "Local Site" msgstr "Sito locale" #: lib/pychess/Utils/repr.py:12 msgid "Pawn" msgstr "Pedone" #: lib/pychess/Utils/repr.py:14 msgid "P" msgstr "P" #: lib/pychess/Utils/repr.py:14 msgid "N" msgstr "C" #: lib/pychess/Utils/repr.py:14 msgid "R" msgstr "T" #: lib/pychess/Utils/repr.py:14 msgid "Q" msgstr "D" #: lib/pychess/Utils/repr.py:14 msgid "K" msgstr "R" #: lib/pychess/Utils/repr.py:17 msgid "The game ended in a draw" msgstr "La partita è finita patta." #: lib/pychess/Utils/repr.py:18 #, python-format msgid "%(white)s won the game" msgstr "%(white)s vince la partita" #: lib/pychess/Utils/repr.py:19 #, python-format msgid "%(black)s won the game" msgstr "%(black)s vince la partita" #: lib/pychess/Utils/repr.py:20 msgid "The game has been killed" msgstr "La partita è stata interrotta." #: lib/pychess/Utils/repr.py:21 msgid "The game has been adjourned" msgstr "La partita è stata sospesa" #: lib/pychess/Utils/repr.py:22 msgid "The game has been aborted" msgstr "La partita è stata annullata" #: lib/pychess/Utils/repr.py:26 msgid "Because neither player has sufficient material to mate" msgstr "Perché nessun giocatore ha pezzi sufficienti per dare scacco matto" #: lib/pychess/Utils/repr.py:27 msgid "Because the same position was repeated three times in a row" msgstr "Perché la stessa posizione si è ripetuta per tre volte di seguito" #: lib/pychess/Utils/repr.py:28 msgid "Because the last 50 moves brought nothing new" msgstr "Perché le ultime 50 mosse non hanno portato niente di nuovo" #: lib/pychess/Utils/repr.py:29 msgid "Because both players ran out of time" msgstr "Perché entrambi i giocatori sono andati oltre il tempo massimo" #: lib/pychess/Utils/repr.py:30 #, python-format msgid "Because %(mover)s stalemated" msgstr "Perché %(mover)s è in stallo" #: lib/pychess/Utils/repr.py:31 msgid "Because both players agreed to a draw" msgstr "" #: lib/pychess/Utils/repr.py:32 lib/pychess/Utils/repr.py:42 msgid "Because of adjudication by an admin" msgstr "A causa di una sentenza pronunciata da un amministratore" #: lib/pychess/Utils/repr.py:33 msgid "Because the game exceed the max length" msgstr "Perché la partita ha superato la lunghezza massima" #: lib/pychess/Utils/repr.py:34 #, python-format msgid "" "Because %(white)s ran out of time and %(black)s has insufficient material to" " mate" msgstr "Perché %(white)s è andato fuori tempo massimo e %(black)s non ha sufficienti pezzi per dare scacco matto" #: lib/pychess/Utils/repr.py:35 #, python-format msgid "" "Because %(black)s ran out of time and %(white)s has insufficient material to" " mate" msgstr "Perché %(black)s è andato fuori tempo massimo e %(white)s non ha sufficienti pezzi per dare scacco matto" #: lib/pychess/Utils/repr.py:36 msgid "Because both players have the same amount of pieces" msgstr "" #: lib/pychess/Utils/repr.py:38 #, python-format msgid "Because %(loser)s resigned" msgstr "Perché %(loser)s ha abbandonato" #: lib/pychess/Utils/repr.py:39 #, python-format msgid "Because %(loser)s ran out of time" msgstr "Perché %(loser)s è andato fuori tempo massimo" #: lib/pychess/Utils/repr.py:40 #, python-format msgid "Because %(loser)s was checkmated" msgstr "Perché %(loser)s ha subito scacco matto" #: lib/pychess/Utils/repr.py:41 #, python-format msgid "Because %(loser)s disconnected" msgstr "Perch %(loser)s si è disconnesso" #: lib/pychess/Utils/repr.py:43 #, python-format msgid "Because %(winner)s has fewer pieces" msgstr "" #: lib/pychess/Utils/repr.py:44 #, python-format msgid "Because %(winner)s lost all pieces" msgstr "" #: lib/pychess/Utils/repr.py:45 #, python-format msgid "Because %(loser)s king exploded" msgstr "" #: lib/pychess/Utils/repr.py:46 #, python-format msgid "Because %(winner)s king reached the center" msgstr "" #: lib/pychess/Utils/repr.py:47 #, python-format msgid "Because %(winner)s was giving check 3 times" msgstr "" #: lib/pychess/Utils/repr.py:49 msgid "Because a player lost connection" msgstr "Perché un giocatore ha perso la connessione" #: lib/pychess/Utils/repr.py:50 msgid "Because both players agreed to an adjournment" msgstr "" #: lib/pychess/Utils/repr.py:51 msgid "Because the server was shut down" msgstr "Poiché il server è stato spento." #: lib/pychess/Utils/repr.py:52 msgid "" "Because a player lost connection and the other player requested adjournment" msgstr "Perché un giocatore si è disconnesso e l'altro ha richiesto la sospensione" #: lib/pychess/Utils/repr.py:53 #, python-format msgid "" "Because %(black)s lost connection to the server and %(white)s requested " "adjournment" msgstr "Perchè %(black)s ha perso la connessione al server e %(white)s ha richiesto di aggiornare" #: lib/pychess/Utils/repr.py:54 #, python-format msgid "" "Because %(white)s lost connection to the server and %(black)s requested " "adjournment" msgstr "Perchè %(white)s ha perso la connessione al server e %(black)s ha richiesto di aggiornare" #: lib/pychess/Utils/repr.py:55 #, python-format msgid "Because %(white)s lost connection to the server" msgstr "Perchè %(white)s ha perso la connessione al server" #: lib/pychess/Utils/repr.py:56 #, python-format msgid "Because %(black)s lost connection to the server" msgstr "Perchè %(black)s ha perso la connessione al server" #: lib/pychess/Utils/repr.py:58 msgid "Because of adjudication by an admin. No rating changes have occurred." msgstr "" #: lib/pychess/Utils/repr.py:59 msgid "" "Because both players agreed to abort the game. No rating changes have " "occurred." msgstr "" #: lib/pychess/Utils/repr.py:60 msgid "Because of courtesy by a player. No rating changes have occurred." msgstr "" #: lib/pychess/Utils/repr.py:61 msgid "" "Because a player aborted the game. Either player can abort the game without " "the other's consent before the second move. No rating changes have occurred." msgstr "" #: lib/pychess/Utils/repr.py:62 msgid "" "Because a player disconnected and there are too few moves to warrant " "adjournment. No rating changes have occurred." msgstr "" #: lib/pychess/Utils/repr.py:63 msgid "Because the server was shut down. No rating changes have occurred." msgstr "" #: lib/pychess/Utils/repr.py:65 #, python-format msgid "Because the %(white)s engine died" msgstr "Perché il motore di %(white)s è morto" #: lib/pychess/Utils/repr.py:66 #, python-format msgid "Because the %(black)s engine died" msgstr "" #: lib/pychess/Utils/repr.py:67 msgid "Because the connection to the server was lost" msgstr "Perché la connessione al server è stata persa" #: lib/pychess/Utils/repr.py:68 msgid "The reason is unknown" msgstr "Ragione sconosciuta" #: lib/pychess/Utils/TimeModel.py:229 msgid "min" msgstr "min" #: lib/pychess/Utils/TimeModel.py:231 msgid "sec" msgstr "sec" #: lib/pychess/Variants/asean.py:12 msgid "" "ASEAN: http://www.ncf-" "phil.org/downloadables/2014/May/Asean_chess/Laws_of_ASEAN_Chess_2011_Nov_26.doc" msgstr "ASEAN: http://www.ncf-phil.org/downloadables/2014/May/Asean_chess/Laws_of_ASEAN_Chess_2011_Nov_26.doc" #: lib/pychess/Variants/asean.py:13 msgid "ASEAN" msgstr "ASEAN" #: lib/pychess/Variants/asean.py:33 msgid "Makruk: http://en.wikipedia.org/wiki/Makruk" msgstr "Makruk: http://en.wikipedia.org/wiki/Makruk" #: lib/pychess/Variants/asean.py:34 msgid "Makruk" msgstr "Makruk" #: lib/pychess/Variants/asean.py:60 msgid "Cambodian: http://www.khmerinstitute.org/culture/ok.html" msgstr "Cambodian: http://www.khmerinstitute.org/culture/ok.html" #: lib/pychess/Variants/asean.py:61 msgid "Cambodian" msgstr "Cambodian" #: lib/pychess/Variants/asean.py:86 msgid "" "Ai-Wok: http://www.open-" "aurec.com/wbforum/viewtopic.php?p=199364&sid=20963a1de2c164050de019e5ed6bf7c4#p199364" msgstr "Ai-Wok: http://www.open-aurec.com/wbforum/viewtopic.php?p=199364&sid=20963a1de2c164050de019e5ed6bf7c4#p199364" #: lib/pychess/Variants/asean.py:87 msgid "Ai-Wok" msgstr "Ai-Wok" #: lib/pychess/Variants/asean.py:111 msgid "Sittuyin: http://en.wikipedia.org/wiki/Sittuyin" msgstr "Sittuyin: http://en.wikipedia.org/wiki/Sittuyin" #: lib/pychess/Variants/asean.py:112 msgid "Sittuyin" msgstr "Sittuyin" #: lib/pychess/Variants/asymmetricrandom.py:12 msgid "" "FICS wild/4: http://www.freechess.org/Help/HelpFiles/wild.html\n" "* Randomly chosen pieces (two queens or three rooks possible)\n" "* Exactly one king of each color\n" "* Pieces placed randomly behind the pawns, SUBJECT TO THE CONSTRAINT THAT THE BISHOPS ARE BALANCED\n" "* No castling\n" "* Black's arrangement DOES NOT mirrors white's" msgstr "" #: lib/pychess/Variants/asymmetricrandom.py:18 msgid "Asymmetric Random" msgstr "Casuale asimmetrico" #: lib/pychess/Variants/atomic.py:14 msgid "FICS atomic: http://www.freechess.org/Help/HelpFiles/atomic.html" msgstr "FICS atomic: http://www.freechess.org/Help/HelpFiles/atomic.html" #: lib/pychess/Variants/blindfold.py:7 msgid "" "Classic chess rules with hidden figurines\n" "http://en.wikipedia.org/wiki/Blindfold_chess" msgstr "" #: lib/pychess/Variants/blindfold.py:9 #: lib/pychess/widgets/newGameDialog.py:264 msgid "Blindfold" msgstr "Alla cieca" #: lib/pychess/Variants/blindfold.py:18 msgid "" "Classic chess rules with hidden pawns\n" "http://en.wikipedia.org/wiki/Blindfold_chess" msgstr "" #: lib/pychess/Variants/blindfold.py:20 msgid "Hidden pawns" msgstr "Pedoni nascosti" #: lib/pychess/Variants/blindfold.py:29 msgid "" "Classic chess rules with hidden pieces\n" "http://en.wikipedia.org/wiki/Blindfold_chess" msgstr "" #: lib/pychess/Variants/blindfold.py:31 msgid "Hidden pieces" msgstr "Pezzi nascosti" #: lib/pychess/Variants/blindfold.py:40 msgid "" "Classic chess rules with all pieces white\n" "http://en.wikipedia.org/wiki/Blindfold_chess" msgstr "" #: lib/pychess/Variants/blindfold.py:42 msgid "All white" msgstr "Tutto bianco" #: lib/pychess/Variants/bughouse.py:8 msgid "FICS bughouse: http://www.freechess.org/Help/HelpFiles/bughouse.html" msgstr "FICS bughouse: http://www.freechess.org/Help/HelpFiles/bughouse.html" #: lib/pychess/Variants/corner.py:12 msgid "" "http://brainking.com/en/GameRules?tp=2\n" "* Placement of the pieces on the 1st and 8th row are randomized\n" "* The king is in the right hand corner\n" "* Bishops must start on opposite color squares\n" "* Black's starting position is obtained by rotating white's position 180 degrees around the board's center\n" "* No castling" msgstr "" #: lib/pychess/Variants/corner.py:18 msgid "Corner" msgstr "Angolo" #: lib/pychess/Variants/crazyhouse.py:8 msgid "" "FICS crazyhouse: http://www.freechess.org/Help/HelpFiles/crazyhouse.html" msgstr "" #: lib/pychess/Variants/euroshogi.py:9 msgid "EuroShogi: http://en.wikipedia.org/wiki/EuroShogi" msgstr "EuroShogi: http://en.wikipedia.org/wiki/EuroShogi" #: lib/pychess/Variants/euroshogi.py:10 msgid "EuroShogi" msgstr "EuroShogi" #: lib/pychess/Variants/fischerandom.py:18 msgid "" "http://en.wikipedia.org/wiki/Chess960\n" "FICS wild/fr: http://www.freechess.org/Help/HelpFiles/wild.html" msgstr "" #: lib/pychess/Variants/fischerandom.py:20 msgid "Fischer Random" msgstr "Fischer Casuale" #: lib/pychess/Variants/kingofthehill.py:8 msgid "" "Bringing your king legally to the center (e4, d4, e5, d5) instantly wins the game!\n" "Normal rules apply in other cases and checkmate also ends the game." msgstr "" #: lib/pychess/Variants/kingofthehill.py:10 msgid "King of the hill" msgstr "Re della collina" #: lib/pychess/Variants/knightodds.py:8 msgid "One player starts with one less knight piece" msgstr "Uno dei giocatori inizia con un Cavallo in meno" #: lib/pychess/Variants/knightodds.py:9 msgid "Knight odds" msgstr "Svantaggio di Cavallo" #: lib/pychess/Variants/losers.py:8 msgid "FICS losers: http://www.freechess.org/Help/HelpFiles/losers_chess.html" msgstr "FICS losers: http://www.freechess.org/Help/HelpFiles/losers_chess.html" #: lib/pychess/Variants/normal.py:4 msgid "" "Classic chess rules\n" "http://en.wikipedia.org/wiki/Chess" msgstr "" #: lib/pychess/Variants/normal.py:6 lib/pychess/widgets/newGameDialog.py:157 msgid "Normal" msgstr "Normale" #: lib/pychess/Variants/pawnodds.py:8 msgid "One player starts with one less pawn piece" msgstr "Uno dei giocatori inizia con un Pedone in meno" #: lib/pychess/Variants/pawnodds.py:9 msgid "Pawn odds" msgstr "Svantaggio di Pedone" #: lib/pychess/Variants/pawnspassed.py:11 msgid "" "FICS wild/8a: http://www.freechess.org/Help/HelpFiles/wild.html\n" "White pawns start on 5th rank and black pawns on the 4th rank" msgstr "FICS wild/8a: http://www.freechess.org/Help/HelpFiles/wild.html\nI pedoni bianchi cominciano alla quinta riga e i pedoni neri alla quarta" #: lib/pychess/Variants/pawnspassed.py:13 msgid "Pawns Passed" msgstr "Pedone passato" #: lib/pychess/Variants/pawnspushed.py:10 msgid "" "FICS wild/8: http://www.freechess.org/Help/HelpFiles/wild.html\n" "Pawns start on 4th and 5th ranks rather than 2nd and 7th" msgstr "FICS wild/8: http://www.freechess.org/Help/HelpFiles/wild.html\nI pedoni cominciano alla quarta e quinta riga invece che la seconda e settima" #: lib/pychess/Variants/pawnspushed.py:12 msgid "Pawns Pushed" msgstr "Spinta di pedone" #: lib/pychess/Variants/queenodds.py:8 msgid "One player starts with one less queen piece" msgstr "Uno dei giocatori inizia con lal Regina in meno" #: lib/pychess/Variants/queenodds.py:9 msgid "Queen odds" msgstr "Svantaggio di Regina" #: lib/pychess/Variants/randomchess.py:11 msgid "" "FICS wild/3: http://www.freechess.org/Help/HelpFiles/wild.html\n" "* Randomly chosen pieces (two queens or three rooks possible)\n" "* Exactly one king of each color\n" "* Pieces placed randomly behind the pawns\n" "* No castling\n" "* Black's arrangement mirrors white's" msgstr "FICS wild/3: http://www.freechess.org/Help/HelpFiles/wild.html\n* Pezzi scelti casualmente (due regine o tre alfieri possibili)\n* Esattamente un re di ogni colore\n* Pezzi piazzati casualmente dietro i pedoni\n* No arrocchi\n* L'arrangiamento dei neri è lo stesso dei bianchi" #: lib/pychess/Variants/randomchess.py:17 #: lib/pychess/widgets/TaskerManager.py:155 msgid "Random" msgstr "Casuale" #: lib/pychess/Variants/rookodds.py:8 msgid "One player starts with one less rook piece" msgstr "Uno dei giocatori inizia con una Torre in meno" #: lib/pychess/Variants/rookodds.py:9 msgid "Rook odds" msgstr "Svantaggio di Torre" #: lib/pychess/Variants/shuffle.py:11 msgid "" "xboard nocastle: http://home.hccnet.nl/h.g.muller/engine-intf.html#8\n" "FICS wild/2: http://www.freechess.org/Help/HelpFiles/wild.html\n" "* Random arrangement of the pieces behind the pawns\n" "* No castling\n" "* Black's arrangement mirrors white's" msgstr "" #: lib/pychess/Variants/suicide.py:11 msgid "" "FICS suicide: http://www.freechess.org/Help/HelpFiles/suicide_chess.html" msgstr "FICS suicide: http://www.freechess.org/Help/HelpFiles/suicide_chess.html" #: lib/pychess/Variants/theban.py:10 msgid "" "Variant developed by Kai Laskos: " "http://talkchess.com/forum/viewtopic.php?t=40990" msgstr "" #: lib/pychess/Variants/theban.py:11 msgid "Theban" msgstr "Theban" #: lib/pychess/Variants/threecheck.py:10 msgid "Win by giving check 3 times" msgstr "" #: lib/pychess/Variants/threecheck.py:11 msgid "Three-check" msgstr "" #: lib/pychess/Variants/upsidedown.py:10 msgid "" "FICS wild/5: http://www.freechess.org/Help/HelpFiles/wild.html\n" "http://en.wikipedia.org/wiki/Chess_variant#Chess_with_different_starting_positions\n" "Pawns start on their 7th rank rather than their 2nd rank!" msgstr "" #: lib/pychess/Variants/upsidedown.py:13 msgid "Upside Down" msgstr "Capovolta" #: lib/pychess/Variants/wildcastle.py:10 msgid "" "xboard wildcastle http://home.hccnet.nl/h.g.muller/engine-intf.html#8\n" "FICS wild/0: http://www.freechess.org/Help/HelpFiles/wild.html\n" "* White has the typical set-up at the start.\n" "* Black's pieces are the same, except that the King and Queen are reversed,\n" "* so they are not on the same files as White's King and Queen.\n" "* Castling is done similarly to normal chess:\n" "* o-o-o indicates long castling and o-o short castling." msgstr "" #: lib/pychess/Variants/wildcastle.py:17 msgid "Wildcastle" msgstr "Wildcastle" #: lib/pychess/Variants/wildcastleshuffle.py:11 msgid "" "xboard wildcastle http://home.hccnet.nl/h.g.muller/engine-intf.html#8\n" "FICS wild/1: http://www.freechess.org/Help/HelpFiles/wild.html\n" "* In this variant both sides have the same set of pieces as in normal chess.\n" "* The white king starts on d1 or e1 and the black king starts on d8 or e8,\n" "* and the rooks are in their usual positions.\n" "* Bishops are always on opposite colors.\n" "* Subject to these constraints the position of the pieces on their first ranks is random.\n" "* Castling is done similarly to normal chess:\n" "* o-o-o indicates long castling and o-o short castling." msgstr "" #: lib/pychess/Variants/wildcastleshuffle.py:20 msgid "Wildcastle shuffle" msgstr "" #: lib/pychess/widgets/analyzegameDialog.py:85 msgid "Game analyzing in progress..." msgstr "" #: lib/pychess/widgets/analyzegameDialog.py:86 msgid "Do you want to abort it?" msgstr "" #: lib/pychess/widgets/analyzegameDialog.py:95 #: lib/pychess/widgets/gamewidget.py:202 lib/pychess/widgets/gamewidget.py:320 msgid "Abort" msgstr "Annulla" #: lib/pychess/widgets/ChatView.py:125 msgid "Observers" msgstr "" #: lib/pychess/widgets/ChatWindow.py:222 msgid "You have opened no conversations yet" msgstr "Non hai ancora aperto nessuna discussione" #: lib/pychess/widgets/ChatWindow.py:254 msgid "Only registered users may talk to this channel" msgstr "Solo gli utenti registrati possono discutere su questo canale" #: lib/pychess/widgets/ChatWindow.py:312 msgid "No conversation's selected" msgstr "Nessuna discussione selezionata" #: lib/pychess/widgets/ChatWindow.py:350 msgid "Loading player data" msgstr "Caricamento dati del giocatore" #: lib/pychess/widgets/ChatWindow.py:400 msgid "Receiving list of players" msgstr "Ricezione della lista dei Giocatori" #: lib/pychess/widgets/ChatWindow.py:518 msgid "Friends" msgstr "Amici" #: lib/pychess/widgets/ChatWindow.py:529 msgid "Admin" msgstr "" #: lib/pychess/widgets/ChatWindow.py:540 msgid "More channels" msgstr "Altri canali" #: lib/pychess/widgets/ChatWindow.py:548 msgid "More players" msgstr "Altri giocatori" #: lib/pychess/widgets/ChatWindow.py:558 msgid "Computers" msgstr "" #: lib/pychess/widgets/ChatWindow.py:568 msgid "BlindFold" msgstr "" #: lib/pychess/widgets/ChatWindow.py:578 msgid "Guests" msgstr "" #: lib/pychess/widgets/ChatWindow.py:805 msgid "Conversations" msgstr "Discussioni" #: lib/pychess/widgets/ChatWindow.py:807 msgid "Conversation info" msgstr "Informazioni sulla discussione" #: lib/pychess/widgets/enginesDialog.py:152 msgid "Select engine" msgstr "Seleziona motore" #: lib/pychess/widgets/enginesDialog.py:156 msgid "Executable files" msgstr "" #: lib/pychess/widgets/enginesDialog.py:176 #: lib/pychess/widgets/enginesDialog.py:210 #: lib/pychess/widgets/enginesDialog.py:235 #, python-format msgid "Unable to add %s" msgstr "" #: lib/pychess/widgets/enginesDialog.py:177 msgid "wine not installed" msgstr "" #: lib/pychess/widgets/enginesDialog.py:211 #: lib/pychess/widgets/enginesDialog.py:236 msgid "There is something wrong with this executable" msgstr "" #: lib/pychess/widgets/enginesDialog.py:266 msgid "Select working directory" msgstr "" #: lib/pychess/widgets/gamenanny.py:115 #, python-format msgid " invalid engine move: %s" msgstr "" #: lib/pychess/widgets/gamenanny.py:134 msgid "Offer Rematch" msgstr "Offri di rigiocare" #: lib/pychess/widgets/gamenanny.py:136 lib/pychess/widgets/gamenanny.py:147 #, python-format msgid "Observe %s" msgstr "" #: lib/pychess/widgets/gamenanny.py:168 msgid "Play Rematch" msgstr "Rigioca la partita" #: lib/pychess/widgets/gamenanny.py:171 msgid "Undo one move" msgstr "Annulla una mossa" #: lib/pychess/widgets/gamenanny.py:173 msgid "Undo two moves" msgstr "Annulla due mosse" #: lib/pychess/widgets/gamenanny.py:203 msgid "The game is paused" msgstr "La partita è in pausa" #: lib/pychess/widgets/gamenanny.py:221 lib/pychess/widgets/gamenanny.py:222 msgid "Loaded game" msgstr "Partita caricata" #: lib/pychess/widgets/gamenanny.py:228 msgid "Saved game" msgstr "Partita salvata" #: lib/pychess/widgets/gamenanny.py:232 msgid "Analyzer started" msgstr "Analizzatore in funzione" #: lib/pychess/widgets/gamenanny.py:281 msgid "You sent an abort offer" msgstr "Hai mandato un'offerta per terminare" #: lib/pychess/widgets/gamenanny.py:283 msgid "You sent an adjournment offer" msgstr "Hai mandato una richiesta di aggiornamento" #: lib/pychess/widgets/gamenanny.py:285 msgid "You sent a draw offer" msgstr "Hai inviato una richiesta di patta" #: lib/pychess/widgets/gamenanny.py:287 msgid "You sent a pause offer" msgstr "Hai mandato una offerta di Pausa" #: lib/pychess/widgets/gamenanny.py:289 msgid "You sent a resume offer" msgstr "Hai inviato una richiesta di riprendere" #: lib/pychess/widgets/gamenanny.py:291 msgid "You sent an undo offer" msgstr "Hai mandati una richiesta di annullamento" #: lib/pychess/widgets/gamenanny.py:293 msgid "You asked your opponent to move" msgstr "Hai chiesto al tuo avversario di muovere" #: lib/pychess/widgets/gamenanny.py:305 #, python-format msgid "Engine, %s, has died" msgstr "Il motore %s ha terminato l'esecuzione" #: lib/pychess/widgets/gamenanny.py:306 msgid "" "PyChess has lost connection to the engine, probably because it has died.\n" "\n" "You can try to start a new game with the engine, or try to play against another one." msgstr "PyChess ha perso la connessione con il motore, probabilmente perché questo ha cessato di funzionare.\nPuoi provare a iniziare una nuova partita con lo stesso motore, o giocare contro un altro." #: lib/pychess/widgets/gamewidget.py:204 msgid "" "This game can be automatically aborted without rating loss because there has" " not yet been two moves made" msgstr "Questa partita può essere interrotto automaticamente senza perdita di punteggio perchè non sono ancora state eseguite due mosse" #: lib/pychess/widgets/gamewidget.py:206 msgid "Offer Abort" msgstr "Offri di annullare" #: lib/pychess/widgets/gamewidget.py:208 msgid "" "Your opponent must agree to abort the game because there has been two or " "more moves made" msgstr "Il tuo avversario deve concordare nell'annullamento della partita perchè sono state eseguite due o più mosse" #: lib/pychess/widgets/gamewidget.py:226 msgid "This game can not be adjourned because one or both players are guests" msgstr "La partita non può essere aggioranta perchè uno o entrambi i giocatori sono ospiti" #: lib/pychess/widgets/gamewidget.py:243 msgid "Claim Draw" msgstr "Chiedi la patta" #: lib/pychess/widgets/gamewidget.py:325 msgid "Pause" msgstr "Pausa" #: lib/pychess/widgets/gamewidget.py:326 msgid "Resume" msgstr "Riprendi" #: lib/pychess/widgets/gamewidget.py:328 msgid "Offer Pause" msgstr "Offri Pausa" #: lib/pychess/widgets/gamewidget.py:329 msgid "Offer Resume" msgstr "Offri Ripresa" #: lib/pychess/widgets/gamewidget.py:333 msgid "Undo" msgstr "Torna indietro" #: lib/pychess/widgets/gamewidget.py:335 msgid "Offer Undo" msgstr "Offri torna indietro" #: lib/pychess/widgets/gamewidget.py:550 msgid " has lagged for 30 seconds" msgstr "" #: lib/pychess/widgets/gamewidget.py:566 msgid " is lagging heavily but hasn't disconnected" msgstr "" #: lib/pychess/widgets/gamewidget.py:567 msgid "Continue to wait for opponent, or try to adjourn the game?" msgstr "" #: lib/pychess/widgets/gamewidget.py:575 msgid "Wait" msgstr "Aspetta" #: lib/pychess/widgets/gamewidget.py:576 msgid "Adjourn" msgstr "Aggiorna" #: lib/pychess/widgets/gamewidget.py:648 msgid "Jump to initial position" msgstr "Visualizza la posizione iniziale" #: lib/pychess/widgets/gamewidget.py:653 msgid "Step back one move" msgstr "Visualizza la mossa precedente" #: lib/pychess/widgets/gamewidget.py:658 msgid "Go back to the main line" msgstr "" #: lib/pychess/widgets/gamewidget.py:664 msgid "Step forward one move" msgstr "Visualizza la mossa successiva" #: lib/pychess/widgets/gamewidget.py:669 msgid "Jump to latest position" msgstr "Visualizza l'ultima posizione" #: lib/pychess/widgets/gamewidget.py:903 msgid "PyChess was unable to load your panel settings" msgstr "PyChess non riesce a caricare il tuo pannello delle impostazioni" #: lib/pychess/widgets/gamewidget.py:904 msgid "" "Your panel settings have been reset. If this problem repeats, you should " "report it to the developers" msgstr "Il tuo pannello delle impostazioni è stato resettato. Se il problema si dovesse ripetere, segnalalo agli sviluppatori" #: lib/pychess/widgets/ionest.py:67 lib/pychess/widgets/newGameDialog.py:389 #: lib/pychess/widgets/TaskerManager.py:210 msgid "You" msgstr "Tu" #: lib/pychess/widgets/ionest.py:70 lib/pychess/widgets/newGameDialog.py:390 #: lib/pychess/widgets/preferencesDialog.py:61 #: lib/pychess/widgets/TaskerManager.py:213 msgid "Guest" msgstr "Ospite" #: lib/pychess/widgets/ionest.py:93 msgid "Error loading game" msgstr "" #: lib/pychess/widgets/ionest.py:127 lib/pychess/widgets/newGameDialog.py:480 msgid "Open Game" msgstr "Apri partita" #: lib/pychess/widgets/ionest.py:137 msgid "All Files" msgstr "Tutti i File" #: lib/pychess/widgets/ionest.py:140 msgid "Detect type automatically" msgstr "Rileva automaticamente il tipo" #: lib/pychess/widgets/ionest.py:146 msgid "All Chess Files" msgstr "Tutti i file scacchistici" #: lib/pychess/widgets/ionest.py:228 msgid "Save Game" msgstr "Salva la partita" #: lib/pychess/widgets/ionest.py:228 msgid "Export position" msgstr "Esporta posizioni" #: lib/pychess/widgets/ionest.py:232 lib/pychess/widgets/ionest.py:360 msgid "vs." msgstr "contro" #: lib/pychess/widgets/ionest.py:249 #, python-format msgid "Unknown file type '%s'" msgstr "Tipo di file sconosciuto '%s'" #: lib/pychess/widgets/ionest.py:250 #, python-format msgid "" "Was unable to save '%(uri)s' as PyChess doesn't know the format " "'%(ending)s'." msgstr "Impossibile salvare '%(uri)s', PyChess non conosce il formato '%(ending)s'." #: lib/pychess/widgets/ionest.py:266 #, python-format msgid "Unable to save file '%s'" msgstr "Impossibile salvare il file '%s'" #: lib/pychess/widgets/ionest.py:268 msgid "" "You don't have the necessary rights to save the file.\n" "Please ensure that you have given the right path and try again." msgstr "Non hai i diritti necessari per salvare il file. Per favore assicurati di aver dato il giusto percorso e prova di nuovo." #: lib/pychess/widgets/ionest.py:276 msgid "_Replace" msgstr "_Sostituisci" #: lib/pychess/widgets/ionest.py:280 msgid "File exists" msgstr "File esistente" #: lib/pychess/widgets/ionest.py:282 #, python-format msgid "" "A file named '%s' already exists. Would you like to replace " "it?" msgstr "Un file chiamato '%s' gia' esiste. Vuoi sostituirlo?" #: lib/pychess/widgets/ionest.py:283 #, python-format msgid "" "The file already exists in '%s'. If you replace it, its content will be " "overwritten." msgstr "Il file gia' esiste in '%s'. Se lo sostituisci, il suo contenuto verrà sovrascritto." #: lib/pychess/widgets/ionest.py:299 msgid "Could not save the file" msgstr "Impossibile salvare il file" #: lib/pychess/widgets/ionest.py:300 msgid "PyChess was not able to save the game" msgstr "PyChess non è stato in grado di salvare la partita" #: lib/pychess/widgets/ionest.py:301 #, python-format msgid "The error was: %s" msgstr "L'errore è stato: %s" #: lib/pychess/widgets/ionest.py:325 #, python-format msgid "There is %d game with unsaved moves." msgid_plural "There are %d games with unsaved moves." msgstr[0] "C'è %d partita con mosse non salvate." msgstr[1] "Ci sono %d partite con mosse non salvate." #: lib/pychess/widgets/ionest.py:328 msgid "Save moves before closing?" msgstr "Salvo le mosse prima della chiusura?" #: lib/pychess/widgets/ionest.py:339 msgid "Unable to save to configured file. Save the games before closing?" msgstr "" #: lib/pychess/widgets/ionest.py:366 #, python-format msgid "_Save %d document" msgid_plural "_Save %d documents" msgstr[0] "_Salvo %d documento" msgstr[1] "_Salvo %d documenti" #: lib/pychess/widgets/ionest.py:412 msgid "Save the current game before you close it?" msgstr "" #: lib/pychess/widgets/ionest.py:420 msgid "" "Unable to save to configured file. Save the current game before you close " "it?" msgstr "" #: lib/pychess/widgets/ionest.py:434 msgid "" "It is not possible later to continue the game,\n" "if you don't save it." msgstr "Non sarà possibile continuare la partita, se non la salvi ora." #: lib/pychess/widgets/LogDialog.py:26 msgid "PyChess Information Window" msgstr "PyChess Finestra informazioni" #: lib/pychess/widgets/LogDialog.py:184 lib/pychess/widgets/LogDialog.py:188 msgid "of" msgstr "di" #: lib/pychess/widgets/newGameDialog.py:84 #: lib/pychess/widgets/newGameDialog.py:85 msgid "Human Being" msgstr "Essere Umano" #: lib/pychess/widgets/newGameDialog.py:155 msgid "Rapid" msgstr "Rapido" #: lib/pychess/widgets/newGameDialog.py:224 msgid "Minutes:" msgstr "Minuti:" #: lib/pychess/widgets/newGameDialog.py:228 msgid "Gain:" msgstr "Incremento:" #: lib/pychess/widgets/newGameDialog.py:241 #, python-format msgid "%(name)s %(minutes)d min + %(gain)d sec/move" msgstr "%(name)s %(minutes)d min + %(gain)d sec/mossa" #: lib/pychess/widgets/newGameDialog.py:244 #, python-format msgid "%(name)s %(minutes)d min %(gain)d sec/move" msgstr "%(name)s %(minutes)d min %(gain)d sec/mossa" #: lib/pychess/widgets/newGameDialog.py:247 #, python-format msgid "%(name)s %(minutes)d min" msgstr "%(name)s %(minutes)d min" #: lib/pychess/widgets/newGameDialog.py:265 msgid "Odds" msgstr "Svantaggio" #: lib/pychess/widgets/newGameDialog.py:269 msgid "Asian variants" msgstr "" #: lib/pychess/widgets/newGameDialog.py:301 msgid " chess" msgstr " scacchi" #: lib/pychess/widgets/newGameDialog.py:682 msgid "Type or paste PGN game or FEN positions here" msgstr "" #: lib/pychess/widgets/newGameDialog.py:725 msgid "Enter Game" msgstr "Entra nella partita" #: lib/pychess/widgets/preferencesDialog.py:123 msgid "Select book file" msgstr "" #: lib/pychess/widgets/preferencesDialog.py:128 msgid "Opening books" msgstr "" #: lib/pychess/widgets/preferencesDialog.py:156 msgid "Select Gaviota TB path" msgstr "" #: lib/pychess/widgets/preferencesDialog.py:331 msgid "Open Sound File" msgstr "Apri file sonoro" #: lib/pychess/widgets/preferencesDialog.py:341 msgid "Sound files" msgstr "File sonori" #: lib/pychess/widgets/preferencesDialog.py:485 msgid "Undescribed panel" msgstr "Pannello senza descrizione" #: lib/pychess/widgets/preferencesDialog.py:678 msgid "Select auto save path" msgstr "" #: lib/pychess/widgets/tipOfTheDay.py:51 msgid "" "You can start a new game by Game > New Game, in New Game " "window do you can choose Players, Time Control and Chess " "Variants." msgstr "Puoi iniziare una nuova partita Partita > Nuova partita, nella finestra puoi scegliere Giocatori, \r\nDurata partita e Varianti scacchistiche." #: lib/pychess/widgets/tipOfTheDay.py:52 msgid "" "You can choose from 20 different difficulties to play against the computer." msgstr "" #: lib/pychess/widgets/tipOfTheDay.py:53 msgid "" "Chess Variants are like the pieces of the last line will be placed on the " "board." msgstr "Le varianti scacchistiche indicano come sono disposti i pezzi sull'ultima linea della scacchiera." #: lib/pychess/widgets/tipOfTheDay.py:54 msgid "" "To save a game Game > Save Game As, give the filename and " "choose where you want to be saved. At the bottom choose extension type of " "the file, and Save." msgstr "Per salvare una partita Parita > Salva partita come, indica un nome e scgli la posizione dove vuoi che venga effettuato il salvataggio. In basso scagli l'estensione del tipo di salvataggio, e Salva." #: lib/pychess/widgets/tipOfTheDay.py:55 msgid "" "Do you know that you can call flag when the clock is with you, " "Actions > Call Flag." msgstr "Lo sapevi che puoi verificare la \"Bandierina\" durante la tua sessione di tempo, Azioni > Verifica Bandierina." #: lib/pychess/widgets/tipOfTheDay.py:56 msgid "Pressing Ctrl+Z to offer opponent the possible rollback moves." msgstr "Premendo Ctrl+Z puoi offrire all'avversario la possibilità di annullare le ultime mosse." #: lib/pychess/widgets/tipOfTheDay.py:57 msgid "" "To play on Fullscreen mode, just type F11. Coming back, F11 " "again." msgstr "Per giocare a Schermo intero, basta premere F11. Ancora F11 per ripristinare la visualizzazione in finestra." #: lib/pychess/widgets/tipOfTheDay.py:58 msgid "Hint mode analyzing your game, enable this type Ctrl+H." msgstr "Modalità suggerimento permette di analizzare la tua partita, puoi abilitarlo con: Ctrl+H." #: lib/pychess/widgets/tipOfTheDay.py:59 msgid "" "Spy mode analyzing the oponnent game, enable this type Ctrl+Y." msgstr "Modalità spia permette di analizzare la partita del tuo avversario, puoi abilitarlo con: Ctrl+Y." #: lib/pychess/widgets/tipOfTheDay.py:60 msgid "" "You can play chess listening to the sounds of the game, for that, " "Settings > Preferences > Sound tab, enable Use " "sounds in PyChess and choose your preferred sounds." msgstr "E' possibile abilitare gli effetti sonori durante il gioco, per farlo, Impostazioni > Preferenze > Tab - Suoni, seleziona Usa suoni in PyChess e scegli gli effetti sonori che preferisci." #: lib/pychess/widgets/tipOfTheDay.py:61 msgid "" "Do you know that you can help translate Pychess in your language, " "Help > Translate Pychess." msgstr "Lo sapevi che puoi aiutareci nella traduzione di PyChess nella tua lingua, Aiuto > Traduci PyChess." #: lib/pychess/widgets/tipOfTheDay.py:62 msgid "" "Do you know that it is possible to finish a chess game in just 2 turns?" msgstr "Lo sapevi che è possibile finire una partita a scacchi in appena 2 turni?" #: lib/pychess/widgets/tipOfTheDay.py:63 msgid "" "Do you know that the number of possible chess games exceeds the number of " "atoms in the Universe?" msgstr "Lo sapevi che il numero di partite diverse giocabili è maggiore del numero di atomi dell'intero universo?" #: lib/pychess/ic/managers/ChatManager.py:184 msgid "Shout" msgstr "Chiudi" #: lib/pychess/ic/managers/ChatManager.py:185 msgid "Chess Shout" msgstr "Chiudi scacchi" #: lib/pychess/ic/managers/ChatManager.py:195 #, python-format msgid "Unofficial channel %d" msgstr "Canale non ufficiale %d" #: lib/pychess/Utils/lutils/LBoard.py:152 #, python-format msgid "" "FEN needs 6 data fields. \n" "\n" "%s" msgstr "" #: lib/pychess/Utils/lutils/LBoard.py:154 #, python-format msgid "" "FEN needs at least 2 data fields in fenstr. \n" "\n" "%s" msgstr "" #: lib/pychess/Utils/lutils/LBoard.py:175 #, python-format msgid "" "Needs 7 slashes in piece placement field. \n" "\n" "%s" msgstr "" #: lib/pychess/Utils/lutils/LBoard.py:178 #, python-format msgid "" "Active color field must be one of w or b. \n" "\n" "%s" msgstr "" #: lib/pychess/Utils/lutils/LBoard.py:189 #, python-format msgid "" "Castling availability field is not legal. \n" "\n" "%s" msgstr "" #: lib/pychess/Utils/lutils/LBoard.py:192 #, python-format msgid "" "En passant cord is not legal. \n" "\n" "%s" msgstr "" #: lib/pychess/Utils/lutils/lmove.py:260 msgid "invalid promoted piece" msgstr "" #: lib/pychess/Utils/lutils/lmove.py:272 msgid "the move needs a piece and a cord" msgstr "la stringa che indica la mossa deve contenere il pezzo e le coordinate" #: lib/pychess/Utils/lutils/lmove.py:306 lib/pychess/Utils/lutils/lmove.py:556 msgid "promotion move without promoted piece is incorrect" msgstr "Impossibile eseguire questa mossa senza effettuare una prozione" #: lib/pychess/Utils/lutils/lmove.py:312 #, python-format msgid "the captured cord (%s) is incorrect" msgstr "la riga catturata (%s) non è corretta" #: lib/pychess/Utils/lutils/lmove.py:323 #, python-format msgid "the end cord (%s) is incorrect" msgstr "" #: lib/pychess/Utils/lutils/strateval.py:24 sidepanel/commentPanel.py:191 #: sidepanel/commentPanel.py:208 msgid "and" msgstr "e" #: lib/pychess/Utils/lutils/strateval.py:43 msgid "draws" msgstr "patta" #: lib/pychess/Utils/lutils/strateval.py:45 msgid "mates" msgstr "dà matto" #: lib/pychess/Utils/lutils/strateval.py:49 msgid "puts opponent in check" msgstr "mette l'avversario sotto scacco" #: lib/pychess/Utils/lutils/strateval.py:73 msgid "improves king safety" msgstr "incrementa la sicurezza del Re" #: lib/pychess/Utils/lutils/strateval.py:75 msgid "slightly improves king safety" msgstr "incrementa leggermente la sicurezza del Re" #: lib/pychess/Utils/lutils/strateval.py:108 msgid "moves a rook to an open file" msgstr "mette la Torre su una colonna aperta" #: lib/pychess/Utils/lutils/strateval.py:109 msgid "moves an rook to a half-open file" msgstr "mette la Torre su una colonna semi-aperta" #: lib/pychess/Utils/lutils/strateval.py:119 #: lib/pychess/Utils/lutils/strateval.py:121 #: lib/pychess/Utils/lutils/strateval.py:124 #: lib/pychess/Utils/lutils/strateval.py:126 #, python-format msgid "moves bishop into fianchetto: %s" msgstr "muove l'alfiere in fianchetto: %s" #: lib/pychess/Utils/lutils/strateval.py:132 #, python-format msgid "promotes a Pawn to a %s" msgstr "promuove un pedone a %s" #: lib/pychess/Utils/lutils/strateval.py:135 msgid "castles" msgstr "arrocca" #: lib/pychess/Utils/lutils/strateval.py:158 msgid "takes back material" msgstr "si riprende il materiale" #: lib/pychess/Utils/lutils/strateval.py:162 #: lib/pychess/Utils/lutils/strateval.py:170 msgid "sacrifies material" msgstr "sacrifica materiale" #: lib/pychess/Utils/lutils/strateval.py:164 msgid "exchanges material" msgstr "scambia materiale" #: lib/pychess/Utils/lutils/strateval.py:166 msgid "captures material" msgstr "cattura materiale" #: lib/pychess/Utils/lutils/strateval.py:291 #, python-format msgid "rescues a %s" msgstr "salvataggio di %s" #: lib/pychess/Utils/lutils/strateval.py:294 #, python-format msgid "threatens to win material by %s" msgstr "minaccia di cattura materiale da parte di %s" #: lib/pychess/Utils/lutils/strateval.py:296 #, python-format msgid "increases the pressure on %s" msgstr "aumenta la pressione su %s" #: lib/pychess/Utils/lutils/strateval.py:298 #, python-format msgid "defends %s" msgstr "difende %s" #: lib/pychess/Utils/lutils/strateval.py:336 #, python-format msgid "pins an enemy %(oppiece)s on the %(piece)s at %(cord)s" msgstr "attacco del %(oppiece)s nemico sul %(piece)s su %(cord)s" #: lib/pychess/Utils/lutils/strateval.py:369 #, python-format msgid "White has a new piece in outpost: %s" msgstr "Il Bianco ha un nuovo avamposto: %s" #: lib/pychess/Utils/lutils/strateval.py:377 #, python-format msgid "Black has a new piece in outpost: %s" msgstr "Il Nero ha un nuovo avamposto: %s" #: lib/pychess/Utils/lutils/strateval.py:416 #, python-format msgid "%(color)s has a new passed pawn on %(cord)s" msgstr "%(color)s ha un nuovo pedone passato in %(cord)s" #: lib/pychess/Utils/lutils/strateval.py:470 msgid "half-open" msgstr "semiaperto" #: lib/pychess/Utils/lutils/strateval.py:472 #, python-format msgid "in the %(x)s%(y)s file" msgstr "nel file %(x)s%(y)s" #: lib/pychess/Utils/lutils/strateval.py:474 #, python-format msgid "in the %(x)s%(y)s files" msgstr "nei file %(x)s%(y)s" #: lib/pychess/Utils/lutils/strateval.py:477 #, python-format msgid "%(color)s got a double pawn %(place)s" msgstr "%(color)s ha un pedone doppiato in %(place)s" #: lib/pychess/Utils/lutils/strateval.py:478 #, python-format msgid "%(color)s got new double pawns %(place)s" msgstr "%(color)s ha un nuovo pedone doppiato in %(place)s" #: lib/pychess/Utils/lutils/strateval.py:485 #, python-format msgid "%(color)s got an isolated pawn in the %(x)s file" msgid_plural "%(color)s got isolated pawns in the %(x)s files" msgstr[0] "%(color)s ha un pedone isolato in %(x)s fila" msgstr[1] "%(color)s ha pedoni isolati in %(x)s fila" #: lib/pychess/Utils/lutils/strateval.py:492 #, python-format msgid "%s moves pawns into stonewall formation" msgstr "Il %s mette i pedoni in una formazione stonewall" #: lib/pychess/Utils/lutils/strateval.py:507 #: lib/pychess/Utils/lutils/strateval.py:514 #, python-format msgid "%s can no longer castle" msgstr "%s non è possibile arroccare" #: lib/pychess/Utils/lutils/strateval.py:508 #: lib/pychess/Utils/lutils/strateval.py:515 #, python-format msgid "%s can no longer castle in queenside" msgstr "%s non è possibile arroccare sul lato di donna" #: lib/pychess/Utils/lutils/strateval.py:510 #: lib/pychess/Utils/lutils/strateval.py:517 #, python-format msgid "%s can no longer castle in kingside" msgstr "%s non è possibile arroccare sul lato di re" #: lib/pychess/Utils/lutils/strateval.py:551 #, python-format msgid "%(opcolor)s has a new trapped bishop on %(cord)s" msgstr "%(opcolor)s ha un alfiere in trappola on %(cord)s" #: lib/pychess/Utils/lutils/strateval.py:573 #, python-format msgid "develops a pawn: %s" msgstr "sviluppo di pedone: %s" #: lib/pychess/Utils/lutils/strateval.py:574 #, python-format msgid "brings a pawn closer to the backrow: %s" msgstr "porta un pedone più vicino all'ultima traversa: %s" #: lib/pychess/Utils/lutils/strateval.py:591 #, python-format msgid "brings a %(piece)s closer to enemy king: %(cord)s" msgstr "porta il %(piece)s più vicino al re avversario: %(cord)s" #: lib/pychess/Utils/lutils/strateval.py:594 #, python-format msgid "develops a %(piece)s: %(cord)s" msgstr "sviluppo di %(piece)s: %(cord)s" #: lib/pychess/Utils/lutils/strateval.py:612 #, python-format msgid "places a %(piece)s more active: %(cord)s" msgstr "metti il %(piece)s in posizione migliore: %(cord)s" #: lib/pychess/Utils/lutils/strateval.py:638 msgid "White should do pawn storm in right" msgstr "Il Bianco dovrebbe iniziare un attacco di pedoni sulla destra" #: lib/pychess/Utils/lutils/strateval.py:640 msgid "Black should do pawn storm in left" msgstr "Il Nero dovrebbe iniziare un attacco di pedoni sulla sinistra" #: lib/pychess/Utils/lutils/strateval.py:643 msgid "White should do pawn storm in left" msgstr "Il Bianco dovrebbe iniziare un attacco di pedoni sulla sinistra" #: lib/pychess/Utils/lutils/strateval.py:645 msgid "Black should do pawn storm in right" msgstr "Il Nero dovrebbe iniziare un attacco di pedoni sulla destra" #: lib/pychess/Utils/lutils/strateval.py:671 msgid "Black has a rather cramped position" msgstr "Il Nero ha una posizione piuttosto ristretta" #: lib/pychess/Utils/lutils/strateval.py:673 msgid "Black has a slightly cramped position" msgstr "Il Nero ha una posizione leggermente ristretta" #: lib/pychess/Utils/lutils/strateval.py:675 msgid "White has a rather cramped position" msgstr "Il Bianco ha una posizione piuttosto ristretta" #: lib/pychess/Utils/lutils/strateval.py:677 msgid "White has a slightly cramped position" msgstr "Il Bianco ha una posizione leggermente ristretta" #: sidepanel/annotationPanel.py:26 msgid "Annotation" msgstr "Annotazione" #: sidepanel/annotationPanel.py:29 msgid "Annotated game" msgstr "Partita annotata" #: sidepanel/annotationPanel.py:236 msgid "Copy PGN" msgstr "" #: sidepanel/annotationPanel.py:249 msgid "Add start comment" msgstr "Aggiungi un commento iniziale" #: sidepanel/annotationPanel.py:254 msgid "Add comment" msgstr "Aggiungi un commento" #: sidepanel/annotationPanel.py:258 sidepanel/annotationPanel.py:316 msgid "Edit comment" msgstr "Modifica Commento" #: sidepanel/annotationPanel.py:269 msgid "Forced move" msgstr "Mossa forzata" #: sidepanel/annotationPanel.py:274 msgid "Add move symbol" msgstr "Aggiungi il simbolo alla mossa" #: sidepanel/annotationPanel.py:280 msgid "Unclear position" msgstr "Posizione poco chiara" #: sidepanel/annotationPanel.py:289 msgid "Zugzwang" msgstr "" #: sidepanel/annotationPanel.py:290 msgid "Development adv." msgstr "" #: sidepanel/annotationPanel.py:291 msgid "Initiative" msgstr "Iniziativa" #: sidepanel/annotationPanel.py:292 msgid "With attack" msgstr "Con intenzione d'attacco" #: sidepanel/annotationPanel.py:293 msgid "Compensation" msgstr "Compenso" #: sidepanel/annotationPanel.py:294 msgid "Counterplay" msgstr "Controgioco" #: sidepanel/annotationPanel.py:295 msgid "Time pressure" msgstr "Incalzato dal tempo" #: sidepanel/annotationPanel.py:300 msgid "Add evaluation symbol" msgstr "Aggiungi il simbolo di valutazione" #: sidepanel/annotationPanel.py:304 msgid "Remove symbols" msgstr "" #: sidepanel/annotationPanel.py:911 #, python-format msgid "round %s" msgstr "turno %s" #: sidepanel/bookPanel.py:21 msgid "Hints" msgstr "Suggerimenti" #: sidepanel/bookPanel.py:25 msgid "" "The hint panel will provide computer advice during each stage of the game" msgstr "Il pannello dei suggerimenti segnalerà la mossa migliore in ogni fase della partita" #: sidepanel/bookPanel.py:27 msgid "Official PyChess panel." msgstr "Pannello ufficiale PyChess." #: sidepanel/bookPanel.py:87 msgid "Opening Book" msgstr "Libro delle aperture" #: sidepanel/bookPanel.py:88 msgid "" "The opening book will try to inspire you during the opening phase of the " "game by showing you common moves made by chess masters" msgstr "Il dizionario delle aperture potrò consigliarti durante la fase iniziale della partita mostrandoti le più comuni mosse fatte dai grandi maestri." #: sidepanel/bookPanel.py:139 #, python-format msgid "Analysis by %s" msgstr "Analisi al %s" #: sidepanel/bookPanel.py:140 #, python-format msgid "" "%s will try to predict which move is best and which side has the advantage" msgstr "%s proverà a prevedere la mossa migliore e quale giocatore è in vantaggio." #: sidepanel/bookPanel.py:142 #, python-format msgid "Threat analysis by %s" msgstr "Analisi della minaccia al %s" #: sidepanel/bookPanel.py:143 #, python-format msgid "" "%s will identify what threats would exist if it were your opponent's turn to" " move" msgstr "%s identificherà quali potrebbero essere le possibili minacce se se fosse il turno dell'avversario." #: sidepanel/bookPanel.py:159 sidepanel/bookPanel.py:269 msgid "Calculating..." msgstr "Calcolo in corso..." #: sidepanel/bookPanel.py:300 msgid "" "Engine scores are in units of pawns, from White's point of view. Double " "clicking on analysis lines you can insert them into Annotation panel as " "variations." msgstr "" #: sidepanel/bookPanel.py:302 msgid "" "Adding suggestions can help you find ideas, but slows down the computer's " "analysis." msgstr "Aggiungere i suggerimenti può aiutarti a pensare, ma rallenta l'analisi del computer." #: sidepanel/bookPanel.py:311 msgid "Endgame Table" msgstr "Tablebase" #: sidepanel/bookPanel.py:315 msgid "" "The endgame table will show exact analysis when there are few pieces on the " "board." msgstr "La Tablebase mostrerà un'analisi esatta quando ci sono pochi pezzi sulla scacchiera." #: sidepanel/bookPanel.py:364 sidepanel/bookPanel.py:367 #, python-format msgid "Mate in %d" msgstr "Scacco matto in %d" #: sidepanel/bookPanel.py:554 msgid "" "In this position,\n" "there is no legal move." msgstr "In questa posizione, ⏎\nnon è possibile nessuna mossa legale." #: sidepanel/chatPanel.py:21 msgid "" "The chat panel lets you communicate with your opponent during the game, " "assuming he or she is interested" msgstr "Il pannello \"Chat\" ti permette di comunicare con il tuo avversario durante la partita... sempre che sia interessato" #: sidepanel/commentPanel.py:16 msgid "Comments" msgstr "Commenti" #: sidepanel/commentPanel.py:20 msgid "The comments panel will try to analyze and explain the moves played" msgstr "Il pannello dei commenti analizza e cerca di spiegare le mosse effettuate" #: sidepanel/commentPanel.py:121 msgid "Initial position" msgstr "Posizione iniziale" #: sidepanel/commentPanel.py:254 #, python-format msgid "%(color)s moves a %(piece)s to %(cord)s" msgstr "%(color)s muove il %(piece)s in %(cord)s" #: sidepanel/engineOutputPanel.py:15 msgid "Engines" msgstr "Motori" #: sidepanel/engineOutputPanel.py:20 msgid "" "The engine output panel shows the thinking output of chess engines (computer" " players) during a game" msgstr "" #: sidepanel/engineOutputPanel.py:44 msgid "No chess engines (computer players) are participating in this game." msgstr "" #: sidepanel/historyPanel.py:10 msgid "Move History" msgstr "Elenco delle mosse" #: sidepanel/historyPanel.py:13 msgid "" "The moves sheet keeps track of the players' moves and lets you navigate " "through the game history" msgstr "Il foglio delle mosse tiene traccia delle mosse dei giocatori e ti permette di navigare l'evoluzione della partita" #: sidepanel/scorePanel.py:15 msgid "Score" msgstr "Punteggio" #: sidepanel/scorePanel.py:19 msgid "" "The score panel tries to evaluate the positions and shows you a graph of the" " game progress" msgstr "Il pannello del punteggio prova a valutare le posizioni e mostra attraverso un grafico i progressi della partita" pychess-0.12.2/lang/it/LC_MESSAGES/pychess.mo0000644000175000017470000016056512653231273020726 0ustar tamasusers00000000000000 ,: : :: :$: : ; ;+;0;%G;`m;(;+;'#<#K<o<*<,<0<=*=E=\=c=#{=$='== >!!>QC>J>>>???#?C?^?%c????9?'?@'@h@y@@@@@@E@:ARA#nA$A AAAAABL%BrB BBBQB& CC1C7uCUC*D(.DWDmDDDDeDE E"E*E1E BENEdEtESE EE EEmFsF F FFF FFCF&G 5G @G MGZGlG*sG G GGG/GSGQ@HH!HH HI/,IS\IQI JK#J$oJ6J#J!J-K&?K-fK;K KKKK L L$L#>L%bL"L#LL LLLLLMMM #M8-MfM nM xMMMM MM MM MPM INTNZN`NvN-NNN NN NNOO+O =OKORO jO vOOOO OOOOOOGO`6PaPiP cQnQ sQQ Q Q QQ QQ}Q BRMR bR1lRRRRR RR@RD&SFkSHSSwT}oU UUUV -V9V HVTV\V_VeVvVVV VV VVV V VVWW W W&W)W,WA1W>sWXWc X]oX?XB YqPYSYFZ ]Z)kZZ ZZ ZDZ[2[J[L[Q[b[ i[u[}[[ [ [[ [[ [ [ [ \\,\A\H\M\+T\ \\\ \\ \!\\ ] ] ] ']4]6]/;]k] t]]]]] ]]]] ] ^^ #^ /^ =^ J^ U^ b^ n^ {^ ^^^\^,_*?_+j_*____._ %`/`?` N`[`k````` ``` ` ` ```aa ,a9aNafa uaa aaaaa aEa&b .b 8b#Bbfbbbbb fcrctc zc ccccccc ccccddd$d )d3d9d@dTdWd `djd od yddd ddd d d dd"e)e 8eBeYepe e ee e eeeee f ff4f9f?f/Hfxf f fff fffff gggg g'g7gpIgghh"hCi5Wi4i9i3i0jR?jjjjkT|k k=kZlxlllllIl}=mm`m8nRnnnnoZotoooKohoEJpApApq*q/q ?qMq\qPkqq irtrrrrrrrr rr rs s"s *s7s ?s KsYs ps~ssssMssst t t$t#u%7u"]u#uuu uu uuuu vv"vBvw9w?w9x(VxuxCx$9y&^yyz/zFz^zvzz ztzA{|| }l}!~X7~d~~  $ 3 > K U_hnw  %    # 4 ?J ] jt }$ À΀ '- <I!M)o8ҁ1'$Lew  ւ "+ 9Ne}!   .?N_o6(̄2 @ Wdkt#!#'+19@Շ  , 0; MYa,|V203(d$+ˉ-1%Wp,ˊ/0(Y(s(dŋL*w%%(EKGe4R5DVu~hˎ4#N!r#Ǐۏ$'o8ːҐF80LiE^2[/Œe"ғV2m' A N [*iL (9Ma@i ĖЖҖ3ؖZ jg!җ/ $(En3Zj,L?CA8'/3<JC"˛ !,A.n=;ۜ (;A HUWZ n8xǝڝ +@aOȞў58AJS\!qş   *,=BK S+`Jj{jq Xek| Ģˢ ã1ͣ )3;@MDFӤHct %   #9Oe Ĩͨݨ  %( +F5W|lԩAwêS;?lϫ;<Ax?ʬ (??Q Эҭխ $6<CYj ̮% +$ P^y(ϯ ':</A q Ȱ 0C Vb u ƱرX/o./β.-4(Q=z ųֳ-3Og itzߴ >Sk t % յ`A I T+`%϶ ˷ͷӷ 09 M#Y} иָݸ &A$Sx ι&  )E`rƺ!޺2:#Mq v/ ջ  &,Kjsux {Qs5'IѾH7dA9޿U+hU~Lp6T46rVup*>EPJTDrE !/C[zs 0KZl~  *048K@  #.0?-=m 9K(NwNYIXL4x$>)(/" '$?*d).r[Ltn8knv   %8HQ ak0r   % 1<S e q~'  $<C Ub6dCW"7Z9_3* =TZ l v$$ -7$;)`!  #:8R2?6 HR[o*s&F,%RV] dn,Hq|hpP{hj5%VG9L`0'" BXv-9Kzs%lJ]; !W76OmTs$GURaA}Sj,e~JC~Brn[&yk#"U0p>N(fWr ?O{.t#YX]Ft`*\S<Id?{ca },"Reu4\Arb6szg5I>81H N8l1Pd'n*UwR Vu & uI&Zxfc7=q -(^fzx4o)O ^QBT[c34F T-'|]>ng_^LwiCmM3;e+!J)=1pgF:d@82E3Zx!:a @+@=9*;lXE$_E2$VYvK PD.MiQmb//\N2v?Qity~%y|M KL)0+oZkA Dbkw/(C 7`<: SW[}5YHj. o#<qDG6_h Gain: + %d sec chess has arrived has declined your offer for a match has departed is censoring you is present min%(black)s won the game%(color)s got a double pawn %(place)s%(color)s got an isolated pawn in the %(x)s file%(color)s got isolated pawns in the %(x)s files%(color)s got new double pawns %(place)s%(color)s has a new passed pawn on %(cord)s%(color)s moves a %(piece)s to %(cord)s%(minutes)d min + %(gain)d sec/move%(name)s %(minutes)d min%(name)s %(minutes)d min %(gain)d sec/move%(name)s %(minutes)d min + %(gain)d sec/move%(opcolor)s has a new trapped bishop on %(cord)s%(player)s is %(status)s%(player)s plays %(color)s%(white)s won the game%d min%s can no longer castle%s can no longer castle in kingside%s can no longer castle in queenside%s moves pawns into stonewall formation%s returns an error%s was declined by your opponent%s was withdrawn by your opponent%s will identify what threats would exist if it were your opponent's turn to move%s will try to predict which move is best and which side has the advantage'%s' is not a registered name(Blitz)*0 Players Ready0 of 010 min + 6 sec/move, 1400↑, White10 min + 6 sec/move, White12002 min, Fischer Random, 1800↓, Black2 min, Fischer Random, Black5 min5 min, 1200-1800, ManualConnect to the Free Online Chess ServerPromote pawn to what?PyChess was unable to load your panel settingsAnalyzingAnimationBoard ColoursChess VariantDate of gameEnter Game NotationGame dataHint mode analyzing your game, enable this type Ctrl+H.Initial PositionInstalled SidepanelsName of _first human player:Name of s_econd human player:NewsOpen GameOpponent StrengthOptionsPlay Sound When...PlayersSpy mode analyzing the oponnent game, enable this type Ctrl+Y.Time ControlToolsYour Color_Start GameA file named '%s' already exists. Would you like to replace it?Engine, %s, has diedPyChess is discovering your engines. Please wait.PyChess was not able to save the gameThere are %d games with unsaved moves. Save changes before closing?Unable to save file '%s'Unknown file type '%s'Challenge:A player _checks:A player _moves:A player c_aptures:ASEANASEAN: http://www.ncf-phil.org/downloadables/2014/May/Asean_chess/Laws_of_ASEAN_Chess_2011_Nov_26.docAbortAbout ChessAc_tiveAcceptActive seeks: %dAdd commentAdd evaluation symbolAdd move symbolAdd start commentAdding suggestions can help you find ideas, but slows down the computer's analysis.Address ErrorAdjournAdministratorAi-WokAi-Wok: http://www.open-aurec.com/wbforum/viewtopic.php?p=199364&sid=20963a1de2c164050de019e5ed6bf7c4#p199364All Chess FilesAll FilesAll whiteAnalysis by %sAnalyze from current positionAnalyze gameAnalyzer startedAnimate pieces, board rotation and more. Use this on fast machines.Annotated gameAnnotationAny strengthAsk to _MoveAsymmetric RandomAtomicAuto _rotate board to current human playerAuto-logoutAvailableBB EloBecause %(black)s lost connection to the serverBecause %(black)s lost connection to the server and %(white)s requested adjournmentBecause %(black)s ran out of time and %(white)s has insufficient material to mateBecause %(loser)s disconnectedBecause %(loser)s ran out of timeBecause %(loser)s resignedBecause %(loser)s was checkmatedBecause %(mover)s stalematedBecause %(white)s lost connection to the serverBecause %(white)s lost connection to the server and %(black)s requested adjournmentBecause %(white)s ran out of time and %(black)s has insufficient material to mateBecause a player lost connectionBecause a player lost connection and the other player requested adjournmentBecause both players ran out of timeBecause neither player has sufficient material to mateBecause of adjudication by an adminBecause the %(white)s engine diedBecause the connection to the server was lostBecause the game exceed the max lengthBecause the last 50 moves brought nothing newBecause the same position was repeated three times in a rowBecause the server was shut downBeepBishopBlackBlack O-OBlack O-O-OBlack has a new piece in outpost: %sBlack has a rather cramped positionBlack has a slightly cramped positionBlack should do pawn storm in leftBlack should do pawn storm in rightBlack:BlindfoldBlindfold AccountBlitzBlitz:Blitz: 5 minCCACalculating...CambodianCambodian: http://www.khmerinstitute.org/culture/ok.htmlCenter:ChallengeChallenge: Challenge: Change ToleranceChatChess AdvisorChess Alpha 2 DiagramChess GameChess PositionChess ShoutChess Variants are like the pieces of the last line will be placed on the board.Claim DrawClearClockClose _without SavingColorize analyzed movesCommand line parameters needed by the engine.Command:CommentsCompensationComputerConnectingConnecting to serverConnection ErrorConnection was closedConversation infoConversationsCornerCould not save the fileCounterplayCreate SeekDDark Squares :DateDate/TimeDeclineDefaultDestination Host UnreachableDetect type automaticallyDiedDo you know that it is possible to finish a chess game in just 2 turns?Do you know that the number of possible chess games exceeds the number of atoms in the Universe?Do you know that you can call flag when the clock is with you, Actions > Call Flag.Do you know that you can help translate Pychess in your language, Help > Translate Pychess.Don't careDrawDummy AccountECOEdit SeekEdit Seek: Edit commentEmailEndgame TableEnginesEngines use uci or xboard communication protocol to talk to the GUI. If it can use both you can set here which one you like.Enter GameEnter Game _NotationEuroShogiEuroShogi: http://en.wikipedia.org/wiki/EuroShogiEventEvent:Examine Adjourned GameExaminedExaminingExport positionFICS atomic: http://www.freechess.org/Help/HelpFiles/atomic.htmlFICS bughouse: http://www.freechess.org/Help/HelpFiles/bughouse.htmlFICS losers: http://www.freechess.org/Help/HelpFiles/losers_chess.htmlFICS suicide: http://www.freechess.org/Help/HelpFiles/suicide_chess.htmlFICS wild/3: http://www.freechess.org/Help/HelpFiles/wild.html * Randomly chosen pieces (two queens or three rooks possible) * Exactly one king of each color * Pieces placed randomly behind the pawns * No castling * Black's arrangement mirrors white'sFICS wild/8: http://www.freechess.org/Help/HelpFiles/wild.html Pawns start on 4th and 5th ranks rather than 2nd and 7thFICS wild/8a: http://www.freechess.org/Help/HelpFiles/wild.html White pawns start on 5th rank and black pawns on the 4th rankFIDE MasterFMF_ull board animationFace _to Face display modeFile existsFischer RandomForced moveFriendsGMGain:Game informationGame is _drawn:Game is _lost:Game is _set-up:Game is _won:Games running: %dGrand MasterGuestHa_ndle:Hidden pawnsHidden piecesHideHintsHost:How to PlayHuman BeingIMIdIdleIf set, PyChess will colorize suboptimal analyzed moves with red.If set, PyChess will suggest best opening moves on hint panel.If set, PyChess will use figures to express moved pieces, rather than uppercase letters.If set, the black pieces will be head down, suitable for playing against friends on mobile devices.If set, the board will turn after each move, to show the natural view for the current player.If set, the captured figurines will be shown next to the board.If set, the elapsed time that a player used for the move is shown.If set, the playing board will display labels and ranks for each chess field. These are usable in chess notation.If set, this hides the tab in the top of the playing window, when it is not needed.If you don't save, new changes to your games will be permanently lost.In TournamentIn this position, there is no legal move.Initial positionInitiativeInternational MasterInvalid move.It is not possible later to continue the game, if you don't save it.Jump to initial positionJump to latest positionKKingKing of the hillKnightKnight oddsKnightsLeave _FullscreenLight Squares :LightningLightning:Load _Recent GameLoaded gameLoading player dataLocal EventLocal SiteLog on ErrorLog on as G_uestLog on as _GuestLogging on to serverLosersLossMakrukMakruk: http://en.wikipedia.org/wiki/MakrukMamer ManagerManage enginesManualManual AcceptManually accept opponentMate in %dMaximum analysis time in seconds:Minutes:Minutes: More channelsMore playersMove HistoryNNameNever use animation. Use this on slow machines.New GameNo _animationNo conversation's selectedNo soundNormalNormal: 40 min + 15 sec/moveNot AvailableObserveObserved _ends:OddsOffer A_bortOffer AbortOffer Ad_journmentOffer PauseOffer RematchOffer ResumeOffer UndoOffer _AbortOffer _DrawOffer _PauseOffer _ResumeOffer _UndoOfficial PyChess panel.OfflineOn FICS, your "Wild" rating encompasses all of the following variants at all time controls: One player starts with one less knight pieceOne player starts with one less pawn pieceOne player starts with one less queen pieceOne player starts with one less rook pieceOnlineOnly animate _movesOnly animate piece moves.Only registered users may talk to this channelOpen GameOpen Sound FileOpen _DatabaseOpening BookOpponent RatingOpponent's strength: OtherOther (non standard rules)Other (standard rules)PParameters:PausePawnPawn oddsPawns PassedPawns PushedPingPlayPlay Fischer Random chessPlay Losers chessPlay RematchPlay _Internet ChessPlay normal chess rulesPlayer _RatingPlayers: %dPlayingPng imagePo_rts:Polyglot book file:Pre_viewPrefer figures in _notationPreferencesPressing Ctrl+Z to offer opponent the possible rollback moves.PrivatePromotionProtocol:PyChess - Connect to Internet ChessPyChess - Internet Chess: FICSPyChess Game DatabasePyChess Information WindowPyChess databasePyChess has lost connection to the engine, probably because it has died. You can try to start a new game with the engine, or try to play against another one.PyChess.py:QQueenQueen oddsQuit PyChessRR_esignRandomRapidRapid: 15 min + 10 sec/moveRatedRated gameRatingReceiving list of playersRequest ContinuationResendResultResumeRookRook oddsRoundRound:Running Simul MatchSRS_ign upSanctionsSaveSave GameSave Game _AsSave files to:Save moves before closing?Saved gameScoreSearch:Seek _GraphSeek updatedSelect engineSelect sound file...Select the games you want to save:Send ChallengeSend seekService RepresentativeSetting up environmentSetup PositionShare GameSho_w cordsShoutShow ConsoleShow _ChatShow _captured piecesShow evaluation valuesShow tips at startupShredderLinuxChess:ShuffleSide_panelsSimple Chess PositionSiteSite:SittuyinSittuyin: http://en.wikipedia.org/wiki/SittuyinSorry '%s' is already logged inSound filesSp_y modeSpentStandardStandard:Start Private ChatStatusStep back one moveStep forward one moveSuicideTTDTMTeam AccountThe abort offerThe adjourn offerThe analyzer will run in the background and analyze the game. This is necessary for the hint mode to workThe chain button is disabled because you are logged in as a guest. Guests can't establish ratings, and the chain button's state has no effect when there is no rating to which to tie "Opponent Strength" toThe chat panel lets you communicate with your opponent during the game, assuming he or she is interestedThe clock hasn't been started yet.The comments panel will try to analyze and explain the moves playedThe connection was broken - got "end of file" messageThe directory where the engine will be started from.The displayed name of the first human player, e.g., John.The displayed name of the guest player, e.g., Mary.The draw offerThe endgame table will show exact analysis when there are few pieces on the board.The engine %s reports an error:The entered password was invalid. If you forgot your password, go to http://www.freechess.org/password to request a new one over email.The error was: %sThe file already exists in '%s'. If you replace it, its content will be overwritten.The flag callThe game #%s can't be loaded, because of an error parsing FENThe game can't be read to end, because of an error parsing move %(moveno)s '%(notation)s'.The game ended in a drawThe game has been abortedThe game has been adjournedThe game has been killedThe game is pausedThe hint panel will provide computer advice during each stage of the gameThe inverse analyzer will analyze the game as if your opponent was to move. This is necessary for the spy mode to workThe move failed because %s.The moves sheet keeps track of the players' moves and lets you navigate through the game historyThe offer to switch sidesThe opening book will try to inspire you during the opening phase of the game by showing you common moves made by chess mastersThe pause offerThe reason is unknownThe resignationThe resume offerThe score panel tries to evaluate the positions and shows you a graph of the game progressThe takeback offerThebanThemesThere is %d game with unsaved moves.There are %d games with unsaved moves.This game can be automatically aborted without rating loss because there has not yet been two moves madeThis game can not be adjourned because one or both players are guestsThis option is not applicable because you're challenging a playerThis option is not available because you're challenging a guest, Threat analysis by %sTimeTime control: Time pressureTip Of The dayTip of the DayTo play on Fullscreen mode, just type F11. Coming back, F11 again.To save a game Game > Save Game As, give the filename and choose where you want to be saved. At the bottom choose extension type of the file, and Save.Tolerance:Tournament DirectorTranslate PyChessTypeUUnable to accept %sUnclear positionUndescribed panelUndoUndo one moveUndo two movesUninstallUnknownUnofficial channel %dUnratedUnregisteredUntimedUpside DownUse _analyzerUse _inverted analyzerUse analyzer:W EloWGMWIMWaitWas unable to save '%(uri)s' as PyChess doesn't know the format '%(ending)s'.WelcomeWhen this button is in the "locked" state, the relationship between "Opponent's strength" and "Your strength" will be preserved when a) your rating for the type of game sought has changed b) you change the variant or the time controlWhiteWhite O-OWhite O-O-OWhite has a new piece in outpost: %sWhite has a rather cramped positionWhite has a slightly cramped positionWhite should do pawn storm in leftWhite should do pawn storm in rightWhite:WildWildcastleWinWith attackWoman FIDE MasterWoman Grand MasterWoman International MasterWorking directory:YouYou asked your opponent to moveYou can play chess listening to the sounds of the game, for that, Settings > Preferences > Sound tab, enable Use sounds in PyChess and choose your preferred sounds.You can start a new game by Game > New Game, in New Game window do you can choose Players, Time Control and Chess Variants.You can't play rated games because "Untimed" is checked, You can't play rated games because you are logged in as a guestYou can't select a variant because "Untimed" is checked, You can't switch colors during the game.You don't have the necessary rights to save the file. Please ensure that you have given the right path and try again.You have been logged out because you were idle more than 60 minutesYou have opened no conversations yetYou have tried to undo too many moves.You may only have 3 outstanding seeks at the same time. If you want to add a new seek you must clear your currently active seeks. Clear your seeks?You sent a draw offerYou sent a pause offerYou sent a resume offerYou sent an abort offerYou sent an adjournment offerYou sent an undo offerYour opponent asks you to hurry!Your opponent has asked that the game be aborted. If you accept this offer, the game will end with no rating change.Your opponent has asked that the game be adjourned. If you accept this offer, the game will be adjourned and you can resume it later (when your opponent is online and both players agree to resume).Your opponent has asked that the game be paused. If you accept this offer, the game clock will be paused until both players agree to resume the game.Your opponent has asked that the game be resumed. If you accept this offer, the game clock will continue from where it was paused.Your opponent has asked that the last %s move(s) be undone. If you accept this offer, the game will continue from the earlier position.Your opponent has offered you a draw. If you accept this offer, the game will end with a score of 1/2 - 1/2.Your opponent is not out of time.Your opponent must agree to abort the game because there has been two or more moves madeYour panel settings have been reset. If this problem repeats, you should report it to the developersYour strength: _Accept_Actions_Analyze Game_Black player:_Call Flag_Clear Seeks_Copy FEN_Copy PGN_Decline_Edit_Engines_Export Position_Fullscreen_Game_Game List_General_Help_Hide tabs when only one game is open_Hint mode_Hints_Load Game_Log Off_Log Viewer_Name:_New Game_Next_Observed moves:_Opponent:_Password:_Play Normal chess_Player List_Previous_Replace_Rotate Board_Save %d document_Save %d documents_Save %d documents_Save Game_Seeks / Challenges_Show Sidepanels_Sounds_Start Game_Untimed_Use sounds in PyChess_View_White player:_Your Color:andand guests can't play rated gamesand on FICS, untimed games can't be ratedand on FICS, untimed games have to be normal chess rulesask your opponent to moveblackbrings a %(piece)s closer to enemy king: %(cord)sbrings a pawn closer to the backrow: %scall your opponents flagcaptures materialcastlesdefends %sdevelops a %(piece)s: %(cord)sdevelops a pawn: %sdrawsexchanges materialgnuchess:half-openhttp://en.wikipedia.org/wiki/Chesshttp://en.wikipedia.org/wiki/Rules_of_chessimproves king safetyin the %(x)s%(y)s filein the %(x)s%(y)s filesincreases the pressure on %smatesminmoves a rook to an open filemoves an rook to a half-open filemoves bishop into fianchetto: %snot playingofoffer a drawoffer a pauseoffer a takebackoffer an abortoffer to adjournoffer to resumeoffer to switch sidesonline in totalpins an enemy %(oppiece)s on the %(piece)s at %(cord)splaces a %(piece)s more active: %(cord)spromotes a Pawn to a %spromotion move without promoted piece is incorrectputs opponent in checkrescues a %sresignround %ssacrifies materialsecslightly improves king safetytakes back materialthe captured cord (%s) is incorrectthe move needs a piece and a cordthreatens to win material by %sucivs.whitewindow1xboardProject-Id-Version: pychess Report-Msgid-Bugs-To: POT-Creation-Date: 2016-01-27 13:28+0100 PO-Revision-Date: 2016-01-28 08:56+0000 Last-Translator: slav0nic Language-Team: Italian (http://www.transifex.com/gbtami/pychess/language/it/) MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Language: it Plural-Forms: nplurals=2; plural=(n != 1); Guadagno: + %d sec scacchiè arrivatoha declinato la tua proposta per una partitaè partitoti sta censurandoè presente minuti%(black)s vince la partita%(color)s ha un pedone doppiato in %(place)s%(color)s ha un pedone isolato in %(x)s fila%(color)s ha pedoni isolati in %(x)s fila%(color)s ha un nuovo pedone doppiato in %(place)s%(color)s ha un nuovo pedone passato in %(cord)s%(color)s muove il %(piece)s in %(cord)s%(minutes)d min + %(gain)d sec/mossa%(name)s %(minutes)d min%(name)s %(minutes)d min %(gain)d sec/mossa%(name)s %(minutes)d min + %(gain)d sec/mossa%(opcolor)s ha un alfiere in trappola on %(cord)s%(player)s è %(status)s%(player)s gioca %(color)s%(white)s vince la partita%d min%s non è possibile arroccare%s non è possibile arroccare sul lato di re%s non è possibile arroccare sul lato di donnaIl %s mette i pedoni in una formazione stonewall%s ha riportato un errore%s è stato rifiutata dal tuo avversario%s è stato annullato dal tuo avversario%s identificherà quali potrebbero essere le possibili minacce se se fosse il turno dell'avversario.%s proverà a prevedere la mossa migliore e quale giocatore è in vantaggio.'%s' non è un nome registrato(Blitz)*0 Giocatori Pronti0 di 010 min + 6 sec/mossa, 1400↑, Bianco10 min + 6 sec/mossa, Bianco12002 min, Fischer Casuale, 1800↓, Nero2 min, Fischer Casuale, Nero5 min5 min, 1200-1800, ManualeConnessione ad un server scacchistico Online gratuitoIn cosa vuoi promuovere il pedone?PyChess non riesce a caricare il tuo pannello delle impostazioniAnalisiAnimazioneColori della scacchieraVariantiData della partitaInserire note di giocoDati di giocoModalità suggerimento permette di analizzare la tua partita, puoi abilitarlo con: Ctrl+H.Posizione InizialePannelli Laterali InstallatiNome del _primo giocatore:Nome del _secondo giocatore:NovitàApri PartitaLivello dell'avversarioOpzioniRiprodurre un suono quando...GiocatoriModalità spia permette di analizzare la partita del tuo avversario, puoi abilitarlo con: Ctrl+Y.CronometroStrumentiColore_Inizia PartitaUn file chiamato '%s' gia' esiste. Vuoi sostituirlo?Il motore %s ha terminato l'esecuzionePyChess sta cercando i motori installati. Attendere prego.PyChess non è stato in grado di salvare la partitaCi sono %d partite con mosse non salvate. Vuoi salvare prima della chiusura?Impossibile salvare il file '%s'Tipo di file sconosciuto '%s'Sfida:Un giocatore ha dato _scacco:Un giocatore ha _mosso:Un giocatore ha _catturatoASEANASEAN: http://www.ncf-phil.org/downloadables/2014/May/Asean_chess/Laws_of_ASEAN_Chess_2011_Nov_26.docAnnullaInfo sul giocoA_ttivoAccettaRicerche attive: %dAggiungi un commentoAggiungi il simbolo di valutazioneAggiungi il simbolo alla mossaAggiungi un commento inizialeAggiungere i suggerimenti può aiutarti a pensare, ma rallenta l'analisi del computer.Errore indirizzoAggiornaAmministratoreAi-WokAi-Wok: http://www.open-aurec.com/wbforum/viewtopic.php?p=199364&sid=20963a1de2c164050de019e5ed6bf7c4#p199364Tutti i file scacchisticiTutti i FileTutto biancoAnalisi al %sAnalizza a partire dalla posizione attualeAnalizza partitaAnalizzatore in funzioneAnimazione dei pezzi, della scacchiera e altro. Da usare su computer veloci.Partita annotataAnnotazioneQualsiasi titoloChiedo per _MuovereCasuale asimmetricoAtomico_Ruota automaticamente la scacchiera verso il giocatore correnteDisconnessione automaticaDisponibileAB EloPerchè %(black)s ha perso la connessione al serverPerchè %(black)s ha perso la connessione al server e %(white)s ha richiesto di aggiornarePerché %(black)s è andato fuori tempo massimo e %(white)s non ha sufficienti pezzi per dare scacco mattoPerch %(loser)s si è disconnessoPerché %(loser)s è andato fuori tempo massimoPerché %(loser)s ha abbandonatoPerché %(loser)s ha subito scacco mattoPerché %(mover)s è in stalloPerchè %(white)s ha perso la connessione al serverPerchè %(white)s ha perso la connessione al server e %(black)s ha richiesto di aggiornarePerché %(white)s è andato fuori tempo massimo e %(black)s non ha sufficienti pezzi per dare scacco mattoPerché un giocatore ha perso la connessionePerché un giocatore si è disconnesso e l'altro ha richiesto la sospensionePerché entrambi i giocatori sono andati oltre il tempo massimoPerché nessun giocatore ha pezzi sufficienti per dare scacco mattoA causa di una sentenza pronunciata da un amministratorePerché il motore di %(white)s è mortoPerché la connessione al server è stata persaPerché la partita ha superato la lunghezza massimaPerché le ultime 50 mosse non hanno portato niente di nuovoPerché la stessa posizione si è ripetuta per tre volte di seguitoPoiché il server è stato spento.Avviso acusticoAlfiereNeroNERO O-ONERO O-O-OIl Nero ha un nuovo avamposto: %sIl Nero ha una posizione piuttosto ristrettaIl Nero ha una posizione leggermente ristrettaIl Nero dovrebbe iniziare un attacco di pedoni sulla sinistraIl Nero dovrebbe iniziare un attacco di pedoni sulla destraNero:Alla ciecaAccount alla ciecaBlitzBlitz:Blitz: 5 minCCACalcolo in corso...CambodianCambodian: http://www.khmerinstitute.org/culture/ok.htmlCentro:SfidaSfida: Sfida: Modifica tolleranzaChatConsulenteDiagramma Scacchi Alpha 2Partita di ScacchiPosizione scacchieraChiudi scacchiLe varianti scacchistiche indicano come sono disposti i pezzi sull'ultima linea della scacchiera.Chiedi la pattaPulitoOrologioChiudi _senza salvareColora le mosse analizzateParametri a linea di comando necessari per il motore.Comando:CommentiCompensoComputerConnessione in corsoConnessione al server in corso...Errore di connessioneLa connessione è terminataInformazioni sulla discussioneDiscussioniAngoloImpossibile salvare il fileControgiocoCrea SfidaDQuadrati scuri :DataData/OraRifiutaPrederfinitoL'host di destinazione non è raggiungibileRileva automaticamente il tipoDecedutoLo sapevi che è possibile finire una partita a scacchi in appena 2 turni?Lo sapevi che il numero di partite diverse giocabili è maggiore del numero di atomi dell'intero universo?Lo sapevi che puoi verificare la "Bandierina" durante la tua sessione di tempo, Azioni > Verifica Bandierina.Lo sapevi che puoi aiutareci nella traduzione di PyChess nella tua lingua, Aiuto > Traduci PyChess.IndifferentePattaAccount fittizioECOModifica SfidaModifica ricerca: Modifica CommentoEmailTablebaseMotoriI motori di analisi utilizzano il protocollo di comunicazione uci o xboard per dialogare con la GUI. Se entrambi i protocolli sono disponibili, qui hai la possibilità di scegliere quello che preferisci.Entra nella partitaInserire _Note di GiocoEuroShogiEuroShogi: http://en.wikipedia.org/wiki/EuroShogiEventoEvento:Esamina partita aggiornataEsaminatoEsaminoEsporta posizioniFICS atomic: http://www.freechess.org/Help/HelpFiles/atomic.htmlFICS bughouse: http://www.freechess.org/Help/HelpFiles/bughouse.htmlFICS losers: http://www.freechess.org/Help/HelpFiles/losers_chess.htmlFICS suicide: http://www.freechess.org/Help/HelpFiles/suicide_chess.htmlFICS wild/3: http://www.freechess.org/Help/HelpFiles/wild.html * Pezzi scelti casualmente (due regine o tre alfieri possibili) * Esattamente un re di ogni colore * Pezzi piazzati casualmente dietro i pedoni * No arrocchi * L'arrangiamento dei neri è lo stesso dei bianchiFICS wild/8: http://www.freechess.org/Help/HelpFiles/wild.html I pedoni cominciano alla quarta e quinta riga invece che la seconda e settimaFICS wild/8a: http://www.freechess.org/Help/HelpFiles/wild.html I pedoni bianchi cominciano alla quinta riga e i pedoni neri alla quartaMaestro FIDEFMAnimazione _Completa della Scacchiera_Visualizzazione Faccia a FacciaFile esistenteFischer CasualeMossa forzataAmiciGMIncremento:Informazioni di giocoLa partita è _patta:La partita è pe_rsa:La partita è stata _impostata:La partita è _vinta:Partite in corso: %dGran MaestroOspiteHa_ndle:Pedoni nascostiPezzi nascostiNascondiSuggerimentiPadrone:Come GiocareEssere UmanoIMIdIn attesaSe attivo, PyChess colorerà le mosse analizzate subottimali in rosso.Se attivato, PyChess proporrà le migliori mosse di apertura nel pannello dei consigli.Se selezionato, PyChess utilizzerà le immagini per identificare le mosse, al posto delle lettere maiuscole.Se selezionato, i pezzi neri saranno visualizzati a testa in giù, utile per giocare contro un amico su di un dispositivo mobile.Se selezionato, la scacchiera ruoterà ad ogni turno, in modo che il giocatore corrente possa vederla dal proprio lato.Se attivo, le icone dei pezzi catturati saranno mostrate di fianco alla scacchiera.Se attivo, mostra il tempo impiegato dal giocatore per muovere.Se selezionato, la scacchiera mostrerà le etichette di riga e colonna. Usati nella notazione delle partite.se selezionato, nasconde le Tab in alto quando non servono.Se non salvi, le ultime modifiche alla tua partita saranno perse.Torneo in corsoIn questa posizione, ⏎ non è possibile nessuna mossa legale.Posizione inizialeIniziativaMaestro internazionaleMossa non valida.Non sarà possibile continuare la partita, se non la salvi ora.Visualizza la posizione inizialeVisualizza l'ultima posizioneRReRe della collinaCavalloSvantaggio di CavalloCavalli_Esci da schermo interoQuadrati chiari :LampoLampo:Carica _Gioco RecentePartita caricataCaricamento dati del giocatoreEvento localeSito localeErrore di accessoCollegati come _OspiteConnettiti come _ospiteAutenticazione sul server in corso...Vinciperdi 2PersoMakrukMakruk: http://en.wikipedia.org/wiki/MakrukMamer ManagerGestisci motori di analisiComando manualeAccetta manualmenteAccetta avversario manualmenteScacco matto in %dDurata massima dell'analisi, in secondi:Minuti:Minuti: Altri canaliAltri giocatoriElenco delle mosseCNomeNon usare animazioni. Utile per computer lenti.Nuova partitaNessuna _AnimazioneNessuna discussione selezionataNessun suonoNormaleNormale: 40 min + 15 sec/mossaNon disponibileOsserva_Finali osservati:SvantaggioChiedi di smettereOffri di annullareOffri S_ospensioneOffri PausaOffri di rigiocareOffri RipresaOffri torna indietroOffri _AbbandonoChiedi la pattaOffri _PausaChiedi la ripresaOffri _Annullamento mossaPannello ufficiale PyChess.OfflineSu FICS, il tuo punteggio "Wild" comprende tutte le seguenti varianti su tutti i tempi: Uno dei giocatori inizia con un Cavallo in menoUno dei giocatori inizia con un Pedone in menoUno dei giocatori inizia con lal Regina in menoUno dei giocatori inizia con una Torre in menoOnlineAnimazione delle sole _mosseAnimazione dell movimento dei soli pezziSolo gli utenti registrati possono discutere su questo canaleApri partitaApri file sonoroApri _DatabaseLibro delle aperturePunteggio dell'avversatioLivello dell'avversario AltreAltro (regole non standard)Altro (regole standard)PParametri:PausaPedoneSvantaggio di PedonePedone passatoSpinta di pedonePingGiocaGioca partita Fischer CasualeGioca a VinciperdiRigioca la partitaGioca partita su _InternetGioca con le regole classiche_Punteggio giocatoreNumero di Giocatori: %dGiocandoImmagine PngPo_rte:File del libro poliglotta:_AnteprimaUtilizza le immagini nella _notazionePreferenzePremendo Ctrl+Z puoi offrire all'avversario la possibilità di annullare le ultime mosse.PrivatoPromozioneProtocollo:PyChess - Connettiti al server scacchisticoPyChess - Internet Chess Server: FICSBanca dati del gioco PyChessPyChess Finestra informazioniDatabase PyChessPyChess ha perso la connessione con il motore, probabilmente perché questo ha cessato di funzionare. Puoi provare a iniziare una nuova partita con lo stesso motore, o giocare contro un altro.PyChess.py:DDonnaSvantaggio di ReginaEsci da PyChessTRinunciaCasualeRapidoRapida: 15 min + 10 sec/mossaValutataPartita a punteggioValutazioneRicezione della lista dei GiocatoriRichiedi di continuareManda di nuovoRisultatoRiprendiTorreSvantaggio di TorreTurnoTurno:Simul Match in esecuzioneSR_RegistratiSanzioniSalvaSalva la partitaSalva la partita con _nomeSalva file sotto:Salvo le mosse prima della chiusura?Partita salvataPunteggioCerca:_Grafico SfideRichiesta aggiornataSeleziona motoreSeleziona un file sonoro...Seleziona le partite che vuoi salvare:Invia SfidaInvia SfidaRappresentante del servizioImpostazione dell'ambienteImposta PosizioneCondividi la partitaVisualizza _EtichetteChiudiMostra terminaleVisualizza _ChatMostra pezzi _catturatiMostra punteggi delle valutazioniMostra suggerimenti all'avvioShredderLinuxChess:Mischia_Pannelli LateraliPosizione semplice della scacchieraSitoSito web:SittuyinSittuyin: http://en.wikipedia.org/wiki/SittuyinScusa '%s' è già connessoFile sonoriModalità _spiaTrascorsiStandardStandard:Inizia una chat privataStatoVisualizza la mossa precedenteVisualizza la mossa successivaSuicidioTTDTMTeam AccountL'offerta di AbbandonoL'offerta di sospensioneL'analizzatore sarà attivato in background e analizzerà la partita. E' una funzione necessaria per permettere il funzionamento dei suggerimentiIl pulsante "Chain" è disabilitato perché se collegato come "ospite". Gli "ospiti" non gestiscono il punteggio e il pulsante "Chain" non avrebbe effetto in quanto non ci sarebbe punteggio da legare al livello dell'avversario.Il pannello "Chat" ti permette di comunicare con il tuo avversario durante la partita... sempre che sia interessatoL'orologio non è stato ancora avviato.Il pannello dei commenti analizza e cerca di spiegare le mosse effettuateLa connessione è stata interrotta - ricevuto messaggio di "end of file"La cartella da cui verrà lanciato il motore d'analisi.Il nome visualizzato del primo giocatore umano, ad es., Giovanni.Il nome visualizzato del giocatore ospite, ad es., Maria.L'offerta di PattaLa Tablebase mostrerà un'analisi esatta quando ci sono pochi pezzi sulla scacchiera.Il motore %s segnala un errore:La password inserita non è valida. Se hai dimenticato la tua password, vai su http://www.freechess.org/password per richiederne una nuova per e-mail.L'errore è stato: %sIl file gia' esiste in '%s'. Se lo sostituisci, il suo contenuto verrà sovrascritto.Controllo bandierinaLa partita #%s non può essere caricata per un errore nella lettura del fileLa partita non può essere letta fino alla fine a causa di un errore di analisi mossa %(moveno)s '%(notation)s'.La partita è finita patta.La partita è stata annullataLa partita è stata sospesaLa partita è stata interrotta.La partita è in pausaIl pannello dei suggerimenti segnalerà la mossa migliore in ogni fase della partitaL'analizzatore inverso analizzerà la partita come se toccasse al tuo avversario. E' una funzione è necessaria per permettere il funzionamento della modalità spiaLa mossa è fallita perché %s.Il foglio delle mosse tiene traccia delle mosse dei giocatori e ti permette di navigare l'evoluzione della partitaL'offerta di cambio latoIl dizionario delle aperture potrò consigliarti durante la fase iniziale della partita mostrandoti le più comuni mosse fatte dai grandi maestri.L'offerta di pausaRagione sconosciutaLa resaL'offerta di RipresaIl pannello del punteggio prova a valutare le posizioni e mostra attraverso un grafico i progressi della partitaL'offerta di RitiroThebanTemiC'è %d partita con mosse non salvate.Ci sono %d partite con mosse non salvate.Questa partita può essere interrotto automaticamente senza perdita di punteggio perchè non sono ancora state eseguite due mosseLa partita non può essere aggioranta perchè uno o entrambi i giocatori sono ospitiQuesta opzione non è applicabile perché stai sfidando un giocatoreQuesta opzione non è disponibile perché stai sfidando un "Ospite", Analisi della minaccia al %sDurataCronometro: Incalzato dal tempoSuggerimento del giornoSuggerimento del giornoPer giocare a Schermo intero, basta premere F11. Ancora F11 per ripristinare la visualizzazione in finestra.Per salvare una partita Parita > Salva partita come, indica un nome e scgli la posizione dove vuoi che venga effettuato il salvataggio. In basso scagli l'estensione del tipo di salvataggio, e Salva.Tolleranza:Direttore di torneoTraduci PyChessTipoUImpossibile accettare %sPosizione poco chiaraPannello senza descrizioneTorna indietroAnnulla una mossaAnnulla due mosseRimuoviSconosciutoCanale non ufficiale %dSenza punteggioNon registratoSenza cronometroCapovoltaUsa l'_analizzatoreUsa analizzatore _inversoUtilizza l'analizzatoreW EloWGMWIMAspettaImpossibile salvare '%(uri)s', PyChess non conosce il formato '%(ending)s'.BenvenutoQuando questo pulsante è "premuto", la relazione tra il "Livello dell'avversario" e il "Tuo livello" rimarrà bloccata anche nel caso che: a) il tuo punteggio per il tipo di gioco scelto è cambiato b) si modificassero la variante o il tempoBiancoBIANCO O-OBIANCO O-O-OIl Bianco ha un nuovo avamposto: %sIl Bianco ha una posizione piuttosto ristrettaIl Bianco ha una posizione leggermente ristrettaIl Bianco dovrebbe iniziare un attacco di pedoni sulla sinistraIl Bianco dovrebbe iniziare un attacco di pedoni sulla destraBianco:SelvaggioWildcastleVintoCon intenzione d'attaccoMaestro FIDE di sesso femminileGrande Maestro DonnaMaestro Internazionale DonnaCartella attuale:TuHai chiesto al tuo avversario di muovereE' possibile abilitare gli effetti sonori durante il gioco, per farlo, Impostazioni > Preferenze > Tab - Suoni, seleziona Usa suoni in PyChess e scegli gli effetti sonori che preferisci.Puoi iniziare una nuova partita Partita > Nuova partita, nella finestra puoi scegliere Giocatori, Durata partita e Varianti scacchistiche.Non puoi giocare una partita a punteggio perché è selezionata l'opzione "Senza tempo", Non puoi scegliere partite a punteggio perché sei connesso come "ospite"Non puoi scegliere una variante perché hai selezionato "Senza cronometro", Non è possibile cambiare i colori durante il gioco.Non hai i diritti necessari per salvare il file. Per favore assicurati di aver dato il giusto percorso e prova di nuovo.Sei stato disconnesso perché non attivo per più di 60 minutiNon hai ancora aperto nessuna discussioneSi è tentato di annullare troppe mosse.Si possono avere 3 ricerce eccezionali allo stesso tempo. Se vuoi aggiungere una nuova ricerca devi eliminare le ricerche correnti. Eliminare le ricerche correnti?Hai inviato una richiesta di pattaHai mandato una offerta di PausaHai inviato una richiesta di riprendereHai mandato un'offerta per terminareHai mandato una richiesta di aggiornamentoHai mandati una richiesta di annullamentoIl tuo avversario ti chiede di fare in fretta!Il tuo avversario ha chiesto l'annullamento. Se accetti l'offerta, la partita finirà senza modifica di punteggio.Il tuo avversario ha chiesto che la partita venga sospesa. Se accetti questa offerta, la partita verrà sospesa e potrà essere ripresa più tardi (quando il tuo avversario sarà nuovamente online ed entrambi sarete d'accordo a riprendere).Il tuo avversario chiede una pausa. Se accetti, l'orologio della partita verrà fermata fino a quando entrambi i giocatori non si accorderanno per riprendere la partita.Il tuo avversario chiede di riprendere la partita. Se accetti, l'orologio della partita riprenderà dal momento in cui era stato messo in pausa.Il tuo avversario chiede di annullare %s mossa(e). Se accetti, il gioco riprenderà dall'ultima mossa non annullata.Il tuo avversario ti ha offerto la patta. Se accetti l'offerta, la partita finirà con punteggio di 1/2 - 1/2.Il tuo avversario non ha finito il tempo a disposizione.Il tuo avversario deve concordare nell'annullamento della partita perchè sono state eseguite due o più mosseIl tuo pannello delle impostazioni è stato resettato. Se il problema si dovesse ripetere, segnalalo agli sviluppatoriTuo livello: _Accetta_Azioni_Analizza partitaGiocatore _Nero_Verifica la bandierina_Azzera Ricerche_Copia FEN_Copia PGN_Rifiuta_Modifica_Motori_Esporta PosizioniSc_hermo intero_PartitaElenco _Partite_Generale_Aiuto_Nascondi le schede quando c'è una sola partitaModalità _aiuto_Consigli_Carica partita_DisconnettitiVisua_lizza registro_Nome:_Nuova partita_SuccessivoMosse _osservateA_vversari:_Password:_Gioca partita NormaleElenco _Giocatori_Precedente_Sostituisci_Ruota scacchiera_Salvo %d documento_Salvo %d documenti_Salva %d partite_Salva partita_Elenco Sfide_Mostra pannello Laterale_Suoni_Inizia partitaSenza tempo_Usare suoni in PyChess_VistaGiocatore _Bianco_Tuo Colore:ee gli "Ospiti" non possono giocare partite a punteggioe su FICS, le partite "Senza tempo" non possono essere a punteggio.e su FICS, le partite "Senza cronometro" devono seguire le normali regole scacchisticherichiedi all'avversario di muovereneroporta il %(piece)s più vicino al re avversario: %(cord)sporta un pedone più vicino all'ultima traversa: %scontrolla la bandierina del tuo avversariocattura materialearroccadifende %ssviluppo di %(piece)s: %(cord)ssviluppo di pedone: %spattascambia materialegnuchess:semiapertohttp://it.wikipedia.org/wiki/Scacchihttp://it.wikipedia.org/wiki/Scacchiincrementa la sicurezza del Renel file %(x)s%(y)snei file %(x)s%(y)saumenta la pressione su %sdà mattominmette la Torre su una colonna apertamette la Torre su una colonna semi-apertamuove l'alfiere in fianchetto: %snon in giocodioffri una pattaoffri una pausaOffri Ritirooffri l'abbandonoOffri di sospendereoffri di riprendereoffri di cambiare latiin rete su un totale diattacco del %(oppiece)s nemico sul %(piece)s su %(cord)smetti il %(piece)s in posizione migliore: %(cord)spromuove un pedone a %sImpossibile eseguire questa mossa senza effettuare una prozionemette l'avversario sotto scaccosalvataggio di %sabbandonaturno %ssacrifica materialesecincrementa leggermente la sicurezza del Resi riprende il materialela riga catturata (%s) non è correttala stringa che indica la mossa deve contenere il pezzo e le coordinateminaccia di cattura materiale da parte di %sucicontrobiancofinestra1xboardpychess-0.12.2/lang/sk/0000755000175000017470000000000012653231274015113 5ustar tamasusers00000000000000pychess-0.12.2/lang/sk/LC_MESSAGES/0000755000175000017470000000000012653231274016700 5ustar tamasusers00000000000000pychess-0.12.2/lang/sk/LC_MESSAGES/pychess.po0000644000175000017470000025314312653216214020723 0ustar tamasusers00000000000000# SOME DESCRIPTIVE TITLE. # Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER # This file is distributed under the same license as the pychess package. # # Translators: # FIRST AUTHOR , 2008 # Stevko , 2013 msgid "" msgstr "" "Project-Id-Version: pychess\n" "Report-Msgid-Bugs-To: \n" "POT-Creation-Date: 2016-01-27 13:28+0100\n" "PO-Revision-Date: 2016-01-28 08:56+0000\n" "Last-Translator: slav0nic \n" "Language-Team: Slovak (http://www.transifex.com/gbtami/pychess/language/sk/)\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" "Language: sk\n" "Plural-Forms: nplurals=3; plural=(n==1) ? 0 : (n>=2 && n<=4) ? 1 : 2;\n" # "Plural-Forms: nplurals=INTEGER; plural=EXPRESSION;\n" #: glade/analyze_game.glade:22 msgid "Analyze game" msgstr "" #: glade/analyze_game.glade:87 msgid "Use analyzer:" msgstr "" #: glade/analyze_game.glade:122 glade/PyChess.glade:2054 msgid "Maximum analysis time in seconds:" msgstr "" #: glade/analyze_game.glade:163 msgid "" "If the analyzer finds a move where the evaluation difference (the difference" " between the evaluation for the move it thinks is the best move and the " "evaluation for the move made in the game) exceeds this value, it will add an" " annotation for that move (consisting of the engine's Principal Variation " "for the move) to the Annotation panel" msgstr "" #: glade/analyze_game.glade:164 msgid "Variation annotation creation threshold in centipawns:" msgstr "" #: glade/analyze_game.glade:198 msgid "Analyze from current position" msgstr "" #: glade/analyze_game.glade:214 msgid "Add threatening variation lines " msgstr "" #: glade/analyze_game.glade:229 glade/PyChess.glade:1459 msgid "Colorize analyzed moves" msgstr "" #: glade/analyze_game.glade:244 glade/PyChess.glade:1495 msgid "Show evaluation values" msgstr "" #: glade/discovererDialog.glade:18 msgid "PyChess is discovering your engines. Please wait." msgstr "" #: glade/discovererDialog.glade:77 msgid "PyChess.py:" msgstr "" #: glade/discovererDialog.glade:89 msgid "ShredderLinuxChess:" msgstr "" #: glade/discovererDialog.glade:101 msgid "gnuchess:" msgstr "" #: glade/fics_logon.glade:7 msgid "PyChess - Connect to Internet Chess" msgstr "PyChess - prihlásenie k Internetovej hre" #: glade/fics_logon.glade:47 msgid "Connect to the Free Online Chess Server" msgstr "Pripojiť sa k Free Online Chess Server" #: glade/fics_logon.glade:129 glade/taskers.glade:394 msgid "_Password:" msgstr "_Heslo:" #: glade/fics_logon.glade:143 msgid "_Name:" msgstr "_Meno:" #: glade/fics_logon.glade:191 msgid "Log on as _Guest" msgstr "Prihlásiť sa ako hosť" #: glade/fics_logon.glade:227 msgid "Host:" msgstr "" #: glade/fics_logon.glade:259 msgid "Po_rts:" msgstr "Porty" #: glade/fics_logon.glade:271 msgid "Auto login on startup" msgstr "" #: glade/fics_logon.glade:385 msgid "S_ign up" msgstr "Registrácia" #: glade/fics_lounge.glade:35 msgid "Challenge: " msgstr "Výzva: " #: glade/fics_lounge.glade:97 msgid "Send Challenge" msgstr "" #: glade/fics_lounge.glade:133 msgid "Challenge:" msgstr "Výzva:" #: glade/fics_lounge.glade:327 glade/fics_lounge.glade:2078 msgid "Lightning:" msgstr "Bleskový:" #: glade/fics_lounge.glade:351 glade/fics_lounge.glade:2102 msgid "Standard:" msgstr "Štandardný:" #: glade/fics_lounge.glade:375 glade/fics_lounge.glade:2126 msgid "Blitz:" msgstr "Rýchly:" #: glade/fics_lounge.glade:400 msgid "2 min, Fischer Random, Black" msgstr "" #: glade/fics_lounge.glade:422 msgid "10 min + 6 sec/move, White" msgstr "" #: glade/fics_lounge.glade:444 msgid "5 min" msgstr "" #: glade/fics_lounge.glade:480 msgid "Edit Seek" msgstr "Upraviť hľadanie" #: glade/fics_lounge.glade:584 lib/pychess/ic/ICLounge.py:2208 #: lib/pychess/ic/__init__.py:101 lib/pychess/Utils/GameModel.py:206 msgid "Untimed" msgstr "Bez časového obmedzenia" #: glade/fics_lounge.glade:637 msgid "Minutes: " msgstr "Minúty: " #: glade/fics_lounge.glade:665 msgid " Gain: " msgstr "Zisk:" #: glade/fics_lounge.glade:703 msgid "Time control: " msgstr "Časová kontrola" #: glade/fics_lounge.glade:716 lib/pychess/ic/FICSObjects.py:56 #: lib/pychess/ic/ICLounge.py:1137 lib/pychess/ic/ICLounge.py:2208 #: lib/pychess/ic/__init__.py:99 msgid "Standard" msgstr "Štandard" #: glade/fics_lounge.glade:757 glade/newInOut.glade:633 msgid "Time Control" msgstr "Časová kontrola" #: glade/fics_lounge.glade:814 glade/fics_lounge.glade:1346 msgid "Don't care" msgstr "Nezáleží" #: glade/fics_lounge.glade:879 msgid "Your strength: " msgstr "Vaša sila:" #: glade/fics_lounge.glade:921 msgid "(Blitz)" msgstr "(Rýchly)" #: glade/fics_lounge.glade:951 msgid "Opponent's strength: " msgstr "Sila oponenta:" #: glade/fics_lounge.glade:1055 msgid "" "When this button is in the \"locked\" state, the relationship\n" "between \"Opponent's strength\" and \"Your strength\" will be\n" "preserved when \n" "a) your rating for the type of game sought has changed\n" "b) you change the variant or the time control" msgstr "Keď je toto tlačidlo v stave „uzamknuté”, vzťah ⏎ medzi „Silou oponenta” a „Vašou silou” bude⏎ zachovaný keď ⏎ a) sa zmení váš rating pre typ hry, ktorý hľadáte ⏎ b) zmeníte variant alebo časovú kontrolu" #: glade/fics_lounge.glade:1095 msgid "Center:" msgstr "Stred:" #: glade/fics_lounge.glade:1134 msgid "1200" msgstr "" #: glade/fics_lounge.glade:1188 msgid "Tolerance:" msgstr "Tolerancia:" #: glade/fics_lounge.glade:1243 lib/pychess/ic/ICLounge.py:2452 msgid "Hide" msgstr "Skryť" #: glade/fics_lounge.glade:1289 msgid "Opponent Strength" msgstr "Sila oponenta" #: glade/fics_lounge.glade:1386 lib/pychess/Database/gamelist.py:40 #: lib/pychess/ic/ICLounge.py:1357 lib/pychess/ic/ICLounge.py:1557 #: lib/pychess/ic/ICLounge.py:2108 lib/pychess/Utils/repr.py:10 #: lib/pychess/widgets/ChessClock.py:40 #: lib/pychess/widgets/TaskerManager.py:153 msgid "White" msgstr "Biely" #: glade/fics_lounge.glade:1414 lib/pychess/Database/gamelist.py:40 #: lib/pychess/ic/ICLounge.py:1358 lib/pychess/ic/ICLounge.py:1558 #: lib/pychess/ic/ICLounge.py:2110 lib/pychess/Utils/repr.py:10 #: lib/pychess/widgets/ChessClock.py:40 #: lib/pychess/widgets/TaskerManager.py:154 msgid "Black" msgstr "Čierny" #: glade/fics_lounge.glade:1453 msgid "Your Color" msgstr "Vaša farba" #: glade/fics_lounge.glade:1512 msgid "Play normal chess rules" msgstr "Hrať so štandardnými pravidlami" #: glade/fics_lounge.glade:1552 msgid "Play" msgstr "Hrať" #: glade/fics_lounge.glade:1618 glade/newInOut.glade:833 msgid "Chess Variant" msgstr "Variant šachu" #: glade/fics_lounge.glade:1676 msgid "Rated game" msgstr "Hodnotená hra" #: glade/fics_lounge.glade:1692 msgid "Manually accept opponent" msgstr "Ručne akceptovať oponenta" #: glade/fics_lounge.glade:1722 msgid "Options" msgstr "Možnosti" #: glade/fics_lounge.glade:1750 msgid "PyChess - Internet Chess: FICS" msgstr "PyChess - internetový šach: FICS" #: glade/fics_lounge.glade:1823 msgid "_Clear Seeks" msgstr "Zrušiť vyhľadávanie" #: glade/fics_lounge.glade:1847 msgid "_Accept" msgstr "_Akceptovať" #: glade/fics_lounge.glade:1871 msgid "_Decline" msgstr "Odmietnuť" #: glade/fics_lounge.glade:2151 msgid "2 min, Fischer Random, 1800↓, Black" msgstr "" #: glade/fics_lounge.glade:2172 msgid "10 min + 6 sec/move, 1400↑, White" msgstr "10 min + 6 sec/ťah, 1400↑, Biely" #: glade/fics_lounge.glade:2193 msgid "5 min, 1200-1800, Manual" msgstr "" #: glade/fics_lounge.glade:2247 msgid "Send all seeks" msgstr "" #: glade/fics_lounge.glade:2301 msgid "Send seek" msgstr "Odoslať hľadanie" #: glade/fics_lounge.glade:2337 msgid "Create Seek" msgstr "Začať hľadať" #: glade/fics_lounge.glade:2353 msgid "_Seeks / Challenges" msgstr "Hľadania / Výzvy" #: glade/fics_lounge.glade:2374 lib/pychess/ic/ICLounge.py:472 #: lib/pychess/ic/ICLounge.py:670 lib/pychess/ic/ICLounge.py:1357 #: lib/pychess/ic/ICLounge.py:1358 msgid "Rating" msgstr "Hodnotenie" #: glade/fics_lounge.glade:2399 msgid "Time" msgstr "Čas" #: glade/fics_lounge.glade:2419 msgid "Seek _Graph" msgstr "Graf hľadaní" #: glade/fics_lounge.glade:2444 msgid "0 Players Ready" msgstr "0 pripravených hráčov" #: glade/fics_lounge.glade:2496 msgid "Challenge" msgstr "Výzva" #: glade/fics_lounge.glade:2549 glade/fics_lounge.glade:2735 msgid "Observe" msgstr "Sledovať" #: glade/fics_lounge.glade:2602 msgid "Start Private Chat" msgstr "Začať súkromný rozhovor" #: glade/fics_lounge.glade:2659 msgid "_Player List" msgstr "Zoznam hráčov" #: glade/fics_lounge.glade:2792 msgid "_Game List" msgstr "Zoznam hier" #: glade/fics_lounge.glade:2847 msgid "_My games" msgstr "" #: glade/fics_lounge.glade:2904 glade/PyChess.glade:841 msgid "Offer _Resume" msgstr "Ponúknuť obnovenie" #: glade/fics_lounge.glade:2962 glade/PyChess.glade:880 msgid "R_esign" msgstr "Vzdať sa" #: glade/fics_lounge.glade:3006 glade/PyChess.glade:820 msgid "Offer _Draw" msgstr "Ponúknuť _Remízu" #: glade/fics_lounge.glade:3050 msgid "Offer A_bort" msgstr "Ponúknuť _zrušenie" #: glade/fics_lounge.glade:3107 msgid "Pre_view" msgstr "Náhľad" #: glade/fics_lounge.glade:3151 msgid "Examine" msgstr "" #: glade/fics_lounge.glade:3208 msgid "_Archived" msgstr "" #: glade/fics_lounge.glade:3313 msgid "News" msgstr "Novinky" #: glade/fics_lounge.glade:3345 msgid "Show Console" msgstr "" #: glade/fics_lounge.glade:3359 msgid "Show _Chat" msgstr "Zobraziť chat" #: glade/fics_lounge.glade:3373 msgid "_Log Off" msgstr "Odhlásiť sa" #: glade/fics_lounge.glade:3393 msgid "Tools" msgstr "Nástroje" #: glade/fics_lounge.glade:3428 msgid "Asymmetric Random " msgstr "" #: glade/findbar.glade:6 msgid "window1" msgstr "" #: glade/findbar.glade:21 msgid "0 of 0" msgstr "" #: glade/findbar.glade:66 msgid "Search:" msgstr "" #: glade/findbar.glade:134 msgid "_Previous" msgstr "" #: glade/findbar.glade:192 msgid "_Next" msgstr "" #: glade/newInOut.glade:45 lib/pychess/widgets/newGameDialog.py:445 msgid "New Game" msgstr "Nová hra" #: glade/newInOut.glade:108 msgid "_Start Game" msgstr "_Spustiť hru" #: glade/newInOut.glade:130 msgid "Copy FEN" msgstr "" #: glade/newInOut.glade:143 msgid "Clear" msgstr "" #: glade/newInOut.glade:156 msgid "Paste FEN" msgstr "" #: glade/newInOut.glade:257 msgid "_Black player:" msgstr "" #: glade/newInOut.glade:274 msgid "_White player:" msgstr "" #: glade/newInOut.glade:385 msgid "Players" msgstr "Hráči" #: glade/newInOut.glade:436 msgid "_Untimed" msgstr "" #: glade/newInOut.glade:475 msgid "Blitz: 5 min" msgstr "" #: glade/newInOut.glade:526 msgid "Rapid: 15 min + 10 sec/move" msgstr "" #: glade/newInOut.glade:575 msgid "Normal: 40 min + 15 sec/move" msgstr "" #: glade/newInOut.glade:684 msgid "_Play Normal chess" msgstr "" #: glade/newInOut.glade:724 msgid "Play Fischer Random chess" msgstr "" #: glade/newInOut.glade:774 msgid "Play Losers chess" msgstr "" #: glade/newInOut.glade:919 msgid "Open Game" msgstr "" #: glade/newInOut.glade:1162 msgid "Initial Position" msgstr "" #: glade/newInOut.glade:1219 msgid "Enter Game Notation" msgstr "Zadajte poznámky ku hre:" #: glade/newInOut.glade:1314 msgid "Halfmove clock" msgstr "" #: glade/newInOut.glade:1327 msgid "En passant line" msgstr "" #: glade/newInOut.glade:1339 msgid "Side to move" msgstr "" #: glade/newInOut.glade:1351 msgid "Move number" msgstr "" #: glade/newInOut.glade:1361 msgid "Black O-O" msgstr "" #: glade/newInOut.glade:1375 msgid "Black O-O-O" msgstr "" #: glade/newInOut.glade:1389 msgid "White O-O-O" msgstr "" #: glade/newInOut.glade:1403 msgid "White O-O" msgstr "" #: glade/promotion.glade:7 msgid "Promotion" msgstr "Premena" #: glade/promotion.glade:49 lib/pychess/Utils/repr.py:12 msgid "Queen" msgstr "Dáma" #: glade/promotion.glade:95 lib/pychess/Utils/repr.py:12 msgid "Rook" msgstr "Veža" #: glade/promotion.glade:141 lib/pychess/Utils/repr.py:12 msgid "Bishop" msgstr "Strelec" #: glade/promotion.glade:187 lib/pychess/Utils/repr.py:12 msgid "Knight" msgstr "Jazdec" #: glade/promotion.glade:233 lib/pychess/Utils/repr.py:12 msgid "King" msgstr "" #: glade/promotion.glade:265 msgid "Promote pawn to what?" msgstr "Na akú figúru premeniť pešiaka?" #: glade/PyChess.glade:9 msgid "Chess client" msgstr "" #: glade/PyChess.glade:44 msgid "Game information" msgstr "Informácie o hre" #: glade/PyChess.glade:164 msgid "Event:" msgstr "Udalosť:" #: glade/PyChess.glade:178 msgid "Site:" msgstr "Lokácia:" #: glade/PyChess.glade:204 msgid "Round:" msgstr "Kolo:" #: glade/PyChess.glade:237 msgid "White:" msgstr "" #: glade/PyChess.glade:249 msgid "Black:" msgstr "" #: glade/PyChess.glade:302 msgid "Game data" msgstr "Údaje o hre" #: glade/PyChess.glade:357 msgid "Date of game" msgstr "Dátum hry" #: glade/PyChess.glade:495 msgid "_Game" msgstr "_Hra" #: glade/PyChess.glade:502 msgid "_New Game" msgstr "_Nová hra" #: glade/PyChess.glade:515 msgid "Play _Internet Chess" msgstr "" #: glade/PyChess.glade:534 msgid "_Load Game" msgstr "_Načítať hru" #: glade/PyChess.glade:550 msgid "Load _Recent Game" msgstr "" #: glade/PyChess.glade:558 msgid "Open _Database" msgstr "" #: glade/PyChess.glade:569 lib/pychess/widgets/newGameDialog.py:615 msgid "Setup Position" msgstr "" #: glade/PyChess.glade:579 msgid "Enter Game _Notation" msgstr "" #: glade/PyChess.glade:592 msgid "_Save Game" msgstr "_Uložiť hru" #: glade/PyChess.glade:606 msgid "Save Game _As" msgstr "Uložiť hru _ako" #: glade/PyChess.glade:624 msgid "Share Game" msgstr "" #: glade/PyChess.glade:630 msgid "_Export Position" msgstr "" #: glade/PyChess.glade:644 msgid "_Analyze Game" msgstr "" #: glade/PyChess.glade:678 msgid "Player _Rating" msgstr "Hodnotenie hráča" #: glade/PyChess.glade:723 msgid "_Edit" msgstr "" #: glade/PyChess.glade:734 msgid "_Copy PGN" msgstr "" #: glade/PyChess.glade:746 msgid "_Copy FEN" msgstr "" #: glade/PyChess.glade:763 msgid "_Engines" msgstr "" #: glade/PyChess.glade:789 msgid "_Actions" msgstr "_Akcie" #: glade/PyChess.glade:800 msgid "Offer _Abort" msgstr "" #: glade/PyChess.glade:810 msgid "Offer Ad_journment" msgstr "" #: glade/PyChess.glade:831 msgid "Offer _Pause" msgstr "" #: glade/PyChess.glade:847 msgid "Offer _Undo" msgstr "" #: glade/PyChess.glade:870 msgid "_Call Flag" msgstr "" #: glade/PyChess.glade:890 msgid "Ask to _Move" msgstr "" #: glade/PyChess.glade:905 msgid "Auto Call _Flag" msgstr "" #: glade/PyChess.glade:918 msgid "_View" msgstr "_Zobraziť" #: glade/PyChess.glade:925 msgid "_Rotate Board" msgstr "_Otočiť šachovnicu" #: glade/PyChess.glade:939 msgid "_Fullscreen" msgstr "" #: glade/PyChess.glade:952 msgid "Leave _Fullscreen" msgstr "" #: glade/PyChess.glade:969 msgid "_Show Sidepanels" msgstr "" #: glade/PyChess.glade:980 msgid "_Log Viewer" msgstr "Prehliadač záznamov" #: glade/PyChess.glade:997 msgid "_Hint mode" msgstr "_Mód poradcu" #: glade/PyChess.glade:1009 msgid "Sp_y mode" msgstr "_Špehovací mód" #: glade/PyChess.glade:1024 msgid "_Help" msgstr "_Pomoc" #: glade/PyChess.glade:1034 msgid "About Chess" msgstr "O šachu" #: glade/PyChess.glade:1043 msgid "How to Play" msgstr "" #: glade/PyChess.glade:1052 msgid "Translate PyChess" msgstr "" #: glade/PyChess.glade:1058 msgid "Tip of the Day" msgstr "" #: glade/PyChess.glade:1153 msgid "Default" msgstr "" #: glade/PyChess.glade:1156 msgid "Knights" msgstr "" #: glade/PyChess.glade:1167 lib/pychess/widgets/preferencesDialog.py:349 msgid "Beep" msgstr "Pípnuť" #: glade/PyChess.glade:1170 lib/pychess/widgets/preferencesDialog.py:350 msgid "Select sound file..." msgstr "Vybrať zvukový súbor..." #: glade/PyChess.glade:1173 lib/pychess/widgets/preferencesDialog.py:348 msgid "No sound" msgstr "Bez zvuku" #: glade/PyChess.glade:1180 msgid "Preferences" msgstr "Predvoľby" #: glade/PyChess.glade:1218 msgid "The displayed name of the first human player, e.g., John." msgstr "" #: glade/PyChess.glade:1230 msgid "Name of _first human player:" msgstr "" #: glade/PyChess.glade:1259 msgid "The displayed name of the guest player, e.g., Mary." msgstr "" #: glade/PyChess.glade:1271 msgid "Name of s_econd human player:" msgstr "" #: glade/PyChess.glade:1307 msgid "_Hide tabs when only one game is open" msgstr "_Schovať záložky ak je otvorená iba jedna hra" #: glade/PyChess.glade:1312 msgid "" "If set, this hides the tab in the top of the playing window, when it is not " "needed." msgstr "Zaškrtnutie tejto voľby schová záložky kariet na vrchu okna s hrami ak nie sú potrebné." #: glade/PyChess.glade:1326 msgid "_Use main app closer [x] to close all games" msgstr "" #: glade/PyChess.glade:1331 msgid "" "If set, clicking on main application window closer first time it closes all " "games." msgstr "" #: glade/PyChess.glade:1345 msgid "Auto _rotate board to current human player" msgstr "Automaticky otočiť šachovnicu pre aktuálneho ľudského hráča" #: glade/PyChess.glade:1350 msgid "" "If set, the board will turn after each move, to show the natural view for " "the current player." msgstr "Zaškrtnutie tejto voľby spôsobí otočenie šachovnice po každom ťahu, aby hráč na ťahu videl šachovnicu zo svojej strany " #: glade/PyChess.glade:1364 msgid "Auto _promote to queen" msgstr "" #: glade/PyChess.glade:1369 msgid "If set, pawn promotes to queen without promotion dialog selection." msgstr "" #: glade/PyChess.glade:1383 msgid "Face _to Face display mode" msgstr "Zobrazenie „tvárou v tvár”" #: glade/PyChess.glade:1388 msgid "" "If set, the black pieces will be head down, suitable for playing against " "friends on mobile devices." msgstr "Ak je voľba zaškrtnutá, čierne figúrky budú zobrazené dolu hlavou. Vhodné pre hranie na mobilných zariadeniach, keď oponent sedí proti vám." #: glade/PyChess.glade:1402 msgid "Sho_w cords" msgstr "Zobrazovať súradnice" #: glade/PyChess.glade:1407 msgid "" "If set, the playing board will display labels and ranks for each chess " "field. These are usable in chess notation." msgstr "Zaškrtnutie tejto voľby zobrazí označenia stĺpcov a radov vedľa šachovnice." #: glade/PyChess.glade:1421 msgid "Show _captured pieces" msgstr "" #: glade/PyChess.glade:1426 msgid "If set, the captured figurines will be shown next to the board." msgstr "" #: glade/PyChess.glade:1440 msgid "Prefer figures in _notation" msgstr "Uprednostňovať obrázky v zápise" #: glade/PyChess.glade:1445 msgid "" "If set, PyChess will use figures to express moved pieces, rather than " "uppercase letters." msgstr "Zaškrtnutie spôsobí, že PyChess bude v zápise hry zobrazovať obrázky ťahaných figúr miesto označenia veľkým písmenom." #: glade/PyChess.glade:1464 msgid "If set, PyChess will colorize suboptimal analyzed moves with red." msgstr "" #: glade/PyChess.glade:1477 msgid "Show elapsed move times" msgstr "" #: glade/PyChess.glade:1482 msgid "If set, the elapsed time that a player used for the move is shown." msgstr "" #: glade/PyChess.glade:1500 msgid "If set, the hint analyzer engine evaluation value is shown." msgstr "" #: glade/PyChess.glade:1526 msgid "General Options" msgstr "" #: glade/PyChess.glade:1560 msgid "F_ull board animation" msgstr "" #: glade/PyChess.glade:1565 msgid "Animate pieces, board rotation and more. Use this on fast machines." msgstr "" #: glade/PyChess.glade:1579 msgid "Only animate _moves" msgstr "" #: glade/PyChess.glade:1584 msgid "Only animate piece moves." msgstr "" #: glade/PyChess.glade:1599 msgid "No _animation" msgstr "" #: glade/PyChess.glade:1604 msgid "Never use animation. Use this on slow machines." msgstr "" #: glade/PyChess.glade:1632 msgid "Animation" msgstr "Animácia" #: glade/PyChess.glade:1651 msgid "_General" msgstr "" #: glade/PyChess.glade:1692 msgid "Use opening _book" msgstr "" #: glade/PyChess.glade:1697 msgid "If set, PyChess will suggest best opening moves on hint panel." msgstr "" #: glade/PyChess.glade:1724 msgid "Polyglot book file:" msgstr "" #: glade/PyChess.glade:1768 msgid "Use _local tablebases" msgstr "" #: glade/PyChess.glade:1773 msgid "" "If set, PyChess will show game results for different moves in positions containing 6 or less pieces.\n" "You can download tablebase files from:\n" "http://www.olympuschess.com/egtb/gaviota/" msgstr "" #: glade/PyChess.glade:1803 msgid "Gaviota TB path:" msgstr "" #: glade/PyChess.glade:1843 msgid "Use _online tablebases" msgstr "" #: glade/PyChess.glade:1848 msgid "" "If set, PyChess will show game results for different moves in positions containing 6 or less pieces.\n" "It will search positions from http://www.k4it.de/" msgstr "" #: glade/PyChess.glade:1870 msgid "Opening, endgame" msgstr "" #: glade/PyChess.glade:1904 msgid "Use _analyzer" msgstr "Použiť _analyzátor" #: glade/PyChess.glade:1946 msgid "" "The analyzer will run in the background and analyze the game. This is " "necessary for the hint mode to work" msgstr "" #: glade/PyChess.glade:1978 msgid "Use _inverted analyzer" msgstr "Použiť _inverzný analyzátor" #: glade/PyChess.glade:2020 msgid "" "The inverse analyzer will analyze the game as if your opponent was to move. " "This is necessary for the spy mode to work" msgstr "" #: glade/PyChess.glade:2096 msgid "Analyzing" msgstr "Analyzovanie" #: glade/PyChess.glade:2118 msgid "_Hints" msgstr "" #: glade/PyChess.glade:2263 msgid "Uninstall" msgstr "" #: glade/PyChess.glade:2317 msgid "Ac_tive" msgstr "" #: glade/PyChess.glade:2367 msgid "Installed Sidepanels" msgstr "" #: glade/PyChess.glade:2382 msgid "Side_panels" msgstr "" #: glade/PyChess.glade:2440 msgid "Light Squares :" msgstr "" #: glade/PyChess.glade:2479 msgid "Dark Squares :" msgstr "" #: glade/PyChess.glade:2515 msgid "Reset Default Colours" msgstr "" #: glade/PyChess.glade:2551 msgid "Board Colours" msgstr "" #: glade/PyChess.glade:2610 msgid "Chess Sets" msgstr "" #: glade/PyChess.glade:2634 msgid "Themes" msgstr "" #: glade/PyChess.glade:2659 msgid "_Use sounds in PyChess" msgstr "Zapnúť zvuky v PyChess" #: glade/PyChess.glade:2982 msgid "A player _checks:" msgstr "Hráč dáva šach:" #: glade/PyChess.glade:2997 msgid "A player _moves:" msgstr "Hráč ťahá:" #: glade/PyChess.glade:3010 msgid "Game is _drawn:" msgstr "Hra skončila remízou:" #: glade/PyChess.glade:3025 msgid "Game is _lost:" msgstr "Hra skončila prehrou:" #: glade/PyChess.glade:3040 msgid "Game is _won:" msgstr "Hra skončila výhrou:" #: glade/PyChess.glade:3055 msgid "A player c_aptures:" msgstr "Hráč berie:" #: glade/PyChess.glade:3084 msgid "Game is _set-up:" msgstr "Hra je pripravená" #: glade/PyChess.glade:3136 msgid "_Observed moves:" msgstr "_Pozorované ťahy" #: glade/PyChess.glade:3151 msgid "Observed _ends:" msgstr "Pozorovanie _končí:" #: glade/PyChess.glade:3265 msgid "Short on _time:" msgstr "" #: glade/PyChess.glade:3317 msgid "_Invalid move:" msgstr "" #: glade/PyChess.glade:3369 msgid "Activate alarm when _remaining sec is:" msgstr "" #: glade/PyChess.glade:3416 msgid "Play Sound When..." msgstr "Zahrať zvuk keď…" #: glade/PyChess.glade:3438 msgid "_Sounds" msgstr "" #: glade/PyChess.glade:3463 msgid "_Auto save finished games" msgstr "" #: glade/PyChess.glade:3497 msgid "Save files to:" msgstr "" #: glade/PyChess.glade:3525 msgid "Use name format:" msgstr "" #: glade/PyChess.glade:3569 msgid "Names: #n1, #n2" msgstr "" #: glade/PyChess.glade:3582 msgid "Year, month, day: #y, #m, #d" msgstr "" #: glade/PyChess.glade:3619 msgid "Save elapsed move _times" msgstr "" #: glade/PyChess.glade:3644 msgid "Save analyzing engine _evaluation values" msgstr "" #: glade/PyChess.glade:3669 msgid "Save _own games only" msgstr "" #: glade/PyChess.glade:3698 msgid "Save" msgstr "" #: glade/PyChess.glade:3728 msgid "uci" msgstr "" #: glade/PyChess.glade:3731 msgid "xboard" msgstr "" #: glade/PyChess.glade:3739 msgid "Manage engines" msgstr "" #: glade/PyChess.glade:3837 msgid "Command:" msgstr "" #: glade/PyChess.glade:3851 msgid "Protocol:" msgstr "" #: glade/PyChess.glade:3865 msgid "Parameters:" msgstr "" #: glade/PyChess.glade:3878 msgid "Command line parameters needed by the engine." msgstr "" #: glade/PyChess.glade:3903 msgid "" "Engines use uci or xboard communication protocol to talk to the GUI.\n" "If it can use both you can set here which one you like." msgstr "" #: glade/PyChess.glade:3929 msgid "Working directory:" msgstr "" #: glade/PyChess.glade:3942 msgid "The directory where the engine will be started from." msgstr "" #: glade/saveGamesDialog.glade:7 msgid "Quit PyChess" msgstr "" #: glade/saveGamesDialog.glade:24 lib/pychess/widgets/ionest.py:424 msgid "Close _without Saving" msgstr "Zavrieť _bez uloženia" #: glade/saveGamesDialog.glade:83 msgid "_Save %d documents" msgstr "" #: glade/saveGamesDialog.glade:141 msgid "" "There are %d games with unsaved moves. Save changes before " "closing?" msgstr "" #: glade/saveGamesDialog.glade:161 msgid "Select the games you want to save:" msgstr "" #: glade/saveGamesDialog.glade:204 msgid "If you don't save, new changes to your games will be permanently lost." msgstr "" #: glade/taskers.glade:126 msgid "_Opponent:" msgstr "" #: glade/taskers.glade:154 msgid "_Your Color:" msgstr "" #: glade/taskers.glade:219 msgid "_Start Game" msgstr "" #: glade/taskers.glade:338 msgid "Log on as G_uest" msgstr "" #: glade/taskers.glade:410 msgid "Ha_ndle:" msgstr "" #: glade/taskers.glade:469 msgid "_Connect to server" msgstr "" #: glade/tipoftheday.glade:7 msgid "Tip Of The day" msgstr "" #: glade/tipoftheday.glade:62 msgid "Show tips at startup" msgstr "" #: lib/pychess/Main.py:302 msgid "http://en.wikipedia.org/wiki/Chess" msgstr "https://sk.wikipedia.org/wiki/%C5%A0ach_(hra)" #: lib/pychess/Main.py:305 msgid "http://en.wikipedia.org/wiki/Rules_of_chess" msgstr "http://en.wikipedia.org/wiki/Rules_of_chess" #: lib/pychess/Main.py:370 lib/pychess/widgets/gamenanny.py:80 msgid "Welcome" msgstr "" #: lib/pychess/Database/gamelist.py:40 msgid "Id" msgstr "" #: lib/pychess/Database/gamelist.py:40 msgid "W Elo" msgstr "" #: lib/pychess/Database/gamelist.py:40 msgid "B Elo" msgstr "" #: lib/pychess/Database/gamelist.py:41 msgid "Result" msgstr "" #: lib/pychess/Database/gamelist.py:41 msgid "Event" msgstr "" #: lib/pychess/Database/gamelist.py:41 msgid "Site" msgstr "" #: lib/pychess/Database/gamelist.py:41 msgid "Round" msgstr "" #: lib/pychess/Database/gamelist.py:41 msgid "Date" msgstr "" #: lib/pychess/Database/gamelist.py:41 msgid "ECO" msgstr "" #: lib/pychess/Database/gamelist.py:62 msgid "PyChess Game Database" msgstr "" #: lib/pychess/Database/PgnImport.py:188 #, python-format msgid "The game #%s can't be loaded, because of an error parsing FEN" msgstr "" #: lib/pychess/ic/FICSConnection.py:139 msgid "The connection was broken - got \"end of file\" message" msgstr "Spojenie bolo prerušené - obdržaná správa \"koniec súboru\"" #: lib/pychess/ic/FICSConnection.py:140 #, python-format msgid "'%s' is not a registered name" msgstr "'%s' nie je registrované meno" #: lib/pychess/ic/FICSConnection.py:141 msgid "" "The entered password was invalid.\n" "If you forgot your password, go to http://www.freechess.org/password to request a new one over email." msgstr "" #: lib/pychess/ic/FICSConnection.py:145 #, python-format msgid "Sorry '%s' is already logged in" msgstr "" #: lib/pychess/ic/FICSConnection.py:146 #, python-format msgid "'%s' is a registered name. If it is yours, type the password." msgstr "" #: lib/pychess/ic/FICSConnection.py:147 msgid "" "Due to abuse problems, guest connections have been prevented.\n" "You can still register on http://www.freechess.org" msgstr "" #: lib/pychess/ic/FICSConnection.py:166 msgid "Connecting to server" msgstr "" #: lib/pychess/ic/FICSConnection.py:181 msgid "Logging on to server" msgstr "" #: lib/pychess/ic/FICSConnection.py:239 msgid "Setting up environment" msgstr "" #: lib/pychess/ic/FICSObjects.py:35 lib/pychess/ic/FICSObjects.py:47 #, python-format msgid "%(player)s is %(status)s" msgstr "" #: lib/pychess/ic/FICSObjects.py:46 msgid "not playing" msgstr "" #: lib/pychess/ic/FICSObjects.py:54 lib/pychess/ic/ICLounge.py:1136 #: lib/pychess/ic/ICLounge.py:2209 lib/pychess/ic/__init__.py:98 #: lib/pychess/widgets/newGameDialog.py:153 msgid "Blitz" msgstr "Rýchla hra" #: lib/pychess/ic/FICSObjects.py:58 lib/pychess/ic/ICLounge.py:1137 #: lib/pychess/ic/ICLounge.py:2209 lib/pychess/ic/__init__.py:100 msgid "Lightning" msgstr "Blesková hra" #: lib/pychess/ic/FICSObjects.py:60 lib/pychess/Variants/atomic.py:15 msgid "Atomic" msgstr "" #: lib/pychess/ic/FICSObjects.py:62 lib/pychess/Variants/bughouse.py:9 msgid "Bughouse" msgstr "" #: lib/pychess/ic/FICSObjects.py:64 lib/pychess/Variants/crazyhouse.py:9 msgid "Crazyhouse" msgstr "" #: lib/pychess/ic/FICSObjects.py:66 lib/pychess/Variants/losers.py:9 msgid "Losers" msgstr "" #: lib/pychess/ic/FICSObjects.py:68 lib/pychess/Variants/suicide.py:12 msgid "Suicide" msgstr "" #: lib/pychess/ic/FICSObjects.py:70 lib/pychess/ic/__init__.py:129 msgid "Wild" msgstr "" #: lib/pychess/ic/FICSObjects.py:117 msgid "Online" msgstr "" #: lib/pychess/ic/FICSObjects.py:118 lib/pychess/ic/FICSObjects.py:143 msgid "Offline" msgstr "" #: lib/pychess/ic/FICSObjects.py:133 msgid "Available" msgstr "" #: lib/pychess/ic/FICSObjects.py:135 msgid "Playing" msgstr "" #: lib/pychess/ic/FICSObjects.py:141 msgid "Idle" msgstr "" #: lib/pychess/ic/FICSObjects.py:145 msgid "Examining" msgstr "" #: lib/pychess/ic/FICSObjects.py:147 msgid "Not Available" msgstr "" #: lib/pychess/ic/FICSObjects.py:149 msgid "Running Simul Match" msgstr "" #: lib/pychess/ic/FICSObjects.py:151 msgid "In Tournament" msgstr "" #: lib/pychess/ic/FICSObjects.py:308 lib/pychess/ic/FICSObjects.py:492 #: lib/pychess/ic/ICLounge.py:2278 msgid "Unrated" msgstr "Nehodnotené" #: lib/pychess/ic/FICSObjects.py:491 lib/pychess/ic/ICLounge.py:670 #: lib/pychess/ic/ICLounge.py:1358 lib/pychess/ic/ICLounge.py:1558 #: lib/pychess/ic/ICLounge.py:2113 msgid "Rated" msgstr "Hodnotené" #: lib/pychess/ic/FICSObjects.py:498 lib/pychess/ic/ICLounge.py:2098 #, python-format msgid "%d min" msgstr "" #: lib/pychess/ic/FICSObjects.py:500 #, python-format msgid " + %d sec" msgstr "" #: lib/pychess/ic/FICSObjects.py:517 #, python-format msgid "%(player)s plays %(color)s" msgstr "" #: lib/pychess/ic/FICSObjects.py:519 lib/pychess/ic/ICLounge.py:909 msgid "white" msgstr "" #: lib/pychess/ic/FICSObjects.py:519 lib/pychess/ic/ICLounge.py:909 msgid "black" msgstr "" #: lib/pychess/ic/FICSObjects.py:565 msgid "This is a continuation of an adjourned match" msgstr "" #: lib/pychess/ic/FICSObjects.py:654 msgid "Opponent Rating" msgstr "" #: lib/pychess/ic/FICSObjects.py:656 msgid "Manual Accept" msgstr "" #: lib/pychess/ic/FICSObjects.py:810 msgid "Private" msgstr "" #: lib/pychess/ic/FICSObjects.py:930 lib/pychess/ic/ICLounge.py:527 #: lib/pychess/Savers/epd.py:139 msgid "Unknown" msgstr "Neznámy" #: lib/pychess/ic/ICLogon.py:159 lib/pychess/ic/ICLogon.py:165 msgid "Connection Error" msgstr "Chyba v pripojení" #: lib/pychess/ic/ICLogon.py:161 msgid "Log on Error" msgstr "Chyba pri prihlasovaní" #: lib/pychess/ic/ICLogon.py:163 msgid "Connection was closed" msgstr "Spojenie bolo ukončené" #: lib/pychess/ic/ICLogon.py:169 msgid "Address Error" msgstr "" #: lib/pychess/ic/ICLogon.py:172 msgid "Auto-logout" msgstr "" #: lib/pychess/ic/ICLogon.py:173 msgid "You have been logged out because you were idle more than 60 minutes" msgstr "" #: lib/pychess/ic/ICLounge.py:222 msgid "You have to set kibitz on to see bot messages here." msgstr "" #: lib/pychess/ic/ICLounge.py:241 msgid "" "You may only have 3 outstanding seeks at the same time. If you want to add a" " new seek you must clear your currently active seeks. Clear your seeks?" msgstr "" #: lib/pychess/ic/ICLounge.py:258 msgid "You can't touch this! You are examining a game." msgstr "" #: lib/pychess/ic/ICLounge.py:270 msgid " has declined your offer for a match" msgstr "" #: lib/pychess/ic/ICLounge.py:283 msgid " is censoring you" msgstr "" #: lib/pychess/ic/ICLounge.py:296 msgid " noplay listing you" msgstr "" #: lib/pychess/ic/ICLounge.py:311 msgid " uses a formula not fitting your match request:" msgstr "" #: lib/pychess/ic/ICLounge.py:325 msgid "to manual accept" msgstr "" #: lib/pychess/ic/ICLounge.py:327 msgid "to automatic accept" msgstr "" #: lib/pychess/ic/ICLounge.py:329 msgid "rating range now" msgstr "" #: lib/pychess/ic/ICLounge.py:330 msgid "Seek updated" msgstr "" #: lib/pychess/ic/ICLounge.py:342 msgid "Your seeks have been removed" msgstr "" #: lib/pychess/ic/ICLounge.py:363 msgid " has arrived" msgstr "" #: lib/pychess/ic/ICLounge.py:370 msgid " has departed" msgstr "" #: lib/pychess/ic/ICLounge.py:374 msgid " is present" msgstr "" #: lib/pychess/ic/ICLounge.py:391 sidepanel/chatPanel.py:17 msgid "Chat" msgstr "" #: lib/pychess/ic/ICLounge.py:472 sidepanel/bookPanel.py:366 msgid "Win" msgstr "" #: lib/pychess/ic/ICLounge.py:472 sidepanel/bookPanel.py:360 msgid "Draw" msgstr "" #: lib/pychess/ic/ICLounge.py:472 sidepanel/bookPanel.py:363 msgid "Loss" msgstr "" #: lib/pychess/ic/ICLounge.py:482 msgid "" "On FICS, your \"Wild\" rating encompasses all of the following variants at " "all time controls:\n" msgstr "" #: lib/pychess/ic/ICLounge.py:494 msgid "Sanctions" msgstr "" #: lib/pychess/ic/ICLounge.py:499 msgid "Email" msgstr "E-mail" #: lib/pychess/ic/ICLounge.py:504 msgid "Spent" msgstr "Strávené" #: lib/pychess/ic/ICLounge.py:506 msgid "online in total" msgstr "celkový čas online" #: lib/pychess/ic/ICLounge.py:512 msgid "Ping" msgstr "Odozva" #: lib/pychess/ic/ICLounge.py:517 msgid "Connecting" msgstr "Pripájanie" #: lib/pychess/ic/ICLounge.py:544 msgid "" "You are currently logged in as a guest.\n" "A guest can't play rated games and therefore isn't able to play as many of the types of matches offered as a registered user. To register an account, go to http://www.freechess.org/Register/index.html." msgstr "" #: lib/pychess/ic/ICLounge.py:669 lib/pychess/ic/ICLounge.py:1136 msgid "Name" msgstr "Meno" #: lib/pychess/ic/ICLounge.py:670 lib/pychess/ic/ICLounge.py:1358 #: lib/pychess/ic/ICLounge.py:1558 msgid "Type" msgstr "Typ" #: lib/pychess/ic/ICLounge.py:670 lib/pychess/ic/ICLounge.py:1558 msgid "Clock" msgstr "Hodiny" #: lib/pychess/ic/ICLounge.py:726 lib/pychess/ic/ICLounge.py:923 #: lib/pychess/Players/Human.py:250 msgid "Accept" msgstr "" #: lib/pychess/ic/ICLounge.py:728 msgid "Assess" msgstr "" #: lib/pychess/ic/ICLounge.py:734 msgid "Archived" msgstr "" #: lib/pychess/ic/ICLounge.py:848 #, python-format msgid "Active seeks: %d" msgstr "" #: lib/pychess/ic/ICLounge.py:897 #, python-format msgid "" " would like to resume your adjourned %(time)s %(gametype)s " "game." msgstr "" #: lib/pychess/ic/ICLounge.py:902 #, python-format msgid "" " challenges you to a %(time)s %(rated)s %(gametype)s game" msgstr "" #: lib/pychess/ic/ICLounge.py:907 #, python-format msgid " where %(player)s plays %(color)s." msgstr "" #: lib/pychess/ic/ICLounge.py:924 lib/pychess/Players/Human.py:251 msgid "Decline" msgstr "" #: lib/pychess/ic/ICLounge.py:1065 msgid " min" msgstr "" #: lib/pychess/ic/ICLounge.py:1137 msgid "Status" msgstr "" #: lib/pychess/ic/ICLounge.py:1203 lib/pychess/ic/ICLounge.py:1233 #, python-format msgid "Players: %d" msgstr "" #: lib/pychess/ic/ICLounge.py:1469 #, python-format msgid "Games running: %d" msgstr "" #: lib/pychess/ic/ICLounge.py:1559 msgid "Date/Time" msgstr "" #: lib/pychess/ic/ICLounge.py:1614 #, python-format msgid "" " with whom you have an adjourned %(timecontrol)s %(gametype)s " "game is online." msgstr "" #: lib/pychess/ic/ICLounge.py:1635 msgid "Request Continuation" msgstr "" #: lib/pychess/ic/ICLounge.py:1637 msgid "Examine Adjourned Game" msgstr "" #: lib/pychess/ic/ICLounge.py:1965 msgid "" "The chain button is disabled because you are logged in as a guest. Guests " "can't establish ratings, and the chain button's state has no effect when " "there is no rating to which to tie \"Opponent Strength\" to" msgstr "" #: lib/pychess/ic/ICLounge.py:2006 msgid "Challenge: " msgstr "" #: lib/pychess/ic/ICLounge.py:2044 msgid "If set you can refuse players accepting your seek" msgstr "" #: lib/pychess/ic/ICLounge.py:2048 lib/pychess/ic/ICLounge.py:2051 msgid "This option is not applicable because you're challenging a player" msgstr "" #: lib/pychess/ic/ICLounge.py:2064 msgid "Edit Seek: " msgstr "" #: lib/pychess/ic/ICLounge.py:2095 #, python-format msgid "%(minutes)d min + %(gain)d sec/move" msgstr "" #: lib/pychess/ic/ICLounge.py:2116 msgid "Manual" msgstr "" #: lib/pychess/ic/ICLounge.py:2256 msgid "Any strength" msgstr "" #: lib/pychess/ic/ICLounge.py:2308 msgid "You can't play rated games because you are logged in as a guest" msgstr "" #: lib/pychess/ic/ICLounge.py:2312 msgid "You can't play rated games because \"Untimed\" is checked, " msgstr "" #: lib/pychess/ic/ICLounge.py:2313 msgid "and on FICS, untimed games can't be rated" msgstr "" #: lib/pychess/ic/ICLounge.py:2317 msgid "This option is not available because you're challenging a guest, " msgstr "" #: lib/pychess/ic/ICLounge.py:2318 msgid "and guests can't play rated games" msgstr "" #: lib/pychess/ic/ICLounge.py:2332 lib/pychess/Variants/shuffle.py:16 #: lib/pychess/widgets/newGameDialog.py:266 msgid "Shuffle" msgstr "" #: lib/pychess/ic/ICLounge.py:2333 lib/pychess/widgets/newGameDialog.py:267 msgid "Other (standard rules)" msgstr "" #: lib/pychess/ic/ICLounge.py:2334 lib/pychess/widgets/newGameDialog.py:268 msgid "Other (non standard rules)" msgstr "" #: lib/pychess/ic/ICLounge.py:2421 msgid "You can't select a variant because \"Untimed\" is checked, " msgstr "" #: lib/pychess/ic/ICLounge.py:2422 msgid "and on FICS, untimed games have to be normal chess rules" msgstr "" #: lib/pychess/ic/ICLounge.py:2454 msgid "Change Tolerance" msgstr "" #: lib/pychess/ic/__init__.py:102 msgid "Examined" msgstr "" #: lib/pychess/ic/__init__.py:103 msgid "Other" msgstr "" #: lib/pychess/ic/__init__.py:182 msgid "Administrator" msgstr "" #: lib/pychess/ic/__init__.py:182 msgid "Blindfold Account" msgstr "" #: lib/pychess/ic/__init__.py:182 msgid "Computer" msgstr "" #: lib/pychess/ic/__init__.py:183 msgid "Team Account" msgstr "" #: lib/pychess/ic/__init__.py:183 msgid "Unregistered" msgstr "" #: lib/pychess/ic/__init__.py:183 msgid "Chess Advisor" msgstr "" #: lib/pychess/ic/__init__.py:184 msgid "Service Representative" msgstr "" #: lib/pychess/ic/__init__.py:184 msgid "Tournament Director" msgstr "" #: lib/pychess/ic/__init__.py:184 msgid "Mamer Manager" msgstr "" #: lib/pychess/ic/__init__.py:185 msgid "Grand Master" msgstr "" #: lib/pychess/ic/__init__.py:185 msgid "International Master" msgstr "" #: lib/pychess/ic/__init__.py:185 msgid "FIDE Master" msgstr "" #: lib/pychess/ic/__init__.py:186 msgid "Woman Grand Master" msgstr "" #: lib/pychess/ic/__init__.py:186 msgid "Woman International Master" msgstr "" #: lib/pychess/ic/__init__.py:186 msgid "Woman FIDE Master" msgstr "" #: lib/pychess/ic/__init__.py:187 msgid "Dummy Account" msgstr "" #: lib/pychess/ic/__init__.py:191 msgid "*" msgstr "" #: lib/pychess/ic/__init__.py:191 lib/pychess/Utils/repr.py:14 msgid "B" msgstr "S" #: lib/pychess/ic/__init__.py:191 msgid "C" msgstr "" #: lib/pychess/ic/__init__.py:192 msgid "T" msgstr "" #: lib/pychess/ic/__init__.py:192 msgid "U" msgstr "" #: lib/pychess/ic/__init__.py:192 msgid "CA" msgstr "" #: lib/pychess/ic/__init__.py:193 msgid "SR" msgstr "" #: lib/pychess/ic/__init__.py:193 msgid "TD" msgstr "" #: lib/pychess/ic/__init__.py:193 msgid "TM" msgstr "" #: lib/pychess/ic/__init__.py:194 msgid "GM" msgstr "" #: lib/pychess/ic/__init__.py:194 msgid "IM" msgstr "" #: lib/pychess/ic/__init__.py:194 msgid "FM" msgstr "" #: lib/pychess/ic/__init__.py:195 msgid "WGM" msgstr "" #: lib/pychess/ic/__init__.py:195 msgid "WIM" msgstr "" #: lib/pychess/ic/__init__.py:195 msgid "WFM" msgstr "" #: lib/pychess/ic/__init__.py:195 msgid "D" msgstr "" #: lib/pychess/ic/__init__.py:195 msgid "H" msgstr "" #: lib/pychess/ic/__init__.py:195 msgid "CM" msgstr "" #: lib/pychess/ic/__init__.py:195 msgid "FA" msgstr "" #: lib/pychess/ic/__init__.py:195 msgid "NM" msgstr "" #: lib/pychess/Players/CECPEngine.py:857 #, python-format msgid "The engine %s reports an error:" msgstr "" #: lib/pychess/Players/Human.py:20 msgid "Your opponent has offered you a draw." msgstr "" #: lib/pychess/Players/Human.py:21 msgid "" "Your opponent has offered you a draw. If you accept this offer, the game " "will end with a score of 1/2 - 1/2." msgstr "" #: lib/pychess/Players/Human.py:23 msgid "Your opponent wants to abort the game." msgstr "" #: lib/pychess/Players/Human.py:24 msgid "" "Your opponent has asked that the game be aborted. If you accept this offer, " "the game will end with no rating change." msgstr "" #: lib/pychess/Players/Human.py:26 msgid "Your opponent wants to adjourn the game." msgstr "" #: lib/pychess/Players/Human.py:27 msgid "" "Your opponent has asked that the game be adjourned. If you accept this " "offer, the game will be adjourned and you can resume it later (when your " "opponent is online and both players agree to resume)." msgstr "" #: lib/pychess/Players/Human.py:29 #, python-format msgid "Your opponent wants to undo %s move(s)." msgstr "" #: lib/pychess/Players/Human.py:30 #, python-format msgid "" "Your opponent has asked that the last %s move(s) be undone. If you accept " "this offer, the game will continue from the earlier position." msgstr "" #: lib/pychess/Players/Human.py:32 msgid "Your opponent wants to pause the game." msgstr "" #: lib/pychess/Players/Human.py:33 msgid "" "Your opponent has asked that the game be paused. If you accept this offer, " "the game clock will be paused until both players agree to resume the game." msgstr "" #: lib/pychess/Players/Human.py:35 msgid "Your opponent wants to resume the game." msgstr "" #: lib/pychess/Players/Human.py:36 msgid "" "Your opponent has asked that the game be resumed. If you accept this offer, " "the game clock will continue from where it was paused." msgstr "" #: lib/pychess/Players/Human.py:40 msgid "The resignation" msgstr "" #: lib/pychess/Players/Human.py:41 msgid "The flag call" msgstr "" #: lib/pychess/Players/Human.py:42 msgid "The draw offer" msgstr "" #: lib/pychess/Players/Human.py:43 msgid "The abort offer" msgstr "" #: lib/pychess/Players/Human.py:44 msgid "The adjourn offer" msgstr "" #: lib/pychess/Players/Human.py:45 msgid "The pause offer" msgstr "" #: lib/pychess/Players/Human.py:46 msgid "The resume offer" msgstr "" #: lib/pychess/Players/Human.py:47 msgid "The offer to switch sides" msgstr "" #: lib/pychess/Players/Human.py:48 msgid "The takeback offer" msgstr "" #: lib/pychess/Players/Human.py:52 msgid "resign" msgstr "" #: lib/pychess/Players/Human.py:53 msgid "call your opponents flag" msgstr "" #: lib/pychess/Players/Human.py:54 msgid "offer a draw" msgstr "" #: lib/pychess/Players/Human.py:55 msgid "offer an abort" msgstr "" #: lib/pychess/Players/Human.py:56 msgid "offer to adjourn" msgstr "" #: lib/pychess/Players/Human.py:57 msgid "offer a pause" msgstr "" #: lib/pychess/Players/Human.py:58 msgid "offer to resume" msgstr "" #: lib/pychess/Players/Human.py:59 msgid "offer to switch sides" msgstr "" #: lib/pychess/Players/Human.py:60 msgid "offer a takeback" msgstr "" #: lib/pychess/Players/Human.py:61 msgid "ask your opponent to move" msgstr "" #: lib/pychess/Players/Human.py:66 msgid "Your opponent is not out of time." msgstr "Časový limit oponenta ešte nevypršal." #: lib/pychess/Players/Human.py:68 msgid "The clock hasn't been started yet." msgstr "" #: lib/pychess/Players/Human.py:70 msgid "You can't switch colors during the game." msgstr "" #: lib/pychess/Players/Human.py:72 msgid "You have tried to undo too many moves." msgstr "" #: lib/pychess/Players/Human.py:180 msgid "Your opponent asks you to hurry!" msgstr "Váš oponent vás žiada aby ste sa ponáhľali!" #: lib/pychess/Players/Human.py:181 msgid "" "Generally this means nothing, as the game is time-based, but if you want to " "please your opponent, perhaps you should get going." msgstr "" #: lib/pychess/Players/Human.py:259 #, python-format msgid "%s was declined by your opponent" msgstr "%s bolo odmietnuté súperom" #: lib/pychess/Players/Human.py:260 #, python-format msgid "Resend %s?" msgstr "" #: lib/pychess/Players/Human.py:267 msgid "Resend" msgstr "" #: lib/pychess/Players/Human.py:275 #, python-format msgid "%s was withdrawn by your opponent" msgstr "%s bolo odvolané oponentom" #: lib/pychess/Players/Human.py:276 msgid "Your opponent seems to have changed their mind." msgstr "" #: lib/pychess/Players/Human.py:290 #, python-format msgid "Unable to accept %s" msgstr "Nie je možné prijať %s" #: lib/pychess/Players/Human.py:291 msgid "Probably because it has been withdrawn." msgstr "" #: lib/pychess/Players/Human.py:298 #, python-format msgid "%s returns an error" msgstr "%s vracia chybovú správu" #: lib/pychess/Savers/chessalpha2.py:12 msgid "Chess Alpha 2 Diagram" msgstr "" #: lib/pychess/Savers/chesspastebin.py:39 msgid "Game shared at " msgstr "" #: lib/pychess/Savers/chesspastebin.py:41 msgid "(Link is available on clipboard.)" msgstr "" #: lib/pychess/Savers/database.py:19 msgid "PyChess database" msgstr "" #: lib/pychess/Savers/epd.py:12 msgid "Chess Position" msgstr "Šachová pozícia" #: lib/pychess/Savers/fen.py:12 msgid "Simple Chess Position" msgstr "Jednoduchá šachová pozícia" #: lib/pychess/Savers/fen.py:44 lib/pychess/Savers/pgn.py:329 msgid "The game can't be loaded, because of an error parsing FEN" msgstr "" #: lib/pychess/Savers/pgnbase.py:100 #, python-format msgid "" "The game can't be read to end, because of an error parsing move %(moveno)s " "'%(notation)s'." msgstr "" #: lib/pychess/Savers/pgnbase.py:102 #, python-format msgid "The move failed because %s." msgstr "" #: lib/pychess/Savers/pgnbase.py:110 #, python-format msgid "Error parsing move %(moveno)s %(mstr)s" msgstr "" #: lib/pychess/Savers/pgn.py:28 msgid "Chess Game" msgstr "Šachová hra" #: lib/pychess/Savers/pgn.py:362 msgid "Invalid move." msgstr "" #: lib/pychess/Savers/png.py:15 msgid "Png image" msgstr "" #: lib/pychess/System/ping.py:31 msgid "Destination Host Unreachable" msgstr "" #: lib/pychess/System/ping.py:74 msgid "Died" msgstr "" #: lib/pychess/Utils/GameModel.py:147 msgid "Local Event" msgstr "Lokálna udalosť" #: lib/pychess/Utils/GameModel.py:148 msgid "Local Site" msgstr "Lokálne miesto" #: lib/pychess/Utils/repr.py:12 msgid "Pawn" msgstr "" #: lib/pychess/Utils/repr.py:14 msgid "P" msgstr "P" #: lib/pychess/Utils/repr.py:14 msgid "N" msgstr "J" #: lib/pychess/Utils/repr.py:14 msgid "R" msgstr "V" #: lib/pychess/Utils/repr.py:14 msgid "Q" msgstr "D" #: lib/pychess/Utils/repr.py:14 msgid "K" msgstr "K" #: lib/pychess/Utils/repr.py:17 msgid "The game ended in a draw" msgstr "Hra sa skončila remízou" #: lib/pychess/Utils/repr.py:18 #, python-format msgid "%(white)s won the game" msgstr "" #: lib/pychess/Utils/repr.py:19 #, python-format msgid "%(black)s won the game" msgstr "" #: lib/pychess/Utils/repr.py:20 msgid "The game has been killed" msgstr "Hra bola násilne ukončená" #: lib/pychess/Utils/repr.py:21 msgid "The game has been adjourned" msgstr "Hra bola odložená" #: lib/pychess/Utils/repr.py:22 msgid "The game has been aborted" msgstr "Hra bola ukončená" #: lib/pychess/Utils/repr.py:26 msgid "Because neither player has sufficient material to mate" msgstr "" #: lib/pychess/Utils/repr.py:27 msgid "Because the same position was repeated three times in a row" msgstr "" #: lib/pychess/Utils/repr.py:28 msgid "Because the last 50 moves brought nothing new" msgstr "" #: lib/pychess/Utils/repr.py:29 msgid "Because both players ran out of time" msgstr "" #: lib/pychess/Utils/repr.py:30 #, python-format msgid "Because %(mover)s stalemated" msgstr "" #: lib/pychess/Utils/repr.py:31 msgid "Because both players agreed to a draw" msgstr "" #: lib/pychess/Utils/repr.py:32 lib/pychess/Utils/repr.py:42 msgid "Because of adjudication by an admin" msgstr "" #: lib/pychess/Utils/repr.py:33 msgid "Because the game exceed the max length" msgstr "" #: lib/pychess/Utils/repr.py:34 #, python-format msgid "" "Because %(white)s ran out of time and %(black)s has insufficient material to" " mate" msgstr "" #: lib/pychess/Utils/repr.py:35 #, python-format msgid "" "Because %(black)s ran out of time and %(white)s has insufficient material to" " mate" msgstr "" #: lib/pychess/Utils/repr.py:36 msgid "Because both players have the same amount of pieces" msgstr "" #: lib/pychess/Utils/repr.py:38 #, python-format msgid "Because %(loser)s resigned" msgstr "" #: lib/pychess/Utils/repr.py:39 #, python-format msgid "Because %(loser)s ran out of time" msgstr "" #: lib/pychess/Utils/repr.py:40 #, python-format msgid "Because %(loser)s was checkmated" msgstr "" #: lib/pychess/Utils/repr.py:41 #, python-format msgid "Because %(loser)s disconnected" msgstr "" #: lib/pychess/Utils/repr.py:43 #, python-format msgid "Because %(winner)s has fewer pieces" msgstr "" #: lib/pychess/Utils/repr.py:44 #, python-format msgid "Because %(winner)s lost all pieces" msgstr "" #: lib/pychess/Utils/repr.py:45 #, python-format msgid "Because %(loser)s king exploded" msgstr "" #: lib/pychess/Utils/repr.py:46 #, python-format msgid "Because %(winner)s king reached the center" msgstr "" #: lib/pychess/Utils/repr.py:47 #, python-format msgid "Because %(winner)s was giving check 3 times" msgstr "" #: lib/pychess/Utils/repr.py:49 msgid "Because a player lost connection" msgstr "" #: lib/pychess/Utils/repr.py:50 msgid "Because both players agreed to an adjournment" msgstr "" #: lib/pychess/Utils/repr.py:51 msgid "Because the server was shut down" msgstr "" #: lib/pychess/Utils/repr.py:52 msgid "" "Because a player lost connection and the other player requested adjournment" msgstr "" #: lib/pychess/Utils/repr.py:53 #, python-format msgid "" "Because %(black)s lost connection to the server and %(white)s requested " "adjournment" msgstr "" #: lib/pychess/Utils/repr.py:54 #, python-format msgid "" "Because %(white)s lost connection to the server and %(black)s requested " "adjournment" msgstr "" #: lib/pychess/Utils/repr.py:55 #, python-format msgid "Because %(white)s lost connection to the server" msgstr "" #: lib/pychess/Utils/repr.py:56 #, python-format msgid "Because %(black)s lost connection to the server" msgstr "" #: lib/pychess/Utils/repr.py:58 msgid "Because of adjudication by an admin. No rating changes have occurred." msgstr "" #: lib/pychess/Utils/repr.py:59 msgid "" "Because both players agreed to abort the game. No rating changes have " "occurred." msgstr "" #: lib/pychess/Utils/repr.py:60 msgid "Because of courtesy by a player. No rating changes have occurred." msgstr "" #: lib/pychess/Utils/repr.py:61 msgid "" "Because a player aborted the game. Either player can abort the game without " "the other's consent before the second move. No rating changes have occurred." msgstr "" #: lib/pychess/Utils/repr.py:62 msgid "" "Because a player disconnected and there are too few moves to warrant " "adjournment. No rating changes have occurred." msgstr "" #: lib/pychess/Utils/repr.py:63 msgid "Because the server was shut down. No rating changes have occurred." msgstr "" #: lib/pychess/Utils/repr.py:65 #, python-format msgid "Because the %(white)s engine died" msgstr "" #: lib/pychess/Utils/repr.py:66 #, python-format msgid "Because the %(black)s engine died" msgstr "" #: lib/pychess/Utils/repr.py:67 msgid "Because the connection to the server was lost" msgstr "" #: lib/pychess/Utils/repr.py:68 msgid "The reason is unknown" msgstr "" #: lib/pychess/Utils/TimeModel.py:229 msgid "min" msgstr "" #: lib/pychess/Utils/TimeModel.py:231 msgid "sec" msgstr "" #: lib/pychess/Variants/asean.py:12 msgid "" "ASEAN: http://www.ncf-" "phil.org/downloadables/2014/May/Asean_chess/Laws_of_ASEAN_Chess_2011_Nov_26.doc" msgstr "" #: lib/pychess/Variants/asean.py:13 msgid "ASEAN" msgstr "" #: lib/pychess/Variants/asean.py:33 msgid "Makruk: http://en.wikipedia.org/wiki/Makruk" msgstr "" #: lib/pychess/Variants/asean.py:34 msgid "Makruk" msgstr "" #: lib/pychess/Variants/asean.py:60 msgid "Cambodian: http://www.khmerinstitute.org/culture/ok.html" msgstr "" #: lib/pychess/Variants/asean.py:61 msgid "Cambodian" msgstr "" #: lib/pychess/Variants/asean.py:86 msgid "" "Ai-Wok: http://www.open-" "aurec.com/wbforum/viewtopic.php?p=199364&sid=20963a1de2c164050de019e5ed6bf7c4#p199364" msgstr "" #: lib/pychess/Variants/asean.py:87 msgid "Ai-Wok" msgstr "" #: lib/pychess/Variants/asean.py:111 msgid "Sittuyin: http://en.wikipedia.org/wiki/Sittuyin" msgstr "" #: lib/pychess/Variants/asean.py:112 msgid "Sittuyin" msgstr "" #: lib/pychess/Variants/asymmetricrandom.py:12 msgid "" "FICS wild/4: http://www.freechess.org/Help/HelpFiles/wild.html\n" "* Randomly chosen pieces (two queens or three rooks possible)\n" "* Exactly one king of each color\n" "* Pieces placed randomly behind the pawns, SUBJECT TO THE CONSTRAINT THAT THE BISHOPS ARE BALANCED\n" "* No castling\n" "* Black's arrangement DOES NOT mirrors white's" msgstr "" #: lib/pychess/Variants/asymmetricrandom.py:18 msgid "Asymmetric Random" msgstr "" #: lib/pychess/Variants/atomic.py:14 msgid "FICS atomic: http://www.freechess.org/Help/HelpFiles/atomic.html" msgstr "" #: lib/pychess/Variants/blindfold.py:7 msgid "" "Classic chess rules with hidden figurines\n" "http://en.wikipedia.org/wiki/Blindfold_chess" msgstr "" #: lib/pychess/Variants/blindfold.py:9 #: lib/pychess/widgets/newGameDialog.py:264 msgid "Blindfold" msgstr "" #: lib/pychess/Variants/blindfold.py:18 msgid "" "Classic chess rules with hidden pawns\n" "http://en.wikipedia.org/wiki/Blindfold_chess" msgstr "" #: lib/pychess/Variants/blindfold.py:20 msgid "Hidden pawns" msgstr "" #: lib/pychess/Variants/blindfold.py:29 msgid "" "Classic chess rules with hidden pieces\n" "http://en.wikipedia.org/wiki/Blindfold_chess" msgstr "" #: lib/pychess/Variants/blindfold.py:31 msgid "Hidden pieces" msgstr "" #: lib/pychess/Variants/blindfold.py:40 msgid "" "Classic chess rules with all pieces white\n" "http://en.wikipedia.org/wiki/Blindfold_chess" msgstr "" #: lib/pychess/Variants/blindfold.py:42 msgid "All white" msgstr "" #: lib/pychess/Variants/bughouse.py:8 msgid "FICS bughouse: http://www.freechess.org/Help/HelpFiles/bughouse.html" msgstr "" #: lib/pychess/Variants/corner.py:12 msgid "" "http://brainking.com/en/GameRules?tp=2\n" "* Placement of the pieces on the 1st and 8th row are randomized\n" "* The king is in the right hand corner\n" "* Bishops must start on opposite color squares\n" "* Black's starting position is obtained by rotating white's position 180 degrees around the board's center\n" "* No castling" msgstr "" #: lib/pychess/Variants/corner.py:18 msgid "Corner" msgstr "" #: lib/pychess/Variants/crazyhouse.py:8 msgid "" "FICS crazyhouse: http://www.freechess.org/Help/HelpFiles/crazyhouse.html" msgstr "" #: lib/pychess/Variants/euroshogi.py:9 msgid "EuroShogi: http://en.wikipedia.org/wiki/EuroShogi" msgstr "" #: lib/pychess/Variants/euroshogi.py:10 msgid "EuroShogi" msgstr "" #: lib/pychess/Variants/fischerandom.py:18 msgid "" "http://en.wikipedia.org/wiki/Chess960\n" "FICS wild/fr: http://www.freechess.org/Help/HelpFiles/wild.html" msgstr "" #: lib/pychess/Variants/fischerandom.py:20 msgid "Fischer Random" msgstr "" #: lib/pychess/Variants/kingofthehill.py:8 msgid "" "Bringing your king legally to the center (e4, d4, e5, d5) instantly wins the game!\n" "Normal rules apply in other cases and checkmate also ends the game." msgstr "" #: lib/pychess/Variants/kingofthehill.py:10 msgid "King of the hill" msgstr "" #: lib/pychess/Variants/knightodds.py:8 msgid "One player starts with one less knight piece" msgstr "" #: lib/pychess/Variants/knightodds.py:9 msgid "Knight odds" msgstr "" #: lib/pychess/Variants/losers.py:8 msgid "FICS losers: http://www.freechess.org/Help/HelpFiles/losers_chess.html" msgstr "" #: lib/pychess/Variants/normal.py:4 msgid "" "Classic chess rules\n" "http://en.wikipedia.org/wiki/Chess" msgstr "" #: lib/pychess/Variants/normal.py:6 lib/pychess/widgets/newGameDialog.py:157 msgid "Normal" msgstr "Normálna hra" #: lib/pychess/Variants/pawnodds.py:8 msgid "One player starts with one less pawn piece" msgstr "" #: lib/pychess/Variants/pawnodds.py:9 msgid "Pawn odds" msgstr "" #: lib/pychess/Variants/pawnspassed.py:11 msgid "" "FICS wild/8a: http://www.freechess.org/Help/HelpFiles/wild.html\n" "White pawns start on 5th rank and black pawns on the 4th rank" msgstr "" #: lib/pychess/Variants/pawnspassed.py:13 msgid "Pawns Passed" msgstr "" #: lib/pychess/Variants/pawnspushed.py:10 msgid "" "FICS wild/8: http://www.freechess.org/Help/HelpFiles/wild.html\n" "Pawns start on 4th and 5th ranks rather than 2nd and 7th" msgstr "" #: lib/pychess/Variants/pawnspushed.py:12 msgid "Pawns Pushed" msgstr "" #: lib/pychess/Variants/queenodds.py:8 msgid "One player starts with one less queen piece" msgstr "" #: lib/pychess/Variants/queenodds.py:9 msgid "Queen odds" msgstr "" #: lib/pychess/Variants/randomchess.py:11 msgid "" "FICS wild/3: http://www.freechess.org/Help/HelpFiles/wild.html\n" "* Randomly chosen pieces (two queens or three rooks possible)\n" "* Exactly one king of each color\n" "* Pieces placed randomly behind the pawns\n" "* No castling\n" "* Black's arrangement mirrors white's" msgstr "" #: lib/pychess/Variants/randomchess.py:17 #: lib/pychess/widgets/TaskerManager.py:155 msgid "Random" msgstr "" #: lib/pychess/Variants/rookodds.py:8 msgid "One player starts with one less rook piece" msgstr "" #: lib/pychess/Variants/rookodds.py:9 msgid "Rook odds" msgstr "" #: lib/pychess/Variants/shuffle.py:11 msgid "" "xboard nocastle: http://home.hccnet.nl/h.g.muller/engine-intf.html#8\n" "FICS wild/2: http://www.freechess.org/Help/HelpFiles/wild.html\n" "* Random arrangement of the pieces behind the pawns\n" "* No castling\n" "* Black's arrangement mirrors white's" msgstr "" #: lib/pychess/Variants/suicide.py:11 msgid "" "FICS suicide: http://www.freechess.org/Help/HelpFiles/suicide_chess.html" msgstr "" #: lib/pychess/Variants/theban.py:10 msgid "" "Variant developed by Kai Laskos: " "http://talkchess.com/forum/viewtopic.php?t=40990" msgstr "" #: lib/pychess/Variants/theban.py:11 msgid "Theban" msgstr "" #: lib/pychess/Variants/threecheck.py:10 msgid "Win by giving check 3 times" msgstr "" #: lib/pychess/Variants/threecheck.py:11 msgid "Three-check" msgstr "" #: lib/pychess/Variants/upsidedown.py:10 msgid "" "FICS wild/5: http://www.freechess.org/Help/HelpFiles/wild.html\n" "http://en.wikipedia.org/wiki/Chess_variant#Chess_with_different_starting_positions\n" "Pawns start on their 7th rank rather than their 2nd rank!" msgstr "" #: lib/pychess/Variants/upsidedown.py:13 msgid "Upside Down" msgstr "" #: lib/pychess/Variants/wildcastle.py:10 msgid "" "xboard wildcastle http://home.hccnet.nl/h.g.muller/engine-intf.html#8\n" "FICS wild/0: http://www.freechess.org/Help/HelpFiles/wild.html\n" "* White has the typical set-up at the start.\n" "* Black's pieces are the same, except that the King and Queen are reversed,\n" "* so they are not on the same files as White's King and Queen.\n" "* Castling is done similarly to normal chess:\n" "* o-o-o indicates long castling and o-o short castling." msgstr "" #: lib/pychess/Variants/wildcastle.py:17 msgid "Wildcastle" msgstr "" #: lib/pychess/Variants/wildcastleshuffle.py:11 msgid "" "xboard wildcastle http://home.hccnet.nl/h.g.muller/engine-intf.html#8\n" "FICS wild/1: http://www.freechess.org/Help/HelpFiles/wild.html\n" "* In this variant both sides have the same set of pieces as in normal chess.\n" "* The white king starts on d1 or e1 and the black king starts on d8 or e8,\n" "* and the rooks are in their usual positions.\n" "* Bishops are always on opposite colors.\n" "* Subject to these constraints the position of the pieces on their first ranks is random.\n" "* Castling is done similarly to normal chess:\n" "* o-o-o indicates long castling and o-o short castling." msgstr "" #: lib/pychess/Variants/wildcastleshuffle.py:20 msgid "Wildcastle shuffle" msgstr "" #: lib/pychess/widgets/analyzegameDialog.py:85 msgid "Game analyzing in progress..." msgstr "" #: lib/pychess/widgets/analyzegameDialog.py:86 msgid "Do you want to abort it?" msgstr "" #: lib/pychess/widgets/analyzegameDialog.py:95 #: lib/pychess/widgets/gamewidget.py:202 lib/pychess/widgets/gamewidget.py:320 msgid "Abort" msgstr "" #: lib/pychess/widgets/ChatView.py:125 msgid "Observers" msgstr "" #: lib/pychess/widgets/ChatWindow.py:222 msgid "You have opened no conversations yet" msgstr "" #: lib/pychess/widgets/ChatWindow.py:254 msgid "Only registered users may talk to this channel" msgstr "" #: lib/pychess/widgets/ChatWindow.py:312 msgid "No conversation's selected" msgstr "" #: lib/pychess/widgets/ChatWindow.py:350 msgid "Loading player data" msgstr "" #: lib/pychess/widgets/ChatWindow.py:400 msgid "Receiving list of players" msgstr "" #: lib/pychess/widgets/ChatWindow.py:518 msgid "Friends" msgstr "" #: lib/pychess/widgets/ChatWindow.py:529 msgid "Admin" msgstr "" #: lib/pychess/widgets/ChatWindow.py:540 msgid "More channels" msgstr "" #: lib/pychess/widgets/ChatWindow.py:548 msgid "More players" msgstr "" #: lib/pychess/widgets/ChatWindow.py:558 msgid "Computers" msgstr "" #: lib/pychess/widgets/ChatWindow.py:568 msgid "BlindFold" msgstr "" #: lib/pychess/widgets/ChatWindow.py:578 msgid "Guests" msgstr "" #: lib/pychess/widgets/ChatWindow.py:805 msgid "Conversations" msgstr "" #: lib/pychess/widgets/ChatWindow.py:807 msgid "Conversation info" msgstr "" #: lib/pychess/widgets/enginesDialog.py:152 msgid "Select engine" msgstr "" #: lib/pychess/widgets/enginesDialog.py:156 msgid "Executable files" msgstr "" #: lib/pychess/widgets/enginesDialog.py:176 #: lib/pychess/widgets/enginesDialog.py:210 #: lib/pychess/widgets/enginesDialog.py:235 #, python-format msgid "Unable to add %s" msgstr "" #: lib/pychess/widgets/enginesDialog.py:177 msgid "wine not installed" msgstr "" #: lib/pychess/widgets/enginesDialog.py:211 #: lib/pychess/widgets/enginesDialog.py:236 msgid "There is something wrong with this executable" msgstr "" #: lib/pychess/widgets/enginesDialog.py:266 msgid "Select working directory" msgstr "" #: lib/pychess/widgets/gamenanny.py:115 #, python-format msgid " invalid engine move: %s" msgstr "" #: lib/pychess/widgets/gamenanny.py:134 msgid "Offer Rematch" msgstr "" #: lib/pychess/widgets/gamenanny.py:136 lib/pychess/widgets/gamenanny.py:147 #, python-format msgid "Observe %s" msgstr "" #: lib/pychess/widgets/gamenanny.py:168 msgid "Play Rematch" msgstr "" #: lib/pychess/widgets/gamenanny.py:171 msgid "Undo one move" msgstr "" #: lib/pychess/widgets/gamenanny.py:173 msgid "Undo two moves" msgstr "" #: lib/pychess/widgets/gamenanny.py:203 msgid "The game is paused" msgstr "" #: lib/pychess/widgets/gamenanny.py:221 lib/pychess/widgets/gamenanny.py:222 msgid "Loaded game" msgstr "Načítaná hra" #: lib/pychess/widgets/gamenanny.py:228 msgid "Saved game" msgstr "Uložená hra" #: lib/pychess/widgets/gamenanny.py:232 msgid "Analyzer started" msgstr "" #: lib/pychess/widgets/gamenanny.py:281 msgid "You sent an abort offer" msgstr "" #: lib/pychess/widgets/gamenanny.py:283 msgid "You sent an adjournment offer" msgstr "" #: lib/pychess/widgets/gamenanny.py:285 msgid "You sent a draw offer" msgstr "Odoslali ste ponuku na remízu" #: lib/pychess/widgets/gamenanny.py:287 msgid "You sent a pause offer" msgstr "" #: lib/pychess/widgets/gamenanny.py:289 msgid "You sent a resume offer" msgstr "" #: lib/pychess/widgets/gamenanny.py:291 msgid "You sent an undo offer" msgstr "" #: lib/pychess/widgets/gamenanny.py:293 msgid "You asked your opponent to move" msgstr "" #: lib/pychess/widgets/gamenanny.py:305 #, python-format msgid "Engine, %s, has died" msgstr "Počítač, %s, nečakane skončil" #: lib/pychess/widgets/gamenanny.py:306 msgid "" "PyChess has lost connection to the engine, probably because it has died.\n" "\n" "You can try to start a new game with the engine, or try to play against another one." msgstr "PyChess stratil spojenie so šachovým počítačom, pravdepodobne kvôli pádu.\n\nMôžete sa pokúsiť začať novú hru, alebo sa pokúste hrať znovú inú." #: lib/pychess/widgets/gamewidget.py:204 msgid "" "This game can be automatically aborted without rating loss because there has" " not yet been two moves made" msgstr "" #: lib/pychess/widgets/gamewidget.py:206 msgid "Offer Abort" msgstr "" #: lib/pychess/widgets/gamewidget.py:208 msgid "" "Your opponent must agree to abort the game because there has been two or " "more moves made" msgstr "" #: lib/pychess/widgets/gamewidget.py:226 msgid "This game can not be adjourned because one or both players are guests" msgstr "" #: lib/pychess/widgets/gamewidget.py:243 msgid "Claim Draw" msgstr "" #: lib/pychess/widgets/gamewidget.py:325 msgid "Pause" msgstr "" #: lib/pychess/widgets/gamewidget.py:326 msgid "Resume" msgstr "" #: lib/pychess/widgets/gamewidget.py:328 msgid "Offer Pause" msgstr "" #: lib/pychess/widgets/gamewidget.py:329 msgid "Offer Resume" msgstr "" #: lib/pychess/widgets/gamewidget.py:333 msgid "Undo" msgstr "" #: lib/pychess/widgets/gamewidget.py:335 msgid "Offer Undo" msgstr "" #: lib/pychess/widgets/gamewidget.py:550 msgid " has lagged for 30 seconds" msgstr "" #: lib/pychess/widgets/gamewidget.py:566 msgid " is lagging heavily but hasn't disconnected" msgstr "" #: lib/pychess/widgets/gamewidget.py:567 msgid "Continue to wait for opponent, or try to adjourn the game?" msgstr "" #: lib/pychess/widgets/gamewidget.py:575 msgid "Wait" msgstr "" #: lib/pychess/widgets/gamewidget.py:576 msgid "Adjourn" msgstr "" #: lib/pychess/widgets/gamewidget.py:648 msgid "Jump to initial position" msgstr "" #: lib/pychess/widgets/gamewidget.py:653 msgid "Step back one move" msgstr "" #: lib/pychess/widgets/gamewidget.py:658 msgid "Go back to the main line" msgstr "" #: lib/pychess/widgets/gamewidget.py:664 msgid "Step forward one move" msgstr "" #: lib/pychess/widgets/gamewidget.py:669 msgid "Jump to latest position" msgstr "" #: lib/pychess/widgets/gamewidget.py:903 msgid "PyChess was unable to load your panel settings" msgstr "" #: lib/pychess/widgets/gamewidget.py:904 msgid "" "Your panel settings have been reset. If this problem repeats, you should " "report it to the developers" msgstr "" #: lib/pychess/widgets/ionest.py:67 lib/pychess/widgets/newGameDialog.py:389 #: lib/pychess/widgets/TaskerManager.py:210 msgid "You" msgstr "" #: lib/pychess/widgets/ionest.py:70 lib/pychess/widgets/newGameDialog.py:390 #: lib/pychess/widgets/preferencesDialog.py:61 #: lib/pychess/widgets/TaskerManager.py:213 msgid "Guest" msgstr "Hosť" #: lib/pychess/widgets/ionest.py:93 msgid "Error loading game" msgstr "" #: lib/pychess/widgets/ionest.py:127 lib/pychess/widgets/newGameDialog.py:480 msgid "Open Game" msgstr "Otvoriť hru" #: lib/pychess/widgets/ionest.py:137 msgid "All Files" msgstr "Všetky súbory" #: lib/pychess/widgets/ionest.py:140 msgid "Detect type automatically" msgstr "Zistiť typ automaticky" #: lib/pychess/widgets/ionest.py:146 msgid "All Chess Files" msgstr "Všetky šachové súbory" #: lib/pychess/widgets/ionest.py:228 msgid "Save Game" msgstr "Uložiť hru" #: lib/pychess/widgets/ionest.py:228 msgid "Export position" msgstr "" #: lib/pychess/widgets/ionest.py:232 lib/pychess/widgets/ionest.py:360 msgid "vs." msgstr "" #: lib/pychess/widgets/ionest.py:249 #, python-format msgid "Unknown file type '%s'" msgstr "Neznámy typ súboru '%s'" #: lib/pychess/widgets/ionest.py:250 #, python-format msgid "" "Was unable to save '%(uri)s' as PyChess doesn't know the format " "'%(ending)s'." msgstr "" #: lib/pychess/widgets/ionest.py:266 #, python-format msgid "Unable to save file '%s'" msgstr "Nebolo možné uložiť súbor '%s'" #: lib/pychess/widgets/ionest.py:268 msgid "" "You don't have the necessary rights to save the file.\n" "Please ensure that you have given the right path and try again." msgstr "Nemáte dostatočné oprávnenia na uloženie súboru.\nProsím, uistite sa, že ste zadali správnu cestu a vyskúšajte znova." #: lib/pychess/widgets/ionest.py:276 msgid "_Replace" msgstr "_Nahradiť" #: lib/pychess/widgets/ionest.py:280 msgid "File exists" msgstr "Súbor existuje" #: lib/pychess/widgets/ionest.py:282 #, python-format msgid "" "A file named '%s' already exists. Would you like to replace " "it?" msgstr "Súbor s názvom '%s' už existuje. Chcete ho nahradiť?" #: lib/pychess/widgets/ionest.py:283 #, python-format msgid "" "The file already exists in '%s'. If you replace it, its content will be " "overwritten." msgstr "Súbor už existuje v '%s'. Ak ho nahradíte, jeho obsah bude prepísaný." #: lib/pychess/widgets/ionest.py:299 msgid "Could not save the file" msgstr "Nebolo možné uložiť súbor" #: lib/pychess/widgets/ionest.py:300 msgid "PyChess was not able to save the game" msgstr "PyChess nemohol uložiť hru" #: lib/pychess/widgets/ionest.py:301 #, python-format msgid "The error was: %s" msgstr "Vyskytla sa chyba: %s" #: lib/pychess/widgets/ionest.py:325 #, python-format msgid "There is %d game with unsaved moves." msgid_plural "There are %d games with unsaved moves." msgstr[0] "" msgstr[1] "" msgstr[2] "" #: lib/pychess/widgets/ionest.py:328 msgid "Save moves before closing?" msgstr "" #: lib/pychess/widgets/ionest.py:339 msgid "Unable to save to configured file. Save the games before closing?" msgstr "" #: lib/pychess/widgets/ionest.py:366 #, python-format msgid "_Save %d document" msgid_plural "_Save %d documents" msgstr[0] "" msgstr[1] "" msgstr[2] "" #: lib/pychess/widgets/ionest.py:412 msgid "Save the current game before you close it?" msgstr "" #: lib/pychess/widgets/ionest.py:420 msgid "" "Unable to save to configured file. Save the current game before you close " "it?" msgstr "" #: lib/pychess/widgets/ionest.py:434 msgid "" "It is not possible later to continue the game,\n" "if you don't save it." msgstr "Ak neuložíte hru,\nnebudete môcť neskôr pokračovať." #: lib/pychess/widgets/LogDialog.py:26 msgid "PyChess Information Window" msgstr "" #: lib/pychess/widgets/LogDialog.py:184 lib/pychess/widgets/LogDialog.py:188 msgid "of" msgstr "" #: lib/pychess/widgets/newGameDialog.py:84 #: lib/pychess/widgets/newGameDialog.py:85 msgid "Human Being" msgstr "Človek" #: lib/pychess/widgets/newGameDialog.py:155 msgid "Rapid" msgstr "" #: lib/pychess/widgets/newGameDialog.py:224 msgid "Minutes:" msgstr "Minúty:" #: lib/pychess/widgets/newGameDialog.py:228 msgid "Gain:" msgstr "Zisk:" #: lib/pychess/widgets/newGameDialog.py:241 #, python-format msgid "%(name)s %(minutes)d min + %(gain)d sec/move" msgstr "" #: lib/pychess/widgets/newGameDialog.py:244 #, python-format msgid "%(name)s %(minutes)d min %(gain)d sec/move" msgstr "" #: lib/pychess/widgets/newGameDialog.py:247 #, python-format msgid "%(name)s %(minutes)d min" msgstr "" #: lib/pychess/widgets/newGameDialog.py:265 msgid "Odds" msgstr "" #: lib/pychess/widgets/newGameDialog.py:269 msgid "Asian variants" msgstr "" #: lib/pychess/widgets/newGameDialog.py:301 msgid " chess" msgstr "" #: lib/pychess/widgets/newGameDialog.py:682 msgid "Type or paste PGN game or FEN positions here" msgstr "" #: lib/pychess/widgets/newGameDialog.py:725 msgid "Enter Game" msgstr "Vstúpiť do hry" #: lib/pychess/widgets/preferencesDialog.py:123 msgid "Select book file" msgstr "" #: lib/pychess/widgets/preferencesDialog.py:128 msgid "Opening books" msgstr "" #: lib/pychess/widgets/preferencesDialog.py:156 msgid "Select Gaviota TB path" msgstr "" #: lib/pychess/widgets/preferencesDialog.py:331 msgid "Open Sound File" msgstr "Otvoriť zvukový súbor" #: lib/pychess/widgets/preferencesDialog.py:341 msgid "Sound files" msgstr "" #: lib/pychess/widgets/preferencesDialog.py:485 msgid "Undescribed panel" msgstr "" #: lib/pychess/widgets/preferencesDialog.py:678 msgid "Select auto save path" msgstr "" #: lib/pychess/widgets/tipOfTheDay.py:51 msgid "" "You can start a new game by Game > New Game, in New Game " "window do you can choose Players, Time Control and Chess " "Variants." msgstr "" #: lib/pychess/widgets/tipOfTheDay.py:52 msgid "" "You can choose from 20 different difficulties to play against the computer." msgstr "" #: lib/pychess/widgets/tipOfTheDay.py:53 msgid "" "Chess Variants are like the pieces of the last line will be placed on the " "board." msgstr "" #: lib/pychess/widgets/tipOfTheDay.py:54 msgid "" "To save a game Game > Save Game As, give the filename and " "choose where you want to be saved. At the bottom choose extension type of " "the file, and Save." msgstr "" #: lib/pychess/widgets/tipOfTheDay.py:55 msgid "" "Do you know that you can call flag when the clock is with you, " "Actions > Call Flag." msgstr "" #: lib/pychess/widgets/tipOfTheDay.py:56 msgid "Pressing Ctrl+Z to offer opponent the possible rollback moves." msgstr "" #: lib/pychess/widgets/tipOfTheDay.py:57 msgid "" "To play on Fullscreen mode, just type F11. Coming back, F11 " "again." msgstr "" #: lib/pychess/widgets/tipOfTheDay.py:58 msgid "Hint mode analyzing your game, enable this type Ctrl+H." msgstr "" #: lib/pychess/widgets/tipOfTheDay.py:59 msgid "" "Spy mode analyzing the oponnent game, enable this type Ctrl+Y." msgstr "" #: lib/pychess/widgets/tipOfTheDay.py:60 msgid "" "You can play chess listening to the sounds of the game, for that, " "Settings > Preferences > Sound tab, enable Use " "sounds in PyChess and choose your preferred sounds." msgstr "" #: lib/pychess/widgets/tipOfTheDay.py:61 msgid "" "Do you know that you can help translate Pychess in your language, " "Help > Translate Pychess." msgstr "" #: lib/pychess/widgets/tipOfTheDay.py:62 msgid "" "Do you know that it is possible to finish a chess game in just 2 turns?" msgstr "" #: lib/pychess/widgets/tipOfTheDay.py:63 msgid "" "Do you know that the number of possible chess games exceeds the number of " "atoms in the Universe?" msgstr "" #: lib/pychess/ic/managers/ChatManager.py:184 msgid "Shout" msgstr "" #: lib/pychess/ic/managers/ChatManager.py:185 msgid "Chess Shout" msgstr "" #: lib/pychess/ic/managers/ChatManager.py:195 #, python-format msgid "Unofficial channel %d" msgstr "" #: lib/pychess/Utils/lutils/LBoard.py:152 #, python-format msgid "" "FEN needs 6 data fields. \n" "\n" "%s" msgstr "" #: lib/pychess/Utils/lutils/LBoard.py:154 #, python-format msgid "" "FEN needs at least 2 data fields in fenstr. \n" "\n" "%s" msgstr "" #: lib/pychess/Utils/lutils/LBoard.py:175 #, python-format msgid "" "Needs 7 slashes in piece placement field. \n" "\n" "%s" msgstr "" #: lib/pychess/Utils/lutils/LBoard.py:178 #, python-format msgid "" "Active color field must be one of w or b. \n" "\n" "%s" msgstr "" #: lib/pychess/Utils/lutils/LBoard.py:189 #, python-format msgid "" "Castling availability field is not legal. \n" "\n" "%s" msgstr "" #: lib/pychess/Utils/lutils/LBoard.py:192 #, python-format msgid "" "En passant cord is not legal. \n" "\n" "%s" msgstr "" #: lib/pychess/Utils/lutils/lmove.py:260 msgid "invalid promoted piece" msgstr "" #: lib/pychess/Utils/lutils/lmove.py:272 msgid "the move needs a piece and a cord" msgstr "" #: lib/pychess/Utils/lutils/lmove.py:306 lib/pychess/Utils/lutils/lmove.py:556 msgid "promotion move without promoted piece is incorrect" msgstr "" #: lib/pychess/Utils/lutils/lmove.py:312 #, python-format msgid "the captured cord (%s) is incorrect" msgstr "" #: lib/pychess/Utils/lutils/lmove.py:323 #, python-format msgid "the end cord (%s) is incorrect" msgstr "" #: lib/pychess/Utils/lutils/strateval.py:24 sidepanel/commentPanel.py:191 #: sidepanel/commentPanel.py:208 msgid "and" msgstr "" #: lib/pychess/Utils/lutils/strateval.py:43 msgid "draws" msgstr "remízuje" #: lib/pychess/Utils/lutils/strateval.py:45 msgid "mates" msgstr "dáva mat" #: lib/pychess/Utils/lutils/strateval.py:49 msgid "puts opponent in check" msgstr "dáva oponentovi šach" #: lib/pychess/Utils/lutils/strateval.py:73 msgid "improves king safety" msgstr "zvyšuje bezpečnosť kráľa" #: lib/pychess/Utils/lutils/strateval.py:75 msgid "slightly improves king safety" msgstr "jemne vylepšuje bezpečnosť kráľa" #: lib/pychess/Utils/lutils/strateval.py:108 msgid "moves a rook to an open file" msgstr "pohybuje vežou do otvoreného stĺpca" #: lib/pychess/Utils/lutils/strateval.py:109 msgid "moves an rook to a half-open file" msgstr "pohybuje vežou do polootvoreného stĺpca" #: lib/pychess/Utils/lutils/strateval.py:119 #: lib/pychess/Utils/lutils/strateval.py:121 #: lib/pychess/Utils/lutils/strateval.py:124 #: lib/pychess/Utils/lutils/strateval.py:126 #, python-format msgid "moves bishop into fianchetto: %s" msgstr "pohybuje strelcom do fianchetta: %s" #: lib/pychess/Utils/lutils/strateval.py:132 #, python-format msgid "promotes a Pawn to a %s" msgstr "premieňa pešiaka na %s" #: lib/pychess/Utils/lutils/strateval.py:135 msgid "castles" msgstr "robí rošádu" #: lib/pychess/Utils/lutils/strateval.py:158 msgid "takes back material" msgstr "vezme späť materiál" #: lib/pychess/Utils/lutils/strateval.py:162 #: lib/pychess/Utils/lutils/strateval.py:170 msgid "sacrifies material" msgstr "obetuje materiál" #: lib/pychess/Utils/lutils/strateval.py:164 msgid "exchanges material" msgstr "vymení materiál" #: lib/pychess/Utils/lutils/strateval.py:166 msgid "captures material" msgstr "zajme materiál" #: lib/pychess/Utils/lutils/strateval.py:291 #, python-format msgid "rescues a %s" msgstr "" #: lib/pychess/Utils/lutils/strateval.py:294 #, python-format msgid "threatens to win material by %s" msgstr "" #: lib/pychess/Utils/lutils/strateval.py:296 #, python-format msgid "increases the pressure on %s" msgstr "zvyšuje tlak na %s" #: lib/pychess/Utils/lutils/strateval.py:298 #, python-format msgid "defends %s" msgstr "obraňuje %s" #: lib/pychess/Utils/lutils/strateval.py:336 #, python-format msgid "pins an enemy %(oppiece)s on the %(piece)s at %(cord)s" msgstr "" #: lib/pychess/Utils/lutils/strateval.py:369 #, python-format msgid "White has a new piece in outpost: %s" msgstr "Biely hráč má novú figúrku na vysunutej pozícii: %s" #: lib/pychess/Utils/lutils/strateval.py:377 #, python-format msgid "Black has a new piece in outpost: %s" msgstr "Čierny hráč má novú figúrku na vysunutej pozícii: %s" #: lib/pychess/Utils/lutils/strateval.py:416 #, python-format msgid "%(color)s has a new passed pawn on %(cord)s" msgstr "" #: lib/pychess/Utils/lutils/strateval.py:470 msgid "half-open" msgstr "" #: lib/pychess/Utils/lutils/strateval.py:472 #, python-format msgid "in the %(x)s%(y)s file" msgstr "" #: lib/pychess/Utils/lutils/strateval.py:474 #, python-format msgid "in the %(x)s%(y)s files" msgstr "" #: lib/pychess/Utils/lutils/strateval.py:477 #, python-format msgid "%(color)s got a double pawn %(place)s" msgstr "" #: lib/pychess/Utils/lutils/strateval.py:478 #, python-format msgid "%(color)s got new double pawns %(place)s" msgstr "" #: lib/pychess/Utils/lutils/strateval.py:485 #, python-format msgid "%(color)s got an isolated pawn in the %(x)s file" msgid_plural "%(color)s got isolated pawns in the %(x)s files" msgstr[0] "" msgstr[1] "" msgstr[2] "" #: lib/pychess/Utils/lutils/strateval.py:492 #, python-format msgid "%s moves pawns into stonewall formation" msgstr "%s posúva pešiakov do formácie stonewall" #: lib/pychess/Utils/lutils/strateval.py:507 #: lib/pychess/Utils/lutils/strateval.py:514 #, python-format msgid "%s can no longer castle" msgstr "" #: lib/pychess/Utils/lutils/strateval.py:508 #: lib/pychess/Utils/lutils/strateval.py:515 #, python-format msgid "%s can no longer castle in queenside" msgstr "" #: lib/pychess/Utils/lutils/strateval.py:510 #: lib/pychess/Utils/lutils/strateval.py:517 #, python-format msgid "%s can no longer castle in kingside" msgstr "" #: lib/pychess/Utils/lutils/strateval.py:551 #, python-format msgid "%(opcolor)s has a new trapped bishop on %(cord)s" msgstr "" #: lib/pychess/Utils/lutils/strateval.py:573 #, python-format msgid "develops a pawn: %s" msgstr "" #: lib/pychess/Utils/lutils/strateval.py:574 #, python-format msgid "brings a pawn closer to the backrow: %s" msgstr "" #: lib/pychess/Utils/lutils/strateval.py:591 #, python-format msgid "brings a %(piece)s closer to enemy king: %(cord)s" msgstr "" #: lib/pychess/Utils/lutils/strateval.py:594 #, python-format msgid "develops a %(piece)s: %(cord)s" msgstr "" #: lib/pychess/Utils/lutils/strateval.py:612 #, python-format msgid "places a %(piece)s more active: %(cord)s" msgstr "" #: lib/pychess/Utils/lutils/strateval.py:638 msgid "White should do pawn storm in right" msgstr "" #: lib/pychess/Utils/lutils/strateval.py:640 msgid "Black should do pawn storm in left" msgstr "" #: lib/pychess/Utils/lutils/strateval.py:643 msgid "White should do pawn storm in left" msgstr "" #: lib/pychess/Utils/lutils/strateval.py:645 msgid "Black should do pawn storm in right" msgstr "" #: lib/pychess/Utils/lutils/strateval.py:671 msgid "Black has a rather cramped position" msgstr "" #: lib/pychess/Utils/lutils/strateval.py:673 msgid "Black has a slightly cramped position" msgstr "" #: lib/pychess/Utils/lutils/strateval.py:675 msgid "White has a rather cramped position" msgstr "" #: lib/pychess/Utils/lutils/strateval.py:677 msgid "White has a slightly cramped position" msgstr "" #: sidepanel/annotationPanel.py:26 msgid "Annotation" msgstr "" #: sidepanel/annotationPanel.py:29 msgid "Annotated game" msgstr "" #: sidepanel/annotationPanel.py:236 msgid "Copy PGN" msgstr "" #: sidepanel/annotationPanel.py:249 msgid "Add start comment" msgstr "" #: sidepanel/annotationPanel.py:254 msgid "Add comment" msgstr "" #: sidepanel/annotationPanel.py:258 sidepanel/annotationPanel.py:316 msgid "Edit comment" msgstr "" #: sidepanel/annotationPanel.py:269 msgid "Forced move" msgstr "" #: sidepanel/annotationPanel.py:274 msgid "Add move symbol" msgstr "" #: sidepanel/annotationPanel.py:280 msgid "Unclear position" msgstr "" #: sidepanel/annotationPanel.py:289 msgid "Zugzwang" msgstr "" #: sidepanel/annotationPanel.py:290 msgid "Development adv." msgstr "" #: sidepanel/annotationPanel.py:291 msgid "Initiative" msgstr "" #: sidepanel/annotationPanel.py:292 msgid "With attack" msgstr "" #: sidepanel/annotationPanel.py:293 msgid "Compensation" msgstr "" #: sidepanel/annotationPanel.py:294 msgid "Counterplay" msgstr "" #: sidepanel/annotationPanel.py:295 msgid "Time pressure" msgstr "" #: sidepanel/annotationPanel.py:300 msgid "Add evaluation symbol" msgstr "" #: sidepanel/annotationPanel.py:304 msgid "Remove symbols" msgstr "" #: sidepanel/annotationPanel.py:911 #, python-format msgid "round %s" msgstr "" #: sidepanel/bookPanel.py:21 msgid "Hints" msgstr "" #: sidepanel/bookPanel.py:25 msgid "" "The hint panel will provide computer advice during each stage of the game" msgstr "" #: sidepanel/bookPanel.py:27 msgid "Official PyChess panel." msgstr "" #: sidepanel/bookPanel.py:87 msgid "Opening Book" msgstr "Kniha otvorení" #: sidepanel/bookPanel.py:88 msgid "" "The opening book will try to inspire you during the opening phase of the " "game by showing you common moves made by chess masters" msgstr "" #: sidepanel/bookPanel.py:139 #, python-format msgid "Analysis by %s" msgstr "" #: sidepanel/bookPanel.py:140 #, python-format msgid "" "%s will try to predict which move is best and which side has the advantage" msgstr "" #: sidepanel/bookPanel.py:142 #, python-format msgid "Threat analysis by %s" msgstr "" #: sidepanel/bookPanel.py:143 #, python-format msgid "" "%s will identify what threats would exist if it were your opponent's turn to" " move" msgstr "" #: sidepanel/bookPanel.py:159 sidepanel/bookPanel.py:269 msgid "Calculating..." msgstr "" #: sidepanel/bookPanel.py:300 msgid "" "Engine scores are in units of pawns, from White's point of view. Double " "clicking on analysis lines you can insert them into Annotation panel as " "variations." msgstr "" #: sidepanel/bookPanel.py:302 msgid "" "Adding suggestions can help you find ideas, but slows down the computer's " "analysis." msgstr "" #: sidepanel/bookPanel.py:311 msgid "Endgame Table" msgstr "" #: sidepanel/bookPanel.py:315 msgid "" "The endgame table will show exact analysis when there are few pieces on the " "board." msgstr "" #: sidepanel/bookPanel.py:364 sidepanel/bookPanel.py:367 #, python-format msgid "Mate in %d" msgstr "" #: sidepanel/bookPanel.py:554 msgid "" "In this position,\n" "there is no legal move." msgstr "" #: sidepanel/chatPanel.py:21 msgid "" "The chat panel lets you communicate with your opponent during the game, " "assuming he or she is interested" msgstr "" #: sidepanel/commentPanel.py:16 msgid "Comments" msgstr "Poznámky" #: sidepanel/commentPanel.py:20 msgid "The comments panel will try to analyze and explain the moves played" msgstr "" #: sidepanel/commentPanel.py:121 msgid "Initial position" msgstr "Východzie postavenie" #: sidepanel/commentPanel.py:254 #, python-format msgid "%(color)s moves a %(piece)s to %(cord)s" msgstr "" #: sidepanel/engineOutputPanel.py:15 msgid "Engines" msgstr "" #: sidepanel/engineOutputPanel.py:20 msgid "" "The engine output panel shows the thinking output of chess engines (computer" " players) during a game" msgstr "" #: sidepanel/engineOutputPanel.py:44 msgid "No chess engines (computer players) are participating in this game." msgstr "" #: sidepanel/historyPanel.py:10 msgid "Move History" msgstr "História ťahov" #: sidepanel/historyPanel.py:13 msgid "" "The moves sheet keeps track of the players' moves and lets you navigate " "through the game history" msgstr "" #: sidepanel/scorePanel.py:15 msgid "Score" msgstr "Skóre" #: sidepanel/scorePanel.py:19 msgid "" "The score panel tries to evaluate the positions and shows you a graph of the" " game progress" msgstr "" pychess-0.12.2/lang/sk/LC_MESSAGES/pychess.mo0000644000175000017470000003523212653231273020717 0ustar tamasusers00000000000000% @ A'Lt !#9%'_  #2L[ o|Q&7*?(j  *138?$Ejpw    &2 L Wa gry   X ce]q'SDCE L V a m y     ! - ;E Ubxz  #1    '2 8D Y c oz  5Ti   "0G2 $8 u]  ! !,!7K7R7 j7u7 z7717 77 778 88&8.8 >8I8 _8m8 88 888 8 88-8+(9T9r9 9&9*9#9::4:K:%]::?kQ`7%K S$&y8jC"AVdX(1En=Jao|el {!YrN]G_g0Rqb<puP6\3O2TtB9h.w4L*f@^> D:Uz,vcIM F;)WZ} 5s~'ix#m/H[+- Gain: %s moves pawns into stonewall formation%s returns an error%s was declined by your opponent%s was withdrawn by your opponent'%s' is not a registered name(Blitz)0 Players Ready10 min + 6 sec/move, 1400↑, WhiteConnect to the Free Online Chess ServerPromote pawn to what?AnalyzingAnimationChess VariantDate of gameEnter Game NotationGame dataNewsOpponent StrengthOptionsPlay Sound When...PlayersTime ControlToolsYour ColorA file named '%s' already exists. Would you like to replace it?Engine, %s, has diedPyChess was not able to save the gameUnable to save file '%s'Unknown file type '%s'Challenge:A player _checks:A player _moves:A player c_aptures:About ChessAll Chess FilesAll FilesAuto _rotate board to current human playerBBeepBishopBlackBlack has a new piece in outpost: %sBlitzBlitz:Center:ChallengeChallenge: Chess GameChess PositionClockClose _without SavingCommentsConnectingConnection ErrorConnection was closedCould not save the fileCreate SeekDetect type automaticallyDon't careEdit SeekEmailEnter GameEvent:Face _to Face display modeFile existsGain:Game informationGame is _drawn:Game is _lost:Game is _set-up:Game is _won:GuestHideHuman BeingIf set, PyChess will use figures to express moved pieces, rather than uppercase letters.If set, the black pieces will be head down, suitable for playing against friends on mobile devices.If set, the board will turn after each move, to show the natural view for the current player.If set, the playing board will display labels and ranks for each chess field. These are usable in chess notation.If set, this hides the tab in the top of the playing window, when it is not needed.Initial positionIt is not possible later to continue the game, if you don't save it.KKnightLightningLightning:Loaded gameLocal EventLocal SiteLog on ErrorLog on as _GuestManually accept opponentMinutes:Minutes: Move HistoryNNameNew GameNo soundNormalObserveObserved _ends:Offer A_bortOffer _DrawOffer _ResumeOpen GameOpen Sound FileOpening BookOpponent's strength: PPingPlayPlay normal chess rulesPlayer _RatingPo_rts:Pre_viewPrefer figures in _notationPreferencesPromotionPyChess - Connect to Internet ChessPyChess - Internet Chess: FICSPyChess has lost connection to the engine, probably because it has died. You can try to start a new game with the engine, or try to play against another one.QQueenRR_esignRatedRated gameRatingRookRound:S_ign upSave GameSave Game _AsSaved gameScoreSeek _GraphSelect sound file...Send seekSho_w cordsShow _ChatSimple Chess PositionSite:Sp_y modeSpentStandardStandard:Start Private ChatThe connection was broken - got "end of file" messageThe error was: %sThe file already exists in '%s'. If you replace it, its content will be overwritten.The game ended in a drawThe game has been abortedThe game has been adjournedThe game has been killedTimeTime control: Tolerance:TypeUnable to accept %sUnknownUnratedUntimedUse _analyzerUse _inverted analyzerWhen this button is in the "locked" state, the relationship between "Opponent's strength" and "Your strength" will be preserved when a) your rating for the type of game sought has changed b) you change the variant or the time controlWhiteWhite has a new piece in outpost: %sYou don't have the necessary rights to save the file. Please ensure that you have given the right path and try again.You sent a draw offerYour opponent asks you to hurry!Your opponent is not out of time.Your strength: _Accept_Actions_Clear Seeks_Decline_Game_Game List_Help_Hide tabs when only one game is open_Hint mode_Load Game_Log Off_Log Viewer_Name:_New Game_Observed moves:_Password:_Player List_Replace_Rotate Board_Save Game_Seeks / Challenges_Start Game_Use sounds in PyChess_Viewcaptures materialcastlesdefends %sdrawsexchanges materialhttp://en.wikipedia.org/wiki/Chesshttp://en.wikipedia.org/wiki/Rules_of_chessimproves king safetyincreases the pressure on %smatesmoves a rook to an open filemoves an rook to a half-open filemoves bishop into fianchetto: %sonline in totalpromotes a Pawn to a %sputs opponent in checksacrifies materialslightly improves king safetytakes back materialProject-Id-Version: pychess Report-Msgid-Bugs-To: POT-Creation-Date: 2016-01-27 13:28+0100 PO-Revision-Date: 2016-01-28 08:56+0000 Last-Translator: slav0nic Language-Team: Slovak (http://www.transifex.com/gbtami/pychess/language/sk/) MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Language: sk Plural-Forms: nplurals=3; plural=(n==1) ? 0 : (n>=2 && n<=4) ? 1 : 2; Zisk:%s posúva pešiakov do formácie stonewall%s vracia chybovú správu%s bolo odmietnuté súperom%s bolo odvolané oponentom'%s' nie je registrované meno(Rýchly)0 pripravených hráčov10 min + 6 sec/ťah, 1400↑, BielyPripojiť sa k Free Online Chess ServerNa akú figúru premeniť pešiaka?AnalyzovanieAnimáciaVariant šachuDátum hryZadajte poznámky ku hre:Údaje o hreNovinkySila oponentaMožnostiZahrať zvuk keď…HráčiČasová kontrolaNástrojeVaša farbaSúbor s názvom '%s' už existuje. Chcete ho nahradiť?Počítač, %s, nečakane skončilPyChess nemohol uložiť hruNebolo možné uložiť súbor '%s'Neznámy typ súboru '%s'Výzva:Hráč dáva šach:Hráč ťahá:Hráč berie:O šachuVšetky šachové súboryVšetky súboryAutomaticky otočiť šachovnicu pre aktuálneho ľudského hráčaSPípnuťStrelecČiernyČierny hráč má novú figúrku na vysunutej pozícii: %sRýchla hraRýchly:Stred:VýzvaVýzva: Šachová hraŠachová pozíciaHodinyZavrieť _bez uloženiaPoznámkyPripájanieChyba v pripojeníSpojenie bolo ukončenéNebolo možné uložiť súborZačať hľadaťZistiť typ automatickyNezáležíUpraviť hľadanieE-mailVstúpiť do hryUdalosť:Zobrazenie „tvárou v tvár”Súbor existujeZisk:Informácie o hreHra skončila remízou:Hra skončila prehrou:Hra je pripravenáHra skončila výhrou:HosťSkryťČlovekZaškrtnutie spôsobí, že PyChess bude v zápise hry zobrazovať obrázky ťahaných figúr miesto označenia veľkým písmenom.Ak je voľba zaškrtnutá, čierne figúrky budú zobrazené dolu hlavou. Vhodné pre hranie na mobilných zariadeniach, keď oponent sedí proti vám.Zaškrtnutie tejto voľby spôsobí otočenie šachovnice po každom ťahu, aby hráč na ťahu videl šachovnicu zo svojej strany Zaškrtnutie tejto voľby zobrazí označenia stĺpcov a radov vedľa šachovnice.Zaškrtnutie tejto voľby schová záložky kariet na vrchu okna s hrami ak nie sú potrebné.Východzie postavenieAk neuložíte hru, nebudete môcť neskôr pokračovať.KJazdecBlesková hraBleskový:Načítaná hraLokálna udalosťLokálne miestoChyba pri prihlasovaníPrihlásiť sa ako hosťRučne akceptovať oponentaMinúty:Minúty: História ťahovJMenoNová hraBez zvukuNormálna hraSledovaťPozorovanie _končí:Ponúknuť _zrušeniePonúknuť _RemízuPonúknuť obnovenieOtvoriť hruOtvoriť zvukový súborKniha otvoreníSila oponenta:POdozvaHraťHrať so štandardnými pravidlamiHodnotenie hráčaPortyNáhľadUprednostňovať obrázky v zápisePredvoľbyPremenaPyChess - prihlásenie k Internetovej hrePyChess - internetový šach: FICSPyChess stratil spojenie so šachovým počítačom, pravdepodobne kvôli pádu. Môžete sa pokúsiť začať novú hru, alebo sa pokúste hrať znovú inú.DDámaVVzdať saHodnotenéHodnotená hraHodnotenieVežaKolo:RegistráciaUložiť hruUložiť hru _akoUložená hraSkóreGraf hľadaníVybrať zvukový súbor...Odoslať hľadanieZobrazovať súradniceZobraziť chatJednoduchá šachová pozíciaLokácia:_Špehovací módStrávenéŠtandardŠtandardný:Začať súkromný rozhovorSpojenie bolo prerušené - obdržaná správa "koniec súboru"Vyskytla sa chyba: %sSúbor už existuje v '%s'. Ak ho nahradíte, jeho obsah bude prepísaný.Hra sa skončila remízouHra bola ukončenáHra bola odloženáHra bola násilne ukončenáČasČasová kontrolaTolerancia:TypNie je možné prijať %sNeznámyNehodnotenéBez časového obmedzeniaPoužiť _analyzátorPoužiť _inverzný analyzátorKeď je toto tlačidlo v stave „uzamknuté”, vzťah ⏎ medzi „Silou oponenta” a „Vašou silou” bude⏎ zachovaný keď ⏎ a) sa zmení váš rating pre typ hry, ktorý hľadáte ⏎ b) zmeníte variant alebo časovú kontroluBielyBiely hráč má novú figúrku na vysunutej pozícii: %sNemáte dostatočné oprávnenia na uloženie súboru. Prosím, uistite sa, že ste zadali správnu cestu a vyskúšajte znova.Odoslali ste ponuku na remízuVáš oponent vás žiada aby ste sa ponáhľali!Časový limit oponenta ešte nevypršal.Vaša sila:_Akceptovať_AkcieZrušiť vyhľadávanieOdmietnuť_HraZoznam hier_Pomoc_Schovať záložky ak je otvorená iba jedna hra_Mód poradcu_Načítať hruOdhlásiť saPrehliadač záznamov_Meno:_Nová hra_Pozorované ťahy_Heslo:Zoznam hráčov_Nahradiť_Otočiť šachovnicu_Uložiť hruHľadania / Výzvy_Spustiť hruZapnúť zvuky v PyChess_Zobraziťzajme materiálrobí rošáduobraňuje %sremízujevymení materiálhttps://sk.wikipedia.org/wiki/%C5%A0ach_(hra)http://en.wikipedia.org/wiki/Rules_of_chesszvyšuje bezpečnosť kráľazvyšuje tlak na %sdáva matpohybuje vežou do otvoreného stĺpcapohybuje vežou do polootvoreného stĺpcapohybuje strelcom do fianchetta: %scelkový čas onlinepremieňa pešiaka na %sdáva oponentovi šachobetuje materiáljemne vylepšuje bezpečnosť kráľavezme späť materiálpychess-0.12.2/lang/id/0000755000175000017470000000000012653231274015072 5ustar tamasusers00000000000000pychess-0.12.2/lang/id/LC_MESSAGES/0000755000175000017470000000000012653231274016657 5ustar tamasusers00000000000000pychess-0.12.2/lang/id/LC_MESSAGES/pychess.po0000644000175000017470000024564612653216177020723 0ustar tamasusers00000000000000# SOME DESCRIPTIVE TITLE. # Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER # This file is distributed under the same license as the pychess package. # # Translators: # FIRST AUTHOR , 2008 msgid "" msgstr "" "Project-Id-Version: pychess\n" "Report-Msgid-Bugs-To: \n" "POT-Creation-Date: 2016-01-27 13:28+0100\n" "PO-Revision-Date: 2016-01-28 08:56+0000\n" "Last-Translator: slav0nic \n" "Language-Team: Indonesian (http://www.transifex.com/gbtami/pychess/language/id/)\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" "Language: id\n" "Plural-Forms: nplurals=1; plural=0;\n" # "Plural-Forms: nplurals=INTEGER; plural=EXPRESSION;\n" #: glade/analyze_game.glade:22 msgid "Analyze game" msgstr "" #: glade/analyze_game.glade:87 msgid "Use analyzer:" msgstr "" #: glade/analyze_game.glade:122 glade/PyChess.glade:2054 msgid "Maximum analysis time in seconds:" msgstr "" #: glade/analyze_game.glade:163 msgid "" "If the analyzer finds a move where the evaluation difference (the difference" " between the evaluation for the move it thinks is the best move and the " "evaluation for the move made in the game) exceeds this value, it will add an" " annotation for that move (consisting of the engine's Principal Variation " "for the move) to the Annotation panel" msgstr "" #: glade/analyze_game.glade:164 msgid "Variation annotation creation threshold in centipawns:" msgstr "" #: glade/analyze_game.glade:198 msgid "Analyze from current position" msgstr "" #: glade/analyze_game.glade:214 msgid "Add threatening variation lines " msgstr "" #: glade/analyze_game.glade:229 glade/PyChess.glade:1459 msgid "Colorize analyzed moves" msgstr "" #: glade/analyze_game.glade:244 glade/PyChess.glade:1495 msgid "Show evaluation values" msgstr "" #: glade/discovererDialog.glade:18 msgid "PyChess is discovering your engines. Please wait." msgstr "" #: glade/discovererDialog.glade:77 msgid "PyChess.py:" msgstr "" #: glade/discovererDialog.glade:89 msgid "ShredderLinuxChess:" msgstr "" #: glade/discovererDialog.glade:101 msgid "gnuchess:" msgstr "" #: glade/fics_logon.glade:7 msgid "PyChess - Connect to Internet Chess" msgstr "PyChess - Sambung ke Catur Internet" #: glade/fics_logon.glade:47 msgid "Connect to the Free Online Chess Server" msgstr "" #: glade/fics_logon.glade:129 glade/taskers.glade:394 msgid "_Password:" msgstr "Kata _Laluan:" #: glade/fics_logon.glade:143 msgid "_Name:" msgstr "_Nama:" #: glade/fics_logon.glade:191 msgid "Log on as _Guest" msgstr "Log masuk sebagai _Tamu" #: glade/fics_logon.glade:227 msgid "Host:" msgstr "" #: glade/fics_logon.glade:259 msgid "Po_rts:" msgstr "" #: glade/fics_logon.glade:271 msgid "Auto login on startup" msgstr "" #: glade/fics_logon.glade:385 msgid "S_ign up" msgstr "" #: glade/fics_lounge.glade:35 msgid "Challenge: " msgstr "" #: glade/fics_lounge.glade:97 msgid "Send Challenge" msgstr "" #: glade/fics_lounge.glade:133 msgid "Challenge:" msgstr "" #: glade/fics_lounge.glade:327 glade/fics_lounge.glade:2078 msgid "Lightning:" msgstr "" #: glade/fics_lounge.glade:351 glade/fics_lounge.glade:2102 msgid "Standard:" msgstr "" #: glade/fics_lounge.glade:375 glade/fics_lounge.glade:2126 msgid "Blitz:" msgstr "" #: glade/fics_lounge.glade:400 msgid "2 min, Fischer Random, Black" msgstr "" #: glade/fics_lounge.glade:422 msgid "10 min + 6 sec/move, White" msgstr "" #: glade/fics_lounge.glade:444 msgid "5 min" msgstr "" #: glade/fics_lounge.glade:480 msgid "Edit Seek" msgstr "" #: glade/fics_lounge.glade:584 lib/pychess/ic/ICLounge.py:2208 #: lib/pychess/ic/__init__.py:101 lib/pychess/Utils/GameModel.py:206 msgid "Untimed" msgstr "" #: glade/fics_lounge.glade:637 msgid "Minutes: " msgstr "" #: glade/fics_lounge.glade:665 msgid " Gain: " msgstr "" #: glade/fics_lounge.glade:703 msgid "Time control: " msgstr "" #: glade/fics_lounge.glade:716 lib/pychess/ic/FICSObjects.py:56 #: lib/pychess/ic/ICLounge.py:1137 lib/pychess/ic/ICLounge.py:2208 #: lib/pychess/ic/__init__.py:99 msgid "Standard" msgstr "" #: glade/fics_lounge.glade:757 glade/newInOut.glade:633 msgid "Time Control" msgstr "" #: glade/fics_lounge.glade:814 glade/fics_lounge.glade:1346 msgid "Don't care" msgstr "" #: glade/fics_lounge.glade:879 msgid "Your strength: " msgstr "" #: glade/fics_lounge.glade:921 msgid "(Blitz)" msgstr "" #: glade/fics_lounge.glade:951 msgid "Opponent's strength: " msgstr "" #: glade/fics_lounge.glade:1055 msgid "" "When this button is in the \"locked\" state, the relationship\n" "between \"Opponent's strength\" and \"Your strength\" will be\n" "preserved when \n" "a) your rating for the type of game sought has changed\n" "b) you change the variant or the time control" msgstr "" #: glade/fics_lounge.glade:1095 msgid "Center:" msgstr "" #: glade/fics_lounge.glade:1134 msgid "1200" msgstr "" #: glade/fics_lounge.glade:1188 msgid "Tolerance:" msgstr "" #: glade/fics_lounge.glade:1243 lib/pychess/ic/ICLounge.py:2452 msgid "Hide" msgstr "" #: glade/fics_lounge.glade:1289 msgid "Opponent Strength" msgstr "" #: glade/fics_lounge.glade:1386 lib/pychess/Database/gamelist.py:40 #: lib/pychess/ic/ICLounge.py:1357 lib/pychess/ic/ICLounge.py:1557 #: lib/pychess/ic/ICLounge.py:2108 lib/pychess/Utils/repr.py:10 #: lib/pychess/widgets/ChessClock.py:40 #: lib/pychess/widgets/TaskerManager.py:153 msgid "White" msgstr "Putih" #: glade/fics_lounge.glade:1414 lib/pychess/Database/gamelist.py:40 #: lib/pychess/ic/ICLounge.py:1358 lib/pychess/ic/ICLounge.py:1558 #: lib/pychess/ic/ICLounge.py:2110 lib/pychess/Utils/repr.py:10 #: lib/pychess/widgets/ChessClock.py:40 #: lib/pychess/widgets/TaskerManager.py:154 msgid "Black" msgstr "Hitam" #: glade/fics_lounge.glade:1453 msgid "Your Color" msgstr "" #: glade/fics_lounge.glade:1512 msgid "Play normal chess rules" msgstr "" #: glade/fics_lounge.glade:1552 msgid "Play" msgstr "" #: glade/fics_lounge.glade:1618 glade/newInOut.glade:833 msgid "Chess Variant" msgstr "" #: glade/fics_lounge.glade:1676 msgid "Rated game" msgstr "" #: glade/fics_lounge.glade:1692 msgid "Manually accept opponent" msgstr "" #: glade/fics_lounge.glade:1722 msgid "Options" msgstr "" #: glade/fics_lounge.glade:1750 msgid "PyChess - Internet Chess: FICS" msgstr "PyChess - Catur Internet: FICS" #: glade/fics_lounge.glade:1823 msgid "_Clear Seeks" msgstr "" #: glade/fics_lounge.glade:1847 msgid "_Accept" msgstr "Terim_a" #: glade/fics_lounge.glade:1871 msgid "_Decline" msgstr "" #: glade/fics_lounge.glade:2151 msgid "2 min, Fischer Random, 1800↓, Black" msgstr "" #: glade/fics_lounge.glade:2172 msgid "10 min + 6 sec/move, 1400↑, White" msgstr "" #: glade/fics_lounge.glade:2193 msgid "5 min, 1200-1800, Manual" msgstr "" #: glade/fics_lounge.glade:2247 msgid "Send all seeks" msgstr "" #: glade/fics_lounge.glade:2301 msgid "Send seek" msgstr "" #: glade/fics_lounge.glade:2337 msgid "Create Seek" msgstr "" #: glade/fics_lounge.glade:2353 msgid "_Seeks / Challenges" msgstr "" #: glade/fics_lounge.glade:2374 lib/pychess/ic/ICLounge.py:472 #: lib/pychess/ic/ICLounge.py:670 lib/pychess/ic/ICLounge.py:1357 #: lib/pychess/ic/ICLounge.py:1358 msgid "Rating" msgstr "Rating" #: glade/fics_lounge.glade:2399 msgid "Time" msgstr "Waktu" #: glade/fics_lounge.glade:2419 msgid "Seek _Graph" msgstr "" #: glade/fics_lounge.glade:2444 msgid "0 Players Ready" msgstr "" #: glade/fics_lounge.glade:2496 msgid "Challenge" msgstr "" #: glade/fics_lounge.glade:2549 glade/fics_lounge.glade:2735 msgid "Observe" msgstr "" #: glade/fics_lounge.glade:2602 msgid "Start Private Chat" msgstr "" #: glade/fics_lounge.glade:2659 msgid "_Player List" msgstr "" #: glade/fics_lounge.glade:2792 msgid "_Game List" msgstr "" #: glade/fics_lounge.glade:2847 msgid "_My games" msgstr "" #: glade/fics_lounge.glade:2904 glade/PyChess.glade:841 msgid "Offer _Resume" msgstr "" #: glade/fics_lounge.glade:2962 glade/PyChess.glade:880 msgid "R_esign" msgstr "" #: glade/fics_lounge.glade:3006 glade/PyChess.glade:820 msgid "Offer _Draw" msgstr "Tawarkan _Imbang" #: glade/fics_lounge.glade:3050 msgid "Offer A_bort" msgstr "" #: glade/fics_lounge.glade:3107 msgid "Pre_view" msgstr "" #: glade/fics_lounge.glade:3151 msgid "Examine" msgstr "" #: glade/fics_lounge.glade:3208 msgid "_Archived" msgstr "" #: glade/fics_lounge.glade:3313 msgid "News" msgstr "Berita" #: glade/fics_lounge.glade:3345 msgid "Show Console" msgstr "" #: glade/fics_lounge.glade:3359 msgid "Show _Chat" msgstr "" #: glade/fics_lounge.glade:3373 msgid "_Log Off" msgstr "" #: glade/fics_lounge.glade:3393 msgid "Tools" msgstr "Perkakas" #: glade/fics_lounge.glade:3428 msgid "Asymmetric Random " msgstr "" #: glade/findbar.glade:6 msgid "window1" msgstr "" #: glade/findbar.glade:21 msgid "0 of 0" msgstr "" #: glade/findbar.glade:66 msgid "Search:" msgstr "" #: glade/findbar.glade:134 msgid "_Previous" msgstr "" #: glade/findbar.glade:192 msgid "_Next" msgstr "" #: glade/newInOut.glade:45 lib/pychess/widgets/newGameDialog.py:445 msgid "New Game" msgstr "Permainan Baru" #: glade/newInOut.glade:108 msgid "_Start Game" msgstr "_Mulai Permainan" #: glade/newInOut.glade:130 msgid "Copy FEN" msgstr "" #: glade/newInOut.glade:143 msgid "Clear" msgstr "" #: glade/newInOut.glade:156 msgid "Paste FEN" msgstr "" #: glade/newInOut.glade:257 msgid "_Black player:" msgstr "" #: glade/newInOut.glade:274 msgid "_White player:" msgstr "" #: glade/newInOut.glade:385 msgid "Players" msgstr "Pemain" #: glade/newInOut.glade:436 msgid "_Untimed" msgstr "" #: glade/newInOut.glade:475 msgid "Blitz: 5 min" msgstr "" #: glade/newInOut.glade:526 msgid "Rapid: 15 min + 10 sec/move" msgstr "" #: glade/newInOut.glade:575 msgid "Normal: 40 min + 15 sec/move" msgstr "" #: glade/newInOut.glade:684 msgid "_Play Normal chess" msgstr "" #: glade/newInOut.glade:724 msgid "Play Fischer Random chess" msgstr "" #: glade/newInOut.glade:774 msgid "Play Losers chess" msgstr "" #: glade/newInOut.glade:919 msgid "Open Game" msgstr "" #: glade/newInOut.glade:1162 msgid "Initial Position" msgstr "" #: glade/newInOut.glade:1219 msgid "Enter Game Notation" msgstr "Masukkan Catatan Permainan" #: glade/newInOut.glade:1314 msgid "Halfmove clock" msgstr "" #: glade/newInOut.glade:1327 msgid "En passant line" msgstr "" #: glade/newInOut.glade:1339 msgid "Side to move" msgstr "" #: glade/newInOut.glade:1351 msgid "Move number" msgstr "" #: glade/newInOut.glade:1361 msgid "Black O-O" msgstr "" #: glade/newInOut.glade:1375 msgid "Black O-O-O" msgstr "" #: glade/newInOut.glade:1389 msgid "White O-O-O" msgstr "" #: glade/newInOut.glade:1403 msgid "White O-O" msgstr "" #: glade/promotion.glade:7 msgid "Promotion" msgstr "Kenaikan" #: glade/promotion.glade:49 lib/pychess/Utils/repr.py:12 msgid "Queen" msgstr "Ratu" #: glade/promotion.glade:95 lib/pychess/Utils/repr.py:12 msgid "Rook" msgstr "Benteng" #: glade/promotion.glade:141 lib/pychess/Utils/repr.py:12 msgid "Bishop" msgstr "Mentari" #: glade/promotion.glade:187 lib/pychess/Utils/repr.py:12 msgid "Knight" msgstr "Kuda" #: glade/promotion.glade:233 lib/pychess/Utils/repr.py:12 msgid "King" msgstr "" #: glade/promotion.glade:265 msgid "Promote pawn to what?" msgstr "Naikkan pion menjadi?" #: glade/PyChess.glade:9 msgid "Chess client" msgstr "" #: glade/PyChess.glade:44 msgid "Game information" msgstr "Informasi permainan" #: glade/PyChess.glade:164 msgid "Event:" msgstr "Pertandingan:" #: glade/PyChess.glade:178 msgid "Site:" msgstr "Situs:" #: glade/PyChess.glade:204 msgid "Round:" msgstr "Putaran:" #: glade/PyChess.glade:237 msgid "White:" msgstr "" #: glade/PyChess.glade:249 msgid "Black:" msgstr "" #: glade/PyChess.glade:302 msgid "Game data" msgstr "Data permainan,/b>" #: glade/PyChess.glade:357 msgid "Date of game" msgstr "Tanggal permainan" #: glade/PyChess.glade:495 msgid "_Game" msgstr "_Permainan" #: glade/PyChess.glade:502 msgid "_New Game" msgstr "Permai_nan Baru" #: glade/PyChess.glade:515 msgid "Play _Internet Chess" msgstr "" #: glade/PyChess.glade:534 msgid "_Load Game" msgstr "_Muat Permainan" #: glade/PyChess.glade:550 msgid "Load _Recent Game" msgstr "" #: glade/PyChess.glade:558 msgid "Open _Database" msgstr "" #: glade/PyChess.glade:569 lib/pychess/widgets/newGameDialog.py:615 msgid "Setup Position" msgstr "" #: glade/PyChess.glade:579 msgid "Enter Game _Notation" msgstr "" #: glade/PyChess.glade:592 msgid "_Save Game" msgstr "_Simpan Permainan" #: glade/PyChess.glade:606 msgid "Save Game _As" msgstr "Simpan Permainan Seb_agai" #: glade/PyChess.glade:624 msgid "Share Game" msgstr "" #: glade/PyChess.glade:630 msgid "_Export Position" msgstr "" #: glade/PyChess.glade:644 msgid "_Analyze Game" msgstr "" #: glade/PyChess.glade:678 msgid "Player _Rating" msgstr "_Penilaian Pemain" #: glade/PyChess.glade:723 msgid "_Edit" msgstr "" #: glade/PyChess.glade:734 msgid "_Copy PGN" msgstr "" #: glade/PyChess.glade:746 msgid "_Copy FEN" msgstr "" #: glade/PyChess.glade:763 msgid "_Engines" msgstr "" #: glade/PyChess.glade:789 msgid "_Actions" msgstr "Tind_akan" #: glade/PyChess.glade:800 msgid "Offer _Abort" msgstr "" #: glade/PyChess.glade:810 msgid "Offer Ad_journment" msgstr "" #: glade/PyChess.glade:831 msgid "Offer _Pause" msgstr "" #: glade/PyChess.glade:847 msgid "Offer _Undo" msgstr "" #: glade/PyChess.glade:870 msgid "_Call Flag" msgstr "_Panggil Bendera" #: glade/PyChess.glade:890 msgid "Ask to _Move" msgstr "" #: glade/PyChess.glade:905 msgid "Auto Call _Flag" msgstr "" #: glade/PyChess.glade:918 msgid "_View" msgstr "_Tampilan" #: glade/PyChess.glade:925 msgid "_Rotate Board" msgstr "_Putar Papan" #: glade/PyChess.glade:939 msgid "_Fullscreen" msgstr "" #: glade/PyChess.glade:952 msgid "Leave _Fullscreen" msgstr "" #: glade/PyChess.glade:969 msgid "_Show Sidepanels" msgstr "" #: glade/PyChess.glade:980 msgid "_Log Viewer" msgstr "Penampil _Log" #: glade/PyChess.glade:997 msgid "_Hint mode" msgstr "Mode _Petunjuk" #: glade/PyChess.glade:1009 msgid "Sp_y mode" msgstr "Mode _mata-mata" #: glade/PyChess.glade:1024 msgid "_Help" msgstr "_Bantuan" #: glade/PyChess.glade:1034 msgid "About Chess" msgstr "Tentang Catur" #: glade/PyChess.glade:1043 msgid "How to Play" msgstr "" #: glade/PyChess.glade:1052 msgid "Translate PyChess" msgstr "" #: glade/PyChess.glade:1058 msgid "Tip of the Day" msgstr "" #: glade/PyChess.glade:1153 msgid "Default" msgstr "" #: glade/PyChess.glade:1156 msgid "Knights" msgstr "" #: glade/PyChess.glade:1167 lib/pychess/widgets/preferencesDialog.py:349 msgid "Beep" msgstr "Bip" #: glade/PyChess.glade:1170 lib/pychess/widgets/preferencesDialog.py:350 msgid "Select sound file..." msgstr "Pilih berkas suara..." #: glade/PyChess.glade:1173 lib/pychess/widgets/preferencesDialog.py:348 msgid "No sound" msgstr "Tanpa Suara" #: glade/PyChess.glade:1180 msgid "Preferences" msgstr "Preferensi" #: glade/PyChess.glade:1218 msgid "The displayed name of the first human player, e.g., John." msgstr "" #: glade/PyChess.glade:1230 msgid "Name of _first human player:" msgstr "" #: glade/PyChess.glade:1259 msgid "The displayed name of the guest player, e.g., Mary." msgstr "" #: glade/PyChess.glade:1271 msgid "Name of s_econd human player:" msgstr "" #: glade/PyChess.glade:1307 msgid "_Hide tabs when only one game is open" msgstr "_Sembunyikan tab ketika hanya satu permainan terbuka" #: glade/PyChess.glade:1312 msgid "" "If set, this hides the tab in the top of the playing window, when it is not " "needed." msgstr "" #: glade/PyChess.glade:1326 msgid "_Use main app closer [x] to close all games" msgstr "" #: glade/PyChess.glade:1331 msgid "" "If set, clicking on main application window closer first time it closes all " "games." msgstr "" #: glade/PyChess.glade:1345 msgid "Auto _rotate board to current human player" msgstr "" #: glade/PyChess.glade:1350 msgid "" "If set, the board will turn after each move, to show the natural view for " "the current player." msgstr "" #: glade/PyChess.glade:1364 msgid "Auto _promote to queen" msgstr "" #: glade/PyChess.glade:1369 msgid "If set, pawn promotes to queen without promotion dialog selection." msgstr "" #: glade/PyChess.glade:1383 msgid "Face _to Face display mode" msgstr "" #: glade/PyChess.glade:1388 msgid "" "If set, the black pieces will be head down, suitable for playing against " "friends on mobile devices." msgstr "" #: glade/PyChess.glade:1402 msgid "Sho_w cords" msgstr "" #: glade/PyChess.glade:1407 msgid "" "If set, the playing board will display labels and ranks for each chess " "field. These are usable in chess notation." msgstr "" #: glade/PyChess.glade:1421 msgid "Show _captured pieces" msgstr "" #: glade/PyChess.glade:1426 msgid "If set, the captured figurines will be shown next to the board." msgstr "" #: glade/PyChess.glade:1440 msgid "Prefer figures in _notation" msgstr "" #: glade/PyChess.glade:1445 msgid "" "If set, PyChess will use figures to express moved pieces, rather than " "uppercase letters." msgstr "" #: glade/PyChess.glade:1464 msgid "If set, PyChess will colorize suboptimal analyzed moves with red." msgstr "" #: glade/PyChess.glade:1477 msgid "Show elapsed move times" msgstr "" #: glade/PyChess.glade:1482 msgid "If set, the elapsed time that a player used for the move is shown." msgstr "" #: glade/PyChess.glade:1500 msgid "If set, the hint analyzer engine evaluation value is shown." msgstr "" #: glade/PyChess.glade:1526 msgid "General Options" msgstr "" #: glade/PyChess.glade:1560 msgid "F_ull board animation" msgstr "" #: glade/PyChess.glade:1565 msgid "Animate pieces, board rotation and more. Use this on fast machines." msgstr "" #: glade/PyChess.glade:1579 msgid "Only animate _moves" msgstr "" #: glade/PyChess.glade:1584 msgid "Only animate piece moves." msgstr "" #: glade/PyChess.glade:1599 msgid "No _animation" msgstr "" #: glade/PyChess.glade:1604 msgid "Never use animation. Use this on slow machines." msgstr "" #: glade/PyChess.glade:1632 msgid "Animation" msgstr "Animasi" #: glade/PyChess.glade:1651 msgid "_General" msgstr "" #: glade/PyChess.glade:1692 msgid "Use opening _book" msgstr "" #: glade/PyChess.glade:1697 msgid "If set, PyChess will suggest best opening moves on hint panel." msgstr "" #: glade/PyChess.glade:1724 msgid "Polyglot book file:" msgstr "" #: glade/PyChess.glade:1768 msgid "Use _local tablebases" msgstr "" #: glade/PyChess.glade:1773 msgid "" "If set, PyChess will show game results for different moves in positions containing 6 or less pieces.\n" "You can download tablebase files from:\n" "http://www.olympuschess.com/egtb/gaviota/" msgstr "" #: glade/PyChess.glade:1803 msgid "Gaviota TB path:" msgstr "" #: glade/PyChess.glade:1843 msgid "Use _online tablebases" msgstr "" #: glade/PyChess.glade:1848 msgid "" "If set, PyChess will show game results for different moves in positions containing 6 or less pieces.\n" "It will search positions from http://www.k4it.de/" msgstr "" #: glade/PyChess.glade:1870 msgid "Opening, endgame" msgstr "" #: glade/PyChess.glade:1904 msgid "Use _analyzer" msgstr "Gunakan _analyzer" #: glade/PyChess.glade:1946 msgid "" "The analyzer will run in the background and analyze the game. This is " "necessary for the hint mode to work" msgstr "" #: glade/PyChess.glade:1978 msgid "Use _inverted analyzer" msgstr "" #: glade/PyChess.glade:2020 msgid "" "The inverse analyzer will analyze the game as if your opponent was to move. " "This is necessary for the spy mode to work" msgstr "" #: glade/PyChess.glade:2096 msgid "Analyzing" msgstr "Menganalisa" #: glade/PyChess.glade:2118 msgid "_Hints" msgstr "" #: glade/PyChess.glade:2263 msgid "Uninstall" msgstr "" #: glade/PyChess.glade:2317 msgid "Ac_tive" msgstr "" #: glade/PyChess.glade:2367 msgid "Installed Sidepanels" msgstr "" #: glade/PyChess.glade:2382 msgid "Side_panels" msgstr "" #: glade/PyChess.glade:2440 msgid "Light Squares :" msgstr "" #: glade/PyChess.glade:2479 msgid "Dark Squares :" msgstr "" #: glade/PyChess.glade:2515 msgid "Reset Default Colours" msgstr "" #: glade/PyChess.glade:2551 msgid "Board Colours" msgstr "" #: glade/PyChess.glade:2610 msgid "Chess Sets" msgstr "" #: glade/PyChess.glade:2634 msgid "Themes" msgstr "" #: glade/PyChess.glade:2659 msgid "_Use sounds in PyChess" msgstr "G_unakan suara di PyChess" #: glade/PyChess.glade:2982 msgid "A player _checks:" msgstr "" #: glade/PyChess.glade:2997 msgid "A player _moves:" msgstr "" #: glade/PyChess.glade:3010 msgid "Game is _drawn:" msgstr "Permainan _seri:" #: glade/PyChess.glade:3025 msgid "Game is _lost:" msgstr "Permainan _kalah:" #: glade/PyChess.glade:3040 msgid "Game is _won:" msgstr "Permainan _menang:" #: glade/PyChess.glade:3055 msgid "A player c_aptures:" msgstr "" #: glade/PyChess.glade:3084 msgid "Game is _set-up:" msgstr "" #: glade/PyChess.glade:3136 msgid "_Observed moves:" msgstr "Perpindahan _diamati:" #: glade/PyChess.glade:3151 msgid "Observed _ends:" msgstr "Pengamatan _berakhir:" #: glade/PyChess.glade:3265 msgid "Short on _time:" msgstr "" #: glade/PyChess.glade:3317 msgid "_Invalid move:" msgstr "" #: glade/PyChess.glade:3369 msgid "Activate alarm when _remaining sec is:" msgstr "" #: glade/PyChess.glade:3416 msgid "Play Sound When..." msgstr "Mainkan Suara Ketika..." #: glade/PyChess.glade:3438 msgid "_Sounds" msgstr "" #: glade/PyChess.glade:3463 msgid "_Auto save finished games" msgstr "" #: glade/PyChess.glade:3497 msgid "Save files to:" msgstr "" #: glade/PyChess.glade:3525 msgid "Use name format:" msgstr "" #: glade/PyChess.glade:3569 msgid "Names: #n1, #n2" msgstr "" #: glade/PyChess.glade:3582 msgid "Year, month, day: #y, #m, #d" msgstr "" #: glade/PyChess.glade:3619 msgid "Save elapsed move _times" msgstr "" #: glade/PyChess.glade:3644 msgid "Save analyzing engine _evaluation values" msgstr "" #: glade/PyChess.glade:3669 msgid "Save _own games only" msgstr "" #: glade/PyChess.glade:3698 msgid "Save" msgstr "" #: glade/PyChess.glade:3728 msgid "uci" msgstr "" #: glade/PyChess.glade:3731 msgid "xboard" msgstr "" #: glade/PyChess.glade:3739 msgid "Manage engines" msgstr "" #: glade/PyChess.glade:3837 msgid "Command:" msgstr "" #: glade/PyChess.glade:3851 msgid "Protocol:" msgstr "" #: glade/PyChess.glade:3865 msgid "Parameters:" msgstr "" #: glade/PyChess.glade:3878 msgid "Command line parameters needed by the engine." msgstr "" #: glade/PyChess.glade:3903 msgid "" "Engines use uci or xboard communication protocol to talk to the GUI.\n" "If it can use both you can set here which one you like." msgstr "" #: glade/PyChess.glade:3929 msgid "Working directory:" msgstr "" #: glade/PyChess.glade:3942 msgid "The directory where the engine will be started from." msgstr "" #: glade/saveGamesDialog.glade:7 msgid "Quit PyChess" msgstr "" #: glade/saveGamesDialog.glade:24 lib/pychess/widgets/ionest.py:424 msgid "Close _without Saving" msgstr "Tutup _tanpa Menyimpan" #: glade/saveGamesDialog.glade:83 msgid "_Save %d documents" msgstr "" #: glade/saveGamesDialog.glade:141 msgid "" "There are %d games with unsaved moves. Save changes before " "closing?" msgstr "" #: glade/saveGamesDialog.glade:161 msgid "Select the games you want to save:" msgstr "" #: glade/saveGamesDialog.glade:204 msgid "If you don't save, new changes to your games will be permanently lost." msgstr "" #: glade/taskers.glade:126 msgid "_Opponent:" msgstr "" #: glade/taskers.glade:154 msgid "_Your Color:" msgstr "" #: glade/taskers.glade:219 msgid "_Start Game" msgstr "" #: glade/taskers.glade:338 msgid "Log on as G_uest" msgstr "" #: glade/taskers.glade:410 msgid "Ha_ndle:" msgstr "" #: glade/taskers.glade:469 msgid "_Connect to server" msgstr "" #: glade/tipoftheday.glade:7 msgid "Tip Of The day" msgstr "" #: glade/tipoftheday.glade:62 msgid "Show tips at startup" msgstr "" #: lib/pychess/Main.py:302 msgid "http://en.wikipedia.org/wiki/Chess" msgstr "http://en.wikipedia.org/wiki/Chess" #: lib/pychess/Main.py:305 msgid "http://en.wikipedia.org/wiki/Rules_of_chess" msgstr "http://en.wikipedia.org/wiki/Rules_of_chess" #: lib/pychess/Main.py:370 lib/pychess/widgets/gamenanny.py:80 msgid "Welcome" msgstr "" #: lib/pychess/Database/gamelist.py:40 msgid "Id" msgstr "" #: lib/pychess/Database/gamelist.py:40 msgid "W Elo" msgstr "" #: lib/pychess/Database/gamelist.py:40 msgid "B Elo" msgstr "" #: lib/pychess/Database/gamelist.py:41 msgid "Result" msgstr "" #: lib/pychess/Database/gamelist.py:41 msgid "Event" msgstr "" #: lib/pychess/Database/gamelist.py:41 msgid "Site" msgstr "" #: lib/pychess/Database/gamelist.py:41 msgid "Round" msgstr "" #: lib/pychess/Database/gamelist.py:41 msgid "Date" msgstr "" #: lib/pychess/Database/gamelist.py:41 msgid "ECO" msgstr "" #: lib/pychess/Database/gamelist.py:62 msgid "PyChess Game Database" msgstr "" #: lib/pychess/Database/PgnImport.py:188 #, python-format msgid "The game #%s can't be loaded, because of an error parsing FEN" msgstr "" #: lib/pychess/ic/FICSConnection.py:139 msgid "The connection was broken - got \"end of file\" message" msgstr "Sambungan terputus - didapatkan pesan \"end of file\"" #: lib/pychess/ic/FICSConnection.py:140 #, python-format msgid "'%s' is not a registered name" msgstr "'%s' bukan nama yang terdaftar" #: lib/pychess/ic/FICSConnection.py:141 msgid "" "The entered password was invalid.\n" "If you forgot your password, go to http://www.freechess.org/password to request a new one over email." msgstr "" #: lib/pychess/ic/FICSConnection.py:145 #, python-format msgid "Sorry '%s' is already logged in" msgstr "" #: lib/pychess/ic/FICSConnection.py:146 #, python-format msgid "'%s' is a registered name. If it is yours, type the password." msgstr "" #: lib/pychess/ic/FICSConnection.py:147 msgid "" "Due to abuse problems, guest connections have been prevented.\n" "You can still register on http://www.freechess.org" msgstr "" #: lib/pychess/ic/FICSConnection.py:166 msgid "Connecting to server" msgstr "" #: lib/pychess/ic/FICSConnection.py:181 msgid "Logging on to server" msgstr "" #: lib/pychess/ic/FICSConnection.py:239 msgid "Setting up environment" msgstr "" #: lib/pychess/ic/FICSObjects.py:35 lib/pychess/ic/FICSObjects.py:47 #, python-format msgid "%(player)s is %(status)s" msgstr "" #: lib/pychess/ic/FICSObjects.py:46 msgid "not playing" msgstr "" #: lib/pychess/ic/FICSObjects.py:54 lib/pychess/ic/ICLounge.py:1136 #: lib/pychess/ic/ICLounge.py:2209 lib/pychess/ic/__init__.py:98 #: lib/pychess/widgets/newGameDialog.py:153 msgid "Blitz" msgstr "Serangan kilat" #: lib/pychess/ic/FICSObjects.py:58 lib/pychess/ic/ICLounge.py:1137 #: lib/pychess/ic/ICLounge.py:2209 lib/pychess/ic/__init__.py:100 msgid "Lightning" msgstr "Halilintar" #: lib/pychess/ic/FICSObjects.py:60 lib/pychess/Variants/atomic.py:15 msgid "Atomic" msgstr "" #: lib/pychess/ic/FICSObjects.py:62 lib/pychess/Variants/bughouse.py:9 msgid "Bughouse" msgstr "" #: lib/pychess/ic/FICSObjects.py:64 lib/pychess/Variants/crazyhouse.py:9 msgid "Crazyhouse" msgstr "" #: lib/pychess/ic/FICSObjects.py:66 lib/pychess/Variants/losers.py:9 msgid "Losers" msgstr "" #: lib/pychess/ic/FICSObjects.py:68 lib/pychess/Variants/suicide.py:12 msgid "Suicide" msgstr "" #: lib/pychess/ic/FICSObjects.py:70 lib/pychess/ic/__init__.py:129 msgid "Wild" msgstr "" #: lib/pychess/ic/FICSObjects.py:117 msgid "Online" msgstr "" #: lib/pychess/ic/FICSObjects.py:118 lib/pychess/ic/FICSObjects.py:143 msgid "Offline" msgstr "" #: lib/pychess/ic/FICSObjects.py:133 msgid "Available" msgstr "" #: lib/pychess/ic/FICSObjects.py:135 msgid "Playing" msgstr "" #: lib/pychess/ic/FICSObjects.py:141 msgid "Idle" msgstr "" #: lib/pychess/ic/FICSObjects.py:145 msgid "Examining" msgstr "" #: lib/pychess/ic/FICSObjects.py:147 msgid "Not Available" msgstr "" #: lib/pychess/ic/FICSObjects.py:149 msgid "Running Simul Match" msgstr "" #: lib/pychess/ic/FICSObjects.py:151 msgid "In Tournament" msgstr "" #: lib/pychess/ic/FICSObjects.py:308 lib/pychess/ic/FICSObjects.py:492 #: lib/pychess/ic/ICLounge.py:2278 msgid "Unrated" msgstr "Belum dinilai" #: lib/pychess/ic/FICSObjects.py:491 lib/pychess/ic/ICLounge.py:670 #: lib/pychess/ic/ICLounge.py:1358 lib/pychess/ic/ICLounge.py:1558 #: lib/pychess/ic/ICLounge.py:2113 msgid "Rated" msgstr "Nilai" #: lib/pychess/ic/FICSObjects.py:498 lib/pychess/ic/ICLounge.py:2098 #, python-format msgid "%d min" msgstr "" #: lib/pychess/ic/FICSObjects.py:500 #, python-format msgid " + %d sec" msgstr "" #: lib/pychess/ic/FICSObjects.py:517 #, python-format msgid "%(player)s plays %(color)s" msgstr "" #: lib/pychess/ic/FICSObjects.py:519 lib/pychess/ic/ICLounge.py:909 msgid "white" msgstr "" #: lib/pychess/ic/FICSObjects.py:519 lib/pychess/ic/ICLounge.py:909 msgid "black" msgstr "" #: lib/pychess/ic/FICSObjects.py:565 msgid "This is a continuation of an adjourned match" msgstr "" #: lib/pychess/ic/FICSObjects.py:654 msgid "Opponent Rating" msgstr "" #: lib/pychess/ic/FICSObjects.py:656 msgid "Manual Accept" msgstr "" #: lib/pychess/ic/FICSObjects.py:810 msgid "Private" msgstr "" #: lib/pychess/ic/FICSObjects.py:930 lib/pychess/ic/ICLounge.py:527 #: lib/pychess/Savers/epd.py:139 msgid "Unknown" msgstr "Tidak Dikenal" #: lib/pychess/ic/ICLogon.py:159 lib/pychess/ic/ICLogon.py:165 msgid "Connection Error" msgstr "Galat Sambungan" #: lib/pychess/ic/ICLogon.py:161 msgid "Log on Error" msgstr "Galat Log masuk" #: lib/pychess/ic/ICLogon.py:163 msgid "Connection was closed" msgstr "Sambungan ditutup" #: lib/pychess/ic/ICLogon.py:169 msgid "Address Error" msgstr "" #: lib/pychess/ic/ICLogon.py:172 msgid "Auto-logout" msgstr "" #: lib/pychess/ic/ICLogon.py:173 msgid "You have been logged out because you were idle more than 60 minutes" msgstr "" #: lib/pychess/ic/ICLounge.py:222 msgid "You have to set kibitz on to see bot messages here." msgstr "" #: lib/pychess/ic/ICLounge.py:241 msgid "" "You may only have 3 outstanding seeks at the same time. If you want to add a" " new seek you must clear your currently active seeks. Clear your seeks?" msgstr "" #: lib/pychess/ic/ICLounge.py:258 msgid "You can't touch this! You are examining a game." msgstr "" #: lib/pychess/ic/ICLounge.py:270 msgid " has declined your offer for a match" msgstr "" #: lib/pychess/ic/ICLounge.py:283 msgid " is censoring you" msgstr "" #: lib/pychess/ic/ICLounge.py:296 msgid " noplay listing you" msgstr "" #: lib/pychess/ic/ICLounge.py:311 msgid " uses a formula not fitting your match request:" msgstr "" #: lib/pychess/ic/ICLounge.py:325 msgid "to manual accept" msgstr "" #: lib/pychess/ic/ICLounge.py:327 msgid "to automatic accept" msgstr "" #: lib/pychess/ic/ICLounge.py:329 msgid "rating range now" msgstr "" #: lib/pychess/ic/ICLounge.py:330 msgid "Seek updated" msgstr "" #: lib/pychess/ic/ICLounge.py:342 msgid "Your seeks have been removed" msgstr "" #: lib/pychess/ic/ICLounge.py:363 msgid " has arrived" msgstr "" #: lib/pychess/ic/ICLounge.py:370 msgid " has departed" msgstr "" #: lib/pychess/ic/ICLounge.py:374 msgid " is present" msgstr "" #: lib/pychess/ic/ICLounge.py:391 sidepanel/chatPanel.py:17 msgid "Chat" msgstr "" #: lib/pychess/ic/ICLounge.py:472 sidepanel/bookPanel.py:366 msgid "Win" msgstr "" #: lib/pychess/ic/ICLounge.py:472 sidepanel/bookPanel.py:360 msgid "Draw" msgstr "" #: lib/pychess/ic/ICLounge.py:472 sidepanel/bookPanel.py:363 msgid "Loss" msgstr "" #: lib/pychess/ic/ICLounge.py:482 msgid "" "On FICS, your \"Wild\" rating encompasses all of the following variants at " "all time controls:\n" msgstr "" #: lib/pychess/ic/ICLounge.py:494 msgid "Sanctions" msgstr "" #: lib/pychess/ic/ICLounge.py:499 msgid "Email" msgstr "Email" #: lib/pychess/ic/ICLounge.py:504 msgid "Spent" msgstr "Menghabiskan" #: lib/pychess/ic/ICLounge.py:506 msgid "online in total" msgstr "total tersambung" #: lib/pychess/ic/ICLounge.py:512 msgid "Ping" msgstr "Ping" #: lib/pychess/ic/ICLounge.py:517 msgid "Connecting" msgstr "Menyambungkan" #: lib/pychess/ic/ICLounge.py:544 msgid "" "You are currently logged in as a guest.\n" "A guest can't play rated games and therefore isn't able to play as many of the types of matches offered as a registered user. To register an account, go to http://www.freechess.org/Register/index.html." msgstr "" #: lib/pychess/ic/ICLounge.py:669 lib/pychess/ic/ICLounge.py:1136 msgid "Name" msgstr "Nama" #: lib/pychess/ic/ICLounge.py:670 lib/pychess/ic/ICLounge.py:1358 #: lib/pychess/ic/ICLounge.py:1558 msgid "Type" msgstr "Jenis" #: lib/pychess/ic/ICLounge.py:670 lib/pychess/ic/ICLounge.py:1558 msgid "Clock" msgstr "Jam" #: lib/pychess/ic/ICLounge.py:726 lib/pychess/ic/ICLounge.py:923 #: lib/pychess/Players/Human.py:250 msgid "Accept" msgstr "" #: lib/pychess/ic/ICLounge.py:728 msgid "Assess" msgstr "" #: lib/pychess/ic/ICLounge.py:734 msgid "Archived" msgstr "" #: lib/pychess/ic/ICLounge.py:848 #, python-format msgid "Active seeks: %d" msgstr "" #: lib/pychess/ic/ICLounge.py:897 #, python-format msgid "" " would like to resume your adjourned %(time)s %(gametype)s " "game." msgstr "" #: lib/pychess/ic/ICLounge.py:902 #, python-format msgid "" " challenges you to a %(time)s %(rated)s %(gametype)s game" msgstr "" #: lib/pychess/ic/ICLounge.py:907 #, python-format msgid " where %(player)s plays %(color)s." msgstr "" #: lib/pychess/ic/ICLounge.py:924 lib/pychess/Players/Human.py:251 msgid "Decline" msgstr "" #: lib/pychess/ic/ICLounge.py:1065 msgid " min" msgstr "" #: lib/pychess/ic/ICLounge.py:1137 msgid "Status" msgstr "" #: lib/pychess/ic/ICLounge.py:1203 lib/pychess/ic/ICLounge.py:1233 #, python-format msgid "Players: %d" msgstr "" #: lib/pychess/ic/ICLounge.py:1469 #, python-format msgid "Games running: %d" msgstr "" #: lib/pychess/ic/ICLounge.py:1559 msgid "Date/Time" msgstr "" #: lib/pychess/ic/ICLounge.py:1614 #, python-format msgid "" " with whom you have an adjourned %(timecontrol)s %(gametype)s " "game is online." msgstr "" #: lib/pychess/ic/ICLounge.py:1635 msgid "Request Continuation" msgstr "" #: lib/pychess/ic/ICLounge.py:1637 msgid "Examine Adjourned Game" msgstr "" #: lib/pychess/ic/ICLounge.py:1965 msgid "" "The chain button is disabled because you are logged in as a guest. Guests " "can't establish ratings, and the chain button's state has no effect when " "there is no rating to which to tie \"Opponent Strength\" to" msgstr "" #: lib/pychess/ic/ICLounge.py:2006 msgid "Challenge: " msgstr "" #: lib/pychess/ic/ICLounge.py:2044 msgid "If set you can refuse players accepting your seek" msgstr "" #: lib/pychess/ic/ICLounge.py:2048 lib/pychess/ic/ICLounge.py:2051 msgid "This option is not applicable because you're challenging a player" msgstr "" #: lib/pychess/ic/ICLounge.py:2064 msgid "Edit Seek: " msgstr "" #: lib/pychess/ic/ICLounge.py:2095 #, python-format msgid "%(minutes)d min + %(gain)d sec/move" msgstr "" #: lib/pychess/ic/ICLounge.py:2116 msgid "Manual" msgstr "" #: lib/pychess/ic/ICLounge.py:2256 msgid "Any strength" msgstr "" #: lib/pychess/ic/ICLounge.py:2308 msgid "You can't play rated games because you are logged in as a guest" msgstr "" #: lib/pychess/ic/ICLounge.py:2312 msgid "You can't play rated games because \"Untimed\" is checked, " msgstr "" #: lib/pychess/ic/ICLounge.py:2313 msgid "and on FICS, untimed games can't be rated" msgstr "" #: lib/pychess/ic/ICLounge.py:2317 msgid "This option is not available because you're challenging a guest, " msgstr "" #: lib/pychess/ic/ICLounge.py:2318 msgid "and guests can't play rated games" msgstr "" #: lib/pychess/ic/ICLounge.py:2332 lib/pychess/Variants/shuffle.py:16 #: lib/pychess/widgets/newGameDialog.py:266 msgid "Shuffle" msgstr "" #: lib/pychess/ic/ICLounge.py:2333 lib/pychess/widgets/newGameDialog.py:267 msgid "Other (standard rules)" msgstr "" #: lib/pychess/ic/ICLounge.py:2334 lib/pychess/widgets/newGameDialog.py:268 msgid "Other (non standard rules)" msgstr "" #: lib/pychess/ic/ICLounge.py:2421 msgid "You can't select a variant because \"Untimed\" is checked, " msgstr "" #: lib/pychess/ic/ICLounge.py:2422 msgid "and on FICS, untimed games have to be normal chess rules" msgstr "" #: lib/pychess/ic/ICLounge.py:2454 msgid "Change Tolerance" msgstr "" #: lib/pychess/ic/__init__.py:102 msgid "Examined" msgstr "" #: lib/pychess/ic/__init__.py:103 msgid "Other" msgstr "" #: lib/pychess/ic/__init__.py:182 msgid "Administrator" msgstr "" #: lib/pychess/ic/__init__.py:182 msgid "Blindfold Account" msgstr "" #: lib/pychess/ic/__init__.py:182 msgid "Computer" msgstr "" #: lib/pychess/ic/__init__.py:183 msgid "Team Account" msgstr "" #: lib/pychess/ic/__init__.py:183 msgid "Unregistered" msgstr "" #: lib/pychess/ic/__init__.py:183 msgid "Chess Advisor" msgstr "" #: lib/pychess/ic/__init__.py:184 msgid "Service Representative" msgstr "" #: lib/pychess/ic/__init__.py:184 msgid "Tournament Director" msgstr "" #: lib/pychess/ic/__init__.py:184 msgid "Mamer Manager" msgstr "" #: lib/pychess/ic/__init__.py:185 msgid "Grand Master" msgstr "" #: lib/pychess/ic/__init__.py:185 msgid "International Master" msgstr "" #: lib/pychess/ic/__init__.py:185 msgid "FIDE Master" msgstr "" #: lib/pychess/ic/__init__.py:186 msgid "Woman Grand Master" msgstr "" #: lib/pychess/ic/__init__.py:186 msgid "Woman International Master" msgstr "" #: lib/pychess/ic/__init__.py:186 msgid "Woman FIDE Master" msgstr "" #: lib/pychess/ic/__init__.py:187 msgid "Dummy Account" msgstr "" #: lib/pychess/ic/__init__.py:191 msgid "*" msgstr "" #: lib/pychess/ic/__init__.py:191 lib/pychess/Utils/repr.py:14 msgid "B" msgstr "B" #: lib/pychess/ic/__init__.py:191 msgid "C" msgstr "" #: lib/pychess/ic/__init__.py:192 msgid "T" msgstr "" #: lib/pychess/ic/__init__.py:192 msgid "U" msgstr "" #: lib/pychess/ic/__init__.py:192 msgid "CA" msgstr "" #: lib/pychess/ic/__init__.py:193 msgid "SR" msgstr "" #: lib/pychess/ic/__init__.py:193 msgid "TD" msgstr "" #: lib/pychess/ic/__init__.py:193 msgid "TM" msgstr "" #: lib/pychess/ic/__init__.py:194 msgid "GM" msgstr "" #: lib/pychess/ic/__init__.py:194 msgid "IM" msgstr "" #: lib/pychess/ic/__init__.py:194 msgid "FM" msgstr "" #: lib/pychess/ic/__init__.py:195 msgid "WGM" msgstr "" #: lib/pychess/ic/__init__.py:195 msgid "WIM" msgstr "" #: lib/pychess/ic/__init__.py:195 msgid "WFM" msgstr "" #: lib/pychess/ic/__init__.py:195 msgid "D" msgstr "" #: lib/pychess/ic/__init__.py:195 msgid "H" msgstr "" #: lib/pychess/ic/__init__.py:195 msgid "CM" msgstr "" #: lib/pychess/ic/__init__.py:195 msgid "FA" msgstr "" #: lib/pychess/ic/__init__.py:195 msgid "NM" msgstr "" #: lib/pychess/Players/CECPEngine.py:857 #, python-format msgid "The engine %s reports an error:" msgstr "" #: lib/pychess/Players/Human.py:20 msgid "Your opponent has offered you a draw." msgstr "" #: lib/pychess/Players/Human.py:21 msgid "" "Your opponent has offered you a draw. If you accept this offer, the game " "will end with a score of 1/2 - 1/2." msgstr "" #: lib/pychess/Players/Human.py:23 msgid "Your opponent wants to abort the game." msgstr "" #: lib/pychess/Players/Human.py:24 msgid "" "Your opponent has asked that the game be aborted. If you accept this offer, " "the game will end with no rating change." msgstr "" #: lib/pychess/Players/Human.py:26 msgid "Your opponent wants to adjourn the game." msgstr "" #: lib/pychess/Players/Human.py:27 msgid "" "Your opponent has asked that the game be adjourned. If you accept this " "offer, the game will be adjourned and you can resume it later (when your " "opponent is online and both players agree to resume)." msgstr "" #: lib/pychess/Players/Human.py:29 #, python-format msgid "Your opponent wants to undo %s move(s)." msgstr "" #: lib/pychess/Players/Human.py:30 #, python-format msgid "" "Your opponent has asked that the last %s move(s) be undone. If you accept " "this offer, the game will continue from the earlier position." msgstr "" #: lib/pychess/Players/Human.py:32 msgid "Your opponent wants to pause the game." msgstr "" #: lib/pychess/Players/Human.py:33 msgid "" "Your opponent has asked that the game be paused. If you accept this offer, " "the game clock will be paused until both players agree to resume the game." msgstr "" #: lib/pychess/Players/Human.py:35 msgid "Your opponent wants to resume the game." msgstr "" #: lib/pychess/Players/Human.py:36 msgid "" "Your opponent has asked that the game be resumed. If you accept this offer, " "the game clock will continue from where it was paused." msgstr "" #: lib/pychess/Players/Human.py:40 msgid "The resignation" msgstr "" #: lib/pychess/Players/Human.py:41 msgid "The flag call" msgstr "" #: lib/pychess/Players/Human.py:42 msgid "The draw offer" msgstr "" #: lib/pychess/Players/Human.py:43 msgid "The abort offer" msgstr "" #: lib/pychess/Players/Human.py:44 msgid "The adjourn offer" msgstr "" #: lib/pychess/Players/Human.py:45 msgid "The pause offer" msgstr "" #: lib/pychess/Players/Human.py:46 msgid "The resume offer" msgstr "" #: lib/pychess/Players/Human.py:47 msgid "The offer to switch sides" msgstr "" #: lib/pychess/Players/Human.py:48 msgid "The takeback offer" msgstr "" #: lib/pychess/Players/Human.py:52 msgid "resign" msgstr "" #: lib/pychess/Players/Human.py:53 msgid "call your opponents flag" msgstr "" #: lib/pychess/Players/Human.py:54 msgid "offer a draw" msgstr "" #: lib/pychess/Players/Human.py:55 msgid "offer an abort" msgstr "" #: lib/pychess/Players/Human.py:56 msgid "offer to adjourn" msgstr "" #: lib/pychess/Players/Human.py:57 msgid "offer a pause" msgstr "" #: lib/pychess/Players/Human.py:58 msgid "offer to resume" msgstr "" #: lib/pychess/Players/Human.py:59 msgid "offer to switch sides" msgstr "" #: lib/pychess/Players/Human.py:60 msgid "offer a takeback" msgstr "" #: lib/pychess/Players/Human.py:61 msgid "ask your opponent to move" msgstr "" #: lib/pychess/Players/Human.py:66 msgid "Your opponent is not out of time." msgstr "Musuh Anda belum kehabisan waktu." #: lib/pychess/Players/Human.py:68 msgid "The clock hasn't been started yet." msgstr "" #: lib/pychess/Players/Human.py:70 msgid "You can't switch colors during the game." msgstr "" #: lib/pychess/Players/Human.py:72 msgid "You have tried to undo too many moves." msgstr "" #: lib/pychess/Players/Human.py:180 msgid "Your opponent asks you to hurry!" msgstr "Musuh Anda meminta anda lebih cepat!" #: lib/pychess/Players/Human.py:181 msgid "" "Generally this means nothing, as the game is time-based, but if you want to " "please your opponent, perhaps you should get going." msgstr "" #: lib/pychess/Players/Human.py:259 #, python-format msgid "%s was declined by your opponent" msgstr "%s ditolak oleh musuh Anda" #: lib/pychess/Players/Human.py:260 #, python-format msgid "Resend %s?" msgstr "" #: lib/pychess/Players/Human.py:267 msgid "Resend" msgstr "" #: lib/pychess/Players/Human.py:275 #, python-format msgid "%s was withdrawn by your opponent" msgstr "" #: lib/pychess/Players/Human.py:276 msgid "Your opponent seems to have changed their mind." msgstr "" #: lib/pychess/Players/Human.py:290 #, python-format msgid "Unable to accept %s" msgstr "Tidak dapat disetujui %s" #: lib/pychess/Players/Human.py:291 msgid "Probably because it has been withdrawn." msgstr "" #: lib/pychess/Players/Human.py:298 #, python-format msgid "%s returns an error" msgstr "" #: lib/pychess/Savers/chessalpha2.py:12 msgid "Chess Alpha 2 Diagram" msgstr "" #: lib/pychess/Savers/chesspastebin.py:39 msgid "Game shared at " msgstr "" #: lib/pychess/Savers/chesspastebin.py:41 msgid "(Link is available on clipboard.)" msgstr "" #: lib/pychess/Savers/database.py:19 msgid "PyChess database" msgstr "" #: lib/pychess/Savers/epd.py:12 msgid "Chess Position" msgstr "Posisi Catur" #: lib/pychess/Savers/fen.py:12 msgid "Simple Chess Position" msgstr "Posisi Catur Sederhana" #: lib/pychess/Savers/fen.py:44 lib/pychess/Savers/pgn.py:329 msgid "The game can't be loaded, because of an error parsing FEN" msgstr "" #: lib/pychess/Savers/pgnbase.py:100 #, python-format msgid "" "The game can't be read to end, because of an error parsing move %(moveno)s " "'%(notation)s'." msgstr "" #: lib/pychess/Savers/pgnbase.py:102 #, python-format msgid "The move failed because %s." msgstr "" #: lib/pychess/Savers/pgnbase.py:110 #, python-format msgid "Error parsing move %(moveno)s %(mstr)s" msgstr "" #: lib/pychess/Savers/pgn.py:28 msgid "Chess Game" msgstr "Permainan Catur" #: lib/pychess/Savers/pgn.py:362 msgid "Invalid move." msgstr "" #: lib/pychess/Savers/png.py:15 msgid "Png image" msgstr "" #: lib/pychess/System/ping.py:31 msgid "Destination Host Unreachable" msgstr "" #: lib/pychess/System/ping.py:74 msgid "Died" msgstr "" #: lib/pychess/Utils/GameModel.py:147 msgid "Local Event" msgstr "Even Lokal" #: lib/pychess/Utils/GameModel.py:148 msgid "Local Site" msgstr "Situs Lokal" #: lib/pychess/Utils/repr.py:12 msgid "Pawn" msgstr "" #: lib/pychess/Utils/repr.py:14 msgid "P" msgstr "P" #: lib/pychess/Utils/repr.py:14 msgid "N" msgstr "N" #: lib/pychess/Utils/repr.py:14 msgid "R" msgstr "R" #: lib/pychess/Utils/repr.py:14 msgid "Q" msgstr "Q" #: lib/pychess/Utils/repr.py:14 msgid "K" msgstr "K" #: lib/pychess/Utils/repr.py:17 msgid "The game ended in a draw" msgstr "Permainan berakhir seri" #: lib/pychess/Utils/repr.py:18 #, python-format msgid "%(white)s won the game" msgstr "" #: lib/pychess/Utils/repr.py:19 #, python-format msgid "%(black)s won the game" msgstr "" #: lib/pychess/Utils/repr.py:20 msgid "The game has been killed" msgstr "Permainan telah diakhiri" #: lib/pychess/Utils/repr.py:21 msgid "The game has been adjourned" msgstr "Permainan telah ditunda" #: lib/pychess/Utils/repr.py:22 msgid "The game has been aborted" msgstr "Permainan telah dibatalkan" #: lib/pychess/Utils/repr.py:26 msgid "Because neither player has sufficient material to mate" msgstr "" #: lib/pychess/Utils/repr.py:27 msgid "Because the same position was repeated three times in a row" msgstr "" #: lib/pychess/Utils/repr.py:28 msgid "Because the last 50 moves brought nothing new" msgstr "" #: lib/pychess/Utils/repr.py:29 msgid "Because both players ran out of time" msgstr "" #: lib/pychess/Utils/repr.py:30 #, python-format msgid "Because %(mover)s stalemated" msgstr "" #: lib/pychess/Utils/repr.py:31 msgid "Because both players agreed to a draw" msgstr "" #: lib/pychess/Utils/repr.py:32 lib/pychess/Utils/repr.py:42 msgid "Because of adjudication by an admin" msgstr "" #: lib/pychess/Utils/repr.py:33 msgid "Because the game exceed the max length" msgstr "" #: lib/pychess/Utils/repr.py:34 #, python-format msgid "" "Because %(white)s ran out of time and %(black)s has insufficient material to" " mate" msgstr "" #: lib/pychess/Utils/repr.py:35 #, python-format msgid "" "Because %(black)s ran out of time and %(white)s has insufficient material to" " mate" msgstr "" #: lib/pychess/Utils/repr.py:36 msgid "Because both players have the same amount of pieces" msgstr "" #: lib/pychess/Utils/repr.py:38 #, python-format msgid "Because %(loser)s resigned" msgstr "" #: lib/pychess/Utils/repr.py:39 #, python-format msgid "Because %(loser)s ran out of time" msgstr "" #: lib/pychess/Utils/repr.py:40 #, python-format msgid "Because %(loser)s was checkmated" msgstr "" #: lib/pychess/Utils/repr.py:41 #, python-format msgid "Because %(loser)s disconnected" msgstr "" #: lib/pychess/Utils/repr.py:43 #, python-format msgid "Because %(winner)s has fewer pieces" msgstr "" #: lib/pychess/Utils/repr.py:44 #, python-format msgid "Because %(winner)s lost all pieces" msgstr "" #: lib/pychess/Utils/repr.py:45 #, python-format msgid "Because %(loser)s king exploded" msgstr "" #: lib/pychess/Utils/repr.py:46 #, python-format msgid "Because %(winner)s king reached the center" msgstr "" #: lib/pychess/Utils/repr.py:47 #, python-format msgid "Because %(winner)s was giving check 3 times" msgstr "" #: lib/pychess/Utils/repr.py:49 msgid "Because a player lost connection" msgstr "" #: lib/pychess/Utils/repr.py:50 msgid "Because both players agreed to an adjournment" msgstr "" #: lib/pychess/Utils/repr.py:51 msgid "Because the server was shut down" msgstr "" #: lib/pychess/Utils/repr.py:52 msgid "" "Because a player lost connection and the other player requested adjournment" msgstr "" #: lib/pychess/Utils/repr.py:53 #, python-format msgid "" "Because %(black)s lost connection to the server and %(white)s requested " "adjournment" msgstr "" #: lib/pychess/Utils/repr.py:54 #, python-format msgid "" "Because %(white)s lost connection to the server and %(black)s requested " "adjournment" msgstr "" #: lib/pychess/Utils/repr.py:55 #, python-format msgid "Because %(white)s lost connection to the server" msgstr "" #: lib/pychess/Utils/repr.py:56 #, python-format msgid "Because %(black)s lost connection to the server" msgstr "" #: lib/pychess/Utils/repr.py:58 msgid "Because of adjudication by an admin. No rating changes have occurred." msgstr "" #: lib/pychess/Utils/repr.py:59 msgid "" "Because both players agreed to abort the game. No rating changes have " "occurred." msgstr "" #: lib/pychess/Utils/repr.py:60 msgid "Because of courtesy by a player. No rating changes have occurred." msgstr "" #: lib/pychess/Utils/repr.py:61 msgid "" "Because a player aborted the game. Either player can abort the game without " "the other's consent before the second move. No rating changes have occurred." msgstr "" #: lib/pychess/Utils/repr.py:62 msgid "" "Because a player disconnected and there are too few moves to warrant " "adjournment. No rating changes have occurred." msgstr "" #: lib/pychess/Utils/repr.py:63 msgid "Because the server was shut down. No rating changes have occurred." msgstr "" #: lib/pychess/Utils/repr.py:65 #, python-format msgid "Because the %(white)s engine died" msgstr "" #: lib/pychess/Utils/repr.py:66 #, python-format msgid "Because the %(black)s engine died" msgstr "" #: lib/pychess/Utils/repr.py:67 msgid "Because the connection to the server was lost" msgstr "" #: lib/pychess/Utils/repr.py:68 msgid "The reason is unknown" msgstr "" #: lib/pychess/Utils/TimeModel.py:229 msgid "min" msgstr "" #: lib/pychess/Utils/TimeModel.py:231 msgid "sec" msgstr "" #: lib/pychess/Variants/asean.py:12 msgid "" "ASEAN: http://www.ncf-" "phil.org/downloadables/2014/May/Asean_chess/Laws_of_ASEAN_Chess_2011_Nov_26.doc" msgstr "" #: lib/pychess/Variants/asean.py:13 msgid "ASEAN" msgstr "" #: lib/pychess/Variants/asean.py:33 msgid "Makruk: http://en.wikipedia.org/wiki/Makruk" msgstr "" #: lib/pychess/Variants/asean.py:34 msgid "Makruk" msgstr "" #: lib/pychess/Variants/asean.py:60 msgid "Cambodian: http://www.khmerinstitute.org/culture/ok.html" msgstr "" #: lib/pychess/Variants/asean.py:61 msgid "Cambodian" msgstr "" #: lib/pychess/Variants/asean.py:86 msgid "" "Ai-Wok: http://www.open-" "aurec.com/wbforum/viewtopic.php?p=199364&sid=20963a1de2c164050de019e5ed6bf7c4#p199364" msgstr "" #: lib/pychess/Variants/asean.py:87 msgid "Ai-Wok" msgstr "" #: lib/pychess/Variants/asean.py:111 msgid "Sittuyin: http://en.wikipedia.org/wiki/Sittuyin" msgstr "" #: lib/pychess/Variants/asean.py:112 msgid "Sittuyin" msgstr "" #: lib/pychess/Variants/asymmetricrandom.py:12 msgid "" "FICS wild/4: http://www.freechess.org/Help/HelpFiles/wild.html\n" "* Randomly chosen pieces (two queens or three rooks possible)\n" "* Exactly one king of each color\n" "* Pieces placed randomly behind the pawns, SUBJECT TO THE CONSTRAINT THAT THE BISHOPS ARE BALANCED\n" "* No castling\n" "* Black's arrangement DOES NOT mirrors white's" msgstr "" #: lib/pychess/Variants/asymmetricrandom.py:18 msgid "Asymmetric Random" msgstr "" #: lib/pychess/Variants/atomic.py:14 msgid "FICS atomic: http://www.freechess.org/Help/HelpFiles/atomic.html" msgstr "" #: lib/pychess/Variants/blindfold.py:7 msgid "" "Classic chess rules with hidden figurines\n" "http://en.wikipedia.org/wiki/Blindfold_chess" msgstr "" #: lib/pychess/Variants/blindfold.py:9 #: lib/pychess/widgets/newGameDialog.py:264 msgid "Blindfold" msgstr "" #: lib/pychess/Variants/blindfold.py:18 msgid "" "Classic chess rules with hidden pawns\n" "http://en.wikipedia.org/wiki/Blindfold_chess" msgstr "" #: lib/pychess/Variants/blindfold.py:20 msgid "Hidden pawns" msgstr "" #: lib/pychess/Variants/blindfold.py:29 msgid "" "Classic chess rules with hidden pieces\n" "http://en.wikipedia.org/wiki/Blindfold_chess" msgstr "" #: lib/pychess/Variants/blindfold.py:31 msgid "Hidden pieces" msgstr "" #: lib/pychess/Variants/blindfold.py:40 msgid "" "Classic chess rules with all pieces white\n" "http://en.wikipedia.org/wiki/Blindfold_chess" msgstr "" #: lib/pychess/Variants/blindfold.py:42 msgid "All white" msgstr "" #: lib/pychess/Variants/bughouse.py:8 msgid "FICS bughouse: http://www.freechess.org/Help/HelpFiles/bughouse.html" msgstr "" #: lib/pychess/Variants/corner.py:12 msgid "" "http://brainking.com/en/GameRules?tp=2\n" "* Placement of the pieces on the 1st and 8th row are randomized\n" "* The king is in the right hand corner\n" "* Bishops must start on opposite color squares\n" "* Black's starting position is obtained by rotating white's position 180 degrees around the board's center\n" "* No castling" msgstr "" #: lib/pychess/Variants/corner.py:18 msgid "Corner" msgstr "" #: lib/pychess/Variants/crazyhouse.py:8 msgid "" "FICS crazyhouse: http://www.freechess.org/Help/HelpFiles/crazyhouse.html" msgstr "" #: lib/pychess/Variants/euroshogi.py:9 msgid "EuroShogi: http://en.wikipedia.org/wiki/EuroShogi" msgstr "" #: lib/pychess/Variants/euroshogi.py:10 msgid "EuroShogi" msgstr "" #: lib/pychess/Variants/fischerandom.py:18 msgid "" "http://en.wikipedia.org/wiki/Chess960\n" "FICS wild/fr: http://www.freechess.org/Help/HelpFiles/wild.html" msgstr "" #: lib/pychess/Variants/fischerandom.py:20 msgid "Fischer Random" msgstr "" #: lib/pychess/Variants/kingofthehill.py:8 msgid "" "Bringing your king legally to the center (e4, d4, e5, d5) instantly wins the game!\n" "Normal rules apply in other cases and checkmate also ends the game." msgstr "" #: lib/pychess/Variants/kingofthehill.py:10 msgid "King of the hill" msgstr "" #: lib/pychess/Variants/knightodds.py:8 msgid "One player starts with one less knight piece" msgstr "" #: lib/pychess/Variants/knightodds.py:9 msgid "Knight odds" msgstr "" #: lib/pychess/Variants/losers.py:8 msgid "FICS losers: http://www.freechess.org/Help/HelpFiles/losers_chess.html" msgstr "" #: lib/pychess/Variants/normal.py:4 msgid "" "Classic chess rules\n" "http://en.wikipedia.org/wiki/Chess" msgstr "" #: lib/pychess/Variants/normal.py:6 lib/pychess/widgets/newGameDialog.py:157 msgid "Normal" msgstr "Biasa" #: lib/pychess/Variants/pawnodds.py:8 msgid "One player starts with one less pawn piece" msgstr "" #: lib/pychess/Variants/pawnodds.py:9 msgid "Pawn odds" msgstr "" #: lib/pychess/Variants/pawnspassed.py:11 msgid "" "FICS wild/8a: http://www.freechess.org/Help/HelpFiles/wild.html\n" "White pawns start on 5th rank and black pawns on the 4th rank" msgstr "" #: lib/pychess/Variants/pawnspassed.py:13 msgid "Pawns Passed" msgstr "" #: lib/pychess/Variants/pawnspushed.py:10 msgid "" "FICS wild/8: http://www.freechess.org/Help/HelpFiles/wild.html\n" "Pawns start on 4th and 5th ranks rather than 2nd and 7th" msgstr "" #: lib/pychess/Variants/pawnspushed.py:12 msgid "Pawns Pushed" msgstr "" #: lib/pychess/Variants/queenodds.py:8 msgid "One player starts with one less queen piece" msgstr "" #: lib/pychess/Variants/queenodds.py:9 msgid "Queen odds" msgstr "" #: lib/pychess/Variants/randomchess.py:11 msgid "" "FICS wild/3: http://www.freechess.org/Help/HelpFiles/wild.html\n" "* Randomly chosen pieces (two queens or three rooks possible)\n" "* Exactly one king of each color\n" "* Pieces placed randomly behind the pawns\n" "* No castling\n" "* Black's arrangement mirrors white's" msgstr "" #: lib/pychess/Variants/randomchess.py:17 #: lib/pychess/widgets/TaskerManager.py:155 msgid "Random" msgstr "" #: lib/pychess/Variants/rookodds.py:8 msgid "One player starts with one less rook piece" msgstr "" #: lib/pychess/Variants/rookodds.py:9 msgid "Rook odds" msgstr "" #: lib/pychess/Variants/shuffle.py:11 msgid "" "xboard nocastle: http://home.hccnet.nl/h.g.muller/engine-intf.html#8\n" "FICS wild/2: http://www.freechess.org/Help/HelpFiles/wild.html\n" "* Random arrangement of the pieces behind the pawns\n" "* No castling\n" "* Black's arrangement mirrors white's" msgstr "" #: lib/pychess/Variants/suicide.py:11 msgid "" "FICS suicide: http://www.freechess.org/Help/HelpFiles/suicide_chess.html" msgstr "" #: lib/pychess/Variants/theban.py:10 msgid "" "Variant developed by Kai Laskos: " "http://talkchess.com/forum/viewtopic.php?t=40990" msgstr "" #: lib/pychess/Variants/theban.py:11 msgid "Theban" msgstr "" #: lib/pychess/Variants/threecheck.py:10 msgid "Win by giving check 3 times" msgstr "" #: lib/pychess/Variants/threecheck.py:11 msgid "Three-check" msgstr "" #: lib/pychess/Variants/upsidedown.py:10 msgid "" "FICS wild/5: http://www.freechess.org/Help/HelpFiles/wild.html\n" "http://en.wikipedia.org/wiki/Chess_variant#Chess_with_different_starting_positions\n" "Pawns start on their 7th rank rather than their 2nd rank!" msgstr "" #: lib/pychess/Variants/upsidedown.py:13 msgid "Upside Down" msgstr "" #: lib/pychess/Variants/wildcastle.py:10 msgid "" "xboard wildcastle http://home.hccnet.nl/h.g.muller/engine-intf.html#8\n" "FICS wild/0: http://www.freechess.org/Help/HelpFiles/wild.html\n" "* White has the typical set-up at the start.\n" "* Black's pieces are the same, except that the King and Queen are reversed,\n" "* so they are not on the same files as White's King and Queen.\n" "* Castling is done similarly to normal chess:\n" "* o-o-o indicates long castling and o-o short castling." msgstr "" #: lib/pychess/Variants/wildcastle.py:17 msgid "Wildcastle" msgstr "" #: lib/pychess/Variants/wildcastleshuffle.py:11 msgid "" "xboard wildcastle http://home.hccnet.nl/h.g.muller/engine-intf.html#8\n" "FICS wild/1: http://www.freechess.org/Help/HelpFiles/wild.html\n" "* In this variant both sides have the same set of pieces as in normal chess.\n" "* The white king starts on d1 or e1 and the black king starts on d8 or e8,\n" "* and the rooks are in their usual positions.\n" "* Bishops are always on opposite colors.\n" "* Subject to these constraints the position of the pieces on their first ranks is random.\n" "* Castling is done similarly to normal chess:\n" "* o-o-o indicates long castling and o-o short castling." msgstr "" #: lib/pychess/Variants/wildcastleshuffle.py:20 msgid "Wildcastle shuffle" msgstr "" #: lib/pychess/widgets/analyzegameDialog.py:85 msgid "Game analyzing in progress..." msgstr "" #: lib/pychess/widgets/analyzegameDialog.py:86 msgid "Do you want to abort it?" msgstr "" #: lib/pychess/widgets/analyzegameDialog.py:95 #: lib/pychess/widgets/gamewidget.py:202 lib/pychess/widgets/gamewidget.py:320 msgid "Abort" msgstr "" #: lib/pychess/widgets/ChatView.py:125 msgid "Observers" msgstr "" #: lib/pychess/widgets/ChatWindow.py:222 msgid "You have opened no conversations yet" msgstr "" #: lib/pychess/widgets/ChatWindow.py:254 msgid "Only registered users may talk to this channel" msgstr "" #: lib/pychess/widgets/ChatWindow.py:312 msgid "No conversation's selected" msgstr "" #: lib/pychess/widgets/ChatWindow.py:350 msgid "Loading player data" msgstr "" #: lib/pychess/widgets/ChatWindow.py:400 msgid "Receiving list of players" msgstr "" #: lib/pychess/widgets/ChatWindow.py:518 msgid "Friends" msgstr "" #: lib/pychess/widgets/ChatWindow.py:529 msgid "Admin" msgstr "" #: lib/pychess/widgets/ChatWindow.py:540 msgid "More channels" msgstr "" #: lib/pychess/widgets/ChatWindow.py:548 msgid "More players" msgstr "" #: lib/pychess/widgets/ChatWindow.py:558 msgid "Computers" msgstr "" #: lib/pychess/widgets/ChatWindow.py:568 msgid "BlindFold" msgstr "" #: lib/pychess/widgets/ChatWindow.py:578 msgid "Guests" msgstr "" #: lib/pychess/widgets/ChatWindow.py:805 msgid "Conversations" msgstr "" #: lib/pychess/widgets/ChatWindow.py:807 msgid "Conversation info" msgstr "" #: lib/pychess/widgets/enginesDialog.py:152 msgid "Select engine" msgstr "" #: lib/pychess/widgets/enginesDialog.py:156 msgid "Executable files" msgstr "" #: lib/pychess/widgets/enginesDialog.py:176 #: lib/pychess/widgets/enginesDialog.py:210 #: lib/pychess/widgets/enginesDialog.py:235 #, python-format msgid "Unable to add %s" msgstr "" #: lib/pychess/widgets/enginesDialog.py:177 msgid "wine not installed" msgstr "" #: lib/pychess/widgets/enginesDialog.py:211 #: lib/pychess/widgets/enginesDialog.py:236 msgid "There is something wrong with this executable" msgstr "" #: lib/pychess/widgets/enginesDialog.py:266 msgid "Select working directory" msgstr "" #: lib/pychess/widgets/gamenanny.py:115 #, python-format msgid " invalid engine move: %s" msgstr "" #: lib/pychess/widgets/gamenanny.py:134 msgid "Offer Rematch" msgstr "" #: lib/pychess/widgets/gamenanny.py:136 lib/pychess/widgets/gamenanny.py:147 #, python-format msgid "Observe %s" msgstr "" #: lib/pychess/widgets/gamenanny.py:168 msgid "Play Rematch" msgstr "" #: lib/pychess/widgets/gamenanny.py:171 msgid "Undo one move" msgstr "" #: lib/pychess/widgets/gamenanny.py:173 msgid "Undo two moves" msgstr "" #: lib/pychess/widgets/gamenanny.py:203 msgid "The game is paused" msgstr "" #: lib/pychess/widgets/gamenanny.py:221 lib/pychess/widgets/gamenanny.py:222 msgid "Loaded game" msgstr "Permainan dimuat" #: lib/pychess/widgets/gamenanny.py:228 msgid "Saved game" msgstr "Permainan disimpan" #: lib/pychess/widgets/gamenanny.py:232 msgid "Analyzer started" msgstr "" #: lib/pychess/widgets/gamenanny.py:281 msgid "You sent an abort offer" msgstr "" #: lib/pychess/widgets/gamenanny.py:283 msgid "You sent an adjournment offer" msgstr "" #: lib/pychess/widgets/gamenanny.py:285 msgid "You sent a draw offer" msgstr "Anda mengirim tawaran seri" #: lib/pychess/widgets/gamenanny.py:287 msgid "You sent a pause offer" msgstr "" #: lib/pychess/widgets/gamenanny.py:289 msgid "You sent a resume offer" msgstr "" #: lib/pychess/widgets/gamenanny.py:291 msgid "You sent an undo offer" msgstr "" #: lib/pychess/widgets/gamenanny.py:293 msgid "You asked your opponent to move" msgstr "" #: lib/pychess/widgets/gamenanny.py:305 #, python-format msgid "Engine, %s, has died" msgstr "Mesin, %s, mati" #: lib/pychess/widgets/gamenanny.py:306 msgid "" "PyChess has lost connection to the engine, probably because it has died.\n" "\n" "You can try to start a new game with the engine, or try to play against another one." msgstr "PyChess telah kehilangan sambungan ke mesin mungkin karena mesinnya mati.\n\nAnda bisa mencoba memulai permainan baru dengan mesin, atau coba bermain melawan yang lain." #: lib/pychess/widgets/gamewidget.py:204 msgid "" "This game can be automatically aborted without rating loss because there has" " not yet been two moves made" msgstr "" #: lib/pychess/widgets/gamewidget.py:206 msgid "Offer Abort" msgstr "" #: lib/pychess/widgets/gamewidget.py:208 msgid "" "Your opponent must agree to abort the game because there has been two or " "more moves made" msgstr "" #: lib/pychess/widgets/gamewidget.py:226 msgid "This game can not be adjourned because one or both players are guests" msgstr "" #: lib/pychess/widgets/gamewidget.py:243 msgid "Claim Draw" msgstr "" #: lib/pychess/widgets/gamewidget.py:325 msgid "Pause" msgstr "" #: lib/pychess/widgets/gamewidget.py:326 msgid "Resume" msgstr "" #: lib/pychess/widgets/gamewidget.py:328 msgid "Offer Pause" msgstr "" #: lib/pychess/widgets/gamewidget.py:329 msgid "Offer Resume" msgstr "" #: lib/pychess/widgets/gamewidget.py:333 msgid "Undo" msgstr "" #: lib/pychess/widgets/gamewidget.py:335 msgid "Offer Undo" msgstr "" #: lib/pychess/widgets/gamewidget.py:550 msgid " has lagged for 30 seconds" msgstr "" #: lib/pychess/widgets/gamewidget.py:566 msgid " is lagging heavily but hasn't disconnected" msgstr "" #: lib/pychess/widgets/gamewidget.py:567 msgid "Continue to wait for opponent, or try to adjourn the game?" msgstr "" #: lib/pychess/widgets/gamewidget.py:575 msgid "Wait" msgstr "" #: lib/pychess/widgets/gamewidget.py:576 msgid "Adjourn" msgstr "" #: lib/pychess/widgets/gamewidget.py:648 msgid "Jump to initial position" msgstr "" #: lib/pychess/widgets/gamewidget.py:653 msgid "Step back one move" msgstr "" #: lib/pychess/widgets/gamewidget.py:658 msgid "Go back to the main line" msgstr "" #: lib/pychess/widgets/gamewidget.py:664 msgid "Step forward one move" msgstr "" #: lib/pychess/widgets/gamewidget.py:669 msgid "Jump to latest position" msgstr "" #: lib/pychess/widgets/gamewidget.py:903 msgid "PyChess was unable to load your panel settings" msgstr "" #: lib/pychess/widgets/gamewidget.py:904 msgid "" "Your panel settings have been reset. If this problem repeats, you should " "report it to the developers" msgstr "" #: lib/pychess/widgets/ionest.py:67 lib/pychess/widgets/newGameDialog.py:389 #: lib/pychess/widgets/TaskerManager.py:210 msgid "You" msgstr "" #: lib/pychess/widgets/ionest.py:70 lib/pychess/widgets/newGameDialog.py:390 #: lib/pychess/widgets/preferencesDialog.py:61 #: lib/pychess/widgets/TaskerManager.py:213 msgid "Guest" msgstr "Tamu" #: lib/pychess/widgets/ionest.py:93 msgid "Error loading game" msgstr "" #: lib/pychess/widgets/ionest.py:127 lib/pychess/widgets/newGameDialog.py:480 msgid "Open Game" msgstr "Buka Permainan" #: lib/pychess/widgets/ionest.py:137 msgid "All Files" msgstr "Semua Berkas" #: lib/pychess/widgets/ionest.py:140 msgid "Detect type automatically" msgstr "Deteksi tipe otomatis" #: lib/pychess/widgets/ionest.py:146 msgid "All Chess Files" msgstr "Semua Berkas Catur" #: lib/pychess/widgets/ionest.py:228 msgid "Save Game" msgstr "Simpan Permainan" #: lib/pychess/widgets/ionest.py:228 msgid "Export position" msgstr "" #: lib/pychess/widgets/ionest.py:232 lib/pychess/widgets/ionest.py:360 msgid "vs." msgstr "" #: lib/pychess/widgets/ionest.py:249 #, python-format msgid "Unknown file type '%s'" msgstr "Tipe berkas tidak diketahui '%s'" #: lib/pychess/widgets/ionest.py:250 #, python-format msgid "" "Was unable to save '%(uri)s' as PyChess doesn't know the format " "'%(ending)s'." msgstr "" #: lib/pychess/widgets/ionest.py:266 #, python-format msgid "Unable to save file '%s'" msgstr "Tidak dapat menyimpan berkas '%s'" #: lib/pychess/widgets/ionest.py:268 msgid "" "You don't have the necessary rights to save the file.\n" "Please ensure that you have given the right path and try again." msgstr "" #: lib/pychess/widgets/ionest.py:276 msgid "_Replace" msgstr "_Ganti" #: lib/pychess/widgets/ionest.py:280 msgid "File exists" msgstr "File sudah ada" #: lib/pychess/widgets/ionest.py:282 #, python-format msgid "" "A file named '%s' already exists. Would you like to replace " "it?" msgstr "Nama berkas '%s' sudah ada. apakah anda ingin menimpanya?" #: lib/pychess/widgets/ionest.py:283 #, python-format msgid "" "The file already exists in '%s'. If you replace it, its content will be " "overwritten." msgstr "Nama berkas '%s' sudah ada. Bila Anda menimpanya, isinya akan diganti dengan yang baru." #: lib/pychess/widgets/ionest.py:299 msgid "Could not save the file" msgstr "Tidak dapat menyimpan berkas" #: lib/pychess/widgets/ionest.py:300 msgid "PyChess was not able to save the game" msgstr "PyChess tidak dapat menyimpan permainan" #: lib/pychess/widgets/ionest.py:301 #, python-format msgid "The error was: %s" msgstr "Kesalahan di: %s" #: lib/pychess/widgets/ionest.py:325 #, python-format msgid "There is %d game with unsaved moves." msgid_plural "There are %d games with unsaved moves." msgstr[0] "" #: lib/pychess/widgets/ionest.py:328 msgid "Save moves before closing?" msgstr "" #: lib/pychess/widgets/ionest.py:339 msgid "Unable to save to configured file. Save the games before closing?" msgstr "" #: lib/pychess/widgets/ionest.py:366 #, python-format msgid "_Save %d document" msgid_plural "_Save %d documents" msgstr[0] "" #: lib/pychess/widgets/ionest.py:412 msgid "Save the current game before you close it?" msgstr "" #: lib/pychess/widgets/ionest.py:420 msgid "" "Unable to save to configured file. Save the current game before you close " "it?" msgstr "" #: lib/pychess/widgets/ionest.py:434 msgid "" "It is not possible later to continue the game,\n" "if you don't save it." msgstr "Tidak akan mungkin akan melanjutkan permainan,\njika Anda tidak menyimapnnya." #: lib/pychess/widgets/LogDialog.py:26 msgid "PyChess Information Window" msgstr "" #: lib/pychess/widgets/LogDialog.py:184 lib/pychess/widgets/LogDialog.py:188 msgid "of" msgstr "" #: lib/pychess/widgets/newGameDialog.py:84 #: lib/pychess/widgets/newGameDialog.py:85 msgid "Human Being" msgstr "Kemanusiaan" #: lib/pychess/widgets/newGameDialog.py:155 msgid "Rapid" msgstr "" #: lib/pychess/widgets/newGameDialog.py:224 msgid "Minutes:" msgstr "Menit:" #: lib/pychess/widgets/newGameDialog.py:228 msgid "Gain:" msgstr "Perolehan:" #: lib/pychess/widgets/newGameDialog.py:241 #, python-format msgid "%(name)s %(minutes)d min + %(gain)d sec/move" msgstr "" #: lib/pychess/widgets/newGameDialog.py:244 #, python-format msgid "%(name)s %(minutes)d min %(gain)d sec/move" msgstr "" #: lib/pychess/widgets/newGameDialog.py:247 #, python-format msgid "%(name)s %(minutes)d min" msgstr "" #: lib/pychess/widgets/newGameDialog.py:265 msgid "Odds" msgstr "" #: lib/pychess/widgets/newGameDialog.py:269 msgid "Asian variants" msgstr "" #: lib/pychess/widgets/newGameDialog.py:301 msgid " chess" msgstr "" #: lib/pychess/widgets/newGameDialog.py:682 msgid "Type or paste PGN game or FEN positions here" msgstr "" #: lib/pychess/widgets/newGameDialog.py:725 msgid "Enter Game" msgstr "Masuk Permainan" #: lib/pychess/widgets/preferencesDialog.py:123 msgid "Select book file" msgstr "" #: lib/pychess/widgets/preferencesDialog.py:128 msgid "Opening books" msgstr "" #: lib/pychess/widgets/preferencesDialog.py:156 msgid "Select Gaviota TB path" msgstr "" #: lib/pychess/widgets/preferencesDialog.py:331 msgid "Open Sound File" msgstr "Buka Berkas Suara" #: lib/pychess/widgets/preferencesDialog.py:341 msgid "Sound files" msgstr "" #: lib/pychess/widgets/preferencesDialog.py:485 msgid "Undescribed panel" msgstr "" #: lib/pychess/widgets/preferencesDialog.py:678 msgid "Select auto save path" msgstr "" #: lib/pychess/widgets/tipOfTheDay.py:51 msgid "" "You can start a new game by Game > New Game, in New Game " "window do you can choose Players, Time Control and Chess " "Variants." msgstr "" #: lib/pychess/widgets/tipOfTheDay.py:52 msgid "" "You can choose from 20 different difficulties to play against the computer." msgstr "" #: lib/pychess/widgets/tipOfTheDay.py:53 msgid "" "Chess Variants are like the pieces of the last line will be placed on the " "board." msgstr "" #: lib/pychess/widgets/tipOfTheDay.py:54 msgid "" "To save a game Game > Save Game As, give the filename and " "choose where you want to be saved. At the bottom choose extension type of " "the file, and Save." msgstr "" #: lib/pychess/widgets/tipOfTheDay.py:55 msgid "" "Do you know that you can call flag when the clock is with you, " "Actions > Call Flag." msgstr "" #: lib/pychess/widgets/tipOfTheDay.py:56 msgid "Pressing Ctrl+Z to offer opponent the possible rollback moves." msgstr "" #: lib/pychess/widgets/tipOfTheDay.py:57 msgid "" "To play on Fullscreen mode, just type F11. Coming back, F11 " "again." msgstr "" #: lib/pychess/widgets/tipOfTheDay.py:58 msgid "Hint mode analyzing your game, enable this type Ctrl+H." msgstr "" #: lib/pychess/widgets/tipOfTheDay.py:59 msgid "" "Spy mode analyzing the oponnent game, enable this type Ctrl+Y." msgstr "" #: lib/pychess/widgets/tipOfTheDay.py:60 msgid "" "You can play chess listening to the sounds of the game, for that, " "Settings > Preferences > Sound tab, enable Use " "sounds in PyChess and choose your preferred sounds." msgstr "" #: lib/pychess/widgets/tipOfTheDay.py:61 msgid "" "Do you know that you can help translate Pychess in your language, " "Help > Translate Pychess." msgstr "" #: lib/pychess/widgets/tipOfTheDay.py:62 msgid "" "Do you know that it is possible to finish a chess game in just 2 turns?" msgstr "" #: lib/pychess/widgets/tipOfTheDay.py:63 msgid "" "Do you know that the number of possible chess games exceeds the number of " "atoms in the Universe?" msgstr "" #: lib/pychess/ic/managers/ChatManager.py:184 msgid "Shout" msgstr "" #: lib/pychess/ic/managers/ChatManager.py:185 msgid "Chess Shout" msgstr "" #: lib/pychess/ic/managers/ChatManager.py:195 #, python-format msgid "Unofficial channel %d" msgstr "" #: lib/pychess/Utils/lutils/LBoard.py:152 #, python-format msgid "" "FEN needs 6 data fields. \n" "\n" "%s" msgstr "" #: lib/pychess/Utils/lutils/LBoard.py:154 #, python-format msgid "" "FEN needs at least 2 data fields in fenstr. \n" "\n" "%s" msgstr "" #: lib/pychess/Utils/lutils/LBoard.py:175 #, python-format msgid "" "Needs 7 slashes in piece placement field. \n" "\n" "%s" msgstr "" #: lib/pychess/Utils/lutils/LBoard.py:178 #, python-format msgid "" "Active color field must be one of w or b. \n" "\n" "%s" msgstr "" #: lib/pychess/Utils/lutils/LBoard.py:189 #, python-format msgid "" "Castling availability field is not legal. \n" "\n" "%s" msgstr "" #: lib/pychess/Utils/lutils/LBoard.py:192 #, python-format msgid "" "En passant cord is not legal. \n" "\n" "%s" msgstr "" #: lib/pychess/Utils/lutils/lmove.py:260 msgid "invalid promoted piece" msgstr "" #: lib/pychess/Utils/lutils/lmove.py:272 msgid "the move needs a piece and a cord" msgstr "" #: lib/pychess/Utils/lutils/lmove.py:306 lib/pychess/Utils/lutils/lmove.py:556 msgid "promotion move without promoted piece is incorrect" msgstr "" #: lib/pychess/Utils/lutils/lmove.py:312 #, python-format msgid "the captured cord (%s) is incorrect" msgstr "" #: lib/pychess/Utils/lutils/lmove.py:323 #, python-format msgid "the end cord (%s) is incorrect" msgstr "" #: lib/pychess/Utils/lutils/strateval.py:24 sidepanel/commentPanel.py:191 #: sidepanel/commentPanel.py:208 msgid "and" msgstr "" #: lib/pychess/Utils/lutils/strateval.py:43 msgid "draws" msgstr "remis" #: lib/pychess/Utils/lutils/strateval.py:45 msgid "mates" msgstr "mat" #: lib/pychess/Utils/lutils/strateval.py:49 msgid "puts opponent in check" msgstr "skak" #: lib/pychess/Utils/lutils/strateval.py:73 msgid "improves king safety" msgstr "" #: lib/pychess/Utils/lutils/strateval.py:75 msgid "slightly improves king safety" msgstr "" #: lib/pychess/Utils/lutils/strateval.py:108 msgid "moves a rook to an open file" msgstr "" #: lib/pychess/Utils/lutils/strateval.py:109 msgid "moves an rook to a half-open file" msgstr "" #: lib/pychess/Utils/lutils/strateval.py:119 #: lib/pychess/Utils/lutils/strateval.py:121 #: lib/pychess/Utils/lutils/strateval.py:124 #: lib/pychess/Utils/lutils/strateval.py:126 #, python-format msgid "moves bishop into fianchetto: %s" msgstr "" #: lib/pychess/Utils/lutils/strateval.py:132 #, python-format msgid "promotes a Pawn to a %s" msgstr "promosikan Pion menjadi %s" #: lib/pychess/Utils/lutils/strateval.py:135 msgid "castles" msgstr "Kastil" #: lib/pychess/Utils/lutils/strateval.py:158 msgid "takes back material" msgstr "" #: lib/pychess/Utils/lutils/strateval.py:162 #: lib/pychess/Utils/lutils/strateval.py:170 msgid "sacrifies material" msgstr "" #: lib/pychess/Utils/lutils/strateval.py:164 msgid "exchanges material" msgstr "" #: lib/pychess/Utils/lutils/strateval.py:166 msgid "captures material" msgstr "" #: lib/pychess/Utils/lutils/strateval.py:291 #, python-format msgid "rescues a %s" msgstr "" #: lib/pychess/Utils/lutils/strateval.py:294 #, python-format msgid "threatens to win material by %s" msgstr "" #: lib/pychess/Utils/lutils/strateval.py:296 #, python-format msgid "increases the pressure on %s" msgstr "" #: lib/pychess/Utils/lutils/strateval.py:298 #, python-format msgid "defends %s" msgstr "bertahan %s" #: lib/pychess/Utils/lutils/strateval.py:336 #, python-format msgid "pins an enemy %(oppiece)s on the %(piece)s at %(cord)s" msgstr "" #: lib/pychess/Utils/lutils/strateval.py:369 #, python-format msgid "White has a new piece in outpost: %s" msgstr "" #: lib/pychess/Utils/lutils/strateval.py:377 #, python-format msgid "Black has a new piece in outpost: %s" msgstr "" #: lib/pychess/Utils/lutils/strateval.py:416 #, python-format msgid "%(color)s has a new passed pawn on %(cord)s" msgstr "" #: lib/pychess/Utils/lutils/strateval.py:470 msgid "half-open" msgstr "" #: lib/pychess/Utils/lutils/strateval.py:472 #, python-format msgid "in the %(x)s%(y)s file" msgstr "" #: lib/pychess/Utils/lutils/strateval.py:474 #, python-format msgid "in the %(x)s%(y)s files" msgstr "" #: lib/pychess/Utils/lutils/strateval.py:477 #, python-format msgid "%(color)s got a double pawn %(place)s" msgstr "" #: lib/pychess/Utils/lutils/strateval.py:478 #, python-format msgid "%(color)s got new double pawns %(place)s" msgstr "" #: lib/pychess/Utils/lutils/strateval.py:485 #, python-format msgid "%(color)s got an isolated pawn in the %(x)s file" msgid_plural "%(color)s got isolated pawns in the %(x)s files" msgstr[0] "" #: lib/pychess/Utils/lutils/strateval.py:492 #, python-format msgid "%s moves pawns into stonewall formation" msgstr "" #: lib/pychess/Utils/lutils/strateval.py:507 #: lib/pychess/Utils/lutils/strateval.py:514 #, python-format msgid "%s can no longer castle" msgstr "" #: lib/pychess/Utils/lutils/strateval.py:508 #: lib/pychess/Utils/lutils/strateval.py:515 #, python-format msgid "%s can no longer castle in queenside" msgstr "" #: lib/pychess/Utils/lutils/strateval.py:510 #: lib/pychess/Utils/lutils/strateval.py:517 #, python-format msgid "%s can no longer castle in kingside" msgstr "" #: lib/pychess/Utils/lutils/strateval.py:551 #, python-format msgid "%(opcolor)s has a new trapped bishop on %(cord)s" msgstr "" #: lib/pychess/Utils/lutils/strateval.py:573 #, python-format msgid "develops a pawn: %s" msgstr "" #: lib/pychess/Utils/lutils/strateval.py:574 #, python-format msgid "brings a pawn closer to the backrow: %s" msgstr "" #: lib/pychess/Utils/lutils/strateval.py:591 #, python-format msgid "brings a %(piece)s closer to enemy king: %(cord)s" msgstr "" #: lib/pychess/Utils/lutils/strateval.py:594 #, python-format msgid "develops a %(piece)s: %(cord)s" msgstr "" #: lib/pychess/Utils/lutils/strateval.py:612 #, python-format msgid "places a %(piece)s more active: %(cord)s" msgstr "" #: lib/pychess/Utils/lutils/strateval.py:638 msgid "White should do pawn storm in right" msgstr "" #: lib/pychess/Utils/lutils/strateval.py:640 msgid "Black should do pawn storm in left" msgstr "" #: lib/pychess/Utils/lutils/strateval.py:643 msgid "White should do pawn storm in left" msgstr "" #: lib/pychess/Utils/lutils/strateval.py:645 msgid "Black should do pawn storm in right" msgstr "" #: lib/pychess/Utils/lutils/strateval.py:671 msgid "Black has a rather cramped position" msgstr "" #: lib/pychess/Utils/lutils/strateval.py:673 msgid "Black has a slightly cramped position" msgstr "" #: lib/pychess/Utils/lutils/strateval.py:675 msgid "White has a rather cramped position" msgstr "" #: lib/pychess/Utils/lutils/strateval.py:677 msgid "White has a slightly cramped position" msgstr "" #: sidepanel/annotationPanel.py:26 msgid "Annotation" msgstr "" #: sidepanel/annotationPanel.py:29 msgid "Annotated game" msgstr "" #: sidepanel/annotationPanel.py:236 msgid "Copy PGN" msgstr "" #: sidepanel/annotationPanel.py:249 msgid "Add start comment" msgstr "" #: sidepanel/annotationPanel.py:254 msgid "Add comment" msgstr "" #: sidepanel/annotationPanel.py:258 sidepanel/annotationPanel.py:316 msgid "Edit comment" msgstr "" #: sidepanel/annotationPanel.py:269 msgid "Forced move" msgstr "" #: sidepanel/annotationPanel.py:274 msgid "Add move symbol" msgstr "" #: sidepanel/annotationPanel.py:280 msgid "Unclear position" msgstr "" #: sidepanel/annotationPanel.py:289 msgid "Zugzwang" msgstr "" #: sidepanel/annotationPanel.py:290 msgid "Development adv." msgstr "" #: sidepanel/annotationPanel.py:291 msgid "Initiative" msgstr "" #: sidepanel/annotationPanel.py:292 msgid "With attack" msgstr "" #: sidepanel/annotationPanel.py:293 msgid "Compensation" msgstr "" #: sidepanel/annotationPanel.py:294 msgid "Counterplay" msgstr "" #: sidepanel/annotationPanel.py:295 msgid "Time pressure" msgstr "" #: sidepanel/annotationPanel.py:300 msgid "Add evaluation symbol" msgstr "" #: sidepanel/annotationPanel.py:304 msgid "Remove symbols" msgstr "" #: sidepanel/annotationPanel.py:911 #, python-format msgid "round %s" msgstr "" #: sidepanel/bookPanel.py:21 msgid "Hints" msgstr "" #: sidepanel/bookPanel.py:25 msgid "" "The hint panel will provide computer advice during each stage of the game" msgstr "" #: sidepanel/bookPanel.py:27 msgid "Official PyChess panel." msgstr "" #: sidepanel/bookPanel.py:87 msgid "Opening Book" msgstr "Membuka Buku" #: sidepanel/bookPanel.py:88 msgid "" "The opening book will try to inspire you during the opening phase of the " "game by showing you common moves made by chess masters" msgstr "" #: sidepanel/bookPanel.py:139 #, python-format msgid "Analysis by %s" msgstr "" #: sidepanel/bookPanel.py:140 #, python-format msgid "" "%s will try to predict which move is best and which side has the advantage" msgstr "" #: sidepanel/bookPanel.py:142 #, python-format msgid "Threat analysis by %s" msgstr "" #: sidepanel/bookPanel.py:143 #, python-format msgid "" "%s will identify what threats would exist if it were your opponent's turn to" " move" msgstr "" #: sidepanel/bookPanel.py:159 sidepanel/bookPanel.py:269 msgid "Calculating..." msgstr "" #: sidepanel/bookPanel.py:300 msgid "" "Engine scores are in units of pawns, from White's point of view. Double " "clicking on analysis lines you can insert them into Annotation panel as " "variations." msgstr "" #: sidepanel/bookPanel.py:302 msgid "" "Adding suggestions can help you find ideas, but slows down the computer's " "analysis." msgstr "" #: sidepanel/bookPanel.py:311 msgid "Endgame Table" msgstr "" #: sidepanel/bookPanel.py:315 msgid "" "The endgame table will show exact analysis when there are few pieces on the " "board." msgstr "" #: sidepanel/bookPanel.py:364 sidepanel/bookPanel.py:367 #, python-format msgid "Mate in %d" msgstr "" #: sidepanel/bookPanel.py:554 msgid "" "In this position,\n" "there is no legal move." msgstr "" #: sidepanel/chatPanel.py:21 msgid "" "The chat panel lets you communicate with your opponent during the game, " "assuming he or she is interested" msgstr "" #: sidepanel/commentPanel.py:16 msgid "Comments" msgstr "Komentar" #: sidepanel/commentPanel.py:20 msgid "The comments panel will try to analyze and explain the moves played" msgstr "" #: sidepanel/commentPanel.py:121 msgid "Initial position" msgstr "" #: sidepanel/commentPanel.py:254 #, python-format msgid "%(color)s moves a %(piece)s to %(cord)s" msgstr "" #: sidepanel/engineOutputPanel.py:15 msgid "Engines" msgstr "" #: sidepanel/engineOutputPanel.py:20 msgid "" "The engine output panel shows the thinking output of chess engines (computer" " players) during a game" msgstr "" #: sidepanel/engineOutputPanel.py:44 msgid "No chess engines (computer players) are participating in this game." msgstr "" #: sidepanel/historyPanel.py:10 msgid "Move History" msgstr "Riwayat Pergerakan" #: sidepanel/historyPanel.py:13 msgid "" "The moves sheet keeps track of the players' moves and lets you navigate " "through the game history" msgstr "" #: sidepanel/scorePanel.py:15 msgid "Score" msgstr "Nilai" #: sidepanel/scorePanel.py:19 msgid "" "The score panel tries to evaluate the positions and shows you a graph of the" " game progress" msgstr "" pychess-0.12.2/lang/id/LC_MESSAGES/pychess.mo0000644000175000017470000002034712653231273020677 0ustar tamasusers00000000000000d  '  ! 2 F a r ~  Q & 7- *e (       / 8CTj    D[] d n z       (*/ > J#Tx68>@FMR Y c q| 5T `y   !Ack t%        ".EK S^"d+' !&H ^l K!93Q2    &*A JXhz  "5 :LF    %17M^m  #$;B R3_W/G`fl  $! #- >I4R     & @ J Q ] "c +     }DpaV]N9!BRc34=b_%mGIC.Y y-`Kk,?)^|1>;E/7wser"PT*58Sf& H#nv(~xd0J+U:hQq g\ji@6'LAto[2MlO u WF{ <zZ$X%s was declined by your opponent'%s' is not a registered namePromote pawn to what?AnalyzingAnimationDate of gameEnter Game NotationGame dataNewsPlay Sound When...PlayersToolsA file named '%s' already exists. Would you like to replace it?Engine, %s, has diedPyChess was not able to save the gameUnable to save file '%s'Unknown file type '%s'About ChessAll Chess FilesAll FilesBBeepBishopBlackBlitzChess GameChess PositionClockClose _without SavingCommentsConnectingConnection ErrorConnection was closedCould not save the fileDetect type automaticallyEmailEnter GameEvent:File existsGain:Game informationGame is _drawn:Game is _lost:Game is _won:GuestHuman BeingIt is not possible later to continue the game, if you don't save it.KKnightLightningLoaded gameLocal EventLocal SiteLog on ErrorLog on as _GuestMinutes:Move HistoryNNameNew GameNo soundNormalObserved _ends:Offer _DrawOpen GameOpen Sound FileOpening BookPPingPlayer _RatingPreferencesPromotionPyChess - Connect to Internet ChessPyChess - Internet Chess: FICSPyChess has lost connection to the engine, probably because it has died. You can try to start a new game with the engine, or try to play against another one.QQueenRRatedRatingRookRound:Save GameSave Game _AsSaved gameScoreSelect sound file...Simple Chess PositionSite:Sp_y modeSpentThe connection was broken - got "end of file" messageThe error was: %sThe file already exists in '%s'. If you replace it, its content will be overwritten.The game ended in a drawThe game has been abortedThe game has been adjournedThe game has been killedTimeTypeUnable to accept %sUnknownUnratedUse _analyzerWhiteYou sent a draw offerYour opponent asks you to hurry!Your opponent is not out of time._Accept_Actions_Call Flag_Game_Help_Hide tabs when only one game is open_Hint mode_Load Game_Log Viewer_Name:_New Game_Observed moves:_Password:_Replace_Rotate Board_Save Game_Start Game_Use sounds in PyChess_Viewcastlesdefends %sdrawshttp://en.wikipedia.org/wiki/Chesshttp://en.wikipedia.org/wiki/Rules_of_chessmatesonline in totalpromotes a Pawn to a %sputs opponent in checkProject-Id-Version: pychess Report-Msgid-Bugs-To: POT-Creation-Date: 2016-01-27 13:28+0100 PO-Revision-Date: 2016-01-28 08:56+0000 Last-Translator: slav0nic Language-Team: Indonesian (http://www.transifex.com/gbtami/pychess/language/id/) MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Language: id Plural-Forms: nplurals=1; plural=0; %s ditolak oleh musuh Anda'%s' bukan nama yang terdaftarNaikkan pion menjadi?MenganalisaAnimasiTanggal permainanMasukkan Catatan PermainanData permainan,/b>BeritaMainkan Suara Ketika...PemainPerkakasNama berkas '%s' sudah ada. apakah anda ingin menimpanya?Mesin, %s, matiPyChess tidak dapat menyimpan permainanTidak dapat menyimpan berkas '%s'Tipe berkas tidak diketahui '%s'Tentang CaturSemua Berkas CaturSemua BerkasBBipMentariHitamSerangan kilatPermainan CaturPosisi CaturJamTutup _tanpa MenyimpanKomentarMenyambungkanGalat SambunganSambungan ditutupTidak dapat menyimpan berkasDeteksi tipe otomatisEmailMasuk PermainanPertandingan:File sudah adaPerolehan:Informasi permainanPermainan _seri:Permainan _kalah:Permainan _menang:TamuKemanusiaanTidak akan mungkin akan melanjutkan permainan, jika Anda tidak menyimapnnya.KKudaHalilintarPermainan dimuatEven LokalSitus LokalGalat Log masukLog masuk sebagai _TamuMenit:Riwayat PergerakanNNamaPermainan BaruTanpa SuaraBiasaPengamatan _berakhir:Tawarkan _ImbangBuka PermainanBuka Berkas SuaraMembuka BukuPPing_Penilaian PemainPreferensiKenaikanPyChess - Sambung ke Catur InternetPyChess - Catur Internet: FICSPyChess telah kehilangan sambungan ke mesin mungkin karena mesinnya mati. Anda bisa mencoba memulai permainan baru dengan mesin, atau coba bermain melawan yang lain.QRatuRNilaiRatingBentengPutaran:Simpan PermainanSimpan Permainan Seb_agaiPermainan disimpanNilaiPilih berkas suara...Posisi Catur SederhanaSitus:Mode _mata-mataMenghabiskanSambungan terputus - didapatkan pesan "end of file"Kesalahan di: %sNama berkas '%s' sudah ada. Bila Anda menimpanya, isinya akan diganti dengan yang baru.Permainan berakhir seriPermainan telah dibatalkanPermainan telah ditundaPermainan telah diakhiriWaktuJenisTidak dapat disetujui %sTidak DikenalBelum dinilaiGunakan _analyzerPutihAnda mengirim tawaran seriMusuh Anda meminta anda lebih cepat!Musuh Anda belum kehabisan waktu.Terim_aTind_akan_Panggil Bendera_Permainan_Bantuan_Sembunyikan tab ketika hanya satu permainan terbukaMode _Petunjuk_Muat PermainanPenampil _Log_Nama:Permai_nan BaruPerpindahan _diamati:Kata _Laluan:_Ganti_Putar Papan_Simpan Permainan_Mulai PermainanG_unakan suara di PyChess_TampilanKastilbertahan %sremishttp://en.wikipedia.org/wiki/Chesshttp://en.wikipedia.org/wiki/Rules_of_chessmattotal tersambungpromosikan Pion menjadi %sskakpychess-0.12.2/lang/hu/0000755000175000017470000000000012653231274015112 5ustar tamasusers00000000000000pychess-0.12.2/lang/hu/LC_MESSAGES/0000755000175000017470000000000012653231274016677 5ustar tamasusers00000000000000pychess-0.12.2/lang/hu/LC_MESSAGES/pychess.po0000644000175000017470000033405112652363257020731 0ustar tamasusers00000000000000# SOME DESCRIPTIVE TITLE. # Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER # This file is distributed under the same license as the pychess package. # # Translators: # Bajusz Tamás , 2006, 2007, 2010 # gbtami , 2013-2016 # gbtami , 2012 msgid "" msgstr "" "Project-Id-Version: pychess\n" "Report-Msgid-Bugs-To: \n" "POT-Creation-Date: 2016-01-27 13:28+0100\n" "PO-Revision-Date: 2016-01-28 09:09+0000\n" "Last-Translator: gbtami \n" "Language-Team: Hungarian (http://www.transifex.com/gbtami/pychess/language/hu/)\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" "Language: hu\n" "Plural-Forms: nplurals=2; plural=(n != 1);\n" # "Plural-Forms: nplurals=INTEGER; plural=EXPRESSION;\n" #: glade/analyze_game.glade:22 msgid "Analyze game" msgstr "Játszma gépi elemzése" #: glade/analyze_game.glade:87 msgid "Use analyzer:" msgstr "Elemző program:" #: glade/analyze_game.glade:122 glade/PyChess.glade:2054 msgid "Maximum analysis time in seconds:" msgstr "Elemzési idő másodpercben:" #: glade/analyze_game.glade:163 msgid "" "If the analyzer finds a move where the evaluation difference (the difference" " between the evaluation for the move it thinks is the best move and the " "evaluation for the move made in the game) exceeds this value, it will add an" " annotation for that move (consisting of the engine's Principal Variation " "for the move) to the Annotation panel" msgstr "Ha az elemzőprogram olyan lépést talál amelynek értéke és az általa legjobbnak gondolt lépés értéke közötti különbség nagyobb mint ez a küszöb, akkor ehhez a lépéshez hozzáad egy megjegyzést (az általa legjobbnak tartott lépéssel kezdődő változatot) az elemzés panelen." #: glade/analyze_game.glade:164 msgid "Variation annotation creation threshold in centipawns:" msgstr "Változat létrehozási küszöb értéke" #: glade/analyze_game.glade:198 msgid "Analyze from current position" msgstr "Elemzés az aktuális állástól" #: glade/analyze_game.glade:214 msgid "Add threatening variation lines " msgstr "Fenyegetés variációk hozzáadása" #: glade/analyze_game.glade:229 glade/PyChess.glade:1459 msgid "Colorize analyzed moves" msgstr "Elemzett lépések színezése" #: glade/analyze_game.glade:244 glade/PyChess.glade:1495 msgid "Show evaluation values" msgstr "Elemző program értékeinek mutatása" #: glade/discovererDialog.glade:18 msgid "PyChess is discovering your engines. Please wait." msgstr "Kis türelmet, a PyChess telepített sakkmotorokat keres." #: glade/discovererDialog.glade:77 msgid "PyChess.py:" msgstr "PyChess.py" #: glade/discovererDialog.glade:89 msgid "ShredderLinuxChess:" msgstr "ShredderLinuxChess" #: glade/discovererDialog.glade:101 msgid "gnuchess:" msgstr "gnuchess" #: glade/fics_logon.glade:7 msgid "PyChess - Connect to Internet Chess" msgstr "PyChess - Kapcsolódás a FICS-hez" #: glade/fics_logon.glade:47 msgid "Connect to the Free Online Chess Server" msgstr "Csatlakozás a FICS szerverhez" #: glade/fics_logon.glade:129 glade/taskers.glade:394 msgid "_Password:" msgstr "_Jelszó:" #: glade/fics_logon.glade:143 msgid "_Name:" msgstr "_Név:" #: glade/fics_logon.glade:191 msgid "Log on as _Guest" msgstr "Bejelentkezés _vendégként" #: glade/fics_logon.glade:227 msgid "Host:" msgstr "Hoszt:" #: glade/fics_logon.glade:259 msgid "Po_rts:" msgstr "_Portok:" #: glade/fics_logon.glade:271 msgid "Auto login on startup" msgstr "Automatikus belépés induláskor" #: glade/fics_logon.glade:385 msgid "S_ign up" msgstr "_Regisztrálj" #: glade/fics_lounge.glade:35 msgid "Challenge: " msgstr "Kihívás: " #: glade/fics_lounge.glade:97 msgid "Send Challenge" msgstr "Kihívás elküldése" #: glade/fics_lounge.glade:133 msgid "Challenge:" msgstr "Kihívás:" #: glade/fics_lounge.glade:327 glade/fics_lounge.glade:2078 msgid "Lightning:" msgstr "Villám" #: glade/fics_lounge.glade:351 glade/fics_lounge.glade:2102 msgid "Standard:" msgstr "Standard" #: glade/fics_lounge.glade:375 glade/fics_lounge.glade:2126 msgid "Blitz:" msgstr "Schnell" #: glade/fics_lounge.glade:400 msgid "2 min, Fischer Random, Black" msgstr "2 perc, Fischer Random, Sötét" #: glade/fics_lounge.glade:422 msgid "10 min + 6 sec/move, White" msgstr "10 perc + 6 mp/lépés, Világos" #: glade/fics_lounge.glade:444 msgid "5 min" msgstr "5 perc" #: glade/fics_lounge.glade:480 msgid "Edit Seek" msgstr "Keresés" #: glade/fics_lounge.glade:584 lib/pychess/ic/ICLounge.py:2208 #: lib/pychess/ic/__init__.py:101 lib/pychess/Utils/GameModel.py:206 msgid "Untimed" msgstr "Időkontroll nélküli" #: glade/fics_lounge.glade:637 msgid "Minutes: " msgstr "Perc: " #: glade/fics_lounge.glade:665 msgid " Gain: " msgstr "Jóváírás: " #: glade/fics_lounge.glade:703 msgid "Time control: " msgstr "Időkontroll: " #: glade/fics_lounge.glade:716 lib/pychess/ic/FICSObjects.py:56 #: lib/pychess/ic/ICLounge.py:1137 lib/pychess/ic/ICLounge.py:2208 #: lib/pychess/ic/__init__.py:99 msgid "Standard" msgstr "Standard" #: glade/fics_lounge.glade:757 glade/newInOut.glade:633 msgid "Time Control" msgstr "Időkontroll" #: glade/fics_lounge.glade:814 glade/fics_lounge.glade:1346 msgid "Don't care" msgstr "Mindegy" #: glade/fics_lounge.glade:879 msgid "Your strength: " msgstr "Erősséged:" #: glade/fics_lounge.glade:921 msgid "(Blitz)" msgstr "(Schnell)" #: glade/fics_lounge.glade:951 msgid "Opponent's strength: " msgstr "Ellenfél erőssége:" #: glade/fics_lounge.glade:1055 msgid "" "When this button is in the \"locked\" state, the relationship\n" "between \"Opponent's strength\" and \"Your strength\" will be\n" "preserved when \n" "a) your rating for the type of game sought has changed\n" "b) you change the variant or the time control" msgstr "Amikor ez a gomb le van zárva, a kapcsolat\naz \"Ellenfél erőssége\" és az \"Erősséged\" között\nmegőrződik, amikor\na) az értékszámod az adott típusú keresésben megváltozik\nb) megváltoztatod a sakk variánst vagy az időkontrollt." #: glade/fics_lounge.glade:1095 msgid "Center:" msgstr "Közép:" #: glade/fics_lounge.glade:1134 msgid "1200" msgstr "1200" #: glade/fics_lounge.glade:1188 msgid "Tolerance:" msgstr "Eltérés:" #: glade/fics_lounge.glade:1243 lib/pychess/ic/ICLounge.py:2452 msgid "Hide" msgstr "Elrejt" #: glade/fics_lounge.glade:1289 msgid "Opponent Strength" msgstr "Ellenfél erőssége" #: glade/fics_lounge.glade:1386 lib/pychess/Database/gamelist.py:40 #: lib/pychess/ic/ICLounge.py:1357 lib/pychess/ic/ICLounge.py:1557 #: lib/pychess/ic/ICLounge.py:2108 lib/pychess/Utils/repr.py:10 #: lib/pychess/widgets/ChessClock.py:40 #: lib/pychess/widgets/TaskerManager.py:153 msgid "White" msgstr "Világos" #: glade/fics_lounge.glade:1414 lib/pychess/Database/gamelist.py:40 #: lib/pychess/ic/ICLounge.py:1358 lib/pychess/ic/ICLounge.py:1558 #: lib/pychess/ic/ICLounge.py:2110 lib/pychess/Utils/repr.py:10 #: lib/pychess/widgets/ChessClock.py:40 #: lib/pychess/widgets/TaskerManager.py:154 msgid "Black" msgstr "Sötét" #: glade/fics_lounge.glade:1453 msgid "Your Color" msgstr "Szín:" #: glade/fics_lounge.glade:1512 msgid "Play normal chess rules" msgstr "Standard" #: glade/fics_lounge.glade:1552 msgid "Play" msgstr " " #: glade/fics_lounge.glade:1618 glade/newInOut.glade:833 msgid "Chess Variant" msgstr "Sakkvariánsok" #: glade/fics_lounge.glade:1676 msgid "Rated game" msgstr "Értékelt játszma" #: glade/fics_lounge.glade:1692 msgid "Manually accept opponent" msgstr "Ellenfél elfogadása kézileg" #: glade/fics_lounge.glade:1722 msgid "Options" msgstr "Beállítások" #: glade/fics_lounge.glade:1750 msgid "PyChess - Internet Chess: FICS" msgstr "PyChess - Internet sakk: FICS" #: glade/fics_lounge.glade:1823 msgid "_Clear Seeks" msgstr "Keresések _törlése" #: glade/fics_lounge.glade:1847 msgid "_Accept" msgstr "_Elfogadás" #: glade/fics_lounge.glade:1871 msgid "_Decline" msgstr "_Elutasítás" #: glade/fics_lounge.glade:2151 msgid "2 min, Fischer Random, 1800↓, Black" msgstr "2 perc, Fischer Random, 1800↓, Sötét" #: glade/fics_lounge.glade:2172 msgid "10 min + 6 sec/move, 1400↑, White" msgstr "10 perc + 6 mp/lépés, 1400↑, Világos" #: glade/fics_lounge.glade:2193 msgid "5 min, 1200-1800, Manual" msgstr "5 perc, 1200-1800, Kézi" #: glade/fics_lounge.glade:2247 msgid "Send all seeks" msgstr "Minden keresés elküldése" #: glade/fics_lounge.glade:2301 msgid "Send seek" msgstr "Keresés elküldése" #: glade/fics_lounge.glade:2337 msgid "Create Seek" msgstr "Keresés" #: glade/fics_lounge.glade:2353 msgid "_Seeks / Challenges" msgstr "Keresések/Kihívások" #: glade/fics_lounge.glade:2374 lib/pychess/ic/ICLounge.py:472 #: lib/pychess/ic/ICLounge.py:670 lib/pychess/ic/ICLounge.py:1357 #: lib/pychess/ic/ICLounge.py:1358 msgid "Rating" msgstr "Értékszám" #: glade/fics_lounge.glade:2399 msgid "Time" msgstr "Idő" #: glade/fics_lounge.glade:2419 msgid "Seek _Graph" msgstr "Keresések grafikusan" #: glade/fics_lounge.glade:2444 msgid "0 Players Ready" msgstr "0 játékos" #: glade/fics_lounge.glade:2496 msgid "Challenge" msgstr "Kihívás" #: glade/fics_lounge.glade:2549 glade/fics_lounge.glade:2735 msgid "Observe" msgstr "_Megtekint" #: glade/fics_lounge.glade:2602 msgid "Start Private Chat" msgstr "Magán csevegés" #: glade/fics_lounge.glade:2659 msgid "_Player List" msgstr "Játékosok" #: glade/fics_lounge.glade:2792 msgid "_Game List" msgstr "Játszmák" #: glade/fics_lounge.glade:2847 msgid "_My games" msgstr "_Saját" #: glade/fics_lounge.glade:2904 glade/PyChess.glade:841 msgid "Offer _Resume" msgstr "_Folytatás ajánlása" #: glade/fics_lounge.glade:2962 glade/PyChess.glade:880 msgid "R_esign" msgstr "F_eladás" #: glade/fics_lounge.glade:3006 glade/PyChess.glade:820 msgid "Offer _Draw" msgstr "_Döntetlen ajánlása" #: glade/fics_lounge.glade:3050 msgid "Offer A_bort" msgstr "_Megszakítás ajánlása" #: glade/fics_lounge.glade:3107 msgid "Pre_view" msgstr "_Megnéz" #: glade/fics_lounge.glade:3151 msgid "Examine" msgstr "Végigjátszás" #: glade/fics_lounge.glade:3208 msgid "_Archived" msgstr "_Archívum" #: glade/fics_lounge.glade:3313 msgid "News" msgstr "Hírek" #: glade/fics_lounge.glade:3345 msgid "Show Console" msgstr "Konzol" #: glade/fics_lounge.glade:3359 msgid "Show _Chat" msgstr "_Csevegés" #: glade/fics_lounge.glade:3373 msgid "_Log Off" msgstr "_Kijelentkezés" #: glade/fics_lounge.glade:3393 msgid "Tools" msgstr "Eszközök" #: glade/fics_lounge.glade:3428 msgid "Asymmetric Random " msgstr "Aszimmetrikus kevert" #: glade/findbar.glade:6 msgid "window1" msgstr "window1" #: glade/findbar.glade:21 msgid "0 of 0" msgstr "0/0" #: glade/findbar.glade:66 msgid "Search:" msgstr "Keres:" #: glade/findbar.glade:134 msgid "_Previous" msgstr "_Előző" #: glade/findbar.glade:192 msgid "_Next" msgstr "_Következő" #: glade/newInOut.glade:45 lib/pychess/widgets/newGameDialog.py:445 msgid "New Game" msgstr "Új játszma" #: glade/newInOut.glade:108 msgid "_Start Game" msgstr "_Játszma indítása" #: glade/newInOut.glade:130 msgid "Copy FEN" msgstr "FEN másolása" #: glade/newInOut.glade:143 msgid "Clear" msgstr "Törlés" #: glade/newInOut.glade:156 msgid "Paste FEN" msgstr "FEN beillesztése" #: glade/newInOut.glade:257 msgid "_Black player:" msgstr "Sötét:" #: glade/newInOut.glade:274 msgid "_White player:" msgstr "Világos:" #: glade/newInOut.glade:385 msgid "Players" msgstr "Játékosok" #: glade/newInOut.glade:436 msgid "_Untimed" msgstr "Időkontroll nélküli" #: glade/newInOut.glade:475 msgid "Blitz: 5 min" msgstr "Schnell\t:5 perc" #: glade/newInOut.glade:526 msgid "Rapid: 15 min + 10 sec/move" msgstr "Rapid:\t15 perc + 10mp/lépés" #: glade/newInOut.glade:575 msgid "Normal: 40 min + 15 sec/move" msgstr "Standard:\t40 perc + 15mp/lépés" #: glade/newInOut.glade:684 msgid "_Play Normal chess" msgstr "Standard" #: glade/newInOut.glade:724 msgid "Play Fischer Random chess" msgstr "Fischer random" #: glade/newInOut.glade:774 msgid "Play Losers chess" msgstr "Lúzer sakk" #: glade/newInOut.glade:919 msgid "Open Game" msgstr "Játszma megnyitása" #: glade/newInOut.glade:1162 msgid "Initial Position" msgstr "Kezdőállás" #: glade/newInOut.glade:1219 msgid "Enter Game Notation" msgstr "Játszma beírása" #: glade/newInOut.glade:1314 msgid "Halfmove clock" msgstr "Féllépés számláló" #: glade/newInOut.glade:1327 msgid "En passant line" msgstr "En passant vonal" #: glade/newInOut.glade:1339 msgid "Side to move" msgstr "Lépésre következik" #: glade/newInOut.glade:1351 msgid "Move number" msgstr "Lépésszám" #: glade/newInOut.glade:1361 msgid "Black O-O" msgstr "Sötét O-O" #: glade/newInOut.glade:1375 msgid "Black O-O-O" msgstr "Sötét O-O-O" #: glade/newInOut.glade:1389 msgid "White O-O-O" msgstr "Világos O-O-O" #: glade/newInOut.glade:1403 msgid "White O-O" msgstr "Világos O-O" #: glade/promotion.glade:7 msgid "Promotion" msgstr "Átváltozás" #: glade/promotion.glade:49 lib/pychess/Utils/repr.py:12 msgid "Queen" msgstr "vezér" #: glade/promotion.glade:95 lib/pychess/Utils/repr.py:12 msgid "Rook" msgstr "bástya" #: glade/promotion.glade:141 lib/pychess/Utils/repr.py:12 msgid "Bishop" msgstr "futó" #: glade/promotion.glade:187 lib/pychess/Utils/repr.py:12 msgid "Knight" msgstr "huszár" #: glade/promotion.glade:233 lib/pychess/Utils/repr.py:12 msgid "King" msgstr "király" #: glade/promotion.glade:265 msgid "Promote pawn to what?" msgstr "Mire változzon a gyalog?" #: glade/PyChess.glade:9 msgid "Chess client" msgstr "Sakkprogram" #: glade/PyChess.glade:44 msgid "Game information" msgstr "Játszma információk" #: glade/PyChess.glade:164 msgid "Event:" msgstr "Esemény:" #: glade/PyChess.glade:178 msgid "Site:" msgstr "Hely:" #: glade/PyChess.glade:204 msgid "Round:" msgstr "Forduló:" #: glade/PyChess.glade:237 msgid "White:" msgstr "Világos:" #: glade/PyChess.glade:249 msgid "Black:" msgstr "Sötét:" #: glade/PyChess.glade:302 msgid "Game data" msgstr "Játszma adatai" #: glade/PyChess.glade:357 msgid "Date of game" msgstr "Játszma időpontja" #: glade/PyChess.glade:495 msgid "_Game" msgstr "_Játszma" #: glade/PyChess.glade:502 msgid "_New Game" msgstr "_Új" #: glade/PyChess.glade:515 msgid "Play _Internet Chess" msgstr "_Internetes sakk" #: glade/PyChess.glade:534 msgid "_Load Game" msgstr "Játszma be_töltése" #: glade/PyChess.glade:550 msgid "Load _Recent Game" msgstr "_Korábbi játszmák" #: glade/PyChess.glade:558 msgid "Open _Database" msgstr "Adatbázis megnyitása" #: glade/PyChess.glade:569 lib/pychess/widgets/newGameDialog.py:615 msgid "Setup Position" msgstr "Pozíció felállítása" #: glade/PyChess.glade:579 msgid "Enter Game _Notation" msgstr "Játszma beírása" #: glade/PyChess.glade:592 msgid "_Save Game" msgstr "Menté_s" #: glade/PyChess.glade:606 msgid "Save Game _As" msgstr "Mentés m_ásként" #: glade/PyChess.glade:624 msgid "Share Game" msgstr "Megosztás" #: glade/PyChess.glade:630 msgid "_Export Position" msgstr "Állás _exportálása" #: glade/PyChess.glade:644 msgid "_Analyze Game" msgstr "Játszma elemzése" #: glade/PyChess.glade:678 msgid "Player _Rating" msgstr "Játékos é_rtékszáma" #: glade/PyChess.glade:723 msgid "_Edit" msgstr "S_zerkesztés" #: glade/PyChess.glade:734 msgid "_Copy PGN" msgstr "PGN másolása" #: glade/PyChess.glade:746 msgid "_Copy FEN" msgstr "FEN másolása" #: glade/PyChess.glade:763 msgid "_Engines" msgstr "_Sakkmotorok" #: glade/PyChess.glade:789 msgid "_Actions" msgstr "_Műveletek" #: glade/PyChess.glade:800 msgid "Offer _Abort" msgstr "_Megszakítás ajánlása" #: glade/PyChess.glade:810 msgid "Offer Ad_journment" msgstr "_Elhalasztás ajánlása" #: glade/PyChess.glade:831 msgid "Offer _Pause" msgstr "_Szünet kérése" #: glade/PyChess.glade:847 msgid "Offer _Undo" msgstr "_Lépés visszavétel kérése" #: glade/PyChess.glade:870 msgid "_Call Flag" msgstr "_Időtúllépés bejelentése" #: glade/PyChess.glade:890 msgid "Ask to _Move" msgstr "_Azonnali lépés kérése" #: glade/PyChess.glade:905 msgid "Auto Call _Flag" msgstr "Időtúllépés automatikus bejelentése" #: glade/PyChess.glade:918 msgid "_View" msgstr "_Nézet" #: glade/PyChess.glade:925 msgid "_Rotate Board" msgstr "_Tábla forgatása" #: glade/PyChess.glade:939 msgid "_Fullscreen" msgstr "Teljes képernyő" #: glade/PyChess.glade:952 msgid "Leave _Fullscreen" msgstr "Teljes képernyő" #: glade/PyChess.glade:969 msgid "_Show Sidepanels" msgstr "_Oldalpanelek" #: glade/PyChess.glade:980 msgid "_Log Viewer" msgstr "_Napló" #: glade/PyChess.glade:997 msgid "_Hint mode" msgstr "_Javaslat" #: glade/PyChess.glade:1009 msgid "Sp_y mode" msgstr "_Fenyegetés" #: glade/PyChess.glade:1024 msgid "_Help" msgstr "_Súgó" #: glade/PyChess.glade:1034 msgid "About Chess" msgstr "A sakkról" #: glade/PyChess.glade:1043 msgid "How to Play" msgstr "Hogyan játsszunk" #: glade/PyChess.glade:1052 msgid "Translate PyChess" msgstr "A PyChess fordítása..." #: glade/PyChess.glade:1058 msgid "Tip of the Day" msgstr "A nap tippje" #: glade/PyChess.glade:1153 msgid "Default" msgstr "Alapértelmezett" #: glade/PyChess.glade:1156 msgid "Knights" msgstr "Huszárok" #: glade/PyChess.glade:1167 lib/pychess/widgets/preferencesDialog.py:349 msgid "Beep" msgstr "Csipogás" #: glade/PyChess.glade:1170 lib/pychess/widgets/preferencesDialog.py:350 msgid "Select sound file..." msgstr "Hangfájl kiválasztása..." #: glade/PyChess.glade:1173 lib/pychess/widgets/preferencesDialog.py:348 msgid "No sound" msgstr "Nincs hang" #: glade/PyChess.glade:1180 msgid "Preferences" msgstr "Beállítások" #: glade/PyChess.glade:1218 msgid "The displayed name of the first human player, e.g., John." msgstr "Az első játékos neve" #: glade/PyChess.glade:1230 msgid "Name of _first human player:" msgstr "Első játékos:" #: glade/PyChess.glade:1259 msgid "The displayed name of the guest player, e.g., Mary." msgstr "A második játékos neve" #: glade/PyChess.glade:1271 msgid "Name of s_econd human player:" msgstr "Második játékos:" #: glade/PyChess.glade:1307 msgid "_Hide tabs when only one game is open" msgstr "_Fülek elrejtése 1 játszma esetén" #: glade/PyChess.glade:1312 msgid "" "If set, this hides the tab in the top of the playing window, when it is not " "needed." msgstr "Ha be van jelölve, akkor egyetlen játszma esetén nem lesz fölül játszma fül." #: glade/PyChess.glade:1326 msgid "_Use main app closer [x] to close all games" msgstr "A fő ablak bezáró ikonja [x] az összes játszmát bezárja" #: glade/PyChess.glade:1331 msgid "" "If set, clicking on main application window closer first time it closes all " "games." msgstr "Ha be van jelölve, a fő ablak bezáró ikonjára először kattintva az bezárja az összes játszmát." #: glade/PyChess.glade:1345 msgid "Auto _rotate board to current human player" msgstr "_Automatikus táblaforgatás a lépésre következő játékos felé" #: glade/PyChess.glade:1350 msgid "" "If set, the board will turn after each move, to show the natural view for " "the current player." msgstr "Ha be van jelölve, akkor minden lépés után a táblát elforgatja a lépésre következő játékos felé." #: glade/PyChess.glade:1364 msgid "Auto _promote to queen" msgstr "Automatikus gyalog átváltozás vezérre" #: glade/PyChess.glade:1369 msgid "If set, pawn promotes to queen without promotion dialog selection." msgstr "Ha be van jelölve, akkor a gyalog a kiválasztó dialógus ablak megjelenése nélkül automatikusan vezérré változik." #: glade/PyChess.glade:1383 msgid "Face _to Face display mode" msgstr "Figurák szemtől szemben" #: glade/PyChess.glade:1388 msgid "" "If set, the black pieces will be head down, suitable for playing against " "friends on mobile devices." msgstr "Ha be van jelölve, akkor a sötét figurák fejjel lefele látszanak. Mobil eszközökhöz ajánlott beállítás." #: glade/PyChess.glade:1402 msgid "Sho_w cords" msgstr "_Koordináták mutatása" #: glade/PyChess.glade:1407 msgid "" "If set, the playing board will display labels and ranks for each chess " "field. These are usable in chess notation." msgstr "Ha be van jelölve, akkor a tábla körül megjeleníti a sorok és az oszlopok jeleit." #: glade/PyChess.glade:1421 msgid "Show _captured pieces" msgstr "_Leütött figurák mutatása" #: glade/PyChess.glade:1426 msgid "If set, the captured figurines will be shown next to the board." msgstr "Ha be van jelölve, akkor a leütött figurák is megjelennek a tábla két oldalán." #: glade/PyChess.glade:1440 msgid "Prefer figures in _notation" msgstr "_Figurák jeleinek használata a játszmalapon" #: glade/PyChess.glade:1445 msgid "" "If set, PyChess will use figures to express moved pieces, rather than " "uppercase letters." msgstr "Ha be van jelölve, akkor a játszmalapon betűk helyett a figurák jeleit használja." #: glade/PyChess.glade:1464 msgid "If set, PyChess will colorize suboptimal analyzed moves with red." msgstr "Ha be van jelölve, akkor a kevésbé jó lépéseket pirossal színezi." #: glade/PyChess.glade:1477 msgid "Show elapsed move times" msgstr "Lépésenként felhasznált idő mutatása" #: glade/PyChess.glade:1482 msgid "If set, the elapsed time that a player used for the move is shown." msgstr "Ha be van jelölve, akkor mutatja a játékos által lépésenként felhasznált időt" #: glade/PyChess.glade:1500 msgid "If set, the hint analyzer engine evaluation value is shown." msgstr "Ha be van jelölve, akkor mutatja az elemző program értékeit" #: glade/PyChess.glade:1526 msgid "General Options" msgstr "Egyéb" #: glade/PyChess.glade:1560 msgid "F_ull board animation" msgstr "_Tábla és a lépések" #: glade/PyChess.glade:1565 msgid "Animate pieces, board rotation and more. Use this on fast machines." msgstr "Táblaforgatás és lépések esetén is animál. Gyors gépeken ajánlott. " #: glade/PyChess.glade:1579 msgid "Only animate _moves" msgstr "_Csak a lépések" #: glade/PyChess.glade:1584 msgid "Only animate piece moves." msgstr "Csak a lépéseket animálja." #: glade/PyChess.glade:1599 msgid "No _animation" msgstr "_Nincs" #: glade/PyChess.glade:1604 msgid "Never use animation. Use this on slow machines." msgstr "Nincs animálás. Lassú gépek esetén ajánlott." #: glade/PyChess.glade:1632 msgid "Animation" msgstr "Animálás" #: glade/PyChess.glade:1651 msgid "_General" msgstr "Általános" #: glade/PyChess.glade:1692 msgid "Use opening _book" msgstr "_Megnyitástár használata" #: glade/PyChess.glade:1697 msgid "If set, PyChess will suggest best opening moves on hint panel." msgstr "Ha be van jelölve, akkor a PyChess megmutatja a legjobb megnyitási lépéseket a javaslat panelen." #: glade/PyChess.glade:1724 msgid "Polyglot book file:" msgstr "Megnyitástár fájl:" #: glade/PyChess.glade:1768 msgid "Use _local tablebases" msgstr "_Helyi végjáték adatbázis használata" #: glade/PyChess.glade:1773 msgid "" "If set, PyChess will show game results for different moves in positions containing 6 or less pieces.\n" "You can download tablebase files from:\n" "http://www.olympuschess.com/egtb/gaviota/" msgstr "Ha be van állítva, akkor a PyChess a 6, vagy kevesebb figurát tartalmazó állások esetén megmutatja a különböző lépések kimenetelét.\nA végjáték adatbázis fájljai letölthetők innen:\nhttp://www.olympuschess.com/egtb/gaviota/" #: glade/PyChess.glade:1803 msgid "Gaviota TB path:" msgstr "Végjáték adatbázis útvonal:" #: glade/PyChess.glade:1843 msgid "Use _online tablebases" msgstr "_Internetes végjáték adatbázis használata" #: glade/PyChess.glade:1848 msgid "" "If set, PyChess will show game results for different moves in positions containing 6 or less pieces.\n" "It will search positions from http://www.k4it.de/" msgstr "Ha be van állítva, akkor a PyChess a 6, vagy kevesebb figurát tartalmazó állások esetén megmutatja a különböző lépések kimenetelét.\nA végjáték állásokat innen keresi ki: http://www.k4it.de/" #: glade/PyChess.glade:1870 msgid "Opening, endgame" msgstr "Megnyitás, végjáték" #: glade/PyChess.glade:1904 msgid "Use _analyzer" msgstr "_Elemző használata" #: glade/PyChess.glade:1946 msgid "" "The analyzer will run in the background and analyze the game. This is " "necessary for the hint mode to work" msgstr "Az elemzőprogram a háttérben futva fogja elemezni a játszmát. A javaslat mód használatához szükséges." #: glade/PyChess.glade:1978 msgid "Use _inverted analyzer" msgstr "_Fordított elemző használata" #: glade/PyChess.glade:2020 msgid "" "The inverse analyzer will analyze the game as if your opponent was to move. " "This is necessary for the spy mode to work" msgstr "A fordított elemzőprogram úgy fogja elemezni a játszmát mintha az ellenfél következne lépésre. A fenyegetés mód használatához szükséges." #: glade/PyChess.glade:2096 msgid "Analyzing" msgstr "Elemzés" #: glade/PyChess.glade:2118 msgid "_Hints" msgstr "_Javaslatok" #: glade/PyChess.glade:2263 msgid "Uninstall" msgstr "Eltávolítás" #: glade/PyChess.glade:2317 msgid "Ac_tive" msgstr "Aktív" #: glade/PyChess.glade:2367 msgid "Installed Sidepanels" msgstr "Telepített oldalpanelek" #: glade/PyChess.glade:2382 msgid "Side_panels" msgstr "Oldalpanelek" #: glade/PyChess.glade:2440 msgid "Light Squares :" msgstr "Világos mezők:" #: glade/PyChess.glade:2479 msgid "Dark Squares :" msgstr "Sötét mezők:" #: glade/PyChess.glade:2515 msgid "Reset Default Colours" msgstr "Visszaállítás alapértelmezettre" #: glade/PyChess.glade:2551 msgid "Board Colours" msgstr "A tábla színei" #: glade/PyChess.glade:2610 msgid "Chess Sets" msgstr "Sakk készletek" #: glade/PyChess.glade:2634 msgid "Themes" msgstr "Témák" #: glade/PyChess.glade:2659 msgid "_Use sounds in PyChess" msgstr "_Hangok használata a PyChess-ben" #: glade/PyChess.glade:2982 msgid "A player _checks:" msgstr "_Sakkadás:" #: glade/PyChess.glade:2997 msgid "A player _moves:" msgstr "_Lépés:" #: glade/PyChess.glade:3010 msgid "Game is _drawn:" msgstr "_Döntetlen:" #: glade/PyChess.glade:3025 msgid "Game is _lost:" msgstr "_Vereség:" #: glade/PyChess.glade:3040 msgid "Game is _won:" msgstr "_Győzelem:" #: glade/PyChess.glade:3055 msgid "A player c_aptures:" msgstr "_Ütés:" #: glade/PyChess.glade:3084 msgid "Game is _set-up:" msgstr "_Kezdőállás:" #: glade/PyChess.glade:3136 msgid "_Observed moves:" msgstr "Lépés (_nézőknek):" #: glade/PyChess.glade:3151 msgid "Observed _ends:" msgstr "_Játszma vége (nézőknek):" #: glade/PyChess.glade:3265 msgid "Short on _time:" msgstr "Idő_zavar" #: glade/PyChess.glade:3317 msgid "_Invalid move:" msgstr "Szabálytalan lé_pés" #: glade/PyChess.glade:3369 msgid "Activate alarm when _remaining sec is:" msgstr "_Riasztás ha a hátralévő idő (másodpercben):" #: glade/PyChess.glade:3416 msgid "Play Sound When..." msgstr "Hang lejátszása ekkor..." #: glade/PyChess.glade:3438 msgid "_Sounds" msgstr "Hangok" #: glade/PyChess.glade:3463 msgid "_Auto save finished games" msgstr "Befejezett játszmák _automatikus mentése" #: glade/PyChess.glade:3497 msgid "Save files to:" msgstr "Fájlok mentése ide:" #: glade/PyChess.glade:3525 msgid "Use name format:" msgstr "Fájlok elnevezésének formája:" #: glade/PyChess.glade:3569 msgid "Names: #n1, #n2" msgstr "Nevek: #n1, #n2" #: glade/PyChess.glade:3582 msgid "Year, month, day: #y, #m, #d" msgstr "Év, hó, nap: #y, #m, #d" #: glade/PyChess.glade:3619 msgid "Save elapsed move _times" msgstr "Lépésenként felhasznált _idő mentése" #: glade/PyChess.glade:3644 msgid "Save analyzing engine _evaluation values" msgstr "_Elemző program értékeinek mentése" #: glade/PyChess.glade:3669 msgid "Save _own games only" msgstr "Csak _saját játszmák mentése" #: glade/PyChess.glade:3698 msgid "Save" msgstr "Mentés" #: glade/PyChess.glade:3728 msgid "uci" msgstr "UCI" #: glade/PyChess.glade:3731 msgid "xboard" msgstr "Xboard" #: glade/PyChess.glade:3739 msgid "Manage engines" msgstr "Sakkmotorok" #: glade/PyChess.glade:3837 msgid "Command:" msgstr "Parancs:" #: glade/PyChess.glade:3851 msgid "Protocol:" msgstr "Protokoll:" #: glade/PyChess.glade:3865 msgid "Parameters:" msgstr "Paraméterek:" #: glade/PyChess.glade:3878 msgid "Command line parameters needed by the engine." msgstr "Parancssori paraméterek a sakkmotor számára." #: glade/PyChess.glade:3903 msgid "" "Engines use uci or xboard communication protocol to talk to the GUI.\n" "If it can use both you can set here which one you like." msgstr "A sakkmotorok UCI vagy Xboard protokoll használatával kommunikálnak a felhasználói felülettel.\nAmennyiben mindkettő támogatott, itt választható ki, hogy melyiket használja az adott sakkmotor." #: glade/PyChess.glade:3929 msgid "Working directory:" msgstr "Munkakönyvtár:" #: glade/PyChess.glade:3942 msgid "The directory where the engine will be started from." msgstr "A könyvtár ahonnan a sakkmotor indulni fog." #: glade/saveGamesDialog.glade:7 msgid "Quit PyChess" msgstr "Kilépés" #: glade/saveGamesDialog.glade:24 lib/pychess/widgets/ionest.py:424 msgid "Close _without Saving" msgstr "Bezárás mentés nélkül" #: glade/saveGamesDialog.glade:83 msgid "_Save %d documents" msgstr "%d játszma _mentése" #: glade/saveGamesDialog.glade:141 msgid "" "There are %d games with unsaved moves. Save changes before " "closing?" msgstr "%d játszma még nincs mentve. Mentsem őket?" #: glade/saveGamesDialog.glade:161 msgid "Select the games you want to save:" msgstr "Válaszd ki a mentendő játszmákat:" #: glade/saveGamesDialog.glade:204 msgid "If you don't save, new changes to your games will be permanently lost." msgstr "Ha nem mentesz, a változások elvesznek." #: glade/taskers.glade:126 msgid "_Opponent:" msgstr "Ellenfél" #: glade/taskers.glade:154 msgid "_Your Color:" msgstr "Szín:" #: glade/taskers.glade:219 msgid "_Start Game" msgstr "Játszma indítása" #: glade/taskers.glade:338 msgid "Log on as G_uest" msgstr "Bejelentkezés _vendégként" #: glade/taskers.glade:410 msgid "Ha_ndle:" msgstr "Név:" #: glade/taskers.glade:469 msgid "_Connect to server" msgstr "Kapcsolódás a szerverhez" #: glade/tipoftheday.glade:7 msgid "Tip Of The day" msgstr "A nap tippje" #: glade/tipoftheday.glade:62 msgid "Show tips at startup" msgstr "Tippek mutatása induláskor" #: lib/pychess/Main.py:302 msgid "http://en.wikipedia.org/wiki/Chess" msgstr "http://hu.wikipedia.org/wiki/Sakk" #: lib/pychess/Main.py:305 msgid "http://en.wikipedia.org/wiki/Rules_of_chess" msgstr "http://hu.wikipedia.org/wiki/Sakk#A_sakk_le.C3.ADr.C3.A1sa" #: lib/pychess/Main.py:370 lib/pychess/widgets/gamenanny.py:80 msgid "Welcome" msgstr "Üdvözlet" #: lib/pychess/Database/gamelist.py:40 msgid "Id" msgstr "Id" #: lib/pychess/Database/gamelist.py:40 msgid "W Elo" msgstr "V Élő" #: lib/pychess/Database/gamelist.py:40 msgid "B Elo" msgstr "S Élő" #: lib/pychess/Database/gamelist.py:41 msgid "Result" msgstr "Eredmény" #: lib/pychess/Database/gamelist.py:41 msgid "Event" msgstr "Esemény" #: lib/pychess/Database/gamelist.py:41 msgid "Site" msgstr "Hely" #: lib/pychess/Database/gamelist.py:41 msgid "Round" msgstr "Forduló" #: lib/pychess/Database/gamelist.py:41 msgid "Date" msgstr "Dátum" #: lib/pychess/Database/gamelist.py:41 msgid "ECO" msgstr "ECO" #: lib/pychess/Database/gamelist.py:62 msgid "PyChess Game Database" msgstr "PyChess játszma adatbázis" #: lib/pychess/Database/PgnImport.py:188 #, python-format msgid "The game #%s can't be loaded, because of an error parsing FEN" msgstr "A %s. játszmát nem lehet megnyitni hibás FEN miatt" #: lib/pychess/ic/FICSConnection.py:139 msgid "The connection was broken - got \"end of file\" message" msgstr "A kapcsolat megszakadt - fájl vége üzenet érkezett." #: lib/pychess/ic/FICSConnection.py:140 #, python-format msgid "'%s' is not a registered name" msgstr "A(z) '%s' nem regisztrált név." #: lib/pychess/ic/FICSConnection.py:141 msgid "" "The entered password was invalid.\n" "If you forgot your password, go to http://www.freechess.org/password to request a new one over email." msgstr "Érvénytelen jelszó.\nElfelejtette jelszó esetén a http://www.freechess.org/password címen lehet új jelszót igényelni." #: lib/pychess/ic/FICSConnection.py:145 #, python-format msgid "Sorry '%s' is already logged in" msgstr "'%s' már bejelentkezett" #: lib/pychess/ic/FICSConnection.py:146 #, python-format msgid "'%s' is a registered name. If it is yours, type the password." msgstr "'%s' egy regisztrált név. Amennyiben a tied, add meg a jelszavad." #: lib/pychess/ic/FICSConnection.py:147 msgid "" "Due to abuse problems, guest connections have been prevented.\n" "You can still register on http://www.freechess.org" msgstr "Visszaélési problémák miatt jelenleg a vendég(guest) kapcsolatok nincsenek engedélyezve.\nRegisztráció itt lehetséges: http://www.freechess.org" #: lib/pychess/ic/FICSConnection.py:166 msgid "Connecting to server" msgstr "Kapcsolódási hiba" #: lib/pychess/ic/FICSConnection.py:181 msgid "Logging on to server" msgstr "Bejelentkezés a szerverre" #: lib/pychess/ic/FICSConnection.py:239 msgid "Setting up environment" msgstr "Környezet létrehozása" #: lib/pychess/ic/FICSObjects.py:35 lib/pychess/ic/FICSObjects.py:47 #, python-format msgid "%(player)s is %(status)s" msgstr "%(player)s most %(status)s" #: lib/pychess/ic/FICSObjects.py:46 msgid "not playing" msgstr "nem játszik" #: lib/pychess/ic/FICSObjects.py:54 lib/pychess/ic/ICLounge.py:1136 #: lib/pychess/ic/ICLounge.py:2209 lib/pychess/ic/__init__.py:98 #: lib/pychess/widgets/newGameDialog.py:153 msgid "Blitz" msgstr "Schnell" #: lib/pychess/ic/FICSObjects.py:58 lib/pychess/ic/ICLounge.py:1137 #: lib/pychess/ic/ICLounge.py:2209 lib/pychess/ic/__init__.py:100 msgid "Lightning" msgstr "Villám" #: lib/pychess/ic/FICSObjects.py:60 lib/pychess/Variants/atomic.py:15 msgid "Atomic" msgstr "Atom" #: lib/pychess/ic/FICSObjects.py:62 lib/pychess/Variants/bughouse.py:9 msgid "Bughouse" msgstr "Tandem" #: lib/pychess/ic/FICSObjects.py:64 lib/pychess/Variants/crazyhouse.py:9 msgid "Crazyhouse" msgstr "Visszarakós" #: lib/pychess/ic/FICSObjects.py:66 lib/pychess/Variants/losers.py:9 msgid "Losers" msgstr "Lúzer" #: lib/pychess/ic/FICSObjects.py:68 lib/pychess/Variants/suicide.py:12 msgid "Suicide" msgstr "Öngyilkos" #: lib/pychess/ic/FICSObjects.py:70 lib/pychess/ic/__init__.py:129 msgid "Wild" msgstr "Vad" #: lib/pychess/ic/FICSObjects.py:117 msgid "Online" msgstr "Elérhető" #: lib/pychess/ic/FICSObjects.py:118 lib/pychess/ic/FICSObjects.py:143 msgid "Offline" msgstr "Nem elérhető" #: lib/pychess/ic/FICSObjects.py:133 msgid "Available" msgstr "Elérhető" #: lib/pychess/ic/FICSObjects.py:135 msgid "Playing" msgstr "Játszik " #: lib/pychess/ic/FICSObjects.py:141 msgid "Idle" msgstr "Tétlen" #: lib/pychess/ic/FICSObjects.py:145 msgid "Examining" msgstr "Végrehajtás" #: lib/pychess/ic/FICSObjects.py:147 msgid "Not Available" msgstr "Nem elérhető" #: lib/pychess/ic/FICSObjects.py:149 msgid "Running Simul Match" msgstr "Szimultánt játszik" #: lib/pychess/ic/FICSObjects.py:151 msgid "In Tournament" msgstr "Versenyben" #: lib/pychess/ic/FICSObjects.py:308 lib/pychess/ic/FICSObjects.py:492 #: lib/pychess/ic/ICLounge.py:2278 msgid "Unrated" msgstr "Nem értékelt" #: lib/pychess/ic/FICSObjects.py:491 lib/pychess/ic/ICLounge.py:670 #: lib/pychess/ic/ICLounge.py:1358 lib/pychess/ic/ICLounge.py:1558 #: lib/pychess/ic/ICLounge.py:2113 msgid "Rated" msgstr "Értékelt" #: lib/pychess/ic/FICSObjects.py:498 lib/pychess/ic/ICLounge.py:2098 #, python-format msgid "%d min" msgstr "%d perc" #: lib/pychess/ic/FICSObjects.py:500 #, python-format msgid " + %d sec" msgstr " + %d mp" #: lib/pychess/ic/FICSObjects.py:517 #, python-format msgid "%(player)s plays %(color)s" msgstr "%(player)s játszik mint %(color)s" #: lib/pychess/ic/FICSObjects.py:519 lib/pychess/ic/ICLounge.py:909 msgid "white" msgstr "világos" #: lib/pychess/ic/FICSObjects.py:519 lib/pychess/ic/ICLounge.py:909 msgid "black" msgstr "sötét" #: lib/pychess/ic/FICSObjects.py:565 msgid "This is a continuation of an adjourned match" msgstr "Ez egy elhalasztott játszma folytatása" #: lib/pychess/ic/FICSObjects.py:654 msgid "Opponent Rating" msgstr "Ellenfél értékszáma" #: lib/pychess/ic/FICSObjects.py:656 msgid "Manual Accept" msgstr "Kézi elfogadás" #: lib/pychess/ic/FICSObjects.py:810 msgid "Private" msgstr "Magán" #: lib/pychess/ic/FICSObjects.py:930 lib/pychess/ic/ICLounge.py:527 #: lib/pychess/Savers/epd.py:139 msgid "Unknown" msgstr "Ismeretlen" #: lib/pychess/ic/ICLogon.py:159 lib/pychess/ic/ICLogon.py:165 msgid "Connection Error" msgstr "Kapcsolódási hiba" #: lib/pychess/ic/ICLogon.py:161 msgid "Log on Error" msgstr "Bejelentkezési hiba" #: lib/pychess/ic/ICLogon.py:163 msgid "Connection was closed" msgstr "A kapcsolatot lezárták" #: lib/pychess/ic/ICLogon.py:169 msgid "Address Error" msgstr "Cím hiba" #: lib/pychess/ic/ICLogon.py:172 msgid "Auto-logout" msgstr "Automatikus kijelentkezés" #: lib/pychess/ic/ICLogon.py:173 msgid "You have been logged out because you were idle more than 60 minutes" msgstr "Kiléptetve 60 perc tétlenség miatt" #: lib/pychess/ic/ICLounge.py:222 msgid "You have to set kibitz on to see bot messages here." msgstr "A kibitz változót 1-re kell állítani a konzolban, hogy itt láthasd a bot üzeneteket." #: lib/pychess/ic/ICLounge.py:241 msgid "" "You may only have 3 outstanding seeks at the same time. If you want to add a" " new seek you must clear your currently active seeks. Clear your seeks?" msgstr "Csak 3 keresés megengedett. Ha újat szeretnél, akkor előbb törölni kell az aktuális aktív kereséseidet. Törlöd a kereséseket?" #: lib/pychess/ic/ICLounge.py:258 msgid "You can't touch this! You are examining a game." msgstr "Nem engedélyezett, amíg végigjátszás (examine) módban vagy." #: lib/pychess/ic/ICLounge.py:270 msgid " has declined your offer for a match" msgstr "visszautasította a játszma ajánlatodat" #: lib/pychess/ic/ICLounge.py:283 msgid " is censoring you" msgstr "censor listáján szerepelsz" #: lib/pychess/ic/ICLounge.py:296 msgid " noplay listing you" msgstr "noplay listáján szerepelsz" #: lib/pychess/ic/ICLounge.py:311 msgid " uses a formula not fitting your match request:" msgstr "a kihívásoddal nem összeegyeztethető formulát használ:" #: lib/pychess/ic/ICLounge.py:325 msgid "to manual accept" msgstr "kézi elfogadás" #: lib/pychess/ic/ICLounge.py:327 msgid "to automatic accept" msgstr "automatikus elfogadás" #: lib/pychess/ic/ICLounge.py:329 msgid "rating range now" msgstr "jelenlegi értékszám tartomány" #: lib/pychess/ic/ICLounge.py:330 msgid "Seek updated" msgstr "Keresés frissítve" #: lib/pychess/ic/ICLounge.py:342 msgid "Your seeks have been removed" msgstr "Saját keresések eltávolítva" #: lib/pychess/ic/ICLounge.py:363 msgid " has arrived" msgstr "megérkezett" #: lib/pychess/ic/ICLounge.py:370 msgid " has departed" msgstr "távozott" #: lib/pychess/ic/ICLounge.py:374 msgid " is present" msgstr "jelen van" #: lib/pychess/ic/ICLounge.py:391 sidepanel/chatPanel.py:17 msgid "Chat" msgstr "Csevegés" #: lib/pychess/ic/ICLounge.py:472 sidepanel/bookPanel.py:366 msgid "Win" msgstr "Győzelem" #: lib/pychess/ic/ICLounge.py:472 sidepanel/bookPanel.py:360 msgid "Draw" msgstr "Döntetlen" #: lib/pychess/ic/ICLounge.py:472 sidepanel/bookPanel.py:363 msgid "Loss" msgstr "Vereség" #: lib/pychess/ic/ICLounge.py:482 msgid "" "On FICS, your \"Wild\" rating encompasses all of the following variants at " "all time controls:\n" msgstr "A FICS-en a \"Vad\" értékszám magában foglalja a következő sakkvariánsokat minden időkontroll mellett:\n" #: lib/pychess/ic/ICLounge.py:494 msgid "Sanctions" msgstr "Büntetések" #: lib/pychess/ic/ICLounge.py:499 msgid "Email" msgstr "E-mail" #: lib/pychess/ic/ICLounge.py:504 msgid "Spent" msgstr "Eltelt" #: lib/pychess/ic/ICLounge.py:506 msgid "online in total" msgstr "összesen a kapcsolatban" #: lib/pychess/ic/ICLounge.py:512 msgid "Ping" msgstr "Ping" #: lib/pychess/ic/ICLounge.py:517 msgid "Connecting" msgstr "Kapcsolódás" #: lib/pychess/ic/ICLounge.py:544 msgid "" "You are currently logged in as a guest.\n" "A guest can't play rated games and therefore isn't able to play as many of the types of matches offered as a registered user. To register an account, go to http://www.freechess.org/Register/index.html." msgstr "Jelenleg vendégként vagy bejelentkezve.\nA vendégek nem játszhatnak értékelt játszmákat, ezért kevesebb fajta játszmát játszhatnak, mint a regisztrált felhasználók. Regisztrálni a http://www.freechess.org/Register/index.html címen lehet." #: lib/pychess/ic/ICLounge.py:669 lib/pychess/ic/ICLounge.py:1136 msgid "Name" msgstr "Név" #: lib/pychess/ic/ICLounge.py:670 lib/pychess/ic/ICLounge.py:1358 #: lib/pychess/ic/ICLounge.py:1558 msgid "Type" msgstr "Típus" #: lib/pychess/ic/ICLounge.py:670 lib/pychess/ic/ICLounge.py:1558 msgid "Clock" msgstr "Idő" #: lib/pychess/ic/ICLounge.py:726 lib/pychess/ic/ICLounge.py:923 #: lib/pychess/Players/Human.py:250 msgid "Accept" msgstr "Elfogad" #: lib/pychess/ic/ICLounge.py:728 msgid "Assess" msgstr "Értékszám változás" #: lib/pychess/ic/ICLounge.py:734 msgid "Archived" msgstr "Archív" #: lib/pychess/ic/ICLounge.py:848 #, python-format msgid "Active seeks: %d" msgstr "Aktív keresés: %d" #: lib/pychess/ic/ICLounge.py:897 #, python-format msgid "" " would like to resume your adjourned %(time)s %(gametype)s " "game." msgstr "szeretné folytatni az elhalasztott %(time)s %(gametype)s játszmádat." #: lib/pychess/ic/ICLounge.py:902 #, python-format msgid "" " challenges you to a %(time)s %(rated)s %(gametype)s game" msgstr " kihív téged egy %(time)s %(rated)s %(gametype)s játszmára." #: lib/pychess/ic/ICLounge.py:907 #, python-format msgid " where %(player)s plays %(color)s." msgstr " ahol %(player)s játszik mint %(color)s." #: lib/pychess/ic/ICLounge.py:924 lib/pychess/Players/Human.py:251 msgid "Decline" msgstr "Elutasít" #: lib/pychess/ic/ICLounge.py:1065 msgid " min" msgstr " perc" #: lib/pychess/ic/ICLounge.py:1137 msgid "Status" msgstr "Státusz" #: lib/pychess/ic/ICLounge.py:1203 lib/pychess/ic/ICLounge.py:1233 #, python-format msgid "Players: %d" msgstr "Aktív játékos: %d" #: lib/pychess/ic/ICLounge.py:1469 #, python-format msgid "Games running: %d" msgstr "Folyamatban lévő játszma: %d" #: lib/pychess/ic/ICLounge.py:1559 msgid "Date/Time" msgstr "Dátum/Idő" #: lib/pychess/ic/ICLounge.py:1614 #, python-format msgid "" " with whom you have an adjourned %(timecontrol)s %(gametype)s " "game is online." msgstr "akivel van egy elhalasztott %(timecontrol)s %(gametype)s játszmád, elérhető." #: lib/pychess/ic/ICLounge.py:1635 msgid "Request Continuation" msgstr "Folytatás kérése" #: lib/pychess/ic/ICLounge.py:1637 msgid "Examine Adjourned Game" msgstr "Elhalasztott játszma lejátszása" #: lib/pychess/ic/ICLounge.py:1965 msgid "" "The chain button is disabled because you are logged in as a guest. Guests " "can't establish ratings, and the chain button's state has no effect when " "there is no rating to which to tie \"Opponent Strength\" to" msgstr "Ez a gomb le van tiltva vendégként bejelentkezettek esetén, mert azok nem játszhatnak értékelt játszmákat." #: lib/pychess/ic/ICLounge.py:2006 msgid "Challenge: " msgstr "Kihívás: " #: lib/pychess/ic/ICLounge.py:2044 msgid "If set you can refuse players accepting your seek" msgstr "Ha be van jelölve, visszautasíthatod az elfogadott kereséseket." #: lib/pychess/ic/ICLounge.py:2048 lib/pychess/ic/ICLounge.py:2051 msgid "This option is not applicable because you're challenging a player" msgstr "Kihívás esetén ennek nincs értelme." #: lib/pychess/ic/ICLounge.py:2064 msgid "Edit Seek: " msgstr "Keresés: " #: lib/pychess/ic/ICLounge.py:2095 #, python-format msgid "%(minutes)d min + %(gain)d sec/move" msgstr "%(minutes)d perc + %(gain)d mp/lépés" #: lib/pychess/ic/ICLounge.py:2116 msgid "Manual" msgstr "Kézi" #: lib/pychess/ic/ICLounge.py:2256 msgid "Any strength" msgstr "Bármilyen erősség" #: lib/pychess/ic/ICLounge.py:2308 msgid "You can't play rated games because you are logged in as a guest" msgstr "Nem játszhatsz értékelt játszmákat vendégként." #: lib/pychess/ic/ICLounge.py:2312 msgid "You can't play rated games because \"Untimed\" is checked, " msgstr "Nem játszhatsz értékelt játszmát, mert az \"Időkontroll nélkül\" van bejelölve, " #: lib/pychess/ic/ICLounge.py:2313 msgid "and on FICS, untimed games can't be rated" msgstr "és a FICS-en az időkontroll nélküli játszmák nem lehetnek értékeltek." #: lib/pychess/ic/ICLounge.py:2317 msgid "This option is not available because you're challenging a guest, " msgstr "Ez az opció tiltva van, mivel egy vendéget hívtál ki, " #: lib/pychess/ic/ICLounge.py:2318 msgid "and guests can't play rated games" msgstr "és a vendégek nem játszhatnak értékelt játszmákat." #: lib/pychess/ic/ICLounge.py:2332 lib/pychess/Variants/shuffle.py:16 #: lib/pychess/widgets/newGameDialog.py:266 msgid "Shuffle" msgstr "Kevert alapállás" #: lib/pychess/ic/ICLounge.py:2333 lib/pychess/widgets/newGameDialog.py:267 msgid "Other (standard rules)" msgstr "Egyéb (standard szabályok)" #: lib/pychess/ic/ICLounge.py:2334 lib/pychess/widgets/newGameDialog.py:268 msgid "Other (non standard rules)" msgstr "Egyéb (nem standard szabályok)" #: lib/pychess/ic/ICLounge.py:2421 msgid "You can't select a variant because \"Untimed\" is checked, " msgstr "Nem játszhatsz sakk variánsokat, mert az \"Időkontroll nélkül\" van bejelölve, " #: lib/pychess/ic/ICLounge.py:2422 msgid "and on FICS, untimed games have to be normal chess rules" msgstr "és a FICS-en az időkontroll nélküli játszmák csak standard játszmák lehetnek." #: lib/pychess/ic/ICLounge.py:2454 msgid "Change Tolerance" msgstr "Eltérés" #: lib/pychess/ic/__init__.py:102 msgid "Examined" msgstr "Lejátszott" #: lib/pychess/ic/__init__.py:103 msgid "Other" msgstr "Egyéb" #: lib/pychess/ic/__init__.py:182 msgid "Administrator" msgstr "Adminisztrátor" #: lib/pychess/ic/__init__.py:182 msgid "Blindfold Account" msgstr "Vak" #: lib/pychess/ic/__init__.py:182 msgid "Computer" msgstr "Számítógép" #: lib/pychess/ic/__init__.py:183 msgid "Team Account" msgstr "Csapat" #: lib/pychess/ic/__init__.py:183 msgid "Unregistered" msgstr "Nem regisztrált" #: lib/pychess/ic/__init__.py:183 msgid "Chess Advisor" msgstr "Tanácsadó" #: lib/pychess/ic/__init__.py:184 msgid "Service Representative" msgstr "Szolgáltató képviselője" #: lib/pychess/ic/__init__.py:184 msgid "Tournament Director" msgstr "Verseny igazgató" #: lib/pychess/ic/__init__.py:184 msgid "Mamer Manager" msgstr "Mamer menedzser" #: lib/pychess/ic/__init__.py:185 msgid "Grand Master" msgstr "Nagymester" #: lib/pychess/ic/__init__.py:185 msgid "International Master" msgstr "Nemzetközi mester" #: lib/pychess/ic/__init__.py:185 msgid "FIDE Master" msgstr "FIDE mester" #: lib/pychess/ic/__init__.py:186 msgid "Woman Grand Master" msgstr "Női nagymester" #: lib/pychess/ic/__init__.py:186 msgid "Woman International Master" msgstr "Női nemzetközi mester" #: lib/pychess/ic/__init__.py:186 msgid "Woman FIDE Master" msgstr "Női FIDE mester" #: lib/pychess/ic/__init__.py:187 msgid "Dummy Account" msgstr "Üres felhasználó" #: lib/pychess/ic/__init__.py:191 msgid "*" msgstr "*" #: lib/pychess/ic/__init__.py:191 lib/pychess/Utils/repr.py:14 msgid "B" msgstr "F" #: lib/pychess/ic/__init__.py:191 msgid "C" msgstr "C" #: lib/pychess/ic/__init__.py:192 msgid "T" msgstr "T" #: lib/pychess/ic/__init__.py:192 msgid "U" msgstr "U" #: lib/pychess/ic/__init__.py:192 msgid "CA" msgstr "CA" #: lib/pychess/ic/__init__.py:193 msgid "SR" msgstr "SR" #: lib/pychess/ic/__init__.py:193 msgid "TD" msgstr "TD" #: lib/pychess/ic/__init__.py:193 msgid "TM" msgstr "TM" #: lib/pychess/ic/__init__.py:194 msgid "GM" msgstr "GM" #: lib/pychess/ic/__init__.py:194 msgid "IM" msgstr "IM" #: lib/pychess/ic/__init__.py:194 msgid "FM" msgstr "FM" #: lib/pychess/ic/__init__.py:195 msgid "WGM" msgstr "WGM" #: lib/pychess/ic/__init__.py:195 msgid "WIM" msgstr "WIM" #: lib/pychess/ic/__init__.py:195 msgid "WFM" msgstr "WFM" #: lib/pychess/ic/__init__.py:195 msgid "D" msgstr "D" #: lib/pychess/ic/__init__.py:195 msgid "H" msgstr "H" #: lib/pychess/ic/__init__.py:195 msgid "CM" msgstr "CM" #: lib/pychess/ic/__init__.py:195 msgid "FA" msgstr "FA" #: lib/pychess/ic/__init__.py:195 msgid "NM" msgstr "NM" #: lib/pychess/Players/CECPEngine.py:857 #, python-format msgid "The engine %s reports an error:" msgstr "%s sakkmotor hiba:" #: lib/pychess/Players/Human.py:20 msgid "Your opponent has offered you a draw." msgstr "Az ellenfeled döntetlent ajánlott." #: lib/pychess/Players/Human.py:21 msgid "" "Your opponent has offered you a draw. If you accept this offer, the game " "will end with a score of 1/2 - 1/2." msgstr "Az ellenfeled döntetlent ajánlott." #: lib/pychess/Players/Human.py:23 msgid "Your opponent wants to abort the game." msgstr "Az ellenfeled szeretné megszakítani a játszmát." #: lib/pychess/Players/Human.py:24 msgid "" "Your opponent has asked that the game be aborted. If you accept this offer, " "the game will end with no rating change." msgstr "Az ellenfeled a játszma megszakítását ajánlja, ha elfogadod, az értékszámod nem változik." #: lib/pychess/Players/Human.py:26 msgid "Your opponent wants to adjourn the game." msgstr "Az ellenfeled a játszma elhalasztását szeretné." #: lib/pychess/Players/Human.py:27 msgid "" "Your opponent has asked that the game be adjourned. If you accept this " "offer, the game will be adjourned and you can resume it later (when your " "opponent is online and both players agree to resume)." msgstr "Az ellenfeled a játszma elhalasztását ajánlotta." #: lib/pychess/Players/Human.py:29 #, python-format msgid "Your opponent wants to undo %s move(s)." msgstr "Az ellenfeled szeretne visszavenni az utolsó %s lépését." #: lib/pychess/Players/Human.py:30 #, python-format msgid "" "Your opponent has asked that the last %s move(s) be undone. If you accept " "this offer, the game will continue from the earlier position." msgstr "Az ellenfeled szeretné visszavenni az utolsó %s lépését." #: lib/pychess/Players/Human.py:32 msgid "Your opponent wants to pause the game." msgstr "Az ellenfeled szüneteltetni szeretné a játékot." #: lib/pychess/Players/Human.py:33 msgid "" "Your opponent has asked that the game be paused. If you accept this offer, " "the game clock will be paused until both players agree to resume the game." msgstr "Az ellenfeled szünetet ajánlott." #: lib/pychess/Players/Human.py:35 msgid "Your opponent wants to resume the game." msgstr "Az ellenfeled folytatni szeretné." #: lib/pychess/Players/Human.py:36 msgid "" "Your opponent has asked that the game be resumed. If you accept this offer, " "the game clock will continue from where it was paused." msgstr "Az ellenfeled folytatni szeretné." #: lib/pychess/Players/Human.py:40 msgid "The resignation" msgstr "a feladás" #: lib/pychess/Players/Human.py:41 msgid "The flag call" msgstr "az időtúllépés bejelentése" #: lib/pychess/Players/Human.py:42 msgid "The draw offer" msgstr "a döntetlen ajánlat" #: lib/pychess/Players/Human.py:43 msgid "The abort offer" msgstr "a megszakítás ajánlat" #: lib/pychess/Players/Human.py:44 msgid "The adjourn offer" msgstr "az elhalasztás ajánlat" #: lib/pychess/Players/Human.py:45 msgid "The pause offer" msgstr "a szünet ajánlat" #: lib/pychess/Players/Human.py:46 msgid "The resume offer" msgstr "a folytatás ajánlat" #: lib/pychess/Players/Human.py:47 msgid "The offer to switch sides" msgstr "a színcsere ajánlat" #: lib/pychess/Players/Human.py:48 msgid "The takeback offer" msgstr "a lépés visszavétel ajánlat" #: lib/pychess/Players/Human.py:52 msgid "resign" msgstr "Feladás" #: lib/pychess/Players/Human.py:53 msgid "call your opponents flag" msgstr "időtúllépés bejelentése" #: lib/pychess/Players/Human.py:54 msgid "offer a draw" msgstr "döntetlen ajánlása" #: lib/pychess/Players/Human.py:55 msgid "offer an abort" msgstr "megszakítás ajánlása" #: lib/pychess/Players/Human.py:56 msgid "offer to adjourn" msgstr "elhalasztás ajánlása" #: lib/pychess/Players/Human.py:57 msgid "offer a pause" msgstr "szünet kérése" #: lib/pychess/Players/Human.py:58 msgid "offer to resume" msgstr "folytatás ajánlása" #: lib/pychess/Players/Human.py:59 msgid "offer to switch sides" msgstr "a színcsere ajánlat" #: lib/pychess/Players/Human.py:60 msgid "offer a takeback" msgstr "lépés visszavétel kérése" #: lib/pychess/Players/Human.py:61 msgid "ask your opponent to move" msgstr "azonnali lépés kérése" #: lib/pychess/Players/Human.py:66 msgid "Your opponent is not out of time." msgstr "Az ellenfeled nem lépte még túl a gondolkodási időt." #: lib/pychess/Players/Human.py:68 msgid "The clock hasn't been started yet." msgstr "Az óra még nem indult el." #: lib/pychess/Players/Human.py:70 msgid "You can't switch colors during the game." msgstr "Játszma közben nem lehet színt váltani." #: lib/pychess/Players/Human.py:72 msgid "You have tried to undo too many moves." msgstr "Túl sok lépést próbáltál visszavonni." #: lib/pychess/Players/Human.py:180 msgid "Your opponent asks you to hurry!" msgstr "Az ellenfeled szeretné, hogy egy kicsit gyorsabban lépj!" #: lib/pychess/Players/Human.py:181 msgid "" "Generally this means nothing, as the game is time-based, but if you want to " "please your opponent, perhaps you should get going." msgstr "Általában ez nem jelent semmi különöset, mivel a játszma időkontroll alatt folyik, de ha kedves akarsz lenni hozzá, léphetsz gyorsabban is." #: lib/pychess/Players/Human.py:259 #, python-format msgid "%s was declined by your opponent" msgstr "%s elutasítva az ellenfél által" #: lib/pychess/Players/Human.py:260 #, python-format msgid "Resend %s?" msgstr "%s újraküldése?" #: lib/pychess/Players/Human.py:267 msgid "Resend" msgstr "Újraküldés" #: lib/pychess/Players/Human.py:275 #, python-format msgid "%s was withdrawn by your opponent" msgstr "%s visszavonva az ellenfél által" #: lib/pychess/Players/Human.py:276 msgid "Your opponent seems to have changed their mind." msgstr "Úgy tűnik, az ellenfeled meggondolta magát." #: lib/pychess/Players/Human.py:290 #, python-format msgid "Unable to accept %s" msgstr "Nem elfogadható a(z) %s" #: lib/pychess/Players/Human.py:291 msgid "Probably because it has been withdrawn." msgstr "Valószínűleg azt már visszavonták." #: lib/pychess/Players/Human.py:298 #, python-format msgid "%s returns an error" msgstr "%s hibát adott vissza" #: lib/pychess/Savers/chessalpha2.py:12 msgid "Chess Alpha 2 Diagram" msgstr "Alfa 2 diagram" #: lib/pychess/Savers/chesspastebin.py:39 msgid "Game shared at " msgstr "A játszma megosztva itt:" #: lib/pychess/Savers/chesspastebin.py:41 msgid "(Link is available on clipboard.)" msgstr "(a hivatkozás elérhető a vágólapon)" #: lib/pychess/Savers/database.py:19 msgid "PyChess database" msgstr "PyChess adatbázis" #: lib/pychess/Savers/epd.py:12 msgid "Chess Position" msgstr "Állás" #: lib/pychess/Savers/fen.py:12 msgid "Simple Chess Position" msgstr "Egyszerű állás" #: lib/pychess/Savers/fen.py:44 lib/pychess/Savers/pgn.py:329 msgid "The game can't be loaded, because of an error parsing FEN" msgstr "A játszmát nem lehet megnyitni hibás FEN miatt" #: lib/pychess/Savers/pgnbase.py:100 #, python-format msgid "" "The game can't be read to end, because of an error parsing move %(moveno)s " "'%(notation)s'." msgstr "A játszma nem olvasható be végig, mert hiba van a következő lépésnél: %(moveno)s '%(notation)s'." #: lib/pychess/Savers/pgnbase.py:102 #, python-format msgid "The move failed because %s." msgstr "Sikertelen lépés: %s." #: lib/pychess/Savers/pgnbase.py:110 #, python-format msgid "Error parsing move %(moveno)s %(mstr)s" msgstr "Hibás lépés: %(moveno)s %(mstr)s" #: lib/pychess/Savers/pgn.py:28 msgid "Chess Game" msgstr "Sakkjátszma" #: lib/pychess/Savers/pgn.py:362 msgid "Invalid move." msgstr "Szabálytalan lépés." #: lib/pychess/Savers/png.py:15 msgid "Png image" msgstr "Pgn kép" #: lib/pychess/System/ping.py:31 msgid "Destination Host Unreachable" msgstr "A cél gép nem érhető el" #: lib/pychess/System/ping.py:74 msgid "Died" msgstr "Vége" #: lib/pychess/Utils/GameModel.py:147 msgid "Local Event" msgstr "Helyi esemény" #: lib/pychess/Utils/GameModel.py:148 msgid "Local Site" msgstr "Helyben" #: lib/pychess/Utils/repr.py:12 msgid "Pawn" msgstr "gyalog" #: lib/pychess/Utils/repr.py:14 msgid "P" msgstr "G" #: lib/pychess/Utils/repr.py:14 msgid "N" msgstr "H" #: lib/pychess/Utils/repr.py:14 msgid "R" msgstr "B" #: lib/pychess/Utils/repr.py:14 msgid "Q" msgstr "V" #: lib/pychess/Utils/repr.py:14 msgid "K" msgstr "K" #: lib/pychess/Utils/repr.py:17 msgid "The game ended in a draw" msgstr "Döntetlen." #: lib/pychess/Utils/repr.py:18 #, python-format msgid "%(white)s won the game" msgstr "%(white)s győzött." #: lib/pychess/Utils/repr.py:19 #, python-format msgid "%(black)s won the game" msgstr "%(black)s győzött." #: lib/pychess/Utils/repr.py:20 msgid "The game has been killed" msgstr "A játszmát leállították." #: lib/pychess/Utils/repr.py:21 msgid "The game has been adjourned" msgstr "A játszmát elhalasztották." #: lib/pychess/Utils/repr.py:22 msgid "The game has been aborted" msgstr "A játszmát megszakították." #: lib/pychess/Utils/repr.py:26 msgid "Because neither player has sufficient material to mate" msgstr "Egyik félnek sincs elég mattadó anyaga." #: lib/pychess/Utils/repr.py:27 msgid "Because the same position was repeated three times in a row" msgstr "Háromszori állásismétlés." #: lib/pychess/Utils/repr.py:28 msgid "Because the last 50 moves brought nothing new" msgstr "50 lépéses szabály." #: lib/pychess/Utils/repr.py:29 msgid "Because both players ran out of time" msgstr "Mindkét fél túllépte az időt." #: lib/pychess/Utils/repr.py:30 #, python-format msgid "Because %(mover)s stalemated" msgstr "%(mover)s pattba lépett." #: lib/pychess/Utils/repr.py:31 msgid "Because both players agreed to a draw" msgstr "A játékosok megegyeztek adöntetlenben." #: lib/pychess/Utils/repr.py:32 lib/pychess/Utils/repr.py:42 msgid "Because of adjudication by an admin" msgstr "Egy adminisztrátor döntése." #: lib/pychess/Utils/repr.py:33 msgid "Because the game exceed the max length" msgstr "Túl hosszú játszma." #: lib/pychess/Utils/repr.py:34 #, python-format msgid "" "Because %(white)s ran out of time and %(black)s has insufficient material to" " mate" msgstr "%(white)s túllépte az időt, és %(black)s oldalán nincs elég mattadó anyag." #: lib/pychess/Utils/repr.py:35 #, python-format msgid "" "Because %(black)s ran out of time and %(white)s has insufficient material to" " mate" msgstr "%(black)s túllépte az időt, de %(white)s oldalán sincs elég mattadó anyag." #: lib/pychess/Utils/repr.py:36 msgid "Because both players have the same amount of pieces" msgstr "Mindkét félnek azonos számú figurája maradt." #: lib/pychess/Utils/repr.py:38 #, python-format msgid "Because %(loser)s resigned" msgstr "%(loser)s feladta." #: lib/pychess/Utils/repr.py:39 #, python-format msgid "Because %(loser)s ran out of time" msgstr "%(loser)s túllépte az időt." #: lib/pychess/Utils/repr.py:40 #, python-format msgid "Because %(loser)s was checkmated" msgstr "%(loser)s mattot kapott." #: lib/pychess/Utils/repr.py:41 #, python-format msgid "Because %(loser)s disconnected" msgstr "%(loser)s kapcsolata megszakadt." #: lib/pychess/Utils/repr.py:43 #, python-format msgid "Because %(winner)s has fewer pieces" msgstr "%(winner)s kevesebb figurával rendelkezik." #: lib/pychess/Utils/repr.py:44 #, python-format msgid "Because %(winner)s lost all pieces" msgstr "%(winner)s minden figuráját leütötték." #: lib/pychess/Utils/repr.py:45 #, python-format msgid "Because %(loser)s king exploded" msgstr "%(loser)s királya megsemmisült." #: lib/pychess/Utils/repr.py:46 #, python-format msgid "Because %(winner)s king reached the center" msgstr "%(winner)s királya elérte a centrumot." #: lib/pychess/Utils/repr.py:47 #, python-format msgid "Because %(winner)s was giving check 3 times" msgstr "%(winner)s harmadszor adott sakkot." #: lib/pychess/Utils/repr.py:49 msgid "Because a player lost connection" msgstr "A játékos kapcsolata megszakadt." #: lib/pychess/Utils/repr.py:50 msgid "Because both players agreed to an adjournment" msgstr "Mindkét játékos beleegyezett az elhalasztásba." #: lib/pychess/Utils/repr.py:51 msgid "Because the server was shut down" msgstr "A szerver leállt." #: lib/pychess/Utils/repr.py:52 msgid "" "Because a player lost connection and the other player requested adjournment" msgstr "A kapcsolat megszakadt és az ellenfél elhalasztást kért." #: lib/pychess/Utils/repr.py:53 #, python-format msgid "" "Because %(black)s lost connection to the server and %(white)s requested " "adjournment" msgstr "%(black)s kapcsolata megszakadt és %(white)s a játszma elhalasztását kérte." #: lib/pychess/Utils/repr.py:54 #, python-format msgid "" "Because %(white)s lost connection to the server and %(black)s requested " "adjournment" msgstr "%(white)s kapcsolata megszakadt és %(black)s a játszma elhalasztását kérte." #: lib/pychess/Utils/repr.py:55 #, python-format msgid "Because %(white)s lost connection to the server" msgstr "%(white)s kapcsolata megszakadt a szerverrel." #: lib/pychess/Utils/repr.py:56 #, python-format msgid "Because %(black)s lost connection to the server" msgstr "%(black)s kapcsolata megszakadt a szerverrel." #: lib/pychess/Utils/repr.py:58 msgid "Because of adjudication by an admin. No rating changes have occurred." msgstr "Adminisztrátori döntés. Az értékszámok nem változtak." #: lib/pychess/Utils/repr.py:59 msgid "" "Because both players agreed to abort the game. No rating changes have " "occurred." msgstr "Mindkét játékos beleegyezett a megszakításba. Az értékszámok nem változtak." #: lib/pychess/Utils/repr.py:60 msgid "Because of courtesy by a player. No rating changes have occurred." msgstr "A játékos szívessége miatt. Az értékszámok nem változtak." #: lib/pychess/Utils/repr.py:61 msgid "" "Because a player aborted the game. Either player can abort the game without " "the other's consent before the second move. No rating changes have occurred." msgstr "Az egyik játékos megszakította a játszmát. Mindkét fél büntetlenül megszakíthatja a játszmát a második lépés előtt. Az értékszámok nem változtak." #: lib/pychess/Utils/repr.py:62 msgid "" "Because a player disconnected and there are too few moves to warrant " "adjournment. No rating changes have occurred." msgstr "Az egyik játékos kijelentkezett, és a játszma elhalasztásához még túl kevés lépés történt. Az értékszámok nem változtak." #: lib/pychess/Utils/repr.py:63 msgid "Because the server was shut down. No rating changes have occurred." msgstr "A szerver leállt. Az értékszámok nem változtak." #: lib/pychess/Utils/repr.py:65 #, python-format msgid "Because the %(white)s engine died" msgstr "A %(white)s sakkmotor leállt." #: lib/pychess/Utils/repr.py:66 #, python-format msgid "Because the %(black)s engine died" msgstr "A %(black)s sakkmotor leállt." #: lib/pychess/Utils/repr.py:67 msgid "Because the connection to the server was lost" msgstr "A kapcsolat megszakadt a szerverrel." #: lib/pychess/Utils/repr.py:68 msgid "The reason is unknown" msgstr "Ismeretlen ok." #: lib/pychess/Utils/TimeModel.py:229 msgid "min" msgstr " perc" #: lib/pychess/Utils/TimeModel.py:231 msgid "sec" msgstr "mp" #: lib/pychess/Variants/asean.py:12 msgid "" "ASEAN: http://www.ncf-" "phil.org/downloadables/2014/May/Asean_chess/Laws_of_ASEAN_Chess_2011_Nov_26.doc" msgstr "ASEAN: http://www.ncf-phil.org/downloadables/2014/May/Asean_chess/Laws_of_ASEAN_Chess_2011_Nov_26.doc" #: lib/pychess/Variants/asean.py:13 msgid "ASEAN" msgstr "ASEAN" #: lib/pychess/Variants/asean.py:33 msgid "Makruk: http://en.wikipedia.org/wiki/Makruk" msgstr "Makruk: http://en.wikipedia.org/wiki/Makruk" #: lib/pychess/Variants/asean.py:34 msgid "Makruk" msgstr "Makruk" #: lib/pychess/Variants/asean.py:60 msgid "Cambodian: http://www.khmerinstitute.org/culture/ok.html" msgstr "Cambodian: http://www.khmerinstitute.org/culture/ok.html" #: lib/pychess/Variants/asean.py:61 msgid "Cambodian" msgstr "Cambodian" #: lib/pychess/Variants/asean.py:86 msgid "" "Ai-Wok: http://www.open-" "aurec.com/wbforum/viewtopic.php?p=199364&sid=20963a1de2c164050de019e5ed6bf7c4#p199364" msgstr "Ai-Wok: http://www.open-aurec.com/wbforum/viewtopic.php?p=199364&sid=20963a1de2c164050de019e5ed6bf7c4#p199364" #: lib/pychess/Variants/asean.py:87 msgid "Ai-Wok" msgstr "Ai-Wok" #: lib/pychess/Variants/asean.py:111 msgid "Sittuyin: http://en.wikipedia.org/wiki/Sittuyin" msgstr "Sittuyin: http://en.wikipedia.org/wiki/Sittuyin" #: lib/pychess/Variants/asean.py:112 msgid "Sittuyin" msgstr "Sittuyin" #: lib/pychess/Variants/asymmetricrandom.py:12 msgid "" "FICS wild/4: http://www.freechess.org/Help/HelpFiles/wild.html\n" "* Randomly chosen pieces (two queens or three rooks possible)\n" "* Exactly one king of each color\n" "* Pieces placed randomly behind the pawns, SUBJECT TO THE CONSTRAINT THAT THE BISHOPS ARE BALANCED\n" "* No castling\n" "* Black's arrangement DOES NOT mirrors white's" msgstr "FICS wild/4: http://www.freechess.org/Help/HelpFiles/wild.html\n* Véletlenszerűen választott figurák (két királynő vagy három bástya is lehet)\n* Minkét oldalon pontosan egy király\n* A tisztek a gyalogok mögött véletlenszerűen elhelyezve, de a futók szín szerint kiegyensúlyozottan\n* Nincs sáncolás\n* Sötét elrendezése nem a világos tükörképe" #: lib/pychess/Variants/asymmetricrandom.py:18 msgid "Asymmetric Random" msgstr "Aszimmetrikus kevert" #: lib/pychess/Variants/atomic.py:14 msgid "FICS atomic: http://www.freechess.org/Help/HelpFiles/atomic.html" msgstr "FICS atomic: http://www.freechess.org/Help/HelpFiles/atomic.html" #: lib/pychess/Variants/blindfold.py:7 msgid "" "Classic chess rules with hidden figurines\n" "http://en.wikipedia.org/wiki/Blindfold_chess" msgstr "Klasszikus sakk szabályok láthatatlan figurákkal\nhttp://en.wikipedia.org/wiki/Blindfold_chess" #: lib/pychess/Variants/blindfold.py:9 #: lib/pychess/widgets/newGameDialog.py:264 msgid "Blindfold" msgstr "Vak" #: lib/pychess/Variants/blindfold.py:18 msgid "" "Classic chess rules with hidden pawns\n" "http://en.wikipedia.org/wiki/Blindfold_chess" msgstr "Klasszikus sakk szabályok láthatatlan gyalogokkal\nhttp://en.wikipedia.org/wiki/Blindfold_chess" #: lib/pychess/Variants/blindfold.py:20 msgid "Hidden pawns" msgstr "Láthatatlan gyalogok" #: lib/pychess/Variants/blindfold.py:29 msgid "" "Classic chess rules with hidden pieces\n" "http://en.wikipedia.org/wiki/Blindfold_chess" msgstr "Klasszikus sakk szabályok láthatatlan tisztekkel\nhttp://en.wikipedia.org/wiki/Blindfold_chess" #: lib/pychess/Variants/blindfold.py:31 msgid "Hidden pieces" msgstr "Láthatatlan tisztek" #: lib/pychess/Variants/blindfold.py:40 msgid "" "Classic chess rules with all pieces white\n" "http://en.wikipedia.org/wiki/Blindfold_chess" msgstr "Klasszikus sakk szabályok csak világos figurákkal\nhttp://en.wikipedia.org/wiki/Blindfold_chess" #: lib/pychess/Variants/blindfold.py:42 msgid "All white" msgstr "Egyszínű figurák" #: lib/pychess/Variants/bughouse.py:8 msgid "FICS bughouse: http://www.freechess.org/Help/HelpFiles/bughouse.html" msgstr "FICS bughouse: http://www.freechess.org/Help/HelpFiles/bughouse.html" #: lib/pychess/Variants/corner.py:12 msgid "" "http://brainking.com/en/GameRules?tp=2\n" "* Placement of the pieces on the 1st and 8th row are randomized\n" "* The king is in the right hand corner\n" "* Bishops must start on opposite color squares\n" "* Black's starting position is obtained by rotating white's position 180 degrees around the board's center\n" "* No castling" msgstr "http://brainking.com/en/GameRules?tp=2\n* A világos figurák elrendezése az 1. soron véletlenszerű\n* A király a jobb sarokban\n* A futók ellenkező színű mezőkön\n* A sötét figurák elrendezését a világosaknak a tábla középpontja körüli 180 fokos elforgatásával kapjuk\n* Nincs sáncolás" #: lib/pychess/Variants/corner.py:18 msgid "Corner" msgstr "Sarok" #: lib/pychess/Variants/crazyhouse.py:8 msgid "" "FICS crazyhouse: http://www.freechess.org/Help/HelpFiles/crazyhouse.html" msgstr "FICS crazyhouse: http://www.freechess.org/Help/HelpFiles/crazyhouse.html" #: lib/pychess/Variants/euroshogi.py:9 msgid "EuroShogi: http://en.wikipedia.org/wiki/EuroShogi" msgstr "EuroShogi: http://en.wikipedia.org/wiki/EuroShogi" #: lib/pychess/Variants/euroshogi.py:10 msgid "EuroShogi" msgstr "EuroShogi" #: lib/pychess/Variants/fischerandom.py:18 msgid "" "http://en.wikipedia.org/wiki/Chess960\n" "FICS wild/fr: http://www.freechess.org/Help/HelpFiles/wild.html" msgstr "http://en.wikipedia.org/wiki/Chess960\nFICS wild/fr: http://www.freechess.org/Help/HelpFiles/wild.html" #: lib/pychess/Variants/fischerandom.py:20 msgid "Fischer Random" msgstr "Fischer random" #: lib/pychess/Variants/kingofthehill.py:8 msgid "" "Bringing your king legally to the center (e4, d4, e5, d5) instantly wins the game!\n" "Normal rules apply in other cases and checkmate also ends the game." msgstr "Aki a királyával a centrumba lép, győz.\nEgyébként a normál szabályok érvényesek,\na mattadás szabályai is." #: lib/pychess/Variants/kingofthehill.py:10 msgid "King of the hill" msgstr "Enyém a vár, tied a lekvár!" #: lib/pychess/Variants/knightodds.py:8 msgid "One player starts with one less knight piece" msgstr "Az egyik játékos egy huszár hátrannyal indul" #: lib/pychess/Variants/knightodds.py:9 msgid "Knight odds" msgstr "Huszár előny" #: lib/pychess/Variants/losers.py:8 msgid "FICS losers: http://www.freechess.org/Help/HelpFiles/losers_chess.html" msgstr "FICS losers: http://www.freechess.org/Help/HelpFiles/losers_chess.html" #: lib/pychess/Variants/normal.py:4 msgid "" "Classic chess rules\n" "http://en.wikipedia.org/wiki/Chess" msgstr "Klasszikus sakk szabályok\nhttp://en.wikipedia.org/wiki/Chess" #: lib/pychess/Variants/normal.py:6 lib/pychess/widgets/newGameDialog.py:157 msgid "Normal" msgstr "Standard" #: lib/pychess/Variants/pawnodds.py:8 msgid "One player starts with one less pawn piece" msgstr "Az egyik játékos egy gyalog hátrannyal indul" #: lib/pychess/Variants/pawnodds.py:9 msgid "Pawn odds" msgstr "Gyalog előny" #: lib/pychess/Variants/pawnspassed.py:11 msgid "" "FICS wild/8a: http://www.freechess.org/Help/HelpFiles/wild.html\n" "White pawns start on 5th rank and black pawns on the 4th rank" msgstr "FICS wild/8a: http://www.freechess.org/Help/HelpFiles/wild.html\nA világos gyalogok az 5. sorról, a sötét gyalogok a 4. sorról indulnak!" #: lib/pychess/Variants/pawnspassed.py:13 msgid "Pawns Passed" msgstr "Gyalogok a félpályán túl" #: lib/pychess/Variants/pawnspushed.py:10 msgid "" "FICS wild/8: http://www.freechess.org/Help/HelpFiles/wild.html\n" "Pawns start on 4th and 5th ranks rather than 2nd and 7th" msgstr "FICS wild/8: http://www.freechess.org/Help/HelpFiles/wild.html\nA gyalogok a 4. és 5. sorról indulnak a 2. és 7. helyett." #: lib/pychess/Variants/pawnspushed.py:12 msgid "Pawns Pushed" msgstr "Összetolt gyalogok" #: lib/pychess/Variants/queenodds.py:8 msgid "One player starts with one less queen piece" msgstr "Az egyik játékos egy vezér hátrannyal indul" #: lib/pychess/Variants/queenodds.py:9 msgid "Queen odds" msgstr "Vezér előny" #: lib/pychess/Variants/randomchess.py:11 msgid "" "FICS wild/3: http://www.freechess.org/Help/HelpFiles/wild.html\n" "* Randomly chosen pieces (two queens or three rooks possible)\n" "* Exactly one king of each color\n" "* Pieces placed randomly behind the pawns\n" "* No castling\n" "* Black's arrangement mirrors white's" msgstr "FICS wild/3: http://www.freechess.org/Help/HelpFiles/wild.html\n* Véletlenszerűen választott figurák (két királynő vagy három bástya is lehet)\n* Minkét oldalon pontosan egy király\n* A tisztek a gyalogok mögött véletlenszerűen elhelyezve,\n* Nincs sáncolás\n* Sötét elrendezése a világos tükörképe" #: lib/pychess/Variants/randomchess.py:17 #: lib/pychess/widgets/TaskerManager.py:155 msgid "Random" msgstr "Véletlen" #: lib/pychess/Variants/rookodds.py:8 msgid "One player starts with one less rook piece" msgstr "Az egyik játékos egy bástya hátrannyal indul" #: lib/pychess/Variants/rookodds.py:9 msgid "Rook odds" msgstr "Bástya előny" #: lib/pychess/Variants/shuffle.py:11 msgid "" "xboard nocastle: http://home.hccnet.nl/h.g.muller/engine-intf.html#8\n" "FICS wild/2: http://www.freechess.org/Help/HelpFiles/wild.html\n" "* Random arrangement of the pieces behind the pawns\n" "* No castling\n" "* Black's arrangement mirrors white's" msgstr "xboard nocastle: http://home.hccnet.nl/h.g.muller/engine-intf.html#8\nFICS wild/2: http://www.freechess.org/Help/HelpFiles/wild.html\n* A tisztek véletlen elrendezésben a gyalogok mögött\n* Nincs sáncolás\n* A sötét figurák elrendezése a világosak tükörképe" #: lib/pychess/Variants/suicide.py:11 msgid "" "FICS suicide: http://www.freechess.org/Help/HelpFiles/suicide_chess.html" msgstr "FICS suicide: http://www.freechess.org/Help/HelpFiles/suicide_chess.html" #: lib/pychess/Variants/theban.py:10 msgid "" "Variant developed by Kai Laskos: " "http://talkchess.com/forum/viewtopic.php?t=40990" msgstr "Kai Laskos által létrehozott sakk variáns: http://talkchess.com/forum/viewtopic.php?t=40990" #: lib/pychess/Variants/theban.py:11 msgid "Theban" msgstr "Spárta - Théba" #: lib/pychess/Variants/threecheck.py:10 msgid "Win by giving check 3 times" msgstr "Győzelem a 3. sakk beadásával" #: lib/pychess/Variants/threecheck.py:11 msgid "Three-check" msgstr "3 sakk" #: lib/pychess/Variants/upsidedown.py:10 msgid "" "FICS wild/5: http://www.freechess.org/Help/HelpFiles/wild.html\n" "http://en.wikipedia.org/wiki/Chess_variant#Chess_with_different_starting_positions\n" "Pawns start on their 7th rank rather than their 2nd rank!" msgstr "FICS wild/5: http://www.freechess.org/Help/HelpFiles/wild.html\nhttp://en.wikipedia.org/wiki/Chess_variant#Chess_with_different_starting_positions\nA gyalogok a 2. és a 7. helyett a 7. és a 2. sorról indulnak!" #: lib/pychess/Variants/upsidedown.py:13 msgid "Upside Down" msgstr "Fejjel lefele" #: lib/pychess/Variants/wildcastle.py:10 msgid "" "xboard wildcastle http://home.hccnet.nl/h.g.muller/engine-intf.html#8\n" "FICS wild/0: http://www.freechess.org/Help/HelpFiles/wild.html\n" "* White has the typical set-up at the start.\n" "* Black's pieces are the same, except that the King and Queen are reversed,\n" "* so they are not on the same files as White's King and Queen.\n" "* Castling is done similarly to normal chess:\n" "* o-o-o indicates long castling and o-o short castling." msgstr "xboard wildcastle http://home.hccnet.nl/h.g.muller/engine-intf.html#8\nFICS wild/0: http://www.freechess.org/Help/HelpFiles/wild.html\n* A világos figurák elrendezése hagyományos.\n* A sötéteké is, kivéve, hogy a király és a vezér fel van cserélve,\n* tehát azok nem a világos királyával és vezérével megegyező oszlopokon helyezkednek el.\n* A sáncolás a hagyományosnak megfelelően történik:\n* o-o-o a hosszú sánc, o-o a rövid sánc jele." #: lib/pychess/Variants/wildcastle.py:17 msgid "Wildcastle" msgstr "Szabálytalan sánc" #: lib/pychess/Variants/wildcastleshuffle.py:11 msgid "" "xboard wildcastle http://home.hccnet.nl/h.g.muller/engine-intf.html#8\n" "FICS wild/1: http://www.freechess.org/Help/HelpFiles/wild.html\n" "* In this variant both sides have the same set of pieces as in normal chess.\n" "* The white king starts on d1 or e1 and the black king starts on d8 or e8,\n" "* and the rooks are in their usual positions.\n" "* Bishops are always on opposite colors.\n" "* Subject to these constraints the position of the pieces on their first ranks is random.\n" "* Castling is done similarly to normal chess:\n" "* o-o-o indicates long castling and o-o short castling." msgstr "xboard wildcastle http://home.hccnet.nl/h.g.muller/engine-intf.html#8\nFICS wild/1: http://www.freechess.org/Help/HelpFiles/wild.html\n* Mindkét oldal a hagyományos sakkban szokásos figurákkal rendelkezik\n* A világos király d1-en vagy e1-en áll, a sötét király d8-on vagy e8-on,\n* a bástyák a szokásos helyükön,\n* a futók ellenkező színű mezőkön állnak.\n* Ezen szabályok betartása mellett a tisztek elhelyezkedése véletlenszerű.\n* A sáncolás a hagyományosnak megfelelően történik:\n* o-o-o a hosszú sánc, o-o a rövid sánc jele." #: lib/pychess/Variants/wildcastleshuffle.py:20 msgid "Wildcastle shuffle" msgstr "Szabálytalan sánc, kevert" #: lib/pychess/widgets/analyzegameDialog.py:85 msgid "Game analyzing in progress..." msgstr "Gépi elemzés folyamatban..." #: lib/pychess/widgets/analyzegameDialog.py:86 msgid "Do you want to abort it?" msgstr "Meg akarod szakítani?" #: lib/pychess/widgets/analyzegameDialog.py:95 #: lib/pychess/widgets/gamewidget.py:202 lib/pychess/widgets/gamewidget.py:320 msgid "Abort" msgstr "_Megszakít" #: lib/pychess/widgets/ChatView.py:125 msgid "Observers" msgstr "Nézők" #: lib/pychess/widgets/ChatWindow.py:222 msgid "You have opened no conversations yet" msgstr "Még nem kezdtél beszélgetést." #: lib/pychess/widgets/ChatWindow.py:254 msgid "Only registered users may talk to this channel" msgstr "Csak regisztrált felhasználók beszélhetnek ezen a csatornán." #: lib/pychess/widgets/ChatWindow.py:312 msgid "No conversation's selected" msgstr "Nincs beszélgetés kiválasztva." #: lib/pychess/widgets/ChatWindow.py:350 msgid "Loading player data" msgstr "Játékos adatainak betöltése." #: lib/pychess/widgets/ChatWindow.py:400 msgid "Receiving list of players" msgstr "Játékosok listájának letöltése." #: lib/pychess/widgets/ChatWindow.py:518 msgid "Friends" msgstr "Barátok" #: lib/pychess/widgets/ChatWindow.py:529 msgid "Admin" msgstr "Rendszergazda" #: lib/pychess/widgets/ChatWindow.py:540 msgid "More channels" msgstr "További csatornák" #: lib/pychess/widgets/ChatWindow.py:548 msgid "More players" msgstr "További játékosok" #: lib/pychess/widgets/ChatWindow.py:558 msgid "Computers" msgstr "Számítógép" #: lib/pychess/widgets/ChatWindow.py:568 msgid "BlindFold" msgstr "Vaksakk" #: lib/pychess/widgets/ChatWindow.py:578 msgid "Guests" msgstr "Vendég" #: lib/pychess/widgets/ChatWindow.py:805 msgid "Conversations" msgstr "Beszélgetések" #: lib/pychess/widgets/ChatWindow.py:807 msgid "Conversation info" msgstr "Beszélgetés információ" #: lib/pychess/widgets/enginesDialog.py:152 msgid "Select engine" msgstr "Sakkmotor kiválasztása" #: lib/pychess/widgets/enginesDialog.py:156 msgid "Executable files" msgstr "Futtatható fájlok" #: lib/pychess/widgets/enginesDialog.py:176 #: lib/pychess/widgets/enginesDialog.py:210 #: lib/pychess/widgets/enginesDialog.py:235 #, python-format msgid "Unable to add %s" msgstr "Nem lehet hozzáadni ezt: %s" #: lib/pychess/widgets/enginesDialog.py:177 msgid "wine not installed" msgstr "A wine nincs telepítve!" #: lib/pychess/widgets/enginesDialog.py:211 #: lib/pychess/widgets/enginesDialog.py:236 msgid "There is something wrong with this executable" msgstr "Valami probléma van ezzel a programmal." #: lib/pychess/widgets/enginesDialog.py:266 msgid "Select working directory" msgstr "Munkakönyvtár kiválasztása" #: lib/pychess/widgets/gamenanny.py:115 #, python-format msgid " invalid engine move: %s" msgstr "Érvénytelen lépés: %s" #: lib/pychess/widgets/gamenanny.py:134 msgid "Offer Rematch" msgstr "_Visszavágó ajánlása" #: lib/pychess/widgets/gamenanny.py:136 lib/pychess/widgets/gamenanny.py:147 #, python-format msgid "Observe %s" msgstr "%s megtekintése" #: lib/pychess/widgets/gamenanny.py:168 msgid "Play Rematch" msgstr "Visszavágó" #: lib/pychess/widgets/gamenanny.py:171 msgid "Undo one move" msgstr "Lépés visszavonása" #: lib/pychess/widgets/gamenanny.py:173 msgid "Undo two moves" msgstr "Lépéspár visszavonása" #: lib/pychess/widgets/gamenanny.py:203 msgid "The game is paused" msgstr "A játszma szünetel" #: lib/pychess/widgets/gamenanny.py:221 lib/pychess/widgets/gamenanny.py:222 msgid "Loaded game" msgstr "Betöltött játszma" #: lib/pychess/widgets/gamenanny.py:228 msgid "Saved game" msgstr "Mentett játszma" #: lib/pychess/widgets/gamenanny.py:232 msgid "Analyzer started" msgstr "Elemző elindítva." #: lib/pychess/widgets/gamenanny.py:281 msgid "You sent an abort offer" msgstr "Megszakítás ajánlat elküldve." #: lib/pychess/widgets/gamenanny.py:283 msgid "You sent an adjournment offer" msgstr "Elhalasztás ajánlat elküldve." #: lib/pychess/widgets/gamenanny.py:285 msgid "You sent a draw offer" msgstr "Döntetlen ajánlat elküldve." #: lib/pychess/widgets/gamenanny.py:287 msgid "You sent a pause offer" msgstr "Szünet ajánlat elküldve." #: lib/pychess/widgets/gamenanny.py:289 msgid "You sent a resume offer" msgstr "Folytatás ajánlat elküldve." #: lib/pychess/widgets/gamenanny.py:291 msgid "You sent an undo offer" msgstr "Lépés visszavonás ajánlat elküldve." #: lib/pychess/widgets/gamenanny.py:293 msgid "You asked your opponent to move" msgstr "Azonnali lépés kérése" #: lib/pychess/widgets/gamenanny.py:305 #, python-format msgid "Engine, %s, has died" msgstr "A(z) %s sakkmotor leállt." #: lib/pychess/widgets/gamenanny.py:306 msgid "" "PyChess has lost connection to the engine, probably because it has died.\n" "\n" "You can try to start a new game with the engine, or try to play against another one." msgstr "A pychess elveszítette a kapcsolatot a sakkmotorral.\n\nMagpróbálhatsz indítani egy új játszmát ezzel a sakkmotorral, vagy kipróbálhatsz egy másikat." #: lib/pychess/widgets/gamewidget.py:204 msgid "" "This game can be automatically aborted without rating loss because there has" " not yet been two moves made" msgstr "Ez a játszma értékszám vesztés nélkül megszakítható, mivel még nem történt két lépés." #: lib/pychess/widgets/gamewidget.py:206 msgid "Offer Abort" msgstr "_Megszakítás ajánlása" #: lib/pychess/widgets/gamewidget.py:208 msgid "" "Your opponent must agree to abort the game because there has been two or " "more moves made" msgstr "Az ellenfelednek bele kell egyeznie a megszakításba, mivel már kettő vagy több lépés történt a játszmában." #: lib/pychess/widgets/gamewidget.py:226 msgid "This game can not be adjourned because one or both players are guests" msgstr "Ezt a játszmát nem lehet elhalasztani, mert a játékosok közül legalább az egyik vendég." #: lib/pychess/widgets/gamewidget.py:243 msgid "Claim Draw" msgstr "Döntetlen igénylése" #: lib/pychess/widgets/gamewidget.py:325 msgid "Pause" msgstr "Szünet" #: lib/pychess/widgets/gamewidget.py:326 msgid "Resume" msgstr "Folytatás" #: lib/pychess/widgets/gamewidget.py:328 msgid "Offer Pause" msgstr "Szünet kérése" #: lib/pychess/widgets/gamewidget.py:329 msgid "Offer Resume" msgstr "Folytatás ajánlása" #: lib/pychess/widgets/gamewidget.py:333 msgid "Undo" msgstr "Lépés visszavétel" #: lib/pychess/widgets/gamewidget.py:335 msgid "Offer Undo" msgstr "Lépés visszavétel kérése" #: lib/pychess/widgets/gamewidget.py:550 msgid " has lagged for 30 seconds" msgstr "kapcsolata 30 másodperce késlekedik." #: lib/pychess/widgets/gamewidget.py:566 msgid " is lagging heavily but hasn't disconnected" msgstr "kapcsolata erősen késlekedik, de nem szakadt meg." #: lib/pychess/widgets/gamewidget.py:567 msgid "Continue to wait for opponent, or try to adjourn the game?" msgstr "Tovább várakozol az ellenfélre vagy megpróbálod elhalasztani a játszmát?" #: lib/pychess/widgets/gamewidget.py:575 msgid "Wait" msgstr "Várakozás" #: lib/pychess/widgets/gamewidget.py:576 msgid "Adjourn" msgstr "Elhalasztás" #: lib/pychess/widgets/gamewidget.py:648 msgid "Jump to initial position" msgstr "Kezdőállás" #: lib/pychess/widgets/gamewidget.py:653 msgid "Step back one move" msgstr "1 lépés vissza" #: lib/pychess/widgets/gamewidget.py:658 msgid "Go back to the main line" msgstr "Vissza a fő vátozathoz" #: lib/pychess/widgets/gamewidget.py:664 msgid "Step forward one move" msgstr "1 lépés előre" #: lib/pychess/widgets/gamewidget.py:669 msgid "Jump to latest position" msgstr "Utolsó pozíció" #: lib/pychess/widgets/gamewidget.py:903 msgid "PyChess was unable to load your panel settings" msgstr "A PyChess nem tudta menteni a játszmát." #: lib/pychess/widgets/gamewidget.py:904 msgid "" "Your panel settings have been reset. If this problem repeats, you should " "report it to the developers" msgstr "Az elmentett panel beállításokat nem sikerült betölteni." #: lib/pychess/widgets/ionest.py:67 lib/pychess/widgets/newGameDialog.py:389 #: lib/pychess/widgets/TaskerManager.py:210 msgid "You" msgstr "Te" #: lib/pychess/widgets/ionest.py:70 lib/pychess/widgets/newGameDialog.py:390 #: lib/pychess/widgets/preferencesDialog.py:61 #: lib/pychess/widgets/TaskerManager.py:213 msgid "Guest" msgstr "Vendég" #: lib/pychess/widgets/ionest.py:93 msgid "Error loading game" msgstr "Hiba a játszma betöltése közben" #: lib/pychess/widgets/ionest.py:127 lib/pychess/widgets/newGameDialog.py:480 msgid "Open Game" msgstr "Játszma megnyitása" #: lib/pychess/widgets/ionest.py:137 msgid "All Files" msgstr "Minden fájl" #: lib/pychess/widgets/ionest.py:140 msgid "Detect type automatically" msgstr "Automatikus típusdetektálás" #: lib/pychess/widgets/ionest.py:146 msgid "All Chess Files" msgstr "Minden sakkfájl" #: lib/pychess/widgets/ionest.py:228 msgid "Save Game" msgstr "Játszma mentése" #: lib/pychess/widgets/ionest.py:228 msgid "Export position" msgstr "Állás exportálása" #: lib/pychess/widgets/ionest.py:232 lib/pychess/widgets/ionest.py:360 msgid "vs." msgstr "-" #: lib/pychess/widgets/ionest.py:249 #, python-format msgid "Unknown file type '%s'" msgstr "Ismeretlen fájltípus '%s'" #: lib/pychess/widgets/ionest.py:250 #, python-format msgid "" "Was unable to save '%(uri)s' as PyChess doesn't know the format " "'%(ending)s'." msgstr "Nem lehet menteni '%(uri)s' -be, mert a PyChess nem ismeri a '%(ending)s' formátumot." #: lib/pychess/widgets/ionest.py:266 #, python-format msgid "Unable to save file '%s'" msgstr "Nem lehet menteni a '%s' fájlt" #: lib/pychess/widgets/ionest.py:268 msgid "" "You don't have the necessary rights to save the file.\n" "Please ensure that you have given the right path and try again." msgstr "Nincs elég jogosultságod a fájl mentéséhez.\nGyőződj meg róla, hogy jó útvonalat adtál meg, és próbáld újra." #: lib/pychess/widgets/ionest.py:276 msgid "_Replace" msgstr "_Felülír" #: lib/pychess/widgets/ionest.py:280 msgid "File exists" msgstr "A fájl már létezik." #: lib/pychess/widgets/ionest.py:282 #, python-format msgid "" "A file named '%s' already exists. Would you like to replace " "it?" msgstr "A '%s' fájl már létezik. Fölül akarja írni?" #: lib/pychess/widgets/ionest.py:283 #, python-format msgid "" "The file already exists in '%s'. If you replace it, its content will be " "overwritten." msgstr "A(z) '%s' fájl már létezik. Ha lecseréli, a tartalma felülíródik." #: lib/pychess/widgets/ionest.py:299 msgid "Could not save the file" msgstr "Nem lehet menteni a fájlt." #: lib/pychess/widgets/ionest.py:300 msgid "PyChess was not able to save the game" msgstr "A PyChess nem tudta menteni a játszmát." #: lib/pychess/widgets/ionest.py:301 #, python-format msgid "The error was: %s" msgstr "A hiba: %s" #: lib/pychess/widgets/ionest.py:325 #, python-format msgid "There is %d game with unsaved moves." msgid_plural "There are %d games with unsaved moves." msgstr[0] "%d játszma még nincs mentve." msgstr[1] "%d játszma még nincs mentve." #: lib/pychess/widgets/ionest.py:328 msgid "Save moves before closing?" msgstr "Akarod menteni mielőtt bezárod?" #: lib/pychess/widgets/ionest.py:339 msgid "Unable to save to configured file. Save the games before closing?" msgstr "Nem sikerült a mentés a beállított fájlba. Menti a játszmákat bezárás előtt?" #: lib/pychess/widgets/ionest.py:366 #, python-format msgid "_Save %d document" msgid_plural "_Save %d documents" msgstr[0] "%d játszma _mentése" msgstr[1] "%d játszma _mentése" #: lib/pychess/widgets/ionest.py:412 msgid "Save the current game before you close it?" msgstr "Mented a játszmát bezárás előtt?" #: lib/pychess/widgets/ionest.py:420 msgid "" "Unable to save to configured file. Save the current game before you close " "it?" msgstr "Nem sikerült a mentés a beállított fájlba. Menti a játszmát bezárás előtt?" #: lib/pychess/widgets/ionest.py:434 msgid "" "It is not possible later to continue the game,\n" "if you don't save it." msgstr "A játszmát nem tudod később folytatni, ha most nem mented el." #: lib/pychess/widgets/LogDialog.py:26 msgid "PyChess Information Window" msgstr "Információs ablak mutatása" #: lib/pychess/widgets/LogDialog.py:184 lib/pychess/widgets/LogDialog.py:188 msgid "of" msgstr "/" #: lib/pychess/widgets/newGameDialog.py:84 #: lib/pychess/widgets/newGameDialog.py:85 msgid "Human Being" msgstr "Ember" #: lib/pychess/widgets/newGameDialog.py:155 msgid "Rapid" msgstr "Rapid" #: lib/pychess/widgets/newGameDialog.py:224 msgid "Minutes:" msgstr "Perc:" #: lib/pychess/widgets/newGameDialog.py:228 msgid "Gain:" msgstr "Jóváírás:" #: lib/pychess/widgets/newGameDialog.py:241 #, python-format msgid "%(name)s %(minutes)d min + %(gain)d sec/move" msgstr "%(name)s %(minutes)d perc + %(gain)d mp/lépés" #: lib/pychess/widgets/newGameDialog.py:244 #, python-format msgid "%(name)s %(minutes)d min %(gain)d sec/move" msgstr "%(name)s %(minutes)d perc %(gain)d mp/lépés" #: lib/pychess/widgets/newGameDialog.py:247 #, python-format msgid "%(name)s %(minutes)d min" msgstr "%(name)s %(minutes)d perc" #: lib/pychess/widgets/newGameDialog.py:265 msgid "Odds" msgstr "Előnyadás" #: lib/pychess/widgets/newGameDialog.py:269 msgid "Asian variants" msgstr "Ázsiai változatok" #: lib/pychess/widgets/newGameDialog.py:301 msgid " chess" msgstr " sakk" #: lib/pychess/widgets/newGameDialog.py:682 msgid "Type or paste PGN game or FEN positions here" msgstr "Írj vagy másolj be egy PGN játszmát vagy FEN állást ide." #: lib/pychess/widgets/newGameDialog.py:725 msgid "Enter Game" msgstr "Játszma rögzítése" #: lib/pychess/widgets/preferencesDialog.py:123 msgid "Select book file" msgstr "Megnyitástár fájl kiválasztása" #: lib/pychess/widgets/preferencesDialog.py:128 msgid "Opening books" msgstr "Megnyitástár fájlok" #: lib/pychess/widgets/preferencesDialog.py:156 msgid "Select Gaviota TB path" msgstr "Gaviota végjáték adatbázis könyvtár kiválasztása" #: lib/pychess/widgets/preferencesDialog.py:331 msgid "Open Sound File" msgstr "Hangfájl megnyitása" #: lib/pychess/widgets/preferencesDialog.py:341 msgid "Sound files" msgstr "Hang fájlok" #: lib/pychess/widgets/preferencesDialog.py:485 msgid "Undescribed panel" msgstr "Nincs leírás" #: lib/pychess/widgets/preferencesDialog.py:678 msgid "Select auto save path" msgstr "Az automatikus mentés útvonalának kiválasztása" #: lib/pychess/widgets/tipOfTheDay.py:51 msgid "" "You can start a new game by Game > New Game, in New Game " "window do you can choose Players, Time Control and Chess " "Variants." msgstr "Új játszmát kezdhetsz a Játszma > Új menüben, az új játszma ablakban kiválaszthatod a játékosokat, az időkontrollt és a sakkvariánst." #: lib/pychess/widgets/tipOfTheDay.py:52 msgid "" "You can choose from 20 different difficulties to play against the computer." msgstr "A számítógép elleni játszmához 20 nehézségi fokozat közül választhatsz." #: lib/pychess/widgets/tipOfTheDay.py:53 msgid "" "Chess Variants are like the pieces of the last line will be placed on the " "board." msgstr "A különféle sakkvariánsok esetén a figurák esetleg más sorrendben helyezkednek el az utolsó soron." #: lib/pychess/widgets/tipOfTheDay.py:54 msgid "" "To save a game Game > Save Game As, give the filename and " "choose where you want to be saved. At the bottom choose extension type of " "the file, and Save." msgstr "Egy játszma mentéséhez válaszd a Játszma > Mentés másként menüt, adj meg egy fájlnevet és egy helyet, ahova menteni akarod. Alul pedig válaszd ki a fájl típusához tartozó kiterjesztést, végül a Mentést." #: lib/pychess/widgets/tipOfTheDay.py:55 msgid "" "Do you know that you can call flag when the clock is with you, " "Actions > Call Flag." msgstr "Tudtad, hogy jelezheted az ellenfél időtúllépését a Műveletek > Időtúllépés bejelentése menüvel?" #: lib/pychess/widgets/tipOfTheDay.py:56 msgid "Pressing Ctrl+Z to offer opponent the possible rollback moves." msgstr "A lépésed visszavonását kérheted a Ctrl+Z lenyomásával.." #: lib/pychess/widgets/tipOfTheDay.py:57 msgid "" "To play on Fullscreen mode, just type F11. Coming back, F11 " "again." msgstr "Teljes képernyős módhoz csak nyomd meg az F11 billentyűt. Visszaváltáshoz szintén használdhatod az F11-et." #: lib/pychess/widgets/tipOfTheDay.py:58 msgid "Hint mode analyzing your game, enable this type Ctrl+H." msgstr "A javaslat mód elemzi a lépéseidet, a bekapcsolásához használd a Ctrl+H billentyűkombinációt." #: lib/pychess/widgets/tipOfTheDay.py:59 msgid "" "Spy mode analyzing the oponnent game, enable this type Ctrl+Y." msgstr "A fenyegetés mód elemzi az ellenfeled lépéseit, a bekapcsolásához használd a Ctrl+Y billentyűkombinációt." #: lib/pychess/widgets/tipOfTheDay.py:60 msgid "" "You can play chess listening to the sounds of the game, for that, " "Settings > Preferences > Sound tab, enable Use " "sounds in PyChess and choose your preferred sounds." msgstr "Kiválaszthatod a kedvenc hangjaidat a játékhoz a Beállítások menüben a Hangok fülön." #: lib/pychess/widgets/tipOfTheDay.py:61 msgid "" "Do you know that you can help translate Pychess in your language, " "Help > Translate Pychess." msgstr "Tudtad, hogyan segítheted a PyChess fordítását? Súgó > A PyChess fordítása." #: lib/pychess/widgets/tipOfTheDay.py:62 msgid "" "Do you know that it is possible to finish a chess game in just 2 turns?" msgstr "Tudtad, hogy egy játszmát akár kétlépéses mattal is meg lehet nyerni?" #: lib/pychess/widgets/tipOfTheDay.py:63 msgid "" "Do you know that the number of possible chess games exceeds the number of " "atoms in the Universe?" msgstr "Tudtad, hogy a lehetséges sakkjátszmák száma meghaladja az univerzum atomjainak számát?" #: lib/pychess/ic/managers/ChatManager.py:184 msgid "Shout" msgstr "Bekiabálás" #: lib/pychess/ic/managers/ChatManager.py:185 msgid "Chess Shout" msgstr "Sakk bekiabálás" #: lib/pychess/ic/managers/ChatManager.py:195 #, python-format msgid "Unofficial channel %d" msgstr "Nem hivatalos csatorna %d" #: lib/pychess/Utils/lutils/LBoard.py:152 #, python-format msgid "" "FEN needs 6 data fields. \n" "\n" "%s" msgstr "Egy FEN állásban pontosan 6 adatmezőt kell megadni. \n\n%s" #: lib/pychess/Utils/lutils/LBoard.py:154 #, python-format msgid "" "FEN needs at least 2 data fields in fenstr. \n" "\n" "%s" msgstr "Egy FEN állásban legalább 2 adatmezőt meg kell adni. \n\n%s" #: lib/pychess/Utils/lutils/LBoard.py:175 #, python-format msgid "" "Needs 7 slashes in piece placement field. \n" "\n" "%s" msgstr "A figurák elhelyezkedésének leírásában 7 darab / jelnek kell lennie. \n\n%s" #: lib/pychess/Utils/lutils/LBoard.py:178 #, python-format msgid "" "Active color field must be one of w or b. \n" "\n" "%s" msgstr "Az aktív szín jelzésére csak w és b használható. \n\n%s" #: lib/pychess/Utils/lutils/LBoard.py:189 #, python-format msgid "" "Castling availability field is not legal. \n" "\n" "%s" msgstr "A sáncolás lehetőségeit leíró mező szabálytalan. \n\n%s" #: lib/pychess/Utils/lutils/LBoard.py:192 #, python-format msgid "" "En passant cord is not legal. \n" "\n" "%s" msgstr "Az en-passant leíró mező szabálytalan. \n\n%s" #: lib/pychess/Utils/lutils/lmove.py:260 msgid "invalid promoted piece" msgstr "érvénytelen átváltozási figura" #: lib/pychess/Utils/lutils/lmove.py:272 msgid "the move needs a piece and a cord" msgstr "egy lépéshez kell legalább egy figura és egy koordináta" #: lib/pychess/Utils/lutils/lmove.py:306 lib/pychess/Utils/lutils/lmove.py:556 msgid "promotion move without promoted piece is incorrect" msgstr "A gyalog átváltozás új figura megadása nélkül szabálytalan" #: lib/pychess/Utils/lutils/lmove.py:312 #, python-format msgid "the captured cord (%s) is incorrect" msgstr "a (%s) hibás mező" #: lib/pychess/Utils/lutils/lmove.py:323 #, python-format msgid "the end cord (%s) is incorrect" msgstr "az érkezési mező (%s) érvénytelen" #: lib/pychess/Utils/lutils/strateval.py:24 sidepanel/commentPanel.py:191 #: sidepanel/commentPanel.py:208 msgid "and" msgstr "és" #: lib/pychess/Utils/lutils/strateval.py:43 msgid "draws" msgstr "döntetlent ér el" #: lib/pychess/Utils/lutils/strateval.py:45 msgid "mates" msgstr "mattot ad" #: lib/pychess/Utils/lutils/strateval.py:49 msgid "puts opponent in check" msgstr "sakkot ad" #: lib/pychess/Utils/lutils/strateval.py:73 msgid "improves king safety" msgstr "növeli a királya biztonságát" #: lib/pychess/Utils/lutils/strateval.py:75 msgid "slightly improves king safety" msgstr "növeli a királya biztonságát" #: lib/pychess/Utils/lutils/strateval.py:108 msgid "moves a rook to an open file" msgstr "bástyája elfoglalja a nyílt vonalat" #: lib/pychess/Utils/lutils/strateval.py:109 msgid "moves an rook to a half-open file" msgstr "bástya elfoglalja a félig nyílt vonalat" #: lib/pychess/Utils/lutils/strateval.py:119 #: lib/pychess/Utils/lutils/strateval.py:121 #: lib/pychess/Utils/lutils/strateval.py:124 #: lib/pychess/Utils/lutils/strateval.py:126 #, python-format msgid "moves bishop into fianchetto: %s" msgstr "a futóját fianchetto fejleszti: %s" #: lib/pychess/Utils/lutils/strateval.py:132 #, python-format msgid "promotes a Pawn to a %s" msgstr "átváltoztatja a gyalogot: %s" #: lib/pychess/Utils/lutils/strateval.py:135 msgid "castles" msgstr "besáncol" #: lib/pychess/Utils/lutils/strateval.py:158 msgid "takes back material" msgstr "visszaveszi az anyagot" #: lib/pychess/Utils/lutils/strateval.py:162 #: lib/pychess/Utils/lutils/strateval.py:170 msgid "sacrifies material" msgstr "anyagot veszít" #: lib/pychess/Utils/lutils/strateval.py:164 msgid "exchanges material" msgstr "megváltoztatja az anyagot" #: lib/pychess/Utils/lutils/strateval.py:166 msgid "captures material" msgstr "anyagot nyer" #: lib/pychess/Utils/lutils/strateval.py:291 #, python-format msgid "rescues a %s" msgstr "kiszabadítja ezt: %s" #: lib/pychess/Utils/lutils/strateval.py:294 #, python-format msgid "threatens to win material by %s" msgstr "némi anyag lenyerésével fenyeget: %s" #: lib/pychess/Utils/lutils/strateval.py:296 #, python-format msgid "increases the pressure on %s" msgstr "fokozza a nyomást itt: %s" #: lib/pychess/Utils/lutils/strateval.py:298 #, python-format msgid "defends %s" msgstr "megvédi ezt: %s" #: lib/pychess/Utils/lutils/strateval.py:336 #, python-format msgid "pins an enemy %(oppiece)s on the %(piece)s at %(cord)s" msgstr "leköti az ellenséges %(piece)s-t a %(cord)s mezőn álló %(oppiece)s miatt" #: lib/pychess/Utils/lutils/strateval.py:369 #, python-format msgid "White has a new piece in outpost: %s" msgstr "Világosnak új előörse van: %s" #: lib/pychess/Utils/lutils/strateval.py:377 #, python-format msgid "Black has a new piece in outpost: %s" msgstr "Sötétnek új előörse van: %s" #: lib/pychess/Utils/lutils/strateval.py:416 #, python-format msgid "%(color)s has a new passed pawn on %(cord)s" msgstr "%(color)s új szabad gyalogot hozott létre: %(cord)s" #: lib/pychess/Utils/lutils/strateval.py:470 msgid "half-open" msgstr "félig nyílt" #: lib/pychess/Utils/lutils/strateval.py:472 #, python-format msgid "in the %(x)s%(y)s file" msgstr "a %(x)s%(y)s vonalon" #: lib/pychess/Utils/lutils/strateval.py:474 #, python-format msgid "in the %(x)s%(y)s files" msgstr "a %(x)s%(y)s vonalakon" #: lib/pychess/Utils/lutils/strateval.py:477 #, python-format msgid "%(color)s got a double pawn %(place)s" msgstr "%(color)s dupla gyalogot hozott létre a %(place)s" #: lib/pychess/Utils/lutils/strateval.py:478 #, python-format msgid "%(color)s got new double pawns %(place)s" msgstr "%(color)s új dupla gyalogot hozott létre a(z) %(place)s" #: lib/pychess/Utils/lutils/strateval.py:485 #, python-format msgid "%(color)s got an isolated pawn in the %(x)s file" msgid_plural "%(color)s got isolated pawns in the %(x)s files" msgstr[0] "%(color)s izolált gyalogot hozott létre a(z) %(x)s vonalon" msgstr[1] "%(color)s izolált gyalogokat hozott létre a(z) %(x)s vonalakon" #: lib/pychess/Utils/lutils/strateval.py:492 #, python-format msgid "%s moves pawns into stonewall formation" msgstr "%s kőfal formába mozgatja a gyalogjait" #: lib/pychess/Utils/lutils/strateval.py:507 #: lib/pychess/Utils/lutils/strateval.py:514 #, python-format msgid "%s can no longer castle" msgstr "%s ezután már nem sáncolhat" #: lib/pychess/Utils/lutils/strateval.py:508 #: lib/pychess/Utils/lutils/strateval.py:515 #, python-format msgid "%s can no longer castle in queenside" msgstr "%s ezután már nem sáncolhat a hosszú oldalra" #: lib/pychess/Utils/lutils/strateval.py:510 #: lib/pychess/Utils/lutils/strateval.py:517 #, python-format msgid "%s can no longer castle in kingside" msgstr "%s ezután már nem sáncolhat a rövid oldalra" #: lib/pychess/Utils/lutils/strateval.py:551 #, python-format msgid "%(opcolor)s has a new trapped bishop on %(cord)s" msgstr "%(opcolor)s futója csapdába esett: %(cord)s" #: lib/pychess/Utils/lutils/strateval.py:573 #, python-format msgid "develops a pawn: %s" msgstr "fejleszti a gyalogot: %s" #: lib/pychess/Utils/lutils/strateval.py:574 #, python-format msgid "brings a pawn closer to the backrow: %s" msgstr "a gyalogját közelíti az átváltozáshoz: %s" #: lib/pychess/Utils/lutils/strateval.py:591 #, python-format msgid "brings a %(piece)s closer to enemy king: %(cord)s" msgstr "közelebb viszi a %(piece)s-t az ellenfél királyához: %(cord)s" #: lib/pychess/Utils/lutils/strateval.py:594 #, python-format msgid "develops a %(piece)s: %(cord)s" msgstr "fejleszti a %(piece)s-t: %(cord)s" #: lib/pychess/Utils/lutils/strateval.py:612 #, python-format msgid "places a %(piece)s more active: %(cord)s" msgstr "aktívabb helyre viszi a %(piece)s-t: %(cord)s" #: lib/pychess/Utils/lutils/strateval.py:638 msgid "White should do pawn storm in right" msgstr "Világos gyalogrohamot indíthatna a jobb oldalon" #: lib/pychess/Utils/lutils/strateval.py:640 msgid "Black should do pawn storm in left" msgstr "Sötét gyalogrohamot indíthatna a bal oldalon" #: lib/pychess/Utils/lutils/strateval.py:643 msgid "White should do pawn storm in left" msgstr "Világos gyalogrohamot indíthatna a bal oldalon" #: lib/pychess/Utils/lutils/strateval.py:645 msgid "Black should do pawn storm in right" msgstr "Sötét gyalogrohamot indíthatna a jobb oldalon" #: lib/pychess/Utils/lutils/strateval.py:671 msgid "Black has a rather cramped position" msgstr "Sötét állása meglehetősen kényelmetlen" #: lib/pychess/Utils/lutils/strateval.py:673 msgid "Black has a slightly cramped position" msgstr "Sötét állása meglehetősen kényelmetlen" #: lib/pychess/Utils/lutils/strateval.py:675 msgid "White has a rather cramped position" msgstr "Világos állása meglehetősen kényelmetlen" #: lib/pychess/Utils/lutils/strateval.py:677 msgid "White has a slightly cramped position" msgstr "Sötét állása meglehetősen kényelmetlen" #: sidepanel/annotationPanel.py:26 msgid "Annotation" msgstr "Elemzés" #: sidepanel/annotationPanel.py:29 msgid "Annotated game" msgstr "Elemzett játszma" #: sidepanel/annotationPanel.py:236 msgid "Copy PGN" msgstr "PGN másolása" #: sidepanel/annotationPanel.py:249 msgid "Add start comment" msgstr "Kezdő megjegyzés" #: sidepanel/annotationPanel.py:254 msgid "Add comment" msgstr "Megjegyzés hozzáadása" #: sidepanel/annotationPanel.py:258 sidepanel/annotationPanel.py:316 msgid "Edit comment" msgstr "Megjegyzés szerkesztése" #: sidepanel/annotationPanel.py:269 msgid "Forced move" msgstr "Kikényszerített lépés" #: sidepanel/annotationPanel.py:274 msgid "Add move symbol" msgstr "Lépés minősítése" #: sidepanel/annotationPanel.py:280 msgid "Unclear position" msgstr "Tisztázatlan állás" #: sidepanel/annotationPanel.py:289 msgid "Zugzwang" msgstr "Lépéskényszer" #: sidepanel/annotationPanel.py:290 msgid "Development adv." msgstr "Fejlődési előny" #: sidepanel/annotationPanel.py:291 msgid "Initiative" msgstr "Kezdeményezés" #: sidepanel/annotationPanel.py:292 msgid "With attack" msgstr "Támadással" #: sidepanel/annotationPanel.py:293 msgid "Compensation" msgstr "Kompenzáció" #: sidepanel/annotationPanel.py:294 msgid "Counterplay" msgstr "Ellentámadás" #: sidepanel/annotationPanel.py:295 msgid "Time pressure" msgstr "Időzavar" #: sidepanel/annotationPanel.py:300 msgid "Add evaluation symbol" msgstr "Állás minősítése" #: sidepanel/annotationPanel.py:304 msgid "Remove symbols" msgstr "Szimbólumok eltávolítása" #: sidepanel/annotationPanel.py:911 #, python-format msgid "round %s" msgstr "%s forduló" #: sidepanel/bookPanel.py:21 msgid "Hints" msgstr "Javaslat" #: sidepanel/bookPanel.py:25 msgid "" "The hint panel will provide computer advice during each stage of the game" msgstr "Számítógépes segítség a játszma minden fázisában." #: sidepanel/bookPanel.py:27 msgid "Official PyChess panel." msgstr "Hivatalos PyChess panel." #: sidepanel/bookPanel.py:87 msgid "Opening Book" msgstr "Megnyitástár" #: sidepanel/bookPanel.py:88 msgid "" "The opening book will try to inspire you during the opening phase of the " "game by showing you common moves made by chess masters" msgstr "A leggyakrabban alkalmazott lépések az adott megnyitásban" #: sidepanel/bookPanel.py:139 #, python-format msgid "Analysis by %s" msgstr "%s elemzése" #: sidepanel/bookPanel.py:140 #, python-format msgid "" "%s will try to predict which move is best and which side has the advantage" msgstr "%s megpróbálja megállapítani a legjobb lépést és hogy melyik oldal áll jobban." #: sidepanel/bookPanel.py:142 #, python-format msgid "Threat analysis by %s" msgstr "%s fenyegetés elemzése" #: sidepanel/bookPanel.py:143 #, python-format msgid "" "%s will identify what threats would exist if it were your opponent's turn to" " move" msgstr "%s megpróbálja megállapítani, hogy mi fenyegetne, ha az ellenfél következne lépésre." #: sidepanel/bookPanel.py:159 sidepanel/bookPanel.py:269 msgid "Calculating..." msgstr "Számolás..." #: sidepanel/bookPanel.py:300 msgid "" "Engine scores are in units of pawns, from White's point of view. Double " "clicking on analysis lines you can insert them into Annotation panel as " "variations." msgstr "A sakkprogram állásértékelése egységnyi gyalog mértékben számolva, világos szemszögéből. A dupla kattintás a lépés sort az elemzés ablakba másolja új variációként." #: sidepanel/bookPanel.py:302 msgid "" "Adding suggestions can help you find ideas, but slows down the computer's " "analysis." msgstr "További javaslatok hozzáadása segíthet ötleteket meríteni, de lassítja a számítógépes elemzést." #: sidepanel/bookPanel.py:311 msgid "Endgame Table" msgstr "Végjáték adatbázis" #: sidepanel/bookPanel.py:315 msgid "" "The endgame table will show exact analysis when there are few pieces on the " "board." msgstr "A végjáték adatbázis használata pontos elemzést ad ha már csak néhány figura van a táblán." #: sidepanel/bookPanel.py:364 sidepanel/bookPanel.py:367 #, python-format msgid "Mate in %d" msgstr "Matt %d lépésben." #: sidepanel/bookPanel.py:554 msgid "" "In this position,\n" "there is no legal move." msgstr "Ebben az állásban nincs szabályos lépés." #: sidepanel/chatPanel.py:21 msgid "" "The chat panel lets you communicate with your opponent during the game, " "assuming he or she is interested" msgstr "Csevegés a partnerrel játszma közben" #: sidepanel/commentPanel.py:16 msgid "Comments" msgstr "Megjegyzések" #: sidepanel/commentPanel.py:20 msgid "The comments panel will try to analyze and explain the moves played" msgstr "Magyarázó megjegyzések a lépésekhez" #: sidepanel/commentPanel.py:121 msgid "Initial position" msgstr "Kezdőállás" #: sidepanel/commentPanel.py:254 #, python-format msgid "%(color)s moves a %(piece)s to %(cord)s" msgstr "%(color)s %(piece)s lép: %(cord)s" #: sidepanel/engineOutputPanel.py:15 msgid "Engines" msgstr "Sakkmotorok kimenetei" #: sidepanel/engineOutputPanel.py:20 msgid "" "The engine output panel shows the thinking output of chess engines (computer" " players) during a game" msgstr "A számítógépes sakkprogramok gondolkodását mutatja a játszmák közben" #: sidepanel/engineOutputPanel.py:44 msgid "No chess engines (computer players) are participating in this game." msgstr "Ebben a játszmában egyik játékos sem számítógépes sakkprogram" #: sidepanel/historyPanel.py:10 msgid "Move History" msgstr "Játszmalap" #: sidepanel/historyPanel.py:13 msgid "" "The moves sheet keeps track of the players' moves and lets you navigate " "through the game history" msgstr "Navigálható lépéslista" #: sidepanel/scorePanel.py:15 msgid "Score" msgstr "Érték" #: sidepanel/scorePanel.py:19 msgid "" "The score panel tries to evaluate the positions and shows you a graph of the" " game progress" msgstr "Grafikus állásértékelés" pychess-0.12.2/lang/hu/LC_MESSAGES/pychess.mo0000644000175000017470000023026012653231273020714 0ustar tamasusers00000000000000`6 H !H ,HG6H~H H$H HHHH+ I 7ICIHI/\I0I[INJhJ%J`J(K+/K'[K#KK*K,K0LILbL}LLL#L$L'L$M 8M!YMQ{MJM>NWNuN!}NNNN#NNN%N"O?OEO9^O'O@OPP#P8PJP_PsPPPEPPQ#0Q$TQ yQQQQQQQLQLR `RmRRRQR&R$%SCJS7SUS"T*?T(jTTTTTTeTLU RU^UfU&mU.UU UUUV VS9V VVV VVmV,W fOf:eff fffff f f ggg%g *g4gkIk&^k k1kkkkkk kll!l$l0Bl@slDlHlFBmHmm=n pwp}Pq qqqq rr )r5r=r@rFrdrurrr rrrrrfs ssssss s ssss s ssss1tA4tvt u>uXvR[vBvcv]Uw?wBw;6xqrxSxO8yFz z)z{ {#{ 8{DF{{{{{{{ {{{| | |&| 8|D| X| d| o||||||||+| |}} }$} =}!H}j} s} ~} } } }}}}}.}/},~ 5~CC~~~~~ ~~ ~~    * = I W d o |   \,,*Y+*ۀ. ?IY h uʁ    (-2L ^k  ł͂ EX'` #߃! ̄΄ Ԅ ߄" (3:Tcx  Åʅޅ  (&Ohw* ȆΆ ֆ  -;"Ps ˇ   +6Ld{ ňۈ/ ? KU[ dn Ήމpah."C5449i3׌R9cYuT ܎=9(Zb֏ %I8}`}'=MZ^̒ӒKڒ-&hTE,A0Ar ʔ֔۔ Ph  4F,KxzMAܖ/A FT cmu  —ٗ %Q76ƘʘΘҘMט%-  ($4#Y%}"#ƚ  4@Re,KM9?9'(a/uC0$t3&͠͡ t;v %l=!X̥/%&U(|&'̦'d ȧ ֧  ! +5>DM ^j p{% ¨ Ѩܨ    # .9 L Yc l$z ѩ ++BH Wd!h)81 '?g īثޫ 5";e^+ĭ4Qhnr! Үޮ  -=S6c(ï2ۯ% 6CJSfj#!߰!5FJNT\ovb39˷ڷM1 7)D n&x3ָ <77t^U a2v}9'5a"&-/)-Y"żڼ/01(b""Ž]WFC ( 6 8D)H r(0+2;^6 Mt[ 8Fb!j~!C,5EK{;?.C1r- e o {2<2H^$qk  '7m>  ! &L:0(5)^D! -PMP !2Qd}-PQ+h(+# "=<`)T21O"*<A+m$40 eou } ,,/0Bs|u")+. 1 ?8I=   %2:jL =a`z`_</  +9H WeyO!0?Ea p} K]f{a@ dx| / # 1- 6@"P s ;=@4DuHFHJ=oA{ *-E_v   "< \} +6>FHNf|BHZ+dVizDsm3UV?NWS+:)f - A Sasu}  ;JRg+ !2Qe O2> q~E!  " 1<Mk s *D[mm09/j/0 A6x 6S Ucu}   % :DMVl.uF' ) 7"Be ny{    %&C We#x   ( ;&\*!% %,B8V3#%Baw   %2 9D*b& ,17/@p    +vDr'.V(r7-3eIN H541jh 0Nl:[ s  <      $ A a r az ( d _j ( ' : V o v {     2  &1C\>cTVi ' >La).! ^)) V )4( 1>!M-o,01 -7;O k u 9 DR^lW5-Sc+Az%%!Z+Co4!S u(:b4]""=$$;9`u.3?3s3"<=;y    + " @ V e  t         %  ! !+!B!X!h!p!x!! !! ! !! !! !!+!$":"C" Z"h"o"">"!"" ###9#MS#U##$A$/[$$ $ $$!$$ %%9% B%2P%!&e&: ' F'g'|''#' ''&'* ($4( Y(f(h(~(((((( )M#).q))B) *! *.*D* M*Y*i* l***&*<*'+D+[+l+p+r+{+++ +,1~. to%m;nje82nL)07gJ#Nk*Nuz5c\#m?xw2Y>Ky+ Z/C6:sYd<Q; 7.($&@Xr(r!,TpfRq-L4^\U9Kl'3F G%2uxF"Z?&00ilHs a}7A~:](uI8 4k:?0|*P%` @ \WW$Z]!'<v 9-BT+P k4DT1h&`"H[ -:=BVO +Ngn "M`^')o ^HZIhYRO/32yM#BELe\{qA-&@s6P X1t}S Ov3SQ iyY<p>I>wb[,'I /$>)j 5.z?L4J@AtcD/8^G}F *6`ReQQCqfd*(o~a3._{b1JPV{6[Sj=FUal";mWD] V]d9p1_H,|S%,NA;U5 z= xCrb<[w5G!C+KvE|gXc)W9O8=!GDVJ7X_ EBM#RfT~U$._KihEM Gain: + %d sec challenges you to a %(time)s %(rated)s %(gametype)s game chess has arrived has declined your offer for a match has departed has lagged for 30 seconds invalid engine move: %s is censoring you is lagging heavily but hasn't disconnected is present min noplay listing you uses a formula not fitting your match request: where %(player)s plays %(color)s. with whom you have an adjourned %(timecontrol)s %(gametype)s game is online. would like to resume your adjourned %(time)s %(gametype)s game.%(black)s won the game%(color)s got a double pawn %(place)s%(color)s got an isolated pawn in the %(x)s file%(color)s got isolated pawns in the %(x)s files%(color)s got new double pawns %(place)s%(color)s has a new passed pawn on %(cord)s%(color)s moves a %(piece)s to %(cord)s%(minutes)d min + %(gain)d sec/move%(name)s %(minutes)d min%(name)s %(minutes)d min %(gain)d sec/move%(name)s %(minutes)d min + %(gain)d sec/move%(opcolor)s has a new trapped bishop on %(cord)s%(player)s is %(status)s%(player)s plays %(color)s%(white)s won the game%d min%s can no longer castle%s can no longer castle in kingside%s can no longer castle in queenside%s moves pawns into stonewall formation%s returns an error%s was declined by your opponent%s was withdrawn by your opponent%s will identify what threats would exist if it were your opponent's turn to move%s will try to predict which move is best and which side has the advantage'%s' is a registered name. If it is yours, type the password.'%s' is not a registered name(Blitz)(Link is available on clipboard.)*0 Players Ready0 of 010 min + 6 sec/move, 1400↑, White10 min + 6 sec/move, White12002 min, Fischer Random, 1800↓, Black2 min, Fischer Random, Black5 min5 min, 1200-1800, ManualConnect to the Free Online Chess ServerPromote pawn to what?PyChess was unable to load your panel settingsAnalyzingAnimationBoard ColoursChess SetsChess VariantDate of gameEnter Game NotationGame dataGeneral OptionsHint mode analyzing your game, enable this type Ctrl+H.Initial PositionInstalled SidepanelsName of _first human player:Name of s_econd human player:NewsOpen GameOpening, endgameOpponent StrengthOptionsPlay Sound When...PlayersSpy mode analyzing the oponnent game, enable this type Ctrl+Y.Time ControlToolsYour Color_Connect to server_Start GameA file named '%s' already exists. Would you like to replace it?Engine, %s, has diedError loading gamePyChess is discovering your engines. Please wait.PyChess was not able to save the gameThere are %d games with unsaved moves. Save changes before closing?Unable to add %sUnable to save file '%s'Unknown file type '%s'Challenge:A player _checks:A player _moves:A player c_aptures:ASEANASEAN: http://www.ncf-phil.org/downloadables/2014/May/Asean_chess/Laws_of_ASEAN_Chess_2011_Nov_26.docAbortAbout ChessAc_tiveAcceptActivate alarm when _remaining sec is:Active color field must be one of w or b. %sActive seeks: %dAdd commentAdd evaluation symbolAdd move symbolAdd start commentAdd threatening variation lines Adding suggestions can help you find ideas, but slows down the computer's analysis.Address ErrorAdjournAdminAdministratorAi-WokAi-Wok: http://www.open-aurec.com/wbforum/viewtopic.php?p=199364&sid=20963a1de2c164050de019e5ed6bf7c4#p199364All Chess FilesAll FilesAll whiteAnalysis by %sAnalyze from current positionAnalyze gameAnalyzer startedAnimate pieces, board rotation and more. Use this on fast machines.Annotated gameAnnotationAny strengthArchivedAsian variantsAsk to _MoveAssessAsymmetric RandomAsymmetric Random AtomicAuto Call _FlagAuto _promote to queenAuto _rotate board to current human playerAuto login on startupAuto-logoutAvailableBB EloBecause %(black)s lost connection to the serverBecause %(black)s lost connection to the server and %(white)s requested adjournmentBecause %(black)s ran out of time and %(white)s has insufficient material to mateBecause %(loser)s disconnectedBecause %(loser)s king explodedBecause %(loser)s ran out of timeBecause %(loser)s resignedBecause %(loser)s was checkmatedBecause %(mover)s stalematedBecause %(white)s lost connection to the serverBecause %(white)s lost connection to the server and %(black)s requested adjournmentBecause %(white)s ran out of time and %(black)s has insufficient material to mateBecause %(winner)s has fewer piecesBecause %(winner)s king reached the centerBecause %(winner)s lost all piecesBecause %(winner)s was giving check 3 timesBecause a player aborted the game. Either player can abort the game without the other's consent before the second move. No rating changes have occurred.Because a player disconnected and there are too few moves to warrant adjournment. No rating changes have occurred.Because a player lost connectionBecause a player lost connection and the other player requested adjournmentBecause both players agreed to a drawBecause both players agreed to abort the game. No rating changes have occurred.Because both players agreed to an adjournmentBecause both players have the same amount of piecesBecause both players ran out of timeBecause neither player has sufficient material to mateBecause of adjudication by an adminBecause of adjudication by an admin. No rating changes have occurred.Because of courtesy by a player. No rating changes have occurred.Because the %(black)s engine diedBecause the %(white)s engine diedBecause the connection to the server was lostBecause the game exceed the max lengthBecause the last 50 moves brought nothing newBecause the same position was repeated three times in a rowBecause the server was shut downBecause the server was shut down. No rating changes have occurred.BeepBishopBlackBlack O-OBlack O-O-OBlack has a new piece in outpost: %sBlack has a rather cramped positionBlack has a slightly cramped positionBlack should do pawn storm in leftBlack should do pawn storm in rightBlack:BlindFoldBlindfoldBlindfold AccountBlitzBlitz:Blitz: 5 minBringing your king legally to the center (e4, d4, e5, d5) instantly wins the game! Normal rules apply in other cases and checkmate also ends the game.BughouseCCACMCalculating...CambodianCambodian: http://www.khmerinstitute.org/culture/ok.htmlCastling availability field is not legal. %sCenter:ChallengeChallenge: Challenge: Change ToleranceChatChess AdvisorChess Alpha 2 DiagramChess GameChess PositionChess ShoutChess Variants are like the pieces of the last line will be placed on the board.Chess clientClaim DrawClassic chess rules http://en.wikipedia.org/wiki/ChessClassic chess rules with all pieces white http://en.wikipedia.org/wiki/Blindfold_chessClassic chess rules with hidden figurines http://en.wikipedia.org/wiki/Blindfold_chessClassic chess rules with hidden pawns http://en.wikipedia.org/wiki/Blindfold_chessClassic chess rules with hidden pieces http://en.wikipedia.org/wiki/Blindfold_chessClearClockClose _without SavingColorize analyzed movesCommand line parameters needed by the engine.Command:CommentsCompensationComputerComputersConnectingConnecting to serverConnection ErrorConnection was closedContinue to wait for opponent, or try to adjourn the game?Conversation infoConversationsCopy FENCopy PGNCornerCould not save the fileCounterplayCrazyhouseCreate SeekDDark Squares :DateDate/TimeDeclineDefaultDestination Host UnreachableDetect type automaticallyDevelopment adv.DiedDo you know that it is possible to finish a chess game in just 2 turns?Do you know that the number of possible chess games exceeds the number of atoms in the Universe?Do you know that you can call flag when the clock is with you, Actions > Call Flag.Do you know that you can help translate Pychess in your language, Help > Translate Pychess.Do you want to abort it?Don't careDrawDue to abuse problems, guest connections have been prevented. You can still register on http://www.freechess.orgDummy AccountECOEdit SeekEdit Seek: Edit commentEmailEn passant cord is not legal. %sEn passant lineEndgame TableEngine scores are in units of pawns, from White's point of view. Double clicking on analysis lines you can insert them into Annotation panel as variations.EnginesEngines use uci or xboard communication protocol to talk to the GUI. If it can use both you can set here which one you like.Enter GameEnter Game _NotationError parsing move %(moveno)s %(mstr)sEuroShogiEuroShogi: http://en.wikipedia.org/wiki/EuroShogiEventEvent:ExamineExamine Adjourned GameExaminedExaminingExecutable filesExport positionFAFEN needs 6 data fields. %sFEN needs at least 2 data fields in fenstr. %sFICS atomic: http://www.freechess.org/Help/HelpFiles/atomic.htmlFICS bughouse: http://www.freechess.org/Help/HelpFiles/bughouse.htmlFICS crazyhouse: http://www.freechess.org/Help/HelpFiles/crazyhouse.htmlFICS losers: http://www.freechess.org/Help/HelpFiles/losers_chess.htmlFICS suicide: http://www.freechess.org/Help/HelpFiles/suicide_chess.htmlFICS wild/3: http://www.freechess.org/Help/HelpFiles/wild.html * Randomly chosen pieces (two queens or three rooks possible) * Exactly one king of each color * Pieces placed randomly behind the pawns * No castling * Black's arrangement mirrors white'sFICS wild/4: http://www.freechess.org/Help/HelpFiles/wild.html * Randomly chosen pieces (two queens or three rooks possible) * Exactly one king of each color * Pieces placed randomly behind the pawns, SUBJECT TO THE CONSTRAINT THAT THE BISHOPS ARE BALANCED * No castling * Black's arrangement DOES NOT mirrors white'sFICS wild/5: http://www.freechess.org/Help/HelpFiles/wild.html http://en.wikipedia.org/wiki/Chess_variant#Chess_with_different_starting_positions Pawns start on their 7th rank rather than their 2nd rank!FICS wild/8: http://www.freechess.org/Help/HelpFiles/wild.html Pawns start on 4th and 5th ranks rather than 2nd and 7thFICS wild/8a: http://www.freechess.org/Help/HelpFiles/wild.html White pawns start on 5th rank and black pawns on the 4th rankFIDE MasterFMF_ull board animationFace _to Face display modeFile existsFischer RandomForced moveFriendsGMGain:Game analyzing in progress...Game informationGame is _drawn:Game is _lost:Game is _set-up:Game is _won:Game shared at Games running: %dGaviota TB path:Generally this means nothing, as the game is time-based, but if you want to please your opponent, perhaps you should get going.Go back to the main lineGrand MasterGuestGuestsHHa_ndle:Halfmove clockHidden pawnsHidden piecesHideHintsHost:How to PlayHuman BeingIMIdIdleIf set you can refuse players accepting your seekIf set, PyChess will colorize suboptimal analyzed moves with red.If set, PyChess will show game results for different moves in positions containing 6 or less pieces. It will search positions from http://www.k4it.de/If set, PyChess will show game results for different moves in positions containing 6 or less pieces. You can download tablebase files from: http://www.olympuschess.com/egtb/gaviota/If set, PyChess will suggest best opening moves on hint panel.If set, PyChess will use figures to express moved pieces, rather than uppercase letters.If set, clicking on main application window closer first time it closes all games.If set, pawn promotes to queen without promotion dialog selection.If set, the black pieces will be head down, suitable for playing against friends on mobile devices.If set, the board will turn after each move, to show the natural view for the current player.If set, the captured figurines will be shown next to the board.If set, the elapsed time that a player used for the move is shown.If set, the hint analyzer engine evaluation value is shown.If set, the playing board will display labels and ranks for each chess field. These are usable in chess notation.If set, this hides the tab in the top of the playing window, when it is not needed.If the analyzer finds a move where the evaluation difference (the difference between the evaluation for the move it thinks is the best move and the evaluation for the move made in the game) exceeds this value, it will add an annotation for that move (consisting of the engine's Principal Variation for the move) to the Annotation panelIf you don't save, new changes to your games will be permanently lost.In TournamentIn this position, there is no legal move.Initial positionInitiativeInternational MasterInvalid move.It is not possible later to continue the game, if you don't save it.Jump to initial positionJump to latest positionKKingKing of the hillKnightKnight oddsKnightsLeave _FullscreenLight Squares :LightningLightning:Load _Recent GameLoaded gameLoading player dataLocal EventLocal SiteLog on ErrorLog on as G_uestLog on as _GuestLogging on to serverLosersLossMakrukMakruk: http://en.wikipedia.org/wiki/MakrukMamer ManagerManage enginesManualManual AcceptManually accept opponentMate in %dMaximum analysis time in seconds:Minutes:Minutes: More channelsMore playersMove HistoryMove numberNNMNameNames: #n1, #n2Needs 7 slashes in piece placement field. %sNever use animation. Use this on slow machines.New GameNo _animationNo chess engines (computer players) are participating in this game.No conversation's selectedNo soundNormalNormal: 40 min + 15 sec/moveNot AvailableObserveObserve %sObserved _ends:ObserversOddsOffer A_bortOffer AbortOffer Ad_journmentOffer PauseOffer RematchOffer ResumeOffer UndoOffer _AbortOffer _DrawOffer _PauseOffer _ResumeOffer _UndoOfficial PyChess panel.OfflineOn FICS, your "Wild" rating encompasses all of the following variants at all time controls: One player starts with one less knight pieceOne player starts with one less pawn pieceOne player starts with one less queen pieceOne player starts with one less rook pieceOnlineOnly animate _movesOnly animate piece moves.Only registered users may talk to this channelOpen GameOpen Sound FileOpen _DatabaseOpening BookOpening booksOpponent RatingOpponent's strength: OtherOther (non standard rules)Other (standard rules)PParameters:Paste FENPausePawnPawn oddsPawns PassedPawns PushedPingPlayPlay Fischer Random chessPlay Losers chessPlay RematchPlay _Internet ChessPlay normal chess rulesPlayer _RatingPlayers: %dPlayingPng imagePo_rts:Polyglot book file:Pre_viewPrefer figures in _notationPreferencesPressing Ctrl+Z to offer opponent the possible rollback moves.PrivateProbably because it has been withdrawn.PromotionProtocol:PyChess - Connect to Internet ChessPyChess - Internet Chess: FICSPyChess Game DatabasePyChess Information WindowPyChess databasePyChess has lost connection to the engine, probably because it has died. You can try to start a new game with the engine, or try to play against another one.PyChess.py:QQueenQueen oddsQuit PyChessRR_esignRandomRapidRapid: 15 min + 10 sec/moveRatedRated gameRatingReceiving list of playersRemove symbolsRequest ContinuationResendResend %s?Reset Default ColoursResultResumeRookRook oddsRoundRound:Running Simul MatchSRS_ign upSanctionsSaveSave GameSave Game _AsSave _own games onlySave analyzing engine _evaluation valuesSave elapsed move _timesSave files to:Save moves before closing?Save the current game before you close it?Saved gameScoreSearch:Seek _GraphSeek updatedSelect Gaviota TB pathSelect auto save pathSelect book fileSelect engineSelect sound file...Select the games you want to save:Select working directorySend ChallengeSend all seeksSend seekService RepresentativeSetting up environmentSetup PositionShare GameSho_w cordsShort on _time:ShoutShow ConsoleShow _ChatShow _captured piecesShow elapsed move timesShow evaluation valuesShow tips at startupShredderLinuxChess:ShuffleSide to moveSide_panelsSimple Chess PositionSiteSite:SittuyinSittuyin: http://en.wikipedia.org/wiki/SittuyinSorry '%s' is already logged inSound filesSp_y modeSpentStandardStandard:Start Private ChatStatusStep back one moveStep forward one moveSuicideTTDTMTeam AccountThe abort offerThe adjourn offerThe analyzer will run in the background and analyze the game. This is necessary for the hint mode to workThe chain button is disabled because you are logged in as a guest. Guests can't establish ratings, and the chain button's state has no effect when there is no rating to which to tie "Opponent Strength" toThe chat panel lets you communicate with your opponent during the game, assuming he or she is interestedThe clock hasn't been started yet.The comments panel will try to analyze and explain the moves playedThe connection was broken - got "end of file" messageThe directory where the engine will be started from.The displayed name of the first human player, e.g., John.The displayed name of the guest player, e.g., Mary.The draw offerThe endgame table will show exact analysis when there are few pieces on the board.The engine %s reports an error:The engine output panel shows the thinking output of chess engines (computer players) during a gameThe entered password was invalid. If you forgot your password, go to http://www.freechess.org/password to request a new one over email.The error was: %sThe file already exists in '%s'. If you replace it, its content will be overwritten.The flag callThe game #%s can't be loaded, because of an error parsing FENThe game can't be loaded, because of an error parsing FENThe game can't be read to end, because of an error parsing move %(moveno)s '%(notation)s'.The game ended in a drawThe game has been abortedThe game has been adjournedThe game has been killedThe game is pausedThe hint panel will provide computer advice during each stage of the gameThe inverse analyzer will analyze the game as if your opponent was to move. This is necessary for the spy mode to workThe move failed because %s.The moves sheet keeps track of the players' moves and lets you navigate through the game historyThe offer to switch sidesThe opening book will try to inspire you during the opening phase of the game by showing you common moves made by chess mastersThe pause offerThe reason is unknownThe resignationThe resume offerThe score panel tries to evaluate the positions and shows you a graph of the game progressThe takeback offerThebanThemesThere is %d game with unsaved moves.There are %d games with unsaved moves.There is something wrong with this executableThis game can be automatically aborted without rating loss because there has not yet been two moves madeThis game can not be adjourned because one or both players are guestsThis is a continuation of an adjourned matchThis option is not applicable because you're challenging a playerThis option is not available because you're challenging a guest, Threat analysis by %sThree-checkTimeTime control: Time pressureTip Of The dayTip of the DayTo play on Fullscreen mode, just type F11. Coming back, F11 again.To save a game Game > Save Game As, give the filename and choose where you want to be saved. At the bottom choose extension type of the file, and Save.Tolerance:Tournament DirectorTranslate PyChessTypeType or paste PGN game or FEN positions hereUUnable to accept %sUnable to save to configured file. Save the current game before you close it?Unable to save to configured file. Save the games before closing?Unclear positionUndescribed panelUndoUndo one moveUndo two movesUninstallUnknownUnofficial channel %dUnratedUnregisteredUntimedUpside DownUse _analyzerUse _inverted analyzerUse _local tablebasesUse _online tablebasesUse analyzer:Use name format:Use opening _bookVariant developed by Kai Laskos: http://talkchess.com/forum/viewtopic.php?t=40990Variation annotation creation threshold in centipawns:W EloWFMWGMWIMWaitWas unable to save '%(uri)s' as PyChess doesn't know the format '%(ending)s'.WelcomeWhen this button is in the "locked" state, the relationship between "Opponent's strength" and "Your strength" will be preserved when a) your rating for the type of game sought has changed b) you change the variant or the time controlWhiteWhite O-OWhite O-O-OWhite has a new piece in outpost: %sWhite has a rather cramped positionWhite has a slightly cramped positionWhite should do pawn storm in leftWhite should do pawn storm in rightWhite:WildWildcastleWildcastle shuffleWinWin by giving check 3 timesWith attackWoman FIDE MasterWoman Grand MasterWoman International MasterWorking directory:Year, month, day: #y, #m, #dYouYou are currently logged in as a guest. A guest can't play rated games and therefore isn't able to play as many of the types of matches offered as a registered user. To register an account, go to http://www.freechess.org/Register/index.html.You asked your opponent to moveYou can choose from 20 different difficulties to play against the computer.You can play chess listening to the sounds of the game, for that, Settings > Preferences > Sound tab, enable Use sounds in PyChess and choose your preferred sounds.You can start a new game by Game > New Game, in New Game window do you can choose Players, Time Control and Chess Variants.You can't play rated games because "Untimed" is checked, You can't play rated games because you are logged in as a guestYou can't select a variant because "Untimed" is checked, You can't switch colors during the game.You can't touch this! You are examining a game.You don't have the necessary rights to save the file. Please ensure that you have given the right path and try again.You have been logged out because you were idle more than 60 minutesYou have opened no conversations yetYou have to set kibitz on to see bot messages here.You have tried to undo too many moves.You may only have 3 outstanding seeks at the same time. If you want to add a new seek you must clear your currently active seeks. Clear your seeks?You sent a draw offerYou sent a pause offerYou sent a resume offerYou sent an abort offerYou sent an adjournment offerYou sent an undo offerYour opponent asks you to hurry!Your opponent has asked that the game be aborted. If you accept this offer, the game will end with no rating change.Your opponent has asked that the game be adjourned. If you accept this offer, the game will be adjourned and you can resume it later (when your opponent is online and both players agree to resume).Your opponent has asked that the game be paused. If you accept this offer, the game clock will be paused until both players agree to resume the game.Your opponent has asked that the game be resumed. If you accept this offer, the game clock will continue from where it was paused.Your opponent has asked that the last %s move(s) be undone. If you accept this offer, the game will continue from the earlier position.Your opponent has offered you a draw.Your opponent has offered you a draw. If you accept this offer, the game will end with a score of 1/2 - 1/2.Your opponent is not out of time.Your opponent must agree to abort the game because there has been two or more moves madeYour opponent seems to have changed their mind.Your opponent wants to abort the game.Your opponent wants to adjourn the game.Your opponent wants to pause the game.Your opponent wants to resume the game.Your opponent wants to undo %s move(s).Your panel settings have been reset. If this problem repeats, you should report it to the developersYour seeks have been removedYour strength: Zugzwang_Accept_Actions_Analyze Game_Archived_Auto save finished games_Black player:_Call Flag_Clear Seeks_Copy FEN_Copy PGN_Decline_Edit_Engines_Export Position_Fullscreen_Game_Game List_General_Help_Hide tabs when only one game is open_Hint mode_Hints_Invalid move:_Load Game_Log Off_Log Viewer_My games_Name:_New Game_Next_Observed moves:_Opponent:_Password:_Play Normal chess_Player List_Previous_Replace_Rotate Board_Save %d document_Save %d documents_Save %d documents_Save Game_Seeks / Challenges_Show Sidepanels_Sounds_Start Game_Untimed_Use main app closer [x] to close all games_Use sounds in PyChess_View_White player:_Your Color:andand guests can't play rated gamesand on FICS, untimed games can't be ratedand on FICS, untimed games have to be normal chess rulesask your opponent to moveblackbrings a %(piece)s closer to enemy king: %(cord)sbrings a pawn closer to the backrow: %scall your opponents flagcaptures materialcastlesdefends %sdevelops a %(piece)s: %(cord)sdevelops a pawn: %sdrawsexchanges materialgnuchess:half-openhttp://brainking.com/en/GameRules?tp=2 * Placement of the pieces on the 1st and 8th row are randomized * The king is in the right hand corner * Bishops must start on opposite color squares * Black's starting position is obtained by rotating white's position 180 degrees around the board's center * No castlinghttp://en.wikipedia.org/wiki/Chesshttp://en.wikipedia.org/wiki/Chess960 FICS wild/fr: http://www.freechess.org/Help/HelpFiles/wild.htmlhttp://en.wikipedia.org/wiki/Rules_of_chessimproves king safetyin the %(x)s%(y)s filein the %(x)s%(y)s filesincreases the pressure on %sinvalid promoted piecematesminmoves a rook to an open filemoves an rook to a half-open filemoves bishop into fianchetto: %snot playingofoffer a drawoffer a pauseoffer a takebackoffer an abortoffer to adjournoffer to resumeoffer to switch sidesonline in totalpins an enemy %(oppiece)s on the %(piece)s at %(cord)splaces a %(piece)s more active: %(cord)spromotes a Pawn to a %spromotion move without promoted piece is incorrectputs opponent in checkrating range nowrescues a %sresignround %ssacrifies materialsecslightly improves king safetytakes back materialthe captured cord (%s) is incorrectthe end cord (%s) is incorrectthe move needs a piece and a cordthreatens to win material by %sto automatic acceptto manual acceptucivs.whitewindow1wine not installedxboardxboard nocastle: http://home.hccnet.nl/h.g.muller/engine-intf.html#8 FICS wild/2: http://www.freechess.org/Help/HelpFiles/wild.html * Random arrangement of the pieces behind the pawns * No castling * Black's arrangement mirrors white'sxboard wildcastle http://home.hccnet.nl/h.g.muller/engine-intf.html#8 FICS wild/0: http://www.freechess.org/Help/HelpFiles/wild.html * White has the typical set-up at the start. * Black's pieces are the same, except that the King and Queen are reversed, * so they are not on the same files as White's King and Queen. * Castling is done similarly to normal chess: * o-o-o indicates long castling and o-o short castling.xboard wildcastle http://home.hccnet.nl/h.g.muller/engine-intf.html#8 FICS wild/1: http://www.freechess.org/Help/HelpFiles/wild.html * In this variant both sides have the same set of pieces as in normal chess. * The white king starts on d1 or e1 and the black king starts on d8 or e8, * and the rooks are in their usual positions. * Bishops are always on opposite colors. * Subject to these constraints the position of the pieces on their first ranks is random. * Castling is done similarly to normal chess: * o-o-o indicates long castling and o-o short castling.Project-Id-Version: pychess Report-Msgid-Bugs-To: POT-Creation-Date: 2016-01-27 13:28+0100 PO-Revision-Date: 2016-01-28 09:09+0000 Last-Translator: gbtami Language-Team: Hungarian (http://www.transifex.com/gbtami/pychess/language/hu/) MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Language: hu Plural-Forms: nplurals=2; plural=(n != 1); Jóváírás: + %d mp kihív téged egy %(time)s %(rated)s %(gametype)s játszmára. sakkmegérkezettvisszautasította a játszma ajánlatodattávozottkapcsolata 30 másodperce késlekedik.Érvénytelen lépés: %scensor listáján szerepelszkapcsolata erősen késlekedik, de nem szakadt meg.jelen van percnoplay listáján szerepelsza kihívásoddal nem összeegyeztethető formulát használ: ahol %(player)s játszik mint %(color)s.akivel van egy elhalasztott %(timecontrol)s %(gametype)s játszmád, elérhető.szeretné folytatni az elhalasztott %(time)s %(gametype)s játszmádat.%(black)s győzött.%(color)s dupla gyalogot hozott létre a %(place)s%(color)s izolált gyalogot hozott létre a(z) %(x)s vonalon%(color)s izolált gyalogokat hozott létre a(z) %(x)s vonalakon%(color)s új dupla gyalogot hozott létre a(z) %(place)s%(color)s új szabad gyalogot hozott létre: %(cord)s%(color)s %(piece)s lép: %(cord)s%(minutes)d perc + %(gain)d mp/lépés%(name)s %(minutes)d perc%(name)s %(minutes)d perc %(gain)d mp/lépés%(name)s %(minutes)d perc + %(gain)d mp/lépés%(opcolor)s futója csapdába esett: %(cord)s%(player)s most %(status)s%(player)s játszik mint %(color)s%(white)s győzött.%d perc%s ezután már nem sáncolhat%s ezután már nem sáncolhat a rövid oldalra%s ezután már nem sáncolhat a hosszú oldalra%s kőfal formába mozgatja a gyalogjait%s hibát adott vissza%s elutasítva az ellenfél által%s visszavonva az ellenfél által%s megpróbálja megállapítani, hogy mi fenyegetne, ha az ellenfél következne lépésre.%s megpróbálja megállapítani a legjobb lépést és hogy melyik oldal áll jobban.'%s' egy regisztrált név. Amennyiben a tied, add meg a jelszavad.A(z) '%s' nem regisztrált név.(Schnell)(a hivatkozás elérhető a vágólapon)*0 játékos0/010 perc + 6 mp/lépés, 1400↑, Világos10 perc + 6 mp/lépés, Világos12002 perc, Fischer Random, 1800↓, Sötét2 perc, Fischer Random, Sötét5 perc5 perc, 1200-1800, KéziCsatlakozás a FICS szerverhezMire változzon a gyalog?A PyChess nem tudta menteni a játszmát.ElemzésAnimálásA tábla színeiSakk készletekSakkvariánsokJátszma időpontjaJátszma beírásaJátszma adataiEgyébA javaslat mód elemzi a lépéseidet, a bekapcsolásához használd a Ctrl+H billentyűkombinációt.KezdőállásTelepített oldalpanelekElső játékos:Második játékos:HírekJátszma megnyitásaMegnyitás, végjátékEllenfél erősségeBeállításokHang lejátszása ekkor...JátékosokA fenyegetés mód elemzi az ellenfeled lépéseit, a bekapcsolásához használd a Ctrl+Y billentyűkombinációt.IdőkontrollEszközökSzín:Kapcsolódás a szerverhezJátszma indításaA '%s' fájl már létezik. Fölül akarja írni?A(z) %s sakkmotor leállt.Hiba a játszma betöltése közbenKis türelmet, a PyChess telepített sakkmotorokat keres.A PyChess nem tudta menteni a játszmát.%d játszma még nincs mentve. Mentsem őket?Nem lehet hozzáadni ezt: %sNem lehet menteni a '%s' fájltIsmeretlen fájltípus '%s'Kihívás:_Sakkadás:_Lépés:_Ütés:ASEANASEAN: http://www.ncf-phil.org/downloadables/2014/May/Asean_chess/Laws_of_ASEAN_Chess_2011_Nov_26.doc_MegszakítA sakkrólAktívElfogad_Riasztás ha a hátralévő idő (másodpercben):Az aktív szín jelzésére csak w és b használható. %sAktív keresés: %dMegjegyzés hozzáadásaÁllás minősítéseLépés minősítéseKezdő megjegyzésFenyegetés variációk hozzáadásaTovábbi javaslatok hozzáadása segíthet ötleteket meríteni, de lassítja a számítógépes elemzést.Cím hibaElhalasztásRendszergazdaAdminisztrátorAi-WokAi-Wok: http://www.open-aurec.com/wbforum/viewtopic.php?p=199364&sid=20963a1de2c164050de019e5ed6bf7c4#p199364Minden sakkfájlMinden fájlEgyszínű figurák%s elemzéseElemzés az aktuális állástólJátszma gépi elemzéseElemző elindítva.Táblaforgatás és lépések esetén is animál. Gyors gépeken ajánlott. Elemzett játszmaElemzésBármilyen erősségArchívÁzsiai változatok_Azonnali lépés kéréseÉrtékszám változásAszimmetrikus kevertAszimmetrikus kevertAtomIdőtúllépés automatikus bejelentéseAutomatikus gyalog átváltozás vezérre_Automatikus táblaforgatás a lépésre következő játékos feléAutomatikus belépés induláskorAutomatikus kijelentkezésElérhetőFS Élő%(black)s kapcsolata megszakadt a szerverrel.%(black)s kapcsolata megszakadt és %(white)s a játszma elhalasztását kérte.%(black)s túllépte az időt, de %(white)s oldalán sincs elég mattadó anyag.%(loser)s kapcsolata megszakadt.%(loser)s királya megsemmisült.%(loser)s túllépte az időt.%(loser)s feladta.%(loser)s mattot kapott.%(mover)s pattba lépett.%(white)s kapcsolata megszakadt a szerverrel.%(white)s kapcsolata megszakadt és %(black)s a játszma elhalasztását kérte.%(white)s túllépte az időt, és %(black)s oldalán nincs elég mattadó anyag.%(winner)s kevesebb figurával rendelkezik.%(winner)s királya elérte a centrumot.%(winner)s minden figuráját leütötték.%(winner)s harmadszor adott sakkot.Az egyik játékos megszakította a játszmát. Mindkét fél büntetlenül megszakíthatja a játszmát a második lépés előtt. Az értékszámok nem változtak.Az egyik játékos kijelentkezett, és a játszma elhalasztásához még túl kevés lépés történt. Az értékszámok nem változtak.A játékos kapcsolata megszakadt.A kapcsolat megszakadt és az ellenfél elhalasztást kért.A játékosok megegyeztek adöntetlenben.Mindkét játékos beleegyezett a megszakításba. Az értékszámok nem változtak.Mindkét játékos beleegyezett az elhalasztásba.Mindkét félnek azonos számú figurája maradt.Mindkét fél túllépte az időt.Egyik félnek sincs elég mattadó anyaga.Egy adminisztrátor döntése.Adminisztrátori döntés. Az értékszámok nem változtak.A játékos szívessége miatt. Az értékszámok nem változtak.A %(black)s sakkmotor leállt.A %(white)s sakkmotor leállt.A kapcsolat megszakadt a szerverrel.Túl hosszú játszma.50 lépéses szabály.Háromszori állásismétlés.A szerver leállt.A szerver leállt. Az értékszámok nem változtak.CsipogásfutóSötétSötét O-OSötét O-O-OSötétnek új előörse van: %sSötét állása meglehetősen kényelmetlenSötét állása meglehetősen kényelmetlenSötét gyalogrohamot indíthatna a bal oldalonSötét gyalogrohamot indíthatna a jobb oldalonSötét:VaksakkVakVakSchnellSchnellSchnell :5 percAki a királyával a centrumba lép, győz. Egyébként a normál szabályok érvényesek, a mattadás szabályai is.TandemCCACMSzámolás...CambodianCambodian: http://www.khmerinstitute.org/culture/ok.htmlA sáncolás lehetőségeit leíró mező szabálytalan. %sKözép:KihívásKihívás: Kihívás: EltérésCsevegésTanácsadóAlfa 2 diagramSakkjátszmaÁllásSakk bekiabálásA különféle sakkvariánsok esetén a figurák esetleg más sorrendben helyezkednek el az utolsó soron.SakkprogramDöntetlen igényléseKlasszikus sakk szabályok http://en.wikipedia.org/wiki/ChessKlasszikus sakk szabályok csak világos figurákkal http://en.wikipedia.org/wiki/Blindfold_chessKlasszikus sakk szabályok láthatatlan figurákkal http://en.wikipedia.org/wiki/Blindfold_chessKlasszikus sakk szabályok láthatatlan gyalogokkal http://en.wikipedia.org/wiki/Blindfold_chessKlasszikus sakk szabályok láthatatlan tisztekkel http://en.wikipedia.org/wiki/Blindfold_chessTörlésIdőBezárás mentés nélkülElemzett lépések színezéseParancssori paraméterek a sakkmotor számára.Parancs:MegjegyzésekKompenzációSzámítógépSzámítógépKapcsolódásKapcsolódási hibaKapcsolódási hibaA kapcsolatot lezártákTovább várakozol az ellenfélre vagy megpróbálod elhalasztani a játszmát?Beszélgetés információBeszélgetésekFEN másolásaPGN másolásaSarokNem lehet menteni a fájlt.EllentámadásVisszarakósKeresésDSötét mezők:DátumDátum/IdőElutasítAlapértelmezettA cél gép nem érhető elAutomatikus típusdetektálásFejlődési előnyVégeTudtad, hogy egy játszmát akár kétlépéses mattal is meg lehet nyerni?Tudtad, hogy a lehetséges sakkjátszmák száma meghaladja az univerzum atomjainak számát?Tudtad, hogy jelezheted az ellenfél időtúllépését a Műveletek > Időtúllépés bejelentése menüvel?Tudtad, hogyan segítheted a PyChess fordítását? Súgó > A PyChess fordítása.Meg akarod szakítani?MindegyDöntetlenVisszaélési problémák miatt jelenleg a vendég(guest) kapcsolatok nincsenek engedélyezve. Regisztráció itt lehetséges: http://www.freechess.orgÜres felhasználóECOKeresésKeresés: Megjegyzés szerkesztéseE-mailAz en-passant leíró mező szabálytalan. %sEn passant vonalVégjáték adatbázisA sakkprogram állásértékelése egységnyi gyalog mértékben számolva, világos szemszögéből. A dupla kattintás a lépés sort az elemzés ablakba másolja új variációként.Sakkmotorok kimeneteiA sakkmotorok UCI vagy Xboard protokoll használatával kommunikálnak a felhasználói felülettel. Amennyiben mindkettő támogatott, itt választható ki, hogy melyiket használja az adott sakkmotor.Játszma rögzítéseJátszma beírásaHibás lépés: %(moveno)s %(mstr)sEuroShogiEuroShogi: http://en.wikipedia.org/wiki/EuroShogiEseményEsemény:VégigjátszásElhalasztott játszma lejátszásaLejátszottVégrehajtásFuttatható fájlokÁllás exportálásaFAEgy FEN állásban pontosan 6 adatmezőt kell megadni. %sEgy FEN állásban legalább 2 adatmezőt meg kell adni. %sFICS atomic: http://www.freechess.org/Help/HelpFiles/atomic.htmlFICS bughouse: http://www.freechess.org/Help/HelpFiles/bughouse.htmlFICS crazyhouse: http://www.freechess.org/Help/HelpFiles/crazyhouse.htmlFICS losers: http://www.freechess.org/Help/HelpFiles/losers_chess.htmlFICS suicide: http://www.freechess.org/Help/HelpFiles/suicide_chess.htmlFICS wild/3: http://www.freechess.org/Help/HelpFiles/wild.html * Véletlenszerűen választott figurák (két királynő vagy három bástya is lehet) * Minkét oldalon pontosan egy király * A tisztek a gyalogok mögött véletlenszerűen elhelyezve, * Nincs sáncolás * Sötét elrendezése a világos tükörképeFICS wild/4: http://www.freechess.org/Help/HelpFiles/wild.html * Véletlenszerűen választott figurák (két királynő vagy három bástya is lehet) * Minkét oldalon pontosan egy király * A tisztek a gyalogok mögött véletlenszerűen elhelyezve, de a futók szín szerint kiegyensúlyozottan * Nincs sáncolás * Sötét elrendezése nem a világos tükörképeFICS wild/5: http://www.freechess.org/Help/HelpFiles/wild.html http://en.wikipedia.org/wiki/Chess_variant#Chess_with_different_starting_positions A gyalogok a 2. és a 7. helyett a 7. és a 2. sorról indulnak!FICS wild/8: http://www.freechess.org/Help/HelpFiles/wild.html A gyalogok a 4. és 5. sorról indulnak a 2. és 7. helyett.FICS wild/8a: http://www.freechess.org/Help/HelpFiles/wild.html A világos gyalogok az 5. sorról, a sötét gyalogok a 4. sorról indulnak!FIDE mesterFM_Tábla és a lépésekFigurák szemtől szembenA fájl már létezik.Fischer randomKikényszerített lépésBarátokGMJóváírás:Gépi elemzés folyamatban...Játszma információk_Döntetlen:_Vereség:_Kezdőállás:_Győzelem:A játszma megosztva itt:Folyamatban lévő játszma: %dVégjáték adatbázis útvonal:Általában ez nem jelent semmi különöset, mivel a játszma időkontroll alatt folyik, de ha kedves akarsz lenni hozzá, léphetsz gyorsabban is.Vissza a fő vátozathozNagymesterVendégVendégHNév:Féllépés számlálóLáthatatlan gyalogokLáthatatlan tisztekElrejtJavaslatHoszt:Hogyan játsszunkEmberIMIdTétlenHa be van jelölve, visszautasíthatod az elfogadott kereséseket.Ha be van jelölve, akkor a kevésbé jó lépéseket pirossal színezi.Ha be van állítva, akkor a PyChess a 6, vagy kevesebb figurát tartalmazó állások esetén megmutatja a különböző lépések kimenetelét. A végjáték állásokat innen keresi ki: http://www.k4it.de/Ha be van állítva, akkor a PyChess a 6, vagy kevesebb figurát tartalmazó állások esetén megmutatja a különböző lépések kimenetelét. A végjáték adatbázis fájljai letölthetők innen: http://www.olympuschess.com/egtb/gaviota/Ha be van jelölve, akkor a PyChess megmutatja a legjobb megnyitási lépéseket a javaslat panelen.Ha be van jelölve, akkor a játszmalapon betűk helyett a figurák jeleit használja.Ha be van jelölve, a fő ablak bezáró ikonjára először kattintva az bezárja az összes játszmát.Ha be van jelölve, akkor a gyalog a kiválasztó dialógus ablak megjelenése nélkül automatikusan vezérré változik.Ha be van jelölve, akkor a sötét figurák fejjel lefele látszanak. Mobil eszközökhöz ajánlott beállítás.Ha be van jelölve, akkor minden lépés után a táblát elforgatja a lépésre következő játékos felé.Ha be van jelölve, akkor a leütött figurák is megjelennek a tábla két oldalán.Ha be van jelölve, akkor mutatja a játékos által lépésenként felhasznált időtHa be van jelölve, akkor mutatja az elemző program értékeitHa be van jelölve, akkor a tábla körül megjeleníti a sorok és az oszlopok jeleit.Ha be van jelölve, akkor egyetlen játszma esetén nem lesz fölül játszma fül.Ha az elemzőprogram olyan lépést talál amelynek értéke és az általa legjobbnak gondolt lépés értéke közötti különbség nagyobb mint ez a küszöb, akkor ehhez a lépéshez hozzáad egy megjegyzést (az általa legjobbnak tartott lépéssel kezdődő változatot) az elemzés panelen.Ha nem mentesz, a változások elvesznek.VersenybenEbben az állásban nincs szabályos lépés.KezdőállásKezdeményezésNemzetközi mesterSzabálytalan lépés.A játszmát nem tudod később folytatni, ha most nem mented el.KezdőállásUtolsó pozícióKkirályEnyém a vár, tied a lekvár!huszárHuszár előnyHuszárokTeljes képernyőVilágos mezők:VillámVillám_Korábbi játszmákBetöltött játszmaJátékos adatainak betöltése.Helyi eseményHelybenBejelentkezési hibaBejelentkezés _vendégkéntBejelentkezés _vendégkéntBejelentkezés a szerverreLúzerVereségMakrukMakruk: http://en.wikipedia.org/wiki/MakrukMamer menedzserSakkmotorokKéziKézi elfogadásEllenfél elfogadása kézilegMatt %d lépésben.Elemzési idő másodpercben:Perc:Perc: További csatornákTovábbi játékosokJátszmalapLépésszámHNMNévNevek: #n1, #n2A figurák elhelyezkedésének leírásában 7 darab / jelnek kell lennie. %sNincs animálás. Lassú gépek esetén ajánlott.Új játszma_NincsEbben a játszmában egyik játékos sem számítógépes sakkprogramNincs beszélgetés kiválasztva.Nincs hangStandardStandard: 40 perc + 15mp/lépésNem elérhető_Megtekint%s megtekintése_Játszma vége (nézőknek):NézőkElőnyadás_Megszakítás ajánlása_Megszakítás ajánlása_Elhalasztás ajánlásaSzünet kérése_Visszavágó ajánlásaFolytatás ajánlásaLépés visszavétel kérése_Megszakítás ajánlása_Döntetlen ajánlása_Szünet kérése_Folytatás ajánlása_Lépés visszavétel kéréseHivatalos PyChess panel.Nem elérhetőA FICS-en a "Vad" értékszám magában foglalja a következő sakkvariánsokat minden időkontroll mellett: Az egyik játékos egy huszár hátrannyal indulAz egyik játékos egy gyalog hátrannyal indulAz egyik játékos egy vezér hátrannyal indulAz egyik játékos egy bástya hátrannyal indulElérhető_Csak a lépésekCsak a lépéseket animálja.Csak regisztrált felhasználók beszélhetnek ezen a csatornán.Játszma megnyitásaHangfájl megnyitásaAdatbázis megnyitásaMegnyitástárMegnyitástár fájlokEllenfél értékszámaEllenfél erőssége:EgyébEgyéb (nem standard szabályok)Egyéb (standard szabályok)GParaméterek:FEN beillesztéseSzünetgyalogGyalog előnyGyalogok a félpályán túlÖsszetolt gyalogokPing Fischer randomLúzer sakkVisszavágó_Internetes sakkStandardJátékos é_rtékszámaAktív játékos: %dJátszik Pgn kép_Portok:Megnyitástár fájl:_Megnéz_Figurák jeleinek használata a játszmalaponBeállításokA lépésed visszavonását kérheted a Ctrl+Z lenyomásával..MagánValószínűleg azt már visszavonták.ÁtváltozásProtokoll:PyChess - Kapcsolódás a FICS-hezPyChess - Internet sakk: FICSPyChess játszma adatbázisInformációs ablak mutatásaPyChess adatbázisA pychess elveszítette a kapcsolatot a sakkmotorral. Magpróbálhatsz indítani egy új játszmát ezzel a sakkmotorral, vagy kipróbálhatsz egy másikat.PyChess.pyVvezérVezér előnyKilépésBF_eladásVéletlenRapidRapid: 15 perc + 10mp/lépésÉrtékeltÉrtékelt játszmaÉrtékszámJátékosok listájának letöltése.Szimbólumok eltávolításaFolytatás kéréseÚjraküldés%s újraküldése?Visszaállítás alapértelmezettreEredményFolytatásbástyaBástya előnyFordulóForduló:Szimultánt játszikSR_RegisztráljBüntetésekMentésJátszma mentéseMentés m_áskéntCsak _saját játszmák mentése_Elemző program értékeinek mentéseLépésenként felhasznált _idő mentéseFájlok mentése ide:Akarod menteni mielőtt bezárod?Mented a játszmát bezárás előtt?Mentett játszmaÉrtékKeres:Keresések grafikusanKeresés frissítveGaviota végjáték adatbázis könyvtár kiválasztásaAz automatikus mentés útvonalának kiválasztásaMegnyitástár fájl kiválasztásaSakkmotor kiválasztásaHangfájl kiválasztása...Válaszd ki a mentendő játszmákat:Munkakönyvtár kiválasztásaKihívás elküldéseMinden keresés elküldéseKeresés elküldéseSzolgáltató képviselőjeKörnyezet létrehozásaPozíció felállításaMegosztás_Koordináták mutatásaIdő_zavarBekiabálásKonzol_Csevegés_Leütött figurák mutatásaLépésenként felhasznált idő mutatásaElemző program értékeinek mutatásaTippek mutatása induláskorShredderLinuxChessKevert alapállásLépésre következikOldalpanelekEgyszerű állásHelyHely:SittuyinSittuyin: http://en.wikipedia.org/wiki/Sittuyin'%s' már bejelentkezettHang fájlok_FenyegetésElteltStandardStandardMagán csevegésStátusz1 lépés vissza1 lépés előreÖngyilkosTTDTMCsapata megszakítás ajánlataz elhalasztás ajánlatAz elemzőprogram a háttérben futva fogja elemezni a játszmát. A javaslat mód használatához szükséges.Ez a gomb le van tiltva vendégként bejelentkezettek esetén, mert azok nem játszhatnak értékelt játszmákat.Csevegés a partnerrel játszma közbenAz óra még nem indult el.Magyarázó megjegyzések a lépésekhezA kapcsolat megszakadt - fájl vége üzenet érkezett.A könyvtár ahonnan a sakkmotor indulni fog.Az első játékos neveA második játékos nevea döntetlen ajánlatA végjáték adatbázis használata pontos elemzést ad ha már csak néhány figura van a táblán.%s sakkmotor hiba:A számítógépes sakkprogramok gondolkodását mutatja a játszmák közbenÉrvénytelen jelszó. Elfelejtette jelszó esetén a http://www.freechess.org/password címen lehet új jelszót igényelni.A hiba: %sA(z) '%s' fájl már létezik. Ha lecseréli, a tartalma felülíródik.az időtúllépés bejelentéseA %s. játszmát nem lehet megnyitni hibás FEN miattA játszmát nem lehet megnyitni hibás FEN miattA játszma nem olvasható be végig, mert hiba van a következő lépésnél: %(moveno)s '%(notation)s'.Döntetlen.A játszmát megszakították.A játszmát elhalasztották.A játszmát leállították.A játszma szünetelSzámítógépes segítség a játszma minden fázisában.A fordított elemzőprogram úgy fogja elemezni a játszmát mintha az ellenfél következne lépésre. A fenyegetés mód használatához szükséges.Sikertelen lépés: %s.Navigálható lépéslistaa színcsere ajánlatA leggyakrabban alkalmazott lépések az adott megnyitásbana szünet ajánlatIsmeretlen ok.a feladása folytatás ajánlatGrafikus állásértékelésa lépés visszavétel ajánlatSpárta - ThébaTémák%d játszma még nincs mentve.%d játszma még nincs mentve.Valami probléma van ezzel a programmal.Ez a játszma értékszám vesztés nélkül megszakítható, mivel még nem történt két lépés.Ezt a játszmát nem lehet elhalasztani, mert a játékosok közül legalább az egyik vendég.Ez egy elhalasztott játszma folytatásaKihívás esetén ennek nincs értelme.Ez az opció tiltva van, mivel egy vendéget hívtál ki, %s fenyegetés elemzése3 sakkIdőIdőkontroll: IdőzavarA nap tippjeA nap tippjeTeljes képernyős módhoz csak nyomd meg az F11 billentyűt. Visszaváltáshoz szintén használdhatod az F11-et.Egy játszma mentéséhez válaszd a Játszma > Mentés másként menüt, adj meg egy fájlnevet és egy helyet, ahova menteni akarod. Alul pedig válaszd ki a fájl típusához tartozó kiterjesztést, végül a Mentést.Eltérés:Verseny igazgatóA PyChess fordítása...TípusÍrj vagy másolj be egy PGN játszmát vagy FEN állást ide.UNem elfogadható a(z) %sNem sikerült a mentés a beállított fájlba. Menti a játszmát bezárás előtt?Nem sikerült a mentés a beállított fájlba. Menti a játszmákat bezárás előtt?Tisztázatlan állásNincs leírásLépés visszavételLépés visszavonásaLépéspár visszavonásaEltávolításIsmeretlenNem hivatalos csatorna %dNem értékeltNem regisztráltIdőkontroll nélküliFejjel lefele_Elemző használata_Fordított elemző használata_Helyi végjáték adatbázis használata_Internetes végjáték adatbázis használataElemző program:Fájlok elnevezésének formája:_Megnyitástár használataKai Laskos által létrehozott sakk variáns: http://talkchess.com/forum/viewtopic.php?t=40990Változat létrehozási küszöb értékeV ÉlőWFMWGMWIMVárakozásNem lehet menteni '%(uri)s' -be, mert a PyChess nem ismeri a '%(ending)s' formátumot.ÜdvözletAmikor ez a gomb le van zárva, a kapcsolat az "Ellenfél erőssége" és az "Erősséged" között megőrződik, amikor a) az értékszámod az adott típusú keresésben megváltozik b) megváltoztatod a sakk variánst vagy az időkontrollt.VilágosVilágos O-OVilágos O-O-OVilágosnak új előörse van: %sVilágos állása meglehetősen kényelmetlenSötét állása meglehetősen kényelmetlenVilágos gyalogrohamot indíthatna a bal oldalonVilágos gyalogrohamot indíthatna a jobb oldalonVilágos:VadSzabálytalan sáncSzabálytalan sánc, kevertGyőzelemGyőzelem a 3. sakk beadásávalTámadássalNői FIDE mesterNői nagymesterNői nemzetközi mesterMunkakönyvtár:Év, hó, nap: #y, #m, #dTeJelenleg vendégként vagy bejelentkezve. A vendégek nem játszhatnak értékelt játszmákat, ezért kevesebb fajta játszmát játszhatnak, mint a regisztrált felhasználók. Regisztrálni a http://www.freechess.org/Register/index.html címen lehet.Azonnali lépés kéréseA számítógép elleni játszmához 20 nehézségi fokozat közül választhatsz.Kiválaszthatod a kedvenc hangjaidat a játékhoz a Beállítások menüben a Hangok fülön.Új játszmát kezdhetsz a Játszma > Új menüben, az új játszma ablakban kiválaszthatod a játékosokat, az időkontrollt és a sakkvariánst.Nem játszhatsz értékelt játszmát, mert az "Időkontroll nélkül" van bejelölve, Nem játszhatsz értékelt játszmákat vendégként.Nem játszhatsz sakk variánsokat, mert az "Időkontroll nélkül" van bejelölve, Játszma közben nem lehet színt váltani.Nem engedélyezett, amíg végigjátszás (examine) módban vagy.Nincs elég jogosultságod a fájl mentéséhez. Győződj meg róla, hogy jó útvonalat adtál meg, és próbáld újra.Kiléptetve 60 perc tétlenség miattMég nem kezdtél beszélgetést.A kibitz változót 1-re kell állítani a konzolban, hogy itt láthasd a bot üzeneteket.Túl sok lépést próbáltál visszavonni.Csak 3 keresés megengedett. Ha újat szeretnél, akkor előbb törölni kell az aktuális aktív kereséseidet. Törlöd a kereséseket?Döntetlen ajánlat elküldve.Szünet ajánlat elküldve.Folytatás ajánlat elküldve.Megszakítás ajánlat elküldve.Elhalasztás ajánlat elküldve.Lépés visszavonás ajánlat elküldve.Az ellenfeled szeretné, hogy egy kicsit gyorsabban lépj!Az ellenfeled a játszma megszakítását ajánlja, ha elfogadod, az értékszámod nem változik.Az ellenfeled a játszma elhalasztását ajánlotta.Az ellenfeled szünetet ajánlott.Az ellenfeled folytatni szeretné.Az ellenfeled szeretné visszavenni az utolsó %s lépését.Az ellenfeled döntetlent ajánlott.Az ellenfeled döntetlent ajánlott.Az ellenfeled nem lépte még túl a gondolkodási időt.Az ellenfelednek bele kell egyeznie a megszakításba, mivel már kettő vagy több lépés történt a játszmában.Úgy tűnik, az ellenfeled meggondolta magát.Az ellenfeled szeretné megszakítani a játszmát.Az ellenfeled a játszma elhalasztását szeretné.Az ellenfeled szüneteltetni szeretné a játékot.Az ellenfeled folytatni szeretné.Az ellenfeled szeretne visszavenni az utolsó %s lépését.Az elmentett panel beállításokat nem sikerült betölteni.Saját keresések eltávolítvaErősséged:Lépéskényszer_Elfogadás_MűveletekJátszma elemzése_ArchívumBefejezett játszmák _automatikus mentéseSötét:_Időtúllépés bejelentéseKeresések _törléseFEN másolásaPGN másolása_ElutasításS_zerkesztés_SakkmotorokÁllás _exportálásaTeljes képernyő_JátszmaJátszmákÁltalános_Súgó_Fülek elrejtése 1 játszma esetén_Javaslat_JavaslatokSzabálytalan lé_pésJátszma be_töltése_Kijelentkezés_Napló_Saját_Név:_Új_KövetkezőLépés (_nézőknek):Ellenfél_Jelszó:StandardJátékosok_Előző_Felülír_Tábla forgatása%d játszma _mentése%d játszma _mentése%d játszma _mentéseMenté_sKeresések/Kihívások_OldalpanelekHangok_Játszma indításaIdőkontroll nélküliA fő ablak bezáró ikonja [x] az összes játszmát bezárja_Hangok használata a PyChess-ben_NézetVilágos:Szín:ésés a vendégek nem játszhatnak értékelt játszmákat.és a FICS-en az időkontroll nélküli játszmák nem lehetnek értékeltek.és a FICS-en az időkontroll nélküli játszmák csak standard játszmák lehetnek.azonnali lépés kérésesötétközelebb viszi a %(piece)s-t az ellenfél királyához: %(cord)sa gyalogját közelíti az átváltozáshoz: %sidőtúllépés bejelentéseanyagot nyerbesáncolmegvédi ezt: %sfejleszti a %(piece)s-t: %(cord)sfejleszti a gyalogot: %sdöntetlent ér elmegváltoztatja az anyagotgnuchessfélig nyílthttp://brainking.com/en/GameRules?tp=2 * A világos figurák elrendezése az 1. soron véletlenszerű * A király a jobb sarokban * A futók ellenkező színű mezőkön * A sötét figurák elrendezését a világosaknak a tábla középpontja körüli 180 fokos elforgatásával kapjuk * Nincs sáncoláshttp://hu.wikipedia.org/wiki/Sakkhttp://en.wikipedia.org/wiki/Chess960 FICS wild/fr: http://www.freechess.org/Help/HelpFiles/wild.htmlhttp://hu.wikipedia.org/wiki/Sakk#A_sakk_le.C3.ADr.C3.A1sanöveli a királya biztonságáta %(x)s%(y)s vonalona %(x)s%(y)s vonalakonfokozza a nyomást itt: %sérvénytelen átváltozási figuramattot ad percbástyája elfoglalja a nyílt vonalatbástya elfoglalja a félig nyílt vonalata futóját fianchetto fejleszti: %snem játszik/döntetlen ajánlásaszünet kéréselépés visszavétel kérésemegszakítás ajánlásaelhalasztás ajánlásafolytatás ajánlásaa színcsere ajánlatösszesen a kapcsolatbanleköti az ellenséges %(piece)s-t a %(cord)s mezőn álló %(oppiece)s miattaktívabb helyre viszi a %(piece)s-t: %(cord)sátváltoztatja a gyalogot: %sA gyalog átváltozás új figura megadása nélkül szabálytalansakkot adjelenlegi értékszám tartománykiszabadítja ezt: %sFeladás%s fordulóanyagot veszítmpnöveli a királya biztonságátvisszaveszi az anyagota (%s) hibás mezőaz érkezési mező (%s) érvénytelenegy lépéshez kell legalább egy figura és egy koordinátanémi anyag lenyerésével fenyeget: %sautomatikus elfogadáskézi elfogadásUCI-világoswindow1A wine nincs telepítve!Xboardxboard nocastle: http://home.hccnet.nl/h.g.muller/engine-intf.html#8 FICS wild/2: http://www.freechess.org/Help/HelpFiles/wild.html * A tisztek véletlen elrendezésben a gyalogok mögött * Nincs sáncolás * A sötét figurák elrendezése a világosak tükörképexboard wildcastle http://home.hccnet.nl/h.g.muller/engine-intf.html#8 FICS wild/0: http://www.freechess.org/Help/HelpFiles/wild.html * A világos figurák elrendezése hagyományos. * A sötéteké is, kivéve, hogy a király és a vezér fel van cserélve, * tehát azok nem a világos királyával és vezérével megegyező oszlopokon helyezkednek el. * A sáncolás a hagyományosnak megfelelően történik: * o-o-o a hosszú sánc, o-o a rövid sánc jele.xboard wildcastle http://home.hccnet.nl/h.g.muller/engine-intf.html#8 FICS wild/1: http://www.freechess.org/Help/HelpFiles/wild.html * Mindkét oldal a hagyományos sakkban szokásos figurákkal rendelkezik * A világos király d1-en vagy e1-en áll, a sötét király d8-on vagy e8-on, * a bástyák a szokásos helyükön, * a futók ellenkező színű mezőkön állnak. * Ezen szabályok betartása mellett a tisztek elhelyezkedése véletlenszerű. * A sáncolás a hagyományosnak megfelelően történik: * o-o-o a hosszú sánc, o-o a rövid sánc jele.pychess-0.12.2/lang/ru/0000755000175000017470000000000012653231274015124 5ustar tamasusers00000000000000pychess-0.12.2/lang/ru/LC_MESSAGES/0000755000175000017470000000000012653231274016711 5ustar tamasusers00000000000000pychess-0.12.2/lang/ru/LC_MESSAGES/pychess.po0000644000175000017470000037413012653216200020727 0ustar tamasusers00000000000000# SOME DESCRIPTIVE TITLE. # Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER # This file is distributed under the same license as the pychess package. # # Translators: # milssky <2furius@gmail.com>, 2012 # Ilyas B Arinov , 2014 # Daniel , 2015 # FIRST AUTHOR , 2007 # gbtami , 2015 # Ilyas B Arinov , 2014 # Ilyas B Arinov , 2015 # Ilyas B Arinov , 2015 # milssky <2furius@gmail.com>, 2012 # slav0nic , 2012 # slav0nic , 2012 # slav0nic , 2012 # Михаил Степанов , 2015 # Сергей Комков, 2015 msgid "" msgstr "" "Project-Id-Version: pychess\n" "Report-Msgid-Bugs-To: \n" "POT-Creation-Date: 2016-01-27 13:28+0100\n" "PO-Revision-Date: 2016-01-28 08:56+0000\n" "Last-Translator: slav0nic \n" "Language-Team: Russian (http://www.transifex.com/gbtami/pychess/language/ru/)\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" "Language: ru\n" "Plural-Forms: nplurals=4; plural=(n%10==1 && n%100!=11 ? 0 : n%10>=2 && n%10<=4 && (n%100<12 || n%100>14) ? 1 : n%10==0 || (n%10>=5 && n%10<=9) || (n%100>=11 && n%100<=14)? 2 : 3);\n" # "Plural-Forms: nplurals=INTEGER; plural=EXPRESSION;\n" #: glade/analyze_game.glade:22 msgid "Analyze game" msgstr "Анализировать игру" #: glade/analyze_game.glade:87 msgid "Use analyzer:" msgstr "Использовать анализатор:" #: glade/analyze_game.glade:122 glade/PyChess.glade:2054 msgid "Maximum analysis time in seconds:" msgstr "Максимальное время анализа в секунду:" #: glade/analyze_game.glade:163 msgid "" "If the analyzer finds a move where the evaluation difference (the difference" " between the evaluation for the move it thinks is the best move and the " "evaluation for the move made in the game) exceeds this value, it will add an" " annotation for that move (consisting of the engine's Principal Variation " "for the move) to the Annotation panel" msgstr "Если анализатор найдет ход, разница оценки которого (разница между оценкой хода по его мнению наилучшего и оценкой ходов, сделанных в игре) превосходит это значение, он добавит аннотацию для этого хода (в зависимости от принципиальной вариации движка для хода) на панель аннотаций" #: glade/analyze_game.glade:164 msgid "Variation annotation creation threshold in centipawns:" msgstr "Вариации погрешности создания аннотации в сантипешках:" #: glade/analyze_game.glade:198 msgid "Analyze from current position" msgstr "Анализ с текущей позиции" #: glade/analyze_game.glade:214 msgid "Add threatening variation lines " msgstr "" #: glade/analyze_game.glade:229 glade/PyChess.glade:1459 msgid "Colorize analyzed moves" msgstr "Окрашивать проанализированные ходы" #: glade/analyze_game.glade:244 glade/PyChess.glade:1495 msgid "Show evaluation values" msgstr "Показывать значения оценки" #: glade/discovererDialog.glade:18 msgid "PyChess is discovering your engines. Please wait." msgstr "PyChess проверяет наличие шахматных движков. Пожалуйста, подождите." #: glade/discovererDialog.glade:77 msgid "PyChess.py:" msgstr "PyChess.py:" #: glade/discovererDialog.glade:89 msgid "ShredderLinuxChess:" msgstr "ShredderLinuxChess:" #: glade/discovererDialog.glade:101 msgid "gnuchess:" msgstr "gnuchess:" #: glade/fics_logon.glade:7 msgid "PyChess - Connect to Internet Chess" msgstr "PyChess - Подключение к Интернет Шахматам" #: glade/fics_logon.glade:47 msgid "Connect to the Free Online Chess Server" msgstr "Подключение к Free Online Chess Server" #: glade/fics_logon.glade:129 glade/taskers.glade:394 msgid "_Password:" msgstr "_Пароль:" #: glade/fics_logon.glade:143 msgid "_Name:" msgstr "_Имя:" #: glade/fics_logon.glade:191 msgid "Log on as _Guest" msgstr "Войти как _гость" #: glade/fics_logon.glade:227 msgid "Host:" msgstr "" #: glade/fics_logon.glade:259 msgid "Po_rts:" msgstr "По_рты:" #: glade/fics_logon.glade:271 msgid "Auto login on startup" msgstr "" #: glade/fics_logon.glade:385 msgid "S_ign up" msgstr "Р_егистрация" #: glade/fics_lounge.glade:35 msgid "Challenge: " msgstr "Вызов: " #: glade/fics_lounge.glade:97 msgid "Send Challenge" msgstr "Отправить Вызов" #: glade/fics_lounge.glade:133 msgid "Challenge:" msgstr "Вызов:" #: glade/fics_lounge.glade:327 glade/fics_lounge.glade:2078 msgid "Lightning:" msgstr "Молния:" #: glade/fics_lounge.glade:351 glade/fics_lounge.glade:2102 msgid "Standard:" msgstr "Стандарт:" #: glade/fics_lounge.glade:375 glade/fics_lounge.glade:2126 msgid "Blitz:" msgstr "Блиц:" #: glade/fics_lounge.glade:400 msgid "2 min, Fischer Random, Black" msgstr "2 мин, Шахматы Фишера, Черные" #: glade/fics_lounge.glade:422 msgid "10 min + 6 sec/move, White" msgstr "10 мин + 6 с/ход, Белые" #: glade/fics_lounge.glade:444 msgid "5 min" msgstr "5 мин" #: glade/fics_lounge.glade:480 msgid "Edit Seek" msgstr "Редактировать Запрос" #: glade/fics_lounge.glade:584 lib/pychess/ic/ICLounge.py:2208 #: lib/pychess/ic/__init__.py:101 lib/pychess/Utils/GameModel.py:206 msgid "Untimed" msgstr "Без времени" #: glade/fics_lounge.glade:637 msgid "Minutes: " msgstr "Минуты: " #: glade/fics_lounge.glade:665 msgid " Gain: " msgstr " Увеличение: " #: glade/fics_lounge.glade:703 msgid "Time control: " msgstr "Контроль времени: " #: glade/fics_lounge.glade:716 lib/pychess/ic/FICSObjects.py:56 #: lib/pychess/ic/ICLounge.py:1137 lib/pychess/ic/ICLounge.py:2208 #: lib/pychess/ic/__init__.py:99 msgid "Standard" msgstr "Стандарт" #: glade/fics_lounge.glade:757 glade/newInOut.glade:633 msgid "Time Control" msgstr "Контроль времени" #: glade/fics_lounge.glade:814 glade/fics_lounge.glade:1346 msgid "Don't care" msgstr "Не важно" #: glade/fics_lounge.glade:879 msgid "Your strength: " msgstr "Ваша сила: " #: glade/fics_lounge.glade:921 msgid "(Blitz)" msgstr "(Блиц)" #: glade/fics_lounge.glade:951 msgid "Opponent's strength: " msgstr "Сила соперника: " #: glade/fics_lounge.glade:1055 msgid "" "When this button is in the \"locked\" state, the relationship\n" "between \"Opponent's strength\" and \"Your strength\" will be\n" "preserved when \n" "a) your rating for the type of game sought has changed\n" "b) you change the variant or the time control" msgstr "Когда эта кнопка в \"заблокированном\" состоянии, отношение между \"силой оппонента\" и \"вашей силой\" будет сохраняться при\nа) Ваш рейтинг для искомого типа игры был изменен\nб) Вы изменяете варианты управления временем" #: glade/fics_lounge.glade:1095 msgid "Center:" msgstr "Центр:" #: glade/fics_lounge.glade:1134 msgid "1200" msgstr "1200" #: glade/fics_lounge.glade:1188 msgid "Tolerance:" msgstr "Толерантность:" #: glade/fics_lounge.glade:1243 lib/pychess/ic/ICLounge.py:2452 msgid "Hide" msgstr "Скрыть" #: glade/fics_lounge.glade:1289 msgid "Opponent Strength" msgstr "Сила соперника" #: glade/fics_lounge.glade:1386 lib/pychess/Database/gamelist.py:40 #: lib/pychess/ic/ICLounge.py:1357 lib/pychess/ic/ICLounge.py:1557 #: lib/pychess/ic/ICLounge.py:2108 lib/pychess/Utils/repr.py:10 #: lib/pychess/widgets/ChessClock.py:40 #: lib/pychess/widgets/TaskerManager.py:153 msgid "White" msgstr "Белые" #: glade/fics_lounge.glade:1414 lib/pychess/Database/gamelist.py:40 #: lib/pychess/ic/ICLounge.py:1358 lib/pychess/ic/ICLounge.py:1558 #: lib/pychess/ic/ICLounge.py:2110 lib/pychess/Utils/repr.py:10 #: lib/pychess/widgets/ChessClock.py:40 #: lib/pychess/widgets/TaskerManager.py:154 msgid "Black" msgstr "Чёрные" #: glade/fics_lounge.glade:1453 msgid "Your Color" msgstr "Ваш цвет" #: glade/fics_lounge.glade:1512 msgid "Play normal chess rules" msgstr "Игра по классическим правилам" #: glade/fics_lounge.glade:1552 msgid "Play" msgstr "Играть" #: glade/fics_lounge.glade:1618 glade/newInOut.glade:833 msgid "Chess Variant" msgstr "Вариант Шахмат" #: glade/fics_lounge.glade:1676 msgid "Rated game" msgstr "Рейтинговая игра" #: glade/fics_lounge.glade:1692 msgid "Manually accept opponent" msgstr "Вручную принимать соперника" #: glade/fics_lounge.glade:1722 msgid "Options" msgstr "Настройки" #: glade/fics_lounge.glade:1750 msgid "PyChess - Internet Chess: FICS" msgstr "PyChess — Интернет-шахматы: FICS" #: glade/fics_lounge.glade:1823 msgid "_Clear Seeks" msgstr "_Очистить Запросы" #: glade/fics_lounge.glade:1847 msgid "_Accept" msgstr "_Принять" #: glade/fics_lounge.glade:1871 msgid "_Decline" msgstr "_Отклонить" #: glade/fics_lounge.glade:2151 msgid "2 min, Fischer Random, 1800↓, Black" msgstr "Соперник" #: glade/fics_lounge.glade:2172 msgid "10 min + 6 sec/move, 1400↑, White" msgstr "10 мин + 6 с/ход, 1400↑, Белые" #: glade/fics_lounge.glade:2193 msgid "5 min, 1200-1800, Manual" msgstr "5 мин, 1200-1800, Вручную" #: glade/fics_lounge.glade:2247 msgid "Send all seeks" msgstr "Отправить все поиски" #: glade/fics_lounge.glade:2301 msgid "Send seek" msgstr "Искать соперника" #: glade/fics_lounge.glade:2337 msgid "Create Seek" msgstr "Создать Запрос" #: glade/fics_lounge.glade:2353 msgid "_Seeks / Challenges" msgstr "_Запросы / Вызовы" #: glade/fics_lounge.glade:2374 lib/pychess/ic/ICLounge.py:472 #: lib/pychess/ic/ICLounge.py:670 lib/pychess/ic/ICLounge.py:1357 #: lib/pychess/ic/ICLounge.py:1358 msgid "Rating" msgstr "Рейтинг" #: glade/fics_lounge.glade:2399 msgid "Time" msgstr "Время" #: glade/fics_lounge.glade:2419 msgid "Seek _Graph" msgstr "_График Запросов" #: glade/fics_lounge.glade:2444 msgid "0 Players Ready" msgstr "0 Готовых Игроков" #: glade/fics_lounge.glade:2496 msgid "Challenge" msgstr "Вызов" #: glade/fics_lounge.glade:2549 glade/fics_lounge.glade:2735 msgid "Observe" msgstr "Наблюдать" #: glade/fics_lounge.glade:2602 msgid "Start Private Chat" msgstr "Начать Приватный Чат" #: glade/fics_lounge.glade:2659 msgid "_Player List" msgstr "И_гроки" #: glade/fics_lounge.glade:2792 msgid "_Game List" msgstr "_Игры" #: glade/fics_lounge.glade:2847 msgid "_My games" msgstr "" #: glade/fics_lounge.glade:2904 glade/PyChess.glade:841 msgid "Offer _Resume" msgstr "Предложить _продолжить" #: glade/fics_lounge.glade:2962 glade/PyChess.glade:880 msgid "R_esign" msgstr "_Сдаться" #: glade/fics_lounge.glade:3006 glade/PyChess.glade:820 msgid "Offer _Draw" msgstr "Предложить _ничью" #: glade/fics_lounge.glade:3050 msgid "Offer A_bort" msgstr "_Отменить предложение" #: glade/fics_lounge.glade:3107 msgid "Pre_view" msgstr "Т_ест" #: glade/fics_lounge.glade:3151 msgid "Examine" msgstr "" #: glade/fics_lounge.glade:3208 msgid "_Archived" msgstr "" #: glade/fics_lounge.glade:3313 msgid "News" msgstr "Новости" #: glade/fics_lounge.glade:3345 msgid "Show Console" msgstr "Показать консоль" #: glade/fics_lounge.glade:3359 msgid "Show _Chat" msgstr "Показать _чат" #: glade/fics_lounge.glade:3373 msgid "_Log Off" msgstr "_Отключиться" #: glade/fics_lounge.glade:3393 msgid "Tools" msgstr "Инструменты" #: glade/fics_lounge.glade:3428 msgid "Asymmetric Random " msgstr "" #: glade/findbar.glade:6 msgid "window1" msgstr "окно1" #: glade/findbar.glade:21 msgid "0 of 0" msgstr "0 из 0" #: glade/findbar.glade:66 msgid "Search:" msgstr "Искать:" #: glade/findbar.glade:134 msgid "_Previous" msgstr "_Предыдущий" #: glade/findbar.glade:192 msgid "_Next" msgstr "_Следующий" #: glade/newInOut.glade:45 lib/pychess/widgets/newGameDialog.py:445 msgid "New Game" msgstr "Новая игра" #: glade/newInOut.glade:108 msgid "_Start Game" msgstr "_Начать игру" #: glade/newInOut.glade:130 msgid "Copy FEN" msgstr "" #: glade/newInOut.glade:143 msgid "Clear" msgstr "" #: glade/newInOut.glade:156 msgid "Paste FEN" msgstr "" #: glade/newInOut.glade:257 msgid "_Black player:" msgstr "_Игрок за черных:" #: glade/newInOut.glade:274 msgid "_White player:" msgstr "_Игрок за белых:" #: glade/newInOut.glade:385 msgid "Players" msgstr "Игроки" #: glade/newInOut.glade:436 msgid "_Untimed" msgstr "_Без времени" #: glade/newInOut.glade:475 msgid "Blitz: 5 min" msgstr "" #: glade/newInOut.glade:526 msgid "Rapid: 15 min + 10 sec/move" msgstr "" #: glade/newInOut.glade:575 msgid "Normal: 40 min + 15 sec/move" msgstr "" #: glade/newInOut.glade:684 msgid "_Play Normal chess" msgstr "_Играть в обычные шахматы" #: glade/newInOut.glade:724 msgid "Play Fischer Random chess" msgstr "Играть в шахматы Фишера" #: glade/newInOut.glade:774 msgid "Play Losers chess" msgstr "Играть в шахматные поддавки" #: glade/newInOut.glade:919 msgid "Open Game" msgstr "Открыть игру" #: glade/newInOut.glade:1162 msgid "Initial Position" msgstr "Начальная позиция" #: glade/newInOut.glade:1219 msgid "Enter Game Notation" msgstr "Тип нотации" #: glade/newInOut.glade:1314 msgid "Halfmove clock" msgstr "" #: glade/newInOut.glade:1327 msgid "En passant line" msgstr "" #: glade/newInOut.glade:1339 msgid "Side to move" msgstr "" #: glade/newInOut.glade:1351 msgid "Move number" msgstr "" #: glade/newInOut.glade:1361 msgid "Black O-O" msgstr "" #: glade/newInOut.glade:1375 msgid "Black O-O-O" msgstr "" #: glade/newInOut.glade:1389 msgid "White O-O-O" msgstr "" #: glade/newInOut.glade:1403 msgid "White O-O" msgstr "" #: glade/promotion.glade:7 msgid "Promotion" msgstr "Превращение пешки" #: glade/promotion.glade:49 lib/pychess/Utils/repr.py:12 msgid "Queen" msgstr "ферзя" #: glade/promotion.glade:95 lib/pychess/Utils/repr.py:12 msgid "Rook" msgstr "ладью" #: glade/promotion.glade:141 lib/pychess/Utils/repr.py:12 msgid "Bishop" msgstr "слона" #: glade/promotion.glade:187 lib/pychess/Utils/repr.py:12 msgid "Knight" msgstr "коня" #: glade/promotion.glade:233 lib/pychess/Utils/repr.py:12 msgid "King" msgstr "Король" #: glade/promotion.glade:265 msgid "Promote pawn to what?" msgstr "Пешка должна быть заменена на" #: glade/PyChess.glade:9 msgid "Chess client" msgstr "" #: glade/PyChess.glade:44 msgid "Game information" msgstr "Информация об игре" #: glade/PyChess.glade:164 msgid "Event:" msgstr "Турнир:" #: glade/PyChess.glade:178 msgid "Site:" msgstr "Место:" #: glade/PyChess.glade:204 msgid "Round:" msgstr "Тур:" #: glade/PyChess.glade:237 msgid "White:" msgstr "Белые:" #: glade/PyChess.glade:249 msgid "Black:" msgstr "Черные:" #: glade/PyChess.glade:302 msgid "Game data" msgstr "Данные о партии" #: glade/PyChess.glade:357 msgid "Date of game" msgstr "Дата проведения партии" #: glade/PyChess.glade:495 msgid "_Game" msgstr "_Игра" #: glade/PyChess.glade:502 msgid "_New Game" msgstr "_Новая игра" #: glade/PyChess.glade:515 msgid "Play _Internet Chess" msgstr "Подключ_иться к шахматному серверу" #: glade/PyChess.glade:534 msgid "_Load Game" msgstr "_Загрузить игру" #: glade/PyChess.glade:550 msgid "Load _Recent Game" msgstr "Загрузить _недавнюю игру" #: glade/PyChess.glade:558 msgid "Open _Database" msgstr "Открыть _базу данных" #: glade/PyChess.glade:569 lib/pychess/widgets/newGameDialog.py:615 msgid "Setup Position" msgstr "Настроить позицию" #: glade/PyChess.glade:579 msgid "Enter Game _Notation" msgstr "Ввес_ти нотацию игры" #: glade/PyChess.glade:592 msgid "_Save Game" msgstr "_Сохранить игру" #: glade/PyChess.glade:606 msgid "Save Game _As" msgstr "Сохранить игру _как" #: glade/PyChess.glade:624 msgid "Share Game" msgstr "" #: glade/PyChess.glade:630 msgid "_Export Position" msgstr "_Экспорт Позиции" #: glade/PyChess.glade:644 msgid "_Analyze Game" msgstr "_Анализ игры" #: glade/PyChess.glade:678 msgid "Player _Rating" msgstr "_Рейтинг игрока" #: glade/PyChess.glade:723 msgid "_Edit" msgstr "_Правка" #: glade/PyChess.glade:734 msgid "_Copy PGN" msgstr "" #: glade/PyChess.glade:746 msgid "_Copy FEN" msgstr "" #: glade/PyChess.glade:763 msgid "_Engines" msgstr "_Движки" #: glade/PyChess.glade:789 msgid "_Actions" msgstr "_Действия" #: glade/PyChess.glade:800 msgid "Offer _Abort" msgstr "_Отменить предложение" #: glade/PyChess.glade:810 msgid "Offer Ad_journment" msgstr "Предложить _отложить игру" #: glade/PyChess.glade:831 msgid "Offer _Pause" msgstr "Предложить сделать _перерыв" #: glade/PyChess.glade:847 msgid "Offer _Undo" msgstr "Предложить _отменить ход" #: glade/PyChess.glade:870 msgid "_Call Flag" msgstr "Проверить _флажок" #: glade/PyChess.glade:890 msgid "Ask to _Move" msgstr "Попросить сделать _ход" #: glade/PyChess.glade:905 msgid "Auto Call _Flag" msgstr "Авто _флаг" #: glade/PyChess.glade:918 msgid "_View" msgstr "_Вид" #: glade/PyChess.glade:925 msgid "_Rotate Board" msgstr "_Повернуть доску" #: glade/PyChess.glade:939 msgid "_Fullscreen" msgstr "_Полноэкранный режим" #: glade/PyChess.glade:952 msgid "Leave _Fullscreen" msgstr "_Покинуть полноэкранный режим" #: glade/PyChess.glade:969 msgid "_Show Sidepanels" msgstr "_Показывать боковые панели" #: glade/PyChess.glade:980 msgid "_Log Viewer" msgstr "_Просмотр журнала" #: glade/PyChess.glade:997 msgid "_Hint mode" msgstr "Режим _подсказок" #: glade/PyChess.glade:1009 msgid "Sp_y mode" msgstr "_Шпионский режим" #: glade/PyChess.glade:1024 msgid "_Help" msgstr "_Справка" #: glade/PyChess.glade:1034 msgid "About Chess" msgstr "О шахматах" #: glade/PyChess.glade:1043 msgid "How to Play" msgstr "Как играть" #: glade/PyChess.glade:1052 msgid "Translate PyChess" msgstr "Перевести PyChess" #: glade/PyChess.glade:1058 msgid "Tip of the Day" msgstr "Совет дня" #: glade/PyChess.glade:1153 msgid "Default" msgstr "По умолчанию" #: glade/PyChess.glade:1156 msgid "Knights" msgstr "Рыцари" #: glade/PyChess.glade:1167 lib/pychess/widgets/preferencesDialog.py:349 msgid "Beep" msgstr "Сигнал" #: glade/PyChess.glade:1170 lib/pychess/widgets/preferencesDialog.py:350 msgid "Select sound file..." msgstr "Звуковой файл..." #: glade/PyChess.glade:1173 lib/pychess/widgets/preferencesDialog.py:348 msgid "No sound" msgstr "Без звука" #: glade/PyChess.glade:1180 msgid "Preferences" msgstr "Параметры" #: glade/PyChess.glade:1218 msgid "The displayed name of the first human player, e.g., John." msgstr "Отображаемое имя первого игрока" #: glade/PyChess.glade:1230 msgid "Name of _first human player:" msgstr "Имя _первого игрока:" #: glade/PyChess.glade:1259 msgid "The displayed name of the guest player, e.g., Mary." msgstr "Отображаемое имя гостя" #: glade/PyChess.glade:1271 msgid "Name of s_econd human player:" msgstr "Имя _второго игрока:" #: glade/PyChess.glade:1307 msgid "_Hide tabs when only one game is open" msgstr "_Скрывать вкладки, если открыта только одна игра" #: glade/PyChess.glade:1312 msgid "" "If set, this hides the tab in the top of the playing window, when it is not " "needed." msgstr "Если включено, скрывает вкладку наверху игрового окна, когда она не нужна." #: glade/PyChess.glade:1326 msgid "_Use main app closer [x] to close all games" msgstr "" #: glade/PyChess.glade:1331 msgid "" "If set, clicking on main application window closer first time it closes all " "games." msgstr "" #: glade/PyChess.glade:1345 msgid "Auto _rotate board to current human player" msgstr "Автоматически _переворачивать доску для текущего игрока" #: glade/PyChess.glade:1350 msgid "" "If set, the board will turn after each move, to show the natural view for " "the current player." msgstr "Если включено, доска будет автоматически поворачиваться после каждого хода в положение для текущего игрока." #: glade/PyChess.glade:1364 msgid "Auto _promote to queen" msgstr "" #: glade/PyChess.glade:1369 msgid "If set, pawn promotes to queen without promotion dialog selection." msgstr "" #: glade/PyChess.glade:1383 msgid "Face _to Face display mode" msgstr "Режим отображения _Лицом к Лицу" #: glade/PyChess.glade:1388 msgid "" "If set, the black pieces will be head down, suitable for playing against " "friends on mobile devices." msgstr "Если включено, чёрные фигуры располагаются вверх ногами. Это удобно для игры вдвоём на мобильных устройствах." #: glade/PyChess.glade:1402 msgid "Sho_w cords" msgstr "Показывать _координаты" #: glade/PyChess.glade:1407 msgid "" "If set, the playing board will display labels and ranks for each chess " "field. These are usable in chess notation." msgstr "Если установлено, игровая доска будет отображать метки и ранг для каждого игрового поля. Это полезно для шахматной нотации." #: glade/PyChess.glade:1421 msgid "Show _captured pieces" msgstr "Показывать _захваченные фигуры" #: glade/PyChess.glade:1426 msgid "If set, the captured figurines will be shown next to the board." msgstr "Если установлено, захваченные фигуры будут показаны рядом с доской." #: glade/PyChess.glade:1440 msgid "Prefer figures in _notation" msgstr "_Использовать изображения фигур в нотации" #: glade/PyChess.glade:1445 msgid "" "If set, PyChess will use figures to express moved pieces, rather than " "uppercase letters." msgstr "Если включено, PyChess будет отображать в нотации ходов фигуры, а не заглавные буквы." #: glade/PyChess.glade:1464 msgid "If set, PyChess will colorize suboptimal analyzed moves with red." msgstr "Если установлено, PyChess будет окрашивать оптимальные проанализированные ходы красным." #: glade/PyChess.glade:1477 msgid "Show elapsed move times" msgstr "Показать время пройденых ходов" #: glade/PyChess.glade:1482 msgid "If set, the elapsed time that a player used for the move is shown." msgstr "Если установлено, будет показано время, которое игрок потратил на ход." #: glade/PyChess.glade:1500 msgid "If set, the hint analyzer engine evaluation value is shown." msgstr "Если установлено, покажет оценки движка для анализа подсказок." #: glade/PyChess.glade:1526 msgid "General Options" msgstr "" #: glade/PyChess.glade:1560 msgid "F_ull board animation" msgstr "_Полная анимация доски" #: glade/PyChess.glade:1565 msgid "Animate pieces, board rotation and more. Use this on fast machines." msgstr "Анимировать фигуры, повороты доски и др. (для быстрых компьютеров)." #: glade/PyChess.glade:1579 msgid "Only animate _moves" msgstr "Анимировать только _ходы" #: glade/PyChess.glade:1584 msgid "Only animate piece moves." msgstr "Анимировать только движения фигур." #: glade/PyChess.glade:1599 msgid "No _animation" msgstr "Без _анимации" #: glade/PyChess.glade:1604 msgid "Never use animation. Use this on slow machines." msgstr "Никогда не использовать анимацию (для слабых машин)." #: glade/PyChess.glade:1632 msgid "Animation" msgstr "Анимация" #: glade/PyChess.glade:1651 msgid "_General" msgstr "_Общие" #: glade/PyChess.glade:1692 msgid "Use opening _book" msgstr "Использовать _книгу дебютов" #: glade/PyChess.glade:1697 msgid "If set, PyChess will suggest best opening moves on hint panel." msgstr "Если установлено, PyChess будет предлагать лучшие ходы дебютов на панели подсказок." #: glade/PyChess.glade:1724 msgid "Polyglot book file:" msgstr "Файл книги Polyglot:" #: glade/PyChess.glade:1768 msgid "Use _local tablebases" msgstr "Использовать _локальные таблицы" #: glade/PyChess.glade:1773 msgid "" "If set, PyChess will show game results for different moves in positions containing 6 or less pieces.\n" "You can download tablebase files from:\n" "http://www.olympuschess.com/egtb/gaviota/" msgstr "Если установлено, PyChess будет показывать результаты игры для различных ходов в позиции, содержащей 6 или менее фигур.\nВы можете загрузить файлы таблиц из:\n http://www.olympuschess.com/egtb/gaviota/" #: glade/PyChess.glade:1803 msgid "Gaviota TB path:" msgstr "Путь к Gaviota TB:" #: glade/PyChess.glade:1843 msgid "Use _online tablebases" msgstr "Использовать _онлайн таблицы" #: glade/PyChess.glade:1848 msgid "" "If set, PyChess will show game results for different moves in positions containing 6 or less pieces.\n" "It will search positions from http://www.k4it.de/" msgstr "Если установлено, PyChess будет показывать результаты игры для различных ходов в позициях, состоящих из 6 или менее фигур.\nБудет искать позиции из http://www.k4it.de/" #: glade/PyChess.glade:1870 msgid "Opening, endgame" msgstr "Дебют, эндшпиль" #: glade/PyChess.glade:1904 msgid "Use _analyzer" msgstr "Использовать _анализатор" #: glade/PyChess.glade:1946 msgid "" "The analyzer will run in the background and analyze the game. This is " "necessary for the hint mode to work" msgstr "Анализатор будет в фоновом режиме анализировать партию. Это необходимо для работы режима подсказок" #: glade/PyChess.glade:1978 msgid "Use _inverted analyzer" msgstr "Использовать _обратный анализатор" #: glade/PyChess.glade:2020 msgid "" "The inverse analyzer will analyze the game as if your opponent was to move. " "This is necessary for the spy mode to work" msgstr "Обратный анализатор будет анализировать партию со стороны противника. Это необходимо для работы в шпионском режиме" #: glade/PyChess.glade:2096 msgid "Analyzing" msgstr "Анализ" #: glade/PyChess.glade:2118 msgid "_Hints" msgstr "_Подсказки" #: glade/PyChess.glade:2263 msgid "Uninstall" msgstr "Удалить" #: glade/PyChess.glade:2317 msgid "Ac_tive" msgstr "Активировать" #: glade/PyChess.glade:2367 msgid "Installed Sidepanels" msgstr "Установленные боковые панели" #: glade/PyChess.glade:2382 msgid "Side_panels" msgstr "Боковые _панели" #: glade/PyChess.glade:2440 msgid "Light Squares :" msgstr "" #: glade/PyChess.glade:2479 msgid "Dark Squares :" msgstr "" #: glade/PyChess.glade:2515 msgid "Reset Default Colours" msgstr "" #: glade/PyChess.glade:2551 msgid "Board Colours" msgstr "" #: glade/PyChess.glade:2610 msgid "Chess Sets" msgstr "" #: glade/PyChess.glade:2634 msgid "Themes" msgstr "Темы" #: glade/PyChess.glade:2659 msgid "_Use sounds in PyChess" msgstr "_Использовать звуки в PyChess" #: glade/PyChess.glade:2982 msgid "A player _checks:" msgstr "Поставлен шах" #: glade/PyChess.glade:2997 msgid "A player _moves:" msgstr "_Игрок сделал ход:" #: glade/PyChess.glade:3010 msgid "Game is _drawn:" msgstr "В партии _ничья:" #: glade/PyChess.glade:3025 msgid "Game is _lost:" msgstr "Партия _проиграна:" #: glade/PyChess.glade:3040 msgid "Game is _won:" msgstr "Партия _выиграна:" #: glade/PyChess.glade:3055 msgid "A player c_aptures:" msgstr "Игрок взял _фигуру:" #: glade/PyChess.glade:3084 msgid "Game is _set-up:" msgstr "Партия на_чалась:" #: glade/PyChess.glade:3136 msgid "_Observed moves:" msgstr "Сделан _ход при наблюдении:" #: glade/PyChess.glade:3151 msgid "Observed _ends:" msgstr "_Конец партии при наблюдении:" #: glade/PyChess.glade:3265 msgid "Short on _time:" msgstr "Мало _времени:" #: glade/PyChess.glade:3317 msgid "_Invalid move:" msgstr "_Недопустимый ход:" #: glade/PyChess.glade:3369 msgid "Activate alarm when _remaining sec is:" msgstr "Активировать сигнал, когда секунд _остается:" #: glade/PyChess.glade:3416 msgid "Play Sound When..." msgstr "Проигрывать звук, если..." #: glade/PyChess.glade:3438 msgid "_Sounds" msgstr "_Звуки" #: glade/PyChess.glade:3463 msgid "_Auto save finished games" msgstr "" #: glade/PyChess.glade:3497 msgid "Save files to:" msgstr "" #: glade/PyChess.glade:3525 msgid "Use name format:" msgstr "" #: glade/PyChess.glade:3569 msgid "Names: #n1, #n2" msgstr "" #: glade/PyChess.glade:3582 msgid "Year, month, day: #y, #m, #d" msgstr "" #: glade/PyChess.glade:3619 msgid "Save elapsed move _times" msgstr "" #: glade/PyChess.glade:3644 msgid "Save analyzing engine _evaluation values" msgstr "" #: glade/PyChess.glade:3669 msgid "Save _own games only" msgstr "" #: glade/PyChess.glade:3698 msgid "Save" msgstr "" #: glade/PyChess.glade:3728 msgid "uci" msgstr "uci" #: glade/PyChess.glade:3731 msgid "xboard" msgstr "xboard" #: glade/PyChess.glade:3739 msgid "Manage engines" msgstr "Управление движками" #: glade/PyChess.glade:3837 msgid "Command:" msgstr "Команда:" #: glade/PyChess.glade:3851 msgid "Protocol:" msgstr "Протокол:" #: glade/PyChess.glade:3865 msgid "Parameters:" msgstr "Параметры:" #: glade/PyChess.glade:3878 msgid "Command line parameters needed by the engine." msgstr "Параметры командной строки для движка." #: glade/PyChess.glade:3903 msgid "" "Engines use uci or xboard communication protocol to talk to the GUI.\n" "If it can use both you can set here which one you like." msgstr "Движки, использующие коммуникационный протокол uci или xboard для общения с графическим интерфейсом пользователя.\nЕсли есть возможность использовать оба, вы можете установить здесь тот, который вам нравится." #: glade/PyChess.glade:3929 msgid "Working directory:" msgstr "Рабочая директория:" #: glade/PyChess.glade:3942 msgid "The directory where the engine will be started from." msgstr "Директория, из которой будет запускаться движок." #: glade/saveGamesDialog.glade:7 msgid "Quit PyChess" msgstr "Выход из PyChess" #: glade/saveGamesDialog.glade:24 lib/pychess/widgets/ionest.py:424 msgid "Close _without Saving" msgstr "_Закрыть без сохранения" #: glade/saveGamesDialog.glade:83 msgid "_Save %d documents" msgstr "_Сохранено %d документ(ов)" #: glade/saveGamesDialog.glade:141 msgid "" "There are %d games with unsaved moves. Save changes before " "closing?" msgstr "Ходы в %d играх не сохранены. Сохранить изменения перед закрытием?" #: glade/saveGamesDialog.glade:161 msgid "Select the games you want to save:" msgstr "Выберите партии, которые вы хотите сохранить:" #: glade/saveGamesDialog.glade:204 msgid "If you don't save, new changes to your games will be permanently lost." msgstr "Если вы не сохранитесь, все изменения будут безвозвратно утеряны." #: glade/taskers.glade:126 msgid "_Opponent:" msgstr "_Соперник:" #: glade/taskers.glade:154 msgid "_Your Color:" msgstr "_Ваш цвет:" #: glade/taskers.glade:219 msgid "_Start Game" msgstr "_Начать игру" #: glade/taskers.glade:338 msgid "Log on as G_uest" msgstr "Войти как _гость" #: glade/taskers.glade:410 msgid "Ha_ndle:" msgstr "_Логин:" #: glade/taskers.glade:469 msgid "_Connect to server" msgstr "" #: glade/tipoftheday.glade:7 msgid "Tip Of The day" msgstr "Совет дня" #: glade/tipoftheday.glade:62 msgid "Show tips at startup" msgstr "Показывать советы при запуске" #: lib/pychess/Main.py:302 msgid "http://en.wikipedia.org/wiki/Chess" msgstr "http://ru.wikipedia.org/wiki/%D0%A8%D0%B0%D1%85%D0%BC%D0%B0%D1%82%D1%8B" #: lib/pychess/Main.py:305 msgid "http://en.wikipedia.org/wiki/Rules_of_chess" msgstr "http://ru.wikipedia.org/wiki/%D0%A8%D0%B0%D1%85%D0%BC%D0%B0%D1%82%D1%8B#.D0.9F.D1.80.D0.B0.D0.B2.D0.B8.D0.BB.D0.B0" #: lib/pychess/Main.py:370 lib/pychess/widgets/gamenanny.py:80 msgid "Welcome" msgstr "Добро пожаловать" #: lib/pychess/Database/gamelist.py:40 msgid "Id" msgstr "ИН" #: lib/pychess/Database/gamelist.py:40 msgid "W Elo" msgstr "Б Ело" #: lib/pychess/Database/gamelist.py:40 msgid "B Elo" msgstr "Ч Ело" #: lib/pychess/Database/gamelist.py:41 msgid "Result" msgstr "Результат" #: lib/pychess/Database/gamelist.py:41 msgid "Event" msgstr "Событие" #: lib/pychess/Database/gamelist.py:41 msgid "Site" msgstr "Сайт" #: lib/pychess/Database/gamelist.py:41 msgid "Round" msgstr "Тур" #: lib/pychess/Database/gamelist.py:41 msgid "Date" msgstr "Дата" #: lib/pychess/Database/gamelist.py:41 msgid "ECO" msgstr "ECO" #: lib/pychess/Database/gamelist.py:62 msgid "PyChess Game Database" msgstr "База данных игры PyChess" #: lib/pychess/Database/PgnImport.py:188 #, python-format msgid "The game #%s can't be loaded, because of an error parsing FEN" msgstr "Не удалось загрузить игру #%s из-за ошибки синтаксического разбора FEN" #: lib/pychess/ic/FICSConnection.py:139 msgid "The connection was broken - got \"end of file\" message" msgstr "Связь была нарушена - получено сообщение \"end of file\"" #: lib/pychess/ic/FICSConnection.py:140 #, python-format msgid "'%s' is not a registered name" msgstr "Имя '%s' не зарегистрировано" #: lib/pychess/ic/FICSConnection.py:141 msgid "" "The entered password was invalid.\n" "If you forgot your password, go to http://www.freechess.org/password to request a new one over email." msgstr "Введен неправильный пароль.\nЕсли вы забыли пароль, пройдите на http://www.freechess.org/password чтобы запросить новый по электронной почте." #: lib/pychess/ic/FICSConnection.py:145 #, python-format msgid "Sorry '%s' is already logged in" msgstr "" #: lib/pychess/ic/FICSConnection.py:146 #, python-format msgid "'%s' is a registered name. If it is yours, type the password." msgstr "" #: lib/pychess/ic/FICSConnection.py:147 msgid "" "Due to abuse problems, guest connections have been prevented.\n" "You can still register on http://www.freechess.org" msgstr "" #: lib/pychess/ic/FICSConnection.py:166 msgid "Connecting to server" msgstr "Соединение с сервером" #: lib/pychess/ic/FICSConnection.py:181 msgid "Logging on to server" msgstr "Авторизация на сервере" #: lib/pychess/ic/FICSConnection.py:239 msgid "Setting up environment" msgstr "Настройка окружения" #: lib/pychess/ic/FICSObjects.py:35 lib/pychess/ic/FICSObjects.py:47 #, python-format msgid "%(player)s is %(status)s" msgstr "%(player)s %(status)s" #: lib/pychess/ic/FICSObjects.py:46 msgid "not playing" msgstr "вне игры" #: lib/pychess/ic/FICSObjects.py:54 lib/pychess/ic/ICLounge.py:1136 #: lib/pychess/ic/ICLounge.py:2209 lib/pychess/ic/__init__.py:98 #: lib/pychess/widgets/newGameDialog.py:153 msgid "Blitz" msgstr "Блиц" #: lib/pychess/ic/FICSObjects.py:58 lib/pychess/ic/ICLounge.py:1137 #: lib/pychess/ic/ICLounge.py:2209 lib/pychess/ic/__init__.py:100 msgid "Lightning" msgstr "Молния" #: lib/pychess/ic/FICSObjects.py:60 lib/pychess/Variants/atomic.py:15 msgid "Atomic" msgstr "Атомный" #: lib/pychess/ic/FICSObjects.py:62 lib/pychess/Variants/bughouse.py:9 msgid "Bughouse" msgstr "Багхаус" #: lib/pychess/ic/FICSObjects.py:64 lib/pychess/Variants/crazyhouse.py:9 msgid "Crazyhouse" msgstr "Дурдом" #: lib/pychess/ic/FICSObjects.py:66 lib/pychess/Variants/losers.py:9 msgid "Losers" msgstr "Поддавки" #: lib/pychess/ic/FICSObjects.py:68 lib/pychess/Variants/suicide.py:12 msgid "Suicide" msgstr "Самоубийство" #: lib/pychess/ic/FICSObjects.py:70 lib/pychess/ic/__init__.py:129 msgid "Wild" msgstr "Дикие" #: lib/pychess/ic/FICSObjects.py:117 msgid "Online" msgstr "Подключен" #: lib/pychess/ic/FICSObjects.py:118 lib/pychess/ic/FICSObjects.py:143 msgid "Offline" msgstr "Отключён" #: lib/pychess/ic/FICSObjects.py:133 msgid "Available" msgstr "Доступен" #: lib/pychess/ic/FICSObjects.py:135 msgid "Playing" msgstr "Играет" #: lib/pychess/ic/FICSObjects.py:141 msgid "Idle" msgstr "Бездействие" #: lib/pychess/ic/FICSObjects.py:145 msgid "Examining" msgstr "Исследование" #: lib/pychess/ic/FICSObjects.py:147 msgid "Not Available" msgstr "Недоступен" #: lib/pychess/ic/FICSObjects.py:149 msgid "Running Simul Match" msgstr "Запустить симуляционный матч" #: lib/pychess/ic/FICSObjects.py:151 msgid "In Tournament" msgstr "В турнире" #: lib/pychess/ic/FICSObjects.py:308 lib/pychess/ic/FICSObjects.py:492 #: lib/pychess/ic/ICLounge.py:2278 msgid "Unrated" msgstr "Нерейтинговая" #: lib/pychess/ic/FICSObjects.py:491 lib/pychess/ic/ICLounge.py:670 #: lib/pychess/ic/ICLounge.py:1358 lib/pychess/ic/ICLounge.py:1558 #: lib/pychess/ic/ICLounge.py:2113 msgid "Rated" msgstr "Рейтинговая" #: lib/pychess/ic/FICSObjects.py:498 lib/pychess/ic/ICLounge.py:2098 #, python-format msgid "%d min" msgstr "%d мин" #: lib/pychess/ic/FICSObjects.py:500 #, python-format msgid " + %d sec" msgstr " + %d c" #: lib/pychess/ic/FICSObjects.py:517 #, python-format msgid "%(player)s plays %(color)s" msgstr "%(player)s играет %(color)s" #: lib/pychess/ic/FICSObjects.py:519 lib/pychess/ic/ICLounge.py:909 msgid "white" msgstr "белые" #: lib/pychess/ic/FICSObjects.py:519 lib/pychess/ic/ICLounge.py:909 msgid "black" msgstr "чёрные" #: lib/pychess/ic/FICSObjects.py:565 msgid "This is a continuation of an adjourned match" msgstr "Это продолжение отложенного матча" #: lib/pychess/ic/FICSObjects.py:654 msgid "Opponent Rating" msgstr "Ретинг Соперника" #: lib/pychess/ic/FICSObjects.py:656 msgid "Manual Accept" msgstr "Вручную" #: lib/pychess/ic/FICSObjects.py:810 msgid "Private" msgstr "Приват" #: lib/pychess/ic/FICSObjects.py:930 lib/pychess/ic/ICLounge.py:527 #: lib/pychess/Savers/epd.py:139 msgid "Unknown" msgstr "Неизвестный" #: lib/pychess/ic/ICLogon.py:159 lib/pychess/ic/ICLogon.py:165 msgid "Connection Error" msgstr "Ошибка подключения" #: lib/pychess/ic/ICLogon.py:161 msgid "Log on Error" msgstr "Ошибка авторизации" #: lib/pychess/ic/ICLogon.py:163 msgid "Connection was closed" msgstr "Подключение было закрыто" #: lib/pychess/ic/ICLogon.py:169 msgid "Address Error" msgstr "Ошибка адреса" #: lib/pychess/ic/ICLogon.py:172 msgid "Auto-logout" msgstr "Автовыход" #: lib/pychess/ic/ICLogon.py:173 msgid "You have been logged out because you were idle more than 60 minutes" msgstr "Вы отключены из-за бездействия более 60 минут" #: lib/pychess/ic/ICLounge.py:222 msgid "You have to set kibitz on to see bot messages here." msgstr "" #: lib/pychess/ic/ICLounge.py:241 msgid "" "You may only have 3 outstanding seeks at the same time. If you want to add a" " new seek you must clear your currently active seeks. Clear your seeks?" msgstr "Вы можете себе позволить лишь 3 поиска в одно время. Если вы хотите добавить новый поиск, вы должны отменить ваши активные поиски. Отменить их?" #: lib/pychess/ic/ICLounge.py:258 msgid "You can't touch this! You are examining a game." msgstr "" #: lib/pychess/ic/ICLounge.py:270 msgid " has declined your offer for a match" msgstr "отклоняет ваше предложение матча" #: lib/pychess/ic/ICLounge.py:283 msgid " is censoring you" msgstr "применяет цензуру в отношении вас" #: lib/pychess/ic/ICLounge.py:296 msgid " noplay listing you" msgstr "занёс вас в черный список" #: lib/pychess/ic/ICLounge.py:311 msgid " uses a formula not fitting your match request:" msgstr "использует формулу, неподобающую вашему запросу матча" #: lib/pychess/ic/ICLounge.py:325 msgid "to manual accept" msgstr "для одобрения вручную" #: lib/pychess/ic/ICLounge.py:327 msgid "to automatic accept" msgstr "для автоматического одобрения" #: lib/pychess/ic/ICLounge.py:329 msgid "rating range now" msgstr "диапазон рейтинга" #: lib/pychess/ic/ICLounge.py:330 msgid "Seek updated" msgstr "Поиск обновлен" #: lib/pychess/ic/ICLounge.py:342 msgid "Your seeks have been removed" msgstr "Ваши поиски были удалены" #: lib/pychess/ic/ICLounge.py:363 msgid " has arrived" msgstr "прибывает" #: lib/pychess/ic/ICLounge.py:370 msgid " has departed" msgstr "отбывает" #: lib/pychess/ic/ICLounge.py:374 msgid " is present" msgstr "присутствует" #: lib/pychess/ic/ICLounge.py:391 sidepanel/chatPanel.py:17 msgid "Chat" msgstr "Чат" #: lib/pychess/ic/ICLounge.py:472 sidepanel/bookPanel.py:366 msgid "Win" msgstr "Победа" #: lib/pychess/ic/ICLounge.py:472 sidepanel/bookPanel.py:360 msgid "Draw" msgstr "Ничья" #: lib/pychess/ic/ICLounge.py:472 sidepanel/bookPanel.py:363 msgid "Loss" msgstr "Поражение" #: lib/pychess/ic/ICLounge.py:482 msgid "" "On FICS, your \"Wild\" rating encompasses all of the following variants at " "all time controls:\n" msgstr "На FICS ваш \"Дикий\" рейтинг охватывает все представленные варианты во всех регламентах.\n" #: lib/pychess/ic/ICLounge.py:494 msgid "Sanctions" msgstr "Санкции" #: lib/pychess/ic/ICLounge.py:499 msgid "Email" msgstr "Почта" #: lib/pychess/ic/ICLounge.py:504 msgid "Spent" msgstr "Прошло" #: lib/pychess/ic/ICLounge.py:506 msgid "online in total" msgstr "на связи" #: lib/pychess/ic/ICLounge.py:512 msgid "Ping" msgstr "Отклик" #: lib/pychess/ic/ICLounge.py:517 msgid "Connecting" msgstr "Подключение" #: lib/pychess/ic/ICLounge.py:544 msgid "" "You are currently logged in as a guest.\n" "A guest can't play rated games and therefore isn't able to play as many of the types of matches offered as a registered user. To register an account, go to http://www.freechess.org/Register/index.html." msgstr "Сейчас вы вошли в качестве гостя.\nГости не могут играть в игры на рейтинг, поэтому не могут иметь возможность играть и в другие типы матчей, предлагаемые для зарегистрированных пользователей. Чтобы зарегистрироваться, пройдите на http://www.freechess.org/Register/index.html." #: lib/pychess/ic/ICLounge.py:669 lib/pychess/ic/ICLounge.py:1136 msgid "Name" msgstr "Имя" #: lib/pychess/ic/ICLounge.py:670 lib/pychess/ic/ICLounge.py:1358 #: lib/pychess/ic/ICLounge.py:1558 msgid "Type" msgstr "Тип" #: lib/pychess/ic/ICLounge.py:670 lib/pychess/ic/ICLounge.py:1558 msgid "Clock" msgstr "Часы" #: lib/pychess/ic/ICLounge.py:726 lib/pychess/ic/ICLounge.py:923 #: lib/pychess/Players/Human.py:250 msgid "Accept" msgstr "Принять" #: lib/pychess/ic/ICLounge.py:728 msgid "Assess" msgstr "" #: lib/pychess/ic/ICLounge.py:734 msgid "Archived" msgstr "" #: lib/pychess/ic/ICLounge.py:848 #, python-format msgid "Active seeks: %d" msgstr "Активных запросов: %d" #: lib/pychess/ic/ICLounge.py:897 #, python-format msgid "" " would like to resume your adjourned %(time)s %(gametype)s " "game." msgstr " хочет продолжить отложенную вами игру %(time)s %(gametype)s." #: lib/pychess/ic/ICLounge.py:902 #, python-format msgid "" " challenges you to a %(time)s %(rated)s %(gametype)s game" msgstr " Предлагает вам сыграть игру типа %(time)s %(rated)s %(gametype)s" #: lib/pychess/ic/ICLounge.py:907 #, python-format msgid " where %(player)s plays %(color)s." msgstr " где %(player)s играет %(color)s." #: lib/pychess/ic/ICLounge.py:924 lib/pychess/Players/Human.py:251 msgid "Decline" msgstr "Отклонить" #: lib/pychess/ic/ICLounge.py:1065 msgid " min" msgstr " мин." #: lib/pychess/ic/ICLounge.py:1137 msgid "Status" msgstr "Статус" #: lib/pychess/ic/ICLounge.py:1203 lib/pychess/ic/ICLounge.py:1233 #, python-format msgid "Players: %d" msgstr "Игроков: %d" #: lib/pychess/ic/ICLounge.py:1469 #, python-format msgid "Games running: %d" msgstr "Текущие игры: %d" #: lib/pychess/ic/ICLounge.py:1559 msgid "Date/Time" msgstr "Дата/Время" #: lib/pychess/ic/ICLounge.py:1614 #, python-format msgid "" " with whom you have an adjourned %(timecontrol)s %(gametype)s " "game is online." msgstr " с кем у вас отложенная игра %(timecontrol)s %(gametype)s, сейчас онлайн." #: lib/pychess/ic/ICLounge.py:1635 msgid "Request Continuation" msgstr "Запросить продолжение" #: lib/pychess/ic/ICLounge.py:1637 msgid "Examine Adjourned Game" msgstr "Исследовать отсроченную игру" #: lib/pychess/ic/ICLounge.py:1965 msgid "" "The chain button is disabled because you are logged in as a guest. Guests " "can't establish ratings, and the chain button's state has no effect when " "there is no rating to which to tie \"Opponent Strength\" to" msgstr "Кнопка цепи отключена, потому что вы вошли в качестве гостя. Гости не могут устанавливать рейтинги, и состояние кнопки цепи не учитывается, когда нет рейтинга, к которому привязыают \"Силу противника\"" #: lib/pychess/ic/ICLounge.py:2006 msgid "Challenge: " msgstr "Вызов: " #: lib/pychess/ic/ICLounge.py:2044 msgid "If set you can refuse players accepting your seek" msgstr "" #: lib/pychess/ic/ICLounge.py:2048 lib/pychess/ic/ICLounge.py:2051 msgid "This option is not applicable because you're challenging a player" msgstr "Это неподходящая опция, потому что вы вызываете игрока" #: lib/pychess/ic/ICLounge.py:2064 msgid "Edit Seek: " msgstr "Редактировать запрос: " #: lib/pychess/ic/ICLounge.py:2095 #, python-format msgid "%(minutes)d min + %(gain)d sec/move" msgstr "%(minutes)d мин + %(gain)d с/ход" #: lib/pychess/ic/ICLounge.py:2116 msgid "Manual" msgstr "Вручную" #: lib/pychess/ic/ICLounge.py:2256 msgid "Any strength" msgstr "Любая сила" #: lib/pychess/ic/ICLounge.py:2308 msgid "You can't play rated games because you are logged in as a guest" msgstr "Вы не можете играть рейтинговые игры, потому что вы зашли как гость" #: lib/pychess/ic/ICLounge.py:2312 msgid "You can't play rated games because \"Untimed\" is checked, " msgstr "Вы не можете играть рейтинговую игру, потому что выбрано \"Без времени\", " #: lib/pychess/ic/ICLounge.py:2313 msgid "and on FICS, untimed games can't be rated" msgstr "и на FICS, игры \"Без времени\" не могут быть рейтинговыми" #: lib/pychess/ic/ICLounge.py:2317 msgid "This option is not available because you're challenging a guest, " msgstr "Эта опция недоступна, так как вы вызываете гостя, " #: lib/pychess/ic/ICLounge.py:2318 msgid "and guests can't play rated games" msgstr "и Гости не могут играть рейтинговые игры" #: lib/pychess/ic/ICLounge.py:2332 lib/pychess/Variants/shuffle.py:16 #: lib/pychess/widgets/newGameDialog.py:266 msgid "Shuffle" msgstr "Перемешивать" #: lib/pychess/ic/ICLounge.py:2333 lib/pychess/widgets/newGameDialog.py:267 msgid "Other (standard rules)" msgstr "Другое (стандартные правила)" #: lib/pychess/ic/ICLounge.py:2334 lib/pychess/widgets/newGameDialog.py:268 msgid "Other (non standard rules)" msgstr "Другое (нестандартные правила)" #: lib/pychess/ic/ICLounge.py:2421 msgid "You can't select a variant because \"Untimed\" is checked, " msgstr "Вы не можете выбрать вариант, потому что выбрано \"Без времени\", " #: lib/pychess/ic/ICLounge.py:2422 msgid "and on FICS, untimed games have to be normal chess rules" msgstr "и на FICS, игры \"Без времени\" должны быть Классическими шахматами" #: lib/pychess/ic/ICLounge.py:2454 msgid "Change Tolerance" msgstr "Изменить Толерантность" #: lib/pychess/ic/__init__.py:102 msgid "Examined" msgstr "Исследовано" #: lib/pychess/ic/__init__.py:103 msgid "Other" msgstr "Другие" #: lib/pychess/ic/__init__.py:182 msgid "Administrator" msgstr "Администратор" #: lib/pychess/ic/__init__.py:182 msgid "Blindfold Account" msgstr "Аккаунт Слепое пятно" #: lib/pychess/ic/__init__.py:182 msgid "Computer" msgstr "Компьютер" #: lib/pychess/ic/__init__.py:183 msgid "Team Account" msgstr "Командный аккаунт" #: lib/pychess/ic/__init__.py:183 msgid "Unregistered" msgstr "Без регистрации" #: lib/pychess/ic/__init__.py:183 msgid "Chess Advisor" msgstr "Шахматный советчик" #: lib/pychess/ic/__init__.py:184 msgid "Service Representative" msgstr "Служебный представитель" #: lib/pychess/ic/__init__.py:184 msgid "Tournament Director" msgstr "Директор турнира" #: lib/pychess/ic/__init__.py:184 msgid "Mamer Manager" msgstr "Управляющий мамером" #: lib/pychess/ic/__init__.py:185 msgid "Grand Master" msgstr "Гроссмейстер" #: lib/pychess/ic/__init__.py:185 msgid "International Master" msgstr "Международный Мастер" #: lib/pychess/ic/__init__.py:185 msgid "FIDE Master" msgstr "Мастер ФИДЕ" #: lib/pychess/ic/__init__.py:186 msgid "Woman Grand Master" msgstr "Женский Гроссмейстер" #: lib/pychess/ic/__init__.py:186 msgid "Woman International Master" msgstr "Женский Международный Мастер" #: lib/pychess/ic/__init__.py:186 msgid "Woman FIDE Master" msgstr "Женский мастер FIDE" #: lib/pychess/ic/__init__.py:187 msgid "Dummy Account" msgstr "Аккаунт чучело" #: lib/pychess/ic/__init__.py:191 msgid "*" msgstr "*" #: lib/pychess/ic/__init__.py:191 lib/pychess/Utils/repr.py:14 msgid "B" msgstr "В" #: lib/pychess/ic/__init__.py:191 msgid "C" msgstr "C" #: lib/pychess/ic/__init__.py:192 msgid "T" msgstr "T" #: lib/pychess/ic/__init__.py:192 msgid "U" msgstr "U" #: lib/pychess/ic/__init__.py:192 msgid "CA" msgstr "CA" #: lib/pychess/ic/__init__.py:193 msgid "SR" msgstr "SR" #: lib/pychess/ic/__init__.py:193 msgid "TD" msgstr "TD" #: lib/pychess/ic/__init__.py:193 msgid "TM" msgstr "TM" #: lib/pychess/ic/__init__.py:194 msgid "GM" msgstr "GM" #: lib/pychess/ic/__init__.py:194 msgid "IM" msgstr "IM" #: lib/pychess/ic/__init__.py:194 msgid "FM" msgstr "FM" #: lib/pychess/ic/__init__.py:195 msgid "WGM" msgstr "WGM" #: lib/pychess/ic/__init__.py:195 msgid "WIM" msgstr "WIM" #: lib/pychess/ic/__init__.py:195 msgid "WFM" msgstr "WFM" #: lib/pychess/ic/__init__.py:195 msgid "D" msgstr "D" #: lib/pychess/ic/__init__.py:195 msgid "H" msgstr "" #: lib/pychess/ic/__init__.py:195 msgid "CM" msgstr "" #: lib/pychess/ic/__init__.py:195 msgid "FA" msgstr "" #: lib/pychess/ic/__init__.py:195 msgid "NM" msgstr "" #: lib/pychess/Players/CECPEngine.py:857 #, python-format msgid "The engine %s reports an error:" msgstr "Движок %s сообщил об ошибке:" #: lib/pychess/Players/Human.py:20 msgid "Your opponent has offered you a draw." msgstr "Ваш соперник предложил вам ничью." #: lib/pychess/Players/Human.py:21 msgid "" "Your opponent has offered you a draw. If you accept this offer, the game " "will end with a score of 1/2 - 1/2." msgstr "Ваш соперник предложил ничью. Если вы примите предложение, то игра закончится со счётом 1/2 - 1/2." #: lib/pychess/Players/Human.py:23 msgid "Your opponent wants to abort the game." msgstr "Ваш соперник хочет отменить игру." #: lib/pychess/Players/Human.py:24 msgid "" "Your opponent has asked that the game be aborted. If you accept this offer, " "the game will end with no rating change." msgstr "Ваш соперник предложил прервать игру. Если вы примете предложение, игра закончится без изменения рейтинга." #: lib/pychess/Players/Human.py:26 msgid "Your opponent wants to adjourn the game." msgstr "Ваш соперник хочет отложить игру." #: lib/pychess/Players/Human.py:27 msgid "" "Your opponent has asked that the game be adjourned. If you accept this " "offer, the game will be adjourned and you can resume it later (when your " "opponent is online and both players agree to resume)." msgstr "Ваш соперник предложил отложить игру. Если вы примете предложение, игру можно будет продолжить позже (когда соперник будет в сети и оба игрока согласятся продолжить игру)." #: lib/pychess/Players/Human.py:29 #, python-format msgid "Your opponent wants to undo %s move(s)." msgstr "Ваш соперник хочет отменить %s ход(ов)." #: lib/pychess/Players/Human.py:30 #, python-format msgid "" "Your opponent has asked that the last %s move(s) be undone. If you accept " "this offer, the game will continue from the earlier position." msgstr "Ваш соперник предложил отменить последние %s ходов. Если вы примете предложение, игра продолжится с предыдущей позиции." #: lib/pychess/Players/Human.py:32 msgid "Your opponent wants to pause the game." msgstr "Ваш соперник хочет приостановить игру." #: lib/pychess/Players/Human.py:33 msgid "" "Your opponent has asked that the game be paused. If you accept this offer, " "the game clock will be paused until both players agree to resume the game." msgstr "Ваш соперник предложил приостановить игру. Если вы примете предложение, игровые часы будут приостановлены, пока оба игрока не будут согласны продолжить игру." #: lib/pychess/Players/Human.py:35 msgid "Your opponent wants to resume the game." msgstr "Ваш соперник хочет продолжить игру." #: lib/pychess/Players/Human.py:36 msgid "" "Your opponent has asked that the game be resumed. If you accept this offer, " "the game clock will continue from where it was paused." msgstr "Ваш соперник предложил продолжить игру. Если вы примете предложение, часы продолжат отсчёт с момента их приостановки." #: lib/pychess/Players/Human.py:40 msgid "The resignation" msgstr "Сдача партии" #: lib/pychess/Players/Human.py:41 msgid "The flag call" msgstr "Вызвать флаг" #: lib/pychess/Players/Human.py:42 msgid "The draw offer" msgstr "Предложение ничьей" #: lib/pychess/Players/Human.py:43 msgid "The abort offer" msgstr "Предложение прервать" #: lib/pychess/Players/Human.py:44 msgid "The adjourn offer" msgstr "Предложение отложить" #: lib/pychess/Players/Human.py:45 msgid "The pause offer" msgstr "Предложение приостановить" #: lib/pychess/Players/Human.py:46 msgid "The resume offer" msgstr "Предложение продолжить" #: lib/pychess/Players/Human.py:47 msgid "The offer to switch sides" msgstr "Предложение поменяться местами" #: lib/pychess/Players/Human.py:48 msgid "The takeback offer" msgstr "Предложение отменить ход" #: lib/pychess/Players/Human.py:52 msgid "resign" msgstr "сдаться" #: lib/pychess/Players/Human.py:53 msgid "call your opponents flag" msgstr "бросить флаг противника" #: lib/pychess/Players/Human.py:54 msgid "offer a draw" msgstr "предложить ничью" #: lib/pychess/Players/Human.py:55 msgid "offer an abort" msgstr "предложить прервать" #: lib/pychess/Players/Human.py:56 msgid "offer to adjourn" msgstr "предложить отложить партию" #: lib/pychess/Players/Human.py:57 msgid "offer a pause" msgstr "предложить приостановку" #: lib/pychess/Players/Human.py:58 msgid "offer to resume" msgstr "предложить продолжить" #: lib/pychess/Players/Human.py:59 msgid "offer to switch sides" msgstr "предложить поменяться местами" #: lib/pychess/Players/Human.py:60 msgid "offer a takeback" msgstr "предложить отменить ход" #: lib/pychess/Players/Human.py:61 msgid "ask your opponent to move" msgstr "попросить противника сделать ход" #: lib/pychess/Players/Human.py:66 msgid "Your opponent is not out of time." msgstr "У противника не истекло время." #: lib/pychess/Players/Human.py:68 msgid "The clock hasn't been started yet." msgstr "Часы ещё не запущены." #: lib/pychess/Players/Human.py:70 msgid "You can't switch colors during the game." msgstr "Вы не можете сменить цвета во время игры." #: lib/pychess/Players/Human.py:72 msgid "You have tried to undo too many moves." msgstr "Вы пытаетесь отменить слишком много ходов." #: lib/pychess/Players/Human.py:180 msgid "Your opponent asks you to hurry!" msgstr "Противник просит вас поторопиться!" #: lib/pychess/Players/Human.py:181 msgid "" "Generally this means nothing, as the game is time-based, but if you want to " "please your opponent, perhaps you should get going." msgstr "В общих чертах, это ничего не значит, потому как игра зависит от времени, но если вы хотите попросить противника, возможно вам стоит продолжить." #: lib/pychess/Players/Human.py:259 #, python-format msgid "%s was declined by your opponent" msgstr "%s было отклонено противником" #: lib/pychess/Players/Human.py:260 #, python-format msgid "Resend %s?" msgstr "Переслать %s?" #: lib/pychess/Players/Human.py:267 msgid "Resend" msgstr "Пересылка" #: lib/pychess/Players/Human.py:275 #, python-format msgid "%s was withdrawn by your opponent" msgstr "%s был снят вашим оппонентом" #: lib/pychess/Players/Human.py:276 msgid "Your opponent seems to have changed their mind." msgstr "Кажется, ваш противник передумал." #: lib/pychess/Players/Human.py:290 #, python-format msgid "Unable to accept %s" msgstr "Не возможно принять %s" #: lib/pychess/Players/Human.py:291 msgid "Probably because it has been withdrawn." msgstr "Возможно, потому что он покинул партию." #: lib/pychess/Players/Human.py:298 #, python-format msgid "%s returns an error" msgstr "%s возвращает ошибку" #: lib/pychess/Savers/chessalpha2.py:12 msgid "Chess Alpha 2 Diagram" msgstr "Диаграмма Chess Alpha 2" #: lib/pychess/Savers/chesspastebin.py:39 msgid "Game shared at " msgstr "" #: lib/pychess/Savers/chesspastebin.py:41 msgid "(Link is available on clipboard.)" msgstr "" #: lib/pychess/Savers/database.py:19 msgid "PyChess database" msgstr "База данных PyChess" #: lib/pychess/Savers/epd.py:12 msgid "Chess Position" msgstr "Шахматная позиция" #: lib/pychess/Savers/fen.py:12 msgid "Simple Chess Position" msgstr "Forsyth-Edwards Notation" #: lib/pychess/Savers/fen.py:44 lib/pychess/Savers/pgn.py:329 msgid "The game can't be loaded, because of an error parsing FEN" msgstr "Не удалось загрузить игру из-за ошибки синтаксического разбора FEN" #: lib/pychess/Savers/pgnbase.py:100 #, python-format msgid "" "The game can't be read to end, because of an error parsing move %(moveno)s " "'%(notation)s'." msgstr "Не удаётся прочитать игру до конца из-за ошибки синтаксического разбора хода %(moveno)s '%(notation)s'." #: lib/pychess/Savers/pgnbase.py:102 #, python-format msgid "The move failed because %s." msgstr "Ход не совершен из-за %s." #: lib/pychess/Savers/pgnbase.py:110 #, python-format msgid "Error parsing move %(moveno)s %(mstr)s" msgstr "Ошибка распознавания хода %(moveno)s %(mstr)s" #: lib/pychess/Savers/pgn.py:28 msgid "Chess Game" msgstr "Portable Game Notation" #: lib/pychess/Savers/pgn.py:362 msgid "Invalid move." msgstr "Недопустимый ход." #: lib/pychess/Savers/png.py:15 msgid "Png image" msgstr "Png изображение" #: lib/pychess/System/ping.py:31 msgid "Destination Host Unreachable" msgstr "Целевой хост недоступен" #: lib/pychess/System/ping.py:74 msgid "Died" msgstr "Мертв" #: lib/pychess/Utils/GameModel.py:147 msgid "Local Event" msgstr "Локальный турнир" #: lib/pychess/Utils/GameModel.py:148 msgid "Local Site" msgstr "Локальное место" #: lib/pychess/Utils/repr.py:12 msgid "Pawn" msgstr "пешку" #: lib/pychess/Utils/repr.py:14 msgid "P" msgstr "P" #: lib/pychess/Utils/repr.py:14 msgid "N" msgstr "N" #: lib/pychess/Utils/repr.py:14 msgid "R" msgstr "R" #: lib/pychess/Utils/repr.py:14 msgid "Q" msgstr "Q" #: lib/pychess/Utils/repr.py:14 msgid "K" msgstr "K" #: lib/pychess/Utils/repr.py:17 msgid "The game ended in a draw" msgstr "Партия закончилась вничью" #: lib/pychess/Utils/repr.py:18 #, python-format msgid "%(white)s won the game" msgstr "%(white)s одерживает победу," #: lib/pychess/Utils/repr.py:19 #, python-format msgid "%(black)s won the game" msgstr "%(black)s одерживает победу," #: lib/pychess/Utils/repr.py:20 msgid "The game has been killed" msgstr "Партия принудительно завершена" #: lib/pychess/Utils/repr.py:21 msgid "The game has been adjourned" msgstr "Партия перенесена" #: lib/pychess/Utils/repr.py:22 msgid "The game has been aborted" msgstr "Партия прервана" #: lib/pychess/Utils/repr.py:26 msgid "Because neither player has sufficient material to mate" msgstr "потому что обоим игрокам не хватает материала, чтобы поставить мат" #: lib/pychess/Utils/repr.py:27 msgid "Because the same position was repeated three times in a row" msgstr "потому что одна и та же позиция повторилась три раза подряд" #: lib/pychess/Utils/repr.py:28 msgid "Because the last 50 moves brought nothing new" msgstr "потому что последние 50 ходов не принесли ничего нового" #: lib/pychess/Utils/repr.py:29 msgid "Because both players ran out of time" msgstr "потому что у обоих соперников кончилось время" #: lib/pychess/Utils/repr.py:30 #, python-format msgid "Because %(mover)s stalemated" msgstr "потому что %(mover)s в пате" #: lib/pychess/Utils/repr.py:31 msgid "Because both players agreed to a draw" msgstr "потому что оба соперника согласились на ничью" #: lib/pychess/Utils/repr.py:32 lib/pychess/Utils/repr.py:42 msgid "Because of adjudication by an admin" msgstr "потому что администратор перенёс игру" #: lib/pychess/Utils/repr.py:33 msgid "Because the game exceed the max length" msgstr "потому что игра превысила максимальную длительность" #: lib/pychess/Utils/repr.py:34 #, python-format msgid "" "Because %(white)s ran out of time and %(black)s has insufficient material to" " mate" msgstr "потому что у %(white)s кончилось время, а у %(black)s не хватает материала, чтобы поставить мат" #: lib/pychess/Utils/repr.py:35 #, python-format msgid "" "Because %(black)s ran out of time and %(white)s has insufficient material to" " mate" msgstr "потому что у %(black)s кончилось время, а у %(white)s не хватает материала, чтобы поставить мат" #: lib/pychess/Utils/repr.py:36 msgid "Because both players have the same amount of pieces" msgstr "потому что у игроков одинаковое число фигур" #: lib/pychess/Utils/repr.py:38 #, python-format msgid "Because %(loser)s resigned" msgstr "потому что %(loser)s сдаётся" #: lib/pychess/Utils/repr.py:39 #, python-format msgid "Because %(loser)s ran out of time" msgstr "потому что у %(loser)s кончилось время" #: lib/pychess/Utils/repr.py:40 #, python-format msgid "Because %(loser)s was checkmated" msgstr "потому что ставит мат %(loser)s" #: lib/pychess/Utils/repr.py:41 #, python-format msgid "Because %(loser)s disconnected" msgstr "потому что %(loser)s отключается от сети" #: lib/pychess/Utils/repr.py:43 #, python-format msgid "Because %(winner)s has fewer pieces" msgstr "потому что у %(winner)s меньше фигур" #: lib/pychess/Utils/repr.py:44 #, python-format msgid "Because %(winner)s lost all pieces" msgstr "потому что %(winner)s потерял все фигуры" #: lib/pychess/Utils/repr.py:45 #, python-format msgid "Because %(loser)s king exploded" msgstr "Потому что король %(loser)s взорван" #: lib/pychess/Utils/repr.py:46 #, python-format msgid "Because %(winner)s king reached the center" msgstr "" #: lib/pychess/Utils/repr.py:47 #, python-format msgid "Because %(winner)s was giving check 3 times" msgstr "" #: lib/pychess/Utils/repr.py:49 msgid "Because a player lost connection" msgstr "потому что игрок потерял связь с сервером" #: lib/pychess/Utils/repr.py:50 msgid "Because both players agreed to an adjournment" msgstr "потому что оба соперника согласились перенести партию" #: lib/pychess/Utils/repr.py:51 msgid "Because the server was shut down" msgstr "потому что сервер отключился" #: lib/pychess/Utils/repr.py:52 msgid "" "Because a player lost connection and the other player requested adjournment" msgstr "потому что один игрок отключился, а второй предложил перенести партию" #: lib/pychess/Utils/repr.py:53 #, python-format msgid "" "Because %(black)s lost connection to the server and %(white)s requested " "adjournment" msgstr "потому что %(black)s отключился, а %(white)s предложил перенести партию" #: lib/pychess/Utils/repr.py:54 #, python-format msgid "" "Because %(white)s lost connection to the server and %(black)s requested " "adjournment" msgstr "потому что %(white)s отключился, а %(black)s предложил перенести партию" #: lib/pychess/Utils/repr.py:55 #, python-format msgid "Because %(white)s lost connection to the server" msgstr "потому что %(white)s отключился" #: lib/pychess/Utils/repr.py:56 #, python-format msgid "Because %(black)s lost connection to the server" msgstr "потому что %(black)s отключился" #: lib/pychess/Utils/repr.py:58 msgid "Because of adjudication by an admin. No rating changes have occurred." msgstr "потому что администратор перенёс игру; рейтинг не изменился" #: lib/pychess/Utils/repr.py:59 msgid "" "Because both players agreed to abort the game. No rating changes have " "occurred." msgstr "потому что оба соперника согласились прервать игру; рейтинг не изменился" #: lib/pychess/Utils/repr.py:60 msgid "Because of courtesy by a player. No rating changes have occurred." msgstr "из-за любезности игрока; рейтинг не изменился" #: lib/pychess/Utils/repr.py:61 msgid "" "Because a player aborted the game. Either player can abort the game without " "the other's consent before the second move. No rating changes have occurred." msgstr "потому что игрок прервал игру без согласия соперника - это разрешается до второго хода; рейтинг не изменился" #: lib/pychess/Utils/repr.py:62 msgid "" "Because a player disconnected and there are too few moves to warrant " "adjournment. No rating changes have occurred." msgstr "потому что игрок отключился, а для переноса партии было сделано слишком мало ходов; рейтинг не изменился" #: lib/pychess/Utils/repr.py:63 msgid "Because the server was shut down. No rating changes have occurred." msgstr "потому что сервер отключился; рейтинг не изменился" #: lib/pychess/Utils/repr.py:65 #, python-format msgid "Because the %(white)s engine died" msgstr "Потому что движок %(white)s умер" #: lib/pychess/Utils/repr.py:66 #, python-format msgid "Because the %(black)s engine died" msgstr "Потому что движок %(black)s сдох" #: lib/pychess/Utils/repr.py:67 msgid "Because the connection to the server was lost" msgstr "потому что соединение с сервером потеряно" #: lib/pychess/Utils/repr.py:68 msgid "The reason is unknown" msgstr "Причина неизвестна" #: lib/pychess/Utils/TimeModel.py:229 msgid "min" msgstr "мин" #: lib/pychess/Utils/TimeModel.py:231 msgid "sec" msgstr "с" #: lib/pychess/Variants/asean.py:12 msgid "" "ASEAN: http://www.ncf-" "phil.org/downloadables/2014/May/Asean_chess/Laws_of_ASEAN_Chess_2011_Nov_26.doc" msgstr "" #: lib/pychess/Variants/asean.py:13 msgid "ASEAN" msgstr "" #: lib/pychess/Variants/asean.py:33 msgid "Makruk: http://en.wikipedia.org/wiki/Makruk" msgstr "" #: lib/pychess/Variants/asean.py:34 msgid "Makruk" msgstr "" #: lib/pychess/Variants/asean.py:60 msgid "Cambodian: http://www.khmerinstitute.org/culture/ok.html" msgstr "" #: lib/pychess/Variants/asean.py:61 msgid "Cambodian" msgstr "" #: lib/pychess/Variants/asean.py:86 msgid "" "Ai-Wok: http://www.open-" "aurec.com/wbforum/viewtopic.php?p=199364&sid=20963a1de2c164050de019e5ed6bf7c4#p199364" msgstr "" #: lib/pychess/Variants/asean.py:87 msgid "Ai-Wok" msgstr "" #: lib/pychess/Variants/asean.py:111 msgid "Sittuyin: http://en.wikipedia.org/wiki/Sittuyin" msgstr "" #: lib/pychess/Variants/asean.py:112 msgid "Sittuyin" msgstr "" #: lib/pychess/Variants/asymmetricrandom.py:12 msgid "" "FICS wild/4: http://www.freechess.org/Help/HelpFiles/wild.html\n" "* Randomly chosen pieces (two queens or three rooks possible)\n" "* Exactly one king of each color\n" "* Pieces placed randomly behind the pawns, SUBJECT TO THE CONSTRAINT THAT THE BISHOPS ARE BALANCED\n" "* No castling\n" "* Black's arrangement DOES NOT mirrors white's" msgstr "FICS wild/4: http://www.freechess.org/Help/HelpFiles/wild.html\n* Случайные фигуры (возможно две королевы или три пешки)\n* По одному королю каждого цвета\n* Фигуры располагаются случайным образом за пешками, ДЕЙСТВУЕТ ОГРАНИЧЕНИЕ - ЕПИСКОПЫ СБАЛАНСИРОВАНЫ\n* Без рокировки\n* Расположение черных НЕ отражает расположение белых" #: lib/pychess/Variants/asymmetricrandom.py:18 msgid "Asymmetric Random" msgstr "Асимметричные случайные" #: lib/pychess/Variants/atomic.py:14 msgid "FICS atomic: http://www.freechess.org/Help/HelpFiles/atomic.html" msgstr "FICS атомный: http://www.freechess.org/Help/HelpFiles/atomic.html" #: lib/pychess/Variants/blindfold.py:7 msgid "" "Classic chess rules with hidden figurines\n" "http://en.wikipedia.org/wiki/Blindfold_chess" msgstr "Классические правила шахмат со скрытыми фигуринами\nhttp://en.wikipedia.org/wiki/Blindfold_chess" #: lib/pychess/Variants/blindfold.py:9 #: lib/pychess/widgets/newGameDialog.py:264 msgid "Blindfold" msgstr "Вслепую" #: lib/pychess/Variants/blindfold.py:18 msgid "" "Classic chess rules with hidden pawns\n" "http://en.wikipedia.org/wiki/Blindfold_chess" msgstr "Классические правила шахмат со скрытыми пешками\nhttp://en.wikipedia.org/wiki/Blindfold_chess" #: lib/pychess/Variants/blindfold.py:20 msgid "Hidden pawns" msgstr "Скрытые пешки" #: lib/pychess/Variants/blindfold.py:29 msgid "" "Classic chess rules with hidden pieces\n" "http://en.wikipedia.org/wiki/Blindfold_chess" msgstr "Классические правила шахмат со скрытыми фигурами\nhttp://en.wikipedia.org/wiki/Blindfold_chess" #: lib/pychess/Variants/blindfold.py:31 msgid "Hidden pieces" msgstr "Скрытые фигуры" #: lib/pychess/Variants/blindfold.py:40 msgid "" "Classic chess rules with all pieces white\n" "http://en.wikipedia.org/wiki/Blindfold_chess" msgstr "Классические правила шахмат со всеми белыми фигурами\nhttp://en.wikipedia.org/wiki/Blindfold_chess" #: lib/pychess/Variants/blindfold.py:42 msgid "All white" msgstr "Все белые" #: lib/pychess/Variants/bughouse.py:8 msgid "FICS bughouse: http://www.freechess.org/Help/HelpFiles/bughouse.html" msgstr "FICS багхаус: http://www.freechess.org/Help/HelpFiles/bughouse.html" #: lib/pychess/Variants/corner.py:12 msgid "" "http://brainking.com/en/GameRules?tp=2\n" "* Placement of the pieces on the 1st and 8th row are randomized\n" "* The king is in the right hand corner\n" "* Bishops must start on opposite color squares\n" "* Black's starting position is obtained by rotating white's position 180 degrees around the board's center\n" "* No castling" msgstr "http://brainking.com/en/GameRules?tp=2\n* Расположение фигур на 1ой и 8ой строках случайное\n* Король в углу по правую руку\n* Епископы должны начинать на квадратах противоположных цветов\n* Позиция черных обеспечивается поворотом позиции белых на 180 градусов относительно центра доски\n* Без рокировки" #: lib/pychess/Variants/corner.py:18 msgid "Corner" msgstr "Уголки" #: lib/pychess/Variants/crazyhouse.py:8 msgid "" "FICS crazyhouse: http://www.freechess.org/Help/HelpFiles/crazyhouse.html" msgstr "FICS дурдом: http://www.freechess.org/Help/HelpFiles/crazyhouse.html" #: lib/pychess/Variants/euroshogi.py:9 msgid "EuroShogi: http://en.wikipedia.org/wiki/EuroShogi" msgstr "" #: lib/pychess/Variants/euroshogi.py:10 msgid "EuroShogi" msgstr "" #: lib/pychess/Variants/fischerandom.py:18 msgid "" "http://en.wikipedia.org/wiki/Chess960\n" "FICS wild/fr: http://www.freechess.org/Help/HelpFiles/wild.html" msgstr "http://en.wikipedia.org/wiki/Chess960\nFICS wild/fr: http://www.freechess.org/Help/HelpFiles/wild.html" #: lib/pychess/Variants/fischerandom.py:20 msgid "Fischer Random" msgstr "Фишеровские случайные" #: lib/pychess/Variants/kingofthehill.py:8 msgid "" "Bringing your king legally to the center (e4, d4, e5, d5) instantly wins the game!\n" "Normal rules apply in other cases and checkmate also ends the game." msgstr "" #: lib/pychess/Variants/kingofthehill.py:10 msgid "King of the hill" msgstr "" #: lib/pychess/Variants/knightodds.py:8 msgid "One player starts with one less knight piece" msgstr "У одного из игроков на одного коня меньше" #: lib/pychess/Variants/knightodds.py:9 msgid "Knight odds" msgstr "Неравенство коней" #: lib/pychess/Variants/losers.py:8 msgid "FICS losers: http://www.freechess.org/Help/HelpFiles/losers_chess.html" msgstr "Проигравшие FICS: http://www.freechess.org/Help/HelpFiles/losers_chess.html" #: lib/pychess/Variants/normal.py:4 msgid "" "Classic chess rules\n" "http://en.wikipedia.org/wiki/Chess" msgstr "Классические шахматные правила\nhttp://en.wikipedia.org/wiki/Chess" #: lib/pychess/Variants/normal.py:6 lib/pychess/widgets/newGameDialog.py:157 msgid "Normal" msgstr "Классика" #: lib/pychess/Variants/pawnodds.py:8 msgid "One player starts with one less pawn piece" msgstr "У одного из игроков на одну пешку меньше" #: lib/pychess/Variants/pawnodds.py:9 msgid "Pawn odds" msgstr "Неравенство пешек" #: lib/pychess/Variants/pawnspassed.py:11 msgid "" "FICS wild/8a: http://www.freechess.org/Help/HelpFiles/wild.html\n" "White pawns start on 5th rank and black pawns on the 4th rank" msgstr "FICS wild/8a: http://www.freechess.org/Help/HelpFiles/wild.html\nБелые пешки начинают на 5ом ранге и черные пешки на 4ом ранге" #: lib/pychess/Variants/pawnspassed.py:13 msgid "Pawns Passed" msgstr "Проходные пешки" #: lib/pychess/Variants/pawnspushed.py:10 msgid "" "FICS wild/8: http://www.freechess.org/Help/HelpFiles/wild.html\n" "Pawns start on 4th and 5th ranks rather than 2nd and 7th" msgstr "FICS wild/8: http://www.freechess.org/Help/HelpFiles/wild.html\nПешки начинают на 4ом и 5ом ранге, вместо 2го и 7го" #: lib/pychess/Variants/pawnspushed.py:12 msgid "Pawns Pushed" msgstr "Проведенные пешки" #: lib/pychess/Variants/queenodds.py:8 msgid "One player starts with one less queen piece" msgstr "У одного из игроков на одну королеву меньше" #: lib/pychess/Variants/queenodds.py:9 msgid "Queen odds" msgstr "Неравенство королев" #: lib/pychess/Variants/randomchess.py:11 msgid "" "FICS wild/3: http://www.freechess.org/Help/HelpFiles/wild.html\n" "* Randomly chosen pieces (two queens or three rooks possible)\n" "* Exactly one king of each color\n" "* Pieces placed randomly behind the pawns\n" "* No castling\n" "* Black's arrangement mirrors white's" msgstr "FICS wild/3: http://www.freechess.org/Help/HelpFiles/wild.html\n* Случайные фигуры (возможно две королевы или три пешки)\n* Точно по одному королю каждого цвета\n* Фигуры расположены случайно позади пешек\n* Без рокировки\n* Расположение черных отражает расположение белых" #: lib/pychess/Variants/randomchess.py:17 #: lib/pychess/widgets/TaskerManager.py:155 msgid "Random" msgstr "Случайный" #: lib/pychess/Variants/rookodds.py:8 msgid "One player starts with one less rook piece" msgstr "У одного из игроков на одну ладью меньше" #: lib/pychess/Variants/rookodds.py:9 msgid "Rook odds" msgstr "Неравенство ладей" #: lib/pychess/Variants/shuffle.py:11 msgid "" "xboard nocastle: http://home.hccnet.nl/h.g.muller/engine-intf.html#8\n" "FICS wild/2: http://www.freechess.org/Help/HelpFiles/wild.html\n" "* Random arrangement of the pieces behind the pawns\n" "* No castling\n" "* Black's arrangement mirrors white's" msgstr "xboard без рокировки: http://home.hccnet.nl/h.g.muller/engine-intf.html#8\nFICS wild/2: http://www.freechess.org/Help/HelpFiles/wild.html\n* Фигуры расположены случайным образом за пешками\n* Нет рокировки\n* Расположение черных отражает расположение белых" #: lib/pychess/Variants/suicide.py:11 msgid "" "FICS suicide: http://www.freechess.org/Help/HelpFiles/suicide_chess.html" msgstr "FICS суицид: http://www.freechess.org/Help/HelpFiles/suicide_chess.html" #: lib/pychess/Variants/theban.py:10 msgid "" "Variant developed by Kai Laskos: " "http://talkchess.com/forum/viewtopic.php?t=40990" msgstr "Вариант, разработанный Кайем Ласкосом: http://talkchess.com/forum/viewtopic.php?t=40990" #: lib/pychess/Variants/theban.py:11 msgid "Theban" msgstr "Фив" #: lib/pychess/Variants/threecheck.py:10 msgid "Win by giving check 3 times" msgstr "" #: lib/pychess/Variants/threecheck.py:11 msgid "Three-check" msgstr "" #: lib/pychess/Variants/upsidedown.py:10 msgid "" "FICS wild/5: http://www.freechess.org/Help/HelpFiles/wild.html\n" "http://en.wikipedia.org/wiki/Chess_variant#Chess_with_different_starting_positions\n" "Pawns start on their 7th rank rather than their 2nd rank!" msgstr "FICS wild/5: http://www.freechess.org/Help/HelpFiles/wild.html\nhttp://en.wikipedia.org/wiki/Chess_variant#Chess_with_different_starting_positions\nПешки начинают на их 7ом ранге в отличие от их 2го ранга!" #: lib/pychess/Variants/upsidedown.py:13 msgid "Upside Down" msgstr "Сверху вниз" #: lib/pychess/Variants/wildcastle.py:10 msgid "" "xboard wildcastle http://home.hccnet.nl/h.g.muller/engine-intf.html#8\n" "FICS wild/0: http://www.freechess.org/Help/HelpFiles/wild.html\n" "* White has the typical set-up at the start.\n" "* Black's pieces are the same, except that the King and Queen are reversed,\n" "* so they are not on the same files as White's King and Queen.\n" "* Castling is done similarly to normal chess:\n" "* o-o-o indicates long castling and o-o short castling." msgstr "Дикий замок xboard http://home.hccnet.nl/h.g.muller/engine-intf.html#8\nFICS wild/0: http://www.freechess.org/Help/HelpFiles/wild.html\n* Белые имеют типичную расстановку в начале.\n* Черные фигуры тоже, кроме того, что Король и Королева меняются местами,\n* таким образом они не в таком же положении как Король и Королева белых.\n* Рокировка происходит как в нормальных шахматах:\n* o-o-o указывает на длинную рокировку и o-o указывает на короткую." #: lib/pychess/Variants/wildcastle.py:17 msgid "Wildcastle" msgstr "Дикий замок" #: lib/pychess/Variants/wildcastleshuffle.py:11 msgid "" "xboard wildcastle http://home.hccnet.nl/h.g.muller/engine-intf.html#8\n" "FICS wild/1: http://www.freechess.org/Help/HelpFiles/wild.html\n" "* In this variant both sides have the same set of pieces as in normal chess.\n" "* The white king starts on d1 or e1 and the black king starts on d8 or e8,\n" "* and the rooks are in their usual positions.\n" "* Bishops are always on opposite colors.\n" "* Subject to these constraints the position of the pieces on their first ranks is random.\n" "* Castling is done similarly to normal chess:\n" "* o-o-o indicates long castling and o-o short castling." msgstr "Дикий замок xboard http://home.hccnet.nl/h.g.muller/engine-intf.html#8\nFICS wild/1: http://www.freechess.org/Help/HelpFiles/wild.html\n* В этом варианте обе стороны имеют одинаковый набор фигур, как и в нормальной игре.\n* Белый король начинает на d1 или e1 и черный король начинает на d8 или e8,\n* и пешки находятся в своем обычном положении.\n* Епископы всегда на противоположных цветах.\n* С учетом этих ограничений положение фигур на их первом ранге является случайным.\n* Рокировка происходит как в нормальных шахматах:\n* o-o-o указывает на длинную рокировку и o-o указывает на короткую." #: lib/pychess/Variants/wildcastleshuffle.py:20 msgid "Wildcastle shuffle" msgstr "Дикий замок вперемешку" #: lib/pychess/widgets/analyzegameDialog.py:85 msgid "Game analyzing in progress..." msgstr "" #: lib/pychess/widgets/analyzegameDialog.py:86 msgid "Do you want to abort it?" msgstr "" #: lib/pychess/widgets/analyzegameDialog.py:95 #: lib/pychess/widgets/gamewidget.py:202 lib/pychess/widgets/gamewidget.py:320 msgid "Abort" msgstr "Прервать" #: lib/pychess/widgets/ChatView.py:125 msgid "Observers" msgstr "" #: lib/pychess/widgets/ChatWindow.py:222 msgid "You have opened no conversations yet" msgstr "У вас нет открытых бесед пока" #: lib/pychess/widgets/ChatWindow.py:254 msgid "Only registered users may talk to this channel" msgstr "В этом канале могут общаться только зарегистрированные пользователи" #: lib/pychess/widgets/ChatWindow.py:312 msgid "No conversation's selected" msgstr "Нет выбранных бесед" #: lib/pychess/widgets/ChatWindow.py:350 msgid "Loading player data" msgstr "Загрузка данных игрока" #: lib/pychess/widgets/ChatWindow.py:400 msgid "Receiving list of players" msgstr "Получение списка игроков" #: lib/pychess/widgets/ChatWindow.py:518 msgid "Friends" msgstr "" #: lib/pychess/widgets/ChatWindow.py:529 msgid "Admin" msgstr "" #: lib/pychess/widgets/ChatWindow.py:540 msgid "More channels" msgstr "Больше каналов" #: lib/pychess/widgets/ChatWindow.py:548 msgid "More players" msgstr "Больше игроков" #: lib/pychess/widgets/ChatWindow.py:558 msgid "Computers" msgstr "" #: lib/pychess/widgets/ChatWindow.py:568 msgid "BlindFold" msgstr "" #: lib/pychess/widgets/ChatWindow.py:578 msgid "Guests" msgstr "" #: lib/pychess/widgets/ChatWindow.py:805 msgid "Conversations" msgstr "Беседы" #: lib/pychess/widgets/ChatWindow.py:807 msgid "Conversation info" msgstr "Информация о беседе" #: lib/pychess/widgets/enginesDialog.py:152 msgid "Select engine" msgstr "Выбрать движок" #: lib/pychess/widgets/enginesDialog.py:156 msgid "Executable files" msgstr "" #: lib/pychess/widgets/enginesDialog.py:176 #: lib/pychess/widgets/enginesDialog.py:210 #: lib/pychess/widgets/enginesDialog.py:235 #, python-format msgid "Unable to add %s" msgstr "" #: lib/pychess/widgets/enginesDialog.py:177 msgid "wine not installed" msgstr "" #: lib/pychess/widgets/enginesDialog.py:211 #: lib/pychess/widgets/enginesDialog.py:236 msgid "There is something wrong with this executable" msgstr "" #: lib/pychess/widgets/enginesDialog.py:266 msgid "Select working directory" msgstr "Выберите рабочую директорию" #: lib/pychess/widgets/gamenanny.py:115 #, python-format msgid " invalid engine move: %s" msgstr "" #: lib/pychess/widgets/gamenanny.py:134 msgid "Offer Rematch" msgstr "Предложить реванш" #: lib/pychess/widgets/gamenanny.py:136 lib/pychess/widgets/gamenanny.py:147 #, python-format msgid "Observe %s" msgstr "Наблюдать %s" #: lib/pychess/widgets/gamenanny.py:168 msgid "Play Rematch" msgstr "Играть реванш" #: lib/pychess/widgets/gamenanny.py:171 msgid "Undo one move" msgstr "Отменить один ход" #: lib/pychess/widgets/gamenanny.py:173 msgid "Undo two moves" msgstr "Отменить два хода" #: lib/pychess/widgets/gamenanny.py:203 msgid "The game is paused" msgstr "Игра приостановлена" #: lib/pychess/widgets/gamenanny.py:221 lib/pychess/widgets/gamenanny.py:222 msgid "Loaded game" msgstr "Партия загружена" #: lib/pychess/widgets/gamenanny.py:228 msgid "Saved game" msgstr "Партия сохранена" #: lib/pychess/widgets/gamenanny.py:232 msgid "Analyzer started" msgstr "Анализатор запущен" #: lib/pychess/widgets/gamenanny.py:281 msgid "You sent an abort offer" msgstr "Вы отменили предложение" #: lib/pychess/widgets/gamenanny.py:283 msgid "You sent an adjournment offer" msgstr "Вы предложили отложить игру" #: lib/pychess/widgets/gamenanny.py:285 msgid "You sent a draw offer" msgstr "Вы предложили ничью" #: lib/pychess/widgets/gamenanny.py:287 msgid "You sent a pause offer" msgstr "Вы предложили приостановить игру" #: lib/pychess/widgets/gamenanny.py:289 msgid "You sent a resume offer" msgstr "Вы предложили продолжить" #: lib/pychess/widgets/gamenanny.py:291 msgid "You sent an undo offer" msgstr "Вы отменили предложение" #: lib/pychess/widgets/gamenanny.py:293 msgid "You asked your opponent to move" msgstr "Вы попросили соперника сделать ход" #: lib/pychess/widgets/gamenanny.py:305 #, python-format msgid "Engine, %s, has died" msgstr "Компьютерная программа, %s, остановлена" #: lib/pychess/widgets/gamenanny.py:306 msgid "" "PyChess has lost connection to the engine, probably because it has died.\n" "\n" "You can try to start a new game with the engine, or try to play against another one." msgstr "PyChess потерял связь с компьютерной программой, возможно из-за её остановки.\n\nВы можете попытаться начать новую игру с той же компьютерной программой или против какой-либо другой." #: lib/pychess/widgets/gamewidget.py:204 msgid "" "This game can be automatically aborted without rating loss because there has" " not yet been two moves made" msgstr "Эту игру можно автоматически прервать без потери рейтинга, так как ещё не сделано двух ходов" #: lib/pychess/widgets/gamewidget.py:206 msgid "Offer Abort" msgstr "Предложить Прервать" #: lib/pychess/widgets/gamewidget.py:208 msgid "" "Your opponent must agree to abort the game because there has been two or " "more moves made" msgstr "Чтобы прервать игру, требуется согласие соперника, так как уже сделано два хода или более" #: lib/pychess/widgets/gamewidget.py:226 msgid "This game can not be adjourned because one or both players are guests" msgstr "Игра не может быть перенесена, потому что один из игроков гость" #: lib/pychess/widgets/gamewidget.py:243 msgid "Claim Draw" msgstr "Потребовать ничью" #: lib/pychess/widgets/gamewidget.py:325 msgid "Pause" msgstr "Пауза" #: lib/pychess/widgets/gamewidget.py:326 msgid "Resume" msgstr "Продолжение" #: lib/pychess/widgets/gamewidget.py:328 msgid "Offer Pause" msgstr "Предложить паузу" #: lib/pychess/widgets/gamewidget.py:329 msgid "Offer Resume" msgstr "Предложить продолжить" #: lib/pychess/widgets/gamewidget.py:333 msgid "Undo" msgstr "Отмена" #: lib/pychess/widgets/gamewidget.py:335 msgid "Offer Undo" msgstr "Предложить отмену" #: lib/pychess/widgets/gamewidget.py:550 msgid " has lagged for 30 seconds" msgstr "испытал задержку в 30 секунд" #: lib/pychess/widgets/gamewidget.py:566 msgid " is lagging heavily but hasn't disconnected" msgstr "испытывает серьезную задержку, но не отключился" #: lib/pychess/widgets/gamewidget.py:567 msgid "Continue to wait for opponent, or try to adjourn the game?" msgstr "Продолжать ждать противника или попробовать отложить игру?" #: lib/pychess/widgets/gamewidget.py:575 msgid "Wait" msgstr "Ожидание" #: lib/pychess/widgets/gamewidget.py:576 msgid "Adjourn" msgstr "Отложить" #: lib/pychess/widgets/gamewidget.py:648 msgid "Jump to initial position" msgstr "Перейти к начальной позиции" #: lib/pychess/widgets/gamewidget.py:653 msgid "Step back one move" msgstr "Назад на один ход" #: lib/pychess/widgets/gamewidget.py:658 msgid "Go back to the main line" msgstr "" #: lib/pychess/widgets/gamewidget.py:664 msgid "Step forward one move" msgstr "Вперёд на один ход" #: lib/pychess/widgets/gamewidget.py:669 msgid "Jump to latest position" msgstr "Перейти к последней позиции" #: lib/pychess/widgets/gamewidget.py:903 msgid "PyChess was unable to load your panel settings" msgstr "PyChess не в состоянии загрузить ваши настройки панели" #: lib/pychess/widgets/gamewidget.py:904 msgid "" "Your panel settings have been reset. If this problem repeats, you should " "report it to the developers" msgstr "Ваши настройки панели были сброшены. Если проблема повторится, вам следует доложить о ней разработчикам" #: lib/pychess/widgets/ionest.py:67 lib/pychess/widgets/newGameDialog.py:389 #: lib/pychess/widgets/TaskerManager.py:210 msgid "You" msgstr "Вы" #: lib/pychess/widgets/ionest.py:70 lib/pychess/widgets/newGameDialog.py:390 #: lib/pychess/widgets/preferencesDialog.py:61 #: lib/pychess/widgets/TaskerManager.py:213 msgid "Guest" msgstr "Гость" #: lib/pychess/widgets/ionest.py:93 msgid "Error loading game" msgstr "" #: lib/pychess/widgets/ionest.py:127 lib/pychess/widgets/newGameDialog.py:480 msgid "Open Game" msgstr "Открыть игру" #: lib/pychess/widgets/ionest.py:137 msgid "All Files" msgstr "Все файлы" #: lib/pychess/widgets/ionest.py:140 msgid "Detect type automatically" msgstr "Автоматически определять тип" #: lib/pychess/widgets/ionest.py:146 msgid "All Chess Files" msgstr "Все шахматные файлы" #: lib/pychess/widgets/ionest.py:228 msgid "Save Game" msgstr "Сохранить игру" #: lib/pychess/widgets/ionest.py:228 msgid "Export position" msgstr "Экспорт позиции" #: lib/pychess/widgets/ionest.py:232 lib/pychess/widgets/ionest.py:360 msgid "vs." msgstr "против" #: lib/pychess/widgets/ionest.py:249 #, python-format msgid "Unknown file type '%s'" msgstr "Неизвестный тип файла '%s'" #: lib/pychess/widgets/ionest.py:250 #, python-format msgid "" "Was unable to save '%(uri)s' as PyChess doesn't know the format " "'%(ending)s'." msgstr "Не удалось сохранить '%(uri)s', так как PyChess не знает формата '%(ending)s'." #: lib/pychess/widgets/ionest.py:266 #, python-format msgid "Unable to save file '%s'" msgstr "Невозможно сохранить файл '%s'" #: lib/pychess/widgets/ionest.py:268 msgid "" "You don't have the necessary rights to save the file.\n" "Please ensure that you have given the right path and try again." msgstr "У вас нет необходимых прав для сохранения файла.\nПожалуйста, проверьте, указали ли вы правильный путь и попробуйте снова." #: lib/pychess/widgets/ionest.py:276 msgid "_Replace" msgstr "_Заменить" #: lib/pychess/widgets/ionest.py:280 msgid "File exists" msgstr "Файл существует" #: lib/pychess/widgets/ionest.py:282 #, python-format msgid "" "A file named '%s' already exists. Would you like to replace " "it?" msgstr "Файл '%s' уже существует. Вы хотите заменить?" #: lib/pychess/widgets/ionest.py:283 #, python-format msgid "" "The file already exists in '%s'. If you replace it, its content will be " "overwritten." msgstr "Файл уже существует в '%s'. Если вы замените его, содержимое будет перезаписано." #: lib/pychess/widgets/ionest.py:299 msgid "Could not save the file" msgstr "Не удалось сохранить файл" #: lib/pychess/widgets/ionest.py:300 msgid "PyChess was not able to save the game" msgstr "PyChess не смог сохранить партию" #: lib/pychess/widgets/ionest.py:301 #, python-format msgid "The error was: %s" msgstr "Ошибка: %s" #: lib/pychess/widgets/ionest.py:325 #, python-format msgid "There is %d game with unsaved moves." msgid_plural "There are %d games with unsaved moves." msgstr[0] "Имеется %d игра с несохранёнными ходами." msgstr[1] "Имеется %d игры с несохранёнными ходами." msgstr[2] "Имеется %d игр с несохранёнными ходами." msgstr[3] "Имеется %d игр с несохранёнными ходами." #: lib/pychess/widgets/ionest.py:328 msgid "Save moves before closing?" msgstr "Сохранить ходы перед закрытием?" #: lib/pychess/widgets/ionest.py:339 msgid "Unable to save to configured file. Save the games before closing?" msgstr "" #: lib/pychess/widgets/ionest.py:366 #, python-format msgid "_Save %d document" msgid_plural "_Save %d documents" msgstr[0] "_Сохранить %d документ" msgstr[1] "_Сохранить %d документа" msgstr[2] "_Сохранить %d документов" msgstr[3] "_Сохранить %d документов" #: lib/pychess/widgets/ionest.py:412 msgid "Save the current game before you close it?" msgstr "" #: lib/pychess/widgets/ionest.py:420 msgid "" "Unable to save to configured file. Save the current game before you close " "it?" msgstr "" #: lib/pychess/widgets/ionest.py:434 msgid "" "It is not possible later to continue the game,\n" "if you don't save it." msgstr "Будет невозможно продолжить игру позже, если вы ее не сохраните." #: lib/pychess/widgets/LogDialog.py:26 msgid "PyChess Information Window" msgstr "Информационное окно PyChess" #: lib/pychess/widgets/LogDialog.py:184 lib/pychess/widgets/LogDialog.py:188 msgid "of" msgstr "из" #: lib/pychess/widgets/newGameDialog.py:84 #: lib/pychess/widgets/newGameDialog.py:85 msgid "Human Being" msgstr "Человек" #: lib/pychess/widgets/newGameDialog.py:155 msgid "Rapid" msgstr "Рапид" #: lib/pychess/widgets/newGameDialog.py:224 msgid "Minutes:" msgstr "Минуты:" #: lib/pychess/widgets/newGameDialog.py:228 msgid "Gain:" msgstr "Добавлять за ход:" #: lib/pychess/widgets/newGameDialog.py:241 #, python-format msgid "%(name)s %(minutes)d min + %(gain)d sec/move" msgstr "%(name)s %(minutes)d мин + %(gain)d с/ход" #: lib/pychess/widgets/newGameDialog.py:244 #, python-format msgid "%(name)s %(minutes)d min %(gain)d sec/move" msgstr "%(name)s %(minutes)d мин %(gain)d с/ход" #: lib/pychess/widgets/newGameDialog.py:247 #, python-format msgid "%(name)s %(minutes)d min" msgstr "%(name)s %(minutes)d мин" #: lib/pychess/widgets/newGameDialog.py:265 msgid "Odds" msgstr "Перевес" #: lib/pychess/widgets/newGameDialog.py:269 msgid "Asian variants" msgstr "" #: lib/pychess/widgets/newGameDialog.py:301 msgid " chess" msgstr " шахматы" #: lib/pychess/widgets/newGameDialog.py:682 msgid "Type or paste PGN game or FEN positions here" msgstr "Введите или вставьте сюда PGN игру или FEN позиции" #: lib/pychess/widgets/newGameDialog.py:725 msgid "Enter Game" msgstr "Начать партию" #: lib/pychess/widgets/preferencesDialog.py:123 msgid "Select book file" msgstr "Выбрать файл книги" #: lib/pychess/widgets/preferencesDialog.py:128 msgid "Opening books" msgstr "Книги дебютов" #: lib/pychess/widgets/preferencesDialog.py:156 msgid "Select Gaviota TB path" msgstr "Выбрать путь Gaviota TB" #: lib/pychess/widgets/preferencesDialog.py:331 msgid "Open Sound File" msgstr "Открыть звуковой файл" #: lib/pychess/widgets/preferencesDialog.py:341 msgid "Sound files" msgstr "Звуковые файлы" #: lib/pychess/widgets/preferencesDialog.py:485 msgid "Undescribed panel" msgstr "Неописанная панель" #: lib/pychess/widgets/preferencesDialog.py:678 msgid "Select auto save path" msgstr "" #: lib/pychess/widgets/tipOfTheDay.py:51 msgid "" "You can start a new game by Game > New Game, in New Game " "window do you can choose Players, Time Control and Chess " "Variants." msgstr "Вы можете начать новую игру с помощью Игра > Новая игра, в онке Новая игра и выбрать Игроков, Регламент и Разновидность шахмат." #: lib/pychess/widgets/tipOfTheDay.py:52 msgid "" "You can choose from 20 different difficulties to play against the computer." msgstr "" #: lib/pychess/widgets/tipOfTheDay.py:53 msgid "" "Chess Variants are like the pieces of the last line will be placed on the " "board." msgstr "Разновидность шахмат отвечает за варианты расположения фигур на последних линиях на доске." #: lib/pychess/widgets/tipOfTheDay.py:54 msgid "" "To save a game Game > Save Game As, give the filename and " "choose where you want to be saved. At the bottom choose extension type of " "the file, and Save." msgstr "Для сохранения игры выберите Игра > Сохранить игру как, задайте имя файла и выберите путь сохранения. Снизу выберите тип файла, и нажмите Сохранить." #: lib/pychess/widgets/tipOfTheDay.py:55 msgid "" "Do you know that you can call flag when the clock is with you, " "Actions > Call Flag." msgstr "Знаете ли вы, что вы можете бросить флаг, когда у вас все еще есть запас времени, выберите Действия > Бросить флаг." #: lib/pychess/widgets/tipOfTheDay.py:56 msgid "Pressing Ctrl+Z to offer opponent the possible rollback moves." msgstr "Нажатие Ctrl+Z предложит противнику возможность отменить ходы." #: lib/pychess/widgets/tipOfTheDay.py:57 msgid "" "To play on Fullscreen mode, just type F11. Coming back, F11 " "again." msgstr "Чтобы играть в Полноэкранном режиме просто нажмите F11b. Чтобы вернуться в оконный, нажмите F11 снова." #: lib/pychess/widgets/tipOfTheDay.py:58 msgid "Hint mode analyzing your game, enable this type Ctrl+H." msgstr "Режим подсказки анализирует вашу игру, для включения режима используйте Ctrl+H." #: lib/pychess/widgets/tipOfTheDay.py:59 msgid "" "Spy mode analyzing the oponnent game, enable this type Ctrl+Y." msgstr "Шпионский режим анализирует игру противника, для включения режима используйте Ctrl+Y." #: lib/pychess/widgets/tipOfTheDay.py:60 msgid "" "You can play chess listening to the sounds of the game, for that, " "Settings > Preferences > Sound tab, enable Use " "sounds in PyChess and choose your preferred sounds." msgstr "Вы можете играть в шахматы со звуками в игре, для этого войдите в Настройки > Предпочтения > Звуки, включите Использовать звуки в PyChess и выберите звуки на свое усмотрение." #: lib/pychess/widgets/tipOfTheDay.py:61 msgid "" "Do you know that you can help translate Pychess in your language, " "Help > Translate Pychess." msgstr "Знаете ли вы, что можете помочь перевести Pychess на ваш язык, Справка > Перевести Pychess." #: lib/pychess/widgets/tipOfTheDay.py:62 msgid "" "Do you know that it is possible to finish a chess game in just 2 turns?" msgstr "Знаете ли вы, что можно завершить шахматную партию всего за два хода?" #: lib/pychess/widgets/tipOfTheDay.py:63 msgid "" "Do you know that the number of possible chess games exceeds the number of " "atoms in the Universe?" msgstr "Знаете ли вы, что количество возможных вариантов игр в шахматах превышает число атомов во Вселенной?" #: lib/pychess/ic/managers/ChatManager.py:184 msgid "Shout" msgstr "Крик" #: lib/pychess/ic/managers/ChatManager.py:185 msgid "Chess Shout" msgstr "Шахматный возглас" #: lib/pychess/ic/managers/ChatManager.py:195 #, python-format msgid "Unofficial channel %d" msgstr "Неофициальный канал %d" #: lib/pychess/Utils/lutils/LBoard.py:152 #, python-format msgid "" "FEN needs 6 data fields. \n" "\n" "%s" msgstr "FEN необходимо 6 полей с данными. \n\n%s" #: lib/pychess/Utils/lutils/LBoard.py:154 #, python-format msgid "" "FEN needs at least 2 data fields in fenstr. \n" "\n" "%s" msgstr "FEN необходимо по крайней мере 2 поля с данными в fenstr. \n\n%s" #: lib/pychess/Utils/lutils/LBoard.py:175 #, python-format msgid "" "Needs 7 slashes in piece placement field. \n" "\n" "%s" msgstr "Требуется 7 слэшэй в поле расположения фигур. \n\n%s" #: lib/pychess/Utils/lutils/LBoard.py:178 #, python-format msgid "" "Active color field must be one of w or b. \n" "\n" "%s" msgstr "Активное цветовое поле должно быть w или b. \n\n%s" #: lib/pychess/Utils/lutils/LBoard.py:189 #, python-format msgid "" "Castling availability field is not legal. \n" "\n" "%s" msgstr "Неправильное поле возможности рокировки. \n\n%s" #: lib/pychess/Utils/lutils/LBoard.py:192 #, python-format msgid "" "En passant cord is not legal. \n" "\n" "%s" msgstr "Проходная координата недопустима. \n\n%s" #: lib/pychess/Utils/lutils/lmove.py:260 msgid "invalid promoted piece" msgstr "недопустимая фигура продвижения" #: lib/pychess/Utils/lutils/lmove.py:272 msgid "the move needs a piece and a cord" msgstr "для хода требуется фигура и координаты" #: lib/pychess/Utils/lutils/lmove.py:306 lib/pychess/Utils/lutils/lmove.py:556 msgid "promotion move without promoted piece is incorrect" msgstr "ход продвижения без продвигаемой фигуры недопустим" #: lib/pychess/Utils/lutils/lmove.py:312 #, python-format msgid "the captured cord (%s) is incorrect" msgstr "недопустимая захваченная координата (%s)" #: lib/pychess/Utils/lutils/lmove.py:323 #, python-format msgid "the end cord (%s) is incorrect" msgstr "недопустимая конечная координата (%s)" #: lib/pychess/Utils/lutils/strateval.py:24 sidepanel/commentPanel.py:191 #: sidepanel/commentPanel.py:208 msgid "and" msgstr "и" #: lib/pychess/Utils/lutils/strateval.py:43 msgid "draws" msgstr "сделали ничью" #: lib/pychess/Utils/lutils/strateval.py:45 msgid "mates" msgstr "поставили мат" #: lib/pychess/Utils/lutils/strateval.py:49 msgid "puts opponent in check" msgstr "дают шах противнику" #: lib/pychess/Utils/lutils/strateval.py:73 msgid "improves king safety" msgstr "улучшают защиту короля" #: lib/pychess/Utils/lutils/strateval.py:75 msgid "slightly improves king safety" msgstr "несколько улучшают защиту короля" #: lib/pychess/Utils/lutils/strateval.py:108 msgid "moves a rook to an open file" msgstr "перемещают ладью на открытую вертикаль" #: lib/pychess/Utils/lutils/strateval.py:109 msgid "moves an rook to a half-open file" msgstr "перемещают ладью на полуоткрытую вертикаль" #: lib/pychess/Utils/lutils/strateval.py:119 #: lib/pychess/Utils/lutils/strateval.py:121 #: lib/pychess/Utils/lutils/strateval.py:124 #: lib/pychess/Utils/lutils/strateval.py:126 #, python-format msgid "moves bishop into fianchetto: %s" msgstr "фианкетируют слона на %s" #: lib/pychess/Utils/lutils/strateval.py:132 #, python-format msgid "promotes a Pawn to a %s" msgstr "способствуют продвижению пешки на %s" #: lib/pychess/Utils/lutils/strateval.py:135 msgid "castles" msgstr "рокируются" #: lib/pychess/Utils/lutils/strateval.py:158 msgid "takes back material" msgstr "возвращают материал" #: lib/pychess/Utils/lutils/strateval.py:162 #: lib/pychess/Utils/lutils/strateval.py:170 msgid "sacrifies material" msgstr "жертвуют материал" #: lib/pychess/Utils/lutils/strateval.py:164 msgid "exchanges material" msgstr "разменивают материал" #: lib/pychess/Utils/lutils/strateval.py:166 msgid "captures material" msgstr "выигрывают материал" #: lib/pychess/Utils/lutils/strateval.py:291 #, python-format msgid "rescues a %s" msgstr "спасают %s" #: lib/pychess/Utils/lutils/strateval.py:294 #, python-format msgid "threatens to win material by %s" msgstr "угрожает выиграть материал с %s" #: lib/pychess/Utils/lutils/strateval.py:296 #, python-format msgid "increases the pressure on %s" msgstr "увеличивают давление на %s" #: lib/pychess/Utils/lutils/strateval.py:298 #, python-format msgid "defends %s" msgstr "защищают %s" #: lib/pychess/Utils/lutils/strateval.py:336 #, python-format msgid "pins an enemy %(oppiece)s on the %(piece)s at %(cord)s" msgstr "связывает %(oppiece)s противника с %(piece)s на %(cord)s" #: lib/pychess/Utils/lutils/strateval.py:369 #, python-format msgid "White has a new piece in outpost: %s" msgstr "Белые имеют новую фигуру в защите %s" #: lib/pychess/Utils/lutils/strateval.py:377 #, python-format msgid "Black has a new piece in outpost: %s" msgstr "Чёрные имеют новую фигуру в защите %s" #: lib/pychess/Utils/lutils/strateval.py:416 #, python-format msgid "%(color)s has a new passed pawn on %(cord)s" msgstr "%(color)s получают проходную пешку на %(cord)s" #: lib/pychess/Utils/lutils/strateval.py:470 msgid "half-open" msgstr "полуоткрытой" #: lib/pychess/Utils/lutils/strateval.py:472 #, python-format msgid "in the %(x)s%(y)s file" msgstr "на %(x)sвертикали %(y)s" #: lib/pychess/Utils/lutils/strateval.py:474 #, python-format msgid "in the %(x)s%(y)s files" msgstr "в файлах %(x)s%(y)s" #: lib/pychess/Utils/lutils/strateval.py:477 #, python-format msgid "%(color)s got a double pawn %(place)s" msgstr "%(color)s имеют две пешки %(place)s" #: lib/pychess/Utils/lutils/strateval.py:478 #, python-format msgid "%(color)s got new double pawns %(place)s" msgstr "%(color)s получают новые сдвоенные пешки %(place)s" #: lib/pychess/Utils/lutils/strateval.py:485 #, python-format msgid "%(color)s got an isolated pawn in the %(x)s file" msgid_plural "%(color)s got isolated pawns in the %(x)s files" msgstr[0] "%(color)s имеют изолированную пешку на вертикали %(x)s" msgstr[1] "%(color)s имеют изолированные пешки на вертикалях %(x)s" msgstr[2] "" msgstr[3] "%(color)s имеют изолированные пешки на вертикалях %(x)s" #: lib/pychess/Utils/lutils/strateval.py:492 #, python-format msgid "%s moves pawns into stonewall formation" msgstr "%s перемещают пешки в устойчивую позицию" #: lib/pychess/Utils/lutils/strateval.py:507 #: lib/pychess/Utils/lutils/strateval.py:514 #, python-format msgid "%s can no longer castle" msgstr "%s больше не могут сделать рокировку" #: lib/pychess/Utils/lutils/strateval.py:508 #: lib/pychess/Utils/lutils/strateval.py:515 #, python-format msgid "%s can no longer castle in queenside" msgstr "%s больше не могут сделать рокировку на стороне королевы" #: lib/pychess/Utils/lutils/strateval.py:510 #: lib/pychess/Utils/lutils/strateval.py:517 #, python-format msgid "%s can no longer castle in kingside" msgstr "%s больше не могут сделать рокировку на стороне короля" #: lib/pychess/Utils/lutils/strateval.py:551 #, python-format msgid "%(opcolor)s has a new trapped bishop on %(cord)s" msgstr "%(opcolor)s получают нового епископа в ловушке на %(cord)s" #: lib/pychess/Utils/lutils/strateval.py:573 #, python-format msgid "develops a pawn: %s" msgstr "развитие пешки: %s" #: lib/pychess/Utils/lutils/strateval.py:574 #, python-format msgid "brings a pawn closer to the backrow: %s" msgstr "продвигают пешку ближе к последней диагонали ходом %s" #: lib/pychess/Utils/lutils/strateval.py:591 #, python-format msgid "brings a %(piece)s closer to enemy king: %(cord)s" msgstr "продвигают %(piece)s ближе к королю противника: %(cord)s" #: lib/pychess/Utils/lutils/strateval.py:594 #, python-format msgid "develops a %(piece)s: %(cord)s" msgstr "развивает %(piece)s: %(cord)s" #: lib/pychess/Utils/lutils/strateval.py:612 #, python-format msgid "places a %(piece)s more active: %(cord)s" msgstr "активно располагает %(piece)s на: %(cord)s" #: lib/pychess/Utils/lutils/strateval.py:638 msgid "White should do pawn storm in right" msgstr "Белые должны брать пешкой направо" #: lib/pychess/Utils/lutils/strateval.py:640 msgid "Black should do pawn storm in left" msgstr "Чёрные должны брать пешкой налево" #: lib/pychess/Utils/lutils/strateval.py:643 msgid "White should do pawn storm in left" msgstr "Белые должны брать пешкой налево" #: lib/pychess/Utils/lutils/strateval.py:645 msgid "Black should do pawn storm in right" msgstr "Чёрные должны брать пешкой направо" #: lib/pychess/Utils/lutils/strateval.py:671 msgid "Black has a rather cramped position" msgstr "Чёрные имеют довольно стеснённую позицию" #: lib/pychess/Utils/lutils/strateval.py:673 msgid "Black has a slightly cramped position" msgstr "Чёрные имеют несколько стеснённую позицию" #: lib/pychess/Utils/lutils/strateval.py:675 msgid "White has a rather cramped position" msgstr "Белые имеют довольно стеснённую позицию" #: lib/pychess/Utils/lutils/strateval.py:677 msgid "White has a slightly cramped position" msgstr "Белые имеют несколько стеснённую позицию" #: sidepanel/annotationPanel.py:26 msgid "Annotation" msgstr "Нотация" #: sidepanel/annotationPanel.py:29 msgid "Annotated game" msgstr "Записанная игра" #: sidepanel/annotationPanel.py:236 msgid "Copy PGN" msgstr "" #: sidepanel/annotationPanel.py:249 msgid "Add start comment" msgstr "Добавить начальный комментарий" #: sidepanel/annotationPanel.py:254 msgid "Add comment" msgstr "Добавить комментарий" #: sidepanel/annotationPanel.py:258 sidepanel/annotationPanel.py:316 msgid "Edit comment" msgstr "Редактировать комментарий" #: sidepanel/annotationPanel.py:269 msgid "Forced move" msgstr "Форсированный ход" #: sidepanel/annotationPanel.py:274 msgid "Add move symbol" msgstr "Добавить символ хода" #: sidepanel/annotationPanel.py:280 msgid "Unclear position" msgstr "Вернуть позицию" #: sidepanel/annotationPanel.py:289 msgid "Zugzwang" msgstr "Цугцванг" #: sidepanel/annotationPanel.py:290 msgid "Development adv." msgstr "Разработка расш." #: sidepanel/annotationPanel.py:291 msgid "Initiative" msgstr "Инициатива" #: sidepanel/annotationPanel.py:292 msgid "With attack" msgstr "С атакой" #: sidepanel/annotationPanel.py:293 msgid "Compensation" msgstr "Конпенсация" #: sidepanel/annotationPanel.py:294 msgid "Counterplay" msgstr "Контригра" #: sidepanel/annotationPanel.py:295 msgid "Time pressure" msgstr "Временное давление" #: sidepanel/annotationPanel.py:300 msgid "Add evaluation symbol" msgstr "Добавить оценочный символ" #: sidepanel/annotationPanel.py:304 msgid "Remove symbols" msgstr "Удалить символы" #: sidepanel/annotationPanel.py:911 #, python-format msgid "round %s" msgstr "раунд %s" #: sidepanel/bookPanel.py:21 msgid "Hints" msgstr "Подсказки" #: sidepanel/bookPanel.py:25 msgid "" "The hint panel will provide computer advice during each stage of the game" msgstr "Панель подсказок предоставляет советы компьютера на каждом этапе игры" #: sidepanel/bookPanel.py:27 msgid "Official PyChess panel." msgstr "Официальная PyChess панель" #: sidepanel/bookPanel.py:87 msgid "Opening Book" msgstr "Книга дебютов" #: sidepanel/bookPanel.py:88 msgid "" "The opening book will try to inspire you during the opening phase of the " "game by showing you common moves made by chess masters" msgstr "Книга дебютов поможет вам на ранней стадии игры, показывая ходы, сделанные великими шахматными игроками" #: sidepanel/bookPanel.py:139 #, python-format msgid "Analysis by %s" msgstr "Аналитика от %s" #: sidepanel/bookPanel.py:140 #, python-format msgid "" "%s will try to predict which move is best and which side has the advantage" msgstr "%s попытается предсказать, какой ход лучший, и какая сторона имеет преимущество" #: sidepanel/bookPanel.py:142 #, python-format msgid "Threat analysis by %s" msgstr "Поточная аналитика от %s" #: sidepanel/bookPanel.py:143 #, python-format msgid "" "%s will identify what threats would exist if it were your opponent's turn to" " move" msgstr "%s попытается установить возможную угрозу, если ход будет делать ваш соперник" #: sidepanel/bookPanel.py:159 sidepanel/bookPanel.py:269 msgid "Calculating..." msgstr "Вычисление..." #: sidepanel/bookPanel.py:300 msgid "" "Engine scores are in units of pawns, from White's point of view. Double " "clicking on analysis lines you can insert them into Annotation panel as " "variations." msgstr "Движок считает очки в пешечных единицах, с точки зрения белых. Двойной щелчок по аналитическим линиям позволяет вам вставить их в панель аннотаций в качестве вариантов." #: sidepanel/bookPanel.py:302 msgid "" "Adding suggestions can help you find ideas, but slows down the computer's " "analysis." msgstr "Добавление предположений может помочь вам в поиске идей, но замедляет компьютерный анализ." #: sidepanel/bookPanel.py:311 msgid "Endgame Table" msgstr "Эндшпильная таблица" #: sidepanel/bookPanel.py:315 msgid "" "The endgame table will show exact analysis when there are few pieces on the " "board." msgstr "Таблица эндшпиля покажет точную аналитику, когда на доске останется мало фигур." #: sidepanel/bookPanel.py:364 sidepanel/bookPanel.py:367 #, python-format msgid "Mate in %d" msgstr "Мат в %d" #: sidepanel/bookPanel.py:554 msgid "" "In this position,\n" "there is no legal move." msgstr "В этой позиции\nнет допустимого хода." #: sidepanel/chatPanel.py:21 msgid "" "The chat panel lets you communicate with your opponent during the game, " "assuming he or she is interested" msgstr "Панель чата позволяет общаться с соперником во время игры, если у него есть такое желание" #: sidepanel/commentPanel.py:16 msgid "Comments" msgstr "Комментарии" #: sidepanel/commentPanel.py:20 msgid "The comments panel will try to analyze and explain the moves played" msgstr "Панель комментариев пытается анализировать и пояснять сделанные ходы" #: sidepanel/commentPanel.py:121 msgid "Initial position" msgstr "Начальная позиция" #: sidepanel/commentPanel.py:254 #, python-format msgid "%(color)s moves a %(piece)s to %(cord)s" msgstr "%(color)s переместили %(piece)s на %(cord)s" #: sidepanel/engineOutputPanel.py:15 msgid "Engines" msgstr "Движки" #: sidepanel/engineOutputPanel.py:20 msgid "" "The engine output panel shows the thinking output of chess engines (computer" " players) during a game" msgstr "Панель вывода движка показывает мыслительный процесс движков (компьютерных игроков) во время игры" #: sidepanel/engineOutputPanel.py:44 msgid "No chess engines (computer players) are participating in this game." msgstr "В этой игре не участвуют шахматные движки (игроки-компьютеры)." #: sidepanel/historyPanel.py:10 msgid "Move History" msgstr "История ходов" #: sidepanel/historyPanel.py:13 msgid "" "The moves sheet keeps track of the players' moves and lets you navigate " "through the game history" msgstr "Список ходов содержит ходы, сделанные игроками, и позволяет перемещаться по истории игры" #: sidepanel/scorePanel.py:15 msgid "Score" msgstr "Счёт" #: sidepanel/scorePanel.py:19 msgid "" "The score panel tries to evaluate the positions and shows you a graph of the" " game progress" msgstr "Панель очков пытается оценить позиции и показывает график игрового прогресса" pychess-0.12.2/lang/ru/LC_MESSAGES/pychess.mo0000644000175000017470000025562312653231273020740 0ustar tamasusers00000000000000/? ? ?G?>@ E@$R@ w@@@+@ @@@/A03A[dANAB%&B`LB(B+B'C#*CNC*gC,C0CC D$D;DBD#ZD$~D'DD D!EQ"EJtEEEEEE#E"F=F%BFhFFF9F'F@GGGXGiG~GGGEGHH#8H$\H HHHHHHHLITI hIuIIQI&ICJ7WJUJ*J(K9KOKaKrKK KKK&K.KK LL0L@LSRL LL LL L LLL M(MC9M}M M M MMMM*M N NNN/#NSSNQNNO!8OZO uOO/OSOQ7P#P"PPriQ QKQ%IROoR-R3R$!S6FS#}SESAS!)T!KT-mT&T-T;T ,UBMUUUU$U#U%U"V#4VXV _ViV{VVVVVV.VV V VVWW W*W @WKW ZWPfW W6WVWVPXRXSXNYTYjY-YYY YY YYY Z:ZZZ lZzZZ Z Z ZZZ ZZZZZ[%[G*[`r[a[i5\ \\ \\ \ \ \\"\ ]]]}] =^H^&]^^^^^ ^^^0^@_D[_H_F_H0`y`=uabwc}c udddd dd dddddee &e4eFeWe eee e fff f %f1f4f7fAgX hcch]h?%iBei;iqiSVjOjFk Al)Olyl ll lDllm.m0m5m 'pØ ˘֘  " ,56"le+!6Me!   ->M^n6(˜2 ?V gt{#͝!2Rfw{3#Wvk=(f2w>XB[.dd8y1l,0EvMFԪ8'T|.0ǫZS!j, AìbfhIϭ$5>2t51Ư %,.#[3ɰ#ҰDH;p "!1Dv#(S=|++(#G"k3ܴ&ݵ`YsͶGVG(?pǸ "%6JcQrQĹ%'<0d&:ʻ$ .-I#w#y9Wf)z-ҽh]p 2s5Bҿ9>O,1)2sJ9[AL^T,dPmTzFnSD33MaNdl5]  # .B;L~N>@Y & Q o { +#  !7!Y{!$]F4H+BGI(#".Fmu$  /"R er,6< [}fy .9U'Y)1 D%-5S w%(DN 6=5bsHJJjVM Z &bx){9)!'IL"l!*BH a ly A 3|Bs7xB/!r' u3h3 ! 7 O \-j*#!Ec*%%+4: oE| 24W;_q $5N(]%/!)!H(j 3*-+Am~KIhOIL-_@N(f%  '844m  !! 0 =+J3v@7=Z mz  Mv+ G!E+1q&-C Zf h%s .'V)t ! & 6. e h   # :  *  3 A ` "| "   S 4O  &  - % != *_     9 9 2Z 7    ( 1=Y x& !79<!?'a'kp&X)Y;*#Cg1, |x-0O!:%!*:P1K#}+.us~ ? d2!Z!+! "")"#L"p""""V#y$$$$V$.%'0%X%#v% % % %%%(&8&S&q&&.&?&; '5H'.~'3'x'fZ( (((((t(])}) +@+JO+L+<+>$, c, o,z,*, ,, ,',6!-$X-}--@/Q/$1-2z2r*3J33Q455NN55$6=6.7,273_7,7@7898":#;;=<=7===>=>=?GW?A?D?&@-@A(A9AIA[ArA A AA A AB&"B IB SB ]BiBXyBBB!C'CDC \C}CCC1CCC.D 2D@DVDhDD-1E_E|E1E EEE/F7F?F\FnFJqF`FrG=G GXGa4H,H%HHH&I9IYI'sI IIIGKeLriL*L"M*M/EM<uMMMHMPN+mNNNN-N,N%)O2OO)O8OONO>DPBP_P$&Q!KQmQQ Q!QQ=Q%QI%RCoRGR8R84S(mSS S S SSiS-UW^Gh|[CgsN>icje-] LMqE}@8M\"D64$Q9)P_\shb0N<*QgXJl3[:=T(q%v$]pER{fO16yu+?#5j+p- $w|Pnd]=;Z txN`,up*xZ( -,b{?A_bEY&SP8OmYVK +z}a3U'oJ^ |.5Go)fvHD@,w!v^rW} a qm7J%<7/S@<"lck FB2t:u`I_i:Z0{f1!&coKg ~VUXT= (LGO&7 Y>ne4 w'WI~ITH#B!akW %6.'\my/;X2x*QD9H; #C.)0>d5KLB9rz"3zyR  /RVe[~?1 UC42nkFsAldSAFjrMh8i`t Gain: + %d sec challenges you to a %(time)s %(rated)s %(gametype)s game chess has arrived has declined your offer for a match has departed has lagged for 30 seconds is censoring you is lagging heavily but hasn't disconnected is present min noplay listing you uses a formula not fitting your match request: where %(player)s plays %(color)s. with whom you have an adjourned %(timecontrol)s %(gametype)s game is online. would like to resume your adjourned %(time)s %(gametype)s game.%(black)s won the game%(color)s got a double pawn %(place)s%(color)s got an isolated pawn in the %(x)s file%(color)s got isolated pawns in the %(x)s files%(color)s got new double pawns %(place)s%(color)s has a new passed pawn on %(cord)s%(color)s moves a %(piece)s to %(cord)s%(minutes)d min + %(gain)d sec/move%(name)s %(minutes)d min%(name)s %(minutes)d min %(gain)d sec/move%(name)s %(minutes)d min + %(gain)d sec/move%(opcolor)s has a new trapped bishop on %(cord)s%(player)s is %(status)s%(player)s plays %(color)s%(white)s won the game%d min%s can no longer castle%s can no longer castle in kingside%s can no longer castle in queenside%s moves pawns into stonewall formation%s returns an error%s was declined by your opponent%s was withdrawn by your opponent%s will identify what threats would exist if it were your opponent's turn to move%s will try to predict which move is best and which side has the advantage'%s' is not a registered name(Blitz)*0 Players Ready0 of 010 min + 6 sec/move, 1400↑, White10 min + 6 sec/move, White12002 min, Fischer Random, 1800↓, Black2 min, Fischer Random, Black5 min5 min, 1200-1800, ManualConnect to the Free Online Chess ServerPromote pawn to what?PyChess was unable to load your panel settingsAnalyzingAnimationChess VariantDate of gameEnter Game NotationGame dataHint mode analyzing your game, enable this type Ctrl+H.Initial PositionInstalled SidepanelsName of _first human player:Name of s_econd human player:NewsOpen GameOpening, endgameOpponent StrengthOptionsPlay Sound When...PlayersSpy mode analyzing the oponnent game, enable this type Ctrl+Y.Time ControlToolsYour Color_Start GameA file named '%s' already exists. Would you like to replace it?Engine, %s, has diedPyChess is discovering your engines. Please wait.PyChess was not able to save the gameThere are %d games with unsaved moves. Save changes before closing?Unable to save file '%s'Unknown file type '%s'Challenge:A player _checks:A player _moves:A player c_aptures:AbortAbout ChessAc_tiveAcceptActivate alarm when _remaining sec is:Active color field must be one of w or b. %sActive seeks: %dAdd commentAdd evaluation symbolAdd move symbolAdd start commentAdding suggestions can help you find ideas, but slows down the computer's analysis.Address ErrorAdjournAdministratorAll Chess FilesAll FilesAll whiteAnalysis by %sAnalyze from current positionAnalyze gameAnalyzer startedAnimate pieces, board rotation and more. Use this on fast machines.Annotated gameAnnotationAny strengthAsk to _MoveAsymmetric RandomAtomicAuto Call _FlagAuto _rotate board to current human playerAuto-logoutAvailableBB EloBecause %(black)s lost connection to the serverBecause %(black)s lost connection to the server and %(white)s requested adjournmentBecause %(black)s ran out of time and %(white)s has insufficient material to mateBecause %(loser)s disconnectedBecause %(loser)s king explodedBecause %(loser)s ran out of timeBecause %(loser)s resignedBecause %(loser)s was checkmatedBecause %(mover)s stalematedBecause %(white)s lost connection to the serverBecause %(white)s lost connection to the server and %(black)s requested adjournmentBecause %(white)s ran out of time and %(black)s has insufficient material to mateBecause %(winner)s has fewer piecesBecause %(winner)s lost all piecesBecause a player aborted the game. Either player can abort the game without the other's consent before the second move. No rating changes have occurred.Because a player disconnected and there are too few moves to warrant adjournment. No rating changes have occurred.Because a player lost connectionBecause a player lost connection and the other player requested adjournmentBecause both players agreed to a drawBecause both players agreed to abort the game. No rating changes have occurred.Because both players agreed to an adjournmentBecause both players have the same amount of piecesBecause both players ran out of timeBecause neither player has sufficient material to mateBecause of adjudication by an adminBecause of adjudication by an admin. No rating changes have occurred.Because of courtesy by a player. No rating changes have occurred.Because the %(black)s engine diedBecause the %(white)s engine diedBecause the connection to the server was lostBecause the game exceed the max lengthBecause the last 50 moves brought nothing newBecause the same position was repeated three times in a rowBecause the server was shut downBecause the server was shut down. No rating changes have occurred.BeepBishopBlackBlack has a new piece in outpost: %sBlack has a rather cramped positionBlack has a slightly cramped positionBlack should do pawn storm in leftBlack should do pawn storm in rightBlack:BlindfoldBlindfold AccountBlitzBlitz:BughouseCCACalculating...Castling availability field is not legal. %sCenter:ChallengeChallenge: Challenge: Change ToleranceChatChess AdvisorChess Alpha 2 DiagramChess GameChess PositionChess ShoutChess Variants are like the pieces of the last line will be placed on the board.Claim DrawClassic chess rules http://en.wikipedia.org/wiki/ChessClassic chess rules with all pieces white http://en.wikipedia.org/wiki/Blindfold_chessClassic chess rules with hidden figurines http://en.wikipedia.org/wiki/Blindfold_chessClassic chess rules with hidden pawns http://en.wikipedia.org/wiki/Blindfold_chessClassic chess rules with hidden pieces http://en.wikipedia.org/wiki/Blindfold_chessClockClose _without SavingColorize analyzed movesCommand line parameters needed by the engine.Command:CommentsCompensationComputerConnectingConnecting to serverConnection ErrorConnection was closedContinue to wait for opponent, or try to adjourn the game?Conversation infoConversationsCornerCould not save the fileCounterplayCrazyhouseCreate SeekDDateDate/TimeDeclineDefaultDestination Host UnreachableDetect type automaticallyDevelopment adv.DiedDo you know that it is possible to finish a chess game in just 2 turns?Do you know that the number of possible chess games exceeds the number of atoms in the Universe?Do you know that you can call flag when the clock is with you, Actions > Call Flag.Do you know that you can help translate Pychess in your language, Help > Translate Pychess.Don't careDrawDummy AccountECOEdit SeekEdit Seek: Edit commentEmailEn passant cord is not legal. %sEndgame TableEngine scores are in units of pawns, from White's point of view. Double clicking on analysis lines you can insert them into Annotation panel as variations.EnginesEngines use uci or xboard communication protocol to talk to the GUI. If it can use both you can set here which one you like.Enter GameEnter Game _NotationError parsing move %(moveno)s %(mstr)sEventEvent:Examine Adjourned GameExaminedExaminingExport positionFEN needs 6 data fields. %sFEN needs at least 2 data fields in fenstr. %sFICS atomic: http://www.freechess.org/Help/HelpFiles/atomic.htmlFICS bughouse: http://www.freechess.org/Help/HelpFiles/bughouse.htmlFICS crazyhouse: http://www.freechess.org/Help/HelpFiles/crazyhouse.htmlFICS losers: http://www.freechess.org/Help/HelpFiles/losers_chess.htmlFICS suicide: http://www.freechess.org/Help/HelpFiles/suicide_chess.htmlFICS wild/3: http://www.freechess.org/Help/HelpFiles/wild.html * Randomly chosen pieces (two queens or three rooks possible) * Exactly one king of each color * Pieces placed randomly behind the pawns * No castling * Black's arrangement mirrors white'sFICS wild/4: http://www.freechess.org/Help/HelpFiles/wild.html * Randomly chosen pieces (two queens or three rooks possible) * Exactly one king of each color * Pieces placed randomly behind the pawns, SUBJECT TO THE CONSTRAINT THAT THE BISHOPS ARE BALANCED * No castling * Black's arrangement DOES NOT mirrors white'sFICS wild/5: http://www.freechess.org/Help/HelpFiles/wild.html http://en.wikipedia.org/wiki/Chess_variant#Chess_with_different_starting_positions Pawns start on their 7th rank rather than their 2nd rank!FICS wild/8: http://www.freechess.org/Help/HelpFiles/wild.html Pawns start on 4th and 5th ranks rather than 2nd and 7thFICS wild/8a: http://www.freechess.org/Help/HelpFiles/wild.html White pawns start on 5th rank and black pawns on the 4th rankFIDE MasterFMF_ull board animationFace _to Face display modeFile existsFischer RandomForced moveGMGain:Game informationGame is _drawn:Game is _lost:Game is _set-up:Game is _won:Games running: %dGaviota TB path:Generally this means nothing, as the game is time-based, but if you want to please your opponent, perhaps you should get going.Grand MasterGuestHa_ndle:Hidden pawnsHidden piecesHideHintsHow to PlayHuman BeingIMIdIdleIf set, PyChess will colorize suboptimal analyzed moves with red.If set, PyChess will show game results for different moves in positions containing 6 or less pieces. It will search positions from http://www.k4it.de/If set, PyChess will show game results for different moves in positions containing 6 or less pieces. You can download tablebase files from: http://www.olympuschess.com/egtb/gaviota/If set, PyChess will suggest best opening moves on hint panel.If set, PyChess will use figures to express moved pieces, rather than uppercase letters.If set, the black pieces will be head down, suitable for playing against friends on mobile devices.If set, the board will turn after each move, to show the natural view for the current player.If set, the captured figurines will be shown next to the board.If set, the elapsed time that a player used for the move is shown.If set, the hint analyzer engine evaluation value is shown.If set, the playing board will display labels and ranks for each chess field. These are usable in chess notation.If set, this hides the tab in the top of the playing window, when it is not needed.If the analyzer finds a move where the evaluation difference (the difference between the evaluation for the move it thinks is the best move and the evaluation for the move made in the game) exceeds this value, it will add an annotation for that move (consisting of the engine's Principal Variation for the move) to the Annotation panelIf you don't save, new changes to your games will be permanently lost.In TournamentIn this position, there is no legal move.Initial positionInitiativeInternational MasterInvalid move.It is not possible later to continue the game, if you don't save it.Jump to initial positionJump to latest positionKKingKnightKnight oddsKnightsLeave _FullscreenLightningLightning:Load _Recent GameLoaded gameLoading player dataLocal EventLocal SiteLog on ErrorLog on as G_uestLog on as _GuestLogging on to serverLosersLossMamer ManagerManage enginesManualManual AcceptManually accept opponentMate in %dMaximum analysis time in seconds:Minutes:Minutes: More channelsMore playersMove HistoryNNameNeeds 7 slashes in piece placement field. %sNever use animation. Use this on slow machines.New GameNo _animationNo chess engines (computer players) are participating in this game.No conversation's selectedNo soundNormalNot AvailableObserveObserve %sObserved _ends:OddsOffer A_bortOffer AbortOffer Ad_journmentOffer PauseOffer RematchOffer ResumeOffer UndoOffer _AbortOffer _DrawOffer _PauseOffer _ResumeOffer _UndoOfficial PyChess panel.OfflineOn FICS, your "Wild" rating encompasses all of the following variants at all time controls: One player starts with one less knight pieceOne player starts with one less pawn pieceOne player starts with one less queen pieceOne player starts with one less rook pieceOnlineOnly animate _movesOnly animate piece moves.Only registered users may talk to this channelOpen GameOpen Sound FileOpen _DatabaseOpening BookOpening booksOpponent RatingOpponent's strength: OtherOther (non standard rules)Other (standard rules)PParameters:PausePawnPawn oddsPawns PassedPawns PushedPingPlayPlay Fischer Random chessPlay Losers chessPlay RematchPlay _Internet ChessPlay normal chess rulesPlayer _RatingPlayers: %dPlayingPng imagePo_rts:Polyglot book file:Pre_viewPrefer figures in _notationPreferencesPressing Ctrl+Z to offer opponent the possible rollback moves.PrivateProbably because it has been withdrawn.PromotionProtocol:PyChess - Connect to Internet ChessPyChess - Internet Chess: FICSPyChess Game DatabasePyChess Information WindowPyChess databasePyChess has lost connection to the engine, probably because it has died. You can try to start a new game with the engine, or try to play against another one.PyChess.py:QQueenQueen oddsQuit PyChessRR_esignRandomRapidRatedRated gameRatingReceiving list of playersRemove symbolsRequest ContinuationResendResend %s?ResultResumeRookRook oddsRoundRound:Running Simul MatchSRS_ign upSanctionsSave GameSave Game _AsSave moves before closing?Saved gameScoreSearch:Seek _GraphSeek updatedSelect Gaviota TB pathSelect book fileSelect engineSelect sound file...Select the games you want to save:Select working directorySend ChallengeSend all seeksSend seekService RepresentativeSetting up environmentSetup PositionSho_w cordsShort on _time:ShoutShow ConsoleShow _ChatShow _captured piecesShow elapsed move timesShow evaluation valuesShow tips at startupShredderLinuxChess:ShuffleSide_panelsSimple Chess PositionSiteSite:Sound filesSp_y modeSpentStandardStandard:Start Private ChatStatusStep back one moveStep forward one moveSuicideTTDTMTeam AccountThe abort offerThe adjourn offerThe analyzer will run in the background and analyze the game. This is necessary for the hint mode to workThe chain button is disabled because you are logged in as a guest. Guests can't establish ratings, and the chain button's state has no effect when there is no rating to which to tie "Opponent Strength" toThe chat panel lets you communicate with your opponent during the game, assuming he or she is interestedThe clock hasn't been started yet.The comments panel will try to analyze and explain the moves playedThe connection was broken - got "end of file" messageThe directory where the engine will be started from.The displayed name of the first human player, e.g., John.The displayed name of the guest player, e.g., Mary.The draw offerThe endgame table will show exact analysis when there are few pieces on the board.The engine %s reports an error:The engine output panel shows the thinking output of chess engines (computer players) during a gameThe entered password was invalid. If you forgot your password, go to http://www.freechess.org/password to request a new one over email.The error was: %sThe file already exists in '%s'. If you replace it, its content will be overwritten.The flag callThe game #%s can't be loaded, because of an error parsing FENThe game can't be loaded, because of an error parsing FENThe game can't be read to end, because of an error parsing move %(moveno)s '%(notation)s'.The game ended in a drawThe game has been abortedThe game has been adjournedThe game has been killedThe game is pausedThe hint panel will provide computer advice during each stage of the gameThe inverse analyzer will analyze the game as if your opponent was to move. This is necessary for the spy mode to workThe move failed because %s.The moves sheet keeps track of the players' moves and lets you navigate through the game historyThe offer to switch sidesThe opening book will try to inspire you during the opening phase of the game by showing you common moves made by chess mastersThe pause offerThe reason is unknownThe resignationThe resume offerThe score panel tries to evaluate the positions and shows you a graph of the game progressThe takeback offerThebanThemesThere is %d game with unsaved moves.There are %d games with unsaved moves.This game can be automatically aborted without rating loss because there has not yet been two moves madeThis game can not be adjourned because one or both players are guestsThis is a continuation of an adjourned matchThis option is not applicable because you're challenging a playerThis option is not available because you're challenging a guest, Threat analysis by %sTimeTime control: Time pressureTip Of The dayTip of the DayTo play on Fullscreen mode, just type F11. Coming back, F11 again.To save a game Game > Save Game As, give the filename and choose where you want to be saved. At the bottom choose extension type of the file, and Save.Tolerance:Tournament DirectorTranslate PyChessTypeType or paste PGN game or FEN positions hereUUnable to accept %sUnclear positionUndescribed panelUndoUndo one moveUndo two movesUninstallUnknownUnofficial channel %dUnratedUnregisteredUntimedUpside DownUse _analyzerUse _inverted analyzerUse _local tablebasesUse _online tablebasesUse analyzer:Use opening _bookVariant developed by Kai Laskos: http://talkchess.com/forum/viewtopic.php?t=40990Variation annotation creation threshold in centipawns:W EloWFMWGMWIMWaitWas unable to save '%(uri)s' as PyChess doesn't know the format '%(ending)s'.WelcomeWhen this button is in the "locked" state, the relationship between "Opponent's strength" and "Your strength" will be preserved when a) your rating for the type of game sought has changed b) you change the variant or the time controlWhiteWhite has a new piece in outpost: %sWhite has a rather cramped positionWhite has a slightly cramped positionWhite should do pawn storm in leftWhite should do pawn storm in rightWhite:WildWildcastleWildcastle shuffleWinWith attackWoman FIDE MasterWoman Grand MasterWoman International MasterWorking directory:YouYou are currently logged in as a guest. A guest can't play rated games and therefore isn't able to play as many of the types of matches offered as a registered user. To register an account, go to http://www.freechess.org/Register/index.html.You asked your opponent to moveYou can play chess listening to the sounds of the game, for that, Settings > Preferences > Sound tab, enable Use sounds in PyChess and choose your preferred sounds.You can start a new game by Game > New Game, in New Game window do you can choose Players, Time Control and Chess Variants.You can't play rated games because "Untimed" is checked, You can't play rated games because you are logged in as a guestYou can't select a variant because "Untimed" is checked, You can't switch colors during the game.You don't have the necessary rights to save the file. Please ensure that you have given the right path and try again.You have been logged out because you were idle more than 60 minutesYou have opened no conversations yetYou have tried to undo too many moves.You may only have 3 outstanding seeks at the same time. If you want to add a new seek you must clear your currently active seeks. Clear your seeks?You sent a draw offerYou sent a pause offerYou sent a resume offerYou sent an abort offerYou sent an adjournment offerYou sent an undo offerYour opponent asks you to hurry!Your opponent has asked that the game be aborted. If you accept this offer, the game will end with no rating change.Your opponent has asked that the game be adjourned. If you accept this offer, the game will be adjourned and you can resume it later (when your opponent is online and both players agree to resume).Your opponent has asked that the game be paused. If you accept this offer, the game clock will be paused until both players agree to resume the game.Your opponent has asked that the game be resumed. If you accept this offer, the game clock will continue from where it was paused.Your opponent has asked that the last %s move(s) be undone. If you accept this offer, the game will continue from the earlier position.Your opponent has offered you a draw.Your opponent has offered you a draw. If you accept this offer, the game will end with a score of 1/2 - 1/2.Your opponent is not out of time.Your opponent must agree to abort the game because there has been two or more moves madeYour opponent seems to have changed their mind.Your opponent wants to abort the game.Your opponent wants to adjourn the game.Your opponent wants to pause the game.Your opponent wants to resume the game.Your opponent wants to undo %s move(s).Your panel settings have been reset. If this problem repeats, you should report it to the developersYour seeks have been removedYour strength: Zugzwang_Accept_Actions_Analyze Game_Black player:_Call Flag_Clear Seeks_Decline_Edit_Engines_Export Position_Fullscreen_Game_Game List_General_Help_Hide tabs when only one game is open_Hint mode_Hints_Invalid move:_Load Game_Log Off_Log Viewer_Name:_New Game_Next_Observed moves:_Opponent:_Password:_Play Normal chess_Player List_Previous_Replace_Rotate Board_Save %d document_Save %d documents_Save %d documents_Save Game_Seeks / Challenges_Show Sidepanels_Sounds_Start Game_Untimed_Use sounds in PyChess_View_White player:_Your Color:andand guests can't play rated gamesand on FICS, untimed games can't be ratedand on FICS, untimed games have to be normal chess rulesask your opponent to moveblackbrings a %(piece)s closer to enemy king: %(cord)sbrings a pawn closer to the backrow: %scall your opponents flagcaptures materialcastlesdefends %sdevelops a %(piece)s: %(cord)sdevelops a pawn: %sdrawsexchanges materialgnuchess:half-openhttp://brainking.com/en/GameRules?tp=2 * Placement of the pieces on the 1st and 8th row are randomized * The king is in the right hand corner * Bishops must start on opposite color squares * Black's starting position is obtained by rotating white's position 180 degrees around the board's center * No castlinghttp://en.wikipedia.org/wiki/Chesshttp://en.wikipedia.org/wiki/Chess960 FICS wild/fr: http://www.freechess.org/Help/HelpFiles/wild.htmlhttp://en.wikipedia.org/wiki/Rules_of_chessimproves king safetyin the %(x)s%(y)s filein the %(x)s%(y)s filesincreases the pressure on %sinvalid promoted piecematesminmoves a rook to an open filemoves an rook to a half-open filemoves bishop into fianchetto: %snot playingofoffer a drawoffer a pauseoffer a takebackoffer an abortoffer to adjournoffer to resumeoffer to switch sidesonline in totalpins an enemy %(oppiece)s on the %(piece)s at %(cord)splaces a %(piece)s more active: %(cord)spromotes a Pawn to a %spromotion move without promoted piece is incorrectputs opponent in checkrating range nowrescues a %sresignround %ssacrifies materialsecslightly improves king safetytakes back materialthe captured cord (%s) is incorrectthe end cord (%s) is incorrectthe move needs a piece and a cordthreatens to win material by %sto automatic acceptto manual acceptucivs.whitewindow1xboardxboard nocastle: http://home.hccnet.nl/h.g.muller/engine-intf.html#8 FICS wild/2: http://www.freechess.org/Help/HelpFiles/wild.html * Random arrangement of the pieces behind the pawns * No castling * Black's arrangement mirrors white'sxboard wildcastle http://home.hccnet.nl/h.g.muller/engine-intf.html#8 FICS wild/0: http://www.freechess.org/Help/HelpFiles/wild.html * White has the typical set-up at the start. * Black's pieces are the same, except that the King and Queen are reversed, * so they are not on the same files as White's King and Queen. * Castling is done similarly to normal chess: * o-o-o indicates long castling and o-o short castling.xboard wildcastle http://home.hccnet.nl/h.g.muller/engine-intf.html#8 FICS wild/1: http://www.freechess.org/Help/HelpFiles/wild.html * In this variant both sides have the same set of pieces as in normal chess. * The white king starts on d1 or e1 and the black king starts on d8 or e8, * and the rooks are in their usual positions. * Bishops are always on opposite colors. * Subject to these constraints the position of the pieces on their first ranks is random. * Castling is done similarly to normal chess: * o-o-o indicates long castling and o-o short castling.Project-Id-Version: pychess Report-Msgid-Bugs-To: POT-Creation-Date: 2016-01-27 13:28+0100 PO-Revision-Date: 2016-01-28 08:56+0000 Last-Translator: slav0nic Language-Team: Russian (http://www.transifex.com/gbtami/pychess/language/ru/) MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Language: ru Plural-Forms: nplurals=4; plural=(n%10==1 && n%100!=11 ? 0 : n%10>=2 && n%10<=4 && (n%100<12 || n%100>14) ? 1 : n%10==0 || (n%10>=5 && n%10<=9) || (n%100>=11 && n%100<=14)? 2 : 3); Увеличение: + %d c Предлагает вам сыграть игру типа %(time)s %(rated)s %(gametype)s шахматыприбываетотклоняет ваше предложение матчаотбываетиспытал задержку в 30 секундприменяет цензуру в отношении васиспытывает серьезную задержку, но не отключилсяприсутствует мин.занёс вас в черный списокиспользует формулу, неподобающую вашему запросу матча где %(player)s играет %(color)s. с кем у вас отложенная игра %(timecontrol)s %(gametype)s, сейчас онлайн. хочет продолжить отложенную вами игру %(time)s %(gametype)s.%(black)s одерживает победу,%(color)s имеют две пешки %(place)s%(color)s имеют изолированную пешку на вертикали %(x)s%(color)s имеют изолированные пешки на вертикалях %(x)s%(color)s имеют изолированные пешки на вертикалях %(x)s%(color)s получают новые сдвоенные пешки %(place)s%(color)s получают проходную пешку на %(cord)s%(color)s переместили %(piece)s на %(cord)s%(minutes)d мин + %(gain)d с/ход%(name)s %(minutes)d мин%(name)s %(minutes)d мин %(gain)d с/ход%(name)s %(minutes)d мин + %(gain)d с/ход%(opcolor)s получают нового епископа в ловушке на %(cord)s%(player)s %(status)s%(player)s играет %(color)s%(white)s одерживает победу,%d мин%s больше не могут сделать рокировку%s больше не могут сделать рокировку на стороне короля%s больше не могут сделать рокировку на стороне королевы%s перемещают пешки в устойчивую позицию%s возвращает ошибку%s было отклонено противником%s был снят вашим оппонентом%s попытается установить возможную угрозу, если ход будет делать ваш соперник%s попытается предсказать, какой ход лучший, и какая сторона имеет преимуществоИмя '%s' не зарегистрировано(Блиц)*0 Готовых Игроков0 из 010 мин + 6 с/ход, 1400↑, Белые10 мин + 6 с/ход, Белые1200Соперник2 мин, Шахматы Фишера, Черные5 мин5 мин, 1200-1800, ВручнуюПодключение к Free Online Chess ServerПешка должна быть заменена наPyChess не в состоянии загрузить ваши настройки панелиАнализАнимацияВариант ШахматДата проведения партииТип нотацииДанные о партииРежим подсказки анализирует вашу игру, для включения режима используйте Ctrl+H.Начальная позицияУстановленные боковые панелиИмя _первого игрока:Имя _второго игрока:НовостиОткрыть игруДебют, эндшпильСила соперникаНастройкиПроигрывать звук, если...ИгрокиШпионский режим анализирует игру противника, для включения режима используйте Ctrl+Y.Контроль времениИнструментыВаш цвет_Начать игруФайл '%s' уже существует. Вы хотите заменить?Компьютерная программа, %s, остановленаPyChess проверяет наличие шахматных движков. Пожалуйста, подождите.PyChess не смог сохранить партиюХоды в %d играх не сохранены. Сохранить изменения перед закрытием?Невозможно сохранить файл '%s'Неизвестный тип файла '%s'Вызов:Поставлен шах_Игрок сделал ход:Игрок взял _фигуру:ПрерватьО шахматахАктивироватьПринятьАктивировать сигнал, когда секунд _остается:Активное цветовое поле должно быть w или b. %sАктивных запросов: %dДобавить комментарийДобавить оценочный символДобавить символ ходаДобавить начальный комментарийДобавление предположений может помочь вам в поиске идей, но замедляет компьютерный анализ.Ошибка адресаОтложитьАдминистраторВсе шахматные файлыВсе файлыВсе белыеАналитика от %sАнализ с текущей позицииАнализировать игруАнализатор запущенАнимировать фигуры, повороты доски и др. (для быстрых компьютеров).Записанная играНотацияЛюбая силаПопросить сделать _ходАсимметричные случайныеАтомныйАвто _флагАвтоматически _переворачивать доску для текущего игрокаАвтовыходДоступенВЧ Елопотому что %(black)s отключилсяпотому что %(black)s отключился, а %(white)s предложил перенести партиюпотому что у %(black)s кончилось время, а у %(white)s не хватает материала, чтобы поставить матпотому что %(loser)s отключается от сетиПотому что король %(loser)s взорванпотому что у %(loser)s кончилось времяпотому что %(loser)s сдаётсяпотому что ставит мат %(loser)sпотому что %(mover)s в патепотому что %(white)s отключилсяпотому что %(white)s отключился, а %(black)s предложил перенести партиюпотому что у %(white)s кончилось время, а у %(black)s не хватает материала, чтобы поставить матпотому что у %(winner)s меньше фигурпотому что %(winner)s потерял все фигурыпотому что игрок прервал игру без согласия соперника - это разрешается до второго хода; рейтинг не изменилсяпотому что игрок отключился, а для переноса партии было сделано слишком мало ходов; рейтинг не изменилсяпотому что игрок потерял связь с серверомпотому что один игрок отключился, а второй предложил перенести партиюпотому что оба соперника согласились на ничьюпотому что оба соперника согласились прервать игру; рейтинг не изменилсяпотому что оба соперника согласились перенести партиюпотому что у игроков одинаковое число фигурпотому что у обоих соперников кончилось времяпотому что обоим игрокам не хватает материала, чтобы поставить матпотому что администратор перенёс игрупотому что администратор перенёс игру; рейтинг не изменилсяиз-за любезности игрока; рейтинг не изменилсяПотому что движок %(black)s сдохПотому что движок %(white)s умерпотому что соединение с сервером потерянопотому что игра превысила максимальную длительностьпотому что последние 50 ходов не принесли ничего новогопотому что одна и та же позиция повторилась три раза подрядпотому что сервер отключилсяпотому что сервер отключился; рейтинг не изменилсяСигналслонаЧёрныеЧёрные имеют новую фигуру в защите %sЧёрные имеют довольно стеснённую позициюЧёрные имеют несколько стеснённую позициюЧёрные должны брать пешкой налевоЧёрные должны брать пешкой направоЧерные:ВслепуюАккаунт Слепое пятноБлицБлиц:БагхаусCCAВычисление...Неправильное поле возможности рокировки. %sЦентр:ВызовВызов: Вызов: Изменить ТолерантностьЧатШахматный советчикДиаграмма Chess Alpha 2Portable Game NotationШахматная позицияШахматный возгласРазновидность шахмат отвечает за варианты расположения фигур на последних линиях на доске.Потребовать ничьюКлассические шахматные правила http://en.wikipedia.org/wiki/ChessКлассические правила шахмат со всеми белыми фигурами http://en.wikipedia.org/wiki/Blindfold_chessКлассические правила шахмат со скрытыми фигуринами http://en.wikipedia.org/wiki/Blindfold_chessКлассические правила шахмат со скрытыми пешками http://en.wikipedia.org/wiki/Blindfold_chessКлассические правила шахмат со скрытыми фигурами http://en.wikipedia.org/wiki/Blindfold_chessЧасы_Закрыть без сохраненияОкрашивать проанализированные ходыПараметры командной строки для движка.Команда:КомментарииКонпенсацияКомпьютерПодключениеСоединение с серверомОшибка подключенияПодключение было закрытоПродолжать ждать противника или попробовать отложить игру?Информация о беседеБеседыУголкиНе удалось сохранить файлКонтриграДурдомСоздать ЗапросDДатаДата/ВремяОтклонитьПо умолчаниюЦелевой хост недоступенАвтоматически определять типРазработка расш.МертвЗнаете ли вы, что можно завершить шахматную партию всего за два хода?Знаете ли вы, что количество возможных вариантов игр в шахматах превышает число атомов во Вселенной?Знаете ли вы, что вы можете бросить флаг, когда у вас все еще есть запас времени, выберите Действия > Бросить флаг.Знаете ли вы, что можете помочь перевести Pychess на ваш язык, Справка > Перевести Pychess.Не важноНичьяАккаунт чучелоECOРедактировать ЗапросРедактировать запрос: Редактировать комментарийПочтаПроходная координата недопустима. %sЭндшпильная таблицаДвижок считает очки в пешечных единицах, с точки зрения белых. Двойной щелчок по аналитическим линиям позволяет вам вставить их в панель аннотаций в качестве вариантов.ДвижкиДвижки, использующие коммуникационный протокол uci или xboard для общения с графическим интерфейсом пользователя. Если есть возможность использовать оба, вы можете установить здесь тот, который вам нравится.Начать партиюВвес_ти нотацию игрыОшибка распознавания хода %(moveno)s %(mstr)sСобытиеТурнир:Исследовать отсроченную игруИсследованоИсследованиеЭкспорт позицииFEN необходимо 6 полей с данными. %sFEN необходимо по крайней мере 2 поля с данными в fenstr. %sFICS атомный: http://www.freechess.org/Help/HelpFiles/atomic.htmlFICS багхаус: http://www.freechess.org/Help/HelpFiles/bughouse.htmlFICS дурдом: http://www.freechess.org/Help/HelpFiles/crazyhouse.htmlПроигравшие FICS: http://www.freechess.org/Help/HelpFiles/losers_chess.htmlFICS суицид: http://www.freechess.org/Help/HelpFiles/suicide_chess.htmlFICS wild/3: http://www.freechess.org/Help/HelpFiles/wild.html * Случайные фигуры (возможно две королевы или три пешки) * Точно по одному королю каждого цвета * Фигуры расположены случайно позади пешек * Без рокировки * Расположение черных отражает расположение белыхFICS wild/4: http://www.freechess.org/Help/HelpFiles/wild.html * Случайные фигуры (возможно две королевы или три пешки) * По одному королю каждого цвета * Фигуры располагаются случайным образом за пешками, ДЕЙСТВУЕТ ОГРАНИЧЕНИЕ - ЕПИСКОПЫ СБАЛАНСИРОВАНЫ * Без рокировки * Расположение черных НЕ отражает расположение белыхFICS wild/5: http://www.freechess.org/Help/HelpFiles/wild.html http://en.wikipedia.org/wiki/Chess_variant#Chess_with_different_starting_positions Пешки начинают на их 7ом ранге в отличие от их 2го ранга!FICS wild/8: http://www.freechess.org/Help/HelpFiles/wild.html Пешки начинают на 4ом и 5ом ранге, вместо 2го и 7гоFICS wild/8a: http://www.freechess.org/Help/HelpFiles/wild.html Белые пешки начинают на 5ом ранге и черные пешки на 4ом рангеМастер ФИДЕFM_Полная анимация доскиРежим отображения _Лицом к ЛицуФайл существуетФишеровские случайныеФорсированный ходGMДобавлять за ход:Информация об игреВ партии _ничья:Партия _проиграна:Партия на_чалась:Партия _выиграна:Текущие игры: %dПуть к Gaviota TB:В общих чертах, это ничего не значит, потому как игра зависит от времени, но если вы хотите попросить противника, возможно вам стоит продолжить.ГроссмейстерГость_Логин:Скрытые пешкиСкрытые фигурыСкрытьПодсказкиКак игратьЧеловекIMИНБездействиеЕсли установлено, PyChess будет окрашивать оптимальные проанализированные ходы красным.Если установлено, PyChess будет показывать результаты игры для различных ходов в позициях, состоящих из 6 или менее фигур. Будет искать позиции из http://www.k4it.de/Если установлено, PyChess будет показывать результаты игры для различных ходов в позиции, содержащей 6 или менее фигур. Вы можете загрузить файлы таблиц из: http://www.olympuschess.com/egtb/gaviota/Если установлено, PyChess будет предлагать лучшие ходы дебютов на панели подсказок.Если включено, PyChess будет отображать в нотации ходов фигуры, а не заглавные буквы.Если включено, чёрные фигуры располагаются вверх ногами. Это удобно для игры вдвоём на мобильных устройствах.Если включено, доска будет автоматически поворачиваться после каждого хода в положение для текущего игрока.Если установлено, захваченные фигуры будут показаны рядом с доской.Если установлено, будет показано время, которое игрок потратил на ход.Если установлено, покажет оценки движка для анализа подсказок.Если установлено, игровая доска будет отображать метки и ранг для каждого игрового поля. Это полезно для шахматной нотации.Если включено, скрывает вкладку наверху игрового окна, когда она не нужна.Если анализатор найдет ход, разница оценки которого (разница между оценкой хода по его мнению наилучшего и оценкой ходов, сделанных в игре) превосходит это значение, он добавит аннотацию для этого хода (в зависимости от принципиальной вариации движка для хода) на панель аннотацийЕсли вы не сохранитесь, все изменения будут безвозвратно утеряны.В турниреВ этой позиции нет допустимого хода.Начальная позицияИнициативаМеждународный МастерНедопустимый ход.Будет невозможно продолжить игру позже, если вы ее не сохраните.Перейти к начальной позицииПерейти к последней позицииKКорольконяНеравенство конейРыцари_Покинуть полноэкранный режимМолнияМолния:Загрузить _недавнюю игруПартия загруженаЗагрузка данных игрокаЛокальный турнирЛокальное местоОшибка авторизацииВойти как _гостьВойти как _гостьАвторизация на сервереПоддавкиПоражениеУправляющий мамеромУправление движкамиВручнуюВручнуюВручную принимать соперникаМат в %dМаксимальное время анализа в секунду:Минуты:Минуты: Больше каналовБольше игроковИстория ходовNИмяТребуется 7 слэшэй в поле расположения фигур. %sНикогда не использовать анимацию (для слабых машин).Новая играБез _анимацииВ этой игре не участвуют шахматные движки (игроки-компьютеры).Нет выбранных беседБез звукаКлассикаНедоступенНаблюдатьНаблюдать %s_Конец партии при наблюдении:Перевес_Отменить предложениеПредложить ПрерватьПредложить _отложить игруПредложить паузуПредложить реваншПредложить продолжитьПредложить отмену_Отменить предложениеПредложить _ничьюПредложить сделать _перерывПредложить _продолжитьПредложить _отменить ходОфициальная PyChess панельОтключёнНа FICS ваш "Дикий" рейтинг охватывает все представленные варианты во всех регламентах. У одного из игроков на одного коня меньшеУ одного из игроков на одну пешку меньшеУ одного из игроков на одну королеву меньшеУ одного из игроков на одну ладью меньшеПодключенАнимировать только _ходыАнимировать только движения фигур.В этом канале могут общаться только зарегистрированные пользователиОткрыть игруОткрыть звуковой файлОткрыть _базу данныхКнига дебютовКниги дебютовРетинг СоперникаСила соперника: ДругиеДругое (нестандартные правила)Другое (стандартные правила)PПараметры:ПаузапешкуНеравенство пешекПроходные пешкиПроведенные пешкиОткликИгратьИграть в шахматы ФишераИграть в шахматные поддавкиИграть реваншПодключ_иться к шахматному серверуИгра по классическим правилам_Рейтинг игрокаИгроков: %dИграетPng изображениеПо_рты:Файл книги Polyglot:Т_ест_Использовать изображения фигур в нотацииПараметрыНажатие Ctrl+Z предложит противнику возможность отменить ходы.ПриватВозможно, потому что он покинул партию.Превращение пешкиПротокол:PyChess - Подключение к Интернет ШахматамPyChess — Интернет-шахматы: FICSБаза данных игры PyChessИнформационное окно PyChessБаза данных PyChessPyChess потерял связь с компьютерной программой, возможно из-за её остановки. Вы можете попытаться начать новую игру с той же компьютерной программой или против какой-либо другой.PyChess.py:QферзяНеравенство королевВыход из PyChessR_СдатьсяСлучайныйРапидРейтинговаяРейтинговая играРейтингПолучение списка игроковУдалить символыЗапросить продолжениеПересылкаПереслать %s?РезультатПродолжениеладьюНеравенство ладейТурТур:Запустить симуляционный матчSRР_егистрацияСанкцииСохранить игруСохранить игру _какСохранить ходы перед закрытием?Партия сохраненаСчётИскать:_График ЗапросовПоиск обновленВыбрать путь Gaviota TBВыбрать файл книгиВыбрать движокЗвуковой файл...Выберите партии, которые вы хотите сохранить:Выберите рабочую директориюОтправить ВызовОтправить все поискиИскать соперникаСлужебный представительНастройка окруженияНастроить позициюПоказывать _координатыМало _времени:КрикПоказать консольПоказать _чатПоказывать _захваченные фигурыПоказать время пройденых ходовПоказывать значения оценкиПоказывать советы при запускеShredderLinuxChess:ПеремешиватьБоковые _панелиForsyth-Edwards NotationСайтМесто:Звуковые файлы_Шпионский режимПрошлоСтандартСтандарт:Начать Приватный ЧатСтатусНазад на один ходВперёд на один ходСамоубийствоTTDTMКомандный аккаунтПредложение прерватьПредложение отложитьАнализатор будет в фоновом режиме анализировать партию. Это необходимо для работы режима подсказокКнопка цепи отключена, потому что вы вошли в качестве гостя. Гости не могут устанавливать рейтинги, и состояние кнопки цепи не учитывается, когда нет рейтинга, к которому привязыают "Силу противника"Панель чата позволяет общаться с соперником во время игры, если у него есть такое желаниеЧасы ещё не запущены.Панель комментариев пытается анализировать и пояснять сделанные ходыСвязь была нарушена - получено сообщение "end of file"Директория, из которой будет запускаться движок.Отображаемое имя первого игрокаОтображаемое имя гостяПредложение ничьейТаблица эндшпиля покажет точную аналитику, когда на доске останется мало фигур.Движок %s сообщил об ошибке:Панель вывода движка показывает мыслительный процесс движков (компьютерных игроков) во время игрыВведен неправильный пароль. Если вы забыли пароль, пройдите на http://www.freechess.org/password чтобы запросить новый по электронной почте.Ошибка: %sФайл уже существует в '%s'. Если вы замените его, содержимое будет перезаписано.Вызвать флагНе удалось загрузить игру #%s из-за ошибки синтаксического разбора FENНе удалось загрузить игру из-за ошибки синтаксического разбора FENНе удаётся прочитать игру до конца из-за ошибки синтаксического разбора хода %(moveno)s '%(notation)s'.Партия закончилась вничьюПартия прерванаПартия перенесенаПартия принудительно завершенаИгра приостановленаПанель подсказок предоставляет советы компьютера на каждом этапе игрыОбратный анализатор будет анализировать партию со стороны противника. Это необходимо для работы в шпионском режимеХод не совершен из-за %s.Список ходов содержит ходы, сделанные игроками, и позволяет перемещаться по истории игрыПредложение поменяться местамиКнига дебютов поможет вам на ранней стадии игры, показывая ходы, сделанные великими шахматными игрокамиПредложение приостановитьПричина неизвестнаСдача партииПредложение продолжитьПанель очков пытается оценить позиции и показывает график игрового прогрессаПредложение отменить ходФивТемыИмеется %d игра с несохранёнными ходами.Имеется %d игры с несохранёнными ходами.Имеется %d игр с несохранёнными ходами.Имеется %d игр с несохранёнными ходами.Эту игру можно автоматически прервать без потери рейтинга, так как ещё не сделано двух ходовИгра не может быть перенесена, потому что один из игроков гостьЭто продолжение отложенного матчаЭто неподходящая опция, потому что вы вызываете игрокаЭта опция недоступна, так как вы вызываете гостя, Поточная аналитика от %sВремяКонтроль времени: Временное давлениеСовет дняСовет дняЧтобы играть в Полноэкранном режиме просто нажмите F11b. Чтобы вернуться в оконный, нажмите F11 снова.Для сохранения игры выберите Игра > Сохранить игру как, задайте имя файла и выберите путь сохранения. Снизу выберите тип файла, и нажмите Сохранить.Толерантность:Директор турнираПеревести PyChessТипВведите или вставьте сюда PGN игру или FEN позицииUНе возможно принять %sВернуть позициюНеописанная панельОтменаОтменить один ходОтменить два ходаУдалитьНеизвестныйНеофициальный канал %dНерейтинговаяБез регистрацииБез времениСверху внизИспользовать _анализаторИспользовать _обратный анализаторИспользовать _локальные таблицыИспользовать _онлайн таблицыИспользовать анализатор:Использовать _книгу дебютовВариант, разработанный Кайем Ласкосом: http://talkchess.com/forum/viewtopic.php?t=40990Вариации погрешности создания аннотации в сантипешках:Б ЕлоWFMWGMWIMОжиданиеНе удалось сохранить '%(uri)s', так как PyChess не знает формата '%(ending)s'.Добро пожаловатьКогда эта кнопка в "заблокированном" состоянии, отношение между "силой оппонента" и "вашей силой" будет сохраняться при а) Ваш рейтинг для искомого типа игры был изменен б) Вы изменяете варианты управления временемБелыеБелые имеют новую фигуру в защите %sБелые имеют довольно стеснённую позициюБелые имеют несколько стеснённую позициюБелые должны брать пешкой налевоБелые должны брать пешкой направоБелые:ДикиеДикий замокДикий замок вперемешкуПобедаС атакойЖенский мастер FIDEЖенский ГроссмейстерЖенский Международный МастерРабочая директория:ВыСейчас вы вошли в качестве гостя. Гости не могут играть в игры на рейтинг, поэтому не могут иметь возможность играть и в другие типы матчей, предлагаемые для зарегистрированных пользователей. Чтобы зарегистрироваться, пройдите на http://www.freechess.org/Register/index.html.Вы попросили соперника сделать ходВы можете играть в шахматы со звуками в игре, для этого войдите в Настройки > Предпочтения > Звуки, включите Использовать звуки в PyChess и выберите звуки на свое усмотрение.Вы можете начать новую игру с помощью Игра > Новая игра, в онке Новая игра и выбрать Игроков, Регламент и Разновидность шахмат.Вы не можете играть рейтинговую игру, потому что выбрано "Без времени", Вы не можете играть рейтинговые игры, потому что вы зашли как гостьВы не можете выбрать вариант, потому что выбрано "Без времени", Вы не можете сменить цвета во время игры.У вас нет необходимых прав для сохранения файла. Пожалуйста, проверьте, указали ли вы правильный путь и попробуйте снова.Вы отключены из-за бездействия более 60 минутУ вас нет открытых бесед покаВы пытаетесь отменить слишком много ходов.Вы можете себе позволить лишь 3 поиска в одно время. Если вы хотите добавить новый поиск, вы должны отменить ваши активные поиски. Отменить их?Вы предложили ничьюВы предложили приостановить игруВы предложили продолжитьВы отменили предложениеВы предложили отложить игруВы отменили предложениеПротивник просит вас поторопиться!Ваш соперник предложил прервать игру. Если вы примете предложение, игра закончится без изменения рейтинга.Ваш соперник предложил отложить игру. Если вы примете предложение, игру можно будет продолжить позже (когда соперник будет в сети и оба игрока согласятся продолжить игру).Ваш соперник предложил приостановить игру. Если вы примете предложение, игровые часы будут приостановлены, пока оба игрока не будут согласны продолжить игру.Ваш соперник предложил продолжить игру. Если вы примете предложение, часы продолжат отсчёт с момента их приостановки.Ваш соперник предложил отменить последние %s ходов. Если вы примете предложение, игра продолжится с предыдущей позиции.Ваш соперник предложил вам ничью.Ваш соперник предложил ничью. Если вы примите предложение, то игра закончится со счётом 1/2 - 1/2.У противника не истекло время.Чтобы прервать игру, требуется согласие соперника, так как уже сделано два хода или болееКажется, ваш противник передумал.Ваш соперник хочет отменить игру.Ваш соперник хочет отложить игру.Ваш соперник хочет приостановить игру.Ваш соперник хочет продолжить игру.Ваш соперник хочет отменить %s ход(ов).Ваши настройки панели были сброшены. Если проблема повторится, вам следует доложить о ней разработчикамВаши поиски были удаленыВаша сила: Цугцванг_Принять_Действия_Анализ игры_Игрок за черных:Проверить _флажок_Очистить Запросы_Отклонить_Правка_Движки_Экспорт Позиции_Полноэкранный режим_Игра_Игры_Общие_Справка_Скрывать вкладки, если открыта только одна играРежим _подсказок_Подсказки_Недопустимый ход:_Загрузить игру_Отключиться_Просмотр журнала_Имя:_Новая игра_СледующийСделан _ход при наблюдении:_Соперник:_Пароль:_Играть в обычные шахматыИ_гроки_Предыдущий_Заменить_Повернуть доску_Сохранить %d документ_Сохранить %d документа_Сохранить %d документов_Сохранить %d документов_Сохранено %d документ(ов)_Сохранить игру_Запросы / Вызовы_Показывать боковые панели_Звуки_Начать игру_Без времени_Использовать звуки в PyChess_Вид_Игрок за белых:_Ваш цвет:ии Гости не могут играть рейтинговые игрыи на FICS, игры "Без времени" не могут быть рейтинговымии на FICS, игры "Без времени" должны быть Классическими шахматамипопросить противника сделать ходчёрныепродвигают %(piece)s ближе к королю противника: %(cord)sпродвигают пешку ближе к последней диагонали ходом %sбросить флаг противникавыигрывают материалрокируютсязащищают %sразвивает %(piece)s: %(cord)sразвитие пешки: %sсделали ничьюразменивают материалgnuchess:полуоткрытойhttp://brainking.com/en/GameRules?tp=2 * Расположение фигур на 1ой и 8ой строках случайное * Король в углу по правую руку * Епископы должны начинать на квадратах противоположных цветов * Позиция черных обеспечивается поворотом позиции белых на 180 градусов относительно центра доски * Без рокировкиhttp://ru.wikipedia.org/wiki/%D0%A8%D0%B0%D1%85%D0%BC%D0%B0%D1%82%D1%8Bhttp://en.wikipedia.org/wiki/Chess960 FICS wild/fr: http://www.freechess.org/Help/HelpFiles/wild.htmlhttp://ru.wikipedia.org/wiki/%D0%A8%D0%B0%D1%85%D0%BC%D0%B0%D1%82%D1%8B#.D0.9F.D1.80.D0.B0.D0.B2.D0.B8.D0.BB.D0.B0улучшают защиту короляна %(x)sвертикали %(y)sв файлах %(x)s%(y)sувеличивают давление на %sнедопустимая фигура продвиженияпоставили матминперемещают ладью на открытую вертикальперемещают ладью на полуоткрытую вертикальфианкетируют слона на %sвне игрыизпредложить ничьюпредложить приостановкупредложить отменить ходпредложить прерватьпредложить отложить партиюпредложить продолжитьпредложить поменяться местамина связисвязывает %(oppiece)s противника с %(piece)s на %(cord)sактивно располагает %(piece)s на: %(cord)sспособствуют продвижению пешки на %sход продвижения без продвигаемой фигуры недопустимдают шах противникудиапазон рейтингаспасают %sсдатьсяраунд %sжертвуют материалснесколько улучшают защиту королявозвращают материалнедопустимая захваченная координата (%s)недопустимая конечная координата (%s)для хода требуется фигура и координатыугрожает выиграть материал с %sдля автоматического одобрениядля одобрения вручнуюuciпротивбелыеокно1xboardxboard без рокировки: http://home.hccnet.nl/h.g.muller/engine-intf.html#8 FICS wild/2: http://www.freechess.org/Help/HelpFiles/wild.html * Фигуры расположены случайным образом за пешками * Нет рокировки * Расположение черных отражает расположение белыхДикий замок xboard http://home.hccnet.nl/h.g.muller/engine-intf.html#8 FICS wild/0: http://www.freechess.org/Help/HelpFiles/wild.html * Белые имеют типичную расстановку в начале. * Черные фигуры тоже, кроме того, что Король и Королева меняются местами, * таким образом они не в таком же положении как Король и Королева белых. * Рокировка происходит как в нормальных шахматах: * o-o-o указывает на длинную рокировку и o-o указывает на короткую.Дикий замок xboard http://home.hccnet.nl/h.g.muller/engine-intf.html#8 FICS wild/1: http://www.freechess.org/Help/HelpFiles/wild.html * В этом варианте обе стороны имеют одинаковый набор фигур, как и в нормальной игре. * Белый король начинает на d1 или e1 и черный король начинает на d8 или e8, * и пешки находятся в своем обычном положении. * Епископы всегда на противоположных цветах. * С учетом этих ограничений положение фигур на их первом ранге является случайным. * Рокировка происходит как в нормальных шахматах: * o-o-o указывает на длинную рокировку и o-o указывает на короткую.pychess-0.12.2/lang/ca/0000755000175000017470000000000012653231274015061 5ustar tamasusers00000000000000pychess-0.12.2/lang/ca/LC_MESSAGES/0000755000175000017470000000000012653231274016646 5ustar tamasusers00000000000000pychess-0.12.2/lang/ca/LC_MESSAGES/pychess.po0000644000175000017470000024551512653216204020674 0ustar tamasusers00000000000000# SOME DESCRIPTIVE TITLE. # Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER # This file is distributed under the same license as the pychess package. # # Translators: # FIRST AUTHOR , 2007 msgid "" msgstr "" "Project-Id-Version: pychess\n" "Report-Msgid-Bugs-To: \n" "POT-Creation-Date: 2016-01-27 13:28+0100\n" "PO-Revision-Date: 2016-01-28 08:56+0000\n" "Last-Translator: slav0nic \n" "Language-Team: Catalan (http://www.transifex.com/gbtami/pychess/language/ca/)\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" "Language: ca\n" "Plural-Forms: nplurals=2; plural=(n != 1);\n" # "Plural-Forms: nplurals=INTEGER; plural=EXPRESSION;\n" #: glade/analyze_game.glade:22 msgid "Analyze game" msgstr "" #: glade/analyze_game.glade:87 msgid "Use analyzer:" msgstr "" #: glade/analyze_game.glade:122 glade/PyChess.glade:2054 msgid "Maximum analysis time in seconds:" msgstr "" #: glade/analyze_game.glade:163 msgid "" "If the analyzer finds a move where the evaluation difference (the difference" " between the evaluation for the move it thinks is the best move and the " "evaluation for the move made in the game) exceeds this value, it will add an" " annotation for that move (consisting of the engine's Principal Variation " "for the move) to the Annotation panel" msgstr "" #: glade/analyze_game.glade:164 msgid "Variation annotation creation threshold in centipawns:" msgstr "" #: glade/analyze_game.glade:198 msgid "Analyze from current position" msgstr "" #: glade/analyze_game.glade:214 msgid "Add threatening variation lines " msgstr "" #: glade/analyze_game.glade:229 glade/PyChess.glade:1459 msgid "Colorize analyzed moves" msgstr "" #: glade/analyze_game.glade:244 glade/PyChess.glade:1495 msgid "Show evaluation values" msgstr "" #: glade/discovererDialog.glade:18 msgid "PyChess is discovering your engines. Please wait." msgstr "" #: glade/discovererDialog.glade:77 msgid "PyChess.py:" msgstr "PyChess.py:" #: glade/discovererDialog.glade:89 msgid "ShredderLinuxChess:" msgstr "" #: glade/discovererDialog.glade:101 msgid "gnuchess:" msgstr "gnuchess:" #: glade/fics_logon.glade:7 msgid "PyChess - Connect to Internet Chess" msgstr "PyChess - Connectar-se als Escacs per Internet" #: glade/fics_logon.glade:47 msgid "Connect to the Free Online Chess Server" msgstr "Connectar-se a un servidor Online gratuït d'Escacs" #: glade/fics_logon.glade:129 glade/taskers.glade:394 msgid "_Password:" msgstr "_Contrasenya:" #: glade/fics_logon.glade:143 msgid "_Name:" msgstr "_Nom:" #: glade/fics_logon.glade:191 msgid "Log on as _Guest" msgstr "Entrar com _Visitant" #: glade/fics_logon.glade:227 msgid "Host:" msgstr "" #: glade/fics_logon.glade:259 msgid "Po_rts:" msgstr "Po_rts:" #: glade/fics_logon.glade:271 msgid "Auto login on startup" msgstr "" #: glade/fics_logon.glade:385 msgid "S_ign up" msgstr "" #: glade/fics_lounge.glade:35 msgid "Challenge: " msgstr "" #: glade/fics_lounge.glade:97 msgid "Send Challenge" msgstr "" #: glade/fics_lounge.glade:133 msgid "Challenge:" msgstr "" #: glade/fics_lounge.glade:327 glade/fics_lounge.glade:2078 msgid "Lightning:" msgstr "" #: glade/fics_lounge.glade:351 glade/fics_lounge.glade:2102 msgid "Standard:" msgstr "Estàndard:" #: glade/fics_lounge.glade:375 glade/fics_lounge.glade:2126 msgid "Blitz:" msgstr "" #: glade/fics_lounge.glade:400 msgid "2 min, Fischer Random, Black" msgstr "" #: glade/fics_lounge.glade:422 msgid "10 min + 6 sec/move, White" msgstr "10 min + 6 sec/moviment, Blanques" #: glade/fics_lounge.glade:444 msgid "5 min" msgstr "5 mins." #: glade/fics_lounge.glade:480 msgid "Edit Seek" msgstr "" #: glade/fics_lounge.glade:584 lib/pychess/ic/ICLounge.py:2208 #: lib/pychess/ic/__init__.py:101 lib/pychess/Utils/GameModel.py:206 msgid "Untimed" msgstr "Sense temps" #: glade/fics_lounge.glade:637 msgid "Minutes: " msgstr "" #: glade/fics_lounge.glade:665 msgid " Gain: " msgstr "" #: glade/fics_lounge.glade:703 msgid "Time control: " msgstr "" #: glade/fics_lounge.glade:716 lib/pychess/ic/FICSObjects.py:56 #: lib/pychess/ic/ICLounge.py:1137 lib/pychess/ic/ICLounge.py:2208 #: lib/pychess/ic/__init__.py:99 msgid "Standard" msgstr "Estàndard" #: glade/fics_lounge.glade:757 glade/newInOut.glade:633 msgid "Time Control" msgstr "Control de temps" #: glade/fics_lounge.glade:814 glade/fics_lounge.glade:1346 msgid "Don't care" msgstr "" #: glade/fics_lounge.glade:879 msgid "Your strength: " msgstr "" #: glade/fics_lounge.glade:921 msgid "(Blitz)" msgstr "(Blitz)" #: glade/fics_lounge.glade:951 msgid "Opponent's strength: " msgstr "" #: glade/fics_lounge.glade:1055 msgid "" "When this button is in the \"locked\" state, the relationship\n" "between \"Opponent's strength\" and \"Your strength\" will be\n" "preserved when \n" "a) your rating for the type of game sought has changed\n" "b) you change the variant or the time control" msgstr "" #: glade/fics_lounge.glade:1095 msgid "Center:" msgstr "Centre:" #: glade/fics_lounge.glade:1134 msgid "1200" msgstr "1200" #: glade/fics_lounge.glade:1188 msgid "Tolerance:" msgstr "Tolerància:" #: glade/fics_lounge.glade:1243 lib/pychess/ic/ICLounge.py:2452 msgid "Hide" msgstr "Amaga" #: glade/fics_lounge.glade:1289 msgid "Opponent Strength" msgstr "" #: glade/fics_lounge.glade:1386 lib/pychess/Database/gamelist.py:40 #: lib/pychess/ic/ICLounge.py:1357 lib/pychess/ic/ICLounge.py:1557 #: lib/pychess/ic/ICLounge.py:2108 lib/pychess/Utils/repr.py:10 #: lib/pychess/widgets/ChessClock.py:40 #: lib/pychess/widgets/TaskerManager.py:153 msgid "White" msgstr "Blanques" #: glade/fics_lounge.glade:1414 lib/pychess/Database/gamelist.py:40 #: lib/pychess/ic/ICLounge.py:1358 lib/pychess/ic/ICLounge.py:1558 #: lib/pychess/ic/ICLounge.py:2110 lib/pychess/Utils/repr.py:10 #: lib/pychess/widgets/ChessClock.py:40 #: lib/pychess/widgets/TaskerManager.py:154 msgid "Black" msgstr "Negres" #: glade/fics_lounge.glade:1453 msgid "Your Color" msgstr "" #: glade/fics_lounge.glade:1512 msgid "Play normal chess rules" msgstr "" #: glade/fics_lounge.glade:1552 msgid "Play" msgstr "Juga" #: glade/fics_lounge.glade:1618 glade/newInOut.glade:833 msgid "Chess Variant" msgstr "" #: glade/fics_lounge.glade:1676 msgid "Rated game" msgstr "" #: glade/fics_lounge.glade:1692 msgid "Manually accept opponent" msgstr "" #: glade/fics_lounge.glade:1722 msgid "Options" msgstr "Opcions" #: glade/fics_lounge.glade:1750 msgid "PyChess - Internet Chess: FICS" msgstr "PyChess - Internet Chess: FICS" #: glade/fics_lounge.glade:1823 msgid "_Clear Seeks" msgstr "" #: glade/fics_lounge.glade:1847 msgid "_Accept" msgstr "_Accepta" #: glade/fics_lounge.glade:1871 msgid "_Decline" msgstr "" #: glade/fics_lounge.glade:2151 msgid "2 min, Fischer Random, 1800↓, Black" msgstr "" #: glade/fics_lounge.glade:2172 msgid "10 min + 6 sec/move, 1400↑, White" msgstr "10 min + 6 sec/moviment, 1400↑, Blanques" #: glade/fics_lounge.glade:2193 msgid "5 min, 1200-1800, Manual" msgstr "5 min, 1200-1800, Manual" #: glade/fics_lounge.glade:2247 msgid "Send all seeks" msgstr "" #: glade/fics_lounge.glade:2301 msgid "Send seek" msgstr "" #: glade/fics_lounge.glade:2337 msgid "Create Seek" msgstr "" #: glade/fics_lounge.glade:2353 msgid "_Seeks / Challenges" msgstr "" #: glade/fics_lounge.glade:2374 lib/pychess/ic/ICLounge.py:472 #: lib/pychess/ic/ICLounge.py:670 lib/pychess/ic/ICLounge.py:1357 #: lib/pychess/ic/ICLounge.py:1358 msgid "Rating" msgstr "Puntuació" #: glade/fics_lounge.glade:2399 msgid "Time" msgstr "Temps" #: glade/fics_lounge.glade:2419 msgid "Seek _Graph" msgstr "" #: glade/fics_lounge.glade:2444 msgid "0 Players Ready" msgstr "" #: glade/fics_lounge.glade:2496 msgid "Challenge" msgstr "Repte" #: glade/fics_lounge.glade:2549 glade/fics_lounge.glade:2735 msgid "Observe" msgstr "" #: glade/fics_lounge.glade:2602 msgid "Start Private Chat" msgstr "" #: glade/fics_lounge.glade:2659 msgid "_Player List" msgstr "" #: glade/fics_lounge.glade:2792 msgid "_Game List" msgstr "" #: glade/fics_lounge.glade:2847 msgid "_My games" msgstr "" #: glade/fics_lounge.glade:2904 glade/PyChess.glade:841 msgid "Offer _Resume" msgstr "" #: glade/fics_lounge.glade:2962 glade/PyChess.glade:880 msgid "R_esign" msgstr "" #: glade/fics_lounge.glade:3006 glade/PyChess.glade:820 msgid "Offer _Draw" msgstr "Ofereix _Taules" #: glade/fics_lounge.glade:3050 msgid "Offer A_bort" msgstr "" #: glade/fics_lounge.glade:3107 msgid "Pre_view" msgstr "Pre_visualització" #: glade/fics_lounge.glade:3151 msgid "Examine" msgstr "" #: glade/fics_lounge.glade:3208 msgid "_Archived" msgstr "" #: glade/fics_lounge.glade:3313 msgid "News" msgstr "Notícies" #: glade/fics_lounge.glade:3345 msgid "Show Console" msgstr "" #: glade/fics_lounge.glade:3359 msgid "Show _Chat" msgstr "Mostra _Xat" #: glade/fics_lounge.glade:3373 msgid "_Log Off" msgstr "" #: glade/fics_lounge.glade:3393 msgid "Tools" msgstr "Eines" #: glade/fics_lounge.glade:3428 msgid "Asymmetric Random " msgstr "" #: glade/findbar.glade:6 msgid "window1" msgstr "finestra1" #: glade/findbar.glade:21 msgid "0 of 0" msgstr "0 de 0" #: glade/findbar.glade:66 msgid "Search:" msgstr "Cerca:" #: glade/findbar.glade:134 msgid "_Previous" msgstr "_Anterior" #: glade/findbar.glade:192 msgid "_Next" msgstr "_Següent" #: glade/newInOut.glade:45 lib/pychess/widgets/newGameDialog.py:445 msgid "New Game" msgstr "Nova partida" #: glade/newInOut.glade:108 msgid "_Start Game" msgstr "_Comença el joc" #: glade/newInOut.glade:130 msgid "Copy FEN" msgstr "" #: glade/newInOut.glade:143 msgid "Clear" msgstr "" #: glade/newInOut.glade:156 msgid "Paste FEN" msgstr "" #: glade/newInOut.glade:257 msgid "_Black player:" msgstr "_Jugador negre:" #: glade/newInOut.glade:274 msgid "_White player:" msgstr "_Jugador blanc:" #: glade/newInOut.glade:385 msgid "Players" msgstr "Jugadors" #: glade/newInOut.glade:436 msgid "_Untimed" msgstr "" #: glade/newInOut.glade:475 msgid "Blitz: 5 min" msgstr "" #: glade/newInOut.glade:526 msgid "Rapid: 15 min + 10 sec/move" msgstr "" #: glade/newInOut.glade:575 msgid "Normal: 40 min + 15 sec/move" msgstr "" #: glade/newInOut.glade:684 msgid "_Play Normal chess" msgstr "" #: glade/newInOut.glade:724 msgid "Play Fischer Random chess" msgstr "" #: glade/newInOut.glade:774 msgid "Play Losers chess" msgstr "" #: glade/newInOut.glade:919 msgid "Open Game" msgstr "" #: glade/newInOut.glade:1162 msgid "Initial Position" msgstr "" #: glade/newInOut.glade:1219 msgid "Enter Game Notation" msgstr "" #: glade/newInOut.glade:1314 msgid "Halfmove clock" msgstr "" #: glade/newInOut.glade:1327 msgid "En passant line" msgstr "" #: glade/newInOut.glade:1339 msgid "Side to move" msgstr "" #: glade/newInOut.glade:1351 msgid "Move number" msgstr "" #: glade/newInOut.glade:1361 msgid "Black O-O" msgstr "" #: glade/newInOut.glade:1375 msgid "Black O-O-O" msgstr "" #: glade/newInOut.glade:1389 msgid "White O-O-O" msgstr "" #: glade/newInOut.glade:1403 msgid "White O-O" msgstr "" #: glade/promotion.glade:7 msgid "Promotion" msgstr "Coronar" #: glade/promotion.glade:49 lib/pychess/Utils/repr.py:12 msgid "Queen" msgstr "Dama" #: glade/promotion.glade:95 lib/pychess/Utils/repr.py:12 msgid "Rook" msgstr "Torre" #: glade/promotion.glade:141 lib/pychess/Utils/repr.py:12 msgid "Bishop" msgstr "Alfil" #: glade/promotion.glade:187 lib/pychess/Utils/repr.py:12 msgid "Knight" msgstr "Cavall" #: glade/promotion.glade:233 lib/pychess/Utils/repr.py:12 msgid "King" msgstr "" #: glade/promotion.glade:265 msgid "Promote pawn to what?" msgstr "A què vol promocionar el peó?" #: glade/PyChess.glade:9 msgid "Chess client" msgstr "" #: glade/PyChess.glade:44 msgid "Game information" msgstr "Informació de la Partida" #: glade/PyChess.glade:164 msgid "Event:" msgstr "Esdeveniment:" #: glade/PyChess.glade:178 msgid "Site:" msgstr "Lloc:" #: glade/PyChess.glade:204 msgid "Round:" msgstr "Ronda:" #: glade/PyChess.glade:237 msgid "White:" msgstr "" #: glade/PyChess.glade:249 msgid "Black:" msgstr "" #: glade/PyChess.glade:302 msgid "Game data" msgstr "Informació de la Partida" #: glade/PyChess.glade:357 msgid "Date of game" msgstr "Data de la Partida" #: glade/PyChess.glade:495 msgid "_Game" msgstr "_Partida" #: glade/PyChess.glade:502 msgid "_New Game" msgstr "_Partida nova" #: glade/PyChess.glade:515 msgid "Play _Internet Chess" msgstr "" #: glade/PyChess.glade:534 msgid "_Load Game" msgstr "_Carregar Partida" #: glade/PyChess.glade:550 msgid "Load _Recent Game" msgstr "" #: glade/PyChess.glade:558 msgid "Open _Database" msgstr "" #: glade/PyChess.glade:569 lib/pychess/widgets/newGameDialog.py:615 msgid "Setup Position" msgstr "" #: glade/PyChess.glade:579 msgid "Enter Game _Notation" msgstr "" #: glade/PyChess.glade:592 msgid "_Save Game" msgstr "_Desar Partida" #: glade/PyChess.glade:606 msgid "Save Game _As" msgstr "Guardar Partida _Com" #: glade/PyChess.glade:624 msgid "Share Game" msgstr "" #: glade/PyChess.glade:630 msgid "_Export Position" msgstr "" #: glade/PyChess.glade:644 msgid "_Analyze Game" msgstr "" #: glade/PyChess.glade:678 msgid "Player _Rating" msgstr "" #: glade/PyChess.glade:723 msgid "_Edit" msgstr "" #: glade/PyChess.glade:734 msgid "_Copy PGN" msgstr "" #: glade/PyChess.glade:746 msgid "_Copy FEN" msgstr "" #: glade/PyChess.glade:763 msgid "_Engines" msgstr "" #: glade/PyChess.glade:789 msgid "_Actions" msgstr "_Accions" #: glade/PyChess.glade:800 msgid "Offer _Abort" msgstr "" #: glade/PyChess.glade:810 msgid "Offer Ad_journment" msgstr "" #: glade/PyChess.glade:831 msgid "Offer _Pause" msgstr "" #: glade/PyChess.glade:847 msgid "Offer _Undo" msgstr "" #: glade/PyChess.glade:870 msgid "_Call Flag" msgstr "_Reclamar bandera" #: glade/PyChess.glade:890 msgid "Ask to _Move" msgstr "" #: glade/PyChess.glade:905 msgid "Auto Call _Flag" msgstr "" #: glade/PyChess.glade:918 msgid "_View" msgstr "_Visualitza" #: glade/PyChess.glade:925 msgid "_Rotate Board" msgstr "_Girar el Taulell" #: glade/PyChess.glade:939 msgid "_Fullscreen" msgstr "_Pantalla completa" #: glade/PyChess.glade:952 msgid "Leave _Fullscreen" msgstr "Surt de la _pantalla completa" #: glade/PyChess.glade:969 msgid "_Show Sidepanels" msgstr "" #: glade/PyChess.glade:980 msgid "_Log Viewer" msgstr "_Visor d'Events" #: glade/PyChess.glade:997 msgid "_Hint mode" msgstr "_Modalitat amb Ajuda" #: glade/PyChess.glade:1009 msgid "Sp_y mode" msgstr "Modalitat _espia" #: glade/PyChess.glade:1024 msgid "_Help" msgstr "_Ajuda" #: glade/PyChess.glade:1034 msgid "About Chess" msgstr "Quant els escacs" #: glade/PyChess.glade:1043 msgid "How to Play" msgstr "Com jugar" #: glade/PyChess.glade:1052 msgid "Translate PyChess" msgstr "Tradueix PyChess" #: glade/PyChess.glade:1058 msgid "Tip of the Day" msgstr "Consell del dia" #: glade/PyChess.glade:1153 msgid "Default" msgstr "" #: glade/PyChess.glade:1156 msgid "Knights" msgstr "" #: glade/PyChess.glade:1167 lib/pychess/widgets/preferencesDialog.py:349 msgid "Beep" msgstr "" #: glade/PyChess.glade:1170 lib/pychess/widgets/preferencesDialog.py:350 msgid "Select sound file..." msgstr "" #: glade/PyChess.glade:1173 lib/pychess/widgets/preferencesDialog.py:348 msgid "No sound" msgstr "" #: glade/PyChess.glade:1180 msgid "Preferences" msgstr "Preferències" #: glade/PyChess.glade:1218 msgid "The displayed name of the first human player, e.g., John." msgstr "" #: glade/PyChess.glade:1230 msgid "Name of _first human player:" msgstr "" #: glade/PyChess.glade:1259 msgid "The displayed name of the guest player, e.g., Mary." msgstr "" #: glade/PyChess.glade:1271 msgid "Name of s_econd human player:" msgstr "" #: glade/PyChess.glade:1307 msgid "_Hide tabs when only one game is open" msgstr "" #: glade/PyChess.glade:1312 msgid "" "If set, this hides the tab in the top of the playing window, when it is not " "needed." msgstr "" #: glade/PyChess.glade:1326 msgid "_Use main app closer [x] to close all games" msgstr "" #: glade/PyChess.glade:1331 msgid "" "If set, clicking on main application window closer first time it closes all " "games." msgstr "" #: glade/PyChess.glade:1345 msgid "Auto _rotate board to current human player" msgstr "" #: glade/PyChess.glade:1350 msgid "" "If set, the board will turn after each move, to show the natural view for " "the current player." msgstr "" #: glade/PyChess.glade:1364 msgid "Auto _promote to queen" msgstr "" #: glade/PyChess.glade:1369 msgid "If set, pawn promotes to queen without promotion dialog selection." msgstr "" #: glade/PyChess.glade:1383 msgid "Face _to Face display mode" msgstr "" #: glade/PyChess.glade:1388 msgid "" "If set, the black pieces will be head down, suitable for playing against " "friends on mobile devices." msgstr "" #: glade/PyChess.glade:1402 msgid "Sho_w cords" msgstr "" #: glade/PyChess.glade:1407 msgid "" "If set, the playing board will display labels and ranks for each chess " "field. These are usable in chess notation." msgstr "" #: glade/PyChess.glade:1421 msgid "Show _captured pieces" msgstr "" #: glade/PyChess.glade:1426 msgid "If set, the captured figurines will be shown next to the board." msgstr "" #: glade/PyChess.glade:1440 msgid "Prefer figures in _notation" msgstr "" #: glade/PyChess.glade:1445 msgid "" "If set, PyChess will use figures to express moved pieces, rather than " "uppercase letters." msgstr "" #: glade/PyChess.glade:1464 msgid "If set, PyChess will colorize suboptimal analyzed moves with red." msgstr "" #: glade/PyChess.glade:1477 msgid "Show elapsed move times" msgstr "" #: glade/PyChess.glade:1482 msgid "If set, the elapsed time that a player used for the move is shown." msgstr "" #: glade/PyChess.glade:1500 msgid "If set, the hint analyzer engine evaluation value is shown." msgstr "" #: glade/PyChess.glade:1526 msgid "General Options" msgstr "" #: glade/PyChess.glade:1560 msgid "F_ull board animation" msgstr "" #: glade/PyChess.glade:1565 msgid "Animate pieces, board rotation and more. Use this on fast machines." msgstr "" #: glade/PyChess.glade:1579 msgid "Only animate _moves" msgstr "" #: glade/PyChess.glade:1584 msgid "Only animate piece moves." msgstr "" #: glade/PyChess.glade:1599 msgid "No _animation" msgstr "" #: glade/PyChess.glade:1604 msgid "Never use animation. Use this on slow machines." msgstr "" #: glade/PyChess.glade:1632 msgid "Animation" msgstr "Animació" #: glade/PyChess.glade:1651 msgid "_General" msgstr "_General" #: glade/PyChess.glade:1692 msgid "Use opening _book" msgstr "" #: glade/PyChess.glade:1697 msgid "If set, PyChess will suggest best opening moves on hint panel." msgstr "" #: glade/PyChess.glade:1724 msgid "Polyglot book file:" msgstr "" #: glade/PyChess.glade:1768 msgid "Use _local tablebases" msgstr "" #: glade/PyChess.glade:1773 msgid "" "If set, PyChess will show game results for different moves in positions containing 6 or less pieces.\n" "You can download tablebase files from:\n" "http://www.olympuschess.com/egtb/gaviota/" msgstr "" #: glade/PyChess.glade:1803 msgid "Gaviota TB path:" msgstr "" #: glade/PyChess.glade:1843 msgid "Use _online tablebases" msgstr "" #: glade/PyChess.glade:1848 msgid "" "If set, PyChess will show game results for different moves in positions containing 6 or less pieces.\n" "It will search positions from http://www.k4it.de/" msgstr "" #: glade/PyChess.glade:1870 msgid "Opening, endgame" msgstr "" #: glade/PyChess.glade:1904 msgid "Use _analyzer" msgstr "" #: glade/PyChess.glade:1946 msgid "" "The analyzer will run in the background and analyze the game. This is " "necessary for the hint mode to work" msgstr "" #: glade/PyChess.glade:1978 msgid "Use _inverted analyzer" msgstr "" #: glade/PyChess.glade:2020 msgid "" "The inverse analyzer will analyze the game as if your opponent was to move. " "This is necessary for the spy mode to work" msgstr "" #: glade/PyChess.glade:2096 msgid "Analyzing" msgstr "" #: glade/PyChess.glade:2118 msgid "_Hints" msgstr "" #: glade/PyChess.glade:2263 msgid "Uninstall" msgstr "Desinstal·la" #: glade/PyChess.glade:2317 msgid "Ac_tive" msgstr "" #: glade/PyChess.glade:2367 msgid "Installed Sidepanels" msgstr "" #: glade/PyChess.glade:2382 msgid "Side_panels" msgstr "" #: glade/PyChess.glade:2440 msgid "Light Squares :" msgstr "" #: glade/PyChess.glade:2479 msgid "Dark Squares :" msgstr "" #: glade/PyChess.glade:2515 msgid "Reset Default Colours" msgstr "" #: glade/PyChess.glade:2551 msgid "Board Colours" msgstr "" #: glade/PyChess.glade:2610 msgid "Chess Sets" msgstr "" #: glade/PyChess.glade:2634 msgid "Themes" msgstr "" #: glade/PyChess.glade:2659 msgid "_Use sounds in PyChess" msgstr "" #: glade/PyChess.glade:2982 msgid "A player _checks:" msgstr "" #: glade/PyChess.glade:2997 msgid "A player _moves:" msgstr "" #: glade/PyChess.glade:3010 msgid "Game is _drawn:" msgstr "" #: glade/PyChess.glade:3025 msgid "Game is _lost:" msgstr "" #: glade/PyChess.glade:3040 msgid "Game is _won:" msgstr "" #: glade/PyChess.glade:3055 msgid "A player c_aptures:" msgstr "" #: glade/PyChess.glade:3084 msgid "Game is _set-up:" msgstr "" #: glade/PyChess.glade:3136 msgid "_Observed moves:" msgstr "" #: glade/PyChess.glade:3151 msgid "Observed _ends:" msgstr "" #: glade/PyChess.glade:3265 msgid "Short on _time:" msgstr "" #: glade/PyChess.glade:3317 msgid "_Invalid move:" msgstr "" #: glade/PyChess.glade:3369 msgid "Activate alarm when _remaining sec is:" msgstr "" #: glade/PyChess.glade:3416 msgid "Play Sound When..." msgstr "" #: glade/PyChess.glade:3438 msgid "_Sounds" msgstr "_Sons" #: glade/PyChess.glade:3463 msgid "_Auto save finished games" msgstr "" #: glade/PyChess.glade:3497 msgid "Save files to:" msgstr "" #: glade/PyChess.glade:3525 msgid "Use name format:" msgstr "" #: glade/PyChess.glade:3569 msgid "Names: #n1, #n2" msgstr "" #: glade/PyChess.glade:3582 msgid "Year, month, day: #y, #m, #d" msgstr "" #: glade/PyChess.glade:3619 msgid "Save elapsed move _times" msgstr "" #: glade/PyChess.glade:3644 msgid "Save analyzing engine _evaluation values" msgstr "" #: glade/PyChess.glade:3669 msgid "Save _own games only" msgstr "" #: glade/PyChess.glade:3698 msgid "Save" msgstr "" #: glade/PyChess.glade:3728 msgid "uci" msgstr "" #: glade/PyChess.glade:3731 msgid "xboard" msgstr "" #: glade/PyChess.glade:3739 msgid "Manage engines" msgstr "" #: glade/PyChess.glade:3837 msgid "Command:" msgstr "" #: glade/PyChess.glade:3851 msgid "Protocol:" msgstr "" #: glade/PyChess.glade:3865 msgid "Parameters:" msgstr "" #: glade/PyChess.glade:3878 msgid "Command line parameters needed by the engine." msgstr "" #: glade/PyChess.glade:3903 msgid "" "Engines use uci or xboard communication protocol to talk to the GUI.\n" "If it can use both you can set here which one you like." msgstr "" #: glade/PyChess.glade:3929 msgid "Working directory:" msgstr "" #: glade/PyChess.glade:3942 msgid "The directory where the engine will be started from." msgstr "" #: glade/saveGamesDialog.glade:7 msgid "Quit PyChess" msgstr "Surt PyChess" #: glade/saveGamesDialog.glade:24 lib/pychess/widgets/ionest.py:424 msgid "Close _without Saving" msgstr "Tanca _sense desar" #: glade/saveGamesDialog.glade:83 msgid "_Save %d documents" msgstr "" #: glade/saveGamesDialog.glade:141 msgid "" "There are %d games with unsaved moves. Save changes before " "closing?" msgstr "" #: glade/saveGamesDialog.glade:161 msgid "Select the games you want to save:" msgstr "Selecciona les partides que vols desar:" #: glade/saveGamesDialog.glade:204 msgid "If you don't save, new changes to your games will be permanently lost." msgstr "" #: glade/taskers.glade:126 msgid "_Opponent:" msgstr "_Adversari:" #: glade/taskers.glade:154 msgid "_Your Color:" msgstr "_El teu Color:" #: glade/taskers.glade:219 msgid "_Start Game" msgstr "_Comença la Partida" #: glade/taskers.glade:338 msgid "Log on as G_uest" msgstr "" #: glade/taskers.glade:410 msgid "Ha_ndle:" msgstr "" #: glade/taskers.glade:469 msgid "_Connect to server" msgstr "" #: glade/tipoftheday.glade:7 msgid "Tip Of The day" msgstr "Consell del dia" #: glade/tipoftheday.glade:62 msgid "Show tips at startup" msgstr "Mostra els consells a l'arrencada" #: lib/pychess/Main.py:302 msgid "http://en.wikipedia.org/wiki/Chess" msgstr "http://ca.wikipedia.org/wiki/Escacs" #: lib/pychess/Main.py:305 msgid "http://en.wikipedia.org/wiki/Rules_of_chess" msgstr "http://ca.wikipedia.org/wiki/Reglament_dels_escacs" #: lib/pychess/Main.py:370 lib/pychess/widgets/gamenanny.py:80 msgid "Welcome" msgstr "Us donem la benvinguda" #: lib/pychess/Database/gamelist.py:40 msgid "Id" msgstr "" #: lib/pychess/Database/gamelist.py:40 msgid "W Elo" msgstr "" #: lib/pychess/Database/gamelist.py:40 msgid "B Elo" msgstr "" #: lib/pychess/Database/gamelist.py:41 msgid "Result" msgstr "" #: lib/pychess/Database/gamelist.py:41 msgid "Event" msgstr "" #: lib/pychess/Database/gamelist.py:41 msgid "Site" msgstr "" #: lib/pychess/Database/gamelist.py:41 msgid "Round" msgstr "" #: lib/pychess/Database/gamelist.py:41 msgid "Date" msgstr "" #: lib/pychess/Database/gamelist.py:41 msgid "ECO" msgstr "" #: lib/pychess/Database/gamelist.py:62 msgid "PyChess Game Database" msgstr "" #: lib/pychess/Database/PgnImport.py:188 #, python-format msgid "The game #%s can't be loaded, because of an error parsing FEN" msgstr "" #: lib/pychess/ic/FICSConnection.py:139 msgid "The connection was broken - got \"end of file\" message" msgstr "" #: lib/pychess/ic/FICSConnection.py:140 #, python-format msgid "'%s' is not a registered name" msgstr "" #: lib/pychess/ic/FICSConnection.py:141 msgid "" "The entered password was invalid.\n" "If you forgot your password, go to http://www.freechess.org/password to request a new one over email." msgstr "" #: lib/pychess/ic/FICSConnection.py:145 #, python-format msgid "Sorry '%s' is already logged in" msgstr "" #: lib/pychess/ic/FICSConnection.py:146 #, python-format msgid "'%s' is a registered name. If it is yours, type the password." msgstr "" #: lib/pychess/ic/FICSConnection.py:147 msgid "" "Due to abuse problems, guest connections have been prevented.\n" "You can still register on http://www.freechess.org" msgstr "" #: lib/pychess/ic/FICSConnection.py:166 msgid "Connecting to server" msgstr "S'està connectant al servidor" #: lib/pychess/ic/FICSConnection.py:181 msgid "Logging on to server" msgstr "" #: lib/pychess/ic/FICSConnection.py:239 msgid "Setting up environment" msgstr "" #: lib/pychess/ic/FICSObjects.py:35 lib/pychess/ic/FICSObjects.py:47 #, python-format msgid "%(player)s is %(status)s" msgstr "" #: lib/pychess/ic/FICSObjects.py:46 msgid "not playing" msgstr "" #: lib/pychess/ic/FICSObjects.py:54 lib/pychess/ic/ICLounge.py:1136 #: lib/pychess/ic/ICLounge.py:2209 lib/pychess/ic/__init__.py:98 #: lib/pychess/widgets/newGameDialog.py:153 msgid "Blitz" msgstr "Blitz" #: lib/pychess/ic/FICSObjects.py:58 lib/pychess/ic/ICLounge.py:1137 #: lib/pychess/ic/ICLounge.py:2209 lib/pychess/ic/__init__.py:100 msgid "Lightning" msgstr "" #: lib/pychess/ic/FICSObjects.py:60 lib/pychess/Variants/atomic.py:15 msgid "Atomic" msgstr "" #: lib/pychess/ic/FICSObjects.py:62 lib/pychess/Variants/bughouse.py:9 msgid "Bughouse" msgstr "" #: lib/pychess/ic/FICSObjects.py:64 lib/pychess/Variants/crazyhouse.py:9 msgid "Crazyhouse" msgstr "" #: lib/pychess/ic/FICSObjects.py:66 lib/pychess/Variants/losers.py:9 msgid "Losers" msgstr "" #: lib/pychess/ic/FICSObjects.py:68 lib/pychess/Variants/suicide.py:12 msgid "Suicide" msgstr "" #: lib/pychess/ic/FICSObjects.py:70 lib/pychess/ic/__init__.py:129 msgid "Wild" msgstr "" #: lib/pychess/ic/FICSObjects.py:117 msgid "Online" msgstr "En línia" #: lib/pychess/ic/FICSObjects.py:118 lib/pychess/ic/FICSObjects.py:143 msgid "Offline" msgstr "Fora de línia" #: lib/pychess/ic/FICSObjects.py:133 msgid "Available" msgstr "" #: lib/pychess/ic/FICSObjects.py:135 msgid "Playing" msgstr "" #: lib/pychess/ic/FICSObjects.py:141 msgid "Idle" msgstr "" #: lib/pychess/ic/FICSObjects.py:145 msgid "Examining" msgstr "" #: lib/pychess/ic/FICSObjects.py:147 msgid "Not Available" msgstr "" #: lib/pychess/ic/FICSObjects.py:149 msgid "Running Simul Match" msgstr "" #: lib/pychess/ic/FICSObjects.py:151 msgid "In Tournament" msgstr "" #: lib/pychess/ic/FICSObjects.py:308 lib/pychess/ic/FICSObjects.py:492 #: lib/pychess/ic/ICLounge.py:2278 msgid "Unrated" msgstr "" #: lib/pychess/ic/FICSObjects.py:491 lib/pychess/ic/ICLounge.py:670 #: lib/pychess/ic/ICLounge.py:1358 lib/pychess/ic/ICLounge.py:1558 #: lib/pychess/ic/ICLounge.py:2113 msgid "Rated" msgstr "" #: lib/pychess/ic/FICSObjects.py:498 lib/pychess/ic/ICLounge.py:2098 #, python-format msgid "%d min" msgstr "" #: lib/pychess/ic/FICSObjects.py:500 #, python-format msgid " + %d sec" msgstr "" #: lib/pychess/ic/FICSObjects.py:517 #, python-format msgid "%(player)s plays %(color)s" msgstr "" #: lib/pychess/ic/FICSObjects.py:519 lib/pychess/ic/ICLounge.py:909 msgid "white" msgstr "" #: lib/pychess/ic/FICSObjects.py:519 lib/pychess/ic/ICLounge.py:909 msgid "black" msgstr "" #: lib/pychess/ic/FICSObjects.py:565 msgid "This is a continuation of an adjourned match" msgstr "" #: lib/pychess/ic/FICSObjects.py:654 msgid "Opponent Rating" msgstr "" #: lib/pychess/ic/FICSObjects.py:656 msgid "Manual Accept" msgstr "" #: lib/pychess/ic/FICSObjects.py:810 msgid "Private" msgstr "Privat" #: lib/pychess/ic/FICSObjects.py:930 lib/pychess/ic/ICLounge.py:527 #: lib/pychess/Savers/epd.py:139 msgid "Unknown" msgstr "Desconegut" #: lib/pychess/ic/ICLogon.py:159 lib/pychess/ic/ICLogon.py:165 msgid "Connection Error" msgstr "Error de connexió" #: lib/pychess/ic/ICLogon.py:161 msgid "Log on Error" msgstr "" #: lib/pychess/ic/ICLogon.py:163 msgid "Connection was closed" msgstr "La connexió fou tancada" #: lib/pychess/ic/ICLogon.py:169 msgid "Address Error" msgstr "Error d'adreça" #: lib/pychess/ic/ICLogon.py:172 msgid "Auto-logout" msgstr "" #: lib/pychess/ic/ICLogon.py:173 msgid "You have been logged out because you were idle more than 60 minutes" msgstr "" #: lib/pychess/ic/ICLounge.py:222 msgid "You have to set kibitz on to see bot messages here." msgstr "" #: lib/pychess/ic/ICLounge.py:241 msgid "" "You may only have 3 outstanding seeks at the same time. If you want to add a" " new seek you must clear your currently active seeks. Clear your seeks?" msgstr "" #: lib/pychess/ic/ICLounge.py:258 msgid "You can't touch this! You are examining a game." msgstr "" #: lib/pychess/ic/ICLounge.py:270 msgid " has declined your offer for a match" msgstr "" #: lib/pychess/ic/ICLounge.py:283 msgid " is censoring you" msgstr "" #: lib/pychess/ic/ICLounge.py:296 msgid " noplay listing you" msgstr "" #: lib/pychess/ic/ICLounge.py:311 msgid " uses a formula not fitting your match request:" msgstr "" #: lib/pychess/ic/ICLounge.py:325 msgid "to manual accept" msgstr "" #: lib/pychess/ic/ICLounge.py:327 msgid "to automatic accept" msgstr "" #: lib/pychess/ic/ICLounge.py:329 msgid "rating range now" msgstr "" #: lib/pychess/ic/ICLounge.py:330 msgid "Seek updated" msgstr "" #: lib/pychess/ic/ICLounge.py:342 msgid "Your seeks have been removed" msgstr "" #: lib/pychess/ic/ICLounge.py:363 msgid " has arrived" msgstr "" #: lib/pychess/ic/ICLounge.py:370 msgid " has departed" msgstr "" #: lib/pychess/ic/ICLounge.py:374 msgid " is present" msgstr "" #: lib/pychess/ic/ICLounge.py:391 sidepanel/chatPanel.py:17 msgid "Chat" msgstr "" #: lib/pychess/ic/ICLounge.py:472 sidepanel/bookPanel.py:366 msgid "Win" msgstr "Guanya" #: lib/pychess/ic/ICLounge.py:472 sidepanel/bookPanel.py:360 msgid "Draw" msgstr "Empat" #: lib/pychess/ic/ICLounge.py:472 sidepanel/bookPanel.py:363 msgid "Loss" msgstr "Perd" #: lib/pychess/ic/ICLounge.py:482 msgid "" "On FICS, your \"Wild\" rating encompasses all of the following variants at " "all time controls:\n" msgstr "" #: lib/pychess/ic/ICLounge.py:494 msgid "Sanctions" msgstr "" #: lib/pychess/ic/ICLounge.py:499 msgid "Email" msgstr "Correu electrònic" #: lib/pychess/ic/ICLounge.py:504 msgid "Spent" msgstr "" #: lib/pychess/ic/ICLounge.py:506 msgid "online in total" msgstr "" #: lib/pychess/ic/ICLounge.py:512 msgid "Ping" msgstr "" #: lib/pychess/ic/ICLounge.py:517 msgid "Connecting" msgstr "" #: lib/pychess/ic/ICLounge.py:544 msgid "" "You are currently logged in as a guest.\n" "A guest can't play rated games and therefore isn't able to play as many of the types of matches offered as a registered user. To register an account, go to http://www.freechess.org/Register/index.html." msgstr "" #: lib/pychess/ic/ICLounge.py:669 lib/pychess/ic/ICLounge.py:1136 msgid "Name" msgstr "Nom" #: lib/pychess/ic/ICLounge.py:670 lib/pychess/ic/ICLounge.py:1358 #: lib/pychess/ic/ICLounge.py:1558 msgid "Type" msgstr "Tipus" #: lib/pychess/ic/ICLounge.py:670 lib/pychess/ic/ICLounge.py:1558 msgid "Clock" msgstr "Rellotge" #: lib/pychess/ic/ICLounge.py:726 lib/pychess/ic/ICLounge.py:923 #: lib/pychess/Players/Human.py:250 msgid "Accept" msgstr "" #: lib/pychess/ic/ICLounge.py:728 msgid "Assess" msgstr "" #: lib/pychess/ic/ICLounge.py:734 msgid "Archived" msgstr "" #: lib/pychess/ic/ICLounge.py:848 #, python-format msgid "Active seeks: %d" msgstr "" #: lib/pychess/ic/ICLounge.py:897 #, python-format msgid "" " would like to resume your adjourned %(time)s %(gametype)s " "game." msgstr "" #: lib/pychess/ic/ICLounge.py:902 #, python-format msgid "" " challenges you to a %(time)s %(rated)s %(gametype)s game" msgstr "" #: lib/pychess/ic/ICLounge.py:907 #, python-format msgid " where %(player)s plays %(color)s." msgstr "" #: lib/pychess/ic/ICLounge.py:924 lib/pychess/Players/Human.py:251 msgid "Decline" msgstr "" #: lib/pychess/ic/ICLounge.py:1065 msgid " min" msgstr " min" #: lib/pychess/ic/ICLounge.py:1137 msgid "Status" msgstr "" #: lib/pychess/ic/ICLounge.py:1203 lib/pychess/ic/ICLounge.py:1233 #, python-format msgid "Players: %d" msgstr "" #: lib/pychess/ic/ICLounge.py:1469 #, python-format msgid "Games running: %d" msgstr "" #: lib/pychess/ic/ICLounge.py:1559 msgid "Date/Time" msgstr "Data/Hora" #: lib/pychess/ic/ICLounge.py:1614 #, python-format msgid "" " with whom you have an adjourned %(timecontrol)s %(gametype)s " "game is online." msgstr "" #: lib/pychess/ic/ICLounge.py:1635 msgid "Request Continuation" msgstr "" #: lib/pychess/ic/ICLounge.py:1637 msgid "Examine Adjourned Game" msgstr "" #: lib/pychess/ic/ICLounge.py:1965 msgid "" "The chain button is disabled because you are logged in as a guest. Guests " "can't establish ratings, and the chain button's state has no effect when " "there is no rating to which to tie \"Opponent Strength\" to" msgstr "" #: lib/pychess/ic/ICLounge.py:2006 msgid "Challenge: " msgstr "Desafiament: " #: lib/pychess/ic/ICLounge.py:2044 msgid "If set you can refuse players accepting your seek" msgstr "" #: lib/pychess/ic/ICLounge.py:2048 lib/pychess/ic/ICLounge.py:2051 msgid "This option is not applicable because you're challenging a player" msgstr "" #: lib/pychess/ic/ICLounge.py:2064 msgid "Edit Seek: " msgstr "" #: lib/pychess/ic/ICLounge.py:2095 #, python-format msgid "%(minutes)d min + %(gain)d sec/move" msgstr "" #: lib/pychess/ic/ICLounge.py:2116 msgid "Manual" msgstr "Manual" #: lib/pychess/ic/ICLounge.py:2256 msgid "Any strength" msgstr "" #: lib/pychess/ic/ICLounge.py:2308 msgid "You can't play rated games because you are logged in as a guest" msgstr "" #: lib/pychess/ic/ICLounge.py:2312 msgid "You can't play rated games because \"Untimed\" is checked, " msgstr "" #: lib/pychess/ic/ICLounge.py:2313 msgid "and on FICS, untimed games can't be rated" msgstr "" #: lib/pychess/ic/ICLounge.py:2317 msgid "This option is not available because you're challenging a guest, " msgstr "" #: lib/pychess/ic/ICLounge.py:2318 msgid "and guests can't play rated games" msgstr "" #: lib/pychess/ic/ICLounge.py:2332 lib/pychess/Variants/shuffle.py:16 #: lib/pychess/widgets/newGameDialog.py:266 msgid "Shuffle" msgstr "Aleatori" #: lib/pychess/ic/ICLounge.py:2333 lib/pychess/widgets/newGameDialog.py:267 msgid "Other (standard rules)" msgstr "" #: lib/pychess/ic/ICLounge.py:2334 lib/pychess/widgets/newGameDialog.py:268 msgid "Other (non standard rules)" msgstr "" #: lib/pychess/ic/ICLounge.py:2421 msgid "You can't select a variant because \"Untimed\" is checked, " msgstr "" #: lib/pychess/ic/ICLounge.py:2422 msgid "and on FICS, untimed games have to be normal chess rules" msgstr "" #: lib/pychess/ic/ICLounge.py:2454 msgid "Change Tolerance" msgstr "" #: lib/pychess/ic/__init__.py:102 msgid "Examined" msgstr "" #: lib/pychess/ic/__init__.py:103 msgid "Other" msgstr "Altre" #: lib/pychess/ic/__init__.py:182 msgid "Administrator" msgstr "" #: lib/pychess/ic/__init__.py:182 msgid "Blindfold Account" msgstr "" #: lib/pychess/ic/__init__.py:182 msgid "Computer" msgstr "" #: lib/pychess/ic/__init__.py:183 msgid "Team Account" msgstr "" #: lib/pychess/ic/__init__.py:183 msgid "Unregistered" msgstr "" #: lib/pychess/ic/__init__.py:183 msgid "Chess Advisor" msgstr "" #: lib/pychess/ic/__init__.py:184 msgid "Service Representative" msgstr "" #: lib/pychess/ic/__init__.py:184 msgid "Tournament Director" msgstr "" #: lib/pychess/ic/__init__.py:184 msgid "Mamer Manager" msgstr "" #: lib/pychess/ic/__init__.py:185 msgid "Grand Master" msgstr "" #: lib/pychess/ic/__init__.py:185 msgid "International Master" msgstr "" #: lib/pychess/ic/__init__.py:185 msgid "FIDE Master" msgstr "" #: lib/pychess/ic/__init__.py:186 msgid "Woman Grand Master" msgstr "" #: lib/pychess/ic/__init__.py:186 msgid "Woman International Master" msgstr "" #: lib/pychess/ic/__init__.py:186 msgid "Woman FIDE Master" msgstr "" #: lib/pychess/ic/__init__.py:187 msgid "Dummy Account" msgstr "" #: lib/pychess/ic/__init__.py:191 msgid "*" msgstr "" #: lib/pychess/ic/__init__.py:191 lib/pychess/Utils/repr.py:14 msgid "B" msgstr "" #: lib/pychess/ic/__init__.py:191 msgid "C" msgstr "" #: lib/pychess/ic/__init__.py:192 msgid "T" msgstr "" #: lib/pychess/ic/__init__.py:192 msgid "U" msgstr "" #: lib/pychess/ic/__init__.py:192 msgid "CA" msgstr "" #: lib/pychess/ic/__init__.py:193 msgid "SR" msgstr "" #: lib/pychess/ic/__init__.py:193 msgid "TD" msgstr "" #: lib/pychess/ic/__init__.py:193 msgid "TM" msgstr "" #: lib/pychess/ic/__init__.py:194 msgid "GM" msgstr "" #: lib/pychess/ic/__init__.py:194 msgid "IM" msgstr "" #: lib/pychess/ic/__init__.py:194 msgid "FM" msgstr "" #: lib/pychess/ic/__init__.py:195 msgid "WGM" msgstr "" #: lib/pychess/ic/__init__.py:195 msgid "WIM" msgstr "" #: lib/pychess/ic/__init__.py:195 msgid "WFM" msgstr "" #: lib/pychess/ic/__init__.py:195 msgid "D" msgstr "" #: lib/pychess/ic/__init__.py:195 msgid "H" msgstr "" #: lib/pychess/ic/__init__.py:195 msgid "CM" msgstr "" #: lib/pychess/ic/__init__.py:195 msgid "FA" msgstr "" #: lib/pychess/ic/__init__.py:195 msgid "NM" msgstr "" #: lib/pychess/Players/CECPEngine.py:857 #, python-format msgid "The engine %s reports an error:" msgstr "" #: lib/pychess/Players/Human.py:20 msgid "Your opponent has offered you a draw." msgstr "" #: lib/pychess/Players/Human.py:21 msgid "" "Your opponent has offered you a draw. If you accept this offer, the game " "will end with a score of 1/2 - 1/2." msgstr "" #: lib/pychess/Players/Human.py:23 msgid "Your opponent wants to abort the game." msgstr "" #: lib/pychess/Players/Human.py:24 msgid "" "Your opponent has asked that the game be aborted. If you accept this offer, " "the game will end with no rating change." msgstr "" #: lib/pychess/Players/Human.py:26 msgid "Your opponent wants to adjourn the game." msgstr "" #: lib/pychess/Players/Human.py:27 msgid "" "Your opponent has asked that the game be adjourned. If you accept this " "offer, the game will be adjourned and you can resume it later (when your " "opponent is online and both players agree to resume)." msgstr "" #: lib/pychess/Players/Human.py:29 #, python-format msgid "Your opponent wants to undo %s move(s)." msgstr "" #: lib/pychess/Players/Human.py:30 #, python-format msgid "" "Your opponent has asked that the last %s move(s) be undone. If you accept " "this offer, the game will continue from the earlier position." msgstr "" #: lib/pychess/Players/Human.py:32 msgid "Your opponent wants to pause the game." msgstr "" #: lib/pychess/Players/Human.py:33 msgid "" "Your opponent has asked that the game be paused. If you accept this offer, " "the game clock will be paused until both players agree to resume the game." msgstr "" #: lib/pychess/Players/Human.py:35 msgid "Your opponent wants to resume the game." msgstr "" #: lib/pychess/Players/Human.py:36 msgid "" "Your opponent has asked that the game be resumed. If you accept this offer, " "the game clock will continue from where it was paused." msgstr "" #: lib/pychess/Players/Human.py:40 msgid "The resignation" msgstr "" #: lib/pychess/Players/Human.py:41 msgid "The flag call" msgstr "" #: lib/pychess/Players/Human.py:42 msgid "The draw offer" msgstr "" #: lib/pychess/Players/Human.py:43 msgid "The abort offer" msgstr "" #: lib/pychess/Players/Human.py:44 msgid "The adjourn offer" msgstr "" #: lib/pychess/Players/Human.py:45 msgid "The pause offer" msgstr "" #: lib/pychess/Players/Human.py:46 msgid "The resume offer" msgstr "" #: lib/pychess/Players/Human.py:47 msgid "The offer to switch sides" msgstr "" #: lib/pychess/Players/Human.py:48 msgid "The takeback offer" msgstr "" #: lib/pychess/Players/Human.py:52 msgid "resign" msgstr "abandona" #: lib/pychess/Players/Human.py:53 msgid "call your opponents flag" msgstr "" #: lib/pychess/Players/Human.py:54 msgid "offer a draw" msgstr "ofereix taules" #: lib/pychess/Players/Human.py:55 msgid "offer an abort" msgstr "" #: lib/pychess/Players/Human.py:56 msgid "offer to adjourn" msgstr "" #: lib/pychess/Players/Human.py:57 msgid "offer a pause" msgstr "" #: lib/pychess/Players/Human.py:58 msgid "offer to resume" msgstr "" #: lib/pychess/Players/Human.py:59 msgid "offer to switch sides" msgstr "" #: lib/pychess/Players/Human.py:60 msgid "offer a takeback" msgstr "" #: lib/pychess/Players/Human.py:61 msgid "ask your opponent to move" msgstr "" #: lib/pychess/Players/Human.py:66 msgid "Your opponent is not out of time." msgstr "" #: lib/pychess/Players/Human.py:68 msgid "The clock hasn't been started yet." msgstr "" #: lib/pychess/Players/Human.py:70 msgid "You can't switch colors during the game." msgstr "" #: lib/pychess/Players/Human.py:72 msgid "You have tried to undo too many moves." msgstr "" #: lib/pychess/Players/Human.py:180 msgid "Your opponent asks you to hurry!" msgstr "" #: lib/pychess/Players/Human.py:181 msgid "" "Generally this means nothing, as the game is time-based, but if you want to " "please your opponent, perhaps you should get going." msgstr "" #: lib/pychess/Players/Human.py:259 #, python-format msgid "%s was declined by your opponent" msgstr "" #: lib/pychess/Players/Human.py:260 #, python-format msgid "Resend %s?" msgstr "" #: lib/pychess/Players/Human.py:267 msgid "Resend" msgstr "" #: lib/pychess/Players/Human.py:275 #, python-format msgid "%s was withdrawn by your opponent" msgstr "" #: lib/pychess/Players/Human.py:276 msgid "Your opponent seems to have changed their mind." msgstr "" #: lib/pychess/Players/Human.py:290 #, python-format msgid "Unable to accept %s" msgstr "" #: lib/pychess/Players/Human.py:291 msgid "Probably because it has been withdrawn." msgstr "" #: lib/pychess/Players/Human.py:298 #, python-format msgid "%s returns an error" msgstr "" #: lib/pychess/Savers/chessalpha2.py:12 msgid "Chess Alpha 2 Diagram" msgstr "" #: lib/pychess/Savers/chesspastebin.py:39 msgid "Game shared at " msgstr "" #: lib/pychess/Savers/chesspastebin.py:41 msgid "(Link is available on clipboard.)" msgstr "" #: lib/pychess/Savers/database.py:19 msgid "PyChess database" msgstr "" #: lib/pychess/Savers/epd.py:12 msgid "Chess Position" msgstr "Posició" #: lib/pychess/Savers/fen.py:12 msgid "Simple Chess Position" msgstr "" #: lib/pychess/Savers/fen.py:44 lib/pychess/Savers/pgn.py:329 msgid "The game can't be loaded, because of an error parsing FEN" msgstr "" #: lib/pychess/Savers/pgnbase.py:100 #, python-format msgid "" "The game can't be read to end, because of an error parsing move %(moveno)s " "'%(notation)s'." msgstr "" #: lib/pychess/Savers/pgnbase.py:102 #, python-format msgid "The move failed because %s." msgstr "" #: lib/pychess/Savers/pgnbase.py:110 #, python-format msgid "Error parsing move %(moveno)s %(mstr)s" msgstr "" #: lib/pychess/Savers/pgn.py:28 msgid "Chess Game" msgstr "Partida d'Escacs" #: lib/pychess/Savers/pgn.py:362 msgid "Invalid move." msgstr "" #: lib/pychess/Savers/png.py:15 msgid "Png image" msgstr "" #: lib/pychess/System/ping.py:31 msgid "Destination Host Unreachable" msgstr "" #: lib/pychess/System/ping.py:74 msgid "Died" msgstr "" #: lib/pychess/Utils/GameModel.py:147 msgid "Local Event" msgstr "Esdeveniment local" #: lib/pychess/Utils/GameModel.py:148 msgid "Local Site" msgstr "" #: lib/pychess/Utils/repr.py:12 msgid "Pawn" msgstr "" #: lib/pychess/Utils/repr.py:14 msgid "P" msgstr "" #: lib/pychess/Utils/repr.py:14 msgid "N" msgstr "" #: lib/pychess/Utils/repr.py:14 msgid "R" msgstr "" #: lib/pychess/Utils/repr.py:14 msgid "Q" msgstr "" #: lib/pychess/Utils/repr.py:14 msgid "K" msgstr "" #: lib/pychess/Utils/repr.py:17 msgid "The game ended in a draw" msgstr "La partida ha acabat en taules" #: lib/pychess/Utils/repr.py:18 #, python-format msgid "%(white)s won the game" msgstr "" #: lib/pychess/Utils/repr.py:19 #, python-format msgid "%(black)s won the game" msgstr "" #: lib/pychess/Utils/repr.py:20 msgid "The game has been killed" msgstr "" #: lib/pychess/Utils/repr.py:21 msgid "The game has been adjourned" msgstr "" #: lib/pychess/Utils/repr.py:22 msgid "The game has been aborted" msgstr "" #: lib/pychess/Utils/repr.py:26 msgid "Because neither player has sufficient material to mate" msgstr "" #: lib/pychess/Utils/repr.py:27 msgid "Because the same position was repeated three times in a row" msgstr "" #: lib/pychess/Utils/repr.py:28 msgid "Because the last 50 moves brought nothing new" msgstr "" #: lib/pychess/Utils/repr.py:29 msgid "Because both players ran out of time" msgstr "" #: lib/pychess/Utils/repr.py:30 #, python-format msgid "Because %(mover)s stalemated" msgstr "" #: lib/pychess/Utils/repr.py:31 msgid "Because both players agreed to a draw" msgstr "" #: lib/pychess/Utils/repr.py:32 lib/pychess/Utils/repr.py:42 msgid "Because of adjudication by an admin" msgstr "" #: lib/pychess/Utils/repr.py:33 msgid "Because the game exceed the max length" msgstr "" #: lib/pychess/Utils/repr.py:34 #, python-format msgid "" "Because %(white)s ran out of time and %(black)s has insufficient material to" " mate" msgstr "" #: lib/pychess/Utils/repr.py:35 #, python-format msgid "" "Because %(black)s ran out of time and %(white)s has insufficient material to" " mate" msgstr "" #: lib/pychess/Utils/repr.py:36 msgid "Because both players have the same amount of pieces" msgstr "" #: lib/pychess/Utils/repr.py:38 #, python-format msgid "Because %(loser)s resigned" msgstr "" #: lib/pychess/Utils/repr.py:39 #, python-format msgid "Because %(loser)s ran out of time" msgstr "" #: lib/pychess/Utils/repr.py:40 #, python-format msgid "Because %(loser)s was checkmated" msgstr "" #: lib/pychess/Utils/repr.py:41 #, python-format msgid "Because %(loser)s disconnected" msgstr "" #: lib/pychess/Utils/repr.py:43 #, python-format msgid "Because %(winner)s has fewer pieces" msgstr "" #: lib/pychess/Utils/repr.py:44 #, python-format msgid "Because %(winner)s lost all pieces" msgstr "" #: lib/pychess/Utils/repr.py:45 #, python-format msgid "Because %(loser)s king exploded" msgstr "" #: lib/pychess/Utils/repr.py:46 #, python-format msgid "Because %(winner)s king reached the center" msgstr "" #: lib/pychess/Utils/repr.py:47 #, python-format msgid "Because %(winner)s was giving check 3 times" msgstr "" #: lib/pychess/Utils/repr.py:49 msgid "Because a player lost connection" msgstr "" #: lib/pychess/Utils/repr.py:50 msgid "Because both players agreed to an adjournment" msgstr "" #: lib/pychess/Utils/repr.py:51 msgid "Because the server was shut down" msgstr "" #: lib/pychess/Utils/repr.py:52 msgid "" "Because a player lost connection and the other player requested adjournment" msgstr "" #: lib/pychess/Utils/repr.py:53 #, python-format msgid "" "Because %(black)s lost connection to the server and %(white)s requested " "adjournment" msgstr "" #: lib/pychess/Utils/repr.py:54 #, python-format msgid "" "Because %(white)s lost connection to the server and %(black)s requested " "adjournment" msgstr "" #: lib/pychess/Utils/repr.py:55 #, python-format msgid "Because %(white)s lost connection to the server" msgstr "" #: lib/pychess/Utils/repr.py:56 #, python-format msgid "Because %(black)s lost connection to the server" msgstr "" #: lib/pychess/Utils/repr.py:58 msgid "Because of adjudication by an admin. No rating changes have occurred." msgstr "" #: lib/pychess/Utils/repr.py:59 msgid "" "Because both players agreed to abort the game. No rating changes have " "occurred." msgstr "" #: lib/pychess/Utils/repr.py:60 msgid "Because of courtesy by a player. No rating changes have occurred." msgstr "" #: lib/pychess/Utils/repr.py:61 msgid "" "Because a player aborted the game. Either player can abort the game without " "the other's consent before the second move. No rating changes have occurred." msgstr "" #: lib/pychess/Utils/repr.py:62 msgid "" "Because a player disconnected and there are too few moves to warrant " "adjournment. No rating changes have occurred." msgstr "" #: lib/pychess/Utils/repr.py:63 msgid "Because the server was shut down. No rating changes have occurred." msgstr "" #: lib/pychess/Utils/repr.py:65 #, python-format msgid "Because the %(white)s engine died" msgstr "" #: lib/pychess/Utils/repr.py:66 #, python-format msgid "Because the %(black)s engine died" msgstr "" #: lib/pychess/Utils/repr.py:67 msgid "Because the connection to the server was lost" msgstr "" #: lib/pychess/Utils/repr.py:68 msgid "The reason is unknown" msgstr "" #: lib/pychess/Utils/TimeModel.py:229 msgid "min" msgstr "" #: lib/pychess/Utils/TimeModel.py:231 msgid "sec" msgstr "" #: lib/pychess/Variants/asean.py:12 msgid "" "ASEAN: http://www.ncf-" "phil.org/downloadables/2014/May/Asean_chess/Laws_of_ASEAN_Chess_2011_Nov_26.doc" msgstr "" #: lib/pychess/Variants/asean.py:13 msgid "ASEAN" msgstr "" #: lib/pychess/Variants/asean.py:33 msgid "Makruk: http://en.wikipedia.org/wiki/Makruk" msgstr "" #: lib/pychess/Variants/asean.py:34 msgid "Makruk" msgstr "" #: lib/pychess/Variants/asean.py:60 msgid "Cambodian: http://www.khmerinstitute.org/culture/ok.html" msgstr "" #: lib/pychess/Variants/asean.py:61 msgid "Cambodian" msgstr "" #: lib/pychess/Variants/asean.py:86 msgid "" "Ai-Wok: http://www.open-" "aurec.com/wbforum/viewtopic.php?p=199364&sid=20963a1de2c164050de019e5ed6bf7c4#p199364" msgstr "" #: lib/pychess/Variants/asean.py:87 msgid "Ai-Wok" msgstr "" #: lib/pychess/Variants/asean.py:111 msgid "Sittuyin: http://en.wikipedia.org/wiki/Sittuyin" msgstr "" #: lib/pychess/Variants/asean.py:112 msgid "Sittuyin" msgstr "" #: lib/pychess/Variants/asymmetricrandom.py:12 msgid "" "FICS wild/4: http://www.freechess.org/Help/HelpFiles/wild.html\n" "* Randomly chosen pieces (two queens or three rooks possible)\n" "* Exactly one king of each color\n" "* Pieces placed randomly behind the pawns, SUBJECT TO THE CONSTRAINT THAT THE BISHOPS ARE BALANCED\n" "* No castling\n" "* Black's arrangement DOES NOT mirrors white's" msgstr "" #: lib/pychess/Variants/asymmetricrandom.py:18 msgid "Asymmetric Random" msgstr "" #: lib/pychess/Variants/atomic.py:14 msgid "FICS atomic: http://www.freechess.org/Help/HelpFiles/atomic.html" msgstr "" #: lib/pychess/Variants/blindfold.py:7 msgid "" "Classic chess rules with hidden figurines\n" "http://en.wikipedia.org/wiki/Blindfold_chess" msgstr "" #: lib/pychess/Variants/blindfold.py:9 #: lib/pychess/widgets/newGameDialog.py:264 msgid "Blindfold" msgstr "" #: lib/pychess/Variants/blindfold.py:18 msgid "" "Classic chess rules with hidden pawns\n" "http://en.wikipedia.org/wiki/Blindfold_chess" msgstr "" #: lib/pychess/Variants/blindfold.py:20 msgid "Hidden pawns" msgstr "" #: lib/pychess/Variants/blindfold.py:29 msgid "" "Classic chess rules with hidden pieces\n" "http://en.wikipedia.org/wiki/Blindfold_chess" msgstr "" #: lib/pychess/Variants/blindfold.py:31 msgid "Hidden pieces" msgstr "" #: lib/pychess/Variants/blindfold.py:40 msgid "" "Classic chess rules with all pieces white\n" "http://en.wikipedia.org/wiki/Blindfold_chess" msgstr "" #: lib/pychess/Variants/blindfold.py:42 msgid "All white" msgstr "" #: lib/pychess/Variants/bughouse.py:8 msgid "FICS bughouse: http://www.freechess.org/Help/HelpFiles/bughouse.html" msgstr "" #: lib/pychess/Variants/corner.py:12 msgid "" "http://brainking.com/en/GameRules?tp=2\n" "* Placement of the pieces on the 1st and 8th row are randomized\n" "* The king is in the right hand corner\n" "* Bishops must start on opposite color squares\n" "* Black's starting position is obtained by rotating white's position 180 degrees around the board's center\n" "* No castling" msgstr "" #: lib/pychess/Variants/corner.py:18 msgid "Corner" msgstr "" #: lib/pychess/Variants/crazyhouse.py:8 msgid "" "FICS crazyhouse: http://www.freechess.org/Help/HelpFiles/crazyhouse.html" msgstr "" #: lib/pychess/Variants/euroshogi.py:9 msgid "EuroShogi: http://en.wikipedia.org/wiki/EuroShogi" msgstr "" #: lib/pychess/Variants/euroshogi.py:10 msgid "EuroShogi" msgstr "" #: lib/pychess/Variants/fischerandom.py:18 msgid "" "http://en.wikipedia.org/wiki/Chess960\n" "FICS wild/fr: http://www.freechess.org/Help/HelpFiles/wild.html" msgstr "" #: lib/pychess/Variants/fischerandom.py:20 msgid "Fischer Random" msgstr "" #: lib/pychess/Variants/kingofthehill.py:8 msgid "" "Bringing your king legally to the center (e4, d4, e5, d5) instantly wins the game!\n" "Normal rules apply in other cases and checkmate also ends the game." msgstr "" #: lib/pychess/Variants/kingofthehill.py:10 msgid "King of the hill" msgstr "" #: lib/pychess/Variants/knightodds.py:8 msgid "One player starts with one less knight piece" msgstr "" #: lib/pychess/Variants/knightodds.py:9 msgid "Knight odds" msgstr "" #: lib/pychess/Variants/losers.py:8 msgid "FICS losers: http://www.freechess.org/Help/HelpFiles/losers_chess.html" msgstr "" #: lib/pychess/Variants/normal.py:4 msgid "" "Classic chess rules\n" "http://en.wikipedia.org/wiki/Chess" msgstr "" #: lib/pychess/Variants/normal.py:6 lib/pychess/widgets/newGameDialog.py:157 msgid "Normal" msgstr "" #: lib/pychess/Variants/pawnodds.py:8 msgid "One player starts with one less pawn piece" msgstr "" #: lib/pychess/Variants/pawnodds.py:9 msgid "Pawn odds" msgstr "" #: lib/pychess/Variants/pawnspassed.py:11 msgid "" "FICS wild/8a: http://www.freechess.org/Help/HelpFiles/wild.html\n" "White pawns start on 5th rank and black pawns on the 4th rank" msgstr "" #: lib/pychess/Variants/pawnspassed.py:13 msgid "Pawns Passed" msgstr "" #: lib/pychess/Variants/pawnspushed.py:10 msgid "" "FICS wild/8: http://www.freechess.org/Help/HelpFiles/wild.html\n" "Pawns start on 4th and 5th ranks rather than 2nd and 7th" msgstr "" #: lib/pychess/Variants/pawnspushed.py:12 msgid "Pawns Pushed" msgstr "" #: lib/pychess/Variants/queenodds.py:8 msgid "One player starts with one less queen piece" msgstr "" #: lib/pychess/Variants/queenodds.py:9 msgid "Queen odds" msgstr "" #: lib/pychess/Variants/randomchess.py:11 msgid "" "FICS wild/3: http://www.freechess.org/Help/HelpFiles/wild.html\n" "* Randomly chosen pieces (two queens or three rooks possible)\n" "* Exactly one king of each color\n" "* Pieces placed randomly behind the pawns\n" "* No castling\n" "* Black's arrangement mirrors white's" msgstr "" #: lib/pychess/Variants/randomchess.py:17 #: lib/pychess/widgets/TaskerManager.py:155 msgid "Random" msgstr "" #: lib/pychess/Variants/rookodds.py:8 msgid "One player starts with one less rook piece" msgstr "" #: lib/pychess/Variants/rookodds.py:9 msgid "Rook odds" msgstr "" #: lib/pychess/Variants/shuffle.py:11 msgid "" "xboard nocastle: http://home.hccnet.nl/h.g.muller/engine-intf.html#8\n" "FICS wild/2: http://www.freechess.org/Help/HelpFiles/wild.html\n" "* Random arrangement of the pieces behind the pawns\n" "* No castling\n" "* Black's arrangement mirrors white's" msgstr "" #: lib/pychess/Variants/suicide.py:11 msgid "" "FICS suicide: http://www.freechess.org/Help/HelpFiles/suicide_chess.html" msgstr "" #: lib/pychess/Variants/theban.py:10 msgid "" "Variant developed by Kai Laskos: " "http://talkchess.com/forum/viewtopic.php?t=40990" msgstr "" #: lib/pychess/Variants/theban.py:11 msgid "Theban" msgstr "" #: lib/pychess/Variants/threecheck.py:10 msgid "Win by giving check 3 times" msgstr "" #: lib/pychess/Variants/threecheck.py:11 msgid "Three-check" msgstr "" #: lib/pychess/Variants/upsidedown.py:10 msgid "" "FICS wild/5: http://www.freechess.org/Help/HelpFiles/wild.html\n" "http://en.wikipedia.org/wiki/Chess_variant#Chess_with_different_starting_positions\n" "Pawns start on their 7th rank rather than their 2nd rank!" msgstr "" #: lib/pychess/Variants/upsidedown.py:13 msgid "Upside Down" msgstr "" #: lib/pychess/Variants/wildcastle.py:10 msgid "" "xboard wildcastle http://home.hccnet.nl/h.g.muller/engine-intf.html#8\n" "FICS wild/0: http://www.freechess.org/Help/HelpFiles/wild.html\n" "* White has the typical set-up at the start.\n" "* Black's pieces are the same, except that the King and Queen are reversed,\n" "* so they are not on the same files as White's King and Queen.\n" "* Castling is done similarly to normal chess:\n" "* o-o-o indicates long castling and o-o short castling." msgstr "" #: lib/pychess/Variants/wildcastle.py:17 msgid "Wildcastle" msgstr "" #: lib/pychess/Variants/wildcastleshuffle.py:11 msgid "" "xboard wildcastle http://home.hccnet.nl/h.g.muller/engine-intf.html#8\n" "FICS wild/1: http://www.freechess.org/Help/HelpFiles/wild.html\n" "* In this variant both sides have the same set of pieces as in normal chess.\n" "* The white king starts on d1 or e1 and the black king starts on d8 or e8,\n" "* and the rooks are in their usual positions.\n" "* Bishops are always on opposite colors.\n" "* Subject to these constraints the position of the pieces on their first ranks is random.\n" "* Castling is done similarly to normal chess:\n" "* o-o-o indicates long castling and o-o short castling." msgstr "" #: lib/pychess/Variants/wildcastleshuffle.py:20 msgid "Wildcastle shuffle" msgstr "" #: lib/pychess/widgets/analyzegameDialog.py:85 msgid "Game analyzing in progress..." msgstr "" #: lib/pychess/widgets/analyzegameDialog.py:86 msgid "Do you want to abort it?" msgstr "" #: lib/pychess/widgets/analyzegameDialog.py:95 #: lib/pychess/widgets/gamewidget.py:202 lib/pychess/widgets/gamewidget.py:320 msgid "Abort" msgstr "" #: lib/pychess/widgets/ChatView.py:125 msgid "Observers" msgstr "" #: lib/pychess/widgets/ChatWindow.py:222 msgid "You have opened no conversations yet" msgstr "" #: lib/pychess/widgets/ChatWindow.py:254 msgid "Only registered users may talk to this channel" msgstr "" #: lib/pychess/widgets/ChatWindow.py:312 msgid "No conversation's selected" msgstr "" #: lib/pychess/widgets/ChatWindow.py:350 msgid "Loading player data" msgstr "" #: lib/pychess/widgets/ChatWindow.py:400 msgid "Receiving list of players" msgstr "" #: lib/pychess/widgets/ChatWindow.py:518 msgid "Friends" msgstr "" #: lib/pychess/widgets/ChatWindow.py:529 msgid "Admin" msgstr "" #: lib/pychess/widgets/ChatWindow.py:540 msgid "More channels" msgstr "" #: lib/pychess/widgets/ChatWindow.py:548 msgid "More players" msgstr "" #: lib/pychess/widgets/ChatWindow.py:558 msgid "Computers" msgstr "" #: lib/pychess/widgets/ChatWindow.py:568 msgid "BlindFold" msgstr "" #: lib/pychess/widgets/ChatWindow.py:578 msgid "Guests" msgstr "" #: lib/pychess/widgets/ChatWindow.py:805 msgid "Conversations" msgstr "" #: lib/pychess/widgets/ChatWindow.py:807 msgid "Conversation info" msgstr "" #: lib/pychess/widgets/enginesDialog.py:152 msgid "Select engine" msgstr "" #: lib/pychess/widgets/enginesDialog.py:156 msgid "Executable files" msgstr "" #: lib/pychess/widgets/enginesDialog.py:176 #: lib/pychess/widgets/enginesDialog.py:210 #: lib/pychess/widgets/enginesDialog.py:235 #, python-format msgid "Unable to add %s" msgstr "" #: lib/pychess/widgets/enginesDialog.py:177 msgid "wine not installed" msgstr "" #: lib/pychess/widgets/enginesDialog.py:211 #: lib/pychess/widgets/enginesDialog.py:236 msgid "There is something wrong with this executable" msgstr "" #: lib/pychess/widgets/enginesDialog.py:266 msgid "Select working directory" msgstr "" #: lib/pychess/widgets/gamenanny.py:115 #, python-format msgid " invalid engine move: %s" msgstr "" #: lib/pychess/widgets/gamenanny.py:134 msgid "Offer Rematch" msgstr "" #: lib/pychess/widgets/gamenanny.py:136 lib/pychess/widgets/gamenanny.py:147 #, python-format msgid "Observe %s" msgstr "" #: lib/pychess/widgets/gamenanny.py:168 msgid "Play Rematch" msgstr "" #: lib/pychess/widgets/gamenanny.py:171 msgid "Undo one move" msgstr "" #: lib/pychess/widgets/gamenanny.py:173 msgid "Undo two moves" msgstr "" #: lib/pychess/widgets/gamenanny.py:203 msgid "The game is paused" msgstr "" #: lib/pychess/widgets/gamenanny.py:221 lib/pychess/widgets/gamenanny.py:222 msgid "Loaded game" msgstr "" #: lib/pychess/widgets/gamenanny.py:228 msgid "Saved game" msgstr "" #: lib/pychess/widgets/gamenanny.py:232 msgid "Analyzer started" msgstr "" #: lib/pychess/widgets/gamenanny.py:281 msgid "You sent an abort offer" msgstr "" #: lib/pychess/widgets/gamenanny.py:283 msgid "You sent an adjournment offer" msgstr "" #: lib/pychess/widgets/gamenanny.py:285 msgid "You sent a draw offer" msgstr "" #: lib/pychess/widgets/gamenanny.py:287 msgid "You sent a pause offer" msgstr "" #: lib/pychess/widgets/gamenanny.py:289 msgid "You sent a resume offer" msgstr "" #: lib/pychess/widgets/gamenanny.py:291 msgid "You sent an undo offer" msgstr "" #: lib/pychess/widgets/gamenanny.py:293 msgid "You asked your opponent to move" msgstr "" #: lib/pychess/widgets/gamenanny.py:305 #, python-format msgid "Engine, %s, has died" msgstr "El motor d'escacs '%s' ha mort" #: lib/pychess/widgets/gamenanny.py:306 msgid "" "PyChess has lost connection to the engine, probably because it has died.\n" "\n" "You can try to start a new game with the engine, or try to play against another one." msgstr "PyChess ha perdut la conexió amb el motor, probablement perquè ha mort.\n\nPot intentar començar una altra partida amb el motor d'escacs, o probar a jugar contra un altre." #: lib/pychess/widgets/gamewidget.py:204 msgid "" "This game can be automatically aborted without rating loss because there has" " not yet been two moves made" msgstr "" #: lib/pychess/widgets/gamewidget.py:206 msgid "Offer Abort" msgstr "" #: lib/pychess/widgets/gamewidget.py:208 msgid "" "Your opponent must agree to abort the game because there has been two or " "more moves made" msgstr "" #: lib/pychess/widgets/gamewidget.py:226 msgid "This game can not be adjourned because one or both players are guests" msgstr "" #: lib/pychess/widgets/gamewidget.py:243 msgid "Claim Draw" msgstr "" #: lib/pychess/widgets/gamewidget.py:325 msgid "Pause" msgstr "" #: lib/pychess/widgets/gamewidget.py:326 msgid "Resume" msgstr "" #: lib/pychess/widgets/gamewidget.py:328 msgid "Offer Pause" msgstr "" #: lib/pychess/widgets/gamewidget.py:329 msgid "Offer Resume" msgstr "" #: lib/pychess/widgets/gamewidget.py:333 msgid "Undo" msgstr "" #: lib/pychess/widgets/gamewidget.py:335 msgid "Offer Undo" msgstr "" #: lib/pychess/widgets/gamewidget.py:550 msgid " has lagged for 30 seconds" msgstr "" #: lib/pychess/widgets/gamewidget.py:566 msgid " is lagging heavily but hasn't disconnected" msgstr "" #: lib/pychess/widgets/gamewidget.py:567 msgid "Continue to wait for opponent, or try to adjourn the game?" msgstr "" #: lib/pychess/widgets/gamewidget.py:575 msgid "Wait" msgstr "" #: lib/pychess/widgets/gamewidget.py:576 msgid "Adjourn" msgstr "" #: lib/pychess/widgets/gamewidget.py:648 msgid "Jump to initial position" msgstr "" #: lib/pychess/widgets/gamewidget.py:653 msgid "Step back one move" msgstr "" #: lib/pychess/widgets/gamewidget.py:658 msgid "Go back to the main line" msgstr "" #: lib/pychess/widgets/gamewidget.py:664 msgid "Step forward one move" msgstr "" #: lib/pychess/widgets/gamewidget.py:669 msgid "Jump to latest position" msgstr "" #: lib/pychess/widgets/gamewidget.py:903 msgid "PyChess was unable to load your panel settings" msgstr "" #: lib/pychess/widgets/gamewidget.py:904 msgid "" "Your panel settings have been reset. If this problem repeats, you should " "report it to the developers" msgstr "" #: lib/pychess/widgets/ionest.py:67 lib/pychess/widgets/newGameDialog.py:389 #: lib/pychess/widgets/TaskerManager.py:210 msgid "You" msgstr "" #: lib/pychess/widgets/ionest.py:70 lib/pychess/widgets/newGameDialog.py:390 #: lib/pychess/widgets/preferencesDialog.py:61 #: lib/pychess/widgets/TaskerManager.py:213 msgid "Guest" msgstr "" #: lib/pychess/widgets/ionest.py:93 msgid "Error loading game" msgstr "" #: lib/pychess/widgets/ionest.py:127 lib/pychess/widgets/newGameDialog.py:480 msgid "Open Game" msgstr "Obrir Partida" #: lib/pychess/widgets/ionest.py:137 msgid "All Files" msgstr "Tots els arxius" #: lib/pychess/widgets/ionest.py:140 msgid "Detect type automatically" msgstr "Detectar format automàticament" #: lib/pychess/widgets/ionest.py:146 msgid "All Chess Files" msgstr "Tots els Arxius d'Escacs" #: lib/pychess/widgets/ionest.py:228 msgid "Save Game" msgstr "Guardar la partida" #: lib/pychess/widgets/ionest.py:228 msgid "Export position" msgstr "" #: lib/pychess/widgets/ionest.py:232 lib/pychess/widgets/ionest.py:360 msgid "vs." msgstr "" #: lib/pychess/widgets/ionest.py:249 #, python-format msgid "Unknown file type '%s'" msgstr "" #: lib/pychess/widgets/ionest.py:250 #, python-format msgid "" "Was unable to save '%(uri)s' as PyChess doesn't know the format " "'%(ending)s'." msgstr "" #: lib/pychess/widgets/ionest.py:266 #, python-format msgid "Unable to save file '%s'" msgstr "No s'ha pogut guardar l'arxiu '%s'" #: lib/pychess/widgets/ionest.py:268 msgid "" "You don't have the necessary rights to save the file.\n" "Please ensure that you have given the right path and try again." msgstr "No tens els permisos necessaris per a guardar l'arxiu.\nSiusplau asegureu-vos que heu indicat correctament la ruta i torneu-ho a intentar." #: lib/pychess/widgets/ionest.py:276 msgid "_Replace" msgstr "_Reemplaçar" #: lib/pychess/widgets/ionest.py:280 msgid "File exists" msgstr "El fitxer ja existeix" #: lib/pychess/widgets/ionest.py:282 #, python-format msgid "" "A file named '%s' already exists. Would you like to replace " "it?" msgstr "" #: lib/pychess/widgets/ionest.py:283 #, python-format msgid "" "The file already exists in '%s'. If you replace it, its content will be " "overwritten." msgstr "" #: lib/pychess/widgets/ionest.py:299 msgid "Could not save the file" msgstr "" #: lib/pychess/widgets/ionest.py:300 msgid "PyChess was not able to save the game" msgstr "" #: lib/pychess/widgets/ionest.py:301 #, python-format msgid "The error was: %s" msgstr "" #: lib/pychess/widgets/ionest.py:325 #, python-format msgid "There is %d game with unsaved moves." msgid_plural "There are %d games with unsaved moves." msgstr[0] "" msgstr[1] "" #: lib/pychess/widgets/ionest.py:328 msgid "Save moves before closing?" msgstr "" #: lib/pychess/widgets/ionest.py:339 msgid "Unable to save to configured file. Save the games before closing?" msgstr "" #: lib/pychess/widgets/ionest.py:366 #, python-format msgid "_Save %d document" msgid_plural "_Save %d documents" msgstr[0] "" msgstr[1] "" #: lib/pychess/widgets/ionest.py:412 msgid "Save the current game before you close it?" msgstr "" #: lib/pychess/widgets/ionest.py:420 msgid "" "Unable to save to configured file. Save the current game before you close " "it?" msgstr "" #: lib/pychess/widgets/ionest.py:434 msgid "" "It is not possible later to continue the game,\n" "if you don't save it." msgstr "" #: lib/pychess/widgets/LogDialog.py:26 msgid "PyChess Information Window" msgstr "" #: lib/pychess/widgets/LogDialog.py:184 lib/pychess/widgets/LogDialog.py:188 msgid "of" msgstr "" #: lib/pychess/widgets/newGameDialog.py:84 #: lib/pychess/widgets/newGameDialog.py:85 msgid "Human Being" msgstr "Jugador Humà" #: lib/pychess/widgets/newGameDialog.py:155 msgid "Rapid" msgstr "" #: lib/pychess/widgets/newGameDialog.py:224 msgid "Minutes:" msgstr "" #: lib/pychess/widgets/newGameDialog.py:228 msgid "Gain:" msgstr "Increment:" #: lib/pychess/widgets/newGameDialog.py:241 #, python-format msgid "%(name)s %(minutes)d min + %(gain)d sec/move" msgstr "" #: lib/pychess/widgets/newGameDialog.py:244 #, python-format msgid "%(name)s %(minutes)d min %(gain)d sec/move" msgstr "" #: lib/pychess/widgets/newGameDialog.py:247 #, python-format msgid "%(name)s %(minutes)d min" msgstr "" #: lib/pychess/widgets/newGameDialog.py:265 msgid "Odds" msgstr "" #: lib/pychess/widgets/newGameDialog.py:269 msgid "Asian variants" msgstr "" #: lib/pychess/widgets/newGameDialog.py:301 msgid " chess" msgstr "" #: lib/pychess/widgets/newGameDialog.py:682 msgid "Type or paste PGN game or FEN positions here" msgstr "" #: lib/pychess/widgets/newGameDialog.py:725 msgid "Enter Game" msgstr "" #: lib/pychess/widgets/preferencesDialog.py:123 msgid "Select book file" msgstr "" #: lib/pychess/widgets/preferencesDialog.py:128 msgid "Opening books" msgstr "" #: lib/pychess/widgets/preferencesDialog.py:156 msgid "Select Gaviota TB path" msgstr "" #: lib/pychess/widgets/preferencesDialog.py:331 msgid "Open Sound File" msgstr "" #: lib/pychess/widgets/preferencesDialog.py:341 msgid "Sound files" msgstr "" #: lib/pychess/widgets/preferencesDialog.py:485 msgid "Undescribed panel" msgstr "" #: lib/pychess/widgets/preferencesDialog.py:678 msgid "Select auto save path" msgstr "" #: lib/pychess/widgets/tipOfTheDay.py:51 msgid "" "You can start a new game by Game > New Game, in New Game " "window do you can choose Players, Time Control and Chess " "Variants." msgstr "" #: lib/pychess/widgets/tipOfTheDay.py:52 msgid "" "You can choose from 20 different difficulties to play against the computer." msgstr "" #: lib/pychess/widgets/tipOfTheDay.py:53 msgid "" "Chess Variants are like the pieces of the last line will be placed on the " "board." msgstr "" #: lib/pychess/widgets/tipOfTheDay.py:54 msgid "" "To save a game Game > Save Game As, give the filename and " "choose where you want to be saved. At the bottom choose extension type of " "the file, and Save." msgstr "" #: lib/pychess/widgets/tipOfTheDay.py:55 msgid "" "Do you know that you can call flag when the clock is with you, " "Actions > Call Flag." msgstr "" #: lib/pychess/widgets/tipOfTheDay.py:56 msgid "Pressing Ctrl+Z to offer opponent the possible rollback moves." msgstr "" #: lib/pychess/widgets/tipOfTheDay.py:57 msgid "" "To play on Fullscreen mode, just type F11. Coming back, F11 " "again." msgstr "" #: lib/pychess/widgets/tipOfTheDay.py:58 msgid "Hint mode analyzing your game, enable this type Ctrl+H." msgstr "" #: lib/pychess/widgets/tipOfTheDay.py:59 msgid "" "Spy mode analyzing the oponnent game, enable this type Ctrl+Y." msgstr "" #: lib/pychess/widgets/tipOfTheDay.py:60 msgid "" "You can play chess listening to the sounds of the game, for that, " "Settings > Preferences > Sound tab, enable Use " "sounds in PyChess and choose your preferred sounds." msgstr "" #: lib/pychess/widgets/tipOfTheDay.py:61 msgid "" "Do you know that you can help translate Pychess in your language, " "Help > Translate Pychess." msgstr "" #: lib/pychess/widgets/tipOfTheDay.py:62 msgid "" "Do you know that it is possible to finish a chess game in just 2 turns?" msgstr "" #: lib/pychess/widgets/tipOfTheDay.py:63 msgid "" "Do you know that the number of possible chess games exceeds the number of " "atoms in the Universe?" msgstr "" #: lib/pychess/ic/managers/ChatManager.py:184 msgid "Shout" msgstr "" #: lib/pychess/ic/managers/ChatManager.py:185 msgid "Chess Shout" msgstr "" #: lib/pychess/ic/managers/ChatManager.py:195 #, python-format msgid "Unofficial channel %d" msgstr "" #: lib/pychess/Utils/lutils/LBoard.py:152 #, python-format msgid "" "FEN needs 6 data fields. \n" "\n" "%s" msgstr "" #: lib/pychess/Utils/lutils/LBoard.py:154 #, python-format msgid "" "FEN needs at least 2 data fields in fenstr. \n" "\n" "%s" msgstr "" #: lib/pychess/Utils/lutils/LBoard.py:175 #, python-format msgid "" "Needs 7 slashes in piece placement field. \n" "\n" "%s" msgstr "" #: lib/pychess/Utils/lutils/LBoard.py:178 #, python-format msgid "" "Active color field must be one of w or b. \n" "\n" "%s" msgstr "" #: lib/pychess/Utils/lutils/LBoard.py:189 #, python-format msgid "" "Castling availability field is not legal. \n" "\n" "%s" msgstr "" #: lib/pychess/Utils/lutils/LBoard.py:192 #, python-format msgid "" "En passant cord is not legal. \n" "\n" "%s" msgstr "" #: lib/pychess/Utils/lutils/lmove.py:260 msgid "invalid promoted piece" msgstr "" #: lib/pychess/Utils/lutils/lmove.py:272 msgid "the move needs a piece and a cord" msgstr "" #: lib/pychess/Utils/lutils/lmove.py:306 lib/pychess/Utils/lutils/lmove.py:556 msgid "promotion move without promoted piece is incorrect" msgstr "" #: lib/pychess/Utils/lutils/lmove.py:312 #, python-format msgid "the captured cord (%s) is incorrect" msgstr "" #: lib/pychess/Utils/lutils/lmove.py:323 #, python-format msgid "the end cord (%s) is incorrect" msgstr "" #: lib/pychess/Utils/lutils/strateval.py:24 sidepanel/commentPanel.py:191 #: sidepanel/commentPanel.py:208 msgid "and" msgstr "" #: lib/pychess/Utils/lutils/strateval.py:43 msgid "draws" msgstr "" #: lib/pychess/Utils/lutils/strateval.py:45 msgid "mates" msgstr "" #: lib/pychess/Utils/lutils/strateval.py:49 msgid "puts opponent in check" msgstr "" #: lib/pychess/Utils/lutils/strateval.py:73 msgid "improves king safety" msgstr "" #: lib/pychess/Utils/lutils/strateval.py:75 msgid "slightly improves king safety" msgstr "" #: lib/pychess/Utils/lutils/strateval.py:108 msgid "moves a rook to an open file" msgstr "" #: lib/pychess/Utils/lutils/strateval.py:109 msgid "moves an rook to a half-open file" msgstr "" #: lib/pychess/Utils/lutils/strateval.py:119 #: lib/pychess/Utils/lutils/strateval.py:121 #: lib/pychess/Utils/lutils/strateval.py:124 #: lib/pychess/Utils/lutils/strateval.py:126 #, python-format msgid "moves bishop into fianchetto: %s" msgstr "" #: lib/pychess/Utils/lutils/strateval.py:132 #, python-format msgid "promotes a Pawn to a %s" msgstr "" #: lib/pychess/Utils/lutils/strateval.py:135 msgid "castles" msgstr "" #: lib/pychess/Utils/lutils/strateval.py:158 msgid "takes back material" msgstr "" #: lib/pychess/Utils/lutils/strateval.py:162 #: lib/pychess/Utils/lutils/strateval.py:170 msgid "sacrifies material" msgstr "" #: lib/pychess/Utils/lutils/strateval.py:164 msgid "exchanges material" msgstr "" #: lib/pychess/Utils/lutils/strateval.py:166 msgid "captures material" msgstr "" #: lib/pychess/Utils/lutils/strateval.py:291 #, python-format msgid "rescues a %s" msgstr "" #: lib/pychess/Utils/lutils/strateval.py:294 #, python-format msgid "threatens to win material by %s" msgstr "" #: lib/pychess/Utils/lutils/strateval.py:296 #, python-format msgid "increases the pressure on %s" msgstr "" #: lib/pychess/Utils/lutils/strateval.py:298 #, python-format msgid "defends %s" msgstr "" #: lib/pychess/Utils/lutils/strateval.py:336 #, python-format msgid "pins an enemy %(oppiece)s on the %(piece)s at %(cord)s" msgstr "" #: lib/pychess/Utils/lutils/strateval.py:369 #, python-format msgid "White has a new piece in outpost: %s" msgstr "" #: lib/pychess/Utils/lutils/strateval.py:377 #, python-format msgid "Black has a new piece in outpost: %s" msgstr "" #: lib/pychess/Utils/lutils/strateval.py:416 #, python-format msgid "%(color)s has a new passed pawn on %(cord)s" msgstr "" #: lib/pychess/Utils/lutils/strateval.py:470 msgid "half-open" msgstr "" #: lib/pychess/Utils/lutils/strateval.py:472 #, python-format msgid "in the %(x)s%(y)s file" msgstr "" #: lib/pychess/Utils/lutils/strateval.py:474 #, python-format msgid "in the %(x)s%(y)s files" msgstr "" #: lib/pychess/Utils/lutils/strateval.py:477 #, python-format msgid "%(color)s got a double pawn %(place)s" msgstr "" #: lib/pychess/Utils/lutils/strateval.py:478 #, python-format msgid "%(color)s got new double pawns %(place)s" msgstr "" #: lib/pychess/Utils/lutils/strateval.py:485 #, python-format msgid "%(color)s got an isolated pawn in the %(x)s file" msgid_plural "%(color)s got isolated pawns in the %(x)s files" msgstr[0] "" msgstr[1] "" #: lib/pychess/Utils/lutils/strateval.py:492 #, python-format msgid "%s moves pawns into stonewall formation" msgstr "" #: lib/pychess/Utils/lutils/strateval.py:507 #: lib/pychess/Utils/lutils/strateval.py:514 #, python-format msgid "%s can no longer castle" msgstr "" #: lib/pychess/Utils/lutils/strateval.py:508 #: lib/pychess/Utils/lutils/strateval.py:515 #, python-format msgid "%s can no longer castle in queenside" msgstr "" #: lib/pychess/Utils/lutils/strateval.py:510 #: lib/pychess/Utils/lutils/strateval.py:517 #, python-format msgid "%s can no longer castle in kingside" msgstr "" #: lib/pychess/Utils/lutils/strateval.py:551 #, python-format msgid "%(opcolor)s has a new trapped bishop on %(cord)s" msgstr "" #: lib/pychess/Utils/lutils/strateval.py:573 #, python-format msgid "develops a pawn: %s" msgstr "" #: lib/pychess/Utils/lutils/strateval.py:574 #, python-format msgid "brings a pawn closer to the backrow: %s" msgstr "" #: lib/pychess/Utils/lutils/strateval.py:591 #, python-format msgid "brings a %(piece)s closer to enemy king: %(cord)s" msgstr "" #: lib/pychess/Utils/lutils/strateval.py:594 #, python-format msgid "develops a %(piece)s: %(cord)s" msgstr "" #: lib/pychess/Utils/lutils/strateval.py:612 #, python-format msgid "places a %(piece)s more active: %(cord)s" msgstr "" #: lib/pychess/Utils/lutils/strateval.py:638 msgid "White should do pawn storm in right" msgstr "" #: lib/pychess/Utils/lutils/strateval.py:640 msgid "Black should do pawn storm in left" msgstr "" #: lib/pychess/Utils/lutils/strateval.py:643 msgid "White should do pawn storm in left" msgstr "" #: lib/pychess/Utils/lutils/strateval.py:645 msgid "Black should do pawn storm in right" msgstr "" #: lib/pychess/Utils/lutils/strateval.py:671 msgid "Black has a rather cramped position" msgstr "" #: lib/pychess/Utils/lutils/strateval.py:673 msgid "Black has a slightly cramped position" msgstr "" #: lib/pychess/Utils/lutils/strateval.py:675 msgid "White has a rather cramped position" msgstr "" #: lib/pychess/Utils/lutils/strateval.py:677 msgid "White has a slightly cramped position" msgstr "" #: sidepanel/annotationPanel.py:26 msgid "Annotation" msgstr "" #: sidepanel/annotationPanel.py:29 msgid "Annotated game" msgstr "" #: sidepanel/annotationPanel.py:236 msgid "Copy PGN" msgstr "" #: sidepanel/annotationPanel.py:249 msgid "Add start comment" msgstr "" #: sidepanel/annotationPanel.py:254 msgid "Add comment" msgstr "" #: sidepanel/annotationPanel.py:258 sidepanel/annotationPanel.py:316 msgid "Edit comment" msgstr "" #: sidepanel/annotationPanel.py:269 msgid "Forced move" msgstr "" #: sidepanel/annotationPanel.py:274 msgid "Add move symbol" msgstr "" #: sidepanel/annotationPanel.py:280 msgid "Unclear position" msgstr "" #: sidepanel/annotationPanel.py:289 msgid "Zugzwang" msgstr "" #: sidepanel/annotationPanel.py:290 msgid "Development adv." msgstr "" #: sidepanel/annotationPanel.py:291 msgid "Initiative" msgstr "" #: sidepanel/annotationPanel.py:292 msgid "With attack" msgstr "" #: sidepanel/annotationPanel.py:293 msgid "Compensation" msgstr "" #: sidepanel/annotationPanel.py:294 msgid "Counterplay" msgstr "" #: sidepanel/annotationPanel.py:295 msgid "Time pressure" msgstr "" #: sidepanel/annotationPanel.py:300 msgid "Add evaluation symbol" msgstr "" #: sidepanel/annotationPanel.py:304 msgid "Remove symbols" msgstr "" #: sidepanel/annotationPanel.py:911 #, python-format msgid "round %s" msgstr "" #: sidepanel/bookPanel.py:21 msgid "Hints" msgstr "" #: sidepanel/bookPanel.py:25 msgid "" "The hint panel will provide computer advice during each stage of the game" msgstr "" #: sidepanel/bookPanel.py:27 msgid "Official PyChess panel." msgstr "" #: sidepanel/bookPanel.py:87 msgid "Opening Book" msgstr "Llibre d'Apertures" #: sidepanel/bookPanel.py:88 msgid "" "The opening book will try to inspire you during the opening phase of the " "game by showing you common moves made by chess masters" msgstr "" #: sidepanel/bookPanel.py:139 #, python-format msgid "Analysis by %s" msgstr "" #: sidepanel/bookPanel.py:140 #, python-format msgid "" "%s will try to predict which move is best and which side has the advantage" msgstr "" #: sidepanel/bookPanel.py:142 #, python-format msgid "Threat analysis by %s" msgstr "" #: sidepanel/bookPanel.py:143 #, python-format msgid "" "%s will identify what threats would exist if it were your opponent's turn to" " move" msgstr "" #: sidepanel/bookPanel.py:159 sidepanel/bookPanel.py:269 msgid "Calculating..." msgstr "" #: sidepanel/bookPanel.py:300 msgid "" "Engine scores are in units of pawns, from White's point of view. Double " "clicking on analysis lines you can insert them into Annotation panel as " "variations." msgstr "" #: sidepanel/bookPanel.py:302 msgid "" "Adding suggestions can help you find ideas, but slows down the computer's " "analysis." msgstr "" #: sidepanel/bookPanel.py:311 msgid "Endgame Table" msgstr "" #: sidepanel/bookPanel.py:315 msgid "" "The endgame table will show exact analysis when there are few pieces on the " "board." msgstr "" #: sidepanel/bookPanel.py:364 sidepanel/bookPanel.py:367 #, python-format msgid "Mate in %d" msgstr "" #: sidepanel/bookPanel.py:554 msgid "" "In this position,\n" "there is no legal move." msgstr "" #: sidepanel/chatPanel.py:21 msgid "" "The chat panel lets you communicate with your opponent during the game, " "assuming he or she is interested" msgstr "" #: sidepanel/commentPanel.py:16 msgid "Comments" msgstr "Notes" #: sidepanel/commentPanel.py:20 msgid "The comments panel will try to analyze and explain the moves played" msgstr "" #: sidepanel/commentPanel.py:121 msgid "Initial position" msgstr "" #: sidepanel/commentPanel.py:254 #, python-format msgid "%(color)s moves a %(piece)s to %(cord)s" msgstr "" #: sidepanel/engineOutputPanel.py:15 msgid "Engines" msgstr "" #: sidepanel/engineOutputPanel.py:20 msgid "" "The engine output panel shows the thinking output of chess engines (computer" " players) during a game" msgstr "" #: sidepanel/engineOutputPanel.py:44 msgid "No chess engines (computer players) are participating in this game." msgstr "" #: sidepanel/historyPanel.py:10 msgid "Move History" msgstr "Històric de moviments" #: sidepanel/historyPanel.py:13 msgid "" "The moves sheet keeps track of the players' moves and lets you navigate " "through the game history" msgstr "" #: sidepanel/scorePanel.py:15 msgid "Score" msgstr "Puntuació" #: sidepanel/scorePanel.py:19 msgid "" "The score panel tries to evaluate the positions and shows you a graph of the" " game progress" msgstr "" pychess-0.12.2/lang/ca/LC_MESSAGES/pychess.mo0000644000175000017470000001744312653231273020671 0ustar tamasusers00000000000000l    #     90 'j         && *M x         1B Xb|      " +7? F P]chp y # y   "  ", 5?X]l { u?GP _ jv|            / <"F+i FKS*Z!E1EV p 043hy <O hr    7J_dk    . On ' , 9DJQd y' !  7=M ]j{   W`iy     & 0=O^d u #2 AoY '>vC$P]kb<q,D_HhME ^Jx"|/N ~! ) O32XcwdG\s(9@R067QUFlBV.um IzS:&1%fLiW#[-a5Kg+pt84er`Tny};{=Z*j? min(Blitz)0 of 010 min + 6 sec/move, 1400↑, White10 min + 6 sec/move, White12005 min5 min, 1200-1800, ManualConnect to the Free Online Chess ServerPromote pawn to what?AnimationDate of gameGame dataNewsOptionsPlayersTime ControlTools_Start GameEngine, %s, has diedUnable to save file '%s'About ChessAddress ErrorAll Chess FilesAll FilesBishopBlackBlitzCenter:ChallengeChallenge: Chess GameChess PositionClockClose _without SavingCommentsConnecting to serverConnection ErrorConnection was closedDate/TimeDetect type automaticallyDrawEmailEvent:File existsGain:Game informationHideHow to PlayHuman BeingKnightLeave _FullscreenLocal EventLog on as _GuestLossManualMove HistoryNameNew GameOffer _DrawOfflineOnlineOpen GameOpening BookOtherPlayPo_rts:Pre_viewPreferencesPrivatePromotionPyChess - Connect to Internet ChessPyChess - Internet Chess: FICSPyChess has lost connection to the engine, probably because it has died. You can try to start a new game with the engine, or try to play against another one.PyChess.py:QueenQuit PyChessRatingRookRound:Save GameSave Game _AsScoreSearch:Select the games you want to save:Show _ChatShow tips at startupShuffleSite:Sp_y modeStandardStandard:The game ended in a drawTimeTip Of The dayTip of the DayTolerance:Translate PyChessTypeUninstallUnknownUntimedWelcomeWhiteWinYou don't have the necessary rights to save the file. Please ensure that you have given the right path and try again._Accept_Actions_Black player:_Call Flag_Fullscreen_Game_General_Help_Hint mode_Load Game_Log Viewer_Name:_New Game_Next_Opponent:_Password:_Previous_Replace_Rotate Board_Save Game_Sounds_Start Game_View_White player:_Your Color:gnuchess:http://en.wikipedia.org/wiki/Chesshttp://en.wikipedia.org/wiki/Rules_of_chessoffer a drawresignwindow1Project-Id-Version: pychess Report-Msgid-Bugs-To: POT-Creation-Date: 2016-01-27 13:28+0100 PO-Revision-Date: 2016-01-28 08:56+0000 Last-Translator: slav0nic Language-Team: Catalan (http://www.transifex.com/gbtami/pychess/language/ca/) MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Language: ca Plural-Forms: nplurals=2; plural=(n != 1); min(Blitz)0 de 010 min + 6 sec/moviment, 1400↑, Blanques10 min + 6 sec/moviment, Blanques12005 mins.5 min, 1200-1800, ManualConnectar-se a un servidor Online gratuït d'EscacsA què vol promocionar el peó?AnimacióData de la PartidaInformació de la PartidaNotíciesOpcionsJugadorsControl de tempsEines_Comença la PartidaEl motor d'escacs '%s' ha mortNo s'ha pogut guardar l'arxiu '%s'Quant els escacsError d'adreçaTots els Arxius d'EscacsTots els arxiusAlfilNegresBlitzCentre:RepteDesafiament: Partida d'EscacsPosicióRellotgeTanca _sense desarNotesS'està connectant al servidorError de connexióLa connexió fou tancadaData/HoraDetectar format automàticamentEmpatCorreu electrònicEsdeveniment:El fitxer ja existeixIncrement:Informació de la PartidaAmagaCom jugarJugador HumàCavallSurt de la _pantalla completaEsdeveniment localEntrar com _VisitantPerdManualHistòric de movimentsNomNova partidaOfereix _TaulesFora de líniaEn líniaObrir PartidaLlibre d'AperturesAltreJugaPo_rts:Pre_visualitzacióPreferènciesPrivatCoronarPyChess - Connectar-se als Escacs per InternetPyChess - Internet Chess: FICSPyChess ha perdut la conexió amb el motor, probablement perquè ha mort. Pot intentar començar una altra partida amb el motor d'escacs, o probar a jugar contra un altre.PyChess.py:DamaSurt PyChessPuntuacióTorreRonda:Guardar la partidaGuardar Partida _ComPuntuacióCerca:Selecciona les partides que vols desar:Mostra _XatMostra els consells a l'arrencadaAleatoriLloc:Modalitat _espiaEstàndardEstàndard:La partida ha acabat en taulesTempsConsell del diaConsell del diaTolerància:Tradueix PyChessTipusDesinstal·laDesconegutSense tempsUs donem la benvingudaBlanquesGuanyaNo tens els permisos necessaris per a guardar l'arxiu. Siusplau asegureu-vos que heu indicat correctament la ruta i torneu-ho a intentar._Accepta_Accions_Jugador negre:_Reclamar bandera_Pantalla completa_Partida_General_Ajuda_Modalitat amb Ajuda_Carregar Partida_Visor d'Events_Nom:_Partida nova_Següent_Adversari:_Contrasenya:_Anterior_Reemplaçar_Girar el Taulell_Desar Partida_Sons_Comença el joc_Visualitza_Jugador blanc:_El teu Color:gnuchess:http://ca.wikipedia.org/wiki/Escacshttp://ca.wikipedia.org/wiki/Reglament_dels_escacsofereix taulesabandonafinestra1pychess-0.12.2/lang/br/0000755000175000017470000000000012653231274015101 5ustar tamasusers00000000000000pychess-0.12.2/lang/br/LC_MESSAGES/0000755000175000017470000000000012653231274016666 5ustar tamasusers00000000000000pychess-0.12.2/lang/br/LC_MESSAGES/pychess.po0000644000175000017470000024115412653216210020704 0ustar tamasusers00000000000000# SOME DESCRIPTIVE TITLE. # Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER # This file is distributed under the same license as the pychess package. # # Translators: # FIRST AUTHOR , 2008 msgid "" msgstr "" "Project-Id-Version: pychess\n" "Report-Msgid-Bugs-To: \n" "POT-Creation-Date: 2016-01-27 13:28+0100\n" "PO-Revision-Date: 2016-01-28 08:56+0000\n" "Last-Translator: slav0nic \n" "Language-Team: Breton (http://www.transifex.com/gbtami/pychess/language/br/)\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" "Language: br\n" "Plural-Forms: nplurals=2; plural=(n > 1);\n" # "Plural-Forms: nplurals=INTEGER; plural=EXPRESSION;\n" #: glade/analyze_game.glade:22 msgid "Analyze game" msgstr "" #: glade/analyze_game.glade:87 msgid "Use analyzer:" msgstr "" #: glade/analyze_game.glade:122 glade/PyChess.glade:2054 msgid "Maximum analysis time in seconds:" msgstr "" #: glade/analyze_game.glade:163 msgid "" "If the analyzer finds a move where the evaluation difference (the difference" " between the evaluation for the move it thinks is the best move and the " "evaluation for the move made in the game) exceeds this value, it will add an" " annotation for that move (consisting of the engine's Principal Variation " "for the move) to the Annotation panel" msgstr "" #: glade/analyze_game.glade:164 msgid "Variation annotation creation threshold in centipawns:" msgstr "" #: glade/analyze_game.glade:198 msgid "Analyze from current position" msgstr "" #: glade/analyze_game.glade:214 msgid "Add threatening variation lines " msgstr "" #: glade/analyze_game.glade:229 glade/PyChess.glade:1459 msgid "Colorize analyzed moves" msgstr "" #: glade/analyze_game.glade:244 glade/PyChess.glade:1495 msgid "Show evaluation values" msgstr "" #: glade/discovererDialog.glade:18 msgid "PyChess is discovering your engines. Please wait." msgstr "" #: glade/discovererDialog.glade:77 msgid "PyChess.py:" msgstr "" #: glade/discovererDialog.glade:89 msgid "ShredderLinuxChess:" msgstr "" #: glade/discovererDialog.glade:101 msgid "gnuchess:" msgstr "" #: glade/fics_logon.glade:7 msgid "PyChess - Connect to Internet Chess" msgstr "" #: glade/fics_logon.glade:47 msgid "Connect to the Free Online Chess Server" msgstr "" #: glade/fics_logon.glade:129 glade/taskers.glade:394 msgid "_Password:" msgstr "" #: glade/fics_logon.glade:143 msgid "_Name:" msgstr "_Anv :" #: glade/fics_logon.glade:191 msgid "Log on as _Guest" msgstr "" #: glade/fics_logon.glade:227 msgid "Host:" msgstr "" #: glade/fics_logon.glade:259 msgid "Po_rts:" msgstr "" #: glade/fics_logon.glade:271 msgid "Auto login on startup" msgstr "" #: glade/fics_logon.glade:385 msgid "S_ign up" msgstr "" #: glade/fics_lounge.glade:35 msgid "Challenge: " msgstr "" #: glade/fics_lounge.glade:97 msgid "Send Challenge" msgstr "" #: glade/fics_lounge.glade:133 msgid "Challenge:" msgstr "" #: glade/fics_lounge.glade:327 glade/fics_lounge.glade:2078 msgid "Lightning:" msgstr "" #: glade/fics_lounge.glade:351 glade/fics_lounge.glade:2102 msgid "Standard:" msgstr "" #: glade/fics_lounge.glade:375 glade/fics_lounge.glade:2126 msgid "Blitz:" msgstr "" #: glade/fics_lounge.glade:400 msgid "2 min, Fischer Random, Black" msgstr "" #: glade/fics_lounge.glade:422 msgid "10 min + 6 sec/move, White" msgstr "" #: glade/fics_lounge.glade:444 msgid "5 min" msgstr "" #: glade/fics_lounge.glade:480 msgid "Edit Seek" msgstr "" #: glade/fics_lounge.glade:584 lib/pychess/ic/ICLounge.py:2208 #: lib/pychess/ic/__init__.py:101 lib/pychess/Utils/GameModel.py:206 msgid "Untimed" msgstr "" #: glade/fics_lounge.glade:637 msgid "Minutes: " msgstr "" #: glade/fics_lounge.glade:665 msgid " Gain: " msgstr "" #: glade/fics_lounge.glade:703 msgid "Time control: " msgstr "" #: glade/fics_lounge.glade:716 lib/pychess/ic/FICSObjects.py:56 #: lib/pychess/ic/ICLounge.py:1137 lib/pychess/ic/ICLounge.py:2208 #: lib/pychess/ic/__init__.py:99 msgid "Standard" msgstr "" #: glade/fics_lounge.glade:757 glade/newInOut.glade:633 msgid "Time Control" msgstr "" #: glade/fics_lounge.glade:814 glade/fics_lounge.glade:1346 msgid "Don't care" msgstr "" #: glade/fics_lounge.glade:879 msgid "Your strength: " msgstr "" #: glade/fics_lounge.glade:921 msgid "(Blitz)" msgstr "" #: glade/fics_lounge.glade:951 msgid "Opponent's strength: " msgstr "" #: glade/fics_lounge.glade:1055 msgid "" "When this button is in the \"locked\" state, the relationship\n" "between \"Opponent's strength\" and \"Your strength\" will be\n" "preserved when \n" "a) your rating for the type of game sought has changed\n" "b) you change the variant or the time control" msgstr "" #: glade/fics_lounge.glade:1095 msgid "Center:" msgstr "" #: glade/fics_lounge.glade:1134 msgid "1200" msgstr "" #: glade/fics_lounge.glade:1188 msgid "Tolerance:" msgstr "" #: glade/fics_lounge.glade:1243 lib/pychess/ic/ICLounge.py:2452 msgid "Hide" msgstr "" #: glade/fics_lounge.glade:1289 msgid "Opponent Strength" msgstr "" #: glade/fics_lounge.glade:1386 lib/pychess/Database/gamelist.py:40 #: lib/pychess/ic/ICLounge.py:1357 lib/pychess/ic/ICLounge.py:1557 #: lib/pychess/ic/ICLounge.py:2108 lib/pychess/Utils/repr.py:10 #: lib/pychess/widgets/ChessClock.py:40 #: lib/pychess/widgets/TaskerManager.py:153 msgid "White" msgstr "Gwenn" #: glade/fics_lounge.glade:1414 lib/pychess/Database/gamelist.py:40 #: lib/pychess/ic/ICLounge.py:1358 lib/pychess/ic/ICLounge.py:1558 #: lib/pychess/ic/ICLounge.py:2110 lib/pychess/Utils/repr.py:10 #: lib/pychess/widgets/ChessClock.py:40 #: lib/pychess/widgets/TaskerManager.py:154 msgid "Black" msgstr "Du" #: glade/fics_lounge.glade:1453 msgid "Your Color" msgstr "" #: glade/fics_lounge.glade:1512 msgid "Play normal chess rules" msgstr "" #: glade/fics_lounge.glade:1552 msgid "Play" msgstr "" #: glade/fics_lounge.glade:1618 glade/newInOut.glade:833 msgid "Chess Variant" msgstr "" #: glade/fics_lounge.glade:1676 msgid "Rated game" msgstr "" #: glade/fics_lounge.glade:1692 msgid "Manually accept opponent" msgstr "" #: glade/fics_lounge.glade:1722 msgid "Options" msgstr "" #: glade/fics_lounge.glade:1750 msgid "PyChess - Internet Chess: FICS" msgstr "" #: glade/fics_lounge.glade:1823 msgid "_Clear Seeks" msgstr "" #: glade/fics_lounge.glade:1847 msgid "_Accept" msgstr "" #: glade/fics_lounge.glade:1871 msgid "_Decline" msgstr "" #: glade/fics_lounge.glade:2151 msgid "2 min, Fischer Random, 1800↓, Black" msgstr "" #: glade/fics_lounge.glade:2172 msgid "10 min + 6 sec/move, 1400↑, White" msgstr "" #: glade/fics_lounge.glade:2193 msgid "5 min, 1200-1800, Manual" msgstr "" #: glade/fics_lounge.glade:2247 msgid "Send all seeks" msgstr "" #: glade/fics_lounge.glade:2301 msgid "Send seek" msgstr "" #: glade/fics_lounge.glade:2337 msgid "Create Seek" msgstr "" #: glade/fics_lounge.glade:2353 msgid "_Seeks / Challenges" msgstr "" #: glade/fics_lounge.glade:2374 lib/pychess/ic/ICLounge.py:472 #: lib/pychess/ic/ICLounge.py:670 lib/pychess/ic/ICLounge.py:1357 #: lib/pychess/ic/ICLounge.py:1358 msgid "Rating" msgstr "" #: glade/fics_lounge.glade:2399 msgid "Time" msgstr "" #: glade/fics_lounge.glade:2419 msgid "Seek _Graph" msgstr "" #: glade/fics_lounge.glade:2444 msgid "0 Players Ready" msgstr "" #: glade/fics_lounge.glade:2496 msgid "Challenge" msgstr "" #: glade/fics_lounge.glade:2549 glade/fics_lounge.glade:2735 msgid "Observe" msgstr "" #: glade/fics_lounge.glade:2602 msgid "Start Private Chat" msgstr "" #: glade/fics_lounge.glade:2659 msgid "_Player List" msgstr "" #: glade/fics_lounge.glade:2792 msgid "_Game List" msgstr "" #: glade/fics_lounge.glade:2847 msgid "_My games" msgstr "" #: glade/fics_lounge.glade:2904 glade/PyChess.glade:841 msgid "Offer _Resume" msgstr "" #: glade/fics_lounge.glade:2962 glade/PyChess.glade:880 msgid "R_esign" msgstr "" #: glade/fics_lounge.glade:3006 glade/PyChess.glade:820 msgid "Offer _Draw" msgstr "" #: glade/fics_lounge.glade:3050 msgid "Offer A_bort" msgstr "" #: glade/fics_lounge.glade:3107 msgid "Pre_view" msgstr "" #: glade/fics_lounge.glade:3151 msgid "Examine" msgstr "" #: glade/fics_lounge.glade:3208 msgid "_Archived" msgstr "" #: glade/fics_lounge.glade:3313 msgid "News" msgstr "" #: glade/fics_lounge.glade:3345 msgid "Show Console" msgstr "" #: glade/fics_lounge.glade:3359 msgid "Show _Chat" msgstr "" #: glade/fics_lounge.glade:3373 msgid "_Log Off" msgstr "" #: glade/fics_lounge.glade:3393 msgid "Tools" msgstr "" #: glade/fics_lounge.glade:3428 msgid "Asymmetric Random " msgstr "" #: glade/findbar.glade:6 msgid "window1" msgstr "" #: glade/findbar.glade:21 msgid "0 of 0" msgstr "" #: glade/findbar.glade:66 msgid "Search:" msgstr "" #: glade/findbar.glade:134 msgid "_Previous" msgstr "" #: glade/findbar.glade:192 msgid "_Next" msgstr "" #: glade/newInOut.glade:45 lib/pychess/widgets/newGameDialog.py:445 msgid "New Game" msgstr "C'hoari nevez" #: glade/newInOut.glade:108 msgid "_Start Game" msgstr "" #: glade/newInOut.glade:130 msgid "Copy FEN" msgstr "" #: glade/newInOut.glade:143 msgid "Clear" msgstr "" #: glade/newInOut.glade:156 msgid "Paste FEN" msgstr "" #: glade/newInOut.glade:257 msgid "_Black player:" msgstr "" #: glade/newInOut.glade:274 msgid "_White player:" msgstr "" #: glade/newInOut.glade:385 msgid "Players" msgstr "C'Hoarierien" #: glade/newInOut.glade:436 msgid "_Untimed" msgstr "" #: glade/newInOut.glade:475 msgid "Blitz: 5 min" msgstr "" #: glade/newInOut.glade:526 msgid "Rapid: 15 min + 10 sec/move" msgstr "" #: glade/newInOut.glade:575 msgid "Normal: 40 min + 15 sec/move" msgstr "" #: glade/newInOut.glade:684 msgid "_Play Normal chess" msgstr "" #: glade/newInOut.glade:724 msgid "Play Fischer Random chess" msgstr "" #: glade/newInOut.glade:774 msgid "Play Losers chess" msgstr "" #: glade/newInOut.glade:919 msgid "Open Game" msgstr "" #: glade/newInOut.glade:1162 msgid "Initial Position" msgstr "" #: glade/newInOut.glade:1219 msgid "Enter Game Notation" msgstr "" #: glade/newInOut.glade:1314 msgid "Halfmove clock" msgstr "" #: glade/newInOut.glade:1327 msgid "En passant line" msgstr "" #: glade/newInOut.glade:1339 msgid "Side to move" msgstr "" #: glade/newInOut.glade:1351 msgid "Move number" msgstr "" #: glade/newInOut.glade:1361 msgid "Black O-O" msgstr "" #: glade/newInOut.glade:1375 msgid "Black O-O-O" msgstr "" #: glade/newInOut.glade:1389 msgid "White O-O-O" msgstr "" #: glade/newInOut.glade:1403 msgid "White O-O" msgstr "" #: glade/promotion.glade:7 msgid "Promotion" msgstr "" #: glade/promotion.glade:49 lib/pychess/Utils/repr.py:12 msgid "Queen" msgstr "Rouanez" #: glade/promotion.glade:95 lib/pychess/Utils/repr.py:12 msgid "Rook" msgstr "" #: glade/promotion.glade:141 lib/pychess/Utils/repr.py:12 msgid "Bishop" msgstr "Furlukin" #: glade/promotion.glade:187 lib/pychess/Utils/repr.py:12 msgid "Knight" msgstr "Roue" #: glade/promotion.glade:233 lib/pychess/Utils/repr.py:12 msgid "King" msgstr "" #: glade/promotion.glade:265 msgid "Promote pawn to what?" msgstr "" #: glade/PyChess.glade:9 msgid "Chess client" msgstr "" #: glade/PyChess.glade:44 msgid "Game information" msgstr "" #: glade/PyChess.glade:164 msgid "Event:" msgstr "" #: glade/PyChess.glade:178 msgid "Site:" msgstr "" #: glade/PyChess.glade:204 msgid "Round:" msgstr "" #: glade/PyChess.glade:237 msgid "White:" msgstr "" #: glade/PyChess.glade:249 msgid "Black:" msgstr "" #: glade/PyChess.glade:302 msgid "Game data" msgstr "" #: glade/PyChess.glade:357 msgid "Date of game" msgstr "" #: glade/PyChess.glade:495 msgid "_Game" msgstr "_C'Hoari" #: glade/PyChess.glade:502 msgid "_New Game" msgstr "C'Hoari _Nevez" #: glade/PyChess.glade:515 msgid "Play _Internet Chess" msgstr "" #: glade/PyChess.glade:534 msgid "_Load Game" msgstr "" #: glade/PyChess.glade:550 msgid "Load _Recent Game" msgstr "" #: glade/PyChess.glade:558 msgid "Open _Database" msgstr "" #: glade/PyChess.glade:569 lib/pychess/widgets/newGameDialog.py:615 msgid "Setup Position" msgstr "" #: glade/PyChess.glade:579 msgid "Enter Game _Notation" msgstr "" #: glade/PyChess.glade:592 msgid "_Save Game" msgstr "" #: glade/PyChess.glade:606 msgid "Save Game _As" msgstr "" #: glade/PyChess.glade:624 msgid "Share Game" msgstr "" #: glade/PyChess.glade:630 msgid "_Export Position" msgstr "" #: glade/PyChess.glade:644 msgid "_Analyze Game" msgstr "" #: glade/PyChess.glade:678 msgid "Player _Rating" msgstr "" #: glade/PyChess.glade:723 msgid "_Edit" msgstr "" #: glade/PyChess.glade:734 msgid "_Copy PGN" msgstr "" #: glade/PyChess.glade:746 msgid "_Copy FEN" msgstr "" #: glade/PyChess.glade:763 msgid "_Engines" msgstr "" #: glade/PyChess.glade:789 msgid "_Actions" msgstr "" #: glade/PyChess.glade:800 msgid "Offer _Abort" msgstr "" #: glade/PyChess.glade:810 msgid "Offer Ad_journment" msgstr "" #: glade/PyChess.glade:831 msgid "Offer _Pause" msgstr "" #: glade/PyChess.glade:847 msgid "Offer _Undo" msgstr "" #: glade/PyChess.glade:870 msgid "_Call Flag" msgstr "" #: glade/PyChess.glade:890 msgid "Ask to _Move" msgstr "" #: glade/PyChess.glade:905 msgid "Auto Call _Flag" msgstr "" #: glade/PyChess.glade:918 msgid "_View" msgstr "" #: glade/PyChess.glade:925 msgid "_Rotate Board" msgstr "" #: glade/PyChess.glade:939 msgid "_Fullscreen" msgstr "" #: glade/PyChess.glade:952 msgid "Leave _Fullscreen" msgstr "" #: glade/PyChess.glade:969 msgid "_Show Sidepanels" msgstr "" #: glade/PyChess.glade:980 msgid "_Log Viewer" msgstr "" #: glade/PyChess.glade:997 msgid "_Hint mode" msgstr "" #: glade/PyChess.glade:1009 msgid "Sp_y mode" msgstr "" #: glade/PyChess.glade:1024 msgid "_Help" msgstr "_Skoazell" #: glade/PyChess.glade:1034 msgid "About Chess" msgstr "" #: glade/PyChess.glade:1043 msgid "How to Play" msgstr "" #: glade/PyChess.glade:1052 msgid "Translate PyChess" msgstr "" #: glade/PyChess.glade:1058 msgid "Tip of the Day" msgstr "" #: glade/PyChess.glade:1153 msgid "Default" msgstr "" #: glade/PyChess.glade:1156 msgid "Knights" msgstr "" #: glade/PyChess.glade:1167 lib/pychess/widgets/preferencesDialog.py:349 msgid "Beep" msgstr "" #: glade/PyChess.glade:1170 lib/pychess/widgets/preferencesDialog.py:350 msgid "Select sound file..." msgstr "" #: glade/PyChess.glade:1173 lib/pychess/widgets/preferencesDialog.py:348 msgid "No sound" msgstr "" #: glade/PyChess.glade:1180 msgid "Preferences" msgstr "" #: glade/PyChess.glade:1218 msgid "The displayed name of the first human player, e.g., John." msgstr "" #: glade/PyChess.glade:1230 msgid "Name of _first human player:" msgstr "" #: glade/PyChess.glade:1259 msgid "The displayed name of the guest player, e.g., Mary." msgstr "" #: glade/PyChess.glade:1271 msgid "Name of s_econd human player:" msgstr "" #: glade/PyChess.glade:1307 msgid "_Hide tabs when only one game is open" msgstr "" #: glade/PyChess.glade:1312 msgid "" "If set, this hides the tab in the top of the playing window, when it is not " "needed." msgstr "" #: glade/PyChess.glade:1326 msgid "_Use main app closer [x] to close all games" msgstr "" #: glade/PyChess.glade:1331 msgid "" "If set, clicking on main application window closer first time it closes all " "games." msgstr "" #: glade/PyChess.glade:1345 msgid "Auto _rotate board to current human player" msgstr "" #: glade/PyChess.glade:1350 msgid "" "If set, the board will turn after each move, to show the natural view for " "the current player." msgstr "" #: glade/PyChess.glade:1364 msgid "Auto _promote to queen" msgstr "" #: glade/PyChess.glade:1369 msgid "If set, pawn promotes to queen without promotion dialog selection." msgstr "" #: glade/PyChess.glade:1383 msgid "Face _to Face display mode" msgstr "" #: glade/PyChess.glade:1388 msgid "" "If set, the black pieces will be head down, suitable for playing against " "friends on mobile devices." msgstr "" #: glade/PyChess.glade:1402 msgid "Sho_w cords" msgstr "" #: glade/PyChess.glade:1407 msgid "" "If set, the playing board will display labels and ranks for each chess " "field. These are usable in chess notation." msgstr "" #: glade/PyChess.glade:1421 msgid "Show _captured pieces" msgstr "" #: glade/PyChess.glade:1426 msgid "If set, the captured figurines will be shown next to the board." msgstr "" #: glade/PyChess.glade:1440 msgid "Prefer figures in _notation" msgstr "" #: glade/PyChess.glade:1445 msgid "" "If set, PyChess will use figures to express moved pieces, rather than " "uppercase letters." msgstr "" #: glade/PyChess.glade:1464 msgid "If set, PyChess will colorize suboptimal analyzed moves with red." msgstr "" #: glade/PyChess.glade:1477 msgid "Show elapsed move times" msgstr "" #: glade/PyChess.glade:1482 msgid "If set, the elapsed time that a player used for the move is shown." msgstr "" #: glade/PyChess.glade:1500 msgid "If set, the hint analyzer engine evaluation value is shown." msgstr "" #: glade/PyChess.glade:1526 msgid "General Options" msgstr "" #: glade/PyChess.glade:1560 msgid "F_ull board animation" msgstr "" #: glade/PyChess.glade:1565 msgid "Animate pieces, board rotation and more. Use this on fast machines." msgstr "" #: glade/PyChess.glade:1579 msgid "Only animate _moves" msgstr "" #: glade/PyChess.glade:1584 msgid "Only animate piece moves." msgstr "" #: glade/PyChess.glade:1599 msgid "No _animation" msgstr "" #: glade/PyChess.glade:1604 msgid "Never use animation. Use this on slow machines." msgstr "" #: glade/PyChess.glade:1632 msgid "Animation" msgstr "" #: glade/PyChess.glade:1651 msgid "_General" msgstr "" #: glade/PyChess.glade:1692 msgid "Use opening _book" msgstr "" #: glade/PyChess.glade:1697 msgid "If set, PyChess will suggest best opening moves on hint panel." msgstr "" #: glade/PyChess.glade:1724 msgid "Polyglot book file:" msgstr "" #: glade/PyChess.glade:1768 msgid "Use _local tablebases" msgstr "" #: glade/PyChess.glade:1773 msgid "" "If set, PyChess will show game results for different moves in positions containing 6 or less pieces.\n" "You can download tablebase files from:\n" "http://www.olympuschess.com/egtb/gaviota/" msgstr "" #: glade/PyChess.glade:1803 msgid "Gaviota TB path:" msgstr "" #: glade/PyChess.glade:1843 msgid "Use _online tablebases" msgstr "" #: glade/PyChess.glade:1848 msgid "" "If set, PyChess will show game results for different moves in positions containing 6 or less pieces.\n" "It will search positions from http://www.k4it.de/" msgstr "" #: glade/PyChess.glade:1870 msgid "Opening, endgame" msgstr "" #: glade/PyChess.glade:1904 msgid "Use _analyzer" msgstr "" #: glade/PyChess.glade:1946 msgid "" "The analyzer will run in the background and analyze the game. This is " "necessary for the hint mode to work" msgstr "" #: glade/PyChess.glade:1978 msgid "Use _inverted analyzer" msgstr "" #: glade/PyChess.glade:2020 msgid "" "The inverse analyzer will analyze the game as if your opponent was to move. " "This is necessary for the spy mode to work" msgstr "" #: glade/PyChess.glade:2096 msgid "Analyzing" msgstr "" #: glade/PyChess.glade:2118 msgid "_Hints" msgstr "" #: glade/PyChess.glade:2263 msgid "Uninstall" msgstr "" #: glade/PyChess.glade:2317 msgid "Ac_tive" msgstr "" #: glade/PyChess.glade:2367 msgid "Installed Sidepanels" msgstr "" #: glade/PyChess.glade:2382 msgid "Side_panels" msgstr "" #: glade/PyChess.glade:2440 msgid "Light Squares :" msgstr "" #: glade/PyChess.glade:2479 msgid "Dark Squares :" msgstr "" #: glade/PyChess.glade:2515 msgid "Reset Default Colours" msgstr "" #: glade/PyChess.glade:2551 msgid "Board Colours" msgstr "" #: glade/PyChess.glade:2610 msgid "Chess Sets" msgstr "" #: glade/PyChess.glade:2634 msgid "Themes" msgstr "" #: glade/PyChess.glade:2659 msgid "_Use sounds in PyChess" msgstr "" #: glade/PyChess.glade:2982 msgid "A player _checks:" msgstr "" #: glade/PyChess.glade:2997 msgid "A player _moves:" msgstr "" #: glade/PyChess.glade:3010 msgid "Game is _drawn:" msgstr "" #: glade/PyChess.glade:3025 msgid "Game is _lost:" msgstr "" #: glade/PyChess.glade:3040 msgid "Game is _won:" msgstr "" #: glade/PyChess.glade:3055 msgid "A player c_aptures:" msgstr "" #: glade/PyChess.glade:3084 msgid "Game is _set-up:" msgstr "" #: glade/PyChess.glade:3136 msgid "_Observed moves:" msgstr "" #: glade/PyChess.glade:3151 msgid "Observed _ends:" msgstr "" #: glade/PyChess.glade:3265 msgid "Short on _time:" msgstr "" #: glade/PyChess.glade:3317 msgid "_Invalid move:" msgstr "" #: glade/PyChess.glade:3369 msgid "Activate alarm when _remaining sec is:" msgstr "" #: glade/PyChess.glade:3416 msgid "Play Sound When..." msgstr "" #: glade/PyChess.glade:3438 msgid "_Sounds" msgstr "" #: glade/PyChess.glade:3463 msgid "_Auto save finished games" msgstr "" #: glade/PyChess.glade:3497 msgid "Save files to:" msgstr "" #: glade/PyChess.glade:3525 msgid "Use name format:" msgstr "" #: glade/PyChess.glade:3569 msgid "Names: #n1, #n2" msgstr "" #: glade/PyChess.glade:3582 msgid "Year, month, day: #y, #m, #d" msgstr "" #: glade/PyChess.glade:3619 msgid "Save elapsed move _times" msgstr "" #: glade/PyChess.glade:3644 msgid "Save analyzing engine _evaluation values" msgstr "" #: glade/PyChess.glade:3669 msgid "Save _own games only" msgstr "" #: glade/PyChess.glade:3698 msgid "Save" msgstr "" #: glade/PyChess.glade:3728 msgid "uci" msgstr "" #: glade/PyChess.glade:3731 msgid "xboard" msgstr "" #: glade/PyChess.glade:3739 msgid "Manage engines" msgstr "" #: glade/PyChess.glade:3837 msgid "Command:" msgstr "" #: glade/PyChess.glade:3851 msgid "Protocol:" msgstr "" #: glade/PyChess.glade:3865 msgid "Parameters:" msgstr "" #: glade/PyChess.glade:3878 msgid "Command line parameters needed by the engine." msgstr "" #: glade/PyChess.glade:3903 msgid "" "Engines use uci or xboard communication protocol to talk to the GUI.\n" "If it can use both you can set here which one you like." msgstr "" #: glade/PyChess.glade:3929 msgid "Working directory:" msgstr "" #: glade/PyChess.glade:3942 msgid "The directory where the engine will be started from." msgstr "" #: glade/saveGamesDialog.glade:7 msgid "Quit PyChess" msgstr "" #: glade/saveGamesDialog.glade:24 lib/pychess/widgets/ionest.py:424 msgid "Close _without Saving" msgstr "" #: glade/saveGamesDialog.glade:83 msgid "_Save %d documents" msgstr "" #: glade/saveGamesDialog.glade:141 msgid "" "There are %d games with unsaved moves. Save changes before " "closing?" msgstr "" #: glade/saveGamesDialog.glade:161 msgid "Select the games you want to save:" msgstr "" #: glade/saveGamesDialog.glade:204 msgid "If you don't save, new changes to your games will be permanently lost." msgstr "" #: glade/taskers.glade:126 msgid "_Opponent:" msgstr "" #: glade/taskers.glade:154 msgid "_Your Color:" msgstr "" #: glade/taskers.glade:219 msgid "_Start Game" msgstr "" #: glade/taskers.glade:338 msgid "Log on as G_uest" msgstr "" #: glade/taskers.glade:410 msgid "Ha_ndle:" msgstr "" #: glade/taskers.glade:469 msgid "_Connect to server" msgstr "" #: glade/tipoftheday.glade:7 msgid "Tip Of The day" msgstr "" #: glade/tipoftheday.glade:62 msgid "Show tips at startup" msgstr "" #: lib/pychess/Main.py:302 msgid "http://en.wikipedia.org/wiki/Chess" msgstr "" #: lib/pychess/Main.py:305 msgid "http://en.wikipedia.org/wiki/Rules_of_chess" msgstr "" #: lib/pychess/Main.py:370 lib/pychess/widgets/gamenanny.py:80 msgid "Welcome" msgstr "" #: lib/pychess/Database/gamelist.py:40 msgid "Id" msgstr "" #: lib/pychess/Database/gamelist.py:40 msgid "W Elo" msgstr "" #: lib/pychess/Database/gamelist.py:40 msgid "B Elo" msgstr "" #: lib/pychess/Database/gamelist.py:41 msgid "Result" msgstr "" #: lib/pychess/Database/gamelist.py:41 msgid "Event" msgstr "" #: lib/pychess/Database/gamelist.py:41 msgid "Site" msgstr "" #: lib/pychess/Database/gamelist.py:41 msgid "Round" msgstr "" #: lib/pychess/Database/gamelist.py:41 msgid "Date" msgstr "" #: lib/pychess/Database/gamelist.py:41 msgid "ECO" msgstr "" #: lib/pychess/Database/gamelist.py:62 msgid "PyChess Game Database" msgstr "" #: lib/pychess/Database/PgnImport.py:188 #, python-format msgid "The game #%s can't be loaded, because of an error parsing FEN" msgstr "" #: lib/pychess/ic/FICSConnection.py:139 msgid "The connection was broken - got \"end of file\" message" msgstr "" #: lib/pychess/ic/FICSConnection.py:140 #, python-format msgid "'%s' is not a registered name" msgstr "" #: lib/pychess/ic/FICSConnection.py:141 msgid "" "The entered password was invalid.\n" "If you forgot your password, go to http://www.freechess.org/password to request a new one over email." msgstr "" #: lib/pychess/ic/FICSConnection.py:145 #, python-format msgid "Sorry '%s' is already logged in" msgstr "" #: lib/pychess/ic/FICSConnection.py:146 #, python-format msgid "'%s' is a registered name. If it is yours, type the password." msgstr "" #: lib/pychess/ic/FICSConnection.py:147 msgid "" "Due to abuse problems, guest connections have been prevented.\n" "You can still register on http://www.freechess.org" msgstr "" #: lib/pychess/ic/FICSConnection.py:166 msgid "Connecting to server" msgstr "" #: lib/pychess/ic/FICSConnection.py:181 msgid "Logging on to server" msgstr "" #: lib/pychess/ic/FICSConnection.py:239 msgid "Setting up environment" msgstr "" #: lib/pychess/ic/FICSObjects.py:35 lib/pychess/ic/FICSObjects.py:47 #, python-format msgid "%(player)s is %(status)s" msgstr "" #: lib/pychess/ic/FICSObjects.py:46 msgid "not playing" msgstr "" #: lib/pychess/ic/FICSObjects.py:54 lib/pychess/ic/ICLounge.py:1136 #: lib/pychess/ic/ICLounge.py:2209 lib/pychess/ic/__init__.py:98 #: lib/pychess/widgets/newGameDialog.py:153 msgid "Blitz" msgstr "" #: lib/pychess/ic/FICSObjects.py:58 lib/pychess/ic/ICLounge.py:1137 #: lib/pychess/ic/ICLounge.py:2209 lib/pychess/ic/__init__.py:100 msgid "Lightning" msgstr "" #: lib/pychess/ic/FICSObjects.py:60 lib/pychess/Variants/atomic.py:15 msgid "Atomic" msgstr "" #: lib/pychess/ic/FICSObjects.py:62 lib/pychess/Variants/bughouse.py:9 msgid "Bughouse" msgstr "" #: lib/pychess/ic/FICSObjects.py:64 lib/pychess/Variants/crazyhouse.py:9 msgid "Crazyhouse" msgstr "" #: lib/pychess/ic/FICSObjects.py:66 lib/pychess/Variants/losers.py:9 msgid "Losers" msgstr "" #: lib/pychess/ic/FICSObjects.py:68 lib/pychess/Variants/suicide.py:12 msgid "Suicide" msgstr "" #: lib/pychess/ic/FICSObjects.py:70 lib/pychess/ic/__init__.py:129 msgid "Wild" msgstr "" #: lib/pychess/ic/FICSObjects.py:117 msgid "Online" msgstr "" #: lib/pychess/ic/FICSObjects.py:118 lib/pychess/ic/FICSObjects.py:143 msgid "Offline" msgstr "" #: lib/pychess/ic/FICSObjects.py:133 msgid "Available" msgstr "" #: lib/pychess/ic/FICSObjects.py:135 msgid "Playing" msgstr "" #: lib/pychess/ic/FICSObjects.py:141 msgid "Idle" msgstr "" #: lib/pychess/ic/FICSObjects.py:145 msgid "Examining" msgstr "" #: lib/pychess/ic/FICSObjects.py:147 msgid "Not Available" msgstr "" #: lib/pychess/ic/FICSObjects.py:149 msgid "Running Simul Match" msgstr "" #: lib/pychess/ic/FICSObjects.py:151 msgid "In Tournament" msgstr "" #: lib/pychess/ic/FICSObjects.py:308 lib/pychess/ic/FICSObjects.py:492 #: lib/pychess/ic/ICLounge.py:2278 msgid "Unrated" msgstr "" #: lib/pychess/ic/FICSObjects.py:491 lib/pychess/ic/ICLounge.py:670 #: lib/pychess/ic/ICLounge.py:1358 lib/pychess/ic/ICLounge.py:1558 #: lib/pychess/ic/ICLounge.py:2113 msgid "Rated" msgstr "" #: lib/pychess/ic/FICSObjects.py:498 lib/pychess/ic/ICLounge.py:2098 #, python-format msgid "%d min" msgstr "" #: lib/pychess/ic/FICSObjects.py:500 #, python-format msgid " + %d sec" msgstr "" #: lib/pychess/ic/FICSObjects.py:517 #, python-format msgid "%(player)s plays %(color)s" msgstr "" #: lib/pychess/ic/FICSObjects.py:519 lib/pychess/ic/ICLounge.py:909 msgid "white" msgstr "" #: lib/pychess/ic/FICSObjects.py:519 lib/pychess/ic/ICLounge.py:909 msgid "black" msgstr "" #: lib/pychess/ic/FICSObjects.py:565 msgid "This is a continuation of an adjourned match" msgstr "" #: lib/pychess/ic/FICSObjects.py:654 msgid "Opponent Rating" msgstr "" #: lib/pychess/ic/FICSObjects.py:656 msgid "Manual Accept" msgstr "" #: lib/pychess/ic/FICSObjects.py:810 msgid "Private" msgstr "" #: lib/pychess/ic/FICSObjects.py:930 lib/pychess/ic/ICLounge.py:527 #: lib/pychess/Savers/epd.py:139 msgid "Unknown" msgstr "Dianav" #: lib/pychess/ic/ICLogon.py:159 lib/pychess/ic/ICLogon.py:165 msgid "Connection Error" msgstr "" #: lib/pychess/ic/ICLogon.py:161 msgid "Log on Error" msgstr "" #: lib/pychess/ic/ICLogon.py:163 msgid "Connection was closed" msgstr "" #: lib/pychess/ic/ICLogon.py:169 msgid "Address Error" msgstr "" #: lib/pychess/ic/ICLogon.py:172 msgid "Auto-logout" msgstr "" #: lib/pychess/ic/ICLogon.py:173 msgid "You have been logged out because you were idle more than 60 minutes" msgstr "" #: lib/pychess/ic/ICLounge.py:222 msgid "You have to set kibitz on to see bot messages here." msgstr "" #: lib/pychess/ic/ICLounge.py:241 msgid "" "You may only have 3 outstanding seeks at the same time. If you want to add a" " new seek you must clear your currently active seeks. Clear your seeks?" msgstr "" #: lib/pychess/ic/ICLounge.py:258 msgid "You can't touch this! You are examining a game." msgstr "" #: lib/pychess/ic/ICLounge.py:270 msgid " has declined your offer for a match" msgstr "" #: lib/pychess/ic/ICLounge.py:283 msgid " is censoring you" msgstr "" #: lib/pychess/ic/ICLounge.py:296 msgid " noplay listing you" msgstr "" #: lib/pychess/ic/ICLounge.py:311 msgid " uses a formula not fitting your match request:" msgstr "" #: lib/pychess/ic/ICLounge.py:325 msgid "to manual accept" msgstr "" #: lib/pychess/ic/ICLounge.py:327 msgid "to automatic accept" msgstr "" #: lib/pychess/ic/ICLounge.py:329 msgid "rating range now" msgstr "" #: lib/pychess/ic/ICLounge.py:330 msgid "Seek updated" msgstr "" #: lib/pychess/ic/ICLounge.py:342 msgid "Your seeks have been removed" msgstr "" #: lib/pychess/ic/ICLounge.py:363 msgid " has arrived" msgstr "" #: lib/pychess/ic/ICLounge.py:370 msgid " has departed" msgstr "" #: lib/pychess/ic/ICLounge.py:374 msgid " is present" msgstr "" #: lib/pychess/ic/ICLounge.py:391 sidepanel/chatPanel.py:17 msgid "Chat" msgstr "" #: lib/pychess/ic/ICLounge.py:472 sidepanel/bookPanel.py:366 msgid "Win" msgstr "" #: lib/pychess/ic/ICLounge.py:472 sidepanel/bookPanel.py:360 msgid "Draw" msgstr "" #: lib/pychess/ic/ICLounge.py:472 sidepanel/bookPanel.py:363 msgid "Loss" msgstr "" #: lib/pychess/ic/ICLounge.py:482 msgid "" "On FICS, your \"Wild\" rating encompasses all of the following variants at " "all time controls:\n" msgstr "" #: lib/pychess/ic/ICLounge.py:494 msgid "Sanctions" msgstr "" #: lib/pychess/ic/ICLounge.py:499 msgid "Email" msgstr "Postel" #: lib/pychess/ic/ICLounge.py:504 msgid "Spent" msgstr "" #: lib/pychess/ic/ICLounge.py:506 msgid "online in total" msgstr "" #: lib/pychess/ic/ICLounge.py:512 msgid "Ping" msgstr "Ping" #: lib/pychess/ic/ICLounge.py:517 msgid "Connecting" msgstr "" #: lib/pychess/ic/ICLounge.py:544 msgid "" "You are currently logged in as a guest.\n" "A guest can't play rated games and therefore isn't able to play as many of the types of matches offered as a registered user. To register an account, go to http://www.freechess.org/Register/index.html." msgstr "" #: lib/pychess/ic/ICLounge.py:669 lib/pychess/ic/ICLounge.py:1136 msgid "Name" msgstr "Anv" #: lib/pychess/ic/ICLounge.py:670 lib/pychess/ic/ICLounge.py:1358 #: lib/pychess/ic/ICLounge.py:1558 msgid "Type" msgstr "" #: lib/pychess/ic/ICLounge.py:670 lib/pychess/ic/ICLounge.py:1558 msgid "Clock" msgstr "" #: lib/pychess/ic/ICLounge.py:726 lib/pychess/ic/ICLounge.py:923 #: lib/pychess/Players/Human.py:250 msgid "Accept" msgstr "" #: lib/pychess/ic/ICLounge.py:728 msgid "Assess" msgstr "" #: lib/pychess/ic/ICLounge.py:734 msgid "Archived" msgstr "" #: lib/pychess/ic/ICLounge.py:848 #, python-format msgid "Active seeks: %d" msgstr "" #: lib/pychess/ic/ICLounge.py:897 #, python-format msgid "" " would like to resume your adjourned %(time)s %(gametype)s " "game." msgstr "" #: lib/pychess/ic/ICLounge.py:902 #, python-format msgid "" " challenges you to a %(time)s %(rated)s %(gametype)s game" msgstr "" #: lib/pychess/ic/ICLounge.py:907 #, python-format msgid " where %(player)s plays %(color)s." msgstr "" #: lib/pychess/ic/ICLounge.py:924 lib/pychess/Players/Human.py:251 msgid "Decline" msgstr "" #: lib/pychess/ic/ICLounge.py:1065 msgid " min" msgstr "" #: lib/pychess/ic/ICLounge.py:1137 msgid "Status" msgstr "" #: lib/pychess/ic/ICLounge.py:1203 lib/pychess/ic/ICLounge.py:1233 #, python-format msgid "Players: %d" msgstr "" #: lib/pychess/ic/ICLounge.py:1469 #, python-format msgid "Games running: %d" msgstr "" #: lib/pychess/ic/ICLounge.py:1559 msgid "Date/Time" msgstr "" #: lib/pychess/ic/ICLounge.py:1614 #, python-format msgid "" " with whom you have an adjourned %(timecontrol)s %(gametype)s " "game is online." msgstr "" #: lib/pychess/ic/ICLounge.py:1635 msgid "Request Continuation" msgstr "" #: lib/pychess/ic/ICLounge.py:1637 msgid "Examine Adjourned Game" msgstr "" #: lib/pychess/ic/ICLounge.py:1965 msgid "" "The chain button is disabled because you are logged in as a guest. Guests " "can't establish ratings, and the chain button's state has no effect when " "there is no rating to which to tie \"Opponent Strength\" to" msgstr "" #: lib/pychess/ic/ICLounge.py:2006 msgid "Challenge: " msgstr "" #: lib/pychess/ic/ICLounge.py:2044 msgid "If set you can refuse players accepting your seek" msgstr "" #: lib/pychess/ic/ICLounge.py:2048 lib/pychess/ic/ICLounge.py:2051 msgid "This option is not applicable because you're challenging a player" msgstr "" #: lib/pychess/ic/ICLounge.py:2064 msgid "Edit Seek: " msgstr "" #: lib/pychess/ic/ICLounge.py:2095 #, python-format msgid "%(minutes)d min + %(gain)d sec/move" msgstr "" #: lib/pychess/ic/ICLounge.py:2116 msgid "Manual" msgstr "" #: lib/pychess/ic/ICLounge.py:2256 msgid "Any strength" msgstr "" #: lib/pychess/ic/ICLounge.py:2308 msgid "You can't play rated games because you are logged in as a guest" msgstr "" #: lib/pychess/ic/ICLounge.py:2312 msgid "You can't play rated games because \"Untimed\" is checked, " msgstr "" #: lib/pychess/ic/ICLounge.py:2313 msgid "and on FICS, untimed games can't be rated" msgstr "" #: lib/pychess/ic/ICLounge.py:2317 msgid "This option is not available because you're challenging a guest, " msgstr "" #: lib/pychess/ic/ICLounge.py:2318 msgid "and guests can't play rated games" msgstr "" #: lib/pychess/ic/ICLounge.py:2332 lib/pychess/Variants/shuffle.py:16 #: lib/pychess/widgets/newGameDialog.py:266 msgid "Shuffle" msgstr "" #: lib/pychess/ic/ICLounge.py:2333 lib/pychess/widgets/newGameDialog.py:267 msgid "Other (standard rules)" msgstr "" #: lib/pychess/ic/ICLounge.py:2334 lib/pychess/widgets/newGameDialog.py:268 msgid "Other (non standard rules)" msgstr "" #: lib/pychess/ic/ICLounge.py:2421 msgid "You can't select a variant because \"Untimed\" is checked, " msgstr "" #: lib/pychess/ic/ICLounge.py:2422 msgid "and on FICS, untimed games have to be normal chess rules" msgstr "" #: lib/pychess/ic/ICLounge.py:2454 msgid "Change Tolerance" msgstr "" #: lib/pychess/ic/__init__.py:102 msgid "Examined" msgstr "" #: lib/pychess/ic/__init__.py:103 msgid "Other" msgstr "" #: lib/pychess/ic/__init__.py:182 msgid "Administrator" msgstr "" #: lib/pychess/ic/__init__.py:182 msgid "Blindfold Account" msgstr "" #: lib/pychess/ic/__init__.py:182 msgid "Computer" msgstr "" #: lib/pychess/ic/__init__.py:183 msgid "Team Account" msgstr "" #: lib/pychess/ic/__init__.py:183 msgid "Unregistered" msgstr "" #: lib/pychess/ic/__init__.py:183 msgid "Chess Advisor" msgstr "" #: lib/pychess/ic/__init__.py:184 msgid "Service Representative" msgstr "" #: lib/pychess/ic/__init__.py:184 msgid "Tournament Director" msgstr "" #: lib/pychess/ic/__init__.py:184 msgid "Mamer Manager" msgstr "" #: lib/pychess/ic/__init__.py:185 msgid "Grand Master" msgstr "" #: lib/pychess/ic/__init__.py:185 msgid "International Master" msgstr "" #: lib/pychess/ic/__init__.py:185 msgid "FIDE Master" msgstr "" #: lib/pychess/ic/__init__.py:186 msgid "Woman Grand Master" msgstr "" #: lib/pychess/ic/__init__.py:186 msgid "Woman International Master" msgstr "" #: lib/pychess/ic/__init__.py:186 msgid "Woman FIDE Master" msgstr "" #: lib/pychess/ic/__init__.py:187 msgid "Dummy Account" msgstr "" #: lib/pychess/ic/__init__.py:191 msgid "*" msgstr "" #: lib/pychess/ic/__init__.py:191 lib/pychess/Utils/repr.py:14 msgid "B" msgstr "B" #: lib/pychess/ic/__init__.py:191 msgid "C" msgstr "" #: lib/pychess/ic/__init__.py:192 msgid "T" msgstr "" #: lib/pychess/ic/__init__.py:192 msgid "U" msgstr "" #: lib/pychess/ic/__init__.py:192 msgid "CA" msgstr "" #: lib/pychess/ic/__init__.py:193 msgid "SR" msgstr "" #: lib/pychess/ic/__init__.py:193 msgid "TD" msgstr "" #: lib/pychess/ic/__init__.py:193 msgid "TM" msgstr "" #: lib/pychess/ic/__init__.py:194 msgid "GM" msgstr "" #: lib/pychess/ic/__init__.py:194 msgid "IM" msgstr "" #: lib/pychess/ic/__init__.py:194 msgid "FM" msgstr "" #: lib/pychess/ic/__init__.py:195 msgid "WGM" msgstr "" #: lib/pychess/ic/__init__.py:195 msgid "WIM" msgstr "" #: lib/pychess/ic/__init__.py:195 msgid "WFM" msgstr "" #: lib/pychess/ic/__init__.py:195 msgid "D" msgstr "" #: lib/pychess/ic/__init__.py:195 msgid "H" msgstr "" #: lib/pychess/ic/__init__.py:195 msgid "CM" msgstr "" #: lib/pychess/ic/__init__.py:195 msgid "FA" msgstr "" #: lib/pychess/ic/__init__.py:195 msgid "NM" msgstr "" #: lib/pychess/Players/CECPEngine.py:857 #, python-format msgid "The engine %s reports an error:" msgstr "" #: lib/pychess/Players/Human.py:20 msgid "Your opponent has offered you a draw." msgstr "" #: lib/pychess/Players/Human.py:21 msgid "" "Your opponent has offered you a draw. If you accept this offer, the game " "will end with a score of 1/2 - 1/2." msgstr "" #: lib/pychess/Players/Human.py:23 msgid "Your opponent wants to abort the game." msgstr "" #: lib/pychess/Players/Human.py:24 msgid "" "Your opponent has asked that the game be aborted. If you accept this offer, " "the game will end with no rating change." msgstr "" #: lib/pychess/Players/Human.py:26 msgid "Your opponent wants to adjourn the game." msgstr "" #: lib/pychess/Players/Human.py:27 msgid "" "Your opponent has asked that the game be adjourned. If you accept this " "offer, the game will be adjourned and you can resume it later (when your " "opponent is online and both players agree to resume)." msgstr "" #: lib/pychess/Players/Human.py:29 #, python-format msgid "Your opponent wants to undo %s move(s)." msgstr "" #: lib/pychess/Players/Human.py:30 #, python-format msgid "" "Your opponent has asked that the last %s move(s) be undone. If you accept " "this offer, the game will continue from the earlier position." msgstr "" #: lib/pychess/Players/Human.py:32 msgid "Your opponent wants to pause the game." msgstr "" #: lib/pychess/Players/Human.py:33 msgid "" "Your opponent has asked that the game be paused. If you accept this offer, " "the game clock will be paused until both players agree to resume the game." msgstr "" #: lib/pychess/Players/Human.py:35 msgid "Your opponent wants to resume the game." msgstr "" #: lib/pychess/Players/Human.py:36 msgid "" "Your opponent has asked that the game be resumed. If you accept this offer, " "the game clock will continue from where it was paused." msgstr "" #: lib/pychess/Players/Human.py:40 msgid "The resignation" msgstr "" #: lib/pychess/Players/Human.py:41 msgid "The flag call" msgstr "" #: lib/pychess/Players/Human.py:42 msgid "The draw offer" msgstr "" #: lib/pychess/Players/Human.py:43 msgid "The abort offer" msgstr "" #: lib/pychess/Players/Human.py:44 msgid "The adjourn offer" msgstr "" #: lib/pychess/Players/Human.py:45 msgid "The pause offer" msgstr "" #: lib/pychess/Players/Human.py:46 msgid "The resume offer" msgstr "" #: lib/pychess/Players/Human.py:47 msgid "The offer to switch sides" msgstr "" #: lib/pychess/Players/Human.py:48 msgid "The takeback offer" msgstr "" #: lib/pychess/Players/Human.py:52 msgid "resign" msgstr "" #: lib/pychess/Players/Human.py:53 msgid "call your opponents flag" msgstr "" #: lib/pychess/Players/Human.py:54 msgid "offer a draw" msgstr "" #: lib/pychess/Players/Human.py:55 msgid "offer an abort" msgstr "" #: lib/pychess/Players/Human.py:56 msgid "offer to adjourn" msgstr "" #: lib/pychess/Players/Human.py:57 msgid "offer a pause" msgstr "" #: lib/pychess/Players/Human.py:58 msgid "offer to resume" msgstr "" #: lib/pychess/Players/Human.py:59 msgid "offer to switch sides" msgstr "" #: lib/pychess/Players/Human.py:60 msgid "offer a takeback" msgstr "" #: lib/pychess/Players/Human.py:61 msgid "ask your opponent to move" msgstr "" #: lib/pychess/Players/Human.py:66 msgid "Your opponent is not out of time." msgstr "" #: lib/pychess/Players/Human.py:68 msgid "The clock hasn't been started yet." msgstr "" #: lib/pychess/Players/Human.py:70 msgid "You can't switch colors during the game." msgstr "" #: lib/pychess/Players/Human.py:72 msgid "You have tried to undo too many moves." msgstr "" #: lib/pychess/Players/Human.py:180 msgid "Your opponent asks you to hurry!" msgstr "" #: lib/pychess/Players/Human.py:181 msgid "" "Generally this means nothing, as the game is time-based, but if you want to " "please your opponent, perhaps you should get going." msgstr "" #: lib/pychess/Players/Human.py:259 #, python-format msgid "%s was declined by your opponent" msgstr "" #: lib/pychess/Players/Human.py:260 #, python-format msgid "Resend %s?" msgstr "" #: lib/pychess/Players/Human.py:267 msgid "Resend" msgstr "" #: lib/pychess/Players/Human.py:275 #, python-format msgid "%s was withdrawn by your opponent" msgstr "" #: lib/pychess/Players/Human.py:276 msgid "Your opponent seems to have changed their mind." msgstr "" #: lib/pychess/Players/Human.py:290 #, python-format msgid "Unable to accept %s" msgstr "" #: lib/pychess/Players/Human.py:291 msgid "Probably because it has been withdrawn." msgstr "" #: lib/pychess/Players/Human.py:298 #, python-format msgid "%s returns an error" msgstr "" #: lib/pychess/Savers/chessalpha2.py:12 msgid "Chess Alpha 2 Diagram" msgstr "" #: lib/pychess/Savers/chesspastebin.py:39 msgid "Game shared at " msgstr "" #: lib/pychess/Savers/chesspastebin.py:41 msgid "(Link is available on clipboard.)" msgstr "" #: lib/pychess/Savers/database.py:19 msgid "PyChess database" msgstr "" #: lib/pychess/Savers/epd.py:12 msgid "Chess Position" msgstr "" #: lib/pychess/Savers/fen.py:12 msgid "Simple Chess Position" msgstr "" #: lib/pychess/Savers/fen.py:44 lib/pychess/Savers/pgn.py:329 msgid "The game can't be loaded, because of an error parsing FEN" msgstr "" #: lib/pychess/Savers/pgnbase.py:100 #, python-format msgid "" "The game can't be read to end, because of an error parsing move %(moveno)s " "'%(notation)s'." msgstr "" #: lib/pychess/Savers/pgnbase.py:102 #, python-format msgid "The move failed because %s." msgstr "" #: lib/pychess/Savers/pgnbase.py:110 #, python-format msgid "Error parsing move %(moveno)s %(mstr)s" msgstr "" #: lib/pychess/Savers/pgn.py:28 msgid "Chess Game" msgstr "" #: lib/pychess/Savers/pgn.py:362 msgid "Invalid move." msgstr "" #: lib/pychess/Savers/png.py:15 msgid "Png image" msgstr "" #: lib/pychess/System/ping.py:31 msgid "Destination Host Unreachable" msgstr "" #: lib/pychess/System/ping.py:74 msgid "Died" msgstr "" #: lib/pychess/Utils/GameModel.py:147 msgid "Local Event" msgstr "" #: lib/pychess/Utils/GameModel.py:148 msgid "Local Site" msgstr "" #: lib/pychess/Utils/repr.py:12 msgid "Pawn" msgstr "" #: lib/pychess/Utils/repr.py:14 msgid "P" msgstr "P" #: lib/pychess/Utils/repr.py:14 msgid "N" msgstr "N" #: lib/pychess/Utils/repr.py:14 msgid "R" msgstr "R" #: lib/pychess/Utils/repr.py:14 msgid "Q" msgstr "Q" #: lib/pychess/Utils/repr.py:14 msgid "K" msgstr "K" #: lib/pychess/Utils/repr.py:17 msgid "The game ended in a draw" msgstr "" #: lib/pychess/Utils/repr.py:18 #, python-format msgid "%(white)s won the game" msgstr "" #: lib/pychess/Utils/repr.py:19 #, python-format msgid "%(black)s won the game" msgstr "" #: lib/pychess/Utils/repr.py:20 msgid "The game has been killed" msgstr "" #: lib/pychess/Utils/repr.py:21 msgid "The game has been adjourned" msgstr "" #: lib/pychess/Utils/repr.py:22 msgid "The game has been aborted" msgstr "" #: lib/pychess/Utils/repr.py:26 msgid "Because neither player has sufficient material to mate" msgstr "" #: lib/pychess/Utils/repr.py:27 msgid "Because the same position was repeated three times in a row" msgstr "" #: lib/pychess/Utils/repr.py:28 msgid "Because the last 50 moves brought nothing new" msgstr "" #: lib/pychess/Utils/repr.py:29 msgid "Because both players ran out of time" msgstr "" #: lib/pychess/Utils/repr.py:30 #, python-format msgid "Because %(mover)s stalemated" msgstr "" #: lib/pychess/Utils/repr.py:31 msgid "Because both players agreed to a draw" msgstr "" #: lib/pychess/Utils/repr.py:32 lib/pychess/Utils/repr.py:42 msgid "Because of adjudication by an admin" msgstr "" #: lib/pychess/Utils/repr.py:33 msgid "Because the game exceed the max length" msgstr "" #: lib/pychess/Utils/repr.py:34 #, python-format msgid "" "Because %(white)s ran out of time and %(black)s has insufficient material to" " mate" msgstr "" #: lib/pychess/Utils/repr.py:35 #, python-format msgid "" "Because %(black)s ran out of time and %(white)s has insufficient material to" " mate" msgstr "" #: lib/pychess/Utils/repr.py:36 msgid "Because both players have the same amount of pieces" msgstr "" #: lib/pychess/Utils/repr.py:38 #, python-format msgid "Because %(loser)s resigned" msgstr "" #: lib/pychess/Utils/repr.py:39 #, python-format msgid "Because %(loser)s ran out of time" msgstr "" #: lib/pychess/Utils/repr.py:40 #, python-format msgid "Because %(loser)s was checkmated" msgstr "" #: lib/pychess/Utils/repr.py:41 #, python-format msgid "Because %(loser)s disconnected" msgstr "" #: lib/pychess/Utils/repr.py:43 #, python-format msgid "Because %(winner)s has fewer pieces" msgstr "" #: lib/pychess/Utils/repr.py:44 #, python-format msgid "Because %(winner)s lost all pieces" msgstr "" #: lib/pychess/Utils/repr.py:45 #, python-format msgid "Because %(loser)s king exploded" msgstr "" #: lib/pychess/Utils/repr.py:46 #, python-format msgid "Because %(winner)s king reached the center" msgstr "" #: lib/pychess/Utils/repr.py:47 #, python-format msgid "Because %(winner)s was giving check 3 times" msgstr "" #: lib/pychess/Utils/repr.py:49 msgid "Because a player lost connection" msgstr "" #: lib/pychess/Utils/repr.py:50 msgid "Because both players agreed to an adjournment" msgstr "" #: lib/pychess/Utils/repr.py:51 msgid "Because the server was shut down" msgstr "" #: lib/pychess/Utils/repr.py:52 msgid "" "Because a player lost connection and the other player requested adjournment" msgstr "" #: lib/pychess/Utils/repr.py:53 #, python-format msgid "" "Because %(black)s lost connection to the server and %(white)s requested " "adjournment" msgstr "" #: lib/pychess/Utils/repr.py:54 #, python-format msgid "" "Because %(white)s lost connection to the server and %(black)s requested " "adjournment" msgstr "" #: lib/pychess/Utils/repr.py:55 #, python-format msgid "Because %(white)s lost connection to the server" msgstr "" #: lib/pychess/Utils/repr.py:56 #, python-format msgid "Because %(black)s lost connection to the server" msgstr "" #: lib/pychess/Utils/repr.py:58 msgid "Because of adjudication by an admin. No rating changes have occurred." msgstr "" #: lib/pychess/Utils/repr.py:59 msgid "" "Because both players agreed to abort the game. No rating changes have " "occurred." msgstr "" #: lib/pychess/Utils/repr.py:60 msgid "Because of courtesy by a player. No rating changes have occurred." msgstr "" #: lib/pychess/Utils/repr.py:61 msgid "" "Because a player aborted the game. Either player can abort the game without " "the other's consent before the second move. No rating changes have occurred." msgstr "" #: lib/pychess/Utils/repr.py:62 msgid "" "Because a player disconnected and there are too few moves to warrant " "adjournment. No rating changes have occurred." msgstr "" #: lib/pychess/Utils/repr.py:63 msgid "Because the server was shut down. No rating changes have occurred." msgstr "" #: lib/pychess/Utils/repr.py:65 #, python-format msgid "Because the %(white)s engine died" msgstr "" #: lib/pychess/Utils/repr.py:66 #, python-format msgid "Because the %(black)s engine died" msgstr "" #: lib/pychess/Utils/repr.py:67 msgid "Because the connection to the server was lost" msgstr "" #: lib/pychess/Utils/repr.py:68 msgid "The reason is unknown" msgstr "" #: lib/pychess/Utils/TimeModel.py:229 msgid "min" msgstr "" #: lib/pychess/Utils/TimeModel.py:231 msgid "sec" msgstr "" #: lib/pychess/Variants/asean.py:12 msgid "" "ASEAN: http://www.ncf-" "phil.org/downloadables/2014/May/Asean_chess/Laws_of_ASEAN_Chess_2011_Nov_26.doc" msgstr "" #: lib/pychess/Variants/asean.py:13 msgid "ASEAN" msgstr "" #: lib/pychess/Variants/asean.py:33 msgid "Makruk: http://en.wikipedia.org/wiki/Makruk" msgstr "" #: lib/pychess/Variants/asean.py:34 msgid "Makruk" msgstr "" #: lib/pychess/Variants/asean.py:60 msgid "Cambodian: http://www.khmerinstitute.org/culture/ok.html" msgstr "" #: lib/pychess/Variants/asean.py:61 msgid "Cambodian" msgstr "" #: lib/pychess/Variants/asean.py:86 msgid "" "Ai-Wok: http://www.open-" "aurec.com/wbforum/viewtopic.php?p=199364&sid=20963a1de2c164050de019e5ed6bf7c4#p199364" msgstr "" #: lib/pychess/Variants/asean.py:87 msgid "Ai-Wok" msgstr "" #: lib/pychess/Variants/asean.py:111 msgid "Sittuyin: http://en.wikipedia.org/wiki/Sittuyin" msgstr "" #: lib/pychess/Variants/asean.py:112 msgid "Sittuyin" msgstr "" #: lib/pychess/Variants/asymmetricrandom.py:12 msgid "" "FICS wild/4: http://www.freechess.org/Help/HelpFiles/wild.html\n" "* Randomly chosen pieces (two queens or three rooks possible)\n" "* Exactly one king of each color\n" "* Pieces placed randomly behind the pawns, SUBJECT TO THE CONSTRAINT THAT THE BISHOPS ARE BALANCED\n" "* No castling\n" "* Black's arrangement DOES NOT mirrors white's" msgstr "" #: lib/pychess/Variants/asymmetricrandom.py:18 msgid "Asymmetric Random" msgstr "" #: lib/pychess/Variants/atomic.py:14 msgid "FICS atomic: http://www.freechess.org/Help/HelpFiles/atomic.html" msgstr "" #: lib/pychess/Variants/blindfold.py:7 msgid "" "Classic chess rules with hidden figurines\n" "http://en.wikipedia.org/wiki/Blindfold_chess" msgstr "" #: lib/pychess/Variants/blindfold.py:9 #: lib/pychess/widgets/newGameDialog.py:264 msgid "Blindfold" msgstr "" #: lib/pychess/Variants/blindfold.py:18 msgid "" "Classic chess rules with hidden pawns\n" "http://en.wikipedia.org/wiki/Blindfold_chess" msgstr "" #: lib/pychess/Variants/blindfold.py:20 msgid "Hidden pawns" msgstr "" #: lib/pychess/Variants/blindfold.py:29 msgid "" "Classic chess rules with hidden pieces\n" "http://en.wikipedia.org/wiki/Blindfold_chess" msgstr "" #: lib/pychess/Variants/blindfold.py:31 msgid "Hidden pieces" msgstr "" #: lib/pychess/Variants/blindfold.py:40 msgid "" "Classic chess rules with all pieces white\n" "http://en.wikipedia.org/wiki/Blindfold_chess" msgstr "" #: lib/pychess/Variants/blindfold.py:42 msgid "All white" msgstr "" #: lib/pychess/Variants/bughouse.py:8 msgid "FICS bughouse: http://www.freechess.org/Help/HelpFiles/bughouse.html" msgstr "" #: lib/pychess/Variants/corner.py:12 msgid "" "http://brainking.com/en/GameRules?tp=2\n" "* Placement of the pieces on the 1st and 8th row are randomized\n" "* The king is in the right hand corner\n" "* Bishops must start on opposite color squares\n" "* Black's starting position is obtained by rotating white's position 180 degrees around the board's center\n" "* No castling" msgstr "" #: lib/pychess/Variants/corner.py:18 msgid "Corner" msgstr "" #: lib/pychess/Variants/crazyhouse.py:8 msgid "" "FICS crazyhouse: http://www.freechess.org/Help/HelpFiles/crazyhouse.html" msgstr "" #: lib/pychess/Variants/euroshogi.py:9 msgid "EuroShogi: http://en.wikipedia.org/wiki/EuroShogi" msgstr "" #: lib/pychess/Variants/euroshogi.py:10 msgid "EuroShogi" msgstr "" #: lib/pychess/Variants/fischerandom.py:18 msgid "" "http://en.wikipedia.org/wiki/Chess960\n" "FICS wild/fr: http://www.freechess.org/Help/HelpFiles/wild.html" msgstr "" #: lib/pychess/Variants/fischerandom.py:20 msgid "Fischer Random" msgstr "" #: lib/pychess/Variants/kingofthehill.py:8 msgid "" "Bringing your king legally to the center (e4, d4, e5, d5) instantly wins the game!\n" "Normal rules apply in other cases and checkmate also ends the game." msgstr "" #: lib/pychess/Variants/kingofthehill.py:10 msgid "King of the hill" msgstr "" #: lib/pychess/Variants/knightodds.py:8 msgid "One player starts with one less knight piece" msgstr "" #: lib/pychess/Variants/knightodds.py:9 msgid "Knight odds" msgstr "" #: lib/pychess/Variants/losers.py:8 msgid "FICS losers: http://www.freechess.org/Help/HelpFiles/losers_chess.html" msgstr "" #: lib/pychess/Variants/normal.py:4 msgid "" "Classic chess rules\n" "http://en.wikipedia.org/wiki/Chess" msgstr "" #: lib/pychess/Variants/normal.py:6 lib/pychess/widgets/newGameDialog.py:157 msgid "Normal" msgstr "" #: lib/pychess/Variants/pawnodds.py:8 msgid "One player starts with one less pawn piece" msgstr "" #: lib/pychess/Variants/pawnodds.py:9 msgid "Pawn odds" msgstr "" #: lib/pychess/Variants/pawnspassed.py:11 msgid "" "FICS wild/8a: http://www.freechess.org/Help/HelpFiles/wild.html\n" "White pawns start on 5th rank and black pawns on the 4th rank" msgstr "" #: lib/pychess/Variants/pawnspassed.py:13 msgid "Pawns Passed" msgstr "" #: lib/pychess/Variants/pawnspushed.py:10 msgid "" "FICS wild/8: http://www.freechess.org/Help/HelpFiles/wild.html\n" "Pawns start on 4th and 5th ranks rather than 2nd and 7th" msgstr "" #: lib/pychess/Variants/pawnspushed.py:12 msgid "Pawns Pushed" msgstr "" #: lib/pychess/Variants/queenodds.py:8 msgid "One player starts with one less queen piece" msgstr "" #: lib/pychess/Variants/queenodds.py:9 msgid "Queen odds" msgstr "" #: lib/pychess/Variants/randomchess.py:11 msgid "" "FICS wild/3: http://www.freechess.org/Help/HelpFiles/wild.html\n" "* Randomly chosen pieces (two queens or three rooks possible)\n" "* Exactly one king of each color\n" "* Pieces placed randomly behind the pawns\n" "* No castling\n" "* Black's arrangement mirrors white's" msgstr "" #: lib/pychess/Variants/randomchess.py:17 #: lib/pychess/widgets/TaskerManager.py:155 msgid "Random" msgstr "" #: lib/pychess/Variants/rookodds.py:8 msgid "One player starts with one less rook piece" msgstr "" #: lib/pychess/Variants/rookodds.py:9 msgid "Rook odds" msgstr "" #: lib/pychess/Variants/shuffle.py:11 msgid "" "xboard nocastle: http://home.hccnet.nl/h.g.muller/engine-intf.html#8\n" "FICS wild/2: http://www.freechess.org/Help/HelpFiles/wild.html\n" "* Random arrangement of the pieces behind the pawns\n" "* No castling\n" "* Black's arrangement mirrors white's" msgstr "" #: lib/pychess/Variants/suicide.py:11 msgid "" "FICS suicide: http://www.freechess.org/Help/HelpFiles/suicide_chess.html" msgstr "" #: lib/pychess/Variants/theban.py:10 msgid "" "Variant developed by Kai Laskos: " "http://talkchess.com/forum/viewtopic.php?t=40990" msgstr "" #: lib/pychess/Variants/theban.py:11 msgid "Theban" msgstr "" #: lib/pychess/Variants/threecheck.py:10 msgid "Win by giving check 3 times" msgstr "" #: lib/pychess/Variants/threecheck.py:11 msgid "Three-check" msgstr "" #: lib/pychess/Variants/upsidedown.py:10 msgid "" "FICS wild/5: http://www.freechess.org/Help/HelpFiles/wild.html\n" "http://en.wikipedia.org/wiki/Chess_variant#Chess_with_different_starting_positions\n" "Pawns start on their 7th rank rather than their 2nd rank!" msgstr "" #: lib/pychess/Variants/upsidedown.py:13 msgid "Upside Down" msgstr "" #: lib/pychess/Variants/wildcastle.py:10 msgid "" "xboard wildcastle http://home.hccnet.nl/h.g.muller/engine-intf.html#8\n" "FICS wild/0: http://www.freechess.org/Help/HelpFiles/wild.html\n" "* White has the typical set-up at the start.\n" "* Black's pieces are the same, except that the King and Queen are reversed,\n" "* so they are not on the same files as White's King and Queen.\n" "* Castling is done similarly to normal chess:\n" "* o-o-o indicates long castling and o-o short castling." msgstr "" #: lib/pychess/Variants/wildcastle.py:17 msgid "Wildcastle" msgstr "" #: lib/pychess/Variants/wildcastleshuffle.py:11 msgid "" "xboard wildcastle http://home.hccnet.nl/h.g.muller/engine-intf.html#8\n" "FICS wild/1: http://www.freechess.org/Help/HelpFiles/wild.html\n" "* In this variant both sides have the same set of pieces as in normal chess.\n" "* The white king starts on d1 or e1 and the black king starts on d8 or e8,\n" "* and the rooks are in their usual positions.\n" "* Bishops are always on opposite colors.\n" "* Subject to these constraints the position of the pieces on their first ranks is random.\n" "* Castling is done similarly to normal chess:\n" "* o-o-o indicates long castling and o-o short castling." msgstr "" #: lib/pychess/Variants/wildcastleshuffle.py:20 msgid "Wildcastle shuffle" msgstr "" #: lib/pychess/widgets/analyzegameDialog.py:85 msgid "Game analyzing in progress..." msgstr "" #: lib/pychess/widgets/analyzegameDialog.py:86 msgid "Do you want to abort it?" msgstr "" #: lib/pychess/widgets/analyzegameDialog.py:95 #: lib/pychess/widgets/gamewidget.py:202 lib/pychess/widgets/gamewidget.py:320 msgid "Abort" msgstr "" #: lib/pychess/widgets/ChatView.py:125 msgid "Observers" msgstr "" #: lib/pychess/widgets/ChatWindow.py:222 msgid "You have opened no conversations yet" msgstr "" #: lib/pychess/widgets/ChatWindow.py:254 msgid "Only registered users may talk to this channel" msgstr "" #: lib/pychess/widgets/ChatWindow.py:312 msgid "No conversation's selected" msgstr "" #: lib/pychess/widgets/ChatWindow.py:350 msgid "Loading player data" msgstr "" #: lib/pychess/widgets/ChatWindow.py:400 msgid "Receiving list of players" msgstr "" #: lib/pychess/widgets/ChatWindow.py:518 msgid "Friends" msgstr "" #: lib/pychess/widgets/ChatWindow.py:529 msgid "Admin" msgstr "" #: lib/pychess/widgets/ChatWindow.py:540 msgid "More channels" msgstr "" #: lib/pychess/widgets/ChatWindow.py:548 msgid "More players" msgstr "" #: lib/pychess/widgets/ChatWindow.py:558 msgid "Computers" msgstr "" #: lib/pychess/widgets/ChatWindow.py:568 msgid "BlindFold" msgstr "" #: lib/pychess/widgets/ChatWindow.py:578 msgid "Guests" msgstr "" #: lib/pychess/widgets/ChatWindow.py:805 msgid "Conversations" msgstr "" #: lib/pychess/widgets/ChatWindow.py:807 msgid "Conversation info" msgstr "" #: lib/pychess/widgets/enginesDialog.py:152 msgid "Select engine" msgstr "" #: lib/pychess/widgets/enginesDialog.py:156 msgid "Executable files" msgstr "" #: lib/pychess/widgets/enginesDialog.py:176 #: lib/pychess/widgets/enginesDialog.py:210 #: lib/pychess/widgets/enginesDialog.py:235 #, python-format msgid "Unable to add %s" msgstr "" #: lib/pychess/widgets/enginesDialog.py:177 msgid "wine not installed" msgstr "" #: lib/pychess/widgets/enginesDialog.py:211 #: lib/pychess/widgets/enginesDialog.py:236 msgid "There is something wrong with this executable" msgstr "" #: lib/pychess/widgets/enginesDialog.py:266 msgid "Select working directory" msgstr "" #: lib/pychess/widgets/gamenanny.py:115 #, python-format msgid " invalid engine move: %s" msgstr "" #: lib/pychess/widgets/gamenanny.py:134 msgid "Offer Rematch" msgstr "" #: lib/pychess/widgets/gamenanny.py:136 lib/pychess/widgets/gamenanny.py:147 #, python-format msgid "Observe %s" msgstr "" #: lib/pychess/widgets/gamenanny.py:168 msgid "Play Rematch" msgstr "" #: lib/pychess/widgets/gamenanny.py:171 msgid "Undo one move" msgstr "" #: lib/pychess/widgets/gamenanny.py:173 msgid "Undo two moves" msgstr "" #: lib/pychess/widgets/gamenanny.py:203 msgid "The game is paused" msgstr "" #: lib/pychess/widgets/gamenanny.py:221 lib/pychess/widgets/gamenanny.py:222 msgid "Loaded game" msgstr "" #: lib/pychess/widgets/gamenanny.py:228 msgid "Saved game" msgstr "" #: lib/pychess/widgets/gamenanny.py:232 msgid "Analyzer started" msgstr "" #: lib/pychess/widgets/gamenanny.py:281 msgid "You sent an abort offer" msgstr "" #: lib/pychess/widgets/gamenanny.py:283 msgid "You sent an adjournment offer" msgstr "" #: lib/pychess/widgets/gamenanny.py:285 msgid "You sent a draw offer" msgstr "" #: lib/pychess/widgets/gamenanny.py:287 msgid "You sent a pause offer" msgstr "" #: lib/pychess/widgets/gamenanny.py:289 msgid "You sent a resume offer" msgstr "" #: lib/pychess/widgets/gamenanny.py:291 msgid "You sent an undo offer" msgstr "" #: lib/pychess/widgets/gamenanny.py:293 msgid "You asked your opponent to move" msgstr "" #: lib/pychess/widgets/gamenanny.py:305 #, python-format msgid "Engine, %s, has died" msgstr "" #: lib/pychess/widgets/gamenanny.py:306 msgid "" "PyChess has lost connection to the engine, probably because it has died.\n" "\n" "You can try to start a new game with the engine, or try to play against another one." msgstr "" #: lib/pychess/widgets/gamewidget.py:204 msgid "" "This game can be automatically aborted without rating loss because there has" " not yet been two moves made" msgstr "" #: lib/pychess/widgets/gamewidget.py:206 msgid "Offer Abort" msgstr "" #: lib/pychess/widgets/gamewidget.py:208 msgid "" "Your opponent must agree to abort the game because there has been two or " "more moves made" msgstr "" #: lib/pychess/widgets/gamewidget.py:226 msgid "This game can not be adjourned because one or both players are guests" msgstr "" #: lib/pychess/widgets/gamewidget.py:243 msgid "Claim Draw" msgstr "" #: lib/pychess/widgets/gamewidget.py:325 msgid "Pause" msgstr "" #: lib/pychess/widgets/gamewidget.py:326 msgid "Resume" msgstr "" #: lib/pychess/widgets/gamewidget.py:328 msgid "Offer Pause" msgstr "" #: lib/pychess/widgets/gamewidget.py:329 msgid "Offer Resume" msgstr "" #: lib/pychess/widgets/gamewidget.py:333 msgid "Undo" msgstr "" #: lib/pychess/widgets/gamewidget.py:335 msgid "Offer Undo" msgstr "" #: lib/pychess/widgets/gamewidget.py:550 msgid " has lagged for 30 seconds" msgstr "" #: lib/pychess/widgets/gamewidget.py:566 msgid " is lagging heavily but hasn't disconnected" msgstr "" #: lib/pychess/widgets/gamewidget.py:567 msgid "Continue to wait for opponent, or try to adjourn the game?" msgstr "" #: lib/pychess/widgets/gamewidget.py:575 msgid "Wait" msgstr "" #: lib/pychess/widgets/gamewidget.py:576 msgid "Adjourn" msgstr "" #: lib/pychess/widgets/gamewidget.py:648 msgid "Jump to initial position" msgstr "" #: lib/pychess/widgets/gamewidget.py:653 msgid "Step back one move" msgstr "" #: lib/pychess/widgets/gamewidget.py:658 msgid "Go back to the main line" msgstr "" #: lib/pychess/widgets/gamewidget.py:664 msgid "Step forward one move" msgstr "" #: lib/pychess/widgets/gamewidget.py:669 msgid "Jump to latest position" msgstr "" #: lib/pychess/widgets/gamewidget.py:903 msgid "PyChess was unable to load your panel settings" msgstr "" #: lib/pychess/widgets/gamewidget.py:904 msgid "" "Your panel settings have been reset. If this problem repeats, you should " "report it to the developers" msgstr "" #: lib/pychess/widgets/ionest.py:67 lib/pychess/widgets/newGameDialog.py:389 #: lib/pychess/widgets/TaskerManager.py:210 msgid "You" msgstr "" #: lib/pychess/widgets/ionest.py:70 lib/pychess/widgets/newGameDialog.py:390 #: lib/pychess/widgets/preferencesDialog.py:61 #: lib/pychess/widgets/TaskerManager.py:213 msgid "Guest" msgstr "" #: lib/pychess/widgets/ionest.py:93 msgid "Error loading game" msgstr "" #: lib/pychess/widgets/ionest.py:127 lib/pychess/widgets/newGameDialog.py:480 msgid "Open Game" msgstr "" #: lib/pychess/widgets/ionest.py:137 msgid "All Files" msgstr "" #: lib/pychess/widgets/ionest.py:140 msgid "Detect type automatically" msgstr "" #: lib/pychess/widgets/ionest.py:146 msgid "All Chess Files" msgstr "" #: lib/pychess/widgets/ionest.py:228 msgid "Save Game" msgstr "" #: lib/pychess/widgets/ionest.py:228 msgid "Export position" msgstr "" #: lib/pychess/widgets/ionest.py:232 lib/pychess/widgets/ionest.py:360 msgid "vs." msgstr "" #: lib/pychess/widgets/ionest.py:249 #, python-format msgid "Unknown file type '%s'" msgstr "" #: lib/pychess/widgets/ionest.py:250 #, python-format msgid "" "Was unable to save '%(uri)s' as PyChess doesn't know the format " "'%(ending)s'." msgstr "" #: lib/pychess/widgets/ionest.py:266 #, python-format msgid "Unable to save file '%s'" msgstr "" #: lib/pychess/widgets/ionest.py:268 msgid "" "You don't have the necessary rights to save the file.\n" "Please ensure that you have given the right path and try again." msgstr "" #: lib/pychess/widgets/ionest.py:276 msgid "_Replace" msgstr "" #: lib/pychess/widgets/ionest.py:280 msgid "File exists" msgstr "" #: lib/pychess/widgets/ionest.py:282 #, python-format msgid "" "A file named '%s' already exists. Would you like to replace " "it?" msgstr "" #: lib/pychess/widgets/ionest.py:283 #, python-format msgid "" "The file already exists in '%s'. If you replace it, its content will be " "overwritten." msgstr "" #: lib/pychess/widgets/ionest.py:299 msgid "Could not save the file" msgstr "" #: lib/pychess/widgets/ionest.py:300 msgid "PyChess was not able to save the game" msgstr "" #: lib/pychess/widgets/ionest.py:301 #, python-format msgid "The error was: %s" msgstr "" #: lib/pychess/widgets/ionest.py:325 #, python-format msgid "There is %d game with unsaved moves." msgid_plural "There are %d games with unsaved moves." msgstr[0] "" msgstr[1] "" #: lib/pychess/widgets/ionest.py:328 msgid "Save moves before closing?" msgstr "" #: lib/pychess/widgets/ionest.py:339 msgid "Unable to save to configured file. Save the games before closing?" msgstr "" #: lib/pychess/widgets/ionest.py:366 #, python-format msgid "_Save %d document" msgid_plural "_Save %d documents" msgstr[0] "" msgstr[1] "" #: lib/pychess/widgets/ionest.py:412 msgid "Save the current game before you close it?" msgstr "" #: lib/pychess/widgets/ionest.py:420 msgid "" "Unable to save to configured file. Save the current game before you close " "it?" msgstr "" #: lib/pychess/widgets/ionest.py:434 msgid "" "It is not possible later to continue the game,\n" "if you don't save it." msgstr "" #: lib/pychess/widgets/LogDialog.py:26 msgid "PyChess Information Window" msgstr "" #: lib/pychess/widgets/LogDialog.py:184 lib/pychess/widgets/LogDialog.py:188 msgid "of" msgstr "" #: lib/pychess/widgets/newGameDialog.py:84 #: lib/pychess/widgets/newGameDialog.py:85 msgid "Human Being" msgstr "" #: lib/pychess/widgets/newGameDialog.py:155 msgid "Rapid" msgstr "" #: lib/pychess/widgets/newGameDialog.py:224 msgid "Minutes:" msgstr "" #: lib/pychess/widgets/newGameDialog.py:228 msgid "Gain:" msgstr "" #: lib/pychess/widgets/newGameDialog.py:241 #, python-format msgid "%(name)s %(minutes)d min + %(gain)d sec/move" msgstr "" #: lib/pychess/widgets/newGameDialog.py:244 #, python-format msgid "%(name)s %(minutes)d min %(gain)d sec/move" msgstr "" #: lib/pychess/widgets/newGameDialog.py:247 #, python-format msgid "%(name)s %(minutes)d min" msgstr "" #: lib/pychess/widgets/newGameDialog.py:265 msgid "Odds" msgstr "" #: lib/pychess/widgets/newGameDialog.py:269 msgid "Asian variants" msgstr "" #: lib/pychess/widgets/newGameDialog.py:301 msgid " chess" msgstr "" #: lib/pychess/widgets/newGameDialog.py:682 msgid "Type or paste PGN game or FEN positions here" msgstr "" #: lib/pychess/widgets/newGameDialog.py:725 msgid "Enter Game" msgstr "" #: lib/pychess/widgets/preferencesDialog.py:123 msgid "Select book file" msgstr "" #: lib/pychess/widgets/preferencesDialog.py:128 msgid "Opening books" msgstr "" #: lib/pychess/widgets/preferencesDialog.py:156 msgid "Select Gaviota TB path" msgstr "" #: lib/pychess/widgets/preferencesDialog.py:331 msgid "Open Sound File" msgstr "" #: lib/pychess/widgets/preferencesDialog.py:341 msgid "Sound files" msgstr "" #: lib/pychess/widgets/preferencesDialog.py:485 msgid "Undescribed panel" msgstr "" #: lib/pychess/widgets/preferencesDialog.py:678 msgid "Select auto save path" msgstr "" #: lib/pychess/widgets/tipOfTheDay.py:51 msgid "" "You can start a new game by Game > New Game, in New Game " "window do you can choose Players, Time Control and Chess " "Variants." msgstr "" #: lib/pychess/widgets/tipOfTheDay.py:52 msgid "" "You can choose from 20 different difficulties to play against the computer." msgstr "" #: lib/pychess/widgets/tipOfTheDay.py:53 msgid "" "Chess Variants are like the pieces of the last line will be placed on the " "board." msgstr "" #: lib/pychess/widgets/tipOfTheDay.py:54 msgid "" "To save a game Game > Save Game As, give the filename and " "choose where you want to be saved. At the bottom choose extension type of " "the file, and Save." msgstr "" #: lib/pychess/widgets/tipOfTheDay.py:55 msgid "" "Do you know that you can call flag when the clock is with you, " "Actions > Call Flag." msgstr "" #: lib/pychess/widgets/tipOfTheDay.py:56 msgid "Pressing Ctrl+Z to offer opponent the possible rollback moves." msgstr "" #: lib/pychess/widgets/tipOfTheDay.py:57 msgid "" "To play on Fullscreen mode, just type F11. Coming back, F11 " "again." msgstr "" #: lib/pychess/widgets/tipOfTheDay.py:58 msgid "Hint mode analyzing your game, enable this type Ctrl+H." msgstr "" #: lib/pychess/widgets/tipOfTheDay.py:59 msgid "" "Spy mode analyzing the oponnent game, enable this type Ctrl+Y." msgstr "" #: lib/pychess/widgets/tipOfTheDay.py:60 msgid "" "You can play chess listening to the sounds of the game, for that, " "Settings > Preferences > Sound tab, enable Use " "sounds in PyChess and choose your preferred sounds." msgstr "" #: lib/pychess/widgets/tipOfTheDay.py:61 msgid "" "Do you know that you can help translate Pychess in your language, " "Help > Translate Pychess." msgstr "" #: lib/pychess/widgets/tipOfTheDay.py:62 msgid "" "Do you know that it is possible to finish a chess game in just 2 turns?" msgstr "" #: lib/pychess/widgets/tipOfTheDay.py:63 msgid "" "Do you know that the number of possible chess games exceeds the number of " "atoms in the Universe?" msgstr "" #: lib/pychess/ic/managers/ChatManager.py:184 msgid "Shout" msgstr "" #: lib/pychess/ic/managers/ChatManager.py:185 msgid "Chess Shout" msgstr "" #: lib/pychess/ic/managers/ChatManager.py:195 #, python-format msgid "Unofficial channel %d" msgstr "" #: lib/pychess/Utils/lutils/LBoard.py:152 #, python-format msgid "" "FEN needs 6 data fields. \n" "\n" "%s" msgstr "" #: lib/pychess/Utils/lutils/LBoard.py:154 #, python-format msgid "" "FEN needs at least 2 data fields in fenstr. \n" "\n" "%s" msgstr "" #: lib/pychess/Utils/lutils/LBoard.py:175 #, python-format msgid "" "Needs 7 slashes in piece placement field. \n" "\n" "%s" msgstr "" #: lib/pychess/Utils/lutils/LBoard.py:178 #, python-format msgid "" "Active color field must be one of w or b. \n" "\n" "%s" msgstr "" #: lib/pychess/Utils/lutils/LBoard.py:189 #, python-format msgid "" "Castling availability field is not legal. \n" "\n" "%s" msgstr "" #: lib/pychess/Utils/lutils/LBoard.py:192 #, python-format msgid "" "En passant cord is not legal. \n" "\n" "%s" msgstr "" #: lib/pychess/Utils/lutils/lmove.py:260 msgid "invalid promoted piece" msgstr "" #: lib/pychess/Utils/lutils/lmove.py:272 msgid "the move needs a piece and a cord" msgstr "" #: lib/pychess/Utils/lutils/lmove.py:306 lib/pychess/Utils/lutils/lmove.py:556 msgid "promotion move without promoted piece is incorrect" msgstr "" #: lib/pychess/Utils/lutils/lmove.py:312 #, python-format msgid "the captured cord (%s) is incorrect" msgstr "" #: lib/pychess/Utils/lutils/lmove.py:323 #, python-format msgid "the end cord (%s) is incorrect" msgstr "" #: lib/pychess/Utils/lutils/strateval.py:24 sidepanel/commentPanel.py:191 #: sidepanel/commentPanel.py:208 msgid "and" msgstr "" #: lib/pychess/Utils/lutils/strateval.py:43 msgid "draws" msgstr "" #: lib/pychess/Utils/lutils/strateval.py:45 msgid "mates" msgstr "" #: lib/pychess/Utils/lutils/strateval.py:49 msgid "puts opponent in check" msgstr "" #: lib/pychess/Utils/lutils/strateval.py:73 msgid "improves king safety" msgstr "" #: lib/pychess/Utils/lutils/strateval.py:75 msgid "slightly improves king safety" msgstr "" #: lib/pychess/Utils/lutils/strateval.py:108 msgid "moves a rook to an open file" msgstr "" #: lib/pychess/Utils/lutils/strateval.py:109 msgid "moves an rook to a half-open file" msgstr "" #: lib/pychess/Utils/lutils/strateval.py:119 #: lib/pychess/Utils/lutils/strateval.py:121 #: lib/pychess/Utils/lutils/strateval.py:124 #: lib/pychess/Utils/lutils/strateval.py:126 #, python-format msgid "moves bishop into fianchetto: %s" msgstr "" #: lib/pychess/Utils/lutils/strateval.py:132 #, python-format msgid "promotes a Pawn to a %s" msgstr "" #: lib/pychess/Utils/lutils/strateval.py:135 msgid "castles" msgstr "" #: lib/pychess/Utils/lutils/strateval.py:158 msgid "takes back material" msgstr "" #: lib/pychess/Utils/lutils/strateval.py:162 #: lib/pychess/Utils/lutils/strateval.py:170 msgid "sacrifies material" msgstr "" #: lib/pychess/Utils/lutils/strateval.py:164 msgid "exchanges material" msgstr "" #: lib/pychess/Utils/lutils/strateval.py:166 msgid "captures material" msgstr "" #: lib/pychess/Utils/lutils/strateval.py:291 #, python-format msgid "rescues a %s" msgstr "" #: lib/pychess/Utils/lutils/strateval.py:294 #, python-format msgid "threatens to win material by %s" msgstr "" #: lib/pychess/Utils/lutils/strateval.py:296 #, python-format msgid "increases the pressure on %s" msgstr "" #: lib/pychess/Utils/lutils/strateval.py:298 #, python-format msgid "defends %s" msgstr "" #: lib/pychess/Utils/lutils/strateval.py:336 #, python-format msgid "pins an enemy %(oppiece)s on the %(piece)s at %(cord)s" msgstr "" #: lib/pychess/Utils/lutils/strateval.py:369 #, python-format msgid "White has a new piece in outpost: %s" msgstr "" #: lib/pychess/Utils/lutils/strateval.py:377 #, python-format msgid "Black has a new piece in outpost: %s" msgstr "" #: lib/pychess/Utils/lutils/strateval.py:416 #, python-format msgid "%(color)s has a new passed pawn on %(cord)s" msgstr "" #: lib/pychess/Utils/lutils/strateval.py:470 msgid "half-open" msgstr "" #: lib/pychess/Utils/lutils/strateval.py:472 #, python-format msgid "in the %(x)s%(y)s file" msgstr "" #: lib/pychess/Utils/lutils/strateval.py:474 #, python-format msgid "in the %(x)s%(y)s files" msgstr "" #: lib/pychess/Utils/lutils/strateval.py:477 #, python-format msgid "%(color)s got a double pawn %(place)s" msgstr "" #: lib/pychess/Utils/lutils/strateval.py:478 #, python-format msgid "%(color)s got new double pawns %(place)s" msgstr "" #: lib/pychess/Utils/lutils/strateval.py:485 #, python-format msgid "%(color)s got an isolated pawn in the %(x)s file" msgid_plural "%(color)s got isolated pawns in the %(x)s files" msgstr[0] "" msgstr[1] "" #: lib/pychess/Utils/lutils/strateval.py:492 #, python-format msgid "%s moves pawns into stonewall formation" msgstr "" #: lib/pychess/Utils/lutils/strateval.py:507 #: lib/pychess/Utils/lutils/strateval.py:514 #, python-format msgid "%s can no longer castle" msgstr "" #: lib/pychess/Utils/lutils/strateval.py:508 #: lib/pychess/Utils/lutils/strateval.py:515 #, python-format msgid "%s can no longer castle in queenside" msgstr "" #: lib/pychess/Utils/lutils/strateval.py:510 #: lib/pychess/Utils/lutils/strateval.py:517 #, python-format msgid "%s can no longer castle in kingside" msgstr "" #: lib/pychess/Utils/lutils/strateval.py:551 #, python-format msgid "%(opcolor)s has a new trapped bishop on %(cord)s" msgstr "" #: lib/pychess/Utils/lutils/strateval.py:573 #, python-format msgid "develops a pawn: %s" msgstr "" #: lib/pychess/Utils/lutils/strateval.py:574 #, python-format msgid "brings a pawn closer to the backrow: %s" msgstr "" #: lib/pychess/Utils/lutils/strateval.py:591 #, python-format msgid "brings a %(piece)s closer to enemy king: %(cord)s" msgstr "" #: lib/pychess/Utils/lutils/strateval.py:594 #, python-format msgid "develops a %(piece)s: %(cord)s" msgstr "" #: lib/pychess/Utils/lutils/strateval.py:612 #, python-format msgid "places a %(piece)s more active: %(cord)s" msgstr "" #: lib/pychess/Utils/lutils/strateval.py:638 msgid "White should do pawn storm in right" msgstr "" #: lib/pychess/Utils/lutils/strateval.py:640 msgid "Black should do pawn storm in left" msgstr "" #: lib/pychess/Utils/lutils/strateval.py:643 msgid "White should do pawn storm in left" msgstr "" #: lib/pychess/Utils/lutils/strateval.py:645 msgid "Black should do pawn storm in right" msgstr "" #: lib/pychess/Utils/lutils/strateval.py:671 msgid "Black has a rather cramped position" msgstr "" #: lib/pychess/Utils/lutils/strateval.py:673 msgid "Black has a slightly cramped position" msgstr "" #: lib/pychess/Utils/lutils/strateval.py:675 msgid "White has a rather cramped position" msgstr "" #: lib/pychess/Utils/lutils/strateval.py:677 msgid "White has a slightly cramped position" msgstr "" #: sidepanel/annotationPanel.py:26 msgid "Annotation" msgstr "" #: sidepanel/annotationPanel.py:29 msgid "Annotated game" msgstr "" #: sidepanel/annotationPanel.py:236 msgid "Copy PGN" msgstr "" #: sidepanel/annotationPanel.py:249 msgid "Add start comment" msgstr "" #: sidepanel/annotationPanel.py:254 msgid "Add comment" msgstr "" #: sidepanel/annotationPanel.py:258 sidepanel/annotationPanel.py:316 msgid "Edit comment" msgstr "" #: sidepanel/annotationPanel.py:269 msgid "Forced move" msgstr "" #: sidepanel/annotationPanel.py:274 msgid "Add move symbol" msgstr "" #: sidepanel/annotationPanel.py:280 msgid "Unclear position" msgstr "" #: sidepanel/annotationPanel.py:289 msgid "Zugzwang" msgstr "" #: sidepanel/annotationPanel.py:290 msgid "Development adv." msgstr "" #: sidepanel/annotationPanel.py:291 msgid "Initiative" msgstr "" #: sidepanel/annotationPanel.py:292 msgid "With attack" msgstr "" #: sidepanel/annotationPanel.py:293 msgid "Compensation" msgstr "" #: sidepanel/annotationPanel.py:294 msgid "Counterplay" msgstr "" #: sidepanel/annotationPanel.py:295 msgid "Time pressure" msgstr "" #: sidepanel/annotationPanel.py:300 msgid "Add evaluation symbol" msgstr "" #: sidepanel/annotationPanel.py:304 msgid "Remove symbols" msgstr "" #: sidepanel/annotationPanel.py:911 #, python-format msgid "round %s" msgstr "" #: sidepanel/bookPanel.py:21 msgid "Hints" msgstr "" #: sidepanel/bookPanel.py:25 msgid "" "The hint panel will provide computer advice during each stage of the game" msgstr "" #: sidepanel/bookPanel.py:27 msgid "Official PyChess panel." msgstr "" #: sidepanel/bookPanel.py:87 msgid "Opening Book" msgstr "" #: sidepanel/bookPanel.py:88 msgid "" "The opening book will try to inspire you during the opening phase of the " "game by showing you common moves made by chess masters" msgstr "" #: sidepanel/bookPanel.py:139 #, python-format msgid "Analysis by %s" msgstr "" #: sidepanel/bookPanel.py:140 #, python-format msgid "" "%s will try to predict which move is best and which side has the advantage" msgstr "" #: sidepanel/bookPanel.py:142 #, python-format msgid "Threat analysis by %s" msgstr "" #: sidepanel/bookPanel.py:143 #, python-format msgid "" "%s will identify what threats would exist if it were your opponent's turn to" " move" msgstr "" #: sidepanel/bookPanel.py:159 sidepanel/bookPanel.py:269 msgid "Calculating..." msgstr "" #: sidepanel/bookPanel.py:300 msgid "" "Engine scores are in units of pawns, from White's point of view. Double " "clicking on analysis lines you can insert them into Annotation panel as " "variations." msgstr "" #: sidepanel/bookPanel.py:302 msgid "" "Adding suggestions can help you find ideas, but slows down the computer's " "analysis." msgstr "" #: sidepanel/bookPanel.py:311 msgid "Endgame Table" msgstr "" #: sidepanel/bookPanel.py:315 msgid "" "The endgame table will show exact analysis when there are few pieces on the " "board." msgstr "" #: sidepanel/bookPanel.py:364 sidepanel/bookPanel.py:367 #, python-format msgid "Mate in %d" msgstr "" #: sidepanel/bookPanel.py:554 msgid "" "In this position,\n" "there is no legal move." msgstr "" #: sidepanel/chatPanel.py:21 msgid "" "The chat panel lets you communicate with your opponent during the game, " "assuming he or she is interested" msgstr "" #: sidepanel/commentPanel.py:16 msgid "Comments" msgstr "" #: sidepanel/commentPanel.py:20 msgid "The comments panel will try to analyze and explain the moves played" msgstr "" #: sidepanel/commentPanel.py:121 msgid "Initial position" msgstr "" #: sidepanel/commentPanel.py:254 #, python-format msgid "%(color)s moves a %(piece)s to %(cord)s" msgstr "" #: sidepanel/engineOutputPanel.py:15 msgid "Engines" msgstr "" #: sidepanel/engineOutputPanel.py:20 msgid "" "The engine output panel shows the thinking output of chess engines (computer" " players) during a game" msgstr "" #: sidepanel/engineOutputPanel.py:44 msgid "No chess engines (computer players) are participating in this game." msgstr "" #: sidepanel/historyPanel.py:10 msgid "Move History" msgstr "" #: sidepanel/historyPanel.py:13 msgid "" "The moves sheet keeps track of the players' moves and lets you navigate " "through the game history" msgstr "" #: sidepanel/scorePanel.py:15 msgid "Score" msgstr "" #: sidepanel/scorePanel.py:19 msgid "" "The score panel tries to evaluate the positions and shows you a graph of the" " game progress" msgstr "" pychess-0.12.2/lang/br/LC_MESSAGES/pychess.mo0000644000175000017470000000221212653231273020675 0ustar tamasusers00000000000000|  %.057=?GMSY `j&(-/ 3ACHJRT[a jt{    PlayersBBishopBlackEmailKKnightNNameNew GamePPingQQueenRUnknownWhite_Game_Help_Name:_New GameProject-Id-Version: pychess Report-Msgid-Bugs-To: POT-Creation-Date: 2016-01-27 13:28+0100 PO-Revision-Date: 2016-01-28 08:56+0000 Last-Translator: slav0nic Language-Team: Breton (http://www.transifex.com/gbtami/pychess/language/br/) MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Language: br Plural-Forms: nplurals=2; plural=(n > 1); C'HoarierienBFurlukinDuPostelKRoueNAnvC'hoari nevezPPingQRouanezRDianavGwenn_C'Hoari_Skoazell_Anv :C'Hoari _Nevezpychess-0.12.2/lang/vi/0000755000175000017470000000000012653231274015114 5ustar tamasusers00000000000000pychess-0.12.2/lang/vi/LC_MESSAGES/0000755000175000017470000000000012653231274016701 5ustar tamasusers00000000000000pychess-0.12.2/lang/vi/LC_MESSAGES/pychess.po0000644000175000017470000025023412653216173020726 0ustar tamasusers00000000000000# SOME DESCRIPTIVE TITLE. # Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER # This file is distributed under the same license as the pychess package. # # Translators: # FIRST AUTHOR , 2010 msgid "" msgstr "" "Project-Id-Version: pychess\n" "Report-Msgid-Bugs-To: \n" "POT-Creation-Date: 2016-01-27 13:28+0100\n" "PO-Revision-Date: 2016-01-28 08:56+0000\n" "Last-Translator: slav0nic \n" "Language-Team: Vietnamese (http://www.transifex.com/gbtami/pychess/language/vi/)\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" "Language: vi\n" "Plural-Forms: nplurals=1; plural=0;\n" # "Plural-Forms: nplurals=INTEGER; plural=EXPRESSION;\n" #: glade/analyze_game.glade:22 msgid "Analyze game" msgstr "" #: glade/analyze_game.glade:87 msgid "Use analyzer:" msgstr "" #: glade/analyze_game.glade:122 glade/PyChess.glade:2054 msgid "Maximum analysis time in seconds:" msgstr "" #: glade/analyze_game.glade:163 msgid "" "If the analyzer finds a move where the evaluation difference (the difference" " between the evaluation for the move it thinks is the best move and the " "evaluation for the move made in the game) exceeds this value, it will add an" " annotation for that move (consisting of the engine's Principal Variation " "for the move) to the Annotation panel" msgstr "" #: glade/analyze_game.glade:164 msgid "Variation annotation creation threshold in centipawns:" msgstr "" #: glade/analyze_game.glade:198 msgid "Analyze from current position" msgstr "" #: glade/analyze_game.glade:214 msgid "Add threatening variation lines " msgstr "" #: glade/analyze_game.glade:229 glade/PyChess.glade:1459 msgid "Colorize analyzed moves" msgstr "" #: glade/analyze_game.glade:244 glade/PyChess.glade:1495 msgid "Show evaluation values" msgstr "" #: glade/discovererDialog.glade:18 msgid "PyChess is discovering your engines. Please wait." msgstr "" #: glade/discovererDialog.glade:77 msgid "PyChess.py:" msgstr "PyChess.py:" #: glade/discovererDialog.glade:89 msgid "ShredderLinuxChess:" msgstr "ShredderLinuxChess:" #: glade/discovererDialog.glade:101 msgid "gnuchess:" msgstr "gnuchess:" #: glade/fics_logon.glade:7 msgid "PyChess - Connect to Internet Chess" msgstr "PyChess - Kết nối với Internet Chess" #: glade/fics_logon.glade:47 msgid "Connect to the Free Online Chess Server" msgstr "" #: glade/fics_logon.glade:129 glade/taskers.glade:394 msgid "_Password:" msgstr "_Mật khẩu :" #: glade/fics_logon.glade:143 msgid "_Name:" msgstr "_Tên:" #: glade/fics_logon.glade:191 msgid "Log on as _Guest" msgstr "Đăng nhập với tên _Guest" #: glade/fics_logon.glade:227 msgid "Host:" msgstr "" #: glade/fics_logon.glade:259 msgid "Po_rts:" msgstr "Các C_ổng:" #: glade/fics_logon.glade:271 msgid "Auto login on startup" msgstr "" #: glade/fics_logon.glade:385 msgid "S_ign up" msgstr "" #: glade/fics_lounge.glade:35 msgid "Challenge: " msgstr "" #: glade/fics_lounge.glade:97 msgid "Send Challenge" msgstr "" #: glade/fics_lounge.glade:133 msgid "Challenge:" msgstr "" #: glade/fics_lounge.glade:327 glade/fics_lounge.glade:2078 msgid "Lightning:" msgstr "" #: glade/fics_lounge.glade:351 glade/fics_lounge.glade:2102 msgid "Standard:" msgstr "Chuẩn:" #: glade/fics_lounge.glade:375 glade/fics_lounge.glade:2126 msgid "Blitz:" msgstr "" #: glade/fics_lounge.glade:400 msgid "2 min, Fischer Random, Black" msgstr "" #: glade/fics_lounge.glade:422 msgid "10 min + 6 sec/move, White" msgstr "" #: glade/fics_lounge.glade:444 msgid "5 min" msgstr "" #: glade/fics_lounge.glade:480 msgid "Edit Seek" msgstr "" #: glade/fics_lounge.glade:584 lib/pychess/ic/ICLounge.py:2208 #: lib/pychess/ic/__init__.py:101 lib/pychess/Utils/GameModel.py:206 msgid "Untimed" msgstr "" #: glade/fics_lounge.glade:637 msgid "Minutes: " msgstr "" #: glade/fics_lounge.glade:665 msgid " Gain: " msgstr "" #: glade/fics_lounge.glade:703 msgid "Time control: " msgstr "" #: glade/fics_lounge.glade:716 lib/pychess/ic/FICSObjects.py:56 #: lib/pychess/ic/ICLounge.py:1137 lib/pychess/ic/ICLounge.py:2208 #: lib/pychess/ic/__init__.py:99 msgid "Standard" msgstr "" #: glade/fics_lounge.glade:757 glade/newInOut.glade:633 msgid "Time Control" msgstr "" #: glade/fics_lounge.glade:814 glade/fics_lounge.glade:1346 msgid "Don't care" msgstr "" #: glade/fics_lounge.glade:879 msgid "Your strength: " msgstr "" #: glade/fics_lounge.glade:921 msgid "(Blitz)" msgstr "" #: glade/fics_lounge.glade:951 msgid "Opponent's strength: " msgstr "" #: glade/fics_lounge.glade:1055 msgid "" "When this button is in the \"locked\" state, the relationship\n" "between \"Opponent's strength\" and \"Your strength\" will be\n" "preserved when \n" "a) your rating for the type of game sought has changed\n" "b) you change the variant or the time control" msgstr "" #: glade/fics_lounge.glade:1095 msgid "Center:" msgstr "" #: glade/fics_lounge.glade:1134 msgid "1200" msgstr "" #: glade/fics_lounge.glade:1188 msgid "Tolerance:" msgstr "" #: glade/fics_lounge.glade:1243 lib/pychess/ic/ICLounge.py:2452 msgid "Hide" msgstr "" #: glade/fics_lounge.glade:1289 msgid "Opponent Strength" msgstr "" #: glade/fics_lounge.glade:1386 lib/pychess/Database/gamelist.py:40 #: lib/pychess/ic/ICLounge.py:1357 lib/pychess/ic/ICLounge.py:1557 #: lib/pychess/ic/ICLounge.py:2108 lib/pychess/Utils/repr.py:10 #: lib/pychess/widgets/ChessClock.py:40 #: lib/pychess/widgets/TaskerManager.py:153 msgid "White" msgstr "Trắng" #: glade/fics_lounge.glade:1414 lib/pychess/Database/gamelist.py:40 #: lib/pychess/ic/ICLounge.py:1358 lib/pychess/ic/ICLounge.py:1558 #: lib/pychess/ic/ICLounge.py:2110 lib/pychess/Utils/repr.py:10 #: lib/pychess/widgets/ChessClock.py:40 #: lib/pychess/widgets/TaskerManager.py:154 msgid "Black" msgstr "Đen" #: glade/fics_lounge.glade:1453 msgid "Your Color" msgstr "" #: glade/fics_lounge.glade:1512 msgid "Play normal chess rules" msgstr "" #: glade/fics_lounge.glade:1552 msgid "Play" msgstr "" #: glade/fics_lounge.glade:1618 glade/newInOut.glade:833 msgid "Chess Variant" msgstr "" #: glade/fics_lounge.glade:1676 msgid "Rated game" msgstr "" #: glade/fics_lounge.glade:1692 msgid "Manually accept opponent" msgstr "" #: glade/fics_lounge.glade:1722 msgid "Options" msgstr "" #: glade/fics_lounge.glade:1750 msgid "PyChess - Internet Chess: FICS" msgstr "PyChess - Internet Chess: FICS" #: glade/fics_lounge.glade:1823 msgid "_Clear Seeks" msgstr "" #: glade/fics_lounge.glade:1847 msgid "_Accept" msgstr "_Chấp nhận" #: glade/fics_lounge.glade:1871 msgid "_Decline" msgstr "" #: glade/fics_lounge.glade:2151 msgid "2 min, Fischer Random, 1800↓, Black" msgstr "" #: glade/fics_lounge.glade:2172 msgid "10 min + 6 sec/move, 1400↑, White" msgstr "" #: glade/fics_lounge.glade:2193 msgid "5 min, 1200-1800, Manual" msgstr "" #: glade/fics_lounge.glade:2247 msgid "Send all seeks" msgstr "" #: glade/fics_lounge.glade:2301 msgid "Send seek" msgstr "" #: glade/fics_lounge.glade:2337 msgid "Create Seek" msgstr "" #: glade/fics_lounge.glade:2353 msgid "_Seeks / Challenges" msgstr "" #: glade/fics_lounge.glade:2374 lib/pychess/ic/ICLounge.py:472 #: lib/pychess/ic/ICLounge.py:670 lib/pychess/ic/ICLounge.py:1357 #: lib/pychess/ic/ICLounge.py:1358 msgid "Rating" msgstr "Tính điểm" #: glade/fics_lounge.glade:2399 msgid "Time" msgstr "Thời gian" #: glade/fics_lounge.glade:2419 msgid "Seek _Graph" msgstr "" #: glade/fics_lounge.glade:2444 msgid "0 Players Ready" msgstr "" #: glade/fics_lounge.glade:2496 msgid "Challenge" msgstr "" #: glade/fics_lounge.glade:2549 glade/fics_lounge.glade:2735 msgid "Observe" msgstr "" #: glade/fics_lounge.glade:2602 msgid "Start Private Chat" msgstr "" #: glade/fics_lounge.glade:2659 msgid "_Player List" msgstr "" #: glade/fics_lounge.glade:2792 msgid "_Game List" msgstr "" #: glade/fics_lounge.glade:2847 msgid "_My games" msgstr "" #: glade/fics_lounge.glade:2904 glade/PyChess.glade:841 msgid "Offer _Resume" msgstr "" #: glade/fics_lounge.glade:2962 glade/PyChess.glade:880 msgid "R_esign" msgstr "" #: glade/fics_lounge.glade:3006 glade/PyChess.glade:820 msgid "Offer _Draw" msgstr "Đề nghị _Hòa" #: glade/fics_lounge.glade:3050 msgid "Offer A_bort" msgstr "" #: glade/fics_lounge.glade:3107 msgid "Pre_view" msgstr "" #: glade/fics_lounge.glade:3151 msgid "Examine" msgstr "" #: glade/fics_lounge.glade:3208 msgid "_Archived" msgstr "" #: glade/fics_lounge.glade:3313 msgid "News" msgstr "Tin tức" #: glade/fics_lounge.glade:3345 msgid "Show Console" msgstr "" #: glade/fics_lounge.glade:3359 msgid "Show _Chat" msgstr "" #: glade/fics_lounge.glade:3373 msgid "_Log Off" msgstr "" #: glade/fics_lounge.glade:3393 msgid "Tools" msgstr "Công cụ" #: glade/fics_lounge.glade:3428 msgid "Asymmetric Random " msgstr "" #: glade/findbar.glade:6 msgid "window1" msgstr "" #: glade/findbar.glade:21 msgid "0 of 0" msgstr "" #: glade/findbar.glade:66 msgid "Search:" msgstr "" #: glade/findbar.glade:134 msgid "_Previous" msgstr "" #: glade/findbar.glade:192 msgid "_Next" msgstr "" #: glade/newInOut.glade:45 lib/pychess/widgets/newGameDialog.py:445 msgid "New Game" msgstr "Ván mới" #: glade/newInOut.glade:108 msgid "_Start Game" msgstr "_Bắt đầu ván cờ" #: glade/newInOut.glade:130 msgid "Copy FEN" msgstr "" #: glade/newInOut.glade:143 msgid "Clear" msgstr "" #: glade/newInOut.glade:156 msgid "Paste FEN" msgstr "" #: glade/newInOut.glade:257 msgid "_Black player:" msgstr "" #: glade/newInOut.glade:274 msgid "_White player:" msgstr "" #: glade/newInOut.glade:385 msgid "Players" msgstr "Người chơi" #: glade/newInOut.glade:436 msgid "_Untimed" msgstr "" #: glade/newInOut.glade:475 msgid "Blitz: 5 min" msgstr "" #: glade/newInOut.glade:526 msgid "Rapid: 15 min + 10 sec/move" msgstr "" #: glade/newInOut.glade:575 msgid "Normal: 40 min + 15 sec/move" msgstr "" #: glade/newInOut.glade:684 msgid "_Play Normal chess" msgstr "" #: glade/newInOut.glade:724 msgid "Play Fischer Random chess" msgstr "" #: glade/newInOut.glade:774 msgid "Play Losers chess" msgstr "" #: glade/newInOut.glade:919 msgid "Open Game" msgstr "" #: glade/newInOut.glade:1162 msgid "Initial Position" msgstr "" #: glade/newInOut.glade:1219 msgid "Enter Game Notation" msgstr "" #: glade/newInOut.glade:1314 msgid "Halfmove clock" msgstr "" #: glade/newInOut.glade:1327 msgid "En passant line" msgstr "" #: glade/newInOut.glade:1339 msgid "Side to move" msgstr "" #: glade/newInOut.glade:1351 msgid "Move number" msgstr "" #: glade/newInOut.glade:1361 msgid "Black O-O" msgstr "" #: glade/newInOut.glade:1375 msgid "Black O-O-O" msgstr "" #: glade/newInOut.glade:1389 msgid "White O-O-O" msgstr "" #: glade/newInOut.glade:1403 msgid "White O-O" msgstr "" #: glade/promotion.glade:7 msgid "Promotion" msgstr "Phong cấp" #: glade/promotion.glade:49 lib/pychess/Utils/repr.py:12 msgid "Queen" msgstr "Hậu" #: glade/promotion.glade:95 lib/pychess/Utils/repr.py:12 msgid "Rook" msgstr "Xe" #: glade/promotion.glade:141 lib/pychess/Utils/repr.py:12 msgid "Bishop" msgstr "Tượng" #: glade/promotion.glade:187 lib/pychess/Utils/repr.py:12 msgid "Knight" msgstr "Mã" #: glade/promotion.glade:233 lib/pychess/Utils/repr.py:12 msgid "King" msgstr "" #: glade/promotion.glade:265 msgid "Promote pawn to what?" msgstr "Phong cấp Tốt thành quân gì?" #: glade/PyChess.glade:9 msgid "Chess client" msgstr "" #: glade/PyChess.glade:44 msgid "Game information" msgstr "Thông tin về ván cờ" #: glade/PyChess.glade:164 msgid "Event:" msgstr "Giải đấu:" #: glade/PyChess.glade:178 msgid "Site:" msgstr "Địa chỉ mạng:" #: glade/PyChess.glade:204 msgid "Round:" msgstr "Vòng:" #: glade/PyChess.glade:237 msgid "White:" msgstr "" #: glade/PyChess.glade:249 msgid "Black:" msgstr "" #: glade/PyChess.glade:302 msgid "Game data" msgstr "Dữ liệu ván cờ" #: glade/PyChess.glade:357 msgid "Date of game" msgstr "Ngày diễn ra" #: glade/PyChess.glade:495 msgid "_Game" msgstr "_Ván" #: glade/PyChess.glade:502 msgid "_New Game" msgstr "_Chơi ván mới" #: glade/PyChess.glade:515 msgid "Play _Internet Chess" msgstr "" #: glade/PyChess.glade:534 msgid "_Load Game" msgstr "_Tải ván cờ" #: glade/PyChess.glade:550 msgid "Load _Recent Game" msgstr "" #: glade/PyChess.glade:558 msgid "Open _Database" msgstr "" #: glade/PyChess.glade:569 lib/pychess/widgets/newGameDialog.py:615 msgid "Setup Position" msgstr "" #: glade/PyChess.glade:579 msgid "Enter Game _Notation" msgstr "" #: glade/PyChess.glade:592 msgid "_Save Game" msgstr "_Lưu lại ván cờ" #: glade/PyChess.glade:606 msgid "Save Game _As" msgstr "Lưu lại ván với _Tên" #: glade/PyChess.glade:624 msgid "Share Game" msgstr "" #: glade/PyChess.glade:630 msgid "_Export Position" msgstr "" #: glade/PyChess.glade:644 msgid "_Analyze Game" msgstr "" #: glade/PyChess.glade:678 msgid "Player _Rating" msgstr "Điểm của người chơi" #: glade/PyChess.glade:723 msgid "_Edit" msgstr "" #: glade/PyChess.glade:734 msgid "_Copy PGN" msgstr "" #: glade/PyChess.glade:746 msgid "_Copy FEN" msgstr "" #: glade/PyChess.glade:763 msgid "_Engines" msgstr "" #: glade/PyChess.glade:789 msgid "_Actions" msgstr "" #: glade/PyChess.glade:800 msgid "Offer _Abort" msgstr "" #: glade/PyChess.glade:810 msgid "Offer Ad_journment" msgstr "" #: glade/PyChess.glade:831 msgid "Offer _Pause" msgstr "" #: glade/PyChess.glade:847 msgid "Offer _Undo" msgstr "" #: glade/PyChess.glade:870 msgid "_Call Flag" msgstr "" #: glade/PyChess.glade:890 msgid "Ask to _Move" msgstr "" #: glade/PyChess.glade:905 msgid "Auto Call _Flag" msgstr "" #: glade/PyChess.glade:918 msgid "_View" msgstr "_Xem" #: glade/PyChess.glade:925 msgid "_Rotate Board" msgstr "_Xoay bàn cờ" #: glade/PyChess.glade:939 msgid "_Fullscreen" msgstr "" #: glade/PyChess.glade:952 msgid "Leave _Fullscreen" msgstr "" #: glade/PyChess.glade:969 msgid "_Show Sidepanels" msgstr "" #: glade/PyChess.glade:980 msgid "_Log Viewer" msgstr "Xem _nhật trình" #: glade/PyChess.glade:997 msgid "_Hint mode" msgstr "Chế độ _gợi ý" #: glade/PyChess.glade:1009 msgid "Sp_y mode" msgstr "Chế độ _gián điệp" #: glade/PyChess.glade:1024 msgid "_Help" msgstr "_Trợ giúp" #: glade/PyChess.glade:1034 msgid "About Chess" msgstr "Giới thiệu Chess" #: glade/PyChess.glade:1043 msgid "How to Play" msgstr "" #: glade/PyChess.glade:1052 msgid "Translate PyChess" msgstr "" #: glade/PyChess.glade:1058 msgid "Tip of the Day" msgstr "" #: glade/PyChess.glade:1153 msgid "Default" msgstr "" #: glade/PyChess.glade:1156 msgid "Knights" msgstr "" #: glade/PyChess.glade:1167 lib/pychess/widgets/preferencesDialog.py:349 msgid "Beep" msgstr "Bíp" #: glade/PyChess.glade:1170 lib/pychess/widgets/preferencesDialog.py:350 msgid "Select sound file..." msgstr "Chọn tập tin âm thanh..." #: glade/PyChess.glade:1173 lib/pychess/widgets/preferencesDialog.py:348 msgid "No sound" msgstr "Không có âm thanh" #: glade/PyChess.glade:1180 msgid "Preferences" msgstr "Tùy chọn" #: glade/PyChess.glade:1218 msgid "The displayed name of the first human player, e.g., John." msgstr "" #: glade/PyChess.glade:1230 msgid "Name of _first human player:" msgstr "" #: glade/PyChess.glade:1259 msgid "The displayed name of the guest player, e.g., Mary." msgstr "" #: glade/PyChess.glade:1271 msgid "Name of s_econd human player:" msgstr "" #: glade/PyChess.glade:1307 msgid "_Hide tabs when only one game is open" msgstr "Ẩ_n tab khi chỉ mở một ván cờ" #: glade/PyChess.glade:1312 msgid "" "If set, this hides the tab in the top of the playing window, when it is not " "needed." msgstr "" #: glade/PyChess.glade:1326 msgid "_Use main app closer [x] to close all games" msgstr "" #: glade/PyChess.glade:1331 msgid "" "If set, clicking on main application window closer first time it closes all " "games." msgstr "" #: glade/PyChess.glade:1345 msgid "Auto _rotate board to current human player" msgstr "" #: glade/PyChess.glade:1350 msgid "" "If set, the board will turn after each move, to show the natural view for " "the current player." msgstr "" #: glade/PyChess.glade:1364 msgid "Auto _promote to queen" msgstr "" #: glade/PyChess.glade:1369 msgid "If set, pawn promotes to queen without promotion dialog selection." msgstr "" #: glade/PyChess.glade:1383 msgid "Face _to Face display mode" msgstr "" #: glade/PyChess.glade:1388 msgid "" "If set, the black pieces will be head down, suitable for playing against " "friends on mobile devices." msgstr "" #: glade/PyChess.glade:1402 msgid "Sho_w cords" msgstr "" #: glade/PyChess.glade:1407 msgid "" "If set, the playing board will display labels and ranks for each chess " "field. These are usable in chess notation." msgstr "" #: glade/PyChess.glade:1421 msgid "Show _captured pieces" msgstr "" #: glade/PyChess.glade:1426 msgid "If set, the captured figurines will be shown next to the board." msgstr "" #: glade/PyChess.glade:1440 msgid "Prefer figures in _notation" msgstr "" #: glade/PyChess.glade:1445 msgid "" "If set, PyChess will use figures to express moved pieces, rather than " "uppercase letters." msgstr "" #: glade/PyChess.glade:1464 msgid "If set, PyChess will colorize suboptimal analyzed moves with red." msgstr "" #: glade/PyChess.glade:1477 msgid "Show elapsed move times" msgstr "" #: glade/PyChess.glade:1482 msgid "If set, the elapsed time that a player used for the move is shown." msgstr "" #: glade/PyChess.glade:1500 msgid "If set, the hint analyzer engine evaluation value is shown." msgstr "" #: glade/PyChess.glade:1526 msgid "General Options" msgstr "" #: glade/PyChess.glade:1560 msgid "F_ull board animation" msgstr "" #: glade/PyChess.glade:1565 msgid "Animate pieces, board rotation and more. Use this on fast machines." msgstr "" #: glade/PyChess.glade:1579 msgid "Only animate _moves" msgstr "" #: glade/PyChess.glade:1584 msgid "Only animate piece moves." msgstr "" #: glade/PyChess.glade:1599 msgid "No _animation" msgstr "" #: glade/PyChess.glade:1604 msgid "Never use animation. Use this on slow machines." msgstr "" #: glade/PyChess.glade:1632 msgid "Animation" msgstr "Hình động" #: glade/PyChess.glade:1651 msgid "_General" msgstr "" #: glade/PyChess.glade:1692 msgid "Use opening _book" msgstr "" #: glade/PyChess.glade:1697 msgid "If set, PyChess will suggest best opening moves on hint panel." msgstr "" #: glade/PyChess.glade:1724 msgid "Polyglot book file:" msgstr "" #: glade/PyChess.glade:1768 msgid "Use _local tablebases" msgstr "" #: glade/PyChess.glade:1773 msgid "" "If set, PyChess will show game results for different moves in positions containing 6 or less pieces.\n" "You can download tablebase files from:\n" "http://www.olympuschess.com/egtb/gaviota/" msgstr "" #: glade/PyChess.glade:1803 msgid "Gaviota TB path:" msgstr "" #: glade/PyChess.glade:1843 msgid "Use _online tablebases" msgstr "" #: glade/PyChess.glade:1848 msgid "" "If set, PyChess will show game results for different moves in positions containing 6 or less pieces.\n" "It will search positions from http://www.k4it.de/" msgstr "" #: glade/PyChess.glade:1870 msgid "Opening, endgame" msgstr "" #: glade/PyChess.glade:1904 msgid "Use _analyzer" msgstr "Dùng công cụ _phân tích" #: glade/PyChess.glade:1946 msgid "" "The analyzer will run in the background and analyze the game. This is " "necessary for the hint mode to work" msgstr "" #: glade/PyChess.glade:1978 msgid "Use _inverted analyzer" msgstr "Dùng công cụ phân tích _ngược" #: glade/PyChess.glade:2020 msgid "" "The inverse analyzer will analyze the game as if your opponent was to move. " "This is necessary for the spy mode to work" msgstr "" #: glade/PyChess.glade:2096 msgid "Analyzing" msgstr "Đang phân tích" #: glade/PyChess.glade:2118 msgid "_Hints" msgstr "" #: glade/PyChess.glade:2263 msgid "Uninstall" msgstr "" #: glade/PyChess.glade:2317 msgid "Ac_tive" msgstr "" #: glade/PyChess.glade:2367 msgid "Installed Sidepanels" msgstr "" #: glade/PyChess.glade:2382 msgid "Side_panels" msgstr "" #: glade/PyChess.glade:2440 msgid "Light Squares :" msgstr "" #: glade/PyChess.glade:2479 msgid "Dark Squares :" msgstr "" #: glade/PyChess.glade:2515 msgid "Reset Default Colours" msgstr "" #: glade/PyChess.glade:2551 msgid "Board Colours" msgstr "" #: glade/PyChess.glade:2610 msgid "Chess Sets" msgstr "" #: glade/PyChess.glade:2634 msgid "Themes" msgstr "" #: glade/PyChess.glade:2659 msgid "_Use sounds in PyChess" msgstr "_Bật âm thanh trong PyChess" #: glade/PyChess.glade:2982 msgid "A player _checks:" msgstr "Một người chơi _chiếu vua:" #: glade/PyChess.glade:2997 msgid "A player _moves:" msgstr "Một người chơi _thực hiện nước đi:" #: glade/PyChess.glade:3010 msgid "Game is _drawn:" msgstr "_Hòa cờ:" #: glade/PyChess.glade:3025 msgid "Game is _lost:" msgstr "_Thua cờ:" #: glade/PyChess.glade:3040 msgid "Game is _won:" msgstr "_Thắng cờ:" #: glade/PyChess.glade:3055 msgid "A player c_aptures:" msgstr "Một người chơi ă_n quân:" #: glade/PyChess.glade:3084 msgid "Game is _set-up:" msgstr "Ván cờ được _bày ra:" #: glade/PyChess.glade:3136 msgid "_Observed moves:" msgstr "Các nước đã _quan sát:" #: glade/PyChess.glade:3151 msgid "Observed _ends:" msgstr "_Kết thúc quan sát" #: glade/PyChess.glade:3265 msgid "Short on _time:" msgstr "" #: glade/PyChess.glade:3317 msgid "_Invalid move:" msgstr "" #: glade/PyChess.glade:3369 msgid "Activate alarm when _remaining sec is:" msgstr "" #: glade/PyChess.glade:3416 msgid "Play Sound When..." msgstr "Phát Âm Thanh Khi..." #: glade/PyChess.glade:3438 msgid "_Sounds" msgstr "" #: glade/PyChess.glade:3463 msgid "_Auto save finished games" msgstr "" #: glade/PyChess.glade:3497 msgid "Save files to:" msgstr "" #: glade/PyChess.glade:3525 msgid "Use name format:" msgstr "" #: glade/PyChess.glade:3569 msgid "Names: #n1, #n2" msgstr "" #: glade/PyChess.glade:3582 msgid "Year, month, day: #y, #m, #d" msgstr "" #: glade/PyChess.glade:3619 msgid "Save elapsed move _times" msgstr "" #: glade/PyChess.glade:3644 msgid "Save analyzing engine _evaluation values" msgstr "" #: glade/PyChess.glade:3669 msgid "Save _own games only" msgstr "" #: glade/PyChess.glade:3698 msgid "Save" msgstr "" #: glade/PyChess.glade:3728 msgid "uci" msgstr "" #: glade/PyChess.glade:3731 msgid "xboard" msgstr "" #: glade/PyChess.glade:3739 msgid "Manage engines" msgstr "" #: glade/PyChess.glade:3837 msgid "Command:" msgstr "" #: glade/PyChess.glade:3851 msgid "Protocol:" msgstr "" #: glade/PyChess.glade:3865 msgid "Parameters:" msgstr "" #: glade/PyChess.glade:3878 msgid "Command line parameters needed by the engine." msgstr "" #: glade/PyChess.glade:3903 msgid "" "Engines use uci or xboard communication protocol to talk to the GUI.\n" "If it can use both you can set here which one you like." msgstr "" #: glade/PyChess.glade:3929 msgid "Working directory:" msgstr "" #: glade/PyChess.glade:3942 msgid "The directory where the engine will be started from." msgstr "" #: glade/saveGamesDialog.glade:7 msgid "Quit PyChess" msgstr "" #: glade/saveGamesDialog.glade:24 lib/pychess/widgets/ionest.py:424 msgid "Close _without Saving" msgstr "Đóng mà _không lưu" #: glade/saveGamesDialog.glade:83 msgid "_Save %d documents" msgstr "" #: glade/saveGamesDialog.glade:141 msgid "" "There are %d games with unsaved moves. Save changes before " "closing?" msgstr "" #: glade/saveGamesDialog.glade:161 msgid "Select the games you want to save:" msgstr "" #: glade/saveGamesDialog.glade:204 msgid "If you don't save, new changes to your games will be permanently lost." msgstr "" #: glade/taskers.glade:126 msgid "_Opponent:" msgstr "" #: glade/taskers.glade:154 msgid "_Your Color:" msgstr "" #: glade/taskers.glade:219 msgid "_Start Game" msgstr "" #: glade/taskers.glade:338 msgid "Log on as G_uest" msgstr "" #: glade/taskers.glade:410 msgid "Ha_ndle:" msgstr "" #: glade/taskers.glade:469 msgid "_Connect to server" msgstr "" #: glade/tipoftheday.glade:7 msgid "Tip Of The day" msgstr "" #: glade/tipoftheday.glade:62 msgid "Show tips at startup" msgstr "" #: lib/pychess/Main.py:302 msgid "http://en.wikipedia.org/wiki/Chess" msgstr "http://en.wikipedia.org/wiki/Chess" #: lib/pychess/Main.py:305 msgid "http://en.wikipedia.org/wiki/Rules_of_chess" msgstr "http://en.wikipedia.org/wiki/Rules_of_chess" #: lib/pychess/Main.py:370 lib/pychess/widgets/gamenanny.py:80 msgid "Welcome" msgstr "" #: lib/pychess/Database/gamelist.py:40 msgid "Id" msgstr "" #: lib/pychess/Database/gamelist.py:40 msgid "W Elo" msgstr "" #: lib/pychess/Database/gamelist.py:40 msgid "B Elo" msgstr "" #: lib/pychess/Database/gamelist.py:41 msgid "Result" msgstr "" #: lib/pychess/Database/gamelist.py:41 msgid "Event" msgstr "" #: lib/pychess/Database/gamelist.py:41 msgid "Site" msgstr "" #: lib/pychess/Database/gamelist.py:41 msgid "Round" msgstr "" #: lib/pychess/Database/gamelist.py:41 msgid "Date" msgstr "" #: lib/pychess/Database/gamelist.py:41 msgid "ECO" msgstr "" #: lib/pychess/Database/gamelist.py:62 msgid "PyChess Game Database" msgstr "" #: lib/pychess/Database/PgnImport.py:188 #, python-format msgid "The game #%s can't be loaded, because of an error parsing FEN" msgstr "" #: lib/pychess/ic/FICSConnection.py:139 msgid "The connection was broken - got \"end of file\" message" msgstr "Kết nối bị ngắt - nhận được thông báo \"kết thúc file\"" #: lib/pychess/ic/FICSConnection.py:140 #, python-format msgid "'%s' is not a registered name" msgstr "'%s' không phải là tên đã đăng kí" #: lib/pychess/ic/FICSConnection.py:141 msgid "" "The entered password was invalid.\n" "If you forgot your password, go to http://www.freechess.org/password to request a new one over email." msgstr "" #: lib/pychess/ic/FICSConnection.py:145 #, python-format msgid "Sorry '%s' is already logged in" msgstr "" #: lib/pychess/ic/FICSConnection.py:146 #, python-format msgid "'%s' is a registered name. If it is yours, type the password." msgstr "" #: lib/pychess/ic/FICSConnection.py:147 msgid "" "Due to abuse problems, guest connections have been prevented.\n" "You can still register on http://www.freechess.org" msgstr "" #: lib/pychess/ic/FICSConnection.py:166 msgid "Connecting to server" msgstr "" #: lib/pychess/ic/FICSConnection.py:181 msgid "Logging on to server" msgstr "" #: lib/pychess/ic/FICSConnection.py:239 msgid "Setting up environment" msgstr "" #: lib/pychess/ic/FICSObjects.py:35 lib/pychess/ic/FICSObjects.py:47 #, python-format msgid "%(player)s is %(status)s" msgstr "" #: lib/pychess/ic/FICSObjects.py:46 msgid "not playing" msgstr "" #: lib/pychess/ic/FICSObjects.py:54 lib/pychess/ic/ICLounge.py:1136 #: lib/pychess/ic/ICLounge.py:2209 lib/pychess/ic/__init__.py:98 #: lib/pychess/widgets/newGameDialog.py:153 msgid "Blitz" msgstr "" #: lib/pychess/ic/FICSObjects.py:58 lib/pychess/ic/ICLounge.py:1137 #: lib/pychess/ic/ICLounge.py:2209 lib/pychess/ic/__init__.py:100 msgid "Lightning" msgstr "Cờ chớp" #: lib/pychess/ic/FICSObjects.py:60 lib/pychess/Variants/atomic.py:15 msgid "Atomic" msgstr "" #: lib/pychess/ic/FICSObjects.py:62 lib/pychess/Variants/bughouse.py:9 msgid "Bughouse" msgstr "" #: lib/pychess/ic/FICSObjects.py:64 lib/pychess/Variants/crazyhouse.py:9 msgid "Crazyhouse" msgstr "" #: lib/pychess/ic/FICSObjects.py:66 lib/pychess/Variants/losers.py:9 msgid "Losers" msgstr "" #: lib/pychess/ic/FICSObjects.py:68 lib/pychess/Variants/suicide.py:12 msgid "Suicide" msgstr "" #: lib/pychess/ic/FICSObjects.py:70 lib/pychess/ic/__init__.py:129 msgid "Wild" msgstr "" #: lib/pychess/ic/FICSObjects.py:117 msgid "Online" msgstr "" #: lib/pychess/ic/FICSObjects.py:118 lib/pychess/ic/FICSObjects.py:143 msgid "Offline" msgstr "" #: lib/pychess/ic/FICSObjects.py:133 msgid "Available" msgstr "" #: lib/pychess/ic/FICSObjects.py:135 msgid "Playing" msgstr "" #: lib/pychess/ic/FICSObjects.py:141 msgid "Idle" msgstr "" #: lib/pychess/ic/FICSObjects.py:145 msgid "Examining" msgstr "" #: lib/pychess/ic/FICSObjects.py:147 msgid "Not Available" msgstr "" #: lib/pychess/ic/FICSObjects.py:149 msgid "Running Simul Match" msgstr "" #: lib/pychess/ic/FICSObjects.py:151 msgid "In Tournament" msgstr "" #: lib/pychess/ic/FICSObjects.py:308 lib/pychess/ic/FICSObjects.py:492 #: lib/pychess/ic/ICLounge.py:2278 msgid "Unrated" msgstr "Không được tính điểm" #: lib/pychess/ic/FICSObjects.py:491 lib/pychess/ic/ICLounge.py:670 #: lib/pychess/ic/ICLounge.py:1358 lib/pychess/ic/ICLounge.py:1558 #: lib/pychess/ic/ICLounge.py:2113 msgid "Rated" msgstr "Điểm" #: lib/pychess/ic/FICSObjects.py:498 lib/pychess/ic/ICLounge.py:2098 #, python-format msgid "%d min" msgstr "" #: lib/pychess/ic/FICSObjects.py:500 #, python-format msgid " + %d sec" msgstr "" #: lib/pychess/ic/FICSObjects.py:517 #, python-format msgid "%(player)s plays %(color)s" msgstr "" #: lib/pychess/ic/FICSObjects.py:519 lib/pychess/ic/ICLounge.py:909 msgid "white" msgstr "" #: lib/pychess/ic/FICSObjects.py:519 lib/pychess/ic/ICLounge.py:909 msgid "black" msgstr "" #: lib/pychess/ic/FICSObjects.py:565 msgid "This is a continuation of an adjourned match" msgstr "" #: lib/pychess/ic/FICSObjects.py:654 msgid "Opponent Rating" msgstr "" #: lib/pychess/ic/FICSObjects.py:656 msgid "Manual Accept" msgstr "" #: lib/pychess/ic/FICSObjects.py:810 msgid "Private" msgstr "" #: lib/pychess/ic/FICSObjects.py:930 lib/pychess/ic/ICLounge.py:527 #: lib/pychess/Savers/epd.py:139 msgid "Unknown" msgstr "Không rõ" #: lib/pychess/ic/ICLogon.py:159 lib/pychess/ic/ICLogon.py:165 msgid "Connection Error" msgstr "Lỗi kết nối" #: lib/pychess/ic/ICLogon.py:161 msgid "Log on Error" msgstr "Lỗi Đăng nhập" #: lib/pychess/ic/ICLogon.py:163 msgid "Connection was closed" msgstr "Kết nối bị dừng" #: lib/pychess/ic/ICLogon.py:169 msgid "Address Error" msgstr "" #: lib/pychess/ic/ICLogon.py:172 msgid "Auto-logout" msgstr "" #: lib/pychess/ic/ICLogon.py:173 msgid "You have been logged out because you were idle more than 60 minutes" msgstr "" #: lib/pychess/ic/ICLounge.py:222 msgid "You have to set kibitz on to see bot messages here." msgstr "" #: lib/pychess/ic/ICLounge.py:241 msgid "" "You may only have 3 outstanding seeks at the same time. If you want to add a" " new seek you must clear your currently active seeks. Clear your seeks?" msgstr "" #: lib/pychess/ic/ICLounge.py:258 msgid "You can't touch this! You are examining a game." msgstr "" #: lib/pychess/ic/ICLounge.py:270 msgid " has declined your offer for a match" msgstr "" #: lib/pychess/ic/ICLounge.py:283 msgid " is censoring you" msgstr "" #: lib/pychess/ic/ICLounge.py:296 msgid " noplay listing you" msgstr "" #: lib/pychess/ic/ICLounge.py:311 msgid " uses a formula not fitting your match request:" msgstr "" #: lib/pychess/ic/ICLounge.py:325 msgid "to manual accept" msgstr "" #: lib/pychess/ic/ICLounge.py:327 msgid "to automatic accept" msgstr "" #: lib/pychess/ic/ICLounge.py:329 msgid "rating range now" msgstr "" #: lib/pychess/ic/ICLounge.py:330 msgid "Seek updated" msgstr "" #: lib/pychess/ic/ICLounge.py:342 msgid "Your seeks have been removed" msgstr "" #: lib/pychess/ic/ICLounge.py:363 msgid " has arrived" msgstr "" #: lib/pychess/ic/ICLounge.py:370 msgid " has departed" msgstr "" #: lib/pychess/ic/ICLounge.py:374 msgid " is present" msgstr "" #: lib/pychess/ic/ICLounge.py:391 sidepanel/chatPanel.py:17 msgid "Chat" msgstr "" #: lib/pychess/ic/ICLounge.py:472 sidepanel/bookPanel.py:366 msgid "Win" msgstr "" #: lib/pychess/ic/ICLounge.py:472 sidepanel/bookPanel.py:360 msgid "Draw" msgstr "" #: lib/pychess/ic/ICLounge.py:472 sidepanel/bookPanel.py:363 msgid "Loss" msgstr "" #: lib/pychess/ic/ICLounge.py:482 msgid "" "On FICS, your \"Wild\" rating encompasses all of the following variants at " "all time controls:\n" msgstr "" #: lib/pychess/ic/ICLounge.py:494 msgid "Sanctions" msgstr "" #: lib/pychess/ic/ICLounge.py:499 msgid "Email" msgstr "thư điện tử" #: lib/pychess/ic/ICLounge.py:504 msgid "Spent" msgstr "" #: lib/pychess/ic/ICLounge.py:506 msgid "online in total" msgstr "trực tuyến trong tổng số" #: lib/pychess/ic/ICLounge.py:512 msgid "Ping" msgstr "Ping" #: lib/pychess/ic/ICLounge.py:517 msgid "Connecting" msgstr "Đang kết nối" #: lib/pychess/ic/ICLounge.py:544 msgid "" "You are currently logged in as a guest.\n" "A guest can't play rated games and therefore isn't able to play as many of the types of matches offered as a registered user. To register an account, go to http://www.freechess.org/Register/index.html." msgstr "" #: lib/pychess/ic/ICLounge.py:669 lib/pychess/ic/ICLounge.py:1136 msgid "Name" msgstr "Tên" #: lib/pychess/ic/ICLounge.py:670 lib/pychess/ic/ICLounge.py:1358 #: lib/pychess/ic/ICLounge.py:1558 msgid "Type" msgstr "Loại" #: lib/pychess/ic/ICLounge.py:670 lib/pychess/ic/ICLounge.py:1558 msgid "Clock" msgstr "Đồng hồ" #: lib/pychess/ic/ICLounge.py:726 lib/pychess/ic/ICLounge.py:923 #: lib/pychess/Players/Human.py:250 msgid "Accept" msgstr "" #: lib/pychess/ic/ICLounge.py:728 msgid "Assess" msgstr "" #: lib/pychess/ic/ICLounge.py:734 msgid "Archived" msgstr "" #: lib/pychess/ic/ICLounge.py:848 #, python-format msgid "Active seeks: %d" msgstr "" #: lib/pychess/ic/ICLounge.py:897 #, python-format msgid "" " would like to resume your adjourned %(time)s %(gametype)s " "game." msgstr "" #: lib/pychess/ic/ICLounge.py:902 #, python-format msgid "" " challenges you to a %(time)s %(rated)s %(gametype)s game" msgstr "" #: lib/pychess/ic/ICLounge.py:907 #, python-format msgid " where %(player)s plays %(color)s." msgstr "" #: lib/pychess/ic/ICLounge.py:924 lib/pychess/Players/Human.py:251 msgid "Decline" msgstr "" #: lib/pychess/ic/ICLounge.py:1065 msgid " min" msgstr "" #: lib/pychess/ic/ICLounge.py:1137 msgid "Status" msgstr "" #: lib/pychess/ic/ICLounge.py:1203 lib/pychess/ic/ICLounge.py:1233 #, python-format msgid "Players: %d" msgstr "" #: lib/pychess/ic/ICLounge.py:1469 #, python-format msgid "Games running: %d" msgstr "" #: lib/pychess/ic/ICLounge.py:1559 msgid "Date/Time" msgstr "" #: lib/pychess/ic/ICLounge.py:1614 #, python-format msgid "" " with whom you have an adjourned %(timecontrol)s %(gametype)s " "game is online." msgstr "" #: lib/pychess/ic/ICLounge.py:1635 msgid "Request Continuation" msgstr "" #: lib/pychess/ic/ICLounge.py:1637 msgid "Examine Adjourned Game" msgstr "" #: lib/pychess/ic/ICLounge.py:1965 msgid "" "The chain button is disabled because you are logged in as a guest. Guests " "can't establish ratings, and the chain button's state has no effect when " "there is no rating to which to tie \"Opponent Strength\" to" msgstr "" #: lib/pychess/ic/ICLounge.py:2006 msgid "Challenge: " msgstr "" #: lib/pychess/ic/ICLounge.py:2044 msgid "If set you can refuse players accepting your seek" msgstr "" #: lib/pychess/ic/ICLounge.py:2048 lib/pychess/ic/ICLounge.py:2051 msgid "This option is not applicable because you're challenging a player" msgstr "" #: lib/pychess/ic/ICLounge.py:2064 msgid "Edit Seek: " msgstr "" #: lib/pychess/ic/ICLounge.py:2095 #, python-format msgid "%(minutes)d min + %(gain)d sec/move" msgstr "" #: lib/pychess/ic/ICLounge.py:2116 msgid "Manual" msgstr "" #: lib/pychess/ic/ICLounge.py:2256 msgid "Any strength" msgstr "" #: lib/pychess/ic/ICLounge.py:2308 msgid "You can't play rated games because you are logged in as a guest" msgstr "" #: lib/pychess/ic/ICLounge.py:2312 msgid "You can't play rated games because \"Untimed\" is checked, " msgstr "" #: lib/pychess/ic/ICLounge.py:2313 msgid "and on FICS, untimed games can't be rated" msgstr "" #: lib/pychess/ic/ICLounge.py:2317 msgid "This option is not available because you're challenging a guest, " msgstr "" #: lib/pychess/ic/ICLounge.py:2318 msgid "and guests can't play rated games" msgstr "" #: lib/pychess/ic/ICLounge.py:2332 lib/pychess/Variants/shuffle.py:16 #: lib/pychess/widgets/newGameDialog.py:266 msgid "Shuffle" msgstr "" #: lib/pychess/ic/ICLounge.py:2333 lib/pychess/widgets/newGameDialog.py:267 msgid "Other (standard rules)" msgstr "" #: lib/pychess/ic/ICLounge.py:2334 lib/pychess/widgets/newGameDialog.py:268 msgid "Other (non standard rules)" msgstr "" #: lib/pychess/ic/ICLounge.py:2421 msgid "You can't select a variant because \"Untimed\" is checked, " msgstr "" #: lib/pychess/ic/ICLounge.py:2422 msgid "and on FICS, untimed games have to be normal chess rules" msgstr "" #: lib/pychess/ic/ICLounge.py:2454 msgid "Change Tolerance" msgstr "" #: lib/pychess/ic/__init__.py:102 msgid "Examined" msgstr "" #: lib/pychess/ic/__init__.py:103 msgid "Other" msgstr "" #: lib/pychess/ic/__init__.py:182 msgid "Administrator" msgstr "" #: lib/pychess/ic/__init__.py:182 msgid "Blindfold Account" msgstr "" #: lib/pychess/ic/__init__.py:182 msgid "Computer" msgstr "" #: lib/pychess/ic/__init__.py:183 msgid "Team Account" msgstr "" #: lib/pychess/ic/__init__.py:183 msgid "Unregistered" msgstr "" #: lib/pychess/ic/__init__.py:183 msgid "Chess Advisor" msgstr "" #: lib/pychess/ic/__init__.py:184 msgid "Service Representative" msgstr "" #: lib/pychess/ic/__init__.py:184 msgid "Tournament Director" msgstr "" #: lib/pychess/ic/__init__.py:184 msgid "Mamer Manager" msgstr "" #: lib/pychess/ic/__init__.py:185 msgid "Grand Master" msgstr "" #: lib/pychess/ic/__init__.py:185 msgid "International Master" msgstr "" #: lib/pychess/ic/__init__.py:185 msgid "FIDE Master" msgstr "" #: lib/pychess/ic/__init__.py:186 msgid "Woman Grand Master" msgstr "" #: lib/pychess/ic/__init__.py:186 msgid "Woman International Master" msgstr "" #: lib/pychess/ic/__init__.py:186 msgid "Woman FIDE Master" msgstr "" #: lib/pychess/ic/__init__.py:187 msgid "Dummy Account" msgstr "" #: lib/pychess/ic/__init__.py:191 msgid "*" msgstr "" #: lib/pychess/ic/__init__.py:191 lib/pychess/Utils/repr.py:14 msgid "B" msgstr "T" #: lib/pychess/ic/__init__.py:191 msgid "C" msgstr "" #: lib/pychess/ic/__init__.py:192 msgid "T" msgstr "" #: lib/pychess/ic/__init__.py:192 msgid "U" msgstr "" #: lib/pychess/ic/__init__.py:192 msgid "CA" msgstr "" #: lib/pychess/ic/__init__.py:193 msgid "SR" msgstr "" #: lib/pychess/ic/__init__.py:193 msgid "TD" msgstr "" #: lib/pychess/ic/__init__.py:193 msgid "TM" msgstr "" #: lib/pychess/ic/__init__.py:194 msgid "GM" msgstr "" #: lib/pychess/ic/__init__.py:194 msgid "IM" msgstr "" #: lib/pychess/ic/__init__.py:194 msgid "FM" msgstr "" #: lib/pychess/ic/__init__.py:195 msgid "WGM" msgstr "" #: lib/pychess/ic/__init__.py:195 msgid "WIM" msgstr "" #: lib/pychess/ic/__init__.py:195 msgid "WFM" msgstr "" #: lib/pychess/ic/__init__.py:195 msgid "D" msgstr "" #: lib/pychess/ic/__init__.py:195 msgid "H" msgstr "" #: lib/pychess/ic/__init__.py:195 msgid "CM" msgstr "" #: lib/pychess/ic/__init__.py:195 msgid "FA" msgstr "" #: lib/pychess/ic/__init__.py:195 msgid "NM" msgstr "" #: lib/pychess/Players/CECPEngine.py:857 #, python-format msgid "The engine %s reports an error:" msgstr "" #: lib/pychess/Players/Human.py:20 msgid "Your opponent has offered you a draw." msgstr "" #: lib/pychess/Players/Human.py:21 msgid "" "Your opponent has offered you a draw. If you accept this offer, the game " "will end with a score of 1/2 - 1/2." msgstr "" #: lib/pychess/Players/Human.py:23 msgid "Your opponent wants to abort the game." msgstr "" #: lib/pychess/Players/Human.py:24 msgid "" "Your opponent has asked that the game be aborted. If you accept this offer, " "the game will end with no rating change." msgstr "" #: lib/pychess/Players/Human.py:26 msgid "Your opponent wants to adjourn the game." msgstr "" #: lib/pychess/Players/Human.py:27 msgid "" "Your opponent has asked that the game be adjourned. If you accept this " "offer, the game will be adjourned and you can resume it later (when your " "opponent is online and both players agree to resume)." msgstr "" #: lib/pychess/Players/Human.py:29 #, python-format msgid "Your opponent wants to undo %s move(s)." msgstr "" #: lib/pychess/Players/Human.py:30 #, python-format msgid "" "Your opponent has asked that the last %s move(s) be undone. If you accept " "this offer, the game will continue from the earlier position." msgstr "" #: lib/pychess/Players/Human.py:32 msgid "Your opponent wants to pause the game." msgstr "" #: lib/pychess/Players/Human.py:33 msgid "" "Your opponent has asked that the game be paused. If you accept this offer, " "the game clock will be paused until both players agree to resume the game." msgstr "" #: lib/pychess/Players/Human.py:35 msgid "Your opponent wants to resume the game." msgstr "" #: lib/pychess/Players/Human.py:36 msgid "" "Your opponent has asked that the game be resumed. If you accept this offer, " "the game clock will continue from where it was paused." msgstr "" #: lib/pychess/Players/Human.py:40 msgid "The resignation" msgstr "" #: lib/pychess/Players/Human.py:41 msgid "The flag call" msgstr "" #: lib/pychess/Players/Human.py:42 msgid "The draw offer" msgstr "" #: lib/pychess/Players/Human.py:43 msgid "The abort offer" msgstr "" #: lib/pychess/Players/Human.py:44 msgid "The adjourn offer" msgstr "" #: lib/pychess/Players/Human.py:45 msgid "The pause offer" msgstr "" #: lib/pychess/Players/Human.py:46 msgid "The resume offer" msgstr "" #: lib/pychess/Players/Human.py:47 msgid "The offer to switch sides" msgstr "" #: lib/pychess/Players/Human.py:48 msgid "The takeback offer" msgstr "" #: lib/pychess/Players/Human.py:52 msgid "resign" msgstr "" #: lib/pychess/Players/Human.py:53 msgid "call your opponents flag" msgstr "" #: lib/pychess/Players/Human.py:54 msgid "offer a draw" msgstr "" #: lib/pychess/Players/Human.py:55 msgid "offer an abort" msgstr "" #: lib/pychess/Players/Human.py:56 msgid "offer to adjourn" msgstr "" #: lib/pychess/Players/Human.py:57 msgid "offer a pause" msgstr "" #: lib/pychess/Players/Human.py:58 msgid "offer to resume" msgstr "" #: lib/pychess/Players/Human.py:59 msgid "offer to switch sides" msgstr "" #: lib/pychess/Players/Human.py:60 msgid "offer a takeback" msgstr "" #: lib/pychess/Players/Human.py:61 msgid "ask your opponent to move" msgstr "" #: lib/pychess/Players/Human.py:66 msgid "Your opponent is not out of time." msgstr "Đối phương chưa hết giờ." #: lib/pychess/Players/Human.py:68 msgid "The clock hasn't been started yet." msgstr "" #: lib/pychess/Players/Human.py:70 msgid "You can't switch colors during the game." msgstr "" #: lib/pychess/Players/Human.py:72 msgid "You have tried to undo too many moves." msgstr "" #: lib/pychess/Players/Human.py:180 msgid "Your opponent asks you to hurry!" msgstr "Đối thủ giục bạn khẩn trương!" #: lib/pychess/Players/Human.py:181 msgid "" "Generally this means nothing, as the game is time-based, but if you want to " "please your opponent, perhaps you should get going." msgstr "" #: lib/pychess/Players/Human.py:259 #, python-format msgid "%s was declined by your opponent" msgstr "Đối phương từ chối %s" #: lib/pychess/Players/Human.py:260 #, python-format msgid "Resend %s?" msgstr "" #: lib/pychess/Players/Human.py:267 msgid "Resend" msgstr "" #: lib/pychess/Players/Human.py:275 #, python-format msgid "%s was withdrawn by your opponent" msgstr "Đối phương rút lại %s" #: lib/pychess/Players/Human.py:276 msgid "Your opponent seems to have changed their mind." msgstr "" #: lib/pychess/Players/Human.py:290 #, python-format msgid "Unable to accept %s" msgstr "" #: lib/pychess/Players/Human.py:291 msgid "Probably because it has been withdrawn." msgstr "" #: lib/pychess/Players/Human.py:298 #, python-format msgid "%s returns an error" msgstr "" #: lib/pychess/Savers/chessalpha2.py:12 msgid "Chess Alpha 2 Diagram" msgstr "" #: lib/pychess/Savers/chesspastebin.py:39 msgid "Game shared at " msgstr "" #: lib/pychess/Savers/chesspastebin.py:41 msgid "(Link is available on clipboard.)" msgstr "" #: lib/pychess/Savers/database.py:19 msgid "PyChess database" msgstr "" #: lib/pychess/Savers/epd.py:12 msgid "Chess Position" msgstr "Thế cờ" #: lib/pychess/Savers/fen.py:12 msgid "Simple Chess Position" msgstr "Thế cờ đơn giản" #: lib/pychess/Savers/fen.py:44 lib/pychess/Savers/pgn.py:329 msgid "The game can't be loaded, because of an error parsing FEN" msgstr "" #: lib/pychess/Savers/pgnbase.py:100 #, python-format msgid "" "The game can't be read to end, because of an error parsing move %(moveno)s " "'%(notation)s'." msgstr "" #: lib/pychess/Savers/pgnbase.py:102 #, python-format msgid "The move failed because %s." msgstr "" #: lib/pychess/Savers/pgnbase.py:110 #, python-format msgid "Error parsing move %(moveno)s %(mstr)s" msgstr "" #: lib/pychess/Savers/pgn.py:28 msgid "Chess Game" msgstr "Ván cờ" #: lib/pychess/Savers/pgn.py:362 msgid "Invalid move." msgstr "" #: lib/pychess/Savers/png.py:15 msgid "Png image" msgstr "" #: lib/pychess/System/ping.py:31 msgid "Destination Host Unreachable" msgstr "" #: lib/pychess/System/ping.py:74 msgid "Died" msgstr "" #: lib/pychess/Utils/GameModel.py:147 msgid "Local Event" msgstr "Giải đấu địa phương" #: lib/pychess/Utils/GameModel.py:148 msgid "Local Site" msgstr "" #: lib/pychess/Utils/repr.py:12 msgid "Pawn" msgstr "" #: lib/pychess/Utils/repr.py:14 msgid "P" msgstr "" #: lib/pychess/Utils/repr.py:14 msgid "N" msgstr "M" #: lib/pychess/Utils/repr.py:14 msgid "R" msgstr "X" #: lib/pychess/Utils/repr.py:14 msgid "Q" msgstr "H" #: lib/pychess/Utils/repr.py:14 msgid "K" msgstr "V" #: lib/pychess/Utils/repr.py:17 msgid "The game ended in a draw" msgstr "Ván cờ kết thúc hoà" #: lib/pychess/Utils/repr.py:18 #, python-format msgid "%(white)s won the game" msgstr "" #: lib/pychess/Utils/repr.py:19 #, python-format msgid "%(black)s won the game" msgstr "" #: lib/pychess/Utils/repr.py:20 msgid "The game has been killed" msgstr "" #: lib/pychess/Utils/repr.py:21 msgid "The game has been adjourned" msgstr "Ván cờ được hoãn lại" #: lib/pychess/Utils/repr.py:22 msgid "The game has been aborted" msgstr "Ván cờ đã bị huỷ bỏ" #: lib/pychess/Utils/repr.py:26 msgid "Because neither player has sufficient material to mate" msgstr "" #: lib/pychess/Utils/repr.py:27 msgid "Because the same position was repeated three times in a row" msgstr "" #: lib/pychess/Utils/repr.py:28 msgid "Because the last 50 moves brought nothing new" msgstr "" #: lib/pychess/Utils/repr.py:29 msgid "Because both players ran out of time" msgstr "" #: lib/pychess/Utils/repr.py:30 #, python-format msgid "Because %(mover)s stalemated" msgstr "" #: lib/pychess/Utils/repr.py:31 msgid "Because both players agreed to a draw" msgstr "" #: lib/pychess/Utils/repr.py:32 lib/pychess/Utils/repr.py:42 msgid "Because of adjudication by an admin" msgstr "" #: lib/pychess/Utils/repr.py:33 msgid "Because the game exceed the max length" msgstr "" #: lib/pychess/Utils/repr.py:34 #, python-format msgid "" "Because %(white)s ran out of time and %(black)s has insufficient material to" " mate" msgstr "" #: lib/pychess/Utils/repr.py:35 #, python-format msgid "" "Because %(black)s ran out of time and %(white)s has insufficient material to" " mate" msgstr "" #: lib/pychess/Utils/repr.py:36 msgid "Because both players have the same amount of pieces" msgstr "" #: lib/pychess/Utils/repr.py:38 #, python-format msgid "Because %(loser)s resigned" msgstr "" #: lib/pychess/Utils/repr.py:39 #, python-format msgid "Because %(loser)s ran out of time" msgstr "" #: lib/pychess/Utils/repr.py:40 #, python-format msgid "Because %(loser)s was checkmated" msgstr "" #: lib/pychess/Utils/repr.py:41 #, python-format msgid "Because %(loser)s disconnected" msgstr "" #: lib/pychess/Utils/repr.py:43 #, python-format msgid "Because %(winner)s has fewer pieces" msgstr "" #: lib/pychess/Utils/repr.py:44 #, python-format msgid "Because %(winner)s lost all pieces" msgstr "" #: lib/pychess/Utils/repr.py:45 #, python-format msgid "Because %(loser)s king exploded" msgstr "" #: lib/pychess/Utils/repr.py:46 #, python-format msgid "Because %(winner)s king reached the center" msgstr "" #: lib/pychess/Utils/repr.py:47 #, python-format msgid "Because %(winner)s was giving check 3 times" msgstr "" #: lib/pychess/Utils/repr.py:49 msgid "Because a player lost connection" msgstr "" #: lib/pychess/Utils/repr.py:50 msgid "Because both players agreed to an adjournment" msgstr "" #: lib/pychess/Utils/repr.py:51 msgid "Because the server was shut down" msgstr "" #: lib/pychess/Utils/repr.py:52 msgid "" "Because a player lost connection and the other player requested adjournment" msgstr "" #: lib/pychess/Utils/repr.py:53 #, python-format msgid "" "Because %(black)s lost connection to the server and %(white)s requested " "adjournment" msgstr "" #: lib/pychess/Utils/repr.py:54 #, python-format msgid "" "Because %(white)s lost connection to the server and %(black)s requested " "adjournment" msgstr "" #: lib/pychess/Utils/repr.py:55 #, python-format msgid "Because %(white)s lost connection to the server" msgstr "" #: lib/pychess/Utils/repr.py:56 #, python-format msgid "Because %(black)s lost connection to the server" msgstr "" #: lib/pychess/Utils/repr.py:58 msgid "Because of adjudication by an admin. No rating changes have occurred." msgstr "" #: lib/pychess/Utils/repr.py:59 msgid "" "Because both players agreed to abort the game. No rating changes have " "occurred." msgstr "" #: lib/pychess/Utils/repr.py:60 msgid "Because of courtesy by a player. No rating changes have occurred." msgstr "" #: lib/pychess/Utils/repr.py:61 msgid "" "Because a player aborted the game. Either player can abort the game without " "the other's consent before the second move. No rating changes have occurred." msgstr "" #: lib/pychess/Utils/repr.py:62 msgid "" "Because a player disconnected and there are too few moves to warrant " "adjournment. No rating changes have occurred." msgstr "" #: lib/pychess/Utils/repr.py:63 msgid "Because the server was shut down. No rating changes have occurred." msgstr "" #: lib/pychess/Utils/repr.py:65 #, python-format msgid "Because the %(white)s engine died" msgstr "" #: lib/pychess/Utils/repr.py:66 #, python-format msgid "Because the %(black)s engine died" msgstr "" #: lib/pychess/Utils/repr.py:67 msgid "Because the connection to the server was lost" msgstr "" #: lib/pychess/Utils/repr.py:68 msgid "The reason is unknown" msgstr "" #: lib/pychess/Utils/TimeModel.py:229 msgid "min" msgstr "" #: lib/pychess/Utils/TimeModel.py:231 msgid "sec" msgstr "" #: lib/pychess/Variants/asean.py:12 msgid "" "ASEAN: http://www.ncf-" "phil.org/downloadables/2014/May/Asean_chess/Laws_of_ASEAN_Chess_2011_Nov_26.doc" msgstr "" #: lib/pychess/Variants/asean.py:13 msgid "ASEAN" msgstr "" #: lib/pychess/Variants/asean.py:33 msgid "Makruk: http://en.wikipedia.org/wiki/Makruk" msgstr "" #: lib/pychess/Variants/asean.py:34 msgid "Makruk" msgstr "" #: lib/pychess/Variants/asean.py:60 msgid "Cambodian: http://www.khmerinstitute.org/culture/ok.html" msgstr "" #: lib/pychess/Variants/asean.py:61 msgid "Cambodian" msgstr "" #: lib/pychess/Variants/asean.py:86 msgid "" "Ai-Wok: http://www.open-" "aurec.com/wbforum/viewtopic.php?p=199364&sid=20963a1de2c164050de019e5ed6bf7c4#p199364" msgstr "" #: lib/pychess/Variants/asean.py:87 msgid "Ai-Wok" msgstr "" #: lib/pychess/Variants/asean.py:111 msgid "Sittuyin: http://en.wikipedia.org/wiki/Sittuyin" msgstr "" #: lib/pychess/Variants/asean.py:112 msgid "Sittuyin" msgstr "" #: lib/pychess/Variants/asymmetricrandom.py:12 msgid "" "FICS wild/4: http://www.freechess.org/Help/HelpFiles/wild.html\n" "* Randomly chosen pieces (two queens or three rooks possible)\n" "* Exactly one king of each color\n" "* Pieces placed randomly behind the pawns, SUBJECT TO THE CONSTRAINT THAT THE BISHOPS ARE BALANCED\n" "* No castling\n" "* Black's arrangement DOES NOT mirrors white's" msgstr "" #: lib/pychess/Variants/asymmetricrandom.py:18 msgid "Asymmetric Random" msgstr "" #: lib/pychess/Variants/atomic.py:14 msgid "FICS atomic: http://www.freechess.org/Help/HelpFiles/atomic.html" msgstr "" #: lib/pychess/Variants/blindfold.py:7 msgid "" "Classic chess rules with hidden figurines\n" "http://en.wikipedia.org/wiki/Blindfold_chess" msgstr "" #: lib/pychess/Variants/blindfold.py:9 #: lib/pychess/widgets/newGameDialog.py:264 msgid "Blindfold" msgstr "" #: lib/pychess/Variants/blindfold.py:18 msgid "" "Classic chess rules with hidden pawns\n" "http://en.wikipedia.org/wiki/Blindfold_chess" msgstr "" #: lib/pychess/Variants/blindfold.py:20 msgid "Hidden pawns" msgstr "" #: lib/pychess/Variants/blindfold.py:29 msgid "" "Classic chess rules with hidden pieces\n" "http://en.wikipedia.org/wiki/Blindfold_chess" msgstr "" #: lib/pychess/Variants/blindfold.py:31 msgid "Hidden pieces" msgstr "" #: lib/pychess/Variants/blindfold.py:40 msgid "" "Classic chess rules with all pieces white\n" "http://en.wikipedia.org/wiki/Blindfold_chess" msgstr "" #: lib/pychess/Variants/blindfold.py:42 msgid "All white" msgstr "" #: lib/pychess/Variants/bughouse.py:8 msgid "FICS bughouse: http://www.freechess.org/Help/HelpFiles/bughouse.html" msgstr "" #: lib/pychess/Variants/corner.py:12 msgid "" "http://brainking.com/en/GameRules?tp=2\n" "* Placement of the pieces on the 1st and 8th row are randomized\n" "* The king is in the right hand corner\n" "* Bishops must start on opposite color squares\n" "* Black's starting position is obtained by rotating white's position 180 degrees around the board's center\n" "* No castling" msgstr "" #: lib/pychess/Variants/corner.py:18 msgid "Corner" msgstr "" #: lib/pychess/Variants/crazyhouse.py:8 msgid "" "FICS crazyhouse: http://www.freechess.org/Help/HelpFiles/crazyhouse.html" msgstr "" #: lib/pychess/Variants/euroshogi.py:9 msgid "EuroShogi: http://en.wikipedia.org/wiki/EuroShogi" msgstr "" #: lib/pychess/Variants/euroshogi.py:10 msgid "EuroShogi" msgstr "" #: lib/pychess/Variants/fischerandom.py:18 msgid "" "http://en.wikipedia.org/wiki/Chess960\n" "FICS wild/fr: http://www.freechess.org/Help/HelpFiles/wild.html" msgstr "" #: lib/pychess/Variants/fischerandom.py:20 msgid "Fischer Random" msgstr "" #: lib/pychess/Variants/kingofthehill.py:8 msgid "" "Bringing your king legally to the center (e4, d4, e5, d5) instantly wins the game!\n" "Normal rules apply in other cases and checkmate also ends the game." msgstr "" #: lib/pychess/Variants/kingofthehill.py:10 msgid "King of the hill" msgstr "" #: lib/pychess/Variants/knightodds.py:8 msgid "One player starts with one less knight piece" msgstr "" #: lib/pychess/Variants/knightodds.py:9 msgid "Knight odds" msgstr "" #: lib/pychess/Variants/losers.py:8 msgid "FICS losers: http://www.freechess.org/Help/HelpFiles/losers_chess.html" msgstr "" #: lib/pychess/Variants/normal.py:4 msgid "" "Classic chess rules\n" "http://en.wikipedia.org/wiki/Chess" msgstr "" #: lib/pychess/Variants/normal.py:6 lib/pychess/widgets/newGameDialog.py:157 msgid "Normal" msgstr "Trung bình" #: lib/pychess/Variants/pawnodds.py:8 msgid "One player starts with one less pawn piece" msgstr "" #: lib/pychess/Variants/pawnodds.py:9 msgid "Pawn odds" msgstr "" #: lib/pychess/Variants/pawnspassed.py:11 msgid "" "FICS wild/8a: http://www.freechess.org/Help/HelpFiles/wild.html\n" "White pawns start on 5th rank and black pawns on the 4th rank" msgstr "" #: lib/pychess/Variants/pawnspassed.py:13 msgid "Pawns Passed" msgstr "" #: lib/pychess/Variants/pawnspushed.py:10 msgid "" "FICS wild/8: http://www.freechess.org/Help/HelpFiles/wild.html\n" "Pawns start on 4th and 5th ranks rather than 2nd and 7th" msgstr "" #: lib/pychess/Variants/pawnspushed.py:12 msgid "Pawns Pushed" msgstr "" #: lib/pychess/Variants/queenodds.py:8 msgid "One player starts with one less queen piece" msgstr "" #: lib/pychess/Variants/queenodds.py:9 msgid "Queen odds" msgstr "" #: lib/pychess/Variants/randomchess.py:11 msgid "" "FICS wild/3: http://www.freechess.org/Help/HelpFiles/wild.html\n" "* Randomly chosen pieces (two queens or three rooks possible)\n" "* Exactly one king of each color\n" "* Pieces placed randomly behind the pawns\n" "* No castling\n" "* Black's arrangement mirrors white's" msgstr "" #: lib/pychess/Variants/randomchess.py:17 #: lib/pychess/widgets/TaskerManager.py:155 msgid "Random" msgstr "" #: lib/pychess/Variants/rookodds.py:8 msgid "One player starts with one less rook piece" msgstr "" #: lib/pychess/Variants/rookodds.py:9 msgid "Rook odds" msgstr "" #: lib/pychess/Variants/shuffle.py:11 msgid "" "xboard nocastle: http://home.hccnet.nl/h.g.muller/engine-intf.html#8\n" "FICS wild/2: http://www.freechess.org/Help/HelpFiles/wild.html\n" "* Random arrangement of the pieces behind the pawns\n" "* No castling\n" "* Black's arrangement mirrors white's" msgstr "" #: lib/pychess/Variants/suicide.py:11 msgid "" "FICS suicide: http://www.freechess.org/Help/HelpFiles/suicide_chess.html" msgstr "" #: lib/pychess/Variants/theban.py:10 msgid "" "Variant developed by Kai Laskos: " "http://talkchess.com/forum/viewtopic.php?t=40990" msgstr "" #: lib/pychess/Variants/theban.py:11 msgid "Theban" msgstr "" #: lib/pychess/Variants/threecheck.py:10 msgid "Win by giving check 3 times" msgstr "" #: lib/pychess/Variants/threecheck.py:11 msgid "Three-check" msgstr "" #: lib/pychess/Variants/upsidedown.py:10 msgid "" "FICS wild/5: http://www.freechess.org/Help/HelpFiles/wild.html\n" "http://en.wikipedia.org/wiki/Chess_variant#Chess_with_different_starting_positions\n" "Pawns start on their 7th rank rather than their 2nd rank!" msgstr "" #: lib/pychess/Variants/upsidedown.py:13 msgid "Upside Down" msgstr "" #: lib/pychess/Variants/wildcastle.py:10 msgid "" "xboard wildcastle http://home.hccnet.nl/h.g.muller/engine-intf.html#8\n" "FICS wild/0: http://www.freechess.org/Help/HelpFiles/wild.html\n" "* White has the typical set-up at the start.\n" "* Black's pieces are the same, except that the King and Queen are reversed,\n" "* so they are not on the same files as White's King and Queen.\n" "* Castling is done similarly to normal chess:\n" "* o-o-o indicates long castling and o-o short castling." msgstr "" #: lib/pychess/Variants/wildcastle.py:17 msgid "Wildcastle" msgstr "" #: lib/pychess/Variants/wildcastleshuffle.py:11 msgid "" "xboard wildcastle http://home.hccnet.nl/h.g.muller/engine-intf.html#8\n" "FICS wild/1: http://www.freechess.org/Help/HelpFiles/wild.html\n" "* In this variant both sides have the same set of pieces as in normal chess.\n" "* The white king starts on d1 or e1 and the black king starts on d8 or e8,\n" "* and the rooks are in their usual positions.\n" "* Bishops are always on opposite colors.\n" "* Subject to these constraints the position of the pieces on their first ranks is random.\n" "* Castling is done similarly to normal chess:\n" "* o-o-o indicates long castling and o-o short castling." msgstr "" #: lib/pychess/Variants/wildcastleshuffle.py:20 msgid "Wildcastle shuffle" msgstr "" #: lib/pychess/widgets/analyzegameDialog.py:85 msgid "Game analyzing in progress..." msgstr "" #: lib/pychess/widgets/analyzegameDialog.py:86 msgid "Do you want to abort it?" msgstr "" #: lib/pychess/widgets/analyzegameDialog.py:95 #: lib/pychess/widgets/gamewidget.py:202 lib/pychess/widgets/gamewidget.py:320 msgid "Abort" msgstr "" #: lib/pychess/widgets/ChatView.py:125 msgid "Observers" msgstr "" #: lib/pychess/widgets/ChatWindow.py:222 msgid "You have opened no conversations yet" msgstr "" #: lib/pychess/widgets/ChatWindow.py:254 msgid "Only registered users may talk to this channel" msgstr "" #: lib/pychess/widgets/ChatWindow.py:312 msgid "No conversation's selected" msgstr "" #: lib/pychess/widgets/ChatWindow.py:350 msgid "Loading player data" msgstr "" #: lib/pychess/widgets/ChatWindow.py:400 msgid "Receiving list of players" msgstr "" #: lib/pychess/widgets/ChatWindow.py:518 msgid "Friends" msgstr "" #: lib/pychess/widgets/ChatWindow.py:529 msgid "Admin" msgstr "" #: lib/pychess/widgets/ChatWindow.py:540 msgid "More channels" msgstr "" #: lib/pychess/widgets/ChatWindow.py:548 msgid "More players" msgstr "" #: lib/pychess/widgets/ChatWindow.py:558 msgid "Computers" msgstr "" #: lib/pychess/widgets/ChatWindow.py:568 msgid "BlindFold" msgstr "" #: lib/pychess/widgets/ChatWindow.py:578 msgid "Guests" msgstr "" #: lib/pychess/widgets/ChatWindow.py:805 msgid "Conversations" msgstr "" #: lib/pychess/widgets/ChatWindow.py:807 msgid "Conversation info" msgstr "" #: lib/pychess/widgets/enginesDialog.py:152 msgid "Select engine" msgstr "" #: lib/pychess/widgets/enginesDialog.py:156 msgid "Executable files" msgstr "" #: lib/pychess/widgets/enginesDialog.py:176 #: lib/pychess/widgets/enginesDialog.py:210 #: lib/pychess/widgets/enginesDialog.py:235 #, python-format msgid "Unable to add %s" msgstr "" #: lib/pychess/widgets/enginesDialog.py:177 msgid "wine not installed" msgstr "" #: lib/pychess/widgets/enginesDialog.py:211 #: lib/pychess/widgets/enginesDialog.py:236 msgid "There is something wrong with this executable" msgstr "" #: lib/pychess/widgets/enginesDialog.py:266 msgid "Select working directory" msgstr "" #: lib/pychess/widgets/gamenanny.py:115 #, python-format msgid " invalid engine move: %s" msgstr "" #: lib/pychess/widgets/gamenanny.py:134 msgid "Offer Rematch" msgstr "" #: lib/pychess/widgets/gamenanny.py:136 lib/pychess/widgets/gamenanny.py:147 #, python-format msgid "Observe %s" msgstr "" #: lib/pychess/widgets/gamenanny.py:168 msgid "Play Rematch" msgstr "" #: lib/pychess/widgets/gamenanny.py:171 msgid "Undo one move" msgstr "" #: lib/pychess/widgets/gamenanny.py:173 msgid "Undo two moves" msgstr "" #: lib/pychess/widgets/gamenanny.py:203 msgid "The game is paused" msgstr "" #: lib/pychess/widgets/gamenanny.py:221 lib/pychess/widgets/gamenanny.py:222 msgid "Loaded game" msgstr "Ván đã được bày lại" #: lib/pychess/widgets/gamenanny.py:228 msgid "Saved game" msgstr "Ván đã được lưu" #: lib/pychess/widgets/gamenanny.py:232 msgid "Analyzer started" msgstr "" #: lib/pychess/widgets/gamenanny.py:281 msgid "You sent an abort offer" msgstr "" #: lib/pychess/widgets/gamenanny.py:283 msgid "You sent an adjournment offer" msgstr "" #: lib/pychess/widgets/gamenanny.py:285 msgid "You sent a draw offer" msgstr "Bạn đã gửi lời đề nghị hoà" #: lib/pychess/widgets/gamenanny.py:287 msgid "You sent a pause offer" msgstr "" #: lib/pychess/widgets/gamenanny.py:289 msgid "You sent a resume offer" msgstr "" #: lib/pychess/widgets/gamenanny.py:291 msgid "You sent an undo offer" msgstr "" #: lib/pychess/widgets/gamenanny.py:293 msgid "You asked your opponent to move" msgstr "" #: lib/pychess/widgets/gamenanny.py:305 #, python-format msgid "Engine, %s, has died" msgstr "Máy, %s, đã dừng hoạt động" #: lib/pychess/widgets/gamenanny.py:306 msgid "" "PyChess has lost connection to the engine, probably because it has died.\n" "\n" "You can try to start a new game with the engine, or try to play against another one." msgstr "PyChess đã mất kết nối đến máy, có thể vì máy đã dừng hoạt động.\n\nBạn có thể thử chơi một ván mới cùng máy, hoặc với một người khác." #: lib/pychess/widgets/gamewidget.py:204 msgid "" "This game can be automatically aborted without rating loss because there has" " not yet been two moves made" msgstr "" #: lib/pychess/widgets/gamewidget.py:206 msgid "Offer Abort" msgstr "" #: lib/pychess/widgets/gamewidget.py:208 msgid "" "Your opponent must agree to abort the game because there has been two or " "more moves made" msgstr "" #: lib/pychess/widgets/gamewidget.py:226 msgid "This game can not be adjourned because one or both players are guests" msgstr "" #: lib/pychess/widgets/gamewidget.py:243 msgid "Claim Draw" msgstr "" #: lib/pychess/widgets/gamewidget.py:325 msgid "Pause" msgstr "" #: lib/pychess/widgets/gamewidget.py:326 msgid "Resume" msgstr "" #: lib/pychess/widgets/gamewidget.py:328 msgid "Offer Pause" msgstr "" #: lib/pychess/widgets/gamewidget.py:329 msgid "Offer Resume" msgstr "" #: lib/pychess/widgets/gamewidget.py:333 msgid "Undo" msgstr "" #: lib/pychess/widgets/gamewidget.py:335 msgid "Offer Undo" msgstr "" #: lib/pychess/widgets/gamewidget.py:550 msgid " has lagged for 30 seconds" msgstr "" #: lib/pychess/widgets/gamewidget.py:566 msgid " is lagging heavily but hasn't disconnected" msgstr "" #: lib/pychess/widgets/gamewidget.py:567 msgid "Continue to wait for opponent, or try to adjourn the game?" msgstr "" #: lib/pychess/widgets/gamewidget.py:575 msgid "Wait" msgstr "" #: lib/pychess/widgets/gamewidget.py:576 msgid "Adjourn" msgstr "" #: lib/pychess/widgets/gamewidget.py:648 msgid "Jump to initial position" msgstr "" #: lib/pychess/widgets/gamewidget.py:653 msgid "Step back one move" msgstr "" #: lib/pychess/widgets/gamewidget.py:658 msgid "Go back to the main line" msgstr "" #: lib/pychess/widgets/gamewidget.py:664 msgid "Step forward one move" msgstr "" #: lib/pychess/widgets/gamewidget.py:669 msgid "Jump to latest position" msgstr "" #: lib/pychess/widgets/gamewidget.py:903 msgid "PyChess was unable to load your panel settings" msgstr "" #: lib/pychess/widgets/gamewidget.py:904 msgid "" "Your panel settings have been reset. If this problem repeats, you should " "report it to the developers" msgstr "" #: lib/pychess/widgets/ionest.py:67 lib/pychess/widgets/newGameDialog.py:389 #: lib/pychess/widgets/TaskerManager.py:210 msgid "You" msgstr "" #: lib/pychess/widgets/ionest.py:70 lib/pychess/widgets/newGameDialog.py:390 #: lib/pychess/widgets/preferencesDialog.py:61 #: lib/pychess/widgets/TaskerManager.py:213 msgid "Guest" msgstr "Khách" #: lib/pychess/widgets/ionest.py:93 msgid "Error loading game" msgstr "" #: lib/pychess/widgets/ionest.py:127 lib/pychess/widgets/newGameDialog.py:480 msgid "Open Game" msgstr "Ván đấu mở" #: lib/pychess/widgets/ionest.py:137 msgid "All Files" msgstr "Tất cả các tập tin" #: lib/pychess/widgets/ionest.py:140 msgid "Detect type automatically" msgstr "Tự động phát hiện kiểu" #: lib/pychess/widgets/ionest.py:146 msgid "All Chess Files" msgstr "Tất cả các tập tin cờ vua" #: lib/pychess/widgets/ionest.py:228 msgid "Save Game" msgstr "Lưu lại ván đấu" #: lib/pychess/widgets/ionest.py:228 msgid "Export position" msgstr "" #: lib/pychess/widgets/ionest.py:232 lib/pychess/widgets/ionest.py:360 msgid "vs." msgstr "" #: lib/pychess/widgets/ionest.py:249 #, python-format msgid "Unknown file type '%s'" msgstr "Không rõ kiểu tập tin '%s'" #: lib/pychess/widgets/ionest.py:250 #, python-format msgid "" "Was unable to save '%(uri)s' as PyChess doesn't know the format " "'%(ending)s'." msgstr "" #: lib/pychess/widgets/ionest.py:266 #, python-format msgid "Unable to save file '%s'" msgstr "" #: lib/pychess/widgets/ionest.py:268 msgid "" "You don't have the necessary rights to save the file.\n" "Please ensure that you have given the right path and try again." msgstr "" #: lib/pychess/widgets/ionest.py:276 msgid "_Replace" msgstr "_Thay thế" #: lib/pychess/widgets/ionest.py:280 msgid "File exists" msgstr "Tập tin đã tồn tại" #: lib/pychess/widgets/ionest.py:282 #, python-format msgid "" "A file named '%s' already exists. Would you like to replace " "it?" msgstr "Một tập tin có tên '%s' đã tồn tại. Bạn có muốn thay thế nó không?" #: lib/pychess/widgets/ionest.py:283 #, python-format msgid "" "The file already exists in '%s'. If you replace it, its content will be " "overwritten." msgstr "Tập tin đã tồn tại ở '%s'. Nếu bạn chọn thay thế, nội dung của nó sẽ bị ghi đè." #: lib/pychess/widgets/ionest.py:299 msgid "Could not save the file" msgstr "Không thể lưu tập tin" #: lib/pychess/widgets/ionest.py:300 msgid "PyChess was not able to save the game" msgstr "PyChess không thể lưu tập tin" #: lib/pychess/widgets/ionest.py:301 #, python-format msgid "The error was: %s" msgstr "Lỗi là: %s" #: lib/pychess/widgets/ionest.py:325 #, python-format msgid "There is %d game with unsaved moves." msgid_plural "There are %d games with unsaved moves." msgstr[0] "" #: lib/pychess/widgets/ionest.py:328 msgid "Save moves before closing?" msgstr "" #: lib/pychess/widgets/ionest.py:339 msgid "Unable to save to configured file. Save the games before closing?" msgstr "" #: lib/pychess/widgets/ionest.py:366 #, python-format msgid "_Save %d document" msgid_plural "_Save %d documents" msgstr[0] "" #: lib/pychess/widgets/ionest.py:412 msgid "Save the current game before you close it?" msgstr "" #: lib/pychess/widgets/ionest.py:420 msgid "" "Unable to save to configured file. Save the current game before you close " "it?" msgstr "" #: lib/pychess/widgets/ionest.py:434 msgid "" "It is not possible later to continue the game,\n" "if you don't save it." msgstr "Sau này bạn sẽ không thể tiếp tục ván cờ,\nnếu bây giờ bạn không lưu nó lại." #: lib/pychess/widgets/LogDialog.py:26 msgid "PyChess Information Window" msgstr "" #: lib/pychess/widgets/LogDialog.py:184 lib/pychess/widgets/LogDialog.py:188 msgid "of" msgstr "" #: lib/pychess/widgets/newGameDialog.py:84 #: lib/pychess/widgets/newGameDialog.py:85 msgid "Human Being" msgstr "Người" #: lib/pychess/widgets/newGameDialog.py:155 msgid "Rapid" msgstr "" #: lib/pychess/widgets/newGameDialog.py:224 msgid "Minutes:" msgstr "Phút:" #: lib/pychess/widgets/newGameDialog.py:228 msgid "Gain:" msgstr "Bù thời gian:" #: lib/pychess/widgets/newGameDialog.py:241 #, python-format msgid "%(name)s %(minutes)d min + %(gain)d sec/move" msgstr "" #: lib/pychess/widgets/newGameDialog.py:244 #, python-format msgid "%(name)s %(minutes)d min %(gain)d sec/move" msgstr "" #: lib/pychess/widgets/newGameDialog.py:247 #, python-format msgid "%(name)s %(minutes)d min" msgstr "" #: lib/pychess/widgets/newGameDialog.py:265 msgid "Odds" msgstr "" #: lib/pychess/widgets/newGameDialog.py:269 msgid "Asian variants" msgstr "" #: lib/pychess/widgets/newGameDialog.py:301 msgid " chess" msgstr "" #: lib/pychess/widgets/newGameDialog.py:682 msgid "Type or paste PGN game or FEN positions here" msgstr "" #: lib/pychess/widgets/newGameDialog.py:725 msgid "Enter Game" msgstr "Chơi" #: lib/pychess/widgets/preferencesDialog.py:123 msgid "Select book file" msgstr "" #: lib/pychess/widgets/preferencesDialog.py:128 msgid "Opening books" msgstr "" #: lib/pychess/widgets/preferencesDialog.py:156 msgid "Select Gaviota TB path" msgstr "" #: lib/pychess/widgets/preferencesDialog.py:331 msgid "Open Sound File" msgstr "Mở tập tin âm thanh" #: lib/pychess/widgets/preferencesDialog.py:341 msgid "Sound files" msgstr "" #: lib/pychess/widgets/preferencesDialog.py:485 msgid "Undescribed panel" msgstr "" #: lib/pychess/widgets/preferencesDialog.py:678 msgid "Select auto save path" msgstr "" #: lib/pychess/widgets/tipOfTheDay.py:51 msgid "" "You can start a new game by Game > New Game, in New Game " "window do you can choose Players, Time Control and Chess " "Variants." msgstr "" #: lib/pychess/widgets/tipOfTheDay.py:52 msgid "" "You can choose from 20 different difficulties to play against the computer." msgstr "" #: lib/pychess/widgets/tipOfTheDay.py:53 msgid "" "Chess Variants are like the pieces of the last line will be placed on the " "board." msgstr "" #: lib/pychess/widgets/tipOfTheDay.py:54 msgid "" "To save a game Game > Save Game As, give the filename and " "choose where you want to be saved. At the bottom choose extension type of " "the file, and Save." msgstr "" #: lib/pychess/widgets/tipOfTheDay.py:55 msgid "" "Do you know that you can call flag when the clock is with you, " "Actions > Call Flag." msgstr "" #: lib/pychess/widgets/tipOfTheDay.py:56 msgid "Pressing Ctrl+Z to offer opponent the possible rollback moves." msgstr "" #: lib/pychess/widgets/tipOfTheDay.py:57 msgid "" "To play on Fullscreen mode, just type F11. Coming back, F11 " "again." msgstr "" #: lib/pychess/widgets/tipOfTheDay.py:58 msgid "Hint mode analyzing your game, enable this type Ctrl+H." msgstr "" #: lib/pychess/widgets/tipOfTheDay.py:59 msgid "" "Spy mode analyzing the oponnent game, enable this type Ctrl+Y." msgstr "" #: lib/pychess/widgets/tipOfTheDay.py:60 msgid "" "You can play chess listening to the sounds of the game, for that, " "Settings > Preferences > Sound tab, enable Use " "sounds in PyChess and choose your preferred sounds." msgstr "" #: lib/pychess/widgets/tipOfTheDay.py:61 msgid "" "Do you know that you can help translate Pychess in your language, " "Help > Translate Pychess." msgstr "" #: lib/pychess/widgets/tipOfTheDay.py:62 msgid "" "Do you know that it is possible to finish a chess game in just 2 turns?" msgstr "" #: lib/pychess/widgets/tipOfTheDay.py:63 msgid "" "Do you know that the number of possible chess games exceeds the number of " "atoms in the Universe?" msgstr "" #: lib/pychess/ic/managers/ChatManager.py:184 msgid "Shout" msgstr "" #: lib/pychess/ic/managers/ChatManager.py:185 msgid "Chess Shout" msgstr "" #: lib/pychess/ic/managers/ChatManager.py:195 #, python-format msgid "Unofficial channel %d" msgstr "" #: lib/pychess/Utils/lutils/LBoard.py:152 #, python-format msgid "" "FEN needs 6 data fields. \n" "\n" "%s" msgstr "" #: lib/pychess/Utils/lutils/LBoard.py:154 #, python-format msgid "" "FEN needs at least 2 data fields in fenstr. \n" "\n" "%s" msgstr "" #: lib/pychess/Utils/lutils/LBoard.py:175 #, python-format msgid "" "Needs 7 slashes in piece placement field. \n" "\n" "%s" msgstr "" #: lib/pychess/Utils/lutils/LBoard.py:178 #, python-format msgid "" "Active color field must be one of w or b. \n" "\n" "%s" msgstr "" #: lib/pychess/Utils/lutils/LBoard.py:189 #, python-format msgid "" "Castling availability field is not legal. \n" "\n" "%s" msgstr "" #: lib/pychess/Utils/lutils/LBoard.py:192 #, python-format msgid "" "En passant cord is not legal. \n" "\n" "%s" msgstr "" #: lib/pychess/Utils/lutils/lmove.py:260 msgid "invalid promoted piece" msgstr "" #: lib/pychess/Utils/lutils/lmove.py:272 msgid "the move needs a piece and a cord" msgstr "" #: lib/pychess/Utils/lutils/lmove.py:306 lib/pychess/Utils/lutils/lmove.py:556 msgid "promotion move without promoted piece is incorrect" msgstr "" #: lib/pychess/Utils/lutils/lmove.py:312 #, python-format msgid "the captured cord (%s) is incorrect" msgstr "" #: lib/pychess/Utils/lutils/lmove.py:323 #, python-format msgid "the end cord (%s) is incorrect" msgstr "" #: lib/pychess/Utils/lutils/strateval.py:24 sidepanel/commentPanel.py:191 #: sidepanel/commentPanel.py:208 msgid "and" msgstr "" #: lib/pychess/Utils/lutils/strateval.py:43 msgid "draws" msgstr "hòa" #: lib/pychess/Utils/lutils/strateval.py:45 msgid "mates" msgstr "chiếu hết" #: lib/pychess/Utils/lutils/strateval.py:49 msgid "puts opponent in check" msgstr "chiếu Vua đối phương" #: lib/pychess/Utils/lutils/strateval.py:73 msgid "improves king safety" msgstr "tăng cường an toàn cho Vua" #: lib/pychess/Utils/lutils/strateval.py:75 msgid "slightly improves king safety" msgstr "phần nào tăng cường sự an toàn cho Vua" #: lib/pychess/Utils/lutils/strateval.py:108 msgid "moves a rook to an open file" msgstr "di chuyển quân Xe đến cột mở" #: lib/pychess/Utils/lutils/strateval.py:109 msgid "moves an rook to a half-open file" msgstr "di chuyển quân Xe đến cột nửa mở" #: lib/pychess/Utils/lutils/strateval.py:119 #: lib/pychess/Utils/lutils/strateval.py:121 #: lib/pychess/Utils/lutils/strateval.py:124 #: lib/pychess/Utils/lutils/strateval.py:126 #, python-format msgid "moves bishop into fianchetto: %s" msgstr "lên Tượng nách: %s" #: lib/pychess/Utils/lutils/strateval.py:132 #, python-format msgid "promotes a Pawn to a %s" msgstr "phong cấp Tốt thành quân %s" #: lib/pychess/Utils/lutils/strateval.py:135 msgid "castles" msgstr "nhập thành" #: lib/pychess/Utils/lutils/strateval.py:158 msgid "takes back material" msgstr "gỡ lại quân" #: lib/pychess/Utils/lutils/strateval.py:162 #: lib/pychess/Utils/lutils/strateval.py:170 msgid "sacrifies material" msgstr "thí quân" #: lib/pychess/Utils/lutils/strateval.py:164 msgid "exchanges material" msgstr "" #: lib/pychess/Utils/lutils/strateval.py:166 msgid "captures material" msgstr "đổi quân" #: lib/pychess/Utils/lutils/strateval.py:291 #, python-format msgid "rescues a %s" msgstr "" #: lib/pychess/Utils/lutils/strateval.py:294 #, python-format msgid "threatens to win material by %s" msgstr "" #: lib/pychess/Utils/lutils/strateval.py:296 #, python-format msgid "increases the pressure on %s" msgstr "tăng cường áp lực lên %s" #: lib/pychess/Utils/lutils/strateval.py:298 #, python-format msgid "defends %s" msgstr "bảo vệ %s" #: lib/pychess/Utils/lutils/strateval.py:336 #, python-format msgid "pins an enemy %(oppiece)s on the %(piece)s at %(cord)s" msgstr "" #: lib/pychess/Utils/lutils/strateval.py:369 #, python-format msgid "White has a new piece in outpost: %s" msgstr "" #: lib/pychess/Utils/lutils/strateval.py:377 #, python-format msgid "Black has a new piece in outpost: %s" msgstr "" #: lib/pychess/Utils/lutils/strateval.py:416 #, python-format msgid "%(color)s has a new passed pawn on %(cord)s" msgstr "" #: lib/pychess/Utils/lutils/strateval.py:470 msgid "half-open" msgstr "" #: lib/pychess/Utils/lutils/strateval.py:472 #, python-format msgid "in the %(x)s%(y)s file" msgstr "" #: lib/pychess/Utils/lutils/strateval.py:474 #, python-format msgid "in the %(x)s%(y)s files" msgstr "" #: lib/pychess/Utils/lutils/strateval.py:477 #, python-format msgid "%(color)s got a double pawn %(place)s" msgstr "" #: lib/pychess/Utils/lutils/strateval.py:478 #, python-format msgid "%(color)s got new double pawns %(place)s" msgstr "" #: lib/pychess/Utils/lutils/strateval.py:485 #, python-format msgid "%(color)s got an isolated pawn in the %(x)s file" msgid_plural "%(color)s got isolated pawns in the %(x)s files" msgstr[0] "" #: lib/pychess/Utils/lutils/strateval.py:492 #, python-format msgid "%s moves pawns into stonewall formation" msgstr "" #: lib/pychess/Utils/lutils/strateval.py:507 #: lib/pychess/Utils/lutils/strateval.py:514 #, python-format msgid "%s can no longer castle" msgstr "" #: lib/pychess/Utils/lutils/strateval.py:508 #: lib/pychess/Utils/lutils/strateval.py:515 #, python-format msgid "%s can no longer castle in queenside" msgstr "" #: lib/pychess/Utils/lutils/strateval.py:510 #: lib/pychess/Utils/lutils/strateval.py:517 #, python-format msgid "%s can no longer castle in kingside" msgstr "" #: lib/pychess/Utils/lutils/strateval.py:551 #, python-format msgid "%(opcolor)s has a new trapped bishop on %(cord)s" msgstr "" #: lib/pychess/Utils/lutils/strateval.py:573 #, python-format msgid "develops a pawn: %s" msgstr "" #: lib/pychess/Utils/lutils/strateval.py:574 #, python-format msgid "brings a pawn closer to the backrow: %s" msgstr "" #: lib/pychess/Utils/lutils/strateval.py:591 #, python-format msgid "brings a %(piece)s closer to enemy king: %(cord)s" msgstr "" #: lib/pychess/Utils/lutils/strateval.py:594 #, python-format msgid "develops a %(piece)s: %(cord)s" msgstr "" #: lib/pychess/Utils/lutils/strateval.py:612 #, python-format msgid "places a %(piece)s more active: %(cord)s" msgstr "" #: lib/pychess/Utils/lutils/strateval.py:638 msgid "White should do pawn storm in right" msgstr "Trắng nên dâng sóng Tốt phía bên phải" #: lib/pychess/Utils/lutils/strateval.py:640 msgid "Black should do pawn storm in left" msgstr "Đen nên dâng sóng Tốt phía bên trái" #: lib/pychess/Utils/lutils/strateval.py:643 msgid "White should do pawn storm in left" msgstr "Trắng nên dâng sóng Tốt phía bên trái" #: lib/pychess/Utils/lutils/strateval.py:645 msgid "Black should do pawn storm in right" msgstr "Đen nên dâng sóng Tốt phía bên phải" #: lib/pychess/Utils/lutils/strateval.py:671 msgid "Black has a rather cramped position" msgstr "Thế cờ Đen tương đối tù túng" #: lib/pychess/Utils/lutils/strateval.py:673 msgid "Black has a slightly cramped position" msgstr "Thế cờ Đen hơi tù túng" #: lib/pychess/Utils/lutils/strateval.py:675 msgid "White has a rather cramped position" msgstr "Thế cờ Trắng tương đối tù túng" #: lib/pychess/Utils/lutils/strateval.py:677 msgid "White has a slightly cramped position" msgstr "Thế cờ Trắng hơi tù túng" #: sidepanel/annotationPanel.py:26 msgid "Annotation" msgstr "" #: sidepanel/annotationPanel.py:29 msgid "Annotated game" msgstr "" #: sidepanel/annotationPanel.py:236 msgid "Copy PGN" msgstr "" #: sidepanel/annotationPanel.py:249 msgid "Add start comment" msgstr "" #: sidepanel/annotationPanel.py:254 msgid "Add comment" msgstr "" #: sidepanel/annotationPanel.py:258 sidepanel/annotationPanel.py:316 msgid "Edit comment" msgstr "" #: sidepanel/annotationPanel.py:269 msgid "Forced move" msgstr "" #: sidepanel/annotationPanel.py:274 msgid "Add move symbol" msgstr "" #: sidepanel/annotationPanel.py:280 msgid "Unclear position" msgstr "" #: sidepanel/annotationPanel.py:289 msgid "Zugzwang" msgstr "" #: sidepanel/annotationPanel.py:290 msgid "Development adv." msgstr "" #: sidepanel/annotationPanel.py:291 msgid "Initiative" msgstr "" #: sidepanel/annotationPanel.py:292 msgid "With attack" msgstr "" #: sidepanel/annotationPanel.py:293 msgid "Compensation" msgstr "" #: sidepanel/annotationPanel.py:294 msgid "Counterplay" msgstr "" #: sidepanel/annotationPanel.py:295 msgid "Time pressure" msgstr "" #: sidepanel/annotationPanel.py:300 msgid "Add evaluation symbol" msgstr "" #: sidepanel/annotationPanel.py:304 msgid "Remove symbols" msgstr "" #: sidepanel/annotationPanel.py:911 #, python-format msgid "round %s" msgstr "" #: sidepanel/bookPanel.py:21 msgid "Hints" msgstr "" #: sidepanel/bookPanel.py:25 msgid "" "The hint panel will provide computer advice during each stage of the game" msgstr "" #: sidepanel/bookPanel.py:27 msgid "Official PyChess panel." msgstr "" #: sidepanel/bookPanel.py:87 msgid "Opening Book" msgstr "Sách khai cuộc" #: sidepanel/bookPanel.py:88 msgid "" "The opening book will try to inspire you during the opening phase of the " "game by showing you common moves made by chess masters" msgstr "" #: sidepanel/bookPanel.py:139 #, python-format msgid "Analysis by %s" msgstr "" #: sidepanel/bookPanel.py:140 #, python-format msgid "" "%s will try to predict which move is best and which side has the advantage" msgstr "" #: sidepanel/bookPanel.py:142 #, python-format msgid "Threat analysis by %s" msgstr "" #: sidepanel/bookPanel.py:143 #, python-format msgid "" "%s will identify what threats would exist if it were your opponent's turn to" " move" msgstr "" #: sidepanel/bookPanel.py:159 sidepanel/bookPanel.py:269 msgid "Calculating..." msgstr "" #: sidepanel/bookPanel.py:300 msgid "" "Engine scores are in units of pawns, from White's point of view. Double " "clicking on analysis lines you can insert them into Annotation panel as " "variations." msgstr "" #: sidepanel/bookPanel.py:302 msgid "" "Adding suggestions can help you find ideas, but slows down the computer's " "analysis." msgstr "" #: sidepanel/bookPanel.py:311 msgid "Endgame Table" msgstr "" #: sidepanel/bookPanel.py:315 msgid "" "The endgame table will show exact analysis when there are few pieces on the " "board." msgstr "" #: sidepanel/bookPanel.py:364 sidepanel/bookPanel.py:367 #, python-format msgid "Mate in %d" msgstr "" #: sidepanel/bookPanel.py:554 msgid "" "In this position,\n" "there is no legal move." msgstr "" #: sidepanel/chatPanel.py:21 msgid "" "The chat panel lets you communicate with your opponent during the game, " "assuming he or she is interested" msgstr "" #: sidepanel/commentPanel.py:16 msgid "Comments" msgstr "Bình luận" #: sidepanel/commentPanel.py:20 msgid "The comments panel will try to analyze and explain the moves played" msgstr "" #: sidepanel/commentPanel.py:121 msgid "Initial position" msgstr "Vị trí ban đầu" #: sidepanel/commentPanel.py:254 #, python-format msgid "%(color)s moves a %(piece)s to %(cord)s" msgstr "" #: sidepanel/engineOutputPanel.py:15 msgid "Engines" msgstr "" #: sidepanel/engineOutputPanel.py:20 msgid "" "The engine output panel shows the thinking output of chess engines (computer" " players) during a game" msgstr "" #: sidepanel/engineOutputPanel.py:44 msgid "No chess engines (computer players) are participating in this game." msgstr "" #: sidepanel/historyPanel.py:10 msgid "Move History" msgstr "Các nước đã chơi" #: sidepanel/historyPanel.py:13 msgid "" "The moves sheet keeps track of the players' moves and lets you navigate " "through the game history" msgstr "" #: sidepanel/scorePanel.py:15 msgid "Score" msgstr "Điểm số" #: sidepanel/scorePanel.py:19 msgid "" "The score panel tries to evaluate the positions and shows you a graph of the" " game progress" msgstr "" pychess-0.12.2/lang/vi/LC_MESSAGES/pychess.mo0000644000175000017470000002465112653231273020723 0ustar tamasusers00000000000000 ( ) !J l '      .Q;&7('8 LX hrty#%"# "17M Var   %3 9EDV       * 6@ P]bq y # q}     5"XTj  (6M#S%w"# !=EK%Q w        # +6 <"F+i! -=UlBa+5&CTri65;2q"0 ".Qkmr{(,- # - 8E ]j|  %6 P \hf " & 2 P n         !!/!H!Z!_! |! ! !*!!! """"" """"" # %#2#P#d#|###H# #l $y$$$ $$ $$%&,%S%+[%!%/%0%( &*3&"^&&& &(&&&&' ''=' M'Y'i'''' ' ' '' '"'+(B( b( (&(,(( (!)@) \)0g))x/ZS#Ji`Otb?%hKp"y<n|Fm[\*e U= 8)AoTV6C.0l>'N +X4;Y3$qu RPa QBs}zEIr{-(GgL&kD5Mc1 ^@Wvw7~_!j,:]f92Hd%s was declined by your opponent%s was withdrawn by your opponent'%s' is not a registered namePromote pawn to what?AnalyzingAnimationDate of gameGame dataNewsPlay Sound When...PlayersToolsA file named '%s' already exists. Would you like to replace it?Engine, %s, has diedPyChess was not able to save the gameUnknown file type '%s'A player _checks:A player _moves:A player c_aptures:About ChessAll Chess FilesAll FilesBBeepBishopBlackBlack has a rather cramped positionBlack has a slightly cramped positionBlack should do pawn storm in leftBlack should do pawn storm in rightChess GameChess PositionClockClose _without SavingCommentsConnectingConnection ErrorConnection was closedCould not save the fileDetect type automaticallyEmailEnter GameEvent:File existsGain:Game informationGame is _drawn:Game is _lost:Game is _set-up:Game is _won:GuestHuman BeingInitial positionIt is not possible later to continue the game, if you don't save it.KKnightLightningLoaded gameLocal EventLog on ErrorLog on as _GuestMinutes:Move HistoryNNameNew GameNo soundNormalObserved _ends:Offer _DrawOpen GameOpen Sound FileOpening BookPingPlayer _RatingPo_rts:PreferencesPromotionPyChess - Connect to Internet ChessPyChess - Internet Chess: FICSPyChess has lost connection to the engine, probably because it has died. You can try to start a new game with the engine, or try to play against another one.PyChess.py:QQueenRRatedRatingRookRound:Save GameSave Game _AsSaved gameScoreSelect sound file...ShredderLinuxChess:Simple Chess PositionSite:Sp_y modeStandard:The connection was broken - got "end of file" messageThe error was: %sThe file already exists in '%s'. If you replace it, its content will be overwritten.The game ended in a drawThe game has been abortedThe game has been adjournedTimeTypeUnknownUnratedUse _analyzerUse _inverted analyzerWhiteWhite has a rather cramped positionWhite has a slightly cramped positionWhite should do pawn storm in leftWhite should do pawn storm in rightYou sent a draw offerYour opponent asks you to hurry!Your opponent is not out of time._Accept_Game_Help_Hide tabs when only one game is open_Hint mode_Load Game_Log Viewer_Name:_New Game_Observed moves:_Password:_Replace_Rotate Board_Save Game_Start Game_Use sounds in PyChess_Viewcaptures materialcastlesdefends %sdrawsgnuchess:http://en.wikipedia.org/wiki/Chesshttp://en.wikipedia.org/wiki/Rules_of_chessimproves king safetyincreases the pressure on %smatesmoves a rook to an open filemoves an rook to a half-open filemoves bishop into fianchetto: %sonline in totalpromotes a Pawn to a %sputs opponent in checksacrifies materialslightly improves king safetytakes back materialProject-Id-Version: pychess Report-Msgid-Bugs-To: POT-Creation-Date: 2016-01-27 13:28+0100 PO-Revision-Date: 2016-01-28 08:56+0000 Last-Translator: slav0nic Language-Team: Vietnamese (http://www.transifex.com/gbtami/pychess/language/vi/) MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Language: vi Plural-Forms: nplurals=1; plural=0; Đối phương từ chối %sĐối phương rút lại %s'%s' không phải là tên đã đăng kíPhong cấp Tốt thành quân gì?Đang phân tíchHình độngNgày diễn raDữ liệu ván cờTin tứcPhát Âm Thanh Khi...Người chơiCông cụMột tập tin có tên '%s' đã tồn tại. Bạn có muốn thay thế nó không?Máy, %s, đã dừng hoạt độngPyChess không thể lưu tập tinKhông rõ kiểu tập tin '%s'Một người chơi _chiếu vua:Một người chơi _thực hiện nước đi:Một người chơi ă_n quân:Giới thiệu ChessTất cả các tập tin cờ vuaTất cả các tập tinTBípTượngĐenThế cờ Đen tương đối tù túngThế cờ Đen hơi tù túngĐen nên dâng sóng Tốt phía bên tráiĐen nên dâng sóng Tốt phía bên phảiVán cờThế cờĐồng hồĐóng mà _không lưuBình luậnĐang kết nốiLỗi kết nốiKết nối bị dừngKhông thể lưu tập tinTự động phát hiện kiểuthư điện tửChơiGiải đấu:Tập tin đã tồn tạiBù thời gian:Thông tin về ván cờ_Hòa cờ:_Thua cờ:Ván cờ được _bày ra:_Thắng cờ:KháchNgườiVị trí ban đầuSau này bạn sẽ không thể tiếp tục ván cờ, nếu bây giờ bạn không lưu nó lại.VMãCờ chớpVán đã được bày lạiGiải đấu địa phươngLỗi Đăng nhậpĐăng nhập với tên _GuestPhút:Các nước đã chơiMTênVán mớiKhông có âm thanhTrung bình_Kết thúc quan sátĐề nghị _HòaVán đấu mởMở tập tin âm thanhSách khai cuộcPingĐiểm của người chơiCác C_ổng:Tùy chọnPhong cấpPyChess - Kết nối với Internet ChessPyChess - Internet Chess: FICSPyChess đã mất kết nối đến máy, có thể vì máy đã dừng hoạt động. Bạn có thể thử chơi một ván mới cùng máy, hoặc với một người khác.PyChess.py:HHậuXĐiểmTính điểmXeVòng:Lưu lại ván đấuLưu lại ván với _TênVán đã được lưuĐiểm sốChọn tập tin âm thanh...ShredderLinuxChess:Thế cờ đơn giảnĐịa chỉ mạng:Chế độ _gián điệpChuẩn:Kết nối bị ngắt - nhận được thông báo "kết thúc file"Lỗi là: %sTập tin đã tồn tại ở '%s'. Nếu bạn chọn thay thế, nội dung của nó sẽ bị ghi đè.Ván cờ kết thúc hoàVán cờ đã bị huỷ bỏVán cờ được hoãn lạiThời gianLoạiKhông rõKhông được tính điểmDùng công cụ _phân tíchDùng công cụ phân tích _ngượcTrắngThế cờ Trắng tương đối tù túngThế cờ Trắng hơi tù túngTrắng nên dâng sóng Tốt phía bên tráiTrắng nên dâng sóng Tốt phía bên phảiBạn đã gửi lời đề nghị hoàĐối thủ giục bạn khẩn trương!Đối phương chưa hết giờ._Chấp nhận_Ván_Trợ giúpẨ_n tab khi chỉ mở một ván cờChế độ _gợi ý_Tải ván cờXem _nhật trình_Tên:_Chơi ván mớiCác nước đã _quan sát:_Mật khẩu :_Thay thế_Xoay bàn cờ_Lưu lại ván cờ_Bắt đầu ván cờ_Bật âm thanh trong PyChess_Xemđổi quânnhập thànhbảo vệ %shòagnuchess:http://en.wikipedia.org/wiki/Chesshttp://en.wikipedia.org/wiki/Rules_of_chesstăng cường an toàn cho Vuatăng cường áp lực lên %schiếu hếtdi chuyển quân Xe đến cột mởdi chuyển quân Xe đến cột nửa mởlên Tượng nách: %strực tuyến trong tổng sốphong cấp Tốt thành quân %schiếu Vua đối phươngthí quânphần nào tăng cường sự an toàn cho Vuagỡ lại quânpychess-0.12.2/pychess.desktop0000755000175000017470000000044312641567764016647 0ustar tamasusers00000000000000[Desktop Entry] Type=Application Name=PyChess Comment=PyChess is a fully featured, nice looking, easy to use chess client for the Gnome desktop GenericName=Chess Game Icon=pychess Exec=env UBUNTU_MENUPROXY= pychess Terminal=false Categories=Game;BoardGame; MimeType=application/x-chess-pgn; pychess-0.12.2/DOCUMENTERS0000755000175000017470000000004212641567764015304 0ustar tamasusers00000000000000Thomas Dybdahl Ahle Thijs Vermeir pychess-0.12.2/pychess.svg0000755000175000017470000004432012641567764015777 0ustar tamasusers00000000000000 image/svg+xml pychess-0.12.2/manpages/0000755000175000017470000000000012653231274015350 5ustar tamasusers00000000000000pychess-0.12.2/manpages/pychess.1.gz0000755000175000017470000000103612641567764017547 0ustar tamasusers00000000000000B׋Epychess.1]RMs0WR>RaBHghiDeIHr=+[C~և U#5`UU7|XW2WE}m#G ҉RR[#j{Uޘ$f`5瞵3 $Y'5ly"utP+%Qh1K*%.9GՔ?+gdBк,~Xbpychess-0.12.2/pychess.png0000755000175000017470000000227112641567764015763 0ustar tamasusers00000000000000PNG  IHDRw=bKGD pHYs }eYtIME  [ɥ{FIDATHǝTmPTe=}.K.,5cY+ [!3f?F'aM?_Ք2e66DIB9[9 겋+X~{޽3\{}yAr8"*Si[(.bY*QFHN[\WqS2M .Y]Zj\+ҘOOOx 4NmXS;,g~'fZo?$IE_3E_}y;ݏpoJJiߜ̜Uis 0-|LA!ӛ1`̏-ܒ@tdg&fJ^b/kk?w$00fg /2ji~?\Sk;?.߰g=h<, ŵBG~cSSf pPrr O-.|J~WTM=}g[7-qd9|Cczl$/v8Xm!+kxq);ׇT}^>45M7__v]N'^7WK~Ʈf#>7m.-45X 'YRXF9X"5Cn2!}@lNϞɫk^%~+T56UC "9"/-*\|pV3+j4SQd2iFwk Z,Vp 8+;LӍA4l9!8s&CRB !g&z= 2.7') sys.exit(1) try: import cairo except ImportError: print("ERROR: PyChess requires python-cairo to be installed.") sys.exit(1) try: import gi except ImportError: print("ERROR: PyChess requires pygobject to be installed.") sys.exit(1) try: gi.require_version("cairo", "1.0") gi.require_version("GLib", "2.0") gi.require_version("Gdk", "3.0") gi.require_version("GdkPixbuf", "2.0") gi.require_version("GObject", "2.0") gi.require_version("Gtk", "3.0") gi.require_version("GtkSource", "3.0") gi.require_version("Pango", "1.0") gi.require_version("PangoCairo", "1.0") gi.require_version("Rsvg", "2.0") except ValueError as e: print("ERROR: Not all dependencies installed! You can find them in INSTALL") print(e) sys.exit(1) ############################################################################### # Fix environment if getattr(sys, 'frozen', False): this_dir = os.path.dirname(sys.executable) else: this_dir = os.path.dirname(os.path.abspath(__file__)) if os.path.isdir(os.path.join(this_dir, "lib/pychess")) and \ os.path.join(this_dir, "lib") not in sys.path: sys.path = [os.path.join(this_dir, "lib")] + sys.path ############################################################################### # Ensure access to data store try: from pychess.System.prefix import addDataPrefix, getDataPrefix, isInstalled except ImportError: print("ERROR: Could not import modules.") print("Please try to run pychess as stated in the INSTALL file") sys.exit(1) # now we can import from compat module from pychess.compat import PY2 if PY2: # This hack fixes some UnicodDecode Errors caused pygi not making # magic hidden automatic unicode conversion pygtk did reload(sys) sys.setdefaultencoding("utf-8") ############################################################################### # Parse command line arguments import pychess no_debug = False idle_add_debug = False no_thread_debug = False log_viewer = False chess_file = sys.argv[1] if len(sys.argv) > 1 else None ics_host = None ics_port = None version = "%s (%s)" % (pychess.VERSION, pychess.VERSION_NAME) description = "The PyChess chess client, version %s." % version parser = argparse.ArgumentParser(description=description) parser.add_argument('--version', action='version', version="%(prog)s" + " %s" % version) parser.add_argument('--no-debug', action='store_true', help='turn off debugging output') parser.add_argument('--idle-add-debug', action='store_true', help='turn on idle-add debugging output') parser.add_argument('--thread-debug', action='store_true', help='turn on thread debugging output') parser.add_argument('--no-gettext', action='store_true', help='turn off locale translations') parser.add_argument('--log-viewer', action='store_true', help='enable Log Viewer menu') parser.add_argument('--purge-recent', action='store_true', help='purge recent games menu') parser.add_argument('--ics-host', action='store', help='the hostname of internet chess server (default is freechess.org)') parser.add_argument('--ics-port', action='store', type=int, help='the connection port of internet chess server (default is 5000)') parser.add_argument('chess_file', nargs='?', metavar='chessfile', help='a chess file in PGN, EPD, FEN, or HTML (Chess Alpha 2 Diagram) format') args = parser.parse_args() no_debug = args.no_debug idle_add_debug = args.idle_add_debug thread_debug = args.thread_debug no_gettext = args.no_gettext log_viewer = args.log_viewer purge_recent = args.purge_recent chess_file = args.chess_file ics_host = args.ics_host ics_port = args.ics_port ############################################################################### # Set up translations from pychess.System import uistuff uistuff.no_gettext = no_gettext if no_gettext: os.environ['LANG'] = "C" locale.setlocale(locale.LC_ALL, 'C') else: locale.setlocale(locale.LC_ALL, '') # http://stackoverflow.com/questions/3678174/python-gettext-doesnt-load-translations-on-windows if sys.platform.startswith('win'): if os.getenv('LANG') is None: lang, enc = locale.getdefaultlocale() os.environ['LANG'] = lang locale.setlocale(locale.LC_ALL, '') domain = "pychess" if isInstalled(): if sys.platform == "win32": locale_dir = os.path.join(os.path.dirname(getDataPrefix()), "locale") else: locale_dir = None else: locale_dir = addDataPrefix("lang") if PY2: gettext.install(domain, localedir=locale_dir, unicode=1, names=('ngettext',)) else: gettext.install(domain, localedir=locale_dir, names=('ngettext',)) # http://stackoverflow.com/questions/10094335/how-to-bind-a-text-domain-to-a-local-folder-for-gettext-under-gtk3 if sys.platform == "win32": from ctypes import cdll libintl = cdll.LoadLibrary("libintl-8") libintl.bindtextdomain(domain, locale_dir) libintl.bind_textdomain_codeset(domain, 'UTF-8') else: locale.bindtextdomain(domain, locale_dir) ############################################################################### # Let's rumble! import pychess.Main pychess.Main.run(no_debug, idle_add_debug, thread_debug, log_viewer, purge_recent, chess_file, ics_host, ics_port) pychess-0.12.2/INSTALL0000755000175000017470000000311612641567764014627 0ustar tamasusers00000000000000PyChess does not have to be compiled/installed to run. To run: Execute the following in this directory: $ ./pychess To install to disk: Run following as root # python setup.py install To see other install options/formats: $ python setup.py --help-commands To run the pychess engine in text based mode $ PYTHONPATH=lib/ python lib/pychess/Players/PyChess.py To run unit tests for pychess: cd testing $ PYTHONPATH=lib/ python run_tests.py ------------- Dependencies for Ubuntu/Debian: gnome-icon-theme python >= 2.7 (or python3) python-cairo (or python3-cairo) python-gi (or python3-gi) python-gi-cairo (or python3-gi-cairo) gobject-introspection gir1.2-glib-2.0 gir1.2-gtk-3.0 gir1.2-pango-1.0 gir1.2-rsvg-2.0 gir1.2-gdkpixbuf-2.0 gir1.2-gtksource-3.0 gir1.2-gstreamer-1.0 gir1.2-gst-plugins-base-1.0 Dependencies for CentOS/RHEL7 and Fedora 20: python pygobject3 pycairo gobject-introspection glib2 gtk3 pango gdk-pixbuf2 gtksourceview3 gstreamer1 gstreamer1-plugins-base (python2 is used by default. To use python3 on Fedora 20 install python3, python3-gobject and python3-cairo These packages aren't available on CentOS/RHEL) Dependencies for Arch: python python-gobject python-cairo gobject-introspection glib2 gtk3 pango gdk-pixbuf2 gtksourceview3 gstreamer gst-plugins-base (Arch uses python3 by default. To use python2 install python2, python2-gobject and python2-cairo) Dependencies for Windows: python >= 2.7 PyGObject (from http://sourceforge.net/projects/pygobjectwin32) Base packages GDK-Pixbuf GTK+ 3.x GTKSourceView 3.x Pango (create engine: pyinstaller and pywin32) pychess-0.12.2/README.md0000644000175000017470000000164312644214305015034 0ustar tamasusers00000000000000[![Build Status](https://drone.io/github.com/pychess/pychess/status.png)](https://drone.io/github.com/pychess/pychess/latest) [![Documentation Status](https://readthedocs.org/projects/pychess/badge/?version=latest)](http://pychess.readthedocs.org/en/latest/?badge=latest) [![bountysource](https://api.bountysource.com/badge/team?team_id=62285)](https://salt.bountysource.com/checkout/amount?team=pychess) PyChess - a free chess client for Linux The mission of PyChess is to create a free, pleasant, pygtk chess game for the Linux desktop that does everything you require from an advanced chess client. Project homepage: http://pychess.org/ Download page: http://pychess.org/download/ Development page: https://github.com/pychess/pychess Translations: https://www.transifex.com/projects/p/pychess/ Mailing list: http://groups.google.com/group/pychess-people Chat: http://webchat.freenode.net/?channels=pychess&uio=d4 pychess-0.12.2/eco.db0000644000175000017470000076600012642235120014633 0ustar tamasusers00000000000000SQLite format 3@ - ~OtableopeningsopeningsCREATE TABLE openings(hash blob, base integer, eco text, lang text, opening text, variation text)Z 4tO%P `&}[4%/ 0nA00enSaragossa Opening % ;)|CبA00enCrab Opening-? -{)RA00enWare (Meadow Hay) Opening'3 >_rA00enAnderssen's Opening'3 pY_A00enNovosibirsk Opening&1 H3A00enBattambang Opening8U 7ԆGsA00enDunst (Sleipner-Heinrichsen) Opening9W s~EA00enDunst (Sleipner, Heinrichsen) Opening# zŃA00enAmar gambit( 5 -L^FA00enAmar (Paris) Opening" ) ,rCA00enGlobal OpeningD m K25nA00enClemenz (Mead's, Basman's or de Klerk's) Opening. 9Fv_A00enGrobRomford counter-gambit$ %5Ӻ6A00enGrobFritz gambit$%\ : >A00enGrobSpike attack!' vA00enGrob's attack4+/; EA00enBenko's Openingreversed Alekhine(5 w"fA00enLasker simul special#+ j-YF$A00enBenko's Opening,1~[CA00enPolishOutflank variation-3mB|P A00enPolishTuebingen variation- ? 㴰'A00enPolish (Sokolsky) opening 5j@^1w9~Z5#*#1U_9#A02enBirdFrom gambit") ) -A02enBird's Opening@(;7\2 jA01enNimzovich-Larsen attackSymmetrical variation;';-YW*A01enNimzovich-Larsen attackPolish variation:&;+^r/A01enNimzovich-Larsen attackDutch variation<%;/,'3[A01enNimzovich-Larsen attackEnglish variation>$;3OXPA01enNimzovich-Larsen attackClassical variation;#;-s¹agA01enNimzovich-Larsen attackIndian variation;";-@_oA01enNimzovich-Larsen attackModern variation+! ; ʝLA01enNimzovich-Larsen attack# + AFKRA00enDurkin's attack/C ژ 1A00enAnti-Borg (Desprez) Opening>a ߺmN~A00enHammerschlag (Fried fox/Pork chop Opening)$- (p)[A00enGedult's Opening$- SADXcEA00enAmsterdam attack(5 Ԫ2t8A00enVan't Kruijs Opening&1 rrbA00enVenezolana Opening$- ;[NA00enValencia Opening") b]~A00enMieses Opening") URGHA00enMieses Opening Ma;hFsQxM)?//3hSA06enRetiOld Indian attack > % 5XӇA06enReti OpeningD=eӭc`A05enRetiKing's Indian attack, Reti-Smyslov variation,<5HՖDA05enRetiKing's Indian attackA;_SO2A05enRetiKing's Indian attack, Spassky's variation : % ƱNӍ7A05enReti Opening)9/3b+A04enRetiHerrstroem gambit$8%b1+ g,A04enRetiWade defense 7% 쏬A04enReti Opening06=8}7A04enRetiLisitsin gambit deferred,557?+ uA04enRetiPirc-Lisitsin gambit 4% 0wA04enReti v Dutch 3 % _z~wA04enReti Opening22)-,AA03enBird's OpeningLasker variation11)+@IxT29A03enBird's OpeningWilliams gambit$0- dV%$4A03enMujannah Opening"/ ) >Gԏ3A03enBird's Opening$.%;nț>A02enBirdHobbs gambit0-E *bC@XA02enBird's Opening, Swiss gambit4,Eg|p1A02enBirdFrom gambit, Lipke variation5+G"Q'OdEA02enBirdFrom gambit, Lasker variation Um/BwL)U*R+c)3A10enEnglishJaenisch gambit*Q+m_eVtA10enEnglishAdorjan defense#P+ #Zg.A10enEnglish Opening#O +  JY6NV7A08enRetiKing's Indian attack, French variation,I 5gRhػA08enRetiKing's Indian attack9HOҢ23A07enRetiKing's Indian attack (with ...c5)d?n:Y'|>` 6cA19enEnglishMikenas-Carls, Sicilian variation:vKsصA18enEnglishMikenas-Carls, Kevitz variation9uI<QA18enEnglishMikenas-Carls, Flohr variation2t ;$A18enEnglishMikenas-Carls variation0s73RA17enEnglishNimzo-English Opening>rSA17enEnglishQueens Indian, Romanishin variation2q;r A17enEnglishQueens Indian formation#p + Z"A17enEnglish OpeningFocmA16enEnglishAnglo-Gruenfeld defense, Korchnoi variation2n; ӟA16enEnglishAnglo-Gruenfeld defense9mI'u*A16enEnglishAnglo-Gruenfeld, Czech defense;lMBhIOA16enEnglishAnglo-Gruenfeld, Smyslov defense2k; RA16enEnglishAnglo-Gruenfeld defense#j + ja%k:A16enEnglish Opening#i+ J?w0A15enEnglish Opening&h1 ;He^z)A15enEnglish orang-utan;g [ =d A15enEnglish, 1...Nf6 (Anglo-Indian defense)5fAma> bA14enEnglishSymmetrical, Keres defense =pK`:u9q=1 9/CfA25enEnglishClosed, Hort variation5 Aѻ\tpA25enEnglishClosed, Taimanov variation( '78A25enEnglishClosed system, /6wA25enEnglishSicilian Reversed3 =%K;2;&A24enEnglishBremen system with ...g69 I^{>tgaA23enEnglishBremen system, Keres variation19fC|A22enEnglishBremen, Smyslov system19It`A22enEnglishBremen, reverse Dragon/5`IA22enEnglishCarls' Bremen system('"wyᗰA22enEnglishBellon gambit# + -!clA22enEnglish Opening9W rpOnVA21enEnglish, Kramnik-Shirov counterattack,= [q A21enEnglish, Smyslov defense#~+ Y)cC$A21enEnglish Opening,}= <AoA21enEnglish, Keres variation,|= ]"SA21enEnglish, Troeger defense#{ + -tA21enEnglish Opening7zS fA20enEnglish, Nimzovich, Flohr variation0yE 퀮ΐA20enEnglish, Nimzovich variation#x + @`v{A20enEnglish Opening b\1o:Ob0 7,iؒ\A30enEnglishSymmetrical variation< Ovt0pA29enEnglishFour knights, kingside Fianchetto=Qd;҆4A28enEnglishFour knights, Romanishin variation8G-WlA28enEnglishFour knights, Stean variation-1=[K xA28enEnglishFour knights, 4.e3=Q>4A28enEnglishFour knights, Capablanca variation9I[ (X&A28enEnglishFour knights, Marini variation<OT};A28enEnglishFour knights, Nimzovich variation2;z ZhA28enEnglishBradley Beach variation.3pA28enEnglishNenarokov variation. 35A28enEnglishFour knights system/ 5~-}JA27enEnglishThree knights system+-oEdA26enEnglishBotvinnik system( 'GbS#nA26enEnglishClosed system8G~2|jjA25enEnglishClosed system (without ...d6); MێDOyA25enEnglishClosed, 5.Rb1 Taimanov variation( 'WA25enEnglishClosed, 5.Rb1 3Dp1Qf30- 7gi % / A41enQueen's Pawn%=/ v:A40enBeefeater defense"<) j|CA40enModern defense=;%G"A40enQueen's pawnFranco-Indian (Keres) defense-:%'3]A40enQueen's pawnKeres defense 9% yKzAA40enQueen's pawn"8) ӧlA40enPolish defense/7%+gfEA40enQueen's pawnEnglish defense.6%)WY A40enQueen's pawnEnglund gambit95%? v)A40enQueen's pawnCharlick (Englund) gambit?4%K(aPtA40enQueen's pawnLundin (Kevitz-Mikenas) defense 3 % XA40enQueen's pawn92 Io))'A39enEnglishSymmetrical, Main line with d491Ic[A38enEnglishSymmetrical, Main line with b390IcV|~A38enEnglishSymmetrical, Main line with d30/ 7<6D7A38enEnglishSymmetrical variationA.Y [A37enEnglishSymmetrical, Botvinnik system Reversed AmCS |S#fA"T) %J3A45enCanard Opening0S%-{B}UA45enQueen's pawnBronstein gambit%R / GHA45enQueen's pawn game6QQ ,$@A44enSemi-Benoni (`blockade variation')&P 1 >fAA44enOld Benoni defense-O!+ ,A43enOld BenoniSchmid's system&N1 ͽ.AA43enOld Benoni defense*M9 I.A43enHawk (Habichd) defense&L1 _L%lUA43enOld Benoni defense"K) }CS>A43enWoozle defense&J1  hA43enOld Benoni defense0I!1KM߱a A43enOld BenoniMujannah formation3H!7m6aA43enOld BenoniFranco-Benoni defense&G 1 ehڣA43enOld Benoni defenseBF)M.A42enModern defenseAverbakh system, Kotov variationIE)[`i xXA42enModern defenseAverbakh system, Randspringer variation'D3 icVIA42enPterodactyl defense1C )+P?UA42enModern defenseAverbakh system7B-3r/A41enRobatsch defenseRossolimo variation"A) ƸA41enModern defense PFuQ$sCP.gA ?[s.A50enQueen's Indian Accelerated-f? .ʁA48enKing's IndianEast Indian defenseB`)M bϵA47enQueen's IndianMarienbad system, Berg variation2_)-)IA47enQueen's IndianMarienbad system*^ 9 h(<4A52enBudapestAlekhine, Abonyi variation.n1EXoA52enBudapestAlekhine variation0m5QXWA52enBudapestRubinstein variation+l+aRфXA52enBudapestAdler variation$k -  7eA52enBudapest defense9jG7ŗA51enBudapestFajarowicz, Steiner variation0i5x.4A51enBudapestFajarowicz variation-h ? ޻)zHyA51enBudapest defense declined 6uD yR"[W6 Iٳ-ԟUA65enBenoni6.e4. 5ך$Iw8A64enBenoniFianchetto, 11...Re8.  5њI3 A63enBenoniFianchetto, 9...Nbd7.  5 IR)A62enBenoniFianchetto variation. 5躉̡A61enBenoniFianchetto variation= Sb,/A61enBenoniNimzovich (knight's tour) variation+ /yTVA61enBenoniUhlmann variation" ) ,v)A61enBenoni defense" ) ~r6=A60enBenoni defense)%O{JA59enBenko gambitMain line % qg8A59enBenko gambit-%'I7=0#A59enBenko gambitNe2 variation$ %BivA59enBenko gambit7.e44%5 ܯRZW52A58enBenko gambitFianchetto variation-%'x=ӀA58enBenko gambitNd2 variation) 7 9qP>A58enBenko gambit accepted5%7uiA57enBenko gambitNescafe Frappe attack.~%)e!A57enBenko gambitZaitsev system.}A K ~*A57enBenko gambit half accepted | % haRA57enBenko gambit4{%5m\XA56enCzech BenoniKing's Indian system BrD t@q:BA"g smwA80enDutch, Manhattan (Alapin, Ulvestad) variation+!; U>RA80enDutch, Spielmann gambit   a+A80enDutch* --5JB|A79enBenoniClassical, 11.f3: MC{ eA78enBenoniClassical with ...Re8 and ...Na64 A xdA77enBenoniClassical, 9...Re8, 10.Nd2, 1й N1SA76enBenoniClassical, 9...Re8; OwaaY)A75enBenoniClassical with ...a6 and 10...Bg42 =u֫SA74enBenoniClassical, 9...a6, 10.a4* -$L>A73enBenoniClassical, 9.O-O1 ;_xA72enBenoniClassical without 9.O-O* - f;wAA71enBenoniClassical, 8.Bg51;5=*A70enBenoniClassical without 9.O-O3 ?{ g#A70enBenoniClassical with e4 and Nf36 ES5,A69enBenoniFour pawns attack, Main line+ /< yxA68enBenoniFour pawns attack, 1qb(RcA67enBenoniTaimanov variation+/0IYA66enBenoniMikenas variation. 5]{{;A66enBenonipawn storm variation ?wJ&[0^c?!5 ' B@WA84enDutch defense=4U?H7A83enDutchStaunton gambit, Nimzovich variation<3S,ӵA83enDutchStaunton gambit, Chigorin variation:2OSnV|A83enDutchStaunton gambit, Lasker variation<1SAvsA83enDutchStaunton gambit, Alekhine variation90 MwVfFA83enDutchStaunton gambit, Staunton's line>/WAWPA82enDutchStaunton gambit, Tartakower variation(.+uze~A82enDutchStaunton gambit'-)D(gA82enDutchBalogh defense(, +fcRPA A82enDutchStaunton gambit6+GuzA81enDutchLeningrad, Karlsbad variation1*=a3MuOA81enDutchLeningrad, Basman system!)' <- Ÿ/A81enDutch defense7(S [\R_A81enDutch defense, Blackburne variation!' ' ;djY$8A81enDutch defense*&9 ; Z'A80enDutch, 2.Bg5 variation)%7 ,QA80enDutch, Krejcik gambit*$9 {s5A80enDutch, Korchnoi attack-#? b<8A80enDutch, Von Pretzel gambit 4n:d/Hb4+I1E-۷*A92enDutchStonewall with Nc3,H35yu7A92enDutchStonewall variation5GO [[/A92enDutch defense, Alekhine variation!F ' lY)A92enDutch defense!E ' ;m(*A91enDutch defense4DM ZA90enDutch-Indian, Alekhine variationEC'UwNA90enDutch defenseDutch-Indian (Nimzo-Dutch) variation!B ' /=A90enDutch defense;A Qˮr@A89enDutchLeningrad, Main variation with Nc6:@ O\rA88enDutchLeningrad, Main variation with c62? ?n1. A87enDutchLeningrad, Main variation,>3}\A86enDutchLeningrad variation-=5AA86enDutchHort-Antoshin system&< 1 JϻΩA86enDutch with c4 & g3'; 3 ;;lXǔHA85enDutch with c4 & Nc3!:' tW%A84enDutch defense19=)2v }z_A84enDutchStaunton gambit deferred78S  EA84enDutch defense, Rubinstein variation!7' 5>UA84enDutch defense16'-0*A84enDutch defenseBladel variation Nj0TtY4 qN ]% U@ B00enOwen defense.\A Pj1JB00enSt. George (Baker) defenseB[i kiB00enReversed Grob (Borg/Basman defense/macho Grob)"Z) 6jB00enCarr's defense%Y/ ̼B00enFried fox defense"X) NiVB00enBarnes defenseW SClHB00enFred#V+ ̼0{*B00enLemming defense&U1 &.MB00enCorn stalk defense(T5 oG(T1/B00enHippopotamus defense'S 3 B01enScandinavianMarshall variation(t5 RV!bB01enScandinavian defense's3 e>7"tB01enScandinavian gambit0r%-3M}7uB01enScandinavianIcelandic gambit(q5 {gP B01enScandinavian defense4p%5ZC%Q.B01enScandinavianPytel-Wade variation6oQ Bo$B01enScandinavian, Mieses-Kotrvc gambitKn%c7ʣuB01enScandinavianAnderssen counter-attack, Collijn variation *V-a8s8m*@1Ab B03enAlekhine's defenseFour pawns attack, 6...Nc6K1Wdy7sɮB03enAlekhine's defenseFour pawns attack, Korchnoi variation71/ؚL]>B03enAlekhine's defenseFour pawns attack@ 1AՔtB03enAlekhine's defenseExchange, Karpov variation8 11dSKSxB03enAlekhine's defenseExchange variation& 1 @NB03enAlekhine's defense6 1-kBqXB03enAlekhine's defenseBalogh variation& 1 4jY7B03enAlekhine's defense71/ي#SîB03enAlekhine's defenseO'Sullivan gambit& 1 I ~B03enAlekhine's defenseJ1UHژ&B02enAlekhine's defenseTwo pawns' attack, Mikenas variationB1Ed~(B02enAlekhine's defenseTwo pawns' (Lasker's) attack71/UB02enAlekhine's defenseSteiner variation&1 8B02enAlekhine's defense71/@8B02enAlekhine's defenseWelling variation51+,~XB02enAlekhine's defenseSaemisch attack51+B_ߚtB02enAlekhine's defenseKmoch variation 1p 3x3q1=1;p$FB05enAlekhine's defenseModern, Panov variation=1;y1B05enAlekhine's defenseModern, Flohr variation? 1?YvX)B05enAlekhine's defenseModern variation, 4...Bg4=1;g7B04enAlekhine's defenseModern, Keres variationB1E`JĈB04enAlekhine's defenseModern, Fianchetto variation>1=r˼)%=B04enAlekhine's defenseModern, Schmid variation>1=au3s.JB04enAlekhine's defenseModern, Larsen variation6 1-[P31`VB04enAlekhine's defenseModern variationM1[[¬óB03enAlekhine's defenseFour pawns attack, Trifunovic variationM1[1.`XuB03enAlekhine's defenseFour pawns attack, Fianchetto variationJ1UXB5B03enAlekhine's defenseFour pawns attack, Planinc variationM1[TORB03enAlekhine's defenseFour pawns attack, Tartakower variation>1=VήB03enAlekhine's defenseFour pawns attack, 7.Be3L1Y ԤB03enAlekhine's defenseFour pawns attack, Ilyin-Genevsky var. P}M%Z*lIzP'1+$ uB07enPircByrne variation%0'TtB07enPircHolmov system)//ଅB07enPircSveshnikov system".!Dtc(B07enPirc150 attack -% 7~]*7tB07enPirc defense0,=L#&x5MB07enPircUfimtsev-Pytel variation + % QB07enPirc defense:*-9!:)eB06enRobatsch defensePseudo-Austrian attackB)-I2UcLB06enRobatsch defenseTwo knights, Suttles variation9(-7H"lB06enRobatsch defenseTwo knights variation-'? ,T|B06enRobatsch (Modern) defense8&-5s_IB06enRobatsch defenseGurgenidze variation$%- µB06enRobatsch defense6$-1uB06enRobatsch defenseThree pawns attack-#? l55B06enRobatsch (Modern) defense%"/ xSB06enNorwegian defense-! ? k B06enRobatsch (Modern) defense= 1;F3ִ=B05enAlekhine's defenseModern, Vitolins attack@1Aՠf5.B05enAlekhine's defenseModern, Alekhine variation I}GtJ RI8DCˏU w B10enCaro-KannAnti-anti-Caro-Kann defense3C9e9*B10enCaro-KannAnti-Caro-Kann defense-B-s—DB10enCaro-KannHillbilly attack%A / Fvђ-B10enCaro-Kann defense=@WgT8B09enPircAustrian attack, Ljubojevic variation9?OG t_@B09enPircAustrian attack, Dragon formation.>9L;B09enPircAustrian attack, 6.Bd3.=9dB09enPircAustrian attack, 6.Be3-<7a q@,,B09enPircAustrian attack, 6.e5';+mu^ HB09enPircAustrian attack': +h 3I4B09enPircAustrian attack/9;/&.B08enPircClassical system, 5.Be2,85UQi{5B08enPircClassical, h3 system67I\׹*B08enPircClassical (Two knights) system66 IaBB08enPircClassical (Two knights) system35-+XB07enRobatsch defenseGeller's system14?h{jB07enPircbayonet (Mariotti) attack)3/W8 B07enPircChinese variation 2% Dn+>B07enPirc defense <b-WX&r<3W9(mvQֽB13enCaro-KannPanov-Botvinnik attack=VM韌%B13enCaro-KannPanov-Botvinnik, Gunderam attack3U9A!>B13enCaro-KannPanov-Botvinnik attack;TI 62}B13enCaro-KannExchange, Rubinstein variation/S 1wqLݣOB13enCaro-KannExchange variation5R=T"}@ B12enCaro-KannAdvance, Short variation.Q/1`m-B12enCaro-KannAdvance variation0P3Έ=4WzB12enCaro-KannEdinburgh variation"O wc1YyB12enCaro-Kann3.Nd2;NI>08B12enCaro-KannTartakower (fantasy) variation%M/ P{IB12enCaro-Kann defense%L/ m6B12enCaro-Masi defense'K3 GĉB12ende Bruycker defense%J / sYoB12enCaro-Kann defense1I 5 j1B11enCaro-KannTwo knights, 3...Bg42H7ߠ?B10enCaro-KannTwo knights variation:GGԙ7:iB10enCaro-KannGOldman (Spielmann) variation%F/ nH3B10enCaro-Kann defense6E?jA)B10enCaro-KannClosed (Breyer) variation H=tLX{H0h 3J߫[B18enCaro-KannClassical variation/g 1%B17enCaro-KannSteinitz variation7f A>ϕEulB16enCaro-KannBronstein-Larsen variation.e/I B15enCaro-KannForgacs variation=dMb oB15enCaro-KannTartakower (Nimzovich) variation,c+%W[ѲB15enCaro-KannAlekhine gambit%b/ YL!RWB15enCaro-Kann defense0a3 ,B15enCaro-KannRasa-Studier gambit.`/B:0B15enCaro-KannGurgenidze system6_?ˊ ^έB15enCaro-KannGurgenidze counter-attack%^ / c.sB15enCaro-Kann defense;]IX>-*QDB14enCaro-KannPanov-Botvinnik attack, 5...g6;\ I^GIFB14enCaro-KannPanov-Botvinnik attack, 5...e6J[g:~B13enCaro-KannPanov-Botvinnik, Reifir (Spielmann) variation@ZS(wYB13enCaro-KannPanov-Botvinnik, Czerniak variation>YO3,8$B13enCaro-KannPanov-Botvinnik, normal variationCxJa$ - ݫB33enSicilian defenseLmnF rB32enSicilianLabourdonnais-Loewenthal (Kalashnikov) variation>QcbȠIB32enSicilianLabourdonnais-Loewenthal variation/3l<YB32enSicilianNimzovich variation++d jf~B32enSicilianFlohr variation$ - Q@j裗B32enSicilian defenseLm^PuB31enSicilianNimzovich-Rossolimo attack, Gurgenidze variationR yήe:B31enSicilianNimzovich-Rossolimo attack (with ...g6, without ...d6)Fa'EVB30enSicilianNimzovich-Rossolimo attack (without ...d6)$ - ~{!B30enSicilian defenseKkT?‘B29enSicilianNimzovich-Rubinstein; Rubinstein counter-gambit: IǒJj@B29enSicilianNimzovich-Rubinstein variation- /mW B28enSicilianO'Kelly variation++/7B27enSicilianActon extension/3VS?B27enSicilianHungarian variation/3@3MB27enSicilianKatalimov variation +I6\\+.,1YB40enSicilianMarshall variation$+ - ^T9rB40enSicilian defenseD* ]r<&4B39enSicilianAccelerated Fianchetto, Breyer variationG) cOX DбB38enSicilianAccelerated Fianchetto, Maroczy bind, 6.Be3E(_]kDB37enSicilianAccelerated Fianchetto, Simagin variationI' ga3B36enSicilianAccelerated Fianchetto, Maroczy bindM$ oV@B35enSicilianAccelerated Fianchetto, Modern variation with Bc4D#]Xѿ@HB34enSicilianAccelerated Fianchetto, Modern variationF" aLMY, B34enSicilianAccelerated Fianchetto, Exchange variation0!5[>yJ B33enSicilianSveshnikov variation: Is^eB33enSicilianPelikan, Chelyabinsk variation3;GY@}sB33enSicilianPelikan, Bird variationAWz5cB33enSicilianPelikan (Lasker/Sveshnikov) variation 7a.I wN'h7.> 1d\JB45enSicilianTaimanov variationB=i k-B44enSicilian, Szen variation, Dely-Kasparov gambit6<Q .֧-s=B44enSicilian, Szen, hedgehog variation>;a jft{B44enSicilian, Szen (`anti-Taimanov') variation$: - D-B44enSicilian defense&9 !u*\+B43enSicilianKan, 5.Nc378CZB42enSicilianKan, Swiss cheese variation77C B42enSicilianKan, Polugaievsky variation269ʭuϽ&B42enSicilianKan, Gipslis variation&5 !̪>WB42enSicilianKan, 5.Bd3C4[ \B41enSicilianKan, Maroczy bind - Bronstein variation>3Qj5,>B41enSicilianKan, Maroczy bind (Reti variation))2 'm辕B41enSicilianKan variation/13qCB55enSicilianPrins variation, Venice attack4M=Ns*oB54enSicilianPrins (Moscow) variationL  {,ĴB54enSicilian8KEm*B53enSicilianChekhover, Zaitsev variation1J G a2dB53enSicilian, Chekhover variationEI_4vB52enSicilianCanal-Sokolsky attack, Sokolsky variationCH[H,WB52enSicilianCanal-Sokolsky attack, Bronstein gambit:G IW! B52enSicilianCanal-Sokolsky attack, 3...Bd7OF sM\8B51enSicilianCanal-Sokolsky (Nimzovich-Rossolimo, Moscow) attack0E5,fE~B50enSicilianwing gambit deferredD  0ibB50enSicilian.C 1|יB49enSicilianTaimanov variation.B 1v1{B48enSicilianTaimanov variation:A IbcB47enSicilianTaimanov (Bastrikov) variation.@ 1lH;Ͳ(B46enSicilianTaimanov variation5?? gbHtB45enSicilianTaimanov, American attack @{FtG~I~@;aK`ռB62enSicilianRichter-Rauzer, Keres variation:`IFdB62enSicilianRichter-Rauzer, Richter attackH_eKxvq DB62enSicilianRichter-Rauzer, Margate (Alekhine) variation@^UT4_ B62enSicilianRichter-Rauzer, Podvebrady variation2] 9B62enSicilianRichter-Rauzer, 6...e6C\ [|;$B61enSicilianRichter-Rauzer, Larsen variation, 7.Qd2<[MT#zѝ٤B60enSicilianRichter-Rauzer, Larsen variationAZW_VspHB60enSicilianRichter-Rauzer, Bondarevsky variation*Y )[( B60enSicilianRichter-Rauzer8X E18B59enSicilianBoleslavsky variation, 7.Nb38WE;^iB58enSicilianBoleslavsky, Louma variation1V7@)`B58enSicilianBoleslavsky variation%U 8hB58enSicilianClassical2T9FaYE!B57enSicilianSozin, Benko variation-S/ ҙ jB57enSicilianMagnus Smith trap3R ; 6B57enSicilianSozin, not ScheveningenQ p M]B56enSicilian C,0BC>nQ(j5PB71enSicilianDragon, Levenfish; Flohr variation7m C؜B71enSicilianDragon, Levenfish variation,l -2ᇧSB70enSicilianDragon variationRk y[>UB69enSicilianRichter-Rauzer, Rauzer attack, 7...a6 defense, 11.Bxf6Rj y Lo> B68enSicilianRichter-Rauzer, Rauzer attack, 7...a6 defense, 9...Be7Ri yaB67enSicilianRichter-Rauzer, Rauzer attack, 7...a6 defense, 8...Bd7Ah W:ze5|B66enSicilianRichter-Rauzer, Rauzer attack, 7...a6Tg}X=rB74enSicilianDragon, Classical, Reti-Tartakower variation>zQ\VٷB74enSicilianDragon, Classical, Bernard defenseByYЈQ1uB74enSicilianDragon, Classical, Spielmann variation?xSt "$.B74enSicilianDragon, Classical, Stockholm attack4w =ɔH'.B74enSicilianDragon, Classical, 9.Nb3@vUuӉ7B73enSicilianDragon, Classical, Richter variation=uOuY%]B73enSicilianDragon, Classical, Zollner gambit4t =WM!iB73enSicilianDragon, Classical, 8.O-OCs[Ib˪[B72enSicilianDragon, Classical, Nottingham variationBrY3XBB72enSicilianDragon, Classical, Grigoriev variationBqY iz#1B72enSicilianDragon, Classical, Amsterdam variation4p=Ղ B72enSicilianDragon, Classical attack)o 'Ay<v9F p>/ 3uO}֢JB83enSicilianModern Scheveningen/  3ޢ4ۭB83enSicilianScheveningen, 6.Be27 C&?0"B82enSicilianScheveningen, Tal variation.  1P4[oڅB82enSicilianScheveningen, 6.f46  Ao'Z B81enSicilianScheveningen, Keres attack>QĝR)?4B80enSicilianScheveningen, Fianchetto variation<MbjtB80enSicilianScheveningen, Vitolins variation;K$#]]B80enSicilianScheveningen, English variation2 9"&Ͳ B80enSicilianScheveningen variation: Ii<ǘYB79enSicilianDragon, Yugoslav attack, 12.h4= OO@B78enSicilianDragon, Yugoslav attack, 10.O-O-O<MlOB77enSicilianDragon, Yugoslav attack, 9...Bd7D]EJ>B77enSicilianDragon, Yugoslav attack, Byrne variation: Iu )>&֟B77enSicilianDragon, Yugoslav attack, 9.Bc4E_.5]FB76enSicilianDragon, Yugoslav attack, Rauser variation<~ ML {޽3B76enSicilianDragon, Yugoslav attack, 7...O-O >}3P i0d>#  %MB90enSicilianNajdorf.1 &x2B89enSicilianVelimirovic attack( %t 'B89enSicilianSozin, 7.Be34=<S0B88enSicilianSozin, Fischer variation6 Ae|J,B88enSicilianSozin, Leonhardt variation6 Af!m$B87enSicilianSozin with ...a6 and ...b5( %Α嚽1B86enSicilianSozin attack=OTeB85enSicilianScheveningen, Classical Main line3;QyBfB85enSicilianScheveningen, ClassicalC[lj B85enSicilianScheveningen, Classical, Maroczy systemT }"ĵ=LCYB85enSicilianScheveningen, Classical variation with ...Qc7 and ...Nc6Gct?DCbB84enSicilianScheveningen (Paulsen), Classical variation?SATȠcB84enSicilianScheveningen, Classical, Nd7 systemG c UTTUsB84enSicilianScheveningen (Paulsen), Classical variationC[$:B83enSicilianModern Scheveningen, Main line with Nb3:I@^[YB83enSicilianModern Scheveningen, Main line KV|Ef7KC.[L&͗B98enSicilianNajdorf, Goteborg (Argentine) variation5-?$]2'4B98enSicilianNajdorf, Browne variation,, -PU6nUB98enSicilianNajdorf, 7...Be7<+M FBB97enSicilianNajdorf, Poisoned pawn variation,* -fR6/KB97enSicilianNajdorf, 7...Qb6D)]cG9[PB96enSicilianNajdorf, Polugayevsky, Simagin variation;(K$ghDB96enSicilianNajdorf, Polugayevsky variation)' 'DB96enSicilianNajdorf, 7.f4+& +TB95enSicilianNajdorf, 6...e64%=RhjB94enSicilianNajdorf, Ivkov variation*$ )r9vTJB94enSicilianNajdorf, 6.Bg5)# 'XTm B93enSicilianNajdorf, 6.f49" Gz"L!B92enSicilianNajdorf, Opovcensky variationB! Y%DN+WB91enSicilianNajdorf, Zagreb (Fianchetto) variation; KzƔ B90enSicilianNajdorf, Byrne (English) attack5?j'eY$B90enSicilianNajdorf, Lipnitzky attack17Q_FpB90enSicilianNajdorf, Adams attack ?r:~V1q9l?*C-3.C00enFrenchAlapin variation.B5}QpC00enFrenchSchlechter variation"A) dh.C00enFrench defense&@1 ㉷8ZC00enSt. George defense&?1 Ъ&C00enLengfellner system">) 1~FC00enFrench defense5=C r"C C00enFrenchReversed Philidor formation.<5Z華jC00enFrenchKing's Indian attack,;1bMCw@C00enFrenchChigorin variation/:7Qҿ!|C00enFrenchTwo knights variation+9/w.ڢ C00enFrenchPelikan variation"8) q'SC00enFrench defense%7#|LC00enFrenchWing gambit"6) //հC00enFrench defense15; ]lMC00enFrenchLabourdonnais variation)4+2-C00enFrenchSteinitz attack43Ax 5?C00enFrenchReti (Spielmann) variation52O xhEC11enFrenchSwiss variation"e ) mH6qC11enFrench defense2d=vC10enFrenchFrere (Becker) variation5cC狉MsC10enFrenchRubinstein, Capablanca line.b5(krC10enFrenchRubinstein variation-a3oP7jC10enFrenchFort Knox variation.`5 tc5)C10enFrenchRubinstein variation,_1U;C10enFrenchMarshall variation+^ /O|}0yC10enFrenchPaulsen variation=] ScIꎴ)WC09enFrenchTarrasch, Open variation, Main line1\ ;ޚ^ C08enFrenchTarrasch, Open, 4.ed ed7[G@_C07enFrenchTarrasch, Eliskases variation2Z =  C07enFrenchTarrasch, Open variation7YG!zh C06enFrenchTarrasch, Leningrad variation?X W)C06enFrenchTarrasch, Closed variation, Main line4WA@eC05enFrenchTarrasch, Closed variation7VGe<C05enFrenchTarrasch, Botvinnik variation Al.b0{>A;xOO1DC12enFrenchMacCutcheon, Tartakower variationCw_.| ּC12enFrenchMacCutcheon, Dr. Olland (Dutch) variation9vK|SH;C12enFrenchMacCutcheon, Janowski variation:uMwC?/C12enFrenchMacCutcheon, Bernstein variation:tM XEC12enFrenchMacCutcheon, Grigoriev variation9sK]VB_C12enFrenchMacCutcheon, Chigorin variation8rIz`EUDaC12enFrenchMacCutcheon, Advance variation;qO&( C12enFrenchMacCutcheon, Bogolyubov variation/p 7vvKbC12enFrenchMacCutcheon variation(o)~EwC11enFrenchBurn variation3n?/}xsC11enFrenchSteinitz, Gledhill attack9mK~:C11enFrenchSteinitz, Boleslavsky variation,l1LP C11enFrenchSteinitz variation;kOTT-%s/C11enFrenchSteinitz, Brodsky-Jones variation,j1C: BC11enFrenchSteinitz variation3i?)~#C11enFrenchSteinitz, Bradford attack,h1u^u(WC11enFrenchSteinitz variation FK%^#`vF- 3-@euC14enFrenchClassical variationLqC13enFrenchAlbin-Alekhine-Chatard attack, Spielmann variationLq3jEG&C13enFrenchAlbin-Alekhine-Chatard attack, Teichmann variationIk$4[$C13enFrenchAlbin-Alekhine-Chatard attack, Breyer variationJmИڨC13enFrenchAlbin-Alekhine-Chatard attack, Maroczy variation7Gf#PYC13enFrenchAlbin-Alekhine-Chatard attack9K63@(C13enFrenchClassical, Tartakower variation8Iځ9瓐C13enFrenchClassical, Frankfurt variationFelNYaDC13enFrenchClassical, Vistaneckis (Nimzovich) variation@~Y^XWRC13enFrenchClassical, Anderssen-Richter variation8}Ice XVC13enFrenchClassical, Anderssen variation#| lQ}C13enFrenchClassical?{W|WMGC12enFrenchMacCutcheon, Lasker variation, 8...g66zEMC12enFrenchMacCutcheon, Duras variation7yG{ jC12enFrenchMacCutcheon, Lasker variation KRj/k6K4 A(bBC17enFrenchWinawer, Advance variation6E(FP pC16enFrenchWinawer, Petrosian variation4 A%?C16enFrenchWinawer, Advance variationA[JWC15enFrenchWinawer, Alekhine gambit, Kan variation2=I+TC15enFrenchWinawer, Alekhine gambitHiDRH`?C15enFrenchWinawer, Alekhine gambit, Alatortsev variation<QfC15enFrenchWinawer, Alekhine (Maroczy) gambit7GOOsZ_C15enFrenchWinawer, fingerslip variation8I䥶`eC15enFrenchWinawer, Kondratiyev variation7 G{;[C15enFrenchWinawer (Nimzovich) variation8 I,qJC14enFrenchClassical, Stahlberg variation7 GV`|oHWC14enFrenchClassical, Steinitz variation6 Exow/C14enFrenchClassical, Pollock variation5 CٖV<$C14enFrenchClassical, Alapin variation9 KXRVG~C14enFrenchClassical, Rubinstein variation7GxM{\~C14enFrenchClassical, Tarrasch variation ,}J e%Ga,2'#3fu+>VC20enKing's pawnKing's head Opening2&#3آ<'7C20enKing's pawnMengarini's Opening-%#)P*dtC20enKing's pawnIndian Opening$$ - DnC20enKing's pawn gameW#wyC19enFrenchWinawer, Advance, poisoned pawn, Konstantinopolsky variationR"}xLC19enFrenchWinawer, Advance, poisoned pawn, Euwe-Gligoric variationC!_O<*7C19enFrenchWinawer, Advance, poisoned pawn variation@ YEr0 C19enFrenchWinawer, Advance, positional Main line=Sv'ӻrC19enFrenchWinawer, Advance, Smyslov variation3 ?NXCmC19enFrenchWinawer, Advance, 6...Ne76EIC18enFrenchWinawer, Classical variation4 A9HC18enFrenchWinawer, Advance variation<Qh bD8C17enFrenchWinawer, Advance, Rauzer variation09VS.[C17enFrenchWinawer, Advance, 5.a3=STp̅OC17enFrenchWinawer, Advance, Russian variation@Y(GFC17enFrenchWinawer, Advance, Bogolyubov variation imF$p:\(i$; - k'2FoC23enBishop's Opening-:#)v'dfVC22enCentre gameHall variation39#5kVxj6C22enCentre gameKupreichik variation/8#-owC22enCentre gameBerger variation17#1dĘC22enCentre gamel'Hermet variation26#30]o7C22enCentre gameCharousek variation-5#)46L)C22enCentre gamePaulsen attack4 # UyFC22enCentre game3# +oC21enCentre game22'/lWC21enDanish gambitSoerensen defense31'1uRJC21enDanish gambitSchlechter defense00'+J8UC21enDanish gambitCollijn defense!/' Nk6qC21enDanish gambit!.' ?׽~C21enHalasz gambit6-Q hUW ,C21enCentre game, Kieseritsky variation, # V2FC21enCentre game$+- xFߴ^C20enAlapin's Opening,*#'~k&C20enKing's pawnLopez Opening1)#1f)BC20enKing's pawnNapoleon's Opening-(#)Ip-=A?BC23enBishop's OpeningCalabrese counter-gambit6=-1U[C23enBishop's OpeningLisitsyn variation;<-;1wC23enBishop's OpeningPhilidor counter-attack 4e1Vx3c4,_ 1=MzC26enViennaFalkbeer variation8^IpN5C25enViennaPierce gambit, Rushmere attack']'Ұ'HxBC25enViennaPierce gambit8\I-C25enViennaHamppe-Muzio, Dubois variation-[3IC25enViennaHamppe-Muzio gambitBZ]ਏ8rHC25enViennaHamppe-Allgaier gambit, Alapin variation0Y9;%C25enViennaHamppe-Allgaier gambit!X' ??C25enVienna gambitEWcYC25enViennaSteinitz gambit, Fraser-Minckwitz variationSZzC25enVienna game, Max Lange defense1P;4ƤC25enViennaZhuravlev countergambitO # Ӌ;yC25enVienna gameBN-I3缮JC24enBishop's OpeningUrusov gambit, Panov variation1M-'6VvC24enBishop's OpeningUrusov gambit PyWp. ~LP5sO ~#9C29enVienna gambit, Steinitz variation2rI n.ēeC29enVienna gambit, Wurzburger trap!q' Oe{C29enVienna gambit0p'+ m. C29enVienna gambitHeyde variation5o'5~)C29enVienna gambitBardeleben variation/n')[Kݝo |C29enVienna gambitPaulsen attack1m'-.9L_kC29enVienna gambitBreyer variation3l'1H5nC29enVienna gambitKaufmann variation!k ' AT @C29enVienna gambitj # `cӇ8> JC28enVienna game?i=3(7J$AC27enBoden-Kieseritsky gambitLichtenhein defense,h= ]GjgC27enBoden-Kieseritsky gambit,g1aNƋC27enViennaAlekhine variationf# ||NC27enVienna game'e'Րۄ\QC27enViennaAdams' gambit:dMţoF[C27enVienna`Frankenstein-Dracula' variationc # v9EC33enKing's gambit acceptedBishop's gambit, Fraser variationK&9OwkXvC33enKing's gambit acceptedBishop's gambit, McDonnell attackK%9O! ,cC33enKing's gambit acceptedBishop's gambit, McDonnell attackL$9Q CϻC33enKing's gambit acceptedBishop's gambit, Classical defenseG#9Gkg _C33enKing's gambit acceptedBishop's gambit, Grimm attackL"9Q_*T=C33enKing's gambit acceptedBishop's gambit, Classical defenseJ!9MA3A4C33enKing's gambit acceptedBishop's gambit, Greco variationL 9QVL4iC33enKing's gambit acceptedBishop's gambit, Chigorin's attack99+k`nU[C33enKing's gambit acceptedBishop's gambit (`ir|(Q69[$TTC33enKing's gambit acceptedBishop's gambit, Cozio (Morphy) defenseK59OͮiQC33enKing's gambit acceptedBishop's gambit, Morphy variationN49U*k>C33enKing's gambit acceptedBishop's gambit, Anderssen variationT39a^C33enKing's gambit acceptedBishop's gambit, Boren-Svenonius variationL29QVL4iC33enKing's gambit acceptedBishop's gambit, Gifford variationK19OB=}C33enKing's gambit acceptedBishop's gambit, Bledow variationW09gdu;2 C33enKing's gambit acceptedLopez-Gianutio counter-gambit, Hein variationX/9i8axC33enKing's gambit acceptedBishop's gambit, Lopez-Gianutio counter-gambitL.9QN)C33enKing's gambit acceptedBishop's gambit, Ruy Lopez defenseJ-9MԆCxXC33enKing's gambit acceptedBishop's gambit, Maurian defenseK,9OA$`C33enKing's gambit acceptedBishop's gambit, Steinitz defenseO+9Wo DfC33enKing's gambit acceptedBishop's gambit, Bryan counter-gambit -bYf -`D 9yBkC36enKing's gambit acceptedAbbazia defense (Classical defense, Modern defense[!])BC9=-Ma^aC35enKing's gambit acceptedCunningham, Euwe defenseHB9I4HC35enKing's gambit acceptedCunningham, Three pawns gambitCA9?ihlC35enKing's gambit acceptedCunningham, Bertin gambit<@ 91pKNQC35enKing's gambit acceptedCunningham defense:?9-R VC34enKing's gambit acceptedSchallop defense8>9)UKsC34enKing's gambit acceptedBecker defense9=9+4C34enKing's gambit acceptedFischer defenseA<9;S^C34enKing's gambit acceptedGianutio counter-gambitE;9C•i}C34enKing's gambit acceptedBonsch-Osmolovsky variation*: 9 Ǽ8.LC34enKing's knight's gambitM99SMhv1EC33enKing's gambit acceptedBishop's gambit, Jaenisch variationI89Kw*3 NxRC33enKing's gambit acceptedBishop's gambit, Paulsen attackO79WLC33enKing's gambit acceptedBishop's gambit, Bogolyubov variation Ha'h-UHQR9["OC37enKing's gambit acceptedSalvio gambit, Anderssen counter-attack>Q95KY>C37enKing's gambit acceptedSilberschmidt gambit7P9'H.C37enKing's gambit acceptedSalvio gambit;O9/=ZC37enKing's gambit acceptedMacDonnell gambit>N95?fC37enKing's gambit acceptedGhulam Kassim gambitGM9GK U'C37enKing's gambit acceptedLolli gambit, Young variationJL9M@'C37enKing's gambit acceptedLolli gambit (wild Muzio gambit)8K9)h*nC37enKing's gambit acceptedBlachly gambit@J99$L|C37enKing's gambit acceptedKing's knight's gambit:I9-[TFq3C37enKing's gambit acceptedSoerensen gambit$ vC36enKing's gambit acceptedAbbazia defense, Modern variation 1O|1^"^1*a 9 \Td4C39enKing's knight's gambitL`9QLt9uC38enKing's gambit acceptedPhilidor gambit, Schultz variation6_9%L⿰C38enKing's gambit acceptedGreco gambit9^9+Sy8C38enKing's gambit acceptedPhilidor gambit9]9+:VC38enKing's gambit acceptedHanstein gambit*\ 9 AC37enKing's gambit acceptedMuzio gambit, Kling and Horwitz counter-attackHY9I,-Xz[C37enKing's gambit acceptedMuzio gambit, Holloway defenseDX9A>"q2C37enKing's gambit acceptedMuzio gambit, From defense=W93FœC37enKing's gambit accepteddouble Muzio gambitIV9K8[ XC37enKing's gambit acceptedMuzio gambit, Paulsen variation6U9%^k?oǐC37enKing's gambit acceptedMuzio gambit9T9+r_uC37enKing's gambit acceptedHerzfeld gambit9S9+WC37enKing's gambit acceptedCochrane gambit {8g#/{Rm9]W C39enKing's gambit acceptedKieseritsky, Brentano (Campbell) defense\l9q:X" C39enKing's gambit acceptedKieseritsky, long whip defense, Jaenisch variation_k9wy ZC39enKing's gambit acceptedKieseritsky, long whip (Stockwhip, Classical) defenseFj9E>s0JC39enKing's gambit acceptedKieseritsky, Paulsen defenseFi9E҆*~]iC39enKing's gambit acceptedAllgaier, Schlechter defenseAh9;i YC39enKing's gambit acceptedAllgaier, Urusov attackAg9;S֗bC39enKing's gambit acceptedAllgaier, Walker attackEf9CJq<66C39enKing's gambit acceptedAllgaier, Blackburne gambitBe9=H>-lC39enKing's gambit acceptedAllgaier, Cook variationEd9CthFsC39enKing's gambit acceptedAllgaier, ThorOld variationAc9;=8}C39enKing's gambit acceptedAllgaier, Horny defense9b9+h9C39enKing's gambit acceptedAllgaier gambit ?XQv.?By9=BGY. C39enKing's gambit acceptedKieseritsky, Rice gambitLx9Q:gN|C39enKing's gambit acceptedKieseritsky, Berlin defense, 6.Bc4Xw9i NP#C39enKing's gambit acceptedKieseritsky, Berlin defense, Riviere variationEv9CYl0f?C39enKing's gambit acceptedKieseritsky, Berlin defenseFu9E;8q@C39enKing's gambit acceptedKieseritsky, Kolisch defenseFt9Eo?'T$.C39enKing's gambit acceptedKieseritsky, Neumann defenseFs9EN*n-C39enKing's gambit acceptedKieseritsky, Polerio defenseVr9eŮ}C39enKing's gambit acceptedKieseritsky, Salvio defense, Cozio variationQq9[}8 /GC39enKing's gambit acceptedKieseritsky, Salvio (Rosenthal) defenseWp9g]Θl<[C39enKing's gambit acceptedKieseritsky, Brentano defense, Caro variationGo9Gb80F3xC39enKing's gambit acceptedKieseritsky, Brentano defense[n9o;C:;MC39enKing's gambit acceptedKieseritsky, Brentano defense, Kaplanek variation ta'g; ~Mt3 ;{+lC41enPhilidorPhilidor counter-gambit& 1 /'ţC41enPhilidor's defenseD ]ƫ[C41enPhilidorLopez counter-gambit, Jaenisch variation0 5F;C40enLatvianPolerio variation,/:~3C40enLatvianBehting variation)7 $]#C40enLatvian gambit, 3.Bc4))R5l vC40enLatvianFraser defense.3 Yr]knC40enLatvianNimzovich variation*9 GOuCC40enLatvian counter-gambit3/):7C40enQP counter-gambitMaroczy gambit7~S VJ]ƖC40enQP counter-gambit (elephant gambit)%}/ uy-UfzpiwC42enPetrovClassical attack, Chigorin variation*,-wC42enPetrovClassical attack/+777ΐC42enPetrovCozio (Lasker) attack**-/B65C42enPetrovNimzovich attack))+'12C42enPetrovKaufmann attack'('{D C42enPetrovFrench attack$' - K C42enPetrov's defense4&=_%[C41enPhilidorHanham, Delmar variation8%EjֺC41enPhilidorHanham, Schlechter variation4$=h"C41enPhilidorHanham, Berger variation3#;WhDC41enPhilidorHanham, Kmoch variation5"?$唒C41enPhilidorHanham, Steiner variation4!={sC41enPhilidorHanham, Krause variation, -Lz% Q~C41enPhilidorHanham variation6AF@+C41enPhilidorNimzovich, Klein variation7C"C41enPhilidorNimzovich, Locock variation PAEb-zP'@'6VvC43enPetrovUrusov gambit=?S4k~.C43enPetrovModern attack, Bardeleben variation;>OqIPFC43enPetrovModern attack, Steinitz variation2==C#C43enPetrovModern attack, Main line2< =Md!IC43enPetrovModern (Steinitz) attack+;/}1OC42enPetrovItalian variation-:? sYSi C42enPetrov Three knights game+9/: !.C42enPetrovDamiano variation(8)Fj BC42enPetrovPaulsen attack)7+bz8C42enPetrovCochrane gambit;6O #TC42enPetrovClassical attack, close variation95Kˀ_YC42enPetrovClassical attack, Marshall trap>4U ;,tC42enPetrovClassical attack, Tarrasch variation>3U@ bC42enPetrovClassical attack, Marshall variation;2OۗA*D,C42enPetrovClassical attack, Mason variation>1U߭УC42enPetrovClassical attack, Jaenisch variation=0SBt8M C42enPetrovClassical attack, Maroczy variation ;X+a: tG{;=T_ z7P)C44enPonziani counter-gambit, Cordel variation;S[ ×#쭴C44enPonziani counter-gambit, Schmidt attack+R; x9y{_C44enPonziani counter-gambit0Q5,y XމC44enPonzianiRomanishin variation*P)0X+|zC44enPonzianiReti variation*O):n .C44enPonzianiFraser defense3N;Ukcj 3C44enPonzianiJaenisch counter-attack.M1Ƅ:C44enPonzianiSteinitz variation/L3786C44enPonzianiLeonhardt variation*K)>ACtC44enPonzianiCaro variation$J- _rC44enPonziani Opening"I) ?[C44enTayler Opening#H+ "I+iC44enInverted Hanham&G1 M$7=C44enInverted Hungarian#F+ 8*T֙C44enDresden Opening-E? T+OTC44enKonstantinopolsky Opening*D9 *Ͱ&{C44enIrish (Chicago) gambit$C - xͧ}C44enKing's pawn game=BS #ՍCC43enPetrovModern attack, Trifunovic variation>AUL*ZC43enPetrovModern attack, Symmetrical variation DGa_)fDh # A{C45enScotch game4g'3GC44enScotch gambitDubois-Reti defense/f')QE >C44enScotch gambitBenima defense3e'1PM@HC44enScotch gambitCochrane variation!d' n޿C44enScotch gambit3c'1pԔjC44enScotch gambitHanneken variation!b' t_ZMC44enScotch gambit/a'){Bc˭C44enScotch gambitVitzhum attack8`';ePSC44enScotch gambitCochrane-Shumov defense!_' HC44enScotch gambitJ^'_>C44enScotch gambitAnderssen (Paulsen, Suhle) counter-attack!]' E56roC44enScotch gambit>\UA=cC44enScotchGoering gambit, Bardeleben variation([)v/C44enScotchGoering gambit(Z)%C44enScotchSea-cadet mate(Y)P\zAKOC44enScotchGoering gambit6XEXSJC44enScotchRelfsson gambit ('MacLopez'),W1PmC44enScotchCochrane variation)V+s$(kC44enScotchLolli variation"U) JPC44enScotch Opening EnAh; ^(nE&} 1 ZaGC46enThree knights game.|5&]C45enScotchRomanishin variation*{-x~ %C45enScotchPotter variation+z/mUWfq^QC45enScotchBlumenfeld attack+y/ħgFVC45enScotchMeitner variation3x?VyP*'\C45enScotchPaulsen, Gunsberg defense(w)t(sC45enScotchPaulsen attack.v5Ek 3C45enScotchGottschall variation+u/W?C45enScotchBlackburne attackt#  2'Gga+C46enThree knightsSteinitz, Rosenthal variation3'1jm C46enThree knightsSteinitz variationA'M55kҙC46enThree knightsWinawer defense (Gothic defense)5~'5Ls)- C46enThree knightsSchlechter variation 0=\ i2l09%?iC49enFour knightsSymmetrical, Metger unpin5%7i%2C49enFour knightsSymmetrical variation3%3U3C49enFour knightsSvenonius variation2%1/{^3lC49enFour knightsJanowski variation % kz>UC49enFour knights4%5Vܧ8^uC49enFour knightsGunsberg counter-attack0 %-"+3VpC49enFour knightsdouble Ruy LopezP%mBbM#߸C48enFour knightsRubinstein counter-gambit, Henneberger variationM%gٵ~C48enFour knightsRubinstein counter-gambit, Exchange variationK%c'QwC48enFour knightsRubinstein counter-gambit Maroczy variation@%MBh1C48enFour knightsRubinstein counter-gambit, 5.Be2O%k`[&C48enFour knightsRubinstein counter-gambit, Bogolyubov variation9%?<6KmC48enFour knightsRubinstein counter-gambit2%1[4dC48enFour knightsMarshall variation >y:zS"u< >C0/Iz9 C50enGiuoco PianissimoItalian Four knights variation%// C)]C50enGiuoco Pianissimo5./-PxxvLC50enGiuoco PianissimoDubois variation%-/ ǔboC50enGiuoco Pianissimo-,%'QC50enGiuoco PianoJerome gambit6+%9{*C50enGiuoco PianoFour knights variation *% cW}AC50enGiuoco Piano9)/5'pC50enHungarian defenseTartakower variation%(/ `kC50enHungarian defense#'+ uHC50enRousseau gambit.&A Ȼ 6C50enBlackburne shilling gambit$% - ~&?8C50enKing's pawn game=$%GٟYC49enFour knightsNimzovich (Paulsen) variation;#%Cqٳ]C49enFour knightsSymmetrical, Maroczy system?"%KS 5%C49enFour knightsSymmetrical, Tarrasch variation%1)޼C51enEvans gambitUlvestad variation0=%- ':$C51enEvans gambitnormal variation <% #z̞C51enEvans gambit(;5 ϐcC51enEvans counter-gambit;:[ <XeC51enEvans gambit declined, Cordel variation>9a ĝ&ekAC51enEvans gambit declined, Showalter variation/8C tw@DC51enEvans gambit declined, 5.a4;7[ &ګC51enEvans gambit declined, Hicken variation<6] +>qqTC51enEvans gambit declined, Vasquez variation?5c \bC51enEvans gambit declined, Hirschbach variation;4[ QodӚLC51enEvans gambit declined, Pavlov variation:3Y ~^W[C51enEvans gambit declined, Lange variation)2 7 "SD-C51enEvans gambit declined41/+G^yC50enGiuoco PianissimoCanal variation Tt= Wm9wT U% 1Cב'bfC52enEvans gambit1T%/"C8 C52enEvans gambitRichardson attack S% A+ C52enEvans gambit2R%1LY96OC52enEvans gambitSokolsky variation3Q%3cq.C52enEvans gambitLevenfish variation1P%/ V:zY H .D+]C55enTwo knights defense, Perreux variation:yY qq+jzn2C55enTwo knights defense, Keidanz variation'x3 yC55enTwo knights defenseAwg 4֪QzC55enTwo knights defense (Modern Bishop's Opening)1v%/`C55enGiuoco pianoHolzhausen attack u% K;9N9(C55enGiuoco piano5t%7ǬZAC55enGiuoco pianoRosentreter variation's 3 @'Ӓ:C55enTwo knights defense7r%;>rC54enGiuoco PianoMoeller, bayonet attack9q%? z,C54enGiuoco PianoTherkatz-Herzog variation9p%?VDu+اC54enGiuoco PianoMoeller (Therkatz) attack2o%1) C54enGiuoco PianoSteinitz variation n% L6J1C54enGiuoco Piano0m%-P5TC54enGiuoco PianoAitken variation3l%3M9KC54enGiuoco PianoBernstein variation/k%+HHC54enGiuoco PianoGreco variation.j%)x!bC54enGiuoco PianoGreco's attack0i%-I`C54enGiuoco PianoCracow variation 9`I["r96 3+c ^C57enTwo knights defenseFritz variation9 31JC57enTwo knights defenseUlvestad variationG3M_]C57enTwo knights defenseWilkes Barre (Traxler) variation' 3 B; C57enTwo knights defense63+'P2C56enTwo knights defenseCanal variation73- 9B%C56enTwo knights defenseYurdansky attack' 3 7=C56enTwo knights defenseA#QG3(mZC55enTwo knightsMax Lange attack, Krause variationC#U1pUbC55enTwo knightsMax Lange attack, Steinitz variationE#YΠbAC55enTwo knightsMax Lange attack, Schlechter variation>#Kz߼ oC55enTwo knightsMax Lange attack, Loman defenseE#Y{캺yoC55enTwo knightsMax Lange attack, Rubinstein variationC~#U-?pC55enTwo knightsMax Lange attack, Marshall variationA}#Q:%xSdMC55enTwo knightsMax Lange attack, Berger variation/|#-+iWC55enTwo knightsMax Lange attack'{3 `y;{C55enTwo knights defense -O{Qp2W-' 3 &3.`?C59enTwo knights defense'3 #xHC58enTwo knights defense;35يFC58enTwo knights defenseBlackburne variation73-0:3C58enTwo knights defenseColman variation63+.x:hC58enTwo knights defensePaoli variation;35wC58enTwo knights defenseBogolyubov variation'3 I[2| C58enTwo knights defense83/ኛr hC58enTwo knights defenseMaroczy variation:33&=VtC58enTwo knights defenseYankovich variation<37ODC58enTwo knights defenseKieseritsky variation' 3 Īq C58enTwo knights defenseH3OśsYcC57enTwo knights defenseFegatello attack, Polerio defenseL3WVWZAC57enTwo knights defenseFegatello attack, Leonhardt variation73-TdwC57enTwo knights defenseFegatello attack7 3-'mҾC57enTwo knights defensePincus variation3 3%,a.4C57enTwo knights defenseLolli attack> 3;i [%C57enTwo knights defenseFritz, Gruber variation FOY)yK FG,a~(C62enRuy LopezOld Steinitz defense, Semi-Duras variationC+Y 'IwC62enRuy LopezOld Steinitz defense, Nimzovich attack1* 5ropC62enRuy LopezOld Steinitz defense>)Oo@C61enRuy LopezBird's defense, Paulsen variation+( )n@SC61enRuy LopezBird's defense='Mgpu2C60enRuy LopezCozio defense, Paulsen variation*&'u\ɞeC60enRuy LopezCozio defense@%S% |VC60enRuy LopezFianchetto (Smyslov/Barnes) defense-$-P|C60enRuy LopezBrentano defense1#5ѳ+@wC60enRuy LopezVinogradov variation+")_NBC60enRuy LopezLucena defense,!+\T+LC60enRuy LopezPollock defense0 3FpHbC60enRuy LopezNuernberg variation/ C KvrC60enRuy Lopez (Spanish Opening)9310TC59enTwo knights defenseSteinitz variation83/'{02C59enTwo knights defenseGoering variation73-搂xPC59enTwo knights defenseKnorre variation ,P Io-n,?<Q`L~6uRC65enRuy LopezBerlin defense, Kaufmann variation<;K 5C65enRuy LopezBerlin defense, Duras variation@:S-S C65enRuy LopezBerlin defense, Anderssen variation:9G%C65enRuy LopezBerlin defense, Mortimer trap?8QNC65enRuy LopezBerlin defense, Mortimer variation:7G0HvMC65enRuy LopezBerlin defense, Nyholm attack+6 )BTC65enRuy LopezBerlin defense*5'&C64enRuy LopezCordel gambit?4Q +irC64enRuy LopezClassical defense, Boden variationC3Yp/( C64enRuy LopezClassical defense, Charousek variationC2Y)o"C64enRuy LopezClassical defense, Benelux variation 41;bhU C64enRuy LopezClassical defense, 4.c3A0UP$ C64enRuy LopezClassical defense, Zaitsev variation7/ A2%C64enRuy LopezClassical (Cordel) defenseA.U$}AC63enRuy LopezSchliemann defense, Berger variation/- 1|8̟C63enRuy LopezSchliemann defense ]O <p)]EJ]7&C67enRuy LopezBerlin defense, Rio de Janeiro variation9IE+|~R[C67enRuy LopezOpen Berlin defense, 5...Be7EH]q{LAC67enRuy LopezOpen Berlin defense, Showalter variationDG[.zrC67enRuy LopezOpen Berlin defense, l'Hermet variation;F I?w9ӈC67enRuy LopezBerlin defense, Open variationFE_k@ cAC66enRuy LopezClosed Berlin defense, Chigorin variationBDW/lټlVIC66enRuy LopezClosed Berlin defense, Wolf variationGCaβ/R>C66enRuy LopezClosed Berlin defense, Showalter variationGBaYB65C66enRuy LopezClosed Berlin defense, Bernstein variation:AGM2C66enRuy LopezBerlin defense, Tarrasch trap?@QC66enRuy LopezBerlin defense, hedgehog variation6? ?W2qf=C66enRuy LopezBerlin defense, 4.O-O, d6@>SÕ};i,C65enRuy LopezBerlin defense, Beverwijk variation2=7n9`tC65enRuy LopezBerlin defense, 4.O-O :z<u2MZ:Z  aAoC70enRuy Lopez:YG5GީC69enRuy LopezExchange, Bronstein variation9XEL;[C69enRuy LopezExchange, Gligoric variation>WOwm TC69enRuy LopezExchange variation, Alapin gambit6V ?nְC69enRuy LopezExchange variation, 5.O-O;UIg}BrC68enRuy LopezExchange, Romanovsky variation6T?Ah\C68enRuy LopezExchange, Keres variation9SEvnBwC68enRuy LopezExchange, Alekhine variation/R 1˽3aC68enRuy LopezExchange variation@QS`S C67enRuy LopezBerlin defense, Rosenthal variation@PS[>v+C67enRuy LopezBerlin defense, Minckwitz variationAOUJ;GC67enRuy LopezBerlin defense, Trifunovic variation=NM.lwMC67enRuy LopezBerlin defense, Cordel variation;MIY XTC67enRuy LopezBerlin defense, Winawer attack@LS  $C67enRuy LopezBerlin defense, Pillsbury variation@KS GNC67enRuy LopezBerlin defense, Zukertort variation gX0?gGi aLMC73enRuy LopezModern Steinitz defense, Richter variation;h I($DC72enRuy LopezModern Steinitz defense, 5.O-OMgm~T6C71enRuy LopezModern Steinitz defense, Duras (Keres) variationMfmjGqۤ_C71enRuy LopezModern Steinitz defense, Three knights variation,e+,woC71enRuy LopezNoah's ark trap4d ;]_p9&C71enRuy LopezModern Steinitz defense8cCC70enRuy LopezTaimanov (chase/wing/Accelerated counterthrust) variation+a)5B~ѷC70enRuy LopezGraz variation+`)C70enRuy LopezCaro variation7_AJshC70enRuy LopezClassical defense deferred6^?a*C70enRuy LopezAlapin's defense deferred4];/JC70enRuy LopezBird's defense deferred3\9uVC70enRuy LopezCozio defense deferred8[CASJC70enRuy LopezFianchetto defense deferred L7z!]&qL"x |аHmC78enRuy Lopez5.O-O1+C77enRuy LopezAnderssen variation@uSC77enRuy LopezWormald attack, Gruenfeld variation4t;erƂuC77enRuy LopezWormald (Alapin) attackRswk1eC77enRuy LopezTreybal (Bayreuth) variation (Exchange var. deferred)>rOFYC77enRuy LopezFour knights (Tarrasch) variation+q ) ̻.}C77enRuy LopezMorphy defenseVp )%KUF8C76enRuy LopezModern Steinitz defense, Fianchetto (Bronstein) variationJog<ʭS_C75enRuy LopezModern Steinitz defense, Rubinstein variation4n ;FY1C75enRuy LopezModern Steinitz defense6m?JOB4gC95enRuy LopezClosed, Breyer, Simagin variation?IQ" ǀC95enRuy LopezClosed, Breyer, Gligoric variation@HSݼ^DHC95enRuy LopezClosed, Breyer, Borisenko variation2G 7_%UHC95enRuy LopezClosed, Breyer, 10.d43F 9+j %eC94enRuy LopezClosed, Breyer defense4E ;p{y`C93enRuy LopezClosed, Smyslov defenseQDu0o^C92enRuy LopezClosed, Flohr-Zaitsev system (Lenzerheide variation)JCgyѻCx0C92enRuy LopezClosed, Ragozin-Petrosian (`Keres') variation6B??@ɦC92enRuy LopezClosed, Kholmov variation=AM,/C92enRuy LopezClosed, Keres (9...a5) variation)@ %C92enRuy LopezClosed, 9.h39?E;z[*C91enRuy LopezClosed, Bogolyubov variation)> %A =$uC91enRuy LopezClosed, 9.d45==>e[wC90enRuy LopezClosed, Suetin variation [Y!g,E[*]9 bD00enBlackmar-Diemer gambit,\%% I6D00enQueen's pawnAnti-Veresov2[%1Yn!D00enQueen's pawnChigorin variation0Z%-LC+D00enQueen's pawnStonewall attack#Y+ cp "D00enBlackmar gambit;X[ >̐+D0D00enLevitsky attack (Queen's Bishop attack)JWy ;A~D00enQueen's pawn, Mason variation, Steinitz counter-gambit1VG 0}'uD00enQueen's pawn, Mason variation%U / dD00enQueen's pawn game8T C4Q۾C99enRuy LopezClosed, Chigorin, 12...c5d4QOSڐ]C97enRuy LopezClosed, Chigorin, Yugoslav system5P =_JXJ}C97enRuy LopezClosed, Chigorin defense;OIc͙ C96enRuy LopezClosed, Keres (...Nd7) defense6N?SJhvC96enRuy LopezClosed, Borisenko defense-M-O%(>C96enRuy LopezClosed (10...c5) ne%Gk.n"o ) G؃4D06enQueen's Gambit n% {tZa-D05enColle systemMm bn~~D05enQueen's pawn game, Rubinstein (Colle-Zukertort) variation%l/ R[meD05enQueen's pawn game:kY n oD05enQueen's pawn game, Zukertort variation%j / ]&bD05enQueen's pawn game%i / +z7D04enQueen's pawn game7h S @dD03enTorre attack (Tartakower variation)'g3 ]$U0D02enQueen's Bishop game%f/ C^SD02enQueen's pawn game7eS ;q -D02enQueen's pawn game, Krause variation9dW v[D02enQueen's pawn game, Chigorin variation%c / wPjD02enQueen's pawn game=b_ oxS1aD01enRichter-Veresov attack, Richter variation=a_ Fa(D01enRichter-Veresov attack, Veresov variation*` 9 `GDD01enRichter-Veresov attack9_+9bD00enBlackmar-DiemerLemberg counter-gambit/^+%gQQD00enBlackmar-DiemerEuwe defense 4~2`{&|4E| ;A"MXD09enQueen's Gambit declinedAlbin counter-gambit, 5.g3Q{;Yړ:D08enQueen's Gambit declinedAlbin counter-gambit, Balogh variationSz;]}V */D08enQueen's Gambit declinedAlbin counter-gambit, Janowski variationRy;[F~D08enQueen's Gambit declinedAlbin counter-gambit, Krenosz variationQx;YW(l=PD08enQueen's Gambit declinedAlbin counter-gambit, Alapin variation?w;5u0cD08enQueen's Gambit declinedAlbin counter-gambitLv;OY4 4}D08enQueen's Gambit declinedAlbin counter-gambit, Lasker trap?u ;5? KfD08enQueen's Gambit declinedAlbin counter-gambitOt;U_1(D07enQueen's Gambit declinedChigorin defense, Janowski variation;s ;-!`D07enQueen's Gambit declinedChigorin defenseIr;Il6,'?D06enQueen's Gambit declinedSymmetrical (Austrian) defense;q;-ѩ0wuyuiD06enQueen's Gambit declinedMarshall defenseAp;9 ^m of=rD06enQueen's Gambit declinedGrau (Sahovic) defense ?v-e.k%?N EI80׼bND14enQueen's Gambit declined"SlavExchange, Trifunovic variationM  EGJ |D14enQueen's Gambit declined"SlavExchange variation, 6.Bf4 Bf5B E1hHD13enQueen's Gambit declined"SlavExchange variationCE3bF,!iD12enQueen's Gambit declined"SlavAmsterdam variationBE10N6t9ݸD12enQueen's Gambit declined"SlavExchange variation@E-{БD12enQueen's Gambit declined"SlavLandau variation8 ERFD12enQueen's Gambit declined"Slav4.e3 Bf54E5sNOKD11enQueen's Gambit declined"Slav4.e3@E-ى oD11enQueen's Gambit declined"SlavBreyer variation5 EYǥyD11enQueen's Gambit declined"Slav3.Nf3JU1r YD10enQueen's Gambit declined"Slav defenseExchange variationFE9iDD10enQueen's Gambit declined"SlavWinawer counter-gambitL~} ŵ6tD10enQueen's Gambit declined"Slav defense, Alekhine variation8} U =mCDD10enQueen's Gambit declined"Slav defense K;u.TKBE1#d5D17enQueen's Gambit declined"SlavCarlsbad variation=E'S{xD17enQueen's Gambit declined"SlavKrause attack= E'Y wD17enQueen's Gambit declined"SlavCzech defenseAE/< ЕpD16enQueen's Gambit declined"SlavSteiner variationGE;#2ID16enQueen's Gambit declined"SlavSoultanbeieff variationAE/RQGD16enQueen's Gambit declined"SlavSmyslov variationI W-n~D16enQueen's Gambit declined"Slav acceptedAlapin variationDE5t\a^D15enQueen's Gambit declined"SlavTolush-Geller gambit;E#u!D15enQueen's Gambit declined"SlavSlav gambitIE? RL#qD15enQueen's Gambit declined"Slav5.e3 (Alekhine variation)9W &D15enQueen's Gambit declined"Slav acceptedD E5z2}D15enQueen's Gambit declined"SlavSchlechter variationC E3כbD15enQueen's Gambit declined"SlavSuechting variation5  Ec )̨E6D15enQueen's Gambit declined"Slav4.Nc3 lx.S%vCl;& ;-Q {CD22enQueen's Gambit acceptedAlekhine defenseW%;e-D21enQueen's Gambit acceptedAlekhine defense, Borisenko-Furman variation<$;/!SyD21enQueen's Gambit acceptedEricson variation0# ;%F[!D21enQueen's Gambit accepted3.Nf3;";-)VaߵJD20enQueen's Gambit acceptedSchwartz defense2;37%D26enQueen's Gambit acceptedClassical variation11 ;U0sAD26enQueen's Gambit accepted4...e6(05 !^5#K D25enQGA, Flohr variation2/I w5m3,{|D25enQGA, Janowsky-Larsen variation*.9 RZqXD25enQGA, Smyslov variation-  ukrD25enQGA, 4.e3-,? 5=D24enQGA, Bogolyubov variation+ ! #\CxnD24enQGA, 4.Nc3=*;1 oXD23enQueen's Gambit acceptedMannheim variation+) ; OD23enQueen's gambit accepted>(;3vdD22enQueen's Gambit acceptedHaberditz variationQ';Y24N1 D22enQueen's Gambit acceptedAlekhine defense, Alatortsev variation Oj,eyFO?E;5:A-D30enQueen's Gambit declinedCapablanca variation+D; y7_D30enQueen's Gambit declined>C;37jԷPbD30enQueen's Gambit declinedSpielmann variationCBE32WYD30enQueen's Gambit declined SlavSemmering variation0AE )`B,wD30enQueen's Gambit declined Slav>@;3+~D30enQueen's Gambit declinedStonewall variation0?E 9w)D30enQueen's Gambit declined Slav+> ; 0D30enQueen's gambit declinedG=;E>߹D29enQueen's Gambit acceptedClassical, Smyslov variation=< ;1"AD29enQueen's Gambit acceptedClassical, 8...Bb7E;;Aw~VD28enQueen's Gambit acceptedClassical, Flohr variation<:;/[X k5hD28enQueen's Gambit acceptedClassical, 7...b5;9 ;-;2D28enQueen's Gambit acceptedClassical, 7.Qe2F8;CD27enQueen's Gambit acceptedClassical, Geller variationJ7;KO[D27enQueen's Gambit acceptedClassical, Rubinstein variation Xz:<q)X;S ;-?- D32enQueen's Gambit declinedTarrasch defenseER;AQHD31enQueen's Gambit declinedSemi-Slav, Marshall gambitHQ;G\'05D31enQueen's Gambit declinedSemi-Slav, Abrahams variationEP;AlMD31enQueen's Gambit declinedSemi-Slav, Junge variationFO;CAll D31enQueen's Gambit declinedSemi-Slav, Koomen variationHN;G:O[zD31enQueen's Gambit declinedSemi-Slav, Noteboom variation4M;uD31enQueen's Gambit declinedSemi-SlavJL;KkD31enQueen's Gambit declinedCharousek (Petrosian) variation;K;-lΧD31enQueen's Gambit declinedAlapin variation=J;1PcިD31enQueen's Gambit declinedJanowski variation0I ;C&tD31enQueen's Gambit declined3.Nc3=H;1Ѕ,ъ?D30enQueen's Gambit declinedHastings variationEG;A(2"D30enQueen's Gambit declinedCapablanca-Duras variation;F;-sD30enQueen's Gambit declinedVienna variation ?i9y1?V_;c_\D34enQueen's Gambit declinedTarrasch, Prague variation, Normal positionN^ ;SvUsЧD34enQueen's Gambit declinedTarrasch, Prague variation, 7...Be7E];A`J/Y{]rD33enQueen's Gambit declinedTarrasch, Wagner variationE\;Aiq5OD33enQueen's Gambit declinedTarrasch, Prague variationg[;E_^D33enQueen's Gambit declinedTarrasch, Schlechter-Rubinstein system, Rey Ardid variationSZ;]TH#OTD33enQueen's Gambit declinedTarrasch, Folkestone (Swedish) variationQY ;YD33enQueen's Gambit declinedTarrasch, Schlechter-Rubinstein system;X;- @-D32enQueen's Gambit declinedTarrasch defenseLW;OpDD32enQueen's Gambit declinedTarrasch defense, Marshall gambitLV;O ]D32enQueen's Gambit declinedTarrasch defense, Tarrasch gambitDU;?}EoD32enQueen's Gambit declinedTarrasch defense, 4.cd edMT;QG">PD32enQueen's Gambit declinedTarrasch, von Hennig-Schara gambit 0ke%Iy0Fm;CH|@-D37enQueen's Gambit declinedClassical variation (5.Bf4)0l ;-6_D37enQueen's Gambit declined4.Nf3Kk ;MNP)N#D36enQueen's Gambit declinedExchange, positional line, 6.Qc2Lj;O9W"4ИGD35enQueen's Gambit declinedExchange, positional line, 5...c6Hi;GbD35enQueen's Gambit declinedExchange, chameleon variationDh;?-ۧXhD35enQueen's Gambit declinedExchange, positional lineGg;E^զD35enQueen's Gambit declinedExchange, Saemisch variation=f;1RcA) wsD35enQueen's Gambit declinedExchange variation:e;+t ;3ov|qD41enQueen's Gambit declinedSemi-Tarrasch, 5.cdUs;ajD40enQueen's Gambit declinedSemi-Tarrasch defense, Pillsbury variationMr;QolZtiD40enQueen's Gambit declinedSemi-Tarrasch, Levenfish variationOq;U'OBD40enQueen's Gambit declinedSemi-Tarrasch, Symmetrical variation@p ;7a\8 D40enQueen's Gambit declinedSemi-Tarrasch defenseDo ;?Z01nD39enQueen's Gambit declinedRagozin, Vienna variation%;3͜;3`D51enQueen's Gambit declinedManhattan variation+$; ݴ=BD51enQueen's Gambit declined=#;1$ =^jD51enQueen's Gambit declinedAlekhine variation<";/QGD51enQueen's Gambit declinedRochlin variation5! ;!QD51enQueen's Gambit declined4.Bg5 Nbd7 ?X!Y&X?N;;S`Se/1D56enQueen's Gambit declinedLasker defense, Teichmann variation9: ;)N[D56enQueen's Gambit declinedLasker defenseH9;G:Fk({GD55enQueen's Gambit declinedNeo-Orthodox variation, 7.Bh4>8;3qi^9+D55enQueen's Gambit declinedPetrosian variationI7;Iy{D55enQueen's Gambit declinedPillsbury attack04 ;>LxD55enQueen's Gambit declined6.Nf3F3 ;CVu%*D54enQueen's Gambit declinedAnti-neo-Orthodox variation>2;3)ZQ8$qD53enQueen's Gambit declined4.Bg5 Be7, 5.e3 O-O;1;-CD53enQueen's Gambit declinedLasker variation40 ;=՘D53enQueen's Gambit declined4.Bg5 Be7X/;gtpC D52enQueen's Gambit declinedCambridge Springs defense, Yugoslav variationJ.;K^^VD52enQueen's Gambit declinedCambridge Springs defense, 7.cd Ij`=IBG ;;F /©D63enQueen's Gambit declinedOrthodox defense, 7.Rc1XF ;gD62enQueen's Gambit declinedOrthodox defense, 7.Qc2 c5, 8.cd (Rubinstein)QE ;YpĴaD61enQueen's Gambit declinedOrthodox defense, Rubinstein variationMD;Q$e+UD60enQueen's Gambit declinedOrthodox defense, Rauzer variationPC;Wg1P?vD60enQueen's Gambit declinedOrthodox defense, Botvinnik variation;B ;-ƓD60enQueen's Gambit declinedOrthodox defense?A;5̽khD59enQueen's Gambit declinedTartakower variation_@ ;u6˺ŝD59enQueen's Gambit declinedTartakower (Makagonov-Bondarevsky) system, 8.cd Nxd5T? ;_Q/{֑D58enQueen's Gambit declinedTartakower (Makagonov-Bondarevsky) systemN>;S=kXD57enQueen's Gambit declinedLasker defense, Bernstein variationD= ;?lPD57enQueen's Gambit declinedLasker defense, Main lineL<;O8S!CD56enQueen's Gambit declinedLasker defense, Russian variation <\h F<ER ;Ay1EaD66enQueen's Gambit declinedOrthodox defense, Bd3 lineYQ ;iA:D65enQueen's Gambit declinedOrthodox defense, Rubinstein attack, Main linecP;}NV0D64enQueen's Gambit declinedOrthodox defense, Rubinstein attack, Gruenfeld variationbO;{Og߭D64enQueen's Gambit declinedOrthodox defense, Rubinstein attack, Karlsbad variation^N;s-ڳD64enQueen's Gambit declinedOrthodox defense, Rubinstein attack, Wolf variationYM ;i%,JFD64enQueen's Gambit declinedOrthodox defense, Rubinstein attack (with Rc1);L;-,<1Xz`D63enQueen's Gambit declinedOrthodox defenseVK;cbcj,ED63enQueen's Gambit declinedOrthodox defense, Swiss, Karlsbad variationZJ;kl-QD63enQueen's Gambit declinedOrthodox defense, Swiss (Henneberger) variationQI;Yh YD63enQueen's Gambit declinedOrthodox defense, Capablanca variationMH;QePD63enQueen's Gambit declinedOrthodox defense, Pillsbury attack 2==>g22^I m!?D70enNeo-Gruenfeld (Kemeri) defense)] 7 V<SD70enNeo-Gruenfeld defenseM\ ;Qg1wפkD69enQueen's Gambit declinedOrthodox defense, Classical, 13.deX[;g>_dD68enQueen's Gambit declinedOrthodox defense, Classical, 13.d1c2 (Vidmar)YZ;iQ)6)D68enQueen's Gambit declinedOrthodox defense, Classical, 13.d1b1 (Maroczy)PY ;WFvUD68enQueen's Gambit declinedOrthodox defense, Classical variationMX;Q=S &D67enQueen's Gambit declinedOrthodox defense, Bd3 line, 11.O-OYW;iKqQ1w_D67enQueen's Gambit declinedOrthodox defense, Bd3 line, Alekhine variationEV;AUsv|wD67enQueen's Gambit declinedOrthodox defense, Bd3 lineYU;i> irYD67enQueen's Gambit declinedOrthodox defense, Bd3 line, Janowski variationbT ;{&3M D67enQueen's Gambit declinedOrthodox defense, Bd3 line, Capablanca freeing manoevre[S;m"ߗ"D66enQueen's Gambit declinedOrthodox defense, Bd3 line, Fianchetto variation 0v@\.qAu0BqWV[VD83enGruenfeldGruenfeld gambit, Botvinnik variationCpYp|'qD83enGruenfeldGruenfeld gambit, Capablanca variation-o -_5%}D83enGruenfeldGruenfeld gambit"n ޝUtD82enGruenfeld4.Bf4.m /s6/D81enGruenfeldRussian variation-l-lVD80enGruenfeldLundin variation0k3,|3D80enGruenfeldStockholm variation)j%`zX$aD80enGruenfeldSpike gambit%i / Ê{eD80enGruenfeld defense3h K Q.e죵D79enNeo-Gruenfeld, 6.O-O, Main line+g ; ,tQ<D78enNeo-Gruenfeld, 6.O-O c6(f 5 әD77enNeo-Gruenfeld, 6.O-O7e S Q\D76enNeo-Gruenfeld, 6.cd Nxd5, 7.O-O Nb66E10enBlumenfeld counter-gambit, Spielmann variationH.u z/1E10enBlumenfeld counter-gambit, Dus-Chotimursky variation6-Q CE10enBlumenfeld counter-gambit accepted-,? ŭLd=E10enBlumenfeld counter-gambit%+ / i E10enQueen's pawn game5*A+IyE09enCatalanClosed, Sokolsky variation,) /S-ŰE09enCatalanClosed, Main line1(9'lG:*E08enCatalanClosed, Spassky gambit bc,LtFb0J))W4'fE17enQueen's IndianEuwe variation6I)5цڥE17enQueen's IndianOld Main line, 6.O-O6H)5GkE17enQueen's IndianOpovcensky variation )_=E15enQueen's Indian4.g34=)1(9E14enQueen's IndianAverbakh variation&< )?CE14enQueen's Indian4.e32; )-HM(E13enQueen's Indian4.Nc3, Main line<:)AFZGJE12enQueen's Indian4.Nc3, Botvinnik variation Ob0~:FO=Z%GFE24enNimzo-IndianSaemisch, Botvinnik variation2Y %12E24enNimzo-IndianSaemisch variation?X%KbkE23enNimzo-IndianSpielmann, Staahlberg variation=W%G 鵽YE23enNimzo-IndianSpielmann, San Remo variation=V%G95WE23enNimzo-IndianSpielmann, Karlsbad variation;U %C@kE23enNimzo-IndianSpielmann, 4...c5, 5.dc Nc63T %3*2NMIE22enNimzo-IndianSpielmann variation=S%GwbTE21enNimzo-IndianThree knights, Euwe variationAR%OvE21enNimzo-IndianThree knights, Korchnoi variation7Q %;}|E21enNimzo-IndianThree knights variationDP%U<*M9E20enNimzo-IndianRomanishin-Kasparov (Steiner) system.O%)=:pE20enNimzo-IndianMikenas attack/N%+~wPE20enNimzo-IndianKmoch variation(M 5 bxE20enNimzo-Indian defense7L )7) FE19enQueen's IndianOld Main line, 9.Qxc36K )5 haE18enQueen's IndianOld Main line, 7.Nc3 _Nq;S_Jj%aHACPE33enNimzo-IndianClassical, Milner-Barry (Zurich) variation2i %1 ; {xE33enNimzo-IndianClassical, 4...Nc69h%?ds3dE32enNimzo-IndianClassical, Adorjan gambit3g %3{jL݂E32enNimzo-IndianClassical variation4f %5{cE31enNimzo-IndianLeningrad, Main line7e%;"=QqE30enNimzo-IndianLeningrad, ...b5 gambit3d %38:.E30enNimzo-IndianLeningrad variation>c%Iz E29enNimzo-IndianSaemisch, Capablanca variation3b %3 b߮E29enNimzo-IndianSaemisch, Main line2a %1p4E28enNimzo-IndianSaemisch variation2` %1\PTk;E27enNimzo-IndianSaemisch variation;_%C'k뤩E26enNimzo-IndianSaemisch, O'Kelly variation2^ %1N"Z*Q5E26enNimzo-IndianSaemisch variation>]%I 5E25enNimzo-IndianSaemisch, Romanovsky variation9\%?Rg<\&E25enNimzo-IndianSaemisch, Keres variation2[ %1?lE25enNimzo-IndianSaemisch variation K@l,Z0K8z %=‚qm'E44enNimzo-IndianFischer variation, 5.Ne21y %/&TFE43enNimzo-IndianFischer variation;x %CO%oE42enNimzo-Indian4.e3 c5, 5.Ne2 (Rubinstein)5w%7- UE41enNimzo-Indiane3, Huebner variation'v %[>ꣂb?E41enNimzo-Indian4.e3 c58u%= MTAE40enNimzo-Indian4.e3, Taimanov variation$t %OD\iBE40enNimzo-Indian4.e39s %?2A"NhxE39enNimzo-IndianClassical, Pirc variation1r %/G 2E E38enNimzo-IndianClassical, 4...c5=q%GPqE37enNimzo-IndianClassical, San Remo variationJp %aIɟѻE37enNimzo-IndianClassical, Noa variation, Main line, 7.Qc2Co%S WZSE36enNimzo-IndianClassical, Noa variation, Main line>n%IO'>0E36enNimzo-IndianClassical, Botvinnik variation>m %IٿE36enNimzo-IndianClassical, Noa variation, 5.a3Al %O/NGrE35enNimzo-IndianClassical, Noa variation, 5.cd ed8k %=$E34enNimzo-IndianClassical, Noa variation L['E Y!LH %]$)kE54enNimzo-Indian4.e3, Gligoric system, Smyslov variationA  %O\pPE54enNimzo-Indian4.e3, Gligoric system with 7...dcC%St'2P`E53enNimzo-Indian4.e3, Gligoric system with 7...Nbd75%7O99 7E53enNimzo-Indian4.e3, Keres variation: %AZifE53enNimzo-Indian4.e3, Main line with ...c5: %A׍ZE52enNimzo-Indian4.e3, Main line with ...b67%;zW{r1E51enNimzo-Indian4.e3, Ragozin variation5 %7}E51enNimzo-Indian4.e3 e8g8, 5.Nf3 d7d5? %KlzE50enNimzo-Indian4.e3 e8g8, 5.Nf3, without ...d56 %9T`?E49enNimzo-Indian4.e3, Botvinnik system2 %1gE, E48enNimzo-Indian4.e3 O-O, 5.Bd3 d5/ %+QBE47enNimzo-Indian4.e3 O-O, 5.Bd31~%/xz O>E46enNimzo-IndianSimagin variation3}%3C󉜀E46enNimzo-Indian4.e3 O-OA{ %O #LE45enNimzo-Indian4.e3, Bronstein (Byrne) variation <t+b/c0<J'_@h;E62enKing's IndianFianchetto, Kavalek (Bronstein) variation:'?*eլ E62enKing's IndianFianchetto, Larsen system5 '58dE62enKing's IndianFianchetto variation/')IE61enKing's IndianSmyslov system0 E FYP+E61enKing's Indian defense, 3.Nc3>'GƦX,E60enKing's Indian3.g3, counterthrust variation%'yrq'GPwCQtE62enKing's IndianFianchetto, Simagin variationO'iѽhVE62enKing's IndianFianchetto, lesser Simagin (Spassky) variationF'WE62enKing's IndianFianchetto, Uhlmann (Szabo) variation7'9,ѳx넎E62enKing's IndianFianchetto with ...Nc6 Cd;e0}HyC3; '1eP42aE80enKing's IndianSaemisch variation=: 'ERUx4]E79enKing's IndianFour pawns attack, Main lineD9 'S3E78enKing's IndianFour pawns attack, with Be2 and Nf3E8'U دEW1E77enKing's IndianFour pawns attack, Florentine gambit27'/~`|I7E77enKing's IndianFour pawns attack16'-D.[|iE77enKing's IndianSix pawns attack95 '=F_E77enKing's IndianFour pawns attack, 6.Be2@4'K{BP0EYQu>4K'3wrJGE90enKing's IndianZinnowitz variation1J'-%EHE90enKing's IndianLarsen variation&I 'Ѕu-E90enKing's Indian5.Nf3=H 'E.E89enKing's IndianSaemisch, Orthodox Main lineD 'GVA/wE86enKing's IndianSaemisch, Orthodox, 7.Nge2 c6=C 'EG%32E85enKing's IndianSaemisch, Orthodox variation:B '?i/1E84enKing's IndianSaemisch, Panno Main line:A'?qNLY%E83enKing's IndianSaemisch, Panno formation:@'?;ע RE83enKing's IndianSaemisch, Ruban variation2? '/wGE83enKing's IndianSaemisch, 6...Nc6F> 'WwUE82enKing's IndianSaemisch, double Fianchetto variation:='? p϶E81enKing's IndianSaemisch, Byrne variation2< '/oE81enKing's IndianSaemisch, 5...O-O `l5AR`qZ '+M!bP@E97enKing's IndianOrthodox, Aronin-Taimanov variation (Yugoslav attack / Mar del Plata variation)>Y 'G³&E96enKing's IndianOrthodox, 7...Nbd7, Main line:X '?{E95enKing's IndianOrthodox, 7...Nbd7, 8.Re13W'1nCu![E94enKing's IndianOrthodox, 7...Nbd7;V'A,3&E94enKing's IndianOrthodox, Donner variation3U '1]CE94enKing's IndianOrthodox variationBT'O&E93enKing's IndianPetrosian system, Keres variationMĎUE93enKing's IndianPetrosian system, Main lineBR'OǃeGE92enKing's IndianPetrosian system, Stein variation1Q'-6$&E92enKing's IndianPetrosian system9P'=P<:5E92enKing's IndianGligoric-Taimanov system4O'3H5#E92enKing's IndianAndersson variation4N '3#u.SE92enKing's IndianClassical variation1M'---JE91enKing's IndianKazakh variation&L '}.eE91enKing's Indian6.Be2 /o'c7 h/6g Q gRhػA08esApertura Reti, Ataque indio de reyGf s 4t A07esApertura Reti, Ataque indio de rey (sistema Barcza))e 7 5XӇA06esApertura Reti, 2...d5*d 9 ƱNӍ7A05esApertura Reti, 2...Cf6)c 7 _z~wA04esApertura Reti, 1. Cf3)b 7 >Gԏ3A03esApertura Bird, 1...d5!a ' -A02esApertura Bird#` + ʝLA01esApertura Larsen+_ 9 㴰'A00esAperturas irregulares (incluye Apertura Anderssen, Apertura Amar, Apertura Barnes, Apertura Benko, Apertura Clemenz, Apertura Desprez, Apertura Dunst , Apertura Durkin, Ataque Grob, Apertura Mieses, Apertura Saragossa, Apertura Sokolsky, Apertura Van 't Kruijs, y Apertura Ware)H^'[{r0E99enKing's IndianOrthodox, Aronin-Taimanov, Benko attackE] 'UXݵE99enKing's IndianOrthodox, Aronin-Taimanov, Main lineA\ 'M+)}E98enKing's IndianOrthodox, Aronin-Taimanov, 9.Ne1J['_Xȏt!(E97enKing's IndianOrthodox, Aronin-Taimanov, bayonet attack Lm2 k5pIL5y O GbS#nA26esApertura inglesa, sistema cerrado9x W 6wA25esApertura inglesa, Siciliana invertida?w c %K;2;&A24esApertura inglesa, sistema Bremen con 3...g6Dv m ^{>tgaA23esApertura inglesa, sistema Bremen, variante Keres$u - -!clA22esApertura inglesa$t - -tA21esApertura inglesa$s - @`v{A20esApertura inglesa>r a >` 6cA19esInglesa, Mikenas-Carls, variante Siciliana3q K $A18esInglesa, variante Mikenas-Carls3p K Z"A17esApertura inglesa, Defensa Erizo$o - ja%k:A16esApertura inglesa:n Y =d A15esInglesa, 1...Cf6 (Defensa Anglo-India)9m W J ބA14esInglesa, declinada hacia Neo-Catalana$l - o MA13esApertura inglesa8k U Je VA12esInglesa, sistema defensivo Caro-Kann8j U Xb"^ A11esInglesa, sistema defensivo Caro-Kann$i -  A58esGambito Benko aceptado! ' haRA57esGambito Benko" ) 02A56esDefensa Benoni3 K 0 96A55esIndia antigua, línea principal6 Q jA54esIndia antigua, variante ucrainiana) 7 my;r"A53esDefensa india antigua$ -  7eA52esGambito Budapest0 E ޻)zHyA51esGambito Budapest no aceptadoK { Tc;OA50esApertura de peón de dama, Tango de los caballos negros3 K ։YA49esIndia de rey, fianchetto sin c47 S 02c>A48esIndia de rey, Defensa india de este) 7 h(fAA44esOld Benoni defence&  1 ehڣA43esOld Benoni defenceK  { P?UA42esDefensa moderna, sistema Averbakh también Defensa Wade; [ / A41esApertura de peón de dama, Defensa Wade R@s9Y+R5, O xdA77esBenoni, clásica, 9...Te8, 10.Cd2-+ ? й N1SA76esBenoni, clásica, 9...Te88* U waaY)A75esBenoni, clásica con...a6 y 10...Ag43) K u֫SA74esBenoni, clásica, 9...a6, 10.a4+( ; $L>A73esBenoni, clásica, 9.O-O/' C _xA72esBenoni, clásica sint 9.O-O+& ; f;wAA71esBenoni, clásica, 8.Bg51% G { g#A70esBenoni, clásica con e4 y Cf3I$ w S5,A69esBenoni, ataque de los cuatro peones, línea principal7# S < yxA68esBenoni, ataque de los cuatro peones-" ? qb(RcA67esBenoni, variante Taimanov7! S ]{{;A66esBenoni, variante tormenta de peones  % Iٳ-ԟUA65esBenoni, 6.e4= _ ך$Iw8A64esBenoni, variante del Fianchetto, 11...Te8= _ њI3 A63esBenoni, variante del Fianchetto, 9...Cbd73 K IR)A62esBenoni, variante del Fianchetto" ) ,v)A61esDefensa Benoni" ) ~r6=A60esDefensa Benoni 9oGU%V.l90> E x?4,fA95esHolandesa, Stonewall con Cc30= E iRLA94esHolandesa, Stonewall con Aa3<< ] tU-\A93esHolandesa, Stonewall, variante Botvinnik%; / lY)A92esDefensa holandesa%: / ;m(*A91esDefensa holandesa%9 / /=A90esDefensa holandesaD8 m ˮr@A89esHolandesa, Leningrad, variante principal con Cc6F7 q \rA88esHolandesa, Leningrad, varante principal con 7...c6<6 ] n1. A87esHolandesa, Leningrad, variante principal-5 ? JϻΩA86esHolandesa con 2.c4 y 3.g3.4 A ;;lXǔHA85esHolandesa con 2.c4 y 3.Cc3%3 / B@WA84esDefensa holandesaB2 i wVfFA83esHolandesa, gambito Staunton, variante StauntonQ1  fcRPA A82esHolandesa, gambito Staunton, incluye también Defensa Balogh%0 / ;djY$8A81esDefensa holandesa%/ / a+A80esDefensa holandesa+. ; -5JB|A79esBenoni, clásica, 11.f38- U C{ eA78esBenoni, clásica con ...Te8 y ...Ca6 'S3e#}O'%M / Fvђ-B10esDefensa Caro-Kann+L ; h 3I4B09esPirc, ataque austríaco9K W aBB08esPirc, sistema clásico (dos caballos) J % QB07esDefensa PircDI m k B06esDefensa Robatsch (Moderna), incluye Monkey's Bum?H c YvX)B05esDefensa Alekhine, variante moderna, 4...Ag46G Q [P31`VB04esDefensa Alekhine, variante moderna)F 7 I ~B03esDefensa Alekhine 3.d4$E - үPB02esDefensa Alekhine?D c VDaB01esDefensa escandinava (Contradefensa central)\C  A a  gشA98esHolandesa, variante Ilyin-Genevsky con Dc26@ Q bA97esHolandesa, variante Ilyin-Genevsky0? E  ;0A96esHolandesa, variante clásica Zl-d1 _6 Z/_ C mW B28esSiciliana, variante O'Kelly%^ / )j+B27esDefensa Siciliana-] ? ?7ݦB26esSiciliana, cerrada, 6.Ae3&\ 1 c7)j?(B25esSiciliana, cerrada&[ 1 11 B24esSiciliana, cerrada&Z 1 R\2B23esSiciliana, cerrada=Y _ f&EmB22esDefensa siciliana, variante Alapin (2.c3)gX 1 [7wbB21esSiciliana, ataque Grand Prix y Gambito Smith-Morra, incluyendo la Trampa Siberiana%W / dMJVJB20esDefensa siciliana0V E AǹpB19esCaro-Kann, clásica, 7...Cd70U E J߫[B18esCaro-Kann, variante clásica0T E %B17esCaro-Kann, variante Steinitz8S U >ϕEulB16esCaro-Kann, variante Bronstein-Larsen%R / c.sB15esDefensa Caro-Kann82,& ~xrlf`ZTNHB<60*$ zKy;x*wv uztjsZrJq9p'onmql^kRjGi;h-g fedzcmb_aS`E_6^&]\ [|ZoY]XLW<V+UT SxRiQZPJO<N,ML KzJhIUHBG0FED}ChBTA@@/?> =y , zhWD1m]I5"zg T @ -  weR?*} ztnhb\VPJD>82,& ~xrlf`ZTNHB<60*$ |vpjd^XRLF@:4.(" XØg˜XK<, xgQA1!r_M=*o^I3 r`P=*o[K<, |kYK@2$ whXM>.n_M>,~}y|gpaRD6)sgYK;*~jYE3"veUߜCޜ1ݜ ܜ ۛyڛiٛV؛?כ0֛՛ԚӚmҚYњIК8Ϛ-Κ!͚̙˙mʙ]əNș=Ǚ*ƙřĘw )E*~&U))n 7 u*\+B43esSiciliana, Kan, 5.Cc3)m 7 ̪>WB42esSiciliana, Kan, 5.Ad3+l ; m辕B41esSiciliana, variante Kan%k / ^T9rB40esDefensa SicilianaLj } r<&4B39esDefensa siciliana, fianchetto acelerado, variante BreyerUi  OX DбB38esDefensa siciliana, fianchetto acelerado, variante Maroczy, 6.Ae3Wh  a3B36esDefensa siciliana, fianchetto acelerado, variante MaróczyVf  V@B35esDefensa siciliana, fianchetto acelerado, variante moderna con Ac4Qe  LMY, B34esDefensa siciliana, fianchetto acelerado, variante del cambioCd k ݫB33esSiciliana, variante Sveshnikov (Lasker-Pelikan)%c / Q@j裗B32esDefensa sicilianaQb  ήe:B31esSiciliana, ataque Nimzovich-Rossolimo (con ...g6, sin ...d6)%a / ~{!B30esDefensa Siciliana<` ] ǒJj@B29esSiciliana, variante Nimzovich-Rubinstein Jr3v6)JE o |;$B61esSiciliana, Richter-Rauzer, variante Larsen, 7.Dd2- ? [( B60esSiciliana, Richter-Rauzer:~ Y 18B59esSiciliana, variante Boleslavsky, 7.Cb3'} 3 8hB58esSiciliana, clásicaV|   6B57esSiciliana, Sozin (no Scheveningen) incluyendo Trampa Magnus Smith{  Uw^B56esSiciliana=z _ >qCB55esSiciliana, Prins variation, Venice attacky  {,ĴB54esSiciliana1x G a2dB53esSiciliana, variante Chekhover=w _ W! B52esSiciliana, ataque Canal-Sokolsky, 3...Ad74v M M\8B51esSiciliana, ataque Canal-Sokolskyu  0ibB50esSiciliana0t E |יB49esSiciliana, variante Taimanov0s E v1{B48esSiciliana, variante TaimanovUB69esSiciliana, Richter-Rauzer, ataque Rauzer, defensa 7...a6, 11.Axf6V  Lo> B68esSiciliana, Richter-Rauzer, ataque Rauzer, defensa 7...a6, 9...Ae7V  aB67esSiciliana, Richter-Rauzer, ataque Rauzer, defensa 7...a6, 8...Ad7D m :ze5|B66esSiciliana, Richter-Rauzer, ataque Rauzer, 7...a6Y  f,OB65esSiciliana, Richter-Rauzer, ataque Rauzer, defensa 7...Ae7 , 9...Cxd4T  3@1 B64esSiciliana, Richter-Rauzer, ataque Rauzer, defensa 7...Ae7, 9.f4< ] \FgB63esSiciliana, Richter-Rauzer, ataque Rauzer5 O B62esSiciliana, Richter-Rauzer, 6...e6 =z3|HrD=D m %DN+WB91esSiciliana, Najdorf, variante Zagreb (Fianchetto)& 1 %MB90esSiciliana, Najdorf+ ; t 'B89esSiciliana, Sozin, 7.Ae38 U e|J,B88esSiciliana, Sozin, variante Leonhardt+ ; f!m$B87esSozin con ...a6 y ...b5+ ; Α嚽1B86esSiciliana, ataque SozinS  "ĵ=LCYB85esSiciliana, Scheveningen, variante clásica con ...Dc7 y ...Cc6H u UTTUsB84esSiciliana, Scheveningen (Paulsen), variante clásica2 I ޢ4ۭB83esSiciliana, Scheveningen, 6.Ae21 G P4[oڅB82esSiciliana, Scheveningen, 6.f49 W o'Z B81esSiciliana, Scheveningen, ataque Keres4 M "&Ͳ B80esSiciliana, variante ScheveningenA g i<ǘYB79esSiciliana, Dragón, ataque Yugoslavo, 12.h4]]D m O@B78esSiciliana, Dragón, ataque Yugoslavo, 10.O-O-O]]? c u )>&֟B77esSiciliana, Dragón, ataque Yugoslavo, 9.Ac4A g L {޽3B76esSiciliana, Dragón, ataque Yugoslavo, 7...O-O aZ)l)_$a8. U  C07esFrancesa, Tarrasch, variante abiertaJ- y )C06esFrancesa, Tarrasch, variante cerrada, línea principal8, U H_)[C05esFrancesa, Tarrasch, variante cerrada8+ U \&^8C04esFrancesa, Tarrasch, variante Guimard&* 1 zܽC03esFrancesa, Tarrasch1) G mr"l0C02esFrancesa, variante del avanceC( k nAC01esFrancesa, variante del cambio, Defensa Kingston$' - Kia3C00esDefensa francesa@& e ҮB99esSiciliana, Najdorf, 7...Ae7 línea principal/% C PU6nUB98esSiciliana, Najdorf, 7...Ae7Y$  fR6/KB97esSiciliana, Najdorf, 7...Db6 incluyendo variante del peón envenenado,# = DB96esSiciliana, Najdorf, 7.f4." A TB95esSiciliana, Najdorf, 6...e6-! ? r9vTJB94esSiciliana, Najdorf, 6.Ag5,  = XTm B93esSiciliana, Najdorf, 6.f4D m z"L!B92esSiciliana, Najdorf, variante Zagreb (Fianchetto) (tCF VzP(%> / k'2FoC23esApertura de alfil'= 3 UyFC22esApertura del centroC< k V2FC21esApertura del centro (incluyendo Gambito danés);  DnC20esApertura de peón de rey (incluye Apertura Alapín, Apertura López, Apertura Napoleón, Apertura portuguesa y Ataque Parham)6: Q NXCmC19esFrancesa, Winawer, avance, 6...Ce7:9 Y 9HC18esFrancesa, Winawer, variante del avance:8 Y (bBC17esFrancesa, Winawer, variante del avance:7 Y %?C16esFrancesa, Winawer, variante del avance:6 Y {;[C15esFrancesa, variante Winawer (Nimzovich)/5 C -@euC14esFrancesa, variante clásica/4 C lQ}C13esFrancesa, variante clásica23 I vvKbC12esFrancesa, variante MacCutcheon$2 - mH6qC11esDefensa Francesa.1 A O|}0yC10esFrancesa, variante PaulsenJ0 y cIꎴ)WC09esFrancesa, Tarrasch, variante abierta, línea principal JC28esApertura vienesaCB k v9EQ a K C42esDefensa Petrov, incluyendo Celada Marshall$P - jC41esDefensa Philidor O { ؝C40esApertura de caballo (incluyendo defensa Gunderam, defensa Greco, defensa Damiano , gambito elefante, y gambito letón.)oN A \Td4C39esGambito de rey aceptado, gambito Allagier y gambito Kiesertisky incluyendo el Gambito Rice :M)wEY+:Ih w BTC65esEspañola, Defensa Berlín incluyendo Celada Mortimer8g U 2%C64esEspañola, Defensa clásica (Cordel)1f G |8̟C63esEspañola, Defensa Schliemann3e K ropC62esEspañola, Defensa Old Steinitz+d ; n@SC61esEspañola, Defensa Bird3c K KvrC60esApertura española (Ruy López)/b C &3.`?C59esDefensa de los dos caballos/a C Īq C58esDefensa de los dos caballosO`  B; C57esDefensa de los dos caballos, incluyendo Ataque Fried Liver/_ C 7=C56esDefensa de los dos caballos/^ C @'Ӓ:C55esDefensa de los dos caballos ] % ikt9b:C54esGiuoco Piano \ % %N=C53esGiuoco Piano7[ S v:ĉ C52esGambito Evans con 4...Axb4 5.c3 Aa5!Z ' "SD-C51esGambito Evans/Y A ~&?8C50esApertura de peón de rey (incluyendo Gambito Blackburne Shilling, Defensa Húngara, Gambito Italiano, Celada Légal, Gambito Rousseau y Giuoco Pianissimo) YLR6Y9w W 0ȉR~C80esEspañola, Defensa abierta (Tarrasch)Gv s b0C79esEspañola, Defensa Steinitz diferida (Defensa Rusa)$u - |аHmC78esEspañola, 5.O-O-t ? ̻.}C77esEspañola, Defensa MorphyYs  )%KUF8C76esEspañola, Defensa Steinitz moderna, variante fianchetto (Bronstein)7r S FY1C75esEspañola, Defensa Steinitz moderna7q S 燧cI)C74esEspañola, Defensa Steinitz modernaIp w LMC73esEspañola, Defensa Steinitz moderna, variante Richter=o _ ($DC72esEspañola, Defensa Steinitz moderna 5.0-0[n  ]_p9&C71esEspañola, Defensa Steinitz moderna incluyendo Celada del Arca de Noém  aAoC70esEspañola9l W nְC69esEspañola, variante del cambio, 5.O-O2k I ˽3aC68esEspañola, variante del cambio@j e ?w9ӈC67esEspañola, Defensa Berlín, variante abierta9i W W2qf=C66esEspañola, Defensa Berlín, 4.O-O, d6 1^-xOLn1:  Y o@GC98esEspañola, cerrada, Chigorin, 12...Cc68 U _JXJ}C97esEspañola, cerrada, Defensa Chigorin/ C %o#CC96esEspañola, cerrada, 8...Ca55 O _%UHC95esEspañola, cerrada, Breyer, 10.d46 Q +j %eC94esEspañola, cerrada, Defensa Breyer7 S p{y`C93esEspañola, cerrada, Defensa Smyslov, = C92esEspañola, cerrada, 9.h3, = A =$uC91esEspañola, cerrada, 9.d41 G ht, 7C90esEspañola, cerrada (con...d6)4 M Ԥb|C89esEspañola, Contraataque Marshall& 1 -F7C88esEspañola, cerrada9~ W $m/3C87esEspañola, cerrada, variante Averbach-} ? z4xC86esEspañola, Ataque WorrallF| q J0uC85esEspañola, variante del cambio doblemente diferido.{ A ?zYC84esEspañola, Defensa cerrada8z U Tg C83esEspañola, abierta, Defensa clásica,y = '`;C82esEspañola, abierta, 9.c35x O P3K9C81esEspañola, abierta, Ataque Howell 1T-m Qp1< ] YǥyD11esGambito de dama declinado, Eslava, 3.Cf3= _ =mCDD10esGambito de dama declinado, Defensa EslavaH u "MXD09esGambito de dama declinado, Contragambito Albin, 5.g3S  ? KfD08esGambito de dama declinado, Contragambito Albin y Celada Lasker@ e !`D07esGambito de dama declinado, variante Chigorinv O G؃4D06esGambito de dama declinado (incluyendo la Defensa Báltica, Defensa Marshall y Defensa Simétrica)]  ]&bD05esApertura de peón de dama, variante Zukertort (incluyendo Sistema Colle)- ? +z7D04esApertura de peón de dama5 O @dD03esAtaque Torre, variante TartakowerU   wPjD02esApertura Grünfeld invertida (Apertura de peón de dama, 2. Cf3)$  - `GDD01esApertura Veresovk  9 dD00esApertura de peón de dama (incluyendo Gambito Blackmar-Diemer, Celada Halosar y otras);  [ 4Q۾C99esEspañola, cerrada, Chigorin, 12...c5d4 gq?xBg2$ I ukrD25esGambito de dama aceptado, 4.e33# K #\CxnD24esGambito de dama aceptado, 4.Cc3," = OD23esGambito de dama aceptado>! a Q {CD22esGambito de dama aceptado, Defensa Alekhine3  K %F[!D21esGambito de dama aceptado, 3.Cf3, = XA=D20esGambito de dama aceptadoI w N8D19esGambito de dama declinado, Eslava, variante HolandesaI w E.2D18esGambito de dama declinado, Eslava, variante HolandesaD m Y wD17esGambito de dama declinado, Eslava, Defensa ChecaP  n~D16esGambito de dama declinado, Eslava Aceptada, variante Alapin< ] c )̨E6D15esGambito de dama declinado, Eslava, 4.Cc3V  J |D14esGambito de dama declinado, Eslava, variante del cambio, 6.Af4 Af5J y hHD13esGambito de dama declinado, Eslava, variante del cambio? c RFD12esGambito de dama declinado, Eslava, 4.e3 Af5 G|3?] GG2 s Z01nD39esGambito de dama declinado, Ragozin, variante Vienna?1 c Nl_D38esGambito de dama declinado, variante Ragozin40 M -6_D37esGambito de dama declinado, 4.Cf3P/  NP)N#D36esGambito de dama declinado, cambio, línea posicional, 6.Dc2B. i \I䯹gD35esGambito de dama declinado, variante del cambio@- e vUsЧD34esGambito de dama declinado, Tarrasch, 7...Ae7W,  D33esGambito de dama declinado, Tarrasch, Sistema Schlechter-Rubinstein?+ c ?- D32esGambito de dama declinado, Defensa Tarrasch4* M C&tD31esGambito de dama declinado, 3.Cc3-) ? 0D30esGambito de dama declinadoH( u "AD29esGambito de dama aceptado, variante clásica, 8...Ab7F' q ;2D28esGambito de dama aceptado, variante clásica, 7.De2?& c :܎AD27esGambito de dama aceptado, variante clásica?% c U0sAD26esGambito de dama aceptado, variante clásica Mt._Z#M8@ U =՘D53esGambito de dama declinado, 4.Ag5 Ae7-? ? Mõ$kD52esGambito de dama declinadoh> 3 QD51esGambito de dama declinado, 4.Ag5 Cbd7 (Defensa Cambridge Springs y Celada Elefante)4= M 3*D50esGambito de dama declinado, 4.Ag5=< _ ͹EwD49esGambito de dama declinado, Meran, 11.Cxb5<; ] 9/KjD48esGambito de dama declinado, Meran, 8...a6@: e E(N WD47esGambito de dama declinado, Semi-Eslava 7.Ac4@9 e ޔCMrD46esGambito de dama declinado, Semi-Eslava 6.Ad3?8 c zO]D45esGambito de dama declinado, Semi-Eslava 5.e3E7 o  R+OD44esGambito de dama declinado, Semi-Eslava 5.Ag5 dxc4B6 i WdD43esGambito de dama declinado, Defensa Semi-EslavaC5 k U=)}7D42esGambito de dama declinado, Semi-Tarrasch, 7.Ad3B4 i ov|qD41esGambito de dama declinado, Semi-Tarrasch, 5.cdD3 m a\8 D40esGambito de dama declinado, Defensa Semi-Tarrasch }=%+]K  %,JFD64esGambito de dama declinado, Defensa Ortodoxa, Ataque Rubinstein (con Tc1)FJ q F /©D63esGambito de dama declinado, Defensa Ortodoxa, 7.Tc1]I  D62esGambito de dama declinado, Defensa Ortodoxa, 7.Dc2 c5, 8.cd (Rubinstein)UH  pĴaD61esGambito de dama declinado, Defensa Ortodoxa, variante Rubinstein?G c ƓD60esGambito de dama declinado, Defensa OrtodoxaeF - 6˺ŝD59esGambito de dama declinado, Sistema Tartakower (Makagonov-Bondarevsky), 8.cd Cxd5ZE  Q/{֑D58esGambito de dama declinado, Sistema Tartakower (Makagonov-Bondarevsky)PD  lPD57esGambito de dama declinado, Defensa Lasker, línea principal=C _ N[D56esGambito de dama declinado, Defensa Lasker4B M >LxD55esGambito de dama declinado, 6.Cf3IA w Vu%*D54esGambito de dama declinado, variante Anti-Neo-Ortodoxa H,d|QvH+Y ; ,tQ<D78esNeo-Grünfeld, 6.O-O c6(X 5 әD77esNeo-Grünfeld, 6.O-O7W S Q\D76esNeo-Grünfeld, 6.cd Cxd5, 7.O-O Cb6=V _ 2,_ID75esNeo-Grünfeld, 6.cd Cxd5, 7.O-O c5, 8.Cc33U K /]SvND74esNeo-Grünfeld, 6.cd Cxd5, 7.O-O(T 5 *P0mMD73esNeo-Grünfeld, 5.Cf39S W yKNN2D72esNeo-Grünfeld, 5.cd, línea principal'R 3 s'&E%D71esNeo-Grünfeld, 5.cd)Q 7 V<SD70esDefensa Neo-GrünfeldSP  g1wפkD69esGambito de dama declinado, Defensa Ortodoxa, clásica, 13.dxe5SO  FvUD68esGambito de dama declinado, Defensa Ortodoxa, variante clásicaoN A &3M D67esGambito de dama declinado, Defensa Ortodoxa, línea Ad3, Maniobra Liberadora de CapablancaiM 5 y1EaD66esGambito de dama declinado, Defensa Ortodoxa, línea Ad3 incluyendo Celada RubinsteineL - A:D65esGambito de dama declinado, Defensa Ortodoxa, Ataque Rubinstein, línea principal OlE|Bi1 ~O,k = vjgD96esGrünfeld, variante Rusa0j E 5.sD95esGrünfeld con 5.e3 O-O 6.Db3#i + |{GD94esGrünfeld, 5.e30h E ԃJ7D@D93esGrünfeld con 5.Af4 O-O 6.e3$g - sLO%D92esGrünfeld, 5.Af45f O n?D91esGrünfeld, variante tres caballos5e O xD90esGrünfeld, variante tres caballosId w ~i'TD89esGrünfeld, variante Spassky, línea principal, 13.Ad3Rc  '`"`sfD88esGrünfeld, variante Spassky, línea principal, 10...cd, 11.cd7b S rXU#bՏD87esGrünfeld, cambio, variante Spassky8a U %W:D86esGrünfeld, cambio, variante clásica2` I RN?lD85esGrünfeld, variante del cambio._ A q]D84esGambito Grünfeld aceptado%^ / _5%}D83esGambito Grünfeld$] - ޝUtD82esGrünfeld, 4.Af4,\ = s6/D81esGrünfeld, variante Rusa%[ / Ê{eD80esDefensa Grünfeld:Z Y Q.e죵D79esNeo-Grünfeld, 6.O-O, línea principal PMv; rC P3| K HM(E13esIndia de Dama, 4.Cc3, Main line){ 7 Eg}E12esDefensa India de Dama&z 1 0eҞE11esDefensa Bogo-India+y ; i E10esQueen's Pawn Game 3.Cf37x S S-ŰE09esCatalana, cerrada, línea principal,w = GZ9˅E08esCatalana, cerrada, 7.Dc2/v C ^(+.E07esCatalana, cerrada, 6...Cbd7,u = `cb,(E06esCatalana, cerrada, 5.Cf36t Q #fQ05E05esCatalana, abierta, línea clásica,s = 7jE04esCatalana, abierta, 5.Cf38r U ;ְE03esCatalana, abierta, variante Alekhine,q = >jRaE02esCatalana, abierta, 5.Da4%p / >ZzazE01esCatalana, cerrada}o ] "RE00esApertura de peón de dama (incluyendo Ataque NeoIndio, Ataque Trompowski, Apertura Catalana entre otros)@n e LSD99esDefensa Grünfeld, Smyslov, línea principal5m O ̆ꇰ@D98esGrünfeld, Rusa, variante Smyslov5l O LD97esGrünfeld, variante Rusa con 7.e4 -qBb-t$d-4  M 8:.E30esNimzo-India, variante Leningrad,D  m  b߮E29esNimzo-India, variante Saemisch, línea principal8  U p4E28esNimzo-India, variante Saemisch, 6.e3;  [ \PTk;E27esNimzo-India, variante Saemisch, 5...0-0M   N"Z*Q5E26esNimzo-India, variante Saemisch, 4.a3 Axc3+ 5.bxc3 c5 6.e3B i ?lE25esNimzo-India, variante Saemisch, variante Keres2 I 2E24esNimzo-India, variante Saemisch< ] @kE23esNimzo-India, Spielmann, 4...c5, 5.dc Cc62 I *2NMIE22esNimzo-India, variante Spielman> a }|E21esNimzo-India, variante de los trec caballos' 3 bxE20esDefensa Nimzo-India8 U ) FE19esIndia de Dama, Old Main line, 9.Dxc37 S haE18esIndia de Dama, Old Main line, 7.Cc3, = r)~E17esIndia de Dama, 5.Ag2 Ae77 S r~ uCE16esIndia de Dama, Capablanca variation'~ 3 _=E15esIndia de Dama, 4.g3(} 5 ?CE14esQueen's Indian, 4.e3 OE 0n/{O) 7 >󉜀E46esNimzo-India, 4.e3 O-OB i #LE45esNimzo-India, 4.e3, Bronstein (Byrne) variation8 U ‚qm'E44esNimzo-India, variante Fischer, 5.Ce21 G &TFE43esNimzo-India, variante Fischer< ] O%oE42esNimzo-India, 4.e3 c5, 5.Ce2 (Rubinstein)( 5 [>ꣂb?E41esNimzo-India, 4.e3 c5% / OD\iBE40esNimzo-India, 4.e38 U 2A"NhxE39esNimzo-India, Clásica, variante Pirc1 G G 2E E38esNimzo-India, Clásica, 4...c5Q  IɟѻE37esNimzo-India, Clásica, variante Noa, línea principal, 7.Dc2= _ ٿE36esNimzo-India, Clásica, variante Noa, 5.a3D m /NGrE35esNimzo-India, Clásica, variante Noa, 5.cxd5 exd57 S $E34esNimzo-India, Clásica, variante Noa; [ ; {xE33esNimzo-India, variante Clásica, 4...Cc62 I {jL݂E32esNimzo-India, variante ClásicaE o {cE31esNimzo-India, variante Leningrad, línea principal K\\)}K/, C FYP+E61esDefensa India de Rey, 3.Cc3(+ 5 wA8"E60esDefensa India de Rey7* S BƍE59esNimzo-India, 4.e3, Línea principalD) m .}/+E58esNimzo-India, 4.e3, Línea principal con 8...Axc3W(  3E57esNimzo-India, 4.e3, Línea principal con 8...dxc4 and 9...Axc4 cxd4C' k # E56esNimzo-India, 4.e3, Línea principal con 7...Cc6K& { -J?HE55esNimzo-India, 4.e3, sistema Gligoric, variante BronsteinB% i \pPE54esNimzo-India, 4.e3, sistema Gligoric con 7...dcA$ g ZifE53esNimzo-India, 4.e3, Línea principal con ...c5A# g ׍ZE52esNimzo-India, 4.e3, Línea principal con ...b66" Q }E51esNimzo-India, 4.e3 e8g8, 5.Cf3 d7d5/ a aM=*E64esIndia de Rey, Fianchetto, sistema Yugoslav<. ] S98BE63esIndia de Rey, Fianchetto, variante Panno9- W 8dE62esIndia de Rey, variante del Fianchetto CM_XyC3K K #u.SE92esIndia de Rey, variante Clásica'J 3 }.eE91esIndia de Rey, 6.Ae2'I 3 Ѕu-E90esIndia de Rey, 5.Cf3HH u .E89esIndia de Rey, Sämisch, línea principal de Ortodoxa=G _ մE88esIndia de Rey, Sämisch, Ortodoxa, 7.d5 c6:F Y ,vlgoE87esIndia de Rey, Sämisch, Ortodoxa, 7.d5?E c VA/wE86esIndia de Rey, Sämisch, Ortodoxa, 7.Cge2 c6=D _ G%32E85esIndia de Rey, Sämisch, variante OrtodoxaEC o i/1E84esIndia de Rey, Sämisch, línea principal de Panno3B K wGE83esIndia de Rey, Sämisch, 6...Cc6IA w wUE82esIndia de Rey, Sämisch, variante del doble Fianchetto3@ K oE81esIndia de Rey, Sämisch, 5...O-O3? K eP42aE80esIndia de Rey, variante SämischX>  RUx4]E79esDefensa India de Rey, Ataque de los cuatro peones, línea principalU=  3E78esDefensa India de Rey, Ataque de los cuatro peones, con Be2 y Cf3 ODBnJ&O5[ O gRhػA08daRéti åbning, Kongeindisk angrebEZ o 4t A07daRéti åbning, Kongeindisk angreb (Barcza system)(Y 5 5XӇA06daRéti åbning, 2..d5)X 7 ƱNӍ7A05daRéti åbning, 2..Sf6!W ' _z~wA04daRéti åbning!V ' >Gԏ3A03daBirds åbning!U ' -A02daBirds åbning-T ? ʝLA01daNimzowitsch-Larsen angreb-S ? 㴰'A00daIrregulære Ã¥bningerMR  XݵE99esIndia de Rey, Ortodoxa, Aronin-Taimanov, línea principalBQ i +)}E98esIndia de Rey, Ortodoxa, Aronin-Taimanov, 9.Ce1qP E M!bP@E97esIndia de Rey, Ortodoxa, variante Aronin-Taimanov (ataque Yugoslavo / variante Mar del Plata)FO q ³&E96esIndia de Rey, Ortodoxa, 7...Cbd7, línea principal;N [ {E95esIndia de Rey, Ortodoxa, 7...Cbd7, 8.Te13M K ]CE94esIndia de Rey, variante OrtodoxaEL o >MĎUE93esIndia de Rey, sistema Petrosian, línea principal mO1L u=m/o C 5A28daEngelsk, firspringer-system/n C ~-}JA27daEngelsk, trespringer-system+m ; GbS#nA26daEngelsk, lukkede system;l [ 6wA25daEngelsk, siciliansk med omvendte farver5k O %K;2;&A24daEngelsk, Bremen system med 3...g69j W ^{>tgaA23daEngelsk, Bremen system, Keres varianti  -!clA22daEngelskh  -tA21daEngelskg  @`v{A20daEngelsk>f a >` 6cA19daEngelsk, Mikenas-Carls, siciliansk variant2e I $A18daEngelsk, Mikenas-Carls variantd  Z"A17daEngelskc  ja%k:A16daEngelsk;b [ =d A15daEngelsk, 1...Sf6 (Anglo-Indisk forsvar)3a K J ބA14daEngelsk, Neo-Katalansk afslået`  o MA13daEngelsk._ A Je VA12daEngelsk, Caro-Kann forsvar.^ A Xb"^ A11daEngelsk, Caro-Kann forsvar]   A48daKongeindisk, Øst-indisk forsvar+ ; h(fAA44daGammelt Benoni forsvar*~ 9 ehڣA43daGammelt Benoni forsvar4} M P?UA42daModerne forsvar, Averbakh system&| 1 / A41daDronningebondespil&{ 1 XA40daDronningebondespilA58daBenkö gambit modtaget!  ' haRA57daBenkö gambit"  ) 02A56daBenoni forsvar.  A 0 96A55daGammelindisk, hovedvariant2  I jA54daGammelindisk, ukrainsk variant( 5 my;r"A53daGammelindisk forsvar$ -  7eA52daBudapestergambit- ? ޻)zHyA51daBudapestergambit afslået& 1 Tc;OA50daDronningebondespil3 K ։YA49daKongeindisk, fianchetto uden c4 ij;_#s1 i6* Q n1. A87daHollandsk, Leningrad, hovedvariant0) E JϻΩA86daHollandsk med 2. c4 og 3. g31( G ;;lXǔHA85daHollandsk med 2. c4 og 3. Sc3%' / B@WA84daHollandsk forsvar?& c wVfFA83daHollandsk, Staunton gambit, Stauntons linje.% A fcRPA A82daHollandsk, Staunton gambit%$ / ;djY$8A81daHollandsk forsvar%# / a+A80daHollandsk åbning," = -5JB|A79daBenoni, klassisk, 11. f39! W C{ eA78daBenoni, klassisk med ...Te8 og ...Sa65  O xdA77daBenoni, klassisk, 9...Te8, 10.Sd2- ? й N1SA76daBenoni, klassisk, 9...Te8: Y waaY)A75daBenoni, klassisk med ...a6 og 10...Lg44 M u֫SA74daBenoni, klassisk, 9...a6, 10. a4, = $L>A73daBenoni, klassisk, 9. O-O0 E _xA72daBenoni, klassisk uden 9. O-O+ ; f;wAA71daBenoni, klassisk, 8.Lg52 I { g#A70daBenoni, klassisk med e4 og Sf3 2{S+_-vQ.c2.= A k B06daRobatsch (Moderne) forsvar?< c YvX)B05daAljechins forsvar, Moderne variant, 4...Lg46; Q [P31`VB04daAljechins forsvar, Moderne variant%: / I ~B03daAljechins forsvar%9 / үPB02daAljechins forsvar 8 % VDaB01daSkandinavisk"7 ) , a ˮr@A89daHollandsk, Leningrad, hovedvariant med Sc6A+ g \rA88daHollandsk, Leningrad, hovedvariant med 7...c6 ]vN~V\]&P 1 c7)j?(B25daSiciliansk, Lukket&O 1 11 B24daSiciliansk, Lukket&N 1 R\2B23daSiciliansk, Lukket7M S f&EmB22daSiciliansk, Alapins variant (2. c3)GL s [7wbB21daSiciliansk, Grand Prix angreb og Smith-Morra Gambit&K 1 dMJVJB20daSiciliansk forsvar0J E AǹpB19daCaro-Kann, Klassisk, 7...Sd7/I C J߫[B18daCaro-Kann, Klassisk variant/H C %B17daCaro-Kann, Steinitz variant7G S >ϕEulB16daCaro-Kann, Bronstein-Larsen variant%F / c.sB15daCaro-Kann forsvar=E _ ^GIFB14daCaro-Kann, Panov-Botvinnik angreb, 5...e60D E wqLݣOB13daCaro-Kann, Afbytningsvariant%C / sYoB12daCaro-Kann forsvar2B I j1B11daCaro-Kann, Tospringer, 3...Lg4%A / Fvђ-B10daCaro-Kann forsvar*@ 9 h 3I4B09daPirc, østrigsk angreb7? S aBB08daPirc, Klassisk (Tospringer-) system > % QB07daPirc forsvar 0t3 `w#^0+` ; m辕B41daSiciliansk, Kan variant&_ 1 ^T9rB40daSiciliansk forsvarF^ q r<&4B39daSiciliansk, accelereret fianchetto, Breyer variantP]  OX DбB38daSiciliansk, accelereret fianchetto, Maroczy binding, 6. Le3Q\  a3B36daSiciliansk, accelereret fianchetto, Maroczy bindingPZ  V@B35daSiciliansk, accelereret fianchetto, moderne variant med Lc4IY w LMY, B34daSiciliansk, accelereret fianchetto, afbytningsvariant&X 1 ݫB33daSiciliansk forsvar&W 1 Q@j裗B32daSiciliansk forsvarUV  ήe:B31daSiciliansk, Nimzowitsch-Rossolimo angreb (med ...g6, uden ...d6)&U 1 ~{!B30daSiciliansk forsvar>T a ǒJj@B29daSiciliansk, Nimzowitsch-Rubinstein variant/S C mW B28daSiciliansk, O'Kelly variant&R 1 )j+B27daSiciliansk forsvar.Q A ?7ݦB26daSiciliansk, Lukket, 6. Le3 Z{HpO` Z;r [ 18B59daSiciliansk, Boleslavsky variant, 7. Sb3(q 5 8hB58daSiciliansk, Klassisk9p W  6B57daSiciliansk, Sozin (ikke Scheveningen)o ! Uw^B56daSiciliansk=n _ >qCB55daSiciliansk, Prins variant, Venedig-angrebm ! {,ĴB54daSiciliansk1l G a2dB53daSiciliansk, Chekhover variant>k a W! B52daSiciliansk, Canal-Sokolsky angreb, 3...Ld7Vj  M\8B51daSiciliansk, Canal-Sokolsky (Nimzowitsch-Rossolimo, Moskva) angrebi ! 0ibB50daSiciliansk0h E |יB49daSiciliansk, Taimanov variant0g E v1{B48daSiciliansk, Taimanov variantWB42daSiciliansk, Kan, 5. Ld3 _M Y]_1 G A~ a ؜B71daSiciliansk, Dragevar., Löwenfisch variant,} = 2ᇧSB70daSiciliansk, DragevariantW|  [>UB69daSiciliansk, Richter-Rauzer, Rauzer angreb, 7...a6 forsvar, 11.Lxf6W{  Lo> B68daSiciliansk, Richter-Rauzer, Rauzer angreb, 7...a6 forsvar, 9...Le7Wz  aB67daSiciliansk, Richter-Rauzer, Rauzer angreb, 7...a6 forsvar, 8...Ld7Ey o :ze5|B66daSiciliansk, Richter-Rauzer, Rauzer angreb, 7...a6Yx  f,OB65daSiciliansk, Richter-Rauzer, Rauzer angreb, 7...Le7 forsvar, 9...Sxd4Uw  3@1 B64daSiciliansk, Richter-Rauzer, Rauzer angreb, 7...Le7 forsvar, 9.f4=v _ \FgB63daSiciliansk, Richter-Rauzer, Rauzer angreb6u Q B62daSiciliansk, Richter-Rauzer, 6...e6Ft q |;$B61daSiciliansk, Richter-Rauzer, Larsen variant, 7. Dd2.s A [( B60daSiciliansk, Richter-Rauzer >Dh v?m>, = f!m$B87daSozin med ...a6 og ...b5,  = Α嚽1B86daSiciliansk, Sozin angrebU   "ĵ=LCYB85daSiciliansk, Scheveningen, klassisk variant med ...Dc7 and ...Sc6H  u UTTUsB84daSiciliansk, Scheveningen (Paulsen), klassisk variant4  M ޢ4ۭB83daSiciliansk, Scheveningen, 6. Le23  K P4[oڅB82daSiciliansk, Scheveningen, 6. f4: Y o'Z B81daSiciliansk, Scheveningen, Keres angreb4 M "&Ͳ B80daSiciliansk, Scheveningen variantE o i<ǘYB79daSiciliansk, Dragevar., jugoslavisk angreb, 12. h4H u O@B78daSiciliansk, Dragevar., jugoslavisk angreb, 10. O-O-OE o u )>&֟B77daSiciliansk, Dragevar., jugoslavisk angreb, 9. Lc4F q L {޽3B76daSiciliansk, Dragevar., jugoslavisk angreb, 7...O-O= _ @B75daSiciliansk, Dragevar., jugoslavisk angreb; [ ɔH'.B74daSiciliansk, Dragevar., klassisk, 9. Sb3; [ WM!iB73daSiciliansk, Dragevar., klassisk, 8. O-O Wk$zHqT$W4  M H_)[C05daFransk, Tarrasch, lukket variant: Y \&^8C04daFransk, Tarrasch, Guimard hovedvariant$ - zܽC03daFransk, Tarrasch/ C mr"l0C02daFransk, fremrykningsvariant- ? nAC01daFransk, afbytningsvariant  Kia3C00daFransk= _ ҮB99daSiciliansk, Najdorf, 7...Se7 Hovedvariant0 E PU6nUB98daSiciliansk, Najdorf, 7...Le70 E fR6/KB97daSiciliansk, Najdorf, 7...Db6. A DB96daSiciliansk, Najdorf, 7. f4/ C TB95daSiciliansk, Najdorf, 6...e6/ C r9vTJB94daSiciliansk, Najdorf, 6. Lg5. A XTm B93daSiciliansk, Najdorf, 6. f4D m z"L!B92daSiciliansk, Najdorf, Zagreb (fianchetto) variantD m %DN+WB91daSiciliansk, Najdorf, Zagreb (fianchetto) variant' 3 %MB90daSiciliansk, Najdorf- ? t 'B89daSiciliansk, Sozin, 7. Le38 U e|J,B88daSiciliansk, Sozin, Leonhardt variant 2JZ+v:f213 G 0M.C24daLøberåbning, Berlin forsvar!2 ' k'2FoC23daLøberåbning 1 % UyFC22dacentrumsspil 0 % V2FC21dacentrumsspil"/ ) DnC20daKongebondespilB. i NXCmC19daFransk, Winawer, fremryknings-variant, 6...Se79- W 9HC18daFransk, Winawer, fremryknings-variant9, W (bBC17daFransk, Winawer, fremryknings-variant:+ Y %?C16daFransk, Winawer, fremryknings- variant9* W {;[C15daFransk, Winawer (Nimzowitsch) variant,) = -@euC14daFransk, klassisk variant$( - lQ}C13daFransk, klassisk/' C vvKbC12daFransk, MacCutcheon variant"& ) mH6qC11daFransk forsvar+% ; O|}0yC10daFransk, Paulsen variantA$ g cIꎴ)WC09daFransk, Tarrasch, åben variant, hovedvariant8# U ޚ^ C08daFransk, Tarrasch, åben, 4.exd5 exd53" K  C07daFransk, Tarrasch, åben variantB! i )C06daFransk, Tarrasch, lukket variant, hovedvariant @f0\-_3 f@#I + ZaGC46daTrespringerspilH  A{C45daSkotsk'G 3 xͧ}C44daKongebondespil game5F O Md!IC43daPetrov, moderne (Steinitz) angreb#E + K C42daPetrovs forsvar%D / jC41daPhilidors forsvar)C 7 ؝C40daKongespringer åbning(B 5 \Td4C39daKongespringer gambit(A 5 A = pKNQC35daKGA, Cunninghams forsvar(= 5 Ǽ8.LC34daKongespringer gambit(< 5 ԉFC33daKongegambit modtaget*; 9 44uC32daKGD, Falkbeer, 5. dxe4,: = p8C31daKGD, Falkbeers modgambit9 # Rwe)C30daKongegambit38 K AT @C29daWiener gambit, Kaufmann variant7 # `cӇ8> JC28daWienerparti6 # v9Ec7T~\1n>-* ? WdD43daQGD; Semi-slavisk forsvar.) A U=)}7D42daQGD; Semi-Tarrasch, 7. Ld3-( ? ov|qD41daQGD; Semi-Tarrasch, 5. cd.' A a\8 D40daQGD; Semi-Tarrasch forsvar.& A Z01nD39daQGD; Ragozin, Wien variant(% 5 Nl_D38daQGD; Ragozin variant$ # -6_D37daQGD; 4. Sf3A# g NP)N#D36daQGD; afbytning, positionsspilsvariant, 6. Dc2 " % \I䯹gD35daQGD; 3...Sf6*! 9 vUsЧD34daQGD; Tarrasch, 7...Le7?  c D33daQGD; Tarrasch, Schlechter-Rubinstein system) 7 ?- D32daQGD; Tarrasch forsvar # C&tD31daQGD, 3. Sc3+ ; 0D30daDronninggambit afslået1 G "AD29daQGA; klassisk variant 8...Lb70 E ;2D28daQGA; klassisk variant 7. De2) 7 :܎AD27daQGA; klassisk variant) 7 U0sAD26daQGA; klassisk variant ! ukrD25daQGA, 4. e3 # #\CxnD24daQGA, 4. Sc3+ ; OD23daDronninggambit modtaget UqBa, aUI= w D62daQGD; Ortodokst forsvar, 7. Dc2 c5, 8. cd (Rubinstein)>< a pĴaD61daQGD; Ortodokst forsvar, Rubinstein variant*; 9 ƓD60daQGD; Ortodokst forsvarO:  6˺ŝD59daQGD; Tartakower (Makagonov-Bondarevsky) system, 8. cd Sxd5B9 i Q/{֑D58daQGD; Tartakower (Makagonov-Bondarevsky) system68 Q lPD57daQGD; Laskers forsvar, hovedvariant(7 5 N[D56daQGD; Laskers forsvar6 # >LxD55daQGD; 6. Sf325 I Vu%*D54daQGD; Anti-neo-Ortodoks variant#4 + =՘D53daQGD; 4. Lg5 Le73  Mõ$kD52daQGD$2 - QD51daQGD; 4. Lg5 Sbd71 # 3*D50daQGD; 4. Lg5*0 9 ͹EwD49daQGD; Meraner, 11. Sxb5(/ 5 9/KjD48daQGD; Meraner, 8...a6,. = E(N WD47daQGD; Semi-slavisk 7. Lc4,- = ޔCMrD46daQGD; Semi-slavisk 6. Ld3+, ; zO]D45daQGD; Semi-slavisk 5. e3/+ C  R+OD44daQGD; Semi-slavisk 5. Lg5 dc R3`c+R,M = ,tQ<D78daNeo-Grünfeld, 6. O-O c6)L 7 әD77daNeo-Grünfeld, 6. O-O9K W Q\D76daNeo-Grünfeld, 6. cd Sxd5, 7. O-O Sb6?J c 2,_ID75daNeo-Grünfeld, 6. cd Sxd5, 7. O-O c5, 8.Sc35I O /]SvND74daNeo-Grünfeld, 6. cd Sxd5, 7. O-O)H 7 *P0mMD73daNeo-Grünfeld, 5. Sf36G Q yKNN2D72daNeo-Grünfeld, 5. cd, hovedvariant(F 5 s'&E%D71daNeo-Grünfeld, 5. cd)E 7 V<SD70daNeo-Grünfeld forsvar>D a g1wפkD69daQGD; Ortodokst forsvar, klassisk, 13. dxe5 I F /©D63daQGD; Ortodokst forsvar, 7. Tc1 GmFm1e1 xG._ A vjgD96daGrünfeld, russisk variant2^ I 5.sD95daGrünfeld med 5. e3 O-O 6. Db3$] - |{GD94daGrünfeld, 5. e32\ I ԃJ7D@D93daGrünfeld med 5. Lf4 O-O 6. e3%[ / sLO%D92daGrünfeld, 5. Lf41Z G n?D91daGrünfeld, Trespringervariant1Y G xD90daGrünfeld, TrespringervariantEX o ~i'TD89daGrünfeld, Spassky variant, hovedvariant, 13. Ld3MW  '`"`sfD88daGrünfeld, Spassky variant, hovedvariant, 10...cd, 11. cd9V W rXU#bՏD87daGrünfeld, afbytning, Spassky variant:U Y %W:D86daGrünfeld, afbytning, klassisk variantBT i RN?lD85daGrünfeld, afbytningsvariant, Nadanian variant-S ? q]D84daGrünfeld gambit modtaget$R - _5%}D83daGrünfeld gambit$Q - ޝUtD82daGrünfeld 4. Lf4.P A s6/D81daGrünfeld; russisk variant%O / Ê{eD80daGrünfeld forsvar7N S Q.e죵D79daNeo-Grünfeld, 6. O-O, hovedvariant CL#a)a1pC*r 9 _=E15daDronningeindisk, 4. g3*q 9 ?CE14daDronningeindisk, 4. e39p W HM(E13daDronningeindisk, 4. Sc3, hovedvariant+o ; Eg}E12daDronningeindisk forsvar'n 3 0eҞE11daBogo-Indisk forsvar-m ? i E10daDronningebondespil 3. Sf33l K S-ŰE09daKatalansk, lukket, hovedvariant-k ? GZ9˅E08daKatalansk, lukket, 7. Dc2/j C ^(+.E07daKatalansk, lukket, 6...Sbd7-i ? `cb,(E06daKatalansk, lukket, 5. Sf35h O #fQ05E05daKatalansk, åbent, klassisk linje-g ? 7jE04daKatalansk, åbent, 5. Sf37f S ;ְE03daKatalansk, åbent, Aljechin variant-e ? >jRaE02daKatalansk, åbent, 5. Da4%d / >ZzazE01daKatalansk, lukket&c 1 "RE00daDronningebondespilz a @kE23daNimzo-indisk, Spielmann, 4...c5, 5. dc Sc63y K *2NMIE22daNimzo-indisk, Spielmann variant6x Q }|E21daNimzo-indisk, Trespringer- variant(w 5 bxE20daNimzo-indisk forsvarAv g ) FE19daDronningeindisk, gammel hovedvariant, 9. Dxc3@u e haE18daDronningeindisk, gammel hovedvariant, 7. Sc3/t C r)~E17daDronningeindisk, 5. Lg2 Le77s S r~ uCE16daDronningeindisk, Capablanca variant YS zE q=Y2 I QBE47daNimzo-indisk, 4. e3 O-O, 5.Ld3+ ; >󉜀E46daNimzo-indisk, 4. e3 O-OB i #LE45daNimzo-indisk, 4. e3, Bronstein (Byrne) variant9 W ‚qm'E44daNimzo-indisk, Fischer variant, 5. Se21 G &TFE43daNimzo-indisk, Fischer variant?  c O%oE42daNimzo-indisk, 4. e3 c5, 5. Se2 (Rubinstein)*  9 [>ꣂb?E41daNimzo-indisk, 4. e3 c5'  3 OD\iBE40daNimzo-indisk, 4. e38  U 2A"NhxE39daNimzo-indisk, klassisk, Pirc variant2  I G 2E E38daNimzo-indisk, klassisk, 4...c5M  IɟѻE37daNimzo-indisk, klassisk, Noa variant, Hovedvariant, 7. Dc2> a ٿE36daNimzo-indisk, klassisk, Noa variant, 5. a3E o /NGrE35daNimzo-indisk, klassisk, Noa variant, 5. cxd5 exd57 S $E34daNimzo-indisk, klassisk, Noa variant; [ ; {xE33daNimzo-indisk, klassisk variant, 4...Sc62 I {jL݂E32daNimzo-indisk, klassisk variant KH BYK2! I 8dE62daKongeindisk, fianchettovariant/  C FYP+E61daKongeindisk forsvar, 3. Sc3' 3 wA8"E60daKongeindisk forsvar5 O BƍE59daNimzo-indisk, 4. e3, hovedvariantB i .}/+E58daNimzo-indisk, 4. e3, hovedvariant med 8...Lxc3T  3E57daNimzo-indisk, 4. e3, hovedvariant med 8...dxc4 og 9...Lxc4 cxd4A g # E56daNimzo-indisk, 4. e3, hovedvariant med 7...Sc6K { -J?HE55daNimzo-indisk, 4. e3, Gligoric system, Bronstein variantC k \pPE54daNimzo-indisk, 4. e3, Gligoric system med 7...dc? c ZifE53daNimzo-indisk, 4. e3, hovedvariant med ...c5? c ׍ZE52daNimzo-indisk, 4. e3, hovedvariant med ...b69 W }E51daNimzo-indisk, 4. e3 e8g8, 5. Sf3 d7d5@ e lzE50daNimzo-indisk, 4. e3 e8g8, 5. Sf3, uden ...d59 W T`?E49daNimzo-indisk, 4. e3, Botvinnik system6 Q gE, E48daNimzo-indisk, 4. e3 O-O, 5. Ld3 d5 gJ ESgA1 g 3E78daKongeindisk, firbonde-angreb, med Le2 and Sf380 U F_E77daKongeindisk, firbonde-angreb, 6. Le20/ E )E76daKongeindisk, firbonde-angreb7. S aE75daKongeindisk, Averbakh, hovedvariant1- G R gE74daKongeindisk, Averbakh, 6...c5', 3 xa|Z^E73daKongeindisk, 5. Le2,+ = 'DDr(E72daKongeindisk med e4 og g39* W "PE71daKongeindisk, Makagonov system (5. h3)&) 1 2[id@]}E70daKongeindisk, 4. e4B( i \^ 8'H$E69daKongeindisk, fianchetto, klassisk hovedvariantC' k n[DRmE68daKongeindisk, fianchetto, klassisk variant, 8.e46& Q mAE67daKongeindisk, fianchetto med ...Sd7>% a Zby¾E66daKongeindisk, fianchetto, jugoslavisk Panno4$ M 8E65daKongeindisk, jugoslavisk, 7. O-O?# c aM=*E64daKongeindisk, fianchetto, jugoslavisk system:" Y S98BE63daKongeindisk, fianchetto, Panno variant ]V\[1]1A G ]CE94daKongeindisk, ortodoks variant?@ c >MĎUE93daKongeindisk, Petrosjan system, Hovedvariant1? G #u.SE92daKongeindisk, klassisk variant'> 3 }.eE91daKongeindisk, 6. Le2'= 3 Ѕu-E90daKongeindisk, 5. Sf3@< e .E89daKongeindisk, Sämisch, ortodoks hovedvariant<; ] մE88daKongeindisk, Sämisch, ortodoks 7. d5 c6:: Y ,vlgoE87daKongeindisk, Sämisch, ortodoks, 7. d5?9 c VA/wE86daKongeindisk, Sämisch, ortodoks, 7. Sge2 c6;8 [ G%32E85daKongeindisk, Sämisch, ortodoks variant=7 _ i/1E84daKongeindisk, Sämisch, Panno hovedvariant26 I wGE83daKongeindisk, Sämisch, 6...Sc6D5 m wUE82daKongeindisk, Sämisch, dobbeltfianchetto variant24 I oE81daKongeindisk, Sämisch, 5...O-O13 G eP42aE80daKongeindisk, Sämisch variant>2 a RUx4]E79daKongeindisk, firbonde-angreb, hovedvariant H |CV+HVQ   Gԏ3A03deBird-Eröffnung3I K -A02deFroms Gambit undBird-Eröffnung%H / ʝLA01deLarsen-Eröffnung6G Q >_rA00deseltene Eröffnungen wieOrang-UtanHF u XݵE99daKongeindisk, ortodoks, Aronin-Taimanov, hovedvariantBE i +)}E98daKongeindisk, ortodoks, Aronin-Taimanov, 9. Se1pD C M!bP@E97daKongeindisk, ortodoks, Aronin-Taimanov variant (jugoslavisk angreb / Mar del Plata variant)AC g ³&E96daKongeindisk, ortodoks, 7...Nbd7, Hovedvariant:B Y {E95daKongeindisk, ortodoks, 7...Nbd7, 8.Re1 [zTdE&_([/g C nJA32deEnglische Symmetrievariante/f C 2A31deEnglische Symmetrievariante/e C ЏuA30deEnglische Symmetrievariante4d M vt0pA29deEnglisch (Vierspringer-Variante)4c M U6݅A28deEnglisch (Vierspringer-Variante)5b O _KYfĔA27deEnglisch (Holländische Struktur)5a O `PA26deEnglisch (Sizilianisch im Anzuge)5` O })uUYsA25deEnglisch (Sizilianisch im Anzuge)_  c7wTA24deEnglisch^  ^{>tgaA23deEnglisch]  fC|A22deEnglisch\  MdA21deEnglisch[  퀮ΐA20deEnglischZ  >` 6cA19deEnglischY  $A18deEnglischX  3RA17deEnglischW  ja%k:A16deEnglisch3V K =d A15deEnglisch gegenKönigsfianchetto#U + J ބA14deReti-Eröffnung#T + o MA13deReti-Eröffnung7S S Je VA12deReti-Eröffnung (New Yorker System)#R + Xb"^ A11deReti-Eröffnung Ij#uGwI+x ; ։YA49deKönigsindischer Aufbau+w ; ,je AA48deKönigsindischer Aufbau)v 7 z0%7A47deDamenindischer Aufbau4u M ĶjA46deDamenbauernspiel (Torre-Angriff)fAA44deAlt-Benoni-Verteidigung+r ; ͽ.AA43deAlt-Benoni-Verteidigung/q C 6/3A42dez. B. Moderne Verteidigung=p _ / A41deunregelmäßige Systeme,Wade-Verteidigunguo M v)A40deEnglund-Gambit,Owen-Verteidigung,Känguru-Verteidigung,Moderne Verteidigung,Horwitz-Verteidigung/n C o))'A39deEnglische Symmetrievariante/m C cV|~A38deEnglische Symmetrievariante/l C  [A37deEnglische SymmetrievarianteDk m x K؟A36deEnglische Symmetrievariante (Botwinnik-Variante)/j C =C2A35deEnglische Symmetrievariante/i C qeVA34deEnglische Symmetrievariante/h C wQ"٘oA33deEnglische Symmetrievariante /b3zIe3u/C  k MXGA58deWolga-Gambit,Benkö-Gambit. A v@A57deWolga-Gambit,Benkö-Gambit' 3 ̦oA56deBenoni-Verteidigung,~ = 0 96A55deAltindische Verteidigung,} = x4iA54deAltindische Verteidigung,| = my;r"A53deAltindische Verteidigung5{ O QXWA52deBudapester Gambit (Hauptvariante)7z S x.4A51deBudapester Gambit,Fajarowicz-Gambit)y 7 =C A50deDamenindischer Aufbau 88n.n.[8  % tW%A84deHolländisch2 I wVfFA83deHolländisch (Staunton-Gambit)2 I fcRPA A82deHolländisch (Staunton-Gambit)  % ;djY$8A81deHolländischC k a+A80deHolländische Verteidigung (kurz: Holländisch)= _ -5JB|A79deModerne Benoni-Verteidigung (Hauptsystem)= _ ǯe8qA78deModerne Benoni-Verteidigung (Hauptsystem)= _ lA77deModerne Benoni-Verteidigung (Hauptsystem)= _ a 7A76deModerne Benoni-Verteidigung (Hauptsystem)= _ waaY)A75deModerne Benoni-Verteidigung (Hauptsystem)= _ F5%A74deModerne Benoni-Verteidigung (Hauptsystem)= _ ;~ӻ;A73deModerne Benoni-Verteidigung (Hauptsystem)G s tNXG A72deModerne Benoni-Verteidigung (Hauptsystem mit 9.Lg5)G s f;wAA71deModerne Benoni-Verteidigung (Hauptsystem mit 8.Lg5)=  _ ˵16ϕEulB16deCaro-Kann-Verteidigung (Nimzowitsch-Variante);: [ b oB15deCaro-Kann-Verteidigung (Flohr-Variante):9 Y ^GIFB14deCaro-Kann-Verteidigung (Panow-Angriff)=8 _ VEUمB13deCaro-Kann-Verteidigung (Abtauschvariante)=7 _ 1`m-B12deCaro-Kann-Verteidigung (Vorstoßvariante)B6 i j1B11deCaro-Kann-Verteidigung (Zweispringer-Variante)*5 9 }U?uB10deCaro-Kann-VerteidigungA4 g h 3I4B09dePirc-Ufimzew-Verteidigung (Dreibauernangriff)-3 ? aBB08dePirc-Ufimzew-VerteidigungH2 u %]nZd/B07dePirc-Ufimzew-Verteidigung,Jugoslawische Verteidigung(1 5 l55B06deModerne Verteidigung<0 ] YvX)B05deAljechin-Verteidigung (Moderne Variante). a @NB03deAljechin-Verteidigung (Vierbauernvariante)8- U 8B02deAljechin-Verteidigung (Jagdvariante) X8MUXQK  cbȠIB32deSizilianisch (Löwenthal-Variante), (Labourdonnais-Variante)5J O ήe:B31deSizilianisch (Rossolimo-Variante)5I O Qm]tB30deSizilianisch (Rossolimo-Variante)6H Q ǒJj@B29deSizilianisch (Rubinstein-Variante)1G G mW B28deSizilianisch (O'Kelly-System)KF { VS?B27deSizilianisch (frühes Fianchetto) (Ungarische Variante)8E U ?7ݦB26deSizilianisch, (geschlossenes System)8D U !TsB25deSizilianisch, (geschlossenes System)8C U ZGEB24deSizilianisch, (geschlossenes System)&B 1 !ȴPB23deGrand-Prix-Angriff2A I f&EmB22deSizilianisch (Alapin-Variante)O@  'B21deSizilianisch (Morra-Gambit), (Sizilianisches Mittelgambit)K? { θ?R&B20deSizilianische Verteidigung,Sizilianisch (seltene Züge):> Y rMYZwB19deCaro-Kann-Verteidigung (Hauptvariante):= Y T?}a(-+B18deCaro-Kann-Verteidigung (Hauptvariante) GHJ`*G5X O ?uhNq bB45deSizilianisch (Klassisches System)WB42deSizilianisch (Paulsen-Variante)3T K j5,>B41deSizilianisch (Paulsen-Variante)?S c od,B40deSizilianisch (Klassisches System) mit e7-e6QR  r<&4B39deSizilianisch (beschleunigte Drachenvariante, Maroczy-Aufbau)QQ  *B38deSizilianisch (beschleunigte Drachenvariante, Maroczy-Aufbau)QP  ilzh4B37deSizilianisch (beschleunigte Drachenvariante, Maroczy-Aufbau)QO  NW B36deSizilianisch (beschleunigte Drachenvariante, Maroczy-Aufbau)SN  V@B35deSizilianisch (beschleunigte Drachenvariante, Simagin-Variante)SM  KgDGB34deSizilianisch (beschleunigte Drachenvariante, Simagin-Variante)_L ! nF rB33deSizilianisch (Sweschnikow-Variante), (Lasker-Variante), (Pelikan-Variante) PLp5P:g Y T#zѝ٤B60deSizilianisch (Richter-Rauser-Variante)7f S 18B59deSizilianisch (Boleslawski-Variante)7e S 'UB58deSizilianisch (Boleslawski-Variante)1d G  6B57deSizilianisch (Sosin-Variante)Jc y :wB56deSizilianisch Abweichung von Sosin- und Rauser-VarianteKb { >qCB55deSizilianisch (Rauser-Variante), (Anti-Drachen-Variante)Ka { ^h>B54deSizilianisch (Rauser-Variante), (Anti-Drachen-Variante)O`  a2dB53deSizilianisch (Ungarische Variante), (Tschechower-Variante)5_ O W! B52deSizilianisch (Rossolimo-Variante)H^ u 9$T;B51deSizilianisch (Rossolimo-Variante), (Moskauer System) ] % }(z*bB50deSizilianisch3\ K |יB49deSizilianisch (Paulsen-Variante)3[ K {)ּB48deSizilianisch (Paulsen-Variante)UB69deSizilianisch (Richter-Rauser-Variante):o Y Lo> B68deSizilianisch (Richter-Rauser-Variante):n Y aB67deSizilianisch (Richter-Rauser-Variante):m Y :ze5|B66deSizilianisch (Richter-Rauser-Variante):l Y Xu?Os<4 M SßB C08deFranzösisch (Tarrasch-Variante)4 M ti.!C07deFranzösisch (Tarrasch-Variante)4 M [s$C06deFranzösisch (Tarrasch-Variante)4 M .tC05deFranzösisch (Tarrasch-Variante)4 M \&^8C04deFranzösisch (Tarrasch-Variante)4 M F_BC03deFranzösisch (Tarrasch-Variante)3 K mr"l0C02deFranzösisch (Vorstoßvariante)3 K nAC01deFranzösisch (Abtauschvariante)J y Kia3C00deFranzösische Verteidigung,Französisch, seltene Züge3 K ҮB99deSizilianisch (Najdorf-Variante)3  K hvXLB98deSizilianisch (Najdorf-Variante)C  k fR6/KB97deSizilianisch (Najdorf-Variante) mit 7. ...Db6,(J  y $ghDB96deSizilianisch (Najdorf-Variante), (Polugajewski-System)>  a ;)B95deSizilianisch (Najdorf-Variante) mit 6. Lg5>  a  d޹B94deSizilianisch (Najdorf-Variante) mit 6. Lg5= _ XTm B93deSizilianisch (Najdorf-Variante) mit 6. f4 Cm3r0j@gC!* ' v9ESZzC25deWiener Partie ' % 0M.C24deLäuferspiel & % ciC23deLäuferspiel % % +oC22deMittelgambit%$ / Nk6qC21deNordisches Gambit'# 3 DnC20deKönigsbauernspiele?" c v'ӻrC19deFranzösisch (Nimzowitsch/Winawer-Variante)?! c NXCmC18deFranzösisch (Nimzowitsch/Winawer-Variante)?  c VS.[C17deFranzösisch (Nimzowitsch/Winawer-Variante)? c JiC16deFranzösisch (Nimzowitsch/Winawer-Variante)? c M^$]wvC15deFranzösisch (Nimzowitsch/Winawer-Variante)D m ̀ JC28deWiener Partie ?Pz@ Qp?.N A |8̟C63deSpanisch (Jänisch-Gambit)4M M ropC62deSpanisch (Steinitz-Verteidigung)0L E n@SC61deSpanisch (Bird-Verteidigung)+K ; KvrC60deSpanische Partie (kurz:FJ q #xHC59deZweispringerspiel im Nachzuge (Klassisches System)FI q Īq C58deZweispringerspiel im Nachzuge (Klassisches System);H [ B; C57dePreußische Partie,Traxler-Gegenangriff1G G yC56deZweispringerspiel im Nachzuge1F G @'Ӓ:C55deZweispringerspiel im Nachzuge7E S WxC54deItalienische Partie (Hauptvariante)FD q %N=C53deItalienische Partie,Giuoco Piano,Spiel des Polerio0C E v:ĉ C52deEvans-Gambit (Hauptvariante) B % pEF,C51deEvans-Gambit4A M cW}AC50deItalienische Partie,Italienisch,:@ Y "+3VpC49deVierspringerspiel (Symmetrie-Variante);? [ <6KmC48deVierspringerspiel (Rubinstein-Variante)2> I q)C47deSchottisches Vierspringerspiel Vr.VVVH] u |аHmC78deSpanisch, (Archangelsk-Variante), (Möller-Variante)2\ I ̻.}C77deSpanisch, (Anderssen-Variante)=[ _ )%KUF8C76deSpanisch, (Moderne Steinitz-Verteidigung)=Z _ FY1C75deSpanisch, (Moderne Steinitz-Verteidigung)=Y _ 燧cI)C74deSpanisch, (Moderne Steinitz-Verteidigung)=X _ LMC73deSpanisch, (Moderne Steinitz-Verteidigung)=W _ ($DC72deSpanisch, (Moderne Steinitz-Verteidigung)=V _ ]_p9&C71deSpanisch, (Moderne Steinitz-Verteidigung)5U O aAoC70deSpanisch (Abweichungen im 4. Zug)0T E 4C69deSpanisch, (Abtauschvariante)0S E ˽3aC68deSpanisch, (Abtauschvariante)7R S ?w9ӈC67deSpanisch, (Rio-de-Janeiro-Variante)AQ g W2qf=C66deSpanisch, (Verbesserte Steinitz-Verteidigung)9P W BTC65deSpanisch: (Berliner Verteidigung bzw.OO  2%C64deSpanisch, (Cordel-Verteidigung), (Schliemann-Verteidigung) OOL^O-m ? +j %eC94deSpanisch, (Breyer-System)0l E p{y`C93deSpanisch, (Smyslow-Variante)0k E C92deSpanisch, (Saitzew-Variante)2j I A =$uC91deSpanisch (Bogoljubow-Variante)Ai g )>ZC90deSpanisch (Abweichungen von der Hauptvariante)0h E Ԥb|C89deSpanisch, (Marshall-Angriff)@g e 'aZ.OC88deGeschlossene Verteidigung (Spanische Partie)Cf k $m/3C87deSpanisch, (Russische Variante mitZugumstellung)/e C z4xC86deSpanisch, (Worrall-Angriff)8d U J0uC85deSpanisch, (Steenwijker Verteidigung)0c E \ڕk*tC84deSpanisch, (Zentrums-Angriff)Cb k Tg C83deSpanisch, (Offene Verteidigung) (Hauptvariante)La } '`;C82deSpanisch, (Offene Verteidigung), (Italienische Variante)C` k P3K9C81deSpanisch, (Offene Verteidigung), (Keres-System)3_ K 0ȉR~C80deSpanisch, (Offene Verteidigung)2^ I b0C79deSpanisch, (Russische Variante) 6/^7v:q68 U 5sNOKD12deDamengambit (Slawische Verteidigung)8~ U YǥyD11deDamengambit (Slawische Verteidigung)9} W =mCDD10deDamengambit (Slawische Verteidigung),&| 1 "MXD09deAlbins Gegengambit&{ 1 W(l=PD08deAlbins Gegengambit9z W !`D07deDamengambit (Tschigorin-Verteidigung)/y C ^m of=rD06deDamengambit (seltene Züge)1x G ]&bD05deDamenbauernspiel:Colle-System1w G Ͳйt a `GDD01deDamenbauernspiel (Richter-Weressow-System)%s / dD00deDamenbauernspiel,1r G 4Q۾C99deSpanisch, (Tschigorin-System)1q G o@GC98deSpanisch, (Tschigorin-System)Yp  _JXJ}C97deSpanisch, (Abweichungen vom Tschigorin-System), (Panow-Verteidigung)Bo i %o#CC96deSpanisch, (Abweichungen vom Tschigorin-System)-n ? _%UHC95deSpanisch, (Breyer-System) ,h-m$h9 }N, # 'TEGŐD30deDamengambit, = [X k5hD29deAngenommenes Damengambit, = ;2D28deAngenommenes Damengambit, = LYvD27deAngenommenes Damengambit,  = U0sAD26deAngenommenes Damengambit,  = w5m3,{|D25deAngenommenes Damengambit,  = #\CxnD24deAngenommenes Damengambit,  = oXD23deAngenommenes Damengambit,  = Q {CD22deAngenommenes Damengambit, = %F[!D21deAngenommenes Damengambit, = XA=D20deAngenommenes DamengambitF q MWtD19deDamengambit (Slawische Verteidigung Hauptvariante)F q E.2D18deDamengambit (Slawische Verteidigung Hauptvariante)8 U S{xD17deDamengambit (Slawische Verteidigung)9 W ołD16deDamengambit (Lasker/Smyslow-Variante)8 U &D15deDamengambit (Slawische Verteidigung)I w J |D14deDamengambit (Slawische Verteidigung),AbtauschvarianteI w ȑD13deDamengambit (Slawische Verteidigung),Abtauschvariante )Mn9y3f):! Y ޔCMrD46deDamengambit,Halbslawische Verteidigung:  Y :fhD45deDamengambit,Halbslawische VerteidigungP   R+OD44deDamengambit,Halbslawische Verteidigung (Botwinnik-Variante,: Y WdD43deDamengambit,Halbslawische VerteidigungC k ]DlGD42deDamengambit (Verbesserte Tarrasch-Verteidigung)C k ov|qD41deDamengambit (Verbesserte Tarrasch-Verteidigung)C k a\8 D40deDamengambit (Verbesserte Tarrasch-Verteidigung)1 G Z01nD39deDamengambit (Wiener Variante)2 I Nl_D38deDamengambit (Ragosin-Variante)* 9 -6_D37deDamengambit mit 5. Lf42 I NP)N#D36deDamengambit (Abtauschvariante)2 I \I䯹gD35deDamengambit (Abtauschvariante)E o iq5OD34deDamengambit (Tarrasch-Verteidigung Hauptvariante)7 S D33deDamengambit (Tarrasch-Verteidigung)7 S ?- D32deDamengambit (Tarrasch-Verteidigung)< ] uD31deDamengambit (Halbslawische Verteidigung) f`a~2fE- o `rn D58deAbgelehntes Damengambit (Tartakower-Verteidigung)?, c ߸c7D57deAbgelehntes Damengambit,Lasker-Verteidigung?+ c 7YD56deAbgelehntes Damengambit,Lasker-VerteidigungI* w >LxD55deAbgelehntes Damengambit (Hauptvariante, Abweichungen)I) w qǍdwD54deAbgelehntes Damengambit (Hauptvariante, Abweichungen)I( w l+K D53deAbgelehntes Damengambit (Hauptvariante, Abweichungen)H' u Mõ$kD52deAbgelehntes Damengambit (Cambridge-Springs-Variante)Z&  ݴ=BD51deAbgelehntes Damengambit (Cambridge-Springs-Variante und Abweichungen)@% e |b\|tWD50deAbgelehntes Damengambit (Canal-Prins-Gambit)\$  EiʀfD49deDamengambit,Halbslawische Verteidigung (Meraner Variante,Sosin-Angriff)M#  9/KjD48deDamengambit,Halbslawische Verteidigung (Meraner Variante)M"  E(N WD47deDamengambit,Halbslawische Verteidigung (Meraner Variante) 1qnT1b8 ' D~`=D69deOrthodoxe Verteidigung, (Capablancas Entlastungsmanöver, Rubinstein-Angriff)\7  >_dD68deAbgelehntes Damengambit (Hauptvariante,Capablancas Entlastungsmanöver)\6  .!6MD67deAbgelehntes Damengambit (Hauptvariante,Capablancas Entlastungsmanöver)]5  7|3VD66deAbgelehntes Damengambit (Orthodoxe Verteidigung, Erweitertes Fianchetto)Z4  A:D65deAbgelehntes Damengambit (Orthodoxe Verteidigung, Tempokampf-Variante)Z3  NV0D64deAbgelehntes Damengambit (Orthodoxe Verteidigung, Tempokampf-Variante)P2  F /©D63deAbgelehntes Damengambit (Orthodoxe Verteidigung mit 7. Tc1)Z1  e AAD62deAbgelehntes Damengambit (Orthodoxe Verteidigung mit 7. Dc2 c5 8. cd5)P0  3)҈tD61deAbgelehntes Damengambit (Orthodoxe Verteidigung mit 7. Dc2)D/ m g1P?vD60deAbgelehntes Damengambit (Orthodoxe Verteidigung)E. o 6˺ŝD59deAbgelehntes Damengambit (Tartakower-Verteidigung) F[$Ht<F=I _ oBQ D86deGrünfeld-Verteidigung(Hauptfortsetzung,  M X-*_D75deGrünfeld-Verteidigung mit 3. g34= M +9D74deGrünfeld-Verteidigung mit 3. g34< M +/TD73deGrünfeld-Verteidigung mit 3. g34; M maeD72deGrünfeld-Verteidigung mit 3. g34: M la``9D71deGrünfeld-Verteidigung mit 3. g349 M 3q 4D70deGrünfeld-Indische Verteidigung, DS%}>jfDY # Z.E02deKatalanischX # ع?&E01deKatalanisch7W S P\j\>E00deKatalanische Eröffnung,KatalanischQV  LSD99deGrünfeld-Verteidigung (Russisches System, Smyslow-Variante)QU  )>q;D98deGrünfeld-Verteidigung (Russisches System, Smyslow-Variante)QT  =+"D97deGrünfeld-Verteidigung (Russisches System, Ragosin-Variante)>S a 5Wb݋D96deGrünfeld-Verteidigung (Russisches System)D94deGrünfeld-Indisch (Geschlossenes System)5P O ԃJ7D@D93deGrünfeld-Verteidigung mit 5. Lf45O O yD92deGrünfeld-Verteidigung mit 5. Lf45N O n?D91deGrünfeld-Verteidigung mit 5. Lg5+M ; x1{qD90deGrünfeld-Verteidigung(*L 9 }D89deGrünfeld-Verteidigung=K _ $9cD88deGrünfeld-Verteidigung(Hauptfortsetzung, =J _ r8qD87deGrünfeld-Verteidigung(Hauptfortsetzung, :xV4tF Q~:Am g jE22deNimzo-Indisch mit 4. Db3 (Spielmann-Variante),l = }|E21deNimzo-Indisch mit 4. Sf35k O ~wPE20deNimzowitsch-Indisch,Nimzo-Indisch3j K ) FE19deDamenindisch (Hauptfortsetzung)3i K Y qXE18deDamenindisch (Hauptfortsetzung)3h K цڥE17deDamenindisch (Hauptfortsetzung);g [ r~ uCE16deDamenindisch (Hauptfortsetzung mit Lb4)Af g ϶qo E15deDamenindisch (Hauptfortsetzung, Abweichungen):e Y ?CE14deDamenindisch (Zentralsystem mit 4. e3)+d ; BgЋ1E13deDamenindisch mit 5. Lg50c E Y%t.E12deDamenindischPetrosjan-System@b e 0eҞE11deBogoljubow-Indische Verteidigung,Bogoindisch%a / ŭLd=E10deBlumenfeld-Gambit` # S-ŰE09deKatalanisch_ # GZ9˅E08deKatalanisch^ # ^(+.E07deKatalanisch] # `cb,(E06deKatalanisch\ # #fQ05E05deKatalanisch[ # ^aE04deKatalanischZ # '-E03deKatalanisch 0Ll&S$h05 O  MTAE40deNimzo-Indisch (Rubinstein-System),~ = 2A"NhxE39deNimzo-Indisch mit 4. Dc2,} = mD2pE38deNimzo-Indisch mit 4. Dc2,| = WZSE37deNimzo-Indisch mit 4. Dc2,{ = δߢlOE36deNimzo-Indisch mit 4. Dc2,z = /NGrE35deNimzo-Indisch mit 4. Dc2,y = *;Z2TVE34deNimzo-Indisch mit 4. Dc2,x = ; {xE33deNimzo-Indisch mit 4. Dc2,w = {jL݂E32deNimzo-Indisch mit 4. Dc2Cv k {cE31deNimzo-Indisch mit 4. Lg5 (Leningrader Variante,Cu k "=QqE30deNimzo-Indisch mit 4. Lg5 (Leningrader Variante)5t O  b߮E29deNimzo-Indisch (Sämisch-Variante)5s O Qd3E28deNimzo-Indisch (Sämisch-Variante)5r O avE27deNimzo-Indisch (Sämisch-Variante)5q O p4E26deNimzo-Indisch (Sämisch-Variante)5p O ?lE25deNimzo-Indisch (Sämisch-Variante)5o O Wc`I~uّE24deNimzo-Indisch (Sämisch-Variante)An g @kE23deNimzo-Indisch mit 4. Db3 (Spielmann-Variante) SX yB f/S4 M 3E57deNimzo-Indisch (Moderne Variante)4 M vFE56deNimzo-Indisch (Moderne Variante)4 M -J?HE55deNimzo-Indisch (Moderne Variante)4  M 5`TE54deNimzo-Indisch (Moderne Variante)4  M t'2P`E53deNimzo-Indisch (Moderne Variante)4  M ׍ZE52deNimzo-Indisch (Moderne Variante)4  M  QUE51deNimzo-Indisch (Moderne Variante)4  M =E50deNimzo-Indisch (Moderne Variante)4 M %ex<жE49deNimzo-Indisch (Moderne Variante)4 M ~Q7l_E48deNimzo-Indisch (Moderne Variante)4 M P 0bd E47deNimzo-Indisch (Moderne Variante)5 O GSE46deNimzo-Indisch (Rubinstein-System)5 O #LE45deNimzo-Indisch (Rubinstein-System)5 O r9?|E44deNimzo-Indisch (Rubinstein-System)5 O +;E43deNimzo-Indisch (Rubinstein-System)5 O O%oE42deNimzo-Indisch (Rubinstein-System)5 O 3HLE41deNimzo-Indisch (Rubinstein-System) /G]Ir/@ e 'DDr(E72deKönigsindisch (Varianten mit g2-g3 undSge2)- ? "PE71deKönigsindisch mit 5. h3(M  ͻ3"E70deKönigsindisch (mit frühem e2-e4,Abweichungen im 5. Zug)T  \^ 8'H$E69deKönigsindisch (Hauptvariante desg3-System mit e2-e4 und h2-h3)I w n[DRmE68deKönigsindisch (Hauptvariante desg3-System mit e2-e4)I w mAE67deKönigsindisch (Hauptvariante img3-System ohne e2-e4); [ Zby¾E66deKönigsindisch (Jugoslawische Variante); [ 8E65deKönigsindisch (Jugoslawische Variante); [ aM=*E64deKönigsindisch (Jugoslawische Variante)8 U S98BE63deKönigsindisch mit g3 und 6. ... Sc6) 7 8dE62deKönigsindisch mit g3B i FYP+E61deKönigsindisch (Abweichungen derHauptvariante)H u wA8"E60deKönigsindische Verteidigung,Königsindisch ohne Sc34 M {:}FE59deNimzo-Indisch (Moderne Variante)4 M (b/ j-YF$A00huBenkö-megnyitás-=1~[CA00huLengyelOutflank változat.<3mB|P A00huLengyelTuebingen változat4; M 㴰'A00huLengyel (Szokolszkij) megnyitásE: o H74${kE99deKlassisches System (Königsindische Verteidigung)E9 o 㓎&QE98deKlassisches System (Königsindische Verteidigung)E8 o Xȏt!(E97deKlassisches System (Königsindische Verteidigung)E7 o ³&E96deKlassisches System (Königsindische Verteidigung)E6 o sm>E95deKlassisches System (Königsindische Verteidigung)E5 o K6͸}E94deKlassisches System (Königsindische Verteidigung)E4 o ldt E93deKlassisches System (Königsindische Verteidigung)E3 o tiE92deKlassisches System (Königsindische Verteidigung)E2 o ~i`؏E91deKlassisches System (Königsindische Verteidigung)E1 o -D/E90deKlassisches System (Königsindische Verteidigung) P`7uF}U+~P+V; ߺmN~A00huHammerschlag megnyitás%U/ (p)[A00huGedult megnyitás(T5 SADXcEA00huAmszterdam támadás+S; Ԫ2t8A00huVan't Kruijs megnyitás)R7 rrbA00huVenezolana megnyitás'Q3 ;[NA00huValencia megnyitás%P/ b]~A00huMieses megnyitás%O/ URGHA00huMieses megnyitás(N5 0nA00huZaragóza megnyitás#M+ ;)|CبA00huCrab megnyitás#L+ -{)RA00huWare megnyitás'K3 >_rA00huAnderzen megnyitás,J= pY_A00huNovoszibirszk megnyitás)I7 H3A00huBattambang megnyitás%H/ 7ԆGsA00huDunszt megnyitás%G/ s~EA00huDunszt megnyitásF zŃA00huAmar csel#E+ -L^FA00huAmar megnyitás&D1 K25nA00huClemenz megnyitás)C/Fv_A00huGrobRomford ellencsel"B!5Ӻ6A00huGrobFritz-csel'A+\ : >A00huGrobSpike támadás"@) vA00huGrob támadás _`1 X]6_:i Y Z"A17huAngol megnyitás, sündisznó védelem$h - ja%k:A16huAngol megnyitás:g Y =d A15huAngol, 1...Hf6 (Anglo-indiai védelem)3f K J ބA14huAngol, elhárított újkatalán$e - o MA13huAngol megnyitás-d ? Je VA12huAngol, Caro-Kann védelem-c ? Xb"^ A11huAngol, Caro-Kann védelem$b -  Gԏ3A03huBird megnyitása, 1...d5#Z + -A02huBird megnyitás%Y / ʝLA01huLarsen megnyitás$X- AFKRA00huDurkin támadás(W5 ژ 1A00huAnti-Borg megnyitás 6tM&q3{&k62y I wQ"٘oA33huAngol megnyitás, szimmetrikus2x I '+:b :A32huAngol megnyitás, szimmetrikusDw m i/;~ QA31huAngol megnyitás, szimmetrikus, Benoni változats a ~-}JA27huAngol megnyitás, háromhuszáros rendszer4r M GbS#nA26huAngol megnyitás, zárt rendszer;q [ 6wA25huAngol megnyitás, fordított szicíliaiAp g %K;2;&A24huAngol megnyitás, Brémai rendszer 3...g6-talGo s ^{>tgaA23huAngol megnyitás, Brémai rendszer, Keres-változat$n - -!clA22huAngol megnyitás$m - -tA21huAngol megnyitás$l - @`v{A20huAngol megnyitásIk w >` 6cA19huAngol megnyitás, Mikenas-Carls, szicíliai változat=j _ $A18huAngol megnyitás, Mikenas-Carls változat N_*a(XwN&  1  7eA52huBudapesti védelem3  K ޻)zHyA51huElhárított Budapesti védelem(  5 Tc;OA50huVezérgyalog játék9  W ։YA49huKirályindiai, Fianchetto c4 nélkülA g 02c>A48huKirályindiai védelem, kelet-indiai védelem) 7 h(fAA44huÓbenoni védelem% / ehڣA43huÓbenoni védelem6 Q P?UA42huModern védelem, Averbakh-rendszer( 5 / A41huVezérgyalog játék( 5 XA40huVezérgyalog játék; [ o))'A39huAngol megnyitás, szimmetrikus, d4-gyel2~ I <6D7A38huAngol megnyitás, szimmetrikus2} I giA58huElfogadott Benkö-csel # haRA57huBenkö-csel# + 02A56huBenoni védelem* 9 0 96A55huÓindiai, föváltozat. A jA54huÓindiai, ukrán változat%  / my;r"A53huÓindiai védelem RW%~W0d.RH1 u ˮr@A89huHolland védelem, leningrádi, fö változat Hc6-talK0 { \rA88huHolland védelem, leningrádi, fö változat 7...c6-tal@/ e n1. A87huHolland védelem, leningrádi, fö változat3. K JϻΩA86huHolland védelem, 2.c4 és 3.g34- M ;;lXǔHA85huHolland védelem, 2.c4 és 3.Hc3$, - B@WA84huHolland védelem>+ a wVfFA83huHolland, Staunton-csel, Staunton-változat** 9 fcRPA A82huHolland, Staunton-csel$) - ;djY$8A81huHolland védelem$( - a+A80huHolland védelem-' ? -5JB|A79huBenoni, klasszikus, 11.f3:& Y C{ eA78huBenoni, klasszikus, Be8 és ...Ha6-tal7% S xdA77huBenoni, klasszikus, 9...Be8, 10.Hd2/$ C й N1SA76huBenoni, klasszikus, 9...Be8># a waaY)A75huBenoni, klasszikus ...a6 és 10...Fg4-gyel5" O u֫SA74huBenoni, klasszikus, 9...a6, 10.a4-! ? $L>A73huBenoni, klasszikus, 9.O-O 0D~=}S,T0!C ' QB07huPirc-védelem.B A k B06huRobatsch (modern)-védelem?A c YvX)B05huAljehin-védelem, modern változat, 4...Fg46@ Q [P31`VB04huAljehin-védelem, modern változat)? 7 I ~B03huAljehin-védelem 3.d4$> - үPB02huAljehin-védelem'= 3 VDaB01huSkandináv védelem,< = 9 a bA97huHolland védelem, Ilyin-Genevsky változatA8 g  ;0A96huHolland védelem, Dutch, klasszikus változat>7 a x?4,fA95huHolland védelem, Dutch, Stonewall Hc3-mal>6 a iRLA94huHolland védelem, Dutch, Stonewall Ba3-malD5 m tU-\A93huHolland védelem, Stonewall, Botwinnik-változat$4 - lY)A92huHolland védelem$3 - ;m(*A91huHolland védelem$2 - /=A90huHolland védelem \j4 o3j5\CU!WEAB21huSzicíliaiSmith-Morra csel, csikágói védelem.T!-'B21huSzicíliaiSmith-Morra csel.S!-٠EEB21huSzicíliaiAndreaschek csel.R!-xeTgB21huSzicíliaiSmith-Morra csel2Q !5[7wbB21huSzicíliaiGrand Prix támadás'P 3 dMJVJB20huSzicíliai védelem2O I AǹpB19huCaro-Kann, klasszikus, 7...Hd73N K J߫[B18huCaro-Kann, klasszikus változat1M G %B17huCaro-Kann, Steinitz-változat9L W >ϕEulB16huCaro-Kann, Bronstein-Larsen-változat&K 1 c.sB15huCaro-Kann védelem@J e ^GIFB14huCaro-Kann, Panov-Botvinnik-támadás, 5...e6-I ? wqLݣOB13huCaro-Kann, csereváltozat&H 1 sYoB12huCaro-Kann védelem3G K j1B11huCaro-Kann, kétcsikós, 3...Fg4&F 1 Fvђ-B10huCaro-Kann védelem,E = h 3I4B09huPirc, osztrák támadás;D [ aBB08huPirc, klasszikus (kétcsikós) rendszer 3mEwM}13Ue  a3B36huSzicíliai védelem, gyors fianchetto, Maróczy-kötésUc  V@B35huSzicíliai védelem, gyors fianchetto, modern változat Fc4-gyelIb w LMY, B34huSzicíliai védelem, gyors fianchetto, csereváltozatFa q ݫB33huSzicíliai, Szvesnyikov (Lasker-Pelikan) változat'` 3 Q@j裗B32huSzicíliai védelemZ_  ήe:B31huSzicíliai, Nimzovich-Rossolimo-támadás (...g6-tal, ...d6 nélkül)'^ 3 ~{!B30huSzicíliai védelem>] a ǒJj@B29huSzicíliai, Nimzovich-Rubinstein-változat1\ G mW B28huSzicíliai, O'Kelly-változat'[ 3 )j+B27huSzicíliai védelem,Z = ?7ݦB26huSzicíliai, zárt, 6.Fe3%Y / c7)j?(B25huSzicíliai, zárt%X / 11 B24huSzicíliai, zárt%W / R\2B23huSzicíliai, zárt@V e f&EmB22huSzicíliai védelem, Alapin-változat (2.c3) L\2~Ih-LCv k >qCB55huSzicíliai, Prins-változat, Velencei támadásu ! {,ĴB54huSzicíliai3t K a2dB53huSzicíliai, Chekhover-változatAs g W! B52huSzicíliai, Canal-Sokolsky-támadás, 3...Fd78r U M\8B51huSzicíliai, Canal-Sokolsky-támadás2q I |יB49huSzicíliai, Tajmanov-változat2p I v1{B48huSzicíliai, Tajmanov-változat?o c bcB47huSzicíliai, Tajmanov (Basztrikov) változat2n I lH;Ͳ(B46huSzicíliai, Tajmanov-változat2m I d\JB45huSzicíliai, Tajmanov-változat'l 3 D-B44huSzicíliai védelem*k 9 u*\+B43huSzicíliai, Kan, 5.Hh3*j 9 ̪>WB42huSzicíliai, Kan, 5.Fd3-i ? m辕B41huSzicíliai, Kan-változat'h 3 ^T9rB40huSzicíliai védelemKg { r<&4B39huSzicíliai védelem, gyors fianchetto, Breyer-változatSf  OX DбB38huSzicíliai védelem, gyors fianchetto, Maróczy-kötés, 6.Fe3 pq8 Qyp[  aB67huSzicíliai, Richter-Rauzer, Rauzer-támadás, 7...a6 védelem, 8...Fd7H u :ze5|B66huSzicíliai, Richter-Rauzer, Rauzer-támadás, 7...a6]  f,OB65huSzicíliai, Richter-Rauzer, Rauzer-támadás, 7...Fe7 védelem, 9...Hxd4Y  3@1 B64huSzicíliai, Richter-Rauzer, Rauzer-támadás, 7...Fe7 védelem, 9.f4@ e \FgB63huSzicíliai, Richter-Rauzer, Rauzer-támadás6 Q B62huSzicíliai, Richter-Rauzer, 6...e6G~ s |;$B61huSzicíliai, Richter-Rauzer, Larsen-változat, 7.Vd2.} A [( B60huSzicíliai, Richter-Rauzer<| ] 18B59huSzicíliai, Boleslavsky-változat, 7.Hb3*{ 9 8hB58huSzicíliai, klasszikus6z!=FaYE!B57huSzicíliaiSzozin, Benkö változat1y!3 ҙ jB57huSzicíliaiMagnus Smith csapda7x !? 6B57huSzicíliaiSzozin, nem Scheveningeniw ! Uw^B56huSzicíliai .D\Gp.? c o'Z B81huSzicíliai, scheveningeni, Keresz-támadás@ e "&Ͳ B80huSzicíliai védelem, scheveningeni változatE o i<ǘYB79huSzicíliai, sárkány, jugoszláv tamadás, 12.h4I w O@B78huSzicíliai, sárkány, jugoszláv támadás, 10.O-O-OF q u )>&֟B77huSzicíliai, sárkány, jugoszláv támadás, 9.Fc4H  u L {޽3B76huSzicíliai, sárkány, jugoszláv támadás, 7...O-O?  c @B75huSzicíliai, sárkány, jugoszláv támadás<  ] ɔH'.B74huSzicíliai, sárkány, klasszikus, 9.Hb3<  ] WM!iB73huSzicíliai, sárkány, klasszikus, 8.O-O0  E A a ؜B71huSzicíliai, sárkány, Levenfish-változat2 I 2ᇧSB70huSzicíliai, sárkányváltozat[  [>UB69huSzicíliai, Richter-Rauzer, Rauzer-támadás, 7...a6 védelem, 11.Fxf6[  Lo> B68huSzicíliai, Richter-Rauzer, Rauzer-támadás, 7...a6 védelem, 9...Fe7 (Cz< G(Y"  fR6/KB97huSzicíliai, Najdorf, 7...Vb6 beleértve: Mérgezett gyalog változat-! ? DB96huSzicíliai, Najdorf, 7.f4/  C TB95huSzicíliai, Najdorf, 6...e6. A r9vTJB94huSzicíliai, Najdorf, 6.Fg5- ? XTm B93huSzicíliai, Najdorf, 6.f4D m z"L!B92huSzicíliai, Najdorf, Opocensky-változat (6.Fe2)Q  %DN+WB91huSzicíliai, Najdorf, zágrábi (fianchetto) változat (6.g3)' 3 %MB90huSzicíliai, Najdorf- ? t 'B89huSzicíliai, Szozin, 7.Fe3; [ e|J,B88huSzicíliai, Szozin, Leonhardt-változat2 I f!m$B87huSzozin ...a6-tal és ...b5-tel0 E Α嚽1B86huSzicíliai, Szozin-támadás^  "ĵ=LCYB85huSzicíliai, scheveningeni, klasszikus változat ...Vc7-tel és ...Hc6-talM  UTTUsB84huSzicíliai, scheveningeni (Paulsen), klasszikus változat4 M ޢ4ۭB83huSzicíliai, scheveningeni, 6.fe23 K P4[oڅB82huSzicíliai, scheveningeni, 6.f4 De$|C9xD13 G -@euC14huFrancia, klasszikus változat12 G lQ}C13huFrancia, klasszikus változat21 I vvKbC12huFrancia, MacCutcheon-változat$0 - mH6qC11huFrancia védelem./ A O|}0yC10huFrancia, Paulsen-változatG. s cIꎴ)WC09huFrancia, Tarrasch, nyílt változat, fö folytatás:- Y ޚ^ C08huFrancia, Tarrasch, nyílt, 4.exd5 exd57, S  C07huFrancia, Tarrasch, nyílt változatF+ q )C06huFrancia, Tarrasch, zárt változat, fö folytatás6* Q H_)[C05huFrancia, Tarrasch, zárt változat=) _ \&^8C04huFrancia, Tarrasch, Guimard fö folytatás/( C zܽC03huFrancia, Tarrasch-változat3' K mr"l0C02huFrancia, elöretórö változat>& a nAC01huFrancia, csereváltozat, Kingston-védelem$% - Kia3C00huFrancia védelem>$ a ҮB99huSzicíliai, Najdorf, 7...Fe7 Fö változat0# E PU6nUB98huSzicíliai, Najdorf, 7...Fe7 ME]%~J"~M.E/J8UC21huDán cselCollijn véldelemD Nk6qC21huDán csel C% ?׽~C21huHalász-csel9BW hUW ,C21huCentrumjáték, Kieseritsky változat"A ) V2FC21huCentrumjáték%@/ xFߴ^C20huAlapin megnyitás1?'-~k&C20huKirálygyalogLopez megnyitás5>'5f)BC20huKirálygyalogNapóleon megnyitás2='/IpVC20huKirálygyalogKing's head megnyitás5;'5آ<'7C20huKirálygyalogMengarini megnyitás2:'/P*dtC20huKirálygyalogIndiai megnyitás)9 7 DnC20huKirálygyalog-játékE8 o NXCmC19huFrancia, Winawer, elöretörö változat, 6...He7<7 ] 9HC18huFrancia, Winawer, elöretörö változat<6 ] (bBC17huFrancia, Winawer, elöretörö változat<5 ] %?C16huFrancia, Winawer, elöretörö változat:4 Y {;[C15huFrancia, Winawer (Nimzovich)-változat JtO)[6o6lJY # Rwe)C30huKirálycsel6XQ ~#9C29huBécsi játék, Steinitz változat5WO n.ēeC29huBécsi játék, Wurzburger csapda"V) Oe{C29huBécsi játék1U)+ m. C29huBécsi játékHeyde változat6T)5~)C29huBécsi játékBardeleben változat3S)/[Kݝo |C29huBécsi játékPaulsen támadás2R)-.9L_kC29huBécsi játékBreyer változat4Q)1H5nC29huBécsi játékKaufmann változat"P ) AT @C29huBécsi játék"O ) `cӇ8> JC28huBécsi játék5N O v9EC40huLitvánPolerio változat,m/:~3C40huLitvánBehting változat)l7 $]#C40huLitván gambit, 3.Bc4*k+R5l vC40huLitvánFraser védelem gyL#jLg@ e ]_p9&C71huSpanyol megnyitás, modern Steinitz-védelem&  1 aAoC70huSpanyol megnyitás=  _ nְC69huSpanyol megnyitás, csereváltozat, 5.0-06  Q ˽3aC68huSpanyol megnyitás, csereváltozatJ  y ?w9ӈC67huSpanyol megnyitás, berlini védelem, nyílt változatC  k W2qf=C66huSpanyol megnyitás, berlini védelem, 4.0-0, d68 U BTC65huSpanyol megnyitás, berlini védelemM  2%C64huSpanyol megnyitás, Cordel-védelem (Klasszikus védelem); [ |8̟C63huSpanyol megnyitás, Schliemann-védelem@ e ropC62huSpanyol megnyitás Régi Steinitz-megnyitás5 O n@SC61huSpanyol megnyitás, Bird-védelem& 1 KvrC60huSpanyol megnyitás* 9 &3.`?C59huKéthuszáros védelem* 9 Īq C58huKéthuszáros védelem* 9 B; C57huKéthuszáros védelem* 9 7=C56huKéthuszáros védelem ]_i/V]6 Q ?zYC84huSpanyol megnyitás, zárt védelemC k Tg C83huSpanyol megnyitás, nyílt, klasszikus védelem4 M '`;C82huSpanyol megnyitás, nyílt, 9.c3@ e P3K9C81huSpanyol megnyitás, nyílt, Howell-támadásK { 0ȉR~C80huSpanyol megnyitás, nyílt védelem (Tarrasch-védelem)X  b0C79huSpanyol megnyitás, elhárított Steinitz-védelem (orosz védelem)- ? |аHmC78huSpanyol megnyitás, 5.0-07 S ̻.}C77huSpanyol megnyitás, Morphy-védelemm = )%KUF8C76huSpanyol megnyitás, modern Steinitz-védelem, Bronstein-változat (fianchetto-változat)@ e FY1C75huSpanyol megnyitás, modern Steinitz-védelem@ e 燧cI)C74huSpanyol megnyitás, modern Steinitz-védelemT  LMC73huSpanyol megnyitás, modern Steinitz-védelem, Richter-változatG s ($DC72huSpanyol megnyitás, modern Steinitz-védelem, 5.0-0 Pv2PVPC* k 4Q۾C99huSpanyol megnyitás, zárt, Csigorin, 12....c5d4A) g o@GC98huSpanyol megnyitás, zárt, Csigorin, 12...Hc6@( e _JXJ}C97huSpanyol megnyitás, zárt, Csigorin-védelem6' Q %o#CC96huSpanyol megnyitás, zárt, 8...Ha5<& ] _%UHC95huSpanyol megnyitás, zárt, Breyer, 10.d4>% a +j %eC94huSpanyol megnyitás, zárt, Breyer-védelemA$ g p{y`C93huSpanyol megnyitás, zárt, Szmiszlov-védelem3# K C92huSpanyol megnyitás, zárt, 9.h32" I A =$uC91huSpanyol megnyitás, zárt 9.d48! U ht, 7C90huSpanyol megnyitás, zárt, ...d6-tal?  c Ԥb|C89huSpanyol megnyitás, Marshall-ellentámadás- ? -F7C88huSpanyol megnyitás, zártA g $m/3C87huSpanyol megnyitás, zárt, Averbach-változat9 W z4xC86huSpanyol megnyitás. Worrall-támadásK { J0uC85huSpanyol megnyitás, duplán elhárított csereváltozat Gr5 u1RGK; { n~D16huVezércsel, Elfogadott szlav védelem, Alapin-változat6: Q c )̨E6D15huVezércsel, Szláv védelem, 4.Hc3?9 c J |D14huVezércsel, Szláv védelem, csereváltozat?8 c hHD13huVezércsel, Szláv védelem, csereváltozat97 W RFD12huVezércsel, Szláv védelem, 4.e3 Ff566 Q YǥyD11huVezércsel, Szláv védelem, 3.Hf3/5 C =mCDD10huVezércsel, Szláv védelem54 O "MXD09huVezércsel, Albin-ellencsel, 5.g3A3 g ? KfD08huVezércsel, Albin-ellencsel és Lasker-csapda12 G !`D07huVezércsel, Csigorin-védelem1 ! G؃4D06huVezércsel=0 _ ]&bD05huVezérgyalog-játék, Zukertort-változat(/ 5 +z7D04huVezérgyalog-játék:. Y @dD03huTorre-támadás, Tartakower-válto9zat/- C wPjD02huVezérgyalog-játék, 2.Hf3., A `GDD01huRichter-Vereszov-támadás(+ 5 dD00huVezérgyalog-játék pX,\*^p>K a ?- D32huElhárított vezércsel, Tarrasch-védelem2J I C&tD31huElhárított vezércsel, 3.Hc3+I ; 0D30huElhárított vezércselGH s "AD29huElfogadott vezércsel, klasszikus változat 8...Fb7EG o ;2D28huElfogadott vezércsel, klasszikus változat 7.Ve2?F c :܎AD27huElfogadott vezércsel, klasszikus változat?E c U0sAD26huElfogadott vezércsel, klasszikus változat/D C ukrD25huElfogadott vezércsel, 4.e30C E #\CxnD24huElfogadott vezércsel, 4.Hc3)B 7 OD23huElfogadott vezércsel;A [ Q {CD22huElfogadott vezércsel, Aljehin-védelem0@ E %F[!D21huElfogadott vezércsel, 3.Hf3)? 7 XA=D20huElfogadott vezércsel0> E N8D19huVezércsel, Holand változat1= G E.2D18huVezércsel, Holland változat>< a Y wD17huVezércsel, Szláv védelem, Cseh védelem 'THv2h'>Y a ޔCMrD46huElhárított vezércsel, Fél-szláv 6.Fd3=X _ zO]D45huElhárított vezércsel, Fél-szláv 5.e3CW k  R+OD44huElhárított vezércsel, Fél-szláv 5.Fg5 dxc4AV g WdD43huElhárított vezércsel, Fél-szláv védelemAU g U=)}7D42huElhárított vezércsel, fél-Tarrasch, 7.Fd3@T e ov|qD41huElhárított vezércsel, fél-Tarrasch, 5.cdCS k a\8 D40huElhárított vezércsel, fél-Tarrasch-védelemFR q Z01nD39huElhárított vezércsel, Ragozin, bécsi változat>Q a Nl_D38huElhárított vezércsel, Ragozin-változat2P I -6_D37huElhárított vezércsel, 4.Hf3UO  NP)N#D36huElhárított vezércsel, csereváltozat, pozíciós vonal, 6.Vc2;N [ \I䯹gD35huElhárított vezércsel, csereváltozatGM s vUsЧD34huElhárított vezércsel, Tarrasch-védelem, 7...Fe7_L ! D33huElhárított vezércsel, Tarrasch-védelem, Schlechter-Rubinstein-rendszer *@ q8{1j*=g _ ƓD60huElhárított vezércsel, Ortodox védelem]f  6˺ŝD59huElhárított vezércsel, Tartakower (Makagonov-Bondarevszkij), 8.cd Hxd5de + Q/{֑D58huElhárított vezércsel, Tartakower-rendszer (Makagonov-Bondarevszkij-rendszer)Gd s lPD57huElhárított vezércsel, Lasker-védelem, fö vonalLxD55huElhárított vezércsel, 6.Hf3Fa q Vu%*D54huElhárított vezércsel, Anti-neoortodox változat6` Q =՘D53huElhárított vezércsel, 4.Fg5 Fe7+_ ; Mõ$kD52huElhárított vezércseli^ 5 QD51huElhárított vezércsel, 4.Fg5 Hbd7 (Cambridge Springs-védelem és elefánt-csapda)2] I 3*D50huElhárított vezércsel, 4.Fg5=\ _ ͹EwD49huElhárított vezércsel, meráni, 11.Hxb5<[ ] 9/KjD48huElhárított vezércsel, meráni, 8...a6>Z a E(N WD47huElhárított vezércsel, Fél-szláv 7.Fc4 DK@-~D7s S yKNN2D72huÚj-Grünfeld, 5.cxd5, föváltozat)r 7 s'&E%D71huÚj-Grünfeld, 5.cxd5*q 9 V<SD70huÚj-Grünfeld-védelemSp  g1wפkD69huElhárított vezércsel, Ortodox védelem, klasszikus, 13.dxe5To  FvUD68huElhárított vezércsel, Ortodox védelem, klasszikus változatnn ? &3M D67huElhárított vezércsel, Ortodox védelem, Fd3 vonal, Capablanca felszabadító manövereHm u y1EaD66huElhárított vezércsel, Ortodox védelem, Fd3 vonal_l ! A:D65huElhárított vezércsel, Ortodox védelem, Rubinstein-támadás, fö vonal_k ! %,JFD64huElhárított vezércsel, Ortodox védelem, Rubinstein-támadás (Bc1-gyel)Dj m F /©D63huElhárított vezércsel, Ortodox védelem, 7.Bc1[i  D62huElhárított vezércsel, Ortodox védelem, 7.Vc2 c5, 8.cd (Rubinstein)Th  pĴaD61huElhárított vezércsel, Ortodox védelem, Rubinstein-változat [[d3 A[G s ~i'TD89huGrünfeld, Spaszkij-változat, föváltozat, 13.Fd3U  '`"`sfD88huGrünfeld, Spaszkij-változat, föváltozat, 10...cxd4, 11. cxd4A g rXU#bՏD87huGrünfeld, csereváltozat, Spaszkij-változatC k %W:D86huGrünfeld, csereváltozat, klasszikus változat- ? RN?lD85huGrünfeld, csereváltozat- ? q]D84huElfogadott Grünfeld-csel"~ ) _5%}D83huGrünfeld-csel$} - ޝUtD82huGrünfeld, 4.Ff4.| A s6/D81huGrünfeld, orosz változat&{ 1 Ê{eD80huGrünfeld-védelem6z Q Q.e죵D79huÚj-Grünfeld, 6.O-O, föváltozat+y ; ,tQ<D78huÚj-Grünfeld, 6.O-O c6(x 5 әD77huÚj-Grünfeld, 6.O-O9w W Q\D76huÚj-Grünfeld, 6.cxd5 Hxd5, 7.O-O Hb6?v c 2,_ID75huÚj-Grünfeld, 6.cxd5 Hxd5, 7.O-O c5, 8.Hc35u O /]SvND74huÚj-Grünfeld, 6.cxd5 Hxd5, 7.O-O(t 5 *P0mMD73huÚj-Grünfeld, 5.Hf3 1wG!M `&^1* 9 GZ9˅E08huKatalán, zárt, 7.Vc2- ? ^(+.E07huKatalán, zárt, 6...Hbd7* 9 `cb,(E06huKatalán, zárt, 5.Hf3: Y #fQ05E05huKatalán, nyílt, klasszikus változat+ ; 7jE04huKatalán, nyílt, 5.Hf37 S ;ְE03huKatalán, nyílt, Aljehin-változat+ ; >jRaE02huKatalán, nyílt, 5.Va4# + >ZzazE01huKatalán, zárt' 3 "RE00huVezérgyalog játek* 9 V<SD70huÚj-Grünfeld-védelem? c LSD99huGrünfeld-védelem, Szmiszlov, föváltozat9  W ̆ꇰ@D98huGrünfeld, orosz, Szmiszlov-változat4  M LD97huGrünfeld, orosz változat, 7.e4.  A vjgD96huGrünfeld, orosz változat-  ? 5.sD95huGrünfeld, 5.e3 O-O 6.Vb3#  + |{GD94huGrünfeld, 5.e3- ? ԃJ7D@D93huGrünfeld, 5.Ff4 O-O 6.e3$ - sLO%D92huGrünfeld, 5.Ff4$ - n?D91huGrünfeld, 5.Fg58 U xD90huGrünfeld, háromhuszáros változat GoC Qa!GP)  ?lE25huNimzoindiai védelem, Saemisch-változat, Keresz-variáció<( ] 2E24huNimzoindiai védelem, Saemisch-változatE' o @kE23huNimzoindiai védelem, Spielmann, 4...c5, 5.dc Hc6=& _ *2NMIE22huNimzoindiai védelem, Spielmann-változatC% k }|E21huNimzoindiai védelem, háromhuszáros változat($ 5 bxE20huNimzoindiai védelem=# _ ) FE19huVezérindiai, régi fö változat, 9.Vxc3<" ] haE18huVezérindiai, régi fö változat, 7.Hc3+! ; r)~E17huVezérindiai, 5.Fg2 Fe76  Q r~ uCE16huVezérindiai, Capablanca-változat& 1 _=E15huVezérindiai, 4.g3& 1 ?CE14huVezérindiai, 4.e36 Q HM(E13huVezérindiai, 4.Hc3, fö változat) 7 Eg}E12huVezérindiai védelem( 5 0eҞE11huBogo-indiai védelem. A i E10huVezérgyalog játék 3.Hf32 I S-ŰE09huKatalán, zárt, fö változat .]>lm.<6 ] G 2E E38huNimzoindiai védelem, klasszikus, 4...c5Z5  IɟѻE37huNimzoindiai védelem, klasszikus, Noa-variáció, fö változat 7.Vc2J4 y ٿE36huNimzoindiai védelem, klasszikus, Noa-variáció, 5.a3R3  /NGrE35huNimzoindiai védelem, klasszikus, Noa-variáció, 5.cxd5 exd5D2 m $E34huNimzoindiai védelem, klasszikus, Noa-variációG1 s ; {xE33huNimzoindiai védelem, klasszikus változat, 4...Hc6>0 a {jL݂E32huNimzoindiai védelem, klasszikus változatJ/ y {cE31huNimzoindiai védelem, leningrádi változat, fö vonal@. e 8:.E30huNimzoindiai védelem, leningrádi változat,G- s  b߮E29huNimzoindiai védelem, Saemisch-változat, fö vonalB, i p4E28huNimzoindiai védelem, Saemisch-változat, 6.e3E+ o \PTk;E27huNimzoindiai védelem, Saemisch-változat, 5...0-0X*  N"Z*Q5E26huNimzoindiai védelem, Saemisch-változat, 4.a3 Fxc3+ 5.bxc3 c5 6.e3 iS 7BiGD s ׍ZE52huNimzoindiai védelem, 4.e3, fö változat ...b6-tal?C c }E51huNimzoindiai védelem, 4.e3 e8g8, 5.Hf3 d7d5JB y lzE50huNimzoindiai védelem, 4.e3 e8g8, 5.Hf3, ...d5 nélkülBA i T`?E49huNimzoindiai védelem, 4.e3, Botvinnik-rendszer<@ ] gE, E48huNimzoindiai védelem, 4.e3 O-O, 5.Fd3 d59? W QBE47huNimzoindiai védelem, 4.e3 O-O, 5.Fd32> I >󉜀E46huNimzoindiai védelem, 4.e3 O-OL= } #LE45huNimzoindiai védelem, 4.e3, Bronstein (Byrne)-variációC< k ‚qm'E44huNimzoindiai védelem, Fischer-variáció, 5.He2<; ] &TFE43huNimzoindiai védelem, Fischer-variációE: o O%oE42huNimzoindiai védelem, 4.e3 c5, 5.He2 (Rubinstein)19 G [>ꣂb?E41huNimzoindiai védelem, 4.e3 c5.8 A OD\iBE40huNimzoindiai védelem, 4.e3E7 o 2A"NhxE39huNimzoindiai védelem, klasszikus, Pirc-variáció @g dz@@?R c Zby¾E66huKirályindiai, Fianchetto, jugoszláv Panno4Q M 8E65huKirályindiai, jugoszláv, 7.O-OBP i aM=*E64huKirályindiai, Fianchetto, jugoszláv rendszer?O c S98BE63huKirályindiai, Fianchetto, Panno-variáció7N S 8dE62huKirályindiai, Fianchetto-változat1M G FYP+E61huKirályindiai védelem, 3.Hc3*L 9 wA8"E60huKirályindiai védelem=K _ BƍE59huNimzoindiai védelem, 4.e3, fö változatFJ q .}/+E58huNimzoindiai védelem, 4.e3, fö változat 8...Fxc3YI  3E57huNimzoindiai védelem, 4.e3, fö változat 8...dxc4 és 9...Fxc4 cxd4IH w # E56huNimzoindiai védelem, 4.e3, fö változat 7...Hc6-talXG  -J?HE55huNimzoindiai védelem, 4.e3, Gligoric-rendszer, Bronstein-variációLF } \pPE54huNimzoindiai védelem, 4.e3, Gligoric-rendszer 7...dc-velGE s ZifE53huNimzoindiai védelem, 4.e3, fö változat ...c5-tel \x.j5m\4a M oE81huKirályindiai, Sämisch, 5...O-O6` Q eP42aE80huKirályindiai, Sämisch-variációJ_ y RUx4]E79huKirályindiai, négy gyalogos támadás, fö változatQ^  3E78huKirályindiai, négy gyalogos támadás, Fe2-vel és Hf3-malB] i F_E77huKirályindiai, négy gyalogos támadás, 6.Fe2D\ m )E76huKirályindiai védelem, négy gyalogos támadás9[ W aE75huKirályindiai, Averbah, fö változat2Z I R gE74huKirályindiai, Averbah, 6...c5(Y 5 xa|Z^E73huKirályindiai, 5.Fe2-X ? 'DDr(E72huKirályindiai e4 & g3-malMĎUE93huKirályindiai, Petroszjan-rendszer, fö változat8l U #u.SE92huKirályindiai, klasszikus variáció(k 5 }.eE91huKirályindiai, 6.Fe2(j 5 Ѕu-E90huKirályindiai, 5.Hf3Bi i .E89huKirályindiai, Sämisch, Ortodox fö változat=h _ մE88huKirályindiai, Sämisch, Ortodox, 7.d5 c6:g Y ,vlgoE87huKirályindiai, Sämisch, Ortodox, 7.d5?f c VA/wE86huKirályindiai, Sämisch, Ortodox, 7.Hge2 c6>e a G%32E85huKirályindiai, Sämisch, Ortodox változatAd g i/1E84huKirályindiai, Sämisch, Panno, fö változat4c M wGE83huKirályindiai, Sämisch, 6...Hc6Gb s wUE82huKirályindiai, Sämisch, dupla fianchetto változat ?Ls } XݵE99huKirályindiai, Orthodox, Aronyin-Tajmanov, fö változatCr k +)}E98huKirályindiai, Ortodox, Aronyin-Tajmanov, 9.He1xq S M!bP@E97huKirályindiai, Ortodox, Aronyin-Tajmanov változat (Jugoszláv támadás / Mar del Plata-változat)pychess-0.12.2/TRANSLATORS0000755000175000017470000001015612641567764015337 0ustar tamasusers00000000000000[af] Afrikaans Thomas Fogwill [ar] Arabic Aymen AlSalem صقر بن عبدالله [az] Azerbaijani Elxan İsmayılov Emin Mastizadeh [bg] Bulgarian B.U.S.T.T.E.R. Daniel Stoyanov svilborg [bn] Bengali Kaustav Das Modak Scio [br] Breton Ronan Le Déroff [ca] Catalan Norbux [cs] Czech Jakub Žáček Jan Tojnar Konki Kuvaly [LCT] [da] Danish GonzoDark Thomas Dybdahl Ahle [de] German Cyron Dennis Baudys Keruskerfuerst Mario Fuest Martin S. Nils Naumann Norbert Fabritius Philipp Enoeckl Sascha Frömmel Sascha K. B. Thomas Dybdahl Ahle Yarin Kaul [el] Greek Athanasia Tziola Edward Karavakis Leonardo Gregianin Nick Agianniotis Vassilis attikon [en_CA] English (Canada) Dan Klassen [en_GB] English (United Kingdom) Aaron Zeng [es] Spanish Felipe Morales Fitoschido Gus Ivan Juanes (Kerberos) Jorge González Joshua Nobles JoséP1983 Leonardo Gregianin Manuel Kaufmann NessaGP Paco Molinero Perberos Roberto Barbé Thomas Dybdahl Ahle skarevoluti starmaker [et] Estonian gert7 [eu] Basque Leonardo Gregianin [fa] Persian Artin [fi] Finnish Heikki Kulhia Jouni Mettala Lartza Taneli Nurmenniemi [fr] French Belenyx Bodinux Cyriaque Daniel U. Thibault ElseSystem Eric Bkr Guillaume Lemaître Jofs Abbes Maxime Nicolas NOEL Patrick Fiquet Phnx Pierre Rudloff Rémi Duclos Thibault Févry Thomas Dybdahl Ahle Thomas Grim baptiste Rajaut ddavout goofy khaneboubi mitsurugi reminoushka royto stephane_plop [ga] Irish Seanan [gl] Galician Leonardo Gregianin Manuel A. Vázquez Diz Miguel Anxo Bouzada NessaGP [he] Hebrew Leonardo Gregianin Tal Einat [hi] Hindi Lakshay Pushkarna Leonardo Gregianin [hu] Hungarian Richard Somlói Thomas Dybdahl Ahle [id] Indonesian rotyyu [is] Icelandic Rúnar Freyr Þorsteinsson [it] Italian Aldo Latino Clasprea Daniele Lucarelli Edoardo Mercone Mauro Batini Milo Casagrande Stefano Maggiolo Thomas Dybdahl Ahle Weldzar _hilbert_ ltlollo reto ambrosini simone.sandri [ja] Japanese Leonardo Gregianin [jbo] Lojban Qantourisc [jv] Javanese Arief Setiadi Wibowo [ko] Korean Para [ku] Kurdish Omer Ensari [nb] Norwegian Bokmal Marstein Monjako Ole Christian Norum Tom Eriksen [nl] Dutch Jan Willems Rachid Wouter Stomp megabyte rob [oc] Occitan (post 1500) Cédric VALMARY (Tot en òc) [pl] Polish Krzysztof Wittek Leonardo Gregianin Marcin Wolak Merdyn Michał Trzebiatowski Thomas Dybdahl Ahle Wojtek Jamrozy qoqosz [pt] Portuguese Dark_Webster David Gomes Leonardo Gregianin Luis Reis Nuno Messeder Ferreira Tiago Silva [pt_BR] Brazilian Portuguese Cristiano Nunes George S. Silva (Zathara) Raphael Ottoni Thomas Dybdahl Ahle golfinho [ro] Romanian Alexandru Moșoi Coman Mihai Ionuț Jula [ru] Russian Alexandre Prokoudine Alexey Denisov Andrey Krivko Ivan Kliouchenkov Leonardo Gregianin Roman A. aka BasicXP Sergey Mastykov Thomas Dybdahl Ahle ssergeje [si] Sinhalese Samith Sandanayake [sk] Slovak DAG Software Miroslav Vojtuš Tomáš Hledík pe3k [sl] Slovenian Igor2x Klemen Košir [sv] Swedish Bajusz Tamás Calle Mikael Olofsson [tr] Turkish ANIL KARDEŞ Baris Akkurt Hamit Selahattin Naiboğlu Mert Bozkurt Selim Sercan Suerkan denz hasan k ryukun [vi] Vietnamese Nguyen Quang Chien Tran Duc Loi [zh_CN] Chinese (Simplified) Gavin Huang Leonardo Gregianin Ryan Li mike2718 冯超 [zu] Zulu Xolani1990 pychess-0.12.2/setup.py0000755000175000017470000002545612641567764015323 0ustar tamasusers00000000000000# -*- coding: UTF-8 -*- from __future__ import print_function from glob import glob from os import listdir from os.path import isdir, isfile import os import site import sys from imp import load_module, find_module pychess = load_module("pychess", *find_module("pychess",["lib"])) msi =False if len(sys.argv) > 1 and sys.argv[1] == "bdist_msi": try: from cx_Freeze import setup, Executable from cx_Freeze.windist import bdist_msi msi = True except ImportError: print("ERROR: can't import cx_Freeze!") sys.exit(1) import msilib # Monkeypatching cx_freezee to do per user installer class peruser_bdist_msi(bdist_msi): def add_properties(self): metadata = self.distribution.metadata props = [ ('DistVersion', metadata.get_version()), ('DefaultUIFont', 'DlgFont8'), ('ErrorDialog', 'ErrorDlg'), ('Progress1', 'Install'), ('Progress2', 'installs'), ('MaintenanceForm_Action', 'Repair'), ('ALLUSERS', '2'), ('MSIINSTALLPERUSER','1') ] email = metadata.author_email or metadata.maintainer_email if email: props.append(("ARPCONTACT", email)) if metadata.url: props.append(("ARPURLINFOABOUT", metadata.url)) if self.upgrade_code is not None: props.append(("UpgradeCode", self.upgrade_code)) msilib.add_data(self.db, 'Property', props) bdist_msi.add_properties = peruser_bdist_msi.add_properties else: from distutils.core import setup from distutils.command.register import register if sys.version_info < (2, 7, 0): print('ERROR: PyChess requires Python >= 2.7') sys.exit(1) if sys.platform == "win32": try: from gi.repository import Gtk except ImportError: print('ERROR: PyChess in Windows Platform requires to install PyGObject.') print('Installing from http://sourceforge.net/projects/pygobjectwin32') sys.exit(1) VERSION = pychess.VERSION NAME = "pychess" # We have to subclass register command because # PyChess from another author already exist on pypi. class RegisterCommand(register): def run(self): self.distribution.metadata.name = "PyChess-%s" % pychess.VERSION_NAME register.run(self) DESC = "Chess client" LONG_DESC = """PyChess is a chess client for playing and analyzing chess games. It is intended to be usable both for those totally new to chess as well as advanced users who want to use a computer to further enhance their play. PyChess has a builtin python chess engine and auto-detects most popular chess engines (Stockfish, Rybka, Houdini, Shredder, GNU Chess, Crafty, Fruit, and many more). These engines are available as opponents, and are used to provide hints and analysis. PyChess also shows analysis from opening books and Gaviota end-game tablebases. When you get sick of playing computer players you can login to FICS (the Free Internet Chess Server) and play against people all over the world. PyChess has a built-in Timeseal client, so you won't lose clock time during a game due to lag. PyChess also has pre-move support, which means you can make (or start making) a move before your opponent has made their move. PyChess has many other features including: - CECP and UCI chess engine support with customizable engine configurations - Polyglot opening book support - Hint and Spy move arrows - Hint, Score, and Annotation panels - Play and analyze games in separate game tabs - 18 chess variants including Chess960, Suicide, Crazyhouse, Shuffle, Losers, Piece Odds, and Atomic - Reads and writes PGN, EPD and FEN chess file formats - Undo and pause chess games - Move animation in games - Drag and drop chess files - Optional game move and event sounds - Chess piece themes with 40 built-in piece themes - Legal move highlighting - Direct copy+paste pgn game input via Enter Game Notation open-game dialog - Internationalised text and Figurine Algebraic Notation (FAN) support - Translated into 38 languages (languages with +5% strings translated) - Easy to use and intuitive look and feel""" CLASSIFIERS = [ 'Development Status :: 3 - Alpha', 'Environment :: X11 Applications :: GTK', 'Intended Audience :: End Users/Desktop', 'License :: OSI Approved :: GNU General Public License v3 (GPLv3)', 'Operating System :: POSIX', 'Programming Language :: Python', 'Programming Language :: Python :: 3', 'Topic :: Games/Entertainment :: Board Games', ] os.chdir(os.path.abspath(os.path.dirname(__file__))) # save stderr = sys.stderr stdout = sys.stdout if not isfile("eco.db"): exec(open("pgn2ecodb.py").read()) if not isfile(os.path.abspath("pieces/Pychess.png")): exec(open("create_theme_preview.py").read()) # restore sys.stderr = stderr sys.stdout = stdout DATA_FILES = [("share/pychess", ["README.md", "AUTHORS", "ARTISTS", "DOCUMENTERS", "LICENSE", "TRANSLATORS", "pychess_book.bin", "eco.db"])] # UI DATA_FILES += [("share/pychess/glade", glob('glade/*.glade'))] DATA_FILES += [("share/pychess/glade", glob('glade/*.png'))] DATA_FILES += [("share/pychess/glade", glob('glade/*.svg'))] DATA_FILES += [("share/pychess/flags", glob('flags/*.png'))] # Sidepanel (not a package) DATA_FILES += [("share/pychess/sidepanel", glob('sidepanel/*.glade'))] DATA_FILES += [("share/pychess/sidepanel", glob('sidepanel/*.py'))] # Data DATA_FILES += [('share/appdata', ['pychess.appdata.xml'])] DATA_FILES += [('share/applications', ['pychess.desktop'])] DATA_FILES += [('share/icons/hicolor/scalable/apps', ['pychess.svg'])] DATA_FILES += [('share/menu', ['menu/pychess'])] DATA_FILES += [('share/pixmaps', ['pychess.svg', 'pychess.xmp'])] if sys.platform == "win32": DATA_FILES += [("share/pychess/sounds", glob('sounds/*.wav'))] DATA_FILES += [("share/pychess/engines", glob('engines/*.*'))] else: DATA_FILES += [("share/pychess/sounds", glob('sounds/*.ogg'))] DATA_FILES += [('share/icons/hicolor/24x24/apps', ['pychess.png'])] DATA_FILES += [('share/gtksourceview-1.0/language-specs', ['gtksourceview-1.0/language-specs/pgn.lang'])] # Piece sets DATA_FILES += [("share/pychess/pieces", glob('pieces/*.png'))] DATA_FILES += [("share/pychess/pieces/ttf", glob('pieces/ttf/*.ttf'))] for dir in [d for d in listdir('pieces') if isdir(os.path.join('pieces', d)) and d != 'ttf']: DATA_FILES += [("share/pychess/pieces/"+dir, glob('pieces/'+dir+'/*.svg'))] # Manpages DATA_FILES += [('share/man/man1', ['manpages/pychess.1.gz'])] # Language pofile = "LC_MESSAGES/pychess" if sys.platform == "win32": argv0_path = os.path.dirname(os.path.abspath(sys.executable)) sys.path.append(argv0_path + "\\tools\\i18n") import msgfmt pychess_langs = [] for dir in [d for d in listdir("lang") if isdir("lang/"+d) and d != "en"]: if sys.platform == "win32": file = "lang/%s/%s" % (dir,pofile) msgfmt.make(file+".po", file+".mo") else: os.popen("msgfmt lang/%s/%s.po -o lang/%s/%s.mo" % (dir,pofile,dir,pofile)) DATA_FILES += [("share/locale/"+dir+"/LC_MESSAGES", ["lang/"+dir+"/"+pofile+".mo"])] pychess_langs.append(dir) PACKAGES = [] if msi: # TODO: cx_freeze doesn't allow letters in version #VERSION = "0.12.0" ## Get the site-package folder, not everybody will install ## Python into C:\PythonXX site_dir = site.getsitepackages()[1] include_dll_path = os.path.join(site_dir, "gnome") lang_path = os.path.join(site_dir, "gnome", "share", "locale") ## gtk3.0 .mo files gtk_mo = [f + "/LC_MESSAGES/gtk30.mo" for f in os.listdir(lang_path) if f in pychess_langs] ## Collect the list of missing dll when cx_freeze builds the app missing_dll = [f for f in os.listdir(include_dll_path) if \ (f.endswith(".dll") or (f.startswith("gspawn") and f.endswith(".exe")))] ## We need to add all the libraries too (for themes, etc..) gtk_libs = ['etc', 'share/icons/adwaita', 'share/themes/adwaita', 'lib/gio', 'lib/gdk-pixbuf-2.0', 'lib/girepository-1.0', 'share/glib-2.0' ] ## Create the list of includes as cx_freeze likes include_files = [] for mo in gtk_mo: mofile = os.path.join(lang_path, mo) if os.path.isfile(mofile): include_files.append((mofile, "share/locale/" + mo)) for dll in missing_dll: include_files.append((os.path.join(include_dll_path, dll), dll)) ## Let's add gtk libraries folders and files for lib in gtk_libs: include_files.append((os.path.join(include_dll_path, lib), lib)) base = None ## Lets not open the console while running the app if sys.platform == "win32": base = "Win32GUI" executables = [Executable("pychess", base=base, icon="pychess.ico", shortcutName="PyChess", shortcutDir="DesktopFolder"), Executable(script="lib/__main__.py", targetName="pychess-engine.exe", base=base), ] bdist_msi_options = { "upgrade_code": "{5167584f-c196-428f-be40-4c861025e90a}", "add_to_path": True} build_exe_options = { "compressed": False, "include_msvcr": True, "path": sys.path + ["lib"], "includes": ["gi"], "packages": ["gi", "pychess"], "include_files": include_files, } else: PACKAGES = ["pychess", "pychess.gfx", "pychess.ic", "pychess.ic.managers", "pychess.Players", "pychess.Savers", "pychess.System", "pychess.Utils", "pychess.Utils.lutils", "pychess.Variants", "pychess.widgets", "pychess.widgets.pydock" ] build_exe_options = {} bdist_msi_options = {} executables = {} setup ( cmdclass = {"register": RegisterCommand}, name = NAME, version = VERSION, author = 'Pychess team', author_email = 'pychess-people@googlegroups.com', maintainer = 'Thomas Dybdahl Ahle', classifiers = CLASSIFIERS, keywords = 'python gtk chess xboard gnuchess game pgn epd board linux', description = DESC, long_description = LONG_DESC, license = 'GPL3', url = 'http://pychess.org', download_url = 'http://pychess.org/download/', package_dir = {'': 'lib'}, packages = PACKAGES, data_files = DATA_FILES, scripts = ['pychess'], options = {"build_exe": build_exe_options, "bdist_msi": bdist_msi_options }, executables = executables ) pychess-0.12.2/lib/0000755000175000017470000000000012653231274014323 5ustar tamasusers00000000000000pychess-0.12.2/lib/pychess/0000755000175000017470000000000012653231274016001 5ustar tamasusers00000000000000pychess-0.12.2/lib/pychess/ic/0000755000175000017470000000000012653231274016374 5ustar tamasusers00000000000000pychess-0.12.2/lib/pychess/ic/FICSObjects.py0000644000175000017470000011453312651756140021015 0ustar tamasusers00000000000000# -*- coding: utf-8 -*- import datetime from gi.repository import GLib, GObject from pychess.compat import unicode from pychess.System.Log import log from pychess.System.idle_add import idle_add from pychess.Utils.IconLoader import load_icon from pychess.Utils.Rating import Rating from pychess.Utils.const import * from pychess.ic import * class FICSRatings (dict): def __init__ (self, *args, **kwargs): dict.__init__(self, *args, **kwargs) for ratingtype in RATING_TYPES: self[ratingtype] = Rating(ratingtype, 0) def __setitem__ (self, key, val): if key not in RATING_TYPES: raise TypeError("bad key: %s %s" % (repr(key), type(key))) elif not isinstance(val, Rating): raise TypeError("bad val: %s %s" % (repr(val), type(val))) dict.__setitem__(self, key, val) @idle_add def make_sensitive_if_available (button, player): if player.isAvailableForGame(): button.set_property("sensitive", True) button.set_property("tooltip-text", "") else: button.set_property("sensitive", False) button.set_property("tooltip-text", _("%(player)s is %(status)s") % \ {"player": player.name, "status": player.display_status.lower()}) @idle_add def make_sensitive_if_playing (button, player): status = player.display_status.lower() if player.status == IC_STATUS_PLAYING: button.set_property("sensitive", True) else: button.set_property("sensitive", False) if player.status != IC_STATUS_OFFLINE: status = _("not playing") button.set_property("tooltip-text", _("%(player)s is %(status)s") % \ {"player": player.name, "status": status}) def get_player_tooltip_text (player, show_status=True): text = "%s" % player.name text += "%s" % player.display_titles(long=True) if player.blitz: text += "\n%s: %s" % (_("Blitz"), player.blitz) if player.standard: text += "\n%s: %s" % (_("Standard"), player.standard) if player.lightning: text += "\n%s: %s" % (_("Lightning"), player.lightning) if player.atomic: text += "\n%s: %s" % (_("Atomic"), player.atomic) if player.bughouse: text += "\n%s: %s" % (_("Bughouse"), player.bughouse) if player.crazyhouse: text += "\n%s: %s" % (_("Crazyhouse"), player.crazyhouse) if player.losers: text += "\n%s: %s" % (_("Losers"), player.losers) if player.suicide: text += "\n%s: %s" % (_("Suicide"), player.suicide) if player.wild: text += "\n%s: %s" % (_("Wild"), player.wild) if show_status: text += "\n%s" % player.display_status return text class FICSPlayer (GObject.GObject): def __init__ (self, name, online=False, status=IC_STATUS_UNKNOWN, game=None, titles=None): assert isinstance(name, str), name assert isinstance(online, bool), online GObject.GObject.__init__(self) self.name = name self.online = online self._status = status self.status = status self.game = None self.adjournment = False self.keep_after_logout = False # Whether to remove from Players after they logout self.ratings = FICSRatings() if titles is None: self.titles = set() else: self.titles = titles def long_name (self, game_type=None): name = self.name if game_type: rating = self.getRatingByGameType(game_type) else: rating = self.getRatingForCurrentGame() if rating: name += " (%d)" % rating title = self.display_titles() if title: name += "%s" % title return name def get_online (self): return self._online def set_online (self, online): self._online = online online = GObject.property(get_online, set_online) @property def display_online (self): if self.online: return _("Online") else: return _("Offline") def get_status (self): return self._status def set_status (self, status): self._previous_status = self._status self._status = status status = GObject.property(get_status, set_status) def restore_previous_status (self): self.status = self._previous_status @property def display_status (self): if self.status == IC_STATUS_AVAILABLE: return _("Available") elif self.status == IC_STATUS_PLAYING: status = _("Playing") game = self.game if game is not None: status += " " + game.display_text return status elif self.status == IC_STATUS_IDLE: return _("Idle") elif self.status == IC_STATUS_OFFLINE: return _("Offline") elif self.status == IC_STATUS_EXAMINING: return _("Examining") elif self.status in (IC_STATUS_NOT_AVAILABLE, IC_STATUS_BUSY): return _("Not Available") elif self.status == IC_STATUS_RUNNING_SIMUL_MATCH: return _("Running Simul Match") elif self.status == IC_STATUS_IN_TOURNAMENT: return _("In Tournament") else: return "" def get_game (self): return self._game def set_game (self, game): if game is not None and not isinstance(game, FICSMatch): raise TypeError(type(game)) self._game = game game = GObject.property(get_game, set_game) def get_titles (self): return self._titles def set_titles (self, titles): self._titles = titles titles = GObject.property(get_titles, set_titles) def display_titles (self, long=False): r = "" for title in self.titles: if long: r += " (" + TITLE_TYPE_DISPLAY_TEXTS[title] + ")" else: r += " (" + TITLE_TYPE_DISPLAY_TEXTS_SHORT[title] + ")" return r @property def blitz (self): return self.ratings[TYPE_BLITZ].elo @property def standard (self): return self.ratings[TYPE_STANDARD].elo @property def lightning (self): return self.ratings[TYPE_LIGHTNING].elo @property def atomic (self): return self.ratings[TYPE_ATOMIC].elo @property def bughouse (self): return self.ratings[TYPE_BUGHOUSE].elo @property def crazyhouse (self): return self.ratings[TYPE_CRAZYHOUSE].elo @property def losers (self): return self.ratings[TYPE_LOSERS].elo @property def suicide (self): return self.ratings[TYPE_SUICIDE].elo @property def wild (self): return self.ratings[TYPE_WILD].elo def __hash__ (self): """ Two players are equal if the first 10 characters of their name match. This is to facilitate matching players from output of commands like the 'games' command which only return the first 10 characters of a player's name """ return hash(self.name[0:10].lower()) def __eq__ (self, player): if isinstance(self, type(player)) and hash(self) == hash(player): return True else: return False def __repr__ (self): r = "name='%s'" % (self.name + self.display_titles()) r += ", id=%s" % (id(self)) r += ", online=%s" % repr(self.online) r += ", adjournment=%s" % repr(self.adjournment) r += ", status=%i" % self.status game = self.game if game != None: r += ", game.gameno=%d" % game.gameno r += ", game.rated=%s" % game.rated r += ", game.private=" + repr(game.private) else: r += ", game=None" for rating_type in RATING_TYPES: if rating_type in self.ratings: r += ", %s=%s" % \ (GAME_TYPES_BY_RATING_TYPE[rating_type].display_text, repr(self.ratings[rating_type].elo)) return "" def isAvailableForGame (self): if self.status in \ (IC_STATUS_PLAYING, IC_STATUS_BUSY, IC_STATUS_OFFLINE, IC_STATUS_RUNNING_SIMUL_MATCH, IC_STATUS_NOT_AVAILABLE, IC_STATUS_EXAMINING, IC_STATUS_IN_TOURNAMENT): return False else: return True def isObservable (self): return self.status == IC_STATUS_EXAMINING \ or \ (self.status == IC_STATUS_PLAYING and \ self.game is not None and not self.game.private and self.game.supported) def isGuest (self): return TYPE_UNREGISTERED in self.titles def isComputer (self): return TYPE_COMPUTER in self.titles def isAdmin (self): return TYPE_ADMINISTRATOR in self.titles @classmethod def getIconByRating (cls, rating, size=16): assert isinstance(rating, int), "rating not an int: %s" % str(rating) if rating >= 1900: return load_icon(size, "weather-storm") elif rating >= 1600: return load_icon(size, "weather-showers") elif rating >= 1300: return load_icon(size, "weather-overcast") elif rating >= 1000: return load_icon(size, "weather-few-clouds") else: return load_icon(size, "weather-clear") def getIcon (self, size=16, gametype=None): assert isinstance(size, int), "size not an int: %s" % str(size) if self.isGuest(): return load_icon(size, "stock_people", "system-users") elif self.isComputer(): return load_icon(size, "computer", "stock_notebook") elif self.isAdmin(): return load_icon(size, "security-high", "stock_book_blue") else: if gametype: rating = self.getRatingByGameType(gametype) else: rating = self.getStrength() return self.getIconByRating(rating, size) def getMarkup (self, gametype=None, big=True, long_titles=True): markup = "%s" % self.name if self.isGuest(): markup += self.display_titles(long=long_titles) else: if gametype: rating = self.getRatingByGameType(gametype) else: rating = self.getStrength() if rating < 1: rating = _("Unrated") markup += " (%s)" % rating if self.display_titles() != "": markup += self.display_titles(long=long_titles) if big: markup = "" + markup + "" return markup def copy (self): player = FICSPlayer(self.name, online=self.online, status=self.status, titles=self.titles.copy()) for ratingtype, rating in self.ratings.items(): player.ratings[ratingtype] = rating.copy() player.game = self.game player.adjournment = self.adjournment return player def getRatingMean (self): ratingtotal = 0 numratings = 0 for ratingtype in self.ratings: if self.ratings[ratingtype].elo == 0: continue if self.ratings[ratingtype].deviation == DEVIATION_NONE: ratingtotal += self.ratings[ratingtype].elo * 3 numratings += 3 elif self.ratings[ratingtype].deviation == DEVIATION_ESTIMATED: ratingtotal += self.ratings[ratingtype].elo * 2 numratings += 2 elif self.ratings[ratingtype].deviation == DEVIATION_PROVISIONAL: ratingtotal += self.ratings[ratingtype].elo * 1 numratings += 1 return numratings > 0 and ratingtotal // numratings or 0 # FIXME: this isn't very accurate because of inflated standard ratings # and deflated lightning ratings and needs work # IDEA: use rank in addition to rating to determine strength def getStrength (self): if TYPE_BLITZ in self.ratings and \ self.ratings[TYPE_BLITZ].deviation == DEVIATION_NONE: return self.ratings[TYPE_BLITZ].elo elif TYPE_LIGHTNING in self.ratings and \ self.ratings[TYPE_LIGHTNING].deviation == DEVIATION_NONE: return self.ratings[TYPE_LIGHTNING].elo else: return self.getRatingMean() def getRatingByGameType (self, game_type): try: return self.ratings[game_type.rating_type].elo except KeyError: return 0 except AttributeError: return 0 def getRatingForCurrentGame (self): try: return self.getRatingByGameType(self.game.game_type) except AttributeError: return 0 class FICSPlayers (GObject.GObject): __gsignals__ = { 'FICSPlayerEntered' : (GObject.SignalFlags.RUN_FIRST, None, (object,)), 'FICSPlayerExited' : (GObject.SignalFlags.RUN_FIRST, None, (object,)) } def __init__ (self, connection): GObject.GObject.__init__(self) self.players = {} self.players_cids = {} self.connection = connection def start (self): # self.connection.fm.connect("fingeringFinished", self.onFinger) pass def __getitem__ (self, player): if not isinstance(player, FICSPlayer): raise TypeError("%s" % repr(player)) if hash(player) in self.players: return self.players[hash(player)] else: raise KeyError def __setitem__ (self, key, value): """ key and value must be the same FICSPlayer object """ if not isinstance(key, FICSPlayer): raise TypeError if not isinstance(value, FICSPlayer): raise TypeError if key != value: raise Exception("Not the same: %s %s" % (repr(key), repr(value))) if hash(value) in self.players: raise Exception("%s already exists in %s" % (repr(value), repr(self))) self.players[hash(value)] = value self.players_cids[hash(value)] = value.connect("notify::online", self.online_changed) def __delitem__ (self, player): if not isinstance(player, FICSPlayer): raise TypeError if player in self: del self.players[hash(player)] if hash(player) in self.players_cids: if player.handler_is_connected(self.players_cids[hash(player)]): player.disconnect(self.players_cids[hash(player)]) del self.players_cids[hash(player)] def __contains__ (self, player): if not isinstance(player, FICSPlayer): raise TypeError if hash(player) in self.players: return True else: return False def keys(self): return self.players.keys() def items(self): return self.players.items() def values(self): return self.players.values() def online_changed (self, player, prop): if player.online: GLib.idle_add(self.emit, "FICSPlayerEntered", [player,], priority=GLib.PRIORITY_LOW) # This method is a temporary hack until ChatWindow/ChatManager are # converted to use FICSPlayer references rather than player's names def get_online_playernames (self): names = [] players = list(self.values()) for player in players: if player.online: names.append(player.name) return names def get (self, player, create=True): if player in self: player = self[player] elif create: self[player] = player else: raise KeyError return player def player_disconnected (self, player): #log.debug("%s" % player, # extra={"task": (self.connection.username, "player_disconnected")}) if player in self: player = self[player] player.online = False player.status = IC_STATUS_OFFLINE if not player.adjournment and not player.keep_after_logout and \ player.name not in self.connection.notify_users: del self[player] else: log.debug("Not removing %s" % player, extra={"task": (self.connection.username, "player_disconnected")}) GLib.idle_add(self.emit, 'FICSPlayerExited', player, priority=GLib.PRIORITY_LOW) # def onFinger (self, fm, finger): # player = FICSPlayer(finger.getName()) # if player in self: # self[player].finger = finger # # TODO: merge ratings and titles from finger object into ficsplayer object class FICSMatch (GObject.GObject): def __init__ (self, minutes, inc, rated, game_type): assert minutes is None or isinstance(minutes, int), type(minutes) assert inc is None or isinstance(inc, int), inc assert isinstance(rated, bool), rated assert game_type is None or game_type is GAME_TYPES_BY_FICS_NAME["wild"] \ or game_type in GAME_TYPES.values(), game_type GObject.GObject.__init__(self) self.minutes = minutes self.inc = inc self.rated = rated self.game_type = game_type def __repr__ (self): text = "%s %s" % (self.minutes, self.inc) text += " %s" % ("rated" if self.rated else "unrated") text += " %s" % self.game_type.display_text return text @property def display_rated (self): if self.rated: return _("Rated") else: return _("Unrated") @property def display_timecontrol (self): t = "" if self.minutes is not None: t = _("%d min") % self.minutes if self.inc is not None and self.inc != 0: t += _(" + %d sec") % self.inc return t @property def sortable_time (self): #http://www.freechess.org/Help/HelpFiles/etime.html etime = self.minutes + int(round(self.inc*2./3.)) return etime def get_soughtmatch_tooltip_text (sought): text = "%s" % sought.player.name text += "%s" % sought.player.display_titles(long=True) if not sought.player.isGuest(): text += " (%d)" % sought.player_rating text += "\n%s %s" % (sought.display_rated, sought.game_type.display_text) text += "\n" + sought.display_timecontrol if sought.color: text += "\n" + _("%(player)s plays %(color)s") \ % {"player": sought.player.name, "color": _("white") if sought.color == "white" else _("black")} return text class FICSSoughtMatch (FICSMatch): def __init__ (self, index, player, minutes, inc, rated, color, game_type): assert index is None or isinstance(index, int), index assert isinstance(player, FICSPlayer), player FICSMatch.__init__(self, minutes, inc, rated, game_type) self.index = index self.player = player self.color = color # self.player plays color def __hash__ (self): return self.index def __eq__ (self, sought): if isinstance(self, type(sought)) and hash(self) == hash(sought): return True else: return False def __ne__ (self, sought): return not self == sought def __repr__ (self): text = "%s" % self.index text += " %s" % self.player.name text += " %s" % FICSMatch.__repr__(self) return text @property def player_rating (self): """ This returns self.player's rating for the type of match being sought. If self.player doesn't have a rating for the type of match being sought, this returns 0. If the match is untimed we use self.player's standard time-control rating if they have one. """ game_type = self.game_type if game_type == GAME_TYPES['untimed']: game_type = GAME_TYPES['standard'] return self.player.getRatingByGameType(game_type) def get_challenge_tooltip_text (challenge): text = get_soughtmatch_tooltip_text(challenge) if challenge.adjourned: text += "\n" + _("This is a continuation of an adjourned match") return text class FICSChallenge (FICSSoughtMatch): def __init__ (self, index, player, minutes, inc, rated, color, game_type, adjourned=False): FICSSoughtMatch.__init__(self, index, player, minutes, inc, rated, color, game_type) self.adjourned = adjourned class FICSChallenges (GObject.GObject): __gsignals__ = { 'FICSChallengeIssued' : (GObject.SignalFlags.RUN_FIRST, None, (object,)), 'FICSChallengeRemoved' : (GObject.SignalFlags.RUN_FIRST, None, (object,)) } def __init__ (self, connection): GObject.GObject.__init__(self) self.connection = connection self.challenges = {} def start (self): self.connection.om.connect("onChallengeAdd", self.onChallengeIssued) self.connection.om.connect("onChallengeRemove", self.onChallengeRemoved) self.connection.bm.connect("playGameCreated", self.onPlayingGame) def __getitem__ (self, index): if not isinstance(index, int): raise TypeError return self.challenges[index] def __setitem__ (self, index, challenge): if not isinstance(index, int): raise TypeError if not isinstance(challenge, FICSSoughtMatch): raise TypeError if index in self: log.warning("FICSChallenges: not overwriting challenge %s" % repr(challenge)) return self.challenges[index] = challenge self.emit('FICSChallengeIssued', challenge) def __delitem__ (self, index): if not isinstance(index, int): raise TypeError try: challenge = self.challenges[index] except KeyError: return del self.challenges[index] self.emit('FICSChallengeRemoved', challenge) def __contains__ (self, index): if not isinstance(index, int): raise TypeError if index in self.challenges: return True else: return False def clear (self): challenges = self.challenges.copy() for key in challenges: del self[key] def onChallengeIssued (self, om, challenge): self[challenge.index] = challenge def onChallengeRemoved (self, om, index): del self[index] def onPlayingGame (self, bm, game): self.clear() def get_rating_range_display_text (rmin=0, rmax=9999): assert isinstance(rmin, type(int())) and rmin >= 0 and rmin <= 9999, rmin assert isinstance(rmax, type(int())) and rmax >= 0 and rmax <= 9999, rmax if rmin > 0: text = "%d" % rmin if rmax == 9999: text += unicode("↑") else: text += "-%d" % rmax elif rmax != 9999: text = unicode("%d↓" % rmax) else: text = None return text def get_seek_tooltip_text (seek): text = get_soughtmatch_tooltip_text(seek) rrtext = get_rating_range_display_text(seek.rmin, seek.rmax) if rrtext: text += "\n%s: %s" % (_("Opponent Rating"), rrtext) if not seek.automatic: text += "\n%s" % _("Manual Accept") return text class FICSSeek (FICSSoughtMatch): def __init__ (self, index, player, minutes, inc, rated, color, game_type, rmin=0, rmax=9999, automatic=True, formula=False): FICSSoughtMatch.__init__(self, index, player, minutes, inc, rated, color, game_type) self.rmin = rmin # minimum rating one has to accept this seek self.rmax = rmax # maximum rating one has to accept this seek self.automatic = automatic # if True, auto accept; otherwise, manual accept self.formula = formula # players' formula will be used to screen responses class FICSSeeks (GObject.GObject): __gsignals__ = { 'FICSSeekCreated' : (GObject.SignalFlags.RUN_FIRST, None, (object,)), 'FICSSeekRemoved' : (GObject.SignalFlags.RUN_FIRST, None, (object,)) } def __init__ (self, connection): GObject.GObject.__init__(self) self.connection = connection self.seeks = {} def start (self): self.connection.glm.connect("addSeek", self.onAddSeek) self.connection.glm.connect("removeSeek", self.onRemoveSeek) self.connection.glm.connect("clearSeeks", self.onClearSeeks) self.connection.bm.connect("curGameEnded", self.onCurGameEnded) def __getitem__ (self, index): if not isinstance(index, int): raise TypeError return self.seeks[index] def __setitem__ (self, index, seek): if not isinstance(index, int): raise TypeError if not isinstance(seek, FICSSoughtMatch): raise TypeError if index in self: log.warning("FICSSeeks: not overwriting seek %s" % repr(seek)) return self.seeks[index] = seek self.emit('FICSSeekCreated', seek) def __delitem__ (self, index): if not isinstance(index, int): raise TypeError try: seek = self.seeks[index] except KeyError: return del self.seeks[index] self.emit('FICSSeekRemoved', seek) def __contains__ (self, index): if not isinstance(index, int): raise TypeError if index in self.seeks: return True else: return False def clear (self): seeks = self.seeks.copy() for key in seeks: del self[key] def onAddSeek (self, glm, seek): self[seek.index] = seek def onRemoveSeek (self, glm, index): del self[index] def onClearSeeks (self, glm): self.clear() def onCurGameEnded(self, bm, game): self.connection.glm.refresh_seeks() class FICSBoard (object): def __init__ (self, wms, bms, fen=None, pgn=None): assert isinstance(wms, int), wms assert isinstance(bms, int), bms self.wms = wms self.bms = bms # assert fen != None or pgn != None self.fen = fen self.pgn = pgn def __repr__ (self): r = "wms=%s\nbms=%s\npgn=%s" % (self.wms, self.bms, self.pgn) return r class FICSGame (FICSMatch): def __init__ (self, wplayer, bplayer, gameno=None, game_type=None, rated=False, minutes=None, inc=None, result=None, reason=None, board=None, private=False, relation=None): assert isinstance(wplayer, FICSPlayer), wplayer assert isinstance(bplayer, FICSPlayer), bplayer assert gameno is None or isinstance(gameno, int), gameno assert result is None or isinstance(result, int), result assert reason is None or isinstance(reason, int), reason assert board is None or isinstance(board, FICSBoard), board assert isinstance(private, bool), private FICSMatch.__init__(self, minutes, inc, rated, game_type) self.wplayer = wplayer self.bplayer = bplayer self.gameno = gameno self.result = result self.reason = reason self.board = board self.private = private self.relation = relation def __hash__ (self): return hash(":".join((self.wplayer.name[0:10].lower(), self.bplayer.name[0:10].lower(), str(self.gameno)))) def __eq__ (self, game): if isinstance(game, FICSGame) and hash(self) == hash(game): return True else: return False def __repr__ (self): r = "" @property def display_time (self): if self.time is not None: return self.time.isoformat(' ')[0:16] @property def opponent (self): if self.our_color == WHITE: return self.bplayer elif self.our_color == BLACK: return self.wplayer class FICSHistoryGame (FICSGame): def __init__ (self, wplayer, bplayer, time=None, rated=False, game_type=None, private=False, minutes=None, inc=None, result=None, reason=None, board=None, relation=None, wrating=None, brating=None, gameno=None, history_no=None): assert time is None or isinstance(time, datetime.datetime), time FICSGame.__init__(self, wplayer, bplayer, rated=rated, private=private, game_type=game_type, minutes=minutes, inc=inc, result=result, reason=reason, board=board, relation=relation, gameno=gameno) self.time = time self.wrating = wrating self.brating = brating self.history_no = history_no def __hash__ (self): return hash(":".join((self.wplayer.name[0:10].lower(), self.bplayer.name[0:10].lower(), str(self.history_no), str(self.time)))) @property def display_time (self): if self.time is not None: return self.time.isoformat(' ')[0:16] class FICSJournalGame (FICSGame): def __init__ (self, wplayer, bplayer, our_color=None, time=None, rated=False, game_type=None, private=False, minutes=None, inc=None, result=None, reason=None, board=None, relation=None, wrating=None, brating=None, gameno=None, journal_no=None): assert our_color is None or our_color in (WHITE, BLACK), our_color assert time is None or isinstance(time, datetime.datetime), time FICSGame.__init__(self, wplayer, bplayer, rated=rated, private=private, game_type=game_type, minutes=minutes, inc=inc, result=result, reason=reason, board=board, relation=relation, gameno=gameno) self.wrating = wrating self.brating = brating self.journal_no = journal_no def __hash__ (self): return hash(":".join((self.wplayer.name[0:10].lower(), self.bplayer.name[0:10].lower(), str(self.journal_no), ))) @property def display_time (self): return _("Unknown") class FICSGames (GObject.GObject): __gsignals__ = { 'FICSGameCreated' : (GObject.SignalFlags.RUN_FIRST, None, (object,)), 'FICSGameEnded' : (GObject.SignalFlags.RUN_FIRST, None, (object,)), 'FICSAdjournedGameRemoved' : (GObject.SignalFlags.RUN_FIRST, None, (object,)), 'FICSHistoryGameRemoved' : (GObject.SignalFlags.RUN_FIRST, None, (object,)), 'FICSJournalGameRemoved' : (GObject.SignalFlags.RUN_FIRST, None, (object,)), } def __init__ (self, connection): GObject.GObject.__init__(self) self.games = {} self.games_by_gameno = {} self.adjourned_games = {} self.history_games = {} self.journal_games = {} self.connection = connection def start (self): self.connection.adm.connect("onAdjournmentsList", self.onAdjournmentsList) self.connection.adm.connect("onHistoryList", self.onHistoryList) self.connection.adm.connect("onJournalList", self.onJournalList) self.connection.bm.connect("curGameEnded", self.onCurGameEnded) def __getitem__ (self, game): if not isinstance(game, FICSGame): raise TypeError("Not a FICSGame: %s" % repr(game)) if hash(game) in self.games: return self.games[hash(game)] else: raise KeyError def __setitem__ (self, key, value): """ key and value must be the same game """ if not isinstance(key, FICSGame): raise TypeError if not isinstance(value, FICSGame): raise TypeError if key != value: raise Exception("Not the same: %s %s" % (repr(key), repr(value))) if hash(value) in self.games: raise Exception("%s already exists in %s" % (repr(value), repr(self))) self.games[hash(value)] = value self.games_by_gameno[value.gameno] = value if isinstance(value, FICSAdjournedGame): self.adjourned_games[hash(value)] = value elif isinstance(value, FICSHistoryGame): self.history_games[hash(value)] = value elif isinstance(value, FICSJournalGame): self.journal_games[hash(value)] = value def __delitem__ (self, game): if not isinstance(game, FICSGame): raise TypeError(repr(game), type(game)) if game in self: del self.games[hash(game)] if game.gameno in self.games_by_gameno: del self.games_by_gameno[game.gameno] if game in self.adjourned_games: del self.adjourned_games[hash(game)] elif game in self.history_games: del self.history_games[hash(game)] elif game in self.journal_games: del self.journal_games[hash(game)] def __contains__ (self, game): if not isinstance(game, FICSGame): raise TypeError if hash(game) in self.games: return True else: return False def keys(self): return self.games.keys() def items(self): return self.games.items() def values(self): return self.games.values() def get_game_by_gameno (self, gameno): if not isinstance(gameno, int): raise TypeError return self.games_by_gameno[gameno] def get (self, game, create=True, emit=True): # TODO: lock if game in self: self[game].update(game) game = self[game] elif create: self[game] = game if emit: self.emit("FICSGameCreated", [game,]) else: raise KeyError return game def game_ended (self, game): if game in self: game = self[game] del self[game] self.emit("FICSGameEnded", game) def onAdjournmentsList (self, adm, adjournments): for game in self.adjourned_games.values(): if game not in adjournments: del self[game] game.opponent.adjournment = False self.emit("FICSAdjournedGameRemoved", game) def onHistoryList (self, adm, history): for game in self.history_games.values(): if game not in history: del self[game] self.emit("FICSHistoryGameRemoved", game) def onJournalList (self, adm, journal): for game in self.journal_games.values(): if game not in journal: del self[game] self.emit("FICSJournalGameRemoved", game) def onCurGameEnded (self, bm, game): for adjourned_game in self.adjourned_games.values(): for player in (game.wplayer, game.bplayer): if player == adjourned_game.opponent: del self[adjourned_game] adjourned_game.opponent.adjournment = False self.emit("FICSAdjournedGameRemoved", adjourned_game) for game in self.history_games.values(): del self[game] self.emit("FICSHistoryGameRemoved", game) self.connection.adm.queryHistory() pychess-0.12.2/lib/pychess/ic/ICLounge.py0000755000175000017470000033312512653216060020421 0ustar tamasusers00000000000000# -*- coding: utf-8 -*- from __future__ import absolute_import from __future__ import print_function import re import sys from time import strftime, localtime, time from math import e from operator import attrgetter from itertools import groupby from gi.repository import GLib, Gtk, Gdk, GdkPixbuf, GObject, Pango from pychess.ic import * from pychess.compat import cmp, StringIO from pychess.System import conf, uistuff from pychess.System.prefix import addDataPrefix from pychess.System.ping import Pinger from pychess.System.Log import log from pychess.widgets import ionest from pychess.widgets import gamewidget from pychess.widgets.ChatWindow import ChatWindow from pychess.widgets.ConsoleWindow import ConsoleWindow from pychess.widgets.SpotGraph import SpotGraph from pychess.widgets.ChainVBox import ChainVBox from pychess.widgets.preferencesDialog import SoundTab from pychess.widgets.InfoBar import * from pychess.Utils.const import * from pychess.Utils.GameModel import GameModel from pychess.Utils.IconLoader import load_icon, get_pixbuf from pychess.Utils.Rating import Rating from pychess.Utils.TimeModel import TimeModel from pychess.Players.ICPlayer import ICPlayer from pychess.Players.Human import Human from pychess.Savers import pgn, fen from pychess.System.idle_add import idle_add from pychess.Variants import variants from .FICSObjects import * from .ICGameModel import ICGameModel class PlayerNotificationMessage (InfoBarMessage): def __init__ (self, message_type, content, callback, player, text): InfoBarMessage.__init__(self, message_type, content, callback) self.player = player self.text = text class ICLounge (GObject.GObject): __gsignals__ = { 'logout' : (GObject.SignalFlags.RUN_FIRST, None, ()), 'autoLogout' : (GObject.SignalFlags.RUN_FIRST, None, ()), } def __init__ (self, connection, helperconn, host): log.debug("ICLounge.__init__: starting") GObject.GObject.__init__(self) self.connection = connection self.helperconn = helperconn self.host = host self.messages = [] self.players = [] self.widgets = uistuff.GladeWidgets("fics_lounge.glade") lounge = self.widgets["fics_lounge"] uistuff.keepWindowSize("fics_lounge", lounge) lounge.set_title("PyChess - Internet Chess: %s" % connection.ics_name) self.infobar = InfoBarNotebook() self.infobar.hide() self.widgets["fics_lounge_infobar_vbox"].pack_start(self.infobar, False, False, 0) def on_window_delete (window, event): self.emit("logout") self.close() return True self.widgets["fics_lounge"].connect("delete-event", on_window_delete) def on_logoffButton_clicked (button): self.emit("logout") self.close() self.widgets["logoffButton"].connect("clicked", on_logoffButton_clicked) def on_autoLogout (alm): self.emit("autoLogout") self.close() self.connection.alm.connect("logOut", on_autoLogout) self.connection.connect("disconnected", lambda connection: self.close()) self.connection.connect("error", self.on_connection_error) if self.connection.isRegistred(): numtimes = conf.get("numberOfTimesLoggedInAsRegisteredUser", 0) + 1 conf.set("numberOfTimesLoggedInAsRegisteredUser", numtimes) self.connection.em.connect("onCommandNotFound", lambda em, cmd: log.error("Fics answered '%s': Command not found" % cmd)) self.connection.bm.connect("playGameCreated", self.onPlayGameCreated) self.connection.bm.connect("obsGameCreated", self.onObserveGameCreated) self.connection.bm.connect("exGameCreated", self.onObserveGameCreated) self.connection.fm.connect("fingeringFinished", self.onFinger) # the rest of these relay server messages to the lounge infobar self.connection.bm.connect("tooManySeeks", self.tooManySeeks) self.connection.bm.connect("nonoWhileExamine", self.nonoWhileExamine) self.connection.bm.connect("matchDeclined", self.matchDeclined) self.connection.bm.connect("player_on_censor", self.player_on_censor) self.connection.bm.connect("player_on_noplay", self.player_on_noplay) self.connection.bm.connect("req_not_fit_formula", self.req_not_fit_formula) self.connection.glm.connect("seek-updated", self.on_seek_updated) self.connection.glm.connect("our-seeks-removed", self.our_seeks_removed) self.connection.cm.connect("arrivalNotification", self.onArrivalNotification) self.connection.cm.connect("departedNotification", self.onDepartedNotification) for user in self.connection.notify_users: user = self.connection.players.get(FICSPlayer(user)) self.user_from_notify_list_is_present(user) self.userinfo = UserInfoSection(self.widgets, self.connection, self.host) self.news = NewsSection(self.widgets, self.connection) self.seeks_list = SeekTabSection(self.widgets, self.connection, self) self.seek_challenge = SeekChallengeSection(self) self.seeks_graph_tab = SeekGraphSection(self.widgets, self.connection, self) self.players_tab = PlayerTabSection(self.widgets, self.connection, self) self.games_tab = GameTabSection(self.widgets, self.connection, self) self.adjourned_games_tab = AdjournedTabSection(self.widgets, self.connection, self) self.sections = ( self.userinfo, self.news, self.seeks_list, self.seek_challenge, self.seeks_graph_tab, self.players_tab, self.games_tab, self.adjourned_games_tab) self.chat = ChatWindow(self.widgets, self.connection) self.console = ConsoleWindow(self.widgets, self.connection) self.connection.com.onConsoleMessage("", self.connection.ini_messages) self.connection.lounge_loaded.set() log.debug("ICLounge.__init__: finished") def show (self): self.widgets["fics_lounge"].show() def present (self): self.widgets["fics_lounge"].present() def on_connection_error (self, connection, error): log.warning("ICLounge.on_connection_error: %s" % repr(error)) self.close() @idle_add def close (self): try: self.widgets["fics_lounge"].hide() for section in self.sections: section._del() self.sections = None self.widgets = None except TypeError: pass except AttributeError: pass @idle_add def onPlayGameCreated (self, bm, ficsgame): log.debug("ICLounge.onPlayGameCreated: %s" % ficsgame) for message in self.messages: message.dismiss() del self.messages[:] if ficsgame.minutes == 0: timemodel = TimeModel() else: timemodel = TimeModel (ficsgame.minutes*60, ficsgame.inc) gamemodel = ICGameModel (self.connection, ficsgame, timemodel) gamemodel.connect("game_started", lambda gamemodel: self.connection.bm.onGameModelStarted(ficsgame.gameno)) wplayer, bplayer = ficsgame.wplayer, ficsgame.bplayer # We start if wplayer.name.lower() == self.connection.getUsername().lower(): player0tup = (LOCAL, Human, (WHITE, wplayer.long_name(), wplayer.name, wplayer.getRatingForCurrentGame()), wplayer.long_name()) player1tup = (REMOTE, ICPlayer, (gamemodel, bplayer.name, ficsgame.gameno, BLACK, bplayer.long_name(), bplayer.getRatingForCurrentGame()), bplayer.long_name()) # She starts else: player1tup = (LOCAL, Human, (BLACK, bplayer.long_name(), bplayer.name, bplayer.getRatingForCurrentGame()), bplayer.long_name()) # If the remote player is WHITE, we need to init her right now, so # we can catch fast made moves. Sorry lazy loading. player0 = ICPlayer(gamemodel, wplayer.name, ficsgame.gameno, WHITE, wplayer.long_name(), wplayer.getRatingForCurrentGame()) player0tup = (REMOTE, lambda:player0, (), wplayer.long_name()) if not ficsgame.board.fen: ionest.generalStart(gamemodel, player0tup, player1tup) else: ionest.generalStart(gamemodel, player0tup, player1tup, (StringIO(ficsgame.board.fen), fen, 0, -1)) @idle_add def onObserveGameCreated (self, bm, ficsgame): log.debug("ICLounge.onObserveGameCreated: %s" % ficsgame) if ficsgame.minutes == 0: timemodel = TimeModel() else: timemodel = TimeModel (ficsgame.minutes*60, ficsgame.inc) gamemodel = ICGameModel (self.connection, ficsgame, timemodel) gamemodel.connect("game_started", lambda gamemodel: self.connection.bm.onGameModelStarted(ficsgame.gameno)) # The players need to start listening for moves IN this method if they # want to be noticed of all moves the FICS server sends us from now on wplayer, bplayer = ficsgame.wplayer, ficsgame.bplayer player0 = ICPlayer(gamemodel, wplayer.name, ficsgame.gameno, WHITE, wplayer.long_name(), wplayer.getRatingForCurrentGame()) player1 = ICPlayer(gamemodel, bplayer.name, ficsgame.gameno, BLACK, bplayer.long_name(), bplayer.getRatingForCurrentGame()) player0tup = (REMOTE, lambda:player0, (), wplayer.long_name()) player1tup = (REMOTE, lambda:player1, (), bplayer.long_name()) ionest.generalStart(gamemodel, player0tup, player1tup, (StringIO(ficsgame.board.pgn), pgn, 0, -1)) if ficsgame.relation == IC_POS_OBSERVING_EXAMINATION: if 1:#int(self.connection.lvm.variablesBackup["kibitz"]) == 0: self.connection.cm.whisper(_("You have to set kibitz on to see bot messages here.")) self.connection.fm.finger(bplayer.name) self.connection.fm.finger(wplayer.name) elif ficsgame.relation == IC_POS_EXAMINATING: gamemodel.examined = True allob = 'allob ' + str(ficsgame.gameno) gamemodel.connection.client.run_command(allob) @idle_add def onFinger (self, fm, finger): titles = finger.getTitles() if titles is not None: name = finger.getName() player = self.connection.players.get(FICSPlayer(name)) for title in titles: player.titles.add(TITLES[title]) @idle_add def tooManySeeks (self, bm): label = Gtk.Label(label=_("You may only have 3 outstanding seeks at the same time. If you want to add a new seek you must clear your currently active seeks. Clear your seeks?")) label.set_width_chars(80) label.props.xalign = 0 label.set_line_wrap(True) def response_cb (infobar, response, message): if response == Gtk.ResponseType.YES: self.connection.client.run_command("unseek") message.dismiss() return False message = InfoBarMessage(Gtk.MessageType.QUESTION, label, response_cb) message.add_button(InfoBarMessageButton(Gtk.STOCK_YES, Gtk.ResponseType.YES)) message.add_button(InfoBarMessageButton(Gtk.STOCK_NO, Gtk.ResponseType.NO)) self.messages.append(message) self.infobar.push_message(message) @idle_add def nonoWhileExamine (self, bm): label = Gtk.Label(_("You can't touch this! You are examining a game.")) def response_cb (infobar, response, message): message.dismiss() return False message = InfoBarMessage(Gtk.MessageType.INFO, label, response_cb) message.add_button(InfoBarMessageButton(Gtk.STOCK_CLOSE, Gtk.ResponseType.CANCEL)) self.messages.append(message) self.infobar.push_message(message) @idle_add def matchDeclined (self, bm, player): text = _(" has declined your offer for a match") content = get_infobarmessage_content(player, text) def response_cb (infobar, response, message): message.dismiss() return False message = InfoBarMessage(Gtk.MessageType.INFO, content, response_cb) message.add_button(InfoBarMessageButton(Gtk.STOCK_CLOSE, Gtk.ResponseType.CANCEL)) self.messages.append(message) self.infobar.push_message(message) @idle_add def player_on_censor(self, bm, player): text = _(" is censoring you") content = get_infobarmessage_content(player, text) def response_cb (infobar, response, message): message.dismiss() return False message = InfoBarMessage(Gtk.MessageType.INFO, content, response_cb) message.add_button(InfoBarMessageButton(Gtk.STOCK_CLOSE, Gtk.ResponseType.CANCEL)) self.messages.append(message) self.infobar.push_message(message) @idle_add def player_on_noplay(self, bm, player): text = _(" noplay listing you") content = get_infobarmessage_content(player, text) def response_cb (infobar, response, message): message.dismiss() return False message = InfoBarMessage(Gtk.MessageType.INFO, content, response_cb) message.add_button(InfoBarMessageButton(Gtk.STOCK_CLOSE, Gtk.ResponseType.CANCEL)) self.messages.append(message) self.infobar.push_message(message) @idle_add def req_not_fit_formula(self, bm, player, formula): content = get_infobarmessage_content2( player, _(" uses a formula not fitting your match request:"), formula) def response_cb (infobar, response, message): message.dismiss() return False message = InfoBarMessage(Gtk.MessageType.INFO, content, response_cb) message.add_button(InfoBarMessageButton(Gtk.STOCK_CLOSE, Gtk.ResponseType.CANCEL)) self.messages.append(message) self.infobar.push_message(message) @idle_add def on_seek_updated (self, glm, message_text): if "manual accept" in message_text: message_text.replace("to manual accept", _("to manual accept")) elif "automatic accept" in message_text: message_text.replace("to automatic accept", _("to automatic accept")) if "rating range now" in message_text: message_text.replace("rating range now", _("rating range now")) label = Gtk.Label(label=_("Seek updated") + ": " + message_text) def response_cb (infobar, response, message): message.dismiss() return False message = InfoBarMessage(Gtk.MessageType.INFO, label, response_cb) message.add_button(InfoBarMessageButton(Gtk.STOCK_CLOSE, Gtk.ResponseType.CANCEL)) self.messages.append(message) self.infobar.push_message(message) @idle_add def our_seeks_removed (self, glm): label = Gtk.Label(label=_("Your seeks have been removed")) def response_cb (infobar, response, message): message.dismiss() return False message = InfoBarMessage(Gtk.MessageType.INFO, label, response_cb) message.add_button(InfoBarMessageButton(Gtk.STOCK_CLOSE, Gtk.ResponseType.CANCEL)) self.messages.append(message) self.infobar.push_message(message) def _connect_to_player_changes (self, player): for rt in (TYPE_BLITZ, TYPE_LIGHTNING): player.ratings[rt].connect("notify::elo", self._replace_notification_message, player) player.connect("notify::titles", self._replace_notification_message, player) @idle_add def onArrivalNotification (self, cm, player): log.debug("%s" % player, extra={"task": (self.connection.username, "onArrivalNotification")}) self._add_notification_message(player, _(" has arrived"), chat=True) if player not in self.players: self.players.append(player) self._connect_to_player_changes(player) @idle_add def onDepartedNotification (self, cm, player): self._add_notification_message(player, _(" has departed")) @idle_add def user_from_notify_list_is_present (self, player): self._add_notification_message(player, _(" is present"), chat=True) if player not in self.players: self.players.append(player) self._connect_to_player_changes(player) def _add_notification_message (self, player, text, chat=False): content = get_infobarmessage_content(player, text) def response_cb (infobar, response, message): if response == 1: if player is None: return self.chat.openChatWithPlayer(player.name) message.dismiss() # self.messages.remove(message) return False message = PlayerNotificationMessage(Gtk.MessageType.INFO, content, response_cb, player, text) if chat: message.add_button(InfoBarMessageButton(_("Chat"), 1)) message.add_button(InfoBarMessageButton(Gtk.STOCK_CLOSE, Gtk.ResponseType.CANCEL)) self.messages.append(message) self.infobar.push_message(message) @idle_add def _replace_notification_message (self, obj, prop, player): log.debug("%s %s" % (repr(obj), player), extra={"task": (self.connection.username, "_replace_notification_message")}) for message in self.messages: if isinstance(message, PlayerNotificationMessage) and \ message.player == player: message.update_content( get_infobarmessage_content(player, message.text)) return False ################################################################################ # Initialize Sections # ################################################################################ class Section (object): def _del (self): pass ############################################################################ # Initialize User Information Section # ############################################################################ class UserInfoSection(Section): def __init__ (self, widgets, connection, host): self.widgets = widgets self.connection = connection self.host = host self.pinger = None self.ping_label = None self.dock = self.widgets["fingerTableDock"] self.connection.fm.connect("fingeringFinished", self.onFinger) self.connection.fm.finger(self.connection.getUsername()) self.connection.bm.connect("curGameEnded", lambda *args: self.connection.fm.finger(self.connection.getUsername())) self.widgets["usernameLabel"].set_markup( "%s" % self.connection.getUsername()) def _del (self): if self.pinger != None: self.pinger.stop() @idle_add def onFinger (self, fm, finger): if finger.getName().lower() != self.connection.getUsername().lower(): # print (finger.getName(), self.connection.getUsername()) return rows = 1 if finger.getRating(): rows += len(finger.getRating())+1 if finger.getEmail(): rows += 1 if finger.getCreated(): rows += 1 table = Gtk.Table(6, rows) table.props.column_spacing = 12 table.props.row_spacing = 4 def label(value, xalign=0, is_error=False): if isinstance(value, float): value = str(int(value)) if is_error: label = Gtk.Label() label.set_markup('' + value + "") else: label = Gtk.Label(label=value) label.props.xalign = xalign return label row = 0 if finger.getRating(): for i, item in enumerate((_("Rating"), _("Win"), _("Draw"), _("Loss"))): table.attach(label(item, xalign=1), i+1,i+2,0,1) row += 1 for rating_type, rating in finger.getRating().items(): ratinglabel = label( \ GAME_TYPES_BY_RATING_TYPE[rating_type].display_text + ":") table.attach(ratinglabel, 0, 1, row, row+1) if rating_type is TYPE_WILD: ratinglabel.set_tooltip_text( _("On FICS, your \"Wild\" rating encompasses all of the following variants at all time controls:\n") + ", ".join([gt.display_text for gt in WildGameType.instances()])) table.attach(label(rating.elo, xalign=1), 1, 2, row, row+1) table.attach(label(rating.wins, xalign=1), 2, 3, row, row+1) table.attach(label(rating.draws, xalign=1), 3, 4, row, row+1) table.attach(label(rating.losses, xalign=1), 4, 5, row, row+1) row += 1 table.attach(Gtk.HSeparator(), 0, 6, row, row+1, ypadding=2) row += 1 if finger.getSanctions() != "": table.attach(label(_("Sanctions")+":", is_error=True), 0, 1, row, row+1) table.attach(label(finger.getSanctions()), 1, 6, row, row+1) row += 1 if finger.getEmail(): table.attach(label(_("Email")+":"), 0, 1, row, row+1) table.attach(label(finger.getEmail()), 1, 6, row, row+1) row += 1 if finger.getCreated(): table.attach(label(_("Spent")+":"), 0, 1, row, row+1) s = strftime("%Y %B %d ", localtime(time())) s += _("online in total") table.attach(label(s), 1, 6, row, row+1) row += 1 # TODO: ping causes random crashes on Windows if sys.platform != "win32": table.attach(label(_("Ping")+":"), 0, 1, row, row+1) if self.ping_label: if self.dock.get_children(): self.dock.get_children()[0].remove(self.ping_label) else: self.ping_label = Gtk.Label(label=_("Connecting")+"...") self.ping_label.props.xalign = 0 @idle_add def callback (pinger, pingtime): log.debug("'%s' '%s'" % (str(self.pinger), str(pingtime)), extra={"task": (self.connection.username, "UIS.oF.callback")}) if isinstance(pingtime, str): self.ping_label.set_text(pingtime) elif pingtime == -1: self.ping_label.set_text(_("Unknown")) else: self.ping_label.set_text("%.0f ms" % pingtime) if not self.pinger: self.pinger = Pinger(self.host) self.pinger.start() self.pinger.connect("received", callback) self.pinger.connect("error", callback) table.attach(self.ping_label, 1, 6, row, row+1) row += 1 if not self.connection.isRegistred(): vbox = Gtk.VBox() table.attach(vbox, 0, 6, row, row+1) label0 = Gtk.Label() label0.props.xalign = 0 label0.props.wrap = True label0.props.width_request = 300 label0.set_markup(_("You are currently logged in as a guest.\n" + \ "A guest can't play rated games and therefore isn't " + \ "able to play as many of the types of matches offered as " + \ "a registered user. To register an account, go to " + \ "" + \ "http://www.freechess.org/Register/index.html.")) vbox.add(label0) if self.dock.get_children(): self.dock.remove(self.dock.get_children()[0]) self.dock.add(table) self.dock.show_all() ############################################################################ # Initialize News Section # ############################################################################ class NewsSection(Section): def __init__(self, widgets, connection): self.widgets = widgets connection.nm.connect("readNews", self.onNewsItem) @idle_add def onNewsItem (self, nm, news): weekday, month, day, title, details = news dtitle = "%s, %s %s: %s" % (weekday, month, day, title) label = Gtk.Label(label=dtitle) label.props.width_request = 300 label.props.xalign = 0 label.set_ellipsize(Pango.EllipsizeMode.END) expander = Gtk.Expander() expander.set_label_widget(label) expander.set_tooltip_text(title) textview = Gtk.TextView () textview.set_wrap_mode (Gtk.WrapMode.WORD) textview.set_editable (False) textview.set_cursor_visible (False) textview.props.pixels_above_lines = 4 textview.props.pixels_below_lines = 4 textview.props.right_margin = 2 textview.props.left_margin = 6 uistuff.initTexviewLinks(textview, details) alignment = Gtk.Alignment() alignment.set_padding(3, 6, 12, 0) alignment.props.xscale = 1 alignment.add(textview) expander.add(alignment) expander.show_all() self.widgets["newsVBox"].pack_end(expander, True, True, 0) ############################################################################ # Initialize Lists # ############################################################################ class ParrentListSection (Section): """ Parrent for sections mainly consisting of a large treeview """ def addColumns (self, treeview, *columns, **keyargs): if "hide" in keyargs: hide = keyargs["hide"] else: hide = [] if "pix" in keyargs: pix = keyargs["pix"] else: pix = [] for i, name in enumerate(columns): if i in hide: continue if i in pix: crp = Gtk.CellRendererPixbuf() crp.props.xalign = .5 column = Gtk.TreeViewColumn(name, crp, pixbuf=i) else: crt = Gtk.CellRendererText() column = Gtk.TreeViewColumn(name, crt, text=i) column.set_sort_column_id(i) column.set_resizable(True) column.set_reorderable(True) treeview.append_column(column) def lowLeftSearchPosFunc (self, tv, search_dialog, user_data): alloc = tv.get_allocation() window = tv.get_toplevel().get_window() x = alloc.x + window.get_position()[0] y = alloc.y + window.get_position()[1] + alloc.height search_dialog.move(x, y) search_dialog.show_all() def pixCompareFunction (self, treemodel, iter0, iter1, column): pix0 = treemodel.get_value(iter0, column) pix1 = treemodel.get_value(iter1, column) if isinstance(pix0, GdkPixbuf.Pixbuf) and isinstance(pix1, GdkPixbuf.Pixbuf): return cmp(pix0.get_pixels(), pix1.get_pixels()) return cmp(pix0, pix1) def timeCompareFunction (self, treemodel, iter0, iter1, column): (minute0, minute1) = (treemodel.get_value(iter0, 8), treemodel.get_value(iter1, 8)) return cmp(minute0, minute1) ######################################################################## # Initialize Seek List # ######################################################################## class SeekTabSection (ParrentListSection): def __init__ (self, widgets, connection, lounge): self.widgets = widgets self.connection = connection self.infobar = lounge.infobar self.messages = {} self.seeks = {} self.challenges = {} self.seekPix = get_pixbuf("glade/seek.png") self.chaPix = get_pixbuf("glade/challenge.png") self.manSeekPix = get_pixbuf("glade/manseek.png") self.widgets["seekExpander"].set_vexpand(False) self.tv = self.widgets["seektreeview"] self.store = Gtk.ListStore(FICSSoughtMatch, GdkPixbuf.Pixbuf, GdkPixbuf.Pixbuf, str, int, str, str, str, int, Gdk.RGBA, str) self.model = Gtk.TreeModelSort(model=self.store) self.tv.set_model(self.model) self.addColumns (self.tv, "FICSSoughtMatch", "", "", _("Name"), _("Rating"), _("Rated"), _("Type"), _("Clock"), "gametime", "textcolor", "tooltip", hide=[0,8,9,10], pix=[1,2] ) self.tv.set_search_column(3) self.tv.set_tooltip_column(10,) for i in range(0, 2): self.tv.get_column(i).set_sort_column_id(i) self.tv.get_model().set_sort_func(i, self.pixCompareFunction, i+1) for i in range(2, 8): self.tv.get_model().set_sort_func(i, self.compareFunction, i) try: self.tv.set_search_position_func(self.lowLeftSearchPosFunc, None) except AttributeError: # Unknow signal name is raised by gtk < 2.10 pass for n in range(2, 7): column = self.tv.get_column(n) for cellrenderer in column.get_cells(): column.add_attribute(cellrenderer, "foreground_rgba", 9) self.selection = self.tv.get_selection() self.lastSeekSelected = None self.selection.set_select_function(self.selectFunction, True) self.selection.connect("changed", self.onSelectionChanged) self.widgets["clearSeeksButton"].connect("clicked", self.onClearSeeksClicked) self.widgets["acceptButton"].connect("clicked", self.onAcceptClicked) self.widgets["declineButton"].connect("clicked", self.onDeclineClicked) self.tv.connect("row-activated", self.row_activated) self.tv.connect('button-press-event' , self.button_press_event) self.connection.seeks.connect("FICSSeekCreated", self.onAddSeek) self.connection.seeks.connect("FICSSeekRemoved", self.onRemoveSeek) self.connection.challenges.connect("FICSChallengeIssued", self.onChallengeAdd) self.connection.challenges.connect("FICSChallengeRemoved", self.onChallengeRemove) self.connection.glm.connect("our-seeks-removed", self.our_seeks_removed) self.connection.glm.connect("assessReceived", self.onAssessReceived) self.connection.bm.connect("playGameCreated", self.onPlayingGame) self.connection.bm.connect("curGameEnded", self.onCurGameEnded) def get_sort_order(modelsort): id, order = modelsort.get_sort_column_id() if id is None or id < 0: id = 0 else: id += 1 if order == Gtk.SortType.DESCENDING: id = -1 * id return id def set_sort_order(modelsort, value): if value != 0: order = Gtk.SortType.ASCENDING if value > 0 else Gtk.SortType.DESCENDING modelsort.set_sort_column_id(abs(value) - 1, order) uistuff.keep(self.model, "seektreeview_sort_order_col", get_sort_order, \ lambda modelsort, value: set_sort_order(modelsort, value)) self.menu = Gtk.Menu() self.accept_item = Gtk.MenuItem(_("Accept")) self.accept_item.connect("activate", self.onAcceptClicked) self.assess_item = Gtk.MenuItem(_("Assess")) self.assess_item.connect("activate", self.on_assess) #self.challenge_item = Gtk.MenuItem(_("Challenge")) #self.challenge_item.connect("activate", self.on_challenge) #self.finger_item = Gtk.MenuItem(_("Finger")) #self.finger_item.connect("activate", self.on_finger) self.archived_item = Gtk.MenuItem(_("Archived")) self.archived_item.connect("activate", self.on_archived) self.menu.append(self.accept_item) self.menu.append(self.assess_item) #self.menu.append(self.challenge_item) #self.menu.append(self.finger_item) self.menu.append(Gtk.SeparatorMenuItem()) self.menu.append(self.archived_item) self.menu.attach_to_widget(self.tv, None) self.assess_sent = False def button_press_event(self, treeview, event): if event.button == 3: # right click pathinfo = treeview.get_path_at_pos(int(event.x), int(event.y)) if pathinfo is not None: path, col, cellx, celly = pathinfo treeview.grab_focus() treeview.set_cursor(path, col, 0) self.menu.show_all() self.menu.popup(None, None, None, None, event.button, Gtk.get_current_event_time()) return True return False def on_challenge(self, widget): print("challenge") def on_assess(self, widget): model, iter = self.tv.get_selection().get_selected() if iter == None: return sought = model.get_value(iter, 0) player1 = self.connection.username player2 = sought.player.name type = sought.game_type.short_fics_name self.connection.glm.assess(player1, player2, type) self.assess_sent = True @idle_add def onAssessReceived(self, glm, assess): if self.assess_sent: self.assess_sent = False dialog = Gtk.MessageDialog(type=Gtk.MessageType.INFO, buttons=Gtk.ButtonsType.OK) dialog.set_markup(assess["type"]) text1 = "%-18s %18s\n" % (assess["names"][0],assess["names"][1]) text2 = "%-18s %18s\n" % (assess["oldRD"][0],assess["oldRD"][1]) text3 = "%-8s%13s%10s\n" % ("Win:", assess["win"][0],assess["win"][1]) text4 = "%-8s%12s%10s\n" % ("Draw:", assess["draw"][0],assess["draw"][1]) text5 = "%-8s%12s%10s\n" % ("Loss:", assess["loss"][0],assess["loss"][1]) text6 = "%-8s%10s%10s\n" % ("New RD:", assess["newRD"][0],assess["newRD"][1]) dialog.format_secondary_text(text1+text2+text3+text4+text5+text6) dialog.run() dialog.destroy() def on_finger(self, widget): print("finger") def on_archived(self, widget): model, iter = self.tv.get_selection().get_selected() if iter == None: return sought = model.get_value(iter, 0) owner = sought.player.name self.connection.adm.queryAdjournments(owner) self.connection.adm.queryHistory(owner) self.connection.adm.queryJournal(owner) notebook = self.widgets["notebook"] archived = self.widgets["archiveListContent"] notebook.set_current_page(notebook.page_num(archived)) def textcolor_normal(self): sc = self.tv.get_style_context() return sc.get_color(Gtk.StateFlags.NORMAL) def textcolor_selected(self): sc = self.tv.get_style_context() return sc.get_color(Gtk.StateFlags.INSENSITIVE) def selectFunction (self, selection, model, path, is_selected, data): if model[path][9] == self.textcolor_selected(): return False else: return True def __isAChallengeOrOurSeek (self, row): sought = row[0] textcolor = row[9] r0, g0, b0 = textcolor.red, textcolor.green, textcolor.blue selected = self.textcolor_selected() r1, g1, b1 = selected.red, selected.green, selected.blue if (isinstance(sought, FICSChallenge)) or (r0==r1 and g0==g1 and b0==b1): return True else: return False def compareFunction (self, model, iter0, iter1, column): row0 = list(model[model.get_path(iter0)]) row1 = list(model[model.get_path(iter1)]) is_ascending = True if self.tv.get_column(column-1).get_sort_order() is \ Gtk.SortType.ASCENDING else False if self.__isAChallengeOrOurSeek(row0) and not self.__isAChallengeOrOurSeek(row1): if is_ascending: return -1 else: return 1 elif self.__isAChallengeOrOurSeek(row1) and not self.__isAChallengeOrOurSeek(row0): if is_ascending: return 1 else: return -1 elif column is 7: return self.timeCompareFunction(model, iter0, iter1, column) else: value0 = row0[column] value0 = value0.lower() if isinstance(value0, str) else value0 value1 = row1[column] value1 = value1.lower() if isinstance(value1, str) else value1 return cmp(value0, value1) def __updateActiveSeeksLabel (self): count = len(self.seeks) + len(self.challenges) self.widgets["activeSeeksLabel"].set_text(_("Active seeks: %d") % count) @idle_add def onAddSeek (self, seeks, seek): log.debug("%s" % seek, extra={"task": (self.connection.username, "onAddSeek")}) pix = self.seekPix if seek.automatic else self.manSeekPix textcolor = self.textcolor_selected() if seek.player.name == self.connection.getUsername() \ else self.textcolor_normal() seek_ = [seek, seek.player.getIcon(gametype=seek.game_type), pix, seek.player.name + seek.player.display_titles(), seek.player_rating, seek.display_rated, seek.game_type.display_text, seek.display_timecontrol, seek.sortable_time, textcolor, get_seek_tooltip_text(seek)] if textcolor == self.textcolor_selected(): ti = self.store.prepend(seek_) self.tv.scroll_to_cell(self.store.get_path(ti)) self.widgets["clearSeeksButton"].set_sensitive(True) else: ti = self.store.append(seek_) self.seeks[hash(seek)] = ti self.__updateActiveSeeksLabel() @idle_add def onRemoveSeek (self, seeks, seek): log.debug("%s" % seek, extra={"task": (self.connection.username, "onRemoveSeek")}) try: treeiter = self.seeks[hash(seek)] except KeyError: # We ignore removes we haven't added, as it seems fics sends a # lot of removes for games it has never told us about return if self.store.iter_is_valid(treeiter): self.store.remove(treeiter) del self.seeks[hash(seek)] self.__updateActiveSeeksLabel() @idle_add def onChallengeAdd (self, challenges, challenge): log.debug("%s" % challenge, extra={"task": (self.connection.username, "onChallengeAdd")}) SoundTab.playAction("aPlayerChecks") # TODO: differentiate between challenges and manual-seek-accepts # (wait until seeks are comparable FICSSeek objects to do this) # Related: http://code.google.com/p/pychess/issues/detail?id=206 if challenge.adjourned: text = _(" would like to resume your adjourned %(time)s " + \ "%(gametype)s game.") % \ {"time": challenge.display_timecontrol, "gametype": challenge.game_type.display_text} else: text = _(" challenges you to a %(time)s %(rated)s %(gametype)s game") \ % {"time": challenge.display_timecontrol, "rated": challenge.display_rated.lower(), "gametype": challenge.game_type.display_text} if challenge.color: text += _(" where %(player)s plays %(color)s.") \ % {"player": challenge.player.name, "color": _("white") if challenge.color == "white" else _("black")} else: text += "." content = get_infobarmessage_content(challenge.player, text, gametype=challenge.game_type) @idle_add def callback (infobar, response, message): if response == Gtk.ResponseType.ACCEPT: self.connection.om.acceptIndex(challenge.index) elif response == Gtk.ResponseType.NO: self.connection.om.declineIndex(challenge.index) message.dismiss() return False message = InfoBarMessage(Gtk.MessageType.QUESTION, content, callback) message.add_button(InfoBarMessageButton(_("Accept"), Gtk.ResponseType.ACCEPT)) message.add_button(InfoBarMessageButton(_("Decline"), Gtk.ResponseType.NO)) message.add_button(InfoBarMessageButton(Gtk.STOCK_CLOSE, Gtk.ResponseType.CANCEL)) self.messages[hash(challenge)] = message self.infobar.push_message(message) ti = self.store.prepend ([challenge, challenge.player.getIcon(gametype=challenge.game_type), self.chaPix, challenge.player.name + challenge.player.display_titles(), challenge.player_rating, challenge.display_rated, challenge.game_type.display_text, challenge.display_timecontrol, challenge.sortable_time, self.textcolor_normal(), get_challenge_tooltip_text(challenge)]) self.challenges[hash(challenge)] = ti self.__updateActiveSeeksLabel() self.widgets["seektreeview"].scroll_to_cell(self.store.get_path(ti)) @idle_add def onChallengeRemove (self, challenges, challenge): log.debug("%s" % challenge, extra={"task": (self.connection.username, "onChallengeRemove")}) try: ti = self.challenges[hash(challenge)] except KeyError: pass else: if self.store.iter_is_valid(ti): self.store.remove(ti) del self.challenges[hash(challenge)] try: message = self.messages[hash(challenge)] except KeyError: pass else: message.dismiss() del self.messages[hash(challenge)] self.__updateActiveSeeksLabel() @idle_add def our_seeks_removed (self, glm): self.widgets["clearSeeksButton"].set_sensitive(False) def onAcceptClicked (self, button): model, iter = self.tv.get_selection().get_selected() if iter == None: return sought = model.get_value(iter, 0) if isinstance(sought, FICSChallenge): self.connection.om.acceptIndex(sought.index) else: self.connection.om.playIndex(sought.index) try: message = self.messages[hash(sought)] except KeyError: pass else: message.dismiss() del self.messages[hash(sought)] def onDeclineClicked (self, button): model, iter = self.tv.get_selection().get_selected() if iter == None: return sought = model.get_value(iter, 0) self.connection.om.declineIndex(sought.index) try: message = self.messages[hash(sought)] except KeyError: pass else: message.dismiss() del self.messages[hash(sought)] def onClearSeeksClicked (self, button): self.connection.client.run_command("unseek") self.widgets["clearSeeksButton"].set_sensitive(False) def row_activated (self, treeview, path, view_column): model, iter = self.tv.get_selection().get_selected() if iter == None: return sought = model.get_value(iter, 0) if self.lastSeekSelected is None or \ sought.index != self.lastSeekSelected.index: return if path != model.get_path(iter): return self.onAcceptClicked(None) def onSelectionChanged (self, selection): model, iter = selection.get_selected() sought = None a_seek_is_selected = False selection_is_challenge = False if iter != None: a_seek_is_selected = True sought = model.get_value(iter, 0) if isinstance(sought, FICSChallenge): selection_is_challenge = True self.lastSeekSelected = sought self.widgets["acceptButton"].set_sensitive(a_seek_is_selected) self.widgets["declineButton"].set_sensitive(selection_is_challenge) def _clear_messages (self): for message in self.messages.values(): message.dismiss() self.messages.clear() @idle_add def onPlayingGame (self, bm, game): self._clear_messages() self.widgets["seekListContent"].set_sensitive(False) self.widgets["clearSeeksButton"].set_sensitive(False) self.__updateActiveSeeksLabel() @idle_add def onCurGameEnded (self, bm, game): self.widgets["seekListContent"].set_sensitive(True) ######################################################################## # Initialize Seek Graph # ######################################################################## YMARKS = (800, 1600, 2400) YLOCATION = lambda y: min(y/3000.,3000) XMARKS = (5, 15) XLOCATION = lambda x: e**(-6.579/(x+1)) # This is used to convert increment time to minutes. With a GAME_LENGTH on # 40, a game on two minutes and twelve secconds will be placed at the same # X location as a game on 2+12*40/60 = 10 minutes GAME_LENGTH = 40 class SeekGraphSection (ParrentListSection): def __init__ (self, widgets, connection, lounge): self.widgets = widgets self.connection = connection self.graph = SpotGraph() for rating in YMARKS: self.graph.addYMark(YLOCATION(rating), str(rating)) for mins in XMARKS: self.graph.addXMark(XLOCATION(mins), str(mins) + _(" min")) self.widgets["graphDock"].add(self.graph) self.graph.show() self.graph.connect("spotClicked", self.onSpotClicked) self.connection.seeks.connect("FICSSeekCreated", self.onAddSought) self.connection.seeks.connect("FICSSeekRemoved", self.onRemoveSought) self.connection.challenges.connect("FICSChallengeIssued", self.onAddSought) self.connection.challenges.connect("FICSChallengeRemoved", self.onRemoveSought) self.connection.bm.connect("playGameCreated", self.onPlayingGame) self.connection.bm.connect("curGameEnded", self.onCurGameEnded) def onSpotClicked (self, graph, name): self.connection.bm.play(name) @idle_add def onAddSought (self, manager, sought): log.debug("%s" % sought, extra={"task": (self.connection.username, "onAddSought")}) x = XLOCATION(float(sought.minutes) + float(sought.inc) * GAME_LENGTH/60.) y = YLOCATION(float(sought.player_rating)) if ((sought.rated) and ('(C)' in sought.player.long_name())): type_ = 2 elif (not(sought.rated) and ('(C)' in sought.player.long_name())): type_ = 3 elif sought.rated: type_ = 0 else: type_ = 1 if isinstance(sought, FICSChallenge): tooltip_text = get_challenge_tooltip_text(sought) else: tooltip_text = get_seek_tooltip_text(sought) self.graph.addSpot(sought.index, tooltip_text, x, y, type_) @idle_add def onRemoveSought (self, manager, sought): log.debug("%s" % sought, extra={"task": (self.connection.username, "onRemoveSought")}) self.graph.removeSpot(sought.index) @idle_add def onPlayingGame (self, bm, game): self.widgets["seekGraphContent"].set_sensitive(False) @idle_add def onCurGameEnded (self, bm, game): self.widgets["seekGraphContent"].set_sensitive(True) ######################################################################## # Initialize Players List # ######################################################################## class PlayerTabSection (ParrentListSection): widgets = [] def __init__ (self, widgets, connection, lounge): PlayerTabSection.widgets = widgets self.connection = connection self.lounge = lounge self.players = {} self.columns = {TYPE_BLITZ: 3, TYPE_STANDARD: 4, TYPE_LIGHTNING: 5} self.tv = widgets["playertreeview"] self.store = Gtk.ListStore(FICSPlayer, GdkPixbuf.Pixbuf, str, int, int, int, str, str) self.model = Gtk.TreeModelSort(model=self.store) self.tv.set_model(self.model) self.addColumns(self.tv, "FICSPlayer", "", _("Name"), _("Blitz"), _("Standard"), _("Lightning"), _("Status"), "tooltip", hide=[0,7], pix=[1]) self.tv.set_tooltip_column(7,) self.tv.get_column(0).set_sort_column_id(0) self.tv.get_model().set_sort_func(0, self.pixCompareFunction, 1) try: self.tv.set_search_position_func(self.lowLeftSearchPosFunc, None) except AttributeError: # Unknow signal name is raised by gtk < 2.10 pass connection.players.connect("FICSPlayerEntered", self.onPlayerAdded) connection.players.connect("FICSPlayerExited", self.onPlayerRemoved) widgets["private_chat_button"].connect("clicked", self.onPrivateChatClicked) widgets["private_chat_button"].set_sensitive(False) widgets["observe_button"].connect("clicked", self.onObserveClicked) widgets["observe_button"].set_sensitive(False) self.tv.get_selection().connect_after("changed", self.onSelectionChanged) self.onSelectionChanged(None) if self.connection.FatICS or self.connection.USCN: self.widgets["playersSpinner"].hide() else: self.widgets["playersSpinner"].start() def onPlayerAdded (self, players, new_players): # Let the hard work to be done in the helper connection thread np = {} for player in new_players: np[player] = (player, player.getIcon(), player.name + player.display_titles(), player.blitz, player.standard, player.lightning, player.display_status, get_player_tooltip_text(player)) def do_onPlayerAdded(players, new_players, np): for player in new_players: #log.debug("%s" % player, # extra={"task": (self.connection.username, "PTS.onPlayerAdded")}) if player in self.players: #log.warning("%s already in self" % player, # extra={"task": (self.connection.username, "PTS.onPlayerAdded")}) continue # player can leave before we finish processing "who IbslwBzSLx" if player not in np: continue self.players[player] = {} self.players[player]["ti"] = self.store.append(np[player]) self.players[player]["status"] = player.connect( "notify::status", self.status_changed) self.players[player]["game"] = player.connect( "notify::game", self.status_changed) self.players[player]["titles"] = player.connect( "notify::titles", self.titles_changed) if player.game: self.players[player]["private"] = player.game.connect( "notify::private", self.private_changed, player) for rt in RATING_TYPES: self.players[player][rt] = player.ratings[rt].connect( "notify::elo", self.elo_changed, player) count = len(self.players) self.widgets["playersOnlineLabel"].set_text(_("Players: %d") % count) if len(new_players) > 1: self.widgets["playersSpinner"].stop() self.widgets["playersSpinner"].hide() return False GLib.idle_add(do_onPlayerAdded, players, new_players, np, priority=GLib.PRIORITY_LOW) def onPlayerRemoved (self, players, player): def do_onPlayerRemoved(players, player): log.debug("%s" % player, extra={"task": (self.connection.username, "PTS.onPlayerRemoved")}) try: self.store.remove(self.players[player]["ti"]) for key in ("status", "game", "titles"): if player.handler_is_connected(self.players[player][key]): player.disconnect(self.players[player][key]) if player.game and "private" in self.players[player] and \ player.game.handler_is_connected( self.players[player]["private"]): player.game.disconnect(self.players[player]["private"]) for rt in RATING_TYPES: if player.ratings[rt].handler_is_connected( self.players[player][rt]): player.ratings[rt].disconnect(self.players[player][rt]) del self.players[player] except KeyError: pass count = len(self.players) self.widgets["playersOnlineLabel"].set_text(_("Players: %d") % count) return False GLib.idle_add(do_onPlayerRemoved, players, player, priority=GLib.PRIORITY_LOW) @idle_add def status_changed (self, player, prop): log.debug("%s" % player, extra={"task": (self.connection.username, "PTS.status_changed")}) if player not in self.players: return try: self.store.set(self.players[player]["ti"], 6, player.display_status) self.store.set(self.players[player]["ti"], 7, get_player_tooltip_text(player)) except KeyError: pass if player.status == IC_STATUS_PLAYING and player.game and \ "private" not in self.players[player]: self.players[player]["private"] = player.game.connect( "notify::private", self.private_changed, player) elif player.status != IC_STATUS_PLAYING and \ "private" in self.players[player]: game = player.game if game and game.handler_is_connected(self.players[player]["private"]): game.disconnect(self.players[player]["private"]) del self.players[player]["private"] if player == self.getSelectedPlayer(): self.onSelectionChanged(None) return False @idle_add def titles_changed (self, player, prop): log.debug("%s" % player, extra={"task": (self.connection.username, "PTS.titles_changed")}) try: self.store.set(self.players[player]["ti"], 1, player.getIcon()) self.store.set(self.players[player]["ti"], 2, player.name + player.display_titles()) self.store.set(self.players[player]["ti"], 7, get_player_tooltip_text(player)) except KeyError: pass return False def private_changed (self, game, prop, player): log.debug("%s" % player, extra={"task": (self.connection.username, "PTS.private_changed")}) self.status_changed(player, prop) def update_gui(): self.onSelectionChanged(self.tv.get_selection()) idle_add(update_gui) return False @idle_add def elo_changed (self, rating, prop, player): log.debug("%s %s" % (rating.elo, player), extra={"task": (self.connection.username, "PTS.elo_changed")}) try: self.store.set(self.players[player]["ti"], 1, player.getIcon()) self.store.set(self.players[player]["ti"], 7, get_player_tooltip_text(player)) self.store.set(self.players[player]["ti"], self.columns[rating.type], rating.elo) except KeyError: pass return False def getSelectedPlayer (self): model, iter = self.widgets["playertreeview"].get_selection().get_selected() if iter: return model.get_value(iter, 0) def onPrivateChatClicked (self, button): player = self.getSelectedPlayer() if player is None: return self.lounge.chat.openChatWithPlayer(player.name) #TODO: isadmin og type def onObserveClicked (self, button): player = self.getSelectedPlayer() if player is not None: if player.game is not None: self.connection.bm.observe(player.game) else: self.connection.bm.observe(None, player=player) def onSelectionChanged (self, selection): player = self.getSelectedPlayer() user_name = self.connection.getUsername() self.widgets["private_chat_button"].set_sensitive(player is not None) self.widgets["observe_button"].set_sensitive( player is not None and \ player.isObservable() and \ (player.game is None or \ user_name not in (player.game.wplayer.name, player.game.bplayer.name))) self.widgets["challengeButton"].set_sensitive( player is not None and \ player.isAvailableForGame() and \ player.name != user_name) ######################################################################## # Initialize Games List # ######################################################################## class GameTabSection (ParrentListSection): def __init__ (self, widgets, connection, lounge): self.widgets = widgets self.connection = connection self.games = {} self.recpix = load_icon(16, "media-record") self.clearpix = get_pixbuf("glade/board.png") self.tv = self.widgets["gametreeview"] self.store = Gtk.ListStore(FICSGame, GdkPixbuf.Pixbuf, str, int, str, int, str, str) self.model = Gtk.TreeModelSort(model=self.store) self.tv.set_model(self.model) self.tv.get_selection().set_mode(Gtk.SelectionMode.MULTIPLE) self.addColumns(self.tv, "FICSGame", "", _("White"), _("Rating"), _("Black"), _("Rating"), _("Type"), _("Rated"), hide=[0], pix=[1]) self.tv.get_column(0).set_sort_column_id(0) self.model.set_sort_func(0, self.pixCompareFunction, 1) for i in range(1, 7): self.model.set_sort_func(i, self.compareFunction, i) self.prev_sort_column_id = [] self.model.connect("sort-column-changed", self.on_sort_column_change) self.tv.set_has_tooltip(True) self.tv.connect("query-tooltip", self.on_query_tooltip) self.selection = self.tv.get_selection() self.selection.connect("changed", self.onSelectionChanged) self.onSelectionChanged(self.selection) try: self.tv.set_search_position_func(self.lowLeftSearchPosFunc, None) except AttributeError: # Unknow signal name is raised by gtk < 2.10 pass def searchCallback (model, column, key, iter, user_data): if model.get_value(iter, 2).lower().startswith(key) or \ model.get_value(iter, 4).lower().startswith(key): return False return True self.tv.set_search_equal_func (searchCallback, None) self.connection.games.connect("FICSGameCreated", self.onGameAdd) self.connection.games.connect("FICSGameEnded", self.onGameRemove) self.widgets["observeButton"].connect ("clicked", self.onObserveClicked) self.tv.connect("row-activated", self.onObserveClicked) self.connection.bm.connect("obsGameCreated", self.onGameObserved) self.connection.bm.connect("obsGameUnobserved", self.onGameUnobserved) if self.connection.FatICS or self.connection.USCN: self.widgets["gamesSpinner"].hide() else: self.widgets["gamesSpinner"].start() # Multi-column sort based on TreeModelSortUtil from # https://github.com/metomi/rose/blob/master/lib/python/rose/gtk/util.py def on_sort_column_change(self, model): """ Store previous sorting information for multi-column sorts. """ id, order = model.get_sort_column_id() if id is None and order is None: return False if (self.prev_sort_column_id and self.prev_sort_column_id[0][0] == id): self.prev_sort_column_id.pop(0) self.prev_sort_column_id.insert(0, (id, order)) if len(self.prev_sort_column_id) > 2: self.prev_sort_column_id.pop() def compareFunction (self, model, iter0, iter1, column): """ Multi-column sort. """ val0 = model.get_value(iter0, column) val1 = model.get_value(iter1, column) rval = cmp(val0, val1) # If rval is 1 or -1, no need for a multi-column sort. if rval == 0: this_order = model.get_sort_column_id()[1] cmp_factor = 1 if this_order == Gtk.SortType.DESCENDING: # We need to de-invert the sort order for multi sorting. cmp_factor = -1 i = 0 while rval == 0 and i < len(self.prev_sort_column_id): next_id, next_order = self.prev_sort_column_id[i] if next_id == column: i += 1 continue next_cmp_factor = cmp_factor * 1 if next_order == Gtk.SortType.DESCENDING: # Set the correct order for multi sorting. next_cmp_factor = cmp_factor * -1 val0 = model.get_value(iter0, next_id) val1 = model.get_value(iter1, next_id) rval = next_cmp_factor * cmp(val0, val1) i += 1 return rval def on_query_tooltip (self, widget, x, y, keyboard_tip, tooltip): if not widget.get_tooltip_context(x, y, keyboard_tip): return False bool, wx, wy, model, path, iter = widget.get_tooltip_context(x, y, keyboard_tip) bin_x, bin_y = widget.convert_widget_to_bin_window_coords(x, y) result = widget.get_path_at_pos(bin_x, bin_y) if result is not None: path, column, cell_x, cell_y = result for player, column_number in ((self.model[path][0].wplayer, 1), (self.model[path][0].bplayer, 3)): if column is self.tv.get_column(column_number): tooltip.set_text(get_player_tooltip_text(player, show_status=False)) widget.set_tooltip_cell(tooltip, path, None, None) return True return False def onSelectionChanged (self, selection): model, paths = selection.get_selected_rows() a_selected_game_is_observable = False for path in paths: rowiter = model.get_iter(path) game = model.get_value(rowiter, 0) if not game.private and game.supported: a_selected_game_is_observable = True break self.widgets["observeButton"].set_sensitive(a_selected_game_is_observable) def _update_gamesrunning_label (self): count = len(self.games) self.widgets["gamesRunningLabel"].set_text(_("Games running: %d") % count) def onGameAdd (self, games, new_games): ng = {} for game in new_games: ng[game] = (game, self.clearpix, game.wplayer.name + game.wplayer.display_titles(), game.wplayer.getRatingForCurrentGame(), game.bplayer.name + game.bplayer.display_titles(), game.bplayer.getRatingForCurrentGame(), game.display_text, game.display_rated) def do_onGameAdd(games, new_games, ng): for game in new_games: # game removed before we finish processing "games /bslwBzSLx" if game not in ng: continue #log.debug("%s" % game, # extra={"task": (self.connection.username, "GTS.onGameAdd")}) ti = self.store.append (ng[game]) self.games[game] = { "ti": ti } self.games[game]["private_cid"] = game.connect("notify::private", self.private_changed) self._update_gamesrunning_label() if len(new_games) > 0: self.widgets["gamesSpinner"].stop() self.widgets["gamesSpinner"].hide() GLib.idle_add(do_onGameAdd, games, new_games, ng, priority=GLib.PRIORITY_LOW) @idle_add def private_changed (self, game, prop): try: self.store.set(self.games[game]["ti"], 6, game.display_text) except KeyError: pass self.onSelectionChanged(self.tv.get_selection()) return False def onGameRemove (self, games, game): def do_onGameRemove(games, game): log.debug("%s" % game, extra={"task": (self.connection.username, "GTS.onGameRemove")}) if game not in self.games: return if self.store.iter_is_valid(self.games[game]["ti"]): self.store.remove(self.games[game]["ti"]) if game.handler_is_connected(self.games[game]["private_cid"]): game.disconnect(self.games[game]["private_cid"]) del self.games[game] self._update_gamesrunning_label() GLib.idle_add(do_onGameRemove, games, game, priority=GLib.PRIORITY_LOW) def onObserveClicked (self, widget, *args): model, paths = self.tv.get_selection().get_selected_rows() for path in paths: rowiter = model.get_iter(path) game = model.get_value(rowiter, 0) if game.supported: self.connection.bm.observe(game) @idle_add def onGameObserved (self, bm, game): if game in self.games: treeiter = self.games[game]["ti"] self.store.set_value(treeiter, 1, self.recpix) @idle_add def onGameUnobserved (self, bm, game): if game in self.games: treeiter = self.games[game]["ti"] self.store.set_value(treeiter, 1, self.clearpix) ######################################################################## # Initialize Adjourned List # ######################################################################## class AdjournedTabSection (ParrentListSection): def __init__ (self, widgets, connection, lounge): self.connection = connection self.widgets = widgets self.lounge = lounge self.infobar = lounge.infobar self.games = {} self.messages = {} self.tv = widgets["adjournedtreeview"] self.store = Gtk.ListStore(FICSGame, str, str, str, str, str, str, str, str, str, int) self.model = Gtk.TreeModelSort(model=self.store) self.tv.set_model(self.model) self.addColumns (self.tv, "FICSGame", _("White"), "", "", _("Black"), "", _("Rated"), _("Clock"), _("Type"), _("Date/Time"), "sortable_time", hide=[0, 10]) self.selection = self.tv.get_selection() self.selection.connect("changed", self.onSelectionChanged) self.onSelectionChanged(self.selection) self.tv.get_model().set_sort_func(5, self.compareFunction, 7) self.connection.adm.connect("adjournedGameAdded", self.onAdjournedGameAdded) self.connection.games.connect("FICSAdjournedGameRemoved", self.onAdjournedGameRemoved) self.connection.adm.connect("historyGameAdded", self.onHistoryGameAdded) self.connection.games.connect("FICSHistoryGameRemoved", self.onHistoryGameRemoved) self.connection.adm.connect("journalGameAdded", self.onJournalGameAdded) self.connection.games.connect("FICSJournalGameRemoved", self.onJournalGameRemoved) widgets["resignButton"].connect("clicked", self.onResignButtonClicked) widgets["abortButton"].connect("clicked", self.onAbortButtonClicked) widgets["drawButton"].connect("clicked", self.onDrawButtonClicked) widgets["resumeButton"].connect("clicked", self.onResumeButtonClicked) widgets["previewButton"].connect("clicked", self.onPreviewButtonClicked) widgets["examineButton"].connect("clicked", self.onExamineButtonClicked) widgets["mygamesButton"].connect("clicked", self.onMygamesButtonClicked) self.tv.connect("row-activated", lambda *args: self.onPreviewButtonClicked(None)) self.connection.bm.connect("archiveGamePreview", self.onGamePreview) self.connection.bm.connect("playGameCreated", self.onPlayGameCreated) def onSelectionChanged (self, selection): model, treeiter = selection.get_selected() a_row_is_selected = False if treeiter != None: a_row_is_selected = True game = model.get_value(treeiter, 0) if isinstance(game, FICSAdjournedGame) and \ self.connection.stored_owner == self.connection.username: make_sensitive_if_available(self.widgets["resumeButton"], game.opponent) for button in ("resignButton", "abortButton", "drawButton"): self.widgets[button].set_sensitive(True) else: for button in ("resignButton", "abortButton", "drawButton", "resumeButton"): self.widgets[button].set_sensitive(False) else: self.widgets["resumeButton"].set_sensitive(False) self.widgets["resumeButton"].set_tooltip_text("") for button in ("resignButton", "abortButton", "drawButton"): self.widgets[button].set_sensitive(False) self.widgets["previewButton"].set_sensitive(a_row_is_selected) self.widgets["examineButton"].set_sensitive(a_row_is_selected) @idle_add def onPlayGameCreated (self, bm, board): for message in self.messages.values(): message.dismiss() self.messages = {} return False def _infobar_adjourned_message (self, game, player): if player not in self.messages: text = _(" with whom you have an adjourned %(timecontrol)s " + \ "%(gametype)s game is online.") % \ {"timecontrol": game.display_timecontrol, "gametype": game.game_type.display_text} content = get_infobarmessage_content(player, text, gametype=game.game_type) def callback (infobar, response, message): log.debug("%s" % player, extra={"task": (self.connection.username, "_infobar_adjourned_message.callback")}) if response == Gtk.ResponseType.ACCEPT: self.connection.client.run_command("match %s" % player.name) elif response == Gtk.ResponseType.HELP: self.connection.adm.queryMoves(game) else: try: self.messages[player].dismiss() del self.messages[player] except KeyError: pass return False message = InfoBarMessage(Gtk.MessageType.QUESTION, content, callback) message.add_button(InfoBarMessageButton(_("Request Continuation"), Gtk.ResponseType.ACCEPT)) message.add_button(InfoBarMessageButton(_("Examine Adjourned Game"), Gtk.ResponseType.HELP)) message.add_button(InfoBarMessageButton(Gtk.STOCK_CLOSE, Gtk.ResponseType.CANCEL)) make_sensitive_if_available(message.buttons[0], player) self.messages[player] = message self.infobar.push_message(message) def compareFunction (self, treemodel, iter0, iter1, column): (minute0, minute1) = (treemodel.get_value(iter0, 10), treemodel.get_value(iter1, 10)) return cmp(minute0, minute1) @idle_add def online_changed (self, player, prop, game): log.debug("AdjournedTabSection.online_changed: %s %s" % \ (repr(player), repr(game))) partner = game.bplayer if game.wplayer.name == player.name else game.wplayer result = "▷" if partner.name == self.connection.username and game.opponent.online else "*" try: self.store.set(self.games[game]["ti"], 3, result) except KeyError: pass if self.connection.stored_owner == self.connection.username and \ player.online and player.adjournment: self._infobar_adjourned_message(game, player) elif not player.online and player in self.messages: self.messages[player].dismiss() # calling message.dismiss() might cause it to be removed from # self.messages in another callback, so we re-check if player in self.messages: del self.messages[player] return False @idle_add def status_changed (self, player, prop, game): log.debug("AdjournedTabSection.status_changed: %s %s" % \ (repr(player), repr(game))) try: message = self.messages[player] except KeyError: pass else: make_sensitive_if_available(message.buttons[0], player) self.onSelectionChanged(self.selection) return False @idle_add def onAdjournedGameAdded (self, adm, game): if game not in self.games: partner = game.bplayer if game.wplayer.name == game.opponent.name else game.wplayer result = "▷" if partner.name == self.connection.username and game.opponent.online else "*" ti = self.store.append([game, game.wplayer.name, game.wrating, result, game.bplayer.name, game.brating, game.display_rated, game.display_timecontrol, game.game_type.display_text, game.display_time, game.sortable_time]) self.games[game] = {} self.games[game]["ti"] = ti self.games[game]["online_cid"] = game.opponent.connect( "notify::online", self.online_changed, game) self.games[game]["status_cid"] = game.opponent.connect( "notify::status", self.status_changed, game) if self.connection.stored_owner == self.connection.username and \ game.opponent.online: self._infobar_adjourned_message(game, game.opponent) return False @idle_add def onHistoryGameAdded (self, adm, game): if game not in self.games: ti = self.store.append([game, game.wplayer.name, game.wrating, reprResult[game.result], game.bplayer.name, game.brating, game.display_rated, game.display_timecontrol, game.game_type.display_text, game.display_time, game.sortable_time]) self.games[game] = {} self.games[game]["ti"] = ti return False @idle_add def onJournalGameAdded (self, adm, game): if game not in self.games: ti = self.store.append([game, game.wplayer.name, game.wrating, reprResult[game.result], game.bplayer.name, game.brating, game.display_rated, game.display_timecontrol, game.game_type.display_text, game.display_time, game.sortable_time]) self.games[game] = {} self.games[game]["ti"] = ti return False @idle_add def onAdjournedGameRemoved (self, adm, game): if game in self.games: if self.store.iter_is_valid(self.games[game]["ti"]): self.store.remove(self.games[game]["ti"]) if game.opponent.handler_is_connected(self.games[game]["online_cid"]): game.opponent.disconnect(self.games[game]["online_cid"]) if game.opponent.handler_is_connected(self.games[game]["status_cid"]): game.opponent.disconnect(self.games[game]["status_cid"]) if game.opponent in self.messages: self.messages[game.opponent].dismiss() if game.opponent in self.messages: del self.messages[game.opponent] del self.games[game] return False @idle_add def onHistoryGameRemoved (self, adm, game): if game in self.games: if self.store.iter_is_valid(self.games[game]["ti"]): self.store.remove(self.games[game]["ti"]) del self.games[game] return False @idle_add def onJournalGameRemoved (self, adm, game): if game in self.games: if self.store.iter_is_valid(self.games[game]["ti"]): self.store.remove(self.games[game]["ti"]) del self.games[game] return False def onResignButtonClicked (self, button): model, iter = self.tv.get_selection().get_selected() if iter == None: return game = model.get_value(iter, 0) self.connection.adm.resign(game) def onDrawButtonClicked (self, button): model, iter = self.tv.get_selection().get_selected() if iter == None: return game = model.get_value(iter, 0) self.connection.adm.draw(game) def onAbortButtonClicked (self, button): model, iter = self.tv.get_selection().get_selected() if iter == None: return game = model.get_value(iter, 0) self.connection.adm.abort(game) def onResumeButtonClicked (self, button): model, iter = self.tv.get_selection().get_selected() if iter == None: return game = model.get_value(iter, 0) self.connection.adm.resume(game) def onPreviewButtonClicked (self, button): model, iter = self.tv.get_selection().get_selected() if iter == None: return game = model.get_value(iter, 0) self.connection.adm.queryMoves(game) def onExamineButtonClicked (self, button): model, iter = self.tv.get_selection().get_selected() if iter == None: return game = model.get_value(iter, 0) if self.connection.examined_game is None: self.connection.adm.examine(game) else: self.lounge.nonoWhileExamine(None) def onMygamesButtonClicked (self, button): self.connection.adm.queryAdjournments() self.connection.adm.queryHistory() self.connection.adm.queryJournal() @idle_add def onGamePreview (self, adm, ficsgame): log.debug("ICLounge.onGamePreview: %s" % ficsgame) if ficsgame.minutes ==0: timemodel = TimeModel() else: timemodel = TimeModel(ficsgame.minutes*60, ficsgame.inc) gamemodel = ICGameModel(self.connection, ficsgame, timemodel) # The players need to start listening for moves IN this method if they # want to be noticed of all moves the FICS server sends us from now on. # Hence the lazy loading is skipped. wplayer, bplayer = ficsgame.wplayer, ficsgame.bplayer player0 = ICPlayer(gamemodel, wplayer.name, -1, WHITE, wplayer.long_name(game_type=ficsgame.game_type), icrating=wplayer.getRatingByGameType(ficsgame.game_type)) player1 = ICPlayer(gamemodel, bplayer.name, -1, BLACK, bplayer.long_name(game_type=ficsgame.game_type), icrating=bplayer.getRatingByGameType(ficsgame.game_type)) player0tup = (REMOTE, lambda:player0, (), wplayer.long_name()) player1tup = (REMOTE, lambda:player1, (), bplayer.long_name()) ionest.generalStart(gamemodel, player0tup, player1tup, (StringIO(ficsgame.board.pgn), pgn, 0, -1)) gamemodel.connect("game_started", lambda gamemodel: gamemodel.end(ficsgame.result, ficsgame.reason)) ############################################################################ # Initialize "Create Seek" and "Challenge" panels, and "Edit Seek:" dialog # ############################################################################ RATING_SLIDER_STEP = 25 class SeekChallengeSection (Section): seekEditorWidgets = ( "untimedCheck", "minutesSpin", "gainSpin", "strengthCheck", "chainAlignment", "ratingCenterSlider", "toleranceSlider", "toleranceHBox", "nocolorRadio", "whitecolorRadio", "blackcolorRadio", # variantCombo has to come before other variant widgets so that # when the widget is loaded, variantRadio isn't selected by the callback, # overwriting the user's saved value for the variant radio buttons "variantCombo", "noVariantRadio", "variantRadio", "ratedGameCheck", "manualAcceptCheck" ) seekEditorWidgetDefaults = { "untimedCheck": [False, False, False], "minutesSpin": [15, 5, 2], "gainSpin": [10, 0, 1], "strengthCheck": [False, True, False], "chainAlignment": [True, True, True], "ratingCenterSlider": [40, 40, 40], "toleranceSlider": [8, 8, 8], "toleranceHBox": [False, False, False], "variantCombo": [RANDOMCHESS, FISCHERRANDOMCHESS, LOSERSCHESS], "noVariantRadio": [True, False, True], "variantRadio": [False, True, False], "nocolorRadio": [True, True, True], "whitecolorRadio": [False, False, False], "blackcolorRadio": [False, False, False], "ratedGameCheck": [False, True, True], "manualAcceptCheck": [False, False, False], } seekEditorWidgetGettersSetters = {} def __init__ (self, lounge): self.lounge = lounge self.widgets = lounge.widgets self.connection = lounge.connection self.finger = None conf.set("numberOfFingers", 0) self.connection.fm.connect("fingeringFinished", self.onFinger) self.connection.fm.finger(self.connection.getUsername()) self.widgets["untimedCheck"].connect("toggled", self.onUntimedCheckToggled) self.widgets["minutesSpin"].connect("value-changed", self.onTimeSpinChanged) self.widgets["gainSpin"].connect("value-changed", self.onTimeSpinChanged) self.onTimeSpinChanged(self.widgets["minutesSpin"]) self.widgets["nocolorRadio"].connect("toggled", self.onColorRadioChanged) self.widgets["whitecolorRadio"].connect("toggled", self.onColorRadioChanged) self.widgets["blackcolorRadio"].connect("toggled", self.onColorRadioChanged) self.onColorRadioChanged(self.widgets["nocolorRadio"]) self.widgets["noVariantRadio"].connect("toggled", self.onVariantRadioChanged) self.widgets["variantRadio"].connect("toggled", self.onVariantRadioChanged) variantComboGetter, variantComboSetter = self.__initVariantCombo(self.widgets["variantCombo"]) self.seekEditorWidgetGettersSetters["variantCombo"] = (variantComboGetter, variantComboSetter) self.widgets["variantCombo"].connect("changed", self.onVariantComboChanged) self.widgets["editSeekDialog"].connect("delete_event", lambda *a: True) # self.widgets["challengeDialog"].connect("delete_event", lambda *a: True) self.widgets["strengthCheck"].connect("toggled", self.onStrengthCheckToggled) self.onStrengthCheckToggled(self.widgets["strengthCheck"]) self.widgets["ratingCenterSlider"].connect("value-changed", self.onRatingCenterSliderChanged) self.onRatingCenterSliderChanged(self.widgets["ratingCenterSlider"]) self.widgets["toleranceSlider"].connect("value-changed", self.onToleranceSliderChanged) self.onToleranceSliderChanged(self.widgets["toleranceSlider"]) self.widgets["toleranceButton"].connect("clicked", self.onToleranceButtonClicked) self.widgets["toleranceButton"].connect("activate-link", lambda link_button : True) def intGetter (widget): return int(widget.get_value()) self.seekEditorWidgetGettersSetters["minutesSpin"] = (intGetter, None) self.seekEditorWidgetGettersSetters["gainSpin"] = (intGetter, None) self.seekEditorWidgetGettersSetters["ratingCenterSlider"] = (intGetter, None) self.seekEditorWidgetGettersSetters["toleranceSlider"] = (intGetter, None) def toleranceHBoxGetter (widget): return self.widgets["toleranceHBox"].get_property("visible") def toleranceHBoxSetter (widget, visible): assert isinstance(visible, bool) if visible: self.widgets["toleranceHBox"].show() else: self.widgets["toleranceHBox"].hide() self.seekEditorWidgetGettersSetters["toleranceHBox"] = (toleranceHBoxGetter, toleranceHBoxSetter) self.chainbox = ChainVBox() self.widgets["chainAlignment"].add(self.chainbox) def chainboxGetter (widget): return self.chainbox.active def chainboxSetter (widget, is_active): self.chainbox.active = is_active self.seekEditorWidgetGettersSetters["chainAlignment"] = (chainboxGetter, chainboxSetter) self.challengee = None self.in_challenge_mode = False self.seeknumber = 1 self.widgets["seekButton"].connect("clicked", self.onSeekButtonClicked) self.widgets["seekAllButton"].connect("clicked", self.onSeekAllButtonClicked) self.widgets["challengeButton"].connect("clicked", self.onChallengeButtonClicked) self.widgets["challengeDialog"].connect("delete-event", self.onChallengeDialogResponse) self.widgets["challengeDialog"].connect("response", self.onChallengeDialogResponse) self.widgets["editSeekDialog"].connect("response", self.onEditSeekDialogResponse) for widget in ("seek1Radio", "seek2Radio", "seek3Radio", "challenge1Radio", "challenge2Radio", "challenge3Radio"): uistuff.keep(self.widgets[widget], widget) self.lastdifference = 0 self.loading_seek_editor = False self.savedSeekRadioTexts = [ GAME_TYPES["blitz"].display_text ] * 3 for i in range(1,4): self.__loadSeekEditor(i) self.__writeSavedSeeks(i) self.widgets["seek%sRadioConfigButton" % i].connect( "clicked", self.onSeekRadioConfigButtonClicked, i) self.widgets["challenge%sRadioConfigButton" % i].connect( "clicked", self.onChallengeRadioConfigButtonClicked, i) if not self.connection.isRegistred(): self.chainbox.active = False self.widgets["chainAlignment"].set_sensitive(False) self.widgets["chainAlignment"].set_tooltip_text(_("The chain button is disabled because you are logged in as a guest. Guests can't establish ratings, and the chain button's state has no effect when there is no rating to which to tie \"Opponent Strength\" to")) def onSeekButtonClicked (self, button): if self.widgets["seek3Radio"].get_active(): self.__loadSeekEditor(3) elif self.widgets["seek2Radio"].get_active(): self.__loadSeekEditor(2) else: self.__loadSeekEditor(1) min, incr, gametype, ratingrange, color, rated, manual = self.__getSeekEditorDialogValues() self.connection.glm.seek(min, incr, gametype, rated, ratingrange, color, manual) def onSeekAllButtonClicked (self, button): for i in range(1,4): self.__loadSeekEditor(i) min, incr, gametype, ratingrange, color, rated, manual = \ self.__getSeekEditorDialogValues() self.connection.glm.seek(min, incr, gametype, rated, ratingrange, color, manual) def onChallengeButtonClicked (self, button): player = self.lounge.players_tab.getSelectedPlayer() if player is None: return self.challengee = player self.in_challenge_mode = True for i in range(1,4): self.__loadSeekEditor(i) self.__writeSavedSeeks(i) self.__updateRatedGameCheck() if self.widgets["seek3Radio"].get_active(): seeknumber = 3 elif self.widgets["seek2Radio"].get_active(): seeknumber = 2 else: seeknumber = 1 self.__updateSeekEditor(seeknumber, challengemode=True) self.widgets["challengeeNameLabel"].set_markup(player.getMarkup()) self.widgets["challengeeImage"].set_from_pixbuf(player.getIcon(size=32)) title = _("Challenge: ") + player.name self.widgets["challengeDialog"].set_title(title) self.widgets["challengeDialog"].present() def onChallengeDialogResponse (self, dialog, response): self.widgets["challengeDialog"].hide() if response is not 5: return True if self.widgets["challenge3Radio"].get_active(): self.__loadSeekEditor(3) elif self.widgets["challenge2Radio"].get_active(): self.__loadSeekEditor(2) else: self.__loadSeekEditor(1) min, incr, gametype, ratingrange, color, rated, manual = self.__getSeekEditorDialogValues() self.connection.om.challenge(self.challengee.name, gametype, min, incr, rated, color) def onSeekRadioConfigButtonClicked (self, configimage, seeknumber): self.__showSeekEditor(seeknumber) def onChallengeRadioConfigButtonClicked (self, configimage, seeknumber): self.__showSeekEditor(seeknumber, challengemode=True) def onEditSeekDialogResponse (self, dialog, response): self.widgets["editSeekDialog"].hide() if response != Gtk.ResponseType.OK: return self.__saveSeekEditor(self.seeknumber) self.__writeSavedSeeks(self.seeknumber) def __updateSeekEditor (self, seeknumber, challengemode=False): self.in_challenge_mode = challengemode self.seeknumber = seeknumber if not challengemode: self.widgets["strengthFrame"].set_sensitive(True) self.widgets["strengthFrame"].set_tooltip_text("") self.widgets["manualAcceptCheck"].set_sensitive(True) self.widgets["manualAcceptCheck"].set_tooltip_text(_("If set you can refuse players accepting your seek")) else: self.widgets["strengthFrame"].set_sensitive(False) self.widgets["strengthFrame"].set_tooltip_text( _("This option is not applicable because you're challenging a player")) self.widgets["manualAcceptCheck"].set_sensitive(False) self.widgets["manualAcceptCheck"].set_tooltip_text( _("This option is not applicable because you're challenging a player")) self.widgets["chainAlignment"].show_all() self.__loadSeekEditor(seeknumber) self.widgets["seek%dRadio" % seeknumber].set_active(True) self.widgets["challenge%dRadio" % seeknumber].set_active(True) self.__updateYourRatingHBox() self.__updateRatingCenterInfoBox() self.__updateToleranceButton() self.__updateRatedGameCheck() self.onUntimedCheckToggled(self.widgets["untimedCheck"]) title = _("Edit Seek: ") + self.widgets["seek%dRadio" % seeknumber].get_label()[:-1] self.widgets["editSeekDialog"].set_title(title) def __showSeekEditor (self, seeknumber, challengemode=False): self.widgets["editSeekDialog"].set_transient_for(self.widgets["fics_lounge"]) self.__updateSeekEditor(seeknumber, challengemode) self.widgets["editSeekDialog"].present() # ugly hack to fix https://github.com/pychess/pychess/issues/1024 # self.widgets["editSeekDialog"].queue_draw() doesn't work if sys.platform == "win32": self.widgets["editSeekDialog"].hide() allocation = self.widgets["editSeekDialog"].get_allocation() self.widgets["editSeekDialog"].set_size_request( allocation.width, allocation.height) self.widgets["editSeekDialog"].show() #-------------------------------------------------------- Seek Editor def __writeSavedSeeks (self, seeknumber): """ Writes saved seek strings for both the Seek Panel and the Challenge Panel """ min, gain, gametype, ratingrange, color, rated, manual = \ self.__getSeekEditorDialogValues() self.savedSeekRadioTexts[seeknumber-1] = \ time_control_to_gametype(min, gain).display_text self.__writeSeekRadioLabels() seek = {} if gametype == GAME_TYPES["untimed"]: seek["time"] = gametype.display_text elif gain > 0: seek["time"] = _("%(minutes)d min + %(gain)d sec/move") % \ {'minutes' : min, 'gain' : gain} else: seek["time"] = _("%d min") % min if isinstance(gametype, VariantGameType): seek["variant"] = "%s" % gametype.display_text rrtext = get_rating_range_display_text(ratingrange[0], ratingrange[1]) if rrtext: seek["rating"] = rrtext if color == WHITE: seek["color"] = _("White") elif color == BLACK: seek["color"] = _("Black") if rated and gametype != GAME_TYPES["untimed"]: seek["rated"] = _("Rated") if manual: seek["manual"] = _("Manual") seek_ = [] challenge = [] challengee_is_guest = self.challengee and self.challengee.isGuest() for key in ("time", "variant", "rating", "color", "rated", "manual"): if key in seek: seek_.append(seek[key]) if key in ("time", "variant", "color") or \ (key == "rated" and not challengee_is_guest): challenge.append(seek[key]) seektext = ", ".join(seek_) challengetext = ", ".join(challenge) if seeknumber == 1: self.widgets["seek1RadioLabel"].set_text(seektext) self.widgets["challenge1RadioLabel"].set_text(challengetext) elif seeknumber == 2: self.widgets["seek2RadioLabel"].set_text(seektext) self.widgets["challenge2RadioLabel"].set_text(challengetext) else: self.widgets["seek3RadioLabel"].set_text(seektext) self.widgets["challenge3RadioLabel"].set_text(challengetext) def __loadSeekEditor (self, seeknumber): self.loading_seek_editor = True for widget in self.seekEditorWidgets: if widget in self.seekEditorWidgetGettersSetters: uistuff.loadDialogWidget(self.widgets[widget], widget, seeknumber, get_value_=self.seekEditorWidgetGettersSetters[widget][0], set_value_=self.seekEditorWidgetGettersSetters[widget][1], first_value=self.seekEditorWidgetDefaults[widget][seeknumber-1]) elif widget in self.seekEditorWidgetDefaults: uistuff.loadDialogWidget(self.widgets[widget], widget, seeknumber, first_value=self.seekEditorWidgetDefaults[widget][seeknumber-1]) else: uistuff.loadDialogWidget(self.widgets[widget], widget, seeknumber) self.lastdifference = conf.get("lastdifference-%d" % seeknumber, -1) self.loading_seek_editor = False def __saveSeekEditor (self, seeknumber): for widget in self.seekEditorWidgets: if widget in self.seekEditorWidgetGettersSetters: uistuff.saveDialogWidget(self.widgets[widget], widget, seeknumber, get_value_=self.seekEditorWidgetGettersSetters[widget][0]) else: uistuff.saveDialogWidget(self.widgets[widget], widget, seeknumber) conf.set("lastdifference-%d" % seeknumber, self.lastdifference) def __getSeekEditorDialogValues (self): if self.widgets["untimedCheck"].get_active(): min = 0 incr = 0 else: min = int(self.widgets["minutesSpin"].get_value()) incr = int(self.widgets["gainSpin"].get_value()) if self.widgets["strengthCheck"].get_active(): ratingrange = [0, 9999] else: center = int(self.widgets["ratingCenterSlider"].get_value()) * RATING_SLIDER_STEP tolerance = int(self.widgets["toleranceSlider"].get_value()) * RATING_SLIDER_STEP minrating = center - tolerance minrating = minrating > 0 and minrating or 0 maxrating = center + tolerance maxrating = maxrating >= 3000 and 9999 or maxrating ratingrange = [minrating, maxrating] if self.widgets["nocolorRadio"].get_active(): color = None elif self.widgets["whitecolorRadio"].get_active(): color = WHITE else: color = BLACK if self.widgets["noVariantRadio"].get_active() or \ self.widgets["untimedCheck"].get_active(): gametype = time_control_to_gametype(min, incr) else: variant_combo_getter = self.seekEditorWidgetGettersSetters["variantCombo"][0] variant = variant_combo_getter(self.widgets["variantCombo"]) gametype = VARIANT_GAME_TYPES[variant] rated = self.widgets["ratedGameCheck"].get_active() and \ not self.widgets["untimedCheck"].get_active() manual = self.widgets["manualAcceptCheck"].get_active() return min, incr, gametype, ratingrange, color, rated, manual def __writeSeekRadioLabels (self): gameTypes = { _("Untimed"): [0, 1], _("Standard"): [0, 1], _("Blitz"): [0, 1], _("Lightning"): [0, 1] } for i in range(3): gameTypes[self.savedSeekRadioTexts[i]][0] += 1 for i in range(3): if gameTypes[self.savedSeekRadioTexts[i]][0] > 1: labelText = "%s #%d:" % \ (self.savedSeekRadioTexts[i], gameTypes[self.savedSeekRadioTexts[i]][1]) self.widgets["seek%dRadio" % (i+1)].set_label(labelText) self.widgets["challenge%dRadio" % (i+1)].set_label(labelText) gameTypes[self.savedSeekRadioTexts[i]][1] += 1 else: self.widgets["seek%dRadio" % (i+1)].set_label(self.savedSeekRadioTexts[i]+":") self.widgets["challenge%dRadio" % (i+1)].set_label(self.savedSeekRadioTexts[i]+":") def __updateRatingRangeBox (self): center = int(self.widgets["ratingCenterSlider"].get_value()) * RATING_SLIDER_STEP tolerance = int(self.widgets["toleranceSlider"].get_value()) * RATING_SLIDER_STEP minRating = center - tolerance minRating = minRating > 0 and minRating or 0 maxRating = center + tolerance maxRating = maxRating >= 3000 and 9999 or maxRating self.widgets["ratingRangeMinLabel"].set_label("%d" % minRating) self.widgets["ratingRangeMaxLabel"].set_label("%d" % maxRating) for widgetName, rating in (("ratingRangeMinImage", minRating), ("ratingRangeMaxImage", maxRating)): pixbuf = FICSPlayer.getIconByRating(rating) self.widgets[widgetName].set_from_pixbuf(pixbuf) self.widgets["ratingRangeMinImage"].show() self.widgets["ratingRangeMinLabel"].show() self.widgets["dashLabel"].show() self.widgets["ratingRangeMaxImage"].show() self.widgets["ratingRangeMaxLabel"].show() if minRating == 0: self.widgets["ratingRangeMinImage"].hide() self.widgets["ratingRangeMinLabel"].hide() self.widgets["dashLabel"].hide() self.widgets["ratingRangeMaxLabel"].set_label("%d↓" % maxRating) if maxRating == 9999: self.widgets["ratingRangeMaxImage"].hide() self.widgets["ratingRangeMaxLabel"].hide() self.widgets["dashLabel"].hide() self.widgets["ratingRangeMinLabel"].set_label("%d↑" % minRating) if minRating == 0 and maxRating == 9999: self.widgets["ratingRangeMinLabel"].set_label(_("Any strength")) self.widgets["ratingRangeMinLabel"].show() def __getGameType (self): if self.widgets["untimedCheck"].get_active(): gametype = GAME_TYPES["untimed"] elif self.widgets["noVariantRadio"].get_active(): min = int(self.widgets["minutesSpin"].get_value()) gain = int(self.widgets["gainSpin"].get_value()) gametype = time_control_to_gametype(min, gain) else: variant_combo_getter = self.seekEditorWidgetGettersSetters["variantCombo"][0] variant = variant_combo_getter(self.widgets["variantCombo"]) gametype = VARIANT_GAME_TYPES[variant] return gametype def __updateYourRatingHBox (self): gametype = self.__getGameType() self.widgets["yourRatingNameLabel"].set_label("(" + gametype.display_text + ")") rating = self.__getRating(gametype.rating_type) if rating is None: self.widgets["yourRatingImage"].clear() self.widgets["yourRatingLabel"].set_label(_("Unrated")) return pixbuf = FICSPlayer.getIconByRating(rating) self.widgets["yourRatingImage"].set_from_pixbuf(pixbuf) self.widgets["yourRatingLabel"].set_label(str(rating)) center = int(self.widgets["ratingCenterSlider"].get_value()) * RATING_SLIDER_STEP rating = self.__clamp(rating) difference = rating - center if self.loading_seek_editor is False and self.chainbox.active and \ difference is not self.lastdifference: newcenter = rating - self.lastdifference self.widgets["ratingCenterSlider"].set_value(newcenter // RATING_SLIDER_STEP) else: self.lastdifference = difference def __clamp (self, rating): assert isinstance(rating, int) mod = rating % RATING_SLIDER_STEP if mod > RATING_SLIDER_STEP // 2: return rating - mod + RATING_SLIDER_STEP else: return rating - mod def __updateRatedGameCheck (self): # on FICS, untimed games can't be rated, nor can games against a guest if not self.connection.isRegistred(): self.widgets["ratedGameCheck"].set_active(False) sensitive = False self.widgets["ratedGameCheck"].set_tooltip_text( _("You can't play rated games because you are logged in as a guest")) elif self.widgets["untimedCheck"].get_active() : sensitive = False self.widgets["ratedGameCheck"].set_tooltip_text( _("You can't play rated games because \"Untimed\" is checked, ") + _("and on FICS, untimed games can't be rated")) elif self.in_challenge_mode and self.challengee.isGuest(): sensitive = False self.widgets["ratedGameCheck"].set_tooltip_text( _("This option is not available because you're challenging a guest, ") + _("and guests can't play rated games")) else: sensitive = True self.widgets["ratedGameCheck"].set_tooltip_text("") self.widgets["ratedGameCheck"].set_sensitive(sensitive) def __initVariantCombo (self, combo): model = Gtk.TreeStore(str) cellRenderer = Gtk.CellRendererText() combo.clear() combo.pack_start(cellRenderer, True) combo.add_attribute(cellRenderer, 'text', 0) combo.set_model(model) groupNames = {VARIANTS_SHUFFLE: _("Shuffle"), VARIANTS_OTHER: _("Other (standard rules)"), VARIANTS_OTHER_NONSTANDARD: _("Other (non standard rules)"), } ficsvariants = [v for k, v in variants.items() if k in VARIANT_GAME_TYPES and v.variant not in UNSUPPORTED] groups = groupby(ficsvariants, attrgetter("variant_group")) pathToVariant = {} variantToPath = {} for i, (id, group) in enumerate(groups): iter = model.append(None, (groupNames[id],)) for variant in group: subiter = model.append(iter, (variant.name,)) path = model.get_path(subiter) path = path.to_string() pathToVariant[path] = variant.variant variantToPath[variant.variant] = path # this stops group names (eg "Shuffle") from being displayed in submenus def cellFunc (combo, cell, model, iter, data): isChildNode = not model.iter_has_child(iter) cell.set_property("sensitive", isChildNode) combo.set_cell_data_func(cellRenderer, cellFunc, None) def comboGetter (combo): path = model.get_path(combo.get_active_iter()) path = path.to_string() return pathToVariant[path] def comboSetter (combo, variant): if variant not in VARIANT_GAME_TYPES: variant = LOSERSCHESS combo.set_active_iter(model.get_iter(variantToPath[variant])) return comboGetter, comboSetter def __getRating (self, gametype): if self.finger is None: return None try: ratingobj = self.finger.getRating(type=gametype) rating = int(ratingobj.elo) except KeyError: # the user doesn't have a rating for this game type rating = None return rating @idle_add def onFinger (self, fm, finger): if not finger.getName() == self.connection.getUsername(): return self.finger = finger numfingers = conf.get("numberOfFingers", 0) + 1 conf.set("numberOfFingers", numfingers) if conf.get("numberOfTimesLoggedInAsRegisteredUser", 0) is 1 and numfingers is 1: standard = self.__getRating(TYPE_STANDARD) blitz = self.__getRating(TYPE_BLITZ) lightning = self.__getRating(TYPE_LIGHTNING) if standard is not None: self.seekEditorWidgetDefaults["ratingCenterSlider"][0] = standard // RATING_SLIDER_STEP elif blitz is not None: self.seekEditorWidgetDefaults["ratingCenterSlider"][0] = blitz // RATING_SLIDER_STEP if blitz is not None: self.seekEditorWidgetDefaults["ratingCenterSlider"][1] = blitz // RATING_SLIDER_STEP if lightning is not None: self.seekEditorWidgetDefaults["ratingCenterSlider"][2] = lightning // RATING_SLIDER_STEP elif blitz is not None: self.seekEditorWidgetDefaults["ratingCenterSlider"][2] = blitz // RATING_SLIDER_STEP for i in range(1,4): self.__loadSeekEditor(i) self.__updateSeekEditor(i) self.__saveSeekEditor(i) self.__writeSavedSeeks(i) self.__updateYourRatingHBox() def onTimeSpinChanged (self, spin): minutes = self.widgets["minutesSpin"].get_value_as_int() gain = self.widgets["gainSpin"].get_value_as_int() name = time_control_to_gametype(minutes, gain).display_text self.widgets["timeControlNameLabel"].set_label("%s" % name) self.__updateYourRatingHBox() def onUntimedCheckToggled (self, check): is_untimed_game = check.get_active() self.widgets["timeControlConfigVBox"].set_sensitive(not is_untimed_game) # on FICS, untimed games can't be rated and can't be a chess variant self.widgets["variantFrame"].set_sensitive(not is_untimed_game) if is_untimed_game: self.widgets["variantFrame"].set_tooltip_text( _("You can't select a variant because \"Untimed\" is checked, ") + _("and on FICS, untimed games have to be normal chess rules")) else: self.widgets["variantFrame"].set_tooltip_text("") self.__updateRatedGameCheck() # sets sensitivity of widgets["ratedGameCheck"] self.__updateYourRatingHBox() def onStrengthCheckToggled (self, check): strengthsensitive = not check.get_active() self.widgets["strengthConfigVBox"].set_sensitive(strengthsensitive) def onRatingCenterSliderChanged (self, slider): center = int(self.widgets["ratingCenterSlider"].get_value()) * RATING_SLIDER_STEP pixbuf = FICSPlayer.getIconByRating(center) self.widgets["ratingCenterLabel"].set_label("%d" % (center)) self.widgets["ratingCenterImage"].set_from_pixbuf(pixbuf) self.__updateRatingRangeBox() rating = self.__getRating(self.__getGameType().rating_type) if rating is None: return rating = self.__clamp(rating) self.lastdifference = rating - center def __updateRatingCenterInfoBox (self): if self.widgets["toleranceHBox"].get_property("visible") == True: self.widgets["ratingCenterInfoHBox"].show() else: self.widgets["ratingCenterInfoHBox"].hide() def __updateToleranceButton (self): if self.widgets["toleranceHBox"].get_property("visible") == True: self.widgets["toleranceButton"].set_property("label", _("Hide")) else: self.widgets["toleranceButton"].set_property("label", _("Change Tolerance")) def onToleranceButtonClicked (self, button): if self.widgets["toleranceHBox"].get_property("visible") == True: self.widgets["toleranceHBox"].hide() else: self.widgets["toleranceHBox"].show() self.__updateToleranceButton() self.__updateRatingCenterInfoBox() def onToleranceSliderChanged (self, slider): tolerance = int(self.widgets["toleranceSlider"].get_value()) * RATING_SLIDER_STEP self.widgets["toleranceLabel"].set_label("±%d" % tolerance) self.__updateRatingRangeBox() def onColorRadioChanged (self, radio): if self.widgets["nocolorRadio"].get_active(): self.widgets["colorImage"].set_from_file(addDataPrefix("glade/piece-unknown.png")) self.widgets["colorImage"].set_sensitive(False) elif self.widgets["whitecolorRadio"].get_active(): self.widgets["colorImage"].set_from_file(addDataPrefix("glade/piece-white.png")) self.widgets["colorImage"].set_sensitive(True) elif self.widgets["blackcolorRadio"].get_active(): self.widgets["colorImage"].set_from_file(addDataPrefix("glade/piece-black.png")) self.widgets["colorImage"].set_sensitive(True) def onVariantRadioChanged (self, radio): self.__updateYourRatingHBox() def onVariantComboChanged (self, combo): self.widgets["variantRadio"].set_active(True) self.__updateYourRatingHBox() min, gain, gametype, ratingrange, color, rated, manual = \ self.__getSeekEditorDialogValues() self.widgets["variantCombo"].set_tooltip_text( variants[gametype.variant_type].__desc__) pychess-0.12.2/lib/pychess/ic/TimeSeal.py0000755000175000017470000001446112641567764020477 0ustar tamasusers00000000000000from __future__ import print_function import errno import socket import telnetlib import re import random import time import platform import getpass from pychess.System.Log import log ENCODE = [ord(i) for i in "Timestamp (FICS) v1.0 - programmed by Henrik Gram."] ENCODELEN = len(ENCODE) G_RESPONSE = "\x029" FILLER = b"1234567890abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ" IAC_WONT_ECHO = b''.join([telnetlib.IAC, telnetlib.WONT, telnetlib.ECHO]) class CanceledException (Exception): pass class TimeSeal (object): BUFFER_SIZE = 4096 sensitive = False def __init__(self): self.name = "" self.connected = False self.canceled = False self.FatICS = False self.USCN = False self.buf = bytearray(b"") self.writebuf = bytearray(b"") self.stateinfo = None self.sock = None def open (self, host, port): if self.canceled: raise CanceledException() self.port = port self.host = host self.name = host self.sock = socket.socket(socket.AF_INET, socket.SOCK_STREAM) self.sock.settimeout(10) try: self.sock.connect((host, port)) except socket.error as e: if e.errno != errno.EINPROGRESS: raise self.sock.settimeout(None) print(self.get_init_string(), file=self) self.cook_some() def cancel (self): self.canceled = True self.close() def close (self): self.connected = False try: self.sock.close() except AttributeError: pass def encode(self, inbuf, timestamp = None): assert inbuf == b"" or inbuf[-1] != b"\n" if not timestamp: timestamp = int(time.time()*1000 % 1e7) enc = inbuf + bytearray('\x18%d\x19' % timestamp, "ascii") padding = 12 - len(enc)%12 filler = random.sample(FILLER, padding) enc += bytearray(filler) buf = enc for i in range(0, len(buf), 12): buf[i + 11], buf[i] = buf[i], buf[i + 11] buf[i + 9], buf[i + 2] = buf[i + 2], buf[i + 9] buf[i + 7], buf[i + 4] = buf[i + 4], buf[i + 7] encode_offset = random.randrange(ENCODELEN) for i in range(len(buf)): buf[i] |= 0x80 j = (i+encode_offset) % ENCODELEN buf[i] = (buf[i] ^ ENCODE[j]) - 32 buf += bytearray([ 0x80 | encode_offset]) return buf def get_init_string(self): """ timeseal header: TIMESTAMP|bruce|Linux gruber 2.6.15-gentoo-r1 #9 PREEMPT Thu Feb 9 20:09:47 GMT 2006 i686 Intel(R) Celeron(R) CPU 2.00GHz GenuineIntel GNU/Linux| 93049 """ user = getpass.getuser() uname = ' '.join(list(platform.uname())) return "TIMESTAMP|" + user + "|" + uname + "|" def decode(self, buf, stateinfo = None): expected_table = b"[G]\n\r" # TODO: add support to FatICS's new zipseal protocol when it finalizes #expected_table = "[G]\n\r" if not self.FatICS else "[G]\r\n" final_state = len(expected_table) g_count = 0 result = [] if stateinfo: state, lookahead = stateinfo else: state, lookahead = 0, [] lenb = len(buf) idx = 0 while idx < lenb: ch = buf[idx] expected = expected_table[state] if ch == expected: state += 1 if state == final_state: g_count += 1 lookahead = [] state = 0 else: lookahead.append(ch) idx += 1 elif state == 0: result.append(ch) idx += 1 else: result.extend(lookahead) lookahead = [] state = 0 return bytearray(result), g_count, (state, lookahead) def write(self, str): self.writebuf += bytearray(str, "utf-8") if b"\n" not in self.writebuf: return if not self.connected: return i = self.writebuf.rfind(b"\n") str = self.writebuf[:i] self.writebuf = self.writebuf[i+1:] logstr = "*"*len(str) if self.sensitive else str log.info(logstr, extra={"task": (self.name, "raw")}) str = self.encode(str) try: self.sock.send(str+b"\n") except: pass def readline(self): return self.readuntil(b"\n") def readuntil(self, until): if self.canceled: raise CanceledException() while True: i = self.buf.find(until) if i >= 0: stuff = self.buf[:i+len(until)] self.buf = self.buf[i+len(until):] return str(stuff.strip().decode("latin_1")) self.cook_some() def cook_some (self): recv = self.sock.recv(self.BUFFER_SIZE) if len(recv) == 0: return if not self.connected: log.debug(recv, extra={"task": (self.name, "raw")}) self.buf += recv self.connected = True if b"FatICS" in self.buf: self.FatICS = True elif b"puertorico.com" in self.buf: self.USCN = True self.buf = self.buf.replace(IAC_WONT_ECHO, b"") elif b"Starting FICS session" in self.buf: self.buf = self.buf.replace(IAC_WONT_ECHO, b"") else: recv, g_count, self.stateinfo = self.decode(recv, self.stateinfo) recv = recv.replace(b"\r", b"") log.debug(recv, extra={"task": (self.name, "raw")}) for i in range(g_count): print(G_RESPONSE, file=self) self.buf += recv def read_until (self, *untils): if self.canceled: raise CanceledException() while True: for i, until in enumerate(untils): start = self.buf.find(bytearray(until, "ascii")) if start >= 0: self.buf = self.buf[:start] return i self.cook_some() pychess-0.12.2/lib/pychess/ic/FICSConnection.py0000755000175000017470000003523012650754727021532 0ustar tamasusers00000000000000from __future__ import absolute_import from __future__ import print_function import bisect import re import socket import time import threading from collections import defaultdict from threading import Event, Thread from gi.repository import GObject import pychess from pychess.System import fident from pychess.System.Log import log from pychess.Utils.const import * from pychess.ic import NAMES_RE, TITLES_RE from .managers.SeekManager import SeekManager from .managers.FingerManager import FingerManager from .managers.NewsManager import NewsManager from .managers.BoardManager import BoardManager from .managers.OfferManager import OfferManager from .managers.ChatManager import ChatManager from .managers.ConsoleManager import ConsoleManager from .managers.HelperManager import HelperManager from .managers.ListAndVarManager import ListAndVarManager from .managers.AutoLogOutManager import AutoLogOutManager from .managers.ErrorManager import ErrorManager from .managers.AdjournManager import AdjournManager from .FICSObjects import * from .TimeSeal import TimeSeal, CanceledException from .VerboseTelnet import LinePrediction from .VerboseTelnet import FromPlusPrediction from .VerboseTelnet import FromABPlusPrediction from .VerboseTelnet import FromToPrediction from .VerboseTelnet import PredictionsTelnet from .VerboseTelnet import NLinesPrediction class LogOnException (Exception): pass class Connection (GObject.GObject, Thread): __gsignals__ = { 'connecting': (GObject.SignalFlags.RUN_FIRST, None, ()), 'connectingMsg': (GObject.SignalFlags.RUN_FIRST, None, (str,)), 'connected': (GObject.SignalFlags.RUN_FIRST, None, ()), 'disconnected': (GObject.SignalFlags.RUN_FIRST, None, ()), 'error': (GObject.SignalFlags.RUN_FIRST, None, (object,)), } def __init__ (self, host, ports, username, password): GObject.GObject.__init__(self) Thread.__init__(self, name=fident(self.run)) self.daemon = True self.host = host self.ports = ports self.username = username self.password = password self.connected = False self.connecting = False self.predictions = set() self.predictionsDict = {} self.reply_cmd_dict = defaultdict(list) # Are we connected to FatICS ? self.FatICS = False self.USCN = False @property def ics_name(self): if self.FatICS: return("FatICS") elif self.USCN: return("USCN") else: return("FICS") def expect (self, prediction): self.predictions.add(prediction) self.predictionsDict[prediction.callback] = prediction if hasattr(prediction.callback, "BLKCMD"): predictions = self.reply_cmd_dict[prediction.callback.BLKCMD] predictions.append(prediction) # Do reverse sorted so we can later test the longest predictions first. # This is so that matching prefers the longest match for matches # that start out with the same regexp line(s) self.reply_cmd_dict[prediction.callback.BLKCMD] = sorted(predictions, key=len, reverse=True) def unexpect (self, callback): self.predictions.remove(self.predictionsDict.pop(callback)) if hasattr(callback, "BLKCMD"): for prediction in self.reply_cmd_dict[callback.BLKCMD]: if prediction.callback == callback: self.reply_cmd_dict[callback.BLKCMD].remove(prediction) if len(self.reply_cmd_dict[callback.BLKCMD]) == 0: del self.reply_cmd_dict[callback.BLKCMD] def expect_line (self, callback, regexp): self.expect(LinePrediction(callback, regexp)) def expect_n_lines (self, callback, *regexps): self.expect(NLinesPrediction(callback, *regexps)) def expect_fromplus (self, callback, regexp0, regexp1): self.expect(FromPlusPrediction(callback, regexp0, regexp1)) def expect_fromABplus (self, callback, regexp0, regexp1, regexp2): self.expect(FromABPlusPrediction(callback, regexp0, regexp1, regexp2)) def expect_fromto (self, callback, regexp0, regexp1): self.expect(FromToPrediction(callback, regexp0, regexp1)) def cancel (self): raise NotImplementedError() def close (self): raise NotImplementedError() def getUsername (self): return self.username def isRegistred (self): return self.password is not None and self.password != "" def isConnected (self): return self.connected def isConnecting (self): return self.connecting EOF = _("The connection was broken - got \"end of file\" message") NOTREG = _("'%s' is not a registered name") BADPAS = _("The entered password was invalid.\n" + \ "If you forgot your password, go to " + \ "" + \ "http://www.freechess.org/password to request a new one over email.") ALREADYIN = _("Sorry '%s' is already logged in") REGISTERED = _("'%s' is a registered name. If it is yours, type the password.") PREVENTED = _("Due to abuse problems, guest connections have been prevented.\n" + \ "You can still register on http://www.freechess.org") class FICSConnection (Connection): def __init__ (self, host, ports, username="guest", password=""): Connection.__init__(self, host, ports, username, password) def _post_connect_hook (self, lines): pass def _start_managers (self): pass def _connect (self): self.connecting = True self.emit("connecting") try: self.client = TimeSeal() self.emit('connectingMsg', _("Connecting to server")) for i, port in enumerate(self.ports): log.debug("Trying port %d" % port, extra={"task": (self.host, "raw")}) try: self.client.open(self.host, port) except socket.error as e: log.debug("Failed to open port %d %s" % (port, e), extra={"task": (self.host, "raw")}) if i+1 == len(self.ports): raise else: continue else: break self.client.read_until("login: ") self.emit('connectingMsg', _("Logging on to server")) # login with registered handle if self.password: print(self.username, file=self.client) got = self.client.read_until("password:", "enter the server as", "Try again.") if got == 0: self.client.sensitive = True print(self.password, file=self.client) self.client.sensitive = False # No such name elif got == 1: raise LogOnException(NOTREG % self.username) # Bad name elif got == 2: raise LogOnException(NOTREG % self.username) else: if self.username: print(self.username, file=self.client) else: print("guest", file=self.client) got = self.client.read_until("Press return", "If it is yours, type the password.", "guest connections have been prevented") #got = 2 if got == 1: raise LogOnException(REGISTERED % self.username) elif got == 2: raise LogOnException(PREVENTED) print(file=self.client) while True: line = self.client.readline() if "Invalid password" in line: raise LogOnException(BADPAS) elif "is already logged in" in line: raise LogOnException(ALREADYIN % self.username) match = re.search("\*\*\*\* Starting FICS session as " + "(%s)%s \*\*\*\*" % (NAMES_RE, TITLES_RE), line) if match: self.username = match.groups()[0] break # USCN specific lines match = re.search("Created temporary login '(%s)'" % NAMES_RE, line) if match: self.username = match.groups()[0] break match = re.search("answers to frequently asked questions", line) if match: break match = re.search("This is the admin message of the day", line) if match: break self.emit('connectingMsg', _("Setting up environment")) lines = self.client.readuntil(b"ics%") self._post_connect_hook(lines) self.FatICS = self.client.FatICS self.USCN = self.client.USCN self.client.name = self.username self.client = PredictionsTelnet(self.client, self.predictions, self.reply_cmd_dict) self.client.lines.line_prefix = "fics%" if not self.USCN: self.client.run_command("iset block 1") self.client.lines.block_mode = True self.client.run_command("iset defprompt 1") self.client.run_command("iset ms 1") self._start_managers(lines) self.connecting = False self.connected = True self.emit("connected") def keep_alive(): last = time.time() while self.isConnected(): if time.time()-last > 59*60: self.client.run_command("date") last = time.time() time.sleep(30) t = threading.Thread(target=keep_alive, name=fident(keep_alive)) t.daemon = True t.start() except CanceledException as e: log.info("FICSConnection._connect: %s" % repr(e), extra={"task": (self.host, "raw")}) finally: self.connecting = False def run (self): try: try: if not self.isConnected(): self._connect() while self.isConnected(): self.client.parse() except Exception as e: log.info("FICSConnection.run: %s" % repr(e), extra={"task": (self.host, "raw")}) self.close() if isinstance(e, (IOError, LogOnException, EOFError, socket.error, socket.gaierror, socket.herror)): self.emit("error", e) else: raise finally: self.emit("disconnected") def cancel (self): self.close() self.client.cancel() def close (self): self.connected = False self.client.close() class FICSMainConnection (FICSConnection): def __init__ (self, host, ports, username="guest", password=""): FICSConnection.__init__(self, host, ports, username, password) self.lvm = None self.notify_users = [] self.ini_messages = [] self.lounge_loaded = Event() self.players = FICSPlayers(self) self.games = FICSGames(self) self.seeks = FICSSeeks(self) self.challenges = FICSChallenges(self) self.examined_game = None self.stored_owner = self.username self.history_owner = self.username self.journal_owner = self.username def close (self): try: self.lvm.stop() except AttributeError: pass except Exception as e: if not isinstance(e, (IOError, LogOnException, EOFError, socket.error, socket.gaierror, socket.herror)): raise finally: FICSConnection.close(self) def _post_connect_hook (self, lines): self.ini_messages = lines.splitlines() notify_users = re.search( "Present company includes: ((?:%s ?)+)\." % NAMES_RE, lines) if notify_users: self.notify_users.extend(notify_users.groups()[0].split(" ")) def _start_managers (self, lines): self.client.run_command("set interface %s %s" % (NAME, pychess.VERSION)) # FIXME: Some managers use each other to avoid regexp collapse. To # avoid having to init the in a specific order, connect calls should # be moved to a "start" function, so all managers would be in # the connection object when they are called self.lvm = ListAndVarManager(self) self.em = ErrorManager(self) self.glm = SeekManager(self) self.bm = BoardManager(self) self.fm = FingerManager(self) self.nm = NewsManager(self) self.om = OfferManager(self) self.cm = ChatManager(self) self.alm = AutoLogOutManager(self) self.adm = AdjournManager(self) self.com = ConsoleManager(self) self.bm.start() self.players.start() self.games.start() self.seeks.start() self.challenges.start() # disable setting iveriables from console self.client.run_command("iset lock 1") class FICSHelperConnection (FICSConnection): def __init__ (self, main_conn, host, ports, username="guest", password=""): FICSConnection.__init__(self, host, ports, username, password) self.main_conn = main_conn def _start_managers (self, lines): # The helper just wants only player and game notifications self.main_conn.lounge_loaded.wait() # set open 1 is a requirement for availinfo notifications self.client.run_command("set open 1") self.client.run_command("set shout 0") self.client.run_command("set cshout 0") self.client.run_command("set tell 0") self.client.run_command("set chanoff 1") self.client.run_command("set gin 1") self.client.run_command("set availinfo 1") if self.FatICS or self.USCN: self.client.run_command("set pin 1") else: self.client.run_command("iset allresults 1") # ivar pin: http://www.freechess.org/Help/HelpFiles/new_features.html self.client.run_command("iset pin 1") self.hm = HelperManager(self, self.main_conn) pychess-0.12.2/lib/pychess/ic/ICLogon.py0000755000175000017470000002444112646663571020263 0ustar tamasusers00000000000000from __future__ import absolute_import import re import socket import webbrowser from collections import defaultdict from gi.repository import Gdk from gi.repository import Gtk from gi.repository import GObject from pychess.System import uistuff, conf from pychess.System.idle_add import idle_add from pychess.Utils.const import * from .FICSConnection import FICSMainConnection, FICSHelperConnection, LogOnException from .ICLounge import ICLounge host = None port = None dialog = None def run(): global dialog if not dialog: dialog = ICLogon() dialog.show() elif dialog.lounge: dialog.lounge.present() else: dialog.present() class AutoLogoutException (Exception): pass def get_user_names(value=None): """ Split and return usernameEntry config item into registered and guest username """ if value is not None: names = value.split("|") else: names = conf.get("usernameEntry", "").split("|") if len(names) == 0: names = ["", ""] elif len(names) < 2: names.append(names[0]) return names class ICLogon (object): def __init__ (self): self.connection = None self.lounge = None self.canceled = False self.cids = defaultdict(list) self.widgets = uistuff.GladeWidgets("fics_logon.glade") uistuff.keepWindowSize("fics_logon", self.widgets["fics_logon"], defaultPosition=uistuff.POSITION_GOLDEN) self.widgets["fics_logon"].connect('key-press-event', lambda w, e: e.keyval == Gdk.KEY_Escape and w.hide()) def on_logOnAsGuest_toggled (check): names = get_user_names() self.widgets["nameEntry"].set_text(names[1] if check.get_active() else names[0]) self.widgets["passwordLabel"].set_sensitive(not check.get_active()) self.widgets["passEntry"].set_sensitive(not check.get_active()) self.widgets["logOnAsGuest"].connect("toggled", on_logOnAsGuest_toggled) uistuff.keep(self.widgets["logOnAsGuest"], "asGuestCheck") as_guest = self.widgets["logOnAsGuest"] def user_name_get_value(entry): names = get_user_names() if as_guest.get_active(): text = "%s|%s" % (names[0], entry.get_text()) else: text = "%s|%s" % (entry.get_text(), names[1]) return text def user_name_set_value(entry, value): names = get_user_names(value=value) if as_guest.get_active(): entry.set_text(names[1]) else: entry.set_text(names[0]) uistuff.keep(self.widgets["nameEntry"], "usernameEntry", \ user_name_get_value, user_name_set_value) uistuff.keep(self.widgets["passEntry"], "passwordEntry") uistuff.keep(self.widgets["hostEntry"], "hostEntry") uistuff.keep(self.widgets["autoLogin"], "autoLogin") self.infobar = Gtk.InfoBar() self.infobar.set_message_type(Gtk.MessageType.WARNING) #self.widgets["messagePanelHBox"].pack_start(self.infobar, # expand=False, fill=False) self.widgets["messagePanelHBox"].pack_start(self.infobar, False, False, 0) self.widgets["cancelButton"].connect("clicked", self.onCancel, True) self.widgets["stopButton"].connect("clicked", self.onCancel, False) self.widgets["createNewButton"].connect("clicked", self.onCreateNew) self.widgets["connectButton"].connect("clicked", self.onConnectClicked) self.widgets["progressbar"].set_show_text(True) def _disconnect (self): for obj in self.cids: for cid in self.cids[obj]: if obj.handler_is_connected(cid): obj.disconnect(cid) self.cids.clear() if self.connection is not None: self.connection.close() self.connection = None if self.helperconn is not None: self.helperconn.close() self.helperconn = None self.lounge = None def _cancel (self): if self.connection is not None: self.connection.cancel() if self.helperconn is not None: self.helperconn.cancel() self._disconnect() def show (self): self.widgets["fics_logon"].show() def present (self): self.widgets["fics_logon"].present() def hide (self): self.widgets["fics_logon"].hide() def showConnecting (self): self.widgets["progressbarBox"].show() self.widgets["mainbox"].set_sensitive(False) self.widgets["connectButton"].hide() self.widgets["stopButton"].show() def pulse (): self.widgets["progressbar"].pulse() return not self.connection.isConnected() self.pulser = GObject.timeout_add(30, pulse) def showNormal (self): self.widgets["mainbox"].set_sensitive(True) self.widgets["connectButton"].show() self.widgets["fics_logon"].set_default(self.widgets["connectButton"]) self.widgets["stopButton"].hide() self.widgets["progressbarBox"].hide() self.widgets["progressbar"].set_text("") GObject.source_remove(self.pulser) def showMessage (self, connection, message): self.widgets["progressbar"].set_text(message) def showError (self, connection, error): text = str(error) if isinstance (error, IOError): title = _("Connection Error") elif isinstance (error, LogOnException): title =_("Log on Error") elif isinstance (error, EOFError): title = _("Connection was closed") elif isinstance (error, socket.error): title = _("Connection Error") text = ", ".join(map(str,error.args)) elif isinstance (error, socket.gaierror) or \ isinstance (error, socket.herror): title = _("Address Error") text = ", ".join(map(str,error.args)) elif isinstance (error, AutoLogoutException): title = _("Auto-logout") text = _("You have been logged out because you were idle more than 60 minutes") else: title = str(error.__class__) self.showNormal() content_area = self.infobar.get_content_area() for widget in content_area: content_area.remove(widget) content = Gtk.HBox() image = Gtk.Image() image.set_from_stock(Gtk.STOCK_DIALOG_WARNING, Gtk.IconSize.DIALOG) content.pack_start(image, False, False, 0) vbox = Gtk.VBox() label = Gtk.Label() label.props.xalign = 0 label.props.justify = Gtk.Justification.LEFT label.set_markup("%s" % title) vbox.pack_start(label, True, False, 0) for line in str(text).split("\n"): label = Gtk.Label() label.set_size_request(476, -1) label.props.selectable = True label.props.wrap = True label.props.xalign = 0 label.props.justify = Gtk.Justification.LEFT label.set_markup(line) vbox.pack_start(label, True, False, 0) content.pack_start(vbox, False, False, 7) content_area.add(content) self.widgets["messagePanel"].show_all() def onCreateNew (self, button): webbrowser.open("http://www.freechess.org/Register/index.html") def onConnectClicked (self, button): self.canceled = False self.widgets["messagePanel"].hide() if self.widgets["logOnAsGuest"].get_active(): username = self.widgets["nameEntry"].get_text() password = "" else: username = self.widgets["nameEntry"].get_text() password = self.widgets["passEntry"].get_text() if port: ports = (port,) else: ports = self.widgets["portsEntry"].get_text() ports = list(map(int, re.findall("\d+", ports))) if not 5000 in ports: ports.append(5000) if not 23 in ports: ports.append(23) alternate_host = self.widgets["hostEntry"].get_text() self.showConnecting() self.host = host if host is not None else alternate_host if alternate_host else "freechess.org" self.connection = FICSMainConnection(self.host, ports, username, password) self.helperconn = FICSHelperConnection(self.connection, self.host, ports) self.helperconn.connect("error", self.onHelperConnectionError) self.helperconn.start() for signal, callback in (("connected", self.onConnected), ("error", self.onConnectionError), ("connectingMsg", self.showMessage)): self.cids[self.connection].append( self.connection.connect(signal, callback)) self.connection.start() @idle_add def onHelperConnectionError (self, connection, error): if self.helperconn is not None: self.helperconn.cancel() self.helperconn.close() self.helperconn = None @idle_add def onConnected (self, connection): self.lounge = ICLounge(connection, self.helperconn, self.host) self.hide() self.lounge.show() self.lounge.connect("logout", lambda iclounge: self.onLogout(connection)) self.cids[self.lounge].append(self.lounge.connect("autoLogout", lambda lounge: self.onAutologout(connection))) self.showNormal() self.widgets["messagePanel"].hide() @idle_add def onCancel (self, widget, hide): self.canceled = True if self.connection and self.connection.isConnecting(): self._cancel() self.showNormal() if hide: self.widgets["fics_logon"].hide() @idle_add def onConnectionError (self, connection, error): self._disconnect() if not self.canceled: self.showError(connection, error) self.present() @idle_add def onLogout (self, connection): self._disconnect() @idle_add def onAutologout (self, connection): self._disconnect() self.showError(connection, AutoLogoutException()) self.present() pychess-0.12.2/lib/pychess/ic/__init__.py0000755000175000017470000003404512641567764020533 0ustar tamasusers00000000000000import re from gi.repository import Gtk from pychess import Variants from pychess.Utils.const import * IC_CONNECTED, IC_DISCONNECTED = range(2) IC_POS_ISOLATED, IC_POS_OBSERVING_EXAMINATION, IC_POS_EXAMINATING, \ IC_POS_OP_TO_MOVE, IC_POS_ME_TO_MOVE, IC_POS_OBSERVING, IC_POS_INITIAL = range(7) # RatingType TYPE_BLITZ, TYPE_STANDARD, TYPE_LIGHTNING, TYPE_WILD, \ TYPE_BUGHOUSE, TYPE_CRAZYHOUSE, TYPE_SUICIDE, TYPE_LOSERS, TYPE_ATOMIC, \ TYPE_UNTIMED, TYPE_EXAMINED, TYPE_OTHER = range(12) RATING_TYPES = ( TYPE_BLITZ, TYPE_STANDARD, TYPE_LIGHTNING, TYPE_ATOMIC, TYPE_BUGHOUSE, TYPE_CRAZYHOUSE, TYPE_LOSERS, TYPE_SUICIDE, TYPE_WILD, ) # Rating deviations DEVIATION_NONE, DEVIATION_ESTIMATED, DEVIATION_PROVISIONAL = range(3) IC_STATUS_PLAYING, IC_STATUS_ACTIVE, IC_STATUS_BUSY, IC_STATUS_OFFLINE, \ IC_STATUS_AVAILABLE, IC_STATUS_NOT_AVAILABLE, IC_STATUS_EXAMINING, \ IC_STATUS_IDLE, IC_STATUS_IN_TOURNAMENT, IC_STATUS_RUNNING_SIMUL_MATCH, \ IC_STATUS_UNKNOWN = range(11) TITLES_RE = "(?:\([A-Z*]+\))*" NAMES_RE = "[A-Za-z]+" DEVIATION = { "E": DEVIATION_ESTIMATED, "P": DEVIATION_PROVISIONAL, " ": DEVIATION_NONE, "" : DEVIATION_NONE, } STATUS = { "^": IC_STATUS_PLAYING, " ": IC_STATUS_AVAILABLE, ".": IC_STATUS_IDLE, "#": IC_STATUS_EXAMINING, ":": IC_STATUS_NOT_AVAILABLE, "~": IC_STATUS_RUNNING_SIMUL_MATCH, "&": IC_STATUS_IN_TOURNAMENT, } class GameType (object): def __init__ (self, fics_name, short_fics_name, rating_type, display_text=None, variant_type=NORMALCHESS): self.fics_name = fics_name self.short_fics_name = short_fics_name self.rating_type = rating_type if display_text: self.display_text=display_text self.variant_type = variant_type @property def variant (self): return Variants.variants[self.variant_type] def __repr__ (self): s = "= 0 and gain >= 0 gainminutes = gain > 0 and (gain*60)-1 or 0 if minutes is 0: return GAME_TYPES["untimed"] elif (minutes*60) + gainminutes >= (15*60): return GAME_TYPES["standard"] elif (minutes*60) + gainminutes >= (3*60): return GAME_TYPES["blitz"] else: return GAME_TYPES["lightning"] TYPE_ADMINISTRATOR, TYPE_BLINDFOLD, TYPE_COMPUTER, \ TYPE_TEAM, TYPE_UNREGISTERED, TYPE_CHESS_ADVISOR, \ TYPE_SERVICE_REPRESENTATIVE, TYPE_TOURNAMENT_DIRECTOR, TYPE_MAMER_MANAGER, \ TYPE_GRAND_MASTER, TYPE_INTERNATIONAL_MASTER, TYPE_FIDE_MASTER, \ TYPE_WOMAN_GRAND_MASTER, TYPE_WOMAN_INTERNATIONAL_MASTER, TYPE_WOMAN_FIDE_MASTER,\ TYPE_DUMMY_ACCOUNT, TYPE_CANDIDATE_MASTER, TYPE_FIDE_ARBEITER, TYPE_NATIONAL_MASTER = range(19) TITLE_TYPE_DISPLAY_TEXTS = ( _("Administrator"), _("Blindfold Account"), _("Computer"), _("Team Account"), _("Unregistered"), _("Chess Advisor"), _("Service Representative"), _("Tournament Director"), _("Mamer Manager"), _("Grand Master"), _("International Master"), _("FIDE Master"), _("Woman Grand Master"), _("Woman International Master"), _("Woman FIDE Master"), _("Dummy Account"), ) TITLE_TYPE_DISPLAY_TEXTS_SHORT = ( _("*"), _("B"), _("C"), _("T"), _("U"), _("CA"), _("SR"), _("TD"), _("TM"), _("GM"), _("IM"), _("FM"), _("WGM"), _("WIM"), _("WFM"), _("D"), _("H"), _("CM"), _("FA"), _("NM") ) TITLES = { # From FICS 'help who' "*": TYPE_ADMINISTRATOR, "B": TYPE_BLINDFOLD, "C": TYPE_COMPUTER, "T": TYPE_TEAM, "U": TYPE_UNREGISTERED, "CA": TYPE_CHESS_ADVISOR, "SR": TYPE_SERVICE_REPRESENTATIVE, "TD": TYPE_TOURNAMENT_DIRECTOR, "TM": TYPE_MAMER_MANAGER, "GM": TYPE_GRAND_MASTER, "IM": TYPE_INTERNATIONAL_MASTER, "FM": TYPE_FIDE_MASTER, "WFM": TYPE_WOMAN_FIDE_MASTER, "WIM": TYPE_WOMAN_INTERNATIONAL_MASTER, "WGM": TYPE_WOMAN_GRAND_MASTER, "D": TYPE_DUMMY_ACCOUNT, "H": TYPE_SERVICE_REPRESENTATIVE, "CM": TYPE_CANDIDATE_MASTER, "FA": TYPE_FIDE_ARBEITER, "NM": TYPE_NATIONAL_MASTER, } HEX_TO_TITLE = { 0x1 : TYPE_UNREGISTERED, 0x2 : TYPE_COMPUTER, 0x4 : TYPE_GRAND_MASTER, 0x8 : TYPE_INTERNATIONAL_MASTER, 0x10 : TYPE_FIDE_MASTER, 0x20 : TYPE_WOMAN_GRAND_MASTER, 0x40 : TYPE_WOMAN_INTERNATIONAL_MASTER, 0x80 : TYPE_WOMAN_FIDE_MASTER, } def parse_title_hex (titlehex): titles = set() for key in HEX_TO_TITLE: if int(titlehex, 16) & key: titles.add(HEX_TO_TITLE[key]) return titles def get_infobarmessage_content (player, text, gametype=None): content = Gtk.HBox() icon = Gtk.Image() icon.set_from_pixbuf(player.getIcon(size=32, gametype=gametype)) content.pack_start(icon, False, False, 4) label = Gtk.Label() label.set_markup(player.getMarkup(gametype=gametype)) content.pack_start(label, False, False, 0) label = Gtk.Label() label.set_markup(text) content.pack_start(label, False, False, 0) return content def get_infobarmessage_content2 (player, heading_text, message_text, gametype=None): hbox = Gtk.HBox() image = Gtk.Image() image.set_from_pixbuf(player.getIcon(size=24, gametype=gametype)) hbox.pack_start(image, False, False, 0) label = Gtk.Label() markup = player.getMarkup(gametype=gametype, long_titles=False) label.set_markup(markup + heading_text) hbox.pack_start(label, False, False, 0) vbox = Gtk.VBox() vbox.pack_start(hbox, False, False, 0) label = Gtk.Label() label.props.xalign = 0 label.props.xpad = 4 label.props.justify = Gtk.Justification.LEFT label.props.wrap = True label.set_width_chars(70) label.set_text(message_text) vbox.pack_start(label, False, False, 5) return vbox """ Internal command codes used in FICS block mode (see "help block_codes" and "help iv_block"). Used mostly by internal library functions. BLOCK_ variables are message boundary markers. BLKCMD_ variables are command codes. """ BLOCK_START = chr(21) # \U BLOCK_SEPARATOR = chr(22) # \V BLOCK_END = chr(23) # \W BLOCK_POSE_START = chr(24) # \X BLOCK_POSE_END = chr(25) # \Y BLKCMD_NULL = 0 BLKCMD_GAME_MOVE = 1 BLKCMD_ABORT = 10 BLKCMD_ACCEPT = 11 BLKCMD_ADDLIST = 12 BLKCMD_ADJOURN = 13 BLKCMD_ALLOBSERVERS = 14 BLKCMD_ASSESS = 15 BLKCMD_BACKWARD = 16 BLKCMD_BELL = 17 BLKCMD_BEST = 18 BLKCMD_BNAME = 19 BLKCMD_BOARDS = 20 BLKCMD_BSETUP = 21 BLKCMD_BUGWHO = 22 BLKCMD_CBEST = 23 BLKCMD_CLEARMESSAGES = 24 BLKCMD_CLRSQUARE = 25 BLKCMD_CONVERT_BCF = 26 BLKCMD_CONVERT_ELO = 27 BLKCMD_CONVERT_USCF = 28 BLKCMD_COPYGAME = 29 BLKCMD_CRANK = 30 BLKCMD_CSHOUT = 31 BLKCMD_DATE = 32 BLKCMD_DECLINE = 33 BLKCMD_DRAW = 34 BLKCMD_ECO = 35 BLKCMD_EXAMINE = 36 BLKCMD_FINGER = 37 BLKCMD_FLAG = 38 BLKCMD_FLIP = 39 BLKCMD_FMESSAGE = 40 BLKCMD_FOLLOW = 41 BLKCMD_FORWARD = 42 BLKCMD_GAMES = 43 BLKCMD_GETGI = 44 BLKCMD_GETPI = 45 BLKCMD_GINFO = 46 BLKCMD_GOBOARD = 47 BLKCMD_HANDLES = 48 BLKCMD_HBEST = 49 BLKCMD_HELP = 50 BLKCMD_HISTORY = 51 BLKCMD_HRANK = 52 BLKCMD_INCHANNEL = 53 BLKCMD_INDEX = 54 BLKCMD_INFO = 55 BLKCMD_ISET = 56 BLKCMD_IT = 57 BLKCMD_IVARIABLES = 58 BLKCMD_JKILL = 59 BLKCMD_JOURNAL = 60 BLKCMD_JSAVE = 61 BLKCMD_KIBITZ = 62 BLKCMD_LIMITS = 63 BLKCMD_LINE = 64 # Not on FICS BLKCMD_LLOGONS = 65 BLKCMD_LOGONS = 66 BLKCMD_MAILHELP = 67 BLKCMD_MAILMESS = 68 BLKCMD_MAILMOVES = 69 BLKCMD_MAILOLDMOVES = 70 BLKCMD_MAILSOURCE = 71 BLKCMD_MAILSTORED = 72 BLKCMD_MATCH = 73 BLKCMD_MESSAGES = 74 BLKCMD_MEXAMINE = 75 BLKCMD_MORETIME = 76 BLKCMD_MOVES = 77 BLKCMD_NEWS = 78 BLKCMD_NEXT = 79 BLKCMD_OBSERVE = 80 BLKCMD_OLDMOVES = 81 BLKCMD_OLDSTORED = 82 BLKCMD_OPEN = 83 BLKCMD_PARTNER = 84 BLKCMD_PASSWORD = 85 BLKCMD_PAUSE = 86 BLKCMD_PENDING = 87 BLKCMD_PFOLLOW = 88 BLKCMD_POBSERVE = 89 BLKCMD_PREFRESH = 90 BLKCMD_PRIMARY = 91 BLKCMD_PROMOTE = 92 BLKCMD_PSTAT = 93 BLKCMD_PTELL = 94 BLKCMD_PTIME = 95 BLKCMD_QTELL = 96 BLKCMD_QUIT = 97 BLKCMD_RANK = 98 BLKCMD_RCOPYGAME = 99 BLKCMD_RFOLLOW = 100 BLKCMD_REFRESH = 101 BLKCMD_REMATCH = 102 BLKCMD_RESIGN = 103 BLKCMD_RESUME = 104 BLKCMD_REVERT = 105 BLKCMD_ROBSERVE = 106 BLKCMD_SAY = 107 BLKCMD_SERVERS = 108 BLKCMD_SET = 109 BLKCMD_SHOUT = 110 BLKCMD_SHOWLIST = 111 BLKCMD_SIMABORT = 112 BLKCMD_SIMALLABORT = 113 BLKCMD_SIMADJOURN = 114 BLKCMD_SIMALLADJOURN = 115 BLKCMD_SIMGAMES = 116 BLKCMD_SIMMATCH = 117 BLKCMD_SIMNEXT = 118 BLKCMD_SIMOBSERVE = 119 BLKCMD_SIMOPEN = 120 BLKCMD_SIMPASS = 121 BLKCMD_SIMPREV = 122 BLKCMD_SMOVES = 123 BLKCMD_SMPOSITION = 124 BLKCMD_SPOSITION = 125 BLKCMD_STATISTICS = 126 BLKCMD_STORED = 127 BLKCMD_STYLE = 128 BLKCMD_SWITCH = 130 BLKCMD_TAKEBACK = 131 BLKCMD_TELL = 132 BLKCMD_TIME = 133 BLKCMD_TOMOVE = 134 BLKCMD_TOURNSET = 135 BLKCMD_UNALIAS = 136 BLKCMD_UNEXAMINE = 137 BLKCMD_UNOBSERVE = 138 BLKCMD_UNPAUSE = 139 BLKCMD_UPTIME = 140 BLKCMD_USCF = 141 BLKCMD_USTAT = 142 BLKCMD_VARIABLES = 143 BLKCMD_WHENSHUT = 144 BLKCMD_WHISPER = 145 BLKCMD_WHO = 146 BLKCMD_WITHDRAW = 147 BLKCMD_WNAME = 148 BLKCMD_XKIBITZ = 149 BLKCMD_XTELL = 150 BLKCMD_XWHISPER = 151 BLKCMD_ZNOTIFY = 152 BLKCMD_REPLY = 153 # Not on FICS BLKCMD_SUMMON = 154 BLKCMD_SEEK = 155 BLKCMD_UNSEEK = 156 BLKCMD_SOUGHT = 157 BLKCMD_PLAY = 158 BLKCMD_ALIAS = 159 BLKCMD_NEWBIES = 160 BLKCMD_SR = 161 BLKCMD_CA = 162 BLKCMD_TM = 163 BLKCMD_GETGAME = 164 BLKCMD_CCNEWSE = 165 BLKCMD_CCNEWSF = 166 BLKCMD_CCNEWSI = 167 BLKCMD_CCNEWSP = 168 BLKCMD_CCNEWST = 169 BLKCMD_CSNEWSE = 170 BLKCMD_CSNEWSF = 171 BLKCMD_CSNEWSI = 172 BLKCMD_CSNEWSP = 173 BLKCMD_CSNEWST = 174 BLKCMD_CTNEWSE = 175 BLKCMD_CTNEWSF = 176 BLKCMD_CTNEWSI = 177 BLKCMD_CTNEWSP = 178 BLKCMD_CTNEWST = 179 BLKCMD_CNEWS = 180 BLKCMD_SNEWS = 181 BLKCMD_TNEWS = 182 BLKCMD_RMATCH = 183 BLKCMD_RSTAT = 184 BLKCMD_CRSTAT = 185 BLKCMD_HRSTAT = 186 BLKCMD_GSTAT = 187 # Note admin codes start from 300. BLKCMD_ERROR_BADCOMMAND = 512 BLKCMD_ERROR_BADPARAMS = 513 BLKCMD_ERROR_AMBIGUOUS = 514 BLKCMD_ERROR_RIGHTS = 515 BLKCMD_ERROR_OBSOLETE = 516 BLKCMD_ERROR_REMOVED = 517 BLKCMD_ERROR_NOTPLAYING = 518 BLKCMD_ERROR_NOSEQUENCE = 519 BLKCMD_ERROR_LENGTH = 520 LIMIT_BLKCMD_ERRORS=500 pychess-0.12.2/lib/pychess/ic/managers/0000755000175000017470000000000012653231274020171 5ustar tamasusers00000000000000pychess-0.12.2/lib/pychess/ic/managers/ChatManager.py0000755000175000017470000004006712647472475022744 0ustar tamasusers00000000000000import threading import re from math import ceil import time import operator from gi.repository import GLib from gi.repository import GObject from pychess.compat import unichr from pychess.System.Log import log from pychess.ic.FICSObjects import FICSPlayer from pychess.ic.__init__ import * titles = "(?:\([A-Z*]+\))*" names = "([A-Za-z]+)"+titles titlesC = re.compile(titles) namesC = re.compile(names) ratings = "\(\s*([0-9\ \-\+]{1,4}[P E]?|UNR)\)" CHANNEL_SHOUT = "shout" CHANNEL_CSHOUT = "cshout" class ChatManager (GObject.GObject): __gsignals__ = { 'channelMessage' : (GObject.SignalFlags.RUN_FIRST, None, (str, bool, bool, str, str)), 'kibitzMessage' : (GObject.SignalFlags.RUN_FIRST, None, (str, int, str)), 'whisperMessage' : (GObject.SignalFlags.RUN_FIRST, None, (str, int, str)), 'privateMessage' : (GObject.SignalFlags.RUN_FIRST, None, (str, str, bool, str)), 'bughouseMessage' : (GObject.SignalFlags.RUN_FIRST, None, (str, str)), 'announcement' : (GObject.SignalFlags.RUN_FIRST, None, (str,)), 'arrivalNotification': (GObject.SignalFlags.RUN_FIRST, None, (object,)), 'departedNotification': (GObject.SignalFlags.RUN_FIRST, None, (object,)), 'channelAdd' : (GObject.SignalFlags.RUN_FIRST, None, (str,)), 'channelRemove' : (GObject.SignalFlags.RUN_FIRST, None, (str,)), 'channelJoinError': (GObject.SignalFlags.RUN_FIRST, None, (str, str)), 'channelsListed': (GObject.SignalFlags.RUN_FIRST, None, (object,)), 'channelLog' : (GObject.SignalFlags.RUN_FIRST, None, (str, int, str, str)), 'toldChannel' : (GObject.SignalFlags.RUN_FIRST, None, (str, int)), 'receivedChannels' : (GObject.SignalFlags.RUN_FIRST, None, (str, object)), 'receivedNames' : (GObject.SignalFlags.RUN_FIRST, None, (str, object)), 'observers_received' : (GObject.SignalFlags.RUN_FIRST, None, (str, str)), } def __init__ (self, connection): GObject.GObject.__init__(self) self.connection = connection self.connection.expect_line (self.onPrivateMessage, "%s(\*)?(?:\[\d+\])? (?:tells you|says): (.*)" % names) self.connection.expect_line (self.onAnnouncement, "\s*\*\*ANNOUNCEMENT\*\* (.*)") self.connection.expect_line (self.onChannelMessage, "%s(\*)?\((\d+)\): (.*)" % names) self.connection.expect_line (self.onShoutMessage, "%s(\*)? (c-)?shouts: (.*)" % names) self.connection.expect_line (self.onShoutMessage, "--> %s(\*)?:? (.*)" % names) self.connection.expect_line (self.onKibitzMessage, "%s%s\[(\d+)\] kibitzes: (.*)" % (names, ratings)) self.connection.expect_line (self.onWhisperMessage, "%s%s\[(\d+)\] whispers: (.*)" % (names, ratings)) self.connection.expect_line(self.onArrivalNotification, "Notification: %s has arrived\." % names) self.connection.expect_line(self.onDepartedNotification, "Notification: %s has departed\." % names) self.connection.expect_fromto (self.onChannelList, "channels only for their designated topics.", "SPECIAL NOTE") self.connection.expect_line (lambda m: GLib.idle_add(self.emit, 'channelAdd', m.groups()[0]), "\[(\d+)\] added to your channel list.") self.connection.expect_line (lambda m: GLib.idle_add(self.emit, 'channelRemove', m.groups()[0]), "\[(\d+)\] removed to your channel list.") self.connection.expect_line (lambda m: GLib.idle_add(self.emit, 'channelJoinError', *m.groups()), "Only (.+?) may join channel (\d+)\.") self.connection.expect_line (self.getNoChannelPlayers, "Channel (\d+) is empty\.") self.connection.expect_fromto (self.getChannelPlayers, "Channel (\d+)(?: \"(\w+)\")?: (.+)", "(\d+) player(?: is|s are) in channel \d+\.") self.connection.expect_fromto (self.gotPlayerChannels, "%s is in the following channels:" % names, "(?!(?:\d+\s+)+)") #self.connection.expect_line (self.toldChannel, # '\(told (\d+) players in channel (\d+) ".+"\)') #(told Chronatog) #Only chess advisers and admins may join channel 63. #Only (.+?) may sey send tells to channel (\d+). #Only admins may send tells to channel 0. #Only registered users may send tells to channels other than 4, 7 and 53. self.currentLogChannel = None self.connection.expect_line (self.onChannelLogStart, ":Channel (\d+|shout|c-shout) log for the last \d+ minutes:$") self.connection.expect_line (self.onChannelLogLine, ":\[(\d+):(\d+):(\d+)\] (?:(?:--> )?%s(?: shouts)?)\S* (.+)$" % names) self.connection.expect_line (self.onChannelLogBreak, ":Use \"tell chLog Next\" to print more.$") #TODO handling of this case is nessesary for console: #fics% tell 1 hi #You are not in channel 1, auto-adding you if possible. # Setting 'Lang' is a workaround for # http://code.google.com/p/pychess/issues/detail?id=376 # and can be removed when conversion to FICS block mode is done self.connection.client.run_command("set Lang English") self.connection.client.run_command("set height 240") self.connection.client.run_command("inchannel %s" % self.connection.username) self.connection.client.run_command("help channel_list") self.channels = {} #Observing 112 [DrStupp vs. hajaK]: pgg (1 user) self.connection.expect_line (self.get_allob_list, '(?:Observing|Examining) (\d+) \[[A-Za-z]+ vs. [A-Za-z]+\]: (.+) \(') self.connection.expect_line (self.on_allob_no, "No one is observing game (\d+).") def get_allob_list(self, match): """ Description: Processes the returning pattern matched of the FICS allob command extracts out the gameno and a list of observers before emmiting them for collection by the observers view match: (re.reg-ex) is the complied matching pattern for processing """ obs_dic = {} gameno = match.group(1) observers = match.group(2) oblist = observers.split() for player in oblist: if '(U)' not in player : # deals with unregistered players try: if '(' in player : # deals with admin and multi titled players player,rest = player.split('(',1) ficsplayer = self.connection.players[FICSPlayer(player)] obs_dic[player] = ficsplayer.getRatingByGameType(GAME_TYPES['standard']) except KeyError: obs_dic[player] = 0 #print("player %s is not in self.connection.players" % player) else : obs_dic[player] = 0 obs_sorted = sorted(obs_dic.items(), key=operator.itemgetter(1),reverse=True) obs_str = "" for toople in obs_sorted : player,rating = toople if rating == 0 : obs_str += "%s " % player # Don't print ratings for guest accounts else: obs_str += "%s(%s) " % (player, rating) self.emit('observers_received',gameno,obs_str) get_allob_list.BLKCMD = BLKCMD_ALLOBSERVERS def on_allob_no(self, match): gameno = match.group(1) self.emit('observers_received', gameno, "") on_allob_no.BLKCMD = BLKCMD_ALLOBSERVERS def getChannels(self): return self.channels def getJoinedChannels(self): channels = self.connection.lvm.getList("channel") return channels channelListItem = re.compile("((?:\d+,?)+)\s*(.*)") def onChannelList(self, matchlist): self.channels = [(CHANNEL_SHOUT, _("Shout")), (CHANNEL_CSHOUT, _("Chess Shout"))] numbers = set(range(256)) #TODO: Use limits->Server->Channels for line in matchlist[1:-1]: match = self.channelListItem.match(line) if not match: continue ids, desc = match.groups() for id in ids.split(","): numbers.remove(int(id)) self.channels.append((id, desc)) for i in numbers: self.channels.append((str(i), _("Unofficial channel %d" % i))) GLib.idle_add(self.emit, 'channelsListed', self.channels) def getNoChannelPlayers (self, match): channel = match.groups()[0] GLib.idle_add(self.emit, 'receivedNames', channel, []) def getChannelPlayers(self, matchlist): channel, name, people = matchlist[0].groups() people += " " + " ".join(matchlist[1:-1]) people = namesC.findall(titlesC.sub("",people)) GLib.idle_add(self.emit, 'receivedNames', channel, people) def gotPlayerChannels(self, matchlist): name = matchlist[0].groups() list = [] for line in matchlist[1:-1]: list += line.split() def onPrivateMessage (self, match): name, isadmin, text = match.groups() text = self.entityDecode(text) GLib.idle_add(self.emit, "privateMessage", name, "title", isadmin, text) def onAnnouncement (self, match): text = match.groups()[0] text = self.entityDecode(text) GLib.idle_add(self.emit, "announcement", text) def onChannelMessage (self, match): name, isadmin, channel, text = match.groups() text = self.entityDecode(text) isme = name.lower() == self.connection.username.lower() GLib.idle_add(self.emit, "channelMessage", name, isadmin, isme, channel, text) def onShoutMessage (self, match): if len(match.groups()) == 4: name, isadmin, type, text = match.groups() elif len(match.groups()) == 3: name, isadmin, text = match.groups() type = "" text = self.entityDecode(text) isme = name.lower() == self.connection.username.lower() # c-shout should be used ONLY for chess-related messages, such as # questions about chess or announcing being open for certain kinds of # chess matches. Use "shout" for non-chess messages. # t-shout is used to invite to tournaments if type == "c-": GLib.idle_add(self.emit, "channelMessage", name, isadmin, isme, CHANNEL_CSHOUT, text) else: GLib.idle_add(self.emit, "channelMessage", name, isadmin, isme, CHANNEL_SHOUT, text) def onKibitzMessage (self, match): name, rating, gameno, text = match.groups() text = self.entityDecode(text) GLib.idle_add(self.emit, "kibitzMessage", name, int(gameno), text) def onWhisperMessage (self, match): name, rating, gameno, text = match.groups() text = self.entityDecode(text) GLib.idle_add(self.emit, "whisperMessage", name, int(gameno), text) def onArrivalNotification (self, match): name = match.groups()[0] try: player = self.connection.players.get(FICSPlayer(name)) except KeyError: return if player.name not in self.connection.notify_users: self.connection.notify_users.append(player.name) GLib.idle_add(self.emit, "arrivalNotification", player) def onDepartedNotification (self, match): name = match.groups()[0] try: player = self.connection.players.get(FICSPlayer(name)) except KeyError: return GLib.idle_add(self.emit, "departedNotification", player) def toldChannel (self, match): amount, channel = match.groups() GLib.idle_add(self.emit, "toldChannel", channel, int(amount)) def onChannelLogStart (self, match): channel, = match.groups() self.currentLogChannel = channel def onChannelLogLine (self, match): if not self.currentLogChannel: log.warning("Received log line before channel was set") return h, m, s, handle, text = match.groups() time = self.convTime(int(h), int(m), int(s)) text = self.entityDecode(text) GLib.idle_add(self.emit, "channelLog", self.currentLogChannel, time, handle, text) def onChannelLogBreak (self, match): self.connection.client.run_command("xtell chlog Next") def convTime (self, h, m, s): # Convert to timestamp t1, t2, t3, t4, t5, t6, t7, t8, t9 = time.localtime() tstamp = time.mktime((t1, t2, t3, h, m, s, 0, 0, 0)) # Difference to now in hours dif = (tstamp-time.time())/60./60. # As we know there is maximum 30 minutes in difference, we can guess when the # message was sent, without knowing the sending time zone return tstamp - ceil(dif)*60*60 entityExpr = re.compile("&#x([a-f0-9]+);") def entityDecode (self, text): return self.entityExpr.sub(lambda m: unichr(int(m.groups()[0],16)), text) def entityEncode (self, text): buf = [] for c in text: if not 32 <= ord(c) <= 127: c = "&#" + hex(ord(c))[1:] + ";" buf.append(c) return "".join(buf) def getChannelLog (self, channel, minutes=30): """ Channel can be channel_id, shout or c-shout """ assert 1 <= minutes <= 120 # Using the chlog bot self.connection.client.run_command("xtell chlog show %s -t %d" % (channel,minutes)) def getPlayersChannels (self, player): self.connection.client.run_command("inchannel %s" % player) def getPeopleInChannel (self, channel): if channel in (CHANNEL_SHOUT, CHANNEL_CSHOUT): people = self.connection.players.get_online_playernames() GLib.idle_add(self.emit, 'receivedNames', channel, people) self.connection.client.run_command("inchannel %s" % channel) def joinChannel (self, channel): self.connection.client.run_command("+channel %s" % channel) def removeChannel (self, channel): self.connection.client.run_command("-channel %s" % channel) def mayTellChannel (self, channel): if self.connection.isRegistred() or channel in ("4", "7", "53"): return True return False def tellPlayer (self, player, message): message = self.entityEncode(message) self.connection.client.run_command("tell %s %s" % (player, message)) def tellChannel (self, channel, message): message = self.entityEncode(message) if channel == CHANNEL_SHOUT: self.connection.client.run_command("shout %s" % message) elif channel == CHANNEL_CSHOUT: self.connection.client.run_command("cshout %s" % message) else: self.connection.client.run_command("tell %s %s" % (channel, message)) def tellAll (self, message): message = self.entityEncode(message) self.connection.client.run_command("shout %s" % message) def tellGame (self, gameno, message): message = self.entityEncode(message) self.connection.client.run_command("xkibitz %s %s" % (gameno, message)) def tellOpponent (self, message): message = self.entityEncode(message) self.connection.client.run_command("say %s" % message) def tellBughousePartner (self, message): message = self.stripChars(message) self.connection.client.run_command("ptell %s" % message) def tellUser (self, player, message): IS_TD = False if IS_TD: MAX_COM_SIZE = 1024 #TODO: Get from limits for i in range(0,len(message),MAX_COM_SIZE): chunk = message[i:i+MAX_COM_SIZE] chunk = chunk.replace("\n", "\\n") chunk = self.entityEncode(chunk) self.connection.client.run_command("qell %s %s" % (player, chunk)) else: for line in message.strip().split("\n"): self.tellPlayer(player, line) def whisper(self, message): message = self.entityEncode(message) self.connection.client.run_command("whisper %s" % message) pychess-0.12.2/lib/pychess/ic/managers/HelperManager.py0000755000175000017470000002707112651177546023300 0ustar tamasusers00000000000000import re from gi.repository import GObject from pychess.Utils.const import * from pychess.ic import * from pychess.ic.FICSObjects import * from pychess.ic.managers.BoardManager import parse_reason from pychess.System.Log import log rated = "(rated|unrated)" colors = "(?:\[(white|black)\]\s?)?" ratings = "([\d\+\- ]{1,4})" titleslist = "(?:GM|IM|FM|WGM|WIM|WFM|TM|SR|TD|CA|CM|FA|NM|C|U|D|B|T|H|\*)" titleslist_re = re.compile(titleslist) titles = "((?:\(%s\))+)?" % titleslist names = "([a-zA-Z]+)%s" % titles mf = "(?:([mf]{1,2})\s?)?" whomatch = "(?:(?:([-0-9+]{1,4})([\^~:\#. &])%s))" % names whomatch_re = re.compile(whomatch) class HelperManager (GObject.GObject): def __init__ (self, helperconn, connection): GObject.GObject.__init__(self) self.helperconn = helperconn self.connection = connection self.helperconn.expect_line (self.on_game_list, "(\d+) %s (\w+)\s+%s (\w+)\s+\[(p| )(%s)(u|r)\s*(\d+)\s+(\d+)\]\s*(\d:)?(\d+):(\d+)\s*-\s*(\d:)?(\d+):(\d+) \(\s*(\d+)-\s*(\d+)\) (W|B):\s*(\d+)" % (ratings, ratings, "|".join(GAME_TYPES_BY_SHORT_FICS_NAME.keys()))) self.helperconn.expect_line (self.on_game_list_end, "(\d+) games displayed .*") if self.helperconn.FatICS or self.helperconn.USCN: self.helperconn.expect_line (self.on_player_who, "%s(?:\s{2,}%s)+" % (whomatch, whomatch)) self.helperconn.expect_line (self.on_player_connect, "\[([A-Za-z]+) has connected\.\]") self.helperconn.expect_line (self.on_player_disconnect, "\[([A-Za-z]+) has disconnected\.\]") else: # New ivar pin # http://www.freechess.org/Help/HelpFiles/new_features.html self.helperconn.expect_line (self.on_player_whoI, "([A-Za-z]+)([\^~:\#. &])(\\d{2})" + "(\d{1,4})([P E])" * 8 + "(\d{1,4})([PE]?)") self.helperconn.expect_line (self.on_player_whoI_end, "(\d+) Players Displayed.") self.helperconn.expect_line (self.on_player_connectI, " ([A-Za-z]+)([\^~:\#. &])(\\d{2})" + "(\d{1,4})([P E])" * 8 + "(\d{1,4})([PE]?)") self.helperconn.expect_line (self.on_player_disconnectI, " ([A-Za-z]+)") self.helperconn.expect_line (self.on_game_add, "\{Game (\d+) \(([A-Za-z]+) vs\. ([A-Za-z]+)\) (?:Creating|Continuing) (u?n?rated) ([^ ]+) match\.\}$") self.helperconn.expect_line (self.on_game_remove, "\{Game (\d+) \(([A-Za-z]+) vs\. ([A-Za-z]+)\) ([A-Za-z']+ .+)\} (\*|1/2-1/2|1-0|0-1)$") self.helperconn.expect_line (self.on_player_unavailable, "%s is no longer available for matches." % names) self.helperconn.expect_fromto (self.on_player_available, "%s Blitz \(%s\), Std \(%s\), Wild \(%s\), Light\(%s\), Bug\(%s\)" % (names, ratings, ratings, ratings, ratings, ratings), "is now available for matches.") self.players = [] #b: blitz l: lightning u: untimed e: examined game #s: standard w: wild x: atomic z: crazyhouse #B: Bughouse L: losers S: Suicide if self.helperconn.FatICS or self.helperconn.USCN: self.helperconn.client.run_command("who") else: self.helperconn.client.run_command("who IbslwBzSLx") self.games = [] if self.helperconn.FatICS or self.helperconn.USCN: self.helperconn.client.run_command("games") else: self.helperconn.client.run_command("games /bslwBzSLx") def on_game_list (self, match): gameno, wrating, wname, brating, bname, private, shorttype, rated, min, \ inc, whour, wmin, wsec, bhour, bmin, bsec, wmat, bmat, color, movno = match.groups() try: gametype = GAME_TYPES_BY_SHORT_FICS_NAME[shorttype] except KeyError: return wplayer = self.connection.players.get(FICSPlayer(wname)) bplayer = self.connection.players.get(FICSPlayer(bname)) game = FICSGame(wplayer, bplayer, gameno=int(gameno), rated=(rated == "r"), private=(private == "p"), minutes=int(min), inc=int(inc), game_type=gametype) for player, rating in ((wplayer, wrating), (bplayer, brating)): if player.status != IC_STATUS_PLAYING: player.status = IC_STATUS_PLAYING if player.game != game: player.game = game rating = self.parseRating(rating) if gametype.rating_type in player.ratings and \ player.ratings[gametype.rating_type].elo != rating: player.ratings[gametype.rating_type].elo = rating self.games.append(self.connection.games.get(game, emit=False)) on_game_list.BLKCMD = BLKCMD_GAMES def on_game_list_end(self, match): self.connection.games.emit("FICSGameCreated", self.games) on_game_list_end.BLKCMD = BLKCMD_GAMES def on_game_add (self, match): gameno, wname, bname, rated, game_type = match.groups() if game_type not in GAME_TYPES: return wplayer = self.connection.players.get(FICSPlayer(wname)) bplayer = self.connection.players.get(FICSPlayer(bname)) game = FICSGame(wplayer, bplayer, gameno=int(gameno), rated=(rated == "rated"), game_type=GAME_TYPES[game_type]) for player in (wplayer, bplayer): if player.status != IC_STATUS_PLAYING: player.status = IC_STATUS_PLAYING if player.game != game: player.game = game self.connection.games.get(game) def on_game_remove (self, match): gameno, wname, bname, comment, result = match.groups() result, reason = parse_reason(reprResult.index(result), comment, wname=wname) wplayer = FICSPlayer(wname) try: wplayer = self.connection.players.get(wplayer, create=False) wplayer.restore_previous_status() # no status update will be sent by # FICS if the player doesn't become available, so we restore # previous status first (not necessarily true, but the best guess) except KeyError: pass bplayer = FICSPlayer(bname) try: bplayer = self.connection.players.get(bplayer, create=False) bplayer.restore_previous_status() except KeyError: pass game = FICSGame(wplayer, bplayer, gameno=int(gameno), result=result, reason=reason) if wplayer.game is not None: game.rated = wplayer.game.rated game = self.connection.games.get(game, emit=False) self.connection.games.game_ended(game) # Do this last to give anybody connected to the game's signals a chance # to disconnect from them first wplayer.game = None bplayer.game = None @staticmethod def parseRating (rating): if rating[0] == " ": rating = rating[1:] return int(rating) if rating.isdigit() else 0 @staticmethod def parseTitles (titles): _titles = set() if titles: for title in titleslist_re.findall(titles): if title in TITLES: _titles.add(TITLES[title]) return _titles def on_player_connectI (self, match, set_online=True): # bslwBzSLx # gbtami 001411E1663P1483P1720P0P1646P0P0P1679P name, status, titlehex, blitz, blitzdev, std, stddev, light, lightdev, \ wild, wilddev, bughouse, bughousedev, crazyhouse, crazyhousedev, \ suicide, suicidedev, losers, losersdev, atomic, atomicdev = match.groups() player = self.connection.players.get(FICSPlayer(name)) self.players.append(player) titles = parse_title_hex(titlehex) if not player.titles >= titles: player.titles |= titles for rtype, elo, dev in \ ((TYPE_BLITZ, blitz, blitzdev), (TYPE_STANDARD, std, stddev), (TYPE_LIGHTNING, light, lightdev), (TYPE_ATOMIC, atomic, atomicdev), (TYPE_WILD, wild, wilddev), (TYPE_CRAZYHOUSE, crazyhouse, crazyhousedev), (TYPE_BUGHOUSE, bughouse, bughousedev), (TYPE_LOSERS, losers, losersdev), (TYPE_SUICIDE, suicide, suicidedev)): r = self.parseRating(elo) if player.ratings[rtype].elo != r: player.ratings[rtype].elo = r player.ratings[rtype].deviation = DEVIATION[dev] # do last so rating info is there when notifications are generated status = STATUS[status] if player.status != status: player.status = status if set_online and not player.online: player.online = True def on_player_disconnectI (self, match): name = match.groups()[0] self.connection.players.player_disconnected(FICSPlayer(name)) def on_player_whoI (self, match): self.on_player_connectI(match) on_player_whoI.BLKCMD = BLKCMD_WHO def on_player_whoI_end (self, match): self.connection.players.emit("FICSPlayerEntered", self.players) on_player_whoI_end.BLKCMD = BLKCMD_WHO def on_player_who (self, match): for blitz, status, name, titles in whomatch_re.findall(match.string): player = self.connection.players.get(FICSPlayer(name)) if not player.online: player.online = True status = STATUS[status] if player.status != status: player.status = status titles = self.parseTitles(titles) if not player.titles >= titles: player.titles |= titles blitz = self.parseRating(blitz) if player.ratings[TYPE_BLITZ].elo != blitz: player.ratings[TYPE_BLITZ].elo = blitz def on_player_connect (self, match): name = match.groups()[0] player = self.connection.players.get(FICSPlayer(name)) self.players.append(player) player.online = True def on_player_disconnect (self, match): name = match.groups()[0] self.connection.players.player_disconnected(FICSPlayer(name)) def on_player_unavailable (self, match): name, titles = match.groups() player = self.connection.players.get(FICSPlayer(name)) titles = self.parseTitles(titles) if not player.titles >= titles: player.titles |= titles # we get here after players start a game, so we make sure that we don't # overwrite IC_STATUS_PLAYING if player.game is None and \ player.status not in (IC_STATUS_PLAYING, IC_STATUS_NOT_AVAILABLE): player.status = IC_STATUS_NOT_AVAILABLE def on_player_available (self, matches): name, titles, blitz, std, wild, light, bughouse = matches[0].groups() player = self.connection.players.get(FICSPlayer(name)) if not player.online: player.online = True if player.status != IC_STATUS_AVAILABLE: player.status = IC_STATUS_AVAILABLE titles = self.parseTitles(titles) if not player.titles >= titles: player.titles |= titles for rtype, rating in ( (TYPE_BLITZ, blitz), (TYPE_STANDARD, std), (TYPE_LIGHTNING, light), (TYPE_WILD, wild), (TYPE_BUGHOUSE, bughouse)): rating = self.parseRating(rating) if player.ratings[rtype].elo != rating: player.ratings[rtype].elo = rating pychess-0.12.2/lib/pychess/ic/managers/NewsManager.py0000755000175000017470000000371612642476534022774 0ustar tamasusers00000000000000import re from gi.repository import GObject from pychess.ic import BLKCMD_NEWS days = "(Mon|Tue|Wed|Thu|Fri|Sat|Sun)" months = "(Jan|Feb|Mar|Apr|May|Jun|Jul|Aug|Sep|Oct|Nov|Dec)" AMOUNT_OF_NEWSITEMS = 5 FICS_SENDS = 10 class NewsManager (GObject.GObject): __gsignals__ = { 'readingNews' : (GObject.SignalFlags.RUN_FIRST, None, (object,)), 'readNews' : (GObject.SignalFlags.RUN_FIRST, None, (object,)), } def __init__ (self, connection): GObject.GObject.__init__(self) self.connection = connection self.news = {} self.connection.expect_line (self.onNewsItem, "(\d+) \(%s, %s +(\d+)\) (.+)" % (days, months)) self.connection.client.run_command("news") def onNewsItem (self, match): no, weekday, month, day, title = match.groups() line = match.group() self.news[no] = [_(weekday), _(month), day, title, ""] self.emit("readingNews", self.news[no]) if len(self.news) <= AMOUNT_OF_NEWSITEMS: # the "news" command, gives us the latest 10 news items from the # oldest to the newest. # We only want the 5 newest, so we skip the first 5 entries. return elif len(self.news) == FICS_SENDS: # No need to check the expression any more self.connection.unexpect (self.onNewsItem) def onFullNewsItem (matchlist): self.connection.unexpect(onFullNewsItem) details = "" for line in matchlist[1:-1]: if line.startswith("\\"): line = " "+line[1:].strip() details += line.replace(" ", " ") self.news[no][4] = details self.emit("readNews", self.news[no]) self.connection.expect_fromto (onFullNewsItem, re.escape(line), "Posted by.*") self.connection.client.run_command("news %s" % no) onNewsItem.BLKCMD = BLKCMD_NEWS pychess-0.12.2/lib/pychess/ic/managers/__init__.py0000755000175000017470000000000012641567764022310 0ustar tamasusers00000000000000pychess-0.12.2/lib/pychess/ic/managers/ConsoleManager.py0000644000175000017470000000106712647177647023464 0ustar tamasusers00000000000000from gi.repository import GObject from pychess.ic.VerboseTelnet import ConsoleHandler class ConsoleManager (GObject.GObject): __gsignals__ = { 'consoleMessage' : (GObject.SignalFlags.RUN_FIRST, None, (object, object,)), } def __init__ (self, connection): GObject.GObject.__init__(self) self.connection = connection self.connection.client.lines.consolehandler = ConsoleHandler(self.onConsoleMessage) def onConsoleMessage (self, lines, ini_lines=None): self.emit("consoleMessage", lines, ini_lines) pychess-0.12.2/lib/pychess/ic/managers/AdjournManager.py0000755000175000017470000003674412651371102023452 0ustar tamasusers00000000000000from __future__ import absolute_import import re import datetime from gi.repository import GObject from .BoardManager import BoardManager, moveListHeader1Str, names, months, dates from pychess.ic import * from pychess.ic.FICSObjects import FICSAdjournedGame, FICSHistoryGame, FICSJournalGame, FICSPlayer from pychess.Utils.const import * from pychess.System.Log import log reasons_dict = {"Adj": WON_ADJUDICATION, "Agr": DRAW_AGREE, "Dis": WON_DISCONNECTION, "Fla": WON_CALLFLAG, "Mat": WON_MATE, "NM": DRAW_INSUFFICIENT, "Rep": DRAW_REPITITION, "Res": WON_RESIGN, "Sta": DRAW_STALEMATE, "TM": DRAW_BLACKINSUFFICIENTANDWHITETIME, #DRAW_WHITEINSUFFICIENTANDBLACKTIME "WLM": WON_NOMATERIAL, "WNM": WON_NOMATERIAL, "50": DRAW_50MOVES} reasons = "(%s)" % "|".join(reasons_dict.keys()) ratings = "([0-9\ \-\+]{1,4}[P E]?|UNR)" class AdjournManager (GObject.GObject): __gsignals__ = { 'adjournedGameAdded' : (GObject.SignalFlags.RUN_FIRST, None, (object,)), 'onAdjournmentsList' : (GObject.SignalFlags.RUN_FIRST, None, (object,)), 'historyGameAdded' : (GObject.SignalFlags.RUN_FIRST, None, (object,)), 'onHistoryList' : (GObject.SignalFlags.RUN_FIRST, None, (object,)), 'journalGameAdded' : (GObject.SignalFlags.RUN_FIRST, None, (object,)), 'onJournalList' : (GObject.SignalFlags.RUN_FIRST, None, (object,)), } def __init__ (self, connection): GObject.GObject.__init__(self) self.connection = connection self.connection.expect_line (self.__onStoredResponseNO, "%s has no adjourned games\." % names) self.connection.expect_line (self.__onHistoryResponseNO, "%s has no history games\." % names) self.connection.expect_line (self.__onJournalResponseNO, "(%s has no journal entries\.)|(That journal is private.)" % names) self.connection.expect_fromABplus(self.__onStoredResponseYES, "Stored games for %s:" % names, "\s*C Opponent\s+On Type\s+Str\s+M\s+ECO\s+Date", "\s*\d+: (B|W) %s\s+(Y|N) \[([a-z ]{3})\s+(\d+)\s+(\d+)\]\s+(\d+)-(\d+)\s+(W|B)(\d+)\s+(---|\?\?\?|\*\*\*|[A-Z]\d+)\s+%s" % (names, dates)) self.connection.expect_fromABplus(self.__onHistoryResponseYES, "History for %s:" % names, "\s*Opponent\s+Type\s+ECO\s+End\s+Date", "\s*(\d+): (-|\+|=) (\d+)\s+(W|B)\s+(\d+) %s\s+\[([a-z ]{3})\s+(\d+)\s+(\d+)\]\s+(---|\?\?\?|\*\*\*|[A-Z]\d+)\s+%s\s+%s" % (names, reasons, dates)) self.connection.expect_fromABplus(self.__onJournalResponseYES, "Journal for %s:" % names, "\s*White\s+Rating\s+Black\s+Rating\s+Type\s+ECO\s+End\s+Result", "\s*%%(\d+): %s\s+%s\s+%s\s+%s\s+\[([a-z ]{3})\s+(\d+)\s+(\d+)\]\s+(---|\?\?\?|\*\*\*|[A-Z]\d+)\s+%s\s+(\*|1/2-1/2|1-0|0-1)" % (names, ratings, names, ratings, reasons)) self.connection.expect_line (self.__onAdjournedGameResigned, "You have resigned the game\.") self.connection.bm.connect("curGameEnded", self.__onCurGameEnded) self.queryAdjournments() self.queryHistory() self.queryJournal() #TODO: Connect to {Game 67 (MAd vs. Sandstrom) Game adjourned by mutual agreement} * #TODO: Connect to adjourned game as adjudicated def __onStoredResponseYES (self, matchlist): #Stored games for User: # C Opponent On Type Str M ECO Date # 1: W TheDane N [ br 2 12] 0-0 B2 ??? Sun Nov 23, 6:14 CST 1997 # 2: W PyChess Y [psu 2 12] 39-39 W3 C20 Sun Jan 11, 17:40 ??? 2009 # 3: B cjavad N [ wr 2 2] 31-31 W18 --- Wed Dec 23, 06:58 PST 2009 self.connection.stored_owner = matchlist[0].groups()[0] adjournments = [] for match in matchlist[2:]: our_color = match.groups()[0] opponent_name, opponent_online = match.groups()[1:3] game_type = match.groups()[3] minutes, gain = match.groups()[4:6] str_white, str_black = match.groups()[6:8] next_color = match.groups()[8] move_num = match.groups()[9] eco = match.groups()[10] week, month, day, hour, minute, timezone, year = match.groups()[11:18] gametime = datetime.datetime(int(year), months.index(month)+1, int(day), int(hour), int(minute)) private = game_type[0] == "p" rated = game_type[2] == "r" gametype = GAME_TYPES_BY_SHORT_FICS_NAME[game_type[1]] our_color = our_color == "B" and BLACK or WHITE minutes = int(minutes) gain = int(gain) length = (int(move_num)-1)*2 if next_color == "B": length += 1 user = self.connection.players.get( FICSPlayer(self.connection.stored_owner)) opponent = FICSPlayer(opponent_name, status=IC_STATUS_OFFLINE) opponent = self.connection.players.get(opponent) wplayer, bplayer = (user, opponent) if our_color == WHITE \ else (opponent, user) game = FICSAdjournedGame(wplayer, bplayer, game_type=gametype, rated=rated, our_color=our_color, length=length, time=gametime, minutes=minutes, inc=gain, private=private) if game.opponent.adjournment != True: game.opponent.adjournment = True if game not in self.connection.games: game = self.connection.games.get(game, emit=False) self.emit("adjournedGameAdded", game) adjournments.append(game) self.emit("onAdjournmentsList", adjournments) __onStoredResponseYES.BLKCMD = BLKCMD_STORED def __onHistoryResponseYES (self, matchlist): #History for User: #Opponent Type ECO End Date #66: - 1735 B 0 GuestHKZX [ bu 3 0] B23 Res Sun Dec 6, 15:50 EST 2015 #67: - 1703 B 0 GuestQWML [ lu 1 0] B07 Fla Sun Dec 6, 15:53 EST 2015 history = [] self.connection.history_owner = matchlist[0].groups()[0] for match in matchlist[2:]: #print(match.groups()) history_no = match.groups()[0] result = match.groups()[1] owner_rating = match.groups()[2] owner_color = match.groups()[3] opp_rating = match.groups()[4] if result == "+": result = WHITEWON if owner_color == "W" else BLACKWON elif result == "-": result = WHITEWON if owner_color == "B" else BLACKWON else: result = DRAW opponent_name = match.groups()[5] if owner_color == "W": white = self.connection.history_owner black = opponent_name wrating = owner_rating brating = opp_rating else: white = opponent_name black = self.connection.history_owner brating = owner_rating wrating = opp_rating game_type = match.groups()[6] minutes, gain = match.groups()[7:9] eco = match.groups()[9] reason = reasons_dict[match.groups()[10]] week, month, day, hour, minute, timezone, year = match.groups()[11:18] gametime = datetime.datetime(int(year), months.index(month)+1, int(day), int(hour), int(minute)) private = game_type[0] == "p" rated = game_type[2] == "r" gametype = GAME_TYPES_BY_SHORT_FICS_NAME[game_type[1]] owner_color = owner_color == "B" and BLACK or WHITE minutes = int(minutes) gain = int(gain) wplayer = self.connection.players.get(FICSPlayer(white, status=IC_STATUS_OFFLINE)) bplayer = self.connection.players.get(FICSPlayer(black, status=IC_STATUS_OFFLINE)) game = FICSHistoryGame(wplayer, bplayer, game_type=gametype, rated=rated, minutes=minutes, inc=gain, private=private, wrating=wrating, brating=brating, time=gametime, reason=reason, history_no=history_no, result=result) if game not in self.connection.games: game = self.connection.games.get(game, emit=False) self.emit("historyGameAdded", game) history.append(game) self.emit("onHistoryList", history) __onHistoryResponseYES.BLKCMD = BLKCMD_HISTORY def __onJournalResponseYES(self, matchlist): #Journal for User: # White Rating Black Rating Type ECO End Result #%01: tentacle 2291 larsa 2050 [ lr 1 2] D35 Rep 1/2-1/2 #%02: larsa 2045 tentacle 2296 [ lr 1 2] A46 Res 0-1 journal = [] self.connection.journal_owner = matchlist[0].groups()[0] for match in matchlist[2:]: #print(match.groups()) journal_no = match.groups()[0] result = match.groups()[10] result = reprResult.index(result) white = match.groups()[1] wrating = match.groups()[2] black = match.groups()[3] brating = match.groups()[4] game_type = match.groups()[5] minutes, gain = match.groups()[6:8] eco = match.groups()[8] reason = reasons_dict[match.groups()[9]] private = game_type[0] == "p" rated = game_type[2] == "r" gametype = GAME_TYPES_BY_SHORT_FICS_NAME[game_type[1]] minutes = int(minutes) gain = int(gain) wplayer = self.connection.players.get(FICSPlayer(white, status=IC_STATUS_OFFLINE)) bplayer = self.connection.players.get(FICSPlayer(black, status=IC_STATUS_OFFLINE)) game = FICSJournalGame(wplayer, bplayer, game_type=gametype, rated=rated, minutes=minutes, inc=gain, private=private, wrating=wrating, brating=brating, reason=reason, journal_no=journal_no, result=result) if game not in self.connection.games: game = self.connection.games.get(game, emit=False) self.emit("journalGameAdded", game) journal.append(game) self.emit("onJournalList", journal) __onJournalResponseYES.BLKCMD = BLKCMD_JOURNAL def __onStoredResponseNO (self, match): self.connection.stored_owner = match.groups()[0] self.emit("onAdjournmentsList", []) __onStoredResponseNO.BLKCMD = BLKCMD_STORED def __onHistoryResponseNO (self, match): self.connection.history_owner = match.groups()[0] self.emit("onHistoryList", []) __onHistoryResponseNO.BLKCMD = BLKCMD_HISTORY def __onJournalResponseNO (self, match): self.connection.journal_owner = match.groups()[0] self.emit("onJournalList", []) __onJournalResponseNO.BLKCMD = BLKCMD_JOURNAL def __onAdjournedGameResigned (self, match): self.queryAdjournments() def __onCurGameEnded (self, bm, game): if game.result == ADJOURNED: self.queryAdjournments() elif game.result in (DRAW, WHITEWON, BLACKWON): self.queryHistory() def queryAdjournments (self, owner=None): if owner is None: self.connection.client.run_command("stored") else: self.connection.client.run_command("stored %s" % owner) def queryHistory (self, owner=None): if owner is None: self.connection.client.run_command("history") else: self.connection.client.run_command("history %s" % owner) def queryJournal (self, owner=None): if owner is None: self.connection.client.run_command("journal") else: self.connection.client.run_command("journal %s" % owner) def queryMoves (self, game): if isinstance(game, FICSHistoryGame): self.connection.client.run_command("smoves %s %s" % (self.connection.history_owner, game.history_no)) elif isinstance(game, FICSJournalGame): self.connection.client.run_command("smoves %s %%%s" % (self.connection.journal_owner, game.journal_no)) else: self.connection.client.run_command("smoves %s %s" % (self.connection.stored_owner, game.opponent.name)) def examine (self, game): game.board = None self.connection.examined_game = game if isinstance(game, FICSAdjournedGame): self.connection.client.run_command("examine %s %s" % (self.connection.stored_owner, game.opponent.name)) elif isinstance(game, FICSHistoryGame): self.connection.client.run_command("examine %s %s" % (self.connection.history_owner, game.history_no)) elif isinstance(game, FICSJournalGame): self.connection.client.run_command("examine %s %%%s" % (self.connection.journal_owner, game.journal_no)) def challenge (self, playerName): self.connection.client.run_command("match %s" % playerName) def resign (self, game): """ This is (and draw and abort) are possible even when one's opponent is not logged on """ if not game.opponent.adjournment: log.warning("AdjournManager.resign: no adjourned game vs %s" % game.opponent) return log.info("AdjournManager.resign: resigning adjourned game=%s" % game) self.connection.client.run_command("resign %s" % game.opponent.name) def draw (self, game): if not game.opponent.adjournment: log.warning("AdjournManager.draw: no adjourned game vs %s" % game.opponent) return log.info("AdjournManager.draw: offering sdraw for adjourned game=%s" % game) self.connection.client.run_command("sdraw %s" % game.opponent.name) def abort (self, game): if not game.opponent.adjournment: log.warning("AdjournManager.abort: no adjourned game vs %s" % game.opponent) return log.info("AdjournManager.abort: offering sabort for adjourned game=%s" % game) self.connection.client.run_command("sabort %s" % game.opponent.name) def resume (self, game): if not game.opponent.adjournment: log.warning("AdjournManager.resume: no adjourned game vs %s" % game.opponent) return log.info("AdjournManager.resume: offering resume for adjourned game=%s" % game) self.connection.client.run_command("match %s" % game.opponent.name) #(a) Users who have more than 15 stored games are restricted from starting new #games. If this situation happens to you, review your stored games and see #which ones might be eligible for adjudication (see "help adjudication"). pychess-0.12.2/lib/pychess/ic/managers/OfferManager.py0000755000175000017470000002450012647267333023113 0ustar tamasusers00000000000000import re from gi.repository import GObject from pychess.Utils.const import * from pychess.Utils.Offer import Offer from pychess.System.Log import log from pychess.ic import * from pychess.ic.FICSObjects import * names = "\w+(?:\([A-Z\*]+\))*" rated = "(rated|unrated)" colors = "(?:\[(white|black)\])?" ratings = "\(([0-9\ \-\+]{1,4}[E P]?)\)" loaded_from = "(?: Loaded from (wild[/\w]*))?" adjourned = "(?: (\(adjourned\)))?" matchreUntimed = re.compile ("(\w+) %s %s ?(\w+) %s %s (untimed)\s*" % \ (ratings, colors, ratings, rated) ) matchre = re.compile( "(\w+) %s %s ?(\w+) %s %s (\w+) (\d+) (\d+)%s%s" % \ (ratings, colors, ratings, rated, loaded_from, adjourned)) # 39 w=GuestDVXV t=match p=GuestDVXV (----) [black] GuestNXMP (----) unrated blitz 2 12 # 16 w=GuestDVXV t=match p=GuestDVXV (----) GuestNXMP (----) unrated wild 2 12 Loaded from wild/fr # 39 w=GuestDVXV t=match p=GuestDVXV (----) GuestNXMP (----) unrated blitz 2 12 (adjourned) # 45 w=GuestGYXR t=match p=GuestGYXR (----) Lobais (----) unrated losers 2 12 # 45 w=GuestYDDR t=match p=GuestYDDR (----) mgatto (1358) unrated untimed # 71 w=joseph t=match p=joseph (1632) mgatto (1742) rated wild 5 1 Loaded from wild/fr (adjourned) # 59 w=antiseptic t=match p=antiseptic (1945) mgatto (1729) rated wild 6 1 Loaded from wild/4 (adjourned) # # Known offers: abort accept adjourn draw match pause unpause switch takeback # strToOfferType = { "draw": DRAW_OFFER, "abort": ABORT_OFFER, "adjourn": ADJOURN_OFFER, "takeback": TAKEBACK_OFFER, "pause": PAUSE_OFFER, "unpause": RESUME_OFFER, "switch": SWITCH_OFFER, "resign": RESIGNATION, "flag": FLAG_CALL, "match": MATCH_OFFER } offerTypeToStr = {} for k,v in strToOfferType.items(): offerTypeToStr[v] = k class OfferManager (GObject.GObject): __gsignals__ = { 'onOfferAdd' : (GObject.SignalFlags.RUN_FIRST, None, (object,)), 'onOfferRemove' : (GObject.SignalFlags.RUN_FIRST, None, (object,)), 'onOfferDeclined' : (GObject.SignalFlags.RUN_FIRST, None, (object,)), 'onChallengeAdd' : (GObject.SignalFlags.RUN_FIRST, None, (object,)), 'onChallengeRemove' : (GObject.SignalFlags.RUN_FIRST, None, (int,)), 'onActionError' : (GObject.SignalFlags.RUN_FIRST, None, (object, int)), } def __init__ (self, connection): GObject.GObject.__init__(self) self.connection = connection self.connection.expect_line (self.onOfferAdd, " (\d+) w=%s t=(\w+) p=(.+)" % names) self.connection.expect_line (self.onOfferRemove, " (\d+)") for ficsstring, offer, error in ( ("You cannot switch sides once a game is underway.", Offer(SWITCH_OFFER), ACTION_ERROR_SWITCH_UNDERWAY), ("Opponent is not out of time.", Offer(FLAG_CALL), ACTION_ERROR_NOT_OUT_OF_TIME), ("The clock is not ticking yet.", Offer(PAUSE_OFFER), ACTION_ERROR_CLOCK_NOT_STARTED), ("The clock is not ticking.", Offer(FLAG_CALL), ACTION_ERROR_CLOCK_NOT_STARTED), ("The clock is not paused.", Offer(RESUME_OFFER), ACTION_ERROR_CLOCK_NOT_PAUSED)): self.connection.expect_line ( lambda match: self.emit("onActionError", offer, error), ficsstring) self.connection.expect_line (self.notEnoughMovesToUndo, "There are (?:(no)|only (\d+) half) moves in your game\.") self.connection.expect_line (self.noOffersToAccept, "There are no ([^ ]+) offers to (accept).") self.connection.expect_line (self.onOfferDeclined, "\w+ declines the (draw|takeback|pause|unpause|abort|adjourn) request\.") self.lastPly = 0 self.offers = {} self.connection.client.run_command("iset pendinfo 1") def onOfferDeclined (self, match): log.debug("OfferManager.onOfferDeclined: match.string=%s" % match.string) type = match.groups()[0] offer = Offer(strToOfferType[type]) self.emit("onOfferDeclined", offer) def noOffersToAccept (self, match): offertype, request = match.groups() if request == "accept": error = ACTION_ERROR_NONE_TO_ACCEPT elif request == "withdraw": error = ACTION_ERROR_NONE_TO_WITHDRAW elif request == "decline": error = ACTION_ERROR_NONE_TO_DECLINE offer = Offer(strToOfferType[offertype]) self.emit("onActionError", offer, error) def notEnoughMovesToUndo (self, match): ply = match.groups()[0] or match.groups()[1] if ply == "no": ply = 0 else: ply = int(ply) offer = Offer(TAKEBACK_OFFER, param=self.lastPly-ply) self.emit("onActionError", offer, ACTION_ERROR_TOO_LARGE_UNDO) def onOfferAdd (self, match): log.debug("OfferManager.onOfferAdd: match.string=%s" % match.string) tofrom, index, offertype, parameters = match.groups() index = int(index) if tofrom == "t": # ICGameModel keeps track of the offers we've sent ourselves, so we # don't need this return if offertype not in strToOfferType: log.warning("OfferManager.onOfferAdd: Declining unknown offer type: " + \ "offertype=%s parameters=%s index=%d" % (offertype, parameters, index)) self.connection.client.run_command("decline %d" % index) return offertype = strToOfferType[offertype] if offertype == TAKEBACK_OFFER: offer = Offer(offertype, param=int(parameters), index=index) else: offer = Offer(offertype, index=index) self.offers[offer.index] = offer if offer.type == MATCH_OFFER: is_adjourned = False if matchreUntimed.match(parameters) != None: fname, frating, col, tname, trating, rated, type = \ matchreUntimed.match(parameters).groups() mins = 0 incr = 0 gametype = GAME_TYPES["untimed"] else: fname, frating, col, tname, trating, rated, gametype, mins, \ incr, wildtype, adjourned = matchre.match(parameters).groups() if (wildtype and "adjourned" in wildtype) or \ (adjourned and "adjourned" in adjourned): is_adjourned = True if wildtype and "wild" in wildtype: gametype = wildtype try: gametype = GAME_TYPES[gametype] except KeyError: log.warning("OfferManager.onOfferAdd: auto-declining " + \ "unknown offer type: '%s'\n" % gametype) self.decline(offer) del self.offers[offer.index] return player = self.connection.players.get(FICSPlayer(fname)) rating = frating.strip() rating = int(rating) if rating.isdigit() else 0 if gametype.rating_type in player.ratings and \ player.ratings[gametype.rating_type].elo != rating: player.ratings[gametype.rating_type].elo = rating rated = rated != "unrated" challenge = FICSChallenge(index, player, int(mins), int(incr), rated, col, gametype, adjourned=is_adjourned) self.emit("onChallengeAdd", challenge) else: log.debug("OfferManager.onOfferAdd: emitting onOfferAdd: %s" % offer) self.emit("onOfferAdd", offer) def onOfferRemove (self, match): log.debug("OfferManager.onOfferRemove: match.string=%s" % match.string) index = int(match.groups()[0]) if not index in self.offers: return if self.offers[index].type == MATCH_OFFER: self.emit("onChallengeRemove", index) else: self.emit("onOfferRemove", self.offers[index]) del self.offers[index] ### def challenge (self, playerName, game_type, startmin, incsec, rated, color=None): log.debug("OfferManager.challenge: %s %s %s %s %s %s" % \ (playerName, game_type, startmin, incsec, rated, color)) rchar = rated and "r" or "u" if color != None: cchar = color == WHITE and "w" or "b" else: cchar = "" s = "match %s %d %d %s %s" % \ (playerName, startmin, incsec, rchar, cchar) if isinstance(game_type, VariantGameType): s += " " + game_type.seek_text self.connection.client.run_command(s) def offer (self, offer, curply): log.debug("OfferManager.offer: curply=%s %s" % (curply, offer)) self.lastPly = curply s = offerTypeToStr[offer.type] if offer.type == TAKEBACK_OFFER: s += " " + str(curply - offer.param) self.connection.client.run_command(s) ### def withdraw (self, offer): log.debug("OfferManager.withdraw: %s" % offer) self.connection.client.run_command("withdraw t %s" % offerTypeToStr[offer.type]) def accept (self, offer): log.debug("OfferManager.accept: %s" % offer) if offer.index != None: self.acceptIndex(offer.index) else: self.connection.client.run_command("accept t %s" % offerTypeToStr[offer.type]) def decline (self, offer): log.debug("OfferManager.decline: %s" % offer) if offer.index != None: self.declineIndex(offer.index) else: self.connection.client.run_command("decline t %s" % offerTypeToStr[offer.type]) def acceptIndex (self, index): log.debug("OfferManager.acceptIndex: index=%s" % index) self.connection.client.run_command("accept %s" % index) def declineIndex (self, index): log.debug("OfferManager.declineIndex: index=%s" % index) self.connection.client.run_command("decline %s" % index) def playIndex (self, index): log.debug("OfferManager.playIndex: index=%s" % index) self.connection.client.run_command("play %s" % index) pychess-0.12.2/lib/pychess/ic/managers/ErrorManager.py0000755000175000017470000000205412642476534023143 0ustar tamasusers00000000000000from gi.repository import GObject sanmove = "([a-hx@OoPKQRBN0-8+#=-]{2,7})" class ErrorManager (GObject.GObject): __gsignals__ = { 'onCommandNotFound' : (GObject.SignalFlags.RUN_FIRST, None, (str,)), 'onAmbiguousMove' : (GObject.SignalFlags.RUN_FIRST, None, (str,)), 'onIllegalMove' : (GObject.SignalFlags.RUN_FIRST, None, (str,)), } def __init__ (self, connection): GObject.GObject.__init__(self) connection.expect_line (self.onError, "(.*?): Command not found\.") connection.expect_line (self.onAmbiguousMove, "Ambiguous move \((%s)\)\." % sanmove) connection.expect_line (self.onIllegalMove, "Illegal move \((%s)\)\." % sanmove) def onError (self, match): command = match.groups()[0] self.emit("onCommandNotFound", command) def onAmbiguousMove (self, match): move = match.groups()[0] self.emit("onAmbiguousMove", move) def onIllegalMove (self, match): move = match.groups()[0] self.emit("onIllegalMove", move) pychess-0.12.2/lib/pychess/ic/managers/SeekManager.py0000755000175000017470000001746512651755442022753 0ustar tamasusers00000000000000import re from gi.repository import GObject from pychess.Utils.const import * from pychess.ic import * from pychess.ic.FICSObjects import * from pychess.ic.managers.HelperManager import HelperManager from pychess.System.Log import log rated = "(rated|unrated)" colors = "(?:\[(white|black)\]\s?)?" ratings = "([\d\+\- ]{1,4})" titleslist = "(?:GM|IM|FM|WGM|WIM|WFM|TM|SR|TD|CA|C|U|D|B|T|\*)" titleslist_re = re.compile(titleslist) titles = "((?:\(%s\))+)?" % titleslist names = "([a-zA-Z]+)%s" % titles mf = "(?:([mf]{1,2})\s?)?" whomatch = "(?:(?:([-0-9+]{1,4})([\^~:\#. &])%s))" % names whomatch_re = re.compile(whomatch) rating_re = re.compile("[0-9]{2,}") type_re = "(Lightning|Blitz|Standard|Suicide|Wild|Crazyhouse|Bughouse|Losers|Atomic)" class SeekManager (GObject.GObject): __gsignals__ = { 'addSeek' : (GObject.SignalFlags.RUN_FIRST, None, (object,)), 'removeSeek' : (GObject.SignalFlags.RUN_FIRST, None, (int,)), 'clearSeeks' : (GObject.SignalFlags.RUN_FIRST, None, ()), 'our_seeks_removed' : (GObject.SignalFlags.RUN_FIRST, None, ()), 'seek_updated' : (GObject.SignalFlags.RUN_FIRST, None, (str,)), 'assessReceived' : (GObject.SignalFlags.RUN_FIRST, None, (object,)), } def __init__ (self, connection): GObject.GObject.__init__(self) self.connection = connection self.connection.expect_line (self.on_seek_clear, "") self.connection.expect_line (self.on_seek_add, " (.+)") self.connection.expect_line (self.on_seek_remove, " ([\d ]+)") self.connection.expect_n_lines (self.on_our_seeks_removed, " ([\d ]+)", "Your seeks have been removed\.") self.connection.expect_n_lines (self.on_seek_updated, "Updating seek ad (\d+)(?:;?) (.*)\.", "", " (\d+)", "", " (.+)") self.connection.expect_n_lines (self.on_seek_updated, "Updating seek ad (\d+)(?:;?) (.*)\.", "Updating seek ad \d+(?:;?) (.*)\.", "", " (\d+)", "", " (.+)") self.connection.expect_n_lines (self.on_assess, "\s*%s\s*" % type_re, "\s*(\w+)\s+(\w+)\s*", "\s*(\(.+\))\s+(\(.+\))\s*", "\s*Win: .+", "\s*Draw: .+", "\s*Loss: .+", "\s*New RD: .+") self.connection.client.run_command("iset seekinfo 1") self.connection.client.run_command("iset seekremove 1") self.connection.client.run_command("iset showownseek 1") def seek (self, startmin, incsec, game_type, rated, ratings=(0, 9999), color=None, manual=False): log.debug("SeekManager.seek: %s %s %s %s %s %s %s" % \ (startmin, incsec, game_type, rated, str(ratings), color, manual)) rchar = "r" if rated else "u" if color != None: cchar = color == WHITE and "w" or "b" else: cchar = "" manual = "m" if manual else "" s = "seek %d %d %s %s %s" % (startmin, incsec, rchar, cchar, manual) if isinstance(game_type, VariantGameType): s += " " + game_type.seek_text if not self.connection.FatICS: s += " %d-%d" % (ratings[0], ratings[1]) self.connection.client.run_command(s, show_reply=True) def assess(self, player1, player2, type): self.connection.client.run_command("assess %s %s /%s" % (player1, player2, type)) def on_assess(self, matchlist): assess = {} assess["type"] = matchlist[0].groups()[0] assess["names"] = matchlist[1].groups()[0], matchlist[1].groups()[1] assess["oldRD"] = matchlist[2].groups()[0], matchlist[2].groups()[1] assess["win"] = matchlist[3].string.split()[1:] assess["draw"] = matchlist[4].string.split()[1:] assess["loss"] = matchlist[5].string.split()[1:] assess["newRD"] = matchlist[6].string.split()[2:] self.emit("assessReceived", assess) on_assess.BLKCMD = BLKCMD_ASSESS def on_seek_add (self, match): # The message looks like: # index w=name_from ti=titles rt=rating t=time i=increment # r=rated('r')/unrated('u') tp=type("wild/fr", "wild/4","blitz") # c=color rr=rating_range(lower-upper) a=automatic?('t'/'f') # f=formula_checked('t'/f') parts = match.groups()[0].split(" ") seek = {} for key, value in [p.split("=") for p in parts[1:] if p]: seek[key] = value try: index = int(parts[0]) player = self.connection.players.get(FICSPlayer(seek['w'])) player.titles |= parse_title_hex(seek['ti']) rated = seek['r'] == 'r' minutes = int(seek['t']) increment = int(seek['i']) rmin, rmax = [int(r) for r in seek['rr'].split("-")] rating = seek['rt'] if rating[-1] in (" ", "P", "E"): deviation = DEVIATION[rating[-1]] rating = rating[:-1] rating = int(rating) deviation = None automatic = seek['a'] == 't' color = None if seek['c'] == "W": color = "white" elif seek['c'] == "B": color = "black" except KeyError as e: log.warning("on_seek_add: KeyError: %s %s" % (repr(e), repr(seek))) return try: gametype = GAME_TYPES[seek["tp"]] except KeyError: if self.connection.FatICS and seek["tp"] == "chess": # TODO: remove when fixed in FatICS expected_time = minutes + increment*2/3 if expected_time == 0: gametype = "untimed" elif expected_time < 3: gametype = "lightning" elif expected_time < 15: gametype = "blitz" else: gametype = "standard" gametype = GAME_TYPES[gametype] else: return if gametype.variant_type in UNSUPPORTED: return try: ratingobj = player.ratings[gametype.rating_type] if ratingobj.elo != rating: ratingobj.elo = rating ratingobj.deviation = deviation except KeyError: pass seek = FICSSeek(index, player, minutes, increment, rated, color, gametype, rmin=rmin, rmax=rmax, automatic=automatic) self.emit("addSeek", seek) on_seek_add.BLKCMD = BLKCMD_SEEK def on_seek_clear (self, *args): self.emit("clearSeeks") def on_seek_remove (self, match): for key in match.groups()[0].split(" "): if not key: continue self.emit("removeSeek", int(key)) on_seek_remove.BLKCMD = BLKCMD_UNSEEK def on_our_seeks_removed (self, matchlist): self.on_seek_remove(matchlist[0]) self.emit("our_seeks_removed") on_our_seeks_removed.BLKCMD = BLKCMD_UNSEEK def on_seek_updated (self, matchlist): text = matchlist[0].groups()[1] i = 0 if "Updating seek ad" in matchlist[1].string: text += '; ' + matchlist[1].groups()[0] i = 1 self.on_seek_remove(matchlist[i+2]) self.on_seek_add(matchlist[i+4]) self.emit("seek_updated", text) on_seek_updated.BLKCMD = BLKCMD_SEEK def refresh_seeks (self): self.connection.client.run_command("iset seekinfo 1") if __name__ == "__main__": assert type_to_display_text("Loaded from eco/a00") == type_to_display_text("eco/a00") == "Eco A00" assert type_to_display_text("wild/fr") == Variants.variants[FISCHERRANDOMCHESS].name assert type_to_display_text("blitz") == GAME_TYPES["blitz"].display_text pychess-0.12.2/lib/pychess/ic/managers/AutoLogOutManager.py0000755000175000017470000000130012642476534024105 0ustar tamasusers00000000000000from gi.repository import GObject class AutoLogOutManager (GObject.GObject): __gsignals__ = { 'logOut': (GObject.SignalFlags.RUN_FIRST, None, ()) } def __init__ (self, connection): GObject.GObject.__init__(self) self.connection = connection self.connection.expect_line (self.onLogOut, "\*\*\*\* Auto-logout because you were idle more than \d+ minutes\. \*\*\*\*") self.connection.expect_line (self.onLogOut, "Logging you out\.") self.connection.expect_line (self.onLogOut, "\*\*\*\* .+? has arrived - you can't both be logged in\. \*\*\*\*") def onLogOut (self, match): self.emit("logOut") pychess-0.12.2/lib/pychess/ic/managers/FingerManager.py0000755000175000017470000003030612647267610023263 0ustar tamasusers00000000000000import re from time import time from threading import RLock from gi.repository import GObject from pychess.ic import * from pychess.Utils.const import * from pychess.Utils.Rating import Rating from pychess.System.Log import log types = "(?:blitz|standard|lightning|wild|bughouse|crazyhouse|suicide|losers|atomic)" rated = "(rated|unrated)" colors = "(?:\[(white|black)\]\s?)?" ratings = "([\d\+\-]{1,4})" titleslist = "(?:GM|IM|FM|WGM|WIM|WFM|TM|SR|TD|SR|CA|C|U|D|B|T|\*)" titles = "((?:\(%s\))+)?" % titleslist names = "(\w+)%s" % titles mf = "(?:([mf]{1,2})\s?)?" # FIXME: Needs support for day, hour, min, sec times = "[, ]*".join("(?:(\d+) %s)?" % s for s in ("days", "hrs", "mins", "secs")) # "73 days, 5 hrs, 55 mins" # ('73', '5', '55', None) class FingerObject: def __init__ (self, name = ""): self.__fingerTime = time() self.__name = name self.__status = None self.__upTime = 0 self.__idleTime = 0 self.__busyMessage = "" self.__lastSeen = 0 self.__totalTimeOnline = 0 self.__created = 0 # Since field from % of life online self.__email = "" self.__sanctions = "" self.__adminLevel = "" self.__timeseal = False self.__notes = [""]*10 self.__gameno = "" self.__color = WHITE self.__opponent = "" self.__silence = False self.__titles = None self.__rating = {} def getName (self): """ Returns the name of the user, without any title sufixes """ return self.__name def getStatus (self): """ Returns the current user-status as a STATUS constant """ return self.__status def getUpTime(self): """ Returns the when the user logged on Not set when status == STATUS_OFFLINE """ return self.__upTime + time() - self.__fingerTime def getIdleTime(self): """ Returns the when the last time the user did something active Not set when status == STATUS_OFFLINE """ return self.__idleTime + time() - self.__fingerTime def getBusyMessage(self): """ Returns the userset idle message This is set when status == STATUS_BUSY or sometimes when status == STATUS_PLAYING """ return self.__busyMessage def getLastSeen(self): """ Returns when the user logged off This is only set when status == STATUS_OFFLINE This is not set, if the user has never logged on """ return self.__lastSeen def getTotalTimeOnline(self): """ Returns how many seconds the user has been on FICS since the account was created. This is not set, if the user has never logged on """ return self.__totalTimeOnline + time() - self.__fingerTime def getCreated(self): """ Returns when the account was created """ return self.__created def getEmail(self): """ Returns the email adress of the user. This will probably only be set for the logged in user """ return self.__email def getSanctions(self): """ Returns any sanctions the user has against them. This is usually an empty string """ return self.__sanctions def getAdminLevel(self): """ Returns the admin level as a string Only set for admins. """ return self.__adminLevel def getTimeseal(self): """ Returns True if the user is using timeseal for fics connection """ return self.__timeseal def getNotes(self): """ Returns a list of the ten finger notes """ return self.__notes def getGameno(self): """ Returns the gameno of the game in which user is currently playing This is only set when status == STATUS_PLAYING """ return self.__gameno def getColor(self): """ If status == STATUS_PLAYING getColor returns the color witch the player has got in the game. Otherwise always WHITE is returned """ return self.__color def getOpponent(self): """ Returns the opponent of the user in his current game This is only set when status == STATUS_PLAYING """ return self.__opponent def getSilence(self): """ Return True if the user is playing in silence This is only set when status == STATUS_PLAYING """ return self.__silence def getRating(self, type=None): if type == None: return self.__rating return self.__rating[type] def getTitles(self): return self.__titles def setName(self, value): self.__name = value def setStatus(self, value): self.__status = value def setUpTime(self, value): """ Use relative seconds """ self.__upTime = value def setIdleTime(self, value): """ Use relative seconds """ self.__idleTime = value def setBusyMessage(self, value): """ Use relative seconds """ self.__busyMessage = value def setLastSeen(self, value): """ Use relative seconds """ self.__lastSeen = value def setTotalTimeOnline(self, value): """ Use relative seconds """ self.__totalTimeOnline = value def setCreated(self, value): """ Use relative seconds """ self.__created = value def setEmail(self, value): self.__email = value def setSanctions(self, value): self.__sanctions = value def setAdminLevel(self, value): self.__adminLevel = value def setTimeseal(self, value): self.__timeseal = value def setNote(self, index, note): self.__notes[index] = note def setGameno(self, value): self.__gameno = value def setColor(self, value): self.__color = value def setOpponent(self, value): self.__opponent = value def setSilence(self, value): self.__silence = value def setRating(self, type, rating): self.__rating[type] = rating def setTitles(self, titles): self.__titles = titles class FingerManager (GObject.GObject): __gsignals__ = { 'fingeringFinished' : (GObject.SignalFlags.RUN_FIRST, None, (object,)), 'ratingAdjusted' : (GObject.SignalFlags.RUN_FIRST, None, (str, str)), } def __init__ (self, connection): GObject.GObject.__init__(self) self.connection = connection fingerLines = ( "(?P%s has never connected\.)" % names, "Last disconnected: (?P.+)", "On for: (?P.+?) +Idle: (?P.+)", "%s is in (?Psilence) mode\." % names, "\(playing game (?P\d+): (?P\S+?)%s vs. (?P\S+?)%s\)" % (titles,titles), "\(%s (?P.+?)\)" % names, "%s has not played any rated games\." % names, "rating +RD +win +loss +draw +total +best", "(?P%s) +(?P.+)" % types, "Email *: (?P.+)", "Sanctions *: (?P.+)", "Total time online: (?P.+)", "% of life online: [\d\.]+ \(since (?P.+?)\)", "Timeseal [ \\d] : (?POff|On)", "Admin Level: (?P.+)", "(?P\d+): *(?P.*)", "$" ) self.connection.expect_fromplus (self.onFinger, "Finger of %s:" % names, "$|".join(fingerLines)) self.connection.client.run_command("iset nowrap 1") # We don't use this. Rather we use BoardManagers "gameEnded", after # which we do a refinger. This is to ensure not only rating, but also # wins/looses/draws are updated #self.connection.expect(self.onRatingAdjust, # "%s rating adjustment: (\d+) --> (\d+)" % types # Notice if you uncomment this: The expression has to be compiled with # re.IGNORECASE, or the first letter of 'type' must be capital def parseDate (self, date): # Tue Mar 11, 10:56 PDT 2008 return 1 def parseShortDate (self, date): # 24-Oct-2007 return 1 def parseTime (self, time): # 3 days, 2 hrs, 53 mins return 1 def onFinger (self, matchlist): finger = FingerObject() name = matchlist[0].groups()[0] finger.setName(name) if matchlist[0].groups()[1]: titles = re.findall(titleslist, matchlist[0].groups()[1]) finger.setTitles(titles) for match in matchlist[1:]: if not match.group(): continue groupdict = match.groupdict() if groupdict["never"] != None: finger.setStatus(IC_STATUS_OFFLINE) elif groupdict["last"] != None: finger.setStatus(IC_STATUS_OFFLINE) finger.setLastSeen(self.parseDate(groupdict["last"])) elif groupdict["uptime"] != None: finger.setStatus(IC_STATUS_ACTIVE) finger.setUpTime(self.parseTime(groupdict["uptime"])) finger.setIdleTime(self.parseTime(groupdict["idletime"])) elif groupdict["silence"] != None: finger.setSilence(True) elif groupdict["gameno"] != None: finger.setStatus(IC_STATUS_PLAYING) finger.setGameno(groupdict["gameno"]) if groupdict["p1"].lower() == self.connection.getUsername().lower(): finger.setColor(WHITE) finger.setOpponent(groupdict["p2"]) else: finger.setColor(BLACK) finger.setOpponent(groupdict["p1"]) elif groupdict["busymessage"] != None: finger.setStatus(IC_STATUS_BUSY) finger.setBusyMessage(groupdict["busymessage"]) elif groupdict["gametype"] != None: gametype = GAME_TYPES_BY_FICS_NAME[groupdict["gametype"].lower()] ratings = groupdict["ratings"].split() del ratings[5] # We don't need the totals field ratings[1] = float(ratings[1]) if len(ratings) == 5: args = map(int, ratings) rating = Rating(gametype.rating_type, *args) else: bestTime = self.parseShortDate(ratings[6][1:-1]) args = list(map(int,ratings[:6])) + [bestTime] rating = Rating(gametype.rating_type, *args) finger.setRating(gametype.rating_type, rating) elif groupdict["email"] != None: finger.setEmail(groupdict["email"]) elif groupdict["sanctions"] != None: finger.setSanctions(groupdict["sanctions"]) elif groupdict["tto"] != None: finger.setTotalTimeOnline(self.parseTime(groupdict["tto"])) elif groupdict["created"] != None: finger.setTotalTimeOnline(self.parseDate(groupdict["created"])) elif groupdict["timeseal"] != None: finger.setTimeseal(groupdict["timeseal"] == "On") elif groupdict["adminlevel"] != None: finger.setAdminLevel(groupdict["adminlevel"]) elif groupdict["noteno"] != None: finger.setNote(int(groupdict["noteno"])-1, groupdict["note"]) else: log.debug("Ignored fingerline: %s" % repr(match.group())) self.emit ("fingeringFinished", finger) onFinger.BLKCMD = BLKCMD_FINGER def onRatingAdjust (self, match): # Notice: This is only recived for us, not for other persons we finger type, old, new = match.groups() self.emit("ratingAdjusted", type, new) def finger (self, user): self.connection.client.run_command("finger %s" % user) def setFingerNote (self, note, message): assert 1 <= note <= 10 self.connection.client.run_command("set %d %s" % (note, message)) def setBusyMessage (self, message): """ Like set busy is really busy right now. """ self.connection.client.run_command("set busy %s" % message) pychess-0.12.2/lib/pychess/ic/managers/BoardManager.py0000755000175000017470000013445112651724160023077 0ustar tamasusers00000000000000from __future__ import print_function import re import threading from gi.repository import GObject from pychess.System.Log import log from pychess.Savers.pgn import msToClockTimeTag from pychess.Utils.const import * from pychess.ic import * from pychess.ic.VerboseTelnet import * from pychess.ic.FICSObjects import * names = "(\w+)" titles = "((?:\((?:GM|IM|FM|WGM|WIM|WFM|TM|SR|TD|SR|CA|C|U|D|B|T|\*)\))+)?" ratedexp = "(rated|unrated)" ratings = "\(\s*([0-9\ \-\+]{1,4}[P E]?|UNR)\)" weekdays = ("Mon","Tue","Wed","Thu","Fri","Sat","Sun") months = ["Jan","Feb","Mar","Apr","May","Jun","Jul","Aug","Sep","Oct","Nov","Dec"] # "Thu Oct 14, 20:36 PDT 2010" dates = "(%s)\s+(%s)\s+(\d+),\s+(\d+):(\d+)\s+([A-Z\?]+)\s+(\d{4})" % \ ("|".join(weekdays), "|".join(months)) # "2010-10-14 20:36 UTC" datesFatICS = "(\d{4})-(\d{2})-(\d{2})\s+(\d{2}):(\d{2})\s+(UTC)" moveListHeader1Str = "%s %s vs. %s %s --- (?:%s|%s)" % (names, ratings, names, ratings, dates, datesFatICS) moveListHeader1 = re.compile(moveListHeader1Str) moveListHeader2Str = "%s ([^ ]+) match, initial time: (\d+) minutes, increment: (\d+) seconds\." % \ ratedexp moveListHeader2 = re.compile(moveListHeader2Str, re.IGNORECASE) sanmove = "([a-hx@OoPKQRBN0-8+#=-]{2,7})" movetime = "\((\d:)?(\d{1,2}):(\d\d)(?:\.(\d\d\d))?\)" moveListMoves = re.compile("\s*(\d+)\. +(?:%s|\.\.\.) +%s *(?:%s +%s)?" % \ (sanmove, movetime, sanmove, movetime)) creating0 = re.compile("Creating: %s %s %s %s %s ([^ ]+) (\d+) (\d+)(?: \(adjourned\))?" % (names, ratings, names, ratings, ratedexp)) creating1 = re.compile("{Game (\d+) \(%s vs\. %s\) (?:Creating|Continuing) %s ([^ ]+) match\." % (names, names, ratedexp)) pr = re.compile(" ([\d ]+)") sr = re.compile(" ([\d ]+)") fileToEpcord = (("a3","b3","c3","d3","e3","f3","g3","h3"), ("a6","b6","c6","d6","e6","f6","g6","h6")) relations = { "-4": IC_POS_INITIAL, "-3": IC_POS_ISOLATED, "-2": IC_POS_OBSERVING_EXAMINATION, "2": IC_POS_EXAMINATING, "-1": IC_POS_OP_TO_MOVE, "1": IC_POS_ME_TO_MOVE, "0": IC_POS_OBSERVING } def parse_reason (result, reason, wname=None): """ Parse the result value and reason line string for the reason and return the result and reason the game ended. result -- The result of the game, if known. It can be "None", but if it is "DRAW", then wname must be supplied """ if result in (WHITEWON, BLACKWON): if "resigns" in reason: reason = WON_RESIGN elif "disconnection" in reason: reason = WON_DISCONNECTION elif "time" in reason: reason = WON_CALLFLAG elif "checkmated" in reason: reason = WON_MATE elif "adjudication" in reason: reason = WON_ADJUDICATION elif "exploded" in reason: reason = WON_KINGEXPLODE elif "material" in reason: reason = WON_NOMATERIAL else: reason = UNKNOWN_REASON elif result == DRAW: assert wname is not None if "repetition" in reason: reason = DRAW_REPITITION elif "material" in reason and "time" in reason: if wname + " ran out of time" in reason: reason = DRAW_BLACKINSUFFICIENTANDWHITETIME else: reason = DRAW_WHITEINSUFFICIENTANDBLACKTIME elif "material" in reason: reason = DRAW_INSUFFICIENT elif "time" in reason: reason = DRAW_CALLFLAG elif "agreement" in reason: reason = DRAW_AGREE elif "stalemate" in reason: reason = DRAW_STALEMATE elif "50" in reason: reason = DRAW_50MOVES elif "length" in reason: # FICS has a max game length on 800 moves reason = DRAW_LENGTH elif "adjudication" in reason: reason = DRAW_ADJUDICATION else: reason = UNKNOWN_REASON elif result == ADJOURNED or "adjourned" in reason: result = ADJOURNED if "courtesy" in reason: if wname: if wname in reason: reason = ADJOURNED_COURTESY_WHITE else: reason = ADJOURNED_COURTESY_BLACK elif "white" in reason: reason = ADJOURNED_COURTESY_WHITE elif "black" in reason: reason = ADJOURNED_COURTESY_BLACK else: reason = ADJOURNED_COURTESY elif "agreement" in reason: reason = ADJOURNED_AGREEMENT elif "connection" in reason: if "white" in reason: reason = ADJOURNED_LOST_CONNECTION_WHITE elif "black" in reason: reason = ADJOURNED_LOST_CONNECTION_BLACK else: reason = ADJOURNED_LOST_CONNECTION elif "server" in reason: reason = ADJOURNED_SERVER_SHUTDOWN else: reason = UNKNOWN_REASON elif "aborted" in reason: result = ABORTED if "agreement" in reason: reason = ABORTED_AGREEMENT elif "moves" in reason: # lost connection and too few moves; game aborted * reason = ABORTED_DISCONNECTION elif "move" in reason: # Game aborted on move 1 * reason = ABORTED_EARLY elif "shutdown" in reason: reason = ABORTED_SERVER_SHUTDOWN elif "adjudication" in reason: reason = ABORTED_ADJUDICATION else: reason = UNKNOWN_REASON elif "courtesyadjourned" in reason: result = ADJOURNED reason = ADJOURNED_COURTESY elif "courtesyaborted" in reason: result = ABORTED reason = ABORTED_COURTESY else: result = UNKNOWN_STATE reason = UNKNOWN_REASON return result, reason class BoardManager (GObject.GObject): __gsignals__ = { 'playGameCreated' : (GObject.SignalFlags.RUN_FIRST, None, (object,)), 'obsGameCreated' : (GObject.SignalFlags.RUN_FIRST, None, (object,)), 'exGameCreated' : (GObject.SignalFlags.RUN_FIRST, None, (object,)), 'archiveGamePreview' : (GObject.SignalFlags.RUN_FIRST, None, (object,)), 'boardUpdate' : (GObject.SignalFlags.RUN_FIRST, None, (int, int, int, str, str, str, str, int, int)), 'obsGameEnded' : (GObject.SignalFlags.RUN_FIRST, None, (object,)), 'curGameEnded' : (GObject.SignalFlags.RUN_FIRST, None, (object,)), 'obsGameUnobserved' : (GObject.SignalFlags.RUN_FIRST, None, (object,)), 'madeExamined' : (GObject.SignalFlags.RUN_FIRST, None, (int,)), 'madeUnExamined' : (GObject.SignalFlags.RUN_FIRST, None, (int,)), 'gamePaused' : (GObject.SignalFlags.RUN_FIRST, None, (int, bool)), 'tooManySeeks' : (GObject.SignalFlags.RUN_FIRST, None, ()), 'nonoWhileExamine' : (GObject.SignalFlags.RUN_FIRST, None, ()), 'matchDeclined' : (GObject.SignalFlags.RUN_FIRST, None, (object,)), 'player_on_censor' : (GObject.SignalFlags.RUN_FIRST, None, (object,)), 'player_on_noplay' : (GObject.SignalFlags.RUN_FIRST, None, (object,)), 'player_lagged' : (GObject.SignalFlags.RUN_FIRST, None, (object,)), 'opp_not_out_of_time' : (GObject.SignalFlags.RUN_FIRST, None, ()), 'req_not_fit_formula' : (GObject.SignalFlags.RUN_FIRST, None, (object, str)), } castleSigns = {} queuedStyle12s = {} def __init__ (self, connection): GObject.GObject.__init__(self) self.connection = connection self.connection.expect_line (self.onStyle12, "<12> (.+)") self.connection.expect_line (self.onWasPrivate, "Sorry, game (\d+) is a private game\.") self.connection.expect_line (self.tooManySeeks, "You can only have 3 active seeks.") self.connection.expect_line (self.nonoWhileExamine, "(?:You cannot challenge while you are examining a game.)|"+ "(?:You are already examining a game.)") self.connection.expect_line (self.matchDeclined, "%s declines the match offer." % names) self.connection.expect_line (self.player_on_censor, "%s is censoring you." % names) self.connection.expect_line (self.player_on_noplay, "You are on %s's noplay list." % names) self.connection.expect_line(self.player_lagged, "Game (\d+): %s has lagged for (\d+) seconds\." % names) self.connection.expect_line(self.opp_not_out_of_time, "Opponent is not out of time, wait for server autoflag\.") self.connection.expect_n_lines(self.req_not_fit_formula, "Match request does not fit formula for %s:" % names, "%s's formula: (.+)" % names) if self.connection.USCN: self.connection.expect_n_lines (self.onPlayGameCreated, "Creating: %s %s %s %s %s ([^ ]+) (\d+) (\d+)(?: \(adjourned\))?" % (names, ratings, names, ratings, ratedexp), "", "{Game (\d+) \(%s vs\. %s\) (?:Creating|Continuing) %s ([^ ]+) match\." % (names, names, ratedexp), "", "<12> (.+)") else: self.connection.expect_n_lines (self.onPlayGameCreated, "Creating: %s %s %s %s %s ([^ ]+) (\d+) (\d+)(?: \(adjourned\))?" % (names, ratings, names, ratings, ratedexp), "{Game (\d+) \(%s vs\. %s\) (?:Creating|Continuing) %s ([^ ]+) match\." % (names, names, ratedexp), "", "<12> (.+)") # TODO: Trying to precisely match every type of possible response FICS # will throw at us for "Your seek matches..." or "Your seek qualifies # for [player]'s getgame" is error prone and we can never be sure we # even have all of the different types of replies the server will throw # at us. So we should probably make it possible for multi-line # prediction callbacks in VerboseTelnet to put lines the callback isn't # interested in or doesn't handle back onto the input line stack in # VerboseTelnet.TelnetLines self.connection.expect_fromto (self.onMatchingSeekOrGetGame, "Your seek (?:matches one already posted by %s|qualifies for %s's getgame)\." % (names, names), "(?:<12>|) (.+)") self.connection.expect_fromto (self.onInterceptedChallenge, "Your challenge intercepts %s's challenge\." % names, "<12> (.+)") if self.connection.USCN: self.connection.expect_n_lines (self.onObserveGameCreated, "You are now observing game \d+\.", '', "<12> (.+)") else: self.connection.expect_n_lines (self.onObserveGameCreated, "You are now observing game \d+\.", "Game (\d+): %s %s %s %s %s ([\w/]+) (\d+) (\d+)" % (names, ratings, names, ratings, ratedexp), '', "<12> (.+)") self.connection.expect_fromto (self.onObserveGameMovesReceived, "Movelist for game (\d+):", "{Still in progress} \*") self.connection.expect_fromto (self.onArchiveGameSMovesReceived, moveListHeader1Str, # "\s*{((?:Game courtesyadjourned by (Black|White))|(?:Still in progress)|(?:Game adjourned by mutual agreement)|(?:(White|Black) lost connection; game adjourned)|(?:Game adjourned by ((?:server shutdown)|(?:adjudication)|(?:simul holder))))} \*") "\s*{.*(?:([Gg]ame.*adjourned.\s*)|(?:Still in progress)|(?:Neither.*)|(?:Game drawn.*)|(?:White.*)|(?:Black.*)).*}\s*(?:(?:1/2-1/2)|(?:1-0)|(?:0-1))?\s*") self.connection.expect_line (self.onGamePause, "Game (\d+): Game clock (paused|resumed)\.") self.connection.expect_line (self.onUnobserveGame, "Removing game (\d+) from observation list\.") self.connection.expect_line (self.made_examined, "%s has made you an examiner of game (\d+)\." % names) self.connection.expect_line (self.made_unexamined, "You are no longer examining game (\d+)\.") self.queuedEmits = {} self.gamemodelStartedEvents = {} self.theGameImPlaying = None self.gamesImObserving = {} # The ms ivar makes the remaining second fields in style12 use ms self.connection.client.run_command("iset ms 1") # Style12 is a must, when you don't want to parse visualoptimized stuff self.connection.client.run_command("set style 12") # When we observe fischer games, this puts a startpos in the movelist self.connection.client.run_command("iset startpos 1") # movecase ensures that bc3 will never be a bishop move self.connection.client.run_command("iset movecase 1") # don't unobserve games when we start a new game self.connection.client.run_command("set unobserve 3") self.connection.lvm.autoFlagNotify() # gameinfo doesn't really have any interesting info, at least not # until we implement crasyhouse and stuff # self.connection.client.run_command("iset gameinfo 1") def start (self): self.connection.games.connect("FICSGameEnded", self.onGameEnd) @classmethod def parseStyle12 (cls, line, castleSigns=None): fields = line.split() curcol = fields[8] == "B" and BLACK or WHITE gameno = int(fields[15]) relation = relations[fields[18]] ply = int(fields[25])*2 - (curcol == WHITE and 2 or 1) lastmove = fields[28] != "none" and fields[28] or None wname = fields[16] bname = fields[17] wms = int(fields[23]) bms = int(fields[24]) gain = int(fields[20]) # Board data fenrows = [] for row in fields[:8]: fenrow = [] spaceCounter = 0 for c in row: if c == "-": spaceCounter += 1 else: if spaceCounter: fenrow.append(str(spaceCounter)) spaceCounter = 0 fenrow.append(c) if spaceCounter: fenrow.append(str(spaceCounter)) fenrows.append("".join(fenrow)) fen = "/".join(fenrows) fen += " " # Current color fen += fields[8].lower() fen += " " # Castling if fields[10:14] == ["0","0","0","0"]: fen += "-" else: if fields[10] == "1": fen += castleSigns[0].upper() if fields[11] == "1": fen += castleSigns[1].upper() if fields[12] == "1": fen += castleSigns[0].lower() if fields[13] == "1": fen += castleSigns[1].lower() fen += " " # 1 0 1 1 when short castling k1 last possibility # En passant if fields[9] == "-1": fen += "-" else: fen += fileToEpcord [1-curcol] [int(fields[9])] fen += " " # Half move clock fen += str(max(int(fields[14]),0)) fen += " " # Standard chess numbering fen += fields[25] return gameno, relation, curcol, ply, wname, bname, wms, bms, gain, lastmove, fen def onStyle12 (self, match): style12 = match.groups()[0] gameno = int(style12.split()[15]) if gameno in self.queuedStyle12s: self.queuedStyle12s[gameno].append(style12) return try: self.gamemodelStartedEvents[gameno].wait() except KeyError: pass if gameno in self.castleSigns: castleSigns = self.castleSigns[gameno] else: castleSigns = ("k","q") gameno, relation, curcol, ply, wname, bname, wms, bms, gain, lastmove, fen = \ self.parseStyle12(style12, castleSigns) # examine starts with a <12> line only if lastmove is None and relation == IC_POS_EXAMINATING: pgnHead = [ ("Event", "FICS examined game"), ("Site", "freechess.org"), ("White", wname), ("Black", bname), ("Result", "*"), ("SetUp", "1"), ("FEN", fen) ] pgn = "\n".join(['[%s "%s"]' % line for line in pgnHead]) + "\n*\n" wplayer = self.connection.players.get(FICSPlayer(wname)) bplayer = self.connection.players.get(FICSPlayer(bname)) # examine from console or got mexamine in observed game if self.connection.examined_game is None: no_smoves = True game = FICSGame(wplayer, bplayer, gameno=int(gameno), game_type=GAME_TYPES["examined"], minutes=0, inc=0, board=FICSBoard(0, 0, pgn=pgn), relation=relation) self.connection.examined_game = game else: # examine an archived game from GUI no_smoves = False game = self.connection.examined_game game.gameno = int(gameno) game.relation = relation #game.game_type = GAME_TYPES["examined"] game = self.connection.games.get(game) # don't start new game in puzzlebot/endgamebot when they just reuse gameno if game.relation == IC_POS_OBSERVING_EXAMINATION or \ (game.board is not None and game.board.pgn == pgn): self.emit("boardUpdate", gameno, ply, curcol, lastmove, fen, wname, bname, wms, bms) return game.relation = relation game.board=FICSBoard(0, 0, pgn=pgn) self.gamesImObserving[game] = None # start a new game now or after smoves self.gamemodelStartedEvents[game.gameno] = threading.Event() if no_smoves: self.emit("exGameCreated", game) self.gamemodelStartedEvents[game.gameno].wait() else: if isinstance(game, FICSHistoryGame): self.connection.client.run_command("smoves %s %s" % (self.connection.history_owner, game.history_no)) elif isinstance(game, FICSJournalGame): self.connection.client.run_command("smoves %s %%%s" % (self.connection.journal_owner, game.journal_no)) elif isinstance(game, FICSAdjournedGame): self.connection.client.run_command("smoves %s %s" % (self.connection.stored_owner, game.opponent.name)) self.connection.client.run_command("forward 999") else: self.emit("boardUpdate", gameno, ply, curcol, lastmove, fen, wname, bname, wms, bms) def onGameModelStarted (self, gameno): self.gamemodelStartedEvents[gameno].set() def onWasPrivate (self, match): # When observable games were added to the list later than the latest # full send, private information will not be known. gameno = int(match.groups()[0]) try: game = self.connection.games.get_game_by_gameno(gameno) except KeyError: return game.private = True onWasPrivate.BLKCMD = BLKCMD_OBSERVE def tooManySeeks (self, match): self.emit("tooManySeeks") tooManySeeks.BLKCMD = BLKCMD_SEEK def nonoWhileExamine (self, match): self.emit("nonoWhileExamine") nonoWhileExamine.BLKCMD = BLKCMD_SEEK def matchDeclined (self, match): decliner, = match.groups() decliner = self.connection.players.get(FICSPlayer(decliner), create=False) self.emit("matchDeclined", decliner) @classmethod def generateCastleSigns (cls, style12, game_type): if game_type.variant_type == FISCHERRANDOMCHESS: backrow = style12.split()[0] leftside = backrow.find("r") rightside = backrow.find("r", leftside+1) return (reprFile[rightside], reprFile[leftside]) else: return ("k", "q") @staticmethod def parseRating (rating): if rating[-1].isalpha(): rating = rating[:-1] return int(rating) if rating.isdigit() else 0 def onPlayGameCreated (self, matchlist): log.debug("'%s' '%s' '%s'" % (matchlist[0].string, matchlist[1].string, matchlist[-1].string), extra={"task": (self.connection.username, "BM.onPlayGameCreated")}) wname, wrating, bname, brating, rated, type, min, inc = matchlist[0].groups() next = 2 if self.connection.USCN else 1 gameno, wname, bname, rated, type = matchlist[next].groups() gameno = int(gameno) wrating = self.parseRating(wrating) brating = self.parseRating(brating) rated = rated == "rated" game_type = GAME_TYPES[type] wplayer = self.connection.players.get(FICSPlayer(wname)) bplayer = self.connection.players.get(FICSPlayer(bname)) for player, rating in ((wplayer, wrating), (bplayer, brating)): if game_type.rating_type in player.ratings and \ player.ratings[game_type.rating_type].elo != rating: player.ratings[game_type.rating_type].elo = rating style12 = matchlist[-1].groups()[0] castleSigns = self.generateCastleSigns(style12, game_type) self.castleSigns[gameno] = castleSigns gameno, relation, curcol, ply, wname, bname, wms, bms, gain, lastmove, fen = \ self.parseStyle12(style12, castleSigns) game = FICSGame(wplayer, bplayer, gameno=gameno, rated=rated, game_type=game_type, minutes=int(min), inc=int(inc), board=FICSBoard(wms, bms, fen=fen)) game = self.connection.games.get(game) for player in (wplayer, bplayer): if player.status != IC_STATUS_PLAYING: player.status = IC_STATUS_PLAYING if player.game != game: player.game = game player.keep_after_logout = True self.theGameImPlaying = game self.gamemodelStartedEvents[gameno] = threading.Event() self.connection.client.run_command("follow") self.emit("playGameCreated", game) def onMatchingSeekOrGetGame(self, matchlist): if matchlist[-1].string.startswith("<12>"): for line in matchlist[1:-4]: if line.startswith(""): self.connection.glm.on_seek_remove(sr.match(line)) elif line.startswith(""): self.connection.om.onOfferRemove(pr.match(line)) self.onPlayGameCreated((creating0.match(matchlist[-4]), creating1.match(matchlist[-3]), matchlist[-1])) else: self.connection.glm.on_seek_add(matchlist[-1]) onMatchingSeekOrGetGame.BLKCMD = BLKCMD_SEEK def onInterceptedChallenge(self, matchlist): self.onMatchingSeekOrGetGame(matchlist) onInterceptedChallenge.BLKCMD = BLKCMD_MATCH def parseGame (self, matchlist, gameclass, in_progress=False, gameno=None): """ Parses the header and movelist for an observed or stored game from its matchlist (an re.match object) into a gameclass (FICSGame or subclass of) object. in_progress - should be True for an observed game matchlist, and False for stored/adjourned games """ ################# observed game movelist example: # Movelist for game 64: # # Ajido (2281) vs. IMgooeyjim (2068) --- Thu Oct 14, 20:36 PDT 2010 # Rated standard match, initial time: 15 minutes, increment: 3 seconds. # # Move Ajido IMgooeyjim # ---- --------------------- --------------------- # 1. d4 (0:00.000) Nf6 (0:00.000) # 2. c4 (0:04.061) g6 (0:00.969) # 3. Nc3 (0:13.280) Bg7 (0:06.422) # {Still in progress} * # ################## stored game example: # BwanaSlei (1137) vs. mgatto (1336) --- Wed Nov 5, 20:56 PST 2008 # Rated blitz match, initial time: 5 minutes, increment: 0 seconds. # # Move BwanaSlei mgatto # ---- --------------------- --------------------- # 1. e4 (0:00.000) c5 (0:00.000) # 2. d4 (0:05.750) cxd4 (0:03.020) # ... # 23. Qxf3 (1:05.500) # {White lost connection; game adjourned} * # ################## stored wild/3 game with style12: # kurushi (1626) vs. mgatto (1627) --- Thu Nov 4, 10:33 PDT 2010 # Rated wild/3 match, initial time: 3 minutes, increment: 0 seconds. # # <12> nqbrknrn pppppppp -------- -------- -------- -------- PPPPPPPP NQBRKNRN W -1 0 0 0 0 0 17 kurushi mgatto -4 3 0 39 39 169403 45227 1 none (0:00.000) none 0 1 0 # # Move kurushi mgatto # ---- --------------------- --------------------- # 1. Nb3 (0:00.000) d5 (0:00.000) # 2. Nhg3 (0:00.386) e5 (0:03.672) # ... # 28. Rxd5 (0:00.412) # {Black lost connection; game adjourned} * # ################## stored game movelist following stored game(s): # Stored games for mgatto: # C Opponent On Type Str M ECO Date # 1: W BabyLurking Y [ br 5 0] 29-13 W27 D37 Fri Nov 5, 04:41 PDT 2010 # 2: W gbtami N [ wr 5 0] 32-34 W14 --- Thu Oct 21, 00:14 PDT 2010 # # mgatto (1233) vs. BabyLurking (1455) --- Fri Nov 5, 04:33 PDT 2010 # Rated blitz match, initial time: 5 minutes, increment: 0 seconds. # # Move mgatto BabyLurking # ---- ---------------- ---------------- # 1. Nf3 (0:00) d5 (0:00) # 2. d4 (0:03) Nf6 (0:00) # 3. c4 (0:03) e6 (0:00) # {White lost connection; game adjourned} * # ################### stored game movelist following stored game(s): ### Note: A wild stored game in this format won't be parseable into a board because ### it doesn't come with a style12 that has the start position, so we warn and return ################### # Stored games for mgatto: # C Opponent On Type Str M ECO Date # 1: W gbtami N [ wr 5 0] 32-34 W14 --- Thu Oct 21, 00:14 PDT 2010 # # mgatto (1627) vs. gbtami (1881) --- Thu Oct 21, 00:10 PDT 2010 # Rated wild/fr match, initial time: 5 minutes, increment: 0 seconds. # # Move mgatto gbtami # ---- ---------------- ---------------- # 1. d4 (0:00) b6 (0:00) # 2. b3 (0:06) d5 (0:03) # 3. c4 (0:08) e6 (0:03) # 4. e3 (0:04) dxc4 (0:02) # 5. bxc4 (0:02) g6 (0:09) # 6. Nd3 (0:12) Bg7 (0:02) # 7. Nc3 (0:10) Ne7 (0:03) # 8. Be2 (0:08) c5 (0:05) # 9. a4 (0:07) cxd4 (0:38) # 10. exd4 (0:06) Bxd4 (0:03) # 11. O-O (0:10) Qc6 (0:06) # 12. Bf3 (0:16) Qxc4 (0:04) # 13. Bxa8 (0:03) Rxa8 (0:14) # {White lost connection; game adjourned} * # ################## other reasons the game could be stored/adjourned: # Game courtesyadjourned by (Black|White) # Still in progress # This one must be a FICS bug # Game adjourned by mutual agreement # (White|Black) lost connection; game adjourned # Game adjourned by ((server shutdown)|(adjudication)|(simul holder)) index = 0 if in_progress: gameno = int(matchlist[index].groups()[0]) index += 2 header1 = matchlist[index] if isinstance(matchlist[index], str) \ else matchlist[index].group() matches = moveListHeader1.match(header1).groups() wname, wrating, bname, brating = matches[:4] if self.connection.FatICS: year, month, day, hour, minute, timezone = matches[11:] else: weekday, month, day, hour, minute, timezone, year = matches[4:11] month = months.index(month)+1 wrating = self.parseRating(wrating) brating = self.parseRating(brating) rated, game_type, minutes, increment = \ moveListHeader2.match(matchlist[index+1]).groups() minutes = int(minutes) increment = int(increment) game_type = GAME_TYPES[game_type] reason = matchlist[-1].group().lower() if in_progress: result = None result_str = "*" elif "1-0" in reason: result = WHITEWON result_str = "1-0" elif "0-1" in reason: result = BLACKWON result_str = "0-1" elif "1/2-1/2" in reason: result = DRAW result_str = "1/2-1/2" else: result = ADJOURNED result_str = "*" result, reason = parse_reason(result, reason, wname=wname) index += 3 if matchlist[index].startswith("<12>"): style12 = matchlist[index][5:] castleSigns = self.generateCastleSigns(style12, game_type) gameno, relation, curcol, ply, wname, bname, wms, bms, gain, lastmove, \ fen = self.parseStyle12(style12, castleSigns) initialfen = fen movesstart = index + 4 else: if game_type.rating_type == TYPE_WILD: # we need a style12 start position to correctly parse a wild/* board log.error("BoardManager.parseGame: no style12 for %s board." % game_type.fics_name) return None castleSigns = ("k", "q") initialfen = None movesstart = index + 2 if in_progress: self.castleSigns[gameno] = castleSigns moves = {} times = {} wms = bms = minutes * 60 * 1000 for line in matchlist[movesstart:-1]: if not moveListMoves.match(line): log.error("BoardManager.parseGame: unmatched line: \"%s\"" % \ repr(line)) raise Exception("BoardManager.parseGame: unmatched line: \"%s\"" % \ repr(line)) moveno, wmove, whour, wmin, wsec, wmsec, bmove, bhour, bmin, bsec, bmsec = \ moveListMoves.match(line).groups() whour = 0 if whour is None else int(whour[0]) bhour = 0 if bhour is None else int(bhour[0]) ply = int(moveno)*2-2 if wmove: moves[ply] = wmove wms -= (int(whour) * 60 * 60 * 1000) + (int(wmin) * 60 * 1000) + (int(wsec) * 1000) if wmsec is not None: wms -= int(wmsec) else: wmsec = 0 if increment > 0: wms += (increment * 1000) times[ply] = "%01d:%02d:%02d.%03d" % (int(whour), int(wmin), int(wsec), int(wmsec)) if bmove: moves[ply+1] = bmove bms -= (int(bhour) * 60 * 60 * 1000) + (int(bmin) * 60 * 1000) + (int(bsec) * 1000) if bmsec is not None: bms -= int(bmsec) else: bmsec = 0 if increment > 0: bms += (increment * 1000) times[ply+1] = "%01d:%02d:%02d.%03d" % (int(bhour), int(bmin), int(bsec), int(bmsec)) if in_progress and gameno in self.queuedStyle12s: # Apply queued board updates for style12 in self.queuedStyle12s[gameno]: gameno, relation, curcol, ply, wname, bname, wms, bms, gain, lastmove, fen = \ self.parseStyle12(style12, castleSigns) if lastmove == None: continue moves[ply-1] = lastmove # Updated the queuedMoves in case there has been a takeback for moveply in list(moves.keys()): if moveply > ply-1: del moves[moveply] del self.queuedStyle12s[gameno] pgnHead = [ ("Event", "FICS %s %s game" % (rated.lower(), game_type.fics_name)), ("Site", "freechess.org"), ("White", wname), ("Black", bname), ("TimeControl", "%d+%d" % (minutes * 60, increment)), ("Result", result_str), ("WhiteClock", msToClockTimeTag(wms)), ("BlackClock", msToClockTimeTag(bms)), ] if wrating != 0: pgnHead += [ ("WhiteElo", wrating) ] if brating != 0: pgnHead += [ ("BlackElo", brating) ] if year and month and day and hour and minute: pgnHead += [ ("Date", "%04d.%02d.%02d" % (int(year), int(month), int(day))), ("Time", "%02d:%02d:00" % (int(hour), int(minute))), ] if initialfen: pgnHead += [ ("SetUp", "1"), ("FEN", initialfen) ] if game_type.variant_type == FISCHERRANDOMCHESS: pgnHead += [ ("Variant", "Fischerandom") ] # FR is the only variant used in this tag by the PGN generator @ # ficsgames.org. They put all the other wild/* stuff only in the # "Event" header. elif game_type.variant_type == CRAZYHOUSECHESS: pgnHead += [ ("Variant", "Crazyhouse") ] elif game_type.variant_type in (WILDCASTLECHESS, WILDCASTLESHUFFLECHESS): pgnHead += [ ("Variant", "Wildcastle") ] elif game_type.variant_type == ATOMICCHESS: pgnHead += [ ("Variant", "Atomic") ] elif game_type.variant_type == LOSERSCHESS: pgnHead += [ ("Variant", "Losers") ] elif game_type.variant_type == SUICIDECHESS: pgnHead += [ ("Variant", "Suicide") ] pgn = "\n".join(['[%s "%s"]' % line for line in pgnHead]) + "\n" moves = sorted(moves.items()) for ply, move in moves: if ply % 2 == 0: pgn += "%d. " % (ply//2+1) time = times[ply] pgn += "%s {[%%emt %s]} " % (move, time) pgn += "*\n" wplayer = self.connection.players.get(FICSPlayer(wname)) bplayer = self.connection.players.get(FICSPlayer(bname)) for player, rating in ((wplayer, wrating), (bplayer, brating)): if game_type.rating_type in player.ratings and \ player.ratings[game_type.rating_type].elo != rating: player.ratings[game_type.rating_type].elo = rating player.keep_after_logout = True game = gameclass(wplayer, bplayer, game_type=game_type, result=result, rated=(rated.lower() == "rated"), minutes=minutes, inc=increment, board=FICSBoard(wms, bms, pgn=pgn)) if in_progress: game.gameno = gameno else: if gameno is not None: game.gameno = gameno game.reason = reason game = self.connection.games.get(game, emit=False) return game def onObserveGameCreated (self, matchlist): log.debug("'%s'" % (matchlist[1].string), extra={"task": (self.connection.username, "BM.onObserveGameCreated")}) if self.connection.USCN: # TODO? is this ok? game_type = GAME_TYPES["blitz"] castleSigns = ("k","q") else: gameno, wname, wrating, bname, brating, rated, gametype, min, inc = matchlist[1].groups() wrating = self.parseRating(wrating) brating = self.parseRating(brating) game_type = GAME_TYPES[gametype] style12 = matchlist[-1].groups()[0] castleSigns = self.generateCastleSigns(style12, game_type) gameno, relation, curcol, ply, wname, bname, wms, bms, gain, lastmove, fen = \ self.parseStyle12(style12, castleSigns) gameno = int(gameno) self.castleSigns[gameno] = castleSigns wplayer = self.connection.players.get(FICSPlayer(wname)) bplayer = self.connection.players.get(FICSPlayer(bname)) if relation == IC_POS_OBSERVING_EXAMINATION: pgnHead = [ ("Event", "FICS %s %s game" % (rated, game_type.fics_name)), ("Site", "freechess.org"), ("White", wname), ("Black", bname), ("Result", "*"), ("SetUp", "1"), ("FEN", fen) ] pgn = "\n".join(['[%s "%s"]' % line for line in pgnHead]) + "\n*\n" game = FICSGame(wplayer, bplayer, gameno=gameno, rated=rated=="rated", game_type=game_type, minutes=int(min), inc=int(inc), board=FICSBoard(wms, bms, pgn=pgn), relation=relation) game = self.connection.games.get(game) self.gamesImObserving[game] = None self.gamemodelStartedEvents[game.gameno] = threading.Event() self.emit("obsGameCreated", game) self.gamemodelStartedEvents[game.gameno].wait() else: game = FICSGame(wplayer, bplayer, gameno=gameno, rated=rated=="rated", game_type=game_type, minutes=int(min), inc=int(inc), relation=relation) game = self.connection.games.get(game, emit=False) if not game.supported: log.warning("Trying to follow an unsupported type game %s" % game.game_type) return if game.gameno in self.gamemodelStartedEvents: log.warning("%s already in gamemodelstartedevents" % game.gameno) return self.gamesImObserving[game] = None self.queuedStyle12s[game.gameno] = [] self.queuedEmits[game.gameno] = [] self.gamemodelStartedEvents[game.gameno] = threading.Event() # FICS doesn't send the move list after 'observe' and 'follow' commands self.connection.client.run_command("moves %d" % game.gameno) onObserveGameCreated.BLKCMD = BLKCMD_OBSERVE def onObserveGameMovesReceived (self, matchlist): log.debug("'%s'" % (matchlist[0].string), extra={"task": (self.connection.username, "BM.onObserveGameMovesReceived")}) game = self.parseGame(matchlist, FICSGame, in_progress=True) if game.gameno not in self.gamemodelStartedEvents: return self.emit ("obsGameCreated", game) try: self.gamemodelStartedEvents[game.gameno].wait() except KeyError: pass for emit in self.queuedEmits[game.gameno]: emit() del self.queuedEmits[game.gameno] onObserveGameMovesReceived.BLKCMD = BLKCMD_MOVES def onArchiveGameSMovesReceived (self, matchlist): log.debug("'%s'" % (matchlist[0].string), extra={"task": (self.connection.username, "BM.onArchiveGameSMovesReceived")}) klass = FICSAdjournedGame if "adjourn" in matchlist[-1].group() else FICSHistoryGame if self.connection.examined_game is not None: gameno = self.connection.examined_game.gameno else: gameno = None game = self.parseGame(matchlist, klass, in_progress=False, gameno=gameno) if game.gameno not in self.gamemodelStartedEvents: self.emit("archiveGamePreview", game) return game.relation = IC_POS_EXAMINATING game.game_type = GAME_TYPES["examined"] self.emit ("exGameCreated", game) try: self.gamemodelStartedEvents[game.gameno].wait() except KeyError: pass onArchiveGameSMovesReceived.BLKCMD = BLKCMD_SMOVES def onGameEnd (self, games, game): log.debug("BM.onGameEnd: %s" % game) if game == self.theGameImPlaying: if game.gameno in self.gamemodelStartedEvents: self.gamemodelStartedEvents[game.gameno].wait() self.emit("curGameEnded", game) self.theGameImPlaying = None del self.gamemodelStartedEvents[game.gameno] elif game in self.gamesImObserving: log.debug("BM.onGameEnd: %s: gamesImObserving" % game) if game.gameno in self.queuedEmits: log.debug("BM.onGameEnd: %s: queuedEmits" % game) self.queuedEmits[game.gameno].append( lambda:self.emit("obsGameEnded", game)) else: try: event = self.gamemodelStartedEvents[game.gameno] except KeyError: pass else: log.debug("BM.onGameEnd: %s: event.wait()" % game) event.wait() del self.gamesImObserving[game] self.emit("obsGameEnded", game) def onGamePause (self, match): gameno, state = match.groups() gameno = int(gameno) if gameno in self.queuedEmits: self.queuedEmits[gameno].append( lambda:self.emit("gamePaused",gameno, state=="paused")) else: if gameno in self.gamemodelStartedEvents: self.gamemodelStartedEvents[gameno].wait() self.emit("gamePaused", gameno, state=="paused") def onUnobserveGame (self, match): gameno = int(match.groups()[0]) log.debug("BM.onUnobserveGame: gameno: %s" % gameno) try: del self.gamemodelStartedEvents[gameno] game = self.connection.games.get_game_by_gameno(gameno) except KeyError: return self.emit("obsGameUnobserved", game) # TODO: delete self.castleSigns[gameno] ? onUnobserveGame.BLKCMD = BLKCMD_UNOBSERVE def player_lagged (self, match): gameno, player, num_seconds = match.groups() player = self.connection.players.get(FICSPlayer(player)) self.emit("player_lagged", player) def opp_not_out_of_time (self, match): self.emit("opp_not_out_of_time") opp_not_out_of_time.BLKCMD = BLKCMD_FLAG def req_not_fit_formula (self, matchlist): player, formula = matchlist[1].groups() player = self.connection.players.get(FICSPlayer(player)) self.emit("req_not_fit_formula", player, formula) req_not_fit_formula.BLKCMD = BLKCMD_MATCH def player_on_censor(self, match): player, = match.groups() player = self.connection.players.get(FICSPlayer(player)) self.emit("player_on_censor", player) player_on_censor.BLKCMD = BLKCMD_MATCH def player_on_noplay(self, match): player, = match.groups() player = self.connection.players.get(FICSPlayer(player)) self.emit("player_on_noplay", player) player_on_noplay.BLKCMD = BLKCMD_MATCH def made_examined (self, match): """ Changing from observer to examiner """ player, gameno = match.groups() gameno = int(gameno) try: game = self.connection.games.get_game_by_gameno(gameno) except KeyError: return self.emit("madeExamined", gameno) def made_unexamined (self, match): """You are no longer examine game""" self.connection.examined_game = None gameno, = match.groups() gameno = int(gameno) try: game = self.connection.games.get_game_by_gameno(gameno) except KeyError: return self.emit("madeUnExamined", gameno) ############################################################################ # Interacting # ############################################################################ def isPlaying (self): return self.theGameImPlaying is not None def sendMove (self, move): self.connection.client.run_command(move) def resign (self): self.connection.client.run_command("resign") def callflag (self): self.connection.client.run_command("flag") def observe (self, game, player=None): if game is not None: self.connection.client.run_command("observe %d" % game.gameno) elif player is not None: self.connection.client.run_command("observe %s" % player.name) def unexamine (self): self.connection.client.run_command("unexamine") def unobserve (self, game): if game.gameno is not None: self.connection.client.run_command("unobserve %d" % game.gameno) def play (self, seekno): self.connection.client.run_command("play %s" % seekno) def accept (self, offerno): self.connection.client.run_command("accept %s" % offerno) def decline (self, offerno): self.connection.client.run_command("decline %s" % offerno) if __name__ == "__main__": from pychess.ic.FICSConnection import Connection con = Connection("","","","") bm = BoardManager(con) print(bm._BoardManager__parseStyle12("rkbrnqnb pppppppp -------- -------- -------- -------- PPPPPPPP RKBRNQNB W -1 1 1 1 1 0 161 GuestNPFS GuestMZZK -1 2 12 39 39 120 120 1 none (0:00) none 1 0 0", ("d","a"))) print(bm._BoardManager__parseStyle12("rnbqkbnr pppp-ppp -------- ----p--- ----PP-- -------- PPPP--PP RNBQKBNR B 5 1 1 1 1 0 241 GuestGFFC GuestNXMP -4 2 12 39 39 120000 120000 1 none (0:00.000) none 0 0 0", ("k","q"))) pychess-0.12.2/lib/pychess/ic/managers/ListAndVarManager.py0000755000175000017470000000645412647472333024067 0ustar tamasusers00000000000000import atexit from pychess.ic import BLKCMD_SHOWLIST, BLKCMD_VARIABLES, BLKCMD_IVARIABLES from pychess.System import conf class ListAndVarManager: def __init__ (self, connection): self.connection = connection # Lists self.publicLists = {} self.personalLists = {} self.personalBackup = {} if self.connection.USCN: self.connection.expect_line (self.onUpdateList, "(?:\w+\s+is (?:PUBLIC|PERSONAL))|$") else: self.connection.expect_fromplus (self.onUpdateLists, "Lists:", "(?:\w+\s+is (?:PUBLIC|PERSONAL))|$") self.connection.expect_line (self.onUpdateEmptyListitems, "-- (\w+) list: 0 \w+ --") self.connection.expect_fromplus (self.onUpdateListitems, "-- (\w+) list: ([1-9]\d*) \w+ --", "(?:\w+ *)+$") self.connection.client.run_command("showlist") # Auto flag conf.notify_add('autoCallFlag', self.autoFlagNotify) def onUpdateLists (self, matchlist): self.publicLists.clear() self.personalLists.clear() for line in [m.group(0) for m in matchlist[1:] if m.group(0)]: name, _, public_personal = line.split() self.connection.client.run_command("showlist %s" % name) if public_personal == "PUBLIC": self.publicLists[name] = set() else: self.personalLists[name] = set() onUpdateLists.BLKCMD = BLKCMD_SHOWLIST def onUpdateList (self, match): name, _, public_personal = match.group(0).split() self.connection.client.run_command("showlist %s" % name) if public_personal == "PUBLIC": self.publicLists[name] = set() else: self.personalLists[name] = set() def onUpdateEmptyListitems (self, match): listName = match.groups()[0] if listName in self.publicLists: self.publicLists[listName] = set() else: self.personalLists[listName] = set() if not listName in self.personalBackup: self.personalBackup[listName] = set() onUpdateEmptyListitems.BLKCMD = BLKCMD_SHOWLIST def onUpdateListitems (self, matchlist): listName, itemCount = matchlist[0].groups() items = set() for match in matchlist[1:]: items.update(match.group().split()) if listName in self.publicLists: self.publicLists[listName] = items else: self.personalLists[listName] = items self.personalBackup[listName] = items onUpdateListitems.BLKCMD = BLKCMD_SHOWLIST def autoFlagNotify(self, *args): self.connection.client.run_command("set autoflag %s" % int(conf.get('autoCallFlag',False))) #print 'notify flag', conf.get('autoCallFlag',False) def getList (self, listName): if listName in self.publicLists: return self.publicLists(listName) return self.personalLists[listName] def addToList (self, listName, value): self.connection.client.run_command("+%s %s" % (listName, value)) def removeFromList (self, listName, value): self.connection.client.run_command("-%s %s" % (listName, value)) pychess-0.12.2/lib/pychess/ic/ICGameModel.py0000755000175000017470000003213212641567764021035 0ustar tamasusers00000000000000from __future__ import print_function import threading from pychess.compat import StringIO from pychess.System.Log import log from pychess.Utils.GameModel import GameModel from pychess.Utils.Offer import Offer from pychess.Utils.const import * from pychess.Players.Human import Human from pychess.Players.Player import TurnInterrupt from pychess.Savers import fen as fen_loader from pychess.ic import * from pychess.ic.FICSObjects import FICSPlayer class ICGameModel (GameModel): def __init__ (self, connection, ficsgame, timemodel): assert ficsgame.game_type in GAME_TYPES.values() GameModel.__init__(self, timemodel, ficsgame.game_type.variant) self.connection = connection self.ficsgame = ficsgame self.ficsplayers = (ficsgame.wplayer, ficsgame.bplayer) self.gmwidg_ready = threading.Event() connections = self.connections connections[connection.bm].append(connection.bm.connect("boardUpdate", self.onBoardUpdate)) connections[connection.bm].append(connection.bm.connect("obsGameEnded", self.onGameEnded)) connections[connection.bm].append(connection.bm.connect("curGameEnded", self.onGameEnded)) connections[connection.bm].append(connection.bm.connect("gamePaused", self.onGamePaused)) connections[connection.bm].append(connection.bm.connect("madeExamined", self.onMadeExamined)) connections[connection.bm].append(connection.bm.connect("madeUnExamined", self.onMadeUnExamined)) connections[connection.om].append(connection.om.connect("onActionError", self.onActionError)) connections[connection.cm].append(connection.cm.connect("kibitzMessage", self.onKibitzMessage)) connections[connection.cm].append(connection.cm.connect("whisperMessage", self.onWhisperMessage)) connections[connection.cm].append(connection.cm.connect("observers_received", self.onObserversReceived)) connections[connection].append(connection.connect("disconnected", self.onDisconnected)) rated = "rated" if ficsgame.rated else "unrated" # This is in the format that ficsgames.org writes these PGN headers self.tags["Event"] = "FICS %s %s game" % (rated, ficsgame.game_type.fics_name) self.tags["Site"] = "freechess.org" def __repr__ (self): s = GameModel.__repr__(self) s = s.replace(" Actions" works if isinstance(obj, Human): continue for handler_id in self.connections[obj]: if obj.handler_is_connected(handler_id): log.debug("ICGameModel.__disconnect: object=%s handler_id=%s" % \ (repr(obj), repr(handler_id))) obj.disconnect(handler_id) self.connections = None def ficsplayer (self, player): if player.ichandle == self.ficsplayers[0].name: return self.ficsplayers[0] else: return self.ficsplayers[1] @property def remote_player (self): if self.players[0].__type__ == REMOTE: return self.players[0] else: return self.players[1] @property def remote_ficsplayer (self): return self.ficsplayer(self.remote_player) def hasGuestPlayers (self): for player in self.ficsplayers: if player.isGuest(): return True return False @property def noTD(self): for player in self.ficsplayers: if TYPE_TOURNAMENT_DIRECTOR in player.titles: return False return True def onBoardUpdate (self, bm, gameno, ply, curcol, lastmove, fen, wname, bname, wms, bms): log.debug(("ICGameModel.onBoardUpdate: id=%s self.ply=%s self.players=%s gameno=%s " + \ "wname=%s bname=%s ply=%s curcol=%s lastmove=%s fen=%s wms=%s bms=%s") % \ (str(id(self)), str(self.ply), repr(self.players), str(gameno), str(wname), str(bname), \ str(ply), str(curcol), str(lastmove), str(fen), str(wms), str(bms))) if gameno != self.ficsgame.gameno or len(self.players) < 2: # LectureBot allways uses gameno 1 for many games in one lecture # or wname != self.players[0].ichandle or bname != self.players[1].ichandle: return log.debug("ICGameModel.onBoardUpdate: id=%d, self.players=%s: updating time and/or ply" % \ (id(self), str(self.players))) if self.timed: log.debug("ICGameModel.onBoardUpdate: id=%d self.players=%s: updating timemodel" % \ (id(self), str(self.players))) # If game end coming from helper connection before last move made # we have to tap() ourselves if self.status in (DRAW, WHITEWON, BLACKWON): if self.timemodel.ply < ply: self.timemodel.paused = False self.timemodel.tap() self.timemodel.paused = True self.timemodel.updatePlayer (WHITE, wms/1000.) self.timemodel.updatePlayer (BLACK, bms/1000.) if lastmove is None: if bname != self.tags["Black"]: self.tags["Black"] = self.players[BLACK].name = self.ficsplayers[BLACK].name = bname self.emit("players_changed") if wname != self.tags["White"]: self.tags["White"] = self.players[WHITE].name = self.ficsplayers[WHITE].name = wname self.emit("players_changed") if self.boards[-1].asFen() != fen: self.status = RUNNING self.loadAndStart(StringIO(fen), fen_loader, 0, -1, first_time=False) self.emit("game_started") curPlayer = self.players[self.curColor] curPlayer.resetPosition() elif ply < self.ply: log.debug("ICGameModel.onBoardUpdate: id=%d self.players=%s self.ply=%d ply=%d: TAKEBACK" % \ (id(self), str(self.players), self.ply, ply)) for offer in list(self.offers.keys()): if offer.type == TAKEBACK_OFFER: # There can only be 1 outstanding takeback offer for both players on FICS, # (a counter-offer by the offeree for a takeback for a different number of # moves replaces the initial offer) so we can safely remove all of them del self.offers[offer] # In some cases (like lost on time) the last move is resent # or we just observing an examined game if self.reason != WON_CALLFLAG: if len(self.moves) >= self.ply-ply: self.undoMoves(self.ply-ply) else: self.status = RUNNING self.loadAndStart(StringIO(fen), fen_loader, 0, -1, first_time=False) self.emit("game_started") curPlayer = self.players[self.curColor] curPlayer.resetPosition() elif ply > self.ply+1: self.status = RUNNING self.loadAndStart(StringIO(fen), fen_loader, 0, -1, first_time=False) self.emit("game_started") curPlayer = self.players[self.curColor] curPlayer.resetPosition() def onMadeExamined (self, bm, gameno): self.examined = True def onMadeUnExamined (self, bm, gameno): self.examined = False def onGameEnded (self, bm, ficsgame): if ficsgame == self.ficsgame and len(self.players) >= 2: log.debug( "ICGameModel.onGameEnded: self.players=%s ficsgame=%s" % \ (repr(self.players), repr(ficsgame))) self.end(ficsgame.result, ficsgame.reason) def setPlayers (self, players): GameModel.setPlayers(self, players) if self.players[WHITE].icrating: self.tags["WhiteElo"] = self.players[WHITE].icrating if self.players[BLACK].icrating: self.tags["BlackElo"] = self.players[BLACK].icrating def onGamePaused (self, bm, gameno, paused): if paused: self.pause() else: self.resume() # we have to do this here rather than in acceptReceived(), because # sometimes FICS pauses/unpauses a game clock without telling us that the # original offer was "accepted"/"received", such as when one player offers # "pause" and the other player responds not with "accept" but "pause" for offer in list(self.offers.keys()): if offer.type in (PAUSE_OFFER, RESUME_OFFER): del self.offers[offer] def onDisconnected (self, connection): if self.status in (WAITING_TO_START, PAUSED, RUNNING): self.end (KILLED, DISCONNECTED) ############################################################################ # Chat management # ############################################################################ def onKibitzMessage (self, cm, name, gameno, text): if not self.gmwidg_ready.is_set(): self.gmwidg_ready.wait() if gameno != self.ficsgame.gameno: return self.emit("message_received", name, text) def onWhisperMessage (self, cm, name, gameno, text): if gameno != self.ficsgame.gameno: return self.emit("message_received", name, text) def onObserversReceived(self, other, gameno, observers): if int(gameno) != self.ficsgame.gameno: return self.emit("observers_received", observers) ############################################################################ # Offer management # ############################################################################ def offerReceived (self, player, offer): log.debug("ICGameModel.offerReceived: offerer=%s %s" % (repr(player), offer)) if player == self.players[WHITE]: opPlayer = self.players[BLACK] else: opPlayer = self.players[WHITE] if offer.type == CHAT_ACTION: opPlayer.putMessage(offer.param) elif offer.type in (RESIGNATION, FLAG_CALL): self.connection.om.offer(offer, self.ply) elif offer.type in OFFERS: if offer not in self.offers: log.debug("ICGameModel.offerReceived: %s.offer(%s)" % (repr(opPlayer), offer)) self.offers[offer] = player opPlayer.offer(offer) # If the offer was an update to an old one, like a new takebackvalue # we want to remove the old one from self.offers for offer_ in list(self.offers.keys()): if offer.type == offer_.type and offer != offer_: del self.offers[offer_] def acceptReceived (self, player, offer): log.debug("ICGameModel.acceptReceived: accepter=%s %s" % (repr(player), offer)) if player.__type__ == LOCAL: if offer not in self.offers or self.offers[offer] == player: player.offerError(offer, ACTION_ERROR_NONE_TO_ACCEPT) else: log.debug("ICGameModel.acceptReceived: connection.om.accept(%s)" % offer) self.connection.om.accept(offer) del self.offers[offer] # We don't handle any ServerPlayer calls here, as the fics server will # know automatically if he/she accepts an offer, and will simply send # us the result. def checkStatus (self): pass def onActionError (self, om, offer, error): self.emit("action_error", offer, error) # # End # def end (self, status, reason): if self.examined: self.connection.bm.unexamine() if self.status in UNFINISHED_STATES: self.__disconnect() if self.isObservationGame(): self.connection.bm.unobserve(self.ficsgame) else: self.connection.om.offer(Offer(ABORT_OFFER), -1) self.connection.om.offer(Offer(RESIGNATION), -1) if status == KILLED: GameModel.kill(self, reason) else: GameModel.end(self, status, reason) def goFirst (self): self.connection.client.run_command("backward 999") def goPrev (self, step=1): self.connection.client.run_command("backward %s" % step) def goNext (self, step=1): self.connection.client.run_command("forward %s" % step) def goLast (self): self.connection.client.run_command("forward 999") def backToMainLine(self): self.connection.client.run_command("revert") pychess-0.12.2/lib/pychess/ic/VerboseTelnet.py0000755000175000017470000002347212650752726021551 0ustar tamasusers00000000000000import collections import re from pychess.System.Log import log from pychess.ic import BLOCK_START, BLOCK_SEPARATOR, BLOCK_END class ConsoleHandler (object): def __init__ (self, callback): self.callback = callback def handle(self, line): if line: self.callback(line) class Prediction (object): def __init__ (self, callback, *regexps): self.callback = callback self.name = callback.__name__ self.regexps = [] self.matches = () self.hash = hash(callback) for regexp in regexps: self.hash ^= hash(regexp) if not hasattr("match", regexp): # FICS being fairly case insensitive, we can compile with IGNORECASE # to easy some expressions self.regexps.append(re.compile(regexp, re.IGNORECASE)) def __hash__ (self): return self.hash def __len__(self): return len(self.regexps) RETURN_NO_MATCH, RETURN_MATCH, RETURN_NEED_MORE, RETURN_MATCH_END = range(4) class LinePrediction (Prediction): def __init__ (self, callback, regexp): Prediction.__init__(self, callback, regexp) def handle(self, line): match = self.regexps[0].match(line) if match: self.matches = (match.string,) self.callback(match) return RETURN_MATCH return RETURN_NO_MATCH class MultipleLinesPrediction (Prediction): def __init__ (self, callback, *regexps): Prediction.__init__(self, callback, *regexps) self.matchlist = [] class NLinesPrediction (MultipleLinesPrediction): def __init__ (self, callback, *regexps): MultipleLinesPrediction.__init__(self, callback, *regexps) def handle(self, line): regexp = self.regexps[len(self.matchlist)] match = regexp.match(line) if match: self.matchlist.append(match) if len(self.matchlist) == len(self.regexps): self.matches = [m.string for m in self.matchlist] self.callback(self.matchlist) del self.matchlist[:] return RETURN_MATCH return RETURN_NEED_MORE del self.matchlist[:] return RETURN_NO_MATCH class FromPlusPrediction (MultipleLinesPrediction): def __init__ (self, callback, regexp0, regexp1): MultipleLinesPrediction.__init__(self, callback, regexp0, regexp1) def handle (self, line): if not self.matchlist: match = self.regexps[0].match(line) if match: self.matchlist.append(match) return RETURN_NEED_MORE else: match = self.regexps[1].match(line) if match: self.matchlist.append(match) return RETURN_NEED_MORE else: self.matches = [m.string for m in self.matchlist] self.callback(self.matchlist) del self.matchlist[:] return RETURN_MATCH_END del self.matchlist[:] return RETURN_NO_MATCH class FromABPlusPrediction (MultipleLinesPrediction): def __init__ (self, callback, regexp0, regexp1, regexp2): MultipleLinesPrediction.__init__(self, callback, regexp0, regexp1, regexp2) def handle (self, line): if not self.matchlist: match = self.regexps[0].match(line) if match: self.matchlist.append(match) return RETURN_NEED_MORE elif len(self.matchlist) == 1: match = self.regexps[1].match(line) if match: self.matchlist.append(match) return RETURN_NEED_MORE else: match = self.regexps[2].match(line) if match: self.matchlist.append(match) return RETURN_NEED_MORE else: self.matches = [m.string for m in self.matchlist] self.callback(self.matchlist) del self.matchlist[:] return RETURN_MATCH_END del self.matchlist[:] return RETURN_NO_MATCH class FromToPrediction (MultipleLinesPrediction): def __init__ (self, callback, regexp0, regexp1): MultipleLinesPrediction.__init__(self, callback, regexp0, regexp1) def handle (self, line): if not self.matchlist: match = self.regexps[0].match(line) if match: self.matchlist.append(match) return RETURN_NEED_MORE else: match = self.regexps[1].match(line) if match: self.matchlist.append(match) self.matches = [m if isinstance(m, str) else m.string for m in self.matchlist] self.callback(self.matchlist) del self.matchlist[:] return RETURN_MATCH else: self.matchlist.append(line) return RETURN_NEED_MORE return RETURN_NO_MATCH TelnetLine = collections.namedtuple('TelnetLine', ['line', 'code']) EmptyTelnetLine = TelnetLine("", None) class TelnetLines (object): def __init__ (self, telnet, show_reply): self.telnet = telnet self.lines = collections.deque() self._block_mode = False self._line_prefix = None self.consolehandler = None self.show_reply = show_reply @property def block_mode (self): return self._block_mode @block_mode.setter def block_mode (self, x): self._block_mode = x @property def line_prefix (self): return self._line_prefix @line_prefix.setter def line_prefix (self, x): self._line_prefix = x def appendleft (self, x): self.lines.appendleft(x) def extendleft (self, iterable): self.lines.extendleft(iterable) def popleft (self): try: return self.lines.popleft() except IndexError: self.lines.extend(self._get_lines()) return self.lines.popleft() if self.lines else EmptyTelnetLine def _get_lines (self): lines = [] line = self.telnet.readline() id = 0 if line.startswith(self.line_prefix): line = line[len(self.line_prefix)+1:] if self.block_mode and line.startswith(BLOCK_START): parts = line[1:].split(BLOCK_SEPARATOR) if len(parts) == 3: id, code, text = parts elif len(parts) == 4: id, code, error_code, text = parts else: log.warning("Posing not supported yet", extra={"task": (self.telnet.name, "lines")}) return lines code = int(code) id = int(id) line = text if text else self.telnet.readline() while not line.endswith(BLOCK_END): lines.append(TelnetLine(line, code)) line = self.telnet.readline() lines.append(TelnetLine(line[:-1], code)) log.debug("%s %s %s" % (id, code, "\n".join(line.line for line in lines).strip()), extra={"task": (self.telnet.name, "command_reply")}) else: lines.append(TelnetLine(line, None)) log.debug("\n".join(line.line for line in lines).strip(), extra={"task": (self.telnet.name, "lines")}) if self.consolehandler: if id == 0 or id in self.show_reply: self.consolehandler.handle(lines) #self.show_reply.discard(id) return lines class PredictionsTelnet (object): def __init__ (self, telnet, predictions, reply_cmd_dict): self.telnet = telnet self.predictions = predictions self.reply_cmd_dict = reply_cmd_dict self.show_reply = set([]) self.lines = TelnetLines(telnet, self.show_reply) self.__command_id = 1 def parse (self): line = self.lines.popleft() if not line.line: return # TODO: necessary? for p in self.reply_cmd_dict[line.code] \ if line.code and line.code in self.reply_cmd_dict \ else self.predictions: # print "parse_line: trying prediction %s for line '%s'" % (p.name, line) answer = self.test_prediction(p, line) if answer in (RETURN_MATCH, RETURN_MATCH_END): log.debug("\n".join(p.matches), extra={"task": (self.telnet.name, p.name)}) break else: log.debug(line.line, extra={"task": (self.telnet.name, "nonmatched")}) def test_prediction (self, prediction, line): lines = [] answer = prediction.handle(line.line) while answer is RETURN_NEED_MORE: line = self.lines.popleft() lines.append(line) answer = prediction.handle(line.line) if lines and answer not in (RETURN_MATCH, RETURN_MATCH_END): self.lines.extendleft(reversed(lines)) elif answer is RETURN_MATCH_END: self.lines.appendleft(line) # re-test last line that didn't match return answer def run_command(self, text, show_reply=False): log.debug(text, extra={"task": (self.telnet.name, "run_command")}) if self.lines.block_mode: # TODO: reuse id after command reply handled self.__command_id += 1 text = "%s %s\n" % (self.__command_id, text) if show_reply: self.show_reply.add(self.__command_id) return self.telnet.write(text) else: return self.telnet.write("%s\n" % text) def cancel (self): self.run_command("quit") self.telnet.cancel() def close (self): self.run_command("quit") self.telnet.close() pychess-0.12.2/lib/pychess/System/0000755000175000017470000000000012653231274017265 5ustar tamasusers00000000000000pychess-0.12.2/lib/pychess/System/gstreamer.py0000755000175000017470000000532212641567764021652 0ustar tamasusers00000000000000from __future__ import absolute_import import sys from .Log import log from pychess.compat import url2pathname class Player(): def __init__(self): self.ready = False def play(self, uri): pass sound_player = Player() if sys.platform == "win32": import winsound class WinsoundPlayer(Player): def __init__(self): self.ready = True def play(self, uri): try: winsound.PlaySound(None, 0) winsound.PlaySound(url2pathname(uri[5:]), winsound.SND_FILENAME|winsound.SND_ASYNC) except RuntimeError: log.error("ERROR: RuntimeError while playing %s." % url2pathname(uri[5:])) sound_player = WinsoundPlayer() else: try: from gi.repository import Gst except ImportError as e: log.error("ERROR: Unable to import gstreamer. All sound will be mute.\n%s" % e) else: if not Gst.init_check(None): log.error("ERROR: Unable to initialize gstreamer. All sound will be mute.") else: class GstPlayer(Player): def __init__(self): self.player = Gst.ElementFactory.make("playbin", "player") if self.player is None: log.error('ERROR: Gst.ElementFactory.make("playbin", "player") failed') else: self.ready = True fakesink = Gst.ElementFactory.make("fakesink", "fakesink") self.player.set_property("video-sink", fakesink) bus = self.player.get_bus() bus.connect("message", self.onMessage) def onMessage(self, bus, message): if message.type == Gst.MessageType.ERROR: # Sound seams sometimes to work, even though errors are dropped. # Therefore we really can't do anything to test. self.player.set_state(Gst.State.NULL) simpleMessage, advMessage = message.parse_error() log.warning("Gstreamer error '%s': %s" % (simpleMessage, advMessage)) self._del() elif message.type == Gst.MessageType.EOS: self.player.set_state(Gst.State.NULL) return True def play(self, uri): if self.player is not None: self.player.set_state(Gst.State.READY) self.player.set_property("uri", uri) self.player.set_state(Gst.State.PLAYING) sound_player = GstPlayer() pychess-0.12.2/lib/pychess/System/uistuff.py0000755000175000017470000004365412653216060021337 0ustar tamasusers00000000000000import colorsys import re import sys import webbrowser from threading import Thread from gi.repository import Gtk from gi.repository import Gdk from gi.repository import GObject from gi.repository import Pango from gi.repository.GdkPixbuf import Pixbuf from pychess.compat import Queue, Empty,PY3 from pychess.System import conf, fident from pychess.System.Log import log from pychess.System.prefix import addDataPrefix from pychess.widgets.ToggleComboBox import ToggleComboBox def createCombo (combo, data=[]): ls = Gtk.ListStore(Pixbuf, str) for row in data: ls.append(row) combo.clear() combo.set_model(ls) crp = Gtk.CellRendererPixbuf() crp.set_property('xalign',0) crp.set_property('xpad', 2) combo.pack_start(crp, False) combo.add_attribute(crp, 'pixbuf', 0) crt = Gtk.CellRendererText() crt.set_property('xalign',0) crt.set_property('xpad', 4) combo.pack_start(crt, True) combo.add_attribute(crt, 'text', 1) #crt.set_property('ellipsize', Pango.EllipsizeMode.MIDDLE) def updateCombo (combo, data): def get_active(combobox): model = combobox.get_model() active = combobox.get_active() if active < 0: return None return model[active][1] last_active = get_active(combo) ls = combo.get_model() ls.clear() new_active = 0 for i, row in enumerate(data): ls.append(row) if last_active == row[1]: new_active = i combo.set_active(new_active) # int.bit_length() new in Python 2.7, so we have to use an equivalent def int_bit_length(i): s = bin(i) # binary representation: bin(-37) --> '-0b100101' s = s.lstrip('-0b') # remove leading zeros and minus sign return len(s) # len('100101') --> 6 def genColor (n, startpoint=0): assert n >= 1 # This splits the 0 - 1 segment in the pizza way h = (2*n-1)/(2.**int_bit_length(n-1))-1 h = (h + startpoint) % 1 # We set saturation based on the amount of green, scaled to the interval # [0.6..0.8]. This ensures a consistent lightness over all colors. rgb = colorsys.hsv_to_rgb(h, 1, 1) rgb = colorsys.hsv_to_rgb(h, 1, (1-rgb[1])*0.2+0.6) # This algorithm ought to balance colors more precisely, but it overrates # the lightness of yellow, and nearly makes it black # yiq = colorsys.rgb_to_yiq(*rgb) # rgb = colorsys.yiq_to_rgb(.125, yiq[1], yiq[2]) return rgb def keepDown (scrolledWindow): def changed (vadjust): if not hasattr(vadjust, "need_scroll") or vadjust.need_scroll: vadjust.set_value(vadjust.get_upper()-vadjust.get_page_size()) vadjust.need_scroll = True scrolledWindow.get_vadjustment().connect("changed", changed) def value_changed (vadjust): vadjust.need_scroll = abs(vadjust.get_value() + vadjust.get_page_size() - \ vadjust.get_upper()) < vadjust.get_step_increment() scrolledWindow.get_vadjustment().connect("value-changed", value_changed) # wrap analysis text column. thanks to # http://www.islascruz.org/html/index.php?blog/show/Wrap-text-in-a-TreeView-column.html def appendAutowrapColumn (treeview, name, **kvargs): cell = Gtk.CellRendererText() #cell.props.wrap_mode = Pango.WrapMode.WORD # TODO: # changed to ellipsize instead until "never ending grow" bug gets fixed # see https://github.com/pychess/pychess/issues/1054 cell.props.ellipsize = Pango.EllipsizeMode.END column = Gtk.TreeViewColumn(name, cell, **kvargs) treeview.append_column(column) def callback (treeview, allocation, column, cell): otherColumns = [c for c in treeview.get_columns() if c != column] newWidth = allocation.width - sum(c.get_width() for c in otherColumns) hsep = GObject.Value() hsep.init(GObject.TYPE_INT) hsep.set_int(0) treeview.style_get_property("horizontal-separator", hsep) newWidth -= hsep.get_int() * (len(otherColumns)+1) * 2 if cell.props.wrap_width == newWidth or newWidth <= 0: return cell.props.wrap_width = newWidth store = treeview.get_model() iter = store.get_iter_first() while iter and store.iter_is_valid(iter): store.row_changed(store.get_path(iter), iter) iter = store.iter_next(iter) treeview.set_size_request(0,-1) #treeview.connect_after("size-allocate", callback, column, cell) scroll = treeview.get_parent() if isinstance(scroll, Gtk.ScrolledWindow): scroll.set_policy(Gtk.PolicyType.NEVER, scroll.get_policy()[1]) return cell METHODS = ( # Gtk.SpinButton should be listed prior to Gtk.Entry, as it is a # subclass, but requires different handling (Gtk.SpinButton, ("get_value", "set_value", "value-changed")), (Gtk.Entry, ("get_text", "set_text", "changed")), (Gtk.Expander, ("get_expanded", "set_expanded", "notify::expanded")), (Gtk.ComboBox, ("get_active", "set_active", "changed")), # Gtk.ToggleComboBox should be listed prior to Gtk.ToggleButton, as it is a # subclass, but requires different handling (ToggleComboBox, ("_get_active", "_set_active", "changed")), (Gtk.IconView, ("_get_active", "_set_active", "selection-changed")), (Gtk.ToggleButton, ("get_active", "set_active", "toggled")), (Gtk.CheckMenuItem, ("get_active", "set_active", "toggled")), (Gtk.Range, ("get_value", "set_value", "value-changed")), (Gtk.TreeSortable, ("get_value", "set_value", "sort-column-changed")), ) def keep (widget, key, get_value_=None, set_value_=None, first_value=None): if widget == None: raise AttributeError("key '%s' isn't in widgets" % key) for class_, methods_ in METHODS: if isinstance(widget, class_): getter, setter, signal = methods_ break else: raise AttributeError("I don't have any knowledge of type: '%s'" % widget) if get_value_: get_value = lambda: get_value_(widget) else: get_value = getattr(widget, getter) if set_value_: set_value = lambda v: set_value_(widget, v) else: set_value = getattr(widget, setter) def setFromConf (): try: v = conf.getStrict(key) except TypeError: log.warning("uistuff.keep.setFromConf: Key '%s' from conf had the wrong type '%s', ignored" % \ (key, type(conf.getStrict(key)))) if first_value != None: conf.set(key, first_value) else: conf.set(key, get_value()) else: set_value(v) def callback(*args): if not conf.hasKey(key) or conf.getStrict(key) != get_value(): conf.set(key, get_value()) widget.connect(signal, callback) conf.notify_add(key, lambda *args: setFromConf()) if conf.hasKey(key): setFromConf() elif first_value != None: conf.set(key, first_value) # loadDialogWidget() and saveDialogWidget() are similar to uistuff.keep() but are needed # for saving widget values for Gtk.Dialog instances that are loaded with different # sets of values/configurations and which also aren't instant save like in # uistuff.keep(), but rather are saved later if and when the user clicks # the dialog's OK button def loadDialogWidget (widget, widget_name, config_number, get_value_=None, set_value_=None, first_value=None): key = widget_name + "-" + str(config_number) if widget == None: raise AttributeError("key '%s' isn't in widgets" % widget_name) for class_, methods_ in METHODS: if isinstance(widget, class_): getter, setter, signal = methods_ break else: if set_value_ == None: raise AttributeError("I don't have any knowledge of type: '%s'" % widget) if get_value_: get_value = lambda: get_value_(widget) else: get_value = getattr(widget, getter) if set_value_: set_value = lambda v: set_value_(widget, v) else: set_value = getattr(widget, setter) if conf.hasKey(key): try: v = conf.getStrict(key) except TypeError: log.warning("uistuff.loadDialogWidget: Key '%s' from conf had the wrong type '%s', ignored" % \ (key, type(conf.getStrict(key)))) if first_value != None: conf.set(key, first_value) else: conf.set(key, get_value()) else: set_value(v) elif first_value != None: conf.set(key, first_value) set_value(conf.getStrict(key)) else: log.warning("Didn't load widget \"%s\": no conf value and no first_value arg" % \ widget_name) def saveDialogWidget (widget, widget_name, config_number, get_value_=None): key = widget_name + "-" + str(config_number) if widget == None: raise AttributeError("key '%s' isn't in widgets" % widget_name) for class_, methods_ in METHODS: if isinstance(widget, class_): getter, setter, signal = methods_ break else: if get_value_ == None: raise AttributeError("I don't have any knowledge of type: '%s'" % widget) if get_value_: get_value = lambda: get_value_(widget) else: get_value = getattr(widget, getter) if not conf.hasKey(key) or conf.getStrict(key) != get_value(): conf.set(key, get_value()) POSITION_NONE, POSITION_CENTER, POSITION_GOLDEN = range(3) def keepWindowSize (key, window, defaultSize=None, defaultPosition=POSITION_NONE): """ You should call keepWindowSize before show on your windows """ key = key + "window" def savePosition (window, *event): log.debug("keepWindowSize.savePosition: %s" % window.get_title()) width = window.get_allocation().width height = window.get_allocation().height x, y = window.get_position() if width <= 0: log.error("Setting width = '%d' for %s to conf" % (width,key)) if height <= 0: log.error("Setting height = '%d' for %s to conf" % (height,key)) log.debug("Saving window position width=%s height=%s x=%s y=%s" % (width, height, x, y)) conf.set(key+"_width", width) conf.set(key+"_height", height) conf.set(key+"_x", x) conf.set(key+"_y", y) return False window.connect("delete-event", savePosition, "delete-event") def loadPosition (window): #log.debug("keepWindowSize.loadPosition: %s" % window.title) width, height = window.get_size_request() if conf.hasKey(key+"_width") and conf.hasKey(key+"_height"): width = conf.getStrict(key+"_width") height = conf.getStrict(key+"_height") log.debug("Resizing window to width=%s height=%s" % (width, height)) window.resize(width, height) elif defaultSize: width, height = defaultSize log.debug("Resizing window to width=%s height=%s" % (width, height)) window.resize(width, height) elif key=="mainwindow": monitor_x, monitor_y, monitor_width, monitor_height = getMonitorBounds() width = int(monitor_width/2) height = int(monitor_height/4)*3 log.debug("Resizing window to width=%s height=%s" % (width, height)) window.resize(width, height) elif key=="preferencesdialogwindow": window.resize(1, 1) if conf.hasKey(key+"_x") and conf.hasKey(key+"_y"): log.debug("Moving window to x=%s y=%s" % (conf.getStrict(key+"_x"), conf.getStrict(key+"_y"))) window.move(conf.getStrict(key+"_x"), conf.getStrict(key+"_y")) elif defaultPosition in (POSITION_CENTER, POSITION_GOLDEN): monitor_x, monitor_y, monitor_width, monitor_height = getMonitorBounds() x = int(monitor_width/2-width/2) + monitor_x if defaultPosition == POSITION_CENTER: y = int(monitor_height/2-height/2) + monitor_y else: # Place the window on the upper golden ratio line y = int(monitor_height/2.618-height/2) + monitor_y log.debug("Moving window to x=%s y=%s" % (x, y)) window.move(x, y) loadPosition(window) # In rare cases, gtk throws some gtk_size_allocation error, which is # probably a race condition. To avoid the window forgets its size in # these cases, we add this extra hook def callback (window): loadPosition(window) onceWhenReady(window, callback) # Some properties can only be set, once the window is sufficiently initialized, # This function lets you queue your request until that has happened. def onceWhenReady(window, func, *args, **kwargs): def cb(window, alloc, func, *args, **kwargs): func(window, *args, **kwargs) window.disconnect(handler_id) handler_id = window.connect_after("size-allocate", cb, func, *args, **kwargs) def getMonitorBounds(): screen = Gdk.Screen.get_default() root_window = screen.get_root_window() ptr_window, mouse_x, mouse_y, mouse_mods = root_window.get_pointer() current_monitor_number = screen.get_monitor_at_point(mouse_x,mouse_y) monitor_geometry = screen.get_monitor_geometry(current_monitor_number) return monitor_geometry.x, monitor_geometry.y, monitor_geometry.width, monitor_geometry.height tooltip = Gtk.Window(Gtk.WindowType.POPUP) tooltip.set_name('gtk-tooltip') tooltip.ensure_style() tooltipStyle = tooltip.get_style() def makeYellow (box): def on_box_expose_event (box, context): #box.style.paint_flat_box (box.window, # Gtk.StateType.NORMAL, Gtk.ShadowType.NONE, None, box, "tooltip", # box.allocation.x, box.allocation.y, # box.allocation.width, box.allocation.height) pass def cb (box): box.set_style(tooltipStyle) box.connect("draw", on_box_expose_event) onceWhenReady(box, cb) linkre = re.compile("http://(?:www\.)?\w+\.\w{2,4}[^\s]+") emailre = re.compile("[\w\.]+@[\w\.]+\.\w{2,4}") def initTexviewLinks (textview, text): tags = [] textbuffer = textview.get_buffer() while True: linkmatch = linkre.search(text) emailmatch = emailre.search(text) if not linkmatch and not emailmatch: textbuffer.insert (textbuffer.get_end_iter(), text) break if emailmatch and (not linkmatch or \ emailmatch.start() < linkmatch.start()): s = emailmatch.start() e = emailmatch.end() type = "email" else: s = linkmatch.start() e = linkmatch.end() if text[e-1] == ".": e -= 1 type = "link" textbuffer.insert (textbuffer.get_end_iter(), text[:s]) tag = textbuffer.create_tag (None, foreground="blue", underline=Pango.Underline.SINGLE) tags.append([tag, text[s:e], type, textbuffer.get_end_iter()]) textbuffer.insert_with_tags ( textbuffer.get_end_iter(), text[s:e], tag) tags[-1].append(textbuffer.get_end_iter()) text = text[e:] def on_press_in_textview (textview, event): iter = textview.get_iter_at_location (int(event.x), int(event.y)) if not iter: return for tag, link, type, s, e in tags: if iter.has_tag(tag): tag.props.foreground = "red" break def on_release_in_textview (textview, event): iter = textview.get_iter_at_location (int(event.x), int(event.y)) if not iter: return for tag, link, type, s, e in tags: if iter and iter.has_tag(tag) and \ tag.props.foreground_Gdk.red == 0xffff: if type == "link": webbrowser.open(link) else: webbrowser.open("mailto:"+link) tag.props.foreground = "blue" stcursor = Gdk.Cursor(Gdk.CursorType.XTERM) linkcursor = Gdk.Cursor(Gdk.CursorType.HAND2) def on_motion_in_textview(textview, event): #textview.get_window().get_pointer() iter = textview.get_iter_at_location (int(event.x), int(event.y)) if not iter: return for tag, link, type, s, e in tags: if iter.has_tag(tag): textview.get_window(Gtk.TextWindowType.TEXT).set_cursor ( linkcursor) break else: textview.get_window(Gtk.TextWindowType.TEXT).set_cursor(stcursor) textview.connect ("motion-notify-event", on_motion_in_textview) textview.connect ("leave_notify_event", on_motion_in_textview) textview.connect("button_press_event", on_press_in_textview) textview.connect("button_release_event", on_release_in_textview) no_gettext = False class GladeWidgets: """ A simple class that wraps a the glade get_widget function into the python __getitem__ version """ def __init__ (self, filename): self.builder = Gtk.Builder() if not no_gettext: self.builder.set_translation_domain("pychess") self.builder.add_from_file(addDataPrefix("glade/%s" % filename)) # TODO: remove this when upstream fixes translations with Python3+Windows if PY3 and sys.platform == "win32" and not no_gettext: for obj in self.builder.get_objects(): if (not isinstance(obj, Gtk.SeparatorMenuItem)) and hasattr(obj, "get_label"): label = obj.get_label() if label is not None: obj.set_label(_(label)) elif hasattr(obj, "get_title"): title = obj.get_title() if title is not None: obj.set_title(_(title)) if hasattr(obj, "get_tooltip_text"): text = obj.get_tooltip_text() if text is not None: obj.set_tooltip_text(_(text)) def __getitem__(self, key): return self.builder.get_object(key) def getGlade (self): return self.builder pychess-0.12.2/lib/pychess/System/repeat.py0000755000175000017470000000251112641567764021136 0ustar tamasusers00000000000000# -*- coding: UTF-8 -*- import time from threading import Thread from pychess.System import fident def repeat (func, *args, **kwargs): """ Repeats a function in a new thread until it returns False """ def run (): while func(*args, **kwargs): pass t = Thread(target=run, name=fident(func)) t.daemon = True t.start() def repeat_sleep (func, sleeptime, recur=False): """ Runs func in a thread and repeats it approximately each sleeptime [s] until func returns False. Notice that we sleep first, then run. Not the other way around. If repeat_sleep is called with recur=True, each call will be called with the return value of last call as argument. The argument has to be optional, as it wont be used first time, and it has to be non-None. """ def run (): last = time.time() val = None while True: time.sleep(time.time()-last + sleeptime) if not time: # If python has been shutdown while we were sleeping, the # imported modules will be None return last = time.time() if recur and val: val = func(val) else: val = func() if not val: break t = Thread(target=run, name=fident(func)) t.daemon = True t.start() pychess-0.12.2/lib/pychess/System/cairoextras.py0000644000175000017470000000524412641567764022205 0ustar tamasusers00000000000000# from: http://cairographics.org/freetypepython/ import ctypes import cairo class FreeTypeLibInitializationFailed(Exception): pass class PycairoContext(ctypes.Structure): _fields_ = [("PyObject_HEAD", ctypes.c_byte * object.__basicsize__), ("ctx", ctypes.c_void_p), ("base", ctypes.c_void_p)] _initialized = False def create_cairo_font_face_for_file (filename, faceindex=0, loadoptions=0): global _initialized global _freetype_so global _cairo_so global _ft_lib global _surface CAIRO_STATUS_SUCCESS = 0 FT_Err_Ok = 0 if not _initialized: # find shared objects _freetype_so = ctypes.CDLL ("libfreetype.so.6") _cairo_so = ctypes.CDLL ("libcairo.so.2") _cairo_so.cairo_ft_font_face_create_for_ft_face.restype = ctypes.c_void_p _cairo_so.cairo_ft_font_face_create_for_ft_face.argtypes = [ ctypes.c_void_p, ctypes.c_int ] _cairo_so.cairo_set_font_face.argtypes = [ ctypes.c_void_p, ctypes.c_void_p ] _cairo_so.cairo_font_face_status.argtypes = [ ctypes.c_void_p ] _cairo_so.cairo_status.argtypes = [ ctypes.c_void_p ] # initialize freetype _ft_lib = ctypes.c_void_p () if FT_Err_Ok != _freetype_so.FT_Init_FreeType (ctypes.byref (_ft_lib)): raise FreeTypeLibInitializationFailed _surface = cairo.ImageSurface (cairo.FORMAT_A8, 0, 0) _initialized = True # create freetype face ft_face = ctypes.c_void_p() cairo_ctx = cairo.Context (_surface) cairo_t = PycairoContext.from_address(id(cairo_ctx)).ctx if FT_Err_Ok != _freetype_so.FT_New_Face (_ft_lib, filename, faceindex, ctypes.byref(ft_face)): raise Exception("Error creating FreeType font face for " + filename) # create cairo font face for freetype face cr_face = _cairo_so.cairo_ft_font_face_create_for_ft_face (ft_face, loadoptions) if CAIRO_STATUS_SUCCESS != _cairo_so.cairo_font_face_status (cr_face): raise Exception("Error creating cairo font face for " + filename) _cairo_so.cairo_set_font_face (cairo_t, cr_face) if CAIRO_STATUS_SUCCESS != _cairo_so.cairo_status (cairo_t): raise Exception("Error creating cairo font face for " + filename) face = cairo_ctx.get_font_face () return face if __name__ == '__main__': face = create_cairo_font_face_for_file ("../../../pieces/ttf/harlequin.ttf", 0) surface = cairo.ImageSurface(cairo.FORMAT_ARGB32, 200, 128) ctx = cairo.Context(surface) ctx.set_font_face(face) ctx.set_font_size(30) ctx.move_to(0, 44) ctx.show_text("pnbrqk") ctx.move_to(0, 74) ctx.show_text("omvtwl") del ctx surface.write_to_png("0pieces.png") pychess-0.12.2/lib/pychess/System/debug.py0000644000175000017470000000146712641567764020752 0ustar tamasusers00000000000000import sys import time import traceback import threading from threading import Thread from pychess.System import fident from pychess.System.Log import log # This may cause random crashes # https://github.com/pychess/pychess/issues/1023 def dump_threads (): stacks = [] for thread in threading.enumerate(): frame = sys._current_frames()[thread.ident] stack = traceback.format_list(traceback.extract_stack(frame)) stacks.append("Thread: %s (%d)" % (thread.name, thread.ident)) stacks.append("".join(stack)) log.debug("\n" + "\n".join(stacks)) def start_thread_dump (): def thread_dumper (): while True: dump_threads() time.sleep(10) t = Thread(target=thread_dumper, name=fident(thread_dumper)) t.daemon = True t.start() pychess-0.12.2/lib/pychess/System/conf_configParser.py0000755000175000017470000000267312641567764023316 0ustar tamasusers00000000000000import os, atexit from pychess.compat import RawConfigParser from pychess.System.Log import log configParser = RawConfigParser() from pychess.System.prefix import addUserConfigPrefix section = "General" path = addUserConfigPrefix("config") if os.path.isfile(path): configParser.readfp(open(path)) if not configParser.has_section(section): configParser.add_section(section) atexit.register(lambda: configParser.write(open(path,"w"))) idkeyfuncs = {} conid = 0 def notify_add (key, func, args): global conid idkeyfuncs[conid] = (key, func, args) conid += 1 return conid def notify_remove (conid): del idkeyfuncs[conid] def get (key): try: return configParser.getint(section, key) except ValueError: pass try: return configParser.getboolean(section, key) except ValueError: pass try: return configParser.getfloat(section, key) except ValueError: pass return configParser.get(section, key) def set (key, value): try: configParser.set (section, key, str(value)) except Exception as e: log.error("Unable to save configuration '%s'='%s' because of error: %s %s"% (repr(key), repr(value), e.__class__.__name__, ", ".join(str(a) for a in e.args))) for key_, func, args in idkeyfuncs.values(): if key_ == key: func (None, *args) def hasKey (key): return configParser.has_option(section, key) pychess-0.12.2/lib/pychess/System/SubProcess.py0000755000175000017470000003300212641567764021745 0ustar tamasusers00000000000000from __future__ import absolute_import from __future__ import print_function import os import sys import signal import errno import time import traceback import threading from threading import currentThread, Thread from gi.repository import GObject from gi.repository import GLib from pychess.Utils.const import * from pychess.System import fident from .Log import log from .which import which class SubProcessError (Exception): pass class TimeOutError (Exception): pass def searchPath (file, access=os.R_OK, altpath=None): if altpath and os.path.isfile(altpath): if not os.access (altpath, access): log.warning("Not enough permissions on %s" % altpath) else: return altpath return which(file, mode=access) subprocesses = [] def finishAllSubprocesses (): for subprocess in subprocesses: if subprocess.subprocExitCode[0] == None: subprocess.gentleKill(0,0.3) for subprocess in subprocesses: subprocess.subprocFinishedEvent.wait() class SubProcess (GObject.GObject): __gsignals__ = { "line": (GObject.SignalFlags.RUN_FIRST, None, (object,)), "died": (GObject.SignalFlags.RUN_FIRST, None, ()) } def __init__(self, path, args=[], warnwords=[], env=None, chdir="."): GObject.GObject.__init__(self) self.path = path self.args = args self.warnwords = warnwords self.env = env or os.environ self.buffer = "" self.defname = os.path.split(path)[1] self.defname = self.defname[:1].upper() + self.defname[1:].lower() t = time.time() self.defname = (self.defname, time.strftime("%H:%m:%%.3f",time.localtime(t)) % (t%60)) log.debug(path, extra={"task":self.defname}) argv = [str(u) for u in [self.path]+self.args] log.debug("SubProcess.__init__: spawning...", extra={"task":self.defname}) def do_spawn_async(event): flags = GLib.SPAWN_DO_NOT_REAP_CHILD|GLib.SPAWN_SEARCH_PATH if sys.platform == "win32": flags |= GLib.SPAWN_WIN32_HIDDEN_CONSOLE self.pid, stdin, stdout, stderr = GObject.spawn_async(argv, working_directory=chdir, child_setup=self.__setup, standard_input=True, standard_output=True, standard_error=True, flags=flags) log.debug("SubProcess.__init__: _initChannel...", extra={"task":self.defname}) self.__channelTags = [] self.inChannel = self._initChannel(stdin, None, None, False) readFlags = GObject.IO_IN|GObject.IO_HUP#|GObject.IO_ERR self.outChannel = self._initChannel(stdout, readFlags, self.__io_cb, False) self.errChannel = self._initChannel(stderr, readFlags, self.__io_cb, True) log.debug("SubProcess.__init__: channelsClosed...", extra={"task":self.defname}) self.channelsClosed = False self.channelsClosedLock = threading.Lock() log.debug("SubProcess.__init__: child_watch_add...", extra={"task":self.defname}) # On Python3 pygobject versions before 3.10.0 spawn_async returns pid as 0 # see https://bugs.debian.org/cgi-bin/bugreport.cgi?bug=712537 if self.pid != 0: GObject.child_watch_add(self.pid, self.__child_watch_callback, None) if event is not None: event.set() thread = currentThread() if thread.name == "MainThread": do_spawn_async(None) else: event = threading.Event() GLib.idle_add(do_spawn_async, event) event.wait() log.debug("SubProcess.__init__: subprocExitCode...", extra={"task":self.defname}) self.subprocExitCode = (None, None) self.subprocFinishedEvent = threading.Event() subprocesses.append(self) log.debug("SubProcess.__init__: finished", extra={"task":self.defname}) def _initChannel (self, filedesc, callbackflag, callback, isstderr): channel = GLib.IOChannel(filedesc) channel.set_encoding(None) if sys.platform != "win32": channel.set_flags(GObject.IO_FLAG_NONBLOCK) if callback: tag = channel.add_watch(callbackflag, callback, isstderr) self.__channelTags.append(tag) return channel def _closeChannels (self): self.channelsClosedLock.acquire() try: if self.channelsClosed == True: return self.channelsClosed = True finally: self.channelsClosedLock.release() for tag in self.__channelTags: GObject.source_remove(tag) for channel in (self.inChannel, self.outChannel, self.errChannel): try: channel.close() except GObject.GError as error: pass def __setup (self): os.nice(15) def __child_watch_callback (self, pid, code, data): log.debug("SubProcess.__child_watch_callback: %s" % repr(code), extra={"task":self.defname}) # Kill the engine on any signal but 'Resource temporarily unavailable' self.subprocExitCode = (code, os.strerror(code)) if code != errno.EWOULDBLOCK: if isinstance(code, str): log.error(code, extra={"task":self.defname}) else: log.error(os.strerror(code), extra={"task":self.defname}) self.emit("died") self.gentleKill() def __io_cb (self, channel, condition, isstderr): line = "" if condition is GObject.IO_IN: line = channel.readline() elif condition is GObject.IO_IN|GObject.IO_HUP: return False # Some engines send author names in different encodinds (f.e. spike) if line.startswith("id author") or not line: return True if isstderr: log.error(line, extra={"task":self.defname}) else: for word in self.warnwords: if word in line: log.warning(line, extra={"task":self.defname}) return False else: log.debug(line.rstrip(), extra={"task":self.defname}) self.emit("line", line) return True def write (self, data): if self.channelsClosed: log.warning("Chan closed for %r" % data, extra={"task":self.defname}) return if data.rstrip(): log.info(data, extra={"task":self.defname}) self.inChannel.write(data) if data.endswith("\n"): try: self.inChannel.flush() except GObject.GError as e: log.error(str(e)+". Last line wasn't sent.", extra={"task":self.defname}) def sendSignal (self, sign): try: if sys.platform != "win32" and self.pid != 0: os.kill(self.pid, signal.SIGCONT) if self.pid != 0: os.kill(self.pid, sign) except OSError as e: if e.errno in (errno.ESRCH, errno.EACCES, errno.EINVAL): #No such process, Permission denied, Invalid argument pass else: raise OSError(e.errno, os.strerror(e.errno)) def gentleKill (self, first=1, second=1): t = Thread(target=self.__gentleKill_inner, name=fident(self.__gentleKill_inner), args=(first, second)) t.daemon = True t.start() def __gentleKill_inner (self, first, second): self.resume() self._closeChannels() time.sleep(first) code, string = self.subprocExitCode if code == None: self.sigterm() time.sleep(second) code, string = self.subprocExitCode if code == None: self.sigkill() self.subprocFinishedEvent.set() return self.subprocExitCode[0] self.subprocFinishedEvent.set() return code self.subprocFinishedEvent.set() return code def pause (self): if sys.platform != "win32": self.sendSignal(signal.SIGSTOP) def resume (self): if sys.platform != "win32": self.sendSignal(signal.SIGCONT) def sigkill (self): if sys.platform == "win32": self.sendSignal(signal.SIGABRT) else: self.sendSignal(signal.SIGKILL) if self.pid != 0: GLib.spawn_close_pid(self.pid) def sigterm (self): self.sendSignal(signal.SIGTERM) def sigint (self): self.sendSignal(signal.SIGINT) ################################################################################ import subprocess if sys.platform == "win32": class SubProcess(GObject.GObject): __gsignals__ = { "line": (GObject.SignalFlags.RUN_FIRST, None, (object,)), "died": (GObject.SignalFlags.RUN_FIRST, None, ()) } def __init__(self, path, args=[], warnwords=[], env=None, chdir="."): GObject.GObject.__init__(self) self.defname = os.path.split(path)[1] self.defname = self.defname[:1].upper() + self.defname[1:].lower() t = time.time() self.defname = (self.defname, time.strftime("%H:%m:%%.3f",time.localtime(t)) % (t%60)) log.debug(path, extra={"task":self.defname}) argv = [str(u) for u in [path]+args] log.debug("SubProcess.__init__: popen ...", extra={"task":self.defname}) def start_subprocess(event): if sys.platform == "win32": # To prevent engines opening console window startupinfo = subprocess.STARTUPINFO() startupinfo.dwFlags |= subprocess.STARTF_USESHOWWINDOW preexec_fn = None else: startupinfo = None preexec_fn = self.__setup self.subprocess = subprocess.Popen( argv, shell=False, stdin=subprocess.PIPE, stdout=subprocess.PIPE, preexec_fn=preexec_fn, cwd=chdir, universal_newlines=True, startupinfo=startupinfo) self.pid = self.subprocess.pid log.debug("SubProcess.__init__: pid=%s" % self.pid, extra={"task":self.defname}) self.stop_reading = threading.Event() t = Thread(target=self.__stdout_reader, name=self.defname[0]) t.start() if event is not None: event.set() if currentThread().name == "MainThread": start_subprocess(None) else: event = threading.Event() GLib.idle_add(start_subprocess, event) event.wait() self.subprocExitCode = (None, None) self.subprocFinishedEvent = threading.Event() subprocesses.append(self) def __setup (self): os.nice(15) def __stdout_reader(self): while True: if self.stop_reading.is_set(): break else: if self.subprocess.poll() is not None: GLib.idle_add(self.emit, "died") break elif self.subprocess.stdout.closed: GLib.idle_add(self.emit, "died") self.gentleKill() break else: line = self.subprocess.stdout.readline() if line: GLib.idle_add(self.emit, "line", line) def gentleKill (self, first=1, second=1): self.sigterm() self.stop_reading.set() self.subprocFinishedEvent.set() def sendSignal (self, sign): try: if sys.platform != "win32": os.kill(self.pid, signal.SIGCONT) os.kill(self.pid, sign) except OSError as e: if e.errno in (errno.ESRCH, errno.EACCES, errno.EINVAL): #No such process, Permission denied, Invalid argument pass else: raise OSError(e.errno, os.strerror(e.errno)) def pause (self): if sys.platform != "win32": self.sendSignal(signal.SIGSTOP) def resume (self): if sys.platform != "win32": self.sendSignal(signal.SIGCONT) def sigkill (self): if sys.platform == "win32": self.sendSignal(signal.SIGABRT) else: self.sendSignal(signal.SIGKILL) def sigterm (self): self.sendSignal(signal.SIGTERM) def sigint (self): self.sendSignal(signal.SIGINT) def write(self, data): if self.subprocess.poll() is not None: GLib.idle_add(self.emit, "died") elif self.subprocess.stdin.closed: GLib.idle_add(self.emit, "died") self.gentleKill() else: self.subprocess.stdin.write(data) self.subprocess.stdin.flush() ################################################################################ if __name__ == "__main__": loop = GObject.MainLoop() paths = ("igang.dk", "google.com", "google.dk", "myspace.com", "yahoo.com") maxlen = max(len(p) for p in paths) def callback (subp, line, path): print("\t", path.ljust(maxlen), line.rstrip("\n")) for path in paths: subp = SubProcess("/bin/ping", [path]) subp.connect("line", callback, path) loop.run() pychess-0.12.2/lib/pychess/System/idle_add.py0000644000175000017470000000155512641567764021407 0ustar tamasusers00000000000000from functools import wraps from threading import currentThread from gi.repository import GLib from pychess.System.Log import log from pychess.System import fident debug = False def idle_add (f): @wraps(f) def new_func (*args): thread = currentThread() if thread.name == "MainThread": if debug: msg = '%s(%s)' % (fident(f), ','.join([str(a) for a in args])) log.debug(msg, extra={'task': (thread.ident, thread.name, 'idle_add.new_func')}) f(*args) else: def logged_f(*args): if debug: msg = '%s(%s)' % (fident(f), ','.join([str(a) for a in args])) log.debug(msg, extra={'task': (thread.ident, thread.name, 'idle_add.new_func')}) f(*args) GLib.idle_add(logged_f, *args) return new_func pychess-0.12.2/lib/pychess/System/which.py0000644000175000017470000002611512641567764020763 0ustar tamasusers00000000000000#!/usr/bin/env python ### # Generators are not thread safe, so reduced which_files() to return the first match only !!! ### """ Which - locate a command * adapted from proposal__ by Erik Demaine and patch__ by Brian Curtin, which adds this feature__ to shutil __ http://bugs.python.org/file8185/find_in_path.py __ http://bugs.python.org/file15381/shutil_which.patch __ http://bugs.python.org/issue444582 * which_files() returns generator, which() returns first match, or raises IOError(errno.ENOENT) * searches current directory before ``PATH`` on Windows, but not before an explicitly passed path * accepts both string or iterable for an explicitly passed path, or pathext * accepts an explicitly passed empty path, or pathext (either '' or []) * does not search ``PATH`` for files that have a path specified in their name already * uses ``PATHEXT`` on Windows, providing a default value for different Windows versions .. function:: which_files(file [, mode=os.F_OK | os.X_OK[, path=None[, pathext=None]]]) Generate full paths, where the *file* is accesible under *mode* and is located in the directory passed as a part of the *file* name, or in any directory on *path* if a base *file* name is passed. The *mode* matches an existing executable file by default. The *path* defaults to the ``PATH`` environment variable, or to :const:`os.defpath` if the ``PATH`` variable is not set. On Windows, a current directory is searched before directories in the ``PATH`` variable, but not before directories in an explicitly passed *path* string or iterable. The *pathext* is used to match files with any of the extensions appended to *file*. On Windows, it defaults to the ``PATHEXT`` environment variable. If the ``PATHEXT`` variable is not set, then the default *pathext* value is hardcoded for different Windows versions, to match the actual search performed on command execution. On Windows <= 4.x, ie. NT and older, it defaults to '.COM;.EXE;.BAT;.CMD'. On Windows 5.x, ie. 2k/XP/2003, the extensions '.VBS;.VBE;.JS;.JSE;.WSF;.WSH' are appended, On Windows >= 6.x, ie. Vista/2008/7, the extension '.MSC' is further appended. The actual search on command execution may differ under Wine_, which may use a `different default value`__, that is `not treated specially here`__. In each directory, the *file* is first searched without any additional extension, even when a *pathext* string or iterable is explicitly passed. .. _Wine: http://www.winehq.org/ __ http://source.winehq.org/source/programs/cmd/wcmdmain.c#L1019 __ http://wiki.winehq.org/DeveloperFaq#detect-wine .. function:: which(file [, mode=os.F_OK | os.X_OK[, path=None[, pathext=None]]]) Return the first full path matched by :func:`which_files`, or raise :exc:`IOError` (:const:`errno.ENOENT`). """ __docformat__ = 'restructuredtext en' __all__ = 'which which_files'.split() import sys, os, os.path from pychess.compat import basestring _windows = sys.platform.startswith('win') if _windows: def _getwinpathext(*winver): """ Return the default PATHEXT value for a particular Windows version. On Windows <= 4.x, ie. NT and older, it defaults to '.COM;.EXE;.BAT;.CMD'. On Windows 5.x, ie. 2k/XP/2003, the extensions '.VBS;.VBE;.JS;.JSE;.WSF;.WSH' are appended, On Windows >= 6.x, ie. Vista/2008/7, the extension '.MSC' is further appended. Availability: Windows >>> def test(extensions, *winver): ... result = _getwinpathext(*winver) ... expected = os.pathsep.join(['.%s' % ext.upper() for ext in extensions.split()]) ... assert result == expected, 'getwinpathext: %s != %s' % (result, expected) >>> test('com exe bat cmd', 3) >>> test('com exe bat cmd', 4) >>> test('com exe bat cmd vbs vbe js jse wsf wsh', 5) >>> test('com exe bat cmd vbs vbe js jse wsf wsh msc', 6) >>> test('com exe bat cmd vbs vbe js jse wsf wsh msc', 7) """ if not winver: winver = sys.getwindowsversion() return os.pathsep.join('.COM;.EXE;.BAT;.CMD;.VBS;.VBE;.JS;.JSE;.WSF;.WSH;.MSC'.split(';')[:( winver[0] < 5 and 4 or winver[0] < 6 and -1 or None )]) def which_files(file, mode=os.F_OK | os.X_OK, path=None, pathext=None): """ Generate full paths, where the file*is accesible under mode and is located in the directory passed as a part of the file name, or in any directory on path if a base file name is passed. The mode matches an existing executable file by default. The path defaults to the PATH environment variable, or to os.defpath if the PATH variable is not set. On Windows, a current directory is searched before directories in the PATH variable, but not before directories in an explicitly passed path string or iterable. The pathext is used to match files with any of the extensions appended to file. On Windows, it defaults to the ``PATHEXT`` environment variable. If the PATHEXT variable is not set, then the default pathext value is hardcoded for different Windows versions, to match the actual search performed on command execution. On Windows <= 4.x, ie. NT and older, it defaults to '.COM;.EXE;.BAT;.CMD'. On Windows 5.x, ie. 2k/XP/2003, the extensions '.VBS;.VBE;.JS;.JSE;.WSF;.WSH' are appended, On Windows >= 6.x, ie. Vista/2008/7, the extension '.MSC' is further appended. The actual search on command execution may differ under Wine, which may use a different default value, that is not treated specially here. In each directory, the file is first searched without any additional extension, even when a pathext string or iterable is explicitly passed. >>> def test(expected, *args, **argd): ... result = list(which_files(*args, **argd)) ... assert result == expected, 'which_files: %s != %s' % (result, expected) ... ... try: ... result = [ which(*args, **argd) ] ... except IOError: ... result = [] ... assert result[:1] == expected[:1], 'which: %s != %s' % (result[:1], expected[:1]) >>> ### Set up >>> import stat, tempfile >>> dir = tempfile.mkdtemp(prefix='test-') >>> ext = '.ext' >>> tmp = tempfile.NamedTemporaryFile(prefix='command-', suffix=ext, dir=dir) >>> name = tmp.name >>> file = os.path.basename(name) >>> here = os.path.join(os.curdir, file) >>> nonexistent = '%s-nonexistent' % name >>> path = os.pathsep.join([ nonexistent, name, dir, dir ]) ... # Test also that duplicates are removed, and non-existent objects ... # or non-directories in path do not trigger any exceptions. >>> ### Test permissions >>> test(_windows and [name] or [], file, path=path) >>> test(_windows and [name] or [], file, mode=os.X_OK, path=path) ... # executable flag is not needed on Windows >>> test([name], file, mode=os.F_OK, path=path) >>> test([name], file, mode=os.R_OK, path=path) >>> test([name], file, mode=os.W_OK, path=path) >>> test([name], file, mode=os.R_OK|os.W_OK, path=path) >>> os.chmod(name, stat.S_IRWXU) >>> test([name], file, mode=os.R_OK|os.W_OK|os.X_OK, path=path) >>> ### Test paths >>> _save_path = os.environ.get('PATH', '') >>> cwd = os.getcwd() >>> test([], file, path='') >>> test([], file, path=nonexistent) >>> test([], nonexistent, path=path) >>> test([name], file, path=path) >>> test([name], name, path=path) >>> test([name], name, path='') >>> test([name], name, path=nonexistent) >>> os.chdir(dir) >>> test([name], file, path=path) >>> test([here], file, path=os.curdir) >>> test([name], name, path=os.curdir) >>> test([], file, path='') >>> test([], file, path=nonexistent) >>> os.environ['PATH'] = path >>> test(_windows and [here] or [name], file) ... # current directory is always searched first on Windows >>> os.environ['PATH'] = os.curdir >>> test([here], file) >>> test([name], name) >>> os.environ['PATH'] = '' >>> test(_windows and [here] or [], file) >>> os.environ['PATH'] = nonexistent >>> test(_windows and [here] or [], file) >>> os.chdir(cwd) >>> os.environ['PATH'] = path >>> test([name], file) >>> os.environ['PATH'] = _save_path >>> ### Test extensions >>> test([], file[:-4], path=path, pathext='') >>> test([], file[:-4], path=path, pathext=nonexistent) >>> test([name], file[:-4], path=path, pathext=ext) >>> test([name], file, path=path, pathext=ext) >>> test([name], file, path=path, pathext='') >>> test([name], file, path=path, pathext=nonexistent) >>> ### Tear down >>> tmp.close() >>> os.rmdir(dir) """ filepath, file = os.path.split(file) if filepath: path = (filepath,) elif path is None: path = os.environ.get('PATH', os.defpath).split(os.pathsep) if _windows and not os.curdir in path: path.insert(0, os.curdir) # current directory is always searched first on Windows elif isinstance(path, basestring): path = path.split(os.pathsep) if pathext is None: pathext = [''] if _windows: pathext += (os.environ.get('PATHEXT', '') or _getwinpathext()).lower().split(os.pathsep) elif isinstance(pathext, basestring): pathext = pathext.split(os.pathsep) if not '' in pathext: pathext.insert(0, '') # always check command without extension, even for an explicitly passed pathext seen = set() for dir in path: if dir: # only non-empty directories are searched id = os.path.normcase(os.path.abspath(dir)) if not id in seen: # each directory is searched only once seen.add(id) woex = os.path.join(dir, file) for ext in pathext: name = woex + ext if os.path.isfile(name) and os.access(name, mode): return name # yield name return None def which(file, mode=os.F_OK | os.X_OK, path=None, pathext=None): """ Return the first full path matched by which_files(), or raise IOError(errno.ENOENT). >>> # See which_files() for a doctest. """ return which_files(file, mode, path, pathext) # try: # return iter(which_files(file, mode, path, pathext)).next() # except StopIteration: # try: # from errno import ENOENT # except ImportError: # ENOENT = 2 # raise IOError(ENOENT, '%s not found' % (mode & os.X_OK and 'command' or 'file'), file) if __name__ == '__main__': import doctest doctest.testmod() pychess-0.12.2/lib/pychess/System/prefix.py0000755000175000017470000000624312641567764021161 0ustar tamasusers00000000000000""" This module provides some basic functions for accessing pychess datefiles in system or user space """ import os import sys ################################################################################ # Locate files in system space # ################################################################################ # Test if we are installed on the system, frozen or are being run from tar/svn if getattr(sys, 'frozen', False): _prefix = os.path.join(os.path.dirname(sys.executable), "share", "pychess") _installed = True else: home_local = os.path.expanduser("~") + "/.local" if sys.prefix in __file__: for sub in ("share", "games", "share/games", "local/share", "local/games", "local/share/games"): _prefix = os.path.join (sys.prefix, sub, "pychess") if os.path.isdir(os.path.join(_prefix, "pieces")): _installed = True break else: raise Exception("can't find the pychess data directory") elif home_local in __file__: _prefix = os.path.join (home_local, "share", "pychess") if os.path.isdir(os.path.join(_prefix, "pieces")): _installed = True else: raise Exception("can't find the pychess data directory") else: _prefix = os.path.abspath (os.path.join (os.path.dirname (__file__), "../../..")) _installed = False def addDataPrefix (subpath): return os.path.abspath (os.path.join (_prefix, subpath)) def getDataPrefix (): return _prefix def isInstalled (): return _installed ################################################################################ # Locate files in user space # ################################################################################ def __get_user_dir (xdg_env_var, fallback_dir_path): return os.environ.get(xdg_env_var, os.path.join(os.path.expanduser("~"), fallback_dir_path)) def get_user_data_dir (): return __get_user_dir("XDG_DATA_HOME", ".local/share") def get_user_config_dir (): return __get_user_dir("XDG_CONFIG_HOME", ".config") def get_user_cache_dir (): return __get_user_dir("XDG_CACHE_HOME", ".cache") pychess = "pychess" def getUserDataPrefix (): return os.path.join(get_user_data_dir(), pychess) def addUserDataPrefix (subpath): return os.path.join(getUserDataPrefix(), subpath) def getEngineDataPrefix (): return os.path.join(getUserDataPrefix(), "engines") def addEngineDataPrefix (subpath): return os.path.join(getEngineDataPrefix(), subpath) def getUserConfigPrefix (): return os.path.join(get_user_config_dir(), pychess) def addUserConfigPrefix (subpath): return os.path.join(getUserConfigPrefix(), subpath) def getUserCachePrefix (): return os.path.join(get_user_cache_dir(), pychess) def addUserCachePrefix (subpath): return os.path.join(getUserCachePrefix(), subpath) for directory in (getUserDataPrefix(), getEngineDataPrefix(), getUserConfigPrefix(), getUserCachePrefix()): if not os.path.isdir(directory): os.makedirs(directory, mode=0o700) pychess-0.12.2/lib/pychess/System/__init__.py0000755000175000017470000000141112641567764021413 0ustar tamasusers00000000000000import inspect import sys from pychess.compat import basestring def fident (f): ''' Get an identifier for a function or method ''' joinchar = '.' if hasattr(f, 'im_class'): fparent = f.im_class.__name__ else: joinchar = ':' fparent = f.__module__.split('.')[-1] # sometimes inspect.getsourcelines() segfaults on windows if getattr(sys, 'frozen', False) or sys.platform == "win32": lineno = 0 else: lineno = inspect.getsourcelines(f)[1] fullname = joinchar.join((fparent, f.__name__)) return ':'.join((fullname, str(lineno))) def get_threadname (thread_namer): if isinstance(thread_namer, basestring): return thread_namer else: return fident(thread_namer) pychess-0.12.2/lib/pychess/System/TaskQueue.py0000755000175000017470000000421312641567764021566 0ustar tamasusers00000000000000# http://aspn.activestate.com/ASPN/Cookbook/Python/Recipe/475160 # Was accepted into Python 2.5, but earlier versions still have # to do stuff manually import threading from pychess.compat import Queue def TaskQueue (): if hasattr(Queue, "task_done"): return Queue() return _TaskQueue() class _TaskQueue(Queue): def __init__(self): Queue.__init__(self) self.all_tasks_done = threading.Condition(self.mutex) self.unfinished_tasks = 0 def _put(self, item): Queue._put(self, item) self.unfinished_tasks += 1 def task_done(self): """Indicate that a formerly enqueued task is complete. Used by Queue consumer threads. For each get() used to fetch a task, a subsequent call to task_done() tells the queue that the processing on the task is complete. If a join() is currently blocking, it will resume when all items have been processed (meaning that a task_done() call was received for every item that had been put() into the queue). Raises a ValueError if called more times than there were items placed in the queue. """ self.all_tasks_done.acquire() try: unfinished = self.unfinished_tasks - 1 if unfinished <= 0: if unfinished < 0: raise ValueError('task_done() called too many times') self.all_tasks_done.notifyAll() self.unfinished_tasks = unfinished finally: self.all_tasks_done.release() def join(self): """Blocks until all items in the Queue have been gotten and processed. The count of unfinished tasks goes up whenever an item is added to the queue. The count goes down whenever a consumer thread calls task_done() to indicate the item was retrieved and all work on it is complete. When the count of unfinished tasks drops to zero, join() unblocks. """ self.all_tasks_done.acquire() try: while self.unfinished_tasks: self.all_tasks_done.wait() finally: self.all_tasks_done.release() pychess-0.12.2/lib/pychess/System/ping.py0000755000175000017470000000556312641567764020625 0ustar tamasusers00000000000000# -*- coding: UTF-8 -*- from __future__ import print_function import re import sys from gi.repository import GObject from pychess.System.Log import log from pychess.System.SubProcess import SubProcess, searchPath class Pinger (GObject.GObject): """ The received signal contains the time it took to get response from the server in millisecconds. -1 means that some error occurred """ __gsignals__ = { "received": (GObject.SignalFlags.RUN_FIRST, None, (float,)), "error": (GObject.SignalFlags.RUN_FIRST, None, (str,)) } def __init__ (self, host): GObject.GObject.__init__(self) self.host = host self.subproc = None self.expression = re.compile("=([\d\.]+) (m?s)") # We need untranslated error messages in regexp search # below, so have to use deferred translation here def _(msg): return msg error = _("Destination Host Unreachable") self.errorExprs = ( re.compile("(%s)" % error), ) del _ self.restartsOnDead = 3 self.deadCount = 0 def start (self): assert not self.subproc if sys.platform == "win32": args = ["-t", self.host] else: args = ["-i10", self.host] self.subproc = SubProcess(searchPath("ping"), args, env={"LANG":"en"}) self.conid1 = self.subproc.connect("line", self.__handleLines) self.conid2 = self.subproc.connect("died", self.__handleDead) def __handleLines (self, subprocess, line): match = self.expression.search(line) if match: time, unit = match.groups() time = float(time) if unit == "s": time *= 1000 self.emit("received", time) else: for expr in self.errorExprs: match = expr.search(line) if match: msg = match.groups()[0] self.emit("error", _(msg)) def __handleDead (self, subprocess): if self.deadCount < self.restartsOnDead: log.warning("Pinger died and restarted (%d/%d)" % (self.deadCount+1, self.restartsOnDead), extra={"task": self.subproc.defname}) self.stop() self.start() self.deadCount += 1 else: self.emit("error", _("Died")) self.stop() def stop (self): if not self.subproc: return exitCode = self.subproc.gentleKill() self.subproc.disconnect(self.conid1) self.subproc.disconnect(self.conid2) self.subproc = None if __name__ == "__main__": pinger = Pinger("google.com") def callback(pinger, time): print(time) pinger.connect("received", callback) pinger.start() import time time.sleep(5) pinger.stop() time.sleep(3) pychess-0.12.2/lib/pychess/System/MultiArray.py0000755000175000017470000000052412641567764021751 0ustar tamasusers00000000000000from array import array class MultiArray: def __init__ (self, oneLineData, *lengths): self.lengths = lengths self.data = oneLineData def get (self, *indexes): index = 0 for depth, i in enumerate(indexes[::-1]): index += i*self.lengths[depth]**depth return self.data[index] pychess-0.12.2/lib/pychess/System/accordion.py0000644000175000017470000000401412641567764021614 0ustar tamasusers00000000000000from __future__ import print_function from gi.repository import Gtk class Accordion(Gtk.TreeView): def __init__(self, model): GObject.GObject.__init__(self, model) self.set_headers_visible(False) self.set_property("show-expanders", False) self.set_property("level-indentation", 10) renderer = Gtk.CellRendererText() column = Gtk.TreeViewColumn('Column', renderer) def top_level(column, cell, store, iter): cell.set_property("text", store[iter][0]) if store.iter_depth(iter) == 0: cell.set_property('foreground', "black") cell.set_property('background', "gray") else: cell.set_property('foreground', "black") cell.set_property('background', "white") column.set_cell_data_func(renderer, top_level) self.append_column(column) selection = self.get_selection() selection.set_mode(Gtk.SelectionMode.SINGLE) selection.connect('changed', self.on_selection_changed) self.current = None def on_selection_changed(self, selection, data=None): model, iter = selection.get_selected() if model.iter_depth(iter) == 0 and iter != self.current: self.collapse_all() self.expand_row(model.get_path(iter), True) self.current = iter selected_item = model.get_value(iter, 0) print(selected_item) if __name__ == "__main__": window = Gtk.Window(Gtk.WindowType.TOPLEVEL) window.set_title("Accordion example") window.set_size_request(200, 200) window.connect("delete_event", Gtk.main_quit) treestore = Gtk.TreeStore(str) for parent in range(4): piter = treestore.append(None, ['parent %i' % parent]) for child in range(3): treestore.append(piter, ['child %i of parent %i' % (child, parent)]) accordion = Accordion(treestore) window.add(accordion) window.show_all() Gtk.main() pychess-0.12.2/lib/pychess/System/Log.py0000755000175000017470000000304612641567764020403 0ustar tamasusers00000000000000from __future__ import print_function from __future__ import absolute_import import os import sys import time import logging from pychess.compat import PY3 from .prefix import addUserDataPrefix newName = time.strftime("%Y-%m-%d_%H-%M-%S") + ".log" logformat = "%(asctime)s.%(msecs)03d %(task)s %(levelname)s: %(message)s" # delay=True argument prevents creating empty .log files encoding = "utf-8" if sys.platform == "win32" and PY3 else None fh = logging.FileHandler(addUserDataPrefix(newName), delay=True, encoding=encoding) fh.setFormatter(logging.Formatter(fmt=logformat, datefmt='%H:%M:%S')) logger = logging.getLogger() logger.addHandler(fh) class ExtraAdapter(logging.LoggerAdapter): def process(self, msg, kwargs): kwargs["extra"] = kwargs.get("extra", {"task": "Default"}) return msg, kwargs log = ExtraAdapter(logger, {}) class LogPipe: def __init__ (self, to, flag=""): self.to = to self.flag = flag def write (self, data): try: self.to.write(data) self.flush() except IOError: if self.flag == "stdout": # Certainly hope we never end up here pass else: log.error("Could not write data '%s' to pipe '%s'" % (data, repr(self.to))) if log: for line in data.splitlines(): if line: log.debug (line, extra={"task": self.flag}) def flush (self): self.to.flush() def fileno (self): return self.to.fileno() pychess-0.12.2/lib/pychess/System/conf.py0000755000175000017470000000246512641567764020613 0ustar tamasusers00000000000000""" The task of this module is to provide easy saving/loading of configurations It also supports gconf like connection, so you get notices when a property has changed. """ from __future__ import absolute_import from . import conf_configParser as confmodule """Module for using gconf without having to care about types""" def notify_add (key, func, *args): """The signature for func must be self, client, *args, **kwargs""" assert isinstance(key, str) return confmodule.notify_add(key, func, args) def notify_remove (conid): confmodule.notify_remove(conid) def getStrict (key): assert hasKey (key) return confmodule.get(key) def get (key, alternative): if hasKey (key): return confmodule.get(key) if callable(alternative): alternative = alternative() return alternative def set (key, value): confmodule.set(key, value) def hasKey (key): return confmodule.hasKey(key) import sys, os if sys.platform == "win32": username = os.environ["USERNAME"] del sys, os else: from os import getuid from pwd import getpwuid userdata = getpwuid(getuid()) realname = userdata.pw_gecos.split(",")[0] if realname: username = realname else: username = userdata.pw_name del getuid, getpwuid del sys, os del userdata, realname pychess-0.12.2/lib/pychess/System/LogEmitter.py0000644000175000017470000000214312641567764021727 0ustar tamasusers00000000000000import time import logging from gi.repository import GObject class LogEmitter(GObject.GObject): __gsignals__ = { "logged": (GObject.SignalFlags.RUN_FIRST, None, (object,)) } # list of (str, float, str, int) def __init__ (self): GObject.GObject.__init__(self) # We store everything in this list, so that the LogDialog, which is # imported a little later, will have all data ever given to Log. # When Dialog inits, it will set this list to None, and we will stop # appending data to it. Ugly? Somewhat I guess. self.messages = [] class GLogHandler(logging.Handler): def __init__ (self, emitter): logging.Handler.__init__(self) self.emitter = emitter def emit(self, record): message = self.format(record) if self.emitter.messages != None: self.emitter.messages.append((record.task, time.time(), message, record.levelno)) self.emitter.emit("logged", (record.task, time.time(), message, record.levelno)) logemitter = LogEmitter() pychess-0.12.2/lib/pychess/System/protoopen.py0000755000175000017470000000267312641567764021714 0ustar tamasusers00000000000000import os import sys from pychess.compat import open, urlopen, unquote PGN_ENCODING = "latin_1" def splitUri (uri): uri = unquote(uri) # escape special chars uri = uri.strip('\r\n\x00') # remove \r\n and NULL if sys.platform == "win32": return uri.split(":///") else: return uri.split("://") def protoopen (uri): """ Function for opening many things """ try: return open(uri, "rU", encoding=PGN_ENCODING) except (IOError, OSError): pass try: return urlopen(uri) except (IOError, OSError): pass raise IOError("Protocol isn't supported by pychess") def protosave (uri, append=False): """ Function for saving many things """ splitted = splitUri(uri) if splitted[0] == "file": if append: return open(splitted[1], "a", encoding=PGN_ENCODING) return open(splitted[1], "w") elif len(splitted) == 1: if append: return open(splitted[0], "a", encoding=PGN_ENCODING) return open(splitted[0], "w", encoding=PGN_ENCODING) raise IOError("PyChess doesn't support writing to protocol") def isWriteable (uri): """ Returns true if protoopen can open a write pipe to the uri """ splitted = splitUri(uri) if splitted[0] == "file": return os.access (splitted[1], os.W_OK) elif len(splitted) == 1: return os.access (splitted[0], os.W_OK) return False pychess-0.12.2/lib/pychess/System/command.py0000644000175000017470000000464112641567764021277 0ustar tamasusers00000000000000#! /usr/bin/env python from __future__ import print_function import sys import threading import subprocess import traceback class Command(object): """ Enables to run subprocess commands in a different thread with TIMEOUT option. Based on jcollado's solution: http://stackoverflow.com/questions/1191374/subprocess-with-timeout/4825933#4825933 """ command = None inputstr = None process = None status = None output, error = '', '' def __init__(self, command, inputstr): self.command = command self.inputstr = inputstr def run(self, timeout=None, **kwargs): """ Run a command then return: (status, output, error). """ # default stdin, stdout and stderr if 'stdin' not in kwargs: kwargs['stdin'] = subprocess.PIPE if 'stdout' not in kwargs: kwargs['stdout'] = subprocess.PIPE if 'stderr' not in kwargs: kwargs['stderr'] = subprocess.PIPE try: self.process = subprocess.Popen(self.command, universal_newlines=True, **kwargs) except OSError: return self.status, self.output, self.error except ValueError: return self.status, self.output, self.error if sys.version_info >= (3, 3, 0): try: self.output, self.error = self.process.communicate(input=self.inputstr, timeout=timeout) except subprocess.TimeoutExpired: self.process.kill() self.output, self.error = self.process.communicate() self.status = self.process.returncode return self.status, self.output, self.error else: def target(**kwargs): try: self.output, self.error = self.process.communicate(input=self.inputstr) self.status = self.process.returncode except: self.error = traceback.format_exc() self.status = -1 # thread thread = threading.Thread(target=target, kwargs=kwargs) thread.start() thread.join(timeout) if thread.is_alive(): self.process.kill() thread.join() return self.status, self.output, self.error if __name__ == "__main__": command = Command("DC", "xboard\nprotover 2\n") command = Command("DC", "uci\n") print(command.run(timeout=3)) pychess-0.12.2/lib/pychess/gfx/0000755000175000017470000000000012653231274016565 5ustar tamasusers00000000000000pychess-0.12.2/lib/pychess/gfx/__init__.py0000755000175000017470000000000012641567764020704 0ustar tamasusers00000000000000pychess-0.12.2/lib/pychess/gfx/Pieces.py0000644000175000017470000010315512641567764020371 0ustar tamasusers00000000000000import re import time import math import cairo from gi.repository import Rsvg from pychess.Utils.const import * from pychess.System import conf from pychess.System.prefix import addDataPrefix from pychess.System.cairoextras import create_cairo_font_face_for_file elemExpr = re.compile(r"([a-zA-Z])\s*([0-9\.,\s]*)\s+|[z]\s+") spaceExpr = re.compile(r"[\s,]+") l = [] def parse(n, psize): yield "def f(c):" s = psize/size for cmd, points in n: pstr = ",".join(str(p*s) for p in points) if cmd == "M": yield "c.rel_move_to(%s)" % pstr elif cmd == "L": yield "c.rel_line_to(%s)" % pstr else: yield "c.rel_curve_to(%s)" % pstr # This has double speed at drawing, but when generating new functions, it # takes about ten times longer. def drawPiece1 (piece, cc, x, y, psize, allwhite=False, asean=False): cc.save() cc.move_to(x,y) if not psize in parsedPieces[piece.color][piece.sign]: exec("\n ".join(parse(parsedPieces[piece.color][piece.sign][size],psize))) parsedPieces[piece.color][piece.sign][psize] = f cc.fill() cc.restore() def drawPieceReal (piece, cc, psize, allwhite=False, asean=False): color = WHITE if allwhite else piece.color # Do the actual drawing to the Cairo context for cmd, points in parsedPieces[color][piece.sign][psize]: if cmd == 'M': cc.rel_move_to(*points) elif cmd == 'L': cc.rel_line_to(*points) elif cmd == 'C': cc.rel_curve_to(*points) else: cc.set_source_rgb(1,1,1) cc.fill_preserve() cc.set_source_rgb(0,0,0) def drawPiece2 (piece, cc, x, y, psize, allwhite=False, asean=False): """Rendering pieces with draw each time method""" if asean: drawPiece3(piece, cc, x, y, psize, allwhite=allwhite, asean=True) return cc.save() cc.move_to(x,y) if not psize in parsedPieces[piece.color][piece.sign]: list = [(cmd, [(p*psize/size) for p in points]) for cmd, points in parsedPieces[piece.color][piece.sign][size]] parsedPieces[piece.color][piece.sign][psize] = list drawPieceReal (piece, cc, psize, allwhite) cc.fill() cc.restore() piece_ord = {KING: 0, QUEEN: 1, ROOK: 2, BISHOP: 3, KNIGHT: 4, PAWN: 5} pnames = ('Pawn','Knight','Bishop','Rook','Queen','King') def drawPiece3(piece, context, x, y, psize, allwhite=False, asean=False): """Rendering pieces using .svg chess figurines""" color = WHITE if allwhite else piece.color if asean: image = makruk_svg_pieces[color][piece.sign] w, h = image.props.width, image.props.height offset_x = 0 offset_y = 0 elif all_in_one: image = svg_pieces w, h = image.props.width/6, image.props.height/2 offset_x = piece_ord[piece.sign]*psize offset_y = 0 if color == BLACK else psize else: image = svg_pieces[color][piece.sign] w, h = image.props.width, image.props.height offset_x = 0 offset_y = 0 context.save() context.rectangle(x, y, psize, psize) context.clip() context.translate(x-offset_x, y-offset_y) context.scale(1.0*psize/w, 1.0*psize/h) context.push_group() if asean: image.render_cairo(context) elif all_in_one: pieceid = '#%s%s' % ('White' if color==0 else 'Black', pnames[piece.sign-1]) image.render_cairo_sub(context, id=pieceid) else: image.render_cairo(context) context.pop_group_to_source() context.paint_with_alpha(piece.opacity) context.restore() def drawPiece4(piece, context, x, y, psize, allwhite=False, asean=False): """Rendering pieces using .ttf chessfont figurines""" if asean: drawPiece3(piece, context, x, y, psize, allwhite=allwhite, asean=True) return color = WHITE if allwhite else piece.color context.set_font_face(chess_font_face) context.set_font_size(psize) context.move_to(x, y+psize) context.text_path(piece2char[color][piece.sign]) close_path = False for cmd, points in context.copy_path(): if cmd == 0: context.move_to(*points) if close_path: context.set_source_rgb(1,1,1) context.fill_preserve() context.set_source_rgb(0,0,0) close_path = False elif cmd == 1: context.line_to(*points) elif cmd == 2: context.curve_to(*points) else: close_path = True context.fill() # This version has proven itself nearly three times as slow as the "draw each time" method. # At least when drawing one path only. Might be useful when drawing svg def drawPiece5 (piece, cc, x, y, psize, allwhite=False, asean=False): """Rendering pieces from cache instead of draw each time""" if asean: drawPiece3(piece, context, x, y, psize, allwhite=allwhite, asean=True) return if not piece in surfaceCache: s = cc.get_target().create_similar(cairo.CONTENT_COLOR_ALPHA, int(size), int(size)) ctx = cairo.Context(s) ctx.move_to(0,0) drawPieceReal (piece, ctx, size) ctx.set_source_rgb(0,0,0) ctx.fill() surfaceCache[piece] = s cc.save() cc.set_source_rgb(0,0,0) cc.scale(psize/size, psize/size) cc.translate(x*size/psize, y*size/psize) cc.rectangle (0, 0, int(size), int(size)) # TODO: DOes this give any performance boost? # From cairo thread: # Or paint() instead of fill(). fill() needs a path, so you should do a # rectangle() first. cc.set_source_surface(surfaceCache[piece], 0, 0) cc.fill() cc.restore() surfaceCache = {} size = 800.0 pieces = { BLACK: { KING: "M 653.57940,730.65870 L 671.57940,613.65870 C 725.57940,577.65870 797.57940,514.65870 797.57940,397.65870 C 797.57940,325.65870 734.57940,280.65870 662.57940,280.65870 C 590.57940,280.65870 509.57940,334.65870 509.57940,334.65870 C 509.57940,334.65870 554.57940,190.65870 428.57940,154.65870 L 428.57940,118.65870 L 482.57940,118.65870 L 482.57940,64.658690 L 428.57940,64.658690 L 428.57940,10.658690 L 374.57940,10.658690 L 374.57940,64.658690 L 320.57940,64.658690 L 320.57940,118.65870 L 374.57940,118.65870 L 374.57940,154.65870 C 248.57940,190.65870 293.57940,334.65870 293.57940,334.65870 C 293.57940,334.65870 212.57940,280.65870 140.57940,280.65870 C 68.579380,280.65870 5.5793840,325.65870 5.5793840,397.65870 C 5.5793840,514.65870 77.579380,577.65870 131.57940,613.65870 L 149.57940,730.65870 C 158.57940,757.65870 221.57940,793.65870 401.57940,793.65870 C 581.57940,793.65870 644.57940,757.65870 653.57940,730.65870 z M 374.57940,541.65870 C 329.57940,541.65870 212.57940,550.65870 167.57940,568.65870 C 113.57940,541.65870 59.579380,496.65870 59.579380,406.65870 C 59.579380,352.65870 86.579380,334.65870 149.57940,334.65870 C 212.57940,334.65870 356.57940,397.65870 374.57940,541.65870 z M 428.57940,541.65870 C 446.57940,397.65870 590.57940,334.65870 662.57940,334.65870 C 716.57940,334.65870 743.57940,352.65870 743.57940,406.65870 C 743.57940,496.65870 689.57940,541.65870 635.57940,568.65870 C 590.57940,550.65870 473.57940,541.65870 428.57940,541.65870 z M 617.57940,667.65870 L 608.57940,705.90870 C 437.57940,678.90870 365.57940,678.90870 194.57940,705.90870 L 185.57940,667.65870 C 365.57940,640.65870 437.57940,640.65870 617.57940,667.65870 z M 464.57940,514.65870 C 527.57940,514.65870 581.57940,523.65870 635.57940,541.65870 C 707.57940,487.65870 716.57940,442.65870 716.57940,406.65870 C 716.57940,379.65870 698.57940,361.65870 662.57940,361.65870 C 554.57940,361.65670 473.57940,451.65870 464.57940,514.65870 z M 338.57940,514.65870 C 329.57940,451.65870 239.57940,361.65670 140.57940,361.65870 C 104.57940,361.65870 86.579380,388.65870 86.579380,415.65870 C 86.579380,442.65870 95.579380,487.65870 167.57940,541.65870 C 221.57940,523.65870 275.57940,514.65870 338.57940,514.65870 z ", QUEEN: "M 617.12310,626.00950 C 617.12310,599.00950 627.77310,557.68550 671.12310,536.00950 C 689.12310,527.00950 689.12310,509.00950 689.12310,500.00950 C 689.12310,471.54950 743.12310,203.00950 743.12310,203.00950 C 779.62510,198.74750 796.96610,170.47750 796.96610,144.34650 C 796.96610,112.98940 772.26810,85.907430 738.52810,85.907430 C 710.73310,85.907430 680.56310,109.18740 679.85110,143.63450 C 679.66510,152.63250 681.03910,169.05250 697.43010,186.15650 L 590.12310,392.00950 L 590.12310,158.00950 C 619.03410,151.95050 636.85210,127.48250 636.85210,99.687430 C 636.85210,69.517430 610.72110,42.199430 577.93710,42.199430 C 544.44210,42.199430 519.27910,70.470430 519.73610,102.06340 C 519.97310,118.45540 527.57510,136.03450 545.12410,149.00950 L 464.12410,383.00950 L 428.12410,131.00950 C 452.74310,117.03040 459.86810,97.075430 459.86810,80.208430 C 459.86810,41.011430 428.74910,20.581430 401.19210,20.818430 C 371.26010,21.076430 342.75310,46.950430 342.75310,77.120430 C 342.75310,107.05240 359.14410,122.73150 374.12410,131.00950 L 338.12410,383.00950 L 257.12410,149.00950 C 275.75910,134.13450 282.17310,119.64340 282.17310,98.976430 C 282.17310,77.833430 264.35910,42.199430 223.25910,42.199430 C 190.47610,42.199430 165.29410,70.944430 165.29410,99.926430 C 165.29410,134.84850 190.23910,153.37750 212.12410,158.01050 L 212.12410,392.01050 L 104.12410,185.01050 C 117.78210,170.95350 120.15710,154.06050 120.15710,145.06050 C 120.15710,114.41440 97.114060,85.807430 59.124060,86.010430 C 33.925060,86.146430 3.4010650,109.06240 3.0420650,145.06050 C 2.8040650,168.81650 20.858060,200.88650 59.124060,203.01050 C 59.124060,203.01050 113.12410,473.01050 113.12410,500.01050 C 113.12410,509.01150 113.12410,527.01050 131.12410,536.01050 C 167.12410,554.01150 185.12410,599.01050 185.12410,626.01050 C 185.12410,662.01150 158.12410,698.01150 158.12410,707.01150 C 158.12410,752.01050 320.12410,779.01150 401.12410,778.99150 C 473.12410,778.97350 644.12410,752.01050 644.12410,707.01050 C 644.12410,698.01050 617.12410,671.01050 617.12410,626.01050 L 617.12310,626.00950 z M 594.55210,537.12950 C 583.21810,553.12950 581.21810,558.46250 576.55210,575.12950 C 487.21810,553.79650 327.21810,547.79650 225.88510,575.79650 C 221.21710,557.79650 219.21710,550.46250 208.55110,537.12950 C 325.21710,508.46250 479.21710,506.46250 594.55110,537.12950 L 594.55210,537.12950 z M 570.55210,663.79650 C 555.88510,674.46250 551.21810,682.46250 542.55210,693.79650 C 434.55210,677.12950 363.88410,674.46250 255.21810,693.12950 C 246.55210,679.79650 241.88610,673.12950 229.21810,663.79650 C 341.88610,634.46250 457.88610,644.46250 570.55210,663.79650 L 570.55210,663.79650 z ", ROOK: "M 232.94440,519.29360 L 124.94440,627.29360 L 124.94440,762.29360 L 682.94440,762.29360 L 682.94440,627.29360 L 574.94440,519.29360 L 574.94440,303.29360 L 682.94440,231.29360 L 682.94440,51.293580 L 520.94440,51.293580 L 520.94440,123.29360 L 484.94440,123.29360 L 484.94440,51.293580 L 322.94440,51.293580 L 322.94440,123.29360 L 286.94440,123.29360 L 286.94440,51.293580 L 124.94440,51.293580 L 124.94440,231.29360 L 232.94440,303.29360 L 232.94440,519.29360 z M 268.94440,321.29360 L 268.94440,285.29360 L 538.94440,285.29360 L 538.94440,321.29360 L 268.94440,321.29360 z M 268.94440,537.29360 L 268.94440,501.29360 L 538.94440,501.29360 L 538.94440,537.29360 L 268.94440,537.29360 z ", BISHOP: "M 491.69440,453.44430 L 500.69440,482.69430 C 464.69440,455.69430 338.69440,455.69430 302.69440,482.69430 L 311.69440,453.44430 C 332.69440,432.44430 470.69440,432.44430 491.69440,453.44430 z M 509.69440,518.69430 L 518.69440,545.69430 C 470.69440,521.69430 332.69440,521.69430 284.69440,545.69430 L 293.69440,518.69430 C 338.69440,491.69430 464.69440,491.69430 509.69440,518.69430 z M 797.69440,653.69430 C 797.69440,653.69430 752.69440,635.69430 689.69440,626.69430 C 652.95940,621.44630 599.69440,635.69430 554.69440,626.69430 C 518.69440,617.69430 482.69440,599.69430 482.69440,599.69430 L 572.69440,554.69430 L 545.69440,473.69430 C 545.69440,473.69430 608.69440,446.69430 608.69440,365.69430 C 608.69440,302.69430 563.69440,230.69430 500.69440,194.69430 C 455.13040,168.65830 446.69440,149.69430 446.69440,149.69430 C 446.69440,149.69430 482.69440,131.69430 482.69440,86.694330 C 482.69440,50.694330 455.69440,5.6943260 401.69440,5.6943260 C 347.69440,5.6943260 320.69440,50.694330 320.69440,86.694330 C 320.69440,131.69430 356.69440,149.69430 356.69440,149.69430 C 356.69440,149.69430 348.25840,168.65830 302.69440,194.69430 C 239.69440,230.69430 194.69440,302.69430 194.69440,365.69430 C 194.69440,446.69430 257.69440,473.69430 257.69440,473.69430 L 230.69440,554.69430 L 320.69440,599.69430 C 320.69440,599.69430 284.69440,617.69430 248.69440,626.69430 C 204.17340,637.82430 146.99540,621.93730 113.69440,626.69430 C 50.694360,635.69430 5.6943640,653.69430 5.6943640,653.69430 L 50.694360,797.69430 C 113.69440,779.69430 122.69440,779.69430 176.69440,770.69430 C 209.78640,765.17930 291.51040,774.42230 329.69440,761.69430 C 383.69440,743.69430 401.69440,716.69430 401.69440,716.69430 C 401.69440,716.69430 419.69440,743.69430 473.69440,761.69430 C 511.87840,774.42230 598.40740,767.15830 626.69440,770.69430 C 681.01640,777.48430 752.69440,797.69430 752.69440,797.69430 L 797.69440,653.69430 L 797.69440,653.69430 z M 428.69440,392.69430 L 374.69440,392.69430 L 374.69440,356.69430 L 338.69440,356.69430 L 338.69440,302.69430 L 374.69440,302.69430 L 374.69440,266.69430 L 428.69440,266.69430 L 428.69440,302.69430 L 464.69440,302.69430 L 464.69440,356.69430 L 428.69440,356.69430 L 428.69440,392.69430 z ", KNIGHT: "M 84.310370,730.48460 L 564.28850,729.48460 C 563.97550,600.58860 477.97550,556.58860 485.00550,477.74860 L 587.06050,552.58860 C 611.11150,581.44960 637.05150,594.72560 657.36750,594.91660 C 671.53450,595.04960 633.37050,547.08060 627.37050,536.08060 C 653.37050,535.08060 689.37050,585.08060 718.38750,574.11560 C 739.54850,566.12160 754.01750,540.22060 753.06850,502.24260 C 751.70850,447.81260 690.47450,367.52960 667.34250,266.83660 C 641.48850,160.69960 611.91250,147.09260 595.58450,141.64850 L 595.22350,64.085560 L 513.57950,123.95850 L 467.31450,43.675570 L 421.04950,138.92750 C 260.48350,91.300560 89.752370,428.40260 84.309370,730.48460 L 84.310370,730.48460 z M 125.87840,697.92560 C 125.87840,436.61260 289.76850,168.92760 381.72850,167.10560 C 399.37150,167.41260 415.37150,173.41260 415.32750,179.85360 C 415.24050,192.63260 399.02750,197.15260 379.90750,197.15260 C 307.97850,199.88460 158.65640,453.00260 156.83540,695.19560 C 156.83540,713.40460 127.70040,712.49460 125.87940,697.92560 L 125.87840,697.92560 z M 678.74350,471.34160 C 684.09050,477.57960 689.68150,486.16560 689.86350,492.19160 C 690.09450,499.83660 684.07150,505.86160 678.28050,503.54360 C 672.48850,501.22760 665.53850,488.25260 660.90550,485.70560 C 656.27250,483.15660 642.14050,481.30360 642.37250,474.81660 C 642.60450,468.32960 652.10250,462.53760 657.66250,462.76960 C 663.22250,463.00160 675.96450,468.09760 678.74450,471.34160 L 678.74350,471.34160 z M 520.98750,218.08460 C 534.62350,223.81160 559.71450,235.26460 577.44150,255.99260 C 594.62350,278.90060 595.98650,304.80860 596.53150,323.35560 C 566.80450,326.90060 541.87450,318.25160 529.44150,290.90060 C 521.25950,272.90060 520.98650,239.62960 520.98650,218.08460 L 520.98750,218.08460 z ", PAWN: "M 688.02380,750.97630 L 688.02380,624.97630 C 688.02380,579.97630 661.62380,452.47630 553.02380,408.97630 C 598.02380,354.97630 607.02380,255.97630 517.02380,192.97630 C 544.02380,156.97630 517.02380,30.976220 409.02380,30.976220 C 301.02380,30.976220 274.02380,156.97630 301.02380,192.97630 C 211.02380,255.97630 220.02380,354.97630 265.02380,408.97630 C 157.02380,453.97630 130.02380,579.97630 130.02380,624.97630 L 130.02380,750.97630 L 688.02380,750.97630 z " }, WHITE: { KING: "M 648.50000,730.65870 L 666.50000,613.65870 C 720.50000,577.65870 792.50000,514.65870 792.50000,397.65870 C 792.50000,325.65870 729.50000,280.65870 657.50000,280.65870 C 585.50000,280.65870 504.50000,334.65870 504.50000,334.65870 C 504.50000,334.65870 549.50000,190.65870 423.50000,154.65870 L 423.50000,118.65870 L 477.50000,118.65870 L 477.50000,64.658690 L 423.50000,64.658690 L 423.50000,10.658690 L 369.50000,10.658690 L 369.50000,64.658690 L 315.50000,64.658690 L 315.50000,118.65870 L 369.50000,118.65870 L 369.50000,154.65870 C 243.50000,190.65870 288.50000,334.65870 288.50000,334.65870 C 288.50000,334.65870 207.50000,280.65870 135.50000,280.65870 C 63.500000,280.65870 0.50000000,325.65870 0.50000000,397.65870 C 0.50000000,514.65870 72.500000,577.65870 126.50000,613.65870 L 144.50000,730.65870 C 153.50000,757.65870 216.50000,793.65870 396.50000,793.65870 C 576.50000,793.65870 639.50000,757.65870 648.50000,730.65870 z M 396.50000,451.65870 C 396.50000,451.65870 333.50000,343.65870 333.50000,280.65870 C 333.50000,217.65870 369.50000,208.65870 396.50000,208.65870 C 423.50000,208.65870 459.50000,226.65870 459.50000,280.65870 C 459.50000,334.65870 396.50000,451.65870 396.50000,451.65870 z M 369.50000,541.65870 C 324.50000,541.65870 207.50000,550.65870 162.50000,568.65870 C 108.50000,541.65870 54.500000,496.65870 54.500000,406.65870 C 54.500000,352.65870 81.500000,334.65870 144.50000,334.65870 C 207.50000,334.65870 351.50000,397.65870 369.50000,541.65870 z M 423.50000,541.65870 C 441.50000,397.65870 585.50000,334.65870 657.50000,334.65870 C 711.50000,334.65870 738.50000,352.65870 738.50000,406.65870 C 738.50000,496.65870 684.50000,541.65870 630.50000,568.65870 C 585.50000,550.65870 468.50000,541.65870 423.50000,541.65870 z M 612.50000,613.65870 L 603.50000,685.65870 C 432.50000,658.65870 360.50000,658.65870 189.50000,685.65870 L 180.50000,613.65870 C 360.50000,586.65870 432.50000,586.65870 612.50000,613.65870 z M 549.50000,730.65870 C 468.50000,748.65870 441.50000,748.65870 396.50000,748.65870 C 351.50000,748.65870 324.50000,748.65870 243.50000,730.65870 C 324.50000,712.65870 342.50000,712.65870 396.50000,712.65870 C 450.50000,712.65870 468.50000,712.65870 549.50000,730.65870 z ", QUEEN: "M 764.60380,143.65350 C 764.80680,155.66150 755.91880,166.72550 742.61880,166.56350 C 727.46980,166.37750 719.85480,154.92450 719.70980,144.57750 C 719.52480,131.46050 729.68780,121.66950 742.24980,121.66950 C 754.99780,121.66950 764.41980,132.75350 764.60380,143.65350 L 764.60380,143.65350 z M 619.66280,626.00950 C 619.66280,599.00950 630.31280,557.68550 673.66280,536.00950 C 691.66280,527.00950 691.66280,509.00950 691.66280,500.00950 C 691.66280,471.54950 745.66280,203.00950 745.66280,203.00950 C 782.16480,198.74750 799.50580,170.47750 799.50580,144.34650 C 799.50580,112.98950 774.80780,85.907570 741.06780,85.907570 C 713.27280,85.907570 683.10280,109.18750 682.39080,143.63450 C 682.20480,152.63250 683.57880,169.05250 699.96980,186.15650 L 592.66280,392.00950 L 592.66280,158.00950 C 621.57380,151.95050 639.39180,127.48250 639.39180,99.687540 C 639.39180,69.517570 613.26080,42.199570 580.47680,42.199570 C 546.98180,42.199570 521.81880,70.470570 522.27580,102.06350 C 522.51280,118.45550 530.11480,136.03450 547.66380,149.00950 L 466.66380,383.00950 L 430.66380,131.00950 C 455.28280,117.03050 462.40880,97.075540 462.40880,80.208570 C 462.40880,41.011570 431.28880,20.581570 403.73180,20.818570 C 373.79980,21.076570 345.29380,46.950570 345.29380,77.120570 C 345.29380,107.05250 361.68480,122.73150 376.66380,131.00950 L 340.66380,383.00950 L 259.66380,149.00950 C 278.29980,134.13450 284.71380,119.64350 284.71380,98.976540 C 284.71380,77.833570 266.89880,42.199570 225.79980,42.199570 C 193.01680,42.199570 167.83480,70.944570 167.83480,99.926540 C 167.83480,134.84850 192.77880,153.37750 214.66380,158.01050 L 214.66380,392.01050 L 106.66380,185.01050 C 120.32180,170.95350 122.69780,154.06050 122.69780,145.06050 C 122.69780,114.41450 99.654770,85.807570 61.663770,86.010570 C 36.464770,86.146570 5.9407760,109.06250 5.5817760,145.06050 C 5.3447760,168.81650 23.398770,200.88650 61.663770,203.01050 C 61.663770,203.01050 115.66380,473.01050 115.66380,500.01050 C 115.66380,509.01150 115.66380,527.01050 133.66380,536.01050 C 169.66380,554.01150 187.66380,599.01050 187.66380,626.01050 C 187.66380,662.01150 160.66380,698.01150 160.66380,707.01150 C 160.66380,752.01050 322.66380,779.01150 403.66380,778.99150 C 475.66380,778.97350 646.66380,752.01050 646.66380,707.01050 C 646.66380,698.01050 619.66380,671.01050 619.66380,626.01050 L 619.66280,626.00950 z M 87.606770,144.04950 C 87.809770,156.05650 78.921770,167.12050 65.621770,166.95850 C 50.472770,166.77350 42.857770,155.31950 42.712770,144.97350 C 42.527770,131.85650 52.690770,122.06450 65.252770,122.06450 C 78.000770,122.06450 87.422770,133.14950 87.606770,144.04950 z M 603.61080,99.656540 C 603.81380,111.66350 594.92580,122.72750 581.62580,122.56550 C 566.47680,122.38050 558.86180,110.92650 558.71680,100.58050 C 558.53180,87.463540 568.69480,77.671570 581.25680,77.671570 C 594.00480,77.671570 603.42680,88.756540 603.61080,99.656540 L 603.61080,99.656540 z M 426.61880,78.157570 C 426.82180,90.165540 417.93380,101.22950 404.63380,101.06750 C 389.48480,100.88150 381.86980,89.428540 381.72480,79.081570 C 381.53980,65.964570 391.70280,56.173570 404.26480,56.173570 C 417.01280,56.173570 426.43480,67.257570 426.61880,78.157570 z M 249.12780,100.65650 C 249.33080,112.66350 240.44280,123.72750 227.14280,123.56550 C 211.99380,123.38050 204.37880,111.92650 204.23380,101.58050 C 204.04880,88.463540 214.21180,78.671570 226.77380,78.671570 C 239.52180,78.671570 248.94380,89.756540 249.12780,100.65650 z M 578.63980,575.93450 C 569.63980,591.93450 563.63980,630.93450 573.63980,663.93450 C 467.97280,643.60050 338.63980,637.93450 231.63980,663.93450 C 238.63980,638.93450 240.63980,613.93450 227.63980,575.93450 C 320.63980,544.93450 515.63980,553.93450 578.63980,575.93450 L 578.63980,575.93450 z M 537.63980,707.93450 C 489.97280,725.93450 429.97280,726.26850 399.97280,726.26850 C 369.97280,726.26850 308.97280,723.93450 264.63980,708.93450 C 317.63980,697.93450 362.30680,695.60050 397.30680,695.60050 C 432.30680,695.60050 497.97280,700.26850 537.63980,707.93450 z M 210.32980,536.94050 C 210.32980,536.94050 205.66280,530.27350 200.99580,524.94050 C 210.32980,522.27350 232.99580,509.60650 244.32980,494.94050 C 291.66280,508.94050 316.32980,498.94050 350.99580,476.27350 C 384.32980,494.94050 417.66280,494.27350 458.99580,474.94050 C 486.32980,498.27350 515.66280,504.27350 559.66280,495.60650 C 576.32980,512.94050 586.99580,518.94050 604.32980,525.60650 L 596.32980,536.94050 C 454.32980,506.94050 358.99580,506.27350 210.32980,536.94050 L 210.32980,536.94050 z M 691.30580,290.55250 L 654.25080,486.80250 C 626.80380,493.20650 606.21880,481.76950 593.40980,465.30150 L 691.30580,290.55250 z M 553.20180,247.31050 L 550.98680,445.24750 C 523.09080,454.98950 508.03480,450.56150 487.66580,434.17750 L 553.20180,247.31050 z M 401.76580,233.14150 L 433.64780,429.30650 C 416.82180,441.26250 388.48180,443.47650 369.44080,428.74850 L 401.76580,233.14150 z M 252.98380,254.39550 L 318.96280,441.26250 C 304.35080,457.64650 279.55280,464.28750 255.64180,452.77550 L 252.98480,254.39550 L 252.98380,254.39550 z M 116.63980,294.93450 L 212.13980,463.43450 C 201.63980,481.43450 175.13980,492.43450 151.13980,485.43450 L 116.63980,294.93450 z ", ROOK: "M 227.86510,504.05560 L 119.86510,612.05560 L 119.86510,747.05560 L 677.86510,747.05560 L 677.86510,612.05560 L 569.86510,504.05560 L 569.86510,288.05560 L 677.86510,216.05560 L 677.86510,36.055570 L 515.86510,36.055570 L 515.86510,108.05560 L 479.86510,108.05560 L 479.86510,36.055570 L 317.86510,36.055570 L 317.86510,108.05560 L 281.86510,108.05560 L 281.86510,36.055570 L 119.86510,36.055570 L 119.86510,216.05560 L 227.86510,288.05560 L 227.86510,504.05560 z M 623.86510,90.055570 L 623.86510,180.05560 L 515.86510,252.05560 L 281.86510,252.05560 L 173.86510,180.05560 L 173.86510,90.055570 L 227.86510,90.055570 L 227.86510,162.05560 L 371.86510,162.05560 L 371.86510,90.055570 L 425.86510,90.055570 L 425.86510,162.05560 L 569.86510,162.05560 L 569.86510,90.055570 L 623.86510,90.055570 z M 515.86510,315.05560 L 515.86510,468.05560 L 281.86510,468.05560 L 281.86510,315.05560 L 515.86510,315.05560 z M 623.86510,657.05560 L 623.86510,693.05560 L 173.86510,693.05560 L 173.86510,657.05560 L 623.86510,657.05560 z M 515.86510,531.05560 L 596.86510,603.05560 L 200.86510,603.05560 L 281.86510,531.05560 L 515.86510,531.05560 z ", BISHOP: "M 404.23410,59.693330 C 422.23410,59.693330 431.23410,68.693330 431.23410,86.693330 C 431.23410,104.69330 422.23410,113.69330 404.23410,113.69330 C 386.23410,113.69330 377.23410,104.69330 377.23410,86.693330 C 377.23410,68.693330 386.23410,59.693330 404.23410,59.693330 z M 404.23410,167.69330 C 440.23410,221.69330 458.23410,221.69330 503.23410,257.69330 C 548.23410,293.69330 557.23410,338.69330 557.23410,374.69430 C 557.23410,410.69330 536.23410,432.29530 512.23410,446.69430 C 512.23410,446.69430 476.23410,428.69430 404.23410,428.69430 C 332.23410,428.69430 296.23410,446.69430 296.23410,446.69430 C 296.23410,446.69430 251.23410,410.69330 251.23410,374.69430 C 251.23410,338.69330 260.23410,293.69330 305.23410,257.69330 C 350.23410,221.69330 368.23410,221.69330 404.23410,167.69330 z M 503.23410,482.69430 L 512.23410,509.69430 C 467.23410,491.69430 341.23410,491.69430 296.23410,509.69430 L 305.23410,482.69430 C 341.23410,464.69430 467.23410,464.69430 503.23410,482.69430 z M 404.23410,536.69430 C 440.23410,536.69530 494.23410,545.69430 494.23410,545.69430 C 494.23410,545.69430 440.23410,554.69430 404.23410,554.69430 C 368.23410,554.69430 314.23410,545.69530 314.23410,545.69530 C 314.23410,545.69530 368.23410,536.69330 404.23410,536.69430 z M 440.23410,635.69430 C 494.23410,671.69430 503.59610,666.60330 539.23410,671.69430 C 602.23410,680.69430 628.16110,676.01530 656.23410,680.69430 C 710.23410,689.69430 737.23410,698.69430 737.23410,698.69430 L 719.23410,743.69430 C 719.23410,743.69430 710.66410,732.18430 665.23410,725.69430 C 602.23410,716.69430 548.23410,716.69430 503.23410,707.69430 C 458.23410,698.69430 422.23410,680.69430 404.23410,662.69430 C 386.84810,680.08030 350.23410,698.69430 305.23410,707.69430 C 260.23410,716.69430 207.48310,712.84430 143.23410,725.69430 C 98.234040,734.69430 89.234040,743.69430 89.234040,743.69430 L 71.234040,698.69430 C 71.234040,698.69430 98.234040,689.69430 152.23410,680.69430 C 176.77810,676.60330 206.23410,680.69430 269.23410,671.69430 C 305.96910,666.44630 314.23410,671.69430 368.23410,635.69430 L 440.23410,635.69430 z M 431.23410,266.69430 L 377.23410,266.69430 L 377.23410,302.69430 L 341.23410,302.69430 L 341.23410,356.69430 L 377.23410,356.69430 L 377.23410,392.69430 L 431.23410,392.69430 L 431.23410,356.69430 L 467.23410,356.69430 L 467.23410,302.69430 L 431.23410,302.69430 L 431.23410,266.69430 z M 800.23410,653.69430 C 800.23410,653.69430 755.23410,635.69430 692.23410,626.69430 C 655.49910,621.44630 602.23410,635.69430 557.23410,626.69430 C 521.23410,617.69430 485.23410,599.69430 485.23410,599.69430 L 575.23410,554.69430 L 548.23410,473.69430 C 548.23410,473.69430 611.23410,446.69430 611.23410,365.69430 C 611.23410,302.69430 566.23410,230.69430 503.23410,194.69430 C 457.67010,168.65830 449.23410,149.69430 449.23410,149.69430 C 449.23410,149.69430 485.23410,131.69430 485.23410,86.694330 C 485.23410,50.694330 458.23410,5.6943260 404.23410,5.6943260 C 350.23410,5.6943260 323.23410,50.694330 323.23410,86.694330 C 323.23410,131.69430 359.23410,149.69430 359.23410,149.69430 C 359.23410,149.69430 350.79810,168.65830 305.23410,194.69430 C 242.23410,230.69430 197.23410,302.69430 197.23410,365.69430 C 197.23410,446.69430 260.23410,473.69430 260.23410,473.69430 L 233.23410,554.69430 L 323.23410,599.69430 C 323.23410,599.69430 287.23410,617.69430 251.23410,626.69430 C 206.71310,637.82430 149.53510,621.93730 116.23410,626.69430 C 53.234040,635.69430 8.2340370,653.69430 8.2340370,653.69430 L 53.234040,797.69430 C 116.23410,779.69430 125.23410,779.69430 179.23410,770.69430 C 212.32610,765.17930 294.05010,774.42230 332.23410,761.69430 C 386.23410,743.69430 404.23410,716.69430 404.23410,716.69430 C 404.23410,716.69430 422.23410,743.69430 476.23410,761.69430 C 514.41810,774.42230 600.94710,767.15830 629.23410,770.69430 C 683.55610,777.48430 755.23410,797.69430 755.23410,797.69430 L 800.23410,653.69430 L 800.23410,653.69430 z ", KNIGHT: "M 76.688770,727.94590 L 556.66680,726.94590 C 556.35380,598.04990 470.35380,554.04990 477.38380,475.20990 L 579.43880,550.04990 C 620.25980,599.03590 666.52580,603.11790 681.49380,574.54390 C 715.51280,581.34690 746.80780,554.13390 745.44780,499.70390 C 744.08780,445.27390 682.85280,364.99090 659.72080,264.29690 C 633.86680,158.15990 604.29080,144.55290 587.96280,139.10890 L 587.60180,61.545870 L 505.95780,121.41890 L 459.69280,41.135870 L 413.42780,136.38790 C 252.86280,88.761870 82.131770,425.86390 76.688770,727.94590 z M 505.95780,677.95990 L 126.31380,677.95990 C 205.68580,187.71690 362.68580,154.71690 437.92180,193.53890 L 462.41480,144.55290 L 481.46480,178.57090 L 567.19080,198.98090 L 576.71580,189.45790 C 597.12680,205.78590 608.14980,284.03590 634.35280,350.71790 C 662.29280,421.82190 697.90980,477.31990 697.82080,496.98190 C 697.68580,526.71790 689.01880,532.71790 671.96680,525.55790 C 663.68580,512.04990 655.01880,500.71790 639.30980,499.70390 C 632.35280,500.04990 621.14380,503.00890 631.68580,509.71790 C 646.35280,519.04990 642.75180,540.16490 642.75180,540.16490 C 616.01880,518.71790 515.25280,437.01890 459.69280,401.73090 C 442.35180,390.71690 426.68480,380.71690 414.68480,350.21690 C 390.82180,377.37090 416.35180,430.71690 431.68480,444.04890 C 408.35180,536.04890 484.35180,618.71690 505.95680,677.95890 L 505.95780,677.95990 z M 682.04780,490.00990 C 682.04780,485.18590 675.98380,472.91790 669.91880,467.95690 C 663.85480,462.99390 654.48180,460.23590 648.96880,460.37490 C 643.45580,460.51390 634.49680,465.74990 634.90980,472.36690 C 635.32280,478.98190 647.17680,480.77490 651.86280,482.56590 C 656.54880,484.35690 662.88880,496.62590 669.50480,500.75990 C 676.12080,504.89390 682.04780,496.67790 682.04780,490.00990 L 682.04780,490.00990 z M 588.45680,320.97290 C 588.11380,280.48690 578.16380,263.67390 566.49780,249.26390 C 554.83180,234.85190 512.97280,215.29490 512.97280,215.29490 C 512.97280,215.29490 508.16880,266.41790 525.66780,296.26990 C 543.16680,326.11990 570.61480,321.31690 588.45680,320.97290 L 588.45680,320.97290 z ", PAWN: "M 688.02380,753.51590 L 688.02380,627.51590 C 688.02380,582.51590 661.62380,455.01590 553.02380,411.51590 C 598.02380,357.51590 607.02380,258.51590 517.02380,195.51590 C 544.02380,159.51590 517.02380,33.515900 409.02380,33.515900 C 301.02380,33.515900 274.02380,159.51590 301.02380,195.51590 C 211.02380,258.51590 220.02380,357.51590 265.02380,411.51590 C 157.02380,456.51590 130.02380,582.51590 130.02380,627.51590 L 130.02380,753.51590 L 688.02380,753.51590 z M 409.02380,87.515900 C 490.02380,87.515900 490.02380,177.51590 454.02380,213.51590 C 562.02380,258.51590 535.02380,375.51590 481.02380,429.51590 C 571.02380,456.51590 634.02380,546.51590 634.02380,609.51590 L 634.02380,699.51590 L 184.02380,699.51590 L 184.02380,609.51590 C 184.02380,546.51590 247.02380,456.51590 337.02380,429.51590 C 283.02380,375.51590 256.02380,258.51590 364.02380,213.51590 C 328.02380,177.51590 328.02380,87.515900 409.02380,87.515900 z " } } parsedPieces = [[[], [], [], [], [], [], []], \ [[], [], [], [], [], [], []]] for color in (WHITE, BLACK): for piece in range(PAWN, KING+1): list = [] thep = [0,0] for g1, g2 in elemExpr.findall(pieces[color][piece]): if g2: points = [float(s) for s in spaceExpr.split(g2)] list += [(g1, [f-thep[i%2] for i,f in enumerate(points)])] thep = points[-2:] elif g1 == 'z': list += [('z', (0,0))] else: continue parsedPieces[color][piece] = {size:list} pieces = (PAWN, KNIGHT, BISHOP, ROOK, QUEEN, KING) def get_svg_pieces(svgdir): """Load figurines from .svg files""" if all_in_one: rsvg_handles = Rsvg.Handle.new_from_file(addDataPrefix("pieces/%s/%s.svg" % (svgdir, svgdir))) else: rsvg_handles = [[None]*7, [None]*7] for c, color in ((WHITE, 'white'), (BLACK, 'black')): for p in pieces: rsvg_handles[c][p] = Rsvg.Handle.new_from_file(addDataPrefix("pieces/%s/%s%s.svg" % (svgdir, color[0], reprSign[p].lower()))) return rsvg_handles def get_chess_font_face(name): """Set chess font and char mapping for a chess .ttf""" name = name[4:] if name in ('alpha', 'berlin', 'cheq'): char_map = ('phbrqk', 'ojntwl') else: char_map = ('pnbrqk', 'omvtwl') piece_chars = [[None]*7, [None]*7] for color in (WHITE, BLACK): for piece, char in zip(pieces, char_map[color]): piece_chars[color][piece] = char face = create_cairo_font_face_for_file(addDataPrefix("pieces/ttf/%s.ttf" % name)) return face, piece_chars all_in_one = None drawPiece = None svg_pieces = None chess_font_face = None piece2char = None def set_piece_theme(piece_set): global all_in_one global drawPiece global svg_pieces global chess_font_face global piece2char piece_set = piece_set.lower() if piece_set == 'pychess': drawPiece = drawPiece2 elif piece_set.startswith("ttf-"): drawPiece = drawPiece4 try: chess_font_face, piece2char = get_chess_font_face(piece_set) except: drawPiece = drawPiece2 elif piece_set in ('celtic','eyes', 'fantasy', 'fantasy_alt', 'freak', 'prmi', 'skulls', 'spatial'): all_in_one = True drawPiece = drawPiece3 svg_pieces = get_svg_pieces(piece_set) else: all_in_one = False drawPiece = drawPiece3 try: svg_pieces = get_svg_pieces(piece_set) except: drawPiece = drawPiece2 makruk_svg_pieces = get_svg_pieces("makruk") set_piece_theme(conf.get("pieceTheme", "Chessicons")) pychess-0.12.2/lib/pychess/__init__.py0000755000175000017470000000005612653227050020113 0ustar tamasusers00000000000000VERSION = "0.12.2" VERSION_NAME = "Anderssen" pychess-0.12.2/lib/pychess/widgets/0000755000175000017470000000000012653231274017447 5ustar tamasusers00000000000000pychess-0.12.2/lib/pychess/widgets/ToggleComboBox.py0000644000175000017470000001214412641567764022712 0ustar tamasusers00000000000000import gi gi.require_version("Gtk", "3.0") from gi.repository import Gdk from gi.repository import Gtk from gi.repository import GObject from pychess.System.Log import log from pychess.Utils.IconLoader import load_icon class ToggleComboBox (Gtk.ToggleButton): __gsignals__ = {'changed' : (GObject.SignalFlags.RUN_FIRST, None, (GObject.TYPE_INT,))} def __init__ (self): GObject.GObject.__init__(self) self.set_relief(Gtk.ReliefStyle.NONE) self.label = label = Gtk.Label() label.set_alignment(0, 0.5) self.hbox = hbox = Gtk.HBox() self.image = Gtk.Image() hbox.pack_start(self.image, False, False, 0) hbox.pack_start(label, True, True, 0) arrow = Gtk.Arrow (Gtk.ArrowType.DOWN, Gtk.ShadowType.OUT); hbox.pack_start(arrow, False, False, 0) self.add(hbox) self.show_all() self.connect("button_press_event", self.button_press) self.connect("key_press_event", self.key_press) self.connect("scroll_event", self.scroll_event) self.menu = menu = Gtk.Menu() deactivate = lambda w: self.set_active(False) menu.connect("deactivate", deactivate) menu.attach_to_widget(self, None) self.markup = "", "" self._active = -1 self._items = [] def _get_active(self): return self._active def _set_active(self, active): if not isinstance(active, int): raise TypeError if active == self._active: return if active >= len(self._items): log.warning("Tried to set combobox to %d, but it has only got %d items" % (active, len(self._items))) return oldactive = self._active # take care the case when last used engine was uninstalled self._active = (active < len(self._items) and [active] or [1])[0] self.emit("changed", oldactive) text, icon = self._items[self._active] self.label.set_markup (self.markup[0] + text + self.markup[1]) if icon != None: self.hbox.set_spacing(6) self.image.set_from_pixbuf(icon) else: self.hbox.set_spacing(0) self.image.clear() active = property(_get_active, _set_active) def setMarkup(self, start, end): self.markup = (start, end) text = self._items[self.active][0] self.label.set_markup (self.markup[0] + text + self.markup[1]) def getMarkup(self): return self.markup def addItem (self, text, stock=None): if stock == None: item = Gtk.MenuItem(text) else: item = Gtk.ImageMenuItem() label = Gtk.Label(label=text) label.props.xalign = 0 if isinstance(stock, str): stock = load_icon(12, stock) image = Gtk.Image() image.set_from_pixbuf(stock) hbox = Gtk.HBox() hbox.set_spacing(6) hbox.pack_start(image, False, False, 0) hbox.add(label) item.add(hbox) hbox.show_all() item.connect("activate", self.menu_item_activate, len(self._items)) self.menu.append(item) self._items += [(text, stock)] item.show() if self.active < 0: self.active = 0 def update(self, data): last_active = self._items[self.active][0] if self.active >= 0 else None new_active = -1 self._items = [] for i in self.menu.get_children(): self.menu.remove(i) for i, row in enumerate(data): self.addItem(row[1], row[0]) if last_active == row[1]: new_active = i self.active = new_active def menuPos (self, menu, data): ignore, x, y = self.get_window().get_origin() x += self.get_allocation().x y += self.get_allocation().y + self.get_allocation().height return (x,y,False) def scroll_event (self, widget, event): if event.direction == Gdk.ScrollDirection.UP: if self.active > 0: self.active -= 1 else: if self.active < len(self._items)-1: self.active += 1 def button_press (self, widget, event): width = self.get_allocation().width self.menu.set_size_request(-1,-1) ownWidth = self.menu.size_request().width self.menu.set_size_request(max(width,ownWidth),-1) self.set_active(True) self.menu.popup(None,None, self.menuPos, 1, 1, event.time) #from Gtk.gdk import keyval_from_name #keys = map(keyval_from_name,("space", "KP_Space", "Return", "KP_Enter")) keys = list(map(Gdk.keyval_from_name,("space", "KP_Space", "Return", "KP_Enter"))) def key_press (self, widget, event): if not event.keyval in self.keys: return self.set_active(True) self.menu.popup(None,None, self.menuPos, 1, 1, event.time) return True def menu_item_activate (self, widget, index): self.active = index pychess-0.12.2/lib/pychess/widgets/pydock/0000755000175000017470000000000012653231274020740 5ustar tamasusers00000000000000pychess-0.12.2/lib/pychess/widgets/pydock/PyDockTop.py0000755000175000017470000001774112641567764023220 0ustar tamasusers00000000000000from __future__ import absolute_import from __future__ import print_function import os from xml.dom import minidom from gi.repository import Gtk from gi.repository import GObject from pychess.System.prefix import addDataPrefix from .PyDockLeaf import PyDockLeaf from .PyDockComposite import PyDockComposite from .ArrowButton import ArrowButton from .HighlightArea import HighlightArea from .__init__ import TopDock, DockLeaf, DockComponent, DockComposite from .__init__ import NORTH, EAST, SOUTH, WEST, CENTER class PyDockTop (TopDock): def __init__ (self, id): TopDock.__init__(self, id) self.set_no_show_all(True) self.highlightArea = HighlightArea(self) self.buttons = (ArrowButton(self, addDataPrefix("glade/dock_top.svg"), NORTH), ArrowButton(self, addDataPrefix("glade/dock_right.svg"), EAST), ArrowButton(self, addDataPrefix("glade/dock_bottom.svg"), SOUTH), ArrowButton(self, addDataPrefix("glade/dock_left.svg"), WEST)) for button in self.buttons: button.connect("dropped", self.__onDrop) button.connect("hovered", self.__onHover) button.connect("left", self.__onLeave) def _del (self): TopDock._del(self) def __repr__ (self): return "top (%s) % self.id" #=========================================================================== # Component stuff #=========================================================================== def addComponent (self, widget): self.add(widget) widget.show() def changeComponent (self, old, new): self.removeComponent(old) self.addComponent(new) def removeComponent (self, widget): self.remove(widget) def getComponents (self): if isinstance(self.get_child(), DockComponent): return [self.get_child()] return [] def dock (self, widget, position, title, id): if not self.getComponents(): leaf = PyDockLeaf(widget, title, id) self.addComponent(leaf) return leaf else: return self.get_child().dock(widget, position, title, id) def clear (self): self.remove(self.get_child()) #=========================================================================== # Signals #=========================================================================== def showArrows (self): for button in self.buttons: button._calcSize() button.show() def hideArrows (self): for button in self.buttons: button.hide() self.highlightArea.hide() def __onDrop (self, arrowButton, sender): self.highlightArea.hide() child = sender.get_nth_page(sender.get_current_page()) title, id = sender.get_parent().undock(child) self.dock(child, arrowButton.myposition, title, id) def __onHover (self, arrowButton, widget): self.highlightArea.showAt(arrowButton.myposition) arrowButton.get_window().raise_() def __onLeave (self, arrowButton): self.highlightArea.hide() #=========================================================================== # XML #=========================================================================== def saveToXML (self, xmlpath): dockElem = None if os.path.isfile(xmlpath): doc = minidom.parse(xmlpath) for elem in doc.getElementsByTagName("dock"): if elem.getAttribute("id") == self.id: for node in elem.childNodes: elem.removeChild(node) dockElem = elem break if not dockElem: doc = minidom.getDOMImplementation().createDocument(None, "docks", None) dockElem = doc.createElement("dock") dockElem.setAttribute("id", self.id) doc.documentElement.appendChild(dockElem) if self.get_child(): self.__addToXML(self.get_child(), dockElem, doc) f = open(xmlpath, "w") doc.writexml(f) f.close() doc.unlink() def __addToXML (self, component, parentElement, document): if isinstance(component, DockComposite): pos = component.paned.get_position() if component.getPosition() in (NORTH, SOUTH): childElement = document.createElement("v") size = float(component.get_allocation().height) else: childElement = document.createElement("h") size = float(component.get_allocation().width) # if component.getPosition() in (NORTH, SOUTH): # print "saving v position as %s out of %s (%s)" % (str(pos), str(size), str(pos/max(size,pos))) childElement.setAttribute("pos", str(pos/max(size,pos))) self.__addToXML(component.getComponents()[0], childElement, document) self.__addToXML(component.getComponents()[1], childElement, document) elif isinstance(component, DockLeaf): childElement = document.createElement("leaf") childElement.setAttribute("current", component.getCurrentPanel()) childElement.setAttribute("dockable", str(component.isDockable())) for panel, title, id in component.getPanels(): e = document.createElement("panel") e.setAttribute("id", id) childElement.appendChild(e) parentElement.appendChild(childElement) def loadFromXML (self, xmlpath, idToWidget): doc = minidom.parse(xmlpath) for elem in doc.getElementsByTagName("dock"): if elem.getAttribute("id") == self.id: break else: raise AttributeError("XML file contains no elements with id '%s'" % self.id) child = [n for n in elem.childNodes if isinstance(n, minidom.Element)] if child: self.addComponent(self.__createWidgetFromXML(child[0], idToWidget)) def __createWidgetFromXML (self, parentElement, idToWidget): children = [n for n in parentElement.childNodes if isinstance(n, minidom.Element)] if parentElement.tagName in ("h", "v"): child1, child2 = children if parentElement.tagName == "h": new = PyDockComposite(EAST) else: new = PyDockComposite(SOUTH) new.initChildren(self.__createWidgetFromXML(child1, idToWidget), self.__createWidgetFromXML(child2, idToWidget), preserve_dimensions=True) def cb (widget, event, pos): allocation = widget.get_allocation() if parentElement.tagName == "h": widget.set_position(int(allocation.width * pos)) else: # print "loading v position as %s out of %s (%s)" % \ # (int(allocation.height * pos), str(allocation.height), str(pos)) widget.set_position(int(allocation.height * pos)) widget.disconnect(conid) conid = new.paned.connect("size-allocate", cb, float(parentElement.getAttribute("pos"))) return new elif parentElement.tagName == "leaf": id = children[0].getAttribute("id") title, widget = idToWidget[id] leaf = PyDockLeaf(widget, title, id) for panelElement in children[1:]: id = panelElement.getAttribute("id") title, widget = idToWidget[id] leaf.dock(widget, CENTER, title, id) leaf.setCurrentPanel(parentElement.getAttribute("current")) if parentElement.getAttribute("dockable").lower() == "false": leaf.setDockable(False) return leaf pychess-0.12.2/lib/pychess/widgets/pydock/HighlightArea.py0000755000175000017470000000435612641567764024042 0ustar tamasusers00000000000000from __future__ import absolute_import from __future__ import print_function import cairo from gi.repository import Gtk from math import ceil as fceil ceil = lambda f: int(fceil(f)) from .__init__ import NORTH, EAST, SOUTH, WEST, CENTER from .OverlayWindow import OverlayWindow class HighlightArea (OverlayWindow): """ An entirely blue widget """ def __init__ (self, parent): OverlayWindow.__init__(self, parent) self.myparent = parent self.connect_after("draw", self.__onExpose) def showAt (self, position): alloc = self.myparent.get_allocation() if position == NORTH: x, y = 0, 0 width, height = alloc.width, alloc.height*0.381966011 elif position == EAST: x, y = alloc.width*0.618033989, 0 width, height = alloc.width*0.381966011, alloc.height elif position == SOUTH: x, y = 0, alloc.height*0.618033989 width, height = alloc.width, alloc.height*0.381966011 elif position == WEST: x, y = 0, 0 width, height = alloc.width*0.381966011, alloc.height elif position == CENTER: x, y = 0, 0 width, height = alloc.width, alloc.height try: x, y = self.translateCoords(int(x), int(y)) self.move(x, y) except: pass # Can't move to x,y, because top level parent has no window. self.resize(ceil(width), ceil(height)) self.show() def __onExpose (self, self_, ctx): context = self.get_window().cairo_create() a = self_.get_allocation() context.rectangle(a.x, a.y, a.width, a.height) sc = self.get_style_context() found, color = sc.lookup_color('p_light_selected') if self.is_composited(): context.set_operator(cairo.OPERATOR_CLEAR) context.set_source_rgba(0,0,0,0.0) context.fill_preserve () context.set_operator(cairo.OPERATOR_OVER) context.set_source_rgba(color.red, color.green, color.blue, 0.5) context.fill() else: context.set_source_rgba(color.red, color.green, color.blue) context.set_operator(cairo.OPERATOR_OVER) context.fill() pychess-0.12.2/lib/pychess/widgets/pydock/ArrowButton.py0000755000175000017470000001027112641567764023621 0ustar tamasusers00000000000000from __future__ import absolute_import from __future__ import print_function import cairo from gi.repository import Gtk from gi.repository import GObject from gi.repository import Gdk from .OverlayWindow import OverlayWindow from .__init__ import NORTH, EAST, SOUTH, WEST class ArrowButton (OverlayWindow): """ Leafs will connect to the drag-drop signal """ __gsignals__ = { 'dropped' : (GObject.SignalFlags.RUN_FIRST, None, (object,)), 'hovered' : (GObject.SignalFlags.RUN_FIRST, None, (object,)), 'left' : (GObject.SignalFlags.RUN_FIRST, None, ()), } def __init__ (self, parent, svgPath, position): OverlayWindow.__init__(self, parent) self.myparent = parent self.myposition = position self.svgPath = svgPath self.connect_after("draw", self.__onExposeEvent) #targets = [("GTK_NOTEBOOK_TAB", Gtk.TargetFlags.SAME_APP, 0xbadbeef)] targets = [Gtk.TargetEntry.new("GTK_NOTEBOOK_TAB",Gtk.TargetFlags.SAME_APP, 0xbadbeef)] self.drag_dest_set(Gtk.DestDefaults.DROP | Gtk.DestDefaults.MOTION, targets, Gdk.DragAction.MOVE) self.drag_dest_set_track_motion(True) self.connect("drag-motion", self.__onDragMotion) self.connect("drag-leave", self.__onDragLeave) self.connect("drag-drop", self.__onDragDrop) self.hovered = False self.myparentAlloc = None self.myparentPos = None self.hasHole = False def _calcSize (self): parentAlloc = self.myparent.get_allocation() width, height = self.getSizeOfSvg(self.svgPath) if self.myparentAlloc == None: self.resize(width, height) if self.get_window() and not self.hasHole: self.hasHole = True self.digAHole(self.svgPath, width, height) if self.myposition == NORTH: x, y = parentAlloc.width/2.-width/2., 0 elif self.myposition == EAST: x, y = parentAlloc.width-width, parentAlloc.height/2.-height/2. elif self.myposition == SOUTH: x, y = parentAlloc.width/2.-width/2., parentAlloc.height-height elif self.myposition == WEST: x, y = 0, parentAlloc.height/2.-height/2. x, y = self.translateCoords(int(x), int(y)) if (x,y) != self.get_position(): self.move(x, y) self.myparentAlloc = parentAlloc self.myparentPos = self.myparent.get_window().get_position() def __onExposeEvent (self, self_, ctx): self._calcSize() context = self.get_window().cairo_create() width, height = self.getSizeOfSvg(self.svgPath) surface = self.getSurfaceFromSvg(self.svgPath, width, height) if self.is_composited(): context.set_operator(cairo.OPERATOR_CLEAR) context.set_source_rgba(0.0,0.0,0.0,0.0) context.paint() context.set_operator(cairo.OPERATOR_OVER) # FIXME #mask = Gdk.Pixmap(None, width, height, 1) #mcontext = mask.cairo_create() #mcontext.set_source_surface(surface, 0, 0) #mcontext.paint() #self.window.shape_combine_mask(mask, 0, 0) context.set_source_surface(surface, 0, 0) context.paint() def __containsPoint (self, x, y): alloc = self.get_allocation() return 0 <= x < alloc.width and 0 <= y < alloc.height def __onDragMotion (self, arrow, context, x, y, timestamp): if not self.hovered and self.__containsPoint(x,y): self.hovered = True self.emit("hovered", Gtk.drag_get_source_widget(context)) elif self.hovered and not self.__containsPoint(x,y): self.hovered = False self.emit("left") def __onDragLeave (self, arrow, context, timestamp): if self.hovered: self.hovered = False self.emit("left") def __onDragDrop (self, arrow, context, x, y, timestamp): if self.__containsPoint(x,y): self.emit("dropped", Gtk.drag_get_source_widget(context)) context.finish(True, True, timestamp) return True pychess-0.12.2/lib/pychess/widgets/pydock/PyDockComposite.py0000755000175000017470000000651512641567764024415 0ustar tamasusers00000000000000from __future__ import absolute_import from __future__ import print_function import sys from gi.repository import Gtk from gi.repository import GObject from .__init__ import DockComposite from .__init__ import NORTH, EAST, SOUTH, WEST, CENTER, reprPos class PyDockComposite (Gtk.Alignment, DockComposite): def __init__ (self, position): GObject.GObject.__init__(self, xscale=1, yscale=1) if position == NORTH or position == SOUTH: paned = Gtk.VPaned() elif position == EAST or position == WEST: paned = Gtk.HPaned() self.position = position self.paned = paned self.add(self.paned) self.paned.show() def __repr__ (self): return "composite %s (%s, %s)" % (reprPos[self.position], repr(self.paned.get_child1()), repr(self.paned.get_child2())) def dock (self, widget, position, title, id): assert position != CENTER, "POSITION_CENTER only makes sense for leaves" parent = self.get_parent() while not isinstance(parent, DockComposite): parent = parent.get_parent() from .PyDockLeaf import PyDockLeaf leaf = PyDockLeaf(widget, title, id) new = PyDockComposite(position) parent.changeComponent(self, new) new.initChildren(self, leaf) return leaf def changeComponent (self, old, new): if old == self.paned.get_child1(): self.paned.remove(old) self.paned.pack1(new, resize=True, shrink=False) else: self.paned.remove(old) self.paned.pack2(new, resize=True, shrink=False) new.show() def removeComponent (self, component): if component == self.paned.get_child1(): new = self.paned.get_child2() else: new = self.paned.get_child1() self.paned.remove(new) parent = self.get_parent() while not isinstance(parent, DockComposite): parent = parent.get_parent() parent.changeComponent(self, new) component._del() # TODO: is this necessary? new.show() def getComponents (self): return self.paned.get_children() def initChildren (self, old, new, preserve_dimensions=False): if self.position == NORTH or self.position == WEST: self.paned.pack1(new, resize=True, shrink=False) self.paned.pack2(old, resize=True, shrink=False) elif self.position == SOUTH or self.position == EAST: self.paned.pack1(old, resize=True, shrink=False) self.paned.pack2(new, resize=True, shrink=False) old.show() new.show() def cb (widget, allocation): if allocation.height != 1: if self.position == NORTH: pos = 0.381966011 * allocation.height elif self.position == SOUTH: pos = 0.618033989 * allocation.height elif self.position == WEST: pos = 0.381966011 * allocation.width elif self.position == EAST: pos = 0.618033989 * allocation.width widget.set_position(int(pos+.5)) widget.disconnect(conid) if not preserve_dimensions: conid = self.paned.connect("size-allocate", cb) def getPosition (self): return self.position pychess-0.12.2/lib/pychess/widgets/pydock/__init__.py0000755000175000017470000001005412642330126023046 0ustar tamasusers00000000000000from gi.repository import Gtk from gi.repository import GObject #=============================================================================== # Composite Constants #=============================================================================== POSITIONS_COUNT = 5 NORTH, EAST, SOUTH, WEST, CENTER = range(POSITIONS_COUNT) reprPos = ("NORTH", "EAST", "SOUTH", "WEST", "CENTER") #=============================================================================== # Composite Interfaces #=============================================================================== class DockComponent (object): def dock (self, widget, position, title, id): raise NotImplementedError class TabReceiver (Gtk.Alignment): __instances = [] def __init__ (self): #GObject.GObject.__init__(self,1,1,1,1) GObject.GObject.__init__(self) self.__instances.append(self) def _del (self): try: index = TabReceiver.__instances.index(self) except ValueError: return del TabReceiver.__instances[index] def getInstances (self): return iter(self.__instances) def showArrows (self): raise NotImplementedError def hideArrows (self): raise NotImplementedError class DockComposite (DockComponent): def _del (self): for component in self.getComponents(): component._del() def changeComponent (self, old, new): raise NotImplementedError def removeComponent (self, component): raise NotImplementedError def getComponents (self): raise NotImplementedError def getPosition (self): """ Returns NORTH or SOUTH if the children are packed vertically. Returns WEST or EAST if the children are packed horizontally. Returns CENTER if there is only one child """ raise NotImplementedError class DockLeaf (DockComponent, TabReceiver): def _del (self): TabReceiver._del(self) def undock (self, widget): """ Removes the widget from the leaf, and if it is the only widget, it removes the leaf as well. Returns (title, id) of the widget """ raise NotImplementedError def getPanels (self): """ Returns a list of (widget, title, id) tuples """ raise NotImplementedError def getCurrentPanel (self): """ Returns the panel id currently shown """ raise NotImplementedError def setCurrentPanel (self, id): raise NotImplementedError def setDockable (self, dockable): """ If the leaf is not dockable it won't be moveable and won't accept new panels """ raise NotImplementedError def isDockable (self): raise NotImplementedError class TopDock (DockComposite, TabReceiver): def __init__ (self, id): TabReceiver.__init__(self) self.__id = id def _del (self): TabReceiver._del(self) DockComposite._del(self) def getPosition (self): return CENTER def saveToXML (self, xmlpath): """ """ raise NotImplementedError def loadFromXML (self, xmlpath, idToWidget): """ idTowidget is a dictionary {id: (widget,title)} asserts that self.id is in the xmlfile """ raise NotImplementedError def getId(self): return self.__id id = property(getId, None, None, None) pychess-0.12.2/lib/pychess/widgets/pydock/StarArrowButton.py0000755000175000017470000001771412641567764024464 0ustar tamasusers00000000000000from __future__ import absolute_import from __future__ import print_function from math import ceil as float_ceil ceil = lambda f: int(float_ceil(f)) import cairo from gi.repository import Gtk from gi.repository import Gdk from gi.repository import GObject from .OverlayWindow import OverlayWindow POSITIONS_COUNT = 5 NORTH, EAST, SOUTH, WEST, CENTER = range(POSITIONS_COUNT) DX_DY = ((0,-1), (1,0), (0,1), (-1,0), (0,0)) PADDING_X = 0.2 # Amount of button width PADDING_Y = 0.4 # Amount of button height class StarArrowButton (OverlayWindow): __gsignals__ = { 'dropped' : (GObject.SignalFlags.RUN_FIRST, None, (int, object)), 'hovered' : (GObject.SignalFlags.RUN_FIRST, None, (int, object)), 'left' : (GObject.SignalFlags.RUN_FIRST, None, ()), } def __init__ (self, parent, northSvg, eastSvg, southSvg, westSvg, centerSvg, bgSvg): OverlayWindow.__init__(self, parent) self.myparent = parent self.svgs = (northSvg, eastSvg, southSvg, westSvg, centerSvg) self.bgSvg = bgSvg self.size = () self.connect_after("draw", self.__onExposeEvent) self.currentHovered = -1 #targets = [("GTK_NOTEBOOK_TAB", Gtk.TargetFlags.SAME_APP, 0xbadbeef)] targets = [Gtk.TargetEntry.new("GTK_NOTEBOOK_TAB",Gtk.TargetFlags.SAME_APP, 0xbadbeef)] self.drag_dest_set(Gtk.DestDefaults.DROP | Gtk.DestDefaults.MOTION, targets, Gdk.DragAction.MOVE) self.drag_dest_set_track_motion(True) self.connect("drag-motion", self.__onDragMotion) self.connect("drag-leave", self.__onDragLeave) self.connect("drag-drop", self.__onDragDrop) self.myparentAlloc = None self.myparentPos = None self.hasHole = False self.size = () def _calcSize (self): parentAlloc = self.myparent.get_allocation() if self.myparentAlloc == None or \ parentAlloc.width != self.myparentAlloc.width or \ parentAlloc.height != self.myparentAlloc.height: starWidth, starHeight = self.getSizeOfSvg(self.bgSvg) scale = min(1, parentAlloc.width / float(starWidth), parentAlloc.height / float(starHeight)) self.size = list(map(int, (starWidth*scale, starHeight*scale))) self.resize(self.size[0], self.size[1]) if self.get_window(): self.hasHole = True self.digAHole(self.bgSvg, self.size[0], self.size[1]) elif not self.hasHole: self.hasHole = True self.digAHole(self.bgSvg, self.size[0], self.size[1]) if self.myparent.get_window(): x, y = self.translateCoords(int(parentAlloc.width/2. - self.size[0]/2.), int(parentAlloc.height/2. - self.size[1]/2.)) if (x,y) != self.get_position(): self.move(x, y) self.myparentPos = self.myparent.get_window().get_position() self.myparentAlloc = parentAlloc def __onExposeEvent (self, self_, ctx): self._calcSize() context = self.get_window().cairo_create() self.paintTransparent(context) surface = self.getSurfaceFromSvg(self.bgSvg, self.size[0], self.size[1]) context.set_source_surface(surface, 0, 0) context.paint() for position in range(POSITIONS_COUNT): rect = self.__getButtonRectangle(position) context = self.get_window().cairo_create() surface = self.getSurfaceFromSvg(self.svgs[position], rect.width, rect.height) context.set_source_surface(surface, rect.x, rect.y) context.paint() def __getButtonRectangle (self, position): starWidth, starHeight = self.getSizeOfSvg(self.bgSvg) buttonWidth, buttonHeight = self.getSizeOfSvg(self.svgs[position]) buttonWidth = buttonWidth * self.size[0]/float(starWidth) buttonHeight = buttonHeight * self.size[1]/float(starHeight) dx, dy = DX_DY[position] x = ceil(dx*(1+PADDING_X)*buttonWidth - buttonWidth/2. + self.size[0]/2.) y = ceil(dy*(1+PADDING_Y)*buttonHeight - buttonHeight/2. + self.size[1]/2.) rect = Gdk.Rectangle() rect.x, rect.y, rect.width, rect.height = (x, y, ceil(buttonWidth), ceil(buttonHeight)) return rect def __getButtonAtPoint (self, x, y): for position in range(POSITIONS_COUNT): rect = Gdk.Rectangle() rect.x, rect.y, rect.width, rect.height = (x, y, 1, 1) inside, dest = Gdk.rectangle_intersect(self.__getButtonRectangle(position), rect) if inside: return position return -1 def __onDragMotion (self, arrow, context, x, y, timestamp): position = self.__getButtonAtPoint(x, y) if self.currentHovered != position: self.currentHovered = position if position > -1: self.emit("hovered", position, Gtk.drag_get_source_widget(context)) else: self.emit("left") if position > -1: Gdk.drag_status(context, Gdk.DragAction.MOVE, timestamp) return True Gdk.drag_status(context, Gdk.DragAction.DEFAULT, timestamp) def __onDragLeave (self, arrow, context, timestamp): if self.currentHovered != -1: self.currentHovered = -1 self.emit("left") def __onDragDrop (self, arrow, context, x, y, timestamp): position = self.__getButtonAtPoint(x, y) if position > -1: self.emit("dropped", position, Gtk.drag_get_source_widget(context)) context.finish(True, True, timestamp) return True if __name__ == "__main__": w = Gtk.Window() w.connect("delete-event", Gtk.main_quit) sab = StarArrowButton(w, "/home/thomas/Programmering/workspace/pychess/glade/dock_top.svg", "/home/thomas/Programmering/workspace/pychess/glade/dock_right.svg", "/home/thomas/Programmering/workspace/pychess/glade/dock_bottom.svg", "/home/thomas/Programmering/workspace/pychess/glade/dock_left.svg", "/home/thomas/Programmering/workspace/pychess/glade/dock_center.svg", "/home/thomas/Programmering/workspace/pychess/glade/dock_star.svg") def on_expose (widget, event): cr = widget.window.cairo_create() cx = cy = 100 r = 50 cr.arc(cx, cy, r-1, 0, 2*math.pi) cr.set_source_rgba(1.0, 0.0, 0.0, 1.0) cr.set_operator(cairo.OPERATOR_OVER) cr.fill() #w.connect("e) w.show_all() sab.show_all() Gtk.main() #if __name__ != "__main__": # w = Gtk.Window() # w.connect("delete-event", Gtk.main_quit) # hbox = Gtk.HBox() # # l = Gtk.Layout() # l.set_size_request(200,200) # sab = StarArrowButton("/home/thomas/Programmering/workspace/pychess/glade/dock_top.svg", # "/home/thomas/Programmering/workspace/pychess/glade/dock_right.svg", # "/home/thomas/Programmering/workspace/pychess/glade/dock_bottom.svg", # "/home/thomas/Programmering/workspace/pychess/glade/dock_left.svg", # "/home/thomas/Programmering/workspace/pychess/glade/dock_center.svg", # "/home/thomas/Programmering/workspace/pychess/glade/dock_star.svg") # sab.set_size_request(200,200) # l.put(sab, 0, 0) # hbox.add(l) # def handle (*args): # sab.showAt(l, CENTER) # l.connect("button-press-event", handle) # # nb = Gtk.Notebook() # label = Gtk.Label(label="hi") # nb.append_page(label) # nb.set_tab_detachable(label, True) # hbox.add(nb) # w.add(hbox) # w.show_all() # Gtk.main() pychess-0.12.2/lib/pychess/widgets/pydock/OverlayWindow.py0000755000175000017470000001314612641567764024150 0ustar tamasusers00000000000000from __future__ import print_function import os import re import sys import tempfile import cairo from gi.repository import Gtk from gi.repository import Gdk from gi.repository import GObject from gi.repository import Rsvg class OverlayWindow (Gtk.Window): """ This class knows about being an overlaywindow and some svg stuff """ cache = {} # Class global self.cache for svgPath:rsvg and (svgPath,w,h):surface def __init__ (self, parent): Gtk.Window.__init__(self, Gtk.WindowType.POPUP) # set RGBA visual for the window so transparency works self.set_app_paintable(True) visual = self.get_screen().get_rgba_visual() if visual: self.set_visual(visual) self.myparent = parent #=========================================================================== # The overlay stuff #=========================================================================== def paintTransparent (self, cairoContext): if self.is_composited(): cairoContext.set_operator(cairo.OPERATOR_CLEAR) cairoContext.set_source_rgba(0,0,0,0) cairoContext.paint() cairoContext.set_operator(cairo.OPERATOR_OVER) def digAHole (self, svgShape, width, height): # FIXME # For Python 2.x pycairo does not support/implement cairo.Region() # https://bugs.launchpad.net/ubuntu/+source/pygobject/+bug/1028115/comments/8 return # Create a bitmap and clear it mask = cairo.ImageSurface(cairo.FORMAT_A1, width, height) mcontext = cairo.Context(mask) mcontext.set_source_rgb(0, 0, 0) mcontext.set_operator(cairo.OPERATOR_DEST_OUT) mcontext.paint() # Paint our shape surface = self.getSurfaceFromSvg(svgShape, width, height) mcontext.set_operator(cairo.OPERATOR_OVER) mcontext.set_source_surface(surface, 0, 0) mcontext.paint() # Apply it only if aren't composited, in which case we only need input # masking try: mregion = Gdk.cairo_region_create_from_surface(mask) except TypeError: return if self.is_composited(): self.get_window().input_shape_combine_region(mregion, 0, 0) else: self.get_window().shape_combine_region(mregion, 0, 0) def translateCoords (self, x, y): tl = self.myparent.get_toplevel() x1, y1 = tl.get_window().get_position() tx = self.myparent.translate_coordinates(self.myparent.get_toplevel(), x, y) x = x1 + tx[0] y = y1 + tx[1] return x, y #=========================================================================== # The SVG stuff #=========================================================================== def getSurfaceFromSvg (self, svgPath, width, height): path = os.path.abspath(svgPath) if (path, width, height) in self.cache: return self.cache[(path, width, height)] else: if path in self.cache: svg = self.cache[path] else: svg = self.__loadNativeColoredSvg(path) self.cache[path] = svg surface = self.__svgToSurface(svg, width, height) self.cache[(path, width, height)] = surface return surface def getSizeOfSvg (self, svgPath): path = os.path.abspath(svgPath) if not path in self.cache: svg = self.__loadNativeColoredSvg(path) self.cache[path] = svg svg = self.cache[path] return (svg.props.width, svg.props.height) def __loadNativeColoredSvg (self, svgPath): def colorToHex (color, state): color = getattr(self.myparent.get_style(), color)[state] pixels = (color.red, color.green, color.blue) return "#"+"".join(hex(c/256)[2:].zfill(2) for c in pixels) TEMP_PATH = os.path.join(tempfile.gettempdir(), "pychess_theamed.svg") # return hex string #rrggbb def getcol(col): found, color = sc.lookup_color(col) # not found colors are black if not found: print("color not found in overlaywindow.py:",col) return "#%02X%02X%02X" % (int(color.red * 255), int(color.green * 255), int(color.blue * 255)) sc = self.get_style_context() colorDic = {"#18b0ff": getcol("p_light_selected"), "#575757": getcol("p_text_aa"), "#e3ddd4": getcol("p_bg_color"), "#d4cec5": getcol("p_bg_insensitive"), "#ffffff": getcol("p_base_color"), "#000000": getcol("p_fg_color")} data = open(svgPath).read() data = re.sub("|".join(colorDic.keys()), lambda m: m.group() in colorDic and colorDic[m.group()] or m.group(), data) f = open(TEMP_PATH, "w") f.write(data) f.close() svg = Rsvg.Handle.new_from_file(TEMP_PATH) os.remove(TEMP_PATH) return svg def __svgToSurface (self, svg, width, height): assert isinstance(width, int) surface = cairo.ImageSurface(cairo.FORMAT_ARGB32, width, height) context = cairo.Context(surface) context.set_operator(cairo.OPERATOR_SOURCE) if svg.props.width != width or svg.props.height != height: context.scale(width/float(svg.props.width), height/float(svg.props.height)) svg.render_cairo(context) return surface def __onStyleSet (self, self_, oldstyle): self.cache.clear() pychess-0.12.2/lib/pychess/widgets/pydock/PyDockLeaf.py0000755000175000017470000001730012641567764023314 0ustar tamasusers00000000000000from __future__ import absolute_import from __future__ import print_function from gi.repository import Gtk from gi.repository import GObject from pychess.System.prefix import addDataPrefix from .__init__ import CENTER from .__init__ import DockComposite, DockLeaf, TopDock from .PyDockComposite import PyDockComposite from .StarArrowButton import StarArrowButton from .HighlightArea import HighlightArea class PyDockLeaf (DockLeaf): def __init__ (self, widget, title, id): DockLeaf.__init__(self) self.set_no_show_all(True) self.book = Gtk.Notebook() self.book.connect("drag-begin", self.__onDragBegin) self.book.connect("drag-end", self.__onDragEnd) self.book.connect_after("switch-page", self.__onPageSwitched) self.add(self.book) self.book.show() #self.book.props.tab_vborder = 0 #self.book.props.tab_hborder = 1 self.highlightArea = HighlightArea(self) #self.put(self.highlightArea, 0, 0) self.starButton = StarArrowButton(self, addDataPrefix("glade/dock_top.svg"), addDataPrefix("glade/dock_right.svg"), addDataPrefix("glade/dock_bottom.svg"), addDataPrefix("glade/dock_left.svg"), addDataPrefix("glade/dock_center.svg"), addDataPrefix("glade/dock_star.svg")) #self.put(self.starButton, 0, 0) self.starButton.connect("dropped", self.__onDrop) self.starButton.connect("hovered", self.__onHover) self.starButton.connect("left", self.__onLeave) self.dockable = True self.panels = [] self.zoomPointer = Gtk.Label() self.realtop = None self.zoomed = False #assert isinstance(widget, Gtk.Notebook) self.__add(widget, title, id) def __repr__ (self): s = "leaf" #DockLeaf.__repr__(self) panels = [] for widget, title, id in self.getPanels(): panels.append(id) return s + " (" + ", ".join(panels) + ")" def __add (self, widget, title, id): #widget = BorderBox(widget, top=True) self.panels.append((widget, title, id)) self.book.append_page(widget, title) #self.book.set_tab_label_packing(widget, True, True, Gtk.PACK_START) self.book.set_tab_detachable(widget, True) self.book.set_tab_reorderable(widget, True) widget.show_all() def dock (self, widget, position, title, id): """ if position == CENTER: Add a new widget to the leaf-notebook if position != CENTER: Fork this leaf into two """ if position == CENTER: self.__add(widget, title, id) return self else: parent = self.get_parent() while not isinstance(parent, DockComposite): parent = parent.get_parent() leaf = PyDockLeaf(widget, title, id) new = PyDockComposite(position) parent.changeComponent(self, new) new.initChildren(self, leaf) new.show_all() return leaf def undock (self, widget): """ remove the widget from the leaf-notebook if this was the only widget, remove this leaf from its owner """ for i, (widget_, title, id) in enumerate(self.panels): if widget_ == widget: break else: raise KeyError("No %s in %s" % (widget, self)) del self.panels[i] self.book.remove_page(self.book.page_num(widget)) if self.book.get_n_pages() == 0: def cb (): parent = self.get_parent() while not isinstance(parent, DockComposite): parent = parent.get_parent() parent.removeComponent(self) self._del() # We need to idle_add this, as the widget won't emit drag-ended, if # it is removed to early GObject.idle_add(cb) return title, id def zoomUp (self): if self.zoomed: return parent = self.get_parent() if not isinstance(parent, TopDock): while not isinstance(parent, DockComposite): parent = parent.get_parent() parent.changeComponent(self, self.zoomPointer) while not isinstance(parent, TopDock): parent = parent.get_parent() self.realtop = parent.getComponents()[0] parent.changeComponent(self.realtop, self) self.zoomed = True self.book.set_show_border(False) def zoomDown (self): if not self.zoomed: return if self.zoomPointer.get_parent(): top_parent = self.get_parent() old_parent = self.zoomPointer.get_parent() while not isinstance(old_parent, DockComposite): old_parent = old_parent.get_parent() top_parent.changeComponent(self, self.realtop) old_parent.changeComponent(self.zoomPointer, self) self.realtop = None self.zoomed = False self.book.set_show_border(True) def getPanels(self): return self.panels def getCurrentPanel (self): for i, (widget, title, id) in enumerate(self.panels): if i == self.book.get_current_page(): return id def setCurrentPanel (self, id): for i, (widget, title, id_) in enumerate(self.panels): if id == id_: self.book.set_current_page(i) break def isDockable (self): return self.dockable def setDockable (self, dockable): self.book.set_show_tabs(dockable) #self.book.set_show_border(dockable) self.dockable = dockable def showArrows (self): if self.dockable: self.starButton._calcSize() self.starButton.show() def hideArrows (self): self.starButton.hide() self.highlightArea.hide() def __onDragBegin (self, widget, context): for instance in self.getInstances(): instance.showArrows() def __onDragEnd (self, widget, context): for instance in self.getInstances(): instance.hideArrows() def __onDrop (self, starButton, position, sender): self.highlightArea.hide() # if the undocked leaf was alone, __onDragEnd may not triggered # because leaf was removed for instance in self.getInstances(): instance.hideArrows() if self.dockable: if sender.get_parent() == self and self.book.get_n_pages() == 1: return cp = sender.get_current_page() child = sender.get_nth_page(sender.get_current_page()) title, id = sender.get_parent().undock(child) self.dock(child, position, title, id) def __onHover (self, starButton, position, widget): if self.dockable: self.highlightArea.showAt(position) starButton.get_window().raise_() def __onLeave (self, starButton): self.highlightArea.hide() def __onPageSwitched (self, book, page, page_num): # When a tab is dragged over another tab, the page is temporally # switched, and the notebook child is hovered. Thus we need to reraise # our star if self.starButton.get_window(): self.starButton.get_window().raise_() pychess-0.12.2/lib/pychess/widgets/enginesDialog.py0000644000175000017470000005167012653171673022610 0ustar tamasusers00000000000000from __future__ import print_function import os import sys from gi.repository import Gtk from gi.repository import Gdk from gi.repository import GLib from gi.repository import GObject from gi.repository.GdkPixbuf import Pixbuf from pychess.System import uistuff from pychess.System.idle_add import idle_add from pychess.System.prefix import getEngineDataPrefix from pychess.System.SubProcess import searchPath from pychess.Players.engineNest import discoverer, is_uci, is_cecp from pychess.widgets import newGameDialog firstRun = True def run(widgets): global firstRun if firstRun: EnginesDialog(widgets) def delete_event (widget, *args): widgets["manage_engines_dialog"].hide() return True widgets["manage_engines_dialog"].connect("delete-event", delete_event) widgets["engines_close_button"].connect("clicked", delete_event) widgets["manage_engines_dialog"].connect("key-press-event", lambda w,e: delete_event(w) if e.keyval == Gdk.KEY_Escape else None) firstRun = False widgets["manage_engines_dialog"].show() class EnginesDialog(): def __init__(self, widgets): self.widgets = widgets self.dialog = self.widgets["manage_engines_dialog"] self.cur_engine = None self.default_workdir = getEngineDataPrefix() uistuff.keepWindowSize("engineswindow", self.dialog, defaultSize=(1, 500)) # Put engines into tree store allstore = Gtk.ListStore(Pixbuf, str) self.tv = self.widgets["engines_treeview"] self.tv.set_model(allstore) self.tv.append_column(Gtk.TreeViewColumn( "Flag", Gtk.CellRendererPixbuf(), pixbuf=0)) name_renderer = Gtk.CellRendererText() name_renderer.set_property("editable", True) self.tv.append_column(Gtk.TreeViewColumn("Name", name_renderer, text=1)) def name_edited(renderer, path, new_name): if self.cur_engine is not None: old_name = self.cur_engine if new_name and new_name != old_name: names = [engine["name"] for engine in discoverer.getEngines()] if new_name not in names: engine = discoverer.getEngineByName(self.cur_engine) engine["name"] = new_name discoverer.save() self.cur_engine = new_name update_store() # Notify playerCombos in NewGameTasker discoverer.emit("all_engines_discovered") name_renderer.connect("edited", name_edited) # Add cell renderer to protocol combo column protocol_combo = self.widgets["engine_protocol_combo"] cell = Gtk.CellRendererText() protocol_combo.pack_start(cell, True) protocol_combo.add_attribute(cell, "text", 0) # Add columns and cell renderers to options treeview self.options_store = Gtk.ListStore(str, GObject.TYPE_PYOBJECT) optv = self.widgets["options_treeview"] optv.set_model(self.options_store) optv.append_column(Gtk.TreeViewColumn( "Option", Gtk.CellRendererText(), text=0)) optv.append_column(Gtk.TreeViewColumn( "Data", KeyValueCellRenderer(self.options_store), data=1)) def update_options(*args): if self.cur_engine is not None: engines = discoverer.getEngines() names = [engine["name"] for engine in engines] # After deleting an engine we will select first if self.cur_engine not in names: self.cur_engine = engines[0]["name"] engine = discoverer.getEngineByName(self.cur_engine) options = engine.get("options") if options: self.options_store.clear() for option in options: key = option["name"] val = option if option["type"] != "button": val["default"] = option.get("default") val["value"] = option.get("value", val["default"]) self.options_store.append([key, val]) def update_store(*args): newGameDialog.createPlayerUIGlobals(discoverer) engine_names = [row[1] for row in allstore] new_items = [] # don't add the very first (Human) player to engine store for item in newGameDialog.playerItems[0][1:]: if item[1] not in engine_names: new_items.append(item) iter = None for item in new_items: iter = allstore.append(item) if iter is not None: ts = self.tv.get_selection() ts.select_iter(iter) update_options() update_store() def do_update_store(*args): GLib.idle_add(update_store) discoverer.connect_after("engine_discovered", do_update_store) ################################################################ # remove button ################################################################ def remove(button): if self.cur_engine is not None: self.widgets['remove_engine_button'].set_sensitive(False) engine = discoverer.getEngineByName(self.cur_engine) discoverer.removeEngine(self.cur_engine) discoverer.save() selection = self.tv.get_selection() result = selection.get_selected() if result is not None: model, iter = result model.remove(iter) # Notify playerCombos in NewGameTasker discoverer.emit("all_engines_discovered") self.widgets["remove_engine_button"].connect("clicked", remove) ################################################################ # add button ################################################################ engine_chooser_dialog = Gtk.FileChooserDialog(_("Select engine"), None, Gtk.FileChooserAction.OPEN, (Gtk.STOCK_CANCEL, Gtk.ResponseType.CANCEL, Gtk.STOCK_OPEN, Gtk.ResponseType.OK)) filter = Gtk.FileFilter() filter.set_name(_("Executable files")) filter.add_mime_type("application/x-executable") filter.add_mime_type("application/x-ms-dos-executable") filter.add_mime_type("application/x-msdownload") filter.add_pattern("*.exe") engine_chooser_dialog.add_filter(filter) self.add = False def add(button): self.add = True response = engine_chooser_dialog.run() if response == Gtk.ResponseType.OK: new_engine = engine_chooser_dialog.get_filename() if new_engine.lower().endswith(".exe") and sys.platform != "win32": vm_name = "wine" vmpath = searchPath(vm_name, access=os.R_OK|os.X_OK) if vmpath is None: d = Gtk.MessageDialog( type=Gtk.MessageType.ERROR, buttons=Gtk.ButtonsType.OK) d.set_markup(_("Unable to add %s" % new_engine)) d.format_secondary_text(_("wine not installed")) d.run() d.hide() new_engine = "" else: vmpath += " " else: vm_name = None vmpath = "" if new_engine: try: # Some engines support CECP and UCI, but variant engines are CECP, # so we better to start with CECP this case variant_engines = ("fmax", "sjaakii", "sjeng") if any((True for e in variant_engines if e in new_engine.lower())): checkers = [is_cecp, is_uci] else: checkers = [is_uci, is_cecp] uci = False for checker in checkers: ok = checker(vmpath + new_engine) if ok: uci = checker is is_uci break else: continue if not ok: # restore the original engine = discoverer.getEngineByName(self.cur_engine) engine_chooser_dialog.set_filename(engine["command"]) d = Gtk.MessageDialog( type=Gtk.MessageType.ERROR, buttons=Gtk.ButtonsType.OK) d.set_markup(_("Unable to add %s" % new_engine)) d.format_secondary_text(_("There is something wrong with this executable")) d.run() d.hide() engine_chooser_dialog.hide() return path, binname = os.path.split(new_engine) for e in discoverer.getEngines(): if e["name"] == binname: binname = e["name"] + "(1)" break self.widgets["engine_command_entry"].set_text(new_engine) self.widgets["engine_protocol_combo"].set_active(0 if uci else 1) self.widgets["engine_args_entry"].set_text("") active = self.widgets["engine_protocol_combo"].get_active() protocol = "uci" if uci else "xboard" discoverer.addEngine(binname, new_engine, protocol, vm_name) self.cur_engine = binname self.add = False discoverer.discover() except: d = Gtk.MessageDialog( type=Gtk.MessageType.ERROR, buttons=Gtk.ButtonsType.OK) d.set_markup(_("Unable to add %s" % new_engine)) d.format_secondary_text(_("There is something wrong with this executable")) d.run() d.hide() else: # restore the original engine = discoverer.getEngineByName(self.cur_engine) engine_chooser_dialog.set_filename(engine["command"]) engine_chooser_dialog.hide() self.widgets["add_engine_button"].connect("clicked", add) ################################################################ # engine args ################################################################ def args_changed(widget): if self.cur_engine is not None: new_args = self.widgets["engine_args_entry"].get_text().strip() engine = discoverer.getEngineByName(self.cur_engine) old_args = engine.get("args") if new_args != old_args: engine["args"] = new_args.split() discoverer.save() self.widgets["engine_args_entry"].connect("changed", args_changed) ################################################################ # engine working directory ################################################################ dir_chooser_dialog = Gtk.FileChooserDialog(_("Select working directory"), None, Gtk.FileChooserAction.SELECT_FOLDER, (Gtk.STOCK_CANCEL, Gtk.ResponseType.CANCEL, Gtk.STOCK_OPEN, Gtk.ResponseType.OK)) dir_chooser_button = Gtk.FileChooserButton.new_with_dialog(dir_chooser_dialog) self.widgets["dirChooserDock"].add(dir_chooser_button) dir_chooser_button.show() def select_dir(button): new_directory = dir_chooser_dialog.get_filename() engine = discoverer.getEngineByName(self.cur_engine) old_directory = engine.get("workingDirectory") if new_directory != old_directory and new_directory != self.default_workdir: engine["workingDirectory"] = new_directory discoverer.save() dir_chooser_button.connect("current-folder-changed", select_dir) ################################################################ # engine protocol ################################################################ def protocol_changed(widget): if self.cur_engine is not None and not self.add and not self.selection: active = self.widgets["engine_protocol_combo"].get_active() new_protocol = "uci" if active==0 else "xboard" engine = discoverer.getEngineByName(self.cur_engine) old_protocol = engine["protocol"] if new_protocol != old_protocol: engine_command = engine_chooser_dialog.get_filename() # is the new protocol supported by the engine? if new_protocol == "uci": ok = is_uci(engine_command) else: ok = is_cecp(engine_command) if ok: # discover engine options for new protocol engine["protocol"] = new_protocol engine["recheck"] = True discoverer.discover() else: # restore the original protocol widgets["engine_protocol_combo"].set_active(0 if old_protocol=="uci" else 1) self.widgets["engine_protocol_combo"].connect("changed", protocol_changed) ################################################################ # engine tree ################################################################ self.selection = False def selection_changed(treeselection): store, iter = self.tv.get_selection().get_selected() if iter: self.selection = True path = store.get_path(iter) indices = path.get_indices() row = indices[0] name = store[row][1] self.cur_engine = name engine = discoverer.getEngineByName(name) self.widgets['copy_engine_button'].set_sensitive(True) if "PyChess.py" in engine["command"]: self.widgets['remove_engine_button'].set_sensitive(False) else: self.widgets['remove_engine_button'].set_sensitive(True) self.widgets["engine_command_entry"].set_text(engine["command"]) engine_chooser_dialog.set_filename(engine["command"]) args = [] if engine.get("args") is None else engine.get("args") self.widgets["engine_args_entry"].set_text(' '.join(args)) directory = engine.get("workingDirectory") d = directory if directory is not None else self.default_workdir dir_chooser_dialog.set_current_folder(d) self.widgets["engine_protocol_combo"].set_active(0 if engine["protocol"]=="uci" else 1) update_options() self.selection = False tree_selection = self.tv.get_selection() tree_selection.connect('changed', selection_changed) tree_selection.select_path((0,)) class KeyValueCellRenderer(Gtk.CellRenderer): """ Custom renderer providing different renderers in different rows. The model parameter is a Gtk.ListStore(str, GObject.TYPE_PYOBJECT) containing key data pairs. Each data is a dictionary with name, type, default, value, min, max (for spin options), choices (list of combo options) The 'type' can be 'check', 'spin', 'text', 'combo', 'button'. Examples: ('Nullmove', {'name': 'Nullmove', 'default': false, 'type': 'check', 'value': True}) ('Selectivity', {'name': 'Selectivity', 'default': 1, 'type': 'spin', 'min': 0, 'max': 4, 'value': 2}) ('Style', {'name': 'Style', 'default': 'Solid', 'type': 'combo', 'choices': ['Solid', 'Normal','Risky'], 'value': 'Normal'}) ('NalimovPath', {'name': 'NalimovPath', 'default': '', 'type': 'text', 'value': '/home/egtb'}) ('Clear Hash', {'name': 'Clear Hash', 'type': 'button'}) """ __gproperties__ = {"data": (GObject.TYPE_PYOBJECT, "Data", "Data", GObject.PARAM_READWRITE)} def __init__(self, model): GObject.GObject.__init__(self) self.data = None self.text_renderer = Gtk.CellRendererText() self.text_renderer.set_property("editable", True) self.text_renderer.connect("edited", self.text_edited_cb, model) self.toggle_renderer = Gtk.CellRendererToggle() self.toggle_renderer.set_property("activatable", True) self.toggle_renderer.set_property("xalign", 0) self.toggle_renderer.connect("toggled", self.toggled_cb, model) self.ro_toggle_renderer = Gtk.CellRendererToggle() self.ro_toggle_renderer.set_property("activatable", False) self.ro_toggle_renderer.set_property("xalign", 0) self.spin_renderer = Gtk.CellRendererSpin() self.spin_renderer.set_property("editable", True) self.spin_renderer.connect("edited", self.spin_edited_cb, model) self.combo_renderer = Gtk.CellRendererCombo() self.combo_renderer.set_property("has_entry", False) self.combo_renderer.set_property("editable", True) self.combo_renderer.set_property("text_column", 0) self.combo_renderer.connect("edited", self.text_edited_cb, model) self.button_renderer = Gtk.CellRendererText() self.button_renderer.set_property("editable", False) def text_edited_cb(self, cell, path, new_text, model): model[path][1]["value"] = new_text discoverer.save() return def toggled_cb(self, cell, path, model): model[path][1]["value"] = not model[path][1]["value"] discoverer.save() return def spin_edited_cb(self, cell, path, new_text, model): model[path][1]["value"] = new_text discoverer.save() return def _get_renderer(self): if self.data["type"] == "check": if self.data["name"] == "UCI_Chess960": return self.ro_toggle_renderer else: return self.toggle_renderer elif self.data["type"] == "spin": return self.spin_renderer elif self.data["type"] == "text": return self.text_renderer elif self.data["type"] == "combo": return self.combo_renderer elif self.data["type"] == "button": return self.button_renderer renderer = property(_get_renderer) def do_set_property(self, pspec, value): if value["type"] == "check": self.toggle_renderer.set_active(value["value"]) self.set_property("mode", Gtk.CellRendererMode.ACTIVATABLE) elif value["type"] == "spin": adjustment = Gtk.Adjustment(value=int(value["value"]), lower=value["min"], upper=value["max"], step_incr=1) self.spin_renderer.set_property("adjustment", adjustment) self.spin_renderer.set_property("text", str(value["value"])) self.set_property("mode", Gtk.CellRendererMode.EDITABLE) elif value["type"] == "text": self.text_renderer.set_property("text", value["value"]) self.set_property("mode", Gtk.CellRendererMode.EDITABLE) elif value["type"] == "combo": liststore = Gtk.ListStore(str) for choice in value["choices"]: liststore.append([choice]) self.combo_renderer.set_property("model", liststore) self.combo_renderer.set_property("text", value["value"]) self.set_property("mode", Gtk.CellRendererMode.EDITABLE) elif value["type"] == "button": self.button_renderer.set_property("text", "") setattr(self, pspec.name, value) def do_get_property(self, pspec): return getattr(self, pspec.name) def do_get_size(self, widget, cell_area=None): return self.renderer.get_size(widget, cell_area=cell_area) def do_render(self, ctx, widget, background_area, cell_area, flags): self.renderer.render(ctx, widget, background_area, cell_area, flags) def do_activate(self, event, widget, path, background_area, cell_area, flags): return self.renderer.activate(event, widget, path, background_area, cell_area, flags) def do_start_editing(self, event, widget, path, background_area, cell_area, flags): return self.renderer.start_editing(event, widget, path, background_area, cell_area, flags) GObject.type_register(KeyValueCellRenderer) pychess-0.12.2/lib/pychess/widgets/LogDialog.py0000755000175000017470000002236712641567764021714 0ustar tamasusers00000000000000# -*- coding: UTF-8 -*- import os.path import time import codecs import logging from gi.repository import Gtk, Gdk, Pango, GObject, GLib from pychess.compat import unicode from pychess.System import uistuff from pychess.System.LogEmitter import logemitter from pychess.System.prefix import addDataPrefix class InformationWindow: @classmethod def _init (cls): cls.tagToIter = {} cls.tagToPage = {} cls.pathToPage = {} cls.tagToTime = {} cls.window = Gtk.Window() cls.window.set_title(_("PyChess Information Window")) cls.window.set_border_width(12) cls.window.set_icon_name("pychess") uistuff.keepWindowSize("logdialog", cls.window, (640,480)) mainHBox = Gtk.HBox() mainHBox.set_spacing(6) cls.window.add(mainHBox) sw = Gtk.ScrolledWindow() sw.set_policy(Gtk.PolicyType.NEVER, Gtk.PolicyType.AUTOMATIC) sw.set_shadow_type(Gtk.ShadowType.IN) mainHBox.pack_start(sw, False, True, 0) cls.treeview = Gtk.TreeView(Gtk.TreeStore(str)) cls.treeview.append_column(Gtk.TreeViewColumn("", Gtk.CellRendererText(), text=0)) cls.treeview.set_headers_visible(False) cls.treeview.get_selection().set_mode(Gtk.SelectionMode.BROWSE) sw.add(cls.treeview) cls.pages = Gtk.Notebook() cls.pages.set_show_tabs(False) cls.pages.set_show_border(False) mainHBox.pack_start(cls.pages, True, True, 0) mainHBox.show_all() def selectionChanged (selection): treestore, iter = selection.get_selected() if iter: child = cls.pathToPage[treestore.get_path(iter).to_string()]["child"] cls.pages.set_current_page(cls.pages.page_num(child)) cls.treeview.get_selection().connect("changed", selectionChanged) @classmethod def show (cls): cls.window.show() @classmethod def hide (cls): cls.window.hide() @classmethod def newMessage (cls, tag, timestamp, message, importance): def _newMessage(cls, tag, timestamp, message, importance): textview = cls._getPageFromTag(tag)["textview"] if not tag in cls.tagToTime or timestamp-cls.tagToTime[tag] >= 1: t = time.strftime("%H:%M:%S", time.localtime(timestamp)) textview.get_buffer().insert_with_tags_by_name( textview.get_buffer().get_end_iter(), "\n%s\n%s\n"%(t,"-"*60), str(logging.INFO)) cls.tagToTime[tag] = timestamp if not message.endswith("\n"): message = "%s\n" % message textview.get_buffer().insert_with_tags_by_name( textview.get_buffer().get_end_iter(), message, str(importance)) GLib.idle_add(_newMessage, cls, tag, timestamp, message, importance) @classmethod def _createPage (cls, parrentIter, tag): name = tag[-1] if isinstance(name, int): name=str(name) iter = cls.treeview.get_model().append(parrentIter, (name,)) cls.tagToIter[tag] = iter widgets = uistuff.GladeWidgets("findbar.glade") frame = widgets["frame"] frame.unparent() frame.show_all() uistuff.keepDown(widgets["scrolledwindow"]) textview = widgets["textview"] tb = textview.get_buffer() tb.create_tag(str(logging.DEBUG), family='Monospace') tb.create_tag(str(logging.INFO), family='Monospace', weight=Pango.Weight.BOLD) tb.create_tag(str(logging.WARNING), family='Monospace', foreground="red") tb.create_tag(str(logging.ERROR), family='Monospace', weight=Pango.Weight.BOLD, foreground="red") findbar = widgets["findbar"] findbar.hide() # Make searchEntry and "out of label" share height with the buttons widgets["prevButton"].connect("size-allocate", lambda w, alloc: widgets["searchEntry"].set_size_request(-1, alloc.height) or widgets["outofLabel"].set_size_request(-1, alloc.height-2)) # Make "out of label" more visually distinct uistuff.makeYellow(widgets["outofLabel"]) widgets["outofLabel"].hide() widgets["closeButton"].connect("clicked", lambda w: widgets["findbar"].hide()) # Connect showing/hiding of the findbar cls.window.connect("key-press-event", cls.onTextviewKeypress, widgets) widgets["findbar"].connect("key-press-event", cls.onFindbarKeypress) widgets["searchEntry"].connect("changed", cls.onSearchChanged, widgets) widgets["prevButton"].connect("clicked", lambda w: cls.searchJump(-1, widgets)) widgets["nextButton"].connect("clicked", lambda w: cls.searchJump(1, widgets)) cls.pages.append_page(frame, None) page = {"child": frame, "textview":textview} cls.tagToPage[tag] = page cls.pathToPage[cls.treeview.get_model().get_path(iter).to_string()] = page cls.treeview.expand_all() @classmethod def _getPageFromTag (cls, tag): if isinstance(tag, list): tag = tuple(tag) elif not isinstance(tag, tuple): tag = (tag,) if tag in cls.tagToPage: return cls.tagToPage[tag] for i in range(len(tag)-1): subtag = tag[:-i-1] if subtag in cls.tagToIter: newtag = subtag+(tag[len(subtag)],) iter = cls.tagToIter[subtag] cls._createPage(iter, newtag) return cls._getPageFromTag(tag) cls._createPage(None, tag[:1]) return cls._getPageFromTag(tag) @classmethod def onSearchChanged (cls, searchEntry, widgets): pattern = searchEntry.get_text().lower() widgets["outofLabel"].props.visible = bool(pattern) if not pattern: return text = widgets["textview"].get_buffer().props.text.lower() widgets["outofLabel"].hits = [] widgets["outofLabel"].searchCurrent = -1 i = -len(pattern) while True: i = text.find(pattern, i+len(pattern)) if i != -1: widgets["outofLabel"].hits.append(i) else: break cls.searchJump(1, widgets) @classmethod def searchJump (cls, count, widgets): if not hasattr(widgets["outofLabel"], "hits"): return amount = len(widgets["outofLabel"].hits) if not amount: widgets["outofLabel"].set_text("0 %s 0" % _("of")) else: widgets["outofLabel"].searchCurrent += count current = widgets["outofLabel"].searchCurrent % amount widgets["outofLabel"].set_text("%d %s %d" % (current+1, _("of"), amount)) goto = widgets["outofLabel"].hits[current] iter0 = widgets["textview"].get_buffer().get_iter_at_offset(goto) length = len(widgets["searchEntry"].get_text()) iter1 = widgets["textview"].get_buffer().get_iter_at_offset(goto+length) widgets["textview"].get_buffer().select_range(iter0, iter1) widgets["textview"].scroll_to_iter(iter0, 0.2, False, 0.5, 0.5) @classmethod def onTextviewKeypress (cls, textview, event, widgets): if event.get_state() & Gdk.ModifierType.CONTROL_MASK: if event.keyval in (ord("f"), ord("F")): widgets["findbar"].props.visible = not widgets["findbar"].props.visible if widgets["findbar"].props.visible: signal = widgets["searchEntry"].connect_after("draw", lambda w,e: w.grab_focus() or widgets["searchEntry"].disconnect(signal)) @classmethod def onFindbarKeypress (cls, findbar, event): if Gdk.keyval_name(event.keyval) == "Escape": findbar.props.visible = False ################################################################################ # Add early messages and connect for new # ################################################################################ InformationWindow._init() def addMessage (emitter, message): task, timestamp, message, type = message InformationWindow.newMessage (task, timestamp, message, type) for message in logemitter.messages: addMessage(logemitter, message) logemitter.messages = None logemitter.connect ("logged", addMessage) ################################################################################ # External functions # ################################################################################ destroy_funcs = [] def add_destroy_notify (func): destroy_funcs.append(func) def _destroy_notify (widget, *args): [func() for func in destroy_funcs] return True InformationWindow.window.connect("delete-event", _destroy_notify) def show (): InformationWindow.show() def hide (): InformationWindow.hide() if __name__ == "__main__": show() InformationWindow.window.connect("delete-event", Gtk.main_quit) Gtk.main() pychess-0.12.2/lib/pychess/widgets/gameinfoDialog.py0000755000175000017470000000432512641567764022752 0ustar tamasusers00000000000000from __future__ import absolute_import from . import gamewidget from pychess.Utils.const import BLACK, WHITE firstRun = True def run(widgets, gameDic): gamemodel = gameDic[gamewidget.cur_gmwidg()] widgets["event_entry"].set_text(gamemodel.tags["Event"]) widgets["site_entry"].set_text(gamemodel.tags["Site"]) widgets["round_spinbutton"].set_value(float(gamemodel.tags["Round"])) widgets["white_entry"].set_text(gamemodel.tags["White"]) widgets["black_entry"].set_text(gamemodel.tags["Black"]) # Notice: GtkCalender month goes from 0 to 11, but gamemodel goes from # 1 to 12 widgets["game_info_calendar"].clear_marks() widgets["game_info_calendar"].select_month( int(gamemodel.tags["Month"])-1, int(gamemodel.tags["Year"])) widgets["game_info_calendar"].select_day(int(gamemodel.tags["Day"])) global firstRun if firstRun: initialize(widgets, gameDic) firstRun = False widgets["game_info"].show() def initialize(widgets, gameDic): def hide_window(button, *args): widgets["game_info"].hide() return True def accept_new_properties(button, *args): gamemodel = gameDic[gamewidget.cur_gmwidg()] gamemodel.tags["Event"] = widgets["event_entry"].get_text() gamemodel.tags["Site"] = widgets["site_entry"].get_text() gamemodel.tags["Round"] = int(widgets["round_spinbutton"].get_value()) gamemodel.tags["White"] = widgets["white_entry"].get_text() gamemodel.tags["Black"] = widgets["black_entry"].get_text() gamemodel.tags["Year"] = widgets["game_info_calendar"].get_date()[0] gamemodel.tags["Month"] = widgets["game_info_calendar"].get_date()[1] + 1 gamemodel.tags["Day"] = widgets["game_info_calendar"].get_date()[2] widgets["game_info"].hide() gamemodel.players[BLACK].setName(gamemodel.tags["Black"]) gamemodel.players[WHITE].setName(gamemodel.tags["White"]) gamemodel.emit("players_changed") return True widgets["game_info"].connect("delete-event", hide_window) widgets["game_info_cancel_button"].connect("clicked", hide_window) widgets["game_info_ok_button"].connect("clicked", accept_new_properties) pychess-0.12.2/lib/pychess/widgets/ChessClock.py0000644000175000017470000002051112641567764022056 0ustar tamasusers00000000000000# -*- coding: UTF-8 -*- from __future__ import absolute_import from math import ceil, pi, cos, sin import cairo from gi.repository import GLib from gi.repository import Gtk from gi.repository import Gdk from gi.repository import Pango from gi.repository import PangoCairo from gi.repository import GObject from pychess.System import conf from pychess.Utils.const import * from . import preferencesDialog def formatTime(seconds, clk2pgn=False): if not -10 <= seconds <= 10: seconds = ceil(seconds) minus = "-" if seconds < 0 else "" if minus: seconds = -seconds hours, remainder = divmod(seconds, 3600) minutes, seconds = divmod(remainder, 60) if hours or clk2pgn: return minus+"%d:%02d:%02d" % (hours, minutes, seconds) elif not minutes and seconds < 10: return minus+"%.1f" % seconds else: return minus+"%d:%02d" % (minutes, seconds) class ChessClock (Gtk.DrawingArea): def __init__(self): GObject.GObject.__init__(self) self.connect("draw", self.expose) self.names = [_("White"),_("Black")] self.model = None self.short_on_time = [False, False] def expose(self, widget, ctx): context = widget.get_window().cairo_create() ce = context.clip_extents() a = Gdk.Rectangle() a.x, a.y, a.width, a.height = ce[0], ce[1], ce[2]-ce[0], ce[3]-ce[1] context.rectangle(a.x, a.y, a.width, a.height) context.clip() self.draw(context) return False def draw(self, context): sc = self.get_style_context() bool1, self.light = sc.lookup_color("p_light_color") bool1, self.dark = sc.lookup_color("p_dark_color") if not self.model: return # Draw graphical Clock. Should this be moved to preferences? drawClock = True rect = Gdk.Rectangle() ce = context.clip_extents() rect.x, rect.y, rect.width, rect.height = ce[0], ce[1], ce[2]-ce[0], ce[3]-ce[1] context.rectangle( rect.width/2. * self.model.movingColor, 0, rect.width/2., rect.height) context.set_source_rgba(self.dark.red, self.dark.green, self.dark.blue, self.dark.alpha) context.fill_preserve() context.new_path() time0 = self.names[0], self.formatedCache[WHITE] layout0 = self.create_pango_layout(" %s: %s " % (time0)) layout0.set_font_description(Pango.FontDescription("Sans Serif 17")) time1 = self.names[1], self.formatedCache[BLACK] layout1 = self.create_pango_layout(" %s: %s " % (time1)) layout1.set_font_description(Pango.FontDescription("Sans Serif 17")) w = max(layout1.get_pixel_size()[0], layout0.get_pixel_size()[0])*2 self.set_size_request(w+rect.height+7, -1) pangoScale = float(Pango.SCALE) # Analog clock code. def paintClock (player): cy = rect.height/2. cx = cy + rect.width/2.*player + 1 r = rect.height/2.-3.5 context.arc(cx,cy, r-1, 0, 2*pi) linear = cairo.LinearGradient(cx-r*2, cy-r*2, cx+r*2, cy+r*2) linear.add_color_stop_rgba(0, 1, 1, 1, 0.3) linear.add_color_stop_rgba(1, 0, 0, 0, 0.3) #context.set_source_rgba( 0, 0, 0, .3) context.set_source(linear) context.fill() linear = cairo.LinearGradient(cx-r, cy-r, cx+r, cy+r) linear.add_color_stop_rgba(0, 0, 0, 0, 0.5) linear.add_color_stop_rgba(1, 1, 1, 1, 0.5) context.arc(cx,cy, r, 0, 2*pi) context.set_source(linear) context.set_line_width(2.5) context.stroke() starttime = float(self.model.getInitialTime()) or 1 used = self.model.getPlayerTime(player) / starttime if used > 0: if used > 0: context.arc(cx,cy, r-.8, -(used+0.25)*2*pi, -0.5*pi) context.line_to(cx,cy) context.close_path() elif used == 0: context.arc(cx,cy, r-.8, -0.5*pi, 1.5*pi) context.line_to(cx,cy) radial = cairo.RadialGradient(cx,cy, 3, cx,cy,r) if player == 0: #radial.add_color_stop_rgb(0, .73, .74, .71) radial.add_color_stop_rgb(0, .93, .93, .92) radial.add_color_stop_rgb(1, 1, 1, 1) else: #radial.add_color_stop_rgb(0, .53, .54, .52) radial.add_color_stop_rgb(0, .18, .20, .21) radial.add_color_stop_rgb(1, 0, 0, 0) context.set_source(radial) context.fill() x = cx - cos((used-0.25)*2*pi)*(r-1) y = cy + sin((used-0.25)*2*pi)*(r-1) context.move_to(cx,cy-r+1) context.line_to(cx,cy) context.line_to(x,y) context.set_line_width(0.2) if player == 0: context.set_source_rgb(0,0,0) else: context.set_source_rgb(1,1,1) context.stroke() if drawClock: paintClock (WHITE) if (self.model.movingColor or WHITE) == WHITE: context.set_source_rgba(self.light.red, self.light.green, self.light.blue, self.light.alpha) else: context.set_source_rgba(self.dark.red, self.dark.green, self.dark.blue, self.dark.alpha) y = rect.height/2. - layout0.get_extents()[0].height/pangoScale/2 \ - layout0.get_extents()[0].y/pangoScale context.move_to(rect.height-7,y) PangoCairo.show_layout(context, layout0) if drawClock: paintClock (BLACK) if self.model.movingColor == BLACK: context.set_source_rgba(self.light.red, self.light.green, self.light.blue, self.light.alpha) else: context.set_source_rgba(self.dark.red, self.dark.green, self.dark.blue, self.dark.alpha) y = rect.height/2. - layout0.get_extents()[0].height/pangoScale/2 \ - layout0.get_extents()[0].y/pangoScale context.move_to(rect.width/2. + rect.height-7, y) PangoCairo.show_layout(context, layout1) def redraw_canvas(self): def do_redraw_canvas(): if self.get_window(): a = self.get_allocation() rect = Gdk.Rectangle() rect.x, rect.y, rect.width, rect.height = (0, 0, a.width, a.height) self.get_window().invalidate_rect(rect, True) self.get_window().process_updates(True) GLib.idle_add(do_redraw_canvas) def setModel (self, model): self.model = model self.model.connect("time_changed", self.time_changed) self.model.connect("player_changed", self.player_changed) self.formatedCache = [formatTime ( self.model.getPlayerTime (self.model.movingColor or WHITE))] * 2 if model.secs!=0 or model.gain!=0: GObject.timeout_add(100, self.update) def time_changed (self, model): self.update() def player_changed (self, model): self.redraw_canvas() def update(self, wmovecount=-1, bmovecount=-1): alarm_time = int(conf.get("alarm_spin", 15)) if self.model.getPlayerTime(self.model.movingColor) <= alarm_time and \ self.model.gamemodel.players[self.model.movingColor].__type__ == LOCAL and \ self.model.gamemodel.status in UNFINISHED_STATES and \ not self.short_on_time[self.model.movingColor]: self.short_on_time[self.model.movingColor] = True preferencesDialog.SoundTab.playAction("shortOnTime") if self.model.paused and wmovecount == -1 and bmovecount == -1: return not self.model.ended wt = formatTime (self.model.getPlayerTime(WHITE, wmovecount)) bt = formatTime (self.model.getPlayerTime(BLACK, bmovecount)) if self.formatedCache != [wt, bt]: self.formatedCache = [wt, bt] self.redraw_canvas() return not self.model.ended pychess-0.12.2/lib/pychess/widgets/BorderBox.py0000755000175000017470000000461112641567764021731 0ustar tamasusers00000000000000from gi.repository import Gtk from gi.repository import GObject class BorderBox (Gtk.Alignment): def __init__ (self, widget=None, top=False, right=False, bottom=False, left=False): GObject.GObject.__init__(self) self.connect("draw", self._onExpose) if widget: self.add(widget) self.__top = top self.__right = right self.__bottom = bottom self.__left = left self._updateBorders() def _onExpose(self, area, ctx): context = self.get_window().cairo_create() sc = self.get_style_context() found, color = sc.lookup_color("p_dark_color") r, g, b, a = color.red, color.green, color.blue, color.alpha context.set_source_rgba(r, g, b, a) r = self.get_allocation() x = r.x + .5 y = r.y + .5 width = r.width - 1 height = r.height - 1 if self.top: context.move_to(x, y) context.line_to(x+width, y) if self.right: context.move_to(x+width, y) context.line_to(x+width, y+height) if self.bottom: context.move_to(x+width, y+height) context.line_to(x, y+height) if self.left: context.move_to(x, y+height) context.line_to(x, y) context.set_line_width(1) context.stroke() def _updateBorders (self): self.set_padding(self.top and 1 or 0, self.bottom and 1 or 0, self.right and 1 or 0, self.left and 1 or 0) def isTop(self): return self.__top def isRight(self): return self.__right def isBottom(self): return self.__bottom def isLeft(self): return self.__left def setTop(self, value): self.__top = value self._updateBorders() def setRight(self, value): self.__right = value self._updateBorders() def setBottom(self, value): self.__bottom = value self._updateBorders() def setLeft(self, value): self.__left = value self._updateBorders() top = property(isTop, setTop, None, None) right = property(isRight, setRight, None, None) bottom = property(isBottom, setBottom, None, None) left = property(isLeft, setLeft, None, None) pychess-0.12.2/lib/pychess/widgets/playerinfoDialog.py0000755000175000017470000000507212641567764023335 0ustar tamasusers00000000000000from __future__ import absolute_import from gi.repository import Gtk, GObject from . import gamewidget firstRun = True def run(widgets): global firstRun if firstRun: initialize(widgets) firstRun = False widgets["player_info"].show_all() def initialize(widgets): def addColumns (treeview, *columns): model = Gtk.ListStore(*((str,)*len(columns))) treeview.set_model(model) treeview.get_selection().set_mode(Gtk.SelectionMode.NONE) for i, name in enumerate(columns): crt = Gtk.CellRendererText() column = Gtk.TreeViewColumn(name, crt, text=i) treeview.append_column(column) addColumns(widgets["results_view"], "", "Games", "Won", "Drawn", "Lost", "Score") model = widgets["results_view"].get_model() model.append(("White", "67","28","24","15","59%")) model.append(("Black", "66","26","23","17","56%")) model.append(("Total", "133","54","47","32","58%")) addColumns(widgets["rating_view"], "Current", "Initial", "Lowest", "Highest", "Average") model = widgets["rating_view"].get_model() model.append(("1771","1734","1659","1791","1700")) widgets["history_view"].set_model(Gtk.ListStore(object)) widgets["history_view"].get_selection().set_mode(Gtk.SelectionMode.NONE) widgets["history_view"].append_column(Gtk.TreeViewColumn( "Player Rating History", HistoryCellRenderer(), data=0)) widgets["history_view"].get_model().append((1,)) def hide_window(button, *args): widgets["player_info"].hide() return True widgets["player_info"].connect("delete-event", hide_window) widgets["player_info_close_button"].connect("clicked", hide_window) class HistoryCellRenderer (Gtk.CellRenderer): __gproperties__ = { "data": (GObject.TYPE_PYOBJECT, "Data", "Data", GObject.PARAM_READWRITE), } def __init__(self): self.__gobject_init__() self.data = None def do_set_property(self, pspec, value): setattr(self, pspec.name, value) def do_get_property(self, pspec): return getattr(self, pspec.name) def on_render(self, window, widget, background_area, rect, expose_area, flags): if not self.data: return cairo = window.cairo_create() x,y,w,h = rect.x, rect.y, rect.width, rect.height cairo.rectangle(x+1,y+1,x+w-2,y+h-2) cairo.set_source_rgb(0.45,0.45,0.45) cairo.stroke() def on_get_size(self, widget, cell_area=None): return (0, 0, -1, 130) pychess-0.12.2/lib/pychess/widgets/tipOfTheDay.py0000755000175000017470000000612112641567764022221 0ustar tamasusers00000000000000import os from pychess.System import conf from pychess.System import uistuff from pychess.System.prefix import addDataPrefix from random import randrange class TipOfTheDay: @classmethod def _init (cls): cls.widgets = uistuff.GladeWidgets("tipoftheday.glade") uistuff.keepWindowSize("tipoftheday", cls.widgets["window1"], (320,240), uistuff.POSITION_CENTER) cls.widgets["checkbutton1"].set_active(conf.get("show_tip_at_startup", False)) cls.widgets["checkbutton1"].connect("toggled", lambda w: conf.set("show_tip_at_startup", w.get_active())) cls.widgets["close_button"].connect("clicked", lambda w: cls.widgets["window1"].emit("delete-event", None)) cls.widgets["window1"].connect("delete_event", lambda w, a: cls.widgets["window1"].hide()) cls.widgets["back_button"].connect("clicked", lambda w: cls.set_currentIndex(cls.currentIndex-1)) cls.widgets["forward_button"].connect("clicked", lambda w: cls.set_currentIndex(cls.currentIndex+1)) cls.currentIndex = 0 @classmethod def show (cls): if not hasattr(cls, "widgets"): cls._init() cls.set_currentIndex(randrange(len(tips))) cls.widgets["window1"].show() @classmethod def set_currentIndex (cls, value): if len(tips) == 0: return if value < 0: value = len(tips)-1 elif value >= len(tips): value = 0 cls.currentIndex = value cls.widgets["tipfield"].set_markup(tips[value]) tips = ( _("You can start a new game by Game > New Game, in New Game window do you can choose Players, Time Control and Chess Variants."), _("You can choose from 20 different difficulties to play against the computer."), _("Chess Variants are like the pieces of the last line will be placed on the board."), _("To save a game Game > Save Game As, give the filename and choose where you want to be saved. At the bottom choose extension type of the file, and Save."), _("Do you know that you can call flag when the clock is with you, Actions > Call Flag."), _("Pressing Ctrl+Z to offer opponent the possible rollback moves."), _("To play on Fullscreen mode, just type F11. Coming back, F11 again."), _("Hint mode analyzing your game, enable this type Ctrl+H."), _("Spy mode analyzing the oponnent game, enable this type Ctrl+Y."), _("You can play chess listening to the sounds of the game, for that, Settings > Preferences > Sound tab, enable Use sounds in PyChess and choose your preferred sounds."), _("Do you know that you can help translate Pychess in your language, Help > Translate Pychess."), _("Do you know that it is possible to finish a chess game in just 2 turns?"), _("Do you know that the number of possible chess games exceeds the number of atoms in the Universe?"), ) pychess-0.12.2/lib/pychess/widgets/analyzegameDialog.py0000644000175000017470000001642512641567764023463 0ustar tamasusers00000000000000from __future__ import absolute_import import time import threading from gi.repository import Gtk from . import gamewidget from pychess.Utils.const import * from pychess.System import conf, fident from pychess.System import uistuff from pychess.System.idle_add import idle_add from pychess.System.Log import log from pychess.Utils import prettyPrintScore from pychess.Utils.Move import listToMoves from pychess.Utils.lutils.lmove import ParsingError from pychess.Players.engineNest import discoverer from pychess.widgets.preferencesDialog import anal_combo_get_value, anal_combo_set_value from pychess.widgets.InfoBar import InfoBarMessage, InfoBarMessageButton from pychess.widgets import InfoBar widgets = uistuff.GladeWidgets("analyze_game.glade") stop_event = threading.Event() firstRun = True def run(gameDic): global firstRun if firstRun: initialize(gameDic) firstRun = False stop_event.clear() widgets["analyze_game"].show() widgets["analyze_game"].present() def initialize(gameDic): uistuff.keep(widgets["fromCurrent"], "fromCurrent", first_value=True) uistuff.keep(widgets["threatPV"], "threatPV") uistuff.keep(widgets["showEval"], "showEval") uistuff.keep(widgets["showBlunder"], "showBlunder", first_value=True) uistuff.keep(widgets["max_analysis_spin"], "max_analysis_spin", first_value=3) uistuff.keep(widgets["variation_threshold_spin"], "variation_threshold_spin", first_value=50) # Analyzing engines uistuff.createCombo(widgets["ana_combobox"]) from pychess.widgets import newGameDialog @idle_add def update_analyzers_store(discoverer): data = [(item[0], item[1]) for item in newGameDialog.analyzerItems] uistuff.updateCombo(widgets["ana_combobox"], data) discoverer.connect_after("all_engines_discovered", update_analyzers_store) update_analyzers_store(discoverer) uistuff.keep(widgets["ana_combobox"], "ana_combobox", anal_combo_get_value, lambda combobox, value: anal_combo_set_value(combobox, value, "hint_mode", "analyzer_check", HINT)) def hide_window(button, *args): widgets["analyze_game"].hide() return True def abort (): stop_event.set() widgets["analyze_game"].hide() def run_analyze(button, *args): gmwidg = gamewidget.cur_gmwidg() gamemodel = gameDic[gmwidg] old_check_value = conf.get("analyzer_check", True) conf.set("analyzer_check", True) if HINT not in gamemodel.spectators: gamemodel.start_analyzer(HINT) analyzer = gamemodel.spectators[HINT] gmwidg.menuitems["hint_mode"].active = True threat_PV = conf.get("ThreatPV", False) if threat_PV: old_inv_check_value = conf.get("inv_analyzer_check", True) conf.set("inv_analyzer_check", True) if SPY not in gamemodel.spectators: gamemodel.start_analyzer(SPY) inv_analyzer = gamemodel.spectators[SPY] gmwidg.menuitems["spy_mode"].active = True title = _("Game analyzing in progress...") text = _("Do you want to abort it?") content = InfoBar.get_message_content(title, text, Gtk.STOCK_DIALOG_QUESTION) def response_cb (infobar, response, message): conf.set("analyzer_check", old_check_value) if threat_PV: conf.set("inv_analyzer_check", old_inv_check_value) message.dismiss() abort() message = InfoBarMessage(Gtk.MessageType.QUESTION, content, response_cb) message.add_button(InfoBarMessageButton(_("Abort"), Gtk.ResponseType.CANCEL)) gmwidg.replaceMessages(message) def analyse_moves(): from_current = conf.get("fromCurrent", True) start_ply = gmwidg.board.view.shown if from_current else 0 move_time = int(conf.get("max_analysis_spin", 3)) threshold = int(conf.get("variation_threshold_spin", 50)) for board in gamemodel.boards[start_ply:]: if stop_event.is_set(): break @idle_add def do(): gmwidg.board.view.setShownBoard(board) do() analyzer.setBoard(board) if threat_PV: inv_analyzer.setBoard(board) time.sleep(move_time+0.1) ply = board.ply if ply-1 in gamemodel.scores and ply in gamemodel.scores: color = (ply-1) % 2 oldmoves, oldscore, olddepth = gamemodel.scores[ply-1] oldscore = oldscore * -1 if color == BLACK else oldscore score_str = prettyPrintScore(oldscore, olddepth) moves, score, depth = gamemodel.scores[ply] score = score * -1 if color == WHITE else score diff = score-oldscore if (diff > threshold and color==BLACK) or (diff < -1*threshold and color==WHITE): if threat_PV: try: if ply-1 in gamemodel.spy_scores: oldmoves0, oldscore0, olddepth0 = gamemodel.spy_scores[ply-1] score_str0 = prettyPrintScore(oldscore0, olddepth0) pv0 = listToMoves(gamemodel.boards[ply-1], ["--"] + oldmoves0, validate=True) if len(pv0) > 2: gamemodel.add_variation(gamemodel.boards[ply-1], pv0, comment="Treatening", score=score_str0) except ParsingError as e: # ParsingErrors may happen when parsing "old" lines from # analyzing engines, which haven't yet noticed their new tasks log.debug("__parseLine: Ignored (%s) from analyzer: ParsingError%s" % \ (' '.join(oldmoves),e)) try: pv = listToMoves(gamemodel.boards[ply-1], oldmoves, validate=True) gamemodel.add_variation(gamemodel.boards[ply-1], pv, comment="Better is", score=score_str) except ParsingError as e: # ParsingErrors may happen when parsing "old" lines from # analyzing engines, which haven't yet noticed their new tasks log.debug("__parseLine: Ignored (%s) from analyzer: ParsingError%s" % \ (' '.join(oldmoves),e)) widgets["analyze_game"].hide() widgets["analyze_ok_button"].set_sensitive(True) conf.set("analyzer_check", old_check_value) if threat_PV: conf.set("inv_analyzer_check", old_inv_check_value) message.dismiss() t = threading.Thread(target=analyse_moves, name=fident(analyse_moves)) t.daemon = True t.start() hide_window(None) return True widgets["analyze_game"].connect("delete-event", hide_window) widgets["analyze_cancel_button"].connect("clicked", hide_window) widgets["analyze_ok_button"].connect("clicked", run_analyze) pychess-0.12.2/lib/pychess/widgets/ionest.py0000644000175000017470000004437012653171673021340 0ustar tamasusers00000000000000""" The task of this module, is to save, load and init new games """ from __future__ import print_function import os from gi.repository import Gtk from gi.repository import GObject from pychess import Savers from pychess.Savers.ChessFile import LoadingError from pychess.Savers import * from pychess.System import conf from pychess.System.Log import log from pychess.System.protoopen import isWriteable from pychess.System.uistuff import GladeWidgets, keep from pychess.Utils.const import * from pychess.Utils.Offer import Offer from pychess.widgets import gamenanny, gamewidget def generalStart (gamemodel, player0tup, player1tup, loaddata=None): """ The player tuples are: (The type af player in a System.const value, A callable creating the player, A list of arguments for the callable, A preliminary name for the player) If loaddata is specified, it should be a tuple of: (A text uri or fileobj, A Savers.something module with a load function capable of loading it, An int of the game in file you want to load, The position from where to start the game) """ log.debug("ionest.generalStart: %s\n %s\n %s" % (gamemodel, player0tup, player1tup)) gmwidg = gamewidget.GameWidget(gamemodel) gmwidg.connect("game_close_clicked", closeGame, gamemodel) #worker.publish((gmwidg,gamemodel)) gamewidget.attachGameWidget(gmwidg) gamenanny.nurseGame(gmwidg, gamemodel) log.debug("ionest.generalStart: -> emit gmwidg_created: %s" % (gmwidg)) handler.emit("gmwidg_created", gmwidg, gamemodel) log.debug("ionest.generalStart: <- emit gmwidg_created: %s" % (gmwidg)) # Initing players players = [] for i, playertup in enumerate((player0tup, player1tup)): type, func, args, prename = playertup if type != LOCAL: players.append(func(*args)) #if type == ARTIFICIAL: # def readyformoves (player, color): # gmwidg.setTabText(gmwidg.display_text)) # players[i].connect("readyForMoves", readyformoves, i) else: # Until PyChess has a proper profiles system, as discussed on the # issue tracker, we need to give human players special treatment player = func(gmwidg, *args) players.append(player) # Connect to conf if i == 0 or (i == 1 and player0tup[0] != LOCAL): key = "firstName" alt = _("You") else: key = "secondName" alt = _("Guest") if prename == conf.get(key, alt): conf.notify_add(key, lambda *a:player.setName(conf.get(key,alt))) if player0tup[0] == ARTIFICIAL and player1tup[0] == ARTIFICIAL: def emit_action (action, param): if gmwidg.isInFront(): gamemodel.curplayer.emit("offer", Offer(action, param=param)) gmwidg.board.connect("action", lambda b,action,param: emit_action(action, param)) log.debug("ionest.generalStart: -> gamemodel.setPlayers(): %s" % (gamemodel)) gamemodel.setPlayers(players) log.debug("ionest.generalStart: <- gamemodel.setPlayers(): %s" % (gamemodel)) # Starting if loaddata: try: uri, loader, gameno, position = loaddata gamemodel.loadAndStart (uri, loader, gameno, position) if position != gamemodel.ply: gmwidg.board.view.shown = position except LoadingError as e: d = Gtk.MessageDialog (type=Gtk.MessageType.WARNING, buttons=Gtk.ButtonsType.OK) d.set_markup(_("Error loading game")) d.format_secondary_text(", ".join(str(a) for a in e.args)) d.show() d.hide() else: if gamemodel.variant.need_initial_board: for player in gamemodel.players: player.setOptionInitialBoard(gamemodel) log.debug("ionest..generalStart: -> gamemodel.start(): %s" % (gamemodel)) gamemodel.start() log.debug("ionest.generalStart: <- gamemodel.start(): %s" % (gamemodel)) log.debug("ionest.generalStart: returning gmwidg=%s\n gamemodel=%s" % \ (gmwidg, gamemodel)) return gmwidg, gamemodel ################################################################################ # Global Load and Save variables # ################################################################################ opendialog = None savedialog = None enddir = {} saveformats = None exportformats = None def getOpenAndSaveDialogs(): global opendialog, savedialog, enddir, savecombo, savers, saveformats, exportformats if not opendialog: savers = [getattr(Savers, s) for s in Savers.__all__] for saver in savers: enddir[saver.__ending__] = saver opendialog = Gtk.FileChooserDialog(_("Open Game"), None, Gtk.FileChooserAction.OPEN, (Gtk.STOCK_CANCEL, Gtk.ResponseType.CANCEL, Gtk.STOCK_OPEN, Gtk.ResponseType.ACCEPT)) savedialog = Gtk.FileChooserDialog("", None, Gtk.FileChooserAction.SAVE, (Gtk.STOCK_CANCEL, Gtk.ResponseType.CANCEL, Gtk.STOCK_SAVE, Gtk.ResponseType.ACCEPT)) savedialog.set_current_folder(os.path.expanduser("~")) saveformats = Gtk.ListStore(str, str, GObject.TYPE_PYOBJECT) exportformats = Gtk.ListStore(str, str, GObject.TYPE_PYOBJECT) # All files filter star = Gtk.FileFilter() star.set_name(_("All Files")) star.add_pattern("*") opendialog.add_filter(star) auto = _("Detect type automatically") saveformats.append([auto, "", None]) exportformats.append([auto, "", None]) # All chess files filter all = Gtk.FileFilter() all.set_name(_("All Chess Files")) opendialog.add_filter(all) opendialog.set_filter(all) # Specific filters and save formats i = default = 0 for saver in savers: label, ending = saver.__label__, saver.__ending__ endstr = "(%s)" % ending f = Gtk.FileFilter() f.set_name(label+" "+endstr) if hasattr(enddir[ending], "load"): f.add_pattern("*."+ending) all.add_pattern("*."+ending) opendialog.add_filter(f) saveformats.append([label, endstr, saver]) i += 1 else: exportformats.append([label, endstr, saver]) if "pgn" in endstr: default = i + 1 # Add widgets to the savedialog savecombo = Gtk.ComboBox() crt = Gtk.CellRendererText() savecombo.pack_start(crt, True) savecombo.add_attribute(crt, 'text', 0) crt = Gtk.CellRendererText() savecombo.pack_start(crt, False) savecombo.add_attribute(crt, 'text', 1) savecombo.set_active(default) savedialog.set_extra_widget(savecombo) return opendialog, savedialog, enddir, savecombo, savers ################################################################################ # Saving # ################################################################################ def saveGame (game): if not game.isChanged(): return if game.uri and isWriteable (game.uri): saveGameSimple (game.uri, game) else: return saveGameAs (game) def saveGameSimple (uri, game): ending = os.path.splitext(uri)[1] if not ending: return saver = enddir[ending[1:]] game.save(uri, saver, append=False) def saveGamePGN (game): if conf.get("saveOwnGames", False) and not game.hasLocalPlayer(): return True filename = conf.get("autoSaveFormat", "pychess") filename = filename.replace("#n1", game.tags["White"]) filename = filename.replace("#n2", game.tags["Black"]) filename = filename.replace("#y", "%s" % game.tags["Year"]) filename = filename.replace("#m", "%s" % game.tags["Month"]) filename = filename.replace("#d", "%s" % game.tags["Day"]) uri = conf.get("autoSavePath", os.path.expanduser("~")) + \ "/" + filename + ".pgn" saver = pgn append = True try: game.save(uri, saver, append) return True except IOError as e: return False def saveGameAs (game, position=None): opendialog, savedialog, enddir, savecombo, savers = getOpenAndSaveDialogs() if position is not None: savecombo.set_model(exportformats) else: savecombo.set_model(saveformats) # Keep running the dialog until the user has canceled it or made an error # free operation title = _("Save Game") if position is None else _("Export position") savedialog.set_title(title) while True: savedialog.set_current_name("%s %s %s" % (game.players[0], _("vs."), game.players[1])) res = savedialog.run() if res != Gtk.ResponseType.ACCEPT: break uri = savedialog.get_filename() ending = os.path.splitext(uri)[1] if ending.startswith("."): ending = ending[1:] append = False if savecombo.get_active() == 0: if not ending in enddir: d = Gtk.MessageDialog( type=Gtk.MessageType.ERROR, buttons=Gtk.ButtonsType.OK) folder, file = os.path.split(uri) d.set_markup( _("Unknown file type '%s'") % ending) d.format_secondary_text(_("Was unable to save '%(uri)s' as PyChess doesn't know the format '%(ending)s'.") % { 'uri': uri, 'ending': ending}) d.run() d.hide() continue else: saver = enddir[ending] else: index = savecombo.get_active() format = saveformats[index] if position is None else exportformats[index] saver = format[2] if not ending in enddir or not saver == enddir[ending]: uri += ".%s" % saver.__ending__ if os.path.isfile(uri) and not os.access (uri, os.W_OK): d = Gtk.MessageDialog(type=Gtk.MessageType.ERROR, buttons=Gtk.ButtonsType.OK) d.set_markup(_("Unable to save file '%s'") % uri) d.format_secondary_text( _("You don't have the necessary rights to save the file.\n\ Please ensure that you have given the right path and try again.")) d.run() d.hide() continue if os.path.isfile(uri): d = Gtk.MessageDialog(type=Gtk.MessageType.QUESTION) d.add_buttons(Gtk.STOCK_CANCEL, Gtk.ResponseType.CANCEL, _("_Replace"), Gtk.ResponseType.ACCEPT) if saver.__append__: d.add_buttons(Gtk.STOCK_ADD, 1) d.set_title(_("File exists")) folder, file = os.path.split(uri) d.set_markup(_("A file named '%s' already exists. Would you like to replace it?") % file) d.format_secondary_text(_("The file already exists in '%s'. If you replace it, its content will be overwritten.") % folder) replaceRes = d.run() d.hide() if replaceRes == 1: append = True elif replaceRes == Gtk.ResponseType.CANCEL: continue else: print(repr(uri)) try: game.save(uri, saver, append, position) except IOError as e: d = Gtk.MessageDialog(type=Gtk.MessageType.ERROR) d.add_buttons(Gtk.STOCK_OK, Gtk.ResponseType.OK) d.set_title(_("Could not save the file")) d.set_markup(_("PyChess was not able to save the game")) d.format_secondary_text(_("The error was: %s") % ", ".join(str(a) for a in e.args)) d.run() d.hide() continue break savedialog.hide() return res ################################################################################ # Closing # ################################################################################ def closeAllGames (pairs): log.debug("ionest.closeAllGames") response = None changedPairs = [(gmwidg, game) for gmwidg, game in pairs if game.isChanged()] if len(changedPairs) == 0: response = Gtk.ResponseType.OK elif len(changedPairs) == 1: response = closeGame(*changedPairs[0]) else: markup = "" + \ ngettext("There is %d game with unsaved moves.", "There are %d games with unsaved moves.", len(changedPairs)) % len(changedPairs) + \ " " + _("Save moves before closing?") + \ "" if conf.get("autoSave", False): for gmwidg, game in changedPairs: x = saveGamePGN(game) if x: response = Gtk.ResponseType.OK else: response = None markup = "" + \ _("Unable to save to configured file. Save the games before closing?") + \ "" break res if response is None: widgets = GladeWidgets("saveGamesDialog.glade") dialog = widgets["saveGamesDialog"] heading = widgets["saveGamesDialogHeading"] saveLabel = widgets["saveGamesDialogSaveLabel"] treeview = widgets["saveGamesDialogTreeview"] heading.set_markup(markup) liststore = Gtk.ListStore(bool, str) treeview.set_model(liststore) renderer = Gtk.CellRendererToggle() renderer.props.activatable = True treeview.append_column(Gtk.TreeViewColumn("", renderer, active=0)) treeview.append_column(Gtk.TreeViewColumn("", Gtk.CellRendererText(), text=1)) for gmwidg, game in changedPairs: liststore.append((True, "%s %s %s" % (game.players[0], _("vs."), game.players[1]))) def callback (cell, path): if path: liststore[path][0] = not liststore[path][0] saves = len(tuple(row for row in liststore if row[0])) saveLabel.set_text(ngettext("_Save %d document", "_Save %d documents", saves) % saves) saveLabel.set_use_underline(True) renderer.connect("toggled", callback) callback(None, None) while True: response = dialog.run() if response == Gtk.ResponseType.YES: for i in range(len(liststore)-1, -1, -1): checked, name = liststore[i] if checked: gmwidg, game = changedPairs[i] if saveGame(game) == Gtk.ResponseType.ACCEPT: liststore.remove(liststore.get_iter((i,))) del changedPairs[i] if game.status in UNFINISHED_STATES: game.end(ABORTED, ABORTED_AGREEMENT) game.terminate() gamewidget.delGameWidget(gmwidg) else: break else: break else: break dialog.destroy() if response not in (Gtk.ResponseType.DELETE_EVENT, Gtk.ResponseType.CANCEL): pairs = [(gmwidg, game) for gmwidg, game in pairs] for gmwidg, game in pairs: if game.status in UNFINISHED_STATES: game.end(ABORTED, ABORTED_AGREEMENT) game.terminate() if gmwidg.notebookKey in gamewidget.key2gmwidg: gamewidget.delGameWidget(gmwidg) return response def closeGame (gmwidg, game): log.debug("ionest.closeGame") response = None if not game.isChanged(): response = Gtk.ResponseType.OK else: markup = "" + \ _("Save the current game before you close it?") + \ "" if conf.get("autoSave", False): x = saveGamePGN(game) if x: response = Gtk.ResponseType.OK else: markup = "" + \ _("Unable to save to configured file. Save the current game before you close it?") + \ "" if response is None: d = Gtk.MessageDialog (type = Gtk.MessageType.WARNING) d.add_button(_("Close _without Saving"), Gtk.ResponseType.OK) d.add_button(Gtk.STOCK_CANCEL, Gtk.ResponseType.CANCEL) if game.uri: d.add_button(Gtk.STOCK_SAVE, Gtk.ResponseType.YES) else: d.add_button(Gtk.STOCK_SAVE_AS, Gtk.ResponseType.YES) gmwidg.bringToFront() d.set_markup(markup) d.format_secondary_text (_( "It is not possible later to continue the game,\nif you don't save it.")) response = d.run() d.destroy() if response == Gtk.ResponseType.YES: # Test if cancel was pressed in the save-file-dialog if saveGame(game) != Gtk.ResponseType.ACCEPT: response = Gtk.ResponseType.CANCEL if response not in (Gtk.ResponseType.DELETE_EVENT, Gtk.ResponseType.CANCEL): if game.status in UNFINISHED_STATES: game.end(ABORTED, ABORTED_AGREEMENT) game.terminate() gamewidget.delGameWidget (gmwidg) return response ################################################################################ # Signal handler # ################################################################################ class Handler (GObject.GObject): """ The goal of this class, is to provide signal handling for the ionest module. Emit objects are gmwidg, gameobject """ __gsignals__ = { 'gmwidg_created': (GObject.SignalFlags.RUN_FIRST, None, (object, object)) } def __init__ (self): GObject.GObject.__init__(self) handler = Handler() pychess-0.12.2/lib/pychess/widgets/MenuItemsDict.py0000644000175000017470000001035712653166136022545 0ustar tamasusers00000000000000from __future__ import absolute_import from pychess.System import conf from pychess.System.idle_add import idle_add from pychess.Utils.const import ACTION_MENU_ITEMS ################################################################################ # Main menubar MenuItem classes to keep track of menu widget states # ################################################################################ class GtkMenuItem (object): def __init__ (self, name, gamewidget, sensitive=False, label=None, tooltip=None): assert isinstance(sensitive, bool) assert label is None or isinstance(label, str) self.name = name self.gamewidget = gamewidget self._sensitive = sensitive self._label = label self._tooltip = tooltip @property def sensitive (self): return self._sensitive @sensitive.setter def sensitive (self, sensitive): assert isinstance(sensitive, bool) self._sensitive = sensitive self._set_widget("sensitive", sensitive) @property def label (self): return self._label @label.setter def label (self, label): assert isinstance(label, str) or isinstance(label, unicode) self._label = label self._set_widget("label", label) @property def tooltip (self): return self._tooltip @tooltip.setter def tooltip (self, tooltip): assert isinstance(tooltip, str) or isinstance(tooltip, unicode) self._tooltip = tooltip self._set_widget("tooltip-text", tooltip) def _set_widget (self, prop, value): if not self.gamewidget.isInFront(): return from . import gamewidget if gamewidget.getWidgets()[self.name].get_property(prop) != value: #print "setting %s property %s to %s.." % (self.name, prop, str(value)), @idle_add def do_set_menu_item_prop(): gamewidget.getWidgets()[self.name].set_property(prop, value) do_set_menu_item_prop() #print " success (%s %s = \"%s\")" % \ # (self.name, prop, gamewidget.getWidgets()[self.name].get_property(prop)) def update (self): self._set_widget("sensitive", self._sensitive) if self._label is not None: self._set_widget("label", self._label) if self._tooltip is not None: self._set_widget("tooltip-text", self._tooltip) class GtkMenuToggleButton (GtkMenuItem): def __init__ (self, name, gamewidget, sensitive=False, active=False, label=None): assert isinstance(active, bool) GtkMenuItem.__init__(self, name, gamewidget, sensitive, label) self._active = active @property def active (self): return self._active @active.setter def active (self, active): assert isinstance(active, bool) self._active = active self._set_widget("active", active) def update (self): GtkMenuItem.update(self) self._set_widget("active", self._active) class MenuItemsDict (dict): """ Keeps track of menubar menuitem widgets that need to be managed on a game by game basis. Each menuitem writes through its respective widget state to the GUI if we are encapsulated in the gamewidget that's focused/infront """ ANAL_MENU_ITEMS = ("analyze_game1", "analyzer_check", "inv_analyzer_check", "ana_combobox", "inv_ana_combobox") VIEW_MENU_ITEMS = ("hint_mode", "spy_mode") class ReadOnlyDictException (Exception): pass def __init__ (self, gamewidget): dict.__init__(self) for item in ACTION_MENU_ITEMS: dict.__setitem__(self, item, GtkMenuItem(item, gamewidget)) for item in self.ANAL_MENU_ITEMS: dict.__setitem__(self, item, GtkMenuItem(item, gamewidget, sensitive=True)) for item in self.VIEW_MENU_ITEMS: dict.__setitem__(self, item, GtkMenuToggleButton(item, gamewidget, active = conf.get(item, False))) gamewidget.connect("infront", self.on_gamewidget_infront) def __setitem__ (self, item, value): raise self.ReadOnlyDictException() def on_gamewidget_infront (self, gamewidget): for menuitem in self: self[menuitem].update() pychess-0.12.2/lib/pychess/widgets/TaskerManager.py0000644000175000017470000002656712641567764022602 0ustar tamasusers00000000000000from __future__ import absolute_import import math import random from gi.repository import Gtk from gi.repository import Pango from gi.repository import GObject from gi.repository import GdkPixbuf from pychess.Players.Human import Human from pychess.Players.engineNest import discoverer from pychess.System import uistuff, conf from pychess.System.idle_add import idle_add from pychess.System.prefix import addDataPrefix from pychess.Utils.GameModel import GameModel from pychess.Utils.IconLoader import load_icon, get_pixbuf from pychess.Utils.TimeModel import TimeModel from pychess.Utils.const import LOCAL, ARTIFICIAL, WHITE, BLACK, NORMALCHESS from pychess.Variants import variants from pychess.ic import ICLogon from pychess.widgets import ionest, newGameDialog from .Background import giveBackground from .ToggleComboBox import ToggleComboBox class TaskerManager (Gtk.Table): def __init__ (self): GObject.GObject.__init__(self) self.border = 20 giveBackground(self) self.connect("draw", self.expose) #self.set_homogeneous(True) def expose (self, widget, ctx): cr = widget.get_window().cairo_create() for widget in self.widgets: x = widget.get_allocation().x y = widget.get_allocation().y width = widget.get_allocation().width height = widget.get_allocation().height cr.move_to (x-self.border, y) cr.curve_to (x-self.border, y-self.border/2., x-self.border/2., y-self.border, x, y-self.border) cr.line_to (x+width, y-self.border) cr.curve_to (x+width+self.border/2., y-self.border, x+width+self.border, y-self.border/2., x+width+self.border, y) cr.line_to (x+width+self.border, y+height) cr.curve_to (x+width+self.border, y+height+self.border/2., x+width+self.border/2., y+height+self.border, x+width, y+height+self.border) cr.line_to (x, y+height+self.border) cr.curve_to (x-self.border/2., y+height+self.border, x-self.border, y+height+self.border/2., x-self.border, y+height) sc = self.get_style_context() bool1, bgcolor = sc.lookup_color("p_bg_color") bool1, darkcolor = sc.lookup_color("p_dark_color") cr.set_source_rgba(bgcolor.red, bgcolor.green, bgcolor.blue, bgcolor.alpha) cr.fill() cr.rectangle (x-self.border, y+height-30, width+self.border*2, 30) cr.set_source_rgba(darkcolor.red, darkcolor.green, darkcolor.blue, darkcolor.alpha) cr.fill() def calcSpacings (self, n): """ Will yield ranges like ((.50,.50),) ((.66,.33), (.33,.66)) ((.75,.25), (.50,.50), (.25,.75)) ((.80,.20), (.60,.40), (.40,.60), (.20,.80)) Used to create the centering in the table """ first = next = (n)/float(n+1) for i in range(n): yield (next, 1-next) next = first-(1-next) def packTaskers (self, *widgets): self.widgets = widgets for widget in widgets: widget.connect("size-allocate", lambda *a: self.get_window().invalidate_rect(self.get_allocation(), False)) root = math.sqrt(len(widgets)) # Calculate number of rows rows = int(math.ceil(root)) # Calculate number of filled out rows rrows = int(math.floor(root)) # Calculate number of cols in filled out rows cols = int(math.ceil( len(widgets)/float(rows) )) # Calculate spacings vspac = [s[0] for s in self.calcSpacings(rows)] hspac = [s[0] for s in self.calcSpacings(cols)] # Clear and set up new size for child in self.get_children(): self.remove(child) self.props.n_columns = cols self.props.n_rows = rows # Add filled out rows for row in range(rows): for col in range(cols): widget = widgets[row*cols + col] alignment = Gtk.Alignment.new(hspac[col], vspac[row], 0, 0) alignment.add(widget) self.attach(alignment, col, col+1, row, row+1) return # Add last row if rows > rrows: lastrow = Gtk.HBox() # Calculate number of widgets in last row numw = len(widgets) - cols*rrows hspac = [s[0] for s in self.calcSpacings(numw)] for col, widget in enumerate(widgets[-numw:]): alignment = Gtk.Alignment.new(hspac[col], vspac[-1], 0, 0) alignment.add(widget) alignment.set_padding(self.border, self.border, self.border, self.border) lastrow.pack_start(alignment, True, True, 0) self.attach(lastrow, 0, cols, rrows, rrows+1) class NewGameTasker (Gtk.Alignment): def __init__ (self): #GObject.GObject.__init__(self,0,0,0,0) GObject.GObject.__init__(self) self.widgets = widgets = uistuff.GladeWidgets("taskers.glade") tasker = widgets["newGameTasker"] tasker.unparent() self.add(tasker) combo = ToggleComboBox() combo.addItem(_("White"), get_pixbuf("glade/white.png")) combo.addItem(_("Black"), get_pixbuf("glade/black.png")) combo.addItem(_("Random"), get_pixbuf("glade/random.png")) combo.setMarkup("", "") widgets["colorDock"].add(combo) uistuff.keep(combo, "newgametasker_colorcombo") widgets['yourColorLabel'].set_mnemonic_widget(combo) # We need to wait until after engines have been discovered, to init the # playerCombos. We use connect_after to make sure, that newGameDialog # has also had time to init the constants we share with them. self.playerCombo = ToggleComboBox() widgets["opponentDock"].add(self.playerCombo) discoverer.connect_after( "all_engines_discovered", self.__initPlayerCombo, widgets) widgets['opponentLabel'].set_mnemonic_widget(self.playerCombo) def on_skill_changed (scale): pix = newGameDialog.skillToIconLarge[int(scale.get_value())] widgets["skillImage"].set_from_pixbuf(pix) widgets["skillSlider"].connect("value-changed", on_skill_changed) on_skill_changed(widgets["skillSlider"]) widgets["startButton"].connect("clicked", self.startClicked) self.widgets["opendialog1"].connect("clicked", self.openDialogClicked) @idle_add def __initPlayerCombo (self, discoverer, widgets): combo = self.playerCombo combo.update(newGameDialog.smallPlayerItems[0]) if combo.active < 0: combo.label.set_ellipsize(Pango.EllipsizeMode.MIDDLE) combo.setMarkup("", "") combo.active = 1 uistuff.keep(self.playerCombo, "newgametasker_playercombo") def on_playerCombobox_changed (widget, event): widgets["skillSlider"].props.visible = widget.active > 0 combo.connect("changed", on_playerCombobox_changed) uistuff.keep(widgets["skillSlider"], "taskerSkillSlider") widgets["skillSlider"].set_no_show_all(True) on_playerCombobox_changed(self.playerCombo, None) def openDialogClicked (self, button): newGameDialog.NewGameMode.run() def startClicked (self, button): color = self.widgets["colorDock"].get_child().active if color == 2: color = random.choice([WHITE, BLACK]) opponent = self.widgets["opponentDock"].get_child().active difficulty = int(self.widgets["skillSlider"].get_value()) gamemodel = GameModel(TimeModel(5*60, 0)) name = conf.get("firstName", _("You")) player0tup = (LOCAL, Human, (color, name), name) if opponent == 0: name = conf.get("secondName", _("Guest")) player1tup = (LOCAL, Human, (1-color, name), name) else: engine = discoverer.getEngineN (opponent-1) name = discoverer.getName(engine) player1tup = (ARTIFICIAL, discoverer.initPlayerEngine, (engine, 1-color, difficulty, variants[NORMALCHESS], 5*60, 0), name) if color == WHITE: ionest.generalStart(gamemodel, player0tup, player1tup) else: ionest.generalStart(gamemodel, player1tup, player0tup) big_start = load_icon(48, "stock_init", "gnome-globe", "applications-internet") class InternetGameTasker (Gtk.Alignment): def __init__ (self): #GObject.GObject.__init__(self,0,0,0,0) GObject.GObject.__init__(self) self.widgets = uistuff.GladeWidgets("taskers.glade") tasker = self.widgets["internetGameTasker"] tasker.unparent() self.add(tasker) def asGuestCallback (check): names = ICLogon.get_user_names() self.widgets["usernameEntry"].set_text(names[1] if check.get_active() else names[0]) self.widgets["passwordLabel"].set_sensitive(not check.get_active()) self.widgets["passwordEntry"].set_sensitive(not check.get_active()) self.widgets["asGuestCheck"].connect("toggled", asGuestCallback) uistuff.keep(self.widgets["asGuestCheck"], "asGuestCheck") as_guest = self.widgets["asGuestCheck"] def user_name_get_value(entry): names = ICLogon.get_user_names() if as_guest.get_active(): text = "%s|%s" % (names[0], entry.get_text()) else: text = "%s|%s" % (entry.get_text(), names[1]) return text def user_name_set_value(entry, value): names = ICLogon.get_user_names(value=value) if as_guest.get_active(): entry.set_text(names[1]) else: entry.set_text(names[0]) uistuff.keep(self.widgets["usernameEntry"], "usernameEntry", \ user_name_get_value, user_name_set_value) uistuff.keep(self.widgets["passwordEntry"], "passwordEntry") self.widgets["connectButton"].connect("clicked", self.connectClicked) self.widgets["opendialog2"].connect("clicked", self.openDialogClicked) self.widgets["startIcon"].set_from_pixbuf(big_start) def openDialogClicked (self, button): ICLogon.run() def connectClicked (self, button): asGuest = self.widgets["asGuestCheck"].get_active() username = self.widgets["usernameEntry"].get_text() password = self.widgets["passwordEntry"].get_text() ICLogon.run() if not ICLogon.dialog.connection: ICLogon.dialog.widgets["logOnAsGuest"].set_active(asGuest) ICLogon.dialog.widgets["nameEntry"].set_text(username) ICLogon.dialog.widgets["passEntry"].set_text(password) ICLogon.dialog.widgets["connectButton"].clicked() pychess-0.12.2/lib/pychess/widgets/BoardControl.py0000755000175000017470000010575612653224456022436 0ustar tamasusers00000000000000# -*- coding: UTF-8 -*- from __future__ import absolute_import from __future__ import print_function from gi.repository import GLib, Gtk, Gdk, GObject import threading from pychess.System import conf from pychess.Utils.Cord import Cord from pychess.Utils.Move import Move, parseAny, toAN from pychess.Utils.const import ARTIFICIAL, FLAG_CALL, ABORT_OFFER, LOCAL, TAKEBACK_OFFER, \ ADJOURN_OFFER, DRAW_OFFER, RESIGNATION, HURRY_ACTION, PAUSE_OFFER, \ RESUME_OFFER, RUNNING, KING, DROP, DROP_VARIANTS, PAWN, QUEEN, \ SITTUYINCHESS, QUEEN_PROMOTION from pychess.Utils.logic import validate from pychess.Utils.lutils import lmove, lmovegen from . import preferencesDialog from .PromotionDialog import PromotionDialog from .BoardView import BoardView, rect, join class BoardControl(Gtk.EventBox): """ Creates a BoardView for GameModel to control move selection, action menu selection and emits signals to let Human player make moves and emit offers. SetuPositionDialog uses setup_position=True to disable most validation. """ __gsignals__ = { 'piece_moved': (GObject.SignalFlags.RUN_FIRST, None, (object, int)), 'action': (GObject.SignalFlags.RUN_FIRST, None, (str, object)) } def __init__(self, gamemodel, actionMenuItems, setup_position=False): GObject.GObject.__init__(self) self.setup_position = setup_position self.view = BoardView(gamemodel, setup_position=setup_position) self.add(self.view) self.variant = gamemodel.variant self.promotionDialog = PromotionDialog(self.variant.variant) self.RANKS = gamemodel.boards[0].RANKS self.FILES = gamemodel.boards[0].FILES self.actionMenuItems = actionMenuItems self.connections = {} for key, menuitem in self.actionMenuItems.items(): if menuitem == None: print(key) self.connections[menuitem] = menuitem.connect( "activate", self.actionActivate, key) self.view.connect("shownChanged", self.shownChanged) gamemodel.connect("moves_undoing", self.moves_undone) gamemodel.connect("game_ended", self.game_ended) self.connect("button_press_event", self.button_press) self.connect("button_release_event", self.button_release) self.add_events(Gdk.EventMask.LEAVE_NOTIFY_MASK | Gdk.EventMask.POINTER_MOTION_MASK) self.connect("motion_notify_event", self.motion_notify) self.connect("leave_notify_event", self.leave_notify) self.selected_last = None self.stateLock = threading.Lock() self.normalState = NormalState(self) self.selectedState = SelectedState(self) self.activeState = ActiveState(self) self.lockedNormalState = LockedNormalState(self) self.lockedSelectedState = LockedSelectedState(self) self.lockedActiveState = LockedActiveState(self) self.currentState = self.normalState self.lockedPly = self.view.shown self.possibleBoards = { self.lockedPly: self._genPossibleBoards(self.lockedPly) } self.allowPremove = False def onGameStart(gamemodel): if not self.setup_position: for player in gamemodel.players: if player.__type__ == LOCAL: self.allowPremove = True gamemodel.connect("game_started", onGameStart) self.keybuffer = "" def _del(self): for menu, conid in self.connections.items(): menu.disconnect(conid) self.connections = {} def getPromotion(self): color = self.view.model.boards[-1].color variant = self.view.model.boards[-1].variant promotion = None promotion = self.promotionDialog.runAndHide(color, variant) return promotion def emit_move_signal(self, cord0, cord1, promotion=None): # Game end can change cord0 to None while dragging a piece if cord0 is None: return color = self.view.model.boards[-1].color board = self.view.model.getBoardAtPly(self.view.shown, self.view.shown_variation_idx) # Ask player for which piece to promote into. If this move does not # include a promotion, QUEEN will be sent as a dummy value, but not used if promotion is None and board[ cord0].sign == PAWN and cord1.cord in board.PROMOTION_ZONE[ color]: if self.variant.variant == SITTUYINCHESS: # no promotion allowed if we have queen if board.board.boards[color][QUEEN]: promotion = None else: # promotion is always optional promotion = self.getPromotion() if promotion is None and cord0 == cord1: # if don't want in place promotion return elif len(self.variant.PROMOTIONS) == 1: promotion = lmove.PROMOTE_PIECE(self.variant.PROMOTIONS[0]) else: if conf.get("autoPromote", False): promotion = lmove.PROMOTE_PIECE(QUEEN_PROMOTION) else: promotion = self.getPromotion() if promotion is None: # Put back pawn moved be d'n'd self.view.runAnimation(redraw_misc=False) return if cord0.x < 0 or cord0.x > self.FILES - 1: move = Move(lmovegen.newMove(board[cord0].piece, cord1.cord, DROP)) else: move = Move(cord0, cord1, board, promotion) if (self.view.model.curplayer.__type__ == LOCAL or self.view.model.examined) and \ self.view.shownIsMainLine() and \ self.view.model.boards[-1] == board and \ self.view.model.status == RUNNING: if self.setup_position: self.emit("piece_moved", (cord0, cord1), board[cord0].color) else: self.emit("piece_moved", move, color) if self.view.model.examined: self.view.model.connection.bm.sendMove(toAN(board, move)) else: if board.board.next is None and not self.view.shownIsMainLine(): self.view.model.add_move2variation( board, move, self.view.shown_variation_idx) self.view.shown += 1 else: new_vari = self.view.model.add_variation(board, (move, )) self.view.setShownBoard(new_vari[-1]) def actionActivate(self, widget, key): """ Put actions from a menu or similar """ if key == "call_flag": self.emit("action", FLAG_CALL, None) elif key == "abort": self.emit("action", ABORT_OFFER, None) elif key == "adjourn": self.emit("action", ADJOURN_OFFER, None) elif key == "draw": self.emit("action", DRAW_OFFER, None) elif key == "resign": self.emit("action", RESIGNATION, None) elif key == "ask_to_move": self.emit("action", HURRY_ACTION, None) elif key == "undo1": curplayer = self.view.model.curplayer waitingplayer = self.view.model.waitingplayer if curplayer.__type__ == LOCAL \ and (waitingplayer.__type__ == ARTIFICIAL or \ self.view.model.isPlayingICSGame()) \ and self.view.model.ply - self.view.model.lowply > 1: self.emit("action", TAKEBACK_OFFER, self.view.model.ply - 2) else: self.emit("action", TAKEBACK_OFFER, self.view.model.ply - 1) elif key == "pause1": self.emit("action", PAUSE_OFFER, None) elif key == "resume1": self.emit("action", RESUME_OFFER, None) def shownChanged(self, view, shown): def do_shown_changed(): self.lockedPly = self.view.shown self.possibleBoards[self.lockedPly] = self._genPossibleBoards( self.lockedPly) if self.view.shown - 2 in self.possibleBoards: del self.possibleBoards[self.view.shown - 2] GLib.idle_add(do_shown_changed) def moves_undone(self, gamemodel, moves): self.stateLock.acquire() try: self.view.selected = None self.view.active = None self.view.hover = None self.view.dragged_piece = None self.view.setPremove(None, None, None, None) if not self.view.model.examined: self.currentState = self.lockedNormalState finally: self.stateLock.release() def game_ended(self, gamemodel, reason): self.stateLock.acquire() try: self.selected_last = None self.view.selected = None self.view.active = None self.view.hover = None self.view.dragged_piece = None self.view.setPremove(None, None, None, None) self.currentState = self.normalState finally: self.stateLock.release() self.view.startAnimation() def getBoard(self): return self.view.model.getBoardAtPly(self.view.shown, self.view.shown_variation_idx) def isLastPlayed(self, board): return board == self.view.model.boards[-1] def setLocked(self, locked): do_animation = False self.stateLock.acquire() try: if locked and self.isLastPlayed(self.getBoard()) and \ self.view.model.status == RUNNING: if self.view.model.status != RUNNING: self.view.selected = None self.view.active = None self.view.hover = None self.view.dragged_piece = None do_animation = True if self.currentState == self.selectedState: self.currentState = self.lockedSelectedState elif self.currentState == self.activeState: self.currentState = self.lockedActiveState else: self.currentState = self.lockedNormalState else: if self.currentState == self.lockedSelectedState: self.currentState = self.selectedState elif self.currentState == self.lockedActiveState: self.currentState = self.activeState else: self.currentState = self.normalState finally: self.stateLock.release() if do_animation: self.view.startAnimation() def setStateSelected(self): self.stateLock.acquire() try: if self.currentState in (self.lockedNormalState, self.lockedSelectedState, self.lockedActiveState): self.currentState = self.lockedSelectedState else: self.view.setPremove(None, None, None, None) self.currentState = self.selectedState finally: self.stateLock.release() def setStateActive(self): self.stateLock.acquire() try: if self.currentState in (self.lockedNormalState, self.lockedSelectedState, self.lockedActiveState): self.currentState = self.lockedActiveState else: self.view.setPremove(None, None, None, None) self.currentState = self.activeState finally: self.stateLock.release() def setStateNormal(self): self.stateLock.acquire() try: if self.currentState in (self.lockedNormalState, self.lockedSelectedState, self.lockedActiveState): self.currentState = self.lockedNormalState else: self.view.setPremove(None, None, None, None) self.currentState = self.normalState finally: self.stateLock.release() def button_press(self, widget, event): return self.currentState.press(event.x, event.y, event.button) def button_release(self, widget, event): return self.currentState.release(event.x, event.y) def motion_notify(self, widget, event): return self.currentState.motion(event.x, event.y) def leave_notify(self, widget, event): return self.currentState.leave(event.x, event.y) def key_pressed(self, keyname): if keyname in "PNBRQKMFSOox12345678abcdefgh": self.keybuffer += keyname elif keyname == "minus": self.keybuffer += "-" elif keyname == "at": self.keybuffer += "@" elif keyname == "equal": self.keybuffer += "=" elif keyname == "Return": color = self.view.model.boards[-1].color board = self.view.model.getBoardAtPly( self.view.shown, self.view.shown_variation_idx) try: move = parseAny(board, self.keybuffer) except: self.keybuffer = "" return if validate(board, move): if self.view.shownIsMainLine() and self.view.model.boards[ -1] == board: self.emit("piece_moved", move, color) else: if board.board.next is None and not self.view.shownIsMainLine( ): self.view.model.add_move2variation( board, move, self.view.shown_variation_idx) self.view.shown += 1 else: new_vari = self.view.model.add_variation(board, (move, )) self.view.setShownBoard(new_vari[-1]) self.keybuffer = "" elif keyname == "BackSpace": self.keybuffer = self.keybuffer[:-1] if self.keybuffer else "" def _genPossibleBoards(self, ply): possibleBoards = [] if self.setup_position: return possibleBoards if len(self.view.model.players) == 2 and self.view.model.isEngine2EngineGame( ): return possibleBoards curboard = self.view.model.getBoardAtPly(ply, self.view.shown_variation_idx) for lmove in lmovegen.genAllMoves(curboard.board.clone()): move = Move(lmove) board = curboard.move(move) possibleBoards.append(board) return possibleBoards class BoardState: ''' There are 6 total BoardStates: NormalState, ActiveState, SelectedState LockedNormalState, LockedActiveState, LockedSelectedState The board state is Locked while it is the opponents turn. The board state is not Locked during your turn. (Locked states are not used when BoardControl setup_position is True.) Normal/Locked State - No pieces or cords are selected Active State - A piece is currently being dragged by the mouse Selected State - A cord is currently selected ''' def __init__(self, board): self.parent = board self.view = board.view self.lastMotionCord = None self.RANKS = self.view.model.boards[0].RANKS self.FILES = self.view.model.boards[0].FILES def getBoard(self): return self.view.model.getBoardAtPly(self.view.shown, self.view.shown_variation_idx) def validate(self, cord0, cord1): if cord0 is None or cord1 is None: return False # prevent accidental NULL_MOVE creation if cord0 == cord1: return False if self.getBoard()[cord0] == None: return False if self.parent.setup_position: to_piece = self.getBoard()[cord1] # prevent moving pieces inside holding if (cord0.x < 0 or cord0.x > self.FILES-1) and \ (cord1.x < 0 or cord1.x > self.FILES-1): return False # prevent moving kings off board elif self.getBoard()[cord0].piece == KING and \ (cord1.x < 0 or cord1.x > self.FILES-1): return False # prevent taking enemy king elif to_piece is not None and to_piece.piece == KING: return False else: return True if cord1.x < 0 or cord1.x > self.FILES - 1: return False if cord0.x < 0 or cord0.x > self.FILES - 1: # drop return validate(self.getBoard(), Move(lmovegen.newMove( self.getBoard()[cord0].piece, cord1.cord, DROP))) else: return validate(self.getBoard(), Move(cord0, cord1, self.getBoard())) def transPoint(self, x, y): xc, yc, square, s = self.view.square x, y = self.view.invmatrix.transform_point(x, y) y -= yc x -= xc y /= float(s) x /= float(s) return x, self.RANKS - y def point2Cord(self, x, y): point = self.transPoint(x, y) p0, p1 = point[0], point[1] if self.parent.variant.variant in DROP_VARIANTS: if not-3 <= int(p0) <= self.FILES + 2 or not 0 <= int( p1) <= self.RANKS - 1: return None else: if not 0 <= int(p0) <= self.FILES - 1 or not 0 <= int( p1) <= self.RANKS - 1: return None return Cord(int(p0) if p0 >= 0 else int(p0) - 1, int(p1)) def isSelectable(self, cord): # Simple isSelectable method, disabling selecting cords out of bound etc if not cord: return False if self.parent.setup_position: return True if self.parent.variant.variant in DROP_VARIANTS: if (not-3 <= cord.x <= self.FILES + 2) or ( not 0 <= cord.y <= self.RANKS - 1): return False else: if (not 0 <= cord.x <= self.FILES - 1) or ( not 0 <= cord.y <= self.RANKS - 1): return False return True def press(self, x, y, button): pass def release(self, x, y): pass def motion(self, x, y): cord = self.point2Cord(x, y) if self.lastMotionCord == cord: return self.lastMotionCord = cord if cord and self.isSelectable(cord): if not self.view.model.isPlayingICSGame(): self.view.hover = cord else: self.view.hover = None def leave(self, x, y): a = self.parent.get_allocation() if not (0 <= x < a.width and 0 <= y < a.height): self.view.hover = None class LockedBoardState(BoardState): ''' Parent of LockedNormalState, LockedActiveState, LockedSelectedState The board is in one of the three Locked states during the opponent's turn. ''' def __init__(self, board): BoardState.__init__(self, board) def isAPotentiallyLegalNextMove(self, cord0, cord1): """ Determines whether the given move is at all legally possible as the next move after the player who's turn it is makes their move Note: This doesn't always return the correct value, such as when BoardControl.setLocked() has been called and we've begun a drag, but view.shown and BoardControl.lockedPly haven't been updated yet """ if cord0 == None or cord1 == None: return False if not self.parent.lockedPly in self.parent.possibleBoards: return False for board in self.parent.possibleBoards[self.parent.lockedPly]: if not board[cord0]: return False if validate(board, Move(cord0, cord1, board)): return True return False class NormalState(BoardState): ''' It is the human player's turn and no pieces or cords are selected. ''' def isSelectable(self, cord): if not BoardState.isSelectable(self, cord): return False if self.parent.setup_position: return True try: board = self.getBoard() if board[cord] == None: return False # We don't want empty cords elif board[cord].color != board.color: return False # We shouldn't be able to select an opponent piece except IndexError: return False return True def press(self, x, y, button): self.parent.grab_focus() cord = self.point2Cord(x, y) if self.isSelectable(cord): self.view.dragged_piece = self.getBoard()[cord] self.view.active = cord self.parent.setStateActive() class ActiveState(BoardState): ''' It is the human player's turn and a piece is being dragged by the mouse. ''' def isSelectable(self, cord): if not BoardState.isSelectable(self, cord): return False if self.parent.setup_position: return True return self.validate(self.view.active, cord) def release (self, x, y): cord = self.point2Cord(x,y) if self.view.selected and cord != self.view.active and \ not self.validate(self.view.selected, cord): if not self.parent.setup_position: preferencesDialog.SoundTab.playAction("invalidMove") if not cord: self.view.active = None self.view.selected = None self.view.dragged_piece = None self.view.startAnimation() self.parent.setStateNormal() # When in the mixed active/selected state elif self.view.selected: # Move when releasing on a good cord if self.validate(self.view.selected, cord): self.parent.setStateNormal() # It is important to emit_move_signal after setting state # as listeners of the function probably will lock the board self.view.dragged_piece = None self.parent.emit_move_signal(self.view.selected, cord) if self.parent.setup_position: if not (self.view.selected.x < 0 or self.view.selected.x > self.FILES - 1): self.view.selected = None else: # enable stamping with selected holding pieces self.parent.setStateSelected() else: self.view.selected = None self.view.active = None elif cord == self.view.active == self.view.selected == self.parent.selected_last: # user clicked (press+release) same piece twice, so unselect it self.view.active = None self.view.selected = None self.view.dragged_piece = None self.view.startAnimation() self.parent.setStateNormal() else: # leave last selected piece selected self.view.active = None self.view.dragged_piece = None self.view.startAnimation() self.parent.setStateSelected() # If dragged and released on a possible cord elif self.validate(self.view.active, cord): self.parent.setStateNormal() self.view.dragged_piece = None # removig piece from board if self.parent.setup_position and \ (cord.x < 0 or cord.x > self.FILES-1): self.view.startAnimation() self.parent.emit_move_signal(self.view.active, cord) self.view.active = None # Select last piece user tried to move or that was selected elif self.view.active or self.view.selected: self.view.selected = self.view.active if self.view.active else self.view.selected self.view.active = None self.view.dragged_piece = None self.view.startAnimation() self.parent.setStateSelected() # Send back, if dragging to a not possible cord else: self.view.active = None # Send the piece back to its original cord self.view.dragged_piece = None self.view.startAnimation() self.parent.setStateNormal() self.parent.selected_last = self.view.selected def motion(self, x, y): BoardState.motion(self, x, y) fcord = self.view.active if not fcord: return piece = self.getBoard()[fcord] if not piece: return elif piece.color != self.getBoard().color: if not self.parent.setup_position: return xc, yc, square, s = self.view.square co, si = self.view.matrix[0], self.view.matrix[1] point = self.transPoint(x - s * (co + si) / 2., y + s * (co - si) / 2.) if not point: return x, y = point if piece.x != x or piece.y != y: if piece.x: paintBox = self.view.cord2RectRelative(piece.x, piece.y) else: paintBox = self.view.cord2RectRelative(self.view.active) paintBox = join(paintBox, self.view.cord2RectRelative(x, y)) piece.x = x piece.y = y self.view.redrawCanvas(rect(paintBox)) class SelectedState(BoardState): ''' It is the human player's turn and a cord is selected. ''' def isSelectable(self, cord): if not BoardState.isSelectable(self, cord): return False if self.parent.setup_position: return True try: board = self.getBoard() if board[cord] != None and board[cord].color == board.color: return True # Select another piece except IndexError: return False return self.validate(self.view.selected, cord) def press(self, x, y, button): cord = self.point2Cord(x, y) # Unselecting by pressing the selected cord, or marking the cord to be # moved to. We don't unset self.view.selected, so ActiveState can handle # things correctly if self.isSelectable(cord): if self.parent.setup_position: color_ok = True else: color_ok = self.getBoard()[cord] != None and \ self.getBoard()[cord].color == self.getBoard().color if self.view.selected and self.view.selected != cord and \ color_ok and not self.validate(self.view.selected, cord): # corner case encountered: # user clicked (press+release) a piece, then clicked (no release yet) # a different piece and dragged it somewhere else. Since # ActiveState.release() will use self.view.selected as the source piece # rather than self.view.active, we need to update it here self.view.selected = cord # re-select new cord self.view.dragged_piece = self.getBoard()[cord] self.view.active = cord self.parent.setStateActive() else: # Unselecting by pressing an inactive cord self.view.selected = None self.parent.setStateNormal() if not self.parent.setup_position: preferencesDialog.SoundTab.playAction("invalidMove") class LockedNormalState(LockedBoardState): ''' It is the opponent's turn and no piece or cord is selected. ''' def isSelectable(self, cord): if not BoardState.isSelectable(self, cord): return False if not self.parent.allowPremove: return False # Don't allow premove if neither player is human try: board = self.getBoard() if board[cord] == None: return False # We don't want empty cords elif board[cord].color == board.color: return False # We shouldn't be able to select an opponent piece except IndexError: return False return True def press(self, x, y, button): self.parent.grab_focus() cord = self.point2Cord(x, y) if self.isSelectable(cord): self.view.dragged_piece = self.getBoard()[cord] self.view.active = cord self.parent.setStateActive() # reset premove if mouse right-clicks or clicks one of the premove cords if button == 3: #right-click self.view.setPremove(None, None, None, None) self.view.startAnimation() elif cord == self.view.premove0 or cord == self.view.premove1: self.view.setPremove(None, None, None, None) self.view.startAnimation() class LockedActiveState(LockedBoardState): ''' It is the opponent's turn and a piece is being dragged by the mouse. ''' def isSelectable(self, cord): if not BoardState.isSelectable(self, cord): return False return self.isAPotentiallyLegalNextMove(self.view.active, cord) def release(self, x, y): cord = self.point2Cord(x, y) if cord == self.view.active == self.view.selected == self.parent.selected_last: # User clicked (press+release) same piece twice, so unselect it self.view.active = None self.view.selected = None self.view.dragged_piece = None self.view.startAnimation() self.parent.setStateNormal() elif self.parent.allowPremove and self.view.selected and self.isAPotentiallyLegalNextMove( self.view.selected, cord): # In mixed locked selected/active state and user selects a valid premove cord board = self.getBoard() if board[ self.view.selected].sign == PAWN and cord.cord in board.PROMOTION_ZONE[ 1 - board.color]: promotion = self.parent.getPromotion() else: promotion = None self.view.setPremove(board[self.view.selected], self.view.selected, cord, self.view.shown + 2, promotion) self.view.selected = None self.view.active = None self.view.dragged_piece = None self.view.startAnimation() self.parent.setStateNormal() elif self.parent.allowPremove and self.isAPotentiallyLegalNextMove( self.view.active, cord): # User drags a piece to a valid premove square board = self.getBoard() if board[ self.view.active].sign == PAWN and cord.cord in board.PROMOTION_ZONE[ 1 - board.color]: promotion = self.parent.getPromotion() else: promotion = None self.view.setPremove(self.getBoard()[self.view.active], self.view.active, cord, self.view.shown + 2, promotion) self.view.selected = None self.view.active = None self.view.dragged_piece = None self.view.startAnimation() self.parent.setStateNormal() elif self.view.active or self.view.selected: # Select last piece user tried to move or that was selected self.view.selected = self.view.active if self.view.active else self.view.selected self.view.active = None self.view.dragged_piece = None self.view.startAnimation() self.parent.setStateSelected() else: self.view.active = None self.view.selected = None self.view.dragged_piece = None self.view.startAnimation() self.parent.setStateNormal() self.parent.selected_last = self.view.selected def motion(self, x, y): BoardState.motion(self, x, y) fcord = self.view.active if not fcord: return piece = self.getBoard()[fcord] if not piece or piece.color == self.getBoard().color: return xc, yc, square, s = self.view.square co, si = self.view.matrix[0], self.view.matrix[1] point = self.transPoint(x - s * (co + si) / 2., y + s * (co - si) / 2.) if not point: return x, y = point if piece.x != x or piece.y != y: if piece.x: paintBox = self.view.cord2RectRelative(piece.x, piece.y) else: paintBox = self.view.cord2RectRelative(self.view.active) paintBox = join(paintBox, self.view.cord2RectRelative(x, y)) piece.x = x piece.y = y self.view.redrawCanvas(rect(paintBox)) class LockedSelectedState(LockedBoardState): ''' It is the opponent's turn and a cord is selected. ''' def isSelectable(self, cord): if not BoardState.isSelectable(self, cord): return False try: board = self.getBoard() if board[cord] != None and board[cord].color != board.color: return True # Select another piece except IndexError: return False return self.isAPotentiallyLegalNextMove(self.view.selected, cord) def motion(self, x, y): cord = self.point2Cord(x, y) if self.lastMotionCord == cord: self.view.hover = cord return self.lastMotionCord = cord if cord and self.isAPotentiallyLegalNextMove(self.view.selected, cord): if not self.view.model.isPlayingICSGame(): self.view.hover = cord else: self.view.hover = None def press(self, x, y, button): cord = self.point2Cord(x, y) # Unselecting by pressing the selected cord, or marking the cord to be # moved to. We don't unset self.view.selected, so ActiveState can handle # things correctly if self.isSelectable(cord): if self.view.selected and self.view.selected != cord and \ self.getBoard()[cord] != None and \ self.getBoard()[cord].color != self.getBoard().color and \ not self.isAPotentiallyLegalNextMove(self.view.selected, cord): # corner-case encountered (see comment in SelectedState.press) self.view.selected = cord # re-select new cord self.view.dragged_piece = self.getBoard()[cord] self.view.active = cord self.parent.setStateActive() else: # Unselecting by pressing an inactive cord self.view.selected = None self.parent.setStateNormal() # reset premove if mouse right-clicks or clicks one of the premove cords if button == 3: #right-click self.view.setPremove(None, None, None, None) self.view.startAnimation() elif cord == self.view.premove0 or cord == self.view.premove1: self.view.setPremove(None, None, None, None) self.view.startAnimation() pychess-0.12.2/lib/pychess/widgets/PieceWidget.py0000755000175000017470000000145112641567764022233 0ustar tamasusers00000000000000from gi.repository import Gtk from gi.repository import GObject import cairo from pychess.Utils.const import * from pychess.gfx import Pieces class PieceWidget (Gtk.DrawingArea): def __init__(self, piece, variant): GObject.GObject.__init__(self) self.connect("draw", self.expose) self.piece = piece self.asean = variant in ASEAN_VARIANTS def setPiece(self, piece): self.piece = piece def getPiece(self): return self.piece def expose(self, widget, ctx): context = widget.get_window().cairo_create() rect = self.get_allocation() s = min(rect.width, rect.height) x = (rect.width-s) / 2.0 y = (rect.height-s) / 2.0 Pieces.drawPiece(self.piece, context, x, y, s, asean=self.asean) pychess-0.12.2/lib/pychess/widgets/__init__.py0000755000175000017470000000214612647522232021566 0ustar tamasusers00000000000000from gi.repository import Gtk def insert_formatted(text_view, iter, text, tag=None): def insert(text): if tag is not None: tb.insert_with_tags_by_name(iter, text, tag) else: tb.insert(iter, text) tb = text_view.get_buffer() # I know this is far from perfect but I don't want to use re for this if "://" in text or "www" in text: parts = text.split() position = 0 for i, part in enumerate(parts): if "://" in part or "www" in part: if part.startswith('"'): part = part[1:] if part.endswith('"'): part = part[:-1] parts[i] = '%s' % (part, part) position = i break insert("%s " % " ".join(parts[:position])) label = Gtk.Label() label.set_markup(parts[position]) label.show() anchor = tb.create_child_anchor(iter) text_view.add_child_at_anchor(label, anchor) insert(" %s" % " ".join(parts[position+1:])) else: insert(text) pychess-0.12.2/lib/pychess/widgets/preferencesDialog.py0000644000175000017470000006552212653171673023462 0ustar tamasusers00000000000000from __future__ import print_function import os import sys import struct from os import listdir from os.path import isdir, isfile, splitext from xml.dom import minidom from gi.repository import Gtk, GdkPixbuf from gi.repository import Gdk from pychess.compat import pathname2url, url2pathname, unquote from pychess.System.prefix import addDataPrefix, getDataPrefix from pychess.System.idle_add import idle_add from pychess.System import conf, gstreamer, uistuff from pychess.Players.engineNest import discoverer from pychess.Utils.const import * from pychess.Utils.IconLoader import load_icon, get_pixbuf from pychess.gfx import Pieces from pychess.System.Log import log firstRun = True def run(widgets): global firstRun if firstRun: initialize(widgets) firstRun = False widgets["preferences"].show() widgets["preferences"].present() def initialize(widgets): GeneralTab(widgets) HintTab(widgets) SoundTab(widgets) PanelTab(widgets) ThemeTab(widgets) SaveTab(widgets) uistuff.keepWindowSize("preferencesdialog", widgets["preferences"]) def delete_event (widget, *args): widgets["preferences"].hide() return True widgets["preferences"].connect("delete-event", delete_event) widgets["preferences"].connect("key-press-event", lambda w,e: w.event(Gdk.Event(Gdk.EventType.DELETE)) if e.keyval == Gdk.KEY_Escape else None) ################################################################################ # General initing # ################################################################################ class GeneralTab: def __init__ (self, widgets): conf.set("firstName", conf.get("firstName", conf.username)) conf.set("secondName", conf.get("secondName", _("Guest"))) # Give to uistuff.keeper for key in ("firstName", "secondName", "showEmt", "showEval", "autoPromote", "hideTabs", "closeAll", "faceToFace", "showCords", "showCaptured", "figuresInNotation", "fullAnimation", "moveAnimation", "noAnimation"): uistuff.keep(widgets[key], key) # Options on by default for key in ("autoRotate", "fullAnimation", "showBlunder"): uistuff.keep(widgets[key], key, first_value=True) ################################################################################ # Hint initing # ################################################################################ def anal_combo_get_value (combobox): engine = list(discoverer.getAnalyzers())[combobox.get_active()] return engine.get("md5") def anal_combo_set_value (combobox, value, show_arrow_check, ana_check, analyzer_type): engine = discoverer.getEngineByMd5(value) if engine is None: combobox.set_active(0) # This return saves us from the None-engine being used # in later code -Jonas Thiem return else: try: index = list(discoverer.getAnalyzers()).index(engine) except ValueError: index = 0 combobox.set_active(index) from pychess.Main import gameDic from pychess.widgets.gamewidget import widgets for gmwidg in gameDic.keys(): spectators = gmwidg.gamemodel.spectators md5 = engine.get('md5') if analyzer_type in spectators and \ spectators[analyzer_type].md5 != md5: gmwidg.gamemodel.remove_analyzer(analyzer_type) gmwidg.gamemodel.start_analyzer(analyzer_type) if not widgets[show_arrow_check].get_active(): gmwidg.gamemodel.pause_analyzer(analyzer_type) class HintTab: def __init__ (self, widgets): self.widgets = widgets # Options on by default for key in ("opening_check", "endgame_check", "online_egtb_check", "analyzer_check", "inv_analyzer_check"): uistuff.keep(widgets[key], key, first_value=True) # Opening book default_path = os.path.join(addDataPrefix("pychess_book.bin")) path = conf.get("opening_file_entry", default_path) conf.set("opening_file_entry", path) book_chooser_dialog = Gtk.FileChooserDialog(_("Select book file"), None, Gtk.FileChooserAction.OPEN, (Gtk.STOCK_CANCEL, Gtk.ResponseType.CANCEL, Gtk.STOCK_OPEN, Gtk.ResponseType.OK)) book_chooser_button = Gtk.FileChooserButton.new_with_dialog(book_chooser_dialog) filter = Gtk.FileFilter() filter.set_name(_("Opening books")) filter.add_pattern("*.bin") book_chooser_dialog.add_filter(filter) book_chooser_button.set_filename(path) self.widgets["bookChooserDock"].add(book_chooser_button) book_chooser_button.show() def select_new_book(button): new_book = book_chooser_dialog.get_filename() if new_book: conf.set("opening_file_entry", new_book) else: # restore the original book_chooser_dialog.set_filename(path) book_chooser_button.connect("file-set", select_new_book) def on_opening_check_toggled (check): widgets["opening_hbox"].set_sensitive(check.get_active()) widgets["opening_check"].connect_after("toggled", on_opening_check_toggled) # Endgame default_path = os.path.join(getDataPrefix()) egtb_path = conf.get("egtb_path", default_path) conf.set("egtb_path", egtb_path) egtb_chooser_dialog = Gtk.FileChooserDialog(_("Select Gaviota TB path"), None, Gtk.FileChooserAction.SELECT_FOLDER, (Gtk.STOCK_CANCEL, Gtk.ResponseType.CANCEL, Gtk.STOCK_OPEN, Gtk.ResponseType.OK)) egtb_chooser_button = Gtk.FileChooserButton.new_with_dialog(egtb_chooser_dialog) egtb_chooser_button.set_current_folder(egtb_path) self.widgets["egtbChooserDock"].add(egtb_chooser_button) egtb_chooser_button.show() def select_egtb(button): new_directory = egtb_chooser_dialog.get_filename() if new_directory != egtb_path: conf.set("egtb_path", new_directory) egtb_chooser_button.connect("current-folder-changed", select_egtb) def on_endgame_check_toggled (check): widgets["endgame_hbox"].set_sensitive(check.get_active()) widgets["endgame_check"].connect_after("toggled", on_endgame_check_toggled) # Analyzing engines from pychess.widgets import newGameDialog data = [(item[0], item[1]) for item in newGameDialog.analyzerItems] uistuff.createCombo(widgets["ana_combobox"], data) uistuff.createCombo(widgets["inv_ana_combobox"], data) @idle_add def update_analyzers_store(discoverer): data = [(item[0], item[1]) for item in newGameDialog.analyzerItems] uistuff.updateCombo(widgets["ana_combobox"], data) uistuff.updateCombo(widgets["inv_ana_combobox"], data) discoverer.connect_after("all_engines_discovered", update_analyzers_store) update_analyzers_store(discoverer) # Save, load and make analyze combos active # Let Stockfish to be default analyzer in Windows installer default = discoverer.getEngineN(-1).get("md5") conf.set("ana_combobox", conf.get("ana_combobox", default)) conf.set("inv_ana_combobox", conf.get("inv_ana_combobox", default)) def on_analyzer_check_toggled (check): widgets["analyzers_vbox"].set_sensitive(check.get_active()) from pychess.Main import gameDic if gameDic: if check.get_active(): for gmwidg in gameDic.keys(): gmwidg.gamemodel.restart_analyzer(HINT) if not widgets["hint_mode"].get_active(): gmwidg.gamemodel.pause_analyzer(HINT) else: for gmwidg in gameDic.keys(): gmwidg.gamemodel.remove_analyzer(HINT) widgets["analyzers_vbox"].set_sensitive( widgets["analyzer_check"].get_active()) widgets["analyzer_check"].connect_after("toggled", on_analyzer_check_toggled) def on_invanalyzer_check_toggled (check): widgets["inv_analyzers_vbox"].set_sensitive(check.get_active()) from pychess.Main import gameDic if gameDic: if check.get_active(): for gmwidg in gameDic.keys(): gmwidg.gamemodel.restart_analyzer(SPY) if not widgets["spy_mode"].get_active(): gmwidg.gamemodel.pause_analyzer(SPY) else: for gmwidg in gameDic.keys(): gmwidg.gamemodel.remove_analyzer(SPY) widgets["inv_analyzers_vbox"].set_sensitive( widgets["inv_analyzer_check"].get_active()) widgets["inv_analyzer_check"].connect_after("toggled", on_invanalyzer_check_toggled) # Give widgets to keeper uistuff.keep(widgets["ana_combobox"], "ana_combobox", anal_combo_get_value, lambda combobox, value: anal_combo_set_value(combobox, value, "hint_mode", "analyzer_check", HINT)) uistuff.keep(widgets["inv_ana_combobox"], "inv_ana_combobox", anal_combo_get_value, lambda combobox, value: anal_combo_set_value(combobox, value, "spy_mode", "inv_analyzer_check", SPY)) uistuff.keep(widgets["max_analysis_spin"], "max_analysis_spin", first_value=3) ################################################################################ # Sound initing # ################################################################################ # Setup default sounds EXT = "wav" if sys.platform == "win32" else "ogg" for i in range(11): if not conf.hasKey("soundcombo%d" % i): conf.set("soundcombo%d" % i, SOUND_URI) if not conf.hasKey("sounduri0"): conf.set("sounduri0", "file:"+pathname2url(addDataPrefix("sounds/move1.%s" % EXT))) if not conf.hasKey("sounduri1"): conf.set("sounduri1", "file:"+pathname2url(addDataPrefix("sounds/check1.%s" % EXT))) if not conf.hasKey("sounduri2"): conf.set("sounduri2", "file:"+pathname2url(addDataPrefix("sounds/capture1.%s" % EXT))) if not conf.hasKey("sounduri3"): conf.set("sounduri3", "file:"+pathname2url(addDataPrefix("sounds/start1.%s" % EXT))) if not conf.hasKey("sounduri4"): conf.set("sounduri4", "file:"+pathname2url(addDataPrefix("sounds/win1.%s" % EXT))) if not conf.hasKey("sounduri5"): conf.set("sounduri5", "file:"+pathname2url(addDataPrefix("sounds/lose1.%s" % EXT))) if not conf.hasKey("sounduri6"): conf.set("sounduri6", "file:"+pathname2url(addDataPrefix("sounds/draw1.%s" % EXT))) if not conf.hasKey("sounduri7"): conf.set("sounduri7", "file:"+pathname2url(addDataPrefix("sounds/obs_mov.%s" % EXT))) if not conf.hasKey("sounduri8"): conf.set("sounduri8", "file:"+pathname2url(addDataPrefix("sounds/obs_end.%s" % EXT))) if not conf.hasKey("sounduri9"): conf.set("sounduri9", "file:"+pathname2url(addDataPrefix("sounds/alarm.%s" % EXT))) if not conf.hasKey("sounduri10"): conf.set("sounduri10", "file:"+pathname2url(addDataPrefix("sounds/invalid.%s" % EXT))) class SoundTab: SOUND_DIRS = (addDataPrefix("sounds"), "/usr/share/sounds", "/usr/local/share/sounds", os.path.expanduser("~")) COUNT_OF_SOUNDS = 11 actionToKeyNo = { "aPlayerMoves": 0, "aPlayerChecks": 1, "aPlayerCaptures": 2, "gameIsSetup": 3, "gameIsWon": 4, "gameIsLost": 5, "gameIsDrawn": 6, "observedMoves": 7, "oberservedEnds": 8, "shortOnTime": 9, "invalidMove": 10, } _player = None @classmethod def getPlayer (cls): if not cls._player: cls._player = gstreamer.sound_player return cls._player @classmethod def playAction (cls, action): if not conf.get("useSounds", True): return if isinstance(action, str): no = cls.actionToKeyNo[action] else: no = action typ = conf.get("soundcombo%d" % no, SOUND_MUTE) if typ == SOUND_BEEP: sys.stdout.write("\a") sys.stdout.flush() elif typ == SOUND_URI: uri = conf.get("sounduri%d" % no, "") if not os.path.isfile(url2pathname(uri[5:])): conf.set("soundcombo%d" % no, SOUND_MUTE) return cls.getPlayer().play(uri) def __init__ (self, widgets): # Init open dialog opendialog = Gtk.FileChooserDialog ( _("Open Sound File"), None, Gtk.FileChooserAction.OPEN, (Gtk.STOCK_CANCEL, Gtk.ResponseType.CANCEL, Gtk.STOCK_OPEN, Gtk.ResponseType.ACCEPT)) for dir in self.SOUND_DIRS: if os.path.isdir(dir): opendialog.set_current_folder(dir) break soundfilter = Gtk.FileFilter() soundfilter.set_name(_("Sound files")) soundfilter.add_mime_type("audio/%s" % EXT) soundfilter.add_pattern("*.%s" % EXT) opendialog.add_filter(soundfilter) # Get combo icons icons = ((_("No sound"), "audio-volume-muted", "audio-volume-muted"), (_("Beep"), "stock_bell", "audio-x-generic"), (_("Select sound file..."), "gtk-open", "document-open")) items = [] for level, stock, altstock in icons: image = load_icon(16, stock, altstock) items += [(image, level)] audioIco = load_icon(16, "audio-x-generic") # Set-up combos def callback (combobox, index): if combobox.get_active() == SOUND_SELECT: if opendialog.run() == Gtk.ResponseType.ACCEPT: uri = opendialog.get_uri() model = combobox.get_model() conf.set("sounduri%d"%index, uri) label = unquote(os.path.split(uri)[1]) if len(model) == 3: model.append([audioIco, label]) else: model.set(model.get_iter((3,)), 1, label) combobox.set_active(3) else: combobox.set_active(conf.get("soundcombo%d"%index,SOUND_MUTE)) opendialog.hide() for i in range(self.COUNT_OF_SOUNDS): combo = widgets["soundcombo%d"%i] uistuff.createCombo (combo, items) combo.set_active(0) combo.connect("changed", callback, i) label = widgets["soundlabel%d"%i] label.props.mnemonic_widget = combo uri = conf.get("sounduri%d"%i,"") if os.path.isfile(url2pathname(uri[5:])): model = combo.get_model() model.append([audioIco, unquote(os.path.split(uri)[1])]) combo.set_active(3) for i in range(self.COUNT_OF_SOUNDS): if conf.get("soundcombo%d"%i, SOUND_MUTE) == SOUND_URI and \ not os.path.isfile(url2pathname(conf.get("sounduri%d"%i,"")[5:])): conf.set("soundcombo%d"%i, SOUND_MUTE) uistuff.keep(widgets["soundcombo%d"%i], "soundcombo%d"%i) # Init play button def playCallback (button, index): SoundTab.playAction(index) for i in range (self.COUNT_OF_SOUNDS): button = widgets["soundbutton%d"%i] button.connect("clicked", playCallback, i) # Init 'use sound" checkbutton def checkCallBack (*args): checkbox = widgets["useSounds"] widgets["frame23"].set_property("sensitive", checkbox.get_active()) conf.notify_add("useSounds", checkCallBack) widgets["useSounds"].set_active(True) uistuff.keep(widgets["useSounds"], "useSounds") checkCallBack() if not self.getPlayer().ready: widgets["useSounds"].set_sensitive(False) widgets["useSounds"].set_active(False) uistuff.keep(widgets["alarm_spin"], "alarm_spin", first_value=15) ################################################################################ # Panel initing # ################################################################################ class PanelTab: def __init__ (self, widgets): # Put panels in trees self.widgets = widgets from pychess.widgets.gamewidget import sidePanels, dockLocation saved_panels = [] xmlOK = os.path.isfile(dockLocation) if xmlOK: doc = minidom.parse(dockLocation) for elem in doc.getElementsByTagName("panel"): saved_panels.append(elem.getAttribute("id")) store = Gtk.ListStore(bool, GdkPixbuf.Pixbuf, str, object) for panel in sidePanels: checked = True if not xmlOK else panel.__name__ in saved_panels panel_icon = get_pixbuf(panel.__icon__, 32) text = "%s\n%s" % (panel.__title__, panel.__desc__) store.append((checked, panel_icon, text, panel)) self.tv = widgets["treeview1"] self.tv.set_model(store) self.widgets['panel_about_button'].connect('clicked', self.panel_about) self.widgets['panel_enable_button'].connect('toggled', self.panel_toggled) self.tv.get_selection().connect('changed', self.selection_changed) pixbuf = Gtk.CellRendererPixbuf() pixbuf.props.yalign = 0 pixbuf.props.ypad = 3 pixbuf.props.xpad = 3 self.tv.append_column(Gtk.TreeViewColumn("Icon", pixbuf, pixbuf=1, sensitive=0)) uistuff.appendAutowrapColumn(self.tv, "Name", markup=2, sensitive=0) widgets['notebook1'].connect("switch-page", self.__on_switch_page) widgets["preferences"].connect("show", self.__on_show_window) widgets["preferences"].connect("hide", self.__on_hide_window) def selection_changed(self, treeselection): store, iter = self.tv.get_selection().get_selected() self.widgets['panel_enable_button'].set_sensitive(bool(iter)) self.widgets['panel_about_button'].set_sensitive(bool(iter)) if iter: active = self.tv.get_model().get(iter, 0)[0] self.widgets['panel_enable_button'].set_active(active) def panel_about(self, button): store, iter = self.tv.get_selection().get_selected() assert iter # The button should only be clickable when we have a selection path = store.get_path(iter) panel = store[path][3] d = Gtk.MessageDialog (type=Gtk.MessageType.INFO, buttons=Gtk.ButtonsType.CLOSE) d.set_markup ("%s" % panel.__title__) text = panel.__about__ if hasattr(panel, '__about__') else _('Undescribed panel') d.format_secondary_text (text) d.run() d.hide() def panel_toggled(self, button): store, iter = self.tv.get_selection().get_selected() assert iter # The button should only be clickable when we have a selection path = store.get_path(iter) active = button.get_active() if store[path][0] == active: return store[path][0] = active self.__set_panel_active(store[path][3], active) def __set_panel_active(self, panel, active): name = panel.__name__ from pychess.widgets.gamewidget import notebooks, docks from pychess.widgets.pydock import EAST if active: leaf = notebooks["board"].get_parent().get_parent() leaf.dock(docks[name][1], EAST, docks[name][0], name) else: try: notebooks[name].get_parent().get_parent().undock(notebooks[name]) except AttributeError: # A new panel appeared in the panels directory leaf = notebooks["board"].get_parent().get_parent() leaf.dock(docks[name][1], EAST, docks[name][0], name) def showit(self): from pychess.widgets.gamewidget import showDesignGW showDesignGW() def hideit(self): from pychess.widgets.gamewidget import hideDesignGW hideDesignGW() def __on_switch_page(self, notebook, page, page_num): if notebook.get_nth_page(page_num) == self.widgets['sidepanels']: self.showit() else: self.hideit() def __on_show_window(self, widget): notebook = self.widgets['notebook1'] page_num = notebook.get_current_page() if notebook.get_nth_page(page_num) == self.widgets['sidepanels']: self.showit() def __on_hide_window(self, widget): self.hideit() ############################################################################# # Theme initing # ############################################################################# class ThemeTab: def __init__ (self, widgets): ################# # Board Colours ################# def on_colour_set_light(color_btn): conf.set('lightcolour',widgets['light_cbtn'].get_color().to_string()) widgets["light_cbtn"].connect_after("color-set", on_colour_set_light) def on_colour_set_dark(color_btn): conf.set('darkcolour',widgets['dark_cbtn'].get_color().to_string()) widgets["dark_cbtn"].connect_after("color-set", on_colour_set_dark) def on_reset_colour_clicked(btn): conf.set("lightcolour", "#ffffffffffff") conf.set("darkcolour", "#aaaaaaaaaaaa") widgets["reset_btn"].connect("clicked", on_reset_colour_clicked) # Get the current board colours if set, if not set, set them to default conf.set("lightcolour", conf.get("lightcolour", "#ffffffffffff")) conf.set("darkcolour", conf.get("darkcolour", "#aaaaaaaaaaaa")) # Next 2 lines take a #hex str converts them to a color then to a RGBA representation lightcolour = Gdk.RGBA() lightcolour.parse(conf.get("lightcolour", "#ffffffffffff")) darkcolour = Gdk.RGBA() darkcolour.parse(conf.get("darkcolour", "#aaaaaaaaaaaa")) # Set the color swatches in preference to stored values widgets['light_cbtn'].set_rgba(lightcolour) widgets['dark_cbtn'].set_rgba(darkcolour) ############# # Chess Sets ############# self.themes = self.discover_themes() store = Gtk.ListStore(GdkPixbuf.Pixbuf, str) for theme in self.themes: pngfile = "%s/%s.png" % (addDataPrefix("pieces"), theme) if isfile(pngfile): pixbuf = get_pixbuf(pngfile) store.append((pixbuf, theme)) else: print("WARNING: No piece theme preview icons found. Please run create_theme_preview.sh !") break iconView = widgets["pieceTheme"] iconView.set_model(store) iconView.set_pixbuf_column(0) iconView.set_text_column(1) ############################################# # Hack to fix spacing problem in iconview # http://stackoverflow.com/questions/14090094/what-causes-the-different-display-behaviour-for-a-gtkiconview-between-different def keep_size(crt, *args): crt.handler_block(crt_notify) crt.set_property('width', 40) crt.handler_unblock(crt_notify) crt, crp = iconView.get_cells() crt_notify = crt.connect('notify', keep_size) ############################################# def _get_active(iconview): model = iconview.get_model() selected = iconview.get_selected_items() if len(selected) == 0: return conf.get("pieceTheme", "Chessicons") indices = selected[0].get_indices() if indices: i = indices[0] theme = model[i][1] Pieces.set_piece_theme(theme) return theme def _set_active(iconview, value): try: index = self.themes.index(value) except ValueError: index = 0 iconview.select_path(Gtk.TreePath(index,)) uistuff.keep(widgets["pieceTheme"], "pieceTheme", _get_active, _set_active, "Chessicons") def discover_themes(self): themes = ['Pychess'] pieces = addDataPrefix("pieces") themes += [d.capitalize() for d in listdir(pieces) if isdir(os.path.join(pieces,d)) and d != 'ttf'] ttf = addDataPrefix("pieces/ttf") themes += ["ttf-" + splitext(d)[0].capitalize() for d in listdir(ttf) if splitext(d)[1] == '.ttf'] themes.sort() return themes ############################################################################# # Save initing # ############################################################################# class SaveTab: def __init__ (self, widgets): # Init 'auto save" checkbutton def checkCallBack (*args): checkbox = widgets["autoSave"] widgets["autosave_grid"].set_property("sensitive", checkbox.get_active()) conf.notify_add("autoSave", checkCallBack) widgets["autoSave"].set_active(False) uistuff.keep(widgets["autoSave"], "autoSave") checkCallBack() default_path = os.path.expanduser("~") autoSavePath = conf.get("autoSavePath", default_path) conf.set("autoSavePath", autoSavePath) auto_save_chooser_dialog = Gtk.FileChooserDialog(_("Select auto save path"), None, Gtk.FileChooserAction.SELECT_FOLDER, (Gtk.STOCK_CANCEL, Gtk.ResponseType.CANCEL, Gtk.STOCK_OPEN, Gtk.ResponseType.OK)) auto_save_chooser_button = Gtk.FileChooserButton.new_with_dialog(auto_save_chooser_dialog) auto_save_chooser_button.set_current_folder(autoSavePath) widgets["savePathChooserDock"].add(auto_save_chooser_button) auto_save_chooser_button.show() def select_auto_save(button): new_directory = auto_save_chooser_dialog.get_filename() if new_directory != autoSavePath: conf.set("autoSavePath", new_directory) auto_save_chooser_button.connect("current-folder-changed", select_auto_save) conf.set("autoSaveFormat", conf.get("autoSaveFormat", "pychess")) uistuff.keep(widgets["autoSaveFormat"], "autoSaveFormat") uistuff.keep(widgets["saveEmt"], "saveEmt") uistuff.keep(widgets["saveEval"], "saveEval") uistuff.keep(widgets["saveOwnGames"], "saveOwnGames") pychess-0.12.2/lib/pychess/widgets/gamenanny.py0000755000175000017470000003043412653147704022011 0ustar tamasusers00000000000000""" This module intends to work as glue between the gamemodel and the gamewidget taking care of stuff that is neither very offscreen nor very onscreen like bringing up dialogs and """ from __future__ import absolute_import import math from gi.repository import Gtk from pychess.compat import unicode from pychess.ic.FICSObjects import make_sensitive_if_available, make_sensitive_if_playing from pychess.ic.ICGameModel import ICGameModel from pychess.Utils.Offer import Offer from pychess.Utils.const import * from pychess.Utils.repr import reprResult_long, reprReason_long from pychess.System import conf from pychess.System.idle_add import idle_add from pychess.System.Log import log from pychess.widgets import preferencesDialog from pychess.widgets.InfoBar import InfoBarMessage, InfoBarMessageButton from pychess.widgets import InfoBar from .gamewidget import getWidgets, key2gmwidg, isDesignGWShown def nurseGame (gmwidg, gamemodel): """ Call this function when gmwidget is just created """ log.debug("nurseGame: %s %s" % (gmwidg, gamemodel)) gmwidg.connect("infront", on_gmwidg_infront) gmwidg.connect("closed", on_gmwidg_closed) gmwidg.connect("title_changed", on_gmwidg_title_changed) # Because of the async loading of games, the game might already be started, # when nurseGame is called. # Thus we support both cases. if gamemodel.status == WAITING_TO_START: gamemodel.connect("game_started", on_game_started, gmwidg) gamemodel.connect("game_loaded", game_loaded, gmwidg) else: if gamemodel.uri: game_loaded(gamemodel, gamemodel.uri, gmwidg) on_game_started(gamemodel, gmwidg) gamemodel.connect("game_saved", game_saved, gmwidg) gamemodel.connect("game_ended", game_ended, gmwidg) gamemodel.connect("game_unended", game_unended, gmwidg) gamemodel.connect("game_resumed", game_unended, gmwidg) gamemodel.connect("game_changed", game_changed, gmwidg) gamemodel.connect("game_paused", game_paused, gmwidg) if isinstance(gamemodel, ICGameModel): gamemodel.connection.connect("disconnected", on_disconnected, gmwidg) def on_disconnected (fics_connection, gamewidget): @idle_add def disable_buttons(): for b in gamewidget.game_ended_message.buttons: b.set_property("sensitive", False) b.set_property("tooltip-text", "") if gamewidget.game_ended_message: disable_buttons() #=============================================================================== # Gamewidget signals #=============================================================================== @idle_add def on_gmwidg_infront (gmwidg): for widget in MENU_ITEMS: if widget in gmwidg.menuitems: continue elif widget == 'show_sidepanels' and isDesignGWShown(): getWidgets()[widget].set_property('sensitive', False) else: getWidgets()[widget].set_property('sensitive', True) # Change window title getWidgets()['window1'].set_title('%s - PyChess' % gmwidg.display_text) return False @idle_add def on_gmwidg_closed (gmwidg): if len(key2gmwidg) == 1: getWidgets()['window1'].set_title('%s - PyChess' % _('Welcome')) return False @idle_add def on_gmwidg_title_changed (gmwidg, new_title): #log.debug("gamenanny.on_gmwidg_title_changed: starting %s" % repr(gmwidg)) if gmwidg.isInFront(): getWidgets()['window1'].set_title('%s - PyChess' % new_title) #log.debug("gamenanny.on_gmwidg_title_changed: returning") return False #=============================================================================== # Gamemodel signals #=============================================================================== @idle_add def game_ended (gamemodel, reason, gmwidg): log.debug("gamenanny.game_ended: reason=%s gmwidg=%s\ngamemodel=%s" % \ (reason, gmwidg, gamemodel)) nameDic = {"white": gamemodel.players[WHITE], "black": gamemodel.players[BLACK], "mover": gamemodel.curplayer} if gamemodel.status == WHITEWON: nameDic["winner"] = gamemodel.players[WHITE] nameDic["loser"] = gamemodel.players[BLACK] elif gamemodel.status == BLACKWON: nameDic["winner"] = gamemodel.players[BLACK] nameDic["loser"] = gamemodel.players[WHITE] m1 = reprResult_long[gamemodel.status] % nameDic m2 = reprReason_long[reason] % nameDic if gamemodel.reason == WON_ADJUDICATION: color = BLACK if gamemodel.status == WHITEWON else WHITE invalid_move = gamemodel.players[color].invalid_move if invalid_move: m2 += _(" invalid engine move: %s" % invalid_move) content = InfoBar.get_message_content(m1, m2, Gtk.STOCK_DIALOG_INFO) message = InfoBarMessage(Gtk.MessageType.INFO, content, None) callback = None if isinstance(gamemodel, ICGameModel): if gamemodel.hasLocalPlayer() and not gamemodel.examined: def status_changed (player, prop, message): make_sensitive_if_available(message.buttons[0], player) make_sensitive_if_playing(message.buttons[1], player) def callback (infobar, response, message): if response == 0: gamemodel.remote_player.offerRematch() elif response == 1: gamemodel.remote_player.observe() return False gmwidg.cids[gamemodel.remote_ficsplayer] = \ gamemodel.remote_ficsplayer.connect("notify::status", status_changed, message) message.add_button(InfoBarMessageButton(_("Offer Rematch"), 0)) message.add_button(InfoBarMessageButton( _("Observe %s" % gamemodel.remote_ficsplayer.name), 1)) status_changed(gamemodel.remote_ficsplayer, None, message) else: def status_changed (player, prop, button): make_sensitive_if_playing(button, player) def callback (infobar, response, message): if response in (0, 1): gamemodel.players[response].observe() return False for i, p in enumerate(gamemodel.ficsplayers): b = InfoBarMessageButton(_("Observe %s" % p.name), i) message.add_button(b) gmwidg.cids[p] = p.connect("notify::status", status_changed, b) status_changed(p, None, b) elif gamemodel.hasLocalPlayer(): def callback (infobar, response, message): if response == 1: # newGameDialog uses ionest uses gamenanny uses newGameDialog... from pychess.widgets.newGameDialog import createRematch createRematch(gamemodel) elif response == 2: if gamemodel.ply > 1: offer = Offer(TAKEBACK_OFFER, gamemodel.ply-2) else: offer = Offer(TAKEBACK_OFFER, gamemodel.ply-1) if gamemodel.players[0].__type__ == LOCAL: gamemodel.players[0].emit("offer", offer) else: gamemodel.players[1].emit("offer", offer) return False if not gamemodel.isLoadedGame(): message.add_button(InfoBarMessageButton(_("Play Rematch"), 1)) if gamemodel.status in UNDOABLE_STATES and gamemodel.reason in UNDOABLE_REASONS: if gamemodel.ply == 1: message.add_button(InfoBarMessageButton(_("Undo one move"), 2)) elif gamemodel.ply > 1: message.add_button(InfoBarMessageButton(_("Undo two moves"), 2)) message.callback = callback gmwidg.game_ended_message = message if len(key2gmwidg) > 0: gmwidg.replaceMessages(message) gmwidg.status("%s %s." % (m1,m2[0].lower()+m2[1:])) if reason == WHITE_ENGINE_DIED: engineDead(gamemodel.players[0], gmwidg) elif reason == BLACK_ENGINE_DIED: engineDead(gamemodel.players[1], gmwidg) if (isinstance(gamemodel, ICGameModel) and not gamemodel.isObservationGame()) or \ gamemodel.isEngine2EngineGame(): gamemodel.restart_analyzer(HINT) gamemodel.restart_analyzer(SPY) if not conf.get("hint_mode", False): gamemodel.pause_analyzer(HINT) if not conf.get("spy_mode", False): gamemodel.pause_analyzer(SPY) return False def _set_statusbar (gamewidget, message): assert isinstance(message, str) or isinstance(message, unicode) gamewidget.status(message) def game_paused (gamemodel, gmwidg): s = _("The game is paused") _set_statusbar(gmwidg, s) return False def game_changed (gamemodel, ply, gmwidg): _set_statusbar(gmwidg, "") return False @idle_add def game_unended (gamemodel, gmwidg): log.debug("gamenanny.game_unended: %s" % gamemodel.boards[-1]) gmwidg.clearMessages() _set_statusbar(gmwidg, "") return False # Connect game_loaded, game_saved and game_ended to statusbar def game_loaded (gamemodel, uri, gmwidg): if type(uri) in (str, unicode): s = "%s: %s" % (_("Loaded game"), str(uri)) else: s = _("Loaded game") _set_statusbar(gmwidg, s) return False def game_saved (gamemodel, uri, gmwidg): _set_statusbar(gmwidg, "%s: %s" % (_("Saved game"), str(uri))) return False def analyzer_added (gamemodel, analyzer, analyzer_type, gmwidg): s = _("Analyzer started") + ": " + analyzer.name _set_statusbar(gmwidg, s) return False def on_game_started (gamemodel, gmwidg): on_gmwidg_infront(gmwidg) # setup menu items sensitivity # Rotate to human player boardview = gmwidg.board.view if gamemodel.players[1].__type__ == LOCAL: if gamemodel.players[0].__type__ != LOCAL: boardview.rotation = math.pi elif conf.get("autoRotate", True) and \ gamemodel.curplayer == gamemodel.players[1]: boardview.rotation = math.pi # Play set-up sound preferencesDialog.SoundTab.playAction("gameIsSetup") # Connect player offers to statusbar for player in gamemodel.players: if player.__type__ == LOCAL: player.connect("offer", offer_callback, gamemodel, gmwidg) # Start analyzers if any gamemodel.connect("analyzer_added", analyzer_added, gmwidg) if not (isinstance(gamemodel, ICGameModel) and \ gamemodel.isObservationGame() is False) and \ not gamemodel.isEngine2EngineGame(): gamemodel.start_analyzer(HINT) gamemodel.start_analyzer(SPY) if not conf.get("hint_mode", False): gamemodel.pause_analyzer(HINT) if not conf.get("spy_mode", False): gamemodel.pause_analyzer(SPY) return False #=============================================================================== # Player signals #=============================================================================== def offer_callback (player, offer, gamemodel, gmwidg): if gamemodel.status != RUNNING: # If the offer has already been handled by Gamemodel and the game was # drawn, we need to do nothing return message = "" if offer.type == ABORT_OFFER: message = _("You sent an abort offer") elif offer.type == ADJOURN_OFFER: message = _("You sent an adjournment offer") elif offer.type == DRAW_OFFER: message = _("You sent a draw offer") elif offer.type == PAUSE_OFFER: message = _("You sent a pause offer") elif offer.type == RESUME_OFFER: message = _("You sent a resume offer") elif offer.type == TAKEBACK_OFFER: message = _("You sent an undo offer") elif offer.type == HURRY_ACTION: message = _("You asked your opponent to move") _set_statusbar(gmwidg, message) return False #=============================================================================== # Subfunctions #=============================================================================== def engineDead (engine, gmwidg): gmwidg.bringToFront() d = Gtk.MessageDialog(type=Gtk.MessageType.ERROR, buttons=Gtk.ButtonsType.OK) d.set_markup(_("Engine, %s, has died") % repr(engine)) d.format_secondary_text(_("PyChess has lost connection to the engine, probably because it has died.\n\nYou can try to start a new game with the engine, or try to play against another one.")) d.connect("response", lambda d,r: d.hide()) d.show_all() pychess-0.12.2/lib/pychess/widgets/BoardPreview.py0000755000175000017470000002001212653167076022420 0ustar tamasusers00000000000000# -*- coding: UTF-8 -*- from __future__ import print_function import os from gi.repository import Gtk from pychess.compat import unicode from pychess.System import conf from pychess.Utils.const import reprResult, FEN_EMPTY, NORMALCHESS from pychess.Utils.Board import Board from pychess.System.protoopen import protoopen, splitUri from pychess.widgets.BoardView import BoardView from pychess.Savers.ChessFile import LoadingError def ellipsize(string, maxlen): """ Description: given a string and a length ellipsize will return the string if it is smaller than length or it will return the string truncated to length and append ... to it Return type : str """ if len(string) <= maxlen or maxlen < 4: return string return string[:maxlen - 1] + unicode("…") class BoardPreview: def __init__(self, widgets, fcbutton, opendialog, enddir): self.position = 0 self.gameno = 0 self.filename = None self.chessfile = None self.widgets = widgets self.fcbutton = fcbutton self.opendialog = opendialog self.enddir = enddir # Treeview self.list = self.widgets["gamesTree"] self.list.set_model(Gtk.ListStore(str, str, str, str)) # GTK_SELECTION_BROWSE - exactly one item is always selected self.list.get_selection().set_mode(Gtk.SelectionMode.BROWSE) self.list.get_selection().connect_after('changed', self.onSelectionChanged) # Add columns renderer = Gtk.CellRendererText() renderer.set_property("xalign", 0) self.list.append_column(Gtk.TreeViewColumn(None, renderer, text=0)) self.list.append_column(Gtk.TreeViewColumn(None, renderer, text=1)) self.list.append_column(Gtk.TreeViewColumn(None, renderer, text=2)) renderer = Gtk.CellRendererText() renderer.set_property("xalign", 1) self.list.append_column(Gtk.TreeViewColumn(None, renderer, text=3)) # Connect buttons self.widgets["first_button"].connect("clicked", self.onFirstButton) self.widgets["back_button"].connect("clicked", self.onBackButton) self.widgets["forward_button"].connect("clicked", self.onForwardButton) self.widgets["last_button"].connect("clicked", self.onLastButton) # Add the board self.boardview = BoardView(preview=True) self.boardview.set_size_request(170, 170) self.widgets["boardPreviewDock"].add(self.boardview) self.boardview.show() self.gamemodel = self.boardview.model self.boardview.got_started = True # Connect label showing possition self.boardview.connect('shownChanged', self.shownChanged) self.boardview.auto_update_shown = False # Add the filechooserbutton self.widgets["fileChooserDock"].add(fcbutton) def onFileSet(*args): fcbutton = args[0] self.onFileActivated(fcbutton.getFileName()) fcbutton.connect("file-set", onFileSet) # This is needed for game files specified on the command line to work fcbutton.connect("file-activated", onFileSet) def onResponse(fcdialog, resp): if resp == Gtk.ResponseType.ACCEPT: self.onFileActivated(opendialog.getFileName()) opendialog.connect("response", onResponse) def onFileActivated(self, filename): # filename is None if a non-existent file is passed as command line argument if filename is None: return self.setFileName(filename) if os.path.isdir(filename): return ending = filename[filename.rfind(".") + 1:] loader = self.enddir[ending] self.chessfile = chessfile = loader.load(protoopen(filename)) self.list.get_model().clear() for gameno in range(len(chessfile)): names = chessfile.get_player_names(gameno) names = [ellipsize(name, 9) for name in names] result = reprResult[chessfile.get_result(gameno)] result = result.replace("1/2", "½") self.list.get_model().append(["%s." % (gameno + 1)] + names + [result]) self.last_sel = -1 # The row that was last selected self.list.set_cursor((0, )) self.widgets["whitePlayerCombobox"].set_active(0) self.widgets["blackPlayerCombobox"].set_active(0) def onSelectionChanged(self, selection): iter = selection.get_selected()[1] if iter == None: self.gamemodel.boards = [Board(FEN_EMPTY)] del self.gamemodel.moves[:] self.boardview.shown = 0 self.boardview.redrawCanvas() return path = self.list.get_model().get_path(iter) indices = path.get_indices() sel = indices[0] if sel == self.last_sel: return self.last_sel = sel self.boardview.animation_lock.acquire() try: try: self.chessfile.loadToModel(sel, -1, self.gamemodel) except LoadingError as err: dialogue = Gtk.MessageDialog(type=Gtk.MessageType.WARNING, \ buttons=Gtk.ButtonsType.OK, \ message_format=err.args[0]) dialogue.format_secondary_text(err.args[1]) dialogue.connect("response", lambda dialogue, a: dialogue.hide()) dialogue.show() if self.gamemodel.variant.variant == NORMALCHESS: radiobutton = self.widgets["playNormalRadio"] radiobutton.set_active(True) else: radiobutton = self.widgets["playVariant1Radio"] radiobutton.set_active(True) conf.set("ngvariant1", self.gamemodel.variant.variant) radiobutton.set_label("%s" % self.gamemodel.variant.name) if self.gamemodel.tags.get("TimeControl"): radiobutton = self.widgets["blitzRadio"] radiobutton.set_active(True) conf.set("ngblitz min", self.gamemodel.timemodel.minutes) conf.set("ngblitz gain", self.gamemodel.timemodel.gain) else: radiobutton = self.widgets["notimeRadio"] radiobutton.set_active(True) self.boardview.lastMove = None self.boardview._shown = self.gamemodel.lowply last = self.gamemodel.ply finally: self.boardview.animation_lock.release() self.boardview.redrawCanvas() self.boardview.shown = last self.shownChanged(self.boardview, last) def onFirstButton(self, button): self.boardview.showFirst() def onBackButton(self, button): self.boardview.showPrev() def onForwardButton(self, button): self.boardview.showNext() def onLastButton(self, button): self.boardview.showLast() def shownChanged(self, board_view, shown): pos = "%d." % (shown / 2 + 1) if shown & 1: pos += ".." self.widgets["posLabel"].set_text(pos) def setFileName(self, filename): as_path = splitUri(filename)[-1] if os.path.isfile(as_path): self.fcbutton.show() #if filename != self._retrieve_filename(): # self.fcbutton.setFileName(os.path.abspath(as_path)) self.fcbutton.setFileName(os.path.abspath(as_path)) else: self.fcbutton.set_uri("") self.fcbutton.hide() self.filename = filename def getFileName(self): return self.filename def isEmpty(self): return not self.chessfile or not len(self.chessfile) def getPosition(self): return self.boardview.shown def getGameno(self): iter = self.list.get_selection().get_selected()[1] if iter == None: return -1 path = self.list.get_model().get_path(iter) indices = path.get_indices() return indices[0] pychess-0.12.2/lib/pychess/widgets/newGameDialog.py0000644000175000017470000010627412653171673022544 0ustar tamasusers00000000000000from __future__ import print_function import os.path import gettext import locale from operator import attrgetter from itertools import groupby from gi.repository import Gdk from gi.repository import Gtk from gi.repository import GLib from gi.repository import GObject from cairo import ImageSurface from gi.repository import GtkSource from gi.repository import GdkPixbuf from pychess.compat import StringIO from pychess.Utils.IconLoader import load_icon, get_pixbuf from pychess.Utils.GameModel import GameModel from pychess.Utils.SetupModel import SetupModel, SetupPlayer from pychess.Utils.TimeModel import TimeModel from pychess.Utils.IconLoader import get_pixbuf from pychess.Utils.const import * from pychess.Utils.repr import localReprSign from pychess.Utils.lutils.LBoard import LBoard from pychess.Utils.lutils.ldata import FILE from pychess.Utils.lutils.validator import validateMove from pychess.System import uistuff from pychess.System.Log import log from pychess.System import conf from pychess.System.idle_add import idle_add from pychess.System.prefix import getDataPrefix, isInstalled, addDataPrefix from pychess.Players.engineNest import discoverer from pychess.Players.Human import Human from pychess.widgets import BoardPreview from pychess.widgets import ionest from pychess.widgets import ImageMenu from pychess.widgets.BoardControl import BoardControl from pychess.widgets.gamewidget import createAlignment from pychess.Savers import fen, pgn from pychess.Savers.ChessFile import LoadingError from pychess.Variants import variants from pychess.Variants.normal import NormalBoard #=============================================================================== # We init most dialog icons global to make them accessibly to the # Background.Taskers so they have a similar look. #=============================================================================== big_time = get_pixbuf("glade/stock_alarm.svg") big_people = load_icon(48, "stock_people", "system-users") iwheels = load_icon(24, "gtk-execute", "system-run") ipeople = load_icon(24, "stock_people", "system-users") inotebook = load_icon(24, "stock_notebook", "computer") speople = load_icon(16, "stock_people", "system-users") snotebook = load_icon(16, "stock_notebook", "computer") weather_icons = ("clear", "clear-night", "few-clouds", "few-clouds-night", "fog", "overcast", "severe-alert", "showers-scattered", "showers", "storm") skillToIcon = {} # Used by TaskerManager. Put here to help synchronization skillToIconLarge = {} for i, icon in enumerate(weather_icons, start=1): skillToIcon[2*i-1] = load_icon(16, "weather-%s" % icon) skillToIcon[2*i] = load_icon(16, "weather-%s" % icon) skillToIconLarge[2*i-1] = load_icon(48, "weather-%s" % icon) skillToIconLarge[2*i] = load_icon(48, "weather-%s" % icon) playerItems = [] smallPlayerItems = [] analyzerItems = [] def createPlayerUIGlobals (discoverer): global playerItems global smallPlayerItems global analyzerItems playerItems = [] smallPlayerItems = [] analyzerItems = [] for variantClass in variants.values(): playerItems += [ [(ipeople, _("Human Being"))] ] smallPlayerItems += [ [(speople, _("Human Being"))] ] for engine in discoverer.getEngines(): name = engine["name"] c = discoverer.getCountry(engine) path = addDataPrefix("flags/%s.png" % c) if c and os.path.isfile(path): flag_icon = get_pixbuf(path) else: path = addDataPrefix("flags/unknown.png") flag_icon = get_pixbuf(path) for variant in discoverer.getEngineVariants(engine): playerItems[variant] += [(flag_icon, name)] smallPlayerItems[variant] += [(snotebook, name)] if discoverer.is_analyzer(engine): analyzerItems.append((flag_icon, name)) discoverer.connect("all_engines_discovered", createPlayerUIGlobals) COPY, CLEAR, PASTE = 2, 3, 4 #=============================================================================== # GameInitializationMode is the super class of new game dialogs. Dialogs include # the standard new game dialog, the load file dialog, the enter notation dialog # and the setup position dialog. #=============================================================================== class _GameInitializationMode: @classmethod def _ensureReady (cls): if not hasattr(_GameInitializationMode, "superhasRunInit"): _GameInitializationMode._init() _GameInitializationMode.superhasRunInit = True if not hasattr(cls, "hasRunInit"): cls._init() cls.hasRunInit = True cls.widgets["newgamedialog"].resize(1,1) @classmethod def _init (cls): cls.widgets = uistuff.GladeWidgets ("newInOut.glade") uistuff.createCombo(cls.widgets["whitePlayerCombobox"]) uistuff.createCombo(cls.widgets["blackPlayerCombobox"]) cls.widgets["playersIcon"].set_from_pixbuf(big_people) cls.widgets["timeIcon"].set_from_pixbuf(big_time) def on_playerCombobox_changed (widget, skillHbox): skillHbox.props.visible = widget.get_active() > 0 cls.widgets["whitePlayerCombobox"].connect( "changed", on_playerCombobox_changed, cls.widgets["skillHbox1"]) cls.widgets["blackPlayerCombobox"].connect( "changed", on_playerCombobox_changed, cls.widgets["skillHbox2"]) cls.widgets["whitePlayerCombobox"].set_active(0) cls.widgets["blackPlayerCombobox"].set_active(1) def on_skill_changed (scale, image): image.set_from_pixbuf(skillToIcon[int(scale.get_value())]) cls.widgets["skillSlider1"].connect("value-changed", on_skill_changed, cls.widgets["skillIcon1"]) cls.widgets["skillSlider2"].connect("value-changed", on_skill_changed, cls.widgets["skillIcon2"]) cls.widgets["skillSlider1"].set_value(3) cls.widgets["skillSlider2"].set_value(3) cls.__initTimeRadio(_("Blitz"), "ngblitz", cls.widgets["blitzRadio"], cls.widgets["configImageBlitz"], 5, 0) cls.__initTimeRadio(_("Rapid"), "ngrapid", cls.widgets["rapidRadio"], cls.widgets["configImageRapid"], 15, 5) cls.__initTimeRadio(_("Normal"), "ngnormal", cls.widgets["normalRadio"], cls.widgets["configImageNormal"], 40, 15) cls.__initVariantRadio("ngvariant1", cls.widgets["playVariant1Radio"], cls.widgets["configImageVariant1"], FISCHERRANDOMCHESS) cls.__initVariantRadio("ngvariant2", cls.widgets["playVariant2Radio"], cls.widgets["configImageVariant2"], LOSERSCHESS) #@idle_add def updateCombos(*args): if cls.widgets["playNormalRadio"].get_active(): variant = NORMALCHESS elif cls.widgets["playVariant1Radio"].get_active(): variant = conf.get("ngvariant1", FISCHERRANDOMCHESS) else: variant = conf.get("ngvariant2", LOSERSCHESS) variant1 = conf.get("ngvariant1", FISCHERRANDOMCHESS) cls.widgets["playVariant1Radio"].set_tooltip_text(variants[variant1].__desc__) variant2 = conf.get("ngvariant2", LOSERSCHESS) cls.widgets["playVariant2Radio"].set_tooltip_text(variants[variant2].__desc__) data = [(item[0], item[1]) for item in playerItems[variant]] uistuff.updateCombo(cls.widgets["blackPlayerCombobox"], data) uistuff.updateCombo(cls.widgets["whitePlayerCombobox"], data) discoverer.connect_after("all_engines_discovered", updateCombos) updateCombos(discoverer) conf.notify_add("ngvariant1", updateCombos) conf.notify_add("ngvariant2", updateCombos) cls.widgets["playNormalRadio"].connect("toggled", updateCombos) cls.widgets["playNormalRadio"].set_tooltip_text(variants[NORMALCHESS].__desc__) cls.widgets["playVariant1Radio"].connect("toggled", updateCombos) variant1 = conf.get("ngvariant1", FISCHERRANDOMCHESS) cls.widgets["playVariant1Radio"].set_tooltip_text(variants[variant1].__desc__) cls.widgets["playVariant2Radio"].connect("toggled", updateCombos) variant2 = conf.get("ngvariant2", LOSERSCHESS) cls.widgets["playVariant2Radio"].set_tooltip_text(variants[variant2].__desc__) # The "variant" has to come before players, because the engine positions # in the user comboboxes can be different in different variants for key in ("whitePlayerCombobox", "blackPlayerCombobox", "skillSlider1", "skillSlider2", "notimeRadio", "blitzRadio", "rapidRadio", "normalRadio", "playNormalRadio", "playVariant1Radio", "playVariant2Radio"): uistuff.keep(cls.widgets[key], key) # We don't want the dialog to deallocate when closed. Rather we hide # it on respond cls.widgets["newgamedialog"].connect("delete_event", lambda *a: True) @classmethod def __initTimeRadio (cls, name, id, radiobutton, configImage, defmin, defgain): #minSpin = Gtk.SpinButton(Gtk.Adjustment(1,1,240,1)) minSpin = Gtk.SpinButton() minSpin.set_adjustment(Gtk.Adjustment(1,1,240,1)) #gainSpin = Gtk.SpinButton(Gtk.Adjustment(0,-60,60,1)) gainSpin = Gtk.SpinButton() gainSpin.set_adjustment(Gtk.Adjustment(0,-60,60,1)) setattr(cls, "%s_min" % id, minSpin) setattr(cls, "%s_gain" % id, gainSpin) uistuff.keep(minSpin, "%s min" % id, first_value=defmin) uistuff.keep(gainSpin, "%s gain" % id, first_value=defgain) table = Gtk.Table(2, 2) table.props.row_spacing = 3 table.props.column_spacing = 12 label = Gtk.Label(label=_("Minutes:")) label.props.xalign = 0 table.attach(label, 0, 1, 0, 1) table.attach(minSpin, 1, 2, 0, 1) label = Gtk.Label(label=_("Gain:")) label.props.xalign = 0 table.attach(label, 0, 1, 1, 2) table.attach(gainSpin, 1, 2, 1, 2) alignment = Gtk.Alignment.new(1,1,1,1) alignment.set_padding(6,6,12,12) alignment.add(table) ImageMenu.switchWithImage(configImage, alignment) def updateString (spin): minutes = minSpin.get_value_as_int() gain = gainSpin.get_value_as_int() if gain > 0: radiobutton.set_label(_("%(name)s %(minutes)d min + %(gain)d sec/move") % { 'name': name, 'minutes': minutes, 'gain': gain}) elif gain < 0: radiobutton.set_label(_("%(name)s %(minutes)d min %(gain)d sec/move") % { 'name': name, 'minutes': minutes, 'gain': gain}) else: radiobutton.set_label(_("%(name)s %(minutes)d min") % { 'name': name, 'minutes': minutes}) minSpin.connect("value-changed", updateString) gainSpin.connect("value-changed", updateString) updateString(None) @classmethod def __initVariantRadio (cls, confid, radiobutton, configImage, default): model = Gtk.TreeStore(str) treeview = Gtk.TreeView(model) treeview.set_headers_visible(False) treeview.append_column(Gtk.TreeViewColumn(None, Gtk.CellRendererText(), text=0)) alignment = Gtk.Alignment.new(1,1,1,1) alignment.set_padding(6,6,12,12) alignment.add(treeview) ImageMenu.switchWithImage(configImage, alignment) groupNames = {VARIANTS_BLINDFOLD: _("Blindfold"), VARIANTS_ODDS: _("Odds"), VARIANTS_SHUFFLE: _("Shuffle"), VARIANTS_OTHER: _("Other (standard rules)"), VARIANTS_OTHER_NONSTANDARD: _("Other (non standard rules)"), VARIANTS_ASEAN: _("Asian variants"), } specialVariants = [v for v in variants.values() if v != NormalBoard and v.variant not in UNSUPPORTED] specialVariants = sorted(specialVariants, key=attrgetter("variant_group")) groups = groupby(specialVariants, attrgetter("variant_group")) pathToVariant = {} variantToPath = {} for i, (id, group) in enumerate(groups): iter = model.append(None, (groupNames[id],)) for variant in group: subiter = model.append(iter, (variant.name,)) path = model.get_path(subiter) pathToVariant[path.to_string()] = variant.variant variantToPath[variant.variant] = path.to_string() treeview.expand_row(Gtk.TreePath(i), True) selection = treeview.get_selection() selection.set_mode(Gtk.SelectionMode.BROWSE) def selfunc (selection, store, path, path_selected, data): return path.get_depth() > 1 selection.set_select_function(selfunc, None) variant = conf.get(confid, default) if variant in variantToPath: selection.select_path(variantToPath[variant]) def callback (selection): model, iter = selection.get_selected() if iter: radiobutton.set_label("%s" % model.get(iter, 0) + _(" chess")) path = model.get_path(iter) variant = pathToVariant[path.to_string()] conf.set(confid, variant) selection.connect("changed", callback) callback(selection) @classmethod def _generalRun (cls, callback, validate): def onResponse(dialog, response): if response == COPY: clipboard = Gtk.Clipboard.get(Gdk.SELECTION_CLIPBOARD) clipboard.set_text(cls.get_fen(), -1) #print("put clipboard:", clipboard.wait_for_text()) return elif response == CLEAR: cls.board_control.emit("action", "SETUP", True) cls.ini_widgets(True) #print("clear") return elif response == PASTE: clipboard = Gtk.Clipboard.get(Gdk.SELECTION_CLIPBOARD) text = clipboard.wait_for_text() #print("got clipboard:", text) if len(text.split()) < 2: return try: lboard = cls.setupmodel.variant(setup=text).board cls.ini_widgets(lboard.asFen()) cls.board_control.emit("action", "SETUP", text) except SyntaxError as e: d = Gtk.MessageDialog (type=Gtk.MessageType.WARNING, buttons=Gtk.ButtonsType.OK, message_format=e.args[0]) if len(e.args) > 1: d.format_secondary_text (e.args[1]) d.connect("response", lambda d,a: d.hide()) d.show() return elif response != Gtk.ResponseType.OK: cls.widgets["newgamedialog"].hide() cls.widgets["newgamedialog"].disconnect(handlerId) return if hasattr(cls, "board_control"): cls.board_control.emit("action", "CLOSE", None) # Find variant if cls.widgets["playNormalRadio"].get_active(): variant_index = NORMALCHESS elif cls.widgets["playVariant1Radio"].get_active(): variant_index = conf.get("ngvariant1", FISCHERRANDOMCHESS) else: variant_index = conf.get("ngvariant2", LOSERSCHESS) variant = variants[variant_index] # Find time if cls.widgets["notimeRadio"].get_active(): secs = 0 incr = 0 elif cls.widgets["blitzRadio"].get_active(): secs = cls.ngblitz_min.get_value_as_int()*60 incr = cls.ngblitz_gain.get_value_as_int() elif cls.widgets["rapidRadio"].get_active(): secs = cls.ngrapid_min.get_value_as_int()*60 incr = cls.ngrapid_gain.get_value_as_int() elif cls.widgets["normalRadio"].get_active(): secs = cls.ngnormal_min.get_value_as_int()*60 incr = cls.ngnormal_gain.get_value_as_int() # Find players player0 = cls.widgets["whitePlayerCombobox"].get_active() player0 = playerItems[0].index(playerItems[variant_index][player0]) diffi0 = int(cls.widgets["skillSlider1"].get_value()) player1 = cls.widgets["blackPlayerCombobox"].get_active() player1 = playerItems[0].index(playerItems[variant_index][player1]) diffi1 = int(cls.widgets["skillSlider2"].get_value()) # Prepare players for ionest playertups = [] for i, playerno, diffi, color in ((0, player0, diffi0, WHITE), (1, player1, diffi1, BLACK)): if playerno > 0: engine = discoverer.getEngineN (playerno-1) name = discoverer.getName(engine) playertups.append((ARTIFICIAL, discoverer.initPlayerEngine, [engine, color, diffi, variant, secs, incr], name)) else: if not playertups or playertups[0][0] != LOCAL: name = conf.get("firstName", _("You")) else: name = conf.get("secondName", _("Guest")) playertups.append((LOCAL, Human, (color, name), name)) # Set forcePonderOff initPlayerEngine param True in engine-engine games if playertups[0][0] == ARTIFICIAL and playertups[1][0] == ARTIFICIAL: playertups[0][2].append(True) playertups[1][2].append(True) if secs > 0: timemodel = TimeModel (secs, incr) else: timemodel = TimeModel() gamemodel = GameModel (timemodel, variant) if not validate(gamemodel): return else: cls.widgets["newgamedialog"].hide() cls.widgets["newgamedialog"].disconnect(handlerId) callback(gamemodel, playertups[0], playertups[1]) handlerId = cls.widgets["newgamedialog"].connect("response", onResponse) cls.widgets["newgamedialog"].show() @classmethod def _hideOthers (cls): for extension in ("loadsidepanel", "enterGameNotationSidePanel", "setupPositionSidePanel"): cls.widgets[extension].hide() for button in ("copy_button", "clear_button", "paste_button"): cls.widgets[button].hide() ################################################################################ # NewGameMode # ################################################################################ class NewGameMode (_GameInitializationMode): @classmethod def _init (cls): # We have to override this, so the GameInitializationMode init method # isn't called twice pass @classmethod def run (cls): cls._ensureReady() if cls.widgets["newgamedialog"].props.visible: cls.widgets["newgamedialog"].present() return def _validate(gamemodel): return True cls._hideOthers() cls.widgets["newgamedialog"].set_title(_("New Game")) cls._generalRun(ionest.generalStart, _validate) ################################################################################ # LoadFileExtension # ################################################################################ class LoadFileExtension (_GameInitializationMode): @classmethod def _init (cls): opendialog, savedialog, enddir, savecombo, savers = ionest.getOpenAndSaveDialogs() cls.filechooserbutton = Gtk.FileChooserButton.new_with_dialog(opendialog) cls.loadSidePanel = BoardPreview.BoardPreview(cls.widgets, cls.filechooserbutton, opendialog, enddir) @classmethod def run (cls, uri=None): cls._ensureReady() if cls.widgets["newgamedialog"].props.visible: cls.widgets["newgamedialog"].present() return if not uri: res = ionest.opendialog.run() ionest.opendialog.hide() if res != Gtk.ResponseType.ACCEPT: return else: if not uri[uri.rfind(".")+1:] in ionest.enddir: log.info("Ignoring strange file: %s" % uri) return cls.loadSidePanel.set_filename(uri) cls.filechooserbutton.emit("file-activated") cls._hideOthers() cls.widgets["newgamedialog"].set_title(_("Open Game")) cls.widgets["loadsidepanel"].show() def _validate(gamemodel): return True def _callback (gamemodel, p0, p1): if not cls.loadSidePanel.isEmpty(): uri = cls.loadSidePanel.get_filename() loader = ionest.enddir[uri[uri.rfind(".")+1:]] position = cls.loadSidePanel.get_position() gameno = cls.loadSidePanel.getGameno() ionest.generalStart(gamemodel, p0, p1, (uri, loader, gameno, position)) else: ionest.generalStart(gamemodel, p0, p1) cls._generalRun(_callback, _validate) ################################################################################ # SetupPositionExtension # ################################################################################ class SetupPositionExtension (_GameInitializationMode): @classmethod def _init (cls): def callback (widget, allocation): cls.widgets["setupPositionFrame"].set_size_request( 523, allocation.height-4) cls.widgets["setupPositionSidePanel"].connect_after("size-allocate", callback) cls.castl = set() cls.white = Gtk.Image.new_from_pixbuf(get_pixbuf("glade/white.png")) cls.black = Gtk.Image.new_from_pixbuf(get_pixbuf("glade/black.png")) cls.widgets["side_button"].set_image(cls.white) cls.widgets["side_button"].connect("toggled", cls.side_button_toggled) cls.widgets["moveno_spin"].connect("value-changed", cls.moveno_spin_changed) cls.widgets["fifty_spin"].connect("value-changed", cls.fifty_spin_changed) cls.widgets["woo"].connect("toggled", cls.castl_toggled, "K") cls.widgets["wooo"].connect("toggled", cls.castl_toggled, "Q") cls.widgets["boo"].connect("toggled", cls.castl_toggled, "k") cls.widgets["booo"].connect("toggled", cls.castl_toggled, "q") ep_store = Gtk.ListStore(str) ep_store.append(["-"]) for f in reprFile: ep_store.append([f]) cls.widgets["ep_combo"].set_model(ep_store) renderer_text = Gtk.CellRendererText() cls.widgets["ep_combo"].pack_start(renderer_text, True) cls.widgets["ep_combo"].add_attribute(renderer_text, "text", 0) cls.widgets["ep_combo"].set_active(0) cls.widgets["ep_combo"].connect("changed", cls.ep_combo_changed) @classmethod def side_button_toggled(cls, button): if button.get_active(): button.set_image(cls.black) else: button.set_image(cls.white) cls.fen_changed() @classmethod def fen_changed(cls): cls.widgets["fen_entry"].set_text(cls.get_fen()) @classmethod def game_changed(cls, model, ply): GLib.idle_add(cls.fen_changed) @classmethod def ep_combo_changed(cls, combo): cls.fen_changed() @classmethod def moveno_spin_changed(cls, spin): cls.fen_changed() @classmethod def fifty_spin_changed(cls, spin): cls.fen_changed() @classmethod def castl_toggled(cls, button, castl): if button.get_active(): cls.castl.add(castl) else: cls.castl.discard(castl) cls.fen_changed() @classmethod def get_fen(cls): pieces = cls.setupmodel.boards[-1].as_fen() side = "b" if cls.widgets["side_button"].get_active() else "w" castl = "".join(sorted(cls.castl)) if cls.castl else "-" ep = "-" rank = "3" if side == "b" else "6" tree_iter = cls.widgets["ep_combo"].get_active_iter() if tree_iter != None: model = cls.widgets["ep_combo"].get_model() ep = model[tree_iter][0] ep = ep if ep=="-" else ep+rank fifty = cls.widgets["fifty_spin"].get_value_as_int() moveno = cls.widgets["moveno_spin"].get_value_as_int() parts = (pieces, side, castl, ep, fifty, moveno) return "%s %s %s %s %s %s" % parts @classmethod def ini_widgets(cls, setup): lboard = cls.setupmodel.variant(setup=setup).board cls.widgets["side_button"].set_active(False if lboard.color == WHITE else True) cls.widgets["fifty_spin"].set_value(lboard.fifty) cls.widgets["moveno_spin"].set_value(lboard.plyCount//2 + 1) ep = lboard.enpassant cls.widgets["ep_combo"].set_active(0 if ep is None else FILE(ep)+1) cls.castl = set() cls.widgets["woo"].set_active(lboard.castling & W_OO) cls.widgets["wooo"].set_active(lboard.castling & W_OOO) cls.widgets["boo"].set_active(lboard.castling & B_OO) cls.widgets["booo"].set_active(lboard.castling & B_OOO) @classmethod def run (cls): cls._ensureReady() if cls.widgets["newgamedialog"].props.visible: cls.widgets["newgamedialog"].present() print("de return") return cls._hideOthers() for button in ("copy_button", "clear_button", "paste_button"): cls.widgets[button].show() cls.widgets["newgamedialog"].set_title(_("Setup Position")) cls.widgets["setupPositionSidePanel"].show() cls.setupmodel = SetupModel() cls.board_control = BoardControl(cls.setupmodel, {}, setup_position=True) cls.setupmodel.curplayer = SetupPlayer(cls.board_control) cls.setupmodel.connect("game_changed", cls.game_changed) child = cls.widgets["setupBoardDock"].get_child() if child is not None: cls.widgets["setupBoardDock"].remove(child) cls.widgets["setupBoardDock"].add(cls.board_control) cls.board_control.show_all() cls.ini_widgets(True) cls.widgets["fen_entry"].set_text(cls.get_fen()) cls.setupmodel.start() def _validate(gamemodel): try: text = cls.get_fen() lboard = cls.setupmodel.variant(setup=text).board return True except (AssertionError, LoadingError, SyntaxError) as e: d = Gtk.MessageDialog (type=Gtk.MessageType.WARNING, buttons=Gtk.ButtonsType.OK, message_format=e.args[0]) if len(e.args) > 1: d.format_secondary_text (e.args[1]) d.connect("response", lambda d,a: d.hide()) d.show() return False def _callback (gamemodel, p0, p1): text = cls.get_fen() ionest.generalStart(gamemodel, p0, p1, (StringIO(text), fen, 0, -1)) cls._generalRun(_callback, _validate) ################################################################################ # EnterNotationExtension # ################################################################################ class EnterNotationExtension (_GameInitializationMode): @classmethod def _init (cls): def callback (widget, allocation): cls.widgets["enterGameNotationFrame"].set_size_request( 223, allocation.height-4) cls.widgets["enterGameNotationSidePanel"].connect_after("size-allocate", callback) flags = [] if isInstalled(): path = gettext.find("pychess") else: path = gettext.find("pychess", localedir=addDataPrefix("lang")) if path: loc = locale.getdefaultlocale()[0][-2:].lower() flags.append(addDataPrefix("flags/%s.png" % loc)) flags.append(addDataPrefix("flags/us.png")) cls.ib = ImageButton(flags) cls.widgets["imageButtonDock"].add(cls.ib) cls.ib.show() cls.sourcebuffer = GtkSource.Buffer() sourceview = GtkSource.View.new_with_buffer(cls.sourcebuffer) sourceview.set_tooltip_text( _("Type or paste PGN game or FEN positions here")) cls.widgets["scrolledwindow6"].add(sourceview) sourceview.show() # Pgn format does not allow tabulator sourceview.set_insert_spaces_instead_of_tabs(True) sourceview.set_wrap_mode(Gtk.WrapMode.WORD) man = GtkSource.LanguageManager() # Init new version if hasattr(man.props, 'search_path'): try: path = os.path.join(getDataPrefix(),"gtksourceview-1.0/language-specs") man.props.search_path = man.props.search_path + [path] if 'pgn' in man.get_language_ids(): lang = man.get_language('pgn') cls.sourcebuffer.set_language(lang) else: log.warning("Unable to load pgn syntax-highlighting.") cls.sourcebuffer.set_highlight_syntax(True) except NotImplementedError: # Python 2.7.3 in Ubuntu 12.04 log.warning("Unable to load pgn syntax-highlighting.") # Init old version else: os.environ["XDG_DATA_DIRS"] = getDataPrefix()+":/usr/share/" man = LanguageManager() for lang in man.get_available_languages(): if lang.get_name() == "PGN": cls.sourcebuffer.set_language(lang) break else: log.warning("Unable to load pgn syntax-highlighting.") cls.sourcebuffer.set_highlight(True) @classmethod def run (cls): cls._ensureReady() if cls.widgets["newgamedialog"].props.visible: cls.widgets["newgamedialog"].present() return cls._hideOthers() cls.widgets["newgamedialog"].set_title(_("Enter Game")) cls.widgets["enterGameNotationSidePanel"].show() def _get_text(): text = cls.sourcebuffer.get_text( cls.sourcebuffer.get_start_iter(), cls.sourcebuffer.get_end_iter(), False) # Test if the ImageButton has two layers and is set on the local language if len(cls.ib.surfaces) == 2 and cls.ib.current == 0: # 2 step used to avoid backtranslating # (local and english piece letters can overlap) for i, sign in enumerate(localReprSign[1:]): if sign.strip(): text = text.replace(sign, FAN_PIECES[0][i+1]) for i, sign in enumerate(FAN_PIECES[0][1:7]): text = text.replace(sign, reprSign[i+1]) text = str(text) # First we try if it's just a FEN string parts_no = len(text.split()) if text.strip() == "": text = FEN_START loadType = fen elif parts_no > 0 and text.split()[0].count("/") == 7: loadType = fen else: loadType = pgn return text, loadType def _validate(gamemodel): try: text, loadType = _get_text() chessfile = loadType.load(StringIO(text)) chessfile.loadToModel(0, -1, model=gamemodel) gamemodel.status = WAITING_TO_START return True except LoadingError as e: d = Gtk.MessageDialog (type=Gtk.MessageType.WARNING, buttons=Gtk.ButtonsType.OK, message_format=e.args[0]) d.format_secondary_text (e.args[1]) d.connect("response", lambda d,a: d.hide()) d.show() return False def _callback (gamemodel, p0, p1): text, loadType = _get_text() ionest.generalStart(gamemodel, p0, p1, (StringIO(text), loadType, 0, -1)) cls._generalRun(_callback, _validate) class ImageButton(Gtk.Button): def __init__ (self, imagePaths): GObject.GObject.__init__(self) self.surfaces = [Gtk.Image().new_from_file(path) for path in imagePaths] self.current = 0 self.image = self.surfaces[self.current] self.image.show() self.add(self.image) self.connect("clicked", self.on_clicked) def on_clicked(self, button): self.current = (self.current + 1) % len(self.surfaces) self.remove(self.image) self.image = self.surfaces[self.current] self.image.show() self.add(self.image) class xxxImageButton(Gtk.DrawingArea): def __init__ (self, imagePaths): GObject.GObject.__init__(self) self.set_events(Gdk.EventMask.EXPOSURE_MASK | Gdk.EventMask.BUTTON_PRESS_MASK) self.connect("draw", self.draw) self.connect("button_press_event", self.buttonPress) self.surfaces = [ImageSurface.create_from_png(path) for path in imagePaths] self.current = 0 width, height = self.surfaces[0].get_width(), self.surfaces[0].get_height() self.size = (0, 0, width, height) self.set_size_request(width, height) def draw (self, self_, context): context.set_source_surface(self.surfaces[self.current], 0, 0) context.fill() def buttonPress (self, self_, event): if event.button == 1 and event.type == Gdk.EventType.BUTTON_PRESS: self.current = (self.current + 1) % len(self.surfaces) self.window.invalidate_rect(self.size, True) self.window.process_updates(True) def createRematch (gamemodel): """ If gamemodel contains only LOCAL or ARTIFICIAL players, this starts a new game, based on the info in gamemodel """ if gamemodel.timed: secs = gamemodel.timemodel.intervals[0][WHITE] gain = gamemodel.timemodel.gain else: secs = 0 gain = 0 newgamemodel = GameModel(TimeModel(secs, gain), variant=gamemodel.variant) wp = gamemodel.players[WHITE] bp = gamemodel.players[BLACK] if wp.__type__ == LOCAL: player1tup = (wp.__type__, wp.__class__, (BLACK, repr(wp)), repr(wp)) if bp.__type__ == LOCAL: player0tup = (bp.__type__, bp.__class__, (WHITE, repr(wp)), repr(bp)) else: engine = discoverer.getEngineByMd5(bp.md5) player0tup = (ARTIFICIAL, discoverer.initPlayerEngine, (engine, WHITE, bp.strength, gamemodel.variant, secs, gain), repr(bp)) else: player0tup = (bp.__type__, bp.__class__, (WHITE, repr(bp)), repr(bp)) engine = discoverer.getEngineByMd5(wp.md5) player1tup = (ARTIFICIAL, discoverer.initPlayerEngine, (engine, BLACK, wp.strength, gamemodel.variant, secs, gain), repr(wp)) ionest.generalStart(newgamemodel, player0tup, player1tup) pychess-0.12.2/lib/pychess/widgets/Background.py0000755000175000017470000001663112641567764022127 0ustar tamasusers00000000000000from os import path from gi.repository import Gtk from gi.repository import Gdk import cairo from pychess.System.prefix import addDataPrefix, addUserCachePrefix CLEARPATH = addDataPrefix("glade/clear.png") surface = None provider = None loldcolor = None doldcolor = None def giveBackground (widget): widget.connect("draw", expose) widget.connect("style-updated", newtheme) def expose (widget, context): cr = widget.get_window().cairo_create() x = widget.get_allocation().x y = widget.get_allocation().y width = widget.get_allocation().width height = widget.get_allocation().height cr.rectangle (x, y, width, height) if not surface: newtheme(widget) cr.set_source_surface(surface, 0, 0) pattern = cr.get_source() pattern.set_extend(cairo.EXTEND_REPEAT) cr.fill() def newtheme (widget): global surface, provider, loldcolor, doldcolor sc = widget.get_style_context() # get colors from theme # bg color found, bgcol = sc.lookup_color("bg_color") if not found: found, bgcol = sc.lookup_color("theme_bg_color") if not found: # fallback value bgcol = Gdk.RGBA(red=0.929412, green=0.929412, blue=0.929412, alpha=1.0) # bg selected color found, bgsel = sc.lookup_color("theme_selected_bg_color") if not found: # fallback value bgsel = Gdk.RGBA(red=0.290, green=0.565, blue=0.851, alpha=1.0) # fg color found, fgcol = sc.lookup_color("fg_color") if not found: found, fgcol = sc.lookup_color("theme_fg_color") if not found: fgcol= Gdk.RGBA(red=0.180392, green=0.203922, blue=0.211765, alpha=1.000000) # base color found, basecol = sc.lookup_color("base_color") if not found: found, basecol = sc.lookup_color("theme_base_color") if not found: basecol = Gdk.RGBA(red=0.929412, green=0.929412, blue=0.929412, alpha=1.0) # text color found, textcol = sc.lookup_color("text_color") if not found: found, textcol = sc.lookup_color("theme_text_color") if not found: textcol = Gdk.RGBA(red=0.180392, green=0.203922, blue=0.211765, alpha=1.0) def get_col(col, mult): r = col.red * mult g = col.green * mult b = col.blue * mult if r > 1.0: r = 1.0 if g > 1.0: g = 1.0 if b > 1.0: b = 1.0 if r==1 and g==1 and b==1: return Gdk.RGBA(0.99, 0.99, 0.99, 1.0) else: return Gdk.RGBA(r, g, b, 1.0) # derive other colors bgacol = get_col(bgcol, 0.9) # bg_active dcol = get_col(bgcol, 0.7) # dark darksel = get_col(bgsel, 0.71) # dark selected dpcol = get_col(bgcol, 0.71) # dark prelight dacol = get_col(dcol, 0.9) # dark_active lcol = get_col(bgcol, 1.3) # light color lightsel = get_col(bgsel, 1.3) # light selected fgsel = Gdk.RGBA(0.99, 0.99, 0.99, 1.0) # fg selected fgpcol = get_col(fgcol, 1.054) # fg prelight fgacol = Gdk.RGBA(0.0, 0.0, 0.0, 1.0) # fg active textaacol=Gdk.RGBA(min((basecol.red+textcol.red)/2., 1.0), min((basecol.green+textcol.green)/2., 1.0), min((basecol.blue+textcol.blue)/2., 1.0)) # text_aa # return hex string #rrggbb def hexcol(color): return "#%02X%02X%02X" % (int(color.red * 255), int(color.green * 255), int(color.blue * 255)) data = "@define-color p_bg_color " + hexcol(bgcol) + ";" \ "@define-color p_bg_prelight " + hexcol(bgcol) + ";" \ "@define-color p_bg_active " + hexcol(bgacol) + ";" \ "@define-color p_bg_selected " + hexcol(bgsel) + ";" \ "@define-color p_bg_insensitive " + hexcol(bgcol) + ";" \ "@define-color p_base_color " + hexcol(basecol) + ";" \ "@define-color p_dark_color " + hexcol(dcol) + ";" \ "@define-color p_dark_prelight " + hexcol(dpcol) + ";" \ "@define-color p_dark_active " + hexcol(dacol) + ";" \ "@define-color p_dark_selected " + hexcol(darksel) + ";" \ "@define-color p_text_aa " + hexcol(textaacol) + ";" \ "@define-color p_light_color " + hexcol(lcol) + ";" \ "@define-color p_light_selected " + hexcol(lightsel) + ";" \ "@define-color p_fg_color " + hexcol(fgcol) + ";" \ "@define-color p_fg_prelight " + hexcol(fgpcol) + ";" \ "@define-color p_fg_selected " + hexcol(fgsel) + ";" \ "@define-color p_fg_active " + hexcol(fgacol) + ";" if provider is not None: sc.remove_provider_for_screen(Gdk.Screen.get_default(), provider) provider = Gtk.CssProvider.new() provider.load_from_data(data.encode()) sc.add_provider_for_screen(Gdk.Screen.get_default(), provider, Gtk.STYLE_PROVIDER_PRIORITY_APPLICATION) lnewcolor = bgcol dnewcolor = dcol # check if changed if loldcolor: if lnewcolor.red == loldcolor.red and \ lnewcolor.green == loldcolor.green and \ lnewcolor.blue == loldcolor.blue and \ dnewcolor.red == doldcolor.red and \ dnewcolor.green == doldcolor.green and \ dnewcolor.blue == doldcolor.blue: return loldcolor = lnewcolor doldcolor = dnewcolor # global colors have been set up # now set colors on startup panel bool1, lnewcolor = sc.lookup_color("p_bg_color") bool1, dnewcolor = sc.lookup_color("p_dark_color") colors = [ int(lnewcolor.red * 255), int(lnewcolor.green * 255), int(lnewcolor.blue * 255), int(dnewcolor.red * 255), int(dnewcolor.green * 255), int(dnewcolor.blue * 255) ] # Check if a cache has been saved temppng = addUserCachePrefix("temp.png") if path.isfile(temppng): f = open(temppng, "rb") # Check if the cache was made while using the same theme if list(f.read(6)) == colors: surface = cairo.ImageSurface.create_from_png(f) return # Get mostly transparant shadowy image imgsurface = cairo.ImageSurface.create_from_png(CLEARPATH) AVGALPHA = 108/255. surface = cairo.ImageSurface(cairo.FORMAT_RGB24, imgsurface.get_width(), imgsurface.get_height()) ctx = cairo.Context (surface) if lnewcolor.blue*65535 - dnewcolor.blue*65535 > 0: a = dnewcolor.red*65535/(3*(lnewcolor.blue*65535 - dnewcolor.blue*65535)*(1-AVGALPHA)) ctx.set_source_rgb( lnewcolor.red/2 + dnewcolor.red*a/2, lnewcolor.green/2 + dnewcolor.green*a/2, lnewcolor.blue/2 + dnewcolor.blue*a/2) ctx.paint() ctx.set_source_surface(imgsurface, 0, 0) ctx.paint_with_alpha(.8) # Save a cache for later use. Save 'newcolor' in the frist three pixels # to check for theme changes between two instances f = open(temppng, "wb") f.write(bytes(colors)) surface.write_to_png(f) def set_textview_color(textview): # TODO: breaks text selection visibility sc = textview.get_style_context() bool1, bg_color = sc.lookup_color("p_light_color") #textview.override_background_color(Gtk.StateFlags.NORMAL, bg_color) bool1, fg_color = sc.lookup_color("p_fg_color") #textview.override_color(Gtk.StateFlags.NORMAL, fg_color) return (bg_color, fg_color) pychess-0.12.2/lib/pychess/widgets/InfoBar.py0000644000175000017470000001064612653167076021360 0ustar tamasusers00000000000000from gi.repository import GObject from gi.repository import Gtk def get_message_content (heading_text, message_text, image_stock_id): # TODO: If you try to fix this first read issue #958 and 1018 #hbox = Gtk.HBox() #image = Gtk.Image() #image.set_from_stock(image_stock_id, Gtk.IconSize.DIALOG) #hbox.pack_start(image, False, False, 0) #vbox = Gtk.VBox() #label = Gtk.Label() #label.props.xalign = 0 #label.props.justify = Gtk.Justification.LEFT #label.set_markup("%s" % heading_text) #label.set_text(heading_text) #vbox.pack_start(label, False, False, 0) label = Gtk.Label() label.props.xalign = 0 label.props.justify = Gtk.Justification.LEFT label.props.wrap = True #label.set_width_chars(70) label.set_text("%s %s" % (heading_text, message_text)) #vbox.pack_start(label, False, False, 0) #hbox.pack_start(vbox, False, False, 0) #return vbox return label class InfoBarMessageButton (GObject.GObject): def __init__(self, text, response_id, sensitive=True, tooltip_text=""): GObject.GObject.__init__(self) self.text = text self.response_id = response_id self.sensitive = sensitive self.tooltip_text = tooltip_text self._button = None def get_sensitive (self): return self._sensitive def set_sensitive (self, sensitive): self._sensitive = sensitive sensitive = GObject.property(get_sensitive, set_sensitive) def get_tooltip_text (self): return self._tooltip_text def set_tooltip_text (self, tooltip_text): self._tooltip_text = tooltip_text tooltip_text = GObject.property(get_tooltip_text, set_tooltip_text) class InfoBarMessage (Gtk.InfoBar): __gsignals__ = { "dismissed": (GObject.SignalFlags.RUN_FIRST, None, ()), } def __init__ (self, message_type, content, callback): GObject.GObject.__init__(self) self.callback = callback self.buttons = [] self.get_content_area().add(content) def add_button (self, button): """ All buttons must be added before doing InfoBarNotebook.push_message() """ if not isinstance(button, InfoBarMessageButton): raise TypeError("Not an InfoBarMessageButton: %s" % repr(button)) self.buttons.append(button) button._button = Gtk.InfoBar.add_button(self, button.text, button.response_id) def set_sensitive(button, property): if self.get_children(): self.set_response_sensitive(button.response_id, button.sensitive) button.connect("notify::sensitive", set_sensitive) def set_tooltip_text(button, property): button._button.set_property("tooltip-text", button.tooltip_text) button.connect("notify::tooltip-text", set_tooltip_text) def dismiss (self): self.hide() self.emit("dismissed") def update_content (self, content): for widget in self.get_content_area(): self.get_content_area().remove(widget) self.get_content_area().add(content) self.show_all() class InfoBarNotebook(Gtk.Notebook): """ This is a :class:`Gtk.Notebook` which manages InfoBarMessage objects pushed onto it via push_message() like a stack. If/when the current message at the top of the stack is responded to or dismissed by the user, the next message in the stack waiting for a response is displayed. Messages that aren't applicable anymore can be removed from anywhere in the InfoBar message stack by calling message.dismiss() """ def __init__ (self): Gtk.Notebook.__init__(self) self.set_show_tabs(False) def push_message (self, message): def on_dismissed(mesage): pn = self.page_num(message) if pn != -1: self.remove_page(pn) def onResponse(message, response_id): if callable(message.callback): message.callback(self, response_id, message) pn = self.page_num(message) if pn != -1: self.remove_page(pn) cp = self.get_current_page() if cp > 0: self.remove_page(cp) self.append_page(message, None) message.connect("response", onResponse) message.connect("dismissed", on_dismissed) self.show_all() def clear_messages (self): for child in self.get_children(): self.remove(child) pychess-0.12.2/lib/pychess/widgets/SpotGraph.py0000755000175000017470000004351212651130123021725 0ustar tamasusers00000000000000import math ceil = lambda f: int(math.ceil(f)) from gi.repository import GObject from gi.repository import Gtk from gi.repository import Gdk import cairo from gi.repository import Pango from gi.repository import PangoCairo from pychess.System.Log import log line = 10 curve = 60 dotSmall = 14 dotLarge = 24 lineprc = 1/7. hpadding = 5 vpadding = 3 class SpotGraph (Gtk.EventBox): __gsignals__ = { 'spotClicked' : (GObject.SignalFlags.RUN_FIRST, None, (str,)) } def __init__ (self): GObject.GObject.__init__(self) self.connect("draw", self.expose) # rgb 85,152,215 = Rated # rgb 115,210,22 = Unrated # rgb 189,47,26 = Computer self.typeColors = [[[85, 152, 215], [59, 106, 151]], [[115, 210, 22], [78, 154, 6]], [[85,152,215], [189,47,26]], [[115,210,22], [189,47,26]]] for type in self.typeColors: for color in type: color[0] = color[0]/255. color[1] = color[1]/255. color[2] = color[2]/255. self.add_events( Gdk.EventMask.LEAVE_NOTIFY_MASK | Gdk.EventMask.POINTER_MOTION_MASK | Gdk.EventMask.BUTTON_PRESS_MASK | Gdk.EventMask.BUTTON_RELEASE_MASK ) self.state = 0 self.connect("button_press_event", self.button_press) self.connect("button_release_event", self.button_release) self.connect("motion_notify_event", self.motion_notify) self.connect("leave_notify_event", self.motion_notify) self.connect("size-allocate", self.size_allocate) self.cords = [] self.hovered = None self.pressed = False self.spots = {} self.spotQueue = [] # For spots added prior to widget allocation self.xmarks = [] self.ymarks = [] self.set_visible_window(False) ############################################################################ # Drawing # ############################################################################ def redraw_canvas(self, prect=None): if self.get_window(): if not prect: alloc = self.get_allocation() prect = (0, 0, alloc.width, alloc.height) rect = Gdk.Rectangle() rect.x, rect.y, rect.width, rect.height = prect self.get_window().invalidate_rect(rect, True) self.get_window().process_updates(True) def expose(self, widget, ctx): context = widget.get_window().cairo_create() self.draw(context) return False def draw (self, context): alloc = self.get_allocation() width = alloc.width height = alloc.height #------------------------------------------------------ Paint side ruler context.move_to(alloc.x+line, alloc.y+line) context.rel_line_to(0, height-line*2-curve) context.rel_curve_to(0, curve, 0, curve, curve, curve) context.rel_line_to(width-line*2-curve, 0) sc = self.get_style_context() bool1, dark_prelight = sc.lookup_color("p_dark_prelight") bool1, fg_prelight = sc.lookup_color("p_fg_prelight") bool1, bg_prelight = sc.lookup_color("p_bg_prelight") context.set_line_width(line) context.set_line_cap(cairo.LINE_CAP_ROUND) state = self.state == Gtk.StateType.NORMAL and Gtk.StateType.PRELIGHT or self.state context.set_source_rgba(dark_prelight.red, dark_prelight.green, dark_prelight.blue, dark_prelight.alpha) context.stroke() #------------------------------------------------ Paint horizontal marks for x, title in self.xmarks: context.set_source_rgba(fg_prelight.red, fg_prelight.green, fg_prelight.blue, fg_prelight.alpha) context.set_font_size(12) x, y = self.prcToPix (x, 1) context.move_to (x+line/2., y-line/2.) context.rotate(-math.pi/2) context.show_text(title) context.rotate(math.pi/2) context.set_source_rgba(bg_prelight.red, bg_prelight.green, bg_prelight.blue, bg_prelight.alpha) context.move_to (x-line/2., y) context.rel_curve_to (6, 0, 6, line, 6, line) context.rel_curve_to (0, -line, 6, -line, 6, -line) context.close_path() context.fill() #-------------------------------------------------- Paint vertical marks for y, title in self.ymarks: context.set_source_rgba(fg_prelight.red, fg_prelight.green, fg_prelight.blue, fg_prelight.alpha) context.set_font_size(12) x, y = self.prcToPix (0, y) context.move_to (x+line/2., y+line/2.) context.show_text(title) context.set_source_rgba(bg_prelight.red, bg_prelight.green, bg_prelight.blue, bg_prelight.alpha) context.move_to (x, y-line/2.) context.rel_curve_to (0, 6, -line, 6, -line, 6) context.rel_curve_to (line, 0, line, 6, line, 6) context.close_path() context.fill() #----------------------------------------------------------- Paint spots context.set_line_width(dotSmall*lineprc) for x, y, type, name, text in self.spots.values(): context.set_source_rgb(*self.typeColors[type][0]) if self.hovered and name == self.hovered[3]: continue x, y = self.prcToPix (x, y) context.arc(x, y, dotSmall/(1+lineprc)/2., 0, 2 * math.pi) context.fill_preserve() context.set_source_rgb(*self.typeColors[type][1]) context.stroke() #--------------------------------------------------- Paint hovered spots context.set_line_width(dotLarge*lineprc) if self.hovered: x, y, type, name, text = self.hovered x, y = self.prcToPix (x, y) if not self.pressed: context.set_source_rgb(*self.typeColors[type][0]) else: context.set_source_rgb(*self.typeColors[type][1]) context.arc(x, y, dotLarge/(1+lineprc)/2., 0, 2 * math.pi) context.fill_preserve() context.set_source_rgb(*self.typeColors[type][1]) context.stroke() x, y, width, height = self.getTextBounds(self.hovered) sc = self.get_style_context() sc.save() sc.add_class(Gtk.STYLE_CLASS_NOTEBOOK) Gtk.render_background(sc, context, int(x-hpadding), int(y-vpadding), ceil(width+hpadding*2), ceil(height+vpadding*2)) Gtk.render_frame(sc, context, int(x-hpadding), int(y-vpadding), ceil(width+hpadding*2), ceil(height+vpadding*2)) sc.restore() context.move_to(x, y) context.set_source_rgba(fg_prelight.red, fg_prelight.green, fg_prelight.blue, fg_prelight.alpha) PangoCairo.show_layout(context, self.create_pango_layout(text)) ############################################################################ # Events # ############################################################################ def button_press (self, widget, event): alloc = self.get_allocation() self.cords = [event.x+alloc.x, event.y+alloc.y] self.pressed = True if self.hovered: self.redraw_canvas(self.getBounds(self.hovered)) def button_release (self, widget, event): alloc = self.get_allocation() self.cords = [event.x+alloc.x, event.y+alloc.y] self.pressed = False if self.hovered: self.redraw_canvas(self.getBounds(self.hovered)) if event.button == 1 and self.pointIsOnSpot (event.x+alloc.x, event.y+alloc.y, self.hovered): self.emit("spotClicked", self.hovered[3]) def motion_notify (self, widget, event): alloc = self.get_allocation() self.cords = [event.x+alloc.x, event.y+alloc.y] spot = self.getSpotAtPoint (*self.cords) if self.hovered and spot == self.hovered: return if self.hovered: bounds = self.getBounds(self.hovered) self.hovered = None self.redraw_canvas(bounds) if spot: self.hovered = spot self.redraw_canvas(self.getBounds(self.hovered)) def size_allocate (self, widget, allocation): assert self.get_allocation().width > 1 for spot in self.spotQueue: self.addSpot(*spot) del self.spotQueue[:] ############################################################################ # Interaction # ############################################################################ def addSpot (self, name, text, x0, y0, type=0): """ x and y are in % from 0 to 1 """ assert type in range(len(self.typeColors)) if self.get_allocation().width <= 1: self.spotQueue.append((name, text, x0, y0, type)) return x1, y1 = self.getNearestFreeNeighbourHexigon(x0, 1-y0) spot = (x1, y1, type, name, text) self.spots[name] = spot if not self.hovered and self.cords and \ self.pointIsOnSpot (self.cords[0], self.cords[1], spot): self.hovered = spot self.redraw_canvas(self.getBounds(spot)) def removeSpot (self, name): if not name in self.spots: return spot = self.spots.pop(name) bounds = self.getBounds(spot) if spot == self.hovered: self.hovered = None self.redraw_canvas(bounds) def clearSpots (self): self.hovered = None self.spots.clear() self.redraw_canvas() def addXMark (self, x, title): self.xmarks.append( (x, title) ) def addYMark (self, y, title): self.ymarks.append( (1-y, title) ) ############################################################################ # Internal stuff # ############################################################################ def getTextBounds (self, spot): x, y, type, name, text = spot x, y = self.prcToPix (x, y) alloc = self.get_allocation() width = alloc.width height = alloc.height extends = self.create_pango_layout(text).get_extents() scale = float(Pango.SCALE) x_bearing, y_bearing, twidth, theight = [extends[1].x/scale, extends[1].y/scale, extends[1].width/scale, extends[1].height/scale] tx = x - x_bearing + dotLarge/2. ty = y - y_bearing - theight - dotLarge/2. if tx + twidth > width and x - x_bearing - twidth - dotLarge/2. > alloc.x: tx = x - x_bearing - twidth - dotLarge/2. if ty < alloc.y: ty = y - y_bearing + dotLarge/2. return (tx, ty, twidth, theight) def join (self, r0, r1): x1 = min(r0[0], r1[0]) x2 = max(r0[0]+r0[2], r1[0]+r1[2]) y1 = min(r0[1], r1[1]) y2 = max(r0[1]+r0[3], r1[1]+r1[3]) return (x1, y1, x2 - x1, y2 - y1) def getBounds (self, spot): x, y, type, name, text = spot x, y = self.prcToPix (x, y) if spot == self.hovered: size = dotLarge else: size = dotSmall bounds = (x-size/2.-1, y-size/2.-1, size+2, size+2) if spot == self.hovered: x, y, w, h = self.getTextBounds(spot) tbounds = (x-hpadding, y-vpadding, w+hpadding*2+1, h+vpadding*2+1) return self.join(bounds, tbounds) return bounds def getNearestFreeNeighbourHexigon (self, xorg, yorg): """ This method performs an hexigon search for an empty place to put a new dot. """ x, y = self.prcToPix (xorg, yorg) # Start by testing current spot if self.isEmpty (x, y): return xorg, yorg directions = [(math.cos((i+2)*math.pi/3), math.sin((i+2)*math.pi/3)) for i in range(6)] level = 1 while True: x += dotSmall for dx, dy in directions: for i in range(level): if self.isEmpty (x, y): return self.pixToPrc (x, y) x += dx*dotSmall y += dy*dotSmall level += 1 def getNearestFreeNeighbourArchi (self, xorg, yorg): """ This method performs an archimedes-spircal search for an empty place to put a new dot. http://en.wikipedia.org/wiki/Archimedean_spiral """ xorg, yorg = self.prcToPix (xorg, yorg) # Start by testing current spot if self.isEmpty (xorg, yorg): return self.pixToPrc (xorg, yorg) r = 0 while True: # This is an approx to the equation # cos((r-s)/(2pi)) = (r^2+s^2-1)/(2*r*s) # which gives the next point on the spiral 1 away. r = (4*math.pi**3*r + r**2 + math.sqrt(16*math.pi**6 + 8*math.pi**3*r + r**4)) / (4*math.pi**3 + 2*r) x = r*math.cos(r)/(4*math.pi)*dotSmall + xorg y = r*math.sin(r)/(4*math.pi)*dotSmall + yorg if self.isEmpty (x, y): return self.pixToPrc (x, y) def getNearestFreeNeighbourSquare (self, xorg, yorg): """ This method performs a spircal search for an empty square to put a new dot. """ up = 2 right = 1 down = 1 left = 2 x, y = self.prcToPix (xorg, yorg) # Start by testing current spot if self.isEmpty (x, y): return self.pixToPrc (x, y) while True: for i in range(right): x += dotSmall if self.isEmpty (x, y): return self.pixToPrc (x, y) for i in range(down): y += dotSmall if self.isEmpty (x, y): return self.pixToPrc (x, y) for i in range(left): x -= dotSmall if self.isEmpty (x, y): return self.pixToPrc (x, y) for i in range(up): y -= dotSmall if self.isEmpty (x, y): return self.pixToPrc (x, y) # Grow spiral bounds right += 2 down += 2 left += 2 up += 2 def isEmpty (self, x0, y0): """ Returns true if a spot placed on (x, y) is inside the graph and not intersecting with other spots. x and y should be in pixels, not percent """ # Make sure spiral search don't put dots outside the graph x, y = self.prcToPix(0,0) w, h = self.prcToPix(1,1) if not x <= x0 <= w or not y <= y0 <= h: return False # Tests if the spot intersects any other spots for x1, y1, type, name, text in self.spots.values(): x1, y1 = self.prcToPix(x1, y1) if (x1-x0)**2 + (y1-y0)**2 < dotSmall**2 - 0.1: return False return True def pointIsOnSpot (self, x0, y0, spot): """ Returns true if (x, y) is inside the spot 'spot'. The size of the spot is determined based on its hoverness. x and y should be in pixels, not percent """ if spot == self.hovered: size = dotLarge else: size = dotSmall x1, y1, type, name, text = spot x1, y1 = self.prcToPix(x1, y1) if (x1-x0)**2 + (y1-y0)**2 <= (size/2.)**2: return True return False def getSpotAtPoint (self, x, y): """ Returns the spot embrace (x, y) if any. Otherwise it returns None. x and y should be in pixels, not percent """ if self.hovered and self.pointIsOnSpot(x, y, self.hovered): return self.hovered for spot in self.spots.values(): if spot == self.hovered: continue if self.pointIsOnSpot(x, y, spot): return spot return None def prcToPix (self, x, y): """ Translates from 0-1 cords to real world cords """ alloc = self.get_allocation() return x*(alloc.width - line*1.5-dotLarge*0.5) + line*1.5 + alloc.x, \ y*(alloc.height - line*1.5-dotLarge*0.5) + dotLarge*0.5 + alloc.y def pixToPrc (self, x, y): """ Translates from real world cords to 0-1 cords """ alloc = self.get_allocation() return (x - line*1.5 - alloc.x)/(alloc.width - line*1.5-dotLarge*0.5), \ (y - dotLarge*0.5 - alloc.y)/(alloc.height - line*1.5-dotLarge*0.5) if __name__ == "__main__": w = Gtk.Window() sc = w.get_style_context() data = "@define-color p_bg_color #ededed; \ @define-color p_light_color #ffffff; \ @define-color p_dark_color #a6a6a6; \ @define-color p_dark_prelight #a9a9a9; \ @define-color p_fg_prelight #313739; \ @define-color p_bg_prelight #ededed; \ @define-color p_bg_active #d6d6d6;" provider = Gtk.CssProvider.new() provider.load_from_data(data) sc.add_provider_for_screen(Gdk.Screen.get_default(), provider, Gtk.STYLE_PROVIDER_PRIORITY_APPLICATION) nb = Gtk.Notebook() w.add(nb) vb = Gtk.VBox() nb.append_page(vb, None) sg = SpotGraph() sg.addXMark(.5, "Center") sg.addYMark(.5, "Center") vb.pack_start(sg, True, True, 0) button = Gtk.Button("New Spot") def callback (button): if not hasattr(button, "nextnum"): button.nextnum = 0 else: button.nextnum += 1 sg.addSpot(str(button.nextnum), "Blablabla", 1, 1, 0) button.connect("clicked", callback) vb.pack_start(button, False, True, 0) w.connect("delete-event", Gtk.main_quit) w.show_all() w.resize(400,400) Gtk.main() pychess-0.12.2/lib/pychess/widgets/PromotionDialog.py0000755000175000017470000000411012641567764023143 0ustar tamasusers00000000000000from __future__ import absolute_import from gi.repository import Gtk from pychess.System import uistuff from pychess.System.prefix import addDataPrefix from pychess.Utils.Piece import Piece, KING, QUEEN, ROOK, BISHOP, KNIGHT from pychess.Utils.const import * from .PieceWidget import PieceWidget class PromotionDialog: def __init__(self, variant): self.widgets = uistuff.GladeWidgets("promotion.glade") self.dialog = self.widgets["promotionDialog"] self.color = None self.widgets["knightDock"].add(PieceWidget(Piece(WHITE, KNIGHT), variant)) self.widgets["knightDock"].get_child().show() self.widgets["bishopDock"].add(PieceWidget(Piece(WHITE, BISHOP), variant)) self.widgets["bishopDock"].get_child().show() self.widgets["rookDock"].add(PieceWidget(Piece(WHITE, ROOK), variant)) self.widgets["rookDock"].get_child().show() self.widgets["queenDock"].add(PieceWidget(Piece(WHITE, QUEEN), variant)) self.widgets["queenDock"].get_child().show() self.widgets["kingDock"].add(PieceWidget(Piece(WHITE, KING), variant)) self.widgets["kingDock"].get_child().show() def setColor(self, color): self.widgets["knightDock"].get_child().getPiece().color = color self.widgets["bishopDock"].get_child().getPiece().color = color self.widgets["rookDock"].get_child().getPiece().color = color self.widgets["queenDock"].get_child().getPiece().color = color self.widgets["kingDock"].get_child().getPiece().color = color def runAndHide(self, color, variant): self.setColor(color) if variant != SUICIDECHESS: self.widgets["button5"].hide() if variant == SITTUYINCHESS: self.widgets["button4"].hide() self.widgets["button3"].hide() self.widgets["button2"].hide() res = self.dialog.run() self.dialog.hide() if res != Gtk.ResponseType.DELETE_EVENT: return [QUEEN, ROOK, BISHOP, KNIGHT, KING][int(res)] return None pychess-0.12.2/lib/pychess/widgets/BoardView.py0000755000175000017470000017506012653135361021717 0ustar tamasusers00000000000000# -*- coding: UTF-8 -*- from __future__ import absolute_import from __future__ import print_function from math import floor, ceil, pi from time import time from threading import RLock import cairo from gi.repository import Gtk, Gdk, GLib, GObject, Pango, PangoCairo from pychess.System import conf from pychess.System.idle_add import idle_add from pychess.gfx import Pieces from pychess.Utils.Cord import Cord from pychess.Utils.GameModel import GameModel from pychess.Utils.const import ASEAN_VARIANTS, DROP_VARIANTS, WAITING_TO_START, REMOTE, \ LOCAL, DRAW, WHITEWON, BLACKWON, ABORTED, KILLED, DROP, \ KING_CASTLE, QUEEN_CASTLE, WILDCASTLESHUFFLECHESS, \ WILDCASTLECHESS, PAWN, KNIGHT, SITTUYINCHESS, BLACK from pychess.Variants.blindfold import BlindfoldBoard, HiddenPawnsBoard, \ HiddenPiecesBoard, AllWhiteBoard from . import preferencesDialog def intersects(r_zero, r_one): """ Takes two square and determines if they have an Intersection Returns a boolean """ w_zero = r_zero.width + r_zero.x h_zero = r_zero.height + r_zero.y w_one = r_one.width + r_one.x h_one = r_one.height + r_one.y return (w_one < r_one.x or w_one > r_zero.x) and \ (h_one < r_one.y or h_one > r_zero.y) and \ (w_zero < r_zero.x or w_zero > r_one.x) and \ (h_zero < r_zero.y or h_zero > r_one.y) def contains(r_zero, r_one): """ Takes two squares and determines if square one is contained within square zero Returns a boolean """ w_zero = r_zero.width + r_zero.x h_zero = r_zero.height + r_zero.y w_one = r_one.width + r_one.x h_one = r_one.height + r_one.y return r_zero.x <= r_one.x and w_zero >= w_one and \ r_zero.y <= r_one.y and h_zero >= h_one def union(r_zero, r_one): """ Takes 2 rectangles and returns a rectangle that represents the union of the two areas Returns a Gdk.Rectangle """ x_min = min(r_zero.x, r_one.x) y_min = min(r_zero.y, r_one.y) w_max = max(r_zero.x+r_zero.width, r_one.x+r_one.width) - x_min h_max = max(r_zero.y+r_zero.height, r_one.y+r_one.height) - y_min rct = Gdk.Rectangle() rct.x, rct.y, rct.width, rct.height = (x_min, y_min, w_max, h_max) return rct def join(r_zero, r_one): """ Take(x, y, w, [h]) squares """ if not r_zero: return r_one if not r_one: return r_zero if not r_zero and not r_one: return None if len(r_zero) == 3: r_zero = (r_zero[0], r_zero[1], r_zero[2], r_zero[2]) if len(r_one) == 3: r_one = (r_one[0], r_one[1], r_one[2], r_one[2]) x_one = min(r_zero[0], r_one[0]) x_two = max(r_zero[0]+r_zero[2], r_one[0]+r_one[2]) y_one = min(r_zero[1], r_one[1]) y_two = max(r_zero[1]+r_zero[3], r_one[1]+r_one[3]) return (x_one, y_one, x_two - x_one, y_two - y_one) def rect(rectangle): """ Takes a list of 3 variables x,y,height and generates a rectangle rectangle(list) : contains screen locations returns a Gdk.Rectangle """ x_size, y_size = [int(floor(v)) for v in rectangle[:2]] width = int(ceil(rectangle[2])) if len(rectangle) == 4: height = int(ceil(rectangle[3])) else: height = width rct = Gdk.Rectangle() rct.x, rct.y, rct.width, rct.height = (x_size, y_size, width, height) return rct def matrixAround(rotated_matrix, anchor_x, anchor_y): """ Description : Rotates a matrix through the hypotenuse so that the original matrix becomes the inverse matrix and the inverse matrix becomes matrix Returns a tuple representing the matrix and its inverse """ corner = rotated_matrix[0] side = rotated_matrix[1] anchor_yside = anchor_y*side anchor_xside = anchor_x*side anchor_ycorner = anchor_y*(1-corner) anchor_xcorner = anchor_x*(1-corner) matrix = cairo.Matrix(corner, side, -side, corner, \ anchor_xcorner+anchor_yside, \ anchor_ycorner-anchor_xside) invmatrix = cairo.Matrix(corner, -side, side, corner, \ anchor_xcorner-anchor_yside, \ anchor_ycorner+anchor_xside) return matrix, invmatrix ANIMATION_TIME = 0.5 # If this is true, the board is scaled so that everything fits inside the window # even if the board is rotated 45 degrees SCALE_ROTATED_BOARD = False CORD_PADDING = 1.5 class BoardView(Gtk.DrawingArea): """ Description The BoardView instance is used to render the board to screen and supports event updates associated with the game """ __gsignals__ = { # Signals emitted by class 'shownChanged' : (GObject.SignalFlags.RUN_FIRST, None, (int,)) } def __init__(self, gamemodel=None, preview=False, setup_position=False): GObject.GObject.__init__(self) if gamemodel is None: gamemodel = GameModel() self.model = gamemodel self.allwhite = self.model.variant == AllWhiteBoard self.asean = self.model.variant.variant in ASEAN_VARIANTS self.preview = preview self.setup_position = setup_position self.shown_variation_idx = 0 # the main variation is the first in gamemodel.variations list self.model.connect("game_started", self.gameStarted) self.model.connect("game_started", self.gameStartedAfter) self.model.connect("game_changed", self.gameChanged) self.model.connect("moves_undoing", self.movesUndoing) self.model.connect("game_loading", self.gameLoading) self.model.connect("game_loaded", self.gameLoaded) self.model.connect("game_ended", self.gameEnded) self.connect("draw", self.expose) self.connect_after("realize", self.onRealized) conf.notify_add("showCords", self.onShowCords) conf.notify_add("showCaptured", self.onShowCaptured) conf.notify_add("faceToFace", self.onFaceToFace) conf.notify_add("pieceTheme", self.onSetPieceTheme) conf.notify_add("lightcolour", self.onBoardColourTheme) conf.notify_add("darkcolour", self.onBoardColourTheme) self.RANKS = self.model.boards[0].RANKS self.FILES = self.model.boards[0].FILES self.animimation_id = -1 self._do_stop = False self.animation_start = time() self.last_shown = None self.deadlist = [] self.auto_update_shown = True self.real_set_shown = True # only false when self.shown set temporarily(change shown variation) # to avoid redraw_misc in animation self.padding = 0 # Set to self.pad when setcords is active self.square = 0, 0, self.FILES, 1 # An object global variable with the current # board size self.pad = 0.13 # Padding applied only when setcords is active self._selected = None self._hover = None self._active = None self._premove0 = None self._premove1 = None self._redarrow = None self._greenarrow = None self._bluearrow = None self._shown = self.model.ply self._show_cords = False self.show_cords = conf.get("showCords", False) self._show_captured = False if self.preview: self.showCaptured = False else: self.showCaptured = conf.get("showCaptured", False) or \ self.model.variant.variant in DROP_VARIANTS self._show_enpassant = False self.lastMove = None self.matrix = cairo.Matrix() self.matrix_pi = cairo.Matrix.init_rotate(pi) self.invmatrix = cairo.Matrix().invert() self.cord_matrices_state = (0, 0) self._rotation = 0 self.drawcount = 0 self.drawtime = 0 self.got_started = False self.animation_lock = RLock() self.animating = False self.dragged_piece = None # a piece being dragged by the user self.premove_piece = None self.premove_promotion = None @idle_add def gameStartedAfter(self, model): # reenable shrinking the board self.set_size_request(-1, -1) self.emit("shownChanged", self.shown) def gameStarted(self, model): if conf.get("noAnimation", False): self.got_started = True self.redrawCanvas() else: if model.moves: self.lastMove = model.moves[-1] with self.animation_lock: for row in self.model.boards[-1].data: for piece in row.values(): #row: if piece: piece.opacity = 0 self.got_started = True self.startAnimation() def gameChanged(self, model, ply): # Play sounds if self.model.players and self.model.status != WAITING_TO_START: move = model.moves[-1] if move.is_capture(model.boards[-2]): sound = "aPlayerCaptures" else: sound = "aPlayerMoves" if model.boards[-1].board.isChecked(): sound = "aPlayerChecks" if model.players[0].__type__ == REMOTE and \ model.players[1].__type__ == REMOTE: sound = "observedMoves" preferencesDialog.SoundTab.playAction(sound) # Auto updating self.shown can be disabled. Useful for loading games. # If we are not at the latest game we are probably browsing the history, # and we won't like auto updating. if self.auto_update_shown and self.shown+1 >= ply and self.shownIsMainLine(): self.shown = ply # Rotate board if conf.get("autoRotate", True): if self.model.players and self.model.curplayer.__type__ == LOCAL: self.rotation = self.model.boards[-1].color * pi def movesUndoing(self, model, moves): if self.shownIsMainLine(): self.shown = model.ply-moves else: # Go back to the mainline to let animation system work board = model.getBoardAtPly(self.shown, self.shown_variation_idx) while board not in model.variations[0]: board = model.variations[self.shown_variation_idx][board.ply-model.lowply-1] self.shown = board.ply self.shown_variation_idx = 0 self.shown = model.ply-moves self.redrawCanvas() def gameLoading(self, model, uri): self.auto_update_shown = False def gameLoaded(self, model, uri): self.auto_update_shown = True self._shown = model.ply def gameEnded(self, model, reason): self.redrawCanvas() if self.model.players: sound = "" if model.status == DRAW: sound = "gameIsDrawn" elif model.status == WHITEWON: if model.players[0].__type__ == LOCAL: sound = "gameIsWon" elif model.players[1].__type__ == LOCAL: sound = "gameIsLost" elif model.status == BLACKWON: if model.players[1].__type__ == LOCAL: sound = "gameIsWon" elif model.players[0].__type__ == LOCAL: sound = "gameIsLost" elif model.status in (ABORTED, KILLED): sound = "gameIsLost" if model.status in (DRAW, WHITEWON, BLACKWON, KILLED, ABORTED) and \ model.players[0].__type__ == REMOTE and \ model.players[1].__type__ == REMOTE: sound = "oberservedEnds" # This should never be false, unless status is set to UNKNOWN or # something strange if sound != "": preferencesDialog.SoundTab.playAction(sound) def onShowCords(self, *args): """ Checks the configuration / preferences to see if the board co-ordinates should be displayed. """ self.show_cords = conf.get("showCords", False) def onShowCaptured(self, *args): """ Check the configuration / preferences to see if cthe captured pieces should be displayed """ self.showCaptured = conf.get("showCaptured", False) def onFaceToFace(self, *args): """ If the preference for pieces to be displayed facing each other has been set then refresh the board """ self.redrawCanvas() def onSetPieceTheme(self, *args): """ If the preference to display another chess set has been selected then refresh the board """ self.redrawCanvas() def onBoardColourTheme(self, *args): """ If the preference to display another set of board colours has been selected then refresh the board """ self.redrawCanvas() ############################### # Animation # ############################### def paintBoxAround(self, move): paint_box = self.cord2RectRelative(move.cord1) if move.flag != DROP: paint_box = join(paint_box, self.cord2RectRelative(move.cord0)) if move.flag in (KING_CASTLE, QUEEN_CASTLE): board = self.model.boards[-1].board color = board.color wildcastle = Cord(board.ini_kings[color]).x == 3 and \ board.variant in (WILDCASTLECHESS, WILDCASTLESHUFFLECHESS) if move.flag == KING_CASTLE: side = 0 if wildcastle else 1 paint_box = join(paint_box, self.cord2RectRelative(Cord(board.ini_rooks[color][side]))) paint_box = join(paint_box, self.cord2RectRelative(Cord(board.fin_rooks[color][side]))) paint_box = join(paint_box, self.cord2RectRelative(Cord(board.fin_kings[color][side]))) else: side = 1 if wildcastle else 0 paint_box = join(paint_box, self.cord2RectRelative(Cord(board.ini_rooks[color][side]))) paint_box = join(paint_box, self.cord2RectRelative(Cord(board.fin_rooks[color][side]))) paint_box = join(paint_box, self.cord2RectRelative(Cord(board.fin_kings[color][side]))) return paint_box def setShownBoard(self, board): """ Set shown to the index of the given board in board list. If the board belongs to a different variationd, adjust the shown variation index too. If board is in the main line, reset the shown variation idx to 0(the main line). """ if board in self.model.variations[self.shown_variation_idx]: # if the board to be shown is in the current shown variation, we are ok self.shown = self.model.variations[self.shown_variation_idx].index(board) + \ self.model.lowply if board in self.model.variations[0]: self.shown_variation_idx = 0 else: # else we have to go back first for vari in self.model.variations: if board in vari: # Go back to the common board of variations to let animation system work board_in_vari = board while board_in_vari not in self.model.variations[self.shown_variation_idx]: board_in_vari = vari[board_in_vari.ply-self.model.lowply-1] self.real_set_shown = False self.shown = board_in_vari.ply break # swich to the new variation self.shown_variation_idx = self.model.variations.index(vari) self.real_set_shown = True self.shown = self.model.variations[self.shown_variation_idx].index(board) + \ self.model.lowply def shownIsMainLine(self): return self.shown_variation_idx == 0 def _getShown(self): return self._shown def _setShown(self, shown): """Adjust the index in current variation board list.""" # We don't do anything if we are already showing the right ply if shown == self._shown: return # This would cause IndexErrors later if not self.model.lowply <= shown <= self.model.variations[self.shown_variation_idx][-1].ply: return # If there is only one board, we don't do any animation, but simply # redraw the entire board. Same if we are at first draw. if len(self.model.boards) == 1 or self.shown < self.model.lowply: self._shown = shown if shown > self.model.lowply: self.lastMove = self.model.getMoveAtPly(shown-1, self.shown_variation_idx) self.emit("shownChanged", self.shown) self.redrawCanvas() return step = shown > self.shown and 1 or -1 with self.animation_lock: deadset = set() for i in range(self.shown, shown, step): board = self.model.getBoardAtPly(i, self.shown_variation_idx) board1 = self.model.getBoardAtPly(i + step, self.shown_variation_idx) if step == 1: move = self.model.getMoveAtPly(i, self.shown_variation_idx) moved, new, dead = board.simulateMove(board1, move) else: move = self.model.getMoveAtPly(i-1, self.shown_variation_idx) moved, new, dead = board.simulateUnmove(board1, move) # We need to ensure, that the piece coordinate is saved in the # piece for piece, cord0 in moved: # Test if the piece already has a realcoord(has been dragged) if (piece is not None) and piece.x is None: # We don't want newly restored pieces to flew from their # deadspot to their old position, as it doesn't work # vice versa if piece.opacity == 1: piece.x = cord0.x piece.y = cord0.y for piece in dead: deadset.add(piece) # Reset the location of the piece to avoid a small visual # jump, when it is at some other time waken to life. piece.x = None piece.y = None for piece in new: piece.opacity = 0 self.deadlist = [] for y_loc, row in enumerate(self.model.getBoardAtPly(self.shown, \ self.shown_variation_idx).data): for x_loc, piece in row.items(): if piece in deadset: self.deadlist.append((piece, x_loc, y_loc)) self._shown = shown if self.real_set_shown: self.emit("shownChanged", self.shown) if self.animimation_id != -1: self._do_stop = True self.animation_start = time() self.animating = True if self.lastMove: paint_box = self.paintBoxAround(self.lastMove) self.lastMove = None self.redrawCanvas(rect(paint_box)) if self.shown > self.model.lowply: self.lastMove = self.model.getMoveAtPly(self.shown-1, self.shown_variation_idx) else: self.lastMove = None @idle_add def doSetShown(): self.runAnimation(redraw_misc=self.real_set_shown) if not conf.get("noAnimation", False): while self.animating: self.animimation_id = self.runAnimation() doSetShown() shown = property(_getShown, _setShown) def runAnimation(self, redraw_misc=False): """ The animationsystem in pychess is very loosely inspired by the one of chessmonk. The idea is, that every piece has a place in an array(the board.data one) for where to be drawn. If a piece is to be animated, it can set its x and y properties, to some cord(or part cord like 0.42 for 42% right to file 0). Each time runAnimation is run, it will set those x and y properties a little closer to the location in the array. When it has reached its final location, x and y will be set to None. _setShown, which starts the animation, also sets a timestamp for the acceleration to work properply. """ if self._do_stop: self._do_stop = False self.animimation_id = -1 return False with self.animation_lock: paint_box = None mod = min(1, (time()-self.animation_start)/ANIMATION_TIME) board = self.model.getBoardAtPly(self.shown, self.shown_variation_idx) for y_loc, row in enumerate(board.data): for x_loc, piece in row.items(): if not piece: continue if piece == self.dragged_piece: continue if piece == self.premove_piece: # if premove move is being made, the piece will already be #sitting on the cord it needs to move to- # do not animate and reset premove to None if self.shown == self.premove_ply: piece.x = None piece.y = None self.setPremove(None, None, None, None) continue # otherwise, animate premove piece moving to the premove cord # rather than the cord it actually exists on elif self.premove0 and self.premove1: x_loc = self.premove1.x y_loc = self.premove1.y if piece.x != None: if not conf.get("noAnimation", False): if piece.piece == KNIGHT: newx = piece.x + (x_loc - piece.x) * mod**(1.5) newy = piece.y + (y_loc - piece.y) * mod else: newx = piece.x + (x_loc - piece.x) * mod newy = piece.y + (y_loc - piece.y) * mod else: newx, newy = x_loc, y_loc paint_box = join(paint_box, self.cord2RectRelative(piece.x,\ piece.y)) paint_box = join(paint_box, self.cord2RectRelative(newx, newy)) if (newx <= x_loc <= piece.x or newx >= x_loc >= piece.x) and \ (newy <= y_loc <= piece.y or newy >= y_loc >= piece.y) or \ abs(newx-x_loc) < 0.005 and abs(newy-y_loc) < 0.005: paint_box = join(paint_box, self.cord2RectRelative(x_loc, y_loc)) piece.x = None piece.y = None else: piece.x = newx piece.y = newy if piece.opacity < 1: if piece.x != None: px_loc = piece.x py_loc = piece.y else: px_loc = x_loc py_loc = y_loc if paint_box: paint_box = join(paint_box, self.cord2RectRelative(px_loc, py_loc)) else: paint_box = self.cord2RectRelative(px_loc, py_loc) if not conf.get("noAnimation", False): new_op = piece.opacity + (1 - piece.opacity) * mod else: new_op = 1 if new_op >= 1 >= piece.opacity or abs(1 - new_op) < 0.005: piece.opacity = 1 else: piece.opacity = new_op ready = [] for i, dead in enumerate(self.deadlist): piece, x_loc, y_loc = dead if not paint_box: paint_box = self.cord2RectRelative(x_loc, y_loc) else: paint_box = join(paint_box, self.cord2RectRelative(x_loc, y_loc)) if not conf.get("noAnimation", False): new_op = piece.opacity + (0 - piece.opacity) * mod else: new_op = 0 if new_op <= 0 <= piece.opacity or abs(0 - new_op) < 0.005: ready.append(dead) else: piece.opacity = new_op for dead in ready: self.deadlist.remove(dead) if paint_box: self.redrawCanvas(rect(paint_box)) if conf.get("noAnimation", False): self.animating = False return False else: if not paint_box: self.animating = False return paint_box and True or False def startAnimation(self): @idle_add def doStartAnimation(): self.runAnimation(redraw_misc=True) if not conf.get("noAnimation", False): while self.animating: self.animimation_id = self.runAnimation() self.animation_start = time() self.animating = True doStartAnimation() ############################# # Drawing # ############################# def onRealized(self, widget): padding = (1-self.padding) alloc = self.get_allocation() square = float(min(alloc.width, alloc.height)) * padding xc_loc = alloc.width/2. - square/2 yc_loc = alloc.height/2. - square/2 size = square/self.FILES self.square = (xc_loc, yc_loc, square, size) def expose(self, widget, ctx): context = widget.get_window().cairo_create() start = time() rectangle = Gdk.Rectangle() clip_ext = ctx.clip_extents() rectangle.x, rectangle.y = clip_ext[0], clip_ext[1] rectangle.width, rectangle.height = clip_ext[2] - clip_ext[0], clip_ext[3] - clip_ext[1] if False: import profile profile.runctx("self.draw(context, rectangle)", locals(), globals(), "/tmp/pychessprofile") from pstats import Stats stats = Stats("/tmp/pychessprofile") stats.sort_stats('cumulative') stats.print_stats() else: with self.animation_lock: self.draw(context, rectangle) #self.drawcount += 1 #self.drawtime += time() - start #if self.drawcount % 100 == 0: # print( "Average FPS: %0.3f - %d / %d" % \ # (self.drawcount/self.drawtime, self.drawcount, self.drawtime)) return False ############################################################################ # drawing functions # ############################################################################ ############################### # redrawCanvas # ############################### def redrawCanvas(self, rect=None): @idle_add def redraw(rect): if self.get_window(): if not rect: alloc = self.get_allocation() rect = Gdk.Rectangle() rect.x, rect.y, rect.width, rect.height = (0, 0, alloc.width, alloc.height) # self.queue_draw_area(r.x, r.y, r.width, r.height) self.get_window().invalidate_rect(rect, True) self.get_window().process_updates(True) redraw(rect) ############################### # draw # ############################### def draw(self, context, r): #context.set_antialias(cairo.ANTIALIAS_NONE) if self.shown < self.model.lowply: print("exiting cause to lowlpy", self.shown, self.model.lowply) return alloc = self.get_allocation() self.matrix, self.invmatrix = matrixAround( self.matrix, alloc.width/2., alloc.height/2.) cos_, sin_ = self.matrix[0], self.matrix[1] context.transform(self.matrix) if self.showCaptured: holding_size = (alloc.width/(self.FILES+6))*6 else: holding_size = 0 square = float(min(alloc.width - holding_size, alloc.height))*(1-self.padding) if SCALE_ROTATED_BOARD: square /= abs(cos_)+abs(sin_) xc_loc = alloc.width/2. - square/2 yc_loc = alloc.height/2. - square/2 side = square/self.FILES self.square = (xc_loc, yc_loc, square, side) self.drawBoard(context, r) if min(alloc.width, alloc.height) > 32: self.drawCords(context, r) if self.got_started: self.drawSpecial(context, r) self.drawEnpassant(context, r) self.drawArrows(context) with self.animation_lock: self.drawPieces(context, r) if not self.setup_position: self.drawLastMove(context, r) if self.model.status == KILLED: pass #self.drawCross(context, r) # Unselect to mark redrawn areas - for debugging purposes #context.transform(self.invmatrix) #context.rectangle(r.x,r.y,r.width,r.height) #dc = self.drawcount*50 #dc = dc % 1536 #c = dc % 256 / 255. #if dc < 256: # context.set_source_rgb(1, ,c,0) #elif dc < 512: # context.set_source_rgb(1-c,1, 0) #elif dc < 768: # context.set_source_rgb(0, 1,c) #elif dc < 1024: # context.set_source_rgb(0, 1-c,1) #elif dc < 1280: # context.set_source_rgb(c,0, 1) #elif dc < 1536: # context.set_source_rgb(1, 0, 1-c) #context.stroke() ############################### # drawCords # ############################### def drawCords(self, context, rectangle): thickness = 0.01 signsize = 0.04 if (not self.show_cords) and (not self.setup_position): return xc_loc, yc_loc, square, side = self.square if contains(rect((xc_loc, yc_loc, square)), rectangle): return thick = thickness*square sign_size = signsize*square context.rectangle(xc_loc-thick*1.5, yc_loc-thick*1.5, square+thick*3, square+thick*3) style_ctxt = self.get_style_context() dcolor = style_ctxt.lookup_color("p_dark_color")[1] dcolor = Gdk.RGBA() dcolor.parse(conf.get("darkcolour", "#000000000000")) context.set_source_rgba(dcolor.red, dcolor.green, dcolor.blue, dcolor.alpha) context.set_line_width(thick) context.set_line_join(cairo.LINE_JOIN_ROUND) context.stroke() pangoScale = float(Pango.SCALE) def paint(inv): for num in range(self.RANKS): rank = inv and num+1 or self.RANKS-num layout = self.create_pango_layout("%d" % rank) layout.set_font_description( Pango.FontDescription("bold %d" % sign_size)) width = layout.get_extents()[1].width/pangoScale height = layout.get_extents()[0].height/pangoScale # Draw left side context.move_to(xc_loc - thick * 2.5 - width, side * num + yc_loc + height/2 +thick) PangoCairo.show_layout(context, layout) # Draw right side #context.move_to(xc_loc+square+thick*2.5, side*num+yc_loc+h/2+thick) #context.show_layout(layout) file = inv and self.FILES-num or num+1 layout = self.create_pango_layout(chr(file+ord("A")-1)) layout.set_font_description( Pango.FontDescription("bold %d" % sign_size)) width = layout.get_pixel_size()[0] height = layout.get_pixel_size()[1] y_attr = layout.get_extents()[1].y/pangoScale # Draw top #context.move_to(xc_loc+side*num+side/2.-width/2., yc_loc-height-thick*1.5) #context.show_layout(layout) # Draw bottom context.move_to(xc_loc + side * num + side/2. - width/2., \ yc_loc + square + thick * 1.5 + abs(y_attr)) PangoCairo.show_layout(context, layout) matrix, invmatrix = matrixAround(self.matrix_pi, xc_loc+square/2., yc_loc+square/2.) paint(False) context.transform(matrix) paint(True) context.transform(invmatrix) ############################### # drawBoard # ############################### def drawBoard(self, context, r): xc_loc, yc_loc, square, side = self.square style_ctxt = self.get_style_context() col = Gdk.RGBA() col.parse(conf.get("lightcolour", "#ffffffffffff")) context.set_source_rgba(col.red, col.green, col.blue, col.alpha) if self.model.variant.variant in ASEAN_VARIANTS: # just fill the whole board with light color context.rectangle(xc_loc, yc_loc, side * self.FILES, side * self.RANKS) context.fill() else: # light squares for x_loc in range(self.FILES): for y_loc in range(self.RANKS): if x_loc % 2 + y_loc % 2 != 1: context.rectangle(xc_loc + x_loc * side, yc_loc + y_loc * side, side, side) context.fill() col = style_ctxt.lookup_color("p_dark_color")[1] col = Gdk.RGBA() col.parse(conf.get("darkcolour", "#000000000000")) context.set_source_rgba(col.red, col.green, col.blue, col.alpha) if self.model.variant.variant in ASEAN_VARIANTS: # just unfilled rectangles for x_loc in range(self.FILES): for y_loc in range(self.RANKS): context.rectangle((xc_loc + x_loc * side), (yc_loc + y_loc * side), side, side) # diagonals if self.model.variant.variant == SITTUYINCHESS: context.move_to(xc_loc, yc_loc) context.rel_line_to(square, square) context.move_to(xc_loc+square, yc_loc) context.rel_line_to(-square, square) context.stroke() else: # dark squares for x_loc in range(self.FILES): for y_loc in range(self.RANKS): if x_loc % 2 + y_loc % 2 == 1: context.rectangle((xc_loc + x_loc * side), \ (yc_loc + y_loc * side), side, side) context.fill() context.rectangle(xc_loc, yc_loc, self.FILES*side, self.RANKS*side) context.stroke() ############################### # drawPieces # ############################### def getCordMatrices(self, x_loc, y_loc, inv=False): square, side = self.square[2], self.square[3] rot_ = self.cord_matrices_state[1] if square != self.square or rot_ != self.rotation: self.cord_matrices = [None] * self.FILES * self.RANKS + [None] * self.FILES*4 self.cord_matrices_state = (self.square, self.rotation) c_loc = x_loc * self.FILES + y_loc if isinstance(c_loc, int) and self.cord_matrices[c_loc]: matrices = self.cord_matrices[c_loc] else: cx_loc, cy_loc = self.cord2Point(x_loc, y_loc) matrices = matrixAround(self.matrix, cx_loc + side/2., cy_loc + side/2.) matrices += (cx_loc, cy_loc) if isinstance(c_loc, int): self.cord_matrices[c_loc] = matrices return matrices def __drawPiece(self, context, piece, x_loc, y_loc): # Maybe a premove was reset from another thread if piece is None: print("Trying to draw a None piece") return if self.model.variant == BlindfoldBoard: return elif self.model.variant == HiddenPawnsBoard: if piece.piece == PAWN: return elif self.model.variant == HiddenPiecesBoard: if piece.piece != PAWN: return if piece.captured and not self.showCaptured: return side = self.square[3] if not conf.get("faceToFace", False): matrix, invmatrix, cx_loc, cy_loc = self.getCordMatrices(x_loc, y_loc) else: cx_loc, cy_loc = self.cord2Point(x_loc, y_loc) if piece.color == BLACK: matrix, invmatrix = matrixAround((-1, 0), cx_loc + side/2., cy_loc + side/2.) else: matrix = invmatrix = cairo.Matrix(1, 0, 0, 1, 0, 0) context.transform(invmatrix) Pieces.drawPiece(piece, context, \ cx_loc + CORD_PADDING, cy_loc + CORD_PADDING,\ side - CORD_PADDING * 2, allwhite=self.allwhite, asean=self.asean) context.transform(matrix) def drawPieces(self, context, rectangle): pieces = self.model.getBoardAtPly(self.shown, self.shown_variation_idx) style_ctxt = self.get_style_context() col = style_ctxt.lookup_color("p_fg_color")[1] fg_n = (col.red, col.green, col.blue) fg_s = fg_n col = style_ctxt.lookup_color("p_fg_active")[1] fg_a = (col.red, col.green, col.blue) col = style_ctxt.lookup_color("p_fg_prelight")[1] fg_p = (col.red, col.green, col.blue) fg_m = fg_n # As default we use normal foreground for selected cords, as it looks # less confusing. However for some themes, the normal foreground is so # similar to the selected background, that we have to use the selected # foreground. col = style_ctxt.lookup_color("p_bg_selected")[1] bg_sl = (col.red, col.green, col.blue) col = style_ctxt.lookup_color("p_dark_selected")[1] bg_sd = (col.red, col.green, col.blue) if min((fg_n[0]-bg_sl[0])**2+(fg_n[1]-bg_sl[1])**2+(fg_n[2]-bg_sl[2])**2, (fg_n[0]-bg_sd[0])**2+(fg_n[1]-bg_sd[1])**2+(fg_n[2]-bg_sd[2])**2) < 0.2: col = style_ctxt.lookup_color("p_fg_selected")[1] fg_s = (col.red, col.green, col.blue) # Draw dying pieces(Found in self.deadlist) for piece, x_loc, y_loc in self.deadlist: context.set_source_rgba(fg_n[0], fg_n[1], fg_n[2], piece.opacity) self.__drawPiece(context, piece, x_loc, y_loc) # Draw pieces reincarnating(With opacity < 1) for y_loc, row in enumerate(pieces.data): for x_loc, piece in row.items(): if not piece or piece.opacity == 1: continue if piece.x: x_loc, y_loc = piece.x, piece.y context.set_source_rgba(fg_n[0], fg_n[1], fg_n[2], piece.opacity) self.__drawPiece(context, piece, x_loc, y_loc) # Draw standing pieces(Only those who intersect drawn area) for y_loc, row in enumerate(pieces.data): for x_loc, piece in row.items(): if piece == self.premove_piece: continue if not piece or piece.x != None or piece.opacity < 1: continue if not intersects(rect(self.cord2RectRelative(x_loc, y_loc)), rectangle): continue if Cord(x_loc, y_loc) == self.selected: context.set_source_rgb(*fg_s) elif Cord(x_loc, y_loc) == self.active: context.set_source_rgb(*fg_a) elif Cord(x_loc, y_loc) == self.hover: context.set_source_rgb(*fg_p) else: context.set_source_rgb(*fg_n) self.__drawPiece(context, piece, x_loc, y_loc) # Draw moving or dragged pieces(Those with piece.x and piece.y != None) context.set_source_rgb(*fg_p) for y_loc, row in enumerate(pieces.data): for x_loc, piece in row.items(): if not piece or piece.x is None or piece.opacity < 1: continue self.__drawPiece(context, piece, piece.x, piece.y) # Draw standing premove piece context.set_source_rgb(*fg_m) if self.premove_piece and self.premove_piece.x is None and self.premove0 and self.premove1: self.__drawPiece(context, self.premove_piece, self.premove1.x, self.premove1.y) ############################### # drawSpecial # ############################### def drawSpecial(self, context, redrawn): light_blue = (0.550, 0.775, 0.950, 0.8) dark_blue = (0.475, 0.700, 0.950, 0.5) used = [] for cord, state in ((self.active, "_active"), (self.selected, "_selected"), (self.premove0, "_selected"), (self.premove1, "_selected"), (self.hover, "_prelight")): if not cord: continue if cord in used: continue # Ensure that same cord, if having multiple "tasks", doesn't get # painted more than once used.append(cord) bounding = self.cord2RectRelative(cord) if not intersects(rect(bounding), redrawn): continue board = self.model.getBoardAtPly(self.shown, self.shown_variation_idx) if board[cord] is None and (cord.x < 0 or cord.x > self.FILES-1): continue side = self.square[3] x_loc, y_loc = self.cord2Point(cord) context.rectangle(x_loc, y_loc, side, side) if cord == self.premove0 or cord == self.premove1: if self.isLight(cord): context.set_source_rgba(*light_blue) else: context.set_source_rgba(*dark_blue) else: style_ctxt = self.get_style_context() if self.isLight(cord): # bg found, color = style_ctxt.lookup_color("p_bg" + state) else: # dark found, color = style_ctxt.lookup_color("p_dark" + state) if not found: print("color not found in boardview.py:", "p_dark" + state) red, green, blue, alpha = color.red, color.green, color.blue, color.alpha context.set_source_rgba(red, green, blue, alpha) context.fill() ############################### # drawLastMove # ############################### def drawLastMove(self, context, redrawn): if not self.lastMove: return if self.shown <= self.model.lowply: return show_board = self.model.getBoardAtPly(self.shown, self.shown_variation_idx) last_board = self.model.getBoardAtPly(self.shown - 1, self.shown_variation_idx) capture = self.lastMove.is_capture(last_board) mark_width = 0.27 # Width of marker padding_last = 0.155 # Padding on last cord padding_curr = 0.085 # Padding on current cord stroke_width = 0.02 # Stroke width side = self.square[3] context.save() context.set_line_width(stroke_width * side) dic0 = {-1:1-padding_last, 1:padding_last} dic1 = {-1:1-padding_curr, 1:padding_curr} matrix_scaler = ((1, 1), (-1, 1), (-1, -1), (1, -1)) light_yellow = (.929, .831, 0, 0.8) dark_yellow = (.769, .627, 0, 0.5) light_orange = (.961, .475, 0, 0.8) dark_orange = (.808, .361, 0, 0.5) light_green = (0.337, 0.612, 0.117, 0.8) dark_green = (0.237, 0.512, 0.17, 0.5) if self.lastMove.flag in (KING_CASTLE, QUEEN_CASTLE): ksq0 = last_board.board.kings[last_board.color] ksq1 = show_board.board.kings[last_board.color] wildcastle = Cord(last_board.board.ini_kings[last_board.color]).x == 3 and \ last_board.variant in (WILDCASTLECHESS, WILDCASTLESHUFFLECHESS) if self.lastMove.flag == KING_CASTLE: side = 0 if wildcastle else 1 rsq0 = show_board.board.ini_rooks[last_board.color][side] rsq1 = show_board.board.fin_rooks[last_board.color][side] else: side = 1 if wildcastle else 0 rsq0 = show_board.board.ini_rooks[last_board.color][side] rsq1 = show_board.board.fin_rooks[last_board.color][side] cord_pairs = [[Cord(ksq0), Cord(ksq1)], [Cord(rsq0), Cord(rsq1)]] else: cord_pairs = [[self.lastMove.cord0, self.lastMove.cord1]] for [cord0, cord1] in cord_pairs: if cord0 is not None: rel = self.cord2RectRelative(cord0) if intersects(rect(rel), redrawn): rectangle = self.cord2Rect(cord0) for scaler in matrix_scaler: context.move_to( rectangle[0]+(dic0[scaler[0]]+mark_width*scaler[0])*rectangle[2], rectangle[1]+(dic0[scaler[1]]+mark_width*scaler[1])*rectangle[2]) context.rel_line_to( 0, -mark_width*rectangle[2]*scaler[1]) context.rel_curve_to(0, mark_width*rectangle[2]*scaler[1]/2.0, \ -mark_width*rectangle[2]*scaler[0]/2.0, \ mark_width*rectangle[2]*scaler[1], \ -mark_width*rectangle[2]*scaler[0], \ mark_width*rectangle[2]*scaler[1]) context.close_path() context.set_source_rgba(*light_yellow) context.fill_preserve() context.set_source_rgba(*dark_yellow) context.stroke() rel = self.cord2RectRelative(cord1) if intersects(rect(rel), redrawn): rectangle = self.cord2Rect(cord1) for scaler in matrix_scaler: context.move_to( rectangle[0]+dic1[scaler[0]]*rectangle[2], rectangle[1]+dic1[scaler[1]]*rectangle[2]) context.rel_line_to( mark_width*rectangle[2]*scaler[0], 0) context.rel_curve_to( -mark_width*rectangle[2]*scaler[0]/2.0, 0, -mark_width*rectangle[2]*scaler[0], mark_width*rectangle[2]*scaler[1]/2.0, -mark_width*rectangle[2]*scaler[0], mark_width*rectangle[2]*scaler[1]) context.close_path() if capture: context.set_source_rgba(*light_orange) context.fill_preserve() context.set_source_rgba(*dark_orange) context.stroke() elif cord0 is None: # DROP move context.set_source_rgba(*light_green) context.fill_preserve() context.set_source_rgba(*dark_green) context.stroke() else: context.set_source_rgba(*light_yellow) context.fill_preserve() context.set_source_rgba(*dark_yellow) context.stroke() ############################### # drawArrows # ############################### def __drawArrow(self, context, cords, aw, ahw, ahh, asw, fillc, strkc): context.save() lvx = cords[1].x - cords[0].x lvy = cords[0].y - cords[1].y hypotenuse = float((lvx**2 + lvy**2)**.5) vec_x = lvx/hypotenuse vec_y = lvy/hypotenuse v1x = -vec_y v1y = vec_x rectangle = self.cord2Rect(cords[0]) px_loc = rectangle[0] + rectangle[2]/2.0 py_loc = rectangle[1] + rectangle[2]/2.0 ax_loc = v1x * rectangle[2] * aw/2 ay_loc = v1y * rectangle[2] * aw/2 context.move_to(px_loc + ax_loc, py_loc + ay_loc) p1x = px_loc + (lvx - vec_x * ahh) * rectangle[2] p1y = py_loc + (lvy - vec_y * ahh) * rectangle[2] context.line_to(p1x + ax_loc, p1y + ay_loc) lax = v1x * rectangle[2] * ahw/2 lay = v1y * rectangle[2] * ahw/2 context.line_to(p1x + lax, p1y + lay) context.line_to(px_loc + lvx * rectangle[2], py_loc + lvy * rectangle[2]) context.line_to(p1x - lax, p1y - lay) context.line_to(p1x - ax_loc, p1y - ay_loc) context.line_to(px_loc - ax_loc, py_loc - ay_loc) context.close_path() context.set_source_rgba(*fillc) context.fill_preserve() context.set_line_join(cairo.LINE_JOIN_ROUND) context.set_line_width(asw*rectangle[2]) context.set_source_rgba(*strkc) context.stroke() context.restore() def drawArrows(self, context): # TODO: Only redraw when intersecting with the redrawn area arw = 0.3 # Arrow width arhw = 0.72 # Arrow head width arhh = 0.64 # Arrow head height arsw = 0.08 # Arrow stroke width if self.bluearrow: self.__drawArrow(context, self.bluearrow, arw, arhw, arhh, arsw, (.447, .624, .812, 0.9), (.204, .396, .643, 1)) # if self.shown != self.model.ply or \ # self.model.boards != self.model.variations[0]: # return if self.greenarrow: self.__drawArrow(context, self.greenarrow, arw, arhw, arhh, arsw, (.54, .886, .2, 0.9), (.306, .604, .024, 1)) if self.redarrow: self.__drawArrow(context, self.redarrow, arw, arhw, arhh, arsw, (.937, .16, .16, 0.9), (.643, 0, 0, 1)) ############################### # drawEnpassant # ############################### def drawEnpassant(self, context, redrawn): if not self.showEnpassant: return enpassant = self.model.boards[-1].enpassant if not enpassant: return context.set_source_rgb(0, 0, 0) side = self.square[3] x_loc, y_loc = self.cord2Point(enpassant) if not intersects(rect((x_loc, y_loc, side, side)), redrawn): return x_loc, y_loc = self.cord2Point(enpassant) crr = context crr.set_font_size(side/2.) fdescent, fheight = crr.font_extents()[1], crr.font_extents()[2] chars = "en" xbearing, width = crr.text_extents(chars)[0], crr.text_extents(chars)[2] crr.move_to(x_loc + side / 2. - xbearing - width / 2.-1, \ side / 2. + y_loc - fdescent + fheight / 2.) crr.show_text(chars) ############################### # drawCross # ############################### def drawCross(self, context, redrawn): xc_loc, yc_loc, square, side = self.square context.move_to(xc_loc, yc_loc) context.rel_line_to(square, square) context.move_to(xc_loc+square, yc_loc) context.rel_line_to(-square, square) context.set_line_cap(cairo.LINE_CAP_SQUARE) context.set_source_rgba(0, 0, 0, 0.65) context.set_line_width(side) context.stroke_preserve() context.set_source_rgba(1, 0, 0, 0.8) context.set_line_width(side/2.) context.stroke() ############################################################################ # Attributes # ############################################################################ ############################### # Cord vars # ############################### def _setSelected(self, cord): self._active = None if self._selected == cord: return if self._selected: rectangle = rect(self.cord2RectRelative(self._selected)) if cord: rectangle = union(rectangle, rect(self.cord2RectRelative(cord))) elif cord: rectangle = rect(self.cord2RectRelative(cord)) self._selected = cord self.redrawCanvas(rectangle) def _getSelected(self): return self._selected selected = property(_getSelected, _setSelected) def _setHover(self, cord): if self._hover == cord: return if self._hover: rectangle = rect(self.cord2RectRelative(self._hover)) # convert r from tuple to rect #tmpr = r #r = Gdk.Rectangle() #r.x, r.y, r.width, r.height = tmpr #if cord: r = r.union(rect(self.cord2RectRelative(cord))) if cord: rectangle = union(rectangle, rect(self.cord2RectRelative(cord))) elif cord: rectangle = rect(self.cord2RectRelative(cord)) # convert r from tuple to rect #tmpr = r #r = Gdk.Rectangle() #r.x, r.y, r.width, r.height = tmpr self._hover = cord self.redrawCanvas(rectangle) def _getHover(self): return self._hover hover = property(_getHover, _setHover) def _setActive(self, cord): if self._active == cord: return if self._active: rectangle = rect(self.cord2RectRelative(self._active)) if cord: rectangle = union(rectangle, rect(self.cord2RectRelative(cord))) elif cord: rectangle = rect(self.cord2RectRelative(cord)) self._active = cord self.redrawCanvas(rectangle) def _getActive(self): return self._active active = property(_getActive, _setActive) def _setPremove0(self, cord): if self._premove0 == cord: return if self._premove0: rectangle = rect(self.cord2RectRelative(self._premove0)) if cord: rectangle = union(rectangle, rect(self.cord2RectRelative(cord))) elif cord: rectangle = rect(self.cord2RectRelative(cord)) self._premove0 = cord self.redrawCanvas(rectangle) def _getPremove0(self): return self._premove0 premove0 = property(_getPremove0, _setPremove0) def _setPremove1(self, cord): if self._premove1 == cord: return if self._premove1: rectangle = rect(self.cord2RectRelative(self._premove1)) if cord: rectangle = union(rectangle, rect(self.cord2RectRelative(cord))) elif cord: rectangle = rect(self.cord2RectRelative(cord)) self._premove1 = cord self.redrawCanvas(rectangle) def _getPremove1(self): return self._premove1 premove1 = property(_getPremove1, _setPremove1) ################################ # Arrow vars # ################################ def _setRedarrow(self, cords): if cords == self._redarrow: return paint_cords = [] if cords: paint_cords += cords if self._redarrow: paint_cords += self._redarrow rectangle = rect(self.cord2RectRelative(paint_cords[0])) for cord in paint_cords[1:]: rectangle = union(rectangle, rect(self.cord2RectRelative(cord))) self._redarrow = cords self.redrawCanvas(rectangle) def _getRedarrow(self): return self._redarrow redarrow = property(_getRedarrow, _setRedarrow) def _setGreenarrow(self, cords): if cords == self._greenarrow: return paint_cords = [] if cords: paint_cords += cords if self._greenarrow: paint_cords += self._greenarrow rectangle = rect(self.cord2RectRelative(paint_cords[0])) for cord in paint_cords[1:]: rectangle = union(rectangle, rect(self.cord2RectRelative(cord))) self._greenarrow = cords self.redrawCanvas(rectangle) def _getGreenarrow(self): return self._greenarrow greenarrow = property(_getGreenarrow, _setGreenarrow) def _setBluearrow(self, cords): if cords == self._bluearrow: return paint_cords = [] if cords: paint_cords += cords if self._bluearrow: paint_cords += self._bluearrow rectangle = rect(self.cord2RectRelative(paint_cords[0])) for cord in paint_cords[1:]: rectangle = union(rectangle, rect(self.cord2RectRelative(cord))) self._bluearrow = cords self.redrawCanvas(rectangle) def _getBluearrow(self): return self._bluearrow bluearrow = property(_getBluearrow, _setBluearrow) ################################ # Other vars # ################################ def _setRotation(self, radians): if not conf.get("fullAnimation", True): def rotate(): self._rotation = radians self.next_rotation = radians self.matrix = cairo.Matrix.init_rotate(radians) self.redrawCanvas() GLib.idle_add(rotate) else: if hasattr(self, "next_rotation") and \ self.next_rotation != self.rotation: return self.next_rotation = radians oldr = self.rotation start = time() next = True def rotate(): amount = (time()-start)/ANIMATION_TIME if amount > 1: amount = 1 next = False else: next = True self._rotation = new = oldr + amount*(radians-oldr) self.matrix = cairo.Matrix.init_rotate(new) self.redrawCanvas() return next self.animating = True GLib.idle_add(rotate) def _getRotation(self): return self._rotation rotation = property(_getRotation, _setRotation) def _setShowCords(self, show_cords): if not show_cords: self.padding = 0. else: self.padding = self.pad self._show_cords = show_cords self.redrawCanvas() def _getShowCords(self): return self._show_cords show_cords = property(_getShowCords, _setShowCords) def _setShowCaptured(self, showCaptured): self._show_captured = showCaptured or self.model.variant.variant in DROP_VARIANTS files_for_holding = 6 if self._show_captured else 0 self.set_size_request(int(30*(self.FILES + files_for_holding)), 30*self.RANKS) self.redrawCanvas() def _getShowCaptured(self): return False if self.preview else self._show_captured showCaptured = property(_getShowCaptured, _setShowCaptured) def _setShowEnpassant(self, showEnpassant): if self._show_enpassant == showEnpassant: return if self.model: enpascord = self.model.boards[-1].enpassant if enpascord: rectangle = rect(self.cord2RectRelative(enpascord)) self.redrawCanvas(rectangle) self._show_enpassant = showEnpassant def _getShowEnpassant(self): return self._show_enpassant showEnpassant = property(_getShowEnpassant, _setShowEnpassant) ########################### # Other # ########################### def cord2Rect(self, cord, y_loc=None): if y_loc is None: x_loc, y_loc = cord.x, cord.y else: x_loc = cord xc_loc, yc_loc, side = self.square[0], self.square[1], self.square[3] return ((xc_loc + (x_loc * side)), (yc_loc + (self.RANKS - 1 - y_loc) * side), side) def cord2Point(self, cord, y_loc=None): point = self.cord2Rect(cord, y_loc) return point[:2] def cord2RectRelative(self, cord, y_loc=None): """ Like cord2Rect, but gives you bounding rect in case board is beeing Rotated """ if isinstance(cord, tuple): cx_loc, cy_loc, square = cord else: cx_loc, cy_loc, square = self.cord2Rect(cord, y_loc) x_zero, y_zero = self.matrix.transform_point(cx_loc, cy_loc) x_one, y_one = self.matrix.transform_point(cx_loc + square, cy_loc) x_two, y_two = self.matrix.transform_point(cx_loc, cy_loc + square) x_three, y_three = self.matrix.transform_point(cx_loc + square, cy_loc + square) x_loc = min(x_zero, x_one, x_two, x_three) y_loc = min(y_zero, y_one, y_two, y_three) square = max(y_zero, y_one, y_two, y_three) - y_loc return (x_loc, y_loc, square) def isLight(self, cord): """ Description: Given a board co-ordinate it returns True if the square at that co-ordinate is light Return : Boolean """ if self.model.variant.variant in ASEAN_VARIANTS: return False x_loc, y_loc = cord.cords return (x_loc % 2 + y_loc % 2) == 1 def showFirst(self): if self.model.examined and self.model.noTD: self.model.goFirst() else: self.shown = self.model.lowply self.shown_variation_idx = 0 def showPrev(self, step=1): if self.model.examined and self.model.noTD: self.model.goPrev(step) else: if self.shown > self.model.lowply: if self.shown - step > self.model.lowply: self.shown -= step else: self.shown = self.model.lowply if self.model.getBoardAtPly(self.shown, self.shown_variation_idx) in self.model.variations[0]: self.shown_variation_idx = 0 def showNext(self, step=1): if self.model.examined and self.model.noTD: self.model.goNext(step) else: maxply = self.model.variations[self.shown_variation_idx][-1].ply if self.shown < maxply: if self.shown + step < maxply: self.shown += step else: self.shown = maxply def showLast(self): if self.model.examined and self.model.noTD: self.model.goLast() else: maxply = self.model.variations[self.shown_variation_idx][-1].ply self.shown = maxply def backToMainLine(self): if self.model.examined and self.model.noTD: self.model.backToMainLine() else: while not self.shownIsMainLine(): self.showPrev() def setPremove(self, premove_piece, premove0, premove1, premove_ply, promotion=None): self.premove_piece = premove_piece self.premove0 = premove0 self.premove1 = premove1 self.premove_ply = premove_ply self.premove_promotion = promotion pychess-0.12.2/lib/pychess/widgets/ConsoleWindow.py0000644000175000017470000001276612652650213022624 0ustar tamasusers00000000000000from __future__ import absolute_import from gi.repository import Gtk from gi.repository import Gdk from gi.repository import GObject from gi.repository import Pango from pychess.System import uistuff from pychess.System.idle_add import idle_add from pychess.widgets import insert_formatted from pychess.widgets.Background import set_textview_color class ConsoleWindow (object): def __init__ (self, widgets, connection): self.connection = connection self.window = Gtk.Window() self.window.set_border_width(12) # ChatWindow uses this to check is_active() so don't touch this! self.window.set_icon_name("pychess") self.window.set_title("%s Console" % connection.ics_name) self.window.connect_after("delete-event", lambda w,e: w.hide() or True) uistuff.keepWindowSize("console", self.window, defaultSize=(700,400)) self.consoleView = ConsoleView(self.window, self.connection) self.window.add(self.consoleView) widgets["show_console_button"].connect("clicked", self.showConsole) connection.com.connect("consoleMessage", self.onConsoleMessage) connection.connect("disconnected", self.onDisconnected) @idle_add def onDisconnected(self, conn): if self.window: self.window.hide() def showConsole(self, *widget): self.window.show_all() self.window.present() self.consoleView.writeView.grab_focus() # scroll to the bottom adj = self.consoleView.sw.get_vadjustment() adj.set_value(adj.get_upper() - adj.get_page_size()) @staticmethod def filter_unprintable(s): return ''.join([c for c in s if ord(c) > 31 or ord(c) == 9]) def onConsoleMessage(self, com, lines, ini_lines=None): if ini_lines is not None: for line in ini_lines: self.consoleView.addMessage(line, False) for line in lines: line = self.filter_unprintable(line.line) if line and not line.startswith('<'): self.consoleView.addMessage(line, False) class ConsoleView (Gtk.Box): __gsignals__ = { 'messageAdded' : (GObject.SignalFlags.RUN_FIRST, None, (str,str,object)), 'messageTyped' : (GObject.SignalFlags.RUN_FIRST, None, (str,)) } def __init__ (self, window, connection): Gtk.Box.__init__(self, orientation=Gtk.Orientation.VERTICAL, spacing=6) self.window = window self.connection = connection # Inits the read view self.readView = Gtk.TextView() fontdesc = Pango.FontDescription("Monospace 10") self.readView.modify_font(fontdesc) self.textbuffer = self.readView.get_buffer() set_textview_color(self.readView) self.textbuffer.create_tag("text") self.textbuffer.create_tag("mytext", weight=Pango.Weight.BOLD) self.sw = Gtk.ScrolledWindow() self.sw.set_policy(Gtk.PolicyType.AUTOMATIC, Gtk.PolicyType.AUTOMATIC) self.sw.set_shadow_type(Gtk.ShadowType.ETCHED_IN) uistuff.keepDown(self.sw) self.sw.add(self.readView) self.readView.set_editable(False) self.readView.set_cursor_visible(False) self.readView.props.wrap_mode = Gtk.WrapMode.WORD self.pack_start(self.sw, True, True, 0) # Inits the write view self.history = [] self.pos = 0 self.writeView = Gtk.Entry() #self.writeView.set_width_chars(80) self.pack_start(self.writeView, False, True, 0) self.writeView.connect("key-press-event", self.onKeyPress) @idle_add def addMessage (self, text, my): tb = self.readView.get_buffer() iter = tb.get_end_iter() # Messages have linebreak before the text. This is opposite to log # messages if tb.props.text: tb.insert(iter, "\n") tag = "mytext" if my else "text" insert_formatted(self.readView, iter, text, tag=tag) # scroll to the bottom but only if we are not scrolled up to read back adj = self.sw.get_vadjustment() if adj.get_value() >= adj.get_upper() - adj.get_page_size() - 1e-12: iter = tb.get_end_iter() self.readView.scroll_to_iter(iter, 0.00, False, 1.00, 1.00) def onKeyPress (self, widget, event): if event.keyval in map(Gdk.keyval_from_name,("Return", "KP_Enter")): if not event.get_state() & Gdk.ModifierType.CONTROL_MASK: buffer = self.writeView.get_buffer() self.connection.client.run_command(buffer.props.text, show_reply=True) self.emit("messageTyped", buffer.props.text) self.addMessage(buffer.props.text, True) self.history.append(buffer.props.text) buffer.props.text = "" self.pos = len(self.history) return True elif event.keyval == Gdk.keyval_from_name("Up"): if self.pos > 0: buffer = self.writeView.get_buffer() self.pos -= 1 buffer.props.text = self.history[self.pos] widget.grab_focus() return True elif event.keyval == Gdk.keyval_from_name("Down"): buffer = self.writeView.get_buffer() if self.pos == len(self.history)-1: self.pos += 1 buffer.props.text = "" elif self.pos < len(self.history): self.pos += 1 buffer.props.text = self.history[self.pos] widget.grab_focus() return True pychess-0.12.2/lib/pychess/widgets/discovererDialog.py0000755000175000017470000000617712641567764023341 0ustar tamasusers00000000000000from __future__ import absolute_import import os from gi.repository import Gtk from pychess.Players.engineNest import discoverer from pychess.System import conf, uistuff from pychess.System.idle_add import idle_add from pychess.System.prefix import addDataPrefix class DiscovererDialog: @classmethod def init (cls, discoverer): assert not hasattr(cls, "widgets"), "Show can only be called once" cls.widgets = uistuff.GladeWidgets("discovererDialog.glade") #======================================================================= # Clear glade defaults #======================================================================= for child in cls.widgets["enginesTable"].get_children(): cls.widgets["enginesTable"].remove(child) #======================================================================= # Connect us to the discoverer #======================================================================= discoverer.connect("engine_discovered", cls._onEngineDiscovered) discoverer.connect("all_engines_discovered", cls._onAllEnginesDiscovered) cls.finished = False cls.throbber = None cls.nameToBar = {} @classmethod def show (cls, discoverer, mainwindow, binnames): if cls.finished: return #====================================================================== # Insert the names to be discovered #====================================================================== for i, name in enumerate(binnames): label = Gtk.Label(label=name+":") label.props.xalign = 1 cls.widgets["enginesTable"].attach(label, 0, 1, i, i+1) bar = Gtk.ProgressBar() cls.widgets["enginesTable"].attach(bar, 1, 2, i, i+1) cls.nameToBar[name] = bar #======================================================================= # Add throbber #======================================================================= cls.throbber = Gtk.Spinner() cls.throbber.set_size_request(50, 50) cls.widgets["throbberDock"].add(cls.throbber) #======================================================================= # Show the window #======================================================================= cls.widgets["discovererDialog"].set_position(Gtk.WindowPosition.CENTER_ON_PARENT) cls.widgets["discovererDialog"].set_modal(True) cls.widgets["discovererDialog"].set_transient_for(mainwindow) cls.widgets["discovererDialog"].show_all() cls.throbber.start() @classmethod @idle_add def _onEngineDiscovered (cls, discoverer, binname, xmlenginevalue): if binname in cls.nameToBar: bar = cls.nameToBar[binname] bar.props.fraction = 1 @classmethod @idle_add def _onAllEnginesDiscovered (cls, discoverer): cls.finished = True if cls.throbber: cls.throbber.stop() cls.widgets["discovererDialog"].hide() pychess-0.12.2/lib/pychess/widgets/ChainVBox.py0000755000175000017470000001553612641567764021674 0ustar tamasusers00000000000000from __future__ import absolute_import import cairo from gi.repository import Gtk from gi.repository import Gdk from gi.repository import GObject from pychess.System.prefix import addDataPrefix from pychess.System.idle_add import idle_add from pychess.widgets.BoardView import union from .BorderBox import BorderBox class ChainVBox (Gtk.VBox): """ Inspired by the GIMP chainbutton widget """ __gsignals__ = { 'clicked' : (GObject.SignalFlags.RUN_FIRST, None, ()) } def __init__ (self): GObject.GObject.__init__(self) chainline = ChainLine(CHAIN_TOP) self.pack_start(chainline, True, True, 0) self.button = Gtk.Button() self.pack_start(self.button, False, True, 0) chainline = ChainLine(CHAIN_BOTTOM) self.pack_start(chainline, True, True, 0) self.image = Gtk.Image() self.image.set_from_file(addDataPrefix("glade/stock-vchain-24.png")) self.button.set_image(self.image) self.button.set_relief(Gtk.ReliefStyle.NONE) self.button.set_property("yalign", 0) self._active = True self.button.connect("clicked", self.onClicked) def getActive (self): return self._active def setActive (self, active): assert isinstance(active, bool) self._active = active if self._active is True: self.image.set_from_file(addDataPrefix("glade/stock-vchain-24.png")) else: self.image.set_from_file(addDataPrefix("glade/stock-vchain-broken-24.png")) active = property(getActive, setActive) def onClicked (self, button): if self._active is False: self.image.set_from_file(addDataPrefix("glade/stock-vchain-24.png")) self._active = True else: self.image.set_from_file(addDataPrefix("glade/stock-vchain-broken-24.png")) self._active = False self.emit("clicked") CHAIN_TOP, CHAIN_BOTTOM = range(2) SHORT_LINE = 2 LONG_LINE = 8 class ChainLine (Gtk.Alignment): """ The ChainLine's are the little right-angle lines above and below the chain button that visually connect the ChainButton to the widgets who's values are "chained" together by the ChainButton being active """ def __init__ (self, position): GObject.GObject.__init__(self) self.position = position self.connect_after("size-allocate", self.on_size_allocate) self.connect_after("draw", self.on_draw) self.set_size_request(10,10) self.lastRectangle = None @idle_add def on_size_allocate(self, widget, requisition): if self.get_window(): a = self.get_allocation() rect = Gdk.Rectangle() rect.x, rect.y, rect.width, rect.height = (a.x, a.y, a.width, a.height) unionrect = union(self.lastRectangle, rect) if self.lastRectangle != None else rect self.get_window().invalidate_rect(unionrect, True) self.get_window().process_updates(True) self.lastRectangle = rect def on_draw (self, widget, context): self.draw(context) return False ### ### the original Gtk.Style.paint_polygon() way to draw, like The GIMP does it ### # def draw (self, widget, event): # a = self.get_allocation() ## print a.x, a.y, a.width, a.height # points = [None, None, None] # points[0] = (a.x + a.width/2 - SHORT_LINE, a.y + a.height/2) # points[1] = (points[0][0] + SHORT_LINE, points[0][1]) # points[2] = (points[1][0], self.position == CHAIN_TOP and a.y+a.height-1 or a.y) # if self.position == CHAIN_BOTTOM: # t = points[0] # points[0] = points[2] # points[2] = t ## print points # self.points = points # # style = widget.get_style() # style.paint_polygon(widget.get_parent_window(), # Gtk.StateType.NORMAL, # Gtk.ShadowType.ETCHED_OUT, # event.area, # widget, # "chainbutton", # points, # False) def __toAHalf (self, number): """ To draw thin straight lines in cairo that aren't blurry, you have to adjust the endpoints by 0.5: http://www.cairographics.org/FAQ/#sharp_lines """ return int(number) + 0.5 def draw (self, context): r = self.get_allocation() x = r.x y = r.y width = r.width - 1 height = r.height context.set_source_rgb(.2, .2, .2) # context.rectangle(0, 0, width, height) # context.fill() context.move_to(self.__toAHalf(x+width/2.)-LONG_LINE, self.__toAHalf(y+height/2.)) context.line_to(self.__toAHalf(x+width/2.), self.__toAHalf(y+height/2.)) if self.position == CHAIN_TOP: context.line_to(self.__toAHalf(x+width/2.), self.__toAHalf(float(y+height))) else: context.line_to(self.__toAHalf(x+width/2.), self.__toAHalf(y+0.)) context.set_line_width(1.0) context.set_line_cap(cairo.LINE_CAP_ROUND) context.set_line_join(cairo.LINE_JOIN_ROUND) context.stroke() def __str__ (self): a = self.get_allocation() s = "ChainLine(%s, %s, %s, %s" % (a.x, a.y, a.width, a.height) # if self.points != None: # points = [] # for a in self.points: # points.append("(%s, %s)" % (a[0], a[1])) # s += ", (" + ", ".join(points) + ")" s += (self.position == CHAIN_TOP and ", CHAIN_TOP" or ", CHAIN_BOTTOM") return s + ")" if __name__ == "__main__": win = Gtk.Window() chainvbox = ChainVBox() label = Gtk.Label(label="Locked") adjustment = Gtk.Adjustment(value=10, upper=100, lower=0, step_incr=1) spinbutton1 = Gtk.SpinButton(adjustment=adjustment) adjustment = Gtk.Adjustment(value=0, upper=100, lower=0, step_incr=1) spinbutton2 = Gtk.SpinButton(adjustment=adjustment) table = Gtk.Table(rows=3,columns=2) # table.attach(label,0,2,0,1) # table.attach(chainvbox,1,2,1,3) # table.attach(spinbutton1,0,1,1,2) # table.attach(spinbutton2,0,1,2,3) table.attach(label,0,2,0,1,xoptions=Gtk.AttachOptions.SHRINK) table.attach(chainvbox,1,2,1,3,xoptions=Gtk.AttachOptions.SHRINK) table.attach(spinbutton1,0,1,1,2,xoptions=Gtk.AttachOptions.SHRINK) table.attach(spinbutton2,0,1,2,3,xoptions=Gtk.AttachOptions.SHRINK) table.set_row_spacings(2) def onChainBoxClicked (*whatever): if chainvbox.active == False: label.set_label("Unlocked") else: label.set_label("Locked") chainvbox.connect("clicked", onChainBoxClicked) bb = BorderBox(widget=table) win.add(bb) # win.resize(150,100) win.connect("delete-event", Gtk.main_quit) win.show_all() Gtk.main() pychess-0.12.2/lib/pychess/widgets/ChatWindow.py0000755000175000017470000010375512652503536022110 0ustar tamasusers00000000000000import re from gi.repository import Gtk from gi.repository import Gdk from gi.repository import GObject from gi.repository import Pango from pychess.compat import cmp from pychess.Utils.IconLoader import load_icon from pychess.System import uistuff from pychess.System.idle_add import idle_add from pychess.System.Log import log from pychess.widgets import insert_formatted from pychess.widgets.ChatView import ChatView from pychess.widgets.pydock.PyDockTop import PyDockTop from pychess.widgets.pydock import NORTH, EAST, SOUTH, WEST, CENTER TYPE_PERSONAL, TYPE_CHANNEL , TYPE_GUEST , TYPE_ADMIN , TYPE_COMP , TYPE_BLINDFOLD = range(6) def get_playername (playername): m = re.match("(\w+)\W*", playername) return m.groups()[0] class BulletCellRenderer (Gtk.CellRenderer): __gproperties__ = { "color": (object, "Color", "Color", GObject.PARAM_READWRITE), } def __init__(self): GObject.GObject.__init__(self) self.color = None self.width = 16 self.height = 16 def do_set_property(self, pspec, value): setattr(self, pspec.name, value) def do_get_property(self, pspec): return getattr(self, pspec.name) def do_render(self, context, widget, bg_area, cell_area, flags): if not self.color: return x, y = self.get_size(widget, cell_area)[:2] r,g,b = self.color context.set_source_rgb (r,g,b) context.rectangle (x, y, self.width, self.height) context.fill() context.set_line_width (1) context.set_source_rgba (0, 0, 0, 0.5) context.rectangle (x+0.5, y+0.5, self.width-1, self.height-1) context.stroke () context.set_line_width (1) context.set_source_rgba (1, 1, 1, 0.5) context.rectangle (x+1.5, y+1.5, self.width-3, self.height-3) context.stroke () def on_get_size(self, widget, cell_area=None): if cell_area: y = int(cell_area.height/2.-self.height/2.) + cell_area.y x = cell_area.x else: y = 0 x = 0 return (x+1, y+1, self.width+2, self.height+2) GObject.type_register(BulletCellRenderer) add_icon = load_icon(16, "gtk-add", "list-add") remove_icon = load_icon(16, "gtk-remove", "list-remove") class TextImageTree (Gtk.TreeView): """ Defines a tree with two columns. The first one has text. The second one a clickable stock_icon """ __gsignals__ = { 'activated' : (GObject.SignalFlags.RUN_FIRST, None, (str,str,int)), 'selected' : (GObject.SignalFlags.RUN_FIRST, None, (str,int)) } def __init__(self, icon): GObject.GObject.__init__(self) self.id2iter = {} pm = Gtk.ListStore(str,str,int,str) self.sort_model = Gtk.TreeModelSort(model=pm) self.set_model(self.sort_model) self.idSet = set() self.set_headers_visible(False) self.set_tooltip_column(3) self.set_search_column(1) self.sort_model.set_sort_column_id(1, Gtk.SortType.ASCENDING) self.sort_model.set_sort_func(1, self.compareFunction, 1) # First column crt = Gtk.CellRendererText() crt.props.ellipsize = Pango.EllipsizeMode.END self.leftcol = Gtk.TreeViewColumn("", crt, text=1) self.leftcol.set_expand(True) self.append_column(self.leftcol) # Second column crp = Gtk.CellRendererPixbuf() crp.props.pixbuf = icon self.rightcol = Gtk.TreeViewColumn("", crp) self.append_column(self.rightcol) # Mouse self.pressed = None self.stdcursor = Gdk.Cursor.new(Gdk.CursorType.LEFT_PTR) self.linkcursor = Gdk.Cursor.new(Gdk.CursorType.HAND2) self.connect("button_press_event", self.button_press) self.connect("button_release_event", self.button_release) self.connect("motion_notify_event", self.motion_notify) self.connect("leave_notify_event", self.leave_notify) # Selection self.get_selection().connect("changed", self.selection_changed) @idle_add def addRow (self, id, text, type): if id in self.id2iter: return model = self.sort_model.get_model() iter = model.append([id, text , type, GObject.markup_escape_text(text)]) self.id2iter[id] = iter self.idSet.add(id) @idle_add def removeRow (self, id): try: iter = self.id2iter[id] except KeyError: return model = self.sort_model.get_model() model.remove(iter) del self.id2iter[id] self.idSet.remove(id) @idle_add def selectRow (self, id): iter = self.id2iter[id] iter = self.sort_model.convert_child_iter_to_iter(iter)[1] sel = self.get_selection() sel.select_iter(iter) def __contains__ (self, id): return id in self.idSet def button_press (self, widget, event): path_col_pos = self.get_path_at_pos(int(event.x), int(event.y)) if path_col_pos and path_col_pos[1] == self.rightcol: self.pressed = path_col_pos[0] def button_release (self, widget, event): path_col_pos = self.get_path_at_pos(int(event.x), int(event.y)) if path_col_pos and path_col_pos[1] == self.rightcol: if self.pressed == path_col_pos[0]: model = self.sort_model iter = model.get_iter(self.pressed) id = model.get_value(iter, 0) text = model.get_value(iter, 1) type = model.get_value(iter, 2) self.emit("activated", id, text, type) self.pressed = None def motion_notify (self, widget, event): path_col_pos = self.get_path_at_pos(int(event.x), int(event.y)) if path_col_pos and path_col_pos[1] == self.rightcol: self.get_window().set_cursor(self.linkcursor) else: self.get_window().set_cursor(self.stdcursor) def leave_notify (self, widget, event): self.get_window().set_cursor(self.stdcursor) def selection_changed (self, selection): model, iter = selection.get_selected() if iter: id = model.get_value(iter, 0) type = model.get_value(iter, 2) self.emit("selected", id, type) def compareFunction (self, treemodel, iter0, iter1, column): val0 = treemodel.get_value(iter0, column).split(":")[0] val1 = treemodel.get_value(iter1, column).split(":")[0] if val0.isdigit() and val1.isdigit(): return cmp(int(val0), int(val1)) return cmp(val0, val1) class Panel (object): def start (self): pass def addItem (self, id, text, type, chatView): pass def removeItem (self, id): pass def selectItem (self, id): pass #=============================================================================== # Panels #=============================================================================== class ViewsPanel (Gtk.Notebook, Panel): __gsignals__ = { 'channel_content_Changed' : (GObject.SignalFlags.RUN_FIRST, None, (str,int)) } def __init__ (self, connection): GObject.GObject.__init__(self) self.set_show_tabs(False) self.set_show_border(False) self.id2Widget = {} self.connection = connection label = Gtk.Label() label.set_markup("%s" % _("You have opened no conversations yet")) label.props.xalign = .5 label.props.yalign = 0.381966011 label.props.justify = Gtk.Justification.CENTER label.props.wrap = True label.props.width_request = 300 self.append_page(label, None) # When a person addresses us directly, ChannelsPanel will emit an # additem event and we add a new view. This however means that the first # message the user sends isn't registred by our privateMessage handler. # Therefore we save all messages sent by this hook, and when later we # add new items, we test if anything was already received self.messageBuffer = {} def globalPersonalMessage (cm, name, title, isadmin, text): if not name in self.messageBuffer: self.messageBuffer[name] = [] self.messageBuffer[name].append((title, isadmin, text)) self.connection.cm.connect("privateMessage", globalPersonalMessage) def addItem (self, id, name, type, chatView): chatView.connect("messageTyped", self.onMessageTyped, id, name, type) self.connection.cm.connect("channelMessage", self.onChannelMessage, id, chatView) self.connection.cm.connect("privateMessage", self.onPersonMessage, get_playername(name), chatView) if type == TYPE_CHANNEL: self.connection.cm.connect("channelLog", self.onChannelLog, id, chatView) self.connection.cm.getChannelLog(id) if not self.connection.cm.mayTellChannel(id): chatView.disable(_("Only registered users may talk to this channel")) elif type in (TYPE_PERSONAL,TYPE_COMP,TYPE_GUEST,TYPE_ADMIN,TYPE_BLINDFOLD): if name in self.messageBuffer: for title, isadmin, messagetext in self.messageBuffer[name]: chatView.addMessage(name, messagetext) del self.messageBuffer[name] self.addPage(chatView, id) def removeItem (self, id): self.removePage(id) def selectItem (self, id): child = self.id2Widget[id] self.set_current_page(self.page_num(child)) def onChannelLog (self, cm, channel, time, handle, text, name_, chatView): if channel.lower() == name_.lower(): chatView.insertLogMessage(time, handle, text) def onMessageTyped (self, chatView, text, id, name, type): if type == TYPE_CHANNEL: self.connection.cm.tellChannel(id, text) elif type == TYPE_PERSONAL: self.connection.cm.tellPlayer(get_playername(name), text) chatView.addMessage(self.connection.getUsername(), text) def onPersonMessage (self, cm, name, title, isadmin, text, name_, chatView): if name.lower() == name_.lower(): chatView.addMessage(name, text) self.emit('channel_content_Changed',name_,TYPE_PERSONAL) def onChannelMessage (self, cm, name, isadmin, isme, channel, text, name_, chatView): if channel.lower() == name_.lower() and not isme: chatView.addMessage(name, text) self.emit('channel_content_Changed',channel,TYPE_CHANNEL) def addPage (self, widget, id): self.id2Widget[id] = widget self.append_page(widget, None) widget.show_all() def removePage (self, id): child = self.id2Widget.pop(id) self.remove_page(self.page_num(child)) class InfoPanel (Gtk.Notebook, Panel): def __init__ (self, connection): GObject.GObject.__init__(self) self.set_show_tabs(False) self.set_show_border(False) self.id2Widget = {} label = Gtk.Label() label.set_markup("%s" % _("No conversation's selected")) label.props.xalign = .5 label.props.yalign = 0.381966011 label.props.justify = Gtk.Justification.CENTER label.props.wrap = True label.props.width_request = 115 self.append_page(label, None) self.connection = connection def addItem (self, id, text, type, chatView): if type in (TYPE_PERSONAL,TYPE_COMP,TYPE_GUEST,TYPE_ADMIN,TYPE_BLINDFOLD): infoItem = self.PlayerInfoItem(id, text, chatView, self.connection) elif type == TYPE_CHANNEL: infoItem = self.ChannelInfoItem(id, text, chatView, self.connection) self.addPage(infoItem, id) def removeItem (self, id): self.removePage(id) def selectItem (self, id): child = self.id2Widget.get(id) if child is not None: self.set_current_page(self.page_num(child)) def addPage (self, widget, id): self.id2Widget[id] = widget self.append_page(widget, None) widget.show_all() def removePage (self, id): child = self.id2Widget.pop(id) self.remove_page(self.page_num(child)) class PlayerInfoItem (Gtk.Alignment): def __init__ (self, id, text, chatView, connection): GObject.GObject.__init__(self, xscale=1, yscale=1) self.add(Gtk.Label(label=_("Loading player data"))) playername = get_playername(text) self.fm = connection.fm self.handle_id = self.fm.connect("fingeringFinished", self.onFingeringFinished, playername) self.fm.finger(playername) @idle_add def onFingeringFinished (self, fm, finger, playername): if not isinstance(self.get_child(), Gtk.Label) or \ finger.getName().lower() != playername.lower(): return self.fm.disconnect(self.handle_id) label = Gtk.Label() label.set_markup("%s" % playername) widget = Gtk.Frame() widget.set_label_widget(label) widget.set_shadow_type(Gtk.ShadowType.NONE) alignment = Gtk.Alignment.new(0, 0, 1, 1) alignment.set_padding(3, 0, 12, 0) widget.add(alignment) tv = Gtk.TextView() tv.set_editable(False) tv.set_cursor_visible(False) tv.props.wrap_mode = Gtk.WrapMode.WORD iter = tv.get_buffer().get_end_iter() for i, note in enumerate(finger.getNotes()): if note: insert_formatted(tv, iter, "%s\n" % note) tv.show_all() sw = Gtk.ScrolledWindow() sw.set_policy(Gtk.PolicyType.AUTOMATIC, Gtk.PolicyType.AUTOMATIC) sw.add(tv) alignment.add(sw) self.remove(self.get_child()) self.add(widget) widget.show_all() class ChannelInfoItem (Gtk.Alignment): def __init__ (self, id, text, chatView, connection): GObject.GObject.__init__(self, xscale=1, yscale=1) self.cm = connection.cm self.add(Gtk.Label(label=_("Receiving list of players"))) self.names = set() chatView.connect("messageAdded", self.onMessageAdded) self.store = Gtk.ListStore(object, # (r,g,b) Color tuple str, # name string bool # is separator ) connection.players.connect("FICSPlayerExited", self.onPlayerRemoved) self.handle_id = self.cm.connect("receivedNames", self.onNamesReceived, id) self.cm.getPeopleInChannel(id) @idle_add def onPlayerRemoved (self, players, player): if player.name in self.names: for row in self.store: if row[1] == player.name: self.store.remove(row.iter) break self.names.remove(player.name) @idle_add def onNamesReceived (self, cm, channel, people, channel_): if not isinstance(self.get_child(), Gtk.Label) or channel != channel_: return cm.disconnect(self.handle_id) sw = Gtk.ScrolledWindow() sw.set_policy(Gtk.PolicyType.AUTOMATIC, Gtk.PolicyType.AUTOMATIC) list = Gtk.TreeView() list.set_headers_visible(False) list.set_tooltip_column(1) list.set_model(self.store) list.append_column(Gtk.TreeViewColumn("", BulletCellRenderer(), color=0)) cell = Gtk.CellRendererText() cell.props.ellipsize = Pango.EllipsizeMode.END list.append_column(Gtk.TreeViewColumn("", cell, text=1)) list.fixed_height_mode = True self.separatorIter = self.store.append([(),"",True]) list.set_row_separator_func(lambda m,i,d: m.get_value(i, 2), None) sw.add(list) self.store.connect("row-inserted", lambda w,p,i: list.queue_resize()) self.store.connect("row-deleted", lambda w,i: list.queue_resize()) # Add those names. If this is not the first namesReceive, we only # add the new names noneed = set([name for (color, name, isSeparator) in self.store]) for name in people: if name in noneed: continue self.store.append([(1,1,1), name, False]) self.names.add(name) self.remove(self.get_child()) self.add(sw) self.show_all() @idle_add def onMessageAdded (self, chatView, sender, text, color): iter = self.store.get_iter_first() # If the names list hasn't been retrieved yet, we have to skip this if not iter: return while self.store.get_path(iter) != self.store.get_path(self.separatorIter): person = self.store.get_value(iter, 1) # If the person is already in the area before the separator, we # don't have to do anything if person.lower() == sender.lower(): return iter = self.store.iter_next(iter) # Go to iter after separator iter = self.store.iter_next(iter) while iter and self.store.iter_is_valid(iter): person = self.store.get_value(iter, 1) if person.lower() == sender.lower(): self.store.set_value(iter, 0, color) self.store.move_before(iter, self.separatorIter) return iter = self.store.iter_next(iter) # If the person was not in the area under the separator of the # store, it must be a new person, who has joined the channel, and we # simply add him before the separator self.store.insert_before(self.separatorIter, [color, sender, False]) class ChannelsPanel (Gtk.ScrolledWindow, Panel): __gsignals__ = { 'conversationAdded' : (GObject.SignalFlags.RUN_FIRST, None, (str,str,int)), 'conversationRemoved' : (GObject.SignalFlags.RUN_FIRST, None, (str,)), 'conversationSelected' : (GObject.SignalFlags.RUN_FIRST, None, (str,)) } def __init__ (self, connection): GObject.GObject.__init__(self) self.connection = connection self.set_policy(Gtk.PolicyType.AUTOMATIC, Gtk.PolicyType.AUTOMATIC) vbox = Gtk.VBox() self.add_with_viewport(vbox) self.get_child().set_shadow_type(Gtk.ShadowType.NONE) self.joinedList = TextImageTree(remove_icon) self.joinedList.connect("activated", self.onRemove) self.joinedList.connect("selected", self.onSelect) vbox.pack_start(self.joinedList, True, True, 0) vbox.pack_start(Gtk.Separator.new(0),False,False,2) expander = Gtk.Expander.new(_("Friends")) vbox.pack_start(expander, False, True, 0) self.friendsList = TextImageTree(add_icon) self.friendsList.connect("activated", self.onAdd) self.friendsList.fixed_height_mode = True connection.cm.connect("privateMessage", self.onPersonMessage) connection.cm.connect("channelsListed", self.onChannelsListed) vbox.pack_start(Gtk.Separator.new(0),False,False,2) expander.add(self.friendsList) self.channels = {} expander = Gtk.Expander.new(_("Admin")) vbox.pack_start(expander, False, True, 0) self.adminList = TextImageTree(add_icon) self.adminList.connect("activated", self.onAdd) self.adminList.fixed_height_mode = True connection.cm.connect("privateMessage", self.onPersonMessage) connection.cm.connect("channelsListed", self.onChannelsListed) vbox.pack_start(Gtk.Separator.new(0),False,False,2) expander.add(self.adminList) expander = Gtk.Expander.new(_("More channels")) vbox.pack_start(expander, False, True, 0) self.channelsList = TextImageTree(add_icon) self.channelsList.connect("activated", self.onAdd) self.channelsList.fixed_height_mode = True vbox.pack_start(Gtk.Separator.new(0),False,False,2) expander.add(self.channelsList) expander = Gtk.Expander.new(_("More players")) vbox.pack_start(expander, False, True, 0) self.playersList = TextImageTree(add_icon) self.playersList.connect("activated", self.onAdd) self.playersList.fixed_height_mode = True connection.cm.connect("privateMessage", self.onPersonMessage) connection.cm.connect("channelsListed", self.onChannelsListed) vbox.pack_start(Gtk.Separator.new(0),False,False,2) expander.add(self.playersList) expander = Gtk.Expander.new(_("Computers")) vbox.pack_start(expander, False, True, 0) self.compList = TextImageTree(add_icon) self.compList.connect("activated", self.onAdd) self.compList.fixed_height_mode = True connection.cm.connect("privateMessage", self.onPersonMessage) connection.cm.connect("channelsListed", self.onChannelsListed) vbox.pack_start(Gtk.Separator.new(0),False,False,2) expander.add(self.compList) expander = Gtk.Expander.new(_("BlindFold")) vbox.pack_start(expander, False, True, 0) self.blindList = TextImageTree(add_icon) self.blindList.connect("activated", self.onAdd) self.blindList.fixed_height_mode = True connection.cm.connect("privateMessage", self.onPersonMessage) connection.cm.connect("channelsListed", self.onChannelsListed) vbox.pack_start(Gtk.Separator.new(0),False,False,2) expander.add(self.blindList) expander = Gtk.Expander.new(_("Guests")) vbox.pack_start(expander, False, True, 0) self.guestList = TextImageTree(add_icon) self.guestList.connect("activated", self.onAdd) self.guestList.fixed_height_mode = True connection.cm.connect("privateMessage", self.onPersonMessage) connection.cm.connect("channelsListed", self.onChannelsListed) vbox.pack_start(Gtk.Separator.new(0),False,False,2) expander.add(self.guestList) self.channels = {} self.highlighted = {} def change_fg_colour(self,lc, cell ,model, iter,data): """ :Description: Changes the foreground colour of a cell :param lc: :class:`Gtk.TreeViewColumn` The column we are interested in :param cell: :class:`Gtk.CellRenderer` The cell we want to change :param model: :class:`Gtk.TreeModel` :param iter: :class:`Gtk.TreeIter` :param data: :py:class:`dict` (key=int,value=bool) value is true if channel already highlighted :return: None """ for chan in data: if model[iter][0] == chan: if data[chan] : cell.set_property('foreground_rgba',Gdk.RGBA(0.8,0.3,0.3,1)) else: cell.set_property('foreground_rgba',Gdk.RGBA(0,0,0,1)) def channel_Highlight(self, a, channel, type,b ): """ :Description: Highlights a channel ( that is **not** in focus ) that has received an update and changes it's foreground colour to represent change in contents :param a: not used :param channel: **(str)** The channel the message is intended for :param type: either TYPE_CHANNEL or TYPE_PERSONAL :param b: not used :return: None """ jList = self.joinedList lc = jList.leftcol # treeViewColumn model , cur_iter = jList.get_selection().get_selected() #Selected iter if type == TYPE_PERSONAL: channel = "person" + channel.lower() temp_iter = jList.id2iter[channel] temp_iter = jList.sort_model.convert_child_iter_to_iter(temp_iter)[1] #channel iter jList.get_selection().select_iter(temp_iter) cell = lc.get_cells()[0] jList.get_selection().select_iter(cur_iter) self.highlighted[channel] = True if cur_iter != temp_iter : iter = temp_iter lc.set_cell_data_func(cell,self.change_fg_colour,func_data=self.highlighted) def start (self): self.channels = self.connection.cm.getChannels() if self.channels: self._addChannels(self.channels) for player in list(self.connection.players.values()): id = self.compileId(player.name, TYPE_PERSONAL) if (str(player.name) in self.connection.notify_users): self.friendsList.addRow(id, player.name + player.display_titles(),TYPE_PERSONAL) elif ((player.online) and ('(B)' in player.display_titles())): self.blindList.addRow(id, player.name + player.display_titles(),TYPE_BLINDFOLD) elif ((player.online) and ('(C)' in player.display_titles())): self.compList.addRow(id, player.name + player.display_titles(),TYPE_COMP) elif ((player.online) and ('Guest' in str(player.name))): self.guestList.addRow(id, player.name + player.display_titles(),TYPE_GUEST) elif player.online : self.playersList.addRow(id, player.name + player.display_titles(),TYPE_PERSONAL) def addPlayer (players, new_players): for player in new_players: #print("Player : %s : %s" % (str(player.name),player.display_titles())) if (str(player.name) in self.connection.notify_users): self.friendsList.addRow(self.compileId(player.name, TYPE_PERSONAL), player.name + player.display_titles(), TYPE_PERSONAL) elif '(C)' in str(player.display_titles()): self.compList.addRow(self.compileId(player.name, TYPE_COMP), player.name + player.display_titles(), TYPE_COMP) elif '(B)' in str(player.display_titles()): self.blindList.addRow(self.compileId(player.name, TYPE_BLINDFOLD), player.name + player.display_titles(), TYPE_BLINDFOLD) elif 'Guest' in str(player.name): self.guestList.addRow(self.compileId(player.name, TYPE_GUEST), player.name + player.display_titles(), TYPE_GUEST) else: self.playersList.addRow(self.compileId(player.name, TYPE_PERSONAL), player.name + player.display_titles(), TYPE_PERSONAL) return False self.connection.players.connect("FICSPlayerEntered", addPlayer) def removePlayer (players, player): if (str(player.name) in list(self.connection.notify_users)): self.friendsList.removeRow(self.compileId(player.name, TYPE_PERSONAL)) else: self.playersList.removeRow(self.compileId(player.name, TYPE_PERSONAL)) return False self.connection.players.connect("FICSPlayerExited", removePlayer) def _addChannels (self, channels): for id, name in channels: id = self.compileId(id, TYPE_CHANNEL) self.channelsList.addRow(id, str(id) + ": " + name, TYPE_CHANNEL) for id, name in channels: if id in self.connection.cm.getJoinedChannels(): id = self.compileId(id, TYPE_CHANNEL) if id.isdigit(): self.onAdd(self.channelsList, id, str(id)+": "+name, TYPE_CHANNEL) else: self.onAdd(self.channelsList, id, name, TYPE_CHANNEL) @idle_add def onChannelsListed (self, cm, channels): if not self.channels: self.channels = channels self._addChannels(channels) def compileId (self, id, type): if type == TYPE_CHANNEL: # FIXME: We can't really add stuff to the id, as panels use it to # identify the channel assert not id.startswith("person"), "Oops, this is a problem" else: id = "person" + id.lower() return id def onAdd (self, list, id, text, type): if id in list: list.removeRow(id) self.joinedList.addRow(id, text, type) self.emit('conversationAdded', id, text, type) if type == TYPE_CHANNEL: self.connection.cm.joinChannel(id) self.joinedList.selectRow(id) def onRemove (self, joinedList, id, text, type): joinedList.removeRow(id) if type == TYPE_CHANNEL: self.channelsList.addRow(id, text, type) elif type == TYPE_PERSONAL: self.playersList.addRow(id, text, type) elif type == TYPE_COMP: self.compList.addRow(id, text, type) elif type == TYPE_ADMIN: self.adminList.addRow(id, text, type) elif type == TYPE_GUEST: self.guestList.addRow(id, text, type) elif type == TYPE_BLINDFOLD: self.blindList.addRow(id, text, type) self.emit('conversationRemoved', id) if type == TYPE_CHANNEL: self.connection.cm.removeChannel(id) def onSelect (self, joinedList, id, type): self.emit('conversationSelected', id) model , iter = joinedList.get_selection().get_selected() #Selected iter cell = joinedList.leftcol.get_cells()[0] self.highlighted[id] = False joinedList.leftcol.set_cell_data_func(cell,self.change_fg_colour,func_data=self.highlighted) @idle_add def onPersonMessage (self, cm, name, title, isadmin, text): if not self.compileId(name, TYPE_PERSONAL) in self.joinedList: id = self.compileId(name, TYPE_PERSONAL) self.onAdd(self.playersList, id, name, TYPE_PERSONAL) #=============================================================================== # /Panels #=============================================================================== class ChatWindow (object): def __init__ (self, widgets, connection): self.connection = connection self.window = None widgets["show_chat_button"].connect("clicked", self.showChat) connection.cm.connect("privateMessage", self.onPersonMessage) connection.connect("disconnected", self.onDisconnected) self.viewspanel = ViewsPanel(self.connection) self.channelspanel = ChannelsPanel(self.connection) self.infopanel = InfoPanel(self.connection) self.panels = [self.viewspanel, self.channelspanel, self.infopanel] self.viewspanel.connect('channel_content_Changed', self.channelspanel.channel_Highlight,id) @idle_add def onDisconnected(self, conn): if self.window: self.window.hide() def showChat (self, *widget): if not self.window: self.initUi() self.window.show_all() self.window.present() def initUi (self): self.window = Gtk.Window() self.window.set_border_width(12) self.window.set_icon_name("pychess") self.window.set_title("PyChess - Internet Chess Chat") self.window.connect_after("delete-event", lambda w,e: w.hide() or True) uistuff.keepWindowSize("chat", self.window, defaultSize=(650,400)) dock = PyDockTop("icchat") dock.show() self.window.add(dock) leaf = dock.dock(self.viewspanel, CENTER, Gtk.Label(label="chat"), "chat") leaf.setDockable(False) self.channelspanel.connect('conversationAdded', self.onConversationAdded) self.channelspanel.connect('conversationRemoved', self.onConversationRemoved) self.channelspanel.connect('conversationSelected', self.onConversationSelected) leaf.dock(self.channelspanel, WEST, Gtk.Label(label=_("Conversations")), "conversations") leaf.dock(self.infopanel, EAST, Gtk.Label(label=_("Conversation info")), "info") for panel in self.panels: panel.show_all() panel.start() def onConversationAdded (self, panel, id, text, type): chatView = ChatView() for panel in self.panels: panel.addItem(id, text, type, chatView) def onConversationRemoved (self, panel, id): for panel in self.panels: panel.removeItem(id) def onConversationSelected (self, panel, id): for panel in self.panels: panel.selectItem(id) @idle_add def onPersonMessage (self, cm, name, title, isadmin, text): console_active = False for window in Gtk.Window.list_toplevels(): if window.is_active() and "pychess" in window.get_icon_name(): console_active = True break if self.connection.bm.isPlaying() or console_active: if not self.window: self.initUi() else: self.showChat() self.window.set_urgency_hint(True) self.initial_focus_id = self.window.connect( "focus-in-event", self.on_initial_focus_in) def on_initial_focus_in(self, widget, event): self.window.set_urgency_hint(False) self.window.disconnect(self.initial_focus_id) return False def openChatWithPlayer (self, name): self.showChat() self.window.get_window().raise_() cm = self.connection.cm self.onPersonMessage(cm, name, "", False, "") self.channelspanel.onPersonMessage(cm, name, "", False, "") if __name__ == "__main__": import random class LM: def getPlayerlist(self): for i in range(10): chrs = map(chr,range(ord("a"),ord("z")+1)) yield "".join(random.sample(chrs, random.randrange(20))) def getChannels(self): return [(str(i),n) for i,n in enumerate(self.getPlayerlist())] def joinChannel (self, channel): pass def connect (self, *args): pass def getPeopleInChannel (self, name): pass def finger (self, name): pass def getJoinedChannels (self): return [] class Con: def __init__ (self): self.glm = LM() self.cm = LM() self.fm = LM() cw = ChatWindow({}, Con()) globals()["_"] = lambda x:x cw.showChat() cw.window.connect("delete-event", Gtk.main_quit) Gtk.main() pychess-0.12.2/lib/pychess/widgets/SetupBoard.py0000755000175000017470000000520512642265055022100 0ustar tamasusers00000000000000 from gi.repository import Gtk from gi.repository import Gdk from gi.repository import GObject from math import floor from pychess.widgets.BoardView import BoardView from pychess.Utils.const import * from pychess.Utils.Cord import Cord ALL = 0 class SetupBoard (Gtk.EventBox): __gsignals__ = { 'cord_clicked' : (GObject.SignalFlags.RUN_FIRST, None, (object,)), } def __init__(self): GObject.GObject.__init__(self) self.view = BoardView() self.add(self.view) self.view.showEnpassant = True self.connect("button_press_event", self.button_press) self.connect("button_release_event", self.button_release) self.add_events(Gdk.EventMask.LEAVE_NOTIFY_MASK|Gdk.EventMask.POINTER_MOTION_MASK) self.connect("motion_notify_event", self.motion_notify) self.connect("leave_notify_event", self.leave_notify) self.brush = None # Selection and stuff # def setBrush (self, brush): self.brush = brush def getBrush (self): return self.brush def transPoint (self, x, y): if not self.view.square: return None xc, yc, square, s = self.view.square y -= yc; x -= xc y /= float(s) x /= float(s) if self.view.fromWhite: y = 8 - y else: x = 8 - x return x, y def point2Cord (self, x, y): if not self.view.square: return None point = self.transPoint(x, y) x = floor(point[0]) if self.view.fromWhite: y = floor(point[1]) else: y = floor(point[1]) if not (0 <= x <= 7 and 0 <= y <= 7): return None return Cord(x, y) def button_press (self, widget, event): self.grab_focus() cord = self.point2Cord (event.x, event.y) if self.legalCords == ALL or cord in self.legalCords: self.view.active = cord else: self.view.active = None def button_release (self, widget, event): cord = self.point2Cord (event.x, event.y) if cord == self.view.active: self.emit('cord_clicked', cord) self.view.active = None def motion_notify (self, widget, event): cord = self.point2Cord (event.x, event.y) if cord == None: return if self.legalCords == ALL or cord in self.legalCords: self.view.hover = cord else: self.view.hover = None def leave_notify (self, widget, event): a = self.get_allocation() if not (0 <= event.x < a.width and 0 <= event.y < a.height): self.view.hover = None pychess-0.12.2/lib/pychess/widgets/ChatView.py0000755000175000017470000002014012652661251021534 0ustar tamasusers00000000000000from __future__ import absolute_import from time import strftime, gmtime, localtime import random from gi.repository import Gtk from gi.repository import Gdk from gi.repository import Pango from gi.repository import GObject from pychess.System.idle_add import idle_add from pychess.System import uistuff from pychess.widgets import insert_formatted from pychess.widgets.Background import set_textview_color from pychess.Utils.IconLoader import load_icon, get_pixbuf from pychess.ic.ICGameModel import ICGameModel class ChatView (Gtk.Box): __gsignals__ = { 'messageAdded' : (GObject.SignalFlags.RUN_FIRST, None, (str,str,object)), 'messageTyped' : (GObject.SignalFlags.RUN_FIRST, None, (str,)), } def __init__ (self, gamemodel=None): Gtk.Box.__init__(self, orientation=Gtk.Orientation.VERTICAL) self.gamemodel = gamemodel # States for the color generator self.colors = {} self.startpoint = random.random() # Inits the read view self.readView = Gtk.TextView() set_textview_color(self.readView) self.sw = Gtk.ScrolledWindow() self.sw.set_policy(Gtk.PolicyType.AUTOMATIC, Gtk.PolicyType.AUTOMATIC) self.sw.set_shadow_type(Gtk.ShadowType.ETCHED_IN) self.sw.add(self.readView) self.readView.set_editable(False) self.readView.set_cursor_visible(False) self.readView.props.wrap_mode = Gtk.WrapMode.WORD self.readView.props.pixels_below_lines = 1 self.readView.props.pixels_above_lines = 2 self.readView.props.left_margin = 2 if isinstance(self.gamemodel, ICGameModel): self.refresh = Gtk.Image() self.refresh.set_from_pixbuf(load_icon(16, "view-refresh", "stock-refresh")) label = _("Observers") self.obs_btn = Gtk.Button() self.obs_btn.set_image(self.refresh) self.obs_btn.set_label(label) self.obs_btn.connect("clicked", self.on_obs_btn_clicked) vbox = Gtk.Box(orientation=Gtk.Orientation.VERTICAL) # Inits the observers view self.obsView = Gtk.TextView() self.obsView.set_cursor_visible(False) set_textview_color(self.obsView) self.obsView.set_editable(False) self.obsView.props.wrap_mode = Gtk.WrapMode.WORD self.obsView.props.pixels_below_lines = 1 self.obsView.props.pixels_above_lines = 2 self.obsView.props.left_margin = 2 tb = self.obsView.get_buffer() iter = tb.get_end_iter() anchor1 = tb.create_child_anchor(iter) self.obsView.add_child_at_anchor(self.obs_btn, anchor1) self.button_tag = tb.create_tag("observers") tb.insert_with_tags_by_name(iter, " ", "observers") tb.insert(iter, "\n") vbox.pack_start(self.obsView, False, True, 0) vbox.pack_start(self.sw, True, True, 0) self.pack_start(vbox, True, True, 0) else: self.pack_start(self.sw, True, True, 0) # Create a 'log mark' in the beginning of the text buffer. Because we # query the log asynchronously and in chunks, we can use this to insert # it correctly after previous log messages, but before the new messages. start = self.readView.get_buffer().get_start_iter() self.readView.get_buffer().create_mark("logMark", start) # Inits the write view self.writeView = Gtk.Entry() self.pack_start(self.writeView, False, False, 0) self.writeView.connect("key-press-event", self.onKeyPress) def on_obs_btn_clicked(self, other): allob = 'allob ' + str(self.gamemodel.ficsgame.gameno) self.gamemodel.connection.client.run_command(allob) @idle_add def update_observers(self, other, observers): """ Rebuilds observers list text """ tb = self.obsView.get_buffer() start_iter = tb.get_end_iter() start_iter.backward_to_tag_toggle(self.button_tag) start_iter.forward_char() end_iter = tb.get_end_iter() tb.delete(start_iter, end_iter) iter = tb.get_end_iter() obs_list = observers.split() for player in obs_list: # Colourize only players able to interact with chat View if player.endswith("(U)"): tb.insert(iter, "%s " % player[:-3]) elif "(" in player: pref,rest = player.split('(',1) self._ensureColor(pref) tb.insert_with_tags_by_name(iter, "%s " % player, pref+"_bold") else: tb.insert(iter, "%s " % player) self.obsView.show_all() def _ensureColor(self, pref): """ Ensures that the tags for pref_normal and pref_bold are set in the text buffer """ tb = self.readView.get_buffer() if not pref in self.colors: color = uistuff.genColor(len(self.colors) + 1, self.startpoint) self.colors[pref] = color color = [int(c * 255) for c in color] color = "#" + "".join([hex(v)[2:].zfill(2) for v in color]) tb.create_tag(pref + "_normal", foreground=color) tb.create_tag(pref + "_bold", foreground=color, weight=Pango.Weight.BOLD) if isinstance(self.gamemodel, ICGameModel): otb = self.obsView.get_buffer() otb.create_tag(pref + "_normal", foreground=color) otb.create_tag(pref + "_bold", foreground=color, weight=Pango.Weight.BOLD) def clear (self): self.writeView.get_buffer().props.text = "" self.readView.get_buffer().props.text = "" tagtable = self.readView.get_buffer().get_tag_table() for i in range(len(self.colors)): tagtable.remove("%d_normal" % i) tagtable.remove("%d_bold" % i) self.colors.clear() def __addMessage (self, iter, time, sender, text): pref = sender.lower() tb = self.readView.get_buffer() iter = tb.get_end_iter() tb.create_mark("end", iter, False) if tb.props.text: tb.insert(iter, "\n") # Calculate a color for the sender self._ensureColor(pref) # Insert time, name and text with different stylesd tb.insert_with_tags_by_name(iter, "(%s) "%time, pref+"_normal") tb.insert_with_tags_by_name(iter, sender+": ", pref+"_bold") insert_formatted(self.readView, iter, text) # Scroll the mark onscreen. mark = tb.get_mark("end") tb.move_mark(mark, iter) self.readView.scroll_mark_onscreen(mark) # This is used to buzz the user and add senders to a list of active participants self.emit("messageAdded", sender, text, self.colors[pref]) def insertLogMessage (self, timestamp, sender, text): """ Takes a list of (timestamp, sender, text) pairs, and inserts them in the beginning of the document. All text will be in a gray color """ tb = self.readView.get_buffer() iter = tb.get_iter_at_mark(tb.get_mark("logMark")) time = strftime("%H:%M:%S", localtime(timestamp)) self.__addMessage(iter, time, sender, text) def addMessage (self, sender, text): tb = self.readView.get_buffer() iter = tb.get_end_iter() self.__addMessage(iter, strftime("%H:%M:%S"), sender, text) def disable (self, message): """ Sets the write field insensitive, in cases where the channel is read only. Use the message to give the user a propriate exlpanation """ self.writeView.set_sensitive(False) self.writeView.set_text(message) def enable (self): self.writeView.set_text("") self.writeView.set_sensitive(True) def onKeyPress (self, widget, event): if event.keyval in list(map(Gdk.keyval_from_name,("Return", "KP_Enter"))): if not event.get_state() & Gdk.ModifierType.CONTROL_MASK: buffer = self.writeView.get_buffer() if buffer.props.text: self.emit("messageTyped", buffer.props.text) buffer.props.text = "" return True pychess-0.12.2/lib/pychess/widgets/ImageMenu.py0000755000175000017470000001124612641567764021714 0ustar tamasusers00000000000000from __future__ import print_function from gi.repository import Gtk from gi.repository import Gdk from gi.repository import GObject class ImageMenu(Gtk.EventBox): def __init__ (self, image, child): GObject.GObject.__init__(self) self.add(image) self.subwindow = Gtk.Window() self.subwindow.set_decorated(False) self.subwindow.set_resizable(False) self.subwindow.set_type_hint(Gdk.WindowTypeHint.DIALOG) self.subwindow.add(child) self.subwindow.connect_after("draw", self.__sub_onExpose) self.subwindow.connect("button_press_event", self.__sub_onPress) #self.subwindow.connect("motion_notify_event", self.__sub_onMotion) #self.subwindow.connect("leave_notify_event", self.__sub_onMotion) #self.subwindow.connect("delete-event", self.__sub_onDelete) self.subwindow.connect("focus-out-event", self.__sub_onFocusOut) child.show_all() self.setOpen(False) self.connect("button_press_event", self.__onPress) def setOpen (self, isopen): self.isopen = isopen if isopen: topwindow = self.get_parent() while not isinstance(topwindow, Gtk.Window): topwindow = topwindow.get_parent() x, y = topwindow.get_window().get_position() x += self.get_allocation().x + self.get_allocation().width y += self.get_allocation().y self.subwindow.move(x, y) self.subwindow.props.visible = isopen self.set_state(self.isopen and Gtk.StateType.SELECTED or Gtk.StateType.NORMAL) def __onPress (self, self_, event): if event.button == 1 and event.type == Gdk.EventType.BUTTON_PRESS: self.setOpen(not self.isopen) def __sub_setGrabbed (self, grabbed): if grabbed and not Gdk.pointer_is_grabbed(): Gdk.pointer_grab(self.subwindow.get_window(), True, Gdk.EventMask.LEAVE_NOTIFY_MASK| Gdk.EventMask.POINTER_MOTION_MASK| Gdk.EventMask.BUTTON_PRESS_MASK, None, None, Gdk.CURRENT_TIME) Gdk.keyboard_grab(self.subwindow.get_window(), True, Gdk.CURRENT_TIME) elif Gdk.pointer_is_grabbed(): Gdk.pointer_ungrab(Gdk.CURRENT_TIME) Gdk.keyboard_ungrab(Gdk.CURRENT_TIME) def __sub_onMotion (self, subwindow, event): a = subwindow.get_allocation() self.__sub_setGrabbed(not (0 <= event.x < a.width and 0 <= event.y < a.height)) def __sub_onPress (self, subwindow, event): a = subwindow.get_allocation() if not (0 <= event.x < a.width and 0 <= event.y < a.height): Gdk.pointer_ungrab(event.time) self.setOpen(False) def __sub_onExpose (self, subwindow, ctx): a = subwindow.get_allocation() context = subwindow.get_window().cairo_create() context.set_line_width(2) context.rectangle (a.x, a.y, a.width, a.height) sc = self.get_style_context() found, color = sc.lookup_color("p_dark_color") r, g, b, a = color.red, color.green, color.blue, color.alpha context.set_source_rgba(r, g, b, a) context.stroke() #self.__sub_setGrabbed(self.isopen) def __sub_onDelete (self, subwindow, event): self.setOpen(False) return True def __sub_onFocusOut (self, subwindow, event): self.setOpen(False) def switchWithImage (image, dialog): parent = image.get_parent() parent.remove(image) imageMenu = ImageMenu(image, dialog) parent.add(imageMenu) imageMenu.show() if __name__ == "__main__": win = Gtk.Window() vbox = Gtk.VBox() vbox.add(Gtk.Label(label="Her er der en kat")) image = Gtk.Image.new_from_icon_name("gtk-properties", Gtk.IconSize.BUTTON) vbox.add(image) vbox.add(Gtk.Label(label="Her er der ikke en kat")) win.add(vbox) table = Gtk.Table(2, 2) table.attach(Gtk.Label(label="Minutes:"), 0, 1, 0, 1) spin1 = Gtk.SpinButton() spin1.set_adjustment(Gtk.Adjustment(0,0,100,1)) table.attach(spin1, 1, 2, 0, 1) table.attach(Gtk.Label(label="Gain:"), 0, 1, 1, 2) spin2 = Gtk.SpinButton() spin2.set_adjustment(Gtk.Adjustment(0,0,100,1)) table.attach(spin2, 1, 2, 1, 2) table.set_border_width(6) switchWithImage(image, table) def onValueChanged (spin): print(spin.get_value()) spin1.connect("value-changed", onValueChanged) spin2.connect("value-changed", onValueChanged) win.show_all() win.connect("delete-event", Gtk.main_quit) Gtk.main() pychess-0.12.2/lib/pychess/widgets/gamewidget.py0000644000175000017470000012655512653160132022146 0ustar tamasusers00000000000000""" This module handles the tabbed layout in PyChess """ from __future__ import absolute_import import imp import os import sys import traceback import threading from threading import currentThread from gi.repository import Gdk from gi.repository import Gtk from gi.repository import GLib from gi.repository import GObject from gi.repository import GdkPixbuf from pychess.compat import StringIO from .BoardControl import BoardControl from .ChessClock import ChessClock from .MenuItemsDict import MenuItemsDict from pychess.Savers import pgn, fen from pychess.System import conf, prefix from pychess.System.Log import log from pychess.System.idle_add import idle_add from pychess.System.prefix import addUserConfigPrefix from pychess.System.uistuff import makeYellow from pychess.Utils.GameModel import GameModel from pychess.Utils.IconLoader import load_icon, get_pixbuf from pychess.Utils.const import * from pychess.Utils.Move import listToMoves from pychess.Utils.lutils import lmove from pychess.Utils.lutils.lmove import ParsingError from pychess.Utils.logic import playerHasMatingMaterial, isClaimableDraw from pychess.ic import get_infobarmessage_content, get_infobarmessage_content2 from pychess.ic.FICSObjects import get_player_tooltip_text from pychess.ic.ICGameModel import ICGameModel from pychess.widgets.InfoBar import InfoBarNotebook, InfoBarMessage, InfoBarMessageButton from .pydock.PyDockTop import PyDockTop from .pydock.__init__ import CENTER, EAST, SOUTH ################################################################################ # Initialize modul constants, and a few worker functions # ################################################################################ def createAlignment (top, right, bottom, left): align = Gtk.Alignment.new(.5, .5, 1, 1) align.set_property("top-padding", top) align.set_property("right-padding", right) align.set_property("bottom-padding", bottom) align.set_property("left-padding", left) return align def cleanNotebook (): notebook = Gtk.Notebook() notebook.set_show_tabs(False) notebook.set_show_border(False) return notebook def createImage (pixbuf): image = Gtk.Image() image.set_from_pixbuf(pixbuf) return image light_on = load_icon(16, "stock_3d-light-on", "weather-clear") light_off = load_icon(16, "stock_3d-light-off", "weather-clear-night") gtk_close = load_icon(16, "gtk-close", "window-close") media_previous = load_icon(24, "gtk-media-previous-ltr", "media-skip-backward") media_rewind = load_icon(24, "gtk-media-rewind-ltr", "media-seek-backward") media_forward = load_icon(24, "gtk-media-forward-ltr", "media-seek-forward") media_next = load_icon(24, "gtk-media-next-ltr", "media-skip-forward") media_eject = load_icon(24, "player-eject", "media-eject") path = prefix.addDataPrefix("sidepanel") postfix = "Panel.py" files = [f[:-3] for f in os.listdir(path) if f.endswith(postfix)] sidePanels = [imp.load_module(f, *imp.find_module(f, [path])) for f in files] dockLocation = addUserConfigPrefix("pydock.xml") ################################################################################ # Initialize module variables # ################################################################################ widgets = None def setWidgets (w): global widgets widgets = w def getWidgets (): return widgets key2gmwidg = {} notebooks = {"board": cleanNotebook(), "statusbar": cleanNotebook(), "messageArea": cleanNotebook()} for panel in sidePanels: notebooks[panel.__name__] = cleanNotebook() docks = {"board": (Gtk.Label(label="Board"), notebooks["board"])} ################################################################################ # The holder class for tab releated widgets # ################################################################################ class GameWidget (GObject.GObject): __gsignals__ = { 'game_close_clicked': (GObject.SignalFlags.RUN_FIRST, None, ()), 'infront': (GObject.SignalFlags.RUN_FIRST, None, ()), 'title_changed': (GObject.SignalFlags.RUN_FIRST, None, (str,)), 'closed': (GObject.SignalFlags.RUN_FIRST, None, ()), } def __init__ (self, gamemodel): GObject.GObject.__init__(self) self.gamemodel = gamemodel self.cids = {} self.closed = False tabcontent, white_label, black_label, game_info_label = self.initTabcontents() boardvbox, board, infobar, clock = self.initBoardAndClock(gamemodel) statusbar, stat_hbox = self.initStatusbar(board) self.tabcontent = tabcontent self.player_name_labels = (white_label, black_label) self.game_info_label = game_info_label self.board = board self.statusbar = statusbar self.infobar = infobar infobar.connect("hide", self.infobar_hidden) self.game_ended_message = None self.clock = clock self.notebookKey = Gtk.Alignment() self.boardvbox = boardvbox self.stat_hbox = stat_hbox self.menuitems = MenuItemsDict(self) gamemodel.connect_after("game_started", self.game_started) gamemodel.connect_after("game_ended", self.game_ended) gamemodel.connect_after("game_changed", self.game_changed) gamemodel.connect("game_paused", self.game_paused) gamemodel.connect("game_resumed", self.game_resumed) gamemodel.connect("moves_undone", self.moves_undone) gamemodel.connect("game_unended", self.game_unended) gamemodel.connect("game_saved", self.game_saved) gamemodel.connect("players_changed", self.players_changed) gamemodel.connect("analyzer_added", self.analyzer_added) gamemodel.connect("analyzer_removed", self.analyzer_removed) gamemodel.connect("analyzer_resumed", self.analyzer_resumed) gamemodel.connect("analyzer_paused", self.analyzer_paused) gamemodel.connect("message_received", self.message_received) self.players_changed(gamemodel) if self.gamemodel.display_text: if isinstance(gamemodel, ICGameModel): self.game_info_label.set_text("%s [%s]" % (self.display_text, self.gamemodel.ficsgame.gameno)) else: self.game_info_label.set_text(self.display_text) if gamemodel.timed: gamemodel.timemodel.connect("zero_reached", self.zero_reached) if isinstance(gamemodel, ICGameModel): gamemodel.connection.bm.connect("player_lagged", self.player_lagged) gamemodel.connection.bm.connect("opp_not_out_of_time", self.opp_not_out_of_time) board.view.connect("shownChanged", self.shownChanged) def do_load_panels(event): self.panels = [panel.Sidepanel().load(self) for panel in sidePanels] if event is not None: event.set() thread = currentThread() if thread.name == "MainThread": do_load_panels(None) else: event = threading.Event() GLib.idle_add(do_load_panels, event) event.wait() if isinstance(gamemodel, ICGameModel): gamemodel.gmwidg_ready.set() def _del (self): self.board._del() for obj in self.cids: if obj.handler_is_connected(self.cids[obj]): log.debug("GameWidget._del: disconnecting %s" % repr(obj)) obj.disconnect(self.cids[obj]) self.cids.clear() def _update_menu_abort (self): if self.gamemodel.hasEnginePlayer(): self.menuitems["abort"].sensitive = True self.menuitems["abort"].tooltip = "" elif self.gamemodel.isObservationGame(): self.menuitems["abort"].sensitive = False elif isinstance(self.gamemodel, ICGameModel) \ and self.gamemodel.status in UNFINISHED_STATES: if self.gamemodel.ply < 2: self.menuitems["abort"].label = _("Abort") self.menuitems["abort"].tooltip = \ _("This game can be automatically aborted without rating loss because there has not yet been two moves made") else: self.menuitems["abort"].label = _("Offer Abort") self.menuitems["abort"].tooltip = \ _("Your opponent must agree to abort the game because there has been two or more moves made") self.menuitems["abort"].sensitive = True else: self.menuitems["abort"].sensitive = False self.menuitems["abort"].tooltip = "" def _update_menu_adjourn (self): self.menuitems["adjourn"].sensitive = \ isinstance(self.gamemodel, ICGameModel) and \ self.gamemodel.status in UNFINISHED_STATES and \ not self.gamemodel.isObservationGame() and \ not self.gamemodel.hasGuestPlayers() if isinstance(self.gamemodel, ICGameModel) and \ self.gamemodel.status in UNFINISHED_STATES and \ not self.gamemodel.isObservationGame() and \ self.gamemodel.hasGuestPlayers(): self.menuitems["adjourn"].tooltip = \ _("This game can not be adjourned because one or both players are guests") else: self.menuitems["adjourn"].tooltip = "" def _update_menu_draw (self): self.menuitems["draw"].sensitive = self.gamemodel.status in UNFINISHED_STATES \ and not self.gamemodel.isObservationGame() def can_win (color): if self.gamemodel.timed: return playerHasMatingMaterial(self.gamemodel.boards[-1], color) and \ self.gamemodel.timemodel.getPlayerTime(color) > 0 else: return playerHasMatingMaterial(self.gamemodel.boards[-1], color) if isClaimableDraw(self.gamemodel.boards[-1]) or not \ (can_win(self.gamemodel.players[0].color) or \ can_win(self.gamemodel.players[1].color)): self.menuitems["draw"].label = _("Claim Draw") def _update_menu_resign (self): self.menuitems["resign"].sensitive = self.gamemodel.status in UNFINISHED_STATES \ and not self.gamemodel.isObservationGame() def _update_menu_pause_and_resume (self): def game_is_pausable (): if self.gamemodel.isEngine2EngineGame() or \ (self.gamemodel.hasLocalPlayer() and \ (self.gamemodel.isLocalGame() or \ (isinstance(self.gamemodel, ICGameModel) and \ self.gamemodel.ply > 1))): if sys.platform == "win32" and self.gamemodel.hasEnginePlayer(): return False else: return True else: return False self.menuitems["pause1"].sensitive = \ self.gamemodel.status == RUNNING and game_is_pausable() self.menuitems["resume1"].sensitive = \ self.gamemodel.status == PAUSED and game_is_pausable() # TODO: if IC game is over and game ended in adjournment # and opponent is available, enable Resume def _update_menu_undo (self): if self.gamemodel.isObservationGame(): self.menuitems["undo1"].sensitive = False elif isinstance(self.gamemodel, ICGameModel): if self.gamemodel.status in UNFINISHED_STATES and self.gamemodel.ply > 0: self.menuitems["undo1"].sensitive = True else: self.menuitems["undo1"].sensitive = False elif self.gamemodel.ply > 0 \ and self.gamemodel.status in UNDOABLE_STATES + (RUNNING,): self.menuitems["undo1"].sensitive = True else: self.menuitems["undo1"].sensitive = False def _update_menu_ask_to_move (self): if self.gamemodel.isObservationGame(): self.menuitems["ask_to_move"].sensitive = False elif isinstance(self.gamemodel, ICGameModel): self.menuitems["ask_to_move"].sensitive = False elif self.gamemodel.waitingplayer.__type__ == LOCAL \ and self.gamemodel.status in UNFINISHED_STATES \ and self.gamemodel.status != PAUSED: self.menuitems["ask_to_move"].sensitive = True else: self.menuitems["ask_to_move"].sensitive = False def _showHolding (self, holding): figurines = ["", ""] for color in (BLACK, WHITE): for piece in holding[color].keys(): count = holding[color][piece] figurines[color] += " " if count==0 else FAN_PIECES[color][piece]*count self.status(figurines[BLACK] + " " + figurines[WHITE]) def shownChanged (self, boardview, shown): # Help crazyhouse testing #if self.gamemodel.boards[-1].variant == CRAZYHOUSECHESS: # holding = self.gamemodel.getBoardAtPly(shown, boardview.variation).board.holding # self._showHolding(holding) if self.gamemodel.timemodel.hasTimes and \ (self.gamemodel.endstatus or self.gamemodel.status in (DRAW, WHITEWON, BLACKWON)) and \ boardview.shownIsMainLine(): wmovecount, color = divmod(shown + 1, 2) bmovecount = wmovecount -1 if color == WHITE else wmovecount if self.gamemodel.timemodel.hasBWTimes(bmovecount, wmovecount): self.clock.update(wmovecount, bmovecount) def game_started (self, gamemodel): if self.gamemodel.isLocalGame(): self.menuitems["abort"].label = _("Abort") self._update_menu_abort() self._update_menu_adjourn() self._update_menu_draw() if self.gamemodel.isLocalGame(): self.menuitems["pause1"].label = _("Pause") self.menuitems["resume1"].label = _("Resume") else: self.menuitems["pause1"].label = _("Offer Pause") self.menuitems["resume1"].label = _("Offer Resume") self._update_menu_pause_and_resume() self._update_menu_resign() if self.gamemodel.isLocalGame(): self.menuitems["undo1"].label = _("Undo") else: self.menuitems["undo1"].label = _("Offer Undo") self._update_menu_undo() self._update_menu_ask_to_move() if isinstance(gamemodel, ICGameModel) and not gamemodel.isObservationGame(): for item in self.menuitems: if item in self.menuitems.ANAL_MENU_ITEMS: self.menuitems[item].sensitive = False if not gamemodel.timed and not gamemodel.timemodel.hasTimes: try: self.boardvbox.remove(self.clock.get_parent()) except TypeError: # no clock pass def game_ended (self, gamemodel, reason): for item in self.menuitems: if item in self.menuitems.ANAL_MENU_ITEMS: self.menuitems[item].sensitive = True elif item not in self.menuitems.VIEW_MENU_ITEMS: self.menuitems[item].sensitive = False self._update_menu_undo() self._set_arrow(HINT, None) self._set_arrow(SPY, None) return False def game_changed (self, gamemodel, ply): '''This runs when the game changes. It updates everything.''' self._update_menu_abort() self._update_menu_ask_to_move() self._update_menu_draw() self._update_menu_pause_and_resume() self._update_menu_undo() if isinstance(gamemodel, ICGameModel): # on FICS game board change update allob allob = 'allob ' + str(gamemodel.ficsgame.gameno) gamemodel.connection.client.run_command(allob) for analyzer_type in (HINT, SPY): # only clear arrows if analyzer is examining the last position if analyzer_type in gamemodel.spectators and \ gamemodel.spectators[analyzer_type].board == gamemodel.boards[-1]: self._set_arrow(analyzer_type, None) self.name_changed(gamemodel.players[0]) #We may need to add * to name if gamemodel.isObservationGame() and not self.isInFront(): self.light_on_off(True) return False def game_saved(self, gamemodel, uri): '''Run when the game is saved. Will remove * from title.''' self.name_changed(gamemodel.players[0]) #We may need to remove * in name return False def game_paused (self, gamemodel): self._update_menu_pause_and_resume() self._update_menu_undo() self._update_menu_ask_to_move() return False def game_resumed (self, gamemodel): self._update_menu_pause_and_resume() self._update_menu_undo() self._update_menu_ask_to_move() return False def moves_undone (self, gamemodel, moves): self.game_changed(gamemodel, 0) return False def game_unended (self, gamemodel): self._update_menu_abort() self._update_menu_adjourn() self._update_menu_draw() self._update_menu_pause_and_resume() self._update_menu_resign() self._update_menu_undo() self._update_menu_ask_to_move() return False def _set_arrow (self, analyzer_type, coordinates): if self.gamemodel.isPlayingICSGame(): return if analyzer_type == HINT: self.board.view._setGreenarrow(coordinates) else: self.board.view._setRedarrow(coordinates) def _on_analyze (self, analyzer, analysis, analyzer_type): if self.board.view.animating: return if not self.menuitems[analyzer_type + "_mode"].active: return if len(analysis) >= 1 and analysis[0] is not None: movstrs, score, depth = analysis[0] board = analyzer.board try: moves = listToMoves (board, movstrs, validate=True) except ParsingError as e: # ParsingErrors may happen when parsing "old" lines from # analyzing engines, which haven't yet noticed their new tasks log.debug("__parseLine: Ignored (%s) from analyzer: ParsingError%s" % \ (' '.join(movstrs),e)) return except: return if moves and (self.gamemodel.curplayer.__type__ == LOCAL or \ [player.__type__ for player in self.gamemodel.players] == [REMOTE, REMOTE] or \ self.gamemodel.status not in UNFINISHED_STATES): if moves[0].flag == DROP: piece = lmove.FCORD(moves[0].move) color = board.color if analyzer_type == HINT else 1-board.color cord0 = board.getHoldingCord(color, piece) self._set_arrow(analyzer_type, (cord0, moves[0].cord1)) else: self._set_arrow(analyzer_type, moves[0].cords) else: self._set_arrow(analyzer_type, None) return False def analyzer_added (self, gamemodel, analyzer, analyzer_type): self.cids[analyzer] = \ analyzer.connect("analyze", self._on_analyze, analyzer_type) #self.menuitems[analyzer_type + "_mode"].active = True self.menuitems[analyzer_type + "_mode"].sensitive = True return False def analyzer_removed (self, gamemodel, analyzer, analyzer_type): self._set_arrow(analyzer_type, None) #self.menuitems[analyzer_type + "_mode"].active = False self.menuitems[analyzer_type + "_mode"].sensitive = False try: if analyzer.handler_is_connected(self.cids[analyzer]): analyzer.disconnect(self.cids[analyzer]) del self.cids[analyzer] except KeyError: pass return False def analyzer_resumed (self, gamemodel, analyzer, analyzer_type): self.menuitems[analyzer_type + "_mode"].active = True self._on_analyze(analyzer, analyzer.getAnalysis(), analyzer_type) return False def analyzer_paused (self, gamemodel, analyzer, analyzer_type): self.menuitems[analyzer_type + "_mode"].active = False self._set_arrow(analyzer_type, None) return False def player_display_text (self, color=WHITE): if isinstance(self.gamemodel, ICGameModel): return self.gamemodel.ficsplayers[color].name else: return repr(self.gamemodel.players[color]) @property def display_text (self): if not self.gamemodel.players: return "" '''This will give you the name of the game.''' vs = " - " t = vs.join((self.player_display_text(color=WHITE), self.player_display_text(color=BLACK))) return t def players_changed (self, gamemodel): log.debug("GameWidget.players_changed: starting %s" % repr(gamemodel)) for player in gamemodel.players: self.name_changed(player) # Notice that this may connect the same player many times. In # normal use that shouldn't be a problem. player.connect("name_changed", self.name_changed) log.debug("GameWidget.players_changed: returning") def name_changed (self, player): log.debug("GameWidget.name_changed: starting %s" % repr(player)) color = self.gamemodel.color(player) @idle_add def do_name_changed(): self.player_name_labels[color].set_text( self.player_display_text(color=color)) if isinstance(self.gamemodel, ICGameModel) and \ player.__type__ == REMOTE: self.player_name_labels[color].set_tooltip_text( get_player_tooltip_text(self.gamemodel.ficsplayers[color], show_status=False)) do_name_changed() self.emit('title_changed', self.display_text) log.debug("GameWidget.name_changed: returning") def message_received(self, gamemodel, name, msg): if gamemodel.isObservationGame() and not self.isInFront(): text = self.game_info_label.get_text() self.game_info_label.set_markup('%s' % text) def zero_reached (self, timemodel, color): if self.gamemodel.status not in UNFINISHED_STATES: return if self.gamemodel.players[0].__type__ == LOCAL \ and self.gamemodel.players[1].__type__ == LOCAL: self.menuitems["call_flag"].sensitive = True return for player in self.gamemodel.players: opplayercolor = BLACK if player == self.gamemodel.players[WHITE] else WHITE if player.__type__ == LOCAL and opplayercolor == color: log.debug("gamewidget.zero_reached: LOCAL player=%s, color=%s" % \ (repr(player), str(color))) self.menuitems["call_flag"].sensitive = True break @idle_add def player_lagged (self, bm, player): if player in self.gamemodel.ficsplayers: content = get_infobarmessage_content(player, _(" has lagged for 30 seconds"), self.gamemodel.ficsgame.game_type) def response_cb (infobar, response, message): message.dismiss() return False message = InfoBarMessage(Gtk.MessageType.INFO, content, response_cb) message.add_button(InfoBarMessageButton(Gtk.STOCK_CLOSE, Gtk.ResponseType.CANCEL)) self.showMessage(message) return False @idle_add def opp_not_out_of_time (self, bm): if self.gamemodel.remote_player.time <= 0: content = get_infobarmessage_content2( self.gamemodel.remote_ficsplayer, _(" is lagging heavily but hasn't disconnected"), _("Continue to wait for opponent, or try to adjourn the game?"), gametype=self.gamemodel.ficsgame.game_type) def response_cb (infobar, response, message): if response == 2: self.gamemodel.connection.client.run_command("adjourn") message.dismiss() return False message = InfoBarMessage(Gtk.MessageType.QUESTION, content, response_cb) message.add_button(InfoBarMessageButton(_("Wait"), Gtk.ResponseType.CANCEL)) message.add_button(InfoBarMessageButton(_("Adjourn"), 2)) self.showMessage(message) return False def initTabcontents(self): tabcontent = createAlignment(0,0,0,0) hbox = Gtk.HBox() hbox.set_spacing(4) hbox.pack_start(createImage(light_off), False, True, 0) close_button = Gtk.Button() close_button.set_property("can-focus", False) close_button.add(createImage(gtk_close)) close_button.set_relief(Gtk.ReliefStyle.NONE) close_button.set_size_request(20, 18) def on_game_close_clicked(button): log.debug("gamewidget.on_game_close_clicked %s" % button) self.emit("game_close_clicked") close_button.connect("clicked", on_game_close_clicked) hbox.pack_end(close_button, False, True, 0) text_hbox = Gtk.HBox() white_label = Gtk.Label(label="") text_hbox.pack_start(white_label, False, True, 0) text_hbox.pack_start(Gtk.Label(" - " ), False, True, 0) black_label = Gtk.Label(label="") text_hbox.pack_start(black_label, False, True, 0) gameinfo_label = Gtk.Label(label="") text_hbox.pack_start(gameinfo_label, False, True, 0) # label.set_alignment(0,.7) hbox.pack_end(text_hbox, True, True, 0) tabcontent.add(hbox) tabcontent.show_all() # Gtk doesn't show tab labels when the rest is return tabcontent, white_label, black_label, gameinfo_label def initBoardAndClock(self, gamemodel): boardvbox = Gtk.VBox() boardvbox.set_spacing(2) infobar = InfoBarNotebook() ccalign = createAlignment(0, 0, 0, 0) cclock = ChessClock() cclock.setModel(gamemodel.timemodel) ccalign.add(cclock) ccalign.set_size_request(-1, 32) boardvbox.pack_start(ccalign, False, True, 0) actionMenuDic = {} for item in ACTION_MENU_ITEMS: actionMenuDic[item] = widgets[item] board = BoardControl(gamemodel, actionMenuDic) boardvbox.pack_start(board, True, True, 0) return boardvbox, board, infobar, cclock def initStatusbar(self, board): def tip (widget, x, y, keyboard_mode, tooltip, text): l = Gtk.Label(label=text) tooltip.set_custom(l) l.show() return True align = createAlignment (4, 0, 4, 0) #stat_hbox = Gtk.HBox() #page_vbox = Gtk.VBox() #page_vbox.set_spacing(1) #sep = Gtk.HSeparator() #sep.set_size_request(-1, 2) page_hbox = Gtk.HBox() startbut = Gtk.Button() startbut.add(createImage(media_previous)) startbut.set_relief(Gtk.ReliefStyle.NONE) startbut.props.has_tooltip = True startbut.connect("query-tooltip", tip, _("Jump to initial position")) backbut = Gtk.Button() backbut.add(createImage(media_rewind)) backbut.set_relief(Gtk.ReliefStyle.NONE) backbut.props.has_tooltip = True backbut.connect("query-tooltip", tip, _("Step back one move")) mainbut = Gtk.Button() mainbut.add(createImage(media_eject)) mainbut.set_relief(Gtk.ReliefStyle.NONE) mainbut.props.has_tooltip = True mainbut.connect("query-tooltip", tip, _("Go back to the main line")) forwbut = Gtk.Button() forwbut.add(createImage(media_forward)) forwbut.set_relief(Gtk.ReliefStyle.NONE) forwbut.props.has_tooltip = True forwbut.connect("query-tooltip", tip, _("Step forward one move")) endbut = Gtk.Button() endbut.add(createImage(media_next)) endbut.set_relief(Gtk.ReliefStyle.NONE) endbut.props.has_tooltip = True endbut.connect("query-tooltip", tip, _("Jump to latest position")) startbut.connect("clicked", lambda w: board.view.showFirst()) backbut.connect("clicked", lambda w: board.view.showPrev()) mainbut.connect("clicked", lambda w: board.view.backToMainLine()) forwbut.connect("clicked", lambda w: board.view.showNext()) endbut.connect("clicked", lambda w: board.view.showLast()) page_hbox.pack_start(startbut, True, True, 0) page_hbox.pack_start(backbut, True, True, 0) page_hbox.pack_start(mainbut, True, True, 0) page_hbox.pack_start(forwbut, True, True, 0) page_hbox.pack_start(endbut, True, True, 0) #page_vbox.pack_start(sep, True, True, 0) #page_vbox.pack_start(page_hbox, True, True, 0) statusbar = Gtk.Statusbar() #stat_hbox.pack_start(page_vbox, False, True, 0) #stat_hbox.pack_start(statusbar, True, True, 0) align.add(page_hbox) return statusbar, align @idle_add def light_on_off(self, on): child = self.tabcontent.get_child() if child: child.remove(child.get_children()[0]) if on: #child.pack_start(createImage(light_on, True, True, 0), expand=False) child.pack_start(createImage(light_on), True, True, 0) else: #child.pack_start(createImage(light_off, True, True, 0), expand=False) child.pack_start(createImage(light_off), True, True, 0) self.tabcontent.show_all() def setLocked (self, locked): """ Makes the board insensitive and turns off the tab ready indicator """ log.debug("GameWidget.setLocked: %s locked=%s" % (self.gamemodel.players, str(locked))) self.board.setLocked(locked) if not self.tabcontent.get_children(): return if len(self.tabcontent.get_child().get_children()) < 2: log.warning("GameWidget.setLocked: Not removing last tabcontent child") return self.light_on_off(not locked) log.debug("GameWidget.setLocked: %s: returning" % self.gamemodel.players) @idle_add def status (self, message): # Enable only moves entered by keyboard # TODO: revise all statusbar messages, maybe some of them can be sent to infobar if len(message) > 7: return self.statusbar.pop(0) if message: #print "Setting statusbar to \"%s\"" % str(message) self.statusbar.push(0, message) def bringToFront (self): getheadbook().set_current_page(self.getPageNumber()) def isInFront(self): if not getheadbook(): return False return getheadbook().get_current_page() == self.getPageNumber() def getPageNumber (self): return getheadbook().page_num(self.notebookKey) def infobar_hidden (self, infobar): if self == cur_gmwidg(): notebooks["messageArea"].hide() def showMessage (self, message): self.infobar.push_message(message) if self == cur_gmwidg(): notebooks["messageArea"].show() def replaceMessages (self, message): """ Replace all messages with message """ if not self.closed: self.infobar.clear_messages() self.showMessage(message) def clearMessages (self): self.infobar.clear_messages() if self == cur_gmwidg(): notebooks["messageArea"].hide() def copy_pgn(self): output = StringIO() clipboard = Gtk.Clipboard.get(Gdk.SELECTION_CLIPBOARD) clipboard.set_text(pgn.save(output, self.gamemodel), -1) def copy_fen(self): output = StringIO() clipboard = Gtk.Clipboard.get(Gdk.SELECTION_CLIPBOARD) clipboard.set_text(fen.save(output, self.gamemodel, self.board.view.shown), -1) ################################################################################ # Main handling of gamewidgets # ################################################################################ def splitit(widget): if not hasattr(widget, 'get_children'): return for child in widget.get_children(): splitit(child) widget.remove(child) def delGameWidget (gmwidg): """ Remove the widget from the GUI after the game has been terminated """ log.debug("gamewidget.delGameWidget: starting %s" % repr(gmwidg)) gmwidg.closed = True gmwidg.emit("closed") called_from_preferences = False #wl = Gtk.window_list_toplevels() wl = Gtk.Window.list_toplevels() for window in wl: if window.is_active() and window == widgets["preferences"]: called_from_preferences = True break del key2gmwidg[gmwidg.notebookKey] pageNum = gmwidg.getPageNumber() headbook = getheadbook() headbook.remove_page(pageNum) for notebook in notebooks.values(): notebook.remove_page(pageNum) if headbook.get_n_pages() == 1 and conf.get("hideTabs", False): show_tabs(False) if headbook.get_n_pages() == 0: mainvbox = widgets["mainvbox"] centerVBox = mainvbox.get_children()[2] for child in centerVBox.get_children(): centerVBox.remove(child) mainvbox.remove(centerVBox) mainvbox.remove(mainvbox.get_children()[1]) mainvbox.pack_end(background, True, True, 0) background.show() if not called_from_preferences: # If the last (but not the designGW) gmwidg was closed # and we are FICS-ing, present the FICS lounge from pychess.ic.ICLogon import dialog try: dialog.lounge.present() except AttributeError: pass gmwidg._del() def _ensureReadForGameWidgets (): mainvbox = widgets["mainvbox"] if len(mainvbox.get_children()) == 3: return global background background = widgets["mainvbox"].get_children()[1] mainvbox.remove(background) # Initing headbook align = createAlignment (4, 4, 0, 4) align.set_property("yscale", 0) headbook = Gtk.Notebook() headbook.set_scrollable(True) align.add(headbook) mainvbox.pack_start(align, False, True, 0) show_tabs(not conf.get("hideTabs", False)) # Initing center centerVBox = Gtk.VBox() # The dock global dock, dockAlign dock = PyDockTop("main") dockAlign = createAlignment(4,4,0,4) dockAlign.add(dock) centerVBox.pack_start(dockAlign, True, True, 0) dockAlign.show() dock.show() for panel in sidePanels: hbox = Gtk.HBox() pixbuf = get_pixbuf(panel.__icon__, 16) icon = Gtk.Image.new_from_pixbuf(pixbuf) label = Gtk.Label(label=panel.__title__) label.set_size_request(0, 0) label.set_alignment(0, 1) hbox.pack_start(icon, False, False, 0) hbox.pack_start(label, True, True, 0) hbox.set_spacing(2) hbox.show_all() def cb (widget, x, y, keyboard_mode, tooltip, title, desc, filename): table = Gtk.Table(2,2) table.set_row_spacings(2) table.set_col_spacings(6) table.set_border_width(4) pixbuf = get_pixbuf(filename, 56) image = Gtk.Image.new_from_pixbuf(pixbuf) image.set_alignment(0, 0) table.attach(image, 0,1,0,2) titleLabel = Gtk.Label() titleLabel.set_markup("%s" % title) titleLabel.set_alignment(0, 0) table.attach(titleLabel, 1,2,0,1) descLabel = Gtk.Label(label=desc) descLabel.props.wrap = True table.attach(descLabel, 1,2,1,2) tooltip.set_custom(table) table.show_all() return True hbox.props.has_tooltip = True hbox.connect("query-tooltip", cb, panel.__title__, panel.__desc__, panel.__icon__) docks[panel.__name__] = (hbox, notebooks[panel.__name__]) if os.path.isfile(dockLocation): try: dock.loadFromXML(dockLocation, docks) except Exception as e: stringio = StringIO() traceback.print_exc(file=stringio) error = stringio.getvalue() log.error("Dock loading error: %s\n%s" % (e, error)) md = Gtk.MessageDialog(widgets["window1"], type=Gtk.MessageType.ERROR, buttons=Gtk.ButtonsType.CLOSE) md.set_markup(_("PyChess was unable to load your panel settings")) md.format_secondary_text(_("Your panel settings have been reset. If this problem repeats, you should report it to the developers")) md.run() md.hide() os.remove(dockLocation) for title, panel in docks.values(): title.unparent() panel.unparent() if not os.path.isfile(dockLocation): leaf = dock.dock(docks["board"][1], CENTER, Gtk.Label(label=docks["board"][0]), "board") docks["board"][1].show_all() leaf.setDockable(False) # S epanel = leaf.dock(docks["bookPanel"][1], SOUTH, docks["bookPanel"][0], "bookPanel") epanel.default_item_height = 45 epanel = epanel.dock(docks["engineOutputPanel"][1], CENTER, docks["engineOutputPanel"][0], "engineOutputPanel") # NE leaf = leaf.dock(docks["annotationPanel"][1], EAST, docks["annotationPanel"][0], "annotationPanel") leaf = leaf.dock(docks["historyPanel"][1], CENTER, docks["historyPanel"][0], "historyPanel") leaf = leaf.dock(docks["scorePanel"][1], CENTER, docks["scorePanel"][0], "scorePanel") # SE leaf = leaf.dock(docks["chatPanel"][1], SOUTH, docks["chatPanel"][0], "chatPanel") leaf = leaf.dock(docks["commentPanel"][1], CENTER, docks["commentPanel"][0], "commentPanel") def unrealize (dock): # unhide the panel before saving so its configuration is saved correctly notebooks["board"].get_parent().get_parent().zoomDown() dock.saveToXML(dockLocation) dock._del() dock.connect("unrealize", unrealize) hbox = Gtk.HBox() # The status bar notebooks["statusbar"].set_border_width(4) hbox.pack_start(notebooks["statusbar"], False, True, 0) # The message area # TODO: If you try to fix this first read issue #958 and 1018 align = createAlignment(0,0,0,0) #sw = Gtk.ScrolledWindow() #port = Gtk.Viewport() #port.add(notebooks["messageArea"]) #sw.add(port) #align.add(sw) align.add(notebooks["messageArea"]) hbox.pack_start(align, True, True, 0) def ma_switch_page (notebook, gpointer, page_num): notebook.props.visible = notebook.get_nth_page(page_num).get_child().props.visible notebooks["messageArea"].connect("switch-page", ma_switch_page) centerVBox.pack_start(hbox, False, True, 0) mainvbox.pack_start(centerVBox, True, True, 0) centerVBox.show_all() mainvbox.show() # Connecting headbook to other notebooks def hb_switch_page (notebook, gpointer, page_num): for notebook in notebooks.values(): notebook.set_current_page(page_num) # log.debug("HB_switch ficsgame no. %s , %s " % (key2gmwidg[getheadbook().get_nth_page(page_num)].gamemodel.ficsgame.gameno,str(page_num))) gmwidg = key2gmwidg[getheadbook().get_nth_page(page_num)] if isinstance(gmwidg.gamemodel, ICGameModel): primary = "primary " + str(gmwidg.gamemodel.ficsgame.gameno) gmwidg.gamemodel.connection.client.run_command(primary) headbook.connect("switch-page", hb_switch_page) if hasattr(headbook, "set_tab_reorderable"): def page_reordered (widget, child, new_num, headbook): old_num = notebooks["board"].page_num(key2gmwidg[child].boardvbox) if old_num == -1: log.error('Games and labels are out of sync!') else: for notebook in notebooks.values(): notebook.reorder_child(notebook.get_nth_page(old_num), new_num) headbook.connect("page-reordered", page_reordered, headbook) def attachGameWidget (gmwidg): log.debug("attachGameWidget: %s" % gmwidg) _ensureReadForGameWidgets() headbook = getheadbook() key2gmwidg[gmwidg.notebookKey] = gmwidg headbook.append_page(gmwidg.notebookKey, gmwidg.tabcontent) gmwidg.notebookKey.show_all() #headbook.set_tab_label_packing(gmwidg.notebookKey, True, True, Gtk.PACK_START) if hasattr(headbook, "set_tab_reorderable"): headbook.set_tab_reorderable (gmwidg.notebookKey, True) def callback (notebook, gpointer, page_num, gmwidg): if notebook.get_nth_page(page_num) == gmwidg.notebookKey: gmwidg.emit("infront") if gmwidg.gamemodel.players and gmwidg.gamemodel.isObservationGame(): gmwidg.light_on_off(False) text = gmwidg.game_info_label.get_text() gmwidg.game_info_label.set_markup('%s' % text) headbook.connect_after("switch-page", callback, gmwidg) gmwidg.emit("infront") align = createAlignment(0,0,0,0) align.show() align.add(gmwidg.infobar) notebooks["messageArea"].append_page(align, None) notebooks["board"].append_page(gmwidg.boardvbox, None) gmwidg.boardvbox.show_all() for panel, instance in zip(sidePanels, gmwidg.panels): notebooks[panel.__name__].append_page(instance, None) instance.show_all() notebooks["statusbar"].append_page(gmwidg.stat_hbox, None) gmwidg.stat_hbox.show_all() # We should always show tabs if more than one exists if headbook.get_n_pages() == 2: show_tabs(True) headbook.set_current_page(-1) if headbook.get_n_pages() == 1 and not widgets["show_sidepanels"].get_active(): zoomToBoard(True) def cur_gmwidg (): headbook = getheadbook() if headbook == None: return None notebookKey = headbook.get_nth_page(headbook.get_current_page()) return key2gmwidg[notebookKey] def getheadbook (): if len(widgets["mainvbox"].get_children()) == 2: # If the headbook hasn't been added yet return None return widgets["mainvbox"].get_children()[1].get_child() def zoomToBoard (viewZoomed): if not notebooks["board"].get_parent(): return if viewZoomed: notebooks["board"].get_parent().get_parent().zoomUp() else: notebooks["board"].get_parent().get_parent().zoomDown() def show_tabs (show): if show: widgets["mainvbox"].get_children()[1].show_all() else: widgets["mainvbox"].get_children()[1].hide() def tabsCallback (none): head = getheadbook() if not head: return if head.get_n_pages() == 1: show_tabs(not conf.get("hideTabs", False)) conf.notify_add("hideTabs", tabsCallback) ################################################################################ # Handling of the special sidepanels-design-gamewidget used in preferences # ################################################################################ designGW = None def showDesignGW(): global designGW if not designGW: designGW = GameWidget(GameModel()) if isDesignGWShown(): return getWidgets()["show_sidepanels"].set_active(True) getWidgets()["show_sidepanels"].set_sensitive(False) attachGameWidget(designGW) def hideDesignGW(): if isDesignGWShown(): delGameWidget(designGW) getWidgets()["show_sidepanels"].set_sensitive(True) def isDesignGWShown(): return designGW in key2gmwidg.values() pychess-0.12.2/lib/pychess/Savers/0000755000175000017470000000000012653231274017244 5ustar tamasusers00000000000000pychess-0.12.2/lib/pychess/Savers/ChessFile.py0000755000175000017470000000474312641567764021513 0ustar tamasusers00000000000000import datetime from pychess.Utils.const import RUNNING class LoadingError (Exception): pass class ChessFile: """ This class descripes an opened chessfile. It is lazy in the sense of not parsing any games, that the user don't request. It has no catching. """ def __init__ (self, games): """ Games should be a list of the raw file data, splitted such that games[0] is used for game 0 etc. SourceUri must be the """ self.games = games self.sourceUri = None def loadToModel (self, gameno, position, model=None): """ Load the data of game "gameno" into the gamemodel If no model is specified, a new one will be created, loaded and returned """ raise NotImplementedError def __len__ (self): return len(self.games) def get_player_names (self, gameno): """ Returns the a tuple of the players names Default is ("Unknown", "Unknown") if nothing is specified """ return ("Unknown", "Unknown") def get_elo (self, gameno): """ Returns the a tuple of the players rating in ELO format Default is 1600 if nothing is specified in the file """ return (1600, 1600) def get_date (self, gameno): """ Returns the a tuple (year,month,day) of the game date Default is current time if nothing is specified in the file """ today = datetime.date.today() return today.timetuple()[:3] def get_site (self, gameno): """ Returns the a location at which the game took place Default is "?" if nothing is specified in the file """ return "?" def get_event (self, gameno): """ Returns the event at which the game took place Could be "World Chess Cup" or "My local tournament" Default is "?" if nothing is specified in the file """ return "?" def get_round (self, gameno): """ Returns the round of the event at which the game took place Pgn supports having subrounds like 2.1.5, but as of writing, only the first int is returned. Default is 1 if nothing is specified in the file """ return 1 def get_result (self, gameno): """ Returns the result of the game Can be any of: RUNNING, DRAW, WHITEWON or BLACKWON Default is RUNNING if nothing is specified in the file """ return RUNNING pychess-0.12.2/lib/pychess/Savers/png.py0000644000175000017470000000272112641567764020421 0ustar tamasusers00000000000000# -*- coding: UTF-8 -*- import os from gi.repository import Gtk import cairo from pychess.Utils.const import * from pychess.gfx import Pieces from pychess.widgets.BoardView import BoardView from pychess.widgets import gamewidget from pychess.System.prefix import addDataPrefix __label__ = _("Png image") __ending__ = "png" __append__ = False PADDING = 3 SQUARE = 40 def save(file, model, position=None): """Export the current position into a .png file""" d = Diagram(model) surface = cairo.ImageSurface(cairo.FORMAT_ARGB32, SQUARE*8, SQUARE*8) context = cairo.Context(surface) d.shown = position d.draw_position(context) surface.write_to_png(file.name) class Diagram(BoardView): def draw_position(self, context): context.set_source_rgb(0.5, 0.5, 0.5) self.__drawBoard (context) pieces = self.model.getBoardAtPly(self.shown) context.set_source_rgb(0, 0, 0) for y, row in enumerate(pieces.data): for x, piece in row.items(): if piece is not None: Pieces.drawPiece(piece, context, x*SQUARE, (7-y)*SQUARE, SQUARE) def __drawBoard(self, context): for x in range(8): for y in range(8): if (x+y) % 2 == 1: context.rectangle(x*SQUARE, y*SQUARE, SQUARE, SQUARE) context.fill() if not self.showCords: context.rectangle(0, 0, 8*SQUARE, 8*SQUARE) context.stroke() pychess-0.12.2/lib/pychess/Savers/chessalpha2.py0000755000175000017470000001131412641567764022033 0ustar tamasusers00000000000000# -*- coding: utf-8 -*- from __future__ import print_function from __future__ import unicode_literals from pychess.compat import unichr, entitydefs from pychess.Utils.Move import toFAN from pychess.Utils.const import * group = lambda l, s: [l[i:i+s] for i in range(0,len(l),s)] __label__ = _("Chess Alpha 2 Diagram") __ending__ = "html" __append__ = True #table[background][color][piece] diaPieces = ((('\'','Ê','Â','À','Ä','Æ','È'), ('\'','ê','â','à','ä','æ','è')), (('#','Ë','Ã','Á','Å','Ç','É'), ('#','ë','ã','á','å','ç','é'))) borderNums = ('¬','"','£','$','%','^','&','*') lisPieces = ((FAN_PIECES[BLACK][KNIGHT],'K'), (FAN_PIECES[BLACK][BISHOP],'J'), (FAN_PIECES[BLACK][ROOK],'L'), (FAN_PIECES[BLACK][QUEEN],'M'), (FAN_PIECES[BLACK][KING],'N'), (FAN_PIECES[WHITE][KNIGHT],'k'), (FAN_PIECES[WHITE][BISHOP],'j'), (FAN_PIECES[WHITE][ROOK],'l'), (FAN_PIECES[WHITE][QUEEN],'m'), (FAN_PIECES[WHITE][KING],'n'), ('†', '+'), ('‡', '+'), ('1/2', 'Z')) def fanconv(fan): for f,r in lisPieces: fan = fan.replace(f,r) return fan # Dictionaries and expressions for parsing diagrams entitydefs = dict(("&%s;"%a,unichr(ord(b)).encode('utf-8')) for a,b in entitydefs.items() if len(b)==1) def2entity = dict((b, a) for a,b in entitydefs.items()) style = """ @font-face {font-family: "Chess Alpha 2"; src: local("Chess Alpha 2"), url("http://pychess.org/fonts/ChessAlpha2.eot?") format("eot"), url("http://pychess.org/fonts/ChessAlpha2.woff") format("woff"), url("http://pychess.org/fonts/ChessAlpha2.ttf") format("truetype"), url("http://pychess.org/fonts/ChessAlpha2.svg#ChessAlpha2") format("svg"); font-weight:"normal"; font-style:"normal";} table.pychess {display:inline-block; vertical-align:top} table.pychess td {margin:0; padding:0; font-size:10pt; font-family:"Chess Alpha 2"; padding-left:.5em} table.pychess td.numa {width:0; text-align:right} table.pychess td.numa {width:0; text-align:right; padding-left:1em} table.pychess td.status {text-align:center; font-size:12pt; padding-right:2em} table.pychess pre {margin:0; padding:0; font-family:"Chess Alpha 2"; font-size:16pt; text-align:center; line-height:1}""" def save (file, model, position=None): """Saves the position as a diagram using chess fonts""" print("", file=file) print(""%style, file=file) print("", file=file) sanmvs = map(toFAN, model.boards[:-1], model.moves) sanmvs = map(fanconv, sanmvs) if model.lowply & 1: sanmvs = [">"]+list(sanmvs) if model.status in (DRAW, WHITEWON, BLACKWON): sanmvs.extend(['']*(-len(sanmvs)%2)) sanmvs.append(fanconv(reprResult[model.status])) sanmvs.extend(['']*(-len(sanmvs)%4)) sanmvs = group(sanmvs, 2) for i in range((len(sanmvs)+1)/2): left = i+1+model.lowply/2 writeMoves(file, str(i+1+model.lowply/2), sanmvs[i], str(left+len(sanmvs)/2), sanmvs[i+len(sanmvs)/2]) print("
", file=file)
    writeDiagram(file, model)
    print("
", file=file) file.close() def writeMoves(file, m1, movepair1, m2, movepair2): m1 += '.'; m2 += '.' if not movepair2[0]: m2 = '' print("%s%s%s" % (m1, movepair1[0], movepair1[1]), file=file) if not movepair2[1] and movepair2[0] in map(fanconv, reprResult): print("%s" % movepair2[0], file=file) else: print("%s%s%s" % (m2, movepair2[0], movepair2[1]), file=file) def writeDiagram(file, model, border = True, whitetop = False): data = model.boards[-1].data[:] if not whitetop: data.reverse() if border: print("[<<<<<<<<]", file=file) for y,row in enumerate(data): if whitetop: file.write("%s" % borderNums(y)) else: file.write("%s" % borderNums[7-y]) for x,piece in sorted(row.items()): # exclude captured pieces in holding if x>=0 and x<=7: bg = y%2==x%2 if piece == None: color = WHITE piece = EMPTY else: color = piece.color piece = piece.piece c = diaPieces[bg][color][piece] if c in def2entity: c = def2entity[c] file.write("%s" % c) file.write('\\\n') if border: print("{ABCDEFGH}", file=file) pychess-0.12.2/lib/pychess/Savers/pgn.py0000644000175000017470000004266612651723553020424 0ustar tamasusers00000000000000# -*- coding: UTF-8 -*- from __future__ import absolute_import from __future__ import print_function from __future__ import unicode_literals import re from datetime import date from pychess.compat import basestring, StringIO from pychess.System import conf from pychess.System.Log import log from pychess.Utils.Board import Board from pychess.Utils.lutils.LBoard import LBoard from pychess.Utils.GameModel import GameModel from pychess.Utils.lutils.lmove import toSAN from pychess.Utils.Move import Move from pychess.Utils.const import * from pychess.Utils.logic import getStatus from pychess.Utils.lutils.ldata import MATE_VALUE from pychess.Utils import prettyPrintScore from pychess.Variants import name2variant, NormalBoard from pychess.widgets.ChessClock import formatTime from .pgnbase import PgnBase, pgn_load from .ChessFile import LoadingError __label__ = _("Chess Game") __ending__ = "pgn" __append__ = True moveeval = re.compile("\[%eval ([+\-])?(?:#)?(\d+)(?:[,\.](\d{1,2}))?(?:/(\d{1,2}))?\]") movetime = re.compile("\[%emt (\d):(\d\d):(\d\d)(?:\.(\d\d\d))?\]") def wrap (string, length): lines = [] last = 0 while True: if len(string)-last <= length: lines.append(string[last:]) break i = string[last:length+last].rfind(" ") lines.append(string[last:i+last]) last += i + 1 return "\n".join(lines) def msToClockTimeTag (ms): """ Converts milliseconds to a chess clock time string in 'WhiteClock'/ 'BlackClock' PGN header format """ msec = ms % 1000 sec = ((ms - msec) % (1000 * 60)) / 1000 min = ((ms - sec*1000 - msec) % (1000*60*60)) / (1000*60) hour = ((ms - min*1000*60 - sec*1000 - msec) % (1000*60*60*24)) / (1000*60*60) return "%01d:%02d:%02d.%03d" % (hour, min, sec, msec) def parseClockTimeTag (tag): """ Parses 'WhiteClock'/'BlackClock' PGN headers and returns the time the player playing that color has left on their clock in milliseconds """ match = re.match("(\d{1,2}):(\d\d):(\d\d).(\d\d\d)", tag) if match: hour, min, sec, msec = match.groups() return int(msec) + int(sec)*1000 + int(min)*60*1000 + int(hour)*60*60*1000 def parseTimeControlTag (tag): """ Parses 'TimeControl' PGN header and returns the time and gain the players have on game satrt in seconds """ match = re.match("(\d+)(?:\+(\d+))?", tag) if match: secs, gain = match.groups() return int(secs), int(gain) if gain is not None else 0 def save (file, model, position=None): status = "%s" % reprResult[model.status] print('[Event "%s"]' % model.tags["Event"], file=file) print('[Site "%s"]' % model.tags["Site"], file=file) print('[Date "%04d.%02d.%02d"]' % \ (int(model.tags["Year"]), int(model.tags["Month"]), int(model.tags["Day"])), file=file) print('[Round "%s"]' % model.tags["Round"], file=file) print('[White "%s"]' % repr(model.players[WHITE]), file=file) print('[Black "%s"]' % repr(model.players[BLACK]), file=file) print('[Result "%s"]' % status, file=file) if "ECO" in model.tags: print('[ECO "%s"]' % model.tags["ECO"], file=file) if "WhiteElo" in model.tags: print('[WhiteElo "%s"]' % model.tags["WhiteElo"], file=file) if "BlackElo" in model.tags: print('[BlackElo "%s"]' % model.tags["BlackElo"], file=file) if "TimeControl" in model.tags: print('[TimeControl "%s"]' % model.tags["TimeControl"], file=file) if "Time" in model.tags: print('[Time "%s"]' % str(model.tags["Time"]), file=file) if model.timed: print('[WhiteClock "%s"]' % \ msToClockTimeTag(int(model.timemodel.getPlayerTime(WHITE) * 1000)), file=file) print('[BlackClock "%s"]' % \ msToClockTimeTag(int(model.timemodel.getPlayerTime(BLACK) * 1000)), file=file) if model.variant.variant != NORMALCHESS: print('[Variant "%s"]' % model.variant.cecp_name.capitalize(), file=file) if model.boards[0].asFen() != FEN_START: print('[SetUp "1"]', file=file) print('[FEN "%s"]' % model.boards[0].asFen(), file=file) print('[PlyCount "%s"]' % (model.ply-model.lowply), file=file) if "EventDate" in model.tags: print('[EventDate "%s"]' % model.tags["EventDate"], file=file) if "Annotator" in model.tags: print('[Annotator "%s"]' % model.tags["Annotator"], file=file) print("", file=file) save_emt = conf.get("saveEmt", False) save_eval = conf.get("saveEval", False) result = [] walk(model.boards[0].board, result, model, save_emt, save_eval) result = " ".join(result) result = wrap(result, 80) print(result, status, file=file) print("", file=file) output = file.getvalue() if isinstance(file, StringIO) else "" file.close() return output def walk(node, result, model, save_emt=False, save_eval=False, vari=False): """Prepares a game data for .pgn storage. Recursively walks the node tree to collect moves and comments into a resulting movetext string. Arguments: node - list (a tree of lboards created by the pgn parser) result - str (movetext strings)""" def store(text): if len(result) > 1 and result[-1] == "(": result[-1] = "(%s" % text elif text == ")": result[-1] = "%s)" % result[-1] else: result.append(text) while True: if node is None: break # Initial game or variation comment if node.prev is None: for child in node.children: if isinstance(child, basestring): store("{%s}" % child) node = node.next continue movecount = move_count(node, black_periods=(save_emt or save_eval) and "TimeControl" in model.tags) if movecount is not None: if movecount: store(movecount) move = node.lastMove store(toSAN(node.prev, move)) if (save_emt or save_eval) and not vari: emt_eval = "" if "TimeControl" in model.tags and save_emt: elapsed = model.timemodel.getElapsedMoveTime(node.plyCount - model.lowply) emt_eval = "[%%emt %s]" % formatTime(elapsed, clk2pgn=True) if node.plyCount in model.scores and save_eval: moves, score, depth = model.scores[node.plyCount] if node.color == BLACK: score = -score emt_eval += "[%%eval %0.2f/%s]" % (score / 100.0, depth) if emt_eval: store("{%s}" % emt_eval) for nag in node.nags: if nag: store(nag) for child in node.children: if isinstance(child, basestring): child = re.sub("\[%.*?\]", "", child) # comment if child: store("{%s}" % child) else: # variations if node.fen_was_applied: store("(") walk(child[0], result, model, save_emt, save_eval, vari=True) store(")") # variation after last played move is not valid pgn # but we will save it as in comment else: store("{Analyzer's primary variation:") walk(child[0], result, model, save_emt, save_eval, vari=True) store("}") if node.next: node = node.next else: break def move_count(node, black_periods=False): mvcount = None if node.fen_was_applied: ply = node.plyCount if ply % 2 == 1: mvcount = "%d." % (ply//2+1) elif node.prev.prev is None or node != node.prev.next or black_periods: # initial game move, or initial variation move mvcount = "%d..." % (ply//2) elif node.prev.children: # move after real(not [%foo bar]) comment need_mvcount = False for child in node.prev.children: if isinstance(child, basestring): if not child.startswith("[%"): need_mvcount = True break else: need_mvcount = True break if need_mvcount: mvcount = "%d..." % (ply//2) else: mvcount = "" else: mvcount = "" return mvcount def load(file): return pgn_load(file, klass=PGNFile) class PGNFile (PgnBase): def __init__ (self, games): PgnBase.__init__(self, games) def loadToModel (self, gameno, position=-1, model=None): if not model: model = GameModel() # the seven mandatory PGN headers model.tags['Event'] = self._getTag(gameno, 'Event') model.tags['Site'] = self._getTag(gameno, 'Site') model.tags['Date'] = self._getTag(gameno, 'Date') model.tags['Round'] = self.get_round(gameno) model.tags['White'], model.tags['Black'] = self.get_player_names(gameno) model.tags['Result'] = reprResult[self.get_result(gameno)] pgnHasYearMonthDay = True for tag in ('Year', 'Month', 'Day'): if not self._getTag(gameno, tag): pgnHasYearMonthDay = False break if model.tags['Date'] and not pgnHasYearMonthDay: date_match = re.match(".*(\d{4}).(\d{2}).(\d{2}).*", model.tags['Date']) if date_match: year, month, day = date_match.groups() model.tags['Year'] = year model.tags['Month'] = month model.tags['Day'] = day # non-mandatory headers for tag in ('Annotator', 'ECO', 'EventDate', 'Time', 'WhiteElo', 'BlackElo', 'TimeControl'): if self._getTag(gameno, tag): model.tags[tag] = self._getTag(gameno, tag) else: model.tags[tag] = "" # TODO: enable this when NewGameDialog is altered to give user option of # whether to use PGN's clock time, or their own custom time. Also, # dialog should set+insensitize variant based on the variant of the # game selected in the dialog if model.tags['TimeControl']: secs, gain = parseTimeControlTag(model.tags['TimeControl']) model.timed = True model.timemodel.secs = secs model.timemodel.gain = gain model.timemodel.minutes = secs / 60 for tag, color in (('WhiteClock', WHITE), ('BlackClock', BLACK)): if self._getTag(gameno, tag): try: ms = parseClockTimeTag(self._getTag(gameno, tag)) # We need to fix when FICS reports negative clock time like this # [TimeControl "180+0"] # [WhiteClock "0:00:15.867"] # [BlackClock "23:59:58.820"] start_sec = (ms - 24*60*60*1000) / 1000. if ms > 23*60*60*1000 else ms / 1000. model.timemodel.intervals[color][0] = start_sec except ValueError: raise LoadingError( \ "Error parsing '%s' Header for gameno %s" % (tag, gameno)) fenstr = self._getTag(gameno, "FEN") variant = self.get_variant(gameno) if variant: model.tags["Variant"] = variant # Fixes for some non statndard Chess960 .pgn if (fenstr is not None) and variant == "Fischerandom": parts = fenstr.split() parts[0] = parts[0].replace(".", "/").replace("0", "") if len(parts) == 1: parts.append("w") parts.append("-") parts.append("-") fenstr = " ".join(parts) model.variant = name2variant[variant] board = LBoard(model.variant.variant) else: model.variant = NormalBoard board = LBoard() if fenstr: try: board.applyFen(fenstr) except SyntaxError as e: board.applyFen(FEN_EMPTY) raise LoadingError(_("The game can't be loaded, because of an error parsing FEN"), e.args[0]) else: board.applyFen(FEN_START) boards = [board] del model.moves[:] del model.variations[:] self.error = None movetext = self.get_movetext(gameno) boards = self.parse_string(movetext, boards[0], position) # The parser built a tree of lboard objects, now we have to # create the high level Board and Move lists... for board in boards: if board.lastMove is not None: model.moves.append(Move(board.lastMove)) self.has_emt = False self.has_eval = False def walk(node, path): if node.prev is None: # initial game board board = model.variant(setup=node.asFen(), lboard=node) else: move = Move(node.lastMove) try: board = node.prev.pieceBoard.move(move, lboard=node) except: raise LoadingError(_("Invalid move."), "%s%s" % (move_count(node, black_periods=True), move)) if node.next is None: model.variations.append(path+[board]) else: walk(node.next, path+[board]) for child in node.children: if isinstance(child, list): if len(child) > 1: # non empty variation, go walk walk(child[1], list(path)) else: if not self.has_emt: self.has_emt = child.find("%emt") >= 0 if not self.has_eval: self.has_eval = child.find("%eval") >= 0 # Collect all variation paths into a list of board lists # where the first one will be the boards of mainline game. # model.boards will allways point to the current shown variation # which will be model.variations[0] when we are in the mainline. walk(boards[0], []) model.boards = model.variations[0] self.has_emt = self.has_emt and "TimeControl" in model.tags if self.has_emt or self.has_eval: if self.has_emt: blacks = len(model.moves)//2 whites = len(model.moves)-blacks model.timemodel.intervals = [ [model.timemodel.intervals[0][0]]*(whites+1), [model.timemodel.intervals[1][0]]*(blacks+1), ] secs, gain = parseTimeControlTag(model.tags['TimeControl']) model.timemodel.intervals[0][0] = secs model.timemodel.intervals[1][0] = secs for ply, board in enumerate(boards): for child in board.children: if isinstance(child, basestring): if self.has_emt: match = movetime.search(child) if match: movecount, color = divmod(ply+1, 2) hour, minute, sec, msec = match.groups() prev = model.timemodel.intervals[color][movecount-1] msec = 0 if msec is None else int(msec) msec += int(sec)*1000 + int(minute)*60*1000 + int(hour)*60*60*1000 model.timemodel.intervals[color][movecount] = prev - msec/1000. + gain if self.has_eval: match = moveeval.search(child) if match: sign, num, fraction, depth = match.groups() sign = 1 if sign is None or sign == "+" else -1 num = int(num) if int(num) == MATE_VALUE else int(num) fraction = 0 if fraction is None else int(fraction) value = sign * (num * 100 + fraction) depth = "" if depth is None else depth if board.color == BLACK: value = -value model.scores[ply] = ("", value, depth) log.debug("pgn.loadToModel: intervals %s" % model.timemodel.intervals) # Find the physical status of the game model.status, model.reason = getStatus(model.boards[-1]) # Apply result from .pgn if the last position was loaded if position == -1 or len(model.moves) == position - model.lowply: status = self.get_result(gameno) if status in (WHITEWON, BLACKWON) and status != model.status: model.status = status model.reason = WON_RESIGN elif status == DRAW and status != model.status: model.status = DRAW model.reason = DRAW_AGREE # If parsing gave an error we throw it now, to enlarge our possibility # of being able to continue the game from where it failed. if self.error: raise self.error return model pychess-0.12.2/lib/pychess/Savers/chesspastebin.py0000644000175000017470000000301212641567764022462 0ustar tamasusers00000000000000from __future__ import print_function from gi.repository import Gdk from gi.repository import Gtk from pychess.Savers import pgn from pychess.compat import Request, urlencode, urlopen, HTTPError, URLError, StringIO URL = "http://www.chesspastebin.com/api/add/" APIKEY = "a137d919b75c8766b082367610189358cfb1ba70" def paste(gamemodel): output = StringIO() text = pgn.save(output, gamemodel) values = {'apikey' : APIKEY, 'pgn' : text, "name": "PyChess", 'sandbox' : 'false' } data = urlencode(values).encode('utf-8') req = Request(URL, data) try: response = urlopen(req, timeout=10) except URLError as e: if hasattr(e, 'reason'): print('We failed to reach the server.') print('Reason: ', e.reason) elif hasattr(e, 'code'): print('The server couldn\'t fulfill the request.') print('Error code: ', e.code) else: ID = response.read() link = "http://www.chesspastebin.com/?p=%s" % int(ID) clipboard = Gtk.Clipboard.get(Gdk.SELECTION_CLIPBOARD) clipboard.set_text(link, -1) #print(text) #print(clipboard.wait_for_text()) d = Gtk.MessageDialog(type=Gtk.MessageType.INFO, buttons=Gtk.ButtonsType.OK) msg = _("Game shared at ") + 'chesspastebin.com' % link d.set_markup(msg) d.format_secondary_text(_("(Link is available on clipboard.)")) d.connect("response", lambda d,a: d.hide()) d.show() pychess-0.12.2/lib/pychess/Savers/__init__.py0000755000175000017470000000006612641567764021377 0ustar tamasusers00000000000000__all__ = ["fen", "epd", "pgn", 'chessalpha2', 'png'] pychess-0.12.2/lib/pychess/Savers/epd.py0000755000175000017470000001247512641567764020417 0ustar tamasusers00000000000000from __future__ import absolute_import from __future__ import print_function from __future__ import unicode_literals from pychess.compat import strip from .ChessFile import ChessFile, LoadingError from pychess.Utils.GameModel import GameModel from pychess.Utils.const import WHITE, BLACK, WON_RESIGN, WAITING_TO_START, BLACKWON, WHITEWON, DRAW from pychess.Utils.logic import getStatus from pychess.Utils.lutils.leval import evaluateComplete __label__ = _("Chess Position") __ending__ = "epd" __append__ = True def save (file, model, position=None): """Saves game to file in fen format""" color = model.boards[-1].color fen = model.boards[-1].asFen().split(" ") # First four parts of fen are the same in epd file.write(" ".join(fen[:4])) ############################################################################ # Repetition count # ############################################################################ rc = model.boards[-1].board.repetitionCount() ############################################################################ # Centipawn evaluation # ############################################################################ if model.status == WHITEWON: if color == WHITE: ce = 32766 else: ce = -32766 elif model.status == BLACKWON: if color == WHITE: ce = -32766 else: ce = 32766 elif model.status == DRAW: ce = 0 else: ce = evaluateComplete(model.boards[-1].board, model.boards[-1].color) ############################################################################ # Opcodes # ############################################################################ opcodes = ( ("fmvn", fen[5]), # In fen full move number is the 6th field ("hmvc", fen[4]), # In fen halfmove clock is the 5th field # Email and name of receiver and sender. We don't know the email. ("tcri", "?@?.? %s" % repr(model.players[color]).replace(";","")), ("tcsi", "?@?.? %s" % repr(model.players[1-color]).replace(";","")), ("ce", ce), ("rc", rc), ) for key, value in opcodes: file.write(" %s %s;" % (key, value)) ############################################################################ # Resign opcode # ############################################################################ if model.status in (WHITEWON, BLACKWON) and model.reason == WON_RESIGN: file.write(" resign;") print("", file=file) file.close() def load (file): return EpdFile ([line.strip() for line in file if line]) class EpdFile (ChessFile): def loadToModel (self, gameno, position, model=None): if not model: model = GameModel() fieldlist = self.games[gameno].split(" ") if len(fieldlist) == 4: fen = self.games[gameno] opcodestr = "" elif len(fieldlist) > 4: fen = " ".join(fieldlist[:4]) opcodestr = " ".join(fieldlist[4:]) else: raise LoadingError("EPD string can not have less than 4 field") opcodes = {} for opcode in map(strip, opcodestr.split(";")): space = opcode.find(" ") if space == -1: opcodes[opcode] = True else: opcodes[opcode[:space]] = opcode[space+1:] if "hmvc" in opcodes: fen += " " + opcodes["hmvc"] else: fen += " 0" if "fmvn" in opcodes: fen += " " + opcodes["fmvn"] else: fen += " 1" model.boards = [model.variant(setup=fen)] model.variations = [model.boards] model.status = WAITING_TO_START # rc is kinda broken #if "rc" in opcodes: # model.boards[0].board.rc = int(opcodes["rc"]) if "resign" in opcodes: if fieldlist[1] == "w": model.status = BLACKWON else: model.status = WHITEWON model.reason = WON_RESIGN if model.status == WAITING_TO_START: status, reason = getStatus(model.boards[-1]) if status in (BLACKWON, WHITEWON, DRAW): model.status, model.reason = status, reason return model def get_player_names (self, gameno): data = self.games[gameno] names = {} for key in "tcri", "tcsi": keyindex = data.find(key) if keyindex == -1: names[key] = _("Unknown") else: sem = data.find(";", keyindex) if sem == -1: opcode = data[keyindex+len(key)+1:] else: opcode = data[keyindex+len(key)+1:sem] email, name = opcode.split(" ", 1) names[key] = name color = data.split(" ")[1] == "b" and BLACK or WHITE if color == WHITE: return (names["tcri"], names["tcsi"]) else: return (names["tcsi"], names["tcri"]) pychess-0.12.2/lib/pychess/Savers/fen.py0000755000175000017470000000342712641567764020414 0ustar tamasusers00000000000000from __future__ import absolute_import from __future__ import print_function from __future__ import unicode_literals from pychess.compat import StringIO from pychess.Utils.GameModel import GameModel from pychess.Utils.const import WAITING_TO_START, BLACKWON, WHITEWON, DRAW from pychess.Utils.logic import getStatus from .ChessFile import LoadingError __label__ = _("Simple Chess Position") __ending__ = "fen" __append__ = True def save (file, model, position=None): """Saves game to file in fen format""" print("%s" % model.boards[-1 if position is None else position].asFen(), file=file) output = file.getvalue() if isinstance(file, StringIO) else "" file.close() return output def load (file): return FenFile ([line.strip() for line in file if line]) from .ChessFile import ChessFile class FenFile (ChessFile): def loadToModel (self, gameno, position, model=None): if not model: model = GameModel() # We have to set full move number to 1 to make sure LBoard and GameModel # are synchronized. #fenlist = self.games[gameno].split(" ") #if len(fenlist) == 6: # fen = " ".join(fenlist[:5]) + " 1" fen = self.games[gameno] try: board = model.variant(setup=fen) except SyntaxError as e: board = model.variant() raise LoadingError(_("The game can't be loaded, because of an error parsing FEN"), e.args[0]) model.boards = [board] model.variations = [model.boards] model.moves = [] if model.status == WAITING_TO_START: status, reason = getStatus(model.boards[-1]) if status in (BLACKWON, WHITEWON, DRAW): model.status, model.reason = status, reason return model pychess-0.12.2/lib/pychess/Savers/database.py0000644000175000017470000002144512641567764021405 0ustar tamasusers00000000000000# -*- coding: UTF-8 -*- from __future__ import absolute_import from __future__ import print_function from array import array from sqlalchemy import select, func, and_ from .pgn import PGNFile from pychess.Utils.const import reprResult, WHITE, BLACK from pychess.Utils.const import * from pychess.Utils.lutils.LBoard import LBoard from pychess.Database import model as dbmodel from pychess.Database.dbwalk import walk, COMMENT, VARI_START, VARI_END, NAG from pychess.Database.model import metadata, event, site, player, pl1, pl2, game, annotator from pychess.Variants.fischerandom import FischerandomBoard __label__ = _("PyChess database") __endings__ = "pdb", __append__ = True def save (file, model, position=None): movelist = array("H") comments = [] walk(model.boards[0].board, movelist, comments) game_event = model.tags["Event"] game_site = model.tags["Site"] year, month, day = int(model.tags["Year"]), int(model.tags["Month"]), int(model.tags["Day"]) game_round = model.tags.get("Round") white = repr(model.players[WHITE]) black = repr(model.players[BLACK]) result = model.status eco = model.tags.get("ECO") board = int(model.tags.get("Board")) if model.tags.get("Board") else None white_elo = int(model.tags.get("WhiteElo")) if model.tags.get("WhiteElo") else None black_elo = int(model.tags.get("BlackElo")) if model.tags.get("BlackElo") else None variant = 1 if issubclass(model.variant, FischerandomBoard) else None fen = model.boards[0].board.asFen() fen = fen if fen != FEN_START else None game_annotator = model.tags.get("Annotator") ply_count = model.ply-model.lowply def get_id(table, name): if not name: return None s = select([table.c.id], table.c.name==name) result = conn.execute(s) id_ = result.scalar() if id_ is None: result = conn.execute(table.insert().values(name=name)) id_ = result.inserted_primary_key[0] return id_ conn = dbmodel.engine.connect() trans = conn.begin() try: event_id = get_id(event, game_event) site_id = get_id(site, game_site) white_id = get_id(player, white) black_id = get_id(player, black) annotator_id = get_id(annotator, game_annotator) wt = model.players[WHITE].__type__ bt = model.players[BLACK].__type__ if REMOTE in (wt, bt): collection_id = REMOTE elif ARTIFICIAL in (wt, bt): collection_id = ARTIFICIAL else: collection_id = LOCAL new_values = { 'event_id': event_id, 'site_id': site_id, 'date_year': year, 'date_month': month, 'date_day': day, 'round': game_round, 'white_id': white_id, 'black_id': black_id, 'result': result, 'white_elo': white_elo, 'black_elo': black_elo, 'ply_count': ply_count, 'eco': eco, 'board': board, 'fen': fen, 'variant': variant, 'annotator_id': annotator_id, 'collection_id': collection_id, 'movelist': movelist.tostring(), 'comments': "|".join(comments), } if hasattr(model, "game_id") and model.game_id is not None: result = conn.execute(game.update().where(game.c.id==model.game_id).values(new_values)) else: result = conn.execute(game.insert().values(new_values)) model.game_id = result.inserted_primary_key[0] trans.commit() except: trans.rollback() raise def load(file): conn = dbmodel.engine.connect() s = select([func.count(game.c.id)]) count = conn.execute(s).scalar() print("Database contains %s games" % count) s = select([player.c.name]) result = conn.execute(s) players = result.fetchall() print("Database contains %s players" % len(players)) s = select([game.c.id.label("Id"), pl1.c.name.label('White'), pl2.c.name.label('Black'), game.c.result.label('Result'), event.c.name.label('Event'), site.c.name.label('Site'), game.c.round.label('Round'), game.c.date_year.label('Year'), game.c.date_month.label('Month'), game.c.date_day.label('Day'), game.c.white_elo.label('WhiteElo'), game.c.black_elo.label('BlackElo'), game.c.eco.label('ECO'), game.c.fen.label('Board'), game.c.fen.label('FEN'), game.c.variant.label('Variant'), annotator.c.name.label('Annotator')], from_obj=[ game.outerjoin(pl1, game.c.white_id==pl1.c.id)\ .outerjoin(pl2, game.c.black_id==pl2.c.id)\ .outerjoin(event, game.c.event_id==event.c.id)\ .outerjoin(site, game.c.site_id==site.c.id)\ .outerjoin(annotator, game.c.annotator_id==annotator.c.id)]) result = conn.execute(s) colnames = result.keys() result.close() return Database([], colnames, s, count, players) class Database(PGNFile): def __init__ (self, games, colnames, select, count, players): PGNFile.__init__(self, games) self.colnames = colnames self.select = select self.count = count self.players = players self.comments = [] def get_movetext(self, gameno): s = select([game.c.movelist, game.c.comments], game.c.id==self.games[gameno][0]) conn = dbmodel.engine.connect() result = conn.execute(s).first() self.comments = result[1].split("|") arr = array("H") arr.fromstring(result[0]) return arr def loadToModel (self, gameno, position=-1, model=None): self.comment_idx = 0 model = PGNFile.loadToModel (self, gameno, position=position, model=model) model.game_id = self.games[gameno]["Id"] return model def _getTag (self, gameno, tagkey): if tagkey == "Result": return reprResult[self.games[gameno][tagkey]] if tagkey == "Date": y = self.games[gameno]['Year'] m = self.games[gameno]['Month'] d = self.games[gameno]['Day'] tag_date = "%s.%s.%s" % (y if y else "????", m if m else "??", d if d else "??") return tag_date if tagkey in self.colnames: tag = self.games[gameno][tagkey] return "%s" % (tag if tag else "") else: return "" def parse_string(self, movetext, board, position, variation=False): boards = [] last_board = board if variation: # this board used only to hold initial variation comments boards.append(LBoard(board.variant)) else: # initial game board boards.append(board) error = None parenthesis = 0 v_array = array("H") for elem in movetext: if parenthesis > 0: v_array.append(elem) if elem == VARI_END: parenthesis -= 1 if parenthesis == 0: v_last_board.children.append(self.parse_string(v_array[:-1], last_board.prev, position, variation=True)) v_array = array("H") continue elif elem == VARI_START: parenthesis += 1 if parenthesis == 1: v_last_board = last_board if parenthesis == 0: if elem < COMMENT: # a move if not variation: if position != -1 and last_board.ply >= position: break new_board = last_board.clone() new_board.applyMove(elem) new_board.prev = last_board # set last_board next, except starting a new variation if variation and last_board==board: boards[0].next = new_board else: last_board.next = new_board boards.append(new_board) last_board = new_board elif elem == COMMENT: comment = self.comments[self.comment_idx] self.comment_idx += 1 if variation and last_board==board: # initial variation comment boards[0].children.append(comment) else: last_board.children.append(comment) elif elem > NAG: # NAG last_board.nags.append("$%s" % (elem-NAG)) else: print("Unknown element in movelist array:", elem) if error: raise error return boards pychess-0.12.2/lib/pychess/Savers/pgnbase.py0000644000175000017470000002570512641567764021263 0ustar tamasusers00000000000000# -*- coding: UTF-8 -*- from __future__ import print_function import re from pychess.Utils.const import * from pychess.Utils.lutils.LBoard import LBoard from pychess.Utils.lutils.lmove import parseSAN, ParsingError from pychess.Savers.ChessFile import ChessFile, LoadingError # token categories COMMENT_REST, COMMENT_BRACE, COMMENT_NAG, \ VARIATION_START, VARIATION_END, \ RESULT, FULL_MOVE, MOVE, MOVE_COMMENT = range(1,10) pattern = re.compile(r""" (\;.*?[\n\r]) # comment, rest of line style |(\{.*?\}) # comment, between {} |(\$[0-9]+) # comment, Numeric Annotation Glyph |(\() # variation start |(\)) # variation end |(\*|1-0|0-1|1/2) # result (spec requires 1/2-1/2 for draw, but we want to tolerate simple 1/2 too) |( ([a-hKQRBNMSF][a-hxKQRBNMSF1-8+#=\-]{1,6} |[PNBRQMSFK]@[a-h][1-8][+#]? # drop move |o\-o(?:\-o)? |O\-O(?:\-O)? |0\-0(?:\-0)? |\-\-) # non standard '--' is used for null move inside variations ([\?!]{1,2})* ) # move (full, count, move with ?!, ?!) """, re.VERBOSE | re.DOTALL) class PgnBase(ChessFile): def __init__ (self, games): ChessFile.__init__(self, games) self.tagcache = {} def parse_string(self, string, board, position, variation=False): """Recursive parses a movelist part of one game. Arguments: srting - str (movelist) board - lboard (initial position) position - int (maximum ply to parse) variation- boolean (True if the string is a variation)""" boards = [] boards_append = boards.append last_board = board if variation: # this board used only to hold initial variation comments boards_append(LBoard(board.variant)) else: # initial game board boards_append(board) status = None parenthesis = 0 v_string = "" for m in re.finditer(pattern, string): group, text = m.lastindex, m.group(m.lastindex) if parenthesis > 0: v_string += ' '+text if group == VARIATION_END: parenthesis -= 1 if parenthesis == 0: v_last_board.children.append(self.parse_string(v_string[:-1], last_board.prev, position, variation=True)) v_string = "" continue elif group == VARIATION_START: parenthesis += 1 if parenthesis == 1: v_last_board = last_board if parenthesis == 0: if group == FULL_MOVE: if not variation: if position != -1 and last_board.plyCount >= position: break mstr = m.group(MOVE) try: lmove = parseSAN(last_board, mstr) except ParsingError as e: # TODO: save the rest as comment # last_board.children.append(string[m.start():]) notation, reason, boardfen = e.args ply = last_board.plyCount if ply % 2 == 0: moveno = "%d." % (ply//2+1) else: moveno = "%d..." % (ply//2+1) errstr1 = _("The game can't be read to end, because of an error parsing move %(moveno)s '%(notation)s'.") % { 'moveno': moveno, 'notation': notation} errstr2 = _("The move failed because %s.") % reason self.error = LoadingError (errstr1, errstr2) break except: ply = last_board.plyCount if ply % 2 == 0: moveno = "%d." % (ply//2+1) else: moveno = "%d..." % (ply//2+1) errstr1 = _( "Error parsing move %(moveno)s %(mstr)s") % {"moveno": moveno, "mstr": mstr} self.error = LoadingError (errstr1, "") break new_board = last_board.clone() new_board.applyMove(lmove) if m.group(MOVE_COMMENT): new_board.nags.append(symbol2nag(m.group(MOVE_COMMENT))) new_board.prev = last_board # set last_board next, except starting a new variation if variation and last_board==board: boards[0].next = new_board else: last_board.next = new_board boards_append(new_board) last_board = new_board elif group == COMMENT_REST: last_board.children.append(text[1:]) elif group == COMMENT_BRACE: comm = text.replace('{\r\n', '{').replace('\r\n}', '}') comm = comm[1:-1].splitlines() comment = ' '.join([line.strip() for line in comm]) if variation and last_board==board: # initial variation comment boards[0].children.append(comment) else: last_board.children.append(comment) elif group == COMMENT_NAG: last_board.nags.append(text) elif group == RESULT: if text == "1/2": status = reprResult.index("1/2-1/2") else: status = reprResult.index(text) break else: print("Unknown:",text) return boards #, status def _getTag (self, gameno, tagkey): if gameno in self.tagcache: if tagkey in self.tagcache[gameno]: return self.tagcache[gameno][tagkey] else: return "" else: if self.games: self.tagcache[gameno] = dict(tagre.findall(self.games[gameno][0])) return self._getTag(gameno, tagkey) else: return "" def get_movetext(self, no): return self.games[no][1] def get_variant(self, no): variant = self._getTag(no, "Variant") if variant: if "fischer" in variant.lower() or "960" in variant: return "Fischerandom" else: return variant.lower().capitalize() else: # FICS saves variant names in event tag event = self.get_event(no) if "Chess960" in event: return "Fischerandom" elif "atomic" in event.lower(): return "Atomic" elif "crazyhouse" in event.lower(): return "Crazyhouse" elif "wildcastle" in event.lower(): return "Wildcastle" elif "suicide" in event.lower(): return "Suicide" elif "losers" in event.lower(): return "Losers" else: return "" def get_player_names (self, no): p1 = self._getTag(no,"White") and self._getTag(no,"White") or "Unknown" p2 = self._getTag(no,"Black") and self._getTag(no,"Black") or "Unknown" return (p1, p2) def get_elo (self, no): p1 = self._getTag(no,"WhiteElo") and self._getTag(no,"WhiteElo") or "1600" p2 = self._getTag(no,"BlackElo") and self._getTag(no,"BlackElo") or "1600" p1 = p1.isdigit() and int(p1) or 1600 p2 = p2.isdigit() and int(p2) or 1600 return (p1, p2) def get_date (self, no): the_date = self._getTag(no,"Date") today = date.today() if not the_date: return today.timetuple()[:3] return [ s.isdigit() and int(s) or today.timetuple()[i] \ for i,s in enumerate(the_date.split(".")) ] def get_site (self, no): return self._getTag(no,"Site") and self._getTag(no,"Site") or "?" def get_event (self, no): return self._getTag(no,"Event") and self._getTag(no,"Event") or "?" def get_round (self, no): round = self._getTag(no,"Round") if not round: return 1 if round.find(".") >= 1: round = round[:round.find(".")] if not round.isdigit(): return 1 return int(round) def get_result (self, no): pgn2Const = {"*":RUNNING, "1/2-1/2":DRAW, "1/2":DRAW, "1-0":WHITEWON, "0-1":BLACKWON} if self._getTag(no,"Result") in pgn2Const: return pgn2Const[self._getTag(no,"Result")] return RUNNING tagre = re.compile(r"\[([a-zA-Z]+)[ \t]+['\"](.*?)['\"]\]") def pgn_load(file, klass=PgnBase): files = [] inTags = False for line in file: line = line.lstrip() if not line: continue elif line.startswith("%"): continue if line.startswith("["): if tagre.match(line) is not None: if not inTags: files.append(["",""]) inTags = True files[-1][0] += line else: if not inTags: files[-1][1] += line else: print("Warning: ignored invalid tag pair %s" % line) else: inTags = False if not files: # In rare cases there might not be any tags at all. It's not # legal, but we support it anyways. files.append(["",""]) files[-1][1] += line return klass(files) nag2symbolDict = { "$0": "", "$1": "!", "$2": "?", "$3": "!!", "$4": "??", "$5": "!?", "$6": "?!", "$7": "□", # forced move "$8": "□", "$9": "??", "$10": "=", "$11": "=", "$12": "=", "$13": "∞", # unclear "$14": "+=", "$15": "=+", "$16": "±", "$17": "∓", "$18": "+-", "$19": "-+", "$20": "+--", "$21": "--+", "$22": "⨀", # zugzwang "$23": "⨀", "$24": "◯", # space "$25": "◯", "$26": "◯", "$27": "◯", "$28": "◯", "$29": "◯", "$32": "⟳", # development "$33": "⟳", "$36": "↑", # initiative "$37": "↑", "$40": "→", # attack "$41": "→", "$44": "~=", # compensation "$45": "=~", "$132": "⇆", # counterplay "$133": "⇆", "$136": "⨁", # time "$137": "⨁", "$138": "⨁", "$139": "⨁", "$140": "∆", # with the idea "$141": "∇", # aimed against "$142": "⌓", # better is "$146": "N", # novelty } symbol2nagDict = {} for k, v in nag2symbolDict.items(): if v not in symbol2nagDict: symbol2nagDict[v] = k def nag2symbol(nag): return nag2symbolDict.get(nag, nag) def symbol2nag(symbol): return symbol2nagDict[symbol] pychess-0.12.2/lib/pychess/Players/0000755000175000017470000000000012653231274017420 5ustar tamasusers00000000000000pychess-0.12.2/lib/pychess/Players/ProtocolEngine.py0000755000175000017470000000213712641567764022744 0ustar tamasusers00000000000000from gi.repository import GObject from threading import Condition from pychess.System.Log import log from pychess.Players.Engine import Engine from pychess.Utils.const import * from pychess.Utils.repr import reprColor class ProtocolEngine (Engine): __gsignals__ = { "readyForOptions": (GObject.SignalFlags.RUN_FIRST, None, ()), "readyForMoves": (GObject.SignalFlags.RUN_FIRST, None, ()) } #=========================================================================== # Setting engine options #=========================================================================== def __init__ (self, subprocess, color, protover, md5): Engine.__init__(self, md5) self.engine = subprocess self.defname = subprocess.defname self.color = color self.protover = protover self.readyMoves = False self.readyOptions = False self.connected = True self.mode = NORMAL log.debug(reprColor[color], extra={"task":self.defname}) self.movecon = Condition() pychess-0.12.2/lib/pychess/Players/ICPlayer.py0000755000175000017470000002513412643750246021456 0ustar tamasusers00000000000000from collections import defaultdict from pychess.compat import Queue from pychess.Players.Player import Player, PlayerIsDead, TurnInterrupt from pychess.Utils.Move import parseSAN, toAN from pychess.Utils.lutils.lmove import ParsingError from pychess.Utils.Offer import Offer from pychess.Utils.const import * from pychess.System.Log import log class ICPlayer (Player): __type__ = REMOTE def __init__ (self, gamemodel, ichandle, gameno, color, name, icrating=None): Player.__init__(self) self.offers = {} self.queue = Queue() self.okqueue = Queue() self.setName(name) self.ichandle = ichandle self.icrating = icrating self.color = color self.gameno = gameno self.gamemodel = gamemodel # If some times later FICS creates another game with same wplayer,bplayer,gameno # this will change to False and boardUpdate messages will be ignored self.current = True self.connection = connection = self.gamemodel.connection self.connections = connections = defaultdict(list) connections[connection.bm].append(connection.bm.connect_after("boardUpdate", self.__boardUpdate)) connections[connection.bm].append(connection.bm.connect_after("playGameCreated", self.__playGameCreated)) connections[connection.bm].append(connection.bm.connect_after("obsGameCreated", self.__obsGameCreated)) connections[connection.om].append(connection.om.connect("onOfferAdd", self.__onOfferAdd)) connections[connection.om].append(connection.om.connect("onOfferRemove", self.__onOfferRemove)) connections[connection.om].append(connection.om.connect("onOfferDeclined", self.__onOfferDeclined)) connections[connection.cm].append(connection.cm.connect("privateMessage", self.__onPrivateMessage)) def getICHandle (self): return self.name @property def time (self): return self.gamemodel.timemodel.getPlayerTime(self.color) #=========================================================================== # Handle signals from the connection #=========================================================================== def __playGameCreated (self, bm, ficsgame): if self.gamemodel.ficsplayers[0] == ficsgame.wplayer and \ self.gamemodel.ficsplayers[1] == ficsgame.bplayer and \ self.gameno == ficsgame.gameno: log.debug("ICPlayer.__playGameCreated: gameno reappeared: gameno=%s white=%s black=%s" % \ (ficsgame.gameno, ficsgame.wplayer.name, ficsgame.bplayer.name)) self.current = False def __obsGameCreated (self, bm, ficsgame): if self.gamemodel.ficsplayers[0] == ficsgame.wplayer and \ self.gamemodel.ficsplayers[1] == ficsgame.bplayer and \ self.gameno == ficsgame.gameno: log.debug("ICPlayer.__obsGameCreated: gameno reappeared: gameno=%s white=%s black=%s" % \ (ficsgame.gameno, ficsgame.wplayer.name, ficsgame.bplayer.name)) self.current = False def __onOfferAdd (self, om, offer): if self.gamemodel.status in UNFINISHED_STATES and not self.gamemodel.isObservationGame(): log.debug("ICPlayer.__onOfferAdd: emitting offer: self.gameno=%s self.name=%s %s" % \ (self.gameno, self.name, offer)) self.offers[offer.index] = offer self.emit ("offer", offer) def __onOfferDeclined (self, om, offer): for offer_ in list(self.gamemodel.offers.keys()): if offer.type == offer_.type: offer.param = offer_.param log.debug("ICPlayer.__onOfferDeclined: emitting decline for %s" % offer) self.emit("decline", offer) def __onOfferRemove (self, om, offer): if offer.index in self.offers: log.debug("ICPlayer.__onOfferRemove: emitting withdraw: self.gameno=%s self.name=%s %s" % \ (self.gameno, self.name, offer)) self.emit ("withdraw", self.offers[offer.index]) del self.offers[offer.index] def __onPrivateMessage (self, cm, name, title, isadmin, text): if name == self.ichandle: self.emit("offer", Offer(CHAT_ACTION, param=text)) def __boardUpdate (self, bm, gameno, ply, curcol, lastmove, fen, wname, bname, wms, bms): log.debug("ICPlayer.__boardUpdate: id(self)=%d self=%s %s %s %s %d %d %s %s %d %d" % \ (id(self), self, gameno, wname, bname, ply, curcol, lastmove, fen, wms, bms)) if gameno == self.gameno and len(self.gamemodel.players) >= 2 \ and self.current: # LectureBot allways uses gameno 1 for many games in one lecture #and wname == self.gamemodel.players[0].ichandle \ #and bname == self.gamemodel.players[1].ichandle \ log.debug("ICPlayer.__boardUpdate: id=%d self=%s gameno=%s: this is my move" % \ (id(self), self, gameno)) # In some cases (like lost on time) the last move is resent if ply <= self.gamemodel.ply: return if 1-curcol == self.color and ply == self.gamemodel.ply+1 and lastmove is not None: log.debug("ICPlayer.__boardUpdate: id=%d self=%s ply=%d: putting move=%s in queue" % \ (id(self), self, ply, lastmove)) self.queue.put((ply, lastmove)) # Ensure the fics thread doesn't continue parsing, before the # game/player thread has received the move. # Specifically this ensures that we aren't killed due to end of # game before our last move is received self.okqueue.get(block=True) #=========================================================================== # Ending the game #=========================================================================== def __disconnect (self): if self.connections is None: return for obj in self.connections: for handler_id in self.connections[obj]: if obj.handler_is_connected(handler_id): obj.disconnect(handler_id) self.connections = None def end (self, status, reason): self.__disconnect() self.queue.put("del") def kill (self, reason): self.__disconnect() self.queue.put("del") #=========================================================================== # Send the player move updates #=========================================================================== def makeMove (self, board1, move, board2): log.debug("ICPlayer.makemove: id(self)=%d self=%s move=%s board1=%s board2=%s" % \ (id(self), self, move, board1, board2)) if board2 and not self.gamemodel.isObservationGame(): # TODO: Will this work if we just always use CASTLE_SAN? cn = CASTLE_KK if board2.variant == FISCHERRANDOMCHESS: cn = CASTLE_SAN self.connection.bm.sendMove (toAN (board2, move, castleNotation=cn)) item = self.queue.get(block=True) try: if item == "del": raise PlayerIsDead if item == "int": raise TurnInterrupt ply, sanmove = item if ply < board1.ply: # This should only happen in an observed game board1 = self.gamemodel.getBoardAtPly(max(ply-1, 0)) log.debug("ICPlayer.makemove: id(self)=%d self=%s from queue got: ply=%d sanmove=%s" % \ (id(self), self, ply, sanmove)) try: move = parseSAN (board1, sanmove) log.debug("ICPlayer.makemove: id(self)=%d self=%s parsed move=%s" % \ (id(self), self, move)) except ParsingError as e: raise return move finally: log.debug("ICPlayer.makemove: id(self)=%d self=%s returning move=%s" % \ (id(self), self, move)) self.okqueue.put("ok") #=========================================================================== # Interacting with the player #=========================================================================== def pause (self): pass def resume (self): pass def setBoard (self, fen): # setBoard will currently only be called for ServerPlayer when starting # to observe some game. In this case FICS already knows how the board # should look, and we don't need to set anything pass def playerUndoMoves (self, movecount, gamemodel): log.debug("ICPlayer.playerUndoMoves: id(self)=%d self=%s, undoing movecount=%d" % \ (id(self), self, movecount)) # If current player has changed so that it is no longer us to move, # We raise TurnInterruprt in order to let GameModel continue the game if movecount % 2 == 1 and gamemodel.curplayer != self: self.queue.put("int") def resetPosition (self): """ Used in observed examined games f.e. when LectureBot starts another example""" self.queue.put("int") def putMessage (self, text): self.connection.cm.tellPlayer (self.ichandle, text) #=========================================================================== # Offer handling #=========================================================================== def offerRematch (self): if self.gamemodel.timed: min = int(self.gamemodel.timemodel.intervals[0][0])/60 inc = self.gamemodel.timemodel.gain else: min = 0 inc = 0 self.connection.om.challenge(self.ichandle, self.gamemodel.ficsgame.game_type, min, inc, self.gamemodel.ficsgame.rated) def offer (self, offer): log.debug("ICPlayer.offer: self=%s %s" % (repr(self), offer)) if offer.type == TAKEBACK_OFFER: # only 1 outstanding takeback offer allowed on FICS, so remove any of ours for index in list(self.offers.keys()): if self.offers[index].type == TAKEBACK_OFFER: log.debug("ICPlayer.offer: del self.offers[%s] %s" % (index, offer)) del self.offers[index] self.connection.om.offer(offer, self.gamemodel.ply) def offerDeclined (self, offer): log.debug("ICPlayer.offerDeclined: sending decline for %s" % offer) self.connection.om.decline(offer) def offerWithdrawn (self, offer): pass def offerError (self, offer, error): pass def observe (self): self.connection.client.run_command("observe %s" % self.ichandle) pychess-0.12.2/lib/pychess/Players/CECPEngine.py0000644000175000017470000012073712641567764021661 0ustar tamasusers00000000000000from __future__ import absolute_import from __future__ import print_function from threading import RLock, Timer, Thread import itertools import re import time from gi.repository import Gtk from gi.repository import GObject from pychess.compat import Queue, Empty from pychess.System import conf, fident from pychess.System.Log import log from pychess.Utils.Move import Move from pychess.Utils.Board import Board from pychess.Utils.Cord import Cord from pychess.Utils.Move import toSAN, toAN, parseAny, listToMoves from pychess.Utils.Offer import Offer from pychess.Utils.const import * from pychess.Utils.logic import validate, getMoveKillingKing from pychess.Utils.lutils.ldata import MATE_VALUE from pychess.Utils.lutils.lmove import ParsingError from pychess.Variants import variants from pychess.Players.Player import PlayerIsDead, TurnInterrupt, InvalidMove from .ProtocolEngine import ProtocolEngine def isdigits (strings): for s in strings: s = s.replace(".","") if s.startswith("-"): if not s[1:].isdigit(): return False else: if not s.isdigit(): return False return True movere = re.compile(r""" ( # group start (?: # non grouping parenthesis start [PKQRBN]? # piece [a-h]?[1-8]? # unambiguous column or line x? # capture @? # drop [a-h][1-8] # destination square =?[QRBN]? # promotion |O\-O(?:\-O)? # castling |0\-0(?:\-0)? # castling ) # non grouping parenthesis end [+#]? # check/mate ) # group end \s* # any whitespace """, re.VERBOSE) d_plus_dot_expr = re.compile(r"\d+\.") anare = re.compile(""" ^ # beginning of string (\s* # \d+ [+\-\.]? # The ply analyzed. Some engines end it with a dot, minus or plus \s+) # (-?Mat\s*\d+ | [+\-\d\.]+) # The score found in centipawns. # Mat1 is used by gnuchess to specify mate in one. # otherwise we should support a signed float \s+ # [\d\.]+ # The time used in seconds \s+ # [\d\.]+ # Number of nodes visited \s+ # (.+) # The Principal-Variation. With or without move numbers \s* # $ # end of string """, re.VERBOSE) #anare = re.compile("\(d+)\.?\s+ (Mat\d+|[-\d\.]+) \s+ \d+\s+\d+\s+((?:%s\s*)+)" % mov) whitespaces = re.compile(r"\s+") def semisynced(f): """ All moveSynced methods will be queued up, and called in the right order after self.readyMoves is true """ def newFunction(*args, **kw): self = args[0] self.funcQueue.put((f, args, kw)) if self.readyMoves: self.boardLock.acquire() try: while True: try: func_, args_, kw_ = self.funcQueue.get_nowait() func_(*args_, **kw_) except TypeError as e: print("TypeError: %s" % repr(args)) raise except Empty: break finally: self.boardLock.release() return newFunction # There is no way in the CECP protocol to determine if an engine not answering # the protover=2 handshake with done=1 is old or just very slow. Thus we # need a timeout after which we conclude the engine is 'protover=1' and will # never answer. # XBoard will only give 2 seconds, but as we are quite sure that # the engines support the protocol, we can add more. We don't add # infinite time though, just in case. # The engine can get more time by sending done=0 TIME_OUT_FIRST = 10 # The amount of seconds to add for the second timeout TIME_OUT_SECOND = 15 class CECPEngine (ProtocolEngine): def __init__ (self, subprocess, color, protover, md5): ProtocolEngine.__init__(self, subprocess, color, protover, md5) self.features = { "ping": 0, "setboard": 0, "playother": 0, "san": 0, "usermove": 0, "time": 1, "draw": 1, "sigint": 0, "sigterm": 0, "reuse": 0, "analyze": 0, "myname": ', '.join(self.defname), "variants": None, "colors": 1, "ics": 0, "name": 0, "pause": 0, "nps": 0, "debug": 0, "memory": 0, "smp": 0, "egt": '', "option": '', "exclude": 0, "done": None, } self.supported_features = [ "ping", "setboard", "san", "usermove", "time", "draw", "sigint", "analyze", "myname", "variants", "colors", "pause", "done", "egt", "debug", "smp", "memory", "option" ] self.options = {} self.options["Ponder"] = {"name": "Ponder", "type": "check", "default": False} self.name = None self.board = Board(setup=True) # if self.engineIsInNotPlaying == True, engine is in "force" mode, # i.e. not thinking or playing, but still verifying move legality self.engineIsInNotPlaying = False self.engineIsAnalyzing = False self.movenext = False self.waitingForMove = False self.readyForMoveNowCommand = False self.timeHandicap = 1 self.lastping = 0 self.lastpong = 0 self.timeout = None self.returnQueue = Queue() self.engine.connect("line", self.parseLine) self.engine.connect("died", lambda e: self.returnQueue.put("del")) self.invalid_move = None self.funcQueue = Queue() self.optionQueue = [] self.boardLock = RLock() self.undoQueue = [] self.analysis_timer = None self.connect("readyForOptions", self.__onReadyForOptions_before) self.connect_after("readyForOptions", self.__onReadyForOptions) self.connect_after("readyForMoves", self.__onReadyForMoves) #=========================================================================== # Starting the game #=========================================================================== def prestart (self): print("xboard", file=self.engine) if self.protover == 1: # start a new game (CECPv1 engines): print("new", file=self.engine) # we are now ready for options: self.emit("readyForOptions") elif self.protover == 2: # start advanced protocol initialisation: print("protover 2", file=self.engine) # we don't start a new game for CECPv2 here, # we will do it after feature accept/reject is completed. # set timeout for feature accept/reject: self.timeout = time.time() + TIME_OUT_FIRST def start (self): if self.mode in (ANALYZING, INVERSE_ANALYZING): t = Thread(target=self.__startBlocking, name=fident(self.__startBlocking)) t.daemon = True t.start() else: self.__startBlocking() def __startBlocking (self): if self.protover == 1: self.emit("readyForMoves") if self.protover == 2: try: r = self.returnQueue.get(True, max(self.timeout-time.time(),0)) if r == "not ready": # The engine has sent done=0, and parseLine has added more # time to self.timeout r = self.returnQueue.get(True, max(self.timeout-time.time(),0)) # Gaviota sends done=0 after "xboard" and after "protover 2" too if r == "not ready": r = self.returnQueue.get(True, max(self.timeout-time.time(),0)) except Empty: log.warning("Got timeout error", extra={"task":self.defname}) self.emit("readyForOptions") self.emit("readyForMoves") else: if r == 'del': raise PlayerIsDead assert r == "ready" def __onReadyForOptions_before (self, self_): self.readyOptions = True def __onReadyForOptions (self, self_): # This is no longer needed #self.timeout = time.time() # We always want post turned on so the Engine Output sidebar can # show those things -Jonas Thiem print("post", file=self.engine) for command in self.optionQueue: print(command, file=self.engine) def __onReadyForMoves (self, self_): # If we are an analyzer, this signal was already called in a different # thread, so we can safely block it. if self.mode in (ANALYZING, INVERSE_ANALYZING): # workaround for crafty not sending analysis after it has found a mating line # http://code.google.com/p/pychess/issues/detail?id=515 if "crafty" in self.features["myname"].lower(): print("noise 0", file=self.engine) self.__sendAnalyze(self.mode == INVERSE_ANALYZING) self.readyMoves = True semisynced(lambda s:None)(self) #=========================================================================== # Ending the game #=========================================================================== @semisynced def end (self, status, reason): if self.connected: # We currently can't fillout the comment "field" as the repr strings # for reasons and statuses lies in Main.py # Creating Status and Reason class would solve this if status == DRAW: print("result 1/2-1/2 {?}", file=self.engine) elif status == WHITEWON: print("result 1-0 {?}", file=self.engine) elif status == BLACKWON: print("result 0-1 {?}", file=self.engine) else: print("result * {?}", file=self.engine) if reason == WON_ADJUDICATION: self.returnQueue.put("invalid") # Make sure the engine exits and do some cleaning self.kill(reason) def kill (self, reason): """ Kills the engine, starting with the 'quit' command, then sigterm and eventually sigkill. Returns the exitcode, or if engine have already been killed, returns None """ if self.connected: self.connected = False try: try: print("quit", file=self.engine) self.returnQueue.put("del") self.engine.gentleKill() except OSError as e: # No need to raise on a hang up error, as the engine is dead # anyways if e.errno == 32: log.warning("Hung up Error", extra={"task":self.defname}) return e.errno else: raise finally: # Clear the analyzed data, if any self.emit("analyze", []) if self.analysis_timer is not None: self.analysis_timer.cancel() self.analysis_timer.join() #=========================================================================== # Send the player move updates #=========================================================================== def setBoard (self, board): self.setBoardList([board], []) self.__sendAnalyze(self.mode == INVERSE_ANALYZING) @semisynced def putMove (self, board1, move, board2): """ Sends the engine the last move made (for spectator engines). @param board1: The current board @param move: The last move made @param board2: The board before the last move was made """ self.setBoardList([board1], []) self.__sendAnalyze(self.mode == INVERSE_ANALYZING) def makeMove (self, board1, move, board2): """ Gets a move from the engine (for player engines). @param board1: The current board @param move: The last move made @param board2: The board before the last move was made @return: The move the engine decided to make """ log.debug("makeMove: move=%s self.movenext=%s board1=%s board2=%s self.board=%s" % \ (move, self.movenext, board1, board2, self.board), extra={"task":self.defname}) assert self.readyMoves self.boardLock.acquire() try: if self.board == board1 or not board2 or self.movenext: self.board = board1 self.__tellEngineToPlayCurrentColorAndMakeMove() self.movenext = False else: self.board = board1 self.__usermove(board2, move) if self.engineIsInNotPlaying: self.__tellEngineToPlayCurrentColorAndMakeMove() finally: self.boardLock.release() self.waitingForMove = True self.readyForMoveNowCommand = True # Parse outputs r = self.returnQueue.get() if r == "not ready": log.warning("Engine seems to be protover=2, but is treated as protover=1", extra={"task":self.defname}) r = self.returnQueue.get() if r == "ready": r = self.returnQueue.get() if r == "invalid": raise InvalidMove if r == "del": raise PlayerIsDead("Killed by foreign forces") if r == "int": raise TurnInterrupt self.waitingForMove = False self.readyForMoveNowCommand = False assert isinstance(r, Move), r return r @semisynced def updateTime (self, secs, opsecs): if self.features["time"]: print("time %s" % int(secs*100*self.timeHandicap), file=self.engine) print("otim %s" % int(opsecs*100), file=self.engine) #=========================================================================== # Standard options #=========================================================================== def setOptionAnalyzing (self, mode): self.mode = mode def setOptionInitialBoard (self, model): # We don't use the optionQueue here, as set board prints a whole lot of # stuff. Instead we just call it, and let semisynced handle the rest. self.setBoardList(model.boards[:], model.moves[:]) @semisynced def setBoardList (self, boards, moves): # Notice: If this method is to be called while playing, the engine will # need 'new' and an arrangement similar to that of 'pause' to avoid # the current thought move to appear self.boardLock.acquire() try: if self.mode not in (ANALYZING, INVERSE_ANALYZING): self.__tellEngineToStopPlayingCurrentColor() self.__setBoard(boards[0]) self.board = boards[-1] for board, move in zip(boards[:-1], moves): self.__usermove(board, move) if self.mode in (ANALYZING, INVERSE_ANALYZING): self.board = boards[-1] if self.mode == INVERSE_ANALYZING: self.board = self.board.switchColor() # The called of setBoardList will have to repost/analyze the # analyzer engines at this point. finally: self.boardLock.release() def setOptionVariant (self, variant): if self.features["variants"] is None: log.warning("setOptionVariant: engine doesn't support variants", extra={"task":self.defname}) return if variant in variants.values() and not variant.standard_rules: assert variant.cecp_name in self.features["variants"], \ "%s doesn't support %s variant" % (self, variant.cecp_name) self.optionQueue.append("variant %s" % variant.cecp_name) #==================================================# # Strength system # #==================================================# # Strength Depth Ponder Time handicap # # 1 1 o 1,258% # # 2 2 o 1,584% # # 3 3 o 1.995% # # # # 19 o x 79,43% # # 20 o x o # #==================================================# def setOptionStrength (self, strength, forcePonderOff): self.strength = strength if strength <= 19: self.__setTimeHandicap(0.01 * 10**(strength/10.)) if strength <= 18: self.__setDepth(strength) # Crafty ofers 100 skill levels if "crafty" in self.features["myname"].lower() and strength <= 19: self.optionQueue.append("skill %s" % strength*5) self.__setPonder(strength >= 19 and not forcePonderOff) if strength == 20: if "gaviota" in self.features["egt"]: self.optionQueue.append("egtpath gaviota %s" % conf.get("egtb_path", "")) else: self.optionQueue.append("random") def __setDepth (self, depth): self.optionQueue.append("sd %d" % depth) def __setTimeHandicap (self, timeHandicap): self.timeHandicap = timeHandicap def __setPonder (self, ponder): if ponder: self.optionQueue.append("hard") else: self.optionQueue.append("hard") self.optionQueue.append("easy") def setOptionTime (self, secs, gain): # Notice: In CECP we apply time handicap in updateTime, not in # setOptionTime. minutes = int(secs / 60) secs = int(secs % 60) s = str(minutes) if secs: s += ":" + str(secs) self.optionQueue.append("level 0 %s %d" % (s, gain)) #=========================================================================== # Option handling #=========================================================================== def setOption (self, key, value): """ Set an option, which will be sent to the engine, after the 'readyForOptions' signal has passed. If you want to know the possible options, you should go to engineDiscoverer or use the getOption, getOptions and hasOption methods, while you are in your 'readyForOptions' signal handler """ if self.readyMoves: log.warning("Options set after 'readyok' are not sent to the engine", extra={"task":self.defname}) if key == "cores": self.optionQueue.append("cores %s" % value) elif key == "memory": self.optionQueue.append("memory %s" % value) elif key.lower() == "ponder": self.__setPonder(value==1) else: self.optionQueue.append("option %s=%s" % (key, value)) #=========================================================================== # Interacting with the player #=========================================================================== @semisynced def pause (self): """ Pauses engine using the "pause" command if available. Otherwise put engine in force mode. By the specs the engine shouldn't ponder in force mode, but some of them do so anyways. """ log.debug("pause: self=%s" % self, extra={"task":self.defname}) self.engine.pause() return if self.mode in (ANALYZING, INVERSE_ANALYZING): return if self.features["pause"]: print("pause", file=self.engine) elif self.board: self.__tellEngineToStopPlayingCurrentColor() self._blockTillMove() @semisynced def resume (self): log.debug("resume: self=%s" % self, extra={"task":self.defname}) self.engine.resume() return if self.mode not in (ANALYZING, INVERSE_ANALYZING): if self.features["pause"]: print("features resume") print("resume", file=self.engine) elif self.board: print("go resume") self.__tellEngineToPlayCurrentColorAndMakeMove() @semisynced def hurry (self): log.debug("hurry: self.waitingForMove=%s self.readyForMoveNowCommand=%s" % \ (self.waitingForMove, self.readyForMoveNowCommand), extra={"task":self.defname}) if self.waitingForMove and self.readyForMoveNowCommand: self.__tellEngineToMoveNow() self.readyForMoveNowCommand = False @semisynced def spectatorUndoMoves (self, moves, gamemodel): log.debug("spectatorUndoMoves: moves=%s gamemodel.ply=%s gamemodel.boards[-1]=%s self.board=%s" % \ (moves, gamemodel.ply, gamemodel.boards[-1], self.board), extra={"task":self.defname}) for i in range(moves): print("undo", file=self.engine) self.board = gamemodel.boards[-1] @semisynced def playerUndoMoves (self, moves, gamemodel): log.debug("playerUndoMoves: moves=%s gamemodel.ply=%s gamemodel.boards[-1]=%s self.board=%s" % \ (moves, gamemodel.ply, gamemodel.boards[-1], self.board), extra={"task":self.defname}) if gamemodel.curplayer != self and moves % 2 == 1: # Interrupt if we were searching, but should no longer do so self.returnQueue.put("int") self.__tellEngineToStopPlayingCurrentColor() for i in range(moves): print("undo", file=self.engine) if gamemodel.curplayer == self: self.board = gamemodel.boards[-1] self.__tellEngineToPlayCurrentColorAndMakeMove() else: self.board = None #=========================================================================== # Offer handling #=========================================================================== def offer (self, offer): if offer.type == DRAW_OFFER: if self.features["draw"]: print("draw", file=self.engine) else: self.emit("accept", offer) def offerError (self, offer, error): if self.features["draw"]: # We don't keep track if engine draws are offers or accepts. We just # Always assume they are accepts, and if they are not, we get this # error and emit offer instead if offer.type == DRAW_OFFER and error == ACTION_ERROR_NONE_TO_ACCEPT: self.emit("offer", Offer(DRAW_OFFER)) #=========================================================================== # Internal #=========================================================================== def __usermove (self, board, move): if self.features["usermove"]: self.engine.write("usermove ") if self.features["san"]: print(toSAN(board, move), file=self.engine) else: cn = CASTLE_KK if board.variant == FISCHERRANDOMCHESS: cn = CASTLE_SAN print(toAN(board, move, short=True, castleNotation=cn), file=self.engine) def __tellEngineToMoveNow (self): if self.features["sigint"]: self.engine.sigint() print("?", file=self.engine) def __tellEngineToStopPlayingCurrentColor (self): print("force", file=self.engine) self.engineIsInNotPlaying = True def __tellEngineToPlayCurrentColorAndMakeMove (self): self.__printColor() print("go", file=self.engine) self.engineIsInNotPlaying = False def __sendAnalyze (self, inverse=False): if inverse and self.board.board.opIsChecked(): # Many engines don't like positions able to take down enemy # king. Therefore we just return the "kill king" move # automaticaly self.emit("analyze", [([toAN(self.board, getMoveKillingKing(self.board))], MATE_VALUE-1, "")]) return def stop_analyze (): if self.engineIsAnalyzing: print("exit", file=self.engine) # Some engines (crafty, gnuchess) doesn't respond to exit command # we try to force them to stop with an empty board fen print("setboard 8/8/8/8/8/8/8/8 w - - 0 1", file=self.engine) self.engineIsAnalyzing = False print("post", file=self.engine) print("analyze", file=self.engine) self.engineIsAnalyzing = True if self.analysis_timer is not None: self.analysis_timer.cancel() self.analysis_timer.join() self.analysis_timer = Timer(conf.get("max_analysis_spin", 3), stop_analyze) self.analysis_timer.start() def __printColor (self): if self.features["colors"]: #or self.mode == INVERSE_ANALYZING: if self.board.color == WHITE: print("white", file=self.engine) else: print("black", file=self.engine) def __setBoard (self, board): if self.features["setboard"]: self.__tellEngineToStopPlayingCurrentColor() fen = board.asFen(enable_bfen=False) if self.mode == INVERSE_ANALYZING: fen_arr = fen.split() if not self.board.board.opIsChecked(): if fen_arr[1] == "b": fen_arr[1] = "w" else: fen_arr[1] = "b" fen = " ".join(fen_arr) print("setboard %s" % fen, file=self.engine) else: # Kludge to set black to move, avoiding the troublesome and now # deprecated "black" command. - Equal to the one xboard uses self.__tellEngineToStopPlayingCurrentColor() if board.color == BLACK: print("a2a3", file=self.engine) print("edit", file=self.engine) print("#", file=self.engine) for color in WHITE, BLACK: for y, row in enumerate(board.data): for x, piece in row.items(): if not piece or piece.color != color: continue sign = reprSign[piece.sign] cord = repr(Cord(x,y)) print(sign+cord, file=self.engine) print("c", file=self.engine) print(".", file=self.engine) def _blockTillMove (self): saved_state = self.boardLock._release_save() log.debug("_blockTillMove(): acquiring self.movecon lock", extra={"task":self.defname}) self.movecon.acquire() log.debug("_blockTillMove(): self.movecon acquired", extra={"task":self.defname}) try: log.debug("_blockTillMove(): doing self.movecon.wait", extra={"task":self.defname}) self.movecon.wait() finally: log.debug("_blockTillMove(): releasing self.movecon..", extra={"task":self.defname}) self.movecon.release() self.boardLock._acquire_restore(saved_state) #=========================================================================== # Parsing #=========================================================================== def parseLine (self, engine, line): if line[0:1] == "#": # Debug line which we shall ignore as specified in CECPv2 specs return # log.debug("__parseLine: line=\"%s\"" % line.strip(), extra={"task":self.defname}) parts = whitespaces.split(line.strip()) if parts[0] == "pong": self.lastpong = int(parts[1]) return # Illegal Move if parts[0].lower().find("illegal") >= 0: log.warning("__parseLine: illegal move: line=\"%s\", board=%s" \ % (line.strip(), self.board), extra={"task":self.defname}) if parts[-2] == "sd" and parts[-1].isdigit(): print("depth", parts[-1], file=self.engine) return # A Move (Perhaps) if self.board: if parts[0] == "move": movestr = parts[1] # Old Variation elif d_plus_dot_expr.match(parts[0]) and parts[1] == "...": movestr = parts[2] else: movestr = False if movestr: log.debug("__parseLine: acquiring self.boardLock", extra={"task":self.defname}) self.waitingForMove = False self.readyForMoveNowCommand = False self.boardLock.acquire() try: if self.engineIsInNotPlaying: # If engine was set in pause just before the engine sent its # move, we ignore it. However the engine has to know that we # ignored it, and thus we step it one back log.info("__parseLine: Discarding engine's move: %s" % movestr, extra={"task":self.defname}) print("undo", file=self.engine) return else: try: move = parseAny(self.board, movestr) except ParsingError as e: self.invalid_move = movestr log.info("__parseLine: ParsingError engine move: %s %s" % (movestr, self.board), extra={"task":self.defname}) self.end(WHITEWON if self.board.color == BLACK else BLACKWON, WON_ADJUDICATION) return if validate(self.board, move): self.board = None self.returnQueue.put(move) return else: self.invalid_move = movestr log.info("__parseLine: can't validate engine move: %s %s" % (movestr, self.board), extra={"task":self.defname}) self.end(WHITEWON if self.board.color == BLACK else BLACKWON, WON_ADJUDICATION) return finally: log.debug("__parseLine(): releasing self.boardLock", extra={"task":self.defname}) self.boardLock.release() self.movecon.acquire() self.movecon.notifyAll() self.movecon.release() # Analyzing if self.engineIsInNotPlaying: if parts[:4] == ["0","0","0","0"]: # Crafty doesn't analyze until it is out of book print("book off", file=self.engine) return match = anare.match(line) if match: depth, score, moves = match.groups() if "mat" in score.lower() or "#" in moves: # Will look either like -Mat 3 or Mat3 scoreval = MATE_VALUE if score.startswith('-'): scoreval = -scoreval else: scoreval = int(score) mvstrs = movere.findall(moves) if mvstrs: self.emit("analyze", [(mvstrs, scoreval, depth.strip())]) return # Offers draw if parts[0:2] == ["offer", "draw"]: self.emit("accept", Offer(DRAW_OFFER)) return # Resigns if parts[0] == "resign" or \ (parts[0] == "tellics" and parts[1] == "resign"): # buggy crafty # Previously: if "resign" in parts, # however, this is too generic, since "hint", "bk", # "feature option=.." and possibly other, future CECPv2 # commands can validly contain the word "resign" without this # being an intentional resign offer. self.emit("offer", Offer(RESIGNATION)) return #if parts[0].lower() == "error": # return #Tell User Error if parts[0] == "tellusererror": # We don't want to see our stop analyzer hack as an error message if "8/8/8/8/8/8/8/8" in "".join(parts[1:]): return # Create a non-modal non-blocking message dialog with the error: dlg = Gtk.MessageDialog(parent=None, flags=0, type=Gtk.MessageType.WARNING, buttons=Gtk.ButtonsType.CLOSE, message_format=None) # Use the engine name if already known, otherwise the defname: displayname = self.name if not displayname: displayname = self.defname # Compose the dialog text: dlg.set_markup(GObject.markup_escape_text(_("The engine %s reports an error:") % displayname) + "\n\n" + GObject.markup_escape_text(" ".join(parts[1:]))) # handle response signal so the "Close" button works: dlg.connect("response", lambda dlg, x: dlg.destroy()) dlg.show_all() return # Tell Somebody if parts[0][:4] == "tell" and \ parts[0][4:] in ("others", "all", "ics", "icsnoalias"): log.info("Ignoring tell %s: %s" % (parts[0][4:], " ".join(parts[1:]))) return if "feature" in parts: # Some engines send features after done=1, so we will iterate after done=1 too done1 = False # We skip parts before 'feature', as some engines give us lines like # White (1) : feature setboard=1 analyze...e="GNU Chess 5.07" done=1 parts = parts[parts.index("feature"):] for i, pair in enumerate(parts[1:]): # As "parts" is split with no thoughs on quotes or double quotes # we need to do some extra handling. if pair.find("=") < 0: continue key, value = pair.split("=",1) if not key in self.features: continue if value.startswith('"') and value.endswith('"'): value = value[1:-1] # If our pair was unfinished, like myname="GNU, we search the # rest of the pairs for a quotating mark. elif value[0] == '"': rest = value[1:] + " " + " ".join(parts[2+i:]) j = rest.find('"') if j == -1: log.warning("Missing endquotation in %s feature", extra={"task":self.defname}) value = rest else: value = rest[:j] elif value.isdigit(): value = int(value) if key in self.supported_features: print("accepted %s" % key, file=self.engine) else: print("rejected %s" % key, file=self.engine) if key == "done": if value == 1: done1 = True continue elif value == 0: log.info("Adds %d seconds timeout" % TIME_OUT_SECOND, extra={"task":self.defname}) # This'll buy you some more time self.timeout = time.time()+TIME_OUT_SECOND self.returnQueue.put("not ready") return if key == "smp" and value == 1: self.options["cores"] = {"name": "cores", "type": "spin", "default": 1, "min": 1, "max": 64} elif key == "memory" and value == 1: self.options["memory"] = {"name": "memory", "type": "spin", "default": 32, "min": 1, "max": 4096} elif key == "option" and key != "done": option = self.__parse_option(value) self.options[option["name"]] = option else: self.features[key] = value if key == "myname" and not self.name: self.setName(value) if done1: # Start a new game before using the engine: # (CECPv2 engines) print("new", file=self.engine) # We are now ready for play: self.emit("readyForOptions") self.emit("readyForMoves") self.returnQueue.put("ready") # A hack to get better names in protover 1. # Unfortunately it wont work for now, as we don't read any lines from # protover 1 engines. When should we stop? if self.protover == 1: if self.defname[0] in ''.join(parts): basis = self.defname[0] name = ' '.join(itertools.dropwhile(lambda part: basis not in part, parts)) self.features['myname'] = name if not self.name: self.setName(name) def __parse_option(self, option): if " -check " in option: name, value = option.split(" -check ") return {"type": "check", "name": name, "default": bool(int(value))} elif " -spin " in option: name, value = option.split(" -spin ") defv, minv, maxv = value.split() return {"type": "spin", "name": name, "default": int(defv), "min": int(minv), "max": int(maxv)} elif " -slider " in option: name, value = option.split(" -slider ") defv, minv, maxv = value.split() return {"type": "spin", "name": name, "default": int(defv), "min": int(minv), "max": int(maxv)} elif " -string " in option: name, value = option.split(" -string ") return {"type": "text", "name": name, "default": value} elif " -file " in option: name, value = option.split(" -file ") return {"type": "text", "name": name, "default": value} elif " -path " in option: name, value = option.split(" -path ") return {"type": "text", "name": name, "default": value} elif " -combo " in option: name, value = option.split(" -combo ") choices = list(map(str.strip, value.split("///"))) default = "" for choice in choices: if choice.startswith("*"): index = choices.index(choice) default = choice[1:] choices[index] = default break return {"type": "combo", "name": name, "default": default, "choices": choices} elif " -button" in option: pos = option.find(" -button") return {"type": "button", "name": option[:pos]} elif " -save" in option: pos = option.find(" -save") return {"type": "button", "name": option[:pos]} elif " -reset" in option: pos = option.find(" -reset") return {"type": "button", "name": option[:pos]} #=========================================================================== # Info #=========================================================================== def canAnalyze (self): assert self.ready, "Still waiting for done=1" return self.features["analyze"] def maxAnalysisLines (self): return 1 def requestMultiPV (self, setting): return 1 def isAnalyzing (self): return self.mode in (ANALYZING, INVERSE_ANALYZING) def __repr__ (self): if self.name: return self.name return self.features["myname"] pychess-0.12.2/lib/pychess/Players/engineNest.py0000644000175000017470000005602712644751231022103 0ustar tamasusers00000000000000from __future__ import absolute_import from __future__ import print_function import os import sys import json import platform from functools import partial from hashlib import md5 from threading import Thread, Lock from os.path import join, dirname, abspath from copy import deepcopy from gi.repository import GObject from pychess.System import conf, fident from pychess.System.Log import log from pychess.System.command import Command from pychess.System.SubProcess import SubProcess, searchPath, SubProcessError from pychess.System.prefix import addUserConfigPrefix, getDataPrefix, getEngineDataPrefix from pychess.Players.Player import PlayerIsDead from pychess.Utils.const import * from .CECPEngine import CECPEngine from .UCIEngine import UCIEngine from pychess.Variants import variants attrToProtocol = {"uci": UCIEngine, "xboard": CECPEngine} PYTHONBIN = sys.executable.split("/")[-1] BITNESS = "64" if platform.machine().endswith('64') else "32" if sys.platform == "win32": backup = [ {"protocol": "uci", "name": "stockfish-7-%s.exe" % BITNESS, "country": "no"}, {"protocol": "xboard", "name": "sjaakii_win%s_ms.exe" % BITNESS, "country": "nl"}, ] if getattr(sys, 'frozen', False): backup.append({"protocol": "xboard", "name": "pychess-engine", "country": "dk"}) else: backup.append({"protocol": "xboard", "name": "PyChess.py", "country": "dk", "vm_name": PYTHONBIN, "vm_args": ["-u"]}) else: backup = [ {"protocol": "xboard", "name": "pychess-engine", "country": "dk"}, {"protocol": "xboard", "name": "PyChess.py", "country": "dk", "vm_name": PYTHONBIN, "vm_args": ["-u"]}, # {"protocol": "xboard", "name": "shatranj.py", "country": "us", # "vm_name": PYTHONBIN, "vm_args": ["-u"], "args": ["-xboard"]}, {"protocol": "xboard", "name": "gnuchess", "country": "us"}, {"protocol": "xboard", "name": "gnome-gnuchess", "country": "us"}, {"protocol": "xboard", "name": "crafty", "country": "us"}, {"protocol": "xboard", "name": "faile", "country": "ca", "protover": 1}, {"protocol": "xboard", "name": "phalanx", "country": "cz", "protover": 1}, {"protocol": "xboard", "name": "sjeng", "country": "be"}, {"protocol": "xboard", "name": "hoichess", "country": "de"}, {"protocol": "xboard", "name": "boochess", "country": "de", "protover": 1}, {"protocol": "xboard", "name": "amy", "country": "de"}, {"protocol": "xboard", "name": "amundsen", "country": "sw"}, {"protocol": "uci", "name": "gnuchessu", "country": "us"}, {"protocol": "uci", "name": "robbolito", "country": "ru"}, {"protocol": "uci", "name": "glaurung", "country": "no"}, {"protocol": "uci", "name": "stockfish", "country": "no"}, {"protocol": "uci", "name": "ShredderClassicLinux", "country": "de"}, {"protocol": "uci", "name": "fruit_21_static", "country": "fr"}, {"protocol": "uci", "name": "fruit", "country": "fr"}, {"protocol": "uci", "name": "toga2", "country": "de"}, {"protocol": "uci", "name": "hiarcs", "country": "gb"}, {"protocol": "uci", "name": "diablo", "country": "us"}, {"protocol": "uci", "name": "Houdini.exe", "country": "be", "vm_name": "wine"}, {"protocol": "uci", "name": "Rybka.exe", "country": "ru", "vm_name": "wine"}, ] def md5_sum(filename): with open(filename, mode='rb') as f: d = md5() for buf in iter(partial(f.read, 4096), b''): d.update(buf) return d.hexdigest() class EngineDiscoverer (GObject.GObject): __gsignals__ = { "discovering_started": (GObject.SignalFlags.RUN_FIRST, None, (object,)), "engine_discovered": (GObject.SignalFlags.RUN_FIRST, None, (str, object)), "engine_failed": (GObject.SignalFlags.RUN_FIRST, None, (str, object)), "all_engines_discovered": (GObject.SignalFlags.RUN_FIRST, None, ()), } def __init__ (self): GObject.GObject.__init__(self) self.engines = [] self.jsonpath = addUserConfigPrefix("engines.json") try: self._engines = json.load(open(self.jsonpath)) except ValueError as e: log.warning("engineNest: Couldn\'t read engines.json, renamed it to .bak\n%s\n%s" % (self.jsonpath, e)) os.rename(self.jsonpath, self.jsonpath+".bak") self._engines = deepcopy(backup) except IOError as e: log.info("engineNest: Couldn\'t open engines.json, creating a new.\n%s" % e) self._engines = deepcopy(backup) # Try to detect engines shipping .eng files on Linux (suggested by HGM on talkcess.com forum) for protocol in ("xboard", "uci"): for path in ("/usr/local/share/games/plugins", "/usr/share/games/plugins"): path = os.path.join(path, protocol) if os.path.isdir(path): for entry in os.listdir(path): name, ext = os.path.splitext(entry) if ext == ".eng": with open(os.path.join(path, entry)) as f: plugin_spec = f.readline().strip() engine_command = f.readline().strip() new_engine = {} if engine_command.startswith("cd ") and engine_command.find(";") > 0: parts = engine_command.split(";") working_directory = parts[0][3:] engine_command = parts[1] new_engine["workingDirectory"] = working_directory find = False for engine in self._engines: if engine["name"] == engine_command: find = True break if not find: new_engine["protocol"] = protocol new_engine["name"] = engine_command self._engines.append(new_engine) ############################################################################ # Discover methods # ############################################################################ def __findRundata (self, engine): """ Searches for a readable, executable named 'name' in the PATH. For the PyChess engine, special handling is taken, and we search PYTHONPATH as well as the directory from where the 'os' module is imported """ if engine.get("vm_name") is not None: altpath = engine.get("vm_command") if getattr(sys, 'frozen', False) and engine["vm_name"] == "wine": vmpath = None else: vmpath = searchPath(engine["vm_name"], access=os.R_OK|os.X_OK, altpath = altpath) if engine["name"] == "PyChess.py" and not getattr(sys, 'frozen', False): path = join(abspath(dirname(__file__)), "PyChess.py") if not os.access(path, os.R_OK): path = None else: altpath = engine.get("command") path = searchPath(engine["name"], access=os.R_OK, altpath=altpath) if vmpath and path: return vmpath, path elif path and sys.platform == "win32" and engine.get("vm_name") == "wine": return None, path else: altpath = engine.get("command") if sys.platform == "win32" and not altpath: altpath = os.path.join(getDataPrefix(), "engines", engine["name"]) path = searchPath(engine["name"], access=os.R_OK|os.X_OK, altpath=altpath) if path: return None, path return False def __fromUCIProcess (self, subprocess): ids = subprocess.ids options = subprocess.options engine = {} if 'author' in ids: engine['author'] = ids['author'] if options: engine["options"] = list(options.values()) return engine def __fromCECPProcess (self, subprocess): features = subprocess.features options = subprocess.options engine = {} if features['variants'] is not None: engine['variants'] = features['variants'].split(",") if features['analyze'] == 1: engine["analyze"] = True if options: engine["options"] = list(options.values()) return engine def __discoverE (self, engine): subproc = self.initEngine (engine, BLACK) try: subproc.connect('readyForOptions', self.__discoverE2, engine) subproc.prestart() # Sends the 'start line' subproc.start() except SubProcessError as e: log.warning("Engine %s failed discovery: %s" % (engine["name"],e)) self.emit("engine_failed", engine["name"], engine) except PlayerIsDead as e: # Check if the player died after engine_discovered by our own hands if not self.toBeRechecked[engine["name"]][1]: log.warning("Engine %s failed discovery: %s" % (engine["name"],e)) self.emit("engine_failed", engine["name"], engine) def __discoverE2 (self, subproc, engine): if engine.get("protocol") == "uci": fresh = self.__fromUCIProcess(subproc) elif engine.get("protocol") == "xboard": fresh = self.__fromCECPProcess(subproc) engine.update(fresh) exitcode = subproc.kill(UNKNOWN_REASON) if exitcode: log.debug("Engine failed %s" % engine["name"]) self.emit("engine_failed", engine['name'], engine) return engine['recheck'] = False log.debug("Engine finished %s" % engine["name"]) self.emit ("engine_discovered", engine['name'], engine) ############################################################################ # Main loop # ############################################################################ def __needClean(self, rundata, engine): """ Check if the filename or md5sum of the engine has changed. In that case we need to clean the engine """ vmpath, path = rundata # Check if filename is not set, or if it has changed if engine.get("command") is None or engine.get("command") != path: return True # If the engine failed last time, we'll recheck it as well if engine.get('recheck'): return True # Check if md5sum is not set, or if it has changed if engine.get("md5") is None: return True md5sum = md5_sum(path) if engine.get("md5") != md5sum: return True return False def __clean(self, rundata, engine): """ Grab the engine from the backup and attach the attributes from rundata. The update engine is ready for discovering. """ vmpath, path = rundata md5sum = md5_sum(path) ###### # Find the backup engine ###### try: backup_engine = next((c for c in backup if c["name"] == engine["name"])) engine["country"] = backup_engine["country"] except StopIteration: log.warning("Engine '%s' has not been tested and verified to work with PyChess" % \ engine.get('name')) engine['recheck'] = True ###### # Clean it ###### engine['command'] = path engine['md5'] = md5sum if vmpath is not None: engine['vm_command'] = vmpath if "variants" in engine: del engine["variants"] if "options" in engine: del engine["options"] ###### # Save the xml ###### def save(self, *args): try: with open(self.jsonpath, "w") as f: json.dump(self._engines, f, indent=1, sort_keys=True) except IOError as e: log.error("Saving engines.json raised exception: %s" % \ ", ".join(str(a) for a in e.args)) def discover(self): class Discoverer(Thread): def __init__(self, parent): Thread.__init__(self, name=fident(self.run)) self.daemon = True self.parent = parent def run(self): self.parent.do_discover() d = Discoverer(self) d.start() def do_discover(self): self.engines = [] # List available engines for engine in self._engines: # Find the known and installed engines on the system # Look up rundata = self.__findRundata(engine) if not rundata: # Engine is not available on the system continue if self.__needClean(rundata, engine): self.__clean(rundata, engine) engine['recheck'] = True self.engines.append(engine) ###### # Runs all the engines in toBeRechecked, in order to gather information ###### self.toBeRechecked = dict((c["name"],[c,False]) for c in self._engines if c.get('recheck')) self.all_done_lock = Lock() def count(self_, name, engine, wentwell): with self.all_done_lock: if wentwell: self.toBeRechecked[name][1] = True if all([elem[1] for elem in self.toBeRechecked.values()]): self.engines.sort(key=lambda x: x["name"]) self.emit("all_engines_discovered") self.connect("engine_discovered", count, True) self.connect("engine_failed", count, False) if self.toBeRechecked: self.emit("discovering_started", self.toBeRechecked.keys()) self.connect("all_engines_discovered", self.save) for engine, done in self.toBeRechecked.values(): if not done: self.__discoverE(engine) else: self.emit("all_engines_discovered") ############################################################################ # Interaction # ############################################################################ def is_analyzer(self, engine): protocol = engine.get("protocol") if protocol == "uci": return True elif protocol == "xboard": return engine.get("analyze") is not None def getAnalyzers (self): return [engine for engine in self.getEngines() if self.is_analyzer(engine)] def getEngines (self): """ Returns list of engine dicts """ return sorted(self.engines, key=lambda engine: engine["name"].lower()) def getEngineN (self, index): return self.getEngines()[index] def getEngineByName (self, name): names = [engine["name"] for engine in self.getEngines()] return self.getEngines()[names.index(name)] def getEngineByMd5 (self, md5sum, list=[]): if not list: list = self.getEngines() for engine in list: md5 = engine.get('md5') if md5 is None: continue if md5 == md5sum: return engine def getEngineVariants (self, engine): for variantClass in variants.values(): if variantClass.standard_rules: yield variantClass.variant else: if engine.get("variants"): if variantClass.cecp_name in engine.get("variants"): yield variantClass.variant # UCI knows Chess960 only if engine.get("options"): for option in engine["options"]: if option["name"] == "UCI_Chess960" and variantClass.cecp_name == "fischerandom": yield variantClass.variant elif option["name"] == "UCI_Variant": if variantClass.cecp_name in option["choices"] or \ variantClass.cecp_name.lower().replace("-", "") in option["choices"]: yield variantClass.variant def getName (self, engine=None): # Test if the call was to get the name of the thread if engine is None: return Thread.getName(self) return engine["name"] def getCountry (self, engine): return engine.get("country") def initEngine (self, engine, color): name = engine['name'] protocol = engine["protocol"] protover = 2 if engine.get("protover") is None else engine.get("protover") path = engine['command'] args = [] if engine.get('args')is None else [a for a in engine['args']] if engine.get('vm_command') is not None: vmpath = engine['vm_command'] vmargs = [] if engine.get('vm_args') is None else [a for a in engine['vm_args']] args = vmargs+[path]+args path = vmpath md5 = engine['md5'] working_directory = engine.get("workingDirectory") if working_directory: workdir = working_directory else: workdir = getEngineDataPrefix() warnwords = ("illegal", "error", "exception") subprocess = SubProcess(path, args, warnwords, SUBPROCESS_SUBPROCESS, workdir) engine_proc = attrToProtocol[protocol](subprocess, color, protover, md5) engine_proc.setName(name) # If the user has configured special options for this engine, here is # where they should be set. def optionsCallback(e): if engine.get("options"): for option in engine["options"]: key = option["name"] value = option.get("value") if (value is not None) and option["default"] != value: if protocol == "xboard" and option["type"] == "check": value = int(bool(value)) e.setOption(key, value) engine_proc.connect("readyForOptions", optionsCallback) return engine_proc def initPlayerEngine (self, engine, color, diffi, variant, secs=0, incr=0, forcePonderOff=False): engine = self.initEngine (engine, color) def optionsCallback (engine): engine.setOptionStrength(diffi, forcePonderOff) engine.setOptionVariant(variant) if secs > 0: engine.setOptionTime(secs, incr) engine.connect("readyForOptions", optionsCallback) engine.prestart() return engine def initAnalyzerEngine (self, engine, mode, variant): engine = self.initEngine (engine, WHITE) def optionsCallback (engine): engine.setOptionAnalyzing(mode) engine.setOptionVariant(variant) engine.connect("readyForOptions", optionsCallback) engine.prestart() return engine def addEngine(self, name, new_engine, protocol, vm_name): engine = {"name": name, "protocol": protocol, "command": new_engine, "recheck": True} if vm_name is not None: engine["vm_name"] = vm_name self._engines.append(engine) def removeEngine(self, name): names = [engine["name"] for engine in self.engines] index = names.index(name) del self.engines[index] names = [engine["name"] for engine in self._engines] index = names.index(name) del self._engines[index] discoverer = EngineDiscoverer() def init_engine (analyzer_type, gamemodel, force=False): """ Initializes and starts the engine analyzer of analyzer_type the user has configured in the Engines tab of the preferencesDialog, for gamemodel. If no such engine is set in the preferences, or if the configured engine doesn't support the chess variant being played in gamemodel, then no analyzer is started and None is returned. """ if analyzer_type == HINT: combo_name = "ana_combobox" check_name = "analyzer_check" mode = ANALYZING else: combo_name = "inv_ana_combobox" check_name = "inv_analyzer_check" mode = INVERSE_ANALYZING analyzer = None if conf.get(check_name, True): anaengines = list(discoverer.getAnalyzers()) engine = discoverer.getEngineByMd5(conf.get(combo_name, 0)) if engine is None: # Let Stockfish to be default analyzer in Windows installer engine = anaengines[-1] if gamemodel.variant.variant in discoverer.getEngineVariants(engine): analyzer = discoverer.initAnalyzerEngine(engine, mode, gamemodel.variant) log.debug("%s analyzer: %s" % (analyzer_type, repr(analyzer))) return analyzer def is_uci(engine_command): command = Command(engine_command, "uci\n") status, output, err = command.run(timeout=3) uci = False for line in output.splitlines(): line = line.rstrip() if line == "uciok" or line.startswith("info string"): uci = True break elif "Error" in line or "Illegal" in line or "Invalid" in line: break return uci def is_cecp(engine_command): command = Command(engine_command, "xboard\nprotover 2\n") status, output, err = command.run(timeout=3) cecp = False for line in output.splitlines(): line = line.rstrip() if "feature" in line and "done" in line: cecp = True break elif "Error" in line or "Illegal" in line or "Invalid" in line: break return cecp if __name__ == "__main__": from gi.repository import GLib from gi.repository import GObject GObject.threads_init() mainloop = GLib.MainLoop() # discoverer = EngineDiscoverer() def discovering_started (discoverer, names): print("discovering_started", names) discoverer.connect("discovering_started", discovering_started) def engine_discovered (discoverer, name, engine): sys.stdout.write(".") discoverer.connect("engine_discovered", engine_discovered) def all_engines_discovered (discoverer): print("all_engines_discovered") print([engine["name"] for engine in discoverer.getEngines()]) mainloop.quit() discoverer.connect("all_engines_discovered", all_engines_discovered) discoverer.start() mainloop.run() pychess-0.12.2/lib/pychess/Players/UCIEngine.py0000644000175000017470000007043712641567764021570 0ustar tamasusers00000000000000from __future__ import absolute_import from __future__ import print_function import collections from copy import copy from threading import RLock, Thread from pychess.compat import Queue from pychess.Utils.Move import * from pychess.Utils.Board import Board from pychess.Utils.Cord import Cord from pychess.Utils.Offer import Offer from pychess.Utils.Move import toAN, parseAN, listToMoves from pychess.Utils.logic import validate, getMoveKillingKing, getStatus, legalMoveCount from pychess.Utils.const import * from pychess.Utils.lutils.ldata import MATE_VALUE from pychess.Utils.lutils.lmove import ParsingError from pychess.System import conf, fident from pychess.System.Log import log from pychess.System.SubProcess import TimeOutError, SubProcessError from pychess.Variants.fischerandom import FischerandomBoard from .ProtocolEngine import ProtocolEngine from pychess.Players.Player import Player, PlayerIsDead, TurnInterrupt, InvalidMove TYPEDIC = {"check":lambda x:x=="true", "spin":int} OPTKEYS = ("name", "type", "min", "max", "default", "var") class UCIEngine (ProtocolEngine): def __init__ (self, subprocess, color, protover, md5): ProtocolEngine.__init__(self, subprocess, color, protover, md5) self.ids = {} self.options = {} self.optionsToBeSent = {} self.wtime = 60000 self.btime = 60000 self.incr = 0 self.timeHandicap = 1 self.moveLock = RLock() # none of the following variables should be changed or used in a # condition statement without holding the above self.moveLock self.ponderOn = False self.pondermove = None self.ignoreNext = False self.waitingForMove = False self.needBestmove = False self.readyForStop = False # keeps track of whether we already sent a 'stop' command self.multipvSetting = conf.get("multipv", 1) # MultiPV option sent to the engine self.multipvExpected = 1 # Number of PVs expected (limited by number of legal moves) self.commands = collections.deque() self.gameBoard = Board(setup=True) # board at the end of all moves played self.board = Board(setup=True) # board to send the engine self.uciPosition = "startpos" self.uciPositionListsMoves = False self.analysis = [ None ] self.returnQueue = Queue() self.engine.connect("line", self.parseLine) self.engine.connect("died", self.__die) self.invalid_move = None self.connect("readyForOptions", self.__onReadyForOptions_before) self.connect_after("readyForOptions", self.__onReadyForOptions) self.connect_after("readyForMoves", self.__onReadyForMoves) def __die (self, subprocess): self.returnQueue.put("die") #=========================================================================== # Starting the game #=========================================================================== def prestart (self): print("uci", file=self.engine) def start (self): if self.mode in (ANALYZING, INVERSE_ANALYZING): t = Thread(target=self.__startBlocking, name=fident(self.__startBlocking)) t.daemon = True t.start() else: self.__startBlocking() def __startBlocking (self): r = self.returnQueue.get() if r == 'die': raise PlayerIsDead assert r == "ready" or r == 'del' #self.emit("readyForOptions") #self.emit("readyForMoves") def __onReadyForOptions_before (self, self_): self.readyOptions = True def __onReadyForOptions (self, self_): if self.mode in (ANALYZING, INVERSE_ANALYZING): if self.hasOption("Ponder"): self.setOption('Ponder', False) if self.hasOption("MultiPV") and self.multipvSetting > 1: self.setOption('MultiPV', self.multipvSetting) for option, value in self.optionsToBeSent.items(): if isinstance(value, bool): value = str(value).lower() print("setoption name %s value %s" % (option, str(value)), file=self.engine) print("isready", file=self.engine) def __onReadyForMoves (self, self_): self.returnQueue.put("ready") self.readyMoves = True self._newGame() # If we are an analyzer, this signal was already called in a different # thread, so we can safely block it. if self.mode in (ANALYZING, INVERSE_ANALYZING): self._searchNow() #=========================================================================== # Ending the game #=========================================================================== def end (self, status, reason): # UCI doens't care about reason, so we just kill if reason == WON_ADJUDICATION: self.returnQueue.put("invalid") self.kill(reason) def kill (self, reason): """ Kills the engine, starting with the 'stop' and 'quit' commands, then trying sigterm and eventually sigkill. Returns the exitcode, or if engine have already been killed, the method returns None """ if self.connected: self.connected = False try: try: print("stop", file=self.engine) print("quit", file=self.engine) self.returnQueue.put("del") return self.engine.gentleKill() except OSError as e: # No need to raise on a hang up error, as the engine is dead # anyways if e.errno == 32: log.warning("Hung up Error", extra={"task":self.defname}) return e.errno else: raise finally: # Clear the analyzed data, if any self.emit("analyze", []) #=========================================================================== # Send the player move updates #=========================================================================== def _moveToUCI (self, board, move): cn = CASTLE_KK if board.variant == FISCHERRANDOMCHESS: cn = CASTLE_KR return toAN(board, move, short=True, castleNotation=cn) def _recordMove (self, board1, move, board2): if self.gameBoard == board1: return if not board2: if board1.variant == NORMALCHESS and board1.asFen() == FEN_START: self.uciPosition = "startpos" else: self.uciPosition = "fen " + board1.asFen() self.uciPositionListsMoves = False if move: if not self.uciPositionListsMoves: self.uciPosition += " moves" self.uciPositionListsMoves = True self.uciPosition += " " + self._moveToUCI(board2, move) self.board = self.gameBoard = board1 if self.mode == INVERSE_ANALYZING: self.board = self.gameBoard.switchColor() def _recordMoveList (self, model, ply=None): self._recordMove(model.boards[0], None, None) if ply is None: ply = model.ply for board1, move, board2 in zip(model.boards[1:ply+1], model.moves, model.boards[0:ply]): self._recordMove(board1, move, board2) def setBoard (self, board): log.debug("setBoardAtPly: board=%s" % board, extra={"task":self.defname}) self._recordMove(board, None, None) if not self.readyMoves: return self._searchNow() def putMove (self, board1, move, board2): log.debug("putMove: board1=%s move=%s board2=%s self.board=%s" % \ (board1, move, board2, self.board), extra={"task":self.defname}) self._recordMove(board1, move, board2) if not self.readyMoves: return self._searchNow() def makeMove (self, board1, move, board2): log.debug("makeMove: move=%s self.pondermove=%s board1=%s board2=%s self.board=%s" % \ (move, self.pondermove, board1, board2, self.board), extra={"task":self.defname}) assert self.readyMoves with self.moveLock: self._recordMove(board1, move, board2) self.waitingForMove = True ponderhit = False if board2 and self.pondermove and move == self.pondermove: ponderhit = True elif board2 and self.pondermove: self.ignoreNext = True print("stop", file=self.engine) self._searchNow(ponderhit=ponderhit) # Parse outputs try: r = self.returnQueue.get() if r == "invalid": raise InvalidMove if r == "del": raise PlayerIsDead if r == "int": with self.moveLock: self.pondermove = None self.ignoreNext = True self.needBestmove = True self.hurry() raise TurnInterrupt return r finally: with self.moveLock: self.waitingForMove = False # empty the queue of any moves received post-undo/TurnInterrupt self.returnQueue.queue.clear() def updateTime (self, secs, opsecs): if self.color == WHITE: self.wtime = int(secs*1000*self.timeHandicap) self.btime = int(opsecs*1000) else: self.btime = int(secs*1000*self.timeHandicap) self.wtime = int(opsecs*1000) #=========================================================================== # Standard options #=========================================================================== def setOptionAnalyzing (self, mode): self.mode = mode if self.mode == INVERSE_ANALYZING: self.board = self.gameBoard.switchColor() def setOptionInitialBoard (self, model): log.debug("setOptionInitialBoard: self=%s, model=%s" % \ (self, model), extra={"task":self.defname}) self._recordMoveList(model) def setOptionVariant (self, variant): if variant == FischerandomBoard: assert self.hasOption("UCI_Chess960") self.setOption("UCI_Chess960", True) elif self.hasOption("UCI_Variant") and not variant.standard_rules: self.setOption("UCI_Variant", variant.cecp_name) def setOptionTime (self, secs, gain): self.wtime = int(max(secs*1000*self.timeHandicap, 1)) self.btime = int(max(secs*1000*self.timeHandicap, 1)) self.incr = int(gain*1000*self.timeHandicap) def setOptionStrength (self, strength, forcePonderOff): self.strength = strength if self.hasOption('UCI_LimitStrength') and strength <= 18: self.setOption('UCI_LimitStrength', True) if self.hasOption('UCI_Elo'): self.setOption('UCI_Elo', 150 * strength) # Stockfish offers 20 skill levels if self.hasOption('Skill Level') and strength <= 19: self.setOption('Skill Level', strength) if ((not self.hasOption('UCI_Elo')) and (not self.hasOption('Skill Level'))) or strength <= 19: self.timeHandicap = th = 0.01 * 10**(strength/10.) self.wtime = int(max(self.wtime*th, 1)) self.btime = int(max(self.btime*th, 1)) self.incr = int(self.incr*th) if self.hasOption('Ponder'): self.setOption('Ponder', strength >= 19 and not forcePonderOff) if self.hasOption('GaviotaTbPath') and strength == 20: self.setOption('GaviotaTbPath', conf.get("egtb_path", "")) #=========================================================================== # Interacting with the player #=========================================================================== def pause (self): log.debug("pause: self=%s" % self, extra={"task":self.defname}) self.engine.pause() return if self.board.color == self.color or \ self.mode != NORMAL or self.pondermove: self.ignoreNext = True print("stop", file=self.engine) def resume (self): log.debug("resume: self=%s" % self, extra={"task":self.defname}) self.engine.resume() return if self.mode == NORMAL: if self.board.color == self.color: self._searchNow() elif self.ponderOn and self.pondermove: self._startPonder() else: self._searchNow() def hurry (self): log.debug("hurry: self.waitingForMove=%s self.readyForStop=%s" % \ (self.waitingForMove, self.readyForStop), extra={"task":self.defname}) # sending this more than once per move will crash most engines # so we need to send only the first one, and then ignore every "hurry" request # after that until there is another outstanding "position..go" with self.moveLock: if self.waitingForMove and self.readyForStop: print("stop", file=self.engine) self.readyForStop = False def playerUndoMoves (self, moves, gamemodel): log.debug("playerUndoMoves: moves=%s gamemodel.ply=%s gamemodel.boards[-1]=%s self.board=%s" % \ (moves, gamemodel.ply, gamemodel.boards[-1], self.board), extra={"task":self.defname}) self._recordMoveList(gamemodel) if (gamemodel.curplayer != self and moves % 2 == 1) or \ (gamemodel.curplayer == self and moves % 2 == 0): # Interrupt if we were searching but should no longer do so, or # if it is was our move before undo and it is still our move after undo # since we need to send the engine the new FEN in makeMove() log.debug("playerUndoMoves: putting 'int' into self.returnQueue=%s" % \ self.returnQueue.queue, extra={"task":self.defname}) self.returnQueue.put("int") def spectatorUndoMoves (self, moves, gamemodel): log.debug("spectatorUndoMoves: moves=%s gamemodel.ply=%s gamemodel.boards[-1]=%s self.board=%s" % \ (moves, gamemodel.ply, gamemodel.boards[-1], self.board), extra={"task":self.defname}) self._recordMoveList(gamemodel) if self.readyMoves: self._searchNow() #=========================================================================== # Offer handling #=========================================================================== def offer (self, offer): if offer.type == DRAW_OFFER: self.emit("decline", offer) else: self.emit("accept", offer) #=========================================================================== # Option handling #=========================================================================== def setOption (self, key, value): """ Set an option, which will be sent to the engine, after the 'readyForOptions' signal has passed. If you want to know the possible options, you should go to engineDiscoverer or use the getOption, getOptions and hasOption methods, while you are in your 'readyForOptions' signal handler """ if self.readyMoves: log.warning("Options set after 'readyok' are not sent to the engine", extra={"task":self.defname}) self.optionsToBeSent[key] = value self.ponderOn = key=="Ponder" and value is True def getOption (self, option): assert self.readyOptions if option in self.options: return self.options[option]["default"] return None def getOptions (self): assert self.readyOptions return copy(self.options) def hasOption (self, key): assert self.readyOptions return key in self.options #=========================================================================== # Internal #=========================================================================== def _newGame (self): print("ucinewgame", file=self.engine) def _searchNow (self, ponderhit=False): log.debug("_searchNow: self.needBestmove=%s ponderhit=%s self.board=%s" % \ (self.needBestmove, ponderhit, self.board), extra={"task":self.defname}) with self.moveLock: commands = [] if ponderhit: commands.append("ponderhit") elif self.mode == NORMAL: commands.append("position %s" % self.uciPosition) if self.strength <= 3: commands.append("go depth %d" % self.strength) else: commands.append("go wtime %d winc %d btime %d binc %d" % \ (self.wtime, self.incr, self.btime, self.incr)) else: print("stop", file=self.engine) if self.mode == INVERSE_ANALYZING: if self.board.board.opIsChecked(): # Many engines don't like positions able to take down enemy # king. Therefore we just return the "kill king" move # automaticaly self.emit("analyze", [([toAN(self.board, getMoveKillingKing(self.board))], MATE_VALUE-1, "")]) return commands.append("position fen %s" % self.board.asFen()) else: commands.append("position %s" % self.uciPosition) #commands.append("go infinite") move_time = int(conf.get("max_analysis_spin", 3))*1000 commands.append("go movetime %s" % move_time) if self.hasOption("MultiPV") and self.multipvSetting > 1: self.multipvExpected = min(self.multipvSetting, legalMoveCount(self.board)) else: self.multipvExpected = 1 self.analysis = [None] * self.multipvExpected if self.needBestmove: self.commands.append(commands) log.debug("_searchNow: self.needBestmove==True, appended to self.commands=%s" % \ self.commands, extra={"task":self.defname}) else: for command in commands: print(command, file=self.engine) if getStatus(self.board)[1] != WON_MATE: # XXX This looks fishy. self.needBestmove = True self.readyForStop = True def _startPonder (self): uciPos = self.uciPosition if not self.uciPositionListsMoves: uciPos += " moves" print("position", uciPos, \ self._moveToUCI(self.board, self.pondermove), file=self.engine) print("go ponder wtime", self.wtime, \ "winc", self.incr, "btime", self.btime, "binc", self.incr, file=self.engine) #=========================================================================== # Parsing from engine #=========================================================================== def parseLine (self, engine, line): if not self.connected: return parts = line.split() if not parts: return #---------------------------------------------------------- Initializing if parts[0] == "id": if parts[1] == "name": self.ids[parts[1]] = " ".join(parts[2:]) self.setName(self.ids["name"]) return if parts[0] == "uciok": self.emit("readyForOptions") return if parts[0] == "readyok": self.emit("readyForMoves") return #------------------------------------------------------- Options parsing if parts[0] == "option": dic = {} last = 1 varlist = [] for i in range (2, len(parts)+1): if i == len(parts) or parts[i] in OPTKEYS: key = parts[last] value = " ".join(parts[last+1:i]) if "type" in dic and dic["type"] in TYPEDIC: value = TYPEDIC[dic["type"]](value) if key == "var": varlist.append(value) elif key == "type" and value == "string": dic[key] = "text" else: dic[key] = value last = i if varlist: dic["choices"] = varlist self.options[dic["name"]] = dic return #---------------------------------------------------------------- A Move if self.mode == NORMAL and parts[0] == "bestmove": with self.moveLock: self.needBestmove = False self.__sendQueuedGo() if self.ignoreNext: log.debug("__parseLine: line='%s' self.ignoreNext==True, returning" % \ line.strip(), extra={"task":self.defname}) self.ignoreNext = False self.readyForStop = True return movestr = parts[1] if not self.waitingForMove: log.warning("__parseLine: self.waitingForMove==False, ignoring move=%s" % \ movestr, extra={"task":self.defname}) self.pondermove = None return self.waitingForMove = False try: move = parseAny(self.board, movestr) except ParsingError as e: self.invalid_move = movestr self.end(WHITEWON if self.board.color == BLACK else BLACKWON, WON_ADJUDICATION) return if not validate(self.board, move): # This is critical. To avoid game stalls, we need to resign on # behalf of the engine. log.error("__parseLine: move=%s didn't validate, putting 'del' in returnQueue. self.board=%s" % \ (repr(move), self.board), extra={"task":self.defname}) self.invalid_move = movestr self.end(WHITEWON if self.board.color == BLACK else BLACKWON, WON_ADJUDICATION) return self._recordMove(self.board.move(move), move, self.board) log.debug("__parseLine: applied move=%s to self.board=%s" % \ (move, self.board), extra={"task":self.defname}) if self.ponderOn: self.pondermove = None # An engine may send an empty ponder line, simply to clear. if len(parts) == 4: # Engines don't always check for everything in their # ponders. Hence we need to validate. # But in some cases, what they send may not even be # correct AN - specially in the case of promotion. try: pondermove = parseAny(self.board, parts[3]) except ParsingError: pass else: if validate(self.board, pondermove): self.pondermove = pondermove self._startPonder() self.returnQueue.put(move) log.debug("__parseLine: put move=%s into self.returnQueue=%s" % \ (move, self.returnQueue.queue), extra={"task":self.defname}) return #----------------------------------------------------------- An Analysis if self.mode != NORMAL and parts[0] == "info" and "pv" in parts: multipv = 1 if "multipv" in parts: multipv = int(parts[parts.index("multipv")+1]) scoretype = parts[parts.index("score")+1] if scoretype in ('lowerbound', 'upperbound'): score = None else: score = int(parts[parts.index("score")+2]) if scoretype == 'mate': # print >> self.engine, "stop" if score != 0: sign = score/abs(score) score = sign*MATE_VALUE movstrs = parts[parts.index("pv")+1:] if "depth" in parts: depth = parts[parts.index("depth")+1] else: depth = "" if multipv <= len(self.analysis): self.analysis[multipv - 1] = (movstrs, score, depth) self.emit("analyze", self.analysis) return #----------------------------------------------- An Analyzer bestmove if self.mode != NORMAL and parts[0] == "bestmove": with self.moveLock: log.debug("__parseLine: processing analyzer bestmove='%s'" % \ line.strip(), extra={"task":self.defname}) self.needBestmove = False self.__sendQueuedGo(sendlast=True) return # Stockfish complaining it received a 'stop' without a corresponding 'position..go' if line.strip() == "Unknown command: stop": with self.moveLock: log.debug("__parseLine: processing '%s'" % line.strip(), extra={"task":self.defname}) self.ignoreNext = False self.needBestmove = False self.readyForStop = False self.__sendQueuedGo() return #* score #* cp # the score from the engine's point of view in centipawns. #* mate # mate in y moves, not plies. # If the engine is getting mated use negative values for y. #* lowerbound # the score is just a lower bound. #* upperbound # the score is just an upper bound. def __sendQueuedGo (self, sendlast=False): """ Sends the next position...go or ponderhit command set which was queued (if any). sendlast -- If True, send the last position-go queued rather than the first, and discard the others (intended for analyzers) """ with self.moveLock: if len(self.commands) > 0: if sendlast: commands = self.commands.pop() self.commands.clear() else: commands = self.commands.popleft() for command in commands: print(command, file=self.engine) self.needBestmove = True self.readyForStop = True log.debug("__sendQueuedGo: sent queued go=%s" % commands, extra={"task":self.defname}) #=========================================================================== # Info #=========================================================================== def maxAnalysisLines (self): try: return int(self.options["MultiPV"]["max"]) except (KeyError, ValueError): return 1 # Engine does not support the MultiPV option def requestMultiPV (self, n): multipvMax = self.maxAnalysisLines() n = min(n, multipvMax) if n != self.multipvSetting: conf.set("multipv", n) with self.moveLock: self.multipvSetting = n print("stop", file=self.engine) print("setoption name MultiPV value", n, file=self.engine) self._searchNow() return n def __repr__ (self): if self.name: return self.name if "name" in self.ids: return self.ids["name"] return ', '.join(self.defname) pychess-0.12.2/lib/pychess/Players/Engine.py0000755000175000017470000001073312641567764021223 0ustar tamasusers00000000000000from __future__ import absolute_import from gi.repository import GObject from threading import Thread from pychess.compat import urlopen, urlencode from pychess.System import fident from pychess.System.Log import log from pychess.Utils.Offer import Offer from pychess.Utils.const import ARTIFICIAL, CHAT_ACTION from .Player import Player class Engine (Player): __type__ = ARTIFICIAL ''' Argument is a vector of analysis lines. The first element is the pv list of moves. The second is a score relative to the engine. If no score is known, the value can be None, but not 0, which is a draw. ''' __gsignals__ = { 'analyze': (GObject.SignalFlags.RUN_FIRST, None, (object,)) } def __init__(self, md5=None): Player.__init__(self) self.md5 = md5 self.currentAnalysis = [] def on_analysis(self_, analysis): self.currentAnalysis = analysis self.connect('analyze', on_analysis) #=========================================================================== # Offer handling #=========================================================================== def offer (self, offer): raise NotImplementedError def offerDeclined (self, offer): pass #Ignore def offerWithdrawn (self, offer): pass #Ignore def offerError (self, offer, error): pass #Ignore #=========================================================================== # General Engine Options #=========================================================================== def setOptionAnalyzing (self, mode): self.mode = mode def setOptionInitialBoard (self, model): """ If the game starts at a board other than FEN_START, it should be sent here. We sends a gamemodel, so the engine can load the entire list of moves, if any """ pass # Optional def setOptionVariant (self, variant): """ Inform the engine of any special variant. If the engine doesn't understand the variant, this will raise an error. """ raise NotImplementedError def setOptionTime (self, secs, gain): """ Seconds is the initial clock of the game. Gain is the amount of seconds a player gets after each move. If the engine doesn't support playing with time, this will fail.""" raise NotImplementedError def setOptionStrength (self, strength): """ Strength is a number [1,8] inclusive. Higher is better. """ self.strength = strength raise NotImplementedError #=========================================================================== # Engine specific methods #=========================================================================== def canAnalyze (self): raise NotImplementedError def maxAnalysisLines (self): raise NotImplementedError def requestMultiPV (self, setting): """Set the number of analysis lines the engine will give, if possible. If setting is too high, the engine's maximum will be used. The setting will last until the next call to requestMultiPV. Return value: the setting used. """ raise NotImplementedError def getAnalysis (self): """ Returns a list of moves, or None if there haven't yet been made an analysis """ return self.currentAnalysis #=========================================================================== # General chat handling #=========================================================================== def putMessage (self, message): def answer (message): try: data = urlopen("http://www.pandorabots.com/pandora/talk?botid=8d034368fe360895", urlencode({"message":message, "botcust2":"x"}).encode("utf-8")).read().decode('utf-8') except IOError as e: log.warning("Couldn't answer message from online bot: '%s'" % e, extra={"task":self.defname}) return ss = "DMPGirl:" es = "
" answer = data[data.find(ss)+len(ss) : data.find(es,data.find(ss))] self.emit("offer", Offer(CHAT_ACTION, answer)) t = Thread(target=answer, name=fident(answer), args=(message,)) t.daemon = True t.start() pychess-0.12.2/lib/pychess/Players/Human.py0000755000175000017470000003306212652227735021057 0ustar tamasusers00000000000000from __future__ import print_function from gi.repository import Gtk, GObject from pychess.compat import Queue from pychess.Utils.const import * from pychess.Utils.logic import validate from pychess.Utils.Move import Move from pychess.Utils.Offer import Offer from pychess.System.idle_add import idle_add from pychess.System.Log import log from pychess.System import conf from pychess.Players.Player import Player, PlayerIsDead, TurnInterrupt from pychess.widgets.InfoBar import InfoBarMessage, InfoBarMessageButton from pychess.widgets import InfoBar OFFER_MESSAGES = { DRAW_OFFER: (_("Your opponent has offered you a draw."), _("Your opponent has offered you a draw. If you accept this offer, the game will end with a score of 1/2 - 1/2."), False), ABORT_OFFER: (_("Your opponent wants to abort the game."), _("Your opponent has asked that the game be aborted. If you accept this offer, the game will end with no rating change."), False), ADJOURN_OFFER: (_("Your opponent wants to adjourn the game."), _("Your opponent has asked that the game be adjourned. If you accept this offer, the game will be adjourned and you can resume it later (when your opponent is online and both players agree to resume)."), False), TAKEBACK_OFFER: (_("Your opponent wants to undo %s move(s)."), _("Your opponent has asked that the last %s move(s) be undone. If you accept this offer, the game will continue from the earlier position."), True), PAUSE_OFFER: (_("Your opponent wants to pause the game."), _("Your opponent has asked that the game be paused. If you accept this offer, the game clock will be paused until both players agree to resume the game."), False), RESUME_OFFER: (_("Your opponent wants to resume the game."), _("Your opponent has asked that the game be resumed. If you accept this offer, the game clock will continue from where it was paused."), False) } ACTION_NAMES = { RESIGNATION: _("The resignation"), FLAG_CALL: _("The flag call"), DRAW_OFFER: _("The draw offer"), ABORT_OFFER: _("The abort offer"), ADJOURN_OFFER: _("The adjourn offer"), PAUSE_OFFER: _("The pause offer"), RESUME_OFFER: _("The resume offer"), SWITCH_OFFER: _("The offer to switch sides"), TAKEBACK_OFFER: _("The takeback offer"), } ACTION_ACTIONS = { RESIGNATION: _("resign"), FLAG_CALL: _("call your opponents flag"), DRAW_OFFER: _("offer a draw"), ABORT_OFFER: _("offer an abort"), ADJOURN_OFFER: _("offer to adjourn"), PAUSE_OFFER: _("offer a pause"), RESUME_OFFER: _("offer to resume"), SWITCH_OFFER: _("offer to switch sides"), TAKEBACK_OFFER: _("offer a takeback"), HURRY_ACTION: _("ask your opponent to move") } ERROR_MESSAGES = { ACTION_ERROR_NOT_OUT_OF_TIME: _("Your opponent is not out of time."), ACTION_ERROR_CLOCK_NOT_STARTED: _("The clock hasn't been started yet."), ACTION_ERROR_SWITCH_UNDERWAY: _("You can't switch colors during the game."), ACTION_ERROR_TOO_LARGE_UNDO: _("You have tried to undo too many moves."), } class Human (Player): __type__ = LOCAL __gsignals__ = { "messageReceived": (GObject.SignalFlags.RUN_FIRST, None, (str,)), } def __init__ (self, gmwidg, color, name, ichandle=None, icrating=None): Player.__init__(self) self.defname = "Human" self.board = gmwidg.board self.gmwidg = gmwidg self.gamemodel = self.board.view.model self.queue = Queue() self.color = color self.conid = [ self.board.connect("piece_moved", self.piece_moved), self.board.connect("action", lambda b,action,param: self.emit_action(action, param)) ] self.setName(name) self.ichandle = ichandle self.icrating = icrating if self.gamemodel.timed: self.gamemodel.timemodel.connect('zero_reached', self.zero_reached) #=========================================================================== # Handle signals from the board #=========================================================================== def zero_reached (self, timemodel, color): if conf.get('autoCallFlag', False) and \ self.gamemodel.status == RUNNING and \ timemodel.getPlayerTime(1-self.color) <= 0: log.info('Automatically sending flag call on behalf of player %s.' % self.name) self.emit("offer", Offer(FLAG_CALL)) def piece_moved (self, board, move, color): if color != self.color: return self.queue.put(move) def emit_action (self, action, param): # If there are two or more tabs open, we have to ensure us that it is # us who are in the active tab, and not the others if not self.gmwidg.isInFront(): return log.debug("Human.emit_action: self.name=%s, action=%s" % (self.name, action)) # If there are two human players, we have to ensure us that it was us # who did the action, and not the others if self.gamemodel.players[1-self.color].__type__ == LOCAL: if action == HURRY_ACTION: if self.gamemodel.boards[-1].color == self.color: return else: if self.gamemodel.boards[-1].color != self.color: return self.emit("offer", Offer(action, param=param)) #=========================================================================== # Send the player move updates #=========================================================================== def makeMove (self, board1, move, board2): log.debug("Human.makeMove: move=%s, board1=%s board2=%s" % \ (move, board1, board2)) if self.board.view.premove_piece and self.board.view.premove0 and self.board.view.premove1 and \ self.color == self.board.view.premove_piece.color: if validate(board1, Move(self.board.view.premove0, self.board.view.premove1, board1, promotion=self.board.view.premove_promotion)): log.debug("Human.makeMove: Setting move to premove %s %s" % \ (self.board.view.premove0, self.board.view.premove1)) self.board.emit_move_signal(self.board.view.premove0, self.board.view.premove1, promotion=self.board.view.premove_promotion) # reset premove self.board.view.setPremove(None, None, None, None) self.gmwidg.setLocked(False) item = self.queue.get(block=True) self.gmwidg.setLocked(True) if item == "del": raise PlayerIsDead("Killed by foreign forces") if item == "int": log.debug("Human.makeMove: %s: raise TurnInterrupt" % self) raise TurnInterrupt return item #=========================================================================== # Ending the game #=========================================================================== def end (self, status, reason): self.queue.put("del") def kill (self, reason): print("I am killed", self) for id in self.conid: if self.board.handler_is_connected(id): self.board.disconnect(id) self.queue.put("del") #=========================================================================== # Interacting with the player #=========================================================================== @idle_add def hurry (self): title = _("Your opponent asks you to hurry!") text = _("Generally this means nothing, as the game is time-based, but if you want to please your opponent, perhaps you should get going.") content = InfoBar.get_message_content(title, text, Gtk.STOCK_DIALOG_INFO) def response_cb (infobar, response, message): message.dismiss() message = InfoBarMessage(Gtk.MessageType.INFO, content, response_cb) message.add_button(InfoBarMessageButton(Gtk.STOCK_CLOSE, Gtk.ResponseType.CANCEL)) self.gmwidg.showMessage(message) def pause (self): self.gmwidg.setLocked(True) def resume (self): log.debug("Human.resume: %s" % (self)) if self.board.view.model.curplayer == self: self.gmwidg.setLocked(False) def playerUndoMoves (self, movecount, gamemodel): log.debug("Human.playerUndoMoves: movecount=%s self=%s" % (movecount, self)) #If the movecount is odd, the player has changed, and we have to interupt if movecount % 2 == 1: # If it is no longer us to move, we raise TurnInterruprt in order to # let GameModel continue the game. if gamemodel.curplayer != self: log.debug("Human.playerUndoMoves: putting TurnInterrupt into self.queue") self.queue.put("int") # If the movecount is even, we have to ensure the board is unlocked. # This is because it might have been locked by the game ending, but # perhaps we have now undone some moves, and it is no longer ended. elif movecount % 2 == 0 and gamemodel.curplayer == self: log.debug("Human.playerUndoMoves: self=%s: calling gmwidg.setLocked" % (self)) self.gmwidg.setLocked(False) def putMessage (self, text): self.emit("messageReceived", text) def sendMessage (self, text): self.emit("offer", Offer(CHAT_ACTION, param=text)) #=========================================================================== # Offer handling #=========================================================================== @idle_add def offer (self, offer): log.debug("Human.offer: self=%s %s" % (self, offer)) assert offer.type in OFFER_MESSAGES if self.gamemodel.players[1-self.color].__type__ is LOCAL: self.emit("accept", offer) return heading, text, takes_param = OFFER_MESSAGES[offer.type] if takes_param: param = offer.param if offer.type == TAKEBACK_OFFER and \ self.gamemodel.players[1-self.color].__type__ is not REMOTE: param = self.gamemodel.ply - offer.param heading = heading % param text = text % param def response_cb (infobar, response, message): if response == Gtk.ResponseType.ACCEPT: self.emit("accept", offer) elif response == Gtk.ResponseType.NO: self.emit("decline", offer) message.dismiss() content = InfoBar.get_message_content(heading, text, Gtk.STOCK_DIALOG_QUESTION) message = InfoBarMessage(Gtk.MessageType.QUESTION, content, response_cb) message.add_button(InfoBarMessageButton(_("Accept"), Gtk.ResponseType.ACCEPT)) message.add_button(InfoBarMessageButton(_("Decline"), Gtk.ResponseType.NO)) message.add_button(InfoBarMessageButton(Gtk.STOCK_CLOSE, Gtk.ResponseType.CANCEL)) self.gmwidg.showMessage(message) @idle_add def offerDeclined (self, offer): log.debug("Human.offerDeclined: self=%s %s" % (self, offer)) assert offer.type in ACTION_NAMES heading = _("%s was declined by your opponent") % ACTION_NAMES[offer.type] text = _("Resend %s?" % ACTION_NAMES[offer.type].lower()) content = InfoBar.get_message_content(heading, text, Gtk.STOCK_DIALOG_INFO) def response_cb (infobar, response, message): if response == Gtk.ResponseType.ACCEPT: self.emit("offer", offer) message.dismiss() message = InfoBarMessage(Gtk.MessageType.INFO, content, response_cb) message.add_button(InfoBarMessageButton(_("Resend"), Gtk.ResponseType.ACCEPT)) message.add_button(InfoBarMessageButton(Gtk.STOCK_CLOSE, Gtk.ResponseType.CANCEL)) self.gmwidg.showMessage(message) @idle_add def offerWithdrawn (self, offer): log.debug("Human.offerWithdrawn: self=%s %s" % (self, offer)) assert offer.type in ACTION_NAMES heading = _("%s was withdrawn by your opponent") % ACTION_NAMES[offer.type] text = _("Your opponent seems to have changed their mind.") content = InfoBar.get_message_content(heading, text, Gtk.STOCK_DIALOG_INFO) def response_cb (infobar, response, message): message.dismiss() message = InfoBarMessage(Gtk.MessageType.INFO, content, response_cb) message.add_button(InfoBarMessageButton(Gtk.STOCK_CLOSE, Gtk.ResponseType.CANCEL)) self.gmwidg.showMessage(message) @idle_add def offerError (self, offer, error): log.debug("Human.offerError: self=%s error=%s %s" % (self, error, offer)) assert offer.type in ACTION_NAMES actionName = ACTION_NAMES[offer.type] if error == ACTION_ERROR_NONE_TO_ACCEPT: heading = _("Unable to accept %s") % actionName.lower() text = _("Probably because it has been withdrawn.") elif error == ACTION_ERROR_NONE_TO_DECLINE or \ error == ACTION_ERROR_NONE_TO_WITHDRAW: # If the offer was not there, it has probably already been either # declined or withdrawn. return else: heading = _("%s returns an error") % actionName text = ERROR_MESSAGES[error] content = InfoBar.get_message_content(heading, text, Gtk.STOCK_DIALOG_WARNING) def response_cb (infobar, response, message): message.dismiss() message = InfoBarMessage(Gtk.MessageType.WARNING, content, response_cb) message.add_button(InfoBarMessageButton(Gtk.STOCK_CLOSE, Gtk.ResponseType.CANCEL)) self.gmwidg.showMessage(message) pychess-0.12.2/lib/pychess/Players/__init__.py0000755000175000017470000000000012641567764021537 0ustar tamasusers00000000000000pychess-0.12.2/lib/pychess/Players/PyChessFICS.py0000644000175000017470000004264712642264325022033 0ustar tamasusers00000000000000from __future__ import print_function import email.utils from gi.repository import Gtk import math import pychess import random import signal import subprocess from threading import Thread from pychess.compat import urlopen, urlencode from pychess.Players.PyChess import PyChess from pychess.System.prefix import addDataPrefix, isInstalled from pychess.System.repeat import repeat_sleep from pychess.System import fident from pychess.System.Log import log from pychess.Utils.const import * from pychess.Utils.lutils.LBoard import LBoard from pychess.Utils.lutils.lmove import determineAlgebraicNotation, toLAN, parseSAN from pychess.Utils.lutils import lsearch from pychess.Utils.repr import reprResult_long, reprReason_long from pychess.ic.FICSConnection import FICSMainConnection class PyChessFICS(PyChess): def __init__ (self, password, from_address, to_address): PyChess.__init__(self) self.ports = (23, 5000) if not password: self.username = "guest" else: self.username = "PyChess" self.owner = "Lobais" self.password = password self.from_address = "The PyChess Bot <%s>" % from_address self.to_address = "Thomas Dybdahl Ahle <%s>" % to_address # Possible start times self.minutes = (1,2,3,4,5,6,7,8,9,10) self.gains = (0,5,10,15,20) # Possible colors. None == random self.colors = (WHITE, BLACK, None) # The amount of random challenges, that PyChess sends with each seek self.challenges = 10 enableEGTB() self.sudos = set() self.ownerOnline = False self.waitingForPassword = None self.log = [] self.acceptedTimesettings = [] self.worker = None repeat_sleep(self.sendChallenges, 60*1) def __triangular(self, low, high, mode): """Triangular distribution. Continuous distribution bounded by given lower and upper limits, and having a given mode value in-between. http://en.wikipedia.org/wiki/Triangular_distribution """ u = random.random() c = (mode - low) / (high - low) if u > c: u = 1 - u c = 1 - c low, high = high, low tri = low + (high - low) * (u * c) ** 0.5 if tri < mode: return int(tri) elif tri > mode: return int(math.ceil(tri)) return int(round(tri)) def sendChallenges(self): if self.connection.bm.isPlaying(): return True statsbased = ((0.39197722779282, 3, 0), (0.59341408108783, 5, 0), (0.77320877377846, 1, 0), (0.8246379941394, 10, 0), (0.87388717406441, 2, 12), (0.91443760169489, 15, 0), (0.9286423058163, 4, 0), (0.93891977227793, 2, 0), (0.94674539138335, 20, 0), (0.95321476842423, 2, 2), (0.9594588808257, 5, 2), (0.96564528079889, 3, 2), (0.97173859621034, 7, 0), (0.97774906636184, 3, 1), (0.98357243654425, 5, 12), (0.98881309737017, 5, 5), (0.99319644938247, 6, 0), (0.99675879556023, 3, 12), (1, 5, 3)) #n = random.random() #for culminativeChance, minute, gain in statsbased: # if n < culminativeChance: # break culminativeChance, minute, gain = random.choice(statsbased) #type = random.choice((TYPE_LIGHTNING, TYPE_BLITZ, TYPE_STANDARD)) #if type == TYPE_LIGHTNING: # minute = self.__triangular(0,2+1,1) # mingain = not minute and 1 or 0 # maxgain = int((3-minute)*3/2) # gain = random.randint(mingain, maxgain) #elif type == TYPE_BLITZ: # minute = self.__triangular(0,14+1,5) # mingain = max(int((3-minute)*3/2+1), 0) # maxgain = int((15-minute)*3/2) # gain = random.randint(mingain, maxgain) #elif type == TYPE_STANDARD: # minute = self.__triangular(0,20+1,12) # mingain = max(int((15-minute)*3/2+1), 0) # maxgain = int((20-minute)*3/2) # gain = self.__triangular(mingain, maxgain, mingain) #color = random.choice(self.colors) self.extendlog(["Seeking %d %d" % (minute, gain)]) self.connection.glm.seek(minute, gain, True) opps = random.sample(self.connection.players.get_online_playernames(), self.challenges) self.extendlog("Challenging %s" % op for op in opps) for player in opps: self.connection.om.challenge(player, minute, gain, True) return True def makeReady(self): signal.signal(signal.SIGINT, Gtk.main_quit) PyChess.makeReady(self) self.connection = FICSMainConnection("freechess.org", self.ports, self.username, self.password) self.connection.connect("connectingMsg", self.__showConnectLog) self.connection._connect() self.connection.glm.connect("addPlayer", self.__onAddPlayer) self.connection.glm.connect("removePlayer", self.__onRemovePlayer) self.connection.cm.connect("privateMessage", self.__onTell) self.connection.alm.connect("logOut", self.__onLogOut) self.connection.bm.connect("playGameCreated", self.__onGameCreated) self.connection.bm.connect("curGameEnded", self.__onGameEnded) self.connection.bm.connect("boardUpdate", self.__onBoardUpdate) self.connection.om.connect("onChallengeAdd", self.__onChallengeAdd) self.connection.om.connect("onOfferAdd", self.__onOfferAdd) self.connection.adm.connect("onAdjournmentsList", self.__onAdjournmentsList) self.connection.em.connect("onAmbiguousMove", self.__onAmbiguousMove) self.connection.em.connect("onIllegalMove", self.__onAmbiguousMove) self.connection.adm.queryAdjournments() self.connection.lvm.setVariable("autoflag", 1) self.connection.fm.setFingerNote(1, "PyChess is the chess engine bundled with the PyChess %s " % pychess.VERSION + "chess client. This instance is owned by %s, but acts " % self.owner + "quite autonomously.") self.connection.fm.setFingerNote(2, "PyChess is 100% Python code and is released under the terms of " + "the GPL. The evalution function is largely equal to the one of" + "GnuChess, but it plays quite differently.") self.connection.fm.setFingerNote(3, "PyChess runs on an elderly AMD Sempron(tm) Processor 3200+, 512 " + "MB DDR2 Ram, but is built to take use of 64bit calculating when " + "accessible, through the gpm library.") self.connection.fm.setFingerNote(4, "PyChess uses a small 500 KB openingbook based solely on Kasparov " + "games. The engine doesn't have much endgame knowledge, but might " + "in some cases access an online endgamedatabase.") self.connection.fm.setFingerNote(5, "PyChess will allow any pause/resume and adjourn wishes, but will " + "deny takebacks. Draw, abort and switch offers are accepted, " + "if they are found to be an advance. Flag is auto called, but " + "PyChess never resigns. We don't want you to forget your basic " + "mating skills.") def main(self): self.connection.run() self.extendlog([str(self.acceptedTimesettings)]) self.phoneHome("Session ended\n"+"\n".join(self.log)) print("Session ended") def run(self): t = Thread(target=self.main, name=fident(self.main)) t.daemon = True t.start() Gdk.threads_init() Gtk.main() #=========================================================================== # General #=========================================================================== def __showConnectLog (self, connection, message): print(message) def __onLogOut (self, autoLogoutManager): self.connection.close() #sys.exit() def __onAddPlayer (self, gameListManager, player): if player["name"] in self.sudos: self.sudos.remove(player["name"]) if player["name"] == self.owner: self.connection.cm.tellPlayer(self.owner, "Greetings") self.ownerOnline = True def __onRemovePlayer (self, gameListManager, playername): if playername == self.owner: self.ownerOnline = False def __onAdjournmentsList (self, adjournManager, adjournments): for adjournment in adjournments: if adjournment["online"]: adjournManager.challenge(adjournment["opponent"]) def __usage (self): return "|| PyChess bot help file || " +\ "# help 'Displays this help file' " +\ "# sudo 'Lets PyChess execute the given command' "+\ "# sendlog 'Makes PyChess send you its current log'" def __onTell (self, chatManager, name, title, isadmin, text): if self.waitingForPassword: if text.strip() == self.password or (not self.password and text == "none"): self.sudos.add(name) self.tellHome("%s gained sudo access" % name) self.connection.client.run_command(self.waitingForPassword) else: chatManager.tellPlayer(name, "Wrong password") self.tellHome("%s failed sudo access" % name) self.waitingForPassword = None return args = text.split() #if args == ["help"]: # chatManager.tellPlayer(name, self.__usage()) if args[0] == "sudo": command = " ".join(args[1:]) if name in self.sudos or name == self.owner: # Notice: This can be used to make nasty loops print(command, file=self.connection.client) else: print(repr(name), self.sudos) chatManager.tellPlayer(name, "Please send me the password") self.waitingForPassword = command elif args == ["sendlog"]: if self.log: # TODO: Consider email chatManager.tellPlayer(name, "\\n".join(self.log)) else: chatManager.tellPlayer(name, "The log is currently empty") else: if self.ownerOnline: self.tellHome("%s told me '%s'" % (name, text)) else: def onlineanswer (message): data = urlopen("http://www.pandorabots.com/pandora/talk?botid=8d034368fe360895", urlencode({"message":message, "botcust2":"x"}).encode("utf-8")).read().decode('utf-8') ss = "DMPGirl:" es = "
" answer = data[data.find(ss)+len(ss) : data.find(es,data.find(ss))] chatManager.tellPlayer(name, answer) t = Thread(target=onlineanswer, name=fident(onlineanswer), args=(text,)) t.daemon = True t.start() #chatManager.tellPlayer(name, "Sorry, your request was nonsense.\n"+\ # "Please read my help file for more info") #=========================================================================== # Challenges and other offers #=========================================================================== def __onChallengeAdd (self, offerManager, index, match): #match = {"tp": type, "w": fname, "rt": rating, "color": color, # "r": rated, "t": mins, "i": incr} offerManager.acceptIndex(index) def __onOfferAdd (self, offerManager, offer): if offer.type in (PAUSE_OFFER, RESUME_OFFER, ADJOURN_OFFER): offerManager.accept(offer) elif offer.type in (TAKEBACK_OFFER,): offerManager.decline(offer) elif offer.type in (DRAW_OFFER, ABORT_OFFER, SWITCH_OFFER): if self.__willingToDraw(): offerManager.accept(offer) else: offerManager.decline(offer) #=========================================================================== # Playing #=========================================================================== def __onGameCreated (self, boardManager, ficsgame): base = int(ficsgame.minutes)*60 inc = int(ficsgame.inc) self.clock[:] = base, base self.increment[:] = inc, inc self.gameno = ficsgame.gameno self.lastPly = -1 self.acceptedTimesettings.append((base, inc)) self.tellHome("Starting a game (%s, %s) gameno: %s" % (ficsgame.wplayer.name, ficsgame.bplayer.name, ficsgame.gameno)) if ficsgame.bplayer.name.lower() == self.connection.getUsername().lower(): self.playingAs = BLACK else: self.playingAs = WHITE self.board = LBoard(NORMALCHESS) # Now we wait until we receive the board. def __go (self): if self.worker: self.worker.cancel() # TODO: fix it self.worker = GtkWorker(lambda worker: PyChess._PyChess__go(self, worker)) self.worker.connect("published", lambda w, msg: self.extendlog(msg)) self.worker.connect("done", self.__onMoveCalculated) self.worker.execute() def __willingToDraw (self): return self.scr <= 0 # FIXME: this misbehaves in all but the simplest use cases def __onGameEnded (self, boardManager, ficsgame): self.tellHome(reprResult_long[ficsgame.result] + " " + reprReason_long[ficsgame.reason]) lsearch.searching = False if self.worker: self.worker.cancel() self.worker = None def __onMoveCalculated (self, worker, sanmove): if worker.isCancelled() or not sanmove: return self.board.applyMove(parseSAN(self.board,sanmove)) self.connection.bm.sendMove(sanmove) self.extendlog(["Move sent %s" % sanmove]) def __onBoardUpdate (self, boardManager, gameno, ply, curcol, lastmove, fen, wname, bname, wms, bms): self.extendlog(["","I got move %d %s for gameno %s" % (ply, lastmove, gameno)]) if self.gameno != gameno: return self.board.applyFen(fen) self.clock[:] = wms/1000., bms/1000. if curcol == self.playingAs: self.__go() def __onAmbiguousMove (self, errorManager, move): # This is really a fix for fics, but sometimes it is necessary if determineAlgebraicNotation(move) == SAN: self.board.popMove() move_ = parseSAN(self.board, move) lanmove = toLAN(self.board, move_) self.board.applyMove(move_) self.connection.bm.sendMove(lanmove) else: self.connection.cm.tellOpponent( "I'm sorry, I wanted to move %s, but FICS called " % move + "it 'Ambigious'. I can't find another way to express it, " + "so you can win") self.connection.bm.resign() #=========================================================================== # Utils #=========================================================================== def extendlog(self, messages): [log.info(m+"\n") for m in messages] self.log.extend(messages) del self.log[:-10] def tellHome(self, message): print(message) if self.ownerOnline: self.connection.cm.tellPlayer(self.owner, message) def phoneHome(self, message): SENDMAIL = '/usr/sbin/sendmail' SUBJECT = "Besked fra botten" p = subprocess.Popen([SENDMAIL, '-f', email.utils.parseaddr(self.from_address)[1], email.utils.parseaddr(self.to_address)[1]], stdin=subprocess.PIPE) print("MIME-Version: 1.0", file=p.stdin) print("Content-Type: text/plain; charset=UTF-8", file=p.stdin) print("Content-Disposition: inline", file=p.stdin) print("From: %s" % self.from_address, file=p.stdin) print("To: %s" % self.to_address, file=p.stdin) print("Subject: %s" % SUBJECT, file=p.stdin) print(file=p.stdin) print(message, file=p.stdin) print("Cheers", file=p.stdin) p.stdin.close() p.wait() ################################################################################ # main # ################################################################################ if __name__ == "__main__": if len(sys.argv) == 5 and sys.argv[1] == "fics": pychess = PyChessFICS(*sys.argv[2:]) else: print("Unknown argument(s):", repr(sys.argv)) sys.exit(0) pychess.makeReady() pychess.run() pychess-0.12.2/lib/pychess/Players/Player.py0000755000175000017470000001304712641567764021253 0ustar tamasusers00000000000000from gi.repository import GObject class PlayerIsDead (Exception): """ Used instead of returning a move, when an engine crashes, or a nonlocal player disconnects """ pass class TurnInterrupt (Exception): """ Used instead of returning a move, when a players turn is interrupted. Currently this will only happen when undoMoves changes the current player """ pass class InvalidMove (Exception): """ Used instead of returning a move, when an engine plays an invalid move """ pass class Player (GObject.GObject): __gsignals__ = { "offer": (GObject.SignalFlags.RUN_FIRST, None, (object,)), "withdraw": (GObject.SignalFlags.RUN_FIRST, None, (object,)), "decline": (GObject.SignalFlags.RUN_FIRST, None, (object,)), "accept": (GObject.SignalFlags.RUN_FIRST, None, (object,)), "name_changed": (GObject.SignalFlags.RUN_FIRST, None, ()), } def __init__ (self): GObject.GObject.__init__(self) self.name = "" self.ichandle = None self.icrating = None def setName (self, name): """ __repr__ should return this name """ self.name = name self.emit("name_changed") def __repr__ (self): return self.name @property def time (self): pass # Optional #=========================================================================== # Starting the game #=========================================================================== def prestart (self): pass # Optional def start (self): pass # Optional def setOptionInitialBoard (self, model): pass # Optional. Further defined in Engine.py #=========================================================================== # Ending the game #=========================================================================== def end (self, status, reason): """ Called when the game ends in a normal way. Use this for shutting down engines etc. """ raise NotImplementedError def kill (self, reason): """ Called when game has too die fast and ugly. Mostly used in case of errors and stuff. Use for closing connections etc. """ raise NotImplementedError #=========================================================================== # Send the player move updates #=========================================================================== def makeMove (self, board1, move, board2): """ Takes a board object, and if ply>lowply the latest move object and second latest board object as well. Otherwise these two are None. Retruns: A new move object, witch the player wants to do. """ raise NotImplementedError def putMove (self, board1, move, board2): """ Like makeMove, but doesn't block and doesn't return anything. putMove is only used when the player is spectatctor to a game """ #Optional def updateTime (self, secs, opsecs): """ Updates the player with the current remaining time as a float of seconds """ #Optional #=========================================================================== # Interacting with the player #=========================================================================== def pause (self): """ Should stop the player from thinking until resume is called """ raise NotImplementedError def resume (self): """ Should resume player to think if he's paused """ raise NotImplementedError def hurry (self): """ Forces engines to move now, and sends a hurry message to nonlocal human players """ #Optional def undoMoves (self, moves, gamemodel): """ Undo 'moves' moves and makes the latest board in gamemodel the current """ #Optional def playerUndoMoves (self, moves, gamemodel): """ Some players undo different depending on whether they are players or spectators. This is a convenient way to handle that. """ #Optional return self.undoMoves (moves, gamemodel) def spectatorUndoMoves (self, moves, gamemodel): """ Some players undo different depending on whether they are players or spectators. This is a convenient way to handle that. """ #Optional return self.undoMoves (moves, gamemodel) def putMessage (self, message): """ Sends the player a chatmessage """ #Optional #=========================================================================== # Offer handling #=========================================================================== def offer (self, offer): """ The players opponent has offered the player offer. If the player accepts, it should respond by mirroring the offer with emit("accept", offer). If it should either ignore the offer or emit "decline".""" raise NotImplementedError def offerDeclined (self, offer): """ An offer sent by the player was responded negative by the opponent """ #Optional def offerWithdrawn (self, offer): """ An offer earlier offered to the player has been withdrawn """ #Optional def offerError (self, offer, error): """ An offer, accept or action made by the player has been refused by the game model. """ #Optional pychess-0.12.2/lib/pychess/Players/PyChessCECP.py0000644000175000017470000004411612641567764022026 0ustar tamasusers00000000000000from __future__ import print_function import re import signal import sys from threading import Thread if sys.platform != "win32": import readline import pychess from pychess.compat import raw_input from pychess.Players.PyChess import PyChess from pychess.System import conf, fident from pychess.Utils.book import getOpenings from pychess.Utils.const import * from pychess.Utils.lutils.Benchmark import benchmark from pychess.Utils.lutils.perft import perft from pychess.Utils.lutils.LBoard import LBoard from pychess.Utils.lutils.ldata import MAXPLY from pychess.Utils.lutils import lsearch, leval from pychess.Utils.lutils.lmove import parseSAN, parseAny, toSAN, ParsingError from pychess.Utils.lutils import lsearch from pychess.Utils.lutils.lmovegen import genAllMoves, genCaptures, genCheckEvasions from pychess.Utils.lutils.validator import validateMove from pychess.System.Log import log from pychess.Variants.asean import ASEANSTART, MAKRUKSTART, KAMBODIANSTART, SITTUYINSTART ASCII = sys.platform == "win32" class PyChessCECP(PyChess): def __init__ (self): PyChess.__init__(self) self.board = LBoard(NORMALCHESS) self.board.applyFen(FEN_START) self.forced = False self.analyzing = False self.thread = None self.basetime = 0 self.features = { "ping": 1, "setboard": 1, "playother": 1, "san": 1, "usermove": 1, "time": 1, "draw": 1, "sigint": 0, "sigterm": 0, "reuse": 1, "analyze": 1, "myname": "PyChess %s" % pychess.VERSION, "variants": "normal,wildcastle,nocastle,fischerandom,crazyhouse,losers,suicide,atomic," + \ "kingofthehill,3check,asean,cambodian,makruk,sittuyin", "colors": 0, "ics": 0, "name": 0, "pause": 0, # Unimplemented "nps": 0, # Unimplemented "debug": 1, "memory": 0, # Unimplemented "smp": 0, # Unimplemented "egt": "gaviota", "option": "skipPruneChance -slider 0 0 100" } python = sys.executable.split("/")[-1] python_version = "%s.%s.%s" % sys.version_info[0:3] self.print("# %s [%s %s]" % (self.features["myname"], python, python_version)) def handle_sigterm(self, *args): self.__stopSearching() sys.exit(0) def makeReady(self): signal.signal(signal.SIGINT, signal.SIG_IGN) signal.signal(signal.SIGTERM, self.handle_sigterm) def run (self): while True: try: line = raw_input() except EOFError: line = "quit" lines = line.split() try: if not lines: continue log.debug(line, extra={"task": "xboard"}) ########## CECP commands ########## # See http://home.hccnet.nl/h.g.muller/engine-intf.html if lines[0] == "xboard": pass elif lines[0] == "protover": stringPairs = ["=".join([k, '"%s"' % v if isinstance(v, str) else str(v)]) for k,v in self.features.items()] self.print("feature %s" % " ".join(stringPairs)) self.print("feature done=1") elif lines[0] in ("accepted", "rejected"): # We only really care about one case: if tuple(lines) == ("rejected", "debug"): self.debug = False elif lines[0] == "new": self.__stopSearching() self.board = LBoard(NORMALCHESS) self.board.applyFen(FEN_START) self.outOfBook = False self.forced = False self.playingAs = BLACK self.clock[:] = self.basetime, self.basetime self.searchtime = 0 self.sd = MAXPLY if self.analyzing: self.__analyze() elif lines[0] == "variant": if len(lines) > 1: if lines[1] == "fischerandom": self.board.variant = FISCHERRANDOMCHESS elif lines[1] == "crazyhouse": self.board.variant = CRAZYHOUSECHESS self.board.iniHouse() elif lines[1] == "wildcastle": self.board.variant = WILDCASTLESHUFFLECHESS elif lines[1] == "losers": self.board.variant = LOSERSCHESS elif lines[1] == "suicide": self.board.variant = SUICIDECHESS elif lines[1] == "atomic": self.board.variant = ATOMICCHESS self.board.iniAtomic() elif lines[1] == "3check": self.board.variant = THREECHECKCHESS elif lines[1] == "kingofthehill": self.board.variant = KINGOFTHEHILLCHESS self.print("setup (PNBRQKpnbrqk) 8x8+0_fairy %s" % FEN_START) elif lines[1] == "asean": self.board = LBoard(ASEANCHESS) self.board.applyFen(ASEANSTART) elif lines[1] == "makruk": self.board = LBoard(MAKRUKCHESS) self.board.applyFen(MAKRUKSTART) elif lines[1] == "cambodian": self.board = LBoard(CAMBODIANCHESS) self.board.applyFen(KAMBODIANSTART) self.print("setup (PN.R.M....SKpn.r.m....sk) 8x8+0_makruk %s" % KAMBODIANSTART) self.print("piece K& KiN") self.print("piece M& FifD") elif lines[1] == "sittuyin": self.board = LBoard(SITTUYINCHESS) self.board.applyFen(SITTUYINSTART) self.print("setup (PN.R.F....SKpn.r.f....sk) 8x8+6_bughouse %s" % SITTUYINSTART) self.print("piece N& Nj@3") self.print("piece S& FfWj@3") self.print("piece F& Fjb@3") self.print("piece R& R@1") self.print("piece K& Kj@3") self.print("piece P& fmWfcFj@3") elif lines[0] == "quit": self.forced = True self.__stopSearching() sys.exit(0) elif lines[0] == "random": leval.random = True elif lines[0] == "force": if not self.forced and not self.analyzing: self.forced = True self.__stopSearching() elif lines[0] == "go": self.playingAs = self.board.color self.forced = False self.__go() elif lines[0] == "playother": self.playingAs = 1-self.board.color self.forced = False # TODO: start pondering, if possible elif lines[0] in ("black", "white"): newColor = lines[0] == "black" and BLACK or WHITE self.__stopSearching() self.playingAs = 1-newColor if self.board.color != newColor: self.board.setColor(newColor) self.board.setEnpassant(None) if self.analyzing: self.__analyze() elif lines[0] == "level": self.movestogo = int(lines[1]) inc = int(lines[3]) minutes = lines[2].split(":") # Per protocol spec, strip off any non-numeric suffixes. for i in range(len(minutes)): minutes[i] = re.match(r'\d*', minutes[i]).group() self.basetime = int(minutes[0])*60 if len(minutes) > 1 and minutes[1]: self.basetime += int(minutes[1]) self.clock[:] = self.basetime, self.basetime self.increment = inc, inc elif lines[0] == "st": self.searchtime = float(lines[1]) elif lines[0] == "sd": self.sd = int(lines[1]) # Unimplemented: nps elif lines[0] == "time": self.clock[self.playingAs] = float(lines[1])/100. elif lines[0] == "otim": self.clock[1-self.playingAs] = float(lines[1])/100. elif lines[0] == "usermove": self.__stopSearching() try: move = parseAny (self.board, lines[1]) except ParsingError as e: self.print("Error (unknown command): %s" % lines[1]) self.print(self.board.prepr(ascii=ASCII)) continue if not validateMove(self.board, move): self.print("Illegal move: %s" % lines[1]) self.print(self.board.prepr(ascii=ASCII)) continue self.board.applyMove(move) self.playingAs = self.board.color if not self.forced and not self.analyzing: self.__go() if self.analyzing: self.__analyze() elif lines[0] == "?": if not self.forced and not self.analyzing: self.__stopSearching() elif lines[0] == "ping": self.print("pong %s" % lines[1]) elif lines[0] == "draw": if self.__willingToDraw(): self.print("offer draw") elif lines[0] == "result": # We don't really care what the result is at the moment. pass elif lines[0] == "setboard": self.__stopSearching() try: self.board = LBoard(self.board.variant) fen = " ".join(lines[1:]) self.board.applyFen(fen.replace("[", "/").replace("]", "")) except SyntaxError as e: self.print("tellusererror Illegal position: %s" % str(e)) # "edit" is unimplemented. See docs. Exiting edit mode returns to analyze mode. elif lines[0] == "hint": pass # TODO: Respond "Hint: MOVE" if we have an expected reply elif lines[0] == "bk": entries = getOpenings(self.board) if entries: totalWeight = sum(entry[1] for entry in entries) for entry in entries: self.print("\t%s\t%02.2f%%" % (toSAN(self.board, entry[0]), entry[1] * 100.0 / totalWeight)) elif lines[0] == "undo": self.__stopSearching() self.board.popMove() if self.analyzing: self.__analyze() elif lines[0] == "remove": self.__stopSearching() self.board.popMove() self.board.popMove() if self.analyzing: self.__analyze() elif lines[0] in ("hard", "easy"): self.ponder = (lines[0] == "hard") elif lines[0] in ("post", "nopost"): self.post = (lines[0] == "post") elif lines[0] == "analyze": self.analyzing = True self.__analyze() elif lines[0] in ("name", "rating", "ics", "computer"): pass # We don't care. # Unimplemented: pause, resume elif lines[0] == "memory": # FIXME: this is supposed to control the *total* memory use. if lsearch.searching: self.print("Error (already searching):", line) else: limit = int(lines[1]) if limit < 1: self.print("Error (limit too low):", line) else: pass # TODO implement #lsearch.setHashSize(limit) elif lines[0] == "cores": pass # We aren't SMP-capable. elif lines[0] == "egtpath": if len(lines) >= 3 and lines[1] == "gaviota": conf.set("egtb_path", conf.get("egtb_path", lines[2])) from pychess.Utils.lutils.lsearch import enableEGTB enableEGTB() elif lines[0] == "option" and len(lines) > 1: name, eq, value = lines[1].partition("=") if value: value = int(value) # CECP spec says option values are *always* numeric if name == "skipPruneChance": if 0 <= value <= 100: self.skipPruneChance = value / 100.0 else: self.print("Error (argument must be an integer 0..100): %s" % line) ########## CECP analyze mode commands ########## # See http://www.gnu.org/software/xboard/engine-intf.html#11 elif lines[0] == "exit": if self.analyzing: self.__stopSearching() self.analyzing = False # Periodic updates (".") are not implemented. ########## Custom commands ########## elif lines[0] == "moves": self.print(self.board.prepr(ascii=ASCII)) self.print([toSAN(self.board, move) for move in genAllMoves(self.board)]) elif lines[0] == "captures": self.print(self.board.prepr(ascii=ASCII)) self.print([toSAN(self.board, move) for move in genCaptures(self.board)]) elif lines[0] == "evasions": self.print(self.board.prepr(ascii=ASCII)) self.print([toSAN(self.board, move) for move in genCheckEvasions(self.board)]) elif lines[0] == "benchmark": benchmark() elif lines[0] == "profile": if len(lines) > 1: import cProfile cProfile.runctx("benchmark()", locals(), globals(), lines[1]) else: self.print("Usage: profile outputfilename") elif lines[0] == "perft": root = "0" if len(lines) < 3 else lines[2] depth = "1" if len(lines) == 1 else lines[1] if root.isdigit() and depth.isdigit(): perft(self.board, int(depth), int(root)) else: self.print("Error (arguments must be integer") elif len(lines) == 1: # A GUI without usermove support might try to send a move. try: move = parseAny (self.board, line) except: self.print("Error (unknown command): %s" % line) continue if not validateMove(self.board, move): self.print("Illegal move: %s" % lines[0]) self.print(self.board.prepr(ascii=ASCII)) continue self.__stopSearching() self.board.applyMove(move) self.playingAs = self.board.color if not self.forced and not self.analyzing: self.__go() if self.analyzing: self.__analyze() else: self.print("Error (unknown command): %s" % line) except IndexError: self.print("Error (missing argument): %s" % line) def __stopSearching(self): lsearch.searching = False if self.thread: self.thread.join() def __go (self): def ondone (result): if not self.forced: self.board.applyMove(parseSAN(self.board,result)) self.print("move %s" % result) # TODO: start pondering, if enabled self.thread = Thread(target=PyChess._PyChess__go, name=fident(PyChess._PyChess__go), args=(self,ondone)) self.thread.daemon = True self.thread.start() def __analyze (self): self.thread = Thread(target=PyChess._PyChess__analyze, name=fident(PyChess._PyChess__analyze), args=(self,)) self.thread.daemon = True self.thread.start() def __willingToDraw (self): return self.scr <= 0 # FIXME: this misbehaves in all but the simplest use cases pychess-0.12.2/lib/pychess/Players/PyChess.py0000755000175000017470000001706712641567764021403 0ustar tamasusers00000000000000#!/usr/bin/pypy -u from __future__ import print_function #if __name__ == "__main__": # print("feature done=0") import os import random import sys from time import time this_dir = os.path.dirname(os.path.abspath(__file__)) if os.path.join(this_dir, "../..") not in sys.path: sys.path = [os.path.join(this_dir, "../..")] + sys.path from pychess.compat import PY2 from pychess.Utils import const from pychess.Utils.book import getOpenings from pychess.Utils.const import * from pychess.Utils.lutils import lsearch from pychess.Utils.lutils.ldata import MAXPLY from pychess.Utils.lutils.lsearch import alphaBeta from pychess.Utils.lutils.LBoard import LBoard from pychess.Utils.lutils.lmove import listToSan, toSAN from pychess.System.Log import log class PyChess (object): def __init__ (self): self.sd = MAXPLY self.skipPruneChance = 0 self.clock = [0, 0] self.increment = [0, 0] self.movestogo = 0 self.searchtime = 0 self.scr = 0 # The current predicted score. Used when accepting draw offers self.playingAs = WHITE self.ponder = False # Currently unused self.post = False self.debug = True self.outOfBook = False def print(self, text): print(text) sys.stdout.flush() log.debug(text, extra={"task": "stdout"}) #=========================================================================== # Play related #=========================================================================== def __remainingMovesA (self): # Based on regression of a 180k games pgn x = self.board.plyCount return -1.71086e-12*x**6 \ +1.69103e-9*x**5 \ -6.00801e-7*x**4 \ +8.17741e-5*x**3 \ +2.91858e-4*x**2 \ -0.94497*x \ +78.8979 def __remainingMovesB (self): # We bet a game will be around 80 moves x = self.board.plyCount return max(80-x,4) def __getBestOpening (self): totalWeight = 0 choice = None if self.board.variant not in (ASEANCHESS, CAMBODIANCHESS, MAKRUKCHESS, \ SITTUYINCHESS, LOSERSCHESS, SUICIDECHESS,\ ATOMICCHESS, KINGOFTHEHILLCHESS, THREECHECKCHESS): for move, weight, histGames, histScore in getOpenings(self.board): totalWeight += weight if totalWeight == 0: break if not move or random.randrange(totalWeight) < weight: choice = move if choice is None: self.outOfBook = True return choice def __go (self, ondone=None): """ Finds and prints the best move from the current position """ mv = False if self.outOfBook else self.__getBestOpening() if mv: mvs = [mv] if not mv: lsearch.skipPruneChance = self.skipPruneChance lsearch.searching = True timed = self.basetime > 0 if self.searchtime > 0: usetime = self.searchtime else: usetime = self.clock[self.playingAs] / self.__remainingMovesA() if self.clock[self.playingAs] > 10: # If we have time, we assume 40 moves rather than 80 usetime *= 2 # The increment is a constant. We'll use this always usetime += self.increment[self.playingAs] prevtime = 0 starttime = time() lsearch.endtime = starttime + usetime if timed else sys.maxsize if self.debug: if timed: self.print("# Time left: %3.2f s; Planing to think for %3.2f s" % (self.clock[self.playingAs], usetime)) else: self.print("# Searching to depth %d without timelimit" % self.sd) for depth in range(1, self.sd+1): # Heuristic time saving # Don't waste time, if the estimated isn't enough to complete next depth if timed and usetime <= prevtime*4 and usetime > 1: break lsearch.timecheck_counter = lsearch.TIMECHECK_FREQ search_result = alphaBeta(self.board, depth) if lsearch.searching: mvs, self.scr = search_result if time() > lsearch.endtime: break if self.post: pv = " ".join(listToSan(self.board, mvs)) time_cs = int(100 * (time()-starttime)) self.print("%s %s %s %s %s" % (depth, self.scr, time_cs, lsearch.nodes, pv)) else: # We were interrupted if depth == 1: mvs, self.scr = search_result break prevtime = time()-starttime - prevtime self.clock[self.playingAs] -= time() - starttime - self.increment[self.playingAs] if not mvs: if not lsearch.searching: # We were interupted lsearch.nodes = 0 return # This should only happen in terminal mode if self.scr == 0: self.print("result %s" % reprResult[DRAW]) elif self.scr < 0: if self.board.color == WHITE: self.print("result %s" % reprResult[BLACKWON]) else: self.print("result %s" % reprResult[WHITEWON]) else: if self.board.color == WHITE: self.print("result %s" % reprResult[WHITEWON]) else: self.print("result %s" % reprResult[BLACKWON]) return lsearch.nodes = 0 lsearch.searching = False move = mvs[0] sanmove = toSAN(self.board, move) if ondone: ondone(sanmove) return sanmove def __analyze (self): """ Searches, and prints info from, the position as stated in the cecp protocol """ start = time() lsearch.endtime = sys.maxsize lsearch.searching = True for depth in range (1, self.sd): if not lsearch.searching: break t = time() board = self.board.clone() mvs, scr = alphaBeta (board, depth) pv = " ".join(listToSan(board, mvs)) time_cs = int(100 * (time() - start)) self.print("%s %s %s %s %s" % (depth, scr, time_cs, lsearch.nodes, pv)) lsearch.nodes = 0 ################################################################################ # main # ################################################################################ if __name__ == "__main__": import logging from pychess.Players.PyChessCECP import PyChessCECP from pychess.System.Log import log if len(sys.argv) == 1 or sys.argv[1:] == ["debug"]: if "debug" in sys.argv[1:]: log.logger.setLevel(logging.DEBUG) else: log.logger.setLevel(logging.WARNING) pychess = PyChessCECP() else: print("Unknown argument(s):", repr(sys.argv)) sys.exit(0) pychess.makeReady() pychess.run() pychess-0.12.2/lib/pychess/compat.py0000644000175000017470000000241412641567764017654 0ustar tamasusers00000000000000""" Some Python2/Python3 compatibility support helpers """ import sys PY2 = sys.version_info[0] == 2 PY3 = sys.version_info[0] == 3 if PY3: basestring = str cmp = lambda x, y: (x > y) - (x < y) memoryview = memoryview open = open unichr = chr unicode = lambda x: x raw_input = input strip = str.strip import builtins from html.entities import entitydefs from io import StringIO from configparser import RawConfigParser, SafeConfigParser from queue import Queue, Empty, Full from urllib.request import Request, urlopen, url2pathname, pathname2url from urllib.parse import urlencode, urlparse, unquote from urllib.error import HTTPError, URLError else: basestring = basestring cmp = cmp memoryview = buffer unicode = unicode unichr = unichr raw_input = raw_input strip = unicode.strip import __builtin__ as builtins from htmlentitydefs import entitydefs from StringIO import StringIO from urlparse import urlparse from ConfigParser import RawConfigParser, SafeConfigParser from Queue import Queue, Empty, Full from urllib import urlencode, url2pathname, pathname2url, unquote from urllib2 import Request, urlopen, HTTPError, URLError from io import open pychess-0.12.2/lib/pychess/Utils/0000755000175000017470000000000012653231274017101 5ustar tamasusers00000000000000pychess-0.12.2/lib/pychess/Utils/Board.py0000755000175000017470000004246712641567764020537 0ustar tamasusers00000000000000from __future__ import absolute_import from __future__ import print_function from copy import copy from pychess.compat import basestring from .lutils.bitboard import iterBits from .lutils.LBoard import LBoard from .lutils.lmove import RANK, FILE, FCORD, FLAG, PROMOTE_PIECE, toAN from .Piece import Piece from .Cord import Cord from .const import * def reverse_enum(L): for index in reversed(range(len(L))): yield index, L[index] class Board: """ Board is a thin layer above LBoard, adding the Piece objects, which are needed for animation in BoardView. In contrast to LBoard, Board is immutable, which means it will clone itself each time you apply a move to it. Caveat: As the only objects, the Piece objects in the self.data lists will not be cloned, to make animation state preserve between moves """ variant = NORMALCHESS RANKS = 8 FILES = 8 HOLDING_FILES = ((FILES+3, FILES+2, FILES+1), (-4, -3, -2)) PROMOTION_ZONE = ((A8, B8, C8, D8, E8, F8, G8, H8), \ (A1, B1, C1, D1, E1, F1, G1, H1)) PROMOTIONS = (QUEEN_PROMOTION, ROOK_PROMOTION, BISHOP_PROMOTION, KNIGHT_PROMOTION) def __init__ (self, setup=False, lboard=None): self.data = [dict(enumerate([None]*self.FILES)) for i in range(self.RANKS)] if lboard is None: self.board = LBoard(self.variant) else: self.board = lboard self.board.pieceBoard = self if setup: if lboard is None: if setup == True: self.board.applyFen(FEN_START) elif isinstance(setup, basestring): self.board.applyFen(setup) wpieces = self.board.boards[WHITE] bpieces = self.board.boards[BLACK] for cord in iterBits(wpieces[PAWN]): self.data[RANK(cord)][FILE(cord)] = Piece(WHITE, PAWN) for cord in iterBits(wpieces[KNIGHT]): self.data[RANK(cord)][FILE(cord)] = Piece(WHITE, KNIGHT) for cord in iterBits(wpieces[BISHOP]): self.data[RANK(cord)][FILE(cord)] = Piece(WHITE, BISHOP) for cord in iterBits(wpieces[ROOK]): self.data[RANK(cord)][FILE(cord)] = Piece(WHITE, ROOK) for cord in iterBits(wpieces[QUEEN]): self.data[RANK(cord)][FILE(cord)] = Piece(WHITE, QUEEN) if self.board.kings[WHITE] != -1: self[Cord(self.board.kings[WHITE])] = Piece(WHITE, KING) for cord in iterBits(bpieces[PAWN]): self.data[RANK(cord)][FILE(cord)] = Piece(BLACK, PAWN) for cord in iterBits(bpieces[KNIGHT]): self.data[RANK(cord)][FILE(cord)] = Piece(BLACK, KNIGHT) for cord in iterBits(bpieces[BISHOP]): self.data[RANK(cord)][FILE(cord)] = Piece(BLACK, BISHOP) for cord in iterBits(bpieces[ROOK]): self.data[RANK(cord)][FILE(cord)] = Piece(BLACK, ROOK) for cord in iterBits(bpieces[QUEEN]): self.data[RANK(cord)][FILE(cord)] = Piece(BLACK, QUEEN) if self.board.kings[BLACK] != -1: self[Cord(self.board.kings[BLACK])] = Piece(BLACK, KING) if self.variant in DROP_VARIANTS: for color in (BLACK, WHITE): holding = self.board.holding[color] for piece in holding: for i in range(holding[piece]): self[self.newHoldingCord(color, 1)] = Piece(color, piece) def getHoldingCord(self, color, piece): """Get the chord of first occurence of piece in given color holding""" enum = reverse_enum if color == WHITE else enumerate for x in self.HOLDING_FILES[color]: for i, row in enum(self.data): if (row.get(x) is not None) and row.get(x).piece == piece: return Cord(x, i) def newHoldingCord(self, color, nth=1): """Find the nth empty slot in given color holding. In atomic explosions nth can be > 1. """ enum = reverse_enum if color == BLACK else enumerate empty = 0 for x in reversed(self.HOLDING_FILES[color]): for i, row in enum(self.data): if row.get(x) is None: empty += 1 if empty == nth: return Cord(x, i) def getHoldingPieces(self, color): """Get the list of pieces from given color holding""" pieces = [] for x in self.HOLDING_FILES[color]: for row in self.data: if row.get(x) is not None: pieces.append(row.get(x)) return pieces def popPieceFromHolding(self, color, piece): """Remove and return a piece in given color holding""" for x in self.HOLDING_FILES[color]: for row in self.data: if (row.get(x) is not None) and row.get(x).piece == piece: p = row.get(x) del row[x] return p return None def reorderHolding(self, color): """Reorder captured pieces by their value""" pieces = [] for piece in (PAWN, KNIGHT, BISHOP, ROOK, QUEEN, KING): while True: p = self.popPieceFromHolding(color, piece) if p is not None: pieces.append(p) else: break for piece in pieces: self[self.newHoldingCord(color, 1)] = piece def simulateMove (self, board1, move): moved = [] new = [] dead = [] if move.flag == NULL_MOVE: return moved, new, dead cord0, cord1 = move.cords if move.flag == DROP: piece = FCORD(move.move) cord0 = self.getHoldingCord(self.color, piece) moved.append( (self[cord0], cord0) ) # add all captured pieces to "new" list to enforce repainting them after a possible reordering new = board1.getHoldingPieces(self.color) dead = new return moved, new, dead if self.variant == ATOMICCHESS and (self[cord1] or move.flag == ENPASSANT): # Sequence nubers of next newHoldingCord of WHITE and BLACK nth = [0, 0] piece = self[cord0] nth[1-piece.color] += 1 cord = self.newHoldingCord(1-piece.color, nth[1-piece.color]) moved.append( (board1[cord], cord0) ) new.append( board1[cord] ) else: moved.append( (self[cord0], cord0) ) if self[cord1] and not (self.variant == FISCHERRANDOMCHESS and move.flag in (QUEEN_CASTLE, KING_CASTLE)): piece = PAWN if self.variant == CRAZYHOUSECHESS and self[cord1].promoted else self[cord1].piece cord = self.newHoldingCord(self.color) moved.append( (board1[cord], cord1) ) # add all captured pieces to "new" list to enforce repainting them after a possible reordering new = board1.getHoldingPieces(self.color) if self.variant == ATOMICCHESS: nth[self.color] += 1 from pychess.Variants.atomic import cordsAround for acord in cordsAround(cord1): piece = self[acord] if piece and piece.piece != PAWN and acord != cord0: nth[1-piece.color] += 1 cord = self.newHoldingCord(1-piece.color, nth[1-piece.color]) moved.append( (board1[cord], acord) ) new.append( board1[cord] ) if move.flag in (QUEEN_CASTLE, KING_CASTLE): side = move.flag - QUEEN_CASTLE if FILE(cord0.x) == 3 and self.board.variant in (WILDCASTLECHESS, WILDCASTLESHUFFLECHESS): side = 0 if side == 1 else 1 rook = self.board.ini_rooks[self.color][side] moved.append( (self[Cord(rook)], Cord(rook)) ) elif move.flag in PROMOTIONS: newPiece = board1[cord1] moved.append( (newPiece, cord0) ) new.append( newPiece ) elif move.flag == ENPASSANT: shift = -1 if self.color == WHITE else 1 ep_cord = Cord(cord1.x, cord1.y + shift) moved.append( (self[ep_cord], ep_cord) ) # add all captured pieces to "new" list to enforce repainting them after a possible reordering new = board1.getHoldingPieces(self.color) return moved, new, dead def simulateUnmove (self, board1, move): moved = [] new = [] dead = [] if move.flag == NULL_MOVE: return moved, new, dead cord0, cord1 = move.cords if self.variant == ATOMICCHESS and (board1[cord1] or move.flag == ENPASSANT): piece = board1[cord0].piece cord = self.getHoldingCord(self.color, piece) moved.append( (self[cord], cord) ) self[cord].opacity = 1 dead.append( self[cord] ) elif not (self.variant == FISCHERRANDOMCHESS and move.flag in (QUEEN_CASTLE, KING_CASTLE)): moved.append( (self[cord1], cord1) ) if board1[cord1] and not (self.variant == FISCHERRANDOMCHESS and move.flag in (QUEEN_CASTLE, KING_CASTLE)): piece = PAWN if self.variant == CRAZYHOUSECHESS and board1[cord1].promoted else board1[cord1].piece cord = self.getHoldingCord(1-self.color, piece) moved.append( (self[cord], cord) ) self[cord].opacity = 1 # add all captured pieces to "new" list to enforce repainting them after a possible reordering new = self.getHoldingPieces(self.color) dead.append( self[cord] ) if self.variant == ATOMICCHESS: from pychess.Variants.atomic import cordsAround for acord in cordsAround(cord1): piece = board1[acord] if piece and piece.piece != PAWN and acord != cord0: piece.opacity = 0 cord = self.getHoldingCord(1-piece.color, piece.piece) moved.append( (self[cord], cord) ) self[cord].opacity = 1 dead.append( self[cord] ) if move.flag in (QUEEN_CASTLE, KING_CASTLE): side = move.flag - QUEEN_CASTLE if FILE(cord0.x) == 3 and self.board.variant in (WILDCASTLECHESS, WILDCASTLESHUFFLECHESS): side = 0 if side == 1 else 1 rook = self.board.fin_rooks[board1.color][side] moved.append( (self[Cord(rook)], Cord(rook)) ) elif move.flag in PROMOTIONS: newPiece = board1[cord0] moved.append( (newPiece, cord1) ) new.append( newPiece ) elif move.flag == ENPASSANT: cord = self.getHoldingCord(1-self.color, PAWN) moved.append( (self[cord], cord) ) self[cord].opacity = 1 # add all captured pieces to "new" list to enforce repainting them after a possible reordering new = self.getHoldingPieces(self.color) dead.append( self[cord] ) return moved, new, dead def move (self, move, lboard=None): """ Creates a new Board object cloning itself then applying the move.move to the clone Board's lboard. If lboard param was given, it will be used when cloning, and move will not be applyed, just the high level Piece objects will be adjusted.""" # Sequence nubers of next newHoldingCord of WHITE and BLACK nth = [0, 0] flag = FLAG(move.move) if flag != DROP: assert self[move.cord0], "%s %s" % (move, self.asFen()) newBoard = self.clone(lboard=lboard) if lboard is None: newBoard.board.applyMove (move.move) cord0, cord1 = move.cords if (self[move.cord1] is not None or flag == ENPASSANT) and \ not (self.variant == FISCHERRANDOMCHESS and flag in (QUEEN_CASTLE, KING_CASTLE)): if self.variant == CRAZYHOUSECHESS: piece = PAWN if flag == ENPASSANT or self[move.cord1].promoted else self[move.cord1].piece new_piece = Piece(self.color, piece, captured=True) else: piece = PAWN if flag == ENPASSANT else self[move.cord1].piece new_piece = Piece(1-self.color, piece, captured=True) nth[self.color] += 1 newBoard[self.newHoldingCord(self.color, nth[self.color])] = new_piece if self.variant == ATOMICCHESS: from pychess.Variants.atomic import cordsAround for acord in cordsAround(move.cord1): piece = self[acord] if piece and piece.piece != PAWN and acord != cord0: new_piece = Piece(piece.color, piece.piece, captured=True) nth[1-piece.color] += 1 newBoard[self.newHoldingCord(1-piece.color, nth[1-piece.color])] = new_piece newBoard[acord] = None if flag == DROP: piece = FCORD(move.move) hc = self.getHoldingCord(self.color, piece) if hc is None: newBoard[cord1] = Piece(self.color, piece) else: newBoard[cord1] = newBoard[hc] newBoard[cord1].captured = False newBoard[hc] = None else: if self.variant == ATOMICCHESS and (flag == ENPASSANT or self[move.cord1] is not None): piece = self[move.cord0].piece new_piece = Piece(self.color, piece, captured=True) nth[1-self.color] += 1 newBoard[self.newHoldingCord(1-self.color, nth[1-self.color])] = new_piece newBoard[cord1] = None else: if self.variant == FISCHERRANDOMCHESS and flag in (QUEEN_CASTLE, KING_CASTLE): king = newBoard[cord0] else: newBoard[cord1] = newBoard[cord0] if flag != NULL_MOVE and flag != DROP: newBoard[cord0] = None if flag in (QUEEN_CASTLE, KING_CASTLE): side = flag - QUEEN_CASTLE if FILE(cord0.x) == 3 and self.board.variant in (WILDCASTLECHESS, WILDCASTLESHUFFLECHESS): side = 0 if side == 1 else 1 inirook = self.board.ini_rooks[self.color][side] finrook = self.board.fin_rooks[self.color][side] newBoard[Cord(finrook)] = newBoard[Cord(inirook)] if inirook != finrook: newBoard[Cord(inirook)] = None if self.variant == FISCHERRANDOMCHESS: finking = self.board.fin_kings[self.color][side] newBoard[Cord(finking)] = king if flag in PROMOTIONS: new_piece = Piece(self.color, PROMOTE_PIECE(flag)) new_piece.promoted = True newBoard[cord1] = new_piece elif flag == ENPASSANT: newBoard[Cord(cord1.x, cord0.y)] = None if flag == DROP or flag == ENPASSANT or self[move.cord1] is not None: newBoard.reorderHolding(self.color) return newBoard def switchColor (self): """ Switches the current color to move and unsets the enpassant cord. Mostly to be used by inversed analyzers """ new_board = self.setColor(1-self.color) new_board.board.next = self.board.next return new_board def _get_enpassant (self): if self.board.enpassant != None: return Cord(self.board.enpassant) return None enpassant = property(_get_enpassant) def setColor (self, color): newBoard = self.clone() newBoard.board.setColor(color) newBoard.board.setEnpassant(None) return newBoard def _get_color (self): return self.board.color color = property(_get_color) def _get_ply (self): return self.board.plyCount ply = property(_get_ply) def asFen (self, enable_bfen=True): return self.board.asFen(enable_bfen) def __repr__ (self): return repr(self.board) def __getitem__ (self, cord): return self.data[cord.y].get(cord.x) def __setitem__ (self, cord, piece): self.data[cord.y][cord.x] = piece def clone (self, lboard=None): if lboard is None: lboard = self.board.clone() if self.variant != NORMALCHESS: from pychess.Variants import variants newBoard = variants[self.variant]() else: newBoard = Board() newBoard.board = lboard newBoard.board.pieceBoard = newBoard for y, row in enumerate(self.data): for x, piece in row.items(): newBoard.data[y][x] = piece return newBoard def __eq__ (self, other): if not isinstance(self, type(other)): return False return self.board == other.board def printPieces(self): b = "" for row in reversed(self.data): for i in range(-3, 11): piece = row.get(i) if piece is not None: if piece.color == BLACK: p = FAN_PIECES[BLACK][piece.piece] else: p = FAN_PIECES[WHITE][piece.piece] b += p else: b += '.' b += "\n" print(b) pychess-0.12.2/lib/pychess/Utils/SetupModel.py0000644000175000017470000000601112641567764021547 0ustar tamasusers00000000000000# -*- coding: UTF-8 -*- from __future__ import print_function from threading import Thread from gi.repository import GObject from pychess.compat import Queue from pychess.Utils.const import * from pychess.Variants.setupposition import SetupBoard from pychess.System import conf, fident class SetupMove: def __init__ (self, move): self.cord0 = move[0] self.cord1 = move[1] self.flag = 0 def is_capture(self, board): return False class SetupPlayer: __type__ = LOCAL def __init__ (self, board_control): self.queue = Queue() self.board_control = board_control self.board_control.connect("action", lambda bc, action, param: self.queue.put((action, param))) self.board_control.connect("piece_moved", self.piece_moved) def make_move (self): item = self.queue.get(block=True) return item def piece_moved (self, board, move, color): self.queue.put((SetupMove(move), color)) class SetupModel (GObject.GObject, Thread): __gsignals__ = { "game_started": (GObject.SignalFlags.RUN_FIRST, None, ()), "game_changed": (GObject.SignalFlags.RUN_FIRST, None, (int,)), "moves_undoing": (GObject.SignalFlags.RUN_FIRST, None, (int,)), "game_loading": (GObject.SignalFlags.RUN_FIRST, None, (object,)), "game_loaded": (GObject.SignalFlags.RUN_FIRST, None, (object,)), "game_ended": (GObject.SignalFlags.RUN_FIRST, None, (int,)), } def __init__ (self): GObject.GObject.__init__(self) Thread.__init__(self, name=fident(self.run)) self.daemon = True self.stop = False self.lowply = 0 self.status = RUNNING self.players = [] self.moves = [] self.variant = SetupBoard self.boards = [self.variant()] self.variations = [self.boards] def _get_ply (self): return self.boards[-1].ply ply = property(_get_ply) def getBoardAtPly (self, ply, variation=0): return self.boards[ply] def getMoveAtPly (self, ply, variation=0): return self.moves[ply] def isPlayingICSGame(self): # prevent hovering over fields return True def run (self): self.emit("game_started") while True: p0, p1 = self.curplayer.make_move() if isinstance(p0, SetupMove): #print(p0.cord0, p0.cord1, p1) new_board = self.boards[-1].move(p0, p1) self.moves.append(p0) self.boards.append(new_board) self.emit("game_changed", self.ply) elif p0 == "SETUP": #print("SETUP", p0, p1) self.emit("game_ended", 0) self.boards = [self.variant(setup=p1)] self.variations = [self.boards] self.emit("game_loaded", 0) self.emit("game_started") self.emit("game_changed", 0) elif p0 == "CLOSE": #print("CLOSE") break pychess-0.12.2/lib/pychess/Utils/Piece.py0000755000175000017470000000225512641567764020524 0ustar tamasusers00000000000000from pychess.Utils.const import KING, QUEEN, ROOK, BISHOP, KNIGHT, PAWN from pychess.Utils.repr import reprSign, reprColor, reprPiece class Piece: def __init__ (self, color, piece, captured=False): self.color = color self.piece = piece self.captured = captured # in crazyhouse we need to know this for later captures self.promoted = False self.opacity = 1.0 self.x = None self.y = None # Sign is a deprecated synonym for piece def _set_sign (self, sign): self.piece = sign def _get_sign (self): return self.piece sign = property(_get_sign, _set_sign) def __repr__ (self): represen = "<%s %s" % (reprColor[self.color], reprPiece[self.piece]) if self.opacity != 1.0: represen += " Op:%0.1f" % self.opacity if self.x != None or self.y != None: if self.x != None: represen += " X:%0.1f" % self.x else: represen += " X:None" if self.y != None: represen += " Y:%0.1f" % self.y else: represen += " Y:None" represen += ">" return represen pychess-0.12.2/lib/pychess/Utils/eval.py0000755000175000017470000005362312641567764020433 0ustar tamasusers00000000000000 ### DEPRECATED ### SHOULD ONLY BE USED AS A REFERENCE TO MAKE leval pieceValues = [0, 900, 500, 350, 300, 100] from array import array from pychess.Utils.const import * # these tables will be used for positional bonuses: # whiteknight = array('b', [ -20, -35,-10, -10, -10,-10, -35, -20, -10, 0, 0, 3, 3, 0, 0, -10, -10, 0, 15, 15, 15, 15, 0, -10, -10, 0, 20, 20, 20, 20, 0, -10, -10, 10, 25, 20, 25, 25, 10, -10, -10, 15, 25, 35, 35, 35, 15, -10, -10, 15, 25, 25, 25, 25, 15, -10, -20, -10,-10, -10, -10,-10, -10, -20 ]) blackknight = array('b', [ -20,-10,-10,-10,-10, -10,-10,-20, -10, 15, 25, 25, 25, 25, 15,-10, -10, 15, 25, 35, 35 , 35, 15,-10, -10, 10, 25, 20, 25, 25, 10,-10, -10, 0, 20, 20, 20, 20, 0,-10, -10, 0, 15, 15, 15, 15, 0,-10, -10, 0, 0, 3, 3, 0, 0,-10, -20,-35,-10,-10,-10, -10,-35,-20 ]) whitepawn = array('b', [ 0, 0, 0, 0, 0, 0, 0, 0, 25, 25, 35, 5, 5, 50, 45, 30, 0, 0, 0, 7, 7, 5, 5, 0, 0, 0, 0, 14, 14, 0, 0, 0, 0, 0, 10, 20, 20, 10, 5, 5, 12, 18, 18, 27, 27, 18, 18, 18, 25, 30, 30, 35, 35, 35, 30, 25, 0, 0, 0, 0, 0, 0, 0, 0 ]) blackpawn = array('b', [ 0, 0, 0, 0, 0, 0, 0, 0, 30, 30, 30, 35, 35, 35, 30, 25, 12, 18, 18, 27, 27, 18, 18, 18, 0, 0, 10, 20, 20, 10, 5, 5, 0, 0, 0, 14, 14, 0, 0, 0, 0, 0, 0, 7, 7, 5, 5, 0, 25, 25, 35, 5, 5, 50, 45, 30, 0, 0, 0, 0, 0, 0, 0, 0]) whiteking = array('h', [ -100, 15, 15, -20, 10, 4, 15, -100, -250, -200, -150, -100, -100, -150, -200, -250, -350, -300, -300, -250, -250, -300, -300, -350, -400, -400, -400, -350, -350, -400, -400, -400, -450, -450, -450, -450, -450, -450, -450, -450, -500, -500, -500, -500, -500, -500, -500, -500, -500, -500, -500, -500, -500, -500, -500, -500, -500, -500, -500, -500, -500, -500, -500, -500 ]) blackking = array('h', [ -500, -500, -500, -500, -500, -500, -500, -500, -500, -500, -500, -500, -500, -500, -500, -500, -500, -500, -500, -500, -500, -500, -500, -500, -450, -450, -450, -450, -450, -450, -450, -450, -400, -400, -400, -350, -350, -400, -400, -400, -350, -300, -300, -250, -250, -300, -300, -350, -250, -200, -150, -100, -100, -150, -200, -250, -100, 7, 15, -20, 10, 4, 15, -100 ]) whitequeen = array('b', [ 0, 0, 0, 5, 0, 0, 0, 0, 0, 0, 0, 7, 10, 5, 0, 0, -15, -15, -15, -10, -10, -15, -15, -15, -40, -40, -40, -40, -40, -40, -40, -40, -60, -40, -40, -60, -60, -40, -40, -60, -30, -30, -30, -30, -30, -30, -30, -30, 0, 0, 3, 3, 3, 3, 3, 0, 5, 5, 5, 10, 10, 7, 5, 5 ]) blackqueen = array('b', [ 5, 5, 5, 10, 10, 7, 5, 5, 0, 0, 3, 3, 3, 3, 3, 0, -30, -30, -30, -30, -30, -30, -30, -30, -60, -40, -40, -60, -60, -40, -40, -60, -40, -40, -40, -40, -40, -40, -40, -40, -15, -15, -15, -10, -10, -15, -15, -15, 0, 0, 0, 7, 10, 5, 0, 0, 0, 0, 0, 5, 0, 0, 0, 0 ]) whiterook = array('b', [ 2, 2, 2, 2, 2, 2, 2, 2, 0, 0, 0, 7, 10, 0, 0, 0, -15, -15, -15, -10, -10, -15, -15, -15, -20, -20, -20, -20, -20, -20, -20, -20, -20, -20, -20, -30, -30, -20, -20, -20, -20, -20, -20, -20, -20, -20, -20, -20, 0, 10, 15, 20, 20, 15, 10, 0, 10, 15, 20, 25, 25, 20, 15, 10 ]) blackrook = array('b', [ 10 , 15, 20, 25, 25, 20, 15, 10, 0 , 10, 15, 20, 20, 15, 10, 0, -20 ,-20, -20, -20, -20, -20, -20, -20, -20, -20, -20, -30, -30, -20, -20, -20, -20, -20, -20, -20, -20, -20, -20, -20, -15, -15, -15, -10, -10, -15, -15, -15, 0, 0, 0, 7, 10, 0, 0, 0, 2, 2, 2, 2, 2, 2, 2, 2 ]) whitebishop = array('b', [ -5, -5, -10, -5, -5, -10, -5, -5, -5, 10, 5, 10, 10, 5, 10, -5, -5, 5, 6, 15, 15, 6, 5, -5, -5, 3, 15, 10, 10, 15, 3, -5, -5, 3, 15, 10, 10, 15, 3, -5, -5, 5, 6, 15, 15, 6, 5, -5, -5, 10, 5, 10, 10, 5, 10, -5, -5, -5, -10, -5, -5, -10, -5, -5 ]) blackbishop = array('b', [ -5, -5, -10, -5, -5, -10, -5, -5, -5, 10, 5, 10, 10, 5, 10, -5, -5, 5, 6, 15, 15, 6, 5, -5, -5, 3, 15, 10, 10, 15, 3, -5, -5, 3, 15, 10, 10, 15, 3, -5, -5, 5, 6, 15, 15, 6, 5, -5, -5, 10, 5, 10, 10, 5, 10, -5, -5, -5, -10, -5, -5, -10, -5, -5 ]) pos = { KNIGHT: { BLACK: array('b', [ -20,-10,-10,-10,-10, -10,-10,-20, -10, 15, 25, 25, 25, 25, 15,-10, -10, 15, 25, 35, 35 , 35, 15,-10, -10, 10, 25, 20, 25, 25, 10,-10, -10, 0, 20, 20, 20, 20, 0,-10, -10, 0, 15, 15, 15, 15, 0,-10, -10, 0, 0, 3, 3, 0, 0,-10, -20,-35,-10,-10,-10, -10,-35,-20 ]), WHITE: array('b', [ -20, -35,-10, -10, -10,-10, -35, -20, -10, 0, 0, 3, 3, 0, 0, -10, -10, 0, 15, 15, 15, 15, 0, -10, -10, 0, 20, 20, 20, 20, 0, -10, -10, 10, 25, 20, 25, 25, 10, -10, -10, 15, 25, 35, 35, 35, 15, -10, -10, 15, 25, 25, 25, 25, 15, -10, -20, -10,-10, -10, -10,-10, -10, -20 ]) }, PAWN: { WHITE: array('b', [ 0, 0, 0, 0, 0, 0, 0, 0, 25, 25, 35, 5, 5, 50, 45, 30, 0, 0, 0, 7, 7, 5, 5, 0, 0, 0, 0, 14, 14, 0, 0, 0, 0, 0, 10, 20, 20, 10, 5, 5, 12, 18, 18, 27, 27, 18, 18, 18, 25, 30, 30, 35, 35, 35, 30, 25, 0, 0, 0, 0, 0, 0, 0, 0 ]), BLACK: array('b', [ 0, 0, 0, 0, 0, 0, 0, 0, 30, 30, 30, 35, 35, 35, 30, 25, 12, 18, 18, 27, 27, 18, 18, 18, 0, 0, 10, 20, 20, 10, 5, 5, 0, 0, 0, 14, 14, 0, 0, 0, 0, 0, 0, 7, 7, 5, 5, 0, 25, 25, 35, 5, 5, 50, 45, 30, 0, 0, 0, 0, 0, 0, 0, 0]) }, KING: { WHITE: array('h', [ -100, 15, 15, -20, 10, 4, 15, -100, -250, -200, -150, -100, -100, -150, -200, -250, -350, -300, -300, -250, -250, -300, -300, -350, -400, -400, -400, -350, -350, -400, -400, -400, -450, -450, -450, -450, -450, -450, -450, -450, -500, -500, -500, -500, -500, -500, -500, -500, -500, -500, -500, -500, -500, -500, -500, -500, -500, -500, -500, -500, -500, -500, -500, -500 ]), BLACK: array('h', [ -500, -500, -500, -500, -500, -500, -500, -500, -500, -500, -500, -500, -500, -500, -500, -500, -500, -500, -500, -500, -500, -500, -500, -500, -450, -450, -450, -450, -450, -450, -450, -450, -400, -400, -400, -350, -350, -400, -400, -400, -350, -300, -300, -250, -250, -300, -300, -350, -250, -200, -150, -100, -100, -150, -200, -250, -100, 7, 15, -20, 10, 4, 15, -100 ]) }, QUEEN: { BLACK: array('b', [ 5, 5, 5, 10, 10, 7, 5, 5, 0, 0, 3, 3, 3, 3, 3, 0, -30, -30, -30, -30, -30, -30, -30, -30, -60, -40, -40, -60, -60, -40, -40, -60, -40, -40, -40, -40, -40, -40, -40, -40, -15, -15, -15, -10, -10, -15, -15, -15, 0, 0, 0, 7, 10, 5, 0, 0, 0, 0, 0, 5, 0, 0, 0, 0 ]), WHITE: array('b', [ 0, 0, 0, 5, 0, 0, 0, 0, 0, 0, 0, 7, 10, 5, 0, 0, -15, -15, -15, -10, -10, -15, -15, -15, -40, -40, -40, -40, -40, -40, -40, -40, -60, -40, -40, -60, -60, -40, -40, -60, -30, -30, -30, -30, -30, -30, -30, -30, 0, 0, 3, 3, 3, 3, 3, 0, 5, 5, 5, 10, 10, 7, 5, 5 ]) }, ROOK: { WHITE: array('b', [ 2, 2, 2, 2, 2, 2, 2, 2, 0, 0, 0, 7, 10, 0, 0, 0, -15, -15, -15, -10, -10, -15, -15, -15, -20, -20, -20, -20, -20, -20, -20, -20, -20, -20, -20, -30, -30, -20, -20, -20, -20, -20, -20, -20, -20, -20, -20, -20, 0, 10, 15, 20, 20, 15, 10, 0, 10, 15, 20, 25, 25, 20, 15, 10 ]), BLACK: array('b', [ 10 , 15, 20, 25, 25, 20, 15, 10, 0 , 10, 15, 20, 20, 15, 10, 0, -20 ,-20, -20, -20, -20, -20, -20, -20, -20, -20, -20, -30, -30, -20, -20, -20, -20, -20, -20, -20, -20, -20, -20, -20, -15, -15, -15, -10, -10, -15, -15, -15, 0, 0, 0, 7, 10, 0, 0, 0, 2, 2, 2, 2, 2, 2, 2, 2 ]) }, BISHOP: { WHITE: array('b', [ -5, -5, -10, -5, -5, -10, -5, -5, -5, 10, 5, 10, 10, 5, 10, -5, -5, 5, 6, 15, 15, 6, 5, -5, -5, 3, 15, 10, 10, 15, 3, -5, -5, 3, 15, 10, 10, 15, 3, -5, -5, 5, 6, 15, 15, 6, 5, -5, -5, 10, 5, 10, 10, 5, 10, -5, -5, -5, -10, -5, -5, -10, -5, -5 ]), BLACK: array('b', [ -5, -5, -10, -5, -5, -10, -5, -5, -5, 10, 5, 10, 10, 5, 10, -5, -5, 5, 6, 15, 15, 6, 5, -5, -5, 3, 15, 10, 10, 15, 3, -5, -5, 3, 15, 10, 10, 15, 3, -5, -5, 5, 6, 15, 15, 6, 5, -5, -5, 10, 5, 10, 10, 5, 10, -5, -5, -5, -10, -5, -5, -10, -5, -5 ]) } } endking = array('b', [ -5, -3, -1, 0, 0, -1, -3, -5, -3, 10, 10, 10, 10, 10, 10, -3, -1, 10, 25, 25, 25, 25, 10, -1, 0, 10, 25, 30, 30, 25, 10, 0, 0, 10, 25, 30, 30, 25, 10, 0, -1, 10, 25, 25, 25, 25, 10, -1, -3, 10, 10, 10, 10, 10, 10, -3, -5, -3, -1, 0, 0, -1, -3, -5 ]) # Init KingTropism table # Sjeng uses max instead of min.. tropismTable = [] for px in range(8): for py in range(8): for kx in range(8): for ky in range(8): knight = abs(ky-py) + abs(kx-px) rook = min(abs(ky-py), abs(kx-px)) *2 +5 queen = min(abs(ky-py), abs(kx-px)) +5 tropismTable.append(knight + rook*20 + queen*20*20) tropismArray = array('I',tropismTable) def lookUpTropism (px, py, kx, ky, piece): value = tropismArray[ky + kx*8 + py*8*8 + px*8*8*8] knight = value % 20 rook = (value-knight)/20 % 20 queen = (value-knight-rook*20)/20/20 if piece == knight: return knight-5 if piece == rook: return rook-5 return queen-5 def evaluateComplete (board, color=WHITE): """ A detailed evaluation function, taking into account several positional factors """ if board.status == RUNNING: analyzePawnStructure (board) s = evalMaterial (board) + \ evalPawnStructure (board) + \ evalBadBishops (board) + \ evalDevelopment (board) + \ evalCastling (board) + \ evalRookBonus (board) + \ evalKingTropism (board) elif board.status == DRAW: s = 0 elif board.status == WHITEWON: s = 9999 else: s = -9999 return (color == WHITE and [s] or [-s])[0] def evalMaterial (board): materialValue = [0, 0] numPawns = [0, 0] for row in board.data: for piece in row: if not piece: continue materialValue[piece.color] += pieceValues[piece.sign] if piece.sign == PAWN: numPawns[piece.color] += 1 # If both sides are equal, no need to compute anything! if materialValue[BLACK] == materialValue[WHITE]: return 0 matTotal = materialValue[BLACK] + materialValue[WHITE] # Who is leading the game, material-wise? if materialValue[BLACK] > materialValue[WHITE]: # Black leading matDiff = materialValue[BLACK] - materialValue[WHITE] val = min( 2400, matDiff ) + \ ( matDiff * ( 12000 - matTotal ) * numPawns[BLACK] ) \ / ( 6400 * ( numPawns[BLACK] + 1 ) ) return -val else: # White leading matDiff = materialValue[WHITE] - materialValue[BLACK] val = min( 2400, matDiff ) + \ ( matDiff * ( 12000 - matTotal ) * numPawns[WHITE] ) \ / ( 6400 * ( numPawns[WHITE] + 1 ) ) return val def evalKingTropism (board): """ All other things being equal, having your Knights, Queens and Rooks close to the opponent's king is a good thing """ score = 0 try: wking, bking = board.kings wky, wkx = wking.cords bky, bkx = bking.cords except: return 0 for py, row in enumerate(board.data): for px, piece in enumerate(row): if piece and piece.color == WHITE: if piece.sign == KNIGHT: score += lookUpTropism(px,py,bkx,bky,KNIGHT) elif piece.sign == ROOK: score += lookUpTropism(px,py,bkx,bky,ROOK) elif piece.sign == QUEEN: score += lookUpTropism(px,py,bkx,bky,QUEEN) elif piece and piece.color == BLACK: if piece.sign == KNIGHT: score -= lookUpTropism(px,py,wkx,wky,KNIGHT) elif piece.sign == ROOK: score -= lookUpTropism(px,py,wkx,wky,ROOK) elif piece.sign == QUEEN: score -= lookUpTropism(px,py,wkx,wky,QUEEN) return score def evalRookBonus (board): """ Rooks are more effective on the seventh rank and on open files """ score = 0 for y, row in enumerate(board.data): for x, piece in enumerate(row): if not piece or not piece.sign == ROOK: continue if pieceCount <= 6: # We should try to keep the rooks at the back lines if y in (0,7): score += piece.color == WHITE and 12 or -12 # Is this rook on a semi- or completely open file? noblack = blackPawnFileBins[x] == 0 and 1 or 0 nowhite = whitePawnFileBins[x] == 0 and 1 or 0 if piece.color == WHITE: if noblack: score += (noblack+nowhite)*6 else: score += nowhite*8 else: if nowhite: score -= (noblack+nowhite)*6 else: score -= nowhite*8 return score def evalDevelopment (board): """ Mostly useful in the opening, this term encourages the machine to move its bishops and knights into play, to control the center with its queen's and king's pawns """ score = 0 # Test endgame if pieceCount <= 8: wking, bking = board.kings score += endking[wking.y*8+wking.x] score -= endking[bking.y*8+bking.x] return score for y, row in enumerate(board.data): for x, piece in enumerate(row): if not piece: continue #s = pos[piece.sign][piece.color][y*8+x] if piece.color == WHITE: if piece.sign == PAWN: score += whitepawn[x+y*8] elif piece.sign == KNIGHT: score += whiteknight[x+y*8] elif piece.sign == BISHOP: score += whitebishop[x+y*8] elif piece.sign == ROOK: score += whiterook[x+y*8] elif piece.sign == QUEEN: score += whitequeen[x+y*8] elif piece.sign == KING: score += whiteking[x+y*8] else: if piece.sign == PAWN: score -= blackpawn[x+y*8] elif piece.sign == KNIGHT: score -= blackknight[x+y*8] elif piece.sign == BISHOP: score -= blackbishop[x+y*8] elif piece.sign == ROOK: score -= blackrook[x+y*8] elif piece.sign == QUEEN: score -= blackqueen[x+y*8] elif piece.sign == KING: score -= blackking[x+y*8] return score def evalCastling (board): """ Used to encourage castling """ if pieceCount <= 6: return 0 score = 0 for color, mod in ((WHITE,1),(BLACK,-1)): mainrow = board.data[int(3.5-3.5*mod)] # It is good to have a pawn in the king column for x, p in enumerate(mainrow): if p and p.sign == KING and p.color == color: bin = color == WHITE and whitePawnFileBins or blackPawnFileBins if not bin[x]: score -= 10*mod break kside = color == BLACK and B_OO or W_OO qside = color == BLACK and B_OOO or W_OOO # Being castled deserves a bonus if board.hasCastled[color]: score += 15*mod continue # Biggest penalty if you can't castle at all if not board.castling & (qside|kside): score -= 60*mod # Penalty if you can only castle kingside elif not board.castling & qside: score -= 30*mod # Bigger penalty if you can only castle queenside elif not board.castling & kside: score -= 45*mod return score def evalBadBishops (board): """ Bishops may be limited in their movement if there are too many pawns on squares of their color """ score = 0 for y, row in enumerate(board.data): for x, piece in enumerate(row): if not piece or not piece.sign == BISHOP: continue mod = piece.color == WHITE and 1 or -1 # What is the bishop's square color? lightsq = x % 2 + y % 2 == 1 if lightsq: score -= pawnColorBins[0]*7 * mod else: score -= pawnColorBins[1]*7 * mod return score def evalPawnStructure (board) : """ Given the pawn formations, penalize or bonify the position according to the features it contains """ score = 0 for x in range (8): # First, look for doubled pawns # In chess, two or more pawns on the same file usually hinder each other, # so we assign a penalty if whitePawnFileBins[x] > 1: score -= 10 if blackPawnFileBins[x] > 1: score += 10 # Now, look for an isolated pawn, i.e., one which has no neighbor pawns # capable of protecting it from attack at some point in the future if x == 0 and whitePawnFileBins[x] > 0 and whitePawnFileBins[1] == 0: score -= 15 elif x == 7 and whitePawnFileBins[x] > 0 and whitePawnFileBins[6] == 0: score -= 15 elif whitePawnFileBins[x] > 0 and whitePawnFileBins[x-1] == 0 and \ whitePawnFileBins[x+1] == 0: score -= 15 if x == 0 and blackPawnFileBins[x] > 0 and blackPawnFileBins[1] == 0: score += 15 elif x == 7 and blackPawnFileBins[x] > 0 and blackPawnFileBins[6] == 0: score += 15 elif blackPawnFileBins[x] > 0 and blackPawnFileBins[x-1] == 0 and \ blackPawnFileBins[x+1] == 0: score += 15 # Penalize pawn rams, because they restrict movement score -= 8 * pawnRams return score whitePawnFileBins = [0]*8 pawnColorBins = [0]*2 pawnRams = 0 blackPawnFileBins = [0]*8 def analyzePawnStructure (board): """ Look at pawn positions to be able to detect features such as doubled, isolated or passed pawns """ global whitePawnFileBins, blackPawnFileBins, pawnColorBins, pawnRams whitePawnFileBins = [0]*8 blackPawnFileBins = [0]*8 pawnColorBins[0] = 0 pawnColorBins[1] = 0 # Whiterams-Blackrams pawnRams = 0 global pieceCount pieceCount = 0 data = board.data for y, row in enumerate(data[::-1]): for x, piece in enumerate(row): if not piece: continue if piece.sign == PAWN and y not in (0,7): if piece.color == WHITE: whitePawnFileBins[x] += 1 else: blackPawnFileBins[x] += 1 # Is this pawn on a white or a black square? if y % 2 == x % 2: pawnColorBins[ 0 ] += 1 else: pawnColorBins[ 1 ] += 1 # Look for a "pawn ram", i.e., a situation where a black pawn # is located in the square immediately ahead of this one. if piece.color == WHITE: ahead = data[y+1][x] else: ahead = data[y-1][x] if ahead and ahead.sign == PAWN and ahead.color == piece.color: if piece.color == WHITE: pawnRams += 1 else: pawnRams -= 1 elif piece: pieceCount += 1 pychess-0.12.2/lib/pychess/Utils/__init__.py0000755000175000017470000000103112641567764021225 0ustar tamasusers00000000000000from pychess.Utils.lutils.ldata import MATE_VALUE def prettyPrintScore(s, depth): """The score parameter is an eval value form White point of view""" if s is None: return "?" if s == 0: return "0.00/%s" % depth if s > 0: pp = "+" else: pp = "-" s = -s if depth: depth = "/" + depth else: depth = "" if abs(s) == MATE_VALUE: return "%s#%s" % (pp, MATE_VALUE) else: return "%s%0.2f%s" % (pp, s / 100.0, depth) pychess-0.12.2/lib/pychess/Utils/lutils/0000755000175000017470000000000012653231274020415 5ustar tamasusers00000000000000pychess-0.12.2/lib/pychess/Utils/lutils/bitboard.py0000755000175000017470000000553412641567764022604 0ustar tamasusers00000000000000from array import array #=============================================================================== # setBit returns a bitboard with the ith bit set #=============================================================================== def setBit (bitboard, i): return bitboard | bitPosArray[i] bitPosArray = [2**(63-i) for i in range(64)] #=============================================================================== # clearBit returns the bitboard with the ith bit unset #=============================================================================== def clearBit (bitboard, i): return bitboard & notBitPosArray[i] notBitPosArray = [~2**(63-i) for i in range(64)] #=============================================================================== # firstBit returns the bit closest to 0 (A4) that is set in the board #=============================================================================== def firstBit (bitboard): """ Returns the index of the first non-zero bit from left """ if (bitboard >> 48): return lzArray[bitboard >> 48] if (bitboard >> 32): return lzArray[bitboard >> 32] + 16 if (bitboard >> 16): return lzArray[bitboard >> 16] + 32 return lzArray[bitboard] + 48 # The bitCount array returns the leading non-zero bit in the 16 bit # input argument. lzArray = array('B',[0]*65536) s = n = 1 for i in range(16): for j in range (s, s + n): lzArray[j] = 16 - 1 - i s += n n += n #=============================================================================== # lastBit returns the bit closest to 63 (H8) that is set in the board #=============================================================================== def lastBit (bitboard): return lsb [bitboard & -bitboard] lsb = {} for i in range(64): lsb[2**i] = 63-i #=============================================================================== # iterBits yields, or returns a list of, the positions of all set bits in a # bitboard. There is no guarantee of the order. #=============================================================================== def iterBits (bitboard): while bitboard: bit = bitboard & -bitboard yield lsb[bit] bitboard -= bit #=============================================================================== # toString returns a representation of the bitboard for debugging #=============================================================================== def toString (bitboard): s = [] last = -1 while bitboard: cord = firstBit (bitboard) bitboard = clearBit (bitboard, cord) for c in range(cord-last-1): s.append(" -") s.append(" #") last = cord while len(s) < 64: s.append(" -") s2 = "" for i in range(64,0,-8): a = s[i-8:i] s2 += "".join(a) + "\n" return s2 pychess-0.12.2/lib/pychess/Utils/lutils/lsort.py0000755000175000017470000000614712641567764022162 0ustar tamasusers00000000000000from __future__ import absolute_import from __future__ import print_function import sys from .attack import getAttacks, staticExchangeEvaluate from pychess.Utils.eval import pos as positionValues from pychess.Variants.atomic import kingExplode from .ldata import * def getCaptureValue (board, move): if board.variant in ASEAN_VARIANTS: mpV = ASEAN_PIECE_VALUES[board.arBoard[move>>6 & 63]] cpV = ASEAN_PIECE_VALUES[board.arBoard[move & 63]] else: mpV = PIECE_VALUES[board.arBoard[move>>6 & 63]] cpV = PIECE_VALUES[board.arBoard[move & 63]] if mpV < cpV: return cpV - mpV else: temp = staticExchangeEvaluate (board, move) return temp < 0 and -sys.maxsize or temp def sortCaptures (board, moves): f = lambda move: getCaptureValue (board, move) moves.sort(key=f, reverse=True) return moves def getMoveValue (board, table, depth, move): """ Sort criteria is as follows. 1. The move from the hash table 2. Captures as above. 3. Killers. 4. History. 5. Moves to the centre. """ # As we only return directly from transposition table if hashf == hashfEXACT # There could be a non hashfEXACT very promising move for us to test if table.isHashMove(depth, move): return sys.maxsize fcord = (move >> 6) & 63 tcord = move & 63 flag = move >> 12 arBoard = board.arBoard fpiece = fcord if flag == DROP else arBoard[fcord] tpiece = arBoard[tcord] if tpiece != EMPTY: if board.variant == ATOMICCHESS: if kingExplode(board, move, board.color): return MATE_VALUE # We add some extra to ensure also bad captures will be searched early if board.variant in ASEAN_VARIANTS: return ASEAN_PIECE_VALUES[tpiece] - PIECE_VALUES[fpiece] + 1000 else: return PIECE_VALUES[tpiece] - PIECE_VALUES[fpiece] + 1000 if flag in PROMOTIONS: if board.variant in ASEAN_VARIANTS: return ASEAN_PIECE_VALUES[flag-3] - PAWN_VALUE + 1000 else: return PIECE_VALUES[flag-3] - PAWN_VALUE + 1000 if flag == DROP: return PIECE_VALUES[tpiece] + 1000 killervalue = table.isKiller(depth, move) if killervalue: return 1000 + killervalue # King tropism - a move that brings us nearer to the enemy king, is probably # a good move #opking = board.kings[1-board.color] #score = distance[fpiece][fcord][opking] - distance[fpiece][tcord][opking] if fpiece not in positionValues: # That is, fpiece == EMPTY print(fcord, tcord) print(board) if board.variant in ASEAN_VARIANTS: score = 0 else: score = positionValues[fpiece][board.color][tcord] - \ positionValues[fpiece][board.color][fcord] # History heuristic score += table.getButterfly(move) return score def sortMoves (board, table, ply, hashmove, moves): f = lambda move: getMoveValue (board, table, ply, hashmove, move) moves.sort(key=f, reverse=True) return moves pychess-0.12.2/lib/pychess/Utils/lutils/PolyglotHash.py0000644000175000017470000004216512641567764023431 0ustar tamasusers00000000000000# -*- coding: UTF-8 -*- # Polyglot opening books are indexed by 64-bit Zobrist hash keys. # The standard specifies the following Zobrist seed values. # The numbers in this file come from PolyGlot by Fabien Letouzey. # PolyGlot is available under the GNU GPL from http://wbec-ridderkerk.nl pieceHashes = [ [ [ 0x0000000000000000 ] * 64, [ 0x5355f900c2a82dc7, 0x07fb9f855a997142, 0x5093417aa8a7ed5e, 0x7bcbc38da25a7f3c, 0x19fc8a768cf4b6d4, 0x637a7780decfc0d9, 0x8249a47aee0e41f7, 0x79ad695501e7d1e8, 0x14acbaf4777d5776, 0xf145b6beccdea195, 0xdabf2ac8201752fc, 0x24c3c94df9c8d3f6, 0xbb6e2924f03912ea, 0x0ce26c0b95c980d9, 0xa49cd132bfbf7cc4, 0xe99d662af4243939, 0x27e6ad7891165c3f, 0x8535f040b9744ff1, 0x54b3f4fa5f40d873, 0x72b12c32127fed2b, 0xee954d3c7b411f47, 0x9a85ac909a24eaa1, 0x70ac4cd9f04f21f5, 0xf9b89d3e99a075c2, 0x87b3e2b2b5c907b1, 0xa366e5b8c54f48b8, 0xae4a9346cc3f7cf2, 0x1920c04d47267bbd, 0x87bf02c6b49e2ae9, 0x092237ac237f3859, 0xff07f64ef8ed14d0, 0x8de8dca9f03cc54e, 0x9c1633264db49c89, 0xb3f22c3d0b0b38ed, 0x390e5fb44d01144b, 0x5bfea5b4712768e9, 0x1e1032911fa78984, 0x9a74acb964e78cb3, 0x4f80f7a035dafb04, 0x6304d09a0b3738c4, 0x2171e64683023a08, 0x5b9b63eb9ceff80c, 0x506aacf489889342, 0x1881afc9a3a701d6, 0x6503080440750644, 0xdfd395339cdbf4a7, 0xef927dbcf00c20f2, 0x7b32f7d1e03680ec, 0xb9fd7620e7316243, 0x05a7e8a57db91b77, 0xb5889c6e15630a75, 0x4a750a09ce9573f7, 0xcf464cec899a2f8a, 0xf538639ce705b824, 0x3c79a0ff5580ef7f, 0xede6c87f8477609d, 0x799e81f05bc93f31, 0x86536b8cf3428a8c, 0x97d7374c60087b73, 0xa246637cff328532, 0x043fcae60cc0eba0, 0x920e449535dd359e, 0x70eb093b15b290cc, 0x73a1921916591cbd, ], [ 0xc547f57e42a7444e, 0x78e37644e7cad29e, 0xfe9a44e9362f05fa, 0x08bd35cc38336615, 0x9315e5eb3a129ace, 0x94061b871e04df75, 0xdf1d9f9d784ba010, 0x3bba57b68871b59d, 0xd2b7adeeded1f73f, 0xf7a255d83bc373f8, 0xd7f4f2448c0ceb81, 0xd95be88cd210ffa7, 0x336f52f8ff4728e7, 0xa74049dac312ac71, 0xa2f61bb6e437fdb5, 0x4f2a5cb07f6a35b3, 0x87d380bda5bf7859, 0x16b9f7e06c453a21, 0x7ba2484c8a0fd54e, 0xf3a678cad9a2e38c, 0x39b0bf7dde437ba2, 0xfcaf55c1bf8a4424, 0x18fcf680573fa594, 0x4c0563b89f495ac3, 0x40e087931a00930d, 0x8cffa9412eb642c1, 0x68ca39053261169f, 0x7a1ee967d27579e2, 0x9d1d60e5076f5b6f, 0x3810e399b6f65ba2, 0x32095b6d4ab5f9b1, 0x35cab62109dd038a, 0xa90b24499fcfafb1, 0x77a225a07cc2c6bd, 0x513e5e634c70e331, 0x4361c0ca3f692f12, 0xd941aca44b20a45b, 0x528f7c8602c5807b, 0x52ab92beb9613989, 0x9d1dfa2efc557f73, 0x722ff175f572c348, 0x1d1260a51107fe97, 0x7a249a57ec0c9ba2, 0x04208fe9e8f7f2d6, 0x5a110c6058b920a0, 0x0cd9a497658a5698, 0x56fd23c8f9715a4c, 0x284c847b9d887aae, 0x04feabfbbdb619cb, 0x742e1e651c60ba83, 0x9a9632e65904ad3c, 0x881b82a13b51b9e2, 0x506e6744cd974924, 0xb0183db56ffc6a79, 0x0ed9b915c66ed37e, 0x5e11e86d5873d484, 0xf678647e3519ac6e, 0x1b85d488d0f20cc5, 0xdab9fe6525d89021, 0x0d151d86adb73615, 0xa865a54edcc0f019, 0x93c42566aef98ffb, 0x99e7afeabe000731, 0x48cbff086ddf285a, ], [ 0x23b70edb1955c4bf, 0xc330de426430f69d, 0x4715ed43e8a45c0a, 0xa8d7e4dab780a08d, 0x0572b974f03ce0bb, 0xb57d2e985e1419c7, 0xe8d9ecbe2cf3d73f, 0x2fe4b17170e59750, 0x11317ba87905e790, 0x7fbf21ec8a1f45ec, 0x1725cabfcb045b00, 0x964e915cd5e2b207, 0x3e2b8bcbf016d66d, 0xbe7444e39328a0ac, 0xf85b2b4fbcde44b7, 0x49353fea39ba63b1, 0x1dd01aafcd53486a, 0x1fca8a92fd719f85, 0xfc7c95d827357afa, 0x18a6a990c8b35ebd, 0xcccb7005c6b9c28d, 0x3bdbb92c43b17f26, 0xaa70b5b4f89695a2, 0xe94c39a54a98307f, 0xb7a0b174cff6f36e, 0xd4dba84729af48ad, 0x2e18bc1ad9704a68, 0x2de0966daf2f8b1c, 0xb9c11d5b1e43a07e, 0x64972d68dee33360, 0x94628d38d0c20584, 0xdbc0d2b6ab90a559, 0xd2733c4335c6a72f, 0x7e75d99d94a70f4d, 0x6ced1983376fa72b, 0x97fcaacbf030bc24, 0x7b77497b32503b12, 0x8547eddfb81ccb94, 0x79999cdff70902cb, 0xcffe1939438e9b24, 0x829626e3892d95d7, 0x92fae24291f2b3f1, 0x63e22c147b9c3403, 0xc678b6d860284a1c, 0x5873888850659ae7, 0x0981dcd296a8736d, 0x9f65789a6509a440, 0x9ff38fed72e9052f, 0xe479ee5b9930578c, 0xe7f28ecd2d49eecd, 0x56c074a581ea17fe, 0x5544f7d774b14aef, 0x7b3f0195fc6f290f, 0x12153635b2c0cf57, 0x7f5126dbba5e0ca7, 0x7a76956c3eafb413, 0x3d5774a11d31ab39, 0x8a1b083821f40cb4, 0x7b4a38e32537df62, 0x950113646d1d6e03, 0x4da8979a0041e8a9, 0x3bc36e078f7515d7, 0x5d0a12f27ad310d1, 0x7f9d1a2e1ebe1327, ], [ 0xa09e8c8c35ab96de, 0xfa7e393983325753, 0xd6b6d0ecc617c699, 0xdfea21ea9e7557e3, 0xb67c1fa481680af8, 0xca1e3785a9e724e5, 0x1cfc8bed0d681639, 0xd18d8549d140caea, 0x4ed0fe7e9dc91335, 0xe4dbf0634473f5d2, 0x1761f93a44d5aefe, 0x53898e4c3910da55, 0x734de8181f6ec39a, 0x2680b122baa28d97, 0x298af231c85bafab, 0x7983eed3740847d5, 0x66c1a2a1a60cd889, 0x9e17e49642a3e4c1, 0xedb454e7badc0805, 0x50b704cab602c329, 0x4cc317fb9cddd023, 0x66b4835d9eafea22, 0x219b97e26ffc81bd, 0x261e4e4c0a333a9d, 0x1fe2cca76517db90, 0xd7504dfa8816edbb, 0xb9571fa04dc089c8, 0x1ddc0325259b27de, 0xcf3f4688801eb9aa, 0xf4f5d05c10cab243, 0x38b6525c21a42b0e, 0x36f60e2ba4fa6800, 0xeb3593803173e0ce, 0x9c4cd6257c5a3603, 0xaf0c317d32adaa8a, 0x258e5a80c7204c4b, 0x8b889d624d44885d, 0xf4d14597e660f855, 0xd4347f66ec8941c3, 0xe699ed85b0dfb40d, 0x2472f6207c2d0484, 0xc2a1e7b5b459aeb5, 0xab4f6451cc1d45ec, 0x63767572ae3d6174, 0xa59e0bd101731a28, 0x116d0016cb948f09, 0x2cf9c8ca052f6e9f, 0x0b090a7560a968e3, 0xabeeddb2dde06ff1, 0x58efc10b06a2068d, 0xc6e57a78fbd986e0, 0x2eab8ca63ce802d7, 0x14a195640116f336, 0x7c0828dd624ec390, 0xd74bbe77e6116ac7, 0x804456af10f5fb53, 0xebe9ea2adf4321c7, 0x03219a39ee587a30, 0x49787fef17af9924, 0xa1e9300cd8520548, 0x5b45e522e4b1b4ef, 0xb49c3b3995091a36, 0xd4490ad526f14431, 0x12a8f216af9418c2, ], [ 0x6ffe73e81b637fb3, 0xddf957bc36d8b9ca, 0x64d0e29eea8838b3, 0x08dd9bdfd96b9f63, 0x087e79e5a57d1d13, 0xe328e230e3e2b3fb, 0x1c2559e30f0946be, 0x720bf5f26f4d2eaa, 0xb0774d261cc609db, 0x443f64ec5a371195, 0x4112cf68649a260e, 0xd813f2fab7f5c5ca, 0x660d3257380841ee, 0x59ac2c7873f910a3, 0xe846963877671a17, 0x93b633abfa3469f8, 0xc0c0f5a60ef4cdcf, 0xcaf21ecd4377b28c, 0x57277707199b8175, 0x506c11b9d90e8b1d, 0xd83cc2687a19255f, 0x4a29c6465a314cd1, 0xed2df21216235097, 0xb5635c95ff7296e2, 0x22af003ab672e811, 0x52e762596bf68235, 0x9aeba33ac6ecc6b0, 0x944f6de09134dfb6, 0x6c47bec883a7de39, 0x6ad047c430a12104, 0xa5b1cfdba0ab4067, 0x7c45d833aff07862, 0x5092ef950a16da0b, 0x9338e69c052b8e7b, 0x455a4b4cfe30e3f5, 0x6b02e63195ad0cf8, 0x6b17b224bad6bf27, 0xd1e0ccd25bb9c169, 0xde0c89a556b9ae70, 0x50065e535a213cf6, 0x9c1169fa2777b874, 0x78edefd694af1eed, 0x6dc93d9526a50e68, 0xee97f453f06791ed, 0x32ab0edb696703d3, 0x3a6853c7e70757a7, 0x31865ced6120f37d, 0x67fef95d92607890, 0x1f2b1d1f15f6dc9c, 0xb69e38a8965c6b65, 0xaa9119ff184cccf4, 0xf43c732873f24c13, 0xfb4a3d794a9a80d2, 0x3550c2321fd6109c, 0x371f77e76bb8417e, 0x6bfa9aae5ec05779, 0xcd04f3ff001a4778, 0xe3273522064480ca, 0x9f91508bffcfc14a, 0x049a7f41061a9e60, 0xfcb6be43a9f2fe9b, 0x08de8a1c7797da9b, 0x8f9887e6078735a1, 0xb5b4071dbfc73a66, ], [ 0x55b6344cf97aafae, 0xb862225b055b6960, 0xcac09afbddd2cdb4, 0xdaf8e9829fe96b5f, 0xb5fdfc5d3132c498, 0x310cb380db6f7503, 0xe87fbb46217a360e, 0x2102ae466ebb1148, 0xf8549e1a3aa5e00d, 0x07a69afdcc42261a, 0xc4c118bfe78feaae, 0xf9f4892ed96bd438, 0x1af3dbe25d8f45da, 0xf5b4b0b0d2deeeb4, 0x962aceefa82e1c84, 0x046e3ecaaf453ce9, 0xf05d129681949a4c, 0x964781ce734b3c84, 0x9c2ed44081ce5fbd, 0x522e23f3925e319e, 0x177e00f9fc32f791, 0x2bc60a63a6f3b3f2, 0x222bbfae61725606, 0x486289ddcc3d6780, 0x7dc7785b8efdfc80, 0x8af38731c02ba980, 0x1fab64ea29a2ddf7, 0xe4d9429322cd065a, 0x9da058c67844f20c, 0x24c0e332b70019b0, 0x233003b5a6cfe6ad, 0xd586bd01c5c217f6, 0x5e5637885f29bc2b, 0x7eba726d8c94094b, 0x0a56a5f0bfe39272, 0xd79476a84ee20d06, 0x9e4c1269baa4bf37, 0x17efee45b0dee640, 0x1d95b0a5fcf90bc6, 0x93cbe0b699c2585d, 0x65fa4f227a2b6d79, 0xd5f9e858292504d5, 0xc2b5a03f71471a6f, 0x59300222b4561e00, 0xce2f8642ca0712dc, 0x7ca9723fbb2e8988, 0x2785338347f2ba08, 0xc61bb3a141e50e8c, 0x150f361dab9dec26, 0x9f6a419d382595f4, 0x64a53dc924fe7ac9, 0x142de49fff7a7c3d, 0x0c335248857fa9e7, 0x0a9c32d5eae45305, 0xe6c42178c4bbb92e, 0x71f1ce2490d20b07, 0xf1bcc3d275afe51a, 0xe728e8c83c334074, 0x96fbf83a12884624, 0x81a1549fd6573da5, 0x5fa7867caf35e149, 0x56986e2ef3ed091b, 0x917f1dd5f8886c61, 0xd20d8c88c8ffe65f, ], ], [ [ 0x0000000000000000 ] * 64, [ 0x9d39247e33776d41, 0x2af7398005aaa5c7, 0x44db015024623547, 0x9c15f73e62a76ae2, 0x75834465489c0c89, 0x3290ac3a203001bf, 0x0fbbad1f61042279, 0xe83a908ff2fb60ca, 0x0d7e765d58755c10, 0x1a083822ceafe02d, 0x9605d5f0e25ec3b0, 0xd021ff5cd13a2ed5, 0x40bdf15d4a672e32, 0x011355146fd56395, 0x5db4832046f3d9e5, 0x239f8b2d7ff719cc, 0x05d1a1ae85b49aa1, 0x679f848f6e8fc971, 0x7449bbff801fed0b, 0x7d11cdb1c3b7adf0, 0x82c7709e781eb7cc, 0xf3218f1c9510786c, 0x331478f3af51bbe6, 0x4bb38de5e7219443, 0xaa649c6ebcfd50fc, 0x8dbd98a352afd40b, 0x87d2074b81d79217, 0x19f3c751d3e92ae1, 0xb4ab30f062b19abf, 0x7b0500ac42047ac4, 0xc9452ca81a09d85d, 0x24aa6c514da27500, 0x4c9f34427501b447, 0x14a68fd73c910841, 0xa71b9b83461cbd93, 0x03488b95b0f1850f, 0x637b2b34ff93c040, 0x09d1bc9a3dd90a94, 0x3575668334a1dd3b, 0x735e2b97a4c45a23, 0x18727070f1bd400b, 0x1fcbacd259bf02e7, 0xd310a7c2ce9b6555, 0xbf983fe0fe5d8244, 0x9f74d14f7454a824, 0x51ebdc4ab9ba3035, 0x5c82c505db9ab0fa, 0xfcf7fe8a3430b241, 0x3253a729b9ba3dde, 0x8c74c368081b3075, 0xb9bc6c87167c33e7, 0x7ef48f2b83024e20, 0x11d505d4c351bd7f, 0x6568fca92c76a243, 0x4de0b0f40f32a7b8, 0x96d693460cc37e5d, 0x42e240cb63689f2f, 0x6d2bdcdae2919661, 0x42880b0236e4d951, 0x5f0f4a5898171bb6, 0x39f890f579f92f88, 0x93c5b5f47356388b, 0x63dc359d8d231b78, 0xec16ca8aea98ad76, ], [ 0x56436c9fe1a1aa8d, 0xefac4b70633b8f81, 0xbb215798d45df7af, 0x45f20042f24f1768, 0x930f80f4e8eb7462, 0xff6712ffcfd75ea1, 0xae623fd67468aa70, 0xdd2c5bc84bc8d8fc, 0x7eed120d54cf2dd9, 0x22fe545401165f1c, 0xc91800e98fb99929, 0x808bd68e6ac10365, 0xdec468145b7605f6, 0x1bede3a3aef53302, 0x43539603d6c55602, 0xaa969b5c691ccb7a, 0xa87832d392efee56, 0x65942c7b3c7e11ae, 0xded2d633cad004f6, 0x21f08570f420e565, 0xb415938d7da94e3c, 0x91b859e59ecb6350, 0x10cff333e0ed804a, 0x28aed140be0bb7dd, 0xc5cc1d89724fa456, 0x5648f680f11a2741, 0x2d255069f0b7dab3, 0x9bc5a38ef729abd4, 0xef2f054308f6a2bc, 0xaf2042f5cc5c2858, 0x480412bab7f5be2a, 0xaef3af4a563dfe43, 0x19afe59ae451497f, 0x52593803dff1e840, 0xf4f076e65f2ce6f0, 0x11379625747d5af3, 0xbce5d2248682c115, 0x9da4243de836994f, 0x066f70b33fe09017, 0x4dc4de189b671a1c, 0x51039ab7712457c3, 0xc07a3f80c31fb4b4, 0xb46ee9c5e64a6e7c, 0xb3819a42abe61c87, 0x21a007933a522a20, 0x2df16f761598aa4f, 0x763c4a1371b368fd, 0xf793c46702e086a0, 0xd7288e012aeb8d31, 0xde336a2a4bc1c44b, 0x0bf692b38d079f23, 0x2c604a7a177326b3, 0x4850e73e03eb6064, 0xcfc447f1e53c8e1b, 0xb05ca3f564268d99, 0x9ae182c8bc9474e8, 0xa4fc4bd4fc5558ca, 0xe755178d58fc4e76, 0x69b97db1a4c03dfe, 0xf9b5b7c4acc67c96, 0xfc6a82d64b8655fb, 0x9c684cb6c4d24417, 0x8ec97d2917456ed0, 0x6703df9d2924e97e, ], [ 0x7f9b6af1ebf78baf, 0x58627e1a149bba21, 0x2cd16e2abd791e33, 0xd363eff5f0977996, 0x0ce2a38c344a6eed, 0x1a804aadb9cfa741, 0x907f30421d78c5de, 0x501f65edb3034d07, 0x37624ae5a48fa6e9, 0x957baf61700cff4e, 0x3a6c27934e31188a, 0xd49503536abca345, 0x088e049589c432e0, 0xf943aee7febf21b8, 0x6c3b8e3e336139d3, 0x364f6ffa464ee52e, 0xd60f6dcedc314222, 0x56963b0dca418fc0, 0x16f50edf91e513af, 0xef1955914b609f93, 0x565601c0364e3228, 0xecb53939887e8175, 0xbac7a9a18531294b, 0xb344c470397bba52, 0x65d34954daf3cebd, 0xb4b81b3fa97511e2, 0xb422061193d6f6a7, 0x071582401c38434d, 0x7a13f18bbedc4ff5, 0xbc4097b116c524d2, 0x59b97885e2f2ea28, 0x99170a5dc3115544, 0x6f423357e7c6a9f9, 0x325928ee6e6f8794, 0xd0e4366228b03343, 0x565c31f7de89ea27, 0x30f5611484119414, 0xd873db391292ed4f, 0x7bd94e1d8e17debc, 0xc7d9f16864a76e94, 0x947ae053ee56e63c, 0xc8c93882f9475f5f, 0x3a9bf55ba91f81ca, 0xd9a11fbb3d9808e4, 0x0fd22063edc29fca, 0xb3f256d8aca0b0b9, 0xb03031a8b4516e84, 0x35dd37d5871448af, 0xe9f6082b05542e4e, 0xebfafa33d7254b59, 0x9255abb50d532280, 0xb9ab4ce57f2d34f3, 0x693501d628297551, 0xc62c58f97dd949bf, 0xcd454f8f19c5126a, 0xbbe83f4ecc2bdecb, 0xdc842b7e2819e230, 0xba89142e007503b8, 0xa3bc941d0a5061cb, 0xe9f6760e32cd8021, 0x09c7e552bc76492f, 0x852f54934da55cc9, 0x8107fccf064fcf56, 0x098954d51fff6580, ], [ 0xda3a361b1c5157b1, 0xdcdd7d20903d0c25, 0x36833336d068f707, 0xce68341f79893389, 0xab9090168dd05f34, 0x43954b3252dc25e5, 0xb438c2b67f98e5e9, 0x10dcd78e3851a492, 0xdbc27ab5447822bf, 0x9b3cdb65f82ca382, 0xb67b7896167b4c84, 0xbfced1b0048eac50, 0xa9119b60369ffebd, 0x1fff7ac80904bf45, 0xac12fb171817eee7, 0xaf08da9177dda93d, 0x1b0cab936e65c744, 0xb559eb1d04e5e932, 0xc37b45b3f8d6f2ba, 0xc3a9dc228caac9e9, 0xf3b8b6675a6507ff, 0x9fc477de4ed681da, 0x67378d8eccef96cb, 0x6dd856d94d259236, 0xa319ce15b0b4db31, 0x073973751f12dd5e, 0x8a8e849eb32781a5, 0xe1925c71285279f5, 0x74c04bf1790c0efe, 0x4dda48153c94938a, 0x9d266d6a1cc0542c, 0x7440fb816508c4fe, 0x13328503df48229f, 0xd6bf7baee43cac40, 0x4838d65f6ef6748f, 0x1e152328f3318dea, 0x8f8419a348f296bf, 0x72c8834a5957b511, 0xd7a023a73260b45c, 0x94ebc8abcfb56dae, 0x9fc10d0f989993e0, 0xde68a2355b93cae6, 0xa44cfe79ae538bbe, 0x9d1d84fcce371425, 0x51d2b1ab2ddfb636, 0x2fd7e4b9e72cd38c, 0x65ca5b96b7552210, 0xdd69a0d8ab3b546d, 0x604d51b25fbf70e2, 0x73aa8a564fb7ac9e, 0x1a8c1e992b941148, 0xaac40a2703d9bea0, 0x764dbeae7fa4f3a6, 0x1e99b96e70a9be8b, 0x2c5e9deb57ef4743, 0x3a938fee32d29981, 0x26e6db8ffdf5adfe, 0x469356c504ec9f9d, 0xc8763c5b08d1908c, 0x3f6c6af859d80055, 0x7f7cc39420a3a545, 0x9bfb227ebdf4c5ce, 0x89039d79d6fc5c5c, 0x8fe88b57305e2ab6, ], [ 0x001f837cc7350524, 0x1877b51e57a764d5, 0xa2853b80f17f58ee, 0x993e1de72d36d310, 0xb3598080ce64a656, 0x252f59cf0d9f04bb, 0xd23c8e176d113600, 0x1bda0492e7e4586e, 0x21e0bd5026c619bf, 0x3b097adaf088f94e, 0x8d14dedb30be846e, 0xf95cffa23af5f6f4, 0x3871700761b3f743, 0xca672b91e9e4fa16, 0x64c8e531bff53b55, 0x241260ed4ad1e87d, 0x106c09b972d2e822, 0x7fba195410e5ca30, 0x7884d9bc6cb569d8, 0x0647dfedcd894a29, 0x63573ff03e224774, 0x4fc8e9560f91b123, 0x1db956e450275779, 0xb8d91274b9e9d4fb, 0xa2ebee47e2fbfce1, 0xd9f1f30ccd97fb09, 0xefed53d75fd64e6b, 0x2e6d02c36017f67f, 0xa9aa4d20db084e9b, 0xb64be8d8b25396c1, 0x70cb6af7c2d5bcf0, 0x98f076a4f7a2322e, 0xbf84470805e69b5f, 0x94c3251f06f90cf3, 0x3e003e616a6591e9, 0xb925a6cd0421aff3, 0x61bdd1307c66e300, 0xbf8d5108e27e0d48, 0x240ab57a8b888b20, 0xfc87614baf287e07, 0xef02cdd06ffdb432, 0xa1082c0466df6c0a, 0x8215e577001332c8, 0xd39bb9c3a48db6cf, 0x2738259634305c14, 0x61cf4f94c97df93d, 0x1b6baca2ae4e125b, 0x758f450c88572e0b, 0x959f587d507a8359, 0xb063e962e045f54d, 0x60e8ed72c0dff5d1, 0x7b64978555326f9f, 0xfd080d236da814ba, 0x8c90fd9b083f4558, 0x106f72fe81e2c590, 0x7976033a39f7d952, 0xa4ec0132764ca04b, 0x733ea705fae4fa77, 0xb4d8f77bc3e56167, 0x9e21f4f903b33fd9, 0x9d765e419fb69f6d, 0xd30c088ba61ea5ef, 0x5d94337fbfaf7f5b, 0x1a4e4822eb4d7a59, ], [ 0x230e343dfba08d33, 0x43ed7f5a0fae657d, 0x3a88a0fbbcb05c63, 0x21874b8b4d2dbc4f, 0x1bdea12e35f6a8c9, 0x53c065c6c8e63528, 0xe34a1d250e7a8d6b, 0xd6b04d3b7651dd7e, 0x5e90277e7cb39e2d, 0x2c046f22062dc67d, 0xb10bb459132d0a26, 0x3fa9ddfb67e2f199, 0x0e09b88e1914f7af, 0x10e8b35af3eeab37, 0x9eedeca8e272b933, 0xd4c718bc4ae8ae5f, 0x81536d601170fc20, 0x91b534f885818a06, 0xec8177f83f900978, 0x190e714fada5156e, 0xb592bf39b0364963, 0x89c350c893ae7dc1, 0xac042e70f8b383f2, 0xb49b52e587a1ee60, 0xfb152fe3ff26da89, 0x3e666e6f69ae2c15, 0x3b544ebe544c19f9, 0xe805a1e290cf2456, 0x24b33c9d7ed25117, 0xe74733427b72f0c1, 0x0a804d18b7097475, 0x57e3306d881edb4f, 0x4ae7d6a36eb5dbcb, 0x2d8d5432157064c8, 0xd1e649de1e7f268b, 0x8a328a1cedfe552c, 0x07a3aec79624c7da, 0x84547ddc3e203c94, 0x990a98fd5071d263, 0x1a4ff12616eefc89, 0xf6f7fd1431714200, 0x30c05b1ba332f41c, 0x8d2636b81555a786, 0x46c9feb55d120902, 0xccec0a73b49c9921, 0x4e9d2827355fc492, 0x19ebb029435dcb0f, 0x4659d2b743848a2c, 0x963ef2c96b33be31, 0x74f85198b05a2e7d, 0x5a0f544dd2b1fb18, 0x03727073c2e134b1, 0xc7f6aa2de59aea61, 0x352787baa0d7c22f, 0x9853eab63b5e0b35, 0xabbdcdd7ed5c0860, 0xcf05daf5ac8d77b0, 0x49cad48cebf4a71e, 0x7a4c10ec2158c4a6, 0xd9e92aa246bf719e, 0x13ae978d09fe5557, 0x730499af921549ff, 0x4e4b705b92903ba4, 0xff577222c14f0a3a, ], ], ] epHashes = [0x70cc73d90bc26e24, 0xe21a6b35df0c3ad7, 0x003a93d8b2806962, 0x1c99ded33cb890a1, 0xcf3145de0add4289, 0xd0e4427a5514fb72, 0x77c621cc9fb3a483, 0x67a34dac4356550b ] W_OOHash = 0x31d71dce64b2c310 W_OOOHash = 0xf165b587df898190 B_OOHash = 0xa57e6339dd2cf3a0 B_OOOHash = 0x1ef6e6dbb1961ec9 colorHash = 0xf8d626aaaf278509 pychess-0.12.2/lib/pychess/Utils/lutils/attack.py0000755000175000017470000002616212641567764022265 0ustar tamasusers00000000000000from __future__ import absolute_import from .bitboard import * from .ldata import * from pychess.Utils.const import * # # Caveat: Many functions in this module has very similar code. If you fix a # bug, or write a perforance enchace, please update all functions. Apologies # for the inconvenience # def isAttacked (board, cord, color, ischecked=False): """ To determine if cord is attacked by any pieces from color. """ _moveArray = moveArray pboards = board.boards[color] # Knights if pboards[KNIGHT] & _moveArray[KNIGHT][cord]: return True rayto = fromToRay[cord] blocker = board.blocker # Bishops & Queens if board.variant in ASEAN_VARIANTS: bishopMoves = _moveArray[ASEAN_BBISHOP if color == WHITE else ASEAN_WBISHOP] if pboards[BISHOP] & bishopMoves[cord]: return True if pboards[QUEEN] & _moveArray[ASEAN_QUEEN][cord]: return True else: bitboard = (pboards[BISHOP] | pboards[QUEEN]) & _moveArray[BISHOP][cord] if bitboard: others = ~bitboard & blocker # inlined iterBits() while bitboard: bit = bitboard & -bitboard ray = rayto[lsb[bit]] # If there is a path and no other piece stand in our way if ray and not ray & others: return True bitboard -= bit # Rooks & Queens if board.variant in ASEAN_VARIANTS: bitboard = pboards[ROOK] & _moveArray[ROOK][cord] else: bitboard = (pboards[ROOK] | pboards[QUEEN]) & _moveArray[ROOK][cord] if bitboard: others = ~bitboard & blocker # inlined iterBits() while bitboard: bit = bitboard & -bitboard ray = rayto[lsb[bit]] # If there is a path and no other piece stand in our way if ray and not ray & others: return True bitboard -= bit # Pawns # Would a pawn of the opposite color, standing at out kings cord, be able # to attack any of our pawns? ptype = color == WHITE and BPAWN or PAWN if pboards[PAWN] & _moveArray[ptype][cord]: return True # King if pboards[KING] & _moveArray[KING][cord]: if board.variant == ATOMICCHESS and ischecked: return False else: return True return False def getAttacks (board, cord, color): """ To create a bitboard of pieces of color, which attacks cord """ _moveArray = moveArray pieces = board.boards[color] # Knights bits = pieces[KNIGHT] & _moveArray[KNIGHT][cord] # Kings bits |= pieces[KING] & _moveArray[KING][cord] # Pawns bits |= pieces[PAWN] & _moveArray[color == WHITE and BPAWN or PAWN][cord] rayto = fromToRay[cord] blocker = board.blocker # Bishops and Queens if board.variant in ASEAN_VARIANTS: bishopMoves = _moveArray[ASEAN_BBISHOP if color == WHITE else ASEAN_WBISHOP] bits |= pieces[BISHOP] & bishopMoves[cord] bits |= pieces[QUEEN] & _moveArray[ASEAN_QUEEN][cord] else: bitboard = (pieces[BISHOP] | pieces[QUEEN]) & _moveArray[BISHOP][cord] # inlined iterBits() while bitboard: bit = bitboard & -bitboard c = lsb[bit] ray = rayto[c] if ray and not clearBit(ray & blocker, c): bits |= bitPosArray[c] bitboard -= bit # Rooks and queens if board.variant in ASEAN_VARIANTS: bitboard = pieces[ROOK] & _moveArray[ROOK][cord] else: bitboard = (pieces[ROOK] | pieces[QUEEN]) & _moveArray[ROOK][cord] # inlined iterBits() while bitboard: bit = bitboard & -bitboard c = lsb[bit] ray = rayto[c] if ray and not clearBit(ray & blocker, c): bits |= bitPosArray[c] bitboard -= bit return bits def pinnedOnKing (board, cord, color): # Determine if the piece on cord is pinned against its colors king. # In chess, a pin is a situation in which a piece is forced to stay put # because moving it would expose a more valuable piece behind it to # capture. # Caveat: pinnedOnKing should only be called by genCheckEvasions(). kingCord = board.kings[color] dir = directions[kingCord][cord] if dir == -1: return False opcolor = 1 - color blocker = board.blocker # Path from piece to king is blocked, so no pin if clearBit(fromToRay[kingCord][cord], cord) & blocker: return False b = (rays[kingCord][dir] ^ fromToRay[kingCord][cord]) & blocker if not b: return False cord1 = cord > kingCord and firstBit (b) or lastBit (b) # If diagonal if board.variant in ASEAN_VARIANTS: pass else: if dir <= 3 and bitPosArray[cord1] & \ (board.boards[opcolor][QUEEN] | board.boards[opcolor][BISHOP]): return True # Rank / file if board.variant in ASEAN_VARIANTS: if dir >= 4 and bitPosArray[cord1] & \ board.boards[opcolor][ROOK]: return True else: if dir >= 4 and bitPosArray[cord1] & \ (board.boards[opcolor][QUEEN] | board.boards[opcolor][ROOK]): return True return False def staticExchangeEvaluate (board, moveOrTcord, color=None): """ The GnuChess Static Exchange Evaluator (or SEE for short). First determine the target square. Create a bitboard of all squares attacking the target square for both sides. Using these 2 bitboards, we take turn making captures from smallest piece to largest piece. When a sliding piece makes a capture, we check behind it to see if another attacker piece has been exposed. If so, add this to the bitboard as well. When performing the "captures", we stop if one side is ahead and doesn't need to capture, a form of pseudo-minimaxing. """ # # Notice: If you use the tcord version, the color is the color attacked, and # the color to witch the score is relative. # swaplist = [0] if color == None: move = moveOrTcord flag = move >> 12 fcord = (move >> 6) & 63 tcord = move & 63 color = board.friends[BLACK] & bitPosArray[fcord] and BLACK or WHITE opcolor = 1-color boards = board.boards[color] opboards = board.boards[opcolor] ours = getAttacks (board, tcord, color) ours = clearBit (ours, fcord) theirs = getAttacks (board, tcord, opcolor) if xray[board.arBoard[fcord]]: ours, theirs = addXrayPiece (board, tcord, fcord, color, ours, theirs) from pychess.Variants import variants PROMOTIONS = variants[board.variant].PROMOTIONS if flag in PROMOTIONS: swaplist = [PIECE_VALUES[flag-3] - PAWN_VALUE] lastval = -PIECE_VALUES[flag-3] else: if flag == ENPASSANT: swaplist = [PAWN_VALUE] else: swaplist = [PIECE_VALUES[board.arBoard[tcord]]] lastval = -PIECE_VALUES[board.arBoard[fcord]] else: tcord = moveOrTcord opcolor = 1-color boards = board.boards[color] opboards = board.boards[opcolor] ours = getAttacks (board, tcord, color) theirs = getAttacks (board, tcord, opcolor) lastval = -PIECE_VALUES[board.arBoard[tcord]] while theirs: for piece in range(PAWN, KING+1): r = theirs & opboards[piece] if r: cord = firstBit(r) theirs = clearBit(theirs, cord) if xray[piece]: ours, theirs = addXrayPiece (board, tcord, cord, color, ours, theirs) swaplist.append(swaplist[-1] + lastval) lastval = PIECE_VALUES[piece] break if not ours: break for piece in range(PAWN, KING+1): r = ours & boards[piece] if r: cord = firstBit(r) ours = clearBit(ours, cord) if xray[piece]: ours, theirs = addXrayPiece (board, tcord, cord, color, ours, theirs) swaplist.append(swaplist[-1] + lastval) lastval = -PIECE_VALUES[piece] break # At this stage, we have the swap scores in a list. We just need to # mini-max the scores from the bottom up to the top of the list. for n in range(len(swaplist)-1, 0, -1): if n & 1: if swaplist[n] <= swaplist[n-1]: swaplist[n-1] = swaplist[n] else: if swaplist[n] >= swaplist[n-1]: swaplist[n-1] = swaplist[n] return swaplist[0] xray = (False, True, False, True, True, True, False) def addXrayPiece (board, tcord, fcord, color, ours, theirs): """ This is used by swapOff. The purpose of this routine is to find a piece which attack through another piece (e.g. two rooks, Q+B, B+P, etc.) Color is the side attacking the square where the swapping is to be done. """ dir = directions[tcord][fcord] a = rays[fcord][dir] & board.blocker if not a: return ours, theirs if tcord < fcord: ncord = firstBit(a) else: ncord = lastBit(a) piece = board.arBoard[ncord] if board.variant in ASEAN_VARIANTS: cond = piece == ROOK and dir > 3 else: cond = piece == QUEEN or (piece == ROOK and dir > 3) or \ (piece == BISHOP and dir < 4) if cond: bit = bitPosArray[ncord] if bit & board.friends[color]: ours |= bit else: theirs |= bit return ours, theirs def defends (board, fcord, tcord): """ Could fcord attack tcord if the piece on tcord wasn't on the team of fcord? Doesn't test check. """ # Work on a board copy, as we are going to change some stuff board = board.clone() if board.friends[WHITE] & bitPosArray[fcord]: color = WHITE else: color = BLACK opcolor = 1-color boards = board.boards[color] opboards = board.boards[opcolor] # To see if we now defend the piece, we have to "give" it to the other team piece = board.arBoard[tcord] #backup = boards[piece] #opbackup = opboards[piece] boards[piece] &= notBitPosArray[tcord] opboards[piece] |= bitPosArray[tcord] board.friends[color] &= notBitPosArray[tcord] board.friends[opcolor] |= bitPosArray[tcord] # Can we "attack" the piece now? backupColor = board.color board.setColor(color) from .lmovegen import newMove from .validator import validateMove islegal = validateMove (board, newMove(fcord, tcord)) board.setColor(backupColor) # We don't need to set the board back, as we work on a copy #boards[piece] = backup #opboards[piece] = opbackup #board.friends[color] |= bitPosArray[tcord] #board.friends[opcolor] &= notBitPosArray[tcord] return islegal pychess-0.12.2/lib/pychess/Utils/lutils/lmovegen.py0000755000175000017470000006400612641567764022631 0ustar tamasusers00000000000000from __future__ import absolute_import from .bitboard import * from .attack import * from pychess.Utils.const import * ################################################################################ # The format of a move is as follows - from left: # # 4 bits: Descriping the type of the move # # 6 bits: cord to move from # # 6 bits: cord to move to # ################################################################################ shiftedFromCords = [] for i in range(64): shiftedFromCords.append(i << 6) shiftedFlags = [] for i in NORMAL_MOVE, QUEEN_CASTLE, KING_CASTLE, ENPASSANT, \ KNIGHT_PROMOTION, BISHOP_PROMOTION, ROOK_PROMOTION, QUEEN_PROMOTION, KING_PROMOTION, NULL_MOVE, DROP: shiftedFlags.append(i << 12) def newMove (fromcord, tocord, flag=NORMAL_MOVE): return shiftedFlags[flag] + shiftedFromCords[fromcord] + tocord ################################################################################ # Generate all moves # ################################################################################ def genCastles (board): def generateOne (color, side, king_after, rook_after): if side == 0: castle = QUEEN_CASTLE else: castle = KING_CASTLE king = board.ini_kings[color] rook = board.ini_rooks[color][side] blocker = clearBit(clearBit(board.blocker, king), rook) stepover = fromToRay[king][king_after] | fromToRay[rook][rook_after] if not stepover & blocker: for cord in range(min(king,king_after), max(king,king_after)+1): if isAttacked (board, cord, 1-color): return if FILE(king) == 3 and board.variant in (WILDCASTLECHESS, WILDCASTLESHUFFLECHESS): castle = QUEEN_CASTLE if castle == KING_CASTLE else KING_CASTLE if board.variant == FISCHERRANDOMCHESS: return newMove (king, rook, castle) else: return newMove (king, king_after, castle) king = board.ini_kings[board.color] wildcastle = FILE(king) == 3 and board.variant in (WILDCASTLECHESS, WILDCASTLESHUFFLECHESS) if board.color == WHITE: if board.castling & W_OO: side = 0 if wildcastle else 1 move = generateOne (WHITE, side, board.fin_kings[WHITE][side], board.fin_rooks[WHITE][side]) if move: yield move if board.castling & W_OOO: side = 1 if wildcastle else 0 move = generateOne (WHITE, side, board.fin_kings[WHITE][side], board.fin_rooks[WHITE][side]) if move: yield move else: if board.castling & B_OO: side = 0 if wildcastle else 1 move = generateOne (BLACK, side, board.fin_kings[BLACK][side], board.fin_rooks[BLACK][side]) if move: yield move if board.castling & B_OOO: side = 1 if wildcastle else 0 move = generateOne (BLACK, side, board.fin_kings[BLACK][side], board.fin_rooks[BLACK][side]) if move: yield move def genPieceMoves(board, piece, tcord): """" Used by parseSAN only to accelerate it a bit """ moves = set() friends = board.friends[board.color] notfriends = ~friends if piece == KNIGHT: knights = board.boards[board.color][KNIGHT] knightMoves = moveArray[KNIGHT] for fcord in iterBits(knights): if tcord in iterBits(knightMoves[fcord] & notfriends): moves.add(newMove(fcord, tcord)) return moves if piece == BISHOP: bishops = board.boards[board.color][BISHOP] if board.variant in ASEAN_VARIANTS: bishopMoves = moveArray[ASEAN_WBISHOP if board.color == WHITE else ASEAN_BBISHOP] for fcord in iterBits(bishops): if tcord in iterBits(bishopMoves[fcord] & notfriends): moves.add(newMove(fcord, tcord)) return moves else: blocker = board.blocker for fcord in iterBits(bishops): try: attackBoard = attack45 [fcord][ray45 [fcord] & blocker] | \ attack135[fcord][ray135[fcord] & blocker] except KeyError: attackBoard = 0 if tcord in iterBits(attackBoard & notfriends): moves.add(newMove(fcord, tcord)) return moves if piece == ROOK: blocker = board.blocker rooks = board.boards[board.color][ROOK] for fcord in iterBits(rooks): try: attackBoard = attack00[fcord][ray00[fcord] & blocker] | \ attack90[fcord][ray90[fcord] & blocker] except KeyError: attackBoard = 0 if tcord in iterBits(attackBoard & notfriends): moves.add(newMove(fcord, tcord)) return moves if piece == QUEEN: queens = board.boards[board.color][QUEEN] if board.variant in ASEAN_VARIANTS: queenMoves = moveArray[ASEAN_QUEEN] for fcord in iterBits(queens): if tcord in iterBits(queenMoves[fcord] & notfriends): moves.add(newMove(fcord, tcord)) # Cambodian extra first move if board.variant == CAMBODIANCHESS: if board.is_first_move[QUEEN][board.color]: if board.color == WHITE: if not board.arBoard[E3]: moves.add(newMove(E1, E3)) else: if not board.arBoard[D6]: moves.add(newMove(D8, D6)) return moves else: blocker = board.blocker for fcord in iterBits(queens): try: attackBoard = attack45 [fcord][ray45 [fcord] & blocker] | \ attack135[fcord][ray135[fcord] & blocker] except KeyError: attackBoard = 0 if tcord in iterBits(attackBoard & notfriends): moves.add(newMove(fcord, tcord)) try: attackBoard = attack00[fcord][ray00[fcord] & blocker] | \ attack90[fcord][ray90[fcord] & blocker] except KeyError: attackBoard = 0 if tcord in iterBits(attackBoard & notfriends): moves.add(newMove(fcord, tcord)) return moves if board.variant == SUICIDECHESS and piece == KING: kings = board.boards[board.color][KING] if kings: kingMoves = moveArray[KING] for fcord in iterBits(kings): for tcord in iterBits(kingMoves[fcord] & notfriends): moves.add(newMove(fcord, tcord)) return moves def genAllMoves (board, drops=True): from pychess.Variants import variants if drops and board.variant in DROP_VARIANTS: for move in genDrops(board): yield move # In sittuyin you have to place your pieces before any real move if board.variant == SITTUYINCHESS: if board.plyCount < 16: return blocker = board.blocker notblocker = ~blocker enpassant = board.enpassant friends = board.friends[board.color] notfriends = ~friends enemies = board.friends[1- board.color] pawns = board.boards[board.color][PAWN] knights = board.boards[board.color][KNIGHT] bishops = board.boards[board.color][BISHOP] rooks = board.boards[board.color][ROOK] queens = board.boards[board.color][QUEEN] kings = board.boards[board.color][KING] PROMOTIONS = variants[board.variant].PROMOTIONS if board.variant == SITTUYINCHESS and queens: PROMOTIONS = (NORMAL_MOVE,) # Knights knightMoves = moveArray[KNIGHT] for cord in iterBits(knights): for c in iterBits(knightMoves[cord] & notfriends): yield newMove(cord, c) # King if kings: kingMoves = moveArray[KING] cord = firstBit( kings ) for c in iterBits(kingMoves[cord] & notfriends): if board.variant == ATOMICCHESS: if not board.arBoard[c]: yield newMove(cord, c) else: yield newMove(cord, c) if board.variant in ASEAN_VARIANTS: # Rooks for cord in iterBits(rooks): try: attackBoard = attack00[cord][ray00[cord] & blocker] | \ attack90[cord][ray90[cord] & blocker] except KeyError: attackBoard = 0 for c in iterBits(attackBoard & notfriends): yield newMove(cord, c) # Queens queenMoves = moveArray[ASEAN_QUEEN] for cord in iterBits(queens): for c in iterBits(queenMoves[cord] & notfriends): yield newMove(cord, c) # Bishops bishopMoves = moveArray[ASEAN_WBISHOP if board.color == WHITE else ASEAN_BBISHOP] for cord in iterBits(bishops): for c in iterBits(bishopMoves[cord] & notfriends): yield newMove(cord, c) else: # Rooks and Queens for cord in iterBits(rooks | queens): try: attackBoard = attack00[cord][ray00[cord] & blocker] | \ attack90[cord][ray90[cord] & blocker] except KeyError: attackBoard = 0 for c in iterBits(attackBoard & notfriends): yield newMove(cord, c) # Bishops and Queens for cord in iterBits(bishops | queens): try: attackBoard = attack45 [cord][ray45 [cord] & blocker] | \ attack135[cord][ray135[cord] & blocker] except KeyError: attackBoard = 0 for c in iterBits(attackBoard & notfriends): yield newMove(cord, c) # White pawns pawnEnemies = enemies | (enpassant != None and bitPosArray[enpassant] or 0) if board.color == WHITE: # One step promotion_zone = variants[board.variant].PROMOTION_ZONE[WHITE] movedpawns = (pawns >> 8) & notblocker # Move all pawns one step forward for cord in iterBits(movedpawns): if cord in promotion_zone: for p in PROMOTIONS: yield newMove(cord-8, cord, p) else: #if (cord-8, cord) == (33, 41): # print repr(board) #print toString(pawns) yield newMove (cord-8, cord) # Two steps seccondrow = pawns & rankBits[1] # Get seccond row pawns movedpawns = (seccondrow >> 8) & notblocker # Move two steps forward, while movedpawns = (movedpawns >> 8) & notblocker # ensuring middle cord is clear for cord in iterBits(movedpawns): yield newMove (cord-16, cord) # Capture left capLeftPawns = pawns & ~fileBits[0] capLeftPawns = (capLeftPawns >> 7) & pawnEnemies for cord in iterBits(capLeftPawns): if cord in promotion_zone: for p in PROMOTIONS: if board.variant == SUICIDECHESS or p != KING_PROMOTION: yield newMove(cord-7, cord, p) elif cord == enpassant: yield newMove (cord-7, cord, ENPASSANT) else: yield newMove (cord-7, cord) # Capture right capRightPawns = pawns & ~fileBits[7] capRightPawns = (capRightPawns >> 9) & pawnEnemies for cord in iterBits(capRightPawns): if cord in promotion_zone: for p in PROMOTIONS: yield newMove(cord-9, cord, p) elif cord == enpassant: yield newMove (cord-9, cord, ENPASSANT) else: yield newMove (cord-9, cord) # Black pawns else: # One step promotion_zone = variants[board.variant].PROMOTION_ZONE[BLACK] movedpawns = (pawns << 8) & notblocker movedpawns &= 0xffffffffffffffff # contrain to 64 bits for cord in iterBits(movedpawns): if cord in promotion_zone: for p in PROMOTIONS: if board.variant == SUICIDECHESS or p != KING_PROMOTION: yield newMove(cord+8, cord, p) else: yield newMove (cord+8, cord) # Two steps seccondrow = pawns & rankBits[6] # Get seventh row pawns # Move two steps forward, while ensuring middle cord is clear movedpawns = seccondrow << 8 & notblocker movedpawns = movedpawns << 8 & notblocker for cord in iterBits(movedpawns): yield newMove (cord+16, cord) # Capture left capLeftPawns = pawns & ~fileBits[7] capLeftPawns = capLeftPawns << 7 & pawnEnemies for cord in iterBits(capLeftPawns): if cord in promotion_zone: for p in PROMOTIONS: yield newMove(cord+7, cord, p) elif cord == enpassant: yield newMove (cord+7, cord, ENPASSANT) else: yield newMove (cord+7, cord) # Capture right capRightPawns = pawns & ~fileBits[0] capRightPawns = capRightPawns << 9 & pawnEnemies for cord in iterBits(capRightPawns): if cord in promotion_zone: for p in PROMOTIONS: yield newMove(cord+9, cord, p) elif cord == enpassant: yield newMove (cord+9, cord, ENPASSANT) else: yield newMove (cord+9, cord) # Sittuyin in place promotions if board.variant == SITTUYINCHESS and pawns and not queens: for cord in iterBits(pawns): if cord in promotion_zone: yield newMove(cord, cord, QUEEN_PROMOTION) # Cambodian extra first moves for king and queen if board.variant == CAMBODIANCHESS: if board.arBoard[board.ini_kings[board.color]] == KING and \ board.is_first_move[KING][board.color]: if board.color == WHITE: if not board.arBoard[B2]: yield newMove(D1, B2) if not board.arBoard[F2]: yield newMove(D1, F2) else: if not board.arBoard[C7]: yield newMove(E8, C7) if not board.arBoard[G7]: yield newMove(E8, G7) if board.arBoard[board.ini_queens[board.color]] == QUEEN and \ board.is_first_move[QUEEN][board.color]: if board.color == WHITE: if not board.arBoard[E3]: yield newMove(E1, E3) else: if not board.arBoard[D6]: yield newMove(D8, D6) # Castling if kings: for move in genCastles(board): yield move ################################################################################ # Generate capturing moves # ################################################################################ def genCaptures (board): from pychess.Variants import variants blocker = board.blocker notblocker = ~blocker enpassant = board.enpassant friends = board.friends[board.color] notfriends = ~friends enemies = board.friends[1- board.color] pawns = board.boards[board.color][PAWN] knights = board.boards[board.color][KNIGHT] bishops = board.boards[board.color][BISHOP] rooks = board.boards[board.color][ROOK] queens = board.boards[board.color][QUEEN] kings = board.boards[board.color][KING] PROMOTIONS = variants[board.variant].PROMOTIONS if board.variant == SITTUYINCHESS and queens: PROMOTIONS = (NORMAL_MOVE,) # Knights knightMoves = moveArray[KNIGHT] for cord in iterBits(knights): for c in iterBits(knightMoves[cord] & enemies): yield newMove(cord, c) # King if kings: kingMoves = moveArray[KING] cord = firstBit( kings ) for c in iterBits(kingMoves[cord] & enemies): if board.variant != ATOMICCHESS: yield newMove(cord, c) # Rooks and Queens if board.variant in ASEAN_VARIANTS: for cord in iterBits(rooks): try: attackBoard = attack00[cord][ray00[cord] & blocker] | \ attack90[cord][ray90[cord] & blocker] except KeyError: attackBoard = 0 for c in iterBits(attackBoard & enemies): yield newMove(cord, c) else: for cord in iterBits(rooks|queens): try: attackBoard = attack00[cord][ray00[cord] & blocker] | \ attack90[cord][ray90[cord] & blocker] except KeyError: attackBoard = 0 for c in iterBits(attackBoard & enemies): yield newMove(cord, c) # Bishops and Queens if board.variant in ASEAN_VARIANTS: bishopMoves = moveArray[ASEAN_WBISHOP if board.color == WHITE else ASEAN_BBISHOP] for cord in iterBits(bishops): for c in iterBits(bishopMoves[cord] & enemies): yield newMove(cord, c) queenMoves = moveArray[ASEAN_QUEEN] for cord in iterBits(queens): for c in iterBits(queenMoves[cord] & enemies): yield newMove(cord, c) else: for cord in iterBits(bishops|queens): try: attackBoard = attack45 [cord][ray45 [cord] & blocker] | \ attack135[cord][ray135[cord] & blocker] except KeyError: attackBoard = 0 for c in iterBits(attackBoard & enemies): yield newMove(cord, c) # White pawns pawnEnemies = enemies | (enpassant != None and bitPosArray[enpassant] or 0) if board.color == WHITE: promotion_zone = variants[board.variant].PROMOTION_ZONE[WHITE] # Promotes movedpawns = (pawns >> 8) & notblocker & rankBits[7] #for cord in iterBits(movedpawns): # for p in PROMOTIONS: # if board.variant == SUICIDECHESS or p != KING_PROMOTION: # yield newMove(cord-8, cord, p) # Capture left capLeftPawns = pawns & ~fileBits[0] capLeftPawns = (capLeftPawns >> 7) & pawnEnemies for cord in iterBits(capLeftPawns): if cord in promotion_zone: for p in PROMOTIONS: yield newMove(cord-7, cord, p) elif cord == enpassant: yield newMove (cord-7, cord, ENPASSANT) else: yield newMove (cord-7, cord) # Capture right capRightPawns = pawns & ~fileBits[7] capRightPawns = (capRightPawns >> 9) & pawnEnemies for cord in iterBits(capRightPawns): if cord in promotion_zone: for p in PROMOTIONS: yield newMove(cord-9, cord, p) elif cord == enpassant: yield newMove (cord-9, cord, ENPASSANT) else: yield newMove (cord-9, cord) # Black pawns else: promotion_zone = variants[board.variant].PROMOTION_ZONE[BLACK] # One step movedpawns = pawns << 8 & notblocker & rankBits[0] #for cord in iterBits(movedpawns): # for p in PROMOTIONS: # if board.variant == SUICIDECHESS or p != KING_PROMOTION: # yield newMove(cord+8, cord, p) # Capture left capLeftPawns = pawns & ~fileBits[7] capLeftPawns = capLeftPawns << 7 & pawnEnemies for cord in iterBits(capLeftPawns): if cord in promotion_zone: for p in PROMOTIONS: yield newMove(cord+7, cord, p) elif cord == enpassant: yield newMove (cord+7, cord, ENPASSANT) else: yield newMove (cord+7, cord) # Capture right capRightPawns = pawns & ~fileBits[0] capRightPawns = capRightPawns << 9 & pawnEnemies for cord in iterBits(capRightPawns): if cord in promotion_zone: for p in PROMOTIONS: yield newMove(cord+9, cord, p) elif cord == enpassant: yield newMove (cord+9, cord, ENPASSANT) else: yield newMove (cord+9, cord) ################################################################################ # Generate escapes from check # ################################################################################ def genCheckEvasions (board): from pychess.Variants import variants color = board.color opcolor = 1-color kcord = board.kings[color] kings = board.boards[color][KING] pawns = board.boards[color][PAWN] checkers = getAttacks (board, kcord, opcolor) arBoard = board.arBoard if bin(checkers).count("1") == 1: PROMOTIONS = variants[board.variant].PROMOTIONS if board.variant == SITTUYINCHESS and board.boards[board.color][QUEEN]: PROMOTIONS = (NORMAL_MOVE,) promotion_zone = variants[board.variant].PROMOTION_ZONE[color] # Captures of checking pieces (except by king, which we will test later) chkcord = firstBit (checkers) b = getAttacks (board, chkcord, color) & ~kings for cord in iterBits(b): if not pinnedOnKing (board, cord, color): if arBoard[cord] == PAWN and chkcord in promotion_zone: for p in PROMOTIONS: yield newMove(cord, chkcord, p) else: yield newMove (cord, chkcord) # Maybe enpassant can help if board.enpassant: ep = board.enpassant if ep + (color == WHITE and -8 or 8) == chkcord: bits = moveArray[color == WHITE and BPAWN or PAWN][ep] & pawns for cord in iterBits (bits): if not pinnedOnKing (board, cord, color): yield newMove (cord, ep, ENPASSANT) # Lets block/capture the checking piece if sliders[arBoard[chkcord]]: bits = clearBit(fromToRay[kcord][chkcord], chkcord) for cord in iterBits (bits): b = getAttacks (board, cord, color) b &= ~(kings | pawns) # Add in pawn advances if color == WHITE and cord > H2: if bitPosArray[cord-8] & pawns: b |= bitPosArray[cord-8] if cord >> 3 == 3 and arBoard[cord-8] == EMPTY and \ bitPosArray[cord-16] & pawns: b |= bitPosArray[cord-16] elif color == BLACK and cord < H7: if bitPosArray[cord+8] & pawns: b |= bitPosArray[cord+8] if cord >> 3 == 4 and arBoard[cord+8] == EMPTY and \ bitPosArray[cord+16] & pawns: b |= bitPosArray[cord+16] for fcord in iterBits (b): # If the piece is blocking another attack, we cannot move it if pinnedOnKing (board, fcord, color): continue if arBoard[fcord] == PAWN and cord in promotion_zone: for p in PROMOTIONS: yield newMove(fcord, cord, p) else: yield newMove (fcord, cord) if board.variant == CRAZYHOUSECHESS: holding = board.holding[color] for piece in holding: if holding[piece] > 0: if piece == PAWN: if cord in promotion_zone: continue yield newMove (piece, cord, DROP) # If more than one checkers, move king to get out of check if checkers: escapes = moveArray[KING][kcord] & ~board.friends[color] else: escapes = 0 for chkcord in iterBits (checkers): dir = directions[chkcord][kcord] if sliders[arBoard[chkcord]]: escapes &= ~rays[chkcord][dir] for cord in iterBits (escapes): if not isAttacked (board, cord, opcolor): yield newMove (kcord, cord) def genDrops (board): color = board.color arBoard = board.arBoard holding = board.holding[color] for piece in holding: if holding[piece] > 0: for cord, elem in enumerate(arBoard): if elem == EMPTY: if board.variant == SITTUYINCHESS: if color == WHITE: if cord in (A3, B3, C3, D3) or cord > H3: continue if piece == ROOK and cord > H1 or \ piece != ROOK and cord <= H1: continue else: if cord in (E6, F6, G6, H6) or cord < A6: continue if piece == ROOK and cord < A8 or \ piece != ROOK and cord >= A8: continue if piece == PAWN: if cord >= 56 or cord <= 7: continue yield newMove(piece, cord, DROP) pychess-0.12.2/lib/pychess/Utils/lutils/egtb_gaviota.py0000755000175000017470000002205412641567764023445 0ustar tamasusers00000000000000from __future__ import absolute_import import os import re import sys import platform from ctypes import * from .bitboard import firstBit, clearBit from .lmovegen import genAllMoves, genCheckEvasions from pychess.Utils.const import * from pychess.System import conf from pychess.System.prefix import addDataPrefix, getDataPrefix from pychess.System.Log import log class TB_STATS(Structure): _fields_ = [ ( 'wdl_easy_hits' , c_ulong*2 ), ( 'wdl_hard_prob' , c_ulong*2 ), ( 'wdl_soft_prob' , c_ulong*2 ), ( 'wdl_cachesize' , c_size_t ), ( 'wdl_occupancy' , c_double ), ( 'dtm_easy_hits' , c_ulong*2 ), ( 'dtm_hard_prob' , c_ulong*2 ), ( 'dtm_soft_prob' , c_ulong*2 ), ( 'dtm_cachesize' , c_size_t ), ( 'dtm_occupancy' , c_double ), ( 'total_hits' , c_ulong*2 ), ( 'memory_hits' , c_ulong*2 ), ( 'drive_hits' , c_ulong*2 ), ( 'drive_miss' , c_ulong*2 ), ( 'bytes_read' , c_ulong*2 ), ( 'files_opened' , c_ulong ), ( 'memory_efficiency', c_double ), ] class egtb_gaviota: def __init__ (self): self.libgtb = None self.initialized = False # Get a list of files in the tablebase folder. configuredTbPath = conf.get("egtb_path", "") tbPath = configuredTbPath or getDataPrefix() try: tbPathContents = os.listdir(tbPath) except OSError as e: if configuredTbPath: log.warning("Unable to open Gaviota TB folder: %s" % repr(e)) return # Find files named *.gtb.cp# and pick the most common "#". # (This is the compression scheme; the library currently only uses one at a time.) schemeCount = [0] * 10 for filename in tbPathContents: match = re.search("\.gtb\.cp(\d)$", filename) if match: schemeCount[int(match.group(1))] += 1 compressionScheme = max(zip(schemeCount, range(10))) if compressionScheme[0] == 0: if configuredTbPath: log.warning("Could not find any Gaviota TB files in %s" % configuredTbPath) return compressionScheme = compressionScheme[1] # Locate and load the library. if not self._loadLibrary(): return self._setupFunctionPrototypes() self.pathList = self.tbpaths_init() self.pathList = self.tbpaths_add(self.pathList, tbPath.encode()) initInfo = self.tb_init(True, compressionScheme, self.pathList) self.initialized = ( self.tb_is_initialized() != 0 ) if not self.initialized: log.warning(initInfo or "Failed to initialize Gaviota EGTB library") self.pathList = self.tbpaths_done(self.pathList) return elif initInfo: log.info(initInfo) # TODO: Set up a WDL cache area once the engine can use it. self.initialized &= self.tbcache_init(4*1024*1024, 0) if not self.initialized: log.warning("Failed to initialize Gaviota EGTB cache") self.tb_done() self.pathList = self.tbpaths_done(self.pathList) return self.availability = self.tb_availability() def _del (self): if self.initialized: self.tb_done() self.pathList = self.tbpaths_done(self.pathList) def supports (self, size): return self.initialized and ( \ sum(size) <= 2 or \ (self.availability & (3 << (2*sum(size)-6))) != 0 ) def scoreAllMoves (self, board): result, depth = self.scoreGame(board, False, False) if result is None: return [] scores = [] gen = board.isChecked() and genCheckEvasions or genAllMoves for move in gen(board): board.applyMove(move) if not board.opIsChecked(): result, depth = self.scoreGame(board, False, False) if result is None: log.warning("An EGTB file does not have all its dependencies") board.popMove() return [] scores.append( (move, result, depth) ) board.popMove() def mateScore(mrd): if mrd[1] == DRAW: return 0 absScore = 32767 - mrd[2] if (board.color == WHITE) ^ (mrd[1] == WHITEWON): return absScore return -absScore scores.sort(key=mateScore) return scores def scoreGame(self, board, omitDepth, probeSoft): stm = board.color epsq = board.enpassant or 64 # 64 is tb_NOSQUARE castles = (board.castling >> 2 & 3) | (board.castling << 2 & 12) tbinfo = c_uint() depth = c_uint() SqArray= c_uint * 65 PcArray= c_byte * 65 pc, sq = [], [] for color in (WHITE, BLACK): sq.append(SqArray()) pc.append(PcArray()) i = 0 bb = board.friends[color] while bb: b = firstBit(bb) bb = clearBit(bb, b) sq[-1][i] = b pc[-1][i] = board.arBoard[b] i += 1 sq[-1][i] = 64 # tb_NOSQUARE, terminates the list pc[-1][i] = 0 # tb_NOPIECE, terminates the list if omitDepth and probeSoft: ok = self.tb_probe_WDL_soft(stm, epsq, castles, sq[WHITE], sq[BLACK], pc[WHITE], pc[BLACK], byref(tbinfo)) elif omitDepth and not probeSoft: ok = self.tb_probe_WDL_hard(stm, epsq, castles, sq[WHITE], sq[BLACK], pc[WHITE], pc[BLACK], byref(tbinfo)) elif not omitDepth and probeSoft: ok = self.tb_probe_soft (stm, epsq, castles, sq[WHITE], sq[BLACK], pc[WHITE], pc[BLACK], byref(tbinfo), byref(depth)) elif not omitDepth and not probeSoft: ok = self.tb_probe_hard (stm, epsq, castles, sq[WHITE], sq[BLACK], pc[WHITE], pc[BLACK], byref(tbinfo), byref(depth)) resultMap = [ DRAW, WHITEWON, BLACKWON ] if not ok or not 0 <= tbinfo.value <= 2: return None, None result = resultMap[tbinfo.value] if omitDepth or result == DRAW: depth = None else: depth = depth.value return result, depth def _loadLibrary (self): libName = "libgaviotatb.so.1.0.1" try: self.libgtb = CDLL(libName) except OSError: log.warning("Failed to load Gaviota EGTB library %s" % libName) return None return self.libgtb # Prototypes from gtb-probe.h follow. def _setupFunctionPrototypes (self): def proto(name, returnType, *args): argTypes = map(lambda x: x[0], args) argNames = map(lambda x: x[1], args) funcType = CFUNCTYPE(returnType, *argTypes) paramFlags = tuple(zip([1] * len(args), argNames)) setattr(self, name, funcType((name, self.libgtb), paramFlags)) paths_t = POINTER(c_char_p) uip = POINTER(c_uint) ucp = POINTER(c_byte) proto("tb_init" , c_char_p, (c_int, "verbosity"), (c_int, "compression_scheme"), (paths_t, "paths")) proto("tb_restart", c_char_p, (c_int, "verbosity"), (c_int, "compression_scheme"), (paths_t, "paths")) proto("tb_done", None) proto("tb_probe_hard", c_int, (c_uint, "stm"), (c_uint, "epsq"), (c_uint, "castles"), (uip, "wSQ"), (uip, "bSQ"), (ucp, "wPC"), (ucp, "bPC"), (uip, "tbinfo"), (uip, "plies")) proto("tb_probe_soft", c_int, (c_uint, "stm"), (c_uint, "epsq"), (c_uint, "castles"), (uip, "wSQ"), (uip, "bSQ"), (ucp, "wPC"), (ucp, "bPC"), (uip, "tbinfo"), (uip, "plies")) proto("tb_probe_WDL_hard", c_int, (c_uint, "stm"), (c_uint, "epsq"), (c_uint, "castles"), (uip, "wSQ"), (uip, "bSQ"), (ucp, "wPC"), (ucp, "bPC"), (uip, "tbinfo")) proto("tb_probe_WDL_soft", c_int, (c_uint, "stm"), (c_uint, "epsq"), (c_uint, "castles"), (uip, "wSQ"), (uip, "bSQ"), (ucp, "wPC"), (ucp, "bPC"), (uip, "tbinfo")) proto("tb_is_initialized", c_int) proto("tb_availability", c_uint) proto("tb_indexmemory", c_size_t) proto("tbcache_init" , c_int, (c_size_t, "cache_mem"), (c_int, "wdl_fraction")) proto("tbcache_restart", c_int, (c_size_t, "cache_mem"), (c_int, "wdl_fraction")) proto("tbcache_done", None) proto("tbcache_is_on", c_int) proto("tbcache_flush", None) proto("tbstats_reset", None) proto("tbstats_get", None, (POINTER(TB_STATS), "stats")) proto("tbpaths_init", paths_t) proto("tbpaths_add", paths_t, (paths_t, "ps"), (c_char_p, "newpath")) proto("tbpaths_done", paths_t, (paths_t, "ps")) proto("tbpaths_getmain", c_char_p) pychess-0.12.2/lib/pychess/Utils/lutils/lmove.py0000755000175000017470000005646112641567764022145 0ustar tamasusers00000000000000# -*- coding: UTF-8 -*- from __future__ import absolute_import from __future__ import unicode_literals from .ldata import * from .bitboard import firstBit from .validator import validateMove from pychess.compat import unichr, unicode from pychess.Utils.const import * from pychess.Utils.repr import reprPiece, localReprSign from pychess.Utils.lutils.lmovegen import genAllMoves, genPieceMoves, newMove def RANK (cord): return cord >> 3 def FILE (cord): return cord & 7 def TCORD (move): return move & 63 def FCORD (move): return move >> 6 & 63 def FLAG (move): return move >> 12 def PROMOTE_PIECE (flag): return flag -2 def FLAG_PIECE (piece): return piece +2 class ParsingError (Exception): """ Please raise this with a 3-tupple: (move, reason, board.asFen()) The reason should be usable in the context: 'Move was not parseable because %s' % reason """ pass ################################################################################ # parseAny # ################################################################################ def parseAny (board, algnot): type = determineAlgebraicNotation (algnot) if type == SAN: return parseSAN (board, algnot) if type == AN: return parseAN (board, algnot) if type == LAN: return parseLAN (board, algnot) return parseFAN (board, algnot) def determineAlgebraicNotation (algnot): upnot = algnot.upper() if upnot in ("O-O", "O-O-O", "0-0", "0-0-0"): return SAN # Test for e2-e4 if "-" in algnot: return LAN # Test for b4xc5 if "x" in algnot and algnot.split('x')[0] in cordDic: return LAN # Test for e2e4 or a7a8q or a7a8=q if algnot[:2] in cordDic and algnot[2:4] in cordDic: return AN if algnot[0] in FAN_PIECES[WHITE] or algnot[0] in FAN_PIECES[BLACK]: return FAN return SAN ################################################################################ # listToSan # ################################################################################ def listToSan (board, moves): # Work on a copy to ensure we don't break things board = board.clone() sanmoves = [] for move in moves: san = toSAN (board, move) sanmoves.append(san) board.applyMove(move) return sanmoves ################################################################################ # listToMoves # ################################################################################ def listToMoves (board, movstrs, type=None, testvalidate=False, ignoreErrors=False): # Work on a copy to ensure we don't break things board = board.clone() moves = [] for mstr in movstrs: try: if type == None: move = parseAny (board, mstr) elif type == SAN: move = parseSAN (board, mstr) elif type == AN: move = parseAN (board, mstr) elif type == LAN: move = parseLAN (board, mstr) except ParsingError: if ignoreErrors: break raise if testvalidate and mstr != "--": if not validateMove (board, move): if not ignoreErrors: raise ParsingError(mstr, 'Validation', board.asFen()) break moves.append(move) board.applyMove(move) return moves ################################################################################ # toSan # ################################################################################ def toSAN (board, move, localRepr=False): """ Returns a Short/Abbreviated Algebraic Notation string of a move The board should be prior to the move """ def check_or_mate(): board_clone = board.clone() board_clone.applyMove(move) sign = "" if board_clone.isChecked(): for altmove in genAllMoves (board_clone): if board.variant == ATOMICCHESS: from pychess.Variants.atomic import kingExplode if kingExplode(board_clone, altmove, 1-board_clone.color) and \ not kingExplode(board_clone, altmove, board_clone.color): sign = "+" break elif kingExplode(board_clone, altmove, board_clone.color): continue board_clone.applyMove(altmove) if board_clone.opIsChecked(): board_clone.popMove() continue sign = "+" break else: sign = "#" return sign flag = move >> 12 if flag == NULL_MOVE: return "--" fcord = (move >> 6) & 63 if flag == KING_CASTLE: return "O-O%s" % check_or_mate() elif flag == QUEEN_CASTLE: return "O-O-O%s" % check_or_mate() tcord = move & 63 fpiece = fcord if flag == DROP else board.arBoard[fcord] tpiece = board.arBoard[tcord] part0 = "" part1 = "" if fpiece != PAWN or flag == DROP: if board.variant in (CAMBODIANCHESS, MAKRUKCHESS): part0 += reprSignMakruk[fpiece] elif board.variant == SITTUYINCHESS: part0 += reprSignSittuyin[fpiece] elif localRepr: part0 += localReprSign[fpiece] else: part0 += reprSign[fpiece] part1 = reprCord[tcord] if flag == DROP: return "%s@%s%s" % (part0, part1, check_or_mate()) if not fpiece in (PAWN, KING): xs = [] ys = [] board_clone = board.clone() for altmove in genAllMoves(board_clone, drops=False): mfcord = FCORD(altmove) if board_clone.arBoard[mfcord] == fpiece and \ mfcord != fcord and \ TCORD(altmove) == tcord: board_clone.applyMove(altmove) if not board_clone.opIsChecked(): xs.append(FILE(mfcord)) ys.append(RANK(mfcord)) board_clone.popMove() x = FILE(fcord) y = RANK(fcord) if ys or xs: if y in ys and not x in xs: # If we share rank with another piece, but not file part0 += reprFile[x] elif x in xs and not y in ys: # If we share file with another piece, but not rank part0 += reprRank[y] elif x in xs and y in ys: # If we share both file and rank with other pieces part0 += reprFile[x] + reprRank[y] else: # If we doesn't share anything, it is standard to put file part0 += reprFile[x] if tpiece != EMPTY or flag == ENPASSANT: if not (board.variant == SITTUYINCHESS and fcord == tcord): part1 = "x" + part1 if fpiece == PAWN: part0 += reprFile[FILE(fcord)] notat = part0 + part1 if flag in PROMOTIONS: if board.variant in (CAMBODIANCHESS, MAKRUKCHESS): notat += "="+reprSignMakruk[PROMOTE_PIECE(flag)] elif board.variant == SITTUYINCHESS: notat += "="+reprSignSittuyin[PROMOTE_PIECE(flag)] elif localRepr: notat += "="+localReprSign[PROMOTE_PIECE(flag)] else: notat += "="+reprSign[PROMOTE_PIECE(flag)] return "%s%s" % (notat, check_or_mate()) ################################################################################ # parseSan # ################################################################################ def parseSAN (board, san): """ Parse a Short/Abbreviated Algebraic Notation string """ notat = san color = board.color if notat == "--": return newMove(board.kings[color], board.kings[color], NULL_MOVE) if notat[-1] in "+#": notat = notat[:-1] # If '++' was used in place of # if notat[-1] == "+": notat = notat[:-1] flag = NORMAL_MOVE # If last char is a piece char, we assue it the promote char c = notat[-1] if c in "KQRBNSMFkqrbnsmf.": c = c.lower() if c == "k" and board.variant != SUICIDECHESS: raise ParsingError(san, _("invalid promoted piece"), board.asFen()) elif c == "." and board.variant in (CAMBODIANCHESS, MAKRUKCHESS, SITTUYINCHESS): # temporary hack for xboard bug flag = QUEEN_PROMOTION else: flag = chr2Sign[c] + 2 if notat[-2] == "=": notat = notat[:-2] else: notat = notat[:-1] if len(notat) < 2: raise ParsingError(san, _("the move needs a piece and a cord"), board.asFen()) if notat[0] in "O0o": fcord = board.ini_kings[color] flag = KING_CASTLE if notat == "O-O" or notat == "0-0" or notat == "o-o" else QUEEN_CASTLE side = flag -QUEEN_CASTLE if FILE(fcord) == 3 and board.variant in (WILDCASTLECHESS, WILDCASTLESHUFFLECHESS): side = 0 if side == 1 else 1 if board.variant == FISCHERRANDOMCHESS: tcord = board.ini_rooks[color][side] else: tcord = board.fin_kings[color][side] return newMove (fcord, tcord, flag) # LAN is not allowed in pgn spec, but sometimes it occures if "-" in notat: notat = notat.replace("-", "") if "@" in notat: tcord = cordDic[notat[-2:]] if notat[0].islower(): # Sjeng-ism piece = chr2Sign[notat[0]] else: piece = chrU2Sign[notat[0]] return newMove(piece, tcord, DROP) if notat[0] in "QRBKNSMF": piece = chrU2Sign[notat[0]] notat = notat[1:] else: piece = PAWN if notat[-1] in "18" and flag == NORMAL_MOVE and board.variant != SITTUYINCHESS: raise ParsingError( san, _("promotion move without promoted piece is incorrect"), board.asFen()) if "x" in notat: notat, tcord = notat.split("x") if not tcord in cordDic: raise ParsingError( san, _("the captured cord (%s) is incorrect") % tcord, board.asFen()) tcord = cordDic[tcord] if piece == PAWN: # If a pawn is attacking an empty cord, we assue it an enpassant if board.arBoard[tcord] == EMPTY: flag = ENPASSANT else: if not notat[-2:] in cordDic: raise ParsingError( san, _("the end cord (%s) is incorrect") % notat[-2:], board.asFen()) tcord = cordDic[notat[-2:]] notat = notat[:-2] # In suicide promoting to king is valid, so # more than 1 king per side can exist ! if board.variant != SUICIDECHESS and piece == KING: return newMove(board.kings[color], tcord, flag) # If there is any extra location info, like in the move Bexd1 or Nh3f4 we # want to know frank = None ffile = None if notat and notat[0] in reprRank: frank = int(notat[0])-1 notat = notat[1:] if notat and notat[0] in reprFile: ffile = ord(notat[0]) - ord("a") notat = notat[1:] if notat and notat[0] in reprRank: frank = int(notat[0])-1 notat = notat[1:] # we know all we want return newMove(frank*8+ffile, tcord, flag) if piece == PAWN: if (ffile is not None) and ffile != FILE(tcord): # capture if color == WHITE: fcord = tcord-7 if ffile > FILE(tcord) else tcord-9 else: fcord = tcord+7 if ffile < FILE(tcord) else tcord+9 else: if color == WHITE: pawns = board.boards[WHITE][PAWN] fcord = tcord-16 if RANK(tcord)==3 and not (pawns & fileBits[FILE(tcord)] & rankBits[2]) else tcord-8 else: pawns = board.boards[BLACK][PAWN] fcord = tcord+16 if RANK(tcord)==4 and not (pawns & fileBits[FILE(tcord)] & rankBits[5]) else tcord+8 if board.variant == SITTUYINCHESS and flag == QUEEN_PROMOTION and \ (pawns & fileBits[FILE(tcord)] & rankBits[RANK(tcord)]): return newMove(tcord, tcord, flag) return newMove(fcord, tcord, flag) else: if board.pieceCount[color][piece] == 1: # we have only one from this kind if piece, so: fcord = firstBit(board.boards[color][piece]) return newMove(fcord, tcord, flag) else: # We find all pieces who could have done it. (If san was legal, there should # never be more than one) moves = genPieceMoves(board, piece, tcord) if len(moves) == 1: return moves.pop() else: for move in moves: f = FCORD(move) if frank != None and frank != RANK(f): continue if ffile != None and ffile != FILE(f): continue board_clone = board.clone() board_clone.applyMove(move) if board_clone.opIsChecked(): continue return move errstring = "no %s is able to move to %s" % (reprPiece[piece], reprCord[tcord]) raise ParsingError(san, errstring, board.asFen()) ################################################################################ # toLan # ################################################################################ def toLAN (board, move, localRepr=False): """ Returns a Long/Expanded Algebraic Notation string of a move board should be prior to the move """ fcord = FCORD(move) tcord = TCORD(move) flag = FLAG(move) fpiece = fcord if flag == DROP else board.arBoard[fcord] s = "" if fpiece != PAWN or flag == DROP: if board.variant in (CAMBODIANCHESS, MAKRUKCHESS): s = reprSignMakruk[fpiece] elif board.variant == SITTUYINCHESS: s = reprSignSittuyin[fpiece] elif localRepr: s = localReprSign[fpiece] else: s = reprSign[fpiece] if flag == DROP: s += "@" else: s += reprCord[FCORD(move)] if board.arBoard[tcord] == EMPTY: s += "-" else: s += "x" s += reprCord[tcord] if flag in PROMOTIONS: s += "=" + reprSign[PROMOTE_PIECE(flag)] return s ################################################################################ # parseLan # ################################################################################ def parseLAN (board, lan): """ Parse a Long/Expanded Algebraic Notation string """ # To parse LAN pawn moves like "e2-e4" as SAN moves, we have to remove a few # fields if len(lan) == 5: if "x" in lan: # e4xd5 -> exd5 return parseSAN (board, lan[0]+lan[3:]) else: # e2-e4 -> e4 return parseSAN (board, lan[3:]) # We want to use the SAN parser for LAN moves like "Nb1-c3" or "Rd3xd7" # The san parser should be able to handle most stuff, as long as we remove # the slash if not lan.upper().startswith("O-O") and not lan.startswith("--"): lan = lan.replace("-","") return parseSAN (board, lan) ################################################################################ # toAN # ################################################################################ def toAN (board, move, short=False, castleNotation=CASTLE_SAN): """ Returns a Algebraic Notation string of a move board should be prior to the move short -- returns the short variant, e.g. f7f8q rather than f7f8=Q """ fcord = (move >> 6) & 63 tcord = move & 63 flag = move >> 12 if flag in (KING_CASTLE, QUEEN_CASTLE): if castleNotation == CASTLE_SAN: return flag == KING_CASTLE and "O-O" or "O-O-O" elif castleNotation == CASTLE_KR: rooks = board.ini_rooks[board.color] tcord = rooks[flag == KING_CASTLE and 1 or 0] # No treatment needed for CASTLE_KK if flag == DROP: if board.variant == SITTUYINCHESS: s = "%s@%s" % (reprSignSittuyin[fcord], reprCord[tcord]) else: s = "%s@%s" % (reprSign[fcord], reprCord[tcord]) else: s = reprCord[fcord] + reprCord[tcord] if flag in PROMOTIONS: if short: if board.variant in (CAMBODIANCHESS, MAKRUKCHESS): s += reprSignMakruk[PROMOTE_PIECE(flag)].lower() elif board.variant == SITTUYINCHESS: s += reprSignSittuyin[PROMOTE_PIECE(flag)].lower() else: s += reprSign[PROMOTE_PIECE(flag)].lower() else: if board.variant in (CAMBODIANCHESS, MAKRUKCHESS): s += "=" + reprSignMakruk[PROMOTE_PIECE(flag)] elif board.variant == SITTUYINCHESS: s += "=" + reprSignSittuyin[PROMOTE_PIECE(flag)] else: s += "=" + reprSign[PROMOTE_PIECE(flag)] return s ################################################################################ # parseAN # ################################################################################ def parseAN (board, an): """ Parse an Algebraic Notation string """ if not 4 <= len(an) <= 6: raise ParsingError(an, "the move must be 4 or 6 chars long", board.asFen()) try: fcord = cordDic[an[:2]] tcord = cordDic[an[2:4]] except KeyError as e: raise ParsingError(an, "the cord (%s) is incorrect" % e.args[0], board.asFen()) flag = NORMAL_MOVE if len(an) > 4 and not an[-1] in "QRBNMSFqrbnmsf": if board.variant != SUICIDECHESS or board.variant == SUICIDECHESS and not an[-1] in "Kk": raise ParsingError(an, "invalid promoted piece", board.asFen()) if len(an) == 5: #The a7a8q variant flag = chr2Sign[an[4].lower()] + 2 elif len(an) == 6: #The a7a8=q variant flag = chr2Sign[an[5].lower()] + 2 elif board.arBoard[fcord] == KING: if board.variant == FISCHERRANDOMCHESS and board.arBoard[tcord] == ROOK: color = board.color friends = board.friends[color] if bitPosArray[tcord] & friends: if board.ini_rooks[color][0] == tcord: flag = QUEEN_CASTLE else: flag = KING_CASTLE elif fcord - tcord == 2: flag = QUEEN_CASTLE elif fcord - tcord == -2: flag = KING_CASTLE else: flag = NORMAL_MOVE elif board.arBoard[fcord] == PAWN and board.arBoard[tcord] == EMPTY and \ FILE(fcord) != FILE(tcord) and RANK(fcord) != RANK(tcord): flag = ENPASSANT elif board.arBoard[fcord] == PAWN: if an[3] in "18" and board.variant != SITTUYINCHESS: raise ParsingError( an, _("promotion move without promoted piece is incorrect"), board.asFen()) return newMove (fcord, tcord, flag) ################################################################################ # toFAN # ################################################################################ san2WhiteFanDic = { ord("K"): FAN_PIECES[WHITE][KING], ord("Q"): FAN_PIECES[WHITE][QUEEN], ord("M"): FAN_PIECES[WHITE][QUEEN], ord("F"): FAN_PIECES[WHITE][QUEEN], ord("R"): FAN_PIECES[WHITE][ROOK], ord("B"): FAN_PIECES[WHITE][BISHOP], ord("S"): FAN_PIECES[WHITE][BISHOP], ord("N"): FAN_PIECES[WHITE][KNIGHT], ord("+"): "†", ord("#"): "‡" } san2BlackFanDic = { ord("K"): FAN_PIECES[BLACK][KING], ord("Q"): FAN_PIECES[BLACK][QUEEN], ord("M"): FAN_PIECES[BLACK][QUEEN], ord("F"): FAN_PIECES[BLACK][QUEEN], ord("R"): FAN_PIECES[BLACK][ROOK], ord("B"): FAN_PIECES[BLACK][BISHOP], ord("S"): FAN_PIECES[BLACK][BISHOP], ord("N"): FAN_PIECES[BLACK][KNIGHT], ord("+"): "†", ord("#"): "‡" } def toFAN (board, move): """ Returns a Figurine Algebraic Notation string of a move """ san = unicode(toSAN (board, move)) if board.color == WHITE: return san.translate(san2WhiteFanDic) else: return san.translate(san2BlackFanDic) ################################################################################ # parseFAN # ################################################################################ fan2SanDic = {} for k, v in san2WhiteFanDic.items(): fan2SanDic[ord(v)] = unichr(k) for k, v in san2BlackFanDic.items(): fan2SanDic[ord(v)] = unichr(k) def parseFAN (board, fan): """ Parse a Figurine Algebraic Notation string """ san = fan.translate(fan2SanDic) return parseSAN (board, san) ################################################################################ # toPolyglot # ################################################################################ def toPolyglot (board, move): """ Returns a 16-bit Polyglot-format move board should be prior to the move """ pg = move & 4095 if FLAG(move) in PROMOTIONS: pg |= ( PROMOTE_PIECE(FLAG(move)) - 1 ) << 12 elif FLAG(move) == QUEEN_CASTLE: pg = (pg & 4032) | board.ini_rooks[board.color][0] elif FLAG(move) == KING_CASTLE: pg = (pg & 4032) | board.ini_rooks[board.color][1] return pg ################################################################################ # parsePolyglot # ################################################################################ def parsePolyglot (board, pg): """ Parse a 16-bit Polyglot-format move """ tcord = TCORD(pg) fcord = FCORD(pg) flag = NORMAL_MOVE if pg >> 12: flag = FLAG_PIECE( (pg >> 12) + 1 ) elif board.arBoard[fcord] == KING: if board.arBoard[tcord] == ROOK: color = board.color friends = board.friends[color] if bitPosArray[tcord] & friends: if board.ini_rooks[color][0] == tcord: flag = QUEEN_CASTLE if board.variant == NORMALCHESS: # Want e1c1/e8c8 tcord += 2 else: flag = KING_CASTLE if board.variant == NORMALCHESS: # Want e1g1/e8g8 tcord -= 1 elif board.arBoard[fcord] == PAWN and board.arBoard[tcord] == EMPTY and \ FILE(fcord) != FILE(tcord) and RANK(fcord) != RANK(tcord): flag = ENPASSANT return newMove (fcord, tcord, flag) pychess-0.12.2/lib/pychess/Utils/lutils/lsearch.py0000755000175000017470000002767412641567764022450 0ustar tamasusers00000000000000from __future__ import absolute_import from time import time from random import random from heapq import heappush, heappop from .lmovegen import genAllMoves, genCheckEvasions, genCaptures from .egtb_gaviota import egtb_gaviota from pychess.Utils.const import * from .leval import evaluateComplete from .lsort import getCaptureValue, getMoveValue from .lmove import toSAN from .ldata import MATE_VALUE, VALUE_AT_PLY from .TranspositionTable import TranspositionTable from pychess.Variants.atomic import kingExplode from pychess.Variants.kingofthehill import testKingInCenter from pychess.Variants.threecheck import checkCount from . import ldraw TIMECHECK_FREQ = 500 table = TranspositionTable(32 * 1024 * 1024) skipPruneChance = 0 searching = False nodes = 0 endtime = 0 timecheck_counter = TIMECHECK_FREQ egtb = None def alphaBeta (board, depth, alpha=-MATE_VALUE, beta=MATE_VALUE, ply=0): """ This is a alphabeta/negamax/quiescent/iterativedeepend search algorithm Based on moves found by the validator.py findmoves2 function and evaluated by eval.py. The function recalls itself "depth" times. If the last move in range depth was a capture, it will continue calling itself, only searching for captures. It returns a tuple of * a list of the path it found through the search tree (last item being the deepest) * a score of your standing the the last possition. """ global searching, nodes, table, endtime, timecheck_counter foundPv = False hashf = hashfALPHA amove = [] ############################################################################ # Mate distance pruning ############################################################################ MATED = -MATE_VALUE+ply MATE_IN_1 = MATE_VALUE-ply-1 if beta <= MATED: return [], MATED if beta >= MATE_IN_1: beta = MATE_IN_1 if alpha >= beta: return [], MATE_IN_1 if board.variant == ATOMICCHESS: if bin(board.boards[board.color][KING]).count("1") == 0: return [], MATED elif board.variant == KINGOFTHEHILLCHESS: if testKingInCenter(board): return [], MATED elif board.variant == THREECHECKCHESS: if checkCount(board) == 3: return [], MATED ############################################################################ # Look in the end game table ############################################################################ global egtb if egtb: tbhits = egtb.scoreAllMoves(board) if tbhits: move, state, steps = tbhits[0] if state == DRAW: score = 0 elif board.color == WHITE: if state == WHITEWON: score = MATE_VALUE-steps else: score = -MATE_VALUE+steps else: if state == WHITEWON: score = -MATE_VALUE+steps else: score = MATE_VALUE-steps return [move], score ########################################################################### # We don't save repetition in the table, so we need to test draw before # # table. # ########################################################################### # We don't adjudicate draws. Clients may have different rules for that. if ply > 0: if ldraw.test(board): return [], 0 ############################################################################ # Look up transposition table # ############################################################################ # TODO: add holder to hash if board.variant not in DROP_VARIANTS: if ply == 0: table.newSearch() table.setHashMove (depth, -1) probe = table.probe (board, depth, alpha, beta) hashmove = None if probe: move, score, hashf = probe score = VALUE_AT_PLY(score, ply) hashmove = move table.setHashMove (depth, move) if hashf == hashfEXACT: return [move], score elif hashf == hashfBETA: beta = min(score, beta) elif hashf == hashfALPHA: alpha = score if hashf != hashfBAD and alpha >= beta: return [move], score ############################################################################ # Cheking the time # ############################################################################ timecheck_counter -= 1 if timecheck_counter == 0: if time() > endtime: searching = False timecheck_counter = TIMECHECK_FREQ ############################################################################ # Break itereation if interupted or if times up # ############################################################################ if not searching: return [], -evaluateComplete(board, 1-board.color) ############################################################################ # Go for quiescent search # ############################################################################ isCheck = board.isChecked() if depth <= 0: if isCheck: # Being in check is that serious, that we want to take a deeper look depth += 1 elif board.variant in (LOSERSCHESS, SUICIDECHESS, ATOMICCHESS): return [], evaluateComplete(board, board.color) else: mvs, val = quiescent(board, alpha, beta, ply) return mvs, val ############################################################################ # Find and sort moves # ############################################################################ if board.variant in (LOSERSCHESS, SUICIDECHESS): mlist = [m for m in genCaptures(board)] if board.variant == LOSERSCHESS and isCheck: evasions = [m for m in genCheckEvasions(board)] eva_cap = [m for m in evasions if m in mlist] mlist = eva_cap if eva_cap else evasions if not mlist and not isCheck: mlist = [m for m in genAllMoves(board)] moves = [(-getMoveValue(board,table,depth,m),m) for m in mlist] elif board.variant == ATOMICCHESS: if isCheck: mlist = [m for m in genCheckEvasions(board) if not kingExplode(board, m, board.color)] else: mlist = [m for m in genAllMoves(board) if not kingExplode(board, m, board.color)] moves = [(-getMoveValue(board,table,depth,m),m) for m in mlist] else: if isCheck: moves = [(-getMoveValue(board,table,depth,m),m) for m in genCheckEvasions(board)] else: moves = [(-getMoveValue(board,table,depth,m),m) for m in genAllMoves(board)] moves.sort() # This is needed on checkmate catchFailLow = None ############################################################################ # Loop moves # ############################################################################ for moveValue, move in moves: nodes += 1 board.applyMove(move) if not isCheck: if board.opIsChecked(): board.popMove() continue catchFailLow = move if foundPv: mvs, val = alphaBeta (board, depth-1, -alpha-1, -alpha, ply+1) val = -val if val > alpha and val < beta: mvs, val = alphaBeta (board, depth-1, -beta, -alpha, ply+1) val = -val else: mvs, val = alphaBeta (board, depth-1, -beta, -alpha, ply+1) val = -val board.popMove() if val > alpha: if val >= beta: if searching and move>>12 != DROP: table.record (board, move, VALUE_AT_PLY(beta, -ply), hashfBETA, depth) # We don't want to use our valuable killer move spaces for # captures and promotions, as these are searched early anyways. if board.arBoard[move&63] == EMPTY and \ not move>>12 in PROMOTIONS: table.addKiller (depth, move) table.addButterfly(move, depth) return [move]+mvs, beta alpha = val amove = [move]+mvs hashf = hashfEXACT foundPv = True ############################################################################ # Return # ############################################################################ if amove: if searching: table.record (board, amove[0], VALUE_AT_PLY(alpha, -ply), hashf, depth) if board.arBoard[amove[0]&63] == EMPTY: table.addKiller (depth, amove[0]) return amove, alpha if catchFailLow: if searching: table.record (board, catchFailLow, VALUE_AT_PLY(alpha, -ply), hashf, depth) return [catchFailLow], alpha # If no moves were found, this must be a mate or stalemate if isCheck: return [], MATED return [], 0 def quiescent (board, alpha, beta, ply): if skipPruneChance and random() < skipPruneChance: return [], (alpha+beta) // 2 global nodes if ldraw.test(board): return [], 0 isCheck = board.isChecked() # no stand-pat when in check if not isCheck: value = evaluateComplete(board, board.color) if value >= beta: return [], beta if value > alpha: alpha = value amove = [] heap = [] if isCheck: someMove = False for move in genCheckEvasions(board): someMove = True # Heap.append is fine, as we don't really do sorting on the few moves heap.append((0, move)) if not someMove: return [], -MATE_VALUE+ply else: for move in genCaptures (board): heappush(heap, (-getCaptureValue (board, move), move)) while heap: nodes += 1 v, move = heappop(heap) board.applyMove(move) if not isCheck: if board.opIsChecked(): board.popMove() continue mvs, val = quiescent(board, -beta, -alpha, ply+1) val = -val board.popMove() if val >= beta: return [move]+mvs, beta if val > alpha: alpha = val amove = [move]+mvs if amove: return amove, alpha else: return [], alpha class EndgameTable(): def __init__ (self): self.provider = egtb_gaviota() def _pieceCounts (self, board): return sorted([ bin(board.friends[i]).count("1") for i in range(2) ]) def scoreAllMoves (self, lBoard): """ Return each move's result and depth to mate. lBoard: A low-level board structure Return value: a list, with best moves first, of: move: A high-level move structure game_result: Either WHITEWON, DRAW, BLACKWON depth: Depth to mate """ pc = self._pieceCounts(lBoard) if self.provider.supports(pc): return self.provider.scoreAllMoves(lBoard) return [] def enableEGTB(): global egtb egtb = EndgameTable() pychess-0.12.2/lib/pychess/Utils/lutils/__init__.py0000755000175000017470000000000012641567764022534 0ustar tamasusers00000000000000pychess-0.12.2/lib/pychess/Utils/lutils/perft.py0000644000175000017470000000154512641567764022131 0ustar tamasusers00000000000000from __future__ import print_function import sys from time import time from pychess.Utils.lutils.lmovegen import genAllMoves from pychess.Utils.lutils.lmove import toSAN, toLAN def do_perft(board, depth, root): nodes = 0 if depth == 0: return 1 for move in genAllMoves(board): board.applyMove(move) if board.opIsChecked(): board.popMove() continue count = do_perft(board, depth-1, root-1) nodes += count board.popMove() if root > 0: print("%8s %10d %10d" % (toLAN(board, move), count, nodes)) return nodes def perft(board, depth, root): for i in range(depth): start_time = time() nodes = do_perft(board, i+1, root) ttime = time() -start_time print("%2d %10d %5.2f %12.2fnps" % (i+1, nodes, ttime, nodes / ttime)) pychess-0.12.2/lib/pychess/Utils/lutils/validator.py0000755000175000017470000000063012641567764022773 0ustar tamasusers00000000000000from __future__ import print_function from pychess.Utils.lutils.lmovegen import genAllMoves ################################################################################ # Validate move # ################################################################################ def validateMove (board, move): return move in genAllMoves(board) pychess-0.12.2/lib/pychess/Utils/lutils/LBoard.py0000755000175000017470000011011212641567764022146 0ustar tamasusers00000000000000from __future__ import absolute_import from pychess.compat import PY3 from pychess.Utils.const import * from pychess.Utils.repr import reprColor from .ldata import * from .attack import isAttacked from .bitboard import * from .PolyglotHash import * ################################################################################ # FEN # ################################################################################ # This will cause applyFen to raise an exception, if halfmove clock and fullmove # number is not specified STRICT_FEN = False ################################################################################ # LBoard # ################################################################################ class LBoard: ini_kings = (E1, E8) ini_rooks = ((A1, H1), (A8, H8)) # Final positions of castled kings and rooks fin_kings = ((C1,G1),(C8,G8)) fin_rooks = ((D1,F1),(D8,F8)) holding = ({PAWN:0, KNIGHT:0, BISHOP:0, ROOK:0, QUEEN:0, KING:0}, {PAWN:0, KNIGHT:0, BISHOP:0, ROOK:0, QUEEN:0, KING:0}) def __init__ (self, variant=NORMALCHESS): self.variant = variant self.nags = [] # children can contain comments and variations # variations are lists of lboard objects self.children = [] # the next and prev lboard objects in the variation list self.next = None self.prev = None # The high level owner Board (with Piece objects) in gamemodel self.pieceBoard = None # This will True except in so called null_board # null_board act as parent of the variation # when we add a variation to last played board from hint panel self.fen_was_applied = False @property def lastMove (self): return self.hist_move[-1] if self.fen_was_applied and len(self.hist_move) > 0 else None def repetitionCount (self, drawThreshold=3): rc = 1 for ply in range(4, 1+min(len(self.hist_hash), self.fifty), 2): if self.hist_hash[-ply] == self.hash: rc += 1 if rc >= drawThreshold: break return rc def iniAtomic(self): self.hist_exploding_around = [] def iniHouse(self): self.promoted = [0]*64 self.capture_promoting = False self.hist_capture_promoting = [] self.holding = ({PAWN:0, KNIGHT:0, BISHOP:0, ROOK:0, QUEEN:0, KING:0}, {PAWN:0, KNIGHT:0, BISHOP:0, ROOK:0, QUEEN:0, KING:0}) def iniCambodian(self): self.ini_kings = (D1, E8) self.ini_queens = (E1, D8) self.is_first_move = {KING: [True, True], QUEEN: [True, True]} self.hist_is_first_move = [] def applyFen (self, fenstr): """ Applies the fenstring to the board. If the string is not properly written a SyntaxError will be raised, having its message ending in Pos(%d) specifying the string index of the problem. if an error is found, no changes will be made to the board. """ assert not self.fen_was_applied, "The applyFen() method can be used on new LBoard objects only!" # Set board to empty on Black's turn (which Polyglot-hashes to 0) self.blocker = 0 self.friends = [0]*2 self.kings = [-1]*2 self.boards = [[0]*7 for i in range(2)] self.enpassant = None # cord which can be captured by enpassant or None self.color = BLACK self.castling = 0 # The castling availability in the position self.hasCastled = [False, False] self.fifty = 0 # A ply counter for the fifty moves rule self.plyCount = 0 self.checked = None self.opchecked = None self.arBoard = [0]*64 self.hash = 0 self.pawnhash = 0 # Data from the position's history: self.hist_move = [] # The move that was applied to get the position self.hist_tpiece = [] # The piece the move captured, == EMPTY for normal moves self.hist_enpassant = [] self.hist_castling = [] self.hist_hash = [] self.hist_fifty = [] self.hist_checked = [] self.hist_opchecked = [] # piece counts self.pieceCount = [[0]*7, [0]*7] # initial cords of rooks and kings for castling in Chess960 if self.variant == FISCHERRANDOMCHESS: self.ini_kings = [None, None] self.ini_rooks = ([None, None], [None, None]) elif self.variant in (WILDCASTLECHESS, WILDCASTLESHUFFLECHESS): self.ini_kings = [None, None] self.fin_kings = ([None, None], [None, None]) self.fin_rooks = ([None, None], [None, None]) elif self.variant in DROP_VARIANTS: self.iniHouse() elif self.variant == ATOMICCHESS: self.iniAtomic() elif self.variant == CAMBODIANCHESS: self.iniCambodian() # Get information parts = fenstr.split() castChr = "-" epChr = "-" fiftyChr = "0" moveNoChr = "1" if STRICT_FEN and len(parts) != 6: raise SyntaxError(_("FEN needs 6 data fields. \n\n%s") % fenstr) elif len(parts) < 2: raise SyntaxError(_("FEN needs at least 2 data fields in fenstr. \n\n%s") % fenstr) elif len(parts) >= 6: pieceChrs, colChr, castChr, epChr, fiftyChr, moveNoChr = parts[:6] elif len(parts) == 5: pieceChrs, colChr, castChr, epChr, fiftyChr = parts elif len(parts) == 4: if parts[2].isdigit() and parts[3].isdigit(): # xboard FEN usage for asian variants pieceChrs, colChr, fiftyChr, moveNoChr = parts else: pieceChrs, colChr, castChr, epChr = parts elif len(parts) == 3: pieceChrs, colChr, castChr = parts else: pieceChrs, colChr = parts # Try to validate some information # TODO: This should be expanded and perhaps moved slashes = pieceChrs.count("/") if slashes < 7: raise SyntaxError(_("Needs 7 slashes in piece placement field. \n\n%s") % fenstr) if not colChr.lower() in ("w", "b"): raise SyntaxError(_("Active color field must be one of w or b. \n\n%s") % fenstr) if castChr != "-": for Chr in castChr: valid_chars = "ABCDEFGHKQ" if self.variant==FISCHERRANDOMCHESS else "KQ" if Chr.upper() not in valid_chars: if self.variant == CAMBODIANCHESS: pass # sjaakii uses DEde in cambodian starting fen to indicate # that queens and kings are virgins (not moved yet) else: raise SyntaxError(_("Castling availability field is not legal. \n\n%s") % fenstr) if epChr != "-" and not epChr in cordDic: raise SyntaxError(_("En passant cord is not legal. \n\n%s") % fenstr) # Put the next one into comment, because we use # "setboard 8/8/8/8/8/8/8/8 w - - 0 1" FEN to stop CECPEngine analyzers #if (not 'k' in pieceChrs) or (not 'K' in pieceChrs): # if self.variant not in (ATOMICCHESS, SUICIDECHESS): # raise SyntaxError, "FEN needs at least 'k' and 'K' in piece placement field." # Parse piece placement field promoted = False # if there is a holding within [] we change it to BFEN style first if pieceChrs.endswith("]"): pieceChrs = pieceChrs[:-1].replace("[", "/") for r, rank in enumerate(pieceChrs.split("/")): cord = (7-r)*8 for char in rank: if r > 7: # After the 8.rank BFEN can contain holdings (captured pieces) # "~" after a piece letter denotes promoted piece if r == 8 and self.variant in DROP_VARIANTS: color = char.islower() and BLACK or WHITE piece = chrU2Sign[char.upper()] self.holding[color][piece] += 1 continue else: break if char.isdigit(): cord += int(char) elif char == "~": promoted = True else: color = char.islower() and BLACK or WHITE piece = chrU2Sign[char.upper()] self._addPiece(cord, piece, color) self.pieceCount[color][piece] += 1 if self.variant in DROP_VARIANTS and promoted: self.promoted[cord] = 1 promoted = False if self.variant == CAMBODIANCHESS: if piece == KING and self.kings[color] != self.ini_kings[color]: self.is_first_move[KING][color] = False if piece == QUEEN and cord != self.ini_queens[color]: self.is_first_move[QUEEN][color] = False cord += 1 if self.variant == FISCHERRANDOMCHESS: # Save ranks fo find outermost rooks # if KkQq was used in castling rights if r == 0: rank8 = rank elif r == 7: rank1 = rank # Parse active color field if colChr.lower() == "w": self.setColor (WHITE) else: self.setColor (BLACK) # Parse castling availability castling = 0 for char in castChr: if self.variant == FISCHERRANDOMCHESS: if char in reprFile: if char < reprCord[self.kings[BLACK]][0]: castling |= B_OOO self.ini_rooks[1][0] = reprFile.index(char) + 56 else: castling |= B_OO self.ini_rooks[1][1] = reprFile.index(char) + 56 elif char in [c.upper() for c in reprFile]: if char < reprCord[self.kings[WHITE]][0].upper(): castling |= W_OOO self.ini_rooks[0][0] = reprFile.index(char.lower()) else: castling |= W_OO self.ini_rooks[0][1] = reprFile.index(char.lower()) elif char == "K": castling |= W_OO self.ini_rooks[0][1] = rank1.rfind('R') elif char == "Q": castling |= W_OOO self.ini_rooks[0][0] = rank1.find('R') elif char == "k": castling |= B_OO self.ini_rooks[1][1] = rank8.rfind('r') + 56 elif char == "q": castling |= B_OOO self.ini_rooks[1][0] = rank8.find('r') + 56 else: if char == "K": castling |= W_OO elif char == "Q": castling |= W_OOO elif char == "k": castling |= B_OO elif char == "q": castling |= B_OOO if self.variant in (WILDCASTLECHESS, WILDCASTLESHUFFLECHESS, FISCHERRANDOMCHESS): self.ini_kings[WHITE] = self.kings[WHITE] self.ini_kings[BLACK] = self.kings[BLACK] if self.variant in (WILDCASTLECHESS, WILDCASTLESHUFFLECHESS): if self.ini_kings[WHITE] == D1 and self.ini_kings[BLACK] == D8: self.fin_kings = ([B1,F1],[B8,F8]) self.fin_rooks = ([C1,E1],[C8,E8]) elif self.ini_kings[WHITE] == D1: self.fin_kings = ([B1,F1],[C8,G8]) self.fin_rooks = ([C1,E1],[D8,F8]) elif self.ini_kings[BLACK] == D8: self.fin_kings = ([C1,G1],[B8,F8]) self.fin_rooks = ([D1,F1],[C8,E8]) else: self.fin_kings = ([C1,G1],[C8,G8]) self.fin_rooks = ([D1,F1],[D8,F8]) self.setCastling(castling) # Parse en passant target sqaure if epChr == "-": self.setEnpassant (None) else: self.setEnpassant(cordDic[epChr]) # Parse halfmove clock field if fiftyChr.isdigit(): self.fifty = int(fiftyChr) else: self.fifty = 0 # Parse fullmove number if moveNoChr.isdigit(): movenumber = max(int(moveNoChr),1)*2 -2 if self.color == BLACK: movenumber += 1 self.plyCount = movenumber else: self.plyCount = 1 self.fen_was_applied = True def isChecked (self): if self.variant == SUICIDECHESS: return False elif self.variant == ATOMICCHESS: if not self.boards[self.color][KING]: return False elif self.variant == SITTUYINCHESS and self.plyCount < 16: return False if self.checked == None: kingcord = self.kings[self.color] self.checked = isAttacked (self, kingcord, 1-self.color, ischecked=True) return self.checked def opIsChecked (self): if self.variant == SUICIDECHESS: return False elif self.variant == ATOMICCHESS: if not self.boards[1-self.color][KING]: return False elif self.variant == SITTUYINCHESS and self.plyCount < 16: return False if self.opchecked == None: kingcord = self.kings[1-self.color] self.opchecked = isAttacked (self, kingcord, self.color, ischecked=True) return self.opchecked def willLeaveInCheck (self, move): if self.variant == SUICIDECHESS: return False board_clone = self.clone() board_clone.applyMove(move) return board_clone.opIsChecked() def _addPiece (self, cord, piece, color): _setBit = setBit self.boards[color][piece] = _setBit(self.boards[color][piece], cord) self.friends[color] = _setBit(self.friends[color], cord) self.blocker = _setBit(self.blocker, cord) if piece == PAWN: self.pawnhash ^= pieceHashes[color][PAWN][cord] elif piece == KING: self.kings[color] = cord self.hash ^= pieceHashes[color][piece][cord] self.arBoard[cord] = piece def _removePiece (self, cord, piece, color): _clearBit = clearBit self.boards[color][piece] = _clearBit(self.boards[color][piece], cord) self.friends[color] = _clearBit(self.friends[color], cord) self.blocker = _clearBit(self.blocker, cord) if piece == PAWN: self.pawnhash ^= pieceHashes[color][PAWN][cord] self.hash ^= pieceHashes[color][piece][cord] self.arBoard[cord] = EMPTY def setColor (self, color): if color == self.color: return self.color = color self.hash ^= colorHash def setCastling (self, castling): if self.castling == castling: return if castling & W_OO != self.castling & W_OO: self.hash ^= W_OOHash if castling & W_OOO != self.castling & W_OOO: self.hash ^= W_OOOHash if castling & B_OO != self.castling & B_OO: self.hash ^= B_OOHash if castling & B_OOO != self.castling & B_OOO: self.hash ^= B_OOOHash self.castling = castling def setEnpassant (self, epcord): # Strip the square if there's no adjacent enemy pawn to make the capture if epcord != None: sideToMove = (epcord >> 3 == 2 and BLACK or WHITE) fwdPawns = self.boards[sideToMove][PAWN] if sideToMove == WHITE: fwdPawns >>= 8 else: fwdPawns <<= 8 pawnTargets = (fwdPawns & ~fileBits[0]) << 1; pawnTargets |= (fwdPawns & ~fileBits[7]) >> 1; if not pawnTargets & bitPosArray[epcord]: epcord = None if self.enpassant == epcord: return if self.enpassant != None: self.hash ^= epHashes[self.enpassant & 7] if epcord != None: self.hash ^= epHashes[epcord & 7] self.enpassant = epcord #@profile def applyMove (self, move): flag = move >> 12 fcord = (move >> 6) & 63 tcord = move & 63 fpiece = fcord if flag==DROP else self.arBoard[fcord] tpiece = self.arBoard[tcord] color = self.color opcolor = 1-self.color castling = self.castling self.hist_move.append(move) self.hist_enpassant.append(self.enpassant) self.hist_castling.append(self.castling) self.hist_hash.append(self.hash) self.hist_fifty.append(self.fifty) self.hist_checked.append(self.checked) self.hist_opchecked.append(self.opchecked) if self.variant in DROP_VARIANTS: self.hist_capture_promoting.append(self.capture_promoting) if self.variant == CAMBODIANCHESS: self.hist_is_first_move.append({KING: self.is_first_move[KING][:], \ QUEEN: self.is_first_move[QUEEN][:]}) self.opchecked = None self.checked = None if flag == NULL_MOVE: self.setColor(opcolor) self.plyCount += 1 return move if self.variant == CAMBODIANCHESS: if fpiece == KING and self.is_first_move[KING][color]: self.is_first_move[KING][color] = False elif fpiece == QUEEN and self.is_first_move[QUEEN][color]: self.is_first_move[QUEEN][color] = False # Castling moves can be represented strangely, so normalize them. if flag in (KING_CASTLE, QUEEN_CASTLE): side = flag - QUEEN_CASTLE fpiece = KING tpiece = EMPTY # In FRC, there may be a rook there, but the king doesn't capture it. fcord = self.ini_kings[color] if FILE(fcord) == 3 and self.variant in (WILDCASTLECHESS, WILDCASTLESHUFFLECHESS): side = 0 if side == 1 else 1 tcord = self.fin_kings[color][side] rookf = self.ini_rooks[color][side] rookt = self.fin_rooks[color][side] # Capture (sittuyin in place promotion is not capture move!) if tpiece != EMPTY and fcord != tcord: self._removePiece(tcord, tpiece, opcolor) self.pieceCount[opcolor][tpiece] -= 1 if self.variant in DROP_VARIANTS: if self.promoted[tcord]: if self.variant == CRAZYHOUSECHESS: self.holding[color][PAWN] += 1 self.capture_promoting = True else: if self.variant == CRAZYHOUSECHESS: self.holding[color][tpiece] += 1 self.capture_promoting = False elif self.variant == ATOMICCHESS: from pychess.Variants.atomic import piecesAround apieces = [(fcord, fpiece, color),] for acord, apiece, acolor in piecesAround(self, tcord): if apiece != PAWN and acord != fcord: self._removePiece(acord, apiece, acolor) self.pieceCount[acolor][apiece] -= 1 apieces.append((acord, apiece, acolor)) if apiece == ROOK and acord != fcord: if acord == self.ini_rooks[opcolor][0]: castling &= ~CAS_FLAGS[opcolor][0] elif acord == self.ini_rooks[opcolor][1]: castling &= ~CAS_FLAGS[opcolor][1] self.hist_exploding_around.append(apieces) self.hist_tpiece.append(tpiece) # Remove moving piece(s), then add them at their destination. if flag == DROP: if self.variant in DROP_VARIANTS: assert self.holding[color][fpiece] > 0 self.holding[color][fpiece] -= 1 self.pieceCount[color][fpiece] += 1 else: self._removePiece(fcord, fpiece, color) if flag in (KING_CASTLE, QUEEN_CASTLE): self._removePiece (rookf, ROOK, color) self._addPiece (rookt, ROOK, color) self.hasCastled[color] = True if flag == ENPASSANT: takenPawnC = tcord + (color == WHITE and -8 or 8) self._removePiece (takenPawnC, PAWN, opcolor) self.pieceCount[opcolor][PAWN] -= 1 if self.variant == CRAZYHOUSECHESS: self.holding[color][PAWN] += 1 elif self.variant == ATOMICCHESS: from pychess.Variants.atomic import piecesAround apieces = [(fcord, fpiece, color),] for acord, apiece, acolor in piecesAround(self, tcord): if apiece != PAWN and acord != fcord: self._removePiece(acord, apiece, acolor) self.pieceCount[acolor][apiece] -= 1 apieces.append((acord, apiece, acolor)) self.hist_exploding_around.append(apieces) elif flag in PROMOTIONS: # Pretend the pawn changes into a piece before reaching its destination. fpiece = flag - 2 self.pieceCount[color][fpiece] += 1 self.pieceCount[color][PAWN] -=1 if self.variant in DROP_VARIANTS: if tpiece == EMPTY: self.capture_promoting = False if flag in PROMOTIONS: self.promoted[tcord] = 1 elif flag != DROP: if self.promoted[fcord]: self.promoted[fcord] = 0 self.promoted[tcord] = 1 elif tpiece != EMPTY: self.promoted[tcord] = 0 if self.variant == ATOMICCHESS and (tpiece != EMPTY or flag == ENPASSANT): self.pieceCount[color][fpiece] -= 1 else: self._addPiece(tcord, fpiece, color) if fpiece == PAWN and abs(fcord-tcord) == 16: self.setEnpassant ((fcord + tcord) // 2) else: self.setEnpassant (None) if tpiece == EMPTY and fpiece != PAWN: self.fifty += 1 else: self.fifty = 0 # Clear castle flags king = self.ini_kings[color] wildcastle = FILE(king) == 3 and self.variant in (WILDCASTLECHESS, WILDCASTLESHUFFLECHESS) if fpiece == KING: castling &= ~CAS_FLAGS[color][0] castling &= ~CAS_FLAGS[color][1] elif fpiece == ROOK: if fcord == self.ini_rooks[color][0]: side = 1 if wildcastle else 0 castling &= ~CAS_FLAGS[color][side] elif fcord == self.ini_rooks[color][1]: side = 0 if wildcastle else 1 castling &= ~CAS_FLAGS[color][side] if tpiece == ROOK: if tcord == self.ini_rooks[opcolor][0]: side = 1 if wildcastle else 0 castling &= ~CAS_FLAGS[opcolor][side] elif tcord == self.ini_rooks[opcolor][1]: side = 0 if wildcastle else 1 castling &= ~CAS_FLAGS[opcolor][side] self.setCastling(castling) self.setColor(opcolor) self.plyCount += 1 def popMove (self): # Note that we remove the last made move, which was not made by boards # current color, but by its opponent color = 1 - self.color opcolor = self.color move = self.hist_move.pop() cpiece = self.hist_tpiece.pop() flag = move >> 12 if flag == NULL_MOVE: self.setColor(color) return fcord = (move >> 6) & 63 tcord = move & 63 tpiece = self.arBoard[tcord] # Castling moves can be represented strangely, so normalize them. if flag in (KING_CASTLE, QUEEN_CASTLE): side = flag - QUEEN_CASTLE tpiece = KING fcord = self.ini_kings[color] if FILE(fcord) == 3 and self.variant in (WILDCASTLECHESS, WILDCASTLESHUFFLECHESS): side = 0 if side == 1 else 1 tcord = self.fin_kings[color][side] rookf = self.ini_rooks[color][side] rookt = self.fin_rooks[color][side] self._removePiece (tcord, tpiece, color) self._removePiece (rookt, ROOK, color) self._addPiece (rookf, ROOK, color) self.hasCastled[color] = False else: self._removePiece (tcord, tpiece, color) # Put back captured piece if cpiece != EMPTY and fcord != tcord: self._addPiece (tcord, cpiece, opcolor) self.pieceCount[opcolor][cpiece] += 1 if self.variant == CRAZYHOUSECHESS: if self.capture_promoting: assert self.holding[color][PAWN] > 0 self.holding[color][PAWN] -= 1 else: assert self.holding[color][cpiece] > 0 self.holding[color][cpiece] -= 1 elif self.variant == ATOMICCHESS: apieces = self.hist_exploding_around.pop() for acord, apiece, acolor in apieces: self._addPiece (acord, apiece, acolor) self.pieceCount[acolor][apiece] += 1 # Put back piece captured by enpassant if flag == ENPASSANT: epcord = color == WHITE and tcord - 8 or tcord + 8 self._addPiece (epcord, PAWN, opcolor) self.pieceCount[opcolor][PAWN] += 1 if self.variant == CRAZYHOUSECHESS: assert self.holding[color][PAWN] > 0 self.holding[color][PAWN] -= 1 elif self.variant == ATOMICCHESS: apieces = self.hist_exploding_around.pop() for acord, apiece, acolor in apieces: self._addPiece (acord, apiece, acolor) self.pieceCount[acolor][apiece] += 1 # Un-promote pawn if flag in PROMOTIONS: tpiece = PAWN self.pieceCount[color][flag-2] -= 1 self.pieceCount[color][PAWN] +=1 # Put back moved piece if flag == DROP: self.holding[color][tpiece] += 1 self.pieceCount[color][tpiece] -= 1 else: if not (self.variant == ATOMICCHESS and (cpiece != EMPTY or flag == ENPASSANT)): self._addPiece (fcord, tpiece, color) if self.variant in DROP_VARIANTS: if flag != DROP: if self.promoted[tcord] and (not flag in PROMOTIONS): self.promoted[fcord] = 1 if self.capture_promoting: self.promoted[tcord] = 1 else: self.promoted[tcord] = 0 self.capture_promoting = self.hist_capture_promoting.pop() if self.variant == CAMBODIANCHESS: self.is_first_move = self.hist_is_first_move.pop() self.setColor(color) self.checked = self.hist_checked.pop() self.opchecked = self.hist_opchecked.pop() self.enpassant = self.hist_enpassant.pop() self.castling = self.hist_castling.pop() self.hash = self.hist_hash.pop() self.fifty = self.hist_fifty.pop() self.plyCount -= 1 def __hash__ (self): return self.hash def __eq__ (self, other): return isinstance(other, LBoard) and \ self.fen_was_applied and other.fen_was_applied and \ self.hash == other.hash and self.plyCount == other.plyCount def reprCastling (self): if not self.castling: return "-" else: strs = [] if self.variant == FISCHERRANDOMCHESS: if self.castling & W_OO: strs.append(reprCord[self.ini_rooks[0][1]][0].upper()) if self.castling & W_OOO: strs.append(reprCord[self.ini_rooks[0][0]][0].upper()) if self.castling & B_OO: strs.append(reprCord[self.ini_rooks[1][1]][0]) if self.castling & B_OOO: strs.append(reprCord[self.ini_rooks[1][0]][0]) else: if self.castling & W_OO: strs.append("K") if self.castling & W_OOO: strs.append("Q") if self.castling & B_OO: strs.append("k") if self.castling & B_OOO: strs.append("q") return "".join(strs) def prepr(self, ascii=False): if not self.fen_was_applied: return("LBoard without applied FEN") b = "#" + reprColor[self.color] + " " b += self.reprCastling() + " " b += self.enpassant != None and reprCord[self.enpassant] or "-" b += "\n# " rows = [self.arBoard[i:i+8] for i in range(0,64,8)][::-1] for r, row in enumerate(rows): for i, piece in enumerate(row): if piece != EMPTY: if bitPosArray[(7-r)*8+i] & self.friends[WHITE]: assert self.boards[WHITE][piece], "self.boards doesn't match self.arBoard !!!" sign = reprSign[piece] if ascii else FAN_PIECES[WHITE][piece] else: assert self.boards[BLACK][piece], "self.boards doesn't match self.arBoard !!!" sign = reprSign[piece].lower() if ascii else FAN_PIECES[BLACK][piece] b += sign else: b += "." b += " " b += "\n# " if self.variant in DROP_VARIANTS: for color in (BLACK, WHITE): holding = self.holding[color] b += "\n# [%s]" % "".join([reprSign[piece] if ascii else FAN_PIECES[color][piece]*holding[piece] \ for piece in holding if holding[piece]>0]) return b def __repr__ (self): b = self.prepr() return b if PY3 else b.encode('utf8') def asFen (self, enable_bfen=True): fenstr = [] rows = [self.arBoard[i:i+8] for i in range(0,64,8)][::-1] for r, row in enumerate(rows): empty = 0 for i, piece in enumerate(row): if piece != EMPTY: if empty > 0: fenstr.append(str(empty)) empty = 0 if self.variant in (CAMBODIANCHESS, MAKRUKCHESS): sign = reprSignMakruk[piece] elif self.variant == SITTUYINCHESS: sign = reprSignSittuyin[piece] else: sign = reprSign[piece] if bitPosArray[(7-r)*8+i] & self.friends[WHITE]: sign = sign.upper() else: sign = sign.lower() fenstr.append(sign) if self.variant in (BUGHOUSECHESS, CRAZYHOUSECHESS): if self.promoted[r*8+i]: fenstr.append("~") else: empty += 1 if empty > 0: fenstr.append(str(empty)) if r != 7: fenstr.append("/") if self.variant in DROP_VARIANTS: holding_pieces = [] for color in (BLACK, WHITE): holding = self.holding[color] for piece in holding: if holding[piece] > 0: if self.variant == SITTUYINCHESS: sign = reprSignSittuyin[piece] else: sign = reprSign[piece] sign = sign.upper() if color == WHITE else sign.lower() holding_pieces.append(sign*holding[piece]) if holding_pieces: if enable_bfen: fenstr.append("/") fenstr += holding_pieces else: fenstr.append("[") fenstr += holding_pieces fenstr.append("]") fenstr.append(" ") fenstr.append(self.color == WHITE and "w" or "b") fenstr.append(" ") if self.variant == CAMBODIANCHESS: cast = "" if self.is_first_move[KING][WHITE]: cast += "D" if self.is_first_move[QUEEN][WHITE]: cast += "E" if self.is_first_move[KING][BLACK]: cast += "d" if self.is_first_move[QUEEN][BLACK]: cast += "e" if not cast: cast = "-" fenstr.append(cast) else: fenstr.append(self.reprCastling()) fenstr.append(" ") if not self.enpassant: fenstr.append("-") else: fenstr.append(reprCord[self.enpassant]) fenstr.append(" ") fenstr.append(str(self.fifty)) fenstr.append(" ") fullmove = (self.plyCount)//2 + 1 fenstr.append(str(fullmove)) return "".join(fenstr) def clone (self): copy = LBoard(self.variant) copy.blocker = self.blocker copy.friends = self.friends[:] copy.kings = self.kings[:] copy.boards = [self.boards[WHITE][:], self.boards[BLACK][:]] copy.arBoard = self.arBoard[:] copy.pieceCount = [self.pieceCount[WHITE][:], self.pieceCount[BLACK][:]] copy.color = self.color copy.plyCount = self.plyCount copy.hasCastled = self.hasCastled[:] copy.enpassant = self.enpassant copy.castling = self.castling copy.hash = self.hash copy.pawnhash = self.pawnhash copy.fifty = self.fifty copy.checked = self.checked copy.opchecked = self.opchecked copy.hist_move = self.hist_move[:] copy.hist_tpiece = self.hist_tpiece[:] copy.hist_enpassant = self.hist_enpassant[:] copy.hist_castling = self.hist_castling[:] copy.hist_hash = self.hist_hash[:] copy.hist_fifty = self.hist_fifty[:] copy.hist_checked = self.hist_checked[:] copy.hist_opchecked = self.hist_opchecked[:] if self.variant == FISCHERRANDOMCHESS: copy.ini_kings = self.ini_kings[:] copy.ini_rooks = (self.ini_rooks[0][:], self.ini_rooks[1][:]) elif self.variant in (WILDCASTLECHESS, WILDCASTLESHUFFLECHESS): copy.ini_kings = self.ini_kings[:] copy.fin_kings = (self.fin_kings[0][:], self.fin_kings[1][:]) copy.fin_rooks = (self.fin_rooks[0][:], self.fin_rooks[1][:]) elif self.variant in DROP_VARIANTS: copy.promoted = self.promoted[:] copy.holding = (self.holding[0].copy(), self.holding[1].copy()) copy.capture_promoting = self.capture_promoting copy.hist_capture_promoting = self.hist_capture_promoting[:] elif self.variant == ATOMICCHESS: copy.hist_exploding_around = [a[:] for a in self.hist_exploding_around] elif self.variant == CAMBODIANCHESS: copy.ini_kings = self.ini_kings copy.ini_queens = self.ini_queens copy.is_first_move = {KING: self.is_first_move[KING][:], \ QUEEN: self.is_first_move[QUEEN][:]} copy.hist_is_first_move = self.hist_is_first_move[:] copy.fen_was_applied = self.fen_was_applied return copy pychess-0.12.2/lib/pychess/Utils/lutils/leval.py0000755000175000017470000005234712641567764022125 0ustar tamasusers00000000000000from __future__ import absolute_import ################################################################################ # The purpose of this module, is to give a certain position a score. The # # greater the score, the better the position # ################################################################################ from pychess.Utils.const import * from .ldata import * from .LBoard import LBoard from .lsort import staticExchangeEvaluate from .lmovegen import newMove from ctypes import create_string_buffer, memset from struct import Struct, pack_into, unpack_from #from random import randint randomval = 0 #randint(8,12)/10. def evaluateComplete (board, color): """ A detailed evaluation function, taking into account several positional factors """ s, phase = evalMaterial (board, color) if board.variant in (LOSERSCHESS, SUICIDECHESS): return s s += evalBishops (board, color, phase) - evalBishops (board, 1-color, phase) s += evalRooks (board, color, phase) - evalRooks (board, 1-color, phase) s += evalDoubleQR7 (board, color, phase) - evalDoubleQR7 (board, 1-color, phase) s += evalKing (board, color, phase) - evalKing (board, 1-color, phase) s += evalKingTropism (board, color, phase) - evalKingTropism (board, 1-color, phase) if board.variant in ASEAN_VARIANTS: return s s += evalDev (board, color, phase) - evalDev (board, 1-color, phase) if board.variant == ATOMICCHESS: return s pawnScore, passed, weaked = cacheablePawnInfo (board, phase) s += pawnScore if color == WHITE else -pawnScore s += evalPawnStructure (board, color, phase, passed, weaked) - evalPawnStructure (board, 1-color, phase, passed, weaked) s += evalTrappedBishops (board, color) s += randomval return s ################################################################################ # evalMaterial # ################################################################################ def evalMaterial (board, color): pieceCount = board.pieceCount opcolor = 1-color material = [0, 0] if board.variant == CRAZYHOUSECHESS: for piece in range(PAWN, KING): material[WHITE] += CRAZY_PIECE_VALUES[piece] * pieceCount[WHITE][piece] material[BLACK] += CRAZY_PIECE_VALUES[piece] * pieceCount[BLACK][piece] material[WHITE] += CRAZY_PIECE_VALUES[piece] * board.holding[WHITE][piece] material[BLACK] += CRAZY_PIECE_VALUES[piece] * board.holding[BLACK][piece] elif board.variant == LOSERSCHESS: for piece in range(PAWN, KING): material[WHITE] += pieceCount[WHITE][piece] material[BLACK] += pieceCount[BLACK][piece] elif board.variant == SUICIDECHESS: for piece in range(PAWN, KING+1): material[WHITE] += pieceCount[WHITE][piece] material[BLACK] += pieceCount[BLACK][piece] elif board.variant == ATOMICCHESS: for piece in range(PAWN, KING+1): material[WHITE] += ATOMIC_PIECE_VALUES[piece] * pieceCount[WHITE][piece] material[BLACK] += ATOMIC_PIECE_VALUES[piece] * pieceCount[BLACK][piece] elif board.variant in ASEAN_VARIANTS: for piece in range(PAWN, KING+1): material[WHITE] += ASEAN_PIECE_VALUES[piece] * pieceCount[WHITE][piece] material[BLACK] += ASEAN_PIECE_VALUES[piece] * pieceCount[BLACK][piece] else: for piece in range(PAWN, KING): material[WHITE] += PIECE_VALUES[piece] * pieceCount[WHITE][piece] material[BLACK] += PIECE_VALUES[piece] * pieceCount[BLACK][piece] phase = max(1, 8 - (material[WHITE] + material[BLACK]) // 1150) # If both sides are equal, we don't need to compute anything! if material[BLACK] == material[WHITE]: return 0, phase matTotal = sum(material) # Who is leading the game, material-wise? if material[color] > material[opcolor]: leading = color else: leading = opcolor if board.variant in (LOSERSCHESS, SUICIDECHESS): val = material[leading] - material[1-leading] if leading == 1-color: return val, phase return -val, phase pawns = pieceCount[leading][PAWN] matDiff = material[leading] - material[1-leading] val = min(2400, matDiff) + \ (matDiff * (12000-matTotal) * pawns) // (6400 * (pawns+1)) if leading == color: return val, phase return -val, phase ################################################################################ # evalKingTropism # ################################################################################ pawnTropism = [[0]*64 for i in range(64)] bishopTropism = [[0]*64 for i in range(64)] knightTropism = [[0]*64 for i in range(64)] rookTropism = [[0]*64 for i in range(64)] queenTropism = [[0]*64 for i in range(64)] for pcord in range(64): for kcord in range(pcord+1, 64): pawnTropism[pcord][kcord] = pawnTropism[kcord][pcord] = \ (14 - taxicab[pcord][kcord])**2 * 10/169 # 0 - 10 knightTropism[pcord][kcord] = knightTropism[kcord][pcord] = \ (6-distance[KNIGHT][pcord][kcord])**2 * 2 # 0 - 50 bishopTropism[pcord][kcord] = bishopTropism[kcord][pcord] = \ (14 - distance[BISHOP][pcord][kcord] * sdistance[pcord][kcord])**2 * 30//169 # 0 - 30 rookTropism[pcord][kcord] = rookTropism[kcord][pcord] = \ (14 - distance[ROOK][pcord][kcord] * sdistance[pcord][kcord])**2 * 40//169 # 0 - 40 queenTropism[pcord][kcord] = queenTropism[kcord][pcord] = \ (14 - distance[QUEEN][pcord][kcord] * sdistance[pcord][kcord])**2 * 50//169 # 0 - 50 tropisms = { PAWN: pawnTropism, KNIGHT: knightTropism, BISHOP: bishopTropism, ROOK: rookTropism, QUEEN: queenTropism } def evalKingTropism (board, color, phase): """ All other things being equal, having your Knights, Queens and Rooks close to the opponent's king is a good thing """ _tropisms = tropisms _lsb = lsb opcolor = 1-color pieces = board.boards[color] oppieces = board.boards[opcolor] opking = board.kings[opcolor] #if phase >= 4 or not oppieces[QUEEN]: #opking = board.kings[opcolor] #else: #opking = firstBit(oppieces[QUEEN]) score = 0 for piece in range(KNIGHT, KING): # for piece in range(PAWN, KING): bitboard = pieces[piece] tropism = _tropisms[piece] # inlined iterBits() while bitboard: bit = bitboard & -bitboard score += tropism[_lsb[bit]][opking] bitboard -= bit return score ################################################################################ # evalPawnStructure # ################################################################################ # For pawn hash, don't use buckets. Store: # key high 16 bits of pawn hash key # score score from white's point of view # passed bitboard of passed pawns # weaked bitboard of weak pawns pawnEntryType = Struct('=H h Q Q') PAWN_HASH_SIZE = 16384 PAWN_PHASE_KEY = (0x343d, 0x055d, 0x3d3c, 0x1a1c, 0x28aa, 0x19ee, 0x1538, 0x2a99) pawntable = create_string_buffer(PAWN_HASH_SIZE * pawnEntryType.size) def clearPawnTable(): memset(pawntable, 0, PAWN_HASH_SIZE * pawnEntryType.size) def probePawns (board, phase): index = (board.pawnhash % PAWN_HASH_SIZE) ^ PAWN_PHASE_KEY[phase-1] key, score, passed, weaked = pawnEntryType.unpack_from(pawntable, index * pawnEntryType.size) if key == (board.pawnhash >> 14) & 0xffff: return score, passed, weaked return None def recordPawns (board, phase, score, passed, weaked): index = (board.pawnhash % PAWN_HASH_SIZE) ^ PAWN_PHASE_KEY[phase-1] key = (board.pawnhash >> 14) & 0xffff pawnEntryType.pack_into(pawntable, index * pawnEntryType.size, key, score, passed, weaked) def cacheablePawnInfo (board, phase): entry = probePawns (board, phase) if entry: return entry score = 0 passed = 0 weaked = 0 for color in WHITE, BLACK: opcolor = 1-color pawns = board.boards[color][PAWN] oppawns = board.boards[opcolor][PAWN] nfile = [0]*8 pScoreBoard = pawnScoreBoard[color] for cord in iterBits(pawns): score += pScoreBoard[cord] * 2 # Passed pawns if not oppawns & passedPawnMask[color][cord]: if (color == WHITE and not fromToRay[cord][cord|56] & pawns) or\ (color == BLACK and not fromToRay[cord][cord&7] & pawns): passed |= bitPosArray[cord] score += (passedScores[color][cord>>3] * phase) // 12 # Backward pawns backward = False if color == WHITE: i = cord + 8 else: i = cord - 8 ptype = color == WHITE and PAWN or BPAWN opptype = color == BLACK and PAWN or BPAWN if not (passedPawnMask[opcolor][i] & ~fileBits[cord&7] & pawns) and\ board.arBoard[i] != PAWN: n1 = bin(pawns & moveArray[opptype][i]).count("1") n2 = bin(oppawns & moveArray[ptype][i]).count("1") if n1 < n2: backward = True if not backward and bitPosArray[cord] & brank7[opcolor]: i = i + (color == WHITE and 8 or -8) if not (passedPawnMask[opcolor][i] & ~fileBits[1] & pawns): n1 = bin(pawns & moveArray[opptype][i]).count("1") n2 = bin(oppawns & moveArray[ptype][i]).count("1") if n1 < n2: backward = True if not backward and bitPosArray[cord] & brank7[opcolor]: i = i + (color == WHITE and 8 or -8) if not (passedPawnMask[opcolor][i] & ~fileBits[1] & pawns): n1 = bin(pawns & moveArray[opptype][i]).count("1") n2 = bin(oppawns & moveArray[ptype][i]).count("1") if n1 < n2: backward = True if backward: weaked |= bitPosArray[cord] score += -(8+phase) # Backward pawn penalty # Pawn base under attack if moveArray[ptype][cord] & oppawns and \ moveArray[ptype][cord] & pawns: score += -18 # Increment file count for isolani & doubled pawn evaluation nfile[cord&7] += 1 for i in range(8): # Doubled pawns if nfile[i] > 1: score += -(8+phase) # Isolated pawns if nfile[i] and not pawns & isolaniMask[i]: if not fileBits[i] & oppawns: # Isolated on a half-open file score += isolani_weaker[i] * nfile[i] else: # Normal isolated pawn score += isolani_normal[i] * nfile[i] weaked |= pawns & fileBits[i] # Penalize having eight pawns if board.pieceCount[color][PAWN] == 8: score -= 10 # Detect stonewall formation in our pawns if stonewall[color] & pawns == stonewall[color]: score += 10 # Penalize Locked pawns n = bin((pawns >> 8) & oppawns & lbox).count("1") score -= n * 10 # Switch point of view when switching colors score = -score recordPawns (board, phase, score, passed, weaked) return score, passed, weaked def evalPawnStructure (board, color, phase, passed, weaked): """ Pawn evaluation is based on the following factors: 1. Pawn square tables. 2. Passed pawns. 3. Backward pawns. 4. Pawn base under attack. 5. Doubled pawns 6. Isolated pawns 7. Connected passed pawns on 6/7th rank. 8. Unmoved & blocked d, e pawn 9. Passed pawn which cannot be caught. 10. Pawn storms. Notice: The function has better precicion for current player """ boards = board.boards[color] if not boards[PAWN]: return 0 king = board.kings[color] pawns = boards[PAWN] opcolor = 1-color opking = board.kings[opcolor] opboards = board.boards[opcolor] oppawns = opboards[PAWN] score = 0 passed &= pawns weaked &= pawns ############################################################################ # This section of the pawn code cannot be saved into the pawn hash as # # they depend on the position of other pieces. So they have to be # # calculated again. # ############################################################################ if passed: # Connected passed pawns on 6th or 7th rank t = passed & brank67[color] opMajorCount = 0 for p in range(KNIGHT, KING): opMajorCount += board.pieceCount[opcolor][p] if t and opMajorCount == 1: n1 = FILE(opking) n2 = RANK(opking) for f in range(7): if t & fileBits[f] and t & fileBits[f+1] and \ (n1 < f-1 or n1 > f+1 or (color == WHITE and n2 < 4) or \ (color == BLACK and n2 > 3)): score += 50 # Enemy has no pieces & King is outcolor of passed pawn square if not opMajorCount: for cord in iterBits(passed): if board.color == color: if not squarePawnMask[color][cord] & opboards[KING]: score += passedScores[color][RANK(cord)] else: if not moveArray[KING][opking] & squarePawnMask[color][cord]: score += passedScores[color][RANK(cord)] # Estimate if any majors are able to hunt us down for pawn in iterBits(passed): found_hunter = False if color == WHITE: prom_cord = 7 << 3 | FILE(pawn) else: prom_cord = FILE(pawn) distance_to_promotion = distance[PAWN][pawn][prom_cord] for piece in range(KNIGHT, KING+1): for cord in iterBits(opboards[piece]): hunter_distance = distance[piece][cord][prom_cord] if hunter_distance <= distance_to_promotion: found_hunter = True break if found_hunter: break if not found_hunter: score += passedScores[color][RANK(pawn)] // 5 # Penalize Pawn on d2,e2/d7,e7 is blocked blocker = board.blocker if color == WHITE and ((pawns & d2e2[WHITE]) >> 8) & blocker: score -= 48 elif color == BLACK and ((pawns & d2e2[BLACK]) << 8) & blocker: score -= 48 # If both colors are castled on different colors, bonus for pawn storms if abs(FILE(king)-FILE(opking)) >= 4 and phase < 6: n1 = FILE(opking) p = (isolaniMask[n1] | fileBits[n1]) & pawns score += sum(10 * (5 - distance[KING][c][opking]) for c in iterBits(p)) return score ################################################################################ # evalBateries # ################################################################################ def evalDoubleQR7 (board, color, phase): """ Tests for QR, RR, QB and BB combos on the 7th rank. These are dangerous to kings, and good at killing pawns """ opcolor = 1-board.color boards = board.boards[color] opboards = board.boards[opcolor] if bin((boards[QUEEN] | boards[ROOK]) & brank7[color]).count("1") >= 2 and \ (opboards[KING] & brank8[color] or opboards[PAWN] & brank7[color]): return 30 return 0 def evalKing (board, color, phase): # Should avoid situations like those: # r - - - n K - - # which makes forks more easy # and # R - - - K - - - # and # - - - - - - - - # - - - K - - - - # - - - - - - - - # - - - - - - - - # - - - - - - B - # which might turn bad # Also being check should be avoided, like # - q - - - K - r # and # - - - - - n - - # - - - K - - - R king = board.kings[color] # If we are in endgame, we want our king in the center, and theirs far away if phase >= 6: return endingKing[king] # else if castled, prefer having some pawns in front elif FILE(king) not in (3,4) and RANK(king) in (0,8): if color == WHITE: if FILE(king) < 3: wall1 = frontWall[color][B1] else: wall1 = frontWall[color][G1] wall2 = wall1 >> 8 else: if FILE(king) < 3: wall1 = frontWall[color][B8] else: wall1 = frontWall[color][G8] wall2 = wall1 << 8 pawns = board.boards[color][PAWN] total_in_front = bin(wall1|wall2&pawns).count("1") numbermod = (0,3,6,9,7,5,3)[total_in_front] s = bin(wall1&pawns).count("1") * 2 + bin(wall2&pawns).count("1") return (s * numbermod * 5) // 6 return 0 def evalDev (board, color, phase): """ Calculate the development score for side (for opening only). Penalize the following. . Uncastled and cannot castled . Early queen move. - bad wing pawns """ # If we are castled or beyond the 20th move, no more evalDev if board.plyCount >= 38: return 0 score = 0 if not board.hasCastled[color]: boards = board.boards[color] pawns = boards[PAWN] # We don't encourage castling, but it should always be possible if not board.castling & CAS_FLAGS[color][0]: score -= 40 if not board.castling & CAS_FLAGS[color][1]: score -= 50 # Should keep queen home cord = firstBit(boards[QUEEN]) if cord != D1 + 56*color: score -= 30 qpawns = max(qwingpawns1[color] & pawns, qwingpawns2[color] & pawns) kpawns = max(kwingpawns1[color] & pawns, kwingpawns2[color] & pawns) if qpawns != 2 and kpawns != 2: # Structure destroyed in both sides score -= 35 else: # Discourage any wing pawn moves score += (qpawns+kpawns) *6 return score def evalBishops (board, color, phase): opcolor = 1-color bishops = board.boards[color][BISHOP] if not bishops: return 0 pawns = board.boards[color][PAWN] oppawns = board.boards[opcolor][PAWN] arBoard = board.arBoard score = 0 # Avoid having too many pawns on you bishop's color. # In late game phase, add a bonus for enemy pieces on your bishop's color. if board.pieceCount[color][BISHOP] == 1: squareMask = WHITE_SQUARES if (bishops & WHITE_SQUARES) else BLACK_SQUARES score = - bin(pawns & squareMask).count("1") \ - bin(oppawns & squareMask).count("1")//2 if phase > 6: score += bin(board.friends[1-color] & squareMask).count("1") return score def evalTrappedBishops (board, color): """ Check for bishops trapped at A2/H2/A7/H7 """ _bitPosArray = bitPosArray wbishops = board.boards[WHITE][BISHOP] bbishops = board.boards[BLACK][BISHOP] wpawns = board.boards[WHITE][PAWN] bpawns = board.boards[BLACK][PAWN] score = 0 if bbishops: if bbishops & _bitPosArray[A2] and wpawns & _bitPosArray[B3]: see = staticExchangeEvaluate(board, newMove(A2,B3)) if see < 0: score -= see if bbishops & _bitPosArray[H2] and wpawns & _bitPosArray[G3]: see = staticExchangeEvaluate(board, newMove(H2,G3)) if see < 0: score -= see if wbishops: if wbishops & _bitPosArray[A7] and bpawns & _bitPosArray[B6]: see = staticExchangeEvaluate(board, newMove(A7,B6)) if see < 0: score += see if wbishops & _bitPosArray[H7] and bpawns & _bitPosArray[G6]: see = staticExchangeEvaluate(board, newMove(H7,G6)) if see < 0: score += see return score if color == WHITE else -score def evalRooks (board, color, phase): """ rooks on open/half-open files """ opcolor = 1-color boards = board.boards[color] rooks = boards[ROOK] if not rooks: return 0 opboards = board.boards[opcolor] opking = board.kings[opcolor] score = 0 if phase < 7: for cord in iterBits(rooks): file = cord & 7 if not boards[PAWN] & fileBits[file]: if file == 5 and opking & 7 >= 4: score += 40 score += 5 if not boards[PAWN] & fileBits[file]: score += 6 return score pychess-0.12.2/lib/pychess/Utils/lutils/ldata.py0000755000175000017470000005140112641567764022075 0ustar tamasusers00000000000000from __future__ import absolute_import from functools import reduce from operator import or_ from pychess.Utils.const import * #from pychess.Utils.lutils.lmove import RANK, FILE from .bitboard import * def RANK (cord): return cord >> 3 def FILE (cord): return cord & 7 ################################################################################ ################################################################################ ## Evaluating constants ## ################################################################################ ################################################################################ PAWN_VALUE = 100 KNIGHT_VALUE = 300 BISHOP_VALUE = 330 ROOK_VALUE = 500 QUEEN_VALUE = 900 KING_VALUE = 2000 PIECE_VALUES = [0, PAWN_VALUE, KNIGHT_VALUE, BISHOP_VALUE, ROOK_VALUE, QUEEN_VALUE, KING_VALUE] ASEAN_PIECE_VALUES = (0, 100, 450, 300, 630, 180, 2000) CRAZY_PIECE_VALUES = (0, 100, 200, 240, 240, 380, 2000) ATOMIC_PIECE_VALUES = (0, 100, 90, 0, 220, 850, 2000) # Maximum possible search depth. The hash structure only allows 8-bit depths. MAXPLY = 10 # Maximum possible score. Mate in n ply is +/- (MATE_VALUE-n). # The hash structure only allows signed 16-bit scores. MATE_VALUE = MAXVAL = 32767 def VALUE_AT_PLY(val, ply): """ Return the value of scoring val a given number of plies into the future. """ if val >= +32512: return val - ply if val <= -32512: return val + ply return val # How many points does it give to have the piece standing i cords from the # opponent king pawnTScale = [0, 40, 20, 12, 9, 6, 4, 2, 1, 0] bishopTScale = [0, 50, 25, 15, 7, 5, 3, 2, 2, 1] knightTScale = [0, 100, 50, 35, 10, 3, 2, 2, 1, 1] rookTScale = [0, 50, 40, 15, 5, 2, 1, 1, 1, 0] queenTScale = [0, 100, 60, 20, 10, 7, 5, 4, 3, 2] passedScores = ( ( 0, 48, 48, 120, 144, 192, 240, 0 ), ( 0, 240, 192, 144, 120, 48, 48, 0 ) ) # Penalties for one or more isolated pawns on a given file isolani_normal = ( -8, -10, -12, -14, -14, -12, -10, -8 ) # Penalties if the file is half-open (i.e. no enemy pawns on it) isolani_weaker = ( -22, -24, -26, -28, -28, -26, -24, -22 ) ############################################################################### # Distance boards for different pieces # ############################################################################### taxicab = [[0]*64 for i in range(64)] sdistance = [[0]*64 for i in range(64)] for fcord in range(64): for tcord in range(fcord+1, 64): fx = FILE(fcord) fy = RANK(fcord) tx = FILE(tcord) ty = RANK(tcord) taxicab[fcord][tcord] = taxicab[fcord][tcord] = abs(fx-tx) + abs(fy-ty) sdistance[fcord][tcord] = sdistance[fcord][tcord] = min(abs(fx-tx), abs(fy-ty)) distance = [[[0]*64 for i in range(64)] for j in range(KING+1)] distance[EMPTY] = None distance[KING] = sdistance distance[PAWN] = sdistance # Special table for knightdistances knightDistance = [ 6, 5, 4, 5, 4, 5, 4, 5, 4, 5, 4, 5, 4, 5, 6, 5, 4, 5, 4, 3, 4, 3, 4, 3, 4, 3, 4, 5, 4, 5, 4, 5, 4, 3, 4, 3, 4, 3, 4, 3, 4, 3, 4, 5, 4, 5, 4, 3, 4, 3, 2, 3, 2, 3, 2, 3, 4, 3, 4, 5, 4, 3, 4, 3, 2, 3, 2, 3, 2, 3, 2, 3, 4, 3, 4, 5, 4, 3, 2, 3, 4, 1, 2, 1, 4, 3, 2, 3, 4, 5, 4, 3, 4, 3, 2, 1, 2, 3, 2, 1, 2, 3, 4, 3, 4, 5, 4, 3, 2, 3, 2, 3, 0, 3, 2, 3, 2, 3, 4, 5, 4, 3, 4, 3, 2, 1, 2, 3, 2, 1, 2, 3, 4, 3, 4, 5, 4, 3, 2, 3, 4, 1, 2, 1, 4, 3, 2, 3, 4, 5, 4, 3, 4, 3, 2, 3, 2, 3, 2, 3, 2, 3, 4, 3, 4, 5, 4, 3, 4, 3, 2, 3, 2, 3, 2, 3, 4, 3, 4, 5, 4, 5, 4, 3, 4, 3, 4, 3, 4, 3, 4, 3, 4, 5, 4, 5, 4, 5, 4, 3, 4, 3, 4, 3, 4, 3, 4, 5, 4, 5, 6, 5, 4, 5, 4, 5, 4, 5, 4, 5, 4, 5, 4, 5, 6, ] # Calculate for fcord in range(64): frank = RANK(fcord) ffile = FILE(fcord) for tcord in range(fcord+1, 64): # Notice, that we skip fcord == tcord, as all fields are zero from # scratch in anyway trank = RANK(tcord) tfile = FILE(tcord) # Knight field = (7-frank+trank)*15 + 7-ffile+tfile distance[KNIGHT][tcord][fcord] = distance[KNIGHT][fcord][tcord] = \ knightDistance[field] # Rook if frank == trank or ffile == tfile: distance[ROOK][tcord][fcord] = distance[ROOK][fcord][tcord] = 1 else: distance[ROOK][tcord][fcord] = distance[ROOK][fcord][tcord] = 2 # Bishop if abs(frank-trank) == abs(ffile-tfile): distance[BISHOP][tcord][fcord] = distance[BISHOP][fcord][tcord] = 1 else: distance[BISHOP][tcord][fcord] = distance[BISHOP][fcord][tcord] = 2 # Queen if frank == trank or ffile == tfile or abs(frank-trank) == abs(ffile-tfile): distance[QUEEN][tcord][fcord] = distance[QUEEN][fcord][tcord] = 1 else: distance[QUEEN][tcord][fcord] = distance[QUEEN][fcord][tcord] = 2 # Special cases for knights in corners distance[KNIGHT][A1][B2] = distance[KNIGHT][B2][A1] = 4 distance[KNIGHT][H1][G2] = distance[KNIGHT][G2][H1] = 4 distance[KNIGHT][A8][B7] = distance[KNIGHT][B7][A8] = 4 distance[KNIGHT][H8][G7] = distance[KNIGHT][G7][H8] = 4 ############################################################################### # Boards used for evaluating ############################################################################### pawnScoreBoard = ( (0, 0, 0, 0, 0, 0, 0, 0, 5, 5, 5,-10,-10, 5, 5, 5, -2, -2, -2, 6, 6, -2, -2, -2, 0, 0, 0, 25, 25, 0, 0, 0, 2, 2, 12, 16, 16, 12, 2, 2, 4, 8, 12, 16, 16, 12, 4, 4, 4, 8, 12, 16, 16, 12, 4, 4, 0, 0, 0, 0, 0, 0, 0, 0), (0, 0, 0, 0, 0, 0, 0, 0, 4, 8, 12, 16, 16, 12, 4, 4, 4, 8, 12, 16, 16, 12, 4, 4, 2, 2, 12, 16, 16, 12, 2, 2, 0, 0, 0, 25, 25, 0, 0, 0, -2, -2, -2, 6, 6, -2, -2, -2, 5, 5, 5,-10,-10, 5, 5, 5, 0, 0, 0, 0, 0, 0, 0, 0) ) outpost = ( (0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 0, 0, 0, 1, 1, 1, 1, 1, 1, 0, 0, 0, 1, 1, 1, 1, 0, 0, 0, 0, 0, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0), (0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 0, 0, 0, 0, 0, 1, 1, 1, 1, 0, 0, 0, 1, 1, 1, 1, 1, 1, 0, 0, 0, 1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0) ) normalKing = ( 24, 24, 24, 16, 16, 0, 32, 32, 24, 20, 16, 12, 12, 16, 20, 24, 16, 12, 8, 4, 4, 8, 12, 16, 12, 8, 4, 0, 0, 4, 8, 12, 12, 8, 4, 0, 0, 4, 8, 12, 16, 12, 8, 4, 4, 8, 12, 16, 24, 20, 16, 12, 12, 16, 20, 24, 24, 24, 24, 16, 16, 0, 32, 32 ) endingKing = ( 0, 6, 12, 18, 18, 12, 6, 0, 6, 12, 18, 24, 24, 18, 12, 6, 12, 18, 24, 32, 32, 24, 18, 12, 18, 24, 32, 48, 48, 32, 24, 18, 18, 24, 32, 48, 48, 32, 24, 18, 12, 18, 24, 32, 32, 24, 18, 12, 6, 12, 18, 24, 24, 18, 12, 6, 0, 6, 12, 18, 18, 12, 6, 0 ) ############################################################################### # Maps for bitboards ############################################################################### d2e2 = (0x0018000000000000, 0x0000000000001800) brank7 = (0x000000000000FF00, 0x00FF000000000000) brank8 = (0x00000000000000FF, 0xFF00000000000000) brank67 = (0x0000000000FFFF00, 0x00FFFF0000000000) brank58 = (0x00000000FFFFFFFF, 0xFFFFFFFF00000000) brank48 = (0x000000FFFFFFFFFF, 0xFFFFFFFFFF000000) # Penalties if the file is half-open (i.e. no enemy pawns on it) isolani_weaker = (-22, -24, -26, -28, -28, -26, -24, -22) stonewall = [0, 0] # D4, E3, F4 # - - - - - - - - # - - - - - - - - # - - - - - - - - # - - - - - - - - # - - - # - # - - # - - - - # - - - # - - - - - - - - # - - - - - - - - stonewall[WHITE] = 0x81400000000 # D5, E6, F5 # - - - - - - - - # - - - - - - - - # - - - - # - - - # - - - # - # - - # - - - - - - - - # - - - - - - - - # - - - - - - - - # - - - - - - - - stonewall[BLACK] = 0x81400000000 # - - - - - - - - # - - - - - - - - # - - - - - - - - # - - - - - - - - # - - - - - - - - # - # - - - - # - # # # - - - - # # # - - - - - - - - qwingpawns1 = ( bitPosArray[A2] | bitPosArray[B2], bitPosArray[A7] | bitPosArray[B7] ) qwingpawns2 = ( bitPosArray[A2] | bitPosArray[B3], bitPosArray[A7] | bitPosArray[B6] ) kwingpawns1 = ( bitPosArray[G2] | bitPosArray[H2], bitPosArray[G7] | bitPosArray[H7] ) kwingpawns2 = ( bitPosArray[G3] | bitPosArray[H2], bitPosArray[G6] | bitPosArray[H7] ) ################################################################################ # Ranks and files # ################################################################################ rankBits = [255 << i*8 for i in range(7,-1,-1)] fileBits = [0x0101010101010101 << i for i in range(7,-1,-1)] ################################################################################ ################################################################################ ## Bit boards ## ################################################################################ ################################################################################ WHITE_SQUARES = 0x55AA55AA55AA55AA BLACK_SQUARES = 0xAA55AA55AA55AA55 # - - - - - - - - # - - - - - - - - # - - - - - - - - # - - - # # - - - # - - - # # - - - # - - - - - - - - # - - - - - - - - # - - - - - - - - CENTER_FOUR = 0x0000001818000000 # - - - - - - - - # - - - - - - - - # - - # # # # - - # - - # # # # - - # - - # # # # - - # - - # # # # - - # - - - - - - - - # - - - - - - - - sbox = 0x00003C3C3C3C0000 # - - - - - - - - # - # # # # # # - # - # # # # # # - # - # # # # # # - # - # # # # # # - # - # # # # # # - # - # # # # # # - # - - - - - - - - lbox = 0x007E7E7E7E7E7E00 # - - - - - # # # # - - - - - # # # # - - - - - # # # # - - - - - # # # # - - - - - # # # # - - - - - # # # # - - - - - # # # # - - - - - # # # right = fileBits[5] | fileBits[6] | fileBits[7] # # # # - - - - - # # # # - - - - - # # # # - - - - - # # # # - - - - - # # # # - - - - - # # # # - - - - - # # # # - - - - - # # # # - - - - - left = fileBits[0] | fileBits[1] | fileBits[2] ################################################################################ # Generate the move bitboards. For e.g. the bitboard for all # # the moves of a knight on f3 is given by MoveArray[knight][21]. # ################################################################################ dir = [ None, [ 9, 11 ], # Only capture moves are included [ -21, -19, -12, -8, 8, 12, 19, 21 ], [ -11, -9, 9, 11 ], [ -10, -1, 1, 10 ], [ -11, -10, -9, -1, 1, 9, 10, 11 ], [ -11, -10, -9, -1, 1, 9, 10, 11 ], [ -9, -11 ], [ -11, -9, 9, 10, 11 ], [ -11, -10, -9, 9, 11 ], [ -11, -9, 9, 11 ], # Following are for front and back walls. Will be removed from list after # the loop [ 9, 10, 11], [ -9, -10, -11] ] sliders += [False, False] map = [ -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 0, 1, 2, 3, 4, 5, 6, 7, -1, -1, 8, 9, 10, 11, 12, 13, 14, 15, -1, -1, 16, 17, 18, 19, 20, 21, 22, 23, -1, -1, 24, 25, 26, 27, 28, 29, 30, 31, -1, -1, 32, 33, 34, 35, 36, 37, 38, 39, -1, -1, 40, 41, 42, 43, 44, 45, 46, 47, -1, -1, 48, 49, 50, 51, 52, 53, 54, 55, -1, -1, 56, 57, 58, 59, 60, 61, 62, 63, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1 ] moveArray = [[0]*64 for i in range(len(dir))] # moveArray[len(dir)][64] for piece in range(1,len(dir)): for fcord in range(120): f = map[fcord] if f == -1: # We only generate moves for squares inside the board continue # Create a new bitboard b = 0 for d in dir[piece]: tcord = fcord while True: tcord += d t = map[tcord] if t == -1: # If we landed outside of board, there is no more to look # for break b = setBit (b, t) if not sliders[piece]: # If we are a slider, we should not break, but add the dir # value once again break moveArray[piece][f] = b frontWall = (moveArray[-2], moveArray[-1]) del moveArray[-1]; del moveArray[-1] del dir[-1]; del dir[-1] del sliders[-1]; del sliders[-1] ################################################################################ # For each square, there are 8 rays. The first 4 rays are diagonals # # for the bishops and the next 4 are file/rank for the rooks. # # The queen uses all 8 rays. # # These rays are used for move generation rather than MoveArray[]. # # Also initialize the directions[][] array. directions[f][t] returns # # the index into rays[f] array allow us to find the ray in that direction. # ################################################################################ directions = [[-1]*64 for i in range(64)] # directions[64][64] rays = [[0]*8 for i in range(64)] # rays[64][8] for fcord in range(120): f = map[fcord] if f == -1: continue ray = -1 for piece in BISHOP, ROOK: for d in dir[piece]: ray += 1 b = 0 tcord = fcord while True: tcord += d t = map[tcord] if t == -1: break rays[f][ray] = setBit (rays[f][ray], t) directions[f][t] = ray ################################################################################ # The FromToRay[b2][f6] gives the diagonal ray from c3 to f6; # # It also produces horizontal/vertical rays as well. If no # # ray is possible, then a 0 is returned. # ################################################################################ fromToRay = [[0]*64 for i in range(64)] # fromToRay[64][64] for piece in BISHOP, ROOK: for fcord in range (120): f = map[fcord] if f == -1: continue for d in dir[piece]: tcord = fcord t = map[tcord] while True: b = fromToRay[f][t] tcord += d t = map[tcord] if t == -1: break fromToRay[f][t] = setBit (fromToRay[f][t], t) fromToRay[f][t] |= b ################################################################################ # The PassedPawnMask variable is used to determine if a pawn is passed. # # This mask is basically all 1's from the square in front of the pawn to # # the promotion square, also duplicated on both files besides the pawn # # file. Other bits will be set to zero. # # E.g. PassedPawnMask[white][b3] = 1's in a4-c4-c8-a8 rect, 0 otherwise. # ################################################################################ passedPawnMask = [[0]*64, [0]*64] # Do for white pawns first for cord in range(64): passedPawnMask[WHITE][cord] = rays[cord][7] passedPawnMask[BLACK][cord] = rays[cord][4] if cord & 7 != 0: # If file is not left most passedPawnMask[WHITE][cord] |= rays[cord-1][7] passedPawnMask[BLACK][cord] |= rays[cord-1][4] if cord & 7 != 7: # If file is not right most passedPawnMask[WHITE][cord] |= rays[cord+1][7] passedPawnMask[BLACK][cord] |= rays[cord+1][4] ################################################################################ # The IsolaniMask variable is used to determine if a pawn is an isolani. # # This mask is basically all 1's on files beside the file the pawn is on. # # Other bits will be set to zero. # # E.g. isolaniMask[d-file] = 1's in c-file & e-file, 0 otherwise. # ################################################################################ isolaniMask = [0]*8 isolaniMask[0] = fileBits[1] isolaniMask[7] = fileBits[6] for i in range (1, 7): isolaniMask[i] = fileBits[i-1] | fileBits[i+1] #=============================================================================== # The SquarePawnMask is used to determine if a king is in the square of # the passed pawn and is able to prevent it from queening. # Caveat: Pawns on 2nd rank have the same mask as pawns on the 3rd rank # as they can advance 2 squares. #=============================================================================== squarePawnMask = [[0]*64, [0]*64] for cord in range(64): # White mask l = 7 - RANK(cord) i = max(cord & 56, cord-l) j = min(cord | 7, cord+l) for k in range(i, j+1): squarePawnMask[WHITE][cord] |= bitPosArray[k] | fromToRay[k][k|56] # Black mask l = RANK(cord) i = max(cord & 56, cord-l) j = min(cord | 7, cord+l) for k in range(i, j+1): squarePawnMask[BLACK][cord] |= bitPosArray[k] | fromToRay[k][k&7] # For pawns on 2nd rank, they have same mask as pawns on 3rd rank for cord in range(A2, H2+1): squarePawnMask[WHITE][cord] = squarePawnMask[WHITE][cord+8] for cord in range(A7, H7+1): squarePawnMask[BLACK][cord] = squarePawnMask[BLACK][cord-8] ################################################################################ # These tables are used to calculate rook, queen and bishop moves # ################################################################################ ray00 = [rays[cord][5] | rays[cord][6] | 1<<(63-cord) for cord in range(64)] ray45 = [rays[cord][0] | rays[cord][3] | 1<<(63-cord) for cord in range(64)] ray90 = [rays[cord][4] | rays[cord][7] | 1<<(63-cord) for cord in range(64)] ray135 = [rays[cord][1] | rays[cord][2] | 1<<(63-cord) for cord in range(64)] attack00 = [{} for i in range(64)] attack45 = [{} for i in range(64)] attack90 = [{} for i in range(64)] attack135 = [{} for i in range(64)] cmap = [ 128, 64, 32, 16, 8, 4, 2, 1 ] rot1 = [ A1, A2, A3, A4, A5, A6, A7, A8 ] rot2 = [ A1, B2, C3, D4, E5, F6, G7, H8 ] rot3 = [ A8, B7, C6, D5, E4, F3, G2, H1 ] # To save time, we init a main line for each of the four directions, and next # we will translate it for each possible cord for cord in range(8): for map in range(1, 256): # Skip entries without cord set, as cord will always be set if not map & cmap[cord]: continue # Find limits inclusive cord1 = cord2 = cord while cord1 > 0: cord1 -= 1 if cmap[cord1] & map: break while cord2 < 7: cord2 += 1 if cmap[cord2] & map: break # Remember A1 is the left most bit map00 = map << 56 attack00[cord][map00] = \ fromToRay[cord][cord1] | \ fromToRay[cord][cord2] map90 = reduce(or_, (1 << 63-rot1[c] for c in iterBits(map00))) attack90[rot1[cord]][map90] = \ fromToRay[rot1[cord]][rot1[cord1]] | \ fromToRay[rot1[cord]][rot1[cord2]] map45 = reduce(or_, (1 << 63-rot2[c] for c in iterBits(map00))) attack45[rot2[cord]][map45] = \ fromToRay[rot2[cord]][rot2[cord1]] | \ fromToRay[rot2[cord]][rot2[cord2]] map135 = reduce(or_, (1 << 63-rot3[c] for c in iterBits(map00))) attack135[rot3[cord]][map135] = \ fromToRay[rot3[cord]][rot3[cord1]] | \ fromToRay[rot3[cord]][rot3[cord2]] MAXBITBOARD = (1<<64)-1 for r in range(A2,A8+1,8): for cord in iterBits(ray00[r]): attack00[cord] = dict((map >> 8, ray >> 8) for map,ray in attack00[cord-8].items()) for r in range(B1,H1+1): for cord in iterBits(ray90[r]): attack90[cord] = dict((map >> 1, ray >> 1) for map,ray in attack90[cord-1].items()) # Bottom right for r in range(B1,H1+1): for cord in iterBits(ray45[r]): attack45[cord] = dict((map << 8 & MAXBITBOARD, ray << 8 & MAXBITBOARD) for map,ray in attack45[cord+8].items()) # Top left for r in reversed(range(A8,H8)): for cord in iterBits(ray45[r]): attack45[cord] = dict((map >> 8, ray >> 8) for map,ray in attack45[cord-8].items()) # Top right for r in range(B8,H8+1): for cord in iterBits(ray135[r]): attack135[cord] = dict((map >> 8, ray >> 8) for map,ray in attack135[cord-8].items()) # Bottom left for r in reversed(range(A1,H1)): for cord in iterBits(ray135[r]): attack135[cord] = dict((map << 8 & MAXBITBOARD, ray << 8 & MAXBITBOARD) for map,ray in attack135[cord+8].items()) pychess-0.12.2/lib/pychess/Utils/lutils/ldraw.py0000755000175000017470000000462712641567764022131 0ustar tamasusers00000000000000from __future__ import absolute_import from .ldata import BLACK_SQUARES from pychess.Utils.const import * def testFifty (board): if board.fifty >= 100: return True return False drawSet = set(( (0, 0, 0, 0, 0, 0, 0, 0), #KK (0, 1, 0, 0, 0, 0, 0, 0), #KBK (1, 0, 0, 0, 0, 0, 0, 0), #KNK (0, 0, 0, 0, 0, 1, 0, 0), #KKB (0, 0, 0, 0, 1, 0, 0, 0), #KNK (1, 0, 0, 0, 0, 1, 0, 0), #KNKB (0, 1, 0, 0, 1, 0, 0, 0), #KBKN )) # Contains not 100% sure ones drawSet2 = set(( (2, 0, 0, 0, 0, 0, 0, 0), #KNNK (0, 0, 0, 0, 2, 0, 0, 0), #KKNN (2, 0, 0, 0, 1, 0, 0, 0), #KNNKN (1, 0, 0, 0, 2, 0, 0, 0), #KNKNN (2, 0, 0, 0, 0, 1, 0, 0), #KNNKB (0, 1, 0, 0, 2, 0, 0, 0), #KBKNN (2, 0, 0, 0, 0, 0, 1, 0), #KNNKR (0, 0, 1, 0, 2, 0, 0, 0) #KRKNN )) def testMaterial (board): """ Tests if no players are able to win the game from the current position """ whitePieceCount = board.pieceCount[WHITE] blackPieceCount = board.pieceCount[BLACK] if whitePieceCount[PAWN] or blackPieceCount[PAWN]: return False if whitePieceCount[QUEEN] or blackPieceCount[QUEEN]: return False wn = whitePieceCount[KNIGHT] wb = whitePieceCount[BISHOP] wr = whitePieceCount[ROOK] bn = blackPieceCount[KNIGHT] bb = blackPieceCount[BISHOP] br = blackPieceCount[ROOK] if (wn, wb, wr, 0, bn, bb, br, 0) in drawSet: return True # Tests KBKB. Draw if bishops are of same color if not wn + wr + bn + br and wb == 1 and bb == 1: if board.boards[WHITE][BISHOP] & BLACK_SQUARES and True != \ board.boards[BLACK][BISHOP] & BLACK_SQUARES and True: return True def testPlayerMatingMaterial (board, color): """ Tests if given color has enough material to mate on board """ pieceCount = board.pieceCount[color] if pieceCount[PAWN] or pieceCount[QUEEN] or pieceCount[ROOK] \ or (pieceCount[KNIGHT] + pieceCount[BISHOP] > 1): return True return False # This could be expanded by the fruit kpk draw function, which can test if a # certain king verus king and pawn posistion is winable. def test (board): """ Test if the position is drawn. Two-fold repetitions are counted. """ return board.repetitionCount (drawThreshold=2) > 1 or \ testFifty (board) or \ testMaterial (board) pychess-0.12.2/lib/pychess/Utils/lutils/TranspositionTable.py0000755000175000017470000001001712641567764024632 0ustar tamasusers00000000000000from ctypes import create_string_buffer, memset from struct import Struct, pack_into, unpack_from from pychess.Utils.const import hashfALPHA, hashfBETA, hashfEXACT, hashfBAD from pychess.Utils.lutils.ldata import MATE_VALUE, MAXPLY # Store hash entries in buckets of 4. An entry consists of: # key 32 bits derived from the board hash # search_id counter used to determine entry's age # hashf bound type (one of the hashf* constants) # depth search depth # score search score # move best move (or cutoff move) entryType = Struct('=I B B H h H') class TranspositionTable: def __init__ (self, maxSize): assert maxSize > 0 self.buckets = maxSize // (4 * entryType.size) self.data = create_string_buffer(self.buckets * 4 * entryType.size) self.search_id = 0 self.killer1 = [-1]*80 self.killer2 = [-1]*80 self.hashmove = [-1]*80 self.butterfly = [0]*(64*64) def clear (self): memset(self.data, 0, self.buckets * 4 * entryType.size) self.killer1 = [-1]*80 self.killer2 = [-1]*80 self.hashmove = [-1]*80 self.butterfly = [0]*(64*64) def newSearch (self): self.search_id = (self.search_id + 1) & 0xff #TODO: consider clearing butterfly table def probe (self, board, depth, alpha, beta): baseIndex = (board.hash % self.buckets) * 4 key = (board.hash // self.buckets) & 0xffffffff for i in range(baseIndex, baseIndex + 4): tkey, search_id, hashf, tdepth, score, move = entryType.unpack_from(self.data, i * entryType.size) if tkey == key: # Mate score bounds are guaranteed to be accurate at any depth. if tdepth < depth and abs(score) < MATE_VALUE-MAXPLY: return move, score, hashfBAD if hashf == hashfEXACT: return move, score, hashf if hashf == hashfALPHA and score <= alpha: return move, alpha, hashf if hashf == hashfBETA and score >= beta: return move, beta, hashf def record (self, board, move, score, hashf, depth): baseIndex = (board.hash % self.buckets) * 4 key = (board.hash // self.buckets) & 0xffffffff # We always overwrite *something*: an empty slot, this position's last entry, or else the least relevant. staleIndex = baseIndex staleRelevance = 0xffff for i in range(baseIndex, baseIndex + 4): tkey, search_id, thashf, tdepth, tscore, tmove = entryType.unpack_from(self.data, i * entryType.size) if tkey == 0 or tkey == key: staleIndex = i break relevance = (0x8000 if search_id != self.search_id and thashf == hashfEXACT else 0) + \ (0x4000 if ((self.search_id - search_id) & 0xff) > 1 else 0) + \ tdepth if relevance < staleRelevance: staleIndex = i staleRelevance = relevance entryType.pack_into(self.data, staleIndex * entryType.size, key, self.search_id, hashf, depth, score, move) def addKiller (self, ply, move): if self.killer1[ply] == -1: self.killer1[ply] = move elif move != self.killer1[ply]: self.killer2[ply] = move def isKiller (self, ply, move): if self.killer1[ply] == move: return 10 elif self.killer2[ply] == move: return 8 if ply >= 2: if self.killer1[ply-2] == move: return 6 elif self.killer2[ply-2] == move: return 4 return 0 def setHashMove (self, ply, move): self.hashmove[ply] = move def isHashMove (self, ply, move): return self.hashmove[ply] == move def addButterfly (self, move, depth): self.butterfly[move & 0xfff] += 1 << depth def getButterfly (self, move): return self.butterfly[move & 0xfff] pychess-0.12.2/lib/pychess/Utils/lutils/Benchmark.py0000644000175000017470000000471112641567764022701 0ustar tamasusers00000000000000from __future__ import print_function from pychess.Utils.lutils.LBoard import LBoard from pychess.Utils.lutils.leval import clearPawnTable from pychess.Utils.lutils.lmove import listToSan from pychess.Utils.lutils import lsearch from pychess.Utils.const import * import sys from time import time # For now, we use the benchmark positions from Stockfish. benchmarkPositions = [ "rnbqkbnr/pppppppp/8/8/8/8/PPPPPPPP/RNBQKBNR w KQkq - 0 1", "r3k2r/p1ppqpb1/bn2pnp1/3PN3/1p2P3/2N2Q1p/PPPBBPPP/R3K2R w KQkq - 0 10", "8/2p5/3p4/KP5r/1R3p1k/8/4P1P1/8 w - - 0 11", "4rrk1/pp1n3p/3q2pQ/2p1pb2/2PP4/2P3N1/P2B2PP/4RRK1 b - - 7 19", "rq3rk1/ppp2ppp/1bnpb3/3N2B1/3NP3/7P/PPPQ1PP1/2KR3R w - - 7 14", "r1bq1r1k/1pp1n1pp/1p1p4/4p2Q/4Pp2/1BNP4/PPP2PPP/3R1RK1 w - - 2 14", "r3r1k1/2p2ppp/p1p1bn2/8/1q2P3/2NPQN2/PPP3PP/R4RK1 b - - 2 15", "r1bbk1nr/pp3p1p/2n5/1N4p1/2Np1B2/8/PPP2PPP/2KR1B1R w kq - 0 13", "r1bq1rk1/ppp1nppp/4n3/3p3Q/3P4/1BP1B3/PP1N2PP/R4RK1 w - - 1 16", "4r1k1/r1q2ppp/ppp2n2/4P3/5Rb1/1N1BQ3/PPP3PP/R5K1 w - - 1 17", "2rqkb1r/ppp2p2/2npb1p1/1N1Nn2p/2P1PP2/8/PP2B1PP/R1BQK2R b KQ - 0 11", "r1bq1r1k/b1p1npp1/p2p3p/1p6/3PP3/1B2NN2/PP3PPP/R2Q1RK1 w - - 1 16", "3r1rk1/p5pp/bpp1pp2/8/q1PP1P2/b3P3/P2NQRPP/1R2B1K1 b - - 6 22", "r1q2rk1/2p1bppp/2Pp4/p6b/Q1PNp3/4B3/PP1R1PPP/2K4R w - - 2 18", "4k2r/1pb2ppp/1p2p3/1R1p4/3P4/2r1PN2/P4PPP/1R4K1 b - - 3 22", "3q2k1/pb3p1p/4pbp1/2r5/PpN2N2/1P2P2P/5PP1/Q2R2K1 b - - 4 26" ] def benchmark (): """ Times a search of a static list of positions. """ suite_time = time() suite_nodes = lsearch.nodes lsearch.endtime = sys.maxsize lsearch.searching = True for i, fen in enumerate(benchmarkPositions): lsearch.table.clear() clearPawnTable() board = LBoard(NORMALCHESS) board.applyFen(fen) pos_start_time = time() pos_start_nodes = lsearch.nodes for depth in range (1, 6): mvs, scr = lsearch.alphaBeta (board, depth) pos_time = time() - pos_start_time pos_nodes = lsearch.nodes - pos_start_nodes pv = " ".join(listToSan(board, mvs)) time_cs = int(100 * pos_time) print(depth, scr, time_cs, pos_nodes, pv) print("Searched position", i, "at", int(pos_nodes / pos_time), "n/s") suite_time = time() - suite_time suite_nodes = lsearch.nodes - suite_nodes print("Total:", suite_nodes, "nodes in", suite_time, "s: ", suite_nodes / suite_time, "n/s") lsearch.nodes = 0 pychess-0.12.2/lib/pychess/Utils/lutils/egtb_k4it.py0000755000175000017470000001104712652767225022662 0ustar tamasusers00000000000000import re from pychess.compat import urlopen from pychess.Utils.lutils.lmovegen import newMove from pychess.Utils.lutils.lmove import FILE, RANK from pychess.Utils.const import * from pychess.Utils.repr import reprColor from pychess.System.Log import log from pychess.System import conf URL = "http://www.k4it.de/egtb/fetch.php?action=egtb&fen=" expression = re.compile("(\d+)-(\d+)-?(\d+)?: (Win in \d+|Draw|Lose in \d+)") PROMOTION_FLAGS = { 2: QUEEN_PROMOTION, 3: ROOK_PROMOTION, 4: BISHOP_PROMOTION, 5: KNIGHT_PROMOTION, 8: QUEEN_PROMOTION, 9: ROOK_PROMOTION, 10: BISHOP_PROMOTION, 11: KNIGHT_PROMOTION } class egtb_k4it: def __init__ (self): self.table = {} def supports (self, size): return size[0] < 5 and size[1] < 5 and sum(size) < 7 def scoreAllMoves (self, board, probeSoft=False): global URL, expression, PROMOTION_FLAGS fen = board.asFen().split()[0] + " w - - 0 1" if (fen,board.color) in self.table: return self.table[(fen,board.color)] if probeSoft or not conf.get("online_egtb_check", True): return [] # Request the page url = (URL + fen).replace(" ", "%20") try: f = urlopen(url) except IOError as e: log.warning("Unable to read endgame tablebase from the Internet: %s" % repr(e)) return [] data = f.read() # Parse for color, move_data in enumerate(data.split(b"\nNEXTCOLOR\n")): try: moves = [] for fcord, tcord, promotion, result in expression.findall(move_data.decode()): fcord = int(fcord) tcord = int(tcord) if promotion: flag = PROMOTION_FLAGS[int(promotion)] elif RANK(fcord) != RANK(tcord) and FILE(fcord) != FILE(tcord) and \ board.arBoard[fcord] == PAWN and board.arBoard[tcord] == EMPTY: flag = ENPASSANT else: flag = NORMAL_MOVE move = newMove(fcord, tcord, flag) if result == "Draw": state = DRAW steps = 0 else: s, steps = result.split(" in ") steps = int(steps) if result.startswith("Win"): if color == WHITE: state = WHITEWON else: state = BLACKWON elif result.startswith("Lose"): if color == WHITE: state = BLACKWON else: state = WHITEWON moves.append( (move,state,steps) ) if moves: self.table[(fen,color)] = moves elif color == board.color and board.opIsChecked(): log.warning("Asked endgametable for a won position: %s" % fen) elif color == board.color: log.warning("Couldn't get %s data for position %s.\nData was: %s" % (reprColor[color], fen, repr(data))) except (KeyError, ValueError): log.warning("Couldn't parse %s data for position %s.\nData was: %s" % (reprColor[color], fen, repr(data))) self.table[(fen, color)] = [] # Don't try again. if (fen,board.color) in self.table: return self.table[(fen,board.color)] return [] def scoreGame(self, board, omitDepth, probeSoft): scores = self.scoreAllMoves(board, probeSoft) if scores: return scores[0][1], scores[0][2] return None, None if __name__ == "__main__": from pychess.Utils.lutils.LBoard import LBoard from pychess.Utils.lutils.lmove import listToSan board = LBoard(NORMALCHESS) board.applyFen("8/k2P4/8/8/8/8/8/4K2R w - - 0 1") moves = probeEndGameTable(board) assert len(moves) == 18, listToSan(board, (move[0] for move in moves)) board.applyFen("8/p7/6kp/3K4/6PP/8/8/8 b - - 0 1") moves = probeEndGameTable(board) assert len(moves) == 7, listToSan(board, (move[0] for move in moves)) board.applyFen("8/p6k/2K5/7R/6PP/8/8/8 b - - 0 66") moves = probeEndGameTable(board) assert len(moves) == 3, listToSan(board, (move[0] for move in moves)) pychess-0.12.2/lib/pychess/Utils/lutils/strateval.py0000755000175000017470000006117612641567764023027 0ustar tamasusers00000000000000""" This module differs from leval in that it is not optimized for speed. It checks differences between last and current board, and returns not scores, but strings describing the differences. Can be used for commenting on board changes. """ from __future__ import absolute_import from .ldata import * from pychess.Utils.const import * from pychess.Utils.lutils.attack import staticExchangeEvaluate, getAttacks, \ defends from pychess.Utils.lutils.lmove import TCORD, FCORD, FLAG, PROMOTE_PIECE, toSAN from pychess.Utils.lutils.lmovegen import genCaptures, genAllMoves, newMove from pychess.Utils.lutils.validator import validateMove from pychess.Utils.repr import reprColor, reprPiece from . import leval def join(items): if len(items) == 1: return items[0] else: s = "%s %s %s" % (items[-2], _("and"), items[-1]) if len(items) > 2: s = ", ".join(items[:-2]+[s]) return s # # Functions can be of types: # * Final: Will be shown alone: "mates", "draws" # * Moves (s): Will always be shown: "put into *" # * Prefix: Will always be shown: "castles", "promotes" # * Attack: Will always be shown: "threaten", "preassures", "defendes" # * Simple: (s) Max one will be shown: "develops", "activity" # * State: (s) Will always be shown: "new *" # * Tip: (s) Will sometimes be shown: "pawn storm", "cramped position" # def final_status (model, ply, phase): if ply == model.ply: if model.status == DRAW: yield _("draws") elif model.status in (WHITEWON,BLACKWON): yield _("mates") def offencive_moves_check (model, ply, phase): if model.getBoardAtPly(ply).board.isChecked(): yield _("puts opponent in check") def defencive_moves_safety (model, ply, phase): board = model.getBoardAtPly(ply).board oldboard = model.getBoardAtPly(ply-1).board if board.arBoard[TCORD(model.getMoveAtPly(ply-1).move)] != KING: return color = oldboard.color opcolor = 1-color delta_eval_king = leval.evalKing(board, color, phase) - \ leval.evalKing(oldboard, color, phase) # PyChess points tropism to queen for phase <= 3. Thus we set a high phase delta_eval_tropism = leval.evalKingTropism(board, opcolor, 10) - \ leval.evalKingTropism(oldboard, opcolor, 10) # Notice, that tropism was negative delta_score = delta_eval_king - delta_eval_tropism/2 if delta_score > 35: yield _("improves king safety") elif delta_score > 15: yield _("slightly improves king safety") def offencive_moves_rook (model, ply, phase): move = model.getMoveAtPly(ply-1).move fcord = FCORD(move) tcord = TCORD(move) board = model.getBoardAtPly(ply).board color = 1-board.color opcolor = 1-color # We also detect rook-to-open castlings if board.arBoard[tcord] == KING: if FLAG(move) == QUEEN_CASTLE: fcord = board.ini_rooks[color][0] tcord = tcord+1 elif FLAG(move) == KING_CASTLE: fcord = board.ini_rooks[color][1] tcord = tcord-1 if board.arBoard[tcord] != ROOK: return color = 1-board.color opcolor = 1-color pawns = board.boards[color][PAWN] oppawns = board.boards[opcolor][PAWN] ffile = fileBits[FILE(FCORD(move))] tfile = fileBits[FILE(tcord)] if ffile & pawns and not tfile & pawns and bin(pawns).count("1") >= 3: if not tfile & oppawns: yield _("moves a rook to an open file") else: yield _("moves an rook to a half-open file") def offencive_moves_fianchetto (model, ply, phase): board = model.getBoardAtPly(ply).board tcord = TCORD(model.getMoveAtPly(ply-1).move) movingcolor = 1-board.color if movingcolor == WHITE: if board.castling & W_OO and tcord == G2: yield _("moves bishop into fianchetto: %s") % "g2" elif board.castling & W_OOO and tcord == B2: yield _("moves bishop into fianchetto: %s") % "b2" else: if board.castling & B_OO and tcord == G7: yield _("moves bishop into fianchetto: %s") % "g7" elif board.castling & B_OOO and tcord == B7: yield _("moves bishop into fianchetto: %s") % "b7" def prefix_type (model, ply, phase): flag = FLAG(model.getMoveAtPly(ply-1).move) if flag in PROMOTIONS: yield _("promotes a Pawn to a %s") % reprPiece[PROMOTE_PIECE(flag)] elif flag in (KING_CASTLE, QUEEN_CASTLE): yield _("castles") def attack_type (model, ply, phase): # We set bishop value down to knight value, as it is what most people expect bishopBackup = PIECE_VALUES[BISHOP] PIECE_VALUES[BISHOP] = PIECE_VALUES[KNIGHT] board = model.getBoardAtPly(ply).board oldboard = model.getBoardAtPly(ply-1).board if ply - model.lowply >= 2: oldmove = model.getMoveAtPly(ply-2).move oldboard3 = model.getBoardAtPly(ply-2).board else: oldmove = None move = model.getMoveAtPly(ply-1).move tcord = TCORD(move) if oldboard.arBoard[tcord] != EMPTY: if not (board.variant == FISCHERRANDOMCHESS and \ FLAG(move) in (KING_CASTLE, QUEEN_CASTLE)): if oldmove and oldboard3.arBoard[TCORD(oldmove)] != EMPTY and \ TCORD(oldmove) == tcord: yield _("takes back material") else: see = staticExchangeEvaluate(oldboard, move) if see < 0: yield _("sacrifies material") elif see == 0: yield _("exchanges material") elif see > 0: yield _("captures material") else: see = staticExchangeEvaluate(oldboard, move) if see < 0: yield _("sacrifies material") PIECE_VALUES[BISHOP] = bishopBackup def defencive_moves_tactic (model, ply, phase): # ------------------------------------------------------------------------ # # Test if we threat something, or at least put more pressure on it # # ------------------------------------------------------------------------ # # We set bishop value down to knight value, as it is what most people expect bishopBackup = PIECE_VALUES[BISHOP] PIECE_VALUES[BISHOP] = PIECE_VALUES[KNIGHT] board = model.getBoardAtPly(ply).board oldboard = model.getBoardAtPly(ply-1).board move = model.getMoveAtPly(ply-1).move fcord = FCORD(move) tcord = TCORD(move) piece = board.arBoard[tcord] found_threatens = [] found_increases = [] # What do we attack now? board.setColor(1-board.color) for ncap in genCaptures(board): # getCaptures also generate promotions if FLAG(ncap) in PROMOTIONS: continue # We are only interested in the attacks of the piece we just moved if FCORD(ncap) != TCORD (move): continue # We don't want to move back if TCORD(ncap) == FCORD(move): continue # We don't thread the king. We check him! (in another function) if board.arBoard[TCORD(ncap)] == KING: continue # If we also was able to attack that cord last time, we don't care if validateMove(oldboard, newMove(FCORD(move), TCORD(ncap))): continue # Test if we threats our enemy, at least more than before see0 = staticExchangeEvaluate(oldboard, TCORD(ncap), 1-oldboard.color) see1 = staticExchangeEvaluate(board, TCORD(ncap), 1-oldboard.color) if see1 > see0: # If a new winning capture has been created if see1 > 0: # Find the easiest attack attacks = getAttacks (board, TCORD(ncap), board.color) v, cord = min((PIECE_VALUES[board.arBoard[fc]],fc) for fc in iterBits(attacks)) easiestAttack = newMove(cord, TCORD(ncap)) found_threatens.append(toSAN(board,easiestAttack, True)) # Even though we might not yet be strong enough, we might still # have strengthened another friendly attack else: found_increases.append(reprCord[TCORD(ncap)]) board.setColor(1-board.color) # -------------------------------------------------------------------- # # Test if we defend a one of our pieces # # -------------------------------------------------------------------- # found_defends = [] # Test which pieces were under attack used = [] for ncap in genCaptures(board): # getCaptures also generate promotions if FLAG(ncap) in PROMOTIONS: continue # We don't want to know about the same cord more than once if TCORD(ncap) in used: continue used.append(TCORD(ncap)) # If the attack was poining on the piece we just moved, we ignore it if TCORD(ncap) == FCORD(move) or TCORD(ncap) == TCORD(move): continue # If we were already defending the piece, we don't send a new # message if defends(oldboard, FCORD(move), TCORD(ncap)): continue # If the attack was not strong, we ignore it see = staticExchangeEvaluate(oldboard, ncap) if see < 0: continue v = defends(board, TCORD(move), TCORD(ncap)) # If the defend didn't help, it doesn't matter. Like defending a # bishop, threatened by a pawn, with a queen. # But on the other hand - it might still be a defend... # newsee = staticExchangeEvaluate(board, ncap) # if newsee <= see: continue if v: found_defends.append(reprCord[TCORD(ncap)]) # ------------------------------------------------------------------------ # # Test if we are rescuing an otherwise exposed piece # # ------------------------------------------------------------------------ # # Rescuing is only an option, if our own move wasn't an attack if oldboard.arBoard[tcord] == EMPTY: see0 = staticExchangeEvaluate(oldboard, fcord, oldboard.color) see1 = staticExchangeEvaluate(board, tcord, oldboard.color) if see1 > see0 and see1 > 0: yield _("rescues a %s") % reprPiece[board.arBoard[tcord]].lower() if found_threatens: yield _("threatens to win material by %s") % join(found_threatens) if found_increases: yield _("increases the pressure on %s") % join(found_increases) if found_defends: yield _("defends %s") % join(found_defends) PIECE_VALUES[BISHOP] = bishopBackup def offencive_moves_pin (model, ply, phase): board = model.getBoardAtPly(ply).board move = model.getMoveAtPly(ply-1).move fcord = FCORD(move) tcord = TCORD(move) piece = board.arBoard[tcord] ray = 0 if piece in (BISHOP, QUEEN): ray |= (ray45[tcord] | ray135[tcord]) & ~(ray45[fcord] | ray135[fcord]) if piece in (ROOK, QUEEN): ray |= (ray00[tcord] | ray90[tcord]) & ~(ray00[fcord] | ray90[fcord]) if ray: for c in iterBits(ray & board.friends[board.color]): # We don't pin on pieces that are less worth than us if not PIECE_VALUES[piece] < PIECE_VALUES[board.arBoard[c]]: continue # There should be zero friendly pieces in between ray = fromToRay[tcord][c] if ray & board.friends[1-board.color]: continue # There should be exactly one opponent piece in between op = clearBit(ray & board.friends[board.color], c) if bin(op).count("1") != 1: continue # The king can't be pinned pinned = lastBit(op) oppiece = board.arBoard[pinned] if oppiece == KING: continue # Yield yield _("pins an enemy %(oppiece)s on the %(piece)s at %(cord)s") % { 'oppiece': reprPiece[oppiece].lower(), 'piece': reprPiece[board.arBoard[c]].lower(), 'cord': reprCord[c]} def state_outpost (model, ply, phase): if phase >= 6: # Doesn't make sense in endgame return board = model.getBoardAtPly(ply).board oldboard = model.getBoardAtPly(ply-1).board color = 1-board.color opcolor = 1-color wpawns = board.boards[WHITE][PAWN] oldwpawns = oldboard.boards[WHITE][PAWN] bpawns = board.boards[BLACK][PAWN] oldbpawns = oldboard.boards[BLACK][PAWN] wpieces = board.boards[WHITE][BISHOP] | board.boards[WHITE][KNIGHT] oldwpieces = oldboard.boards[WHITE][BISHOP] | oldboard.boards[WHITE][KNIGHT] bpieces = board.boards[BLACK][BISHOP] | board.boards[BLACK][KNIGHT] oldbpieces = oldboard.boards[BLACK][BISHOP] | oldboard.boards[BLACK][KNIGHT] for cord in iterBits(wpieces): sides = isolaniMask[FILE(cord)] front = passedPawnMask[WHITE][cord] if outpost[WHITE][cord] and not bpawns & sides & front and \ (not oldwpieces & bitPosArray[cord] or \ oldbpawns & sides & front): yield 35, _("White has a new piece in outpost: %s") % reprCord[cord] for cord in iterBits(bpieces): sides = isolaniMask[FILE(cord)] front = passedPawnMask[BLACK][cord] if outpost[BLACK][cord] and not wpawns & sides & front and \ (not oldbpieces & bitPosArray[cord] or \ oldwpawns & sides & front): yield 35, _("Black has a new piece in outpost: %s") % reprCord[cord] def state_pawn (model, ply, phase): board = model.getBoardAtPly(ply).board oldboard = model.getBoardAtPly(ply-1).board color = 1-board.color opcolor = 1-color move = model.getMoveAtPly(ply-1).move pawns = board.boards[color][PAWN] oppawns = board.boards[opcolor][PAWN] oldpawns = oldboard.boards[color][PAWN] oldoppawns = oldboard.boards[opcolor][PAWN] # Passed pawns for cord in iterBits(pawns): if not oppawns & passedPawnMask[color][cord]: if color == WHITE: frontCords = fromToRay[cord][cord|56] else: frontCords = fromToRay[cord][cord&7] if frontCords & pawns: continue # Was this a passed pawn before? if oldpawns & bitPosArray[cord] and \ not oldoppawns & passedPawnMask[color][cord] and \ not frontCords & oldpawns: continue # Is this just a passed pawn that has been moved? if TCORD(move) == cord: frontCords |= bitPosArray[cord] if not frontCords & oldpawns and \ not oldoppawns & passedPawnMask[color][FCORD(move)]: continue score = (passedScores[color][cord>>3] * phase) yield score, _("%(color)s has a new passed pawn on %(cord)s") % { 'color': reprColor[color], 'cord': reprCord[cord]} # Double pawns found_doubles = [] found_halfopen_doubles = [] found_white_isolates = [] found_black_isolates = [] for file in range(8): bits = fileBits[file] count = bin(pawns & bits).count("1") oldcount = bin(oldpawns & bits).count("1") opcount = bin(oppawns & bits).count("1") oldopcount = bin(oldoppawns & bits).count("1") # Single pawn -> double pawns if count > oldcount >= 1: if not opcount: found_halfopen_doubles.append(reprFile[file]) else: found_doubles.append(reprFile[file]) # Closed file double pawn -> half-open file double pawn elif count > 1 and opcount == 0 and oldopcount > 0: found_halfopen_doubles.append(reprFile[file]) # Isolated pawns if color == WHITE: wpawns = pawns oldwpawns = oldpawns bpawns = oppawns oldbpawns = oldoppawns else: bpawns = pawns oldbpawns = oldpawns wpawns = oppawns oldwpawns = oldoppawns if wpawns & bits and not wpawns & isolaniMask[file] and \ (not oldwpawns & bits or oldwpawns & isolaniMask[file]): found_white_isolates.append(reprFile[file]) if bpawns & bits and not bpawns & isolaniMask[file] and \ (not oldbpawns & bits or oldbpawns & isolaniMask[file]): found_black_isolates.append(reprFile[file]) # We need to take care of 'worstcases' like: "got new double pawns in the a # file, in the half-open b, c and d files and in the open e and f files" doubles_count = len(found_doubles) + len(found_halfopen_doubles) if doubles_count > 0: parts = [] for type_, list_ in (("", found_doubles), (_("half-open")+" ", found_halfopen_doubles)): if len(list_) == 1: parts.append(_("in the %(x)s%(y)s file") % {'x': type_, 'y': list_[0]}) elif len(list_) >= 2: parts.append(_("in the %(x)s%(y)s files") % {'x': type_, 'y': join(list_)}) if doubles_count == 1: s = _("%(color)s got a double pawn %(place)s") else: s = _("%(color)s got new double pawns %(place)s") yield (8+phase)*2*doubles_count, s % {'color': reprColor[color], 'place': join(parts)} for (color_, list_) in ((WHITE, found_white_isolates), (BLACK, found_black_isolates)): if list_: yield 20*len(list_), ngettext("%(color)s got an isolated pawn in the %(x)s file", "%(color)s got isolated pawns in the %(x)s files", len(list_)) % {'color': reprColor[color_], 'x': join(list_)} # Stone wall if stonewall[color] & pawns == stonewall[color] and \ stonewall[color] & oldpawns != stonewall[color]: yield 10, _("%s moves pawns into stonewall formation") % reprColor[color] def state_destroysCastling (model, ply, phase): """ Does the move destroy the castling ability of the opponent """ # If the move is a castling, nobody will every care if the castling # possibilities has changed if FLAG(model.getMoveAtPly(ply-1).move) in (QUEEN_CASTLE, KING_CASTLE): return oldcastling = model.getBoardAtPly(ply-1).board.castling castling = model.getBoardAtPly(ply).board.castling if oldcastling & W_OOO and not castling & W_OOO: if oldcastling & W_OO and not castling & W_OO: yield 900/phase, _("%s can no longer castle") % reprColor[WHITE] else: yield 400/phase, _("%s can no longer castle in queenside") % reprColor[WHITE] elif oldcastling & W_OO and not castling & W_OO: yield 500/phase, _("%s can no longer castle in kingside") % reprColor[WHITE] if oldcastling & B_OOO and not castling & B_OOO: if oldcastling & B_OO and not castling & B_OO: yield 900/phase, _("%s can no longer castle") % reprColor[BLACK] else: yield 400/phase, _("%s can no longer castle in queenside") % reprColor[BLACK] elif oldcastling & B_OO and not castling & B_OO: yield 500/phase, _("%s can no longer castle in kingside") % reprColor[BLACK] def state_trappedBishops (model, ply, phase): """ Check for bishops trapped at A2/H2/A7/H7 """ board = model.getBoardAtPly(ply).board oldboard = model.getBoardAtPly(ply-1).board opcolor = board.color color = 1-opcolor move = model.getMoveAtPly(ply-1).move tcord = TCORD(move) # Only a pawn is able to trap a bishop if board.arBoard[tcord] != PAWN: return if tcord == B3: cord = A2 elif tcord == G3: cord = H2 elif tcord == B6: cord = A7 elif tcord == G6: cord = H7 else: return s = leval.evalTrappedBishops (board, opcolor) olds = leval.evalTrappedBishops (oldboard, opcolor) # We have got more points -> We have trapped a bishop if s > olds: yield 300/phase, _("%(opcolor)s has a new trapped bishop on %(cord)s") % { 'opcolor': reprColor[opcolor], 'cord': reprCord[cord]} def simple_tropism (model, ply, phase): board = model.getBoardAtPly(ply).board oldboard = model.getBoardAtPly(ply-1).board color = oldboard.color move = model.getMoveAtPly(ply-1).move fcord = FCORD(move) tcord = TCORD(move) arBoard = board.arBoard if arBoard[tcord] != PAWN: score = leval.evalKingTropism(board, color, phase) oldscore = leval.evalKingTropism(oldboard, color, phase) else: if color == WHITE: rank23 = brank67[BLACK] else: rank23 = brank67[WHITE] if bitPosArray[fcord] & rank23: yield 2, _("develops a pawn: %s") % reprCord[tcord] else: yield 1, _("brings a pawn closer to the backrow: %s") % \ reprCord[tcord] return king = board.kings[color] opking = board.kings[1-color] if score > oldscore: # in FISCHERRANDOMCHESS unusual casting case the tcord is # the involved rook's position, not the king's destination! flag = move >> 12 if flag in (KING_CASTLE, QUEEN_CASTLE): piece = KING else: piece = arBoard[tcord] if phase >= 5 or distance[piece][fcord][opking] < \ distance[piece][fcord][king]: yield score-oldscore, _("brings a %(piece)s closer to enemy king: %(cord)s") % { 'piece': reprPiece[piece], 'cord': reprCord[tcord]} else: yield (score-oldscore)*2, _("develops a %(piece)s: %(cord)s") % { 'piece': reprPiece[piece].lower(), 'cord': reprCord[tcord]} def simple_activity (model, ply, phase): board = model.getBoardAtPly(ply).board oldboard = model.getBoardAtPly(ply-1).board color = 1-board.color move = model.getMoveAtPly(ply-1).move fcord = FCORD(move) tcord = TCORD(move) board.setColor(1-board.color) moves = len([m for m in genAllMoves(board) if FCORD(m) == tcord]) board.setColor(1-board.color) oldmoves = len([m for m in genAllMoves(oldboard) if FCORD(m) == fcord]) if moves > oldmoves: yield (moves-oldmoves)/2, _("places a %(piece)s more active: %(cord)s") % { 'piece': reprPiece[board.arBoard[tcord]].lower(), 'cord': reprCord[tcord]} def tip_pawnStorm (model, ply, phase): """ If players are castled in different directions we should storm in opponent side """ if phase >= 6: # We don't use this in endgame return board = model.getBoardAtPly(ply).board #if not board.hasCastled[WHITE] or not board.hasCastled[BLACK]: # # Only applies after castling for both sides # return wking = board.boards[WHITE][KING] bking = board.boards[BLACK][KING] wleft = bin(board.boards[WHITE][PAWN] & left).count("1") wright = bin(board.boards[WHITE][PAWN] & right).count("1") bleft = bin(board.boards[BLACK][PAWN] & left).count("1") bright = bin(board.boards[BLACK][PAWN] & right).count("1") if wking & left and bking & right: if wright > bright: yield (wright+3-bright)*10, _("White should do pawn storm in right") elif bleft > wleft: yield (bright+3-wright)*10, _("Black should do pawn storm in left") if wking & right and bking & left: if wleft > bleft: yield (wleft+3-bleft)*10, _("White should do pawn storm in left") if bright > wright: yield (bleft+3-wleft)*10, _("Black should do pawn storm in right") def tip_mobility (model, ply, phase): board = model.getBoardAtPly(ply).board colorBackup = board.color # People need a chance to get developed #if model.ply < 16: # return board.setColor(WHITE) wmoves = len([move for move in genAllMoves(board) if \ KNIGHT <= board.arBoard[FCORD(move)] <= QUEEN and \ bitPosArray[TCORD(move)] & brank48[WHITE] and \ staticExchangeEvaluate(board, move) >= 0]) board.setColor(BLACK) bmoves = len([move for move in genAllMoves(board) if \ KNIGHT <= board.arBoard[FCORD(move)] <= QUEEN and \ bitPosArray[TCORD(move)] & brank48[BLACK] and \ staticExchangeEvaluate(board, move) >= 0]) board.setColor(colorBackup) if wmoves-phase >= (bmoves+1)*7: yield wmoves-bmoves, _("Black has a rather cramped position") elif wmoves-phase >= (bmoves+1)*3: yield wmoves-bmoves, _("Black has a slightly cramped position") elif bmoves-phase >= (wmoves+1)*7: yield wmoves-bmoves, _("White has a rather cramped position") elif bmoves-phase >= (wmoves+1)*3: yield wmoves-bmoves, _("White has a slightly cramped position") pychess-0.12.2/lib/pychess/Utils/const.py0000755000175000017470000002322112641567764020621 0ustar tamasusers00000000000000# -*- coding: UTF-8 -*- from __future__ import unicode_literals ################################################################################ # PyChess information # ################################################################################ NAME = "PyChess" ################################################################################ # Player info # ################################################################################ # Player types LOCAL, ARTIFICIAL, REMOTE = range(3) # Engine strengths EASY, INTERMEDIATE, EXPERT = range(3) # Player colors WHITE, BLACK = range(2) ################################################################################ # Game values # ################################################################################ # Game states WAITING_TO_START, PAUSED, RUNNING, DRAW, WHITEWON, BLACKWON, KILLED, \ ADJOURNED, ABORTED, UNKNOWN_STATE = range(10) reprResult = ["*", "*", "*", "1/2-1/2", "1-0", "0-1", "*", "*", "*", "*"] UNDOABLE_STATES = (DRAW, WHITEWON, BLACKWON) UNFINISHED_STATES = (WAITING_TO_START, PAUSED, RUNNING, UNKNOWN_STATE) # Chess variants NORMALCHESS, CORNERCHESS, SHUFFLECHESS, FISCHERRANDOMCHESS, RANDOMCHESS, \ ASYMMETRICRANDOMCHESS, UPSIDEDOWNCHESS, PAWNSPUSHEDCHESS, PAWNSPASSEDCHESS, \ THEBANCHESS, PAWNODDSCHESS, KNIGHTODDSCHESS, ROOKODDSCHESS, QUEENODDSCHESS, \ BLINDFOLDCHESS, HIDDENPAWNSCHESS, HIDDENPIECESCHESS, ALLWHITECHESS, \ ATOMICCHESS, BUGHOUSECHESS, CRAZYHOUSECHESS, LOSERSCHESS, SUICIDECHESS, \ WILDCASTLECHESS, WILDCASTLESHUFFLECHESS, KINGOFTHEHILLCHESS, THREECHECKCHESS, \ ASEANCHESS, MAKRUKCHESS, SITTUYINCHESS, CAMBODIANCHESS, AIWOKCHESS, \ EUROSHOGICHESS, SETUPCHESS = range(34) ASEAN_VARIANTS = (ASEANCHESS, MAKRUKCHESS, CAMBODIANCHESS, AIWOKCHESS, SITTUYINCHESS) DROP_VARIANTS = (BUGHOUSECHESS, CRAZYHOUSECHESS, EUROSHOGICHESS, SITTUYINCHESS, SETUPCHESS) UNSUPPORTED = (BUGHOUSECHESS, AIWOKCHESS, EUROSHOGICHESS, SETUPCHESS) # Chess variant groups VARIANTS_BLINDFOLD, VARIANTS_ODDS, VARIANTS_SHUFFLE, VARIANTS_OTHER, \ VARIANTS_OTHER_NONSTANDARD, VARIANTS_ASEAN = range(6) # Action errors ACTION_ERROR_NOT_OUT_OF_TIME, \ ACTION_ERROR_CLOCK_NOT_STARTED, ACTION_ERROR_SWITCH_UNDERWAY, \ ACTION_ERROR_CLOCK_NOT_PAUSED, ACTION_ERROR_TOO_LARGE_UNDO, \ ACTION_ERROR_NONE_TO_ACCEPT, ACTION_ERROR_NONE_TO_WITHDRAW, \ ACTION_ERROR_NONE_TO_DECLINE, = range(8) # Game state reasons ABORTED_ADJUDICATION, ABORTED_AGREEMENT, ABORTED_COURTESY, ABORTED_EARLY, \ ABORTED_SERVER_SHUTDOWN, ADJOURNED_COURTESY, ABORTED_DISCONNECTION, \ ADJOURNED_AGREEMENT, ADJOURNED_LOST_CONNECTION, ADJOURNED_SERVER_SHUTDOWN, \ ADJOURNED_COURTESY_WHITE, ADJOURNED_COURTESY_BLACK, \ ADJOURNED_LOST_CONNECTION_WHITE, ADJOURNED_LOST_CONNECTION_BLACK, \ DRAW_50MOVES, DRAW_ADJUDICATION, DRAW_AGREE, DRAW_CALLFLAG, DRAW_INSUFFICIENT, \ DRAW_EQUALMATERIAL, DRAW_LENGTH, DRAW_REPITITION, DRAW_STALEMATE, \ DRAW_BLACKINSUFFICIENTANDWHITETIME, DRAW_WHITEINSUFFICIENTANDBLACKTIME, \ WON_ADJUDICATION, WON_CALLFLAG, WON_DISCONNECTION, WON_MATE, WON_RESIGN, \ WON_LESSMATERIAL, WON_NOMATERIAL, WON_KINGEXPLODE, WON_KINGINCENTER, \ WON_THREECHECK, \ WHITE_ENGINE_DIED, BLACK_ENGINE_DIED, DISCONNECTED, UNKNOWN_REASON = range(39) UNDOABLE_REASONS = (DRAW_50MOVES, DRAW_INSUFFICIENT, DRAW_LENGTH, DRAW_REPITITION, DRAW_STALEMATE, DRAW_AGREE, DRAW_CALLFLAG, \ DRAW_BLACKINSUFFICIENTANDWHITETIME, \ DRAW_WHITEINSUFFICIENTANDBLACKTIME, \ WON_MATE, WON_NOMATERIAL, WON_CALLFLAG, WON_RESIGN) UNRESUMEABLE_REASONS = (DRAW_50MOVES, DRAW_INSUFFICIENT, DRAW_LENGTH, \ DRAW_REPITITION, DRAW_STALEMATE, WON_MATE, WON_NOMATERIAL) # Player actions RESIGNATION = "resignation" FLAG_CALL = "flag call" DRAW_OFFER = "draw offer" ABORT_OFFER = "abort offer" ADJOURN_OFFER = "adjourn offer" PAUSE_OFFER = "pause offer" RESUME_OFFER = "resume offer" SWITCH_OFFER = "switch offer" TAKEBACK_OFFER = "takeback offer" MATCH_OFFER = "match offer" HURRY_ACTION = "hurry action" CHAT_ACTION = "chat action" ACTIONS = (RESIGNATION, FLAG_CALL, DRAW_OFFER, ABORT_OFFER, ADJOURN_OFFER, \ PAUSE_OFFER, RESUME_OFFER, SWITCH_OFFER, TAKEBACK_OFFER, \ MATCH_OFFER, HURRY_ACTION, CHAT_ACTION) OFFERS = (DRAW_OFFER, ABORT_OFFER, ADJOURN_OFFER, PAUSE_OFFER, \ RESUME_OFFER, SWITCH_OFFER, TAKEBACK_OFFER, MATCH_OFFER) INGAME_ACTIONS = (RESIGNATION, FLAG_CALL, DRAW_OFFER, ABORT_OFFER, \ ADJOURN_OFFER, PAUSE_OFFER, SWITCH_OFFER, HURRY_ACTION) # A few nice to have boards FEN_EMPTY = "4k3/8/8/8/8/8/8/4K3 w - - 0 1" FEN_START = "rnbqkbnr/pppppppp/8/8/8/8/PPPPPPPP/RNBQKBNR w KQkq - 0 1" ################################################################################ # Search values # ################################################################################ hashfALPHA, hashfBETA, hashfEXACT, hashfBAD = range(4) # Engine modes NORMAL, ANALYZING, INVERSE_ANALYZING = range(3) ################################################################################ # Piece types # ################################################################################ # BPAWN is a pawn that moves in the opposite direction EMPTY, PAWN, KNIGHT, BISHOP, ROOK, QUEEN, KING, BPAWN, \ ASEAN_WBISHOP, ASEAN_BBISHOP, ASEAN_QUEEN = range(11) # Is sliding piece sliders = [ False, False, False, True, True, True, False, False, \ False, False, False ] # Piece signs reprSign = ["", "P", "N", "B", "R", "Q", "K"] reprSignMakruk = ["", "P", "N", "S", "R", "M", "K"] reprSignSittuyin = ["", "P", "N", "S", "R", "F", "K"] chr2Sign = {"k":KING, "q": QUEEN, "r": ROOK, "b": BISHOP, "n": KNIGHT, "p":PAWN, "m": QUEEN, "s": BISHOP, "f": QUEEN} chrU2Sign = {"K":KING, "Q": QUEEN, "R": ROOK, "B": BISHOP, "N": KNIGHT, "P":PAWN, "M": QUEEN, "S": BISHOP, "F": QUEEN} ################################################################################ # Move values # ################################################################################ NORMAL_MOVE, QUEEN_CASTLE, KING_CASTLE, ENPASSANT, \ KNIGHT_PROMOTION, BISHOP_PROMOTION, ROOK_PROMOTION, QUEEN_PROMOTION, KING_PROMOTION, NULL_MOVE, DROP = range(11) PROMOTIONS = (KING_PROMOTION, QUEEN_PROMOTION, ROOK_PROMOTION, BISHOP_PROMOTION, KNIGHT_PROMOTION) # Algebraic notation types: Short, Long, Figure and Simpe SAN, LAN, FAN, AN = range(4) # Castling notation types: e.g., O-O, e1g1, e1h1 CASTLE_SAN, CASTLE_KK, CASTLE_KR = range(3) FAN_PIECES = [ ["", "♙", "♘", "♗", "♖", "♕", "♔", ""], ["", "♟", "♞", "♝", "♜", "♛", "♚", ""] ] ################################################################################ # Castling values # ################################################################################ W_OO, W_OOO, B_OO, B_OOO = [2**i for i in range(4)] CAS_FLAGS = ((W_OOO,W_OO),(B_OOO,B_OO)) W_CASTLED, B_CASTLED = [2**i for i in range(2)] ################################################################################ # Cords types # ################################################################################ A1, B1, C1, D1, E1, F1, G1, H1, \ A2, B2, C2, D2, E2, F2, G2, H2, \ A3, B3, C3, D3, E3, F3, G3, H3, \ A4, B4, C4, D4, E4, F4, G4, H4, \ A5, B5, C5, D5, E5, F5, G5, H5, \ A6, B6, C6, D6, E6, F6, G6, H6, \ A7, B7, C7, D7, E7, F7, G7, H7, \ A8, B8, C8, D8, E8, F8, G8, H8 = range (64) reprCord = [ "a1", "b1", "c1", "d1", "e1", "f1", "g1", "h1", "a2", "b2", "c2", "d2", "e2", "f2", "g2", "h2", "a3", "b3", "c3", "d3", "e3", "f3", "g3", "h3", "a4", "b4", "c4", "d4", "e4", "f4", "g4", "h4", "a5", "b5", "c5", "d5", "e5", "f5", "g5", "h5", "a6", "b6", "c6", "d6", "e6", "f6", "g6", "h6", "a7", "b7", "c7", "d7", "e7", "f7", "g7", "h7", "a8", "b8", "c8", "d8", "e8", "f8", "g8", "h8" ] reprFile = ["a", "b", "c", "d", "e", "f", "g", "h"] reprRank = ["1", "2", "3", "4", "5", "6", "7", "8"] cordDic = {} for cord, name in enumerate(reprCord): cordDic[name] = cord ################################################################################ # User interface # ################################################################################ # Hint modes OPENING, ENDGAME, HINT, SPY = ["opening", "endgame", "hint", "spy"] # Sound settings SOUND_MUTE, SOUND_BEEP, SOUND_SELECT, SOUND_URI = range(4) # Brush types. Send piece object for Piece brush CLEAR, ENPAS = range(2) # Main menu items GAME_MENU_ITEMS = ("save_game1", "save_game_as1", "share_game", "export_position1", "analyze_game1", "properties1", "close1") ACTION_MENU_ITEMS = ("abort", "adjourn", "draw", "pause1", "resume1", "undo1", "call_flag", "resign", "ask_to_move") VIEW_MENU_ITEMS = ("rotate_board1", "show_sidepanels", "hint_mode", "spy_mode") EDIT_MENU_ITEMS = ("copy_pgn", "copy_fen",) MENU_ITEMS = GAME_MENU_ITEMS + ACTION_MENU_ITEMS + VIEW_MENU_ITEMS + EDIT_MENU_ITEMS ################################################################################ # Subprocess # ################################################################################ SUBPROCESS_PTY, SUBPROCESS_SUBPROCESS, SUBPROCESS_FORK = range(3) pychess-0.12.2/lib/pychess/Utils/logic.py0000755000175000017470000001630612641567764020576 0ustar tamasusers00000000000000""" This module contains chess logic functins for the pychess client. They are based upon the lutils modules, but supports standard object types and is therefore not as fast. """ from __future__ import absolute_import from .lutils import lmovegen from .lutils.validator import validateMove from .lutils.lmove import FCORD, TCORD from .lutils import ldraw from .Cord import Cord from .Move import Move from .const import * from .lutils.bitboard import iterBits from .lutils.attack import getAttacks from pychess.Variants.suicide import pieceCount from pychess.Variants.losers import testKingOnly from pychess.Variants.atomic import kingExplode from pychess.Variants.kingofthehill import testKingInCenter from pychess.Variants.threecheck import checkCount def getDestinationCords (board, cord): tcords = [] for move in lmovegen.genAllMoves (board.board): if FCORD(move) == cord.cord: if not board.board.willLeaveInCheck(move): tcords.append(Cord(TCORD(move))) return tcords def isClaimableDraw (board): lboard = board.board if lboard.repetitionCount () >= 3: return True if ldraw.testFifty (lboard): return True return False def playerHasMatingMaterial (board, playercolor): lboard = board.board return ldraw.testPlayerMatingMaterial(lboard, playercolor) def getStatus (board): lboard = board.board if board.variant == LOSERSCHESS: if testKingOnly(lboard): if board.color == WHITE: status = WHITEWON else: status = BLACKWON return status, WON_NOMATERIAL elif board.variant == SUICIDECHESS: if pieceCount(lboard, lboard.color) == 0: if board.color == WHITE: status = WHITEWON else: status = BLACKWON return status, WON_NOMATERIAL elif board.variant == ATOMICCHESS: if lboard.boards[board.color][KING] == 0: if board.color == WHITE: status = BLACKWON else: status = WHITEWON return status, WON_KINGEXPLODE elif board.variant == KINGOFTHEHILLCHESS: if testKingInCenter(lboard): if board.color == BLACK: status = WHITEWON else: status = BLACKWON return status, WON_KINGINCENTER elif board.variant == THREECHECKCHESS: if checkCount(lboard) == 3: if board.color == BLACK: status = WHITEWON else: status = BLACKWON return status, WON_THREECHECK else: if ldraw.testMaterial (lboard): return DRAW, DRAW_INSUFFICIENT hasMove = False for move in lmovegen.genAllMoves (lboard): if board.variant == ATOMICCHESS: if kingExplode(lboard, move, 1-board.color) and not kingExplode(lboard, move, board.color): hasMove = True break elif kingExplode(lboard, move, board.color): continue lboard.applyMove(move) if lboard.opIsChecked(): lboard.popMove() continue hasMove = True lboard.popMove() break if not hasMove: if lboard.isChecked(): if board.variant == LOSERSCHESS: if board.color == WHITE: status = WHITEWON else: status = BLACKWON else: if board.color == WHITE: status = BLACKWON else: status = WHITEWON return status, WON_MATE else: if board.variant == LOSERSCHESS: if board.color == WHITE: status = WHITEWON else: status = BLACKWON return status, DRAW_STALEMATE elif board.variant == SUICIDECHESS: if pieceCount(lboard, WHITE) == pieceCount(lboard, BLACK): return status, DRAW_EQUALMATERIAL else: if board.color == WHITE and pieceCount(lboard, WHITE) < pieceCount(lboard, BLACK): status = WHITEWON else: status = BLACKWON return status, WON_LESSMATERIAL else: return DRAW, DRAW_STALEMATE if lboard.repetitionCount () >= 3: return DRAW, DRAW_REPITITION if ldraw.testFifty (lboard): return DRAW, DRAW_50MOVES return RUNNING, UNKNOWN_REASON def standard_validate (board, move): return validateMove (board.board, move.move) and \ not board.board.willLeaveInCheck(move.move) def validate (board, move): if board.variant == LOSERSCHESS: capture = move.flag == ENPASSANT or board[move.cord1] != None if capture: return standard_validate (board, move) else: can_capture = False can_escape_with_capture= False ischecked = board.board.isChecked() for c in lmovegen.genCaptures(board.board): if board.board.willLeaveInCheck(c): continue else: can_capture = True if ischecked: can_escape_with_capture = True break if can_capture: if ischecked and not can_escape_with_capture: return standard_validate (board, move) else: return False else: return standard_validate (board, move) elif board.variant == SUICIDECHESS: capture = move.flag == ENPASSANT or board[move.cord1] != None if capture: return standard_validate (board, move) else: can_capture = False for c in lmovegen.genCaptures(board.board): from pychess.Utils.Move import Move can_capture = True #break if can_capture: return False else: return standard_validate (board, move) elif board.variant == ATOMICCHESS: # Moves exploding our king are not allowed if kingExplode(board.board, move.move, board.color): return False # Exploding oppont king takes precedence over mate elif kingExplode(board.board, move.move, 1-board.color) and validateMove(board.board, move.move): return True else: return standard_validate (board, move) else: return standard_validate (board, move) def getMoveKillingKing (board): """ Returns a move from the current color, able to capture the opponent king """ lboard = board.board color = lboard.color opking = lboard.kings[1-color] for cord in iterBits (getAttacks(lboard, opking, color)): return Move(Cord(cord), Cord(opking), board) def genCastles (board): for move in lmovegen.genCastles(board.board): yield Move(move) def legalMoveCount (board): moves = 0 for move in lmovegen.genAllMoves (board.board): if not board.board.willLeaveInCheck(move): moves += 1 return moves pychess-0.12.2/lib/pychess/Utils/eco.py0000644000175000017470000000201612641567764020235 0ustar tamasusers00000000000000from __future__ import print_function import os import atexit import gettext import sqlite3 import struct from pychess.compat import memoryview from pychess.System.prefix import addDataPrefix, isInstalled db_path = os.path.join(addDataPrefix("eco.db")) if os.path.exists(db_path): conn = sqlite3.connect(db_path, check_same_thread = False) atexit.register(conn.close) ECO_OK = True else: print("Warning: eco.db not found, please run pgn2ecodb.sh") ECO_OK = False if isInstalled(): mofile = gettext.find('pychess') else: mofile = gettext.find('pychess', localedir=addDataPrefix("lang")) if mofile is None: lang = "en" else: lang = mofile.split(os.sep)[-3] # big-endian, unsigned long long (uint64) hash_struct = struct.Struct('>Q') def get_eco(hash): if not ECO_OK: return None cur = conn.cursor() select = "select eco, opening, variation from openings where hash=? and lang=?" cur.execute(select, (memoryview(hash_struct.pack(hash)), lang)) return cur.fetchone() pychess-0.12.2/lib/pychess/Utils/EndgameTable.py0000644000175000017470000000461512641567764022006 0ustar tamasusers00000000000000from __future__ import absolute_import from gi.repository import GObject from .Move import Move from .lutils.egtb_k4it import egtb_k4it from .lutils.egtb_gaviota import egtb_gaviota providers = [] class EndgameTable(GObject.GObject): """ Wrap the low-level providers of exact endgame knowledge. """ __gsignals__ = { "scored": (GObject.SignalFlags.RUN_FIRST, None, (object,)), } def __init__ (self): GObject.GObject.__init__(self) global providers if not providers: providers = [ egtb_gaviota(), egtb_k4it() ] self.providers = providers def _pieceCounts (self, board): return sorted([ bin(board.friends[i]).count("1") for i in range(2) ]) def scoreGame (self, lBoard, omitDepth=False, probeSoft=False): """ Return result and depth to mate. (Intended for engine use.) lBoard: A low-level board structure omitDepth: Look up only the game's outcome (may save time) probeSoft: Fail if the probe would require disk or network access. Return value: game_result: Either WHITEWON, DRAW, BLACKWON, or (on failure) None depth: Depth to mate, or (if omitDepth or the game is drawn) None """ pc = self._pieceCounts(lBoard) for provider in self.providers: if provider.supports(pc): result, depth = provider.scoreGame(lBoard, needDepth, probeSoft) if result is not None: return result, depth return None, None def scoreAllMoves (self, lBoard): """ Return each move's result and depth to mate. lBoard: A low-level board structure Return value: a list, with best moves first, of: move: A high-level move structure game_result: Either WHITEWON, DRAW, BLACKWON depth: Depth to mate """ pc = self._pieceCounts(lBoard) for provider in self.providers: if provider.supports(pc): results = provider.scoreAllMoves(lBoard) if results: ret = [] for lMove, result, depth in results: ret.append( (Move(lMove), result, depth) ) self.emit("scored", (lBoard, ret)) return ret return [] pychess-0.12.2/lib/pychess/Utils/Cord.py0000755000175000017470000000453012641567764020364 0ustar tamasusers00000000000000from __future__ import absolute_import from .lutils.lmove import FILE, RANK class CordFormatException(Exception): pass class Cord: def __init__ (self, var1, var2 = None): """ Inits a new highlevel cord object. The cord B3 can be inited in the folowing ways: Cord(17), Cord("b3"), Cord(1,2), Cord("b",3) """ if var2 == None: if isinstance(var1, int): # We assume the format Cord(17) self.x = FILE(var1) self.y = RANK(var1) else: # We assume the format Cord("b3") self.x = self.charToInt(var1[0]) self.y = int(var1[1]) - 1 else: if isinstance(var1, str): # We assume the format Cord("b",3) self.x = self.charToInt(var1) self.y = var2 -1 else: # We assume the format Cord(1,2) self.x = var1 self.y = var2 def _get_cord (self): return self.y*8+self.x cord = property(_get_cord) def _get_cx (self): return self.intToChar(self.x) cx = property(_get_cx) def _get_cy (self): return str(self.y+1) cy = property(_get_cy) def intToChar (self, x): #assert 0 <= x <= 7 return chr(x + ord('a')) def charToInt (self, char): a = ord(char) if ord('A') <= a <= ord('H'): a -= ord('A'); elif ord('a') <= a <= ord('h'): a -= ord('a'); else: raise CordFormatException("x < 0 || x > 7 (%s, %d)" % (char, a)) return a def _set_cords (self, x_y): self.x, self.y = x_y def _get_cords (self): return (self.x, self.y) cords = property(_get_cords, _set_cords) def __cmp__ (self, other): if other == None: return 1 if cmp (self.x, other.x): return cmp (self.x, other.x) if cmp (self.y, other.y): return cmp (self.y, other.y) return 0 def __eq__ (self, other): return other != None and other.x == self.x and other.y == self.y def __ne__ (self, other): return not self.__eq__(other) def __repr__ (self): return self.cx + self.cy def __hash__ (self): return self.x*8+self.y pychess-0.12.2/lib/pychess/Utils/IconLoader.py0000755000175000017470000000163312641567764021515 0ustar tamasusers00000000000000from gi.repository import Gio from gi.repository import Gtk from gi.repository import GdkPixbuf from pychess.System.Log import log from pychess.System.prefix import addDataPrefix it = Gtk.IconTheme.get_default() def load_icon(size, *alternatives): alternatives = list(alternatives) name = alternatives.pop(0) try: return it.load_icon(name, size, Gtk.IconLookupFlags.USE_BUILTIN) except: if alternatives: return load_icon(size, *alternatives) log.warning("no %s icon in icon-theme-gnome" % name) # Gdk.Pixbuf.new_from_file() doesn't work on Windows if path contains non ascii chars def get_pixbuf(path, size=None): file = Gio.File.new_for_path(addDataPrefix(path)) if size is None: return GdkPixbuf.Pixbuf.new_from_stream(file.read(None), None) else: return GdkPixbuf.Pixbuf.new_from_stream_at_scale(file.read(None), size, size, True, None) pychess-0.12.2/lib/pychess/Utils/repr.py0000755000175000017470000000764712653222726020446 0ustar tamasusers00000000000000from __future__ import absolute_import from .const import * from pychess.compat import builtins if '_' not in builtins.__dict__: builtins.__dict__['_'] = lambda s: s builtins.__dict__['ngettext'] = lambda singular, plural, n: singular if n == 1 else plural reprColor = [_("White"), _("Black")] reprPiece = ["Empty", _("Pawn"), _("Knight"), _("Bishop"), _("Rook"), _("Queen"), _("King"), "BPawn"] localReprSign = ["", _("P"), _("N"), _("B"), _("R"), _("Q"), _("K")] reprResult_long = { DRAW: _("The game ended in a draw"), WHITEWON: _("%(white)s won the game"), BLACKWON: _("%(black)s won the game"), KILLED: _("The game has been killed"), ADJOURNED: _("The game has been adjourned"), ABORTED: _("The game has been aborted"), } reprReason_long = { DRAW_INSUFFICIENT: _("Because neither player has sufficient material to mate"), DRAW_REPITITION: _("Because the same position was repeated three times in a row"), DRAW_50MOVES: _("Because the last 50 moves brought nothing new"), DRAW_CALLFLAG: _("Because both players ran out of time"), DRAW_STALEMATE: _("Because %(mover)s stalemated"), DRAW_AGREE: _("Because both players agreed to a draw"), DRAW_ADJUDICATION: _("Because of adjudication by an admin"), DRAW_LENGTH: _("Because the game exceed the max length"), DRAW_BLACKINSUFFICIENTANDWHITETIME: _("Because %(white)s ran out of time and %(black)s has insufficient material to mate"), DRAW_WHITEINSUFFICIENTANDBLACKTIME: _("Because %(black)s ran out of time and %(white)s has insufficient material to mate"), DRAW_EQUALMATERIAL: _("Because both players have the same amount of pieces"), WON_RESIGN: _("Because %(loser)s resigned"), WON_CALLFLAG: _("Because %(loser)s ran out of time"), WON_MATE: _("Because %(loser)s was checkmated"), WON_DISCONNECTION: _("Because %(loser)s disconnected"), WON_ADJUDICATION: _("Because of adjudication by an admin"), WON_LESSMATERIAL: _("Because %(winner)s has fewer pieces"), WON_NOMATERIAL: _("Because %(winner)s lost all pieces"), WON_KINGEXPLODE: _("Because %(loser)s king exploded"), WON_KINGINCENTER: _("Because %(winner)s king reached the center"), WON_THREECHECK: _("Because %(winner)s was giving check 3 times"), ADJOURNED_LOST_CONNECTION: _("Because a player lost connection"), ADJOURNED_AGREEMENT: _("Because both players agreed to an adjournment"), ADJOURNED_SERVER_SHUTDOWN: _("Because the server was shut down"), ADJOURNED_COURTESY: _("Because a player lost connection and the other player requested adjournment"), ADJOURNED_COURTESY_WHITE: _("Because %(black)s lost connection to the server and %(white)s requested adjournment"), ADJOURNED_COURTESY_BLACK: _("Because %(white)s lost connection to the server and %(black)s requested adjournment"), ADJOURNED_LOST_CONNECTION_WHITE: _("Because %(white)s lost connection to the server"), ADJOURNED_LOST_CONNECTION_BLACK: _("Because %(black)s lost connection to the server"), ABORTED_ADJUDICATION: _("Because of adjudication by an admin. No rating changes have occurred."), ABORTED_AGREEMENT: _("Because both players agreed to abort the game. No rating changes have occurred."), ABORTED_COURTESY: _("Because of courtesy by a player. No rating changes have occurred."), ABORTED_EARLY: _("Because a player aborted the game. Either player can abort the game without the other's consent before the second move. No rating changes have occurred."), ABORTED_DISCONNECTION: _("Because a player disconnected and there are too few moves to warrant adjournment. No rating changes have occurred."), ABORTED_SERVER_SHUTDOWN: _("Because the server was shut down. No rating changes have occurred."), WHITE_ENGINE_DIED: _("Because the %(white)s engine died"), BLACK_ENGINE_DIED: _("Because the %(black)s engine died"), DISCONNECTED: _("Because the connection to the server was lost"), UNKNOWN_REASON: _("The reason is unknown") } pychess-0.12.2/lib/pychess/Utils/GameModel.py0000644000175000017470000011061712652520515021311 0ustar tamasusers00000000000000from __future__ import absolute_import from collections import defaultdict from threading import RLock, Thread import traceback import datetime from gi.repository import GObject from pychess.compat import basestring, Queue, Empty, StringIO from pychess.Savers.ChessFile import LoadingError from pychess.Players.Player import PlayerIsDead, TurnInterrupt, InvalidMove from pychess.System import conf, fident from pychess.System.protoopen import protoopen, protosave, isWriteable from pychess.System.Log import log from pychess.Utils.Move import Move, toSAN from pychess.Utils.eco import get_eco from pychess.Utils.Offer import Offer from pychess.Utils.TimeModel import TimeModel from pychess.Variants.normal import NormalBoard from pychess.Variants import variants from .logic import getStatus, isClaimableDraw, playerHasMatingMaterial from .const import * def undolocked (f): def newFunction(*args, **kw): self = args[0] log.debug("undolocked: adding func to queue: %s %s %s" % \ (repr(f), repr(args), repr(kw))) self.undoQueue.put((f, args, kw)) locked = self.undoLock.acquire(blocking=False) if locked: try: while True: try: func, args, kw = self.undoQueue.get_nowait() log.debug("undolocked: running queued func: %s %s %s" % \ (repr(func), repr(args), repr(kw))) func(*args, **kw) except Empty: break finally: self.undoLock.release() return newFunction def inthread (f): def newFunction(*args, **kwargs): t = Thread(target=f, name=fident(f), args=args, kwargs=kwargs) t.daemon = True t.start() return newFunction class GameModel (GObject.GObject, Thread): """ GameModel contains all available data on a chessgame. It also has the task of controlling players actions and moves """ __gsignals__ = { # game_started is emitted when control is given to the players for the # first time. Notice this is after players.start has been called. "game_started": (GObject.SignalFlags.RUN_FIRST, None, ()), # game_changed is emitted when a move has been made. "game_changed": (GObject.SignalFlags.RUN_FIRST, None, (int,)), # moves_undoig is emitted when a undoMoves call has been accepted, but # before anywork has been done to execute it. "moves_undoing": (GObject.SignalFlags.RUN_FIRST, None, (int,)), # moves_undone is emitted after n moves have been undone in the # gamemodel and the players. "moves_undone": (GObject.SignalFlags.RUN_FIRST, None, (int,)), # game_unended is emitted if moves have been undone, such that the game # which had previously ended, is now again active. "game_unended": (GObject.SignalFlags.RUN_FIRST, None, ()), # game_loading is emitted if the GameModel is about to load in a chess # game from a file. "game_loading": (GObject.SignalFlags.RUN_FIRST, None, (object,)), # game_loaded is emitted after the chessformat handler has loaded in # all the moves from a file to the game model. "game_loaded": (GObject.SignalFlags.RUN_FIRST, None, (object,)), # game_saved is emitted in the end of model.save() "game_saved": (GObject.SignalFlags.RUN_FIRST, None, (str,)), # game_ended is emitted if the models state has been changed to an # "ended state" "game_ended": (GObject.SignalFlags.RUN_FIRST, None, (int,)), # game_terminated is emitted if the game was terminated. That is all # players and clocks were stopped, and it is no longer possible to # resume the game, even by undo. "game_terminated": (GObject.SignalFlags.RUN_FIRST, None, ()), # game_paused is emitted if the game was successfully paused. "game_paused": (GObject.SignalFlags.RUN_FIRST, None, ()), # game_paused is emitted if the game was successfully resumed from a # pause. "game_resumed": (GObject.SignalFlags.RUN_FIRST, None, ()), # action_error is currently only emitted by ICGameModel, in the case # the "web model" didn't accept the action you were trying to do. "action_error": (GObject.SignalFlags.RUN_FIRST, None, (object, int)), # players_changed is emitted if the players list was changed. "players_changed": (GObject.SignalFlags.RUN_FIRST, None, ()), "analyzer_added": (GObject.SignalFlags.RUN_FIRST, None, (object, str)), "analyzer_removed": (GObject.SignalFlags.RUN_FIRST, None, (object, str)), "analyzer_paused": (GObject.SignalFlags.RUN_FIRST, None, (object, str)), "analyzer_resumed": (GObject.SignalFlags.RUN_FIRST, None, (object, str)), # opening_changed is emitted if the move changed the opening. "opening_changed": (GObject.SignalFlags.RUN_FIRST, None, ()), # variation_added is emitted if a variation was added. "variation_added": (GObject.SignalFlags.RUN_FIRST, None, (object, object, str, str)), # variation_extended is emitted if a new move was added to a variation. "variation_extended": (GObject.SignalFlags.RUN_FIRST, None, (object, object)), # scores_changed is emitted if the analyzing scores was changed. "analysis_changed": (GObject.SignalFlags.RUN_FIRST, None, (int,)), # FICS games can get kibitz/whisper messages "message_received": (GObject.SignalFlags.RUN_FIRST, None, (str, str)), # FICS games can have observers "observers_received": (GObject.SignalFlags.RUN_FIRST, None, (str,)), } def __init__ (self, timemodel=None, variant=NormalBoard): GObject.GObject.__init__(self) Thread.__init__(self, name=fident(self.run)) self.daemon = True self.variant = variant self.boards = [variant(setup=True)] self.moves = [] self.scores = {} self.spy_scores = {} self.players = [] self.gameno = None self.variations = [self.boards] self.status = WAITING_TO_START self.reason = UNKNOWN_REASON self.curColor = WHITE if timemodel is None: self.timemodel = TimeModel() else: self.timemodel = timemodel self.timemodel.gamemodel = self self.connections = defaultdict(list) # mainly for IC subclasses self.examined = False now = datetime.datetime.now() self.tags = { "Event": _("Local Event"), "Site": _("Local Site"), "Round": 1, "Year": now.year, "Month": now.month, "Day": now.day, "Time": "%02d:%02d:00" % (now.hour, now.minute), "Result": "*", } self.endstatus = None self.timed = self.timemodel.secs!=0 or self.timemodel.gain!=0 if self.timed: self.timemodel.connect('zero_reached', self.zero_reached) self.tags["TimeControl"] = \ "%d+%d" % (self.timemodel.minutes*60, self.timemodel.gain) # Notice: tags["WhiteClock"] and tags["BlackClock"] are never set # on the gamemodel, but simply written or read during saving/ # loading from pgn. If you want to know the time left for a player, # check the time model. # Keeps track of offers, so that accepts can be spotted self.offers = {} # True if the game has been changed since last save self.needsSave = False # The uri the current game was loaded from, or None if not a loaded game self.uri = None self.spectators = {} self.applyingMoveLock = RLock() self.undoLock = RLock() self.undoQueue = Queue() def zero_reached (self, timemodel, color): if conf.get('autoCallFlag', False) and \ self.players[1-color].__type__ == ARTIFICIAL: if self.status == RUNNING and timemodel.getPlayerTime(color) <= 0: log.info('Automatically sending flag call on behalf of player %s.' % self.players[1-color].name) self.players[1-color].emit("offer", Offer(FLAG_CALL)) def __repr__ (self): s = " 0: s += ", move=%s" % self.moves[-1] s += ", variant=%s" % self.variant.name.encode('utf-8') s += ", status=%s, reason=%s" % (str(self.status), str(self.reason)) s += ", players=%s" % str(self.players) s += ", tags=%s" % str(self.tags) if len(self.boards) > 0: s += "\nboard=%s" % self.boards[-1] return s + ")>" @property def display_text (self): if self.variant == NormalBoard and not self.timed: return "[ " + _("Untimed") + " ]" else: t = "[ " if self.variant != NormalBoard: t += self.variant.name + " " if self.timed: t += self.timemodel.display_text + " " return t + "]" def setPlayers (self, players): log.debug("GameModel.setPlayers: starting") assert self.status == WAITING_TO_START self.players = players for player in self.players: self.connections[player].append(player.connect("offer", self.offerReceived)) self.connections[player].append(player.connect("withdraw", self.withdrawReceived)) self.connections[player].append(player.connect("decline", self.declineReceived)) self.connections[player].append(player.connect("accept", self.acceptReceived)) self.tags["White"] = str(self.players[WHITE]) self.tags["Black"] = str(self.players[BLACK]) log.debug("GameModel.setPlayers: -> emit players_changed") self.emit("players_changed") log.debug("GameModel.setPlayers: <- emit players_changed") log.debug("GameModel.setPlayers: returning") def color (self, player): if player is self.players[0]: return WHITE else: return BLACK def start_analyzer (self, analyzer_type): from pychess.Players.engineNest import init_engine analyzer = init_engine(analyzer_type, self) if analyzer is None: return analyzer.setOptionInitialBoard(self) self.spectators[analyzer_type] = analyzer self.emit("analyzer_added", analyzer, analyzer_type) analyzer.connect("analyze", self.on_analyze) return analyzer def remove_analyzer (self, analyzer_type): try: analyzer = self.spectators[analyzer_type] except KeyError: return analyzer.end(KILLED, UNKNOWN_REASON) self.emit("analyzer_removed", analyzer, analyzer_type) del self.spectators[analyzer_type] def resume_analyzer (self, analyzer_type): try: analyzer = self.spectators[analyzer_type] except KeyError: analyzer = self.start_analyzer(analyzer_type) if analyzer is None: return analyzer.resume() analyzer.setOptionInitialBoard(self) self.emit("analyzer_resumed", analyzer, analyzer_type) def pause_analyzer (self, analyzer_type): try: analyzer = self.spectators[analyzer_type] except KeyError: return analyzer.pause() self.emit("analyzer_paused", analyzer, analyzer_type) def restart_analyzer (self, analyzer_type): self.remove_analyzer(analyzer_type) self.start_analyzer(analyzer_type) if self.isPlayingICSGame(): self.pause_analyzer(analyzer_type) def on_analyze(self, analyzer, analysis): if analysis and analysis[0] is not None: pv, score, depth = analysis[0] ply = analyzer.board.ply if score != None: if analyzer.mode == ANALYZING: self.scores[ply] = (pv, score, depth) self.emit("analysis_changed", ply) else: self.spy_scores[ply] = (pv, score, depth) def setOpening(self, ply=None): if ply is None: ply = self.ply if ply > 40: return if ply > 0: opening = get_eco(self.getBoardAtPly(ply).board.hash) else: opening = ("", "", "") if opening is not None: self.tags["ECO"] = opening[0] self.tags["Opening"] = opening[1] self.tags["Variation"] = opening[2] self.emit("opening_changed") ############################################################################ # Board stuff # ############################################################################ def _get_ply (self): return self.boards[-1].ply ply = property(_get_ply) def _get_lowest_ply (self): return self.boards[0].ply lowply = property(_get_lowest_ply) def _get_curplayer (self): try: return self.players[self.getBoardAtPly(self.ply).color] except IndexError: log.error("%s %s" % (self.players, self.getBoardAtPly(self.ply).color)) raise curplayer = property(_get_curplayer) def _get_waitingplayer (self): try: return self.players[1 - self.getBoardAtPly(self.ply).color] except IndexError: log.error("%s %s" % (self.players, 1 - self.getBoardAtPly(self.ply).color)) raise waitingplayer = property(_get_waitingplayer) def _plyToIndex (self, ply): index = ply - self.lowply if index < 0: raise IndexError("%s < %s\n" % (ply, self.lowply)) return index def getBoardAtPly (self, ply, variation=0): # Losing on time in FICS game will undo our last move if it was taken too late if variation == 0 and ply > self.ply: ply = self.ply try: return self.variations[variation][self._plyToIndex(ply)] except IndexError: log.error("%d\t%d\t%d\t%d\t%d" % (self.lowply, ply, self.ply, variation, len(self.variations))) raise def getMoveAtPly (self, ply, variation=0): try: return Move(self.variations[variation][self._plyToIndex(ply)+1].board.lastMove) except IndexError: log.error("%d\t%d\t%d\t%d\t%d" % (self.lowply, ply, self.ply, variation, len(self.variations))) raise def hasLocalPlayer (self): if self.players[0].__type__ == LOCAL or self.players[1].__type__ == LOCAL: return True else: return False def hasEnginePlayer (self): if self.players[0].__type__ == ARTIFICIAL or self.players[1].__type__ == ARTIFICIAL: return True else: return False def isLocalGame (self): if self.players[0].__type__ != REMOTE and self.players[1].__type__ != REMOTE: return True else: return False def isObservationGame (self): return not self.hasLocalPlayer() def isEngine2EngineGame (self): if self.players[0].__type__ == ARTIFICIAL and self.players[1].__type__ == ARTIFICIAL: return True else: return False def isPlayingICSGame(self): if self.players and self.status in (WAITING_TO_START, PAUSED, RUNNING): if self.players[0].__type__ == LOCAL and self.players[1].__type__ == REMOTE or \ self.players[1].__type__ == LOCAL and self.players[0].__type__ == REMOTE: return True return False def isLoadedGame(self): return self.gameno is not None ############################################################################ # Offer management # ############################################################################ def offerReceived (self, player, offer): log.debug("GameModel.offerReceived: offerer=%s %s" % (repr(player), offer)) if player == self.players[WHITE]: opPlayer = self.players[BLACK] elif player == self.players[BLACK]: opPlayer = self.players[WHITE] else: # Player comments echoed to opponent if the player started a conversation # with you prior to observing a game the player is in #1113 return if offer.type == HURRY_ACTION: opPlayer.hurry() elif offer.type == CHAT_ACTION: #print("GameModel.offerreceived(player, offer)", player.name, offer.param) opPlayer.putMessage(offer.param) elif offer.type == RESIGNATION: if player == self.players[WHITE]: self.end(BLACKWON, WON_RESIGN) else: self.end(WHITEWON, WON_RESIGN) elif offer.type == FLAG_CALL: assert self.timed if self.timemodel.getPlayerTime(1-player.color) <= 0: if self.timemodel.getPlayerTime(player.color) <= 0: self.end(DRAW, DRAW_CALLFLAG) elif not playerHasMatingMaterial(self.boards[-1], player.color): if player.color == WHITE: self.end(DRAW, DRAW_WHITEINSUFFICIENTANDBLACKTIME) else: self.end(DRAW, DRAW_BLACKINSUFFICIENTANDWHITETIME) else: if player == self.players[WHITE]: self.end(WHITEWON, WON_CALLFLAG) else: self.end(BLACKWON, WON_CALLFLAG) else: player.offerError(offer, ACTION_ERROR_NOT_OUT_OF_TIME) elif offer.type == DRAW_OFFER and isClaimableDraw(self.boards[-1]): reason = getStatus(self.boards[-1])[1] self.end(DRAW, reason) elif offer.type == TAKEBACK_OFFER and offer.param < self.lowply: player.offerError(offer, ACTION_ERROR_TOO_LARGE_UNDO) elif offer.type in OFFERS: if offer not in self.offers: log.debug("GameModel.offerReceived: doing %s.offer(%s)" % \ (repr(opPlayer), offer)) self.offers[offer] = player opPlayer.offer(offer) # If we updated an older offer, we want to delete the old one for offer_ in self.offers.keys(): if offer.type == offer_.type and offer != offer_: del self.offers[offer_] def withdrawReceived (self, player, offer): log.debug("GameModel.withdrawReceived: withdrawer=%s %s" % \ (repr(player), offer)) if player == self.players[WHITE]: opPlayer = self.players[BLACK] else: opPlayer = self.players[WHITE] if offer in self.offers and self.offers[offer] == player: del self.offers[offer] opPlayer.offerWithdrawn(offer) else: player.offerError(offer, ACTION_ERROR_NONE_TO_WITHDRAW) def declineReceived (self, player, offer): log.debug("GameModel.declineReceived: decliner=%s %s" % (repr(player), offer)) if player == self.players[WHITE]: opPlayer = self.players[BLACK] else: opPlayer = self.players[WHITE] if offer in self.offers and self.offers[offer] == opPlayer: del self.offers[offer] log.debug("GameModel.declineReceived: declining %s" % offer) opPlayer.offerDeclined(offer) else: player.offerError(offer, ACTION_ERROR_NONE_TO_DECLINE) def acceptReceived (self, player, offer): log.debug("GameModel.acceptReceived: accepter=%s %s" % (repr(player), offer)) if player == self.players[WHITE]: opPlayer = self.players[BLACK] else: opPlayer = self.players[WHITE] if offer in self.offers and self.offers[offer] == opPlayer: if offer.type == DRAW_OFFER: self.end(DRAW, DRAW_AGREE) elif offer.type == TAKEBACK_OFFER: log.debug("GameModel.acceptReceived: undoMoves(%s)" % \ (self.ply - offer.param)) self.undoMoves(self.ply - offer.param) elif offer.type == ADJOURN_OFFER: self.end(ADJOURNED, ADJOURNED_AGREEMENT) elif offer.type == ABORT_OFFER: self.end(ABORTED, ABORTED_AGREEMENT) elif offer.type == PAUSE_OFFER: self.pause() elif offer.type == RESUME_OFFER: self.resume() del self.offers[offer] else: player.offerError(offer, ACTION_ERROR_NONE_TO_ACCEPT) ############################################################################ # Data stuff # ############################################################################ def loadAndStart (self, uri, loader, gameno, position, first_time=True): if first_time: assert self.status == WAITING_TO_START uriIsFile = not isinstance(uri, str) if not uriIsFile: chessfile = loader.load(protoopen(uri)) else: chessfile = loader.load(uri) self.gameno = gameno self.emit("game_loading", uri) try: chessfile.loadToModel(gameno, -1, self) #Postpone error raising to make games loadable to the point of the error except LoadingError as e: error = e else: error = None if self.players: self.players[WHITE].setName(self.tags["White"]) self.players[BLACK].setName(self.tags["Black"]) self.emit("game_loaded", uri) self.needsSave = False if not uriIsFile: self.uri = uri else: self.uri = None # Even if the game "starts ended", the players should still be moved # to the last position, so analysis is correct, and a possible "undo" # will work as expected. for spectator in self.spectators.values(): spectator.setOptionInitialBoard(self) for player in self.players: player.setOptionInitialBoard(self) if self.timed: self.timemodel.setMovingColor(self.boards[-1].color) if first_time: if self.status == RUNNING: if self.timed and self.ply >= 2: self.timemodel.start() # Store end status from Result tag if self.status in (DRAW, WHITEWON, BLACKWON): self.endstatus = self.status self.status = WAITING_TO_START self.start() if error: raise error def save (self, uri, saver, append, position=None): if isinstance(uri, basestring): fileobj = protosave(uri, append) self.uri = uri else: fileobj = uri self.uri = None saver.save(fileobj, self, position) self.needsSave = False self.emit("game_saved", uri) ############################################################################ # Run stuff # ############################################################################ def run (self): log.debug("GameModel.run: Starting. self=%s" % self) # Avoid racecondition when self.start is called while we are in self.end if self.status != WAITING_TO_START: return self.status = RUNNING for player in self.players + list(self.spectators.values()): player.start() log.debug("GameModel.run: emitting 'game_started' self=%s" % self) self.emit("game_started") # Let GameModel end() itself on games started with loadAndStart() self.checkStatus() self.curColor = self.boards[-1].color while self.status in (PAUSED, RUNNING, DRAW, WHITEWON, BLACKWON): curPlayer = self.players[self.curColor] if self.timed: log.debug("GameModel.run: id=%s, players=%s, self.ply=%s: updating %s's time" % \ (id(self), str(self.players), str(self.ply), str(curPlayer))) curPlayer.updateTime(self.timemodel.getPlayerTime(self.curColor), self.timemodel.getPlayerTime(1-self.curColor)) try: log.debug("GameModel.run: id=%s, players=%s, self.ply=%s: calling %s.makeMove()" % \ (id(self), str(self.players), self.ply, str(curPlayer))) if self.ply > self.lowply: move = curPlayer.makeMove(self.boards[-1], self.moves[-1], self.boards[-2]) else: move = curPlayer.makeMove(self.boards[-1], None, None) log.debug("GameModel.run: id=%s, players=%s, self.ply=%s: got move=%s from %s" % \ (id(self), str(self.players), self.ply, move, str(curPlayer))) except PlayerIsDead as e: if self.status in (WAITING_TO_START, PAUSED, RUNNING): stringio = StringIO() traceback.print_exc(file=stringio) error = stringio.getvalue() log.error("GameModel.run: A Player died: player=%s error=%s\n%s" % (curPlayer, error, e)) if self.curColor == WHITE: self.kill(WHITE_ENGINE_DIED) else: self.kill(BLACK_ENGINE_DIED) break except InvalidMove as e: if self.curColor == WHITE: self.end(BLACKWON, WON_ADJUDICATION) else: self.end(WHITEWON, WON_ADJUDICATION) break except TurnInterrupt: log.debug("GameModel.run: id=%s, players=%s, self.ply=%s: TurnInterrupt" % \ (id(self), str(self.players), self.ply)) self.curColor = self.boards[-1].color continue log.debug("GameModel.run: id=%s, players=%s, self.ply=%s: acquiring self.applyingMoveLock" % \ (id(self), str(self.players), self.ply)) assert isinstance(move, Move), "%s" % repr(move) self.applyingMoveLock.acquire() try: log.debug("GameModel.run: id=%s, players=%s, self.ply=%s: applying move=%s" % \ (id(self), str(self.players), self.ply, str(move))) self.needsSave = True newBoard = self.boards[-1].move(move) newBoard.board.prev = self.boards[-1].board # Variation on next move can exist from the hint panel... if self.boards[-1].board.next is not None: newBoard.board.children = self.boards[-1].board.next.children self.boards = self.variations[0] self.boards[-1].board.next = newBoard.board self.boards.append(newBoard) self.moves.append(move) if self.timed: self.timemodel.tap() self.emit("game_changed", self.ply) for spectator in self.spectators.values(): if spectator.board == self.boards[-2]: spectator.putMove(self.boards[-1], self.moves[-1], self.boards[-2]) self.setOpening() self.checkStatus() self.curColor = 1 - self.curColor finally: log.debug("GameModel.run: releasing self.applyingMoveLock") self.applyingMoveLock.release() def checkStatus (self): """ Updates self.status so it fits with what getStatus(boards[-1]) would return. That is, if the game is e.g. check mated this will call mode.end(), or if moves have been undone from an otherwise ended position, this will call __resume and emit game_unended. """ log.debug("GameModel.checkStatus:") # call flag by engine if self.isEngine2EngineGame() and self.status in UNDOABLE_STATES: return status, reason = getStatus(self.boards[-1]) if self.endstatus is not None: self.end(self.endstatus, reason) return if status != RUNNING and self.status in (WAITING_TO_START, PAUSED, RUNNING): if status == DRAW and reason in (DRAW_REPITITION, DRAW_50MOVES): if self.isEngine2EngineGame(): self.end(status, reason) return else: self.end(status, reason) return if status != self.status and self.status in UNDOABLE_STATES \ and self.reason in UNDOABLE_REASONS: self.__resume() self.status = status self.reason = UNKNOWN_REASON self.emit("game_unended") def __pause (self): log.debug("GameModel.__pause: %s" % self) if self.isEngine2EngineGame(): for player in self.players: player.end(self.status, self.reason) if self.timed: self.timemodel.end() else: for player in self.players: player.pause() if self.timed: self.timemodel.pause() @inthread def pause (self): """ Players will raise NotImplementedError if they doesn't support pause. Spectators will be ignored. """ self.applyingMoveLock.acquire() try: self.__pause() self.status = PAUSED finally: self.applyingMoveLock.release() self.emit("game_paused") def __resume (self): for player in self.players: player.resume() if self.timed: self.timemodel.resume() self.emit("game_resumed") @inthread def resume (self): self.applyingMoveLock.acquire() try: self.status = RUNNING self.__resume() finally: self.applyingMoveLock.release() def end (self, status, reason): if self.status not in UNFINISHED_STATES: log.info("GameModel.end: Can't end a game that's already ended: %s %s" % (status, reason)) return if self.status not in (WAITING_TO_START, PAUSED, RUNNING): self.needsSave = True #log.debug("Ending a game with status %d for reason %d\n%s" % (status, reason, # "".join(traceback.format_list(traceback.extract_stack())).strip())) log.debug("GameModel.end: players=%s, self.ply=%s: Ending a game with status %d for reason %d" % \ (repr(self.players), str(self.ply), status, reason)) self.status = status self.reason = reason self.emit("game_ended", reason) self.__pause() def kill (self, reason): log.debug("GameModel.kill: players=%s, self.ply=%s: Killing a game for reason %d\n%s" % \ (repr(self.players), str(self.ply), reason, "".join(traceback.format_list(traceback.extract_stack())).strip())) self.status = KILLED self.reason = reason for player in self.players: player.end(self.status, reason) for spectator in self.spectators.values(): spectator.end(self.status, reason) if self.timed: self.timemodel.end() self.emit("game_ended", reason) def terminate (self): log.debug("GameModel.terminate: %s" % self) if self.status != KILLED: #self.resume() for player in self.players: player.end(self.status, self.reason) for spectator in self.spectators.values(): spectator.end(self.status, self.reason) if self.timed: log.debug("GameModel.terminate: -> timemodel.end()") self.timemodel.end() log.debug("GameModel.terminate: <- timemodel.end() %s" % repr(self.timemodel)) self.emit("game_terminated") ############################################################################ # Other stuff # ############################################################################ @inthread @undolocked def undoMoves (self, moves): """ Undo and remove moves number of moves from the game history from the GameModel, players, and any spectators """ if self.ply < 1 or moves < 1: return if self.ply - moves < 0: # There is no way in the current threaded/asynchronous design # for the GUI to know that the number of moves it requests to takeback # will still be valid once the undo is actually processed. So, until # we either add some locking or get a synchronous design, we quietly # "fix" the takeback request rather than cause AssertionError or IndexError moves = 1 log.debug("GameModel.undoMoves: players=%s, self.ply=%s, moves=%s, board=%s" % \ (repr(self.players), self.ply, moves, self.boards[-1])) log.debug("GameModel.undoMoves: acquiring self.applyingMoveLock") self.applyingMoveLock.acquire() log.debug("GameModel.undoMoves: self.applyingMoveLock acquired") try: self.emit("moves_undoing", moves) self.needsSave = True self.boards = self.variations[0] del self.boards[-moves:] del self.moves[-moves:] self.boards[-1].board.next = None for player in self.players: player.playerUndoMoves(moves, self) for spectator in self.spectators.values(): spectator.spectatorUndoMoves(moves, self) log.debug("GameModel.undoMoves: undoing timemodel") if self.timed: self.timemodel.undoMoves(moves) self.checkStatus() self.setOpening() finally: log.debug("GameModel.undoMoves: releasing self.applyingMoveLock") self.applyingMoveLock.release() self.emit("moves_undone", moves) def isChanged (self): if self.ply == 0: return False if self.needsSave: return True if not self.uri or not isWriteable (self.uri): return True return False def add_variation(self, board, moves, comment="", score=""): board0 = board board = board0.clone() board.board.prev = None variation = [board] for move in moves: new = board.move(move) if len(variation) == 1: new.board.prev = board0.board variation[0].board.next = new.board else: new.board.prev = board.board board.board.next = new.board variation.append(new) board = new if board0.board.next is None: # If we are in the latest played board, and want to add a variation # we have to add a not played yet board first # which can hold the variation as his child from pychess.Utils.lutils.LBoard import LBoard null_board = LBoard() null_board.prev = board0.board board0.board.next = null_board board0.board.next.children.append([board.board for board in variation]) head = None for vari in self.variations: if board0 in vari: head = vari break variation[0] = board0 self.variations.append(head[:board0.ply-self.lowply] + variation) self.needsSave = True self.emit("variation_added", board0.board.next.children[-1], board0.board.next, comment, score) return self.variations[-1] def add_move2variation(self, board, move, variationIdx): new = board.move(move) new.board.prev = board.board board.board.next = new.board # Find the variation (low level lboard list) to append cur_board = board.board vari = None while cur_board.prev is not None: for child in cur_board.prev.next.children: if isinstance(child, list) and cur_board in child: vari = child break if vari is None: cur_board = cur_board.prev else: break vari.append(new.board) self.variations[variationIdx].append(new) self.needsSave = True self.emit("variation_extended", board.board, new.board) pychess-0.12.2/lib/pychess/Utils/Rating.py0000755000175000017470000000316712641567764020726 0ustar tamasusers00000000000000from gi.repository import GObject from pychess.ic import * class Rating (GObject.GObject): def __init__(self, ratingtype, elo, deviation=DEVIATION_NONE, wins=0, losses=0, draws=0, bestElo=0, bestTime=0): GObject.GObject.__init__(self) self.type = ratingtype for v in (elo, deviation, wins, losses, draws, bestElo, bestTime): assert v == None or isinstance(v, int), v self.elo = elo self.deviation = deviation self.wins = wins self.losses = losses self.draws = draws self.bestElo = bestElo self.bestTime = bestTime def get_elo (self): return self._elo def set_elo (self, elo): assert isinstance(elo, int), type(elo) self._elo = elo elo = GObject.property(get_elo, set_elo) def __repr__ (self): r = "type=%s, elo=%s" % (self.type, self.elo) if self.deviation != None: r += ", deviation=%s" % str(self.deviation) if self.wins > 0: r += ", wins=%s" % str(self.wins) if self.losses > 0: r += ", losses=%s" % str(self.losses) if self.draws > 0: r += ", draws=%s" % str(self.draws) if self.bestElo > 0: r += ", bestElo=%s" % str(self.bestElo) if self.bestTime > 0: r += ", bestTime=%s" % str(self.bestTime) return "" def copy (self): return Rating(self.type, self.elo, deviation=self.deviation, wins=self.wins, losses=self.losses, draws=self.draws, bestElo=self.bestElo, bestTime=self.bestTime) pychess-0.12.2/lib/pychess/Utils/book.py0000755000175000017470000000567212641567764020437 0ustar tamasusers00000000000000from __future__ import print_function import os import sys from struct import Struct from collections import namedtuple from pychess.Utils.const import * from pychess.System import conf from pychess.System.prefix import addDataPrefix from pychess.Utils.lutils.lmove import parsePolyglot from pychess.System.Log import log if getattr(sys, 'frozen', False): # pyinstaller specific! if hasattr(sys, "_MEIPASS"): base_path = sys._MEIPASS else: base_path = os.path.dirname(sys.executable) default_path = os.path.join(base_path, "pychess_book.bin") else: default_path = os.path.join(addDataPrefix("pychess_book.bin")) path = conf.get("opening_file_entry", default_path) if os.path.isfile(path): bookfile = True else: bookfile= False log.warning("Could not find %s" % path) # The book probing code is based on that of PolyGlot by Fabien Letouzey. # PolyGlot is available under the GNU GPL from http://wbec-ridderkerk.nl BookEntry = namedtuple('BookEntry', 'key move weight games score') # 'key' c_uint64 the position's hash # 'move' c_uint16 the candidate move # 'weight' c_uint16 proportional to prob. we should play it # The following terms are not always available: # 'games' c_uint16 the number of times it's been tried # 'score' c_uint16 2 for each win, 1 for each draw entrystruct = Struct(">QHHHH") entrysize = entrystruct.size def getOpenings (board): """ Return a tuple (move, weight, games, score) for each opening move in the given position. The weight is proportional to the probability that a move should be played. By convention, games is the number of times a move has been tried, and score the number of points it has scored (with 2 per victory and 1 per draw). However, opening books aren't required to keep this information. """ openings = [] if not bookfile: return openings with open(path, "rb") as bookFile: key = board.hash # Find the first entry whose key is >= the position's hash bookFile.seek(0, os.SEEK_END) lo, hi = 0, bookFile.tell() // 16 - 1 if hi < 0: return openings while lo < hi: mid = (lo + hi) // 2 bookFile.seek(mid * 16) entry = bookFile.read(entrysize) if len(entry) != entrysize: return openings entry = BookEntry._make(entrystruct.unpack(entry)) if entry.key < key: lo = mid + 1 else: hi = mid bookFile.seek(lo * 16) while True: entry = bookFile.read(entrysize) if len(entry) != entrysize: return openings entry = BookEntry._make(entrystruct.unpack(entry)) if entry.key != key: break mv = parsePolyglot(board, entry.move) openings.append( ( mv, entry.weight, entry.games, entry.score ) ) return openings pychess-0.12.2/lib/pychess/Utils/TimeModel.py0000644000175000017470000002132212651711147021332 0ustar tamasusers00000000000000import heapq from time import time from gi.repository import GLib, GObject from pychess.Utils.const import WHITE, BLACK from pychess.System import repeat from pychess.System.Log import log class TimeModel (GObject.GObject): __gsignals__ = { "player_changed": (GObject.SignalFlags.RUN_FIRST, None, ()), "time_changed": (GObject.SignalFlags.RUN_FIRST, None, ()), "zero_reached": (GObject.SignalFlags.RUN_FIRST, None, (int,)), "pause_changed": (GObject.SignalFlags.RUN_FIRST, None, (bool,)) } ############################################################################ # Initing # ############################################################################ def __init__ (self, secs=0, gain=0, bsecs=-1, minutes=-1): GObject.GObject.__init__(self) if bsecs < 0: bsecs = secs if minutes < 0: minutes = secs / 60 self.minutes = minutes # The number of minutes for the original starting # time control (not necessarily where the game was resumed, # i.e. self.intervals[0][0]) self.intervals = [[secs],[bsecs]] self.gain = gain self.secs = secs self.paused = False # The left number of secconds at the time pause was turned on self.pauseInterval = 0 self.counter = None self.started = False self.ended = False self.movingColor = WHITE self.connect('time_changed', self.__zerolistener, 'time_changed') self.connect('player_changed', self.__zerolistener, 'player_changed') self.connect('pause_changed', self.__zerolistener, 'pause_changed') self.zero_listener_id = None self.zero_listener_time = 0 self.zero_listener_source = None def __repr__ (self): s = "" % \ (id(self), str(self.getPlayerTime(WHITE)), str(self.getPlayerTime(BLACK)), self.ended) return s @property def ply(self): return len(self.intervals[0]) + len(self.intervals[1]) - 2 def __zerolistener(self, *args): if self.ended: return False cur_time = time() t1 = cur_time + self.getPlayerTime(WHITE) t2 = cur_time + self.getPlayerTime(BLACK) if t1 <= t2: t = t1 color = WHITE else: t = t2 color = BLACK s = t-cur_time+0.01 if s > 0 and s != self.zero_listener_time: if (self.zero_listener_id is not None) and \ (self.zero_listener_source is not None) and \ not self.zero_listener_source.is_destroyed(): GLib.source_remove(self.zero_listener_id) self.zero_listener_time = s self.zero_listener_id = GLib.timeout_add(10, self.__checkzero, color) default_context = GLib.main_context_get_thread_default() or GLib.main_context_default() if hasattr(default_context, "find_source_by_id"): self.zero_listener_source = default_context.find_source_by_id(self.zero_listener_id) def __checkzero(self, color): if self.getPlayerTime(color) <= 0: self.emit('zero_reached', color) return False return True ############################################################################ # Interacting # ############################################################################ def setMovingColor (self, movingColor): self.movingColor = movingColor self.emit("player_changed") def tap (self): if self.paused: return if self.started: t = self.intervals[self.movingColor][-1] + self.gain if self.counter != None: t -= time() - self.counter self.intervals[self.movingColor].append(t) else: self.intervals[self.movingColor].append ( self.intervals[self.movingColor][-1] ) # FICS rule if self.ply >= 2: self.started = True self.movingColor = 1-self.movingColor if self.started: self.counter = time() self.emit("time_changed") self.emit("player_changed") def start (self): if self.started: return self.started = True self.counter = time() self.emit("time_changed") def end (self): log.debug("TimeModel.end: self=%s" % self) self.pause() self.ended = True if (self.zero_listener_id is not None) and \ (self.zero_listener_source is not None) and \ not self.zero_listener_source.is_destroyed(): GLib.source_remove(self.zero_listener_id) def pause (self): log.debug("TimeModel.pause: self=%s" % self) if self.paused: return self.paused = True if self.counter != None: self.pauseInterval = time()-self.counter self.counter = None self.emit("time_changed") self.emit("pause_changed", True) def resume (self): log.debug("TimeModel.resume: self=%s" % self) if not self.paused: return self.paused = False self.counter = time() - self.pauseInterval self.emit("pause_changed", False) ############################################################################ # Undo and redo in TimeModel # ############################################################################ def undoMoves (self, moves): """ Sets time and color to move, to the values they were having in the beginning of the ply before the current. his move. Example: White intervals (is thinking): [120, 130, ...] Black intervals: [120, 115] Is undoed to: White intervals: [120, 130] Black intervals (is thinking): [120, ...] """ if not self.started: self.start() for i in range(moves): self.movingColor = 1-self.movingColor del self.intervals[self.movingColor][-1] if len(self.intervals[0]) + len(self.intervals[1]) >= 4: self.counter = time() else: self.started = False self.counter = None self.emit("time_changed") self.emit("player_changed") ############################################################################ # Updating # ############################################################################ def updatePlayer (self, color, secs): if color == self.movingColor and self.started: self.counter = secs + time() - self.intervals[color][-1] self.intervals[color][-1] = secs self.emit("time_changed") ############################################################################ # Info # ############################################################################ def getPlayerTime (self, color, movecount=-1): if color == self.movingColor and self.started and movecount == -1: if self.paused: return self.intervals[color][movecount] - self.pauseInterval elif self.counter: return self.intervals[color][movecount] - (time() - self.counter) return self.intervals[color][movecount] def getInitialTime (self): return self.intervals[WHITE][0] def getElapsedMoveTime (self, ply): movecount, color = divmod(ply+1, 2) gain = self.gain if ply > 2 else 0 if len(self.intervals[color]) > movecount: return self.intervals[color][movecount-1] - self.intervals[color][movecount] + gain if movecount > 1 else 0 else: return 0 @property def display_text (self): t = ("%d " % self.minutes) + _("min") if self.gain != 0: t += (" + %d " % self.gain) + _("sec") return t @property def hasTimes(self): return len(self.intervals[0]) > 1 @property def ply(self): return len(self.intervals[BLACK]) + len(self.intervals[WHITE]) - 2 def hasBWTimes(self, bmovecount, wmovecount): return len(self.intervals[BLACK]) > bmovecount and len(self.intervals[WHITE]) > wmovecount pychess-0.12.2/lib/pychess/Utils/Offer.py0000755000175000017470000000166712641567764020546 0ustar tamasusers00000000000000from pychess.Utils.const import ACTIONS class Offer: def __init__(self, type_, param=None, index=None): assert type_ in ACTIONS, "Offer.__init__(): type not in ACTIONS: %s" % repr(type_) assert index is None or isinstance(index, int), \ "Offer.__init__(): index not int: %s" % repr(index) self.type = type_ self.param = param self.index = index # for IC games def __hash__(self): return hash((self.type, self.param, self.index)) def __cmp__(self, other): assert isinstance(other, type(self)), "Offer.__cmp__(): not of type Offer: %s" % repr(other) return cmp(hash(self), hash(other)) def __repr__(self): s = "type=\"%s\"" % self.type if self.param is not None: s += ", param=%s" % str(self.param) if self.index is not None: s += ", index=%s" % str(self.index) return "Offer(" + s + ")" pychess-0.12.2/lib/pychess/Utils/Move.py0000755000175000017470000001530412641567764020404 0ustar tamasusers00000000000000from __future__ import absolute_import from __future__ import print_function from pychess.Utils.Cord import Cord from pychess.Utils.const import * from pychess.Utils.lutils.lmovegen import newMove from .lutils import lmove class Move: def __init__ (self, cord0, cord1=None, board=None, promotion=None): """ Inits a new highlevel Move object. The object can be initialized in the follow ways: Move(cord0, cord1, board, [promotionPiece]) Move(lovLevelMoveInt) """ if not cord1: self.move = cord0 self.flag = self.move >> 12 self.cord0 = None if self.flag == DROP else Cord(lmove.FCORD(self.move)) self.cord1 = Cord(lmove.TCORD(self.move)) else: assert cord0 != None and cord1 != None, "cord0=%s, cord1=%s, board=%s" % (cord0, cord1, board) assert board[cord0] != None, "cord0=%s, cord1=%s, board=%s" % (cord0, cord1, board) self.cord0 = cord0 self.cord1 = cord1 if not board: raise ValueError("Move needs a Board object in order to investigate flags") self.flag = NORMAL_MOVE if board[self.cord0].piece == PAWN and self.cord1.cord in board.PROMOTION_ZONE[board.board.color]: if promotion == None: if board.variant == SITTUYINCHESS: if cord0 == cord1: self.flag = lmove.FLAG_PIECE(QUEEN) else: self.flag = lmove.FLAG_PIECE(QUEEN) else: self.flag = lmove.FLAG_PIECE(promotion) elif board[self.cord0].piece == KING: if self.cord0 == self.cord1: self.flag = NULL_MOVE elif board.variant == FISCHERRANDOMCHESS: if (abs(self.cord0.x - self.cord1.x) > 1 and self.cord1.x==C1) or \ \ (board.board.ini_rooks[board.color][0] == self.cord1.cord and \ ((board.board.color == WHITE and board.board.castling & W_OOO) or \ (board.board.color == BLACK and board.board.castling & B_OOO))): self.flag = QUEEN_CASTLE elif (abs(self.cord0.x - self.cord1.x) > 1 and self.cord1.x==G1) or \ \ (board.board.ini_rooks[board.color][1] == self.cord1.cord and \ ((board.board.color == WHITE and board.board.castling & W_OO) or \ (board.board.color == BLACK and board.board.castling & B_OO))): self.flag = KING_CASTLE elif board.variant != CAMBODIANCHESS: if self.cord0.x - self.cord1.x == 2: self.flag = QUEEN_CASTLE if self.cord0.x == 4 else KING_CASTLE elif self.cord0.x - self.cord1.x == -2: self.flag = KING_CASTLE if self.cord0.x == 4 else QUEEN_CASTLE elif board[self.cord0].piece == PAWN and \ board[self.cord1] == None and \ self.cord0.x != self.cord1.x and \ self.cord0.y != self.cord1.y: self.flag = ENPASSANT self.move = newMove(self.cord0.cord, self.cord1.cord, self.flag) def _get_cords (self): return (self.cord0, self.cord1) cords = property(_get_cords) def _get_promotion (self): if self.flag in PROMOTIONS: return lmove.PROMOTE_PIECE(self.flag) return None promotion = property(_get_promotion) def __repr__ (self): promotion = "="+reprSign[lmove.PROMOTE_PIECE(self.flag)] \ if self.flag in PROMOTIONS else "" if self.flag == DROP: piece = reprSign[lmove.FCORD(self.move)] return piece + "@" + str(self.cord1) + promotion else: return str(self.cord0) + str(self.cord1) + promotion def __eq__ (self, other): if isinstance(other, Move): return self.move == other.move def __hash__ (self): return hash(self.cords) def is_capture (self, board): return self.flag == ENPASSANT or \ board[self.cord1] != None and \ self.flag != QUEEN_CASTLE and self.flag != KING_CASTLE ################################################################################ # Parsers # ################################################################################ def listToMoves (board, mstrs, type=None, validate=False, ignoreErrors=False): return [Move(move) for move in lmove.listToMoves(board.board, mstrs, type, validate, ignoreErrors)] def parseAny (board, algnot): return Move(lmove.parseAny (board.board, algnot)) def parseSAN (board, san): """ Parse a Short/Abbreviated Algebraic Notation string """ return Move (lmove.parseSAN (board.board, san)) def parseLAN (board, lan): """ Parse a Long/Expanded Algebraic Notation string """ return Move (lmove.parseLAN (board.board, lan)) def parseFAN (board, lan): """ Parse a Long/Expanded Algebraic Notation string """ return Move (lmove.parseFAN (board.board, lan)) def parseAN (board, an): """ Parse an Algebraic Notation string """ return Move(lmove.parseAN (board.board, an)) ################################################################################ # Exporters # ################################################################################ def listToSan (board, moves): return lmove.listToSan(board.board, (m.move for m in moves)) def toAN (board, move, short=False, castleNotation=CASTLE_SAN): """ Returns a Algebraic Notation string of a move board should be prior to the move """ return lmove.toAN (board.board, move.move, short=short, castleNotation=castleNotation) def toSAN (board, move, localRepr=False): """ Returns a Short/Abbreviated Algebraic Notation string of a move The board should be prior to the move, board2 past. If not board2, toSAN will not test mate """ return lmove.toSAN (board.board, move.move, localRepr) def toLAN (board, move): """ Returns a Long/Expanded Algebraic Notation string of a move board should be prior to the move """ return lmove.toLAN (board.board, move.move) def toFAN (board, move): """ Returns a Figurine Algebraic Notation string of a move """ return lmove.toFAN (board.board, move.move) pychess-0.12.2/lib/pychess/Main.py0000755000175000017470000005410712653216060017245 0ustar tamasusers00000000000000# -*- coding: UTF-8 -*- import os import webbrowser import math import atexit import logging import signal import subprocess import platform import sys from gi.repository import Gdk from gi.repository import Gtk from gi.repository import GLib from gi.repository import GObject from pychess.compat import urlopen, urlparse, basestring, open, pathname2url, url2pathname, unquote from pychess.System import conf, uistuff, prefix, SubProcess, Log, idle_add from pychess.System.uistuff import POSITION_NONE, POSITION_CENTER, POSITION_GOLDEN from pychess.System.Log import log, LogPipe from pychess.System.LogEmitter import GLogHandler, logemitter from pychess.System.debug import start_thread_dump, dump_threads from pychess.System.prefix import getUserDataPrefix, addUserDataPrefix from pychess.Utils.const import HINT, NAME, SPY from pychess.widgets import enginesDialog from pychess.widgets import newGameDialog from pychess.widgets import tipOfTheDay from pychess.widgets.discovererDialog import DiscovererDialog from pychess.widgets.BorderBox import BorderBox from pychess.widgets import gamewidget from pychess.widgets import gamenanny from pychess.widgets import ionest from pychess.widgets import analyzegameDialog from pychess.widgets import preferencesDialog, gameinfoDialog, playerinfoDialog from pychess.widgets.TaskerManager import TaskerManager from pychess.widgets.TaskerManager import NewGameTasker from pychess.widgets.TaskerManager import InternetGameTasker from pychess.Players.engineNest import discoverer from pychess.Savers import chesspastebin from pychess.ic import ICLogon #from pychess.Database.gamelist import GameList from pychess import VERSION, VERSION_NAME leftkeys = map(Gdk.keyval_from_name, ("Left", "KP_Left")) rightkeys = map(Gdk.keyval_from_name, ("Right", "KP_Right")) upkeys = map(Gdk.keyval_from_name, ("Up", "KP_Up")) downkeys = map(Gdk.keyval_from_name, ("Down", "KP_Down")) homekeys = map(Gdk.keyval_from_name, ("Home", "KP_Home")) endkeys = map(Gdk.keyval_from_name, ("End", "KP_End")) functionkeys = [Gdk.keyval_from_name(k) for k in ("F1", "F2", "F3", "F4", "F5", "F6", "F7", "F8", "F9", "F10", "F11")] ################################################################################ # gameDic - containing the gamewidget:gamemodel of all open games # ################################################################################ gameDic = {} ######################## # For Racent Chooser ######################## recentManager = Gtk.RecentManager.get_default() class GladeHandlers: def on_window_key_press (window, event): log.debug('on_window_key_press: %s %s' % (window.get_title(), event)) # Tabbing related shortcuts if not gamewidget.getheadbook(): pagecount = 0 else: pagecount = gamewidget.getheadbook().get_n_pages() if pagecount > 1: if event.get_state() & Gdk.ModifierType.CONTROL_MASK: page_num = gamewidget.getheadbook().get_current_page() # Move selected if event.get_state() & Gdk.ModifierType.SHIFT_MASK: child = gamewidget.getheadbook().get_nth_page(page_num) if event.keyval == Gdk.KEY_Page_Up: gamewidget.getheadbook().reorder_child(child, (page_num-1)%pagecount) return True elif event.keyval == Gdk.KEY_Page_Down: gamewidget.getheadbook().reorder_child(child, (page_num+1)%pagecount) return True # Change selected else: if event.keyval == Gdk.KEY_Page_Up: gamewidget.getheadbook().set_current_page((page_num-1)%pagecount) return True elif event.keyval == Gdk.KEY_Page_Down: gamewidget.getheadbook().set_current_page((page_num+1)%pagecount) return True gmwidg = gamewidget.cur_gmwidg() if gmwidg is not None: for panel in gmwidg.panels: focused = panel.get_focus_child() # Do nothing in chat panel if focused is not None and isinstance(focused, Gtk.Entry): return False # Navigate on boardview with arrow keys if event.keyval in leftkeys: if event.get_state() & Gdk.ModifierType.CONTROL_MASK: gmwidg.board.view.backToMainLine() return True else: gmwidg.board.view.showPrev() return True elif event.keyval in rightkeys: gmwidg.board.view.showNext() return True elif event.keyval in upkeys: gmwidg.board.view.showPrev(step=2) return True elif event.keyval in downkeys: gmwidg.board.view.showNext(step=2) return True elif event.keyval in homekeys: gmwidg.board.view.showFirst() return True elif event.keyval in endkeys: gmwidg.board.view.showLast() return True if (not event.get_state() & Gdk.ModifierType.CONTROL_MASK) and \ (not event.get_state() & Gdk.ModifierType.MOD1_MASK) and \ (event.keyval != Gdk.KEY_Escape) and \ (event.keyval not in functionkeys): # Enter moves with keyboard board_control = gmwidg.board keyname = Gdk.keyval_name(event.keyval) board_control.key_pressed(keyname) gmwidg.status(board_control.keybuffer) return True return False def on_gmwidg_created (handler, gmwidg, gamemodel): log.debug("GladeHandlers.on_gmwidg_created: starting") gameDic[gmwidg] = gamemodel # Bring playing window to the front gamewidget.getWidgets()["window1"].present() gamemodel.connect("game_loaded", GladeHandlers.__dict__["on_recent_game_activated"]) gamemodel.connect("game_saved", GladeHandlers.__dict__["on_recent_game_activated"]) # Make sure we can remove gamewidgets from gameDic later gmwidg.connect("closed", GladeHandlers.__dict__["on_gmwidg_closed"]) log.debug("GladeHandlers.on_gmwidg_created: returning") def on_recent_game_activated (gamemodel, uri): if isinstance(uri, basestring): path = url2pathname(uri) recentManager.add_item("file:"+pathname2url(path)) def on_gmwidg_closed (gmwidg): log.debug("GladeHandlers.on_gmwidg_closed") del gameDic[gmwidg] if not gameDic: for widget in gamewidget.MENU_ITEMS: gamewidget.getWidgets()[widget].set_property('sensitive', False) # Drag 'n' Drop # def on_drag_received (self, wi, context, x, y, selection, target_type, timestamp): uri = selection.data.strip() uris = uri.split() if len(uris) > 1: log.warning("%d files were dropped. Only loading the first" % len(uris)) uri = uris[0] newGameDialog.LoadFileExtension.run(uri) # Game Menu # def on_new_game1_activate(self, widget): newGameDialog.NewGameMode.run() def on_play_internet_chess_activate(self, widget): ICLogon.run() def on_load_game1_activate(self, widget): newGameDialog.LoadFileExtension.run(None) def on_set_up_position_activate(self, widget): newGameDialog.SetupPositionExtension.run() def on_open_database_activate(self, widget): #GameList().load_games() pass def on_enter_game_notation_activate(self, widget): newGameDialog.EnterNotationExtension.run() def on_save_game1_activate(self, widget): ionest.saveGame (gameDic[gamewidget.cur_gmwidg()]) def on_save_game_as1_activate(self, widget): ionest.saveGameAs (gameDic[gamewidget.cur_gmwidg()]) def on_share_game_activate(self, widget): chesspastebin.paste(gameDic[gamewidget.cur_gmwidg()]) def on_export_position_activate(self, widget): gmwidg = gamewidget.cur_gmwidg() position = gmwidg.board.view.shown ionest.saveGameAs (gameDic[gmwidg], position) def on_analyze_game_activate(self, widget): analyzegameDialog.run(gameDic) def on_properties1_activate(self, widget): gameinfoDialog.run(gamewidget.getWidgets(), gameDic) def on_player_rating1_activate(self, widget): playerinfoDialog.run(gamewidget.getWidgets()) def on_close1_activate(self, widget): gmwidg = gamewidget.cur_gmwidg() response = ionest.closeGame(gmwidg, gameDic[gmwidg]) def on_quit1_activate(self, widget, *args): if isinstance(widget, Gdk.Event): if len(gameDic) == 1 and conf.get("hideTabs", False): gmwidg = gamewidget.cur_gmwidg() response = ionest.closeGame(gmwidg, gameDic[gmwidg]) return True elif len(gameDic) >= 1 and conf.get("closeAll", False): response = ionest.closeAllGames(gameDic.items()) return True if ionest.closeAllGames(gameDic.items()) in (Gtk.ResponseType.OK, Gtk.ResponseType.YES): Gtk.main_quit() else: return True # View Menu # def on_rotate_board1_activate(self, widget): gmwidg = gamewidget.cur_gmwidg() if gmwidg.board.view.rotation: gmwidg.board.view.rotation = 0 else: gmwidg.board.view.rotation = math.pi def on_fullscreen1_activate(self, widget): gamewidget.getWidgets()["window1"].fullscreen() gamewidget.getWidgets()["fullscreen1"].hide() gamewidget.getWidgets()["leave_fullscreen1"].show() def on_leave_fullscreen1_activate(self, widget): gamewidget.getWidgets()["window1"].unfullscreen() gamewidget.getWidgets()["leave_fullscreen1"].hide() gamewidget.getWidgets()["fullscreen1"].show() def on_about1_activate(self, widget): gamewidget.getWidgets()["aboutdialog1"].show() def on_log_viewer1_activate(self, widget): from pychess.widgets import LogDialog if widget.get_active(): LogDialog.show() else: LogDialog.hide() def on_show_sidepanels_activate(self, widget): gamewidget.zoomToBoard(not widget.get_active()) def on_hint_mode_activate(self, widget): for gmwidg in gameDic.keys(): if gmwidg.isInFront(): if widget.get_active(): gmwidg.gamemodel.resume_analyzer(HINT) else: gmwidg.gamemodel.pause_analyzer(HINT) def on_spy_mode_activate(self, widget): for gmwidg in gameDic.keys(): if gmwidg.isInFront(): if widget.get_active(): gmwidg.gamemodel.resume_analyzer(SPY) else: gmwidg.gamemodel.pause_analyzer(SPY) # Edit menu # def on_copy_pgn_activate(self, widget): gamewidget.cur_gmwidg().copy_pgn() def on_copy_fen_activate(self, widget): gamewidget.cur_gmwidg().copy_fen() def on_manage_engines_activate(self, widget): enginesDialog.run(gamewidget.getWidgets()) def on_preferences_activate(self, widget): preferencesDialog.run(gamewidget.getWidgets()) # Help menu # def on_about_chess1_activate(self, widget): webbrowser.open(_("http://en.wikipedia.org/wiki/Chess")) def on_how_to_play1_activate(self, widget): webbrowser.open(_("http://en.wikipedia.org/wiki/Rules_of_chess")) def translate_this_application_activate(self, widget): webbrowser.open("https://www.transifex.com/projects/p/pychess/") def on_TipOfTheDayMenuItem_activate(self, widget): tipOfTheDay.TipOfTheDay.show() # Other # def on_notebook2_switch_page (self, widget, page, page_num): gamewidget.getWidgets()["notebook3"].set_current_page(page_num) dnd_list = [ ('application/x-chess-pgn', 0, 0xbadbeef), ('application/da-chess-pgn', 0, 0xbadbeef), ('text/plain', 0, 0xbadbeef) ] class PyChess: def __init__(self, log_viewer, chess_file): self.git_rev = "" self.initGlade(log_viewer) self.handleArgs(chess_file) def initGlade(self, log_viewer): #======================================================================= # Init glade and the 'GladeHandlers' #======================================================================= #Gtk.about_dialog_set_url_hook(self.website) widgets = uistuff.GladeWidgets("PyChess.glade") widgets.getGlade().connect_signals(GladeHandlers()) tasker = TaskerManager() new_game_tasker, internet_game_tasker = NewGameTasker(), InternetGameTasker() tasker.packTaskers (new_game_tasker, internet_game_tasker) widgets["Background"].add(tasker) #------------------------------------------------------ Redirect widgets gamewidget.setWidgets(widgets) def on_sensitive_changed (widget, prop): name = widget.get_property('name') sensitive = widget.get_property('sensitive') #print "'%s' changed to '%s'" % (name, sensitive) widgets['pause1'].connect("notify::sensitive", on_sensitive_changed) widgets['resume1'].connect("notify::sensitive", on_sensitive_changed) #-------------------------- Main.py still needs a minimum of information ionest.handler.connect("gmwidg_created", GladeHandlers.__dict__["on_gmwidg_created"]) #---------------------- The only menuitems that need special initing for widget in ("hint_mode", "spy_mode"): widgets[widget].set_sensitive(False) uistuff.keep(widgets["hint_mode"], "hint_mode", first_value=True) uistuff.keep(widgets["spy_mode"], "spy_mode", first_value=True) uistuff.keep(widgets["show_sidepanels"], "show_sidepanels", first_value=True) uistuff.keep(widgets["auto_call_flag"], "autoCallFlag", first_value=True) #======================================================================= # Show main window and init d'n'd #======================================================================= widgets["window1"].set_title('%s - PyChess' % _('Welcome')) widgets["window1"].connect("delete-event", GladeHandlers.__dict__["on_quit1_activate"]) widgets["window1"].connect("key-press-event", GladeHandlers.__dict__["on_window_key_press"]) uistuff.keepWindowSize("main", widgets["window1"], None, POSITION_GOLDEN) widgets["window1"].show() widgets["Background"].show_all() flags = Gtk.DestDefaults.MOTION | Gtk.DestDefaults.HIGHLIGHT | Gtk.DestDefaults.DROP # To get drag in the whole window, we add it to the menu and the # background. If it can be gotten to work, the drag_dest_set_proxy # method is very interesting. #widgets["menubar1"].drag_dest_set(flags, dnd_list, Gdk.DragAction.COPY) #widgets["Background"].drag_dest_set(flags, dnd_list, Gdk.DragAction.COPY) # TODO: http://code.google.com/p/pychess/issues/detail?id=737 # The following two should really be set in the glade file #widgets["menubar1"].set_events(widgets["menubar1"].get_events() | Gdk.DRAG_STATUS) #widgets["Background"].set_events(widgets["Background"].get_events() | Gdk.DRAG_STATUS) #======================================================================= # Init 'minor' dialogs #======================================================================= #------------------------------------------------------------ Log dialog if log_viewer: from pychess.widgets import LogDialog LogDialog.add_destroy_notify(lambda: widgets["log_viewer1"].set_active(0)) else: widgets["log_viewer1"].set_property('sensitive', False) #---------------------------------------------------------- About dialog self.aboutdialog = widgets["aboutdialog1"] self.aboutdialog.set_program_name(NAME) link = self.aboutdialog.get_website() self.aboutdialog.set_copyright("Copyright © 2006-2016") self.aboutdialog.set_version(VERSION_NAME+" "+VERSION) if os.path.isdir(prefix.addDataPrefix(".git")): try: label = subprocess.check_output(["git", "describe"]) except subprocess.CalledProcessError: label = "" if label: comments = self.aboutdialog.get_comments() self.git_rev = label self.aboutdialog.set_comments("git %s\n%s" % (self.git_rev, comments)) with open(prefix.addDataPrefix("ARTISTS"), encoding="utf-8") as f: self.aboutdialog.set_artists(f.read().splitlines()) with open(prefix.addDataPrefix("AUTHORS"), encoding="utf-8") as f: self.aboutdialog.set_authors(f.read().splitlines()) with open(prefix.addDataPrefix("DOCUMENTERS"), encoding="utf-8") as f: self.aboutdialog.set_documenters(f.read().splitlines()) with open(prefix.addDataPrefix("TRANSLATORS"), encoding="utf-8") as f: self.aboutdialog.set_translator_credits(f.read()) with open(prefix.addDataPrefix("LICENSE"), encoding="utf-8") as f: self.aboutdialog.set_license(f.read()) def on_about_response(dialog, response, *args): # system-defined GtkDialog responses are always negative, in which # case we want to hide it if response < 0: self.aboutdialog.hide() self.aboutdialog.emit_stop_by_name('response') def on_about_close(widget, event=None): self.aboutdialog.hide() return True self.aboutdialog.connect("response", on_about_response) self.aboutdialog.connect("close", on_about_close) self.aboutdialog.connect("delete-event", on_about_close) #---------------------------------------------------- RecentChooser def recent_item_activated (self): uri = self.get_current_uri() try: urlopen(unquote(uri)).close() newGameDialog.LoadFileExtension.run(self.get_current_uri()) except (IOError, OSError): #shomething wrong whit the uri recentManager.remove_item(uri) #self.menu_recent = Gtk.RecentChooserMenu(recentManager) self.menu_recent = Gtk.RecentChooserMenu() self.menu_recent.set_show_tips(True) self.menu_recent.set_sort_type(Gtk.RecentSortType.MRU) self.menu_recent.set_limit(10) self.menu_recent.set_name("menu_recent") self.file_filter = Gtk.RecentFilter() self.file_filter.add_mime_type("application/x-chess-pgn") self.menu_recent.set_filter(self.file_filter) self.menu_recent.connect("item-activated", recent_item_activated) widgets["load_recent_game1"].set_submenu(self.menu_recent) #----------------------------------------------------- Discoverer dialog def discovering_started (discoverer, binnames): GLib.idle_add(DiscovererDialog.show, discoverer, widgets["window1"], binnames) discoverer.connect("discovering_started", discovering_started) DiscovererDialog.init(discoverer) discoverer.discover() #------------------------------------------------- Tip of the day dialog if conf.get("show_tip_at_startup", False): tipOfTheDay.TipOfTheDay.show() if conf.get("autoLogin", False): internet_game_tasker.connectClicked(None) def website(self, clb, link): webbrowser.open(link) def handleArgs (self, chess_file): if chess_file: def do (discoverer): GLib.idle_add(newGameDialog.LoadFileExtension.run, chess_file) discoverer.connect_after("all_engines_discovered", do) def run (no_debug, idle_add_debug, thread_debug, log_viewer, purge_recent, chess_file, ics_host, ics_port): # Start logging if log_viewer: log.logger.addHandler(GLogHandler(logemitter)) log.logger.setLevel(logging.WARNING if no_debug is True else logging.DEBUG) oldlogs = [l for l in os.listdir(getUserDataPrefix()) if l.endswith(".log")] conf.set("max_log_files", conf.get("max_log_files", 10)) oldlogs.sort() l = len(oldlogs) while l > conf.get("max_log_files", 10): try: os.remove(addUserDataPrefix(oldlogs[0])) del oldlogs[0] except OSError as e: pass l -= 1 if purge_recent: items = recentManager.get_items() for item in items: uri = item.get_uri() if item.get_application_info("pychess"): recentManager.remove_item(uri) signal.signal(signal.SIGINT, Gtk.main_quit) signal.signal(signal.SIGTERM, Gtk.main_quit) def cleanup (): SubProcess.finishAllSubprocesses() atexit.register(cleanup) pychess = PyChess(log_viewer, chess_file) idle_add.debug = idle_add_debug sys.stdout = LogPipe(sys.stdout, "stdout") sys.stderr = LogPipe(sys.stderr, "stdout") log.info("PyChess %s %s git %s" % (VERSION_NAME, VERSION, pychess.git_rev)) log.info("Command line args: '%s'" % chess_file) log.info("Platform: %s" % platform.platform()) log.info("Python version: %s.%s.%s" % sys.version_info[0:3]) log.info("Pyglib version: %s.%s.%s" % GLib.pyglib_version) if thread_debug: start_thread_dump() if ics_host: ICLogon.host = ics_host if ics_port: ICLogon.port = ics_port Gtk.main() pychess-0.12.2/lib/pychess/Variants/0000755000175000017470000000000012653231274017570 5ustar tamasusers00000000000000pychess-0.12.2/lib/pychess/Variants/randomchess.py0000755000175000017470000000250512641567764022472 0ustar tamasusers00000000000000from __future__ import print_function # Random Chess import random from pychess.Utils.const import * from pychess.Utils.Board import Board class RandomBoard(Board): variant = RANDOMCHESS __desc__ = _("FICS wild/3: http://www.freechess.org/Help/HelpFiles/wild.html\n" + "* Randomly chosen pieces (two queens or three rooks possible)\n" + "* Exactly one king of each color\n" + "* Pieces placed randomly behind the pawns\n" + "* No castling\n" + "* Black's arrangement mirrors white's") name = _("Random") cecp_name = "unknown" need_initial_board = True standard_rules = True variant_group = VARIANTS_SHUFFLE def __init__ (self, setup=False, lboard=None): if setup is True: Board.__init__(self, setup=self.random_start(), lboard=lboard) else: Board.__init__(self, setup=setup, lboard=lboard) def random_start(self): tmp = random.sample(('r', 'n', 'b', 'q')*16, 7) tmp.append('k') random.shuffle(tmp) tmp = ''.join(tmp) tmp = tmp + '/pppppppp/8/8/8/8/PPPPPPPP/' + tmp.upper() + ' w - - 0 1' return tmp if __name__ == '__main__': Board = RandomBoard(True) for i in range(10): print(Board.random_start()) pychess-0.12.2/lib/pychess/Variants/wildcastle.py0000644000175000017470000000224212641567764022312 0ustar tamasusers00000000000000# Wildcastle Chess from pychess.Utils.const import * from pychess.Utils.Board import Board WILDCASTLESTART = "rnbkqbnr/pppppppp/8/8/8/8/PPPPPPPP/RNBQKBNR w KQkq - 0 1" class WildcastleBoard(Board): variant = WILDCASTLECHESS __desc__ = _("xboard wildcastle http://home.hccnet.nl/h.g.muller/engine-intf.html#8\n"+ "FICS wild/0: http://www.freechess.org/Help/HelpFiles/wild.html\n"+ "* White has the typical set-up at the start.\n"+ "* Black's pieces are the same, except that the King and Queen are reversed,\n"+ "* so they are not on the same files as White's King and Queen.\n"+ "* Castling is done similarly to normal chess:\n"+ "* o-o-o indicates long castling and o-o short castling.") name = _("Wildcastle") cecp_name = "wildcastle" need_initial_board = True standard_rules = False variant_group = VARIANTS_OTHER_NONSTANDARD def __init__ (self, setup=False, lboard=None): if setup is True: Board.__init__(self, setup=WILDCASTLESTART, lboard=lboard) else: Board.__init__(self, setup=setup, lboard=lboard) pychess-0.12.2/lib/pychess/Variants/atomic.py0000755000175000017470000000366112641567764021444 0ustar tamasusers00000000000000from __future__ import print_function # Atomic Chess from pychess.Utils.const import * from pychess.Utils.Board import Board from pychess.Utils.Cord import Cord from pychess.Utils.Move import Move from pychess.Utils.lutils.bitboard import * from pychess.Utils.lutils.ldata import * class AtomicBoard(Board): variant = ATOMICCHESS __desc__ = _("FICS atomic: http://www.freechess.org/Help/HelpFiles/atomic.html") name = _("Atomic") cecp_name = "atomic" need_initial_board = False standard_rules = False variant_group = VARIANTS_OTHER_NONSTANDARD def cordsAround(cord): kingMoves = moveArray[KING] for c in iterBits(kingMoves[cord.cord]): yield Cord(c) def piecesAround(board, cord): kingMoves = moveArray[KING] friends = board.friends[board.color] for c in iterBits(kingMoves[cord] & friends): yield c, board.arBoard[c], board.color enemies = board.friends[1- board.color] for c in iterBits(kingMoves[cord] & enemies): yield c, board.arBoard[c], 1-board.color def kingExplode(board, move, color): tcord = move & 63 fcord = (move >> 6) & 63 flag = move >> 12 if board.arBoard[tcord] or flag == ENPASSANT: for acord, apiece, acolor in piecesAround(board, tcord): if apiece == KING and acolor == color: return True return False if __name__ == '__main__': FEN = "rnbqkbnr/ppp1pppp/8/8/8/8/PPPPPPPP/RNBQKBNR b KQkq - 0 1" b = AtomicBoard(FEN) print(b.board.__repr__()) for acord, apiece, acolor in piecesAround(b.board, B8): print(acord, apiece, acolor) for acord, apiece, acolor in piecesAround(b.board, E1): print(acord, apiece, acolor) from pychess.Utils.lutils.lmove import parseAN b = b.move(Move(parseAN(b.board, "d8d2"))) print(b.board.__repr__()) print(b.board.pieceCount) b.board.popMove() print(b.board.__repr__()) print(b.board.pieceCount) pychess-0.12.2/lib/pychess/Variants/pawnspassed.py0000755000175000017470000000140512641567764022512 0ustar tamasusers00000000000000# Pawns Passed Chess from pychess.Utils.const import * from pychess.Utils.Board import Board PAWNSPASSEDSTART = "rnbqkbnr/8/8/PPPPPPPP/pppppppp/8/8/RNBQKBNR w - - 0 1" class PawnsPassedBoard(Board): variant = PAWNSPASSEDCHESS __desc__ = _("FICS wild/8a: http://www.freechess.org/Help/HelpFiles/wild.html\n" + "White pawns start on 5th rank and black pawns on the 4th rank") name = _("Pawns Passed") cecp_name = "normal" need_initial_board = True standard_rules = True variant_group = VARIANTS_OTHER def __init__ (self, setup=False, lboard=None): if setup is True: Board.__init__(self, setup=PAWNSPASSEDSTART, lboard=lboard) else: Board.__init__(self, setup=setup, lboard=lboard) pychess-0.12.2/lib/pychess/Variants/blindfold.py0000644000175000017470000000262412641567764022120 0ustar tamasusers00000000000000from pychess.Utils.const import * from pychess.Utils.Board import Board class BlindfoldBoard(Board): variant = BLINDFOLDCHESS __desc__ = _("Classic chess rules with hidden figurines\n" + "http://en.wikipedia.org/wiki/Blindfold_chess") name = _("Blindfold") cecp_name = "normal" need_initial_board = False standard_rules = True variant_group = VARIANTS_BLINDFOLD class HiddenPawnsBoard(Board): variant = HIDDENPAWNSCHESS __desc__ = _("Classic chess rules with hidden pawns\n" + "http://en.wikipedia.org/wiki/Blindfold_chess") name = _("Hidden pawns") cecp_name = "normal" need_initial_board = False standard_rules = True variant_group = VARIANTS_BLINDFOLD class HiddenPiecesBoard(Board): variant = HIDDENPIECESCHESS __desc__ = _("Classic chess rules with hidden pieces\n" + "http://en.wikipedia.org/wiki/Blindfold_chess") name = _("Hidden pieces") cecp_name = "normal" need_initial_board = False standard_rules = True variant_group = VARIANTS_BLINDFOLD class AllWhiteBoard(Board): variant = ALLWHITECHESS __desc__ = _("Classic chess rules with all pieces white\n" + "http://en.wikipedia.org/wiki/Blindfold_chess") name = _("All white") cecp_name = "normal" need_initial_board = False standard_rules = True variant_group = VARIANTS_BLINDFOLD pychess-0.12.2/lib/pychess/Variants/wildcastleshuffle.py0000644000175000017470000000460112641567764023670 0ustar tamasusers00000000000000# Wildcastle shuffle Chess import random from pychess.Utils.const import * from pychess.Utils.Board import Board class WildcastleShuffleBoard(Board): variant = WILDCASTLESHUFFLECHESS __desc__ = _("xboard wildcastle http://home.hccnet.nl/h.g.muller/engine-intf.html#8\n"+ "FICS wild/1: http://www.freechess.org/Help/HelpFiles/wild.html\n"+ "* In this variant both sides have the same set of pieces as in normal chess.\n"+ "* The white king starts on d1 or e1 and the black king starts on d8 or e8,\n"+ "* and the rooks are in their usual positions.\n"+ "* Bishops are always on opposite colors.\n"+ "* Subject to these constraints the position of the pieces on their first ranks is random.\n"+ "* Castling is done similarly to normal chess:\n"+ "* o-o-o indicates long castling and o-o short castling.") name = _("Wildcastle shuffle") cecp_name = "wildcastle" need_initial_board = True standard_rules = False variant_group = VARIANTS_OTHER_NONSTANDARD def __init__ (self, setup=False, lboard=None): if setup is True: Board.__init__(self, setup=self.shuffle_start(), lboard=lboard) else: Board.__init__(self, setup=setup, lboard=lboard) def shuffle_start(self): def get_shuffle(): positions = [2, 3, 4, 5, 6, 7] tmp = ['r'] + ([''] * 6) + ['r'] king = random.choice((4, 5)) tmp[king-1] = 'k' positions.remove(king) bishop = random.choice(positions) tmp[bishop-1] = 'b' positions.remove(bishop) color = bishop%2 bishop = random.choice([i for i in positions if i%2!=color]) tmp[bishop-1] = 'b' positions.remove(bishop) queen = random.choice(positions) tmp[queen-1] = 'q' positions.remove(queen) knight = random.choice(positions) tmp[knight-1] = 'n' positions.remove(knight) knight = random.choice(positions) tmp[knight-1] = 'n' positions.remove(knight) return ''.join(tmp) tmp = get_shuffle() + '/pppppppp/8/8/8/8/PPPPPPPP/' + get_shuffle().upper() + ' w KQkq - 0 1' return tmp pychess-0.12.2/lib/pychess/Variants/shuffle.py0000755000175000017470000000240612641567764021620 0ustar tamasusers00000000000000from __future__ import print_function # Shuffle Chess import random from pychess.Utils.const import * from pychess.Utils.Board import Board class ShuffleBoard(Board): variant = SHUFFLECHESS __desc__ = _("xboard nocastle: http://home.hccnet.nl/h.g.muller/engine-intf.html#8\n" + "FICS wild/2: http://www.freechess.org/Help/HelpFiles/wild.html\n" + "* Random arrangement of the pieces behind the pawns\n" + "* No castling\n" + "* Black's arrangement mirrors white's") name = _("Shuffle") cecp_name = "nocastle" need_initial_board = True standard_rules = True variant_group = VARIANTS_SHUFFLE def __init__ (self, setup=False, lboard=None): if setup is True: Board.__init__(self, setup=self.shuffle_start(), lboard=lboard) else: Board.__init__(self, setup=setup, lboard=lboard) def shuffle_start(self): tmp = ['r', 'n', 'b', 'q', 'k', 'b', 'n', 'r'] random.shuffle(tmp) tmp = ''.join(tmp) tmp = tmp + '/pppppppp/8/8/8/8/PPPPPPPP/' + tmp.upper() + ' w - - 0 1' return tmp if __name__ == '__main__': Board = ShuffleBoard(True) for i in range(10): print(Board.shuffle_start()) pychess-0.12.2/lib/pychess/Variants/corner.py0000755000175000017470000000271412641567764021456 0ustar tamasusers00000000000000from __future__ import print_function # Corner Chess import random from pychess.Utils.const import * from pychess.Utils.Board import Board class CornerBoard(Board): variant = CORNERCHESS __desc__ = \ _("http://brainking.com/en/GameRules?tp=2\n" + "* Placement of the pieces on the 1st and 8th row are randomized\n" + "* The king is in the right hand corner\n" + "* Bishops must start on opposite color squares\n" + "* Black's starting position is obtained by rotating white's position 180 degrees around the board's center\n" + "* No castling") name = _("Corner") cecp_name = "nocastle" need_initial_board = True standard_rules = True variant_group = VARIANTS_SHUFFLE def __init__ (self, setup=False, lboard=None): if setup is True: Board.__init__(self, setup=self.shuffle_start(), lboard=lboard) else: Board.__init__(self, setup=setup, lboard=lboard) def shuffle_start(self): b1 = b2 = 0 tmp = ['r', 'n', 'b', 'q', 'b', 'n', 'r'] while (b1%2 == b2%2): random.shuffle(tmp) b1 = tmp.index('b') b2 = tmp.index('b', b1+1) tmp = ''.join(tmp) tmp = 'k' + tmp + '/pppppppp/8/8/8/8/PPPPPPPP/' + tmp[::-1].upper() + 'K w - - 0 1' return tmp if __name__ == '__main__': Board = CornerBoard(True) for i in range(10): print(Board.shuffle_start()) pychess-0.12.2/lib/pychess/Variants/threecheck.py0000644000175000017470000000124412641567764022265 0ustar tamasusers00000000000000# Three-check Chess from __future__ import absolute_import from __future__ import print_function from pychess.Utils.const import * from pychess.Utils.Board import Board class ThreeCheckBoard(Board): variant = THREECHECKCHESS __desc__ = _("Win by giving check 3 times") name = _("Three-check") cecp_name = "3check" need_initial_board = False standard_rules = False variant_group = VARIANTS_OTHER_NONSTANDARD def checkCount(board): cc = 0 lboard = board.clone() while lboard.hist_move: if lboard.isChecked(): cc += 1 lboard.popMove() if lboard.hist_move: lboard.popMove() return cc pychess-0.12.2/lib/pychess/Variants/fischerandom.py0000755000175000017470000000457312641567764022635 0ustar tamasusers00000000000000from __future__ import print_function # Chess960 (Fischer Random Chess) import random from copy import copy from pychess.Utils.const import * from pychess.Utils.Cord import Cord from pychess.Utils.Board import Board from pychess.Utils.Piece import Piece from pychess.Utils.lutils.bitboard import * from pychess.Utils.lutils.attack import * from pychess.Utils.lutils.lmove import FLAG, PROMOTE_PIECE class FischerandomBoard(Board): variant = FISCHERRANDOMCHESS __desc__ = _("http://en.wikipedia.org/wiki/Chess960\n" + "FICS wild/fr: http://www.freechess.org/Help/HelpFiles/wild.html") name = _("Fischer Random") cecp_name = "fischerandom" need_initial_board = True standard_rules = False variant_group = VARIANTS_SHUFFLE def __init__ (self, setup=False, lboard=None): if setup == True: Board.__init__(self, setup=self.shuffle_start(), lboard=lboard) else: Board.__init__(self, setup=setup, lboard=lboard) def shuffle_start(self): """ Create a random initial position. The king is placed somewhere between the two rooks. The bishops are placed on opposite-colored squares.""" positions = [1, 2, 3, 4, 5, 6, 7, 8] tmp = [''] * 8 castl = '' bishop = random.choice((1, 3, 5, 7)) tmp[bishop-1] = 'b' positions.remove(bishop) bishop = random.choice((2, 4, 6, 8)) tmp[bishop-1] = 'b' positions.remove(bishop) queen = random.choice(positions) tmp[queen-1] = 'q' positions.remove(queen) knight = random.choice(positions) tmp[knight-1] = 'n' positions.remove(knight) knight = random.choice(positions) tmp[knight-1] = 'n' positions.remove(knight) rook = positions[0] tmp[rook-1] = 'r' castl += reprFile[rook-1] king = positions[1] tmp[king-1] = 'k' rook = positions[2] tmp[rook-1] = 'r' castl += reprFile[rook-1] tmp = ''.join(tmp) tmp = tmp + '/pppppppp/8/8/8/8/PPPPPPPP/' + tmp.upper() + ' w ' + castl.upper() + castl +' - 0 1' #tmp = "rnqbbknr/pppppppp/8/8/8/8/PPPPPPPP/RNQBBKNR w AHah - 0 1" return tmp if __name__ == '__main__': frcBoard = FischerandomBoard(True) for i in range(10): print(frcBoard.shuffle_start()) pychess-0.12.2/lib/pychess/Variants/__init__.py0000755000175000017470000000545412641567764021731 0ustar tamasusers00000000000000from __future__ import absolute_import from pychess.Utils.const import * from .normal import NormalBoard from .corner import CornerBoard from .shuffle import ShuffleBoard from .fischerandom import FischerandomBoard from .randomchess import RandomBoard from .asymmetricrandom import AsymmetricRandomBoard from .upsidedown import UpsideDownBoard from .pawnspushed import PawnsPushedBoard from .pawnspassed import PawnsPassedBoard from .theban import ThebanBoard from .atomic import AtomicBoard from .bughouse import BughouseBoard from .crazyhouse import CrazyhouseBoard from .losers import LosersBoard from .suicide import SuicideBoard from .pawnodds import PawnOddsBoard from .knightodds import KnightOddsBoard from .rookodds import RookOddsBoard from .queenodds import QueenOddsBoard from .wildcastle import WildcastleBoard from .wildcastleshuffle import WildcastleShuffleBoard from .blindfold import BlindfoldBoard, HiddenPawnsBoard, \ HiddenPiecesBoard, AllWhiteBoard from .kingofthehill import KingOfTheHillBoard from .threecheck import ThreeCheckBoard from .asean import AiWokBoard, AseanBoard, CambodianBoard, \ MakrukBoard, SittuyinBoard from .euroshogi import EuroShogiBoard from .setupposition import SetupBoard variants = {NORMALCHESS : NormalBoard, CORNERCHESS : CornerBoard, SHUFFLECHESS : ShuffleBoard, FISCHERRANDOMCHESS : FischerandomBoard, RANDOMCHESS: RandomBoard, ASYMMETRICRANDOMCHESS: AsymmetricRandomBoard, UPSIDEDOWNCHESS : UpsideDownBoard, PAWNSPUSHEDCHESS : PawnsPushedBoard, PAWNSPASSEDCHESS : PawnsPassedBoard, THEBANCHESS : ThebanBoard, ATOMICCHESS: AtomicBoard, BUGHOUSECHESS: BughouseBoard, CRAZYHOUSECHESS: CrazyhouseBoard, LOSERSCHESS : LosersBoard, SUICIDECHESS: SuicideBoard, PAWNODDSCHESS : PawnOddsBoard, KNIGHTODDSCHESS : KnightOddsBoard, ROOKODDSCHESS : RookOddsBoard, QUEENODDSCHESS : QueenOddsBoard, ALLWHITECHESS : AllWhiteBoard, BLINDFOLDCHESS : BlindfoldBoard, HIDDENPAWNSCHESS : HiddenPawnsBoard, HIDDENPIECESCHESS : HiddenPiecesBoard, WILDCASTLECHESS: WildcastleBoard, WILDCASTLESHUFFLECHESS: WildcastleShuffleBoard, KINGOFTHEHILLCHESS: KingOfTheHillBoard, THREECHECKCHESS: ThreeCheckBoard, AIWOKCHESS: AiWokBoard, ASEANCHESS: AseanBoard, CAMBODIANCHESS: CambodianBoard, MAKRUKCHESS: MakrukBoard, SITTUYINCHESS: SittuyinBoard, EUROSHOGICHESS: EuroShogiBoard, SETUPCHESS: SetupBoard, } name2variant = dict([(v.cecp_name.capitalize(), v) for v in variants.values()]) pychess-0.12.2/lib/pychess/Variants/pawnodds.py0000755000175000017470000000116712641567764022006 0ustar tamasusers00000000000000from pychess.Utils.const import * from pychess.Utils.Board import Board PAWNODDSSTART = "rnbqkbnr/ppppp1pp/8/8/8/8/PPPPPPPP/RNBQKBNR w KQkq - 0 1" class PawnOddsBoard(Board): variant = PAWNODDSCHESS __desc__ = _("One player starts with one less pawn piece") name = _("Pawn odds") cecp_name = "normal" need_initial_board = True standard_rules = True variant_group = VARIANTS_ODDS def __init__ (self, setup=False, lboard=None): if setup is True: Board.__init__(self, setup=PAWNODDSSTART, lboard=lboard) else: Board.__init__(self, setup=setup, lboard=lboard) pychess-0.12.2/lib/pychess/Variants/kingofthehill.py0000644000175000017470000000114012641567764023002 0ustar tamasusers00000000000000# Losers Chess from pychess.Utils.const import * from pychess.Utils.Board import Board class KingOfTheHillBoard(Board): variant = KINGOFTHEHILLCHESS __desc__ = _("Bringing your king legally to the center (e4, d4, e5, d5) instantly wins the game!\n" + "Normal rules apply in other cases and checkmate also ends the game.") name = _("King of the hill") cecp_name = "kingofthehill" need_initial_board = False standard_rules = False variant_group = VARIANTS_OTHER_NONSTANDARD def testKingInCenter(board): return board.kings[board.color-1] in (E4, E5, D4, D5) pychess-0.12.2/lib/pychess/Variants/rookodds.py0000755000175000017470000000116612641567764022012 0ustar tamasusers00000000000000from pychess.Utils.const import * from pychess.Utils.Board import Board ROOKODDSSTART = "rnbqkbnr/pppppppp/8/8/8/8/PPPPPPPP/1NBQKBNR w Kkq - 0 1" class RookOddsBoard(Board): variant = ROOKODDSCHESS __desc__ = _("One player starts with one less rook piece") name = _("Rook odds") cecp_name = "normal" need_initial_board = True standard_rules = True variant_group = VARIANTS_ODDS def __init__ (self, setup=False, lboard=None): if setup is True: Board.__init__(self, setup=ROOKODDSSTART, lboard=lboard) else: Board.__init__(self, setup=setup, lboard=lboard) pychess-0.12.2/lib/pychess/Variants/euroshogi.py0000644000175000017470000000176012641567764022167 0ustar tamasusers00000000000000from pychess.Utils.const import * from pychess.Utils.Board import Board EUROSHOGISTART = "1nbqkqn1/1r4b1/pppppppp/8/8/PPPPPPPP/1B4R1/1NQKQBN1 w - - 0 1" class EuroShogiBoard(Board): variant = EUROSHOGICHESS __desc__ = _("EuroShogi: http://en.wikipedia.org/wiki/EuroShogi") name = _("EuroShogi") cecp_name = "euroshogi" need_initial_board = True standard_rules = False variant_group = VARIANTS_OTHER_NONSTANDARD PROMOTION_ZONE = ((A8, B8, C8, D8, E8, F8, G8, H8, \ A7, B7, C7, D7, E7, F7, G7, H7, \ A6, B6, C6, D6, E6, F6, G6, H6), \ (A1, B1, C1, D1, E1, F1, G1, H1, \ A2, B2, C2, D2, E2, F2, G2, H2, \ A3, B3, C3, D3, E3, F3, G3, H3)) def __init__ (self, setup=False, lboard=None): if setup is True: Board.__init__(self, setup=EUROSHOGISTART, lboard=lboard) else: Board.__init__(self, setup=setup, lboard=lboard) pychess-0.12.2/lib/pychess/Variants/crazyhouse.py0000755000175000017470000000062712641567764022363 0ustar tamasusers00000000000000# Crazyhouse Chess from pychess.Utils.const import * from pychess.Utils.Board import Board class CrazyhouseBoard(Board): variant = CRAZYHOUSECHESS __desc__ = _("FICS crazyhouse: http://www.freechess.org/Help/HelpFiles/crazyhouse.html") name = _("Crazyhouse") cecp_name = "crazyhouse" need_initial_board = False standard_rules = False variant_group = VARIANTS_OTHER_NONSTANDARD pychess-0.12.2/lib/pychess/Variants/bughouse.py0000755000175000017470000000061112641567764022001 0ustar tamasusers00000000000000# Bughouse Chess from pychess.Utils.const import * from pychess.Utils.Board import Board class BughouseBoard(Board): variant = BUGHOUSECHESS __desc__ = _("FICS bughouse: http://www.freechess.org/Help/HelpFiles/bughouse.html") name = _("Bughouse") cecp_name = "bughouse" need_initial_board = False standard_rules = False variant_group = VARIANTS_OTHER_NONSTANDARD pychess-0.12.2/lib/pychess/Variants/losers.py0000755000175000017470000000072712641567764021477 0ustar tamasusers00000000000000# Losers Chess from pychess.Utils.const import * from pychess.Utils.Board import Board class LosersBoard(Board): variant = LOSERSCHESS __desc__ = _("FICS losers: http://www.freechess.org/Help/HelpFiles/losers_chess.html") name = _("Losers") cecp_name = "losers" need_initial_board = False standard_rules = False variant_group = VARIANTS_OTHER_NONSTANDARD def testKingOnly(board): return bin(board.friends[board.color]).count("1") == 1 pychess-0.12.2/lib/pychess/Variants/asean.py0000644000175000017470000000772412641567764021260 0ustar tamasusers00000000000000############# # ASEAN-Chess ############# from pychess.Utils.const import * from pychess.Utils.Board import Board ASEANSTART = "rnbqkbnr/8/pppppppp/8/8/PPPPPPPP/8/RNBQKBNR w - - 0 1" class AseanBoard(Board): variant = ASEANCHESS __desc__ = _("ASEAN: http://www.ncf-phil.org/downloadables/2014/May/Asean_chess/Laws_of_ASEAN_Chess_2011_Nov_26.doc") name = _("ASEAN") cecp_name = "asean" need_initial_board = True standard_rules = False variant_group = VARIANTS_ASEAN def __init__ (self, setup=False, lboard=None): if setup is True: Board.__init__(self, setup=ASEANSTART, lboard=lboard) else: Board.__init__(self, setup=setup, lboard=lboard) ####################### # Makruk, or Thai chess ####################### MAKRUKSTART = "rnsmksnr/8/pppppppp/8/8/PPPPPPPP/8/RNSKMSNR w - - 0 1" class MakrukBoard(Board): variant = MAKRUKCHESS __desc__ = _("Makruk: http://en.wikipedia.org/wiki/Makruk") name = _("Makruk") cecp_name = "makruk" need_initial_board = True standard_rules = False variant_group = VARIANTS_ASEAN PROMOTION_ZONE = ((A6, B6, C6, D6, E6, F6, G6, H6), \ (A3, B3, C3, D3, E3, F3, G3, H3)) PROMOTIONS = (QUEEN_PROMOTION,) def __init__ (self, setup=False, lboard=None): if setup is True: Board.__init__(self, setup=MAKRUKSTART, lboard=lboard) else: Board.__init__(self, setup=setup, lboard=lboard) ################################## # Ouk Chatrang, or Cambodian Makruk ################################## # DEde in cambodian starting fen indicate # that queens and kings are virgins (not moved yet) KAMBODIANSTART = "rnsmksnr/8/pppppppp/8/8/PPPPPPPP/8/RNSKMSNR w DEde - 0 1" class CambodianBoard(Board): variant = CAMBODIANCHESS __desc__ = _("Cambodian: http://www.khmerinstitute.org/culture/ok.html") name = _("Cambodian") cecp_name = "cambodian" need_initial_board = True standard_rules = False variant_group = VARIANTS_ASEAN PROMOTION_ZONE = ((A6, B6, C6, D6, E6, F6, G6, H6), \ (A3, B3, C3, D3, E3, F3, G3, H3)) PROMOTIONS = (QUEEN_PROMOTION,) def __init__ (self, setup=False, lboard=None): if setup is True: Board.__init__(self, setup=KAMBODIANSTART, lboard=lboard) else: Board.__init__(self, setup=setup, lboard=lboard) ############### # Ai-Wok Makruk ############### AIWOKSTART = "rnsaksnr/8/pppppppp/8/8/PPPPPPPP/8/RNSKASNR w - - 0 1" class AiWokBoard(Board): variant = AIWOKCHESS __desc__ = _("Ai-Wok: http://www.open-aurec.com/wbforum/viewtopic.php?p=199364&sid=20963a1de2c164050de019e5ed6bf7c4#p199364") name = _("Ai-Wok") cecp_name = "ai-wok" need_initial_board = True standard_rules = False variant_group = VARIANTS_ASEAN PROMOTION_ZONE = ((A6, B6, C6, D6, E6, F6, G6, H6), \ (A3, B3, C3, D3, E3, F3, G3, H3)) PROMOTIONS = (QUEEN_PROMOTION,) def __init__ (self, setup=False, lboard=None): if setup is True: Board.__init__(self, setup=AIWOKSTART, lboard=lboard) else: Board.__init__(self, setup=setup, lboard=lboard) ############################ # Sittuyin, or Myanmar Chess ############################ SITTUYINSTART = "8/8/4pppp/pppp4/4PPPP/PPPP4/8/8/rrnnssfkRRNNSSFK w - - 0 1" class SittuyinBoard(Board): variant = SITTUYINCHESS __desc__ = _("Sittuyin: http://en.wikipedia.org/wiki/Sittuyin") name = _("Sittuyin") cecp_name = "sittuyin" need_initial_board = True standard_rules = False variant_group = VARIANTS_ASEAN PROMOTION_ZONE = ((A8, B7, C6, D5, E5, F6, G7, H8), \ (A1, B2, C3, D4, E4, F3, G2, H1)) PROMOTIONS = (QUEEN_PROMOTION, NORMAL_MOVE) def __init__ (self, setup=False, lboard=None): if setup is True: Board.__init__(self, setup=SITTUYINSTART, lboard=lboard) else: Board.__init__(self, setup=setup, lboard=lboard) pychess-0.12.2/lib/pychess/Variants/knightodds.py0000755000175000017470000000120312641567764022314 0ustar tamasusers00000000000000from pychess.Utils.const import * from pychess.Utils.Board import Board KNIGHTODDSSTART = "rnbqkbnr/pppppppp/8/8/8/8/PPPPPPPP/R1BQKBNR w KQkq - 0 1" class KnightOddsBoard(Board): variant = KNIGHTODDSCHESS __desc__ = _("One player starts with one less knight piece") name = _("Knight odds") cecp_name = "normal" need_initial_board = True standard_rules = True variant_group = VARIANTS_ODDS def __init__ (self, setup=False, lboard=None): if setup is True: Board.__init__(self, setup=KNIGHTODDSSTART, lboard=lboard) else: Board.__init__(self, setup=setup, lboard=lboard) pychess-0.12.2/lib/pychess/Variants/pawnspushed.py0000755000175000017470000000137612641567764022532 0ustar tamasusers00000000000000# Pawns Pushed Chess from pychess.Utils.const import * from pychess.Utils.Board import Board PAWNSPUSHEDSTART = "rnbqkbnr/8/8/pppppppp/PPPPPPPP/8/8/RNBQKBNR w - - 0 1" class PawnsPushedBoard(Board): variant = PAWNSPUSHEDCHESS __desc__ = _("FICS wild/8: http://www.freechess.org/Help/HelpFiles/wild.html\n" + "Pawns start on 4th and 5th ranks rather than 2nd and 7th") name = _("Pawns Pushed") cecp_name = "normal" need_initial_board = True standard_rules = True variant_group = VARIANTS_OTHER def __init__ (self, setup=False, lboard=None): if setup is True: Board.__init__(self, setup=PAWNSPUSHEDSTART, lboard=lboard) else: Board.__init__(self, setup=setup, lboard=lboard) pychess-0.12.2/lib/pychess/Variants/upsidedown.py0000755000175000017470000000154312641567764022346 0ustar tamasusers00000000000000# Upside-down Chess from pychess.Utils.const import * from pychess.Utils.Board import Board UPSIDEDOWNSTART = "RNBQKBNR/PPPPPPPP/8/8/8/8/pppppppp/rnbqkbnr w - - 0 1" class UpsideDownBoard(Board): variant = UPSIDEDOWNCHESS __desc__ = _("FICS wild/5: http://www.freechess.org/Help/HelpFiles/wild.html\n" + "http://en.wikipedia.org/wiki/Chess_variant#Chess_with_different_starting_positions\n" + "Pawns start on their 7th rank rather than their 2nd rank!") name = _("Upside Down") cecp_name = "normal" need_initial_board = True standard_rules = True variant_group = VARIANTS_OTHER def __init__ (self, setup=False, lboard=None): if setup is True: Board.__init__(self, setup=UPSIDEDOWNSTART, lboard=lboard) else: Board.__init__(self, setup=setup, lboard=lboard) pychess-0.12.2/lib/pychess/Variants/setupposition.py0000755000175000017470000000472112641567764023113 0ustar tamasusers00000000000000from pychess.Utils.const import * from pychess.Utils.Board import Board from pychess.Utils.Piece import Piece SETUPSTART = "4k3/8/8/8/8/8/8/4K3 w - - 0 1" class SetupBoard(Board): variant = SETUPCHESS __desc__ = "" name = "" cecp_name = "" standard_rules = False variant_group = VARIANTS_OTHER PROMOTION_ZONE = ((), ()) PROMOTIONS = () def __init__ (self, setup=True): fen = SETUPSTART if setup is True else setup # add all kind if piece to holdings (except king) parts = fen.split() parts[0] += "/prnsqPRNSQ" fen = " ".join(parts) Board.__init__(self, setup=fen) self._ply = 0 def _get_ply (self): return self._ply ply = property(_get_ply) def simulateMove(self, board, move): moved = [] new = [] dead = [] cord0, cord1 = move.cord0, move.cord1 if cord1.x < 0 or cord1.x > self.FILES-1: dead.append(self[cord0]) else: moved.append((self[cord0], cord0)) return moved, new, dead def move(self, move, color): new_board = self.clone() new_board._ply = self._ply + 1 cord0, cord1 = move.cord0, move.cord1 if cord0.x < 0 or cord0.x > self.FILES-1 and \ (cord1.x>=0 and cord1.x<=7): new_board[cord1] = new_board[cord0] new_board[cord0] = Piece(color, self[cord0].sign) elif cord1.x < 0 or cord1.x > self.FILES-1: new_board[cord0] = None else: new_board[cord1] = new_board[cord0] new_board[cord0] = None return new_board def as_fen(self): fenstr = [] for r, row in enumerate(reversed(self.data)): empty = 0 for i in range(0, 8): piece = row.get(i) if piece is not None: if empty > 0: fenstr.append(str(empty)) empty = 0 sign = reprSign[piece.piece] if piece.color == BLACK: sign = sign.lower() else: sign = sign.upper() fenstr.append(sign) else: empty += 1 if empty > 0: fenstr.append(str(empty)) if r != 7: fenstr.append("/") return "".join(fenstr) def __repr__ (self): return self.as_fen() pychess-0.12.2/lib/pychess/Variants/queenodds.py0000755000175000017470000000117512641567764022155 0ustar tamasusers00000000000000from pychess.Utils.const import * from pychess.Utils.Board import Board QUEENODDSSTART = "rnbqkbnr/pppppppp/8/8/8/8/PPPPPPPP/RNB1KBNR w KQkq - 0 1" class QueenOddsBoard(Board): variant = QUEENODDSCHESS __desc__ = _("One player starts with one less queen piece") name = _("Queen odds") cecp_name = "normal" need_initial_board = True standard_rules = True variant_group = VARIANTS_ODDS def __init__ (self, setup=False, lboard=None): if setup is True: Board.__init__(self, setup=QUEENODDSSTART, lboard=lboard) else: Board.__init__(self, setup=setup, lboard=lboard) pychess-0.12.2/lib/pychess/Variants/theban.py0000644000175000017470000000124412641567764021421 0ustar tamasusers00000000000000# Theban Chess from pychess.Utils.const import * from pychess.Utils.Board import Board THEBANSTART = "1p6/2p3kn/3p2pp/4pppp/5ppp/8/PPPPPPPP/PPPPPPKN w - - 0 1" class ThebanBoard(Board): variant = THEBANCHESS __desc__ = _("Variant developed by Kai Laskos: http://talkchess.com/forum/viewtopic.php?t=40990") name = _("Theban") cecp_name = "normal" need_initial_board = True standard_rules = True variant_group = VARIANTS_OTHER def __init__ (self, setup=False, lboard=None): if setup is True: Board.__init__(self, setup=THEBANSTART, lboard=lboard) else: Board.__init__(self, setup=setup, lboard=lboard) pychess-0.12.2/lib/pychess/Variants/normal.py0000755000175000017470000000041412641567764021451 0ustar tamasusers00000000000000from pychess.Utils.Board import Board class NormalBoard(Board): __desc__ = _("Classic chess rules\n" + "http://en.wikipedia.org/wiki/Chess") name = _("Normal") cecp_name = "normal" need_initial_board = False standard_rules = True pychess-0.12.2/lib/pychess/Variants/asymmetricrandom.py0000755000175000017470000001000012641567764023527 0ustar tamasusers00000000000000from __future__ import print_function # AsymmetricRandom Chess import random from pychess.Utils.const import * from pychess.Utils.Board import Board class AsymmetricRandomBoard(Board): variant = ASYMMETRICRANDOMCHESS __desc__ = \ _("FICS wild/4: http://www.freechess.org/Help/HelpFiles/wild.html\n" + "* Randomly chosen pieces (two queens or three rooks possible)\n" + "* Exactly one king of each color\n" + "* Pieces placed randomly behind the pawns, SUBJECT TO THE CONSTRAINT THAT THE BISHOPS ARE BALANCED\n" + "* No castling\n" + "* Black's arrangement DOES NOT mirrors white's") name = _("Asymmetric Random") cecp_name = "unknown" need_initial_board = True standard_rules = True variant_group = VARIANTS_SHUFFLE def __init__ (self, setup=False, lboard=None): if setup is True: Board.__init__(self, setup=self.asymmetricrandom_start(), lboard=lboard) else: Board.__init__(self, setup=setup, lboard=lboard) def asymmetricrandom_start(self): white = random.sample(('r', 'n', 'b', 'q')*16, 7) white.append('k') black = white[:] random.shuffle(white) random.shuffle(black) # balance the bishops (put them on equal numbers of dark and light squares) whitedarkbishops = 0 whitelightbishops = 0 for index, piece in enumerate(white): if piece == 'b': if index % 2 == 0: # even numbered square on the A rank are dark whitedarkbishops += 1 else: whitelightbishops += 1 blackdarkbishops = 0 blacklightbishops = 0 blackbishoprandomindexstack = [] for index, piece in enumerate(black): if piece == 'b': if index % 2 == 1: # odd numbered squares on the H rank are dark blackdarkbishops += 1 else: blacklightbishops += 1 blackbishoprandomindexstack.append(index) random.shuffle(blackbishoprandomindexstack) class RandomEnumeratePieces: def __init__ (self, pieces): self.pieces = pieces[:] self.randomindexstack = list(range(8)) random.shuffle(self.randomindexstack) def __iter__ (self): return self def next(self): if not self.randomindexstack: raise StopIteration else: randomindex = self.randomindexstack.pop() return randomindex, self.pieces[randomindex] while (whitedarkbishops != blackdarkbishops) or \ (whitelightbishops != blacklightbishops): bishopindex = blackbishoprandomindexstack.pop() for index, piece in RandomEnumeratePieces(black): if piece != 'b': if ((blackdarkbishops > whitedarkbishops) and \ (bishopindex % 2 == 1) and (index % 2 == 0)): black[bishopindex] = piece black[index] = 'b' blacklightbishops += 1 blackdarkbishops = blackdarkbishops > 0 and (blackdarkbishops-1) or 0 break elif ((blacklightbishops > whitelightbishops) and \ (bishopindex % 2 == 0) and (index % 2 == 1)): black[bishopindex] = piece black[index] = 'b' blackdarkbishops += 1 blacklightbishops = blacklightbishops > 0 and (blacklightbishops-1) or 0 break tmp = ''.join(black) + '/pppppppp/8/8/8/8/PPPPPPPP/' + \ ''.join(white).upper() + ' w - - 0 1' return tmp if __name__ == '__main__': Board = AsymmetricRandomBoard(True) for i in range(10): print(Board.asymmetricrandom_start()) pychess-0.12.2/lib/pychess/Variants/suicide.py0000755000175000017470000000443112641567764021611 0ustar tamasusers00000000000000from __future__ import print_function # Suicide Chess from pychess.Utils.const import * from pychess.Utils.Board import Board SUICIDESTART = "rnbqkbnr/pppppppp/8/8/8/8/PPPPPPPP/RNBQKBNR w - - 0 1" class SuicideBoard(Board): variant = SUICIDECHESS __desc__ = _("FICS suicide: http://www.freechess.org/Help/HelpFiles/suicide_chess.html") name = _("Suicide") cecp_name = "suicide" need_initial_board = True standard_rules = False variant_group = VARIANTS_OTHER_NONSTANDARD PROMOTIONS = (KING_PROMOTION, QUEEN_PROMOTION, ROOK_PROMOTION, BISHOP_PROMOTION, KNIGHT_PROMOTION) def __init__ (self, setup=False, lboard=None): if setup is True: Board.__init__(self, setup=SUICIDESTART, lboard=lboard) else: Board.__init__(self, setup=setup, lboard=lboard) def pieceCount(board, color): return bin(board.friends[color]).count("1") if __name__ == '__main__': from pychess.Utils.Move import Move from pychess.Utils.lutils.lmove import parseAN from pychess.Utils.lutils.lmovegen import genCaptures FEN = "rnbqk1nr/pppp1pPp/4p3/8/8/8/PPPbPPP1/RNBQKBNR b - - 7 4" b = SuicideBoard(SUICIDESTART) b = b.move(Move(parseAN(b.board, "h2h4"))) print(b.board.__repr__()) for move in genCaptures(b.board): print(Move(move)) b = b.move(Move(parseAN(b.board, "e7e6"))) print(b.board.__repr__()) for move in genCaptures(b.board): print(Move(move)) b = b.move(Move(parseAN(b.board, "h4h5"))) print(b.board.__repr__()) for move in genCaptures(b.board): print(Move(move)) b = b.move(Move(parseAN(b.board, "f8b4"))) print(b.board.__repr__()) for move in genCaptures(b.board): print(Move(move)) b = b.move(Move(parseAN(b.board, "h5h6"))) print(b.board.__repr__()) for move in genCaptures(b.board): print(Move(move)) b = b.move(Move(parseAN(b.board, "b4d2"))) print(b.board.__repr__()) for move in genCaptures(b.board): print(Move(move)) b = b.move(Move(parseAN(b.board, "h6g7"))) print(b.board.__repr__()) for move in genCaptures(b.board): print(Move(move)) b = b.move(Move(parseAN(b.board, "d2e1"))) print(b.board.__repr__()) for move in genCaptures(b.board): print(Move(move)) pychess-0.12.2/pieces/0000755000175000017470000000000012653231274015025 5ustar tamasusers00000000000000pychess-0.12.2/pieces/chessmonk/0000755000175000017470000000000012653231274017017 5ustar tamasusers00000000000000pychess-0.12.2/pieces/chessmonk/wr.svg0000644000175000017470000002557412641567764020222 0ustar tamasusers00000000000000 image/svg+xml pychess-0.12.2/pieces/chessmonk/bq.svg0000644000175000017470000003563212641567764020170 0ustar tamasusers00000000000000 image/svg+xml pychess-0.12.2/pieces/chessmonk/bb.svg0000644000175000017470000002356612641567764020154 0ustar tamasusers00000000000000 image/svg+xml pychess-0.12.2/pieces/chessmonk/bn.svg0000644000175000017470000002524712641567764020166 0ustar tamasusers00000000000000 image/svg+xml pychess-0.12.2/pieces/chessmonk/bk.svg0000644000175000017470000002666112641567764020164 0ustar tamasusers00000000000000 image/svg+xml pychess-0.12.2/pieces/chessmonk/wp.svg0000644000175000017470000002070612641567764020210 0ustar tamasusers00000000000000 image/svg+xml pychess-0.12.2/pieces/chessmonk/wq.svg0000644000175000017470000005212112641567764020205 0ustar tamasusers00000000000000 image/svg+xml pychess-0.12.2/pieces/chessmonk/wn.svg0000644000175000017470000002760412641567764020212 0ustar tamasusers00000000000000 image/svg+xml pychess-0.12.2/pieces/chessmonk/br.svg0000644000175000017470000002327512641567764020171 0ustar tamasusers00000000000000 image/svg+xml pychess-0.12.2/pieces/chessmonk/wk.svg0000644000175000017470000003064412641567764020205 0ustar tamasusers00000000000000 image/svg+xml pychess-0.12.2/pieces/chessmonk/wb.svg0000644000175000017470000003101312641567764020163 0ustar tamasusers00000000000000 image/svg+xml pychess-0.12.2/pieces/chessmonk/bp.svg0000644000175000017470000001332612641567764020163 0ustar tamasusers00000000000000 image/svg+xml pychess-0.12.2/pieces/Leipzig.png0000644000175000017470000004420512642235661017145 0ustar tamasusers00000000000000PNG  IHDRMbKGD IDATxw\ǟgȐ (#W#K6k_î]mjyZjβn ŭ[d 9W8(djh߸K,^Xg7D^}fpo?7݀ --wDB޽ qqqMC&iGGGRmmmqwwZ],Bǡhh4aRij!Db9s j4tqco~:D-7hZVgFX,jjj066>& {Ѯ26Z T }hAWSO4G=~ 1߿T ibb;iիW?> ,`ذadeeR|2qqqi%`رX[[m}M򈉉i(++W^t1W߿OF =:6llx޽[;T*HHH <<ɓ'piN> B===$$$bHRꨩ!!!d{1|}}&H$bĉŸq6l]vcǎcll3$jJ%pu~wBCCԩ>h#bG1 f6@0loG8 ߼/!"66;vV<3̞=b1999}***Xp!cƌHׯ_'##z%K ٳ3aƶH$Mǎ),,$?? ,,,غu+III3i$=z42 333qFkn N@79\(0B_E WMS9"X<{szX!78 7׸[΋;ruoΎYf?PPP0|gXXXгgOYt)TTO=?EEE^!+nnnrYd2aaaHRjjjߩ>ݝ,/ۄ?"M aQ{)@Ǜ'r;!CMۢ\Eݹs'ݺucƌQVV;C۷WWW1bvXXXd.>> &0rHV\I@@J0x{{sIFa9ł 8z(;MY@>="`{N sGr0Kߟnݺ`}Y>JKK9|0ǎkrGyaÆ@jj*+Wdٲexxx,4R*%%%E ޾Iqql)))TTTxJ%\CT;(DF[V9xj-a%' P ؒpAT*3g2n8ùq[n7!H$bbiiɨQDD"/_駟8y\TuE@N5k ݺuooo֯_ׯ[npBvʜ9s5k...jݡq}Cӻlt`G jС3f ÇG0p@9BMM ӧO\s*++YlҫW/T*}a`:R}}}177׹ù0~x݉c̟?HDXXWs;v"##9y$={ںjA 9fm|jo6scȐ!“~:cذal߾<(,,G\pA{|>}HKKCRq 4 Çj*D dggcaas [[[rss133#77HD޽y饗Xz5˖-9W^895Gx VuBxIPTTԤahjijଛEg$J?* .\PT*%$$d>|nڵ򪸍97JI$>>:`ll… d˖-MW7l/m011!$$ ȸĉ X,w(jkkyDDEEq5zԩS`ѢED"q6qqɓ?x?ˋiM!6mZԩSQըjϟOnppp\Ak4$??,صkZ'?bSLiE@ՕΝ;sq `w˗ٰa1|p"""M,5 HTWUU%'''T&%%VUUj4\PKMryWWӧmkb1&L ** +++/_Έ#lrRԙ9884y!5 PZZz[DD^}UzͦM:uO\t'j-V,\K.fۉkjdʔ)'3cccT:wX,.?V' iH$ؘ#G2i$***x"111DFF)--mrt ???v튯6xw |`Wo"uuu( yFATj T@Dzy-""b87o_\aÆQϞ=%$$81117c4@J;b^zcpB6Gy3gi&=Jrr2ɜ(ׯ_^\\lчΝ;[pp'O>]ZZ:tkG9}4/" iŢExŌ?o>H"K$ƌ_~%jE=_Α#GET?T*r 8aH122"!!ׯ#J"))kځ.tԨQ~FceggwNLL޳gO΂ v~}JKK277ZZZsNMʕ+m]'$$ DD\ýoG}?r9x%Kp}YBBBxԩuuuX&-^XsdI#ѣ8qSSSr9666ckkKǎo۽WWWSYYIQQZXuu5ÇSD!`YJR8ܧR,,,2lmm%2L\SS.**R!d2YH$BPtBDz;=7Jʕ+)++JEnn055Ύt,,,x70229mWRRBQQ...:u 33;JHQQzWoDuO<ı9sT8#RՉIIId޽#ڌpx9qz5rɪb.]?Ljj=r; c­_rY|9FFFisFgRldd]bR)ظLϟf055͈M]PP3999u!LV,֭K.M6 *))9ߣAdS{ª_~%3f 55Tbbb e';lܸ\e u]}K8Ⲝu 텿?نˍظqcRt*)--ғ---wڵkO>OZq߾} &88Ȇ  !22ׄ[`Aa>$'2n&[sriii{'C4 ۳jժV ɓZ;jׄ[x1[]]}یV`cI-FbbbBWhرc$<<_5fff3!Cpz&! 24Bd. $:t( !!k׮VVVM[X}KѣG2J uG J~Ht"G2!/" +OUZZJEENĈT*++;np={ܸs+k{Y^~>ŋk]Ettt$O-Mkjo,`݋Fî]F&QSSC~8qC8SWWsa;w 'ҰhwwE!==h҈6DhjM( p}JwbpL:ݻceeSLѦTG[nR3r];and2C yjGRЫWݤNܒ @:4M>}sNVX3gٳgOBUP՜8qUViCOcǎ5p (te;c:t`ѢEbdd!:(TWWOGa!O?ΨQطo;wnAaV,`6 oÕQTTݻzk5աT*ٸqcd9|0k֬APhWwvUo@舴3g^zɀg !-7i7"""ԩÇG.w^nu~g\~+W7ߤ .^)܄#bw};wƍw)!?vVko.•qYϟͶ666歷:Ju띓YXX`iia>{lx m СOsTUUu 4iҤ+++XUVD Եf©jBBB%++  /0gZ !""B'9[&ajjMŘjWciiG{oAPlb9NuСS3gΜb(p AM&i4GNN#GP(pvvԔSNCXXX[(4K;vx&MY8qB{̶m_srr=͝V3f̘ HJJRt֭ !%+6R ٳ'9rh+н{wƍ\.;;@uuVӤ:Occcu" 60@o1p/x +V![e˖~dt#0`BCC8t h"X/774hPz``޽{B aD"훳s!|qX|I v7mnΝtڕӧSOΝ;zfffMHMJJ|TUUEJJJZqqq hׯ^z5۸'mT*޽;A+p $%%74fll̚5kHLLI+Ȩa[[[C5 AecccJeo>wg}v JY|9O&,,zUˈg׮]zIJ-ַo_ -555$&&rʓO>СݻwԔB.\;??C΄ 2eߎ<}YQ-bNnn.Ʉ9Y._L~~h8<@]Hma\^\]]7ncԩٳm011ӓ[S 0 s>7w:*-"\\\RQQ?1bĈV_^H$\r   dddpe4 222xqrrbܸq,^///D522OT\\LDD8884y} 1';; ӔJ'Zxwɓu @`` gΜ!..N'L 3dΞ=o$ ķ:h v[T:Z}Bz 2}qttԻgҤIL07nPRRB@&奝 <^zoeemNڦJ+Ӷ߷:ѷ-"\[ã*hIpT*"?6DGؖڋE]m? ^}fpo?{qW _MP#J!ܷZ<~w޽{IIIwh#4,PCBx{\N)//JӇy{Aŋ=з-0l$ Zb׮]GGG49sx뭷li{͕<0D) }!A9πZGGGi( 1zМaa!, ;0z{P/M7߰dN:ŏ?Ț5k'&&77?CG޽bRnjsr\./p )qlٲh8/X,fȐ!DEEիY~vn7n +++m666)V9O͞=2%%×b ]\\b=== KD^0d~WVXիqtt$448?γ>{7 ԗBhCBh \Ν;3~x\ާo߾#}QǏ]rĉr<C%ۂ{RVVƮ]y[lƆ/:/qFzu h4y1[K8)M.[ĨE"pP@:hРhzkQ/Mz&-Fұ!Y[[~z:D=hieeeF={ݥZKw^W\9+|:FSUC[lٌ38O3buEDD=z`ڴiTTTADDT*ի?p1zmJ_~iV^MT/U!'UvI$~[XX# A09O>=!!۹ͭnؘT̙ɓ'y|G:uyimJ?<׮]# h4nD6Bh S/^|J2=qD%-9p'8WO 3T*999׼ג/+j4{1,m)ZJrp% /###ݰJ ň#~mj]B`͚5?իW)"B/ްRw"V.(˻d2O__߇RiJRTTt&&& pӿ}8m?pmΝ;h,++kW)N633`ccs{r]~gk\nVYYy,~H$nݺ_zkP/MVB]]!K$$$pڵ۞R8jjj?555Jjkke2ĉSSSurMAX`2QUl 9tP9s![4'jZ A,pL摚zҲuJȠϓf̘qܹs}tE"׀c]mh{o5IHgMMj5[l14}!Z A><\rjFѻN.,,Q(>`ے%KU ><~:)?{vvTٳgu[Wri\xP5Z[ڠnٳ{W۷Oo߹pu]Q*EEEG6o}Ųefbw}w?tІ=J) _}XcO?֯_kA[K!41Lvܹs}]t[nuV|Mz4pĶTR tttlLa@[>}SYY4TVVbbb-{ 6{R W (oܸ! vD&O$ԜVGb}{onkbbhvgjjࡨo@v^~ܹ|w@&!h4(J222x ˯N1h bcc[+,8UH-N zq[Hq۶mwe?ۗ𰫬 CĺD"y_͸I;#B`Md2"TWWcbbBǎqvvK.WiR)/kkazz~^v袢׮]# fX?rSS-\.hce0=D8paaa|}[i,prr"--JCHߓc׮]m>Uر{{ǵpR㙙2PGٯ?..*JQNNNѣGmdII #>>4}dd$6mBR땦ONNfɒ%?^'r$!!=,"wB]]lq) ixxN':0hRh$M.]H$"** F?OLL =˖-T8CQZZʔ)SXnǎ_J^{oΎ;ΦW^X[[w[YԗB0]R-}r R,jkkkhx ]]]СCӷo_lllؽ{7,\aÆqJJJd߾}$%%1d***:t(111߿rssvcǎ_=z`֭XZZҷo_ ^|l B3ᒒ'??gNTTTJe&7=CzN>//3gΰe$ nnnj233ӑ066FCFFuuu0k,CK߳0tZdKR-4h6-z4aHi{V)OXoTşU {Yboi^}n/^&B:wiii:r޽{k+ ???UxgmW h\r̘1z pKɉJuWYYɞ={A&P((..Sp\NNN5='553;w./A 88WaÆf %55fٰaW^%88h]E{cǎFΝ111d<==8Te.]"ɰ{4ֶmۦcW~AT;;;}Q.][o q֠7dD.!'N|$`B l 8ai dK:::g5{?̙3 4iӦtR/k%o//?|E%z>+ 8qĉΝZWW7H5dY`mԩy"©jjkku& QUU-VcccCMoO8q kkk}x#}!!!@ߖ.]: <<BBJJJ=066F*bnn\.ܜC,ኋٿ?y 种x3g/_w믿^QT\|8Ҵגdxxx0vX7dn޼رcڵ+ aXmzHJL-_1PfccáC3f!.ѣ z eMz*BABB 3yd@X/[e˖i'33555$$$c=AF*B6w{caa0Sc86l ra1`1 V1 ,qwwK.X[[cmm%b###BV)))b]Fzz:z'4!\ll,;vDx{{L^^W^ 6`llD"LJxz)nܸƍC*퍽=:&ZBBBh4,,,b^PF0mtcNeffvsmQ0WZoA"ɓ'S^^Naa!SLA"PZZJZZըT*gijj%sy\]]gϞ5:uX,Pbǧϯa-HN:ٳg-"`O>)oܸrbaa5:#=fff:9899aeeEҚ:С^[[KTT vzBThx'|2o&aaatQ{ T;wdѢE$$$0j(GxqyڲE-س~Chഷ>wD"qgO!V ,E0{֬YG$Ktt. mӦMA7oDVDNػw/ǎZT裏(++cҥªUرcݻ 4Y2D;A]z5 x8w0sL"""tKe2fff?'ၭ-;v7TJ]]} Z+V8q»SN~?\b}tĈy$`?\k׏?0}bM//GȖ-[O#7nrJ.]D=ի oBAϞ=ҥK\\+mDɃ&Dυ عs'fΜ3<Ç~)\|YgfaaAQQٔMAAqqq{!8pVW^mI;X\\l3iҤߓm***;w\ٯ_fffV"Xa}:!h 9x4ww+A  && .h#u_y^ץKJJJxwf̘A5jBzܸqTVVϫJxx83gdڵTUU1k,***;v,EEE:j 8q"FFF̙3WWW.]|@yy9ˋ' {OHlLMM=o "*%%(<<\qF]v "PU(&n\\\Xܚ$[YYRh4iD/b1ӦM#44HƏOvv6YYYеkW6l؀-:tSSSD"JR,++#33˗/ʙ3g;w.ӣGLӧl K>>>>0{l,XgWڠcffF||<Z}z"IDAT-F7)))舧'%%%Z={>dۄ'b&L@TT\qaeeݸq[o!K6 |!r);wz p--J%|lڴ'|+WR^^Β%Kd|r6oy111ᦋm"cccz!f̘Aee%ϟŋ\r233J6C޽ѣ< gϞ=P"VRR^WW+HS#""N<)ؔjT*"kkkyua߾}#F0`qΝD"Qmvvvw iklذFٳgY~E1bݻwgǎZ!I&ܹs<(-b1z"44@ڄlmmYt)Fb޽|\~IRDBϞ= \*WUVVvisssbq͢EΙ3O>)_jը"KDyf 6%)e2Ϥ%BV#NW711A*xY_tdz#Fpy_111&66V{L.]ҥ vvv777!{{{[yQՆcƌ9P(D'N =2z'}||NE"3))5::zHxxGydOWcg0OFٙM6T*9ug&00B?B`„  Wopww$u+Μ9ȑ#С/yyyCKFFvC=gnݺEn޼Yֵk׽=noO{WUU=allۺur֮]k'{!..nBKm9rƍ@njjʼy7ov5H`` uuu\rt֮]?u'ޯJbʕ:DСC aȐ!ҩS'.RIII \rP.\ Ы -e&&&F]SSj+X,DT*W(0;rwznGԩS˼;ꥲYnC{8D˜1cؾ};]taҥӞ.EEEnt:SSS#Fr T*(Bp000,zg#O^şۿ"jZ-^fff^gڞJZs[tfl?5rJ8χ nǃ`*HBbZw Z 8ܿd2,--} n1==,x"3lllI*p`2Jn399 wo\.[ͦ@z}ˀvwwk𽕽hĢ+GrJ6T*kkkb1XYY ^JB"pUh"LP(hmmb{-w͵@Ê2T*'/dGGG`0bssS +IOa`wL|p `0xS --iGv~]Nީfݦp- U^!cx<䴴<{vbxW3ԫ)lXYnSFCl;>Z8g#gr 476kaD:n1'-ƃ"s΍iafߦp- GEؕĦҹZz)7\RO 'jVm ׂHcRFjw;n av- =P?PZ~Tޑ|IHi6kA$sm蘢E-)B֠Y%c gwsZdlC!:!Q5l?k yvlf Log!1LK\@\jRm h@$%Y$F)Dc.'>Pv!),,`Ӛ S;%Ӭ~ PS`aeSINNnT]m w>hmQb5զj*4A7%m fʌ2x8e t]g9 .;40-  LS`$|}[=O٠:5 '$??@Nq%AtD,g#% <Х}n4$F,0A=t0CA]20CڷOދ^ᤔlۼWdiI$#_EZZG9hU%AD tU`A @WAWA]=:$hٯ,ӿlo 'hޜD> _{ll`M:1~"!!/j/uۖ|Hp$_\7y(--=2\tn߉mRlMG,,|.f#+U2z@ _qvr{;A^,` i}_N{4.aGߐ"{+7O+xhULZB$>С֭ZБckPǏe+AP )eےwRA>.eб;NfE$GӲyXp\ylovtq` !2 fejݴ<1l ̒f97ٗ7kjgEnqÐa~^y.tԥeȇyx^/NB0-' 9 ASb7i0wC#at@yZ۶i5U7j;J *9yVqv>AƦhV9/L"446 CspR꼦Up.>[W^54Z6[U5&2 V"ϸñiJ%'(..&66IuCF77W"v9|A3kŦ0l:i s(!,CjАRa'peʟ?ys`)ipj.ܰՁ2CbrZ׵!|;k] M x#R}L!R`b}н M^G=9o u&4Hi6DauR)M"f Bzz:?s ,AJ4R=-3yF%jVշJrɴzHUK`}-ViCEµB|[Ívk<z!õႢMpAѦpmhS6\P)7>bHOPo†6kqݽzܓ'ZZxu٤ŷwF1!]м %Ziu8@qq1^Tbccܹ3a 񹘠:>C|~}JP-gq-"SR:;)Fm@g[c\bΊRJQX0.fsShUTT_v:W\d9=lA;oCVb'nCuw[KFnOF۩ .k8Fߐe~;+C, "󧍭 c,h]9hP/uW.{Kaj:wnT?'˸cdث/uOuQR4?xBb&;gBvU1+v[U-iI)Yt)˖YQ6MkpHKD( 9Esqh)ye}s99s0qDF٘(! 0ٚcrA̐he&830n̴StCN1CANMa5g8ekKOa@ICl-[JzeGo)3U[ϛٲ?a]]i s_K:i6/|kgw駟Dvvv#7?~W{h84 i >N'eهLz-u5ܿژRPjҷ-zRqC73R^y ߟe3}EGꤵW~? ,@JI.ne/=Oہ ~pc/nN:f$5n[sV~g{ws>`,5<}7Njkckyjcod7 )sŤ+ ǖDe?HtJ5tFʑ:q ;S\p5_ }í[׋ v6k߷dͽL6zukY/x1N̓?FAqq177ɳn5|̺̊% 3^{;V?z_RDVDcV${mTaqg@vqZ]שpRJ֭[%9{G9# Ô?IF ŌiVjʲ/FH)Y6'4WDc>2Ғ?yetVǞqA_[dH1HN$FJ;MSf:ɓX ) ꎮX$f 6㽧gb_p?O<4Gǟ2ҍ9kvy"KQQQ]"Z_ &'/CI#];5vWz{E*'pR\vA^$)fՙW$3=թp99VF^|x;Y;_|o1n;O2%Y[vwv=|f\ޙKG'"";tP]"ZxpـUbt'?7n}Q3k:wW"D]y ^i"3: M2sB;Ƃ1+_Hix^{f7?_^̘KˀYzN.:e>DEE.{U;+_ۜ}fmCRZnV6ڧ* T/wDfqXi_5T1kd:%^}|\%Y4 u$_&e:i)0adho,~4'xt E%̘ԕk&`AL܇2nvܶ`eC(.)cgq!%/K6-EC:fK}_C]?nV]1w3Z,yg.]LV(ceIW-{;۾Ӎwg=9QżV&]qze~UUuD>Y`PGQ:uT}^›K2Tjz:ؖSsĢǏp>VVakz{k <"cxv!`ִDo}]Gx[e>/6[нkO==&NCASsf4f:2 STU-9:}2궹Wl/f<.mU-aOrry1MINcY,z֞ _-53o)k8ٝ7?Ͼ򠝔>M7A.*{+}(0tɩb fծp0$E)p}}i.nb.Z2<ASM\.փ~T^NVpizPMMpF9=K*I[lBv{ZU4He \%n=D<),OU(]M)Jg\eUGv=i6Gu9\pmh0L"Lb?((0*TUj! BkMS0AbZVDJ)ŗRJzUu@u]5V.׏I6;ψI`[[Z 2n?xʸhjEµBo6zKPmvkpAѦpmhS6\P)\.(¢p{1 2;$,Qn8a={mh4pჲ>;"m/{uw);3i.~r&V~*Z -&4 9aٟ'q䐎-%""\%63kz?.DNopMMXx1'NԞd|dff2a]OcԨNW?}1?W62yl?^xK}?ۻwI_\ษf'Gٶb ~\remcVGIDATΜyת-)`B?;;j5CСC⋼flpսK'3>]~]y%ĸ>>;jP-Ҳrj=):v:'lyRdl"4M#&.r+PU%?۵qiޘ:E!ZT&E2 "ԩ uIdþ W"ټy3p 4)ѯs'gbIĚx>Ҭ oˇ+KI~ `$*2.bcʸl֬Rν,m(--W_Bʿ?-kFFPPfZw8]jJ6Ar`@GA5d*|.'urssyW;Ģ:[sf-;><8{E$DqÌazؾ(W^>>cd݇afV\\̚WпK4IE؇Ptb#eg%Z:dveРߚaVu|M<vwӿzxkY9$)萨x}uӉLbc`h_)((`ܹ̚56OLXү;F9{#Jf`JRBjuN=nܔ.߳HoXo(LdʏT iǹEs"E#T'Bs 5GqpA(E_?`$%5 a՜8p-[п:SvOZդl '>Ybxf8wN~TeB$L )YE" )c6uxnQ+ LɾSe˖ѧO:I&kդݒvǕ1=IM膤Ӭرc53b/=͝N w=U̯^-ާ=rĮ.7Ca.}PTTāꬿ6WrEpdRMAN /#Hk:Uڋc-Mm صk8RxSY4î7pY/<wFIR;>EFp`8Az8PB ucl@F`Vl6hw^j|l$ZP|@z/|>q":wꙪ*{5lޤ\hTΡb J&7s(K}ócNd! 3c?Fh`HӒrjeRuP wx#z>Wf)\bS޸;ce EqpFR*XjVLPmsAh(Ͳ(jG(}gBqm9C~u U]m,^o5e͝gHW;*[9o;Ec Mz+|P]$e^/iLxTM.qպ T74-k=#Ot(5 O5ebbM$XF~NNVtNjBt;XLɷ VKBSpiR^^^ 5{3K8"j :o=5f,--C~zDF& yNmh@h՟ՉX8{ R!Y6AEhʔgzĮYIȦrwpTC+ߑS#Rb5zQ؏áyQ б7+v53?o.}j83EA~AJp4Ҝm==lo Նv5NKb#liu8Ԩ Qwz&~{^>Ann߳'G<`9_B=^nKtV)#{Y!zmH W0}al )tcq 1}!Md0[[ g Ѽ f)|5?̫Y""i݇߅MVY̐թlѧNmKq~u}4_y{\+9eg>V rXkV`&26uRΝ;Y '渁|Uݦ"%Wy;)ǟ|4> +v;+l>K8XCxջw}~v1Ub$֭ϻc阢>7Wйo !(-ES+:!)(;PDqO9e5'1#o/܋PZWyM̼jPoشR,b&b:{⧿~ݱk[Э[7c3{Fi.T•C(~{>v4J}~؈v lzt:tPg5+0Mxd1*5xz&QX\somt=y0w:ɋ|ȃ`'%""='gxϧ'h);_J2aE~'pnAf'痱aR I^AZPIvzwP*S%ֿ}ҤIM1Ma5==ꊻg`2>Y~?YOs>>Oi*BY["-==x}25 5EωAXogL3 &у={sN^HF;S>Z[Gk Wшv»klȱ:CQoݵ(4CfUzԁ?xDsw@ Z{~ Vf>q }yCDт( P T8fͿ)pŔ/D+3fPTTɓ'yR rUn'yA6 2јDbz+DT> ಳ<fL%H;{'rrnN ׄ#yX#vVY 늆UQ@Q> ($19#R隝Tx*mKn⫼Pjoߋk>(˜1c0`˗/gΝS1)DEEѻwoF$N"8PXqaGh S#ls{VEbXƹuN =x~p.4{r2heP+\ lU. UqjCQ+x}~?GU"::S2e9©Sx<|>""""--fQa[^C(*!BZ1 !(g]CQyN((YS*BTP@Q((&*A5C )D(:#4 iz*EQ"++뼔_™1bc(*LzJor{183G(BQzwoYF %82U[UPKQ^jU͆r.g}P g|J#XRHiR ¢`JȒZA (Һ޺N Fa ##>9+*SZyU@aW(躉D(zᛀ.7wye4GBAh#$lEµBb&njoCɰptr3W"Ǐgƥ#2dHjݱ3m8mٸ5=[׆fa^sw!5.n۴)}.miy[r@ @3@rBBDt!L[|9uǾ!l=ܦksf5 }7c5*9(/3Lo)?[@K mFXNJIYq.Vul N#TM*Byy , sp?㆜y~܈,<*hg;!`.i׷VRrrZl1eR{LhQἢ 7b䥤tU_ʍՓs?~cwͭh;)ŘaYMQNm!gv"Nzh7Bph^GϞ=[:4[w}5:lR~y៵@r4YNc2YǚDzz>t..W } '666,ׇ=ڻr!>>[~64ZJKKٴS"fK銷"y+QKLPv= /򀍑ƞ};l.JVvQ#. QB1y\τӅ7ڌR-[^4JڈVqUDBsY!Vw¾(6'oE<IJVVvXety ֥7f:B[] K>E@Pl.'s&n۶E& ϣK vmYKkO>JlTMShxL}c>l"m#m'm'&z9r"&:ƍG);+=.]2/&Ղ.zN/OrPOO4HN%=3&ܓ96->>CF73q:S2/λw7w%/R}==q<.DZcη-uUɻ× o&46 f8ğomM?{b-7K!%eA/ҫS6?_uƶIhMؼA ѥ[/v`:o2pю2\$'t6_ʼn50i AlLfByy9˗~4RT.ME ׵E}!f.SQʦ퇙?o.3I;޿)WL3S*B m0LbZtXO?Vab#f}V4gh7ԮѬy:O׽b+-P*P4B ŪQVQCLZu4¿6۰v N$%! E7+DuEF fU41rtbȐa2a '@ltHT"YR+IePhNTUiPg7Gum(6,YlϡjU#PlN^y)?]Yh.ߛp逤᚝6Wmwj!EW7+! creW:kUϟ]RmvL<_U;V.o7y"oi2quI늘o gj+$35y8 Q%nh[3UCqpS/+0O爃ǃШhULQOYdn * S*%2%cD쵳\ʴ"Dl ZUzJ w"!CX?p~au11)(W,Xw7#餴$\~x>l5\/0egv<6=MZl3t]X8qԈ`Pp|ᆪZbbb8Jj *UABQBP$f"TQ.tjf (8P񔷺ՇF}b?2n2Qp;[e>۵)OsP|ϿONMLHv)EQKu .`w&4iNbаڸY ?blٜHѲnӻAF>]@Ol W]IKudp}K9N PiJز˥c.LUպkkY:Μv_κʢmlSw/FWr8_hPgS"YY2=ս}F(T~1?|Afr >8L?2/.x^sG&]IEvf-ߧ桄_c0##K?]spgˮr3KUࣔWn"SWl=vWTigx W}ރx؍x<&999 -w0NI mU e2tV image/svg+xml pychess-0.12.2/pieces/chessicons/bq.svg0000644000175000017470000002175612641567764020341 0ustar tamasusers00000000000000 image/svg+xml pychess-0.12.2/pieces/chessicons/bb.svg0000644000175000017470000001652212641567764020315 0ustar tamasusers00000000000000 image/svg+xml pychess-0.12.2/pieces/chessicons/bn.svg0000644000175000017470000002530712641567764020332 0ustar tamasusers00000000000000 image/svg+xml pychess-0.12.2/pieces/chessicons/license.txt0000644000175000017470000000006212641567764021364 0ustar tamasusers00000000000000Permission of author http://www.virtualpieces.net/pychess-0.12.2/pieces/chessicons/bk.svg0000644000175000017470000001753512641567764020333 0ustar tamasusers00000000000000 image/svg+xml pychess-0.12.2/pieces/chessicons/wp.svg0000644000175000017470000002165012641567764020356 0ustar tamasusers00000000000000 image/svg+xml pychess-0.12.2/pieces/chessicons/wq.svg0000644000175000017470000003103312641567764020353 0ustar tamasusers00000000000000 image/svg+xml pychess-0.12.2/pieces/chessicons/wn.svg0000644000175000017470000003524112641567764020355 0ustar tamasusers00000000000000 image/svg+xml pychess-0.12.2/pieces/chessicons/br.svg0000644000175000017470000002612212641567764020332 0ustar tamasusers00000000000000 image/svg+xml pychess-0.12.2/pieces/chessicons/wk.svg0000644000175000017470000002643112641567764020353 0ustar tamasusers00000000000000 image/svg+xml pychess-0.12.2/pieces/chessicons/wb.svg0000644000175000017470000002424012641567764020336 0ustar tamasusers00000000000000 image/svg+xml pychess-0.12.2/pieces/chessicons/bp.svg0000644000175000017470000001506612641567764020335 0ustar tamasusers00000000000000 image/svg+xml pychess-0.12.2/pieces/Fantasy_alt.png0000644000175000017470000005344112642235661020011 0ustar tamasusers00000000000000PNG  IHDRMbKGD IDATx}w`յwo_V^lɖlc !`ZK!Hq66$$yB&t1ئw˶zjNVZjh٫oιs%^W^/IOi3o'-|z(*$YEQ8Usvp0^QR+%Qg'7lXOZtvގJ<υO$u@0cMOJ>iyB8#t'*uj>&J "&Ji Mc&pGyC P^tk5~Q6x`[?2c ,rSp#idEE dDÖrh}i4Eh4K/3p-g@KK5|ۚ&׽{w5k)gUiKn\MUE(`x?q aqJ5 !,fn\rST{Uae | )sDQ,kXN r @! P U5ݠgtA?ZBi&#L#ܙ0&cm-7bdr#Yz+irڝXuѼ{ߠb2^z{$I 2;%,l4nhl\ `!cGYc\rc8UA'hm 8V"I $H:dY?CskiVU%ݑ(π鮑$ I*1hz׮]{c$"=}we1QzǧbNσFxNX-FL(Ŕ"7y9tmmh#%uѼZXL3\{r:@Qa,Cy^c(Ӂ-sL;x=;y9{z JKrCe^dDc8\U6ojI"Q1L&$ƵqoO_M<bhlh16͸åtnjB̜V93l2 ȁxrdlX<&*=IPm3(QNm 79<MQ19[MyJt0DQ4Db" 8o t ǢnT ?7!$@G=7lؐJK[8h.CPeJr8;P>x_破8uH1Hy) Ϛ S3Ӑ*zS] EqH]ɤizqm7NWm_Yu«F0$i8p:cZѝH.7B +*-' ¿>pClmw $i0._x޴T6ťI!p,ppحx-( +H9Yq+:`Vbjqr=رѨ2Ws64IUӐƵ՗,e-%¹ӎkV!Ox4~iP޾4J[n~$*FU _ݰal G`"Xt ]i SUu׷{V[bQqc,m|<Ǎ !9gN'Jq r}o&#[26EQa ɡ;mnk7ڸeY+]b4$xx{>B@ p OuhZtտcK~A`׍U.A΃)8rء,D46(g,8 "$յ=)hIƤby <݊pDaajLCxW֭]vwQeX5qz BiP[c< i[ZfBykr3KaJ(1^۸=p:"ac#Lp0Ccs$Y(Y%Ǫ I#LjI 3^r2P5$CUhG,MCӁ#Um 7IL9u5 ml/@ǛdzTIq&1 P2=cB`6pқ類Iui7 صFHUdEGiELTmCC8Bы sZ4b6n tLl6f=D0AH$ pd$&Hz\('ixoi jDb ԋ_23$ɨ(*ndRP CND2]6xʀncδnY~ww[Nhҹf0\˥|.a'" eg%W*ч`9҇| ,Nuh8V̙1@ܷD 4MCx_! 0ee.uW7wiI69&z;&*$`FY4!R\ˀahP }ypODH+>#-/G]c׈pC3)cɘ4 `Zs{Cs(6d!2!8(BiU]סtV5*`P%1A#8q,mM'3Yvج&4 q}?7@l&abEC(,#ų 'MZ=mX2 @( cSҕ(FBN& ^ǷXvH/(1Ht <!PT 4t D%Ȳg!Ue,iEvXtdY'WM$VdEE8"A4ddpY c:,/$;-'2 󳐕_25i&GHb20$qxN,f $+9,ˠBO_/"Y,]P;j +Zr=jBF M!&*9%HOԴlj281 LuU I**E0 ͫi$IA (bea&cGqdԮ 95 q]wOH noGэjI xUVAd 'mc(NI 'v.~Zp=t>C?piE Cq&4i:JK(J$Y-t OI$ $%Cu4M'Ax^knݺ9E?z:}/C>@8áuC!*M.UՋ='dlO54u⦅42VԾ;y:3K J=#,Ccpe]VR^4 [J C5<_ufw!*+3D\nP*HeM]F#?g4'A`Fp MnC(2vhtyJلW6nH|qwo?xÑ&O?Oc(`|,k׮#wIi!'P8!4MG/ۃp$ `ٙ`sUIns{ٙ_1 5C mQUۊg_ޚ#߈yhTM@X:cR?f<›cφ(Ǔ/Qa6h |\ ʊ~ttbFYz@0݆TV7"tMGO_ RUS5tz܎/-={y<Ǯ4Ԋ`(M?g4 wO 1"շ?@0E GAf}3# u&g Ƕl_Sʇ%S'UVT-wvPDQ{:xqpt]GckjZKKڱp-̘fuioځp$`(ل,W$¯_њDh`h>$TZk\X(<]R76EVYYyƤ~L#x\DQ8|,|ۺ1|m}>w)ZmaLR0qӠ8ovynhִµEJ ;Qg4Qu>Ȳ *x`{q h ) `2-h4zt@/U^Zy jL%fSKbp46<λ}vc@0ƞUd1YVڃi`?Mq ZlAۉ՗, p@ c#UHT5 lܼ Ȋ455СCؾ};nٌɸ)QyČ jmBm]j1#+O*On=tFAIQT7bjab:i C7H4 t}=8 "uNp$7E+^*O Dc1i\ ޹ gafYa tBP[߉ E֛Dz]Hl?_JTV5> pɂA0t0:wڞФ7ߌs.F, "  }?oP>cD8jv? HF fVj:w!]=L)DۅGZ ̦rnwēML 4$Ŝ2b)1k뺭wU.:Iؔqk8Ӂs,D4G,G4G4@4&G@CE o<‘(<$ԬiXq|̯((JM4J1YP)nT7Ax a_? xXEUXFc}nc`r8Ot2.=[瞥3dY;ҿ/^s06<|{BSPR!@Y;qhAAn3 `hDQ[[۶ Sg#+ ,< `Ō4ї)XβLݾÍI xױG?C>rb>翷lK-9k6 \yRN@o7`8K"^g i1g IDAT߾6RpbYQV*2jYV|@(Bgjl ,ci2l4C!wC5L+? Zɂ鉢 %˘|LF` ,46.=^Kx셞@gwؼ8s+.^%_tͻIؼ -1Fx/9Pgw`i{ge;Qi2&jX` c4w?_ ?d1YQ)cΜS MAxP$ty$+EAUH рL+j G2,Cbˢ*3KxVN̫(5 I5qhTKQd4 [b1Nwu `)d؍Zx(w/7_5n34BԔh9eL%A7 vU$.\$v@0XLX^4_rfeEѳbyOO"P(€ ^LUH ]ci0 Y4I[q}BeY\pxѿ5߂Hṷv_Dn}Z P:E""ysFC/yn  8w j{By:*@DCS UUPVKuW_:U@T?\6deQUb`1 PT EAo_tu^Ƿn?oAFɈaX КQ'w ]$ jpwWCT ~i|+BU'"cBo`0SB͞ AlvsV%nM̨KOa}cGY INj0Psg`e C8Q}ޞ̞^$Pj(Y)ny TU6lq)rZ>9rCyiN;6 HfihZdY &# },e8֑tr<EeRH9̜ج-ch$1=qǍ*Pd "afPS[,GhMU2Dž"z Mט h*cJ_,U  z聛q5o?<-i4,jHe0'-i3ogJ=NJ ܲI|00Pg)/{ܙI#&;w‹?cG̭1fd?UZR\kX>[f[|R>% YQ[SsPy@ʹQutIcCvl6m܈[ L8OdO-*__WK5Y2;tmuddgN/ZR؞鴿 5,Bׁw98rrr^Ō=Pw8VSܜl:pvNI%ol4]<|*O^N?_>tuܻF28AөY9,dR7™b\crd[~1fEBvދx yYGe+˜~x7lV }^ؓE(2CuuΜUhjj¡՗Bu“rtuu)446d 8cx.]/_ U-?8¥ s:_/-_V7(,x{F<_v`㻛+-^C-&|>޽  ػw/z1w,4q\DG+vZC%s&X p -GJ[5?BNgƯ^_yn4,pW?v]=XtD3$pS\K.H$[Z|߼+ο< X{޸Cs͚7OXb}hnnFۅYMUjK+]gH[-GWw7Ϝ.%~5srw_I冑p%_{y+~^, K`m{w M>hjiv$ DK,[QQBNNdsh Όiеx^y ~Znyu ,0^tŒ$ct9l->޵ 7^5BhdHT[_ hC `מɱ|t]C-ߏRU5ǕYN-յPT1QdX[r:gfCS߄"KX|1 U3qOa͍צYˆ%Jy?{_-4APU-͸d 6hJE~Wz5x ObKT_eg_{}<͟P1QX4< &;ofeeo3T`4l-rkxj5|'hꪾp,->=z_z5RQكv1^Ç/"v>Ɇ#_:chŖC.U5NXcx9-\,-L5`muE:{F?rgR=kص2vX,fW7! bjM; c0 ,AMC=**挳+Ow<˃xp,r`hd].3yw57M`^ S&I3\/}}u dF}cngy0hڝ/_xc[wHI` gȳ̛w~i]1 KD`N\|6hzΟp@Q3 Ո1~8V~5e{Y/X:.?ߤRa :w EQX~gwkPЌ.T5ꫯ?^}`h!Ġ3sVoUE$á}v-!hn9Ke>kn/bϱcnk@nV&fN/D=L\Oktx$uO.AӴ%ǂVL^^:R/]Ǫ0;ðA!D{Annd4}Adtm5$ MiE10ofn pTucpϕetc7vH v=z:躎}.gTU$IE ܅xjjk_{q슩Xu UMxck% e(0T0k<,\l,]t@Qdٓiν`h&,N n<1?ܫow_:35E K?;S pیp9S.Xm>5&u!1R:?'!dDGQQ1 NZuPD0L7u]h4`Xd'-\bLio^W?S} >VLIUUG*Mt|ƌϬ Ip~W[^?e6 /y܎g泌I!bA4CtFs$qKW^DQc$}<F|gaI1,"BD<;{t](ʚf@pҸ K3S]KoP0:Fv0s";YD ͝ܧ, }EcpAPT χX4{no ݈_^t,QYb}ף+sr<E__bIb(ՍNd %ͅ 0 u ?E-ÇoygMĻއ?,DIi9niƸW__# 1FoO[[~s@4 b,1{3 o|'3ϼS YYw{Lmp4Dʼ@z=cq%AU$ůҌn- 0^!Cҵ*0 )IDATJT{³{ULɤPZ-H&`APEWʮ]WQ]uw]ѕ ] bAJ(!!ɤ$3)$^x<93|{_&ς$ htyqj?6 7.>r X>ZۍG %|}/ STnAa=7DQ,spc ˘z.dB8E@Sg|J5)f}E3~y-PʎdBvV&(..F@447cMe ѽBװH`1@! ٢Ő8mm?9]==Z^,;z'ՊP0sz>{oX['O3WV{=!n]fu'wO-++#~Ͷov_xղ,0?<(@=ㆠ!qA~R+ $@Y5 Y<˳̚Xgm6ڥ$9g$uW8 W/+PqpA)4M# QWLBS9QPӪAҮ^#+ɢVy@ffӣW*=_xO]4jkkjòoQ]} |>Y(IY`%fTmbh5I_uw1҅9YiYހ?+D` evyx9Ӌ |\J[]Yw vR?t%9q|XmCH| Q:g3 HZ T*X 䔸lFQQ ͞::h2Z IScssΖC~}tMnvɥ7ݎ`ϙh4z\_ ς$ hnnFwK x,KTd)Zq]M4@Ed4j:( _,dÆ? *>TyQ4a,2`@CC#*,X J|ШhȲp8lbDƨhT 3V~@˚D&ܙ-ʎdf5ӋF;C]j'Nl FfC/Zntfpb/ԙ:(dfea۠jRk0cꕰZPzJlFG*ĪH"xC0BXs2|~vipc&^`(f6x>hԪ6))v nMQY`P\"ߓ0(}ˁc](;R3fwSG{uIIׄݾ`0^\%qɆ5_Y8N?kLj,9#SoNҾ}M3˟[{@#ǎz7|)6n!H) /l;eTMFyy9dÃI!<$$F6Q%!z^!E"}j1gHN_]B]b{1w j#Ei-=Ձ&WU`2$%^o6hy#10C͛>Ag}Sqݫ_x^:EV 4jtZalZj||S2tʜw-ӸL44?U>Y$Jr"J ==:>nڊ6~w6lD1H0̫2FF,tp(ōKnEne;vc7?@Qdh-G߾y$6C3NԱH6oܐ,)AӉ nɲ!a(Rh>̞~卷e9\fEbBH G P?F_J`}pYز}G(I/8y,2Xa``Z"$:/'JĔI5A -ŨxrǎW9Y{gz]Xr}05[lD %iWdasW_y_7/{`t:;+)Jd]||"RbG(D<%88E ]e 麹tҪoÉSNwDկNW<_,Y#bΔѨjbμk/6EqJ\e:eκ驩%<@u7b@\Y4aA7o%*:fg&Es\(%X*jj|I@t,`hJJҪ7@X! 3R[GTh-査8cY`0в vُ a3,pB Ecyx5hjp";o60q\2!/^t-W j! _v{jZu!a3Ul0-ō3 Q07̝ q`"NŲ^8_ L+[KtRJ\\*5piii( hHB(Eޖ&|s7zP0Ř K(E(C )Qd -֚O?ozzgeHN\ͩꚠLKy,Yl5EUo5%p(2ZHiV_8>UM-=e8 a" v0N*52rj0؄`0MѵsϷb]0zȡ 媄d6Uja7P0n$ǚq嬢q%9sş}yj16c#/9\ZLƸ3y [^[t$M%HBIn3@RwNe*V#n ЪU $biq-*hJ.'韟7׬"N2~N9!AU!IiW Qg(lr`4c˗㚢 m,%֟S:^[ƱO<|)n,#M#>>HaՓQ}B"R$I0VKG ꓪھ& ӏgë/HV6cعg/F_1$Q*2ƍwW=UugEƼ+aAZBy؉K-ϛ螫ψ{N㟸_9 @#K+/\Кg"CፕObW>XdfT8ߎ*h~xa[X`^onWƝ M`0CVu܍TkJ:V4pkYkz "\ЪJ3' J^Gfv/|k̞6 E$BvF![* Cmww(<~d|vYuwՍ^2a9|9)FMÀ+D>s7u8^U]y8q"y\1&(7'~z}c[-9xMh1he)1`NԷ g3(V=KP[[I"/DlLl;&&N}D(cjp+/f]p%n~΀Kv`_! f/P4, IQ8 z9@SېYL1Bnz2szZ=N8g9, 0aPC'Q4j0xAA`ֻa@촡cFc[چ7׮b.c.r'w B61X2>Rs\ZZv| 9ZfWU24, 5)(DâGÀ)9}{~ۥ/uG`HmKdw>ωB2Lih4_,/prL< EGwQ)֍zoW5']pV55PHȅ(P J"о MQTI4ze۳weYTuZgZ DFb2ՔD%[ K@$ %8,IDҫW/C/lܝAH4KlݱX2z_r8ω#nj]? VF@@b!(TX5td /Ĩ1{ܳjqZmUrnE{ P<~Vu聤3NnXxtˏM@ؚ9IENDB`pychess-0.12.2/pieces/fantasy/0000755000175000017470000000000012653231274016472 5ustar tamasusers00000000000000pychess-0.12.2/pieces/fantasy/fantasy.svg0000644000175000017470000067107512641567764020715 0ustar tamasusers00000000000000 image/svg+xml pychess-0.12.2/pieces/Merida.png0000644000175000017470000004265412642235661016751 0ustar tamasusers00000000000000PNG  IHDRMbKGD IDATxw|SIڦm:i7d+{yxU."7({{&MGs)* ׋Wg'oy|ŬYTNq? -Y_O =IuNLJEE20EF|W)55,_mmjLKpcpؿEzlY={uު*F(?U͓f]Y$`8*8 ٽjLRF}(?4k'Vrl{{wK'LK0?YZW__϶[ԋs\AA{vho0FtCCD*t2FTЂޚ% K(bdꗓSץεAJNv&V+#!1Kmw<k4h*TP/9E%o{}TsB_R[4ɯ.((h|d iV[%QHh}*U(ww:| 9Yh^29F^nx,ҟ4;}0 y Upf|A-,}]R|ts/999uqQGhl(E@BGTU^ bbb4>B)8Se%,^gCpHHWNI^bj`Xf78o@xDU\ c6 [M/+TѦE%o; (4%\QԇOPXXX(]yTw /'qܟ*C{SXr$| 9E?] T.-*];!PUDܢFiqmI-GuAyY$8ζ+zؓOt:q88&t8p:dddڹ?GWj"ٴLvA(c@LMz)loފ:5)_6͉PU?=>B6$-)*[ޮR/K#;DİmfߥOh෭[).*b8vvgÉanwpRSI=omyY2x BPQ&ZG k1Dx*PըeȒ%WTVHPc.#.a*Fɫˋ\66_˔gvƝ>uWpe}ЅϨ*?C1#8Cmp@<(,yy'иF kB ! D< *׃`BUKko_̅dq ӉzXPWWGqQ&9y=nfnn|dYF`TIaA>UU(ˋhz't:Θɞ];V .#2,2Nى,+ȲӕXfW3xp$uzh")*[֘(q%՞цѹbb“Ph\gN.*jOh٨k)Eٰv iՋ .pjkke5lۺXc$%׏xFvfEf?pÇٿoէ/ǎC `!F֬XΏ[+VǑ^{2eƙƵw3 UH T &I >@UC\URkP#M&N׾ .U+)6{py(#2m§/˖nj9|ޜ='MfgiZF=O^2!ᠾeȲ'7 opDDF1`/˝. (rgEQϣA]76UtS^dJ_kqryTTfF( Hqqq!Y~U6}G@$2춺t0- |]9|vM7 &qͷ2OXry; {ǟ 4?/[/=4nj!A.vfۛ~pL<}I%>!x?'5RSS/PT$6/?L1X<WPHr*BP]T8.Wݽs; /bru骪*2fW<\M*,^̥_J˯ΐ-l6֯[-{9z4k׮f :\7f )]5'>i*k͑e8+qq{܄|4f֔Zf=I?sBK.e1|Vv;׮EAJJOJ?~!r)"b"MpdFDZEF5k \4]<5`Oͷt‚jvW_|fj3S׍䖔mD::$IꋞH/{H֡VYRRz!IdJ8Vq5zqˌ9m,QGAXkjۻن)^420 V8CPomN4 AuCm-Yf5zFEI(--!5@u:}:99ل@#3SOb]=Т Kً[v*ߦՑILl,qy-NǝwKaQOJʜ2nG PyNp䟝娪lY?V?_jY<з1}h qdffhwNa^Y__wn~hZ>Lu+VՂbcoNXX~~NKDd$={wYr1qqL<oN'ʦkÏ?Pݻ⦅{֯YŸltGȘ_RRLHh(%+3l*+*p8lQSS*FN$ #hN%% xZ Ngˮ쓏YWV***ڬyV\Xݷ_7FcK;raGFzBN8F[T >ʰګZ[Sb+?EU܇Vz!$ EV\56jjjf߸D~هvñ<ŷNLjD82qH/2|gߺ5 fASB"115y5JRejPVZJLnn`z: AQ]p##F&%_GhZ1={eyJ9 㮻=5ktt:fv-BN55 +2>>:|zz ݁R-7^*D˃$8$‚|{a鵵ll6*RUE}}=プ^^^舉%""~Y]mNxXn-W_~ `47~Dz-S=N \Q12a*/b𑣘:m; ?***V!88@&::pdRSLŵCw*/ngʴiȲL^nPZZJEa*+u7 =dYˋP&,,`CBHً];wPQqќw4kVju 8Nk;(+2ܬgٱ}ii>ADDF7@!yEEz6,qE{N:/UMbR2 m O~1\wJj6cږRREzZZcjpޥaNjD@pȱFN ;*,ON O(PS8 hzvACUk/g}Ab:}^$IGX8=;]QdjkjQ=jDѠj4|}u-.t,(8TWwWC[?)Bϊק;zf͚zOO=aQŅO_b!/'Űah%Ye*!*ʣ\{?hLkw˲HmM yT[5Ŀiy:EA$F6}ݶ %> RA4.oo߀322⣢:3l]H~QQ6ot5~>;z7"e kvu)<<_~8L&]Mu.^ϊ_2} ^'sǥpɬ.m Nק>$,SߥmNG,GX8Jͣ%IP2rN|qS\j:1$/RЍÔgyWh>洱,[K/EQIvBn>y0_G7>ut[]shXj6_,}߱Z-nSDQnH]Z__MZӝ$DF#̝ Ef3[6mjQtvj""#+d:3L)x{% 71%$rwPҠ=VVVʓ=J\ CD8PU-7\&';ֵE E(wjs5WreS1w4x*x#>\{.%+-)Fje>鵴TV ~n#<z~]AeKFv'4p$}I8HYi)pw 88'ˍ^t|TF NQ֮ZoDq9j47|+^Z_,f_qbaɢ-BnMa~K-RU}Pee/*sGwȿ<$ndA)R& 2Mra?q߃ۛo|+Py9֮eN*ӢTnO$F9 -D"λʫ`wt:YhEqBpͷ/TɡUVTp0-_yՓR 2G̃*w"p8X2jkjZ%%'3Oyp@]m-+~^b Ue2wMYb9kV:f+omy SQ{mV8‹":gZkWKPPguvʏ9P xday>ӳ;{M4y%>p> p筷p5WqWc.<r4xǼJo!ƏoX[TSaۉb1"o&ro`]|<~}~^kEX@O2 1ukm߮FJek]:$Ibk-[:T ?|EQ(.2X;QURcM|4g `|geKG:Sl&Lɔ%[-cظ;|Ĉ><<ŶI .Δ@Ɨs綫%KZѹT>=wܲ%?ڥQ⢌rugv,߂6EwrNy4~t:ɿ,䆛nXNQ-\{~#Fۊds撒bGqQkvZxoZlIOKCn%?p[lAb:׷$Ib][-ʼ 2FCn;鈋OC\~Ǭ$VUGۉ*Qee !VZ̅DDFѳg/$IBQG:\!Yo23z,[L>};}6$4^}:)pnf⑸>eXV!h㵬LJph?JKYz,s 7rwy,7/XτISZ]jL;s&CL<˯ ?Z-6ÇqX۰.ڃgdapo'~{C *KP;$aRQ=EHYEދV #1:dpY]3_%Ab¤^ύ7y\of1a`ιBvl;sW2ylFbU8a#Gu%:5uZmFq(4e4K~8TS9E%)>?ףGiv +~ngb՚C``>}If4wB47ԫ/#>,؇KPPPPe 㖛>(B}$\:i]SDDUU= 'BS9I@m6~l7Yz%gsGck^&Ld'ĉ@~WMfF"c4F1ٖv`_) !n'1);׽n,-lnlqTI]H߀Ǒ0r] ܶ^Fc!ؿo/;Ψ1c;ΉLYi)U|??Ԋdgg=wQR\DDd׎f2Qp嗰ufFȏ5-o/@掉~dhh'*4;צ9vS36N9Ǘs?gȰC̤g1rYYSYY@Qt:$'0a餧K2OUYvzmٴ%@-;""+v7Ƨh4~_YҴ6n<_sajAQd̅>TN^F@]m,tN)ҍF/ 6' FYR4}5ʫ\iI }' {Bu:JV'I.JJ)/- < Ǝ4xv :6X  ]8x"tiVb78&g3m1mljMVuNtjjldKoI0#ǭŮΘyV8 9N*+*%/'bUwhy\xw '˲ۛ:vTU%~Ce+\zQUR||IJJO>B/`a8v|_ FXVσo1!)wf-Aa-^ IDATV48__VobGQquZ}Rm[,Ul޸Gl V][oV#Rzf￱9TUYɖ뉈"ZCE NgIѴip1.T#QTG@tK8INN6N|㓠`Ͼ=-Fmi'p8xvL&NviH}}ee8Vc4xS۶nfP_NfI_͐a#Dң>:j,UUT[--ӯ?C@$&NJPP0j1BH@` */FuÿͅzciZA{%~87'^ޜ}jbTQSSV%`l66$#Fo JKp:fuy-p\q**.Ͷe=:4XB4:__ȱ!&}gF.y%+pJ*Z8e>zopS9epSie8hJV]́}{HO;ӦmۆHAW*{㢍o$''⣢J6 \rbߒy0~gɢ'>EmM V짦-gNnv+/_]m=~plISU+3Lsrrv2bHTV朙gIr99()*bKۏzmfDy֨i74MOKƛoaź%{kVp!z=~~4 Gc(>۷*)={ϿF#oN?L \teH4dJ 1)ŋrwPQq8S_ѕV99.+9a:23ҹ7~[6vӓ6ͻ -P 80lGj 7O!Cti $MHO`o1lIwilݴY=Mf,yIh4BDwB8b"& !N{W6 ^m-_|$AB+  ǟpSb(ukظn O=,_zI#qd)ӓPGBtK(cE0h`Dʍ_͛ƛ:u1ol.$-5iSa{takꕿRUQg_|Řۏ^?瓏>j0d؈ (_̃UU%>#!1t1pѡ $wOimڋFλEЦzGybdoτӏx8@yr˯zvuӆ ˦k[5t(cPU&ӗ,~yӦ /"9gr.8k`P]~%!Ql܀|?Y޳<},m3xGٿw9Y]i : Wj||+&::Ͼ'ݻQڱ_9r(,^DQQѽov-f#+ ~u6qKk ]=;f7 ?SG Y'\-F| V.c 1)rBLǐXyt:9HA33b(>@NPy y3kr Ωev|)Pck׬!3#9tذj"ޔ`7o>L6};Y]SBRUNL(eE}*׃ĺFˌ3Pu"`!śX">? FB );(+#3vүMi 'S(zՊ=[o& 3Μc=Hngke[X,ZZĤv/?o;^ߑP~xtzů l x?s>`ޗse~g{2vx^{%VKGu}xk`Z* W8|< X,iөZp ֈ( lkQb}xz.2N UQc?#^fhΠ(2 ckq4%W)hܶvVjk ^jz]]!T׽aZ(/[JO49V,0Dg8Zb3QWW!L:$j8N*+ @*W '+O[-4BNhW(M%%_@[JO>#?Bp8~hp!6nXO^^.}'<@HHvb̅߿j*':['ѺhW(6OR&ֻp¿oqA9x0H@fjJKJv G\߿~av=*+*8L]m-D 8$@4 >#"9zx9¤cILLoBv͌n jl5O0E︡;%ҞP68!)w%Wq: 1S|^֯YVyWزi55lX}zݻvS__ñHcU~Q:mA?u\G髴g-"m~{i ؿw))=ߵt:"# 55ߟ}˿9 xnֳ/oApHý^p8(++嵗_"/'tcBg3C(h=r[8NN?t6s;,ǐoYw|פr!}|ٳq&11 >//oJK{g&)!+~[o+$ޔ@Dee%%%ݳ‚epj? fHgڢ=;%t_&8$~K/K`P0zvލbj4[[jӗ_.` <7Yw9Iܑb\h5defgTPMt\R22?[bCp6jEQd[ۄϥFooz=t%(e(?Ubm=i߮flUN)N,~Jsm֬Y')TN)TjkjXl {5F0+JƸEURǫB qO %;+Eаp(n}-*Ul6SZ|U[dgRmuBNO= tWGqhӣ\XHHKQ#2ۗGa)5|yطgOJځ}eddx0NRk&:e`YYYW__϶IHLחZ2s\AAS ʡC r33U9Yh^tGƨx\PX[T2t0J8z1%$⿞XOJ߻wϐaIۿV- f{L:CyLZp`%e2<iPUŴgkpePa W^Oط.E~Ll,Ͽٱ}{nqF .Δ@)/3!8$;@LLL8 6<̔?N6HiUQ,yf޵ UEΛoΛojxo(Q?txP1Ezy_Q?.66vp~~3`Zy9%uOH Bu~]j}>kO./-!?xkCqg+.}%.2He*6WUY_@*oS59«/u3O;=.*M,Me""܋"Ȳ(|)w90%$Q\lFm[B ^5"STX_J %ŨV.,->*>DEnCgH(myEE_ר$]y*T[,U(Bee bN;h*#HS#QNީI+] _,Fv:aۖػ3f¸g9}>@Ck$4͎*vG-Ę𔬂MU4c#˲2UH#J YzZYSS{kN^~_+,+(ds=Ensl==mX#FoE^nw~+ׯeʌ@]<鈸pyyD4*hJGe  p J@]ǡd8j|Ԃܢ@`JBz`?YcUUQƟ*OQT DDF-\4t:BBKBb(.*Add$u7O>,hX̤ JYFEdd4`<NuP<⢍)5eTUDFEc.2_ <4;{0qD-\0a&:\#,CeGp M$ůtN̺+(#)9^NkV+aw`omܐV[[ˇKvV&Q1L<]9hap"a2٫\t1a֒˺kضu3ѱDǸfPG t:E!#= ̄ӯ[HaO[@>}=v\>iM"I=;.:9g/>O6FN/ >*4e[ ()'3d/>+rQ,]cc2TĹNcꌙٵE `6@9r]dYvtnhYB1dz;638UUYj%By]Ym>#~YukV3d0wuky:&MS膿#:vAeƟ %";5pq%6 ʸqXj 0nxz=V `/P6_?_@'6닒V,;s:tG(c0Yb9=m0eƙw `Z*ٙλ @0zisV;oguKW-%00gfg[-Q`OHlSEU՜Æq0=WEy4T׾y\ʕ+.~𐐕={˛D=\{(3'L::/ڃȨ(""#\uk f^EB͋FV|}}8` q&LBb I#_Oj"Vc`;vr0=ں:yRPqOq[[z=g!+]1^뉏7a20%$@t:[KMUN'UUتV]Mee%~"3DGGFL\'Ot}`͇UV,5>Yb򨨬RUEUe%(4Ѡϥʙ3g0AUK=˰Z,u-4EU]#6=C+UU۞(xܼtqֹھM7p7pu7gS__OaA˖Ċ2zxz᛹{w?~rEp`>, p F>:_!@aں:*EQ#&&TPNϐc*֯%'+g] C gͬ_q'Fת$I > #g;W@ƈ OGi$ln|⢢A>!11^[IÎb"/7T~GTڼ}Gmֳ=wYϲajN876BC{qh&33,f3,cZ\\c0fjHFV PU223RVVFMM-56*Z`%NN֋IJJ&6.eKBB-'~.bl56~Zc|!f锑NdEv.;9m8VXח#GwG24P֬ZŔBQ4 CHKjjj8|pFIIDATHpp0555,n:ۇ(z} ^^ѱV)7ӣj!@iI)2RBi<ς߳`mn?ISB&ظfkmjkj(,( ??‚ek *≍7B@2ͱ^+*̤" EAڜ.wK/Wf1c_|mۺ[m\iq1#F↛nv9N().ښAe|}}r+MxeFJKݷkeeت2,5MBлwoRRqTYصsvck;'ip`.,dlvAvVDdT4IIIt:222< ,a;o#3#,P"##HN!"olzۨ0ح:.㏐&m@U(G[ J!$R6T%Tl!`AE&Pvd*|p<$4ٌt5#xܹ}OUc+1Wܬ6Yǹ>i{:M4f5 US5}Z_ORQZ sz*&T,PU9# HϾ@}}}>[G#a]%ͲɐXzN7z,>:r=(--1}}BgqCAۚ(MF*Q(HDP`cC"LrgqyH(DjJ>=r {XxCqzh`0aê(f\Ej2i> `D1yV5Z̷낚X}hp'N2u- \T2ϱ2R[m'OWo|IENDB`pychess-0.12.2/pieces/kilfiger/0000755000175000017470000000000012653231274016621 5ustar tamasusers00000000000000pychess-0.12.2/pieces/kilfiger/wr.svg0000644000175000017470000001742112641567764020014 0ustar tamasusers00000000000000 White Rook image/svg+xml White Rook 6.1.2013 James Kilfinger+alfons z! http://openfontlibrary.org/assets/downloads/chess/dd244e4b50bb954610bc0b2372ce2e18/chess.zip pychess-0.12.2/pieces/kilfiger/bq.svg0000644000175000017470000001030612641567764017761 0ustar tamasusers00000000000000 Black Queenie image/svg+xml Black Queenie 6.1.2013 James Kilfinger+alfons z! http://openfontlibrary.org/assets/downloads/chess/dd244e4b50bb954610bc0b2372ce2e18/chess.zip pychess-0.12.2/pieces/kilfiger/bb.svg0000644000175000017470000000700112641567764017740 0ustar tamasusers00000000000000 Black Bishop image/svg+xml Black Bishop 6.1.2013 James Kilfinger+alfons z! http://openfontlibrary.org/assets/downloads/chess/dd244e4b50bb954610bc0b2372ce2e18/chess.zip pychess-0.12.2/pieces/kilfiger/bn.svg0000644000175000017470000001005712641567764017761 0ustar tamasusers00000000000000 Black Knight image/svg+xml Black Knight http://openfontlibrary.org/assets/downloads/chess/dd244e4b50bb954610bc0b2372ce2e18/chess.zip 6.1.2013 James Kilfinger+alfons z! pychess-0.12.2/pieces/kilfiger/bk.svg0000644000175000017470000000755112641567764017763 0ustar tamasusers00000000000000 Black King image/svg+xml Black King http://openfontlibrary.org/assets/downloads/chess/dd244e4b50bb954610bc0b2372ce2e18/chess.zip James Kilfinger+alfons z! 6.1.2013 pychess-0.12.2/pieces/kilfiger/wp.svg0000644000175000017470000001501512641567764020007 0ustar tamasusers00000000000000 White Pawn image/svg+xml White Pawn 6.1.2013 James Kilfinger+alfons z! http://openfontlibrary.org/assets/downloads/chess/dd244e4b50bb954610bc0b2372ce2e18/chess.zip pychess-0.12.2/pieces/kilfiger/wq.svg0000644000175000017470000002540112641567764020010 0ustar tamasusers00000000000000 White Queenie image/svg+xml White Queenie 6.1.2013 James Kilfinger+alfons z! http://openfontlibrary.org/assets/downloads/chess/dd244e4b50bb954610bc0b2372ce2e18/chess.zip pychess-0.12.2/pieces/kilfiger/wn.svg0000644000175000017470000002143312641567764020006 0ustar tamasusers00000000000000 White Knight image/svg+xml White Knight 6.1.2013 James Kilfinger+alfons z! http://openfontlibrary.org/assets/downloads/chess/dd244e4b50bb954610bc0b2372ce2e18/chess.zip pychess-0.12.2/pieces/kilfiger/br.svg0000644000175000017470000000725112641567764017767 0ustar tamasusers00000000000000 Black Rook image/svg+xml Black Rook 6.1.2013 James Kilfinger+alfons z! http://openfontlibrary.org/assets/downloads/chess/dd244e4b50bb954610bc0b2372ce2e18/chess.zip pychess-0.12.2/pieces/kilfiger/wk.svg0000644000175000017470000002154612641567764020010 0ustar tamasusers00000000000000 White King image/svg+xml White King 6.1.2013 James Kilfinger+alfons z! http://openfontlibrary.org/assets/downloads/chess/dd244e4b50bb954610bc0b2372ce2e18/chess.zip pychess-0.12.2/pieces/kilfiger/wb.svg0000644000175000017470000001567212641567764020002 0ustar tamasusers00000000000000 White Bishop image/svg+xml White Bishop 6.1.2013 James Kilfinger+alfons z! http://openfontlibrary.org/assets/downloads/chess/dd244e4b50bb954610bc0b2372ce2e18/chess.zip pychess-0.12.2/pieces/kilfiger/bp.svg0000644000175000017470000000652112641567764017764 0ustar tamasusers00000000000000 Black Pawn image/svg+xml Black Pawn 6.1.2013 James Kilfinger+alfons z! http://openfontlibrary.org/assets/downloads/chess/dd244e4b50bb954610bc0b2372ce2e18/chess.zip pychess-0.12.2/pieces/ttf-Cases.png0000644000175000017470000003465012642235661017376 0ustar tamasusers00000000000000PNG  IHDRMbKGD IDATxy\L_SM^k#"J}rqUn,ٯڲB[DMҢ}Lf<991s>zS6mB'|!$`ӦMN|?o;Mk7NM=SNNJdffjzzzXڬ;w2vZbhhc!33Sа%==|e( hz><~[nػw/Η… p bu>{ >,, <6layyxryyyHKK{ٿ|vv6RRR׵*TTT(Ç !-԰uVddd`BEEX,X,ϟYFCAA~WL<娭 t:kl޼l8\sMqZnݺ5_dAJJӥKZ/_mܸqk~bǏ]v{ү^:(A]˲BFFƍ___L>DLL 'NѣGdر8r"""0m47P(9s&={c"..fCO%z899ŭ,xRQQQF+sss%ϟ!t=ݺu yf̙3gqmۆӧOCASz͚5sN<=zY,p-8/|GPx~ ==񲲲l炂|Q lu?huO,>>휦&8}`ll4eh46l؀lҥؾ};\???Z]8ήj96aTё***[kanݺa׮]W133#{@GGGboo1c4m{{{Yɓ;w.y999Ǐ\֭\\\pY{6DȀԽ,--_SJΝ;1aro)p„ P(;v صk$%%9.ԯrps(++C[[222?NGqq1ץUUUhiimXz5lق˗իppp@VVV>.n>hɶm0rHL2LLLnVN>]X133üy0l0Ջq"%%8|0޾}K߽{w=T*vvv """0n8$%%*+##cccX,rr8f޽7oĐ!CN: iV\믿:u*d2|ա Jddd -- EEEtݻw¯ puuT[mFcc#_ZZZñcǐ*c„ i5=}4\TBCCF Μ95k@UU؆X,RSSَy%&$$L$K%˗/7ˌŒ3ڿGn:ӧO \Gvv6qF"..f͂P\\\[o޼7o@Pзo_ׯ!))B,_łWccX¥KsסUUUdhhpѵ?ȑ#ݻw.ɡ ֒L]v$Ԣ"r.,xyb%KDR!^qƵС{J:tHdX,l߾~~~" jD51CUVV EEE>}}Bbgg;wJ 4md2g[SS +V )))Nb3f<]_YYǏ# ϟGrrfA>022B߾}III֢(--Enn.ؗ[nqEcω\t0Zr޽[>}6l ݻw(,,DMM QYY 999BVV]v%_cƌΟ?h$${ 9kܹsnnnv7߄5ϋM B=?5~i?`0bܸq(((@aa! Q[[ 555t҅|ijjBNNo޼TTT};}^|mp2{{{ֶ{?KVٰaC(XիWf0l0=o}}{ PۊUV?zXZZ*++QYY2sʢgϞرc,-- k Fѣ၏?ݻwFii)"TTT%%%BWW}E.]@xScl)t񈏏)J |b+W9nзE#/JuE4N(oYS)\0mӦM/JuE"iii! eeePQQٳ!--ݦ/@gHOOǎ;ddd`˖-"Q4yyTWWѣG٬/؈D\xǵkא\'*J~WRREDDa˺Hh `СCvRSSQRRD\pǏGc DPsJ%ݽ Ej;|###K}@@i ~z7oc?)EEEx) 撏NJT*QFEKII!##ϟ:;;8p k޽7 DuO p r lmm\z [ѵkWys`Æ Y^+^`;Exx87DZ-mGQ4)dnٲ0p#11 ,`K9+&%%,UUU֠Awؑu}Lm oL4~hPPTT[n0 \R$.Rm6h4tP֬Y?o<{O &]Qdʟ.]ˋ;Z=Dɋ/|yYMDee%bbbl2HII!77nnn{ lp8pL& @*옚W^đ#G t >>>B-Zp#""$nܸZ1&M #>>wC#(--'ɘDmmm>}`Kx̧ J222ؽ{7V\ɱlII n޼ {{{,XF^oookbI=2ϟӧOǞ={bBL0ՈZCr]r-sspP1cS ӧܽ{ZZZU懆#5k')P(ذa974ڒ'm.jݞu[Bp"""4-ňFaԩ<]'BKK o߆4rrrpʕvU28"C^,׻wo?HK.\___׏-N{<|˗/%zYׯoj: X_$BDWWhIDA``o&~~~غu+[9^9vܹe˖L&W^]5!^6]Y++Vۖe<\z7Q:Vx{{B`7oJLV^ 311&Ν;ggVKŘ}/^8̭@GPh"Xv-͛7ѿ4KGCOOtZrvJʐ_~irΠRDn"@ǎB!U޽U L FyĠO>xi?|ӧOأ򔙙0x68G9;wʅeee;wK,A}}=;ùߺuX,TVV9BNN^~L#D~sbbbV\6Pn_vĈف#y&$2 fee)s*#522 X~=y @:8FÝ;wYξUhll _3gάZl\[K,Y~.ٳ'ˋ+466|mT!'OУGʋXUVVVV<MYccc,^ׯI;Ə֖ cjj)Sׯo5~&$s%dpDf_~挡!Ǝ I{fffYM7Mڵk6cxxƍ;.++cUVVƱOTbj.V͸qp-dggsLQUU"S$%%HdXx)>}JR0669lll*rɐ!Cа'OZP(}W&`0PUU%hPRRKDΜXYY U׷6֬YYz߿Ǖ+M^C ̙3yv[ȑ#)\rY൫*2PWTTo'pB06SE˹s܅_T 7Ci%=E **Jdt!!!CCCq ƒ4%O7P(&}/𷂩@שɓػw/LLhQxG^^2aC.\qnp<=R%%%;Ւׯ fff4ivJ. Ϛ5 FFFRRRlp=]]])CYY1o4x28^tahllz MMMtZZZD׮]QWWG[N06-,..---PTHOOG=`aa!Ig|)9)H(2w^DDD`ުd ;w.9:DHii)Y?}il@umn|mo=\'_N]R%$$d2qBYY...b']pظq#233QRRLڝ|ykp t:Ν#;:H}R]]Kkkk6}8qB}˖-a&Mj @}\ƒGb!77СCW[lpeee+ QFFGf͞= NNN굵puu߇Pݻ1sLvvv_E<>}mX`459 ϏT))@S[vv6l֬YUk׮ JKKEֈ+++-;a',,@}}Zu<s900fffHIIAll,HOG"++ 777X[[#""sFE!22fff_$mim#ֆhL>}4y5aJJJHMMEYٳ'kĉNRk׮E]]BBBؔǎcXd ,X|ux9 =\VV&yr̙F &&Q x9.\@:u+""[@~0g\e~ ...j-h+2_اѣ>paɩٱcǐ4xG=zggmZ5kƏ[n%5USSÝ;w0qDVx J:'{Yׯa޼y\)))ư;^|={kBXr%qI&&!!gϢ{XbcGkICC9B .111Ncڵk˓v&߿qơ .'p9PVV,lܸI˞e46l؀$?oRUU@x2SNHKK[n۷/v؁?HIII\v (((ollN/_ 4)1qㆨԡ`X&/0L2:_57oޏ… cC^^׮]NYYY0aB ^~7o*$ ,ً/زrp'K{%%%|]-P0Tw̙aRRR񁋋 6mڄ4?cEZ$-4mB۷O*22s>!fU2XYY t9 zcbb*sFp6 .,,lOpp0عs'6n56<<m仸555w9@"8- ĉ'\_PRR;z_~QIDATBBB6 ի&x))SP(ؿ?O%{㔔v/5)) ׮][wO {;===CݻWrΞ=k"##sM?-wGAWWWdN###699Yp֭[|3 \z/?g``(미vaҥK8p|}}k,Y 44<||_&`hJ\]]add cǎŅ GĻwDVx.97M^/^|n6xQF-'N|-,YCPA{8333磼222D}}=t:.\0r\N*.]3g`ʕDrrr0dhjj P(044DRRw QT9X yr9an޼:yd1]]v3Cs9s洹q'b̙7nq) 66_ZxS(ZIW%NE92bad/lôid21p@899AII KzVWWc˖-صkN:'OVªUЀ | (--FÙ3gS~w"1@c!CP1}tA󴇷yf0L!::+yaa!^|۷o(**91d#G1z쉞={gpvv]Ew X^g\ff/h7%/%5 ^BVVЀh4l f͂tuua ~999AOOҥ ѫW/|D=.sD :nk@__=z@jj*ƎfY===7cƌA||< QXX'b͚5 Gkk]ׯ۷o?}PTd&hǵ  n-),,ݻ1e0LȠG]vEyy9 >> FFF055$D/_vvv,u_N0!! ȑ#Nv|=JZZ}A>}`ff#G}m:>Ǐaff5vB$&&b&b:uq|~o6mbup|Q: /H ի e"FMX#2311ARR޾}s\× 22觟~ 8pq޽?~\tH ܹs"IMvvϿKGGէOVpp0[8LMMs̝;K.{e4[[[V׮]Ysau,fee -{2eϓ 333+V5***p1vvvƵ߿?Q^^ vaeddWWW#KKK8;; դJs||| ##FɩCpUNNN_,ƕ+W0~x<~?&{%qQlݺѣ"xo^^.^`͚5}6233]m[U|t?9^G߶m[ϞaVrr2<<?PTT^Ǐ(**"xO>$"`mmM|1^LDM6M`c\\\LvT48999())￱~\p:\exO%ݻ7py߿ǏǣGSvv``ѣG#))@>@R(h@5IB ݻw!//V^DŽ^pFFLMM۰a0}tc/e466Ν 7nDj*sII &K /^ #"""`ee+W+гgυ~!!!4&@'\]]ɜXx1 GX eee055]RG~"[*+W`РA`0+PVV>""ʪ=ׯ_#$$th,9|0Q[[ hw^xyy hwww1YYYܽ{@D4p48"/BuT*'O={@(((<9% 66]vEDD,--bz#gggpss!͛7ƆM08555ܿ Gu. 2Clɳg<%o7el/l!PYY DFF_~A޽Ѐ$BII ŋxb}x"^x*tÇGLL ) kO '8FmmmٙAY )++ڵk!!!aÆӧOÇd^0a_B-T*;v,韓DXZZ4ϕu. ÇسgfϞ˗:\ ֭C^^|}}.qpp`>}Z|۶mx>Ljcرٳ'tttöd2> ++ qqqBDD֭[9s栬 ptt :NNNvލCbΜ9 %%y̚5 NNNݻ7Jٳ8|0!++˗X2”)Sg q?. ̜9=7N cѢEHHHAӑ VSx"[IH`ƌCwwwrV+={\xY'N!6{P(//Gyy9jkkAR* YYY(((@QQPVV6}X֢]U:m\ee%V^ gggrC%A=`cclDDD ''!2 \x<޲e F${1Q_믿G^XI3iiVޜvѳgO"--g磤˗/CEEEtwwwq///֞={m۶:ojjjPUUmu:TWWEEEٳgs :k׮5?rD$q --Mz*++#,,  h81%%%x)_|Ĉ8x xV*RӃ{q`38˧;wjaa! $p7B\\ww_>PTTĭ[uuu 'Z؀&o aД9BÎx28b8p@+UIN 558x ddd0i$dee>o޼N?@XIVVPTTXEEEGbb"V|ilݻPTTS'χ6yd7FFFPSSdddخEqq1`\t @ ,,{e+WUUbbbzj<nBzzFccc|Ν;>O B+WZ9vxÕ<ڵ+* HJJeY&f`25@Sܪ(& HJqqq444=P(hhh 0(..vI:i777((( 88膃ƒ%KDXL]]\&@]]\%'JJJPXXjUFFʭWG_KKK̜9t:HIIAqq1JKKQZZJiBFFJJJPVVFϞ=ann###$%%4?idd{mz IIIƇx'ER888&MosK/^-jZSw$^y%a|jkky##h!>C̮4W`2UUU !!+F&[N6iiiu1qo~0ݎNZ)V1<.>;e9sf`yϿ Zx P{҂vvHDNׯ =iȇ~ുա L3gΨ{)++RԽA$p+DBOOaaaH$Xp!( (?Vt: k J]cX'><1sLlL80qD|p8̜9|ho8---̛7m\.HHH2L&2 'ǫ177lj'+ :^E0{6G:C$OD8ΏQtttj*^ٰڢXr%BBBT~F58 j^ǏFa(..o366Ɗ+۷wޭoo@i._}ǏO0a<; ;֯_ݻwgM¨(?79_Qd2˱}v 8<\r&&&駟PQQL3ڭKRh4hiixmL$xF$(J#TD 4%ŋU/'N\wbWlt56]VdD"NIIyiM z1?~\ߞԬ*[Pb1wݻ(#Jall Է7Q }$/X 0666i]e2ٚt =9b8d/_vY ҥKwŤI&Y$yBcJ+`ҤI8q"e˖ 'ODddkpo~" {d2p` IH'Ir6-N4,g O>]@ӧ|uA 'MԗbruD"SDr AbXPNcذapvvƮ]0h ]vax`0*?ݮRU1 EP(JSwjjUVYEGGMLLDEEv$?x\xQ DDGGߥP(V J;퀀B?lЭ[7ܺuN&pMnpڵ+4֯!,,,pudzwZZVbbG0Bӓ'OzUVVH$rx)K(vbX>|.ÑL6@J˗/ nnnƪ~޽{cСno&'''hkk#%%Syd20g?~EEEjb/@555L򍙙 GGG'*))1#I{ʕ[<oT*ul"##,Zȟ=|2GMMM9]ۼy󬂂kDXU?5VXel1͛nzH$J *++P&&&B$zxx Ϟ=oq8J,$I.:t, uO >|X H/4g2˗ 0`,Ñ;wMڭwV0v&nݺϟ7io6gbڴijJ[AHHzŲKb())PYY鐚d2iRԲaΝ;|PHVVV:Եwޝ?߿_b+Xǵkp >_K5isuuQ4:8֭[W6tuuQZZDb 6sssdddA$;ڻw7nt 0zhG æU?b1aۭ[OK\\#Gtspp Iimm-D"***Tl ```cp<Ѯ!쐚DT*999m/ֈA裏ܺuKȑ#RRRTTT4^[["Ͷ+V?ydbĉ&AQF/>N:;wnqݺEV8[[2 x;`0ѣȽ4hP  hqa B@OO!tuu䟮. 7p*$Iqss{пBen -Ft!UKK nnnM===krRǎUrrcrojj*f̘k6T*ӧODž Z0WUU*%%%xa4b^l&Yp.L&󮹹yV(3OUׯ={(M:̐AwwKd5(Se8mHFF4:^{٪\yh4ӹsghii5 ln]UD"_Ν;'@@qYXh:HpMԩSP5#F-M18* ssaeeU\7w377G׮]AR[Q}*|eS]:zzzw P~K rssd0x`;vLl1jl``>ߨ5L&;2|O|skUy V%Nr%`׮]j] @@@?k&/& 6潼S=lذN\.&^`ii)_,--p0o8&#GlhhSSS5Bm} !1C]USN,늦^z1BCCUcɸzb1Z憲24+7`6ы$?F5(<<\ҨQ Ф^. uIcpxIPRRҢLyyylp8Æ ඪ}x{{S=̶l6&La NA>{ÃTcK*m\xUvop1b 1slllPUU/_6{8{FCx***$izlU`2BpjyHlmmb0k,`XJ{svvƥK*s'|ؠ:P(3g|X]]K>L}mQ4hVZբ3\zwl6PZZ,t ;wFN4A &Ik>}nb] l6J.L~ rPk58. ޽bX#}޹swqΝV!x_>hzFiiӦx\.{uׯ_󑖖ÇťaK[?Bm6-VGyy^QQQ;~e=aaa666B TL&z%Kh} l߾" CGkTVVQ*J+--eee45g bX*$IB,]7Bg Q7sBhHzLMM{r Irve4˕+n .!!l6[aEuƪ|E$INDXR#HXbSYY69FFF:=k#{h$$Ij$K3MyvhxOEx? `ӧ<<<W/A#C6 r X,!77%%%P(D~~>} 777۷033Ê+4>VE`<JBBgBB%K"x<^.]URE"O?clwl6&Nٯ2?kbԨQn+H_kjjֿxe2Yä+W>>IlpXti2K,UQa=z46omVRR 6`Ȑ!01Q{0$I`}͜9ŋ9tPgzx`e%P($nݺ*GӡЦF 6?M(bƍpqqAΝgDZK,!cA;|1<oRB[B*yȑ# >ߪlUU"""0lذ6׋ KAOOO/!;w?p? wsxx L$խ[F!W$IRA#?^QEx<ޢ$Çފ~q-|>Ir*1ݻ tDDD^Gtz쉴VrrJ?4 ^^^Xr%N8ϖx|>իWٳU^oΑϟ?yʻQeJѣG_ܹs>n޼o[nRwGaŊၐddd[nj=sεݵk(`0r&OT8رcXh"vvvꫯp 8::">><*..Vh^YYV gϞj~!B`0v%rrrbEDD$I$mݺ3FfHX,U d→É%I򢋋5CCÿ?Co"@Kuuoŋͦݻw1N81`?h"P(+v:AyY [sU68!7%{D̞=[ z msZzT*'d2,\0b+L4ɘFMxXZZ6L|>7))iݻI[B<* 36mmvvv9L&UU4??ʌ3Not|kryd2x$듺x{{d_%/Nŵ1$ tuuufKTVVL&Sa'*']$"+? ˽JGGG\>>>{nmD" ^B*$)$""[|pqq666p \J@ff&~WN &{VCHɓ':YOR1p6#,v=zϑހBleّޣIRǣ˗/W>PӧO<$=dL&Q ARKܿW\Ѹ^|>6$>ϟ+5aѣG7$ 26=J\RR;XY hD"g})S H ,Pq[cxΝHOOW{/6M>*HN\fٳgDE68:b\pLjkB!jjj@s̾ ֆhiiXՅ} {zEEʕn,,,($I:x\.Wn !;;gVU/󑚚  vjjjg#GTBkcbbbP+gm^^_,6Z ** M6 'O]ZL&ؾ};rrrT^+++/>r>)Ž;H&ա\/BNd p8b%?MMeee|hS]]-RxH]lF'OmLM$IJMMM"?"r #00PS:@ :VVV">>^UkǫZ{)&kPG^jVC_GNEdnApUBeowZx[3ލykИ]r$))N{e68$i8>;⠾ZAKK 2 FVVJJJ_΢O͛^"J#""~7.^ #88~-lll4Zb=ʡVBB1caÆObnnN9sz dH$?~|61t:!H.SّGnݠ*<~*1Go^^^=z0 Y4qӧO H mС=rbnnn/! pPUU 'i ?T*gΜáϫ?Ujjj & ѹ:III:_}Հ _~QY mmm3gF||< 7'ODFFF7oU4#Iڵk_YYY1`ȑ.;wnb111L<4T:K.aԨQQ.GƼyp…VӾ8::ƍHOOovѣG8t368$ƍdaa1(55[fft:?M2eʚ*FÅ _4ٖ1b;;w8w\2wޅ_ n„ A] 6nܘpVP(JxxiAAAmF!!!| ެ#BCC>?h4x<3L۷o\L)2eUUUwtjdddԌONB6x/S.IDATTjxxxSN~qT/c0HHHҥKڪ ;P8(J(lp3gΜ !yzz:?~Ȩ|@YreRvCCCC___rٲe3Uָh4^s56z*"""0`0w~N'ѩS'~S嚮 \``}C&/^z?؝\ 8re_[bĈdč7ޙu-C8: RmV.\|޽ю C=!TJ13Z撴4/m* P˕~:6md2\x[l4R͛󃡡al6̙c7[4 |ۖ,Y禭)'''Ĥqʼn$ICRB)oV\ >$I"!!6l=/^w-'q,[ cƌL& 0tP!99Yݔ> 999y <b;v쨏Y|y) b&Ϟ=Hdakk۪ܵk?ԯ\/^קDrс&j8qcǎ=\\\`oo?qqq*hљB죏>ghhX3jԨV;H$ӧW9rL`Ϟ=:w܉$I2(((AAAн{wKsbdee!$$GAM>}ŋp8Pbii+W 99JAU}7tP8s̭cǎ 8 5IIIqqq]Z@ll F@```}ƌC/_`ڷotK`0OR]|ׯG^1L+ϥbKKK0L>'NpL&J Uh^aoo/7ڣG_n{8z(߿9ZdggԩSQVV7o*U/}ժUg>}֮]T]]MFFFzfee=,..9;;[ST7~Bߖ(--X,~/_ěG={b4E@& {{{0L$&&}ܷEՁs:w߷o! WXs͚5Çwn+WyU_0htcccve0y^^^IAdbaڵ -R;9q)|q.]B@@ΞU~9sfƇ~o߾ޫVj*1ƈ#oܸr**L&ҥK1tPXxq[.hѣۧ'OP͉FRT~y9996999̘WUUyK. p-"??_tR/_T*;D"ƏԽ~R6ٶm[8 Sw޹4jp:::ӧUR[[QF߿&IlÇcѢE6GTT`ǎR{SV\9-<<޽{\;77ŋ>k׮f͚UiAx1|>6oެr?|>=;sGڵʉ') 郿[*_/JNNe˖ bꃲ-[Xv-g͚5G鯦iiiW{[5 ̄_~>ÒD"Q}J~Uн{w 6 .O٪z^rŎ/"oo666*a:::ɓ'5:ɓwXvF2?y֭>|تl_ A@:::RTsy2L}6K#t:M_RRY!쀀X'ID"QKR̛mQcmBK.pwwXx\V ={>Jshnݺ"3fh VڿԞ())AffFO=~X}#B ې$)w=SSSۜb}jzx[`RNovX[[ۡG56GA"4:A cyODm311w RTHRlذ޽_#Ez;ՃzOۡr"\$%% T*>`߾}hDRRҶfʕ3w|Şk֬QnRjgVWUVVb߾}FFFHNNơC7Nj+VLIIloogϞ@uuA߾}ЫW/R(C$}Μ9K{yyy_~&tƩSB!N^A~9mԟn^'|r#Wv yf$&&ӧOvmOEپ}oTT^bŋ1cݲeݻS|>.^m6@PPc~>r…ՇBNW{DXh<=?ؿ5551bD4dvv-#++ۛ04448q"?^wm v` K333+a1sL'eՖz*n(O ~/VZAY___:tHmΘ={v҆ ooϟ3;w-++0OļyN< ''6ܹsǎñc׬L{vS W]]($&&b̘1xׇ,ƌK.AOOOc$IKrrr<%ɫe˖}W |IvJJ(*QFX[[Ǐ ֯_ƍ}';;;?ҥK7mڴQ(vxP7=g̙3Uwwwg۳stt۷r₌ Gj39::zg}w޽_7cݿ|6mU~ر , XDGG׏{dee5XܴiWcǎ5"##x\z"##Wݱ<.;w_g05ʒ<TLR}5"4ݻ>BXXX?)á㐉`0:NO)ae:((lٲIIE:uǏO=zt˗/|wz.,,tbt)Ç{رk#'䧟~oݻVwFNNNO>D")ݹsŅ *L&q<}T#Q<Uh( ok$Idff"99Y*ոs(Jͽz"ܹ$)O?MΝoBCCcƎbt 88xʕ_ػwo\s̱3gϓ6mkGAqqUV}@PjVX壏>UvwB& yyyQ+իpvvY5*899A^n_eiЁ¥N?p}͛4w\666}.jkkNVVVZPT8;;kFGG?~:th޼y&LZJ&vkXYY[nUL6 NNNz(Y6fC$)u?3O?\tIocǎN|>PppIt___ֺu났DNz_~4QI$ z%/͘^7\258<~_Qɓ'000P~ӗ_~׬YG߮zyy5HcgggMjDxzz/2A\t޽v6uHLLą aÆ&jjjPMo ͺE$ C$n߾P\@@```e 3Aܿ#{{7T*͛74 ijj*t颒agcLU>8{4\={ B xfōU雴EXX8&!3b RdpPPP\$IBgH$ܹ H555رcGS:a„Ӈ^"JTU Hq/ZHJi9wQSSӢ:6Nh4n޼X[[ܹsS/QF&$$nO077jJȨ˗xy}uOFFrss!~to \]]m6رC$Ib۶m8pƂ ?㳇v+K3gc׮]s|xEEERUڵ4Pb1 V%"t)~aaaϜ9SaO /׭[7uտNÇQYYGP\\ ;;v}@ZUWWC,+\GF±c JNMt}7]]]]|xŸ9߿ѣGڗ1rHM!JѣG{\:,_cǎĉRGqq1xs;;x@>n޼ iJzu5IҞkET*UVק&b 46`6V=˺,HmA.]T#}[ j8j_u)**EJ ]u'IltASH$vUŬYfR+ȨrΝߴE$6T~yzzO>[=eIENDB`pychess-0.12.2/pieces/ttf-Medieval.png0000644000175000017470000003612212642235662020063 0ustar tamasusers00000000000000PNG  IHDRMbKGD IDATxw\_w{ }4!B9cD'{Aَ%2"[Ҿ?݋C<s]>x_7Ϗ+!~~~! 3&_7@~/!)) XXX vvv|-RRR.,YdbRR,--Ɍ6hhhѣG}6`ԨQ߿?WD@cc#ׯ_'ݹs---￝...Ԟ={R]\\ח-[6166+Ӯ\pvvf[Ks5_(--Eii)N:[n \o08*3ke˖MaiPSO>!?A=gGGGwN;BRall D" Ly Ɣ===477mmm033cۆ.1B{!b wE| ;1==طoߴf[chh@3]ƠA z ...Ò%K{A=KKKyQQQx1?S:^(00EM TTT LMM'{޽{yyete/L|- TPSSۑϟqܹs Fܹ'** }&@XyÆ 8p*++uW^^`bb2#++ 򨭭E'555hjjBmm.5SSIPPPWrsyyylĄN 6@GG!KRG``CBBRRRػw? UVVG7999(++Cuu5ϝ;ARRpvvƾ}fŋ,6mݻ1|pHJJrPRR¼yp̘1""̦T[[6.ap , edd`˙N#m߾Ѐw1(..\ZZj@L{AAAϼw o其6PT?pvv+pm\f/++y2|...&>rgHH=J6d1ذ߻woNձU]H$p5D"qEll,ƏImQcc}A[[]6]L_u3/=~O 8Zc QUUŔFP>wO>\Cڷ;$$TPPГU =77Eǵk6壡ǔ6?Dbꙸ .ep Y[ښ HMMf'''Ϝ .''ekyA⚕U'%%ceeΪe`ll̔Kܛ7ox.({[XX~?w<0L"Z[[Q^^~t;䰼ӧOi塦Yrssiiilx϶\ǿ)O28^7ˈ |o==HJJԠӧO[:,ݻwBs k9}ޗnV"G[긯rUCCuuu i߿k;#VVV3zzz044=͛lk%pxCXK_5vSҽ{w]222#11Q(|SSIva̘1)񺴴4b[X \OMM $$$ p]k׮UWTT, $$ k7z 4X֭~W,^x[;N477cƍ8s jjjIHH媮:iaӦMlkSQQڵkbvZ,[ գQ]|^&&&Sjkk E9s&5???^$qz|M6;"""rIYYɫ ĢE#\nn.oV:tH(G sss-CBB^nڴdkkӧOsS__ &`Μ9'y{{_)T@&A"u/W[[,!==g =+C":puu> MMM֭/ÇBн%֭[7oޠO>HLL 7ضmW]͈k>h9u0ĀZTTiiؒ۷cԨQ"*eAovW~tO {v|T)))i|AYYV@x+WB*Ƿ?{wEEE }bp}ŝ;wpQ:u /_0rhii!77aaaLnPTTz_RSS 6LmԐE_t 111d{ _ddd>z=;x%ɿ2zj]7o&lx{{ݸou,>SUUܹs$%%܌6BSS(++cp%K؞Lc6mԃ.**^zW^PVV9 Pmjjꡧ϶`l '//ϟ?_DDD0{l%PWWիVHJJڵk/^`֬YѣmIOO=(--EJJ o>7NoF}U~/UWWCDDϟ?gShii ,x)Wsss{n#==233f,[L`'OELEEӦMjkkq yR?~ NQQ___o AAA޽{޽ C~ahx|o&-?~ɓi& ؽ{7T*6m7ܸqW 펜gϞŀld2ʕ+\{.4iB(njjœ9s0{lڵᚆ 6W\\L$t LQRR "zrff&nܸ"##mmmӧ yyyl޼c{%==$"$$$`رy$GഴPSSCp@lٳg?xG #&&111HOOGkk+O/iPT\/=QSS4sammʹڙGЇ133CSSzdUg 'q;ĉv<ʹƱ^ ʕ+ׯPWWW1HsTUU9mRBUU>?~M>CCC;w/^`֤I8-ikk#11GfHѣqUJ?aFVVsKAAǽNcccƢ())Xߛ7o:addtS N[[W^… YJ:nnn?Y^O><Epp0ƏӧsQ *BGG)z_g 66 +cc728eeelڴ رc<$ 'N8=üZ MMMDGGcǎǏѣ~b޼y\vnICee%ʵM0֭#>ssgٳ'oܹshllBa#//py? 2᳔4 `ሎXk.XZZ%N zŒ3x֬Y#G]\\:mw9Ǐ@Ϟ=9 >?۷q*ߞ 9vggϞdӧСC033}6Va.]x (7o{#ijjbԩ;+VII ,\zxyyaٲe+₪*P(|>:f͚O>ȑ#||-&M.LxH$=zBgx68333ښrv5Xz5~7\tz^x}СCN2Efɒ%i***8s ޽1Z9ARq-#FPϯT///Ǐ\)((+W~uVʕ+zҭ[֯_ 6uw%\xe;w.J~<#Xj /W[[={ !!Xv-?~2"..+VyfO^ygWqPPP{?~>f$###7 ҥK@BPQj̄ 0dȐJ" (** ܱcg0{.;g#hܸq\m+ݻ|=4MMM MvV[ P:eӧZ'?!rrr Ϛʕ+&㫯SW"|Ҧ?[~n\p_ . ۛK7H#-- oÇ8~8?xIs5Kmmm˗qzzzѣGjii"")) AJJ ߿ ׯ_ϐ%!**ذa:iII bcc}v!sep"""PPP@HH""""o>L&۴zYTn5 eee̟?8y$^TUU ##v]G!$$Ҙ6m섲H=rQ .]ӻ#˗/'999a;v,Ǝ`dff">>ׯ_GppϟHP3dL:bgggcffť/uuu1|888޽{JΝ;ٳg5kPVV#Gѣr 8qJzz:kiii\c%"" M"`hh3gAyy9N:~h?m``[*xzz?|pMZZZ_Zy;A"hj899ښ}pa?˱o>sd25~ܫ:ҩ]zUzڴicGVVfBFFBBB'O "";6nmԨQy۷oo|s Ahh(֯_tyHJJ®]`jj $\\\phjj"66...X`o qƱub+$???*5W^9ݻw[s|&L\Buuu H8|pfgv={CAAK0L6 #GD@@eWVVWWWٳgG]]lmm'Yٍ'v%9ΎHrssپztuuxzz ʕ+{n`}>}oooȁ_ >ݔ)SFFF9r$9uuuܻw!''P ʞ={H$VZŐw^yr|j@ZPNSSO28GZZ055ԩS"8;;cذauzZʁW^3Ov#99ΝCZZߣW^8s c?ll}}=+ᦦ&yy5Çׯ۷o4/dddpm\qqq 8BǏ!&&cyyy L]vm_l*++xo11 4~hp}lllpqfO8OOOe@QZZؿºIDAT?UZSSiiip3Ř1c[1(Z !C //Xa4GX'8Ln#X ĤMϫWLHp۶mhmmŕ+W4?())AZZ}!j;ӺtPUU(0똚̌8M...Aa%&,Nɜ*:r@,00;wYYY,\ ={ח(, QVV555B&Madd111z*޾}+WbҫvYpGnKqq1z4Lp44sssd߿g?$֯_s GYYdeed&N͛78}4 ..iӦÇX|_6jlܸFb1h ~!--1͛7KڙEGG _vFYYC Ef<}{46V[NPT̛7 $$$Ո0<cz{N{p4xyy 7oʕ޽{$''۷(,,DII dCAAtttu,6X.\@pp01icc#ܹwww1JrWBFF+ 3g—-_}6xtuu -Y <==QVV '***0f,' @XvMM <<ձhѢE< ---1c~888d2[nXz5~cڷ5JgeeqnΝ1bDw}>^ **H"$$^Rdgg#00lc#66$ NB]][74G ~NEdr-#GR?/,[gΜ)tww'߿>uq={NIIёz1h-t_vxzzVs|בGb2e MN!0ydӽΠAx.u/wF+ۻK{feeA^^QQQ\kֶG_]:;w..^W^qknn)SϓEFF>_jԩSARyJNN>|8Q!166Ɩ-[PWW .…N ,NKHH -- qqqCSS/^ X\,\صkddd6$aÆɓ\KӨ֭[cǎjpXv-pIEkkkuV={Jjj*KGjjjREDDg(+ ddd{DDD >D߾}ѭ[7dee{.ك{o߾EJJ \wb׮]}62_{8kkkdee8 Dlllx>#ɢSNȑ#inτ@NAAEEEؽ{7zݻ żyLƸqPV8;;CAAceggg ^^/p16B3gϞ5RũnnnԜPjAAr"<ŋP(sPVV#))/ׯ_.hem۶ٳgDYQ%$$ o58\v عs'MMM?~ &`֭PWW.1uT"ֆ(߿~~~ÇF-i&4553g$^7%%%qҥKӃB%K@UUgΜcZˆ !ƍhllLGS3gpM\p'OF^^ϟͅ"""˗/#,, 8~8 6gΜ)9(~C]]l*++3̣G^HMMmÇ6l*nܸA ''޽{_~.}Y`ӦMLe;Сx4ݛدBZWi ׽{w && iHHH0QQQXv-͍ɍ=z4]DS"<<ٳg\tMVV?~UXXػbbbhiiAUUM&7nhDKK LLLFps^^iĈ,;``Ϟ=زe a͚5x9š{{{L6 ɘ6mÀVNNǏ۷₨(lݺ0661tPQム 89915PMMmS-ZD򎎎nsuue7sL,)) QUU%tK H@{tЮQ(seee͉l(BEMMm+Wʕ+/r%D 2}vXi& ԁ DZDD\\\K.ɓGTTf̘>R#%%,]Xz5nܸSSSxxxɓ'D^dzB9993$ ,Wicҧsd c%Bъ>}[ Xj;2 kkk~Μ9#00Ph:% -A+immł 믿J ݇UUULWUUaԨQ a8>rH5 [l!{ՋAAA\~t17by鹹>}=h~~>q-??_ ܐTÇ߾}  6t^Nl  QSS={`\ BPP^-}0py㊊b A&YIee%,,,$H$fΜG&-p¢ hj6{b0ȂA[[222(,,$H$99rD[_Ӽ[l߾[lAϞ=Lj#'~nMý~}AFFپQQQ! J~o" $8ahh **gϞfZ"Mnn.FQQQdl)!DHObbbz GGGήAEE/ưa:`ҥLcCCCfllnݺX$Jٓeׯ_Ғb*Z##5 Ǐ*))C.** WWWB ###᜜a?.׿xSNuFvPTP(ں#F@HHҲ*Lp7Y\\]UTTX +**\RRll߁8--kakkkʂJ޽{L zÆ ûwuMMMĄԔ!ANN1cZhh( ҂ $8bnnF5mmm>|LLⳉ *^ee%Ñt-55BEqq1C3,,,_'BCCJDСC؈ƜsѮ^:FZZ=z􀼼<-j µ^߾}r"=ಳfffHLLdݼy&&&?~a֬Y􄙙p=ICuu5Z[[G3f 둒*J\zz:SlddJ"hΎbNNNbw&>}Ҳ gXQQQڵk1ydҨQH{hkkc$;yMJJip`1iw呞Gx!N:$\~GꬩASS!^YY QQQ(**bprr;L777:< ۩7ѣG EFFzUUU⌤~AFF+0n8@YYa̘1044GGG>LVs-n UUU܆o+3U999hkkc޼y;w vO2YI<(,,,NRJJJZ[[ӵ Ȉayyy|2ښddd U }}}>|'OfXIKK vXXXPI,τĉ!%%yC[5惒QXX()X>.^H|611AVVyyyqB!^L4 f"fɁ>n/444 ??3fX0++ LUUUغu+2331d,[Iŗ`eee$ ǏY.D!?? 4s;N}B۷o̓>p4K1`jpp@u$''CGGGI81ܺu LE#wX<^Yz[DMMWGGg"=SYnٹs'^ 72|= ߟaMGG#..#ܐw+++.)))A=7Ol4jkkY$H044, vJC )B 477#""ݺu#SxÃzeRLL  aOb̙/ [neeec%_;i7Kslقɓ'Q?)))8p/OQFmӧ9sҥK<0r"-- ӧO/_N v/c2D`wҒɡ999[+D"!22 Z3gO[ڷ9&&!fCCߎ[RSSO2EAX033ŋMLL8;AQQaaa+j \|c8V@KgMdLPUcbbғBheggikkIJJ={6/ÃZeddZś5555_d/$&&"22a+?8899}1>y_UUElwƗVo%qqqĴIs144 PVV^+6"<<IIIt͙=vϕ]YY_d\5h'w #lK,K "==|J\MWWwʹi޽ DTTYO8A थxbXYY|=֭[n:RQQa?p@#&&jcSdp4$2ҷW7h Yohrʕ3f F)4ݑwߒ41~xP(s80׀+IܹsoYzY~6y̧oϟ4w5DO]eǷ,K-[l W'Tua. <6/*IN*?|*?zMpKIENDB`pychess-0.12.2/pieces/ttf-Condal.png0000644000175000017470000004612712642235661017542 0ustar tamasusers00000000000000PNG  IHDRMbKGD IDATxyX_O+-*iӢRdIRH]vn00d]RJ)iQJTѷۣ=}7zs>Y?-_\77!|rwE2S3y8::Ȝ9s2e^ߨ<5jH$"(( ~q/_^կ_#G+ѣG넆Ү];v塭=o@),yyyTwS- ke„ :nԩSԭ[w00[Ō3۷oqJ{#""V4$>߽{&E $$HT% U%|X"##۵k'VWWWx}kkkmڴP5:u";;8i۶YmZƍW:Ϟ=e:;;'8::н{w.]sr_w oÇ+]n08N>Mٰau-wXfΜIdd$z͛7s'O,;wt )411 pɼ~I>}Z~Y O:{$[Ϟ=#(()wբKܹs]]]D"Qի4׮]ĤBϝ0aǏINNĉ\rdeuSL~~-`I/ݻӥKА׶m[?~ @hh(=boo/Uزe -Z@OOׯ8;;еkW4i7*h>>>ڶm,]2Ν;gO@@y ?GSSك5}666̚5@lmm^VVV"H5\lmm `ʔ)e߿ C18`TTT͛%yV{ϳĤ(888mŮ;vLQdĤ={~i?oKԷmۖ?'''^|)q/++3gбcG|}}QPPA@\HŽ{ر#Ν+0eΝ;G͋ԣZ@rrrҿyrvv~mmmgҥnť{a-77A_ɓ׭n۶M)66vb OA^^b6l{k̙3I& pEvJ޽.Rɓ'믿ύ5bܸq899I͛7quu-ZL ]bzM>}בۻRjРfcƌnV\pQJJڵk\?}էO|ÿ{7 4C޼yiӦmJ{zzYl=Xbkf 8P/9r-"::4vի>qqqGA}-,,Xfĸ-//3m4>~'cƌ! @HSZ8XL^^yyyx 7ofW_?[OO/{Ȑ!͒}~ٳgxΟ?ϻ?߿qVVV5/^4hL 6U]04f3tP>|;8q"/B'N{{{rssy9HII1n8v%ݾ}D]U wѱc"찳cѼxk׮}U###gNNN{͛722(ԩS$''SWWߛ|#GqFmFN-hػwo֯_<8޿ĉC$ F)Qjݾ}}ѣG{Ν;Uvډ/^(5kԩSy}JHH8#ߤEzzzKff&m۶ZO ׭[7|y۶m+NϞ=C]]]b2Azz:ua͚5\|Ǐ3g4innn[ IHKK0sLϟOӦM3f a``X+Qjep̞=CCCF]-_͛ӯ_?6mDzz?M6b@ǨQD?~+ ϟ֭[۷`Ȑ!ѣGN8ٳg:t蛐ԩÛ7ox G>|8gϞ!ZYYE^fffܾ}Xa̪QQQܼyN:䄍 L>+W0{lxNNNhkkʃ044DNNl삥333T.y}Nf}*2e}!!!Bڙ3g ϹuIIIBkhll̦M54b35Ν;tԉ5k?`gg9sׯԪUKs۷b^ELpp0`aaA0 /NV*|||kڵk &&&mۖ3fBތ y>}իWQvm"##122`ddd^R#::ݻwcgg kfϟ?Ç|,I,JJJ(((`jjJƍiҤ DOOŋԣ\ݺuK4LlmmٻwoSRRիW_\===kSSSСCYt)߿ח`}z4_5oޜ uVaLQ7oW\HW;v~ܹs5jNΝqwwgcjj-!aaa@Pe022"((:u +++Q@b1 0~ cccb1'Ǐ^ dee\u VVZ.'-- 2[ ''%=zobhhȵkػw/ǏK.XYYо}{;;ԩS2e 6ٳghkkӹsgܘ;wxΜ9Ν;i׮nԔҡCRSSv z&M۷,YDz555h޼9XXX0o޼bZzKKKC__/m077@ZZSN ?Ǐgdggsy ߋÃA"8Ξ=WDdd$ӧOgƍdggs̙SK.KۗT4i"V,se._\lY7 455~qeD":::%zP˗/r mڴ 2d/^D[[ԥK\\\5jk֬رc9rHڤ$v!q-++SN w؁.-ZvڕCZeƍ飢077'++m۶8 ÃiӦѹsJH^?~p%N:U —0_°aؽ{7[ne֭S,=~ԨQ}:-իWhhhp%?ωdee޿/^𕗗GSSccc066N:$&&2g 7*)b_dddhݺ5c%ͅ dĈĔ;oIdhhH׮]?~ x488xP`` =OJJ {C4mTܲeK5kvHKKLJ/]]]ƌCyDFFH||<>|NE"(((6ҒsCq|OQB*'-U$77TRSSU)0UUUEٳ T+ofp[fp[}S PSSÇdddжm[TTT̬@1uG~o˗/*fffZx5jرcٷoFKF_%cccLBzzz,@֥h֬C իWp]ƍG $h)p39gf߾}rm *?$%%)~g|3+WDYY-[H\_t)^^^ >Ν;#//O:uظq#š7cƌdCRRR&Ln̙VsgϞI>}$NwЁ'NЬY3"$$+++ٴi:tܹs™N-[FVUkgO`SNI@@Jp߿0ڵkG.]xhР< p\]]9GSS>uV޼y#^xUVODDwܡW^XYY Uٳg<^z b1666jjjb555cРA1*/nᤤXd ݺu(((pܹ/-fҥ׏իWsMF___8=vXz͐!C2e nŅ~ȶmسgӦMCYYuuu111̞=KKKLR鿁`=;Ѹr Y& 6VZ<}9wrrr :[ns:tynnnlܸhNԫW777̙`OBUU%%%233U/߿gԨQ2KXXk֬.]$,+ʕ+L6h֮]++Ǘ f"""wϟ?_~+&RԩSQUU}}}۷חCŋ/ ҤIf͚Ŝ9sx k׮-6nAyۛ)))b1s~~K.IKK3k,^|ǏpN144y3g,-O-AFFYf1w\N>j4h>}">>i߾=h:3rĉVF.gٲe111Ҹqc6l(!Urss9r$.]BKK3gp9J}n8ZZZall ]#+‚S 9s b1ϧnݺ9rggg<<<ڵkHKKN:@~ϓZHם;wS$4Fʕ+)^L65jpť $.hhhc!ÇιՋ:0eΟ?ǏiѢEDBW]2%Ot萨cǎ5?_//^H$ޞ ,U,ƍl444?~PDt҅x%6lȎ;dҤIjՊ?_f&&&w߱|rddd{.bΝ; wAԩ~z"(hذlٲݻgs>LϞ=_~(?68mmmcǎ+ -ZDRR0W׌7O>;\ IDAT37o7n@AAXZSS= o?z 臘Ү];mcaaQ{>;66vI+aժUyFZ@Ԛ5k"Ш׎GGG<<<#C R58qoFZZX۷oyܿ+WիWK,nݺ7lɰa믿>8qB,77o.<}y9|0>Ua+X,WWR_5/^ĉ66v… +}86..1իW\p;ͅkY\zQu ŋ7niii,]Ԗcǎ\"##ٳ'֭?~ѣGCbqH=~i~VD;s"##M6xyy [YĉYvĠ8bccٷoLׯ.SsڵE@C~0p&NHݺuٳg4nܸҮOgccӰe,@pJ\JJ &&&=D{}eT7SbxI[U.\ŋI֭d޽EU[9:: TQ=z@LLĞz .//[[[233iժǎ#)) XLLL ;wEtA)k]d\r~_u*† f̘!*㠠 ݻdzg$bU޽{߿gEhhhTIꄽ=?ci6o={̣0"JB:uS~T='''kkk#WNZZ~ٶm.]" gϲzj?~֭[]v)ۓFǎYqq:w0WFNN?һwoƎKZZϞ=TK}射UQVyӧ8p'Oŋ9prE ĻwxлwoFɎ;2OoM[gϞ]:tP1Әؘ+V$x>|, ֭[Ӻ 9ׯѣGL:={p޽j*l o߾8(((:>>߀>y~MTA V|58z(ɨիWYl;wI&hiiQvmbŊDEE!''G9p,ZSS2u:-dddDPPPҔD[8OOOQ`` m۶5=¸p]v~+ԩVZѻwoA###*Hpp0,X˗j*<(to׮!//H$"''oIJe=z4'Oɉ:|rݻ͛7YpaNSUWpss###bsttD[\R.$$UV?pAQF899˗1cϟ:uŋ_\BL2H444غu+:::_SSS!88ݻGPPQQQҿ WWWXz5[la… ŀ믿c-\ZZ{x |j׮,ZZZܸq .a͛Wgbccȑ#QPP 88 fΜڵkٵk=LJ$rss 4 Fń f׮]XZZ2n8~uVK/ 999t邌 6D,WG۷w={[ԫW={h"EWWP.\H޽wZ"88}q}FM^^ks/r`ot;wpu4i>}"66 AXQQǏj*1c۷o|Լ 6dذan:޼y͛7ĉ+^^^ 6 %%%|||HHHҥKl۶Yf%$%%}Q;Ǽyf̙ >~Μ9 ~tڵR*HRRR|8ٸIc…o>>}İaÄM$qhݺ5ѣ(^q萞wׯ^z/Sa\ڶm+2׽{w=zp̙J}Ǐ'44!Cf2eٶmK,y)t}6m당ಲ8rH!_~ͱc* P)ܻwG+}hb;"H)KII=/552*##øqؼy3 2)))',,m۶KL5p?~1ШQ#!B37o.>XXXpm ˗֭[Ou|4xzzVR}`޼ydffĬYFQQ===Xb#GёG]p!'22rٕ+WDC fze1j(ؼy3JJJqRܻw͔)SPQQݻSH3i$8r|TΏ?qF&LqppҒ\| 1-[]XNeu4111HKK)kƆ &ThI-Zp5 Mʥ׸qc;Νueȑ}ڵ+U\bbxuuuUk>ӧ~ڵYdIO>EGGkkk<==˽qѣ;v,ݺuGDDжm[  dggsY\]]8q"Y}VoԬPrHZO>]ܹsgy555* hhh3 EFF/L8=z4fff,\P"mrr2Nb%nw͚5u֡ģG[.uƦDEJKK|Z*ep&L۾};ϯ݅Ҩ] W%L0Ȟnff&b7oޔ7 m۶1`ť\Lf!%%ŠAPUUs*|j+>>~̘1\ž={=#, 999wv,"bzzz4lؐb dÆ hhhHnnn%:a֨Q^zU(Tp .]勍 ߽{'HW,Y-{o>. M}ԬYF/>TTnӦMyfb%}zw!/x !,, KKKtR$uy(nӦh̙3G憫+ ajjƨ"HKKܽ{޿֭[ GAAABbXZZb 444Xv-ӧOGFF쌋 fرʉ'7oW^8oիWkm-//bccqtthr\RRC5k2n8^Jbb"O>%44۷o-&Y"1))~\\ ___Kt $b31#F@IIիWӭ[7BCC:u*W^%22.]˗+^z}"55r{Tzf7}tt4K͛"K UZݨXeMT+ + +BUo[ũG[wVUߨTEEE ߨ}Jnnn<\xԩSؿbӦM>m hii1i$᳌ /.^yTmܸYYYvY{.7n,믿ԩSD"HKKNxx8{.+𪈉!!!#o{rr2#G$$$;wuD>}$*##SWtYd޼yo߾*,<]]]֭[:jjjTTTx!ݣqE_r%Ebuuuqď=oذ!?̋W~uJZ8ٳgOddd2668p'O0~x --C'NpѣHMM ww7h@fƍXZZr1޽{nccbɕx?*iܹnnnlڴ[VsV^-633߾}[¥!''4''&M`ll\D`RǏϹzVZ)ӧB т+hA{~Yddd0h ڶmc7cڴiL>|@CCΝ;Gŋ FFF"77L}###s[h{5H9-Z(rmlmmEhhhp=zŶE /cffƶm аB_5j`ҤI۷ؗkDkڴ)'OիWH\\'OgϞ̜9?"%Z4555AƆ+Vb hԨ q444عsg$yyyJM4!;;/}(EW^hذ!!!!ӧO LUTT|HKKK8[- z[nZ֭[O?!++[m JR4hvvv<}0 #>>-[H Ғɓ';?>:u"::{{{qvv&11Ppt!CW^zsrrEL8uddddo{*֭[5k9|U9sТE ~_^^~)eW`BaϸӰaC:::̘1fΜʕ+Y&ԪU }}}jժE`` [O2~"'4hCXt)SL)VhӦM&&&Ū%''7˫CD?vvvxxx}+W[qewSTTԍ_4}eVK]"__Qƌ ߿/84*((~zvލ=z%%%^xs7o`A/^]]\Fhhhwrr֭['!sܹs >Ç*JNNU8ʕ+ y}v###;==1VIuƿ<<> /_&88X8GqҥAFFF4oޜ>}Cxxp>~ V())ݻ \eH 7n`ƌddd7oSNe2W IDATѲeKƎ˼y>}+ڴi+58;;믿 iժIII蔼iooСCg'%%\133}lڴI Kw 777AdʕSLNwfÆ ܹC˖- tSEԪ:OAILLDFFFBÈby5 [Cff& RWcǎhтhy%"RRʖԴ2>>>XBhիԩSqww'**;"""Ν; 4H?p@?ׯ[>x … L>CCCBCC)0ׯlذiii4iR%PRR*Pu%''3)H\vv6ZZZ ϟ?GNN[M޽y~~~!BСC;w 9oooO>}8tgҥoH˗/.U%[SSfΝLJDEE۷/޽cZ4k֌&MOzz:Wݯ_?033#++QQQC4iV|S6l(ȵ^xggg|}}s...{KKKbКQׯ_ر㋴4dddغu+Çz! 4j֬IBBQ~ ___ڷo-໷|rQVVwӳ\/@yIJJ[ڵQF_+E v|ׯ҂ӧgp TTT@ӡ߾}swHR!Hׇ;wTSvرc8|0J[dɓ'QRR2N=JN)⼜;a0())Aqq1t:߿Mypj05Yg)))}6 B.Ϩ_~hf#\h4cll HJJ"pMT*x<7n8vy 444Ge0 0 .###M $&&bʕk@@x{Dz,kL%Iׯ_GNNr9z=Q]]%K //, ¥jN^FA}}=nݺEd2ttt#HtQTBmm-d2!~z"&&fRS͆>hZzTUUF6l@MM \.v{PS !\Vh4#==HMMEhh{bW {ld2- O iii^FGH.իWx.d2ֆǏ#''gN\^]\aa!>}:wtdff"332 ;v yݍ6|܅ ޽bx \wh8w.\tr.GVVnܸ ,g.MBBBp8KtBTN 8MP?~t۩q63e ơCpy& CCCdnpp0"77O< ̙3IL&cYY޽#qj###^GRbfh"BBp8@.?˓}tѣGشiO%@RQVV6#dʀ3͠h{. :;;RVaZ=s6 #((ˈ @"@T`0J"99VH$A ԭV+L&t:4 QVVp,[ QQQhjP? 7-[ ??/+z޽Xns]PX  ڡ!l6vjtuuo޼+Ww2d2Y|5۷cwq*?~|\aP(̛7o\/h9Q921|ܹs<ҥKxbǃ` 44  d2l6* hnnFWW!!g y<޻rʑ#Gp%,_` ba0t:j5ڠP(сT1X8JΘ+b0zzzb l۶ N> [Å ::qqq`XXf 1::f) **=T b۷o)xZ-f3Y `0@A ƤRÇ}c񣴄kx #+O\244D Ӛ;ffU?0 ?Uwanuha'S*{ hN#IENDB`pychess-0.12.2/pieces/alfonso/0000755000175000017470000000000012653231274016466 5ustar tamasusers00000000000000pychess-0.12.2/pieces/alfonso/wr.svg0000644000175000017470000001165412641567764017663 0ustar tamasusers00000000000000 image/svg+xml pychess-0.12.2/pieces/alfonso/bq.svg0000644000175000017470000001371712641567764017637 0ustar tamasusers00000000000000 image/svg+xml pychess-0.12.2/pieces/alfonso/bb.svg0000644000175000017470000001243612641567764017615 0ustar tamasusers00000000000000 image/svg+xml pychess-0.12.2/pieces/alfonso/bn.svg0000644000175000017470000001510212641567764017622 0ustar tamasusers00000000000000 image/svg+xml pychess-0.12.2/pieces/alfonso/bk.svg0000644000175000017470000001417112641567764017624 0ustar tamasusers00000000000000 image/svg+xml pychess-0.12.2/pieces/alfonso/wp.svg0000644000175000017470000000773312641567764017664 0ustar tamasusers00000000000000 image/svg+xml pychess-0.12.2/pieces/alfonso/wq.svg0000644000175000017470000001052612641567764017657 0ustar tamasusers00000000000000 image/svg+xml pychess-0.12.2/pieces/alfonso/wn.svg0000644000175000017470000001275512641567764017662 0ustar tamasusers00000000000000 image/svg+xml pychess-0.12.2/pieces/alfonso/br.svg0000644000175000017470000001235312641567764017633 0ustar tamasusers00000000000000 image/svg+xml pychess-0.12.2/pieces/alfonso/wk.svg0000644000175000017470000001156412641567764017654 0ustar tamasusers00000000000000 image/svg+xml pychess-0.12.2/pieces/alfonso/wb.svg0000644000175000017470000001013112641567764017630 0ustar tamasusers00000000000000 image/svg+xml pychess-0.12.2/pieces/alfonso/bp.svg0000644000175000017470000001173212641567764017631 0ustar tamasusers00000000000000 image/svg+xml pychess-0.12.2/pieces/metaltops/0000755000175000017470000000000012653231274017035 5ustar tamasusers00000000000000pychess-0.12.2/pieces/metaltops/wr.svg0000644000175000017470000017562112641567764020237 0ustar tamasusers00000000000000 image/svg+xml pychess-0.12.2/pieces/metaltops/bq.svg0000644000175000017470000031611212641567764020201 0ustar tamasusers00000000000000 image/svg+xml pychess-0.12.2/pieces/metaltops/bb.svg0000644000175000017470000023562312641567764020171 0ustar tamasusers00000000000000 image/svg+xml pychess-0.12.2/pieces/metaltops/bn.svg0000644000175000017470000025033712641567764020204 0ustar tamasusers00000000000000 image/svg+xml pychess-0.12.2/pieces/metaltops/license.txt0000644000175000017470000000016212641567764021234 0ustar tamasusers00000000000000The software in this directory are published under the GPL license agreement http://www.gnu.org/copyleft/gpl.html pychess-0.12.2/pieces/metaltops/bk.svg0000644000175000017470000030662412641567764020202 0ustar tamasusers00000000000000 image/svg+xml pychess-0.12.2/pieces/metaltops/wp.svg0000644000175000017470000017162012641567764020230 0ustar tamasusers00000000000000 image/svg+xml pychess-0.12.2/pieces/metaltops/wq.svg0000644000175000017470000032056712641567764020237 0ustar tamasusers00000000000000 image/svg+xml pychess-0.12.2/pieces/metaltops/wn.svg0000644000175000017470000025244612641567764020234 0ustar tamasusers00000000000000 image/svg+xml pychess-0.12.2/pieces/metaltops/br.svg0000644000175000017470000017361512641567764020213 0ustar tamasusers00000000000000 image/svg+xml pychess-0.12.2/pieces/metaltops/wk.svg0000644000175000017470000031361712641567764020227 0ustar tamasusers00000000000000 image/svg+xml pychess-0.12.2/pieces/metaltops/wb.svg0000644000175000017470000023750712641567764020221 0ustar tamasusers00000000000000 image/svg+xml pychess-0.12.2/pieces/metaltops/bp.svg0000644000175000017470000016713212641567764020206 0ustar tamasusers00000000000000 image/svg+xml pychess-0.12.2/pieces/Cburnett.png0000644000175000017470000003273612642235660017335 0ustar tamasusers00000000000000PNG  IHDRMbKGD IDATxwxTU;=BzG$AZA,EEEuWeQtRED@lX %H陙{R&L2 3d{g={>GX`LM 4 ,f1ܬߛ.@. Ip,4x.K5$I"66YvIpן@$p]tC` EBsm֭[|8-&jb/62ˏ<֖1@ oDسgl۶ =܃WnԂ3^{ bdggi&fFaʔ)pa:d=t( h"6ʟ;qMp;a(b pnhV`6p{Z???JJJHMMZmnԂ+))!;;{tT*AA %%%&&o=OII> ߗ߀!(U8o5S\&T"*m& 8ΨQt 4oooݨgx㭯U*UF]}]@?@ | KʟC (QUL<`bc̀p'-N}rFcggpw$Iڙ= tAϽ*3ߣŚQ~(5:s Zeշ5˪UXz5qqqNɷQp,3tPgvvv}D4쀍4""0a( >rq@o#ב`4"""f3[nˋݨ vANNN}Ǐ.i_s-5[缌"?"QA*AoPލZp...H&88yGxx8....4瀷WI#V(ݢ_&{ v7J[n󉊊"!!QLJ>},ˤVkHDZZ?~ ._dLJ=zХK4eըƴi_߫d22|Z,;R| X)2@ JpIEڕ_l#Z9y$KE||޽{tw} 8ηlyH LS}J*r-/[ oooׯf"##Yr%=֭#::s'L@tt4Վ5 @~ԀʘeE8rEte+'A*ڳgOVZ̙3secv3d~>S:vXx(2FFjQz՗? (n鬊uӧ߭STPTT@qq]t֭[YnzԆ^GscM|f0p@fϞ͚5k8|0=zAϞ=iժAAAhgٳg9u58رcY~=ǎcÆ q5~[F\(3z2j}]\\LYYYMA-R}lNT*F'`:t;w"Iaaa4oޜWJrrV;y$:tӓ9sмysJKK9x {aϞ=<,]{(6VζYEYY<3cc=еkW|}}s 2eeenWzqA!''3gΰ~K'Oʵ^Ch4>3z=w{e޼yGXAAA 21c[oǤIpuuUlp.==Dpa$ѩS'Zjb5常Uׯw"''ǡT|}} W^E#FxɓE )  8裏iiilذ 6 /d[n5VV.]Ynud>SO1eZ: V?>䓍(mv9_eĉY& z*JϞ=ܹs6\E ==∎wLJٳguF/rrr;vSwO?׺ukڶmK6m FcXn*etHNN&%%%`ժUjѣGW_$I;wӧOs[gj0&((I&o鈋/^p73 |'ڵ4ŚBROpp0ZGR>$)g`0?kq!kSRGfhL.**lk4V%44c:?h@VVW\a˖-4o^uZq\OZZ6.O>Zn=\E}Ϟ=3f  kͭ갂f3Hnn.i'EGG;Ep;w$>>P^~eLϞ=1YE9s 䧟~bx{{ݻwJkoDQ$==I_w^z"#GFII %%%RTTT-HVi'K=t^1M6ѻwoRRR8|0+V !! *wqqcǎtؑ޽{3ez-Ο?ҥKne2ZEK ȑ##G84FcY զK(+,Ν;ɴi8q¾S*uܙpw^m}pM4Z J׸[]HTk<ҫGf2?WKL?[nU(`[C pssŅR4 f 4Zf͚wh7~xkMp=h)["@@k5*rEf EdY8wZ777Fȑ#IJJ"))/hZ-:-[Kpp0:tWH~\"8?n:T*۷!iSH7&5qCi\7fvnr 7`k$&n(Mkhnʢu֌5q$?_|իWE|Ҙ5kS@UYξX\|ٺ^E.]Dfffg:=([(fN~hp g69r)))H`` wqCU/&*RSF@؍/߄d*hJKK/)++cԩt:6lɓ'y'y@PPZUV63P8{~H5WP|M~N?SNtR>Μ9Cٽ{wC@V#" "*ʦu& &SSDomعs繹sfum$xJ͚5cѢE?ީ (߳j*g%,--իWo>=8um9RG׹sg_uz`09zz N$ lڨ!I՛ W_}ѣJnU,Qe#G_߈Fʭj teΝ;yg߿0`6m5ϑ [p=۷ovl5* I7n޺ujiٴi&#zaXtՌzy8|v︸̵ܥK0Lر+WmK "6l@V푛C\VkӦ IIIiӦ(hd=0+S2zk|\қz 7һwobcc+dj?M6U㟕~jbssse˖@˖-qsst\$~嗺 nkt:oΒ%K믿NHH;omKp+zo֦5;k׮ Wmaʀ(,,=Jaaa5\mTA1vXr%5-{E_|ŋ7l9,8I8q1VgΜwŢ eҤIL4P֦dDGGsUUXXKض^Jqq1Ç3#eG/sKqʕj5(DGG (EGGWZXpPvvd31;V\3fPgWmoBףVqmw&Mdkѳ];ȇ^XE(~m֬٬9,8 =튳gb6#5FHw}WZntEƑP<{:-u}h g0h۶6VZSlիi$ѫW*OYeQG:z(GV5`֫:tPoοرO?!C86QӲeK JBVӦMc[6mڠVQT1Íb JE`$NGHH^SzMhт-Zsa23&۷o@9´Q3|pA]v^ӧO'))Cmm*0Z&$$3gjĦ%^" F3]\RR7o[n|6'>~G-Z΄ ѣe$>/RgLu(gMRR,#Hbb"gϞ[n yw$5.DZ0S}߯ ߴk… *9FY[pDDD0n8֬YcWd ;~ڙ֭[yf]̏{(C栬U(Z(/ lAbf3AAAE݂_/p8 z>|}й \|.^3ʂ^(k(kPYlK!8p;pUZl)[?]|h6o\VYt)'))m:Gc[}kW/}[|_eB1pJ(8:@ (Ra{WDE;F۶m8qb}@hh(#Fphв?k帯/w}*R7))6 Ʋ1{28usmpo'䩧h4Vr3̙3III!>>T.^hnsdqlݺ5;wu7rhݿZ-, 0Qc̘1 )M&μMTᅮ˗1ֽ DQn&I*ҾZ&42228~8NѠhѢm۶G^0/Im)Lt:SW,[RpرQtVUW%%%ǏO?;k`-J#t:$I.,,$ iSX"""0LHdn3cfFcS$dYիYƺ=R[hZWÕQZZp[rU`@Y'͛7LJ@͵;gAE(,,Dej*(Omu:%4~,裏Z+́.|}};w.XGϑ| qǜъ+碬үF4h rFYnynTÂG;wn^MIMP IpMP4ps۬e;{kᚸ4 J.۷K.ѪU+Fq[8ZVe"-fZ-sAjv M84)u=R6ɲe2 Y_233"::VZOX8Tɲ>n8h4^z%՘1cD`(d}D_Xܛ,Q*5}#%%H{C5VMԩS3fȟ^m/^,̙3Gʲd2o?,) v1l0.GkFw}ǹs(--EebbboաfslRRl2Udd$:Z[oŒ%KJ~mڴyT /A#NFF*LlBVV 4Yɓ'&UZZJFF#!I}jQ5jߟ{.>#))I'|"xyy 4mDQd޽Z:pQ߬V 7КQe h4@s3,,!Cej5_$77W+ h4> h4qFN:ƍٷo׏Hkbccٸq޻*Ec;k.TEA/tԩ6j\ xbl"Ȳ|Vu$ob9+t?#>|ۦ5sk=%%Kh?S kq`ɒ%(C)l]:t "##+199mے|m=zo>RSS5}d2QZZj3,^RY4:?۷˗iѢE-gϞ̀A}I p.\XIlEEE\xYxb%={\kF,lܸ .`jK$XvmX8jJŦM̤C57|SM6a0jYfa09s#GN~ o] Qζot9sZ$2W\ N>#SL׺hʕ+:u g9R0L#>,w5RRR9r$..ACCC""" qww',,$gQrj0 rtMp$uxw]p! ԹJ…K*VkG(**cǎ޳8>Pn!!!(:tN[>{l{ҤIfQL@FyϷlfwcߟ\/zrdYzϭ\fee1sLӭlVJJJ/|r|(ʕ+ IDATy'굥-z6&&޽{gӽ{w&L %I X꿾:G6"k۶-qqqqӧILL$:::R{f턄8˚QRRRΕ+WS6\rիW3}tEgKp'zwuq=*jLb#I{ ~xvAeN\bb"޼{vͅ eonUI6mLWӧ$IĮrm6{9}Q?Nrr2.]5deeKjj*ٓ5`ӓɓ'+l2K{[j~MQ5EEh]TT.((Pcg g00 ,_˗プW縻ӵkWFIzz:ﵞGnn[m2-k!>6ЗU,њAP \]HU\Ch7 ׯVr3k,RRR?DڵkIKKߦ-8 dҬj['NlW^yeh< JCGDD|g6}²xzoիg~WصkWO3cǎu]P*@EA~ ** ƎKNpqqѣرOOO&MTˑ NL;ǁ/-Ag͛7 I PҥK(S>nU;Oo^}pwwgʔ)|9^MtΟ?O< KHH`۶mۼk kZ~z:wLLL 3f̰DٲeKm1T)i<nZvyŃL4 N7@ 0``jN7@Ѽ0j(sN*ejWj-<<^ʵ^^*B46\|1Axoeܹwߍ7倮j/!1|… d2aeƌ*8-++`ٗ!$$@7Q5kV~dzx͚5 .f3MT {eC=Ē%KXl8vw{#`:wf9ɓ1cCIz~`h>eYշߎ,*Cooo{ﭘ^_aaa>^ v4Q'ͱc?V~MPӉwt[SŚT5T -z'QTrU$&&H>}*J TO>BIIPM^jϞ=Yv->Yzv.\wm ,FN>Jٳ:OOOYEL& w^MaZcǎhZYVc2t rJ~G<<<,Vg0MI5rw0w\ F׮oM6j*&OG[V-[tA$u]tIh׮nnn \\\JJJ(--< EEE$&&˿*++CӕPq86CeϞ=-A69udddFII hZ>c|}}ҥ ]vGV+Xj#FXCvA]{?**Jh,ND߾}gΜ{g,ˌ;aÆU+۷ 2|4 *p:wܐ'Lv::f 999` V...z\e|}}~IEq8`wdH]?>裺W\œU?ZgA;}eDxx8#?;k,+~֭߯uK%{eN:رc%Y?rgHMM%##~0`>PcWJ`0MTT;wR"zVZHǎ a?~ܩS5$͓$iNIII???0͂,UK.W_!2?x$3g=~b رck׮ERѹsgwNn;vlRRSSIKK#""wyшA;wdÆ $''[U Ҷm[\]]eYp-A`4={v/_N~~Cp$ƍ4h)IX=^-~~~X7DTToǎ5xt#Gj ߮aIʲ8oNOOPVV{AE,_I~?ƒUc/ʲan>>̙35j 4$$$eGO>iPथ@M]+,,d˖-^֭[3p@y:vHǎ@BB111lܸ ZBM6/̀ :V韝(\zIɱEϟ?VL&$+22Z',Yӓb233EFF ?tz7 7qD.:… yWӧv-Z# r Oĉ?~@ݹ{KKKgXbݲeZV7jj͛ j9EQ4_rE6LfDzz:YYY:ɤP&LYh~i>-W1zhFIRRIIIDEEhAtt:7o?0:tpd#lEqzQꇲelZ'@!b&Zz3fkzp<[ @RѾ}{&H(DMG!a7&5qC]̛,qkUIENDB`pychess-0.12.2/pieces/ttf-Millenia.png0000644000175000017470000001732312642235662020071 0ustar tamasusers00000000000000PNG  IHDRMbKGDIDATxiXS׾0i0 Uqd*UD@UGa#?~Ǐ ,BHLLDzzcrcc՜766qFǏ?wlb dffbɒ%033 p]tww 8bTp}6cXEJJ SXf@٥|[s޼y=z4E9kJa(..Ɲ;w`08/##5k>`[n}yQݒ[tttTNƌZblP(B),K=T x'ccc"-- IIIC*666rl^^^e~wi4ڥ Ξ{PPPm+Wd޽{(--x>((k׮:H$3R+`̞=ׯ_Guu5_UTTeee+q |||{(,,̻fS__}ʕ_>}VddPc{v!77k*COO> ŷ 999X`PZ۷oRR'bǏTVVg(fff gϞ GlD*,,Ҳ|< nر(**ž={0bdee!44544Dhh( 2JuR*`ddS F"`dd'''_.X7F |{mnnn<sBHHH[B,]7谴DJJ JDf@)///˗/ٳIIIBgXHJJpܹ˗a-SWWn޼ӧOlرcLLL0f<>?~8w.]4%Ѱr-111ӃPphmmEyy9ֆǏCOO>Djj*`\x}FJŋ<ihhi5ד$6ĕ+W`\t iii;wno %%%prr7|?`+_ q@ 5Kǜ9sÇY\]]Q^^XYYaHqn7sZjjj@:*8SSSN$>Vkkk%vf%Hx}Y1#+Ċ 6::$ވ@#+ !8B@ ([nw6"b `$vQ,JKKEvRZJdX,TWW#,, MMM}f())Up$IˑDVv}}="""P]] {{{+N>3gb1bb `g؍p-C]]111 .\ӧF^^͊aTqqq.c[e\YYxb<{ nnn ]_~-p=0LPTTO?2 x:u >>>=z4@ (855swܩ,# {;Gzx{{# VVV$q;C0 ƍ1~>Bc0hł֮]˖cb˗ԩSV ں HLL+(((5LGxzz"88c]x͛4;;;OaK h4,_lWxaaacǎA__'Oŋ1uTlwxRM"##&M4d i wa8z(566~~~011a]t)t˖-.Dkk+222`aavSSSxxxy544 <<عs'ASSi&o(>ib ly7n֮]6~ʕ+˖-Cvv6G6jjj722kmm.P!##&7oĉ8s 1cưeX@[[ ؖxO鈍E~~>tUUUlmmܝ;wBBB~]p!9L0rHL<hhh@mmxqxG^|9sN믿hD¸q@&#\rwEM ?CV駫 IIIHOO+_ii)JKKaii kkk ynݺuN?G\\Wddd`oou!<</_~r*KKKE9AhjjB]]=ssO"0}tL2NV(Dvv6Tꐶ@ff&,Y333SWOMNNڼy2.^-[p8o?#CMM-3ڵk5444C"[|,_죣9/e"!!VŒ3i$00PBغu+ؚ^߿3ƶ(ddd(){{{wuuuvԨQ8t>>zzzJ JoJE^^q9 cccȪe+))ȑ#R(,, ާ6޽{{.rrrh"\o| 6m",[ &;vϱ{nҶm͟?&<Źd1k,m~CCC5Es֭(,,jO&QRRSZYY۵kכ!EK z=矒e_QQі3x91~x\|Xzb``@Ul3qD6`XC@#+ !82l󻻻6XާGm󍌌JKKXAsW` a/c8"Hm$F00֨Qb_999IH$Έ1X!G VHlNX Ba-X!G V<Ԅ{rr8zPȭ[~stn i(YIAC1d%|p/Tcꢄ=obi8(&7o^ذan~UTTfN` 'NXMM 񐕕6y,2i$lܸ7o޵m۶sӪU}b322P8~8L&F9`zEEEmmm(**Ylf,PRRիWc8;;+ܾ}ކ ҲX,9raƍsEAA DߢExzzBYYd2C8qcƌAxxvw M̘1ChADSQQv|χBBB8~R`0pe?(/^A&Q\\ +++:tiii҂兝;w*plZ&9b@&_~aK[__/@}=ztٳ6l77>y 8z(nܸ۷o[kk+\\\sN:u 'N%K0a]'''dٳ`kkb !!!DGG{ߓ j:;;QWW珓&{Vb˗ߧh2.\ILL6ڸyfc8s jjjk.顽umt:JJJajj+WƆd+++ 00׋آ1sL߿7oT ASS/_f3+'&&BKKk(㊓'Oʟ={65&& kQgkk+ݡO˭[PbkjjqL<Xx1 v> 033xb9r$޾};>( NSSqqqطofΜ>uttScϞ=HMM𬭭/ϝ;}*( @Rc2 3??p9{{CŒC]]LMMqA0󴴴`ݺuQp)(++U}رc'''?EEE hQ@h4X,ٳeee}Z„Nϩx5ttt0aedd0m4L:eee(((5ElZZZ Cii)\]][YY^^^CZZz7-vx *++A&܌-!cxbccQRR-ƉX^~W^};o<$&&"226m:vXJ&=z{O?EQQN8y`Bs Ejj*qrܻL*#F` BJJ Ν˖ӧذad2؀Fɓ~:|}}8c0… ŋ544022«W<`lغu+=zՕcnhhh`߾} Hh ĤIҕ`ٲeؾ};-[---̟?;wD]9pHX0PSSrrvuu͛7___?GLL [JJJbnoo7F~~>V^Ͷx>>>JEdd$_Yl^³gP[[qbN(++ɓ8>VmƫާF6BpbX!G VagO&u'lMO&k/Dl1#+m >4m>clE~l/& c8".Ï(H]IENDB`pychess-0.12.2/pieces/Freestaunton.png0000644000175000017470000003675212642235661020227 0ustar tamasusers00000000000000PNG  IHDRMbKGD IDATxy|T;[BBDP@UPP Z7w[mRZ[kkֶVVQZ]@"dOfnw&3!{^uggyČ336!?=`n7mw{6l#sw>| B_DH(4KVICN *;4{=iPף!+.//u)..CktUv#~iJKSϥR\~\d PVV'4.>UkRZ[ˉ'Q/9f̘!=;7*ֲ\mi/g:bX~ȀN3xk졟Ln29̜9X,g}\ۭ==\iI 9c8(eޯ䈬,umʶmKDZkkYY?̦ٳYWm5 ;A` ١qԩZPP  A |v-e'Y@7K/5*ń<-T0ڿn6p&p*;x 7p-irK :?r$ @?UVѥK3G㠀e˖^´k}6r ]ڷG#WŊ-[: dVf [׮eKq1XT;sf+V6abہR_|uزnR~1PJĤmpqp, ײPP C!lĵ,ӤP>}w{w5M>}w]q^g>{6ǢGn5k~Rj5M ]pAba̍Y%` of:@MhusL[]w9K9źeYuRl߶.]wA=}٠NA8'm\;e $jjgDzDu;B^Eֵkٺnjrb52oOJבҴMj`uP|#f'r-8a 7p``ul]<pxEQYYI8&gG ~}W<|9/fܸqb8CnnnN>,(-eF@##9 BRt6]}`_N/o3]WO}o``i~X׃R-t䋶y2Dz:V\-SJ;˗ 뢔gϞxIۗ tAZ8\9OYYB`KI,ƌGݨ {=οB8K.eêUîX9T4nÆ #;;-f5]J,WfDٖeB3xX$RJMJ2:R-.!0yV< \v-/<+#Q[H`'eeqQGqܨQ,۾!E0w\un"A"%b$,*b`NY<nݺeزקE2uq韓:8vkj& ]tO{JJy ^a //a Kف@DF/>Y)uo0jwn/<?BΙ6 ;SǚrItq8(JJbøݏ~kÊ2e|$¬'E8 [h.v3׍ c=}&ꓓi&?,5MLB0jK,ɰsReZW~ޅ,90ԴWeeee DPLVzDJ ;kWm-$\G-*8S[cH4{ZC.xl"B>B4&`7OB8T֛\4qfK4*GضވupHTYq11Ҷ {VTPr\wmHkKKдWI@VyZFh7ZtV,'-!G"t:5b87ֺnT,=!]\fd.4M~oL+C_ׅr]*$iWnql ݺwg͆ pv"At@7N6'm0(,,̰.l!~ܵJBj,,8p]0a!8Q)E_M tSlx oU8q"_n@mMMkY`Q~~Q;-m:zh=pJvwK㥎BR*/ OendjLJenhɹ&Q ^Bmq]%-7ϧgQ=`K1Mx0Y ID;HS <@ a^{t:M \HDzpM\ۆԍR`X0._ǸiT\߻5hpD<<0prs9svSNP/m7{8"ML>v]vZ#[l`A`eMkm~k yw&im-mpe۶qa #?ٜhۀ[li#:P1lJ$0H8ZcrVʶocd~8͊SS%ئ6Мm͵^IymFF pUQAyy9X۶{'';ږ~n$ҜmҶ|*^ZW-jܮ4_km͵^ID"Գ'uS|x;ہ(i4M%t%e䔛fNط6/iaD H)=;RRK?kpt-(`D %vfR#>Rt84M`ٲe<|嗻۔]vE֯_oNMM5Y "??i&}Dee%2SF^~FN=6M]n͚5̚ _}eS\8m$O1JZD".]֙ܠaĺ AM35Mk^z<[~&\kaLWW/j;= ѳ'ۼ^O׮]wI;@Ӵ ** "+;{gOmg`P )* 7xF>ݰH_.omtdˁ٦m&\$aAwҹ1"tL~:F% %%%|0{6wᖩS 9Ol 67ZCV [M78~Q MrRPrs UBBskzYgT;-]I6_0Ϥ Mk2e:oμyb X~=]a"dgKafLORTVVv̄mko{}r5úXA%Ȗ-i:B-h΋R" Of&gũӑ|7{+jB_nڤ7*}jzH'J`aT^٦)pX H;4M DkzN uфȈՒ,bUU;6e`9MUJY< $l 2}WR#>RIӷ {rpKpK ܲex?i( vzG7x]q {O#~z^{U:_PgRr#P[~¢CvIwCg+M`͚5<3s&q<~-+b19}/> ǵkQk=^yL"9{%Ǝ˜gƍI*lՎCBS+4mСC_=ݻw4H" Э[FIƎt ʍsH'QIeuە:Xo JJJL?T/xnG9q\{=gq1ZD"7{,Vjjk?]Rٳ4M3M/R(- >t0wqA)=TSVQ+F+$ۂ_ ;'r,'2Gڵ(;kE9tdM;ow4^O~^ z5+/MQ8eJKKK7ov^^׷[Qx{S<A6J9ގ.WmmCizkaY[r]#]ﻓؓ/&D:٤]rM?0J4λ) NN0}vS{0LVRJ@TRsBuҥl;oonɍћV Z!Z_nyt+i!.zqZB޾Ń; RثGrMGg0Q(_"}9~=ov9{-+. QhpŲ\vG>_Z^gm3T"u,V[uWrҮ;XJ0tO6nKkՠLiHX[X,iҰ |h K4,{蟏?_*^3/Q݋25FkmA+%[H$BY_Mx'tjq(;-w4^M6%pMRZ[EB헜{,$HUԂVJ{f˷)&4kVoI͛)D2 zB萹`0d$b/rwKjCRbӧ+4H'#fMo]v4⯿ =˚U}nP$R#ٯC 9K{AVXWRb-8݃Wcfݎ])_Xā,SZl+-e/S<;< ??]?f4\ a{hڼlJ `l?û%"Õ7d뷚p@੮]NdZ('uR"vF>b` XbBϿIUk&*qJD9HQ޻i^7|HpԐ!DӼk{hW)p5M;o^Sj1[2r:v+%ۂKWU5SvuBЮ`.^u&ᦕeJO H?ls)x8#YTCߣ I4\4҅,H Kn%7+`UXm[ ~iؾ}#ҫn6(ebY&eY|#ބ8b}pY]qS O>r]ytt%iR`;*a{+"k R7n Zx$%zN]VwZ_,![ Ќk`9R.`UVu+u[C@K1܄zתFZո+zYOo[ߎUXN6Й?%=П]{Kl/-"DҪ53kX|% ]'@~8Rb1٬ŌŰzך1"$75@0!# pF,l.\H.1iv ^]4zvpx"RCwyN*٫"]}^5^ ZVVܹs=3."et-nwG|W%8f֔qk%[B`0g]zy&G*suHrv>Μ23kdgVY(=(W]~g1-XJdMz66襤:&֘wKbƌ1p8e+D8IO-[-q5¡јyzckR~3^IFZ:Д?-/̙^fI79h41ګL8PH B&Pv-D= |A%KgMzɳee )E%I:O5֣G9_#֯cof0駟f8(&Wzoi kE ʫ~xsų \/VRo>Fn;[nK6p3;u!íBA&L8)S&3_x6(envm mjb(+JFI֭[6mtm> koNA& WEĜu>ypXAȍrs"|%,(`~ `X_~:v{݉kV$ʑfTlpRJ}]VXA"' a[R) {qq'зo_jjj?@(M9p<*|ӕ+W2woߎL"' F裏n>+wQg2 F6Pim>JQӴ3f9{l?PJ)ӿ"( /дJk8H PvkM ֮]?ρg}CSH7AJee7RwA: *^|塧ϟpyPTTԜ/D_\xӓ3l DץUJ3j*$RJMJ2:iNy CWJ{S-h \pq.]ƍp/@zyJ_5 ^L|??( Fvv'$5kw}?&C}77q pYװjdEH'&ҊR/!/ O$Љ\89kW^l9G?:qGjQaJ`˲RݪCeC/ضig۶o٦zy1Xqq1UvH׎S7^FЯ_a?o~nf_\X[;+'+/ ٶF:1l'9o ȳrtH;Ώ.??kUG5M!JJJy2^0ӛP(.w}NNvD5 dMpovV DGi 2UREf*z{.uF-[F(׿-a 4-;)m4S%bޏrW0A^}TzB22NjpZn-[nG1u݈apnB O`JG=]wõ(~ w"pj{bHꡝ[b'p_P #~O"i9w-Ǭwyo5R.}"(dɒeaTB@ 5~uP0XyY..K#̹ӑIj  s/!0'샇#6)۸P(Ҽ[JNqN"p 8QbWn]$wrXS&k{9~[Gwvi2Ȧ\ P]*_8DBN:{`0M ~CG:uH^sy*p>&ܛ:I[TiҺVH?L#ݎ 5J2~K Iz77yS=wl{OLI'S('n"Օ&ɖC!ă˖}~Kmk?[ݯ.u!An!h1u3Ŋ/W sfDJB@C߼֭߭%c ?~S[3L3RLoDKz6%-_ooAyd7@Wv8T03R{iljу51N:H~?+,?XDV8#/}.U S"fkxy;ނ;%=\FF.??"rTJi{#bǬ5p@'%_|Å?ݵ(y{x+V5U*˼_ IYp!y]0bRj5/ɤtߏ[3oꚛ9ܟ r JcG@v.h.\H^^ÇLoJ91MҿEKJPG6Y%I' z\;I~aTC*9Ʌϸ-+?4(++ヹs_˿ Z2L.Ol#]j:, rv4}a,$kp\z-;lt>G}<IENDB`pychess-0.12.2/pieces/ttf-Kingdom.png0000644000175000017470000004022712642235661017725 0ustar tamasusers00000000000000PNG  IHDRMbKGD IDATxgxMYۀDE6jF/ >uD}2Q(Eb] z !t|?7r9Y{W򬧈V\)j>r+W)3ߛ?݁j] +W,T5o߾ycΝ`̚5kG}p9ѣ;vdҥU-p_2k׮=g͛7qlꪠzJ駟ĵk,Y"8sLO.ӽ_2_WcOlrwӦMk׮%'')++/U_YYR}_r [GѣG >| IOBYI~ ݻ˗޽{ܻwJڭL+)6mc%9s&^,~ _&"ׯs*iZ*Ixxx ĵkזZk >P~A<|p9CCC 2d{7lؐkaa!655ϟ?_ޮ̠APUU`ڷo_鶿5okҤ 37o|~~Ͽ֚;w`YYٳǎ`̘1̜9oYxxxΝ;wǏ)i…Znƍ⻔ҥ 7...Gff&())ѰaC5kƼyxyyѣGyiii$&&.գ[njՊwʕ+şּ<M6,Uv w^TֽIޙ8**Jꚑ;3gڵkHʣ̒BBB9R.^(Ӿ}{qPCCC"##E[IOOĄqaeeի/.ҒK<=ԬY-[Y)ZVF |}}yp)## RRR XPgGGG3f6c ^~ѣY|93q"WqơE@@Vb1eRSSGGGнWIFUlرRN8<>>._;tj׮]~6z"׽{w̙#>m4oߎ<&$$999\¾}x***@HUUU={z*rrr3tPj֬ɮ]9sPΜ9Cf 7o޼BeNU;wn{99@NNnݺ_^'DO۷$WѺ:ݷoܼp5k읊?YfϿ6pe233066_СC<{ ڶm @FQ;;;.]"ƍЪU+ٹs';vcDzf&33Gb`` 8ۛҢʾ{5k&^^ɷXϜ9fDD'~:PDFF֐!|vuuMڵ+k;wTPP{ƍٸqc˯?oQٳB IMMօzzzH-14i;wNNƎ ={7oޔ*fܸqb___.\DR&| ᝇ R#G(K>Go͚57ne9 5=KF75556l(gdd'㒑I__222M4AUU@jWkff&|. *O>222,]T@CC͛7vZZ``W Bvܾ};19pܹ}0jԨWe鏹9--M,9VՕ$B8ÇgSSS_͔*Y_@M~+唖-[N~1[n], \ɡW^yxx`ii9`{222qo޼VN:4k֬AYcmm-Q(% -P (**J]~= --ZH=et5[nܹ ΝmMiNԩR#`ee1ۯW^tG6mر#{O6J~ewHLLԄG>:ooo<@֭?~!Er}455>H"tuu .@pp0'Nd[[[Zn @^^u<۷o Çy&Nl׮f"++=z0|aW3SߢPTT Ɔ͛cii:::hiiM5 ݛF||< DEEo&88HCyHΝ;XBXnٲ[[[ OΥKEb okk+l"dD">iӦL0ϟُF>'LMMΝ;G߾}u&FFFE^[d [n " fѢE,\={JRRhٲ%<|@(;5j`gwBExe}j:i( wwwwOVVdddH!GMM YYY111v4lj֬YHVHLL$&&FjwJӦMv...Rk͛7oQV-)ϟchhHBBB+jJe?S- "ÇRѣGo_|5ʊ1c`ff1(++ yɤL\\ᄄ0m4hԨQS/^t邢"+yU&##%|wP%}366N:<~963gdƌ<;ضm^uƍ 8P\YsZjѿ͛ׯ˗\zBBB )!o`dd!VVVзo_իrJ^z >\0[lѣY PdYrr2+WdѴn+++6l؀Onݚᚥ%͛7G]]H$l, "O_~cnnNV+ۯN<Ν; .9mmmfϞ͠A8tilff-/ZF!q*ݦ? \ff&tMJ=zD>}A,Ut ƍ/BIDD***ÇB}SQQرc|]ކ eх4jԈb ŋ< 6Er#~U@6l(Xgmdgg3{lA%*) $$3o_} dee|f!3'˫h%]B,tR6nHǎY|9͚5COO---/tovv6 ӧO֖ӼfիWer'SS|||$QTTD[[mmmjժEƍiٲ%ڵC[[Vꏕذl2ׯ/>>>< IMMs:JJJԬYSX5nܘqss/p+V;::ttt(ʽNMM lmm9w\##f>̀|_~.\niiɪU  R-p+V<{왧ggϞɄ[BBBHKK#==]ʾLQQ%%%1336l(nҤIIw##[np$F[nGhh(aaaBRR0Ƞ*clluԡvڸ bSE@,M4iRֺŽ622|~ddd]v.P.EyyR5j"#^1O+WGj>)W'JNFF,9™3gՔNHH۶m#44#D\ff&=zM6y"g)̙3g||֭\x .zO҇W^/fϞ-~鮪~Vp222lݺ֭ 5kرcG>H3aڶm˴i۷ɨK.'N8䄿Y+++7ntޝ)Ԫ|VG8RRROn;C|Ee144144 05558q'GXX޽ ѣGk:ugϞm)QiB,KEDDH9VSoUV vhgϞޞ'O0i$233?;8l޼;vd]v~urҍA.22vڱtR aÆ |Uѿyyy:t(w\\\?>OFFFbYYY Œ3bccҥ -0K~vؑUgUɦaҤI9rmmmj׮|MU4U!eǎ?}z͛4hРT7oйsg믿e'N{yy)f*!pUD" "H.j7o#țF%?w ?~\bҏO1 :8ׯ[lɓ͛7=K!+!11Q'qk;v,ZZZR\ؠVHRSSg׮]%TTTprrM*ӿI0g[[[~g^7<}k׮zjAߦMRee߾}0`nݒ2}駟 AAAϿ:tP۷ٵk^Px ^^^Ү];>|@ffN:[!Ç`2E244dر8;; CӦML0iҤ ={o{%*_LnjSM$qȑ8;;;]QF6mZSd^~-Ms̑ݳgOɓ `*)++W5I^Xhѿ^222߿? , 33h֬bff<2a4h?K0qD$8[/ 6,2NTbqHCCCBBBSSSy1߿g͸ry ݫrUСCE"O-&&&׏1c)WN$ѿ8 -:ӋAo#<<SSS̛7oppp^5Cʮ]PѰaCfϞyw.dYf͚qIV\I۶mqwwtoݺQ6$3"̝;mQJޫ@zܹ3}?m۶dff~4ύVZ1{l oݻ7wZJ_V-ׯzEGG3p@n߾Mڵ)]v2rH 83..rUI2)**ӧLP%Kj*,XPdL~w̤?ڷoȑ# So޼͛7QUUEWWd ڠгgOHOOU8|:tdС8qaÆNK?~W^!Yn\уyq=fΜ#'OHO/YYYرcqwwdE3g D^^FUgff&|ʲ3[b;wjO6mݻwC `aaXXXгgOwp|j׮_ųgϸ|2_&&&%%%hݺ5:uoooa6trE RAnn.C~?zhעU TS-p|R>~o#\5jwޱm6CW899q nݺEvvzrSisvvn}ԩUљ޽{vGE__%Kp._̚5k}vsa|||x nU^n>|x֯*:99ݚ>}W^-1j?INN xxxP~{..."yM.I˗/\0CAAUTT~Y꣮TL2 ֭SLA]]ӧO_ŖW#\nn.III̛7oÇ5jĜ9s8x6ʵk׎(dee9r$dgg{:t@ZZZFՀF Q IDATJn'錟+V0lٲ%ƍCVVBٳ:lll1bټyǏs=\*'L8zZ-@ U{*ɉ;vȦM<@]]]lقBM6֭[nnro޼ɜR>|8vb߾}ǘ%w!<<.]yfkBWWEEiSS*m,W vzCѦM;w.ϟo߾fϞMLL ..."QttJ nݚӧs Rz͚5x"L>SgϞd;V(ݻwt8cǎe˖IYB L0#G``` οíj̰wB%-ZլY .;dee$+R V 2339y /_t2 <}{{{/f_SScD"QQQhkk4KJJBCCyI ǎct֍!77gϖ(PYYY+SSSʊ!Cw2kMXbEuօr[9qʼhѢ:u"))'OTuw("##QUUy122Ғ ?ŋ:M6(/_Nǎ 6uvv~V|W^B -Z󚚚hB0f^~]%f_2aggWlubggWew*ذ|rILLG/##Ö-[А;ҥKБNP(SSS#11Q0m !11N6mjJLwܹ^|IN999ܺuvlllׯAAA̝;+W,ǥH$B,K-}}} Ԅl9$_!LwŕZZZ|]<9gIIׯ_|snnnT˃D@}JgzIٳgRR룢ر#())1{c]tD\^^^ԬYܩCCC(Q;.\p9s?~̠A ^vMO["#Fo+tlllC[Tr:n:_nm۶矤'NPfR_;߿['>>WJkرcs-';;SNM޽=z4'NСCڒ;w~(-Z@KK UUUBCC ܪdnggGLLL|b)=o޼ɣG>Z/''2 Rff&gϞ-}"nÆ sYN>-Nhh('O9t8** }}}^~ŋ9rde˖(**ҵk ]t)B\\\hݺ5֭o߾Ehh(rrr!={dƌ(**2zx+cbb %)+MÇyh"{zzsN~~ӦMKܹs$**)9Wk͉aƌΟ?_8U]Yf B/^O@@z gggj׮ͫWXt)nnnU/V8 \.] aڵөS'q̙3EݻESN hjjJ)Wnݺ0~>}ӷo_h۶-ٳ+++OM4FX[[nP~Uo\EN}ݻӧSSSٿ?bkkF{(ZjׯƏ_ȢlR*O?DPP'Nbckk[*<ǚ)ݿ~~~>|UVt Xݺu???6l؀Ν#::ݻwFݺuҥ ())ѹsgZlɇpttrZ ,UER/_ׯ_oѣG*PRRoA$z0ױcGONhh(ׯgʔ)sU\]]  )) OOO f|7\~[2j(VX'ŅhyjՊŋ?>nѣ%_:8;%**a%pܪ$ZV888ԩ&Meee҈ˋry,,,ڵ+sߟmҿPTT$%%Yj.]GGG8vXϝX۷oKE,/,S#FTaE!D@ 4Ha9r$9sŋIJJ 5kkkk:uȠgϞtڕǏs!"-- eee h֬;vd߾}ܽ{Wt3j(!aFRR,Tf\Rƫc~ >YCUIDSA[DS'ZTk߾}iӦ K.&tޝ~mތZj1~tm999wӿB)xKƌc԰aCΝ;G\\k׮)++++(׳>>U'F+#9s >>>xxxw}ǬYSSNeL4K.QV-ttt4hbŴmۖ;w|rƎ͛9}4{eĈ0vX틽}NMԩYȟɷ~PGSSvLL̡ON8p@/d;w233Lî]2e iii†cTHͯ<HYKґ111ҥK\x{,X1e6nȤIHLLdԩ?~m2uT233IOOk׮憕}̛7{{{&NȡCٳ'zf͚8;;bŊ"#h'>|8wƌ(((pf͚U(DΜ9CLLI-""BjI{A.rf>s 5kD[[V^}Bo)۱c aÆZzb n7|yJGҵkWxT/I,9yyy>Ltt4K,u8::w^YbfffL0ɶmʾySPPPĉr ֫S\|yZrI&#ܡCBI9RnݺGDD}UQQHsƍLR5!\ӦMcǎdeeȲeD;wE cǎѽ{wF:u---i߾=N"''eee?QWWg޼y?~ [_^lG555o?~ ~HR#D$<|0 425ڷoɀ $666noddԹXʻZ$Mnn.jjj<{,:wL\\nZ˗ԯ_XL``JpPF/_W^鉦&vX__#_񑊭jii)DGGKJJb̘1Ri}\]]H"խ[Waڵ[R+,Lmaa!VVZ/ A\\\ 88xQQQ!!!H$%H(**LvvlAGZɱdt411!!!_%I*> "`ĉ޽rԩSSSS š5ktV?~*&L 88f=ܸqhԮ]OI7n자@-L'|333<R.dDGG jBV0Ftt4B8!$X,Օf͚͛7ﬥÇٿcIiNRRk׮Ν;,7oСCtЁ˗Ӷm[9VJJJ1v~:Q`jMy^"!!8 PWW:ѣG ]*))IŝF),%ٜ8q1cƔӚ۵k֭Ot\׮]177ߟPbcc4h+11nݺE166ŋbbb~1cɻqUfB. u4@^~z! ڵ:#dĈk.RRR`xÆ 5(xq"CJ`` c1cc*QލBBZ .p97nLTT[neذayf LOOOd5jۅO<q 08?uoYYYܸq33GGG.33iӦƉ'*ܷw)<#Dy&;v^zT, ܹرc3gN;wΝ;elڴxaOHH7nDNNeeeϟFEGG+fϞ-JhbnddDZZ{a׮]ELJJxyy[N4lݺgV(IA4i"cΝ :"++ãl˖-q޽Kƍ+7 󪲊l֮][|Kyru\KtRϟÇi߾}8v옐e˖<~Ⱥe4';;[.66Yfv7n111ܹQzƌxxxH$BGGR̙3{{{,XP=ʨQXhQOQΑ#Ghذ!=<DHHH ;=$B9ZZZҸqc6m L0ұSRRdsss1c`.UzzzL|---ټyp~Mvv6IIIdddH-UUUCCC999 133~”ӫ}c3֬YE)}2334hP'pppԦVmڴEDDбcG ccc+t yS{tt4ᄇӧ/GJνY 5HU'))uD4i҄FWPV- ,,H( N{%رJ̉nܸY8}tr Z|i(p?iii;wgϢJVh֬0HF Vaxx8aaa#^zj1c}ƍ긂ˋ]bmmVVVbhh^Zff&111DFFɫW˗1aqE~j*gsDr L:;;;<<< ",, "##IMM%99w ꨨ! 8 x"@ `ܸq2===pˆ({@]]#-+++  n֬YzB;F`T4Ai|\eDHҲ xs4IDATrd jժU.*11* }Q__}@j>/>(|}?k>&?XIENDB`pychess-0.12.2/pieces/ttf-Mark.png0000644000175000017470000002226112642235661017225 0ustar tamasusers00000000000000PNG  IHDRMbKGD IDATxyXSH@բXTnSuk".kңU׭*EEj-.EEAA@dCL f;|G̙7sl IRvBH$tCё 3:x yGӮt\Py]'-8b!-8 rss؈>}D>}TǏGMMMM68VZrF[[[p\L2  1\.zVtG#~ ڵk`2prrBGZp7"Qա \: B. 6ykjjC{cccz$ abbccc\xÆ C:"""S̟?_"o^^^4 J?vrrr$y<<==4@̯0@0_FjޱGUU۷P^^\ܹs\.-JtgϞIM]XPPP VXXH<2E@ ߠ~K)azeE8r䈄^*_ N PNon+S^^k`g[S5GV.U1* | '(oM8&M$5ZpڥChY`ttt4 Ђ.uO-Wk$ ˖-{6-޷»hvk׮}cק{8vMB ]!:5s#IRHp4 -8vMB ]GӮЂM^Zpi>v $-͛rѣ^k׮)+o[K*BTVVҥKx!FɁ#@$3;;ݻw;|Ryx -^vЂ{455ܹs{8-!!2e =!IҤ꣒O={^R UZkhh@vv6߿r444@__fffptt]o38x $w.577HNNܹs `0|>ϷݛTVVږuϷXgry^SIp| 0qD1Bc:+B8}¼999غu+.]~w*==[SSCi~KKfkkͲ^WZصk._ .+W">>yyy(--Enn.bccl2l?GCCʻ(Bߧ$6 ؽ{7eT*$iqы3=[WW}$KdQJp555ؾ};***0{ldffb֭pww LMMѫW/7vBFFN"l߾]VVΜ9t&۷٩}^^Rw56 ooobϞ=011wŋo߾,8@455$I=zrXr%pN?,UUU8|믿jszW2ǎÁ )91x?|޽{ޟ) ڵkĿ/|LlقӧȬ# 5bύbIg)ŋ{.xb\(bxK~~~ )uz*,,,kUǿ!?3p9 6L맇:O>ŋ/dp0sLXYYNS*"&&C Qk߆Քسg٣0_aaNrrrZ\eB,,,Я_?!C`ll @p$ZYYvX{PeQ /_⫯R1Guu5<<<(RepqqhRYYE,¥$8 0uT0LDDD`B|78wԺ%wa52rE4W\yFu֭IQdXXd ttt@8JΝ;fvj6:ކto߾- \PG)_.(1k: ݻw/;;I`E;`}r*{;[Q>STM=K`ժU֭|?#Gƍظq#rs޺uHaȑ/]]]Ǒ$0Jp]]]L>ryxx=\^^F====u՚ޓxm.r8ùst022R󓆥ZC?\ Њd3fVuwwWK8H)j]mEMJyyNZSf{8-9ǡCJЧ oo(F>&MMAe6{8vMB ]:n,:gtύhZp4 -8vMB ]yc۷o_O?M]Y\~=|VFjmys"##-srrvݹsg… DmSRRO `00s̷օ;HMM422_lPf$Ť$L8cǎQ;,Hwƾ mmKKKm- әsiSdb={6f̘-[`С}CA6m`… sN 999xF]]L&8+ڕLEFFnܸzwrrrY'bȐ!puuŘ1c0vX-k9ᑢI1 ĉ`___EHHVXS>C)))% v(((@BB cǪt OOzzz`011$߿j9hll3f ذa(b9ܽ{O5O899y ,Y:u*~G^9ҮJZZy477#)) ={6LEEE9 **J|B=؈'N ,, I, ΝÝ;w?rҤIΚ5K2deev>1j(a„ غuR&] 8qBiJ>|033\Nz={FX[[cԩ055BK.ܹsc֚ͭ>5kzfs  E\\\prrٳgd2qƷ+..FTTʖ3 333MgƏq gΜ[L0A|{e]~T2O?ضm֕ ... DSSBCCi?^Sqq\{ב) ddee!!!pUe>s~Ô)SIII?'۲[ RSSQQQ1cKk֬x\Zp0|@NNZ^ۢ|ׯ_4DFuDK٩S...w(޽{7ܹ裏r`>/h6`EoPެ[nVx hy~,b )S~VVVpss_"##u9/ akkp,۫0|pbٲe`X6mv+jqB-X,z=: ={jI9sR{]7o;vO*瑔>aÆ5oٲeedR!Dn>ϲD466=zh͕1l0̝;W/).\u>Gݸqc21m4*nMo@}}=Aa_ѷo_ܺu <OiXp!`׮]rʂ@ @Ϟ=m^C&eee]:\SfɺpLU<<ݻ<| @QQk2 vO@ss[s:jp7n8oll ___u/AӅPn]cǎNtB|III`2pssÌ3ޚ34Q+**Bqq1,--QVV"XZZC$ɷ{x.]333X[[#-- Dqq&ڨ6k֬q=|+W޶mM (--Ett4 ^zO?Q5558y$rss!yg̘.&o]]N:l455 `ƌJ:wT\.W_aHHH@ii)x<ك˗#??_I P$Ig>yuԩc$IvS|7$) #""3񨽹9998qD^D"ϻ\p?: Bرcʼʂ`YjrrrPZZT̚5 MMM8pF6Zŋܹ1((G9sAEYYY< LwB[O͛7͙3索2`0HKKP(ݻw@wb̙ͯs̙3N7oFf}JB( `/_/V^HhcرcQ[?q > b(++#9r2 `(ߊ+322ǎ+:;;?DQQ`(/Iݢsss@SS^گ_j0M(Mt 9r$zccc@ yyysqup\DDD&&&BKK˭jYH|/_ _N0*HHH3ݻgggt`РA'O89sSL;Hĺu,XgϞpvvFbb"6m$;::>䈴sJ^HAAAZ5-6 @hh(O_~wVzW^'8ʼn(*,SHl׮]ٝrroHx)vRKӧhll[`ڴipuuō7).{`lz)abbÇ !>޽{H5GU{G("RS$;2_7{޼yuTY zާO>6IENDB`pychess-0.12.2/pieces/ttf-Adventurer.png0000644000175000017470000003664012642235661020460 0ustar tamasusers00000000000000PNG  IHDRMbKGD IDATxy\?Ӿ/ZVH%-JǮ!X˖)N):8P"DGTJ hJJi~3ߦujƖޯW/}ˣm .hii͝;wFll}WSS{DߒBXZZҥKWWW澇`>Mܺu >|U_ٺu͘omsɓq=!'' @n7~xĠ EQQ.]Fd'Nٳg=zzzXd bcc1$ntIII߼yxcc<˼޽{GS ѣGcѢE!v,\999l޼X|9JJJPPP"7n(**"++ /@ ahhp,Y222lILL\USY[[w#vvv]ϭ ۶m[+uA~ǒ._\~$lSSS6mڄT@EEFFFFXX=z777# RRRšC#Gbbb&\\\0<|K. \\\ ] [fӦM/^Z=:<==={vΜ9g8@qnQQ2kwWOOJ}}ҥKN1[[QQQӧ?F[VVVڵ pwwǙ3g011HHH sss{Nut]f ,Yׯ#((BBB ???/\pル+;ܹk֬Ass3.tmt:uY޽޼\WĕfJlK_.UUU|NNNz*6nH~ֆ3g@SS>}vRʊV@PPaaa(//&Ξ=v@uu56l؀899!-- ~tH311ݻw&/o[۷os >˗/:@WW>|@pp0ƌwBNN011ѣG!!!7=۷o1uT?1c@BBb.:ptS3;;;޽{OOnvvHDGGKIIay) ::)))dsu۷7mڴ˗/`ggcǎ)dW}}=?Z͛7 CCC,Y~~~?>͛"###G}}}}r<<ݻaoo cRRRعs'oߎ>䄳3޽ @ea+SN400tttJݻ`/e~xxx3g;)`ggg ܹs`&Ǵi)6lDEEus={غu+[nErr2._lmmakkߓ;Yby҂UVɻ#9sTVVR[^^9sup}mڴsDY5,\ǏԩSQPPDL0D"ǎXn<==QSSCbb" n Gg&L3rHF۷4(pqqalkk#'""55nv=###!!! X\~---?hnn͛7{=G\\1{lQ3JJJnq ?f&&&3 9r${SUWWHNNFnnn6JJJ'tزe 3g`=onnFpp0͛[na޼y CKKK8wJJJ`ee={[?0p]]'NȌ5 6669s&444mRCuu5bbbK. SLp_;v,݋C]]g?͛ƍùszWSSǢE ..^sH9ܭ[}ef_&ӧOcɒ%ƒߣ%%%=c BHHPSSäI 'OU[[;v`ը ]UUU@BB???s6qqql޼UUUDaa!>|]eeex!_^m'..011q%b NNNHNNF9Xg&LE… (..FUU222wuT^^9XH6qqqXn (--qbee01j(B^^<<< CK!pUUUhGpppQRRBS?,,,ONNN?Łݡ'''@ `8}4= f0;;;̙EqF/5AHHطoha``!$$ ~:]Dlllq\)5w\,Zv킃|j$022&zXYY! h-<{fmњTTT)z'/^Da|rĉ9r$.\H?4AWW#0bm'QYYJdgg#-- 111C~6Ā=:::̄?%%% CHH<-[Pn$$$˗Ѐb$QvGGG!##޽Cqq1***PYYI_ +++0b@YYzzz3qÇNՄ1zh h_|Ahh(H\z>ɓ'×/_١VrL\_36477k=455Q[[Ǐj[D[[3fŋ3;v mmm־\']Fss3EUZ#::_=@8455QunO"PQQI̽78y$0g;UZ477#??999ADD⠤^RuO 4ܹ=vXPlQZZW^aҥxUUո YYY333ԄVק())A^^")) 7#ψ,$$$;fgg1| hnn&2񁍍 ҐDlLjMvxag{HR -- eee߿p?3-o*++[[[0A$aiiF033|2V\ VV~h!&&pUUn޼gϞťcÆ yyy:h233_k ,\ ,mȁc#ē'OȾpI:>}Bxx[0NSSضmPXXǏ+2ػw/v 666ǏK Ν;LLLƖ-[6˟uh[׮]8qeXYYo*޾}9sP; $$@dggS$iWVVƩSf͚_|?bס᚛9G@kP@FFʔ2n8s ] cǎk pwwB`` ŋVRVVxb7⾠J$q=XZZb޽ػw/!gΜ)B^~g---[x)&LIII̙3PWWǤIƍ7MMM 3111ToTWW#(()%%岒Uhr/_ݻͅ$-2XXXÇ,9 =hXXXAK >|8CV|ɀ ÇT3|',,7U{mwȑ>EP~޽{EEEjyyyՠ 77 555u`jj#G J[[> oippp)3h(@ `ffGGG\xs8͞.DEEΜ9҈ѣ^a``WiӦ!55NNN+Wn:B^^ 䟗/_BDD흍IC*A/fgg7H$b۶mGcc#IXj%&&mkrtرc)H|,G6c 7Φ>p&zl?!!!>}j_Y888(nOG{{;XXX499oʔ)l܅nPZ ^^^n577qb?[*dddzu6G\#RRRd'¡C`hh066| ?33zŊ]iARR Ǐ$i&000ɉ)==`O jz%c`ɒ%Ԑ) s988ȑ#sN"//oUa %%wmhh@}}=455!&&ڊR<Ȉ5ktS,&J~~ݻS?~'b055ũSg\zu pڵ'r8^^^&Sr̝;5'''6$fϞMk޼ybbbuր;K߰Q6==J|lPg``;;;466ٮ۷o`.3$Yj7C\\֭[Gkzyy1_[--- S8q"Y_ǏGee%agg @DDOwɁ60o<̜9sT6r8]]]dggCGGAAA#;_cc#rssɓ'#33ӧOe$111YD"ΩSD^IMMjWqDBZZǏw ͽۑ[nAUUeee(,,+++p p8~8jjjpBHKKC9991zh,\%%%8y$>}oAQQ֮] kU///eڵ4k wGIIIDFFTIGG1117nRRRMt\o999{!ɁYYY IHDSS<<<`ccqqq000@@@r UA2bee'''ASS;' ^^^Wttt;'ݻw/*rrrrhmműc^q磽9>}III wFmm-*++QWW;w붐,Ey^x׃@ ɓm]Cڵ+3 _  H[niIHHvn3 =z4N8z }1beIR'OFcc#>}>JPSRA0sQolmmQ[[ sssܹsLkKK˔ji7|||itzT/ܹsXt Yf L333_өʉu˪CDD"""%K`͚5JR7o̘1#QSSbHIIlll͛7YO_|k׮QF {{{ܻw!'',^֭CNM?5ضmh*Ѝ#99==^xqΜ9u… V;z%:thFt+3B$Nwg#cǎ5gɓ'ϧـpC///|qo6:4 xZ=z4!--M~6ƏvQQQT)SCXXXق ܖ4µ~ͫgbb"""`ddgulٲ>Kt}w}$%%E *zMs׹Mŋ҂ 9Rb1hB%;; S ]e"uB](((ZgӧOs}!&Bxxx000P0a?S"z>ׯ_K2 11EBB/mݻwۮ!ӧKZ$ M9SN}{ͱt4_<<<(V3*ސ67|W[fG?w7we֋'ԩS͛iӦG6dgcc -13i$`ѢE C}}=jkkAlK]]\oooFk׮333clnn޽{K.o?,^^ٸq`jjʹ~5jkkq1kݻOi6jEFF*ח!**600HEEy544%hllA yAEEA{{;Eߙh-5**ɓ'3f@zz:?=|~||O<~x?Ç1g >>~HI0.??ZZZ(++åKX+**pmTUUޞNZ8IIDAT@ yl) prrb8|0ZZZk_III˗/d)-[GE---ظq#ܹrDHIIʕ+(++C^^ 33m/_Έ|& ())!++ JJJ? 燧' QQQrF>M}˗/9::233c˖-Յ>> eKMM>8{8tO]eԆ <011EEEtz N< CBB^ mm^ ,ׯ1m4;wN… yqqq$_ܹs8pP,[ x֭[P <<7A@@]#s4aϏ{ >#S;p@AA 4 =uztׯ !!k]brkWΝ;db۶mX~=JJJ(I0{lvhhhG׏ XhkK000t5;3vsÍ7caaGc8qׯ_֭[1uT`̘1prr )2}}}\p… yƌCfTSS`Hrua0X*us7n#44gϞ+++y茸8|}}ׯ_-Z[[ QQQ,[ ƿKIbI2""bπCCCAD"nnn066%yTTT|δi|' ^ziARR>066,--F!o޼VZwu+#-- nnnXYY5Κ5[ HOO9Z[[ajj`ɒ%hmmŚ5k*wd@텄0s_jjj6aΜ9`ggǝ;w`mm .1}tرϟ@QxQƍ#ٳ hiiABBգpuux *߿7oΞ=p:u HB: pvvT122R,6oL~S9XB 3L򰴴522q@*vx; CRRRRRx <<ݭTHKKvvv30y;@444`gg?/^@MM ;;;#>>!""$}JYYYػB=ҥKQQQ1t[ ۷TTT0sLlڴ aaaxٞ|H\YYBCC+V@GG&M4CNNN8;;S022Xũ۬fԝ;wuoܸ"ꚑ;7o6:yde 477]TTMMM}6޼y5 ֞@ ΝáCp!prrbĉ011oJ EUCWCCChhhP0et|rFii3f( NNNTTT`ʔ) zlllPYY ===޽:::6mZ@ ,,,S| Μ9[, :S羀EǏ c`aggGEE?~jjj0669\]] ===k.֭[T跆ܽ{ZZZ̀B9ZGl]+ j;v,舳gҭ+.\{ܼ[P"ə.>>ubbb̝W,...x{{ʧCSSt3탚ӿI?vvvҵrpU555 vvv4֕fӧT+a׮]t+vB``7Ə[)?y6T=ۉ5|oAZDEE??T%Ђ2335~-1cFmrȃMMM4F6T9]?Q_߭GQ__..>7ǏltZZZSӞH$_Y*J=E+߲Bwaa+7w3KK{;x qx2p|Wh wTaOHJJbҥ\Acc#XYY)4r}||JlΆ V^MnsE4Evv/BjjjPUUٳgc9sQQQt{H,XR{Ã6HMMԐ(Isڒ.ܶm;hL:T=-1bYE35:znXjlll@`aafj[tRR&N]vM7n9?::Yj~~hv8"kkkDFF͛066_///zG3Q455K>O<'qm]2淦011EOڟ#իW/ĉa ׇkfYYYxyyAUU~\]]q-:Y2kHKK=UTTTl}gKK ϟBLLLtLJJj[:-[Fpww'JHHP=zH ,CD nܸ$:X,XK.!,, 999兎lقXrǓrJQQQ$Yq šG֭[A;ws ŋ݊-h"l477tu8MMM;NFF> SSS999hۃ˗/GII PTT###ttt`:Zvv6 ℇƲesL:rrrٳg PXXH1{-Ν;[[o Kr8]ᴴvZl޼iii6mBBBpy$''H$vܹsqEHIIח&,, ???ի000Ν;x"7o k֬NVTTl(..j+͡^^^ϟ)TWWի---j qqq8z(كCXXBll,PXXիW#88/&L‚%K ((fff(**;^|,BDDFFFX~=v؁UVa֭9b ĄBرcĖ̚5۹`eeQW__---8~8ȑ#-[laŊ۷,:̀ Hiq7n܀<<O9r$n߾"==mmm͛l$lmmQ^^(𠱱g'O?~HݹrJѪE,,,וs@@+2220aĐD:vVJZrʑ_|;;;<==&7p222(**CUJ:1cƀJJJTCBAA\\\HMMEnnntܰaEEEpqq!g*baa={pUBuu:<}@;w.={|}zUݻhmm%:8;; ۷o'_APPn3d###{T- ;;;HJJaaa055t#dWȈQF: LMMqt@]](aaaOM9ӧO6mtQ^^***ڵkZd.롤]vѣ9s&U͍sΝ;066‹7]{{{gϞMܱcJJJ!!!@JJ RRR[sO?HH?ƧO;w ::JJJؿ?fϞ G=Kmhhߏ7BGG*yΝ;7oUNKKƍѭ: 333ڵk /_ʕ+A$uqԄ<4W0a___XZZח6 ^Exxx}bluuu'?z777 $$())F1a„~OzcܹH%(ݻxyf@#GĄ CCCL074~0:\}}=mۆ+VC[[!""aaar[@fBrRdE! 7n@jj 5j>'''qɒ%1c XZZ<<< hiiA]]g"==֭CEE ""Bt3555 (++M3N@@ްcǠfnOTUUǏx\AQQQKRRCkcY;::͛tӆq`8x /_NQwWϟCHH6m1iҤA; ???&M;v`ƍY:q<< ~\SSi0+^lGCCyA rJ\>}uUWZZ{!""@iii=;#GB^^5kJKK'C!Ϸ_cccѣG1a`Μ9077Lj#?=S@ee%'??>}޾}K$3hnn>++ka@azc(dnpptt$nkkC^^ /^*""111cٲeǃh6(..Fpp0޽{duuu111CYY***000U ~ 믿,r{nnn hnnݱ@VV3gDII ]V[8}4_@__ ^^^mD"555LhjjBMM jjjE~::Zl?iء02ы>n̙8y$YvEEEBDDyXmm-ϟ1}tDGG𜜜\999zQ b99_Yѧõ@VVmmm`ffF{{;ڊRDO:::PVVF-..FZZӑyyyH9֭[qF q̘13f QAA35RPPб3kjjx322RSS شi $$u>X|9TUU3!99999k>>>Z\HKKCYY۷oiڇK@$Gx!!##N )4DTWW3̀?f";v,SJJJܹsmwW__ϟjjjPSSڊXYY!((fff$%%Q$!?n@JJ[dAYY{YY2fB=BVVVpIAAADŽ$$$LJnv=1(ҪgEHHh'?ڎaS3? Y:IENDB`pychess-0.12.2/pieces/Pirat.png0000644000175000017470000002155512642235661016624 0ustar tamasusers00000000000000PNG  IHDRMbKGD IDATxy\Uǿ0 " !PԌ45' mq9mznu-lu)& D!GQs?6μa:χk-6Y{ﵞHVX a b IC>󇡱^3hMҲ\z[o֦,8z),,$--<ڴ\ U6d̏mC2 pcAYb@rtcW^Ν;uiCnnڱ7xTJFFje#FG ""2U3f0_R߁͵ʾ^"̄ݻw9UN4\QQUTT)炂JKKUڊrIl(`4J@er*ݬU& < ,ٱdclٲ"F7#::DBaaa2LFN?0GĚ_DhBϳjڽ%B5]~ׯ`q :0؄HJj@bϿvUСCٳT"""())1]YC^^GE͛/&,n΢ Z[Lu666xyyѧOwNVV OOO֯_ϦM$##ʢGGGzɐ!Ct^fap&L͍ǏԎ?Hj( HNNV;~Md2zooo DQQqY]L&cxzzjYRR)L0;;;ϗH$3yf?8p=Hzz: cbjj*EEE$%%P\\LLLLcSRPPƍ)//~D¶mۈVU]]ĉ>|8{wg@v |}}'b }f(%B!@308~wڻv;v <<\1d2'ooo999yjaҥiܙ3geܸq{=Em ,,Lx&J6lDmwϞ=,_,iBit7i-Xi4 Q `,f5i-&mpaaa50e?ЃM@@zKbQgŢHU)8u[b:Y(VbQgŢX 08D'Mz)P(d|X'9r͙ׯi&1ƒSO=e'P-_fzzzǂOv` ݻ7od2B\\7rrrQBBj:fF*:u=$$dE7.p"$3el'&pUUU:t_+ իnnn̚5aÆ$<[*999lذA/IIIH$~i3LiHMM.]+**oEn/7|%G DG4r}Ǝ[lĈ( njRy+D'//HֳgO5>z$&&r sQI\rʕG޽駟]z57(( Rs4Zn-uʔw-E]>Ҩ ͛qttXg\xCT2Vի}}}}$$$ O`t&dҥ8p@)_stє., ["P(QbC Y틛8qbΝ;WӖL~K Pڷo#xyy1ydSo={+W^yy9{^]0nܸwڴi}k'B/jcc3<Bs4vN:%z|-+z,BAAtڕ}ra&L FMwjL7ߨtkNZy՛ܹsxyy5ڒAH0Q_dرcL=U!q.FP e`?n5tJKKbx'y%akkˤILU2x`z2^)n ښ`7׏L5$$$oooFeLWMwwwϟoZ2y覣=Wj~ti( +J?~<6662w: 6I,X1ٳYju^~~>5J"t!ٚ;#Y|RDBǎH:êӳqss믿ӧOde`lJO,~Cxp| 8uZn=zе#Gпڴ1dͶ^~a=UAP(ؾ};ر777_͝9pEN>o?SRR8ydrR5SNq5Nj/1W`ȉ' **'QZbӦMTUU}vK5ڵC*rIn޼:~6nΝ;)--֖FZ$NKKo%99Yur9qqqܿ_?g\q%p2_~#Fܑ+V`ѢE4 d֮]K>}(..&##*7LJǫ1ί/BYYwc:G}qwwgݺu %Mߤ0G*SԓšC]\\J֬Y㑒 $֍͛lܸ\Ξ={<[8y$s%66†vn+3X2hРcO<~ϟ?SN?,LX7֮]K֭9~xnTlٲ_|C %!!]v ~757xdƍeƧϢE+((ț4iR"B0ZΤ@)MߥK>5hɉ/$%%gsIL_wG4w vvv~6l~FHRۛ}V~u;5k%=T0517\~ t'JImժU_"RM6y|ߟ㶶|ׄZBIL SR!cpK;w|_oww',GG 4}II 7oK.5kѣT05`ܖ-[C/H$c$M&55+Wl2h1\.g߾}b ILxfwT[m۶0`@1/zXʼn'`6E߾}Yx1/^44}TJR( 1իW09^Abu@43/] ך5kA㙙jM:D¹sV!%%|rÇܮ!EηCBBLq9xCCb]J!C)$!!ڻ jҦM?)S!&55Tp9_|ET*59񂛛[Д)S05uw֭[Ǎ7T_  |J%NW(([[[<<<<[")))&^hkk[>}P]]}mڴi)\>s|kyPJ=8+qqqMTtuuU;ng-obT05> ,XlTUߡlݫmSjBˇ|]vK,,HkC)Mzj5"SEP%MPBЅ)t#W^9hgg篡N߿j${Qcv@ĺ. ݻwYnz#GdʕZoݺŒo$%%ZIP A3g"## f*I}8qHi%#''wը\:v쨖4} %>jԨ^xAm:Ab]_ڷoϼyXjQQQtY󊋋}6G&0ШzTIIIy[&66nݺ Ae׿n~ "LxןGbG箣]5jfMUJSo9#G0f̘; e*4kWW MI0|Os@$;tV%J㤢]v4HCUU"b-4/aO6:H/ugg.\nkk0Vv(S!w^R!s%ܹs[jA=d>R#o2(S!}\.'&&T .ԩمQ1gMXQL`hYY]t6jԨO=IaF\ot8q .}۷ J`  xlܸ2ͩ12J7:d2m\xQT|۵k]v2&(M1^{M%5S7gu}hbKBhynVY(,n7zVXpV,X իlݺ~M&4CD3BI1x;vn-gnSG3uX~r9jǮ^ iiije]vmJ tOբ1ફUʪaҤI ap֛k}a&4111uoT*%##x#F#39\cٱdclٲ"t` DR<{>P[!I_f2)_i`'0-)(**"((gyK.'***(**? 0eJ||Ǎ S0o`b/!!{!w&((ӧ'|Btt4BR)ӧOGPxbd299gPƍGqqD)RTTDUUNab l@X8p!|`&ۃ888%"TN}н{w TEwؑ_dJJJHNN&++"U!C:I6 _?(A^v֭zi58BA\\SRR¡Cd :Q;;;Ξ=K||< 48z(2ӧ0ad]`'N0ydڶmD@8pLFDDӦMSI{n^~e222pttD̖Iqq1111L4j.]bԩlܸW_}Y|r5!J Օ9srJer9 4'|YȈi4[nqI{fRtpp ,,^z̝;wd :BAtt4UUU|'u.TnصkW{4wqضm֭/\J^z% ֬T4\bb"L6Mɽ{f͌3(JVV23g[oi С=zI98 %pF,XVs3t~?>6m;v yX1# ޽{zG4-] 6o̗_~zPF- 󺽽}L-ԩ(gt͢VgmjMQg}bz쩷2ו&j+ 3\Yno:R Ыj{tb2dYQ=xKC5ߗʔ+[QCݛ$fΜ?LV%@c',OQjmm6ڮK(wj Cش4epVlll'""3g~z[}^l믿N``R w)5!!ajiѺԺukY~=se͚5Nz͝F.qF,X@޽9r8(IDAT CWd׮]{Μ9mhÆ #l܃(];pUUU7tn{{{ζmۘ:u*7o\߿{ǪUݻ7?ފ;zꫯ>5~gwk`J޽ݻ8p vg رc]i3f **{m۶iP/Unn.SN̙30x`1 B1tPgfJRC6h|IB`lwt`lذW_}>Ƞoeҥ̝;:>7Çg޽xyyi܊ SVUUEee% 7HkUAUTTɰaX|W^y .t IT UnO6 J+Kn+q:)Yn]#G \.'::WWW~iHRV\牌dM:Q.˖-K.zׯ૯2+=zӦMo֮8n޼IbbI#Zj֭[ dǎHb1U#̙3S'/1Knnn޲&<N<=׉Xlذa`rri}gee0JOrrrl/ϟ=Kc/lpGNNNݻr <7Yl1b @SXXaaa =FΊEi*VpAIENDB`pychess-0.12.2/pieces/celtic/0000755000175000017470000000000012653231274016270 5ustar tamasusers00000000000000pychess-0.12.2/pieces/celtic/license.txt0000644000175000017470000000006112641567764020465 0ustar tamasusers00000000000000http://poisson.phc.unipi.it/~monge/chess_art.php pychess-0.12.2/pieces/celtic/celtic.svg0000644000175000017470000024105512641567764020300 0ustar tamasusers00000000000000 image/svg+xml pychess-0.12.2/pieces/freak/0000755000175000017470000000000012653231274016115 5ustar tamasusers00000000000000pychess-0.12.2/pieces/freak/freak.svg0000644000175000017470000072475212641567764017764 0ustar tamasusers00000000000000 image/svg+xml pychess-0.12.2/pieces/Alpha.png0000644000175000017470000003257012642235660016570 0ustar tamasusers00000000000000PNG  IHDRMbKGD IDATxy\Uǿ3 ++o>^zÆ 133C*r~XZZF dz׳@큋@!;TQQQ?~իWz*g\||<~~~*G8::̶mTO6 222^8q"-[4dW=ynluFjzzo' ١hԨ<~ڴi35һjmp䅴kjjj&=+gi(n$32`_*aÆ4lؐk׮AҥAڮ%j߼yrrrtjW#`kr:K^44D.\(ޕ+Wʽ YɳVh 'rCvF&MZZgggJw8x1:tP^;;;7oQq6j4t-<5;fr.^Hpp00x`e۶msEܜ8obccKaiiI>}ѣbj ,T26e޳>^I,ݷBrrrغu+7 ߿ODD;pyKZZ{e׮]ٳǹs???"##>Of̘1m6VR wӥKLLLt6a, 8US[2|~y@0#s :'J#==?˗ӰaCdРA&MUVZɎ;033cĈkNnX;:"L%*@V,5eϳpFԩS$%%w^zŁ9s&yyyݛM6( ֯_=111dee@ ||73c .^6l`РA޽ÇgTkSҮ];,,,غu+3gΤEZ׍bǎ;4iҤ2oscSҾkgЕS]Ueݒ;e۷z\._ܹsի{?,U&88A`\œ9s8vƍӓvvv`5lJ96.*t.^ jhܸ1b3gРAF(w$ 'N$99'bbb–-[*;j( H+R_C6e˖OdgghѢRFuݻzKXxxxŁʭgnn΢Efɒ%nZͫa)U!,A8.<<>{fVVV;RkSӧOC=7n1|&Ç--&\׈h/TJFFՋ>(FJ eei#6 08s`KHbb ...111\i+%%BX,6K,P(HNNahӈvΝ{sȐ!QvӀRE6]ۭ7bZqJb ?+*bm۷)H[v H.Z8H 16~5jJzRkpTDUYV)rTm…JRԚ@RR$55z1rHnUw!슼˥v{EG\\yyyWꀼ QaOq +"##C!==Tk2zd2yyywXYYl֩S\W`MJ.==dӪU+zRĄɓ'eR)ɓ'WF EA$APoݵ=G |}}СCG||.Ν;nMFU}ӷ~GGGWGGǦ;wy:~g}D"ʕ+YdIL&c… 2՚r ÃٳgRhE"ll8^}#zR&44ذb1QQQX[[2vJtrroo߾ۗoV%Sr``!3D"Zp 6Xݺup1EP lܸ{;vVر{7V [ոʬY_E߿?fUm;w䆰0ܹIKsG+A2˗/}v֭[2mD"{V^+WSILL-F/5JBИAKa/^|{ٲe@evC)#񟓓 S9 TY-Bӧ9{,cbbR*{\QQQqJCggg=JVVo?ꙮ<ϏMHOpppi#{_=˪|Y= \P^=ɃƼ:ܵk׈+N4w\RRR055mĄ&Mǵkڵ,5 GGbu!}D> Q9c=KQTTrt2]֭[>>|dee:Նf[077/HOOWS:N1t68\Ξ={[.+W, `޽L89!!!Ʋs6 4eu1mJHR)=q4 ٽ{7>}kkr[YYo>ϟرcRKhlmmߑ.X[[cdd-QQQE>9](((NjRRRسgyyyi\ӧחcboomkիW_=hժÆ {]<>4DRrPSA .>>m۶ѨQ#N:ѭ\\pѣG믿2en85߿v+,,ɓ'<|NNN$$$r )))8::i֬!~fam۶U4Vhpڵ 777W٪U+Μ9èQصk3g|e*/BA@@.\IA,3h mVރuݛmbwyʕkφҲ*|0sYYYlذA_T%##U½Ο?Opp ;bjKQQgϞŋ:+C}*-Zann~z+W9#>>^MHB9%lj.]ҩH$o߾+PrVQ]eƮh\:gϞ<~ !\.'77co5J$??_ySSS6mJ߾}KI̋D"<==iݺ5Νőo呑AAAMd-0=N O>ཪIo|eYDUD"ff_{5&LB<Pt_pҨnbb;HBo+2Nҥ٧굼tj 1TmWMT V;R5Z^*/jo 놠Ix^g0u}QJ[[[baaQz++߹s' C1LlmUaXbX4͛ fUQ"R!j{,o''L0zIKIi}!H:ujITpuIWWל+&Lx:t(ظ#| {Qpi 'O.yk*2BDDD&7H*} ;*&ZjwddMLfzݛ0ay'$!,,_~KKK.]׮]ܜk8;Be npYfY)))7>Q*emnVhhASSS:HWSNɓkO8q^4}F }:QQQ/Zڠ>XڮR' ԢEb mofoo?x?m)'QbÆ UZ ><<ӧO3`R‰Ǐ'333gTOE NTpQ*ûۿA#fڢϘ2e۷o3g"""T{̞=e*MAbXT Ȩ|ȣGHHH ,,ݻwcnnՋ(S!Gxx^1!ڎ,$G}q֭fffmt칋Fu]166&??ɓ'3~xhѢXF CHH"44xIW*M7 ;T|冗Fu]$//Octܙܗ%M_Z=uZT*] N1666SnJ*`ʄJik׮\a7o{Ue*F7%YYYN}9r@ݺu^ #77Wd֭+B*I$^4}E "O߲DGGW*.'fu񬇇RT"<\I߽{P>s8AXt)/SʢLPYHS!bpozI$fFuMh+MsN֭ӧqrrܹs8::f}ݗ%M_%QB׫R!bp]YVo눣r 5&PRRظ8^;;;W]taĈxxx?oͶm_OhРv"$$R#--ǏBʡL):.2M$ү{ S3(7nѣSyXf oF4yHOOgټzxeȎ;/G)qEE A! ] \qSU DNt0K.FF~rwa$''_x1>>>,X-[jl]vo^_i*>QWM* .%%~nWK7=e$KqC )14ѣ˕7oV>UM.%KR2.%KR2?oWJRUeZiQU *jGZ^*WK`WPP@zzZ31j* d-5}SSSILL$!!qrrzV7P؎D/ AN;ZBo—W^ի *6lRTm|hUT=z\FDDDЦMiԨ! @(X^MFDDDtda=O3GHrr2۶mS>m4\\\P{}ĉ:Tu~kذ!}ysA"yӧԡKB DdYYYh?,JMM巒)3ʳ`9uJILL,5KԩS$&&\JM θy AC5S-,,Z x2<7 ssslmmS-`iiYnݺ+:ݼy\ʺsRdbD+qAAqqqc:tKLLL$..Bh޼?PL&sEUX<+s) C t>qFqVŞvj'˹x"vqqqa8;;˶mHMM[n\zD077'..zӇ=z2Z+@HHHHN}An%_:}V: CӠM65{]Nusrrغu+̙3xrrrƍ888ٻw/H`` iii۷s답5{%&&._g۶m*]"$rpD-[2w3tYג|嗁-["rUMX3&&&CFN?-Nf,_|BV;"#GҬY3ٳg?N#T*eŤ1nܸ TܓrssYlk׮eԩVV(xzz@HHЩS' K믿fʕ̝;n 7OvzwQZ :ңGamVO>cjjŋG?Y;'OwƦ~?غu+fff:* 2e M4Ѻ^qO\塒D"1ѣ<|5kh>er9њD={L]t??pLڵ+5554mڴ3QrZileʗڵu;xA)ouI߿Ç+M@@@JT222055I~ 6+VP(Xb}IhaÆH$ !oߖ~7e2 0 a*VC722ʨSN)ٰ+V&#"eJXYY122sYd2#<<<!u\a ͛7 o밨<\Ufs>3M7CD%e.@.]D"cff;ΫѱӹsHg'MݙVbddsFFF5lmml{=$ zҩ~RRU\XGweik&{)*,YV$/^#FHF 555m;D=77kkkLMMQqJ\ƍvbbbB^HJJ{8.ہД^ 8p!ҲٳgZZZ] 8P 4hԔԾU`NDyyyZ ɩpVVVlْO>DU//A dggdZnۍX%!!!:M6quZ۶m:thƦtB6znnn4hPs GSC; ?M4|rЩBf黳g϶L8̬R³fff L>ypeRGnn^#\RA̜9Sqʔ8:v/f888h] `ÇIR5 !G˫Fp 4eweҤI4iD ; " رc^#=%68epjEb1׿gϞ\v @~~>q%IMM`ĈXYYѪU+:t@nѣM6-vGfРA0f}W֭[Wwbآ;/_?|AJJy^^yaz\]]޽{33<].pHlԑ[iw{{{5jtOۛ[ҹsg9µk}6FFFt֭҅[3mڴR92_͛888EN7oRoooԩ rɓDFFcS__߶mw^R###\.<~tƍM.] ;::ޝ:ujĄ Ξ=; PM֥2 T jD>r?mѵiGGGOi߾eggƉ'شi+VoooyK+AxQQQݎ;x:f̘3f̈twwo"mUd_~ƍuVZ?*;S ^u(=w+Z$J1J'Lr{"b /^΂ ԩCϞ=ٳ'&MM6V{6m6eʔ222.,\0ᆱceeظmv>>>Gy:Vctjj*"///|||hժG}ΝҥKy1"##=P~ڭSNAnnnCy0)_l٩ xիW>}[<7n={23 K.@ǎپ}{hexbӦMxzzңGj+r՗r sU$޸q#K.ƆիWiӦR_ӧO;w.W^*KX :=''h4i$ GGNNNo%%~h999 9??߹d{š6mz'OdԩQ^ .99{{{vU.駟URٿ?;w^z6vl„ g,--ۗؠAޱ!!!A1116mZ*ǑeDŽ!CDQ;w\-[XX0oThpdddrJ~r@{(Ō3˗^0lzn֭[bME,\yHdpIp( image/svg+xml pychess-0.12.2/pieces/magnetic/bq.svg0000644000175000017470000000742412641567764017763 0ustar tamasusers00000000000000 image/svg+xml pychess-0.12.2/pieces/magnetic/bb.svg0000644000175000017470000000556012641567764017743 0ustar tamasusers00000000000000 image/svg+xml pychess-0.12.2/pieces/magnetic/bn.svg0000644000175000017470000001571412641567764017761 0ustar tamasusers00000000000000 image/svg+xml pychess-0.12.2/pieces/magnetic/bk.svg0000644000175000017470000001276712641567764017763 0ustar tamasusers00000000000000 image/svg+xml pychess-0.12.2/pieces/magnetic/wp.svg0000644000175000017470000000715712641567764020012 0ustar tamasusers00000000000000 image/svg+xml pychess-0.12.2/pieces/magnetic/wq.svg0000644000175000017470000001334412641567764020006 0ustar tamasusers00000000000000 image/svg+xml pychess-0.12.2/pieces/magnetic/wn.svg0000644000175000017470000001610612641567764020002 0ustar tamasusers00000000000000 image/svg+xml pychess-0.12.2/pieces/magnetic/br.svg0000644000175000017470000000601212641567764017754 0ustar tamasusers00000000000000 image/svg+xml pychess-0.12.2/pieces/magnetic/wk.svg0000644000175000017470000001407512641567764020002 0ustar tamasusers00000000000000 image/svg+xml pychess-0.12.2/pieces/magnetic/wb.svg0000644000175000017470000001021312641567764017757 0ustar tamasusers00000000000000 image/svg+xml pychess-0.12.2/pieces/magnetic/bp.svg0000644000175000017470000000122212641567764017750 0ustar tamasusers00000000000000 pychess-0.12.2/pieces/skulls/0000755000175000017470000000000012653231274016342 5ustar tamasusers00000000000000pychess-0.12.2/pieces/skulls/skulls.svg0000644000175000017470000211227612641567764020430 0ustar tamasusers00000000000000 image/svg+xml pychess-0.12.2/pieces/ttf-Magnetic.png0000644000175000017470000003313412642235661020063 0ustar tamasusers00000000000000PNG  IHDRMbKGD IDATxy\_ӴҮEZ iQ WBliD\*E!aBE"l|%Z$emEhQT̷if*=>9^$>FD"ae^?3܄ D___|Vֿlٲ 됐466ڈ`߾}fk}'O' |s@jj*`oo/>w@UUʾ|B6#ZZZڈф[7PSSW(((G~I *gϲ];wc{o2sL{---Xh&M$~{++>Çٶy=zF333ܹs֭[ހ:qUx=Ohhhdl=~#vvIDDu+++bطoߵonHOO!Fb}z ''''//lLMM'@qqyuuuٳ/^@ss3ɓ'PRR3z "ۍ@YYҥKU'/(**bɡ6*---… sz 7p@H$HII ;Z^v#pڵׯ#-- d5bcc###ݻسg}ڵ nnnFdd$ajjlt2ltlll`Ϟ=jjjx%LBS ʕ+?B~غu+( E+**رc1o<~'O" zzz,_= vO$_xcw}ڵw "44AY^^σB?ضm l۶B̙34a҂PؘXz L޽'L &d,ԍܹs&&&uVń hٍ޽{0볶ݻ}r80k,?Py󤠠PI|gˡDI3 “~-77+L8qĔZRB&]riiiEK. @dddױ 11AAAVnkk͡CCW+f8**Ƞ+=ztGAAcĉL?k{ 2]?ׯ_fϞ 8q"::غu+ԩS3f Wp͛7qMhkk3m kCڎߺu닢"m@"mmm6x ݵz7,,L H8;;c}6 Dk۫իWL˧MF[Z|kFmm- H&5tP .k[oRUUƍ/B$+W \vv6r̵eee_eLRyf2???3F466"88iBBBطoݦ(,,]ϛ7^{ d(**toZZZQDDw5x*))077g;8;;35.?~`fu%%%000@~~>,** ˖-! aaatFEEޘ333u[[V^M600˗/5'##YδMAAƎӳ544&?~U ۶m:BBB|r k׮yL>cׯ_L\`A;gϞѮ׭[Ǡ5T11Bo߾EUUˣ2׏gkhhs[044`ɒ%022~ooo}vmjkkKWv XgϞٳy|waƍkmmm1kf;dffb@, iii|j 2UAAC;HOOGMM ))&BɉخƱc 6W]]֭[OOOCСC tR888@GGhiiA^^Ο?'NlقbO۷oi2Nᕏ?|zEll777u ;v]عs'lق0TVVBUU11145 ]'wr2hjje ʘ0aH$qYP( &&Q^J})}ZrÇ3:u///ݻq]ݻ@Z9W}}=֮]˲ݻ [gp۷5kv'!!v M6X~=v^yfc2  D0yd455AQQK,9x Ss)gggflb('HHH;C*txJKK<ۛ?>QZZӧO3ȑ#%,-Q> c C jժ3gp5z_6R9s&U`aa+++ܽ{VM+ĉ&MT!""B ӧO%L4 #oܸqpwwg(OLLDbb@7oɓ'鄰3lgHܴ0ӧK?~˓?נk֬aY+_7~ lLLL0m4Y^|GPh?]鮜{mz+H$ Ԟ͛7  6-k긹t82ˈJ{veT;͛7 $􃃃 44ӓ0fںܜe;Vu3n8m{ #;;i(*D"D"ζ X|9<%PHH6oތ{qd D"VVVظq#OgzDĂ ؞vٳ)8e˖/nnn, CUU IЬ]nG ۷oSNlï ɉ/akk .D !!KKKSQ]]ͷ7+U\Xرc 9eeeB\CCC#>^xM64񊈈H$#Fp@1PcAStuuD?`N CǏΤW89{ GϤO}y{H$o'p}xڛ7ofe˖B  tuui>+u&++ |' L :$rss #؅:\~;v(>_k#G".. !@ {2Ǐ ܙޮ<} yΝ;5TJ```[KKˈcǎqeqn:ٳ)^^^duuuÇ_e֎/# ̓>?x455&;̌Y+N‰'xJ%;;Znptt G : iiiϑd%fGb|ᄅÇ#336܏+w9 ]K.IKK#>>L ]#2񂰰cYYhˆ~QPPח'Oƕ+Wnnn2_8}}}466b033;WƏHZZcǎ <7+KJ GDDzҦtaɒ%>>hjjsFFcPoKMMŔ)S'N2F؏BIKKckkkÇY.GX ۷owׯmddDZc̙@UΆ7d| *|Z[RRRRRzzz٨Jj ="3YKw ?aYomm{aԨQ|xӧOUyyyNZYTTTPZZ6ѣqV`ԩHII3Ej\vJJJ1b@l匌Od .]k׮sW\ì:˗B\\F|@Mk$ `0$˙fS~oߎE5WHeԨQ_-[-[xn 'NT=CEE***=z4$$$EEE¨Q0n8Z{^u;^w~_+[4TTT>((˛7o$޾}4:ׯdgr5]x/^]\ >WoΖk8;;wێkt-?~dB"++Cd ///#wٳELL wַkgzDDTVV[655 :ǏuHZFgG׳c<5TK-x9NBr-p HHHSRRpDrrrئ >cQFLrrr:V6;WXXKKK\|3RRR2|Ϙ#>>i]i²+W T=oX$(9999v׎'ůVXGr^[[˖-Caa!/HJJBII醡1&p対~qxxxk@@0+? N! l:th~}1~ys㞾}|so0}OX~fp}|Sxڥ!"" &366f>:۬Y?߿ۻo[xII999`Μ9&㇀B@@PP!???MЃQQQ>| PQQAPPP9=zp=UVV;sĉthCCCSN^\\FÇ#((8|0,,,fw1ܹs.\7oø(//G`` x׊+(W\iϏͽ1;;K,D+S700ohhPYY)[ {{{())BCC-#Epp0={r?~2`޽{_!99롡#G ##:988Ȉ9d2{Ŝ9sh玎سg yvj`_ $5Gw̙/cƌ1PQQ3gh SL=٢uȑį⧟~ $HgϞm9rH[~~~,ߣÑsB ** d2555Bnn.vڅ*8::"''_o=ϴ9ڥ^pAIII rSSS\zضm]]q bӦM HIII} z7kjj~ #F@aa!HC:t(,\O>Ŏ;3AG3`|\TT@t;'''c̙AJJ APPZZTECC-[ƴ7pwvOOO1pqq˗@@tX.gdd@KK ֭z#"";;X4|ŧҭ9D/hooƌȈGᰴDPPPffV""" = ;\ =]KII!!!506l؀cX}k׮{cJMII`ooիWCVV5j2#99#ahh[[[;v;884h0h Ll]_YYYt)$%%qXXX !!m;womm+K+--dgg'%++ǃB`…prr-300;?Ǐ&\YgΜ+52[+WЕJ~^hiiH ]]]n޼P "ȷ1lϝ;WZZZpuuEQQǸqc8q㢉'ƍصkWuee%C"eܹcz2|/{,AN>m[SS 6ѣGՅ ?cС(,,رc1rH!.m.ƌػw/J|rUU䠥;;;,[ 1uTӧOؾ};djjo߂nwРAt̒uܹsd8o|aæL8A^^~P]P( mkkTKMM v_|:Gn:k77\%%㺺k!EPRR'NpիW ]/Xy ܋/coo(ȈPTTER*jjjذa׶ZD"+W0zÆ \?w+p2ގvG|PSS` nV`#d2ei?NV-rׯ_?\|ESSyxo.044[WtE\\^^^ūWp $%%O>;4ޥABB3nN]]= QQQ\uB؀?`Z?b=rv...?;iӦٳ\G˗g2fX@:VXlfĈߛ!#Ø JXXd333hjj}ZW{5fLPm/^Ϗi]NN@ԓ#/^= VM>)}hxs㞾L4}|sDjj*`oo/.˗[8}kX!tCgEի!%%EW/"" 6Юѯ_?6>|3 mpfff(((G]9}vŋ*%8RSS'N08wK.!))8y$␚- 7}-Z&} U,A@;rP[[Xd ,<<(..С433U:B?'''{n222ݹsyyy;~puu۴iݵ~W29<=n.@$QZZ* AEl߾}?Lùsg9XW:t("Ҏ݀ۮQ[[^ȳYYYaΝq]5k֠N U驐[[[DFF^9'>~%%%gy 4sOikk 3f@SS@L4 fff 4a;t6nm۶ѾՃFII lmm1{l,_iii8q"GەqIIɤSNaԩǐ!Cδ?iԩxJJJhiiONc.CQ(!((eee8q""""h(ptt:7688555ߩGm:<|ϟ?#""YYYzN>M$|  BbbѣG3m!j*deeɓ>9EPf]cMՑhhh ..A3{lL:+ rֆӧOߟΆO>wwws7oЫWBloo7xUچ ܹs _vQQQ2x▮.]]1}thjjbѢEx=GYYY077liNd2\eee i7ٳBS{5aaa2dWWSS0rH%A tfQQQnnnPTTĉ$ykuuTTTTu>L7A]]cgCCC 1{&p'̙;w_~xggg>j``[ݶm -ݱA f̘z9TTTݝ0}tJAAW^_LٳP]]=(77僷7krKLL .(((0إ. 6m&&&.#y||<.]kkkZX!!!z!ZZZ0rHcOO [[[ꝝ ?? sss}111<{k#nχ!CyPPPghh .MMM\x[[[ڬt7ݵ#!,nJϣs\}Ѣ&9k455$,^Ǐ#77tD"k֬{p\rks3ŋQ[[D:##^i;w.v؁5kҥKƍawҥK1h Yk۶mL˝ 2Çj*XvvvGKK c眕JKKנAӧfϟCKK RRR… !..[eeeX=[TTIJJ d2i a(**4ÁTL4 >>>LlX^^^L5ꝭ#bccTD"@DDU{,Xv 9-[hmmSo9x saaa7EFFFhooWh+WbǎǏ!**p,^LWGݻwغu+~nSL9hР$WWW̟?i5*ӧOf<@f&!!!hnnȑ#y___ϓ窮_icc)))dgg?СGڴituuj*{KK bbbAA\\.] =GAAܴiY&/Sajj 333f~111hhh@ff&ݻP/!!/UUUbݺu|&YqΜ93gC@#{tw=Z8͛76!!!8z(tR֭[iCaر8}4MbӦM8y$p5(++;00m߼y˗/sGR7-w3ttt4 acc6;;Jdhnnf\eĈlC4>~ 222ۉs&MBII Ν;ŋvvv_2ٳgGPP\\\pa4u+},YB[uD"ђ,X%%%L0GBvԄ oﬧOtظWT.##:'OLFdd$ ?̲cyyyDDD 66bbbرcOOMMիQ^^ՠ/_y=uƍ)bbb bڵ:wޥ3g<<<:qacc3uAEEUUU\)};C]sTP[[K%;vN%χ,f̘B:"TUU9ZuFOOoeΝt"" Vj*HHHE:D ikkCxx8VZEQTT,jp] б;޺u+2331|pl۶kk,D \ff&BBBf͚iر`Ce5W233SŰahLGGt󨫫"oooG͛7,g7???>|p5466"::4{ zҤIe(~aر< ȑ#)ߺxb*7 TF?pvv;# 5UUbA>V֬GHHos=k'Gݏ&Z[[iɼbddfM W^^$''cܸqtZqjuW^+OJJQQQa:|QAٳҥK|S(Аf$е}]fttt0`ܾ} pyyy8|0\]]zHٳu}455 UVVrM qHII͛7ֳdӕD\z&MܹsoZRR8 !!!%l0uTj> hllDBBn߾tV$&&2q5L< ,sη_͛7y])T:~sN… Y<"$$T= ܜNL<`WKIIСCannNwLEMM ;N8!0o K3gWqQ*gС&---^ȸN ~;|gFbb"g[2̘1G &>\jj*<< image/svg+xml pychess-0.12.2/pieces/Freak.png0000644000175000017470000006624312642235661016600 0ustar tamasusers00000000000000PNG  IHDRMbKGD IDATxy\egS{U;[gHBH !,BEE^gsԙx\f6( ʞ@BVtw:}ꪮ9Qݝt$0>yzϯ}yC|?d_s 2.ÅgpaC\zoN8y3kvszq0҄{۱,:;;%n%mI޽K!NY﹝4x?gY$j[P@UU$ЮTMp}l[fT x ̛WMYT(tU]޳jKD"$_)E%iyy3mȳ>wߟt $pKH( Æma#pc׽巓GCcEA/{71c*l"oP]QѳIvaN+nY%+|xxdu>e0zL'Ɂc`FBUQH؀5rt9~;} qH{\2al_YM9\d ϾdT|Ip\e">W];w/z2 zj1%\ݼhE(USafl%ZZ&I)Tq`ю'@\-#nv ~cQTX#Q,cͶ#lۼQߖ"xDWX$t= W@kӶ{Q0 E9|4e˺Sv$QOkw}7AiiS |a^p{Md5 !z.bW ʲp8vJoL 3piiJaLffܺHW&!Qp8d3ݐMQ,l?62K/>v7/_ɩu:U2Y=O^o c^ux{_!8$B=DyPF8TَaN'il,LS­ dW+ߌ{ۺWM~B08~b,5)€(+8"dՅGہ*e%ZBn-( м0m(c#/Q{Qtb z-֮]CPVT4P\W^bzm1~#a>I8鞩T-[v3g{͇Ģle#"!2"1P#Ļk\X(Gעg]tFlֽ@QMPTƧ tPe*84/&QO3@9(Ps~.l{nH\mh4 Hlr $PtPs_׿zi3fvIRn'rD"%Kx?"֍||L MybW E'i$)hf?;ya*X %V*SЗVi;FKALLoDC"i*]Sm{haJBY4O1!&9N,m`eRpmS__kBeWR[[%cvLƥ誄CSДc_Ћe5۲95.d}"īªn}˹ʝf#&rWqYLrVڄäIaaO]M=܆M#{ c:KB*!ȷgE8˲Xn\Y L?j0ꡥ;AP  6o66H2>GU?:.UXאĐl_"f,vSq.Nk.m} Յn|.#C\\ ܳϐ1 tu{9 84*k ^N](?bU|/&Ë<.ad`k)4UA%Q$,toֳ'lZҚFnKl揼/XQ7@`XD"<ӈȊ˦ي#k8įudi0Hu93 Av5vPwsI]9.IOhaR()谱Al$~ɨ\{Wٶm]!:5Ii㤬(iZ_GRYn<}z_m?C[IV2u9WBTf:,g%EVIBedQD$YD$dYDK(H,wQ^BƋw1n˖-?iE5nWξm苦. 84:HLBUiEA+/Bw ᎥL%N䲩}\2[pENN(p m@"e0H2 B\lύ=l5Z>>rݬSZT:ğNRL"fҘHQ6LY"q2~wx{/_ACPnN?Eho+)J([lO3Ħ-d0.ϋ")6dB TGLK&LFsXYI_6;0>ZQR9$Y. 100@gG. χi R)8AƄӦ3id6mxշ3kBϘ9r.Lk.DQPb&LI'w(( R󑏉c҃&4",!K"TA(A%UI2d&5^6xV ˎEdmenI&mX+$&AUqp=qVvuQP+nCXvTf;3h~2q"qQvsWtRmƺkq9dJ#{u&Lg @˟B`eg6`f9 /#?@K!HpEI1bc=)MxukT\: 7xAA|y%{J DZ\â `6LEȚm62Y""8Rqz GbR1IcUS]ՅH5h=}4=#0hm=plaӀӡ,9H2>磥IiUU pmo>CWW7t ph6x 4$t:Msa7FWSB^ 'pp:ͲMOO7}}ؖSp2"p\<:EdQb>U&SdLlDA)..f\Y]7pS#3c%U<:dK 48Ȕ"2YhL"/o(XPecEd%N)BkۉSIa +d,N]*BlDѸ|(Td %p`f\bTY.x򗿤[M@d6ma'{vnrB-$PpD*r XrR&O|Y]95jK85ݡ5-#qv7t0j%(֩`.{SF.DJJqҽ7le'0a eͷ݁ع} Y8} ɫx_!n]'z-!EV6E&_} ͬ4$j EbiH (^Mơ*$=1jɟEU$Ip9TFp'{%XX+1=_^%G?9F}.`Y҆A*aP%-dЗq 2^Dtivɑø>R.,(P۲p4I[+ ,8]$ O?SL*uz$ 6W4H/KeΘdLmP,czx?.F7188QG lLD1sPp8\fxҤ5 ϫ1q aO)wd O,eɒl,l,<*gSXӑs"]ܚǥu:4<.Ԉ F2R%1Ap(sJtCPеcYD$FD@+eu:902iDvB k 8E0a\^]H DptBl269gvwP|%3 헙w ?˱ }!"MQ>E&K/CGr,\T!r0.۶i-ycO7s.Yx&KVU;DC%2sCck Gďu)qX8Q%t Sp0oRN%%2XM|0A*a i>̒L 8ufvm;D2>=s.-h)WSQYCʿEs.2|R1? xQ7u:ħ#d0$Թ{ F b$P,',1,FU^gcs=@NCZ~#Jw ҶE0>4@Lc6;4 4RiHzӄh>ӂd"A0NP a cמe);l/Z!)sm,SFD"4t; k>ڈ y<C#-ttBI K6 # @, xoeA"ro/ײ&:nO!_HWO']]:,&wü+,O!P,4^J=hz# )ob`;iU9uՁ,F󽉂@$! ٨0YJ >ٍI/7H:g Ⱦ5۶mciT֌gHE\.'Fɢ FUe$@Ul4ơCH MIp(NM@S(Ǽql׃U+vػ6=Kq04lL)vO"3Qreib,>q R$iOAT2vvv2o<½6j$;5R9~2iۑ4sLIi9Q4%as-ZTYDQ|{2La'1p5 ,Y1 l [ȅmzӤ}̺cn|?4a`  +`xРT2Keҳ+aնmCV{w@\#&N_1YVRiںWPd3i$)jE)$a0fv鸜i˙,'شmKTm¢1/z\~{{-n#VLCT-,Llܫ`#I-1-:wrר94iB"p0hvfz ]f%D׷XVs,`ŘɎߥvr-;6 i9hoƲ%jW+dҼOGMprUUVQYq]]]465s(i~ϡjai^k[Yt]80׬ {ED)75k3#"af b)3I$@ ^|j/}b\F% 1'D9G85NIV1?eGWr+7\v[bF8WWs`ݺ F?>$ܟ X ӂ8Op<fO4dEcӦ#;;ذalf[̙%1M$IhCgݻx_9.* ~flۦXNu U뉢+I$lݡ\u(s:7'" ߼02gD"fdr7 2$H[[y-MF(JdA k$fMۣW~+^ m}UU4Vs cy@1tzDR)Z[[KKmF F ?.Ej+wŪ,zƘe|*|HsT*u m@'kn!x.D"}}˚h4ʳTz (L6YiNƗh<EL&!EjVXCU5& d!0g I8W N^&AnAρ@|J0hk{p=l ]7- %^{Mg݁/q+O$ĶgLV+O`䊎;Tj%e`p$_|u7!// fiHWԝ({d:>/?ծ Ǯ B3nwwqv;.֗lEH< L4m)mMdear7P$<_ٳ66lx,a(|LUƿźuϝm?0z;4a| G#_z \r4eN&i7UNQQ~Ss&"K_-Rg NAS8XUUO of5*yvϊpTR"&W^ㅗ^?xj2V6=K{Q0}4&M*Fq((/ޏa8TyȦ ]1Pl" "(Pe"0B,9!7z.t hf&if, j \xdm;vʜ9mmmms j&|_:ZZH$xq074~/y([OȐF6 jU<4kFgq˩(p2b@؀(z=$˪"WxPårKtp*"(rjdžAr9~<u m7Hl4enؽcLiLF0T_~<*;L'xȌ?'"+/`Xq5tcd@Ȼ)3Vdx( *`1~H"G(XmcZ0-4 (2~Y|\^ZΨm"瞛q&n+[100 )xqnb16[Zz^y*B6E6efNy&Q.Z$ ,4GU2tM2 /o>Ho8FSSƶ!I .vk<9% `Z6oNU3j3nٿ'!QI&L65kNj_LӠ(W|yv&McNv/Q&x'0aDN9 iOPV'd1"-p:>v,tXx+KU N aNQf-aq'QEQ?Trʒ3kc;e8%4sL'`L3R/SO](DL|oemQT+͛9,i8xT/|P^^'[CCw"N8Ow)n-߰?$IHI]jdhv,Vzsh2SihpjqjFbt,AJjdm` G!_¸j`p"c7=4lohxްwi-Ǔw_=7ΕWPR4o~<ױg.J]ד1M$IDT|.T]Oehjgnb4ik}_!$bq:NNsك-F-IE,Ͳm+cfE3>%:<| 7<;~HsF]zF™I"`iocƴ̛=1nv9[" ns-ov#p nTruKxgo[wP^VT+dݮs>Ł={*%͚R$&9Yru~sr۶1- Q̕ͷ,S0ill=ȒHtiE#=hd& i4']ض8L,oa g4FtM?V촍&h,)|ki4A㥽/q8߽7ef̻$m;֚H&)&gM6-)Me̚(,L˶SEA* )ʷٵs%~p{[,{#qkoQܕfc [4{ƒO'3p6*0(Cr>9?|nԭHvn'?7PP)Fk%䴌L-ʎjOƗ'eʄ V:0sV@|I( zX8essUtz%xp4AQetwn8`o3&ײ,]m[8 yZrjlA@6yO(R]Gġ*ϕ˦m" 2췇?{zGeFu >JeLN.\Om IFDߴ8f8 =YQ6>kn>+$fxGX-$K'уaLv䞻V_b\.ض$T70k62ZͩaYi9 NکP=:|^`a,=ݴeυ[(p:|2~ɑpf2f%ܑfnLSL|_$ ))znr%y^~oy񵵼:f۶`0.PnPTWÂ@ "J"Sc(  @N>K ĒJs &<1/ E%Ȗ5BaGT #2BJ4QEu) Nq٬)Sr]9)*FC2?Q`,Z輍 n]iM<:j N/Jl6CHD#kBj"MFAFk.d̡4Iqۊept P1Udbsi9ڎ5t{5݀,?xo/Zr;B 84 *c'K4Cϛb ϗ>>O+Ngq H2fУ|qR7\9",%l#98Zcpf_=8V08Ksgn;;Wf}~VΔ 5q{NVVVRYYy.;낇dRiD!v&nĪnۃҙTW΂Wef6_4fDv,t&[祓.&|瞣kl+M晵a ĊW#&xݺ8zԃ-=\9w<.]c#5Uw2jKqh2n]x詵 `cc"җga0W]o};&މKqqkuPqN;b䮻GH͟55ncy/2ia^]iKqڨעV ѧN*Mi O(M_YiŖK-G?9YNEֿZɄp8n_S-6>)*,*0@QY" tvsϽtBiz]/'[p(ޑoXC-wqC-ook牟=R=s:HOcUwT]|KbIjj`!7JGj:oܾw4}<0q}D47l++yzz$?׿6qŚXsSԥL_h4ʑ#3zoAJKF2hh4S!rJζ4)ZNlBEfLvnt YQ䚢"q{~~/|[;OG,<Iuu W]χXVDŽ Nj/>Foof"G>(v\j{y?Ba4 Cy*|a>,"ܸqX]\X=DaٶBvh{N&WrvGgUbu@ j~,[v)aa$CUՍlKd9-#d^o5UU7!`SQqL;?ѣp7 BmCQtVgC u'p7j9YCrDtmKպΣs;ovƲJ+W^3%%Ely62$;$#9+ MQTa 9rfҤۀ?vn~3̝e"۷[cٲ;VcQGɗ{Kqi:6dX,F(4#454qt;Q*\.b\R9}-8cѐǜ9S8p̚N./z {`O^o!#X ז5<}}HDXW sC?sNc"`eÝd%[CHrg59؄eWX@G:MC^HG&îpG/kӦz8}S`ɒKy_q;>:R67HBQ@QYOO=ryE{6`HWZB*$ݩ^<;oyy z&NQ`?D˿]nhWί݆ ˩CHs͵2W\`ϹZ4K u1]s4233՛ɖU,e_rRb-<H6;(ğ1~PbF"]v!w?_$jU4 ?-${ΡnOgjZ\m1dDi5DFh?J)S"\|\#OkA`h RbyYDE؏b#iTdQ$`'( I x( ӌ߇p&NeGEikmi7tݏ*Ms@aƍu"F̭;0ag_T++3WFZ 6@Ӗ Z7[wpݷ4JrEQHWUdQDE-E33C>}zk"ر[~'\s6ˁՠ.Mmjb_UѱKƪ8K! ُE;y]{톫>B6Uڌ=jBW(EF`\ttƞ<\VZtJ;vzٷ.t/^ Dh><8n3f%+9>i14n7x롦WUU|;ijC3{&'*];XF+*AQEUŤe Z-;[[.+˾᷵nI4 ]4E9~jq,KJT(iiw1O _AD7%%FۺNkb>|D=XQ'ޡ>.tAvDGpOVx8QV+5n76FՉٷo9{Xb8DDdqq=hW3]VqU~<AEE!@qAWxd2~L`0 K)ՔD]FvC$EGڻur皛ZtEv1\χhĬL$l'X?Lˎ_">$ɏY o`SD4rߵO?yo_!+VĉmrAe&QQۊ7WUZGsGx<][Nnؕ '4@3HKkwp6QÇ^r@rubSHLPƵuu[jȢ,$u N(~: 5݃<]L=$9GG}}#w="W`64i V>4{E4NCYM3Q*ttte:FBxx5&]w+V.]@JvLnZ=z,9g'"9:/<y%;~&?SԵk6p_^]EATU@#Ix(L$$IJeBe.]ʯfƻ|բg݊/JxH{(;|oR)SPx< h5`5i5H@u .N!/τ*#IFF#czdzxS1BϞ߫NߍpV_yK\Ǭv.".ژ2mi|NA>4~PE^mF`hO09RXPx?ń O.*2V IDATa!Hc ?i]06n2-σ PF48ZM+b Ijj 9Kf\ނݔDl,JRRBF~OsOn3e+W_jnj挞5f-AQ htzǴpfVKl\m78x՗+Kkl5l*:=>2~¹S!;w%|߀{ Z}fИ)1b[ŠDXVʌsPQFcBF8ś3d/F(_z<[9X Tx>bl¡ao0$&"tNBH~޽nW6A5Uӈ+򮁑T[[@# Ɍ!*Uiwy;N_!!?~(f1! ]~hc|a. 4ttE\.,tVRigq.@K D맂(+*HIN&4Ć {ݬ\w2Or5:(w&TU`' %tu3ud$EI@/t7L6#PPӀ J 6ˮ7H?< ?]%LKꙖ4rDQ~vVmJATUE7pf< ֲRf]>!%)Ft{N(~*0N+kH| FC{{ǿS'VFb+9 f`}1 G7"!%&iL&/cXVƎ60*"/ ZUn7n'J΀^/V=xo}y߭!%1<Gn;3Dŋc6ƌЁ~5iIiթů7+N!;1QV#cOEWɺ*4Қ hlup#9%䔔Sg4z$Ċݓ-Zɳ$fbWO%wx?ci% ɠls2mJ*. -ZHhHN8^sWp];Z54_|Nc .Ũ_V+m&3,$IĀa$Yb6/s+#1&_n?;ՎR?lJg88I ;39VBUULYfTbTa2hjnf:UFn >~v`Ps^Ĝ|}RGԠEΚpy~ ǸÈ ]|hIpMYZBUUƌw"4d$dpinj`#;8C5q#(àA())᝹_d2U\?UChPC\p zĤDN,s)K;,};}c2sPko~snu| 8`ĤIXnNGm,+Y kdlD2΂"<4٘G|Y}*NHMM+gl2nèF\9&220x^j+q8Zo %v3f IIIgsk8!E9*Wj聫ӆ,vMG#t]ous&tjQbq|W2" O8sm8kwmUw >枑P jXeui i&ݖȔsyh³(KxQ ZI{ pZSU}M͊?0$gر.Wy3ah^!%sӘ8:mh#26'9 XrS/3Rɠۙ7o(2it_B ZΥ%d' *2vpWr3^yu80.2n[KY]'SEs8 z(Q1$ FwJ kX]qa!\{PWWKaa1sW3ǻ./䒻ytKϱW`rGqq1J8|.~&]ۛsbZ-f\ɳgܨ'|(;W_|~x!BF0qğ=ۺu+I֍H$*J)mfhzko:.6 " r<|ϭ\:uW T6z>G7 y+ 0$T!IM{N5"(礟¢/xy ylbD@Q|do虞ʴ֬~qܕ$+ϯdr++V]p5~/6lݻyy/ϡ}nd=yrg_yL8'~=eEa,_UqNTэp'NTr=WDmeCANa;_ӏh" utÕ @]C#n&͡ F @ʗjqcFnGL ֈ2<Y#,h$-.kb1o]`X>l(̺UUyٵ;E Y57ߜͫwGa Fbh١HIMwK陑FfzHss %UP^o{ >qIL2f?Ep KtX %uYh~*CtFO~_#|5Ԋr6-]gc Χ/`'Z89fRՋdޛpmGD5&$P\d:<{q=dee1\BU(rw*Ao܌٤g8ZC1kx^~!$=:iUvv6yyy!+2mNw**Gk[$1tP2338{평IH!ѥ-Cqq1u8-]h5"##ILNgϞ{+ x;IE$B X͑;y78si^-x*]-I%/^ȯo[ MC5;Y#7/ {ILFwzyFqƕn]$T[DrIJLl?^&3Gcjjjj7ԕ؝A~y ?i^b!773g!ST[FLrz8G!uvG6 2z0^ lX9ª/ak0sD*JbӺ-tk$ηXٜiCo`Do+3r |{7,#6+ƦBc\XjA i|S[G2#}t чe& nzo}b% }Fbv`֭T԰b 86N b(26mj61p`_*Td>)fī~&Vˀ۷yyy<73613off&N BvtF @rB4&{ct|b@Q'*kY'JGށíҁm$Ljt3r O|%$qSYw^0_/^b @ySq8*1jA0=~Hd,]ӧ~ZEsQO_&>1;<>oV$G/; Vϓ bAwR^YE_aTk>ʸ%TUʊ jjjput 2nY$ Gyj[rb0hqzXv+w'!9]׆ZZݸݝ\tdF#IBLZA&>F}]-O2}K`Oy3 2OfdP\~㦠yvM>-YƜO`ƴGV;X@}me `){Dhc)DE;Nۺg}P"-FU.<<u,]-fȒ%_qU375VTTqT?bwD`Xj)I!G;Hg˼#2Nt m\(ސ³/AEuvٱ  -8r 4IDATŒmC4uz~DvIG(g_0OPR^. lP2bh atvV^{ZwUxOpHBHOਢ :|B_81NPUmbPx`{X* ]ػ̟`d(ȨHD=WPPI7[>mmmGKdYFeETk6sC/?ѧ#rhQZ0VܾNF5ٰ#*EYE;],U4 P IqW4_^F$OAb#=bjhvղ}ǮS6Xa#s-D}{ &Mٙ=Xrqvg1ё>껽l6zZ}(5΃™kjg*i;ɺZ!%c]xϳ ]jJI @br*MM'& 2G bIlP]̶"6C'^OxZ[4IdIsk#XD]K?D2%åEk5`yAаzW(zh'wC-s/e?΀O'4[ǐRχ=!UU ^U RҼ0BC:XG އ蘖X((^Udzt+m Arr/1'NC SI<μ vrUf.q;NNg;~Aƚ߲azg^c$IpFb-41cO9Cfͦ |[A(ܱh vn@ [1ÏN+kaLuTt|C]g!qa\0xfd6+ @xD(>:%kcGS>?%SE.$$ց%*nQOKRBkKq}q<-e?IMKùSQu-vr?lgx_}R+߇[`hy&"RKVO'[ 6nH}&_}cGpQUpa{irWieX vk,h4,_ #!ӱ]zٔndS bIS[wD \n7;fM,D^B$5ADQ _eۚQ],]]FWW\ŬYwsM7qM7( ;wd|WX6ϟOzr2rsOmKgR"D)gp[@UmT / ́$v̝!}<ϨQd A%R:˟m_TT{@ȸG{I!u>i_SQlܒʕW7Dj ](2rX.zEϠ,UVI9ïnk~)?mJTCQZUgIPp5yE04t . Ui^!#Hd54Sh"١D[j#ofMJu%DE,+>YE_qzZm{CEQ练 Mz>8y5& |_-C+^W>ޟڔR-`w7IKipo^c+:TScS}yo<jعPϵGz55bYƲzu[zѷaI#FmF!2 ,AQd/WS?&] $US'$\X\BcE4rD3 299=6,odJ'? &rlz>S0E}R"AFF 55jদ`PnJ{~euM ]!]=> !è@vN<#e`O!k466*v.n #/LŒ NB֕U$~z^f=0ZHw"$n><n P XX[jKgkhdԩ=DbB",}i?nY bК'(:+?uU<#%2IENDB`pychess-0.12.2/pieces/ttf-Maroquin.png0000644000175000017470000002056512642235662020134 0ustar tamasusers00000000000000PNG  IHDRMbKGD IDATx}\Li?SbbJjӔ[lioJPpG~Jj,X$nYؐU؄HIQzE3gL359s]߮s=Ec2l# dzۑUeNHH… w^Jrm"sndR.̙3)8>bŊdardN&L?c˗/Of0...ӥYYYߔ)8>p-۷9FGG;zyyds˗/4-[I1!<<DU"//,], L&:t(iKQ_L&s/ÓOZ[[kdutѢEN ҥKٛ7osgVXobbn…xrWWWDEE%%%x׈| GӅ2y `L^|||Ϳ` ..+Vn ܶm[_~~"%~oߢh(..Fii)nРA(//4=*hllΚ5kfd999I\\~ᅅ=z(-66vԔ)SB_p˫+>\dINdgg˫ܹsҁ q}s[>t:(--嘖.\Sp!2=A(|x]BBvvvHLLr_ lDƳgي|N[[(IgԨQ]]VV !!!g&Fۛd:144D~ي|~$-%%%RѣGxɸtEyMM氰i3g^FF?CS_|EΨQeS|ݝ֬YVJҚ2ecbbFPPP\u)))4LLL,;d[YY}^e]  &Аt/*++ ?#Ҙ1cOiL>RRvi|RW^khhyyyoZZZO>ݵk>@UUϟ?O2e|JûggnNHIIaϞ=x?cX… I=xbXYYbQ; DEEڹsgܹs>ecǎI&ܹs=[YYm۶a\=bQj"4Jy~2~>DV]]gWKQQz۷W]]҅[?tuuΉ׷p?422$ Djeeө/iἦ쥣CK̙3...< 5efx0x`~%Yttt2@rrrYyyg=<'M*oO}Ƞ,MnŊWWWJwww6Q&RFiZ7t:}o-vڊ~0`^)7 8iiiܹ|KII ބ~fiA߼zjB#88X`ey{"פ)4x%~G~~~ 6o2D탂ZnAAAq's~"pސH^L&Yeۖ-['r}&lܸQ`566]f _O}}=WGyFV'Ĉ6#Ph¬x-p+ k1L#PDnWPVVƥKhiiё21aEpNW=hYYYx;_p***S:.\999u>+lذ k֬Å*vQ>lӦMtAISǨQ{ntaΝ(--<_@ pُ eeeBUUWĉdee9={Vc5햖uuugXXXU&pJJJ u.`ff???l߾K,AMM ٬ VJrrrA@@ d={a{ |dSQQeJqvvE&?uu}qmQWW׭ !'NV7_UUw-ӧp'=z4><;rrr0f)>2ᱮL:ggÇ'9r cccBB#ׯ_gp'sppݻ9ڵ dShhh̙gosˣ]paS:tHfɒ%vmmm#'Bl»NVVEEEؾ}{6~~~x외I/X|9G#FP.),--1ڔ˽{fw n9#p/_?N8;;;\v MMMhllĕ+W`ccdlݺU<#G]544z׷rĈlkkWpmxzz֭ڏ;siKЕV?ӧOlBSS~- $4ݻw&''~x^K]__/_AP[[ kWgnͽKpM<(//'=dۇ,Ri,韘]v NNNhkk&iii9ܹϿIfIG |4G8LMMqСc|$%%ʷ3IaWR"oM\N\S@% ^Éwa৅*Dcbbt1Lؚ +,韑ziXy^zEN kb8R'--͵TxpKp|0VC7bB};q]2ى,,…qUUU[X,րW^oݺرcObcch6 KN 8}}} l6'OƑ#G;w!,\݃ ,X#G~^TfI__;YYYGs1111113m)}VNN9s„ <)&0KQ:uI(=Bgll:>22240K6P雋K[BMjNNeZ,Ajkk+Cȶۀ;v,BBB?P~! B@@^zY?888,,LMPmܸ񩏏mR1|p466ފDs50K $؀w^fk[+st"Mϫ-p%bJ >/(Yƍłۻ[]np =/}yҕzlڴ{T1Epb 2COk]nN@4L0}60zhZ EEE0Ai w}m*ӣgggǨ%-t~PVݹsgGw}۷=z&èQNuPɓIyºJ /upn 믿6%''KO4 }===8::f͚xܸqyK԰atۥKcǎ^~2,[ҢéS\{ OOOMnR k511alf0_!55ϟ?ǁPSS#eccp1b0fv^'rJX,@ 5zKҿۀ}\\\B%Ih+'Hwۤ R6dJcˡ&? oŒP曛ol ?DUU?_bI|Jҿ>ĉ ޾} OOObIrx-U@Bfu4=9ܘL&-[8p {B$ Μ9CUrgqJ N^^Od+WXk9::̌J[lat6NgoٲE\#RȾuIbm†kjjΊmxx8RSSf?R;>>|XXX{uuuzGGG+% t:7oīW %o[JJ ^|ʦt:jOTVV˴)SFGGWWW+'OBZQ믿"((MMM C~ذaF)S,//.&uرpss#t:ݻwdIh49,xzzrrr^WUUaܸq8z($%%YQQQ1{ll[[[X[[hiiATT~(I JJJ՛ 'O`ܸqHMMy[2̙3!uglڵkVDUUSSSЀQ"""@( ŋprrû' .`ĉ[jRaއM0`6oތFСCHHH@q].]͚5 fff(,,N311wFCZZ͛1chiiAeeeګWPYYž'6SNؘzBKaǎHJJ"ٙ3gm۶Q믿IJJjرcMMM=+OkײG6mĞ6mN< ŋ/0|G9?'L#LYܛy&pBr} Z^^V\#Gp011---=uEgF\\  6?h611ڵk%_4|>۷o퍍7.ꫯQ[}}=yfXZZebݺu\ȱ7j눊 RRR9s[Ç_ `˗[9;{ه޳)++ða7ȆQ[YY1sL>͋ طoOBaܹ<&,^iHKKSYizsssO9s挤OVVVҥKtȑ#Gow1dzp1 :tW%%%J̙3c.g1c rJ/^ɓ'䛶6>Eqww$SGt~nSL+!/Lk֬ašt:\I/7Xt)LLL(QTSSejL=IDATj%lª UAYYW酙$W(0i@TUUi|۾};ÃPK0`}+,tuu퍂E5ӧO!H|___'''[D6ŋ|2'jll*** Š ˭#?QQWW e ;lkk{~u쑳 _e2:u*+WB܄>4=1št۷ l_[[M6ѣZ 0Bb.``RIENDB`pychess-0.12.2/pieces/pirat/0000755000175000017470000000000012653231274016144 5ustar tamasusers00000000000000pychess-0.12.2/pieces/pirat/wr.svg0000644000175000017470000000565012641567764017340 0ustar tamasusers00000000000000 image/svg+xml pychess-0.12.2/pieces/pirat/bq.svg0000644000175000017470000000460412641567764017310 0ustar tamasusers00000000000000 image/svg+xml pychess-0.12.2/pieces/pirat/bb.svg0000644000175000017470000000630012641567764017264 0ustar tamasusers00000000000000 image/svg+xml pychess-0.12.2/pieces/pirat/bn.svg0000644000175000017470000000621712641567764017307 0ustar tamasusers00000000000000 image/svg+xml pychess-0.12.2/pieces/pirat/bk.svg0000644000175000017470000000630312641567764017300 0ustar tamasusers00000000000000 image/svg+xml pychess-0.12.2/pieces/pirat/wp.svg0000644000175000017470000000615012641567764017332 0ustar tamasusers00000000000000 image/svg+xml pychess-0.12.2/pieces/pirat/wq.svg0000644000175000017470000000517212641567764017336 0ustar tamasusers00000000000000 image/svg+xml pychess-0.12.2/pieces/pirat/wn.svg0000644000175000017470000000570112641567764017331 0ustar tamasusers00000000000000 image/svg+xml pychess-0.12.2/pieces/pirat/br.svg0000644000175000017470000000555512641567764017317 0ustar tamasusers00000000000000 image/svg+xml pychess-0.12.2/pieces/pirat/wk.svg0000644000175000017470000001043212641567764017323 0ustar tamasusers00000000000000 image/svg+xml pychess-0.12.2/pieces/pirat/wb.svg0000644000175000017470000000706212641567764017317 0ustar tamasusers00000000000000 image/svg+xml pychess-0.12.2/pieces/pirat/bp.svg0000644000175000017470000000516012641567764017305 0ustar tamasusers00000000000000 image/svg+xml pychess-0.12.2/pieces/prmi/0000755000175000017470000000000012653231274015774 5ustar tamasusers00000000000000pychess-0.12.2/pieces/prmi/prmi.svg0000644000175000017470000120720212641567764017505 0ustar tamasusers00000000000000 image/svg+xml pychess-0.12.2/pieces/Eyes.png0000644000175000017470000005172512642235660016453 0ustar tamasusers00000000000000PNG  IHDRMbKGD IDATx]wT~oS. ,KX@ cĞ$$V:c151b,H)Nǔm6{o};;;GFq 4F$jv#m. Ap8 ;$ G>(GMDQQPP&SӠMjmnn%hnnFZZFr!E,ːeZ۝E $I$I4 kWUCq 8MS}ݺuZ}駟] 6$I}ȑn6i@7\.7IRQ\m8 )UVVb˖- I $IAw.I~:ϫpw({u( Aa̘ ֮:K&]~G^=syymDZZ}vo֬Y3܂X,۴i'x$ITx Iד .$I$iP *>EQ펮 $&Edr@7y#ǝ;vhl4R옱nݺl~5Nu\Uxqq]l{_7T*Gsd1d4jEA e .In5WP땠(JEQ$IAw(Jb8N WS\.I/B*ʲe<"F%\ `\'aZzAHB\\ h(#l( zTjDQIRABԩ36,kG$Ia#MS@:3bV(%% I`0%%%:ËAj:"11}4S$x^E$%,h@SSCQ,0WmAgXGeI0T}א!Eh4@8~tsAl<E&܆  f??v,{.}k)լVsGBe4it8&! U׿ҲÇd>>MJJƒ>o\ bY;vth99={,Mi1yr2j_2RSSxB5 H0 a "XIR`Y?!W;/&j>4NBEW_=m?\jUCڕy<9˃&$(h|!E8GF0 73Lؽkplכ`25ںWF$h:(0 j9ȑ`߼A=N01T`x %\.7˫ !ώ+ `{(0EqtUU5P$idţEPi qq8BZŐRۣ=^յj`Ĉt\y 7 j  v v $I`aذX %Ł{˶۳<"x^ME.],KjEQv{x_z.#nҺ +&yא,!T*5.҆1" n!B$I&uu0lǩi@N(ԣA 22iFyy1NtD}Hzq {*@DZ^Yֹ(*|`$Z͛73EE%K[ZZ ! \h_|[_ju+QQaE?ӗ؈QR++>K]$v𠬌DrrX j;v@diVsM \JJ2Nb"rs+0qb&Z( {pǣ g'lv=F =_|?23G,Dǒ ()&L+#\EEeeuQk Ix;綾^R55oQYYQ%,K7zab`+f@V |90hᨫҊ3׳p88r$NC,`Ɔud$I",L֎lL$Iv$%aĈdر٠O,($)`Y@gy%IjiZغh0)7dYFMMCڵk{eeuutpuOStQE6l,oOTW-QQQ-[UU I 4͂a8,frnGprIR_nWf<+$i4i44(hU*͠i:<@`:$Iǃa80 aˊc~@!eNbIF###@Q jdeĭ.ƍ7^0cke11A(..a+*_b݁ C{?ۋdۻ;{R1 -sYrcVɪ* մHQTՊP Uxt=ȑSHOOG|| (CXz=' SIcVGu9r'AGz04 ˋP]mEшP[kϐ0l1|S$> 3]꣏>R6ߤ3e25m\jbPH;Wiرy>5F#rV;x\J~[JKK;') pqL J#p`{w_GVDgՐ'aĈt > iiIoAE *(7Q^ހ 桶wYDGfs~AQԶd%0wǟ766bŊ'U*xoۃ=c "f+APX(\.ҦKJ#ߥi ,Kխ\DQ+t DG-Օ<^̚5p)8rDX~~Qذabw-(+kԷYT:EƵEt;vOZ ۥ1[hC/}Զ\_BAdѢjpۃgdh95oLN֙1qR1&zYAT&VsQQHHFXA}rmuF^Q=`\]R:;6[k !K9=: S¬YcyA[7n|'!!O3fL`IQ$ hG&$ 桻1@IÄ I=. 1TNÇ`2A4""JErr4/n(~Mk}hw|M>:ڀK|`˧M`4AՃZ;6$2 1rd&bcc}nڡVVVAtPO( DQF}}+l6ƎM^Mþ iv AA-0tmEgWҋ?{'cf"-)兢Ac#hiDժ0TGnL,"&& K,‰(/(hhhBeeA 8t||< 0eJ:4m##nvAjgq<[g 99釒$nݺ# uZ,˂ieYiI HI/Ix~h46xFIơ5 I AR9p\`s (ʐe@j|<Qgp WU"}D}]5H.`˖-<-]z/V(acj0_)yoC}tnlEFIzEb? nE p:xJ 'C7u,Ir†  VmJ}L04u gϚy<뵵uc Z+ȴDa8464~6xR "<L8q,DQBII L&SZYieЃXtݻAD9r$fΜz>]b(s9UVVbOM%vZh;6жz:"P.kܸf-*s JZE I:33#"a8"PV$*IIaca<Vz j H°a騯oMHJJZBL4]eqR.zO39c1FEQ6,ӾbA"9Y c|%hl4Y Bvh:4o9Gsqp.hEFF-wRNQ$''o v@ۘL|v{<f}Zͷa7ALvj5X.55~"c[&56F^$M=/x|\\CՖhd=*JeyꮵkזXHKK_:`ii HL4Ht:z=x$TTԁaTLEffwZ hZhڐVwkV^(55犂p"2 h,۴iUQ/1*l<a,vёaXx<{O3})B,{|SUVա0 ǂX{lJ5w9Hw݌F2䌆ڸLon^oMApL Á]|Ix<]m݁{h47] ."Beф{Hgqd`ʕwhmv}."nc ??_| f$3g 4H}fXf@Qm۶#ټh42.A#G!mIQ^^JWvݿݞ2}C(ݵkol&S mۮ6} /6h.g8N;vGxvǩ0lXZnۋAu$N7&r۶ٵWXW^p:˄Eǎ,+~믏c6f.#e QptKdj!?s,^|FQ n7{˅cǎYÑ$ Ip)̟?4k=bSA#[JJ2j W~~/ȑӏlիW/Ͻp'N|ss_CEEEg6u pP[ۈ tZ\9'#q KŢE g#*$( ʪO?ݙVZZ֓O>͛?PgaZWpX,<RuZ Dii 0"]+0S$FQry1gt,Yrt:[nŁ;1m4Ue9k8~<撒ңF1:tOz#S{ \/7ƍ`&(KK+"L{w7cp=(_Tj&v߿dڻiӦ^peeeHOK ֯|^/!j5!v{@rr\p--~g4 nWUU5jÁ&$%%V JX !+F?^0dj2 ™fw"%z|i47t.AN/w+ r`Y^Ŋmh!*JF/oFqxccӳљ<o0b Irn43KKbõVA^ǏB|'_' Bصs;L~3Zm 3g΂h;&#,LDA9 Vyfj}m۞l*.ǎæM@d1V|η;nnl'V+A\!Iٮ IDAT;,k&ve?b y䉋{c„{t:m,ԨQpіsQNw|򩧛ZDl󒤄tdY)!BBtr-iւC*&dݒVql2ϖ-[kc̔)9#t:FqB$yߩ2+, -bWSSٳgw ,(-)Eٳphm@ȲCHư8p,4*)p $ s$j Q lf&hIR I-MBMndTv͚5cN.I5Z龐g]+NDZZZpu!74~ٳv0ƂeXP ɿjA|gNļidY$V"jnzX,p8\hnnFuu<1ؕ$$땡ѨѨk׫道/xU:GEu˖-Ap x=*<܄_|k8]nDDD gDltcs[fv Sf \-Ǟ=_ğ 411PYـÓqH!nn46@,OOg0RUU?/?2ܗd_: %"##xkqUs z݈iqے]Kv9qd.~4Dpuթe񦛡Rž Iqq1(**p aaaHHF^^i^,f4y3eSkkM}l I"rښj̘:ɷ I{bX?&V;cGqa݊_Apqq`Yvp[;#`Fg}@ZZy$dYghD%+p55{O,haN6$.ʽղ@QdȢY`۠( \."dY"8tu 8tDpXD'P(ƁG(0y8 ar׎zՂa4 Dff< 笩}qE6_n,ԽzMhl߹F(Տ ?\r5b P$ amہo[{~t 4<)GY=.',V%'j'hJő#PuHJEzz$> j4p0 QW^πe/[nݕus` HT,Bݯf#>VRbE`-:}&ZV|}(eH .E֘ZCn Aa8aXpOM%$[,v6bXpDkN6|^^7d|tGDqu zM8qŕsqq!^}OYc9WŚ^_.ZȒZ5X1jk!__TrNck0T*_~ ^Z ZCRYOf20z˓9Iwd#Iaaס'{;:: _o݅?.ZӮHD%KMi|WYcbLZ@hHBV!55 f 6G X0 pp9sf<:TJ@rfn0FQh0P7JŒz,C$rƍGθ}{ 1wt:uv4Qji9sT8wDBNG (NO IҜv )p.[JEx_6R~b>44MxU*$I|=/ ?T*'B` I`28 bc C M|Ѿ']6Lx饗T#MTAedIzIR0E 8IP,$Itw˄`Y= Xv> @`vo[]m3ns⸌{I8Áw~Gxgf]d.c07 _۷ &O}{vp8;o/zK"^ @bcs0qDdgƪ1{tݳj۶mƽw߁;o %/EGEݜa AƟ3RSwV7*HӧOce  L#Gc۶mx EHM/)p^A(}ō1Y#G|a6Gd!|O#S}Enn.~h5{-V/ a:dW̓"KP$ ,V}֋~m?]VǓonc 2b(R>?n w'"K13Pw1Žd?$Z=p*p'M!ISԔ;z_PPP4Mu Z`}߈jG;{Y]p~haV >PYcn4H,陕=b/(**ۅhhYQ k<QEE4&4 Q`}&^*BQdH/܎[?SgEIe"f[nZ|[I EMM N cC}E ċVY7-DaAK$\.vW© b<|5[r;N7߄q*?c/v[Su+ssb|Q[;w=;ng{ HXC8Hȃʰ۝ضm7\FBq%/XۗOXӈ1DB5Xrubv|{!-˿9)I{*zo( v;ƍ{^>Kx^z5H8Y0m\K! ۍ}ju!6pAMM _x]vq]bͺxAtK{[u{2S`ni 4, vHC|MѠ_-4]H"CAA6wynyo$>uW]l"2Rb7hǬ.㳳QveTǃsJ(Ebq4P"\RR;/m|.I(2V>K?C^?~#"=X1}D$&vK6EA( _넄بHzMS?vVyk׽F zp6.Ň_ Zhʐ˲0!_O̙9:u~^\yW̠)1!//lxV+(ƒWHQcjF^aaH?ӧ_=ErA:uĔqjxDQ\VåOy~Ha ~$%psKI^%`p\;"Nu!Z KÞy  { ۍbG^^!p7B[,6 N8}H$%>#lu XaX y7DŽh/>t s?\:')1#LNCEEe'I'ƁcH@B-96*' viEEEغ3@B&Iuu-"L<%򐄳9ES&0-Py ՆWO{~RQSpTnm<ϥ\⢯ʙ벳2z$_8 Vpnt CKk8lS8`K+bss3n$I77mIg8QTTQ{=]pf_=u5 ESm=8t/2YmV;do4=zYРY30Du jƵO'eI얜$dK*=g}EAZ(Bֶ 55:],F}ں//cV4QCXN}禅W{l"a~?tx7PpNBzS /. 55n;t$I7a^ǐ`C,;&6:Z:wd/d,$!{[O@Nf8yZaZa!I"T0 : Q:dcXR T zL9(--%BDD 8 I_ tIK/e0]ybb 'F_tt\cP-$|$Y1die,  iIػb 0LŎCpյp 2.\tv˒k/H+ٔMQd$d 11&N_M Ip!Gyۿ %bؑYD?ճC(biF^^ j F,QYx<Y ()Deex^)S`ذ G6W!>iȦ Ap@^~nO2eejx 64 N>z0 IRP^^: 11IE}}mIR*,SA'J1o8#wߌ7s2s~)=M%=GoAnn.r\*yp=/$AFCQS׀ t:Q_b@Q4rr5Z=P%%ez$$$bhllӥA%WG.??LwyzO6[)fBX *++1{l{M Z#F$`)5z_3qln0ra xJƮ={0cXdg߯m@"z?cXsx٧寿#\CC<9r@Ej՘4iTp)0LX* ؏7̟oߛ}H.91KMD4EBV$*l N d\nXmfw[Zmޒ:8B!3gbͺ7ݍ'aXR,V 63&CxxC]M57quC ӕd0&|;~&ViR#t&YQjJ-b0&A@T+ pz^p%˲XFu;^{߀"Cde`Ӧ+7Ǩqfb`p@ nZ'-V`o4{vO@||E2:.XhT.V1(h `2+((@x/%E4r IȲo9ժR@bc6tj^^|/ sVgrw0. 5*CW]5'ݻ؈4ίC , \u@aa! rj>g vο 111G7-DKk+ b1<K0( 2riii/̞9[~p]{lbwUmT*Ռ̌w}QEm~.~{477#""})L(-X[- ~t(⁻o-?X@̺WA\7cڭܸHJJ&\bb>c<=`i $f EDD@u7GDGE?.c3cʘaU[f#66v$cEoj<ߛL&\yȲ$t]* ^$_Exx^~a$Ik8, 翽 ǃzFfA j>۶z+rtP$!w}"DJJ 4*ONn6zyBhh.iUEoXzMw}QQU14s%UUw_n=|ؘzov7  @SaP%<YjJnS9 /_WxUmݴ,AP]scꢤpǜ0<}Z5I°D䎥%/o~ NȰ;p{L2zpnJ!$x5W^ A!>^<\^U:w%( ?c_{KC^Qٳ -yri̎{ ͍_ U666嗸aA !ҶW%m]ŷ(@BЁgY>~qCgcYfA$l6<A-惣7,yPLNN?>vă?%&MEQa6y8s PV@i;'Py0 2hϱ tN?NaY Mv\h`5GTpcHjJ?Y6H?1g4)z\<."=)FfrrIDAT(u.'KRBL]OiIzaA<}9i'%S9q:d4B͛Ʉߜ(Eu5xf*mV`q>y/$m;Ȳςd8x(aM-Gci1ȞJ,zM8I "8X,95oG_$Ɏ(jBA}I\;G=t2YUSHPD|lOeq(p:ڹ/w{vc.=4<\Nf͘%+ZbQUYay61?<;K+tjz1؝}=zt g6kk+q"**cQ\\3g0cʙ ;gFfd±#@F@q 4"gDdq^!n}{0$Ux\ؼs9ax'{ޕEU910/qCQ԰%ץLhffjZ䞥0,,?faACѧ3v8|ݿF!2??yF. _L42Mن:gkuq, "8t(MAr ,(.Uʕޘ5R-7ŀ~HJܧ/g _l߇!C*/ߍn}QQn޸ŋOH_#<"QQQ8z :Og`QpXh&KY,Xv#à'~O[i&L36?dNx?{JYѭsLFbŪ/x.8X=&#eq-A@mR OI[^H5X@r'7JĴIJfbJ)oߊ^nAf`L6Fn݂ۇ>ɽ+8#;B!aJ8Pƒ E6rƴSP*x\t~jrj֯lӦ&^=!(rKRwYʛ0ک}ψa^}~B\Xp X ] ppf ڷwd]1XqrmQtJ\x֭9غ c9FsP`(N@yMMjV\^|ccbڬ|S   +g\~r9Xe% _ ZI㐑;Spg^ux5yNfwHX_ojTO~xayΰfϔS{sCE"@wu*eĨf>3] GEl^"Fg@Ƙ PdCyG~@r$5Ͽxy~rD4:s-^NTVI \s<7<{ Dq = !o$i4U+]dJ^єRvo.]Ͼ^߆qp zqV7%;#TCtJNJ)6~sh47w2֬ǁG üY TĐA) 1{>(%8Ò8~Htt4:Ԉosȹ'9gPSyz¨e(($VOʝ޵@z}k" bj7OV/Rk9O=̱W8 9nbܨic\T7Z|K1NV :xMP 18z]m)))yff{92"9㳤N1R0O{I:o%ۢ3gF==<ݞ^khP'1f8Qs.JQ7Ņ/uO*7B_7u,'=TzܥkNL^݆i'8y;x EW JP& &&V;y/qǟ1wгDFE5UU x |Ql 9Dc;˫jsԘ^@a,_/LNz {=b˗r@PXX!#321y=!iP^^mM-V3hK?*a$"=/:#ﭵD FӬA%%e}u{B&?w (~&,@eGcJ<,VwIa9S&__5Lo'謗aՒr(!(rVǖQ>hKpwN?ch۶-&M Y6J$LBDXBA I{~"}-$HFLL}%%eS)SG ;zڵ\&qB}%(' od૽Ju1UVc O:bA)~9d 裒 \Fظi+!iɌj-n 0 0yέdR TAKnU6W[hYKXg&F F#R *0l*/(ֽG9s]89r6#(tzBC%(EZ"9סLc&uXEll,L"L@xx8Bu(vqqPfYYYԩ#f oġG`Zѷ߀=mS'2ǵU,K.]6}Vm?|6 ܺUdA}z_,"L-)aFF#COoTJ@) K PA7 &G;v섫W[p\ܭecC$`ΝQa̩t{)~|zw,o5fCm;f~eGʪ4GT W*3t6oִVfx63цn>Vg4_<1 %\1 Rx\ ^^Xŋxt8C0cr=^zcǎ^T/gmӣoR"p9^^T|Ma֟+ >ɽt` j]ղn۵!SCRwNaXf;=xr  (ٛݝw&N`ر@ڪJ 6@xǽKX*7 <0_ E̞ǘg ԁ (S*$ og].f6l!<+M{o(NCMM R)zOXD"x@n@&R ^a0a4Qk0dBo0@ӡl~&T͆7ئ0g9?Y@HYQ. EHsH8HY !rU&aYxDjoR_!xP@ޮy;f%Etu?w'EwFbBdR xA@XX8\>t:Wh2d6ܯWQQV^J(⧳!JRR ?9ۆ%-Э{|j5._Gڃ[qQhɟ0lP QO"p8~kpY8TFfv=;N%cKDjo1`j+ݶcW)9jœEfo5V9vdD:]vrbTHxP( WxJ뫁Eg>ȽC)( {&Ը8,_".|AO?ߊ]boPB82g,Ç,H8lܼ q?!zME{ CS(fsu0_ׯ^x{Qa ʚ0 &#Q< 8mnk׮݋k>s9c18/&'AضGNQDHhF{m1np)-m"3O_v&VVqj&|T|cW'OM~:sxʏxccD7CBBp<51aa,n@[" :<ρ2/"\VZިj*-"N<me%w O2 )Z9}ʹS"[#1]%9rPP0|*0_*V*2Te0]%WISxkt, ѹERlw4rWD"J2 ۦM碑9󨬬(z6ӟ uln,@IENDB`pychess-0.12.2/pieces/Chessmonk.png0000644000175000017470000004357612642235660017505 0ustar tamasusers00000000000000PNG  IHDRMbKGD IDATxw|TUǿNLzHBҋA,Hq b_ܢ RT@d#IHg>{3w{s{ŋK\uJP,^Xjgpu7o=kBtt Eqŋ!C- ny### + |j6Çw9|ƀnsrWK:00p_DDK6Q*pX,DI$i\\¸a&%%.999ddd E}RvΝw^jnlct:<>//т iҤZpww'** Q <k^$i (ʞoX[JKKӶ_ݶ(rq$I"99gԋi1 2CRDT{R fB@s);挰!y{ݾPm#IT*'sݻw< EJX,lSA@Phh $x_QQPNr!MFdd$Nb޽3wwvin\tŌpК* WWnP(@jzʻ( Ao+--]8' :M>>>O8X;ApwwC[E=b9ٳ'B$9s&]vȑ#̛7sUAEf͚ŦM(**`V75+"V****8z( ???4SfͶREX.,j0$)Ju'quVۛeP{kjuieeeΞ=F)HdBR]! #Fx WI CII ۶m#..&wwwRRRؽ{7[lAat҅D)--l6˗ynŋlذ+c8EG)@OABt: UUUO uTʨIi $>8ApVJRCZ)TUUf?ѭ[7V\ٳgY=((QF1{lrrrxw;v,?3ƍc@UW^Օ7rz=nnnDFF2a^}Uz-.\@lllߧ~BGT>\kAzT*GvƆ ۷ vGuZu$..ݻ/Ouu|M6O ooovyGGҫW/?͛)))nSYYٳgy뭷OXhjz.p:j%,N_?? +I" ZNoSg5Li4l6{X|9C.%%%,Y .\HAA'Odܸqܹ777{9:oAeee}}w1m4JKK1du(s(Nruur$I#GRň8S.Àz3`Ƞ.++ ٌ.]j;Fȑ#پ};&I&a4YlY"I8z(111lzy]: U*ի[ö(z5֏R'BF~񲲲4l6P'yf>.\1L0?)+aۯp ;r@!AI^E?]  oc$rib FPpINv܉?c݌5 ^ϑ#G^R1d?R7#^H5?bZ&iGҷo_6l@߾}0>qzN>M7?m۶a[sfwߡV'^$Iϫ:E蓆[(++㣏>bΜ9\0ɹsڵ+J([x衇9r$ߐ$ Z߅jAm(\2F=B1qDlقVG?4y  Ȟ "?0cǎ3yyyjduHTUUsss/Yˋk111~ڵ ^ϢEfΝIDDAAANCE>^z%L&999撗G^^h"xg)))~~"~_h$.M營...hZ<<.\ՊfǤVbcc[ AEy饗(//_PP߅9vAu;$Iz8R)Sлwo"""pwwGTR]]Mee%JR<;8~Yj$_tVk!Cpqq~ॗ^ߟj,u6c\\\"''B`` F: N !k󾸸@\\fz>>>F8֭[)**mSJח`jP([PPMMoѧOΟ?Onn.h+f3?3(@j֮]Kݙ;w.WD6bu;~.^H^ڕ" [o~@`)../o>ڪmN-AoPӥKtB@@^^^xzz"@QQYYYdffUo#!<7N-p.];,7==WWz?LkaۓDhh\V L&U^^.gNlZ0ǸfϞɓZ撝ٽ{7FV+ZOOOtBxx8aaa׏pA7ŋC:- v+vX wqӧO`0PVVFEEb B!t:bcc  $$yN~***jts=z@SXXx]ꠤ^i,JJJ"""~ܹSk $DBBBͭp㽗 LxΝ; /mx5j(puuaNōY :uKf3xx5 vbYc66 IRx㍼Xg:_O3rH E`۠AZ,J&S(;w 60gk(ӧ+WGHwf{fg?%עs֓O>Ivv6luT͛9pO?4111TѵKumll§~c=Fddd:qƱvZL‡~x ]BBB=[[CHn*k+<==Ma߾}+mwTWW /jquuS޽kȎ;8q"ͶՕtz$%%5z\AУGhpclԦX,wSˮg}.WZyy96mߟ3g}}}_NhIDff&GvJbر8qK\QV8}C=/̂ xxӟg$=ӰOgo &P7 ŷ!<<<(++5W r},Z 0o<y-[h{p^@J Ĵ:F|87n$##Ŷ+V`0XZ3 6lh xzz5vB#-B\ŒD;9ZAZ3FIeΜ9;vv_yW[quuf} 00]OOO4MAx 7]|!IZd߿cYLFFח26l E^^+V@$tdkcǎ嫯d2!ф ձZ\|Y^=T*~~~xzz֫w xGIKKkbl_o2 =<<5Y[ӧ1Lx{{D~~~//вZ-pVe˖ʢEpݻYf 1}ᮻj{C?m۶Ƃ EV뎗hŋSTTDhh(E_gj5Ǐ'))IJKK߫2gib&Ctt4Bhhh߲*|L>slLL :=?f޼y L{1HEQfA5;+Wr!a_w*e)`ڵk$IϵsSSSӧ\#W]]͇~ٳ7o^vl޼֬YsMGRSSt^oKZ;v`Z kX,JKKEj(&DRp "j4(n( +*s|'5'N0xkF$ OOOKXT[Zغu+ϟ`0&I^IΝ;:\VVZ2;tn^5k4BjJ*@jf8N \ZZ999曭C=p ̝;?%EEE d!d ՍF#JLzz:VD $i$Iݎ=zBP A֥KyŶ_?J2Y- :t[oT< Wӌ105!Igu8GefïjX,Ajz$Iԩd2hڷ~cHMG:d… zmG=2m4:Ԥc[p NCvDj6]UU&pk Fj:r$Ir*!!}h$$$b(Rk0sLQYY^ڵ+r^OUU999D@V+K]hPEZR}$Bx&V+AOt zQ6l{X,9s +j)&CIIJaa!>>>vf3DuuuDQDuA= `$IS;7.--S*i4-5rֲ) 233=Pݛt"##;%%% `j aX(**rzFCۜ8PZZJDD5SZ2ݢWYY٪7gѭ[7;}yrr2_~I( Brrra͡KG'?( -u IDATn|}PT(J\]]ݻE> RIii)nnnN;A Ķm6lɱ8I8q"TVVʺBQQ6MVxZra%{ $$ I&f͚V]j www(**UApssk $S#55|j۫A0_j>}d2ul&zƈ#p={˫fX)olP~7^$, FQ@(53X; _9K)Ð{ r\+9r$}h4ʡDVupݎdB^zV+a(4WQñ,PM[)\ v:~U\0:\t3gv]p-^X9sg;w5>@~@z?بQ<"8S֭{cĉ[~!$swp)^v ZV>|ݻ|SLYyÇgw2ChoNرc)**:((( 119 _~%{95eʔw9{ʔ),Y =7\5ZVNY~==z%+QXXȚ5kXv-{a|BNbwyI&)7o޼`3|p6o|mڵk׮aaa;Y!CXv-gϞ{A\mAuu5_~%hL&Vj|IIITVV2ydݻ7PCߩh>={0zh|Anƍ@``>-8{l ϟ'22, - ̙3ܹs֨QիO=~!CWxƌw}xyyqP(x"bݺuO|wg~خΠ 6`6O1b(r73m4^y.^ۚ `hhעw+/ׯg+-$nnnW[{ڵkyٿ?裏iN?={qF6l~-qqq[-Q\sh[f{tԩ^x.^OV~^AXp! ϟwݿ?mq3(((`̛7^{I?F' 9gΜ%){ǠZܽ{wXjsjqZ'x3gr9ӧO'N0C+**Xz5/"<#P3gK.e˖-mΌ=A$9lv^={ԩS|gDEE1k֬6wBCC9|ZKcnaMVƠ.F<|״n74K5ܤM6[vvKLL zzUV0;*;w~}=ԦQ7@RR̞=v&uE8w\;+}7lvF2&ŋSPP  ֭[QFDD4ZZ@aaaZi΢H8vNYeeeiΝ۪?ީ뮻?$]SWFaӦM:tO?qIvy_c}m5sXVBBzhڴiDDD8QUU7ntJj5wqǎ i n@@yyyMWT7kMII!<<ӧ-mV߯+ҥK|A;IMMe֬Y9=u]#Fxk111 ?|%I⧟~nh͍3N˫>zw3gBx EM&+V{bmR1c/YQQ1F(֝EϞ=IMMmր;iҤ&;vJMᠻwjM \JJO>^dپ};wuVFqh4N6:KT*8q"]ibYxyy1tPy6#1vVMZ28 "zBѴڧZo>LOOӟļy3g#G₤$. 4({1r1 [na\|YuŔjO>>n(L&V+FՊdbΉ'qwwLmEUUV$DQlSč,pw}w֭[233%g_$66044&SK]0|p?Weիm/^:ZcڵFP\3 ƍ1 Nd$qIe5g!.R_~ƢYd Ǐ_$..о}Ly߰amk՚!SH4뭅c9}G0a Bv6;Bf3VݻYt)@{;5غukT|˘1c=no>ƌ(ۘf._/СCO۷%^/^XyBBB~UV*DFFr*++RCf矉fΜ9r:4%%`3Ʃ' ʕ+Ffҥ!999̞=DDD;vYP߿`rrߚ5kݽ{w.\@yy' (['OR\\̠AZu]~~>T0bi9PYYɩS2dHD= ٷoߝrˣz>w޽hX,]w]vӫW6 QHG@S\\LLL 7pJ777jX~9*SF=Jbbb'Fl-=ڡ$yyyr]pŔwޏ@ȑ#E1.!!,Pw}nذKr7yxnnJRښ ԰9@<==qww:tJJJ'112 ï$I8qLMM׷ٕ3U@>&/f͚uöm^?~|᪫>ӧO3wsςeKJJΖc'WT^X7!88XKDzzA ^^^gNTpB233ٴi3f@Erss;Pz{l/^bJe(T*1v59 c׮]?PDEEV?M]0zT*V,^8"ꭷފiFF{G8q l6֭[ 7 y曉A`Yz5xyy!iii 0AuJsM,ZPJQ )&Lx}˖- !<<8cƌ_~ 6|ٿ}Q۷ow}ǫW>|-nΝGˎ֭{zFcX;n߾<`X`+VlRnذ`?Fxl6vҥK ѣGFAV^x!CP(X`EEEbeu]ȣ>Jjj*UUU׮AM`@ d}e˖#tH(Lll7|7|QFmȨ'v]pB_OOπr95##cleeGjj.0000??_^R.\|(BFa>|ɓϦ4/XVye{DZK.ujv $Il޼|gyFx>}:߿<;v;iiiRSS]%I4U*?{7|~Mܽ{aTVV P(nmR]vbƍ*ٳg9y$G{Սhbaݺuh4Ə$Ij|]z222ۡRɼyXbFݎlFVyqRSSgddLwww_-W>|8MSǕƹ3}ty 0j Lnn.!⿻S?hӓYfi&_BppAE-7vjcɓv]MhT$IҥK ___VZE```]U޽;)++cYS ߽{73gΔ9~86'x77z}x̘13g0c  7tSމ!!!={j:ŋ#h4h4 Zرc bDFF} k֠E.]P&''{BMlѣ 6 ՊnՕǏk.ߏ? qA, v^/5t>| gKU 6M61rVBA`„ XYfX!rssYz5SNm6dyduZZ/^{$%%a-[Fqq1$IrWzAn@9ewر#FpzYqĉjܪ/uYdذa|GZGyUo l6<HԢ8444ᅬݾ}=# )--CDDɜ;>>>{ 5={6j|6mPy_d~DuWx¸{y´a#++,),,V< !!!+::+zv{T͛7kȐ!Ϟ?Nk1r±U(h4fEQ$((\;ƸqwؑBMutu0uT,Y8{,iiidgg ( xxxNff&ϟˋ(ٱcg QQQc233s^z%՜9s0撛KvvÉOiij///$<<\~8tZfɒ%t]wޗez=fM`Z$IIDAT/ԩS裏P*DGG3`LB.]ҥ 5 Yu*++)**"--M~㏬Z L$IvF_~l͟>@@Ȑ!C:P* ?0TVVRUUEvv6dee%EFi v|x!xٳaÆ1w\***8z({존 `03 |}}%&&{wiӦh"RSS'<]PPfwVG0K6D] _~ǏSYYIXXӇ T*o0Zpe>c^}U"##pK[CVV&++C-svyDJxEEE׾}X~WPPyIkO'>`\\\ڽK5dggsqرa;]Eۻ(e|?W HuJtх;ܺZ) FE*;v$G-ԡMrq=Y,h6B~N۹8ׄs"BJ%<uSI VfFFyNYM5nQQ.1 q!WE fBAvNfC:F,t:t:E\F>cp8`Y!Jnc\h4j&wL& ÏnMVF#$IZnVfygZG$(lEE/i~tݓx image/svg+xml pychess-0.12.2/pieces/leipzig/bq.svg0000644000175000017470000001533312641567764017635 0ustar tamasusers00000000000000 image/svg+xml pychess-0.12.2/pieces/leipzig/bb.svg0000644000175000017470000001531312641567764017614 0ustar tamasusers00000000000000 image/svg+xml pychess-0.12.2/pieces/leipzig/bn.svg0000644000175000017470000001524612641567764017635 0ustar tamasusers00000000000000 image/svg+xml pychess-0.12.2/pieces/leipzig/bk.svg0000644000175000017470000003104612641567764017626 0ustar tamasusers00000000000000 image/svg+xml pychess-0.12.2/pieces/leipzig/wp.svg0000644000175000017470000001174112641567764017660 0ustar tamasusers00000000000000 image/svg+xml pychess-0.12.2/pieces/leipzig/wq.svg0000644000175000017470000003046512641567764017665 0ustar tamasusers00000000000000 image/svg+xml pychess-0.12.2/pieces/leipzig/wn.svg0000644000175000017470000001461412641567764017660 0ustar tamasusers00000000000000 image/svg+xml pychess-0.12.2/pieces/leipzig/br.svg0000644000175000017470000002246212641567764017637 0ustar tamasusers00000000000000 image/svg+xml pychess-0.12.2/pieces/leipzig/wk.svg0000644000175000017470000003617612641567764017664 0ustar tamasusers00000000000000 image/svg+xml pychess-0.12.2/pieces/leipzig/wb.svg0000644000175000017470000002441112641567764017640 0ustar tamasusers00000000000000 image/svg+xml pychess-0.12.2/pieces/leipzig/bp.svg0000644000175000017470000000121512641567764017626 0ustar tamasusers00000000000000 pychess-0.12.2/pieces/ttf-Maya.png0000644000175000017470000003036012642235662017222 0ustar tamasusers00000000000000PNG  IHDRMbKGD IDATxy<?ZBEBFMEBTci%^J(mJ%L)fHZV[Ҕ-v?wȽ\x^rss_9w!yyyG xyyZFt̀Z^갌U&O ͛7B%J?%>"Ti4UUUƍi]-\pqqq #""qqq_=!!!iiiHKK?wƆ{±u9Zttt.=7nQWWggg<{{* ,--4SWW(((vXp!LMM999a]-Ẁ 777$&&BII PPP]]]l۶zj%ee墮MJJ (//yyyaEqq1Ox򂴴4֬YujjjXlqBu@ff cccRhii4 >Duu5~gdgg-,,RVV.ZFZ(++V^S=^ yyyjjjIߖ i===}w,--TUUANNBBB믿DGG=aHJJzdHƩ#2PWWǴƎ ii6%%%())n}"-- ?fxW)\||@&1d")))̆ ֺW^-J &`hQ(((`zeA GŽ{]U9s&Hm>ʦNJHjjj6m%66*77Ҹy&VZEJJJ`ee5@fKYlll v#dׯ_cƌ{‘H$ӿS(vujaΜ9bu<<<Ѯ<22lenn[[[15>}:f~1o<* /giaVv}xzz涜AÐ!C0d صkW'̛7#Gn&kFbbbڔ122,]e=999 e[WX'DϟÇ6Y|9tuuR{u'6lp^TT]4$%%4AXXppp jjj8p`6wwpnJKKáC29444:4gS8>0zh;wwwwIIIJ"%% Bݻ ((( $$o޼Ann.oqqqz[7n5ʄԩS H8rh4OF,_prrp% '$$CCvƦ]H$8::bVZEQPPe*[rr2ϟ!!!^L ߏLy0x`$%%k}8eee455ݵkWB]]?#/^e˖a…x5?cǎ!;;...󃺺:|}} { C|˖-êU=n>l)K||B$mV5jc?\v ΝCuu5qiƂF;w(===3Chdddpm@KKnV~M 6 pFM?|I&h[W4f:&&&ׯ_$M[.^%$$&&&\mG˗/~zJ }}}O15EjjjB||0q 6ٳgqYBگ_  ™3g#MOO`bbbSXX"t,**;wI_>\w;alذ^b{yyѕ h[ /((-1 &$$tzϟ?gj.99Scwnw }6_3#pݶ?"jIoU=N6mԩm޼ΝՕ\]])J;m8{-~W D2tP ??{,Y"D :Դ`iֵihh@```: JJJx .^Z 4 .4***"%%ǏprrBIIIWEԩSYYY'3wN]]֭?p <T*GYYmۆG=}֮]K^ZZkȑ#FHIII2339g_ظq#qyBWWHJJĉL+Zo$44]FñcǺ@DGG焇֭[xi"Z>}~2LѣGgB%z6sss;YIKK?~<ޞکy֬YVVV8 R8?֭cZ_~Xj.]ĵpIffׯjŒ jjjp%،puum̔/N^^eee,ot?>=X~nlDJJ̓'O;88ІN<}t'O`…,+$$?:ӾZ4 D"A@c{!!!gjuܹIII<}Fuu5TTTZ(Ǐיbdkddܺu͛71z8jk1d pEFVVQQQGvv6ꐞIIIgIKKbfԔ &߻w7NJʠMyǏctk8p |}}Aѐ }}}ݻw!%%ŷG̎>|`z<}#kW8|ppٷo2331lGqz=/_d8|1Z }9rZp!ù IӧO011%F ?CYYY?~e3grd)C m1f̘H TIl-T۷3 mviiieedKh8qˑkʕЬeȑ_~EEEbFJ>͛G-f͚WWWhii!<<[laؖ<[Q[`p` 777uq뤦%%% ֜={|*3g---DEEfz߰aøz[˗/bzhඋ^A}}}y Z(,,dITTorC@xxx@RR>U0] HIIL&cv+ HPUU }}}iOVVyςt7BVJKKkeO hTPP)~$iOii)=AXUd$-E.NDD,1-$}OBNN#|mѬvBCC86 ##>{84{ݻ9׷HKKcѢE|=hannKv`d3+{g8fY666妛^Eqq1ۇ;wׯ, ߿lӦMk7g7kllDDD'Ln_+qFu!++ 2AoeȐ!x [SS666 Zk1$$$0~x {سg8F޽[  4>>>8 mo@BBnnn4q!} m~w8p0_ׯmnnnT^^r#nݺ5l\tcǎǪ>Gs8پG__TQQsܸqWepGee%ARQ__O̓pСC|r|DDDyyy8y$PtRRRHNNFrr2DEEyyy[HOOgh4&MFaر%֭krqqQ9rdu*\FF*++&PTl۶ vvvl?ҦHP]]#G`lG68uTVpp0?d&>|,""BjW %%ooo|C Hpuu0QIXr%[u###;u0: 2׏"5Og#8yNኋaaa;v#())г&w;u޲j*6Y Y333@]]8>Ǐ!#ݻ;%4/G8gϖڿ e,,,Zv0|B^^irhf3FmN"& ~z[;}t9} G"t0]-33sT8ZzuԩSs. 8o޼A||<|r4~вK7>PSSd2d.--Mkɤ`Jxx%K]ɨ™3gPUU̝;;Aٳxar`ҤICee%}pϞ==p@-[.戎D" .b8w\;ekA&abbµ,Os\{{{ڴitmƈ#h!!!]eCX_v& ,%&& +O8::6-[L<իW!''===}ׯǎ;$233; ͞ZZZGuu5JKKE\r/_'OIHHBCOOoDBFFFyhVTTʕ+add###d;} DG/ #rQݩSrO#܍7nO81yЍ7OOOǸs  ׸Kqeݻw(** Μ9әb؉MopIHH0ǺufĉHNNرc1e\aaaμÞ={ȶw^hii޽,qzlr nԩ)-9]wl-,Y'7nLBB:BoԔPf͚rJڙ3g.j4 fagg7oпwB ,, !'U^ͨQ؊tտ5~XR-[lقSBEEG&$%%}vF`qq1֭[W ;4 v0˗q1,]?:e)HHH@QQPVVDGGCGG<dr8qƯ_ 7 6,OIIO,ϟ?o~ Rpp0=Ҷ bbb8>_r {KEEEͭݵt\2HIIi={6}SW\\ m/)) cccL6hlmUl߾oa+T*6l؀ٳgm?Fùs```v 2 ڵ=}qq1͛oooPT())ÇǦM[D8qa .… lS^^/SLaY듆ؗ3g\!!!bI>} * !x@QQ;wnk/ƍAR5k`ҥHLLFßOѺ%/_$qpa+VnѢEٷ%VǡyիXbEѭhjjBڵkajj 4Wƹss9B333cW+( :D.9rTj`ķnD!CERRRgQ]DDÆ Gٳg# peV_=9s栴2%%%̘1FÍ7PPC(,,,`hh4Wk8Vؗx9=3Mjj*6n܈7os(**bܸq,aaaHIIA[[? ++KvRUU.^g ƆXJJ ;wBBB]PEv B.]&d `iip( ,fzB0'UUUPVV(#o>hX.))4~x⯿ªUWSSCII 233L&#??+k˗<ܽN?u?+?555٭5'NDmm-* \4JS@'^$/[+ܧO 048{lŋuH$-[-[=GСC nle4#iВڈӦM6"""H}BBBCFFϿJ["III;|Z ,#~:.]n{_4[8q>l_@)233l2wEEE̞=p%%%N8>$$罰0atEEEz ₙ3gbڵH׽0`>|wrFii)~gl۶mcpbbbd2y+W[ЀWB^^eee<4/AlFiڵkx%򠪪Z±^x666ƌCCC|a} w/uuuHx~Ѵ~˗8p qE磩prrr`aa &֠;!++uֵIMX,R爋*\hhhŽ{?~Ĉ:uTҥK 444 22ć/hͅɽ39qDe'_|ӧ:0TxBEAP+++vKII!** eeel'ㆡCL&cɒ%l0))) ᾘ@d;|VVg"Ʉdi.tvraUw=p˖-|F@@+]cbsśί' 6tZ˗/g8epnnnG|g#vϮl[[[ֶUV|݅JٳGСC쌊 o"͵kײ偦&x3*++!--D"SBWWW3SS>:Rw;sp}t*l^Ǐl :::mژD>drsSgϞE\\ςœ'O^O2&++K~:&HP(ϷGBBBl_%dwgKKKCTT=8sڄJ޽{'=a戏(<<|M{'N8TFFx)]QQQL<ٳg$ $ ÇoߎL<.]ʰ[`dd+W"##e޽uRWW?ƩS:t7xzzɓ'!,,zر{D޽{q?7!pAU[Roh?㕬5^pww> ƗOii)Ö Urss׵./((0 ^+??4--ޓ'O0}t?pȑ_L IxbϷID|7mpFBVV,-- "" Q3|(>>k~~/.oܸ񮐐nݺkk111f#ʷobӦM$֭[%K 99Bxxx٘/_ ** u VڢhE;b@__µkڝH{q1mCPP'N{yFϘ1fcc#vsĈ_|{pmHII!((@s7eeeDEE(((qeb(++Ò%K$$$pyQHEEY2! eeeP(9]PRRjw"RO[[4Wʶý}IYYfK999طoٚõ0g;y$TUUAPFFF?؈t# 00b=z4}U[vvv[n%m QXXH] ECcc#`oo۷obFaŊ駟8R6y ;vtv644@PPd2LW_aii L3"""YGetl >zzzppp ҥKzhgg7%11 z߿ǒ%K0`]***WWW߹`ǎhmߖikkC\\HQ W^^ggg0]-MMMطoQWWU***oذ(2yeee.\@\\jkkEVWWwﶛ;v 3f!W1ASSѼ2|{ 4dggÈxI# sss(̙3:##<<''ghhAOO733ϭ;nڲ#*CIGp$~O$$$8;?D;{%,,,c2+sKII 9 M~~~|X|9Q.sN0\g;88}?~<8JR.t4LIENDB`pychess-0.12.2/pieces/ttf-Leipzig.png0000644000175000017470000004410112642235661017733 0ustar tamasusers00000000000000PNG  IHDRMbKGD IDATxyXN_OR R eMʮlY}߆4`.Q" #$m}-~hr]9s>vg-rqqAEo R>c}gq7[ʢ{tEꜦ&s̑:R6lrrr,[Ze}\|ҤIMD"?sm>Y)5kVpfϞ_oGR|ڷov"}exտ(PڬP]#RLviOƆK.Э[7N:/KTm۶₪*-*T,d(qbmmm={޾{}˖-4i2k֬ν񆆆b###W?'5lݺwww<ڵkOZѣG.ٳFDDʕ+߽nbb򣌌 (++.~mڴi3{z.{ydԼ<:_ 999|R b1,_L Wt҅>}-oqpp@]]e˖dZ^x"ބkՑeΜ9hjjTw N>R{joƌqikǠEȰ-~̔|PgϮ <~GGG"##IMM%##`|}}YjVVVҹsgHvN.]Xz5w%55|RSSIJJbٲe>>tI>{ɓ߿!CЬY3IJJ 4H~---.\=666$''s)Ǝ[G8  LMMfݻtuu9pWFGG-[ҽ{wLLL2dH g/_,qE-s;*v 9~ǩ[.߽>,S} 3f̠SNܽ{;;;]6l޼{{{a$ݻp_۶m8{,ݻwgSvmtttׯlْ˗ :t<5Bᴴvϟ?' w/&))D.\HJJɓ'\z.^X7m?Af{طoυgll0$$$аϟӲeR366[n]lwnj?666\xdRSS bXXX @jjp_ff&"ZjaffƊ+ m.\ښ #$ݻwKS#.%%5557oNÆ QP((ڵkNrlbb4lؐƍW7noڴ) <}WW SSB(Z<{,Br>66V =Z(U.^_~͛(K8q,^Xj$f$OVV#GRyФIaijjʙ3g8y$QQQ%F;?Λ7o/~"##Cڵy`իW~jӨQ#6l UJK;רQ#4h c cc~0|e,xXIIIܾ}͛7PAAAoY_iݺӳgO%ƍ#22-Z!utt8<4mڔ)SgССCoNNN 4M6<~kkkH$ gii>>>lذ]]]֭s:::ԭ[ 6E e777a* 4uAAAXZZ eddЪU yyytرSaa!P211YuȐ!厩ADEE!F$1d޾}K˖-yP^I:7ibrI~%h߾=C A]]ϟ3,Xggg6l@BB?NNN,Z###222CYYZd177r)++j/qƨ!//Oaa!$$$ɓ}22tѵ"̝;ӧO#Q/^,Ԕ{Iݺu$Ԯ]ƍHtt4 6Yf:u"""9gΜR)5Bᔕپ}Xܿ_-ZGGG 7oHِf͚y 8g"011K.XYYѹsg4i>y&׮]חǏ#i߾=s?A1|r-[qF 5iii 8lrssDSSAضmvvvY#efذaekAїJ^^oI$1555 ˥mٳgeo޼Y•TPу۷oWJs?EӧODtt4nݚÇӤITTT )))DFF#w7YYYܼyl]vRe ͤIXp!PPP@F`… ۷쌮.***sƍ*G֭Á~~~RwFff&ɕ_$)Sسgiӆ `kk+e /vnnn}={6>D$all\6m^^^ѣE˘}BڵW{ jE\5*ٴiyfV\͛̔:wx ͛7/iӦ С ߇Jxx8^^^¹룢>%=X,ܾ}&ߕUFFmmmmժmڴZh! ߇p<tTUU1bPd:p"'''h\k8LRNlMMMz聧'YYY4lؐ;wRV-L³gh߾=Ʉ]`ee%e( oزe vGZpvv&;;m۶Irr2Ϟ=@zSQQĄ֯_/'pC,ˋ/O.v۶ml۶Mꜿ?/_dtޝ+WTl? CӓK2|.]ʦMؿ?={q]tٳ1`ڵkGݺu9hZdggc``2999lڴ7o!L9}4ݺuGS_п_ >akܸ1111XBJPWW')) ޼yCNN999:ܿnݺ1o޼j=|YYY=ʰaسg@۷'''4iڵk!>> 8{,q]?EUed˖-8::Ү];nܸ!ٳ'#F@YY777 {eeeԩfB]]___a>Ykڴ)NNN[AU(ҷ,=zjzXx &(L>p֭[ʴi̶lR%Ɇ7III())1bt邹9FFF%[o߾焄υ  ;;UUU֭$}$NIII W W$Zcl޼._ݻ֜D" hժ3gdƍ >(._Pٳ(2{yyq-|}}ٿ֭/L07o+\>IuDY"$$W;wɾ})W]JJ 8pΝ;uVʭ[U<\Iڴi<`ܾ}˗/lVՉL 偃îC͈gٲe u5B[[SߪE3yd4o}^DDw6믿dILL$.. TUU---5mM]6ooo5kÇ޽{<~ILL$33555tuṵ$''O[U+Wa1 (s?ρ $9ڴ)3Z ɯ14Y>cf^9|EyUV88~8;vCH#!!m۶ T^ر;v?=TYRRRdÆ \tyn:>|g/*׮]Krr2%SjddDFF TԪU Q6:t耯/VVV@Q`$ 999+βBAAa|q(BfH$BWW M f7&Ǐ7J CV7oqqqbBBBpqqO>%cD֭ټy@Mz%M&'aee%޷o+W3o޼e*ƏρGFFcccnܸ!'4b1888^8u'N@NNS_]y&&LP}:رc899#/2JE\\\5֭"1+I;&dt˗ٱc***3Fa=Zu_.##{{{6n7|S2IΝqss͛7tJpI[n͒%K8<O$x@$X 1={6TH$"$$sΕycAA^k׮n:bcc;vGƙ(FLL 999eFn޼/$!j)1Jʟ={&+Gann^NV ++/uy)e,,,HMME$QvmxիQSSc֭qΝR+p 6/_nj:ˬAV2pBx~W~EEEڷoOhh(|E 8sss~R+TXչv+W`[%%%+SSQW_uL 6zzȑY^999ψD"ϟϑ#G nV:uꐟOVenD_J_CXXX.]B$(/$AJ-V>Cy&FFF}LJM"ZZZR|8k 3OYXX.zVi}TTݻw'**Sn]dddhܸ1+W$33GG5xiOٽ{7]taرp]\U̟?믿@WW5kְ{n am;99m{iS܅׼ys"""+pܸq۷o&Dlj'ضmՖS#C>}:rrr,YǏsyTUUp<}ӧ5BRSSIMM899aooPV-bcc'((P(,,$&&ڶm˒%Kr=%PWWߚӦM$I/ pmN: =**H*7J㷒*}? 9[33Dnn.Iڪ(psscȐ!4hGCR3<<<<>MMM R-#O?~YOOO.\P#髊k׮I拉qرˋjQ8//N۶m{R}Ott4\r+WЬY[233l~qT%&&Θ?ÇVG %%%,Y"Bcɒ%+꿆w~x1}7^^^-?~ܧQF,^xٳg+7o߾ӼysnݺEll,III\|+W"ei(P^^T怊 ,[ÇN>MAAC :bĈfLpV׫W ХKϟٳge/_kɒ%kwnֽ{066fԨQlݺU022BKKTÙ3frJ)xyyK 2zpնӧOgСn:-[^G-~:3uNϰ-?ԩSӶm[ᷖ\[[#FNe~kݻLJ2ϟ?_tr+t;qttd!ߏ]vm|||hݺ5̛7˃ԥe˖8m۶ԩS7l ԩ/Sz-^%hҤ wnnn%(9wG#GHm$ӆ)))翌W~ƍ7xYQ*͙3yLvQaǏ )bų%r'OjTx}SHHH(X,ٳ.OZ]|k]>\*Maa!=ZC(4gh9{JIhݺ5? yusNԳ*/pzVz){FQN;F ˋ;J]8pyIyoo֕5J(.$E,ޅ$%s!'U6e]|9?9s}yczzzLlذ-[һwo&N(EE.]EAJZRQXXXp-ޭsRRRJܹsԯ_j:]o-gUBN\Xzz:wonjӬlT="Խ{:&L/|Bx||jj*iii r. waӦML26mp DFFMMMLLL͛Hmj/*RJDBJlmmz)>zHđ#G͍hiҤIS}[[$ٳg8::ֹy&&&&| QQQ# AV }}}ڛ7ox)ƍc͚5Ѿ}{߿/FFF|Ailʔ)V7###֮]˭[gРA㭣c][[[a9h̙&MT.eJl$TPRRR d$&&ҪU+999bcc+iPRRbȐ!9r佤87f&,qא!C\\]]?˗Ӿ}{qttT-l^^^˗/?mjj_H~jw3eRSSY`W^Օ,,--Y~=*!2GeANNaÆZ?Uj:f̘6q@[Gnkk+dRxxxo׮]#GTHeeevFF@ZXv- ,^ W_y_̬#..59sLٝNH~޽[o8q޽{o>aT(++ njNZlIƍ?kaa!/^ 00<2@fرceIŋ۷JC&Ǐ>}WZ֭+WgxГ'Ohܸ14h@аaC 144?~HOO탎{ $MU}oG&O<ٙEUѦM]E-͛7Yh#//O~~>FFFҴiS:t={\SFff&nnnR%ʃ@޾}˰a*4Thsss;3mڴ[nAdWƆBN<ɶm8x [˗Φm۶lذ---ܹWK.K)eѣl۶ϣTme$?6p +={B[7͚5k͛;vl+ >}/hѢC at҅;wĉYbEMUUU뇖#F(Sӧš5k`֬Y&͛U& kWoŊ2 &TZ`gg{a 1]+͛7N:t҅K.]v%/F]];vp\\\hҤ Ӈ?ЫWj}DDD [l!<<,ԩ_233$%%dڷoO׮]axzzҮ];޾}Kll,/_$??˗/JAA3f(QBSӧO͇^hrm<<<hѢEzzz zu ddd={6ܸqEEElmmEX[[cnnΆ `ӧ_syTTTՕ;vES)S8y$Ν;߈26663j(iР{>ߎ ylW.zJi;ЦMR_xӱGCCCXΝ;w~:(**" 0W˗ʪܺu YnOTUU%##Fq]Xcv _\\\ډ\\\+_U33>|VGM%U+|?O6i$ǏcnnO?bll\rbРA%"b*6O5~;vƌ3 cĉ899Z͐%<<2ؽ?FOM W/ģG|V̿"CCC2Ē0!_jR;v,-bڵl۶:1e郇?~#??ԏ}m\\\YjR===IHH\Rhhh(ݻWʋk׮^zѣ fΝRf[YYk׮-ҥѣGΣ߼ysa,m$5ˣƋ/PTT.+)S22+_FFDXUi޾}+'(𛙙͛Αe,_fo.''M_DG 4ݻwg߾}D"&O7{.WAJJ wrYfD";v8PP5kiӦM4Rx:v۷y)FrMGGbbb'N&H)\޽)))1}tFMƍ)(( >>K.w^AA,YB&MXt)^^^!6lBjj*BP^^ǏϏ'O*h0g2J^^祮_~gϞ$$$t(~ɓB}JU)ӧWxqۙ9s&ÇN:zW^IWWFѨQ#bccѣWTRS0r6mD֭B[[SSS[=z "HIGGG(*/_̱c۷/GKK CCC.\۷"KëW֖/_^vߍ"&&[r>33\^^- 3$G4h E]Oİaa9rkkkRSS2d!!!<{ RSSҥK;vK"//cP6xGnܸ!/XEXr%ɓJ}\vݻy-Jd~А7o_ҡCϙ3gzHΥ"z)mmmӴiSLMMKgff&b.^FGGuHd߿&M{Õz)+*/ժ#?3?3c޼y 4\  ['$$3gΔhҤo4(// DFF >,ꫯ,Pqqq֭ӦMc׮]%>HDڵ%uGK;nMUDXJgNIdH$YfL4'Ur5>޽{˼|R?PMM֭['tfffCPPP}DZj?鉱1 Tq ɓ'mV|4i , !!x.,^`űxbƏϓ'OѣGL2iӦUEqiɱ;w^z̜9Sd"xCbb"vvvԯ_+WH{:7aXlIj `bb_աh*YW w…aB^DN6֭Udgg3c s=X[[k׮SN :֮]J?fHR$Pի'x͚5YÇtRٸqc y&Mx17o&;;yyyV\Ɂu/^oԨQ&7n\̥K߿aÆ|=))i?#$''OXnH"_ӦM#GkӴi+iiimg̘߾}{8pݏ2 $$B9}q4ssNHpÆ ǏhтNjC__<9všׯKr*^~&444Ç  H)ܱc8p PT6H2}:wر#:::&T냢$++67FVV.]燙`ZH0sV+oN۶m&00ƍI.[YfN:%ڴGUUSSz ,vڤBݺuC֭ŋ9rzBKK\e^ڵ+xxxh"233n .׼~Z8'GRH&Yt)PDՠA/_:::DDDf㴴4^xAڵ2jH%7oE{֭[yּ}|,,,'77>H^z~~~ܿ,dee>Pֳ+D#)o.R$==]89y333&O\}ZT(b\d =NNN<}___n޼,^^^̘1CCC-V 11Ȗ-[$::yyyYf>}'N&aeeŝ;wG3ӠA4h@ǎc~~>~~~dVQ+')@Wڹ>,,T2ÓX`7p6IDATndմjՊ f{F @nn.ׯ_СC?~oRn]N8Qieر%%%US[NNl:w̃>|C91c 틣#bE| b777zŨQhذ!/_g޽RޜO uV†V(**ҫW/z%ʜ>]I_%(w\\!!!DFFS&קA4oޜVZщjժZsNٻw/ߟ n׳qFϟ/7lEޞWdž*ĥ"1K@@=">>8222:ZZZRn]iӦ =zaÆlٲZhttt*((_t7oYܜ &p2.6i҄>}?TK}n… |Ŋ=ٸqԹe˖qFwX,櫯o(ӦMc>( .\;w~ ""B((+))ѲeK"##ٰaC#}5554h@`` 9z(GM6̛7fΜɹs9r$ol޼%%%ٳg:::eGV })0~!VVV)&Q0AWW}}}ӹs999|7Rت"##CZPRR"VUU~hS lP`GNN'N`ccÌ3PUUEFFul2""">}:ΝcdeeQNԩCFMM i&+7-|||eee;v,mڴN:Ѷm[fϞ999@׮]),,y oo?#Gh\4߻wѣG#//_j 7oްqFdNe yykݻwÖ-[8s MϞ=C,1Ю];믿f!*\Y] 4+W?QMX^{nzM=>\d6uժUӣGڷoO:u$&&HPP`L8%ByIZh1xQV-)J״4222HMM%<MD]~CP`uuѡq4M4 $qtth=lRx^SpDn6mRTct:h48==MfF*.,,|Jp3 *xGZE,C64666NZё*X1IzښLfyyCg2r|ODR ˅P(j MYu,UD?\KKK(BRq BT(hZ 8ND"܀eYIEZ#=aJ\FVv `~~El6CbnWF9L%` 銁lT8G\.jXPEF~?*װ,+/?yWm1 RqNIENDB`pychess-0.12.2/pieces/ttf-Line.png0000644000175000017470000001663512642235661017232 0ustar tamasusers00000000000000PNG  IHDRMbKGDRIDATxyTTǶƿChFP p5.8% n 4DE%L"(( "A"8'A"QopH44y" t7=![N>Ǐsj؛ @PB)Q>3@vύ(p\ :^EPI-5I6"11۶meVj"HEFFƔ.\xEYvuHTWWw;vT)*,,0eqN^x!_Z!U$''fff}m!=9v@KK rrr)ÖCz8%cǎ~>}Z3&&&]Y6)^>|Ximϛ7CFߖ.6񭨼/dL&Q:rww/}#Ν;+^jr7tzlٲϗJ @xx8nn ?NQ$Lg,Zt@@aaa˗8{ٳgMl;vѣGotRnmmmu>~ϟ?Ń">t`OOOy{{bX9o߾}~~~~d/-6-?~Ք)S^^rfá8λZ[[Ū3==}DffƮ_&Ljiiiܽ{Wve s:|&[x~uYիWxҿiNlXtF&Yzv}||  D~ 8e=Z[[2)Bhhh;Dp23[nd`ٰM//zyyEuWΝ;n˗/bnwСȠE9^^^"?Xdȴi>oXPǎ+X򦦦066ommҥK!x޽{7LLLĪ+66#GTTTtE^K'CLfF ʻc„ ɓ'U ØL3qm{ۉ mmm8p]ֻ`磡GtgDF'c<<<ꮜ6"""ڥEFFBKK6<<5\IèQ0sOdR[[[ >\&u >b%#}}}E]?I++>|n"** >lhP&AY~zg#jpdL9eIGP(DpҫԮ ![rZύpBGP(DpBGP(DpBGP(DpBGP(DpBV*gUh{#("8Bp MrBBBSt*fkʪN"8%Ѐ]o %''`Oe%:"8%Ѐݻwvjw]MMMOC)FٳgϞn=&) OOτ'RRRXKA\+ 555a̴4ݵkQ=7 BQ|Rd˗/'VulժU}n߾}l``H[/yUbLeee}UaÆ9O ;-MDp ݊Mō7lQ{bbb^fRRȮ\ö"88~7oޓbu^#yO7F*_BGGrBCClYBr& @G"G-J\>;4SW455aΜ9ttML&/PZZ}אܹ0 :=D`0`ll,Cc0ww__O( ͡g80ܼI^TVvg0@\1vu,맳g"55uQnnn椤G7o (&8--md2_p!Z0@R(;322>|OJ$8U$ȏWt[kpQ˓8|۷TԄ嫪֭[9 %R ͵ k vڏ#2(999Njk׮ثW*LRUUULդr"ۓJp<|%z$C*A(|/-..@P EY?eggsڐkz555rۍTۥLzG8H61iiiOO?gEMM 2335N<)` E`` 8l4=  Zvm]7)ZDDD@GGGɖ]d2zzzN.m۶F 2wFuu5CwUu}.++Hddi"##9_R={Ы!, HHH!Ca^G+**R߲eK5r0`!A||o2TLy0w\$''``9s&xwi^Gj~e^``HnީS /_ѣrJ E7ohkk#!! T7o޼+4\fffw}wҮ[ϟ!CcժU+yi\.t 8;;ӑ^lll0zhEE?$\QQֺu-Z{uVhhheǍǏCKK Xbd⣬++++KW_pvv˗pttT0C}gcnTT`>sttӧOammOʳ^@ ͛-ד zӧO[.6}}}"((H:!11t~&LpċxFtWWזlu*۷n:x6mBkk+0h O?qMĜAW=222zr9`…=5"Tw^̞I{!33?FBB,,,p1̜9<ƈ#?of$+ [D9Crr2"44))) ϑ5fBBB 011TNoh{[ZZ?zzzXt).]DO.XÇ%*1fffbHrs:pի3gfw>et6Hkھ8g̘;w.永a >> 'L o +;;'ẳg;88bll<޾:66q/k rgj8v{O?uɱwvv:v~С-|Aq [}%JLF׷ G tTO8W_1`ȑUPR (B J =aGbsuu?wH̯^+SM$BC4Xr|"H$ܻwh;N$E"egg:bF೽|,!066pg3A1H$8fʶ_tN.~m%L^Qs#=A .։kzP"Y؈Fhkk˪J[b*DEEh;5&jeŋXYYl;:R n„ W]]vicǎq-Xŋg[YYP1}G{EO;C\h|>vD._ڣ)ST'o)]!,P"ڵLLLL?`iiٳ(GGkkk|ԩSvUϑ#G( p9ԩSԑ#GJ,ʕ+ȯjQTT"9*³ mw܉YfAxK0 _mjժ{'߿'lllyzzz,--KJJ,^xI",44GEDDĒ/_N?<|ΝӶ˗mĶmۂ$^!>>>ؽ{7ir7x9˫6aΝ[VZ5h[(((@AA6]]]_-zjaaZRRƍ+Wbȑ!<<7oDqqgF^~=ŋ999Q;yM6moov"|gffFoz77 &&&{.%WirСu֡eɲepn1cƲ7Ēxܽ{555`ĨQ`ll+V~q|}}abb#Gl6*++~/^gn#/Qbbb - +UQ֭[kkk@nn.},,,6/4{=Vbb"/sb޽p8p455k;ww^̝;ÇBa`ffYf}$qn)Gaǎ( ,|;vЁp̙3M( ;wģG6x }^*D]]zzz'NӃzirp7@TTԉ_...ppp@K[t~ŋɀW^! õ|>~YBJJ @:oIi˛ ohsvviׯ97 ˗/o-#999]:ڵΗ$Җ5ԩSHHH[ZZ f ᅢ`ڵkhll̤$:u @[a ]ipuu~,=먫7oyf\v `llw9)L.WUU=߿%.yԩSoGFF^qC={( LrCjZjii)L&&֬YtI=&iI;w jpvv|8̙#lٲ/ z:CF<(uwܡWk{Ryy9v)w)3'|r&,,_vW]){{REEL6]v6<<<$E#0GzӞ4eV%pv.!8 /}n p";DgMD.=UMSSSMUUUxrHH%8zk8t*+T6CCCꭻz BGP(Dp";*We۪$:TUuG*kzUuBTBQJQ=A*  E>sfu4} IENDB`pychess-0.12.2/pieces/fantasy_alt/0000755000175000017470000000000012653231274017332 5ustar tamasusers00000000000000pychess-0.12.2/pieces/fantasy_alt/fantasy_alt.svg0000644000175000017470000053713512641567764022413 0ustar tamasusers00000000000000 image/svg+xml pychess-0.12.2/pieces/regular/0000755000175000017470000000000012653231274016466 5ustar tamasusers00000000000000pychess-0.12.2/pieces/regular/wr.svg0000644000175000017470000001066012641567764017657 0ustar tamasusers00000000000000 image/svg+xml pychess-0.12.2/pieces/regular/bq.svg0000644000175000017470000000456612641567764017641 0ustar tamasusers00000000000000 image/svg+xml pychess-0.12.2/pieces/regular/bb.svg0000644000175000017470000000460312641567764017612 0ustar tamasusers00000000000000 image/svg+xml pychess-0.12.2/pieces/regular/bn.svg0000644000175000017470000000475012641567764017631 0ustar tamasusers00000000000000 image/svg+xml pychess-0.12.2/pieces/regular/bk.svg0000644000175000017470000000560212641567764017623 0ustar tamasusers00000000000000 image/svg+xml pychess-0.12.2/pieces/regular/wp.svg0000644000175000017470000001120612641567764017652 0ustar tamasusers00000000000000 image/svg+xml pychess-0.12.2/pieces/regular/wq.svg0000644000175000017470000001363412641567764017662 0ustar tamasusers00000000000000 image/svg+xml pychess-0.12.2/pieces/regular/wn.svg0000644000175000017470000001145712641567764017660 0ustar tamasusers00000000000000 image/svg+xml pychess-0.12.2/pieces/regular/br.svg0000644000175000017470000000431112641567764017626 0ustar tamasusers00000000000000 image/svg+xml pychess-0.12.2/pieces/regular/wk.svg0000644000175000017470000001130512641567764017645 0ustar tamasusers00000000000000 image/svg+xml pychess-0.12.2/pieces/regular/wb.svg0000644000175000017470000001075612641567764017645 0ustar tamasusers00000000000000 image/svg+xml pychess-0.12.2/pieces/regular/bp.svg0000644000175000017470000000401012641567764017620 0ustar tamasusers00000000000000 image/svg+xml pychess-0.12.2/pieces/Alfonso.png0000644000175000017470000002261512642235660017143 0ustar tamasusers00000000000000PNG  IHDRMbKGD IDATxy\SW?YXȮ% ҎPm mv.Ny:Μ9cob0c @vv6#-w:<gϞqgϞZvX֭[(**VwDAZh4v;+W8}~UUJKKvKzoAAAx<\#0\.GSS2:RB U$ʋ@uu5B?0w D"K=ZZZGiw$ N`MF U#G 00GFtt4FgVoQA@TըZs=gn'zeLbd2s@ݎUFss3 QXXAhh(x< -d2\pj* 2 .(w;BRR`„ GEN0BFaA"Xh4D6>3pv#+ P\\Dܾ}Vr\Kr/#;<ǭֆfΝ;sQZFkkk1 Iyi/`PpLUe3c]\ލf#22111 E~~>Hdd2B`0X\7&&NpNp3ưaØΌ3Bv; &&FBtt4||~}R"??t)))1bƎ 8P(@ `Jp())aJtvvs+%''cԩ6?_`7++ }||x Eގ"\Nѵv&Jply> ;v ]/ϟOʺxjŋjCWX,6mX}&}縕b|r{{{gmmm.]Q8y$(ϯ{3. 6DmQgd!1h [ed߾}~Ш1qK>g7|@Y裏2" g#v܉3V_SSo'{ [k.M||%ᇆ?&!88Cu| ^JhoowczQ</tvv"##*7~!8gma0P]]1c0Ԫ_y饗A)g9X,vj,8x%S(0ZM0Ryf3pM\I[:j/ 6qL ™3gO544E}}=ZZZ}{SN-įTG㲐+g^.ļ;tNB=Nzb J[U׿իWG2ޢEjhH7n=ǭ! {c;D"ela/1k,Qُ Aڍv/[UT*Z-mĹફqa]z5z!&bڵ]vE0PW$t+{.g̴c8N pL{eee 46v?wk9 ~TEyNaF{fΝ;vw軭j^bq~@sR='yUX}Nz߶nJxz8Gpz0:Sx[qg4 ^۷oCz|}}ٳg[u^g 48=0l! 2JGR8с7oxzt% F[qQbBy"VVK4 v5Hg0 J؈!C ,,G$''ǮLttt0}iVOх@ `8}4 V`|sŭ[PSSL>r[!Թ:'O˗QQQBtYm#2Y1.;;8p9xȐ!8z(̙ . 33;Mzj߈#+I kkaцV'aÆ1 ofw3AIIlw޼'|2=`x]Eݠ t)rL >:Μu\.222褐${1SO=:lSNcƏ?hфf###w-͝GA0:z*M>۷oԩSn>;wZdee|5ݎGlLYTBKpSL۷m6 qm۶ #GɓXtvvV-  ^ƒFD"5kPUUe_~';;(**"6 o]"tݾ3røJ!wt5h [l-WNO6% o&h4/\"tU^əfR(e7nॗ^p߾}8s NyqqFJ咒f|)a ;/J( X50\.@ ֖*R]EcQpqiYV c&P36p5=7CYpyyy6'x|>jkb[[L{u hϜ ˑ'<3f̀BpY;wh\1koL t/b0|e:@IpHII1'ERRp ,\[Akmm5}QOpX5gow fm:::PTT:|`x7 /`ܹnӧUGmm-ilcqf̪U&9L/ #,\qq1|}}ƩpPRRs{d2mXlNI_f~Mˣv0t:>eB;X8H9-8B [U_{5ܻw*Urr)NmqV`>u,~N?R @^x83VI`zy 4}p[JvܹXY^^^V7^^^~,[6{{{jŋ/>y9iZ"-- |>,(//ŋtBWwDz_kk/\]aQXX8fdasF!}Ν;cWTTCъjjjBtt4LwԩS8X,O=)HXN/N \~k׮ k7u`t: H$&D%N3IH=P(DCCk׮zvvv"$$r"}JEzk#b1# 4YzL8\nn.X Cnnn+&kV 't(K߃2gȯe6zF+$``QofRcqWCn-=}pz<*-֙={{X=\'s\%&&f<`{uQ*?"_?.^۷9Y={UAϙ3gAiii̙30]6EL 8~8BBB̟M>Xh\d.Nc _zfpźF O-EN^ DRH$s -]zϟ/̙ f\|h4FX >u?4.b,:طoxh駟~z^0dNS3ԲeːTUUaҥK]isqn*vhŊE|!333m|u֭|wz}W^Q[^ ,bdvo߾_XW5-0BGHHYk]lF{ ӦM.믾hkb_v-/::qдX' A ˗/w\p鈏O2}t;w^G B7[n[Wq8hkeݻw:Y w Ͷ&;0B &Ъߚ,mmmXgd2iDDDz9{OMMeNzDGGc׮]Nܹͯ녖zf^X///ڦ:{ BaLgڴi&{LʎdAee%`, mmmsa܇QFHJ\%+W~W[+111Ba aÆ HOOwWh:ʕH$0ޓ> sq/=V-ba=ma_]lx۶mX Z=ΠT*ֆUV!!!qo;X?ϫ0ݻdž1" :N`~]' 9|?쳾SLi-2}B))) ޽{Zv!ߢ5bcX7o^J!C`.^꺋ŋ]M\.xCW0J$...Q#9#GL#b%~b̙4hr3gĉ'|^WB?NMl+v$l]pPwȑGj9 `$`oACp/"r'ND{{;T*J|W  `.8G.Zwy}YJq:RSL!]vԨQ`٨h4(**"Ug&eob q8ƴ4Q URJN,t%00&L@mm-Əw(zF)..&ɨn"GNb zǏw.IyR)T[[P;> ,)uwLT~:&OLjزgϞӫW"7o;|7oewiӦO>q5}"  5je qXzodJ^PQ)+)رc `o?B7I Ι.&Od0ғ;mmmPTv:"** Nhhh@yy9:ݻG*53=&6{ܦ2±-WWWgenޥ46m^x9 HpR/^Je6H$wqΏbÆ êUڳIO 3D6/:ΩHkGg,?~h6]Å>|qEbذa6L8iiihoo'Zշd5p"##K])6ؼy3M22Ls̡݆qxҙ 9õr&&YGT6 ٲhkkCkk+ 0x` Æ D"rfcbPSSp#߸qcbTTs-]Pxa0Uk5d 2ݻuR{뤗5}&==iii̽s$>[i7^sЧCkzjuVyU<ЫxWalNA*B*"<<LUHR@*#66n,A(//Gyy9 &eDpf,\p@t:|7y&Ǝ'xeeeꫯ a* 'N\.Gzz:,Xv|سgpBL-8|xgq!HNN< ɓ'!pY<Xv-ߏիW[T*8pRSS駟Z5k֠K.uK{ j 6hh4]ܚ|B\pjO?8{y/(A8{,&MÇrxb|(++s=ڂFPP9G"%'&.}+W`p'kaݨFii)555O:9`ݺutKRûP(t-***f|  H6a-0Uhjj²eK1 2##)oL(J( mmvCB`` Fh1<bo=\' RDMM QQQZ{'y۶m۸qccEuuurN?c Nss/Zqqqp8H$>|8> .** \.1bk>}>>> C@@ryf0 pjT*d2h4`޼y2d._^ y_x<ޣ[l9ر8@q=\ݻw}/Ge Tt༼1c>;RPUU*Ν;j潉qqqH$@LL F >ѣGc`Xذa*++{c֏5 ,"2.6dxG:x|>GqzOŌ3p-3xHHn5œaҤIVEbs~5;"//;w.^ 㓵])S__otǏGAA@AA&Mɓ'ԩSt@p(P\vm`j())c=Fn`^7nܸEEE&'?!v477#!!(,,O?ϣ?8kvhbXꫯ|r>|'Nė_~iQgss3VX'N1sLL4 PnOPA<hhh`WjhhVdf^{V>{N>m5矿p1ZM5k֘_"##$cݺu8yѣgj=D{(//ǒ%K p1|`d2Pppjj>< I"S) =]GHH1k,DGG[/.'Nکe)NSNa刋رcܪ  ֧Jp| ,dםݻKRJ6br<ZR"99STӊ6IDATֻL&^G\\ze2EǛ308p(8 vx'i_022_|#e7Z***bHTUUйKxםsǎϷn ffCf&s[[CZt:g˖-N/aiZʕ+ǂ\555ŋmcAAgggIo墽fWݼw3kzʕ,.3멪`AΝiZض+z"߸8%8ǏQ^HoKPpK@bb"Μ9C3PYY9pgJ*P(8`0_Vksx)]dTDCv܉Ӿ`NNHBF$I MMMP(HMMT~xBˬcS7I8`ל;wnق|>_$\޴fL5qp  C55E8@*-*++sϡiD[d$Jy1 CpJ\.iiiI`:ŁfCT"22v}]Ϛ5'|Bzfƍ~?3Mt}t/^aUST5j#b\hlld._z &akrE(((駟F.d|%X|  SV`0vZ-*++=pt: DDDtESF{㻁dOeD0FsGp JB"`2]]]Jy\w0f(--eȐ!`0Xd FQ, / ԐKLL d:'@cKqr 2TTTdSl}UcXY0xq[7@^\"޽'Nth^1ST̛7ݻwHDDaaaR`0D}}=P[[Kuu5oIË `-esW{;=܇\]^9 <pquuu]v|и{Ӈ3f8P(P(=&&#-.us#gozak8il \P/..2q999=ľK$nrrr((([f3az'`2.IpƛZp΍~~~̙3a(JۿٹaCǸ8 *++ZtZm1v-`ϟoר c-J .^2{v''s J~M8ܹsdeeٽ6e}v18K-w!NW.{S8^ߦQ~~7#GeڮyʣK,m.Lp^ud7N455fŊmi4o7d8,oFTRQQ!F={F(Z+jؠzF[귗 NR ڵk-A8M1"'EH`_>׵W#P馛=ZSTTuŞ \B !or#l_q ֙׳j*4 s\M6~F_|rވꐎk^Bk3FN#`dBgmp۷o-[fu&##r{wk=߃<|F:9ton#;|=Ngp>:T|SzRZZJTT׼3hW?ˁO/SYYɧ~*:uŭ6z;0XNsƍh4H$Q5m۶uqˮ]<18ys^ˀ PPPw nΝu.R=O R T[ծDga4E1brot|d];'Lعs؟P`/8ۑ4V " !C<9yyy~-"B]xSWW'p:Rqf0]9AniӦφ??s53f!]|GՉS???Y~(yUSS'|Ⓝ\1'n۸quDmSOMhN?裛 O3vxVʕ+@PuVbcc? P*zVZEYYYG7ɇY¸qP0??a˖-ȑ#d2Yer7u੹իWS^^B`ӦML0PZZ?ׯg׮]DDD1TVVuVVZ7|#"{GKR:q$-- [-~&?1Y,q̙3bQ޿N(!PXXȇ~9{,bҥ;w㺝5XdKoQQQ~ytgPbɓ3g LV^ `%;vXx rss2{ [ne_:cpw" ;v;ӻYx|ũ>CD^{M6?!,X |k Np\[[[KeekҞ]F"J333߿w}wvr/-X`jLLɖÁ"*^#77b ,/Μ9#cuϐ!CxRt쵎L&k3F֑ZgpKi[|yfPPPmÃN-++"vکχ~xxͶ^=zFii\.Qt:o!zQaTTC"gi :tC=@`Q*?pFŶ)ST9ğmX?0'22d=3f {X!\]1UWWSo666@Ќ C'[G%#f$ױƍoa`p:Kdd$O>$ǎCVoepfƦV{{ܹRB;<¶AAAzZ$HJM&S$RPD"d2zzF՗W*Jj[g%^z_jj'ؘ!cd4{9$r\2Ro߾c\lDEdoBt:6mD^UAp}y.;vvccc0 A!g !`V"xSffrܞt`0x5ȑ#A m}Y@s_455j*+c(((/xbՖ}*5"]n9T*Ç'O|:𖟽sNDqɒ%]%KO?\ll7cٿjKii.m\3Bvnj"WbyeW^JKK *V$r{G,Ν; e;Ɵgәz,s!U<O!$@"h9qjj TWWwJ\.7d`DbA+Vԁ=vϽ˺u(//g…Yc O1w\d<|M3. z*++WqgX 7L&ezz~֒FZ[v9<7nԩSVIbb"m&5P(~=gjuTd875s|Z d!??,.[ sDjj*gv=fvݻ*n:ƍ7V+ DQLVZ4( )d UUU50njw# su!qqq.iiֻq3gW^i3Fjkkkڵ\fϞ-N֜YCus8j V\~;W}}ŶɔJf͚YfU7o|w˵q'&x,Yĩ={ɓ'SVVŋHLLoٳgsY$I㶱dڴiyRj@lSNeqDVJ477ar&k^Ǐsw8j%uumm>}x#%qqqj["<<ɓ'}v;5ػz!'444PSSC>gt7 jvqTTT>(iii̙3-hps>gzz:N^ࢳ]s1j(!3:: nMKiS j*gD:cpeKDEEy,M7#<~SѩHĺO={[hT|SNgp>:-8q,4 }aƌ$&&zj {R6m$zj֬YC}}};w.]hdԨQ^D^ Gc3o؎9iӦT*H$.9y9@!B! Aٖr'Mt:\x|B r ]wFiĉvOUUU1ݻҥKYdI8ԠjQ(꽆Jnn.K.E&1l0hZZ-2+I-/0~x N8BKBF]7eРAZ'fJJJZEB:uw}fL&2`ENB!ʏ)//ˢ]OM&33|+xnv Ç@vv6GJRO IDAT;qnX 1a :o޼zP0Ԍ3~h9:WJ>̙3g\. $cWq~044d 8@KbccE!͛7svD!+&p-""oT֬YôiӨ&++qƱs'xb~_;|ȕ\hw'O;D7Lko Eˇ]8|p0 8R!36T1L>7b.ג***(//h4O~4hIII|444:gQTmjGr-,^Çsq G'lD[sZP0q0ALK}dMG͘1c8wc3G6lCTX]cxꩧ>}: L +Vh7i}}ɞx;z` :7eRB)xGL8<63S0CG G~r8)=z=g+466;|b{뮳'k͑#G 1E` xYi|||,T*MrOMNҢ™fdGDDsLlBz"ܹs9uW\ŋ\p .PTTDII ٳjv'c,3ksΝ;Ǽy}h}}=/xlʆ_phpp ((\PO8.曈NŨ@Vc`6[X=IIIv+~~~2j(~i~kOƮHrrrOڭ(00tR猍uI=@yCCCZn8{iJUQR@ڵk!4X^J  tҼ \KsjggS-U-58T̙3Eg}SN+2 /2 |g̘aW c/͚5`Ƹq\r>}LxWOuV\d͛'Ƃso߬Ys{nT*2[OesiA.ckn&q&m- @=s=gΐ?Of-^^VONNn5d2q\T*e,]w}+Wb2ta0JgGGyᮦA߲e-n@"YkvJ;OO_kai7hs܎S5L3mΦ.<<ܫx/tFءh4ip!$ޠ${ZG~\La%VIENDB`pychess-0.12.2/pieces/makruk/0000755000175000017470000000000012653231274016317 5ustar tamasusers00000000000000pychess-0.12.2/pieces/makruk/wr.svg0000644000175000017470000003117412641567764017513 0ustar tamasusers00000000000000 image/svg+xml pychess-0.12.2/pieces/makruk/bq.svg0000644000175000017470000007417012641567764017470 0ustar tamasusers00000000000000 image/svg+xml pychess-0.12.2/pieces/makruk/bb.svg0000644000175000017470000007405312641567764017451 0ustar tamasusers00000000000000 image/svg+xml pychess-0.12.2/pieces/makruk/bn.svg0000644000175000017470000005477512641567764017476 0ustar tamasusers00000000000000 image/svg+xml pychess-0.12.2/pieces/makruk/license.txt0000644000175000017470000000016212641567764020516 0ustar tamasusers00000000000000The software in this directory are published under the GPL license agreement http://www.gnu.org/copyleft/gpl.html pychess-0.12.2/pieces/makruk/bk.svg0000644000175000017470000007227112641567764017462 0ustar tamasusers00000000000000 image/svg+xml pychess-0.12.2/pieces/makruk/wp.svg0000644000175000017470000002350012641567764017503 0ustar tamasusers00000000000000 image/svg+xml pychess-0.12.2/pieces/makruk/wq.svg0000644000175000017470000007430012641567764017510 0ustar tamasusers00000000000000 image/svg+xml pychess-0.12.2/pieces/makruk/wn.svg0000644000175000017470000005530612641567764017512 0ustar tamasusers00000000000000 image/svg+xml pychess-0.12.2/pieces/makruk/br.svg0000644000175000017470000003120612641567764017462 0ustar tamasusers00000000000000 image/svg+xml pychess-0.12.2/pieces/makruk/wk.svg0000644000175000017470000011622312641567764017503 0ustar tamasusers00000000000000 image/svg+xml pychess-0.12.2/pieces/makruk/wb.svg0000644000175000017470000007273712641567764017505 0ustar tamasusers00000000000000 image/svg+xml pychess-0.12.2/pieces/makruk/bp.svg0000644000175000017470000002351212641567764017461 0ustar tamasusers00000000000000 image/svg+xml pychess-0.12.2/pieces/ttf-Merida.png0000644000175000017470000003672412642235662017546 0ustar tamasusers00000000000000PNG  IHDRMbKGD IDATxwXSI$NBQw"Db]kcw튺bCQ+vE *XC U( E: M>u]䜙9ΔgfB=|%Ã_W[}gވugh4uGGG"kѬijumz/peȑ,EEE֨QX _l٬p|!!!Xbłi4#o3l0\zUe f͚umԩ߿?5Vy_;}48İi&qٲe?=y+V0}\ccc[f zsKA <볽=o1 IJpAAAE[7ahlll0볗1rH۷\mo>uw鉰0ܾ}$ aaa8~HV/Xz|pwwǾwСaÆA\\8p@d### 0{{{0ppp5.{˗"## #NsϞ=nee5&**P__OhhCZI.VddFrrr$?҂Ccc#X,H~޽{'pZv{-Q6yfIZRRhy/!!ʃPRR"sJBJJ K.Jŭ['L&1sLTVVvBVVV|C8}>|.ͯ۷?2Le޽;CWWgwY޾}ѣ͛'E5XhDR2N<$XYYd.//ڱcVnnfM˴=}۷\Utpphs5# @YYYV ^888ڵkx b`ѨB^m6deea˖-&c8x .\kkkh(..4 1qD"==g ##N… QWWSNaȑglƑ#G>}%FFFpF/=''Go߾xkiie۷ogee|NLL mȐ!puu^())Q0zh@S_(++ѣbgϞϟG^PRR>}:\\\Z(,,ŋy+l&##M9MMMx{{wJl``` 6bbbyy233gǏ45555(,,gmZ~Ʉ>_kyyyػw/;Gaƌ hhhСCl?t:ÇGMM JKK$\`2+㏘}dիᙙ1eeŋPPP.nݺf:OOO>}rrrسgl:<~V/w3 3{|f0XxFVVָ*++Kpt:={՜ijGp+Gcc#g_[[a͚5(,,ԩSQ\\{b̙o4l̂=1\SRReǏKs`ݽ[/hnoۧO``ԨQ :1118s fΜׯYss._@Gp"`=zNc[>Æ ;wMMDEEb0x`'*!//._ 1bW##VkaiY&WWWlݺ PUUm7u@@޽;XIKKݻ۷/޼y())Ғ+]6~50a'o0?}aҤI}6BCC1b| ZZZ022T*AP H 1clmmQ]]2TUUN#++ , ׮]Ð!C3fdN4D"666eee(++CLg0PPPL$%%F!11,VSæUozիW F;w UƪUx^Dvv6p PPPkZh@&[٘#11011*mmmaÆUGGGŋm6066Fa```oyR8z(V^CҥK(--FCBBt:G_|ʯ Իwo 011A~Я_?,_GŤIrJDGGK6.\G K,mYd{{~[n/4dL& šCCC ECCݛYк5j wR߿_|iSl@7!,X&%K`ɒ%B|r>|X$K\6Yd ӧO( ddd %%iϟQWWIr6`888 [( 555GlJKKЀJ-%%C5؇ڢK NOOK,͛1gΜNyflذH6a„Ǐ*++cԨQ2dѷo_P(P6HMME||<"""3L0ܹsm "%%*˗/ǥKs]ZpɱJj%3gđ#GK&XXX`̙ ;[7sssAZZx%RSSBqV ,''999(((@QQư*++a``ݥ`/ x7%%%())ӧOAѐ#''>|HJtc с1HKKCQQqzg^ⲴDnn^RhlllwМ./ovPVVneBдQLL .3!!uttZdX>}:Əuuuhhh@[[ohh\dffbӦMx+m,a񃒒1cp~?z(/_O>uXN\HHwQv,Sf̘!tY~~~"={Çx"<#)) UUUACC066Ɗ+NKT#GDjj*"##4NJJJxnAG^Ɔ`3(++.)0 a3tFMLL@&aeee>͛7\d2deeQVVij-MKxxӜؾ}@yKKKyaoE1ׯߊ;w?q]@"п +6pssBAPPHWM_ &`ժUs 4it㄄LBVVPUU ι  16}600B Kdd$oB~~>QXX*TUUq^P(PRR:N]Rpm9щЫt.vk-ݶ 46@eTUUŋp=|UzWGp=|U߲O7VO WGp!Ƀ===޽{#11qի)a^^^G%깝n^={\3f ϟh >趨aÆbcc9Y&5k֐p'O6QPP`a3fLy_CC CZ8&*Exxxp7oj2dHko}+W"Μ9iӦL8<(((_vJpݼvk{D"q"*\;*׭[ormlܹs#bժUɁҥKY|wcH~Wm>|1lذ߭111E8UVN3ENPPЇuq ,--ӓg_~/^< .HLLtٝ4L0/^ݻ9,X"&&&Xt)!h{ۿjINNYlJ3?:ɫϟc޼y011s"::K.OK'X,兪*ŊΆ 80zTUU1w\47 sEAAH"$&&&"?i%&&UV!44gedd`٘6mjjjpyL2O<ݻ#:/޽pl߾8.^ϟc8wxÒ%KrI<~zuN RRRd@\\n݂>}5$@899/^1Ο?+WZ(_;H$ 4{EHHnݺժPWW{^SSt:ÇiMfǏ[oXn( 'ڵk哓G(ݽ{{˛VXumaM[2|g~HNNa{؜={6N>;w#_._@-9v0|pL<hkllD,ᗱc[eZeǂ 8.\EAWѣGޏdlڴ ?~l7Q]{cc#ޤdktB4ll222 ' uI^iM<'_rt:݋!CZŦn566r@VV233y;rׯ_/i/(H{?{E˘-awSN#..nctB C ˗/LwMc" 1P( yl={ݝ5B?;99yڵkvM0o<[tIIIʂ &V9;;CKK 'Oy?//3gĤIٝm:L,++k7 4ƍ*ܹs2/2PcXHNNFDDD0S| 6 ($9)7/^$MckvOVJJ nnnxɳK.Ć¢)Hb\\\+khhS@A Lر7oDPPHdtU>|AL 0}tddd?ϟɱ 8.\@NNϞ=ؼy3Gl&M'O;y$aCWb?eG6774DF H}}==Yfۛ㰮-deetR8;;cٸr ~篺 [VVV@EE֮]b|RRRPRRLS/xb.ՑCx)LZ]شikRY˗ ~xm[[pO?Dcܸqw&L݊mbW0011AFFFYݶm( V^ Xn&ߜ|o~,-0WJir |w/^ nܸ){q]qϟ?ϟ?Ç |Xpa>@@]]X,԰~zNaÆUyG%Ι3GK3)l;C;B}}=WZz!..S+سg/_5k|w vڅ{raFII  Ǐ6?y;vn ضm۫gBBBMf"ɠ-1ydmMΝ-[?ݕX`۶mHJJBvv6*++Q__yyy8\7vz͎;}' sss[@||S///ڢ1Bvvv3hРovG %%ɓ'&nܸ֯_ӧC]]"s{{qӦMSm>߱c!~">w[8!rnł>^/_r011!!!!W^ݻ\t:kkk7D"Da2 000I`iiNӧ:Cmv2̛7gϞ3k,M1ue !++SN!55U_|y2wإX,%ӳo awèbӦMXZZ"%%Elǽ᫅70tP<_խ 99g4-7Ƌ}bHJJ¹sb y$ +W(YYYPWWH乔,+WYɓakk޽{#++ T*ꨭE~~>1113՜$l۶ %%%x롮B999PPP*>| /Qk>_ih {ΞYAMM jjjx3~0`5jzs_Pt㐰JzmY;U\_/ץo2NǗࢣ5g̘uʔ)-_r9sBBB9Çٳ{"đ#GpAdddl $͚5k͛e yAAAb[lI屮ϟ Ç000]oJ\|k.]6| NSSdbΝ {ڵ<$$ڵk>Gdd$^zExqa(..+lll0gΜ]|<0jWBZ233; `Sbb"~x'N$nݺ5!.. , }}Q|Z}IDAT}ְaÊlmm'Mtӵw&LA)S|jt)s%C|pӧO߬9'!::@"8H̙"[o޼!l۶My߿?5z޽Dyy@~G;k,%;wohh+WP[[+V@UU6l甎X,V\`… Ν{ۼ%vvvX`Fo߂@ ƍߵ`it(k2LTUU֭[Epp0v=I^^Xx1RSSo>|k֬VNbggWWW 0ĭ[m```KKVUTT`oo;͛7_ٳg8uTùݐ@ }J"gϞAOO'O|8"""`aaM%t:lH$v8qÇv\8 *C`@QQ svv?~iϱa{܃7n8WX~:!2e P\\/_lv{௭u}x_W^իW\NyPTT$죻xIWQQY<wԩظvpn߾*E'pB@PPо$bZRacc+++Ǐ9W {F=֭[K.AJU 444`˖-puu@pvW^!88O36NC__%x={=m".SM%ڰaaBر8}4 *..;?qiii?wwwٳG '̙{f駟Z-[2v=={v'Ν;ΊjZ :::x".\ŋv|Ul JKK1|p888t? '''0LDFF"00%8Fs~bKΩ Ç*1uTb׮]VVVkXB]]]1-N< &Mݺ)ƍYfJBII eee(//Gcc#@P -- 5kրB+\vo" 9svJ%8999fMMؗ/_0f,_+q~~>===֮]Ə?!ޥK̝;K.8ƢN#ǚ5kp,YƜFdgg#00 VQQ3g@%%%8{,~WDեeFFFBZZD1tP466b022bmٲEBCC8𓤤PNoy[Ǐ_~E0l09s&݋zj0L\~](r AOOcǎEll,/`ر8}4233 vtt丯 ;qD7oȨS:@Q)(RTٹ4ll}Ht} |c;fd ŋcƍXn]Ҹqb .۰a݅4-=jǎ@͛ajj EEE--- >?_-&&gLX^O8_@@IIIE+++q''+Wr^^vM8T%@^@R~zqUTWW(,,DJJ A &ұ+F˔֦e\}˗]\\7nM hڵ ?FXX^ "%:db˖-|3uB͋ =BCC]\\L83װ':88EEEo#-- 8p@}`݅ܺ C{#h4㪪*:uJBceegϞΝ;HNNFcc#GGG"11Ƹ{.S\z, %%%8w\]]qA4 ?FTTjkkA&ahh3g@dοoe %8_n8p ~G ŇOĉΆW^ؽ{7n޼l߾ ɰ-Z===TVV׸r qAw~ KX >|h6qDvPYY 2syyy`0066{hK1k,TTTĉ5koߎ7"88UZ@YYÇLJe_"+++g2A`֎b0FHHiiiHHHB@LL ɐ$%%!''7.)) ?i&|hhh&>} 6._\znnn8{, "-- YYY hhhrssqM݁>}\p}+0]* hŚ5k0`td2>}Bvv6233QXX 'NcHIIŋSǣ0a444@ "33ۉ 9EEA`}Ceס;Jz [{I7VO W .>>nĈ>}fϞO=#2Y[[ի*o޽{ԬYU^^n7eqݻҥK<>gDPk _}BC`` d2˖-'YYhsssҥK~x{{XYY~&&&M6u4]Np`0___TymV(A]666믿ɧF^^AAAGpp09KJJ,[+?S| ddd7MW-֭[!%%z̜9>r;+++E8ʕ+-cƌ9G4 n:;|¬Y`hhzZ-T*pPP~ ###QQQalmm-믿b߾}8|0B 89_H6bbb畦i72ف@ 7-geequǏ-yf}sSL!^pq…?? EE# , ̚5+QQѳ  Xt)`ddj|K-tYZ!Nx-.GSL!feej$<@o޼!#>>ٙ8~xhhh͛7قdwǁ<+(ii *۷o%)**9w r X^^>J2t:nܸ>F$$$RcNNN?{ 'X/_#Gߠ\BBnܸOOOܿDzeDٙ=3;;|}}y:/aaUG+++syiDDDVXм Jc8[[["44>|ł c"==ضmt: 8D"ꢱ!!!Eqq1ahh'BAAyyyVT^^ٳYǎCtt4sС\#H7oc\e633#899rCMMMq!>9q&2&M޽{g,ZO<}3LԩS1bY}:`jjqfDGGc`Xyf?[Jp DZxVOڵkÇ1m4NTUU!-- AAA;vlrd_>}:[uttXrrr/Ű 033dee9s0bفMRRR š]a!///_ƦMt7Kտܹ|) IIGkjj"117n/_N(gܸqǃr HHHÇhKለfdd$֭[t' = zJHH7nt_ߓ:::HII,v؁c߾} B;wB^^ؾ};aܸq*wEAEE=ܰad2V64hjkkrAo]]]$%%\\\0`NQF_~FC]]F;v`޼yAbb"TUUaii ---ܽ{ /^u}Ȼ*\[`'xqqq[yxŽ -hÇCVV666|cEDDԩS={4Rpttݻw4vqqAJJ ddd8NW.\{{{d~7P(˗=-ܿ׈966۶m͛1a<~[#d2D@.߽{1cƠ.\@\\_tuuQQQ?nnn ,[d۶mͅ*0TBGGT*زe ~߿d2 >oVSI&{bݺuC`` L&4d_v56lPQQtuuaggtbʕ+8p1117!%%"{F޽[۷/g4^^^066ƕ+W.TAAs肃 6( 6^ti2acc]]]5 ..۾`߿͛7eTVV ӦM3qqqn-155O?`|}}v9r$_b!11:+ڭZ 1LhkkcժU, q177… J=V\plٲ[r|||t!-- 999`0(++CCC*++9y@&9tuuahh###ɡHOOtMLL Ԅtuu5XR􄖖V 333ŵСQSS())a۷/ ''999PTP(H$444pPt:8pϺiG YzTVVrV^^:/_رcDήNWM䅉__.}DCpl3Ç1f̘N`08u-[2VGPZpppI֮] 2|ӕ$ t:tLRQQ7N1118;;cҥ !qAwEw1KB߾}c~Eqq1g|TWWBdeeA&ARA"---`PRRׯ;M;**зo_""999x `mmB]]jjj|-//"]N)DTh[t]a۶mƑ#G:wի3g ݭnAAAXf PQQa,iDTh[t]UWWDpp0F +++B__PQQY[RWWO>HNNFbb"RSS BRRRʦ.^xKU7555ꖟϩ[BBt:˗` X,^~-#CKHH1lll`jj : ~yyyG}}='hv )))hiiACCprrbbb@ :v@Q?:ŋČ BJJ 'TUUq Иֆttt0ek'}vl߾]1V+F|պcORRR~X^^D:3jTWWT$j[)#ow-CGp=|Ui/=t?W2{JIENDB`pychess-0.12.2/pieces/eyes/0000755000175000017470000000000012653231274015772 5ustar tamasusers00000000000000pychess-0.12.2/pieces/eyes/eyes.svg0000644000175000017470000034350712641567764017511 0ustar tamasusers00000000000000 image/svg+xml pychess-0.12.2/pieces/Maya.png0000644000175000017470000003133212642235661016426 0ustar tamasusers00000000000000PNG  IHDRMbKGD IDATxyX?"Z&fezTRS3s23rI2*=ienPnK 3 Df`6u͕t>K,'Tb%KwEQ 5͠fqWR]R,sEHRT*W^-}D"yf{bvUik W^Tj6{n \ u( ʥ?>ܹsε .p:u_@G/'౿SRR(..â`Cߟ|]@ Z~cÆ ={3gΰaP_{!CT*IOO'&&|zI&MIlm>옗WnBBBL@;yU]Gĉe撛KJJ oku uִiƒп!%?F(J_~5YU`qz@~RA.|&''FѺurݻP0K.4(**G(=r=x (٥7D",,,h_:xW^y9FcWr{6IIp 8HhUV6o+C֭[ǨQDh4 +of]]] ^z+GGG@hhSNoۺȑ#( kL/ہ%:x_xzz^;v쭮] w֭kkjRRpͮÀIė7( `̙̜9Өgq=>̋/X^18LF?ߟ5k1uT~2K"g&::JUkHA4=SS[/^ȑ#_}՛'O|C'֬Y@"x׿Ph{F%VJzzI2:cpRLJW:벂l =0mڴiӦ)ЮJW\ϖ~I.J7iii>n1Zo:cpEEEۗ~TʩStâXRYfP+xƱC,*ʦ]*VK3rmRRRMb6۷}:'(**ɓ/\pgggb1111qib1\p_~SN!˭lbyҤ72b.D"W^E$3nݺ1f݄QL'˹x"gP͛7 ׯ_gAqnݬU |􆃃C\.wV g֭:v8nŭ[n h 4Dr[[[Yaan)f*H$;W>/%c8?.4 S(IsνuAC߱cKHLL+CCC[I$7n5o޼*aI1ns+رch֬ @*|^"T̴~5jTuzɀA"ꊃ!!!:t@z\mX   6㏳9r:55Ν;M_~733 iӦ1qcv-8p~PB,<3F߾}i޼EၓS+,,$00 7n̍7dbFnݢLƐ!Chٲ%ΎǏ[JQ`={{yye-Ydm3[z?{==='NѴiӼ>lFR7kTϏ/M6! VvO[oeTuy& ,W^{~~~޽3gY~:+WdÆ WE} ̝;wCW^! q=srr㏞ !ƍ<$? Hڵ+JoM6j*+-bĈDGGpBNpp03gdڵܺu$Q) 5d2H$+ 8뻙ؽCj//3=x`/FlaBnoqrrbܹ4i҄vANxgiٲ%FΝ;{[D"N<Ɉ#*)o:Ӈnݺ!H׿_9h t% ݺu_&<<<\\\]Eh)ўy+Grrrk @zGYbM4^zX86##g}+k.~˗/gΝ5|ڬN\vv6_}GT'`ooZ\M-BLRd 2{Uw)%%EI UF#/,,SMС_u*M6i&^'|B߾}M*N\FFݻw/st^]+]{s}[2fb |ӧ 666F/+ ͛7n-G`3r (XlAAAٕRT*J%7ndݺu(J M {U /ܺu֭[ ޵BнB7lѣGMJ_\\̵k$::F?_i:ap={|FVA~V1xݿHJJ(op\|4bccuδk׮T*E$R(qq:ud\S@1nܸXݝ mi4h(M^^jʋqtt$//Oˇwi?N~~>]1j aҥÇsaիǀ9 &7[[KWv,g)v]PPpv?S2xֶ݉54Hd+Vjű2j53f̰j9yyyٳ{{{:vhl\.QF...BHdJY̔+О$~lL[jj*'OʂZ k*kZgpggMsyS0 # vS?.Wvu30jJ:Yec"}[38KG}ϔ$!J.EMiZ7Ō?[nFc}95@@F47c9ڍ>hUVW$)V 9Qh%EMhZJ}BFP(GMm%KhpOV2&99JX, gggkd]h4ܸql4h@˖-w,Z $ `o>h4!tڕ@72*۷@{rѕU#NhϢUʶ4C2B?Hbb"V֭[ܻw[nrJ]ƍuǒP2pʕ*n2 yHf6Hrss9~8:M4Ύ&MopQ233F=7n{siVuЇO=}l6f\AAΝcʕtY3ݺucʕ9sLfI$NiTEs5=/'ե3 ͛j yu,C ARa:O?Zl5 z}U;:!!ؼy~4mϷƬICGC988 _PՈD"mFzPT=ww(~5Z2ǚ7o~fϞ=ݻwߠJ C{hP*:lmmQTq}Bau-#pm:}ꩧTk>&28OOOB!wW,sD"ܿ<ƍyW)((-$S>//_n{ Ȕ28GGGz|`{O?S|$''Ѱ{yxSS} -5%Eh֬=VΝ;/xHOQQkGb1]t1xJ`׌3ƌ3NRQLƁHHHл1o<+?Sy&|=ڵcС^ɓ.B!AAAxyyQ\\LVVM4=%B9Ѯ裏5wvvn7a„z2IJ(;x |駸TBCC4Iq.T,;l0:tZ&,,oX[ѩJ>s mBpHrr7߼o5STe97n`Vq/8+8pΗs߾}:ӧOӧOj#08r֭[׬亡-ep 6СC3Ff**B"##iذa EEE\xΝ;h; ܉'ѣGu A n &$$\SѣHDuߕJ%={yӇ˗/0O˜=Cs2wUڥE_HfSpF5iٲ哓"`MV4㡘_bSǏL¬M_ NVYF/Wmڴ!77!k5Se;W^6m@VW6L2L6lXlFc5ڊVWWתu(?ƍ>>>0y*FsuuSN$''SLA**h#F-q…O۷oݻ "B_lf\RR^Qf}3opG"\J(ѪdY2~ҤIBCC^/J{T2Dzi?2tVsJ;gϞ$@b<i4vM^LL}M6[ׯ9r:Rk{F=ۣGÅ(,???+~ jڴifvϙ3XNN,{}Yˇꇻuff%͡T~Μ9z=׏=ʙ3gCBTJƍi׮-ZЩ&h¢P4/]>Fu8335kXfM ^qrrܽ{ sB(.@.@55'OȜ9}r;v,/"^^^\t 770޽{ܹsiB̙3- `V<ڵk}D"\r}IR*MVF1}ұcGٹs'5bڴif})H4{AZ꫑ey4 hPXXHΝ޳e͚5ӺW4}C_(SV~mT*١L5f@_~9ٳgOݹsg+}X(*߼tvv6{ܹsU-M_+(((ƍ2ytLyjJO?uMstt|F#G^Lu*O?drO6nX5Zm|NNه0M5RTsN"coŋ 3:Rw됙iUј-b$^XXwh47%Ӽy!n ӦM#2RET*}aaa!M_1Ui\ezS N t={\7n_P^6mA+3P@Zhȑ#Ynnٳgt꒦z쾺 N |BD=z(>Vy4}׮]y_~!99,_Ώ?H.]X~=ÇwUYZAAA׮]3)M||| a,U'IDATFRLX7C 8n8iAVpE'[* . Xٹ͛wzzz: Bj*%%%g„ rssX7qrr2+>J"''"##)M_) `'N098o޼SC yŬо}{yK,y+\RR ,J鴴4>s+ԪvV^,,,$<<Xnw7o5}#bX* D"(\FSP(n)R(߹s'}d2K%M_cy8œ9sҥYVZ/P$\bt##TbJ߾}^zYbJXBHMMQFf EIMM5)!{X֫WXDbgڿ+c@b]qqqDFF_ӹs*Y?h4oiIS!{uĉGǏo8e槟~ܳgϫipL`TQQM4MFH[x@zZZoRĺ>j4}[epUb@FRAMX"Mo5ݖ,Yb P%XMի Ji׮\v &M-JT*^-Ծ}{D"ܼYX,mk5pW\SNQݻh4Epp0[FP"RI^^ޞ4txEEEΝ8$BZZNё45`=@ZO?4:t4:T@ 114>J2 {2]LL 111x{{3qDK?5;;ڃ SgX*Q*|6mڌ|VW8*Krr6:vbjY`99r}xjժ+@۶m[\oc08oood2[wQ,Mzzz> [[[@1Ν{w߽Z0q;HR._l~׮]rJ5`j>LJJphѢ|ADhEk֬y!1, 0.i&>lB` ^e!j \||<'N`РAҸqc9z(oZu5`0* bE)))͓ߢ<c%wE} 2RIzz:11mI9s={ҽ{:! k/(uH2''Xѣyg'??''';FnnnL{{{M_hhR`0  Z-yhK%;wYF$˄믿hРN^KOOgϏA4= 4k~֭-/xb; Ϝ8qYg͚%J}]\\ٳ/**JxK@*ڞzIf#ɰeʕL:hx… c]R3?Sz ۛ3y*MLL3s0wԨQWN*prrz$?Evv$yzzQF֭[կ_7 ܹs'k4SN6[#~i͸qN]zUqhg!qqq1ٹaÆG0`p >'NT(2l.9͛ӿI϶nj'vᲩ_~bFI$;v4'qoܸq ݒ,B.#H?h4\tIx\6we]W\\F!66PXWUD"a„ (Jj{accѣ'熇4Yk3&ի(0Sh'#HIIaٲeT*|}}LJɓ'0i$5___T*}o߮S=[[[IMM孷޲UѰtR 2wRM>Fh@Zj]ty~׮]Cv;s%O°\.gȐ!?~?/һwoLIgʔ)ߟD'((N\+;777޽1c o^uws/rѣG}/^sBCCL<9j}쩧Wթ-:bŊ#F87J֭;+܀%ryz쩻֠A4iR&h&MHOOom=zTk_uQҵ}eʕ4lGGGр EU*#00''cŗ Ι3'|ڴiI"}ڵǎW6_}Uջw{.ׯh߿o.TTis6|rMszR8}4㭷23Ui?3sLk*Elٲ?{ܹg͚ңG_ٲe{>@@[oϟ($$dpZZZӧ#y"h @HHURi6T(((O?eÆ h4222wGaÆ P*) \\\e[+1&Hڵ+/{ر̯ݻ|2{2}KEzĉ֭,_٢lllc0.\׼yK.Ba^z DEEEqʇY|ڷoOf͈c̘1ۼ 4t ěoɬYDt SLIh4hw+Fɒ%K$""e˖Yݾ}N _}ӧOI&JU>Յѣ&MаaCwΟɗ_~H$ŅSNٱcϟDg}ƹsqUzX>(;;9NB;3*ݮh4rss+`yۣRxꩧ\^^Лݽ*o\5jLsRgdegk޷oݻwQlڴI[@9<\jvms$28BATT dee h\{_>*Atlzd K.GGGZGSr ?'**耮FEF~7n,VWN}ڔ|w[uر#ǎؿ4X&MĻZm~qbccku fhu3ڵS`uəM}֭[|*ʞ={L4jWŒE ܶm:b-[m,߿VJA}cZj{Db#J(,,֭[nTi7x^z&@{ 3mO%8or[{ΕM,#LJշے}?9JĖI'LFj`d`!,KVoteݎg>5ɚP j?a&@u jdH/=^>&{}kwf*cď~ ʎO/%oFRF)E[[ E| ; Pa#7#\U<֜rU&@t0@DGP`2 ]j :_;f-ޚ7[[e>q ~IĢhok Ki 9PE5%TkNpad*шƃ0,C@iNPa Uճq}\˗2}yy, \F5 JG v tu_&Nl6H$kPpz` X^ `!4@Q Cנk TU5tZ/XVZlAȳ$_JCDt ۍKMyYD,y aˉPYƒ$^@  2P zV8fbDAd*T{?TpfI"G*n`Yn@&ջcWz/"Ja3W,&Nfwm} TU5(0 QẐ:~aTWMôll^_8<>4=7:^;h:b1lZ}roH,2s J3G Mbp` }}SK~1#OBgљ5iPA!N0X l6NA%xyOe8גB4̑K0Ig2X$rĖL&188a (vNK!%g_q݉Î[8TWW/*5- qdT:7x, #AQBiF{x<'&{{œ۩T*DxVDQBnX \!2$IZ5%sAӮ aNNYq@ 7psr:Yjw޽*yөD"e̕v[7Hd8Ԛ9;Q,@4R՚wV"S'ېJ]Nv&-Pt: Й-JlPoDbaXjbLT!(EӑGMp "2r8e9gWSUf2ϷA ,,& Ĺa5 C*胨/~zM `W5H&8y5&a\jYݼlYԹv YSl gs\$0(0xH]z661斋MU_+ȹ9VQ!i.^aR1VW|Lflml;8 ;BQØWo*D`y_1bfrEMհPl:l |~oxkk&Y3l9J@nt|!l.md]થɋ?|յa de tU۲d`T>S^aĆ, ݀:a55!Xx\ #cF. \ɔkO,JplAM}9*,:zy_R9qP#<]Xp09ewظ@LSijŊm\"\J]s>_ׅ?pX76Q>d3Ljᦎp˂n b+؋{Ztk.6ܶō[`RU6t:(tɦ}@_ Blw P/FϽCu[f2'2 imH`A8#yЂ؂NC`._bS8s_C)xyy xv5;j:vPрrw,ZΝ# zq\;4 ?X NqغY'2lY&HSp)8#_L&bRp7YM >v2-`0ٮ$76FF?q̆ ؽ&: 8 nB֝c-'|p디uSRn^:[lW:%jnU|.uf{es>QS!kS) ̌>O<>[/|婞]p+LO%hNU5V${(WtM,o]1bfge'(+O-}ϺVX[&uɷ{^p7zmZKE*CoKf>Tl(cEd̄Dzu(s\ˆ ԉ[vV`|h _!okoHNc{fBīJyPe>ʨD) DGl Kr^葉 }] ^4w.\MANbl66vo{ ,֎xt]V5Cl xqfegueoc_j>[!tϞMU E߾r )D<^}0!<4f!V8qK^ Z4麎ԩShiin9:395p/:"^CQ_؀xnOKKbre @ &~4D^\5ɧb^b}Wo;=[0Eiq?~۷oG(Bww7^}U~8Kh? 3gzu%kL3D-9V.n7cܳ/WQJ&8pk.<#ؽ{7NVT7)Y,'Scagg߾('I! ?=pV a g R !`Y:+UUl_X6D i CdT_=67)"DtA,f&fd/gai1j)yѶcL&7|.׊8zE2xlN71"CJ=,#0x[BMD8_y-b)JnΝ׾5?cH,'pϺɔhQG_Ƨο^FQJ8Bۇ&d2\.l߾^]Fț+Hh7Y2V-UxG#Oϱ )FuZX暵ZLe},5v$ҩ@a8_@xAT6͚c7A|G]H d.>WV-;'m ": z0!wQ,vX9Ѩldl-45G*7~9mxH =<"Y'vܲyf(k|;JmQ]iO>y,IkP$;D%XxqƷdY*N%ɱv@s }N ZG{ˑƔl&k8\op>o4Ģͫ%RN, w_x<x<\>jcsGEcAmc FxCicGljlb+*?~E&#,c19}Ju Y[qkcpٽ<_i<3RMӨ .}DQgbtu0tl,FVΚF㰺g . ;@U5+||Y1jj0$t_ ^A@ ; Ϣcpo"݌@TCQsa ^\TUAH-~UuB7g!tBHxW*pG pԩ+mV@^WiSPc D!A5A)+%Qhk:0!H\|D*{1Ӎ`eՊt`GnŋG o7'ƇFߖz% Zktd>8Jف*`uƚ~5sӓUUE?٫]ey%e\{n۶m[\V`& %Dehb 8і7o}u`*˺fۛ[HD! tU!kBW hhj.IE]ꥤjM eH*9DIU5X,,|% F %\k;?ozky8 >(>f&Rl.Sj0/?c\?_L<*2gVEo_٠}~ѻ|i0 "+tlKpkc*XN! W@/|,k"IDMA *s 2r֟! U $Ӹ{cX6gL N@7F/5j uU$+ g7͇8g\Ɔ^3U0q.jum[,עbas̜L_/ v^Qrr8(F*y}|urja )9(2Ppn,Jpd/pKe /j:0inZ%>l*΁> 3C1/cl^ ,eF?*$g.wf.wf:/,ꋹ;( ˃}rYW;o l"_؂KMh(^:51<\L7Kc?mM9s4Fx'd @VkKn rYz! \8m` T-xHE[װ@ 5YU˃'2DKc^ _͔A,MJ)L& A5xMLȕEcA Eu邂[ wQCS+…^|׽E))[pY_b>3`u?n.uJJ,Wzm7|sjٳg~O[gQ>{⦅ B̉Gyx+/LA&[pw߫s10̦M&㗿U(]]t 0 R)l\&%={|ۜf˗/_DqjiJ&UM&$P(d_zfG? e:~ +:SpO'\Чw?ℽ8 /4l܄Za ^.e87:NJׅtZsX@*,˰ly̽ Ph=wG[pԋ{g?YRniWߕ+( qҙ ,$i_8ҩ8cd z? B^K.N83,\.?J:"(e>V c۷sI3|-hinF*Ŷ647]ls?v+*?{|vt% ԩSx|@E[gG O01:>*+%W۶}@Y gߦӶY8u ;ob"6Jo–.5,i)ep\uYb$uuu`V΅bA<}f Pl6 0X&@!P4TgOu.p\ww up=[V^NX:~c0#o=cr ehhwuה/(+lM[~Vfq1f(%^xm߾ +& ⣍&/7+26ԅb JaLL1ڿZd.% uRp =)v԰0h `Rǚz!PJQ!b*tWdP݀zkú!P eQU5,*(cR iPMXddž7gl!k>LNqk @t"  wFZI V P(F6.5BX㉩*0b8RQy nb]9Mg\_zE=l^NUjX_*gΜl-=<0@`Q[͍ȵG! `:EmwB^ ^& ^$eEn89ȪcɌJ/ˌp?hP 0}}!Z$t#1/GX.,0:@nm$ %Eա:nxJKՌXezD:%8ʠ$${gΝ^S`k ۀ*pTohq*l<j๖K0m63صk3x}=7V..1Nnd90r#Nk0hJmm>ԼCH́L,i7qr !bt4,>]9sN$.(% w7R[6W,Lv^Yb<$nu_zC/*u@"T4BdlazbO fs.b&A'oDj?Y [fGn-@[xj*]Q@= \#K}bcpY]!G#HC/74;fxr&vU/ѵ| '؂K΀'`{I~0ݵǏqBXTDFjge 1hkEv4_d(0-ſ*@e]恄BXVb}!_wgXɣ-W))[bZOJ$p ;Tvݚ>?Vs{'iQrV+*+smk Y@'Eѩ?3$IFSoVVEy( QU5}魷zuZ S(hllP(P(8|K/ e?{ _hooj]l`<&DQTTT`Æ x70>>[йgϞrM5IoLXфVB8YlJ!+ D)iTU0 R 0rkE.r BAm8 s ~{dtll@ˣ f݆1kM/\<X<>X cY0 MӠFj5\ 7!x"Wfj [8ˁ : m+6A`9 @xp'fPj&7EĦ!80H]% UH̬̑YB\m}AtUV|꿯 "J!iS8*!9 "7t R éZnxq0+'2+>,,66˳9sLZӇ'q$.(G ;VnrSp+~ n`'gN%1 *4X}έslf|뗛x,* NJ!8]kp- P fL!P+cX/-RM؅m2dde,&ԩN4k[ӯf \d|ۼWlԘjo-VmXضgw|5֙]< LL xPpV {6h0t z6 %vu&gkY;IjWKbwZ(6+Ӗsc`qǐQmDgE%w$6i>P`6:0|ظ}ܞ t:5%0nsH#j[qaEnL&D"?[AUTI Du8uMڊh4[2Cj]0f M*&pO<$$n_oRT$Ue#{NA)8#(qk̒W A醖N0[a{!Ȍ"6hu Ã|c!̙۵|p gFrVG~%  N3ڐ{ g!y]P8ώ/dVHl,[C39d@8рNX j@(F_,Yp\bja.& ǀ.)-˦ 7|vԛ74jЎaXU`8U6"[Ҋ^a(1iO  OZ Y\h:O U mZe3 "+&E\/vX+’:w7&N%̟s lGvU>|.Dt8;W>swoLsβI"7ʢ7>܅}%Ϲˮ39JYa=2~6pgg_#wv (Jl Ŋ-)"bӕc3c$ ?]5jfQE2W(tJtNnPqJ q\:LAJnGXz۟サEIFQmT&B\^ Ovs*'G0xW3 Gr,.l;/e~fMeٷc[pVJ%lFSoιs%,S |L@eIW$hm3n7 }´l,ˌ's=Wq60oe+Wܦ{e(~c,!`_} q޽sl[^͛kv54E0E5*#6!@, ?02 z=f g>غaAMBpβ9YP9!BֲlTð`En⠄կ~~dEjs]wݵO1Rj$ P K##eݶ)LBKH&Mt $U}ꊢ+EW$H$H4HwX$c 1јx\E<"БH0, n!IS} ygrq JCo#眱0D6Dc " Dgg<`@ÁZp % MH4pYnq,@13 IgK>WU uBHejڼx=0">\GQJE `$Kp6sVd8ytG63 fdU&]_Q`1BHJ&q!ҐD1KU8mpiy=C6J1*Ja~yA@]UI$;Ik(:b#:uklg\nSo CeY>òkvn xM)}p+Dz,\<'JȖr\Oy %1 ݀pnb?lC4 YMj3&_w>_a. =9$: h)JEaZo۴4{, e99pMreL4K͆ySE~j nEA)AWNqR>.ߣFH/S_H IsfMvr@kG-J'yT5zưlIw DRK:˒_~c' H$$;Z rNd Cx$.Q$ nCQLtE4x"&"p(qE8˦p$Z>lOY!=7Xr~r{˸ɍֿ͝S\ouE %y6v2ef4l-dRu,IyEŞ}(%9<3Ӡiô:bq % ()"Er\ζm%ɄoMj yvTb!̜KtSkY.5'4膍k$. DZiAI(^[h,錉c"!.IHv b֠YT0QB @`߃ I! xLE[A^GtJ8eD!Пaݺyǝwڸ[ ( cO0aHS~A \9\7Zxϛ P`޺*59gQZ@Q~?"H^o}qП^}O~rԢ¼T3,˂3}(â jqd s8}LޟrqE^밴qR6)e(2( M_͸zUtCc@8B^me*v($)ʲ|,/fl Ņy(d2 C2Q҄!`S/-!nexD<~ m"mAYv 7dYB>(ڕU} c26ޡ%/@J D[{WQʕ+²쫔7dY ~nh<6pnE`\mH$ :8" ޯ;& g6TUː(hlĶ&X=谾-8.n7A`q COM+ uu?T LM}ecPk~ϋ5RAUEѾ;W>zN醉N[NsLne)XFłe:wFN;D"+7vE2n3 /:" L8&!{VZU0r8.. PHMӴQ^2bUuKذE`Qy3ÙS:R.MgT!=TD<DzRղ,e5sDqU͙5(YMیeL{Bڏ|4)"]bQ  sGN;؂̏cYw `bPD,f@RLZ@)@D{;,L9>S(0d…d<=$.GfOn۞`Và)pLNAEY&*Wfu@, !~@O*m@}'?CŲlkN?@YB)m9vPQ8޳ۋnTn۶A`)cz[6'/"w C^l$=0XdH4 w?d!{ʤ+X3 eCApU`jo.aڽ$/˦%ˊIJiI,I<$˃X6tpmϏHC2obf2坆uXvp6w}+W/^~/M{E)@MAv}zKi#5a0M5>x~pM+*O];qWM[6z%]s$ӯrGV_gW4C(V-0K#93^><&2=|'0:eyҽ;m{p0lۆn:g뮻^zu9hJQZ>" '4{_#>rjsD||Xf 0IeÐ 5ݘ `;P؁pt555^0,b{nZ88AO 9E0T'WUg-BCsGžFhh۶-,)˲w9AOi5R9|exB! w7A . uE2-'wh7vc6H&U &sx^@*_TmQzU*ѝ6= UM8P&LWS*n 5wqS<,`ᄄi:f-:B]=mJA{!|&äY̢>eYRT_}jgOAQ؁7c%p>o.b8Pɤ@&`J郪x'RRQŌi2i'l45w#?σ4sf¶k[;|uMm ʞ=2{ZF{G xeeI 1}D۾m֭{]t̙ %@sk;B.I.It@wcf"L0(#֊-!|pZ,qlLmyq`ꨇti6mُX\A}C'ZۻA0$NF), _:]QԎ݀o?_{/32҃-W<_mێ[`nX*U%ttv--hxpVs'UvvhvnCC:Ͼ-8Xߙ `lEbA,^0N7!n P80ViDg}ڬAE, 0ohhz@eÒpr XҤ˒t-~'|2-Qp.eqkǡ,g ^k80,GU+t#((cL&aZ87QB\nX 8H9fR>xƛƲ3φ;b1x,L4n闥bLQc+Qn9,^z<-ol?, }[Qյ9M'&E[{L#tu0O n|㖻%2;o Eaq͛7Gwxipʌ:S'c L_ ۲՝mSLwD[y\on n G<$UMuIJ7EAg(x<~bak#Iqqlp*yA{x<5R:iIO󬴵aݭH*C(Jd2gy}kYہ?y\)v 5\6RJa&:TlK0 'ӥmMa0P&*ʃuep<{MplV:Xl$ݿs"H+XW'y23pUUUxڗVs΂%L;yŢxwL*ugPYY3^AG(ت, ;8n-;{OI;^@Cce0.{R+ሒOoFHUVastBeӹ1d5777?s̜6 H]DR)`)xkFZp*&gR.J) Ď=xo|5hj 4GN-pݥυmDw_52#>7Z\)JPz[;B߲YՌ3 bpԄ-:ِ>[3w.l-_:,Ǣ jkkOd:ּ&I|*Ɏ (/G4bb"7 Cp_<ԶqW=LTʥ N; iӴ\F5cK"@iIq li| Ey^L(/H* '3/H,‚6Z;cϾfX#Xi qU]OaǮSXpW"3VSn 1%}h$vhk@ކ,ۛfb6}f^&MG*,[tӤK*ut,ZۢnW|h ]׃.8--y]YsH^E2 k7S4JưjBlx睞,/z<"s {!%Iҏ>{g} fg6T_Px"4@S{Sx̙'TOs(58T榽++?T9q!.q@@P\Cn<0yzl"azaqD!X?\̙3|qwuLHxBGv 2;SO*8_\jNy `R|`|G%)*R6?z7ٛ^o2r A ڹF4E EEEu)x/òCyp kðLKqR8؄wsσ=!`˯oB+&O,؊\r (XpW"˾KĽ~v8Kզ˖ Џŕ<.ϙb}8X vt ˖,ʙ[9LԵaUL@剤@)EA~^jNA.ׂ&@n( >_y92{:i˜ S^yRW]QapRQw\uR@4 UMG"ijL>,OF;qwڱ{֮ߊ' /0- [w0}xNސ:R N.v V]ūM7cohi-UV4tdR%U(}p"˃aTUE4Ţa C(+.DiQG,鱈+/)D8G]cDAtЦ{RRn= Ǎ=ix7݀92D1 {1_wumc%\{nwҸ,H9[-.˙b}P^]tDI( xC ̘\:?@s8}LLXӲtÄa(-(- (Qbovb/ߓO%=XR76kSϮM$S ȤXu߽l9߾an$r tt0M;ʓq8uT̚> Eûpڒt./@m<!l;gr0)Ck{ 6ĬƁ@)ŘLg$kRw4?ZQQ-n$8;ϟ_95٬>2`mj#STͰrX?lFcc#oߎH8{SL6x^W^ MM@SD8:3G{ [mf̪<O@EEŧa߲UՍฬ9 )Y6EKG7Yq)p =׵ 9cI<7@mQ۶j۶e!ԝŁpB[8d ٳmx8e׾4v#̙fCnj]0؂nH**^{uQ|J@K[7M&v9op $rӵ{ˋ `4 C3NRιfwu'u_3`ф@$|iSUj.8t5u?}M ]] a|Qo Wy 89Xf6`Z*2KX6[&Ni`)TCӴ ?/]3Ph>u5 MKP8t5 ]KBW2` {J((!ׄUU ǍpvDj9&.vDzy&s2bn:U]!qX-N)P^4M((aCppAV:`dպ$@WYh*DB+G" $ |=o0\7ni-0L g&oq].56B4W^ro6or"4,'Θ7ݕTU[$W[yD+y#\GGֿ>c!lƲE#`\qj%%%(++gC0 }[kɹ1ng/kPuonmSm{y;˲<ϣ(sn^~EZ*?J@~b~ aX+-XtS&V@:c",ͻM#uIn"ۢ՝=)c]](.C2 OE+֏v\uiH4ƶ.ò<K`g3JR5 6Xp]Ԃpg})̇'M͎kŏn\b=P/^0Q[&>AH$CnȣsIE}հL,ƕ+ߎpWiBS@evwU_\L&'ȶ,knz}w \4l-k㑧׹v"䁤j9zEyw֤gne|U3ζM뾄1y OK7_N@uoK`xAcg <, ܶ7°, k^ Ey( R(}J(b̫~Ygx!\2> u9m OAKXq'cZ/.psW9IM3 =xc @3;3jf"ÛdpعGDRK+#jO "\ Wr8'ϲ'0qUP}oςع{7vmIU| 䈉k+A`A10p.Wu ]1AĴY^^7^EN,|ex ۶<pdepQԆzPjar, 07$eYNdFW[}Dx쑇|M v%UEı(IEY >eadtun ʾAUTӲUݴW T8I&a7|7%(~qmN#FcS3^)kqëj[``f9{ &G%. oO>)Om`9SLAe^M<_p뷮`:Gq>Xqu{ݻwck# U\9Mg$ɲ_?7=7~;k$M%p'r2%ܹ%E1ACs;X(¸\N)tյ%f=˴R\R-4<3JK9P@yide)RPTGԊCUD?ٳ}l,Z0y P{ ZZrl̘1EEE+c@)Gk=.2;$Ѷ[{n+CyCOjQۅrzꪪ>O^n/bM}Ipذ %i-Z2ml^-0;jqCȁSp)5Gf&fg2sq$mEGWyukɅL o 8`3,5c*OyYy7bɶdY; ƀ.!ċuB  Yd(L@ $lBfaI7MEV+]~ví,^>ys.[L[{ZU5ŵ$0D<6k^R*C,ˣ$|'-#IÁ`_֬r=îo+Pt $IR2"b՞^ϭPd7l޲q>VhL%U YwlV.(wvsr89cyyyd7n`ɂ9ijD'bh=dͧWFn̙sX+j #@b*j*ظaMg|@f|BpfQa2&:dNQQ)5 ~k#`K֭.Gnӓ+Ik7vKW-raaVXCi>wU]ٷ&rmFKK ?`Vu%޵rZ;:CqK:X`hZgDaEp W8RCIhjjGHWf |ӼQY}x  ? ߾ -`jKއϔF49| \>:ԍʢEo[ ;{AZ8/M؂+7]N-vuUKlRn 0 mΚ7 :pLEdY!$Ibu֮XʚŬj\ʆ47eŒ4-cZʒF4Ũ=Zti=LAhIbG2clrdƸ'Gz8mM+NͶ6;;Bp+ʊLښJ[DX߼X6t:$vŖ&I[m5[7 =,fna SQrF3<[\c=ALQ1CsS΄p%E{p٭Ȳ@F` J,F$" 1<33B#(}s۔p8_f;n7#ͦiBw?aܺqd˵E[%!ķk+Ţix`ߑ~%jOLmJNj,X,BV%r$u GdYJ AЗlr]iF\ fYlq(.P]nB* > xVS"{u^[]a,%͋49.n dzuIA` NJR'T&!ӊG_F 3y)j#JJ)a~EZl>)sM: AtCL@0zW^q҅nbz{^{ BcWz(bKԳ|L"j =~쌔". ﰏ<2ct8F SυNakkkc^}-y@bf5a5x/L\SEhB8! Db̭*nw ())aǷ}`<dڂdOnV ńI1́aLY t2I'_"dҠLҥKy穜YΥkW AAtMLSR%0q)ʵc  RP?)2hǷ}/䔀[oe$Mn4uf̲ʾ=47W7ww}-m3!.Ć*ǻtj9VZi;|,h7bYn32 'ǽ~%J5ͭӥ܆beE.IbZ gz~ї-x1껀=o*%E4ioob6#K5_Ol B@q *#??Nu]7KPb4Mv&&Ȕ(42*Yd4UBג545NS̭.e,q;kZfQYY9YKKK~iڲeK֬Yр*j˿ ;T%Ք cp ׉#ʖjo1}Lhkk+'wچ林% xiO}n*I'`LƊ]"p U̟?6^s:%+:;;)/+MJ @ԡuFɫ$fȼ(sY,哣m?i]x5};VC׈t̳jڥ&^]S r8Fq tMzΓA{?y?3N-vvoɘF GdIl8f/mtuuQQQ1ז TV29ܸy81~ ѫ&c a!CPh [mKr,K`phMǓ 7y)F'1'9sL/rgzKkcdf.^2eM++-׏_D-w}nڴikXSOV_22Z S5{ޤ=}},Wb.d(hg\C Nz2fldP _Nr% \v ma HVR>n nnA L3z=+vpyZCOfgUb7i0St>m=b!`dua׮]y}֬XA e_+S7Ca5ٳ'=w_0Kʫ8x mbCxlL haFz̙sCw]ce#㣐eIج%e,@Nij9c$%,UOG1 7}?~UU]iI'5OF3ߎM hiNLQS^0 ['V𕕯tSI,;֮&5|gVM?!v\l~)h G[AIENDB`pychess-0.12.2/pieces/ttf-Usual.png0000644000175000017470000002772412642235662017436 0ustar tamasusers00000000000000PNG  IHDRMbKGD IDATxwXǿ!d([ETcqVj[US7z~YP5QXAA:QVRAl#2|z>Cr) ]20 JwDC̀sS(PXZZBUUrSYn9)UK.ApZݻwU|5x{{gΜK " ڼy󞘚LMMY{`04ڤrqqquub0Q%^ߤ#$$eee}}}lڴ ]ZG!!!l6!ZBBBĭ[ .-,aÆŋĉoTTT˗/^DDil@UUxA:CkGEEj&::zlH_|o0K.!$$ٸ~:PRRBfffqcc#޾}h|x=_zT*͋ǛӳYMLLXfff,h%n9 p xyy!)) (//Gff&N>+V݊o Rx%QYYJ G%Vbзo_sQCpLd"::d2` `bdddh>SVVAz>`}n=d2hkBBB:ՙL&gӧOqMCNNvލUV}D߿\P(hii٘m=}ty]]̚ bv 1F}}y>{̤QKK $:<**qBCC{ҩ}z[RWWG:""799{oر~Z-[ /_+PTT$0͈#0m4\rEh>***Xp!UWPPǏw췕">>O?ɭ <%%^QQIXGY˷ަIxHZ*,Y.]xVVVغu+֮]+0͆ ]} oooQ*\vt*ssm q56:ujҾ}WA@P`aa[ c544_;y|pss8GBxWܛ7o~IRٓ3veB,ϫܹs׍3339@𒗗ݻQUU{QTdddN(96lX\3 {{*oo0YDze޳xƍ'𺣣#Ck NMMMX dwO3O^y &{!zg18Y`4ǂ`0eƍoW~ ⎘{u*ɩ4 + Fkj[VHOO+]eE^N\ ˘NzzzB6JV;###AEE---pVGE7Y[[۷"k n0a@Pfd2S( ԠV0L1`0VZEGUU5[MM-CCC%(gӳkkUssA-ɍ nRXUUU,cz h4rVL&ARvi5ɓ'I}JBKK zzz uuu`XPSSQ\\,u=t:Ԅ2塬 b6t:`bbÇe/lܸqnaahWVVjTTTTTTtX*))AKK5e ;{yO>dT]]l ??oχ0hff+++ 8(,,mpjjj5JqzG~PCf͚>>>:tlTUUQ tR(իW8q[q"##~ MMM ݞƌz(5,,L&cǏeӧ[56ak2p@M83=:%_ k=9Su,}0Qꥭ7KKCmmmǵb48QΛ=:h<&$yGуEV!sРAىZVp )RK|Ȋ pP?7A(j8]t) SХyBCCscprrqشiӔfǏw( }6p塹SL2^|y.22ruSEMpn(dgg766" gOOOxຉ~f`` %qƹYYYP^^t(Ѿ20nb„ }PN@_^ǀ/^hd_ Cn}n@CCC`C9R\igi^JJ =%%圊9++f{{!Cٳ'K)j.NСC%)T}]0 {~i΢L&YYYS?lٲK C*ۑƱcp]{?vt:;tlii}47lQSSC]`0$"S .9!..1b,*TTTpyCm ʕ+addieoߑ h$qytuualjhhhh24 ĖCrYO𒝝&aaa+W<$3R} $cSo@]].\hw} A`Ԩq=ŋAR^~aNDDY ݸuaSrxq^eof@2yF{,~G`y~)%&&^>&WL{'͛-]8x _x=Z.ea0:7oL$*-Cnj4Qi68{{{2h˗/1i$nǸ;?$*;8p]u֑m ŋr3/^ B`РAԄbEIׇ 'Ν;AX,֯_Pp!>Wy <<<> +9sΝ.֗0򦊓NjP(ꫯpf###@&\\\:zN ]]])S y)+Dmh={v¨QO#VDuW&~nbv 8 ɍ1+VSSC^oK>}Rׯ_ 3322juuuߺuk hb0{o6230|sC>}Z :RBZ@YYgNX~⢢"IIU6Ƿns1i׮]um C\Oe .++ ƍӧ&&MMMq5Ҿנm62(]b"ȋ˧~:rfff-G6li<==͛yUVV}Lk(^2vXSSz , VBbbDGjjj3f9rqk%ۺuMvvӧO*&aHep\IҎkA]kkkM5nnn9< C*{D1jԨtD!2)J;c.\z@@CRFdO>Gܼy/?ZشIrCu566̙3繺zrZJJF+h*** d2544RWWgAx7!ݸqÍ7:4#GQ\\LRc@ڇ@hh$IK_!eee˗044DDDD᧹8;;K,Axx80bJZZUy!:3q),uOU8]22dTٳ+/^Вg0--M=99Àvbp^qvwtCCCa2;#mmmxyy;wvvvR=~&Z$%%uE,q-s޼ySʜχѣ%6kע qCT%i)**ЦnRIG1{*|ZZZX~=ߒI(mmmw6UmܸQ.PTL&$s2Dt˨M^A08]t)-eƇ禨t) SХ|Gd2fAmù)ڵkƭ& .Xݼ{>fϞ-ّ;uۍ7>=w yHTVVŋz@OBj|H咒ܹ󌯯Ν;KKKK;v,fΜ #ASk]f3*lذҰb߳%'N0_bE+ܹs8?0rBAHH,X_6'' .++ˏ;&Zm]KK gΜ'kgϞ5ܶm[lNW^m@tTUE~t466~éS/ ??_.ep׮]3 (5 xƪU}vСC'O%iAEABCCb@G &Z[[*E;u)x)E#G ** ߿Gjj*Ο?xn߾:--BP /m^AAAr˩<-Z$rA߾}7( y~<~X۷e&vyUm# 0ݣGw^ܹs]\ 'Oϟ+KDܭ0g;w.y,LclKuuLywhpgΜY{Ig-Ԗcǎ>Ï?sE['yL%oیfdd6oތqƑ% Kԛ\PPL\@@ᦦ&hjjō_nW׭[?K;߂iiiL&D!bfYcGX| CCChjjʔP;sH :JcوŽ;h"l՜={v7MXXX<Jmvv\;MrN;;;*׸z ܁MEo‚ttbllKʼB#K9:& ooo>}yyydZb֬Y- b/&U޾"Uz<FZZZ(bΜ9bwU:BhjbbBNкo߆26nܘvŹ qޱche0`6l 0_,Ϲ pql6KK7PSShnnFVV=JE˂P333O>i8MS:|˗ \~}udddP`ԨQm)/)x.?/_! yk=JxO:/*LKK N .|v…olS*ۡ.4?e '&k{viX,.\HiBخmyLKs=[~|f\GGgs.:t7?:99)1 *r8._ 35#n͓=*\tIli_=%D856555̚5 ӧO̙3E333q-ɓ'JbXXc0[ %]n! iii!kBq0AAA* 8z(;p޽psrr+VAaÆ xrrr<\;/&9hmmŷ~ ٳA`Rd_~%eoܩd2qE)ʋXC˴ djjK.vva- {M͘?>^2l۶ WjmmELL ƦW\bbX:byB\| :vQWZ( @~~#e{{{ܽ{bWTTͦJJJp) JtIJJK>3fXi2l C6>qݻw%o1}IDAT.Dze`aal۶  凌ue>b.wDcc#r6@Ramm OOO 0A CCA|hB^e#H͎AnESSLgp͚5=[W"6o( |8( NA08] CXWHKLJ1 BQ)RKQ.E潡{.>|6Yf߿G2d6`>Uk׮f"s(,,$f"q% ( 444pͻOF^^^7ogddh;viccC(++VVVđ#GGa`0`08~xWXI>}:oѣG3ftXBBn''Q\7bݻښ իW+vAgeeaÆ *yէOX,xYYY((('Aŷϳ<6005k0x`3GjkkY.Gʊ{!TUUWCee%r߂$3gG6m}زe ~<EEEٸ-hS1SXX6t\z6m7].v燲2(++sACCL&޾}  w|WG\\hjj hjjCIIY]]m:uTWWzÇ cܸqHOO3̙ɚOR ݍNMM BFF*++QZZ_aaa… 9))4 Xd ~梲HNNΝ;'Pe#nܸQ4rHؘXn;--mL0a>իW~G> o z{{F"6m"Ϟ=;_#&NHo/x]߾}7o_|92dlٲ~xxxӭjpo߾Ç>uuu߿? DGGٳիW AnnnIII(,,0bĈo޿(̛76>>ɘ +WK:֖  Ғ p$UPQQ?MOOG`` L&<<< #}: xyyot:V"bPMMM8}zGbЯ_?#33(F8ů_&wkiiIg?|pX"8<}< {+ܽ{UV JA<CCCPT>|AB.\H ܉o„ .8}4ϟ6 ##'''F[}}}{tPP`Ϟ=1bZ[[QXXHF@lhhGPPVV)S ,, 'Nĸq$[>l6'O-mmm%-@$;uaۣӧT*E| ~/44t͛ n~ vzի/1dL:hiic\ ѣ|r2IffPx3777+!._\kecc#yYY+yAY9  PGYYvvvpvvƌ3@^Տ29] t .^cʕ+r `ӦM"A$a{{m͚5F|GSSS{:& w/]vl߾3Rdعs|?O' NNNBzz:HJJ3jii [[? x;'255Đ┕ٔc͚5Cnii˗oNjٍ?Kpo֡o+3R%.Xjkk1vv 3cƌСCallLe!7}tXi-[`ҥՅ ;p4oq8q2?h4TλS~׮]d_NwԨQPRRBJJ J)ZXXR../ؾ};QQQT<ϟ?ׯQPPF~/>}48rĉ|Lr0&&&RŹ;>aFڵkdy Bܼy3NǠApny VB ʷwɺ7 rrrHz,YDf.Xd k7Iٳ[ٳpuuE`` LLL\6l؀Ǔ림aӦM8w~3^HU6EweE__Tt4bĉ8smy7Y—_~2]dN4)܁/t:8j޵k: .4MHΕ!CE\cc#,YB*߿2lٲe(U"]1A7vvv`ʈX¾0lff&97ȭ9mڮ,kp%NIؽ{7fl2;IL:U.seL;.\ k3f-j5)ozY "rssk'qe^t%x۶m(//*L6- JJJyc ł/`:u\Sd,/@6DCFayy9I]׀m4<F4}'N@UUFa̙رc1tPhkk}uuu&膆<|QQQ?֭ñcdEsNٳ5TNNNpwwg}&r_BBBݻׯȍXxaBB~{{ҖMKKʕ+ѣG,577#..7n@PPiӦODq_~ׯGkk+°dTUUR2p۱sNhpppv؁X|FMM n޼@j簴YUUUL<'OơCp5b!%%Go%9J5ZhT\T*fϞGUIhb9 tĸqY={&ӎ6n?/ڢEo޼Xݎ[eG=͛72]宊o\ҁQ[݇~o߾]48=//O.|^dXX,ˣH$7iI*..yvhea z$vmtxa8"zL_<+C \C \Dc. "H3 gh gx{ yggxxdUUdJD GDDDW{jN\@1Sx    " & 0 : D !""""""""+"H"`"e%1Rx    & 0 9 D !""""""""+"H"`"d%[W@&&߼TC,ݠ6\Z^hnvx  !"#$%&'()*+,-./0123456789:;<D=>?JEASKCMYWN[XZ_\]^`aOBTUR@  !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`a(<Tj~@Xp~  , H < Fhl0@!<"D##$4%~%%&F'0'(&),*l+,-4--.".../8/Z/06001$1d1242j23(3T334455b566\67*77 72#"54  g %3##!##x gd##5!!!!dw 7#5#5#5#5g #dfh!3!3{c 3#3#3ddf5!5!yddf #5353!5353 ggyd$e 72#"54   #'+/37=333333 #7573 !!!!!%2"-x-[d-o-F-2- +O-zdG3! Ilz[AdpG/-$,P.-z/e-J-5 -!  2#"&546ttutuutgf 53333xg hy$dx%3##x gd##5!!d7#5#5g #d{!3{c 33 dyy533yg y$dy!!dy#5353 gyd$ #'+/4:?ELQ]!3333 573#7 33333 &'3 4#5 #'"5'52#"&5463GdzsO-!+-2-Fd-ox-[-_ -! iaOh-  demttu-5-J/e-z.,P-/BGUdpz[L -`>j[ e0Ytuut!!Yk%MY]u -19I\nr7676'&'&7676'&'&7&'&'&7676766''&'&'&704102167676'6'&'&76767676767'&'&'&76767676'&'&'4'&'"3767637676565'"'&'&547676763'&'&'6?'743816767676'&'&'&&76767676'&'&'07&767657'&'&'&76767677'7''7'776/7#&'&'&/76'&#'&'&'&7676767601>776363"%436'4'&'&476767636'&'&'254'&#''&'&5&'&'#/74'&#''&'&5&'&//#7/'37'7'/'73#75##75'!'#37'#37!75'7#7#7'#?/37';#75%&#"3276'0&5#"'&54763272#"'&5476"327654'&                    @  &    *d    A   *   +$ 9 D%Z&  !%"&"  ! 3-',  "  " >DZ)(A\*q112 " 1.   %''5%    >  % '3   # tEM!  6  2vEN 6 2U ! :-6G2L6K'*"J-!*#>>;@.>:>>>xB//BxD??;#8FX5%++*5MS2"")&>>>(NO/. &%=J/331C9+@0/0,EA/101A   g  )        B  I      "    \   " b!  $ %"!(" ($, "(O       <0   *TU!   !-  /w  R [$ ' ${?! 7 &  ' b@" :( '   byqh 4/ HRQQ(QQR\K(0NeQRqq>e~=5==59lxA:064RQQWh{=-?'%46LJ<<,,:=MJ6445IS9:=#%59 !! 98"#g!4677#46gc!fObf!7R! "',159=BGKPU[`e327>767&'&#"&'&''%&#"'>7676727>7.'.'.7>7>7&546323>76.#"&&'.'##"'.'&>76327>267654&'.'62'&#"6254#"267&#"'"514;54312321+#1"53#'7#'3#'3#'3#&'735333 &'73 &&'35#7573 &'7&#'67&'&'2"'"5#=#7jL>L &*' 0).L97/e':57C(!$b< Aa:B66m7< 05n*hN>7L?x;JO98PJ:wAK6=Mh,n30 <6m77@<bA 7654'&#"'6767>7>7654&#".'&'&'&#"6&! !2$7'&! 6! %'"'.'.'&'&76&546726767676#"$'6! 7&! - ~-m-mt/$1o--_"0x-[d-o!%D- mnw -f+O-( T e_b O%!^ #GS""S$#V!!UQ&Z0+M^cW-T("   F2w   )S+Yf[L+0Z'q"5 KI!/,1= ghBY= oNNn .KVEge=2*!. B2-:4Ƹ~mmnr p r N0<z[Adp E',l* w, *0ˌ-$,P.:&S-Y8e/  a-r- M-$= !!U##U!!%I&=dZ%.Twsrr  NnoM srswT/$-:=.10.56$ "(-15:?EJNRVZ^bhmrx}5@J_u%#%#%#72%63#%67#&'73&'73&'3533355&'35#7573 '7'4&57'&'7&'2"5&'&'.'.'&5432.'&547>32#5#"=4;5431232#6767>7>7654&#"4&'&'&'&#">'"'.'.'&'&76&546726767676#"$'%'&! 6!2&! 6! >7654'&#"74676767632.- ~-m-mt/$1o--_"0x-[d-o!%D- mnw -f+O-( T e_b O%!^   35q}9O2p9HBAD& GS""S$#V!!U$   F2w   )S+Yf[L+01W!/,1= ghBY= oNNn .KVEge=2*!. B2-{ K>̼$#FX70+M\d[)U'I %EBAJ8o1 J":ϸ~mmnr p r N0<z[Adp E',l* w, *0ˌ-$,P.:&S-Y8e/  a-r- M-$=     54 &   %K!3=K#(' "EQk!!U##U!!v '-11EwA-!!(/R*$(q"656'.'.'30 #!"67>7>7>'''&'.547674767>7>767&7676'&76'6616'&767767"5&'2#&1&'7&'7&'7&5757573#75&'35&'73 4674&'73 3%&7&'735&'3#7!#7!#7!#7!#7 # `F". ! <5 ##"R0Ha(0R"" ^Bu#(a #xN-3%,_&$8*!83hz 5 LJ!aP=&$ "v-  = , - !7-d kqVXTTO-!+ [-p P-S-Fd-oyQ- #-x-uEy-xLz/wGy1|Bz/w *9\q!"7$9$* , m?} Bl0!b9B}?m oN{ņbX? {Q.9L H&9 3f;TS$- GqF8`(A!"   +s!   @+  Nf- -M-zr/W-/T.,P-0] \+P,*R {dpv+ Q0xwwwwwwwwwwp$(,05:?DINTZ"656'.'.'#"76''&507'&767&''&'726763277>7>7>7>7676'&320 30 #!"67>7>7>'''&'.547674767>7>767&767'676'&''&7676#7##7##7##7##7&'35&'73&3%&'73 4674&'735&'35#757357'&57'&'7'&'7'&'7&1#&'27"5#"R0H  %aL" )-"+Vn @ #  ?1/2 .+/  % #P4,#U!.  + @ Cf U ^Bu#(a #xN-3%,_&$8*!83hz 5 LJ!aP #7  =  -v"  Hz/wy1|z/wy-xx-uO#- DQ-yxd-o-S- P[- +O-0TVXkq d7-< !, m?} Bl1/$$^Pj#$  X6|  >;hKHH8"a/9,9% <3;J ") -B%6"!q]@L=U oN{ņbX? {Q.9L H&9 3f;TS$- GqF8u!"B'@   !s+  %wwwwwwwwwwm0X Qv+bdp*R +P,8 \#0ˌ-$,P/T.W-r/}-+ -=f-g + !'.6;AFKOSW\afkosw|%!&547.5467&54632%"5.'24654'&'.'&'67  573#7 6653&'&'73 333&&'733#%3#%3#%3#%3#(ҥGYfQwUTxQf[F'K  o!A ]:  k^sO-!+%[-D -2-Fd-ox-[BH --v--w--v-.u/1v1dm&?!Ti =dTxxTd= iT!?ڹle X o  ?- ]-$-o/w&i-z.,P-&09<",FqGUdpz[0I vuuuuuuuuu!QUY]aejosw{%!&547.5467&54632%!654&'&547654&'&547654&#"3#'3#'3#'3#'3#&'73 & 333 &'73&'653 6#7573 67&'.'&'4654'.'2"5(ҥGYfQwUTxQf[F'BC]hJ<6P79O6;Kg]CC1v1.u/-v--w--v- -_Hx-[d-o-FD --%+O-k :  ]A o!g dm&?!Ti =dTxxTd= iT!?ڹleDHE<C5AkMt ?*D8PP8C+? tMkA4C -o+O-/ N$1% t/m-m ~- C-/!R 5O98QQ89OFBCCBBCCBFO98QQ89OnO98PP89OFBBBBBBBBFO98PP89OLNE&+:<-n2& S' sq++r8&Zs(?7* : # --sm2KF1kx8u12`.-OCBBCFP98PP89P  )0 #rM+"O&,d >&*+ UJ), 0ˌ-$,P.?&N-</r5-mn5-~D-y 4!7;?CGLPTX\`dimquy}7!'!5#!5#!5#!!!!!!35!3!5357'!35!557"5%3#%3#%3#77552#73#7373 3 5 #7573 '#7'5#733##73Exgii͉̇"Dh2"ުhgD }.x-,v-.x/CDG!j,x-t,v-u/y-Fd-o+O-x1yig-x-r,w-<-x-Ugg4ffw"Dg"ͪޫwE+h*f0D.0. Wwwwww.-,C-+C-N'Gqxxxwxdp ,ƌ-$,P.wwwi-N./xxww!#4&'52#4'bg8Oe"bR7! %,37;?CGKOSX\`dhlptx|#'!#57'!35!35!!!75!!57!!'5!!5' 555%77552#73#7373 3573'5#73#733#%#7!#7%3#'3#'3#"5!7#!5EhFުIoG<D<<7676727>7.'.'.7>7>7&546323>76.#"&&'.312=32514+54#1"#"13"5"'&'2&'67'&#&'7  573#75&'3 &&'73 333 5&'733#%3#%3#%7#%3# *fzye*|,LMKMU_`3(( u '*(!$b< Aa:B66m7< 05n*hN>7L?x;JO98PJ:wAK6=Mh,n30 <6m77@<bA ̼$#"9OO98QQ 5!- C ~-%m-mZt/9 $1s N^sO-!+f> -l V- -Q"%d-N -b-3'%[O98QQ89OO98QQ89OnO98PP89OO98PP89O+:<-n2& S' v--w: 34e10TP98PP89P 4D-~5-mnH5-r</?&N-z.,P-<0 J),A U>&* "O&,dM+k # )0  %/37;?CGKOSW[_cgkosw{ 1' '1&7 &716 61 "51 4#0'3' #%' #%' #%' 3 573#7 5%'3''3 5%#335%'3IIIHIJHHIIIIIJHH >T[!u- - ,- /n kIzsO-!+ -&-Oc-d-ox-[{da-IIIIIIIJIIIIGGKHd <T\ Z ---mk/e-z.,P-0 %,*Ocdpz[0bax!467xO8 7Og3=%-7On'"514;54312321+#1"5267&#"254#"2'&#"67267654&'.'6##"'.'&>76327>'%&#"'>7676727>7.'.'.7>7>7&546323>76.#"&&'.7327>767&'&#"&'&'S""S$#V!!V#$$D 83:&d089L.(0 '*& L?Ki8"=$(!$b< Aa:B66m7< 05n*hN>7L?x;JO98PJ:wAK6=Mh,n30 <6m77@<bA L &*' 0).L97/e':57r""V##V""R$$ADDDDK{{#J@M.o-1uNNu1-o.M@J#Z  N  (]/9,# '    -7$.V"<90fD&S8PP8R'Df09<"V.$7-    ' "'B](  N  Yxy3"&xg 8O gOy#565O8 9Og ]U GQZn6! 7&! '"'.'.'&'&76&546726767676#"$'%'&! 6! &! !2$.'&'&'&#"6%6767>7>7654&#">7654'&#"#5#"=4;5431232# :4$!/,1= ghBY= oNNn .KVEge=2*!. B2-{ KIq"  )S+Yf[L+0Z'   F2w  ,Q&Z0+M^cW-T(GS""S$#V!!UG0.56ѻ%.Twsrr  NnoM srswT/$-:=.s,,t8NPF'?'M/R*$(q7654'&#"&! 6! '&! 6!2%'"'.'.'&'&76&546726767676#"$'4&'&'&'&#">76767>7>7654&#"#5#"=4;5431232#.'&547>32&'&'.'.'&5432m %EBAJ8o1 J":ŬX70+M\d[)U'ʸ̼$#* K!/,1= ghBY= oNNn .KVEge=2*!. B2-O )S+Yf[L+01W   F2w  -GS""S$#V!!U}9O2p9HBAD& q  35akQE" '("L<4!C-L6b#AaY"656'.'.'30 #!"67>7>7>'''&'.547674767>7>767&7676'&76'6616'&76776 # `F". ! <5 ##"R0Ha(0R"" ^Bu#(a #xN-3%,_&$8*!83hz 5 LJ!aP=&$ "v-  =  *9\q!"7$9$* , m?} Bl0!b9B}?m oN{ņbX? {Q.9L H&9 3f;TS$- GqF8`(A!"   +s!   @U] e'&''&7676'6760 #!"67>7>7>'''&'.547674767>7>767&767"656'.'.'#"76''&507'&767&''&'726763277>7>7>7>7676'&320 3  =  -v"   #7 ^Bu#(a #xN-3%,_&$8*!83hz 5 LJ!aP#"R0H  %aL" )-"+Vn @ #  ?1/2 .+/  % #P4,#U!.  + @ Cf UO@   !s+   !"B' oN{ņbX? {Q.9L H&9 3f;TS$- GqF8m?} Bl1/$$^Pj#$  X6|  >;hKHH8"a/9,9% <3;J ") -B%6"!q]@L=UC2!%!&547.5467&54632(ҥGYfQwUTxQf[F'dm&?!Ti =dTxxTd= iT!?ڹleC2/Q!654&'&547654&'&547654&#"!&547.5467&54632BC]hJ<6P79O6;Kg]CC(ҥGYfQwUTxQf[F'HE<C5AkMt ?*D8PP8C+? tMkA4C7676727>7.'.'.7>7>7&546323>76.#"&&'.312=32514+54#1"#"13 *fzye*|,LMKMU_`3(( u '*(!$b< Aa:B66m7< 05n*hN>7L?x;JO98PJ:wAK6=Mh,n30 <6m77@<bA ̼$#"9OO98QQ'%[O98QQ89OO98QQ89OnO98PP89OO98PP89O+:<-n2& S' v--w: 34e10TP98PP89Ptu 1' '1&7 &716 61IIIHIJHHIIIIIJHHIIIIIIIJIIIIGGKHJ)6Nkt>7654'&#".'&'&'&#">6$3 '7&! '5#"514;54312321#6767>7>7654#&! !2$%'"'.'.'&'&76&5463267>76761#"$'ˬX70+N`aW-T(G )S-Wb_L+00W WF+GT""T#$U""T$   wx   $r" . +2>ff?\3FnNNo =XCjd ;T / B2-g6b#?cZ763267632%>763232%327#"$'7/773&! 3 "&54632'254#"!254#""&54632"&54632'254#"!254#""&54632\31P[I;V31`@: CB ,9OO98QQ8CCBUU/2  "&Ҥ.% 778<6761-?XU1EpEpE/RZNl9PP98PP8BBCBBCC9PP98PP9OO99PP9CCBlBBCC9PP98PPn3LF0k2~Tp76nV.P98PP89PGBBBB;.- ; # 8*?r('Z +9;-n1& R& MO&*O98QQ89OFBCCBBCCBFO98QQ89OnP98PP89PFCBBCCBBCFP98PP89PG ^>'&6'6760 #!"67>7>7>'''&'.567674767>7>7>7&76772767>7>7>7>760 3!674'.'.'#"76''&747'&7>7&'"Q#$O|! (+A!j ^Bu#'b "wO-2-%a "8+ <3hz   3ƈ#_Q $ @002 0) $ "P 3-#T",  Df T$""R0H !#aL$!++"!Zj ! *!U)*!TQ"%&G- oN{ŇbX? {R.9"L)!' ; 2g;WU$, ErE7 =;hJHH8"a.  " <3767&'&#"&'&'3>76.#"&'.''%&#"'67676727>7.'.'.7>7>7&54632##"'.'&>76327>'"514;54312321##1"5254#"'&#"326267654&'.'6<#7jL>L"-' 0)-H>7/e':56J2 <6m77A;)bA tP!' (!$b< Aa*:B76n6< 3E1xZG?XJDU[B@]VDKW?GYx3 75:&d08?G.(0 ',# L?Ki8">\%%\''^%%^'''NNOw[fgjc]EPNkls1+4O-p,1vNNv1,p-M@K"DU" 35#!5#!5#!!!'!!!!35!7!557'!35!ˇʇˇ#DhwyDުyuD"~~ChTͬ"Ωެ3Dd/Q%!654&'&547654&'&547654&#"!&547.5467&54632CC]hJ;6P88O6-B7PP7C,> sNiC6B= /!376?!5?6767654'&#"'7676763{c@9&Cmc8"*%/Jy; ?!/42a>>i;6S< tiA-8.0?R1; \6?C^nF8V<?!36767632#74763232767&'&'#56765&'&#"'{c?"$(I3AKP"%h] ,B.(?4i")%:=,( M- &0Q`:'4;QRKJ  4.JW9-5_8$"#D 5!3733##5!53.9}}ic`no"!3!!5#"'&5472327654%'{cE61-,f`7)=;A++G0)Djb:[W /5(B8L2 6!3774'&#"'632#"'&547676767{ca %B ,L53ZFL4:s!*-P@\)C<@FM-#)8:-&VL"%<W@T0*0A,7R s\;1- D!3!#5#'{cU,:*. %M!33767654'&#"#327654'&/&'&547632#'"'&5476?#{c+'%;9$'k)K25E>$#A 2D>e_;JG !.-!# KFjdBNc H!#%4D=o#8Ma:5*4VW="!%'.#)l:55?^&&K:*G!!32?54'&'"#"'&54767632327#/#"'&547676?9>$2- GL9 $.(,(&M  ;KD=#$$9dFd8V&'I<(?(& @ -3-&  ><%$;.!#)("3!!32767654'&#7632#"'&/'&'57#>?* *OV:P%##(-6Q4614/6d +-"=J]E]N<)3E@jKZ" *9"7!!4'&'&#"6#"'&'&5476325'&'#5737^ !%8" )gA#>KS@'AMs@0 5  d(!)#*'8GKAy 0C&,S"$ Y=85(544  _A2*<%<)!'%%#,>^;<"3!!6765'&'5776323!5676=4'&#!49"EHk  ;< L/)% 5d8-(9!?a&'B$" 8-U#&<W3!527654/&#"53!32?A ,$c,>= {+/376?!5?6767654'&#"'76767633!39&Cmc/+*%/Jy; ?!/42a>>i;6S<xc ti4:8.0?R1; \6?C^nF8V<C;?C6767632#74763232767&'&'#56765&'&#"'3!3?"$(I3AKP"%h] ,B.(?4i")%:<-(c L. &0Q`:'4;QRKJ  4.JW9-4`8$"#D  33##5!55!33!39}}i.c`n"&!!5#"'&5472327654%'3!3`E61-,f`7)=;A++G0)Dcjb:[W /5(B8L2 !26:632#"'&547676767774'&#"3!3)ZFL4:s!).P@\)C<@FM-#)89! %B ,L5c?0*0A,7R s\;1- Dr-&WK!&<W@T !#5#'3!3U,:c*. &'8IMQ&'&547632#'"'&5476?##327654'&/3767654'&#"3!352D>e_;JF"!.-!# KFjdBNc +)K25E>$#A +'%;9$'kc#8Ma:5*4VW="!%'.#)l:55?^&&K:!?]E34$#>D=!#%4$2-ydd; I<(?(& @ -3-&  ><%$;.!#)(08V&(/37632#"'&/'&'5732767654'&#5!5!:P%##(-5R4614/6#>?* *OV_ <)3E@jKX$ *9Y +-#=J]E]Ndd*.2#"'&'&'&567672#"'&'&#"32?5!5! #*.&1;),! FKS@'AMs@0 5  !$8" )gA<0C&,^;<"$ Y=8@=YwE>SBdd/376765'&'5776323!5676=4'&#!5!5!49"EHk  ;< L/)% 5/8-(9!?a&'B$#9-U#&<dd".!!#"'&'&'&567672#"'&'&#"32? #*.&1;),! F=uD5F68 $I* bDdn.*/&/<37WM'<5J' J4[<.Q : \      * B i  Chess MeridaChess MeridaRegularRegularChess MeridaChess MeridaChess MeridaChess MeridaVersion 1.0 Version 1.0 ChessMeridaChessMeridac "$%')./012345679:;DEGINOPQRSTUVWYZ[uni001Duni00A0uni2206glyph66 bɉo1C M=UU]]22f33=fuo"dpychess-0.12.2/pieces/ttf/magnetic.ttf0000644000175000017470000007157012641567764020157 0ustar tamasusers00000000000000pFFTMzrhGDEF&r@(OS/2Bex`cmap(pgaspr8glyf݌`g,headd<6hheaE4$hmtxq3Nloca׶maxpX name;yndopost5Aq0vhea r$vmtx_R7r빕_<+C C Dc! "Hv 15g111ddZZaD[DDDD^Xq]aGXjN\@1Sx    " & 0 : D !""""""""+"H"`"e%1Rx    & 0 9 D !""""""""+"H"`"d%[W@&&߼TC,ݠ6\Z^hnvx  !"#$%&'()*+,-./0123456789:;<D=>?JEASKCMYWN[XZ_\]^`aOBTUR@  !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`a&:Nbt6Ndr~z6 ^ \`$Tfxv6<j p!!!x!""#$&&',''(*(()Z))*r*+>+,,<,- ->-..h./J/00l01H122V2303 72#"54 2 %3#!##CC1CC225!!!!CC222 7#5%#5#5DD2CCCΫ!3!3D͇33#3#3DDD5!5!DD2 #53!5353DDDΫD͇ 72#"54  #'+/37= 5#'#77#''5'57 #######7#57 &@_pS2E60U2q1240e0G1%0B2`1p~/R/2E07UqfH## 2#"&546xxy#xyyx 5333CχDD31%3##1hgdgg5!!d7#5#5gggd5!35cg33gd155331gh5hd5!!d5#5353gg5dh  #'+/Q%#75#5#5#5#5# 57%5%'!7!7!' 33>75&'7&'#0G0e42q1U2FEM2OSN_pO@O&3#A'E^"0l" =%F`0"lHfqU$E0/2~/R`1pB2%0#1]I$= #m2#]E%?!! !Yk%MY]u ,08H[mq7676'&'&7676'&'&7&'&'&7676766''&'&'&704102167676'6'&'&76767676767'&'&'&76767676'&'&'4'&'"3767637676565'"'&'&547676763'&'&'6?'743816767676'&'&'&&76767676'&'&'07&767657'&'&'&76767677'7''7'776/7#&'&'&/76'&#'&'&'&7676767616766363"%436'4'&'&476767636'&'&'254'&#''&'&5&'&'#/74'&#''&'&5&'&//#7/'37'7'/'73#75##75'!'#37'#37!75'7#7#7'#?/37';#75%&#"3276'4&5#"'&54763272#"'&5476"327654'&                  @  '    +d    A  )    -$ 9 DZ# !$$% 1.&,! "   " >DZ)(A\*q112 " 1.   %'(6%    >  % '3    # tEM  6 2vEN  6  2U ! :-6G2L6K'*"J-!*#>>;@.>:>>>xB//BxD??;#8FX5%++*5MS2"")&>>>'OO0/ &&e<4>>49lxA;/55SQQXi{=, ?&&47KK<<,,;#$68!!!!89!#2 !467"7#4γ~GcC~eECCC 159=Odhlptx!21#!"514"3254 '5?3%2 367654$#"#75#5# *#&'>3#*## 373:337:367.57%5%'!7!7 67'&54632337"$#&'#5&'5&'&''3##2222998~##$$&;L U/0G0e57-mo" A 20 !2*W,0oEM2OSN_pO@W SM6J%>0P?E0PFx=($)Dwn5  014M2222! !6 $$ ʫ>KWcceHfj$#h$Dk$E0/2~/R`1pB27 , =&7-@ ?, :y:N2UY2-7?S0t6#lHY1 SZ02VM3 33"&%"53·cG~1CCGd;D2 #5265532~FeDdGDDDcjuy}  ?3733323767777'32#!"'#5&=56;/''?'&7776%>7'46;/ ''5'57 #7*##7*##7*##7*#"'#7.'(%##73#%3#%3#%3#%"3!2=4#'76/&4#!"&?632.#"12#1"=41'1&?616#/&`S&4 T#0eFC40+%I"#\]n84H@7lgC(. P72Q? ]gn5.W"!p0tT'0O,dHcCS2Exs#(4:v;22YX~0o]603E8OQ&K=1U^P02<7D~1pu^1z& MsFeV7~/R/2E0t5JH#fHgggggggCDDDDC,4ZaX55Zogg&Y34YZ4-^pp^gggg4XZ44YY32XY43YX #*.26:>Bjnrv736/&&1?6'%"312=4#.#"35!35!35!35#75##7*##7*##7*##7*#"'#7.'(57%5%''46;/>7?3733323767777'32#!"'#5&=56;/''?'&7776Y3e2ZY4d5X[2e3YY4d4YggggL߁K$#x0G0es#(4:v;22YX~0o]603E8OQ&K=1U^P02<7D~1pu^1#8UY]a #3'3&'&675"1"5&'&''67>7.'>77&#"'676&'7673!''5'57#7*##7*##7*#"'#7&'(!#* ###777'#"'#"'#"'!"&7>77676'$'>7670&&'673254'7367776'&21#!"51436a;#y0CJ'%0! (-6C K$l$  F* H ( p02"4S2E2;w;16+#1+>C+..y1<2/++2/" *4b 20'5 C<EF#ɰU3 369ZdO-"*,0661"-8La-&&,,$'k2222az zr/2y'  E3 027/c3h?#@x9 $ < h4"  "d#q40 +M}LMK 2222#6 -159[_cgl&''&'&6721#!"514376'&76327&'.'.!"&7>7.'5"#"5&'56767.'56767767>76'76733&'#"'676726&'!5!67'776'&'&'&/367777'#"'#"'2#"'>7670&>7&547#75#5# #7*##7*##7*#"'#7&'(!#*57%5%'#3l*a$#2222x)#!*(!"Ur' ' % ;EF!)   (#"-*R&  [EW4$p0,&4( ~0t17"eb"!(* "ν &o#?;0δ#r5?2:+00:./"-<N88,  2);A*.0w182/(+2/" -5d01)3  3!3:14!N0 c!=Gf(0G0e52;u;1HfA#hzE0/2~/Ra  #.Ew%#75#5# 57%5%'!7!7 73632333321#! 321#!"514;&547#557!7#7"##7*#"'#7.'#32 30G0e4FEM2OSN_pO@3 8] "%"0Y\$0"N!!eO+"" !![$ Uo  U14*]+2>s917j4 2 0V$ }Hf{E0/2~/R`1pB2O4D>-e 0 #DY^$4(""0N!""!O}%C1n#!V52֟ 2 ySE])V}3 &I{ ###7%:3267*#7:3#7*#1*##7*#"'#7.'#3:3*#3:3321#!"514;&547#557!777"5435";2514+67#&'#"'6#77#''5'57#3265440e0G37n6 BBZZ }`+2.X*17j5 1/V$nl\[ PRO+"" !![$ Uo  U14*]|3 hhFb """M N0\2cii@_pS2EooxTTwQfH5D}3`E])VD50N!""!O}%C1n#!V52֟ 2 ySy3DDgh@cE / #""'5N_eDigB2`1p~/R/2E0UTxxTy(4<7#5.'5.''.'7#"'7&5463246373337&546327#"'67:3263(.'#"'237:3.7>7 ''5'57&'(!#*##7*##7*##7#"'#1#!"5143!2###7*#>7::3*#.254#"!254#".'.'*#(!>7*#6.'>254#"5C&o(#'Y!QO9 0mP P94Z%0.'o0q( O9z7O8C*u9!E"x.].  +W*ܰ> d^"agffg,V*+V**V+*VDDDD  ';?CGKz12#1"=426=463123:3'##'##'*#32 !26#75# 57%5&47'7263737737337373#(!"'7%&5143!21+#7*##7*##7*##7*#"'#7.'?#55'7#*17#7CCD6PN97PN4OQ-X,$E#@\=* `&16652T2(0ߴ 3%vg5EF4!1S y0222 !#42#2eF~DDEe;C  #'+Z"312=4#"&=4"##75# 57%5&47'7263737737337373#(!"'7%&5143!21+#7*##7*##7*##7*#"'#7.'?#55'7#*17#7JJKK8OP79NQ80G0eFEM2 *S/%L&0=^4)=0k@00O 566u,$S$(! $ug~#$4;u;2;v;1;w:28m6 0 4S4yw75DCCDFO87PP78OHfE0/2l.;*/R>* `&16652T2(0ߴ 3%vg5EF4!1S y02OSW[_cx#3#67'&54632337"$#&'#5&'5&'&'' 77#''5'57 373:337:367.*#&'>3#*## ###7375/#!21#!"5144M01 SM6J%>0P?E0PFx=($)Dwn5  @_pS2E0 !2*W,0o`7-mo" A 250e0G$$#2222VM38 , =&7-@ ?, :y:N2UY2-7?S0t6#lHY1 SZ0B2`1p~/R/2E0$Dk$j$#hQfHh6 $$ 2222y7#5.'5.''.'7#"'7&5463246373337&546327#"'67:3263(.'#"'237:3.7>7 ''5'57&'(!#*##7*##7*##7#"'#1#!"5143!2###7*#:3>%:3.'*%>7.5C&o(#'Y!QO9 0mP P94Z%0.'o0q( O9z7O8C*u9!E"x.].  +W*ܰ> d^"a3#*!*#"&'2!21#!"514T&;L U/##$$A998#0L F1$SM66N -mo"HIH"oo2222[>KWcc6 $$ ! !x,WbJipS]_, =&77&?5j$#hh#$k92222143&1ggUygex4'565yUgVxeg v;?CGKWv}327>'32#!"&=46;'&6?6'46;/5?33#%3#%3#%3#%"3!2=4#'76/&4#!"&?632.#"12#1"=41'1&?616#/&"&'(!#($bGe+#><&$7lg7PP728OO8gn5$%=<$,dHcSSGTTVU2DDCCLY42XZ3gg4YZ43ZML߁KgggY4d4YY3e2X5d4YZ2e30%QS&/feFrK=%#$<]P7E8OO8E7P^`=$#%BF%"&'(!#(736/&&1?6'%"312=4#.#"35!35!35!35327>'32#!"&=46;'&6?6'46;/5?30%QS&/Y3e2ZY4d5X[2e3YY4d4YggggL߁K$#xbGe+#><&$7lg7PP728OO8gn5$%=<$,dHcSSGTTh##hu5XY34YX24YY44ZX4gggg^pp^wgggggggg3eFrK=%#$<]P7E8OO8E7P^`=$#%7>7.676'$'>7670&&'673254'7777'#"'#"'#"'!"&7>7%"5&'.'&67676&'6&#"76'&"&'(!#" 21#!"5143$U 6C K$lgU3 369ZdO-"}p"r+#Q+.)2/=P2/" 7.'"5&'.'&67>7>76&'6777'#"'#"'#"'>7&547>7670&#"'67672676'&'&'&6767.$'!66327&'.'.6'&"&'(!#" 21#!"5143C;EF!)C( (Q n#$_ EW4 80U+T,}p"r,  Q*.+2/=P2/" 6*-*R\i &o#{0 r' ' % *"!(*!##'!&82222h?#@ ! -  ]Ku@FY:*`, Z9%7=0 k1(   E3@27C0bC7J=fy$ 3!  &3#d֪ "H;(NS"""")?EccE<^!""!O}+,5*-yW44dc .6N[%2 3267" #"&'2 3#" 321#!"514;&54632'"3254321#!"514;&547!'#32654 ǜ ?,#$,>N!!`""M%bFEchhgK"" !![zyKooxTTw55D44"""")?EccE7::3*#."&54632'254#""&54632'254#".'6767:3(!&'2%.'.'*#(!>7*#6.'>254#""&54632"&'(!#" !21#!"514/2d2.2c1d3.2d1/9OO98OO8CCD9OO98OO8CCD_ wff3g3u]]DCDC]1h6.\-.\.6g1WW3g43g4VT4444CCDD9OO98OO'!&8222-X,,X--X+,XO97PP79ODDCCDDO97PP79ODDCCDtKNPYfeO\MK E&Z][Z#E!@}>gffg,V*+V**V+*VDDDDDO98PP89O!h##h32222Zv'COi(!"&5:3373373##'##'*#32 !2626=463123:3'12#1"=4#(!"&'7#"5143!21+O:-\.@=<@9\=3#*" #.'&547'&54632375/#2222"IH"oo-mo"H#0L F1$SM66NƇ$$#2222h#$kj$#h,WbJipS]_, =&77&?^6 $$ 1v #/MYeq}!21#!"514"&'(!#" "&54632>7.%.'6767:3(!&'2"&54632!"&54632:3.'*%*#:3>222]'!&89OO98OO84444+ wff3g3u]]DCDC]C9OO98OOv9OO98OOT/1d2.3d 3c2.2d2/2222h##hO98PP89O,V*+V**V+*VKNPYfeO\MKHO97PP79OO97PP79O,X,+X--X,,Xtu 1' '1&7 &716 61IIIHIJHHIIIIIJHHIIIIIIIJIIIIGGKHaa #/6Ua!"&'(!#(161/&%1'#&?6%12#1"=4.#"%76/&4#!"&?632"3!2=4#327>'32#!"&=46;'&6?65&6;/5?30%RS&/Y4e2XZ3e3%X2e3YZ5d3gggL߁J9LY55[Z3gh5YZ43ZNCCCCaGe+$==%#5ng7PP728OO8gl7$%==$,eGcTTGSSg$$gt5[Z26[Z35XY34YYgggg^qq^,3YaY43Yohh&Y34Y[5,DDDDDDeGrL=%$$=_P8D9NN9D8P^a<$#%=LrFfUDTTD D #+7?_*#>7:!:3*#."&54632'254#""&54632'254#".'67>7:3(!&'2%.'.'*#(!>7*#>.'>254#""&54632"&'(!#" !21#!"514.3d1/1d2d2/3c2.8OO88PP8DDC8OO88PP8DDC^ @Age3h3?A]]DCDC]0h6.\.aV6h1WW3g43h3UU~3333DDCC8OO88PP'"&8222-X,,X--X,,XO88PP88ODCDDCDO88PP88ODCDDCsLM*U)ge,V*NL!E%Z]ĩ#E!?~>gffg>}N+V*,V**V,*VCDDCDO88PP88O!g$$g32222 [ 3?Lm}21#!"5143"&'(!#" 6'&6327.'.'.$'!66767.#"'67672676'&'&'&>7670&>7&547!"&7>7.'"5&'.'&67>7>76&'6S2222,&"&8'$!()"$s'   $ i!'o#|1> 7*- !*Sw!d _%!' * &y#s0DNN3 3:23!N/ d!gy$ Rg@#? ! .  ^KtAEY9*a+ Z9]OT$QaDn #BJVh!21#!"514*#"&'27&'>3#*" #.'&547'&54632'"3254/5?3%2 367654$#"2232"JH#oo-mo"H"0L F2#TN66M889qmmmmm';L U/:2222h#$kj$#h,Z_JipS_], =&77&?Z! !Eooj>KWccD'COi(!"&5:3373373##'##'*#32 !2626=463123:3'12#1"=4#(!"&'7#"=43!2+O:-\.?==@9\=,+O<)& #E!3327654&5&'"6323632#"'&'&'65656765co%&?G#$x;&'  ,#=?B./"",-1H55TVK-.10M "# /%$=!((??A>,0""%%CDOrs!3"'6763!2#"'&'6775c"/ 3 *  !C+ '<, +=S!3&'&'4767672#"'&'&56767327654'&'&#"32767654'&'&#5c0.+>B0.3F'%8:JK9;%%9:7  5  +/  !-E!%1/,7-/)+,26//89J@;9'%%&;<@I976!!3[&%&&()&(%/0i*?!!547632#"'&=#"'&'&54767632327654'&'&+   ?]K>>"#&&<;=7%$(%$3Z('$'.O*)dK!  -Z&%GFZeHF#"-;13 A@\B33<>i*H!!3632#&'##"'&547632&'&'&'"11367676]>eL;9" $'/4;p'G"%23&())>4&$dKS*(HJT@:6,+P!    <2112C280# ! 14i,B!!47632#"'&=#"'&'&'4767676322767674'&'&#"#%=O:>!""-.8e=''N=(%#&/8$%dK*  !"''FC[@9;),S\?B !219A34 !22i <!!!&'&'"6767632#!327632#"'&'&'&'6504WP+-IM./b!<;ON=>!8*+1WL  >>EI68!dQ4211yMHD.,+.CGL2:')< #-,683i$(#"56;547672+"32+#"'&5!!*00'%%9Z'?,1?Jr0)8""/ -)0* d}=S!!##&'&'&56767633547632"'&'6732765<5<%27654'&'&#()7K8<!!!<:On'  :=R^[-!#$"%S'(#%0L0.'';3$#d(**GFWVHF&'Q PBA%%6## @>ZB.399d673#!"1/i5!!4763267632#"'&54'&'"#"'&5,)2;00$%?$ ds #33= I?+*!". D!333#"'&'676;2#"'&5͇hDl   P  ^:!333476763!2#!"'&'67654'&#"&#"&1&͇hD^99Q;01;2* y /)%'4) "-&C:9##/05$#%(*=XY!333676763#"'&'&'&5&'676326767654#"'47676765&'&'&#"&'&͇hDv12=8/./C"# !69M7.. !  #j&$$@%1/ !  7)+/242,,47E+2*+%&- ,c !(' !"A"; q .!333#!"'676763232+#"'&5͇hD-$$3 . aX%"G    ]L!3336763!2+632#"'&'&'4763267674'&'&#""'65͇hD "15A00#$,,.-31(( ATB-- + ,! l   $$9;A C24! ! . >,+O<)& # aI!333327654&5&'"6323632#"'&'&'6565676͇hD%%@G#$x;&'  1#=?B./"",-1H55TVK-.10M "# 4 $=!((??A;/0""%%CDOrsG!333"'6763!2#"'&'677͇hDz/ 3 *  !C+ '<, X/AW!333&'&'4767672#"'&'&'6767327654'&'&#"32767654'&'&#͇hD0--=B0.3F'%8:JK9;&%9:7  5 "*/  !.D!%1/,7-/)+,26//89J@;9'%%&;;AH:76!!3[&%&&()&(%/0".C5!%5!547632#"'&=#"'&'&54767632327654'&'&+   @\N;=##&';<<5'&&$%2Z('#&/P(*·DD|! -[&#HF[eHF"#+933A?\C33<<".K5!%5!3632#&'##"'&547632&'&'&'"01367676V?dL;:! %$21>o(   G%%23&')'?6$$·DD|S**GFW?<4-*P"   @./22C282  34"D5!%5!'&'&#"2276767>7632#"'&'&'476767672 $# 6&%#"U     318Q=> !!"26@<-,·DD  1/8SDE  .')CEO<=7/."0F5!%5!47632#"'&=#"'&'&'4767676322767674'&'&#"  "%=P9>!""-15d>''N=(%%&/8$&·DD|*  "$&)DEZ@9;),S\@A !119B22!!12"A5!%5!!&'&'"6767672#!327632#"'&'&'&'06104WP+,JM.0a!<:PN=?!8*+1YJ  >>EI65"!·DDS2203wLHD.++.DEN1;'(< #/,6:2",5!%5!#"56;547672+"32+#"'&5*01'%&8Z'?,1?·DDn0(7$!/ ,(0) 3AW5!%5!##&'&'&56767633547632#"'&'6732765<5<%27654'&'&#',4I:<!!!<8Qm(  :=RaX-!%"%S'(#%0L0.&';5"#·DD)**GFWVHF&'S PBB#&6#" @>Z@03:8d675!!"1/"95!%5!4763267632#"'&54'&'"#"'&5 *)2;00 $&>$ ·DD #33< I>,*!$- iB!!"&'.'&#"22727>767632#"'&'&'476767672   7%'##T     354R<> !!!36@>++dg  0/7TCF  ,('DEO<=8/,!@f     0 H u  Chess MagneticChess MagneticRegularRegularChess MagneticChess MagneticChess MagneticChess MagneticVersion 1.0 Version 1.0 ChessMagneticChessMagneticc "$%')./012345679:;DEGINOPQRSTUVWYZ[uni001Duni00A0uni2206glyph69 bɉo1C  222 #22vvSXccvvvvunpychess-0.12.2/pieces/ttf/kingdom.ttf0000644000175000017470000010461412641567764020014 0ustar tamasusers00000000000000pFFTMz>|GDEF&T(OS/2BMx`cmap(pgaspLglyf̣@`}Lheadc:6hheaE4$hmtxcvNloca/\Q maxpX name~wjpost5;Dvhea $vmtx`8ּ_<+C C Dc4 "HU gh gx{ yggxx  kyyk4DKErL:eGG(fcafggnjN\@1Sx    " & 0 : D !""""""""+"H"`"e%1Rx    & 0 9 D !""""""""+"H"`"d%[W@&&߼TC,ݠ6\Z^hnvx  !"#$%&'()*+,-./0123456789:;<D=>?JEASKCMYWN[XZ_\]^`aOBTUR@  !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`a(<Tj~<Tlz < X t d** """4"D$B%'((()T*+\+l+,-./02v3464455j556R6~67h778P8z899H9::,:;;4;<*>Z>%"72#"54"g %3##!##x gd##5!!!!dw 7#5#5#5#5g #dfh!3!3{c 3#3#3ddf5!5!yddf #5353!5353 ggyd$e%"72#"54" !%)-159=52"333333 573#7%333333""8Lg|rM3"333/4Db4jt4X3  4'483M3g4}43M4Z+LD\`kxV12 2#"&546~~2~~~~gf 53333xg hy$dx%3##x gd##5!!d7#5#5g #d{!3{c 33 dyy533yg y$dy!!dy#5353 gyd$ $)-159=AEJOU[2#"&546 33333%&&'3#7573 !!!! # 5"5 6#~~3t4Xb4j4D3/n33M3|gL8X#h3{_ " 2~~~~qxVJ`k D+o44#3M44}3g3M48 jF4a !!Yk%MY]u -19I\nr7676'&'&7676'&'&7&'&'&7676766''&'&'&704102167676'6'&'&76767676767'&'&'&76767676'&'&'4'&'"3767637676565'"'&'&547676763'&'&'6?'743816767676'&'&'&&76767676'&'&'07&767657'&'&'&76767677'7''7'776/7#&'&'&/76'&#'&'&'&7676767601>776363"%436'4'&'&476767636'&'&'254'&#''&'&5&'&'#/74'&#''&'&5&'&//#7/'37'7'/'73#75##75'!'#37'#37!75'7#7#7'#?/37';#75%&#"3276'0&5#"'&54763272#"'&5476"327654'&                     @  &    ,d    A  *    -$ 9 DZ& !%% &  1.&*  "   " >DZ)(A\*q112 " 1-   %''5%    >  % '3   # tEM!  6  2vEN 6 2U ! :-6G2L6K'*"J-!*#>>;@.>:>>>xB//BxD??;#8FX5%++*5MS2"")&>>>(NO0/ &&>49lxA:064RQQWh{=- ?'&47KK<<,,:=MJ7446IS9:=#%68 "" 89"#g!4677#46gc!fObf!7R' (4eu #(-39?EJPZbinv{6'&'7"3254"32547&#"632"32654&7#"&5.5%47&54326767&5432%35#5##303:>'.'67#53533#3267654#"#"'#"'&#"&'&6767.7327#"&'"327327C>7#" .&'73 3335.'3 &#7573#%&'767#6?#.'#>727#'#*#"'746565.'2&'"5&'73 6?& ]\  oveee )))+++H_zzjHTuuTRvvcdG:L"]\^^.'(3G !'&'61674'&5676'&'&! !2$"$'6'.'.'&'&7>7663267>2''7'&$#"'6$&'>7&'4765&'.7667>'&'&7>7"''67*#.767%&'676'&'&'&'&2&76767676'#"'6"32654&'7%53335553#7573 '67#'267#&723#6?#&'7#&' 3 "&#27#7353"UUDUU &77$|Mm"  .Qe\/mIZ  .  "($   @0   ;_q"-- #-*3< ]3T2<2AB56BA1<3R3\ ;3)/# .\(ua陚`u'Z (0]eS. # )"  /\Ho/D,N{$67  ; b <   1@    !" !"  :QQ:9RRK  t4Xb4j 4om %!33M3 &4b[4Zs y4p m4s 3 )`H  "U)f3z3' 3RuCCu`enc"JhPF.E#]fFI'$2#%]* JWI=3$09yU>D)##!iKNPF'lD"!`AA@ 5<xVJ`kGm3 3 4 4#3M4 -/[4$s3x;,l3?4 (4 Hǒf{3&"/<ptx #'+04:?EJOTY^cjosw676'&54767>76'&'."5&$#"6$3 33##5#535"$'6'.'.'&'&7>7663267>%7''676'&'&7>767&#&'67&! 6! &'676'4'&'&'&%#"':3:3<567676767&5476'&53335553#7573 '67#'267#&723#6?#&'7#&' 3 "&#27#7353 "" 0 <)MU<[/'a陚`a@"UUDUU"- #-*3< ]3T2<2AB56BA1<3R3\ ;3)/# .+~~ 3"\}>D"!  !";G>D+!  #%S 5<xVJ`kGm3 3 4 4#3M4 -/[4$s3x;,l3?4 (4 Hǒf{3" '3\z #'+/37;BJRW\`dlp"6326'.6326'. '.'&6'276%327254'#"'26767654#2676'&#"'3254'&'676'&767676776776'&'67&45&!7>7'&''&'&767676'.'&67>767>7>7&'&65432676327'7"5>7'2#'#7''#7'#7!#7'  573#7'37675 67>&'.'73&5&'73 3353  %  $ {NWDlD@c>L? ;  25?$G4$8' =   #S5 d+8# h3l1',/HI-*& 1+0),!2$ ,% 8$)&! #RCyR|jhZgbKKN&?$_#) "Y3u!w4xD] w4xz w4wKy4w7[rM3"3[23I34Db4jt4X6`396:=$L׷ Gs!!=1#6F+)&%+W2)*    *  Z # 6!3o/@_ 7yn  %& 9! 41*3H #<>Y7CnJ$!H'0/6DC8, ;O[V.m'''G]  >0;_<$  y?4ww]4 3ww- 3wwww#4}43M4x 4.3  3 `kxV 5Va  !&+3;BFJNRVZ^bfjnrv|'&'&7677'&767676676'432676#2#327##"'! '.'&'&7/.7>7>327>7>7>7&'67676''&!7>7'&''&'&767676'.'&67>767>7>7&'&65432676327'3533%&'73&5&'.'73 67>7675'3#7573 '#7##7'#7''#7'#'2>77"5   7 4R" =:i '8$4G$>6*9ZeMXV!( !   #%7 "% 8# !0 4" ."  4 (& h3l1',/HI-*& &3%)*$2$ ,% 8$)&! #RCyR|jhZgbKKN6`3t4Xb4j436[233M3hy4ww4w` w4x~ ]w4x!Y3 ) "?$_#a 9@*  @ `N *%&)+F6#1%RBlL׷),Ub+ )"$DKK5 -%(!)% *A & H=# ]. 4!/@_ 7yn  %7" 81*3H #<>Y7CnJ$!H'0/6DC8, ;O[V.m'''Ga8 5<xVJ`k 3 f3  4'4#3M4x#4wwww- 3wwJ 3,]4ww4  o0;_<$  !%)-159=AEIMQVZ_diosx}3!'>54&'3'654&#"#3335 '3#7573 !'#?'#767#3&' 3&&' 3&5737'2&'73&'73 &ˈ[qK\r[DdFGd\4;t4Xb4j4D44 33M3|y4wx4x m4w4O 23M ibb#22"H~33D4#/lo3bl03UFeeFV;5qxVJ`k D 44l 4#3M44}www~"3ww*m3wN42< 4 aA2$1y35$).28=BGKPTX\`dhlptx|#!7&5467#7!'6%&%&'73&'73'2573 3&&' 3&&'#367#7%'#73 573#7'3 5%333##32654&#"'!"3254'2#"&546ḟ[r\KVq[yU{43b~3"#2Gb 23 4w4D mx4xy4w|rM3"3 3;44Db4jt4X4;gZr~s(LLQGLffffFddFGdd"0lb3ol/z35oB2$x a| 424w0*m3ww~"3www4}43M4{ 844 D\`kxVE;5I!cc !ffffDdFGddGFd4 DPX`lx  $).37<AFKOSW\bglrx~&7%7'&! !2$<547#"&5476'&#"&7&#"#"'&#"'6! "&54632'254#"!254#""&54632%"&54632'254#"!254#""&54632%254#""&5463273254'73273327327#"$'654'&65'7'767&! '6! &%'&'75'77'7%&#"3573%&'735757'75&'%'7&'73#7573 &'>7#4767#46723#'#>7327654'7#?&'7"5654'2&'73&'73M; ;LgP+S9P e9P O9e Q8T*US?WW?>XX>IIIIIIII?WW?=YYR?WW?>XX>III)IIII>XX>>XXRIIII?WW?>XX9E'E%?-D,>%C(F?s#,2-* ⅄m  mHALEDDw'Od4?@>b4j4 9~+   33M3w"4"&4`j  z4  4L  < 3 Q"G33*33LNE& l|OQ9<%aQ9&&9Qa#:9QO}k#5X>>YY>>XMIIIIIIIIMX>>XX>>XW?=YY=?WMIIIIIIIIMW?=YY=?WIIIIMW?=YY=?WF k !=[=!WF#$r^up*8;-iv^r$ ,AAA`"#032`9778"""N wO!5 P/&;>2? `k3 39c -6 ~4:* .  4#3M4v4 ,3F i3xL' <4l9 4  z , #(,048<@DHLPTX\afjw{#73 5#7353 #73 5 #73 5 5#73 5 #7573 '#?5#7##75#75#7552 "5%'!!5#!5'35'353353353533533535!35!35335%35335335!!=3!3573#335!353#" #(!<5" p4w3,3v4wb4jF4v4w3v3Ae(w33M3x4wDy4ww4x`w4xtx3xwh"DD2ggGGDCGDGGdGGDCeD"CDCDDDޑ"C"w+5+w4t2J`kww3w=3 w44#3M4www4D4wwww+53ww@54wwS34t2hC D3iשּׁ﫫שּׁޫ﫫D$ gCDDCyi"D!!D"!#4&'52#4'bg8Oe"bR7!+ !%)-159=AFJNRVZ^bfjz~' "5 525#75#75#7!#7%5#7 573#7 5 5#73 5 #73 5 #73 3%5#735 #735!#335!3533#3#%!!%3#3#%3#%3#3#%3#%3#%3#353!!%3#3!3573!52 3<5(#2 vDD3h"x3xw4xtw4xPy4wDx4wrM3"3e(w3I3v3w4v4Db4jw13v4^4w3mxx3U4#"wwxxww#!DU4CDCD3 D2h34ww@54ww+53wwww4D4www43M443 w=3ww3w`ku4t23w+5+wDDi3D2EBBEDD33% %-5f  &,159=BH&#"632>327&#"%'6'&#""3254"3254#"&5.5%47&54326767&54323267654#"#"&'#"'&#"&'&6767.7326##3335#56?&7&'73"5&'.'246565"'"'#%27#>7#&'###6?67#%&'7#573#7 &.'35333 &'73 .h}fgz~`ZrNMrS{?j"m #}d~)))+++cdG:L"]\^^.'(؛gN " 7;? aUS`ɬ?:8  ! MicF4wwgwwC$ p3  -*",r   3&4;  4 b  4  v.4; 3M3"3sn p3 4Db4jt4XR ~3`KS<?*...@AJ)Wh())(++++**lf3,\\)  '^^6 KI%L:QQ ? ^B00B^ ? QQ:M732#%23#46767#47>7#&'  573#7&'73'7&'5'7 5'57&'73 3577&#"3'7'75&'7sŶ`T r-K[ 19E'E%?-D,>%C(F?s#,2-* ]?WW?>XX2>XX>>XX?WW?>XX3?WW?=YY?WW?>XX3a3"o M 3>XX>>XX>>YY>>X ?  ( 49 <4L'yxF i3,3 v4}43M4 ^. :* ) ~4 -39l3 `k>2? )&;u P/!5( wO#'+/37;?CGKOSW[_cgkt} 1' '1&7 &716 61%#%333 #5'35#7573 !!#'#' 37'1"5&9&'29IIIIIIII7IIII97IJHH3wt4Xb4j4D333M3|g44 3  "IIII9IIII89HJII8GGJH@5xVJ`k D304ȑ4#3M44}3g3P4S4K  x!467xO8 7Og Y^ Sn~#"&'"327327C>7#"'3267654#"#"'#"'&#"&'&6767.732>'.'67#53533#'35#5##303:#"&5.5%47&54326767&5432"32654&?&#"632"3254%"3254'76'&ZH "ëǫ" IZgN " 7;? ǹɬ?:8  ! MhG !'&'&7>%&'>7&'4765&'.76'*#.762''7'&$#"'6$"$'6'.'.'&'&7>7663267>%&! !2$61674'&5676'&'7676'<547>'&'&5476'.'%67654'.'*33##5#535:QQ:9RR: !" !"  s b <   1@   )"  /\H0]eS. #N{$67 \(ua陚`u'Z - #-*3< ]3T2<2AB56BA1<3R3\ ;3)/# .;q"$   @0   ;_mIZ  .  "(m"  .Qe\/&77$|M"UUDUU4AA@` !"D"!zLh $ "*D)##!iKOJWI=3$09y!]fFI'$2#%]* enc"JhPF.EuCCu _R"/<ptx676'&54767>76'&'."5&$#"6$3 33##5#535"$'6'.'.'&'&7>7663267>%7''676'&'&7>767&#&'67&! 6! &'676'4'&'&'&%#"':3:3<567676767&5476'& "" 0 <)MU<[/'a陚`a@"UUDUU"- #-*3< ]3T2<2AB56BA1<3R3\ ;3)/# .+~~ 3"\}>D"!  !";G>D+!  #%  '3\z"6326'.6326'. '.'&6'276%327254'#"'26767654#2676'&#"'3254'&'676'&767676776776'&'67&45&!7>7'&''&'&767676'.'&67>767>7>7&'&65432676327'  %  $ {NWDlD@c>L? ;  25?$G4$8' =   #S5 d+8# h3l1',/HI-*& 1+0),!2$ ,% 8$)&! #RCyR|jhZgbKKN96:=$L׷ Gs!!=1#6F+)&%+W2)*    *  Z # 6!3o/@_ 7yn  %& 9! 41*3H #<>Y7CnJ$!H'0/6DC8, ;O[V.m'''G   '&'&7677'&767676676'432676#2#327##"'! '.'&'&7/.7>7>327>7>7>7&'67676''&!7>7'&''&'&767676'.'&67>767>7>7&'&65432676327'   7 4R" =:i '8$4G$>6*9ZeMXV!( !   #%7 "% 8# !0 4" ."  4 (& h3l1',/HI-*& &3%)*$2$ ,% 8$)&! #RCyR|jhZgbKKNa 9@*  @ `N *%&)+F6#1%RBlL׷),Ub+ )"$DKK5 -%(!)% *A & H=# ]. 4!/@_ 7yn  %7" 81*3H #<>Y7CnJ$!H'0/6DC8, ;O[V.m'''GwU&54632#!7&5467#DdGFdḊ[r\KVq[#1VFeeFU30lb3ol/wU3:B#32654&#"'!&54632#!7&5467#%#"'!"3254gZr~s(LLQGLDdGFdḊ[r\KVq[bzUgggI!cc 11VFeeFU30lb3ol/ ggggkT DPX`lx&7%7'&! !2$<547#"&5476'&#"&7&#"#"'&#"'6! "&54632'254#"!254#""&54632%"&54632'254#"!254#""&54632%254#""&5463273254'73273327327#"$'654'&65'7'767&! '6! &%'M; ;LgP+S9P e9P O9e Q8T*US?WW?>XX>IIIIIIII?WW?=YYR?WW?>XX>III)IIII>XX>>XXRIIII?WW?>XX9E'E%?-D,>%C(F?s#,2-* ⅄m  mHALEDD*33LNE& l|OQ9<%aQ9&&9Qa#:9QO}k#5X>>YY>>XMIIIIIIIIMX>>XX>>XW?=YY=?WMIIIIIIIIMW?=YY=?WIIIIMW?=YY=?WF k !=[=!WF#$r^up*8;-iv^r$ ,AAA`"#032`9778"""yU#'+/37;?CGKOSW[h3!3573#335!353#!!535!35!3535!35!35!3535!35!35735!35!3535!5!!5#!5'CDCDD"D" $VGGdG$ GggECDDCyiC$ ૫﫫"﫫שּׁ3#4'5g 8OgOyU!%)-159=AEIY!=3!3573!53#%!!%353#%3#%3#%3#3#%3#%3#3#%!!%3#3#5!#335!353CDCDEwwxxwwxx5hhEBBEDDy﫫ͬDyDDi Y^ %-5f&#"632>327&#"%'6'&#""3254"3254#"&5.5%47&54326767&54323267654#"#"&'#"'&#"&'&6767.7326##3335#5h}fgz~`ZrNMrS{?j"m #}d~)))+++cdG:L"]\^^.'(؛gN " 7;? aUS`ɬ?:8  ! MicF4wwgwwS<?*...@AJ)Wh())(++++**lf3,\\)  '^^6 KI%L:QQ ? ^B00B^ ? QQ:M%C(F?s#,2-* ]?WW?>XX2>XX>>XX?WW?>XX3?WW?=YY?WW?>XXd=i88hEA;d0'55*DDD F k !=[=!WF#$r^up*8;-iv^r$  W?=YY=?WpW?=YY=?WW?=YY=?WX>>XX>>XX>>YY>>X45 1' '1&7 &716 619IIIIIIII8IIII97IJHHIIII9IIII89IIII8GGJH K ">cz%&! 3 %2''7'&$#"'6$%'?2&76767676'#"'6%67>'&'&7>767"'&676'4'&'&'&7&'"$'6'.'.'&'&7>7663267>33##5#535>76'&'.#676'<5476&5476'.'̾O"q['ua陚`u'Z 0  !(("   #" /\>D"!%(&2< 4QE ;*CMgP !+B@0Q%#+<.L/+'-Ryh8: 99:8hwT-'+3H.<tEEtQfMC*; EQ4 <2&)*"&Q0@B,  EqS_gs{'767&! '6! &%'773254&573273327327#"$'654'&65"&54632'254#""&54632'254#"!254#""&54632"&54632'254#"!254#""&54632<547#"&5476'&#"&7&#"#"'&#"'6! &! 3 m mDB29"F(E$=-C-@%D(E ?t",3-* \>WW>>XX>IIH?WW?=YY=IIIhIIII>XX>>XX3>XX>>XX>IIIIIIII>XX>>XX,S9P d9P P8e P9T*TWNk<_ %/2*_<87-AAAEl =\=!W E"#oayl*8:-oqYw#X>>XX>>XNHIIHX>>XX>>XMIIIIIIIIMX>>YY>>XX>=YY=>XMIIIIIIIIMW?>XX>?W l}OP9>#aP:%%:Pa"; 9POe  4MO&L<m '"'&7677'&767676676'43267632#3272##'! '.'&'&3/.7>7>327>7>7>7&'67676''&!7>7'&''&'&767676'.'&67>767>7>7&'&65432676327'   8 4R" =;h &4(1J9;*8[eMXV!(!   (7 "% 8# !0 4"  -" 4 (& h3m0",.HI-*& &4$()%3$ $(& 8$)'!! "RCyR|ji[gbKKN 8A+  ? `N,%&**H4$1$RBlK׷(-Va+ )""EKJ7 ,  & '!*% )B ' H<Y. 4#/@^ 7zn  & 8 80*3I (6>Y8CnJ%!H(0/8AD8, ;N[U/m'&(G e (08BN6'&###53533#>'.'>"3254"32547&#"632"32654&7#"&5.5%47&54326767&54323267654#"#"'#"'&#"&'&6767.7327#"&'327327&'6767#"F ]\  ouCuuC{{!?'G !<'9))(+++Hfs}gDTuuTRvvccG:L!\\_^.'(ثhM " 7;?ȸȭ?:8 ! MhZH #ëƭ" IZ6#`HBB QqANvQs ))))++++R 1!!**kf2 +]](  '^^5 KI$Ln]:RR ?^VV^? RR:]4j6*ebbe *6GU  $(,048<@D^i!#5#%5#35'353353353533533535!35!35335%353353353!3573#335!353#!#!5#5'ggGGDDGDGGdGGDD·CDDCDD""CC"W𬬬𫫫߬﫫DDDDyiD#cc#G529A#32654&#"'!&54632#!7&5467#%#"'!"3254&Zr~s(GQPGLDcGFeDˇZrVq\azUgggBI!cc 01WFddFV30lpol/gggg(!3#52676767673{c DF 0D)!3676767654'&'"#4767632!{c55ee'%%$>Y86T;12 /.\[+-}wBA98D>#"A<7$#01JU2100 =NE!3654'&+5327654'&'&#"#4767632#&'&'3676{c_20QG$%$)U33JB00]B89Rf>?\&%;..PMH1# !"*;63 &()69C*/1!31<&&  !3 33##5!73{cEHccUQ=NN=2!33327674'&#"'!!67632"'&'&'&{c\ 7+*,,B*&$L4o%$+*-,89T6'+"cw)(CU,*tV *(0H78"$ #%:N!3676767672#&'&#"6763#"'&'&'&546546327654'&#"{c53Y200V 5+$&+)@<5431B832!$d$#'/,+)*90!"8?4<<,*),87;?[) 23?;89!"():=H t," (&MQ%'#$!3676767!5!{c;767442))#"#|{RP>UL=:::A_at-?O!3#"'&'&'&547&54767632"3254'&'27654'&#"{c>""*,.+.+', qY0/NH21/  !!8)(D9""E@%$. /001((  "-/({2$e++-(+""!C##N 3( "#)08I!!676767676767654'"#476763267#"'"'&'&'6%676765 (#J %&ysR/.C31.*JIr.&([ %7$8 T!)(d)  Xg-('0 ?KO"!%   )K%+!!#367632#"'#%4#"3276nRVD1244Sb.; --6E#$d@)"!;:LI@D+,Q##161]()67 .!!#5#"'&'&54767632327654#"N Q232/C;#"$"F6+-Yd 5I ,+CCGK;:""$ ;[67)(];;-8!!3#"'&'&5476767632!327676%!&'&#"Y)#9<.21("---&"#)'%K'!""I) d ), +EeB=8)# $QuT+,B-,&%!!#53567632#"3#HH27!XXd0FSFP !EF=0H!!67676763253#"'&'&53276=#"'&'&'&76367654'&'&#  *+4*"!VCDb)..#"U! />--C[+$$]% 6$%!!)!d;B<9%'!<8: %$A"%%QD'!41QJ13 96Z=)*%+!!#4'&#"#36767632U<@+,UU# ),-(dV9*+Y( *'!333#52676767673hgc DF 0Df-!333676767654'&'"#4767632!hgc55ea+%%$>Y86T;12 /.\[+-}wBA95!D>#"A<7$#01JU2100 =NcI!333654'&+5327654'&'&#"#4767632#&'&'3676hgc 20QG$%$)T33JB00]B89Rf>?\&%;..PMH1# !"*>33 &()69C*/1!31<&&  a !3333 33##5!hgcEHccU==Nf6!3333327674'&#"'!!67632"'&'&'&hgc\7+*,,B*&%M4o%$+*-,89S7'+"cw)(CU,*tV *(0H78"$ #%gR!333327654'&#"'676767672#&'&#"6763#"'&'&'&546546hgc%#'/-*)):0!"d53Y200V 5+#'+)@;7431A932!$y-! ('LQ%'#'E8?4<<,*),8659!"():=H g!333676767!5!hgc767442))#"#|{RP>UL=:::A_atn)S!33327654'&#""3254'&7#"'&'&'&547&54767632hgcw9""E@$$8/  ! 8)(>"")-.+.+', pY0/NH21C 3( "!+0N""!C##. /001((  "-+,{2$e++-(+lM5!5!676765676767676767654'"#4767632363#"'"'&'&'6g %7$6! T"(%'&G %&yrR.-D31, ,KHs.&)ydd"   *K $!(   Xg-()0 ?JN!#$l/5!5!4#"3276#367632#"'#: --6E#$RV%$6B3142Uc-ydd##170\*)76(" =9LHBC+,Pl35!5!6767672#&'&#327673#"'&'&'&56( 22B-/)! S!!6''81$%U.0;!"&$$yddGB74)+G7 ],,"!8>-- 89P0l25!5!327654#"#5##"'&'&54767632v$#E4--XnN  S0311A;#"yddZ77)(^;;v5I +-BBHK:;""$ l<5!5!!&'&#"3#"'&'&5476767632!327676s!"#H) !Y* 9;/21'"-*0%##)'%K&yddDC-,#%*+ +EeB>8)" %RuR-,l5!5!#53567632#"3#HH17!XXyddFREQ EF=L5!5!6367654'&'&#67676763253#"'&'&533276=#"'&'&'&~$ 5%%!!)$] ,+4($#VCBd'0/""U!!.@+-DZ('&ydd%J01:8X>()$+EB<6(%;:9 &#B"%%QD$#30l#5!5!#4'&#"#36767632U.+ 98Q0 = a      - E o  Chess KingdomChess KingdomRegularRegularChess KingdomChess KingdomChess KingdomChess KingdomVersion 1.0 Version 1.0 ChessKingdomChessKingdomc "$%')./012345679:;DEGINOPQRSTUVWYZ[uni001Duni00A0uni2206glyph63 bɉo1C ""2^RRUUTUU^Tmpychess-0.12.2/pieces/ttf/cases.ttf0000644000175000017470000010522412641567764017460 0ustar tamasusers000000000000000OS/2Q\{5VPCLT}W6cmap:>cvt #0fpgm3OglyfMuxhdmx `L@Hheadȵ6hheaJP$hmtxq>~<locaͲ|maxp9t name*"postKprepdR&:bNHG Wx' $#  : b  N  HG  Generated by Fontographer 4.1Generated by Fontographer 4.1Chess CasesChess CasesRegularRegularChess CasesChess CasesMacromedia Fontographer 4.1 Chess CasesMacromedia Fontographer 4.1 Chess CasesMacromedia Fontographer 4.1 22/08/99Macromedia Fontographer 4.1 22/08/99ChessCasesChessCases@,vE %E#ah#h`D-D3>,(eUu@) EhDEhDEhDEhDEhDEhDEhDEhDEhDEhDEhDEhDEhDEhDEhDEhDEhDEhDEhDEhDF+F+EhDEhD?W@!@ Fv/7?@@Fv/7?@@Fv/7?:77:>% s; $P2`22W &22t 22-U2CsLQ=-7?CXeF=$2s2=202s01 J@ @    Fv/7?7676%67>7654#""'&'&'&'&546764747675'537337676%#5%#7#7'#7'#73'7'757?'73#75757'57'73#73!57;5 5!5###>=3.C<=C/k  4OL J=8+ NA"D% W}~W $#D$ <& )7>J .'\  46 '8,A: 03.&.3-9B,Q 0 =2:`726[82@C[2q3TdFF22q VVe&lW21(2Rs2=25s2  z* m@7 , 18=,87@m '  & JJ #- YT\4#4$"/M /" !-//-% /2) 5?6ZT0#<:778?Zob2"d22E232Wr(U2V272mY))2s2=2041sAUe4632#"'&'&#"&'&'&546324767675'537336324'&#"32763232#"767632#"54'&#"32732767654&#"###5!5#3557#73'735757'5?#7'73?'57/7'73#7#7#?#7%#52"5/6+"!&*/ '1\?A; 03.*-30 :@>^1  GE?42&D")Jd#w,(N8.4$ #E;;3<,"/1mn10"!(<39=Es225G=2̥s1(2W2lOQVV2q 2KFFTd382@726=2:m"&06`/5U:"5A4?V0  -..-# 0TA4B-=  O&5/`7/j?762#@21;#268>1s4=222s))oY2mv2U2Vr(132J2E2<"d22nZo78?77<:09Jlvz}->76767"5#"'.'676767654';273263632;232654'&#"614'&#""'"+"1326%"2654#7#5!5#3557557#57#7#?#73#73#?'7'7'7'7'3/7373'7357g)# >$  '%(#&8C$  gaq; 0hYJCPf  s2G=2̥s! Fg|ax2B424525626252YY e_#v3G^W#22EY2Jd;N,'$'* ' %.T.GL7<%;142'.̂q [w  2s=222s>E2>2gF_x4455554X2Yd2_2u2y2b7ߚI$I2NRVZ^bfjw &#"+74'3736767&'763632!67676767#&'#"'676?6765577'7'7'7%572#"'"1#&547&54632+&+;27633236767676767632!654'&'&#+&#""*#&#&'&'&'7373'73373#'#7##7#7'#7'#5757;5 5!5#7#?.& ?&   1 " ear( :=  2 :%' (  Fg(YY e_#v3Nm / <& .G  K1c$1   M* E %4Y2=2\#2/4252'626^525^424x2Gs2=s2  ;.457,!4($=* J/T)8S1>E2>2g3X2Yd2_2u21#(/ +/ 1  1 YaA+,)ɋ%". / +P%$4/245555544Dx2s2=202s#'+.159=AEIMRVZ^bfjnrw{7&54767&'&547&5476327###5735 5#3557'73'73'3'''7'7#7##7#7'#7'#5755!#d!V"++@.(& d# s225Gz2xf=2̥s!2S2?!4C2C^B2B^A2A\C2D`(/e$\AG2 "%T#%"+7*"%@%$B 3G?]$@2s4x3Q2 =222s$>T02V522,2CCCCAACC\M2'2/"RVZ_cgkosw{7&54767&'&547&54632'4'&'&5467>54'.547>54&#"5'5#57#?#73#73#?'7'7'''3'73'73!57;5 5573%5### $c!UA++@V d$ +,;1 ; #":1 1<+-0(o%:2;:2:;1::2:4!?1!2¥s2<{2x<25s2e#\BG2 "%U#%"+67*"%#U# " 3G@] 2j=&"  7#  ! #71$%=i 20L3'@99::::::,2N253/ 2>$2s2<2Q2zxx/42s"  #'bks}$2Dkptx|%7#'#7'#7'#7'#57'57'57'5#7'73&'.'&'&'632676?'&547&'.'&%"3254&7"3254!"3254"3254%2654'&54632654'&54632#"'&#&'&5754'4=47654'&'&5&'&'&54632654'&'&'&'&54632654'&546"3254"3254'&'&7&#"632&54'32723223254'=4'&#"32763233'73'7/73'73#735??'757;55 ##Z6:2)424Y82;KN2_$w gx(Z14   C@  hg@B   p   w( C)*Q)*: (5 8!%s@&( :*)P  *)C*HF> M)gd]ASpqR(0'cB55Bb9C&F 1J \2a22;2LU|k t225r2593337;M^EU2:2ww*f29m Z$1 6PG 8'Y?(#;;p Y'h0P6   %Eg P   P  ) "5)>H ))!,'BR6**3$/Q!)6 #   ' / 88A13**6RB';  )) GrC1.)$ r  k  %%D (J2:]"a;;L29U2Cj2'2V2s242r7;?CGKOSX\`dhlptx}#'5#!75'##'5!'!5'575'57335733573!5#7##7##7##7##757'7373#73#73'73575%5%57#5 7'75757;55#7#QFUNUFQRR^n$p$#q$nO;2:]:2:\;2:^92;^;2:|2||2||2|{1z 㙀 Fs2s2 "FEEF" 5PP|00bV`q#  #q`V::::::::::k32 b{{{{{{yyg3212}$212 22O2I2222s202s J@ @  Fv/7?2s23s32 2922212$2P2@22||||||}};12:::::::::: cq|"3254535#5##3326#2&'&'&'&'&'6763"327&5465&54767&54632"327654#""3254##7#5!5#35577#%#?#7#7#7%#57%7'7'?7'7'3'73'73775 '73  ++.++  Y) ?%+ 441d'0 -  &? ;>XLQG"1&%20< !BB"@z@8G}@s2G=2̥s&4%2F2=Y2f@2E-27|MS@UCd 4  2(2:i O2n :/66/:t $ !+ ( 42  1) +?^FRD< &%'($%!!*4'+I  N2s=222s;$FF=Xe&?C-7LQuU2C]2= 22&2{ %2_2V2$P # !$(,059=AE4'&#"3276?232232"3254&"#"'&547654'./&'&'&54632654'&'&5463267654'&54632654&54632654'&54632"3254&'"3254!"3254"32543263763223254'&'"#"## 5!3557'7'?'?5#73'73'73'7'73'73#755757#57#7#7#?#E;aaS6))2&,2OF  < O  O   G2r422s'2Cj249U2'L2V;"an]J2)(J Z*f2?2w|2ĐM^'7;339+4=AEIMQTX\`dhlptw{#"'1&54?'&5471632763211#"'75#1#57157;5 57#575'3 57'3 5' #7' # #'7#7%# ##o6t2<'3iи_2_S1N0g20Sx2x2jp324s22s2<2Л2R_2^M202g0y2wQ31n43s!;@@Fv/7?:77:>% =806608   /   m2 1O + ERIRD<!&$)#&!7654#"!4'&#";>767663267'&'&'&%32765&'&#"27654'&#"'8,A: 03.&.3-9B,Q 0 46 N& )7>J .'\  A"D% W}~W $#D$   4OL J=8+ N>=3.C<=C/k]T\4#4$"/M /" !-//-% /2) 5?6ZT & JJ #- 87@m ' 18=,* m@7 ,j  {]r!1Ew@F@p{kba^]TD=6.(x;*"cbd]\Z2Fed[Zp OAH8mRH`_OFv/7?^1  2"5/6+"!&*j?762#@21;#268>&5/`7/  U:"5A4?V0  -..-# 0TA4B-=*"&06`/5}dlF +<v@8ww@xuoiedb`QOME810.,`^VE>;4&!  uq)==kVFv/7?//</...............................10IhVwIha@RX87w8Y"2654614'&#""'"+"1326;232654'&#"%>76767"5#"'.'676767654';273263632bhYJCPf  ; 0N)# >$  '%(#&8C$  gaq~.̂q [w  w2'9;N,'$'* ' %.T.GL7<%;14vdaG (z@Q@qifb`_]G;1-,(!  |TPN96)% J  WUT{|{Fv/7?/<";.4eD#I@$$@%!! #Fv/7?/</........10Ih$Iha@RX87$8Y7&54767&'&547&547632!#d!V"++@.(& d# e$\AG2 "%T#%"+7*"%@%$B 3G?]$eE/Ro@.SS@TPPLF<62/)R HD$:>A/0R0A2Fv/7?/<</////...........10Ih2SIha@RX87S8Y%4'&'&5467>54'.547>54&#"&54767&'&547&54632,;1 ; #":1 1<+, $c!UA++@V d$ j=&"  7#  ! #71$%=i2#\BG2 "%U#%"+67*"%#U# " 3G@]  E_&8FNC32723223254'=4'&#"32763233&#"632&54"3254'&'&"3254'2654'&54632654'&54632#"'&#&'&5754'4=47654'&'&5&'&'&54632654'&'&'&'&54632654'&546"3254'"3254!"3254"3254&&'.'&'&'632676?'&547&'.'&(0'cB55Bb9C&gd]ASpqRHF> M)&( C)*Q)*: (5 8!%s@&( :*)P  *)C*    R`   C@  hg@B   x 8  %%_   $) "5)>H ))!,'BR6**3$/Q!)6 #   ' / 88A13**6RB';  )) GrC1.)  P   P P$1 6PG 8'Y?(#;;p Y'h0P6   %Ed.A#';*@<<@=65.-;:7643&% $'$%%&.-.//0 434556&%&''$)(-,! 0/ #"21"!&%# '$98+*;(  Fv/7?XLQG"1&%20<++.++  N 6 $ !+ ( 42  1) +?^FRD< &%'($%!!*4'+I:/66/:a A]$,5>@^@Ȥyf:2)!ż}hdN80w#4?'Jn`#t+<ZA A6]-%qFDZFv/7/S6))2&,2OF        +@K,,@-$'&'&$! !!"+     + ! !"")Fv/7/324#"3276!!Q?\fY !uTd+[raRz(BH=SS( E<&30&%(Y)"&@<''@($"! &#%$ &%"!$# Fv/7?323#3#7aRy(BH=SP?\fX !uTd+[qSS!!FYO % [1M @8!!@"   Fv/7?D=).1TT!!)MV'Z,kD, "M $@B%%@& $#"!   $!"  #"Fv/7?BYNe n &(<4TT!!Mv@2 @!    Fv/7?,3UI1TT!!W/3lO*' ;GM@H@    Fv/7?+:7[XaM$ $=,1(R1TT!!UF!&5*>dLX p$:M{@5@   Fv/7?5&'&#"27654'&#"v $,2(78 +-)").( 4;'I +  /1-#%37D*< "=>! MrsL *S 3C' B73? -)0D*>44?*D/KQ1/;.+C +)++)!+.$09 1QKz( CC ) 21<` 0$ 1-4*&  a;18    !-&:HP8%327232325&'574'&#"3272?63233&#"632&54"3254'&'&"3254'2654'&54632654'&54632"#"'&57545&=4654'.5&'&'&54632654'&'.5463267654'&546"3254'"3254&!"3254"3254&'&'&'&'632676?'&547&'.'& eYdA &%(#:#P>?5590P#c&I/  %;!.Ov@2PP@QMMID:51.(OB/< FB$8<?./?O/1Fv/7?9MIB7$ +)% .X$, ( &7 , 2:OCH>!,"!- ?HDP93 , 7&'2$XK  "g  #841139! 73+00+3  (* b- .H( <HCI>4"!$$!"6 r)$ P1. 4"$  -)  ZXf   $+  ~ "* ,    PX9'&&}!) + %{342'-##Q$C*L&?/' 85 ,s0''y@4((@) & $$" Fv/7?0&%(Y*e@)@ Fv/7?+3UI!.3lO+& ;G @9!!@"   Fv/7?+:7[XaM$ $=,1(S!F"'6*>dLX p #: j@,@     Fv/7?>?~~~~|xjF8 x$~. H 6(>#z%z%'*X./063:336^8v:D<=>BZD8DEGJL$MMNOPQFRPSNTFUFVXWBXDYZ[\ ]4]`ncdehijXk2kl"nopdqqrstuvvLx?00M000`|{}vE_A,!4!!Q!4!'Ho!{b $%')./012345679:;DEGINOPQRSTUVWYZ[bcdeijklmnopqrstuvw$$  !"#$%&'()*+,-./0123456789MNWQaOSZXT:;P<\=Y[`]^_?>@BACRDFEGHJIKLp( %+/5:BDFTXbdftx  (.17ADFKVadfkv (28:BHJJJ\`bbbtx  !"#$%&'()*+,-./0123456789MNWQaOSZXT:;P<\=Y[`]^_?>@BACRDFEGHJIKLUVd                                                            2MACR@  `uChess Cases 7CHER00u_<8x8xbb"@ *pychess-0.12.2/pieces/ttf/millenia.ttf0000644000175000017470000005030412641567764020152 0ustar tamasusers00000000000000pFFTM{OGDEF&O(OS/2Ax`cmap(pgaspOglyfO0`DTheadf6hheaE4$hmtxn$Nloca-rmaxpX nameLpost5AN|vhea O$vmtxYM0O!I3_<+C C Dc! "H       G  UUUUUUUUUUUUBGGGNGG[ppCNqN224 jN\@1Sx    " & 0 : D !""""""""+"H"`"e%1Rx    & 0 9 D !""""""""+"H"`"d%[W@&&߼TC,ݠ6\Z^hnvx  !"#$%&'()*+,-./0123456789:;<D=>?JEASKCMYWN[XZ_\]^`aOBTUR@  !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`aLZR`n|Np~n~ T  VF6F"F@"D&jV480$Jh&x L !!!"*72#"54  #z!!Xz #z !!!!!!!!!! YVUUXzWWWW #yz!! Yz# %!!!!!VVVVV#YVUUX #w 7!!!!! WWWWW#YVUUX  !!!!!!!!!! YVUUXWWWW y!! Y72#"54  C #'+/!!!!!!!!!!!!!!!!!!!!!!!!$# #$ #$#"UW!!VWR!!X!53#DCC5!!3#5#53DC !3 G33G33#DD!!#535DDC #'+/37;?C5!!5!!5!!5!!!!5!!5!!5!!!!!!!!!!!!!!!!!!!!VUggggffffg$# v #$Rf "#$" "#$!!Yk%MY]u-19I\nr7676'&'&7676'&'&7&'&'&7676766''&'&'&704102167676'6'&'&76767676767'&'&'&76767676'&'&'4'&'"3767637676565'"'&'&547676763'&'&'6?'743816767676'&'&'&&76767676'&'&'07&767657'&'&'&76767677'7''7'776/7#&'&'&/76'&#'&'&'4767676767172763630%0616'4'&'&476767636'&'&'254'&#''&'&5&'&'#/74'&#''&5&5&'&//17/'17'7'/'73#75##75'!'#37'#37!75'7#7#7'#?/37';#75%&#"327654'#"'&54763272#"'&5476"327654'&                       A  '      ,c    A   )  .&:DY'  "#% %  !  0/%(! "    # >DZ*(A\+p122  " 1 .   %'(6%    ?  % &4   # tEM   5  2u DM 5 2U ! ;-6F1K7K()!J,!*" >>;@-?;>>>xB//BxC>><"8GX5$*+*5NT2!"(%>>>(NO1.&&=I/331C8+@///-D?200/B  g  *       A    I     "      [    !  b  # %"!( "%',  !)N       <2  %TU&&   .  /v R [$ ?! 7 ' ! b@" :' ! byqh 4/ HRQQ(QQR\K(/MeQRpp>e<4>>49lxA:064RQQWh{=-?'&47KK<<,,:=MI8447HS9:=#$78 ""#55&##{%463ʎ#C #'+/37;?CGKOSW[_cw!!'!)5!'%%5!!5!!!!5!!%!!%!!%!!%!!%!!%!!%!!%!!%!!%!!%!!%!!%!!!!!!!!!55'%!'!5'!7>E|<z8d2d d2d2U[+Yx|v$X!   X# # $$$#####""""" $#y$Vmucgb@]BMcV!&X y'yˎݏXC)-159=AEIMQUY]aeilptx|!%!5!!5!!%!'!5!5#!!!!!%!!!!%!!!!5!!!!5!!5!!5!!!!5!!5!!5!!!!!!#7%'!)5!%!5!'!!!!!%!!!!#3"C$ܪ$y  dd2CE?B{?WC3]U_3˫:###### $%# $%# $$$V#""" w C "&*.26:>BFJNRVZ^bgw!!5!!!!5!!'!)5!!5!'!'!!!!!!!!!!!!!!!!!!!!!!!!!!%!!!!%!!%!!5!!5!!z?{~6?CBEDdd  #3" """"##$z$x$ #"$ #"$ w###x###F]U_3C "&*.26:>BFJNRVY]aeim !!!!!!!%!!!!%!!!!5!!!!%!!!!5!!5!!5!!!!5!!5!!5!!!!'%'!%7!!5!!!!5N<dd CBE?Y<kB|CwUw3RV# !### $y # $%# $z$V##""! "W$v C "&*.26:>BFJNRVZ^chr|!5!!!5!%7!'!#7!!!!!!!!!!!!!!!!!!!!%!!!!!!!!%!!!!%!!!!!7!% !!5!!!%CwB<k?CEdd EN<2qf $"! ""#$$ #"$ #w $ w###" v#V#CfUw3ثC #'+/37:>BFJOTX\`!!%!!!!5!!!!5!!5!!5!!!!5!!5!!5!!!!!!#7%'!)5!%!5!'! !!!!!!!!dd2CE?B{?V### $%# $%# $$$V#""" lQV# C'+/37;?CGKOSW[_bfjnrvz~2 3<5.% ! !" #<5>7%!!%!!!!5!!!!5!!5!!5!!!!5!!5!!5!!!!!!#7%'!)5!%!5!'!!!!!!!_^y_ΩDooodd2CE?B{?2d2VUUV2d6l,Fhoopq9u:mucg$#$v """""#####$$$ # #   !! $C #'+/37;?CGKOSWZ^bfjnrw!5!!5!%7!'!!!!!!!!!!!!!!!!!!!!!!!%!!!!%!!!!%!!!!5!!%'3#%3#%3#%3#%!!%!!%!7! !-!!Yk)<k?dduBEDD DDDD DD1PS22!"! ""#$z$x$ #"$ #w v###" $## #######Fy!UwC #&*.26:=AEIMQUY]aeimy}!'!3!!%5!'!%!%#5!'%!5'!3%)'!!)5%'!!')5!!7!'!)5! 7)3%!53!7!7%!5!!)5!' 7  !!!!"?ZI]7% ! !2 3<5.Dooo_^y_Woopq9u:7% ! !2 3<5.Copo_^x^popq:t;ZTQ>'''%&"I99!!#"132dJap@!327674'&#"#672#"'&'&'332767674'&'&+ I*)+-;2''g C96# w >@NI>:!!f$#.-%##!4B#$@J*+!"=65D?9 >13" 55;( '&--&&p !3!##5!7# 2bk_<jY||YVkC8!3!!263632*#"'&'&'72767674'&'&'"# kW6 831'$MN <55$$P&&0<10+.7j:b)(559VW $ 'M 1/:4./MN#=!3632"'&'&56567674'&'&#36367676 L%/<;:"$$(/16KCF(*/o*+0,(''*, *(&4"$=>P=06"'$&&&""=>QT;>'()$##"$%$$!!3%$%&20%&%%&33F673"!"!88A656 9:IF<:"!&&;:BP44i2!!3#5#"'&'&'&547676324'&'"3276kkJl9.1"##;9C#!!",-N'''&%)J21~Ug&%76@!" !I:8++=:.065i4!!3672#"'&'4'&'&'"327676kBr<=:%&&('-$J'&(I$(5*&('&;-'%ig!=@UM:9#%4T2)+*,:*..! ./i6!!3#5#"'&'&'&547676324'&'&#327676jj(03*A01 $$99A175&'36$&$$::'%&T9+,00/YDB !0:,.,//'+.!.-i)2!!#&'&'&'&5676767632!32767&'&#"W$7;e;/1 "!00:V98r-,J.(' $%93./ 48*-'':7F61/$$)(>?@L33;%%Gi!!#534767632&#"3##..6''$'Ek b q5 gbML7O!!53#"'&'&533276=#"'&'&54767676324'&'&#"27676k()78@P9< i !bD%$   3G99 #009431*'$'5''%#70)'#[~EC74H7//,-V{   $$EBY1/+,(=-)**28+0.,i!!33632#4'&##"k2ojDvkUQ> N# #73#!!!!!ߑ=kVVVVVPbYVUUX##'+/37 654'&'&#"#6767672!!!!!!@"'&3''i"<;O52/)&=[?VVVVVTR='''%$$G;7#!%#0/6fHaYVUUX2#;?CGKO27674'&#"#672#"'&'&'332767654'&'&+!!!!!/H*),+<4%(h"D88!!w"!=>OK<:!"f&#.,&$!#3ZVVVVVB#$@I++!"=56C@: ;45  54<'!%(+,'&:YVUUX2# !!!!!! ##!##5!VVVVVju1bj^XgUgUgVdYVkY||#48<@DH!!263632*#"'&'&'72767674'&'&'"#!!!!!W5 920(&NL ;73&&P$(/<0/-.6i<)VVVVVb**359UW $$#M 11811.M YVUUX#9=AEIM4'&'&#36367676632"'&'&5656767!!!!!*-/,'%)*,+('PK%.<;9$$'&1/7LBG'*-VVVVVO,**(&'2-,')4"#>AM:33%&$&PT<=''Z%("%%%'&&%$# '%"#" $#!VVVVV &32G943"!"!88A655!8:IF<:"!&&;:BO533%$$$40%%'%)$$""$%$&! |YVUUX , .B!!!!!!!!!!3#5#"'&'&'&547676324'&'"3676XgUgUgVdYkkJl9..""#%9:B#",,O*$'%$*L01WWWWVg)%74=X?@!! "J98+*=://65 ,048<@D4'&'&#"3276763672#"'&'!!!!!!!!!!$)4-#(&%<,(%LkBr?:8'&'&))(K&)%-XgUgUgVdYN0++,,:)//!./g?AUM98%#1UWWWW ,!%)-15#"'&'&54767632&#276!!!!!!!!!!BNOAB&('%CBOP@=]O,/)*5($!XgUgUgVdYʁ"">?NLA@%&{I89C5), ?WWWW ,26:>BF4'&'&#"3276763#5#"'&'&'&54767632!!!!!!!!!!''33'&$$:9(%jj(01,B/0! $$99A266XgUgUgVdYF:-, +//%-- !/+%U:-,/1.YEA! 1WWWW ,.26:>B&'&#"#&'&'&'&5676767632!276!!!!!!!!!! $$:4-/ 5W$7AM13 WWWW ,#'+#534767632&#"3##!!!!!!!!!!..6!"(#(EkXgUgUgVdYb p6 fbMWWWW KOSW[_4'&'&#"327676'53#"'&'&533276=#"'&'&5476767672!!!!!!!!!!%&%5'(%%52'(k()79?O:< i cE$$  %.H89 #!.-<430XgUgUgVdYM?++(*37+2-,Z}EE84H7//,+Xz %$DCY0/+-)WWWW ,"&33632#4'&##!!!!!!!!!!"k3njCvkeXgUgUgVdYUP? WWWWi%!!#"'&'&54767632&#276AOLDA'(''ACNS=<^N-/'(7, """??MMAA$%zH:8D4*. 'Iu   " 9 "Q "   Chess Millennia-LChess Millennia-LRegularRegularChess Millennia-LChess Millennia-LChess Millennia-LChess Millennia-LVersion 1.0 Version 1.0 ChessMillennia-LChessMillennia-Lc "$%')./012345679:;DEGINOPQRSTUVWYZ[uni001Duni00A0uni2206glyph69 bɉo1C tzzzW{{UUllUUpychess-0.12.2/pieces/ttf/cheq.ttf0000644000175000017470000007641012641567764017306 0ustar tamasusers00000000000000  OS/2~NcmapIglyfœLuuhead,cz6hhea `z$hmtxzlocaJ3,{NmaxpE{ namek*{post|n- @ "# $!%   X Sax    " & 0 :!" R`x    & 0 9!" "# $!%     h] * .,)          $@1     #  *hS$# Z            $"%   h_q   #    ,'S  I  *>1          +,!q 0    %Gb  $  *%  "$      hV       %,  "  ": $'JW &!   *#        ! g   RhyT      #    :     $ (    &"!;* /B     & +4(    Zh_  #      7;    :&5'    - h+I5On? K@   LYV  D!80  . 2  !11   X7m"8.   )$' =)h(I3Lr 5## '65*# $)LX  $! sd  r Q1   jhY.E[on       l  U31""OV O  S  TS   O         %+$k*   &(     i   ! `] chm'$'JW &!    j,  IH  $h    -   -   +h}2 G     U,.       31!   "4 *=g0  & *;    h$      (#  !  .    !   5  hm$Hs2  r   }9 /     6" 8 $'JX &!     <      Y       $$=       #'+/3=++q+d ++1=+Q16/2>0H1\++=+e+p+ 2++=Q6?G+ #'+/3=+2+'+dQ +%$>T  ) -,) L=G:7+;8+=7+;8+<+=3 +&e+ Q+%5$>GTC       $@0    "  *LF8888 /37;?CGB++_`[+e ## 7+BhC             suL=G:@+;@+=?+;@+<+A+#[f+"#+Ai4B%%    &ruLF@@@@ #'+/37;X\`dhlpt5C3+j{:+Jq+dtuwr xY9  !    -(T  F  + ;4          +.+ WL<1+;1+;2+=1+;1+<C+=kz:+#Je+t" tPv3q\x3*Y9 0    %Hf!   #  +&  "$      L22222 #'+ 5V3+b6++Oq+dpx{       %,  "  "@} v $'JW &! eL=5+:5+;6+=5+;5,<V+=c 6+MOe+p'wVz+  *#         ! 4}vZ"  [#eL66666 #'+/37;? $(,048<@773+h>++'q+d`><AdU4U"       #    :   ! )   S+L=7+:7+;8+=7+;8+<7+77+=> +L'!e+Y`??<dT@4    &"!;* /B     & *3'   U+L888888 #'5+3+T:++!q+d-k#     #^3Z 4*) 7]% K;7+=7+;8+<7+:8+>7+++=T:+I!&e+-3 k    :'7'    /^n4 Z*0)x  $K888888 #'+/37m =+}ywx8+HH% 5H-pD L?    MZW  A 70   . 2  "cLG:9+;:+=9+;:+<{+=}ywy9+"H. GM%'6NH-Oo!(:8  [7k"8.   *$( <.)dLF::::{ SW[_c|=+rvwww8+-  5## G! $6F '65*#]1 $)LX  $! L=G:5+;6+=5+;5,<}+=wwww9%+"-9Usd  q FM!%$N6%  N]( 1  LF6666} #'+/37Of}6:>BFJNRVZ=+nn^~t`<L+[3<Fdxzwn       i  S42"#PWM  P  ST " R  |vL<-+;-+;-+=-+;-+<e+=mn~t;L+)++4=FdFewzWvd       %*$k)  &(     e    bW '|]&vL-----f #'+/VV-+qou@%U+l)6O l   j,  IH  $L tp$'JW &!  D|L</+;/+;0+=/+;/+<fVV+=pt?%+(k2,)7O[k>G -   -   +6tTo   +DX$|L00000g #3VZ^bfjn9=AEIMQUY]773+hF%?(d+E IdLQr~t    U,.       31!   4*=mwL<5+;5+;6+=5+;5,<x77+=F% =@"+&0  + *;    $IcL^>Qq~Vsu$      )%     ,    !   5  (m\&wL66666y EIMQ 26:>BFJNRVqC3+m4+o3+o3+nL!}#'JW &! Orh9 /    5"@+e ; bWQ rW4  +=7U+V=3+r;D4444L%}|  .Pqin       %$=     W/Qp_$W   <   +>8U+= V=4UDDfVUWDUWDgUDWfEVVfDDeWs6_<$L$$LY&RZjcUUVD%%%%J ^ %NLN5"&(+:-U03R6:]:s:::::::&uf       .  8ChessRegularChessChessChessRegularChessChess&TSLNFRVXU[OP43,.&2685;/0 ?A@Cpychess-0.12.2/pieces/ttf/maroquin.ttf0000644000175000017470000011001012641567764020202 0ustar tamasusers00000000000000pFFTM{ GDEF&(OS/2Ax`cmap(pgaspglyfO`headd6hhea :4$hmtxoNloca=RamaxpX namevVvGpost5Avhea $vmtx_4x8._<+C C  Dc, "H   g UUDU              UU4TDTDTDTDTDTD#C`|3#C`|3jN\@1Sx    " & 0 : D !""""""""+"H"`"e%1Rx    & 0 9 D !""""""""+"H"`"d%[W@&&߼TC,ݠ6\Z^hnvx  !"#$%&'()*+,-./0123456789:;<D=>?JEASKCMYWN[XZ_\]^`aOBTUR@  !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`a(Zp.VnX|  4 >XZ!d#%L%\&&$&4&'b'(h()@*L**+J+,$,Z-."./00112233v34P45P56F67<78B89:&:;f;<=>=>Z??@ @AzA 72#"54 3 %#!'35#31Dhh3CDh3 %!5!!5!!5!!5!!5!!5%!!DDDDDDDDDDDDD13 7#5!#735#gg1CDhͫD 3#3#3#3#3#3#3DDDDDDDDDDDDDg3 3#3#3#3#3#3#3DDDDDDDDDDDDD !5!!5!!5!!5!!5!!5%!!VDDDDDDDDDDDDD1 53!5#35#gϪDgDD 72#"54   #/;GS_kw%761'1&'61'1&761'5&61'1&61'1&61'1&61'1& 6'1&%61'1&%61'1& 6'#&61'1&'61'1&61'#& 61'1&Jxxyyvnf2f!n!wTTK^*]>yx~Uyyvnffmw!TTK*^]#$ 2#"&546xxy$xyyx 3!35#35gCD3DU%#53gDDgD5!!g7#53#CCgDgU!3UgD33DgUV3#53CghV!!hV53#5CgCh  #,5>GPYeq}2#"&546 61'1& 61/&%'#&7 6'1&'1&7 6'1&17& 6'1&61'1&'61'1&'6'1& 61'1&63'1&63'#&6'1&761'1& 61'1&%76'5&xxy\^*&a@Xb~}e)wnffovxyL!xy$xyyx]+^c'aa}&|ewmf2f!n!v! yxyx!!Yk%MY]u.2:J]os7676'&'&7676'&'&7&'&'&7676766''&'&'&704102167676'6'&'&76767676767'&'&'&76767676'&'&'4'&'"3767637676565'"'&'&547676763'&'&'6?'743816767676'&'&'&&76767676'&'&'07&767657'&'&'&76767677'7''7'776/7#&'&'&/76'&#'&'&'&767676767172763630%63654'&'&476767636'&'&'254'&#''&'&5&'&'#/74'&#''&5&54'&//17/'37'7'/'73#75##75'!'#37'#37!75'7#7#7'#?/37';#75%&#"3276'4'#"'&54763272#"'&5476"327654'&1                       @  '      -b    A  )   .&:DY'  "$% & ! 0/%)  !    #  >DZ)(A\+p112  " 1 .   %''5%    ?  $ '4   # tEM   6  2u DM 5 2U ! ;-6F1L6K()!J,!*" >>;?.?;>>>xB//BxC>><"8GX5$*+*6MT2!"(%>>>(NO1.&&=I/331C8+@/00-D?200/B  g  *       A   I     "      [       b  # &"!( "($,  !)N   "    <2  %TU%   .  /v R [" ?! 7 ' '! b@" :(  ! byqh 4/ HRQQ(QQR\K(/MeQRpp>e<4>>49lxA:064RQQWh{=-?'&47KK<<,,:74'&7>#"&'&632"13!2514#%!21#!"514!21#!"5147"13!2514#5!+"13!2514+"&7;21#!"514;2=!76'5&76514'761'1&?761'1&6'1&63'#&'1&763&'761 17&54#"'6'1&?<514'61'1&?&+61'1&?&'613'1&7&#61'1&?6761 #'#&7761#1/&76'1&'6153'1&?l ^]a;0 !W--?<9H~~1A2233gggV4"""#UU3VVG0U""""W2F4DUUUhVVUCgxyHxyvc$Cyb )#UHG D<H  ohGRQHq's`)7= DasIt_HW Y~q/z"S7!+K97a %,H7#g̵^Nq DsgG sPr&  #/EYk} '/<DNV_iqv"13!2514#%!21#!"514"13!2514#%!21#!"5145!+"13!2514+"&7;21#!"514;2=!!7>76&#)" '.'&63!%2#5#"514354312721+%761'1&6'1&63'#&%'1&7 6'#&'1&7#37'761#61&'616514'76176'5&76514'761'1&?#"'6'1&?<514'61'1&?&+61'1&?3'1&7&#61'1&?#'#&7 7&5146'1&'6153'1&?v2233gggV""4""3VVUG0U""""W2F4DUUUhVVUCgn-=<,n͆K1/KDS$"U""W!!WxyvYig%b&aP` +jxyH#UHG D<HGRQHz`*)t_H"33333fggf""""3UVVU"2E""""E2DUVVUDg654"Y**X"z#"X""X"#yxv)jf+('`Ph |yxHTH$H2<H4QRG&-+#P"/ u`H"  "+08BKS]erz#-5>JVb%'1&?5376'1&'61 7&514'#&7#'1&?&#613'1&7'1&?&+61'1&?<514'61'1&?#"'6'1&?6514'76176'5&!21#!"514!21#!"514;21#!"514;2=!'.'&63!%2'5#"514354312721+6514'761&'61#61'761#3'1&7 6'#&'1&763'#&6'1&761'1&H/_D*`3HRQ`GH D<GH#UHxyEgggW3VVU!DUUUhVVUCg͆K1/KDS$"U""W!!Wz +`oPb&a%XiguvxyVH`D"/ t+#-&GARH2<H$HTH}yx/fggfUVVU"DUVVUD3"Y**X"y#"X""X"#h `P'+jft)v! yx  )1>FPXainwz &2>%76'5&76514'761'1&?#"'6'1&?<514'61'1&?&+61'1&?3'1&7'1&?#'#&753'1&?;21#!"514;2=!!21#!"51476'&7%&6765&'&67%676761&'761 7&&'6154'61&'61&'761'1&763'1&763'#&6'1&761'1&JxyH#UHG D<HGHz`X_HDUUUhVVUCgDggg|=>= mIroX5m3{' " #  SU#H">Wvxy>yxHTH$H2<H4G&-`H2DUVVUDfggf%  ^opOM00v!z!`4 k#,""#MT  />w/1Wv! yx# 5AMcw &08EMW_kw7%"!.'&'&6'&7%&6765&'&67%676"13!2514#%!21#!"5145!+"13!2514+"&7;21#!"514;2=!761'1&6'1&63'#&%'1&763'1&7&'761&'6154'61&'61 7&&'761761'1&?53'#&7#'1&?3'1&7'1&?&+61'1&?<514'61'1&?#"'6'1&?6514'76176'5&& <%+n~cl Oې* r657IroX5m3{'^2233gggG0U""""W2F4DUUUhVVUCgxyvW>Q"1#S # " "*H/_`3H$GH D<GH#UHxyk =%iiX +v opOM00v!z!33333fggf32E""""E2DUVVUDyxv/1W/>  T#""j#, `H`o-&G4H2<H$HTH}yx  "'05=GPXbjw&2>%'1&?5376'1&'611/&7#'#&7#'1&?&#613'1&7'1&?&+61'1&?<514'61'1&?#"'6'1&?6514'76176'5&761'1&6'1&63'#&63'1&L1 17&%&'616761&'7612#"&546;21#!"514;2=!%"13!2514#!21#!"514H/_DI Dao`3HRQ`GH D<GH#UHxyxyvoc),}]  qPY ~~DUUUhVVUCg4UU3VVgggVH`D"/ t #JD]-&GARH2<H$HTH}yxTyxvn }\-$ qOtZ~~xDUVVUDUVVUfggf$  #/EYeqz '0:BGPUampx"13!2514#%!21#!"514!21#!"5147"13!2514#5!+"13!2514+"&7;21#!"514;2=!"32654&'2#"&546&'7616761&'61 17&L1 63'1&63'#&6'1&761'1&76'5&76514'761'1&?#"'6'1&?<514'61'1&?&+61'1&?3'1&7&#61'1&?#'#&7#1/&76'1&'6153'1&?v2233gggV4"""#UU3VVG0U""""W2F4DUUUhVVUCgjjii~~PYq q}] ),5ovxyUxyH#UHG D<HGRQHz` DasIt_H"33333fggf""""3UVVU"2E""""E2DUVVUDeijji4~~-OtZz$ q}\- n!v! yxyxHTH$H2<H4QRG&-Ds #Jz"/ u`H, )5AMYaiqy#/;GOYanv;21#!"514;2=!5!+"13!2514+"&!21#!"514"13!2514#!21#!"514"13!2514#"3254%"32542#"54%2#"544$7&676$'4&'%.'.'.5>7>7>%&'61561.'7&'761'1&7654'761 17 .'63&'37&'763 6'1&761'1&76'5&76514'761'1&?#"'6'1&?<514'61'1&?&+61'1&?3'1&7&#61'1&?#'#&71/&76'1&'6153'1&?"32542#"543DUUUhVVUCg3G0U""""W2Fh3VVUT""4""gggf2233F$$$$$$ UUUUUU!!!'!!!!G5<<0 4,"35+AF/4DU0( ) BR9)%ID ,$EI&e&p;I!bT" FxyUxyH#UHG D<HGRQHz`It_HUUUU"""DUVVUD\2E""""EUVVU3"""""fggf33333$$$$h$$$$6VUUVgUUUU<]II==II]?=II==II=P[EZ13"=!F][IGVV8&0 $G*QA|^Jx++(eg& ";Jb yxyxHTH$H2<H4QRG&- #Jz"/ u`H VUUV4"!!"% !-9EQg{ *2<DMUZco{~>'#!5#'!5# &335;353"13!2514#%!21#!"514"13!2514#%!21#!"5145!+"13!2514+"&7;21#!"514;2=!#61616'#61 '1&7#61 '1&7#6337.7376'#& 6'1&761'1& 61#676'5&76514'761'1&?#"'6'1&?<514'61'1&?&+61'1&?3'1&7'1&?#'#&7 7&5146'1&'6153'1&?1RibVVbiS0̊"2233gggV""4""3VVUG0U""""W2F4DUUUhVVUCg&`\iMa"2 a} ?`~^ ^vxy-":MxyH#UHG D<HGHz`*)t_H̐4liix33333fggf""""3UVVU"2E""""E2DUVVUDw\h842'~')^& yx?SyxHTH$H2<H4G&-+#P"/ u`H33 2#4#73.~g sD q3~gErPr!  "+08AIS[hpz &2F%'1&?5376'1&'61 7&514'#&7#'1&?3'1&7'1&?&+61'1&?<514'61'1&?#"'6'1&?6514'76176'5& 61#6761'1&6'1&%376'#& 37.%#63 '1&7#61 '1&7#61616%#61&335;353!21#!"514!21#!"514;21#!"514;2=!H/_D*`3H$GH D<GH#UHxy":xy^~^ k`} Ia42a\i` ̊#gggW3VVU!DUUUhVVUCgVH`D"/ t+#-&G4H2<H$HTH}yx$?yx^&~')42'\h8liifggfUVVU"DUVVUD  +AILXdir{ ".6BN!21#!"514"13!2514#;21#!"514;2=!>7#"&'&632'1&?5376'1&'611/&7#761'#&7#6761 '1&?&#613'1&7&'61'1&?&+61'1&?<514'61'1&?#"'6 17&54&'761!'1&763 63'#&6'1&761'1&'1&?6514'76176'5&wgggWUU3VVgDUUUhVVUCg<:G~~4jH/_DI Da7=`D'sHRQ`GK oH D<GH#Uyb  Cc$&vxyHxyUfggfUVVU"DUVVUD,H74'&7>#"&'&632"13!2514#%!21#!"514"13!2514#%!21#!"5145!+"13!2514+"&7;21#!"514;2=!l ^]a;0 !W--?<9H~~1A2233gggV""4""3VVUG0U""""W2F4DUUUhVVUCgW Y~q/z"S7!+K97a %,H76&#)" '.'&63!%2#5#"514354312721+v2233gggV""4""3VVUG0U""""W2F4DUUUhVVUCgn-=<,n͆K1/KDS$"U""W!!W"33333fggf""""3UVVU"2E""""E2DUVVUDg654"Y**X"y#"X""X"#z)=IU#5#"514354312721+'.'&63!%2;21#!"514;2=!%!21#!"514!21#!"514"DS$"U""W!!W"͆K1/KDUUUhVVUCg43VVUggg##"X""X"#"Y**X"DUVVUDUVVUfggf6>;21#!"514;2=!!21#!"514%&6765&'&67%67676'&3DUUUhVVUCgDggg'IroX5m3{'=>= DUVVUDfggfopOM00v!z!  5AMcw7%"!.'&'&6'&7%&6765&'&67%676"13!2514#%!21#!"5145!+"13!2514+"&7;21#!"514;2=!& <%+n~cl Oې* r657IroX5m3{'^2233gggG0U""""W2F4DUUUhVVUCgk =%iiX +v opOM00v!z!33333fggf32E""""E2DUVVUD +72#"&546;21#!"514;2=!%!21#!"514!21#!"514~~DUUUhVVUCg43VVUggg~~xDUVVUDUVVUfggf #/EYeq"13!2514#%!21#!"514"13!2514#%!21#!"5145!+"13!2514+"&7;21#!"514;2=!"32654&'2#"&546v2233gggV""4""3VVUG0U""""W2F4DUUUhVVUCgjjii~~"33333fggf""""3UVVU"2E""""E2DUVVUDeijji4~~-GOW_go{"3254.'.'.5>7>7>%4$7&676$'4&'2#"542#"542#"54%"3254"3254"13!2514#%!21#!"514"13!2514#%!21#!"5145!+"13!2514+"&7;21#!"514;2=!$$#.5<<0 4,"35+AF/4DU0( ) BR9)!!!'!!!!@UUUUUUUUU$$$$$$2233gggV""4""3VVUG0U""""W2F4DUUUhVVUCg+$##$P[EZ13"=!F][IGVV8&0 $G*QA|<]II==II]?=II==II=6UUUUgVUUVUUUU9$$$$h$$$$33333fggf""""3UVVU"2E""""E2DUVVUD!-9EQg{>'#!5#'!5# &335;353"13!2514#%!21#!"514"13!2514#%!21#!"5145!+"13!2514+"&7;21#!"514;2=!1RibVVbiS0̊"2233gggV""4""3VVUG0U""""W2F4DUUUhVVUCg̐4liix33333fggf""""3UVVU"2E""""E2DUVVUD52#4#FdgCeFD+;;21#!"514;2=!%!21#!"514!21#!"514&335;3533DUUUhVVUCg43VVUggg̊DUVVUDUVVUfggfUlii)5A>7#"&'&632;21#!"514;2=!%!21#!"514!21#!"514X<:G~~4DUUUhVVUCg43VVUggg{,H76&#)" '.'&63!%2#5#"514354312721+3333fffU""5""3UUVH0U""""Ww4CUVVhUUUDgm,<<,mͅK00KCT#!V!"W""W33333fggf""""3UVVU"2E""""wDUVVUDg554"Y**X"y#"X""X"#D#C-GOW_go{"3254.'.'.5>7>7>%4$7&676$'4&'2#"542#"542#"54%"3254"3254"13!2514#%!21#!"514"13!2514#%!21#!"5145!+"13!2514+"7;21#!"514;2=!$$$-5;<0!4+"36*AF04DV/(!)!BQ:(!!!'!!!!?VVUUUUUUV$$$##$3333fffU""5""3UUVH0U""""Ww4CUVVhUUUDg$##$P[EZ13"=!F][IGVV8&0 $G*QA|<]II==II]?=II==II=6UUUUgVUUVUUUU9$$$$h$##$33333fggf""""3UVVU"2E""""wDUVVUDD#5AMbv7%"!.'&'&6'&7%&6765&'&67%676"13!2514#%!21#!"5145!+"13!2514+"7;21#!"514;2=!&!<%*n~clOܐ(r5 76HsoW6m3{&_3333fffH0U""""Ww4CUVVhUUUDg-k =%iiX *v opOM00v!z!33333fggf32E""""wDUVVUDD#1=IUav&32676&'&.7>74'&7>#"&'&632"13!2514#%!21#!"514"13!2514#%!21#!"5145!+"13!2514+"7;21#!"514;2=!Fl ^^`<0 !W-.?<9H}~0C3333fffU""5""3UUVH0U""""Ww4CUVVhUUUDg Y~q/z"S7!+K97a %,H5#!5#'!5# &335;353"13!2514#%!21#!"514"13!2514#%!21#!"5145!+"13!2514+"7;21#!"514;2=!41RibVVbiS0͉"3333fffU""5""3UUVH0U""""Ww4CUVVhUUUDgV̐4kiix33333fggf""""3UVVU"2E""""wDUVVUDD# #/DXdp7"13!2514#%!21#!"514"13!2514#%!21#!"5145!+"13!2514+"7;21#!"514;2=!"32654&'2#"&5463333fffU""5""3UUVH0U""""Ww4CUVVhUUUDgiiii33333fggf""""3UVVU"2E""""wDUVVUDeijji4~~#A!367>767654'&#"'6?676767632#!"567676Ug   'L"h#    "':7-I(i@9! ]P&S--]//R" ' CS!3327632#!"'6767>767>76767654'&#"&'&'476767672Ugś-: ?" 6K1Y?6"$1:/1 -.677j<?AEK (Y   *h% m-6:<7HQ3>&.M>NN?E6- s  |a!36763#"'&'&567632276767654'&#&&'&'>7>76743031672&'Ugg&863?0111=A?=75!!!'((8,,"!*(I[K  (QC LI!%&33?F9<+-#"/& !*).11L'(I  &I!!H'NT !+A!367632#&'&547676763232767654'&'&#"UgT$77<=32.0KMWiAB KJww*:7:865+*0 ''=>63!+C:< 243@UNM,,CBRR./CD/(N,,&'><@*))0.6!3!""'6106176763!2#"'676767>Ug     1$N+05#42';18-^*3W u YAP.^/lR##QgX]JDO3*>V!3&'4656567672"'&'&'6%6767674'&#"3276765&'&'&UgvtMMmN98##/4A,.EHIYA@!\/0/)*A3+/"!Q-0*(7251#&@p Q88&&/;,-EK>>!$))4 (*(;#$.8!$s'"''50 //GfD^!!"'&'&565676763246767632#"'&'676746%676767654'&'&#"w=u1+,*(CAMQ,     1)('   ('( h45H IIG..A   </4,'   !!H$(234;,01f4J!!#"'6567>7>74'&'&563267632#"3276767654'&'"P   G8<"/06+#&)'GFU^ y/&& !0*&(hS# cE?>W  I!66&,&SNM31..?''-.*G+*&(fOa!!"'&'&'6506167676326767674'&'&'67632#"'6'654'&#2{#57@B/2,.FGO:()   #!%    #$ (#%>@++7vhO1155CLJK,.02#//6!  !  %J$%X33`,-L$  1.mTS6 ''9;=C*,fA!!6767654'&#"27632#"'&'&547676767632`RC>7=(732"$ .1JMY4HJ7A23 0/;;=aVID 9=*+###"hr   * --=JBA(' 0cLDI"$h'#'6I%)'&;:=.#",,fS!!6763"'6767>74#"+"'&'65>7>7>7674'&'&54767632165F-! +0  Y,'A') 8    hX!""") = .:="@7u/{u# (Q)([33]+EY   #=AEIMQUY67>767654'&#"'6?676767632#!"5676763#3#3#3#3#3#3   'L"h#    "':7FDDDDDDDDDDDDD-I(i@9! ]P&S--]//R" ' 2COSW[_cgk327632#!"'6767>767>76767654'&#"&'&'4767676723#3#3#3#3#3#3ś-: ?" 6K1Y?6"$1:/1 -.677j<?AEK (Y   *h% S;48.+-1#DDDDDDDDDDDDD/&.M>NN?E6- s  -6:<7HQ3a|]aeimquy6763#"'&'&567632276767654'&#&&'&'>7>76743031672&'3#3#3#3#3#3#3#&863?0111=A?=75!!!'((8,,"!*(I[K  (QC LI!DDDDDDDDDDDDD%&33?F9<+-#"/& !*).11L'(I  &I!!H'NT ! =AEIMQUY32767654'&'&#"'67632#&'&54767676323#3#3#3#3#3#3 ''=>63!+C:<$77<=32.0KMWiAB KJww*:7:865+*DDDDDDDDDDDDD|/(N,,&'><@*))0.6243@UNM,,CBRR./CDj26:>BFJN!""'6106176763!2#"'676767>3#3#3#3#3#3#3y     1$N+05#42';18-^*3DDDDDDDDDDDDDW u YAP.^/lR##QgX]JDO 3+RVZ^bfjn3276765&'&'&76767674'&#"&'4656567672"'&'&'63#3#3#3#3#3#3jQ-0*(7251#& /0/)*A3+/"!2tMMmN98##/4A,.EHIYA@!DDDDDDDDDDDDD'"''50 //Gg (*(;#$.8!$Q@p Q88&&/;,-EK>>!$))4 fZ^bfjnrv676767654'&'&#""'&'&565676763246767632#"'&'676746!5!!5!!5!!5!!5!!5%!!c1)('   ('(  =u1+,*(CAMQ,     W!!H$(234;,01ȕ45H IIG..A   </4,'   ]DDDDDDDDDDDDD fFJNRVZ^b3276767654'&'"#"'6567>7>74'&'&563267632#"!5!!5!!5!!5!!5!!5%!!z y/&& !0*&(=   G8<"/06+#&)'GFU^U.?''-.*G+*&(# cE?>W  I!66&,&SNM31DDDDDDDDDDDDDf8<@DHLPT6767672&'&#"32767632"'&'6!5!!5!!5!!5!!5!!5%!!,,AAJ)&% 66*+ $#>('#-  )999W?AhHGF+*  :$%446 I#%, 256l$DDDDDDDDDDDDD f]aeimquy654'&#27"'&'&'6506167676326767674'&'&'67632#"'6!5!!5!!5!!5!!5!!5%!!Y(#%>@++7v^#57@B/2,.FGO:()   #!%    #$ `2TS6 ''9;=C*,kO1155CLJK,.02#//6!  !  %J$%X33`,-L$  1.DDDDDDDDDDDDD f-=AEIMQUY27632#"'&'&547676767632'6767654'&#"!5!!5!!5!!5!!5!!5%!!^.1JMY4HJ7A23 0/;;7=(732"$eO["$B432D;98))*9+.,!&/!!37DDDDDDDDDDDDD=AEIMQUY#"'6;676767672"'&#"32+"5476323276767!5!!5!!5!!5!!5!!5%!!DD!   %^ T9 "$,0   $&dA@"" !7 =7:*-#87KbDDDDDDDDDDDDD q_cgkosw{36767654'&'&#"6767232767654'&'&'&'&5476767632;2#'#&'&!5!!5!!5!!5!!5!!5%!!g 9=*+###"  !(,)605*.'&@?K'((`"QC))@o>=aVID6I%)'&;:=.#",,   * --=JBA(' 0cLDI"$h'#'DDDDDDDDDDDDDfOSW[_cgk6763"'6767>74#"+"'&'65>7>7>7674'&'&54767632!5!!5!!5!!5!!5!!5%!!165F-! +0  Y,'A') 8    X!""") = .:="@7u/{u# (Q)([33]+EY   DDDDDDDDDDDDDf<!!6767672&'&#"32767632"'&'6,,AAJ)&% 66*+ $#>('#-  )999W?AhHGF+*  :$%446 I#%, 256l$#Ck    3 K {  Chess MarroquinChess MarroquinRegularRegularChess MarroquinChess MarroquinChess MarroquinChess MarroquinVersion 1.0 Version 1.0 ChessMarroquinChessMarroquinc "$%')./012345679:;DEGINOPQRSTUVWYZ[uni001Duni00A0uni2206glyph69 bɉo1C  333 $33zzC"pychess-0.12.2/pieces/ttf/usual.ttf0000644000175000017470000010305412641567764017512 0ustar tamasusers00000000000000  OS/2gNcmapfglyf>М~Zheadz6hhea `,$hmtx'MPloca*J,pmaxpV name 3post @ +#,$%&.-'( !)"*3564/ 12  0 X Sax    " & 0 :!" R`x    & 0 9!" +#,$%&.-'( !)"*3564/ 12  0 \Z"<,,<-<"";-\Z"<,,<-<"";-  #'+/3=++q+d ++1=+Q16/2>0H1\++=+e+p+ 2++=Q6?G+ #'+/37;?CGK_>[23+*n >6UHz>x{6yQ+1 +q+d+=+,<""<,5=9+X[+14p7+G?6Q2++ e+p++-<"";-h] * .,)          $@1     #  *hS$# Z            $"%   h_q   #    ,'S  I  *>1          +,!q 0    %Gb  $  *%  "$      hV       %,  "  ": $'JW &!   *#        ! g   Rht2  #         7     $ (  EDE 9   &"!;)   & +4(    Dg^h7| 7]!     EDEh  9'6'    hCDh+I5On? K@   LYV  D!80  . 2  !11   X7m"8.   )$' =)h(I3Lr 5## '65*# $)LX  $! sd  r Q1   jhY.E[on       l  U31""OV O  S  TS   O         %+$k*   &(     i   ! `] h}2 G     U,.       31!   "4 *=g0  & *;    h$      (#  !  .    !   5  hm$Hs2  r   }9 /     6" 8 $'JX &!     <      Y       $$=       #'+/3=+2+'+dQ +%$>T  ) -,) L=G:7+;8+=7+;8+<+=3 +&e+ Q+%5$>GTC       $@0    "  *LF8888 /37;?CGB++_`[+e ## 7+BhC             suL=G:@+;@+=?+;@+<+A+#[f+"#+Ai4B%%    &ruLF@@@@ #'+/37;X\`dhlpt5C3+j{:+Jq+dtuwr xY9  !    -(T  F  + ;4          +.+ WL<1+;1+;2+=1+;1+<C+=kz:+#Je+t" tPv3q\x3*Y9 0    %Hf!   #  +&  "$      L22222 #'+ 5V3+b6++Oq+dpx{       %,  "  "@} v $'JW &! eL=5+:5+;6+=5+;5,<V+=c 6+MOe+p'wVz+  *#         ! 4}vZ"  [#eL66666t  !%)-159=AEI2  #         7     $ (  EDE7+n8+o7+m8+o7+p7+mL!+4U*di<>`q+d'+h>+577 9   &"!;)   & +4(    Dg888888L+e@4<T)d<? ?`Be+'!+> +=77DPTX\`dhlp!     EDE@7+l8+p7+n8+o7+m7+oK %  7])*Z 43^k-q+d!+i:T+5+:&5'     gDD888888K$   0)J*&Z4<^Lk-3/e+!&+:T+=+ #'+/37m =+}ywx8+HH% 5H-pD L?    MZW  A 70   . 2  "cLG:9+;:+=9+;:+<{+=}ywy9+"H. GM%'6NH-Oo!(:8  [7k"8.   *$( <.)dLF::::{ SW[_c|=+rvwww8+-  5## G! $6F '65*#]1 $)LX  $! L=G:5+;6+=5+;5,<}+=wwww9%+"-9Usd  q FM!%$N6%  N]( 1  LF6666} #'+/37Of}6:>BFJNRVZ=+nn^~t`<L+[3<Fdxzwn       i  S42"#PWM  P  ST " R  |vL<-+;-+;-+=-+;-+<e+=mn~t;L+)++4=FdFewzWvd       %*$k)  &(     e    bW '|]&vL-----f #'+/VV-+qou@%U+l)6O l   j,  IH  $L tp$'JW &!  D|L</+;/+;0+=/+;/+<fVV+=pt?%+(k2,)7O[k>G -   -   +6tTo   +DX$|L00000g #3VZ^bfjn9=AEIMQUY]773+hF%?(d+E IdLQr~t    U,.       31!   4*=mwL<5+;5+;6+=5+;5,<x77+=F% =@"+&0  + *;    $IcL^>Qq~Vsu$      )%     ,    !   5  (m\&wL66666y EIMQ 26:>BFJNRVqC3+m4+o3+o3+nL!}#'JW &! Orh9 /    5"@+e ; bWQ rW4  +=7U+V=3+r;D4444L%}|  .Pqin       %$=     W/Qp_$W   <   +>8U+= V=4chm'$'JW &!    j,  IH  $h    -   -   +EVVfDDeWCUUxDEDUUx4ExFUDDfVUWDUWDgUDWfU 3wV3Tx4UU 4UBFx 3Dw5xSU xEwDyEU!! E"  fSW  "WEg f Vw&.7=C#w&2$B>6/$2%UV#C=7.&wt2%($!4 F !%(E 4x%.7=C#%2U(%! 4 !$(TF F_<,L/',LY7\R^jcVDDUUUS9999r ^  $"b%(*,0u26x9;m;~;;;;;<%>}>?-7uf     ( > L bChess UsualRegularChess UsualChess UsualChess UsualRegularChess UsualChess Usual7TSRQFZVXUOP4321&:685;/0[  EWHJ%7(*pychess-0.12.2/pieces/ttf/lucena.ttf0000644000175000017470000012062012641567764017626 0ustar tamasusers000000000000000OS/2Q\{5VPCLTmWM6cmapcvt gQf 6fpgm3OglyfCQhdmx.@|head˱d6hhealL$hmtxv@{ locä́pmaxpv/p namepostprep(&:cPHP W{( $,  : c  P  HP  Generated by Fontographer 4.1Generated by Fontographer 4.1Chess LucenaChess LucenaRegularRegularChess LucenaChess LucenaMacromedia Fontographer 4.1 Chess LucenaMacromedia Fontographer 4.1 Chess LucenaMacromedia Fontographer 4.1 19/11/99Macromedia Fontographer 4.1 19/11/99ChessLucenaChessLucena@,vE %E#ah#h`D-!E TIeN(wYZbZb@' EhDEhDEhDEhDEhDEhDEhDEhDEhDEhDEhDEhDEhDEhDEhDEhDEhDEhDEhDF+F+EhDEhD?W@!@ Fv/7?@@Fv/7?@@Fv/7?v0)).}Jb)v 0NIQidCC Q{# #Q <3B22!!)*``;;7BC*CD>!!DE!!v^!!!!!!!!!!!!!!!!7 BNh| &"7i_##Lu"K ,#9lQ>v)W)/}Ia)0MTHikjQh61=AEIMQVZ^cgkosw{ 254#"77'#75'67213!53&514635333"13!2514#7373733757&'3#735&'7'7#735?'?3?&'%735"'%5735573'7??75?7353#77%#57#73#73#73#73#73#7%&'7#73#?#?#?%57d****}܅~"JI"!!" QiIHN| 0))Vb4}))v4Q>z 8څ#, = H] ii^ 7&{ h[6 C=!!k!!j!!k!!k! k!"Y!!l!"u]v""CC?!!VCCCC!!)* Q{# #Q E#9 ,"uJ#?#i_X"7<&| hP77 B-!!!!!!!!!!!!!!!!v^!!DE!!VCD)BC2AIU_nz~  "&*.26:>B13!53&5146;676767#"'&''&'&'&76767&76767&?'&76'327654#"674'&'4#"63276"13!2514#7373733 5&'73&'73?6%&'735&'735&'735&'7335&'737#657574'7&'7&'7&'7'7353#77%#57#73#73#73#73#73#7%&'7#73#?#?#?%571HI"CS$# 6),$* ( >4"MR?!`   I.      QiI?r 80  <A X K{ h q [&Y h[6 C=!!k!!j!!k!!k! k!"Y!!l!"u]v""CC?!!VCCCC3 #o6#" "2#  &.-!r`,$  HGrdmm ) GF Qh;<:H Z 8#4"MR?!E3QiI?r 80  <A X K{ h q [&Y h[6 C=!!k!!j!!k!!k! k!"Y!!l!"u]v""CC?!!VCCCC7a]\l<2   !OXG&Y; )90 2!$3n   "3 #o6#" "2#  &.-!r`,$  HGrdmm CCQh;<:H Z 8#BFJNUZ_ekpuy~213!53&514636767&5467&5432"13!2514#737373333 &#"735&'3'&'7'&'&'&'''3535 &5&'73&'73&'73#77%#57#73#73#73#73#7&#7#7%&'7#73#?#?#?%57 ,.1?_"JI"_?0.,  QiIL ^ KD?^xw Qs|!f ph[6 C=!!k!!j!!k!!k!  5!"Y!!l!"u]v""CC?!!VCCCCT00adP# #Pbc1 /qQh;<:H<M;]@ Dj ? ^y   {#f wqhP77 B-!!!!!!!!!!4!!!!!!v^!!DE!!VCD)BC.'RVZ^bfjqv{  %5!%2514#!"132654&#"#"'!&'&213!53&514636767&5467&5432%737373333 &#"735&'3'&'7'&'&'&'''3535 &5&'73&'73&'73#77%#57#73#73#73#73#7&#7#7%&'7#73#?#?#?%57c#((('3  lML76 ,.1?_"JI"_?0., QiIL ^ KD?^xw Qs|!f ph[6 C=!!k!!j!!k!!k!  5!"Y!!l!"u]v""CC?!!VCCCCdCCd""!"kKJli00adP# #Pbc1 /@Qh;<:H<M;]@ Dj ? ^y   {#f wqhP77 B-!!!!!!!!!!4!!!!!!v^!!DE!!VCD)BC6JUaequy}  "&*.26:>B254#"!254#"53&51463'#"&54632&546327&54632#"'213'7#"''2514#!"135!2654&#"7273737333575'5'3?%'''3536?3&'73&'73&'7373654'7'75'&'7%&'7&'7?575#77%#57#73#73#73#73#73#7%&'7#73#?#?#?%57d!!"C!!"I"L ''' .:**;. ''' L!IG F#n''''QiILcESg+u?Wd Q vE 'v+"11;( o ƫ K#(h[6 C=!!k!!j!!k!!k! k!"Y!!l!"u]v""CC?!!VCCCC !""!!""!9 #'((J/7*::*7J(('" RSRTdCC''''Qh;<:H<MaCc)E+J&?Xd È vRF.'#+4 "!1;o t Ku &hP77 B-!!!!!!!!!!!!!!!!v^!!DE!!VCD)BC6 #'+/37;?CGKOSW\_cgjosw{73737#73?#73575#737#733575#735#735573'7'757575757353'73#77%#57#73#73#73#73#7&#7#7%&'7#73#?#?#?%57##5##5#2514#!"135!53&51463#3353353#213'!5735735#75Qi!!ۆ""6!0!c'ⅅy )^h[6 C=!!k!!j!!k!!k!  5!"Y!!l!"u]v""CC?!!VCCCC\d\?$#I!8r\\r8"J88b6*Qh;!qh!1{!_!Or!!'3343z *hP77 B-!!!!!!!!!!4!!!!!!v^!!DE!!VCD)BC OdCC! "<M# <~6B+o/d J@ @  Fv/7?hh)QiIL {CCCC?!!VCC""vu]!"!!DE!!v^!!!!!!4!!= !!2!!!=!! !!7 B hIR  ! [M4-*@1 $(,048<ADHMRZ`fkpw|7577#?#?#7##7%&'7#7##7##7##7##7##7'#577+755?'&'7&'&'775654'773&'73&'73&'736?353'3''?%'35'57=353573573573"13!2514#53&51463'#"&54632&546327&54632#"'21372CCCbCC?!!VCC""vu]!"!!DE!!v^!!!!!!!!!!!!!!!!7 BNh &K? : o1;M "+.'RF vd \Xu?&+s)EhMkHikjQhH #'((J/7*::*7J(('" ) !%)-159=AEIMQUY]aeimquy}!#77533#55#733#57 37'#'#'#'7#'73#%57 3377#735'35'35'3?'7357#?#73 35735735737/73#'#h A `v lG  Cp   r J  _: ;bU  a  8  :w c >fLIQiGGFGhP ( ˧`v m  C5  ^ [  1 f_ U)  bR  8{ y u &ȼ9fHikjQhHII.@8//@0#" ,*  #"Fv/7?=;:7643+ ;643+ :9A87@AC@>=BA98B#0/CBA@@Fv/7? " *#-MVSC"I!H*nH  $,`r!-.+ #1#5%I6o# 3(@<))@*'&$#  &$# (' (Fv/7?@J??@@:95-' <:96*(&$ >= 03=<>!Fv/7?;:3/+LKKL >==>;::; IHHI_^&%UTF('21"!65@[ZWVYX`_XW )aVML:9 TS32$'&-C(%1U1C1Fv/7?/<</<>@?;:54+)%$ 54%$"  ()! ;:.-,+0/1/.10-, =2"!87 )Fv/7?Iha@RX87>8Y254#"77'#75'67213!53&514635333"13!2514#d****}܅~"JI"!!"!!)* Q{# #Q 4"MR?!`   I.     3 #o6#" "2#  &.-!r`,$  HGrdmm ) GF cCK[g@y@nutkjed_^ZRPNA80" rmhZVKC86$" edkjqp_^ut,on2\yxKg\orqnmbapopFv/7?/4"MR?!E37a]\l<2   !OXG&Y; )90 2!$3n   "3 #o6#" "2#  &.-!r`,$  HGrdmm CCcCt*6@>77@843.-  ) %)#%.-436+10'Fv/7/54  F<754-$#(QKM98+;: ?>HO<;87$# 9O:9:Fv/7/=>??<%%&$$%32237610-,)( ;:  '&! +* '.-*)?<:9 >=21&% ;0/,+('Fv/7?#;:985432.-(' <;:987654321"  ('.-$#76<1 +*0%#"$Fv/7?/<<<<</<<hhC #s g%#00#%g " TBddBBC:F@MGG@H,DC>=651# DC>=865$" &,2:9A@/ )F;98:Fv/7?/< 8* *3/W  .1/ 7m" z$TF@CGG@H" F-$>(16 $/+: 4/6Fv/7?" /),HQB@>CC@DBA;B9&%# 50(= ,3,0Fv/7? 8 " z$0W .2 .7n!!SS3&*.z@2//@0)&  .-,+*)('&$#.+-,*'()('Fv/7? 4= f$'#u  !!SS3@5@ Fv/7?<"   - !!SS048@K99@:3,+'&$ 87654321+*#/.! ) 8576412*)321Fv/7?>@?8/-$ =<;:9876"+**+ ( 21=:<;967876Fv/7?Iha@RX87>8Y&'&'32?"#"'&32327654/&5&=4765!5! *6)!0T&*B+,)2 )  -."!% & "}!!SS .26@A77@81('%6543210/+*$  . ,+4*63542/010/Fv/7?<c`NdSIZY_TGFba,HFv/7?+15 ww 5HtXY+?Ew@1FF@G<1)#! / :9@3+Fv/7?F/4SI$ 4  V1  1$#92L82 #'/R2@SS@TQNM54! PJIF<982 JIIJ <;;<  9889GFFG  NM%$RQ*D'&10! 54.>(KJ87 QP21#&%,A'$0AR00Fv/7?`` cc [<<w-,,-lx 5N]"+* "]5 xXE@=FF@G=2*%!  ;:@,440Fv/7?#/*2,H ~@O@       Fv/7?40.#! thc^PMF@42%# &([Za`gfUTkj*ednmF]RehgdcXWfefFv/7?>@?854! =:71.-*)$<;<==:$$%##$:=:;;<2112540/,+(' 98  &%! &-,)(=:87 <;10%$ /.+*'&9Fv/7?Iha@RX87>8Y5##5##5#2514#!"135!53&5143#3353353#213'!wSZSBlB52gRRg25B22񗗗zZ<<w 5,5 w~~~~|vhD&Z b  h  h$< 8%(+/t236@9n<?r@~ABD EZFFIXIJKLNQRTW$XYLZ\]v^T_z`abcdfg>hNirjklmnppr:srtRvx^y{}}~* *B?ABMAAAcbbccccBcccBTgQQJOHX~{k !"$%')./012345679:;>?@ABCDEGINOPQRSTUVWYZ[bcdeijklmnopqrstuvw$$  !"#$%&'()*+,-./0123456789:;<=>?@ABVW`ZjX\ca]CDYEeFbdifghHGIKJL[MONPQSRTU,  %+/5:<?BDFTXbdftx  (.17<>ADFKV[dfkv ,6<>FLLNPPPbfttt  !"#$%&'()*+,-./0123456789:;<=>?@ABVW`ZjX\ca]CDYEeFbdifghHGIKJL[MONPQSRTU^_p                                                2MACR@  `uChess Lucena 7CHER00 _<[[kk=@ `pychess-0.12.2/pieces/ttf/motif.ttf0000644000175000017470000006276012641567764017507 0ustar tamasusers00000000000000pFFTM{dGDEF&d(OS/2B%x`cmap(pgaspdglyfVqm`YheadfV6hheaE4$hmtxneNlocaUnmaxpX namegQb(}post5Acvhea d$vmtxZ4e VRA._<+C C Dc! "H2 #D#UTDU##UNUN4DP|DG2ED.Rfxe\jN\@1Sx    " & 0 : D !""""""""+"H"`"e%1Rx    & 0 9 D !""""""""+"H"`"d%[W@&&߼TC,ݠ6\Z^hnvx  !"#$%&'()*+,-./0123456789:;<D=>?JEASKCMYWN[XZ_\]^`aOBTUR@  !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`a(<Th|>Vn|(Fb 0 n2X$4DNNxFB& (!""~""#H##$$^$$%\%&&J&' 'Z''(F(p() )4)**x*+&+t+,B,,72#"54  # !!#%3###UCDDCC!!!!ϋD #!5#5#5CDCD!333ϋDD!#3#3DD5!5!ZDD !5!3#5353$DCDD72#"54   #'+/37=57!5!'!5!5!'!5 73735373 #7#5#'#73YAfkAU}?DC2C"?A0Xg0hV4vB2d1T2@00Yf/kU/|D131"/1Z/h1gu4W3CfTA12 2#"&546~~2~~~~# 3!533#DCZDDU%3##UCghCC5!!h7#5#5gDChT!3ThD33DgUU533UgCUDhU!!hU#5353DgUhD #'+/37;@FKPW\2#"&546%######7 '#5#5#'#5#57&'3 5#5##7 &~~T2d1u240X0"2DU}fkY0) pl3t0v2~~~~zTfvZw"/31D1U/|f/k0Ym0mKu v1!!Yk%MY]u -19I\nr7676'&'&7676'&'&7&'&'&7676766''&'&'&704102167676'6'&'&76767676767'&'&'&76767676'&'&'4'&'"3767637676565'"'&'&547676763'&'&'6?'743816767676'&'&'&&76767676'&'&'07&767657'&'&'&76767677'7''7'776/7#&'&'&/76'&#'&'&'&7676767601>776363"%436'4'&'&476767636'&'&'254'&#''&'&5&'&'#/74'&#''&'&5&'&//#7/'37'7'/'73#75##75'!'#37'#37!75'7#7#7'#?/37';#75%&#"3276'0&5#"'&54763272#"'&5476"327654'&                     @  &    +d    A  )    -$ 9 DZ# !$$% 1.&,! "   " >DZ)(A\*q112 " 1.   %'(6%    >  % '3    # tEM  6  2vEN 6 2U ! :-6G2L6K'*"J-!*#>>;@.>:>>>xB//BxD??;#8FX5%++*5MS2"")&>>>(NO0/ &&e<4>>49lxA;/64RQQWh{=- ?&&47KK<<,,;"%68!!!!89""#!47"3463"#qO8CϢp7PDC  %).26:>DINSZ_cgko&'3 #7#7&'#7&'#7&'#76'#?5##75&'3' #5 #65#'#5#57!&'&547654'&54632&'&547654&#")654''1&7!!7 WTs0c $ۇ2 132( 4U0X02 08 K0:EC2$VDU}fkY*-=po<-)4#cEFb#476(89(2 XU采1!0ȇ 2ۇ11  35U4Z 1 w%/cL H1ZBID1U/|f/k0Y7-fi-83AKkkKB28if-72p;- '77'!-;p28cdbe:)(8#33&%33"&#ˠqUDC8OrDDO5265##525qO8Dϡr9ODD !'+07<BGLPTX\`dhlptx|&'3#7&'&'76?75.'3%&'735&'73&'6753!'#5#57#7'# #?5#7##7##7'#?!!#5#"514;54312321+654&#"321#"&'#"51432654&#"!67&#" !&54632632632,X 0 c3jM&  00Ne2q R. ,%1U}fkYX004F2ވ1߈2̝0GHg1441434334l::x9:v::2g9gHXUIcLH#Y.0J2Z1Sfj3 1A/1 eq S -$1 U/|f/k0YZZ34͉Xf44233244m80qqr34hUUh43rqq72 U54mB@BOOݜ> #'+05;@GLPVZ^chmrx%#7#7!#7!#7%5#7%##757!5!'35&'67&'735&'73%.'35%7'6?'&'7&'#7&'3676'5&&'&'&1#"1326732514#"&54 !&54632632632#5#"514;54312321+!!ݝ02C1@2Y4"0X0YAfkAU},%1 ? R.1e20%  0^c3j  0X+#8 88"a99`%79 :%::v99x::H g1441434334HF34Zw0Yf/kU/| #-$1 S 0 e1A/ 1fj3|1o2.0 #Yc 31 8SR9 32 Zr34hUUh43rB@BOOݜ>f44233244͋`rz~!&7$''&#&'.'.'.5>7>7>767&6'&'.'66'.'666/4+"7"3254!!&'3 #7# &'#7&7#7&'7#7&'7#7%##7"5&'3'&'735&'735&'73!'#5#577   )  ( 2 T)HpA[n. - (33< W Rl$ C76xe[;++( ;^^^n  E*0 _ۇ2S124"0X0D# 0002  3 1U}fkYD  "+  1D1( 8@*"%N8 $gnFM%E0@ADO*')Q&1 )"#,# 2*6Hhr.880LA(''(NOON] F/g ]0ȇ!2ۇh" 1퇇h%3Z1}2  /!-'1V 1U/|f/k0Y4 !&*/37;@EKPUZ`eimquyO&'3 #7# &'#7&7#7&'7#7&'7#7%##7"5&'3'&'735&'735&'73!'#5#577!!2#"54%!&7$''&#&'.'.'.5>7>7>767&6'&'.'66'.'66&#"'.'&'.'&"#.'327>7>326/4312!&547654'&'&547654'&'&7&'&'&'&'&'.'&@  E*0 _ۇ2S124"0X0D# 0002  3 1U}fkYOnUUU.   )  ( 2 T)HpA[n. - (33< W Rl$ C76xe[:3M3SB/'. H  :?  !#1'1'18Tv34I!$)l{   , +  ( F/g ]0ȇ!2ۇh" 1퇇h%3Z1}2  /!-'1V 1U/|f/k0Y41GHHG  "+  1D1( 8@*"%N8 $gnFM%E0@ADO*')Q&1 )"#,# 2*65  /G*  -5G:)-#:@+( 1N1$ sK,33*lXYH5rrDfHH" Vܝ0 7܈2 12 $4"0X0|0aH0m 2DU}fkY#@2rrDfC;S U eFHd(D H('0  U 60ȇo2ۇ 1퇇V2334Z41 s "0b/l31D1U/|f/k0YVϏ#@2BFJNRVZ^bfjnr'.53#7?77 '3  '7'37'7'35'3!'#5#57#7'# #?5#7##7##7'#7'!#"' #"!!2#"&546%327'%6!&76767663276327' @q(Z*#~10GAT(z02 TR1U}fkYX004F2ވ1߈2̝0W#@D~<;~EQH!11!"00!4w6J8#1"o  &A&rY0?O2N*1O31 3/ATX!zO17:$1!SU/|f/k0YZZ34=`-s,tzdGHccHGd+ ^1 @D@ /1)O%')1 ( !'H]aeimquy}#"514;54312321+#1"53'#772+)6'#"54;35335!5#3)5&7535!!57!5#73 '%#73 5 #73 5#7367#73 5 #7'#5#75#7 &#7 &#7 &#7'#7 53!""!$#""""#$$·DDgXVUWgDDcggYUVX2YAfk//V11V22*]00 9f10hUX00U4V2~c1~E2`0BTU9_""G$$G""A##DU~~CCšS;C"DdddddhhdޥAd50Yf/k/U1V) 1-*:/Wg1UZy4U42V31I2Dp0V 69!#4#4#52ʡqCD8OpCDP <BHLPTX\`dhmqvz~72+)6'#"54;35335312=32514+54#1"#"13#73'!!57!5#73 '%#73 5 #73 5#7367#73 5 #7'#5#75#7 &#7 &#7 &#7'#7 53DDgXVUWgDDc$#""""#$!""E· 2YAfk//V11V22*]00 9f10hUX00U4V2~c1~E2`0BTU91CCšS;C"Ddddd-A##A""G$$G""\DU~~ߋ50Yf/k/U1V) 1-*:/Wg1UZy4U42V31I2Dp0V 69*.49=BFKOTX]aeimsx})&'&547654'&5463217!!&'3 #7#7&'#7&'#7&'#76'#?5##75&'3' #5 #65#'#5#57u-)*-=po<='(97)2 WTs0c $ۇ2 132( 4U0X02 08 K0:EC2$VDU}fkYQif-77-fi-83AKkkKB2d:'(9sS XU采1!0ȇ 2ۇ11  35U4Z 1 w%/cL H1ZBID1U/|f/k0Y  #'+/37;?CGKOSW[_ejrx%#7#7!#7!#7%5#7%##757!5!' '35'3'7'3'7  '3 77'?'#7'.53327'%6!&76767663276327'"32654&!!ݝ02C1@2Y4"0X0YAfkAU}R1 21Lz0QT(A[10*(Z@ !5'{@6J8#$:"00"!11HF34Zw0Yf/kU/|S$1sc:19!zOTX /AJ 31O37N*1dO2&rY0&&A  K,R1 @D@ /1)O%')10 dGHccHGdz%/37;?DIMQUY]aeinsw{ 1' '1&7 &716 617&'1.'3#7'3'#'#&'73 ###75'3 7#5 #5#'#5#579IIIIIIII7IIII97IJHH8'02w!#1 B240X00pvv0 2&DU}fkYIIII9IIII89HJII8GGJH 20Ov2A %13CuZ1/vwd 1%D1U/|f/k0YU%"#463CgcGCCEfN!GK!&'&547654'&54632&'&547654&#")654''1&7!!*-=po<-)4#cEFb#476(89(27-fi-83AKkkKB28if-72p;- '77'!-;p28cdbe:)(8UU"&53GcgheGDU253#DgeFDGe*VDLa!!#5#"514;54312321+654&#"321#"&'#"51432654&#"!67&#" !&54632632632$Hg1441434334l::x9:v::2g9gHXUIcLHVXf44233244m80qqr34hUUh43rqq72 U54mB@BOOݜ>*V0`!!#5#"514;54312321+ !&54632632632676'5&&'&'&1#"1326732514#"&54$Hg1441434334H#8 88"a99`%79 :%::v99x::VXf44233244SB@BOOݜ>( 31 8SR9 32 Zr34hUUh43r , ~!!"32546/4+"7!&7$''&#&'.'.'.5>7>7>767&6'&'.'66'.'66`nI^^]k;++( f   )  ( 2 T)HpA[n. - (33< W Rl$ C76xe[VNOONjhr.880LA(''(  "+  1D1( 8@*"%N8 $gnFM%E0@ADO*')Q&1 )"#,# 2*6 ,l&#"'.'&'.'&"#.'327>7>326/4312!&547654'&'&547654'&'&7&'&'&'&'&'.'&7!&7$''&#&'.'.'.5>7>7>767&6'&'.'66'.'662#"54!!:3M3SB/'. H  :?  !#1'1'18Tv34I!$)l{   , +  '   )  ( 2 T)HpA[n. - (33< W Rl$ C76xe[bUUU1n5  /G*  -5G:)-#:@+( 1N1$ sK,33*lXYH5rrDfVϏ#@2rrDfHHny1 38%,,'/+2w׏#@2`-s,szeGGddGGe, ^2 ?C? 1/'N&''0 (D`l.'&'&327>7>326/4312!>5&'&'&'.'.'.'&'.''"'.#"'&'.'&'&!&7$''&#&'.'.'.5>7>7>767>7>7676&'.'&'&76767676&7>767632#"54!!    $ (  ??  !#1(1'29Sv34I!$)k $!# % - (   {`S*HpA[n. . '33<  <       %      .*=601 UUU1` -+ "! #0')-AA+) 0O0$ sK+44)mXXI5= /!376?!5?6767654'&#"'7676763Thc9&Cmc8"*%/Jy; ?!/42a>>i;6S< tiA-8.0?R1; \6?C^nF8V<?!36767632#74763232767&'&'#56765&'&#"'ThB?"$(I3AKP"%h] ,B.(?4i")%:=,( M- &0Q`:'4;QRKJ  4.JW9-5_8$"#D !333##5!55!3Thq9}}i.`n"!3!!5#"'&5472327654%'ThE61-,f`7)=;A++G0)Djb:[W /5(B8L2 %6!3632#"'&547676767774'&#"ThZFL4:s!*-P@\)C<@FM-#)8: %B ,L5?0*0A,7R s\;1- Dr-&VL"%<W@T!3!#5#'Th>U,:*. +<M!3&'&547632#'"'&5476?##327654'&/3767654'&#"Th2D>e_;JG !.-!# KFjdBNc +)K25E>$#A +'%;9$'k#8Ma:5*4VW="!%'.#)l:55?^&&K:!?]E34$#>D=!#%4$2-huI<(?(& @ -3-&  ><%$;.!#)(08V&'"!3!!632#"'&/'&'5732767654'&#:P%##(-6Q4614/6#>?* *OVh<)3E@jKZ" *9Z +-"=J]E]N"$7!!#"'&'&5476325'&'#573754'&'&#"6^>KS@'AMs@0 5  !%8" )gAh0C&,^;<"$ Y=8@=YwE>S"3!!6765'&'5776323!5676=4'&#!49"EHk  ;< L/)% 5h8-(9!?a&'B$" 8-U#&<.!3333!527654/&#"5ϋDM?A -,>= R3!33376?!5?6767654'&#"'7676763ϋD9&Cmc*1*%/Jy: ?!/42a>>i;6S< ti/?:,0?R1; \6?C^nF8V<C!3336767632#74763232767&'&'#56765&'&#"'ϋD?"$(I3AKP"%h] ,B.(?4i")%:<-( L. &/R`:'4;QRKJ  4.JW9-4`8$"#D f !3335!3733##5!5ϋD.9}}i`nx&!333!!5#"'&5472327654%'ϋD{E61-,f`7)=;A-)G0)Djb:[W /5(B8L2 e:!333774'&#"'632#"'&547676767ϋD2 %C ,L53ZFL4:s!).P@\)C<@FM-#)89-&WK!&<Z=T0*0A,7R s\;1- D\!333!#5#'ϋDU,:*. )Q!3333767654'&#"#327654'&/&'&547632#'"'&5476?#ϋD*&%<9$'k)K25E>$#A 2D>e_D=o#9La:5*4VW="!%'.#)l:55?^&&K:@K5!5!54'&'&#"'&54767632327#/#"'&547676?32?9 GK9 $.(,(&M  ;KD=#$$9dF>$2-yDDY I=(?(& @ -2.&  ><%$;.!#)(08V&(/3732767654'&#7632#"'&/'&'575!5!#>?* *OV:P%##(-5R4614/6_- +-#=J]E]N<)3E@jKX$ *9KZDD*.2#"'&'&'&567672#"'&'&#"32?5!5! #*.&1;),! FKS@'AMs@0 5  O!)#*'8GKAy 0C&,=G~^o% ):., 9OZDD &*.'&'&#"#"'&5476763!3?5!5!Z ,5!! XqB79ZO0fg 3-*+/(hy]mL6P;9(*@S"$ X=85(544  _A2*<%<'!'%%#,>^;<ZDD/376765'&'5776323!5676=4'&#!5!5!49"EHk  ;< L/)% 5/8-(9 ?a&'B$#9-U#&<OZDD".!!#"'&'&'&567672#"'&'&#"32? #*.&1;),! F=uD5F68 $I* bDh.*/&/<37WM'<5J' J4[<.Q 7 W {     ' ? c  Chess MotifChess MotifRegularRegularChess MotifChess MotifChess MotifChess MotifVersion 1.0 Version 1.0 ChessMotifChessMotifc "$%')./012345679:;DEGINOPQRSTUVWYZ[uni001Duni00A0uni2206glyph69 bɉo1C 2VV,,C22CxfPpychess-0.12.2/pieces/ttf/condal.ttf0000644000175000017470000010523012641567764017617 0ustar tamasusers00000000000000pFFTM}-GDEF&`(OS/2B%x`cmap(pgaspXglyfVy`~dheadi 6hheaA4$hmtxvNloca: \<maxpX name7<%post5@Pvhea $vmtx`V8$6_<+CC Dc3 "H3 gh gx{ yggxxnn{{AA4UqBGEEE(fcafggnjN\@1Sx    " & 0 : D !""""""""+"H"`"e%1Rx    & 0 9 D !""""""""+"H"`"d%[W@&&߼TC,ݠ6\Z^hnvx  !"#$%&'()*+,-./0123456789:;<D=>?JEASKCMYWN[XZ_\]^`aOBTUR@  !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`a(<Tj~<Tlz F b ~ j0 !!""""$P%':())*+"+2+-6.R.0$1J24D45&5J5566h67 77888899t99: ::;;;<><==T=>>6>>?2 72#"54g %3##!##x gd##5!!!!dw 7#5#5#5#5g #dfh!3!3{c 3#3#3ddf5!5!yddf #5353!5353 ggyd$e 72#"54 !%)-159=52"333333 573#7%333333""8Lg|rM3"333/4Db4jt4X3  4'483M3g4}43M4Z+LD\`kxV12 2#"&546~~2~~~~gf 53333xg hy$dx%3##x gd##5!!d7#5#5g #d{!3{c 33 dyy533yg y$dy!!dy#5353 gyd$ $)-159=AEJOU[2#"&546 33333%&&'3#7573 !!!! # 5"5 6#~~3t4Xb4j4D3/n33M3|gL8X#h3{_ " 2~~~~qxVJ`k D+o44#3M44}3g3M48 jF4a !!Yk%MY]u -19I\nr7676'&'&7676'&'&7&'&'&7676766''&'&'&704102167676'6'&'&76767676767'&'&'&76767676'&'&'4'&'"3767637676565'"'&'&547676763'&'&'6?'743816767676'&'&'&&76767676'&'&'07&767657'&'&'&76767677'7''7'776/7#&'&'&/76'&#'&'&'&7676767601>776363"%436'4'&'&476767636'&'&'254'&#''&'&5&'&'#/74'&#''&'&5&'&//#7/'37'7'/'73#75##75'!'#37'#37!75'7#7#7'#?/37';#75%&#"3276'0&5#"'&54763272#"'&5476"327654'&                     @  &    ,d    A  *    -$ 9 DZ& !%% &  1.&*  "   " >DZ)(A\*q112 " 1-   %''5%    >  % '3   # tEM!  6  2vEN 6 2U ! :-6G2L6K'*"J-!*#>>;@.>:>>>xB//BxD??;#8FX5%++*5MS2"")&>>>(NO0/ &&>49lxA:064RQQWh{=- ?'&47KK<<,,:=MJ7446IS9:=#%68 "" 89"#g!4677#46gc!fObf!7R# [c "&-159=BHMRY^chmrx~'7"3254&547' 63 327"&54767676'6'.6&'.6&'&6&'&.&#"327&'&7676"3254%7654!"'#"&5463267666632#"&547&'&5476'&$632#"'7676767654'&' 6760'&.'"&'73 5&'73 35&'735&'735&'&'73#7573 !'67#&'7&'7#.'76?67#6'73#&' 3&&'2V,+5MML$$'QQ:! 7Oe#B'(V>5f,M7{V78HSgg;  %gLCCD5:ih/=2&(+GddG:/.<^C>Sd7ALa'IE@ H"# R8OnFUx $fnZ]K6! V('B&,/ < 6Tgg+/[DDDDO>p{Lgn cGFe% $! 7%IBBL&_aNO8Tlj0* J]GclVb,?V<'&'&&'&'.6776126321467>%.67&6'&'.7676&766&66&'&&6'&'&67676&766&! '&547&547&547&'.767667>&! ! 2654&#"&#"75'37'&767654'654'&! $! 654&2"5&'#&'7#6?3#&'>7#6767#! 573#7&'357#73&'7553 33 &'35NnnNMnn(M3+RTfpSTofTS*3NlO1 #1Nm +GQE3C2  & ; > #=' BIZ2ERFjMHB '= = : $  ;)*(cc(**U8!2jfxtYXuxgi3 8T0EE01EEc\\ {]]" -@-.@* AC &"D .3v  4r 44mB*4rM3"33 OL3 4 #4Db4jt4XV3 mNMooMNm oHc00@H4==4H@00cHoT2}hi~2UD" ID =& ;! : = =(#8 '" 8"(= > ;  &= BH A)9=& ;)kLLk): &=<'yZ<;NOON;<Zy<))9GE00FF00E- zz[[z2 C2GH1C!0??fu /4, 4)33$'+A4G 43M4A 4E6M  ?  3"3`kxVA W4 5' Sbl!&+16;@FKPTX\afkqw|254#"'7"3254"&54632! '&547&547&547&'.767667>&#"75'37'7$! 6! 6&767>'&'&6'&&6&#"6&7676&'&'&6'&&676! 76'&%&'.'.>77632672067>>'.'&7'654/%254#"&2"5&'#&'7#6?3#&'>7#6767#! 573#7&'357#73&'7553 33 &'3536669986NnnNMnne)*(cc(**U8!2jfxtYXuxgi3 8To\\ {]]QP  $ ; = $;'  BHIA  '= = ; %  "@3 20(/ 1F Q-RK*FE#cS< #)q)*# & 9 : > =(#7!!8#(= = :  &= DI #! 65""]'#Td0IK6<9n (?'`KL`&@ n9<5JI1dT!* [ \.5665u /4, 4)33$'+A4G 43M4A 4E6M  ?  3"3`kxVA W4 5&#(-27=BGLRW_dhlqv{$+4>IUa654'665&67327436%&'267"5&'#&'27#.'767#6'763#.'7#4656?#573#7&'375&'735&'73 67633 &'35'"'&'276"3254676'&%676'&&'&676767676767&76767672636&'&%&'7676'''&76'%676&6'#"''3267&&'76&'&'''76&'&''`b "  z &3 #4^ %!4}m54>E4(3M3"3 T3S3e @ 4jb4jt4X3    73A776*-N))X)+5!# %'3AC9{# +4 8/)1% @z' ]u+3+'V,D $9 !gfA\"B0T #'zh?  );9!!&I$H'+J4ArFA'%*MD%!  7$#8R Y y4B>34  3 -l3jP  ?4yC(43M4:U4@3 3j 1`kxV 5K4####5??J456.)>\l +6S5/A1' '119&u,1g3P_R<6YTO5f$7hOE/ F$ 7 "("N+< #"2T>%]Ha Y HV T51%]AFqB' @&)4>LU]dn #).38>CKPTX]bglqx|673254'665&76&'&''76&'&''3267&&'6'#"'27>'&'7676&2#"5476'%&'&'6&'&676767676767&76767672636&'&%&'7676'''&776767767676&'#&'&7676&'267"5&'#&'27#.'767#6'763#.'7#4656?#573#7&'375&'735&'73 67633 &'35H/VXArFA'%*MD$H'+J4x!!&v  );b3 <+#'zh221T  3AC9{# +4 8/)1% @z' ]u+3+'V,D $9 !gfA\"B0g2 @l$h4_k}""E(TÈIEcWŶY<85{/3(* h)&6Xl) "  z &3 #4^ %!4}m54>E4(3M3"3 T3S3e @ 4jb4jt4X3  .  1 !2AFqB' @[HV T51%]?]Ha Y2T>%_WG# #" ("N+H   >\l +6S5/A1' '119&u,1g3P_R<6YTO5f$7hOE/ F$ 7 "F*b *K2;o//T@[pHuW9SF|1aHiB3 ^K?-NvR Y y4B>34  3 -l3jP  ?4yC(43M4:U4@3 3j 1`kxV 5*/48<@EJQVZ^bfkrw|!567.54765#56767&54632#35&'3 333 73 65&'3#7573 !&'&'67&'&'.'3&'2"5%#7##7+3VWReUAZD)*Y@?Y)&H\>Xfu "3t4Xb4j4D&"3{772!R 33M3| H' 3F"}44346yDD|3*bgPsEP/%H->?YY?Xf@xySh"3  H'H|rM3"3 3V72!RL7&"3/4Db4jt4X "3~4434dSqqSd U.&&-;UVVU6yDD|3*bgPsEP/%H->?YY?2FF21FF14442FF21FF1444Nb~a&%YY%& b4jz NF2wF12FD4444DF21FF12FD44447F20GG02FD4444DF20GG02FD4444B##8#&;) <(kLLk(< '<#xM8)p&.D"D1GH3C D/-.F20GG02FD4334T:j:P&64  4-d bc )2Q'ݦ.&/@zD[0$ ߴD 3]63 4}43M44<3)3)`kȖ#y*5 -=MRV\`eimrv{4&#!"!21!5147&51463'3353353!75#!5+!5# "13!2514+72'?"5'37#'7#&'3#&'3#%5#! 573#7?35#735#7353 #735%735F162EC1G(KL(F1E̫3wC34Dw3P733446"|jm3  U44 34- 54'34rM3"3!3[A23 ,44$ b4j34 v330GG0w2F15$;\]9#71Feffff"HggggHC3443g2-J!"l S.l4ݶ/V4 3ޑ35443M44:473W4!3)`k2;5!#4&'52#4'bg8Oe"bR7!% $(,DHLQ^cgmqvz~!!&#!"21!5147&514637!35%#53'!5!/5#!5##7'33533537!?!)!"13!2514#72'?"5'37#'7#&'3#&'3#%5#! 573#7?35#735#7353 #735%735UUe6fX 1G(KL(F1 ZDT|6cDCa ̫ΫX 4 {w43w3344"|jm3  U44 34- 54'34rM3"3!3[A23 ,44$ b4j34 v333[[тF15$;\]9#71FDDDeffffe~H.//.l2-J!"l S.l4ݶ/V4 3ޑ35443M44:473W4!3)`k2;5( $(-18<@DHMSX]dinsx}AP^lz.'"&'7355&'73 35&'735&'735&'&'73#7573 !'67#&'7&'7#.'76?67#6'73#&'"5&'27'7%52#5254"' 63&732654&#"'6760'�'&%6'&327"&547676767'&"3254%7654!"'#"&5463267666632#"&5477>7'&'&7'&'&7'&'&#"&'&76'&7.'&76'&d  t30 k04Xb4j+ /493h33M3|)4 c ] z 4  |%4:"3$ `P"V+,\+K+FM)3TyyT51:Rji~ 7n/$ ˉTR}X8c19td,$"Q:! 7O|Z44Y J)4CCD5:ih/=2&(+GddG:/.<^C>Sd7ALa'IE@ H"# R8OnFUx 5C +E(Q1+&-D! =%H=#=> ! :66. '   ")}uM5n2:0`kE +3N03X :h44#3M44}i d ]z3Y  } 3 4 4 sP0`00EV<p{Lgn cGFe% $! 7%IBBL&_aNO8Tlj0*  & * ,+Z- 5#1831 5:.#JL!=,8N 3#37;AEIU{ +17;AHMQUY]bfjnrvz76'&! 76! &76254'7'67&$#">327/' 632'6'6"&54632! '&547&547&547%"&54632!"&54632"&54632!"&54327%76'&70327&'7654'7'&'365<575 #:324654'2'7%#654&577&#"#73<54'3'"5%#%#73#654'67#!3 573#75'7753'75. ,..52K LJ >e]>@ooA=Xon)2 `Kll$H6` 8*2FF21FFT&%YY%& b4jz   DD  ?| ..0-D"0JI1!Dq.. Ư '  F20GG02F#&;) <(kLLk(< '<#xM8)prF20GG02FF20GG02F{F21FF12FF2wF12F]EDD /0 /.r&64  4-d bc )2Q'ݦ.&/@zD[0$ ߴD 3]63 4}43M44<3)3)`kȖ#y*5#'+/37;?CGKOSW[_cgkt} 1' '1&7 &716 61%#%333 #5'35#7573 !!#'#' 37'1"5&9&'29IIIIIIII7IIII97IJHH3wt4Xb4j4D333M3|g44 3  "IIII9IIII89HJII8GGJH@5xVJ`k D304ȑ4#3M44}3g3P4S4K  x!467xO8 7Ogk [c'7"3254&547' 63 327"&54767676'6'.6&'.6&'&6&'&.&#"327&'&7676"3254%7654!"'#"&5463267666632#"&547&'&5476'&$632#"'7676767654'&' 6760'&V,+5MML$$'QQ:! 7Oe#B'(V>5f,M7{V78HSgg;  %gLCCD5:ih/=2&(+GddG:/.<^C>Sd7ALa'IE@ H"# R8OnFUx $fnZ]K6! V('B&,/ < 6Tgg+/[DDDDO>p{Lgn cGFe% $! 7%IBBL&_aNO8Tlj0* J]GclVb,?V<'&'&&'&'.6776126321467>%.67&6'&'.7676&766&66&'&&6'&'&67676&766&! '&547&547&547&'.767667>&! ! 2654&#"&#"75'37'&767654'654'&! $! 654NnnNMnn(M3+RTfpSTofTS*3NlO1 #1Nm +GQE3C2  & ; > #=' BIZ2ERFjMHB '= = : $  ;)*(cc(**U8!2jfxtYXuxgi3 8T0EE01EEc\\ {]]" -@-.@* AC mNMooMNm oHc00@H4==4H@00cHoT2}hi~2UD" ID =& ;! : = =(#8 '" 8"(= > ;  &= BH A)9=& ;)kLLk): &=<'yZ<;NOON;<Zy<))9GE00FF00E- zz[[z2 C2GH1C!0?? H Sbl254#"'7"3254"&54632! '&547&547&547&'.767667>&#"75'37'7$! 6! 6&767>'&'&6'&&6&#"6&7676&'&'&6'&&676! 76'&%&'.'.>77632672067>>'.'&7'654/%254#"36669986NnnNMnne)*(cc(**U8!2jfxtYXuxgi3 8To\\ {]]QP  $ ; = $;'  BHIA  '= = ; %  "@3 20(/ 1F Q-RK*FE#cS< #)q)*# & 9 : > =(#7!!8#(= = :  &= DI #! 65""]'#Td0IK6<9n (?'`KL`&@ n9<5JI1dT!* [ \.5665 n3)4>GN673254'665&76&'&''76&'&''3267&&'6'#"'676&76'&'&676767676767&76767672636&'&%&'7676'''&676'&676'&'"3254'"'&'276-3`bArFA'%*MD$H'+J4x!!&v  );#'zhT 3AC9{# +4 8/)1% @z' ]u+3+'V,D $9 !gfA\"B0*5!# %'Z-N))X)+3776   733  7$#8AFqB' @[HV T51%]?]Ha Y2T>% #"m("N+>\l +6S5/A1' '119&u,1g3P_R<6YTO5f$7hOE/ F$ 7 "?J456.)5?####K n3)4>LU]dn&'&76&#"'76&'&''76&'&''3267&&'6'#"'27>'&'7676&2#"5476'%&'&'6&'&676767676767&76767672636&'&%&'7676'''&776767767676&'#&'&7676HXV/ArFA'%*MD$H'+J4x!!&v  );b3 <+#'zh221T  3AC9{# +4 8/)1% @z' ]u+3+'V,D $9 !gfA\"B0g2 @l$h4_k}""E(TÈIEcWŶY<85{/3(* h)&6Xl) 2! 1  .AFqB' @[HV T51%]?]Ha Y2T>%_WG# #" ("N+H   >\l +6S5/A1' '119&u,1g3P_R<6YTO5f$7hOE/ F$ 7 "F*b *K2;o//T@[pHuW9SF|1aHiB3 ^K?-N{*!567.54765#56767&54632#VWReUAZD)*Y@?Y)&H\>Xf6yDD|3*bgPsEP/%H->?YY?Xf@xydSqqSd U.&&-;UVVU6yDD|3*bgPsEP/%H->?YY?2FF21FF14442FF21FF1444Nb~a&%YY%&7'&'&7654!"'#"&5463267666632#"&547"3254767'&6'&327"&547676%7'7732654&#"'6760'�'&# 632#"'7"3254n  ") :66. '  %H=#=> !Q1+&-D! 5C +E5:ih/=2&(+GddG:/.<^C>Sd7ALa'IE@ H"# R8OnFUx CCDZ44Y J)4$"Q:! 7O4V+,m)3TyyT51:Rji~ 7n/$ ˉTR}X8c19td,K+Fp{Lgn cGFe% $! 7%IBBL&_aNO8Tlj0*JCDDCC2Y[5 :>< 9,3NnN9 `00wUTxB/pdZo,5V8+N 7S("K:4RL3}6V<327/' 632'6'6"&54632! '&547&547&547%"&54632!"&54632"&54632!"&54327%76'&. ,..52K LJ >e]>@ooA=Xon)2 `Kll$H6` 8*2FF21FFT&%YY%&'&'&&'&'.67761:327467>%.67&6'&'&7676&7>6&66&'&&6'&'&7676&766&! '&547&547&547&'.767667>&! ! 2654&#"&#"75'37'&747654'254'&!"36! 654sJhhJIii J1'PQ`kN NkaPQ&1JzgK. .Jhy]CMB01>  #;# 8 ; :%7 >EU0BNDiFE> ":$9" ; 7 " 8'('^]''' Q40darqQRqrbd/3Q.BB./AA_XXuXX +=+s,=( 88HmNMnnMNm nHc00@H9G)J@00cHnT3~gi}3T@" HD "<& ; > #;("8! (#!7#):% > : !: &> CI A)9;) ;(jKKi*: (<:) xZ}>;NQQN;>}Zx A)*8FE10FF01E.yz\\z 3 D0G'!1D /??BSd #/7CKU{"54632'254#""54632'254#"%"&54632'254#""&54632'254#".#"32! '&547&547&547654'3254'254'&! 3327>32"&54632'254#"#"/#"' #"/#"/6! qB/.Cq111`qB/.Cq111/BB/.CC.111\/BB/.BB.111J]wx[u#"TT"# *>¾>*$ 77&(76%iv0AA0-CC-001`L8 j"#k 6MC@w1GG1wC4444Cw1GG1wC44447F21GG12FD4444DF21GG12FD4444C"#8$%=';(iKKi*:);!yN7*p%.C!D0GH1D!D...F21GG12FD4444T:k:P G ww)4>MV^eo&'&76&#"'76&'&''76&'&''3267&&'6'#"'27>'.'07676&2#"5476'%&'&'6&'&6767676767>7&767676726363&'&%&'7676'''&776767767676&'#&'&7676!XX.@rFA'%*MB$H'+J9s!!&w !(-p3<+#'zh221S 3AC9{# +5 8/ (2% @z']u-1,&V,D $; ehB[B0h1 Bj) j2_k}""E(TQ=bWĶY<85{/3(  h)'6Wl)M2!!3 . AFqB& ?ZHV T51%eH]Ha X2S=( \W F$ #" !! (#L)G   >\l +6R.6;7' $219't,0i4N_R<6N^P5e$9fPC / E$ 7 !G)b +J2;o//T@YrJqV: TE{1`FjD1  ]K?-NE  (R%6767654'&' 6760#'"%&'&5476'&$632#"'7677654!"'#"&5463267666632#"&547"325463 327"&54767676'6'.6&'.6&'&4&'&.&#"327&'&7676&547' "3254F:`38sd0$Lu*7Tji 7q,!͆SS}6#fnZ\H8 5;ih/<3)(,GccG;//;^C@Qd6ALc%KCB F%!R7PnGUx DDC~}'PQ:" 8Nd!B'(V ?4h*L8{V78IUgg< %gL##:LLM N84RM2W0@1pdZo.3V8.K 7S'!} I]GclVc)AV<o{LgmcGFe% $! 8&HBCK&_aNŷP7 Tlj0*6CDDC+.1NnN9 9V4> U)'B&,0 < 5Tgg+/)67(MLLMEh -=M%4&#!"1!21!5147&51463'3353353!75#!5+!5#!#"13!2514#EG062EC1F'KL(F1E̫3wC34Dw3P7334461GG1x3G14%9]\9$61Gfffff"GhhhhGD4444EO"#NS#32654'&#"'!&'&"3254!567.54765#56767&54632#&#"wmiqqim2U4*6-2VgUUVJTYRdU@[E(*Y??Z*(F]>Vf@xwdSrrSd V-**-;UUUU6yCC~1*cgPtDQ/&F->?ZZ?=.H$2LFvOfaۈ(!3#52676767673{c DF 0D)!3676767654'&'"#4767632!{c55ee'%%$>Y86T;12 /.\[+-}wBA98D>#"A<7$#01JU2100 =NE!3654'&+5327654'&'&#"#4767632#&'&'3676{c_20QG$%$)U33JB00]B89Rf>?\&%;..PMH1# !"*;63 &()69C*/1!31<&&  !3 33##5!73{cEHccUQ=NN=2!33327674'&#"'!!67632"'&'&'&{c\ 7+*,,B*&$L4o%$+*-,89T6'+"cw)(CU,*tV *(0H78"$ #%:N!3676767672#&'&#"6763#"'&'&'&546546327654'&#"{c53Y200V 5+$&+)@<5431B832!$d$#'/,+)*90!"8?4<<,*),87;?[) 23?;89!"():=H t," (&MQ%'#$!3676767!5!{c;767442))#"#|{RP>UL=:::A_at-?O!3#"'&'&'&547&54767632"3254'&'27654'&#"{c>""*,.+.+', qY0/NH21/  !!8)(D9""E@%$. /001((  "-/({2$e++-(+""!C##N 3( "#)08I!!676767676767654'"#476763267#"'"'&'&'6%676765 (#J %&ysR/.C31.*JIr.&([ %7$8 T!)(d)  Xg-('0 ?KO"!%   )K%+!!#367632#"'#%4#"3276nRVD1244Sb.; --6E#$d@)"!;:LI@D+,Q##161]()67 .!!#5#"'&'&54767632327654#"N Q232/C;#"$"F6+-Yd 5I ,+CCGK;:""$ ;[67)(];;-8!!3#"'&'&5476767632!327676%!&'&#"Y)#9<.21("---&"#)'%K'!""I) d ), +EeB=8)# $QuT+,B-,&%!!#53567632#"3#HH27!XXd0FSFP !EF=0H!!67676763253#"'&'&53276=#"'&'&'&76367654'&'&#  *+4*"!VCDb)..#"U! />--C[+$$]% 6$%!!)!d;B<9%'!<8: %$A"%%QD'!41QJ13 96Z=)*%+!!#4'&#"#36767632U<@+,UU# ),-(dV9*+Y( *'!333#52676767673hgc DF 0Df-!333676767654'&'"#4767632!hgc55ea+%%$>Y86T;12 /.\[+-}wBA95!D>#"A<7$#01JU2100 =NcI!333654'&+5327654'&'&#"#4767632#&'&'3676hgc 20QG$%$)T33JB00]B89Rf>?\&%;..PMH1# !"*>33 &()69C*/1!31<&&  a !3333 33##5!hgcEHccU==Nf6!3333327674'&#"'!!67632"'&'&'&hgc\7+*,,B*&%M4o%$+*-,89S7'+"cw)(CU,*tV *(0H78"$ #%gR!333327654'&#"'676767672#&'&#"6763#"'&'&'&546546hgc%#'/-*)):0!"d53Y200V 5+#'+)@;7431A932!$y-! ('LQ%'#'E8?4<<,*),8659!"():=H g!333676767!5!hgc767442))#"#|{RP>UL=:::A_atn)S!33327654'&#""3254'&7#"'&'&'&547&54767632hgcw9""E@$$8/  ! 8)(>"")-.+.+', pY0/NH21C 3( "!+0N""!C##. /001((  "-+,{2$e++-(+lM5!5!676765676767676767654'"#4767632363#"'"'&'&'6g %7$6! T"(%'&G %&yrR.-D31, ,KHs.&)ydd"   *K $!(   Xg-()0 ?JN!#$l/5!5!4#"3276#367632#"'#: --6E#$RV%$6B3142Uc-ydd##170\*)76(" =9LHBC+,Pl35!5!6767672#&'&#327673#"'&'&'&56( 22B-/)! S!!6''81$%U.0;!"&$$yddGB74)+G7 ],,"!8>-- 89P0l25!5!327654#"#5##"'&'&54767632v$#E4--XnN  S0311A;#"yddZ77)(^;;v5I +-BBHK:;""$ l<5!5!!&'&#"3#"'&'&5476767632!327676s!"#H) !Y* 9;/21'"-*0%##)'%K&yddDC-,#%*+ +EeB>8)" %RuR-,l5!5!#53567632#"3#HH17!XXyddFREQ EF=L5!5!6367654'&'&#67676763253#"'&'&533276=#"'&'&'&~$ 5%%!!)$] ,+4($#VCBd'0/""U!!.@+-DZ('&ydd%J01:8X>()$+EB<6(%;:9 &#B"%%QD$#30l#5!5!#4'&#"#36767632U.+ 98Q0 : \      * B i  Chess CondalChess CondalRegularRegularChess CondalChess CondalChess CondalChess CondalVersion 1.0 Version 1.0 ChessCondalChessCondalc "$%')./012345679:;DEGINOPQRSTUVWYZ[uni001Duni00A0uni2206glyph68 bɉo1C 2333333dwh"pychess-0.12.2/pieces/ttf/harlequin.ttf0000644000175000017470000007614012641567764020356 0ustar tamasusers00000000000000pFFTM|{PGDEF&{((OS/2Bx`cmap(pgasp{ glyf`pheadh66hheaC4$hmtxlNloca|ϛ,maxpX namedP0xhpost5Azvhea {l$vmtx_:70{c$_<+C C Dc9 "H gh gUX U=ggUjUj4O)+   d Ok8c=q5b}jN\@1Sx    " & 0 : D !""""""""+"H"`"e%1Rx    & 0 9 D !""""""""+"H"`"d%[W@&&߼TC,ݠ6\Z^hnvx  !"#$%&'()*+,-./0123456789:;<D=>?JEASKCMYWN[XZ_\]^`aOBTUR@  !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`a(<Tj~ &Tt  B!>!N"""$"##%%L%&$&&'''($(()*+ +z+,,X,--j-..p./>/0 01(1p122p23F334d45>566778 72#"54 g %3##!##x gd##5!!!!dw 7#5#5#5#5g #dfh!3!3{c 3#3#3ddf5!5!yddf #5353!5353 ggyd$e 72#"54  #'+/37;?CGKOSW[_c!#77'37#3333333333%3535353'3535353'353?3]1,,--pwkvyuydy#u|y`y' x~M?4160F1120L02-3O011,,-n12k0t0/e!0x/1b'0 ~0>9E4K.O٦UU 2#"&546ȍUȍȍgf 53333xg hy$dU%3##U ##5!!7#5#5 #X!3X 33 UU533U U$U!!݈U#5353 U$! #'+/37;>AEQV[`fkpuz733333333 ###### '37+7"32654&%#67#2#5&'4' 567#3##0#55 &61O032-L0012F1~' `|#duD-,1ȍ0&11x4Y q O w`C81 x2 Y2Z GxS#ZzOzv.yKyx4yEv~0'0 1bx/!0/et0-,,1ȍȍ&(&x1YW u 12i0aH2x YQ I3-y/%1;!==!Yk%MY]u +/7GZlp7676'&'&7676'&'&7&'&'&7676766+'&'&'&704102167676'6'&'&7676767677'&'&'&76767676'&'&'4'&'"3767637676565'"'&'&547676763'&'&'6?'743816767676'&'&'&&76767676'&'&'07&767657'&'&'&76767677'7''7'776/7#&'&'&5'36'&#'&'&'&76767676167276363"'636'4'&'&476767636'&'&'254'&#''&'&5&'&'#/74'&#''&5&54'&//#7/'37'7'/'73#75##75'!'#37'#37!75'7#7#7'#?/37';#75%&#"3276'4'#"'&54763272#"'&5476"327654'&                    >  %    *^    >   (    +%7A$o#   !"% $  .+$+ !   ! AU(&>X)j./0  ! / +   "%&3"    ; # %0     nBI  3 0pAJ 3 /Q  8+4C.H3G%'F*(!;;8=+<8<<-->qA;;8!6CT2"()(2JP/ &#;;;'JK.+ $$:F,11.@5)=--.*A=...-?   b  &        >   D   $  !     W     ]  "$!%  $$) !%K        90   "NR "  . -p  N  V"   z<4 #  "  ]=  8 &  &   ^slc 1- 8 NMMMMNXG&-J`MNkk:ax92::26fs=7.41NMMScu9+ <$$13IG99**88KG3113FN68;!"4556 !g!4677#46gc!fObf!7R9 &-5?GQYrvy| $(.28<%! 67676% #"' &!  67&'&'&'6324632#"73254#"4632#"73254#"761#"/&7164312#77'3 3 ?#75#37#7 55 #7 5 #7'#7'#7%'#73#?'  5 #>5&'3  0'3  &'73&'  &'73  &'3  .'3?.'3?.'7357.'7373z 5_HhiPX3ݝ`^c߂__]Zkxw<**P m..TE_DWgPP+WD]G0GG0ww44330GG0ww443n0ss0##U1,,-  _Yl1(!gCu2ggN80 U0Wgg /gg!0vgg-"/gg!1ggggF!Y0 ~08b38/ 1<}>15/ {0 |S0X8 0 @+3 0 a0gf33"&%&53gc8Of!cR9#f#52655653b"eOcf#9R8"&*.2OSVY^dhlptx| %5'%5%%!35#5##3 6!  &'67 &#"#&76#535!3#6 #77'3#56'??75?777'''  55 ''3'557'3''35'735%'7373'#73#73573'7353535733#'3#'3#'3#'3#'3#'3#'3#'37t  tC@9:Lֽbgcolj31\1,,-R ZoP(gKQ~ M qbl. 0,, ,\02 2 `3< r ]01+y0g0B1g1x1&00 14[,41g1A0h0D2g3?1g2@/h/C1g1B0g1@1g2Bg2gDC3Dw$dggdnKMffp--3S9 -p:gg. 91,,-<b" ZDn12C0A(0Af/C0/P1[0 ~0j)N3*&s/ 1k&1,'0&0|0+](3&0-'p0^ՙ/+Iggg1x1!3[5+gggggggggggggggggg4"&EIMQUY]aeimquy}67 !&76#5353 6!*#2 333#6!52 3.'*#5 7&!37;#%3#%3#%3#%3#%3#%3#%3#57375353'73573#73#73'73%'735%'735%'37%'375%53''%5%557'''775?75?'6'?#5'37+7n3xx  pq~1  xxg2gx1g20g11g1/h/1g22g30h01g1,4K4 100x11g10g0b+1 ]0 r`3a 2ڮO\0W  0,P b  q M~QQKg:,꾾+ol Z$R-,1-1av9 -p:gǦK!g. 9!KKggggggggggggggggg[5+K31!Ω1xgggg/+ _^'p0&03]0_&0r'0W,Q&1'1&s/)N3~00P1/C0Af/90إC02Dn1=" ZU-,,10 ,@Pbt "&+/48=AEIMQU$'767 76.76&6'.'&54'&'&'&33254'&'&'"33254'&'&'"254'&'&2'654#*'&322#77'367#5.'7#.'#&'#&'&'#&12#&'27#&'727#&'767#4&57>7#46?  5.'35?3  &73'&'73  &'73 35353'353?3^f7ZcX,h'x()n\@5a454`36N0Q)!K|-L1&&#!#$%"# -&P" **-#"% ?"),6+")(/!) S""  1,,-% 2  22 s 1qt1> C i/E"i2. -y3(0$1H~4 4V1pSG30 1wBr120L02-3O01K*>Nw) 1L:b# 3B &U&'Uʹo>2j5M % ## # ## # "#  # # g1,,-R;&p 1v 2  p0t$B0&h /i 0xg/D  1)  0 ~03X/`NK1RF(1kQ0As K.O٦3#/=IRV #(-38?EHKOp>7467&'&'67&'&'2&'&'&'7&'&'&#2&'&'&'&#6&'&'"16'&'62'7&'&'&'67676%>76&'6#'&'#76'7333333 &'73  &'73'&73  ?35.'3546?>7#4&5767#&'727#&'727#&'2#&1#&'&'#&'#.'#.'767#5'37+7%$'767 76031!!c@3 +EB0+EE4* Y9&'K& =<0& &0(,9(T$5+/Y'(|'G&`=Vj%$)36}A ET6]KTFI _U.>1O032-L00Er1  1m30S?1V 4t~o$1O(0 -y3E"i2 i/ Ct1qs 1  2 2f %-,1^f7ZcX,h'x()n\@    ,+;  &$SZ%_hbb lT A'4jF B!9+<'T bx>E';%!=d 0.0&s_/w =3A%)G- .("9zOzv.yKysQ01(K1RNX/3~0 0   1g/)x 0wi /h$B05t  p0 2p 1;&,-,,1oK*>Nw) 1L:b# 3B , !%)-159=AFKPUZ_djpuz!6!&76"&54632!63273#%3#%3#%3#%3#%3#%3###73&'73&'73&'73&'3&'36775'5 6#77'3 3#&'&'&'&'&'&#? 3 55353'353?3" | !Ɏ 9KSOO83h22g11g10h/2h22g31h0603+0-u1 1O0 >14 g   Wtl{1,,-%'2T (H  D  !,' x~F< L02-3O01! K Ɏɍ( gggggggggggggX0:3/+ |u   @F'+g  1AW10;m0z$1,,-F%Q# !%1h2 0 0( E/ /G]1b'0 ~0%3"/MK.O٦-6:>BFJNRV[`ejoty!#"'2654&#"!!6!&763.546323#%3#%3#%3#%3#%3#%3###73&'73&'73&'73&'3&'36775'5 6#77'3 3#&'&'&'&'&'&#? 3 55353'353?3/&*)'2ooqo/" | !1XnɎoW3h22g11g10h/2h22g31h0603+0-u1 1O0 >14 g   Wtl{1,,-%'2T (H  D  !,' x~F< L02-3O01!v qooq3 K )gɍg)FgggggggggggggX0:3/+ |u   @F'+g  1AW10;m0z$1,,-F%Q# !%1h2 0 0( E/ /G]1b'0 ~0%3"/MK.O٦6 !-4:@DIMSW]afjptx|!#77'3#5'7# '6#&676&'&7#%#?3#?3#?267#?67#7>7#7 3 5'35''3 7'37  '73'5&#"735'35&'3'&'3 353?375&76 632 6! -! %! %?! %!  32]1,,- q  2 ,g+w WV)  2A  1f  z1  o/N  s2#(3d!0(' x~l z4M0 11(r r0x6 1-W 1R0} 0#= |2,3O01`{#'XQ! RX)" !41#'@@1񄋇1,,-J,(',]w'*E>1|390zt60,n5/s8018/c o8(1b'0 ~0-3){u+/BM!& 1X!r&s1!4'CW",0 +0 Re*0K  3  zO٦ʠ2$I ,TT+ֶ fxx|mmKfevH'6  $(,@MQUY]aeimquy} !#!5#!'#!2)&76!%!7!53'#5#'!#5!#3!53!'3 #!35!37! 733757''73 %'35%5%5 5?76'&'7''''7#75#5'37+7#73#73#7373#7#73#73#?'7#3#'3##733#'3#'3#'3#'3#'3#3' a`Y`GE`}DLQRJKKDKKGGI8D8IG?T_3_TΦ1O0n02qa04b#>~,!   R %  ,RD2-,13322O110+011441'114@1g1D2g0e013h3@3h2A0h/B0g1B0g1A2g213e 3 D#"kzO="0E#3!02!ad 0!c0M1>/#3~0\"0  1.$0#/$0$0]S2"T1u#-,,11\˫z$'2/gggUgggggggggggg1!#4&'52#4'bg8Oe"bR7!1 AEIMQUY]aeimquy}53'!535)3!3'#!35!37!##!!!5!5!'#5332)&763%!!7337577%'735'35%5%5 5?76'&'7''''7#? 3 '37+7#73#73#7373#7#73#73#?'7#3#'3##733#'3#'3#'3#'3#'3#3'!RQT_3_TۉD{ {Dߦ1O0r0a04b#>~,!   R %  ,RD2+-,13322O110+011441'114@1g1D2g0e013h3@3h2A0h/B0g1B0g1A2g21wgDDDDhx"eDDDDf 3 wgIzO="0E3! 0!ad 0!c0M1>/#3~0\"0  1.$0#/$0$0]S2"T]1-,,11\˫z$'2/gggUgggggggggggg14 9CMQTW\cgkosw{  %! 67676%3254#"3254#"4#1"'&132?6'1&' 327$! 6! #77'3 3 ?#75#37#77'#7'#7'#7'#7%'#73#?'  5 #>5&'3  0'3  &'73&'  &'73  &'3  .'3?.'3?.'7357.'7373z 5_HhiPXa``afaaaaS%%=y  y&'&g1,,- %I-Z2m)2h2CCzh1hDe#g1g/h/gzvg2gg3hg0gg1gxX~.n46 17<0=1! { |1yY90 @0O  2 3$a  01ثPDBӳH>PIqqqqqqq)%%l2yyN9MY11-RR?JK1,,-  _Yl1(!gCu2ggNu0!d0#gg //gg!0vgg-"/gg!1ggggF!Y0 ~08b38/ 1<}>15/ {0 |S0X8 0 @+3 0 a03 )-038=CGNTZ^cgmqw{! %! %7! %! &76 632 6! %#77'3#5'7#  &'&7#%#?3#?3#?267#?67#7>7#7 3 5'35''3 7'37  '73'5&#"735'35&'3'&'3 353?375'^ #20$1 2SS#'XQ! RX)"1,,- q  2 ,  2A  1f  z1  o/N  s2#(3d!0(' x~l z4M0 11(r r0x6 1-W 1R0} 0#= |2,3O01`z+w rrPjjaUU ,TT+ֶ fxx1,,-J,(',1|390zt60,n5/s8018/c o8(1b'0 ~0-3){u+/BM!& 1X!r&s1!4'CW",0 +0 Re*0K  3  zO٦ʠ2$]w'%#'+/38=AEIMQUZ_cgkosx} 1' '1&7 &716 617333333 &'3 &%'3 %#5 #5"35#### &'#'#'#' 3 67 3&'5&'7 3.'1&'37+79IIIIIIII7IIII97IJHH81O032-L001%  *>1V0nT1,& 4(~' `|#9 /V1n1982$|2$P  -,1IIII9IIII89HJII8GGJH"zOzv.yKy! W 0c>1VvnU1/ &63~0'0 1bx/!0/h  V0[0o2iC$51  :-,,1U%#463!cG" Ef jU &-5?GQYr%! 67676% #"' &!  67&'&'&'6324632#"73254#"4632#"73254#"761#"/&7164312z 5_HhiPX3ݝ`^c߂__]Zkxw<**P m..TE_DWgPP+WD]G0GG0ww44330GG0ww443n0ss0##UU"&53GcމeG"U653#"eF"Ge^x 2E%'!&#"67  & !&76#535!3#635#5##3 6! t@ 'coCbgֽ_L$31ԫ@9:3<-3p$fKMfv9 -p:gg. $dggdn^x"&E67 !&76#5353 6!*#2 333#6!52 3.'*#5 7&!n3xx  pq~1  xx-1av9 -p:gǦK!g. 9!Ko0<L^p%767 76$%6'.'&.76&54'&'&'&33254'&'&'"33254'&'&'"254'&'&2'654#*'&322f7ZcX,h'x()n^?^6P1R+ !L~.N2(&_2_-21_,d#!#$%"# -&P" **-#"% ?"),6+")(/!) S""  Nw) 1L:b# 37T*o>2j5L + [*+ ZY% ## # ## # "#  # #  oBFO[iu%767 76$'%>76&'6&'&'676767&'62&'&'"16&'&'&'&#6&'&'&#22&'&'&'&76&67&'&'7>7467&'&'f7ZcX,h'x()n^?^NA ET6]KT?0?[j%$)36*'G'(t$5+/{ &0(,9(g'K& =<0EE4* Y9&` ')'I 'EB0031!!c@3 Nw) 1L:b# 37T*e_/w =.z') .?T=d 0.0&s.x><'T B!9+A'4jF bb lT$SZ%_ F(AA  &i    ,+;U !!6!&76"&54632!6327" | !Ɏ 9KSOO8! K Ɏɍ( U6!#"'2654&#"!!6!&763.54632/&*)'2ooqo/" | !1XnɎoW!v qooq3 K )gɍg)$ 3? 32% 7! %! %! %! %&76 632 6! %6#&676񄋇ꉍG'@@ !41##'XQ! RX)"oWV)H'/v)mmKfek ,TT+ֶ fxxz*E> 3"&*.K!)7!#!5#!'#5#)'#!53'#5#5!)'!#!35!37!#32)&76Y`GE`[ a`I|8IDLQRJKKDKKuT_3_T{ we" 3 =2#4Fe"fE 3 = #!35!37!#32)&76!!!3!3#!!!5!5!'#53'!535T_3_T{ DQDQ" 3 "DDDDDDDDjU 9CM%! 67676%3254#"3254#"4#1"'&132?6'1&' 327$! 6! z 5_HhiPXa``afaaaaS%%=y  y&'&PDBӳH>PIqqqqqqq)%%l2yyN9MY11-RR?JK$ )! %! %7! %! &76 632 6! %^ #20$1 2SS#'XQ! RX)"rrPjjaUU ,TT+ֶ fxx45 1' '1&7 &716 619IIIIIIII7IIII97IJHHIIII9IIII89HJII8GGJH)9,1535#5##3 6327!&76#53533#6&#"'!nyQ.OP,YˣZ]]Zy㎎GqQ3 *]]N) <{z+ !-176'"676%&766326! -7! %! %  32 NMr&!"P00O%y  w~vy&> trLL lkQdd?%5v /kKAFO\jv76767%76$'%676'.'6&'&'676767&'6&'&'*#6&'&'&'&#6&'&'&#22&'&'&#&7667.'&'76767&'&']/N\R']#m#%eU8F#a#?K0TEJ9+v8Q`q" (+0#@" Z4%+f "*$*0)X#D( 48';B2# O0% WXTiF3+*.-!Y?)yGj% t?-D4X! .rfK&ZT*k 6*m$$*8MjZ ++/f{m9 g4&L )0(2)4. WG Ld \Q EW"U>#&=@%#)  %a &(!  (08@GMT]n761#"/&71643123254#"432#"%3254#"432#"&'63267&'&'&#"  #"' ! 676767z5h h4 ?_``_ @````tQ{zR\pclQ[{|ǍzUWwgOH^a=Y>+g g+[ 0000pppp0000pppXO$JAU>qIIQY=V8 <: &&6<#<8,033*+"54767675!3272++*3'!,03!"> /,%"&t~L:*)LOc<@&#"#632#"'./&543232767654'&'&#"!'&763*>(' 9+E;9""-.EGH@E 75,3-)*-PLu S 33GJ24 <@!3.! "bv =;?632#&'&'&'&567676767627674'&'&#"'&39:732 ;;QE36$1.IFR0") 'WEF++1/RE&%#%/+ |]54N636"$*,341bML41  33KKU\AB)*E8))q#&#"'4?!3] TDO:  ' M  k! 45E!37>'.7>'.&'4767632#"'&'&'&5476XYE[hEEZhG:LW:9LX!44H6-.!@W'%$%676767<54654'&'&#"#"5676514'&'43232#!!^ =IAA,,)*=?D&8j  & (zWU-++,WZF 53Se<;  B; ,+OPaUKL./#NR'&74'&'&#*#7"#3273#&+32673!#"5676514'&'&'432!:3673!! /  PGDS) TD'}  " 3 m  CA:  F/   ~IM0'&7&'&'&#"73#&'&##"'4#"#"56765154'&'&'432!:3673!!  0C%d%" 'R   MM   0  >    p #  B)  }QU0'&7&'&'&"267'4'&'&'432325632#"'&'&5476767672!! 7@543%$('=@@K;   BA    !#=7&l]`:< :8PN[@e    $#45>PBA%&:   8%$QO{MDB/-`d6554'&'&'432325632!54'&'&'432325632#"'4#"#"5676=!#"'4#"#"56!!!  MM  p  MM   #  MM  ""  MM LD!    6/     4:F   GF   "b%)-#"547+*#"&+5476767653!3$-#"cGP+/3&76!7.54632:32726654&#"327333 +(Tpcc - 1)bU:;SS;&"gc# uYbb@5 !:TT:>8 <: &%7<#<$,04*+"54767675!3272++*%33333""= /+%#&),1gcL:*)L~;?C&#"#632#"'&'&543232767654'&'&#"!'&76333'*>(' ;*E;:!"-/EEI?G76 +3.(*.OLugc 25EJ24 <@!3/ "bv ;?C632#&'&'&'&567676767627674'&'&#"'&333O9:733 ;'.7>'.{c64H5-0BW'&$%73#"'4#"#"765!5!d A<   II   m  QQ `J "!      ,    udd*7DHL#"7676767654'&'&'&3232#'27654'&'&#53276765&'&#5!5!<     X9;gR*+ LLyUXQ,+),,K%(#$##3Eb "! %&De#23K_34P$#:,! < %4ddB5!5!'&74'&'&3676703#&'&'&'4&5<5476767632&IL36&"43?57!5 &SY`ST682.FESLmydd   $%9=?551,)-j#"IImPA>50 #:>B#"5676514'&'43232#'276767<54654'&'&#"5!5!  & (zWW++,,WW\1EEB+,)*==F.0 A< ,.LPbTKL./P43Tf<; ddNRV'&74'&'&#"#"###3273#&+32673!#"5676514'&'&'432!216735!5!  1  PHDS) TD'}  " 3 m9   C@:  G/  ddHLP0'&7&'&'&#"73#&'&##"'4#"#"56765154'&'&'432!216735!5!  .C%d ' 'R   MM   0>8    o !     C) ddQUY0'&7&'&'&#"267'4'&'&5432325632#"'&'&54767676325!5! 0G725#%('=@@ M9  BA    !=#2+haa9< ;?551+(-j""IKkPAA21 #Ck    3 K {  Chess HarlequinChess HarlequinRegularRegularChess HarlequinChess HarlequinChess HarlequinChess HarlequinVersion 1.0 Version 1.0 ChessHarlequinChessHarlequinc "$%')./012345679:;DEGINOPQRSTUVWYZ[uni001Duni00A0uni2206glyph69 bɉo1C   UUxxooUUUKpychess-0.12.2/pieces/ttf/adventurer.ttf0000644000175000017470000012664012641567764020546 0ustar tamasusers000000000000000OS/2^F=VPCLT6cmap!"2cvt u"Mp:fpgm3O\glyfRuܦ<6hdmxpDheadВ$6hheam\$hmtx (locaetmaxpi@ name`postrxprep0u&r9 XL F:9, # : r9    XL   F  : 2000 by M@rroquin Design - Mexico. All rights reserved. 2000 by M@rroquin Design - Mexico. All rights reserved.Chess AdventurerChess AdventurerRegularRegularChess AdventurerChess AdventurerMacromedia Fontographer 4.1 Chess AdventurerMacromedia Fontographer 4.1 Chess AdventurerMacromedia Fontographer 4.1 3/02/00Macromedia Fontographer 4.1 3/02/00ChessAdventurerChessAdventurer@,vE %E#ah#h`D-#a=\A5F[ .r"RZ]@- EhDEhDEhDEhDEhDEhDEhDEhDEhDEhDEhDEhDEhDEhDEhDEhDEhDEhDEhDEhDEhDEhDF+F+EhDEhDW@!@ Fv/7?*   3VU \@% @   Fv/7? w>~g('{*8 >f//ghgxg!#/.##9"   +="//#=+   #4,;3gfcf7=g\//w' :(xfGxgx>w>xf~ 8+g'?11\fwf?@@Fv/7? #<) 7=<> %r",fJZFl~ Rv;!sx +hf-E$;O(+)-MJ-E``E22246/9 $9046.:L $9/@ EaaE11167!D1 Y+kz@l29Ul27U+W<fZO  OYg>DD  kfxUK6#kh/ (S4;Yg 'IS(  B) /od#6KTufl  DFCDDDDCDDCD"&%54d3 3 3 lgfcf7gT#*//-)Uf ~    _g4f4"g1p 8h{f). ffVU J@ @    Fv/7?54'&'&632%2654&#"7'3'57#"'$547654'&'&'&5476763267!'67632 47&! 627654'&#"7 4&5&! 6&547632&'&6%&'&'&#"654&#"676  gego5=RhA#DgcN/%%f!#;w6$Sgz+Ydn+~f#2_{dg`hkO? V?g`ftfR3)>H+3Ԛ")O&&*b.FF+P\C__CD^^]qr0ssBs &j 9~:8OJX_>DD<_XIP8:~9 j& 鱟[po\٭ٱY}|c\O,FE-e)E_ HHXjT@jYGH ^78 ?.f~09efJ pfQFD>3>Tb3*.{CEpJh0WcCRG#>F`==`F>>855>;GcU %_89=;vLJA=OÕ8jcGFdj8R:A L#0?O "',/49>CLP"5432 6767654'&'&#"#4''&#"6 4&5&! 627654'&#""'$547654'&'&'&5476763267!'676323735'75#'#2654&#"&'&'&'&67632677632&73#5 57!35#735%#7355535'735&'7#&'#%#6573#%67#47654'##]]]]].uk,d.-G@i(D(iAG--d-lv-aZ}|[٭ٱ &i 9~:8OJX_>DD<_YIP8:~9 !Mg) 6ll7oo1rl6o3C__CD^^ݘ 79AI!!2.d c.2 "HB77 ")OT>H+3s3R$f?g`f? VkOg`h{22+~fF+Ydw6$Sg!#;%%f/1NA#Dgn5=Rh+oegxg]^^]??C}NH66`$*o@@p*%`56IO|=E?>866>D#GSBkO4gGYEC{.*3bT>3=Vb4*.{CE88[:@n1WcCRG#6oo6mq1oo6l_CC_^DD^$Y$;I BFFB H<#Z$ P,4  3gf`jObVf"Cgh`-zg\//f|(*feXOg!"fS 7'&''&'"'&'&7676767&76732767#&'&325654'&'6?6'&57676'&'6765&#"32&547654'654732676'&67676'&'47&7676764DgFDhDEgEDgE J\33Q$fb80hm27O3fu 1d.4 Yf'/.e(t"DgDPh7|EiL !< e   /A & '/CCDDDDCCDV3 E44gfcf7g*_!//A f33(g)1{94fE'#W*Ag1:ht?feFf3DD!GfÅ j yviL[*Q'!;&3#TJPY3mX/=|E=t }E@r @">8NN . ,t79 Tȳo/0 , $UH`. -C4hf~ 54jY4 G'\ "   0  9  !%)058=AFKOV[^bfjnr}^%#7##7##7##7327#5'73%57!35 5 676&'73!55'35&'3'#'7#'7'7'7#?'7'&'672'&54766'&776''&'"'&'&7676767&76732767''!&5476767>7!65&'&'&#"&'&''&767676767676767&'&763276767432676#66776'&4DgFDhDEgEDgE J\33Q$fb80hm27O3fu 1d.4 Yf'/.e(t"DgD8    !. "6V* &\< ; //) WLLI):M1MCsHWh 7A*7@*@9h7|EiL J &$7n- 0#>  3" fI  ! -'zWR !  ks.  %, )t\o*CCDDDDCCDV3 E44gfcf7g*_!//A f33(g)1{94fE'#W*Ag1:ht?feFf3DD!GfE&"%0# #B  0N)G$ Q'!;&3#TJPY3mX/=|E=t }E@r @">8NN  j yviKZ+ zKGuoT]id,'"&^: A  0 Uv):42= V: %!0 #'#-B43b[~ 45 p?13\ ] 3 6 VR^flptx{276'&'#"'276'&#"'&7+!&54767&54767#"'&767&54632"1;2714#4'&'3#5 57!35 5!5&'3 &'"&'67#7&'#7#&'#7%#7&'454'#7#&#"73&'735Q1!"&ST%"!/SC_Z(hp,7L6-ph&Z_C0_CC_"""#( 3,3R$fb82fb{0 -DgE* Eft/*:EgEDhDk3DgF2gz$#h d?     !!!/gS7$_\3"G + G"3[_$7Tf0CC__CA#""#4OS3gfcf7//%f,d{g /<fCD)"gDs1V55 VV!!VV VVggDgThDh'fCg/fDv\fDgeFdUTf#2gEhUFf U3gFfU3xy3"UUUww͉UwwVVVVVVUUfDCffff D}AhC11CcggDgfgEXfffS//ggEvhUfGEfgVfEgV3vix4# (8LV`n #'1:BFJNRV"&#3254'">'&6'&3&5432&5432276'&"327654'&546767!76#!"727&'+"'35&565476767&'&'&547"5&'&76327&767676763276#%#&'&'&'#6/&'573'767675405&'73!5 #632&'&76 5!35 57#5676'3#7##7##7%3#%#73?@3;&[ -0$] r/77++68     @9$ #4 ! #:Zd^Na6.:0.)0.-)7x%6v8/9aP_dAgW  y'$5/0" `4;d3*~'2 S<#f#2h T eb8fR FO 3 33DgFDhDEgEgEfDgEX"! "Z  F  F "& $$$$ D  kfxUK6#kh/ (S4;Yg 'IS(  B) /od#6KTufl  Df). f%{f 8h14"g f{ _g#   ~ a-)Uf//6gT#*cf7fg  3 3 33&%54wCDDDDCDCCD" !5 #/37=DJ7'%7' 7654'&! 76 7654'&! 76"'$547654'&/&'"54327654'&543263676747&5432267&543276767&5432#47&'6654'&'3#'67654'#4767#'3#67#%#67#&'7&'5%5&'%&'3!5&'5 #2&#"53!35 57#5&'&'3V) UVU++(52Ѵ25)(52ϲ25) 7Ffff CG5 Wff%n0>ff>1 n%ffW 5H6 fffD9i(L&'* r!dgv) UguA2Th03Dga+$/,fa3y.,Ugz6<k 0@Kf#24!&h,oGca8ftfR3 k  3r71*,+U' & << & '' & ;; & '(PB_|%fff/\ jT| Xee1=~%EffE,=Ŧ1eeX |Tj&OfffH_BP(U1179 !#"Sf~!N Tf0;ufTGD8o$h1ra:63gT#fA =!&%gD-0fE=0#%/0K//s.$4&!gcdGaf7fg:/35k&/)4$(,08;BLQV[`ekpux|#"'32?'&5477632&#"3#"'# ##367#%#767#&/676327&'#&'&%&'35 #5!35 5!35 57#5&'3Mso#sk7;aP/^gtgRgxhpag//8f 2Ab4 ? %g()tpd8[+1$f^2]h;b8fR83##X31 &iZx&֢OB@)Pfw&fh116 8/F?#%g]tfg-,&"" *$3f$ //=g\cf7fgY3RW426s@/77@84-,/,(& !54633565433Fv/7?J9JFJ%$LMLKJJFv/7?"@ r@E}FE|=SWx@2XX@YU:6HB@<" USPRWT(VU,TSVWVUTTFv/7?ff>0n%ffW 5G6 fff4c(PB_Hfff/\ jT| Xee1=,EffE%=©1eeX |Tj&Offfh|_BP(w<@@BAA@B>! >>5=7=>9=?>-@='=#! =?@?>==Fv/7?_XJO8:~9 j& #GRCcW0hJpEC{.*3bT>3>Tb3*.{CEpKg4OkBSG#w#:@@ Fv/7?fZO  OYg>DD  kfxUK6#kh/ (S4;Yg 'IS(  B) /od#6KTufl  D##:@@ Fv/7?54'&'&632@jYGH ^0E_ HHXj-\O,FE-e)Y}|Z٭ٱ[po\ &j 9~:8OJX_>DD<_XIP8:~9 j& 鱟 }sssqrC__CD^^?&*b.FF+P\sFdj8R:A LJLJA=OÕ8jc GcU %_89=;>855>K>F`==`F>q#GSBkO4gKpEC{.*3bT>3>Tb3*.{CEpJh0WcCRG#78 ?.vsssBrqd_CC_^DD^1T):9`$ Uc ^0?O"5432 6767654'&'&#"#4''&#"6 4&5&! 627654'&#""'$547654'&'&'&5476763267!'676323735'75#'#2654&#"&'&'&'&67632677632&]]]]].uk,d.-G@i(D(iAG--d-lv-aZ}|[٭ٱ &i 9~:8OJX_>DD<_YIP8:~9 !Mg) 6ll7oo1rl6o3C__CD^^ݘ 79AI!!2.d c.2 "HB77 ]^^]??C}NH66`$*o@@p*%`56IO|=E?>866>D#GSBkO4gGYEC{.*3bT>3=Vb4*.{CE88[:@n1WcCRG#6oo6mq1oo6l_CC_^DD^$Y$;I BFFB H<#Z$ >! lv767676'&67676'&&76732767''!&5476767>7'&''&'"'&'&767676676'&6547766765&#"32676'&6?6'&565&'&32A & '.>   7A*7@*@9h7|EiL$'%{N  !B&GP7$FE+    ] =; 9 "   0 z/=|E=t }E@r @">8NN  j yviL[*Q'!;&3#TJPY3m'\  G(f~ 54jY4&H`. -C4+/0 , $T(. ,t79 >! $q@c@Dſ~zd\ZXEDCB3/#! ůlXOLKJIHGFEDCBA@?>=<;:! x8LML)lFv/7?/<7'&''&'"'&'&767676&'&'&#"&'&''&767676767676767&'&763276767432676#66776#"'!65! // ; l,&&  !. "6n    7A*7@*@9h7|EiL J &$7n- 0#>  3" fI  ! -'zWR !  ks.  %, 'hCG)+"NQo/$'>#B  0NG&"%0# >/=|E=t }E@r @">8NN  j yviL[*Q'!;&3#TJPY3m]id,'"&^: A  0 Uv):42= V: %!0 #'#-B43b[~ 45 p?13\ ] 3 6 S{KGuoT^%R^@B__@`2\[VUCB'& \[VUIEB<72-'$  +Q>KKQYXN4^S54N7Fv/7?/55 VV!!VV VV"UUUww͉UwwVVVVVVUU ?g (8LV`n"&#3254'">'&6'&3&5432&5432276'&"327654'&546767!76#!"727&'+"'35&565476767&'&'&547"5&'&76327&767676763276#3?@3;&[ -0$] r/77++68     @9$ #4 ! #:Zd^Na6.:0.)0.-)7x%6v8/9aP_dX"! "Z  F  F "& $$$$ D  kfxUK6#kh/ (S4;Yg 'IS(  B) /od#6KTufl  D\ !5@Y@ya[SI4$  qiMK:0( sUgoskg]Y}sg_G{>,"6m6GFv/7//////////....................................10IhGIha@RX878Y7'%7' 7654'&! 76 7654'&! 76"'$547654'&/&'"54327654'&543263676747&5432267&543276767&5432#47&'6V) UVU++(52Ѵ25)(52ϲ25) 7Ffff CG5 Wff%n0>ff>1 n%ffW 5H6 fffD9i(L&'*r71*,+U' & << & '' & ;; & '(PB_|%fff/\ jT| Xee1=~%EffE,=Ŧ1eeX |Tj&OfffH_BP(U1179 0$M@%%@& "  Fv/7//..............10Ih%Iha@RX87%8Y#"'32?'&5477632&#"3#"'Mso#sk7;aP/^gt1 &iZx&֢OB@)w*@:++@,  ' '$ ('&)(Fv/7?2GWB3/FD0661DC/5@w#,8g@+99@:/ 5+ &2(-$ Fv/7?2R\\DRUAK.w .z@3//@0# -' )Fv/7/bT\!#'+@:,,@-*#" %$'&)(+*# *)&%+('$Fv/7?p7+K5,$L͈V Y"&CFO"UP8SQ+,4;gbqJ\#.3MH+)_RKS_O1)$U͈VX ;u_pTPO4841J:@OVPCT&*.@E//@0-)#('*) ,+.-#  $#"%$-,)(.+*'Fv/7?>t.26@:77@85*&%0/21%$& .4365$"5410632/Fv/7?z@7??@@=%87:9*2#<;>= ..=<98>;:72Fv/7?2R#';R81!L+&pL3W$' (װbS\" V;>7PcB$=I.2 8VV'1@@22@3.('&,('   & "Fv/7?SKL(VVGe-$G4P"-uAE90@&3@GWA#|@5$$@% #"!  # !  "!Fv/7?P81Y&GC?M.'QVn#1"D>QCRB3>iZX%ZH 0 5V=F=Rpek5 UVV"&@M''@(!&%$#"!    &#$" %$! Fv/7?%#D-`.PPPpKk1'2fXX@UVV"&}@5''@(!&%$#"!  &#$"  %$! Fv/7?42C> G A/5SLU$CI.(ohAhipP?V(B;X7&F G65GI43I #>Q:5!DU6"#8Mc;/#Dw6#%UVV%)-@S..@/($-,+*)('&%$     "'-*+  )&'  ,+('&Fv/7?Y:c+I_F@@f72c77I%'7    740047DO'KQYag254#""5432"5432'254#"67&'& 67&''&'&'#'&#"'"''67&'6%2&'6%6&'527654'&#"3"'&547654'&'&'27767654'327636673272673277673%&547&'&#"6! "5432'254#""5432'254#""5432'254#"J\\\F\\[[6$"&$R 8Gn D::D oF9 {+,863 1C"&69,ڏ؎5;<*&1!  !?<F7HՊ}66(\\\\k\\[[\\\\=\[[\\[[\=sf*6J5      4JEo{H gfQ*,l  H{o= %& &% =#H=Tu+w944k_*3BTiM}#9LhTD2(`kSG9oPAH#=/SP& $m6/=? \[[\=[\\[==[\\[=D!*^f@Cgg@h>&" ]WUQNHC82/+>6Je(a)ON21)($_@cZZA@CFv/7?EM,+OFJPo"[&ZPD9. "2DTh|@m@͸|upi_Q' c[SOME-+)%# W gGg1KBji|{~}5ME+#I/U D3"<;sr}Fv/7?*%&#='-,# e  NOFfU,%-VgEN=YUuGW .)6w+)&&/(&2t(1J) 1i3*!  VHsVZhB6999? j7B|5!--#7|A6o :   :7\QG || GQ\7==  a[lLD1 cZ+ $ K.6Q\ #A !2-! ; % +BR) 4ALj[a=x@4@  Fv/7?>tuMJT@@ Fv/7?7'&''&'"'&'&7676767.'67'547632!65'&'.&''&5476767676767>767&5&767632  1;%2;% 9v|4^1p?_E6=L?74)P vkI*8N)%EA%4E-E=h@O *+CP; 'BIx d^Q B " "1bMKu) + %  /- ]@  #F7&2/3o>8g q=9g :92FFx ^t g_DS%I#5"-LCHO.d:"8: *!%/" Pr@@jcFS_ZP%K'* : . Kk&3/-7 !-# %,?"*9.- )uw.y@4//@0.-#" .  '"! )Fv/7?iZY$1w",{@4--@.)#"! '#"  !Fv/7/$#E'1`.PPPwTKjN;gYY@Dw.;J@8KK@L<-+2 >)9F!6%B%/%Fv/7//!B2?M?RQwT #>R:5DT6"#7Mc<."Eu7 !%OG65"%I43I=;Y7&E1w)@I**@+()(!  #$# &! Fv/7/*@DA`BDrEnG:HHLLpLO@QTWY^[^`$`~bdFfghijklmnpqr>sttuvwy z{v|~ZFf`TBB""j~V6VUV### VV#?#?R@tThDDuZDV]@QuRjDl !"$%')./012345679:;>?@ABCDEGINOPQRSTUVWYZ[bcdeijklmnopqrstuvw$$  !"#$%&'()*+,-./0123456789:;<=>?@AB_`\VWaZkX]db^CDYEfFcejghiHGIKJL[MONPQSRTU,  %+/5:<?BDFTXbdftx  (.17<>ADFKV[dfkv ,6<>FLLNPPPbfttt  !"#$%&'()*+,-./0123456789:;<=>?@AB\VWaZkX]db^CDYEfFcejghiHGIKJL[MONPQSRTU_`p                                                           3%3fMACR@ `uChess Advent 7CHER00,Zh_<AAll.@ Ppychess-0.12.2/pieces/ttf/maya.ttf0000644000175000017470000010657012641567764017316 0ustar tamasusers00000000000000pFFTM{4hGDEF&@(OS/2Bkx`cmap(pgasp8glyf`\heade6hhea :4$hmtxkNlocaQtmaxpX nameoqpost5<0vhea $vmtxb,:PxN_<+C C  Dc, "H  s ge g14D1 g g            114TDDTDTDTDTD8+G(&RjN\@1Sx    " & 0 : D !""""""""+"H"`"e%1Rx    & 0 9 D !""""""""+"H"`"d%[W@&&߼TC,ݠ6\Z^hnvx  !"#$%&'()*+,-./0123456789:;<D=>?JEASKCMYWN[XZ_\]^`aOBTUR@  !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`a$8L`t*8DTbp Z r ^Tf<Tf!#%|%&@&R&d'4'()**+b,,&,-<-.*./01N12t23`34P45>56 667R78889\9::;n;<6<=@=>>>?D?@L@72#"54  g !#53'#!CCD!!!!ψD 1537#5!#CDDee!333eψC!#3#3DDg5!5!gWCCg 3#53!5CChCf72#"54    #/;GS_kw%761'1&'61'1&761'5&61'1&61'1&61'1&61'1& 6'1&%61'1&%61'1& 6'#&61'1&'61'1&61'#& 61'1&Jxxyyvnf2f!n!wTTK^*]>yx~Uyyvnffmw!TTK*^]#$ 2#"&546xxy$xyyxgg #53!3ChCC1%#53DD̈D5!!̈7#53#CC΋D4!34D33D163#53C΋6!!653#5CCˈ  #,5>GPYeq}2#"&546 61'1& 61/&%'#&7 6'1&'1&7 6'1&17& 6'1&61'1&'61'1&'6'1& 61'1&63'1&63'#&6'1&761'1& 61'1&%76'5&xxy\^*&a@Xb~}e)wnffovxyL!xy$xyyx]+^c'aa}&|ewmf2f!n!v! yxyx!!Yk%MY]u.2:J]os7676'&'&7676'&'&7&'&'&7676766''&'&'&704102167676'6'&'&76767676767'&'&'&76767676'&'&'4'&'"3767637676565'"'&'&547676763'&'&'6?'743816767676'&'&'&&76767676'&'&'07&767657'&'&'&76767677'7''7'776/7#&'&'&/76'&#'&'&'&767676767172763630%63654'&'&476767636'&'&'254'&#''&'&5&'&'#/74'&#''&5&54'&//17/'37'7'/'73#75##75'!'#37'#37!75'7#7#7'#?/37';#75%&#"3276'4'#"'&54763272#"'&5476"327654'&1                       @  '      -b    A  )   .&:DY'  "$% & ! 0/%)  !    #  >DZ)(A\+p112  " 1 .   %''5%    ?  $ '4   # tEM   6  2u DM 5 2U ! ;-6F1L6K()!J,!*" >>;?.?;>>>xB//BxC>><"8GX5$*+*6MT2!"(%>>>(NO1.&&=I/331C8+@/00-D?200/B  g  *       A   I     "      [       b  # &"!( "($,  !)N   "    <2  %TU%   .  /v R [" ?! 7 ' '! b@" :(  ! byqh 4/ HRQQ(QQR\K(/MeQRpp>e<4>>49lxA:064RQQWh{=-?'&47KK<<,,:7&&#6'1&?'6=4'61'1&?&'761'1&?&'61'1&7.'613'1&7&'61'#&74'761/&76761'1&?dddCC1DD!dddd " rZ9P5FeeFtHddH8P9^r;# "4dHFe12")%D_ !"#0(: 6.xy2;gA9bxyvӎ!%EO}'D #*G)mGHPB O&'H]w 75HjdeedDDDDdddd9-783j?Q8(eFGddGFe)8Q9x-(,IGeeGA?(,`" !S# ; Q֊-m*Uyxw>_b=yxvj!&<E|>\aHlGfH&$R!H#x9%&,) 7M?>Hgg 33"&%3"gzTUCCUvCg #5265##5TzCvUCC"  ,5>FS[dlu~ ".bvz%5!2514#!5!2514#!561321#76'5&'6?6127'1&7%'1&?'6=4'61'1&?&'761'1&?%3'1&7''#&7%'1&?761'1&6'1&63'#&'1&7'637#76137'1&7&>76&'61'1&7&'61#61'761/&76514'761%"32654&67'7>77.'.=463!&514;21!2>7>514#!"1'7!"&5146;&5146!%"3!!"3!73557#'ChhACg7Q4FefFxy2;gA9b^G)mGH&'HJ Hxyv _3 LXbK     -!((_0w 9PP98QQ%   D6EN@NO9dd7PSBHH.DB$+E6F)%E|HddH4O9fBBhhCwgwww@hgGCAAN8$dGGdJyxw>_bHlGfHH%H$yxv !\5qTL    0#q-,c(0a"#x*.EO $1OD$THK87PddP78GHYW6J'/FF/'I8NNOdGFe"7O@BBGgg{{yy&  $-6?KUZckw%-6?GPXemv6514'761/&7'761#61&'61'1&7&'61&>76'1&737%7#761'63'1&763'#&6'1&761'1&"13!2514#7'7''73557#'21#!"&514637"13!2514#%"13!2514#%!6!&=46"13!2514#!.'.=463!&514;21!2'1&?%'#&7%3'1&7%'1&?&'761'1&?'6=4'61'1&?!27'1&?6?6176'5&&w_0!(( -  7  "bK8 L_3 vxyP!!u"">+@wgwww5GeeGtGddG62""""""""49PPI""!!8DN@NO9dd7PSBHHH 3&'HHG mGA9b;xy3#xaa0(y-,#  5 # TL5n!v! yx""""OGGO?OON{{yyeFHddHFe$$$$""""O7#$7O"""" THK87PddP78GHYH%+HHgGlHb`>_yx S[lx$-6>GO\dmv27>'&#1321#!"&5146;&51467&67>7.'.&'.7>7>576'&7.7>747"3!2=4#"13!2514#761'1&6'1&63'#&%'1&763&'7617'1&7&/6&'&'61'1&7>761&'61&'761/&7&'61'1&?%'#&7%3'1&7%'1&?&'761'1&?'6=4'61'1&?!27'1&?6?6176'5& H_-c-/Q.GeeG{GddG/Q<9|QC00 EKHA;NcR6RoK7E @6,KJIDA- ( B.,r " YO?H 3&'HHG mGA9b;xy  `%bI7"eFGddGFe! 7R]Wyn  D*aD2 KAV I;M.[ECsZW:x*$$++$$ 3E; 0'E\####''''yxvi$hTZ\P-  N/*G"') WE ' AH%+HHgGlHb`>_yx Q]k"+4?HPYbjs{6'&&7676&2 3.'.7>76&'.'6'767672"13!2514#)"13!2514#1321#!"&5146;&51467&67>7.'.&'.7>7>5761'1&6'1&63'#&%'1&763&'7617'1&7&/6&'&'61'1&7>761&'61&'761/&7&'61'1&?%'#&7%3'1&7%'1&?&'761'1&?'6=4'61'1&?!27'1&?6?6176'5&S@A@L;i(': " '8ZH 7Y!U+7 Y'`1~B9b? V9<@ 5Xl%CC1DDhhgg/Q.GeeG{GddG/Q<9|QC00 EKHA;NcR6RoK7E @6,xxyvr B*T \:, N>r " YO?H 3&'HHG mGA9b;xy_%&%bD$ . :C0_   d9GH-0GJ6(\+(vC%,PC03*  -VDDDDghhgI7"eFGddGFe! 7R]Wyn  D*aD2 KAV I;M.[ECsZW:zyxvi$hTZ\P-  N/*G"') WE ' AH%+HHgGlHb`>_yx #/;GPYbgs| &/7?HQ]#+"13!26514&+"'#21#" #"514761'1&6'1&63'#&763'1&7&'761#'1&7&'6'614'61'1&7&'61'61&'761/&7%&'61" #67#"&5146;&54632321+"13:32514#*"32654&'1&?%'#&7%3'1&7%'1&?&'761'1&?#'1&?!27'1&?6?6176'5&f8-*HddHFeeF.+;$#g#xyvfOA$"E a)l'( N A _gC %b eMm9OO9rp7PP7k""ff""f`PppPNrrNH 3&'HHGGA9b;xy#eFHddHFe$'((&yyxveDOb2 E#!*(d%0N0D0)gk#*fQ>9N98P\]P89N&%%&H%+HHgGHb`>_yx ;CLU]fo{ '09AJR[dp%5!2514#!5!&'#5:32514#"#52654432+;21#'1&?%3'1&7''#&7%'1&?/&7'1&7'1&7#'1&7763 63'#&6'1&761'1&!"&5146;2#"&=46;&5463"3"&#"13:3#!!"13!&'761&'6'614'61&'61'61&'761&'61'1&?&'761'1&?!27'1&?6?6176'5&CggImffDDffccs7PP7 kFeeFXG&'HJ HL%  aAfO>vxy HddHj 9OO9rccffCCfflHhhC$"E)l'( N _gCq eHGA9b;xy@hgGJI@DDHccG]P78OeGGd2HH%HD0#!ObUDv! yx&dGGedO87P\GccHDD@JGgh E*(d%0NS)gl#*fHgGb`>_yx%  @HTX\`d &.7@HQYfnw%!254'!#''.'#&''#3267&67&54632>73267"3254.#"677%77'72321#!"&5146;&=46;"13!2514#761'1&6'1&63'#&'1&7%&'63767&'&'761 17 &'76&'61'1&7#'61&'61&'761/&7 6'1&'1&?%'#&7%3'1&7%'1&?&'761'1&?'6=4'61'1&?!27'1&?6?6176'5&~^ceX"Rh.@"t6x$OONZ[U[#!xчn9P5FeeFtHddH8P9CC1DDvxyv!_p6!L%)]-""2') !UH 3&'HHG mGA9b;xya]]a>\'; &'V]S ~K8U!T ,4>XX>5+ T?*E9:ONNONWvvWG9;IDDDDDDDDDDDDDQ8(eFGddGFe)8QDDDDDyxv$@ p5L2#"XCb@2!"!@IH%+HHgGlHb`>_yx,  37;?CGKOSW[_cgk{ #,4<DLT`l"3!2=4#'21#!"&514637675#!35!35!#75#7535#35'#'#'#'#3533535335%3535!53#!5#!5#376'5&'6?6127'1&7%'1&?'1&?&'761'1&?%3'1&7''#&7%'1&?&'61 7>#761561.561 1765761'61&'6%'1&7761'1&7'76337 #763 6'1&761'1&hhggSVFeeFtHddHZ+!/#ɼSG  $EHg hG$GDxy2;gA9b^GhGH&'HJ H=aGum&EdF MaG`Gbn_GFxyggggh!eFGddGFe!׈i#D!t~蜜嘘噙K2霜3"yxw>_bHGfHH%HJ>4UGd_m/$&`eM:45TG=`JGbnG yx !#4&'5#52zTCCUvD# '+/37;?dp| '/7@IU21#!"&514637675#!35!35!#3#3#3#%3#3#%3#%5!3#;#3#3!!5!53'#53'#535#5761'1&6'1&#76337 '763'1&7761'1&7&'6'615761 176.561561#761 7>&'61'1&?%'#&7%3'1&7%'1&?&'761'1&?#'1&?!27'1&?6?6176'5&XFeeFtHddH\* ΊGR%35ESWH˽5xy_Gbn `GaGgnFcd.cmaGOH 3&'HHGGA9b;xy!eFGddGFe!׈i#D!t?ZCVDDFCDNNDCF8yxQGbnG<`KG45:g`e$/_mG4>H%+HHgGHb`>_yx DNZfnw)5AJS_?2321#!"&5146;&=46;.76767&54632/#"'32"13!2514#"13!2514#'1&?6761/&74'761'#&7&'613'1&7.'61'1&7&'61'1&?&'761'1&?'6=4'61'1&?&#6 17>7&&'761'1&763 63'#&6'1&761'1&27'1&?6?6176'5&*)&0 rZ9P5FeeFtHddH8P9^r;# "4dHFe12#$,.24""X""!!u""H%5 ewO&'H: HG mG#*5}'D qE!%>vxydA9b;xy)(), -783j?Q8(eFGddGFe)8Q9x-(,IGeeGA?(,`FC%&&%%%%%iHG?>) 7&,:%#xHZ!$&HgGlHn|>\$E!&v! yxb`>_yx$  %2:CKT]evz~#-5>FOWco{%76'5&'6?6127'1&7%'1&?'6=4'61'1&?&'761'1&?%3'1&7''#&7%'1&?3277'&'7'7'77'7'>732671321#!"&5146;&51467327&67&54632'#"'32"13!2514#"13!2514#6'1& 7 &'761&'61#'61'1&7&'61&'7617 &'761767&'&'63'1&763'#&6'1&761'1&Jxy2;gA9b^G)mGH&'HJ H ) Dh?($K!#Rh.@"t6x$y5R5FeeFtHddH1R6yUzv#5[fR!W?>X'!",)+/CCU####%%&&O}s ')"2-C%)6!Lp !vxy>yxw>_bHlGfHH%HNV'' PM;8MNNNNNNMMOOMMO!U@*D9M7"eFGddGFe-7M}T#T!,4>XX>5N63,%%%%)**)r~r"!!j@2X)5L2#"8 pj@v! yx #+3;GS[cks 1' '1&7 &716 61 '1&77'61 /&776'1& '#&71&'1&'61'17'61 '1&77'61176'1&176'1& '1&77'6%'1&776'1& 63'1&63'#&6'1&761'1& 61'1&%76'5&9IIIIIIII7IIII97IJIIl/nlm  E11=0On}04OovxyL!xyIIII:IIII89IIII7GGIIEl0nkno  :11L1|w%1gYn!v! yxyx1!463"1yUCUxDzc254#""13!2514#"13!2514#72321#!"&5146;&=46;.76767&54632&'.?6&'.'#"'326'.'dddCC1DD!dddd " rZ9P5FeeFtHddH8P9^r;# "4dHFe12")%D_ !"#0(: 6jdeedDDDDdddd9-783j?Q8(eFGddGFe)8Q9x-(,IGeeGA?(,`" !S# ; Q֊-m*1533&1CUyCy5'52'zTDUyCv)5AMY'7'7>77%6>7>514#!"1"32654&'5'37'#5"3!2=4#"3!2=4#%&5146.'.=463!&514;21!261321#!"&51463n   zB$+E6F)%E9PP98QQwwwgBB4BB#hhggP97DN@NO9dd7PSBHH07P2FeeFtHddH3NNOEO $1OD%.*6J'/FF/'I8yy{{BBBBggggG"7OTHK87PddP78GHYO7"eFGddGFe v #/;y'%7'7'"13!2514#"13!2514#"13!2514#%5'37'#5&5146.'.=463!&514;21!261321#!"&51463"13!2514#+""""""""""!!wwwg"P97DN@NO9dd7PSBHH07P2FeeFtHddH!!u""3OONGOO""""$%%$""""yy{{G"7OTHK87PddP78GHYO7"eFGddGFe""""z$0u7.7>74776'&"13!2514#"13!2514#'1321#!"&5146;&51467&67>7.'.&'.7>7>527>'&#AA- ( B.,%%%%(''(I7"eFGddGFe! 7R]Wyn  D*aD2 KAV I;M.[ECsZW:  `%bzQ]k6'&&7676&2 3.'.7>76&'.'6'767672"13!2514#)"13!2514#1321#!"&5146;&51467&67>7.'.&'.7>7>5S@A@L;i(': " '8ZH 7Y!U+7 Y'`1~B9b? V9<@ 5Xl%CC1DDhhgg/Q.GeeG{GddG/Q<9|QC00 EKHA;NcR6RoK7E @6,_%&%bD$ . :C0_   d9GH-0GJ6(\+(vC%,PC03*  -VDDDDghhgI7"eFGddGFe! 7R]Wyn  D*aD2 KAV I;M.[ECsZW:z >JV"32654&;21#!"&5146;2#"&5146;&54632321#%"13!2514#"13!2514#PppPNrrmFeeFtHddHj 9OO9rp7PP7""""##2##beFGddGFeeN98P\]P89N&%%&''''z R^"3!2=4#!!&"13!2514#;21#!"&5146;2#"&5146;&54632321#"32654&hhggklH/MwCC1DDmFeeFtHddHj 9OO9rp7PP7dccbggggJKICDDCeFGddGFeeN98P\]P89Ncccc #PTX\`l"3254.#"67>732671321#!"&5146;&51467327&67&546327%77'7"3!2=4#''.''"''"13!2514#OONZ[U[#!x%Rh.@"t6x$y5R5FeeFtHddH1R6yUzv#5[fR!W?>Xԇnhhgg2#&I9I?hF:2S.2DCC1DDNOONOVwwVG9;I !U@*D9M7"eFGddGFe-7M}T#T!,4>XX>5DDDDDDDDDDDDDgggg?[': &'W]R @DDDDs 37;?CGKOSW[_cgk{"3!2=4#'21#!"&514637675#!35!35!#75#7535#35'#'#'#'#3533535335%3535!53#!5#!5#3hhggSVFeeFtHddHZ+!/#ɼSG  $EHg hG$GDggggh!eFGddGFe!׈i#D!t~蜜嘘噙K2霜33#6#52΋DTzDxs'+/37;?d21#!"&514637675#!35!35!#3#3#3#%3#3#%3#%5!3#;#3#3!!5!53'#53'#535#5XFeeFtHddH\* ΊGR%35ESWH˽5!eFGddGFe!׈i#D!t?ZCVDDFCDNNDCFzDNZf?2321#!"&5146;&=46;.76767&54632/#"'32"13!2514#"13!2514#*)&0 rZ9P5FeeFtHddH8P9^r;# "4dHFe12#$,.24""X""!!u"")(), -783j?Q8(eFGddGFe)8Q9x-(,IGeeGA?(,`FC%&&%%%%% # ]gs3277'&'7'7'77'7'>732671321#!"&5146;&51467327&67&54632'#"'32"13!2514#"13!2514# ) Dh?($K!#Rh.@"t6x$y5R5FeeFtHddH1R6yUzv#5[fR!W?>X'!",)+/CCU####%%&&:NV'' PM;8MNNNNNNMMOOMMO!U@*D9M7"eFGddGFe-7M}T#T!,4>XX>5N63,%%%%)**)42 1' '1&7 &716 619IIIIIIII7IIII97IJIIIIII:IIII89IIII7GGIID'=IUam&5146.'.51463!&514;21!2161321#!"&51463"13!2514#%"13!2514#5'37'#5"32654&>7>514#!"1>7%>#P97EM@NO8dc8PTBHG07P2GeeGtGddGgghh#BB5BBwwwg19OO99PPA$,F6E)$EeW#8OTHJ98PccP89GHYO8"eFHddHFeGhgghBBBB#zz{{#6J'/FF/'I8E45BC55D ,iu}"13!2514#'''.'#&''"13!2514#>732671321#!"&5146;&51467327&67&54632.#"67"3254DD1CCD2#&J8I>iF82S02gghh2Qi-@$r6x$y5R4GeeGtGddG1Q6yWxu$7ZfR!W?>XNZ[T[#!xNNNDDDD@>]': &'V]S hggh!T?*E9M8#eFHddHFe.8L~W T!*5>XX>5VwwVH8;HONNOD DR^1321#!"&5146;&51467&67>7.'.&'.7>7>5)"13!2514#%"13!2514#2 3.'.7>76&'.'6'76767&7676&6'&/Q.GeeG{GddG/Q<9|QC00 EKHA;NcR6RoK7E @6+hhgg$CC1DDZH 7Y!U+7 Y(`1~B9b? V9<@4Yl&;i)&: " '8IJKI8!eFHddHFe"8Q^Wyn  C*bC3 K@V I:M.\EBtZW:hgghDDDD'_   d9GH-0GI6']+'wC%,PC03*  ,VIcD# . :C1_+#$+*#$D'd254#""13!2514#"13!2514#721321#!"&5146;&5146;.56767&54632"'.?6&'.'#"'326'.'5dddDD1DD!dddd!! sZ9Q4GeeGtGddG8P9^r<#"4dGGe2 3"(%D_ !"#0)Hq 6ddddDDDDdddd"61374k@Q9(eFHddHFe'9Q9x-*,JFeeFB> +a$!R$ ; R^r,m* D'#)/37;?gs!53#!5#!5#335353/#!35+3'+!35+'#'#35#75#21#!"&514637675#!35!35!#"13!2514#γoa^ H <;  ɽWVGeeGtGddGZ,  gghh[͜ΘOɜ70 eFHddHFe ׇi"D!thgghD' R^"13!2514#!!&"13!2514#;21#!"&5146;2#"&51463&54632721#"32654&gghhkmH/MvDD1DDmGeeGtGddGj 8OO8rq8PP8dccchgghJKIDCCDeFHddHFedO98P\]P89Occcc9!34'&'&'&567676767616763232#!"'6367676453 )&'!)      )3&  8`   b!3!2767632#!"'676767>767>7>767654'&'&#"#&'67676324Q) J"  +" );#"*''*F(*:?C.1,'#5 <,V3.       ,$ !."GJ)"!'  QB44))2MH* 4$H63a!3#"'&'&'&'6726767654'&'&'"&'&547>76767654'&'"&'&547676324:433 ,)438"6-*)3 1K7//#')<&#),*%((L9%%/""::?=99%%1/ #43B5-, !09  &+-8<9(A@+*$,/*)/0=C76 8<!"'6767676763232+2+"'67676532+/## *!G=HA u u7 !v54:16>?CG($>?N>XME=%  s3  FP!3632#"'&'&'&'476326767654'&'&'&#""'65672#4OTa433$&%%EDM2(*$%/+*A732! !#,E?<oW?w 9IM^=/",-9613-. !+20+3N*)% *'#   6M!367632#"'&'&'67676767672#6767654'&'&#"4<4=>9=33!!*+<5/Q@A''31E@KH> bQQ/0..1-)&'(02021-.>B9=(*''OLrEjRQ31 34WWZ?? !40J6*(+!3!""547465676763!2#"'67>74( ,8Z- "   #1! ,V!32767654'&'&'.765&'&'&#"&'65676767632#&'&'&56764O0000U483$!!6#D((')+'14#$-0.I;: !&'2('FIV^7676322767654'&'&'"L_>43 &$66=   %$72&( ! 2(*+RS:9\:76))    (NT*.1.J445)'I!!&'&#2765#&'&'&'47676324'&'&'&'4767063632+"5' $)D//,+AA0.-11A78 "#$;@WJBC%&1    &;!!67654'&#6767632#&'&'&54767632W;44b12 55C//- (@B=G=<$$((FEU7+,?6LW,'4&>@G&'  6! <:LRED(( !&>0*:!!#"'6;54767632&'&#"32++"5476765:?,(' /` ^ "`$H"' X u   f!!2767654'&'"101&'&'&'67676763:3:;2+#"'&'6723276545(%&'S0#&"!'/IAB!#20J$j Y 1B]`r_=?2 -.?G;9+,2Y;<-3/8'+,$$C8>1*+&&  %$)946&&'-[""/H;EH!!+"56767654'&'&54763267632+"547676=4'&#"q   d ,..,4-+  %&6R&   $v  "'/.?$   "6!59=4'&'&'&547676767676763232#!"'6367676333i53 )'&!)     '4ψC%   8`   >8[_c!2767632#!"'4767676767>7>767654'&'&#"#&'6767632333( J#9" ):$!*'(+F();>C/1,'%6 ;-]+2ψC  %=$ !."EL*! ' QB44'(3MH* 4$O/6+]ae#"'&'&'&'6726767654'&'&'"&'&547>76767654'&'"&'&54767632333431 )*438!7.((3 1K7/-$(*;& "(-)&'(L:$$/""::?;;9%$00ψC!66?5--  " .9 &,-8=8(A?,*% -1()./>D66G.8<@!"'6767676763232+2+"'67676=333, GCBC v v8 !6&-"$ψC/(!A?N>9=35"++<5/Q@C%'23CCIF? cPS./ψCZ?@!34F3-(0,-?@;<)*''OLrEhTQ33 35VXR&*.!""546565676763!2#"'767333 '  ,8ψCZ,   !#1!~);RVZ&'6676767632#&'&'&5676765&'&'&#"2767654'&'&'.333&$-0.H;<!%'2&'FJU_<=77ۖ&('),)22 O000.V585!" !6#BψCH$&" ')/2')P=36!!/0;D::iOa*""(A'({54A@-,&%3)!  G8LPT#"'&'&54767632&'&'&#""'6767632+"5"'"&#"6767655!5!}#0367,-$$DFV&'#'! *$"&,->86#" H# XDD !3*##:%'44//- 23M$ !&&J4$ 0CWCCG8<@2767654'&'&'"'672#&54'&'&'676767632%5!5!%$70(( 2%--!M^;74 &(26=    }ݰS,,2.J445)'S:9[<56*+     (WCCG;?C4767672&'&'&'&'&'"616367632#&'&'&5!5!#"@?N!+'"   *$%(&,c2 #9<>I99 "YJBA(' #    55J:/0A :! YJBB%'1   % :;`i56+yWCCG+7;?6767632#&'&'&54767632'67654'&#5!5!` 54D//. )?>AJ:<$$()EHR4.*?3OK=44d/2"G&& 8 <:MREE'(!!'=0(",'5&>>WCCG6:>#"'6;54767632&'&#"32++"54767655!5!:?, ('  /` ^" G0%J & X u   WCCKFbfj"'&'&'67676763:3:;2+#"'&'672327654'2767654'&'"01015!5!E#3GCC !40J$j Y 2B]\v_=?3 -.?G;95($&(R0#&""FW%$C9<2*-#% &$*944(&'-[!"0F  ;EO-,3Y;<-307(+WCCGDHL+"56767654'&'&54763267632+"547676=4'&#"5!5!q   d ,./+6++  %%7RE$   #w #'..@"  "7@WCC@!!4767672&'&'&'&'&'"361:367632#&'&'&#"@?N!+* )%%(&,c2 !;?;I98!"IC@(' #  46J81.B 9 !=? 4 R s     $ < ] ~ Chess MayaChess MayaRegularRegularChess MayaChess MayaChess MayaChess MayaVersion 1.0 Version 1.0 ChessMayaChessMayac "$%')./012345679:;DEGINOPQRSTUVWYZ[uni001Duni00A0uni2206glyph64 bɉo1C $zvvzzzzsszpychess-0.12.2/pieces/ttf/line.ttf0000644000175000017470000005624012641567764017314 0ustar tamasusers00000000000000pFFTMz[GDEF&[h(OS/2*Tx`cmap(pgasp[`glyf_`Pheads6hhea B4$hmtx4+Nloca2maxpX namecXqpost5AZXvhea[$vmtx5d[Z%_<+C wC wDc6 "H  U  R fhf  ff9 : b: L G-(jN\@1Sx    " & 0 : D !""""""""+"H"`"e%1Rx    & 0 9 D !""""""""+"H"`"d%[W@&&߼TC,ݠ6\Z^hnvx  !"#$%&'()*+,-./0123456789:;<D=>?JEASKCMYWN[XZ_\]^`aOBTUR@  !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`a(<Th|"0@Zt. <6T.Xj|LL\@(Nf  : | !d!""d""#*#V#t#$.$\$%%$%%&X&&'B'x'((B72#"54   4 !!!%3# 1gh4bj45!!!!4b24 !!#52gg4R !3!!w6#!!6b !5!!!z 2 !!!#532U 72#"54   #'+/37;?CGKOSW[_c!#7'33#!333333333 33333333333aXY[Z224! >$ x FnNeg 2bl ` a :bd``DcZf`LbQaYXY123c b ;b' _w ^B``obM_`e| 0r   7i =^LVRR  ! nnRmn  !!53  5ibf%!!x!!7#!!jhx!!h3!fj3!!xgzjz!!zj5!!gzi! #'+/37;?CGJMQV[`fkpuz !  33333333 !!!!!! '37!# 6&5#7##67#67&'&' 5#'#'##6nnLbQ`fDcZ`` :bd a eNNKGnMFM L x[NYa 0 G #_4^""e1/).d.L=b7. @]2\(Ag#b/!`ARmn aLV=^  7i `eM_b`oB` ^ _wYYXabA1^.!&fR#^0  1BJb#1b2'>c2Z%AM0 F )9GkA654&+6' 5 .6 7>' >& '.7&546;&714'&#327653#"'&50&'47676324767676321#"'&'&5:1<32767674'&'&'&#"%*#4&567>7>7632#"'&54767>7>7>76#&'&'4&547676727:327#"'<567'27676327#"54767632>?!#&'&'4&547676727:327#"'<567'27676327#"54767632>?!#&'&'4&547676727:32#"'<567'27676327#"54767630>?VɌgggE9bvuEWUBsv`;8d8bwxAEvwa;9ȍggg[&j0%ma<="!10=Q;5 :?JL^r^i4:::_brrae8=j%*GNY@SP'1,.92EYHQ&,r!-(   #=$  ..H;4!&GBfcK:H (E (TN"jYU- $ )--%) (   0'w}.H;2#$H@geI:H(= (TN"jYU/ $ *.-%)-   0'w~/G=3"$H>ieI:H( (SO"jWW/%  *.3) (  0'wȍVgh g X,Sc;9EDwuDF9ab;9EDwtDE9aȍVghC##$>;rI?5,"YKTLO:9#6CZbq|[f7338e`wUAN-0&.CDf+I42-)2FCp3)  &   "!;:3 "+M>C$ *=* %)/ KCB3.f %  !2HJ?,'I&  - 03!00 :.* %'1 LBA4.f ! !2HK>,'I&  - 03!00  :.* %'1 LB?6.f   !2HK>,&J& - &03!8(  :. 4 !43)!&xdkRPb- $(,048<@DHLPTX\`dhlptw|!!!! ! ! '3#35#'37'3 '3  '35'73 333333 575  #7#7# 3#%3#%#53#53#53#5 3 5$9?$|a#}c[ /c2e36A1mg0R0b-0^1`yH`1ta"10bd``DcZf`LbQ  aXY44etd(M`bab]^CbdCeebbNeBh "_$^bYW2c06b3mW1R2W-1[1-I``0t2`<0 =^LV`b^_Jd^Sb?aYX0e50et)0b^Pc`b`:ebM_`egf  3"%7 x!bR 2 #5)!6 6  $(,048<?CGKOSW[`cgkosw{!!5!!! !!!!#!  !!! 333#3#373#%73#3'353'3###3'355 ' 7 7373 #7#7# 3#%3#%#53#53#53#5 3 5rnvrM:~:yJGJGN$zLbQ`fvfewc^U```\bb_Ua_U`Abftg~cbPes2[M'1#&bì?m5()* { a8a aXY44etd(M`bab]^CbdCeebbNe  F")+*! LVussT\TT^b@rbQcs2'Yy;4^v;bc` `<m``2 ?eN9)_@L:aYX0e50et)0b^Pc`b`:ebM_`egf4 #'+/37;@CGKORVY]aeimqux}5 !53#53#53#5#'3#'#3##77!# 3377'55'3#3##'353'3#373#%73#3#33 33 !!5!!!!!% ! !!! eNNbbeeCbdC]^ab`beX;1`Z6D`%s2_#c,b?CKI>y!>=>aYX0e50et)0b^Pc`b`:ebM_`egf0$(,048<@DHLPTX\`dhlptx|!!!#!!!!!!!!!'3#377'55'755'335'35#3'#35'3535 #''3 333 #7#7# 3#%3#%#%3#%3#53#5 3$y#$ $$ 3l[ fds2cQ[aE \ rfsg_ `rba'`s`zasa"'`sbtat`t`2dvcYf`LbQaXY44etd(M`bab]^bdeebbNe!C5 Ys2Qccbbb^__^dWf\ 6a`df q^ q(bira`s``r)a`tsz``#rgerLVaYX0e50et)b`:ebM_`e24 3#524& R2 #'+/37;?CGKOSW[_cgkosw{!!!!!!!!!'3#377'55'755'335'35#3'#35'3535 #''3 333 !!#7#7# 3#%3#%#%3#%3#53#5 3 Y2U2Ya 3{[ fds2cQ[aE \ rfsg_ `rba'`s`zasa"'`sbtat`t`2dvcYf`LbQ 2aXY44etd(M`bab]^bdeebbNe ZZZYs2Qccbbb^__^dWf\ 6a`df q^ q(bira`s``r)a`tsz``#rgerLVaYX0e50et)b`:ebM_`e+  $(,048<@DHLPTX\`dhkptx|'3#35#'37'3 '3  '35'73 333333 !575  #7#7# 3#%3#%#53#53#53#5 3 5[ /c2e36A1mg0R0b-0^1`yH`1ta"10bd``DcZf`LbQ^_ aXY44etd(M`bab]^CbdCeebbNeYW2c06b3mW1R2W-1[1-I``0t2`<0 =^LV^`B`b^_Jd^Sb?aYX0e50et)0b^Pc`b`:ebM_`egf/ #'+/37;@CGKOSW[_cglptx|5 !53#53#53#5#'3#'#3##77!#'73'3'3'3'3'753'3'3'3'35'557'333 !! ! !  eNNbbeeCbdC]^ab`b=!>I>yrCK$bW#c7%s2`D6;1`>eC`;f``D[`ɑFE} nFD"ߙ@Di&-rn55//LJeabZcV8xK!!+&'&'&'&5367654'&'�#"#54767632hsk((TVO77&($"4<)) 13mN//x2!&%BBYMK#%fKLuu--JKj$K+,64h{><"!* ,,Z>+VT"!_`XV$Gx!!3##!5#h#aaw K\Kx'!! #"'76767654'&'&#"!!h2J22QRayx2^OJ32>HU )TY#7!`_ ZW6B0/^,FMs5<$%?=Z[>@^Rz2!!6767654'&'&#"#"'&'&'6767632373#5H) $F/09E8:&33л3e*+Din;"!'D&$45[lwW**')1q Rz7!!676754'&5&'&#"3367632#"'&'#  &2####/#˺0/=SA@ #45A:56z9y9I'(<;h[6P6J32%&q<#%HGfvf10)*;Rz4!!6767654'&'&#"#"'&676763233#5 (, &$ 8;Bh2J ?:J;31z5+A !%&AJ}>((^m:9##>Rz!(!!327653"'&'&'4'!%3#"y1" ++?@PYBB%'$DEco6z10cLN+-Z\5<TUw~}87Rz!!#5347632&#"3#]]:8U;\0&&zguDC$/z6!!2765#""'&6767672753#&'&5332=DEp- (}~?>!!35Hp==?tLMvlz][[ZZ"$HW{ {}sq&' x _^/1IHRz!!336;#4'&'"ݻ:7`2pzq WWBT![- !3!!!##w^ʔ 9*!3!!!!654##47676;wwgoh?ED~ nEC!ߙ@Di6rn55..MJe_d]`Q=N!3!!+&'&'&'&5367654'&'�7654#"#54767632wdk((TVO77&)$$2=)) 13mN/.y2!&%BBZLK#%fKLuu-0GGnK+,66fvC<"!** ,,Z>+VT"!_`XV$( !3!!#3##!5wJaav;K\+!3!! #"'76767654'&'&#"!!w1J12QRayx2`NI32> 2خp4'']Z '*6'  !3!!!#!ww0U 9'N!3!!367654'&#3254'&#5&6763!&'&'&'4'4&5476w|/2Ge :wg@>й5c+)Ehn:$ ";!5!!!3367632#"'&'#676754'&5&'&#"º10DE!!_9z#щvpVT0;:?N^cc 8!5!!!#"'&676763233#56767654'&'&#"{89Dg3K?:J;31 (, &$ z?(']l:9##>_6-A !&&@J}?;!! ,!5!!!3#"327653"'&'&'4'!o6y1" ++?DL\?B%'$DEzz7910dNN +,Z^5<TUw~!5!!!#5347632&#"3#]]:8U;\0&&zfuDC$/*:!5!!!"'&6767672753#&'&5332=2765#"o(}>>!!35Hq<=?tJMvlCFp. z{ ||sq'& x _^/1HI[]ZZZ"$HT!5!!!336;#4'&'"޻:7`0pzp WYCT! [Rz"!!#"'&'6767632#&#"6GK:<BB|L>DE!!_8z$ъtqVT0;:?N_ea  4 R s     $ < ] ~ Chess LineChess LineRegularRegularChess LineChess LineChess LineChess LineVersion 1.0 Version 1.0 ChessLineChessLinec "$%')./012345679:;DEGINOPQRSTUVWYZ[uni001Duni00A0uni2206glyph69 bɉo1C o444 z44 n  n   y t zzzzzzzzpychess-0.12.2/pieces/ttf/mark.ttf0000644000175000017470000007207412641567764017322 0ustar tamasusers00000000000000pFFTMzs,GDEF&s(OS/2@x`cmap(pgasprglyf^`h headd~6hhea >4$hmtxzk&NlocamaxpX name#npqpost5Aqvhea sH$vmtxX.slg2_<+C C Dc! "H ffc111{w-~-LL~DDDdhDTDsi[WmWsi[WmWjN\@1Sx    " & 0 : D !""""""""+"H"`"e%1Rx    & 0 9 D !""""""""+"H"`"d%[W@&&߼TC,ݠ6\Z^hnvx  !"#$%&'()*+,-./0123456789:;<D=>?JEASKCMYWN[XZ_\]^`aOBTUR@  !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`a:D JZ p|FT 2 T v P4F ,X LpR< , !7!!67!!>%!&'!&-& 5!5%!5%!5%!5)!!!!!!!!!!!!!!!!!@ (@GC0gERLgayO}eyTfDEwDIHD"D32D"D#D"!C#D,D53DDC$!#DDDDCHDCDDDCDDGDDD!!Yk%MY]u ,08H[mq7676'&'&7676'&'&7&'&'&7676766''&'&'&704102167676'6'&'&76767676767'&'&'&76767676'&'&'4'&'"3767637676565'"'&'&547676763'&'&'6?'743816767676'&'&'&&76767676'&'&'07&767657'&'&'&76767677'7''7'776/7#&'&'&5'76'&#'&'&'&76767676016776363"%436'4'&'&476767636'&'&'254'&#''&'&5&'&'#/74'&#''&'&5&'&//#7/'37'7'/'73#75##75'!'#37'#37!75'7#7#7'#?/37';#75%&#"3276'0&5#"'&54763272#"'&5476"327654'&                   @  &    *d    A   )   +$ 9 D"Z&  !%!&! ! 3,(,  #   " >DZ)(A\*q112 " 1-    $'(6%    >  % '3     tEM!  6  2vEN 6 2U ! :-6G2L6K'*"J-!*#>>;@.>:>>>xB//BxD??;#8FX5%++*5MS2"")&>>>'OO/. &%=J/332B8,?1/0,EA/101A   h  '       B    I      "    \     b! $ &"!(# '%,  !(O      = 0   *RU#  !,  /x  R [$ ' "|?  7 &  '  b?" :) '   byqg 3/ HRQQ(QQR\K(0NeQRqq=f~=5>>59lxA:064RQQWh{=-?&&46LK;=--;=MJ6445IS9;>#$69 !! 98"#{ !4632#"542#"54xO9ehhgRhhg7Phhhhhggh#  &,27=CIOTY^chmrw{-67!>767%!&'%!.'!!.'!!.'!.'.'!!&'!%.!5%5%!5%%5%!5%!5%!5%!5%!5%!5%!5!!!!.'%5!!!%!&767 &'%&6'&'&47676&7626&"R =( ; ,d T} V2 vA0]22 ] >n+L-j1!!4m d%MM4.MK BB@NUOW! ! WOUNAD$C2H#D D"D$@D'DD""D"D%C.D(D%D!#D)C*D&DDDCHD   DDD+KTYMCaNFI:76y! ! YQQY ! !y67:;wz 3"&"5432%"5432u8O#hhhhhgOhhhhhhhhz #5"54327"5432P7dhhgRhhh9Oyhhhhhhhh # ,PUZ_djpv|!&547&54632654! "32654&'&47676&7626&#"&6'&!!&!!&!&!!&3#.3#.3#>3>%63#!%'!!'!!!5!557#577!5%!5#5'5%5#5!5!'!5!7!5!%!!!!IwehC+srll9OO98PPRBcARQ/:!!:QE>{ZBPNVL4 *V+g0+O zE9 "!{{Pi6zO<9$/>YY>1wɩ""""_AQQA_?kq?/D!hD.rD3vCaD$zD"A uD$zDDDDD)D%D DGD%*D*DZ&G#D)DDC|DDDCDCD# "(-27=CHLPTX]ciouz5!!!!!5!!5!!5!#5%57'57#5!5!5#575!5%!5!!!!!%3#%673>73#>3#.'3#.'!!&%!&'!!&'!!&%&47676&7626&#"&6'&!&547&54632Si {"! ӎE97#  0+OyI\8 @|VBPN{{ERBcARQ/:!!:QIwehC+srgDCDDDADCe)D#D&G*D*DD%g D!%D)DDCDDDDDD$A "D"D$CD3D.D!j_AQQA_?kq?6zO<9$/>YY>1#/5;@FKPUZ_ejqw}6'&%.''&5467$7%!5!7!5!75!7!5!75!%!5!'#53'#537!5!%!5!-5054'!%.'!%>7!-%&'!%.'67>'!%.'!%67!%6?'.'3%.'!!!!!!!53#%!!gm mn lI!!\4r-^Ez*yY?VV??VV??U"=,u>g"vy5 $.lzwr/T8r 1KS " 1R#+   =1<;;=- !LHFFewHLbmFHllGHlmFD!yC"xD(lD"yDbD-qC-qD!hD]D$D,D$C #DDD  \D"@.D*D"D DVCHDVDDDD# $)/5>CIOV[afkpuz%!!%3#!!!!5!!.'!.'36?67!.'!>'!!%.'>%%&>7!.'!054'!%5!5!!5!#53#53!5! 5!!5!5!!5!!5!'&76454365454354#547>7%&76776$ %.''&5467$712 =  #+R 1T  K  1r8r/Tz.'M y5g"Tu9=%gi ig 2T]]\\]`Y\]]?Z]A6g9+`ll!I!!\4r-^Ez*yY?VV??VV??UDDDDD2DC D"D*D.D"@DDD D #D$CDSD,D$DD!C-D-DD"D(C"D!t989:dccbbcdcabca_?_m Oj  fV0jjd !LHFFewHLbmFHllGHlmF#  %+06<BHMSX]bglrvz~%3#53#53#!!!!5!!5!!&'%&'!.'!&'!>7!%.'>7!%5'!5!'%5!75%7!5%7!575!5!>7!3#3#3#!!&432U js-v>  s t~\Z y}q19Jx"r F  @$@A|DDCDDDCe4D0D#D+GDD"DD |D)lDkG#fDYD[DD+"DDCDDGDW6A#(,04:?DINSY^djpv{!!&432"547>54#"#!!53#53#53#%>7!)5!5!5!5%5%%5!!5!%5>7!.'>7!&'!%.'!%&'!%&'%!!!!!!!!3#3#3#@$@A|fh'UgkYey   rx"9Rq}y-Z ~ts >  -v jsU6Ag0!=or< +ghhDDC"DDDDDG#DD)D "DDD +G#D0D4DCHDCDDCDDGD # $).4;AFJPU[afkpu{3#!5!'%5!'!5!'5!'!5!'5!'#53'5%#&'3%&'%!#5%5!3#4&7%%47!%467%>7!%67!%67!%673'6?%%!.'.'3%.'%!!!!!!!!6$&!67667&&'.'.DDY d ukG  /BB8#&UKQ  D&VcP(CClxr \@  ֟C= .NSQ 'b[L2+bA ٟBa,1es*@F:&34%;E@+p_3DD yD dC"zD!eD"zD/sD5yD h""(o3#D eD!D!D)D&C"D1D&D)D.DD& 6"D!D"DCHDCDDB-BOfB-"5QeEN66EeQ5h# #'+/37;?CGKOSW[s!!!!!!!!!!3#3#3#3#3#3#3#3#3#3#3#3#3#3#3#3#3#3#'!4;234;234;24+"!4+"!4+"3#%3#Ug$geiehfg3 4C2!4D45UCHDCDDDeDDDCDDDDGDDDDCDDGDDDCDDDDGDDDDCDDGD ciiCkgAii6667568DDD 3#522#"542#"547P#ggh!hhhPOhhhhhggh##'+/37;?CGKOSW[_cgkosw{3#%3#!4;234;234;23#53#53#53#53#53#53#53#53#3#53#53#53#53#53#53#53#53#!!!!5!!5!!5!!U$geiehfgDDDQciiCkgAiiDDCDDDDCDDDCDDDDCDxD#DDDC# 04?CGLQV[`ejou{%!&767%276&76764'&'&6'&"&6!!.'%5!%!!5!!!5!5!5!5!5!5!5%5!55!5!%.!!&.!.!!.!!.%!.%!&6!>%6 d%MM4.MK / RZT[!"!!YSYQj1!!4mL-s+> ]2 2UA0vK2 C} Bd ;   ( %R ˶+KTY===99~"!"!\TT\!"!"~99#Dg   DDDCeDi&D*D)C!#D%D(D.D%C"D"DWD"yD[D'z@uD$pD"{D rH#eC2uD$zA# %+06;@EKRX]aglrx}6$&!67663#!5!'%5!'!5!'5!'!5!'5!'#53'5%#&'3%&'%!#5%5!3#4&7%%47!%467%>7!%67!%67!%673'6?%%!.'.'3%.'%!!!!!!!!L2+bA ٟBa,1LDDY d ukG  /BB8#&UKQ  D&VcP(CClxr \@  ֟C= .NSQ 'b[B-BOfB->DD yD dC"zD!eD"zD/sD5yD h""(o3#D eD!D!D)D&C"D1D&D)D.DD& 6"D!D"DCHDCDD!##(,06;CGKS[`fjnsw{!!!!!!&'1&3!>!!76!!!5!!'!!!!!!&'!66716-73!7%617!!5!1'%5%7!5!75!75!7!5!'!5!/!%!5'%5!7!5'&'!'%'1' '1&7 &716 61!!!!V X/%#~FDzCD#fyIWDe :  GMI5 @ &k)PI|CA%g2EEXc)8 Zk2 a 1?DCE3C9IIIHIJHHIIIIIJHHCHDCD  D"wD$DDDDD"fDGDDD gC`D CD75D C"eD&DHDDD%hDDDDDiDcD 3  3ACECIIIIIIIJIIIIGGKH DDD-%2#"54iiijhhj~zJ <%!&767 &'%&6'&'&47676&7626&" d%MM4.MK BB@NUOW! ! WOUN˶+KTYMCaNFI:76y! ! YQQY ! !y67:;-.2#"54iijiiii.2#"54ijjiiiii" ,P!&547&54632654! "32654&'&47676&7626&#"&6'&IwehC+srll9OO98PPRBcARQ/:!!:Q6zO<9$/>YY>1wɩ""""_AQQA_?kq?"#9&47676&7626&#"&6'&!&547&54632DRBcARQ/:!!:QIwehC+sr_AQQA_?kq?6zO<9$/>YY>1L/6'&%.''&5467$7gm mn lI!!\4r-^Ez*yY?VV??VV??U<;;=- !LHFFewHLbmFHllGHlmFL'V^%%.''&5467$7454365454354#547>7%&76776$'&76gI!!\4r-^Ez*yY?VV??VV??UeT]]\\]`Y\]]?Z]A6g9+`ll!i ig  !LHFFewHLbmFHllGHlmFccbbcdcabca_?_m Oj  fV0jj989:!!&432@$@A|6A("547>54#"#!!5%!!&432@h'UgkYe$@A|g0!=or< +ghhh6Aq/7&&'.'.6$&!6766es*@F:&34%;E@+p_L2+bA ٟBa,1/"5QeEN66EeQ5hB-BOfB-/4+"!4+"!4+"!4;234;234;23 4C2!4D45u$geiehf26667568gciiCkgAii72#"54ijjijhhj%!4;234;234;2$geiehfciiCkgAii~zJ 0%!&767%276&76764'&'&6'&"&6 d%MM4.MK / RZT[!"!!YSYQ˶+KTY===99~"!"!\TT\!"!"~99q6$&!6766L2+bA ٟBa,1B-BOfB-tu 1' '1&7 &716 61IIIHIJHHIIIIIJHHIIIIIIIJIIIIGGKHDJ ,P!&547&54632654! "32654&'&47676&7626&#"&6'&SIwehC+rrlm9OO98PPSBdASR.9!":Q6zO=9$.?YY?0wʪ!!!!`APPA`?jp?Du/%7&&'.'.6$&!6766Zh&:>5"./!6>9'fUoEx- X9q;W,yc#6QdEM66EdQ6gC-COeC-D'V^%%.''&5467$7454725454254"547>7%&76776$'&76_I!!\4r-^Ez*yY?VV??VV??UeT]]\\]`Y\]]?Z]A6g:*`ll!j ig  !LHFEfwHLbmGHlmGHllGcdabcbd`bb_^?_m Nj fV0jh 9889d` <)&767 &'%&6'&'&47676&7>6&"d%MM4.MK BB@NUOW! ! WOUN,KTZND`OGI976y! ! ZPPZ ! !y679;D 3/%4+"!4+"!4+"!4;234;234;23 4C2!4D45u$geiehfg/666756giiDkgBigD (%"547>54#"#!!5%!!!&432rh'UgkYe$@A|g0!"gggcccdkhhggeeeeggghgggcccdjggghhhgcccc)?1 c i'/7?GOs432#"432#"432#"432#"432#"432#"432#"432#"432#"432#"6767654'&#"#6325!!51ggggcddcggggeeeeggggggggcddcggggghhgcddcS)%?I$%f>0( <+SMR`gggcccdkhhggeeeeggghgggcccdjggghhhgccccEsh&#&/;% "!G #.G33 47+P2?2'Df7pUULtK'gggcccdkhhggeeeeggghgggcccdjggghhhgcccc^C'(J Y(H>#X #$'|4D#,s@;_0< '/7?GOZ_432#"432#"432#"432#"432#"432#"432#"432#"432#"432#"33##5!55!#1ggggcddcggggeeeeggggggggcddcggggghhgcddc|f\gggcccdkhhggeeeeggghgggcccdjggghhhgccccYb  '/7?GOx432#"432#"432#"432#"432#"432#"432#"432#"432#"432#"727654'&#"#!!517632#"'&/1ggggcddcggggeeeeggggggggcddcggggghhgcddc~t&')Jcm  <[E:9HIy\BGgggcccdkhhggeeeeggghgggcccdjggghhhgccccQb(-H27OY>)(C6=vNO*-Y* W'/7?GOw432#"432#"432#"432#"432#"432#"432#"432#"432#"432#"67632#"'&'&56767672#&#"327654'&#"1ggggcddcggggeeeeggggggggcddcggggghhgcddc3<03pDD$$+7A@4'c(,J{eA; fw$-'5P//,-LO20gggcccdkhhggeeeeggghgggcccdjggghhhgccccEGFoD:-$$[ڝj?,H41lx1-$,46LG3320 m'/7?GOW432#"432#"432#"432#"432#"432#"432#"432#"432#"432#"!#!1ggggcddcggggeeeeggggggggcddcggggghhgcddc8~?VgggcccdkhhggeeeeggghgggcccdjggghhhgccccZL W'/7?GOv432#"432#"432#"432#"432#"432#"432#"432#"432#"432#"&'&'&54767632#"'&5476753765&'&#"727654'&#"1ggggcddcggggeeeeggggggggcddcggggghhgcddc#":AHQ?Lt;OzCW)R150G& 63EK273,AA+43)BP.$gggcccdkhhggeeeeggghgggcccdjggghhhgcccc2# (=20%C$%p9  7[>P5@nH5$)G'$eF)%&'#=$&<8'.# i'/7?GO\2#"542#"54'2#"542#"54'2#"54#2#"542#"54'2#"54'2#"542#"54#"3276%6767632#&'#"'&'&'&54767676;4'&#"gggdddckggggeeeeggghgggcccdjggghhhgcccdx@J3E" 0g %7^g6? b6M21  HjKI2 ggggdccdggggeeeeggggggggdccdgggghgghdccdI3P36!$(c*7#$  ( "#!  R%2 i'/7?GOft2#"54%2#"542#"542#"54%2#"54!2#"542#"54%2#"542#"54%2#"5437672#"'&/#327654'&'"dccd.hhg6ggg5ccd.ggg6ggg1eee3ggg5ddc.gggg6a1('L8Bs0)#ggP) $\Q+dccdhgghggggdccdggggggggeeeeggggdccdgggg8QLZ > F8XD8ZJ1 i'/7?GOaq2#"542#"54'2#"542#"54'2#"54#2#"542#"54'2#"54'2#"542#"543#5#"'&747673674'&'&#"gggdddckggggeeeeggghgggcccdjggghhhgcccdff9s2*8Bu]7)L#%*T'ggggdccdggggeeeeggggggggdccdgggghgghdccdBT=}LZ9X3D<9)L< i'/7?GOlt2#"542#"54'2#"542#"54'2#"54#2#"542#"54'2#"54'2#"542#"543673#"'&5476763%!&'&#"gggdddckggggeeeeggghgggcccdjggghhhgcccdt3"qk'24;@?D9Qy$FrggggdccdggggeeeeggggggggdccdgggghgghdccdD); sK1NJ[F?*"OLP!+p i'/7?GOj2#"542#"54'2#"542#"54'2#"54#2#"542#"54'2#"54'2#"542#"545476763'"3###5gggdddckggggeeeeggghgggcccdjggghhhgcccdJ%(&fkggggdccdggggeeeeggggggggdccdgggghgghdccd=U"5 K )?L)L '/7?GOv2#"542#"54'2#"542#"54'2#"54#2#"542#"54'2#"54'2#"542#"543276=#"'&'&5476763253#/3274'&#&gggdddckggggeeeeggghgggcccdjggghhhgcccd u9ih7 ?:La6 f $?P *Nggggdccdggggeeeeggggggggdccdgggghgghdccd<T!7D= +?JH>C*'CB I";$@$FW1? i'/7?GOj2#"542#"54'2#"542#"54'2#"54#2#"542#"54'2#"54'2#"542#"54632#4'&'&#"#gggdddckggggeeeeggghgggcccdjggghhhgcccdo:2-#3f&"n gggggdccdggggeeeeggggggggdccdgggghgghdccdT8C[& K ) s '/7?GOW_673#53%432#"432#"432#"432#"432#"432#"432#"432#"432#"432#":JYf9>"iddddggggggggddddggggggggeeeeggggddddgggg)?1 ccccc-hhg6ggg5ccd.ggg6ggg1eee3hhg6ccd.ggg i#+3;CKS[cksw6767654'&#"#6325!!5432#"432#"432#"432#"432#"432#"432#"432#"432#"432#"!3S)%?I$%f>0( <+SMR`ggggddddggggeeeeggggggggddddggggggggddddEsh&#&/;% "!G #.G33 47+P2?2'Df7pUULtK' ggggddddggggeeeeggggggggddddggggggggdddd^C'(J Y(H>#X #$'|4D#,s@;_0<6gggcccdkhhggeeeeggghgggcccdjggghhhgcccc '/7?GOW_c5!#'33##5!5432#"432#"432#"432#"432#"432#"432#"432#"432#"432#"!3|fggggddddggggeeeeggggggggddddggggggggdddddYbgggcccdkhhggeeeeggghgggcccdjggghhhgcccc (08@HPX`hpx|727654'&#"#!!517632#"'&/432#"432#"432#"432#"432#"432#"432#"432#"432#"432#"!3~t&')Jcm  <[E:9HIy\BGggggddddggggeeeeggggggggddddggggggggddddQb(-H27OY>)(C6=vNO*-Y*Cgggcccdkhhggeeeeggghgggcccdjggghhhgcccc W9AIQYaiqy327654'&#"'67632#"'&'&56767672#&#"432#"432#"432#"432#"432#"432#"432#"432#"432#"432#"!3-'5P//,-LO203<03pDD$$+7A@4'c(,J{eA; fw$ggggddddggggeeeeggggggggddddggggggggdddd-$,46LG3320LEGFoD:-$$[ڝj?,H41lx1rgggcccdkhhggeeeeggghgggcccdjggghhhgcccc m'/7?GOW[!#!432#"432#"432#"432#"432#"432#"432#"432#"432#"432#"!3m~?VggggddddggggeeeeggggggggddddggggggggddddZLhgggcccdkhhggeeeeggghgggcccdjggghhhgccccWFNV^fnv~727654'&#"3765&'&#"7&'&'&54767632#"'&547675432#"432#"432#"432#"432#"432#"432#"432#"432#"432#"!33,AA+43)BP.$50G& 63EK27#":AHQ?Lt;OzCW)Rxggggddddggggeeeeggggggggddddggggggggdddd=$&<8'.#cG'$eF)%&'# (=20%C$%p9  7[>P5@nH5$)ogggcccdkhhggeeeeggghgggcccdjggghhhgcccc i1>FNV^fnv~6767632#&'#"'&'&'&54767676;4'&#"#"32762#"542#"54'2#"542#"54'2#"54#2#"542#"54'2#"54#2#"542#"545!!& %7^g6? b6M21  HjKI2 @J3E" 0ggggdddckggggeeeeggghgggcccdjggghhhgcccd6!$(c*7#$  ( "#!  R%2I3P3ggggdccdggggeeeeggggggggdccdggggggggdccdЈ i $(08@HPX`hpx327654'&'"37672#"'&/#!!2#"54%2#"54!2#"542#"54%2#"54!2#"542#"54%2#"542#"54%2#"54fP) $\Q+gg6a1('L8Bs0)#gdccd.hhg6ggg5ccd.ggg6ggg1eee3ggg5ddc.gggF8XD8ZJ18QLZ >Hdccdggggggggdccdggggggggeeeeggggdccdgggg i$,4<DLT\dltx&'"727673#"'&547632#"542#"54'2#"542#"54'2#"54#2#"542#"54'2#"54#2#"542#"545!!n6"Yek $@e@==Hu: gggdddckggggeeeeggghgggcccdjggghhhgcccdr 37?i1MK:)/OJHU=#/.DggggdccdggggeeeeggggggggdccdggggggggdccdЈ i!)19AIQYaiqu3674'&'&#"3#5#"'&747672#"542#"54'2#"542#"54'2#"54#2#"542#"54'2#"54#2#"542#"545!!h)L#%*T'/ff9s2*8Bu]7gggdddckggggeeeeggghgggcccdjggghhhgcccdX3D<9)L<BT=}LZ9ggggdccdggggeeeeggggggggdccdggggggggdccdЈ i$,4<DLT\dltx!&'&#"3673#"'&54767632#"542#"54'2#"542#"54'2#"54#2#"542#"54'2#"54#2#"542#"545!!t$Fr 3"qk'24;@?D9QgggdddckggggeeeeggghgggcccdjggghhhgcccdP!+pxD); sK1NJ[F?*"OggggdccdggggeeeeggggggggdccdggggggggdccdЈ i"*2:BJRZbjn5476763'"3###52#"542#"54'2#"542#"54'2#"54#2#"542#"54'2#"54#2#"542#"545!!J%(&fkAgggdddckggggeeeeggghgggcccdjggghhhgcccd=U"5 K )?L)LggggdccdggggeeeeggggggggdccdggggggggdccdЈ  08@HPX`hpx3274'&#&3276=#"'&'&5476763253#/2#"542#"54'2#"542#"54'2#"54#2#"542#"54'2#"54#2#"542#"545!!m *N u9ih7 ?:La6 f $?xgggdddckggggeeeeggghgggcccdjggghhhgcccdW1?T!7D= +?JH>C*'CB I";$@$ggggdccdggggeeeeggggggggdccdggggggggdccdЈ i"*2:BJRZbjn632#4'&'&#"#2#"542#"54'2#"542#"54'2#"54#2#"542#"54'2#"54#2#"542#"545!!o:2-#3f&"n ggggdddckggggeeeeggghgggcccdjggghhhgcccd|T8C[& K )ggggdccdggggeeeeggggggggdccdggggggggdccdЈ i'/7?GOt2#"542#"54'2#"542#"54'2#"54#2#"542#"54'2#"54'2#"542#"54&'"727673#"'&54763gggdddckggggeeeeggghgggcccdjggghhhgcccdn6"Yek $@e@==Hu: ggggdccdggggeeeeggggggggdccdgggghgghdccdr 37?i1MK:)/OJHU=#/. 4 R s     $ < ] ~ Chess MarkChess MarkRegularRegularChess MarkChess MarkChess MarkChess MarkVersion 1.0 Version 1.0 ChessMarkChessMarkc "$%')./012345679:;DEGINOPQRSTUVWYZ[uni001Duni00A0uni2206glyph69 bɉo1C ""HJJuJ3pychess-0.12.2/pieces/ttf/medieval.ttf0000644000175000017470000010235412641567764020151 0ustar tamasusers00000000000000pFFTM{SGDEF&(OS/2=Kx`cmap(pgaspglyf6x!`xheadeZ6hheaD4$hmtxboNlocaz JmaxpX name post5Avhea $vmtxb9!p|_<+C .C .Dc> "HX   15g111bb##GGD.Z6Z<D8DD^Xq]aGXjN\@1Sx    " & 0 : D !""""""""+"H"`"e%1Rx    & 0 9 D !""""""""+"H"`"d%[W@&&߼TC,ݠ6\Z^hnvx  !"#$%&'()*+,-./0123456789:;<D=>?JEASKCMYWN[XZ_\]^`aOBTUR@  !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`a&:Nbtp  H` p  6h,dF "$"4"##$$%&'"'()X)h)*f+@+v,h-./j/0\001^122x23&334X445l556L67778489 99:h:; ;;]Zfa:&Y_\l`4*`vvb WeEfe``DG^Aaj!;`!oeGy a_>)!` ^:Pb +jf}O^:_f'z`eck3\)v_` `WE[[``CDB!!Yk%MY]u -19I\nr7676'&'&7676'&'&7&'&'&7676766''&'&'&704102167676'6'&'&76767676767'&'&'&76767676'&'&'4'&'"3767637676565'"'&'&547676763'&'&'6?'743816767676'&'&'&&76767676'&'&'07&767657'&'&'&76767677'7''7'776/7#&'&'&/76'&#'&'&'&7676767601>776363"%436'4'&'&476767636'&'&'254'&#''&'&5&'&'#/74'&#''&'&5&'&//#7/'37'7'/'73#75##75'!'#37'#37!75'7#7#7'#?/37';#75%&#"3276'0&5#"'&54763272#"'&5476"327654'&                     @  &    +d    A  )    -$ 9 DZ# !$$% 1.&,! "   " >DZ)(A\*q112 " 1.   %'(6%    >  % '3    # tEM  6  2vEN 6 2U ! :-6G2L6K'*"J-!*#>>;@.>:>>>xB//BxD??;#8FX5%++*5MS2"")&>>>(NO0/ &&e<4>>49lxA;/64RQQWh{=- ?&&47KK<<,,;"%68!!!!89""2 !467"7#4γ~GcC~eECCC+ '6B]e "%'7!'77%#7%#7#7>76'&$%676''&/67&'&'&7>7654#"'4#!"!%.'&'&7&766!546'7357 37'7?&7&67?5773& 573& 573& 5 3&  &'&.7.7676&#&7 543?'353%V?`@!B_@>b@"A`A@[?=[@ IxTC% vnrYZN=`JV~Q:$7v 9(I 9Z^E~wL?1TDWE2 w,NG>' ߭V/2 0NHLZfa:&Y_n]\^0Y`<`/`'f&\_>9X0aaؗd^/mCgaY `3W#g^X%`$_*_1`;G`["!``CDB][( 33"&%"53·cG~1CCGd;D2 #5265532~FeDdGDDD2 ,8=BRgq  '+/3;?CFINRVZ^bfjnr%!54#!"7!53&54632&7%&#"654&#"67/&#"&'!!;&654&#"!654&#"76325))2%632'#2!54675#"&5'&5463267&533257#4#"#4632'73575357 &'7 7 572>7"#57>7:3&5767:36&54 5 3 5 3&&7&676'7777&'763?'3&'7 53%'7!'77%#7%#7#7DxCCdNSyV#'}Tv 6 Q9x:Q h,j,H<N79M<l vT}'$TzS~@B?B'. 4''o iS77PO89Nh p&(43VUTVVTUVdGFdWZfa&Yӗ( >_%9\?3!<06$J%00].Dxy3UT%TFdhP$]&kI   3oZ``DG*'C E`/_?`@!B_@>b@"A`A@[?=[@!!Gˇ)(Uy S wT h2"9R ,86, R9"t=9:Y  6NN6  `G Tw S yU()1DDA0#R p$":OS8dd8RO7@"$p R!4==<<2GG^:_f_':`(! ^9Qa? <7a$J%0^/R^z}VUa'Ie`Q  /^O`!(__w`s`r[2!"p``CDB*[CNGa?@@A@?@A@AA?@- #(+.26>BFJQV[`einuy~&%#7##7##7#7''7'7'53&'7'37!%&'767777676'7'7&'&'3& 5 3 5736545773&572757 7 '7 &57'5357'73'#2!54675#"&5'&5463267&54632%632"3254"13!2514#654&#"67'&#""13!2514#"13!2514#=[@f@[?cA`Ab>b@^B_@a?`@:_E`WC0*'LGuD_3oZ$+@)  t]&hP$Fd=f`5#3!x`c9\._% &Yӗfa:ZS77PO89Nh p&(43dGFd. 4''o i5bbau%%V%%;Y?!#?Z;""""w%%V%%C?@AAA@?@A@@@)aG[CQ*BCD``@[2!"p+`J``_!(_q`^B e`QI3a'&^[a yas9^ e`(!_':[_f^:OS8dd8RO7@"$p R!42GG20#R p$"w""""s&&Ec5B>'5cE#)=%&&%"""". $0HTan  %*/;?CF%#7##7##7#7''7'76'&'476'&'&676&7>76'&&67>76'6'&676'&2!5463654''.7&'67&76'735773.557& '?&7?&773"&'&7 3&3.3&&'&6&6546 &&7!% '5'5"13!2514##7''3=[@f@[?cA`Ab>b@^B_@a_@`G"%%& ej9x, /+z+ .!R< < &'(*  '(   %&>9QGH=;:>TcET 55JVXZ-YB+P6QHZfa!?Y\lvSU_0'\,1 `!e <` * f$eFd#v]_!Z 6d L:Q f N!D+`:KwM* "" ""Ό_GGC?@AAA@?@A@@#&.&"]PxM1F;o1!t@2# 0+,L 0,,L((8('$< .& O9gg8P fI U$'!V8[ C0vTSFq[U_`I9!^:_f>>_s_:`T8D^)(6ma zlaj^9.I4\H^ {d`.{M_ m_+/U`)hc`P["%CD``)$H`wKa,*""""Z[B, %*/49>BGKSW\bgnsx%2?ow%#7##7##7#7''7''735773.557& '?&7?&773"&'&7 3&3.3&&'&6&6546 &&7!% '5'5#7''367'&76676'#"'&7632654''&767>'&''&767>'&''&%&'676&7>76'&764&56'&'&7>762!5463654''.7&'67&764#!"!=[@f@[?cA`Ab>b@^B_@a_@`Zfa!?Y\lvSU_0'\,1 `!e <` * f$eFd#v]_!Z 6d L:Q f N!D+`:KwM* _GGuX#9.7<4F?%#18Fe521J& &;)1/xhti< &J A98_ (t)##*r 3B$68%%87$#"! $"   %% N9QGH=;:>TcET 55JVXZ-YB+P6QH9DVD2C?@AAA@?@A@@^:_f>>_s_:`T8D^)(6ma zlaj^9.I4\H^ {d`.{M_ m_+/U`)hc`P["%CD``)$H`wKa,*9Z[BuOF$ / 6DT) !%dGF48$!CC(&0v@1#" )10OR~B. *u89_ B9?t%(o;E.\y ```a##7 ") 6}O9gg8P fI U$'!V8[ C0vTSFq[U_`I9DD#& #).38>CHMRW\`dgjnrvz~'7357 3 7>? &'?73&>773&67&'.'7 &&&&6&' 3?'353 '%'77%#7%#7#73&'7!5# 3 !54637.567!5!&5463!"1!'"1;532514#!6514#!2!!2Zfa:&Y_#}W;\yx#%:`x`] f$$ i  `N !'1j>lC%Z=``DG_#$2_@`B_@>b@"A`A@[?=[@dg=``@]$#P9yUl5xV!!44""Tz5 mTx9P^:_f'z`aW~<z^;zzj;^e(HXaf$(`^#j`$b_kMl_K`9Z`X``CDB`e["e[$ @AA@?@A@AA?@"eϓ/$@aBate9P:c}D9OUyu"!""""!"yUO9D@}c:P9e) *29UY]aeoty"32654&'.'##>7!5!&546323!4#!"!!3262!'4637.5673!&''7357 3 7>? &'?73&>773&67&'.'7 &&&&6&' 3?'353 '%'77%#7%#7#73&'7!5# 39NN97PPV$G$Z,,5xVTz2*DWE2DV ÅÅKgQz6OHP9yUlOY9hi9Zfa:&Y_#}W;\yx#%:`x`] f$$ i  `N !'1j>lC%Z=``DG_#$2_@`B_@>b@"A`A@[?=[@dg=``@]:P88OO88PpxwqrvD9NUzzUO8DvzCE"ہjf9P7hf9P:ciγ``^:_f'z`aW~<z^;zzj;^e(HXaf$(`^#j`$b_kMl_K`9Z`X``CDB`e["e[$ @AA@?@A@AA?@"eϓ/$@aBa>DHT\hpx ")-27<@DIMSZ^bglqvz%4#!"!%4635#&'6776'3273273273273277'#2!!5"&54632'254#""&54632'254#"254#""&54632'254#""&54632'254#"'.7 #"&7 #"&5 &/!!!7)67"&54632#7##7##7#7''7'7'53&'7'73&#"?57&'7357&#"7'?'7&'??&5?'773& 57'773&#" 5 '7 5'773& 5'7 3&%75'7%7677&' 3?'3CDxDO82C+'<>)*>AA;'.9C@C"%$?;'/C87Pd:RR:9RR9CCD:RR:9RR9CCD%DDD:QQ:9RR9DDD:QQ:9RR9DDDST C23C;O78NF?N68N5B23DTU IY11_:QQ:9RR=[@f@[?cA`Ab>b@^B_@a?`@:_E`WC0*'LZ$'aF?Y'  #_J%\ \`n'O`^ k f ? M <a GdR|& Ug]8_)~>IO $L ǒ<``DGDD#"9P} WW0xCCOQGGQTCCWW }P9fl}}R99RR99RGDDDD R:9RR9:RHDDDDCDDDDR:9RR9:RHDCCDR99RR99RGDDDD'-AQ3w?XU8G8UX?k3QA-CECB;C C;Q:9RR9:Qy?@AAA@?@A@@@)aG[CQ*:^E_!^` ^~CG&\[o{aؐEQe>0aTk LY~^VLn6a? '[G#PP`}VUo'I^^'%|[JM3_y`| `![``CDB.!'38Z^bfjosy}:3<5*:367*#*#:!5)74632)!/)57'4;23437234;2'7357 3%555&+73557'''''' 3?'35 ?3#'357373?7'#?7'7!'77%#7%#7#7";2=4#!";2=4#yq!D""D%LN9,ffff3MN%ڮN97PfpgCgDEDDgEgC!Zfa:&Y&QP"Cf[>" H0/<``DG$U`:=_1G]\dAcF``E`7aE_%\D\VV?`@!B_@>b@"A`A@[?=[@+ ' vvEDDE%O9"E!tgg7PP7RhvSCGEDC{^:_f'z9a)%ay^D|va>s`^RY` P>_-Q"_FU`1`/[``CDBb'` `#?X\IcDEDDDE3^#^gCZW[@@A@?@A@AA?@ 22 !#42#2eF~DDEe;C) #'+/37<@DGJNRVZ^bfjnrv|%#7##7##7#7''7'7%7#?'7?73573'33#?5'37!%''''''755&+735553'57'73"13!2514#"13!2514#!72514+4&#"#"13)57'4;23437234;2=[@f@[?cA`Ab>b@^B_@a?`@V\D\%aE_A`E`|cF`dG]:=_c`È$GuD/G0 ">[("CfP&&Yfa:Z*0!!|""""T:;S""7DgCgDEDDgEgCC?@AAA@?@A@@@ZW[C2^#^gECDDEc[\Ie#?#0b'`BCD``/[1`U`Q"_P>_zRY`b^!s`vaWDiy^)%a9aE'z_f^V""""3""8OO8""SCGEDC*$0>JY]adgkou| .'&'&7&766!5467"3!2=4#76767''67''&676'&$%53'37!%54'&#&7'7676'7.'.'&'&  3& 573& 573& 573&57?&677?&'7'3'57'73#7##7##7#7''7'7w,NG>' ߭V/2 0NHLg B (HHnBG.`YN Bb`S["M~XF&#_GuD">K!3$ LiU`5] dhWf&`/0л`< Y]\^0b_&Yfa:Z=[@f@[?cA`Ab>b@^B_@a?`@paK- f ,Kfx$"',N7hh4Q####!hZWMh>V! plHhp Ȋ05[(<]BCD``U["!LG`-`; _1_*%`$g^jW#3p`gaY í^/a0a(>9XP\_'^>'z_f^B?@AAA@?@A@@@7 #(,38=CJNSX]aejnt{ %1n%#7##7##7#7''7'7'53&'7'73&#"?57&'7357&#"7'?'7&'??&5?'773& 57'773&#" 5 '7 5'773& 5'7 3&%75'7%7677&' 3?'3"13!2514#"13!2514#"13!2514#"&54632%"&54632"&54632%"&54632"&546324635#&'6776'3273273273273277'#2!=[@f@[?cA`Ab>b@^B_@a?`@:_E`WC0*'LZ$'aF?Y'  #_J%\ \`n'O`^ k f ? M <a GdR|& Ug]8_)~>IO $L ǒ<``DG""C""&&U&&&&U&&:QQ:9RR:QQ:9RR]:QQ:9RR:RR:9RR1:RR:9RRO82C+'<>)*>AA;'.9C@C"%$?;'/C87PC?@AAA@?@A@@@)aG[CQ*:^E_!^` ^~CG&\[o{aؐEQe>0aTk LY~^VLn6a? '[G#PP`}VUo'I^^'%|[JM3_y`| `![``CDBw%&&%""""""""TQ:9RR9:QR99RR99R@R:9RR9:RR:9RR9:R;R99RR99R9P} WW0xCCOQGGQTCCWW }P9f%#'.59=AEIMQUY]bglquy} 1' '1&7 &716 61'7357 3%5 &#"'%''7 5%'3 5%'3 5%'3# 5&''3' '%' '%'' #%'327#654' 33?'3IIIHIJHHIIIIIJHHZfa:&Y!_"' ;w\ \b0C0`#0`"Tz$2vf$3d~>]!'`A"@C01_0`#0_K$1LE2SEb`$0[ 3|e``DGIIIIIIIJIIIIGGKH^:_f'z&!`"v^[}0Ea0a/aV^|2{a0=`$$fB(!C^n00`._2H0M_1`PH.` 4[[``CDB1!4631yUgTxeeb*EMr>76'&$%676''&/67&'&'&7>7654#"'4#!"!%.'&'&7&766!546 IxTC% vnrYZN=`JV~Q:$7v 9(I 9Z^E~wL?1TDWE2 w,NG>' ߭V/2 0NHL Ɋ06bZfj (G+* le(O*=K[xF^f,Qqc+[CE"aK- f ,Kfx$"',N7hh4Q143&1ggUygex4'565yUgVxeg >N >F[kpu5))27'#2!54675#"&5'&5463267&54632%632"3254654&#"7632!3&654&#"!%&'!%67/&#"654&#"3&54632&7%&#"!5!54#!"~@B?BGS77PO89Nh p&(43dGFd. 4''o i6UUT/l vT}'$TzSH<N79M<`j,]h,gx:Q 6 Q9SyV#'}Tv dxCCDDAD:OS8dd8RO7@"$p R!42GG20#R p$"<==<G Tw S yU()1  6NN6  `9:YU=ɸ6, R9"2"9R ,8)(Uy S wT !!G>N4<HT`lx'#2!54675#"&5'&5463267&54632%632"3254"13!2514#654&#"67'&#""13!2514#"13!2514#S77PO89Nh p&(43dGFd. 4''o i5bbau%%V%%;Y?!#?Z;""""w%%V%%:OS8dd8RO7@"$p R!42GG20#R p$"w""""s&&Ec5B>'5cE#)=%&&%""""bh ;HUay"13!2514#32!5463654''.7&'67&767676'&76'6'&&67>676&7>76'&76'&'&76'&'4"" ""E9QGH=;:>TcET 55JVXZ-YB+P6QH8  '(   %&&'(*P< < E9x, /+z+ .!ejh"%%& v""""O9gg8P fI U$'!V8[ C0vTSFq[U_`I9$< .& 9((8(' 0+,L 0,,LC1F;o1!t@2#PxM{#&.&"bh7DQY%4#!"!'2!5463654''.7&'67&76'&7>76'4&56'&'&7667'&76676'#"'&7632654''&767>'&''&767>'&''&%&'676&7>76DVD2F9QGH=;:>TcET 55JVXZ-YB+P6QH6$"   %% $#"!K$68%%87]uX#9.7<4F?%#18Fe521J& &;)1/xhti< &J A98_ (t)##*r 3BDD#O9gg8P fI U$'!V8[ C0vTSFq[U_`I9 ") 6##7F```aMOF$ / 6DT) !%dGF48$!CC(&0v@1#" )10OR~B. *u89_ B9?t%(o;E.\y #x&2>3!2!'4637.567!5!&54632"13!2514#"13!2514# gQz6OHP9yUl5xVTz!!g""26"D@}f9P7hf9P:c}D9OUyyUO""""""""#x"I!&'#!3264#!"!"32654&3!2!'4637.567!5!&54632U G TV ÅRDWE2g9NN97PPe gQz6OHP9yUl5xVTz~XƁCE"fO89NN98OD@}f9P7hf9P:c}D9OUyyUOG` =EQYemu"&54632!7)6?!!7'.7 #"&7 #"&5 &/254#""&54632%254#""&54632%254#"%254#""&54632%254#""&54632!54635#&'6776'3273273273273277'#2!%4#!"!J:QQ:9RRIY11_. ST C23C;O78NF?N68N5B23DTUDDDD:QQ:9RR]DDDD:QQ:9RRuDDDcCCDD:RR:9RR1CCDD:RR:9RRdO82C+'<>)*>AA;'.9C@C"%$?;'/C87PCDxQ:9RR9:Q#B;C C;E-AQ3w?XU8G8UX?k3QA-DDDDGR99RR99RDCCDHR:9RR9:RDDDDCDDDDHR:9RR9:R DDDDGR99RR99R"}}9P} WW0xCCOQGGQTCCWW }P9fgDD# gv(-O3!7)3!5)#374632)!/)57'4;23437234;2yqɇA3ehhdgg4%ggN97PfpgCgDEDDgEgCvv%ggg7PP7RhvSCGEDC3#4'52ggUyeexgv!8DP)57'4;23437234;2!72514+4&#"#"13"13!2514#"13!2514#DgCgDEDDgEgC""T:;S""d!!|""**2SCGEDC4""8OO8""""""b(4Y676'&$67''&76767''"3!2=4#.'&'&7&766!546M~XF&yBb`S[#HHnBG.`YN B w,NG>' ߭V/2 0NHLȊ05kV! plHhp hZWMh####aK- f ,Kfx$"',N7hh4Q G`<HT`lx%4635#&'6776'3273273273273277'#2!"&54632%"&54632"&54632%"&54632"&54632"13!2514#%"13!2514#"13!2514#O82C+'<>)*>AA;'.9C@C"%$?;'/C87P:RR:9RR]:RR:9RR:QQ:9RR1:QQ:9RR :QQ:9RRU&&U&&&&U&&""C""9P} WW0xCCOQGGQTCCWW }P9fJR99RR99R;R:9RR9:RR:9RR9:R@R99RR99RQ:9RR9:Q""""""""K%&&%tu 1' '1&7 &716 61IIIHIJHHIIIIIJHHIIIIIIIJIIIIGGKH D -:J_g%!54#!"7!53&54632&7%&#"654&#" !'&#"!;&654&#"!654&#"7632"3254'#2!54635#"&5'&5463267&54632%6325))2xCCdNSyU +}Tv > Q9,9Q >,H<N79M<l wS}*!TzSUUTvS77PO89Nh p)%43dGFd. 4$*o iG~@B?Bg G̈)(Uz S wS <_"9R +\+ R9"  6MM6  `G Sw S zU()1<==)*?AA;'.:B@C#$$?;'.B97Pd:RR:9RR9DDD:QQ:9RR9DDD%DDD:QQ:9RR9DDD:QQ:9RR9DDD[T D23C;O78MF?N68N5C23C T\IY20_:QQ:9RRjDD#"9P} WW0xCCOQGGQTCCWW }O9fl}}Q:9RR9:QGDDDD R:9RR9:RHDCCDCDDDDR:9RR9:RHDCCDR99RR99RGDDDD,AQ3w@WT9G9TW@k3QA,]fDB;C C;Q:9RR9:QZjt%67'&76676'#"'&7632654''&767>'&''&767>'&''&%&'676&7>76'&676!5463654''.7&'67&766#!"! vX %9-7:6DB&$/9Fe50>@K*%58B<O>0J& &;)10titi9 I B98^ )t*$#*r 3A&86 7:PHH<;8?UbEV 82JVXY,XA,R7OI9DUC1MG#. 6BU(!%dGH27$#BC),*y>0%! )20M S}@.+r+9_ A9@t$(o;C0]w `', E(_OO8gg8P eI T$+U9] C0wQUHpXX_aI8DD$Z)DLq&'&547&%76'&'6'76!>7'&'&76767&#"!54'!%6!546.'.'&'&76$677%CÈSxH鑈_MxD_[8 I'9 2EWD1MHM1 8)W &=DQ-w:8n0 D H)jfZc *N 'ek Z,crcQ.dEx\J$"D?Q4gg8M,'""xfK, +K D(-O%#3!7)3!5)#374632)!/)57'4;234;234;2 qʇB3ehhehh3%hhO87PeqZDgCgDEDEgDgCv&ggf7PP7RgvRDGEEDD"I!&'#!3264#!"!"32654&3!2!'46;.567!5!&54632U G TV ÅRDWE2g9NN97PPe gQz6OHP9yUl5xVTzi~WŁDE"fP79NN97PD@}f9P8gf9P;c}D9OUyyUO!3#"'&'676;2#"'&55ck  W 6!3476763!2#!"'&'67654'&#"&#"&1&5c:9Q;01;2* y .*&'4) "-&A<9##/0,+O<)& #E!3327654&5&'"6323632#"'&'&'65656765co%&?G#$x;&'  ,#=?B./"",-1H55TVK-.10M "# /%$=!((??A>,0""%%CDOrs!3"'6763!2#"'&'6775c"/ 3 *  !C+ '<, +=S!3&'&'4767672#"'&'&56767327654'&'&#"32767654'&'&#5c0.+>B0.3F'%8:JK9;%%9:7  5  +/  !-E!%1/,7-/)+,26//89J@;9'%%&;<@I976!!3[&%&&()&(%/0i*?!!547632#"'&=#"'&'&54767632327654'&'&+   ?]K>>"#&&<;=7%$(%$3Z('$'.O*)dK!  -Z&%GFZeHF#"-;13 A@\B33<>i*H!!3632#&'##"'&547632&'&'&'"11367676]>eL;9" $'/4;p'G"%23&())>4&$dKS*(HJT@:6,+P!    <2112C280# ! 14i,B!!47632#"'&=#"'&'&'4767676322767674'&'&#"#%=O:>!""-.8e=''N=(%#&/8$%dK*  !"''FC[@9;),S\?B !219A34 !22i <!!!&'&'"6767632#!327632#"'&'&'&'6504WP+-IM./b!<;ON=>!8*+1WL  >>EI68!dQ4211yMHD.,+.CGL2:')< #-,683i$(#"56;547672+"32+#"'&5!!*00'%%9Z'?,1?Jr0)8""/ -)0* d}=S!!##&'&'&56767633547632"'&'6732765<5<%27654'&'&#()7K8<!!!<:On'  :=R^[-!#$"%S'(#%0L0.'';3$#d(**GFWVHF&'Q PBA%%6## @>ZB.399d673#!"1/i5!!4763267632#"'&54'&'"#"'&5,)2;00$%?$ ds #33= I?+*!". D!333#"'&'676;2#"'&5͇hDl   P  ^:!333476763!2#!"'&'67654'&#"&#"&1&͇hD^99Q;01;2* y /)%'4) "-&C:9##/05$#%(*=XY!333676763#"'&'&'&5&'676326767654#"'47676765&'&'&#"&'&͇hDv12=8/./C"# !69M7.. !  #j&$$@%1/ !  7)+/242,,47E+2*+%&- ,c !(' !"A"; q .!333#!"'676763232+#"'&5͇hD-$$3 . aX%"G    ]L!3336763!2+632#"'&'&'4763267674'&'&#""'65͇hD "15A00#$,,.-31(( ATB-- + ,! l   $$9;A C24! ! . >,+O<)& # aI!333327654&5&'"6323632#"'&'&'6565676͇hD%%@G#$x;&'  1#=?B./"",-1H55TVK-.10M "# 4 $=!((??A;/0""%%CDOrsG!333"'6763!2#"'&'677͇hDz/ 3 *  !C+ '<, X/AW!333&'&'4767672#"'&'&'6767327654'&'&#"32767654'&'&#͇hD0--=B0.3F'%8:JK9;&%9:7  5 "*/  !.D!%1/,7-/)+,26//89J@;9'%%&;;AH:76!!3[&%&&()&(%/0".C5!%5!547632#"'&=#"'&'&54767632327654'&'&+   @\N;=##&';<<5'&&$%2Z('#&/P(*·DD|! -[&#HF[eHF"#+933A?\C33<<".K5!%5!3632#&'##"'&547632&'&'&'"01367676V?dL;:! %$21>o(   G%%23&')'?6$$·DD|S**GFW?<4-*P"   @./22C282  34"D5!%5!'&'&#"2276767>7632#"'&'&'476767672 $# 6&%#"U     318Q=> !!"26@<-,·DD  1/8SDE  .')CEO<=7/."0F5!%5!47632#"'&=#"'&'&'4767676322767674'&'&#"  "%=P9>!""-15d>''N=(%%&/8$&·DD|*  "$&)DEZ@9;),S\@A !119B22!!12"A5!%5!!&'&'"6767672#!327632#"'&'&'&'06104WP+,JM.0a!<:PN=?!8*+1YJ  >>EI65"!·DDS2203wLHD.++.DEN1;'(< #/,6:2",5!%5!#"56;547672+"32+#"'&5*01'%&8Z'?,1?·DDn0(7$!/ ,(0) 3AW5!%5!##&'&'&56767633547632#"'&'6732765<5<%27654'&'&#',4I:<!!!<8Qm(  :=RaX-!%"%S'(#%0L0.&';5"#·DD)**GFWVHF&'S PBB#&6#" @>Z@03:8d675!!"1/"95!%5!4763267632#"'&54'&'"#"'&5 *)2;00 $&>$ ·DD #33< I>,*!$- iB!!"&'.'&#"22727>767632#"'&'&'476767672   7%'##T     354R<> !!!36@>++dg  0/7TCF  ,('DEO<=8/,#Ck    3 K {  Chess MediaevalChess MediaevalRegularRegularChess MediaevalChess MediaevalChess MediaevalChess MediaevalVersion 1.0 Version 1.0 ChessMediaevalChessMediaevalc "$%')./012345679:;DEGINOPQRSTUVWYZ[uni001Duni00A0uni2206glyph69 bɉo1C !222H22bNNhhxx`vvb`upychess-0.12.2/pieces/ttf/leipzig.ttf0000644000175000017470000011464012641567764020027 0ustar tamasusers00000000000000pFFTMz}GDEF&h(OS/2Bqx`cmap(pgasp`glyf$ ``headc6hheaE4$hmtxmNloca)dmaxpX name⢌post5@Xvhea $vmtxa9*6_<+C XC XDc2 "Hv gh gx{ yggxkxuukG&DVlUGGW{jN\@1Sx    " & 0 : D !""""""""+"H"`"e%1Rx    & 0 9 D !""""""""+"H"`"d%[W@&&߼TC,ݠ6\Z^hnvx  !"#$%&'()*+,-./0123456789:;<D=>?JEASKCMYWN[XZ_\]^`aOBTUR@  !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`a(<Tj~@Xp~ n62, \"##%%%')h*+,B,.080H1344`46p89:;<<==h==>>>>??l?@@H@AANAB B8BzBCC~CDFDDE@EFFfF'$72#"54$g %3##!##x gd##5!!!!dw 7#5#5#5#5g #dfh!3!3{c 3#3#3ddf5!5!yddf #5353!5353 ggyd$e'$72#"54$ #'+/37=333333 #7573 !!!!!%2"-x-[d-o-F-2- +O-zdG3! Ilz[AdpG/-$,P.-z/e-J-5 -!  2#"&546ttutuutgf 53333xg hy$dx%3##x gd##5!!d7#5#5g #d{!3{c 33 dyy533yg y$dy!!dy#5353 gyd$ #'+/4:?ELQ]!3333 573#7 33333 &'3 4#5 #'"5'52#"&5463GdzsO-!+-2-Fd-ox-[-_ -! iaOh-  demttu-5-J/e-z.,P-/BGUdpz[L -`>j[ e0Ytuut!!Yk%MY]u ,08H[mq7676'&'&7676'&'&7&'&'&7676766''&'&'&704102167676'6'&'&76767676761'&'&'&76767676'&'&'4'&'"3767637676565'"'&'&547676763'&'&'6?'743816767676'&'&'&&76767676'&'&'07&767657'&'&'&76767677'7''7'776/7#&'&'&/76'&#'&'&'&7676767616776361"%436'4'&'&476767636'&'&'254'&#''&'&5&'&'#/74'&#''&'&5&'&//#7/'37'7'/'73#75##75'!'#37'#37!75'7#7#7'#?/37';#75%&#"3276'4&5#"'&54763272#"'&5476"327654'&                @  '    ,d    A  )   -$ 9 D"Z#  !$$& ! 1,(,  #   " >DZ)(A\*q112 " 1-   $'(6%      > % '3   ! tEM!  6 2vEN  6 2U ! :-6G2L6K'*"J-!*#>>;@.>:>>>xB//BxD??;#8FX5%++*5MS2"")&>>>'OO0/ &&>49ky@:064RPPWi|=- ?&&46LK;=--;=MJ6445JR9;>#$69 !! 98"#g!4677#46gc!fObf!7R(  %*.29>CHMUY^bgmuzo&'73 . 333 &'73 5%&'35#7573&'&'7#7&'767#2307#'67#''#&'46565#&'&'2"5"32654&"3254%"32545#5##335##5#53533'6'&632654%'&#"632'%7'#"&'.'&#"&'&7#'&76767632327.5.5%47&54326767&5432327632'"'&'&'&'&#"#"'23:3>7632&7>'&#"'.'&'&'&'&#"7>7632:3276if-WEx-[d-o-FcZ-w\9 V-p+O-KHv/M '$1  [/@ t(p- v$d-)Y -  !t v qqqq+++)))z33da`` YW  jp`]z TigNSv|wYX9XUJ~  pE=^H5(J $ ! . ]fx01aPF\L"]\^^. (?Oc10wf\  -  % J(8E`=Qc26x},=N5 &' 5M=+v71dQ=? (Wh6M- S;>f0F z[AdpGN [u,^$ Vm0ˌ-$,P: I.w5- /Z+#-n"-c**  -? v L(''(*++*))))33+X(((A6#`HE ?@G99'k#5"+ /J  "1e| 0  nf2 +\\( (^^5 K@"U% 0 |e1  K. + "5#=7H  3  a%<  <%a  3  H7=gf33"&%&53gc8Of!cR9#f#52655653b"eOcf#9R, !&+17<AFKPUZ_ejnrv ",KSW!3 573#7 33 #6555%5%"5%#%3#%#%67#&''6?'&'7'&17&'23#73'73'%#"$547&'&5476&'&5>5.'.54676#2!63""3254/7&543'#"75'7#632'.'&#">7.'&7632&547>326.'&#">7&'&#"676'&'&6&'.'47>7666544! ! 7'7654'&#"6>76763267632'6'&#"654'4#"26'&654'&$# 76! IzsO-!+d-ox-[*-qVm l X --z d-o/5 yi !D1)----!-aK_+%', ,_ 5oUm5`+gggGG<@  2GHA= u{vzQ(|F.!   OS  "  3k# 1*k 5.'.54676#2!63"&'.'&$32'6! 3223&76763676327>7632>76'&#"654&'.#".'&'&#".'&#"67&763227&54743267&766"3254'&#"'#3732735'654'75#'%'%654'&$# 76! &#"327&547632254%3632325654'&#"'73#733&'2&17&'76?&'67#'#'3#'#"55555 #633 #7573 !5TiS+%', ,_ 5oUm5`+  ed   ^a    () "9 <  )1$N $ (  % % M$2(   =  :  (& 1FF1wk @??? ?@A:jSi]-T3#')tF-'8vte[dvt9'-G0-A--v1)- !y jo/ d--/- X l ݣjm*-qx-[d-o+O-z>A$A; 4 TxxT!5  <2 ,O8BA{0 _ 0{AB9T*  7@@  ddn[:0i[!3 A%!d *!@:# *KT9# .^('%(`, "9TK*$>;!+ c!$B1"[k.?W3F12EwwA?@?>> @@@A"$A$-"+O3Ch{Z9bMF3(S0L\%%\L0S(3FMb9ZH-ȪK`-t -K,-P/ofc  X  00,l*oz[Adp-$,P.-z! !%-39>DJPUY]cintx|B 5'5"5763#'3#'3#'3#'3#654&57'.57'.'7'&'7.'%&12>73&1%573#7.'3 5?7.'73 333 .'3>76'&#>7676'&6767&7&$'>76'&76>76#"76>76'&7676767"'&'.76767>7>7567>76!&7>767&''5 &  /V/1V10V/.V--V-emp*!-^O-!+E-5 3 -2-Fd-ox-[ F-?$  G?4N 4$    'Q6e?H  , "  $h   3  '   . '* 8'7!< &}H9'+7    .)/Q DF#F"+'7;0 00 GUUUUUUUUUe.  p-  /U-)-Z-,P- 4,373 qGUdpz[PGE    %}Y  4# -  "8{Qz `?`G+#-'(  '  A%"   +  Z ~ = !c%iQRirC'^,-{   -*0 4@IliB|@xH   ,? !%-39>DJPUY]cintx|MYj 5'5"5763#'3#'3#'3#'3#654&57'.57'.'7'&'7.'%&12>73&1%573#7.'3 5?7.'73 333 .'3'&'.76767>7>7567>76!&7>767&'''>7>7676746767676>7676672' 2$32&'&76'&%'&'67.5&'.'.'767>67627&'&7676765 &  /V/1V10V/.V--V-emp*!-^O-!+E-5 3 -2-Fd-ox-[ F- 7 $}H8'+8    /)/P DF#F"+'7D0)$'y   "3 K1;E  &i:|</6`7Q /    &)oB/), U N8&8 )'    # ;0 00 GUUUUUUUUUe.  p-  /U-)-Z-,P- 4,373 qGUdpz[PG : !c%iQShqD'^,-{   -*0 3AIliB|@xH   ,?"K"  # q- #7  Y}%   'Uf8i4uod+}QQ|Ȍ   4B*  ! N5':u;:FB; 55  S > Z  o   %%17>CHMTY^bfjouz%!676767&547>7>7&54632.'"5.'2#&'67&'&'&'&'  573#7 &.'3 &'73 333&'733#'3#'3#'3#U7>7&54632.'\-V-j.W-p0V/j0U1l-y#lx-[d-o-Ff Z-[7-}#+O-C sk~s-^ !2 U!`=@@B>A\ Vq:C$<479)?:rffffL;10O8U7&54632327>7&5432#"'&#"$547&'&'47>767&'&'#"543232'&'32"32$54$7"3254"3254%"3254"3254'%''36! 67>7&$#""3254"3254>7654#"'&547654'&'&'.'.'2632&'&'.6&'&#"6>7&#&'77&'757 #4'7%&'34'2&'7 555"5"#7#7#7%#76 6'&&5.57%&'7&'7 3 573#7&'73 33 673"32654&bBBC'*/;GD10EAWS .E10EZI xiu0EE0 P0) %'  '4Muuu;wH - 'w 556DDC#CCCDDCePd|H\Io  #'  r556CCD  a*D%& /    )))4:e -vl bk9Jؑ} %-f\m-!xrAFa3d&P +-r-{ L-O .R/L^3H _ f uzsO-!+_^-2d-ox-[ -uu0EEzBCCBf8q7  y&K0FF0D, ,70EE0WL x)uE01D #84 TxxT!59   ~uuu$KM   :68DD86:8888DCCDDCCDVCDDC"?"gCCDE%ET1O.CD-K2 +*8888CDDC%I$; q#1 3pp ptC0!NuW?\\?WuT3;|1D nr1 Gr7OB gl-G -l-|7J*|$@g\ *7x tJ, 0`d0P  bpz+KNRL/^a  H2 Ng v -z.,P-1 _dpz[a!tuD10D-  $(,048<AEIMQUY]afjs)5AMYeq}! 573#7 3 '555#73#73#73#73#73 5%"5%3#%3#%3#%3#5%555523#3!57!%#5!#5357&47654'&7654'.7654'&7'357335336327&#""!5.'&#!5#!5#6$32 2764'&"2764'&"2764'&"2764'&"2764'&"2764'&"2764'&"2764'&"2764'&"27>'&"27>'&"72764'&"2764'&"2764'&"^sO-!+d-o iU--T--T-.U-.U-x4 \,U-j.W-p0V/j0U14W!F.V-GGvuGyGD10  35΋42 /1Cɫ:Щ"D!;gg !!z zss!!y! !y 0 0qqrr / / 0 0J / /yrsqe!!z zss!!y! !y.,P-<dp/,j*!TTTTTTTTT+xw0.0- 5UUUUUUUR.3-0----,-`*V]U#XVAAVRt! FF q ICeBI q  GE !uQVI$$_H22$@?XXXXXXYYYYYYYYOZZZZ````YYYYYY!#4&'52#4'bg8Oe"bR7!%  $(-159=AEINRVZ^bfjS_kw%3#5255553#'3#'3#'3#"55 7#73#73#73#735#735%5' 3 #7573  33533)357&47654'&7654'.7654'&7'356$32<513%2514'.#"62"'&6'62&'."6&6&6&6&63276&'&'&47676'&'.76764'&'&4767>'&'&4767>'.62"'&462"'&4'62"'&462"'&4!5F.V-W!40U10V/.W-,U- x.U-.U--T--T-U-i d-o+O-s42 /1CvuD10  35~+++++uuuq n p{_ ! / /   '' / /  / 0 %%  / / !mmqqppmm,UU*V,-----.3-UUUUUUUT- .00+xTTTTTTTnTj*,/dp-$,P.vBI q  GE !uQV!VRt! FF q ICeW !!f'++' ``` b 4  g / "Z# 3 ` $ "Z# / 5 #Z" % ["4 #Z" / b  / kXXYYYYYYDD#  %*.29>CHMUY^bgmuzq&'73 . 333 &'73 5%&'35#7573&'&'7#7&'767#2307#'67#''#&'46565#&'&'2"5%&'.'&#"'3254'&#"632'?&#"'>32''75#5##3353276767654#"6'&#"&'.'&#"&'&7#'&76767632327.5.5%47&54326767&5432327632'"'&'&'&'&#"#"if-WEx-[d-o-FcZ-w\9 V-p+O-KHv/M '$1  [/@ t(p- v$d-)Y -  !t v  4 ) ;OnePWrza``U{sXUXa_XZ,xozzo  $' Z_  utJ~  pE=^H5(J $ ! . ]fx01aPF\L"]\^^. (?Oc10wf\  -  % J(8E`7&#&'77&5%&'757 #4'7%&'34'2&'7 555"5"#7#7#7%#76 6'&&5.57%&'7&'7 3 573#7&'73 33 673367>7&54632327>7&5432#"'&#"$547&'&'47>767&'&'#"543232'&'&546323676&54632"3254%3>3227>7&$#"'%'%'%"3254&'.'.&3256! 32l bk }9Jؑ} %-f\m-!xrAFa3d&P +-r-{ L-O .R/L^3H _ f uzsO-!+_^-2d-ox-[ -NWS .E10EZI xiu0EE0 P0) %'  '4Muuu;wH ._E0u((*/;GD10E778  TT  rwH\I|ePd^888  54    os  ;l-G -l-77J*|$@g\ *7x tJ, 0`d0P  bpz+KNRL/^a  H2 Ng v -z.,P-1 _dpz[a! ,70EE0WL x)uE01D #84 TxxT!59   ~uuu$KM   ]0Eu4+}f8q7  y&K0FF0D:;;:)A&&'$?*21E%ElCCD"?":;;:"11" "!hh!%/37;?CGKOSW[_cgkosw{ 1' '1&7 &716 61 "51 4#0'3' #%' #%' #%' 3 573#7 5%'3''3 5%#335%'3IIIHIJHHIIIIIJHH >T[!u- - ,- /n kIzsO-!+ -&-Oc-d-ox-[{da-IIIIIIIJIIIIGGKHd <T\ Z ---mk/e-z.,P-0 %,*Ocdpz[0bax!467xO8 7Og kr '37BNX\`-"32654&"3254%"32545#5##335##5#53533'6'&632654%'&#"632'%7'#"&'.'&#"&'&7#'&76767632327.5.5%47&54326767&5432327632'"'&'&'&'&#"#"'23:3>7632&7>'&#"'.'&'&'&'&#"7>7632:3276qqqq+++)))z33da`` YW  jp`]z TigNSv|wYX9XUJ~  pE=^H5(J $ ! . ]fx01aPF\L"]\^^. (?Oc10wf\  -  % J(8E`=Qc26x},=N5 &' 5M=+v71dQ=? (Wh6M- S;>l(''(*++*))))33+X(((A6#`HE ?@G99'k#5"+ /J  "1e| 0  nf2 +\\( (^^5 K@"U% 0 |e1  K. + "5#=7H  3  a%<  <%a  3  H7=xy3"&xg 8O gOy#565O8 9Og U FNU\cjn %/@'%#"$547&'&5476&'&5>5.'.54676#2!63""3254/7&543'#"75'7#632'.'&#">7.'&7632&547>326.'&#">7&'&#"676'&'&6&'.'47>7666544! ! 7'7654'&#"6>76763267632'6'&#"654'4#"26'&654'&$# 76! aK_+%', ,_ 5oUm5`+gggGG<@  2GHA= u{vzQ(|F.!   OS  "  3k# 1*k 5.'.54676#2!63"&'.'&$32'6! 3223&76763676327>7632>76'&#"654&'.#".'&'&#".'&#"67&763227&54743267&766"3254'&#"'#3732735'654'75#'%'%654'&$# 76! &#"327&547632254%3632325654'&#"5TiS+%', ,_ 5oUm5`+  ed   ^a    () "9 <  )1$N $ (  % % M$2(   =  :  (& 1FF1wk @??? ?@A:jSi]-T3#')tF-'8vte[dvt9'-G>A$A; 4 TxxT!5  <2 ,O8BA{0 _ 0{AB9T*  7@@  ddn[:0i[!3 A%!d *!@:# *KT9# .^('%(`, "9TK*$>;!+ c!$B1"[k.?W3F12EwwA?@?>> @@@A"$A$-"+O3Ch{Z9bMF3(S0L\%%\L0S(3FMb9Z@*:K]nz>76'&#>7676'&6767&7&$'>76'&76>76#"76>76'&7676767"'&'.76767>7>7567>76!&7>767&''?$  G?4N 4$    'Q6e?H  , "  $h   3  '   . '* 8'7!< &}H9'+7    .)/Q DF#F"+'7D    %}Y  4# -  "8{Qz `?`G+#-'(  '  A%"   +  Z ~ = !c%iQRirC'^,-{   -*0 4@IliB|@xH   ,?@'&76767667627&>7>7676746767676>7676672' 2$32&'&76'&%'&'67.5&'.'.'767>'&'.76767>7>7567>76!&7>767&''   # 8&8 )' I0)$'y   "3 K1;E  &i:|</6`7Q /    &)oB/), U - 7 $}H8'+8    /)/P DF#F"+'7R   %%> Z  "K"  # q- #7  Y}%   'Uf8i4uod+}QQ|Ȍ   4B*  ! N5':u;:FB; 55  S % : !c%iQShqD'^,-{   -*0 3AIliB|@xH   ,? x1%!676767&547>7>7&54632.'U7>7&54632.'U!`=@@B>A\ Vq:C$<479)?:rffffL;10O8U7654#""3254%367>7&54632327>7&5432#"'&#"$547&'&'47>767&'&'#"543232'&'&546323676&54632"3254%36! 67>7&$#"'%'%'"3254%"3254%"3254"3254"3254"32$54$e:e -B)4N    ))%& /B  a*D'CCDWS .E10EZI xiu0EE0 P0) %'  '4Muuu;wH ._E0u((*/;GD10E556  #'  rwH\I|ePduDDC-CCDVCCCWDDC556 Gr7OB "3;|1D nr1 !NuW?\\?WuT 3pp ptC0(%I$; q#1 CDDC ,70EE0WL x)uE01D #84 TxxT!59   ~uuu$KM   ]0Eu4+}f8q7  y&K0FF0D88881O.CD-K2 +*E%ElCCD"?"CDDCDCCDDCCDDCCD 8888:68DD86:uvCMQ\nz 33533)357&47654'&7654'.7654'&7'356327&#"!5%"!5.'&#!5#!5#6$32 2764'&"2764'&"2764'&"2764'&"2764'&"2764'&"2764'&"2764'&"2764'&"27>'&"27>'&"72764'&"2764'&"2764'&"42 /1CvuD10  35ɫ:˕Щ"D!;gg !!z zss!!y! !y 0 0qqrr / / 0 0J / /yrsqe!!z zss!!y! !yvBI q  GE !uQV!VRt! FF q ICeI$$H22$@?XXXXXXYYYYYYYYOZZZZ````YYYYYY3#4'5g 8OgO uvCN`lx 33533)357&47654'&7654'.7654'&7'356$32<513%2514'.#"62"'&6'62&'."6&6&6&6&63276&'&'&47676'&'.76764'&'&4767>'&'&4767>'.62"'&462"'&4'62"'&462"'&4!542 /1CvuD10  35~+++++uuuq n p{_ ! / /   '' / /  / 0 %%  / / !mmqqppmm,vBI q  GE !uQV!VRt! FF q ICeW !!f'++' ``` b 4  g / "Z# 3 ` $ "Z# / 5 #Z" % ["4 #Z" / b  / kXXYYYYYYDDkr"6BWb&'.'&#"'3254'&#"632'?&#"'>32''75#5##3353276767654#"6'&#"&'.'&#"&'&7#'&76767632327.5.5%47&54326767&5432327632'"'&'&'&'&#"#" 4 ) ;OnePWrza``U{sXUXa_XZ,xozzo  $' Z_  utJ~  pE=^H5(J $ ! . ]fx01aPF\L"]\^^. (?Oc10wf\  -  % J(8E`7&54632327>7&5432#"'&#"$547&'&'47>767&'&'#"543232'&'&546323676&54632"3254%3>3227>7&$#"'%'%'%"3254&'.'.&3256! 321WS .E10EZI xiu0EE0 P0) %'  '4Muuu;wH ._E0u((*/;GD10E778  TT  rwH\I|ePd^888  54    os   ,70EE0WL x)uE01D #84 TxxT!59   ~uuu$KM   ]0Eu4+}f8q7  y&K0FF0D:;;:)A&&'$?*21E%ElCCD"?":;;:"11" "!hh!tu 1' '1&7 &716 61IIIHIJHHIIIIIJHHIIIIIIIJIIIIGGKHG~S[bipw)3D654'&! 76! %#"$547.'&5476&'&5>5.'.54676#2!63""3254/7&543'#"75'7#632&'&#">7.'&7632&547>326.'&#"67&'&#"676'&'&6&'.'4767666544! ! 654'&#"6>767632>7632'6'&#"654'4#"26'&654'&$# 76! H).&+$', +`!5nUm4`,gggGG^ $W( 4L`!68& 7 U 8-UuY,2-"+O3CD'/7?S".763 27>7.#""32$54$"3254%"3254"3254"325436! 67>7&$#"327>7&54632327>7&54632#"'1&#"$547&'&'47>747&'&'#"5463232'&'&54327676&5432"325467654#"'&547654'&'&'.'.'2632&'&'.6&'&#"6  f퀀i CCD#DDC#CCCLCCD  "'  s WS .E0uYJ xhE00FF0 M4( %'  '2OuD10E;vH -_uu)(*/:Gu0EDDC a*F$+C     *)+5>c !-(@&67$>)$#:77DD77:DCCDDCCDDCCDCDDC/J-@A*H/)(*,70EuXL x &0EE01D #:4 TwwT#39  ~u0EE0$KN   ^uu3,}f8q7n&KuE0DCDDCFL; q#1  3or p63PuW?\\?WuR360E rg;! Jr9OB VuA'&'.76767>7>7567>76!&7>767&'"''>747676746767676>7676672' 2$32&'&74'&%'&'674'&'.'.'767>>7627&'&7>7>763 4 '~G8'+9    3%.QDF"G",'6D0)$&w   #1 K2>A  ?Wi:}<0 6a6Q  0     %(pB/(*V N -'8 *&     # B  7  !b%iQRjrB(]-,{   0*1 9#K!+ % q. $8  [~$   Vf8h5uod+}QR{ȍ   1F*  " N5';t;;G@= 64  T  ' [ n    #U\ '2>"32654&"3254%"3254###535336'&#632654%67632'.'&#"&#"'&#"#"'.'&#"6'.76327>76'.5.5%47&54326767&5432%632'&#"qqqq+++)))>> YW  jp[]z=Z F3>:r] GH#.>g9?Y2  bBIHCa 3Y?wf/"IF^s9@2E!Y>lPF\L!\\^^. (?O]MN3OljJ)'')++++)(()=q6#`HE t0""8 #,L0  73 O[[O j  0L,# 7" 2 1 mf3+]](  (^^5K@#U$!1" G\ #/;GS_kw2764'&"2764'&"2764'&"27>'&"27>'&"2764'&"2764'&"%2764'&"2764'&"2764'&"#!5#!5#6$3 "!5.'.!56327&#"37533)357.7654'&7654'.7654'&7'335hsssstt&%$$$%&x&$$%&%&&%&%%&>&&%&%%&-sssstt)hg_Z#C!`_K̨:42  /1CvuD10  46.UUYYUU````XXXXTTYYTT̋@?G22#˚#I%$BI q  GE !uQV!VQu! FF q HCeG#+9k%!&'&'&'#"'2654'&'&#"254#"2.'#"'6!676767&547>7>7&54632.'hV%`=B>@A>^%Vp:C$2>@0'A:reeffL;10H? V:E5aE} 3cGEd3 Ec5E9W ?oZKdcLYpܘlXGRZ[QGXlxaaaa(c00c(MˍC[bkWG!=^1CB__BE/^=!GWkb[C!33!527654/&#"5{c|?A ,,>= /!376?!5?6767654'&#"'7676763{c@9&Cmc8"*%/Jy; ?!/42a>>i;6S< tiA-8.0?R1; \6?C^nF8V<?!36767632#74763232767&'&'#56765&'&#"'{c?"$(I3AKP"%h] ,B.(?4i")%:=,( M- &0Q`:'4;QRKJ  4.JW9-5_8$"#D 5!3733##5!53.9}}ic`no"!3!!5#"'&5472327654%'{cE61-,f`7)=;A++G0)Djb:[W /5(B8L2 6!3774'&#"'632#"'&547676767{ca %B ,L53ZFL4:s!*-P@\)C<@FM-#)8:-&VL"%<W@T0*0A,7R s\;1- D!3!#5#'{cU,:*. %M!33767654'&#"#327654'&/&'&547632#'"'&5476?#{c+'%;9$'k)K25E>$#A 2D>e_;JG !.-!# KFjdBNc H!#%4D=o#8Ma:5*4VW="!%'.#)l:55?^&&K:*G!!32?54'&'"#"'&54767632327#/#"'&547676?9>$2- GL9 $.(,(&M  ;KD=#$$9dFd8V&'I<(?(& @ -3-&  ><%$;.!#)("3!!32767654'&#7632#"'&/'&'57#>?* *OV:P%##(-6Q4614/6d +-"=J]E]N<)3E@jKZ" *9"7!!4'&'&#"6#"'&'&5476325'&'#5737^ !%8" )gA#>KS@'AMs@0 5  d(!)#*'8GKAy 0C&,S"$ Y=85(544  _A2*<%<)!'%%#,>^;<"3!!6765'&'5776323!5676=4'&#!49"EHk  ;< L/)% 5d8-(9!?a&'B$" 8-U#&<W3!527654/&#"53!32?A ,$c,>= {+/376?!5?6767654'&#"'76767633!39&Cmc/+*%/Jy; ?!/42a>>i;6S<xc ti4:8.0?R1; \6?C^nF8V<C;?C6767632#74763232767&'&'#56765&'&#"'3!3?"$(I3AKP"%h] ,B.(?4i")%:<-(c L. &0Q`:'4;QRKJ  4.JW9-4`8$"#D  33##5!55!33!39}}i.c`n"&!!5#"'&5472327654%'3!3`E61-,f`7)=;A++G0)Dcjb:[W /5(B8L2 !26:632#"'&547676767774'&#"3!3)ZFL4:s!).P@\)C<@FM-#)89! %B ,L5c?0*0A,7R s\;1- Dr-&WK!&<W@T !#5#'3!3U,:c*. &'8IMQ&'&547632#'"'&5476?##327654'&/3767654'&#"3!352D>e_;JF"!.-!# KFjdBNc +)K25E>$#A +'%;9$'kc#8Ma:5*4VW="!%'.#)l:55?^&&K:!?]E34$#>D=!#%4$2-ydd; I<(?(& @ -3-&  ><%$;.!#)(08V&(/37632#"'&/'&'5732767654'&#5!5!:P%##(-5R4614/6#>?* *OV_ <)3E@jKX$ *9Y +-#=J]E]Ndd*.2#"'&'&'&567672#"'&'&#"32?5!5! #*.&1;),! FKS@'AMs@0 5  !$8" )gA<0C&,^;<"$ Y=8@=YwE>SBdd/376765'&'5776323!5676=4'&#!5!5!49"EHk  ;< L/)% 5/8-(9!?a&'B$#9-U#&<dd".!!#"'&'&'&567672#"'&'&#"32? #*.&1;),! F=uD5F68 $I* bDdn.*/&/<37WM'<5J' J4[<.Q = a      - E o  Chess LeipzigChess LeipzigRegularRegularChess LeipzigChess LeipzigChess LeipzigChess LeipzigVersion 1.0 Version 1.0 ChessLeipzigChessLeipzigc "$%')./012345679:;DEGINOPQRSTUVWYZ[uni001Duni00A0uni2206glyph58 bɉo1C K$$r  xxvvvrvu~upychess-0.12.2/pieces/alpha/0000755000175000017470000000000012653231274016112 5ustar tamasusers00000000000000pychess-0.12.2/pieces/alpha/wr.svg0000644000175000017470000000750712641567764017311 0ustar tamasusers00000000000000 image/svg+xml pychess-0.12.2/pieces/alpha/bq.svg0000644000175000017470000001216512641567764017257 0ustar tamasusers00000000000000 image/svg+xml pychess-0.12.2/pieces/alpha/bb.svg0000644000175000017470000000741712641567764017244 0ustar tamasusers00000000000000 image/svg+xml pychess-0.12.2/pieces/alpha/bn.svg0000644000175000017470000000763112641567764017256 0ustar tamasusers00000000000000 image/svg+xml pychess-0.12.2/pieces/alpha/bk.svg0000644000175000017470000002015312641567764017245 0ustar tamasusers00000000000000 image/svg+xml pychess-0.12.2/pieces/alpha/wp.svg0000644000175000017470000001122012641567764017272 0ustar tamasusers00000000000000 image/svg+xml pychess-0.12.2/pieces/alpha/wq.svg0000644000175000017470000001613012641567764017300 0ustar tamasusers00000000000000 image/svg+xml pychess-0.12.2/pieces/alpha/wn.svg0000644000175000017470000001104512641567764017275 0ustar tamasusers00000000000000 image/svg+xml pychess-0.12.2/pieces/alpha/br.svg0000644000175000017470000000521212641567764017253 0ustar tamasusers00000000000000 image/svg+xml pychess-0.12.2/pieces/alpha/wk.svg0000644000175000017470000001456612641567764017305 0ustar tamasusers00000000000000 image/svg+xml pychess-0.12.2/pieces/alpha/wb.svg0000644000175000017470000001377012641567764017270 0ustar tamasusers00000000000000 image/svg+xml pychess-0.12.2/pieces/alpha/bp.svg0000644000175000017470000000076412641567764017260 0ustar tamasusers00000000000000 pychess-0.12.2/pieces/Spatial.png0000644000175000017470000004021512642235661017134 0ustar tamasusers00000000000000PNG  IHDRMbKGD IDATx]w|n^TOݲ$r{o1-ZH!4l@B &:.ظ.[ev~wNwj'l֗۝w{h4g,Fl7$\37l7 ׏3 l7+VZl%^@Q48wOsn‰ 6CnnNۯRy9{a28p&ThQg|7z$Ԙnf O:zE1F !zT/!ɓp8ܠi4M&^hrLhҚPc )qwz\pBJxҨm IKU'K7K$yNghL3-1.b4<~x6 V\9^jnPPո뮻Ba6XN;}/:EpmGQs],Eu=h+TserGLVbSPugMMƄJ%RSS N ^S 55 j*ryTp/9 M7- *teB*3hc{^htDB ٤InZtc;8uB߅Fnw^>pWF5n1 LDFp}( \.\n\6$ #$qNL2Bxx C;Rtphw.EqF}IT*B!kG+WE]w2pW$}^ i;:BI'"~4 F6.|dh0zt*5ODW66KA1@ C @IIEqqNl8aft^j4 eZ$ih >rXA DUuudAQz%Idf(sq`;fI{k{}fHR_)0|xHK@E4aӦiV;w@|U}p=l?GDqEEh#[6 ʊvGCW6l.nw>^Tʪu$pd`+Z"DmnZF,3<0aCfbDᦆ Xklo|>n.N 7>'9p k; E!貽;$(I.G_tG&,gh4\I2, KyyCR)._<5v/c\.'bݺpy0ؽ0>kY(xދ;J(Nf;!rp~t_ŗ~*pg8|>x I҉4ry ¨n3juvennf &6gr jPGZjUQK}S,X:kJ X~93g&$Ip:]yr?rr2P]݈d/^F*^ &**PYԎȱ]煄;KXpE0 hn6Q Fx0JdM5LW!R IŮzWf$In)ASRVV׫AQQ!HOOc5kt:-jZ 23 PU$TjR*`YDPȐR\!?NR$5X}r;_wA^c}(PQ=Pə[|ymJJ=@wܟp0I,˭OKK&,+P^ސr5E$X,qh4z-[~k}8{;f Rn\Ue4A8MRKfGHʚWH4N4M}X\}RGv:bֺ;Hp:Mœ>];vOM;9ί"YVǧkm^klldv$%q&r?ސoh4v(bРh_ ND v{!I%+С(Ln7X ? osH"0{rrDžܹs2dSPdjհ۝$IA)W_otǢѰNQ$W['h*,_<ŀ\.ԩVBqx_N;bV"d(D?B}˲ ŧyAرl]sDN%^.=?|x3H"ƺu[ .3(CT((H'# VzJ%lv^Ue%ɍ*OVK`_Yv|647^UC1(JyFs#e)*JRٱk 5 J"{p:'~#f#Yµ7[C"?ZG}j4* d5G '>כVUU5/60 ic2Y0 ,vw: jHp0-i G,XMs`&;pknl EENm>Kpرo#^d5Ap v`Y,+HDIDeI$R !40":\fOaaXC$ =w!] ;O0?@]R%\rW_=/j{$p1!50jTFÞBEϠAƠ _ѦmA (h[v `9HG|%*{pJ3Y)=Gw8%]:fD:[K,+TOq^Ew@3 jF/qFO~Q,7Aقhm4O?2\.7h`L F1,nw|G3z>;z}8|eeUp HNsfۻbŊ1姟~VҲh4z>;p:]8~4|gOQU_L&ZJYL}JV'xB['Yv0 VgWgyf'^#jk,[li섊Ci(`I|Zx$Rx!Aj'bϞMM;|0tF{KV KB$-pX D~~rqx=ezBã| !8pw?ݺul6˗/ɽ wvw!47{A"u+[nO'[x4r!@yi?xx^~nmOB ( աlgFQr#ܣWpIغuW{8qrhLN~,{Pl:tW7R A}Dyr{11^qRSO=.6& g \n0 0,\.<_M\U4Mkצ譄 _z_ .قZ[ԶmJ&O,c_\nر7"r̘a>} *جòeVUՌl(EwlF{߿l; p:hii ο"'΁O=rnƴ ֮6):v섺d :ۍFcaG'{s)S@ah cǪ~p[u6 e-ق)vW:o?0<dԶ clYOװE6瑳XWZ54޽N%IBmm-Zd2huzC΅ χ={F,>}r:iLJ[񡬬#G"FU7o b>ON*&)Ɖɺ=p$a}d$\w%/~[YQri÷/p`{P^^.Z mrvP:ޝ[}9ɧ~ D禋L-J3f#'|>w# z_KG$@DIؑCyسV=*&ODC$=zDb`Yn7p?m;qċ[l/r:-: E80ۥѨEg]dW GN$|v-VܻHB@w GͿ<=;%f!py3Ґ/f#liXQь3fff:q[Z]!!)-ذa<;;RX߬T*a-o羇M&={ʒ;#[ H15EƆz\4H)hUVr {͟pضmOLYY|fL&ʼn)!-]ԳzZv6!۝çL?X~h4E9PѨr:.>|";~:b-upNvvZT KMrAR`y54mv{0 }'6)kOD*[PQ |;mpٷPP\;GT*R)!`6[f7Ass+l6g/m{fyn׮#S![x .ݒpJ|rҵw-6|,^>BRcѢx>x<^H "`{`6;a0hpP]]}F54rA6Nt̝r=:a$P40vVy}OM_xPE9|'e˃F54Mx[sI"?J+VΪY[" Ѵgvź_0 .|/G.x\QY_Y ̘ ÂbkTp8YYϾ'CrrrbxrkA440,J%ei z45`Cs Rh4ꚛy~[2Hqz5RR4Nɲy^6iII ͱLe1qd|p{_ LSj>tc>׷aؐ{dP(6a+AzZZx Zdeiq4z*)5mؾ5J<@0)5U8uJ%rP.{䤦nŕ FcE GrAT\hU vJf$I”) ꑊ*Z%ƌI"$?#-@d $Iꕌ4Mss32EQA$E hE8vB!lv_}_~|۶Ck<2^*{jt7\5 vBHFsU1Sweǎs2 yXpX'x|]YR"W`ͦ]2-f . w@Q Xr`fuHOOɥ%t"dQ2hUW-Z <"=\q#mM3zw@pӵW=˵ewtȠ]fqhN }. k֬{A"r/6X~ɑ:EL ؈=@Q+ :v;R(-K.0x 2&art%NJ "hl6a7T(bXq#WT.(Kva6O¿ 6Ԃa|!9{H'v(# woz<&.׉ce'F(@,V+TJXKoc/N64^@wBt{?NO7oƤvH6Buj0 pCO) Ǟ{--xU^RP$r)ckx.H}dcP1@x<M((0t+NL™W}[ Ya^{g].߾k峯m9lηHb 6`xxKWG%Ai)؄rCCr2 4H":um/=dTŠ(k࿛aڌY4AEܹ; beKjpᒎiTU8x&?kP9zu 3:Uv᭫_t~}cRW"؄–=wHkA?cB)ڟ8JC/</<_P <*+: BA u=uGS[뵍Xd i]y hA3KXVА0_?nbI 84/.7m!NDv>ԭ 1ޑjgnw[8x`?n e!tM قV-hjlAɊ]aThu/L1 *F]u%r3RQv B&AE(M4r9&M W?Yȑݶ߀n.-Ew,5veO3 Zl1Swvlw cG`EAnn.>cb7Ƈ_hp FPUYط(*+k Z#GB3;eRqX:uPs2dgK0b0|`];Y_݈iGH" ?L ,,º{`D,3gLJ_n{ᅢ⒡=f,XBR)1~HYz47[ IL&NF~~jE$[Q#J4TfGGL[v5r68x{jfw]a;( tbp;/nԉA$ Mͨ|C.?iIZd'!#EkOU'u۰?/\w9^E`Y]랠;j^n/ݜ()BADI}>zO8msַZlA|dd~⮕/XÁ-[1nHd_/$IZF>) NVdh868vH`h I: GeL6 #F`z 5ub@uax8^VA0{z$%%a ]"18A8XV SkdBuu5 z~~}{xwqh4h4zhu.XOM3f4ż ׏3~㌢W & 'O ;s'p7\VTUUaQ6q3p:ϙdCZ (9V+L&Sjqk*5?/##,auv DZcrوί;=ٵ  24(0hPw֝u=pYD64WB|4b`Yw6cQA>/DI~$x ^ZfAU*MMMkFRyCyE 8=[U^ysu94ͽ=3Hl8B >H$x#E?K3N^ c+i Jxr=ehHy$ 4`P@8$;h'*"Ol+ y}x䏿Ũo/7lE#q6;ͼMy2 ʪ4-1.2rxFDec\3ap@]eM]S"moX FA0g4<)Q7w $z'QA_d\ n}߻w/0xWQ*_pA#Gt\E&*:l@b.'p%^ 5 _}YصmDAm }q,$MϚ!{TY՞pzv̀lZ:>_Ms,{QNf:x6Y.F $ ‚n Cj' U__B 8CFFd2Y+ (@| a`0VAR]k7}ko*Rf:%9yx]SdYvtfX,XV*;;ne(iS4/+eRmhCߥ ʟ7#Ti<5Ўp7ǫrB>Bڃ &N9p^ 5u( ܹc;.+^Hk#?r?:.YIIZƎ%TT?^SQM\~ܤ?g5uS*dJB $i@te!8*/X3yd򄉓csw}KV&$)tQ"',"oDhD;}y3^zmd &-7^/ @Vt=<4*% hHѯV)ʳaǶp:S'qx**N2|чVWWbonALO1CPQ!'3+#Q]__!]gYvnXqAqQ"PrYј?p5(fwzknfzdgp E* +>#m- j³h9x8̺xn>A8ٌEa `ۡV)Ċ?`q-K?4oŸ PUG&zlvg LVfaeu(`&ef,PT#J6 ܼlCnF Qx#r2_,ɨm7z!{="ZHtAFF C '=Pr͍Q}|od2^&]8UQl{fHKKGKK N=T7AnGWmW?yœz0_/}@щ'=DZ= ;=9itP \ܸeW Ԕ{~~LIPY]P$+H5r|Bss. HAA{@KNNƉSQzz⹗0",r\yb?ٹ8Vv zյ DBS ***?xZ.XK'_mYJ@v9ZJqK's7>Pd1Z(@xѼTZyE!:PѨJ0r9wb$kQ"]BZrRh H:W=l62ӒuJmW:ʼnۍ 3 X4NN$Q(5HOM*) , KOկI(@>t`/*-Y_J ;ljD~k7(cE6vehln^}<<;XVXhJwae3۩ӧ_&u)VxI$ ྻ~$ݾ2rw(}Zrc-,HւH|>V z%Ӌr3`a:j,^)6GJ 1&Ne+1 ̀K{j"; r`immwbڊcE/7#==K |>旦'?';~D@D&Bk4yK d tI)ڇ+t|ifwe"mxv Ri/ک֚jL;HLGkT rXۛMxu<$j^|M:&̽htD׍QnrI\u}[WMr2>ng߶]wӡ V@i3fٗDs)QYx֮--FAʼn5y,o;jh*++~n~!s2|x71{ڳmnCNiw'eeVfH**QC)䲰A^zd-mC'W^𢉣ЄH$N;k(JCq5p,bsBP .WZc/~뮘 Zz=~j̝66qk4t$RRRh} > s iϼń?yQdר(.Ƿ[xe=x5aTn6x3X;{tm.6#/Cђ<7q7&3S'l!Rta҄@V?ߏ#e>x JyărT0g^t3lްx/:|3g_yKůo.$Q|*}t7]5Wv2Xa}ms|m1ΟG6\t(| ߱SǕFz-"Bjk:F !ik}\H}Ǟ}酕ݝ'0m7>'cYx.۞r9JGa+9ҊB݇O1te7]sGWżg:mZ#}>n_+ "`d!U%M&xwbH~fPAxĻ.I! F蠱ń^p`kh\x]`(Z֊0|&@ŝ-f}@-wC-JJa{S:u 'Orr+#;0dd8F%Cj<mFz "@X"􀤨6i;CJuf=m?^~yT w>>E%a튰DsyL?wpE ;puP2D@$ $DBR`!m7$qID$46'{pi&V$Q/t D >o$ U`ozL8Q1aHmj]jq#m+pT^}slsfe*5+#y‰!r'Ceb K;M.KIz]B '\r;HnDҨ ˸P`mW__E#<$>BeTځ(љ%֭W^6 m9h8[oG<`ېʨ1Mk($MrmKSDIQdi1U_K^P&CΨqIJ^{g=єNuxR\\ tww32܀ɴJ"VI.5%A6r+Pn`?9>*qVȎ -%iôL ,F$SՒde l $Զ^N4_L0L͆%m_bX,tH >Y"\kK 7]:֮b43G:0M* yY~M sKeV\͝i㾛Ȩw hI%2ꝅMi>3[e]Au](²o֘)SxiǑ%Ea1- x8h"Di|nrfK2I8kGq 92nrR_[Ƥb&TQ[Q@mE!+ W=O<?[f$I=.]׷x=w,rsjx. 8K*XY VhRD1wIJ'NYp:fErI{yട Nb B"}iDJa }m;fݺ"`Cp$R C${Zƛ>QpafY}m̛uʮCt pdJs+ͥ0p[vhh\)`4',:.YM&sٻo]Q>)I`RT2F`AanTZ%Ƞ5̬2-b)C̟cm8o. h$ a+g2N xmhb_g׃4)˧g0J yO+  xƒ E3˶ z<:6DQw,TmKvVuO@p9ñAý^U'?p0dmBeqބp4Ś}̛Renp:5zhMtIy"#D3MX2P4 zv{8]WA!ht5#Xj",O,%KQhecZ6C$5Ɇ>ȲC,5Ov9\'7j زmH)41dxk{y9~ Ct D.f g0TR^+mr|I@ǚAh0pWp;Yi! ŹL_Dit6!?Ǖ`[6ñ7u1I:.1D#E8]OSW]BG3ie 2I`ZeQA7lJhA^E30-xJ!Q1L E4"`-e]7rҗ^2!$QPYDuIe [L_NÔj2\>gO[ΒNcI)?apN*D "L5ŲX0 z=5]Ζ&aN'Y46;La&D݄fcac[6mfhwme3}BnvؿwOMF b\x~SdZMn'4Eeq.n(0-bI,QwOw[ Muq\x݃QJu;muɌ(o(aL¶m s)S O!NXWn+bK?N?_܄m@DJ r3yAKF78:NͲlM!~?Wt˭%%EJr=TQUv# LunJsp Iv1w,Il/ M1-^LeΫ3 rvṷ1-H{2YsʢnδR>7epH̫aʨx\2nrX8eoz泺t7W Ӣ4A{\>եd4SB7MʋB R`{ϩa@nni1I^K$?gRU,kĶSEk™EYalwEթ.-ݭDi$Q̆dT4B,!HDi55֮y>7jn>sGgب.gJ^tݤw((/i58$m)E91L>A@ӵp.S{jDYuY EL_#ѪC El xIe4vfժ'YBHf/yqų'+x?9eg̺#x2 9(/c&TQ'Cl'oƾ쁔)%uޏi0"ed iX2C,!OP' HFذsen*h}l˾;0q=޷*7+CNkݎ+T®^>̶}8r1u^{`0׿M8_# dT<,+P|X6nc9Y: ;3;ۜX"3mKzx2QL_K#NAY);hau9$/ŽΨpG1e*++'<<@89rܶ#FDQY!sw,ҊzW8Id#Bvs>_5:tA(,,DUU)((8+KH  _:MMM񸑤ˊdžj=Cy=i w(.">Q\$E|`fb(6#A~A!㨬Shg DtuL.`ZM15tv{r.|hvN0-|q~ `8C]ڒE}1c,f̜eYΡ}oa*|'gxQsg ݽ}e[ eϽBC=nXr,]~ 㿟},+W!~$:yƄr[8/Xxɥmg_f (g__.Ki4L2t_ۻC_A/8ڸ ࣓1|.F$5//_Jeqv&cJya>|R6o0LiiXMqW/R3'UC$_(lP2XmC7N(U{SFE}u/>]7-".k>ucDQ_;WGgg'nMS0K]5f[|O'}nA7LZ&{\Ē̫jT< R(Vx\YuVqɯs.Ć_%G"ٌl 4 u;AݍoQUD1{7rߘ\Sӏh"VirfO znIn7 69N yTgN틄0881u|ӏH@S"L0009㲥 !/,R|4;qȒ) ;-L)u:uV$ܵ:hƶ$@q^0R DQ^9/ܶ&n>ym P[Qe'2Ǔ.ql|MFOtDZ=BrQ hgTKNy/_ZdjmikOtF[);6^4Eӯ^(޽_kG}R|Iny饗DN/aą ˲Il^~#Y -y셍ZxcCd2/t,L_$e-9އNm'Q I"feQ4tä8/pHS9~;Z2^L8D84Yv-gwޡ~3x'yؼy3ciA?ض?DUk7:Q) ( l|IŤv,fԅ|?3{~4QETFA4'2iE'h \G+ H?4ܓ! A(+ &}q B~ 3g]C+'הqZinaRn4f=Cm>`$HQo3J# rYaHؼ0TQR'7je2nF[oG! $]Eό3q`3~܇S[^,APsF-|,\4pw͡ʢwtFZϽck[Еz} H2H%ֲoxߨTUU%r}FqλˤI9t`Y:Bz6fհ?H>Pvm,$s?K&wiE{p,k^0/֮dFi9ʏm۩ӴFF~ƪUF8NTUOGGaPQQ㡫w}$ om~OoO)H~~!TpcT&Ug&}8$Uml^~Ɲ%3S&4˃ z+Չ!C4iXp!LG}n ˲;Fu7|d2ɢE>V&*kI vҴw'ݭp=4`xk !ڱs8$q:YܠODDD^~{-!%K}vϧ׾Pz,0a/ir^&VdiEq1sNk&+kXv[Y~(r*0eסnݰZ}{P YN8(2NV4iN{gE[dܹg $xr؃eX$[oŌ3hiiF]\/ ?mmӱ[2-Lܤc@p,GE(؂ m غe jdU.X~M{0'O! @4vͲ`g^{Zpg[fӶp.lݺugr}>.SE]'O w(>X,ƾ}$I8rss??8 / Sg"+ǡ^Xx1˗/g۷k /Y`*\c B_w p-ͳiB}}HKOO?0===tMqr-^_xgKsQ,˳].[//Raa!.?яt˲k=Hbl&n7Nh4Jaa!f:I~\?ncQc0*y<ٶkUV6lؠ!>9%%%e<EQu:šPh_{{%d,^_~|EaժU?#+V8N~ԩTUU{uO !\qnn3}QM6a?[M qnƊ =WoϦM/f@Z^QE# \o `֬Y^H$”)꾈.8 Vs=U |r'q([nV%l2_ii%NJH${ǺuFf6LL&3BzN)M{n̙C8>i8E\rrQQdؼy3mmm#HeenLiiS;;;;mIW,XF 8mi'˲#Q=}ꢸ_ŋ+S?XɲP[[K~H۶mchhFR 'X"#<(ʍ wq(qr-%'O>mooG*;HŶmۘ?>CCCY.TTT{*7|3svuQnlٲZs_vh4ݰaC`„ >$GArrr8B#ڱ'Mrشi8 eee/=C^q$IHD<GŔiF\y9^dL$Y $_uG?<cO!8p> OD  ''k_~$~JJJIyfϟOooV0 vz^<ͺ/wbg\nmNUUxb׮]ȲL"mVSX EQ?~q,?UYY|3P(iIe)--8"oo~{wľ=4{hѢiym[㹧'07̯B3|l|%}3Ja+))n{H$xQUax&~bX?"J2$IJK[>Vb}4gѢEkn>3&O~,Yƍ?-[OTUEf ,8[f7xm+,+dn]9Ϯ+3DmYK_imݧ(𛓓_M6 .t;iN˲tñfĉ7{lXp8eYIbeMMMm,(A:&&L@ww7LVRay-Z4*LfΜɶm۸B8_ۃΐ(W禥Xy\LƲ % F [syQuzYF'bǒMQB%%%i׻i̙+}~;ZUMNX뻳Yq8e=L(x<0999|;{PUW_}8/Db 2>,^-W`j͈lnX#9~7* dxVB&dhhhTmfEbA~{]w~x7CCCsrrƯXbŋ]hcKss~CaRb4Mc̙ضMwwd맔X DQ$LbYio}[#ך7={Xpq{ٳs H?.C(>L/g9,;m*‰Kf2W/^DQo߮mܸ1c澪) }>htD۷E"m}ĺʯޣ={,u룁餯ﴎER)RDy}.a=.'|2v@7-cGdŦ/#Ls}Ӷ+1t(N$\sii?|ͅTgC8{ʕ/ro,cΝK/[,ˊCӴXu_|߾)"Ƶ*k0d԰gϞrLv͔)Shmm\z7ArRT~?^IP4̪DѲi.ӪƞC]HpKy"999+j>mjj]K,yOOs3 {5Dbp7`'x7t0<< $4MُԨfӦM,Z_|#-++!\cc#555̞=s+MQ\RNz]o`jm^9E5Xv ]s|,kLGKt: 8IteBl޼9dvwvww_bmsג$O?M,pm9A4 0}trss?tqREQR]]MKK W]u7>ʛ ,+ ǒ*{[{y-E4a8b֜'+9+ ?phj|!˲9sZe=J2K&$DZx2.g7 [vPY(~D8E"gN%;wT~ӟ6bNϚ굮j4MСCy(Rb}`ǯ~{{{Mho֛]w%N>t:OX?v<}*Hnn.\r$AkK,AuEСC8^ڻL>7wޞҊC nX ˲ zq-=aLu['^sISe8Yu eFas {Caa! Eww7 6b( BL2`0H&Ç?E^^K]fl~dF%ds.[GEQh$QﮦNtUcJagΊzyyrĺeY%SN n:>YbDMan}}}x^)++ò,Gee%e( ~~8p}V z)Mp#j\tBt!:̠&cV<]VVvʕ+_Xw8===nAhoo xp$aH&ӃeYaÆhFyy9pE0v_ M#gi[Uh2CyQ.!?j`Y65e5gp999WO Mя~Tc-]tu]ض͜9s0M!$a0MINNӃmool2MUUy>5in7ɌFYa6`i:'p8DLӢ8?c8ks:3jkkXjUU^^cǎtKK ---_3fF;bo[jhh8͛7FH3<<̃>}ϑh-cmۋ!OEJ2(&"8>Ke()-""\RR?xhhN$IwqG֭[~NMӧO]RRlLYM#l[l7o&H庺|i4i_W.BnK vQZĪ"3BSW.b:N388HGGTWRRjiip qrַrI,%,ӟkO$4pd2ɵ^s xW7ɥ^kF(4Mt]GUUpjvv!ᓒA<(+_v7w@w  lj?˲`]]]HNNիW!ˑw߸Ϙ;74Zp===?iβFw¢Ewl1cBCC%_l~5رCL~53 ߫)IXBxx8ێKv ٳ5 ;Pf\.Ƣ111ZARRR '<:;;;+iHWݮlFbb"!JCii).]*f7 LJ~4̚5%` СC(,,Dff&n7z .zՊ:i<3Z[[a25ygΜ cR)/IDATϟ^{ _q9DEE!** fA yyyARRl6<#G@ .n#::+Wĕ+WDע{t- ZF\.wlRtqIRtMoP,a(JZF?nb̙i Àiqjbx뭷vqYTTT̙3pO>$R)vxxDIǃ?:(((l34N̴iVS5Lcc,ndY֨jQ188U"8QZ[[?7ӫ`YE!==$I} nKHH@II `Z100pKZXj^z%x<\.|2A@SS͛7mmm(++#<2G8 gx;po=u/NH$˗F! EwVJqصkz=>St:,^YYY7oΝ+$YYY8vQۮWm'0k,ٳ<Ȑ*ؖ/_/qqqx Gnn.v T-z*Ξ=Kegg;8K 0J Bqn0%,eq)ܹE ĤÇJ)))HMMEBB:::0c ;vL( >KO~gϞ> 0-(@ A`vQWWNSplXjA__;rne& H81 nʕ+oJKbҤIp:8qΟ?L^x===x"{=z@*"99y|+V`ݺuPT(++bA}}H}t LRKdx__!;;EEEظq#&oz)qi2@4x믿㐑+Wl6eYvJS(%NΝ}>F D\?)Ǖ\ߧ4MK_yݻwmÆ |MT*}T F+G Ʉ$''c„ HKKFUUd2.]e2L>`Ysy`?ưn(\pWB@oo/>#!$$O?4(#Gpya5n8n׍To|>{[[p8&4Y]=~ZۛX444ncܹ3gP[[׳pk׮7b)09s@zz:^~e1\=9_\\wyG<wp8x<4B"7Fˍ܏zTVV0HJJB\\8)DCCl6_Az믿} 9x,5\EQL&;;888&g3$&&~3P^^h41j"44O=Ԉ w {q^|E~ [ĉp80hii |>ǏYH"G-..N8u]A ??Xv-ĔXAVKw!8Z ePXXHH$!!!A4n Nzh4dgg &&WMhF-66P*IE A9s&$`@w< [p@@WիhZ__LA`y׋1xh566~G( r4MMAΠt:=y~Ű^xqqqͅh~L>@E2Okk+]1Ϸ}֭5#߷4]<&nDDD(7Jh4Q|c؂G?233QTTW* ,Xn90涗Zw#Ir\;U'† P\\|Kjy0,fӧm6v ^1%wA\ cƖw>B4,<eR0  AT*`ŬK9cr9?At:0 R A L&ryEfϞ J5dl.ܥA>P*$ˡP(D L~g+2MCӉiUz *JN>E1#`XĞ ^Lh ^#f `ڵ:---iYYYt8q"f3&M ]&''}Hll,뛛4Mvaaaj0L3g<t:ȍcXp!lقg} 4Mp@k4f|vKJJBqq1"""D+W~0 0 ʂ 8{,rssNJ߿87--M:n}.Oc8$$$/@MM ,Y4lFtt4( :wwwcݺu8qℸ惘cܕHc=R"'''OFLL̐ܳ`D"h+7Kw}$777RK. _P?dxGOO}Q455wdTUU!X#JP(:H$ѰHMME]]ߏ2f!$$k֬Auu5JJJlٲ!_(08z(4 ǂOp8rg```êU V^^,x<NJQ^^VT0y1EA`ڴi( 6 ӧOէNsseee@-x\K9s&QZZ BW~"ͮIlj5 ckxCss35T*՗1r`0 image/svg+xml pychess-0.12.2/pieces/maya/bq.svg0000644000175000017470000001541712641567764017124 0ustar tamasusers00000000000000 image/svg+xml pychess-0.12.2/pieces/maya/bb.svg0000644000175000017470000000752212641567764017103 0ustar tamasusers00000000000000 image/svg+xml pychess-0.12.2/pieces/maya/bn.svg0000644000175000017470000001215612641567764017116 0ustar tamasusers00000000000000 image/svg+xml pychess-0.12.2/pieces/maya/bk.svg0000644000175000017470000001310512641567764017106 0ustar tamasusers00000000000000 image/svg+xml pychess-0.12.2/pieces/maya/wp.svg0000644000175000017470000001070312641567764017141 0ustar tamasusers00000000000000 image/svg+xml pychess-0.12.2/pieces/maya/wq.svg0000644000175000017470000001572412641567764017152 0ustar tamasusers00000000000000 image/svg+xml pychess-0.12.2/pieces/maya/wn.svg0000644000175000017470000001423612641567764017144 0ustar tamasusers00000000000000 image/svg+xml pychess-0.12.2/pieces/maya/br.svg0000644000175000017470000001020712641567764017115 0ustar tamasusers00000000000000 image/svg+xml pychess-0.12.2/pieces/maya/wk.svg0000644000175000017470000001340512641567764017136 0ustar tamasusers00000000000000 image/svg+xml pychess-0.12.2/pieces/maya/wb.svg0000644000175000017470000001201712641567764017123 0ustar tamasusers00000000000000 image/svg+xml pychess-0.12.2/pieces/maya/bp.svg0000644000175000017470000000721412641567764017117 0ustar tamasusers00000000000000 image/svg+xml pychess-0.12.2/pieces/Kilfiger.png0000644000175000017470000003303012642235661017270 0ustar tamasusers00000000000000PNG  IHDRMbKGD IDATxy\T3)l% "+&nu+rռ-֯E[nknݺuo2zM-L%P5dgaf# !s>||Y[`:C,X@r+bZ ZwIv:0(vwN9z(ń2`ҖOQRR?:ui[7nAuu5<@Ԥ$.]ƍYhׯ_ՙ|lz4Rf:32Lolu\p&n'/^ҥKŋ8p@ZfÆ UT}  ۑ`"Pت PPP@~~>jr \npٹ:rJJJh4fЦSNk.BCC5}!$$$=WRHJJ UUU{G||h ٹs'sE0hطoU*III\v3g]68777KJJ8p@# )--&?nqL?9 S ,f~hKSRR> p9.]ÉN4 c+**bϞ=dff}78p=6mpMΝ;7ws|^ *&18&EMJJP[[ˡCHMMe˰ee?~dZELIIaȑiq ͍R=sH$VZ A15R&16K ĕ~RM8ر]v ?1j VKVVZ^JRn9::ү_?ko|ǂ{^7=,x*Dcxxa2 cNGEE 4hxo9s YYY-~ѣ q7c}1c+SstF\}oS[>>>3???b!$$$Cnn.w令ݘ6opRI&b Ã@:w 2oQZZJVVՋ}ZJI}}KiW s=ʀ{ϝLѩS'f͚/̙3YdK.+ϐf͚ŋQ*>m@Ϝ9>AׯӻwoknuFG(wߧn ~O0~^^^dF'Æ 32JGGGkS{k 4Ç|mzW.]лwoJ% hg ~DA55Kw#87~blDĹvvv4'$,n...\k7w #GU_I­;a<7?x >`>nnn: EC둑FFR8s 7oޤJT*Kaoo= :ww 9+ 0c}:xUpn`YkݛCHRmCr6,+H{iT]gz`cѐ&W}&Ր!D{+XR'''éSZ*\\\tT*kUUUhZFZSScdlw}Fe͐騩iֽuM60 "nԵmS7R`'!k*4b鍹jK h(+W4 vAZZ>>>B6mDҥ \rŠvcp-Խ|j^@'&gݻWM233t7_>==tS h3foR5GGG:JKK[MDϐՖ}v;ƨQ=NmeVo/cYwL% -[ؒ6oٳg0aB[B¸]{}`adjo3g0qDF}Z݊%%%\6Z}Yrq8nۊ+L[5joYYλ ?߁4$fjrvkSw;lѻ]hM&i͊Jͣۂ 65apQ: ;JeA5ۍXm" wV `0gK9s {it?#z@Ԯmvapw{Ͽ9]c!z:_#1bmapw$N}n۔xGD׆U ;y$K.%>>UV{n>#<==m"5$۶mj7tzDyצb"hfpiiip8ݻ3j(&Lٳ3g ⽆ ?~nHRbccr ii; NۑT B5!t!nVW[[˞={XvɠZD˜1cӟľ}V +>oR Ν; S(w}TWWӿzB0{9IӧOz8h$"53wW g!ybA \FILL_fC$ 3瓜LZZ=ap=X:K[*Mo!Yy˞7XilϛnW]W~Yv-iA&zuRTT/µkɡJhZrssh4OPPaaa7vN+o  :I/Cf "h4;wd˙>}:O<={ӓN:)J***(((ܹs9r%KɠA%$u[xqqq1m'gϞСCDGG8y;*  ^^^ٓiӦp-Zđ#GHHHe4RK;#:M8bX`K簫yyuu5[lA*zjZ4pwwg„ >-{fn޼yGW'?c KGCL$Ңy+)<0HmdpJzYoqvvhBCCm˴rID;MMܽa+Z4 lsuˬ:4Fkm3hvoluj0(:4axAxٸ."ҁu4G"jzᐛ7ozj\]]YzuYHEEiii>}ʄӋ- wuuu:uaU6 )))aժU{L> rJf͚դJuu5w&--ޞ!C0lذ5NmUUпiiinj3 1b2hnWZZʪUxꩧx'J;<|Wp-SUU9ZlٲE0W.O=z cIQ+ksjkkYn=r>q5ۢݳcǎ&ba$IΤIxs Bu BCFn޼Yq~Ϸ9r@2221O>aѬY; ؊".]dQYKO)?_~׮]񍏏駟tﯺ?"jjj8u%%%?l>cƱ㣏>bĈ]biv˕+W,.[ZZJIISQ1gpR`o]#**M6Y0b3V\NT*ev\z}RԪާNP(_UK3a>f̘D"!$$uֱm6g1WP(Xx1ݻw' xۻB፽ǏpvvIJJ:wLNgupGիW FAغu+=+|tt4 '>>R:::xbZmsd;wn2WD~)_"]hQNsA츾`D?wP;wIʹ)SpEA`ɬ^|!/=iܸq2dH;/kɒ%;wR*J$t:9sW4)))̟?QE!TsvvGW_mtUڣGy䑻#˙5kÆ 3`ҤI0Gã/zԩM>7otnݺVZ-FqeIQVV aÆ z!gSL47xEF[ΎQFO~~^Vلpnw}N:$Jd2YL&+83bĈוJUNݵhD՚+GRW* Ng6r= Q?)))zǎߦl+$%%_7:䫯… ~  `d{l߾fy ٸq#wJu {i2+wg 0U JRRh4\P8*.:S|ܼyjJh4H$\]]Ѩq/]DΝCV{2..<44kJJJΝ;RSSu:Qӿ1)lgcǖg9R rqq!: tڕdƌCUUΝ#11oL $U*jh~a BTT>|X/}O?DDDfpBr w6$ W^uuj#:T۷޾}0`l.] 䆘@fDFF_raV^ 2I&;w| fDDDb j5/QeS{Ǟ={Zu$\.[nVc#j]Y* `歲6ˋ%TIDATy;TחI&QSSci4R< Ewtt4V(~H7}-ݦ$AQSSRD*HGDDЩS{~NH[jptةS=zt~lllg PRrsrrn8q"b޽#wNK!lr^R_ҿ{S7:uB.׭Qܼy.\޽{Yp!AAA 0{hnH[bpo[ưaîJ$n&6q*]&ӦMZm#Gy]tr뛱0W) [n|ᇌ1QW-{{{|}}%&&3fPRR‘#G?;$%>u>jժ3w! HRiȑ#IJJ*駟n>SgOVɘץ,//gʕ 6fGa޼yV`ccGwibRSSccc t:[lll3g#-NWTTҥKޞѣG냅Xd #22uѹsg|}EFɓ'IJJbƌL:TŋO>|8C oP("j5CUVTT!TM0AZ[[+֭[Pddŋш6={pAx'4h$&&ҫW/^y ˗/ёPH$ܹ_~V;~z6l# >8q"۷o7$<<\]]={6sETO׬Y~UũyoV<`I&e};Ų-͍"pqqۛhZ:XNwm.Ru,*++v<ٛx뭷 UӬ^S?2|p19_~iQ@3Q2o޼ ۿBz뀇>aÆuݴi2`HwXurr3[8D"СCYSV%ݤ-BBCC͹s8x {ä3ЩS'RiL||<555̝;/7zvUUUS):V+'"a___z '==q4e_C)`\.gܸqL6$<<<(,,ڵkdffR^^NYYZNXXs ֮]?o[%αch4F󮂂ϟK/: `…<W.\`ͼ7nѐQm_rrr4R7**jٲe111/Ig[VS_X{tA3g @^zǨQ@qrr ;;;T*Jj iӦ5;a`pk$ʗBdd={&991X>|Veƍ]h?-Z 5R6|ȑ.>>>c~[\iۜ ,,(>5U5j/^oookkkF&gno[L&{\VV^^ndddH$4Z._LYY% #V`<4hZtϮL:u|>J 2dHnFFFo#źz^H$ZMqq1(JZAR9$ ...Tᢣy3fARLJQN]ن~HkEdNׁوyf^@nݺA`رN~{駟0`\0jԨUVE#c# ܏bUVqU\]]ӧR R RѣGz* &+<'cc\XX{f^^^&eJ%ݻw ӇgϚ,[?k]EEߙ9sO(..t4gqHppp h4~[xw*u:]F#ׯ_-03'd?s֬YjLo$%%}VRӼK]ǨH$<)"##IOO7ZafeeѳgOkuee0ol?~ppww? ED?'jFR?1Wlll7`g7?]_8GUUU!j`nsɉf'm уrgpϏd7n믿2l0JAA888Eby뭷:ths~xǎ@ETTTpzzzη~;lʕC^~eN3;Fֺo߾=Oݻ7$99K.!ŗ]lRDXnZҞ͙H$<üK???X|9>~~ɖ-[0\]]Y~=&L <<RI~~>{kٳh߼y3K">eSL~S6#//P(:uP(9WiK4ŠAx饗X~=rP~GN:Jo߾td#ߟd.\}Ŗk1ucL8>uҩ ##8o<#Vqt:&NȢEڿ84]??H$:wwH$(Jj\.͍]!I$6l@pp- /orZuD4tB* 4? % 555TUUT*ggggtt4V 7fD"aҤI|嗄1e4 .]"99Cb/h4`ooϨQ>|8DDD ˹~:=-_TPP߂dZZ}###C~z\dU&L(Q9:N*J5ɝF!++ Μ9Ù3gسg=2̨$ = Ջݻ@FFFo2jٙӧ+ի!!!G]uԹe>#R)IIIƚM;iYYY_tt~VT? z@t/ x\|9p޽Ca "n޼yg.wJmQ9k׮V>|8v7ov[v-T*d20ydoNBBBj<www݉dرf^jK7i lܸQzj>Jr|?|?|*44^~Wzɀn7]Ǝ?ŋ0-aq\jxxTJwڕɓ'S[[kZ~ &)iH'DW%7DϒJDyb~|er4cĈ&-m7???&MDII UUUaJsg~jZ@``^ކboaG θ!H͛jCB lB[Fp#|}5cIO1sLz),N4// vm-MBfϻ7o^~BBBEhhhkL&t:NHRh4ʢ~5k|R ;-MM < s%00 j5r%=_|_oRN>**7|̾D"d>C_n4zO<.\j &dZDr=--M?~2:}MΞ=ˡC8p /2111Vʩ˶j‚ F{jv؁Jb֭DEE777Fȑ#9{,=\K]%mܸrhhhgZ^RZ /""}\rE~E0-[bn"űk.a~[7?tR}ނ}bggD"i\._~=zI&5GpbN Q[[fɻBVG$%%UD(**bٲeL6;wmZLƀ8|0&Lh&~W?TRja@]vء!{Ns%r\oeJRPTF]ZKRg@Dl$L}I={cg...snULmm-UUUmRjjjj MEZ2~܊3rjnl1>mVbA=m|pIENDB`pychess-0.12.2/pieces/merida/0000755000175000017470000000000012653231274016266 5ustar tamasusers00000000000000pychess-0.12.2/pieces/merida/wr.svg0000644000175000017470000000633212641567764017460 0ustar tamasusers00000000000000 image/svg+xml pychess-0.12.2/pieces/merida/bq.svg0000644000175000017470000001335612641567764017436 0ustar tamasusers00000000000000 image/svg+xml pychess-0.12.2/pieces/merida/bb.svg0000644000175000017470000001553612641567764017421 0ustar tamasusers00000000000000 image/svg+xml pychess-0.12.2/pieces/merida/bn.svg0000644000175000017470000001517512641567764017434 0ustar tamasusers00000000000000 image/svg+xml pychess-0.12.2/pieces/merida/bk.svg0000644000175000017470000002055412641567764017426 0ustar tamasusers00000000000000 image/svg+xml pychess-0.12.2/pieces/merida/wp.svg0000644000175000017470000001277612641567764017467 0ustar tamasusers00000000000000 image/svg+xml pychess-0.12.2/pieces/merida/wq.svg0000644000175000017470000001712412641567764017460 0ustar tamasusers00000000000000 image/svg+xml pychess-0.12.2/pieces/merida/wn.svg0000644000175000017470000001714612641567764017461 0ustar tamasusers00000000000000 image/svg+xml pychess-0.12.2/pieces/merida/br.svg0000644000175000017470000000631512641567764017434 0ustar tamasusers00000000000000 image/svg+xml pychess-0.12.2/pieces/merida/wk.svg0000644000175000017470000001533712641567764017456 0ustar tamasusers00000000000000 image/svg+xml pychess-0.12.2/pieces/merida/wb.svg0000644000175000017470000002047312641567764017442 0ustar tamasusers00000000000000 image/svg+xml pychess-0.12.2/pieces/merida/bp.svg0000644000175000017470000000577412641567764017442 0ustar tamasusers00000000000000 image/svg+xml pychess-0.12.2/pieces/cburnett/0000755000175000017470000000000012653231274016653 5ustar tamasusers00000000000000pychess-0.12.2/pieces/cburnett/wr.svg0000644000175000017470000000443012641567764020042 0ustar tamasusers00000000000000 pychess-0.12.2/pieces/cburnett/bq.svg0000644000175000017470000000644212641567764020021 0ustar tamasusers00000000000000 pychess-0.12.2/pieces/cburnett/bb.svg0000644000175000017470000000523412641567764020000 0ustar tamasusers00000000000000 pychess-0.12.2/pieces/cburnett/bn.svg0000644000175000017470000000442512641567764020015 0ustar tamasusers00000000000000 pychess-0.12.2/pieces/cburnett/license.txt0000644000175000017470000000017212641567764021053 0ustar tamasusers00000000000000http://en.wikipedia.org/wiki/User:Cburnett/GFDL_images#Chess http://en.wikipedia.org/wiki/GNU_Free_Documentation_License pychess-0.12.2/pieces/cburnett/bk.svg0000644000175000017470000000555512641567764020017 0ustar tamasusers00000000000000 pychess-0.12.2/pieces/cburnett/wp.svg0000644000175000017470000000177712641567764020053 0ustar tamasusers00000000000000 pychess-0.12.2/pieces/cburnett/wq.svg0000644000175000017470000000666712641567764020057 0ustar tamasusers00000000000000 pychess-0.12.2/pieces/cburnett/wn.svg0000644000175000017470000000422112641567764020034 0ustar tamasusers00000000000000 pychess-0.12.2/pieces/cburnett/br.svg0000644000175000017470000000630212641567764020015 0ustar tamasusers00000000000000 pychess-0.12.2/pieces/cburnett/wk.svg0000644000175000017470000000306012641567764020031 0ustar tamasusers00000000000000 pychess-0.12.2/pieces/cburnett/wb.svg0000644000175000017470000000531712641567764020027 0ustar tamasusers00000000000000 pychess-0.12.2/pieces/cburnett/bp.svg0000644000175000017470000000177512641567764020024 0ustar tamasusers00000000000000 pychess-0.12.2/pieces/Pychess.png0000644000175000017470000004231312642235661017156 0ustar tamasusers00000000000000PNG  IHDRMbKGD IDATx]wXSgO Ȑ:P\u!-jZuXUDdQDEЈEdˆ$?%$$}]^}ϸÃ1Ann.z %}2Ã޺+իW9|.6M322ʕ+̛7.[@C__K,.A^1Q]]-ߛ7ozX--v5ƈׯ/755 8}L֭[ׯ_ӧo޼9SѣG駟{?=yp zJ=:7 ޽[b̓9={'OJwI^فvPZZWzzPJdgg \p Ɛ!נ@qF˗/^™3gK.Eccw}c"&Mę:u*ѣjbC~f2$|޽ymN~~~=Ç?rpp:;;s<_P__ldggJUWWwn9ý8z%K!G `"mt:3gF^ keeֶ}(((`p~"BBB8pYYYߋb (**bW۷/JJJ8<<<߷[.ҥKږْϟ+x``7֮];ܜ%SSSî]:::RQ*)) =cɒ%8mۖɂD=G@[[*댰+ԈR5k֘۷﹉ >|WBGG*7o@ϙ3gŋ}׮]iSL&֊s_쿰Cqq1:(prb̙9m>3?l;|V  RZZ x\Զpe߿?oŊƏO-sm[Μ9md 0c 0k,DDDʪ38yzjm۶~'TvʺئluYY뀀`ddN~4hlRj*&JJJطo޿>~WYdǎ,rgmIo߾uiihbmԌu ev !!AgtKAwXgU }:Q1P;={]sC^@~.**:SPP y ooogΎ ;gϤ[VV[[VWRR3ޔq l_˗spwwׯAҙK͋@qq1#۷I=$=/--ͦ---koݺ%q| hiih :.RfiiI3:E'hii&uVÇ000I&!44h4^~-S{##P}酆8qb|ۺwܡ8:;;eee I˗/6N5_EDD khh\䞛FgϞ4 \t%Z[[#11~~~ԩ 0i$$%%G#F@nn.Ο?%SBdR,իfed۲2DDDٶnKK ?~&M$tTZJD>}Ngcc+V 77Wl?L2˖- : ?;;D!'O"!!8AoE666x9Uva۷GԿ}q}9Xl@255ceX~=%lF¤I`hheee#<<aaahll͛7qmH<N͍چ֤I`aa=z=?*++xbݻ{GX[[ Mumqu#""9_r)^LLL|[J-o=wA[[prrµkPPP-[b$ `0Xl^x6/{#~@yy9RSS? \Wmˎ?޳Ldwrqq=qHs m[>peݣ>])))4hOӧ FFF7|v%駟"..|||`hhAaʔ)pqq5vލ={aaaзo߸eD~~~$?{ $)WK TXX۷7nŋyfN ,@dd$bĈוׯyXXmm-TUU?Ǝ狫*kB]]/*4ikJϘ1c0o<; ouV{E{n@@Nw$% xqq1,XCƍ sx>KJJK d~-:lzzz8}4RSSqa#? ٳ't?̦ $''bt! ýU8bVVV444UUU(**Rz*yDff&={tM8FÐ!C=zTXƌ???TVVbwݻiӦ!::L&Æ =all CCC(((bbAGG^A?~_|L&;E{xxP(Fޫ"Į]:tKj]|y 6Ϟ=Ǐ<x Z[[A444uuuhiia8p  www\~8{_sب`0aތ30m4C['А*߰Q__/7MUMM͗~bA022Ʉ2؈*_NN DC555t2FV  I;=fddd ##*߿H )}:om߿377Dze/^}GGlyZp!lll:(}vtnƍ$E*\\\VX %%%rrrlSSS5rss555IĄcaaQabb{pʔ)WӥA/^ ˗/R{K*F3ftL-3/ԩSWtx[K}}=`cckkk؀墨(,,"===AWWJJJHJJBkkԼqćMEE)))*Q__qÎ^7^p***FuɋkBЕ _^foN3!&&F&L(xbݻᅨ]i9r$rѣ/GvJJJ?D BBBcM`0"au$PWWG1lޖ-[ ϟ?ߦ\{͚5Ml6[*ONAAި2֬YW"((~- JKK 5 ѿyÄ<9r~@ ۺlٲ۶mcP XR[ZZ pUjfϞ {{{,]?ܹs˗OdNKt ݻ{lmWW^5`Νs9R0k,Rmr%g8vsСBFbѢE 4%1[Q__~I=WWB؂9rСCy5GFFbٲe:J'%rpϾ [:ccczQ$`ff&D;;.Ν{eS=><<|_Փ{#Cڣ 響""##EjjjpE(++1lK.X Gll,ѻwǑiiiXrf6ș-::hk/ Nb$GOwLPTT2nc 6䅄Ckk+/u~xťay"! ooo3,,LNDDeܶm̔ IIIذaCزe ݻ&S,U\f+۷//$$2e n޼ 6 |عs%X… F"Y333$%%_ѣGBss36oL@ݻ'1$ܽ{/^|BYz9qf̘!9ʕ++$%[d8]vAUU!!!"K k׮FʹoCaa!ܹ#Wۄ3OlI(++GFF㵫:yX΀f+xzz~Ѐ۷R{QYؼyнpe2 ``ĴiӤn7}tswt- NfffpttN=z􀣣#,--s.<}4;** C %Kzj}D$ec #lXJY4<pkkkeyd2߿/;ܹCyΝ;XzYYYh;U^ٶmF7)Z-iQUU"66V(!qUUCŵHׯaaa!U;S8]*,,T v4;;6l&O,WmrrD޹+Weicc%0K.CA{+Rt_+nP` ޺A`͚5@HHHm˗/ږ$pʔTFYKBdqHJJB@@EGZ__g[tꐞ$993gĠA: z---zme&8ufrҥRr 7o:>^n^LL d2i{)grYSWWg ɟY͛7T*(( ""&&&҂0{l8;;:::޽{)%Ç;=G1 !C:E%Q]]8X|KN zA5,Qm]@bpB|{N4(3gtTTRR?q\VlO.پ}nll L<'N89$Y_vm Ncܹ<{{{*D)t*L>{EKKbJLLHԽ 30j(ulSSS `u //hȑ#cccMR}||3i x*QHR9:}% A_.zЀ‚ʜ#}'|i`cc.+cG1bC>|xEvI$ ic0oE킕ʉOd`͠hPVVAhnnFnn._.YqFaԩ߿?p8\n```vgWikDEE㿳(p]1(i!/5? deeÇHJJz+&\pA1b $r˗S_XX(r_^={V]6-"++ Ƌ/ 4:uJ,woAA* /^@dd(prB}'|"RVYYI|}`Wӧ"KuMMM]eìףW^RI~OOO΢\&k ?L8ϟTXdIΗ`b\MNNNPVVUWWWgpr0LXXXqYαwt9zS!|3\ss3']~o#GMM h4TUU$VrJ_x<\v6uuuף.\ڵk 7.\JXXX`Μ9y+ߤ[|6mN|ʹ\.| (-Tx<:u];7o$7E/iiil<33׮]Kg (PUUś7o}vTUU!66z~Wh())*-- uuur:-p~{򥪚Z;F)tV2d[ L% .āK* FVu(&3w?@E )2ݺup8111~i=ہ&*d2b0pttG d1au"ڵkA...>AׇO'VZE "44/_kRfS¶j*hiiO~~ZZZRw2 ˗oϛ7ovii)԰eyyyHOOP^^x۷=L8p5ЀSN!88?|}}|xyyI Bm2-w6r Uh4TTTP~^x7oO< K .G- ,ɓ'A&NK. 8}40{>#$''߿݄B8v/^,sӧOmVX 6Ippp3^zkkkJMq.۹x<<{ .\ǃ ;g )xM8Q111'OyAiiLuǏCj;vX܋/bpU{MMMܾ}hjj¬Yd|%l6/[ >x8}\m\.dj#ݺuѣGw^ $aȐ!I`` '܌ԣ2u&\.ziƸ{PoA d2qJSB2K%p7ovrppp_~)VXA46N> Y/,, Tp@{RNf )3,%Bwh[5'"$$_5`00sL˗i$ъ Sƍ'4 '''!dggg,_KgMM ***:3n𡓅٩S*VXtϨQ899ɉvuu***L$jJ5' ggg*CsNNο djwΎg%e0DyyA%w c/Tpg<?*pHuuu*{uWPw'@v~d45_a]Ae!:& ŵex266ܹsK roJ\:3[XX'Q"##q_}TGcccTTT`СRe\d E+E$֭[,qE")LG 3gΔ.-Q=z |Ru gggy_}%.ի,Y $ݻ'S7HE:`Xr֭[&,8P[[wv\Q x<"##e:4HUTZP˓lmm#d7oA>}: 8MXÆ B455 `jj?'O… q Y5n<رcGa!66[nEnnTbݻkÂ,i*~<(??cǎݻEw^㫯:ufefѣ~WX,TWWcѢEؽ{7oϞ= 6lΞ=;w 99r&W8/7n7ڭE뼼}:ك/"##2dnL__ٶ 3g΄&?~˗//̗/_ ]kii C AѧOyHOOǭ[B7?xxrHeAttDeffR5ŋcϞ=hllĹsv 7߸ӧ_rb3g"88---(//T38q"x<Nl6L"],򳷷i ,--ShwܡN:u^@@ҥK9;w./&&Ʋ3g`t:ƺu0|h Fkb֬YPQQ []J$,\RRsu&˖-hmmũSV 3fLѣGD@@+Am갷] !>A[R:)KKK,XOŋ/;v܌j455NCEER655׈!aЀFTWW=zq`ffFrhllF[wĻd2Hl#Fk:hiiݻw=$p\.yyyx9^x!sh߀p88ϋ ˗//x<Nmhh;;;w!)'Bnjj www8qwޕIիWRۓ+E1P;gN˅'ϟSSS;wׯJ\Y!BH)]Źt$L&>aСO%lٲ_~ĦMDڴ UUUHOOGll,K12J|AH փ0rpih4XYY!11ӧOG``zo޼AYY󑗗|<}QQQBZxyya׮]2dF `0ֆ6GnQ˲b~ $p7o<DիW7Sdeeý..\XDDD111"^,4 z6 ;;;̟?L`o Bon„ ^r7n  HTzɓ'cРA cǎ%n޼l}իWιsqFJCUwA{Se0066Fnn.%lZZZ033(PPP8iA@[[hnnF]]D8 J!%HЫW/%S.{/p0ǎi,L&LD#D3"??}| b!ejLM7^p^^^p8%}nn~9""ؾ};wڴio%fKNGrrȓ8p`nk[,СCܽ{Xd oҥFZZZO1h cΜ9r[[['**q͚5yyypvvoddcѡa„ ;v,RRR(`vB>SW__O_իW)ߝ;w$~8s ݝPSSڵk ::%DɉdٳBmRѷo_8qEEEd}~B*Z+hMgΜɛ8q"Gh}9{,A ?ڿ(**t:ӑO~y]]; L6 !!!ͽCֹw^)SxGr:.ف/AT_'N5:5 0D<kPg]bcckGHwCCC ///իiEH)ۧOU-ZyIʛW__...VHn$JG F}ٳHӧoܸ%=[ /R;+NMCC󊱱ƍydݼ;wRjdX#NdiFFF055ѣ:Sggg___PGa֬Yxe1cy ՙ2e xދT  !Z_Ջ_p!c zo8GP>|HqG :TbΰU[lllpBNjx8rE[//&O}駔D+ׅ8 _" <ݻ7<<í[ OOO͛h;w.-** If/PbtsWNB]6<%=̙3M4A= ahȗEGbСm+v Q4H8]]]*W\3Fu͛\VkI UUU8qג=~Ԯ<'' $^;O#Aabb1aŊXz5uJMMň#ɓ'S'V& OOOw.!ZDGGұ͟?_$n9r$>|'Ot=ҥKW(E۪.]2&233 ? >}ZHಳ_ @jj37oܛ00083g`͚5(**fpRRR M6!%%3DW^ӧHn&)M >`ooO4ŵjoo@Ν;3{l:uJhY%3g //^s>00Вb޼y4G 2)))Xz5cp\ +L&h4>ZRTXf͂ ̙yڵkPQQ9$6>A Œ3̘1ǎ܅"PFNN[Θ1c/^ŋR26 }ׯw NJ<ʶ3x`C*++iU>yZ͛'Q80L,]TH35˥6-v )..llln:%p0o {{N鬬Df/ptw0lmmFh4`ذaA͛7f8pgϞFEHHHP+={6f2;v,ahhH_h<56x`ܸq˗/GPPN:LRUpc@~~%###?"++ m2~\K@weݛ2QI 6|xw5x}TڰaҰ{n8qBh_8!' \MMMX/f|/tUUUa?i&3rkmmaaa4\|y&ʶKrw_|!$p7nL6 Xt)6lSSS,;v@ GOÇc p>wwwbb u@|5ϚV.Rp%~Ν #-- Ԥx,'v/_ē'O)SPV[[֝FBUK.an///444`TGJFĝVF*++SQ_5lmm!3JD 6囦Dt:v'wQ#;ɖt:ׯTI-Or---:.${1Aڄ h" <:tLHpBj %n}`5 O</PQQ!S l۶ sA}}=J[[y0ݣ> 'Ob񰶶Ƌ/sNիWHLLڤYjkktR,]*#6l㡨%no޼AwvƸqgp8:uNf͂ʕ+Rwq|Z, -y <TR Rghgg@dffBGGNNNE< ,롮lXXX@GGKf'Ot*#F||< dxzz/I3N,YB ɓҥK%C!mȿL<:[gΜgϞ!77={D^^~'<|"&Θttt:VQQ={vKc}[0\]]QQQ3f <<jjƉP$)!ܿ?#~8%1.]IIɂL@`|HMMׯ+V(++Cuu5L&455--- 1rH ͮSLuD/ 8y$ƥ,sC ܌tDEEa6mql7~~~"FdeeUUUDeepR X,hhh"4 ϟҥK޽B O>rssSOOOGCC I+455)r>|e]Zۛ뇐?~iӦ׸z*LwGPFQCCCL: ~'޽{x) ;L&"#Gbذa8w"##<(U'|{O?u.))Aii)1n8 :FFFɄ:zAVWW娨@AA233ScvZ\qAJpMf7p#8;;#33BG \CC'O;wvEA]]4 -555!118z(U޳gO:tH&cc>>>ܯ۷ocRofꢲnnn*a4iNmff(L:qqqAhIDAT^᪫addÇ_~ASS1p@011 Ԡ&NkjjP]]R"'' \!'O^p1118 fΜɓ6 X,|||Bѻwo\ dP())aС]l.!㷤Fݻw+0(((PsSSS|Bcbb(b˗{h~~>p޽{WEtt4uppNK^ ''[wEQQQgmw#JKKILdڊ,555x Z[[lЀnOB%5(**[ZZlTTTUUUÁԠ555TK4TtyTTMM=((HOOe% mwv_֭l7"p.]An?R8 IN&@FFСC`H2 f!BpwcB{B!Qe055KЀ *P5H%yyyIK1;--ѣG:MMMFqq1qi p%ɓ'? !6Fðað`L<&&&5555!>>AAAuvo߾o K"22dUJL ^ee%l)&M_U}xHV;v =R 455aiiGT=Euu5jjjT1c`ر"ɲ`ڵL7o"11<͔ FZ-[ iQUUN^VvOcIIIضmq5R DEE!**JǏnj3)a#1`ʏ)??bZZxz||<Ԡt::c<[[[ 4E~l; ~h/o2+))ax ^z"WQQz ]]]x<*#O؉IENDB`pychess-0.12.2/pieces/ttf-Lucena.png0000644000175000017470000002432612642235661017546 0ustar tamasusers00000000000000PNG  IHDRMbKGD IDATxy<_er")-B+[E{4jh5mw2}+ȴ)ȒȒe,%"71Aa\򹸺>9}}Y^DR!*JkGџ IBR M6/lڴH$tttޚ:t@*䂡Cͭ[={@";㫴شi+III4MJ,!!A5 -[ڿC__[2߶E|8ø[{}UUU KKKwK\/CRYɓD ())q\ #"8ZǏvm\AAt:W^󯢢r]4-["ΩSɓصk0tP 4mX>|82***/|}}1eʔnyn:gϞESS~7~@ '|W=ԮxyyDFF-..V;vlw:999.tp: &&!((077DŽ III֢JJJf򐖖FCaa!QPP_MM o߾eHڀhjj<ۜ8q"Ź*J cw֭>>>*=ٌLRTj5'uh S"))#w;wJIIaС000@fffJŵkPYYJ477?hhht 6`||ٳgfffsk/!!Aى'Nvu[{|OMqY^1Fׯ_\vÆ 9w^]])22R'PSSk:tQnUUUԔW8F\\KѵϞ=,Jm466%L<9J~9gwf"tL,o:BeeeU~̘1' r%ZZZ>%}ذ.GƎTUU1t2쯮BK hkk7>|*嫪`llLK 9uDҵ T*Ӕ)SR tCCD~mp:-GqJ7vm5555s~m=ڀѣGQTTD'O"""=gºu\r%眼q̙nnn'T*K7B^\@@@*ijjǏ}\zuwYYETWW䥬2vލw$.., e <vpR2555 y-OS:/cP-Obִt%i}6л  v܉_~uqF"̷gYPpdO_#/hi!fv T-3tuu8::ѱ`f+-Bp"zzD*пѫNDBϊ"pJE-^E^UUUu`…PTTcիE_V%2QRR9rpբ?C}ZiƍMϟHLL$d%(0zj9sf|277(@TT4i… Ѐ몸#5o޼VVV򢹹~~~Jv8廅233q-믈glto <G!\qqq/hllVJJJyrr2ݻIhkbcc=l)/!"?~󡮮+VB`[;>} YYY{Bhii9ڹv{Y $RSSadd000@ssskZZZ`bb":H$_g`]r1g@PZZZ8~=vBavcddD }=z41w܄3qDIII :γwz SNeΚ5 !!!;w.v BL% Đ$ΰS ??-yS8{,VX|rdggwz?7Yj~rm'KKH$3{px+teee2<">'ڇqLI|:33= D %%9Wuss bٲeǺuU[Rm4u G&k.8p**=ӧO#&&_m- gbb ڵkb022BVV,Y{{ ''Q.X[l5 }G544w^ٳGt?ٳǏ71bĺs37 %4hݻ4N۸q#RRR@Rt=@#GtΨ[>|ۻ߹TSq5ؿ?._P?Y-=gV3|aEnn܉'$I\ppX~=.\C ݻw[9s#FɎ.C/ӦM>˗/-P[mѣG~ Й%ԶajdEqyl1b1j(o$ɓLLL0񋽶7._ :NF۷nݜ,'=o޼ٳgyڥ)`ܾ}{,L&@ @X%%%^ A639vu{÷:-lԮjDAX.--d-w }ÿ tX7~] Jm{"._%M$Wa ǛA/ "8߷~ӂ"zQU$;$|D-^~cǎ5splBKK 7nvS]~MLLLj!׮]1%%1cj* ??ǎæMDAׇp>|9sdWWW9YVUU3f+MLLCBBv|}}kbذa077Ƿ~ t볆9rk{ӧOǃ ++ PTCAA+VPgggOPPPm[s]B4秭ׯw}ݻ3̝;ի1fFݡNYYW >}@SSǏj +8zWWW0oذ/^ǏpB8;;wVGGפ899ԩSos-7fàӃ#- /ԩSpttDJJ ƎW"44!7oߎ e+T\aaʕ+ LwwwM4k.Zm۶a„ ohhś( [nCvɒ%t(**bX~=uxgLk֬Yu6G@x XYY!&&f3O$ f")) W\ 7) b022^x{{{PTܾ}&LMEYYgH҂߶{lm۶CERf ]sҥ8u_:d2!!!֭[1ͮ֬Y1cp$7P ;Iʕ+ عs'G[[[bժUL;88ɓ'뮬!o޼.,--y5999HKKV݄&xöOPܹQVUU+V )) ?f/qPZZz,+++1U$HZZZW%^KK cƌ^\\Q[\\vHo޼K!=}077Ѓj*z [la144DNN8ΝÖ-[^/**(ًAdd$qO:;Njj*򑚘q}x{{5 ///@MM  ºuؖ122Bzz:_Z<~<DtKvNgSBYΟfgg}!ˀVTŋ@HHΝ;WCѰ~5}yn:k0Ig>}X  N6?&g\ sǽ/OMHѫNDDF$Mx"D8u7Ym׉ HP(غukwU's:|kuuu,N!dÆ Ð!CP[[J$$$agRSSO,Xk7779r@jŋIOO322d]gD 05a5É=a,--q#>>[77n܈͛U򂸸8|}}7h`!} ۷ocDHX[+^*w8)))@SS&&&vƍxFb+++hhh[B~g*N(&&ӆu 44NNN3gbbb#())d2999x`aaon„ pB .t,Hp.] x{{߇v 111>|/_&_qqqiܱcQYY ߿;wĆ z!x~i2d :$mmm >zzz022Q3dcc~///׿>>>-+W\&@8NṅsqqT*TUUq]5 7nN>cËWdeerJ}尴" 55pssÑHLLD~~>{d¶G=888)`R=IDAT={Hhh(͛ ̝;/PWWݾv 3Ν<`0\CCݻwlӧOGrr2akk$''cl+DCC QQQY՘;wnkΈ@zzB*cAW-a?J h%Ν;gϞAJJ SLBxJIIB022۷oaaa)))m SL q9XZZ͛aiiif̘A't+++zO5k*))adg:;CR;>탴4xޘMPp9&PRR>~7!:: 8~8"~waذa wޡSGiӦVVV?Ƞ۷o_rJ",, T*u GdeemP(8tK{nnnXhxaavBCC 蠽?T]]OըF\\޼yaC[[ PRR1~x(**vs 44f³gX:[nAZZ_5a] ^h[u)S@UU9%ڵkuǎ&"--3LE/^y桴FbyT8t=* Vyqqqx">}2ɓq%,_.]&SyB5+++[nXAEENSSS_zEH]pa@Ӂb(**2i/ ))c'PPPR߿%??_sMM'v,YyyyHHH`JKKa((( 44<)0pzzzLÇ\oBhh(za766.&&Hڸq#!!!]BX!)) gggmcǚlmm/466 pFҝ;wHFFF<[w)))AZZz@p,g.\ŋv*++r:9gΜϟWZZC‚T{no]quu>BBB,XH ::::011ka^|Ih.sÍ7R͛7!..Ε>L>}&"##ann4l޼?W_9s&ۧpQDEEA__AAAXx1ttt:uDUUׯbGee%1c ]ҥK077'/+MӡC'Pl$, Æ ܹsJ]]2'xY !,--;N1a 2q‘#GXJD̚5޾cWGeu}Zo׾A18ӱnݺnDIUUAӌK&N$rOikzh4i$uBP4Laݽ9Ӵ1M+13s죥R&''^6Z-|r'ǀMөfyx^ڵٲn7˲Ųێ`f1BT)uyZeqöfD(d`UO>Yey #aXttlIJz)q j6D#v_߀RVf$j&R'3LRia ˊӴi6a.a+P=Bh12r 1EutaJI4ƨK[atww@R3ḆRB:醡g_IQmy^a ޕYVTT*wCCC_x-l߲r}q0lZ-id26R6h67pqp+ eH2b1 0lte^32r;;;^g7::ށjuJiN<>B |^uuu|9zIزe3BaE#y۷Q Q,vf '0L՚)zz;::OOO5'\&۲iZ)u@9S(۶mZ6n2;[&s{Tdi<~h!O?cǎTÈ Fd||8ɤx `NFy?@wwF!mssä%e㞔+iؽY1 !#<4]Ng^""erghh;]חFFFx≝@H !#O6 hپV< ?rY֬wEFJ5CJ9ivf>( ʉDR^1tttV!J|wwwiF_ڞG818Čޣ>u.l{hZii:`n$jb ccDJ$y4MG "<,\sۼ jxǨV[XV); -4Dͅ,l;|GصY"uVzjby6>>~8 5?ԎB)%/ࣆaDޓn߷aÍ/LېW) CG !44MCt~*QLBtB~kY~- /  ofcǩ $B$v$ON,ޱ@vgimF@ ێ˳'vqذay\.W{z_K&;of5Ϧb, M?MoO7O.B^iH;%H$iB,=QJ.N'b ўil^"$<8d/t{JI)L`e((Tk?YOi0W%7VhBa $MÇٻwo{md2W`GS jw`\_2٩n4TuM0zձ ph4M_~4M,ՙaڏ{HD8B/!hmb FFy Qq}رc<0^)!R(.J$2Cu.C7,tM'S"h+E_ gz(T'9nRXiF^:=]{]̶c`su!eH(5+֡E,Ӈ0̌!0/^:iZ{qNhTZZZVյmaR죳A1߉R=M*fF)zȦs>BU#OsRӹ|݈PoNI$C5v ̼SSSSLGiRߖO7TIEz{Ecju)9,(%W?MD.ShNgfF`qzzv,|ax9%K!džM@&h9 6ێil\ui=1zbtCC,bIf6x^ZZ^*SzKV粘{l85LKG8!4Bzv*"=d C+կm|spUW09Ri@LL3CUG!l\gwQ2$pO>1$8~I֭H,C8rr.R8nh$w j}Ȥ `uߦ[Vp>SY8 l7RJwbbqY+%Jn hի \ii7ZS &* JkoO'GM.{š4(4ZUZ:j2mȐdfy7}z4$nbJXEĎ!LLI'mrPH QR$Cc^$R$ci֯IT#)\ʁs# begL4*2 C)C/!L\i@OdXciKKD&/Pd |G@A׎BHd2 RE R*AMN2ӉR a@ %TjY |kb6A,el; ' Rsb!2ʓJHr$E`TXj OӷrP !x$<zL2G.["S=z d~u5(ZN!zJBٜs˲mw]7L̗'|ttj"! +fc:HF$ij%Si6nرZu]hBl$+FZ&hTT\ oz™ዻ9lgn7a dyl;R'@]")ƅkJIfi:M֮{ ]rtJFm붞JIBPEŒ@$Tjs ]tu[ +I)W,u]4$OǙ?0A!K~۶h g#bv jؼTL& S\ӌ'zAgi9uRvG)[\It-!2LJc6lx+Ct@8u-a&ӌ$[*I>/q` x7C F7lLffv?wc/c0p1t05`r* % |c/162-`vn/ia[Ql+JĎ19w|GGلF1 H$>YZC 3/]ia$F #A﷘$ ]`6;e NVuI˩Jua[1 t֭:'uجihDa:J<ѥdjm0x2oh PegYj w=g&',.]ZKaDc) fB?Mz9BhtFb.h||~)%sì[{['a5e\&𴣔z2y>dtDT)CvN::sslX;nA2Z>[w9B$YV4B0 qї拋`ǩ1: wu9gHVm6k45A9sjVe5d:th4fS!Vmd4UMϫcYu q&R8Npz{(-ضl)pxt:| N s&>W2< ׆a!Z h6k" fgh4*躁a4E;dxV$ O/+d~~wij(2dvvju0I:hj@;5aˣEA8w:t={6^ v AUelYη5MfsOM3۹{# !*tV' C)}AuwgBgg'F%)*íGPK:!VfǑ=k^4BiF6n/z}H1Ȳwg#ᩘcnX,n4JнtK)B>$bRI4ajG4¥5Rah_-JONNu$PGQJ2#64! PIpWm!"ZUV>Ǐ`pr ӌcYI9d||N#B0WJ+\&4>5E²t@yMضގUMARʽ-e6===133C 0p0M !X[]׉FlذB p4M6lXφ QJ133';xD)l;C,M/]5a˖lڴm]* !: 7%d$B 0 \y`#B@)ONN`hOsss;v;vsN* RJ|'Bt]$"aI4aݺud2 XEMS!vBY&&&evRf !D;[:L"=DbyA@ok)RmF3 C Xzm7iJ&R'Q _PmF٘IMKgKsk;G4iٱr}q <`N%½ejj,%M6M:ݍ躁y\w݅ 9H)@iٖiXKgoUnfKzhEx`M:M =ZKS'؉eD")N Ǐ?_O&z2s& |0PV,ޑNezrtkHC7@IV0.uCZZFREi4Bxћ"{-tN*tP &s5Rc˹www.uAy{Nw!eﷳHNe.d3{$0 H$N$R=c8Q BC~}so<2^"ѱ G4׭Ri+R.(̒aؙRi1k"H3?$X옋QFZH v_ێe׼Ku lزjD~TH4ӧMnPN^_ XVOBf&V2"(;ի79pa g'NxŴK{YKק;I<4ۛ4ʥ]jS!]O36vk0;;DT*H2>~:lVT'mnt /B; }믲/"gA#kT& h44I>SQgY*$e8uа-X:T+!cSJQwt% BL+-gazX4}˞=?xa泓CP^w{د'N칽P(ťɘK#9Tc)=[4G>,+N2Y:mSɴG p} !Fd!ff}Hw}5|jTэ}[rM+o͇_-[vJ}#l91&\\+^s`>HZXEx`{f6t! l;N$xղbx^ hH$D)b4(t׉#mm 3nEH'>vhOxhBC[8KvT[0,d;nA(%\'?L)Q3|Owx15;Ðkw7]sa芕xӣRR!C_!M06.VsscAM[?"bv19yT*OVŅOң B8LJo4TZ"( t%J(\ôP2Ķ8ݲ i~DvhGGuM,C#JBA)hv~ `R1xhaVvv 2^bAS.n@1==Ȧ :5EDϢ4|bG{ Gϩ0111[, )JR|rrz^pacYQJ&ӳ|Ǎ7#㭷o{i4[\\9|xմqA'X0x^VJ>- ͠(vW{#rFGG/خ0 }? mv}qu}Hh4PCLa٥ 5{nn{P.3)UA*bӦM9vb _[go<ȣ|>A\szzzVebbjUW]Ν;%5='|Lq\ @ϓ@Fi$q6l@"h=cϹޮ0MX,6j}a>~CP0/ <ć+V$ /r0?r*{b_pw\ql>!g~#lݲ?x[o\.G?t]vS?Sr颃aS,ٺu+RPV pmZ}H$ػw/[,+!WGєxzVsoD}uOh+n_/Z-v?Emro-۶3|(G.NgzMGg0>k77\ p+=_-/E=_"A)u['~y?̿6utM_>x.X]Eϥv.}\k4ow䍓Ֆ$6NFXQQCpնMjF>ǿXA!g?.妷ѦHu=ӥ]ݍx;>\ڸJF1Ra@iL`S;os8%Ipxl uUP~WԮMz;jRd*aN>$Em~9a%\xA`nnd̦ed[}[uџ-Jw^+.peܔA=LĎP*dȧwI1M@W]ݸuӿvÚ}^9^E>/~L{xwFǦx慃(ru:\pF¥u/7^NRN{UGvRdP4ZΫJm~k3LN ()AOGC s_O_ V}(b.N. 醞w/_ՆC"ĶL~m=OսL̫bWVXJ9<3˶UBY„2N VEXoAw3_?_?mK%b|蝷oI}MT4Zz;07fvnM]hN:g%/TknXs7~zIb}ׁcpekn_ӥwR.XeVgKnc'G}oc3G2ۮ]342ekz|ͻݖ<>{zѸ|2cln7ovf3^.xШ$R7曼xW/F)7l5=VgR?A_0_W+u8 ViԪvCS8G.yܾ_(/w=NO)OyNw}KşR>l2tu/XGb8 efeT8>ā_?vp;^l6y;A_w'mrhLOR€x&w߰C{}W} ~hːIRyKbV*ʱG81<4.}o}̔+N Nk_e\Tx_[(?8Ï(i8[hWR5Lݼ_E2W$Rc:TRfe\A4ax]5S{?;5_m\՛ V3J/籪;<Ɲ7_}+/@*%lMǥ7dM1G=S.:A(؉8GOpoۭ+e}{M23*W+b@*Њ _% vlZ^tuh6NLLkD~[}C[> G!t7ZMrr;Td2&+5L]rrjYJ (EbjvjH%"Q:r) ]%6ؾZ\2^'JyNzx3VŻj(w [88 Pjy2bH:a5 q&$J C S-fk|//ADLĴ ;]\ 4q$җWB4Ict4[TrT &|^_*yrGF}wT~ovWfۂRRVyɧѬ, ],;(xEz˺0a.a"B'$i),R8A2Ywݸ_uJ@"J䲉8] Eڊ,&}4W]_-D$_C{?yЈWQđm#n!c2ci Ubpk4@6m9n6ъR1tZ#&G1QZ2X@Tl,U%EPlkop$6[-9RRKJ7U'F#&ϏN!@Q"86_x]\b v%3C@]u9EnRYnj&#]@Uq! ?CU>(+eHRep@Րc)jAUUyD#ᴳN:L34xApc: GX23{9檭h[XXV+fɄCץet:B:65̫ᄺ)绉'E#dYuZtn;Jgi'Φ SJH&"ylBDmJBȲY xG乲0 s'S%^g`hp: i:d)ֳ "VkQdp#=dp̣MQba1LJMZըa0t<u: $̲[F"tLJL6 ͯ珯nDlޓX\*d?Ȟ,sPqcϲ jE,&FfPV\@q]-h*ÑO,M(CBUºVFlLFu W6cn$)IM.Qdn(P/%3E*23eW .M KgX:EU\ÎPU~J)Zp$F`-J- AbcDqbh@R$QTUAQa?``U@C`ٳdtLʊ!h̙5C揿sgc{tp x^h2`21t zFZUPD _Hg QAg5Zf9p8 IDATTx()#//AԐŞDAĖCQ ΀35Zvbl6#IqB!/YhI:,! htHRPG08,ui:_VSdGOJKg*6p4IGf֤Z :f\_!HNhiS&a;m`yki'JŴӍ( hc4wv9;nbJa O--M~ P86Brhtx0w܌ J* 3t8sL&Ӵ3/i>4$KX6ƢQ99xchtd) (HjںǗ672k:u?p?ۆFAՒvR) & M`>/=CA74W!_⽆@<gӦMD"DQ 5~#0$)(HJKBZAQ1Mtww188ҥKYirLi4Y'Οxb|D?U?6N#z&bqm`NN;DUdl3NɎI zxL022Bww7tQSUN4`os;#;P?u 4R.>o/$;#'ANVv;wdB_N:洠%#B>0.!I&=$LJt( l6V+yyy̞=d W\9dL6nLIrjvѨh M ":Mh;?,8pAܺ*YV3'Uhۺ;Jgp8j`CC{ % >7z9W|󻔗s7ⅿ= A|Q `X(//GUUz=DQdYA4`0^G#R~Lvv6NJMMMFd t:ƶ܍Ve_SxپD"t׬jDݍl0WOX̦OዃS+'άafM TD2H0ij5z&СC~.kt:/ラn%}SRj۸Gg._j;vpEI payR.twBii)T枺TuWCwFFҫvt:mjm~U#lׅBx$3ũʎ;x<S"pLiq1Zs'HUSS^gݜr)Gthg`00px)|>o}>;J7h.Vv~ߗ ̙3L&N]EQCEfAza'!|$MQ?n#`Ҝh0~Lnnd#aR2\ww7o_]dmǥ~"{ pPo#cR'2 sg?Aˁ?ŕsnUy 洖z[L&ĴĬ_9uެB@?x]j$aTUA1&Ţn SGhH&fYP󿾻@d!2Q Ovd2_sWt諒Ou09xׄѰ/~l rs8ӋV#g7} ہawH_yƩA!JFF^07T j˵2R*)ʒgּk,߄wM8Y)sQqcHx~tQPpO-.+6uRb#{Ÿ;IR$4un`CE‚FDUWn˲ p{ Ȳ'6[!ǻ&\Ք)|{Ӌ'Bv~?Q@QdN F$ 59t:FFp\ڱX=œZݳ]R$"!KIq&pj1@V]95wqFSm5jTPVy_8148Nd2ar հ--ʹ4qygQ7tR$<݇weh87=\񩳩)0ڹVV;)?˯]uORk0=y $}꼳v6^54 /7熕[RkiY~~WUNËo''#Ð$m[ v^mb`gQXTBEED̘p===\p㒥*En<\rb,NS"}9Wޚ7+ f?s7Nӝ=KfE}}A_pK۱,sw]uND"l\<0 Gͤ7đe'?7]"T9/ =C߶7^;Lqi9USZ'Sߊ  RYzbhGBJyq|xQ1+:W+;8~ԃ͝ݽ|j'{|Cu:h4.WKL[wNC;a߾=lƫ?GMe1OU^zc3Q$%wC\4>qw2wy\9F},o|^|oؚ+9ͪ"2X"o?`P30Pq?. _t5m+7>nZ_ڪRPeT{i-zy=Zs.MrD*` ޸ĄNZg`fM[9\96.L~<98֢32pVK+;GEi!Lޔ#2_XohU8~ )Ibkdů)sUǢl@,>Wg/\aEȑ_vf6_z:Mu (*t{ǭuVV.\?yN1^vG|V$a+K.txCcfPi9c473/ozEG\c3sZMZV>|Zm{1oFU%zs=`LJ #Jh Vs_SNEkW7ϼyN' (pss(Oڤe8шh O`_ws~6t`1ufhCd͟/+ȝp @JQ0MaِM$$\3tTO7S8m#2qk!PTKNJHIR YFÇ1<^VJJJ v "+PH4ԊP=-]Ƨ ;3,-"`OK7MGen{rlwוfD8W^>^UEFQ>lDI APjhD5 ^ kD^K%_FU*F$'ʬ" MD$I%Qȡ2ѤeE!))otOd\tɀ/h0ʶ(2).pS]AQ$4ˑr:6YYOsVZ` *PRXVר(c[wf6p޲<i3"\nn.:Tv ̶7%3}JRJb,Ǥc*e?Jc['LBs08lY5V|UQˆRdUa4!e0}mDxJ3RkNo_3x"<> wϬ\>`hiIAmeEZLI(0w4%A|b}z .Rc 3 H̡8AO@3h2ARjz^vb1F=Ņ,;y.*L,}DUԹ3pz}#QmfB(**Q$L`44;I"Ay3IHr ϱ/~gigYevXQF*rZI2=QC YbWS USTUQUybȨBuIO&y |咳9Ilol#h2}AFKضS)+h2`40MX,&T9vͦēG yd =]imd3{z5eEn &وlDnr9b44"gl%%%l޾Ykx;0m{u [ R@RUZ(a+}8Y>VW~**[vPRR2m;ȨKbح& sg3kpfYE'D*]N@WϯK 8gFaۘ$rMei!}| ⊀E ;LAr0ۿof(,+y3Ч%2!&{ IUѳmlJ (utIآnn\qvFB/[9|;:(~zs3/`sӫ1 96{e*^g^C^uH#ld=Q7Нc }k3p-C=9[ Ajn`y7qgrշVdلjI/#6#\U4gsmG拟>"kxe4`Ga h s@Q~ē#ݦ5Ә7UUs_ omˮȊ` fb6aԧ-TU%0:7`psjy`1v[).{bdD8IJQQ\S'5u#KC6i\v W7B;g;/=Ņg.@d{x䶯;oȏ'A=M{@fq88͙KD}$&~G8s b hhEQ0z*PyHC .dDFQoJ!+;@ME6 \7Z[}"?ьΠGBh"he&OOEMvN0Qe3cr(,,"H"IPX!c14zruZCC xp8hݷGۜb#&ϙӎ&?(rϟ_ p6nCg3ژ;{SNd&PTMƀo==:3sg&Fg5Dk0g }۰93Йl=a6fΠQoA$ۙ;р7`4&/ssЙllQnŎBD:t?#_sM{8>PŘe~󿲷AV#tPG PT_}}9^8^u~;I$IZ_VkEף*6|Oo`bCQ6n@G#og-;hwY+ΡO}F.8OxR{;=wӊubn"Lv.G(~@[[hʊb&pf$u 3j!oYAo..>-c mG#jh>.vj`!uLVK{[()^|"KO>!]?N$ 1#v~~{r1 1TTT0:Օ$):cK{q?pǦ?D2}Dc f͞MAAd'i@0HV_;U' -m\|J1\+ٶcv, ͭPKQ?ow TOB)$I] >S1'! ?{%Z{\p%͒%KnWpeʔ{zK&(-',&@0D}b;5L?X$i(,,D匳ڵko=!Ueo~*NX=Xx >V^ʕ+$g쯙ˀ{dY>ssK~ViUeDﯾh<\I F&+w(G$ 4"%huzr#cQVXx=d2;륤HCv,Xxݡ!˲e28đ/&ݵ>~>AtA`,2~b1 ql8bHT8q-bch܄~EFʉIENDB`pychess-0.12.2/pieces/Fantasy.png0000644000175000017470000005265012642235661017152 0ustar tamasusers00000000000000PNG  IHDRMbKGD IDATx}w\u;l/nz$B(RQOQ$1$>D 5$޳l>;}n1egv'e ɽ;g9=%<KO 4x<$/ùgog-%e$$Ipl*1%}x<(7| 0/lذL tty 8W-FLr亄 a9IjjX4Ecڤb8fTy^N4#TU$+0xd-iɲ><@HEQi'2ZZy8$EeaѱJ{[h<;}Z窱]?sjJ2o(AV2`hnM"Q :p*A (3!$IpM K @,I8 CKkEs҃(O6 %L3 =cƖ5o:b錟xtϽ4|dox]PT bDeյm8t'j[ADl qiIRGGGG(i dxiXjUh5zMӠj@WO3}ޠ3i^aã}h$g]vYu^$Cdh"XpD()Ȇ ʰXH$$Š֞#,C/(P͈DȊB J4 Hd<G$hGӱ`0 trPydUQ'lϛY~?^' B=^hu;z-olh4*nݺu^0L<>(~؀? x?xbSʫjhFaD"Qh;ۉ@ _R& *H8? E-MӰ[ ͱAc)[-e H|Eؑ8GL'^A :ТMR^$Qwzu$f㬩w`IK٭f)სkv\`ܑzm5ؾcR >!xf/x=nحz0. A4u&aҸL8Fq`ڑp6 IfGirA "Y/SP$D ^'ZsmV^H4݈(.it MS%z "> $ $b#c ׁ_]#`FA( V Y$R!*8cj@$"$Gi/N#FL8A# JHo h*t,fTTEOQАx z}_insge[2oV48e_{_ =F/2Ihn7Ч>>iW֥L;v ez<{Kduv& Npey'\$IVy"06 S@ZI9A?`0ġcM9$A@ϳ456lؐ 66 CxZV>e $Xfp4,KCDZ)hq鰘LȲAf Hr.©JD~GeXX:<`@)6o&vζ hY-A0U5L|5jPK"Q13Qq?AXYGDީ,q:xPd+)HQ`0(KCQTB'EQ^6\l`91ESdUAۉƃeb,+ɹ@M`׏|{Ͻ?>ļw>=l2W;f)u~nDH k4࿫jڹ~ި Z]=^U5x#Rٌ&xMS"24hIPPbGaNC8zlH|J+6"PVhNFcА^mlq M$tX.]qJDPY&IBS4M QPIPxfh2 fM-CUmK,Y6dgYa1@Q}o8Htʲ`HB !eUϘz.>+J8IKW") q=>p%x<{ɂvBx " Gh@@dEEPc #"$Iǒ[`Y#GK>aҸb8 z}P$c+E%+c"#IV PU6 Y!d:B p Y^$+I39o"⃉)%b3рhC Jr.ۃpX()8 gOaH\k5`@S$ _FG2@1?k♳ W_1]~aSko |(Q b=!$ Ä ޵k.KehmxyEE!ߝl@&hdhn˱ FO>+)B#oiLT(T|@Q18xL.!) 4I FM[bd\E ;ӱ/MsSxym :bBgy IzzG$v:B!ơ ߆:@$:ӝ-K9^?؉"̙>~а^a=_@t%bKc$L55q6L/٭Vay0M3 EDsKf4xyx=(jHsg ^C~ ]=~7PU E'@7HDI2!:/ '[p=(>)|&GjZy|l<$6uH 5PES! fL.IWUU @I4MwN7U;A߯]r*D2 HDѰ .p wXC8UUb&YQ0C%HR k6Q݄Y5a„QCYi.$IFuJ̨;jol[z{FK,C=h)̚V $奅hEYjߌW Wadv GXn0ESpiUDZ{yVaK3NBò &9w Er5*Fش-JU]=}85>_:e5=T {3$up;HTHz~~MSMł$v>*¬_alyU-xe{*- 庝7Ϙ\I$ֈMASI~FclYY%" ㅿ`(^\d =^^D FfLiAIӇL,/Uy<ԎF MOTԷu ynK 猻cZA^F݆'֯L퍈xCi}v|KKaxCS'^B8ſ߁@ Pw [D ko}UhƮF 4 ǗcGg 3[w* )Uez|kj%A{TˊΖ}dAy`6Z[[QUyzܼJ8mf:vW/{oF[Y\iN%. b1`(:V0 vƪ}b*>Z[y)^b?;HMGaZs剖:1xKE9+**x6M;?>E(dY87}"Phj'ı'aP\O#8Q׈,uT@ٺPVVK7I ߯;v9CQ%--vstmp]]]7=E_J,K1rlztu| Jض $I_|XX@5LfAS4x, '~h)@gCˊ lBA _ "`:1Ɩ(Bp{S{^_ȪyvE8χ%dK%] \V>os!  ac"uU{=IRҍ @ &/AS[t7=k,k>7 fOn_$R4^ҧ_Yf G{vӇˡ'B^_(PHlݽq?OQ5twNm`m=hd C(" I:N1͇,ˠ3G  CicsHjFqAFf`Vri$)ฑY Cp+!P+$%8uby[Ќ^[Ӵa躽&͟] T̄h4}{cKhD|0i@ӃF;>hdŗnw77&cm$IЍaLq:: ˏ򱹨ojA~v.DQd@0,N110mQP4Hr ~'Q cA IC"\kk+>ں?wl|BR%#Kkg[xXbM-xphH\(hMΞ>\6o"DQ͠) zV<ɓ^M;=[l2"OKqքkk|1 IDATkö?ɦfHYB#h\$F?G I1'+WO;*kHHP8_A2eAU4 EQ@ӱJNcKQ،w AI 4mDĞ|ICcSooٕ!LzLŦP+3oVYjvVH^oD/lL5 ӿ bu4 'O632dY(VFZŋ"ɖ,c{09*Y&o,Dw86V_;˵-8DE|z_ Ql c]m}g#UƟJ&\yy93^y?7cU`\~岡"q P24$ QR  YfԞlBAN. m*H0}/K8inqx=i܄*)p Nl4wIy^5o}yZgtA xQE <4UPU@$0ҜO&#i>_ǀ&iL8΅ޔ/ AAZ6hk[74BQ˴ M㊅Sss~FS E_=^2d1Q"HP0Na'\KK N()PU`˜h?oA$ʊQЎԪMpK[/.>56(7"VdͮRI[L?]yՂ;#IJrьL.vm:~Sg5u{O}*/MSfC($[$IÁs?^y 7_&ܵWűGyn'h:=3OlMvћȴ,w 9r\u쇗-0A;L߾lɬ5OtvvӇGBa"}QTIReeDHHB$iRY6h ~pp:u&*'[/WZF"S`$EjF"gc_LI*U׼zei&sb{L11TM'+8>Oimv8Ηw) Ccq04ߌ c8fحfM<=UVaƤ(>YQR!Iw ~j= ]7i1$NsAꌁ!}Ec1ڭ7 lȧ)X8} >7/OĊ8YMyq[P؊(0׍@H^O@G} @hpgQ?TxGDךN-bNѯ}bEB#qO!i>|e ͯ`Ɣ X TEP%~;flz<).(RA tXϚdAbI}}a4 _"ip:J_y}g:T-)f#2Oj hYNelټ_!nA4ķz+d1 YJΒs$dh o?8}{vbW )cu0F.@̟3(-rAQ4ϺH~~89IN\#ͧO%f?5‰L5Z[[ːI W\B$6x0Kg6V^XL(+D$"bJLX U@#"6 ݒ)Bȷ*k6nA8M37X̬;k 5%)ILm=~/ X=bkLc<\ـҢl-|-ljAMCsf)qBfkTUmFH"-5(Ke@̔W\GO26p ̆srrdj p8P[S=ClJ̏K+2BHSD Ba7ePT,Gex} I@yiz^08?\ ABEH2Vu11ZW=m\iGZڼ]jR6NtqQ"7j#! ΛQ  h479zi@( φh{A@cӧMׯU^ ,@"1,7&_GJjԫ4(ucY,{].vd]2W-|(xF[ާt12럵 ¹gov%s -\EeD9ltι\¦wF U{ګ/ʴ}> ?M1/: p9/ԚLq,˖,XhZGp!Ijk0{|.*NV_WpW$;Ѐ;w͛6 GR^鹜ŅܭEydcK)a}WsfM_1-a9 @Ӏ-;cʴirs?/ LA۷DM-rsp:M*/ۋٳ8.L2-m>ʓTU HY+ 8fT% n3/?ѴSǗR ]ج߿oۺ!rs\P͟z+zc#~~ $FqW60::`*S TU?Ǝ=;Ϸ཭Gp+qpecǔ+dt͛_ҦkW/^>ylΟY:m 9.'._@Qe% f+KGwn f6hjv#ic`OefIEyPdiL7|IeEf6>И5(kr# Ύ/"'jk<'W_{F Ɉ:[Ɣqظy7-vQIbR4ciE(ńG If(NG(lt: G?Yi'53n){S%Sl .F#uw}ye!QC.) <^k/}8ܿ k<z4LJpGF$HHʊhvG^(`v a Xp,)¸rt:jċOr}0i"s }AQS5:0ܘ ={G ļ-IS4---X4n)Ucغ}7WeV̚\ӊ1cb ^6,XǏȡ9N:jX.DQADg-]Cr0:8d9LpM`h 7\a6WΟ3oWyDAD0Q%RQUvfɚ҄gqϽ1hjӒ_bLpYP4E`ʄ(waݯ_ YիnDKw\1Mغ0nj  aӶ}mhM3`(4̀i0U% K*B! -m}`(3sa!-t?G:Uf4,[ql)}l܌,&XFFXL<&&FFρ9h*w;<i8zL(/H*Ռeg9NNe8ro{{&-?̤(rƎv$A I"x}}Ȋ7:zg)T7vōMH"?ErEU4tUz@lM,+ihIPH%EHVTJ>9n" ckW9-?6vt{b&f2LdYj3?c|Ǎδo#Y6^p!C3eY|PwR%ͫ*`0Z\rڿYV#dI(s ~w^>A$̟1J()r'뜌BΙ9ׯI=W7"_oρuv}@DeD"(u9m~Ǯ|Q.x̒sK :2alJз_Õd@#kAw?nbj v hEkW Gܡ "A&Ոt#~ dcOzm6mQo]& w=n@ö[M(+ߝs󌧛O8X3;'wDLe'-x}+.l HUݬO3F=_ ՝(/uiZڻS"xQc'`3$Y!;ĝeï6yi܏.VIUc?hEQllDqxCZ-(.pY=U /{JWozү|~YmRIڣ [o|7^J";D'Կ6+b׎-pX%oa8"\"i&^@(, GL L6ZqRμr  ڰΘ1/&Z:i^-ٷ+LJn&'1 4MC8"mkDaR1e{Y{>pM)0lIj*.B$\q%<4_]T6 -mjhM7݂W%xAS8K ,^|_P :/&R <ފI[91N}fS9Li̫2X?[n̚wv8",^8!?ǁƍ)I(sCT)|p !˅]l8\Y}G |ňőV0LB{=&r_huh𢥵 HtBxgP@/qF}Xžՠi 4ɀ) Aŏ$KOĉ#v!TV\Ik>t6ay=CΜ%ևq'G+k8~*^M3@@[F^^h4}ޢ`8^"BBrD96nYaHNDZe9.2}_;``fO4d, oEQ "A,vs+]?jjk;_]p `ԱXx8DZFMW$A(JEƖVL:7\MPUu5,FT YV P5 v {K亳o_X/b# "ursaHlC24<35DH$M[\mׁH  m@Y jc|@i();Aau_l'e,-o&);A`ܸ7.6}F1p$/"t* yX?Q\\¢4eN7K:.\|xO Jjy<RKT1*&UQTVC„/% ƨh8χo܈or%qez.+ ;;{4=|Gхc n;,> a2A4!r{9YVzHp$ wuws!InygX:qǎ @ӡ׋h$]jmYʣeKWn_eub7F$y~nAjT3B @$ɓ Bgg(Ask+ JN^MSY!"I, wó8v@vc1sl>8́Ҳ (..>Saz; U *B!DB~ ݣN@ SP[&D8GNvy!Ck/~?s }vCرcu9qeEBE<@Ss| z|;([* |a|$9|F>dID{W/~e("~mBww7D4Gxs # 'N`ܬ-7$Iڽ4ey]/.lI1*GAemmm=4Nl6 ?',%,[4.uvEIIhH9xF =C`ωhNSJh m9Eұe xGNn>*œl4u" 3-7l6._0/\M/ٺ`?}am'޼Go}aAEgWV?رGyEi`4rhS'PTEIDAT[QQ`҅5u\Jb{:iľm# K]$ o 6l0,8iʰ?_i1m7Z-F]9˶k! $:_y_?ezWV;^rvU&͆}{v#Q1A% b(|>(Q Eb/ET&s%,&7:Q83ŨR+** W4/qY}^q5p(L帜w^2wQU{Y3{2$ٷ&`K}'ӾZ[h+E dHk $m̞۹1I&!o!|g&{6lIH8r| xŏsWβ,08p5TXH2AU ZPUר*DU5PFI5h_S *xꪱ޻ TTww')<VĬ`_(ّs*wp,=]]4^ElG`1Qn@(B$ e FԸ;LsmRUilmw0:S-K)dkhHB ϰ]R-ꛙR\RhC8ҥJ<xu:nZ[lP񠱩 %>*QZw\W2˨а^ ֿ:^}?Xy݆ peee8yC LOfu8s<EWP#X-MLQrӰ DA$AYe-vdbɗ5*Xz݋k7 o0ҩ%T]8w왳s$Bkfo]81 88^?-7;m^% #[;[øLtB?&adfeaAa۬FPFj;Q ?Ł, AV0fl@W'*>)F~:&&%#5#AEx2 *,xnՃ Jq{^'LG׏węSŘ=g~0o=tjj!)pHx w=W"ϝ5ʹVTkg2Ǖ^ϳ32$'tw̄16m 1#nbg̘i())"dY"P!KB"",*,XtRRGPXÇp_BCmUZ:]N{:/T ))<|դÿ,Zat= 0۷Y &lA Ce[-&8fhvo6#E7$,o]0;٠cq㤡ɋBr\QfqHOO?;vmQi 4fDUD_ZѠ{؀Ne475bJZBaK*^CDiח + ּ Fp,٩9aRN8, +Pv#sDl"Yp#^`1tn/C9a1Pa3C?vYMeSFh:PxMIyܻtv,+K.~ &y~h9VkvZN37Qn7fNV p*0^kW?Vq|)**=r?,!`6k7;0%n⯻\M酲3z0XHU㒥;̦$a0 k_@C!miB~pC~!8*AyiYlCCßG/=tO͉, *AfZ*,=a3?slUD2qb%i\NT%h$v9)糯 >tvB!A!v Rk~{ %TɄںzB!|nY0|6obS'0f G2ʫlb`0`2]p8Cg0}^aw666٬Oi]}erLomS%(:Y,3m0m^㦩Kؓ}gAZA'x @YOL0!^c'NaƭDZ 2Z (xO4zurM[:qSƃA ǥj71&$um"AUQ8_0G /%MAxEUV_8mDGg]C}\f(P{o7,QFKoʍ>4E:pnK8{\~\fߑ ~_H|&R 0 F y /y^+<Ŀ!?7OXeƸ`;wH̐M p;il;[਌g/'a/:Xזa.ٵV=ť&fBVJθJG# 'k7z8U,JbܵΛb?wnC;ѕj$ˋO|뜉&!zp[w .V•b 8WVvVj;wT,1PH0?a"\/{_<_ORl tw/cȀ p秘?kr #eD0@H;\CaFpύïj>m.lAty^)oh]d~Q|Y~X1蠪(j6@U)J:Ev*R{z@t|#Gam7cJ P|'ΔRu-dYEhjt$Y$0I!7ӊ4T%J̘5SmwvnHVd gKpԹ2 *!2T ZXJ)X: O1dk?ˡnV=U$U ;W.#D?M3t  v;,xGӅwᢓ F$&/8òD$B&. xoqY df] ]'jPz4< IW_ C$*1 蟕fWQ#E" P`洩(4r.k6(Z$Ig2`w8QUYB Gh50 , PQ#?gB>/zMo~AYL-f#[Y"TEa<DYӖDeQ y|]X郭oo3(mM0m[tu.7̬~ם8B1'/ J`@Tuxhul(B$AP8-/\vWAe E׻4 HzYNo >T U"CoMC` z `0ۗ^zG$obsIENDB`pychess-0.12.2/pieces/freestaunton/0000755000175000017470000000000012653231274017542 5ustar tamasusers00000000000000pychess-0.12.2/pieces/freestaunton/wr.svg0000644000175000017470000003040112641567764020726 0ustar tamasusers00000000000000 image/svg+xml pychess-0.12.2/pieces/freestaunton/bq.svg0000644000175000017470000006473412641567764020720 0ustar tamasusers00000000000000 image/svg+xml pychess-0.12.2/pieces/freestaunton/bb.svg0000644000175000017470000004027212641567764020670 0ustar tamasusers00000000000000 image/svg+xml pychess-0.12.2/pieces/freestaunton/bn.svg0000644000175000017470000006431412641567764020707 0ustar tamasusers00000000000000 image/svg+xml pychess-0.12.2/pieces/freestaunton/license.txt0000644000175000017470000000026412641567764021744 0ustar tamasusers00000000000000http://rybkaforum.net/cgi-bin/rybkaforum/topic_show.pl?tid=6786 http://rybkaforum.net/cgi-bin/rybkaforum/topic_show.pl?tid=8336 http://www.benvanvlierden.nl/Download/FSOpaque.zip pychess-0.12.2/pieces/freestaunton/bk.svg0000644000175000017470000004320112641567764020674 0ustar tamasusers00000000000000 image/svg+xml pychess-0.12.2/pieces/freestaunton/wp.svg0000644000175000017470000003705712641567764020742 0ustar tamasusers00000000000000 image/svg+xml pychess-0.12.2/pieces/freestaunton/wq.svg0000644000175000017470000006505212641567764020737 0ustar tamasusers00000000000000 image/svg+xml pychess-0.12.2/pieces/freestaunton/wn.svg0000644000175000017470000006254312641567764020736 0ustar tamasusers00000000000000 image/svg+xml pychess-0.12.2/pieces/freestaunton/br.svg0000644000175000017470000003271212641567764020710 0ustar tamasusers00000000000000 image/svg+xml pychess-0.12.2/pieces/freestaunton/wk.svg0000644000175000017470000004456512641567764020737 0ustar tamasusers00000000000000 image/svg+xml pychess-0.12.2/pieces/freestaunton/wb.svg0000644000175000017470000004110112641567764020705 0ustar tamasusers00000000000000 image/svg+xml pychess-0.12.2/pieces/freestaunton/bp.svg0000644000175000017470000003417012641567764020706 0ustar tamasusers00000000000000 image/svg+xml pychess-0.12.2/pieces/ttf-Motif.png0000644000175000017470000002601412642235662017412 0ustar tamasusers00000000000000PNG  IHDRMbKGD IDATxyX^*iG%rtSR9)E|m9α;dI"Qkr,_*i!EEH9JiJy]W<|<<<#.;󗡻3{7]1bÑ զPu1iiiEcc#uŸۦcƌbIEϟNNNB):]ݕFܺuv 0?{xxH('Z ۉ?"pb:'''899555< 4|enZu]B\}E]---eZeB߾}RQQQFQoطox}pWƇ]iGi|077Ǔ'Oh"ذ} /pƎ;GAAPѣG=d2&&&I2\ɓ'􄪪*t:vލ$%%a֭L333í['AQQ]mmmn^;ܭ[x)**ԩSkkkpmKDDe255occ(Ɔ>a$6`)Z,]{e^;t-ZZ c»56mB]]rqkN[QF2H;;;^ ٳg333 ٞ9s&u%.̝;ׯQPP:ddd2ds¹5/^Đ!C兌 ա_fgjjv:HoOjj9΄?vahhhkk׮aŊ(//ǝ;wxUQQaæ ZrXXX !!@;PRRm۶a۶ml%%%xb[D뮌?ٙ+_MM Ə;;;P<ٙ:nܸ)ۜ9s:r;Wx9 vN:I6:jXGQRRȑ#y;\'ѿ:Ԃ=:e0̰a|g>umwt'''B;CP^^׼/JxBXpBOn3y ڵk A dgnB;:xaee% 3L˅ME޽{f6&~6mP ]ݻB3ydyE;Ͷ3Qqt)"]u>ܿtg.ӥNL"v81] ;+^7ӥNL""b:FRRFnnn(JاO4O ibP(\aÆ8iɉ`7{{~Iƙ?UO>!((H鈲2]CCnccCݿqLL>Op(Ԥ5777NollDUU޽{( www9s<ڲeKUllhNvy!nRt:%%%wPWWUUU`̘1L]djuXXdXX,o!jx{{+<9r$.\j̓ybT*.\g"##B^^q €BԸ25h0Rx6ol믿~r8YYY|8y$?`sF[\rՄőFCC *xzz/pJ&퍊 HIIACC4 7A&sN{"D?|^zuZ9xyy#GhƎ>}:p`:۷oQRRro :DpŷQtA4݈S %"yCFF-bQQUUŢEHiuEX033)\?III/cbbZlܸpͼN~ٳ؈dz连8q)7c qʆkI>?11Qt@"y1rVt:YYYyk֬"vZTWWCZZ'OlNgjٚN{+WN?x(Krq֭[wGFFJܸqct d2LI===[Ř6mڄӧO ۶m)I=}k444 %%w)s9֭j8))Iuh9L:n*a6_###;w"%%@~~>f͚> ,, &&&x!+p QF!99Dbb"ae&1u+4Akn޼i)a׮]hllġCp}̘17PRR3gDJJ <==QSS;w2dO'N \ޚѣG3t:Ν;/_v{rԩǏy{BBB$K#p 8pT*yfB"عs'N|שt] NKKCII ._s˜a/^ 뾼]'p3~7?,_֭Ço.PT8qBf*׋/r2ٳgj(Xx1rss׽lgy:LFtt4;tq޽{|zBUm4iTUU.\Nw#P?")) |?0uTF믿vQzj***444 99`nnΌrv_FMM _^}:K !!Wɿ^RUU[4}` JJJ>׍(/bΎfO$??_,Ysw7… /Xѣ\" qU銊`p_ޑ --MH^TiLNI&1cRTr+][8m6N׿O3Z_>>/W^=X/ ;ϟx zl{FFF aa[yf9-cw16?׾477؆5) :T(]n ٳgwڥ)]=VVVlctfꢰrrr H0Fr$sw$p[v2GѰbP-c[(FRX[[]iAyI*- 4yΞ\1 H5k˶ʗ/_hfffB݉4ۖBeaa!vmHHH`zv8~tq[qwma:NnE|OLBn/q '"v81]t)R@YeDw}g@~oNL"v81] i$ռЦ&yyyJJJP(,BT/wҥK-8995-\122/դ:88ڮ_%xCYYIzzzFGGOi9ѣG_ӧNJ޾ Ο?˗O>BYY%vڥaÆjah9V߾}tmQFNBcc#233q=#99'ήf̙c[LQYYxI* XZZBYYBP(5? >|8ԠaÆ1`ܸqظq#QXX]v8vs:oaB&qq9rِǏc}ɓQTTwr={<طo_TRRR$ FII QXXb());" NGii)pi;v /_Ç"Kᒒ/_ !''A 4h߿uuuܿTZZhyy)$%%uBFFO>"$MMM8uN>˗222:SG>HQiii73k9sssPTKKMMEcccDnܸS9 ,,C <Y``^s6;wo[BVV2[nmĉ1aڵ cI۹s'v1'mz 6h^vMvÆ |U:t(BCCѿBBBMMM,,iPTTDsx-Dz wu cǎ-`̙2229s@=Hkkk>><=j%YQQ"ȄÅxܹsn޼IHyJmׄq1=x`|2G"22ZZZ8y$JJJ11n8Jl߾] fQǎh~N|s{CRRaisWWW 999xxzz?>rssb Zĩ2]|9t:Fc3ΝF;x3gΰ}"""PPP&dddPUU%-kӦl(sۡÇ7n˗f,[ T*2228uN:Ŝ&۩GRR .\EP.suu5L/ٯO2P&> 4k:vÇpttd; *͛zn6mBVVqE̚5e}ݿSN4ϼjf燗/_bhjj‚۷--]ܧ8())ӄ#??ZKv` zBMM O>! nhvGP8p˚qQ 4{RRYYiذauB I0TWۗ=t:+V@]]H$N8n0WWWH6UTxmop+V611;-Zzdffضm["BaN?> ؾ};_d?w_=_숈 … aaa6cӓC4}5:~/B^^HMMŶm۪~gҥK֭[gI mmm 9f;jII 2đ#G8Da v*%22.888ӧ2ٳgg]_~eauu5/__~Bc222}ݺD055E~~>dee3F=yzL&Ma8.m͘1{k ӧOsuuX[[5k?'N̛7!?Ck|^w}}`t~Oخ.tSWW'kUVMlhh/|}}^ʂZi`8T9[A MOVZo}4m)annn u֬Y#PCNNooرZ1͐g/{"Mvݞ?ޖF3f}C'܌!CŋH___hq#=mo=爮.[bFյV/_ޣ ,4[NNN|p!^SS#}ؽ{Kӂ0N'uw,,_pvƠ.,i~TrΐXWTTئ-8q8~1] gCM)inxNL"v81]t),.<<<NL"v81].""AAA2'"4ϟNNN2)Ҥ >>EK&L`v.g)))elgCp7xѐeH$DGG#::}&ct:#'uvpNNNprrjjjMuGD wFI̜#P '##mmm#-- PVV4Ν;555cرIED"חy֭[޾}fNN+WSWWw2x`,Z˖-d$^z'**%CpgXh ʴkR%%%q5<{  BXXXC1bVX{{{DDDrrrǀ ccv51|o߾0aד?VVV G̬Ȱ3fLz,^^^~~~5k֬QO#&M7">>QQQ6lŒ%K1b2tuօ,,,|-hi1ZC"~muVzO>AEES4Av\ܹszB\\ZZZ6޽{#>>fڴi bbb]@i111o>|pK`n޼vI?֮] 8s̠TOQQ >|oҥLg2d,--HǨz6Çx?C|^s-k< ׏޶m KcʕZb޼yTO<{TT=61gil^^Fɔ{JdܺuٿIttttok޼y:ʈiI yyyg'gϞ_'[ I{3eeepppXZ344D`` ƌl߾TH$_t:T*ǎ1444k888P0m4fbiiy? pBDwMfH$Kug9 `G~#+" Ea(XQa#]ee|{5XpEرaaaPRjdhheeeCQQ/t:wDΟ?f C V>!OL;4eҥKf^v0D 033!))7n?#rrrn:cСprr½{߳舛7oBVVVHHHݻQ__HIIa[cڠThjjrD0t3f 444c:(NrpMdee-UUU,}qoqUqt7jkkΪ?x]҄ݽ{zzzL7Ebb" euӧOq| hckkkCKK v`ٲe̸@`4Ca# hLyNc̙(**)lllgP(ܽ{*% /B>BB\3gNۘʈ'gsabbnθaOa;^hl&xƈ#p} ĉQZZ)S`و@YYYuĬ,A[[99Jgyyyܹsz,#IáY >wޅ[ CCCDDDX`<<<׮iee===$''s:\AA(JZnȑa憊 8::"--  ɸ}6\~҂K@ݻwFݝtcc8;;;h4\xg~Wׯvvv066PXX`͚5ƍp ::ׯgORR9in$+JpM\d j1ջwohhh`Xz5²*%%۷gΜ=FUUUVzz:BCCajjJ8u[f͚U kVJ\1YfuX2((ւPR/^ III?q{RAAMxڵ !!!wa***puueFvi!!!UVqqcȑ߫l'ML0055嘧 PWWw}7^Brrr< 6o(b\K.\e٩rOGsbcc"ѻYfS87n6l1Opp0h4f͚Eo_Np077N޽{;v@IIDS r"}J &#g5>:Brrr7'''{  ?w=XЯ_'<<ސׯ_^à 6@HH(帗* ۷o7***jwi2'''W>}(//'{ԩS35ۗĨD"t׶mF+I.]Zbŕ_NNPTTcըbX+x}ǎӧz N0TԄᵫWDIKKCLL[}"..Hqq1bccO ##̄;ĭ_|ѣGFk$$$E>|nͰ]rncɎr4VI$pwwxMT*%%%8wM0^%paxݻ\+((HrqqqHIIÇ^sr_OOϵy/_^I{;;NNNa]קyK.ATT1L&|2M*ݚ׬ڑ:ŋx[}Acc#[uqܹs[˳~#Lxݺu]eIOOǕ+Wl2vdʕ+t&MDWK,0V}!!!|w%%%iv|:ݽ{׳R'hhh //<-- ;w.jkki~~d2 tCzvX[[-l !!o\UلeϞ= rqΝ;@RRMH$?zJ &&ׯ_cmms+WZlCMuZZwM\k~~~c֬YCǎ⽤$~JgcÇQZZJ@uu5>z F_FWPT>n/_ `Tpctŋ}t M W͝;6l)7n/#pHJJG}!!Χ*jzJU_醝T:d 3TVV!!![n ;,]x)Mرce{2 y5;4fXXX|UPP) C:} KX@}/_h򰰰`khǏ)9Bi&x{{N:%Jpttd9?>,Yt0|pP(nCYYN'v?:***vVVVBxNJ5ݯ+ƌC}v777G@@5ƙ3g@"z⚴4%/!pBBBD«Wq(((w.+))Avvl)Wu"pRRgιs,رc8~8FDD\8q"u%.##}deeu*##p *t&%%e 0Tj06lcAYY:X0:2 www888Дw^82;wH_j/))Qyvv6ի/_dˎٳg׮]S(,,P~ H8q"MYTTZ[[Clڴ b8KaAUUˑNS#^^^^t^Ls˽{rJg &&P@@ݻf̘ÎmЦ ;w|MDD߾}k /2 mmmHIIARRMMM3޽{ooox{{C@@ZZZ43^`ddǏӔ+4󡡡}]$$$ ((Dll,o}}=֭[+#EEEa҂R:F?/_ SNT*(..^zEs9Rgzݗ:dddsՇpDB^^> ֭[Bbb"GfO>Ō30o jW;ϟ?cжn355Eyy9[$&&燴4! lذ|||8q+edgueǡcJVG[ǚ5kLZZZQQSSS8::JЪ*Č 22Ҩ`8v?ƍطo %%6`|||X|9?ݻwҥ1g!tRӇF ʭ䈈DDDVVVٳ1{l+++Í7/_vWc(**IIIwmpE066Bar \~uE.HOOgj )))T֭[1rH1с ddd $$o޼Ajj*RRRz߇ڊ ?;| vvvPWWqaE8AAA _~JeTMMz*ngyT99o ZZZxb<h$r-lPTǏ8|p^%pMMMΦXk<>{s4F))R5IIҮk1FVVǎ>}!44IIIPSUW \cc#,,,p%Ь8۞[ &&G&sӹm?Y0eL0y]ḓ[P__[[ۮ+s@bb"Guzml9'w r$l **:?((ś#jjjD"??;:䋋_~PWW:455a``}}}Ϟ=Í7@R!""0XRpss%u' fҦb+=}4!0662RTx!?/^۷o!CPEDDVgl8~88"##}8=zӧsudɒL/ڧn uF@~ &&**ͪ<<+Ξ= AV_8p ޾}p%** p 8V?֖Bzz:M먨wW^Xwĵ"::'Nرc\zؾ};JJJg۷Ʋep)2=bDrr2^|K.qY\\ŋQVVLn>SݻWaoo[a̙/^//iӦ xҸR~~~PTTDNN]l߾3gD]]4558p =hϞ=Ć IRR<~~~, >}ښY ̤둔@ 2 .looO]bظI΢s5ÕLC;!""=gw&bj]vє`֭PRRbFKK .\ݻiׯ_ߣ–>oǿϰ̙31ks655>?Rp,pfƤI5ZZZcƠ7oɓ'ELjk׮K \v 8Y;r»wvؑ " 8s K.|TN G" uڵ4۷oaccYYY8ei۷둘ȰΨQzLׯqF~;w*֭[Gˋ#X˗/C#fffLujXn[ 97n}#deeaڵ4y>}7oV͛7˴\ \EE9ذaƏiiiÇ8uuVƿ*prr OOO<|222022*  ,+Ɂ>0i$HIIG6F )))<}}*"\[~BHHϟOw}ҥv0aє֭[ӧVZPӧOHJJ¦M舆,_(//G`` pXLv;7^gf'.W^Çd̟?DAAՑJ:K,F2磼*D-N~ʕPVV46o ''''HHH@^^۶Gwrr궰CJ9%ґ$&&bD"8qK+n[PSS4 vݫDP;׳DLH$L<޽Ο?,!|8bw֬YнuE}}=}zz:ٿϟ?Gjj*Q&''2$l߾ݨRUUB 2[lmېٳg#//r-p 5L:GR vZZZ,C8a=rꭣ~)(( JJJua!u 1]h',";;3gΤ)븶cV6tP<88x-|rɌELM={ƴ_L&ҥKĀ֙7oHnnaiiI=~x.>>>9s_|_qZZZ/_q,@پ}<(i`o߾kC*͒ݻw rcEff&"ك%KĤG-z#wѣkO 4ŧO###\vxL޽뫤ɓ2e Μ9U[[ƶ-00Yd-F֭[@QQ; .&pBBB8z(֬YӥȢE`hhOOOS BPP9;vJb8vuފ+ظq#D~ITUUO}68YHr ΝKn8w:ذa```]vuicg8A^^qqqL'# 2S=D²e˰~,\.zw(((@||<<<<06'r"666l@i0>7TVVO:>L9f̘Q|РA ,555ѣ9;̜96*JZurpiرT077oedddffsrr00 ##555hkkjjj֩&HKKRUU-gy_GRz1$ 'v [G@ѵoߎnnn>>x j{k^7?|o+?w~g~ңWVV&ӓף.''޸q>޻wI8M%C܇ƮZjzAAϟL8?R(M6Q^Wׯ\ MU}?g_~HKKqY!55.7999%''#::JJJ IDATjXhQs砡n ---+zj`ݺuDֆ(.]ӧ˗/x9W@&{888 $$ħOr={ĉ[ddd=fӹ)**"B677cq0f2֮]QF!%%aFVVbbb޽{!$$~~~ر2D/222GIyؽ{7!((kkkHKKCEEE;ɓ!))l5 ɓB/DEE___ڡ3ǏǙ3go>^YYY袋j>>>lսqFcaaA?0p@#99}vOߏ"++ /_˗/WsmSN~ s#.._CEVV<oooCOOC L/\݇++,,<`aa ///}􁫫+ŋc˖-ne444`Ĉagg B ٷr֭4 CCC cyرO+3(YBh^zoNN^xiii_Τxԩ?~]]]`mm sssj3gBOOf͂)>} q}!~U:/IBPP ܥKZ/^0+WīW ##Eojj }}}_9ӧOҢ9VWW#//gφ޽{1c@[[ 1f@NNcǎś7obMMMؾ};/_o:bhhQ}nul'EGGט<<<0zhxyya6lggg̚5 4 ;w}v\rnnn`~7|'N ddd455aРAXt)աYYY FYY '''P( aĉAii)ΝK7cʌ3&fWshD!###h܈ll޼ၜbbbh?~~~455_9}z˃?LMM1w\̘1+Wl͛HLL$Z/g-;T# .wK.EEE[,--Giii~|7o !! t'033ða HKKn|r bƍXf !l~~~PRRXew<_N|̙3CB uuuX緱Aw27+:҈BNa80QPP1c`ΝDž P\\ܭHO>Ů]`ooOrJ8q/ʕ+QRRB"+**p1bΝD_8z(N>>O:TZlll˱DXu555/^ܹs!''͛>˥P(8q.] kkk(++c6lH$9BS9r$-ZDOLL͛7ƵW nHdeժUd;;;,YannN(fӃ5 iӦ>DQQƫW0vX-00>|@yy9ݡ;DBll,qyPT"oakS3ћBSLpڵ9,++ (--%9---9sx=ҭOرx%̔|||PVVL>};CRitiii!Bq b,hST",, ?PSS:&jjj0m4>|ǽ{z&/::[n͛@7ر1*nHHHg=bĈA=P(033 9KY:::۷/j*|ؽ{7 F{Lv`ddDH=A{{ .]"`jjjpy«C` ((=.ZZZ.444eeeXnf͚=z1>>>Ȯ$"" ,@QQ4 1cƠ#Iff& |شi.]V7@mm-a#XFH$ت{uu,gn޼NDDx-?~ɓٳg TQQ9 \𪪪҂-*\ƈD‰'0|pܺu hmmBATTYYY\x***=q^tINN]ʕ+&֭Auuu6/Z&&&Li]]]i&Β#JK.a„ 񁳳3޿iӦ!((jjjĐ!CKor a.'Nւ]II)Ӥ={l5ϩSuV} n:͛7PSSBYҤI&L9#?@ss3֭[ݻwcظq#N8 WϏK.v555|2 aP(={d:::"$$ӦM YDSScƌo߆&1ǏC[[111_˨͛ׯDZc ++?y++nLpǎg;SJ{vKKKK̚5 lcamm b1J'''?ݻqy@BB8qP d2JF *߿3TOq,pN GLL  v߃3[`0`.CvEff&accCSw^ WơCE`gg---9r=VNٲe 8{PPP+ܹÑmaV544͛7PTTݻwUYYgϞŚ5kvbbbسgكgϞ4`;077ٳgώ)Ҙwm{˕+W\x"%%ëW0h aL#^_n0m4̜9)M_6ICC:Q C܎; `mm ?ѣG#<<ػw/L* XYY1;:::D_hppFH$l \XXXý{,*)--Err26n܈Ǐc8tTUUӧse7bdddИaffbɄ/j OxVǩS<gk ,,\n:.V|?Ɨ/_V̘1$ ػw/fΜaȑJWܹs:t(jjjnG]]3 ===uj'Of8 &qRRR 222T999HHH@]] ]???Ĉ!V^M_EELFFF>'L'''>\\ Vz+uuu:u*}J܏Wv 9C)~ͿoͿ g+:ߛ  8lSOϏnŎMF-[[[А{a=JEaa!<==B׃F&OGa۶m8}4M(V 77@[ vR'6kbbblll{?~eO +++V"1EEE+с5W\{z͍aγ///uuuhnn&̾D*J4-{Ÿ~r=.p)))Xv-\8XgΜի:C5j=`1PXX8884kW^AJJ [l)lmm!//ϰ!󑟟O|i@mY{9o߾ܹs9ƏeL6n #",,쇩 &M:<{ jjjPSS#())1lC"mNzzz7oQ?88P(?#hx ޽ٳgcڵDئtTUUr~~~_"JŇpi޽x!LMM%q|'OСC(,,DllEN߽{7e]rJ8;;ڵkqI-l }v ppp5vR ~~~\v sŖ-[B^ss3a9K} ޢ.]͛qA| /_޽{ szjlFFFbv>`JJyyyXZZ)))amZZڐٳghl]1sL\pw!Roܸ... tn:.E:ٳ,󐓓Tt@<sbŊFAArssq=mdaaABCChC8z(p)m qqqp;wVSLLƔ)SͶ3͛7S 6p)Bdddл{RDݺ:\p{a{S3A'p@DDԄ[na޼yX|9|}}$_H$zDz'ODMM #n&** iii8;;󧦦1>Ghۅoٲ:::,}JJJrdlcc)Sӧ!'Y;K??f`x0uT\TbYCkk+舓'Oիx ,=;I&O>{n!`ʔ)+ 4 񒔔1G >} 2LJ];;^퉡M0hjj!̐ ???,\˗/g΁'''\v V„ [BZZ~[ʰqF񥥥鲪?dСD7999ŋ,ۥLٲe ( TTT82]r%{<*Ӎ7Ыc1F| L+V2t:L;'''ܸq0000>|ADEII6l@CCbbbykjjhQQQd2VBaa!8 >ygƈ#@"zecc[[^w CLj#2'۷o1c?`Xt)gbbbpttĮ]bٲehii!MFEE1M=>|@߾}zj9sF0##VRRUrr2 HMM5gjgϞ~zB@^^A?&^gΜ MYN#@XXM?tSSS>>055Ess3qE5X))ĖlݺHLLL@L<ˋӔO8<<<@8{ErUU᩵eee!++x9sЅƨ#tQSSðaОWyѣK|fffƍ1k,L0999 btDXXhĉèQsՁ]z@qq1`ii 777-qqqңG.((#G">>n똑&fmm III"CxB2ŋ9jh""yɯS+((@߾}hhh ** 0551MӃD"ɓضm`xxx#s}"%%E(oߎd=###IN/LLLIٳ޼ym۶h;0Ĉ#"$ &&n+++bĉݹOSرczx1xxx L6 EEEx?E=1g,]JEtt4J!22&Mx N[[sŹshv/ 0uT}L:?Աٳjݻw,#6C%Nm:VܿRث`ikjjJ|X333GHH1cY^S'O666pwwDBzz:JKKaff $&&rQEE&?~)dIKKׇ^~m^"..Ƌg``'O 66c=wwwq}RtttPRRBLMMMDJG>>>;w077Gqqfrr2O 4&duuu" 7{֎g155Edd$222?~t :ne¸~:# v;?K#H066&tBpwwf̘gϞׯ(..͛7'OBϸ>aooH6,>Є055Ő!Cp5]&Or|1iԀB@NNh'NDzz:]DNYl23eɓ'c֭hjj¼y0h ,ZN 'Nŋmqq1.͑!++ب$//e˖aPRR®]tRRKKI'++jc„ Dz ܿ111x5Q[[ QQQ&.((HD94Y`3f`?CZ-s7L<ϟ'ʂD"aѢE{.޿e6/WL>3fXM3 !!!Nlt)p)))DDD&L>|>>>leee ӧO(..FTTVZ^^^lذ9ɓ9~ݎ-QQQ̘1~~~&t~%%%򂖖䈜ͨBAvv6( Z[[QZZ kkkL8^^^;w.^fFFFpqq XgvЙŋcȑglEO211G0x`BQQW\WZZ\|ǎ/.]:u \ZEE޽???(<}طoK{%%%b}iddɓ'ӜJD}]Tb[mmmY 6acc{bϞ=l}pAAAl޼˖-ի|nt^BBB={6)vMM PUUlXWGRqڵnnn7n0/ ЮmmmjYĈ @~w߿:IDATׯL("$$%%% 2zzzсR's7n޿ss)\3}tǻ ա'b6laVȼawLUUUpttĊ+p͛(**'>eiTFkkkرћbΜ9رcVZԤcB[[ , CI4י$&&ŀ !!0h 8;;b=MCu6]~d2FFF=3Xp!W>w?~<͛B@@#G444!!!D"J C~~>222& :gөSNh\ؾ};֬Y j()) 999pss#ϓGkrg5͟?_p̟?_tbeMz` JӧOkhڴNi0ux34q:c!''._lɓ'z3d?~q._Lrr2S{^4$+ÝLʀ3ο¯;0q IMM%!!A7nK/j5kzyX̬YXhWTcn޼=W{dgg>>iӦѲeKj44@ R믿n&Mҙxݻ#Ghb1Moz8Sae~3yn-_- O[988ܪ&]Ե=[{)*{bCMߗܹsuSgn >kW(kU@w3ԹsdD"irɓ ZyW?N8CXXgϞә9s&SL_~aŊfy̝;Lˊ+t>CgggGիWOMoB`O͓2,+%%X,x!C֭[+,BCCMh}]LHH-Z $$!Cri,YѺ|||ѣk噜4nܘ'P(3on1 |WTۇo6 ??c۶m nTٳg9DEEҥ G駟ª < n)O^^,^JKK3g[l1ZOf+؅۫I\h9~~~T*3XͩL&VSO4hp ##C.4C," hݫr3 _OsU@ 6b2';wUՕ7|Ӥ)nɔvcd dGŎ {ryմ47瑵K||<:ubС4W1srrs685U~We5wKLLw!JJJHLL4x08S3̚2SnvzϞUc57%''k0alڴ L=/H#>>3f?c ㉋ e26m">>g}V{^I-Psjr=Fp/'jw%޶m[zAyyNH$W^H$u G(J{z聳3Ν3{~kRT/R,vڵGΓa봢ӓ4IxժU߿BcJg}XLjj˖-cͨT*:\ΤIJ: 40؎zmp7n`֭FMhܸ1[neܸqأ? ĨڋT0D۷/rT=asn̕+W zj>t6m?~O!Jmܸ7GIIGͳ֯_***f"x. HD ڵ֭[sy}YiܞTTTШQ#iԨxxx 2)  jbŊvIIIjX*ɓ'k+4jM@*slp'cƌaOp̙g~7\J={,gϞE*ҪU+k2NtCPHo u/>qu772_"Nn7l68RtssUFee%۷o 41BҥK\t}Q6КC!7)**r_3 VUUJպr2q6Oڶm9y$8q 6<U5k4-[ҲeKgϞ믿6)3f߀TH$"\~ٳ??U*17  ˩N.'hѪ+!ʫjU ֭[gPM$k.<==u!!!zeXn&MW9E8;; 2$tΜ9bcc͝Z  N&1rHg[tttGm h! 6^z!@˗/?Q^^ǂ>BZoJ &88X;l4?" 4{D" 2z1{ZU\mؠGyӕKs"$-*h)))رCG*wwwڴick .-D"y~ausf۷XEtBŋ @[ɓǬ^ZOZ@&Um߾=,*FFwL' W^%**Lψ#jK0l,H7oCbС;"(/J߾}#,X0/::tkqqq >\ iR\6\rr2QQQ:y*jo%mhOZ‡~x{=TeeeYɱMWXXHnn.}>w{ IT*6oެ#򬡬g?JD)4ݟ~AΝ;e˖>O>1ct7nQIl"ErMc<==rmnRSS rS0^R1{l@^裏s㡧%1J[]jdCWZϞ=?!~ ARҥ1&gSVǿVkĩdhgI}&ȥ6J?wG_^) VZ&99~6Ki`M jI, YK/ {ߝ5k s-%V8k06\vv6%%%zS{ =z\kQiҤɠWje cǎ& p;v,֭#'O57|sC~~~72!~03cׯn4?U`` \~p.]dp_VVFII615(TJx4\fOM9u^ze~' Ѩ2ٿ̙3|iUUEܸqcy+y=wjɡW^Z𚸸лw;ӨQ#:uę3g ^?<_FڵQ5;?&O=T_ƍ iЩSV5).++~k׮ "if"֚899q떥?ufxZ w4mcNUU͛n޼YsJ٠A>>>ܯM\4V/{ZAAZ͛`Fcm ¦9H #K5L[=i J/+N111( :ud#bʓ&EmU^|[Ziyʕ+IMMe̙4i҄\.]ʮ]JR齎3*m];"#aA^)I4Eڵko߾]'5]vkߓ & ?:J"99٪>:vx' ;#_/牐$\-x嗭oQ- N|QWCIlr"+..IE{e~`I&DFFZ,J!o0fHBXdp$''SZZrppЦ rtt4SyEd2m41Yף+x(J888YazH$k׮X_[6ݻw'88NͶ4ΝDk5j;w&55dV}0Y~ -cg!!! d5 QՈbFi wnTsE5kf|K,Mmk8Sbsvvfĉܸq{7onzcǎ58CJ4nFepSC4Ī___7l^{z]*R2 ƨA{]ZkaxaKk x]v2WW>췞k N bbb򲳳 5j |ivٍv~ݻZkHܥRi#G$F.3h鋊?~>>Tq'R!X0V* 4ox.((hP\\Z$5xwZΜ9󧐐&999=rn/jJKRp½wzQJşis*s{0`aR<؄K 2ۀ.k h~oذ#iii~^ )VݣC*++ټy3k׮LJ .p 233ʕ+]///gU6ȅi1nڴiCJKKS䶇[NNNM' jf͚ɓ'",? 1f0 4}vv6{a3 r iiiOo>l4}m۶c g+!0}'6}H$%!ɻ6m/#;gwǏ@YUUUlذ w^ zFq $ R(dÆ L8N%LP{B0sppp7n\Z+=Z 0a„O=T cw\\\ 0KPYYɶmt ֭͛[ܼySgҪU+o9x=w#BmԾԕ+WH$-E"Qszxxtx;v ҐD-{ADp;?hW\I``K.={VLv)M_oөLp2`׵~d^Bd(#/999A)sNcRɅ G՞S(޽{L:#G2tP"##Qf#Gdv$'' lwss3:3S=\ dѢE'bVZVtY'WWקΞ={K.i-[mGӧGk>}v07ntFȹY_gnnnzALƬY5kqqq;V{mٲeL2`].\GJQT! pW Ȁ2Xp̙nnnn_!lOYT߯_J[>6R=ee)l,di^V y}уGqĉKJJz!:u>oooi[n- ushӦ kXf1')2IDATg4}G w@sFNL^^^%%%0-Bn&4iB۶mYpA_b̆"j5.ڵU^I` [S!ZOuy17nܸڵkK,xbo//#G^iF!Dj\.ʪ믿D;vp޹sgG^6bذa|g:tHOGGG*++JE59qgΜa k?~dK*KܓjXÇsY999mݺĉ Z*oocǎkTmF#ML&cȐ!dddЪU+2k֬ckbK*K TĹs^O^x^xJQ^^VEDP$5WTFBhh(-wFS*l޼h{6^b5Z50൸/5kֶPm7C巀+|-J5 !u3kEH$,rLKKC.)zEs58_{|8ahtiѣG[|o@@?R,&!!! 777\]]Jq.\… f$&&aJ0D!rxx} gܷo4l0P(g6;f]t[seZMjj*Ǐg˖-!fN:EzjZnMDD%)@HvvvIW/رcT$''C&й.MjݡJ%v#88XtTYYZ|1D>߿~裏Ν;qYAHs~ FEddL&MO2e 3g/ 22}b8SnWwv^޶m/@Йc[Id'~GN "HD"W_5kic|4oRSSٿ?1wm۶aj5Kjk*h5ҥK(JV^͊+Ƞs۷˗{nn޼iQ,!L 4ҥKZ СCSת ?!vNVR,'Iǣ.5$FԩS㮞={;0qDV^ Sw}H ZfѢEʕ+1c:=zT?ϓO>iP t钉K1s˖-ݓ;nݺ5x amT~4 wL7;;(}wJEzzԫH$"**;դ{j57n7oRxHK4/ڵ~[kC4"-Z0qD@E~Snn-o&:uԾ L.]^0888W^EwwO<;47w,ICVVU >ӻ6lذСG〠,ٽ{wmJbbb!⫯^RYdt9oN<;GCsu(...ر㈌ ^}3}ƍ;]թSȪ*3L_z@eN׮];Z UV̙3BD"ᣏ>)qF+/44T{o߾;DDD0o>$㧞z>}sNN8ADD'Ho޼ipS;_a.CKJJ4ߍlHbA X|_Vu_ٓYf1d\\\Xl;w~j>AX-,,777|||UOʒ%KD+гgO|||jkHSnn...V@$vҮܺu0s{@V\zuX,nYP(K ZN~jMBqZT^RTbدf_~eZŖ9++ԋ/ȹsx ^'`ɓ'IHHzy ***Xf 111j:uDPPRZZJQQɜ?X̂ xb]FNsG$D'P(===* 'C'NHÇسgOw@z<))?T*-/,,̔JtJ򊻻{R9af~~۷*IÇ3~xNj=.j+44 2c mLZ͡Cٳ'saРA̞=(ڷo? 6ߟ:#k1`|MzšCktUUU̘1OOOK%Jeҧ~zIT4gΜgJKK lb@tcx뭷U76˗_V*0`lRζz[UV7) X,&**{Ν;?~<1m4z]ˑT*O>L6""""0a;w7dDEEY1 &&fJJ~2&&T*=c>ã{FFywwn|ԨQZLo8)k{ayyyT*lJ|y5jB /ϐAèH@@Ʋb @?0 ϲn:6nƍf֊V\/k+H$A)))322 juH$j@Vg&I͚5ő+_b9\*]YYYF]Fǎd2tU0urr"++u P(ػw/ϟq 쳷K||<:ubС8h{7^|+r42D"Q@.]mRxYYYIENDB`pychess-0.12.2/pieces/ttf-Cheq.png0000644000175000017470000002770412642235661017222 0ustar tamasusers00000000000000PNG  IHDRMbKGD IDATxw\SW? ,+ZpmuqZ5:q`: * E8@**e(2! 4 d'м_/^{9p͹g|KhPAF#}S1| cW@? PTB(ָ> [[[RTt9._? '*\ h4ٳXYY1g~BtZwwwh?8NIIQJ]+--ŵkP^^011ءHKK{:w|5W6}q.999͛N;z\A)vNCCx"***EEE@3hjjhllBi:έ3uaR! ?^xڴiJ)K܅ p5pPd2mh:26vϟB?c0;5jD"B)v 311!>BWFKKKeee縸 QF>7~ƍO9'>AP?3QZZ^z޾} +++_~B-pu;w~~~Ý;w@P`dd$]U#ԁFZ[[3ZLz˖-NNN_M:w0p''eo!0{h'''47o>}KKK5=FK[OSSSa˖-HMMEUU***SNaٲeP(`~-( }ŋ(,,DUU-[ȑ# K u&p|i#""Ѧ1QؤH;ݻw3?FhcbbHYYY:,@/Oyyj:N~͡hy︠`8xM5d2׮]۪3 lٲwFabbDܸqCsî]b Դ:ݻwWJ9$ ,Kqqq[KLL\WW7p؂߼yf~F2>}j\llQ__QQQ$FBp26999hhhzK1dѣGYn}nȐ!%ϟ?'~40>>u:>F}j["44Td_~ {:[n =%^ Xd Ν;'pK,A=mmm466_FJJ T*ӧOG}}\u0a46}'%%E7JRQRR"KKK۰a<(..(//w?wUMsɓ'/JOOX/^?=zN|08Ķm@&AR`0d2hyԽ{wtcƌJEYYLMM66ؿ,OO|O^Xz_,**}޲euXXl/^|gϞ?hJi(lΏ Q]ݦDe D",S__[[ۭd2y"۰aCFO?:}llH{__6]z4`0߼y˗/>,uCjjw"//O$oHH`oo/2syn]k޽Cnn.*++QUU%`LӃ:lll`kk [[[g$w''d'EDD\wuu={STTxSWWG&**?--mذagddTŋ~yŋ@=PRR"4͠A0n8\|Yd97o.epEEE8v4,跕ٳg*spp-8==ZYY^TuڵkWtuu9dN… q׽`gg^Zhooo<~^^^BH$ 56Ry˝Wѩ0lll|Z/nml0v={o@"ЫW/c544ҥKE7S:LƑ#GPY)K٥ ͛7rdeyÆ { HߢH~MMM={Vqvvv~ m׮]be NMM YYYH>NNNt__pE),,ŋ^z\\\wuu~hkiiiIB_,--w*}СCUiq Q(=)Su, VT+677oQVy* Ҏ}At:ZZZJ +\r" ddd+*m4J<$ѥڣ,-zE$9ovjk/5,Q7E'!i.Sh4Ǯ8>Y>}۳jTt(*Sѡ NEBUJ>7Qp*:PTCpH>W_}t'PYX~fcǎh{ZHDDQQQ6͋/Ξ={5k^PG$--MXZ!77צ?o޼Y9PGr$}dݺun999PQQAsN F3S}T2d_~)"eB?ڵܵkF)m;j`XTGGG19ڇ͛7HKNN6l}-==~VCC㬝]S|vޝ#TÙ3gM6 x 0ak=h4͛73? 999999c/^|gϞi4f \cc##GJ(***pI::::prrBCC\'˫]~$ckMMM IFhU%N HHH H]8qٳA&tӧ+},S '22By@/YACcc#Ν;G@xvuelT[L&i \{Hi,eHp˗%D|޳gPTT`2v?u8_.4a߾}A& [͛R3+ZNhh:ϤM/\r%$ߢG N]]^|)Z߾}mMqqč)?]v2T?)))פM/k^ߥJjE.24h4daR5G9rGV DLL 3M $srrPXX(4&Q\DB߾}jPZZ*ȵgbbKKnا;vdbڵ^zZ7xJJJ¹sIJ䗅 6|.Uߙ3g&%ҤH$k@BQ#uugffB`ƌɃ{H===\߿/պBOAUpߕ^?OQ222DΙѣ#~~͡4FK5 [68ED#5k1gpC:uJ? Ek+GXPWWnj3׮]D=44tԁHN% .((555Xt)^ CCCt:BKT$+<]/޼ysѣG/Nzzi˖VEnɁ N:%gee ޢ`cck_~JW_}ܹsYC Nygώ>u/UUUJ_SS7:gaÆ*Y _U7d2ёX s9F=~ԩ$ n`/Apm+2`Ç')3ޘ(Dҧ|X Ñ鯽7o`MZ7*Z8iii=k,9rp bʔ)...ݓ)?vh:s$mm2uuz--2  " RLP 544 i4!my åuuu(J(d20aaab puu_"!!A'pʜ] .44tyןLHmp999x%64Yf .DDD0h XYYZO>ɓRs$QF+yÛ{66636cXj:::eoI$S[[DKK@KK뵦f޽{%ܒ8|% nݺs"44.]¦MԫvFOOO<7ny'33S{HD@7Bi۷難4---ݻ7&L MɄgsssz~ ա-w~]]].ʵVϟ?ohhxvZZ؀vRpDFF qƵП (} X,}cVLwQ_tlڴ ppp@@@(]aa!W^=l00<&ItΝ;__||C&;~OQ(={{%͙3 ؿ?!SիW{\Wqqthhh`pq=33?3 U( .((ӧjBbÆ x5-{6˖-kwe&'OqO>Xz5d2t:N82:10 TVV^iSIR\NNN咽qi?~8w[C-.]Buu5)S 88 ś~whjjZ@_GaϞ=8v<+)YN#XbmF8pĉ;e4|޽ 6.8yd̙3/)ȡx=z$p -ݺu+$|%$$DK--- UoZd 1wDŋcСH$SJ nW\1ERx~'ܾ}+D"ĉdRRT&xa4^^^F;wqrxULɩIӧW߿Uaѣ0a~G|7pssCk5CCC?!SSSW:]6m~fΜI|~2ө'^X <]]]\~]y&~6i[p \8*KKKhjjPVĉDss3rrrp)\H^_/)wuue:th%Kn]6{͚5HӹʝFFF W^zBֻvp6mD`tVX,N8&v+3g7w\ʕ+'yxxs̩ ϟ_K?z]SSu;v 66VdPb:J&1|@YYD.Y]xsttt_w)DE9g2 G6;-`$:Nz޼y?M6'&&\l۶M0o \6mq6iRSSҥK<+ Iɓ' /o\\aWVVV$<}Uz|raÆKV7nl3^d 1P>>狊\3669;`ҐݹsJt500@~~%Rpvv&$kjjx8qDYp1y.<%KdVOBBBwglZZZ>}:&NiӦ 8 #;;7oDxx8} //O 8HRR$i?m`!n:X,|055ݻѫW/`0˘2e ?찮P2vIepqqqƥKR … nnTzd2ff( /777cΜ9r ˱uV\RB8fWu6RRRLd2 K+pGƍjH$p8J=R8p >|,+++f^8͓'OիieHMMUJmIDAT9)))̀$2\(C6: փL&c033C~~>.\2Q:գ,G֥=w6566"$$Du%Y\4440p@x{{{ H… 8isuS"p0w\RTmmmP]7v=U*:PTC!}*izTFZ8Tt(*Sѡ(ڣGDEE`7n\]]UO^ ~ժU۷/!CL&wz0Oĉ>455?ʯ4!!UUU0`p)@@@$ӧ2gEE֯_t'K###i&oHJJBII /CWWWbl6r ֯_O.vfĶp<C]]9s&`0aÆSϟO\$$$VVVpww4Fd2Wgmmm« !S[[U{|pdll mmm:w}}}ܻw...ĬYdάQ__/ #BTTlق,TUU QQQXv- zv7Q(c…ߐ*TUU!-- ;v@@@P%q| Κ5kد_#FXibbTaʕ?su}}}AP}O|1cEp6FFFX`1B-,,+XYY +WDuu5bbb+U%(͆@z]]]*UgG={.Xk֬&uѣGĜۓ'OZW^8y$Ç1qD@]]z–-[7H;oGRYWٳg`2mIW/ NZȑ#sL&̠lzj :Bg?p@0EPiHLL$>wVݻw+V4'߿PSSáCp`B1#7bw[[[:u sFϞ=E @P= ޽ BKK  f$ 3f 1rH|!U%;v,WfO6'Nඖ]A4Qeggm:tPSSh!--  yXMM.L>B{ƍF?;w)߿?ƎYfbѣo߾C %K]ÇO===x2_xbAV ]R8;;cժU4iz)TG]]5kNJ,ZHi>&BuuubAN 6l._˗/֯_/p(Kgi+ӧOܾ}wsvSSSW&& oo;wmFČPSS#ҥkEEEŻ}5߿#''ğ8ZZZ*g~wN%vttIeee͛7Kq\\!%..(fīիXjUo^[[[""Ͷm-Ç[5**;WWW hL:U D&~u{{{ :Cŀ`aa!T~ĉ]ǯ$ʹŦMh"ҥK"E)PeȑՉn YYY?;w$T*UྃLFzz:ynU ӶmPXXJz IIIHJJBFF؈ dʨ'Psvv&f?.Q&L&eQDDD 44wW< F߃B ((3B7nEOR^^^ $gWtTKHw]jq+ z,\PiV&v%F[kf̘3g$ÉuS~~z={Drԩ$mmmL]]]WVLLLAUW&r#Gkͻ)Nǔ)SP^ΕݹsBQF]n>pwwo JŽ{w܉D"S&dD__J ODVNgA566b…"޽{/^L<<</GGGlbeDTQ_o?;;o:3^Yjoɫ#=v킉 l6/^,wGpp0^ciic*E͍ ?hN2~*\%cNn>ŋr… [) ƍ[{cH Ʉ?رc:"sH5<L‚GP(J3ʞسgϦox ^|6sjjjF޽ѻwo _Α'(wEhh(ӑ%RSS@KȆIepa.i}6۷oE'OH \҂|ö"6ڭ[7$%%c^^8pכg͚pD揍D#ɸ}؅g b*"''GlԄKɓ!0… ^^^mlcc#Ryd"33She˖釅UjH$ڬڊ3fQVV>&$$F3"LLLp=iaÆa000bM >bbbk֬ѣGE}v3tyTǏ&L q_Drr2޽ׯȍX`yrr^''' /}}},_2dRss3¹ի7n\^-xfffh랺Xv-ZZZ N Ź ۶m۰cR(8;;۷oG||<{梦7n@n!)) Rѣ1zh8pAAADzzzJ(q k4|yaƌqT $GBa@...O>UhG;yd5?>f̘x"Hl^xyHH#7o/dk$_孊(\ցQkx݇(G۷J_? 7t/((PJ'E:L&S h2-KCC)qRSJ*%KFѺ@g)*SδϦoT*:P>is]cSMIENDB`pychess-0.12.2/pychess.appdata.xml0000644000175000017470000000557312643012002017361 0ustar tamasusers00000000000000 pychess.desktop GFDL PyChess

Chess client

PyChess is a chess client for playing and analyzing chess games. It is intended to be usable both for those totally new to chess as well as advanced users who want to use a computer to further enhance their play.

PyChess has a builtin python chess engine and auto-detects most popular chess engines (Stockfish, Rybka, Houdini, Shredder, GNU Chess, Crafty, Fruit, and many more). These engines are available as opponents, and are used to provide hints and analysis. PyChess also shows analysis from opening books and Gaviota end-game tablebases.

When you get sick of playing computer players you can login to FICS (the Free Internet Chess Server) and play against people all over the world. PyChess has a built-in Timeseal client, so you won't lose clock time during a game due to lag. PyChess also has pre-move support, which means you can make (or start making) a move before your opponent has made their move.

PyChess has many other features including:

  • CECP and UCI chess engine support with customizable engine configurations
  • Polyglot opening book support
  • Gaviota end-game tablebase support
  • Hint and Spy move arrows
  • Hint, Score, and Annotation panels
  • Play and analyze games in separate game tabs
  • Countless chess variants including Chess960, Suicide, Crazyhouse, Shuffle, Wildcastle, Losers, Atomic, Three-check, King of the hill, Makruk, Sittuyin, Cambodian
  • Reads and writes PGN, EPD and FEN chess file formats
  • Undo and pause chess games
  • Move animation in games
  • Drag and drop chess files
  • Optional game move and event sounds
  • Chess piece themes with 42 built-in piece themes
  • Legal move highlighting
  • Direct copy+paste pgn game input via Enter Game Notation open-game dialog
  • Internationalised text and Figurine Algebraic Notation (FAN) support
  • Translated into 38 languages (languages with +5% strings translated)
  • Easy to use and intuitive look and feel
http://pychess.org/images/feature-1.png http://pychess.org/images/feature-2.png http://pychess.org/images/feature-3.png http://pychess.org pychess-people@googlegroups.com pychess-0.12.2/PKG-INFO0000644000175000017470000000535512653231274014662 0ustar tamasusers00000000000000Metadata-Version: 1.1 Name: pychess Version: 0.12.2 Summary: Chess client Home-page: http://pychess.org Author: Thomas Dybdahl Ahle Author-email: pychess-people@googlegroups.com License: GPL3 Download-URL: http://pychess.org/download/ Description: PyChess is a chess client for playing and analyzing chess games. It is intended to be usable both for those totally new to chess as well as advanced users who want to use a computer to further enhance their play. PyChess has a builtin python chess engine and auto-detects most popular chess engines (Stockfish, Rybka, Houdini, Shredder, GNU Chess, Crafty, Fruit, and many more). These engines are available as opponents, and are used to provide hints and analysis. PyChess also shows analysis from opening books and Gaviota end-game tablebases. When you get sick of playing computer players you can login to FICS (the Free Internet Chess Server) and play against people all over the world. PyChess has a built-in Timeseal client, so you won't lose clock time during a game due to lag. PyChess also has pre-move support, which means you can make (or start making) a move before your opponent has made their move. PyChess has many other features including: - CECP and UCI chess engine support with customizable engine configurations - Polyglot opening book support - Hint and Spy move arrows - Hint, Score, and Annotation panels - Play and analyze games in separate game tabs - 18 chess variants including Chess960, Suicide, Crazyhouse, Shuffle, Losers, Piece Odds, and Atomic - Reads and writes PGN, EPD and FEN chess file formats - Undo and pause chess games - Move animation in games - Drag and drop chess files - Optional game move and event sounds - Chess piece themes with 40 built-in piece themes - Legal move highlighting - Direct copy+paste pgn game input via Enter Game Notation open-game dialog - Internationalised text and Figurine Algebraic Notation (FAN) support - Translated into 38 languages (languages with +5% strings translated) - Easy to use and intuitive look and feel Keywords: python gtk chess xboard gnuchess game pgn epd board linux Platform: UNKNOWN Classifier: Development Status :: 3 - Alpha Classifier: Environment :: X11 Applications :: GTK Classifier: Intended Audience :: End Users/Desktop Classifier: License :: OSI Approved :: GNU General Public License v3 (GPLv3) Classifier: Operating System :: POSIX Classifier: Programming Language :: Python Classifier: Programming Language :: Python :: 3 Classifier: Topic :: Games/Entertainment :: Board Games pychess-0.12.2/AUTHORS0000755000175000017470000000034512641567764014647 0ustar tamasusers00000000000000Christopher King Daniel Malmer John Cheetham Jonas Thiem Justin Blanchard Leonardo Gregianin Matthew Gatto Norbert Fabritius Peter Thomson Pierre Boulenguez Tamás Bajusz Thijs Vermeir Thomas Dybdahl Ahle Wojciech Halicki-Piszko