From daa467d79ec7b40e376294eabc51222a67690181 Mon Sep 17 00:00:00 2001 From: Joseph Kocherhans Date: Thu, 17 Jan 2008 18:12:24 +0000 Subject: [PATCH] newforms-admin: Merged from trunk up to [7021]. git-svn-id: http://code.djangoproject.com/svn/django/branches/newforms-admin@7022 bcc190cf-cafb-0310-a4f2-bffc1f526a37 --- AUTHORS | 2 + django/conf/locale/ca/LC_MESSAGES/django.mo | Bin 62260 -> 62434 bytes django/conf/locale/ca/LC_MESSAGES/django.po | 583 +- django/conf/locale/hr/LC_MESSAGES/django.mo | Bin 13458 -> 31812 bytes django/conf/locale/hr/LC_MESSAGES/django.po | 5052 ++++++++++------- django/conf/locale/hr/LC_MESSAGES/djangojs.mo | Bin 367 -> 1607 bytes django/conf/locale/hr/LC_MESSAGES/djangojs.po | 63 +- django/conf/locale/ja/LC_MESSAGES/django.mo | Bin 58959 -> 71127 bytes django/conf/locale/ja/LC_MESSAGES/django.po | 1743 ++++-- django/conf/locale/tr/LC_MESSAGES/django.mo | Bin 38712 -> 40120 bytes django/conf/locale/tr/LC_MESSAGES/django.po | 62 +- django/conf/locale/tr/LC_MESSAGES/djangojs.po | 3 - django/contrib/admin/media/js/urlify.js | 2 +- django/contrib/auth/create_superuser.py | 5 +- django/contrib/localflavor/ca/forms.py | 4 +- django/contrib/localflavor/it/it_province.py | 2 +- django/contrib/sessions/backends/db.py | 16 +- django/contrib/sessions/backends/file.py | 20 +- django/core/mail.py | 60 +- django/core/management/sql.py | 2 +- django/db/backends/oracle/base.py | 23 +- django/db/models/fields/__init__.py | 6 +- django/newforms/fields.py | 10 +- django/newforms/forms.py | 8 +- django/template/__init__.py | 171 +- django/template/context.py | 6 +- django/template/debug.py | 97 + django/template/defaultfilters.py | 11 +- django/template/defaulttags.py | 44 +- django/views/debug.py | 2 +- docs/design_philosophies.txt | 2 +- docs/distributions.txt | 20 +- docs/django-admin.txt | 4 +- docs/localflavor.txt | 4 +- docs/middleware.txt | 11 + docs/shortcuts.txt | 4 +- docs/sites.txt | 6 +- docs/syndication_feeds.txt | 2 +- docs/templates.txt | 9 +- docs/templates_python.txt | 6 +- tests/modeltests/m2o_recursive/models.py | 2 +- tests/modeltests/model_forms/models.py | 81 + tests/regressiontests/backends/models.py | 28 + tests/regressiontests/forms/fields.py | 33 +- tests/regressiontests/forms/localflavor/ca.py | 6 +- tests/regressiontests/middleware/models.py | 1 + tests/regressiontests/middleware/tests.py | 28 +- tests/regressiontests/templates/filters.py | 3 + tests/regressiontests/templates/tests.py | 2 + 49 files changed, 5384 insertions(+), 2865 deletions(-) create mode 100644 django/template/debug.py create mode 100644 tests/regressiontests/middleware/models.py diff --git a/AUTHORS b/AUTHORS index 10a03b920c..6807e0e571 100644 --- a/AUTHORS +++ b/AUTHORS @@ -70,6 +70,7 @@ answer newbie questions, and generally made Django that much better: Andrew Brehaut brut.alll@gmail.com Jonathan Buchanan + Can Burak Çilingir Trevor Caira Ricardo Javier Cárdenes Medina Graham Carlyle @@ -175,6 +176,7 @@ answer newbie questions, and generally made Django that much better: jpellerin@gmail.com junzhang.jn@gmail.com Antti Kaihola + Bahadır Kandemir Nagy Károly Erik Karulf Ben Dean Kawamura diff --git a/django/conf/locale/ca/LC_MESSAGES/django.mo b/django/conf/locale/ca/LC_MESSAGES/django.mo index a39a4551bb62dc3a0e158fa9cbb41e4f2e5e5fdb..427ea9680610142d1e4e9eebbf4f2f11b795ef06 100644 GIT binary patch delta 18290 zcmY-12YgQF-^cMIF_Kgw5+uY(B*aKUj2I~rBle~ZYSt)f25nV)+iJGlR;$#g+NEMv z(W2BUMeW@hRjbBdTWvj`Z_dx_3AJ9pIcY`E@w^@gwKVo3H`4p&cK z$0>|WA{=LOcE=f!q*BLO-oSBYW^^PxV6zgFH ztcY);#$Rpj$5_YlIM>~b6V$|UO4A?-b72?r4RavIX&}@>mZApSX7Op%0`6ire1aOU zeN)E?$Fb;x^D!qb%+ljH%gC^K=S$3u>#e~~)PQ@@ACF)TJY!x$E%X|y-5u08|3kI^ z+v>A7bK~5olPZ8}UjcJ6zmrTR7;9qzY>nDsAJl{+Q7ayAPPOux_#Wk-U?7HbKXmjZ zQAb`KHBo=$jyi9l#uCTFJWa2!c^2eEzES(Lb|lz{%a+@tfC+477WFrI2vPc5o*A_R(}k&<4dRs?pXYf z)d#e6oV=8Wp>9QK)Pxny>Q!Q?Ve-+s$DtMf;?5p=$_R=4crK|kQS(kyI?53iRv&CHSh$~&SzsN zE<^2j8)}^IQ4ifg)PzS-{m!7qxrvPLaqf}%l7gqm?Q>T0=~7KG_QJ|--2vyL-ijrt z9d1QE0|&7XoQ!r1!Bh{)uUr@G2i(I20AH#(MY=6R}!4ZLlx$Kj#zvD5UrQA(=1?YUem9SQ543 zUKoyVVMY81OXD6agLkn47HscM+ywd1bH-pY9z`uAcL(=`TB8=&ALDT;dU!sZ<76VR zg4t>ilvCFVkmY+ZD?pG z&R;uRK|vARg*u7LSP1__9t$V5vpY~POd%eHYPSoc@hocK|4<)bAzj@1SS(Lm3w2@x zF+a{jeXe}f#pABzBn3L!fUfRNE1`DS9<`&h3-OCHu81r;UCU*dYx9GR=g2)A_q|?b{&V|GgSLw z-Q594p)c_Vs0B>1@>!_yK1DsuU!dmothR~`RP)2+Na<{<8m8fXZr-3W6G zs{bUbpNZPQr{+?uOZ+8f*ZcpFj0X7Ae1;l0XHR#aAk0A=j@o%qRDEfyPsIAf$*6W? zP#;VaQLphFd=HnQ`jzPAJ`3>}%KT1kGV1UOszZ0wYd6H4W-iCllGs{Dd^6>}2bKppK}^us?f7iR12 z#{Q^@L(FhgeNj~ZlBf;Fqx#qA&H4M2NuxkV+X5ALK%Gbr)BqW%4)3Bq`^Q@SY}ACG zqfTTcs@-H@2`t)&s1_Yocj6=1ni5jS$#f?xu zGg_i1>VyH<6EkoSs{R^k;s+RuPG5JtQXb2cLk*B*)!g{EqZGxq-Eykk< z^?|eo)qXFk{Q=ZCKUsX<;$JMj>*{eHlhMHcpg-p5=k7cY)+Nq|+F?7?0zX8xn}dP4 z$l|rA`mLy)e}}noAL@hW1nL<%g$3{yChPsr*556tfn}*^gZe-kiGlc`IUm(=6>4X@ zto$%)LFZ7n>>BE`{uZj;Gt>qH2DpZz+7-rJdjF%WptK5z6U-#k0%~GOY=Q}xf%;*z z7`332R(=Py^TGq&iHf6cMOlk0pz4!R^Q59jD{M$cN7M#`@Kw}`d*Vwtz~Xl?n0PGa z!C9yuN=vaQev9gV33UQ@Q6FT!gWMA;f*LQ@tT>4C*Gg(ppq zpM_pnf!K>W`n@;?AL9gkXPD!>j@jOF7uExHZHe8`E)Cv>mj3^F2;Je z7W3j`)Iho3c26bxLn1IA%ECZXCjN1fa&s9VqpgRvimC=QJFD+*<^51k^-zn4TRa-I;0dUQbvo*EVmUIt$5~BA z9XFyD@HH01BdCYvH`ERvqn?p}P$w2J+RGyt z_4WRjeb@btmVtUbR-*=7kHvATm7hlqd=)j(ZH&N2s09U&a2HerRbL)8UR8^0qE0l; zY>q*C|I^86g}qQ6H(?0wK<(fsE5C+X*d5eD9-$`q4>fRhzGbL95cN=o;mi0guEi~= z_HVrJ&eI<~dPs(m(LJ4jI^r2v1Q((P-hsLm`%w4pIBFrMPz%0jUPnEAcTw&CMNR0> zF14^csD1^_NDt?)dml?dO^m}r*cV^J@z@!E!33-`(tUpiV|n5o<~`KI6*Y%m%l7d#KO1{tK%_jj)7y`Uo<+R>PMm4FTfIb0LSBf zi{BdSKE(5}E#;fB90rbaoJv>&*W+Lh8SS_Py|sfB48vDZA3Osv2^XU#I)g>=85YN) z6WpDpVoBo8SOv#p6z)LX+RK=ZzhgtJ`+@t3>6u1GE4z*{SYV>tF&Q;cM=XXTup)kn zx)n#U6h6afEH%l!g-tMxcrxmtK8F4nHQ9Z3%3?0!a!9$ysY1q&f>g|jjW9d5#2okv zs>5p*cSjA_$KoNVe#5PN6srAXEBB(_qEArsd};NYG3)pLon$n?kEo~rXY|EiPy^jS zy^i-R_L<@i6o9$~p{VvrsD)KW^{b2RunETE7pQhWqHe`8%+B-Yl%47hSROS%H7tvD zPy-D>E$}VW4&F!YXaefi&BFjZh&s8G_!6GO+;{`^S^o&tKj$>}HO+&bUKA81ll9PG zPvRY@m6rI>T~KLM$BL+1@-hZtZPWxUF%>(Z9@d3e3QwW>IUl(T@JGcFsEx*a#Qj$$ zfdYM$Rz*$R1_Lo2brL;M@9zxM>$eW;;9=~Dd8g~U94Cc3iB(tL}kqt#~AAfQjZz)UEo=;uWX`Za^(;kNJan2(_`JsEwXSjrSY+ zGr#l58vK`4K;`E*o=S*RT@Hdmu|unE;}m$?@;-~rSGhfxbWhT7pdRKM$}6MlgD*`lw$8b2I8 z$`rSPI5WviF&mj}%uc9@-#|^+7d62U)P$o^<4(i;I2U8^OVlksj#}WE*_^+2^eY8A z;+v=wxQ`m>U(^KtbKH(0sGWveTm;oW8nvKURR1yG68xOo=! zx?Vv}z~lTuM)&3^>Yn?5=61|)Mxa(2g*xKWs9RA1HBc3+ua7#?<`|9bP_OBGs0BL=wL67c zz-82eZdm;t)X6+Xk0#2#*nK#Pq6SPuJ*BNsx27|yLqCg0Sp6i_!snnCxEeL#CUd*F z$2^Ey$T8FcPcP>DRdB^BZlDIbgWBN}i+z^3Cy^U<^hHoRE{|$o6*W$6iyL6p1~82B z&Zvj^Ei0djI@wQ_aQ>QT6$RSqCLDr$Py<%`+&z(6sFP}pYTpC(5DmnTO?P&>Ma+Q2Q; z#D8E>%(mQJXe8=$p$w|L0ct_LFjnvX5Hckw_!PB(U8tk}0dwJ1Ou$=M1q-flzht&V z?c@XV9O_rLgq7}p>*Dx*O_VPezTu5_N(t}sNz{UC zZsh#q$@HN>JDrPla39vkmo~ZgxHS$S{sLdZ0-N2ZzBuaPi$x8bfcdZ!=D`fBAALCtA)kj!d!i@Kj(SVgvJE>_E^-vQwwK(1CyI9-{_1+J#@*(EC=4jN!6Hz;zjzKsd z)o(RwL7uP3=(XF1YWN*$;=@*c8a2>G)B>-YcTfX7GXFzu#P4g@yjX*{5NiB%RR2z> z1@u71^*DXpj58S3a5!oKBdvTgY9cSz$N8vs*Dw%&$6)*mhhxAtw|*SzBYHCGRxU=J zz!p^deON^A|LLp@|8B?3_l^5E9Tl)34SQk;jzsOyi#m}{Q49IpT#4G*I*T`=+HXVc zd=Iw4gV-D+x6@wl|3GDMD5~Lb)Q(4?2AFK+GcBHnSreNpQ43m!>c0i`^zTIVKY|+X zH0orpT6_ny{{HU?84cjK!|f1^d5H_6j<_sp!fL3KsD&E16>7i^R^QWn6V-1pYC$8- z38;CdnX`9r{`vq}K!GOQVGWO>PUIA7C+AW3@-}J#zB}D-zXfnPaT&~w$59hs#wfgt zT0ro(u3@MJ6g5kJ>v1PapgqBh|B zo%@ODhgx7sRDDI%$t8Qp_>xIO4bTX+fR>ny?J*u_V^ z2rPv0*ccmNVVsFE_!aUxdYqGFbkDAt4^j6z+a7mk;i&p()CnbGcC3o}tgnGOfmWy; zb~JlpcH#l34Gpn)gvFz>HStu`0%xI4XdxEEC8)m{cXpG}NAF?t3~FcBP&@zIV!yraCs`4*B1TZ(5TmdM z>LHte`lOqQx`j(H2d+Vln~7T359ra(j*`*C_A91iQQt2lt!I zDU2un7jMcsnWQ2jS} z$f&~}%!P+BJN}H?$yuwvX7zWi{(lxfwb=J3cfo$Bw z^C}swWDshFqc9LZz}z?+^^v>8>NlYV+>UCu7d7AsY=if)A=W$QewF(WTM{3~dRXGP zy*#ZZk&d{r{ef8s0#C4%|oGyML_w8EVCTr`!_?Mm>c2(HCP-6P7|fwB;-6zVM#vczAodiH1SQ;4~vlV?gGkTJaIRigCAiT zEOo)1urJX{d1vUUJ`#I;e%Vzr^{!OlBAbwJ;Mk(L>Zj7j@Y^ zsyY}+{03^EiC6l#@G}q;WSkJZmfsDqi#{+ukLR&@1quQ27T~X%!N15AMc@_k-tpmn)@tya*@$P zk{i__#3~A*Iu^qmSQ<4zIV(>>wNJ6~2B_DwIqG5VX7znBFL4H{|2Wj!Fa=qt$C*z? z11&@iupG1FHq=1hqK;}m`r>0N{|mKapX>bX2L_@}vOB8XcdQER)KYW78*yARr zfs4?G`JMc~xgEk$6GWjF5{DX~BId^0n2OC&15HQ0c8Ad)pP@d={cpMB6-1R6H{(zz zl!SUl($S+19mo{LzUCy<>#+jc;`cZVBYt-ux*4dQU%~|Z9h+gH+wM1;-dK)!B5EUB zQ49IjJb<}~Pu%AGwSe>1@HXlwAEG`Yv)^&=WeDabE`S;^+AM>*6^W>$PeMII4KN3G zKuy#Yvte&6fPGQV$mlzqf7Zi7fjUk??QA}3#VarXGcDeMYWD+%;yKiU?_qv)?z%@` z05xtgRQqVuMw2iI)36A(^^nmHGEfiO+o+vPMGf#7Y6nYD3tEM0zY#U@*QoXfQT;Dq zDSUuBsfc@SyW*&YR7CYpL!FSPF_|DTEm1q|V)jLy#4xKLjRlFPqZYQxTx({cPGmD` zyn`5qXHgq?fI6YSQ40;epEZuhDdA?E(x}%a9<|dX)ICo@?WC#M2DOk5SO|xr+JA&v z*e9ray};sys0Dm(@oLn#>oAYr|LtV7;=`yNoJS3GAN86%LJjx?b##BBPUb(!Vp8+seH;1Q^ejzv!hnYmQ>gbxYw?ju!Y1-mIMOM`LPl(G`mp$Imo zY?{SuFem9plCM_I^&9yqn1Ib_+noFk^14;}(vqKiEy{K2)6}1MY#aW_q%eU&T2UB+ z-(o0!h|jMzw5deur2$DFl5~wBt;ou`e`vhly_Kt!Es~89?hqZMS0|FL{iHw0$9dnY z5?gH^wV_$%d{wvc_7Tq{btmm6y+_(ex9l zo)Tq^SVvh>inXIC>ni6>ts3h2iqiTo)HJ1+t^uU;3O=D(Jkj&(6tS*i-uczSJl$#klJ!w(0czi~7ME4Pr7!GtX;X&sJTJ7( zq`brnaV6@*`BhZ{|}7^Ny+>>S;)?%0#VI!&My*F!DW%D^b6YcrK|pNuN6xsCz_yJV_tf z*(KMvm`FNmvC7)Lkk8IoS5?T>n0#tBZfzJ14!zK55|#6qU;|~zR{oIq2&uL=H94%u zQ%c7W>B_+{9^$LS`qHSYD`mf6C(>gTaHUYD>jT>6BF!Zqgc+pgR}IGSr`=0<&$~T2 zLVL~n_fGx1SCXSWovHhdk`vbFICiuAHTtY2Ul|XPo?msX{xk*rl9csD^m*N%)O8_M zd!c=K%a62vYP-eFyYG%ZZa=rmBlrm&sv^IkW&P@P1J_eFi`0u$lts_7_78|(BaXz+ zNYAfIWR8$ZQ`Zai^$)j zC?+LanSO?h^0urIk*$WeUyU$N66O5J_N}D`ykF}WcOIq=5$Z3tQkV=woY0Do@zrVa!YDRcssPPiLLe2Zwid2OB zRm%60Di9Z@=T4HYXv(g+S?6!+^zUSJwW53kmZ$Gv^rie1DIew8uq8gfqR8ZQR}$jX zrScsrXHi&=!b{$%wIV#DDTyK)Vtq#9H>AC!lcayBZ-~#Y9<-fFSye{UwS;^@^7_KE z66=$yxl=j=sB26rV{MyQd2h-}XZ3cxu_=Lh(}_FMW-4W0lm7D7ONsXUYrWFUZPYxZ zA1Ob>)U)zbEaTmp8sV8tZY({%r=_kBuqA0F<-71A z=@w}bsT%e58KnWfL);#F;xW=^3KvuG z{A%FsT|2^4n5lAF={9Wiyc#Re>jY)R$fuH8&{kIkTuAvu>b;}{^19C1EFTfSN&YwN zN_ltkv7|f1&qx9E??9aHoAu^p^>tQL@B!H=sK2V(LRv?vO*-H$T_@V}5jAOaoq(rF zxk&{{SzpDW5qW*9)|Ey+FDXg&FI-QUKA5Cym({&aJ|E+5Bz~V1M_yMx7pF7r!?Ur} zEo81(;dC1QZ38@}d>Q45bbQ_WN1f1)5msZ3v%b`CCV17#^U`uVy(&`XLw*|h=T{f< zJ!zNqHyl`+6i=m}EvtaHYu(U(KT)!sn#H)69+Sv##6L-`X*rcRj=C6P{qFM}@$+jq znI9>Cf&)ppXn&Hp8Es~hR#SF}r0Wvp-+QmrjrMe;)pWPeiMF-$v-nlwrlhxs=hI^v z?y$OZ#2YNX1Sb&3TK|i-s@gBCZWC?F(I%cYORXQ(Wt>p{EK9mfWeO>Zd?_19?amVW zQGU_8rd~w5H;7tL`Zc~xtIGHnaSha8WdzVNgnS73=F~SLexLkd$^!8U@lotdilM$S zzD`{?Z&X?_J`GaSiq#mZnDSWCPvrB_=Ncvw>ncx5B7IEiL-}@me*Nd2pB7Ph5v4gO zdW`e%ZG3*+U^HFlDXZ#cozb|*dnYZ-^A@Gw(&CiWoF+e*vj1Tz)D>+bG$%ev{s$aJ z>QBBRdphSfa|RQq66^Yu`je!olwBw38b$h@RHsW7uxM$4e^7sik5oe|l8zz}!z%s!*06!5E1EwVyl^$JzJ|ILZ?t5`lVF|m5Z zs+lF{_7C-sOl`)MnwskUYJCxJ;njJ(2UdOUEx*>!du{bLpWO?+i`JC&uG*N_J8xq{ z?}9I1@^)Gmn0aMQ%^co5s{_41t}ozikr|X3pV{6g^Vf~}LcP(4!b6AlXOS#iON|`1 zd!cq2b*NBYw>)bHRBHW^>!UM6_74aS<6I)sd%wARIZKb+y&}W9WsW$rrQrVoWbBL+ delta 18215 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 Uy`8@b$=di$O1`YPvsvN)2hS36pa1{> diff --git a/django/conf/locale/ca/LC_MESSAGES/django.po b/django/conf/locale/ca/LC_MESSAGES/django.po index 2929ea114e..64f796bc12 100644 --- a/django/conf/locale/ca/LC_MESSAGES/django.po +++ b/django/conf/locale/ca/LC_MESSAGES/django.po @@ -5,8 +5,8 @@ msgid "" msgstr "" "Project-Id-Version: django\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2007-12-02 22:26+0100\n" -"PO-Revision-Date: 2007-12-02 22:32+0100\n" +"POT-Creation-Date: 2007-12-29 21:28+0100\n" +"PO-Revision-Date: 2007-12-30 11:38+0100\n" "Last-Translator: Marc Fargas \n" "Language-Team: \n" "MIME-Version: 1.0\n" @@ -1691,41 +1691,42 @@ msgstr "demà" msgid "yesterday" msgstr "ahir" -#: contrib/localflavor/ar/forms.py:30 contrib/localflavor/ar/forms.py:38 +#: contrib/localflavor/ar/forms.py:28 msgid "Enter a postal code in the format NNNN or ANNNNAAA." -msgstr "Introdueixi un codi postal en el format NNNN or ANNNNAAA." +msgstr "Introdueixi un codi postal en el format NNNN o ANNNNAAA." -#: contrib/localflavor/ar/forms.py:61 contrib/localflavor/br/forms.py:103 -#: contrib/localflavor/pe/forms.py:34 contrib/localflavor/pe/forms.py:57 +#: contrib/localflavor/ar/forms.py:50 contrib/localflavor/br/forms.py:96 +#: contrib/localflavor/br/forms.py:135 contrib/localflavor/pe/forms.py:23 +#: contrib/localflavor/pe/forms.py:51 msgid "This field requires only numbers." msgstr "Aquest camps requereix només números." -#: contrib/localflavor/ar/forms.py:64 +#: contrib/localflavor/ar/forms.py:51 msgid "This field requires 7 or 8 digits." msgstr "Aquest camp requereix 7 o 8 dígits." -#: contrib/localflavor/ar/forms.py:75 +#: contrib/localflavor/ar/forms.py:80 msgid "Enter a valid CUIT in XX-XXXXXXXX-X or XXXXXXXXXXXX format." msgstr "" "Introdueixi un número CUIT vàlid en el format XX-XXXXXXXX-X o XXXXXXXXXXXX." -#: contrib/localflavor/ar/forms.py:88 +#: contrib/localflavor/ar/forms.py:81 msgid "Invalid CUIT." msgstr "Invàlid CUIT." -#: contrib/localflavor/au/forms.py:18 +#: contrib/localflavor/au/forms.py:16 msgid "Enter a 4 digit post code." msgstr "Introdueixi un codi postal de 4 dígits." -#: contrib/localflavor/br/forms.py:23 +#: contrib/localflavor/br/forms.py:21 msgid "Enter a zip code in the format XXXXX-XXX." msgstr "Introdueixi un codi zip en el format XXXXX-XXX." -#: contrib/localflavor/br/forms.py:35 +#: contrib/localflavor/br/forms.py:30 msgid "Phone numbers must be in XX-XXXX-XXXX format." msgstr "El número de telèfon ha de ser en el format XX-XXXX-XXXX." -#: contrib/localflavor/br/forms.py:68 +#: contrib/localflavor/br/forms.py:58 msgid "" "Select a valid brazilian state. That state is not one of the available " "states." @@ -1733,30 +1734,30 @@ msgstr "" "Seleccioni un estat brasiler vàlid. Aquest estat no és un dels estats " "disponibles." -#: contrib/localflavor/br/forms.py:105 -msgid "This field requires at most 11 digits or 14 characters." -msgstr "Aquest camp requereix com a màxim 11 dígits o 14 caracters." - -#: contrib/localflavor/br/forms.py:115 +#: contrib/localflavor/br/forms.py:94 msgid "Invalid CPF number." msgstr "Número CPF invàlid." -#: contrib/localflavor/br/forms.py:137 -msgid "This field requires at least 14 digits" -msgstr "Aquest camp requereix almenys 14 dígits." +#: contrib/localflavor/br/forms.py:95 +msgid "This field requires at most 11 digits or 14 characters." +msgstr "Aquest camp requereix com a màxim 11 dígits o 14 caracters." -#: contrib/localflavor/br/forms.py:147 +#: contrib/localflavor/br/forms.py:134 msgid "Invalid CNPJ number." msgstr "Número CNPJ invàlid." -#: contrib/localflavor/ca/forms.py:19 +#: contrib/localflavor/br/forms.py:136 +msgid "This field requires at least 14 digits" +msgstr "Aquest camp requereix almenys 14 dígits." + +#: contrib/localflavor/ca/forms.py:17 msgid "Enter a postal code in the format XXX XXX." msgstr "Introdueixi un codi postal en el format XXX XXX." -#: contrib/localflavor/ca/forms.py:81 +#: contrib/localflavor/ca/forms.py:88 msgid "Enter a valid Canadian Social Insurance number in XXX-XXX-XXXX format." msgstr "" -"Introdueixi un número vàlid de la Seguretat Social de Canada en el format " +"Introdueixi un número vàlid de la Seguretat Social de Canadà en el format " "XXX-XXX-XXXX." #: contrib/localflavor/ch/ch_states.py:5 @@ -1863,11 +1864,11 @@ msgstr "Zug" msgid "Zurich" msgstr "Zurich" -#: contrib/localflavor/ch/forms.py:18 contrib/localflavor/no/forms.py:14 +#: contrib/localflavor/ch/forms.py:16 contrib/localflavor/no/forms.py:12 msgid "Enter a zip code in the format XXXX." msgstr "Introdueixi un codi zip en el format XXXX." -#: contrib/localflavor/ch/forms.py:90 +#: contrib/localflavor/ch/forms.py:64 msgid "" "Enter a valid Swiss identity or passport card number in X1234567<0 or " "1234567890 format." @@ -1875,13 +1876,17 @@ msgstr "" "Introdueixi un número de identificació o de passaport Suïssos en els formats " "1234567890 o X1234567<0." -#: contrib/localflavor/cl/forms.py:32 -msgid "Enter valid a Chilean RUT. The format is XX.XXX.XXX-X." +#: contrib/localflavor/cl/forms.py:29 +msgid "Enter a valid Chilean RUT." +msgstr "Introdueixi un RUT Xilè vàlid." + +#: contrib/localflavor/cl/forms.py:30 +msgid "Enter a valid Chilean RUT. The format is XX.XXX.XXX-X." msgstr "Introdueixi un RUT Xilè vàlid. El format és XX.XXX.XXX-X" -#: contrib/localflavor/cl/forms.py:37 -msgid "Enter valid a Chilean RUT" -msgstr "Introdueixi un RUT Xilè vàlid." +#: contrib/localflavor/cl/forms.py:31 +msgid "The Chilean RUT is not valid." +msgstr "El RUT Xilè no és vàlid." #: contrib/localflavor/de/de_states.py:5 msgid "Baden-Wuerttemberg" @@ -1947,12 +1952,12 @@ msgstr "Schleswig-Holstein" msgid "Thuringia" msgstr "Thuringia" -#: contrib/localflavor/de/forms.py:16 contrib/localflavor/fi/forms.py:14 -#: contrib/localflavor/fr/forms.py:17 +#: contrib/localflavor/de/forms.py:14 contrib/localflavor/fi/forms.py:12 +#: contrib/localflavor/fr/forms.py:15 msgid "Enter a zip code in the format XXXXX." msgstr "Introdueixi un codi zip en el format XXXXX." -#: contrib/localflavor/de/forms.py:60 +#: contrib/localflavor/de/forms.py:41 msgid "" "Enter a valid German identity card number in XXXXXXXXXXX-XXXXXXX-XXXXXXX-X " "format." @@ -2227,7 +2232,7 @@ msgstr "Comunitat Foral de Navarra" msgid "Valencian Community" msgstr "Comunitat Valenciana" -#: contrib/localflavor/es/forms.py:22 +#: contrib/localflavor/es/forms.py:19 msgid "Enter a valid postal code in the range and format 01XXX - 52XXX." msgstr "Introdueixi un codi postal en rang i format 01XXX - 52XXX." @@ -2239,40 +2244,42 @@ msgstr "" "Introdueixi un número de telèfon vàlid en un dels formats 6XXXXXXXX, " "8XXXXXXXX o 9XXXXXXXX." -#: contrib/localflavor/es/forms.py:73 contrib/localflavor/es/forms.py:108 -#: db/models/fields/related.py:55 -#, python-format -msgid "Please enter a valid %s." -msgstr "Si us plau, introdueixi un %s vàlid." +#: contrib/localflavor/es/forms.py:66 +msgid "Please enter a valid NIF, NIE, or CIF." +msgstr "Si us plau, introdueixi un NIF, NIE o CIF vàlid." -#: contrib/localflavor/es/forms.py:91 +#: contrib/localflavor/es/forms.py:67 +msgid "Please enter a valid NIF or NIE." +msgstr "Si us plau, introdueixi un NIF o NIE vàlid." + +#: contrib/localflavor/es/forms.py:68 msgid "Invalid checksum for NIF." msgstr "Validació invàlida del NIF." -#: contrib/localflavor/es/forms.py:97 +#: contrib/localflavor/es/forms.py:69 msgid "Invalid checksum for NIE." msgstr "Validació invàlida del NIE." -#: contrib/localflavor/es/forms.py:106 +#: contrib/localflavor/es/forms.py:70 msgid "Invalid checksum for CIF." msgstr "Validació invàlida del CIF." -#: contrib/localflavor/es/forms.py:136 +#: contrib/localflavor/es/forms.py:142 msgid "" "Please enter a valid bank account number in format XXXX-XXXX-XX-XXXXXXXXXX." msgstr "" "Introdueixi un número de compte bancari vàlid en el format XXXX-XXXX-XX-" "XXXXXXXXXX." -#: contrib/localflavor/es/forms.py:150 +#: contrib/localflavor/es/forms.py:143 msgid "Invalid checksum for bank account number." msgstr "Validació invàlida del número de compte bancari." -#: contrib/localflavor/fi/forms.py:40 contrib/localflavor/fi/forms.py:45 +#: contrib/localflavor/fi/forms.py:28 msgid "Enter a valid Finnish social security number." msgstr "Introdueixi un número vàlid de la seguretat social finlandesa." -#: contrib/localflavor/in_/forms.py:16 +#: contrib/localflavor/in_/forms.py:14 msgid "Enter a zip code in the format XXXXXXX." msgstr "Introdueixi un codi zip en el format XXXXXXX." @@ -2282,15 +2289,15 @@ msgid "" msgstr "" "Introdueixi un número de identificació d'Islàndia. El format és XXXXXX-XXXX." -#: contrib/localflavor/is_/forms.py:31 +#: contrib/localflavor/is_/forms.py:18 msgid "The Icelandic identification number is not valid." msgstr "El número de identificació d'Islàndia no és vàlid." -#: contrib/localflavor/it/forms.py:16 +#: contrib/localflavor/it/forms.py:14 msgid "Enter a valid zip code." msgstr "Introdueixi un codi zip vàlid." -#: contrib/localflavor/it/forms.py:41 +#: contrib/localflavor/it/forms.py:43 msgid "Enter a valid Social Security number." msgstr "Introdueixi un número valid de la Seguretat Social." @@ -2298,7 +2305,7 @@ msgstr "Introdueixi un número valid de la Seguretat Social." msgid "Enter a valid VAT number." msgstr "Introdueixi un número de IVA (VAT) vàlid." -#: contrib/localflavor/jp/forms.py:21 +#: contrib/localflavor/jp/forms.py:19 msgid "Enter a postal code in the format XXXXXXX or XXX-XXXX." msgstr "Introdueixi un codi postal en el format XXXXXXX o XX-XXXX." @@ -2490,15 +2497,143 @@ msgstr "Kagoshima" msgid "Okinawa" msgstr "Okinawa" -#: contrib/localflavor/nl/forms.py:25 +#: contrib/localflavor/mx/mx_states.py:12 +msgid "Aguascalientes" +msgstr "" + +#: contrib/localflavor/mx/mx_states.py:13 +msgid "Baja California" +msgstr "" + +#: contrib/localflavor/mx/mx_states.py:14 +msgid "Baja California Sur" +msgstr "" + +#: contrib/localflavor/mx/mx_states.py:15 +msgid "Campeche" +msgstr "" + +#: contrib/localflavor/mx/mx_states.py:16 +msgid "Chihuahua" +msgstr "" + +#: contrib/localflavor/mx/mx_states.py:17 +msgid "Chiapas" +msgstr "" + +#: contrib/localflavor/mx/mx_states.py:18 +msgid "Coahuila" +msgstr "" + +#: contrib/localflavor/mx/mx_states.py:19 +msgid "Colima" +msgstr "" + +#: contrib/localflavor/mx/mx_states.py:20 +msgid "Distrito Federal" +msgstr "" + +#: contrib/localflavor/mx/mx_states.py:21 +msgid "Durango" +msgstr "" + +#: contrib/localflavor/mx/mx_states.py:22 +msgid "Guerrero" +msgstr "" + +#: contrib/localflavor/mx/mx_states.py:23 +msgid "Guanajuato" +msgstr "" + +#: contrib/localflavor/mx/mx_states.py:24 +msgid "Hidalgo" +msgstr "" + +#: contrib/localflavor/mx/mx_states.py:25 +msgid "Jalisco" +msgstr "" + +#: contrib/localflavor/mx/mx_states.py:26 +msgid "Estado de México" +msgstr "" + +#: contrib/localflavor/mx/mx_states.py:27 +msgid "Michoacán" +msgstr "" + +#: contrib/localflavor/mx/mx_states.py:28 +msgid "Morelos" +msgstr "" + +#: contrib/localflavor/mx/mx_states.py:29 +msgid "Nayarit" +msgstr "" + +#: contrib/localflavor/mx/mx_states.py:30 +msgid "Nuevo León" +msgstr "" + +#: contrib/localflavor/mx/mx_states.py:31 +msgid "Oaxaca" +msgstr "" + +#: contrib/localflavor/mx/mx_states.py:32 +msgid "Puebla" +msgstr "" + +#: contrib/localflavor/mx/mx_states.py:33 +msgid "Querétaro" +msgstr "" + +#: contrib/localflavor/mx/mx_states.py:34 +msgid "Quintana Roo" +msgstr "" + +#: contrib/localflavor/mx/mx_states.py:35 +msgid "Sinaloa" +msgstr "" + +#: contrib/localflavor/mx/mx_states.py:36 +msgid "San Luis Potosí" +msgstr "" + +#: contrib/localflavor/mx/mx_states.py:37 +msgid "Sonora" +msgstr "" + +#: contrib/localflavor/mx/mx_states.py:38 +msgid "Tabasco" +msgstr "" + +#: contrib/localflavor/mx/mx_states.py:39 +msgid "Tamaulipas" +msgstr "" + +#: contrib/localflavor/mx/mx_states.py:40 +msgid "Tlaxcala" +msgstr "" + +#: contrib/localflavor/mx/mx_states.py:41 +msgid "Veracruz" +msgstr "" + +#: contrib/localflavor/mx/mx_states.py:42 +msgid "Yucatán" +msgstr "" + +#: contrib/localflavor/mx/mx_states.py:43 +msgid "Zacatecas" +msgstr "" + +#: contrib/localflavor/nl/forms.py:21 msgid "Enter a valid postal code" msgstr "Introdueixi un codi postal vàlid." -#: contrib/localflavor/nl/forms.py:53 +#: contrib/localflavor/nl/forms.py:52 msgid "Enter a valid phone number" msgstr "Introdueixi un número de telèfon vàlid." -#: contrib/localflavor/nl/forms.py:76 +#: contrib/localflavor/nl/forms.py:78 msgid "Enter a valid SoFi number" msgstr "Introdueixi un número SoFi vàlid." @@ -2550,23 +2685,23 @@ msgstr "Zeeland" msgid "Zuid-Holland" msgstr "Zuid-Holland" -#: contrib/localflavor/no/forms.py:35 +#: contrib/localflavor/no/forms.py:33 msgid "Enter a valid Norwegian social security number." msgstr "Introdueixi un número de la seguretat social Noruega vàlid." -#: contrib/localflavor/pe/forms.py:36 +#: contrib/localflavor/pe/forms.py:24 msgid "This field requires 8 digits." msgstr "Aquest camp requereix 8 dígits." -#: contrib/localflavor/pe/forms.py:59 +#: contrib/localflavor/pe/forms.py:52 msgid "This field requires 11 digits." msgstr "Aquest camp requereix 11 dígits." -#: contrib/localflavor/pl/forms.py:41 +#: contrib/localflavor/pl/forms.py:39 msgid "National Identification Number consists of 11 digits." msgstr "El número d'identidicació nacional està compost de 11 digits." -#: contrib/localflavor/pl/forms.py:47 +#: contrib/localflavor/pl/forms.py:40 msgid "Wrong checksum for the National Identification Number." msgstr "Validació invàlida del número d'identificació nacional." @@ -2575,11 +2710,11 @@ msgid "" "Enter a tax number field (NIP) in the format XXX-XXX-XX-XX or XX-XX-XXX-XXX." msgstr "Introdueixi un número NIP en el format XXX-XXX-XX-XX o XX-XX-XXX-XXX." -#: contrib/localflavor/pl/forms.py:78 +#: contrib/localflavor/pl/forms.py:73 msgid "Wrong checksum for the Tax Number (NIP)." msgstr "Validació invàlida del número tributari (NIP)." -#: contrib/localflavor/pl/forms.py:107 +#: contrib/localflavor/pl/forms.py:112 msgid "National Business Register Number (REGON) consists of 7 or 9 digits." msgstr "" "El número nacional de registre de negocis (REGON) consisteix en 7 o 9 dígits." @@ -2588,7 +2723,7 @@ msgstr "" msgid "Wrong checksum for the National Business Register Number (REGON)." msgstr "Validació invàlida del número nacional de registre de negocis." -#: contrib/localflavor/pl/forms.py:148 +#: contrib/localflavor/pl/forms.py:156 msgid "Enter a postal code in the format XX-XXX." msgstr "Introdueixi un codi postal en el format XX-XXX." @@ -2656,7 +2791,7 @@ msgstr "Greater Poland" msgid "West Pomerania" msgstr "West Pomerania" -#: contrib/localflavor/sk/forms.py:32 +#: contrib/localflavor/sk/forms.py:30 msgid "Enter a postal code in the format XXXXX or XXX XX." msgstr "Introdueixi un codi postal en el format XXXXX or XXX XX." @@ -3008,27 +3143,302 @@ msgstr "Regió de Trnava" msgid "Zilina region" msgstr "Regió de Zilina" -#: contrib/localflavor/uk/forms.py:18 -msgid "Enter a postcode. A space is required between the two postcode parts." -msgstr "" -"Introdueixi un codi postal. És necessari un espai entre les dues parts del " -"codi postal." +#: contrib/localflavor/uk/forms.py:21 +msgid "Enter a valid postcode." +msgstr "Introdueixi un codi postal vàlid." -#: contrib/localflavor/us/forms.py:18 +#: contrib/localflavor/uk/uk_regions.py:11 +msgid "Bedfordshire" +msgstr "" + +#: contrib/localflavor/uk/uk_regions.py:12 +msgid "Buckinghamshire" +msgstr "" + +#: contrib/localflavor/uk/uk_regions.py:14 +msgid "Cheshire" +msgstr "" + +#: contrib/localflavor/uk/uk_regions.py:15 +msgid "Cornwall and Isles of Scilly" +msgstr "" + +#: contrib/localflavor/uk/uk_regions.py:16 +msgid "Cumbria" +msgstr "" + +#: contrib/localflavor/uk/uk_regions.py:17 +msgid "Derbyshire" +msgstr "" + +#: contrib/localflavor/uk/uk_regions.py:18 +msgid "Devon" +msgstr "" + +#: contrib/localflavor/uk/uk_regions.py:19 +msgid "Dorset" +msgstr "" + +#: contrib/localflavor/uk/uk_regions.py:20 +msgid "Durham" +msgstr "" + +#: contrib/localflavor/uk/uk_regions.py:21 +msgid "East Sussex" +msgstr "" + +#: contrib/localflavor/uk/uk_regions.py:22 +msgid "Essex" +msgstr "" + +#: contrib/localflavor/uk/uk_regions.py:23 +msgid "Gloucestershire" +msgstr "" + +#: contrib/localflavor/uk/uk_regions.py:24 +msgid "Greater London" +msgstr "" + +#: contrib/localflavor/uk/uk_regions.py:25 +msgid "Greater Manchester" +msgstr "" + +#: contrib/localflavor/uk/uk_regions.py:26 +msgid "Hampshire" +msgstr "" + +#: contrib/localflavor/uk/uk_regions.py:27 +msgid "Hertfordshire" +msgstr "" + +#: contrib/localflavor/uk/uk_regions.py:28 +msgid "Kent" +msgstr "" + +#: contrib/localflavor/uk/uk_regions.py:29 +msgid "Lancashire" +msgstr "" + +#: contrib/localflavor/uk/uk_regions.py:30 +msgid "Leicestershire" +msgstr "" + +#: contrib/localflavor/uk/uk_regions.py:31 +msgid "Lincolnshire" +msgstr "" + +#: contrib/localflavor/uk/uk_regions.py:32 +msgid "Merseyside" +msgstr "" + +#: contrib/localflavor/uk/uk_regions.py:33 +msgid "Norfolk" +msgstr "" + +#: contrib/localflavor/uk/uk_regions.py:34 +msgid "North Yorkshire" +msgstr "" + +#: contrib/localflavor/uk/uk_regions.py:35 +msgid "Northamptonshire" +msgstr "" + +#: contrib/localflavor/uk/uk_regions.py:36 +msgid "Northumberland" +msgstr "" + +#: contrib/localflavor/uk/uk_regions.py:37 +msgid "Nottinghamshire" +msgstr "" + +#: contrib/localflavor/uk/uk_regions.py:38 +msgid "Oxfordshire" +msgstr "" + +#: contrib/localflavor/uk/uk_regions.py:39 +msgid "Shropshire" +msgstr "" + +#: contrib/localflavor/uk/uk_regions.py:40 +msgid "Somerset" +msgstr "" + +#: contrib/localflavor/uk/uk_regions.py:41 +msgid "South Yorkshire" +msgstr "" + +#: contrib/localflavor/uk/uk_regions.py:42 +msgid "Staffordshire" +msgstr "" + +#: contrib/localflavor/uk/uk_regions.py:43 +msgid "Suffolk" +msgstr "" + +#: contrib/localflavor/uk/uk_regions.py:44 +msgid "Surrey" +msgstr "" + +#: contrib/localflavor/uk/uk_regions.py:45 +msgid "Tyne and Wear" +msgstr "" + +#: contrib/localflavor/uk/uk_regions.py:46 +msgid "Warwickshire" +msgstr "" + +#: contrib/localflavor/uk/uk_regions.py:47 +msgid "West Midlands" +msgstr "" + +#: contrib/localflavor/uk/uk_regions.py:48 +msgid "West Sussex" +msgstr "" + +#: contrib/localflavor/uk/uk_regions.py:49 +msgid "West Yorkshire" +msgstr "" + +#: contrib/localflavor/uk/uk_regions.py:50 +msgid "Wiltshire" +msgstr "" + +#: contrib/localflavor/uk/uk_regions.py:51 +msgid "Worcestershire" +msgstr "" + +#: contrib/localflavor/uk/uk_regions.py:55 +msgid "County Antrim" +msgstr "" + +#: contrib/localflavor/uk/uk_regions.py:56 +msgid "County Armagh" +msgstr "" + +#: contrib/localflavor/uk/uk_regions.py:57 +#: contrib/localflavor/uk/uk_regions.py:58 +msgid "County Down" +msgstr "" + +#: contrib/localflavor/uk/uk_regions.py:59 +msgid "County Londonderry" +msgstr "" + +#: contrib/localflavor/uk/uk_regions.py:60 +msgid "County Tyrone" +msgstr "" + +#: contrib/localflavor/uk/uk_regions.py:64 +msgid "Clwyd" +msgstr "" + +#: contrib/localflavor/uk/uk_regions.py:65 +msgid "Dyfed" +msgstr "" + +#: contrib/localflavor/uk/uk_regions.py:66 +msgid "Gwent" +msgstr "" + +#: contrib/localflavor/uk/uk_regions.py:67 +msgid "Gwynedd" +msgstr "" + +#: contrib/localflavor/uk/uk_regions.py:68 +msgid "Mid Glamorgan" +msgstr "" + +#: contrib/localflavor/uk/uk_regions.py:69 +msgid "Powys" +msgstr "" + +#: contrib/localflavor/uk/uk_regions.py:70 +msgid "South Glamorgan" +msgstr "" + +#: contrib/localflavor/uk/uk_regions.py:71 +msgid "West Glamorgan" +msgstr "" + +#: contrib/localflavor/uk/uk_regions.py:75 +msgid "Borders" +msgstr "" + +#: contrib/localflavor/uk/uk_regions.py:76 +msgid "Central Scotland" +msgstr "" + +#: contrib/localflavor/uk/uk_regions.py:77 +msgid "Dumfries and Galloway" +msgstr "" + +#: contrib/localflavor/uk/uk_regions.py:78 +msgid "Fife" +msgstr "" + +#: contrib/localflavor/uk/uk_regions.py:79 +msgid "Grampian" +msgstr "" + +#: contrib/localflavor/uk/uk_regions.py:80 +msgid "Highland" +msgstr "" + +#: contrib/localflavor/uk/uk_regions.py:81 +msgid "Lothian" +msgstr "" + +#: contrib/localflavor/uk/uk_regions.py:82 +msgid "Orkney Islands" +msgstr "" + +#: contrib/localflavor/uk/uk_regions.py:83 +msgid "Shetland Islands" +msgstr "" + +#: contrib/localflavor/uk/uk_regions.py:84 +msgid "Strathclyde" +msgstr "" + +#: contrib/localflavor/uk/uk_regions.py:85 +msgid "Tayside" +msgstr "" + +#: contrib/localflavor/uk/uk_regions.py:86 +msgid "Western Isles" +msgstr "" + +#: contrib/localflavor/uk/uk_regions.py:90 +msgid "England" +msgstr "" + +#: contrib/localflavor/uk/uk_regions.py:91 +msgid "Northern Ireland" +msgstr "" + +#: contrib/localflavor/uk/uk_regions.py:92 +msgid "Scotland" +msgstr "" + +#: contrib/localflavor/uk/uk_regions.py:93 +msgid "Wales" +msgstr "" + +#: contrib/localflavor/us/forms.py:16 msgid "Enter a zip code in the format XXXXX or XXXXX-XXXX." msgstr "Introdueixi un codi zip en el format XXXXX o XXXXX-XXXX." -#: contrib/localflavor/us/forms.py:51 +#: contrib/localflavor/us/forms.py:54 msgid "Enter a valid U.S. Social Security number in XXX-XX-XXXX format." msgstr "" "Introdueixi un número vàlid de la Seguretat Social dels E.U.A. en el format " "XXX-XX-XXXX." -#: contrib/localflavor/za/forms.py:22 +#: contrib/localflavor/za/forms.py:20 msgid "Enter a valid South African ID number" msgstr "Introdueixi un número d'Identitat Sud Africà valid" -#: contrib/localflavor/za/forms.py:57 +#: contrib/localflavor/za/forms.py:54 msgid "Enter a valid South African postal code" msgstr "Introdueixi un codi postal Sud Africà vàlid." @@ -3503,6 +3913,11 @@ msgstr "Introdueixi un nom de fitxer vàlid." msgid "This value must be either None, True or False." msgstr "Aquest valor ha de ser None (Cap), True (Veritat) o False (Fals)" +#: db/models/fields/related.py:55 +#, python-format +msgid "Please enter a valid %s." +msgstr "Si us plau, introdueixi un %s vàlid." + #: db/models/fields/related.py:658 msgid "Separate multiple IDs with commas." msgstr "Separi múltiples IDs amb comes." @@ -3599,7 +4014,7 @@ msgstr "Introdueixi una URL vàlida." msgid "This URL appears to be a broken link." msgstr "Aquesta URL sembla ser un enllaç trencat." -#: newforms/fields.py:555 newforms/models.py:155 +#: newforms/fields.py:555 newforms/models.py:317 msgid "Select a valid choice. That choice is not one of the available choices." msgstr "" "Esculli una opció vàlida; Aquesta opció no és una de les opcions disponibles." @@ -3609,7 +4024,7 @@ msgstr "" msgid "Select a valid choice. %(value)s is not one of the available choices." msgstr "Esculli una opció vàlida. %(value)s no és una de les opcions vàlides." -#: newforms/fields.py:595 newforms/fields.py:657 newforms/models.py:215 +#: newforms/fields.py:595 newforms/fields.py:657 newforms/models.py:377 msgid "Enter a list of values." msgstr "Introdueixi una llista de valors." @@ -3617,7 +4032,7 @@ msgstr "Introdueixi una llista de valors." msgid "Enter a valid IPv4 address." msgstr "Introdueixi una adreça IPv4 vàlida." -#: newforms/models.py:216 +#: newforms/models.py:378 #, python-format msgid "Select a valid choice. %s is not one of the available choices." msgstr "Esculli una opció vàlida; %s' no és una de les opcions vàlides." @@ -3650,28 +4065,28 @@ msgstr "Introdueixi un número positiu." msgid "Enter a whole number between 0 and 32,767." msgstr "Introdueixi un número entre 0 i 32,767." -#: template/defaultfilters.py:658 +#: template/defaultfilters.py:683 msgid "yes,no,maybe" msgstr "si,no,potser" -#: template/defaultfilters.py:689 +#: template/defaultfilters.py:714 #, python-format msgid "%(size)d byte" msgid_plural "%(size)d bytes" msgstr[0] "%(size)d byte" msgstr[1] "%(size)d bytes" -#: template/defaultfilters.py:691 +#: template/defaultfilters.py:716 #, python-format msgid "%.1f KB" msgstr "%.1f KB" -#: template/defaultfilters.py:693 +#: template/defaultfilters.py:718 #, python-format msgid "%.1f MB" msgstr "%.1f MB" -#: template/defaultfilters.py:694 +#: template/defaultfilters.py:719 #, python-format msgid "%.1f GB" msgstr "%.1f GB" @@ -3968,3 +4383,9 @@ msgstr "El/La %(verbose_name)s s'ha actualtzat amb èxit." #, python-format msgid "The %(verbose_name)s was deleted." msgstr "El %(verbose_name)s s'ha eliminat." + +#~ msgid "" +#~ "Enter a postcode. A space is required between the two postcode parts." +#~ msgstr "" +#~ "Introdueixi un codi postal. És necessari un espai entre les dues parts " +#~ "del codi postal." diff --git a/django/conf/locale/hr/LC_MESSAGES/django.mo b/django/conf/locale/hr/LC_MESSAGES/django.mo index 5e1c7a9c45aca3fe6656de89cb3c10dcc8bb5a23..1a32d1636e4cbdb2a9f21840518c31dff7d5822f 100644 GIT binary patch literal 31812 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 delta 4817 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 NhX=aTL(03U^nYR72?YQE diff --git a/django/conf/locale/hr/LC_MESSAGES/django.po b/django/conf/locale/hr/LC_MESSAGES/django.po index 6b299acf70..a42a689c1f 100644 --- a/django/conf/locale/hr/LC_MESSAGES/django.po +++ b/django/conf/locale/hr/LC_MESSAGES/django.po @@ -1,870 +1,1329 @@ # translation of django.po to Hrvatski jezik -# Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER -# This file is distributed under the same license as the PACKAGE package. +# This file is distributed under the same license as the Django package. # msgid "" msgstr "" "Project-Id-Version: django\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2007-08-06 23:19+0200\n" -"PO-Revision-Date: 2007-10-12 21:22+0200\n" +"POT-Creation-Date: 2008-01-06 16:24+0100\n" +"PO-Revision-Date: 2008-01-05 00:42+0100\n" "Last-Translator: Aljosa Mohorovic \n" "Language-Team: Hrvatski jezik\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" -"Plural-Forms: nplurals=3; plural=(n%10==1 && n%100!=11 ? 0 : n%10>=2 && n%10<=4 && (n%100<10 || n%100>=20) ? 1 : 2);\n" +"Plural-Forms: nplurals=3; plural=(n%10==1 && n%100!=11 ? 0 : n%10>=2 && n%" +"10<=4 && (n%100<10 || n%100>=20) ? 1 : 2);\n" "X-Generator: KBabel 1.11.4\n" -#: oldforms/__init__.py:373 db/models/fields/__init__.py:156 -#: db/models/fields/__init__.py:313 db/models/fields/__init__.py:721 -#: db/models/fields/__init__.py:732 newforms/models.py:193 -#: newforms/fields.py:92 newforms/fields.py:490 newforms/fields.py:566 -#: newforms/fields.py:577 -msgid "This field is required." -msgstr "Unos za ovo polje je obavezan." - -#: oldforms/__init__.py:408 -#, python-format -msgid "Ensure your text is less than %s character." -msgid_plural "Ensure your text is less than %s characters." -msgstr[0] "" -msgstr[1] "Uneseni tekst mora sadržavati manje od %s znakova." - -#: oldforms/__init__.py:413 -msgid "Line breaks are not allowed here." -msgstr "Unos u novi red ovdje nije dozvoljen." - -#: oldforms/__init__.py:511 oldforms/__init__.py:585 oldforms/__init__.py:624 -#, python-format -msgid "Select a valid choice; '%(data)s' is not in %(choices)s." -msgstr "Odaberite iz ponuđenog; '%(data)s' nije u %(choices)s." - -#: oldforms/__init__.py:591 newforms/widgets.py:188 -#: contrib/admin/filterspecs.py:152 -msgid "Unknown" -msgstr "Nepoznat pojam." - -#: oldforms/__init__.py:591 newforms/widgets.py:188 -#: contrib/admin/filterspecs.py:145 -msgid "Yes" -msgstr "Da" - -#: oldforms/__init__.py:591 newforms/widgets.py:188 -#: contrib/admin/filterspecs.py:145 -msgid "No" -msgstr "Ne" - -#: oldforms/__init__.py:686 core/validators.py:181 core/validators.py:461 -#: newforms/fields.py:376 -msgid "No file was submitted. Check the encoding type on the form." -msgstr "Datoteka nije poslana. Provjerite 'encoding type' forme." - -#: oldforms/__init__.py:688 newforms/fields.py:380 -msgid "The submitted file is empty." -msgstr "Poslana datoteka je prazna." - -#: oldforms/__init__.py:744 -msgid "Enter a whole number between -32,768 and 32,767." -msgstr "Unesite cijeli broj između -32,768 i 32,767." - -#: oldforms/__init__.py:754 -msgid "Enter a positive number." -msgstr "Unesite pozitivan broj." - -#: oldforms/__init__.py:764 -msgid "Enter a whole number between 0 and 32,767." -msgstr "Unesite cijeli broj između 0 i 32,767." - -#: db/models/manipulators.py:309 -#, python-format -msgid "%(object)s with this %(type)s already exists for the given %(field)s." -msgstr "%(object)s sa %(type)s već postoji za navedeno %(field)s." - -#: db/models/manipulators.py:310 contrib/admin/views/main.py:342 -#: contrib/admin/views/main.py:344 contrib/admin/views/main.py:346 -msgid "and" -msgstr "i" - -#: db/models/fields/__init__.py:49 -#, python-format -msgid "%(optname)s with this %(fieldname)s already exists." -msgstr "%(optname)s sa navedenim %(fieldname)s već postoji." - -#: db/models/fields/__init__.py:411 -msgid "This value must be an integer." -msgstr "Vrijednost mora biti interger." - -#: db/models/fields/__init__.py:446 -msgid "This value must be either True or False." -msgstr "Vrijednost mora biti True ili False." - -#: db/models/fields/__init__.py:467 -msgid "This field cannot be null." -msgstr "Ovo polje ne može biti null." - -#: db/models/fields/__init__.py:501 core/validators.py:155 -msgid "Enter a valid date in YYYY-MM-DD format." -msgstr "Unesite validan datum u formatu YYYY-MM-DD." - -#: db/models/fields/__init__.py:570 core/validators.py:164 -msgid "Enter a valid date/time in YYYY-MM-DD HH:MM format." -msgstr "Unesite validan datum/vrijeme u formatu YYYY-MM-DD HH:MM." - -#: db/models/fields/__init__.py:631 -msgid "This value must be a decimal number." -msgstr "Vrijednost mora biti decimalan broj." - -#: db/models/fields/__init__.py:741 -msgid "Enter a valid filename." -msgstr "Unesite ime datoteke koja postoji." - -#: db/models/fields/__init__.py:883 -msgid "This value must be either None, True or False." -msgstr "Vrijednost mora biti None, True ili False." - -#: db/models/fields/related.py:55 -#, python-format -msgid "Please enter a valid %s." -msgstr "Molim unesite validan %s." - -#: db/models/fields/related.py:661 -msgid "Separate multiple IDs with commas." -msgstr "Odvojite više ID-a zarezom." - -#: db/models/fields/related.py:663 -msgid "Hold down \"Control\", or \"Command\" on a Mac, to select more than one." -msgstr "Držite \"Control\", ili \"Command\" na Mac-u, da bi odabravili više od jednog objekta." - -#: db/models/fields/related.py:710 -#, python-format -msgid "Please enter valid %(self)s IDs. The value %(value)r is invalid." -msgid_plural "Please enter valid %(self)s IDs. The values %(value)r are invalid." -msgstr[0] "Molim unesite ispravan %(self)s ID. Vrijednost %(value)r je neispravna." -msgstr[1] "" - -#: conf/global_settings.py:38 +#: conf/global_settings.py:39 msgid "Arabic" msgstr "" -#: conf/global_settings.py:39 +#: conf/global_settings.py:40 msgid "Bengali" msgstr "" -#: conf/global_settings.py:40 -msgid "Bulgarian" -msgstr "" - #: conf/global_settings.py:41 +msgid "Bulgarian" +msgstr "Bugarski" + +#: conf/global_settings.py:42 msgid "Catalan" msgstr "" -#: conf/global_settings.py:42 -msgid "Czech" -msgstr "" - #: conf/global_settings.py:43 +msgid "Czech" +msgstr "Češki" + +#: conf/global_settings.py:44 msgid "Welsh" msgstr "" -#: conf/global_settings.py:44 -msgid "Danish" -msgstr "" - #: conf/global_settings.py:45 -msgid "German" -msgstr "" +msgid "Danish" +msgstr "Danski" #: conf/global_settings.py:46 -msgid "Greek" -msgstr "" +msgid "German" +msgstr "Njemački" #: conf/global_settings.py:47 -msgid "English" -msgstr "" +msgid "Greek" +msgstr "Grčki" #: conf/global_settings.py:48 -msgid "Spanish" -msgstr "" +msgid "English" +msgstr "Engleski" #: conf/global_settings.py:49 +msgid "Spanish" +msgstr "Španjolski" + +#: conf/global_settings.py:50 msgid "Argentinean Spanish" msgstr "" -#: conf/global_settings.py:50 -msgid "Persian" -msgstr "" - #: conf/global_settings.py:51 -msgid "Finnish" -msgstr "" +msgid "Persian" +msgstr "Perzijski" #: conf/global_settings.py:52 -msgid "French" -msgstr "" +msgid "Finnish" +msgstr "Finski" #: conf/global_settings.py:53 -msgid "Galician" -msgstr "" +msgid "French" +msgstr "Francuski" #: conf/global_settings.py:54 -msgid "Hungarian" +msgid "Gaeilge" msgstr "" #: conf/global_settings.py:55 -msgid "Hebrew" +msgid "Galician" msgstr "" #: conf/global_settings.py:56 -msgid "Icelandic" -msgstr "" +msgid "Hungarian" +msgstr "Mađarski" #: conf/global_settings.py:57 -msgid "Italian" +msgid "Hebrew" msgstr "" #: conf/global_settings.py:58 -msgid "Japanese" -msgstr "" +msgid "Croatian" +msgstr "Hrvatski" #: conf/global_settings.py:59 -msgid "Korean" +msgid "Icelandic" msgstr "" #: conf/global_settings.py:60 -msgid "Kannada" -msgstr "" +msgid "Italian" +msgstr "Talijanski" #: conf/global_settings.py:61 -msgid "Latvian" -msgstr "" +msgid "Japanese" +msgstr "Japanski" #: conf/global_settings.py:62 -msgid "Macedonian" -msgstr "" +msgid "Korean" +msgstr "Koreanski" #: conf/global_settings.py:63 -msgid "Dutch" +msgid "Khmer" msgstr "" #: conf/global_settings.py:64 -msgid "Norwegian" +msgid "Kannada" msgstr "" #: conf/global_settings.py:65 -msgid "Polish" +msgid "Latvian" msgstr "" #: conf/global_settings.py:66 -msgid "Portugese" -msgstr "" +msgid "Macedonian" +msgstr "Makedonski" #: conf/global_settings.py:67 -msgid "Brazilian" -msgstr "" +msgid "Dutch" +msgstr "Nizozemski" #: conf/global_settings.py:68 -msgid "Romanian" -msgstr "" +msgid "Norwegian" +msgstr "Norveški" #: conf/global_settings.py:69 -msgid "Russian" -msgstr "" +msgid "Polish" +msgstr "Poljski" #: conf/global_settings.py:70 -msgid "Slovak" -msgstr "" +msgid "Portugese" +msgstr "Portugalski" #: conf/global_settings.py:71 -msgid "Slovenian" -msgstr "" +msgid "Brazilian" +msgstr "Brazilski" #: conf/global_settings.py:72 -msgid "Serbian" -msgstr "" +msgid "Romanian" +msgstr "Rumunjski" #: conf/global_settings.py:73 -msgid "Swedish" -msgstr "" +msgid "Russian" +msgstr "Ruski" #: conf/global_settings.py:74 +msgid "Slovak" +msgstr "Slovački" + +#: conf/global_settings.py:75 +msgid "Slovenian" +msgstr "Slovenski" + +#: conf/global_settings.py:76 +msgid "Serbian" +msgstr "Srpski" + +#: conf/global_settings.py:77 +msgid "Swedish" +msgstr "Švedski" + +#: conf/global_settings.py:78 msgid "Tamil" msgstr "" -#: conf/global_settings.py:75 +#: conf/global_settings.py:79 msgid "Telugu" msgstr "" -#: conf/global_settings.py:76 +#: conf/global_settings.py:80 msgid "Turkish" -msgstr "" +msgstr "Turski" -#: conf/global_settings.py:77 +#: conf/global_settings.py:81 msgid "Ukrainian" msgstr "" -#: conf/global_settings.py:78 +#: conf/global_settings.py:82 msgid "Simplified Chinese" msgstr "" -#: conf/global_settings.py:79 +#: conf/global_settings.py:83 msgid "Traditional Chinese" -msgstr "" +msgstr "Tradicionalni kineski" -#: core/validators.py:71 -msgid "This value must contain only letters, numbers and underscores." -msgstr "Ova vrijednost može sadržavati samo slova, brojeve i povlaku." - -#: core/validators.py:75 -msgid "" -"This value must contain only letters, numbers, underscores, dashes or " -"slashes." -msgstr "" -"Ova vrijednost može sadržavati samo slova, brojeve, povlaku, crtice ili " -"slashes (/)." - -#: core/validators.py:79 -msgid "This value must contain only letters, numbers, underscores or hyphens." -msgstr "Ova vrijednost može sadržavati samo slova, brojeve, povlake ili hyphens." - -#: core/validators.py:83 -msgid "Uppercase letters are not allowed here." -msgstr "Velika slova ovdje nisu dopuštena." - -#: core/validators.py:87 -msgid "Lowercase letters are not allowed here." -msgstr "Mala slova ovdje nisu dopuštena" - -#: core/validators.py:94 -msgid "Enter only digits separated by commas." -msgstr "Unesite samo brojeve razdvojene zarezom." - -#: core/validators.py:106 -msgid "Enter valid e-mail addresses separated by commas." -msgstr "Unesite ispravne e-mail adrese odvojene zarezom." - -#: core/validators.py:110 -msgid "Please enter a valid IP address." -msgstr "Unesite ispravnu IP adresu." - -#: core/validators.py:114 -msgid "Empty values are not allowed here." -msgstr "Prazne vrijednosti nisu ispravne ovdje." - -#: core/validators.py:118 -msgid "Non-numeric characters aren't allowed here." -msgstr "Dozvoljeni su samo numerički znakovi." - -#: core/validators.py:122 -msgid "This value can't be comprised solely of digits." -msgstr "Ova vrijednost ne može sadržavati samo brojeve." - -#: core/validators.py:127 newforms/fields.py:142 -msgid "Enter a whole number." -msgstr "Unesite cijeli broj." - -#: core/validators.py:131 -msgid "Only alphabetical characters are allowed here." -msgstr "Dozvoljena su samo slova abecede." - -#: core/validators.py:146 -msgid "Year must be 1900 or later." -msgstr "Godina mora biti poslije 1900." - -#: core/validators.py:150 -#, python-format -msgid "Invalid date: %s" -msgstr "Neispravan datum: %s" - -#: core/validators.py:160 -msgid "Enter a valid time in HH:MM format." -msgstr "Unesite ispravno vrijeme u HH:MM formatu." - -#: core/validators.py:169 newforms/fields.py:336 -msgid "Enter a valid e-mail address." -msgstr "Unesite ispravnu e-mail adresu." - -#: core/validators.py:185 newforms/fields.py:397 -msgid "" -"Upload a valid image. The file you uploaded was either not an image or a " -"corrupted image." -msgstr "Upload-ajte ispravnu sliku. Datoteka koju ste upload-ali ili nije slika ili je oštečena." - -#: core/validators.py:192 -#, python-format -msgid "The URL %s does not point to a valid image." -msgstr "URL %s ne prikazuje ispravnu sliku." - -#: core/validators.py:196 -#, python-format -msgid "Phone numbers must be in XXX-XXX-XXXX format. \"%s\" is invalid." -msgstr "Telefonski brojevi moraju biti u formatu XXX-XXX-XXXX. \"%s\" nije ispravan format." - -#: core/validators.py:204 -#, python-format -msgid "The URL %s does not point to a valid QuickTime video." -msgstr "URL %s ne vodi na ispravan QuickTime video." - -#: core/validators.py:208 -msgid "A valid URL is required." -msgstr "Ispravan URL je obavezan." - -#: core/validators.py:222 +#: contrib/admin/filterspecs.py:44 #, python-format msgid "" -"Valid HTML is required. Specific errors are:\n" -"%s" -msgstr "Ispravan HTML je obavezan. Pogreške:
%s" - -#: core/validators.py:229 -#, python-format -msgid "Badly formed XML: %s" -msgstr "Loše formatiran XML: %s" - -#: core/validators.py:246 -#, python-format -msgid "Invalid URL: %s" -msgstr "Neispravan URL: %s" - -#: core/validators.py:251 core/validators.py:253 -#, python-format -msgid "The URL %s is a broken link." -msgstr "URL %s je neispravan (broken) link." - -#: core/validators.py:259 -msgid "Enter a valid U.S. state abbreviation." -msgstr "Enter a valid U.S. state abbreviation." - -#: core/validators.py:273 -#, 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] "Pazite na izražavanje! Riječ %s nije dopuštena." -msgstr[1] "Pazite na izražavanje! Riječi %s nisu dopuštene." - -#: core/validators.py:280 -#, python-format -msgid "This field must match the '%s' field." -msgstr "Ovo polje mora biti jednako %s polju." - -#: core/validators.py:299 -msgid "Please enter something for at least one field." -msgstr "Molim unesite nešto bar za jedno polje." - -#: core/validators.py:308 core/validators.py:319 -msgid "Please enter both fields or leave them both empty." -msgstr "Molim unesite vrijednosti za oba polja ili ostavite oba polja prazna." - -#: core/validators.py:327 -#, python-format -msgid "This field must be given if %(field)s is %(value)s" +"

By %s:

\n" +"
    \n" msgstr "" -#: core/validators.py:340 -#, python-format -msgid "This field must be given if %(field)s is not %(value)s" -msgstr "Ovo polje je obavezno ako je %(field)s različito od %(value)s" +#: contrib/admin/filterspecs.py:74 contrib/admin/filterspecs.py:92 +#: contrib/admin/filterspecs.py:147 contrib/admin/filterspecs.py:173 +msgid "All" +msgstr "Svi" -#: core/validators.py:359 -msgid "Duplicate values are not allowed." +#: contrib/admin/filterspecs.py:113 +msgid "Any date" +msgstr "Bilo koji datum" + +#: contrib/admin/filterspecs.py:114 +msgid "Today" +msgstr "Danas" + +#: contrib/admin/filterspecs.py:117 +msgid "Past 7 days" +msgstr "Prošlih 7 dana" + +#: contrib/admin/filterspecs.py:119 +msgid "This month" +msgstr "Ovaj mjesec" + +#: contrib/admin/filterspecs.py:121 +msgid "This year" +msgstr "Ova godina" + +#: contrib/admin/filterspecs.py:147 newforms/widgets.py:231 +#: oldforms/__init__.py:592 +msgid "Yes" +msgstr "Da" + +#: contrib/admin/filterspecs.py:147 newforms/widgets.py:231 +#: oldforms/__init__.py:592 +msgid "No" +msgstr "Ne" + +#: contrib/admin/filterspecs.py:154 newforms/widgets.py:231 +#: oldforms/__init__.py:592 +msgid "Unknown" +msgstr "Nepoznat pojam." + +#: contrib/admin/models.py:18 +msgid "action time" +msgstr "vrijeme akcije" + +#: contrib/admin/models.py:21 +msgid "object id" +msgstr "id objekta" + +#: contrib/admin/models.py:22 +msgid "object repr" msgstr "" -#: core/validators.py:374 -#, python-format -msgid "This value must be between %(lower)s and %(upper)s." -msgstr "Vrijednost mora biti između %(lower)s i %(upper)s." - -#: core/validators.py:376 -#, python-format -msgid "This value must be at least %s." -msgstr "Vrijednost mora biti bar %s." - -#: core/validators.py:378 -#, python-format -msgid "This value must be no more than %s." -msgstr "Vrijednost ne može biti veća od %s." - -#: core/validators.py:414 -#, python-format -msgid "This value must be a power of %s." -msgstr "Ova vrijednost na kvadrat mora biti %s." - -#: core/validators.py:424 -msgid "Please enter a valid decimal number." -msgstr "Molim unesite ispravan decimalni broj." - -#: core/validators.py:431 -#, python-format -msgid "Please enter a valid decimal number with at most %s total digit." -msgid_plural "Please enter a valid decimal number with at most %s total digits." -msgstr[0] "" -msgstr[1] "" - -#: core/validators.py:434 -#, python-format -msgid "Please enter a valid decimal number with a whole part of at most %s digit." -msgid_plural "Please enter a valid decimal number with a whole part of at most %s digits." -msgstr[0] "" -msgstr[1] "" - -#: core/validators.py:437 -#, python-format -msgid "Please enter a valid decimal number with at most %s decimal place." -msgid_plural "Please enter a valid decimal number with at most %s decimal places." -msgstr[0] "" -msgstr[1] "" - -#: core/validators.py:445 -msgid "Please enter a valid floating point number." +#: contrib/admin/models.py:23 +msgid "action flag" msgstr "" -#: core/validators.py:454 -#, python-format -msgid "Make sure your uploaded file is at least %s bytes big." +#: contrib/admin/models.py:24 +msgid "change message" +msgstr "promijeni poruku" + +#: contrib/admin/models.py:27 +msgid "log entry" msgstr "" -#: core/validators.py:455 -#, python-format -msgid "Make sure your uploaded file is at most %s bytes big." +#: contrib/admin/models.py:28 +msgid "log entries" msgstr "" -#: core/validators.py:472 -msgid "The format for this field is wrong." -msgstr "" +#: contrib/admin/templates/admin/404.html:4 +#: contrib/admin/templates/admin/404.html:8 +msgid "Page not found" +msgstr "Stranica nije pronađena" -#: core/validators.py:487 -msgid "This field is invalid." -msgstr "" +#: contrib/admin/templates/admin/404.html:10 +msgid "We're sorry, but the requested page could not be found." +msgstr "Ispričavamo se, ali tražena stranica nije pronađena." -#: core/validators.py:523 -#, python-format -msgid "Could not retrieve anything from %s." -msgstr "" +#: contrib/admin/templates/admin/500.html:4 +#: contrib/admin/templates/admin/base.html:37 +#: contrib/admin/templates/admin/change_form.html:12 +#: contrib/admin/templates/admin/change_list.html:5 +#: contrib/admin/templates/admin/delete_confirmation.html:5 +#: contrib/admin/templates/admin/invalid_setup.html:4 +#: contrib/admin/templates/admin/object_history.html:4 +#: contrib/admin/templates/admin/auth/user/change_password.html:11 +#: contrib/admin/templates/admin_doc/bookmarklets.html:3 +#: contrib/admin/templates/registration/logged_out.html:4 +#: contrib/admin/templates/registration/password_change_done.html:3 +#: contrib/admin/templates/registration/password_change_form.html:3 +#: contrib/admin/templates/registration/password_reset_done.html:4 +#: contrib/admin/templates/registration/password_reset_form.html:4 +msgid "Home" +msgstr "Doma" -#: core/validators.py:526 -#, python-format -msgid "The URL %(url)s returned the invalid Content-Type header '%(contenttype)s'." -msgstr "" +#: contrib/admin/templates/admin/500.html:4 +msgid "Server error" +msgstr "Serverska pogreška" -#: core/validators.py:559 -#, python-format -msgid "" -"Please close the unclosed %(tag)s tag from line %(line)s. (Line starts with " -"\"%(start)s\".)" -msgstr "" +#: contrib/admin/templates/admin/500.html:6 +msgid "Server error (500)" +msgstr "Serverska pogreška (500)" -#: core/validators.py:563 -#, python-format -msgid "" -"Some text starting on line %(line)s is not allowed in that context. (Line " -"starts with \"%(start)s\".)" -msgstr "" +#: contrib/admin/templates/admin/500.html:9 +msgid "Server Error (500)" +msgstr "Serverska pogreška (500)" -#: core/validators.py:568 -#, python-format -msgid "" -"\"%(attr)s\" on line %(line)s is an invalid attribute. (Line starts with \"%" -"(start)s\".)" -msgstr "" - -#: core/validators.py:573 -#, python-format -msgid "" -"\"<%(tag)s>\" on line %(line)s is an invalid tag. (Line starts with \"%" -"(start)s\".)" -msgstr "" - -#: core/validators.py:577 -#, python-format -msgid "" -"A tag on line %(line)s is missing one or more required attributes. (Line " -"starts with \"%(start)s\".)" -msgstr "" - -#: core/validators.py:582 -#, python-format -msgid "" -"The \"%(attr)s\" attribute on line %(line)s has an invalid value. (Line " -"starts with \"%(start)s\".)" -msgstr "" - -#: views/generic/create_update.py:43 -#, python-format -msgid "The %(verbose_name)s was created successfully." -msgstr "" - -#: views/generic/create_update.py:117 -#, python-format -msgid "The %(verbose_name)s was updated successfully." -msgstr "" - -#: views/generic/create_update.py:184 -#, python-format -msgid "The %(verbose_name)s was deleted." -msgstr "" - -#: newforms/models.py:180 newforms/fields.py:478 -msgid "Select a valid choice. That choice is not one of the available choices." -msgstr "" - -#: newforms/models.py:197 newforms/fields.py:494 newforms/fields.py:570 -msgid "Enter a list of values." -msgstr "" - -#: newforms/models.py:203 newforms/fields.py:500 -#, python-format -msgid "Select a valid choice. %s is not one of the available choices." -msgstr "" - -#: newforms/fields.py:116 -#, python-format -msgid "Ensure this value has at most %(max)d characters (it has %(length)d)." -msgstr "" - -#: newforms/fields.py:118 -#, python-format -msgid "Ensure this value has at least %(min)d characters (it has %(length)d)." -msgstr "" - -#: newforms/fields.py:144 newforms/fields.py:167 newforms/fields.py:197 -#, python-format -msgid "Ensure this value is less than or equal to %s." -msgstr "" - -#: newforms/fields.py:146 newforms/fields.py:169 newforms/fields.py:199 -#, python-format -msgid "Ensure this value is greater than or equal to %s." -msgstr "" - -#: newforms/fields.py:165 newforms/fields.py:192 -msgid "Enter a number." -msgstr "" - -#: newforms/fields.py:201 -#, python-format -msgid "Ensure that there are no more than %s digits in total." -msgstr "" - -#: newforms/fields.py:203 -#, python-format -msgid "Ensure that there are no more than %s decimal places." -msgstr "" - -#: newforms/fields.py:205 -#, python-format -msgid "Ensure that there are no more than %s digits before the decimal point." -msgstr "" - -#: newforms/fields.py:238 newforms/fields.py:610 -msgid "Enter a valid date." -msgstr "" - -#: newforms/fields.py:265 newforms/fields.py:612 -msgid "Enter a valid time." -msgstr "" - -#: newforms/fields.py:301 -msgid "Enter a valid date/time." -msgstr "" - -#: newforms/fields.py:314 -msgid "Enter a valid value." -msgstr "" - -#: newforms/fields.py:378 +#: contrib/admin/templates/admin/500.html:10 #, fuzzy -msgid "No file was submitted." -msgstr "Ne." - -#: newforms/fields.py:403 newforms/fields.py:425 -msgid "Enter a valid URL." -msgstr "" - -#: newforms/fields.py:427 -msgid "This URL appears to be a broken link." -msgstr "" - -#: contrib/humanize/templatetags/humanize.py:17 -msgid "th" -msgstr "" - -#: contrib/humanize/templatetags/humanize.py:17 -msgid "st" -msgstr "" - -#: contrib/humanize/templatetags/humanize.py:17 -msgid "nd" -msgstr "" - -#: contrib/humanize/templatetags/humanize.py:17 -msgid "rd" -msgstr "" - -#: contrib/humanize/templatetags/humanize.py:47 -#, python-format -msgid "%(value).1f million" -msgid_plural "%(value).1f million" -msgstr[0] "" -msgstr[1] "" - -#: contrib/humanize/templatetags/humanize.py:50 -#, python-format -msgid "%(value).1f billion" -msgid_plural "%(value).1f billion" -msgstr[0] "" -msgstr[1] "" - -#: contrib/humanize/templatetags/humanize.py:53 -#, python-format -msgid "%(value).1f trillion" -msgid_plural "%(value).1f trillion" -msgstr[0] "" -msgstr[1] "" - -#: contrib/humanize/templatetags/humanize.py:68 -msgid "one" -msgstr "" - -#: contrib/humanize/templatetags/humanize.py:68 -msgid "two" -msgstr "" - -#: contrib/humanize/templatetags/humanize.py:68 -msgid "three" -msgstr "" - -#: contrib/humanize/templatetags/humanize.py:68 -msgid "four" -msgstr "" - -#: contrib/humanize/templatetags/humanize.py:68 -msgid "five" -msgstr "" - -#: contrib/humanize/templatetags/humanize.py:68 -msgid "six" -msgstr "" - -#: contrib/humanize/templatetags/humanize.py:68 -msgid "seven" -msgstr "" - -#: contrib/humanize/templatetags/humanize.py:68 -msgid "eight" -msgstr "" - -#: contrib/humanize/templatetags/humanize.py:68 -msgid "nine" -msgstr "" - -#: contrib/redirects/models.py:7 -msgid "redirect from" -msgstr "" - -#: contrib/redirects/models.py:8 msgid "" -"This should be an absolute path, excluding the domain name. Example: '/" -"events/search/'." -msgstr "" +"There's been an error. It's been reported to the site administrators via e-" +"mail and should be fixed shortly. Thanks for your patience." +msgstr "i." -#: contrib/redirects/models.py:9 -msgid "redirect to" -msgstr "" +#: contrib/admin/templates/admin/base.html:26 +msgid "Welcome," +msgstr "Dobrodošli," -#: contrib/redirects/models.py:10 +#: contrib/admin/templates/admin/base.html:28 +#: contrib/admin/templates/admin_doc/bookmarklets.html:3 +msgid "Documentation" +msgstr "Dokumentacija" + +#: contrib/admin/templates/admin/base.html:29 +#: contrib/admin/templates/admin/auth/user/change_password.html:14 +#: contrib/admin/templates/admin/auth/user/change_password.html:45 +msgid "Change password" +msgstr "Promijeni lozinku" + +#: contrib/admin/templates/admin/base.html:30 +#: contrib/comments/templates/comments/form.html:6 +msgid "Log out" +msgstr "Odjava" + +#: contrib/admin/templates/admin/base_site.html:4 +msgid "Django site admin" +msgstr "Django administracija stranica" + +#: contrib/admin/templates/admin/base_site.html:7 +msgid "Django administration" +msgstr "Django administracija" + +#: contrib/admin/templates/admin/change_form.html:14 +#: contrib/admin/templates/admin/index.html:28 +msgid "Add" +msgstr "Dodaj" + +#: contrib/admin/templates/admin/change_form.html:20 +#: contrib/admin/templates/admin/object_history.html:4 +msgid "History" +msgstr "Povijest" + +#: contrib/admin/templates/admin/change_form.html:21 +msgid "View on site" +msgstr "Pogledaj na stranicama" + +#: contrib/admin/templates/admin/change_form.html:31 +#: contrib/admin/templates/admin/auth/user/change_password.html:23 +msgid "Please correct the error below." +msgid_plural "Please correct the errors below." +msgstr[0] "Molim ispravite navedenu grešku." +msgstr[1] "Molim ispravite navedene greške." + +#: contrib/admin/templates/admin/change_form.html:49 +msgid "Ordering" +msgstr "Redoslijed" + +#: contrib/admin/templates/admin/change_form.html:52 +msgid "Order:" +msgstr "Redoslijed" + +#: contrib/admin/templates/admin/change_list.html:11 +#, python-format +msgid "Add %(name)s" +msgstr "Add %(name)s" + +#: contrib/admin/templates/admin/delete_confirmation.html:8 +#: contrib/admin/templates/admin/submit_line.html:3 +msgid "Delete" +msgstr "Izbriši" + +#: contrib/admin/templates/admin/delete_confirmation.html:13 +#, python-format msgid "" -"This can be either an absolute path (as above) or a full URL starting with " -"'http://'." +"Deleting the %(object_name)s '%(escaped_object)s' would result in deleting " +"related objects, but your account doesn't have permission to delete the " +"following types of objects:" +msgstr "" +"Brisanje %(object_name)s '%(escaped_object)s' rezultiralo bi brisanjem " +"povezanih objekta, ali vi nemate privilegije za brisanje navedenih objekta: " + +#: contrib/admin/templates/admin/delete_confirmation.html:20 +#, python-format +msgid "" +"Are you sure you want to delete the %(object_name)s \"%(escaped_object)s\"? " +"All of the following related items will be deleted:" msgstr "" -#: contrib/redirects/models.py:13 -msgid "redirect" +#: contrib/admin/templates/admin/delete_confirmation.html:25 +#, fuzzy +msgid "Yes, I'm sure" +msgstr "Da, siguran sam" + +#: contrib/admin/templates/admin/filter.html:2 +#, python-format +msgid " By %(filter_title)s " +msgstr "Po %(filter_title)s " + +#: contrib/admin/templates/admin/filters.html:4 +msgid "Filter" +msgstr "Filter" + +#: contrib/admin/templates/admin/index.html:17 +#, python-format +msgid "Models available in the %(name)s application." +msgstr "Modeli dostupni u %(name)s aplikaciji." + +#: contrib/admin/templates/admin/index.html:18 +#, python-format +msgid "%(name)s" +msgstr "%(name)s" + +#: contrib/admin/templates/admin/index.html:34 +msgid "Change" +msgstr "Promijeni" + +#: contrib/admin/templates/admin/index.html:44 +msgid "You don't have permission to edit anything." +msgstr "Nemate privilegije za promjenu podataka." + +#: contrib/admin/templates/admin/index.html:52 +msgid "Recent Actions" +msgstr "Nedavne promjene" + +#: contrib/admin/templates/admin/index.html:53 +msgid "My Actions" +msgstr "Moje promjene" + +#: contrib/admin/templates/admin/index.html:57 +msgid "None available" +msgstr "Nije dostupno" + +#: contrib/admin/templates/admin/invalid_setup.html:8 +#, fuzzy +msgid "" +"Something's wrong with your database installation. Make sure the appropriate " +"database tables have been created, and make sure the database is readable by " +"the appropriate user." +msgstr "" +"Nešto je pogrešno sa instalacijom/postavkama baze. Provjerite jesu li " +"potrebne tablice u bazi kreirane i provjerite je li baza dostupna korisniku." + +#: contrib/admin/templates/admin/login.html:17 +#: contrib/comments/templates/comments/form.html:6 +#: contrib/comments/templates/comments/form.html:8 +msgid "Username:" +msgstr "Korisničko ime:" + +#: contrib/admin/templates/admin/login.html:20 +#: contrib/comments/templates/comments/form.html:8 +msgid "Password:" +msgstr "Lozinka:" + +#: contrib/admin/templates/admin/login.html:25 +#: contrib/admin/views/decorators.py:25 +msgid "Log in" +msgstr "Prijavi se" + +#: contrib/admin/templates/admin/object_history.html:17 +msgid "Date/time" +msgstr "Datum/vrijeme" + +#: contrib/admin/templates/admin/object_history.html:18 +msgid "User" +msgstr "Korisnik" + +#: contrib/admin/templates/admin/object_history.html:19 +msgid "Action" +msgstr "Akcija" + +#: contrib/admin/templates/admin/object_history.html:25 +msgid "DATE_WITH_TIME_FULL" msgstr "" -#: contrib/redirects/models.py:14 -msgid "redirects" +#: contrib/admin/templates/admin/object_history.html:35 +msgid "" +"This object doesn't have a change history. It probably wasn't added via this " +"admin site." +msgstr "" +"Ovaj objekt nema povijest promjena. Moguće je da nije dodan korištenjem ove " +"administracije." + +#: contrib/admin/templates/admin/pagination.html:10 +msgid "Show all" +msgstr "Prikaži sve" + +#: contrib/admin/templates/admin/search_form.html:8 +msgid "Go" +msgstr "Idi" + +#: contrib/admin/templates/admin/search_form.html:10 +#, python-format +msgid "1 result" +msgid_plural "%(counter)s results" +msgstr[0] "1 rezultat" +msgstr[1] "%(counter)s rezultata" + +#: contrib/admin/templates/admin/search_form.html:10 +#, python-format +msgid "%(full_result_count)s total" +msgstr "%(full_result_count)s ukupno" + +#: contrib/admin/templates/admin/submit_line.html:4 +msgid "Save as new" +msgstr "Spremi kao novi unos" + +#: contrib/admin/templates/admin/submit_line.html:5 +#, fuzzy +msgid "Save and add another" +msgstr "Spremi i dodaj novi unos" + +#: contrib/admin/templates/admin/submit_line.html:6 +#, fuzzy +msgid "Save and continue editing" +msgstr "Spremi i nastavi uređivati" + +#: contrib/admin/templates/admin/submit_line.html:7 +msgid "Save" +msgstr "Spremi" + +#: contrib/admin/templates/admin/auth/user/add_form.html:6 +#, fuzzy +msgid "" +"First, enter a username and password. Then, you'll be able to edit more user " +"options." +msgstr "" +"Prvo, unesi korisničko ime i lozinku. Onda možete promijeniti više postavki " +"korisnika." + +#: contrib/admin/templates/admin/auth/user/add_form.html:12 +msgid "Username" +msgstr "Korisničko ime" + +#: contrib/admin/templates/admin/auth/user/add_form.html:18 +#: contrib/admin/templates/admin/auth/user/change_password.html:33 +msgid "Password" +msgstr "Lozinka" + +#: contrib/admin/templates/admin/auth/user/add_form.html:23 +#: contrib/admin/templates/admin/auth/user/change_password.html:38 +msgid "Password (again)" +msgstr "Lozinka (unesi ponovo)" + +#: contrib/admin/templates/admin/auth/user/add_form.html:24 +#: contrib/admin/templates/admin/auth/user/change_password.html:39 +msgid "Enter the same password as above, for verification." +msgstr "Unesi istu lozinku, za potvrdu." + +#: contrib/admin/templates/admin/auth/user/change_password.html:27 +#, python-format +msgid "Enter a new password for the user %(username)s." +msgstr "Unesi novu lozinku za korisnika %(username)s." + +#: contrib/admin/templates/admin_doc/bookmarklets.html:3 +msgid "Bookmarklets" msgstr "" -#: contrib/comments/models.py:67 contrib/comments/models.py:166 +#: contrib/admin/templates/admin_doc/bookmarklets.html:4 +msgid "Documentation bookmarklets" +msgstr "" + +#: contrib/admin/templates/admin_doc/bookmarklets.html:8 +msgid "" +"\n" +"

    To install bookmarklets, drag the link to your bookmarks\n" +"toolbar, or right-click the link and add it to your bookmarks. Now you can\n" +"select the bookmarklet from any page in the site. Note that some of these\n" +"bookmarklets require you to be viewing the site from a computer designated\n" +"as \"internal\" (talk to your system administrator if you aren't sure if\n" +"your computer is \"internal\").

    \n" +msgstr "" +"\n" +"

    To install bookmarklets, drag the link to your bookmarks\n" +"toolbar, or right-click the link and add it to your bookmarks. Now you can\n" +"select the bookmarklet from any page in the site. Note that some of these\n" +"bookmarklets require you to be viewing the site from a computer designated\n" +"as \"internal\" (talk to your system administrator if you aren't sure if\n" +"your computer is \"internal\").

    \n" + +#: contrib/admin/templates/admin_doc/bookmarklets.html:18 +msgid "Documentation for this page" +msgstr "Dokumentacija za ovu stranicu" + +#: contrib/admin/templates/admin_doc/bookmarklets.html:19 +msgid "" +"Jumps you from any page to the documentation for the view that generates " +"that page." +msgstr "" +"Preusmjeri te sa bilo koje stranice na dokumentaciju za taj prikaz (view) " +"koji generira stranicu." + +#: contrib/admin/templates/admin_doc/bookmarklets.html:21 +msgid "Show object ID" +msgstr "Prikaži ID objekta" + +#: contrib/admin/templates/admin_doc/bookmarklets.html:22 +msgid "" +"Shows the content-type and unique ID for pages that represent a single " +"object." +msgstr "" +"Prikazuje tip sadržaja i jedinstveni ID za stranice koje predstavljaju " +"pojedinačan objekt." + +#: contrib/admin/templates/admin_doc/bookmarklets.html:24 +msgid "Edit this object (current window)" +msgstr "Uredi objekt (u trenutno prozoru)" + +#: contrib/admin/templates/admin_doc/bookmarklets.html:25 +msgid "Jumps to the admin page for pages that represent a single object." +msgstr "" +"Preusmjeri na admin stranicu za stranice koje predstavljaju pojedinačan " +"objekt." + +#: contrib/admin/templates/admin_doc/bookmarklets.html:27 +msgid "Edit this object (new window)" +msgstr "Uredi objekt (novi prozor)" + +#: contrib/admin/templates/admin_doc/bookmarklets.html:28 +msgid "As above, but opens the admin page in a new window." +msgstr "Isto kao prethodno, ali otvara admin stranicu u novom prozoru." + +#: contrib/admin/templates/registration/logged_out.html:8 +msgid "Thanks for spending some quality time with the Web site today." +msgstr "Hvala što ste proveli malo kvalitetnog vremena na stranicama danas." + +#: contrib/admin/templates/registration/logged_out.html:10 +msgid "Log in again" +msgstr "Prijavite se ponovo" + +#: 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:5 +#: contrib/admin/templates/registration/password_change_form.html:9 +msgid "Password change" +msgstr "Promjena lozinke" + +#: contrib/admin/templates/registration/password_change_done.html:5 +#: contrib/admin/templates/registration/password_change_done.html:9 +msgid "Password change successful" +msgstr "Promjena lozinke uspješna" + +#: contrib/admin/templates/registration/password_change_done.html:11 +msgid "Your password was changed." +msgstr "Vaša lozinka je promijenjena." + +#: contrib/admin/templates/registration/password_change_form.html:11 +#, fuzzy +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." +msgstr "" +"Molim unesite staru lozinku, zbog sigurnosti, i onda unesite novu lozinku " +"dvaput da bi mogli provjeriti jeste li ispravno unesli." + +#: contrib/admin/templates/registration/password_change_form.html:16 +msgid "Old password:" +msgstr "Stara lozinka:" + +#: contrib/admin/templates/registration/password_change_form.html:18 +msgid "New password:" +msgstr "Nova lozinka:" + +#: contrib/admin/templates/registration/password_change_form.html:20 +msgid "Confirm password:" +msgstr "Potvrdi lozinku:" + +#: contrib/admin/templates/registration/password_change_form.html:22 +msgid "Change my password" +msgstr "Promijeni lozinku" + +#: contrib/admin/templates/registration/password_reset_done.html:4 +#: contrib/admin/templates/registration/password_reset_form.html:4 +#: contrib/admin/templates/registration/password_reset_form.html:6 +#: contrib/admin/templates/registration/password_reset_form.html:10 +msgid "Password reset" +msgstr "Resetiranje lozinke" + +#: contrib/admin/templates/registration/password_reset_done.html:6 +#: contrib/admin/templates/registration/password_reset_done.html:10 +msgid "Password reset successful" +msgstr "Resetiranje lozinke uspješno" + +#: contrib/admin/templates/registration/password_reset_done.html:12 +msgid "" +"We've e-mailed a new password to the e-mail address you submitted. You " +"should be receiving it shortly." +msgstr "" +"Poslali smo novu lozinku na e-mail adresu koju ste unijeli. Trebali bi je " +"uskoro primiti." + +#: contrib/admin/templates/registration/password_reset_email.html:2 +msgid "You're receiving this e-mail because you requested a password reset" +msgstr "Dobili ste ovaj e-mail jer ste zatražili resetiranje lozinke" + +#: contrib/admin/templates/registration/password_reset_email.html:3 +#, python-format +msgid "for your user account at %(site_name)s" +msgstr "za vaš korisnički račun na %(site_name)s" + +#: contrib/admin/templates/registration/password_reset_email.html:5 +#, python-format +msgid "Your new password is: %(new_password)s" +msgstr "Vaša nova lozinka je: %(new_password)s" + +#: contrib/admin/templates/registration/password_reset_email.html:7 +msgid "Feel free to change this password by going to this page:" +msgstr "Slobodno promijenite lozinku odlaskom na ovu stranicu:" + +#: contrib/admin/templates/registration/password_reset_email.html:11 +msgid "Your username, in case you've forgotten:" +msgstr "Vaše korisničko ime, u slučaju da ste zaboravili:" + +#: contrib/admin/templates/registration/password_reset_email.html:13 +msgid "Thanks for using our site!" +msgstr "Hvala šta koristite naše stranice!" + +#: contrib/admin/templates/registration/password_reset_email.html:15 +#, python-format +msgid "The %(site_name)s team" +msgstr "%(site_name)s tim" + +#: contrib/admin/templates/registration/password_reset_form.html:12 +#, fuzzy +msgid "" +"Forgotten your password? Enter your e-mail address below, and we'll reset " +"your password and e-mail the new one to you." +msgstr "" +"Zaboravili ste lozinku? Unesite vašu e-mail adresu ispod i onda ćemo " +"resetirati vašu lozinku i poslati novu na vaš e-mail." + +#: contrib/admin/templates/registration/password_reset_form.html:16 +msgid "E-mail address:" +msgstr "E-mail adresa:" + +#: contrib/admin/templates/registration/password_reset_form.html:16 +msgid "Reset my password" +msgstr "Resetiraj lozinku" + +#: contrib/admin/templates/widget/date_time.html:3 +msgid "Date:" +msgstr "Datum:" + +#: contrib/admin/templates/widget/date_time.html:4 +msgid "Time:" +msgstr "Vrijeme:" + +#: contrib/admin/templates/widget/file.html:2 +msgid "Currently:" +msgstr "Trenutno:" + +#: contrib/admin/templates/widget/file.html:3 +msgid "Change:" +msgstr "Promijeni:" + +#: contrib/admin/templatetags/admin_list.py:257 +msgid "All dates" +msgstr "Svi datumi" + +#: contrib/admin/views/auth.py:20 contrib/admin/views/main.py:267 +#, python-format +msgid "The %(name)s \"%(obj)s\" was added successfully." +msgstr "%(name)s \"%(obj)s\" uspješno je dodano." + +#: contrib/admin/views/auth.py:25 contrib/admin/views/main.py:271 +#: contrib/admin/views/main.py:356 +msgid "You may edit it again below." +msgstr "Možete ponovo urediti unos dolje." + +#: contrib/admin/views/auth.py:31 +msgid "Add user" +msgstr "Dodaj korisnika" + +#: contrib/admin/views/auth.py:58 +msgid "Password changed successfully." +msgstr "Lozinka uspješno promijenjena." + +#: contrib/admin/views/auth.py:65 +#, python-format +msgid "Change password: %s" +msgstr "Promijeni lozinku: %s" + +#: contrib/admin/views/decorators.py:11 contrib/auth/forms.py:60 +#, fuzzy +msgid "" +"Please enter a correct username and password. Note that both fields are case-" +"sensitive." +msgstr "" +"Molim unesite ispravno korisničko ime i lozinku. Uzmite u obzir da oba polja " +"razlikuju velika/mala slova." + +#: contrib/admin/views/decorators.py:63 +msgid "" +"Please log in again, because your session has expired. Don't worry: Your " +"submission has been saved." +msgstr "" +"Molim prijavite se ponovo jer je vaš session istekao. Nemojte brinuti, vaš " +"unos je sačuvan." + +#: contrib/admin/views/decorators.py:70 +#, fuzzy +msgid "" +"Looks like your browser isn't configured to accept cookies. Please enable " +"cookies, reload this page, and try again." +msgstr "" +"Izgleda da vaš browser nije podešen da prihvaća kolačiće (cookies). Molim " +"promijenite postavke, ponovno učitajte stranicu i pokušajte ponovo." + +#: contrib/admin/views/decorators.py:84 +msgid "Usernames cannot contain the '@' character." +msgstr "Korisnička imena ne mogu sadržavati '@' znak." + +#: contrib/admin/views/decorators.py:86 +#, python-format +msgid "Your e-mail address is not your username. Try '%s' instead." +msgstr "Vaša e-mail adresa nije vaše korisničko ime. Pokušajte sa '%s'" + +#: contrib/admin/views/doc.py:48 contrib/admin/views/doc.py:50 +#: contrib/admin/views/doc.py:52 +msgid "tag:" +msgstr "tag:" + +#: contrib/admin/views/doc.py:79 contrib/admin/views/doc.py:81 +#: contrib/admin/views/doc.py:83 +msgid "filter:" +msgstr "filter:" + +#: contrib/admin/views/doc.py:137 contrib/admin/views/doc.py:139 +#: contrib/admin/views/doc.py:141 +msgid "view:" +msgstr "prikaz:" + +#: contrib/admin/views/doc.py:166 +#, python-format +msgid "App %r not found" +msgstr "Aplikacija %r nije pronađena" + +#: contrib/admin/views/doc.py:173 +#, python-format +msgid "Model %(name)r not found in app %(label)r" +msgstr "Model %(name)r nije pronađen u aplikaciji %(label)r" + +#: contrib/admin/views/doc.py:185 +#, python-format +msgid "the related `%(label)s.%(type)s` object" +msgstr "povezan `%(label)s.%(type)s` objekt" + +#: contrib/admin/views/doc.py:185 contrib/admin/views/doc.py:207 +#: contrib/admin/views/doc.py:221 contrib/admin/views/doc.py:226 +msgid "model:" +msgstr "model:" + +#: contrib/admin/views/doc.py:216 +#, python-format +msgid "related `%(label)s.%(name)s` objects" +msgstr "povezani `%(label)s.%(name)s` objekti" + +#: contrib/admin/views/doc.py:221 +#, python-format +msgid "all %s" +msgstr "svi %s" + +#: contrib/admin/views/doc.py:226 +#, python-format +msgid "number of %s" +msgstr "broj %s" + +#: contrib/admin/views/doc.py:231 +#, python-format +msgid "Fields on %s objects" +msgstr "Polja na %s objektima" + +#: contrib/admin/views/doc.py:293 contrib/admin/views/doc.py:304 +#: contrib/admin/views/doc.py:306 contrib/admin/views/doc.py:312 +#: contrib/admin/views/doc.py:313 contrib/admin/views/doc.py:315 +msgid "Integer" +msgstr "Cijeli broj" + +#: contrib/admin/views/doc.py:294 +msgid "Boolean (Either True or False)" +msgstr "Boolean (True or False)" + +#: contrib/admin/views/doc.py:295 contrib/admin/views/doc.py:314 +#, python-format +msgid "String (up to %(max_length)s)" +msgstr "Slova (do %(max_length)s)" + +#: contrib/admin/views/doc.py:296 +msgid "Comma-separated integers" +msgstr "Cijeli brojevi odvojeni zarezom" + +#: contrib/admin/views/doc.py:297 +msgid "Date (without time)" +msgstr "Datum (bez vremena/sati)" + +#: contrib/admin/views/doc.py:298 +msgid "Date (with time)" +msgstr "Datum (sa vremenom/satima)" + +#: contrib/admin/views/doc.py:299 +msgid "Decimal number" +msgstr "Decimalni broj" + +#: contrib/admin/views/doc.py:300 +msgid "E-mail address" +msgstr "E-mail adresa" + +#: contrib/admin/views/doc.py:301 contrib/admin/views/doc.py:302 +#: contrib/admin/views/doc.py:305 +msgid "File path" +msgstr "Put do datoteke" + +#: contrib/admin/views/doc.py:303 +msgid "Floating point number" +msgstr "Floating point number" + +#: contrib/admin/views/doc.py:307 contrib/comments/models.py:85 +msgid "IP address" +msgstr "IP adresa" + +#: contrib/admin/views/doc.py:309 +msgid "Boolean (Either True, False or None)" +msgstr "Boolean (Either True, False or None)" + +#: contrib/admin/views/doc.py:310 +msgid "Relation to parent model" +msgstr "Relation to parent model" + +#: contrib/admin/views/doc.py:311 +msgid "Phone number" +msgstr "Telefonski broj" + +#: contrib/admin/views/doc.py:316 +msgid "Text" +msgstr "Tekst" + +#: contrib/admin/views/doc.py:317 +msgid "Time" +msgstr "Vrijeme" + +#: contrib/admin/views/doc.py:318 contrib/flatpages/models.py:7 +msgid "URL" +msgstr "URL" + +#: contrib/admin/views/doc.py:319 +msgid "U.S. state (two uppercase letters)" +msgstr "U.S. state (two uppercase letters)" + +#: contrib/admin/views/doc.py:320 +msgid "XML text" +msgstr "XML tekst" + +#: contrib/admin/views/doc.py:346 +#, python-format +msgid "%s does not appear to be a urlpattern object" +msgstr "izgleda da %s nije urlpattern objekt" + +#: contrib/admin/views/main.py:233 +msgid "Site administration" +msgstr "Administracija stranica" + +#: contrib/admin/views/main.py:280 contrib/admin/views/main.py:365 +#, python-format +msgid "You may add another %s below." +msgstr "Možete dodati još jedan %s ispod." + +#: contrib/admin/views/main.py:298 +#, python-format +msgid "Add %s" +msgstr "Dodaj %s" + +#: contrib/admin/views/main.py:344 +#, python-format +msgid "Added %s." +msgstr "Dodano %s" + +#: contrib/admin/views/main.py:344 contrib/admin/views/main.py:346 +#: contrib/admin/views/main.py:348 core/validators.py:283 +#: db/models/manipulators.py:309 +msgid "and" +msgstr "i" + +#: contrib/admin/views/main.py:346 +#, python-format +msgid "Changed %s." +msgstr "Promijenjeno %s." + +#: contrib/admin/views/main.py:348 +#, python-format +msgid "Deleted %s." +msgstr "" + +#: contrib/admin/views/main.py:351 +#, fuzzy +msgid "No fields changed." +msgstr "Nije bilo promjena polja." + +#: contrib/admin/views/main.py:354 +#, python-format +msgid "The %(name)s \"%(obj)s\" was changed successfully." +msgstr "%(name)s \"%(obj)s\" uspješno promijenjeno." + +#: contrib/admin/views/main.py:362 +#, python-format +msgid "" +"The %(name)s \"%(obj)s\" was added successfully. You may edit it again below." +msgstr "%(name)s \"%(obj)s\" uspješno dodan. Možete ponovo urediti dolje." + +#: contrib/admin/views/main.py:400 +#, python-format +msgid "Change %s" +msgstr "Promijeni %s" + +#: contrib/admin/views/main.py:487 +#, python-format +msgid "One or more %(fieldname)s in %(name)s: %(obj)s" +msgstr "Jedan ili više %(fieldname)s in %(name)s: %(obj)s" + +#: contrib/admin/views/main.py:492 +#, python-format +msgid "One or more %(fieldname)s in %(name)s:" +msgstr "Jedan ili više %(fieldname)s in %(name)s" + +#: contrib/admin/views/main.py:524 +#, python-format +msgid "The %(name)s \"%(obj)s\" was deleted successfully." +msgstr "%(name)s \"%(obj)s\" uspješno izbrisan." + +#: contrib/admin/views/main.py:527 +msgid "Are you sure?" +msgstr "Jeste li sigurni?" + +#: contrib/admin/views/main.py:549 +#, python-format +msgid "Change history: %s" +msgstr "Promijeni povijest: %s" + +#: contrib/admin/views/main.py:583 +#, python-format +msgid "Select %s" +msgstr "Odaberi %s" + +#: contrib/admin/views/main.py:583 +#, python-format +msgid "Select %s to change" +msgstr "Odaberi %s za promjenu" + +#: contrib/admin/views/main.py:784 +msgid "Database error" +msgstr "Pogreška u bazi" + +#: contrib/auth/forms.py:17 contrib/auth/forms.py:138 +msgid "The two password fields didn't match." +msgstr "Dva polja za lozinku nisu jednaka." + +#: contrib/auth/forms.py:25 +msgid "A user with that username already exists." +msgstr "Korisnik sa navedenim imenom već postoji." + +#: contrib/auth/forms.py:53 +msgid "" +"Your Web browser doesn't appear to have cookies enabled. Cookies are " +"required for logging in." +msgstr "" +"Izgleda da Vaš browser ne podržava kolačiće (cookies). Kolačići su potrebni " +"da bi se prijavili." + +#: contrib/auth/forms.py:62 +msgid "This account is inactive." +msgstr "Ovaj korisnički račun nije aktivan." + +#: contrib/auth/forms.py:84 +msgid "" +"That e-mail address doesn't have an associated user account. Are you sure " +"you've registered?" +msgstr "" +"Za navedenu e-mail adresu ne postoji korisnički račun. Jeste li sigurni da " +"ste registrirani?" + +#: contrib/auth/forms.py:107 +#, python-format +msgid "Password reset on %s" +msgstr "Lozinka resetirana na %s" + +#: contrib/auth/forms.py:117 +msgid "The two 'new password' fields didn't match." +msgstr "Dva polja 'nova lozinka' nisu jednaka." + +#: contrib/auth/forms.py:124 +msgid "Your old password was entered incorrectly. Please enter it again." +msgstr "Vaša stara lozinka je pogrešno unesena. Molim unesite ponovo." + +#: contrib/auth/models.py:73 contrib/auth/models.py:93 +msgid "name" +msgstr "ime" + +#: contrib/auth/models.py:75 +msgid "codename" +msgstr "kodno ime" + +#: contrib/auth/models.py:78 +msgid "permission" +msgstr "privilegija" + +#: contrib/auth/models.py:79 contrib/auth/models.py:94 +msgid "permissions" +msgstr "privilegije" + +#: contrib/auth/models.py:97 +msgid "group" +msgstr "grupa" + +#: contrib/auth/models.py:98 contrib/auth/models.py:141 +msgid "groups" +msgstr "grupe" + +#: contrib/auth/models.py:131 +msgid "username" +msgstr "korisničko ime" + +#: contrib/auth/models.py:131 +msgid "" +"Required. 30 characters or fewer. Alphanumeric characters only (letters, " +"digits and underscores)." +msgstr "" +"Obavezno 30 alfanumeričkih znakova ili manje (slova, brojevi i povlaka)." + +#: contrib/auth/models.py:132 +msgid "first name" +msgstr "ime" + +#: contrib/auth/models.py:133 +msgid "last name" +msgstr "prezime" + +#: contrib/auth/models.py:134 +msgid "e-mail address" +msgstr "e-mail adresa" + +#: contrib/auth/models.py:135 +msgid "password" +msgstr "lozinka" + +#: contrib/auth/models.py:135 +msgid "" +"Use '[algo]$[salt]$[hexdigest]' or use the change " +"password form." +msgstr "" +"Koristite '[algo]$[salt]$[hexdigest]' ili formu za " +"promjenu lozinke." + +#: contrib/auth/models.py:136 +msgid "staff status" +msgstr "status osoblja" + +#: contrib/auth/models.py:136 +msgid "Designates whether the user can log into this admin site." +msgstr "Određuje može li se korisnik prijaviti na ove stranice administracije." + +#: contrib/auth/models.py:137 +msgid "active" +msgstr "aktivan" + +#: contrib/auth/models.py:137 +msgid "" +"Designates whether this user can log into the Django admin. Unselect this " +"instead of deleting accounts." +msgstr "" +"Određuje može li se korisnik prijaviti na stranice Django administracije. " +"Koristite ovu opciju umjesto brisanja korisničkih računa." + +#: contrib/auth/models.py:138 +msgid "superuser status" +msgstr "superuser status" + +#: contrib/auth/models.py:138 +msgid "" +"Designates that this user has all permissions without explicitly assigning " +"them." +msgstr "" +"Određuje da ovaj korisnik ima sve privilegije te uklanja potrebu da se " +"privilegije dodaju eksplicitno/ručno." + +#: contrib/auth/models.py:139 +msgid "last login" +msgstr "posljednja prijava" + +#: contrib/auth/models.py:140 +msgid "date joined" +msgstr "datum učlanjenja" + +#: contrib/auth/models.py:142 +msgid "" +"In addition to the permissions manually assigned, this user will also get " +"all permissions granted to each group he/she is in." +msgstr "" +"Uz ručno dodane privilegije korisnik će također dobiti sve privilegije " +"odobrene grupama kojima korisnik pripada." + +#: contrib/auth/models.py:143 +msgid "user permissions" +msgstr "privilegije korisnika" + +#: contrib/auth/models.py:147 +msgid "user" +msgstr "korisnik" + +#: contrib/auth/models.py:148 +msgid "users" +msgstr "korisnici" + +#: contrib/auth/models.py:154 +msgid "Personal info" +msgstr "Osobni podaci" + +#: contrib/auth/models.py:155 +msgid "Permissions" +msgstr "Privilegije" + +#: contrib/auth/models.py:156 +msgid "Important dates" +msgstr "Važni datumi" + +#: contrib/auth/models.py:157 +msgid "Groups" +msgstr "Grupe" + +#: contrib/auth/models.py:316 +msgid "message" +msgstr "poruka" + +#: contrib/auth/views.py:47 +msgid "Logged out" +msgstr "Niste logirani" + +#: contrib/comments/models.py:67 contrib/comments/models.py:169 msgid "object ID" -msgstr "" +msgstr "ID objekta" #: contrib/comments/models.py:68 msgid "headline" -msgstr "" +msgstr "headline / naslov?" #: contrib/comments/models.py:69 contrib/comments/models.py:90 -#: contrib/comments/models.py:167 +#: contrib/comments/models.py:170 msgid "comment" -msgstr "" +msgstr "komentar" #: contrib/comments/models.py:70 msgid "rating #1" -msgstr "" +msgstr "rating #1" #: contrib/comments/models.py:71 msgid "rating #2" -msgstr "" +msgstr "rating #2" #: contrib/comments/models.py:72 msgid "rating #3" -msgstr "" +msgstr "rating #3" #: contrib/comments/models.py:73 msgid "rating #4" -msgstr "" +msgstr "rating #4" #: contrib/comments/models.py:74 msgid "rating #5" -msgstr "" +msgstr "rating #5" #: contrib/comments/models.py:75 msgid "rating #6" -msgstr "" +msgstr "rating #6" #: contrib/comments/models.py:76 msgid "rating #7" -msgstr "" +msgstr "rating #7" #: contrib/comments/models.py:77 msgid "rating #8" -msgstr "" +msgstr "rating #8" #: contrib/comments/models.py:82 msgid "is valid rating" -msgstr "" +msgstr "rating je ispravan" -#: contrib/comments/models.py:83 contrib/comments/models.py:169 +#: contrib/comments/models.py:83 contrib/comments/models.py:172 msgid "date/time submitted" -msgstr "" +msgstr "datum/vrijeme submitted" -#: contrib/comments/models.py:84 contrib/comments/models.py:170 +#: contrib/comments/models.py:84 contrib/comments/models.py:173 msgid "is public" -msgstr "" - -#: contrib/comments/models.py:85 contrib/admin/views/doc.py:306 -msgid "IP address" -msgstr "" +msgstr "javno dostupno" #: contrib/comments/models.py:86 msgid "is removed" -msgstr "" +msgstr "uklonjeno" #: contrib/comments/models.py:86 msgid "" "Check this box if the comment is inappropriate. A \"This comment has been " "removed\" message will be displayed instead." msgstr "" +"Uključite ako je komentar neprikladan. Umjesto komentara biti će prikazana " +"poruka \"Komentar je uklonjen.\"." #: contrib/comments/models.py:91 msgid "comments" -msgstr "" +msgstr "komentari" -#: contrib/comments/models.py:131 contrib/comments/models.py:207 +#: contrib/comments/models.py:134 contrib/comments/models.py:213 msgid "Content object" -msgstr "" +msgstr "Objekt sadržaja" -#: contrib/comments/models.py:159 +#: contrib/comments/models.py:162 #, python-format msgid "" "Posted by %(user)s at %(date)s\n" @@ -874,48 +1333,48 @@ msgid "" "http://%(domain)s%(url)s" msgstr "" -#: contrib/comments/models.py:168 -msgid "person's name" -msgstr "" - #: contrib/comments/models.py:171 -msgid "ip address" -msgstr "" +msgid "person's name" +msgstr "ime osobe" -#: contrib/comments/models.py:173 -msgid "approved by staff" -msgstr "" +#: contrib/comments/models.py:174 +msgid "ip address" +msgstr "ip adresa" #: contrib/comments/models.py:176 +msgid "approved by staff" +msgstr "odobreno od strane osoblja" + +#: contrib/comments/models.py:179 msgid "free comment" -msgstr "" +msgstr "slobodan komentar" -#: contrib/comments/models.py:177 +#: contrib/comments/models.py:180 msgid "free comments" -msgstr "" +msgstr "slobodni komentari" -#: contrib/comments/models.py:233 +#: contrib/comments/models.py:239 msgid "score" -msgstr "" +msgstr "rezultat" -#: contrib/comments/models.py:234 +#: contrib/comments/models.py:240 msgid "score date" -msgstr "" +msgstr "datum rezultata" -#: contrib/comments/models.py:237 +#: contrib/comments/models.py:243 msgid "karma score" -msgstr "" +msgstr "karma rezultat" -#: contrib/comments/models.py:238 +#: contrib/comments/models.py:244 msgid "karma scores" -msgstr "" +msgstr "karma rezultati" -#: contrib/comments/models.py:242 +#: contrib/comments/models.py:248 #, python-format msgid "%(score)d rating by %(user)s" -msgstr "" +msgstr "%(score)d rating po %(user)s" -#: contrib/comments/models.py:258 +#: contrib/comments/models.py:264 #, python-format msgid "" "This comment was flagged by %(user)s:\n" @@ -923,55 +1382,79 @@ msgid "" "%(text)s" msgstr "" -#: contrib/comments/models.py:265 +#: contrib/comments/models.py:271 msgid "flag date" -msgstr "" +msgstr "datum flag-a" -#: contrib/comments/models.py:268 +#: contrib/comments/models.py:274 msgid "user flag" -msgstr "" +msgstr "korisnički flag" -#: contrib/comments/models.py:269 +#: contrib/comments/models.py:275 msgid "user flags" -msgstr "" +msgstr "korisnički flag-ovi" -#: contrib/comments/models.py:273 +#: contrib/comments/models.py:279 #, python-format msgid "Flag by %r" -msgstr "" +msgstr "Flag po %r" -#: contrib/comments/models.py:278 +#: contrib/comments/models.py:284 msgid "deletion date" -msgstr "" +msgstr "datum brisanja" -#: contrib/comments/models.py:280 +#: contrib/comments/models.py:286 msgid "moderator deletion" -msgstr "" +msgstr "brisanje moderatora" -#: contrib/comments/models.py:281 +#: contrib/comments/models.py:287 msgid "moderator deletions" -msgstr "" +msgstr "brisanja moderatora" -#: contrib/comments/models.py:285 +#: contrib/comments/models.py:291 #, python-format msgid "Moderator deletion by %r" -msgstr "" +msgstr "Brisanje moderatora po %r" -#: contrib/comments/views/karma.py:20 -msgid "Anonymous users cannot vote" -msgstr "" +#: contrib/comments/templates/comments/form.html:8 +msgid "Forgotten your password?" +msgstr "Zaboravili ste lozinku?" -#: contrib/comments/views/karma.py:24 -msgid "Invalid comment ID" -msgstr "" +#: contrib/comments/templates/comments/form.html:12 +msgid "Ratings" +msgstr "Ratings" -#: contrib/comments/views/karma.py:26 -#, fuzzy -msgid "No voting for yourself" -msgstr "Ne" +#: contrib/comments/templates/comments/form.html:12 +#: contrib/comments/templates/comments/form.html:23 +msgid "Required" +msgstr "Obavezno" + +#: contrib/comments/templates/comments/form.html:12 +#: contrib/comments/templates/comments/form.html:23 +msgid "Optional" +msgstr "Izborno, nije obavezno" + +#: contrib/comments/templates/comments/form.html:23 +msgid "Post a photo" +msgstr "Pošalji sliku" + +#: contrib/comments/templates/comments/form.html:28 +#: contrib/comments/templates/comments/freeform.html:5 +msgid "Comment:" +msgstr "Komentar:" + +#: contrib/comments/templates/comments/form.html:35 +#: contrib/comments/templates/comments/freeform.html:10 +msgid "Preview comment" +msgstr "Preview komentara" + +#: contrib/comments/templates/comments/freeform.html:4 +msgid "Your name:" +msgstr "Vaše ime:" #: contrib/comments/views/comments.py:28 -msgid "This rating is required because you've entered at least one other rating." +msgid "" +"This rating is required because you've entered at least one other rating." msgstr "" #: contrib/comments/views/comments.py:112 @@ -997,939 +1480,45 @@ msgid "" "%(text)s" msgstr "" -#: contrib/comments/views/comments.py:189 -#: contrib/comments/views/comments.py:281 +#: contrib/comments/views/comments.py:190 +#: contrib/comments/views/comments.py:283 msgid "Only POSTs are allowed" -msgstr "" +msgstr "Samo POST dopušten." -#: contrib/comments/views/comments.py:193 -#: contrib/comments/views/comments.py:285 -msgid "One or more of the required fields wasn't submitted" -msgstr "" - -#: contrib/comments/views/comments.py:197 +#: contrib/comments/views/comments.py:194 #: contrib/comments/views/comments.py:287 +msgid "One or more of the required fields wasn't submitted" +msgstr "Jedno ili više obaveznih polja nisu poslana" + +#: contrib/comments/views/comments.py:198 +#: contrib/comments/views/comments.py:289 msgid "Somebody tampered with the comment form (security violation)" msgstr "" -#: contrib/comments/views/comments.py:207 -#: contrib/comments/views/comments.py:293 +#: contrib/comments/views/comments.py:208 +#: contrib/comments/views/comments.py:295 msgid "" "The comment form had an invalid 'target' parameter -- the object ID was " "invalid" msgstr "" -#: contrib/comments/views/comments.py:258 -#: contrib/comments/views/comments.py:322 +#: contrib/comments/views/comments.py:259 +#: contrib/comments/views/comments.py:324 msgid "The comment form didn't provide either 'preview' or 'post'" msgstr "" -#: contrib/comments/templates/comments/form.html:6 -#: contrib/comments/templates/comments/form.html:8 -#: contrib/admin/templates/admin/login.html:17 -msgid "Username:" +#: contrib/comments/views/karma.py:21 +msgid "Anonymous users cannot vote" msgstr "" -#: contrib/comments/templates/comments/form.html:6 -#: contrib/admin/templates/admin/change_list.html:5 -#: contrib/admin/templates/admin/object_history.html:3 -#: contrib/admin/templates/admin/change_form.html:10 -#: contrib/admin/templates/admin/delete_confirmation.html:3 -#: contrib/admin/templates/admin/base.html:25 -#: contrib/admin/templates/admin/auth/user/change_password.html:9 -#: contrib/admin/templates/registration/password_change_done.html:3 -#: contrib/admin/templates/registration/password_change_form.html:3 -#: contrib/admin/templates/admin_doc/view_detail.html:4 -#: contrib/admin/templates/admin_doc/bookmarklets.html:4 -#: contrib/admin/templates/admin_doc/template_detail.html:4 -#: contrib/admin/templates/admin_doc/template_tag_index.html:5 -#: contrib/admin/templates/admin_doc/missing_docutils.html:4 -#: contrib/admin/templates/admin_doc/view_index.html:5 -#: contrib/admin/templates/admin_doc/model_detail.html:3 -#: contrib/admin/templates/admin_doc/index.html:4 -#: contrib/admin/templates/admin_doc/model_index.html:5 -#: contrib/admin/templates/admin_doc/template_filter_index.html:5 -msgid "Log out" +#: contrib/comments/views/karma.py:25 +msgid "Invalid comment ID" msgstr "" -#: contrib/comments/templates/comments/form.html:8 -#: contrib/admin/templates/admin/login.html:20 -msgid "Password:" -msgstr "" - -#: contrib/comments/templates/comments/form.html:8 -msgid "Forgotten your password?" -msgstr "" - -#: contrib/comments/templates/comments/form.html:12 -msgid "Ratings" -msgstr "" - -#: contrib/comments/templates/comments/form.html:12 -#: contrib/comments/templates/comments/form.html:23 -msgid "Required" -msgstr "" - -#: contrib/comments/templates/comments/form.html:12 -#: contrib/comments/templates/comments/form.html:23 -msgid "Optional" -msgstr "" - -#: contrib/comments/templates/comments/form.html:23 -msgid "Post a photo" -msgstr "" - -#: contrib/comments/templates/comments/form.html:28 -#: contrib/comments/templates/comments/freeform.html:5 -msgid "Comment:" -msgstr "" - -#: contrib/comments/templates/comments/form.html:35 -#: contrib/comments/templates/comments/freeform.html:10 -msgid "Preview comment" -msgstr "" - -#: contrib/comments/templates/comments/freeform.html:4 -msgid "Your name:" -msgstr "" - -#: contrib/sites/models.py:15 -msgid "domain name" -msgstr "" - -#: contrib/sites/models.py:16 -msgid "display name" -msgstr "" - -#: contrib/sites/models.py:20 -msgid "site" -msgstr "" - -#: contrib/sites/models.py:21 -msgid "sites" -msgstr "" - -#: contrib/admin/filterspecs.py:42 -#, python-format -msgid "" -"

    By %s:

    \n" -"
      \n" -msgstr "" - -#: contrib/admin/filterspecs.py:72 contrib/admin/filterspecs.py:90 -#: contrib/admin/filterspecs.py:145 contrib/admin/filterspecs.py:171 -msgid "All" -msgstr "" - -#: contrib/admin/filterspecs.py:111 -msgid "Any date" -msgstr "" - -#: contrib/admin/filterspecs.py:112 -msgid "Today" -msgstr "" - -#: contrib/admin/filterspecs.py:115 -msgid "Past 7 days" -msgstr "" - -#: contrib/admin/filterspecs.py:117 -msgid "This month" -msgstr "" - -#: contrib/admin/filterspecs.py:119 -msgid "This year" -msgstr "" - -#: contrib/admin/models.py:17 -msgid "action time" -msgstr "" - -#: contrib/admin/models.py:20 -msgid "object id" -msgstr "" - -#: contrib/admin/models.py:21 -msgid "object repr" -msgstr "" - -#: contrib/admin/models.py:22 -msgid "action flag" -msgstr "" - -#: contrib/admin/models.py:23 -msgid "change message" -msgstr "" - -#: contrib/admin/models.py:26 -msgid "log entry" -msgstr "" - -#: contrib/admin/models.py:27 -msgid "log entries" -msgstr "" - -#: contrib/admin/templatetags/admin_list.py:254 -msgid "All dates" -msgstr "" - -#: contrib/admin/views/auth.py:20 contrib/admin/views/main.py:264 -#, python-format -msgid "The %(name)s \"%(obj)s\" was added successfully." -msgstr "" - -#: contrib/admin/views/auth.py:25 contrib/admin/views/main.py:268 -#: contrib/admin/views/main.py:354 -msgid "You may edit it again below." -msgstr "" - -#: contrib/admin/views/auth.py:31 -msgid "Add user" -msgstr "" - -#: contrib/admin/views/auth.py:58 -msgid "Password changed successfully." -msgstr "" - -#: contrib/admin/views/auth.py:65 -#, python-format -msgid "Change password: %s" -msgstr "" - -#: contrib/admin/views/main.py:230 -msgid "Site administration" -msgstr "" - -#: contrib/admin/views/main.py:278 contrib/admin/views/main.py:363 -#, python-format -msgid "You may add another %s below." -msgstr "" - -#: contrib/admin/views/main.py:296 -#, python-format -msgid "Add %s" -msgstr "" - -#: contrib/admin/views/main.py:342 -#, python-format -msgid "Added %s." -msgstr "" - -#: contrib/admin/views/main.py:344 -#, python-format -msgid "Changed %s." -msgstr "" - -#: contrib/admin/views/main.py:346 -#, python-format -msgid "Deleted %s." -msgstr "" - -#: contrib/admin/views/main.py:349 +#: contrib/comments/views/karma.py:27 #, fuzzy -msgid "No fields changed." -msgstr "Ne." - -#: contrib/admin/views/main.py:352 -#, python-format -msgid "The %(name)s \"%(obj)s\" was changed successfully." -msgstr "" - -#: contrib/admin/views/main.py:360 -#, python-format -msgid "The %(name)s \"%(obj)s\" was added successfully. You may edit it again below." -msgstr "" - -#: contrib/admin/views/main.py:398 -#, python-format -msgid "Change %s" -msgstr "" - -#: contrib/admin/views/main.py:483 -#, python-format -msgid "One or more %(fieldname)s in %(name)s: %(obj)s" -msgstr "" - -#: contrib/admin/views/main.py:488 -#, python-format -msgid "One or more %(fieldname)s in %(name)s:" -msgstr "" - -#: contrib/admin/views/main.py:520 -#, python-format -msgid "The %(name)s \"%(obj)s\" was deleted successfully." -msgstr "" - -#: contrib/admin/views/main.py:523 -msgid "Are you sure?" -msgstr "" - -#: contrib/admin/views/main.py:545 -#, python-format -msgid "Change history: %s" -msgstr "" - -#: contrib/admin/views/main.py:579 -#, python-format -msgid "Select %s" -msgstr "" - -#: contrib/admin/views/main.py:579 -#, python-format -msgid "Select %s to change" -msgstr "" - -#: contrib/admin/views/main.py:780 -msgid "Database error" -msgstr "" - -#: contrib/admin/views/decorators.py:10 contrib/auth/forms.py:60 -#, fuzzy -msgid "" -"Please enter a correct username and password. Note that both fields are case-" -"sensitive." -msgstr "i." - -#: contrib/admin/views/decorators.py:24 -#: contrib/admin/templates/admin/login.html:25 -msgid "Log in" -msgstr "" - -#: contrib/admin/views/decorators.py:62 -msgid "" -"Please log in again, because your session has expired. Don't worry: Your " -"submission has been saved." -msgstr "" - -#: contrib/admin/views/decorators.py:69 -#, fuzzy -msgid "" -"Looks like your browser isn't configured to accept cookies. Please enable " -"cookies, reload this page, and try again." -msgstr "i." - -#: contrib/admin/views/decorators.py:83 -msgid "Usernames cannot contain the '@' character." -msgstr "" - -#: contrib/admin/views/decorators.py:85 -#, python-format -msgid "Your e-mail address is not your username. Try '%s' instead." -msgstr "" - -#: contrib/admin/views/doc.py:47 contrib/admin/views/doc.py:49 -#: contrib/admin/views/doc.py:51 -msgid "tag:" -msgstr "" - -#: contrib/admin/views/doc.py:78 contrib/admin/views/doc.py:80 -#: contrib/admin/views/doc.py:82 -msgid "filter:" -msgstr "" - -#: contrib/admin/views/doc.py:136 contrib/admin/views/doc.py:138 -#: contrib/admin/views/doc.py:140 -msgid "view:" -msgstr "" - -#: contrib/admin/views/doc.py:165 -#, python-format -msgid "App %r not found" -msgstr "" - -#: contrib/admin/views/doc.py:172 -#, python-format -msgid "Model %(name)r not found in app %(label)r" -msgstr "" - -#: contrib/admin/views/doc.py:184 -#, python-format -msgid "the related `%(label)s.%(type)s` object" -msgstr "" - -#: contrib/admin/views/doc.py:184 contrib/admin/views/doc.py:206 -#: contrib/admin/views/doc.py:220 contrib/admin/views/doc.py:225 -msgid "model:" -msgstr "" - -#: contrib/admin/views/doc.py:215 -#, python-format -msgid "related `%(label)s.%(name)s` objects" -msgstr "" - -#: contrib/admin/views/doc.py:220 -#, python-format -msgid "all %s" -msgstr "" - -#: contrib/admin/views/doc.py:225 -#, python-format -msgid "number of %s" -msgstr "" - -#: contrib/admin/views/doc.py:230 -#, python-format -msgid "Fields on %s objects" -msgstr "" - -#: contrib/admin/views/doc.py:292 contrib/admin/views/doc.py:303 -#: contrib/admin/views/doc.py:305 contrib/admin/views/doc.py:311 -#: contrib/admin/views/doc.py:312 contrib/admin/views/doc.py:314 -msgid "Integer" -msgstr "" - -#: contrib/admin/views/doc.py:293 -msgid "Boolean (Either True or False)" -msgstr "" - -#: contrib/admin/views/doc.py:294 contrib/admin/views/doc.py:313 -#, python-format -msgid "String (up to %(max_length)s)" -msgstr "" - -#: contrib/admin/views/doc.py:295 -msgid "Comma-separated integers" -msgstr "" - -#: contrib/admin/views/doc.py:296 -msgid "Date (without time)" -msgstr "" - -#: contrib/admin/views/doc.py:297 -msgid "Date (with time)" -msgstr "" - -#: contrib/admin/views/doc.py:298 -msgid "Decimal number" -msgstr "" - -#: contrib/admin/views/doc.py:299 -msgid "E-mail address" -msgstr "" - -#: contrib/admin/views/doc.py:300 contrib/admin/views/doc.py:301 -#: contrib/admin/views/doc.py:304 -msgid "File path" -msgstr "" - -#: contrib/admin/views/doc.py:302 -msgid "Floating point number" -msgstr "" - -#: contrib/admin/views/doc.py:308 -msgid "Boolean (Either True, False or None)" -msgstr "" - -#: contrib/admin/views/doc.py:309 -msgid "Relation to parent model" -msgstr "" - -#: contrib/admin/views/doc.py:310 -msgid "Phone number" -msgstr "" - -#: contrib/admin/views/doc.py:315 -msgid "Text" -msgstr "" - -#: contrib/admin/views/doc.py:316 -msgid "Time" -msgstr "" - -#: contrib/admin/views/doc.py:317 contrib/flatpages/models.py:7 -msgid "URL" -msgstr "" - -#: contrib/admin/views/doc.py:318 -msgid "U.S. state (two uppercase letters)" -msgstr "" - -#: contrib/admin/views/doc.py:319 -msgid "XML text" -msgstr "" - -#: contrib/admin/views/doc.py:345 -#, python-format -msgid "%s does not appear to be a urlpattern object" -msgstr "" - -#: contrib/admin/templates/widget/file.html:2 -msgid "Currently:" -msgstr "" - -#: contrib/admin/templates/widget/file.html:3 -msgid "Change:" -msgstr "" - -#: contrib/admin/templates/widget/date_time.html:3 -msgid "Date:" -msgstr "" - -#: contrib/admin/templates/widget/date_time.html:4 -msgid "Time:" -msgstr "" - -#: contrib/admin/templates/admin/change_list.html:5 -#: contrib/admin/templates/admin/object_history.html:3 -#: contrib/admin/templates/admin/change_form.html:10 -#: contrib/admin/templates/admin/delete_confirmation.html:3 -#: contrib/admin/templates/admin/base.html:25 -#: contrib/admin/templates/admin/auth/user/change_password.html:9 -#: contrib/admin/templates/registration/password_change_done.html:3 -#: contrib/admin/templates/registration/password_change_form.html:3 -#: contrib/admin/templates/admin_doc/bookmarklets.html:3 -msgid "Documentation" -msgstr "" - -#: contrib/admin/templates/admin/change_list.html:5 -#: contrib/admin/templates/admin/object_history.html:3 -#: contrib/admin/templates/admin/change_form.html:10 -#: contrib/admin/templates/admin/delete_confirmation.html:3 -#: contrib/admin/templates/admin/base.html:25 -#: contrib/admin/templates/admin/auth/user/change_password.html:9 -#: contrib/admin/templates/admin/auth/user/change_password.html:15 -#: contrib/admin/templates/admin/auth/user/change_password.html:46 -#: contrib/admin/templates/registration/password_change_done.html:3 -#: contrib/admin/templates/registration/password_change_form.html:3 -#: contrib/admin/templates/admin_doc/view_detail.html:4 -#: contrib/admin/templates/admin_doc/bookmarklets.html:4 -#: contrib/admin/templates/admin_doc/template_detail.html:4 -#: contrib/admin/templates/admin_doc/template_tag_index.html:5 -#: contrib/admin/templates/admin_doc/missing_docutils.html:4 -#: contrib/admin/templates/admin_doc/view_index.html:5 -#: contrib/admin/templates/admin_doc/model_detail.html:3 -#: contrib/admin/templates/admin_doc/index.html:4 -#: contrib/admin/templates/admin_doc/model_index.html:5 -#: contrib/admin/templates/admin_doc/template_filter_index.html:5 -msgid "Change password" -msgstr "" - -#: contrib/admin/templates/admin/change_list.html:6 -#: contrib/admin/templates/admin/object_history.html:5 -#: contrib/admin/templates/admin/500.html:4 -#: contrib/admin/templates/admin/invalid_setup.html:4 -#: contrib/admin/templates/admin/change_form.html:13 -#: contrib/admin/templates/admin/delete_confirmation.html:6 -#: contrib/admin/templates/admin/base.html:30 -#: contrib/admin/templates/admin/auth/user/change_password.html:12 -#: contrib/admin/templates/registration/password_change_done.html:4 -#: contrib/admin/templates/registration/password_reset_form.html:4 -#: contrib/admin/templates/registration/logged_out.html:4 -#: contrib/admin/templates/registration/password_reset_done.html:4 -#: contrib/admin/templates/registration/password_change_form.html:4 -#: contrib/admin/templates/admin_doc/bookmarklets.html:3 -msgid "Home" -msgstr "" - -#: contrib/admin/templates/admin/change_list.html:12 -#, python-format -msgid "Add %(name)s" -msgstr "" - -#: contrib/admin/templates/admin/filter.html:2 -#, python-format -msgid " By %(filter_title)s " -msgstr "" - -#: contrib/admin/templates/admin/object_history.html:5 -#: contrib/admin/templates/admin/change_form.html:21 -msgid "History" -msgstr "" - -#: contrib/admin/templates/admin/object_history.html:18 -msgid "Date/time" -msgstr "" - -#: contrib/admin/templates/admin/object_history.html:19 -msgid "User" -msgstr "" - -#: contrib/admin/templates/admin/object_history.html:20 -msgid "Action" -msgstr "" - -#: contrib/admin/templates/admin/object_history.html:26 -msgid "DATE_WITH_TIME_FULL" -msgstr "" - -#: contrib/admin/templates/admin/object_history.html:36 -msgid "" -"This object doesn't have a change history. It probably wasn't added via this " -"admin site." -msgstr "" - -#: contrib/admin/templates/admin/search_form.html:8 -msgid "Go" -msgstr "" - -#: contrib/admin/templates/admin/search_form.html:10 -#, python-format -msgid "1 result" -msgid_plural "%(counter)s results" -msgstr[0] "" -msgstr[1] "" - -#: contrib/admin/templates/admin/search_form.html:10 -#, python-format -msgid "%(full_result_count)s total" -msgstr "" - -#: contrib/admin/templates/admin/pagination.html:10 -msgid "Show all" -msgstr "" - -#: contrib/admin/templates/admin/base_site.html:4 -msgid "Django site admin" -msgstr "" - -#: contrib/admin/templates/admin/base_site.html:7 -msgid "Django administration" -msgstr "" - -#: contrib/admin/templates/admin/500.html:4 -msgid "Server error" -msgstr "" - -#: contrib/admin/templates/admin/500.html:6 -msgid "Server error (500)" -msgstr "" - -#: contrib/admin/templates/admin/500.html:9 -msgid "Server Error (500)" -msgstr "" - -#: contrib/admin/templates/admin/500.html:10 -#, fuzzy -msgid "" -"There's been an error. It's been reported to the site administrators via e-" -"mail and should be fixed shortly. Thanks for your patience." -msgstr "i." - -#: contrib/admin/templates/admin/invalid_setup.html:8 -#, fuzzy -msgid "" -"Something's wrong with your database installation. Make sure the appropriate " -"database tables have been created, and make sure the database is readable by " -"the appropriate user." -msgstr "i." - -#: contrib/admin/templates/admin/index.html:17 -#, python-format -msgid "Models available in the %(name)s application." -msgstr "" - -#: contrib/admin/templates/admin/index.html:18 -#, python-format -msgid "%(name)s" -msgstr "" - -#: contrib/admin/templates/admin/index.html:28 -#: contrib/admin/templates/admin/change_form.html:15 -msgid "Add" -msgstr "" - -#: contrib/admin/templates/admin/index.html:34 -msgid "Change" -msgstr "" - -#: contrib/admin/templates/admin/index.html:44 -msgid "You don't have permission to edit anything." -msgstr "" - -#: contrib/admin/templates/admin/index.html:52 -msgid "Recent Actions" -msgstr "" - -#: contrib/admin/templates/admin/index.html:53 -msgid "My Actions" -msgstr "" - -#: contrib/admin/templates/admin/index.html:57 -msgid "None available" -msgstr "" - -#: contrib/admin/templates/admin/404.html:4 -#: contrib/admin/templates/admin/404.html:8 -msgid "Page not found" -msgstr "" - -#: contrib/admin/templates/admin/404.html:10 -msgid "We're sorry, but the requested page could not be found." -msgstr "" - -#: contrib/admin/templates/admin/filters.html:4 -msgid "Filter" -msgstr "" - -#: contrib/admin/templates/admin/change_form.html:22 -msgid "View on site" -msgstr "" - -#: contrib/admin/templates/admin/change_form.html:32 -#: contrib/admin/templates/admin/auth/user/change_password.html:24 -msgid "Please correct the error below." -msgid_plural "Please correct the errors below." -msgstr[0] "" -msgstr[1] "" - -#: contrib/admin/templates/admin/change_form.html:50 -msgid "Ordering" -msgstr "" - -#: contrib/admin/templates/admin/change_form.html:53 -msgid "Order:" -msgstr "" - -#: contrib/admin/templates/admin/delete_confirmation.html:9 -#: contrib/admin/templates/admin/submit_line.html:3 -msgid "Delete" -msgstr "" - -#: contrib/admin/templates/admin/delete_confirmation.html:14 -#, python-format -msgid "" -"Deleting the %(object_name)s '%(escaped_object)s' would result in deleting " -"related objects, but your account doesn't have permission to delete the " -"following types of objects:" -msgstr "" - -#: contrib/admin/templates/admin/delete_confirmation.html:21 -#, python-format -msgid "" -"Are you sure you want to delete the %(object_name)s \"%(escaped_object)s\"? " -"All of the following related items will be deleted:" -msgstr "" - -#: contrib/admin/templates/admin/delete_confirmation.html:26 -#, fuzzy -msgid "Yes, I'm sure" -msgstr "Da" - -#: contrib/admin/templates/admin/base.html:25 -msgid "Welcome," -msgstr "" - -#: contrib/admin/templates/admin/submit_line.html:4 -msgid "Save as new" -msgstr "" - -#: contrib/admin/templates/admin/submit_line.html:5 -#, fuzzy -msgid "Save and add another" -msgstr "i" - -#: contrib/admin/templates/admin/submit_line.html:6 -#, fuzzy -msgid "Save and continue editing" -msgstr "i" - -#: contrib/admin/templates/admin/submit_line.html:7 -msgid "Save" -msgstr "" - -#: contrib/admin/templates/admin/auth/user/change_password.html:28 -#, python-format -msgid "Enter a new password for the user %(username)s." -msgstr "" - -#: contrib/admin/templates/admin/auth/user/change_password.html:34 -#: contrib/admin/templates/admin/auth/user/add_form.html:18 -msgid "Password" -msgstr "" - -#: contrib/admin/templates/admin/auth/user/change_password.html:39 -#: contrib/admin/templates/admin/auth/user/add_form.html:23 -msgid "Password (again)" -msgstr "" - -#: contrib/admin/templates/admin/auth/user/change_password.html:40 -#: contrib/admin/templates/admin/auth/user/add_form.html:24 -msgid "Enter the same password as above, for verification." -msgstr "" - -#: contrib/admin/templates/admin/auth/user/add_form.html:6 -#, fuzzy -msgid "" -"First, enter a username and password. Then, you'll be able to edit more user " -"options." -msgstr "i." - -#: contrib/admin/templates/admin/auth/user/add_form.html:12 -msgid "Username" -msgstr "" - -#: 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 -msgid "Password change" -msgstr "" - -#: contrib/admin/templates/registration/password_change_done.html:6 -#: contrib/admin/templates/registration/password_change_done.html:10 -msgid "Password change successful" -msgstr "" - -#: contrib/admin/templates/registration/password_change_done.html:12 -msgid "Your password was changed." -msgstr "" - -#: contrib/admin/templates/registration/password_reset_form.html:4 -#: contrib/admin/templates/registration/password_reset_form.html:6 -#: contrib/admin/templates/registration/password_reset_form.html:10 -#: contrib/admin/templates/registration/password_reset_done.html:4 -msgid "Password reset" -msgstr "" - -#: contrib/admin/templates/registration/password_reset_form.html:12 -#, fuzzy -msgid "" -"Forgotten your password? Enter your e-mail address below, and we'll reset " -"your password and e-mail the new one to you." -msgstr "i i." - -#: contrib/admin/templates/registration/password_reset_form.html:16 -msgid "E-mail address:" -msgstr "" - -#: contrib/admin/templates/registration/password_reset_form.html:16 -msgid "Reset my password" -msgstr "" - -#: contrib/admin/templates/registration/logged_out.html:8 -msgid "Thanks for spending some quality time with the Web site today." -msgstr "" - -#: contrib/admin/templates/registration/logged_out.html:10 -msgid "Log in again" -msgstr "" - -#: contrib/admin/templates/registration/password_reset_done.html:6 -#: contrib/admin/templates/registration/password_reset_done.html:10 -msgid "Password reset successful" -msgstr "" - -#: contrib/admin/templates/registration/password_reset_done.html:12 -msgid "" -"We've e-mailed a new password to the e-mail address you submitted. You " -"should be receiving it shortly." -msgstr "" - -#: contrib/admin/templates/registration/password_change_form.html:12 -#, fuzzy -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." -msgstr "i." - -#: contrib/admin/templates/registration/password_change_form.html:17 -msgid "Old password:" -msgstr "" - -#: contrib/admin/templates/registration/password_change_form.html:19 -msgid "New password:" -msgstr "" - -#: contrib/admin/templates/registration/password_change_form.html:21 -msgid "Confirm password:" -msgstr "" - -#: contrib/admin/templates/registration/password_change_form.html:23 -msgid "Change my password" -msgstr "" - -#: contrib/admin/templates/registration/password_reset_email.html:2 -msgid "You're receiving this e-mail because you requested a password reset" -msgstr "" - -#: contrib/admin/templates/registration/password_reset_email.html:3 -#, python-format -msgid "for your user account at %(site_name)s" -msgstr "" - -#: contrib/admin/templates/registration/password_reset_email.html:5 -#, python-format -msgid "Your new password is: %(new_password)s" -msgstr "" - -#: contrib/admin/templates/registration/password_reset_email.html:7 -msgid "Feel free to change this password by going to this page:" -msgstr "" - -#: contrib/admin/templates/registration/password_reset_email.html:11 -msgid "Your username, in case you've forgotten:" -msgstr "" - -#: contrib/admin/templates/registration/password_reset_email.html:13 -msgid "Thanks for using our site!" -msgstr "" - -#: contrib/admin/templates/registration/password_reset_email.html:15 -#, python-format -msgid "The %(site_name)s team" -msgstr "" - -#: contrib/admin/templates/admin_doc/bookmarklets.html:3 -msgid "Bookmarklets" -msgstr "" - -#: contrib/admin/templates/admin_doc/bookmarklets.html:5 -msgid "Documentation bookmarklets" -msgstr "" - -#: contrib/admin/templates/admin_doc/bookmarklets.html:9 -msgid "" -"\n" -"

      To install bookmarklets, drag the link to your bookmarks\n" -"toolbar, or right-click the link and add it to your bookmarks. Now you can\n" -"select the bookmarklet from any page in the site. Note that some of these\n" -"bookmarklets require you to be viewing the site from a computer designated\n" -"as \"internal\" (talk to your system administrator if you aren't sure if\n" -"your computer is \"internal\").

      \n" -msgstr "" -"\n" -"

      To install bookmarklets, drag the link to your bookmarks\n" -"toolbar, or right-click the link and add it to your bookmarks. Now you can\n" -"select the bookmarklet from any page in the site. Note that some of these\n" -"bookmarklets require you to be viewing the site from a computer designated\n" -"as \"internal\" (talk to your system administrator if you aren't sure if\n" -"your computer is \"internal\").

      \n" - -#: contrib/admin/templates/admin_doc/bookmarklets.html:19 -msgid "Documentation for this page" -msgstr "Dokumentacija za ovu stranicu" - -#: contrib/admin/templates/admin_doc/bookmarklets.html:20 -msgid "" -"Jumps you from any page to the documentation for the view that generates " -"that page." -msgstr "Preusmjeri te sa bilo koje stranice na dokumentaciju za taj prikaz (view) koji generira stranicu." - -#: contrib/admin/templates/admin_doc/bookmarklets.html:22 -msgid "Show object ID" -msgstr "Prikaži ID objekta" - -#: contrib/admin/templates/admin_doc/bookmarklets.html:23 -msgid "" -"Shows the content-type and unique ID for pages that represent a single " -"object." -msgstr "Prikazuje tip sadržaja i jedinstveni ID za stranice koje predstavljaju pojedinačan objekt." - -#: contrib/admin/templates/admin_doc/bookmarklets.html:25 -msgid "Edit this object (current window)" -msgstr "Uredi objekt (u trenutno prozoru)" - -#: contrib/admin/templates/admin_doc/bookmarklets.html:26 -msgid "Jumps to the admin page for pages that represent a single object." -msgstr "Preusmjeri na admin stranicu za stranice koje predstavljaju pojedinačan objekt." - -#: contrib/admin/templates/admin_doc/bookmarklets.html:28 -msgid "Edit this object (new window)" -msgstr "Uredi objekt (novi prozor)" - -#: contrib/admin/templates/admin_doc/bookmarklets.html:29 -msgid "As above, but opens the admin page in a new window." -msgstr "Isto kao prethodno, ali otvara admin stranicu u novom prozoru." +msgid "No voting for yourself" +msgstr "Ne" #: contrib/contenttypes/models.py:37 msgid "python model class name" @@ -1943,219 +1532,335 @@ msgstr "tip sadržaja" msgid "content types" msgstr "tipovi sadržaja" -#: contrib/auth/views.py:41 -msgid "Logged out" -msgstr "Niste logirani" - -#: contrib/auth/models.py:53 contrib/auth/models.py:73 -msgid "name" -msgstr "ime" - -#: contrib/auth/models.py:55 -msgid "codename" -msgstr "kodno ime" - -#: contrib/auth/models.py:58 -msgid "permission" -msgstr "privilegija" - -#: contrib/auth/models.py:59 contrib/auth/models.py:74 -msgid "permissions" -msgstr "privilegije" - -#: contrib/auth/models.py:77 -msgid "group" -msgstr "grupa" - -#: contrib/auth/models.py:78 contrib/auth/models.py:121 -msgid "groups" -msgstr "grupe" - -#: contrib/auth/models.py:111 -msgid "username" -msgstr "korisničko ime" - -#: contrib/auth/models.py:111 +#: contrib/flatpages/models.py:8 msgid "" -"Required. 30 characters or fewer. Alphanumeric characters only (letters, " -"digits and underscores)." -msgstr "Obavezno 30 alfanumeričkih znakova ili manje (slova, brojevi i povlaka)." - -#: contrib/auth/models.py:112 -msgid "first name" -msgstr "ime" - -#: contrib/auth/models.py:113 -msgid "last name" -msgstr "prezime" - -#: contrib/auth/models.py:114 -msgid "e-mail address" -msgstr "e-mail adresa" - -#: contrib/auth/models.py:115 -msgid "password" +"Example: '/about/contact/'. Make sure to have leading and trailing slashes." msgstr "" +"Primjer: '/about/contact/'. Provjerite ako imate prvi i preostale slash-eve " +"(/)." -#: contrib/auth/models.py:115 +#: contrib/flatpages/models.py:9 +msgid "title" +msgstr "naslov" + +#: contrib/flatpages/models.py:10 +msgid "content" +msgstr "sadržaj" + +#: contrib/flatpages/models.py:11 +msgid "enable comments" +msgstr "uključi komentare" + +#: contrib/flatpages/models.py:12 +msgid "template name" +msgstr "ime template-a" + +#: contrib/flatpages/models.py:13 msgid "" -"Use '[algo]$[salt]$[hexdigest]' or use the change " -"password form." +"Example: 'flatpages/contact_page.html'. If this isn't provided, the system " +"will use 'flatpages/default.html'." +msgstr "" +"Primjer: 'flatpages/contact_page.html'. Ako navedeno nije definirano sistem " +"će koristiti 'flatpages/default.html'." + +#: contrib/flatpages/models.py:14 +msgid "registration required" +msgstr "registracija obavezna" + +#: contrib/flatpages/models.py:14 +msgid "If this is checked, only logged-in users will be able to view the page." +msgstr "" +"Ako je ovo selektirano samo logirani korisnici moći će vidjeti ovu stranicu." + +#: contrib/flatpages/models.py:18 +msgid "flat page" +msgstr "statična stranica" + +#: contrib/flatpages/models.py:19 +msgid "flat pages" +msgstr "statične stranice" + +#: contrib/humanize/templatetags/humanize.py:20 +msgid "th" msgstr "" -#: contrib/auth/models.py:116 -msgid "staff status" +#: contrib/humanize/templatetags/humanize.py:20 +msgid "st" msgstr "" -#: contrib/auth/models.py:116 -msgid "Designates whether the user can log into this admin site." +#: contrib/humanize/templatetags/humanize.py:20 +msgid "nd" msgstr "" -#: contrib/auth/models.py:117 -msgid "active" +#: contrib/humanize/templatetags/humanize.py:20 +msgid "rd" msgstr "" -#: contrib/auth/models.py:117 -msgid "" -"Designates whether this user can log into the Django admin. Unselect this " -"instead of deleting accounts." -msgstr "" +#: contrib/humanize/templatetags/humanize.py:52 +#, python-format +msgid "%(value).1f million" +msgid_plural "%(value).1f million" +msgstr[0] "" +msgstr[1] "" -#: contrib/auth/models.py:118 -msgid "superuser status" -msgstr "" +#: contrib/humanize/templatetags/humanize.py:55 +#, python-format +msgid "%(value).1f billion" +msgid_plural "%(value).1f billion" +msgstr[0] "" +msgstr[1] "" -#: contrib/auth/models.py:118 -msgid "" -"Designates that this user has all permissions without explicitly assigning " -"them." -msgstr "" +#: contrib/humanize/templatetags/humanize.py:58 +#, python-format +msgid "%(value).1f trillion" +msgid_plural "%(value).1f trillion" +msgstr[0] "" +msgstr[1] "" -#: contrib/auth/models.py:119 -msgid "last login" -msgstr "" +#: contrib/humanize/templatetags/humanize.py:74 +msgid "one" +msgstr "jedan" -#: contrib/auth/models.py:120 -msgid "date joined" -msgstr "" +#: contrib/humanize/templatetags/humanize.py:74 +msgid "two" +msgstr "dva" -#: contrib/auth/models.py:122 -msgid "" -"In addition to the permissions manually assigned, this user will also get " -"all permissions granted to each group he/she is in." -msgstr "" +#: contrib/humanize/templatetags/humanize.py:74 +msgid "three" +msgstr "tri" -#: contrib/auth/models.py:123 -msgid "user permissions" -msgstr "" +#: contrib/humanize/templatetags/humanize.py:74 +msgid "four" +msgstr "četiri" -#: contrib/auth/models.py:127 -msgid "user" -msgstr "" +#: contrib/humanize/templatetags/humanize.py:74 +msgid "five" +msgstr "pet" -#: contrib/auth/models.py:128 -msgid "users" -msgstr "" +#: contrib/humanize/templatetags/humanize.py:74 +msgid "six" +msgstr "šest" -#: contrib/auth/models.py:134 -msgid "Personal info" -msgstr "" +#: contrib/humanize/templatetags/humanize.py:74 +msgid "seven" +msgstr "sedam" -#: contrib/auth/models.py:135 -msgid "Permissions" -msgstr "" +#: contrib/humanize/templatetags/humanize.py:74 +msgid "eight" +msgstr "osam" -#: contrib/auth/models.py:136 -msgid "Important dates" -msgstr "" +#: contrib/humanize/templatetags/humanize.py:74 +msgid "nine" +msgstr "devet" -#: contrib/auth/models.py:137 -msgid "Groups" -msgstr "" +#: contrib/humanize/templatetags/humanize.py:94 +#, fuzzy +msgid "today" +msgstr "danas" -#: contrib/auth/models.py:287 -msgid "message" -msgstr "" +#: contrib/humanize/templatetags/humanize.py:96 +msgid "tomorrow" +msgstr "sutra" -#: contrib/auth/forms.py:17 contrib/auth/forms.py:138 -msgid "The two password fields didn't match." -msgstr "" +#: contrib/humanize/templatetags/humanize.py:98 +#, fuzzy +msgid "yesterday" +msgstr "jučer" -#: contrib/auth/forms.py:25 -msgid "A user with that username already exists." -msgstr "" +#: contrib/localflavor/ar/forms.py:28 +#, fuzzy +msgid "Enter a postal code in the format NNNN or ANNNNAAA." +msgstr "Unesi ispravan poštanski broj formata NNNN ili ANNNNAAA." -#: contrib/auth/forms.py:53 -msgid "" -"Your Web browser doesn't appear to have cookies enabled. Cookies are " -"required for logging in." -msgstr "" +#: contrib/localflavor/ar/forms.py:50 contrib/localflavor/br/forms.py:96 +#: contrib/localflavor/br/forms.py:135 contrib/localflavor/pe/forms.py:23 +#: contrib/localflavor/pe/forms.py:51 +msgid "This field requires only numbers." +msgstr "Ovo polje zahtjeva samo brojeve." -#: contrib/auth/forms.py:62 -msgid "This account is inactive." -msgstr "" +#: contrib/localflavor/ar/forms.py:51 +#, fuzzy +msgid "This field requires 7 or 8 digits." +msgstr "Ovo polje zahtjeva 7 ili 8 numeričkih znakova." -#: contrib/auth/forms.py:84 -msgid "" -"That e-mail address doesn't have an associated user account. Are you sure " -"you've registered?" -msgstr "" +#: contrib/localflavor/ar/forms.py:80 +msgid "Enter a valid CUIT in XX-XXXXXXXX-X or XXXXXXXXXXXX format." +msgstr "Unesite ispravan CUIT formata XX-XXXXXXXX-X ili XXXXXXXXXXXX." -#: contrib/auth/forms.py:117 -msgid "The two 'new password' fields didn't match." -msgstr "" +#: contrib/localflavor/ar/forms.py:81 +#, fuzzy +msgid "Invalid CUIT." +msgstr "Neispravan CUIT." -#: contrib/auth/forms.py:124 -msgid "Your old password was entered incorrectly. Please enter it again." -msgstr "" +#: contrib/localflavor/au/forms.py:16 +msgid "Enter a 4 digit post code." +msgstr "Unesite poštanski kod sa 4 numerička znaka." -#: contrib/localflavor/uk/forms.py:18 -msgid "Enter a postcode. A space is required between the two postcode parts." -msgstr "" - -#: contrib/localflavor/br/forms.py:18 +#: contrib/localflavor/br/forms.py:21 msgid "Enter a zip code in the format XXXXX-XXX." -msgstr "" +msgstr "Unesite zip kod formata XXXXX-XXX." #: contrib/localflavor/br/forms.py:30 msgid "Phone numbers must be in XX-XXXX-XXXX format." +msgstr "Telefonski brojevi moraju biti formata XX-XXXX-XXXX." + +#: contrib/localflavor/br/forms.py:58 +msgid "" +"Select a valid brazilian state. That state is not one of the available " +"states." msgstr "" -#: contrib/localflavor/br/forms.py:72 -msgid "This field requires only numbers." -msgstr "" - -#: contrib/localflavor/br/forms.py:74 -msgid "This field requires at most 11 digits or 14 characters." -msgstr "" - -#: contrib/localflavor/br/forms.py:84 +#: contrib/localflavor/br/forms.py:94 msgid "Invalid CPF number." -msgstr "" +msgstr "Neispravan CPF broj." -#: contrib/localflavor/br/forms.py:106 -msgid "This field requires at least 14 digits" -msgstr "" +#: contrib/localflavor/br/forms.py:95 +msgid "This field requires at most 11 digits or 14 characters." +msgstr "Ovo polje zahtjeva najviše 11 ili 14 numeričkih znakova." -#: contrib/localflavor/br/forms.py:116 +#: contrib/localflavor/br/forms.py:134 msgid "Invalid CNPJ number." +msgstr "Neispravan CNPJ broj." + +#: contrib/localflavor/br/forms.py:136 +msgid "This field requires at least 14 digits" +msgstr "Ovo polje zahtjeva najviše 14 numeričkih znakova" + +#: contrib/localflavor/ca/forms.py:17 +#, fuzzy +msgid "Enter a postal code in the format XXX XXX." +msgstr "Unesi poštanski broj formata XXX XXX." + +#: contrib/localflavor/ca/forms.py:88 +msgid "Enter a valid Canadian Social Insurance number in XXX-XXX-XXX format." msgstr "" -#: contrib/localflavor/au/forms.py:18 -msgid "Enter a 4 digit post code." +#: contrib/localflavor/ch/ch_states.py:5 +msgid "Aargau" msgstr "" -#: contrib/localflavor/fr/forms.py:17 contrib/localflavor/de/forms.py:16 -#: contrib/localflavor/fi/forms.py:14 -msgid "Enter a zip code in the format XXXXX." +#: contrib/localflavor/ch/ch_states.py:6 +msgid "Appenzell Innerrhoden" msgstr "" -#: contrib/localflavor/us/forms.py:18 -msgid "Enter a zip code in the format XXXXX or XXXXX-XXXX." +#: contrib/localflavor/ch/ch_states.py:7 +msgid "Appenzell Ausserrhoden" msgstr "" -#: contrib/localflavor/us/forms.py:51 -msgid "Enter a valid U.S. Social Security number in XXX-XX-XXXX format." +#: contrib/localflavor/ch/ch_states.py:8 +msgid "Basel-Stadt" +msgstr "" + +#: contrib/localflavor/ch/ch_states.py:9 +msgid "Basel-Land" +msgstr "" + +#: contrib/localflavor/ch/ch_states.py:10 +msgid "Berne" +msgstr "" + +#: contrib/localflavor/ch/ch_states.py:11 +msgid "Fribourg" +msgstr "" + +#: contrib/localflavor/ch/ch_states.py:12 +msgid "Geneva" +msgstr "" + +#: contrib/localflavor/ch/ch_states.py:13 +msgid "Glarus" +msgstr "" + +#: contrib/localflavor/ch/ch_states.py:14 +msgid "Graubuenden" +msgstr "" + +#: contrib/localflavor/ch/ch_states.py:15 +msgid "Jura" +msgstr "" + +#: contrib/localflavor/ch/ch_states.py:16 +msgid "Lucerne" +msgstr "" + +#: contrib/localflavor/ch/ch_states.py:17 +msgid "Neuchatel" +msgstr "" + +#: contrib/localflavor/ch/ch_states.py:18 +msgid "Nidwalden" +msgstr "" + +#: contrib/localflavor/ch/ch_states.py:19 +msgid "Obwalden" +msgstr "" + +#: contrib/localflavor/ch/ch_states.py:20 +msgid "Schaffhausen" +msgstr "" + +#: contrib/localflavor/ch/ch_states.py:21 +msgid "Schwyz" +msgstr "" + +#: contrib/localflavor/ch/ch_states.py:22 +msgid "Solothurn" +msgstr "" + +#: contrib/localflavor/ch/ch_states.py:23 +msgid "St. Gallen" +msgstr "" + +#: contrib/localflavor/ch/ch_states.py:24 +msgid "Thurgau" +msgstr "" + +#: contrib/localflavor/ch/ch_states.py:25 +msgid "Ticino" +msgstr "" + +#: contrib/localflavor/ch/ch_states.py:26 +msgid "Uri" +msgstr "" + +#: contrib/localflavor/ch/ch_states.py:27 +msgid "Valais" +msgstr "" + +#: contrib/localflavor/ch/ch_states.py:28 +msgid "Vaud" +msgstr "" + +#: contrib/localflavor/ch/ch_states.py:29 +msgid "Zug" +msgstr "" + +#: contrib/localflavor/ch/ch_states.py:30 +msgid "Zurich" +msgstr "" + +#: contrib/localflavor/ch/forms.py:16 contrib/localflavor/no/forms.py:12 +msgid "Enter a zip code in the format XXXX." +msgstr "" + +#: contrib/localflavor/ch/forms.py:64 +msgid "" +"Enter a valid Swiss identity or passport card number in X1234567<0 or " +"1234567890 format." +msgstr "" + +#: contrib/localflavor/cl/forms.py:29 +#, fuzzy +msgid "Enter a valid Chilean RUT." +msgstr "Unesi ispravan čileanski RUT" + +#: contrib/localflavor/cl/forms.py:30 +#, fuzzy +msgid "Enter a valid Chilean RUT. The format is XX.XXX.XXX-X." +msgstr "Unesi ispravan čileanski RUT formata XX.XXX.XXX-X." + +#: contrib/localflavor/cl/forms.py:31 +msgid "The Chilean RUT is not valid." msgstr "" #: contrib/localflavor/de/de_states.py:5 @@ -2222,12 +1927,366 @@ msgstr "" msgid "Thuringia" msgstr "" -#: contrib/localflavor/de/forms.py:60 +#: contrib/localflavor/de/forms.py:14 contrib/localflavor/fi/forms.py:12 +#: contrib/localflavor/fr/forms.py:15 +msgid "Enter a zip code in the format XXXXX." +msgstr "" + +#: contrib/localflavor/de/forms.py:41 msgid "" "Enter a valid German identity card number in XXXXXXXXXXX-XXXXXXX-XXXXXXX-X " "format." msgstr "" +#: contrib/localflavor/es/es_provinces.py:5 +msgid "Arava" +msgstr "" + +#: contrib/localflavor/es/es_provinces.py:6 +msgid "Albacete" +msgstr "" + +#: contrib/localflavor/es/es_provinces.py:7 +msgid "Alacant" +msgstr "" + +#: contrib/localflavor/es/es_provinces.py:8 +msgid "Almeria" +msgstr "" + +#: contrib/localflavor/es/es_provinces.py:9 +#, fuzzy +msgid "Avila" +msgstr "Travanj" + +#: contrib/localflavor/es/es_provinces.py:10 +msgid "Badajoz" +msgstr "" + +#: contrib/localflavor/es/es_provinces.py:11 +msgid "Illes Balears" +msgstr "" + +#: contrib/localflavor/es/es_provinces.py:12 +msgid "Barcelona" +msgstr "" + +#: contrib/localflavor/es/es_provinces.py:13 +msgid "Burgos" +msgstr "" + +#: contrib/localflavor/es/es_provinces.py:14 +msgid "Caceres" +msgstr "" + +#: contrib/localflavor/es/es_provinces.py:15 +msgid "Cadiz" +msgstr "" + +#: contrib/localflavor/es/es_provinces.py:16 +msgid "Castello" +msgstr "" + +#: contrib/localflavor/es/es_provinces.py:17 +msgid "Ciudad Real" +msgstr "" + +#: contrib/localflavor/es/es_provinces.py:18 +msgid "Cordoba" +msgstr "" + +#: contrib/localflavor/es/es_provinces.py:19 +msgid "A Coruna" +msgstr "" + +#: contrib/localflavor/es/es_provinces.py:20 +msgid "Cuenca" +msgstr "" + +#: contrib/localflavor/es/es_provinces.py:21 +msgid "Girona" +msgstr "" + +#: contrib/localflavor/es/es_provinces.py:22 +#, fuzzy +msgid "Granada" +msgstr "i" + +#: contrib/localflavor/es/es_provinces.py:23 +msgid "Guadalajara" +msgstr "" + +#: contrib/localflavor/es/es_provinces.py:24 +msgid "Guipuzkoa" +msgstr "" + +#: contrib/localflavor/es/es_provinces.py:25 +msgid "Huelva" +msgstr "" + +#: contrib/localflavor/es/es_provinces.py:26 +#, fuzzy +msgid "Huesca" +msgstr "Utorak" + +#: contrib/localflavor/es/es_provinces.py:27 +#, fuzzy +msgid "Jaen" +msgstr "Sij." + +#: contrib/localflavor/es/es_provinces.py:28 +msgid "Leon" +msgstr "" + +#: contrib/localflavor/es/es_provinces.py:29 +msgid "Lleida" +msgstr "" + +#: contrib/localflavor/es/es_provinces.py:30 +#: contrib/localflavor/es/es_regions.py:17 +msgid "La Rioja" +msgstr "" + +#: contrib/localflavor/es/es_provinces.py:31 +msgid "Lugo" +msgstr "" + +#: contrib/localflavor/es/es_provinces.py:32 +#: contrib/localflavor/es/es_regions.py:18 +msgid "Madrid" +msgstr "" + +#: contrib/localflavor/es/es_provinces.py:33 +msgid "Malaga" +msgstr "" + +#: contrib/localflavor/es/es_provinces.py:34 +msgid "Murcia" +msgstr "" + +#: contrib/localflavor/es/es_provinces.py:35 +msgid "Navarre" +msgstr "" + +#: contrib/localflavor/es/es_provinces.py:36 +msgid "Ourense" +msgstr "" + +#: contrib/localflavor/es/es_provinces.py:37 +msgid "Asturias" +msgstr "" + +#: contrib/localflavor/es/es_provinces.py:38 +msgid "Palencia" +msgstr "" + +#: contrib/localflavor/es/es_provinces.py:39 +msgid "Las Palmas" +msgstr "" + +#: contrib/localflavor/es/es_provinces.py:40 +msgid "Pontevedra" +msgstr "" + +#: contrib/localflavor/es/es_provinces.py:41 +msgid "Salamanca" +msgstr "" + +#: contrib/localflavor/es/es_provinces.py:42 +msgid "Santa Cruz de Tenerife" +msgstr "" + +#: contrib/localflavor/es/es_provinces.py:43 +#: contrib/localflavor/es/es_regions.py:11 +msgid "Cantabria" +msgstr "" + +#: contrib/localflavor/es/es_provinces.py:44 +msgid "Segovia" +msgstr "" + +#: contrib/localflavor/es/es_provinces.py:45 +msgid "Seville" +msgstr "" + +#: contrib/localflavor/es/es_provinces.py:46 +msgid "Soria" +msgstr "" + +#: contrib/localflavor/es/es_provinces.py:47 +msgid "Tarragona" +msgstr "" + +#: contrib/localflavor/es/es_provinces.py:48 +#, fuzzy +msgid "Teruel" +msgstr "Uto" + +#: contrib/localflavor/es/es_provinces.py:49 +msgid "Toledo" +msgstr "" + +#: contrib/localflavor/es/es_provinces.py:50 +msgid "Valencia" +msgstr "" + +#: contrib/localflavor/es/es_provinces.py:51 +msgid "Valladolid" +msgstr "" + +#: contrib/localflavor/es/es_provinces.py:52 +msgid "Bizkaia" +msgstr "" + +#: contrib/localflavor/es/es_provinces.py:53 +msgid "Zamora" +msgstr "" + +#: contrib/localflavor/es/es_provinces.py:54 +msgid "Zaragoza" +msgstr "" + +#: contrib/localflavor/es/es_provinces.py:55 +msgid "Ceuta" +msgstr "" + +#: contrib/localflavor/es/es_provinces.py:56 +msgid "Melilla" +msgstr "" + +#: contrib/localflavor/es/es_regions.py:5 +msgid "Andalusia" +msgstr "" + +#: contrib/localflavor/es/es_regions.py:6 +msgid "Aragon" +msgstr "" + +#: contrib/localflavor/es/es_regions.py:7 +msgid "Principality of Asturias" +msgstr "" + +#: contrib/localflavor/es/es_regions.py:8 +msgid "Balearic Islands" +msgstr "" + +#: contrib/localflavor/es/es_regions.py:9 +msgid "Basque Country" +msgstr "" + +#: contrib/localflavor/es/es_regions.py:10 +msgid "Canary Islands" +msgstr "" + +#: contrib/localflavor/es/es_regions.py:12 +msgid "Castile-La Mancha" +msgstr "" + +#: contrib/localflavor/es/es_regions.py:13 +msgid "Castile and Leon" +msgstr "" + +#: contrib/localflavor/es/es_regions.py:14 +msgid "Catalonia" +msgstr "" + +#: contrib/localflavor/es/es_regions.py:15 +msgid "Extremadura" +msgstr "" + +#: contrib/localflavor/es/es_regions.py:16 +msgid "Galicia" +msgstr "" + +#: contrib/localflavor/es/es_regions.py:19 +msgid "Region of Murcia" +msgstr "" + +#: contrib/localflavor/es/es_regions.py:20 +msgid "Foral Community of Navarre" +msgstr "" + +#: contrib/localflavor/es/es_regions.py:21 +msgid "Valencian Community" +msgstr "" + +#: contrib/localflavor/es/forms.py:19 +#, fuzzy +msgid "Enter a valid postal code in the range and format 01XXX - 52XXX." +msgstr "Unesi ispravan poštanski broj formata XXXXX or XXX XX." + +#: contrib/localflavor/es/forms.py:39 +#, fuzzy +msgid "" +"Enter a valid phone number in one of the formats 6XXXXXXXX, 8XXXXXXXX or " +"9XXXXXXXX." +msgstr "Unesi ispravan poštanski broj formata XXXXX or XXX XX." + +#: contrib/localflavor/es/forms.py:66 +#, fuzzy +msgid "Please enter a valid NIF, NIE, or CIF." +msgstr "Unesite ispravnu IP adresu." + +#: contrib/localflavor/es/forms.py:67 +#, fuzzy +msgid "Please enter a valid NIF or NIE." +msgstr "Molim unesite validan %s." + +#: contrib/localflavor/es/forms.py:68 +msgid "Invalid checksum for NIF." +msgstr "" + +#: contrib/localflavor/es/forms.py:69 +msgid "Invalid checksum for NIE." +msgstr "" + +#: contrib/localflavor/es/forms.py:70 +msgid "Invalid checksum for CIF." +msgstr "" + +#: contrib/localflavor/es/forms.py:142 +msgid "" +"Please enter a valid bank account number in format XXXX-XXXX-XX-XXXXXXXXXX." +msgstr "" + +#: contrib/localflavor/es/forms.py:143 +msgid "Invalid checksum for bank account number." +msgstr "" + +#: contrib/localflavor/fi/forms.py:28 +msgid "Enter a valid Finnish social security number." +msgstr "Unesi ispravan finski broj socijalnog osiguranja." + +#: contrib/localflavor/in_/forms.py:14 +#, fuzzy +msgid "Enter a zip code in the format XXXXXXX." +msgstr "Unesi ispravan poštanski broj formata XXXXX or XXX XX." + +#: contrib/localflavor/is_/forms.py:17 +msgid "" +"Enter a valid Icelandic identification number. The format is XXXXXX-XXXX." +msgstr "" + +#: contrib/localflavor/is_/forms.py:18 +msgid "The Icelandic identification number is not valid." +msgstr "" + +#: contrib/localflavor/it/forms.py:14 +msgid "Enter a valid zip code." +msgstr "" + +#: contrib/localflavor/it/forms.py:43 +msgid "Enter a valid Social Security number." +msgstr "" + +#: contrib/localflavor/it/forms.py:68 +msgid "Enter a valid VAT number." +msgstr "" + +#: contrib/localflavor/jp/forms.py:19 +msgid "Enter a postal code in the format XXXXXXX or XXX-XXXX." +msgstr "" + #: contrib/localflavor/jp/jp_prefectures.py:4 msgid "Hokkaido" msgstr "" @@ -2416,180 +2475,312 @@ msgstr "" msgid "Okinawa" msgstr "" -#: contrib/localflavor/jp/forms.py:21 -msgid "Enter a postal code in the format XXXXXXX or XXX-XXXX." +#: contrib/localflavor/mx/mx_states.py:12 +msgid "Aguascalientes" msgstr "" -#: contrib/localflavor/ch/ch_states.py:5 -msgid "Aargau" +#: contrib/localflavor/mx/mx_states.py:13 +msgid "Baja California" msgstr "" -#: contrib/localflavor/ch/ch_states.py:6 -msgid "Appenzell Innerrhoden" +#: contrib/localflavor/mx/mx_states.py:14 +msgid "Baja California Sur" msgstr "" -#: contrib/localflavor/ch/ch_states.py:7 -msgid "Appenzell Ausserrhoden" +#: contrib/localflavor/mx/mx_states.py:15 +msgid "Campeche" msgstr "" -#: contrib/localflavor/ch/ch_states.py:8 -msgid "Basel-Stadt" +#: contrib/localflavor/mx/mx_states.py:16 +msgid "Chihuahua" msgstr "" -#: contrib/localflavor/ch/ch_states.py:9 -msgid "Basel-Land" +#: contrib/localflavor/mx/mx_states.py:17 +msgid "Chiapas" msgstr "" -#: contrib/localflavor/ch/ch_states.py:10 -msgid "Berne" +#: contrib/localflavor/mx/mx_states.py:18 +msgid "Coahuila" msgstr "" -#: contrib/localflavor/ch/ch_states.py:11 -msgid "Fribourg" +#: contrib/localflavor/mx/mx_states.py:19 +msgid "Colima" msgstr "" -#: contrib/localflavor/ch/ch_states.py:12 -msgid "Geneva" +#: contrib/localflavor/mx/mx_states.py:20 +msgid "Distrito Federal" msgstr "" -#: contrib/localflavor/ch/ch_states.py:13 -msgid "Glarus" +#: contrib/localflavor/mx/mx_states.py:21 +msgid "Durango" msgstr "" -#: contrib/localflavor/ch/ch_states.py:14 -msgid "Graubuenden" +#: contrib/localflavor/mx/mx_states.py:22 +msgid "Guerrero" msgstr "" -#: contrib/localflavor/ch/ch_states.py:15 -msgid "Jura" +#: contrib/localflavor/mx/mx_states.py:23 +msgid "Guanajuato" msgstr "" -#: contrib/localflavor/ch/ch_states.py:16 -msgid "Lucerne" +#: contrib/localflavor/mx/mx_states.py:24 +msgid "Hidalgo" msgstr "" -#: contrib/localflavor/ch/ch_states.py:17 -msgid "Neuchatel" +#: contrib/localflavor/mx/mx_states.py:25 +msgid "Jalisco" msgstr "" -#: contrib/localflavor/ch/ch_states.py:18 -msgid "Nidwalden" +#: contrib/localflavor/mx/mx_states.py:26 +msgid "Estado de México" msgstr "" -#: contrib/localflavor/ch/ch_states.py:19 -msgid "Obwalden" +#: contrib/localflavor/mx/mx_states.py:27 +msgid "Michoacán" msgstr "" -#: contrib/localflavor/ch/ch_states.py:20 -msgid "Schaffhausen" +#: contrib/localflavor/mx/mx_states.py:28 +msgid "Morelos" msgstr "" -#: contrib/localflavor/ch/ch_states.py:21 -msgid "Schwyz" +#: contrib/localflavor/mx/mx_states.py:29 +msgid "Nayarit" msgstr "" -#: contrib/localflavor/ch/ch_states.py:22 -msgid "Solothurn" +#: contrib/localflavor/mx/mx_states.py:30 +msgid "Nuevo León" msgstr "" -#: contrib/localflavor/ch/ch_states.py:23 -msgid "St. Gallen" +#: contrib/localflavor/mx/mx_states.py:31 +msgid "Oaxaca" msgstr "" -#: contrib/localflavor/ch/ch_states.py:24 -msgid "Thurgau" +#: contrib/localflavor/mx/mx_states.py:32 +msgid "Puebla" msgstr "" -#: contrib/localflavor/ch/ch_states.py:25 -msgid "Ticino" +#: contrib/localflavor/mx/mx_states.py:33 +msgid "Querétaro" msgstr "" -#: contrib/localflavor/ch/ch_states.py:26 -msgid "Uri" +#: contrib/localflavor/mx/mx_states.py:34 +msgid "Quintana Roo" msgstr "" -#: contrib/localflavor/ch/ch_states.py:27 -msgid "Valais" +#: contrib/localflavor/mx/mx_states.py:35 +msgid "Sinaloa" msgstr "" -#: contrib/localflavor/ch/ch_states.py:28 -msgid "Vaud" +#: contrib/localflavor/mx/mx_states.py:36 +msgid "San Luis Potosí" msgstr "" -#: contrib/localflavor/ch/ch_states.py:29 -msgid "Zug" +#: contrib/localflavor/mx/mx_states.py:37 +msgid "Sonora" msgstr "" -#: contrib/localflavor/ch/ch_states.py:30 -msgid "Zurich" +#: contrib/localflavor/mx/mx_states.py:38 +msgid "Tabasco" msgstr "" -#: contrib/localflavor/ch/forms.py:18 contrib/localflavor/no/forms.py:14 -msgid "Enter a zip code in the format XXXX." +#: contrib/localflavor/mx/mx_states.py:39 +msgid "Tamaulipas" msgstr "" -#: contrib/localflavor/ch/forms.py:90 -msgid "" -"Enter a valid Swiss identity or passport card number in X1234567<0 or " -"1234567890 format." +#: contrib/localflavor/mx/mx_states.py:40 +msgid "Tlaxcala" msgstr "" -#: contrib/localflavor/is_/forms.py:17 -msgid "Enter a valid Icelandic identification number. The format is XXXXXX-XXXX." +#: contrib/localflavor/mx/mx_states.py:41 +msgid "Veracruz" msgstr "" -#: contrib/localflavor/is_/forms.py:31 -msgid "The Icelandic identification number is not valid." +#: contrib/localflavor/mx/mx_states.py:42 +msgid "Yucatán" msgstr "" -#: contrib/localflavor/it/forms.py:16 -msgid "Enter a valid zip code." +#: contrib/localflavor/mx/mx_states.py:43 +msgid "Zacatecas" msgstr "" -#: contrib/localflavor/it/forms.py:41 -msgid "Enter a valid Social Security number." +#: contrib/localflavor/nl/forms.py:21 +#, fuzzy +msgid "Enter a valid postal code" +msgstr "Unesite ispravan datum." + +#: contrib/localflavor/nl/forms.py:52 +#, fuzzy +msgid "Enter a valid phone number" +msgstr "Unesite cijeli broj." + +#: contrib/localflavor/nl/forms.py:78 +#, fuzzy +msgid "Enter a valid SoFi number" +msgstr "Unesite ime datoteke koja postoji." + +#: contrib/localflavor/nl/nl_provinces.py:4 +msgid "Drente" msgstr "" -#: contrib/localflavor/it/forms.py:68 -msgid "Enter a valid VAT number." +#: contrib/localflavor/nl/nl_provinces.py:5 +msgid "Flevoland" msgstr "" -#: contrib/localflavor/no/forms.py:35 +#: contrib/localflavor/nl/nl_provinces.py:6 +msgid "Friesland" +msgstr "" + +#: contrib/localflavor/nl/nl_provinces.py:7 +msgid "Gelderland" +msgstr "" + +#: contrib/localflavor/nl/nl_provinces.py:8 +msgid "Groningen" +msgstr "" + +#: contrib/localflavor/nl/nl_provinces.py:9 +msgid "Limburg" +msgstr "" + +#: contrib/localflavor/nl/nl_provinces.py:10 +msgid "Noord-Brabant" +msgstr "" + +#: contrib/localflavor/nl/nl_provinces.py:11 +msgid "Noord-Holland" +msgstr "" + +#: contrib/localflavor/nl/nl_provinces.py:12 +msgid "Overijssel" +msgstr "" + +#: contrib/localflavor/nl/nl_provinces.py:13 +msgid "Utrecht" +msgstr "" + +#: contrib/localflavor/nl/nl_provinces.py:14 +#, fuzzy +msgid "Zeeland" +msgstr "i" + +#: contrib/localflavor/nl/nl_provinces.py:15 +msgid "Zuid-Holland" +msgstr "" + +#: contrib/localflavor/no/forms.py:33 msgid "Enter a valid Norwegian social security number." msgstr "" -#: contrib/localflavor/sk/sk_regions.py:8 -msgid "Banska Bystrica region" +#: contrib/localflavor/pe/forms.py:24 +#, fuzzy +msgid "This field requires 8 digits." +msgstr "Unos za ovo polje je obavezno." + +#: contrib/localflavor/pe/forms.py:52 +#, fuzzy +msgid "This field requires 11 digits." +msgstr "Unos za ovo polje je obavezno." + +#: contrib/localflavor/pl/forms.py:39 +msgid "National Identification Number consists of 11 digits." msgstr "" -#: contrib/localflavor/sk/sk_regions.py:9 -msgid "Bratislava region" +#: contrib/localflavor/pl/forms.py:40 +msgid "Wrong checksum for the National Identification Number." msgstr "" -#: contrib/localflavor/sk/sk_regions.py:10 -msgid "Kosice region" +#: contrib/localflavor/pl/forms.py:72 +#, fuzzy +msgid "" +"Enter a tax number field (NIP) in the format XXX-XXX-XX-XX or XX-XX-XXX-XXX." +msgstr "Unesi ispravan poštanski broj formata XXXXX or XXX XX." + +#: contrib/localflavor/pl/forms.py:73 +msgid "Wrong checksum for the Tax Number (NIP)." msgstr "" -#: contrib/localflavor/sk/sk_regions.py:11 -msgid "Nitra region" +#: contrib/localflavor/pl/forms.py:112 +msgid "National Business Register Number (REGON) consists of 7 or 9 digits." msgstr "" -#: contrib/localflavor/sk/sk_regions.py:12 -msgid "Presov region" +#: contrib/localflavor/pl/forms.py:113 +msgid "Wrong checksum for the National Business Register Number (REGON)." msgstr "" -#: contrib/localflavor/sk/sk_regions.py:13 -msgid "Trencin region" +#: contrib/localflavor/pl/forms.py:156 +#, fuzzy +msgid "Enter a postal code in the format XX-XXX." +msgstr "Unesi ispravan poštanski broj formata XXXXX or XXX XX." + +#: contrib/localflavor/pl/pl_voivodeships.py:8 +msgid "Lower Silesia" msgstr "" -#: contrib/localflavor/sk/sk_regions.py:14 -msgid "Trnava region" +#: contrib/localflavor/pl/pl_voivodeships.py:9 +msgid "Kuyavia-Pomerania" msgstr "" -#: contrib/localflavor/sk/sk_regions.py:15 -msgid "Zilina region" +#: contrib/localflavor/pl/pl_voivodeships.py:10 +msgid "Lublin" msgstr "" +#: contrib/localflavor/pl/pl_voivodeships.py:11 +msgid "Lubusz" +msgstr "" + +#: contrib/localflavor/pl/pl_voivodeships.py:12 +msgid "Lodz" +msgstr "" + +#: contrib/localflavor/pl/pl_voivodeships.py:13 +msgid "Lesser Poland" +msgstr "" + +#: contrib/localflavor/pl/pl_voivodeships.py:14 +msgid "Masovia" +msgstr "" + +#: contrib/localflavor/pl/pl_voivodeships.py:15 +msgid "Opole" +msgstr "" + +#: contrib/localflavor/pl/pl_voivodeships.py:16 +msgid "Subcarpatia" +msgstr "" + +#: contrib/localflavor/pl/pl_voivodeships.py:17 +msgid "Podlasie" +msgstr "" + +#: contrib/localflavor/pl/pl_voivodeships.py:18 +msgid "Pomerania" +msgstr "" + +#: contrib/localflavor/pl/pl_voivodeships.py:19 +#, fuzzy +msgid "Silesia" +msgstr "Zilina" + +#: contrib/localflavor/pl/pl_voivodeships.py:20 +msgid "Swietokrzyskie" +msgstr "" + +#: contrib/localflavor/pl/pl_voivodeships.py:21 +msgid "Warmia-Masuria" +msgstr "" + +#: contrib/localflavor/pl/pl_voivodeships.py:22 +msgid "Greater Poland" +msgstr "" + +#: contrib/localflavor/pl/pl_voivodeships.py:23 +msgid "West Pomerania" +msgstr "" + +#: contrib/localflavor/sk/forms.py:30 +msgid "Enter a postal code in the format XXXXX or XXX XX." +msgstr "Unesi ispravan poštanski broj formata XXXXX or XXX XX." + #: contrib/localflavor/sk/sk_districts.py:8 msgid "Banska Bystrica" msgstr "" @@ -2906,83 +3097,982 @@ msgstr "Ziar nad Hronom" msgid "Zilina" msgstr "Zilina" -#: contrib/localflavor/sk/forms.py:32 -msgid "Enter a postal code in the format XXXXX or XXX XX." -msgstr "Unesi ispravan poštanski broj formata XXXXX or XXX XX." +#: contrib/localflavor/sk/sk_regions.py:8 +msgid "Banska Bystrica region" +msgstr "" -#: contrib/localflavor/cl/forms.py:32 -msgid "Enter valid a Chilean RUT. The format is XX.XXX.XXX-X." -msgstr "Unesi ispravan čileanski RUT formata XX.XXX.XXX-X." +#: contrib/localflavor/sk/sk_regions.py:9 +msgid "Bratislava region" +msgstr "" -#: contrib/localflavor/cl/forms.py:37 -msgid "Enter valid a Chilean RUT" -msgstr "Unesi ispravan čileanski RUT" +#: contrib/localflavor/sk/sk_regions.py:10 +msgid "Kosice region" +msgstr "" -#: contrib/localflavor/fi/forms.py:40 contrib/localflavor/fi/forms.py:45 -msgid "Enter a valid Finnish social security number." +#: contrib/localflavor/sk/sk_regions.py:11 +msgid "Nitra region" +msgstr "" + +#: contrib/localflavor/sk/sk_regions.py:12 +msgid "Presov region" +msgstr "" + +#: contrib/localflavor/sk/sk_regions.py:13 +msgid "Trencin region" +msgstr "" + +#: contrib/localflavor/sk/sk_regions.py:14 +msgid "Trnava region" +msgstr "" + +#: contrib/localflavor/sk/sk_regions.py:15 +msgid "Zilina region" +msgstr "" + +#: contrib/localflavor/uk/forms.py:21 +#, fuzzy +msgid "Enter a valid postcode." +msgstr "Unesite ispravan datum." + +#: contrib/localflavor/uk/uk_regions.py:11 +msgid "Bedfordshire" +msgstr "" + +#: contrib/localflavor/uk/uk_regions.py:12 +msgid "Buckinghamshire" +msgstr "" + +#: contrib/localflavor/uk/uk_regions.py:14 +msgid "Cheshire" +msgstr "" + +#: contrib/localflavor/uk/uk_regions.py:15 +msgid "Cornwall and Isles of Scilly" +msgstr "" + +#: contrib/localflavor/uk/uk_regions.py:16 +msgid "Cumbria" +msgstr "" + +#: contrib/localflavor/uk/uk_regions.py:17 +msgid "Derbyshire" +msgstr "" + +#: contrib/localflavor/uk/uk_regions.py:18 +msgid "Devon" +msgstr "" + +#: contrib/localflavor/uk/uk_regions.py:19 +msgid "Dorset" +msgstr "" + +#: contrib/localflavor/uk/uk_regions.py:20 +msgid "Durham" +msgstr "" + +#: contrib/localflavor/uk/uk_regions.py:21 +msgid "East Sussex" +msgstr "" + +#: contrib/localflavor/uk/uk_regions.py:22 +msgid "Essex" +msgstr "" + +#: contrib/localflavor/uk/uk_regions.py:23 +msgid "Gloucestershire" +msgstr "" + +#: contrib/localflavor/uk/uk_regions.py:24 +msgid "Greater London" +msgstr "" + +#: contrib/localflavor/uk/uk_regions.py:25 +msgid "Greater Manchester" +msgstr "" + +#: contrib/localflavor/uk/uk_regions.py:26 +msgid "Hampshire" +msgstr "" + +#: contrib/localflavor/uk/uk_regions.py:27 +msgid "Hertfordshire" +msgstr "" + +#: contrib/localflavor/uk/uk_regions.py:28 +msgid "Kent" +msgstr "" + +#: contrib/localflavor/uk/uk_regions.py:29 +msgid "Lancashire" +msgstr "" + +#: contrib/localflavor/uk/uk_regions.py:30 +msgid "Leicestershire" +msgstr "" + +#: contrib/localflavor/uk/uk_regions.py:31 +msgid "Lincolnshire" +msgstr "" + +#: contrib/localflavor/uk/uk_regions.py:32 +msgid "Merseyside" +msgstr "" + +#: contrib/localflavor/uk/uk_regions.py:33 +msgid "Norfolk" +msgstr "" + +#: contrib/localflavor/uk/uk_regions.py:34 +msgid "North Yorkshire" +msgstr "" + +#: contrib/localflavor/uk/uk_regions.py:35 +msgid "Northamptonshire" +msgstr "" + +#: contrib/localflavor/uk/uk_regions.py:36 +msgid "Northumberland" +msgstr "" + +#: contrib/localflavor/uk/uk_regions.py:37 +msgid "Nottinghamshire" +msgstr "" + +#: contrib/localflavor/uk/uk_regions.py:38 +msgid "Oxfordshire" +msgstr "" + +#: contrib/localflavor/uk/uk_regions.py:39 +msgid "Shropshire" +msgstr "" + +#: contrib/localflavor/uk/uk_regions.py:40 +msgid "Somerset" +msgstr "" + +#: contrib/localflavor/uk/uk_regions.py:41 +msgid "South Yorkshire" +msgstr "" + +#: contrib/localflavor/uk/uk_regions.py:42 +msgid "Staffordshire" +msgstr "" + +#: contrib/localflavor/uk/uk_regions.py:43 +msgid "Suffolk" +msgstr "" + +#: contrib/localflavor/uk/uk_regions.py:44 +msgid "Surrey" +msgstr "" + +#: contrib/localflavor/uk/uk_regions.py:45 +msgid "Tyne and Wear" +msgstr "" + +#: contrib/localflavor/uk/uk_regions.py:46 +msgid "Warwickshire" +msgstr "" + +#: contrib/localflavor/uk/uk_regions.py:47 +msgid "West Midlands" +msgstr "" + +#: contrib/localflavor/uk/uk_regions.py:48 +msgid "West Sussex" +msgstr "" + +#: contrib/localflavor/uk/uk_regions.py:49 +msgid "West Yorkshire" +msgstr "" + +#: contrib/localflavor/uk/uk_regions.py:50 +msgid "Wiltshire" +msgstr "" + +#: contrib/localflavor/uk/uk_regions.py:51 +msgid "Worcestershire" +msgstr "" + +#: contrib/localflavor/uk/uk_regions.py:55 +msgid "County Antrim" +msgstr "" + +#: contrib/localflavor/uk/uk_regions.py:56 +msgid "County Armagh" +msgstr "" + +#: contrib/localflavor/uk/uk_regions.py:57 +#: contrib/localflavor/uk/uk_regions.py:58 +msgid "County Down" +msgstr "" + +#: contrib/localflavor/uk/uk_regions.py:59 +msgid "County Londonderry" +msgstr "" + +#: contrib/localflavor/uk/uk_regions.py:60 +msgid "County Tyrone" +msgstr "" + +#: contrib/localflavor/uk/uk_regions.py:64 +msgid "Clwyd" +msgstr "" + +#: contrib/localflavor/uk/uk_regions.py:65 +msgid "Dyfed" +msgstr "" + +#: contrib/localflavor/uk/uk_regions.py:66 +msgid "Gwent" +msgstr "" + +#: contrib/localflavor/uk/uk_regions.py:67 +msgid "Gwynedd" +msgstr "" + +#: contrib/localflavor/uk/uk_regions.py:68 +msgid "Mid Glamorgan" +msgstr "" + +#: contrib/localflavor/uk/uk_regions.py:69 +msgid "Powys" +msgstr "" + +#: contrib/localflavor/uk/uk_regions.py:70 +msgid "South Glamorgan" +msgstr "" + +#: contrib/localflavor/uk/uk_regions.py:71 +msgid "West Glamorgan" +msgstr "" + +#: contrib/localflavor/uk/uk_regions.py:75 +msgid "Borders" +msgstr "" + +#: contrib/localflavor/uk/uk_regions.py:76 +msgid "Central Scotland" +msgstr "" + +#: contrib/localflavor/uk/uk_regions.py:77 +msgid "Dumfries and Galloway" +msgstr "" + +#: contrib/localflavor/uk/uk_regions.py:78 +msgid "Fife" +msgstr "" + +#: contrib/localflavor/uk/uk_regions.py:79 +msgid "Grampian" +msgstr "" + +#: contrib/localflavor/uk/uk_regions.py:80 +msgid "Highland" +msgstr "" + +#: contrib/localflavor/uk/uk_regions.py:81 +msgid "Lothian" +msgstr "" + +#: contrib/localflavor/uk/uk_regions.py:82 +msgid "Orkney Islands" +msgstr "" + +#: contrib/localflavor/uk/uk_regions.py:83 +msgid "Shetland Islands" +msgstr "" + +#: contrib/localflavor/uk/uk_regions.py:84 +msgid "Strathclyde" +msgstr "" + +#: contrib/localflavor/uk/uk_regions.py:85 +msgid "Tayside" +msgstr "" + +#: contrib/localflavor/uk/uk_regions.py:86 +msgid "Western Isles" +msgstr "" + +#: contrib/localflavor/uk/uk_regions.py:90 +#, fuzzy +msgid "England" +msgstr "i" + +#: contrib/localflavor/uk/uk_regions.py:91 +msgid "Northern Ireland" +msgstr "" + +#: contrib/localflavor/uk/uk_regions.py:92 +msgid "Scotland" +msgstr "" + +#: contrib/localflavor/uk/uk_regions.py:93 +msgid "Wales" +msgstr "" + +#: contrib/localflavor/us/forms.py:16 +msgid "Enter a zip code in the format XXXXX or XXXXX-XXXX." +msgstr "" + +#: contrib/localflavor/us/forms.py:54 +msgid "Enter a valid U.S. Social Security number in XXX-XX-XXXX format." +msgstr "" + +#: contrib/localflavor/za/forms.py:20 +#, fuzzy +msgid "Enter a valid South African ID number" msgstr "Unesi ispravan finski broj socijalnog osiguranja." -#: contrib/sessions/models.py:68 +#: contrib/localflavor/za/forms.py:54 +#, fuzzy +msgid "Enter a valid South African postal code" +msgstr "Unesite ime datoteke koja postoji." + +#: contrib/localflavor/za/za_provinces.py:4 +#, fuzzy +msgid "Eastern Cape" +msgstr "korisničko ime" + +#: contrib/localflavor/za/za_provinces.py:5 +msgid "Free State" +msgstr "" + +#: contrib/localflavor/za/za_provinces.py:6 +#, fuzzy +msgid "Gauteng" +msgstr "kol." + +#: contrib/localflavor/za/za_provinces.py:7 +msgid "KwaZulu-Natal" +msgstr "" + +#: contrib/localflavor/za/za_provinces.py:8 +msgid "Limpopo" +msgstr "" + +#: contrib/localflavor/za/za_provinces.py:9 +msgid "Mpumalanga" +msgstr "" + +#: contrib/localflavor/za/za_provinces.py:10 +msgid "Northern Cape" +msgstr "" + +#: contrib/localflavor/za/za_provinces.py:11 +msgid "North West" +msgstr "" + +#: contrib/localflavor/za/za_provinces.py:12 +msgid "Western Cape" +msgstr "" + +#: contrib/redirects/models.py:7 +msgid "redirect from" +msgstr "forma za preusmjeravanje" + +#: contrib/redirects/models.py:8 +msgid "" +"This should be an absolute path, excluding the domain name. Example: '/" +"events/search/'." +msgstr "" +"Ovo bi trebala biti apsolutna putanja, bez imena domene. Primjer: '/events/" +"search/'." + +#: contrib/redirects/models.py:9 +msgid "redirect to" +msgstr "preusmjeri na" + +#: contrib/redirects/models.py:10 +msgid "" +"This can be either an absolute path (as above) or a full URL starting with " +"'http://'." +msgstr "" +"Ovo može biti ili apsolutna putanja (kao gore) ili potpuni URL koji počinje " +"sa 'http://'" + +#: contrib/redirects/models.py:13 +msgid "redirect" +msgstr "preusmjeri" + +#: contrib/redirects/models.py:14 +msgid "redirects" +msgstr "redirects" + +#: contrib/sessions/models.py:46 msgid "session key" msgstr "session ključ (key)" -#: contrib/sessions/models.py:69 +#: contrib/sessions/models.py:47 msgid "session data" msgstr "session podaci" -#: contrib/sessions/models.py:70 +#: contrib/sessions/models.py:48 msgid "expire date" -msgstr "ističe datuma" +msgstr "ističe na datum" -#: contrib/sessions/models.py:74 +#: contrib/sessions/models.py:53 msgid "session" msgstr "session" -#: contrib/sessions/models.py:75 +#: contrib/sessions/models.py:54 msgid "sessions" msgstr "sessions" -#: contrib/flatpages/models.py:8 -msgid "Example: '/about/contact/'. Make sure to have leading and trailing slashes." -msgstr "Primjer: '/about/contact/'. Provjerite ako imate prvi i preostale slash-eve (/)." +#: contrib/sites/models.py:32 +msgid "domain name" +msgstr "ime domene" -#: contrib/flatpages/models.py:9 -msgid "title" -msgstr "naslov" +#: contrib/sites/models.py:33 +msgid "display name" +msgstr "ime za prikaz" -#: contrib/flatpages/models.py:10 -msgid "content" -msgstr "sadržaj" +#: contrib/sites/models.py:37 +msgid "site" +msgstr "stranica" -#: contrib/flatpages/models.py:11 -msgid "enable comments" -msgstr "uključi komentare" +#: contrib/sites/models.py:38 +msgid "sites" +msgstr "stranice" -#: contrib/flatpages/models.py:12 -msgid "template name" -msgstr "ime template-a" +#: core/validators.py:72 +msgid "This value must contain only letters, numbers and underscores." +msgstr "Ova vrijednost može sadržavati samo slova, brojeve i povlaku." -#: contrib/flatpages/models.py:13 +#: core/validators.py:76 msgid "" -"Example: 'flatpages/contact_page.html'. If this isn't provided, the system " -"will use 'flatpages/default.html'." -msgstr "Primjer: 'flatpages/contact_page.html'. Ako navedeno nije definirano sistem će koristiti 'flatpages/default.html'." +"This value must contain only letters, numbers, underscores, dashes or " +"slashes." +msgstr "" +"Ova vrijednost može sadržavati samo slova, brojeve, povlaku, crtice ili " +"slashes (/)." -#: contrib/flatpages/models.py:14 -msgid "registration required" -msgstr "registracija obavezna" +#: core/validators.py:80 +msgid "This value must contain only letters, numbers, underscores or hyphens." +msgstr "" +"Ova vrijednost može sadržavati samo slova, brojeve, povlake ili hyphens." -#: contrib/flatpages/models.py:14 -msgid "If this is checked, only logged-in users will be able to view the page." -msgstr "Ako je ovo selektirano samo logirani korisnici moći će vidjeti ovu stranicu." +#: core/validators.py:84 +msgid "Uppercase letters are not allowed here." +msgstr "Velika slova ovdje nisu dopuštena." -#: contrib/flatpages/models.py:18 -msgid "flat page" -msgstr "statična stranica" +#: core/validators.py:88 +msgid "Lowercase letters are not allowed here." +msgstr "Mala slova ovdje nisu dopuštena" -#: contrib/flatpages/models.py:19 -msgid "flat pages" -msgstr "statične stranice" +#: core/validators.py:95 +msgid "Enter only digits separated by commas." +msgstr "Unesite samo brojeve razdvojene zarezom." + +#: core/validators.py:107 +msgid "Enter valid e-mail addresses separated by commas." +msgstr "Unesite ispravne e-mail adrese odvojene zarezom." + +#: core/validators.py:111 +msgid "Please enter a valid IP address." +msgstr "Unesite ispravnu IP adresu." + +#: core/validators.py:115 +msgid "Empty values are not allowed here." +msgstr "Prazne vrijednosti nisu ispravne ovdje." + +#: core/validators.py:119 +msgid "Non-numeric characters aren't allowed here." +msgstr "Dozvoljeni su samo numerički znakovi." + +#: core/validators.py:123 +msgid "This value can't be comprised solely of digits." +msgstr "Ova vrijednost ne može sadržavati samo brojeve." + +#: core/validators.py:128 newforms/fields.py:151 +msgid "Enter a whole number." +msgstr "Unesite cijeli broj." + +#: core/validators.py:132 +msgid "Only alphabetical characters are allowed here." +msgstr "Dozvoljena su samo slova abecede." + +#: core/validators.py:147 +msgid "Year must be 1900 or later." +msgstr "Godina mora biti poslije 1900." + +#: core/validators.py:151 +#, python-format +msgid "Invalid date: %s" +msgstr "Neispravan datum: %s" + +#: core/validators.py:156 db/models/fields/__init__.py:509 +msgid "Enter a valid date in YYYY-MM-DD format." +msgstr "Unesite validan datum u formatu YYYY-MM-DD." + +#: core/validators.py:161 +msgid "Enter a valid time in HH:MM format." +msgstr "Unesite ispravno vrijeme u HH:MM formatu." + +#: core/validators.py:165 db/models/fields/__init__.py:583 +msgid "Enter a valid date/time in YYYY-MM-DD HH:MM format." +msgstr "Unesite validan datum/vrijeme u formatu YYYY-MM-DD HH:MM." + +#: core/validators.py:170 newforms/fields.py:402 +msgid "Enter a valid e-mail address." +msgstr "Unesite ispravnu e-mail adresu." + +#: core/validators.py:182 core/validators.py:474 newforms/fields.py:432 +#: oldforms/__init__.py:687 +msgid "No file was submitted. Check the encoding type on the form." +msgstr "Datoteka nije poslana. Provjerite 'encoding type' forme." + +#: core/validators.py:193 newforms/fields.py:456 +msgid "" +"Upload a valid image. The file you uploaded was either not an image or a " +"corrupted image." +msgstr "" +"Upload-ajte ispravnu sliku. Datoteka koju ste upload-ali ili nije slika ili " +"je oštečena." + +#: core/validators.py:200 +#, python-format +msgid "The URL %s does not point to a valid image." +msgstr "URL %s ne prikazuje ispravnu sliku." + +#: core/validators.py:204 +#, python-format +msgid "Phone numbers must be in XXX-XXX-XXXX format. \"%s\" is invalid." +msgstr "" +"Telefonski brojevi moraju biti u formatu XXX-XXX-XXXX. \"%s\" nije ispravan " +"format." + +#: core/validators.py:212 +#, python-format +msgid "The URL %s does not point to a valid QuickTime video." +msgstr "URL %s ne vodi na ispravan QuickTime video." + +#: core/validators.py:216 +msgid "A valid URL is required." +msgstr "Ispravan URL je obavezan." + +#: core/validators.py:230 +#, python-format +msgid "" +"Valid HTML is required. Specific errors are:\n" +"%s" +msgstr "Ispravan HTML je obavezan. Pogreške:
      %s" + +#: core/validators.py:237 +#, python-format +msgid "Badly formed XML: %s" +msgstr "Loše formatiran XML: %s" + +#: core/validators.py:254 +#, python-format +msgid "Invalid URL: %s" +msgstr "Neispravan URL: %s" + +#: core/validators.py:259 core/validators.py:261 +#, python-format +msgid "The URL %s is a broken link." +msgstr "URL %s je neispravan (broken) link." + +#: core/validators.py:267 +msgid "Enter a valid U.S. state abbreviation." +msgstr "Enter a valid U.S. state abbreviation." + +#: core/validators.py:281 +#, 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] "Pazite na izražavanje! Riječ %s nije dopuštena." +msgstr[1] "Pazite na izražavanje! Riječi %s nisu dopuštene." + +#: core/validators.py:288 +#, python-format +msgid "This field must match the '%s' field." +msgstr "Ovo polje mora biti jednako %s polju." + +#: core/validators.py:307 +msgid "Please enter something for at least one field." +msgstr "Molim unesite nešto bar za jedno polje." + +#: core/validators.py:316 core/validators.py:327 +msgid "Please enter both fields or leave them both empty." +msgstr "Molim unesite vrijednosti za oba polja ili ostavite oba polja prazna." + +#: core/validators.py:335 +#, python-format +msgid "This field must be given if %(field)s is %(value)s" +msgstr "Ovo polja mora biti ispunjeno ako je %(field)s %(value)s" + +#: core/validators.py:348 +#, python-format +msgid "This field must be given if %(field)s is not %(value)s" +msgstr "Ovo polje je obavezno ako je %(field)s različito od %(value)s" + +#: core/validators.py:367 +msgid "Duplicate values are not allowed." +msgstr "Duplicirane vrijednosti nisu dopuštene." + +#: core/validators.py:382 +#, python-format +msgid "This value must be between %(lower)s and %(upper)s." +msgstr "Vrijednost mora biti između %(lower)s i %(upper)s." + +#: core/validators.py:384 +#, python-format +msgid "This value must be at least %s." +msgstr "Vrijednost mora biti bar %s." + +#: core/validators.py:386 +#, python-format +msgid "This value must be no more than %s." +msgstr "Vrijednost ne može biti veća od %s." + +#: core/validators.py:427 +#, python-format +msgid "This value must be a power of %s." +msgstr "Ova vrijednost na kvadrat mora biti %s." + +#: core/validators.py:437 +msgid "Please enter a valid decimal number." +msgstr "Molim unesite ispravan decimalni broj." + +#: core/validators.py:444 +#, python-format +msgid "Please enter a valid decimal number with at most %s total digit." +msgid_plural "" +"Please enter a valid decimal number with at most %s total digits." +msgstr[0] "" +msgstr[1] "" + +#: core/validators.py:447 +#, python-format +msgid "" +"Please enter a valid decimal number with a whole part of at most %s digit." +msgid_plural "" +"Please enter a valid decimal number with a whole part of at most %s digits." +msgstr[0] "" +msgstr[1] "" + +#: core/validators.py:450 +#, python-format +msgid "Please enter a valid decimal number with at most %s decimal place." +msgid_plural "" +"Please enter a valid decimal number with at most %s decimal places." +msgstr[0] "" +msgstr[1] "" + +#: core/validators.py:458 +msgid "Please enter a valid floating point number." +msgstr "" + +#: core/validators.py:467 +#, python-format +msgid "Make sure your uploaded file is at least %s bytes big." +msgstr "" + +#: core/validators.py:468 +#, python-format +msgid "Make sure your uploaded file is at most %s bytes big." +msgstr "" + +#: core/validators.py:485 +msgid "The format for this field is wrong." +msgstr "" + +#: core/validators.py:500 +msgid "This field is invalid." +msgstr "" + +#: core/validators.py:536 +#, python-format +msgid "Could not retrieve anything from %s." +msgstr "" + +#: core/validators.py:539 +#, python-format +msgid "" +"The URL %(url)s returned the invalid Content-Type header '%(contenttype)s'." +msgstr "" + +#: core/validators.py:572 +#, python-format +msgid "" +"Please close the unclosed %(tag)s tag from line %(line)s. (Line starts with " +"\"%(start)s\".)" +msgstr "" + +#: core/validators.py:576 +#, python-format +msgid "" +"Some text starting on line %(line)s is not allowed in that context. (Line " +"starts with \"%(start)s\".)" +msgstr "" + +#: core/validators.py:581 +#, python-format +msgid "" +"\"%(attr)s\" on line %(line)s is an invalid attribute. (Line starts with \"%" +"(start)s\".)" +msgstr "" + +#: core/validators.py:586 +#, python-format +msgid "" +"\"<%(tag)s>\" on line %(line)s is an invalid tag. (Line starts with \"%" +"(start)s\".)" +msgstr "" + +#: core/validators.py:590 +#, python-format +msgid "" +"A tag on line %(line)s is missing one or more required attributes. (Line " +"starts with \"%(start)s\".)" +msgstr "" + +#: core/validators.py:595 +#, python-format +msgid "" +"The \"%(attr)s\" attribute on line %(line)s has an invalid value. (Line " +"starts with \"%(start)s\".)" +msgstr "" + +#: db/models/manipulators.py:308 +#, python-format +msgid "%(object)s with this %(type)s already exists for the given %(field)s." +msgstr "%(object)s sa %(type)s već postoji za navedeno %(field)s." + +#: db/models/fields/__init__.py:52 +#, python-format +msgid "%(optname)s with this %(fieldname)s already exists." +msgstr "%(optname)s sa navedenim %(fieldname)s već postoji." + +#: db/models/fields/__init__.py:161 db/models/fields/__init__.py:318 +#: db/models/fields/__init__.py:735 db/models/fields/__init__.py:746 +#: newforms/fields.py:45 oldforms/__init__.py:374 +msgid "This field is required." +msgstr "Unos za ovo polje je obavezno." + +#: db/models/fields/__init__.py:418 +msgid "This value must be an integer." +msgstr "Vrijednost mora biti interger." + +#: db/models/fields/__init__.py:454 +msgid "This value must be either True or False." +msgstr "Vrijednost mora biti True ili False." + +#: db/models/fields/__init__.py:475 +msgid "This field cannot be null." +msgstr "Ovo polje ne može biti null." + +#: db/models/fields/__init__.py:644 +msgid "This value must be a decimal number." +msgstr "Vrijednost mora biti decimalan broj." + +#: db/models/fields/__init__.py:755 +msgid "Enter a valid filename." +msgstr "Unesite ime datoteke koja postoji." + +#: db/models/fields/__init__.py:904 +msgid "This value must be either None, True or False." +msgstr "Vrijednost mora biti None, True ili False." + +#: db/models/fields/related.py:55 +#, python-format +msgid "Please enter a valid %s." +msgstr "Molim unesite validan %s." + +#: db/models/fields/related.py:658 +msgid "Separate multiple IDs with commas." +msgstr "Odvojite više ID-a zarezom." + +#: db/models/fields/related.py:660 +msgid "" +"Hold down \"Control\", or \"Command\" on a Mac, to select more than one." +msgstr "" +"Držite \"Control\", ili \"Command\" na Mac-u, da bi odabravili više od " +"jednog objekta." + +#: db/models/fields/related.py:707 +#, python-format +msgid "Please enter valid %(self)s IDs. The value %(value)r is invalid." +msgid_plural "" +"Please enter valid %(self)s IDs. The values %(value)r are invalid." +msgstr[0] "" +"Molim unesite ispravan %(self)s ID. Vrijednost %(value)r je neispravna." +msgstr[1] "" + +#: newforms/fields.py:46 +msgid "Enter a valid value." +msgstr "" + +#: newforms/fields.py:123 +#, python-format +msgid "Ensure this value has at most %(max)d characters (it has %(length)d)." +msgstr "" + +#: newforms/fields.py:124 +#, python-format +msgid "Ensure this value has at least %(min)d characters (it has %(length)d)." +msgstr "" + +#: newforms/fields.py:152 newforms/fields.py:181 newforms/fields.py:210 +#, python-format +msgid "Ensure this value is less than or equal to %s." +msgstr "" + +#: newforms/fields.py:153 newforms/fields.py:182 newforms/fields.py:211 +#, python-format +msgid "Ensure this value is greater than or equal to %s." +msgstr "" + +#: newforms/fields.py:180 newforms/fields.py:209 +msgid "Enter a number." +msgstr "" + +#: newforms/fields.py:212 +#, python-format +msgid "Ensure that there are no more than %s digits in total." +msgstr "" + +#: newforms/fields.py:213 +#, python-format +msgid "Ensure that there are no more than %s decimal places." +msgstr "" + +#: newforms/fields.py:214 +#, python-format +msgid "Ensure that there are no more than %s digits before the decimal point." +msgstr "" + +#: newforms/fields.py:262 newforms/fields.py:719 +msgid "Enter a valid date." +msgstr "Unesite ispravan datum." + +#: newforms/fields.py:295 newforms/fields.py:720 +msgid "Enter a valid time." +msgstr "" + +#: newforms/fields.py:334 +msgid "Enter a valid date/time." +msgstr "" + +#: newforms/fields.py:433 +#, fuzzy +msgid "No file was submitted." +msgstr "Ne." + +#: newforms/fields.py:434 oldforms/__init__.py:689 +msgid "The submitted file is empty." +msgstr "Poslana datoteka je prazna." + +#: newforms/fields.py:492 +msgid "Enter a valid URL." +msgstr "" + +#: newforms/fields.py:493 +msgid "This URL appears to be a broken link." +msgstr "" + +#: newforms/fields.py:555 newforms/models.py:317 +msgid "Select a valid choice. That choice is not one of the available choices." +msgstr "" + +#: newforms/fields.py:594 +#, fuzzy, python-format +msgid "Select a valid choice. %(value)s is not one of the available choices." +msgstr "Odaberite iz ponuđenog; '%(data)s' nije u %(choices)s." + +#: newforms/fields.py:595 newforms/fields.py:657 newforms/models.py:377 +msgid "Enter a list of values." +msgstr "" + +#: newforms/fields.py:748 +#, fuzzy +msgid "Enter a valid IPv4 address." +msgstr "Unesite ispravnu e-mail adresu." + +#: newforms/models.py:378 +#, python-format +msgid "Select a valid choice. %s is not one of the available choices." +msgstr "" + +#: oldforms/__init__.py:409 +#, python-format +msgid "Ensure your text is less than %s character." +msgid_plural "Ensure your text is less than %s characters." +msgstr[0] "" +msgstr[1] "Uneseni tekst mora sadržavati manje od %s znakova." + +#: oldforms/__init__.py:414 +msgid "Line breaks are not allowed here." +msgstr "Unos u novi red ovdje nije dozvoljen." + +#: oldforms/__init__.py:512 oldforms/__init__.py:586 oldforms/__init__.py:625 +#, python-format +msgid "Select a valid choice; '%(data)s' is not in %(choices)s." +msgstr "Odaberite iz ponuđenog; '%(data)s' nije u %(choices)s." + +#: oldforms/__init__.py:745 +msgid "Enter a whole number between -32,768 and 32,767." +msgstr "Unesite cijeli broj između -32,768 i 32,767." + +#: oldforms/__init__.py:755 +msgid "Enter a positive number." +msgstr "Unesite pozitivan broj." + +#: oldforms/__init__.py:765 +msgid "Enter a whole number between 0 and 32,767." +msgstr "Unesite cijeli broj između 0 i 32,767." + +#: template/defaultfilters.py:683 +msgid "yes,no,maybe" +msgstr "da,ne,možda" + +#: template/defaultfilters.py:714 +#, python-format +msgid "%(size)d byte" +msgid_plural "%(size)d bytes" +msgstr[0] "" +msgstr[1] "" + +#: template/defaultfilters.py:716 +#, python-format +msgid "%.1f KB" +msgstr "" + +#: template/defaultfilters.py:718 +#, python-format +msgid "%.1f MB" +msgstr "" + +#: template/defaultfilters.py:719 +#, python-format +msgid "%.1f GB" +msgstr "" + +#: utils/dateformat.py:41 +msgid "p.m." +msgstr "" + +#: utils/dateformat.py:42 +msgid "a.m." +msgstr "" + +#: utils/dateformat.py:47 +msgid "PM" +msgstr "" + +#: utils/dateformat.py:48 +msgid "AM" +msgstr "" + +#: utils/dateformat.py:97 +msgid "midnight" +msgstr "ponoć" + +#: utils/dateformat.py:99 +msgid "noon" +msgstr "" #: utils/dates.py:6 msgid "Monday" @@ -3164,119 +4254,93 @@ msgstr "Stu." msgid "Dec." msgstr "Pro." -#: utils/timesince.py:12 +#: utils/text.py:127 +#, fuzzy +msgid "or" +msgstr "sati" + +#: utils/timesince.py:21 msgid "year" msgid_plural "years" msgstr[0] "godina" msgstr[1] "godina" -#: utils/timesince.py:13 +#: utils/timesince.py:22 msgid "month" msgid_plural "months" msgstr[0] "mjesec" msgstr[1] "mjesec" -#: utils/timesince.py:14 +#: utils/timesince.py:23 msgid "week" msgid_plural "weeks" msgstr[0] "tjedan" msgstr[1] "tjedan" -#: utils/timesince.py:15 +#: utils/timesince.py:24 msgid "day" msgid_plural "days" msgstr[0] "dan" msgstr[1] "dan" -#: utils/timesince.py:16 +#: utils/timesince.py:25 msgid "hour" msgid_plural "hours" msgstr[0] "sati" msgstr[1] "sati" -#: utils/timesince.py:17 +#: utils/timesince.py:26 msgid "minute" msgid_plural "minutes" msgstr[0] "minute" msgstr[1] "minuta" -#: utils/timesince.py:39 +#: utils/timesince.py:46 +#, fuzzy +msgid "minutes" +msgstr "minute" + +#: utils/timesince.py:51 #, python-format msgid "%(number)d %(type)s" msgstr "" -#: utils/timesince.py:45 +#: utils/timesince.py:57 #, python-format msgid ", %(number)d %(type)s" msgstr "" -#: utils/dateformat.py:41 -msgid "p.m." -msgstr "" - -#: utils/dateformat.py:42 -msgid "a.m." -msgstr "" - -#: utils/dateformat.py:47 -msgid "PM" -msgstr "" - -#: utils/dateformat.py:48 -msgid "AM" -msgstr "" - -#: utils/dateformat.py:97 -msgid "midnight" -msgstr "ponoć" - -#: utils/dateformat.py:99 -msgid "noon" -msgstr "" - -#: utils/translation/trans_real.py:391 +#: utils/translation/trans_real.py:399 msgid "DATE_FORMAT" msgstr "" -#: utils/translation/trans_real.py:392 +#: utils/translation/trans_real.py:400 msgid "DATETIME_FORMAT" msgstr "" -#: utils/translation/trans_real.py:393 +#: utils/translation/trans_real.py:401 msgid "TIME_FORMAT" msgstr "" -#: utils/translation/trans_real.py:409 +#: utils/translation/trans_real.py:417 msgid "YEAR_MONTH_FORMAT" msgstr "" -#: utils/translation/trans_real.py:410 +#: utils/translation/trans_real.py:418 msgid "MONTH_DAY_FORMAT" msgstr "" -#: template/defaultfilters.py:485 -msgid "yes,no,maybe" -msgstr "da,ne,možda" - -#: template/defaultfilters.py:514 +#: views/generic/create_update.py:43 #, python-format -msgid "%(size)d byte" -msgid_plural "%(size)d bytes" -msgstr[0] "" -msgstr[1] "" - -#: template/defaultfilters.py:516 -#, python-format -msgid "%.1f KB" +msgid "The %(verbose_name)s was created successfully." msgstr "" -#: template/defaultfilters.py:518 +#: views/generic/create_update.py:117 #, python-format -msgid "%.1f MB" -msgstr "" +msgid "The %(verbose_name)s was updated successfully." +msgstr "%(verbose_name)s je uspješno promijenjeno." -#: template/defaultfilters.py:519 +#: views/generic/create_update.py:184 #, python-format -msgid "%.1f GB" -msgstr "" - +msgid "The %(verbose_name)s was deleted." +msgstr "%(verbose_name)s je izbrisano" diff --git a/django/conf/locale/hr/LC_MESSAGES/djangojs.mo b/django/conf/locale/hr/LC_MESSAGES/djangojs.mo index 823d8dbf10a8ca0bf95c9d2f3eebebcc545dc78f..62fe73b6051ed71b35768068433ee768a4d47532 100644 GIT binary patch literal 1607 zcmZ9L&u<$=6vu~Bez{Pf{FDIcT`Eyk>+aH|Sf-%5`9YJ^v6XcidSkph*t1^GShKSR zM?IHIbKt;@KY<%3E;%Lt0Y}tpPe{FR$c^vYY#Wu4XFl(}dGF1ex8ui`&i^VfKF0hM z^KZ<{n7_S*1tUBs#H(Ngz6`d&H^H0W>)=MczXQGn{XWWlKk}%sK=evc4KLOjg-#p&OVcHYVkHE_kjoZk$dsNxIwZxZHi8siq2f>Tn=+ZmkY5Xb7fNLAecnu zVr6V?p-7U~Q}tZStBpdLDkN9Zkz`wLlZm*aQzbT~DWzM`x*EDl=t`H2sWWprr>2@?)D&JKrY;R= z4|APj5vyD!o))%rl#H!T)aS(&k|w1j*U5xLJVt0-;-U-c+6seG6|C;5)SOC#ap@}4 zy3@Q9OJ6z&Vqj0#sdWx{?yJJ9YNPLLhJ%BRG`Oc+p{;3Cnn^RVS<%>0GwXcNEk-&G zZkMAX7}z#7`n^H0;*|984pyaCZTcb%zYM}w5M8GzYDd?vMqwDjG1yUa%~{XY!q$zUgt!q;!&uk%a&#`rOt`oW`D@$|w%yMfq#S>^IcKQv% z&8UN}m#HQMe+SD3q-}o;0RvG0^OWwLIhbpJ28AZ*dhPXjxR(fZ} zDmtHGEqpmMmLK2Nv-jFd@rb0+Vq+h%PJ2ajr!$3D+e<486?iBtqk<~7cXXf&uPZw~ zu88HtX%Qpn=s=o`?x{SJ5UF>3SY~oU=<1v|;<+9&@9J5lx(Zu1w{yEsJMcBwE4-b_ zlwx0|%4ovlD72A@=v!lteg^Q+aAqpS?j*OUe4F~TOEDcif)GD1Tkn(JA6h3#($`B(pS93<`2C0FAfTH}Y)Z`Lf&lKIT z)S}|d{5&g#07qwUM|W3+FxQ}9Pk+D3iwsfLVbJ`{2YB<6>MC69X)*<99>+3T!Vw{fJ*byOB2&mbwg4U gbFCD79R1uwL6+F~_&DTb>g5-u+f7bqiDqN~0LP*+Jpcdz diff --git a/django/conf/locale/hr/LC_MESSAGES/djangojs.po b/django/conf/locale/hr/LC_MESSAGES/djangojs.po index 7fd1654913..eca39ec7a2 100644 --- a/django/conf/locale/hr/LC_MESSAGES/djangojs.po +++ b/django/conf/locale/hr/LC_MESSAGES/djangojs.po @@ -1,118 +1,117 @@ -# SOME DESCRIPTIVE TITLE. -# Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER -# This file is distributed under the same license as the PACKAGE package. -# FIRST AUTHOR , YEAR. +# translation of djangojs.po to Hrvatski jezik +# This file is distributed under the same license as the Django package. # -#, fuzzy msgid "" msgstr "" -"Project-Id-Version: PACKAGE VERSION\n" +"Project-Id-Version: djangojs\n" "Report-Msgid-Bugs-To: \n" "POT-Creation-Date: 2007-08-13 11:13+1000\n" -"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" -"Last-Translator: FULL NAME \n" -"Language-Team: LANGUAGE \n" +"PO-Revision-Date: 2008-01-05 01:45+0100\n" +"Last-Translator: Aljosa Mohorovic \n" +"Language-Team: Hrvatski jezik\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" +"X-Generator: KBabel 1.11.4\n" #: contrib/admin/media/js/SelectFilter2.js:33 #, perl-format msgid "Available %s" -msgstr "" +msgstr "Dostupno %s" #: contrib/admin/media/js/SelectFilter2.js:41 msgid "Choose all" -msgstr "" +msgstr "Odaberi sve" #: contrib/admin/media/js/SelectFilter2.js:46 msgid "Add" -msgstr "" +msgstr "Dodaj" #: contrib/admin/media/js/SelectFilter2.js:48 msgid "Remove" -msgstr "" +msgstr "Ukloni" #: contrib/admin/media/js/SelectFilter2.js:53 #, perl-format msgid "Chosen %s" -msgstr "" +msgstr "Odabrano %s" #: contrib/admin/media/js/SelectFilter2.js:54 msgid "Select your choice(s) and click " -msgstr "" +msgstr "Odaberi iz izbora i klikni " #: contrib/admin/media/js/SelectFilter2.js:59 msgid "Clear all" -msgstr "" +msgstr "Očisti sve" #: contrib/admin/media/js/dateparse.js:32 #: contrib/admin/media/js/calendar.js:24 msgid "" "January February March April May June July August September October November " "December" -msgstr "" +msgstr "Siječanj Veljača Ožujak Travanj Svibanj Lipanj Srpanj Kolovoz Rujan Listopad Studeni Prosinac" #: contrib/admin/media/js/dateparse.js:33 msgid "Sunday Monday Tuesday Wednesday Thursday Friday Saturday" -msgstr "" +msgstr "Nedjelja Ponedjeljak Utorak Srijeda Četvrtak Petak Subota" #: contrib/admin/media/js/calendar.js:25 msgid "S M T W T F S" -msgstr "" +msgstr "N P U S Č P S" #: contrib/admin/media/js/admin/DateTimeShortcuts.js:47 #: contrib/admin/media/js/admin/DateTimeShortcuts.js:81 msgid "Now" -msgstr "" +msgstr "Sada" #: contrib/admin/media/js/admin/DateTimeShortcuts.js:51 msgid "Clock" -msgstr "" +msgstr "Sat" #: contrib/admin/media/js/admin/DateTimeShortcuts.js:78 msgid "Choose a time" -msgstr "" +msgstr "Izaberite vrijeme" #: contrib/admin/media/js/admin/DateTimeShortcuts.js:82 msgid "Midnight" -msgstr "" +msgstr "Ponoć" #: contrib/admin/media/js/admin/DateTimeShortcuts.js:83 msgid "6 a.m." -msgstr "" +msgstr "6 ujutro" #: contrib/admin/media/js/admin/DateTimeShortcuts.js:84 msgid "Noon" -msgstr "" +msgstr "Podne" #: contrib/admin/media/js/admin/DateTimeShortcuts.js:88 #: contrib/admin/media/js/admin/DateTimeShortcuts.js:183 msgid "Cancel" -msgstr "" +msgstr "Odustani" #: contrib/admin/media/js/admin/DateTimeShortcuts.js:128 #: contrib/admin/media/js/admin/DateTimeShortcuts.js:177 msgid "Today" -msgstr "" +msgstr "Danas" #: contrib/admin/media/js/admin/DateTimeShortcuts.js:132 msgid "Calendar" -msgstr "" +msgstr "Kalendar" #: contrib/admin/media/js/admin/DateTimeShortcuts.js:175 msgid "Yesterday" -msgstr "" +msgstr "Jučer" #: contrib/admin/media/js/admin/DateTimeShortcuts.js:179 msgid "Tomorrow" -msgstr "" +msgstr "Sutra" #: contrib/admin/media/js/admin/CollapsedFieldsets.js:34 #: contrib/admin/media/js/admin/CollapsedFieldsets.js:72 msgid "Show" -msgstr "" +msgstr "Prikaži" #: contrib/admin/media/js/admin/CollapsedFieldsets.js:63 msgid "Hide" -msgstr "" +msgstr "Sakri" + diff --git a/django/conf/locale/ja/LC_MESSAGES/django.mo b/django/conf/locale/ja/LC_MESSAGES/django.mo index 647717ea06494ce919f1751182f7ebf75a2d64af..47779f17bf11494a4c20438abab2d4e83af2a61b 100644 GIT binary patch literal 71127 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 Pr)!{ZdTJh5XTSdeEles3 diff --git a/django/conf/locale/ja/LC_MESSAGES/django.po b/django/conf/locale/ja/LC_MESSAGES/django.po index 593f5d8a6d..5e78809bdf 100644 --- a/django/conf/locale/ja/LC_MESSAGES/django.po +++ b/django/conf/locale/ja/LC_MESSAGES/django.po @@ -6,7 +6,7 @@ msgid "" msgstr "" "Project-Id-Version: Django 1.0\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2007-08-27 13:00+0900\n" +"POT-Creation-Date: 2007-12-31 21:26+0900\n" "PO-Revision-Date: 2006-05-18 00:28+0900\n" "Last-Translator: makoto tsuyuki \n" "Language-Team: Japanese \n" @@ -75,118 +75,126 @@ msgid "French" msgstr "フランス語" #: conf/global_settings.py:54 +msgid "Gaeilge" +msgstr "アイルランド語" + +#: conf/global_settings.py:55 msgid "Galician" msgstr "ガリシア語" -#: conf/global_settings.py:55 +#: conf/global_settings.py:56 msgid "Hungarian" msgstr "ハンガリー語" -#: conf/global_settings.py:56 +#: conf/global_settings.py:57 msgid "Hebrew" msgstr "ヘブライ語" -#: conf/global_settings.py:57 +#: conf/global_settings.py:58 msgid "Croatian" msgstr "クロアチア語" -#: conf/global_settings.py:58 +#: conf/global_settings.py:59 msgid "Icelandic" msgstr "アイスランド語" -#: conf/global_settings.py:59 +#: conf/global_settings.py:60 msgid "Italian" msgstr "イタリア語" -#: conf/global_settings.py:60 +#: conf/global_settings.py:61 msgid "Japanese" msgstr "日本語" -#: conf/global_settings.py:61 +#: conf/global_settings.py:62 msgid "Korean" msgstr "韓国語" -#: conf/global_settings.py:62 +#: conf/global_settings.py:63 +msgid "Khmer" +msgstr "クメール語" + +#: conf/global_settings.py:64 msgid "Kannada" msgstr "カンナダ語" -#: conf/global_settings.py:63 +#: conf/global_settings.py:65 msgid "Latvian" msgstr "ラトビア語" -#: conf/global_settings.py:64 +#: conf/global_settings.py:66 msgid "Macedonian" msgstr "マケドニア語" -#: conf/global_settings.py:65 +#: conf/global_settings.py:67 msgid "Dutch" msgstr "オランダ語" -#: conf/global_settings.py:66 +#: conf/global_settings.py:68 msgid "Norwegian" msgstr "ノルウェー語" -#: conf/global_settings.py:67 +#: conf/global_settings.py:69 msgid "Polish" msgstr "ポーランド語" -#: conf/global_settings.py:68 +#: conf/global_settings.py:70 msgid "Portugese" msgstr "ポルトガル語" -#: conf/global_settings.py:69 +#: conf/global_settings.py:71 msgid "Brazilian" msgstr "ブラジル語" -#: conf/global_settings.py:70 +#: conf/global_settings.py:72 msgid "Romanian" msgstr "ルーマニア語" -#: conf/global_settings.py:71 +#: conf/global_settings.py:73 msgid "Russian" msgstr "ロシア語" -#: conf/global_settings.py:72 +#: conf/global_settings.py:74 msgid "Slovak" msgstr "スロバキア語" -#: conf/global_settings.py:73 +#: conf/global_settings.py:75 msgid "Slovenian" msgstr "スロヴェニア語" -#: conf/global_settings.py:74 +#: conf/global_settings.py:76 msgid "Serbian" msgstr "セルビア語" -#: conf/global_settings.py:75 +#: conf/global_settings.py:77 msgid "Swedish" msgstr "スウェーデン語" -#: conf/global_settings.py:76 +#: conf/global_settings.py:78 msgid "Tamil" msgstr "タミル語" -#: conf/global_settings.py:77 +#: conf/global_settings.py:79 msgid "Telugu" msgstr "テルグ語" -#: conf/global_settings.py:78 +#: conf/global_settings.py:80 msgid "Turkish" msgstr "トルコ語" -#: conf/global_settings.py:79 +#: conf/global_settings.py:81 msgid "Ukrainian" msgstr "ウクライナ語" -#: conf/global_settings.py:80 +#: conf/global_settings.py:82 msgid "Simplified Chinese" msgstr "簡体字中国語" -#: conf/global_settings.py:81 +#: conf/global_settings.py:83 msgid "Traditional Chinese" msgstr "繁体字中国語" -#: contrib/admin/filterspecs.py:42 +#: contrib/admin/filterspecs.py:44 #, python-format msgid "" "

      By %s:

      \n" @@ -195,71 +203,71 @@ msgstr "" "

      %s で絞り込む

      \n" "
        \n" -#: contrib/admin/filterspecs.py:72 contrib/admin/filterspecs.py:90 -#: contrib/admin/filterspecs.py:145 contrib/admin/filterspecs.py:171 +#: contrib/admin/filterspecs.py:74 contrib/admin/filterspecs.py:92 +#: contrib/admin/filterspecs.py:147 contrib/admin/filterspecs.py:173 msgid "All" msgstr "全て" -#: contrib/admin/filterspecs.py:111 +#: contrib/admin/filterspecs.py:113 msgid "Any date" msgstr "いつでも" -#: contrib/admin/filterspecs.py:112 +#: contrib/admin/filterspecs.py:114 msgid "Today" msgstr "今日" -#: contrib/admin/filterspecs.py:115 +#: contrib/admin/filterspecs.py:117 msgid "Past 7 days" msgstr "過去 7 日間" -#: contrib/admin/filterspecs.py:117 +#: contrib/admin/filterspecs.py:119 msgid "This month" msgstr "今月" -#: contrib/admin/filterspecs.py:119 +#: contrib/admin/filterspecs.py:121 msgid "This year" msgstr "今年" -#: contrib/admin/filterspecs.py:145 newforms/widgets.py:188 -#: oldforms/__init__.py:591 +#: contrib/admin/filterspecs.py:147 newforms/widgets.py:231 +#: oldforms/__init__.py:592 msgid "Yes" msgstr "はい" -#: contrib/admin/filterspecs.py:145 newforms/widgets.py:188 -#: oldforms/__init__.py:591 +#: contrib/admin/filterspecs.py:147 newforms/widgets.py:231 +#: oldforms/__init__.py:592 msgid "No" msgstr "いいえ" -#: contrib/admin/filterspecs.py:152 newforms/widgets.py:188 -#: oldforms/__init__.py:591 +#: contrib/admin/filterspecs.py:154 newforms/widgets.py:231 +#: oldforms/__init__.py:592 msgid "Unknown" msgstr "不明" -#: contrib/admin/models.py:17 +#: contrib/admin/models.py:18 msgid "action time" msgstr "操作時刻" -#: contrib/admin/models.py:20 +#: contrib/admin/models.py:21 msgid "object id" msgstr "オブジェクト ID" -#: contrib/admin/models.py:21 +#: contrib/admin/models.py:22 msgid "object repr" msgstr "オブジェクトの文字列表現" -#: contrib/admin/models.py:22 +#: contrib/admin/models.py:23 msgid "action flag" msgstr "操作種別" -#: contrib/admin/models.py:23 +#: contrib/admin/models.py:24 msgid "change message" msgstr "変更メッセージ" -#: contrib/admin/models.py:26 +#: contrib/admin/models.py:27 msgid "log entry" msgstr "ログエントリ" -#: contrib/admin/models.py:27 +#: contrib/admin/models.py:28 msgid "log entries" msgstr "ログエントリ" @@ -273,17 +281,17 @@ msgid "We're sorry, but the requested page could not be found." msgstr "申し訳ありませんが、お探しのページは見つかりませんでした。" #: contrib/admin/templates/admin/500.html:4 -#: contrib/admin/templates/admin/base.html:30 -#: contrib/admin/templates/admin/change_form.html:13 -#: contrib/admin/templates/admin/change_list.html:6 -#: contrib/admin/templates/admin/delete_confirmation.html:6 +#: contrib/admin/templates/admin/base.html:37 +#: contrib/admin/templates/admin/change_form.html:12 +#: contrib/admin/templates/admin/change_list.html:5 +#: contrib/admin/templates/admin/delete_confirmation.html:5 #: contrib/admin/templates/admin/invalid_setup.html:4 -#: contrib/admin/templates/admin/object_history.html:5 -#: contrib/admin/templates/admin/auth/user/change_password.html:12 +#: contrib/admin/templates/admin/object_history.html:4 +#: contrib/admin/templates/admin/auth/user/change_password.html:11 #: contrib/admin/templates/admin_doc/bookmarklets.html:3 #: 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_done.html:3 +#: contrib/admin/templates/registration/password_change_form.html:3 #: contrib/admin/templates/registration/password_reset_done.html:4 #: contrib/admin/templates/registration/password_reset_form.html:4 msgid "Home" @@ -309,63 +317,22 @@ msgstr "" "エラーが発生しました。エラーをサイトの管理者にメールで報告しましたので、近い" "うちに修正されるはずです。しばらくお待ちください。" -#: contrib/admin/templates/admin/base.html:25 +#: contrib/admin/templates/admin/base.html:26 msgid "Welcome," msgstr "ようこそ" -#: contrib/admin/templates/admin/base.html:25 -#: contrib/admin/templates/admin/change_form.html:10 -#: contrib/admin/templates/admin/change_list.html:5 -#: contrib/admin/templates/admin/delete_confirmation.html:3 -#: contrib/admin/templates/admin/object_history.html:3 -#: contrib/admin/templates/admin/auth/user/change_password.html:9 +#: contrib/admin/templates/admin/base.html:28 #: contrib/admin/templates/admin_doc/bookmarklets.html:3 -#: contrib/admin/templates/registration/password_change_done.html:3 -#: contrib/admin/templates/registration/password_change_form.html:3 msgid "Documentation" msgstr "ドキュメント" -#: contrib/admin/templates/admin/base.html:25 -#: contrib/admin/templates/admin/change_form.html:10 -#: contrib/admin/templates/admin/change_list.html:5 -#: contrib/admin/templates/admin/delete_confirmation.html:3 -#: contrib/admin/templates/admin/object_history.html:3 -#: contrib/admin/templates/admin/auth/user/change_password.html:9 -#: contrib/admin/templates/admin/auth/user/change_password.html:15 -#: contrib/admin/templates/admin/auth/user/change_password.html:46 -#: contrib/admin/templates/admin_doc/bookmarklets.html:4 -#: contrib/admin/templates/admin_doc/index.html:4 -#: contrib/admin/templates/admin_doc/missing_docutils.html:4 -#: contrib/admin/templates/admin_doc/model_detail.html:3 -#: contrib/admin/templates/admin_doc/model_index.html:5 -#: contrib/admin/templates/admin_doc/template_detail.html:4 -#: contrib/admin/templates/admin_doc/template_filter_index.html:5 -#: contrib/admin/templates/admin_doc/template_tag_index.html:5 -#: contrib/admin/templates/admin_doc/view_detail.html:4 -#: contrib/admin/templates/admin_doc/view_index.html:5 -#: contrib/admin/templates/registration/password_change_done.html:3 -#: contrib/admin/templates/registration/password_change_form.html:3 +#: contrib/admin/templates/admin/base.html:29 +#: contrib/admin/templates/admin/auth/user/change_password.html:14 +#: contrib/admin/templates/admin/auth/user/change_password.html:45 msgid "Change password" msgstr "パスワードの変更" -#: contrib/admin/templates/admin/base.html:25 -#: contrib/admin/templates/admin/change_form.html:10 -#: contrib/admin/templates/admin/change_list.html:5 -#: contrib/admin/templates/admin/delete_confirmation.html:3 -#: contrib/admin/templates/admin/object_history.html:3 -#: contrib/admin/templates/admin/auth/user/change_password.html:9 -#: contrib/admin/templates/admin_doc/bookmarklets.html:4 -#: contrib/admin/templates/admin_doc/index.html:4 -#: contrib/admin/templates/admin_doc/missing_docutils.html:4 -#: contrib/admin/templates/admin_doc/model_detail.html:3 -#: contrib/admin/templates/admin_doc/model_index.html:5 -#: contrib/admin/templates/admin_doc/template_detail.html:4 -#: contrib/admin/templates/admin_doc/template_filter_index.html:5 -#: contrib/admin/templates/admin_doc/template_tag_index.html:5 -#: contrib/admin/templates/admin_doc/view_detail.html:4 -#: contrib/admin/templates/admin_doc/view_index.html:5 -#: contrib/admin/templates/registration/password_change_done.html:3 -#: contrib/admin/templates/registration/password_change_form.html:3 +#: contrib/admin/templates/admin/base.html:30 #: contrib/comments/templates/comments/form.html:6 msgid "Log out" msgstr "ログアウト" @@ -378,46 +345,46 @@ msgstr "Django サイト管理" msgid "Django administration" msgstr "Django 管理サイト" -#: contrib/admin/templates/admin/change_form.html:15 +#: contrib/admin/templates/admin/change_form.html:14 #: contrib/admin/templates/admin/index.html:28 msgid "Add" msgstr "追加" -#: contrib/admin/templates/admin/change_form.html:21 -#: contrib/admin/templates/admin/object_history.html:5 +#: contrib/admin/templates/admin/change_form.html:20 +#: contrib/admin/templates/admin/object_history.html:4 msgid "History" msgstr "履歴" -#: contrib/admin/templates/admin/change_form.html:22 +#: contrib/admin/templates/admin/change_form.html:21 msgid "View on site" msgstr "サイト上で表示" -#: contrib/admin/templates/admin/change_form.html:32 -#: contrib/admin/templates/admin/auth/user/change_password.html:24 +#: contrib/admin/templates/admin/change_form.html:31 +#: contrib/admin/templates/admin/auth/user/change_password.html:23 msgid "Please correct the error below." msgid_plural "Please correct the errors below." msgstr[0] "下記のエラーを修正してください。" msgstr[1] "下記のエラーを修正してください。" -#: contrib/admin/templates/admin/change_form.html:50 +#: contrib/admin/templates/admin/change_form.html:49 msgid "Ordering" msgstr "順序" -#: contrib/admin/templates/admin/change_form.html:53 +#: contrib/admin/templates/admin/change_form.html:52 msgid "Order:" msgstr "並び変え:" -#: contrib/admin/templates/admin/change_list.html:12 +#: contrib/admin/templates/admin/change_list.html:11 #, python-format msgid "Add %(name)s" msgstr "%(name)s を追加" -#: contrib/admin/templates/admin/delete_confirmation.html:9 +#: contrib/admin/templates/admin/delete_confirmation.html:8 #: contrib/admin/templates/admin/submit_line.html:3 msgid "Delete" msgstr "削除" -#: contrib/admin/templates/admin/delete_confirmation.html:14 +#: contrib/admin/templates/admin/delete_confirmation.html:13 #, python-format msgid "" "Deleting the %(object_name)s '%(escaped_object)s' would result in deleting " @@ -428,7 +395,7 @@ msgstr "" "除しようとしましたが、あなたのアカウントには以下のタイプのオブジェクトを削除" "するパーミッションがありません:" -#: contrib/admin/templates/admin/delete_confirmation.html:21 +#: contrib/admin/templates/admin/delete_confirmation.html:20 #, python-format msgid "" "Are you sure you want to delete the %(object_name)s \"%(escaped_object)s\"? " @@ -437,7 +404,7 @@ msgstr "" "%(object_name)s \"%(escaped_object)s\"を削除しますか? 関連づけられている以下" "のオブジェクトも全て削除されます:" -#: contrib/admin/templates/admin/delete_confirmation.html:26 +#: contrib/admin/templates/admin/delete_confirmation.html:25 msgid "Yes, I'm sure" msgstr "はい。" @@ -501,27 +468,27 @@ msgid "Password:" msgstr "パスワード:" #: contrib/admin/templates/admin/login.html:25 -#: contrib/admin/views/decorators.py:24 +#: contrib/admin/views/decorators.py:25 msgid "Log in" msgstr "ログイン" -#: contrib/admin/templates/admin/object_history.html:18 +#: contrib/admin/templates/admin/object_history.html:17 msgid "Date/time" msgstr "日付/時刻" -#: contrib/admin/templates/admin/object_history.html:19 +#: contrib/admin/templates/admin/object_history.html:18 msgid "User" msgstr "ユーザ" -#: contrib/admin/templates/admin/object_history.html:20 +#: contrib/admin/templates/admin/object_history.html:19 msgid "Action" msgstr "操作" -#: contrib/admin/templates/admin/object_history.html:26 +#: contrib/admin/templates/admin/object_history.html:25 msgid "DATE_WITH_TIME_FULL" msgstr "Y/m/d H:i:s" -#: contrib/admin/templates/admin/object_history.html:36 +#: contrib/admin/templates/admin/object_history.html:35 msgid "" "This object doesn't have a change history. It probably wasn't added via this " "admin site." @@ -578,21 +545,21 @@ msgid "Username" msgstr "ユーザ名" #: contrib/admin/templates/admin/auth/user/add_form.html:18 -#: contrib/admin/templates/admin/auth/user/change_password.html:34 +#: contrib/admin/templates/admin/auth/user/change_password.html:33 msgid "Password" msgstr "パスワード" #: contrib/admin/templates/admin/auth/user/add_form.html:23 -#: contrib/admin/templates/admin/auth/user/change_password.html:39 +#: contrib/admin/templates/admin/auth/user/change_password.html:38 msgid "Password (again)" msgstr "パスワード(確認用)" #: contrib/admin/templates/admin/auth/user/add_form.html:24 -#: contrib/admin/templates/admin/auth/user/change_password.html:40 +#: contrib/admin/templates/admin/auth/user/change_password.html:39 msgid "Enter the same password as above, for verification." msgstr "確認のため、再度パスワードを入力してください。" -#: contrib/admin/templates/admin/auth/user/change_password.html:28 +#: contrib/admin/templates/admin/auth/user/change_password.html:27 #, python-format msgid "Enter a new password for the user %(username)s." msgstr "" @@ -602,11 +569,11 @@ msgstr "" msgid "Bookmarklets" msgstr "ブックマークレット" -#: contrib/admin/templates/admin_doc/bookmarklets.html:5 +#: contrib/admin/templates/admin_doc/bookmarklets.html:4 msgid "Documentation bookmarklets" msgstr "ドキュメントへのブックマークレット" -#: contrib/admin/templates/admin_doc/bookmarklets.html:9 +#: contrib/admin/templates/admin_doc/bookmarklets.html:8 msgid "" "\n" "

        To install bookmarklets, drag the link to your bookmarks\n" @@ -626,40 +593,40 @@ msgstr "" "参照していなければならないことがあります。内部ネットワークにあるかどうか不明" "な場合は、システム管理者に確認してください。

        \n" -#: contrib/admin/templates/admin_doc/bookmarklets.html:19 +#: contrib/admin/templates/admin_doc/bookmarklets.html:18 msgid "Documentation for this page" msgstr "このページのドキュメント" -#: contrib/admin/templates/admin_doc/bookmarklets.html:20 +#: contrib/admin/templates/admin_doc/bookmarklets.html:19 msgid "" "Jumps you from any page to the documentation for the view that generates " "that page." msgstr "各ページから、ページを生成したビューのドキュメントにジャンプします。" -#: contrib/admin/templates/admin_doc/bookmarklets.html:22 +#: contrib/admin/templates/admin_doc/bookmarklets.html:21 msgid "Show object ID" msgstr "オブジェクト ID を表示" -#: contrib/admin/templates/admin_doc/bookmarklets.html:23 +#: contrib/admin/templates/admin_doc/bookmarklets.html:22 msgid "" "Shows the content-type and unique ID for pages that represent a single " "object." msgstr "" "単一のオブジェクトを表示するページのコンテンツタイプと一意な IDを表示します。" -#: contrib/admin/templates/admin_doc/bookmarklets.html:25 +#: contrib/admin/templates/admin_doc/bookmarklets.html:24 msgid "Edit this object (current window)" msgstr "オブジェクトを (現在のウィンドウで) 編集" -#: contrib/admin/templates/admin_doc/bookmarklets.html:26 +#: contrib/admin/templates/admin_doc/bookmarklets.html:25 msgid "Jumps to the admin page for pages that represent a single object." msgstr "単一のオブジェクトを表示するページの管理ページへジャンプします。" -#: contrib/admin/templates/admin_doc/bookmarklets.html:28 +#: contrib/admin/templates/admin_doc/bookmarklets.html:27 msgid "Edit this object (new window)" msgstr "オブジェクトを (新しいウィンドウで) 編集" -#: contrib/admin/templates/admin_doc/bookmarklets.html:29 +#: contrib/admin/templates/admin_doc/bookmarklets.html:28 msgid "As above, but opens the admin page in a new window." msgstr "上と同じですが、新しいウィンドウで管理ページを開きます。" @@ -671,23 +638,23 @@ msgstr "ご利用ありがとうございました。" msgid "Log in again" msgstr "もう一度ログイン" -#: 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_done.html:3 +#: contrib/admin/templates/registration/password_change_form.html:3 +#: contrib/admin/templates/registration/password_change_form.html:5 +#: contrib/admin/templates/registration/password_change_form.html:9 msgid "Password change" msgstr "パスワードの変更" -#: contrib/admin/templates/registration/password_change_done.html:6 -#: contrib/admin/templates/registration/password_change_done.html:10 +#: contrib/admin/templates/registration/password_change_done.html:5 +#: contrib/admin/templates/registration/password_change_done.html:9 msgid "Password change successful" msgstr "パスワードを変更しました" -#: contrib/admin/templates/registration/password_change_done.html:12 +#: contrib/admin/templates/registration/password_change_done.html:11 msgid "Your password was changed." msgstr "あなたのパスワードは変更されました" -#: contrib/admin/templates/registration/password_change_form.html:12 +#: contrib/admin/templates/registration/password_change_form.html:11 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." @@ -695,19 +662,19 @@ msgstr "" "セキュリティ上の理由から元のパスワードの入力が必要です。新しいパスワードは正" "しく入力したか確認できるように二度入力してください。" -#: contrib/admin/templates/registration/password_change_form.html:17 +#: contrib/admin/templates/registration/password_change_form.html:16 msgid "Old password:" msgstr "元のパスワード:" -#: contrib/admin/templates/registration/password_change_form.html:19 +#: contrib/admin/templates/registration/password_change_form.html:18 msgid "New password:" msgstr "新しいパスワード:" -#: contrib/admin/templates/registration/password_change_form.html:21 +#: contrib/admin/templates/registration/password_change_form.html:20 msgid "Confirm password:" msgstr "新しいパスワード (確認用) :" -#: contrib/admin/templates/registration/password_change_form.html:23 +#: contrib/admin/templates/registration/password_change_form.html:22 msgid "Change my password" msgstr "パスワードの変更" @@ -796,17 +763,17 @@ msgstr "現在:" msgid "Change:" msgstr "変更:" -#: contrib/admin/templatetags/admin_list.py:254 +#: contrib/admin/templatetags/admin_list.py:257 msgid "All dates" msgstr "いつでも" -#: contrib/admin/views/auth.py:20 contrib/admin/views/main.py:264 +#: contrib/admin/views/auth.py:20 contrib/admin/views/main.py:267 #, python-format msgid "The %(name)s \"%(obj)s\" was added successfully." msgstr "%(name)s \"%(obj)s\" を追加しました。" -#: contrib/admin/views/auth.py:25 contrib/admin/views/main.py:268 -#: contrib/admin/views/main.py:354 +#: contrib/admin/views/auth.py:25 contrib/admin/views/main.py:271 +#: contrib/admin/views/main.py:356 msgid "You may edit it again below." msgstr "続けて編集できます。" @@ -823,14 +790,14 @@ msgstr "パスワードを変更しました" msgid "Change password: %s" msgstr "パスワードの変更: %s" -#: contrib/admin/views/decorators.py:10 contrib/auth/forms.py:60 +#: contrib/admin/views/decorators.py:11 contrib/auth/forms.py:60 msgid "" "Please enter a correct username and password. Note that both fields are case-" "sensitive." msgstr "" "正しいユーザ名とパスワードを入力してください (大文字小文字は区別します) 。" -#: contrib/admin/views/decorators.py:62 +#: contrib/admin/views/decorators.py:63 msgid "" "Please log in again, because your session has expired. Don't worry: Your " "submission has been saved." @@ -838,7 +805,7 @@ msgstr "" "再ログインしてください。ログインセッションが有効期間切れしてしまいました。入" "力データは失われておりませんのでご安心ください。" -#: contrib/admin/views/decorators.py:69 +#: contrib/admin/views/decorators.py:70 msgid "" "Looks like your browser isn't configured to accept cookies. Please enable " "cookies, reload this page, and try again." @@ -846,245 +813,245 @@ msgstr "" "ブラウザがクッキーの使用を許可していないようです。クッキーの使用を許可して、" "もう一度このページを表示してください。" -#: contrib/admin/views/decorators.py:83 +#: contrib/admin/views/decorators.py:84 msgid "Usernames cannot contain the '@' character." msgstr "ユーザ名には '@' を含められません。" -#: contrib/admin/views/decorators.py:85 +#: contrib/admin/views/decorators.py:86 #, python-format msgid "Your e-mail address is not your username. Try '%s' instead." msgstr "メールアドレスはユーザ名ではありません。 '%s' を試してみてください。" -#: contrib/admin/views/doc.py:47 contrib/admin/views/doc.py:49 -#: contrib/admin/views/doc.py:51 +#: contrib/admin/views/doc.py:48 contrib/admin/views/doc.py:50 +#: contrib/admin/views/doc.py:52 msgid "tag:" msgstr "タグ" -#: contrib/admin/views/doc.py:78 contrib/admin/views/doc.py:80 -#: contrib/admin/views/doc.py:82 +#: contrib/admin/views/doc.py:79 contrib/admin/views/doc.py:81 +#: contrib/admin/views/doc.py:83 msgid "filter:" msgstr "フィルタ" -#: contrib/admin/views/doc.py:136 contrib/admin/views/doc.py:138 -#: contrib/admin/views/doc.py:140 +#: contrib/admin/views/doc.py:137 contrib/admin/views/doc.py:139 +#: contrib/admin/views/doc.py:141 msgid "view:" msgstr "ビュー" -#: contrib/admin/views/doc.py:165 +#: contrib/admin/views/doc.py:166 #, python-format msgid "App %r not found" msgstr "アプリケーション %r が見つかりません" -#: contrib/admin/views/doc.py:172 +#: contrib/admin/views/doc.py:173 #, python-format msgid "Model %(name)r not found in app %(label)r" msgstr "モデル %(name)r が %(label)r アプリケーションに見つかりません" -#: contrib/admin/views/doc.py:184 +#: contrib/admin/views/doc.py:185 #, python-format msgid "the related `%(label)s.%(type)s` object" msgstr "`%(label)s.%(type)s` (関連オブジェクト)" -#: contrib/admin/views/doc.py:184 contrib/admin/views/doc.py:206 -#: contrib/admin/views/doc.py:220 contrib/admin/views/doc.py:225 +#: contrib/admin/views/doc.py:185 contrib/admin/views/doc.py:207 +#: contrib/admin/views/doc.py:221 contrib/admin/views/doc.py:226 msgid "model:" msgstr "モデル :" -#: contrib/admin/views/doc.py:215 +#: contrib/admin/views/doc.py:216 #, python-format msgid "related `%(label)s.%(name)s` objects" msgstr "`%(label)s.%(name)s` (関連オブジェクト)" -#: contrib/admin/views/doc.py:220 +#: contrib/admin/views/doc.py:221 #, python-format msgid "all %s" msgstr "全ての %s" -#: contrib/admin/views/doc.py:225 +#: contrib/admin/views/doc.py:226 #, python-format msgid "number of %s" msgstr "%s の数" -#: contrib/admin/views/doc.py:230 +#: contrib/admin/views/doc.py:231 #, python-format msgid "Fields on %s objects" msgstr "%s のフィールド" -#: contrib/admin/views/doc.py:292 contrib/admin/views/doc.py:303 -#: contrib/admin/views/doc.py:305 contrib/admin/views/doc.py:311 -#: contrib/admin/views/doc.py:312 contrib/admin/views/doc.py:314 +#: contrib/admin/views/doc.py:293 contrib/admin/views/doc.py:304 +#: contrib/admin/views/doc.py:306 contrib/admin/views/doc.py:312 +#: contrib/admin/views/doc.py:313 contrib/admin/views/doc.py:315 msgid "Integer" msgstr "整数" -#: contrib/admin/views/doc.py:293 +#: contrib/admin/views/doc.py:294 msgid "Boolean (Either True or False)" msgstr "ブール値 (真: True または偽: False)" -#: contrib/admin/views/doc.py:294 contrib/admin/views/doc.py:313 +#: contrib/admin/views/doc.py:295 contrib/admin/views/doc.py:314 #, python-format msgid "String (up to %(max_length)s)" msgstr "文字列 ( %(max_length)s 字まで )" -#: contrib/admin/views/doc.py:295 +#: contrib/admin/views/doc.py:296 msgid "Comma-separated integers" msgstr "カンマ区切りの整数" -#: contrib/admin/views/doc.py:296 +#: contrib/admin/views/doc.py:297 msgid "Date (without time)" msgstr "日付" -#: contrib/admin/views/doc.py:297 +#: contrib/admin/views/doc.py:298 msgid "Date (with time)" msgstr "日時" -#: contrib/admin/views/doc.py:298 +#: contrib/admin/views/doc.py:299 msgid "Decimal number" msgstr "10 進数 (小数可)" -#: contrib/admin/views/doc.py:299 +#: contrib/admin/views/doc.py:300 msgid "E-mail address" msgstr "メールアドレス" -#: contrib/admin/views/doc.py:300 contrib/admin/views/doc.py:301 -#: contrib/admin/views/doc.py:304 +#: contrib/admin/views/doc.py:301 contrib/admin/views/doc.py:302 +#: contrib/admin/views/doc.py:305 msgid "File path" msgstr "ファイルの場所" -#: contrib/admin/views/doc.py:302 +#: contrib/admin/views/doc.py:303 msgid "Floating point number" msgstr "浮動小数点" -#: contrib/admin/views/doc.py:306 contrib/comments/models.py:85 +#: contrib/admin/views/doc.py:307 contrib/comments/models.py:85 msgid "IP address" msgstr "IP アドレス" -#: contrib/admin/views/doc.py:308 +#: contrib/admin/views/doc.py:309 msgid "Boolean (Either True, False or None)" msgstr "ブール値 (真: True 、偽: False または None)" -#: contrib/admin/views/doc.py:309 +#: contrib/admin/views/doc.py:310 msgid "Relation to parent model" msgstr "親モデルへのリレーション" -#: contrib/admin/views/doc.py:310 +#: contrib/admin/views/doc.py:311 msgid "Phone number" msgstr "電話番号" -#: contrib/admin/views/doc.py:315 +#: contrib/admin/views/doc.py:316 msgid "Text" msgstr "テキスト" -#: contrib/admin/views/doc.py:316 +#: contrib/admin/views/doc.py:317 msgid "Time" msgstr "時刻" -#: contrib/admin/views/doc.py:317 contrib/flatpages/models.py:7 +#: contrib/admin/views/doc.py:318 contrib/flatpages/models.py:7 msgid "URL" msgstr "URL" -#: contrib/admin/views/doc.py:318 +#: contrib/admin/views/doc.py:319 msgid "U.S. state (two uppercase letters)" msgstr "アメリカの州 (大文字二文字で)" -#: contrib/admin/views/doc.py:319 +#: contrib/admin/views/doc.py:320 msgid "XML text" msgstr "XMLテキスト" -#: contrib/admin/views/doc.py:345 +#: contrib/admin/views/doc.py:346 #, python-format msgid "%s does not appear to be a urlpattern object" msgstr "%s はurlpatternオブジェクトでは無いようです" -#: contrib/admin/views/main.py:230 +#: contrib/admin/views/main.py:233 msgid "Site administration" msgstr "サイト管理" -#: contrib/admin/views/main.py:278 contrib/admin/views/main.py:363 +#: contrib/admin/views/main.py:280 contrib/admin/views/main.py:365 #, python-format msgid "You may add another %s below." msgstr "続けて別の %s を追加できます。" -#: contrib/admin/views/main.py:296 +#: contrib/admin/views/main.py:298 #, python-format msgid "Add %s" msgstr "%s を追加" -#: contrib/admin/views/main.py:342 +#: contrib/admin/views/main.py:344 #, python-format msgid "Added %s." msgstr "%s を追加しました。" -#: contrib/admin/views/main.py:342 contrib/admin/views/main.py:344 -#: contrib/admin/views/main.py:346 core/validators.py:275 -#: db/models/manipulators.py:310 +#: contrib/admin/views/main.py:344 contrib/admin/views/main.py:346 +#: contrib/admin/views/main.py:348 core/validators.py:283 +#: db/models/manipulators.py:309 msgid "and" msgstr "と" -#: contrib/admin/views/main.py:344 +#: contrib/admin/views/main.py:346 #, python-format msgid "Changed %s." msgstr "%s を変更しました。" -#: contrib/admin/views/main.py:346 +#: contrib/admin/views/main.py:348 #, python-format msgid "Deleted %s." msgstr "%s を削除しました。" -#: contrib/admin/views/main.py:349 +#: contrib/admin/views/main.py:351 msgid "No fields changed." msgstr "変更はありませんでした。" -#: contrib/admin/views/main.py:352 +#: contrib/admin/views/main.py:354 #, python-format msgid "The %(name)s \"%(obj)s\" was changed successfully." msgstr "%(name)s \"%(obj)s\" を変更しました。" -#: contrib/admin/views/main.py:360 +#: contrib/admin/views/main.py:362 #, python-format msgid "" "The %(name)s \"%(obj)s\" was added successfully. You may edit it again below." msgstr "%(name)s \"%(obj)s\" を追加しました。続けて編集できます。" -#: contrib/admin/views/main.py:398 +#: contrib/admin/views/main.py:400 #, python-format msgid "Change %s" msgstr "%s を変更" -#: contrib/admin/views/main.py:483 +#: contrib/admin/views/main.py:487 #, python-format msgid "One or more %(fieldname)s in %(name)s: %(obj)s" msgstr "%(name)s に %(fieldname)s が一つ以上あります: %(obj)s" -#: contrib/admin/views/main.py:488 +#: contrib/admin/views/main.py:492 #, python-format msgid "One or more %(fieldname)s in %(name)s:" msgstr "%(name)s に %(fieldname)s が一つ以上あります:" -#: contrib/admin/views/main.py:520 +#: contrib/admin/views/main.py:524 #, python-format msgid "The %(name)s \"%(obj)s\" was deleted successfully." msgstr "%(name)s \"%(obj)s\" を削除しました。" -#: contrib/admin/views/main.py:523 +#: contrib/admin/views/main.py:527 msgid "Are you sure?" msgstr "よろしいですか?" -#: contrib/admin/views/main.py:545 +#: contrib/admin/views/main.py:549 #, python-format msgid "Change history: %s" msgstr "変更履歴: %s" -#: contrib/admin/views/main.py:579 +#: contrib/admin/views/main.py:583 #, python-format msgid "Select %s" msgstr "%s を選択" -#: contrib/admin/views/main.py:579 +#: contrib/admin/views/main.py:583 #, python-format msgid "Select %s to change" msgstr "変更する %s を選択" -#: contrib/admin/views/main.py:780 +#: contrib/admin/views/main.py:784 msgid "Database error" msgstr "データベースエラー" @@ -1114,6 +1081,11 @@ msgid "" "you've registered?" msgstr "メールアドレスの一致するユーザはいません。本当に登録しましたか?" +#: contrib/auth/forms.py:107 +#, python-format +msgid "Password reset on %s" +msgstr "%s にパスワードをリセット" + #: contrib/auth/forms.py:117 msgid "The two 'new password' fields didn't match." msgstr "新しいパスワード(確認用)が一致しません。" @@ -1122,35 +1094,35 @@ msgstr "新しいパスワード(確認用)が一致しません。" msgid "Your old password was entered incorrectly. Please enter it again." msgstr "元のパスワードが間違っています。もう一度入力してください。" -#: contrib/auth/models.py:53 contrib/auth/models.py:73 +#: contrib/auth/models.py:73 contrib/auth/models.py:93 msgid "name" msgstr "名前" -#: contrib/auth/models.py:55 +#: contrib/auth/models.py:75 msgid "codename" msgstr "コード名" -#: contrib/auth/models.py:58 +#: contrib/auth/models.py:78 msgid "permission" msgstr "パーミッション" -#: contrib/auth/models.py:59 contrib/auth/models.py:74 +#: contrib/auth/models.py:79 contrib/auth/models.py:94 msgid "permissions" msgstr "パーミッション" -#: contrib/auth/models.py:77 +#: contrib/auth/models.py:97 msgid "group" msgstr "グループ" -#: contrib/auth/models.py:78 contrib/auth/models.py:121 +#: contrib/auth/models.py:98 contrib/auth/models.py:141 msgid "groups" msgstr "グループ" -#: contrib/auth/models.py:111 +#: contrib/auth/models.py:131 msgid "username" msgstr "ユーザ名" -#: contrib/auth/models.py:111 +#: contrib/auth/models.py:131 msgid "" "Required. 30 characters or fewer. Alphanumeric characters only (letters, " "digits and underscores)." @@ -1158,23 +1130,23 @@ msgstr "" "この項目は必須です。半角アルファベット、半角数字、半角アンダーバーで30文字以" "下にしてください。" -#: contrib/auth/models.py:112 +#: contrib/auth/models.py:132 msgid "first name" msgstr "名" -#: contrib/auth/models.py:113 +#: contrib/auth/models.py:133 msgid "last name" msgstr "姓" -#: contrib/auth/models.py:114 +#: contrib/auth/models.py:134 msgid "e-mail address" msgstr "メールアドレス" -#: contrib/auth/models.py:115 +#: contrib/auth/models.py:135 msgid "password" msgstr "パスワード" -#: contrib/auth/models.py:115 +#: contrib/auth/models.py:135 msgid "" "Use '[algo]$[salt]$[hexdigest]' or use the change " "password form." @@ -1182,43 +1154,43 @@ msgstr "" "'[algo]$[salt]$[hexdigest]'形式か、パスワード変更フォー" "ムを使ってください。" -#: contrib/auth/models.py:116 +#: contrib/auth/models.py:136 msgid "staff status" msgstr "スタッフ権限" -#: contrib/auth/models.py:116 +#: contrib/auth/models.py:136 msgid "Designates whether the user can log into this admin site." msgstr "ユーザが管理サイトにログイン可能かどうかを示します。" -#: contrib/auth/models.py:117 +#: contrib/auth/models.py:137 msgid "active" msgstr "有効" -#: contrib/auth/models.py:117 +#: contrib/auth/models.py:137 msgid "" "Designates whether this user can log into the Django admin. Unselect this " "instead of deleting accounts." msgstr "ユーザが管理サイトにログイン可能かどうかを示します。" -#: contrib/auth/models.py:118 +#: contrib/auth/models.py:138 msgid "superuser status" msgstr "スーパーユーザ権限" -#: contrib/auth/models.py:118 +#: contrib/auth/models.py:138 msgid "" "Designates that this user has all permissions without explicitly assigning " "them." msgstr "全ての権限を持っているとみなされます。" -#: contrib/auth/models.py:119 +#: contrib/auth/models.py:139 msgid "last login" msgstr "最終ログイン" -#: contrib/auth/models.py:120 +#: contrib/auth/models.py:140 msgid "date joined" msgstr "登録日" -#: contrib/auth/models.py:122 +#: contrib/auth/models.py:142 msgid "" "In addition to the permissions manually assigned, this user will also get " "all permissions granted to each group he/she is in." @@ -1226,35 +1198,35 @@ msgstr "" "手動で付与したパーミッションに加え、所属しているグループに付与された全ての" "パーミッションを獲得します。" -#: contrib/auth/models.py:123 +#: contrib/auth/models.py:143 msgid "user permissions" msgstr "ユーザパーミッション" -#: contrib/auth/models.py:127 +#: contrib/auth/models.py:147 msgid "user" msgstr "ユーザ" -#: contrib/auth/models.py:128 +#: contrib/auth/models.py:148 msgid "users" msgstr "ユーザ" -#: contrib/auth/models.py:134 +#: contrib/auth/models.py:154 msgid "Personal info" msgstr "個人情報" -#: contrib/auth/models.py:135 +#: contrib/auth/models.py:155 msgid "Permissions" msgstr "パーミッション" -#: contrib/auth/models.py:136 +#: contrib/auth/models.py:156 msgid "Important dates" msgstr "重要な日程" -#: contrib/auth/models.py:137 +#: contrib/auth/models.py:157 msgid "Groups" msgstr "グループ" -#: contrib/auth/models.py:288 +#: contrib/auth/models.py:316 msgid "message" msgstr "メッセージ" @@ -1508,23 +1480,23 @@ msgstr "" "\n" "%(text)s" -#: contrib/comments/views/comments.py:189 -#: contrib/comments/views/comments.py:281 +#: contrib/comments/views/comments.py:190 +#: contrib/comments/views/comments.py:283 msgid "Only POSTs are allowed" msgstr "POST メソッドのみ有効です。" -#: contrib/comments/views/comments.py:193 -#: contrib/comments/views/comments.py:285 +#: contrib/comments/views/comments.py:194 +#: contrib/comments/views/comments.py:287 msgid "One or more of the required fields wasn't submitted" msgstr "必須項目がいくつか入力されていません。" -#: contrib/comments/views/comments.py:197 -#: contrib/comments/views/comments.py:287 +#: contrib/comments/views/comments.py:198 +#: contrib/comments/views/comments.py:289 msgid "Somebody tampered with the comment form (security violation)" msgstr "だれかがコメントフォームを改竄しています (セキュリティ侵害です)" -#: contrib/comments/views/comments.py:207 -#: contrib/comments/views/comments.py:293 +#: contrib/comments/views/comments.py:208 +#: contrib/comments/views/comments.py:295 msgid "" "The comment form had an invalid 'target' parameter -- the object ID was " "invalid" @@ -1532,20 +1504,20 @@ msgstr "" "コメントフォームの 'target' パラメータが不正です。 -- オブジェクト IDが不正な" "値でした" -#: contrib/comments/views/comments.py:258 -#: contrib/comments/views/comments.py:322 +#: contrib/comments/views/comments.py:259 +#: contrib/comments/views/comments.py:324 msgid "The comment form didn't provide either 'preview' or 'post'" msgstr "コメントの「プレビュー」「投稿」種別が不明です。" -#: contrib/comments/views/karma.py:20 +#: contrib/comments/views/karma.py:21 msgid "Anonymous users cannot vote" msgstr "非ログインユーザは投票できません。" -#: contrib/comments/views/karma.py:24 +#: contrib/comments/views/karma.py:25 msgid "Invalid comment ID" msgstr "コメント ID が不正です" -#: contrib/comments/views/karma.py:26 +#: contrib/comments/views/karma.py:27 msgid "No voting for yourself" msgstr "自分には投票できません。" @@ -1623,80 +1595,103 @@ msgstr "番目" msgid "rd" msgstr "番目" -#: contrib/humanize/templatetags/humanize.py:50 +#: contrib/humanize/templatetags/humanize.py:52 #, python-format msgid "%(value).1f million" msgid_plural "%(value).1f million" msgstr[0] "%(value).1f 百万" msgstr[1] "%(value).1f 百万" -#: contrib/humanize/templatetags/humanize.py:53 +#: contrib/humanize/templatetags/humanize.py:55 #, python-format msgid "%(value).1f billion" msgid_plural "%(value).1f billion" msgstr[0] "%(value).1f 十億" msgstr[1] "%(value).1f 十億" -#: contrib/humanize/templatetags/humanize.py:56 +#: contrib/humanize/templatetags/humanize.py:58 #, python-format msgid "%(value).1f trillion" msgid_plural "%(value).1f trillion" msgstr[0] "%(value).1f 兆" msgstr[1] "%(value).1f 兆" -#: contrib/humanize/templatetags/humanize.py:71 +#: contrib/humanize/templatetags/humanize.py:74 msgid "one" msgstr "1" -#: contrib/humanize/templatetags/humanize.py:71 +#: contrib/humanize/templatetags/humanize.py:74 msgid "two" msgstr "2" -#: contrib/humanize/templatetags/humanize.py:71 +#: contrib/humanize/templatetags/humanize.py:74 msgid "three" msgstr "3" -#: contrib/humanize/templatetags/humanize.py:71 +#: contrib/humanize/templatetags/humanize.py:74 msgid "four" msgstr "4" -#: contrib/humanize/templatetags/humanize.py:71 +#: contrib/humanize/templatetags/humanize.py:74 msgid "five" msgstr "5" -#: contrib/humanize/templatetags/humanize.py:71 +#: contrib/humanize/templatetags/humanize.py:74 msgid "six" msgstr "6" -#: contrib/humanize/templatetags/humanize.py:71 +#: contrib/humanize/templatetags/humanize.py:74 msgid "seven" msgstr "7" -#: contrib/humanize/templatetags/humanize.py:71 +#: contrib/humanize/templatetags/humanize.py:74 msgid "eight" msgstr "8" -#: contrib/humanize/templatetags/humanize.py:71 +#: contrib/humanize/templatetags/humanize.py:74 msgid "nine" msgstr "9" -#: contrib/humanize/templatetags/humanize.py:90 +#: contrib/humanize/templatetags/humanize.py:94 msgid "today" msgstr "今日" -#: contrib/humanize/templatetags/humanize.py:92 +#: contrib/humanize/templatetags/humanize.py:96 msgid "tomorrow" msgstr "明日" -#: contrib/humanize/templatetags/humanize.py:94 +#: contrib/humanize/templatetags/humanize.py:98 msgid "yesterday" msgstr "昨日" -#: contrib/localflavor/au/forms.py:18 +#: contrib/localflavor/ar/forms.py:28 +msgid "Enter a postal code in the format NNNN or ANNNNAAA." +msgstr "NNNNか、ANNNNAAAの形式で郵便番号を入力してください。" + +#: contrib/localflavor/ar/forms.py:50 contrib/localflavor/br/forms.py:96 +#: contrib/localflavor/br/forms.py:135 contrib/localflavor/pe/forms.py:23 +#: contrib/localflavor/pe/forms.py:51 +msgid "This field requires only numbers." +msgstr "このフィールドは必須です(数値のみ)。" + +#: contrib/localflavor/ar/forms.py:51 +msgid "This field requires 7 or 8 digits." +msgstr "7桁か8桁で入力して下さい。" + +#: contrib/localflavor/ar/forms.py:80 +msgid "Enter a valid CUIT in XX-XXXXXXXX-X or XXXXXXXXXXXX format." +msgstr "" +"XX-XXXXXXXX-X か XXXXXXXXXXXX の形式で納税証明単一番号(CUIT)を入力して下さい。" + +#: contrib/localflavor/ar/forms.py:81 +msgid "Invalid CUIT." +msgstr "無効な納税証明単一番号(CUIT): %s" + +#: contrib/localflavor/au/forms.py:16 msgid "Enter a 4 digit post code." msgstr "4桁でポストコードを入力してください。" -#: contrib/localflavor/br/forms.py:18 +#: contrib/localflavor/br/forms.py:21 msgid "Enter a zip code in the format XXXXX-XXX." msgstr "XXXXX-XXXの形式でZipコードを入力してください。" @@ -1704,25 +1699,35 @@ msgstr "XXXXX-XXXの形式でZipコードを入力してください。" msgid "Phone numbers must be in XX-XXXX-XXXX format." msgstr "電話番号は XX-XXXX-XXXX 形式で入力してください。" -#: contrib/localflavor/br/forms.py:72 -msgid "This field requires only numbers." -msgstr "このフィールドは必須です(数値のみ)。" +#: contrib/localflavor/br/forms.py:58 +msgid "" +"Select a valid brazilian state. That state is not one of the available " +"states." +msgstr "ブラジルの州から選択してください。選択したものは候補にありません。" -#: contrib/localflavor/br/forms.py:74 +#: contrib/localflavor/br/forms.py:94 +msgid "Invalid CPF number." +msgstr "ブラジル納税者番号(CPF)が無効です。" + +#: contrib/localflavor/br/forms.py:95 msgid "This field requires at most 11 digits or 14 characters." msgstr "11桁の数字か14文字で入力してください。" -#: contrib/localflavor/br/forms.py:84 -msgid "Invalid CPF number." -msgstr "ブラジル納税者番号が無効です。" +#: contrib/localflavor/br/forms.py:134 +msgid "Invalid CNPJ number." +msgstr "納税登録番号(CNPJ)が正しくありません。" -#: contrib/localflavor/br/forms.py:106 +#: contrib/localflavor/br/forms.py:136 msgid "This field requires at least 14 digits" msgstr "14桁以上で入力して下さい。" -#: contrib/localflavor/br/forms.py:116 -msgid "Invalid CNPJ number." -msgstr "納税登録番号が正しくありません。" +#: contrib/localflavor/ca/forms.py:17 +msgid "Enter a postal code in the format XXX XXX." +msgstr "XXX XXXの形式で郵便番号を入力してください。" + +#: contrib/localflavor/ca/forms.py:88 +msgid "Enter a valid Canadian Social Insurance number in XXX-XXX-XXXX format." +msgstr "XXX-XXX-XXXX の形式で、カナダ社会保障番号を入力して下さい。" #: contrib/localflavor/ch/ch_states.py:5 msgid "Aargau" @@ -1828,11 +1833,11 @@ msgstr "Zug" msgid "Zurich" msgstr "Zurich" -#: contrib/localflavor/ch/forms.py:18 contrib/localflavor/no/forms.py:14 +#: contrib/localflavor/ch/forms.py:16 contrib/localflavor/no/forms.py:12 msgid "Enter a zip code in the format XXXX." msgstr "XXXXの形式でZipコードを入力してください。" -#: contrib/localflavor/ch/forms.py:90 +#: contrib/localflavor/ch/forms.py:64 msgid "" "Enter a valid Swiss identity or passport card number in X1234567<0 or " "1234567890 format." @@ -1840,13 +1845,17 @@ msgstr "" "スイス アイデンティティかパスポート番号を X1234567<0 か 1234567890 の形式で入" "力して下さい。" -#: contrib/localflavor/cl/forms.py:32 -msgid "Enter valid a Chilean RUT. The format is XX.XXX.XXX-X." -msgstr "XX.XXX.XXX-Xの形式でチリ納税者番号を入力してください。" +#: contrib/localflavor/cl/forms.py:29 +msgid "Enter a valid Chilean RUT." +msgstr "正しいチリ納税者番号(RUT)を入力してください。" -#: contrib/localflavor/cl/forms.py:37 -msgid "Enter valid a Chilean RUT" -msgstr "正しいチリ納税者番号を入力してください。" +#: contrib/localflavor/cl/forms.py:30 +msgid "Enter a valid Chilean RUT. The format is XX.XXX.XXX-X." +msgstr "XX.XXX.XXX-Xの形式でチリ納税者番号(RUT)を入力してください。" + +#: contrib/localflavor/cl/forms.py:31 +msgid "The Chilean RUT is not valid." +msgstr "このチリ納税者番号(RUT)は無効です。" #: contrib/localflavor/de/de_states.py:5 msgid "Baden-Wuerttemberg" @@ -1912,23 +1921,330 @@ msgstr "Schleswig-Holstein" msgid "Thuringia" msgstr "Thuringia" -#: contrib/localflavor/de/forms.py:16 contrib/localflavor/fi/forms.py:14 -#: contrib/localflavor/fr/forms.py:17 +#: contrib/localflavor/de/forms.py:14 contrib/localflavor/fi/forms.py:12 +#: contrib/localflavor/fr/forms.py:15 msgid "Enter a zip code in the format XXXXX." msgstr "XXXXXの形式でZipコードを入力してください。" -#: contrib/localflavor/de/forms.py:60 +#: contrib/localflavor/de/forms.py:41 msgid "" "Enter a valid German identity card number in XXXXXXXXXXX-XXXXXXX-XXXXXXX-X " "format." msgstr "" "XXXXXXXXXXX-XXXXXXX-XXXXXXX-X の形式でドイツIDカード番号を入力して下さい。" -#: contrib/localflavor/fi/forms.py:40 contrib/localflavor/fi/forms.py:45 +#: contrib/localflavor/es/es_provinces.py:5 +msgid "Arava" +msgstr "Arava" + +#: contrib/localflavor/es/es_provinces.py:6 +msgid "Albacete" +msgstr "Albacete" + +#: contrib/localflavor/es/es_provinces.py:7 +msgid "Alacant" +msgstr "Alacant" + +#: contrib/localflavor/es/es_provinces.py:8 +msgid "Almeria" +msgstr "Almeria" + +#: contrib/localflavor/es/es_provinces.py:9 +msgid "Avila" +msgstr "Avila" + +#: contrib/localflavor/es/es_provinces.py:10 +msgid "Badajoz" +msgstr "Badajoz" + +#: contrib/localflavor/es/es_provinces.py:11 +msgid "Illes Balears" +msgstr "Illes Balears" + +#: contrib/localflavor/es/es_provinces.py:12 +msgid "Barcelona" +msgstr "Barcelona" + +#: contrib/localflavor/es/es_provinces.py:13 +msgid "Burgos" +msgstr "Burgos" + +#: contrib/localflavor/es/es_provinces.py:14 +msgid "Caceres" +msgstr "Caceres" + +#: contrib/localflavor/es/es_provinces.py:15 +msgid "Cadiz" +msgstr "Cadiz" + +#: contrib/localflavor/es/es_provinces.py:16 +msgid "Castello" +msgstr "Castello" + +#: contrib/localflavor/es/es_provinces.py:17 +msgid "Ciudad Real" +msgstr "Ciudad Real" + +#: contrib/localflavor/es/es_provinces.py:18 +msgid "Cordoba" +msgstr "Cordoba" + +#: contrib/localflavor/es/es_provinces.py:19 +msgid "A Coruna" +msgstr "A Coruna" + +#: contrib/localflavor/es/es_provinces.py:20 +msgid "Cuenca" +msgstr "Cuenca" + +#: contrib/localflavor/es/es_provinces.py:21 +msgid "Girona" +msgstr "Girona" + +#: contrib/localflavor/es/es_provinces.py:22 +msgid "Granada" +msgstr "Granada" + +#: contrib/localflavor/es/es_provinces.py:23 +msgid "Guadalajara" +msgstr "Guadalajara" + +#: contrib/localflavor/es/es_provinces.py:24 +msgid "Guipuzkoa" +msgstr "Guipuzkoa" + +#: contrib/localflavor/es/es_provinces.py:25 +msgid "Huelva" +msgstr "Huelva" + +#: contrib/localflavor/es/es_provinces.py:26 +msgid "Huesca" +msgstr "Huesca" + +#: contrib/localflavor/es/es_provinces.py:27 +msgid "Jaen" +msgstr "Jaen" + +#: contrib/localflavor/es/es_provinces.py:28 +msgid "Leon" +msgstr "Leon" + +#: contrib/localflavor/es/es_provinces.py:29 +msgid "Lleida" +msgstr "Lleida" + +#: contrib/localflavor/es/es_provinces.py:30 +#: contrib/localflavor/es/es_regions.py:17 +msgid "La Rioja" +msgstr "La Rioja" + +#: contrib/localflavor/es/es_provinces.py:31 +msgid "Lugo" +msgstr "Lugo" + +#: contrib/localflavor/es/es_provinces.py:32 +#: contrib/localflavor/es/es_regions.py:18 +msgid "Madrid" +msgstr "Madrid" + +#: contrib/localflavor/es/es_provinces.py:33 +msgid "Malaga" +msgstr "Malaga" + +#: contrib/localflavor/es/es_provinces.py:34 +msgid "Murcia" +msgstr "Murcia" + +#: contrib/localflavor/es/es_provinces.py:35 +msgid "Navarre" +msgstr "Navarre" + +#: contrib/localflavor/es/es_provinces.py:36 +msgid "Ourense" +msgstr "Ourense" + +#: contrib/localflavor/es/es_provinces.py:37 +msgid "Asturias" +msgstr "Asturias" + +#: contrib/localflavor/es/es_provinces.py:38 +msgid "Palencia" +msgstr "Palencia" + +#: contrib/localflavor/es/es_provinces.py:39 +msgid "Las Palmas" +msgstr "Las Palmas" + +#: contrib/localflavor/es/es_provinces.py:40 +msgid "Pontevedra" +msgstr "Pontevedra" + +#: contrib/localflavor/es/es_provinces.py:41 +msgid "Salamanca" +msgstr "Salamanca" + +#: contrib/localflavor/es/es_provinces.py:42 +msgid "Santa Cruz de Tenerife" +msgstr "Santa Cruz de Tenerife" + +#: contrib/localflavor/es/es_provinces.py:43 +#: contrib/localflavor/es/es_regions.py:11 +msgid "Cantabria" +msgstr "Cantabria" + +#: contrib/localflavor/es/es_provinces.py:44 +msgid "Segovia" +msgstr "Segovia" + +#: contrib/localflavor/es/es_provinces.py:45 +msgid "Seville" +msgstr "Seville" + +#: contrib/localflavor/es/es_provinces.py:46 +msgid "Soria" +msgstr "Soria" + +#: contrib/localflavor/es/es_provinces.py:47 +msgid "Tarragona" +msgstr "Tarragona" + +#: contrib/localflavor/es/es_provinces.py:48 +msgid "Teruel" +msgstr "Teruel" + +#: contrib/localflavor/es/es_provinces.py:49 +msgid "Toledo" +msgstr "Toledo" + +#: contrib/localflavor/es/es_provinces.py:50 +msgid "Valencia" +msgstr "Valencia" + +#: contrib/localflavor/es/es_provinces.py:51 +msgid "Valladolid" +msgstr "Valladolid" + +#: contrib/localflavor/es/es_provinces.py:52 +msgid "Bizkaia" +msgstr "Bizkaia" + +#: contrib/localflavor/es/es_provinces.py:53 +msgid "Zamora" +msgstr "Zamora" + +#: contrib/localflavor/es/es_provinces.py:54 +msgid "Zaragoza" +msgstr "Zaragoza" + +#: contrib/localflavor/es/es_provinces.py:55 +msgid "Ceuta" +msgstr "Ceuta" + +#: contrib/localflavor/es/es_provinces.py:56 +msgid "Melilla" +msgstr "Melilla" + +#: contrib/localflavor/es/es_regions.py:5 +msgid "Andalusia" +msgstr "Andalusia" + +#: contrib/localflavor/es/es_regions.py:6 +msgid "Aragon" +msgstr "Aragon" + +#: contrib/localflavor/es/es_regions.py:7 +msgid "Principality of Asturias" +msgstr "Principality of Asturias" + +#: contrib/localflavor/es/es_regions.py:8 +msgid "Balearic Islands" +msgstr "Balearic Islands" + +#: contrib/localflavor/es/es_regions.py:9 +msgid "Basque Country" +msgstr "Basque Country" + +#: contrib/localflavor/es/es_regions.py:10 +msgid "Canary Islands" +msgstr "Canary Islands" + +#: contrib/localflavor/es/es_regions.py:12 +msgid "Castile-La Mancha" +msgstr "Castile-La Mancha" + +#: contrib/localflavor/es/es_regions.py:13 +msgid "Castile and Leon" +msgstr "Castile and Leon" + +#: contrib/localflavor/es/es_regions.py:14 +msgid "Catalonia" +msgstr "Catalonia" + +#: contrib/localflavor/es/es_regions.py:15 +msgid "Extremadura" +msgstr "Extremadura" + +#: contrib/localflavor/es/es_regions.py:16 +msgid "Galicia" +msgstr "Galicia" + +#: contrib/localflavor/es/es_regions.py:19 +msgid "Region of Murcia" +msgstr "Region of Murcia" + +#: contrib/localflavor/es/es_regions.py:20 +msgid "Foral Community of Navarre" +msgstr "Foral Community of Navarre" + +#: contrib/localflavor/es/es_regions.py:21 +msgid "Valencian Community" +msgstr "Valencian Community" + +#: contrib/localflavor/es/forms.py:19 +msgid "Enter a valid postal code in the range and format 01XXX - 52XXX." +msgstr "01XXX から 52XXXの形式で郵便番号を入力してください。" + +#: contrib/localflavor/es/forms.py:39 +msgid "" +"Enter a valid phone number in one of the formats 6XXXXXXXX, 8XXXXXXXX or " +"9XXXXXXXX." +msgstr "6XXXXXXXX か 8XXXXXXXX か 9XXXXXXXX かのいずれかの形式で電話番号を入力してください。" + +#: contrib/localflavor/es/forms.py:66 +msgid "Please enter a valid NIF, NIE, or CIF." +msgstr "スペイン納税者番号(NIF)かスペイン住民番号(N.I.E)かスペイン企業番号(CIF)のいずれかを入力してください。" + +#: contrib/localflavor/es/forms.py:67 +msgid "Please enter a valid NIF or NIE." +msgstr "スペイン納税者番号(NIF)かスペイン住民番号(N.I.E)を入力してください。" + +#: contrib/localflavor/es/forms.py:68 +msgid "Invalid checksum for NIF." +msgstr "スペイン納税者番号(NIF)のチェックサムがあいません。" + +#: contrib/localflavor/es/forms.py:69 +msgid "Invalid checksum for NIE." +msgstr "スペイン住民番号(N.I.E)のチェックサムがあいません。" + +#: contrib/localflavor/es/forms.py:70 +msgid "Invalid checksum for CIF." +msgstr "スペイン企業番号(CIF)のチェックサムがあいません。" + +#: contrib/localflavor/es/forms.py:142 +msgid "" +"Please enter a valid bank account number in format XXXX-XXXX-XX-XXXXXXXXXX." +msgstr "" +"XXXX-XXXX-XX-XXXXXXXXXX の形式で銀行口座番号を入力して下さい。" + +#: contrib/localflavor/es/forms.py:143 +msgid "Invalid checksum for bank account number." +msgstr "銀行口座番号のチェックサムがあいません。" + +#: contrib/localflavor/fi/forms.py:28 msgid "Enter a valid Finnish social security number." msgstr "フィンランド社会保証番号を正しく入力してください。" -#: contrib/localflavor/in_/forms.py:16 +#: contrib/localflavor/in_/forms.py:14 msgid "Enter a zip code in the format XXXXXXX." msgstr "XXXXXXXの形式でZipコードを入力してください。" @@ -1937,15 +2253,15 @@ msgid "" "Enter a valid Icelandic identification number. The format is XXXXXX-XXXX." msgstr "XXXXXか、XXXXX-XXXXの形式でアイスランド納税者番号を入力してください。" -#: contrib/localflavor/is_/forms.py:31 +#: contrib/localflavor/is_/forms.py:18 msgid "The Icelandic identification number is not valid." msgstr "アイスランド納税者番号を正しく入力して下さい。" -#: contrib/localflavor/it/forms.py:16 +#: contrib/localflavor/it/forms.py:14 msgid "Enter a valid zip code." msgstr "Zipコードを正しく入力してください。" -#: contrib/localflavor/it/forms.py:41 +#: contrib/localflavor/it/forms.py:43 msgid "Enter a valid Social Security number." msgstr "社会保障番号番号を正しく入力してください。" @@ -1953,7 +2269,7 @@ msgstr "社会保障番号番号を正しく入力してください。" msgid "Enter a valid VAT number." msgstr "VAT番号を正しく入力してください。" -#: contrib/localflavor/jp/forms.py:21 +#: contrib/localflavor/jp/forms.py:19 msgid "Enter a postal code in the format XXXXXXX or XXX-XXXX." msgstr "XXXXXか、XXXXX-XXXXの形式で郵便番号を入力してください。" @@ -2145,24 +2461,232 @@ msgstr "鹿児島県" msgid "Okinawa" msgstr "沖縄県" -#: contrib/localflavor/no/forms.py:35 +#: contrib/localflavor/mx/mx_states.py:12 +msgid "Aguascalientes" +msgstr "Aguascalientes" + +#: contrib/localflavor/mx/mx_states.py:13 +msgid "Baja California" +msgstr "Baja California" + +#: contrib/localflavor/mx/mx_states.py:14 +msgid "Baja California Sur" +msgstr "Baja California Sur" + +#: contrib/localflavor/mx/mx_states.py:15 +msgid "Campeche" +msgstr "Campeche" + +#: contrib/localflavor/mx/mx_states.py:16 +msgid "Chihuahua" +msgstr "Chihuahua" + +#: contrib/localflavor/mx/mx_states.py:17 +msgid "Chiapas" +msgstr "Chiapas" + +#: contrib/localflavor/mx/mx_states.py:18 +msgid "Coahuila" +msgstr "Coahuila" + +#: contrib/localflavor/mx/mx_states.py:19 +msgid "Colima" +msgstr "Colima" + +#: contrib/localflavor/mx/mx_states.py:20 +msgid "Distrito Federal" +msgstr "Distrito Federal" + +#: contrib/localflavor/mx/mx_states.py:21 +msgid "Durango" +msgstr "Durango" + +#: contrib/localflavor/mx/mx_states.py:22 +msgid "Guerrero" +msgstr "Guerrero" + +#: contrib/localflavor/mx/mx_states.py:23 +msgid "Guanajuato" +msgstr "Guanajuato" + +#: contrib/localflavor/mx/mx_states.py:24 +msgid "Hidalgo" +msgstr "Hidalgo" + +#: contrib/localflavor/mx/mx_states.py:25 +msgid "Jalisco" +msgstr "Jalisco" + +#: contrib/localflavor/mx/mx_states.py:26 +msgid "Estado de México" +msgstr "Estado de México" + +#: contrib/localflavor/mx/mx_states.py:27 +msgid "Michoacán" +msgstr "Michoacan" + +#: contrib/localflavor/mx/mx_states.py:28 +msgid "Morelos" +msgstr "Morelos" + +#: contrib/localflavor/mx/mx_states.py:29 +msgid "Nayarit" +msgstr "Nayarit" + +#: contrib/localflavor/mx/mx_states.py:30 +msgid "Nuevo León" +msgstr "Nuevo Leon" + +#: contrib/localflavor/mx/mx_states.py:31 +msgid "Oaxaca" +msgstr "Oaxaca" + +#: contrib/localflavor/mx/mx_states.py:32 +msgid "Puebla" +msgstr "Puebla" + +#: contrib/localflavor/mx/mx_states.py:33 +msgid "Querétaro" +msgstr "Queretaro" + +#: contrib/localflavor/mx/mx_states.py:34 +msgid "Quintana Roo" +msgstr "Quintana Roo" + +#: contrib/localflavor/mx/mx_states.py:35 +msgid "Sinaloa" +msgstr "Sinaloa" + +#: contrib/localflavor/mx/mx_states.py:36 +msgid "San Luis Potosí" +msgstr "San Luis Potosi" + +#: contrib/localflavor/mx/mx_states.py:37 +msgid "Sonora" +msgstr "Sonora" + +#: contrib/localflavor/mx/mx_states.py:38 +msgid "Tabasco" +msgstr "Tabasco" + +#: contrib/localflavor/mx/mx_states.py:39 +msgid "Tamaulipas" +msgstr "Tamaulipas" + +#: contrib/localflavor/mx/mx_states.py:40 +msgid "Tlaxcala" +msgstr "Tlaxcala" + +#: contrib/localflavor/mx/mx_states.py:41 +msgid "Veracruz" +msgstr "Veracruz" + +#: contrib/localflavor/mx/mx_states.py:42 +msgid "Yucatán" +msgstr "Yucatan" + +#: contrib/localflavor/mx/mx_states.py:43 +msgid "Zacatecas" +msgstr "Zacatecas" + +#: contrib/localflavor/nl/forms.py:21 +msgid "Enter a valid postal code" +msgstr "郵便番号を正しく入力してください。" + +#: contrib/localflavor/nl/forms.py:52 +msgid "Enter a valid phone number" +msgstr "電話番号を正しく入力してください。" + +#: contrib/localflavor/nl/forms.py:78 +msgid "Enter a valid SoFi number" +msgstr "社会税務番号(SoFi)を正しく入力してください。" + +#: contrib/localflavor/nl/nl_provinces.py:4 +msgid "Drente" +msgstr "Drente" + +#: contrib/localflavor/nl/nl_provinces.py:5 +msgid "Flevoland" +msgstr "Flevoland" + +#: contrib/localflavor/nl/nl_provinces.py:6 +msgid "Friesland" +msgstr "Friesland" + +#: contrib/localflavor/nl/nl_provinces.py:7 +msgid "Gelderland" +msgstr "Gelderland" + +#: contrib/localflavor/nl/nl_provinces.py:8 +msgid "Groningen" +msgstr "Groningen" + +#: contrib/localflavor/nl/nl_provinces.py:9 +msgid "Limburg" +msgstr "Limburg" + +#: contrib/localflavor/nl/nl_provinces.py:10 +msgid "Noord-Brabant" +msgstr "Noord-Brabant" + +#: contrib/localflavor/nl/nl_provinces.py:11 +msgid "Noord-Holland" +msgstr "Noord-Holland" + +#: contrib/localflavor/nl/nl_provinces.py:12 +msgid "Overijssel" +msgstr "Overijssel" + +#: contrib/localflavor/nl/nl_provinces.py:13 +msgid "Utrecht" +msgstr "Utrecht" + +#: contrib/localflavor/nl/nl_provinces.py:14 +msgid "Zeeland" +msgstr "Zeeland" + +#: contrib/localflavor/nl/nl_provinces.py:15 +msgid "Zuid-Holland" +msgstr "Zuid-Holland" + +#: contrib/localflavor/no/forms.py:33 msgid "Enter a valid Norwegian social security number." msgstr "ノルウェー社会保障番号を正しく入力してください。" -#: contrib/localflavor/pl/forms.py:53 +#: contrib/localflavor/pe/forms.py:24 +msgid "This field requires 8 digits." +msgstr "8桁で入力して下さい。" + +#: contrib/localflavor/pe/forms.py:52 +msgid "This field requires 11 digits." +msgstr "11桁で入力して下さい。" + +#: contrib/localflavor/pl/forms.py:39 msgid "National Identification Number consists of 11 digits." msgstr "国民識別番号は11文字で入力して下さい。" -#: contrib/localflavor/pl/forms.py:59 +#: contrib/localflavor/pl/forms.py:40 msgid "Wrong checksum for the National Identification Number." msgstr "国民識別番号のチェックサムがあいません。" -#: contrib/localflavor/pl/forms.py:71 +#: contrib/localflavor/pl/forms.py:72 msgid "" "Enter a tax number field (NIP) in the format XXX-XXX-XX-XX or XX-XX-XXX-XXX." msgstr "XXXXXか、XXXXX-XXXXの形式で納税者欄(NIP)を入力してください。" -#: contrib/localflavor/pl/forms.py:82 +#: contrib/localflavor/pl/forms.py:73 +msgid "Wrong checksum for the Tax Number (NIP)." +msgstr "税務署登録ID(NIP)のチェックサムがあいません。" + +#: contrib/localflavor/pl/forms.py:112 +msgid "National Business Register Number (REGON) consists of 7 or 9 digits." +msgstr "ポーランド企業番号(REGON)は7文字か9文字で入力して下さい。" + +#: contrib/localflavor/pl/forms.py:113 +msgid "Wrong checksum for the National Business Register Number (REGON)." +msgstr "ポーランド企業番号(REGON)のチェックサムがあいません。" + +#: contrib/localflavor/pl/forms.py:156 msgid "Enter a postal code in the format XX-XXX." msgstr "XX-XXXの形式で郵便番号を入力してください。" @@ -2230,7 +2754,7 @@ msgstr "Greater Poland" msgid "West Pomerania" msgstr "West Pomerania" -#: contrib/localflavor/sk/forms.py:32 +#: contrib/localflavor/sk/forms.py:30 msgid "Enter a postal code in the format XXXXX or XXX XX." msgstr "XXXXXか、XXX XXの形式で郵便番号を入力してください。" @@ -2582,20 +3106,339 @@ msgstr "Trnava region" msgid "Zilina region" msgstr "Zilina region" -#: contrib/localflavor/uk/forms.py:18 -msgid "Enter a postcode. A space is required between the two postcode parts." -msgstr "" -"ポスタルコードを入力してください。コードとコードの間は半角のスペースで区切っ" -"てください。" +#: contrib/localflavor/uk/forms.py:21 +msgid "Enter a valid postcode." +msgstr "郵便番号を正しく入力してください。" -#: contrib/localflavor/us/forms.py:18 +#: contrib/localflavor/uk/uk_regions.py:11 +msgid "Bedfordshire" +msgstr "Bedfordshire" + +#: contrib/localflavor/uk/uk_regions.py:12 +msgid "Buckinghamshire" +msgstr "Buckinghamshire" + +#: contrib/localflavor/uk/uk_regions.py:14 +msgid "Cheshire" +msgstr "Cheshire" + +#: contrib/localflavor/uk/uk_regions.py:15 +msgid "Cornwall and Isles of Scilly" +msgstr "Cornwall and Isles of Scilly" + +#: contrib/localflavor/uk/uk_regions.py:16 +msgid "Cumbria" +msgstr "Cumbria" + +#: contrib/localflavor/uk/uk_regions.py:17 +msgid "Derbyshire" +msgstr "Derbyshire" + +#: contrib/localflavor/uk/uk_regions.py:18 +msgid "Devon" +msgstr "Devon" + +#: contrib/localflavor/uk/uk_regions.py:19 +msgid "Dorset" +msgstr "Dorset" + +#: contrib/localflavor/uk/uk_regions.py:20 +msgid "Durham" +msgstr "Durham" + +#: contrib/localflavor/uk/uk_regions.py:21 +msgid "East Sussex" +msgstr "East Sussex" + +#: contrib/localflavor/uk/uk_regions.py:22 +msgid "Essex" +msgstr "Essex" + +#: contrib/localflavor/uk/uk_regions.py:23 +msgid "Gloucestershire" +msgstr "Gloucestershire" + +#: contrib/localflavor/uk/uk_regions.py:24 +msgid "Greater London" +msgstr "Greater London" + +#: contrib/localflavor/uk/uk_regions.py:25 +msgid "Greater Manchester" +msgstr "Greater Manchester" + +#: contrib/localflavor/uk/uk_regions.py:26 +msgid "Hampshire" +msgstr "Hampshire" + +#: contrib/localflavor/uk/uk_regions.py:27 +msgid "Hertfordshire" +msgstr "Hertfordshire" + +#: contrib/localflavor/uk/uk_regions.py:28 +msgid "Kent" +msgstr "Kent" + +#: contrib/localflavor/uk/uk_regions.py:29 +msgid "Lancashire" +msgstr "Lancashire" + +#: contrib/localflavor/uk/uk_regions.py:30 +msgid "Leicestershire" +msgstr "Leicestershire" + +#: contrib/localflavor/uk/uk_regions.py:31 +msgid "Lincolnshire" +msgstr "Lincolnshire" + +#: contrib/localflavor/uk/uk_regions.py:32 +msgid "Merseyside" +msgstr "Merseyside" + +#: contrib/localflavor/uk/uk_regions.py:33 +msgid "Norfolk" +msgstr "Norfolk" + +#: contrib/localflavor/uk/uk_regions.py:34 +msgid "North Yorkshire" +msgstr "North Yorkshire" + +#: contrib/localflavor/uk/uk_regions.py:35 +msgid "Northamptonshire" +msgstr "Northamptonshire" + +#: contrib/localflavor/uk/uk_regions.py:36 +msgid "Northumberland" +msgstr "Northumberland" + +#: contrib/localflavor/uk/uk_regions.py:37 +msgid "Nottinghamshire" +msgstr "Nottinghamshire" + +#: contrib/localflavor/uk/uk_regions.py:38 +msgid "Oxfordshire" +msgstr "Oxfordshire" + +#: contrib/localflavor/uk/uk_regions.py:39 +msgid "Shropshire" +msgstr "Shropshire" + +#: contrib/localflavor/uk/uk_regions.py:40 +msgid "Somerset" +msgstr "Somerset" + +#: contrib/localflavor/uk/uk_regions.py:41 +msgid "South Yorkshire" +msgstr "South Yorkshire" + +#: contrib/localflavor/uk/uk_regions.py:42 +msgid "Staffordshire" +msgstr "Staffordshire" + +#: contrib/localflavor/uk/uk_regions.py:43 +msgid "Suffolk" +msgstr "Suffolk" + +#: contrib/localflavor/uk/uk_regions.py:44 +msgid "Surrey" +msgstr "Surrey" + +#: contrib/localflavor/uk/uk_regions.py:45 +msgid "Tyne and Wear" +msgstr "Tyne and Wear" + +#: contrib/localflavor/uk/uk_regions.py:46 +msgid "Warwickshire" +msgstr "Warwickshire" + +#: contrib/localflavor/uk/uk_regions.py:47 +msgid "West Midlands" +msgstr "West Midlands" + +#: contrib/localflavor/uk/uk_regions.py:48 +msgid "West Sussex" +msgstr "West Sussex" + +#: contrib/localflavor/uk/uk_regions.py:49 +msgid "West Yorkshire" +msgstr "West Yorkshire" + +#: contrib/localflavor/uk/uk_regions.py:50 +msgid "Wiltshire" +msgstr "Wiltshire" + +#: contrib/localflavor/uk/uk_regions.py:51 +msgid "Worcestershire" +msgstr "Worcestershire" + +#: contrib/localflavor/uk/uk_regions.py:55 +msgid "County Antrim" +msgstr "County Antrim" + +#: contrib/localflavor/uk/uk_regions.py:56 +msgid "County Armagh" +msgstr "County Armagh" + +#: contrib/localflavor/uk/uk_regions.py:57 +#: contrib/localflavor/uk/uk_regions.py:58 +msgid "County Down" +msgstr "County Down" + +#: contrib/localflavor/uk/uk_regions.py:59 +msgid "County Londonderry" +msgstr "County Londonderry" + +#: contrib/localflavor/uk/uk_regions.py:60 +msgid "County Tyrone" +msgstr "County Tyrone" + +#: contrib/localflavor/uk/uk_regions.py:64 +msgid "Clwyd" +msgstr "Clwyd" + +#: contrib/localflavor/uk/uk_regions.py:65 +msgid "Dyfed" +msgstr "Dyfed" + +#: contrib/localflavor/uk/uk_regions.py:66 +msgid "Gwent" +msgstr "Gwent" + +#: contrib/localflavor/uk/uk_regions.py:67 +msgid "Gwynedd" +msgstr "Gwynedd" + +#: contrib/localflavor/uk/uk_regions.py:68 +msgid "Mid Glamorgan" +msgstr "Mid Glamorgan" + +#: contrib/localflavor/uk/uk_regions.py:69 +msgid "Powys" +msgstr "Powys" + +#: contrib/localflavor/uk/uk_regions.py:70 +msgid "South Glamorgan" +msgstr "South Glamorgan" + +#: contrib/localflavor/uk/uk_regions.py:71 +msgid "West Glamorgan" +msgstr "West Glamorgan" + +#: contrib/localflavor/uk/uk_regions.py:75 +msgid "Borders" +msgstr "Borders" + +#: contrib/localflavor/uk/uk_regions.py:76 +msgid "Central Scotland" +msgstr "Central Scotland" + +#: contrib/localflavor/uk/uk_regions.py:77 +msgid "Dumfries and Galloway" +msgstr "Dumfries and Galloway" + +#: contrib/localflavor/uk/uk_regions.py:78 +msgid "Fife" +msgstr "Fife" + +#: contrib/localflavor/uk/uk_regions.py:79 +msgid "Grampian" +msgstr "Grampian" + +#: contrib/localflavor/uk/uk_regions.py:80 +msgid "Highland" +msgstr "Highland" + +#: contrib/localflavor/uk/uk_regions.py:81 +msgid "Lothian" +msgstr "Lothian" + +#: contrib/localflavor/uk/uk_regions.py:82 +msgid "Orkney Islands" +msgstr "Orkney Islands" + +#: contrib/localflavor/uk/uk_regions.py:83 +msgid "Shetland Islands" +msgstr "Shetland Islands" + +#: contrib/localflavor/uk/uk_regions.py:84 +msgid "Strathclyde" +msgstr "Strathclyde" + +#: contrib/localflavor/uk/uk_regions.py:85 +msgid "Tayside" +msgstr "Tayside" + +#: contrib/localflavor/uk/uk_regions.py:86 +msgid "Western Isles" +msgstr "Western Isles" + +#: contrib/localflavor/uk/uk_regions.py:90 +msgid "England" +msgstr "England" + +#: contrib/localflavor/uk/uk_regions.py:91 +msgid "Northern Ireland" +msgstr "Northern Ireland" + +#: contrib/localflavor/uk/uk_regions.py:92 +msgid "Scotland" +msgstr "Scotland" + +#: contrib/localflavor/uk/uk_regions.py:93 +msgid "Wales" +msgstr "Wales" + +#: contrib/localflavor/us/forms.py:16 msgid "Enter a zip code in the format XXXXX or XXXXX-XXXX." msgstr "XXXXXか、XXXXX-XXXXの形式で郵便番号を入力してください。" -#: contrib/localflavor/us/forms.py:51 +#: contrib/localflavor/us/forms.py:54 msgid "Enter a valid U.S. Social Security number in XXX-XX-XXXX format." msgstr "XXX-XX-XXXX の形式で、米国社会保障番号を入力して下さい。" +#: contrib/localflavor/za/forms.py:20 +msgid "Enter a valid South African ID number" +msgstr "南アフリカID番号を正しく入力してください。" + +#: contrib/localflavor/za/forms.py:54 +msgid "Enter a valid South African postal code" +msgstr "南アフリカ郵便番号を正しく入力してください。" + +#: contrib/localflavor/za/za_provinces.py:4 +msgid "Eastern Cape" +msgstr "Eastern Cape" + +#: contrib/localflavor/za/za_provinces.py:5 +msgid "Free State" +msgstr "Free State" + +#: contrib/localflavor/za/za_provinces.py:6 +msgid "Gauteng" +msgstr "Gauteng" + +#: contrib/localflavor/za/za_provinces.py:7 +msgid "KwaZulu-Natal" +msgstr "KwaZulu-Natal" + +#: contrib/localflavor/za/za_provinces.py:8 +msgid "Limpopo" +msgstr "Limpopo" + +#: contrib/localflavor/za/za_provinces.py:9 +msgid "Mpumalanga" +msgstr "Mpumalanga" + +#: contrib/localflavor/za/za_provinces.py:10 +msgid "Northern Cape" +msgstr "Northern Cape" + +#: contrib/localflavor/za/za_provinces.py:11 +msgid "North West" +msgstr "North West" + +#: contrib/localflavor/za/za_provinces.py:12 +msgid "Western Cape" +msgstr "Western Cape" + #: contrib/redirects/models.py:7 msgid "redirect from" msgstr "リダイレクト元" @@ -2624,129 +3467,129 @@ msgstr "リダイレクト" msgid "redirects" msgstr "リダイレクト" -#: contrib/sessions/models.py:68 +#: contrib/sessions/models.py:46 msgid "session key" msgstr "セッションキー" -#: contrib/sessions/models.py:69 +#: contrib/sessions/models.py:47 msgid "session data" msgstr "セッションデータ" -#: contrib/sessions/models.py:70 +#: contrib/sessions/models.py:48 msgid "expire date" msgstr "有効期限" -#: contrib/sessions/models.py:74 +#: contrib/sessions/models.py:53 msgid "session" msgstr "セッション" -#: contrib/sessions/models.py:75 +#: contrib/sessions/models.py:54 msgid "sessions" msgstr "セッション" -#: contrib/sites/models.py:15 +#: contrib/sites/models.py:32 msgid "domain name" msgstr "ドメイン名" -#: contrib/sites/models.py:16 +#: contrib/sites/models.py:33 msgid "display name" msgstr "表示名" -#: contrib/sites/models.py:20 +#: contrib/sites/models.py:37 msgid "site" msgstr "サイト" -#: contrib/sites/models.py:21 +#: contrib/sites/models.py:38 msgid "sites" msgstr "サイト" -#: core/validators.py:71 +#: core/validators.py:72 msgid "This value must contain only letters, numbers and underscores." msgstr "半角の英数字およびアンダースコア以外は使用できません。" -#: core/validators.py:75 +#: core/validators.py:76 msgid "" "This value must contain only letters, numbers, underscores, dashes or " "slashes." msgstr "" "半角の英数字、アンダースコア、ダッシュ、スラッシュ以外は使用できません。" -#: core/validators.py:79 +#: core/validators.py:80 msgid "This value must contain only letters, numbers, underscores or hyphens." msgstr "半角の英数字、アンダースコア、ハイフン以外は使用できません。" -#: core/validators.py:83 +#: core/validators.py:84 msgid "Uppercase letters are not allowed here." msgstr "大文字はここでは使用できません。" -#: core/validators.py:87 +#: core/validators.py:88 msgid "Lowercase letters are not allowed here." msgstr "小文字はここでは使用できません。" -#: core/validators.py:94 +#: core/validators.py:95 msgid "Enter only digits separated by commas." msgstr "カンマ区切りの数字だけを入力してください。" -#: core/validators.py:106 +#: core/validators.py:107 msgid "Enter valid e-mail addresses separated by commas." msgstr "カンマ区切りの有効なメールアドレスを入力してください。" -#: core/validators.py:110 +#: core/validators.py:111 msgid "Please enter a valid IP address." msgstr "有効な IP アドレスを入力してください。" -#: core/validators.py:114 +#: core/validators.py:115 msgid "Empty values are not allowed here." msgstr "入力は必須です。" -#: core/validators.py:118 +#: core/validators.py:119 msgid "Non-numeric characters aren't allowed here." msgstr "数値以外は使用できません。" -#: core/validators.py:122 +#: core/validators.py:123 msgid "This value can't be comprised solely of digits." msgstr "数値だけの値にはできません。" -#: core/validators.py:127 newforms/fields.py:142 +#: core/validators.py:128 newforms/fields.py:151 msgid "Enter a whole number." msgstr "整数を入力してください。" -#: core/validators.py:131 +#: core/validators.py:132 msgid "Only alphabetical characters are allowed here." msgstr "半角アルファベット以外使用できません。" -#: core/validators.py:146 +#: core/validators.py:147 msgid "Year must be 1900 or later." msgstr "1900年以降を指定してください。" -#: core/validators.py:150 +#: core/validators.py:151 #, python-format msgid "Invalid date: %s" msgstr "無効な日付: %s" -#: core/validators.py:155 db/models/fields/__init__.py:501 +#: core/validators.py:156 db/models/fields/__init__.py:509 msgid "Enter a valid date in YYYY-MM-DD format." msgstr "YYYY-MM-DD形式で日付を入力してください。" -#: core/validators.py:160 +#: core/validators.py:161 msgid "Enter a valid time in HH:MM format." msgstr "HH:MM形式で時刻を入力してください。" -#: core/validators.py:164 db/models/fields/__init__.py:570 +#: core/validators.py:165 db/models/fields/__init__.py:583 msgid "Enter a valid date/time in YYYY-MM-DD HH:MM format." msgstr "YYYY-MM-DD HH:MM形式で日時を入力してください。" -#: core/validators.py:169 newforms/fields.py:336 +#: core/validators.py:170 newforms/fields.py:402 msgid "Enter a valid e-mail address." msgstr "有効なメールアドレスを入力してください。" -#: core/validators.py:181 core/validators.py:461 newforms/fields.py:376 -#: oldforms/__init__.py:686 +#: core/validators.py:182 core/validators.py:474 newforms/fields.py:432 +#: oldforms/__init__.py:687 msgid "No file was submitted. Check the encoding type on the form." msgstr "" "ファイルが取得できませんでした。formのencoding typeを確認してください。" -#: core/validators.py:185 newforms/fields.py:397 +#: core/validators.py:193 newforms/fields.py:456 msgid "" "Upload a valid image. The file you uploaded was either not an image or a " "corrupted image." @@ -2754,26 +3597,26 @@ msgstr "" "画像をアップロードしてください。アップロードした画像は画像でないか、または壊" "れています。" -#: core/validators.py:192 +#: core/validators.py:200 #, python-format msgid "The URL %s does not point to a valid image." msgstr "URL ( %s ) は画像ではありません。" -#: core/validators.py:196 +#: core/validators.py:204 #, python-format msgid "Phone numbers must be in XXX-XXX-XXXX format. \"%s\" is invalid." msgstr "電話番号は XXX-XXX-XXXX 形式で入力してください。\"%s\" は無効です。" -#: core/validators.py:204 +#: core/validators.py:212 #, python-format msgid "The URL %s does not point to a valid QuickTime video." msgstr "URL ( %s ) は QuickTime ビデオではありません。" -#: core/validators.py:208 +#: core/validators.py:216 msgid "A valid URL is required." msgstr "正しい URL を入力してください。" -#: core/validators.py:222 +#: core/validators.py:230 #, python-format msgid "" "Valid HTML is required. Specific errors are:\n" @@ -2782,86 +3625,86 @@ msgstr "" "有効な HTML を入力してください。エラー:\n" "%s" -#: core/validators.py:229 +#: core/validators.py:237 #, python-format msgid "Badly formed XML: %s" msgstr "不正な XML です: %s" -#: core/validators.py:246 +#: core/validators.py:254 #, python-format msgid "Invalid URL: %s" msgstr "無効なURL: %s" -#: core/validators.py:251 core/validators.py:253 +#: core/validators.py:259 core/validators.py:261 #, python-format msgid "The URL %s is a broken link." msgstr "URL ( %s ) はリンクが壊れています。" -#: core/validators.py:259 +#: core/validators.py:267 msgid "Enter a valid U.S. state abbreviation." msgstr "正しい米州略称を入力してください。" -#: core/validators.py:273 +#: core/validators.py:281 #, 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] "言葉使いに気を付けて! %s という言葉は使えません。" msgstr[1] "言葉使いに気を付けて! %s という言葉は使えません。" -#: core/validators.py:280 +#: core/validators.py:288 #, python-format msgid "This field must match the '%s' field." msgstr "このフィールドは '%s' フィールドと一致せねばなりません。" -#: core/validators.py:299 +#: core/validators.py:307 msgid "Please enter something for at least one field." msgstr "少なくとも一つのフィールドに何か入力してください。" -#: core/validators.py:308 core/validators.py:319 +#: core/validators.py:316 core/validators.py:327 msgid "Please enter both fields or leave them both empty." msgstr "両方のフィールドに入力するか、両方とも未入力にしてください。" -#: core/validators.py:327 +#: core/validators.py:335 #, python-format msgid "This field must be given if %(field)s is %(value)s" msgstr "" "%(field)s を %(value)s にするのなら、このフィールドに必ず入力してください。" -#: core/validators.py:340 +#: core/validators.py:348 #, python-format msgid "This field must be given if %(field)s is not %(value)s" msgstr "" "%(field)s を %(value)s にしないのなら、このフィールドに必ず入力してください。" -#: core/validators.py:359 +#: core/validators.py:367 msgid "Duplicate values are not allowed." msgstr "重複する値は認められません。" -#: core/validators.py:374 +#: core/validators.py:382 #, python-format msgid "This value must be between %(lower)s and %(upper)s." msgstr "この値は %(lower)s から %(upper)s の間でなければなりません。" -#: core/validators.py:376 +#: core/validators.py:384 #, python-format msgid "This value must be at least %s." msgstr "この値は %s 以上でなければなりません。" -#: core/validators.py:378 +#: core/validators.py:386 #, python-format msgid "This value must be no more than %s." msgstr "この値は %s より小さくなければなりません。" -#: core/validators.py:414 +#: core/validators.py:427 #, python-format msgid "This value must be a power of %s." msgstr "この値は %s の累乗でなければなりません。" -#: core/validators.py:424 +#: core/validators.py:437 msgid "Please enter a valid decimal number." msgstr "有効な 10 進数を入力してください。" -#: core/validators.py:431 +#: core/validators.py:444 #, python-format msgid "Please enter a valid decimal number with at most %s total digit." msgid_plural "" @@ -2869,7 +3712,7 @@ msgid_plural "" msgstr[0] "全体で %s 文字以下の数字を入力してください。" msgstr[1] "全体で %s 文字以下の数字を入力してください。" -#: core/validators.py:434 +#: core/validators.py:447 #, python-format msgid "" "Please enter a valid decimal number with a whole part of at most %s digit." @@ -2878,7 +3721,7 @@ msgid_plural "" msgstr[0] "整数部は %s 文字以下の数字を入力してください。" msgstr[1] "整数部は %s 文字以下の数字を入力してください。" -#: core/validators.py:437 +#: core/validators.py:450 #, python-format msgid "Please enter a valid decimal number with at most %s decimal place." msgid_plural "" @@ -2886,41 +3729,41 @@ msgid_plural "" msgstr[0] "小数部は %s 文字以下の数字を入力してください。" msgstr[1] "小数部は %s 文字以下の数字を入力してください。" -#: core/validators.py:445 +#: core/validators.py:458 msgid "Please enter a valid floating point number." msgstr "有効な 小数 を入力してください。" -#: core/validators.py:454 +#: core/validators.py:467 #, python-format msgid "Make sure your uploaded file is at least %s bytes big." msgstr "アップロードするファイルの大きさは %s バイト以上にしてください。" -#: core/validators.py:455 +#: core/validators.py:468 #, python-format msgid "Make sure your uploaded file is at most %s bytes big." msgstr "アップロードするファイルの大きさは %s 最大バイトまでです。" -#: core/validators.py:472 +#: core/validators.py:485 msgid "The format for this field is wrong." msgstr "フィールドの形式が正しくありません。" -#: core/validators.py:487 +#: core/validators.py:500 msgid "This field is invalid." msgstr "このフィールドは無効です。" -#: core/validators.py:523 +#: core/validators.py:536 #, python-format msgid "Could not retrieve anything from %s." msgstr "%s から何も検索できませんでした。" -#: core/validators.py:526 +#: core/validators.py:539 #, python-format msgid "" "The URL %(url)s returned the invalid Content-Type header '%(contenttype)s'." msgstr "" "URL %(url)s は無効なコンテンツタイプヘッダ '%(contenttype)s' を返しました。" -#: core/validators.py:559 +#: core/validators.py:572 #, python-format msgid "" "Please close the unclosed %(tag)s tag from line %(line)s. (Line starts with " @@ -2929,7 +3772,7 @@ msgstr "" "%(line)s 行目から始まる %(tag)s タグを閉じてください (\"%(start)s\" で始まる" "行です)。" -#: core/validators.py:563 +#: core/validators.py:576 #, python-format msgid "" "Some text starting on line %(line)s is not allowed in that context. (Line " @@ -2938,7 +3781,7 @@ msgstr "" "%(line)s 行目から始まるテキストはこのコンテキストでは使えません。 (\"%(start)" "s\" で始まる行です)。" -#: core/validators.py:568 +#: core/validators.py:581 #, python-format msgid "" "\"%(attr)s\" on line %(line)s is an invalid attribute. (Line starts with \"%" @@ -2947,7 +3790,7 @@ msgstr "" "%(line)s 行目の \"%(attr)s\" は無効なアトリビュートです (\"%(start)s\" で始ま" "る行です)。" -#: core/validators.py:573 +#: core/validators.py:586 #, python-format msgid "" "\"<%(tag)s>\" on line %(line)s is an invalid tag. (Line starts with \"%" @@ -2956,7 +3799,7 @@ msgstr "" "%(line)s 行目の \"<%(tag)s>\" は無効なタグです( \"%(start)s\" で始まる行で" "す)。" -#: core/validators.py:577 +#: core/validators.py:590 #, python-format msgid "" "A tag on line %(line)s is missing one or more required attributes. (Line " @@ -2965,7 +3808,7 @@ msgstr "" "%(line)s 行目のタグは必須アトリビュートが未入力です( \"%(start)s\" で始まる行" "です)。" -#: core/validators.py:582 +#: core/validators.py:595 #, python-format msgid "" "The \"%(attr)s\" attribute on line %(line)s has an invalid value. (Line " @@ -2974,45 +3817,44 @@ msgstr "" "%(line)s 行目の \"%(attr)s\" アトリビュートの値が正しくありません (\"%(start)" "s\" で始まる行です) 。" -#: db/models/manipulators.py:309 +#: db/models/manipulators.py:308 #, python-format msgid "%(object)s with this %(type)s already exists for the given %(field)s." msgstr "" "%(field)s に入力されたものは、この %(type)s の %(object)s に既に存在します。" -#: db/models/fields/__init__.py:49 +#: db/models/fields/__init__.py:52 #, python-format msgid "%(optname)s with this %(fieldname)s already exists." msgstr "%(fieldname)s に %(optname)s は既に存在します。" -#: db/models/fields/__init__.py:156 db/models/fields/__init__.py:313 -#: db/models/fields/__init__.py:721 db/models/fields/__init__.py:732 -#: newforms/fields.py:92 newforms/fields.py:490 newforms/fields.py:566 -#: newforms/fields.py:577 newforms/models.py:193 oldforms/__init__.py:373 +#: db/models/fields/__init__.py:161 db/models/fields/__init__.py:318 +#: db/models/fields/__init__.py:735 db/models/fields/__init__.py:746 +#: newforms/fields.py:45 oldforms/__init__.py:374 msgid "This field is required." msgstr "このフィールドは必須です。" -#: db/models/fields/__init__.py:411 +#: db/models/fields/__init__.py:418 msgid "This value must be an integer." msgstr "値は整数でなければなりません。" -#: db/models/fields/__init__.py:446 +#: db/models/fields/__init__.py:454 msgid "This value must be either True or False." msgstr "値は真: True または偽: False でなければなりません。" -#: db/models/fields/__init__.py:467 +#: db/models/fields/__init__.py:475 msgid "This field cannot be null." msgstr "このフィールドには NULL を指定できません。" -#: db/models/fields/__init__.py:631 +#: db/models/fields/__init__.py:644 msgid "This value must be a decimal number." msgstr "値は整数でなければなりません。" -#: db/models/fields/__init__.py:741 +#: db/models/fields/__init__.py:755 msgid "Enter a valid filename." msgstr "正しいファイル名を入力してください。" -#: db/models/fields/__init__.py:883 +#: db/models/fields/__init__.py:904 msgid "This value must be either None, True or False." msgstr "値は、空: None、真: True または偽: False でなければなりません。" @@ -3040,140 +3882,149 @@ msgid_plural "" msgstr[0] "正しい %(self)s IDを入力してください。 %(value)r は無効です。" msgstr[1] "正しい %(self)s IDを入力してください。 %(value)r は無効です。" -#: newforms/fields.py:116 +#: newforms/fields.py:46 +msgid "Enter a valid value." +msgstr "値を正しく入力してください。" + +#: newforms/fields.py:123 #, python-format msgid "Ensure this value has at most %(max)d characters (it has %(length)d)." msgstr "%(max)d 字以下で入力してください( %(length)d 文字入力されました)。" -#: newforms/fields.py:118 +#: newforms/fields.py:124 #, python-format msgid "Ensure this value has at least %(min)d characters (it has %(length)d)." msgstr "%(min)d 字以上で入力してください。( %(length)d 文字入力されました)。" -#: newforms/fields.py:144 newforms/fields.py:167 newforms/fields.py:197 +#: newforms/fields.py:152 newforms/fields.py:181 newforms/fields.py:210 #, python-format msgid "Ensure this value is less than or equal to %s." msgstr "この値は %s 以下でなければなりません。" -#: newforms/fields.py:146 newforms/fields.py:169 newforms/fields.py:199 +#: newforms/fields.py:153 newforms/fields.py:182 newforms/fields.py:211 #, python-format msgid "Ensure this value is greater than or equal to %s." msgstr "この値は %s 以上でなければなりません。" -#: newforms/fields.py:165 newforms/fields.py:192 +#: newforms/fields.py:180 newforms/fields.py:209 msgid "Enter a number." msgstr "整数を入力してください。" -#: newforms/fields.py:201 +#: newforms/fields.py:212 #, python-format msgid "Ensure that there are no more than %s digits in total." msgstr "整数部と少数部を併せて %s 桁までで入力して下さい。" -#: newforms/fields.py:203 +#: newforms/fields.py:213 #, python-format msgid "Ensure that there are no more than %s decimal places." msgstr "少数部は %s 桁までで入力して下さい。" -#: newforms/fields.py:205 +#: newforms/fields.py:214 #, python-format msgid "Ensure that there are no more than %s digits before the decimal point." msgstr "整数部は %s 桁までで入力して下さい。" -#: newforms/fields.py:238 newforms/fields.py:610 +#: newforms/fields.py:262 newforms/fields.py:719 msgid "Enter a valid date." msgstr "日付を正しく入力してください。" -#: newforms/fields.py:265 newforms/fields.py:612 +#: newforms/fields.py:295 newforms/fields.py:720 msgid "Enter a valid time." msgstr "時間を正しく入力してください。" -#: newforms/fields.py:301 +#: newforms/fields.py:334 msgid "Enter a valid date/time." msgstr "日付/時間を正しく入力してください。" -#: newforms/fields.py:314 -msgid "Enter a valid value." -msgstr "値を正しく入力してください。" - -#: newforms/fields.py:378 +#: newforms/fields.py:433 msgid "No file was submitted." msgstr "ファイルが送信されていません。" -#: newforms/fields.py:380 oldforms/__init__.py:688 +#: newforms/fields.py:434 oldforms/__init__.py:689 msgid "The submitted file is empty." msgstr "入力されたファイルは空です。" -#: newforms/fields.py:403 newforms/fields.py:425 +#: newforms/fields.py:492 msgid "Enter a valid URL." msgstr "URLを正しく入力してください。" -#: newforms/fields.py:427 +#: newforms/fields.py:493 msgid "This URL appears to be a broken link." msgstr "このURLはリンクが壊れています。" -#: newforms/fields.py:478 newforms/models.py:180 +#: newforms/fields.py:555 newforms/models.py:317 msgid "Select a valid choice. That choice is not one of the available choices." msgstr "正しく選択してください。選択したものは候補にありません。" -#: newforms/fields.py:494 newforms/fields.py:570 newforms/models.py:197 +#: newforms/fields.py:594 +#, python-format +msgid "Select a valid choice. %(value)s is not one of the available choices." +msgstr "正しく選択してください。 %(value)s は候補にありません。" + +#: newforms/fields.py:595 newforms/fields.py:657 newforms/models.py:377 msgid "Enter a list of values." msgstr "リストを入力してください。" -#: newforms/fields.py:500 newforms/models.py:203 +#: newforms/fields.py:748 +msgid "Enter a valid IPv4 address." +msgstr "有効なIPアドレス (IPv4) を入力してください。" + +#: newforms/models.py:378 #, python-format msgid "Select a valid choice. %s is not one of the available choices." msgstr "正しく選択してください。 %s は候補にありません。" -#: oldforms/__init__.py:408 +#: oldforms/__init__.py:409 #, python-format msgid "Ensure your text is less than %s character." msgid_plural "Ensure your text is less than %s characters." msgstr[0] "%s 字以下で入力してください。" msgstr[1] "%s 字以下で入力してください。" -#: oldforms/__init__.py:413 +#: oldforms/__init__.py:414 msgid "Line breaks are not allowed here." msgstr "改行はできません。" -#: oldforms/__init__.py:511 oldforms/__init__.py:585 oldforms/__init__.py:624 +#: oldforms/__init__.py:512 oldforms/__init__.py:586 oldforms/__init__.py:625 #, python-format msgid "Select a valid choice; '%(data)s' is not in %(choices)s." msgstr "正しく選択してください。; '%(data)s' は %(choices)s にありません。" -#: oldforms/__init__.py:744 +#: oldforms/__init__.py:745 msgid "Enter a whole number between -32,768 and 32,767." msgstr "-32,768 から 32,767 までの整数を入力してください。" -#: oldforms/__init__.py:754 +#: oldforms/__init__.py:755 msgid "Enter a positive number." msgstr "正の数を入力してください。" -#: oldforms/__init__.py:764 +#: oldforms/__init__.py:765 msgid "Enter a whole number between 0 and 32,767." msgstr "0 から 32,767 までの整数を入力してください。" -#: template/defaultfilters.py:532 +#: template/defaultfilters.py:683 msgid "yes,no,maybe" msgstr "はい,いいえ,たぶん" -#: template/defaultfilters.py:561 +#: template/defaultfilters.py:714 #, python-format msgid "%(size)d byte" msgid_plural "%(size)d bytes" msgstr[0] "%(size)d byte" msgstr[1] "%(size)d bytes" -#: template/defaultfilters.py:563 +#: template/defaultfilters.py:716 #, python-format msgid "%.1f KB" msgstr "%.1f KB" -#: template/defaultfilters.py:565 +#: template/defaultfilters.py:718 #, python-format msgid "%.1f MB" msgstr "%.1f MB" -#: template/defaultfilters.py:566 +#: template/defaultfilters.py:719 #, python-format msgid "%.1f GB" msgstr "%.1f GB" @@ -3386,69 +4237,73 @@ msgstr "12月" msgid "or" msgstr "または" -#: utils/timesince.py:12 +#: utils/timesince.py:21 msgid "year" msgid_plural "years" msgstr[0] "年" msgstr[1] "年" -#: utils/timesince.py:13 +#: utils/timesince.py:22 msgid "month" msgid_plural "months" msgstr[0] "月" msgstr[1] "月" -#: utils/timesince.py:14 +#: utils/timesince.py:23 msgid "week" msgid_plural "weeks" msgstr[0] "週" msgstr[1] "週" -#: utils/timesince.py:15 +#: utils/timesince.py:24 msgid "day" msgid_plural "days" msgstr[0] "日" msgstr[1] "日" -#: utils/timesince.py:16 +#: utils/timesince.py:25 msgid "hour" msgid_plural "hours" msgstr[0] "時" msgstr[1] "時" -#: utils/timesince.py:17 +#: utils/timesince.py:26 msgid "minute" msgid_plural "minutes" msgstr[0] "分" msgstr[1] "分" -#: utils/timesince.py:39 +#: utils/timesince.py:46 +msgid "minutes" +msgstr "分" + +#: utils/timesince.py:51 #, python-format msgid "%(number)d %(type)s" msgstr "%(number)d %(type)s" -#: utils/timesince.py:45 +#: utils/timesince.py:57 #, python-format msgid ", %(number)d %(type)s" msgstr ", %(number)d %(type)s" -#: utils/translation/trans_real.py:391 +#: utils/translation/trans_real.py:399 msgid "DATE_FORMAT" msgstr "Y/m/d" -#: utils/translation/trans_real.py:392 +#: utils/translation/trans_real.py:400 msgid "DATETIME_FORMAT" msgstr "Y/m/d H:i" -#: utils/translation/trans_real.py:393 +#: utils/translation/trans_real.py:401 msgid "TIME_FORMAT" msgstr "H:i" -#: utils/translation/trans_real.py:409 +#: utils/translation/trans_real.py:417 msgid "YEAR_MONTH_FORMAT" msgstr "Y/m/d" -#: utils/translation/trans_real.py:410 +#: utils/translation/trans_real.py:418 msgid "MONTH_DAY_FORMAT" msgstr "m/d" diff --git a/django/conf/locale/tr/LC_MESSAGES/django.mo b/django/conf/locale/tr/LC_MESSAGES/django.mo index 87ac4d05b152b06b7731c0b5dec3412eec1d667a..b6bff7439e86e0a7ea1d99fa13df1df9e2cd8459 100644 GIT binary patch delta 11823 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 delta 10487 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, 2007. (Slight modifications) -# Bahadır Kandemir , 2006. msgid "" msgstr "" "Project-Id-Version: django\n" "Report-Msgid-Bugs-To: \n" "POT-Creation-Date: 2007-03-14 01:38+0200\n" -"PO-Revision-Date: 2007-03-14 02:06+0200\n" -"Last-Translator: Bahadır Kandemir \n" +"PO-Revision-Date: 2007-12-30 12:15+0200\n" +"Last-Translator: Can Burak Çilingir \n" "Language-Team: Turkish \n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" @@ -157,7 +153,7 @@ msgstr "Bengali Dili" #: conf/global_settings.py:41 msgid "Catalan" -msgstr "" +msgstr "Katalanca" #: conf/global_settings.py:42 msgid "Czech" @@ -225,15 +221,15 @@ msgstr "Japonca" #: conf/global_settings.py:58 msgid "Kannada" -msgstr "" +msgstr "Kannada Dili" #: conf/global_settings.py:59 msgid "Latvian" -msgstr "" +msgstr "Leton Dili" #: conf/global_settings.py:60 msgid "Macedonian" -msgstr "" +msgstr "Makedonca" #: conf/global_settings.py:61 msgid "Dutch" @@ -245,7 +241,7 @@ msgstr "Norveç Dili" #: conf/global_settings.py:63 msgid "Polish" -msgstr "" +msgstr "Lehçe" #: conf/global_settings.py:64 msgid "Brazilian" @@ -281,7 +277,7 @@ msgstr "Tamilce" #: conf/global_settings.py:72 msgid "Telugu" -msgstr "" +msgstr "Telugu Dili" #: conf/global_settings.py:73 msgid "Turkish" @@ -615,7 +611,7 @@ msgstr "Geçerli bir seçimde bulunun; seçiminiz mevcut değerlerden birisi de #: newforms/models.py:181 newforms/fields.py:378 newforms/fields.py:454 msgid "Enter a list of values." -msgstr "" +msgstr "Değer listesi giriniz." #: newforms/models.py:187 newforms/fields.py:387 #, python-format @@ -648,11 +644,11 @@ msgstr "Geçerli bir tarih girin." #: newforms/fields.py:190 msgid "Enter a valid time." -msgstr "" +msgstr "Geçerli bir zaman giriniz." #: newforms/fields.py:226 msgid "Enter a valid date/time." -msgstr "" +msgstr "Geçerli bir tarih/zaman giriniz." #: newforms/fields.py:240 msgid "Enter a valid value." @@ -668,40 +664,40 @@ msgstr "Bu URL kırık bir link gibi duruyor." #: contrib/humanize/templatetags/humanize.py:17 msgid "th" -msgstr "" +msgstr "." #: contrib/humanize/templatetags/humanize.py:17 msgid "st" -msgstr "" +msgstr "." #: contrib/humanize/templatetags/humanize.py:17 msgid "nd" -msgstr "" +msgstr "." #: contrib/humanize/templatetags/humanize.py:17 msgid "rd" -msgstr "" +msgstr "." #: contrib/humanize/templatetags/humanize.py:47 #, python-format msgid "%(value).1f million" msgid_plural "%(value).1f million" -msgstr[0] "" -msgstr[1] "" +msgstr[0] "%(value).1f milyon" +msgstr[1] "%(value).1f milyon" #: contrib/humanize/templatetags/humanize.py:50 #, python-format msgid "%(value).1f billion" msgid_plural "%(value).1f billion" -msgstr[0] "" -msgstr[1] "" +msgstr[0] "%(value).1f milyar" +msgstr[1] "%(value).1f milyar" #: contrib/humanize/templatetags/humanize.py:53 #, python-format msgid "%(value).1f trillion" msgid_plural "%(value).1f trillion" -msgstr[0] "" -msgstr[1] "" +msgstr[0] "%(value).1f trilyon" +msgstr[1] "%(value).1f trilyon" #: contrib/humanize/templatetags/humanize.py:68 msgid "one" @@ -2029,6 +2025,8 @@ msgid "" "Use '[algo]$[salt]$[hexdigest]' or use the change " "password form." msgstr "" +"'[algo]$[salt]$[hexdigest]' yazın ya da parola\n" +"değiştir formunu kullanın." #: contrib/auth/models.py:95 msgid "staff status" @@ -2152,7 +2150,7 @@ msgstr "Posta kodu girin. Posta kodunun iki kısmı arasında bir boşluk bırak #: contrib/localflavor/usa/forms.py:17 msgid "Enter a zip code in the format XXXXX or XXXXX-XXXX." -msgstr "" +msgstr "XXXXX ya da XXXXX-XXXX biçiminde bir posta kodu yazın." #: contrib/sessions/models.py:51 msgid "session key" @@ -2411,27 +2409,27 @@ msgstr[1] "dakika" #: utils/dateformat.py:40 msgid "p.m." -msgstr "" +msgstr "ö.s." #: utils/dateformat.py:41 msgid "a.m." -msgstr "" +msgstr "ö.ö." #: utils/dateformat.py:46 msgid "PM" -msgstr "" +msgstr "ÖS" #: utils/dateformat.py:47 msgid "AM" -msgstr "" +msgstr "ÖÖ" #: utils/dateformat.py:95 msgid "midnight" -msgstr "" +msgstr "gece yarısı" #: utils/dateformat.py:97 msgid "noon" -msgstr "" +msgstr "öğlen" #: utils/translation/trans_real.py:362 msgid "DATE_FORMAT" diff --git a/django/conf/locale/tr/LC_MESSAGES/djangojs.po b/django/conf/locale/tr/LC_MESSAGES/djangojs.po index 037fcd337d..2ce42ff1b6 100644 --- a/django/conf/locale/tr/LC_MESSAGES/djangojs.po +++ b/django/conf/locale/tr/LC_MESSAGES/djangojs.po @@ -1,7 +1,4 @@ -# Django 0.95 -# Copyright (C) 2006 Django # This file is distributed under the same license as the Django package. -# Bahadır Kandemir , 2006. # msgid "" msgstr "" diff --git a/django/contrib/admin/media/js/urlify.js b/django/contrib/admin/media/js/urlify.js index 63e626d884..d8f2549e27 100644 --- a/django/contrib/admin/media/js/urlify.js +++ b/django/contrib/admin/media/js/urlify.js @@ -5,7 +5,7 @@ var LATIN_MAP = { 'O', 'Ő': 'O', 'Ø': 'O', 'Ù': 'U', 'Ú': 'U', 'Û': 'U', 'Ü': 'U', 'Ű': 'U', 'Ý': 'Y', 'Þ': 'TH', 'ß': 'ss', 'à':'a', 'á':'a', 'â': 'a', 'ã': 'a', 'ä': 'a', 'å': 'a', 'æ': 'ae', 'ç': 'c', 'è': 'e', 'é': 'e', 'ê': 'e', 'ë': 'e', - 'ì': 'i', 'í': 'i', 'î': 'i', 'ï': 'i', 'ð': 'o', 'ñ': 'n', 'ò': 'o', 'ó': + 'ì': 'i', 'í': 'i', 'î': 'i', 'ï': 'i', 'ð': 'd', 'ñ': 'n', 'ò': 'o', 'ó': 'o', 'ô': 'o', 'õ': 'o', 'ö': 'o', 'ő': 'o', 'ø': 'o', 'ù': 'u', 'ú': 'u', 'û': 'u', 'ü': 'u', 'ű': 'u', 'ý': 'y', 'þ': 'th', 'ÿ': 'y' } diff --git a/django/contrib/auth/create_superuser.py b/django/contrib/auth/create_superuser.py index 2e93c35b93..7b6cefd268 100644 --- a/django/contrib/auth/create_superuser.py +++ b/django/contrib/auth/create_superuser.py @@ -10,6 +10,9 @@ from django.contrib.auth.models import User import getpass import os import sys +import re + +RE_VALID_USERNAME = re.compile('\w+$') def createsuperuser(username=None, email=None, password=None): """ @@ -43,7 +46,7 @@ def createsuperuser(username=None, email=None, password=None): username = raw_input(input_msg + ': ') if default_username and username == '': username = default_username - if not username.isalnum(): + if not RE_VALID_USERNAME.match(username): sys.stderr.write("Error: That username is invalid. Use only letters, digits and underscores.\n") username = None continue diff --git a/django/contrib/localflavor/ca/forms.py b/django/contrib/localflavor/ca/forms.py index daeff58acf..b40dba8335 100644 --- a/django/contrib/localflavor/ca/forms.py +++ b/django/contrib/localflavor/ca/forms.py @@ -80,12 +80,12 @@ class CASocialInsuranceNumberField(Field): Checks the following rules to determine whether the number is valid: - * Conforms to the XXX-XXX-XXXX format. + * Conforms to the XXX-XXX-XXX format. * Passes the check digit process "Luhn Algorithm" See: http://en.wikipedia.org/wiki/Social_Insurance_Number """ default_error_messages = { - 'invalid': ugettext('Enter a valid Canadian Social Insurance number in XXX-XXX-XXXX format.'), + 'invalid': ugettext('Enter a valid Canadian Social Insurance number in XXX-XXX-XXX format.'), } def clean(self, value): diff --git a/django/contrib/localflavor/it/it_province.py b/django/contrib/localflavor/it/it_province.py index db041d719e..8737335efc 100644 --- a/django/contrib/localflavor/it/it_province.py +++ b/django/contrib/localflavor/it/it_province.py @@ -85,7 +85,7 @@ PROVINCE_CHOICES = ( ('RC', 'Reggio Calabria'), ('RE', 'Reggio Emilia'), ('RI', 'Rieti'), - ('RN', 'Rimini') + ('RN', 'Rimini'), ('RM', 'Roma'), ('RO', 'Rovigo'), ('SA', 'Salerno'), diff --git a/django/contrib/sessions/backends/db.py b/django/contrib/sessions/backends/db.py index d1496d63bf..0f79d9ee1a 100644 --- a/django/contrib/sessions/backends/db.py +++ b/django/contrib/sessions/backends/db.py @@ -10,40 +10,42 @@ class SessionStore(SessionBase): """ def __init__(self, session_key=None): super(SessionStore, self).__init__(session_key) - + def load(self): try: s = Session.objects.get( - session_key = self.session_key, + session_key = self.session_key, expire_date__gt=datetime.datetime.now() ) return self.decode(s.session_data) except (Session.DoesNotExist, SuspiciousOperation): - + # Create a new session_key for extra security. self.session_key = self._get_new_session_key() self._session_cache = {} # Save immediately to minimize collision self.save() + # Ensure the user is notified via a new cookie. + self.modified = True return {} - + def exists(self, session_key): try: Session.objects.get(session_key=session_key) except Session.DoesNotExist: return False return True - + def save(self): Session.objects.create( session_key = self.session_key, session_data = self.encode(self._session), expire_date = datetime.datetime.now() + datetime.timedelta(seconds=settings.SESSION_COOKIE_AGE) ) - + def delete(self, session_key): try: Session.objects.get(session_key=session_key).delete() except Session.DoesNotExist: - pass \ No newline at end of file + pass diff --git a/django/contrib/sessions/backends/file.py b/django/contrib/sessions/backends/file.py index a8c3c69b10..cd3e3d9c75 100644 --- a/django/contrib/sessions/backends/file.py +++ b/django/contrib/sessions/backends/file.py @@ -10,31 +10,31 @@ class SessionStore(SessionBase): """ def __init__(self, session_key=None): self.storage_path = getattr(settings, "SESSION_FILE_PATH", tempfile.gettempdir()) - + # Make sure the storage path is valid. if not os.path.isdir(self.storage_path): raise ImproperlyConfigured("The session storage path %r doesn't exist. "\ "Please set your SESSION_FILE_PATH setting "\ "to an existing directory in which Django "\ "can store session data." % self.storage_path) - - self.file_prefix = settings.SESSION_COOKIE_NAME + + self.file_prefix = settings.SESSION_COOKIE_NAME super(SessionStore, self).__init__(session_key) - + def _key_to_file(self, session_key=None): """ Get the file associated with this session key. """ if session_key is None: session_key = self.session_key - + # Make sure we're not vulnerable to directory traversal. Session keys # should always be md5s, so they should never contain directory components. if os.path.sep in session_key: raise SuspiciousOperation("Invalid characters (directory components) in session key") - + return os.path.join(self.storage_path, self.file_prefix + session_key) - + def load(self): session_data = {} try: @@ -46,6 +46,8 @@ class SessionStore(SessionBase): self._session_key = self._get_new_session_key() self._session_cache = {} self.save() + # Ensure the user is notified via a new cookie. + self.modified = True finally: session_file.close() except(IOError): @@ -66,12 +68,12 @@ class SessionStore(SessionBase): if os.path.exists(self._key_to_file(session_key)): return True return False - + def delete(self, session_key): try: os.unlink(self._key_to_file(session_key)) except OSError: pass - + def clean(self): pass diff --git a/django/core/mail.py b/django/core/mail.py index 77ab8007e6..153dcb6e63 100644 --- a/django/core/mail.py +++ b/django/core/mail.py @@ -67,42 +67,32 @@ def make_msgid(idstring=None): class BadHeaderError(ValueError): pass +def forbid_multi_line_headers(name, val): + "Forbids multi-line headers, to prevent header injection." + if '\n' in val or '\r' in val: + raise BadHeaderError("Header values can't contain newlines (got %r for header %r)" % (val, name)) + try: + val = force_unicode(val).encode('ascii') + except UnicodeEncodeError: + if name.lower() in ('to', 'from', 'cc'): + result = [] + for item in val.split(', '): + nm, addr = parseaddr(item) + nm = str(Header(nm, settings.DEFAULT_CHARSET)) + result.append(formataddr((nm, str(addr)))) + val = ', '.join(result) + else: + val = Header(force_unicode(val), settings.DEFAULT_CHARSET) + return name, val + class SafeMIMEText(MIMEText): def __setitem__(self, name, val): - "Forbids multi-line headers, to prevent header injection." - if '\n' in val or '\r' in val: - raise BadHeaderError, "Header values can't contain newlines (got %r for header %r)" % (val, name) - try: - val = force_unicode(val).encode('ascii') - except UnicodeEncodeError: - if name.lower() in ('to', 'from', 'cc'): - result = [] - for item in val.split(', '): - nm, addr = parseaddr(item) - nm = str(Header(nm, settings.DEFAULT_CHARSET)) - result.append(formataddr((nm, str(addr)))) - val = ', '.join(result) - else: - val = Header(force_unicode(val), settings.DEFAULT_CHARSET) + name, val = forbid_multi_line_headers(name, val) MIMEText.__setitem__(self, name, val) class SafeMIMEMultipart(MIMEMultipart): def __setitem__(self, name, val): - "Forbids multi-line headers, to prevent header injection." - if '\n' in val or '\r' in val: - raise BadHeaderError, "Header values can't contain newlines (got %r for header %r)" % (val, name) - try: - val = force_unicode(val).encode('ascii') - except UnicodeEncodeError: - if name.lower() in ('to', 'from', 'cc'): - result = [] - for item in val.split(', '): - nm, addr = parseaddr(item) - nm = str(Header(nm, settings.DEFAULT_CHARSET)) - result.append(formataddr((nm, str(addr)))) - val = ', '.join(result) - else: - val = Header(force_unicode(val), settings.DEFAULT_CHARSET) + name, val = forbid_multi_line_headers(name, val) MIMEMultipart.__setitem__(self, name, val) class SMTPConnection(object): @@ -209,8 +199,14 @@ class EmailMessage(object): bytestrings). The SafeMIMEText class will handle any necessary encoding conversions. """ - self.to = to or [] - self.bcc = bcc or [] + if to: + self.to = list(to) + else: + self.to = [] + if bcc: + self.bcc = list(bcc) + else: + self.bcc = [] self.from_email = from_email or settings.DEFAULT_FROM_EMAIL self.subject = subject self.body = body diff --git a/django/core/management/sql.py b/django/core/management/sql.py index 767a2dbbfb..15bffce26b 100644 --- a/django/core/management/sql.py +++ b/django/core/management/sql.py @@ -293,7 +293,7 @@ def sql_model_create(model, style, known_models=set()): style.SQL_KEYWORD('NULL')) for field_constraints in opts.unique_together: table_output.append(style.SQL_KEYWORD('UNIQUE') + ' (%s)' % \ - ", ".join([qn(style.SQL_FIELD(opts.get_field(f).column)) for f in field_constraints])) + ", ".join([style.SQL_FIELD(qn(opts.get_field(f).column)) for f in field_constraints])) full_statement = [style.SQL_KEYWORD('CREATE TABLE') + ' ' + style.SQL_TABLE(qn(opts.db_table)) + ' ('] for i, line in enumerate(table_output): # Combine and add commas. diff --git a/django/db/backends/oracle/base.py b/django/db/backends/oracle/base.py index cd830413fc..70f5688d1a 100644 --- a/django/db/backends/oracle/base.py +++ b/django/db/backends/oracle/base.py @@ -413,6 +413,7 @@ class DatabaseWrapper(BaseDatabaseWrapper): return self.connection is not None def _cursor(self, settings): + cursor = None if not self._valid_connection(): if len(settings.DATABASE_HOST.strip()) == 0: settings.DATABASE_HOST = 'localhost' @@ -422,16 +423,25 @@ class DatabaseWrapper(BaseDatabaseWrapper): else: conn_string = "%s/%s@%s" % (settings.DATABASE_USER, settings.DATABASE_PASSWORD, settings.DATABASE_NAME) self.connection = Database.connect(conn_string, **self.options) + cursor = FormatStylePlaceholderCursor(self.connection) + # Set oracle date to ansi date format. This only needs to execute + # once when we create a new connection. + cursor.execute("ALTER SESSION SET NLS_DATE_FORMAT = 'YYYY-MM-DD' " + "NLS_TIMESTAMP_FORMAT = 'YYYY-MM-DD HH24:MI:SS.FF'") try: self.oracle_version = int(self.connection.version.split('.')[0]) except ValueError: pass - cursor = FormatStylePlaceholderCursor(self.connection) + try: + self.connection.stmtcachesize = 20 + except: + # Django docs specify cx_Oracle version 4.3.1 or higher, but + # stmtcachesize is available only in 4.3.2 and up. + pass + if not cursor: + cursor = FormatStylePlaceholderCursor(self.connection) # Default arraysize of 1 is highly sub-optimal. cursor.arraysize = 100 - # Set oracle date to ansi date format. - cursor.execute("ALTER SESSION SET NLS_DATE_FORMAT = 'YYYY-MM-DD'") - cursor.execute("ALTER SESSION SET NLS_TIMESTAMP_FORMAT = 'YYYY-MM-DD HH24:MI:SS.FF'") return cursor class FormatStylePlaceholderCursor(Database.Cursor): @@ -506,7 +516,10 @@ class FormatStylePlaceholderCursor(Database.Cursor): return Database.Cursor.executemany(self, query, new_param_list) def fetchone(self): - return to_unicode(Database.Cursor.fetchone(self)) + row = Database.Cursor.fetchone(self) + if row is None: + return row + return tuple([to_unicode(e) for e in row]) def fetchmany(self, size=None): if size is None: diff --git a/django/db/models/fields/__init__.py b/django/db/models/fields/__init__.py index 0ea4eae6e7..a41217fef0 100644 --- a/django/db/models/fields/__init__.py +++ b/django/db/models/fields/__init__.py @@ -795,13 +795,17 @@ class FileField(Field): return os.path.normpath(f) def save_form_data(self, instance, data): - if data: + from django.newforms.fields import UploadedFile + if data and isinstance(data, UploadedFile): getattr(instance, "save_%s_file" % self.name)(data.filename, data.content, save=False) def formfield(self, **kwargs): defaults = {'form_class': forms.FileField} # If a file has been provided previously, then the form doesn't require # that a new file is provided this time. + # The code to mark the form field as not required is used by + # form_for_instance, but can probably be removed once form_for_instance + # is gone. ModelForm uses a different method to check for an existing file. if 'initial' in kwargs: defaults['required'] = False defaults.update(kwargs) diff --git a/django/newforms/fields.py b/django/newforms/fields.py index 3b8f4195b0..0761b8f2af 100644 --- a/django/newforms/fields.py +++ b/django/newforms/fields.py @@ -437,10 +437,12 @@ class FileField(Field): def __init__(self, *args, **kwargs): super(FileField, self).__init__(*args, **kwargs) - def clean(self, data): - super(FileField, self).clean(data) + def clean(self, data, initial=None): + super(FileField, self).clean(initial or data) if not self.required and data in EMPTY_VALUES: return None + elif not data and initial: + return initial try: f = UploadedFile(data['filename'], data['content']) except TypeError: @@ -456,12 +458,12 @@ class ImageField(FileField): 'invalid_image': _(u"Upload a valid image. The file you uploaded was either not an image or a corrupted image."), } - def clean(self, data): + def clean(self, data, initial=None): """ Checks that the file-upload field data contains a valid image (GIF, JPG, PNG, possibly others -- whatever the Python Imaging Library supports). """ - f = super(ImageField, self).clean(data) + f = super(ImageField, self).clean(data, initial) if f is None: return None from PIL import Image diff --git a/django/newforms/forms.py b/django/newforms/forms.py index 88d5f8b3df..9e1b576710 100644 --- a/django/newforms/forms.py +++ b/django/newforms/forms.py @@ -9,7 +9,7 @@ from django.utils.html import escape from django.utils.encoding import StrAndUnicode, smart_unicode, force_unicode from django.utils.safestring import mark_safe -from fields import Field +from fields import Field, FileField from widgets import Media, media_property, TextInput, Textarea from util import flatatt, ErrorDict, ErrorList, ValidationError @@ -205,7 +205,11 @@ class BaseForm(StrAndUnicode): # widgets split data over several HTML fields. value = field.widget.value_from_datadict(self.data, self.files, self.add_prefix(name)) try: - value = field.clean(value) + if isinstance(field, FileField): + initial = self.initial.get(name, field.initial) + value = field.clean(value, initial) + else: + value = field.clean(value) self.cleaned_data[name] = value if hasattr(self, 'clean_%s' % name): value = getattr(self, 'clean_%s' % name)() diff --git a/django/template/__init__.py b/django/template/__init__.py index 9b1868cfce..750c48988d 100644 --- a/django/template/__init__.py +++ b/django/template/__init__.py @@ -154,15 +154,12 @@ class StringOrigin(Origin): class Template(object): def __init__(self, template_string, origin=None, name=''): - "Compilation stage" try: template_string = smart_unicode(template_string) except UnicodeDecodeError: raise TemplateEncodingError("Templates can only be constructed from unicode or UTF-8 strings.") - if settings.TEMPLATE_DEBUG and origin == None: + if settings.TEMPLATE_DEBUG and origin is None: origin = StringOrigin(template_string) - # Could do some crazy stack-frame stuff to record where this string - # came from... self.nodelist = compile_string(template_string, origin) self.name = name @@ -177,13 +174,18 @@ class Template(object): def compile_string(template_string, origin): "Compiles template_string into NodeList ready for rendering" - lexer = lexer_factory(template_string, origin) - parser = parser_factory(lexer.tokenize()) + if settings.TEMPLATE_DEBUG: + from debug import DebugLexer, DebugParser + lexer_class, parser_class = DebugLexer, DebugParser + else: + lexer_class, parser_class = Lexer, Parser + lexer = lexer_class(template_string, origin) + parser = parser_class(lexer.tokenize()) return parser.parse() class Token(object): def __init__(self, token_type, contents): - "The token_type must be TOKEN_TEXT, TOKEN_VAR, TOKEN_BLOCK or TOKEN_COMMENT" + # token_type must be TOKEN_TEXT, TOKEN_VAR, TOKEN_BLOCK or TOKEN_COMMENT. self.token_type, self.contents = token_type, contents def __str__(self): @@ -200,7 +202,7 @@ class Lexer(object): self.origin = origin def tokenize(self): - "Return a list of tokens from a given template_string" + "Return a list of tokens from a given template_string." in_tag = False result = [] for bit in tag_re.split(self.template_string): @@ -226,30 +228,6 @@ class Lexer(object): token = Token(TOKEN_TEXT, token_string) return token -class DebugLexer(Lexer): - def __init__(self, template_string, origin): - super(DebugLexer, self).__init__(template_string, origin) - - def tokenize(self): - "Return a list of tokens from a given template_string" - result, upto = [], 0 - for match in tag_re.finditer(self.template_string): - start, end = match.span() - if start > upto: - result.append(self.create_token(self.template_string[upto:start], (upto, start), False)) - upto = start - result.append(self.create_token(self.template_string[start:end], (start, end), True)) - upto = end - last_bit = self.template_string[upto:] - if last_bit: - result.append(self.create_token(last_bit, (upto, upto + len(last_bit)), False)) - return result - - def create_token(self, token_string, source, in_tag): - token = super(DebugLexer, self).create_token(token_string, in_tag) - token.source = self.origin, source - return token - class Parser(object): def __init__(self, tokens): self.tokens = tokens @@ -319,17 +297,17 @@ class Parser(object): def exit_command(self): pass - def error(self, token, msg ): + def error(self, token, msg): return TemplateSyntaxError(msg) def empty_variable(self, token): - raise self.error( token, "Empty variable tag") + raise self.error(token, "Empty variable tag") def empty_block_tag(self, token): - raise self.error( token, "Empty block tag") + raise self.error(token, "Empty block tag") def invalid_block_tag(self, token, command): - raise self.error( token, "Invalid block tag: '%s'" % command) + raise self.error(token, "Invalid block tag: '%s'" % command) def unclosed_block_tag(self, parse_until): raise self.error(None, "Unclosed tags: %s " % ', '.join(parse_until)) @@ -358,57 +336,7 @@ class Parser(object): if filter_name in self.filters: return self.filters[filter_name] else: - raise TemplateSyntaxError, "Invalid filter: '%s'" % filter_name - -class DebugParser(Parser): - def __init__(self, lexer): - super(DebugParser, self).__init__(lexer) - self.command_stack = [] - - def enter_command(self, command, token): - self.command_stack.append( (command, token.source) ) - - def exit_command(self): - self.command_stack.pop() - - def error(self, token, msg): - return self.source_error(token.source, msg) - - def source_error(self, source,msg): - e = TemplateSyntaxError(msg) - e.source = source - return e - - def create_nodelist(self): - return DebugNodeList() - - def create_variable_node(self, contents): - return DebugVariableNode(contents) - - def extend_nodelist(self, nodelist, node, token): - node.source = token.source - super(DebugParser, self).extend_nodelist(nodelist, node, token) - - def unclosed_block_tag(self, parse_until): - command, source = self.command_stack.pop() - msg = "Unclosed tag '%s'. Looking for one of: %s " % (command, ', '.join(parse_until)) - raise self.source_error( source, msg) - - def compile_function_error(self, token, e): - if not hasattr(e, 'source'): - e.source = token.source - -def lexer_factory(*args, **kwargs): - if settings.TEMPLATE_DEBUG: - return DebugLexer(*args, **kwargs) - else: - return Lexer(*args, **kwargs) - -def parser_factory(*args, **kwargs): - if settings.TEMPLATE_DEBUG: - return DebugParser(*args, **kwargs) - else: - return Parser(*args, **kwargs) + raise TemplateSyntaxError("Invalid filter: '%s'" % filter_name) class TokenParser(object): """ @@ -426,7 +354,7 @@ class TokenParser(object): def top(self): "Overload this method to do the actual parsing and return the result." - raise NotImplemented + raise NotImplementedError() def more(self): "Returns True if there is more stuff in the tag." @@ -435,7 +363,7 @@ class TokenParser(object): def back(self): "Undoes the last microparser. Use this for lookahead and backtracking." if not len(self.backout): - raise TemplateSyntaxError, "back called without some previous parsing" + raise TemplateSyntaxError("back called without some previous parsing") self.pointer = self.backout.pop() def tag(self): @@ -443,7 +371,7 @@ class TokenParser(object): subject = self.subject i = self.pointer if i >= len(subject): - raise TemplateSyntaxError, "expected another tag, found end of string: %s" % subject + raise TemplateSyntaxError("expected another tag, found end of string: %s" % subject) p = i while i < len(subject) and subject[i] not in (' ', '\t'): i += 1 @@ -459,14 +387,14 @@ class TokenParser(object): subject = self.subject i = self.pointer if i >= len(subject): - raise TemplateSyntaxError, "Searching for value. Expected another value but found end of string: %s" % subject + raise TemplateSyntaxError("Searching for value. Expected another value but found end of string: %s" % subject) if subject[i] in ('"', "'"): p = i i += 1 while i < len(subject) and subject[i] != subject[p]: i += 1 if i >= len(subject): - raise TemplateSyntaxError, "Searching for value. Unexpected end of string in column %d: %s" % (i, subject) + raise TemplateSyntaxError("Searching for value. Unexpected end of string in column %d: %s" % (i, subject)) i += 1 res = subject[p:i] while i < len(subject) and subject[i] in (' ', '\t'): @@ -483,7 +411,7 @@ class TokenParser(object): while i < len(subject) and subject[i] != c: i += 1 if i >= len(subject): - raise TemplateSyntaxError, "Searching for value. Unexpected end of string in column %d: %s" % (i, subject) + raise TemplateSyntaxError("Searching for value. Unexpected end of string in column %d: %s" % (i, subject)) i += 1 s = subject[p:i] while i < len(subject) and subject[i] in (' ', '\t'): @@ -542,8 +470,8 @@ class FilterExpression(object): for match in matches: start = match.start() if upto != start: - raise TemplateSyntaxError, "Could not parse some characters: %s|%s|%s" % \ - (token[:upto], token[upto:start], token[start:]) + raise TemplateSyntaxError("Could not parse some characters: %s|%s|%s" % \ + (token[:upto], token[upto:start], token[start:])) if var == None: var, constant, i18n_constant = match.group("var", "constant", "i18n_constant") if i18n_constant: @@ -552,9 +480,9 @@ class FilterExpression(object): var = '"%s"' % constant.replace(r'\"', '"') upto = match.end() if var == None: - raise TemplateSyntaxError, "Could not find variable at start of %s" % token + raise TemplateSyntaxError("Could not find variable at start of %s" % token) elif var.find(VARIABLE_ATTRIBUTE_SEPARATOR + '_') > -1 or var[0] == '_': - raise TemplateSyntaxError, "Variables and attributes may not begin with underscores: '%s'" % var + raise TemplateSyntaxError("Variables and attributes may not begin with underscores: '%s'" % var) else: filter_name = match.group("filter_name") args = [] @@ -570,7 +498,7 @@ class FilterExpression(object): filters.append( (filter_func,args)) upto = match.end() if upto != len(token): - raise TemplateSyntaxError, "Could not parse the remainder: '%s' from '%s'" % (token[upto:], token) + raise TemplateSyntaxError("Could not parse the remainder: '%s' from '%s'" % (token[upto:], token)) self.filters = filters self.var = Variable(var) @@ -627,7 +555,7 @@ class FilterExpression(object): provided.pop(0) except IndexError: # Not enough - raise TemplateSyntaxError, "%s requires %d arguments, %d provided" % (name, len(nondefs), plen) + raise TemplateSyntaxError("%s requires %d arguments, %d provided" % (name, len(nondefs), plen)) # Defaults can be overridden. defaults = defaults and list(defaults) or [] @@ -636,7 +564,7 @@ class FilterExpression(object): defaults.pop(0) except IndexError: # Too many. - raise TemplateSyntaxError, "%s requires %d arguments, %d provided" % (name, len(nondefs), plen) + raise TemplateSyntaxError("%s requires %d arguments, %d provided" % (name, len(nondefs), plen)) return True args_check = staticmethod(args_check) @@ -816,22 +744,6 @@ class NodeList(list): def render_node(self, node, context): return node.render(context) -class DebugNodeList(NodeList): - def render_node(self, node, context): - try: - result = node.render(context) - except TemplateSyntaxError, e: - if not hasattr(e, 'source'): - e.source = node.source - raise - except Exception, e: - from sys import exc_info - wrapped = TemplateSyntaxError('Caught an exception while rendering: %s' % e) - wrapped.source = node.source - wrapped.exc_info = exc_info() - raise wrapped - return result - class TextNode(Node): def __init__(self, s): self.s = s @@ -861,21 +773,6 @@ class VariableNode(Node): else: return force_unicode(output) -class DebugVariableNode(VariableNode): - def render(self, context): - try: - output = force_unicode(self.filter_expression.resolve(context)) - except TemplateSyntaxError, e: - if not hasattr(e, 'source'): - e.source = self.source - raise - except UnicodeDecodeError: - return '' - if (context.autoescape and not isinstance(output, SafeData)) or isinstance(output, EscapeData): - return escape(output) - else: - return output - def generic_tag_compiler(params, defaults, name, node_class, parser, token): "Returns a template.Node subclass." bits = token.split_contents()[1:] @@ -887,7 +784,7 @@ def generic_tag_compiler(params, defaults, name, node_class, parser, token): message = "%s takes %s arguments" % (name, bmin) else: message = "%s takes between %s and %s arguments" % (name, bmin, bmax) - raise TemplateSyntaxError, message + raise TemplateSyntaxError(message) return node_class(bits) class Library(object): @@ -913,7 +810,7 @@ class Library(object): self.tags[name] = compile_function return compile_function else: - raise InvalidTemplateLibrary, "Unsupported arguments to Library.tag: (%r, %r)", (name, compile_function) + raise InvalidTemplateLibrary("Unsupported arguments to Library.tag: (%r, %r)", (name, compile_function)) def tag_function(self,func): self.tags[getattr(func, "_decorated_function", func).__name__] = func @@ -937,7 +834,7 @@ class Library(object): self.filters[name] = filter_func return filter_func else: - raise InvalidTemplateLibrary, "Unsupported arguments to Library.filter: (%r, %r)", (name, filter_func) + raise InvalidTemplateLibrary("Unsupported arguments to Library.filter: (%r, %r)", (name, filter_func)) def filter_function(self, func): self.filters[getattr(func, "_decorated_function", func).__name__] = func @@ -966,7 +863,7 @@ class Library(object): if params[0] == 'context': params = params[1:] else: - raise TemplateSyntaxError, "Any tag function decorated with takes_context=True must have a first argument of 'context'" + raise TemplateSyntaxError("Any tag function decorated with takes_context=True must have a first argument of 'context'") class InclusionNode(Node): def __init__(self, vars_to_resolve): @@ -1003,12 +900,12 @@ def get_library(module_name): try: mod = __import__(module_name, {}, {}, ['']) except ImportError, e: - raise InvalidTemplateLibrary, "Could not load template library from %s, %s" % (module_name, e) + raise InvalidTemplateLibrary("Could not load template library from %s, %s" % (module_name, e)) try: lib = mod.register libraries[module_name] = lib except AttributeError: - raise InvalidTemplateLibrary, "Template library %s does not have a variable named 'register'" % module_name + raise InvalidTemplateLibrary("Template library %s does not have a variable named 'register'" % module_name) return lib def add_to_builtins(module_name): diff --git a/django/template/context.py b/django/template/context.py index 0e41a26618..6ba53f340b 100644 --- a/django/template/context.py +++ b/django/template/context.py @@ -9,7 +9,6 @@ class ContextPopException(Exception): class Context(object): "A stack container for variable context" - def __init__(self, dict_=None, autoescape=True): dict_ = dict_ or {} self.dicts = [dict_] @@ -78,11 +77,11 @@ def get_standard_processors(): try: mod = __import__(module, {}, {}, [attr]) except ImportError, e: - raise ImproperlyConfigured, 'Error importing request processor module %s: "%s"' % (module, e) + raise ImproperlyConfigured('Error importing request processor module %s: "%s"' % (module, e)) try: func = getattr(mod, attr) except AttributeError: - raise ImproperlyConfigured, 'Module "%s" does not define a "%s" callable request processor' % (module, attr) + raise ImproperlyConfigured('Module "%s" does not define a "%s" callable request processor' % (module, attr)) processors.append(func) _standard_context_processors = tuple(processors) return _standard_context_processors @@ -102,4 +101,3 @@ class RequestContext(Context): processors = tuple(processors) for processor in get_standard_processors() + processors: self.update(processor(request)) - diff --git a/django/template/debug.py b/django/template/debug.py new file mode 100644 index 0000000000..008059c28f --- /dev/null +++ b/django/template/debug.py @@ -0,0 +1,97 @@ +from django.template import Lexer, Parser, tag_re, NodeList, VariableNode, TemplateSyntaxError +from django.utils.encoding import force_unicode +from django.utils.html import escape +from django.utils.safestring import SafeData, EscapeData + +class DebugLexer(Lexer): + def __init__(self, template_string, origin): + super(DebugLexer, self).__init__(template_string, origin) + + def tokenize(self): + "Return a list of tokens from a given template_string" + result, upto = [], 0 + for match in tag_re.finditer(self.template_string): + start, end = match.span() + if start > upto: + result.append(self.create_token(self.template_string[upto:start], (upto, start), False)) + upto = start + result.append(self.create_token(self.template_string[start:end], (start, end), True)) + upto = end + last_bit = self.template_string[upto:] + if last_bit: + result.append(self.create_token(last_bit, (upto, upto + len(last_bit)), False)) + return result + + def create_token(self, token_string, source, in_tag): + token = super(DebugLexer, self).create_token(token_string, in_tag) + token.source = self.origin, source + return token + +class DebugParser(Parser): + def __init__(self, lexer): + super(DebugParser, self).__init__(lexer) + self.command_stack = [] + + def enter_command(self, command, token): + self.command_stack.append( (command, token.source) ) + + def exit_command(self): + self.command_stack.pop() + + def error(self, token, msg): + return self.source_error(token.source, msg) + + def source_error(self, source,msg): + e = TemplateSyntaxError(msg) + e.source = source + return e + + def create_nodelist(self): + return DebugNodeList() + + def create_variable_node(self, contents): + return DebugVariableNode(contents) + + def extend_nodelist(self, nodelist, node, token): + node.source = token.source + super(DebugParser, self).extend_nodelist(nodelist, node, token) + + def unclosed_block_tag(self, parse_until): + command, source = self.command_stack.pop() + msg = "Unclosed tag '%s'. Looking for one of: %s " % (command, ', '.join(parse_until)) + raise self.source_error(source, msg) + + def compile_function_error(self, token, e): + if not hasattr(e, 'source'): + e.source = token.source + +class DebugNodeList(NodeList): + def render_node(self, node, context): + try: + result = node.render(context) + except TemplateSyntaxError, e: + if not hasattr(e, 'source'): + e.source = node.source + raise + except Exception, e: + from sys import exc_info + wrapped = TemplateSyntaxError('Caught an exception while rendering: %s' % e) + wrapped.source = node.source + wrapped.exc_info = exc_info() + raise wrapped + return result + +class DebugVariableNode(VariableNode): + def render(self, context): + try: + output = force_unicode(self.filter_expression.resolve(context)) + except TemplateSyntaxError, e: + if not hasattr(e, 'source'): + e.source = self.source + raise + except UnicodeDecodeError: + return '' + if (context.autoescape and not isinstance(output, SafeData)) or isinstance(output, EscapeData): + return escape(output) + else: + return output diff --git a/django/template/defaultfilters.py b/django/template/defaultfilters.py index 5cee0ab244..ddd48146f2 100644 --- a/django/template/defaultfilters.py +++ b/django/template/defaultfilters.py @@ -433,7 +433,7 @@ def first(value): return value[0] except IndexError: return u'' -first.is_safe = True +first.is_safe = False def join(value, arg): """Joins a list with a string, like Python's ``str.join(list)``.""" @@ -449,6 +449,14 @@ def join(value, arg): return data join.is_safe = True +def last(value): + "Returns the last item in a list" + try: + return value[-1] + except IndexError: + return u'' +last.is_safe = True + def length(value): """Returns the length of the value - useful for lists.""" return len(value) @@ -800,6 +808,7 @@ register.filter(force_escape) register.filter(get_digit) register.filter(iriencode) register.filter(join) +register.filter(last) register.filter(length) register.filter(length_is) register.filter(linebreaks) diff --git a/django/template/defaulttags.py b/django/template/defaulttags.py index 813e5dbed6..e5a8e6620b 100644 --- a/django/template/defaulttags.py +++ b/django/template/defaulttags.py @@ -84,19 +84,16 @@ class FirstOfNode(Node): return u'' class ForNode(Node): - def __init__(self, loopvars, sequence, reversed, nodelist_loop): + def __init__(self, loopvars, sequence, is_reversed, nodelist_loop): self.loopvars, self.sequence = loopvars, sequence - self.reversed = reversed + self.is_reversed = is_reversed self.nodelist_loop = nodelist_loop def __repr__(self): - if self.reversed: - reversed = ' reversed' - else: - reversed = '' + reversed_text = self.is_reversed and ' reversed' or '' return "" % \ (', '.join(self.loopvars), self.sequence, len(self.nodelist_loop), - reversed) + reversed_text) def __iter__(self): for node in self.nodelist_loop: @@ -125,22 +122,23 @@ class ForNode(Node): if not hasattr(values, '__len__'): values = list(values) len_values = len(values) - if self.reversed: + if self.is_reversed: values = reversed(values) unpack = len(self.loopvars) > 1 + # Create a forloop value in the context. We'll update counters on each + # iteration just below. + loop_dict = context['forloop'] = {'parentloop': parentloop} for i, item in enumerate(values): - context['forloop'] = { - # Shortcuts for current loop iteration number. - 'counter0': i, - 'counter': i+1, - # Reverse counter iteration numbers. - 'revcounter': len_values - i, - 'revcounter0': len_values - i - 1, - # Boolean values designating first and last times through loop. - 'first': (i == 0), - 'last': (i == len_values - 1), - 'parentloop': parentloop, - } + # Shortcuts for current loop iteration number. + loop_dict['counter0'] = i + loop_dict['counter'] = i+1 + # Reverse counter iteration numbers. + loop_dict['revcounter'] = len_values - i + loop_dict['revcounter0'] = len_values - i - 1 + # Boolean values designating first and last times through loop. + loop_dict['first'] = (i == 0) + loop_dict['last'] = (i == len_values - 1) + if unpack: # If there are multiple loop variables, unpack the item into # them. @@ -619,8 +617,8 @@ def do_for(parser, token): raise TemplateSyntaxError("'for' statements should have at least four" " words: %s" % token.contents) - reversed = bits[-1] == 'reversed' - in_index = reversed and -3 or -2 + is_reversed = bits[-1] == 'reversed' + in_index = is_reversed and -3 or -2 if bits[in_index] != 'in': raise TemplateSyntaxError("'for' statements should use the format" " 'for x in y': %s" % token.contents) @@ -634,7 +632,7 @@ def do_for(parser, token): sequence = parser.compile_filter(bits[in_index+1]) nodelist_loop = parser.parse(('endfor',)) parser.delete_first_token() - return ForNode(loopvars, sequence, reversed, nodelist_loop) + return ForNode(loopvars, sequence, is_reversed, nodelist_loop) do_for = register.tag("for", do_for) def do_ifequal(parser, token, negate): diff --git a/django/views/debug.py b/django/views/debug.py index 18a396d3a6..e3be2a7dcd 100644 --- a/django/views/debug.py +++ b/django/views/debug.py @@ -507,7 +507,7 @@ Exception Type: {{ exception_type|escape }} at {{ request.path|escape }} Exception Value: {{ exception_value|escape }}

        - + diff --git a/docs/design_philosophies.txt b/docs/design_philosophies.txt index 72aa8ade95..aae0fa836e 100644 --- a/docs/design_philosophies.txt +++ b/docs/design_philosophies.txt @@ -57,7 +57,7 @@ worth using only if it creates a huge convenience unattainable in other ways, and it isn't implemented in a way that confuses developers who are trying to learn how to use the feature. -.. _`core Python principle`: http://www.python.org/doc/Humor.html#zen +.. _`core Python principle`: http://www.python.org/dev/peps/pep-0020/ Consistency ----------- diff --git a/docs/distributions.txt b/docs/distributions.txt index d65e047276..48c30c7068 100644 --- a/docs/distributions.txt +++ b/docs/distributions.txt @@ -18,9 +18,9 @@ repository. FreeBSD ======= -The `FreeBSD`_ ports system offers both Django 0.96 (`py-django`_) and a more -recent, but not current, version based on Django's trunk (`py-django-devel`_). -These are installed in the normal FreeBSD way; for Django 0.96, for example, type: +The `FreeBSD`_ ports system offers both Django 0.96 (`py-django`_) and a more +recent, but not current, version based on Django's trunk (`py-django-devel`_). +These are installed in the normal FreeBSD way; for Django 0.96, for example, type: ``cd /usr/ports/www/py-django && sudo make install clean``. .. _FreeBSD: http://www.freebsd.org/ @@ -60,22 +60,22 @@ point to find their preferred version. Gentoo ------ -A Django build is available for `Gentoo Linux`_, and is based on Django 0.96. -The `current Gentoo build`_ can be installed by typing ``emerge django``. +A Django package is available for `Gentoo Linux`_, and is based on Django 0.96.1. +The `current Gentoo package`_ can be installed by typing ``emerge django``. .. _Gentoo Linux: http://www.gentoo.org/ -.. _current Gentoo build: http://packages.gentoo.org/packages/?category=dev-python;name=django +.. _current Gentoo package: http://packages.gentoo.org/package/django Ubuntu ------ The Debian ``python-django`` package is also available for `Ubuntu Linux`_, in -the "universe" repository for Ubuntu 7.04 ("Feisty Fawn"). The `current Ubuntu -package`_ is also based on Django 0.95.1 and can be installed in the same -fashion as for Debian. +the "universe" repository for Ubuntu 7.10 ("Gutsy Gibbon"). The `current Ubuntu +package`_ is based on Django 0.96.1 and can be installed in the same fashion as +for Debian. .. _Ubuntu Linux: http://www.ubuntu.com/ -.. _current Ubuntu package: http://packages.ubuntu.com/feisty/python/python-django +.. _current Ubuntu package: http://packages.ubuntu.com/gutsy/python/python-django Mac OS X diff --git a/docs/django-admin.txt b/docs/django-admin.txt index fe43f9586c..21821ab2e9 100644 --- a/docs/django-admin.txt +++ b/docs/django-admin.txt @@ -716,8 +716,8 @@ in Python package syntax, e.g. ``mysite.settings``. If this isn't provided, ``django-admin.py`` will use the ``DJANGO_SETTINGS_MODULE`` environment variable. -Note that this option is unnecessary in ``manage.py``, because it takes care of -setting ``DJANGO_SETTINGS_MODULE`` for you. +Note that this option is unnecessary in ``manage.py``, because it uses +``settings.py`` from the current project by default. Extra niceties ============== diff --git a/docs/localflavor.txt b/docs/localflavor.txt index 154922ff45..75ec95382e 100644 --- a/docs/localflavor.txt +++ b/docs/localflavor.txt @@ -100,6 +100,8 @@ any code you'd like to contribute. One thing we ask is that you please use Unicode objects (``u'mystring'``) for strings, rather than setting the encoding in the file. See any of the existing flavors for examples. +.. _create a ticket: http://code.djangoproject.com/simpleticket + Argentina (``django.contrib.localflavor.ar``) ============================================= @@ -181,7 +183,7 @@ CASocialInsuranceNumberField ---------------------------- A form field that validates input as a Canadian Social Insurance Number (SIN). -A valid number must have the format XXX-XXX-XXXX and pass a `Luhn mod-10 +A valid number must have the format XXX-XXX-XXX and pass a `Luhn mod-10 checksum`_. .. _Luhn mod-10 checksum: http://en.wikipedia.org/wiki/Luhn_algorithm diff --git a/docs/middleware.txt b/docs/middleware.txt index f2cf18dbdf..a2853e2965 100644 --- a/docs/middleware.txt +++ b/docs/middleware.txt @@ -154,6 +154,17 @@ every incoming ``HttpRequest`` object. See `Authentication in Web requests`_. .. _Authentication in Web requests: ../authentication/#authentication-in-web-requests +django.contrib.csrf.middleware.CsrfMiddleware +--------------------------------------------- + +**New in Django development version** + +Adds protection against Cross Site Request Forgeries by adding hidden form +fields to POST forms and checking requests for the correct value. See the +`Cross Site Request Forgery protection documentation`_. + +.. _`Cross Site Request Forgery protection documentation`: ../csrf/ + django.middleware.transaction.TransactionMiddleware --------------------------------------------------- diff --git a/docs/shortcuts.txt b/docs/shortcuts.txt index f94babfecb..19eac4be6d 100644 --- a/docs/shortcuts.txt +++ b/docs/shortcuts.txt @@ -94,7 +94,7 @@ This example is equivalent to:: def my_view(request): try: - my_object = MyModel.object.get(pk=1) + my_object = MyModel.objects.get(pk=1) except MyModel.DoesNotExist: raise Http404 @@ -136,7 +136,7 @@ This example is equivalent to:: from django.http import Http404 def my_view(request): - my_objects = MyModels.object.filter(published=True) + my_objects = MyModel.objects.filter(published=True) if not my_objects: raise Http404 diff --git a/docs/sites.txt b/docs/sites.txt index 5896afcf41..9516b43995 100644 --- a/docs/sites.txt +++ b/docs/sites.txt @@ -97,7 +97,7 @@ Hooking into the current site from views ---------------------------------------- On a lower level, you can use the sites framework in your Django views to do -particular things based on what site in which the view is being called. +particular things based on the site in which the view is being called. For example:: from django.conf import settings @@ -330,13 +330,13 @@ Here's how Django uses the sites framework: retrieving flatpages to display. * In the `syndication framework`_, the templates for ``title`` and - ``description`` automatically have access to a variable ``{{{ site }}}``, + ``description`` automatically have access to a variable ``{{ site }}``, which is the ``Site`` object representing the current site. Also, the hook for providing item URLs will use the ``domain`` from the current ``Site`` object if you don't specify a fully-qualified domain. * In the `authentication framework`_, the ``django.contrib.auth.views.login`` - view passes the current ``Site`` name to the template as ``{{{ site_name }}}``. + view passes the current ``Site`` name to the template as ``{{ site_name }}``. * The shortcut view (``django.views.defaults.shortcut``) uses the domain of the current ``Site`` object when calculating an object's URL. diff --git a/docs/syndication_feeds.txt b/docs/syndication_feeds.txt index b3edf4c008..ebd6af26f8 100644 --- a/docs/syndication_feeds.txt +++ b/docs/syndication_feeds.txt @@ -201,7 +201,7 @@ the feed. An example makes this clear. Here's the code for these beat-specific feeds:: - from django.contrib.syndication import FeedDoesNotExist + from django.contrib.syndication.feeds import FeedDoesNotExist class BeatFeed(Feed): def get_object(self, bits): diff --git a/docs/templates.txt b/docs/templates.txt index ffda321512..c351c951c9 100644 --- a/docs/templates.txt +++ b/docs/templates.txt @@ -953,7 +953,7 @@ Available format strings: U Not implemented. w Day of the week, digits without ``'0'`` (Sunday) to ``'6'`` (Saturday) leading zeros. - W ISO-8601 week number of year, with ``1``, ``23`` + W ISO-8601 week number of year, with ``1``, ``53`` weeks starting on Monday. y Year, 2 digits. ``'99'`` Y Year, 4 digits. ``'1999'`` @@ -1230,7 +1230,7 @@ addslashes Adds slashes before quotes. Useful for escaping strings in CSV, for example. **New in Django development version**: for escaping data in JavaScript strings, -use the `escapejs` filter instead. +use the `escapejs`_ filter instead. capfirst ~~~~~~~~ @@ -1403,6 +1403,11 @@ join Joins a list with a string, like Python's ``str.join(list)``. +last +~~~~ + +Returns the last item in a list. + length ~~~~~~ diff --git a/docs/templates_python.txt b/docs/templates_python.txt index 014a853a41..f98cfa3249 100644 --- a/docs/templates_python.txt +++ b/docs/templates_python.txt @@ -823,11 +823,11 @@ Template filter code falls into one of two situations: can operate in templates where auto-escaping is either on or off in order to make things easier for your template authors. - In order for you filter to know the current auto-escaping state, set the - ``needs_autoescape`` attribute to ``True`` on your function. (If you + In order for your filter to know the current auto-escaping state, set + the ``needs_autoescape`` attribute to ``True`` on your function. (If you don't specify this attribute, it defaults to ``False``). This attribute tells Django that your filter function wants to be passed an extra - keyword argument, called ``autoescape``, that is ``True`` is + keyword argument, called ``autoescape``, that is ``True`` if auto-escaping is in effect and ``False`` otherwise. For example, let's write a filter that emphasizes the first character of diff --git a/tests/modeltests/m2o_recursive/models.py b/tests/modeltests/m2o_recursive/models.py index c38200a25b..f58f7fe0f5 100644 --- a/tests/modeltests/m2o_recursive/models.py +++ b/tests/modeltests/m2o_recursive/models.py @@ -14,7 +14,7 @@ from django.db import models class Category(models.Model): name = models.CharField(max_length=20) - parent = models.ForeignKey('self', null=True, related_name='child_set') + parent = models.ForeignKey('self', blank=True, null=True, related_name='child_set') def __unicode__(self): return self.name diff --git a/tests/modeltests/model_forms/models.py b/tests/modeltests/model_forms/models.py index 17c3b3551c..ff3f20e197 100644 --- a/tests/modeltests/model_forms/models.py +++ b/tests/modeltests/model_forms/models.py @@ -7,6 +7,9 @@ examples are probably a poor fit for the ModelForm syntax. In other words, most of these tests should be rewritten. """ +import os +import tempfile + from django.db import models ARTICLE_STATUS = ( @@ -55,6 +58,13 @@ class PhoneNumber(models.Model): def __unicode__(self): return self.phone +class TextFile(models.Model): + description = models.CharField(max_length=20) + file = models.FileField(upload_to=tempfile.gettempdir()) + + def __unicode__(self): + return self.description + __test__ = {'API_TESTS': """ >>> from django import newforms as forms >>> from django.newforms.models import ModelForm @@ -701,4 +711,75 @@ ValidationError: [u'Select a valid choice. 4 is not one of the available choices True >>> f.cleaned_data {'phone': u'312-555-1212', 'description': u'Assistance'} + +# FileField ################################################################### + +>>> class TextFileForm(ModelForm): +... class Meta: +... model = TextFile + +Test conditions when files is either not given or empty. + +>>> f = TextFileForm(data={'description': u'Assistance'}) +>>> f.is_valid() +False +>>> f = TextFileForm(data={'description': u'Assistance'}, files={}) +>>> f.is_valid() +False + +Upload a file and ensure it all works as expected. + +>>> f = TextFileForm(data={'description': u'Assistance'}, files={'file': {'filename': 'test1.txt', 'content': 'hello world'}}) +>>> f.is_valid() +True +>>> type(f.cleaned_data['file']) + +>>> instance = f.save() +>>> instance.file +u'.../test1.txt' + +Edit an instance that already has the file defined in the model. This will not +save the file again, but leave it exactly as it is. + +>>> f = TextFileForm(data={'description': u'Assistance'}, instance=instance) +>>> f.is_valid() +True +>>> f.cleaned_data['file'] +u'.../test1.txt' +>>> instance = f.save() +>>> instance.file +u'.../test1.txt' + +Delete the current file since this is not done by Django. + +>>> os.unlink(instance.get_file_filename()) + +Override the file by uploading a new one. + +>>> f = TextFileForm(data={'description': u'Assistance'}, files={'file': {'filename': 'test2.txt', 'content': 'hello world'}}, instance=instance) +>>> f.is_valid() +True +>>> instance = f.save() +>>> instance.file +u'.../test2.txt' + +>>> instance.delete() + +Test the non-required FileField + +>>> f = TextFileForm(data={'description': u'Assistance'}) +>>> f.fields['file'].required = False +>>> f.is_valid() +True +>>> instance = f.save() +>>> instance.file +'' + +>>> f = TextFileForm(data={'description': u'Assistance'}, files={'file': {'filename': 'test3.txt', 'content': 'hello world'}}, instance=instance) +>>> f.is_valid() +True +>>> instance = f.save() +>>> instance.file +u'.../test3.txt' +>>> instance.delete() """} diff --git a/tests/regressiontests/backends/models.py b/tests/regressiontests/backends/models.py index db16d2c198..a041ab6b12 100644 --- a/tests/regressiontests/backends/models.py +++ b/tests/regressiontests/backends/models.py @@ -8,6 +8,13 @@ class Square(models.Model): def __unicode__(self): return "%s ** 2 == %s" % (self.root, self.square) +class Person(models.Model): + first_name = models.CharField(max_length=20) + last_name = models.CharField(max_length=20) + + def __unicode__(self): + return u'%s %s' % (self.first_name, self.last_name) + if connection.features.uses_case_insensitive_names: t_convert = lambda x: x.upper() else: @@ -32,4 +39,25 @@ __test__ = {'API_TESTS': """ >>> Square.objects.count() 11 +#6254: fetchone, fetchmany, fetchall return strings as unicode objects +>>> Person(first_name="John", last_name="Doe").save() +>>> Person(first_name="Jane", last_name="Doe").save() +>>> Person(first_name="Mary", last_name="Agnelline").save() +>>> Person(first_name="Peter", last_name="Parker").save() +>>> Person(first_name="Clark", last_name="Kent").save() +>>> opts2 = Person._meta +>>> f3, f4 = opts2.get_field('first_name'), opts2.get_field('last_name') +>>> query2 = ('SELECT %s, %s FROM %s ORDER BY %s' +... % (qn(f3.column), qn(f4.column), t_convert(opts2.db_table), +... qn(f3.column))) +>>> cursor.execute(query2) and None or None +>>> cursor.fetchone() +(u'Clark', u'Kent') + +>>> list(cursor.fetchmany(2)) +[(u'Jane', u'Doe'), (u'John', u'Doe')] + +>>> list(cursor.fetchall()) +[(u'Mary', u'Agnelline'), (u'Peter', u'Parker')] + """} diff --git a/tests/regressiontests/forms/fields.py b/tests/regressiontests/forms/fields.py index cff5db6fca..9216210e09 100644 --- a/tests/regressiontests/forms/fields.py +++ b/tests/regressiontests/forms/fields.py @@ -749,32 +749,59 @@ Traceback (most recent call last): ... ValidationError: [u'This field is required.'] +>>> f.clean('', '') +Traceback (most recent call last): +... +ValidationError: [u'This field is required.'] + +>>> f.clean('', 'files/test1.pdf') +'files/test1.pdf' + >>> f.clean(None) Traceback (most recent call last): ... ValidationError: [u'This field is required.'] +>>> f.clean(None, '') +Traceback (most recent call last): +... +ValidationError: [u'This field is required.'] + +>>> f.clean(None, 'files/test2.pdf') +'files/test2.pdf' + >>> f.clean({}) Traceback (most recent call last): ... ValidationError: [u'No file was submitted.'] +>>> f.clean({}, '') +Traceback (most recent call last): +... +ValidationError: [u'No file was submitted.'] + +>>> f.clean({}, 'files/test3.pdf') +'files/test3.pdf' + >>> f.clean('some content that is not a file') Traceback (most recent call last): ... ValidationError: [u'No file was submitted. Check the encoding type on the form.'] ->>> f.clean({'filename': 'name', 'content':None}) +>>> f.clean({'filename': 'name', 'content': None}) Traceback (most recent call last): ... ValidationError: [u'The submitted file is empty.'] ->>> f.clean({'filename': 'name', 'content':''}) +>>> f.clean({'filename': 'name', 'content': ''}) Traceback (most recent call last): ... ValidationError: [u'The submitted file is empty.'] ->>> type(f.clean({'filename': 'name', 'content':'Some File Content'})) +>>> type(f.clean({'filename': 'name', 'content': 'Some File Content'})) + + +>>> type(f.clean({'filename': 'name', 'content': 'Some File Content'}, 'files/test4.pdf')) # URLField ################################################################## diff --git a/tests/regressiontests/forms/localflavor/ca.py b/tests/regressiontests/forms/localflavor/ca.py index a13a6de65f..48171b0558 100644 --- a/tests/regressiontests/forms/localflavor/ca.py +++ b/tests/regressiontests/forms/localflavor/ca.py @@ -213,13 +213,13 @@ u'046-454-286' >>> f.clean('046-454-287') Traceback (most recent call last): ... -ValidationError: [u'Enter a valid Canadian Social Insurance number in XXX-XXX-XXXX format.'] +ValidationError: [u'Enter a valid Canadian Social Insurance number in XXX-XXX-XXX format.'] >>> f.clean('046 454 286') Traceback (most recent call last): ... -ValidationError: [u'Enter a valid Canadian Social Insurance number in XXX-XXX-XXXX format.'] +ValidationError: [u'Enter a valid Canadian Social Insurance number in XXX-XXX-XXX format.'] >>> f.clean('046-44-286') Traceback (most recent call last): ... -ValidationError: [u'Enter a valid Canadian Social Insurance number in XXX-XXX-XXXX format.'] +ValidationError: [u'Enter a valid Canadian Social Insurance number in XXX-XXX-XXX format.'] """ diff --git a/tests/regressiontests/middleware/models.py b/tests/regressiontests/middleware/models.py new file mode 100644 index 0000000000..71abcc5198 --- /dev/null +++ b/tests/regressiontests/middleware/models.py @@ -0,0 +1 @@ +# models.py file for tests to run. diff --git a/tests/regressiontests/middleware/tests.py b/tests/regressiontests/middleware/tests.py index cb5c29abe1..5e7fd320d6 100644 --- a/tests/regressiontests/middleware/tests.py +++ b/tests/regressiontests/middleware/tests.py @@ -1,8 +1,6 @@ # -*- coding: utf-8 -*- -import unittest - -from django.test import TestCase +from django.test import TestCase from django.http import HttpRequest from django.middleware.common import CommonMiddleware from django.conf import settings @@ -19,7 +17,7 @@ class CommonMiddlewareTest(TestCase): def test_append_slash_have_slash(self): """ - tests that urls with slashes go unmolested + Tests that URLs with slashes go unmolested. """ settings.APPEND_SLASH = True request = self._get_request('slash/') @@ -27,7 +25,7 @@ class CommonMiddlewareTest(TestCase): def test_append_slash_slashless_resource(self): """ - tests that matches to explicit slashless urls go unmolested + Tests that matches to explicit slashless URLs go unmolested. """ settings.APPEND_SLASH = True request = self._get_request('noslash') @@ -35,7 +33,7 @@ class CommonMiddlewareTest(TestCase): def test_append_slash_slashless_unknown(self): """ - tests that APPEND_SLASH doesn't redirect to unknown resources + Tests that APPEND_SLASH doesn't redirect to unknown resources. """ settings.APPEND_SLASH = True request = self._get_request('unknown') @@ -43,7 +41,7 @@ class CommonMiddlewareTest(TestCase): def test_append_slash_redirect(self): """ - tests that APPEND_SLASH redirects slashless urls to a valid pattern + Tests that APPEND_SLASH redirects slashless URLs to a valid pattern. """ settings.APPEND_SLASH = True request = self._get_request('slash') @@ -53,9 +51,9 @@ class CommonMiddlewareTest(TestCase): def test_append_slash_no_redirect_on_POST_in_DEBUG(self): """ - tests that while in debug mode, an exception is raised with a warning - when a failed attempt is made to POST to an url which would normally be - redirected to a slashed version + Tests that while in debug mode, an exception is raised with a warning + when a failed attempt is made to POST to an URL which would normally be + redirected to a slashed version. """ settings.APPEND_SLASH = True settings.DEBUG = True @@ -68,11 +66,12 @@ class CommonMiddlewareTest(TestCase): try: CommonMiddleware().process_request(request) except RuntimeError, e: - self.assertTrue('end in a slash' in str(e)) + self.failUnless('end in a slash' in str(e)) + settings.DEBUG = False def test_append_slash_disabled(self): """ - tests disabling append slash functionality + Tests disabling append slash functionality. """ settings.APPEND_SLASH = False request = self._get_request('slash') @@ -80,8 +79,8 @@ class CommonMiddlewareTest(TestCase): def test_append_slash_quoted(self): """ - tests that urls which require quoting are redirected to their slash - version ok + Tests that URLs which require quoting are redirected to their slash + version ok. """ settings.APPEND_SLASH = True request = self._get_request('needsquoting#') @@ -90,4 +89,3 @@ class CommonMiddlewareTest(TestCase): self.assertEquals( r['Location'], 'http://testserver/middleware/needsquoting%23/') - diff --git a/tests/regressiontests/templates/filters.py b/tests/regressiontests/templates/filters.py index f38b2cdef1..fd73dc57ba 100644 --- a/tests/regressiontests/templates/filters.py +++ b/tests/regressiontests/templates/filters.py @@ -179,6 +179,9 @@ def get_filter_tests(): 'filter-first01': ('{{ a|first }} {{ b|first }}', {"a": ["a&b", "x"], "b": [mark_safe("a&b"), "x"]}, "a&b a&b"), 'filter-first02': ('{% autoescape off %}{{ a|first }} {{ b|first }}{% endautoescape %}', {"a": ["a&b", "x"], "b": [mark_safe("a&b"), "x"]}, "a&b a&b"), + 'filter-last01': ('{{ a|last }} {{ b|last }}', {"a": ["x", "a&b"], "b": ["x", mark_safe("a&b")]}, "a&b a&b"), + 'filter-last02': ('{% autoescape off %}{{ a|last }} {{ b|last }}{% endautoescape %}', {"a": ["x", "a&b"], "b": ["x", mark_safe("a&b")]}, "a&b a&b"), + 'filter-random01': ('{{ a|random }} {{ b|random }}', {"a": ["a&b", "a&b"], "b": [mark_safe("a&b"), mark_safe("a&b")]}, "a&b a&b"), 'filter-random02': ('{% autoescape off %}{{ a|random }} {{ b|random }}{% endautoescape %}', {"a": ["a&b", "a&b"], "b": [mark_safe("a&b"), mark_safe("a&b")]}, "a&b a&b"), diff --git a/tests/regressiontests/templates/tests.py b/tests/regressiontests/templates/tests.py index 846023afc9..9e9033f975 100644 --- a/tests/regressiontests/templates/tests.py +++ b/tests/regressiontests/templates/tests.py @@ -441,6 +441,8 @@ class Templates(unittest.TestCase): 'for-tag-vars02': ("{% for val in values %}{{ forloop.counter0 }}{% endfor %}", {"values": [6, 6, 6]}, "012"), 'for-tag-vars03': ("{% for val in values %}{{ forloop.revcounter }}{% endfor %}", {"values": [6, 6, 6]}, "321"), 'for-tag-vars04': ("{% for val in values %}{{ forloop.revcounter0 }}{% endfor %}", {"values": [6, 6, 6]}, "210"), + 'for-tag-vars05': ("{% for val in values %}{% if forloop.first %}f{% else %}x{% endif %}{% endfor %}", {"values": [6, 6, 6]}, "fxx"), + 'for-tag-vars06': ("{% for val in values %}{% if forloop.last %}l{% else %}x{% endif %}{% endfor %}", {"values": [6, 6, 6]}, "xxl"), 'for-tag-unpack01': ("{% for key,value in items %}{{ key }}:{{ value }}/{% endfor %}", {"items": (('one', 1), ('two', 2))}, "one:1/two:2/"), 'for-tag-unpack03': ("{% for key, value in items %}{{ key }}:{{ value }}/{% endfor %}", {"items": (('one', 1), ('two', 2))}, "one:1/two:2/"), 'for-tag-unpack04': ("{% for key , value in items %}{{ key }}:{{ value }}/{% endfor %}", {"items": (('one', 1), ('two', 2))}, "one:1/two:2/"),