From b12fded50dcbec9e704adaad360fda1ed52b754f Mon Sep 17 00:00:00 2001 From: Florian Festi Date: Sat, 12 Mar 2022 18:24:11 +0100 Subject: [PATCH] Remove backslash from description as it trips up gettext. Also update language files. Resolves: #371 --- boxes/generators/roundedbox.py | 2 +- locale/en/LC_MESSAGES/boxes.py.mo | Bin 54304 -> 54192 bytes locale/fr/LC_MESSAGES/boxes.py.mo | Bin 59252 -> 59134 bytes locale/zh_CN/LC_MESSAGES/boxes.py.mo | Bin 61959 -> 62140 bytes po/boxes.py.pot | 1436 +++++++++++++++++++++----- 5 files changed, 1186 insertions(+), 252 deletions(-) diff --git a/boxes/generators/roundedbox.py b/boxes/generators/roundedbox.py index 86ab944..dbbb9d0 100644 --- a/boxes/generators/roundedbox.py +++ b/boxes/generators/roundedbox.py @@ -43,7 +43,7 @@ With lid: help="Radius of the corners in mm") self.argparser.add_argument( "--wallpieces", action="store", type=int, default=1, - choices=[1, 2, 3, 4], help="\# pieces of outer wall") + choices=[1, 2, 3, 4], help="number of pieces for outer wall") self.argparser.add_argument( "--edge_style", action="store", type=boxes.ArgparseEdgeType("fFh"), choices=list("fFh"), diff --git a/locale/en/LC_MESSAGES/boxes.py.mo b/locale/en/LC_MESSAGES/boxes.py.mo index 78e9604502d69030af5f94dabe29581b8271097d..c8824bf5565f5c52fbeebdac5648e08bb03d0fcc 100644 GIT binary patch literal 54192 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 aZxFd}sq6UAee24fBbL5F^#6}<5dA;@jRFk- literal 54304 zcmeIbcVJXi{{MYJKtaU7XD;u`5oJNit?K6K5ubVAr+x-dA0F z!QR{2yY5<6T~}S(y1MGxb#3eK^*-lwXC}bv_xbyot0%A1&*$`V&s^Txu-jPyPt_Vh zuo*mYlOWi>TM+zIBikVO&(t8eyGsy!4|m3V>+~S_1a_Sf1byIVa8tO(%plkR4ut(+ zH6)r~CY%E2z$$nO90ebM)8LnIceu?g;((_@$#EuBxSQcx@N1~}e}*IBdb5LILpT`@ zgNxw$@IcrTo(ScBHe3f@12=+qz#i~fxE_274uJ2$a`+3Bzw#Y}pfB7GVihcelIJ40 zCVU$zy$@j-{2ogF&2|cci7=x4JP|6L>!IX-5^f29F#EDOKKe8j z=Vqw*o-q4wVI}5)b4d%%fr`Hcj)liTrTZZ44&R2o;0I9o{sO98yHKfAZ_o=WU+X~S zt1nbJZ2{$fI8^)-;Rv`p90!jzJ_LJW{sF4oyUh!NwPAm#avTD;g5%6w2bJzJsPbD5 zmF`7Q?dJyAA3g>L!Z+d8@Fz$U4a(;u8=L|aZxfXL8E|vB0;+vJ1C`IeL$#j|q4N0y zTpxDb#mm_TO3p!W9XJ}Q+$Y1)a5p#to(NSx_d&(`7Tf^-6DmL7!`|>mDEWIW@N$$v zxsQcPe;ic$J3z&=3sgLNnmK9aHZvb%=2Ol52Qy!1=KIb3I8;5n1~-K7Le<+hQ1!XN zLSLU7L#1C1_krV~Upz`|-R6e>b^6u+GhKgV`>5P~%ZERQovE zc)i)b2sJK!3fF~S!fjx%tCw#aRJl!nDz~|?8YayBd^jBQg=T)r_zYBeJO@=CFG2OU zccJ9}6e|B+cJt%J8c_XXO{jeJfyzfYl>8Im5V#mh-VXQ`JOqX?!=NcS&w%~ll~DD5 zzu7+lNiujHDxHyg_;e;g^^XN+ZiSNTD5&;*3{<>#LeAwTJ!uO#1-v@9b_!U(Cd+z1q?F}_vgizt9 zLdDwx$HI1~_-}wJ|A(N;|5+&c-iDIzBPjWQgsR`ly?uMw7pk8m;d(F&CEt<8qoC3| z1}dG?%zU|-Z-6SdhoH*sDX8}FI#hl>f&<_$a1%Iy&Q}h{K&7`Y+!&^y}P3wGo zBcR&JTsRQcLB)3jRD5SZ`CkE*{=-n^@HUjc4`F}!JygCnsQ3OihudSWf$CowsB{j6 zTfwv78t_5b4L%CH!l$6pdlsGx-+_{QdED3gIZ)wmh05n!Q1O2P7613J8(gm;2xh^) zQ1!46R5>)6`5-8HkAX_>45;$H8mb;1f@(ic!*ckB*>`XB_Pt>j>_e#Z%An-g5~{tA zfr@WBlzjU_$=3`O|KV^FJRT~ZC!yN^(@^dIW#d1g;6%)O!ZLUc)c9}@+!{UwRgd35#nWSdUoSnO$Ws8&tes zn)`pC+E3S{ANTr0g&zndZv~tT$3lf$29^FHQ0X6LJkofy@i-{|CqmWN=}_@rYWCMd zwToMz>hE!=_Vp@MKm8O+uC-fyI|-r8HBjwqCRF@;LY4P^Q29$h#d{d6glEFx@L{O& z;4`RkvuDcJ|4^uS=R&1l3x~jEQ2D+PsvW%rHNJcY6;Hpk@6Xjx;pRY%BeifOTn>l9 z>!I@V5|kWYK()Jpt-iiy!gVq40@sF1U~kwAm9OQn0v-uRz!k6ud=st%-#2~%H6HyJ zs(!j2;N|QFCD%Zxe2j%Er+HBI(EzuB2blR97-GH+R>Qx*O4uXg^D!DK-38Fe3zcp& zl-z0P+6Q#)14`Z_;ZS%yRC~S=s{U?+%Ktr3{+@)A^G{IzK7=Z-Poc`8U)G1)0V@6( zQ0dJ!^G@czGgNwupycd;>%pU-@_iOmf4KxI{IyW|x*p2^-BA7QF(|oygsSJRIX`}E z4ApMNLD|oRePA6N3)|ra@CLXcd=PE{UxJzszK6qLzcyd4lc40?3o6`UQ2tMcYIk=* z_2XBKe>eWq_!*R(-$AAKU$fs}sn72wP~|lgsy?@bs;|XR;p(C4p&7dJf-3)`pvvWV zsP=e{nJ+Q-6;Sft0#%=n!jbT4sQUT|s(gpFd-rmv{!;}NZWi1c?g^FuqhWt|9UKlH zfwk~+sCKb%nQsqCsBmXN_2-A6^6>`T7`_Kpzdu3McaIJ)#|FkeQ2F1;%tN944};2g zwVB7jQJA-fD%UJjI!D7z;7L&Ra}`wmJZ^m6_=@o@;|Eav<=;^0eFpu+zQCI5f}ef>^= zs>i8N>CcApzcU;FcQt03>kRXz)$`p;fa=_H`~%TZAIIT@D0 ztD(|)1}fg?;I{AuI3BKhsL%IIDEHl=%6D(5bQ+=JO+&@I4643Phw8WILdktORJ_+f z#q$rS`uGT{-G6KBewbg!^@ZwB3!u_D1S9dvZ-pv{+l}`@jf0Os zjWe%8^~dgq`*a6Fm478vIZcHc-;jiV`9BCs{v(XXLB)3}l>hUg;=2~!1#gEM-%>|!I4?^H6fV z3WveB%-sEG%P*9_zEJ&fbEx_sXYPw&H_Us(?l1<`jvArb&w)_k&x9HeE`n>o8=>-b zD^&SBV0;Lwo*#vZ_i?CrpMgE#3&z)=>ih3d?e8Nv74|>IxBtDM;%|fMKZil3dlFQ* z)6D(?DEY326X4Be{shYZH&FTc9;!XBd#oR~%b?_{H8vSj#+-3ERDKSFYr-R-%H?>o zzYHp$S3t>oEmXX>oBh3TDCP&v{vS~F`Z4SeyBz1+@g`95mP5%o8P0~gn)wn~h52?k z2EGqfADbTU{SSwmW1b9Eo=c$m^GQ(Yt$+&u2-LXyB^&~~pWw^40?K|YRJ)uFmG1^) zlW~8z0}e^3_bn?<^zU05PxkLy?tm)q%TDp_?M^5;Uxb=>-iIo$AK?@joa*J83P)kg zz-jPGxI6q9svf7E=H;3N6)q0ff>*;0;LUI(d;}^V-@svTt<(LuJ_7c{yaSZ`j!^At zAE@%#ANGKU!S&!VQ2pc_SPpN6^7jT*{d@^$!!^(F^6UcDKF);e!wX>%KzI?@_!CTz;({? z&NU0^?03;V+kI1ru&w}v-C z&6{t)E#S9M@osjWx1R~sKVq;CJQOOQXTS~Mg;4pt0V=&apyYf4O3s&{+RKM(pG4latUJg|cCqmW3*>C{72C6nfpU!DEPcN$bYS3s5PJy8B$g!1<{I1+veH-&?K@7u=&<9<-~M?;NEm%?@7m2ew)8&v&$ z0#$DRh67-ii~V|Zb13(n;cz(L%m*6}g({E3p~~YJsQz{~l>C=Mg})tYoVXLJ-Q5e7 zuP31L@dlKf|Ard3dtTz@t%P4;u7M#OcBz+hCRBgf6RO@1F#7}Hu9#1TO6MO?>3jh< zhdut_%|l@q%;TZ@^|ny?Z-%O;L!j#YXsGzlG51TM%KJ9s2T=8~@nt?AgQ3i$%sde) z{LWDE?+z9fsYWNORd)V*_-%moQezGN$eA^huL#4MZR65hmyt|oep~|fd zs@x8SY7Zwv<>w-(c6BS<1pWz@!;hfS+we-?56YnA-xf;#8Bp@?2_=7>xwjb)GoD~P z+juGLf&c5_ba*RNI^RRpch9Rl$3vx;fJ!e1mCs|L@_9N`Ia~pUz^mYz@ENH5yabh> z&!F0G&#Qeq8wzEf0wwo8Q2x?zFgy;1@H!}e&l>*;H^bcZ8lT=E*d6m!sBp8P(r<=p z|5>Q{@OY?v+y#}7N1*!at7hNrT5rD|9EJT5sQ$4VoB-=!2!9XPf`5c6uP33#r`MqC zN6_`7>%99=DEHA&^*$FWpZh|!t7TAf9t|beMNs*>87jW#q2hZFs-1MX-p_meq2e10 z72ixK|1l{4OQFi)OelXBLXD3r;M(vpDE}|O?coP-9XM=-PiGX|3iE8Z2F$^3a2Zs8 zJQyncVUVddI15VdsvCU0?*tXT5v~hQhl>9asC=w|itiCP3qA>Z!3}Qo<**r)xf)8| zZK2Ye300nZL)AkYRQovumcvuc{%*5>7hA_P2tEuI{#_{fK87l{pJlIzZuar@yv5tE4JTsV z8)_We3HF95xHUW&t`Dz)isv4vdbuA;{)eFY!Rt`@dK*fP&!Ng?{abxGj)yAO>1Lj9 z=Dm%LQ00_?60;qu{5#D3D5(6O3YEX}q5NNFyc((;S3t>e4^;T4jjuqJ|GRJt_&Jo^ z{ciK|YzD_*9t@TKZczE%11g@qq0(=H%16e`2Sc^@W1#xeDNylVY3|pAnb6Uq3?Cd-uD2J@$bruR&1ls0voVZQuwPgQ};~pz7yb;}uZt{uZeAaR=N4-UTJs zi*RH3FW3*RagVQ$P2o0}w=nZQFvQ#htKo4_<#-QNK0bs>x5vFEFI2jNpyVC`m3|F$ z?E^~QZQxM29aO)lgQ~wKsQjm({2c@(=aEqUE`%ztOQFi)X{c~tL&g6CRC+&~`4@BV zdY?~kEvWuc3Dxh$L$$-%Q02b}D*V1s`PvW4e+wJ~JD}vc5vrc=fEquZg=#mSn0=S~ zeY@)q$6~)VRJ*N(YOguC1w00B23Npg@M*X?`~s?c)_cH*8x7@u22{ICLiOVljAs}x zFkS{F=XFr&-D38SLFM;3sPcLZsy_b)RbM^-=)-LcRS$!pD=(<>9}iV7+d;L*oy@$* z++$GrY=EklWl-(^5UBdP395WwH}^N7+U2`Y;eLW!!`=`2{7-;tuS?)?*bZyqSwv}2;=d_(~ajt^_M?DrFSK)fj2>w^Lwxh{2WS-FU|ft zDF59a@$3!NZZ?M7!?95LTnbeVheO48EL6C&j2A=6c@0$fo1x_Y6IA{F8>$|^gG&Er zDF0m__2XSH<1jc6`zcWAo(?7VMP|MjD*bC=H+Uyp1KtNE--A%&&=YVddy0@$4D;{Id>z~h^Sv;HAHczI&BuNFsDJ}7PlM{m`@s+{g{s$c zpya<6_JG&JZtzwpx$lDVcOTTa_$Sx{22c3%Sre-NtOu3O=1}E19;%&8fn{)SsB{j6 ziuZ81Ej$X2hYvyJ`$uzM=Sg3_>%%p%9{?5a5U6;E!|refRKJ}ACHL-7@$Lha&UsMv zaS>Fzzt(s+oP_yFsQ%RBDW6UaRQwa5^0f$dg|$%f$Bm6p<&ZG8Le0PJP~*%AQ2p_4 zsB~Y1D*tz&%IP~;4*NXq{ZE90Fz*jTcs$fNd!5-o2$jFLq4N6=*b{yMRSrMGUa-qE z-hLgZa_a}xeg;CxUj^mA8cP1L#z|1|O@s2kGgN&0!n!fR67~~)qX}mg`WjA9_#|uuIr%k)d*ES8Dkq% zJuibQhviW59ttJrQN|OY>iY~>2`_?E;WJR}f4x8Z_$%N#m`6jUI~gk6bhDoaCEwm~ z0*ssa5-9)IK;>rzRC|61YTSMWO0Iq{cy4AaGnN~xpz<>ssyxR+mCJT!zZ+CO_kgaw zLdBaf`!pPiIcN6gLDlQUQ1k8Wus3`TD&9As!neZ>;gxU*yc?=~-!%JwLAA@Dq4K@y%buGV2O39G>EGa? zQJ#3tK~2T(F4Vo)ZB5~SYi^ovu0`F4`AL|?&vG~m^Y-ZVEJS|<>hGAlLY3uCsO`|7 z2Gw>tP&KIC@UxbMn~%GmU*Prduc%AVZ;pBvKQE)+!EONZ%tC)0_P1l!^9|-xQ7b>| z;CCZb^sKjJgc9AL>ffb*Kw)I|cd}o{zc*^)_}FVs|6zNX+$^^(0Z1 z$UhOgD%2Fz-%#UFAK`W*97dSyQ1@Wo6u&dDYeWAGjGo!J_eNb2Ss16{=XTT?=9lGj za2Ec?!9QVliuwBwb|GrzXE*#*kmi0cR2=4KJlY>Icf&kf_B{RZH_h}nV?GD{P*e+k z)OSW$*df>*iT+7A8T-dj!%;h;)YlKg?f1Cpc@b`g`CT~H>@LInAM}T!v<7${&cJS6 zI2P&|2WP@Bu+tO6ye7QEnK*xemtgmM^Dpa}rXOKpj>o(%dD64KQTpZB568Sa`X2cG z4D~w;vxCKP3~sIHUp4zD(ch%NJT2J$gxUtXUAr)}qeDPUDpxri$QG?7k+Po;}fbCtrtPZbW|zs+)Im zf7dV4Uyc3{+#8DQCR;pR;Fe~88~UyAHx#AkF?f{e|AE{0=tskWaGCcKd~MYD9X)H} zNAuJBP|q{?-vus)TUg!vjN6r%*MS$9KlyzE{dw4b3_n0={?iz~G5Ynf*YhJh-}Evs z)*qfDJ=|P#EbiM7=34W&9_fB+?k7fJao6(~)YIr+jqEWWg}EN{T=)y-tx+|YC!h{4 z^4A;pZ*c1dqbF^eYq5J9^%DO7U|~Knf3@(xsB$Zh3c@^y8jI?J-^*}&05u);CgyUu z@^h9d6;aMc>WR+6ld$IDE+5&q03``lHP(_x(}(Vs3#i znf+UG;Q12&hr=J7$^ZE;7==pW_5w=JNAOj65b8pUW3ai&{SC9bugFgJr(&Nevg?ZM zk7J*}Za-8z>Uz{c_?v4MSC8J{U&N-k6&)x1wG#zrEnc=HUY4XYeBY zR1xR77JgszAI0?n8m&qGjk?MFd}NfL^Yq7_KVp9_;a|hN2z>`?FlrO4k1p_j+?Qjg zXO!_Q^j}-LXTwVDFGg+TeEC1s*uR6_KjHoGBDesj8_;*4*K;QNy-}B8~ z?r*>YWJWchzZx|f)rOjnDt>hhfxMGxEJQl(T_ymj^By!D)ajX3!8+^*lmcvgJ1$blgtm={L>fRE%@CV zJ_zF$ULKyqe-G5X=%=HGTlg~kEHwQR^lPDR!aRtyqGvrc^RWNBEU-TSY>MiIz7Kv` zP6j8Uwn7y@?-Ax*+_ys=D1~`f)WfLDQ3qgmBGfa_BiI_d-=VfO`xN%As0=D+euTf^ zjyLyg&)EzZbj>^(p%Ps2u7E+&6{WVy|Z^Y6sL3i=;Psxg7l`*hSA`{Og&E z{hsKLMgJQ5!{8vyea-z`%u7(WpdP_)4dS{6e;b+mI_M{&Zbhwyo1T-=>rT_!@Ho`d z-a7a*b{k{9$jocw|8&d`qwd1)af|a4%+a$An&(jMW>JlwJ5WpU^AA)SRfhT!yDjju zA^PaK2F=5f0Um;yg?g*V&vS%36uV)l0oeZ?^B>`s=4Th#-RTbc6-1O^S$PG1^SawdcOB? zf8WOa33Lll^HIAKZUAZ;`V-)z@F&#s_&XKOv-oaOtG5C$1FED?A8f_M@ z!}D&(;H@CXaD1^lPk|A2mH^ds@B zr!R7K#cl|yJ9by1_CY@fbvG(u{uX)f!AaP?kLqsbI`n#)U?m)n|7TGHiT5bXH(-Aa z=3U`wa4YQJz4m%Sb2{A1!beW8VE#RZjUx-#51FFpuecAve7c4Ej&$zE@eEWJ^>6GS#cnD51x`ox zL_Zrfm~bJg7y6H}*Rvz~<53r)e+qSs*?))KhbTQcv)cs5F<${=xQ&O`!^2@Y_PtRX z5dV4>?pe&6p|-|6(Cjbrl6Woj}fL{Q8=uEIr?MIriA|| z?pvY0z^)dx4{8wV8PxHpTXEYTe+Q!1vpM>ns6N;a#=Ienp5xH`gqxlRjNU|_#@`;; zm81TGT88;Y96v|BXMT4>f4&7EJMMYM++^s3+Sl3gr&nmt#8}vri8o9tYs%$XvlB*) zXo}S}$LeDpRf+V7)=YZ;cwKJ9$m+49$5+;-m&LQK9c9~1k*2D(W8#R|c3~nL#!}%b z(X_X>S2d>Es?wRp5y?bdJe7@SM>Mu3D@RpTSH)9RO}Un2*>>|<Go9T_=&nP zo}mot!}5k?ELRcMr4Sr>n{E)#E; zn__~E@mL15wk4DC4)3|8t*$9-NoV3!zUHR3<#Ne*rX$Se6jytKJl4fBnGVU>m`Sv{ z`fba~=u%fcGU>KdJ=v~HXDH#U^AhyhHIa+8BvRQ4;k1SG$5dC33Cr=DO|&GEu}nqS znr(N*JGT1Y9D3v=-d(Z!M!sHAds*>ti# zo{=!QSYxkVi_&2%nM}9)$YovI5hi1;xpZr%^d=BG(HdrnsIF;vI47P;FHQSwSn^KR zSpEKO*<6@OG&bczSHiAX>k|zP@k~6GGrtwRg0eJ~5YLr`AOhB9@eGENo6C8b~Bon~dYVDV=UsIpdI_qsCH=ZPXeqrH!J;KN_S^tu)2GsFTAC z9o)A&`j`s8K9Oy%%r?a&P`XwfJ{vBLXL5-;r0WP%@ntR}@fdB8&J@p(uqxdZ1^sJT z*p4MaQGHn|jM5>vOOno)OSgngv1Eh9p%u1-(a_=TXU3gu075`p(vFb-)Ur`AS58wC6lrqOim`J z*VEDRns8w}mm>{qe0kx!E|IBgYjN#|L|g@`3(+pIhtpH_tqClt)22?{*c;T^H6YB5HRlqsaOAjM8A%x4NrK{AP46cr z;f8ehHh(w1qUZDgy0DT&k~`eVeRQc=gL zbM4egl^-P4OtR!79;hZzek{o()KQ&R*AME_EouNQ8eW`jjD{DDH%)O3Mft$$$`Xq) zGpD{s4YbnPGQ$xdmL)IQFrKT+d(YA>V~sA~t;v{1bVm02taE3ikbtfq5e*Y>6V>CB z(wLKOqheasLHyKGkSUvEaPs|vQu48x;47DG3(ZJEs!Uv}&Yzn{<0;yapFiUD1-C*n zKII0Dr~1n<69szv53rolT>w#+r%yQMfgo>}aG}vZknwWnF{vZAGCqAhWQw{AMji>xa&@7>(CqTti#2Obm2Hj$LKAMWl5pMb+z;a-0%OrIo488w-79 zDvgxc#$#n`h6ODUT#T9&+>91XWmH%FMY(cI9Cgts>u#WR6{rQ#ulv`)oA*!4V(_Rg zb7Ohc|L1_?I|p?6b+V!>%9XQYkm!27PNMipmUUdm5>XY;>m`{hck5Y!di@J6fv~+$+4Vt%RCL< zJF^IiC7C%`_h^J$^vE5pEHo6A4`efRanUeRw78L9-7CsmniUH3j~W!6f<~wf%d|M* z5^f3zrfJqv6OS|n38x3slT4qiIumtSdFgB{^5|AKwo_7v-6G4W{0ycBg)$brn?+6J zQnQNFsK{y5Do&##r_rl8jftGbbaq-4&*q$yG^;v!IpkI>NIKTSoM|Ydg>7}3 z4jCp`4!SL8y*0zSSe8BB%tbXzYG}XWDB~EB$zH{7EXXH|+GwzCVbGwf(E930RjYU{ zJhbAKH~U*0*6p|BxOxo(tQHGyBjfTAV|m8rmmDRS2h3ZVWs8<)*&K~5WSc=DlYI&_ z6^AXcR2vEVy_s7k`GR37-O!dKi_GbM%tUThTP?@2vldNrITn>;k*#Ggi_UAO z65)J*DiO|)HO7NkTK}j_B26Jg8Yn3=-e>0+KNtKP7v9_bWQO8nl@8^7Sr)Rcb!BOS;Qd-rjkPvQc+T2LB zb6ZPoJX00cxZc+iTUMpDe4;KvwmD)LMblYU#VrJOI_9Gpi5TFt19HbG8UWQM3)3u@ zY~}=Wro>|{{%;}SIr24C*$4{Sg7e&9?(TDfxv|FB@MV3e zA$VKKrpPmgO)YHZreyf-a0t+`A{!Q3=smW}qc$u?Dh<_Xt-d~b=TSS2qd+gb^; zpin`$rB)L=3=&XJ)5xDcOsNW|&`)WM^i1{69EW?XQxv(M&vQ*`R&_Z#r`y~6%Jn1G zgm4jKp^lIIGJ#@NvyK++THYZ+M|9Mn0aQymyhO`7+wVuiszQ_N3Mor;m+}v7;7kYKEck@=T4@LFLzrIvyy9MrQ{0MF1kR$ovu&`JEwDD2l3M# z3kQB0A|+eB-_E(gZKNa|SyRPm(~AsOOT(ZRZ{=ufloguW%SeELXyaM+#5j@`^hN2q z)~#BNj@wi=wpR#z+m|b?(k%s9*USs%adg8>K=SHC9DJywFnZ3{!50e#o8!xC!by|D zsTF}cHf`~ZmffJ5t*kUu84Ci<%QVJP^BF3FyspTRIRQ3i%{VA+#Vq?#_u8NA8 zF&$2uy$4=u)Ab#JGyh*hB;y>aD8!T~s5G6EpA-3!rnA#Rw>MCDrz>)F$9S&g+pxf} z%6c48-O7^sYirPn6EC9X$M~Pdx6p5^I~fWwvZl`A#F37Rbs^)0_9gRm+ULqa)0>)Y z%`~?!rvB{AXjLzT-7qWDWko)tGnHU|qzg48`ySnzrp#;UlmC1AE(FUD;CZW>LZn4Y zo%xiY8}=hjQI6ADcajzjKnx+wChSF;)n7H!B-7+q-HnZUqK(2>DFl0<-w2RNt8Fp| zCK@PRcb;u1$gxYXAkg$QvRchIuPboK|v>%*q@`HMPVW8I_@^JFeE& zme-x#XkPS0Iw)%qPQ3Cbt-Rjg5T=#x<@Wfjf4qs=xvtpbZVb08n~QScPYhf}^4cQj zG~?>z3@MvtRj0Xg^Nw>1{^qvjZ5J;tXl1LjJwrIzowv9}n!3E7bkx}ESgxiREVYD; zPKGIiqOn5zR3BNfOuT2{pqeeB8|AbrX7!k5IqJF+Ga|v)6VBrPiG%ihKuyZf+g0fQ7okKtNr>@^G@k5WQLEgK6eXs)~VMN z;cCLUVWwOw7o=vct8nL5f!|a6&9pzGN@sL-?T@ahqK0IeeTVb6l;L?H%Wt()ZHnV$ z-R)bvH7i&;dSNIoIJ?TsFRSI-oz$rF6|`ZL&0rxpbd5#v@#4@GQdSECcc?2{Epz

