From e0ac591ed73bcafd290be854ec8001ce2481008b Mon Sep 17 00:00:00 2001 From: Jannis Leidel Date: Thu, 29 Apr 2010 14:36:36 +0000 Subject: [PATCH] =?UTF-8?q?Fixed=20#13230=20-=20Updated=20Finish=20transla?= =?UTF-8?q?tion.=20Thanks,=20Ville=20S=C3=A4=C3=A4vuori.?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit git-svn-id: http://code.djangoproject.com/svn/django/trunk@13048 bcc190cf-cafb-0310-a4f2-bffc1f526a37 --- django/conf/locale/fi/LC_MESSAGES/django.mo | Bin 65301 -> 73926 bytes django/conf/locale/fi/LC_MESSAGES/django.po | 1895 +++++++++++------ django/conf/locale/fi/LC_MESSAGES/djangojs.mo | Bin 1630 -> 1629 bytes django/conf/locale/fi/LC_MESSAGES/djangojs.po | 2 +- 4 files changed, 1303 insertions(+), 594 deletions(-) diff --git a/django/conf/locale/fi/LC_MESSAGES/django.mo b/django/conf/locale/fi/LC_MESSAGES/django.mo index 446834f412bb040e1d077402924b106132d5a186..fe3abe8054ec42cb55af30bb2dc89a79f0e09a70 100644 GIT binary patch literal 73926 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