ZHgp0JracNo!=TvH?I-&3qCF@=ll0TPe-sQMgSuQ2wabes>K{er)`Alu; zq?3UrqCU%sPd1)p$)W+*&tdio&v_-6s}1VXb8jM@2RBN|r&62hHyF;L$Xt}0$fHZ! z7Df5cMV6}x!T~i?Qz33|Ue#lCa*_8LS*+^SnwbgZOsjfw^W{pS7TK*XfZlej5~5(a zYLJDz+10+tuM(pI>14ZVAiXx%>CJ!rY5aK-1KIyB%tNmGK^vPo-N`bWaOHTQitiqv|#Pi>{s zGn2vFa`LBbw0i@WPful|l!8Sgs{_tR#ss`KTtrWFBYvpCUo-#WjI+e2_Lp>1y&!Jq zyoDF;EEnD0WN9MHR!G|o^<>UTa(>ki3uo6cv}jk7N+^>ILLF=iTB>^W+O0|N8ryia z;WlRDs~^5;c*sjwla+Vh>Ab)`DW*(qjp+MLu2oba81n+Vz5LL^2@oekei*?Kt>5gs z-k;TBqmG*i$eVeFyxKU2xzQB?x2MU!e&W`K8wCQ|Qz7G#X^wk0Wlqjes9bC*Q~n?a zbEAK?2|V^(&-p)uoI~^y@GPiE~42ko+54M#OAnjCFkt5 zHO2bQe*LI6Efdo^)yJC+7PY6{0z9uN3PU6DZ{vSU&Zz6H+T|7pi#0FkPa)#Psrb@( z${!jz*Usi*j|pajY|Nd(E>0B;#a?J~dY7-)m`(9zF+RrnX7TVPvOb za`6}oDlQ;oxc=h&^ZSL}Vu__4?uA8OS4d^IL_Mz_2%>oWL0Bg%I|u7*$JWKaF;H^u zje(Am+{h4V3Mp`ivPZhjA6;;K$l#^?khHIKdG4_gH1-Hc6%yRdqg=Fb# zI^m+J;*+>!0~t%dHl(q+IOUP zS@PCsYp`xk#?=}}7PQzdBSdYWLRsR=DX3*(RitfK!w(eD#a_!ej>%bZs?cKj*U&6O z^y1CTDl++&n@S|o+jdxmqrCWhR{92}a(AuNTmyG;h`*VX`=hO=ZtAFaxUoJguT3;+ zp}#c7A)UREP_1FrkjPbVWwmZdz|4}D4!z}2J-JBhGfR8dy_LWiUH*x-ygFIV1$DeO zV}z-T7j#iCRnhww9RVYH%FBvYFY+zt`8my9A8O1WVW=Uvd8sz8f@$S`6*DBqR2sDW z>kxGSE{SlK+1ARh@9KvH^&t_)O4jvC!U-SQsVylMx4?HjAXH1%yxWjwr>ca4e8j)v zn`5|@JSY5Az~;+V9QkM{0G30IDL3`tPEI0uaPo&l8WE%BQg}<*$)hskx@U3d$g*>s zvgIxw2W(_doozKD$xps0WN`bRazAfHZ(CB730;PQovJ0uMC9;4 zQeJ&ADMp`r*O6CAjmE*L*UBF6h}g1`k~{Hj+*_qIE)@%_1UtL9t3<1@_nY*AVb#4fC%YsJMhnf``@KjxDUitAgV8xl?f^#BMALwo*!y3ivjz(NF zjAnYDocADy=)8hH9UbP{^2-LgC_sj5;Q6JNTbF6A=3m%lTNrJ4qh!6qt;_7?7IL~R z0CV0_w_25SnOHO%7cJp}cn3w@5zj6m-X&TD#QD`~!;rw&I9SG9(OEdXH`3+;(X^7v z2D(hlALbSPWd~=SD4^!JCTmdp;O4g)1+$QQJJP__?V$Lg4a>hM!|oQKEzOu2cv0fs z3o-qKEs1*G4=X;d_vy6GUF%k+8EbSA)=wP`?fh`QaY)cumu5s}Rl|&x3G+Q!?SR_H zitcO!zp}Q(=avBI3+>XGZCaO;Z#YeXAMDJ*8_Y@jY|6)7yX7KfG{?A!C@e3W1BLV2 za-3^TXI)bfL=pK~kJY;DQP6I6X>B1oK4X3BT0c2=t=$5vL15YE5}u97#>$$!LLv$R^B7>x0S`a zuJX`Ulu}E&zK!7s7u}unOGsY@tJs9)Z7H`0)qF@2l$~y1#p{W`D6|$ah51-%umI44 zve=WQ?h3@)TeER#|7J>sHs%BS)12Q3Th5k2BVf8PutiH0azyT3EKz0(Nhk|Ng8D5) zXbVvKFx}s;eSODZKWIX^GmGC4s*_(U6^0IXw#?d93uF)5rI{BuP9&-_%Vc^EINmA24!Q&v9=Sco zOLfi2);4@UajyBxGS(DW8nVOC>mjXl4@GV0RD|w6x5snWw*vK{Of|qd~%Lkjq_mDE!fcU7gjYV??jD(-pG=MX~6WO|s(qZ))CgZwRH&U4rc zX%QEsf)saTmbeq1AeCMc-51YdV8){bNO3RAAo+@Z86ng>;s)e`i#w?=PE+UK+K(5!D6URs?HG#P-Hk^Ttcu4~fjgZD8K5BE*>e4;uO4BcaGD@`&<1oMH{}Ad4k4Wqib=*MuTIgVC_^JEmezl@!pN~Y@_oejT?LX zk0-5XD7aR(8oyahXA&(%J7s@T)EczbHw3nfj>MhDfSJEsZ#(H|aEoTI{095~6n12_ z9~%95;KEh}?w4>`*OFbM#v&yZ?Ss&|=>z(~$XyuW1&`e*E;{{b)s?Tnw+G)i(RawA zgR`~5&)nP(@cexx4buL`uZl;5fl9hCfwd-cf$n!kbs4aT$?8XUep1XEm$;KmjLe5@ zprRkY>A2FLaTaY;ZAS9P6&iLDS#4}73KyE#T>+_EFvl}Usmk5SI_ttVt{)--e%*_z zh*71vY>&`EV&t;K-ymwu@?W7P(k^n zqxq)rZ1Zm`5lca06(tx+xvD3{XtvgD3o*-0Cm>uh(PchFu`$NCm(Cv9Cc6{zs9HOp zYg81;rD&Pa^wK8&1b>#WHQR%r1pSnGM{o#s3}YQRCq@AkI}fTSfR2lO^g{)}{5U zs-nrq7kO34Ej8VvbEi3+3GlmS8+%;O8{tP-sx%)-L z77r^cv-SfQf1r_1xYPFg*F)I7Qs0@~1uV^Zl(#N5jf@#ZfDSv)x!3 zO}lRK?Q*>OQ$96sdynI^et`9pqi^~e26UdunU6nBV2>pMbk^zr>a7L)NA+^o*Zke9 zSr~OzlK10BUmaroYWM7X@7uPO7D;iT*cpd@NWpxXAH-Mg?TQY`i6Cj~b^4VGq=SNv z-X*#Bv(AS)oqz8du#BdI_{9{zKlg_T{@4BNKW#x)A#d8CbCrWLUIIsZ^hl!-k6)GJ zhf^}QhRFMoQ8m?QL>b-oArX|EI454 z5V-ShDv#Taq3tR2c5a|hUnX~}wbYR;BNHdsw$5ZX9~~8vvbw%|8?3VpB}9Gjm+Ii} zDED`?`#Xm3XIiriNGt2k5sBHKi}+5-XFMgo`{S2cPMhWL(sA`9J7zx$#>MNv#e+r&cjO^j=uP8~a~id`0q$?k1wTx**63?t8sPoNg#sBQl?I=2><=$uL zcU7Hi?aWduaefa`pQv-6!_YjtT9J^0%}=KoiUyrft;p9Ae)zh9Et@+TmiV)8Hwaie zT;(`+8Q=U}9?bVYTdSO1U%4wq$DBMNoIiQ$PLpR&4|kouVBzd}JNH@;*DZ?5x!J}< zedUz4#%$%H^n|e2{CSlN;@ngtOyx9+ZbDd7J#u_y^|;EKQQ^q(6Gqo;U0qXM-HTs1 znE}+@PDm_?!qQa&tq*9U5e;N~9Xn+YyG3hA;tCE^>ELr!xcd zshqs^1dd>O&7D1WdO_%sRn@(wa;(ldXyqchG#6PpkR3r`CQ{q#$0He*29p*qno&8f z;7>xaqo|yo;w1@#^v$BuH;XdNMWt^RmA+ZTm|gm25ie}rK3-d&(l?7r-z;*MON$QfL$_Wj zeY1$&ET2U2S0GrpS}~QrS>$f2#7f^RYS&hm&9^(8aIZ30y4u$9SHE$jfj94;mR0&@ zQR$mSrEeAm(@NhgiZ5Hl?z{BOqF^Skl63#aEk&YNU8QdpxnJzqNmA*XMYHs~8~rK# z)XbSQzm~pPRQhI7uJp~K(l?8E*HHRqQCRwB5wAq^KXdU{TuR?8viDaD{3R~;I;`}~ zqS7~uSUycHeY0rgFETAGeY1#*w(hI@{7y{Q6!~zF|Ncac!&k(>+{7DSfjjr!NEPb4I0a7V(>j zsHf#Mh5l3eW|3a$mA+ZTHB9aT>wOjPunJ!n(#6iwH;Z&1(5_sTzFFknRq8W-{)#JS-sH*hMB6t6|^vxo7LB90O zB6lXY`d>5Em%dpP{Z6ImFt_mi1I^p+hcNCFAkoz=mNcbr7V%RF{qno?%_9HLFqXbq z!F~tYw4Rs?#J2D&maT+T(I=bqS7~uO5ZHvM{|BkHn<;9 zmcCh3`esr7U(7CjvnVWmv#9uEQtnefrEeBRU-vD2vnaapYfDl0TkHIH7x>;$>6=CT zDp@ou=1PCNR3J^jdkkCu$9R=wfMJdu0kS4-q=^}^B1MYS zfE1M~(u)+8jxBcGJ~r3H|u%c)&S4Dh0Q51X}~>vfZ=$tq31>7FBpo!jXWjqE;V~MxN5;y`ipv9;L(=C1-lPCu_ zW4SRE)j?ORgd3_wXnC&^YlHr(0Il;=UpJV;iac=@z!oH}Er=bqfLX5yoSOgDa zDZGQ6Q?Eb^&nu4QPz`rL#m8e|T!1>H+fWldiaJAQQ4_u0g7wcs<^chXG_a)`X$a<` zTnx4JDOdp;VObo7+M-pchL2z?qrhwCD0#y_AY@~hqd8~Idt#oD-)?TcC=AL+;U#=4C6mN^{@P+=ab zq4lU0*@oeG81v#~)YATrsu$eW)r-Is$|X@Brp~A{GR&NB@m-i%@Beu+xv6jkE8{)X z2ou`5rAtIDT@6gej;Q-nur$7H<*nv6)Qaptt;lZFYj*-Qf%B;6?_;3e|6j=H@cn_B zSzvoNlLDw2Bw|r)fcm8N!C&xIjKP=qd}@!!V}6{C+WXZOPe+>ezDD&E+tKxtguY&r zx)$h$8re|PDIbn%cp2(Ue1_WlU8oLD+WqsWCBJ9Jb#hzM2DNovtvtZWucMxy(uws~ z2Qvwj#AT=f9LG#}67?FM#(a1cwE};l8h(QMZsh6go-dDTxGPq|mr?C6L~X%3)D~<< zota~uS${Qjj(}$HBWjNecX4N;IqG%kf+5%)HNe5*!2~Rh>aaN$z~@mj7>=63IMfVgqb9J(?yobqoBPcZ=6TeF zZlYdG|1KGIRPlMY=M7LD4MlY{1~tQ(n6Z?o6#!!KIAKk78RhT61AsB=FD^@6TO4eTK5bX>CX1JtR? z_KIsi61CznJ{irhB&y-sn1pSxG>$`k3D%;%nFmn2eht-8?pNIa;;<;?DyW%vL7kq3 zSOn8i?VLt^#P6X7?&lidJ|S_KLZBMPV}I0)(oh3ghwAtOYKyWBbbB9)IVneDFqT5i ztQwZYdRP`;L2cCn%!MC0eQzBZo%fxnL$V7s(mkke+Xd82en+iT$RM{R@mQI1ik16d z4CNu1jI%Ha_n{{8E2`tL*KEKTsGkm{$Y|tcQ3I%n8HWTl;(AyNo1)&I0jM)F1aspX zsCtu81AP}&Z#inkR-;zpH0n8Tuxmdn2GGA3WPzNh3c;uj^P-lvDu!SK)M0Fk+JbJV z0ry4CtUs#$2-Isg5jC)FsJ-5W`f{8_ot=m1>qhP&?(h}GN|Y;OD87neI0lPj8tSLP zR*c8fsHOcIHQ=bB?z!5i`mIoh?{(DcJjYyQE*r}F>&99F8fiMJ!<|;)IBLe{P+M{h zwWl{wTb6H_d#)I2D@tL;ilMfk0cvHMq7G$yD|fT|uMA`THPhD!Xz3?l3Qj@o*>=$gId}0BV0cXQ4{f-kUCX%>To@l!|kZ0zKa^@W7I&NSUm6zS3i##iJTqZD@LXk73-pAIu5lG z(@+i0M0K>-`~)@7O{l}S12uu~P<#9cwUvP*-2j46^@CAgzWio6)W1%6&B>_ag{YCQ zu<|FU0c=LiWH)N&U!ewg2=n7f)ZX7leS$+qxuq?Sc_=qSot5WNukk>0493&H_nrmP zF_H3qjKK#Oi{bxqXQU!VQEq|xus_D&IMm)QK}}#YYJgi%1OFT~@I9z{U!lH`-=VLH zxkkGs3P-(0QK*heqL#D)7R2TlhrLl9O+__44XfjHtcr(GGtb8CbiV*K{VYJB5*W9<}KY?S9@#Zoq{w3-MUg;VChR z)1^~Woq!r>gZdJ5#XuZ@n%Q8~3XL|$qBeH|X2waVhNogyoNmrVZSo@2sat{d@C@qM zNBM8M4l1JFo7$+3o1q?TY4Oge0rtjfILOMYQ1v&VX0#P`j1OZiyn-57++=5hS;q7$ zSf(0kMzt{;)#->AMXm5H zi~o*==-&&P>Si8qCYXs>pCu`cQEdL8xA|>=2By8kfQVm3E%|Tny2BRqo*QU!EJ?gF zYQu| zPHj-n&9?GRE9+lGVu&YT9c+T7a4KfQbkrI69JLaM=Cc0T$=o8qmU<5`5B_Rqndk23 z$9%-2&5Ed%dIq&clg#6&l_~UJw=$(rW58xQ0@&BIV9l7N?^I_$6w^ZeU@2h?-FTg|5Q_sP94&s^eCu`$LdJ>3hS-sDVis zigQpES6KO=mCsxGAB^FC=pt9Y9IAeOR6D&;0~wBCI14p^<*2i87<1sC7@_w+^9SxQ z6vAHIsERr)ADGL{Pf;th1vT?SSQ#In8cba5R*F*85o0iFaUFZNI&%N zg(!m&W;7O|Tmp4k8)6}BjhfLw)cZajWARhenK^+P*iEd3!Ao4ZIo75;1k2$jOu(Dy ztK-m*++Gz#o#ryA5spB0FcS4TEH3&};HJM&S|EQs2fne1bZ~u^+oHS9L5-3w0&&-pkwyyo32Ee}uVl8|n}r zz=3!T)o$D6?zuk8S$~b_T>={MTGYt)pbpDE)PNqK1{l1;ZB1cR2dStInqm#?i8XNv zs-r8Y3H**aoCR09!i~k(dj*j5qJyBV89ypU^42#`lv(H8?~e( zF*hzm&1e+?1?k`WjZ8@lS?89rDr!$Vp-%UEs2OiY zt;9LZf`6k19Jt=iyb@}_bx?=#MGV75sOQ(C&e%7ol?vLx{%b~g$*9B9mNpt7 z<5~>Gs~C&FVHu3r=sIYK>bN87kd8pzpNk2&A1mQK)Q7CZCbu&6H?jWeZ~y@<(HIQJ zg&2eDt$fnTH&9ELeX|=#H0t>}sOMXuwqhXW#n(}9$u!J|E3g=Tj`}2D(_c?jv1Ynk z+SaJ87>@cdEk?a=OHr@mO4O3BM$V7-1?un(*y5g_f>kK5K~3a_`4?*CLbkg0Qt$=J zm3%T0WM-pAw#LdQF(>68Q3L$L;<-L^^^2hnSt@qG9;hwaf!czjs6+ZQYK87$3Rm+ViWZj&4}|w)xl${=)q%h(Vo=vZxiSfWcS; zwdBvDwy>+&2lc@kidAqtX7R~vC!+>-VH-S%TJo4L-G?U*^qs4RlgQ$=^LQx zcQkvT4&?yU7LLU@oQVmTzKiwO>Apljhv+xd407#u<>ILKITba-`l$NNQ5|;2Iyf8~ z;8u*ne^75z)E@Uktu|`U`iA6B~URSP&I*hGQ9rs5KbSzfG zxmXrYq8bd`=YCU)NBuPIfExG&)Rw)2IwOlvE3?KYqrLwE)zAU+Ps~cWYA36g9AZ<~WR{JP)3#^G_u^fJZI&{C70S8>i zA*dOIqXrO%L0Am4V;M}s%9t5@VixR+T7iM6iH${8-1jD1U@5BORag=)T0H1$clh$4 zW*&|@WD%%_<4{|XfOq+)uC^`hZ^u=)Y(~*A^V?BrV)XIm<_`Zy2BEMiIh_? z61$+z$Z#vq#PXEaqRz%u)Sf=XqL|~5d#()XY&1cgt^QaXr(#~c|Le#U!+jWoKVlH( zI_%7E#+ZqyfmT4xFxBGCP%G3PGht_}gU_SteSli}b(kBsps&5$M@D<~4QdA8qTbg# z=0B(o!;ZL>iA3#nGNxcvtc?9oOS}ZNHA_*i^Czg4+k*}8GU~Y!N7?^aG98cdyF8A> zxwsRxRPB$sUnGX1?k`2vzloYjj^l2LLoqky(wGCQp$5{xY=n6zH?eXjjG^4+IP0&5 z{zD)qPQZ%z9){vR)J)G}JYGiq(8+$nbrf%=n5kwXvlVJ9yQ0p>%c#RT3e{h_Pevo% zjoN~}s0Y5b3a89VsF~lvh8TR(&A2UU0^L#1^+h#2#2jPsw^7f}My>1?)Jpkh$f$uU zs6D%7<-4d)>F=lyOV}xXp~RA?*J~-`V=#(iR|VlX#an=hdn9E4#w9?Riu)Bp}(5}v~Z%y!zDjGAdjqyujx>h=B5;yX~! zU&H|V_wJI>2=Aj#`9sv} zL9NKo*bpCJs^0&qXWi)>hU(x=E5CzzDKA1D!i}gc*?}79In;_>Mm2m7)$p%Yu71vK zT`g3-cBldO#I`sb{fcA`lTpWk-@4!9bD%m-M6E9xR3kPF8?0Vk)R=gNB zquZ!@k5F5b<$^QVj4)%&l4d!xx^J2KW;3%LHl@KAP+PDP^?t8L4LBV&!yV>c)JhyS zPhm3U?@(Kl>!KTQG-{w_u_*dg$mqc?SOL3Z8JvrexF1vT3aZ2COYX;W2~@)^QP20l zBG?aAZwe|t12y1zSO^!H+mU*{caDs{e3wxbuVXmg!D#d@yRC^q9i}AI9;Tv}zBX!w zo-vza0Ogjb0klT7+X*$WZf0-Hq4$3vnbO=CiH&hNM&NzaSqQq~mM#L-U(Gw!p5aC0>J?SUPIv+c5^uVHbRaS?S+vf7LboyxG(2Zw|%)>b-$lfl-)aTV6Ylc+5WyY9|XIn+R!pw}^Zp(n0E+BwZ#J$$%P>pG}NSUcqf%FP_PKMWn z{LAE9k|vVRM_NeQM0!A4MxEMNhct|QJ#0$ddHV6I|F7v1!S@NSA&sNlgR-vvq|ywv zICS?rB4H9-2k?KBNb;@<(=G^ zNyRF7gxI@Q@eg9rr2oCzQ73^;U%+V6KO|jMNsq_}@=Pg<<)>af%dg}9Z1P35h5f0d zx1x-75Jzkr`Tbaj_+FB}Pfbb1NIv%#a8K89)PI}2j1?{RA>}{Fk0#Zi&S7joEEiTp zU6rvB2Hhj5t6SQjO5y$@!V9d5q75xy#%jGqIT!QL6=Etsf_N#)9mr>)?$4z0_Dn5n z<4x`jAb;B8`^kT*hq?L_`zwH-Hn`v;Pq9 z^{;qsdtTqE5*FV;z9jXEl639C36{Ucy@%w>W8t*WD$#yca{6uPD(d>0yDhN|7PCcu z%)OKooItrdW;tNtGJxSdUxwnI)|6u<;j1-S124O8FH$Vet#P!F8YdWARZ&Nk3e; z{wC?CWj}5nBk8({{QB>WBE4^o#MnLE|IT9D{uNXFUE+iO6$@bS`-t}@_5x`b=@ZgO z>NV8gTH>jYMnKow1dEeOQyzs+ug;YFQXWA1#_9&8ov#+*&nKe)DRqw3?rL|RK6#yt zegXKIwASj}G*xGw{;+E&@i{zymU3(Iuaja(1#JEGOWk(vk07S2T*hC{$jl=BVja)I z(o|ST%BNa(l_h?O*mc~F^HGOtHTl=c>q;Zvne+i^hYNY<$=|a3-{C-&Nj=Fg%f$Yb zCo_cf9O>WJAS&rvhMP&p$bU+m+*p9}X?$$Yr0X8Bt(0?-4v=b6))j1ZGT|i3#aV?H zu@mJ&K7|wt!>F8!A6wbsK*+^?C7ooGKR|uKr#4qAM+#7`YOG6NK!qSpzMAf*$-OJpm zL3%@pa$C}uq$Q+*#HOOI=Nw)lvGJs8X%lNi`=_`|A>*pWpFdIf5?>^|xa#p|ZPN4BNN&cqg#4Y1yY7!R)YtVa@s8vtlRra#jQ)aBgh04en9Ge9 zNb5GhBWwv`F^P6+ zSXV;>d+;&oF!kQU=GMgq3}eVSiG53c5_O+m z_bC5Bs$hX{aW40d5=$Vhp#(w#rLoz@$ZRuAwQhhE|RX#F$b}#q~qk@#F?aHBwgq75d4DlDuM2# zuhP!di7uEADunD&Qc?e@^q{DJ8f;{W*TWQ=_lg5i4Dak zSf7-gd}C4!&qb4h$loTes|oqHNb|`bAWgFP@5FA9xO{K01q)zLA|GKlZdSoha1168 z4<_ZIgJAcdcZhN!QX=KT7Nh8uqrR>WupnmTne3!E@=>I^q~4@GJd-aVEv{aqUy!QT zDV8MN=hjQ4uB2$vLDCe`dhYe1-bnJg3X#uF3L_p%ITW8>Z;|JmMF|elRMc`e`g+aAEFAK(Cb}WHB#;b)d z<7-$9KgLqH4PWs*zjvQZa{}dR^AMbj8ptQ88&_jG{0r5=KUfko)$zQnn2ZInF=oag z7>W~6_0us7mtZ#BfFXDYGts|yl1wy#YZ#BuQ4QnkdR`<}K|!mp!!*cn!r9RME~9stH}478$cDzOS}sf!f~hptwud?uf_ky zM9MMs=nP*&b4WPWAj0R8*^`J(m z2eq_vPb&|w@)#>mw(^%&{@Ti0t-J@d6+dEDyo%bo2dFL0@`l?|e-1JlKs>g=3aF9I zFh4gJnJZE4H=c0VM(lj`Y`oCosrSzGK-(UV7>o$$Yi9!eJqDw zQ#Zo$sHLljTDp2z0=rrLEKHz0$IAQ7gQyibj9QVCsMqc)Y65pqD-h6(?}gs~AToMQ z(xPS-ftpD?Y6cZCKQ=*qQU~FmI23)@kI$zDnu6JJA!_fpT6{0kr}q=8pOP(HKb6t1 z*W`5z^hJ$q6zY_ZK|OdQ>P#F!?fnT<2iL6r4r+M}0SZsQas<9^4Dd;y~2%SD?0F2Wkrr zp$2%l73;4N-XfqGJVotsVrzFM+M-^Uo|p;yqXsy_9EIv|4636kR-SL=6{wZlfm*r! zs59{sYC^aCWTMGD$DA0=I~b2;P#w0#9M~H*gE6QXOhwILA!-6Et$v4j$UI|SHSeG% z^a%A@`k#|gM>X2IJ#S);LUp(v)!}y3On*Sl^df2{?x7CnpQxEewR01SMNQ}>%!N%b z5B9b4BxK-zZwVPS+>Ckg6#DQX>c$*zI!j@0%Joql_CUR6AEWM@h8n;|)LZZ!CgN$- zM1tG9iDW{(w)ru=-v5SH(F#jZ(FgUKe1#QpCHnAJ)RJfD;8rXWwKZ|5*S0chhOb+F zU#lO6+WSvY6J3h>-t5Ng^zWS@qb0tDn&CgF2j+UqJ+L_Hu++mCd<*r!;iw0upxQ4- z4PYl~B`%}d-NYz-jG9=Mj;?(k^j9U2L`JV!KU7D4EP~T82)AP}?#4jekLvIc&crLI zfe-HF_I?KH{_DCV0~n9zEuN-}i-%(XaUZI~e5e5xLLK@tU08oTum%B*uq|qYJy0Edh?Q|X>OuQZ zZ@~f7TkwPV3u@p`Fc!nRy8DZv23QWYa&;8vL9d~n*Q9GVSJ4bB5on3|a0co_u?dUf ze$-w*Ks_j=yW5&j)C4kO8Z3yKSpsSxl`tM#rv!vW__daEh@{8G=33O+Y(ouc7pmR& zR(~8rDWAu5cmvh`uK5>g=^mqc4(Z|U&u->Jt$DE?Y<2-Ml?Z649Z(PIie<1DY5-rM zrnmqz;9}GO)?s?wX65~umhwr|3x5vv-1}Dl2z6)zd%90vR8KZr4~QY45f{c}EQ`AF zJ=6e(q6RR`9AS<&$D!I!K<&{~)N{YE_%hUCScBTLJ*Y!<#!p5s=pEF^GW2q%!-py- zp-xpTR0l0lOa3NmhTTvP9)^kd2`1o9)Q8|M>XRAT+iiLr>bdn$1Mqhslb_6csF}|} zot}%RFUv#JgR=K=FLDXgjjy4;ARVwI4#tAG3^k#XsDa!=owk_1Zp&(6M#_yagFg1{ z$b=K6QwG!F;yBn*aI;e^2u#S~qwfg#~4jZEeItVl2DAdfS zq28K#sQZ_qUo%@qMmKzmdhNbP&EP3&uLIw4UydB8!&4p=uZI!%7M8_b@UP_gyi6Lk;u+>i&N)hW@?iA#RT=qV}>nY5;XmH`K>yY-;wy29zhEI=+b7 z>swa-4K;wjQO^l_-_1N7YJg#w9V0MK?|%_8`UE$?oY)^T<3!Y9`3&_QuQIn|LCVLh z{1A&!PWyr9`7jCd;v1L?2VgW##%#C@eYg|-+S_YnG=slUBYcD!`E%5s1rK#+ARX!p z8I5Z98ft~!K)pq+P#twcy)~my6Pkqia51W%gQ({o9?JT^MCLew3Yd}Q(9CP08Z<{O zacfjZ`rAwo?t^;pd#Ej&ih6x#q6R)6_1q<>=Uhi^$t~3B|JzJ6j7(($k;B|;^*XAf zp{NcY_^&we-n!##wEovp!n_Ey{#9gQl&KcBendU>+aSUn;5>YEv-A_i}`gW)r z#$qgPKp&pQNPKAVu;Ffo38)#DM4j@=sFkRNTCsW-Z;qN!2hn0 zIS%!}$*3D1=Zng^Dpz689dU}hdKRTqy=)Dab|*9 z8cXxQN*IW5qXzsAY6e5B{GmD4{1}6&pN@raHfn&o%p;ga@Bdjcxv9968sO83`6&mE za{q0$AZpK=V0r9;n&EuRi_1`l@(5~RXRsh%v~rr!He*z~NYrbY2czlVD{l=NV=(2` zm87=p*qugs5RwC9&l zhwv6w$EY#xEog=6U;yeh8iwk4BI>>=7N3n8;9{(ZtF3$+)&2o$LXT00I^$T@zbcu0 zW8KI)m|e}@<~!zK)QpB%YH$>ey4z*;fu>_vO zk{C9_Sp~I)eK8q7LEU%S%Kuuq+Dy;$5$}r0^zV%$Qxp%PPW407YxW$q5@DaZ*QzkG zrCt(d#?odDt8a?gh_^EbpjPT5)E4bAv&?cU(;EF+x*ir7gDOwQs<_6=_fZ{(&vqlv zjOwT)YQ<_{F6?FXW3fEtC71)RqTYh1sFf=`$E{S$Ijp~ybSQzGxELdGC+5X7m;oQ7 z9+YOTJIyhurA|V1+!Xbkx3LV)#^QJ!HNb$++=>;#Je13$Ce-vZ)?XbqC!h~QFI2}< zt-(6fq1=F4@;%6@_0FK$-Li6q&s{kWs=g}vu#uJfS^Y@Va~7fove8c_E16TM0o+8L zg^csu7pwwCQGNw;V{7b;gHUJXvU$_|10#q(Ld`tv3-_v#cqu$O6pt8ajsU?VGkWKP6L zz5gGR(F5kAM!pAQ@hqx?#~6f9Q6H4&7>(fz-BK69e3YwTPHc}MI0OsufZ>wz;ze!+ zj$n4mKcoKO^`4T^DGpuC#{=U~dpHes;}X<>j-poJE^1)GOWaurK@BJgHNg6)t!aZ9 z@qN_u$75w&fK~7s`qfdsrEUggQKz#7>U4HTo&K>_o{9QWZa@v-R}944s8fFz)p5Yr z?stk0HLwDx*D@I^;y}!RYrbavYmwPTK&LWfnHzB|YQ%}CrK*i_*ba;0NYoiwg__|t z)RN!B)YFd|VAyhJIQl4O#u8Z4${m)o{tApBpc~g=e%y!Z_%><yY_i$J}Og|QeW zqwedAx^E=v3@t{TiOrZ1FQO)N8`ERjmCmew%j7ZR%~GftRl$Z>1J%)V)KV@*t-xi> zgb}OU8Oe{Kl&hl#S`W1nov;LU!L&FNwKe{EWD1elf<^FW)ZS-W?f!~QM6E<))amYl zg>e-6a3yL$$54kgWR0770%}DXU>fX?NjM0#0?Uv??e{j4(WyLxSuxvM_kegTMfp|K z4Sv*&#-lp?5;NnE_!8d2QdnS}JB%$bFXbLs3@4(VzXem@CQSYJ|6OYkzTSOsDq~q1 zc1C^C=Au?+6RN}Os1^DfBQSDN&Xw+^+m`%znQ2ZJ!`8~55pqh3oNYR37IbLW*s9m4CV`@L^j z)$$leMk8-yzKt63C=A9$*bbLr6ozeb1B*kI>!9A}_NW2&viNXw7V3Xxnu*5gTuRvxm=y;ei9HSNY?0$xWAFza{j5GSBI>WCowTBNeAEw{sz6*({)7=zxh$ zQJ>Z|s2OfTwcm~E@GK_d9jt-HcXMFH|0JU zgA=U$HR>?#Lv?%=HPDAx5ySVmzl!Uio;L{nCCSVoqmGZDM*ak~XTf{jA<2eXnK;zp zDT~Fis@VraD1VN+f1$YwgD7vp0NjQ?+>RR9mA&l0GLH!4#Z3F$9+$+Xl#?+GXQB@m zUxPhA4 zL)4Q0Yvt$zuH$@In0OOZJ3j{EXw(44VS1d1dhSfrR(ytfJI?9`o$BkT4j-5y2i=IH zP=_a{nTWM0Cu3S1hdL`$um~=~TzCRC;5$}Mf5?72qRvJO)Ry{tlgUqJ80yCPsKfCc z>Tq4f0vK@E-B<|YC|5!sw#QH$ZcZ?#oAXcuU5c9E8jJ5jR>-4~s$upc zZb=JaM#{xddszv!Rj;CE&=B>yb}$E^Ivk5ynaQZVUWhvEE3q72!2tUAavpVi6ODSG z^P-lnBG$lWs2k^EUOb8~<2{^-rH{FlI*i3A-$vC(A9wBBqRz%J)C!M5P3TKZulIiy z8J*6}=2p}Sd}rlj=%aiB^`Jj713tkr7;?g`L?zTr>tjJ|hWe#56w~7zbCJ0Q{i@h% zfqkgGJc&9a7f`45KB~jSlWw3DP+Ra4s(m$7eOn>p>+5=zT4V>YyU(*K#syPg`I?9E-V}_U^Ql^Vm+$iA=HS^VH3QAWw82BuH!)%OL-V-=JQZ1u^u&n zZ_G`ofo?%<^)A#F?Z=XO|Id@jMIii~>$os#$;)Fltc?}1Eoy~6#RS}oKKu(cfNba8 zfQq1&ye?{`nxGDMXVgIYS^Xdk*ZV(`jFu<`)!}T^3|6C-YAtHy8_lh#z1xL)t&X8O zyok5(7FNfT7u;XPQ5W5W-bA(Qi`t?gnEHS0J<Tgj@Dyqb ze3#t&ogX#uMAQUJnJ=MMqWUG)UzxfDN?;?@-V8@=!8FuJ7hrx|fogvOOXFG8>luF8 zZDD1sM7cSt!)aI;=c1mw7j^$n7=u?X`&~otimOP68gVAfjoHj3Og+V@FJCiMyVe+i z9WWN(MQzP=)FJ)~wS{X?OTPiNLOaaeelh_B_M%3%ANAm4s18q?7f}zmfjWHmur|hA zbswrOsI%Zlt=vS^^X6K4KI&~+hZ^7>Y>57oWVFO_*WAn!Q8Q0MA2z_&*cbJ{!{!g> zIrFM{3j=8P2WkcGV-XDa*~Jr36D)=d$nTXVqX*Z-V62DQ)7Mce@F8kx$6;Pvf_mK! zTKO_+F9WZ;zZvsl6y^6&-;2pu3iqH^;0fw23%j8&F8iO4OcerkP#uj$eGe9+2C@tF z9^c0T81#!P7e*bbis-|7sG0XR`dm8&hjfTWKaj2vi)KKz$&Vwxp0ch7lqZw^_X?wJHqwi0Ic@&^PrG3}BZYEvl2*GO zsf)(ggG`o`(9+R)W>Ynh(h<^C(lt^Lw}tT70x8L*qy3L5=^9CTLjERqbjN=vPr^o| z;^cqCKS+O)($J<1sW*9!idUC>SMsluMw8D@`kb_Z^e1T%ZIbb2(!1ne!B=TJOMfhG zB6FGG9D*xJBPe&Itg9y}k)c*1R*dvA=^Uv%NuTAFSde?ZCT*gei?%h14IqCIUtD#l z4<{{n5iqLU5pJ+?20k zS&Mx|`4M?NyE1K#U`=8fu`KE;kF_xL9zk90Q`(n}@XsUsnKeSwAIX zxoCfsJt{5cq4pyypT+64+C?mz#dPyV%kRMsq)&+HQ?2VL=?<~KY&b2+r(p_1DR&{i zh7_FI(*59jm9nT@#(G1Ecm7X2+3pX(LKa^~z6kB&NV>kqQI@|>-DC2lF(xITe5^k$ zxr(&<8Fd|`wh=bL0=CHiP`8kB7|ynKYP*;Gr^J858>CQT`hw;lpP9I>r#Q>Mn78BihCUzpMWQVUw;=FZp1|4r?OsOu&2!S=*g$?NKbJFI>N`9_*r~302+wz~7;**K@ z`%f&8!S5m7jo6!{fuv=m_i0yC|7C0t~UzqFfsVh>_jY4<*MqfKRNL-zkK z{c*R3w)(4cJ9e`B)!;DgLr9y+*B~X>{rPB9`3)s~j zT%`2mBU18Ij;?%-+N<1Eg)~Hoa#PYy(tOg}#3rDw1`e+%v5};gQU+9x^`D}aLh4nO zpTASsfo~CSh3iOn$VZXhA?>9;7jpPhuj>4)Mrvmd31@8c$=^<`bw8TWUROQhEy<51 z|0DTf`g1y#K%_O8Nku!-8qzLeK|E{;4YOH&82L)1wWM^^>6%3TTk135IMM+Z_Kp$D zL3yr~Gtho2<(;H&i0w&zCR4sm;Kfyr%wf_%3zVSI2GYBK{I} zuy@LbRU`a4YzgvVF`iS+TEsi}hco*F*7LwYKe~t7lshhQH{G$Jf z1b-%_arb*~k=NA~6R`p}93sW=;8B!U5MM&MDNey6#Lp9NL;gKtyGXjWV+LXsNhipU z#c8DDBwascCb)ythd@Wt{*?X6u{pmXHK!v$V)hd8)O1 z$g{qsGKJKi^gHq0#NNf{Sc4Qwz78ob_xVWa$^S-NS6%YsNpr~WCylZALt-~cTz>Bz z3+BX5L>6FsDl6bJ{1D@bhm*3t);Fz?S_!om4|#NDS~)j%31Nn zHIB?P>U3>0U5Pi4b}fj-lTMM|3*bZXl-fT?*Q{|f^0Vv?hMsy|S$n+t$Xo#(Q<}Do zTU)nnLZiZOweQ`#Q_o#Xe0}>2=;s^IyOXb1r*1uab{f#Hldo^TZv8v?I`#JTYTvE* K+HNbSmHR(iC}Ge5 diff --git a/locale/zh_CN/LC_MESSAGES/boxes.py.mo b/locale/zh_CN/LC_MESSAGES/boxes.py.mo index b91e5ede2dad35f5d4f168c35c40ef19ed85529a..95c5e35a8699796f9bda4fde21d7ee4aca4346c6 100644 GIT binary patch delta 19765 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 M(`~-DKX2Lp2OV2cB>(^b delta 19515 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 diff --git a/po/boxes.py.pot b/po/boxes.py.pot index 74f8b90..198b4d0 100644 --- a/po/boxes.py.pot +++ b/po/boxes.py.pot @@ -8,7 +8,7 @@ msgid "" msgstr "" "Project-Id-Version: PACKAGE VERSION\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2020-11-09 19:12+0100\n" +"POT-Creation-Date: 2022-03-12 18:23+0100\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" "Last-Translator: FULL NAME \n" "Language-Team: LANGUAGE \n" @@ -127,6 +127,16 @@ msgstr "" msgid "S Stackable (top)" msgstr "" +#. Ε‘ edge description +#: boxes/edges.py +msgid "Stackable feet (bottom)" +msgstr "" + +#. Ε‘ edge description +#: boxes/edges.py +msgid "Ε‘ Stackable feet (bottom)" +msgstr "" + #. i edge description #: boxes/edges.py msgid "Straight edge with hinge eye" @@ -544,7 +554,9 @@ msgid "sx" msgstr "" #. help for parameter sx -msgid "sections left to right in mm. See --sy for format" +msgid "" +"sections left to right in mm [πŸ›ˆ](https://florianfesti.github.io/boxes/html/" +"usermanual.html#section-parameters)" msgstr "" #. parameter name @@ -553,9 +565,8 @@ msgstr "" #. help for parameter sy msgid "" -"sections back to front in mm. Possible formats: overallwidth/numberof " -"sections e.g. \"250/5\"; sectionwidth*numberofsections e.g. \"50*5\"; " -"section widths separated by \":\" e.g. \"30:25.5:70" +"sections back to front in mm [πŸ›ˆ](https://florianfesti.github.io/boxes/html/" +"usermanual.html#section-parameters)" msgstr "" #. parameter name @@ -563,7 +574,9 @@ msgid "sh" msgstr "" #. help for parameter sh -msgid "sections bottom to top in mm. See --sy for format" +msgid "" +"sections bottom to top in mm [πŸ›ˆ](https://florianfesti.github.io/boxes/html/" +"usermanual.html#section-parameters)" msgstr "" #. parameter name @@ -635,7 +648,9 @@ msgid "outside" msgstr "" #. help for parameter outside -msgid "treat sizes as outside measurements that include the walls" +msgid "" +"treat sizes as outside measurements [πŸ›ˆ](https://florianfesti.github.io/boxes/" +"html/usermanual.html#outside)" msgstr "" #. parameter name @@ -654,7 +669,9 @@ msgid "thickness" msgstr "" #. help for parameter thickness -msgid "thickness of the material" +msgid "" +"thickness of the material (in mm) [πŸ›ˆ](https://florianfesti.github.io/boxes/" +"html/usermanual.html#thickness)" msgstr "" #. parameter name @@ -662,7 +679,9 @@ msgid "format" msgstr "" #. help for parameter format -msgid "format of resulting file" +msgid "" +"format of resulting file [πŸ›ˆ](https://florianfesti.github.io/boxes/html/" +"usermanual.html#format)" msgstr "" #. possible choice for format @@ -703,7 +722,8 @@ msgstr "" #. help for parameter tabs msgid "" -"width of tabs holding the parts in place in mm (not supported everywhere)" +"width of tabs holding the parts in place (in mm)(not supported everywhere) " +"[πŸ›ˆ](https://florianfesti.github.io/boxes/html/usermanual.html#tabs)" msgstr "" #. parameter name @@ -711,7 +731,17 @@ msgid "debug" msgstr "" #. help for parameter debug -msgid "print surrounding boxes for some structures" +msgid "" +"print surrounding boxes for some structures [πŸ›ˆ](https://florianfesti.github." +"io/boxes/html/usermanual.html#debug)" +msgstr "" + +#. parameter name +msgid "labels" +msgstr "" + +#. help for parameter labels +msgid "label the parts (where available)" msgstr "" #. parameter name @@ -719,7 +749,9 @@ msgid "reference" msgstr "" #. help for parameter reference -msgid "print reference rectangle with given length (zero to disable)" +msgid "" +"print reference rectangle with given length (in mm)(zero to disable) [πŸ›ˆ]" +"(https://florianfesti.github.io/boxes/html/usermanual.html#reference)" msgstr "" #. parameter name @@ -728,8 +760,8 @@ msgstr "" #. help for parameter burn msgid "" -"burn correction in mm (bigger values for tighter fit). Use BurnTest in " -"\"Parts and Samples\" to find the right value." +"burn correction (in mm)(bigger values for tighter fit) [πŸ›ˆ](https://" +"florianfesti.github.io/boxes/html/usermanual.html#burn)" msgstr "" msgid "Settings for Finger Joints" @@ -760,7 +792,7 @@ msgid "surroundingspaces" msgstr "" #. help for parameter surroundingspaces -msgid "maximum space at the start and end in multiple of normal spaces" +msgid "manimal space at the start and end in multiple of normal spaces" msgstr "" #. parameter name for FingerJoint @@ -768,7 +800,15 @@ msgid "edge_width" msgstr "" #. help for parameter edge_width -msgid "space below holes of FingerHoleEdge" +msgid "space below holes of FingerHoleEdge (multiples of thickness)" +msgstr "" + +#. parameter name for FingerJoint +msgid "extra_length" +msgstr "" + +#. help for parameter extra_length +msgid "extra material to grind away burn marks (multiples of thickness)" msgstr "" #. parameter name for FingerJoint @@ -776,7 +816,7 @@ msgid "finger" msgstr "" #. help for parameter finger -msgid "width of the fingers" +msgid "width of the fingers (multiples of thickness)" msgstr "" #. parameter name for FingerJoint @@ -784,7 +824,7 @@ msgid "play" msgstr "" #. help for parameter play -msgid "extra space to allow finger move in and out" +msgid "extra space to allow finger move in and out (multiples of thickness)" msgstr "" #. parameter name for FingerJoint @@ -792,7 +832,7 @@ msgid "space" msgstr "" #. help for parameter space -msgid "space between fingers" +msgid "space between fingers (multiples of thickness)" msgstr "" #. parameter name for FingerJoint @@ -800,7 +840,7 @@ msgid "width" msgstr "" #. help for parameter width -msgid "width of finger holes" +msgid "width of finger holes (multiples of thickness)" msgstr "" msgid "Settings for Stackable Edges" @@ -815,7 +855,7 @@ msgid "height" msgstr "" #. help for parameter height -msgid "height of the feet" +msgid "height of the feet (multiples of thickness)" msgstr "" #. parameter name for Stackable @@ -823,11 +863,11 @@ msgid "holedistance" msgstr "" #. help for parameter holedistance -msgid "distance from finger holes to bottom edge" +msgid "distance from finger holes to bottom edge (multiples of thickness)" msgstr "" #. help for parameter width -msgid "width of the feet" +msgid "width of the feet (multiples of thickness)" msgstr "" msgid "Settings for Hinges and HingePins" @@ -866,7 +906,7 @@ msgid "axle" msgstr "" #. help for parameter axle -msgid "diameter of the pin hole" +msgid "diameter of the pin hole (multiples of thickness)" msgstr "" #. parameter name for Hinge @@ -874,7 +914,7 @@ msgid "grip_length" msgstr "" #. help for parameter grip_length -msgid "fixed length of the grips on he lids" +msgid "fixed length of the grips on he lids (multiples of thickness)" msgstr "" #. parameter name for Hinge @@ -882,20 +922,36 @@ msgid "hingestrength" msgstr "" #. help for parameter hingestrength -msgid "thickness of the arc holding the pin in place" +msgid "thickness of the arc holding the pin in place (multiples of thickness)" msgstr "" msgid "Settings for Slide-on Lids" msgstr "" +#. parameter name for Lid +msgid "hole_width" +msgstr "" + +#. help for parameter hole_width +msgid "width of the \"finger hole\" in mm" +msgstr "" + #. parameter name for Lid msgid "second_pin" msgstr "" +#. help for parameter second_pin +msgid "additional pin for better positioning" +msgstr "" + #. parameter name for Lid msgid "spring" msgstr "" +#. help for parameter spring +msgid "position(s) of the extra locking springs in the lid" +msgstr "" + #. possible choice for spring msgid "both" msgstr "" @@ -924,7 +980,7 @@ msgid "bottom_radius" msgstr "" #. help for parameter bottom_radius -msgid "radius at the bottom" +msgid "radius at the bottom (multiples of thickness)" msgstr "" #. parameter name for Click @@ -932,7 +988,7 @@ msgid "depth" msgstr "" #. help for parameter depth -msgid "length of the hooks" +msgid "length of the hooks (multiples of thickness)" msgstr "" msgid "Settings for Flex" @@ -951,7 +1007,7 @@ msgid "connection" msgstr "" #. help for parameter connection -msgid "width of the gaps in the cuts" +msgid "width of the gaps in the cuts (multiples of thickness)" msgstr "" #. parameter name for Flex @@ -959,7 +1015,31 @@ msgid "distance" msgstr "" #. help for parameter distance -msgid "width of the pattern perpendicular to the cuts" +msgid "width of the pattern perpendicular to the cuts (multiples of thickness)" +msgstr "" + +#. help for parameter width +msgid "width of the pattern in direction of the cuts (multiples of thickness)" +msgstr "" + +#. name of box generator +#: boxes/generators/abox.py +msgid "ABox" +msgstr "" + +#. description of ABox +#: boxes/generators/abox.py +msgid "A simple Box" +msgstr "" + +#. long description of ABox in markdown +#: boxes/generators/abox.py +msgid "" +"This box is kept simple on purpose. If you need more features have a look at " +"the UniversalBox." +msgstr "" + +msgid "ABox Settings" msgstr "" #. name of box generator @@ -979,6 +1059,10 @@ msgstr "" #: boxes/generators/agricolainsert.py msgid "" "\n" +"This insert was designed with 3 mm plywood in mind, and should work fine " +"with\n" +"materials around this thickness.\n" +"\n" "This is an insert for the [Agricola Revised Edition](https://boardgamegeek." "com/boardgame/200680/agricola-revised-edition)\n" "board game. It is specifically designed around the [Farmers Of The Moor " @@ -1194,7 +1278,7 @@ msgstr "" #. description of Arcade #: boxes/generators/arcade.py -msgid "Desktop Arcade Maschine" +msgid "Desktop Arcade Machine" msgstr "" msgid "Arcade Settings" @@ -1230,35 +1314,70 @@ msgstr "" #. parameter name #: boxes/generators/atreus21.py -msgid "top1_thickness" +msgid "hotswap_enable" msgstr "" -#. help for parameter top1_thickness +#. help for parameter hotswap_enable #: boxes/generators/atreus21.py -msgid "" -"thickness of the button hold layer, cherry like switches need 1.5mm or " -"smaller to snap in" +msgid "enlarge switches holes for hotswap pcb sockets" msgstr "" #. parameter name #: boxes/generators/atreus21.py -msgid "top2_enable" +msgid "pcb_mount_enable" msgstr "" -#. help for parameter top2_enable +#. help for parameter pcb_mount_enable #: boxes/generators/atreus21.py -msgid "enables another top layer that can hold CPG151101S11 sockets" +msgid "adds holes for pcb mount switches" msgstr "" #. parameter name #: boxes/generators/atreus21.py -msgid "top2_thickness" +msgid "led_enable" msgstr "" -#. help for parameter top2_thickness +#. help for parameter led_enable +#: boxes/generators/atreus21.py +msgid "adds pin holes under switches for leds" +msgstr "" + +#. parameter name +#: boxes/generators/atreus21.py +msgid "diode_enable" +msgstr "" + +#. help for parameter diode_enable +#: boxes/generators/atreus21.py +msgid "adds pin holes under switches for diodes" +msgstr "" + +#. parameter name +#: boxes/generators/atreus21.py +msgid "cutout_type" +msgstr "" + +#. help for parameter cutout_type #: boxes/generators/atreus21.py msgid "" -"thickness of the hotplug layer, CPG151101S11 sockets need 1.2mm to 1.5mm" +"Shape of the plate cutout: 'castle' allows for modding, and 'simple' is a " +"tighter and simpler square" +msgstr "" + +#. parameter name +#: boxes/generators/atreus21.py +msgid "columns_definition" +msgstr "" + +#. help for parameter columns_definition +#: boxes/generators/atreus21.py +msgid "" +"Each column is separated by '/', and is in the form 'nb_rows @ offset x " +"repeat_count'. Nb_rows is the number of rows for this column. The offset is " +"in mm and optional. Repeat_count is optional and repeats this column " +"multiple times. Spaces are not important.For example '3x2 / 4@11' means we " +"want 3 columns, the two first with 3 rows without offset, and the last with " +"4 rows starting at 11mm high." msgstr "" #. name of box generator @@ -1275,11 +1394,13 @@ msgstr "" #: boxes/generators/basedbox.py msgid "" "This box is more of a building block than a finished item.\n" -"Use a vector graphics programm (like Inkscape) to add holes or adjust the " +"Use a vector graphics program (like Inkscape) to add holes or adjust the " "base\n" "plate. The width of the \"brim\" can also be adjusted with the " "**edge_width**\n" -" parameter in the **Finger Joints Settings**." +" parameter in the **Finger Joints Settings**.\n" +" \n" +"See ClosedBox for variant without a base.\n" msgstr "" msgid "BasedBox Settings" @@ -1298,7 +1419,7 @@ msgstr "" #. long description of BayonetBox in markdown #: boxes/generators/bayonetbox.py msgid "" -"Glue together. All outside rings to the bottom, all inside rings to the top." +"Glue together - all outside rings to the bottom, all inside rings to the top." msgstr "" msgid "BayonetBox Settings" @@ -1422,12 +1543,19 @@ msgstr "" #. long description of BurnTest in markdown #: boxes/generators/burntest.py msgid "" -"Set burn in the Default Settings to the lowest value\n" +"This generator will make shapes that you can use to select\n" +"optimal value for burn parameter for other generators. After burning try to\n" +"attach sides with the same value and use best fitting one on real projects.\n" +"In this generator set burn in the Default Settings to the lowest value\n" "to be tested. To get an idea cut a rectangle with known nominal size and\n" -"measure the shrinkage due to the width of the laser cut. The burn value is\n" -"half the difference of the overall size as shrinkage is occuring on both\n" +"measure the shrinkage due to the width of the laser cut. Now you can\n" +"measure the burn value that you should use in other generators. It is half\n" +"the difference of the overall size as shrinkage is occurring on both\n" "sides. You can use the reference rectangle as it is rendered without burn\n" -"correction." +"correction.\n" +"\n" +"See also LBeam that can serve as compact BurnTest and FlexTest for testing " +"flex settings.\n" msgstr "" msgid "BurnTest Settings" @@ -1474,10 +1602,13 @@ msgid "" "sure there is no squeeze out on top, as this is going to form the rail for " "the lid.\n" "\n" -"Add the top of the rails to the sides and the grip rail to the lid (still " -"missing in the picture above):\n" +"Add the top of the rails to the sides and the grip rail to the lid.\n" +"\n" +"Details of the lid and rails\n" "\n" "![Details](static/samples/CardBox-detail.jpg)\n" +"\n" +"Whole box (early version still missing grip rail on the lid):\n" msgstr "" msgid "CardBox Settings" @@ -1518,6 +1649,34 @@ msgstr "" msgid "number of compartments" msgstr "" +#. name of box generator +#: boxes/generators/cardholder.py +msgid "CardHolder" +msgstr "" + +#. description of CardHolder +#: boxes/generators/cardholder.py +msgid "Shelf for holding (multiple) piles of playing cards" +msgstr "" + +msgid "CardHolder Settings" +msgstr "" + +#. help for parameter angle +#: boxes/generators/cardholder.py +msgid "backward angle of floor" +msgstr "" + +#. parameter name +#: boxes/generators/cardholder.py +msgid "stackable" +msgstr "" + +#. help for parameter stackable +#: boxes/generators/cardholder.py +msgid "make holders stackable" +msgstr "" + #. name of box generator #: boxes/generators/castle.py msgid "Castle" @@ -1528,6 +1687,15 @@ msgstr "" msgid "Castle tower with two walls" msgstr "" +#. long description of Castle in markdown +#: boxes/generators/castle.py +msgid "" +"This was done as a table decoration. May be at some point in the future " +"someone will create a proper castle\n" +"with towers and gates and walls that can be attached in multiple " +"configurations." +msgstr "" + msgid "Castle Settings" msgstr "" @@ -1541,9 +1709,74 @@ msgstr "" msgid "Fully closed box" msgstr "" +#. long description of ClosedBox in markdown +#: boxes/generators/closedbox.py +msgid "" +"This box is more of a building block than a finished item.\n" +"Use a vector graphics program (like Inkscape) to add holes or adjust the " +"base\n" +"plate.\n" +"\n" +"See BasedBox for variant with a base." +msgstr "" + msgid "ClosedBox Settings" msgstr "" +#. name of box generator +#: boxes/generators/coffeecapsulesholder.py +msgid "CoffeeCapsuleHolder" +msgstr "" + +#. description of CoffeeCapsuleHolder +#: boxes/generators/coffeecapsulesholder.py +msgid "" +"\n" +" Coffee capsule holder\n" +" " +msgstr "" + +#. long description of CoffeeCapsuleHolder in markdown +#: boxes/generators/coffeecapsulesholder.py +msgid "" +"\n" +" You can store your coffee capsule near your expresso machine with this. " +"It works both vertically, or upside down under a shelf.\n" +msgstr "" + +msgid "CoffeeCapsuleHolder Settings" +msgstr "" + +#. parameter name +#: boxes/generators/coffeecapsulesholder.py +msgid "columns" +msgstr "" + +#. help for parameter columns +#: boxes/generators/coffeecapsulesholder.py +msgid "Number of columns of capsules." +msgstr "" + +#. parameter name +#: boxes/generators/coffeecapsulesholder.py +msgid "rows" +msgstr "" + +#. help for parameter rows +#: boxes/generators/coffeecapsulesholder.py +msgid "Number of capsules by columns." +msgstr "" + +#. parameter name +#: boxes/generators/coffeecapsulesholder.py +msgid "backplate" +msgstr "" + +#. help for parameter backplate +#: boxes/generators/coffeecapsulesholder.py +msgid "True if a backplate should be generated." +msgstr "" + #. name of box generator #: boxes/generators/concaveknob.py msgid "ConcaveKnob" @@ -1819,6 +2052,19 @@ msgstr "" msgid "offset of the rail from the middle of the box (in mm)" msgstr "" +#. name of box generator +#: boxes/generators/dinrailshelly.py +msgid "DinRailShelly" +msgstr "" + +#. description of DinRailShelly +#: boxes/generators/dinrailshelly.py +msgid "Shelly 1PM holder for DIN rail used in electrical junction boxes" +msgstr "" + +msgid "DinRailShelly Settings" +msgstr "" + #. name of box generator #: boxes/generators/discrack.py msgid "DiscRack" @@ -1887,6 +2133,56 @@ msgstr "" msgid "Backwards slant of the rack" msgstr "" +#. name of box generator +#: boxes/generators/dispenser.py +msgid "Dispenser" +msgstr "" + +#. description of Dispenser +#: boxes/generators/dispenser.py +msgid "Dispenser for stackable (flat) items of same size" +msgstr "" + +#. long description of Dispenser in markdown +#: boxes/generators/dispenser.py +msgid "" +"Set *bottomheight* to 0 for a wall mounting variant.\n" +"Please add mounting holes yourself." +msgstr "" + +msgid "Dispenser Settings" +msgstr "" + +#. parameter name +#: boxes/generators/dispenser.py +msgid "slotheight" +msgstr "" + +#. help for parameter slotheight +#: boxes/generators/dispenser.py +msgid "height of the dispenser slot / items (in mm)" +msgstr "" + +#. parameter name +#: boxes/generators/dispenser.py +msgid "bottomheight" +msgstr "" + +#. help for parameter bottomheight +#: boxes/generators/dispenser.py +msgid "height underneath the dispenser (in mm)" +msgstr "" + +#. parameter name +#: boxes/generators/dispenser.py +msgid "sideedges" +msgstr "" + +#. help for parameter sideedges +#: boxes/generators/dispenser.py +msgid "edges used for holding the front panels and back" +msgstr "" + #. name of box generator #: boxes/generators/display.py msgid "Display" @@ -1947,7 +2243,7 @@ msgstr "" #. description of DisplayShelf #: boxes/generators/displayshelf.py -msgid "Shelf with forward slanted floors" +msgid "Shelf with slanted floors" msgstr "" msgid "DisplayShelf Settings" @@ -1965,7 +2261,7 @@ msgstr "" #. help for parameter angle #: boxes/generators/displayshelf.py -msgid "angle of floors" +msgid "angle of floors (negative values for slanting backwards)" msgstr "" #. name of box generator @@ -2093,6 +2389,34 @@ msgstr "" msgid "generate wall on the bottom" msgstr "" +#. name of box generator +#: boxes/generators/doubleflexdoorbox.py +msgid "DoubleFlexDoorBox" +msgstr "" + +#. description of DoubleFlexDoorBox +#: boxes/generators/doubleflexdoorbox.py +msgid "Box with two part lid with living hinges and round corners" +msgstr "" + +msgid "DoubleFlexDoorBox Settings" +msgstr "" + +#. help for parameter radius +#: boxes/generators/doubleflexdoorbox.py +msgid "Radius of the latch in mm" +msgstr "" + +#. parameter name +#: boxes/generators/doubleflexdoorbox.py +msgid "latchsize" +msgstr "" + +#. help for parameter latchsize +#: boxes/generators/doubleflexdoorbox.py +msgid "size of latch in multiples of thickness" +msgstr "" + #. name of box generator #: boxes/generators/drillbox.py msgid "DrillBox" @@ -2100,14 +2424,81 @@ msgstr "" #. description of DrillBox #: boxes/generators/drillbox.py -msgid "" -"Not yet parametrized box for drills from 1 to 12.5mm\n" -"in 0.5mm steps, 3 holes each size" +msgid "A parametrized box for drills" msgstr "" msgid "DrillBox Settings" msgstr "" +#. parameter name +#: boxes/generators/drillbox.py +msgid "holes" +msgstr "" + +#. help for parameter holes +#: boxes/generators/drillbox.py +msgid "Number of holes for each size" +msgstr "" + +#. parameter name +#: boxes/generators/drillbox.py +msgid "firsthole" +msgstr "" + +#. help for parameter firsthole +#: boxes/generators/drillbox.py +msgid "Smallest hole" +msgstr "" + +#. parameter name +#: boxes/generators/drillbox.py +msgid "holeincrement" +msgstr "" + +#. help for parameter holeincrement +#: boxes/generators/drillbox.py +msgid "increment between holes" +msgstr "" + +#. name of box generator +#: boxes/generators/drillstand.py +msgid "DrillStand" +msgstr "" + +#. description of DrillStand +#: boxes/generators/drillstand.py +msgid "Box for drills with each compartment of a different height" +msgstr "" + +#. long description of DrillStand in markdown +#: boxes/generators/drillstand.py +msgid "" +"Note: `sh` gives the hight of the rows front to back. It though should have " +"the same number of entries as `sy`. These heights are the one on the left " +"side and increase throughout the row. To have each compartement a bit higher " +"than the previous one the steps in `sh` should be a bit bigger than " +"`extra_height`.\n" +"\n" +"Assembly: Start with putting the slots of the inner walls together. Then add " +"the front and the back wall. Be especially careful with adding the bottom. " +"It is always assymetrical and flush with the right/lower side while being a " +"little short on the left/higher side to not protrude into the side wall. Add " +"the very left and right walls last.\n" +msgstr "" + +msgid "DrillStand Settings" +msgstr "" + +#. parameter name +#: boxes/generators/drillstand.py +msgid "extra_height" +msgstr "" + +#. help for parameter extra_height +#: boxes/generators/drillstand.py +msgid "height difference left to right" +msgstr "" + #. name of box generator #: boxes/generators/electronicsbox.py msgid "ElectronicsBox" @@ -2290,21 +2681,6 @@ msgstr "" msgid "FlexBox Settings" msgstr "" -#. help for parameter radius -#: boxes/generators/flexbox.py -msgid "Radius of the latch in mm" -msgstr "" - -#. parameter name -#: boxes/generators/flexbox.py -msgid "latchsize" -msgstr "" - -#. help for parameter latchsize -#: boxes/generators/flexbox.py -msgid "size of latch in multiples of thickness" -msgstr "" - #. name of box generator #: boxes/generators/flexbox2.py msgid "FlexBox2" @@ -2461,6 +2837,19 @@ msgstr "" msgid "radius of the corners" msgstr "" +#. name of box generator +#: boxes/generators/fractalvice.py +msgid "FractalVice" +msgstr "" + +msgid "FractalVice Settings" +msgstr "" + +#. parameter name +#: boxes/generators/fractalvice.py +msgid "XX" +msgstr "" + #. name of box generator #: boxes/generators/gear.py msgid "Gears" @@ -2536,7 +2925,7 @@ msgstr "" #. help for parameter modulus #: boxes/generators/gear.py -msgid "width of teeth in mm" +msgid "size of teeth (diameter / #teeth) in mm" msgstr "" #. parameter name @@ -2764,17 +3153,17 @@ msgstr "" #. help for parameter eye #: boxes/generators/hingebox.py -msgid "radius of the eye (in multiples of thickness)" +msgid "radius of the eye (multiples of thickness)" msgstr "" #. help for parameter play #: boxes/generators/hingebox.py -msgid "space between eyes (in multiples of thickness)" +msgid "space between eyes (multiples of thickness)" msgstr "" #. help for parameter spacing #: boxes/generators/hingebox.py -msgid "minimum space around the hinge" +msgid "minimum space around the hinge (multiples of thickness)" msgstr "" #. name of box generator @@ -2848,7 +3237,88 @@ msgstr "" #. help for parameter pin_height #: boxes/generators/integratedhingebox.py -msgid "radius of the disc rotating in the hinge" +msgid "radius of the disc rotating in the hinge (multiples of thickness)" +msgstr "" + +#. name of box generator +#: boxes/generators/jointpanel.py +msgid "JointPanel" +msgstr "" + +#. description of JointPanel +#: boxes/generators/jointpanel.py +msgid "" +"Create pieces larger than your laser cutter by joining them with Dove Tails" +msgstr "" + +#. long description of JointPanel in markdown +#: boxes/generators/jointpanel.py +msgid "" +"This can be used to just create a big panel in a smaller laser cutter. But " +"the actual use is to split large parts into multiple smaller pieces. Copy " +"the outline onto the sheet and then use the pieces to cut it into multiple " +"parts that each can fit your laser cutter. Note that each piece must be cut " +"with the sheet surrounding it to ensure the burn correction (aka kerf) is " +"correct. Depending on your vector graphics software you may need to " +"duplicate your part multiple times and then generate the intersection " +"between one copy and each rectangular part.\n" +"\n" +"The Boxes.py drawings assume that the laser is cutting in the center of the " +"line and the width of the line represents the material that is cut away. " +"Make sure your changes work the same way and you do not cutting away the " +"kerf.\n" +"\n" +"Small dove tails make it easier to fit parts in without problems. Lookout " +"for pieces cut loose where the dove tails meet the edge of the parts. Move " +"your part if necessary to avoid dove tails or details of your part colliding " +"in a weird way.\n" +"\n" +"For plywood this method works well with a very stiff press fit. Aim for " +"needing a hammer to join the pieces together. This way they will feel like " +"they have been welder together.\n" +"\n" +msgstr "" + +msgid "JointPanel Settings" +msgstr "" + +#. parameter name +#: boxes/generators/jointpanel.py +msgid "separate" +msgstr "" + +#. help for parameter separate +#: boxes/generators/jointpanel.py +msgid "draw pieces apart so they can be cut to form a large sheet" +msgstr "" + +msgid "Settings for Dove Tail Joints" +msgstr "" + +#. help for parameter angle +#: boxes/generators/jointpanel.py +msgid "how much should fingers widen (-80 to 80)" +msgstr "" + +#. help for parameter depth +#: boxes/generators/jointpanel.py +msgid "" +"how far the dove tails stick out of/into the edge (multiples of thickness)" +msgstr "" + +#. help for parameter radius +#: boxes/generators/jointpanel.py +msgid "radius used on all four corners (multiples of thickness)" +msgstr "" + +#. parameter name for DoveTail +#: boxes/generators/jointpanel.py +msgid "size" +msgstr "" + +#. help for parameter size +#: boxes/generators/jointpanel.py +msgid "from one middle of a dove tail to another (multiples of thickness)" msgstr "" #. name of box generator @@ -2866,22 +3336,36 @@ msgstr "" #. parameter name #: boxes/generators/keypad.py -msgid "btn_x" +msgid "top1_thickness" msgstr "" -#. help for parameter btn_x +#. help for parameter top1_thickness #: boxes/generators/keypad.py -msgid "number of buttons per row" +msgid "" +"thickness of the button hold layer, cherry like switches need 1.5mm or " +"smaller to snap in" msgstr "" #. parameter name #: boxes/generators/keypad.py -msgid "btn_y" +msgid "top2_enable" msgstr "" -#. help for parameter btn_y +#. help for parameter top2_enable #: boxes/generators/keypad.py -msgid "number of buttons per column" +msgid "enables another top layer that can hold CPG151101S11 hotswap sockets" +msgstr "" + +#. parameter name +#: boxes/generators/keypad.py +msgid "top2_thickness" +msgstr "" + +#. help for parameter top2_thickness +#: boxes/generators/keypad.py +msgid "" +"thickness of the hotplug layer, CPG151101S11 hotswap sockets need 1.2mm to " +"1.5mm" msgstr "" #. name of box generator @@ -2995,6 +3479,14 @@ msgstr "" msgid "LBeam Settings" msgstr "" +#. name of box generator +#: boxes/generators/lueftung.py +msgid "Lueftung" +msgstr "" + +msgid "Lueftung Settings" +msgstr "" + #. name of box generator #: boxes/generators/magazinefile.py msgid "MagazinFile" @@ -3008,65 +3500,6 @@ msgstr "" msgid "MagazinFile Settings" msgstr "" -#. name of box generator -#: boxes/generators/makitalamp.py -msgid "MakitaLamp" -msgstr "" - -#. description of MakitaLamp -#: boxes/generators/makitalamp.py -msgid "LED Lamp powered with Maktia 18V battery" -msgstr "" - -#. long description of MakitaLamp in markdown -#: boxes/generators/makitalamp.py -msgid "" -"\n" -"Vitamins: Stepdown convertor, switch, LED COB\n" -"\n" -msgstr "" - -msgid "MakitaLamp Settings" -msgstr "" - -#. parameter name -#: boxes/generators/makitalamp.py -msgid "flipswitch_diameter" -msgstr "" - -#. help for parameter flipswitch_diameter -#: boxes/generators/makitalamp.py -msgid "diameter of the flipswitch mounting hole" -msgstr "" - -msgid "Settings for RoundedTriangleEdge" -msgstr "" - -#. help for parameter height -#: boxes/generators/makitalamp.py -msgid "height above the wall" -msgstr "" - -#. parameter name for RoundedTriangleEdge -#: boxes/generators/makitalamp.py -msgid "r_hole" -msgstr "" - -#. help for parameter r_hole -#: boxes/generators/makitalamp.py -msgid "radius of hole" -msgstr "" - -#. help for parameter radius -#: boxes/generators/makitalamp.py -msgid "radius of top corner" -msgstr "" - -#. help for parameter outset -#: boxes/generators/makitalamp.py -msgid "extend the triangle along the length of the edge" -msgstr "" - #. name of box generator #: boxes/generators/makitapowersupply.py msgid "MakitaPowerSupply" @@ -3102,6 +3535,65 @@ msgstr "" msgid "diameter of the banana socket mounting holes" msgstr "" +#. parameter name +#: boxes/generators/makitapowersupply.py +msgid "flipswitch_diameter" +msgstr "" + +#. help for parameter flipswitch_diameter +#: boxes/generators/makitapowersupply.py +msgid "diameter of the flipswitch mounting hole" +msgstr "" + +#. name of box generator +#: boxes/generators/makitalamp2.py +msgid "MakitaLamp2" +msgstr "" + +#. description of MakitaLamp2 +#: boxes/generators/makitalamp2.py +msgid "Flood lamp powered with Maktia 18V battery" +msgstr "" + +#. long description of MakitaLamp2 in markdown +#: boxes/generators/makitalamp2.py +msgid "" +"\n" +"Vitamins:\n" +msgstr "" + +msgid "MakitaLamp2 Settings" +msgstr "" + +msgid "Settings for RoundedTriangleEdge" +msgstr "" + +#. help for parameter height +#: boxes/generators/makitalamp2.py +msgid "height above the wall" +msgstr "" + +#. parameter name for RoundedTriangleEdge +#: boxes/generators/makitalamp2.py +msgid "r_hole" +msgstr "" + +#. help for parameter r_hole +#: boxes/generators/makitalamp2.py +msgid "radius of hole" +msgstr "" + +#. help for parameter radius +#: boxes/generators/makitalamp2.py +msgid "radius of top corner" +msgstr "" + +#. help for parameter outset +#: boxes/generators/makitalamp2.py +msgid "" +"extend the triangle along the length of the edge (multiples of thickness)" +msgstr "" + #. name of box generator #: boxes/generators/microrack.py msgid "SBCMicroRack" @@ -3250,11 +3742,6 @@ msgstr "" msgid "NemaMount Settings" msgstr "" -#. parameter name -#: boxes/generators/nemamount.py -msgid "size" -msgstr "" - #. help for parameter size #: boxes/generators/nemamount.py msgid "Nema size of the motor" @@ -3306,22 +3793,6 @@ msgstr "" msgid "percent of front that's open" msgstr "" -#. name of box generator -#: boxes/generators/octagonstarbox.py -msgid "OctagonStarBox" -msgstr "" - -#. description of OctagonStarBox -#: boxes/generators/octagonstarbox.py -msgid "" -"A two piece box where top slips over the bottom half to form \n" -" an eight pointed star.\n" -" " -msgstr "" - -msgid "OctagonStarBox Settings" -msgstr "" - #. name of box generator #: boxes/generators/openbox.py msgid "OpenBox" @@ -3335,6 +3806,16 @@ msgstr "" msgid "OpenBox Settings" msgstr "" +#. parameter name +#: boxes/generators/openbox.py +msgid "edgetype" +msgstr "" + +#. help for parameter edgetype +#: boxes/generators/openbox.py +msgid "edge type" +msgstr "" + #. name of box generator #: boxes/generators/organpipe.py msgid "OrganPipe" @@ -3596,7 +4077,7 @@ msgstr "" #. description of PaintStorage #: boxes/generators/paintbox.py -msgid "Stackable paint storage" +msgid "Stackable storage for hobby paint or other things" msgstr "" msgid "PaintStorage Settings" @@ -3642,6 +4123,242 @@ msgstr "" msgid "Use hexagonal arrangement for the holes instead of orthogonal" msgstr "" +#. parameter name +#: boxes/generators/paintbox.py +msgid "drawer" +msgstr "" + +#. help for parameter drawer +#: boxes/generators/paintbox.py +msgid "Create a stackable drawer instead" +msgstr "" + +#. name of box generator +#: boxes/generators/paperbox.py +msgid "PaperBox" +msgstr "" + +#. description of PaperBox +#: boxes/generators/paperbox.py +msgid "" +"\n" +" Box made of paper, with lid.\n" +" " +msgstr "" + +#. long description of PaperBox in markdown +#: boxes/generators/paperbox.py +msgid "" +"\n" +"This box is made of paper.\n" +"\n" +"There is marks in the \"outside leftover paper\" to help see where to fold\n" +"(cutting with tabs helps use them). The cut is very precise, and could be " +"too tight if misaligned when glued. A plywood box (such as a simple " +"TypeTray) of the same size is a great guide during folding and glueing. Just " +"fold the box against it. Accurate quick and easy.\n" +"\n" +"A paper creaser (or bone folder) is also useful.\n" +msgstr "" + +msgid "PaperBox Settings" +msgstr "" + +#. parameter name +#: boxes/generators/paperbox.py +msgid "design" +msgstr "" + +#. help for parameter design +#: boxes/generators/paperbox.py +msgid "" +"different design for paper consumption optimization. The tuckbox also has " +"locking cut for its lid." +msgstr "" + +#. possible choice for design +#: boxes/generators/paperbox.py +msgid "automatic" +msgstr "" + +#. possible choice for design +#: boxes/generators/paperbox.py +msgid "widebox" +msgstr "" + +#. possible choice for design +#: boxes/generators/paperbox.py +msgid "tuckbox" +msgstr "" + +#. parameter name +#: boxes/generators/paperbox.py +msgid "lid_heigth" +msgstr "" + +#. help for parameter lid_heigth +#: boxes/generators/paperbox.py +msgid "Height of the lid (part which goes inside the box)" +msgstr "" + +#. parameter name +#: boxes/generators/paperbox.py +msgid "lid_radius" +msgstr "" + +#. help for parameter lid_radius +#: boxes/generators/paperbox.py +msgid "Angle, in radius, of the round corner of the lid" +msgstr "" + +#. parameter name +#: boxes/generators/paperbox.py +msgid "lid_sides" +msgstr "" + +#. help for parameter lid_sides +#: boxes/generators/paperbox.py +msgid "Width of the two sides upon which goes the lid" +msgstr "" + +#. parameter name +#: boxes/generators/paperbox.py +msgid "margin" +msgstr "" + +#. help for parameter margin +#: boxes/generators/paperbox.py +msgid "Margin for the glued sides" +msgstr "" + +#. parameter name +#: boxes/generators/paperbox.py +msgid "mark_length" +msgstr "" + +#. help for parameter mark_length +#: boxes/generators/paperbox.py +msgid "Length of the folding outside mark" +msgstr "" + +#. parameter name +#: boxes/generators/paperbox.py +msgid "tab_angle_rad" +msgstr "" + +#. help for parameter tab_angle_rad +#: boxes/generators/paperbox.py +msgid "Angle (in radian) of the sides which are to be glued inside the box" +msgstr "" + +#. parameter name +#: boxes/generators/paperbox.py +msgid "finger_hole_diameter" +msgstr "" + +#. help for parameter finger_hole_diameter +#: boxes/generators/paperbox.py +msgid "Diameter of the hole to help catch the lid" +msgstr "" + +#. name of box generator +#: boxes/generators/phoneholder.py +msgid "PhoneHolder" +msgstr "" + +#. description of PhoneHolder +#: boxes/generators/phoneholder.py +msgid "" +"\n" +" Smartphone desk holder\n" +" " +msgstr "" + +#. long description of PhoneHolder in markdown +#: boxes/generators/phoneholder.py +msgid "" +"\n" +" This phone stand holds your phone between two tabs, with access to its\n" +" bottom, in order to connect a charger, headphones, and also not to " +"obstruct\n" +" the mic.\n" +"\n" +" Default values are currently based on Galaxy S7.\n" +msgstr "" + +msgid "PhoneHolder Settings" +msgstr "" + +#. parameter name +#: boxes/generators/phoneholder.py +msgid "phone_height" +msgstr "" + +#. help for parameter phone_height +#: boxes/generators/phoneholder.py +msgid "Height of the phone." +msgstr "" + +#. parameter name +#: boxes/generators/phoneholder.py +msgid "phone_width" +msgstr "" + +#. help for parameter phone_width +#: boxes/generators/phoneholder.py +msgid "Width of the phone." +msgstr "" + +#. parameter name +#: boxes/generators/phoneholder.py +msgid "phone_depth" +msgstr "" + +#. help for parameter phone_depth +#: boxes/generators/phoneholder.py +msgid "" +"Depth of the phone. Used by the bottom support holding the phone, and the " +"side tabs depth as well. Should be at least your material thickness for " +"assembly reasons." +msgstr "" + +#. help for parameter angle +#: boxes/generators/phoneholder.py +msgid "angle at which the phone stands, in degrees. 0° is vertical." +msgstr "" + +#. parameter name +#: boxes/generators/phoneholder.py +msgid "bottom_margin" +msgstr "" + +#. help for parameter bottom_margin +#: boxes/generators/phoneholder.py +msgid "Height of the support below the phone" +msgstr "" + +#. parameter name +#: boxes/generators/phoneholder.py +msgid "tab_size" +msgstr "" + +#. help for parameter tab_size +#: boxes/generators/phoneholder.py +msgid "Length of the tabs holding the phone" +msgstr "" + +#. parameter name +#: boxes/generators/phoneholder.py +msgid "bottom_support_spacing" +msgstr "" + +#. help for parameter bottom_support_spacing +#: boxes/generators/phoneholder.py +msgid "" +"Spacing between the two bottom support. Choose a value big enough for the " +"charging cable, without getting in the way of other ports." +msgstr "" + #. name of box generator #: boxes/generators/planetary.py msgid "Planetary" @@ -3818,6 +4535,54 @@ msgstr "" msgid "diameter of alignment pins" msgstr "" +#. name of box generator +#: boxes/generators/platonic.py +msgid "Platonic" +msgstr "" + +#. description of Platonic +#: boxes/generators/platonic.py +msgid "Platonic solids generator" +msgstr "" + +msgid "Platonic Settings" +msgstr "" + +#. parameter name +#: boxes/generators/platonic.py +msgid "type" +msgstr "" + +#. help for parameter type +#: boxes/generators/platonic.py +msgid "type of platonic solid" +msgstr "" + +#. possible choice for type +#: boxes/generators/platonic.py +msgid "tetrahedron" +msgstr "" + +#. possible choice for type +#: boxes/generators/platonic.py +msgid "cube" +msgstr "" + +#. possible choice for type +#: boxes/generators/platonic.py +msgid "octahedron" +msgstr "" + +#. possible choice for type +#: boxes/generators/platonic.py +msgid "dodecahedron" +msgstr "" + +#. possible choice for type +#: boxes/generators/platonic.py +msgid "icosahedro" +msgstr "" + #. name of box generator #: boxes/generators/polehook.py msgid "PoleHook" @@ -3968,11 +4733,6 @@ msgstr "" msgid "number of rack units" msgstr "" -#. parameter name -#: boxes/generators/rack19halfwidth.py -msgid "holes" -msgstr "" - #. help for parameter holes #: boxes/generators/rack19halfwidth.py msgid "" @@ -4135,29 +4895,6 @@ msgstr "" msgid "edge type for left edge" msgstr "" -msgid "Settings for Dove Tail Joints" -msgstr "" - -#. help for parameter angle -#: boxes/generators/rectangularWall.py -msgid "how much should fingers widen (-80 to 80)" -msgstr "" - -#. help for parameter depth -#: boxes/generators/rectangularWall.py -msgid "how far the dove tails stick out of/into the edge" -msgstr "" - -#. help for parameter radius -#: boxes/generators/rectangularWall.py -msgid "radius used on all four corners" -msgstr "" - -#. help for parameter size -#: boxes/generators/rectangularWall.py -msgid "from one middle of a dove tail to another" -msgstr "" - msgid "Settings for rack (and pinion) edge" msgstr "" @@ -4224,6 +4961,16 @@ msgstr "" msgid "Box with regular polygon as base" msgstr "" +#. long description of RegularBox in markdown +#: boxes/generators/regularbox.py +msgid "" +"For short side walls that don't fit a connecting finger reduce " +"*surroundingspaces* and *finger* in the Finger Joint Settings.\n" +"\n" +"The lids needs to be glued. For the bayonet lid all outside rings attach to " +"the bottom, all inside rings to the top.\n" +msgstr "" + msgid "RegularBox Settings" msgstr "" @@ -4496,6 +5243,19 @@ msgstr "" msgid "Box with vertical edges rounded" msgstr "" +#. long description of RoundedBox in markdown +#: boxes/generators/roundedbox.py +msgid "" +"\n" +"Default: edge_style = f Finger Joint:\n" +"![Finger Joint](static/samples/RoundedBox-2.jpg)\n" +"\n" +"Alternative: edge_style = h Edge (parallel Finger Joint Holes):\n" +"![Finger Joint Holes](static/samples/RoundedBox-3.jpg)\n" +"\n" +"With lid:\n" +msgstr "" + msgid "RoundedBox Settings" msgstr "" @@ -4506,7 +5266,7 @@ msgstr "" #. help for parameter wallpieces #: boxes/generators/roundedbox.py -msgid "# pieces of outer wall" +msgid "number of pieces for outer wall" msgstr "" #. parameter name @@ -4536,11 +5296,24 @@ msgid "" "low power. But there are three blue holes that actually need to be cut: The " "grip hole in the lid and two tiny rectangles on the top and bottom for the " "lid to grip into.\n" +"\n" +"![Lid Details](static/samples/RoyalGame-2.jpg)\n" +"\n" +"![All pieces](static/samples/RoyalGame-3.jpg)\n" +"\n" msgstr "" msgid "RoyalGame Settings" msgstr "" +#. name of box generator +#: boxes/generators/sharpeningjig.py +msgid "SharpeningJig" +msgstr "" + +msgid "SharpeningJig Settings" +msgstr "" + #. name of box generator #: boxes/generators/shutterbox.py msgid "ShutterBox" @@ -4553,7 +5326,12 @@ msgstr "" #. long description of ShutterBox in markdown #: boxes/generators/shutterbox.py -msgid "Beware of the rolling shutter effect! Use wax on sliding surfaces." +msgid "" +"Beware of the rolling shutter effect! Use wax on sliding surfaces.\n" +"\n" +"![Inside](static/samples/ShutterBox-3.jpg)\n" +"\n" +"![Detail](static/samples/ShutterBox-2.jpg)\n" msgstr "" msgid "ShutterBox Settings" @@ -4666,19 +5444,6 @@ msgstr "" msgid "Width of the handle" msgstr "" -#. name of box generator -#: boxes/generators/simplebox.py -msgid "SimpleBox" -msgstr "" - -#. description of SimpleBox -#: boxes/generators/simplebox.py -msgid "Box with various options for different styles and lids" -msgstr "" - -msgid "SimpleBox Settings" -msgstr "" - #. name of box generator #: boxes/generators/slatwall.py msgid "SlatwallEdges" @@ -4715,6 +5480,31 @@ msgstr "" msgid "stud" msgstr "" +#. parameter name for SlatWall +#: boxes/generators/slatwall.py +msgid "hook_depth" +msgstr "" + +#. help for parameter hook_depth +#: boxes/generators/slatwall.py +msgid "horizontal width of the hook" +msgstr "" + +#. help for parameter pitch +#: boxes/generators/slatwall.py +msgid "vertical spacing of slots middle to middle (in mm)" +msgstr "" + +#. possible choice for type +#: boxes/generators/slatwall.py +msgid "slatwall" +msgstr "" + +#. possible choice for type +#: boxes/generators/slatwall.py +msgid "dinrail" +msgstr "" + #. parameter name for SlatWall #: boxes/generators/slatwall.py msgid "hook_extra_height" @@ -4722,7 +5512,7 @@ msgstr "" #. help for parameter hook_extra_height #: boxes/generators/slatwall.py -msgid "space surrounding connectors (in multiples of thickness)" +msgid "space surrounding connectors (multiples of thickness)" msgstr "" #. name of box generator @@ -4799,14 +5589,78 @@ msgstr "" msgid "SlatwallDrillBox Settings" msgstr "" -#. parameter name -#: boxes/generators/slatwalldrillbox.py -msgid "extra_height" +#. name of box generator +#: boxes/generators/slatwallpinrow.py +msgid "SlatwallPinRow" msgstr "" -#. help for parameter extra_height -#: boxes/generators/slatwalldrillbox.py -msgid "height difference left to right" +msgid "SlatwallPinRow Settings" +msgstr "" + +#. parameter name +#: boxes/generators/slatwallpinrow.py +msgid "pins" +msgstr "" + +#. help for parameter pins +#: boxes/generators/slatwallpinrow.py +msgid "number of pins" +msgstr "" + +#. parameter name +#: boxes/generators/slatwallpinrow.py +msgid "pinlength" +msgstr "" + +#. help for parameter pinlength +#: boxes/generators/slatwallpinrow.py +msgid "length of pins (in mm)" +msgstr "" + +#. help for parameter pinwidth +#: boxes/generators/slatwallpinrow.py +msgid "width of pins (in mm)" +msgstr "" + +#. parameter name +#: boxes/generators/slatwallpinrow.py +msgid "pinspacing" +msgstr "" + +#. help for parameter pinspacing +#: boxes/generators/slatwallpinrow.py +msgid "space from middle to middle of pins (in mm)" +msgstr "" + +#. parameter name +#: boxes/generators/slatwallpinrow.py +msgid "pinspacing_increment" +msgstr "" + +#. help for parameter pinspacing_increment +#: boxes/generators/slatwallpinrow.py +msgid "increase spacing from left to right (in mm)" +msgstr "" + +#. help for parameter angle +#: boxes/generators/slatwallpinrow.py +msgid "angle of the pins pointing up (in degrees)" +msgstr "" + +#. parameter name +#: boxes/generators/slatwallpinrow.py +msgid "hooks" +msgstr "" + +#. help for parameter hooks +#: boxes/generators/slatwallpinrow.py +msgid "number of hooks into the slatwall" +msgstr "" + +#. help for parameter h +#: boxes/generators/slatwallpinrow.py +msgid "" +"height of the front plate (in mm) - needs to be at least 7 time the thickness" msgstr "" #. name of box generator @@ -4923,11 +5777,6 @@ msgstr "" msgid "number of tools/slots" msgstr "" -#. parameter name -#: boxes/generators/slatwallslottedholder.py -msgid "hooks" -msgstr "" - #. help for parameter hooks #: boxes/generators/slatwallslottedholder.py msgid "amount of hooks / braces" @@ -4948,6 +5797,40 @@ msgstr "" msgid "everythird" msgstr "" +#. name of box generator +#: boxes/generators/slatwallstairs.py +msgid "SlatwallStairs" +msgstr "" + +#. description of SlatwallStairs +#: boxes/generators/slatwallstairs.py +msgid "Platforms in different heights e.g. for screw drivers" +msgstr "" + +#. long description of SlatwallStairs in markdown +#: boxes/generators/slatwallstairs.py +msgid "" +"You are supposed to add holes or slots to the stair tops yourself using " +"Inkscape or another vector drawing or CAD program.\n" +"\n" +"sh gives height of the stairs from front to back. Note that the overall " +"width and height is bigger than the nominal values as walls and the " +"protrusions are not included in the measurements.\n" +msgstr "" + +msgid "SlatwallStairs Settings" +msgstr "" + +#. parameter name +#: boxes/generators/slatwallstairs.py +msgid "braceheight" +msgstr "" + +#. help for parameter braceheight +#: boxes/generators/slatwallstairs.py +msgid "height of the brace at the bottom back (in mm). Zero for none" +msgstr "" + #. name of box generator #: boxes/generators/slatwalltypetray.py msgid "SlatwallTypeTray" @@ -5049,6 +5932,24 @@ msgstr "" msgid "additional distance between wrenches (in mm)" msgstr "" +#. name of box generator +#: boxes/generators/slidelock.py +msgid "SlideLock" +msgstr "" + +msgid "SlideLock Settings" +msgstr "" + +#. parameter name +#: boxes/generators/slidelock.py +msgid "finger_width" +msgstr "" + +#. help for parameter finger_width +#: boxes/generators/slidelock.py +msgid "width of the locking fingers in multiple of thickness" +msgstr "" + #. name of box generator #: boxes/generators/slotwallchiselholder.py msgid "SlatwallChiselHolder" @@ -5208,6 +6109,18 @@ msgstr "" msgid "StorageRack to store boxes and trays which have their own floor" msgstr "" +#. long description of StorageRack in markdown +#: boxes/generators/storagerack.py +msgid "" +"\n" +"\n" +"Drawers are not included:\n" +"\n" +"![Inside](static/samples/StorageRack-2.jpg)\n" +"![Back wall details](static/samples/StorageRack-3.jpg)\n" +"\n" +msgstr "" + msgid "StorageRack Settings" msgstr "" @@ -5259,14 +6172,6 @@ msgstr "" msgid "use finger hole edge for retainer walls" msgstr "" -#. name of box generator -#: boxes/generators/texttest.py -msgid "TextTest" -msgstr "" - -msgid "TextTest Settings" -msgstr "" - #. name of box generator #: boxes/generators/trafficlight.py msgid "TrafficLight" @@ -5343,6 +6248,15 @@ msgstr "" msgid "Generate a typetray from a layout file" msgstr "" +#. long description of TrayLayout in markdown +#: boxes/generators/traylayout.py +msgid "" +"This is a two step process. The layout is based on a grid\n" +"of sizes in x and y direction. Choose how many distances you need in both " +"directions. The actual sizes and all other settings can be entered in the " +"second step." +msgstr "" + msgid "optional arguments" msgstr "" @@ -5361,6 +6275,17 @@ msgstr "" msgid "TrayLayout2" msgstr "" +#. long description of TrayLayout2 in markdown +#: boxes/generators/traylayout.py +msgid "" +"Edit the layout text graphics to adjust your tray.\n" +"Put in the sizes for each column and row. You can replace the hyphens and\n" +"vertial bars representing the walls with a space character to remove the " +"walls.\n" +"You can replace the space characters representing the floor by a \"X\" to " +"remove the floor for this compartment.\n" +msgstr "" + msgid "TrayLayout2 Settings" msgstr "" @@ -5446,6 +6371,16 @@ msgstr "" msgid "TypeTray Settings" msgstr "" +#. help for parameter back_height +#: boxes/generators/typetray.py +msgid "additional height of the back wall - e top egde only" +msgstr "" + +#. help for parameter radius +#: boxes/generators/typetray.py +msgid "radius for strengthening side walls with back_height" +msgstr "" + #. parameter name #: boxes/generators/typetray.py msgid "gripheight" @@ -5626,11 +6561,6 @@ msgstr "" msgid "invert the groove directions" msgstr "" -#. parameter name for Grooved -#: boxes/generators/unevenheightbox.py -msgid "margin" -msgstr "" - #. help for parameter margin #: boxes/generators/unevenheightbox.py msgid "" @@ -5672,6 +6602,11 @@ msgstr "" msgid "UniversalBox" msgstr "" +#. description of UniversalBox +#: boxes/generators/universalbox.py +msgid "Box with various options for different styles and lids" +msgstr "" + msgid "UniversalBox Settings" msgstr "" @@ -5705,11 +6640,6 @@ msgstr "" msgid "WaivyKnob" msgstr "" -#. description of WaivyKnob -#: boxes/generators/waivyknob.py -msgid "Round knob serraded outside for better gripping" -msgstr "" - msgid "WaivyKnob Settings" msgstr "" @@ -5766,29 +6696,29 @@ msgstr "" msgid "Boxes - %s" msgstr "" -#: scripts/boxesserver:225 scripts/boxesserver:296 scripts/boxesserver:316 +#: scripts/boxesserver:226 scripts/boxesserver:300 scripts/boxesserver:321 msgid "Boxes.py" msgstr "" -#: scripts/boxesserver:253 +#: scripts/boxesserver:254 msgid "Generate" msgstr "" -#: scripts/boxesserver:254 +#: scripts/boxesserver:255 msgid "Save to URL" msgstr "" -#: scripts/boxesserver:269 +#: scripts/boxesserver:271 msgid "" "There is no image yet. Please donate an image of your project on GitHub!" msgstr "" -#: scripts/boxesserver:318 +#: scripts/boxesserver:323 msgid "Create boxes and more with a laser cutter!" msgstr "" -#: scripts/boxesserver:321 +#: scripts/boxesserver:326 msgid "" "\n" " Boxes.py " @@ -5799,23 +6729,27 @@ msgid "" "cuts, holes and slots for screws, hinges, gears, pulleys and much more." msgstr "" -#: scripts/boxesserver:376 -msgid "Get Source at GitHub" +#: scripts/boxesserver:385 +msgid "Help" msgstr "" -#: scripts/boxesserver:377 -msgid "Documentation and API Description" -msgstr "" - -#: scripts/boxesserver:378 -msgid "Hackaday.io Project Page" +#: scripts/boxesserver:386 +msgid "Home Page" msgstr "" #: scripts/boxesserver:387 +msgid "Documentation" +msgstr "" + +#: scripts/boxesserver:388 +msgid "Sources" +msgstr "" + +#: scripts/boxesserver:397 #, python-format msgid "Error generating %s" msgstr "" -#: scripts/boxesserver:392 +#: scripts/boxesserver:402 msgid "An error occurred!" msgstr ""