l_7Xf@*aM3=8X zS>uq6{!$Z)K}-g;ZK~bis9_(3m+X!EpH1L56Wj(VlL*9h?!;(O^S?O{7ZY-8f?pZY zoge>lE-aFu{)>cadBVWlcNVpVR7rNRsug19r8t2Mt zTol^q;8&Z83_vWd*npYOMRz|lv9+wSr7FI3vHGjitMQRcb2H8DNxQpE{6q^ijT_@k zo9GePtH~plV|dN|-B_aw@g+a&;u8_CPN^cALL;)pWsI$ohw3YrT(XYtGF}BzsLibX z;-8aoBM~)_)j(*gNBv?Dn@-&pmp%j^YH=steF>$+MQmSNZOgZ3ii_rWUxSqC9-T{= z6OoM=TV2>>shhHJ=Pn+GVD>itk(Cfysma9MSvN z)&ib5)YWeasA1RTGAZt6kq7MS3|3a_=3|+*YuJ_Jhk#s|OdfRZXH$zow(=ch;aS({ zic+_BNf4vIq;mvHjnH`*X1?bj^-N&=l#ID07w(CsW({ni`z`?e|8I%zJGa#c^w)k! zzG^Hvz#=)_V$ttz$C#4pV&&x7D%9tr_hLU*l?zJ_s9Z61vmT|~99=xaTAh<0wxxsC zR!Ke_5ucx}HX1l{pU@Sfqj2%kxpwW6tYY-tEh}60nhRE>oaefj+FV+{$5i|PnGHj? z$_lBJ?&~s|gAS(ZnEG|79>}Hd;8pYUs=NNOiyDW8(b)*PS41vzL!ZR#`f$J z%-~ADHSZc$(NUvri>}@-O=EP|wN`6wO;V?ML%aUi#}7I0@~a@$-3){+m0Es#fE^W&q9HqQwTu`p67GCm$6;Y@r1J<_Wm|MRtadp+ z(!fk9sO8e8t11g!M)2zhOep1?;A39K7I!{+MPOj|A!!X@t(X@A|dVTwr<6&a;z&WD-}r$%0Nd0)qLJ z(0md+Xg}RZJz(ekFwKMJXa&1*jLQcMl03S8H$xbc2%ED}CT=%> z%&^3`3JK1-KWg|zMP*UNIN>|=xSlJ2294))$M~aW$;c<;1><~fc-A-Pg9XH#>rud; zr^X7tDQ7RvUFeo&iYxwnLn$S@S_9pYfXgVmU1)ni*cWgVrMSj4lTi}E)ckt3(}D$z z-7G9YUP<7v7bUwBd?lty`2yC#*%W(uO~C?|_nGDH%$p{_Mdx5aho;=xto64L7Oc8F z+v*las5HH{6MWOLruKV*P9LwMoQCDxv{kpU{MT0DLbiongIY-Hb7(o&Oq9<~u$ZSs zqvasNPWl(RiJhBpM*#8MPv!2m9I4#y%L$_C>Y4N5u1C6|$6s<>7!4x) z92wQ&g{!*Q^pSe*PAgcPbBdxkGD&d1dq$!nt!n%V33o)vO>tLy)7~a+{%Ad(5O!N! zNkDN+ej7=^Lb_3EbM6&XlS5C$3Nq8kig88kPH1C>OKR(@Z~9>8M)c5tpUhVYSvvT~0yc9RLfxm|m?Q z-Rg~Gvv5Sbn;mjwnP?_JH@e#)B!g;q-x?d%J~7k2=zK0$p1-H!j3 zr!rW~flyx87MF14D9@Q@4i#7L5vZ7%~0kmOK=en5lae9!IDCGf}~PGP}m6 zeXCfl9VMsch=);+Iv8lA@Vj7iJSB>3kRS{jvF-Q00)3X~Mrd2LVc^d6LKjG>CKp>t z;dbL=x|?rZG`T=~8}3iIjDubxA_M=eY_a>qtV1uZIh|m-q+b|w3x%L$(GYa4hyi;T zOaqEHd|hmFfj?jlU9gQ&UBIA1jjM!wkLG1IGA#>SvfRcWaVjAzAZA-K@v2-veeffg zYD~Oo=1-J00kB;ooN+nLec$2#<^r|{vhGhVpwakqSE>AwYeT><0tL$oDc*FzSvbo> z#!OSXqDUoHcEmrx7N~BsP|`PDMRiBOxehPnj9u|=)&8vVg)i0E5isOBsoS-cfnOQA zzq!DLMP1>LA_~$O=G;1l^h-${`cjoTk77*4jLKB{$RWto=L5Mc?u+N#u^w5w22(=f z1}i!1X3oAY=7Kg=?zqJVOjYd%vPzUVqU&YyE*a?AFv_{6tw$O`e~ChVDn6CBRN3nH-Z=l z8Jcpjp{rbSP*mgs-HoUW+VxeQ{^SC;Jk=j5b3@aaq15TRNE#ZidWThKvrOdn!>Y4o z(!@;I^^MipjDCQ+ysDv``MNgDD?|UATD|7E4ZZT&xhDG3iG`+Id2OaL>{UItwtSLK z!EjqXnWC-?cN;!pc=_<%%Xb?Uju=@vV$`m~cN;z&hvnP|;Je8Zcf&`O58tbN#GYJ} ztK5B$U5D?EyIHi{au&8}R@|(0E5ijk@(gQMUCtMR1s1>I7Auy zUl(qQ%4^wbj$<5FjTk*A9OI*3F3tF+Oooq!T&I$&pbs9`Yc@a9*O}B26~lW?@_lf5 zEoEBi=0d}$7s>SAZUMz$Id*>S)bi1t?iAI=C|f?o?kiV@qwA9SUe)f0^U9|(P0v+^ zVcP$YUT*Aed-Fv*=R&EmgVSOEvEhiay?ZU-)cfKY=R)tc_ZdS-L_FLR&Z=VG}f)NHiyysWJSy4bhfl7bm#LcdWXNgVzFA zXz;_>$p#VCpVe$3uWJ*XK382HX83?4k!~w6d?x9Z5Zauimq^pmv!MU~+B>)1II`;u z*Y!L_S%6>?U~^)?fMebWjI4>q6eYrx6-*EyXhR)$vB_?NUCpHP4ta^&}|2j=39NXL@{OzsuIdfLA{w_K-YGC!~$y`$k zMH)>HYgFj<#oY&-j<~p;!L(TIPCb>Z(Q&nOqUDpO7&y&7nqR@ z0n1vIyO^~MLOs3v0Bz#$q8ltlyVcH!h;_^Hg!{tufEsd)zZ`NSG(N16%<+mtnwqn_ z8iIJL=UCeFrAzOQsqKKNM)aZHn=I!`|3HB17I!3>u1zL0+&}B(<>lRn>xRzgd-+Mx z^JVI}CUpLY=_19!5MEVeYe+Y*)Q!U`9uKmw6FJxisbYkr`fuAs`5Yya7kDz5%*ME0 z)5}g#3K%{cPG5>~Hr{=3eHq_`(ijMU*=^wN$L&bRqukoX7px7Kzf_?qQ%s>Xq4Vjx z9XL@(bRp(UUE-yTt}2zG^X2r)%+##8D;V~nzRf=Ni&NMMsiyO3K@XwxF+ zr@Jr*ik`nIbpDAxgfC(H(T6Eo7hhX9grL@8c=r=pXd-=|#kl!WsgGNX0DxT~6-2~5 zs$MzuiobL>EXVLbOkTX4k0AH#pmYO@Bf89#cGRK%yhQ~bTkFNtw+2B{+r>n(>hVWJ z)E^R2ALF{PAmh5chAiGP3@Ng{d`q?K6)AskwP1K~8Pr~9)!QI6DD7^>fLh1>Q2973 zvN|GN4lT#H`RAz5E{UuU*?Ect+|-wMKP}%ci#YkmietGweE!QNeVxql;13sdS}*yQ z?K}Xl@Ca|HG4u*Y%0-2Ui9J?zTn5p9$)*~%lNrPxI}5?0M6{rr96U3lV48xJkoomq zkAK~NR-bZ)>g4dbRtHocp-1hB;Bww@5)o8I=i!l}9Bg=V{DhU4#5Om-jFSc`?Z+#A zRvM@Kd-4X)k~jh>d_E#JT3uZJr#RDw@cAc-SK)-=fMZ672+MkyNri|fq=90TgYpsa zRNmpo(H<8o|BC-K8OJbjia!5UM9{zcF@@AeKMR?qV-{Hd{1GDPW2l2O;Xhd%ePE(3 z0rdYO116;a;CD5E{`msnf)M%x9Y7)=`>Y3e3Ko`pRdO8gEWY&>`9ZiU&Rpon1Y}IQuKTU zA~8E$t{*c3f0#||1n0m-tY{e}EPRlWG?5iI#NYo*h`;~H;rBUvZUpfVDE~%Cv3?#J zeIF(d?S+W?b6q_={{ATp<76nuTKm<}<(GV!6r zXc4LaSIXITNuwO=P9UAp3f!yPLLq=!3K`WEBddlEt3Qc4Lvh5PC%Uhro2g|KpedKK z)0-hooCIzTZW1CRX3&_I5l0)V@EgQs5&9=@oz?6#7OC}u6gIe`I&6<>mDBHI;_$y+ zjxUhKI1ok5(YIG8_}w$e;%`mrFd{$H;R<^njtZjDOppLvs?o)#MdQca3@XCcV;9fZ z+o2fg#Vs)c!Z6{}_f85g9nO#g82m87M_A~>z$2slR6R!%_0@;xpLlrwesq53Suz*e zxE4W*E5M$ge;mP>R~LuV!yoFGN8zga1D_7EQejt$u`CLES!2o*z__03%=sl3|7elp zRxOGKQ@a0juOZ6Bv?wvejr8{FTXaPFJ*qCyt1bLr9f^v^j_67V0FiV2c$ks!Q-kc|LUm8g#)GZ50ZVdqd9 zUeJ0_)`7ah(OM&f#fkF-$yOVbK4eMX8^S*@lprF6!Uwnd>uj+44b>aysn)&y+Vbf0 zGDgh(`#~*2@n0fvKgRK3r%+Lk-G9zRC_)e>e+>rQ`H$HgSW7nD{aafi`Nt!f!Q}ti z6OP^N@zHO*)d+M6@9)a^rP&^lmy z0q_lTC5528(w+(^T3IQ?`**CA;oL(HEeVPb6Kesl!a#(e|9qCW3d77>8-DA!@}z z=tS1X8^rL}*d~n$UZh3L7s|N*vDI~*Bbro^MPQ}Db!~Ap!4bjHm&l!1uG|tq|Miuf z+6wtkPpr0Px~#qBD`CrGt^PYZquhD@VRgBV0ega8UH&6I*n17^$;sJ zsa2(5mQF_YETFXJ(3~q2_GhTWz;j}#|M*tUCAchl;NZ{IV#Xq2WxHdv$N87=EX~+dK|iPU){y>P&Z=mkkl^y&Vk89TdjE*)|Jo#~V_jK@|JaYU<=x-=o<{jP zedztAC>I8W@_DrHnHFj>3B15u&vUg$3F^<%Ga3kCc(3gkXM>exd(E(Z7CwOdaPZ&z z7TF()BR*>H9|phQ2dtqA^8RojPEKO=ZPVNeuHXCjdcc-=A?u1{HwZ+ffK{Mle{+%k z<3bU?_@0>V3iWRie-RXbVE^4^&*Xst`s(YC#d8F}hXnkO9Wf;m8a3=MVaRR!bIKVj}wAagXcD>fkYM{Vi!rgB(W>i2C3C42&)>HVuC)DHS5y=(}d%^gdBk zpTX_3<}QxM|MB-Q|DAjzj3idGIvjm+jpT+yGOs8fV5|(%Qi^lpPmW)`TUmwcC#5Iu z!vBkHf}k3c770iFj{gl#P6lTr9O=FaQAXN_C{2SC!~ToKg~Z<1R{i$vN-BVr_9bg4 z@jO2*Hx)c|;@0Ed>h*F#f_Z{)8=ul6P}fCRBMp4vEbq+8C*=g_^+N(hZ?|kX_qDt8 z=LVWzmSxmI8N`Bd)}@)UL;!=324LgMeVUTQ+MVnjW@X)s_yQ9P*{5u`+mZon>0^9U zBILR4Ez$V3Yx3BYgOrP&Fk9Ks=MJ zin0R)dx>u)6_b`9EqR9rN@C5HgS zE z@fcZR2+y$(O8I|!* zx-cNzG3a1wkspN-Pe6Q;Xy8=?7HW7XhE(!$0@^oU6d6*+xR>~kpx_xA(@$~%4OTGG z39wp#A=SfZ*K)N0ji2I+H08i)r2mYcJa3-WafDDF;2hCEBLGyj6u=3l^*6Au0L!cy zl4UriNsTFHEf%>d@&$fQ@yuG=6G63+t7Au5$RPq<`i@8jx2ljzgAuj?b z4D1goqo5C9$&cIFi2p7`=^#dE;CISGu$U5$g7gR>1wr5jQw9Qb%7$qc1W}a6Oth>Y z?LzV7>1jlZP1*)O#;OOCgA9R#r$IVLupDk&#coiebEiRexEQRajTy)-Mtigjt&O%r z94MCzs~Ox$(kG?EWN3#dGfFdn1z z@Wre9=q=J;q<~Z?aMBen1G)ON`kG$ zw)W&&N#+7fuJqVV6-Z%F?=cmGpK0Xt2l$?H89=ZUzxUo$1~4p~j`pw4<_m>VQG$aV zQyGj2&&A52<~atjQs*pLQCigSLhSd1-ru6imO)rl_3GEoaTZKc+h`|q`W#lT!(O5V zsWp6!wS@ASunVxolY!46+fb-2y974{no~!XCRrU;laUrQ-TDf08K6x41#%focFAQh zQ7!}aER;XZpIld$-6)b8n2plnJ>52wJqYnTL|n$WtFER1+h? zIRd5P*us9)c-%`Q1kBtxoUqX|m1QkM73|ugm8G~i)E7E+LNRSX#*YJmO)W`5Td(LG z+%r+HwBb$hCQXr!W)7-u7KCGP=kF|9;h#9Yep3X&4PAvioKc4xZoh=Z!?fxUCKQN(!ga&vuJtY5u=1=y-F#!S$ z!QBT53s+LG^T6^Tur9i0;=yE97CNkl(tD{eV8z|4Y~8KdZ>n5Z8oyv>VMPgpamwsq zF=FWtw62` zZ(4`n{8s6hqz~r6(;`zUh4108+LUH6dMe{2$^IulJQ83E>Y`ekk|6xKG-|3kf8}l4 zy?;*Th3oE=EER z6@n=U@Aj~GP!rQlNDFQ}XgK6)gFHJ!w8w^hkEjinE&;XGKaUjs5LJ~iR@Mr~u4t`w zOx)H`Jp^R2-jF~5^RBNrKZ2-a_o>`Qme-~ow|y@9=JEZeyYUT&TpAX2d@Z5l1q z_$c~_!~&{6#*1*Z-KmghoH=vJa7Qu&K;+5;D0^ycZ9SdqtSUPsR;$Zxq}O}=%)Aq} zse_XXhL*8QM@UD;k0BxdE()f1AD9-Tl_Iagn;=ZeO&9tB5aAXJCV^uH2h|saz^E^# zSLo;{)}$#QZU>_Jru+(JZ7@6n-O68zv$24@O`8<7_#0mU$~EG7WvZo^>opS#P>%55AT4Tg{*uzhH1F#7oP@248PqX2l^ zjz-wkJZ@uX4|*Pa7W@8~M5byr6W4$y!imJ&vn7Z#t?!T?K&bI8V0Ri<4$r~};|pg^ zFkqNd6TTl|0%6M%CYZ()qNHU3wZVPDc*HOSj<;{F#MhVA3@PhWHBo}s#o^^ri&A4u zFnfGm0nA_uu!9i@El(y9NKOFL9vIRl&qm0dU@Gw;5#L7oDGn)G43*_z#tUefBP?hO z1ZB`fN0YRnCkkw3R7B00S5g+8eYvB)cx@eLYom+!s$)bn7ZhWPXUL=EY_gk8E+&5 zf9CR_K`PZLWclCCnZL8zAm4`-10eSq(erB9TGZ#i3C@y0oW|&SOVrik~s2R zT?o@E23Ew_`JZGeGP}0$9xZ|Lq3l#ZO9I{E)15)`jZmm8#Ys^}+rzL&^8jPrezqhH z(a-vElQf*#`E)_hG@(OuTiwbZP5)%}u8{Pzo*1|S8jWtm{ z26lKaUwM=dS99DqQ=Aco?Qb@b1NJhkG&^2)PUUdJ;sWd6n#n;9hifu82-L954I5K9 zz&3YMI7~2+0zha<;~)kEG6lzsCslHhWsgEl<4qHUiJ&0QRH-EMlY$3}g`+SgBQ6z= z_p>`5ZO5CDzL)?awT_EO_KtdZA%!PGqjxRfDk_R7%^;_RWgv2&IxB1XURDn|Yx9Ugd zK~E@FI*S5(h#<QT$3SPm+7A4GkC!iDwuH$ew56#OE-6U9M;Hf$s6YZEe zW&>!+N#?e-jWDg*XQ9~A;vQi)J5ba0aw*xSBjTnP9tLqz^&HC+dQF3FXb8y+T_gvI z1!yr7OfUz7MVudT?Um{bEi#LJvBhSo-H^g;4tS2gseA?ms)n7HtqfQYa0Mfsg?tg| zyD(vqs`DB*7yRhW5zh80LOYe^4%)yi;jG8bX4YH*nytz84Vc#uaw|A>_|T@38X@*Ntd^^;O|WJ_m4Z4-nAS@;ZQN(N|oa3mq72j{+sk#9AV~@sGlVK zbsy{yonTAEB(}DxF9Dr+mn~r=3K&%VY2u|b-r~i>qBs3uim(CWdTvGo;VHXTV3_Dm zJYy25lGtnQXXekavi#zey|Z@PcyIzJIC1GD0&on|hhQunjIo`vTn*cA6mk*k9J+o=0u+0+z|I6|mLZcS*gBR>2fu^%^?EK8(RFLe*Z| zzWhTBngf6Ui20USH)Yd1l-+e)%op*XJ|6t*emO*aheZ0vw3=UHHfE2WiS@TAd0AHw zS=rkwn*Q4vM`%A41)*D*R9H>VL~#O1452DcE{S2bEggk5&ObE#aVaT+l!)dEfdi}= z`@CvxN{avcpS%BMvw66s^+_qP#lr~NzF;*c1vxl5XEvs!z_UQCbjV3@etZOXBNOpU zYzykWIkA+6XwX>$vNLrs-S9h@eM?Xg4PqCTrven9X-F~%!I#{rkS+1ZU=qyI&d!=} zzydHUZIhift)G!M2&@gWhBQG4LwwSUOU`AE8jG`XvHylPD zMKjw3os^!h;v^q_t6HPgJ3#)qg3+ZQ=<~%X_5kTD2AMYhSwu1!i(?&uPdiGR z%?T|21>IGJG@|qs37^6Hx#8R^MWB$_bD zkzrw;S$e_ur(Z|Z=)Ov%z6eR3bK<^+gc9QtH%$u_WNw3~%mHWQ^maZM;atX~t21b#AD19U?WB}v#T zNg<)l3~#vZn2?Naw17F5b$x_@nRkX2PcK*1f*=2axhO11QcP2EPcn+@D(f!IWg`Er z=w(gCIGLneMXkrYB0gut^`KbY>%~~{HqmIHVnWfO^Aw^9VRH6`EtDA&PEcf@Ncl8z`A^L*$61A;wm2BkP&=bA@vxK@ zf>zSSu)NaX9#zP+h$DQMUqGkGa>45ltEEkYBnE3R&M8WSs^g_9!OnoJ8@iH|QF&eV zv|On~V+L=03G-?ibm^k9=AlIDVBmKtBSjX2Z2u7_Xp{|htA?Bt0fDQe9l|`&ejq&z zpC}x(T3Is&a!Z204DVaf&Ym-ZB zdtYh|cM+!DytMKaU>+${v=nFlJ7o=;l+otD5u5NGwqkfoLrtWlmS7(DLi~kBh^5qW z5ato1+=~hzCFN6vVgDu%VD=CpjkLXsgWl_{%oWWVjGOg&G$&W|ce g3@apiy2!uUWfL3FgHdxZ;^6*J=^&m~8?t!(KXvLG>Hq)$ delta 23613 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 diff --git a/django/conf/locale/fi/LC_MESSAGES/django.po b/django/conf/locale/fi/LC_MESSAGES/django.po index f4d86b7a5f..627de25d02 100644 --- a/django/conf/locale/fi/LC_MESSAGES/django.po +++ b/django/conf/locale/fi/LC_MESSAGES/django.po @@ -6,9 +6,9 @@ msgid "" msgstr "" "Project-Id-Version: Django\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2009-05-24 14:45+0300\n" +"POT-Creation-Date: 2010-03-27 16:17+0200\n" "PO-Revision-Date: 2007-09-15 00:34+0300\n" -"Last-Translator: Leo Honkanen \n" +"Last-Translator: Ville Säävuori \n" "Language-Team: Django I18N \n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" @@ -22,215 +22,235 @@ msgid "Arabic" msgstr "arabia" #: conf/global_settings.py:45 -msgid "Bengali" -msgstr "bengali" - -#: conf/global_settings.py:46 msgid "Bulgarian" msgstr "bulgaria" +#: conf/global_settings.py:46 +msgid "Bengali" +msgstr "bengali" + #: conf/global_settings.py:47 +msgid "Bosnian" +msgstr "bosnia" + +#: conf/global_settings.py:48 msgid "Catalan" msgstr "katalaani" -#: conf/global_settings.py:48 +#: conf/global_settings.py:49 msgid "Czech" msgstr "tšekki" -#: conf/global_settings.py:49 +#: conf/global_settings.py:50 msgid "Welsh" msgstr "wales" -#: conf/global_settings.py:50 +#: conf/global_settings.py:51 msgid "Danish" msgstr "tanska" -#: conf/global_settings.py:51 +#: conf/global_settings.py:52 msgid "German" msgstr "saksa" -#: conf/global_settings.py:52 +#: conf/global_settings.py:53 msgid "Greek" msgstr "kreikka" -#: conf/global_settings.py:53 +#: conf/global_settings.py:54 msgid "English" msgstr "englanti" -#: conf/global_settings.py:54 +#: conf/global_settings.py:55 msgid "Spanish" msgstr "espanja" -#: conf/global_settings.py:55 -msgid "Estonian" -msgstr "viro" - #: conf/global_settings.py:56 msgid "Argentinean Spanish" msgstr "Argentiinan espanja" #: conf/global_settings.py:57 +msgid "Estonian" +msgstr "viro" + +#: conf/global_settings.py:58 msgid "Basque" msgstr "baski" -#: conf/global_settings.py:58 +#: conf/global_settings.py:59 msgid "Persian" msgstr "persia" -#: conf/global_settings.py:59 +#: conf/global_settings.py:60 msgid "Finnish" msgstr "suomi" -#: conf/global_settings.py:60 +#: conf/global_settings.py:61 msgid "French" msgstr "ranska" -#: conf/global_settings.py:61 +#: conf/global_settings.py:62 +msgid "Frisian" +msgstr "friisi" + +#: conf/global_settings.py:63 msgid "Irish" msgstr "irlanti" -#: conf/global_settings.py:62 +#: conf/global_settings.py:64 msgid "Galician" msgstr "galicia" -#: conf/global_settings.py:63 -msgid "Hungarian" -msgstr "unkari" - -#: conf/global_settings.py:64 +#: conf/global_settings.py:65 msgid "Hebrew" msgstr "heprea" -#: conf/global_settings.py:65 +#: conf/global_settings.py:66 msgid "Hindi" msgstr "hindi" -#: conf/global_settings.py:66 +#: conf/global_settings.py:67 msgid "Croatian" msgstr "kroatia" -#: conf/global_settings.py:67 +#: conf/global_settings.py:68 +msgid "Hungarian" +msgstr "unkari" + +#: conf/global_settings.py:69 msgid "Icelandic" msgstr "islanti" -#: conf/global_settings.py:68 +#: conf/global_settings.py:70 msgid "Italian" msgstr "italia" -#: conf/global_settings.py:69 +#: conf/global_settings.py:71 msgid "Japanese" msgstr "japani" -#: conf/global_settings.py:70 +#: conf/global_settings.py:72 msgid "Georgian" msgstr "georgia" -#: conf/global_settings.py:71 -msgid "Korean" -msgstr "korea" - -#: conf/global_settings.py:72 +#: conf/global_settings.py:73 msgid "Khmer" msgstr "khmer" -#: conf/global_settings.py:73 +#: conf/global_settings.py:74 msgid "Kannada" msgstr "kannada" -#: conf/global_settings.py:74 -msgid "Latvian" -msgstr "latvia" - #: conf/global_settings.py:75 +msgid "Korean" +msgstr "korea" + +#: conf/global_settings.py:76 msgid "Lithuanian" msgstr "liettua" -#: conf/global_settings.py:76 +#: conf/global_settings.py:77 +msgid "Latvian" +msgstr "latvia" + +#: conf/global_settings.py:78 msgid "Macedonian" msgstr "makedonia" -#: conf/global_settings.py:77 +#: conf/global_settings.py:79 msgid "Dutch" msgstr "hollanti" -#: conf/global_settings.py:78 +#: conf/global_settings.py:80 msgid "Norwegian" msgstr "norja" -#: conf/global_settings.py:79 +#: conf/global_settings.py:81 msgid "Polish" msgstr "puola" -#: conf/global_settings.py:80 +#: conf/global_settings.py:82 msgid "Portuguese" msgstr "portugali" -#: conf/global_settings.py:81 +#: conf/global_settings.py:83 msgid "Brazilian Portuguese" msgstr "brasilian portugali" -#: conf/global_settings.py:82 +#: conf/global_settings.py:84 msgid "Romanian" msgstr "romania" -#: conf/global_settings.py:83 +#: conf/global_settings.py:85 msgid "Russian" msgstr "venäjä" -#: conf/global_settings.py:84 +#: conf/global_settings.py:86 msgid "Slovak" msgstr "slovakia" -#: conf/global_settings.py:85 +#: conf/global_settings.py:87 msgid "Slovenian" msgstr "slovenia" -#: conf/global_settings.py:86 +#: conf/global_settings.py:88 +msgid "Albanian" +msgstr "albaani" + +#: conf/global_settings.py:89 msgid "Serbian" msgstr "serbia" -#: conf/global_settings.py:87 +#: conf/global_settings.py:90 +msgid "Serbian Latin" +msgstr "serbian latina" + +#: conf/global_settings.py:91 msgid "Swedish" msgstr "ruotsi" -#: conf/global_settings.py:88 +#: conf/global_settings.py:92 msgid "Tamil" msgstr "tamili" -#: conf/global_settings.py:89 +#: conf/global_settings.py:93 msgid "Telugu" msgstr "telugu" -#: conf/global_settings.py:90 +#: conf/global_settings.py:94 msgid "Thai" msgstr "thain kieli" -#: conf/global_settings.py:91 +#: conf/global_settings.py:95 msgid "Turkish" msgstr "turkki" -#: conf/global_settings.py:92 +#: conf/global_settings.py:96 msgid "Ukrainian" msgstr "ukraina" -#: conf/global_settings.py:93 +#: conf/global_settings.py:97 +msgid "Vietnamese" +msgstr "vietnam" + +#: conf/global_settings.py:98 msgid "Simplified Chinese" msgstr "kiina (yksinkertaistettu)" -#: conf/global_settings.py:94 +#: conf/global_settings.py:99 msgid "Traditional Chinese" msgstr "kiina (perinteinen)" -#: contrib/admin/actions.py:60 +#: contrib/admin/actions.py:52 #, python-format msgid "Successfully deleted %(count)d %(items)s." msgstr "Onnistuneesti poistettu %(count)d \"%(items)s\"-kohdetta." -#: contrib/admin/actions.py:67 contrib/admin/options.py:1025 +#: contrib/admin/actions.py:59 contrib/admin/options.py:1097 msgid "Are you sure?" msgstr "Oletko varma?" -#: contrib/admin/actions.py:85 +#: contrib/admin/actions.py:77 #, python-format msgid "Delete selected %(verbose_name_plural)s" msgstr "Poista valitut \"%(verbose_name_plural)s\"-kohteet" @@ -269,19 +289,19 @@ msgstr "Tässä kuussa" msgid "This year" msgstr "Tänä vuonna" -#: contrib/admin/filterspecs.py:147 forms/widgets.py:434 +#: contrib/admin/filterspecs.py:147 forms/widgets.py:470 msgid "Yes" msgstr "Kyllä" -#: contrib/admin/filterspecs.py:147 forms/widgets.py:434 +#: contrib/admin/filterspecs.py:147 forms/widgets.py:470 msgid "No" msgstr "Ei" -#: contrib/admin/filterspecs.py:154 forms/widgets.py:434 +#: contrib/admin/filterspecs.py:154 forms/widgets.py:470 msgid "Unknown" msgstr "Tuntematon" -#: contrib/admin/helpers.py:14 +#: contrib/admin/helpers.py:19 msgid "Action:" msgstr "Toiminto:" @@ -313,104 +333,127 @@ msgstr "lokimerkintä" msgid "log entries" msgstr "lokimerkinnät" -#: contrib/admin/options.py:133 contrib/admin/options.py:147 +#: contrib/admin/options.py:140 contrib/admin/options.py:155 msgid "None" msgstr "Ei arvoa" -#: contrib/admin/options.py:519 +#: contrib/admin/options.py:558 #, python-format msgid "Changed %s." msgstr "Muokattu: %s." -#: contrib/admin/options.py:519 contrib/admin/options.py:529 -#: contrib/comments/templates/comments/preview.html:16 forms/models.py:388 -#: forms/models.py:587 +#: contrib/admin/options.py:558 contrib/admin/options.py:568 +#: contrib/comments/templates/comments/preview.html:16 db/models/base.py:840 +#: forms/models.py:556 msgid "and" msgstr "ja" -#: contrib/admin/options.py:524 +#: contrib/admin/options.py:563 #, python-format msgid "Added %(name)s \"%(object)s\"." msgstr "Lisätty %(name)s \"%(object)s\"." -#: contrib/admin/options.py:528 +#: contrib/admin/options.py:567 #, python-format msgid "Changed %(list)s for %(name)s \"%(object)s\"." msgstr "Muutettu %(list)s kohteelle %(name)s \"%(object)s\"." -#: contrib/admin/options.py:533 +#: contrib/admin/options.py:572 #, python-format msgid "Deleted %(name)s \"%(object)s\"." msgstr "Poistettu %(name)s \"%(object)s\"." -#: contrib/admin/options.py:537 +#: contrib/admin/options.py:576 msgid "No fields changed." msgstr "Ei muutoksia kenttiin." -#: contrib/admin/options.py:598 contrib/auth/admin.py:67 +#: contrib/admin/options.py:642 #, python-format msgid "The %(name)s \"%(obj)s\" was added successfully." msgstr "%(name)s \"%(obj)s\" on lisätty." -#: contrib/admin/options.py:602 contrib/admin/options.py:635 -#: contrib/auth/admin.py:75 +#: contrib/admin/options.py:646 contrib/admin/options.py:679 msgid "You may edit it again below." msgstr "Voit muokata sitä edelleen alla." -#: contrib/admin/options.py:612 contrib/admin/options.py:645 +#: contrib/admin/options.py:656 contrib/admin/options.py:689 #, python-format msgid "You may add another %s below." msgstr "Uusi %s on lisättävissä alla." -#: contrib/admin/options.py:633 +#: contrib/admin/options.py:677 #, python-format msgid "The %(name)s \"%(obj)s\" was changed successfully." msgstr "%(name)s \"%(obj)s\" on muutettu." -#: contrib/admin/options.py:641 +#: contrib/admin/options.py:685 #, python-format msgid "" "The %(name)s \"%(obj)s\" was added successfully. You may edit it again below." msgstr "%(name)s \"%(obj)s\" on lisätty. Voit muokata sitä uudelleen alla." -#: contrib/admin/options.py:772 +#: contrib/admin/options.py:739 +msgid "" +"Items must be selected in order to perform actions on them. No items have " +"been changed." +msgstr "" + +#: contrib/admin/options.py:757 +msgid "No action selected." +msgstr "Ei toimintoa valittuna." + +#: contrib/admin/options.py:837 #, python-format msgid "Add %s" msgstr "Lisää %s" -#: contrib/admin/options.py:803 contrib/admin/options.py:1003 +#: contrib/admin/options.py:863 contrib/admin/options.py:1077 #, python-format msgid "%(name)s object with primary key %(key)r does not exist." msgstr "%(name)s perusavaimella %(key)r ei ole olemassa." -#: contrib/admin/options.py:860 +#: contrib/admin/options.py:928 #, python-format msgid "Change %s" msgstr "Muokkaa %s" -#: contrib/admin/options.py:904 +#: contrib/admin/options.py:973 msgid "Database error" msgstr "Tietokantavirhe" -#: contrib/admin/options.py:940 +#: contrib/admin/options.py:1009 #, python-format msgid "%(count)s %(name)s was changed successfully." msgid_plural "%(count)s %(name)s were changed successfully." msgstr[0] "%(count)s %(name)s on muokattu." msgstr[1] "%(count)s \"%(name)s\"-kohdetta on muokattu." -#: contrib/admin/options.py:1018 +#: contrib/admin/options.py:1036 +#, python-format +msgid "of %(count)d selected" +msgid_plural "of %(count)d selected" +msgstr[0] "valittuna (%(count)d mahdollisesta)" +msgstr[1] "valittuna (%(count)d mahdollisesta)" + +#: contrib/admin/options.py:1038 +#, python-format +msgid "%(total_count)s selected" +msgid_plural "All %(total_count)s selected" +msgstr[0] "%(total_count)s valittu" +msgstr[1] "Kaikki %(total_count)s valittu" + +#: contrib/admin/options.py:1090 #, python-format msgid "The %(name)s \"%(obj)s\" was deleted successfully." msgstr "%(name)s \"%(obj)s\" on poistettu." -#: contrib/admin/options.py:1054 +#: contrib/admin/options.py:1127 #, python-format msgid "Change history: %s" msgstr "Muokkaushistoria: %s" -#: contrib/admin/sites.py:20 contrib/admin/views/decorators.py:14 -#: contrib/auth/forms.py:80 +#: contrib/admin/sites.py:22 contrib/admin/views/decorators.py:14 +#: contrib/auth/forms.py:81 msgid "" "Please enter a correct username and password. Note that both fields are case-" "sensitive." @@ -418,11 +461,11 @@ msgstr "" "Käyttäjätunnus tai salasana ei kelpaa. Huomaa, että isot ja pienet kirjaimet " "ovat merkitseviä." -#: contrib/admin/sites.py:278 contrib/admin/views/decorators.py:40 +#: contrib/admin/sites.py:311 contrib/admin/views/decorators.py:40 msgid "Please log in again, because your session has expired." msgstr "Kirjaudu uudelleen sisään, sillä istuntosi on vanhentunut." -#: contrib/admin/sites.py:285 contrib/admin/views/decorators.py:47 +#: contrib/admin/sites.py:318 contrib/admin/views/decorators.py:47 msgid "" "Looks like your browser isn't configured to accept cookies. Please enable " "cookies, reload this page, and try again." @@ -430,62 +473,52 @@ msgstr "" "Selaimesi ei vaikuta sallivan evästeitä. Muuta asetukset sallimaan evästeet, " "lataa tämä sivu uudelleen ja yritä uudestaan." -#: contrib/admin/sites.py:301 contrib/admin/sites.py:307 +#: contrib/admin/sites.py:334 contrib/admin/sites.py:340 #: contrib/admin/views/decorators.py:66 msgid "Usernames cannot contain the '@' character." msgstr "Käyttäjätunnuksessa ei saa olla '@'-merkkiä." -#: contrib/admin/sites.py:304 contrib/admin/views/decorators.py:62 +#: contrib/admin/sites.py:337 contrib/admin/views/decorators.py:62 #, python-format msgid "Your e-mail address is not your username. Try '%s' instead." msgstr "Sähköpostiosoitteesi ei ole käyttäjätunnuksesi. Kokeile '%s'." -#: contrib/admin/sites.py:360 +#: contrib/admin/sites.py:393 msgid "Site administration" msgstr "Sivuston ylläpito" -#: contrib/admin/sites.py:373 contrib/admin/templates/admin/login.html:26 +#: contrib/admin/sites.py:407 contrib/admin/templates/admin/login.html:26 #: contrib/admin/templates/registration/password_reset_complete.html:14 #: contrib/admin/views/decorators.py:20 msgid "Log in" msgstr "Kirjaudu sisään" -#: contrib/admin/sites.py:417 +#: contrib/admin/sites.py:452 #, python-format msgid "%s administration" msgstr "%s ylläpito" -#: contrib/admin/util.py:168 -#, python-format -msgid "One or more %(fieldname)s in %(name)s: %(obj)s" -msgstr "Yksi tai useampi %(fieldname)s kohteessa %(name)s: %(obj)s" - -#: contrib/admin/util.py:173 -#, python-format -msgid "One or more %(fieldname)s in %(name)s:" -msgstr "Yksi tai useampi %(fieldname)s kohteessa %(name)s:" - -#: contrib/admin/widgets.py:71 +#: contrib/admin/widgets.py:75 msgid "Date:" msgstr "Pvm:" -#: contrib/admin/widgets.py:71 +#: contrib/admin/widgets.py:75 msgid "Time:" msgstr "Klo:" -#: contrib/admin/widgets.py:95 +#: contrib/admin/widgets.py:99 msgid "Currently:" msgstr "Tällä hetkellä:" -#: contrib/admin/widgets.py:95 +#: contrib/admin/widgets.py:99 msgid "Change:" msgstr "Muokkaa:" -#: contrib/admin/widgets.py:124 +#: contrib/admin/widgets.py:129 msgid "Lookup" msgstr "Etsi" -#: contrib/admin/widgets.py:236 +#: contrib/admin/widgets.py:244 msgid "Add Another" msgstr "Lisää seuraava" @@ -500,17 +533,17 @@ msgstr "Pahoittelemme, pyydettyä sivua ei löytynyt." #: contrib/admin/templates/admin/500.html:4 #: contrib/admin/templates/admin/app_index.html:8 -#: contrib/admin/templates/admin/base.html:31 -#: contrib/admin/templates/admin/change_form.html:17 -#: contrib/admin/templates/admin/change_list.html:25 +#: contrib/admin/templates/admin/base.html:54 +#: contrib/admin/templates/admin/change_form.html:18 +#: contrib/admin/templates/admin/change_list.html:39 #: contrib/admin/templates/admin/delete_confirmation.html:6 #: contrib/admin/templates/admin/delete_selected_confirmation.html:6 #: contrib/admin/templates/admin/invalid_setup.html:4 #: contrib/admin/templates/admin/object_history.html:6 -#: contrib/admin/templates/admin/auth/user/change_password.html:10 +#: contrib/admin/templates/admin/auth/user/change_password.html:11 #: contrib/admin/templates/registration/logged_out.html:4 #: contrib/admin/templates/registration/password_change_done.html:4 -#: contrib/admin/templates/registration/password_change_form.html:4 +#: contrib/admin/templates/registration/password_change_form.html:5 #: contrib/admin/templates/registration/password_reset_complete.html:4 #: contrib/admin/templates/registration/password_reset_confirm.html:4 #: contrib/admin/templates/registration/password_reset_done.html:4 @@ -547,34 +580,47 @@ msgstr "Suorita valittu toiminto" msgid "Go" msgstr "Suorita" +#: contrib/admin/templates/admin/actions.html:10 +msgid "Click here to select the objects across all pages" +msgstr "Klikkaa tästä valitaksesi kohteet kaikilta sivuilta" + +#: contrib/admin/templates/admin/actions.html:10 +#, python-format +msgid "Select all %(total_count)s %(module_name)s" +msgstr "Valitse kaikki %(total_count)s %(module_name)s" + +#: contrib/admin/templates/admin/actions.html:12 +msgid "Clear selection" +msgstr "Tyhjennä valinta" + #: contrib/admin/templates/admin/app_index.html:10 #: contrib/admin/templates/admin/index.html:19 #, python-format msgid "%(name)s" msgstr "%(name)s" -#: contrib/admin/templates/admin/base.html:26 +#: contrib/admin/templates/admin/base.html:27 msgid "Welcome," msgstr "Tervetuloa," -#: contrib/admin/templates/admin/base.html:26 +#: contrib/admin/templates/admin/base.html:32 #: contrib/admin/templates/registration/password_change_done.html:3 -#: contrib/admin/templates/registration/password_change_form.html:3 +#: contrib/admin/templates/registration/password_change_form.html:4 #: contrib/admindocs/templates/admin_doc/bookmarklets.html:3 msgid "Documentation" msgstr "Ohjeita" -#: contrib/admin/templates/admin/base.html:26 -#: contrib/admin/templates/admin/auth/user/change_password.html:14 -#: contrib/admin/templates/admin/auth/user/change_password.html:47 +#: contrib/admin/templates/admin/base.html:40 +#: contrib/admin/templates/admin/auth/user/change_password.html:15 +#: contrib/admin/templates/admin/auth/user/change_password.html:48 #: contrib/admin/templates/registration/password_change_done.html:3 -#: contrib/admin/templates/registration/password_change_form.html:3 +#: contrib/admin/templates/registration/password_change_form.html:4 msgid "Change password" msgstr "Vaihda salasana" -#: contrib/admin/templates/admin/base.html:26 +#: contrib/admin/templates/admin/base.html:47 #: contrib/admin/templates/registration/password_change_done.html:3 -#: contrib/admin/templates/registration/password_change_form.html:3 +#: contrib/admin/templates/registration/password_change_form.html:4 msgid "Log out" msgstr "Kirjaudu ulos" @@ -586,41 +632,42 @@ msgstr "Django-sivuston ylläpito" msgid "Django administration" msgstr "Djangon ylläpito" -#: contrib/admin/templates/admin/change_form.html:20 +#: contrib/admin/templates/admin/change_form.html:21 #: contrib/admin/templates/admin/index.html:29 msgid "Add" msgstr "Lisää" -#: contrib/admin/templates/admin/change_form.html:27 +#: contrib/admin/templates/admin/change_form.html:28 #: contrib/admin/templates/admin/object_history.html:10 msgid "History" msgstr "Muokkaushistoria" -#: contrib/admin/templates/admin/change_form.html:28 -#: contrib/admin/templates/admin/edit_inline/stacked.html:13 -#: contrib/admin/templates/admin/edit_inline/tabular.html:27 +#: contrib/admin/templates/admin/change_form.html:29 +#: contrib/admin/templates/admin/edit_inline/stacked.html:9 +#: contrib/admin/templates/admin/edit_inline/tabular.html:28 msgid "View on site" msgstr "Näytä lopputulos" -#: contrib/admin/templates/admin/change_form.html:38 -#: contrib/admin/templates/admin/change_list.html:54 -#: contrib/admin/templates/admin/auth/user/change_password.html:23 +#: contrib/admin/templates/admin/change_form.html:39 +#: contrib/admin/templates/admin/change_list.html:68 +#: contrib/admin/templates/admin/auth/user/change_password.html:24 +#: contrib/admin/templates/registration/password_change_form.html:15 msgid "Please correct the error below." msgid_plural "Please correct the errors below." msgstr[0] "Korjaa allaoleva virhe." msgstr[1] "Korjaa allaolevat virheet." -#: contrib/admin/templates/admin/change_list.html:46 +#: contrib/admin/templates/admin/change_list.html:60 #, python-format msgid "Add %(name)s" msgstr "Lisää %(name)s" -#: contrib/admin/templates/admin/change_list.html:65 +#: contrib/admin/templates/admin/change_list.html:79 msgid "Filter" msgstr "Suodatin" #: contrib/admin/templates/admin/delete_confirmation.html:10 -#: contrib/admin/templates/admin/submit_line.html:4 forms/formsets.py:275 +#: contrib/admin/templates/admin/submit_line.html:4 forms/formsets.py:297 msgid "Delete" msgstr "Poista" @@ -667,10 +714,10 @@ msgstr "" #, python-format msgid "" "Are you sure you want to delete the selected %(object_name)s objects? All of " -"the following objects and it's related items will be deleted:" +"the following objects and their related items will be deleted:" msgstr "" "Haluatko varmasti poistaa valitut (%(object_name)s) kohteet? Myös seuraavat " -"kohteet poistettaisiin samalla:" +"kohteet ja niihin liittyvät kohteet poistettaisiin samalla:" #: contrib/admin/templates/admin/filter.html:2 #, python-format @@ -732,15 +779,9 @@ msgid "User" msgstr "Käyttäjä" #: contrib/admin/templates/admin/object_history.html:24 -#: contrib/comments/templates/comments/moderation_queue.html:33 msgid "Action" msgstr "Tapahtuma" -#: contrib/admin/templates/admin/object_history.html:30 -#: utils/translation/trans_real.py:400 -msgid "DATETIME_FORMAT" -msgstr "j.n.Y G:i" - #: contrib/admin/templates/admin/object_history.html:38 msgid "" "This object doesn't have a change history. It probably wasn't added via this " @@ -753,6 +794,11 @@ msgstr "" msgid "Show all" msgstr "Näytä kaikki" +#: contrib/admin/templates/admin/pagination.html:11 +#: contrib/admin/templates/admin/submit_line.html:3 +msgid "Save" +msgstr "Tallenna ja poistu" + #: contrib/admin/templates/admin/search_form.html:8 msgid "Search" msgstr "Haku" @@ -769,10 +815,6 @@ msgstr[1] "%(counter)s hakutulosta" msgid "%(full_result_count)s total" msgstr "yhteensä %(full_result_count)s" -#: contrib/admin/templates/admin/submit_line.html:3 -msgid "Save" -msgstr "Tallenna ja poistu" - #: contrib/admin/templates/admin/submit_line.html:5 msgid "Save as new" msgstr "Tallenna uutena" @@ -785,7 +827,7 @@ msgstr "Tallenna ja lisää toinen" msgid "Save and continue editing" msgstr "Tallenna välillä ja jatka muokkaamista" -#: contrib/admin/templates/admin/auth/user/add_form.html:6 +#: contrib/admin/templates/admin/auth/user/add_form.html:5 msgid "" "First, enter a username and password. Then, you'll be able to edit more user " "options." @@ -793,33 +835,39 @@ msgstr "" "Syötä ensin käyttäjätunnus ja salasana. Sen jälkeen voit muokata muita " "käyttäjän tietoja." -#: contrib/admin/templates/admin/auth/user/add_form.html:13 -#: contrib/auth/forms.py:14 contrib/auth/forms.py:47 contrib/auth/forms.py:59 -msgid "Username" -msgstr "Käyttäjätunnus" - -#: contrib/admin/templates/admin/auth/user/add_form.html:20 -#: contrib/admin/templates/admin/auth/user/change_password.html:34 -#: contrib/auth/forms.py:17 contrib/auth/forms.py:60 contrib/auth/forms.py:185 -msgid "Password" -msgstr "Salasana" - -#: contrib/admin/templates/admin/auth/user/add_form.html:26 -#: contrib/admin/templates/admin/auth/user/change_password.html:40 -#: contrib/auth/forms.py:186 -msgid "Password (again)" -msgstr "Salasana toistamiseen" - -#: contrib/admin/templates/admin/auth/user/add_form.html:27 -#: contrib/admin/templates/admin/auth/user/change_password.html:41 -msgid "Enter the same password as above, for verification." -msgstr "Syötä sama salasana tarkistuksen vuoksi toistamiseen." - -#: contrib/admin/templates/admin/auth/user/change_password.html:27 +#: contrib/admin/templates/admin/auth/user/change_password.html:28 #, python-format msgid "Enter a new password for the user %(username)s." msgstr "Syötä käyttäjän %(username)s uusi salasana." +#: contrib/admin/templates/admin/auth/user/change_password.html:35 +#: contrib/auth/forms.py:17 contrib/auth/forms.py:61 contrib/auth/forms.py:186 +msgid "Password" +msgstr "Salasana" + +#: contrib/admin/templates/admin/auth/user/change_password.html:41 +#: contrib/admin/templates/registration/password_change_form.html:37 +#: contrib/auth/forms.py:187 +msgid "Password (again)" +msgstr "Salasana toistamiseen" + +#: contrib/admin/templates/admin/auth/user/change_password.html:42 +#: contrib/auth/forms.py:19 +msgid "Enter the same password as above, for verification." +msgstr "Syötä sama salasana tarkistuksen vuoksi toistamiseen." + +#: contrib/admin/templates/admin/edit_inline/stacked.html:53 +#: contrib/admin/templates/admin/edit_inline/tabular.html:99 +#, python-format +msgid "Add another %(verbose_name)s" +msgstr "Lisää toinen %(verbose_name)s" + +#: contrib/admin/templates/admin/edit_inline/stacked.html:56 +#: contrib/admin/templates/admin/edit_inline/tabular.html:102 +#: contrib/comments/templates/comments/delete.html:12 +msgid "Remove" +msgstr "Poista" + #: contrib/admin/templates/admin/edit_inline/tabular.html:15 msgid "Delete?" msgstr "Poista?" @@ -833,9 +881,9 @@ msgid "Log in again" msgstr "Kirjaudu uudelleen sisään" #: contrib/admin/templates/registration/password_change_done.html:4 -#: contrib/admin/templates/registration/password_change_form.html:4 -#: contrib/admin/templates/registration/password_change_form.html:6 -#: contrib/admin/templates/registration/password_change_form.html:10 +#: contrib/admin/templates/registration/password_change_form.html:5 +#: contrib/admin/templates/registration/password_change_form.html:7 +#: contrib/admin/templates/registration/password_change_form.html:19 msgid "Password change" msgstr "Salasanan vaihtaminen" @@ -848,7 +896,7 @@ msgstr "Salasanan vaihtaminen onnistui" msgid "Your password was changed." msgstr "Salasanasi on vaihdettu." -#: contrib/admin/templates/registration/password_change_form.html:12 +#: contrib/admin/templates/registration/password_change_form.html:21 msgid "" "Please enter your old password, for security's sake, and then enter your new " "password twice so we can verify you typed it in correctly." @@ -856,21 +904,17 @@ msgstr "" "Syötä vanha salasanasi varmistukseksi, ja syötä sitten uusi salasanasi kaksi " "kertaa, jotta se tulee varmasti oikein." -#: contrib/admin/templates/registration/password_change_form.html:17 -msgid "Old password:" -msgstr "Vanha salasana:" +#: contrib/admin/templates/registration/password_change_form.html:27 +#: contrib/auth/forms.py:170 +msgid "Old password" +msgstr "Vanha salasana" -#: contrib/admin/templates/registration/password_change_form.html:19 -#: contrib/admin/templates/registration/password_reset_confirm.html:18 -msgid "New password:" -msgstr "Uusi salasana:" +#: contrib/admin/templates/registration/password_change_form.html:32 +#: contrib/auth/forms.py:144 +msgid "New password" +msgstr "Uusi salasana" -#: contrib/admin/templates/registration/password_change_form.html:21 -#: contrib/admin/templates/registration/password_reset_confirm.html:20 -msgid "Confirm password:" -msgstr "Varmista uusi salasana:" - -#: contrib/admin/templates/registration/password_change_form.html:23 +#: contrib/admin/templates/registration/password_change_form.html:43 #: contrib/admin/templates/registration/password_reset_confirm.html:21 msgid "Change my password" msgstr "Vaihda salasana" @@ -909,6 +953,14 @@ msgstr "" "Syötä uusi salasanasi kaksi kertaa, jotta voimme varmistaa että syötit sen " "oikein." +#: contrib/admin/templates/registration/password_reset_confirm.html:18 +msgid "New password:" +msgstr "Uusi salasana:" + +#: contrib/admin/templates/registration/password_reset_confirm.html:20 +msgid "Confirm password:" +msgstr "Varmista uusi salasana:" + #: contrib/admin/templates/registration/password_reset_confirm.html:26 msgid "Password reset unsuccessful" msgstr "Salasanan nollaus ei onnistunut" @@ -976,7 +1028,7 @@ msgstr "Sähköpostiosoite:" msgid "Reset my password" msgstr "Nollaa salasanani" -#: contrib/admin/templatetags/admin_list.py:299 +#: contrib/admin/templatetags/admin_list.py:240 msgid "All dates" msgstr "Kaikki päivät" @@ -990,152 +1042,71 @@ msgstr "Valitse %s" msgid "Select %s to change" msgstr "Valitse muokattava %s" -#: contrib/admin/views/template.py:37 contrib/sites/models.py:38 +#: contrib/admin/views/template.py:38 contrib/sites/models.py:38 msgid "site" msgstr "sivusto" -#: contrib/admin/views/template.py:39 +#: contrib/admin/views/template.py:40 msgid "template" msgstr "mallipohjan nimi" -#: contrib/admindocs/views.py:58 contrib/admindocs/views.py:60 -#: contrib/admindocs/views.py:62 +#: contrib/admindocs/views.py:61 contrib/admindocs/views.py:63 +#: contrib/admindocs/views.py:65 msgid "tag:" msgstr "tagi:" -#: contrib/admindocs/views.py:91 contrib/admindocs/views.py:93 -#: contrib/admindocs/views.py:95 +#: contrib/admindocs/views.py:94 contrib/admindocs/views.py:96 +#: contrib/admindocs/views.py:98 msgid "filter:" msgstr "suodatin:" -#: contrib/admindocs/views.py:155 contrib/admindocs/views.py:157 -#: contrib/admindocs/views.py:159 +#: contrib/admindocs/views.py:158 contrib/admindocs/views.py:160 +#: contrib/admindocs/views.py:162 msgid "view:" msgstr "näkymä:" -#: contrib/admindocs/views.py:187 +#: contrib/admindocs/views.py:190 #, python-format msgid "App %r not found" msgstr "Sovellusta %r ei löydy" -#: contrib/admindocs/views.py:194 +#: contrib/admindocs/views.py:197 #, python-format msgid "Model %(model_name)r not found in app %(app_label)r" msgstr "Sovelluksesta %(app_label)r ei löydy mallia %(model_name)r" -#: contrib/admindocs/views.py:206 +#: contrib/admindocs/views.py:209 #, python-format msgid "the related `%(app_label)s.%(data_type)s` object" msgstr "tähän liittyvä `%(app_label)s.%(data_type)s`-kohde" -#: contrib/admindocs/views.py:206 contrib/admindocs/views.py:228 -#: contrib/admindocs/views.py:242 contrib/admindocs/views.py:247 +#: contrib/admindocs/views.py:209 contrib/admindocs/views.py:228 +#: contrib/admindocs/views.py:233 contrib/admindocs/views.py:247 +#: contrib/admindocs/views.py:261 contrib/admindocs/views.py:266 msgid "model:" msgstr "malli:" -#: contrib/admindocs/views.py:237 +#: contrib/admindocs/views.py:224 contrib/admindocs/views.py:256 #, python-format msgid "related `%(app_label)s.%(object_name)s` objects" msgstr "tähän liittyvät `%(app_label)s.%(object_name)s`-kohteet" -#: contrib/admindocs/views.py:242 +#: contrib/admindocs/views.py:228 contrib/admindocs/views.py:261 #, python-format msgid "all %s" msgstr "kaikki %s" -#: contrib/admindocs/views.py:247 +#: contrib/admindocs/views.py:233 contrib/admindocs/views.py:266 #, python-format msgid "number of %s" msgstr "%s-kohteiden lukumäärä" -#: contrib/admindocs/views.py:252 +#: contrib/admindocs/views.py:271 #, python-format msgid "Fields on %s objects" msgstr "%s-kohteiden kentät" -#: contrib/admindocs/views.py:315 contrib/admindocs/views.py:326 -#: contrib/admindocs/views.py:328 contrib/admindocs/views.py:334 -#: contrib/admindocs/views.py:335 contrib/admindocs/views.py:337 -msgid "Integer" -msgstr "Kokonaisluku" - -#: contrib/admindocs/views.py:316 -msgid "Boolean (Either True or False)" -msgstr "Totuusarvo: joko tosi (True) tai epätosi (False)" - -#: contrib/admindocs/views.py:317 contrib/admindocs/views.py:336 -#, python-format -msgid "String (up to %(max_length)s)" -msgstr "Merkkijono (enintään %(max_length)s merkkiä)" - -#: contrib/admindocs/views.py:318 -msgid "Comma-separated integers" -msgstr "Pilkulla erotetut kokonaisluvut" - -#: contrib/admindocs/views.py:319 -msgid "Date (without time)" -msgstr "Päivämäärä (ilman kellonaikaa)" - -#: contrib/admindocs/views.py:320 -msgid "Date (with time)" -msgstr "Päivämäärä ja kellonaika" - -#: contrib/admindocs/views.py:321 -msgid "Decimal number" -msgstr "Desimaaliluku" - -#: contrib/admindocs/views.py:322 -msgid "E-mail address" -msgstr "Sähköpostiosoite" - -#: contrib/admindocs/views.py:323 contrib/admindocs/views.py:324 -#: contrib/admindocs/views.py:327 -msgid "File path" -msgstr "Tiedostopolku" - -#: contrib/admindocs/views.py:325 -msgid "Floating point number" -msgstr "Liukuluku" - -#: contrib/admindocs/views.py:329 contrib/comments/models.py:60 -msgid "IP address" -msgstr "IP-osoite" - -#: contrib/admindocs/views.py:331 -msgid "Boolean (Either True, False or None)" -msgstr "Totuusarvo: joko tosi (True), epätosi (False) tai ei mikään (None)" - -#: contrib/admindocs/views.py:332 -msgid "Relation to parent model" -msgstr "Relaatio emomalliin" - -#: contrib/admindocs/views.py:333 -msgid "Phone number" -msgstr "Puhelinnumero" - -#: contrib/admindocs/views.py:338 -msgid "Text" -msgstr "Tekstiä" - -#: contrib/admindocs/views.py:339 -msgid "Time" -msgstr "Kellonaika" - -#: contrib/admindocs/views.py:340 contrib/comments/forms.py:95 -#: contrib/comments/templates/comments/moderation_queue.html:37 -#: contrib/flatpages/admin.py:8 contrib/flatpages/models.py:7 -msgid "URL" -msgstr "URL-osoite" - -#: contrib/admindocs/views.py:341 -msgid "U.S. state (two uppercase letters)" -msgstr "USA:n osavaltio (suuraakkosin, kaksi kirjainta)" - -#: contrib/admindocs/views.py:342 -msgid "XML text" -msgstr "XML-teksti" - -#: contrib/admindocs/views.py:368 +#: contrib/admindocs/views.py:361 #, python-format msgid "%s does not appear to be a urlpattern object" msgstr "%s ei näytä olevan urlpattern-olio" @@ -1206,78 +1177,74 @@ msgstr "Muokkaa tätä kohdetta (uudessa ikkunassa)" msgid "As above, but opens the admin page in a new window." msgstr "Kuten yllä, mutta avaa ylläpitosivun uuteen ikkunaan." -#: contrib/auth/admin.py:21 +#: contrib/auth/admin.py:29 msgid "Personal info" msgstr "Henkilökohtaiset tiedot" -#: contrib/auth/admin.py:22 +#: contrib/auth/admin.py:30 msgid "Permissions" msgstr "Oikeudet" -#: contrib/auth/admin.py:23 +#: contrib/auth/admin.py:31 msgid "Important dates" msgstr "Tärkeät päivämäärät" -#: contrib/auth/admin.py:24 +#: contrib/auth/admin.py:32 msgid "Groups" msgstr "Ryhmät" -#: contrib/auth/admin.py:80 -msgid "Add user" -msgstr "Uusi käyttäjä" - -#: contrib/auth/admin.py:106 +#: contrib/auth/admin.py:114 msgid "Password changed successfully." msgstr "Salasana muutettu onnistuneesti." -#: contrib/auth/admin.py:112 +#: contrib/auth/admin.py:124 #, python-format msgid "Change password: %s" msgstr "Vaihda salasana: %s" -#: contrib/auth/forms.py:15 contrib/auth/forms.py:48 -#: contrib/auth/models.py:128 -msgid "" -"Required. 30 characters or fewer. Alphanumeric characters only (letters, " -"digits and underscores)." -msgstr "" -" Vaaditaan. Enintään 30 kirjanta (A-Z, a-z), numeroa (0-9) tai alaviivaa (_)." +#: contrib/auth/forms.py:14 contrib/auth/forms.py:48 contrib/auth/forms.py:60 +msgid "Username" +msgstr "Käyttäjätunnus" -#: contrib/auth/forms.py:16 contrib/auth/forms.py:49 -msgid "This value must contain only letters, numbers and underscores." +#: contrib/auth/forms.py:15 contrib/auth/forms.py:49 +msgid "Required. 30 characters or fewer. Letters, digits and @/./+/-/_ only." msgstr "" -"Tässä voidaan käyttää vain kirjaimia (A-Z, a-z), numeroita (0-9) ja " -"alaviivoja (_)." +" Vaaditaan. Enintään 30 merkkiä. Vain kirjaimet, numerot ja @/./+/-/_ ovat sallittuja." + +#: contrib/auth/forms.py:16 contrib/auth/forms.py:50 +msgid "This value may contain only letters, numbers and @/./+/-/_ characters." +msgstr "" +"Tässä voidaan käyttää vain kirjaimia, numeroita ja @/./+/-/_ merkkejä." #: contrib/auth/forms.py:18 msgid "Password confirmation" msgstr "Salasanan vahvistaminen" -#: contrib/auth/forms.py:30 +#: contrib/auth/forms.py:31 msgid "A user with that username already exists." msgstr "Käyttäjätunnus on jo rekisteröity." -#: contrib/auth/forms.py:36 contrib/auth/forms.py:155 -#: contrib/auth/forms.py:197 +#: contrib/auth/forms.py:37 contrib/auth/forms.py:156 +#: contrib/auth/forms.py:198 msgid "The two password fields didn't match." msgstr "Salasanat eivät täsmää." -#: contrib/auth/forms.py:82 +#: contrib/auth/forms.py:83 msgid "This account is inactive." msgstr "Tämä käyttäjätili ei ole voimassa." -#: contrib/auth/forms.py:87 +#: contrib/auth/forms.py:88 msgid "" "Your Web browser doesn't appear to have cookies enabled. Cookies are " "required for logging in." msgstr "" "Selaimesi ei näytä sallivan evästeitä. Sisäänkirjautuminen vaatii evästeen." -#: contrib/auth/forms.py:100 +#: contrib/auth/forms.py:101 msgid "E-mail" msgstr "Sähköposti" -#: contrib/auth/forms.py:109 +#: contrib/auth/forms.py:110 msgid "" "That e-mail address doesn't have an associated user account. Are you sure " "you've registered?" @@ -1285,72 +1252,70 @@ msgstr "" "Sähköpostiosoitetta vastaavaa käyttäjätunnusta ei löydy. Oletko varmasti jo " "rekisteröitynyt?" -#: contrib/auth/forms.py:135 +#: contrib/auth/forms.py:136 #, python-format msgid "Password reset on %s" msgstr "Salasanan nollaus sivustolla %s" -#: contrib/auth/forms.py:143 -msgid "New password" -msgstr "Uusi salasana" - -#: contrib/auth/forms.py:144 +#: contrib/auth/forms.py:145 msgid "New password confirmation" msgstr "Uusi salasana uudelleen" -#: contrib/auth/forms.py:169 -msgid "Old password" -msgstr "Vanha salasana" - -#: contrib/auth/forms.py:177 +#: contrib/auth/forms.py:178 msgid "Your old password was entered incorrectly. Please enter it again." msgstr "Vanha salasana on virheellinen. Yritä uudelleen." -#: contrib/auth/models.py:63 contrib/auth/models.py:86 +#: contrib/auth/models.py:66 contrib/auth/models.py:94 msgid "name" msgstr "nimi" -#: contrib/auth/models.py:65 +#: contrib/auth/models.py:68 msgid "codename" msgstr "tunniste" -#: contrib/auth/models.py:68 +#: contrib/auth/models.py:72 msgid "permission" msgstr "oikeus" -#: contrib/auth/models.py:69 contrib/auth/models.py:87 +#: contrib/auth/models.py:73 contrib/auth/models.py:95 msgid "permissions" msgstr "oikeudet" -#: contrib/auth/models.py:90 +#: contrib/auth/models.py:98 msgid "group" msgstr "ryhmä" -#: contrib/auth/models.py:91 contrib/auth/models.py:138 +#: contrib/auth/models.py:99 contrib/auth/models.py:206 msgid "groups" msgstr "ryhmät" -#: contrib/auth/models.py:128 +#: contrib/auth/models.py:196 msgid "username" msgstr "käyttäjätunnus" -#: contrib/auth/models.py:129 +#: contrib/auth/models.py:196 +msgid "" +"Required. 30 characters or fewer. Letters, numbers and @/./+/-/_ characters" +msgstr "" +" Vaaditaan. Enintään 30 merkkiä. Vain kirjaimet, numerot ja @/./+/-/_ ovat sallittuja." + +#: contrib/auth/models.py:197 msgid "first name" msgstr "etunimi" -#: contrib/auth/models.py:130 +#: contrib/auth/models.py:198 msgid "last name" msgstr "sukunimi" -#: contrib/auth/models.py:131 +#: contrib/auth/models.py:199 msgid "e-mail address" msgstr "sähköposti" -#: contrib/auth/models.py:132 +#: contrib/auth/models.py:200 msgid "password" msgstr "salasana" -#: contrib/auth/models.py:132 +#: contrib/auth/models.py:200 msgid "" "Use '[algo]$[salt]$[hexdigest]' or use the change " "password form." @@ -1358,19 +1323,19 @@ msgstr "" "Syötä muodossa '[algo]$[suola]$[heksa-digest]' tai käytä muutoslomaketta." -#: contrib/auth/models.py:133 +#: contrib/auth/models.py:201 msgid "staff status" msgstr "ylläpitäjä" -#: contrib/auth/models.py:133 +#: contrib/auth/models.py:201 msgid "Designates whether the user can log into this admin site." msgstr "Määrittää, pääseekö käyttäjä tähän sivuston ylläpito-osioon." -#: contrib/auth/models.py:134 +#: contrib/auth/models.py:202 msgid "active" msgstr "voimassa" -#: contrib/auth/models.py:134 +#: contrib/auth/models.py:202 msgid "" "Designates whether this user should be treated as active. Unselect this " "instead of deleting accounts." @@ -1378,26 +1343,26 @@ msgstr "" "Määrää, voiko käyttäjä kirjautua sisään. Tällä voi estää käyttäjätilin " "käytön poistamatta sitä." -#: contrib/auth/models.py:135 +#: contrib/auth/models.py:203 msgid "superuser status" msgstr "pääkäyttäjä" -#: contrib/auth/models.py:135 +#: contrib/auth/models.py:203 msgid "" "Designates that this user has all permissions without explicitly assigning " "them." msgstr "" "Antaa käyttäjälle kaikki oikeudet ilman, että niitä täytyy erikseen luetella." -#: contrib/auth/models.py:136 +#: contrib/auth/models.py:204 msgid "last login" msgstr "viimeisin kirjautuminen" -#: contrib/auth/models.py:137 +#: contrib/auth/models.py:205 msgid "date joined" msgstr "liittynyt" -#: contrib/auth/models.py:139 +#: contrib/auth/models.py:207 msgid "" "In addition to the permissions manually assigned, this user will also get " "all permissions granted to each group he/she is in." @@ -1405,39 +1370,77 @@ msgstr "" "Erikseen mainittujen oikeuksien lisäksi käyttäjä saa myös kaikki niiden " "ryhmien oikeudet, joiden jäsen hän on." -#: contrib/auth/models.py:140 +#: contrib/auth/models.py:208 msgid "user permissions" msgstr "käyttäjän oikeudet" -#: contrib/auth/models.py:144 contrib/comments/models.py:50 +#: contrib/auth/models.py:212 contrib/comments/models.py:50 #: contrib/comments/models.py:168 msgid "user" msgstr "käyttäjä" -#: contrib/auth/models.py:145 +#: contrib/auth/models.py:213 msgid "users" msgstr "käyttäjät" -#: contrib/auth/models.py:301 +#: contrib/auth/models.py:394 msgid "message" msgstr "viesti" -#: contrib/auth/views.py:56 +#: contrib/auth/views.py:79 msgid "Logged out" msgstr "Kirjautunut ulos" -#: contrib/auth/management/commands/createsuperuser.py:23 forms/fields.py:429 +#: contrib/auth/management/commands/createsuperuser.py:23 +#: core/validators.py:120 forms/fields.py:416 msgid "Enter a valid e-mail address." msgstr "Syötä kelvollinen sähköpostiosoite." -#: contrib/comments/admin.py:11 +#: contrib/comments/admin.py:12 msgid "Content" msgstr "Sisältö" -#: contrib/comments/admin.py:14 +#: contrib/comments/admin.py:15 msgid "Metadata" msgstr "Metatieto" +#: contrib/comments/admin.py:40 +msgid "flagged" +msgid_plural "flagged" +msgstr[0] "merkitty" +msgstr[1] "merkitty" + +#: contrib/comments/admin.py:41 +msgid "Flag selected comments" +msgstr "Merkitse valitut kommentit" + +#: contrib/comments/admin.py:45 +msgid "approved" +msgid_plural "approved" +msgstr[0] "hyväksytty" +msgstr[1] "hyväksytty" + +#: contrib/comments/admin.py:46 +msgid "Approve selected comments" +msgstr "Hyväksy valitut kommentit" + +#: contrib/comments/admin.py:50 +msgid "removed" +msgid_plural "removed" +msgstr[0] "poistettu" +msgstr[1] "poistettu" + +#: contrib/comments/admin.py:51 +msgid "Remove selected comments" +msgstr "Poista valitut kommentit" + +#: contrib/comments/admin.py:63 +#, python-format +msgid "1 comment was successfully %(action)s." +msgid_plural "%(count)s comments were successfully %(action)s." +msgstr[0] "1 kommentti %(count)s onnistuneesti." +msgstr[1] "%(count)s kommenttia %(action)s onnistuneesti." + #: contrib/comments/feeds.py:13 #, python-format msgid "%(site_name)s comments" @@ -1449,7 +1452,6 @@ msgid "Latest comments on %(site_name)s" msgstr "Sivuston %(site_name)s viimeisimmät kommentit" #: contrib/comments/forms.py:93 -#: contrib/comments/templates/comments/moderation_queue.html:34 msgid "Name" msgstr "Nimi" @@ -1457,25 +1459,29 @@ msgstr "Nimi" msgid "Email address" msgstr "Sähköpostiosoite" +#: contrib/comments/forms.py:95 contrib/flatpages/admin.py:8 +#: contrib/flatpages/models.py:7 db/models/fields/__init__.py:1128 +msgid "URL" +msgstr "URL-osoite" + #: contrib/comments/forms.py:96 -#: contrib/comments/templates/comments/moderation_queue.html:35 msgid "Comment" msgstr "Kommentti" -#: contrib/comments/forms.py:173 +#: contrib/comments/forms.py:175 #, python-format msgid "Watch your mouth! The word %s is not allowed here." msgid_plural "Watch your mouth! The words %s are not allowed here." msgstr[0] "Siivoa suusi! Sanaa \"%s\" ei saa käyttää tässä." msgstr[1] "Siivoa suusi! Sanoja \"%s\" ei saa käyttää tässä." -#: contrib/comments/forms.py:180 +#: contrib/comments/forms.py:182 msgid "" "If you enter anything in this field your comment will be treated as spam" msgstr "" "Jos syötät tähän kenttään jotain, kommenttisi luokitellaan roskapostiksi" -#: contrib/comments/models.py:22 contrib/contenttypes/models.py:74 +#: contrib/comments/models.py:22 contrib/contenttypes/models.py:81 msgid "content type" msgstr "sisältötyyppi" @@ -1504,6 +1510,10 @@ msgstr "kommentti" msgid "date/time submitted" msgstr "lähettämishetki" +#: contrib/comments/models.py:60 db/models/fields/__init__.py:923 +msgid "IP address" +msgstr "IP-osoite" + #: contrib/comments/models.py:61 msgid "is public" msgstr "on julkinen" @@ -1586,7 +1596,6 @@ msgid "Really make this comment public?" msgstr "Haluatko varmasti tehdä kommentista julkisen?" #: contrib/comments/templates/comments/approve.html:12 -#: contrib/comments/templates/comments/moderation_queue.html:49 msgid "Approve" msgstr "Hyväksy" @@ -1609,11 +1618,6 @@ msgstr "Poista kommentti" msgid "Really remove this comment?" msgstr "Haluatko varmasti poistaa tämän kommentin?" -#: contrib/comments/templates/comments/delete.html:12 -#: contrib/comments/templates/comments/moderation_queue.html:53 -msgid "Remove" -msgstr "Poista" - #: contrib/comments/templates/comments/deleted.html:4 msgid "Thanks for removing" msgstr "Kiitos poistamisesta" @@ -1644,39 +1648,6 @@ msgstr "Lähetä" msgid "Preview" msgstr "Esikatsele" -#: contrib/comments/templates/comments/moderation_queue.html:4 -#: contrib/comments/templates/comments/moderation_queue.html:19 -msgid "Comment moderation queue" -msgstr "Kommenttien valvontajono" - -#: contrib/comments/templates/comments/moderation_queue.html:26 -msgid "No comments to moderate" -msgstr "Ei valvottavia kommentteja" - -#: contrib/comments/templates/comments/moderation_queue.html:36 -msgid "Email" -msgstr "Sähköposti" - -#: contrib/comments/templates/comments/moderation_queue.html:38 -msgid "Authenticated?" -msgstr "Kirjautunut?" - -#: contrib/comments/templates/comments/moderation_queue.html:39 -msgid "IP Address" -msgstr "IP-osoite" - -#: contrib/comments/templates/comments/moderation_queue.html:40 -msgid "Date posted" -msgstr "Lähettämispvm" - -#: contrib/comments/templates/comments/moderation_queue.html:63 -msgid "yes" -msgstr "kyllä" - -#: contrib/comments/templates/comments/moderation_queue.html:63 -msgid "no" -msgstr "ei" - #: contrib/comments/templates/comments/posted.html:4 msgid "Thanks for commenting" msgstr "Kiitos kommentista" @@ -1704,11 +1675,11 @@ msgstr "Lähetä kommentti" msgid "or make changes" msgstr "tai tee muutoksia" -#: contrib/contenttypes/models.py:70 +#: contrib/contenttypes/models.py:77 msgid "python model class name" msgstr "mallin python-luokan nimi" -#: contrib/contenttypes/models.py:75 +#: contrib/contenttypes/models.py:82 msgid "content types" msgstr "sisältötyypit" @@ -1772,7 +1743,7 @@ msgstr "tekstisivu" msgid "flat pages" msgstr "tekstisivut" -#: contrib/formtools/wizard.py:130 +#: contrib/formtools/wizard.py:140 msgid "" "We apologize, but your form has expired. Please continue filling out the " "form from this page." @@ -1780,6 +1751,38 @@ msgstr "" "Pahoittelumme, mutta sessiosi on vanhentunut. Ole hyvä ja jatka lomakkeen " "täyttämistä tältä sivulta." +#: contrib/gis/db/models/fields.py:50 +msgid "The base GIS field -- maps to the OpenGIS Specification Geometry type." +msgstr "" + +#: contrib/gis/db/models/fields.py:269 +msgid "Point" +msgstr "Piste" + +#: contrib/gis/db/models/fields.py:273 +msgid "Line string" +msgstr "" + +#: contrib/gis/db/models/fields.py:277 +msgid "Polygon" +msgstr "" + +#: contrib/gis/db/models/fields.py:281 +msgid "Multi-point" +msgstr "" + +#: contrib/gis/db/models/fields.py:285 +msgid "Multi-line string" +msgstr "" + +#: contrib/gis/db/models/fields.py:289 +msgid "Multi polygon" +msgstr "" + +#: contrib/gis/db/models/fields.py:293 +msgid "Geometry collection" +msgstr "" + #: contrib/gis/forms/fields.py:17 msgid "No geometry value provided." msgstr "Geometria-arvoa ei annettu." @@ -1883,25 +1886,25 @@ msgstr "huomenna" msgid "yesterday" msgstr "eilen" -#: contrib/localflavor/ar/forms.py:27 +#: contrib/localflavor/ar/forms.py:28 msgid "Enter a postal code in the format NNNN or ANNNNAAA." msgstr "Syötä postinumero muodossa NNNN tai ANNNNAAA." -#: contrib/localflavor/ar/forms.py:49 contrib/localflavor/br/forms.py:96 -#: contrib/localflavor/br/forms.py:135 contrib/localflavor/pe/forms.py:23 -#: contrib/localflavor/pe/forms.py:51 +#: contrib/localflavor/ar/forms.py:50 contrib/localflavor/br/forms.py:97 +#: contrib/localflavor/br/forms.py:136 contrib/localflavor/pe/forms.py:24 +#: contrib/localflavor/pe/forms.py:52 msgid "This field requires only numbers." msgstr "Tähän kenttään kelpaavat vain numerot." -#: contrib/localflavor/ar/forms.py:50 +#: contrib/localflavor/ar/forms.py:51 msgid "This field requires 7 or 8 digits." msgstr "Tähän kenttään vaaditaan 7 tai 8 numeroa." -#: contrib/localflavor/ar/forms.py:79 +#: contrib/localflavor/ar/forms.py:80 msgid "Enter a valid CUIT in XX-XXXXXXXX-X or XXXXXXXXXXXX format." msgstr "Syötä validi CUIT joko XX-XXXXXXXX-X tai XXXXXXXXXXXX -muodossa." -#: contrib/localflavor/ar/forms.py:80 +#: contrib/localflavor/ar/forms.py:81 msgid "Invalid CUIT." msgstr "Virheellinen CUIT." @@ -1941,8 +1944,8 @@ msgstr "Vorarlberg" msgid "Vienna" msgstr "Wien" -#: contrib/localflavor/at/forms.py:20 contrib/localflavor/ch/forms.py:16 -#: contrib/localflavor/no/forms.py:12 +#: contrib/localflavor/at/forms.py:20 contrib/localflavor/ch/forms.py:17 +#: contrib/localflavor/no/forms.py:13 msgid "Enter a zip code in the format XXXX." msgstr "Syötä postinumero muodossa XXXX." @@ -1950,19 +1953,19 @@ msgstr "Syötä postinumero muodossa XXXX." msgid "Enter a valid Austrian Social Security Number in XXXX XXXXXX format." msgstr "Enter a valid Austrian Social Security Number in XXXX XXXXXX format." -#: contrib/localflavor/au/forms.py:16 +#: contrib/localflavor/au/forms.py:17 msgid "Enter a 4 digit post code." msgstr "Syötä nelinumeroinen postinumero." -#: contrib/localflavor/br/forms.py:21 +#: contrib/localflavor/br/forms.py:22 msgid "Enter a zip code in the format XXXXX-XXX." msgstr "Syötä postinumero muodossa XXXXX-XXX." -#: contrib/localflavor/br/forms.py:30 +#: contrib/localflavor/br/forms.py:31 msgid "Phone numbers must be in XX-XXXX-XXXX format." msgstr "Puhelinnumeron tulee olla muodossa XX-XXXX-XXXX." -#: contrib/localflavor/br/forms.py:58 +#: contrib/localflavor/br/forms.py:59 msgid "" "Select a valid brazilian state. That state is not one of the available " "states." @@ -1970,27 +1973,27 @@ msgstr "" "Select a valid brazilian state. That state is not one of the available " "states." -#: contrib/localflavor/br/forms.py:94 +#: contrib/localflavor/br/forms.py:95 msgid "Invalid CPF number." msgstr "Virheellinen CPF-numero." -#: contrib/localflavor/br/forms.py:95 +#: contrib/localflavor/br/forms.py:96 msgid "This field requires at most 11 digits or 14 characters." msgstr "Tämä kenttä vaatii vähintään 11 ja enintään 14 merkkiä." -#: contrib/localflavor/br/forms.py:134 +#: contrib/localflavor/br/forms.py:135 msgid "Invalid CNPJ number." msgstr "Virheellinen CNPJ-numero." -#: contrib/localflavor/br/forms.py:136 +#: contrib/localflavor/br/forms.py:137 msgid "This field requires at least 14 digits" msgstr "Tähän kenttään vaaditaan ainakin 14 numeroa." -#: contrib/localflavor/ca/forms.py:17 +#: contrib/localflavor/ca/forms.py:25 msgid "Enter a postal code in the format XXX XXX." msgstr "Syötä postinumero muodossa XXX XXX." -#: contrib/localflavor/ca/forms.py:88 +#: contrib/localflavor/ca/forms.py:96 msgid "Enter a valid Canadian Social Insurance number in XXX-XXX-XXX format." msgstr "Enter a valid Canadian Social Insurance number in XXX-XXX-XXX format." @@ -2098,7 +2101,7 @@ msgstr "Zug" msgid "Zurich" msgstr "Zurich" -#: contrib/localflavor/ch/forms.py:64 +#: contrib/localflavor/ch/forms.py:65 msgid "" "Enter a valid Swiss identity or passport card number in X1234567<0 or " "1234567890 format." @@ -2106,15 +2109,15 @@ msgstr "" "Enter a valid Swiss identity or passport card number in X1234567<0 or " "1234567890 format." -#: contrib/localflavor/cl/forms.py:29 +#: contrib/localflavor/cl/forms.py:30 msgid "Enter a valid Chilean RUT." msgstr "Syötä oikea chileläinen RUT" -#: contrib/localflavor/cl/forms.py:30 +#: contrib/localflavor/cl/forms.py:31 msgid "Enter a valid Chilean RUT. The format is XX.XXX.XXX-X." msgstr "Enter a valid Chilean RUT. The format is XX.XXX.XXX-X." -#: contrib/localflavor/cl/forms.py:31 +#: contrib/localflavor/cl/forms.py:32 msgid "The Chilean RUT is not valid." msgstr "The Chilean RUT is not valid." @@ -2174,24 +2177,24 @@ msgstr "Zilin region" msgid "Moravian-Silesian Region" msgstr "Moravian-Silesian Region" -#: contrib/localflavor/cz/forms.py:27 contrib/localflavor/sk/forms.py:30 +#: contrib/localflavor/cz/forms.py:28 contrib/localflavor/sk/forms.py:30 msgid "Enter a postal code in the format XXXXX or XXX XX." msgstr "Syötä postinumero muodossa XXXXX tai XXX XX." -#: contrib/localflavor/cz/forms.py:47 +#: contrib/localflavor/cz/forms.py:48 msgid "Enter a birth number in the format XXXXXX/XXXX or XXXXXXXXXX." msgstr "Syötä henkilötunnus muodossa XXXXXX/XXXX tai XXXXXXXXXX." -#: contrib/localflavor/cz/forms.py:48 +#: contrib/localflavor/cz/forms.py:49 msgid "Invalid optional parameter Gender, valid values are 'f' and 'm'" msgstr "" "Virheellinen valinnainen sukupuoli, valitse 'f' (nainen) tai 'm' (mies)" -#: contrib/localflavor/cz/forms.py:49 +#: contrib/localflavor/cz/forms.py:50 msgid "Enter a valid birth number." msgstr "Syötä oikea henkilötunnus." -#: contrib/localflavor/cz/forms.py:106 +#: contrib/localflavor/cz/forms.py:107 msgid "Enter a valid IC number." msgstr "Syötä oikea IC-tunnus." @@ -2259,12 +2262,12 @@ msgstr "Schleswig-Holstein" msgid "Thuringia" msgstr "Thuringia" -#: contrib/localflavor/de/forms.py:14 contrib/localflavor/fi/forms.py:12 -#: contrib/localflavor/fr/forms.py:15 +#: contrib/localflavor/de/forms.py:15 contrib/localflavor/fi/forms.py:13 +#: contrib/localflavor/fr/forms.py:16 msgid "Enter a zip code in the format XXXXX." msgstr "Syötä postinumero muodossa XXXXX." -#: contrib/localflavor/de/forms.py:41 +#: contrib/localflavor/de/forms.py:42 msgid "" "Enter a valid German identity card number in XXXXXXXXXXX-XXXXXXX-XXXXXXX-X " "format." @@ -2539,11 +2542,11 @@ msgstr "Foral Community of Navarre" msgid "Valencian Community" msgstr "Valencian Community" -#: contrib/localflavor/es/forms.py:19 +#: contrib/localflavor/es/forms.py:20 msgid "Enter a valid postal code in the range and format 01XXX - 52XXX." msgstr "Syötä validi postinumero väliltä ja muodossa 01XXX-52XXX." -#: contrib/localflavor/es/forms.py:39 +#: contrib/localflavor/es/forms.py:40 msgid "" "Enter a valid phone number in one of the formats 6XXXXXXXX, 8XXXXXXXX or " "9XXXXXXXX." @@ -2551,63 +2554,495 @@ msgstr "" "Enter a valid phone number in one of the formats 6XXXXXXXX, 8XXXXXXXX or " "9XXXXXXXX." -#: contrib/localflavor/es/forms.py:66 +#: contrib/localflavor/es/forms.py:67 msgid "Please enter a valid NIF, NIE, or CIF." msgstr "Please enter a valid NIF, NIE, or CIF." -#: contrib/localflavor/es/forms.py:67 +#: contrib/localflavor/es/forms.py:68 msgid "Please enter a valid NIF or NIE." msgstr "Please enter a valid NIF or NIE." -#: contrib/localflavor/es/forms.py:68 +#: contrib/localflavor/es/forms.py:69 msgid "Invalid checksum for NIF." msgstr "Invalid checksum for NIF." -#: contrib/localflavor/es/forms.py:69 +#: contrib/localflavor/es/forms.py:70 msgid "Invalid checksum for NIE." msgstr "Invalid checksum for NIE." -#: contrib/localflavor/es/forms.py:70 +#: contrib/localflavor/es/forms.py:71 msgid "Invalid checksum for CIF." msgstr "Invalid checksum for CIF." -#: contrib/localflavor/es/forms.py:142 +#: contrib/localflavor/es/forms.py:143 msgid "" "Please enter a valid bank account number in format XXXX-XXXX-XX-XXXXXXXXXX." msgstr "" "Please enter a valid bank account number in format XXXX-XXXX-XX-XXXXXXXXXX." -#: contrib/localflavor/es/forms.py:143 +#: contrib/localflavor/es/forms.py:144 msgid "Invalid checksum for bank account number." msgstr "Invalid checksum for bank account number." -#: contrib/localflavor/fi/forms.py:28 +#: contrib/localflavor/fi/forms.py:29 msgid "Enter a valid Finnish social security number." msgstr "Syötä oikea suomalainen henkilötunnus." -#: contrib/localflavor/in_/forms.py:14 +#: contrib/localflavor/fr/forms.py:31 +msgid "Phone numbers must be in 0X XX XX XX XX format." +msgstr "Phone numbers must be in 0X XX XX XX XX format." + +#: contrib/localflavor/id/forms.py:28 +msgid "Enter a valid post code" +msgstr "Enter a valid post code" + +#: contrib/localflavor/id/forms.py:68 contrib/localflavor/nl/forms.py:53 +msgid "Enter a valid phone number" +msgstr "Syötä oikea puhelinnumero" + +#: contrib/localflavor/id/forms.py:107 +msgid "Enter a valid vehicle license plate number" +msgstr "Enter a valid vehicle license plate number" + +#: contrib/localflavor/id/forms.py:170 +msgid "Enter a valid NIK/KTP number" +msgstr "Enter a valid NIK/KTP number" + +#: contrib/localflavor/id/id_choices.py:9 +#: contrib/localflavor/id/id_choices.py:73 +msgid "Bali" +msgstr "Bali" + +#: contrib/localflavor/id/id_choices.py:10 +#: contrib/localflavor/id/id_choices.py:45 +msgid "Banten" +msgstr "Banten" + +#: contrib/localflavor/id/id_choices.py:11 +#: contrib/localflavor/id/id_choices.py:54 +msgid "Bengkulu" +msgstr "Bengkulu" + +#: contrib/localflavor/id/id_choices.py:12 +#: contrib/localflavor/id/id_choices.py:47 +msgid "Yogyakarta" +msgstr "Yogyakarta" + +#: contrib/localflavor/id/id_choices.py:13 +#: contrib/localflavor/id/id_choices.py:51 +msgid "Jakarta" +msgstr "Jakarta" + +#: contrib/localflavor/id/id_choices.py:14 +#: contrib/localflavor/id/id_choices.py:75 +msgid "Gorontalo" +msgstr "Gorontalo" + +#: contrib/localflavor/id/id_choices.py:15 +#: contrib/localflavor/id/id_choices.py:57 +msgid "Jambi" +msgstr "Jambi" + +#: contrib/localflavor/id/id_choices.py:16 +msgid "Jawa Barat" +msgstr "Jawa Barat" + +#: contrib/localflavor/id/id_choices.py:17 +msgid "Jawa Tengah" +msgstr "Jawa Tengah" + +#: contrib/localflavor/id/id_choices.py:18 +msgid "Jawa Timur" +msgstr "Jawa Timur" + +#: contrib/localflavor/id/id_choices.py:19 +#: contrib/localflavor/id/id_choices.py:88 +msgid "Kalimantan Barat" +msgstr "Kalimantan Barat" + +#: contrib/localflavor/id/id_choices.py:20 +#: contrib/localflavor/id/id_choices.py:66 +msgid "Kalimantan Selatan" +msgstr "Kalimantan Selatan" + +#: contrib/localflavor/id/id_choices.py:21 +#: contrib/localflavor/id/id_choices.py:89 +msgid "Kalimantan Tengah" +msgstr "Kalimantan Tengah" + +#: contrib/localflavor/id/id_choices.py:22 +#: contrib/localflavor/id/id_choices.py:90 +msgid "Kalimantan Timur" +msgstr "Kalimantan Timur" + +#: contrib/localflavor/id/id_choices.py:23 +msgid "Kepulauan Bangka-Belitung" +msgstr "Kepulauan Bangka-Belitung" + +#: contrib/localflavor/id/id_choices.py:24 +#: contrib/localflavor/id/id_choices.py:62 +msgid "Kepulauan Riau" +msgstr "Kepulauan Riau" + +#: contrib/localflavor/id/id_choices.py:25 +#: contrib/localflavor/id/id_choices.py:55 +msgid "Lampung" +msgstr "Lampung" + +#: contrib/localflavor/id/id_choices.py:26 +#: contrib/localflavor/id/id_choices.py:70 +msgid "Maluku" +msgstr "Maluku" + +#: contrib/localflavor/id/id_choices.py:27 +#: contrib/localflavor/id/id_choices.py:71 +msgid "Maluku Utara" +msgstr "Maluku Utara" + +#: contrib/localflavor/id/id_choices.py:28 +#: contrib/localflavor/id/id_choices.py:59 +msgid "Nanggroe Aceh Darussalam" +msgstr "Nanggroe Aceh Darussalam" + +#: contrib/localflavor/id/id_choices.py:29 +msgid "Nusa Tenggara Barat" +msgstr "Nusa Tenggara Barat" + +#: contrib/localflavor/id/id_choices.py:30 +msgid "Nusa Tenggara Timur" +msgstr "Nusa Tenggara Timur" + +#: contrib/localflavor/id/id_choices.py:31 +msgid "Papua" +msgstr "Papua" + +#: contrib/localflavor/id/id_choices.py:32 +msgid "Papua Barat" +msgstr "Papua Barat" + +#: contrib/localflavor/id/id_choices.py:33 +#: contrib/localflavor/id/id_choices.py:60 +msgid "Riau" +msgstr "Riau" + +#: contrib/localflavor/id/id_choices.py:34 +#: contrib/localflavor/id/id_choices.py:68 +msgid "Sulawesi Barat" +msgstr "Sulawesi Barat" + +#: contrib/localflavor/id/id_choices.py:35 +#: contrib/localflavor/id/id_choices.py:69 +msgid "Sulawesi Selatan" +msgstr "Sulawesi Selatan" + +#: contrib/localflavor/id/id_choices.py:36 +#: contrib/localflavor/id/id_choices.py:76 +msgid "Sulawesi Tengah" +msgstr "Sulawesi Tengah" + +#: contrib/localflavor/id/id_choices.py:37 +#: contrib/localflavor/id/id_choices.py:79 +msgid "Sulawesi Tenggara" +msgstr "Sulawesi Tenggara" + +#: contrib/localflavor/id/id_choices.py:38 +msgid "Sulawesi Utara" +msgstr "Sulawesi Utara" + +#: contrib/localflavor/id/id_choices.py:39 +#: contrib/localflavor/id/id_choices.py:52 +msgid "Sumatera Barat" +msgstr "Sumatera Barat" + +#: contrib/localflavor/id/id_choices.py:40 +#: contrib/localflavor/id/id_choices.py:56 +msgid "Sumatera Selatan" +msgstr "Sumatera Selatan" + +#: contrib/localflavor/id/id_choices.py:41 +#: contrib/localflavor/id/id_choices.py:58 +msgid "Sumatera Utara" +msgstr "Sumatera Utara" + +#: contrib/localflavor/id/id_choices.py:46 +msgid "Magelang" +msgstr "Magelang" + +#: contrib/localflavor/id/id_choices.py:48 +msgid "Surakarta - Solo" +msgstr "Surakarta - Solo" + +#: contrib/localflavor/id/id_choices.py:49 +msgid "Madiun" +msgstr "Madiun" + +#: contrib/localflavor/id/id_choices.py:50 +msgid "Kediri" +msgstr "Kediri" + +#: contrib/localflavor/id/id_choices.py:53 +msgid "Tapanuli" +msgstr "Tapanuli" + +#: contrib/localflavor/id/id_choices.py:61 +msgid "Kepulauan Bangka Belitung" +msgstr "Kepulauan Bangka Belitung" + +#: contrib/localflavor/id/id_choices.py:63 +msgid "Corps Consulate" +msgstr "Corps Consulate" + +#: contrib/localflavor/id/id_choices.py:64 +msgid "Corps Diplomatic" +msgstr "Corps Diplomatic" + +#: contrib/localflavor/id/id_choices.py:65 +msgid "Bandung" +msgstr "Bandung" + +#: contrib/localflavor/id/id_choices.py:67 +msgid "Sulawesi Utara Daratan" +msgstr "Sulawesi Utara Daratan" + +#: contrib/localflavor/id/id_choices.py:72 +msgid "NTT - Timor" +msgstr "NTT - Timor" + +#: contrib/localflavor/id/id_choices.py:74 +msgid "Sulawesi Utara Kepulauan" +msgstr "Sulawesi Utara Kepulauan" + +#: contrib/localflavor/id/id_choices.py:77 +msgid "NTB - Lombok" +msgstr "NTB - Lombok" + +#: contrib/localflavor/id/id_choices.py:78 +msgid "Papua dan Papua Barat" +msgstr "Papua dan Papua Barat" + +#: contrib/localflavor/id/id_choices.py:80 +msgid "Cirebon" +msgstr "Cirebon" + +#: contrib/localflavor/id/id_choices.py:81 +msgid "NTB - Sumbawa" +msgstr "NTB - Sumbawa" + +#: contrib/localflavor/id/id_choices.py:82 +msgid "NTT - Flores" +msgstr "NTT - Flores" + +#: contrib/localflavor/id/id_choices.py:83 +msgid "NTT - Sumba" +msgstr "NTT - Sumba" + +#: contrib/localflavor/id/id_choices.py:84 +msgid "Bogor" +msgstr "Bogor" + +#: contrib/localflavor/id/id_choices.py:85 +msgid "Pekalongan" +msgstr "Pekalongan" + +#: contrib/localflavor/id/id_choices.py:86 +msgid "Semarang" +msgstr "Semarang" + +#: contrib/localflavor/id/id_choices.py:87 +msgid "Pati" +msgstr "Pati" + +#: contrib/localflavor/id/id_choices.py:91 +msgid "Surabaya" +msgstr "Surabaya" + +#: contrib/localflavor/id/id_choices.py:92 +msgid "Madura" +msgstr "Madura" + +#: contrib/localflavor/id/id_choices.py:93 +msgid "Malang" +msgstr "Malang" + +#: contrib/localflavor/id/id_choices.py:94 +msgid "Jember" +msgstr "Jember" + +#: contrib/localflavor/id/id_choices.py:95 +msgid "Banyumas" +msgstr "Banyumas" + +#: contrib/localflavor/id/id_choices.py:96 +msgid "Federal Government" +msgstr "Federal Government" + +#: contrib/localflavor/id/id_choices.py:97 +msgid "Bojonegoro" +msgstr "Bojonegoro" + +#: contrib/localflavor/id/id_choices.py:98 +msgid "Purwakarta" +msgstr "Purwakarta" + +#: contrib/localflavor/id/id_choices.py:99 +msgid "Sidoarjo" +msgstr "Sidoarjo" + +#: contrib/localflavor/id/id_choices.py:100 +msgid "Garut" +msgstr "Garut" + +#: contrib/localflavor/ie/ie_counties.py:8 +msgid "Antrim" +msgstr "Antrim" + +#: contrib/localflavor/ie/ie_counties.py:9 +msgid "Armagh" +msgstr "Armagh" + +#: contrib/localflavor/ie/ie_counties.py:10 +msgid "Carlow" +msgstr "Carlow" + +#: contrib/localflavor/ie/ie_counties.py:11 +msgid "Cavan" +msgstr "Cavan" + +#: contrib/localflavor/ie/ie_counties.py:12 +msgid "Clare" +msgstr "Clare" + +#: contrib/localflavor/ie/ie_counties.py:13 +msgid "Cork" +msgstr "Cork" + +#: contrib/localflavor/ie/ie_counties.py:14 +msgid "Derry" +msgstr "Derry" + +#: contrib/localflavor/ie/ie_counties.py:15 +msgid "Donegal" +msgstr "Donegal" + +#: contrib/localflavor/ie/ie_counties.py:16 +msgid "Down" +msgstr "Down" + +#: contrib/localflavor/ie/ie_counties.py:17 +msgid "Dublin" +msgstr "Dublin" + +#: contrib/localflavor/ie/ie_counties.py:18 +msgid "Fermanagh" +msgstr "Fermanagh" + +#: contrib/localflavor/ie/ie_counties.py:19 +msgid "Galway" +msgstr "Galway" + +#: contrib/localflavor/ie/ie_counties.py:20 +msgid "Kerry" +msgstr "Kerry" + +#: contrib/localflavor/ie/ie_counties.py:21 +msgid "Kildare" +msgstr "Kildare" + +#: contrib/localflavor/ie/ie_counties.py:22 +msgid "Kilkenny" +msgstr "Kilkenny" + +#: contrib/localflavor/ie/ie_counties.py:23 +msgid "Laois" +msgstr "Laois" + +#: contrib/localflavor/ie/ie_counties.py:24 +msgid "Leitrim" +msgstr "Leitrim" + +#: contrib/localflavor/ie/ie_counties.py:25 +msgid "Limerick" +msgstr "Limerick" + +#: contrib/localflavor/ie/ie_counties.py:26 +msgid "Longford" +msgstr "Longford" + +#: contrib/localflavor/ie/ie_counties.py:27 +msgid "Louth" +msgstr "Louth" + +#: contrib/localflavor/ie/ie_counties.py:28 +msgid "Mayo" +msgstr "Mayo" + +#: contrib/localflavor/ie/ie_counties.py:29 +msgid "Meath" +msgstr "Meath" + +#: contrib/localflavor/ie/ie_counties.py:30 +msgid "Monaghan" +msgstr "Monaghan" + +#: contrib/localflavor/ie/ie_counties.py:31 +msgid "Offaly" +msgstr "Offaly" + +#: contrib/localflavor/ie/ie_counties.py:32 +msgid "Roscommon" +msgstr "Roscommon" + +#: contrib/localflavor/ie/ie_counties.py:33 +msgid "Sligo" +msgstr "Sligo" + +#: contrib/localflavor/ie/ie_counties.py:34 +msgid "Tipperary" +msgstr "Tipperary" + +#: contrib/localflavor/ie/ie_counties.py:35 +msgid "Tyrone" +msgstr "Tyrone" + +#: contrib/localflavor/ie/ie_counties.py:36 +msgid "Waterford" +msgstr "Waterford" + +#: contrib/localflavor/ie/ie_counties.py:37 +msgid "Westmeath" +msgstr "Westmeath" + +#: contrib/localflavor/ie/ie_counties.py:38 +msgid "Wexford" +msgstr "Wexford" + +#: contrib/localflavor/ie/ie_counties.py:39 +msgid "Wicklow" +msgstr "Wicklow" + +#: contrib/localflavor/in_/forms.py:15 msgid "Enter a zip code in the format XXXXXXX." msgstr "Syötä postinumero muodossa XXXXXXX." -#: contrib/localflavor/is_/forms.py:17 +#: contrib/localflavor/is_/forms.py:18 msgid "" "Enter a valid Icelandic identification number. The format is XXXXXX-XXXX." msgstr "" "Enter a valid Icelandic identification number. The format is XXXXXX-XXXX." -#: contrib/localflavor/is_/forms.py:18 +#: contrib/localflavor/is_/forms.py:19 msgid "The Icelandic identification number is not valid." msgstr "The Icelandic identification number is not valid." -#: contrib/localflavor/it/forms.py:14 +#: contrib/localflavor/it/forms.py:15 msgid "Enter a valid zip code." msgstr "Syötä oikea postinumero." -#: contrib/localflavor/it/forms.py:43 +#: contrib/localflavor/it/forms.py:44 msgid "Enter a valid Social Security number." msgstr "Syötä oikea henkilötunnus." -#: contrib/localflavor/it/forms.py:68 +#: contrib/localflavor/it/forms.py:69 msgid "Enter a valid VAT number." msgstr "Syötä oikea ALV-tunnus." @@ -2803,6 +3238,10 @@ msgstr "Kagoshima" msgid "Okinawa" msgstr "Okinawa" +#: contrib/localflavor/kw/forms.py:25 +msgid "Enter a valid Kuwaiti Civil ID number" +msgstr "Enter a valid Kuwaiti Civil ID number" + #: contrib/localflavor/mx/mx_states.py:12 msgid "Aguascalientes" msgstr "Aguascalientes" @@ -2931,15 +3370,11 @@ msgstr "Yucatán" msgid "Zacatecas" msgstr "Zacatecas" -#: contrib/localflavor/nl/forms.py:21 +#: contrib/localflavor/nl/forms.py:22 msgid "Enter a valid postal code" msgstr "Syötä oikea postinumero" -#: contrib/localflavor/nl/forms.py:52 -msgid "Enter a valid phone number" -msgstr "Syötä oikea puhelinnumero" - -#: contrib/localflavor/nl/forms.py:78 +#: contrib/localflavor/nl/forms.py:79 msgid "Enter a valid SoFi number" msgstr "Syötä ikea SoFi-numero" @@ -2991,15 +3426,15 @@ msgstr "Zeeland" msgid "Zuid-Holland" msgstr "Zuid-Holland" -#: contrib/localflavor/no/forms.py:33 +#: contrib/localflavor/no/forms.py:34 msgid "Enter a valid Norwegian social security number." msgstr "Syötä oikea norjalainen henkilötunnus." -#: contrib/localflavor/pe/forms.py:24 +#: contrib/localflavor/pe/forms.py:25 msgid "This field requires 8 digits." msgstr "Tähän kenttään vaaditaan 8 numeroa." -#: contrib/localflavor/pe/forms.py:52 +#: contrib/localflavor/pe/forms.py:53 msgid "This field requires 11 digits." msgstr "Tähän kenttään vaaditaan 11 numeroa." @@ -3097,6 +3532,14 @@ msgstr "Greater Poland" msgid "West Pomerania" msgstr "West Pomerania" +#: contrib/localflavor/pt/forms.py:17 +msgid "Enter a zip code in the format XXXX-XXX." +msgstr "Enter a zip code in the format XXXX-XXX." + +#: contrib/localflavor/pt/forms.py:37 +msgid "Phone numbers must have 9 digits, or start by + or 00." +msgstr "Phone numbers must have 9 digits, or start by + or 00." + #: contrib/localflavor/ro/forms.py:19 msgid "Enter a valid CIF." msgstr "Enter a valid CIF." @@ -3117,6 +3560,106 @@ msgstr "Puhelinnumeron tulee olla muodossa XXXX-XXXXXX." msgid "Enter a valid postal code in the format XXXXXX" msgstr "Syötä postinumero muodossa XXXXXX." +#: contrib/localflavor/se/forms.py:50 +msgid "Enter a valid Swedish organisation number." +msgstr "Enter a valid Swedish organisation number." + +#: contrib/localflavor/se/forms.py:107 +msgid "Enter a valid Swedish personal identity number." +msgstr "Enter a valid Swedish personal identity number." + +#: contrib/localflavor/se/forms.py:108 +msgid "Co-ordination numbers are not allowed." +msgstr "Co-ordination numbers are not allowed." + +#: contrib/localflavor/se/forms.py:150 +msgid "Enter a Swedish postal code in the format XXXXX." +msgstr "Enter a Swedish postal code in the format XXXXX." + +#: contrib/localflavor/se/se_counties.py:15 +msgid "Stockholm" +msgstr "Stockholm" + +#: contrib/localflavor/se/se_counties.py:16 +msgid "Västerbotten" +msgstr "Västerbotten" + +#: contrib/localflavor/se/se_counties.py:17 +msgid "Norrbotten" +msgstr "Norrbotten" + +#: contrib/localflavor/se/se_counties.py:18 +msgid "Uppsala" +msgstr "Uppsala" + +#: contrib/localflavor/se/se_counties.py:19 +msgid "Södermanland" +msgstr "Södermanland" + +#: contrib/localflavor/se/se_counties.py:20 +msgid "Östergötland" +msgstr "Östergötland" + +#: contrib/localflavor/se/se_counties.py:21 +msgid "Jönköping" +msgstr "Jönköping" + +#: contrib/localflavor/se/se_counties.py:22 +msgid "Kronoberg" +msgstr "Kronoberg" + +#: contrib/localflavor/se/se_counties.py:23 +msgid "Kalmar" +msgstr "Kalmar" + +#: contrib/localflavor/se/se_counties.py:24 +msgid "Gotland" +msgstr "Gotland" + +#: contrib/localflavor/se/se_counties.py:25 +msgid "Blekinge" +msgstr "Blekinge" + +#: contrib/localflavor/se/se_counties.py:26 +msgid "Skåne" +msgstr "Skåne" + +#: contrib/localflavor/se/se_counties.py:27 +msgid "Halland" +msgstr "Halland" + +#: contrib/localflavor/se/se_counties.py:28 +msgid "Västra Götaland" +msgstr "Västra Götaland" + +#: contrib/localflavor/se/se_counties.py:29 +msgid "Värmland" +msgstr "Värmland" + +#: contrib/localflavor/se/se_counties.py:30 +msgid "Örebro" +msgstr "Örebro" + +#: contrib/localflavor/se/se_counties.py:31 +msgid "Västmanland" +msgstr "Västmanland" + +#: contrib/localflavor/se/se_counties.py:32 +msgid "Dalarna" +msgstr "Dalarna" + +#: contrib/localflavor/se/se_counties.py:33 +msgid "Gävleborg" +msgstr "Gävleborg" + +#: contrib/localflavor/se/se_counties.py:34 +msgid "Västernorrland" +msgstr "Västernorrland" + +#: contrib/localflavor/se/se_counties.py:35 +msgid "Jämtland" +msgstr "Jämtland" + #: contrib/localflavor/sk/sk_districts.py:8 msgid "Banska Bystrica" msgstr "Banska Bystrica" @@ -3749,19 +4292,43 @@ msgstr "Scotland" msgid "Wales" msgstr "Scotland" -#: contrib/localflavor/us/forms.py:16 +#: contrib/localflavor/us/forms.py:17 msgid "Enter a zip code in the format XXXXX or XXXXX-XXXX." msgstr "Enter a zip code in the format XXXXX or XXXXX-XXXX." -#: contrib/localflavor/us/forms.py:54 +#: contrib/localflavor/us/forms.py:26 +msgid "Phone numbers must be in XXX-XXX-XXXX format." +msgstr "Phone numbers must be in XXX-XXX-XXXX format." + +#: contrib/localflavor/us/forms.py:55 msgid "Enter a valid U.S. Social Security number in XXX-XX-XXXX format." msgstr "Enter a valid U.S. Social Security number in XXX-XX-XXXX format." -#: contrib/localflavor/za/forms.py:20 +#: contrib/localflavor/us/forms.py:88 +msgid "Enter a U.S. state or territory." +msgstr "Enter a U.S. state or territory." + +#: contrib/localflavor/us/models.py:8 +msgid "U.S. state (two uppercase letters)" +msgstr "USA:n osavaltio (suuraakkosin, kaksi kirjainta)" + +#: contrib/localflavor/us/models.py:17 +msgid "Phone number" +msgstr "Puhelinnumero" + +#: contrib/localflavor/uy/forms.py:28 +msgid "Enter a valid CI number in X.XXX.XXX-X,XXXXXXX-X or XXXXXXXX format." +msgstr "Enter a valid CI number in X.XXX.XXX-X,XXXXXXX-X or XXXXXXXX format." + +#: contrib/localflavor/uy/forms.py:30 +msgid "Enter a valid CI number." +msgstr "Enter a valid CI number." + +#: contrib/localflavor/za/forms.py:21 msgid "Enter a valid South African ID number" msgstr "Enter a valid South African ID number" -#: contrib/localflavor/za/forms.py:54 +#: contrib/localflavor/za/forms.py:55 msgid "Enter a valid South African postal code" msgstr "Enter a valid South African postal code" @@ -3801,6 +4368,10 @@ msgstr "North West" msgid "Western Cape" msgstr "Western Cape" +#: contrib/messages/tests/base.py:101 +msgid "lazy message" +msgstr "laiska viesti" + #: contrib/redirects/models.py:7 msgid "redirect from" msgstr "ohjaa osoitteesta" @@ -3865,59 +4436,218 @@ msgstr "näyttönimi" msgid "sites" msgstr "sivustot" -#: db/models/fields/__init__.py:356 db/models/fields/__init__.py:710 -msgid "This value must be an integer." -msgstr "Tarvitaan kokonaisluku." +#: core/validators.py:20 forms/fields.py:66 +msgid "Enter a valid value." +msgstr "Syötä oikea arvo." -#: db/models/fields/__init__.py:388 -msgid "This value must be either True or False." -msgstr "Tarvitaan tosi (True) tai epätosi (False)." +#: core/validators.py:87 forms/fields.py:517 +msgid "Enter a valid URL." +msgstr "Syötä oikea URL-osoite." -#: db/models/fields/__init__.py:427 -msgid "This field cannot be null." -msgstr "Tämän kentän arvo ei voi olla \"null\"." +#: core/validators.py:89 forms/fields.py:518 +msgid "This URL appears to be a broken link." +msgstr "Tämä URL-osoite on rikkinäinen linkki." -#: db/models/fields/__init__.py:443 +#: core/validators.py:123 forms/fields.py:861 +msgid "" +"Enter a valid 'slug' consisting of letters, numbers, underscores or hyphens." +msgstr "" +"Tässä voidaan käyttää vain kirjaimia (a-z), numeroita (0-9) sekä ala- ja " +"tavuviivoja (_ -)." + +#: core/validators.py:126 forms/fields.py:854 +msgid "Enter a valid IPv4 address." +msgstr "Syötä kelvollinen IPv4-osoite." + +#: core/validators.py:129 db/models/fields/__init__.py:599 msgid "Enter only digits separated by commas." msgstr "Vain pilkulla erotetut kokonaisluvut kelpaavat tässä." -#: db/models/fields/__init__.py:474 +#: core/validators.py:135 +#, python-format +msgid "Ensure this value is %(limit_value)s (it is %(show_value)s)." +msgstr "Tämän arvon on oltava %(limit_value)s (nyt %(show_value)s)." + +#: core/validators.py:153 forms/fields.py:196 forms/fields.py:246 +#, python-format +msgid "Ensure this value is less than or equal to %(limit_value)s." +msgstr "Tämän arvon on oltava enintään %(limit_value)s." + +#: core/validators.py:158 forms/fields.py:197 forms/fields.py:247 +#, python-format +msgid "Ensure this value is greater than or equal to %(limit_value)s." +msgstr "Tämän luvun on oltava vähintään %(limit_value)s." + +#: core/validators.py:164 +#, python-format +msgid "" +"Ensure this value has at least %(limit_value)d characters (it has %" +"(show_value)d)." +msgstr "Tähän tarvitaan vähintään %(limit_value)d merkkiä (nyt on vain %(show_value)d)." + +#: core/validators.py:170 +#, python-format +msgid "" +"Ensure this value has at most %(limit_value)d characters (it has %" +"(show_value)d)." +msgstr "Tähän kelpaa enintään %(limit_value)d merkkiä (nyt on %(show_value)d)." + +#: db/models/base.py:818 +#, python-format +msgid "%(field_name)s must be unique for %(date_field)s %(lookup)s." +msgstr "" +"\"%(field_name)s\"-kentän on oltava uniikki suhteessa: %(date_field)s %" +"(lookup)s." + +#: db/models/base.py:833 db/models/base.py:841 +#, python-format +msgid "%(model_name)s with this %(field_label)s already exists." +msgstr "%(model_name)s jolla on tämä %(field_label)s, on jo olemassa." + +#: db/models/fields/__init__.py:63 +#, python-format +msgid "Value %r is not a valid choice." +msgstr "Arvo %r ei kelpaa." + +#: db/models/fields/__init__.py:64 +msgid "This field cannot be null." +msgstr "Tämän kentän arvo ei voi olla \"null\"." + +#: db/models/fields/__init__.py:65 +msgid "This field cannot be blank." +msgstr "Tämän kenttä ei voi olla tyhjä." + +#: db/models/fields/__init__.py:70 +#, python-format +msgid "Field of type: %(field_type)s" +msgstr "Kenttä tyyppiä: %(field_type)s" + +#: db/models/fields/__init__.py:478 db/models/fields/__init__.py:879 +#: db/models/fields/__init__.py:988 db/models/fields/__init__.py:999 +#: db/models/fields/__init__.py:1026 +msgid "Integer" +msgstr "Kokonaisluku" + +#: db/models/fields/__init__.py:482 db/models/fields/__init__.py:877 +msgid "This value must be an integer." +msgstr "Tarvitaan kokonaisluku." + +#: db/models/fields/__init__.py:517 +msgid "This value must be either True or False." +msgstr "Tarvitaan tosi (True) tai epätosi (False)." + +#: db/models/fields/__init__.py:519 +msgid "Boolean (Either True or False)" +msgstr "Totuusarvo: joko tosi (True) tai epätosi (False)" + +#: db/models/fields/__init__.py:566 db/models/fields/__init__.py:1009 +#, python-format +msgid "String (up to %(max_length)s)" +msgstr "Merkkijono (enintään %(max_length)s merkkiä)" + +#: db/models/fields/__init__.py:594 +msgid "Comma-separated integers" +msgstr "Pilkulla erotetut kokonaisluvut" + +#: db/models/fields/__init__.py:608 +msgid "Date (without time)" +msgstr "Päivämäärä (ilman kellonaikaa)" + +#: db/models/fields/__init__.py:612 msgid "Enter a valid date in YYYY-MM-DD format." msgstr "Päivämäärän pitää olla muodossa VVVV-KK-PP." -#: db/models/fields/__init__.py:483 +#: db/models/fields/__init__.py:613 #, python-format msgid "Invalid date: %s" msgstr "Päivämäärä %s ei kelpaa" -#: db/models/fields/__init__.py:547 db/models/fields/__init__.py:565 +#: db/models/fields/__init__.py:694 msgid "Enter a valid date/time in YYYY-MM-DD HH:MM[:ss[.uuuuuu]] format." msgstr "Ajankohdan pitää olla muodossa VVVV-KK-PP TT:MM[:ss[.uuuuuu]]." -#: db/models/fields/__init__.py:601 +#: db/models/fields/__init__.py:696 +msgid "Date (with time)" +msgstr "Päivämäärä ja kellonaika" + +#: db/models/fields/__init__.py:762 msgid "This value must be a decimal number." msgstr "Tähän tarvitaan desimaaliluku." -#: db/models/fields/__init__.py:686 +#: db/models/fields/__init__.py:764 +msgid "Decimal number" +msgstr "Desimaaliluku" + +#: db/models/fields/__init__.py:819 +msgid "E-mail address" +msgstr "Sähköpostiosoite" + +#: db/models/fields/__init__.py:826 db/models/fields/files.py:220 +#: db/models/fields/files.py:331 +msgid "File path" +msgstr "Tiedostopolku" + +#: db/models/fields/__init__.py:849 msgid "This value must be a float." msgstr "Tämän luvun on oltava liukuluku." -#: db/models/fields/__init__.py:746 +#: db/models/fields/__init__.py:851 +msgid "Floating point number" +msgstr "Liukuluku" + +#: db/models/fields/__init__.py:910 +msgid "Big (8 byte) integer" +msgstr "Suuri (8-tavuinen) kokonaisluku" + +#: db/models/fields/__init__.py:939 msgid "This value must be either None, True or False." msgstr "Tähän tarvitaan tyhjä (None), tosi (True) tai epätosi (False)." -#: db/models/fields/__init__.py:849 db/models/fields/__init__.py:863 +#: db/models/fields/__init__.py:941 +msgid "Boolean (Either True, False or None)" +msgstr "Totuusarvo: joko tosi (True), epätosi (False) tai ei mikään (None)" + +#: db/models/fields/__init__.py:1032 +msgid "Text" +msgstr "Tekstiä" + +#: db/models/fields/__init__.py:1048 +msgid "Time" +msgstr "Kellonaika" + +#: db/models/fields/__init__.py:1052 msgid "Enter a valid time in HH:MM[:ss[.uuuuuu]] format." msgstr "Ajan täytyy olla muodossa TT:MM[:ss[.uuuuuu]]." -#: db/models/fields/related.py:792 +#: db/models/fields/__init__.py:1136 +msgid "XML text" +msgstr "XML-teksti" + +#: db/models/fields/related.py:755 +#, python-format +msgid "Model %(model)s with pk %(pk)r does not exist." +msgstr "Mallia %(model)s pääavaimella %(pk)r ei ole olemassa." + +#: db/models/fields/related.py:757 +msgid "Foreign Key (type determined by related field)" +msgstr "Vierasavain (tyyppi määräytyy liittyvän kentän mukaan)" + +#: db/models/fields/related.py:879 +msgid "One-to-one relationship" +msgstr "Yksi-yhteen relaatio" + +#: db/models/fields/related.py:939 +msgid "Many-to-many relationship" +msgstr "Moni-moneen relaatio" + +#: db/models/fields/related.py:959 msgid "" "Hold down \"Control\", or \"Command\" on a Mac, to select more than one." msgstr "" " Pidä \"Ctrl\"-näppäin (tai Macin \"Command\") pohjassa valitaksesi useita " "vaihtoehtoja." -#: db/models/fields/related.py:870 +#: db/models/fields/related.py:1020 #, python-format msgid "Please enter valid %(self)s IDs. The value %(value)r is invalid." msgid_plural "" @@ -3925,82 +4655,58 @@ msgid_plural "" msgstr[0] "Syöttämäsi %(self)s-tunniste %(value)r ei kelpaa." msgstr[1] "Syöttämäsi %(self)s-tunnisteet %(value)r eivät kelpaa." -#: forms/fields.py:54 +#: forms/fields.py:65 msgid "This field is required." msgstr "Tämä kenttä vaaditaan." -#: forms/fields.py:55 -msgid "Enter a valid value." -msgstr "Syötä oikea arvo." - -#: forms/fields.py:138 -#, python-format -msgid "Ensure this value has at most %(max)d characters (it has %(length)d)." -msgstr "Tähän kelpaa enintään %(max)d merkkiä (nyt niitä on %(length)d)." - -#: forms/fields.py:139 -#, python-format -msgid "Ensure this value has at least %(min)d characters (it has %(length)d)." -msgstr "Tähän tarvitaan vähintään %(min)d merkkiä (nyt on vain %(length)d)." - -#: forms/fields.py:166 +#: forms/fields.py:195 msgid "Enter a whole number." msgstr "Syötä kokonaisluku." -#: forms/fields.py:167 forms/fields.py:196 forms/fields.py:225 -#, python-format -msgid "Ensure this value is less than or equal to %s." -msgstr "Tämän luvun on oltava enintään %s." - -#: forms/fields.py:168 forms/fields.py:197 forms/fields.py:226 -#, python-format -msgid "Ensure this value is greater than or equal to %s." -msgstr "Tämän luvun on oltava vähintään %s." - -#: forms/fields.py:195 forms/fields.py:224 +#: forms/fields.py:225 forms/fields.py:245 msgid "Enter a number." msgstr "Syötä kokonaisluku." -#: forms/fields.py:227 +#: forms/fields.py:248 #, python-format msgid "Ensure that there are no more than %s digits in total." msgstr "Tässä luvussa voi olla yhteensä enintään %s numeroa." -#: forms/fields.py:228 +#: forms/fields.py:249 #, python-format msgid "Ensure that there are no more than %s decimal places." msgstr "Tässä luvussa saa olla enintään %s desimaalia." -#: forms/fields.py:229 +#: forms/fields.py:250 #, python-format msgid "Ensure that there are no more than %s digits before the decimal point." msgstr "Tässä luvussa saa olla enintään %s numeroa ennen desimaalipilkkua." -#: forms/fields.py:288 forms/fields.py:863 +#: forms/fields.py:311 forms/fields.py:826 msgid "Enter a valid date." msgstr "Syötä oikea päivämäärä." -#: forms/fields.py:322 forms/fields.py:864 +#: forms/fields.py:339 forms/fields.py:827 msgid "Enter a valid time." msgstr "Syötä oikea kellonaika." -#: forms/fields.py:361 +#: forms/fields.py:365 msgid "Enter a valid date/time." msgstr "Syötä oikea pvm/kellonaika." -#: forms/fields.py:447 +#: forms/fields.py:423 msgid "No file was submitted. Check the encoding type on the form." msgstr "Tiedostoa ei lähetetty. Tarkista lomakkeen koodaus (encoding)." -#: forms/fields.py:448 +#: forms/fields.py:424 msgid "No file was submitted." msgstr "Yhtään tiedostoa ei ole lähetetty." -#: forms/fields.py:449 +#: forms/fields.py:425 msgid "The submitted file is empty." msgstr "Lähetetty tiedosto on tyhjä." -#: forms/fields.py:450 +#: forms/fields.py:426 #, python-format msgid "" "Ensure this filename has at most %(max)d characters (it has %(length)d)." @@ -4008,68 +4714,37 @@ msgstr "" "Tähän tiedostonimeen kelpaa enintään %(max)d merkkiä (nyt niitä on %(length)" "d)." -#: forms/fields.py:483 +#: forms/fields.py:461 msgid "" "Upload a valid image. The file you uploaded was either not an image or a " "corrupted image." msgstr "" "Kuva ei kelpaa. Lähettämäsi tiedosto ei ole kuva, tai tiedosto on vioittunut." -#: forms/fields.py:544 -msgid "Enter a valid URL." -msgstr "Syötä oikea URL-osoite." - -#: forms/fields.py:545 -msgid "This URL appears to be a broken link." -msgstr "Tämä URL-osoite on rikkinäinen linkki." - -#: forms/fields.py:625 forms/fields.py:703 +#: forms/fields.py:584 forms/fields.py:659 #, python-format msgid "Select a valid choice. %(value)s is not one of the available choices." msgstr "Valitse oikea vaihtoehto. %(value)s ei ole vaihtoehtojen joukossa." -#: forms/fields.py:704 forms/fields.py:765 forms/models.py:991 +#: forms/fields.py:660 forms/fields.py:722 forms/models.py:989 msgid "Enter a list of values." msgstr "Syötä lista." -#: forms/fields.py:892 -msgid "Enter a valid IPv4 address." -msgstr "Syötä kelvollinen IPv4-osoite." - -#: forms/fields.py:902 -msgid "" -"Enter a valid 'slug' consisting of letters, numbers, underscores or hyphens." -msgstr "" -"Tässä voidaan käyttää vain kirjaimia (a-z), numeroita (0-9) sekä ala- ja " -"tavuviivoja (_ -)." - -#: forms/formsets.py:271 forms/formsets.py:273 +#: forms/formsets.py:293 forms/formsets.py:295 msgid "Order" msgstr "Järjestys" -#: forms/models.py:367 -#, python-format -msgid "%(field_name)s must be unique for %(date_field)s %(lookup)s." -msgstr "" -"\"%(field_name)s\"-kentän on oltava uniikki suhteessa: %(date_field)s %" -"(lookup)s." - -#: forms/models.py:381 forms/models.py:389 -#, python-format -msgid "%(model_name)s with this %(field_label)s already exists." -msgstr "%(model_name)s jolla on tämä %(field_label)s, on jo olemassa." - -#: forms/models.py:581 +#: forms/models.py:550 #, python-format msgid "Please correct the duplicate data for %(field)s." msgstr "Korjaa kaksoisarvo kentälle %(field)s." -#: forms/models.py:585 +#: forms/models.py:554 #, python-format msgid "Please correct the duplicate data for %(field)s, which must be unique." msgstr "Ole hyvä ja korjaa uniikin kentän %(field)s kaksoisarvo." -#: forms/models.py:591 +#: forms/models.py:560 #, python-format msgid "" "Please correct the duplicate data for %(field_name)s which must be unique " @@ -4078,50 +4753,50 @@ msgstr "" "Please correct the duplicate data for %(field_name)s which must be unique " "for the %(lookup)s in %(date_field)s." -#: forms/models.py:599 +#: forms/models.py:568 msgid "Please correct the duplicate values below." msgstr "Korjaa allaolevat kaksoisarvot." -#: forms/models.py:855 +#: forms/models.py:842 msgid "The inline foreign key did not match the parent instance primary key." msgstr "Liittyvä perusavain ei vastannut vanhemman perusavainta." -#: forms/models.py:918 +#: forms/models.py:908 msgid "Select a valid choice. That choice is not one of the available choices." msgstr "Valitse oikea vaihtoehto. Valintasi ei löydy vaihtoehtojen joukosta." -#: forms/models.py:992 +#: forms/models.py:990 #, python-format msgid "Select a valid choice. %s is not one of the available choices." msgstr "Valitse oikea vaihtoehto. %s ei löydy vaihtoehtojen joukosta." -#: forms/models.py:994 +#: forms/models.py:992 #, python-format msgid "\"%s\" is not a valid value for a primary key." msgstr "\"%s\" ei kelpaa perusavaimeksi." -#: template/defaultfilters.py:767 +#: template/defaultfilters.py:781 msgid "yes,no,maybe" msgstr "kyllä,ei,ehkä" -#: template/defaultfilters.py:798 +#: template/defaultfilters.py:812 #, python-format msgid "%(size)d byte" msgid_plural "%(size)d bytes" msgstr[0] "%(size)d tavu" msgstr[1] "%(size)d tavua" -#: template/defaultfilters.py:800 +#: template/defaultfilters.py:814 #, python-format msgid "%.1f KB" msgstr "%.1f Kt" -#: template/defaultfilters.py:802 +#: template/defaultfilters.py:816 #, python-format msgid "%.1f MB" msgstr "%.1f Mt" -#: template/defaultfilters.py:803 +#: template/defaultfilters.py:817 #, python-format msgid "%.1f GB" msgstr "%.1f Gt" @@ -4330,7 +5005,7 @@ msgstr "marras" msgid "Dec." msgstr "joulu" -#: utils/text.py:128 +#: utils/text.py:130 msgid "or" msgstr "tai" @@ -4384,37 +5059,80 @@ msgstr "%(number)d %(type)s" msgid ", %(number)d %(type)s" msgstr ", %(number)d %(type)s" -#: utils/translation/trans_real.py:399 +#: utils/translation/trans_real.py:512 msgid "DATE_FORMAT" msgstr "j.n.Y" -#: utils/translation/trans_real.py:401 -msgid "TIME_FORMAT" -msgstr "G:i" +#: utils/translation/trans_real.py:513 +msgid "DATETIME_FORMAT" +msgstr "j.n.Y H:i" -#: utils/translation/trans_real.py:417 +#: utils/translation/trans_real.py:514 +msgid "TIME_FORMAT" +msgstr "H:i" + +#: utils/translation/trans_real.py:535 msgid "YEAR_MONTH_FORMAT" msgstr "N Y" -#: utils/translation/trans_real.py:418 +#: utils/translation/trans_real.py:536 msgid "MONTH_DAY_FORMAT" msgstr "N j, Y" -#: views/generic/create_update.py:114 +#: views/generic/create_update.py:115 #, python-format msgid "The %(verbose_name)s was created successfully." msgstr "%(verbose_name)s luotiin onnistuneesti." -#: views/generic/create_update.py:156 +#: views/generic/create_update.py:158 #, python-format msgid "The %(verbose_name)s was updated successfully." msgstr "%(verbose_name)s päivitettiin onnistuneesti." -#: views/generic/create_update.py:198 +#: views/generic/create_update.py:201 #, python-format msgid "The %(verbose_name)s was deleted." msgstr "%(verbose_name)s on poistettu." +#~ msgid "One or more %(fieldname)s in %(name)s: %(obj)s" +#~ msgstr "Yksi tai useampi %(fieldname)s kohteessa %(name)s: %(obj)s" + +#~ msgid "One or more %(fieldname)s in %(name)s:" +#~ msgstr "Yksi tai useampi %(fieldname)s kohteessa %(name)s:" + +#~ msgid "Old password:" +#~ msgstr "Vanha salasana:" + +#~ msgid "Relation to parent model" +#~ msgstr "Relaatio emomalliin" + +#~ msgid "Add user" +#~ msgstr "Uusi käyttäjä" + +#~ msgid "Comment moderation queue" +#~ msgstr "Kommenttien valvontajono" + +#~ msgid "No comments to moderate" +#~ msgstr "Ei valvottavia kommentteja" + +#~ msgid "Email" +#~ msgstr "Sähköposti" + +#~ msgid "Authenticated?" +#~ msgstr "Kirjautunut?" + +#~ msgid "IP Address" +#~ msgstr "IP-osoite" + +#~ msgid "Date posted" +#~ msgstr "Lähettämispvm" + +#~ msgid "yes" +#~ msgstr "kyllä" + +#~ msgid "no" +#~ msgstr "ei" + #~ msgid "DATE_WITH_TIME_FULL" #~ msgstr "N j, Y, P" @@ -4502,9 +5220,6 @@ msgstr "%(verbose_name)s on poistettu." #~ msgid "deletion date" #~ msgstr "poistamispäivä" -#~ msgid "moderator deletion" -#~ msgstr "valvojan poisto" - #~ msgid "moderator deletions" #~ msgstr "valvojien poistot" @@ -4641,9 +5356,6 @@ msgstr "%(verbose_name)s on poistettu." #~ msgid "The URL %s is a broken link." #~ msgstr "Osoite %s on rikkoutunut tai väärä linkki." -#~ msgid "Enter a valid U.S. state abbreviation." -#~ msgstr "Syötä USA:n osavaltion lyhenne." - #~ msgid "This field must match the '%s' field." #~ msgstr "Arvon täytyy olla sama kuin kentässä '%s'." @@ -4656,9 +5368,6 @@ msgstr "%(verbose_name)s on poistettu." #~ msgid "This field must be given if %(field)s is not %(value)s" #~ msgstr "Tämä kenttä pitää täyttää, jos %(field)s ei ole %(value)s." -#~ msgid "Duplicate values are not allowed." -#~ msgstr "Samaa arvoa ei voi käyttää kahdesti." - #~ msgid "This value must be between %(lower)s and %(upper)s." #~ msgstr "Tämän luvun on oltava välillä %(lower)s–%(upper)s." diff --git a/django/conf/locale/fi/LC_MESSAGES/djangojs.mo b/django/conf/locale/fi/LC_MESSAGES/djangojs.mo index 83b535c8eff12fa70f48eefc00ada0ee1ec94f88..159f37e515afefe03e086d66fa58b654bda7ed6b 100644 GIT binary patch delta 217 zcmcb|bC+kroqBIZ28K3f1_mYu28K&43=BL#`YMp-1JaLxG$)Y$2&CD8^lu<71f-c+ zA@X8CnhVHR1=0dQ+5kuc5rZR;0I7Ee(pf;-A4r4D-vy=j0%@R?3

l>=@X9j3Yn+ zULbuMNXrB1n?M?5z)v9U1f&^(ia-u=0n!{m+7Czrr5M6D&t#m*#93UKms(n^mzKHN IhDC`90Dv$Vng9R* delta 218 zcmXZWFAD-e5QpL4t#|%8RuPL)Fc<~1U^oyAf<~+1is8y>wwbN>IW7u@;FdhAJ?f@CC}eaYelYxu+pzOaNJY@i?f>P-xJcd(8<\n" +"Last-Translator: Ville Säävuori \n" "Language-Team: Django I18N \n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n"