From 748e1bdf42a17da7ede351f997018762c681457b Mon Sep 17 00:00:00 2001 From: Malcolm Tredinnick Date: Fri, 8 Feb 2008 12:23:34 +0000 Subject: [PATCH] queryset-refactor: Merged from trunk up to [7098] (because I need the last commit on this branch). git-svn-id: http://code.djangoproject.com/svn/django/branches/queryset-refactor@7099 bcc190cf-cafb-0310-a4f2-bffc1f526a37 --- django/conf/global_settings.py | 2 +- django/conf/locale/cy/LC_MESSAGES/django.mo | Bin 22852 -> 22765 bytes django/conf/locale/cy/LC_MESSAGES/django.po | 1 + django/conf/locale/kn/LC_MESSAGES/django.mo | Bin 57878 -> 56746 bytes django/conf/locale/kn/LC_MESSAGES/django.po | 3 + django/conf/locale/pl/LC_MESSAGES/django.mo | Bin 50899 -> 51612 bytes django/conf/locale/pl/LC_MESSAGES/django.po | 847 +++++++++++++++----- django/conf/locale/pt/LC_MESSAGES/django.mo | Bin 37681 -> 36791 bytes django/conf/locale/pt/LC_MESSAGES/django.po | 3 + django/db/models/base.py | 69 +- django/utils/translation/trans_real.py | 21 +- tests/regressiontests/i18n/misc.py | 45 ++ 12 files changed, 767 insertions(+), 224 deletions(-) diff --git a/django/conf/global_settings.py b/django/conf/global_settings.py index 187eb0645e..d722fecd23 100644 --- a/django/conf/global_settings.py +++ b/django/conf/global_settings.py @@ -47,7 +47,7 @@ LANGUAGES = ( ('el', gettext_noop('Greek')), ('en', gettext_noop('English')), ('es', gettext_noop('Spanish')), - ('es_AR', gettext_noop('Argentinean Spanish')), + ('es-ar', gettext_noop('Argentinean Spanish')), ('fa', gettext_noop('Persian')), ('fi', gettext_noop('Finnish')), ('fr', gettext_noop('French')), diff --git a/django/conf/locale/cy/LC_MESSAGES/django.mo b/django/conf/locale/cy/LC_MESSAGES/django.mo index 2c2f0751731c59dd9bcd7541d35aef201e18cbe8..7d5bf1dda86e9ed79ce6df62085479d2e04d6ea4 100644 GIT binary patch delta 6516 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 t>0_s5O?RDBXOygXr%C+QKNDxAME~`u>sK diff --git a/django/conf/locale/cy/LC_MESSAGES/django.po b/django/conf/locale/cy/LC_MESSAGES/django.po index a0561e9dbf..281c1af5ee 100644 --- a/django/conf/locale/cy/LC_MESSAGES/django.po +++ b/django/conf/locale/cy/LC_MESSAGES/django.po @@ -153,6 +153,7 @@ msgstr "Sgorau Carma" #: contrib/comments/models.py:242 #, python-format +#, fuzzy msgid "%(score)d rating by %(user)s" msgstr "%(score)d" diff --git a/django/conf/locale/kn/LC_MESSAGES/django.mo b/django/conf/locale/kn/LC_MESSAGES/django.mo index 51e9ab5fbc2aea2af6d204b21f00a9b5c144009a..9dcde15267a493b54140cbf4f38a2aa51a85af41 100644 GIT binary patch delta 9551 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 aZ{@7b1ybks^9e}ZHRg85)NL0=1pgoW=F_ME delta 10326 zcma*s2Xs}%zQ^$$6G%b}1VS$-fiy}IdJ%*mp&6QV1Vac12qXlO(7{81AV@$YbSWym zL!uOEqEhS%A|MLKi=w=XauIoW#qz$tGsAj!t#{vBZ!iD(%zyUmJ+o)e-sc?LdDMU9 zyZ)YQp#du#w&Q+|QxgNqIZmI)9Orfo)jCc>q~k1SUt%KcBpn^k@I<+910_-Scp~eHkQN^v5w=9Wv~pEN7dKDAgqVM z*a+3GrOh8l4JZlKE)~n;SS*1vQ0K|RS@iELpiq{IlJy;@B343;JO%@BDC&Sztb}7Q z5NDwVmXEb@8P>xC7>r+_j`Q05dkiJNYYk}NI3e`!RH2{~Mq_D=$6S0IH6!~`SMnZK z!1Ksma=t}%cn?cqRpwV$SQkSu7E5Dm)P*IX1~eFT{BZPWYO-vD*{G2(N1bQ`Y6do= z2CxHlU=iv>r%)Z7!@c-9_Qtu5=u|n5#&U6H?My~pKmlsTH^edj)hXY%;b&4{GfkM$Pa? zs2RMZ9UA#H?2k85_p&X$=nA^vWE_sZ1FY9j9eii=pOB~4xsRH;Uv2%L*nzx6Gjn`r zRDV6N6MFhn&^=y@8reqF0Cw2?b?icZ0zc{G0-m({KSQ1W zip{T~27c4jdz?EI5~=tF`(le0=71Ma_xeTDl^?(|co^03Y1BYJ!W_Je(U{!QJny+k zm6MO0+Bt@rnV(Vbi(j#(p8ww|uuz?9+$i6aqdFXp>R>c#wPvHHcsA-v=i=kI5-a0* z)Z)8^noH3M;|D{pG^wiu}AKaqku=!Q`^5P1Nc=aAdy>_K(#jjjI`b)x7t zW}peEyd|pR4mR(F<;e%3Zc#c`$7!f`%h6Mf!X^qD>2cKaeAapaHL&Zbss9n5z~68% zw&wEdU?C2~Vyud#+w#80dbk3UFdwgC9;UW4FRmNyn12?$6U13{#gF409E;E6kC=v& z+M5Af!6fpVs4HsN!K{V0s4MD(8bDvvjAURcPC_lpOQ`x=s5SI+2al=vjSAf(|3veg z2BBuA7HURXqGsqxtcX33+w7!b1g=FbuH&e7@1Q#P2y5U))C}H5t(`wn1F7KYXhvQg zdr}dLYA_Ym(IV7h+=x2yR@98_M`qKh^rYkL!#=1E{W_VC+hEjjQKbM9~a4W`PN#^@0Y>s*}=2?qSi}D7l-ESC_~S9EW$3(+Uq@Ch7v}bTV2>dBk=;3()0gM3WKN!V7Q#a8HQTT+fW_-g}So%Wb--S2V=-5pk{6j za#7A@)Ge&j!`!Oz7(_l5127Lu;CyQVR-}Jt8HGUHYTb(wVhs}87#rH>+{D6rO*YmPWs)jb*VUc{QsGHGpWWfDLTk&YFnjs82#&P(Rd+4||&VSB2YFj7Lq)WYm?+ zMRoiV>Tz6;>ga&=4OF`$sN>F}+JBDf(2F5>$JYOaI=*yYGk_2eg;G>hK}~stwV|zV zftry-R0m^F9Zo{slDVjvSctlirKmNq26f&IsPpcyc`<50Cr|_Nd~6HntzV$7;7e48 zH&G|LhdR-pc7ISmlUG8WsJ1l%HMLQwfyG&yV<>rBtcbmk3-CB;6g1*=)QQHUI?hIQ z=&>$D4XhB=ZX@c7H=zc&+wMPvnxS`4&;Mtr^W3uDv;N_e`ya?#MGY!gYgi+#@u-ek zqfXorHIUwR|4fVrpRSiv zxc_=V{7gkO9hDz$-qo#A%@>Gqs6|tN`WW4aVR#hv!ukx=aqtMUs^hT%d3zj!<52t0 zU^BdpIzBwj*fPz-tJ9Cqb1GulkvY#HB4e)rN%hUaO!)fn@_a^*opic zMqt^o<|kGH29mEv-MUvW824aFJY@3|sBcK;Py_OOLqQ`79A|#e=RdK|QQT-W9oxPA0N!oKNuyOvo_<%tGDL1*r3F&t=ef9XI3B zN&I%e=94)G{W}jS^rRwviutm582QhsKGodIW!RbAZ<^yQ!LC?NJRSkf(95W`bO;+@@+>ohQ?U&FJ1a)Sc`7n zY}0-%hLaa#C|*R}`yXt6A9dcKJo6he9Mx_$>O8y96XZvS6dF?T{v0#n2dIV>=bA4V zQTQQwPmIGF^SE~$*B#X^J>S0hFrIulM&rAv0o+EtfJ)3ak7;Gp0HWqI{~B>yDzsR- z;U)Y7Re$k${`m#}hMJM~3(Tq=iduwoFdVnw0S0syxxLP`7tAa74xS{xhwHI;kr{BG z0`pXiEMQ89vtt|;@i7D1a;-#q84M~OXk<{5ma7wnHgX{>cp#2FQR>@ z0e_1+Z(yPM`t3s9x&fGo`KSx^oTZ?S%CST>qH(Az%}1@?9jF6OV+{U+E3g)Se!^mW z6JJ}&?co*-TgAWek*{BEexO{%2h>+x!{-Ne z%^>%`i?6^32I_!J?1!^36VIcryu)_$0!qgYk!Gck_-oy`=Q;|08i!MjX{KcMbqh27>}Hp6i89_Yu6WFhO%naFgkApZ;1 z@rr$BfUjdH`F+${2-?qa7>>Hoy67oGp(%y8u>)a*`$6mMyGw>?1ES#=y@I@7`V=AT{WUb)ogUmm-#VK)!e^AC|7 zc45e6j+jrqeylVv`_~}r%$a`Fyn;iI@p`4*+nB8S6Xr#97BwRea3WSd={U1-0kZg< z;J286JwD^#;>!f)<7ynpp`z%^&iM7$0IN-v7wF7lJ-E zc?6cHzBy`Oov}Z5M_th?s0-SIY3Rj4*y$6qmewOxj{m1TSsK%M3j3(o!u-3iKebu| zld(4*!*ncr!F--i!36TX7>d`eKVt}aiO8N%ddaV7!Y}@gX+DN?({M?}l~Bv#f=fOnwOCFyN9ot|^w)JxQjZ z7sC)#M^kLR7Nf`yp&PH+{hcnGH{WQ~6&IogvI%to$56N86Ptg9S~GW01E_Vyn2a8s zUupzCIh#h@;* z3+h%3^H69&p};mcj5_cV>WaRx`+q?#GMCp(Wq;HO(y=M7M$O2Fs1ClvNPLKD7ygZz zx!$PyIj9-%Y^P9)!n>%BKS8a9D;SSA(GRr^qA=Jdi^*dt>x-$jXNl>Q%c2IN!OkJi zC$tt)iAUQu>L!r9rRV=83T`Uu6N!}D;#}0WjB;~ApKd$J7ZM8yy&v=}uP5fQuNceY z2CPr~ozQ)sLLH0V_hWQ8<$v7~@tp|cX*iJRNN9!V%bT{zL~C1~LwOzX zD)|}wm?%qmBEE*dqki0JtAHzUkuNi^K;BIyYnRK^_dRV%R+ZB!^U>n_!ZVF>9%a3x z9&L-M{`H1?Z~yWWJPgiQJ zY^%L&{VBhQZ(?^s+XsYx^=fNPd`A3193aXQ;|XnEVu=cDZxj3MG0O8Ok0BNkL&<%s z{zL6y8)oqRo88y89F0|JyoNYNlpqcf+o``#=oLDE7)(6co@akQl5NB;%4<+>NNszG z&xt9-4&DDq8oW-@3)d2NDEGznL{CCnWqb|)gSbL`MQ9sF{UjWMVMKSzqX<6!osGl{ zLfd!5%f1rrX*b=Leb*mjlZLpIoz3wX)lt?q6UW)I@)%ogheOCu5Z`Er-In7l+h+5l zN?c7eAnLHMGj=2jJS1(1LnO~(MIw{PCBC3;4-rgR+k3=6eI@g!<-e30(&jArJX=@J z9-}mn^4~Cl7)9Bi_?GfN2v0VDsu8P*mF$>Lyg-a3v_%p@l;7}W=Ci*C`8zfrfd#}7 z+kPzNO~k8&wsAxi_RS`qB?^f_)V+kYbpM~BpskrTlX6Ysfhz4b68Ey-W!v~!7vU?! z3$|S+$}Q}^mZ;VJ2{D?;vh`}ZmIxxU{e0`6AC#(P+fSpV_$3iXxhwV|P7=EaZAH}g zz$Qd1d(v=xn)r#jWrVgZL@{+;h&Kprj}vWtB|c`Ti_rbo))cew3F1eh40(>-cb;6^ z3Ze|rh4_njnnE{&#{ad%0OC3^mwiXE8=>uaB8AvZq!EqSe;msZj}gBT9f*oVXM299RND!zw2b1w z$YB8<*R-rjt|_VGb6vSvu95Bxcdpx&JI3vbjL8}?)}5A{GCnoa9h>8dh>UUPq@_-9 zk4!N;Vsj$eyAm@pTv?-h2aL+f$jF+KK7O<-+nte`>mKP!&vj?!xTd7jW`x_Gdt@6Y zG289yG-pz_yM3`cc3z2C6;+q*%5_i8b*1OHGTb>ioHlj5D>BEGHYPPYH7(bj9anra zu5X>jskv!mO!LgFNx5UfUHusFl&tKLYRtjovvOUj8V!ROCwkZ_!C_ z(ME648{VQ5-lA2$bf33)PD7WsXuG#~w)Pa~{f|rkH`nevy4ZKrV&C7qi1vlAjH(^D z+gr5HTXeWE;kmF{?K$mXZ_ylY5w-l?<}KQ({);(eW1-);%7ufs)hXOM%2l|1NCm$( z#qCGb4oTkb8`WN4qrIGfQEv4m`*d;MqI_@B3SWN6TeSaCd4=yFy4Xw$l2^@13YV^| zp5!fBXD?U%a>!h#7fDDw5W$_$7}QU`@8o|+-yx>yEzP;*zjxbU;dRSQ$jG^}OD`F|W4<~!0`wBWxF WW&#T<3=AtAdM4hFm2fU6?7sl@xoh?S diff --git a/django/conf/locale/kn/LC_MESSAGES/django.po b/django/conf/locale/kn/LC_MESSAGES/django.po index b8adeb2c43..b89ef6f706 100644 --- a/django/conf/locale/kn/LC_MESSAGES/django.po +++ b/django/conf/locale/kn/LC_MESSAGES/django.po @@ -971,6 +971,7 @@ msgstr "" #: contrib/admin/templates/admin/delete_confirmation.html:21 #, python-format +#,fuzzy msgid "" "Are you sure you want to delete the %(object_name)s \"%(escaped_object)s\"? " "All of the following related items will be deleted:" @@ -2181,6 +2182,7 @@ msgstr "" #: core/validators.py:256 #, python-format +#,fuzzy msgid "Watch your mouth! The word %s is not allowed here." msgstr "" "ನಾಲಿಗೆ ಬಿಗಿ ಹಿಡಿಯಿರಿ! %s " @@ -2486,6 +2488,7 @@ msgstr "" #: forms/__init__.py:381 #, python-format +#,fuzzy msgid "Ensure your text is less than %s character." msgstr "" "ನಿಮ್ಮ ಗದ್ಯ %s ಅಕ್ಷರಕ್ಕಿಂತ " diff --git a/django/conf/locale/pl/LC_MESSAGES/django.mo b/django/conf/locale/pl/LC_MESSAGES/django.mo index b5ed35225d245408eca4adde1e14c5cf08106495..e0f61d1a62c4b810fe7337048ed4f94d1f1c45a9 100644 GIT binary patch delta 14219 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 delta 13626 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\n" "Language-Team: Polish \n" @@ -230,17 +230,17 @@ msgstr "Ten miesiąc" msgid "This year" msgstr "Ten rok" -#: contrib/admin/filterspecs.py:147 newforms/widgets.py:229 +#: contrib/admin/filterspecs.py:147 newforms/widgets.py:231 #: oldforms/__init__.py:592 msgid "Yes" msgstr "Tak" -#: contrib/admin/filterspecs.py:147 newforms/widgets.py:229 +#: contrib/admin/filterspecs.py:147 newforms/widgets.py:231 #: oldforms/__init__.py:592 msgid "No" msgstr "Nie" -#: contrib/admin/filterspecs.py:154 newforms/widgets.py:229 +#: contrib/admin/filterspecs.py:154 newforms/widgets.py:231 #: oldforms/__init__.py:592 msgid "Unknown" msgstr "Nieznany" @@ -764,7 +764,7 @@ msgstr "Teraz:" msgid "Change:" msgstr "Zmień:" -#: contrib/admin/templatetags/admin_list.py:255 +#: contrib/admin/templatetags/admin_list.py:257 msgid "All dates" msgstr "Wszystkie daty" @@ -774,7 +774,7 @@ msgid "The %(name)s \"%(obj)s\" was added successfully." msgstr "%(name)s \"%(obj)s\" dodany pomyślnie." #: contrib/admin/views/auth.py:25 contrib/admin/views/main.py:271 -#: contrib/admin/views/main.py:357 +#: contrib/admin/views/main.py:356 msgid "You may edit it again below." msgstr "Możesz ponownie edytować wpis poniżej." @@ -923,7 +923,7 @@ msgstr "Ścieżka do pliku" msgid "Floating point number" msgstr "Liczba zmiennoprzecinkowa" -#: contrib/admin/views/doc.py:307 contrib/comments/models.py:85 +#: contrib/admin/views/doc.py:307 contrib/comments/models.py:89 msgid "IP address" msgstr "Adres IP" @@ -968,93 +968,93 @@ msgstr "%s nie jest obiektem urlpattern" msgid "Site administration" msgstr "Administracja stroną" -#: contrib/admin/views/main.py:281 contrib/admin/views/main.py:366 +#: contrib/admin/views/main.py:280 contrib/admin/views/main.py:365 #, python-format msgid "You may add another %s below." msgstr "Możesz dodać nowy wpis %s poniżej." -#: contrib/admin/views/main.py:299 +#: contrib/admin/views/main.py:298 #, python-format msgid "Add %s" msgstr "Dodaj %s" -#: contrib/admin/views/main.py:345 +#: contrib/admin/views/main.py:344 #, python-format msgid "Added %s." msgstr "Dodano %s" -#: contrib/admin/views/main.py:345 contrib/admin/views/main.py:347 -#: contrib/admin/views/main.py:349 core/validators.py:283 +#: 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:347 +#: contrib/admin/views/main.py:346 #, python-format msgid "Changed %s." msgstr "Zmieniono %s" -#: contrib/admin/views/main.py:349 +#: contrib/admin/views/main.py:348 #, python-format msgid "Deleted %s." msgstr "Skasowano %s" -#: contrib/admin/views/main.py:352 +#: contrib/admin/views/main.py:351 msgid "No fields changed." msgstr "Żadne pole nie zmienione." -#: contrib/admin/views/main.py:355 +#: contrib/admin/views/main.py:354 #, python-format msgid "The %(name)s \"%(obj)s\" was changed successfully." msgstr "%(name)s \"%(obj)s\" zostało pomyślnie zmienione." -#: contrib/admin/views/main.py:363 +#: 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\" dodane pomyślnie. Możesz edytować ponownie wpis poniżej." -#: contrib/admin/views/main.py:401 +#: contrib/admin/views/main.py:400 #, python-format msgid "Change %s" msgstr "Zmień %s" -#: contrib/admin/views/main.py:488 +#: contrib/admin/views/main.py:487 #, python-format msgid "One or more %(fieldname)s in %(name)s: %(obj)s" msgstr "Jedno lub więcej %(fieldname)s w %(name)s: %(obj)s" -#: contrib/admin/views/main.py:493 +#: contrib/admin/views/main.py:492 #, python-format msgid "One or more %(fieldname)s in %(name)s:" msgstr "Jedno lub więcej %(fieldname)s w %(name)s:" -#: contrib/admin/views/main.py:525 +#: contrib/admin/views/main.py:524 #, python-format msgid "The %(name)s \"%(obj)s\" was deleted successfully." msgstr "%(name)s \"%(obj)s\" usunięty pomyślnie." -#: contrib/admin/views/main.py:528 +#: contrib/admin/views/main.py:527 msgid "Are you sure?" msgstr "Jesteś pewien?" -#: contrib/admin/views/main.py:550 +#: contrib/admin/views/main.py:549 #, python-format msgid "Change history: %s" msgstr "Historia zmian: %s" -#: contrib/admin/views/main.py:584 +#: contrib/admin/views/main.py:583 #, python-format msgid "Select %s" msgstr "Zaznacz %s" -#: contrib/admin/views/main.py:584 +#: contrib/admin/views/main.py:583 #, python-format msgid "Select %s to change" msgstr "Zaznacz %s aby zmienić" -#: contrib/admin/views/main.py:785 +#: contrib/admin/views/main.py:784 msgid "Database error" msgstr "Błąd bazy danych" @@ -1243,68 +1243,68 @@ msgstr "wiadomość" msgid "Logged out" msgstr "Wylogowany" -#: contrib/comments/models.py:67 contrib/comments/models.py:169 +#: contrib/comments/models.py:71 contrib/comments/models.py:176 msgid "object ID" msgstr "ID obiektu" -#: contrib/comments/models.py:68 +#: contrib/comments/models.py:72 msgid "headline" msgstr "nagłówek" -#: contrib/comments/models.py:69 contrib/comments/models.py:90 -#: contrib/comments/models.py:170 +#: contrib/comments/models.py:73 contrib/comments/models.py:95 +#: contrib/comments/models.py:177 msgid "comment" msgstr "komentarz" -#: contrib/comments/models.py:70 +#: contrib/comments/models.py:74 msgid "rating #1" msgstr "ocena #1" -#: contrib/comments/models.py:71 +#: contrib/comments/models.py:75 msgid "rating #2" msgstr "ocena #2" -#: contrib/comments/models.py:72 +#: contrib/comments/models.py:76 msgid "rating #3" msgstr "ocena #3" -#: contrib/comments/models.py:73 +#: contrib/comments/models.py:77 msgid "rating #4" msgstr "ocena #4" -#: contrib/comments/models.py:74 +#: contrib/comments/models.py:78 msgid "rating #5" msgstr "ocena #5" -#: contrib/comments/models.py:75 +#: contrib/comments/models.py:79 msgid "rating #6" msgstr "ocena #6" -#: contrib/comments/models.py:76 +#: contrib/comments/models.py:80 msgid "rating #7" msgstr "ocena #7" -#: contrib/comments/models.py:77 +#: contrib/comments/models.py:81 msgid "rating #8" msgstr "ocena #8" -#: contrib/comments/models.py:82 +#: contrib/comments/models.py:86 msgid "is valid rating" msgstr "jest poprawną oceną" -#: contrib/comments/models.py:83 contrib/comments/models.py:172 +#: contrib/comments/models.py:87 contrib/comments/models.py:179 msgid "date/time submitted" msgstr "data/czas dodania" -#: contrib/comments/models.py:84 contrib/comments/models.py:173 +#: contrib/comments/models.py:88 contrib/comments/models.py:180 msgid "is public" msgstr "publicznie dostepny" -#: contrib/comments/models.py:86 +#: contrib/comments/models.py:90 msgid "is removed" msgstr "usunięty" -#: contrib/comments/models.py:86 +#: contrib/comments/models.py:90 msgid "" "Check this box if the comment is inappropriate. A \"This comment has been " "removed\" message will be displayed instead." @@ -1312,15 +1312,15 @@ msgstr "" "Zaznacz to pole jeżeli komentarz jest nieodpowiedni. Wyświetlony zostanie " "tekst \"Ten komentarz został usunięty\". " -#: contrib/comments/models.py:91 +#: contrib/comments/models.py:96 msgid "comments" msgstr "komentarze" -#: contrib/comments/models.py:134 contrib/comments/models.py:213 +#: contrib/comments/models.py:140 contrib/comments/models.py:222 msgid "Content object" msgstr "Obiekt treści" -#: contrib/comments/models.py:162 +#: contrib/comments/models.py:168 #, python-format msgid "" "Posted by %(user)s at %(date)s\n" @@ -1335,48 +1335,48 @@ msgstr "" "\n" "http://%(domain)s%(url)s" -#: contrib/comments/models.py:171 +#: contrib/comments/models.py:178 msgid "person's name" msgstr "Nazwa osoby" -#: contrib/comments/models.py:174 +#: contrib/comments/models.py:181 msgid "ip address" msgstr "adres ip" -#: contrib/comments/models.py:176 +#: contrib/comments/models.py:183 msgid "approved by staff" msgstr "zaakceptowano" -#: contrib/comments/models.py:179 +#: contrib/comments/models.py:187 msgid "free comment" msgstr "wolny komentarz" -#: contrib/comments/models.py:180 +#: contrib/comments/models.py:188 msgid "free comments" msgstr "wolne komentarze" -#: contrib/comments/models.py:239 +#: contrib/comments/models.py:250 msgid "score" msgstr "ilość punktów" -#: contrib/comments/models.py:240 +#: contrib/comments/models.py:251 msgid "score date" msgstr "data przyznania punktów" -#: contrib/comments/models.py:243 +#: contrib/comments/models.py:255 msgid "karma score" msgstr "ilość punktów" -#: contrib/comments/models.py:244 +#: contrib/comments/models.py:256 msgid "karma scores" msgstr "wyniki" -#: contrib/comments/models.py:248 +#: contrib/comments/models.py:260 #, python-format msgid "%(score)d rating by %(user)s" msgstr "%(score)d ocenę przez %(user)s" -#: contrib/comments/models.py:264 +#: contrib/comments/models.py:277 #, python-format msgid "" "This comment was flagged by %(user)s:\n" @@ -1387,36 +1387,36 @@ msgstr "" "\n" "%(text)s" -#: contrib/comments/models.py:271 +#: contrib/comments/models.py:285 msgid "flag date" msgstr "data flagi" -#: contrib/comments/models.py:274 +#: contrib/comments/models.py:289 msgid "user flag" msgstr "flaga użytkownika" -#: contrib/comments/models.py:275 +#: contrib/comments/models.py:290 msgid "user flags" msgstr "flagi użytkownika" -#: contrib/comments/models.py:279 +#: contrib/comments/models.py:294 #, python-format msgid "Flag by %r" msgstr "Flaga %r" -#: contrib/comments/models.py:284 +#: contrib/comments/models.py:300 msgid "deletion date" msgstr "data skasowania" -#: contrib/comments/models.py:286 +#: contrib/comments/models.py:303 msgid "moderator deletion" msgstr "usunięcie moderatora" -#: contrib/comments/models.py:287 +#: contrib/comments/models.py:304 msgid "moderator deletions" msgstr "usunięcia moderatorów" -#: contrib/comments/models.py:291 +#: contrib/comments/models.py:308 #, python-format msgid "Moderator deletion by %r" msgstr "Usunięcie moderatora przez %r" @@ -1690,40 +1690,41 @@ msgstr "jutro" msgid "yesterday" msgstr "wczoraj" -#: 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 "Wpisz kod pocztowy w formacie NNNN lub 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 "To pole może zawierać jedynie liczby." -#: contrib/localflavor/ar/forms.py:64 +#: contrib/localflavor/ar/forms.py:51 msgid "This field requires 7 or 8 digits." msgstr "To pole musi zawierać 7 lub 8 cyfr." -#: 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 "Podaj poprawny numer CUIT w formacie XX-XXXXXXXX-X lub XXXXXXXXXXXX." -#: contrib/localflavor/ar/forms.py:88 +#: contrib/localflavor/ar/forms.py:81 msgid "Invalid CUIT." msgstr "Niepoprawny CUIT" -#: contrib/localflavor/au/forms.py:18 +#: contrib/localflavor/au/forms.py:16 msgid "Enter a 4 digit post code." msgstr "Wpisz czterocyfrowy kod pocztowy." -#: contrib/localflavor/br/forms.py:23 +#: contrib/localflavor/br/forms.py:21 msgid "Enter a zip code in the format XXXXX-XXX." msgstr "Wpisz kod pocztowy w formacie 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 "Numery telefoniczne muszą być w formacie 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." @@ -1731,28 +1732,28 @@ msgstr "" "Wybierz poprawny brazylijski stan. Ten stan nie jest jednym z dostępnych " "stanów." -#: contrib/localflavor/br/forms.py:105 -msgid "This field requires at most 11 digits or 14 characters." -msgstr "To pole nie może zawierać więcej niż 11 cyfr lub 14 znaków." - -#: contrib/localflavor/br/forms.py:115 +#: contrib/localflavor/br/forms.py:94 msgid "Invalid CPF number." msgstr "Błędny numer CPF." -#: contrib/localflavor/br/forms.py:137 -msgid "This field requires at least 14 digits" -msgstr "To pole musi zawierać co najmniej 14 cyfr." +#: contrib/localflavor/br/forms.py:95 +msgid "This field requires at most 11 digits or 14 characters." +msgstr "To pole nie może zawierać więcej niż 11 cyfr lub 14 znaków." -#: contrib/localflavor/br/forms.py:147 +#: contrib/localflavor/br/forms.py:134 msgid "Invalid CNPJ number." msgstr "Błędny numer CNPJ." -#: contrib/localflavor/ca/forms.py:19 +#: contrib/localflavor/br/forms.py:136 +msgid "This field requires at least 14 digits" +msgstr "To pole musi zawierać co najmniej 14 cyfr." + +#: contrib/localflavor/ca/forms.py:17 msgid "Enter a postal code in the format XXX XXX." msgstr "Wpisz kod pocztowy w formacie XXX XXX." -#: contrib/localflavor/ca/forms.py:81 -msgid "Enter a valid Canadian Social Insurance number in XXX-XXX-XXXX format." +#: contrib/localflavor/ca/forms.py:88 +msgid "Enter a valid Canadian Social Insurance number in XXX-XXX-XXX format." msgstr "" "Wpisz poprawny numer kanadyjskiego ubezpieczenia w formacie XXX-XXX-XXXX." @@ -1860,11 +1861,11 @@ msgstr "" msgid "Zurich" msgstr "" -#: 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 "Wpisz kod pocztowy w formacie 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." @@ -1872,13 +1873,17 @@ msgstr "" "Podaj poprawny numer szwajcarskiego dowodu osobistego lub paszportu w " "formacie X1234567<0 lub 1234567890." -#: 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 "Wpisz poprawny czilijski RUT" + +#: contrib/localflavor/cl/forms.py:30 +msgid "Enter a valid Chilean RUT. The format is XX.XXX.XXX-X." msgstr "Podaj poprawny czilijski RUT w formacie XX.XXX.XXX-X." -#: contrib/localflavor/cl/forms.py:37 -msgid "Enter valid a Chilean RUT" -msgstr "Wpisz poprawny czilijski RUT" +#: contrib/localflavor/cl/forms.py:31 +msgid "The Chilean RUT is not valid." +msgstr "Podany czilijski RUT jest nieprawidłowy." #: contrib/localflavor/de/de_states.py:5 msgid "Baden-Wuerttemberg" @@ -1944,12 +1949,12 @@ msgstr "" msgid "Thuringia" msgstr "Turyngia" -#: 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 "Wpisz kod pocztowy w formacie 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." @@ -2026,9 +2031,8 @@ msgid "Girona" msgstr "" #: contrib/localflavor/es/es_provinces.py:22 -#, fuzzy msgid "Granada" -msgstr "Kannada" +msgstr "Granada" #: contrib/localflavor/es/es_provinces.py:23 msgid "Guadalajara" @@ -2210,18 +2214,16 @@ msgid "Castile and Leon" msgstr "" #: contrib/localflavor/es/es_regions.py:14 -#, fuzzy msgid "Catalonia" -msgstr "Kataloński" +msgstr "Katalonia" #: contrib/localflavor/es/es_regions.py:15 msgid "Extremadura" msgstr "" #: contrib/localflavor/es/es_regions.py:16 -#, fuzzy msgid "Galicia" -msgstr "Galicyjski" +msgstr "Galicja" #: contrib/localflavor/es/es_regions.py:19 msgid "Region of Murcia" @@ -2235,7 +2237,7 @@ msgstr "" msgid "Valencian Community" msgstr "" -#: 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 "Wpisz kod pocztowy w zakresie i formacie 01XXX - 52XX." @@ -2246,39 +2248,41 @@ msgid "" msgstr "" "Wpisz numer telefoniczny w formacie 6XXXXXXXX, 8XXXXXXXX lub 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 "Proszę wpisać poprawne %s." +#: contrib/localflavor/es/forms.py:66 +msgid "Please enter a valid NIF, NIE, or CIF." +msgstr "Proszę wpisać poprawny numer NIF, NIE lub CIF.." -#: contrib/localflavor/es/forms.py:91 +#: contrib/localflavor/es/forms.py:67 +msgid "Please enter a valid NIF or NIE." +msgstr "Proszę wpisać poprawny numer NIF lub NIE." + +#: contrib/localflavor/es/forms.py:68 msgid "Invalid checksum for NIF." msgstr "Niepoprawna suma kontrolna NIF." -#: contrib/localflavor/es/forms.py:97 +#: contrib/localflavor/es/forms.py:69 msgid "Invalid checksum for NIE." msgstr "Niepoprawna suma kontrolna NIE." -#: contrib/localflavor/es/forms.py:106 +#: contrib/localflavor/es/forms.py:70 msgid "Invalid checksum for CIF." msgstr "Niepoprawna suma kontrolna 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 "" "Podaj poprawny numer konta bankowego w formacie XXXX-XXXX-XX-XXXXXXXXXX." -#: contrib/localflavor/es/forms.py:150 +#: contrib/localflavor/es/forms.py:143 msgid "Invalid checksum for bank account number." msgstr "Niepoprawna suma kontrolna numeru konta bankowego." -#: 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 "Wpis poprawny numer fińskiego ubezpieczenia socjalnego." -#: contrib/localflavor/in_/forms.py:16 +#: contrib/localflavor/in_/forms.py:14 msgid "Enter a zip code in the format XXXXXXX." msgstr "Wpisz kod pocztowy w formacie XXXXXXX." @@ -2288,15 +2292,15 @@ msgid "" msgstr "" "Podaj poprawny numer islandzkiego dowodu osobistego w formacie XXXXXX-XXXX." -#: contrib/localflavor/is_/forms.py:31 +#: contrib/localflavor/is_/forms.py:18 msgid "The Icelandic identification number is not valid." msgstr "Numer islandzkiego dowodu osobistego jest błędny." -#: contrib/localflavor/it/forms.py:16 +#: contrib/localflavor/it/forms.py:14 msgid "Enter a valid zip code." msgstr "Wpisz poprawny kod pocztowy." -#: contrib/localflavor/it/forms.py:41 +#: contrib/localflavor/it/forms.py:43 msgid "Enter a valid Social Security number." msgstr "Wpisz poprawny numer ubezpieczenia socjalnego." @@ -2304,7 +2308,7 @@ msgstr "Wpisz poprawny numer ubezpieczenia socjalnego." msgid "Enter a valid VAT number." msgstr "Wpisz poprawny numer 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 "Wpisz kod pocztowy w formacie XXXXXXX lub XXX-XXXX." @@ -2496,15 +2500,148 @@ msgstr "" msgid "Okinawa" msgstr "" -#: 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 +#, fuzzy +msgid "Campeche" +msgstr "Czeski" + +#: 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 +#, fuzzy +msgid "Coahuila" +msgstr "Horwacki" + +#: 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 +#, fuzzy +msgid "Guerrero" +msgstr "Błąd serwera" + +#: 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 +#, fuzzy +msgid "Sinaloa" +msgstr "Słowacki" + +#: contrib/localflavor/mx/mx_states.py:36 +msgid "San Luis Potosí" +msgstr "" + +#: contrib/localflavor/mx/mx_states.py:37 +#, fuzzy +msgid "Sonora" +msgstr "Serbski" + +#: 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 "Wpisz poprawny kod pocztowy." -#: contrib/localflavor/nl/forms.py:53 +#: contrib/localflavor/nl/forms.py:52 msgid "Enter a valid phone number" msgstr "Wpisz poprawny numer telefonu." -#: contrib/localflavor/nl/forms.py:76 +#: contrib/localflavor/nl/forms.py:78 msgid "Enter a valid SoFi number" msgstr "Wpisz poprawny numer SoFi." @@ -2561,23 +2698,23 @@ msgstr "Islandzki" msgid "Zuid-Holland" msgstr "" -#: contrib/localflavor/no/forms.py:35 +#: contrib/localflavor/no/forms.py:33 msgid "Enter a valid Norwegian social security number." msgstr "Wpis poprawny numer norweskiego ubezpieczenia socjalnego." -#: contrib/localflavor/pe/forms.py:36 +#: contrib/localflavor/pe/forms.py:24 msgid "This field requires 8 digits." msgstr "To pole musi zawierać 8 cyfr." -#: contrib/localflavor/pe/forms.py:59 +#: contrib/localflavor/pe/forms.py:52 msgid "This field requires 11 digits." msgstr "To pole musi zawierać 11 cyfr." -#: contrib/localflavor/pl/forms.py:41 +#: contrib/localflavor/pl/forms.py:39 msgid "National Identification Number consists of 11 digits." msgstr "Numer PESEL składa się z 11 cyfr." -#: contrib/localflavor/pl/forms.py:47 +#: contrib/localflavor/pl/forms.py:40 msgid "Wrong checksum for the National Identification Number." msgstr "Błędna suma kontrolna numeru PESEL." @@ -2586,11 +2723,11 @@ msgid "" "Enter a tax number field (NIP) in the format XXX-XXX-XX-XX or XX-XX-XXX-XXX." msgstr "Wpisz numer NIP w formacie XXX-XXX-XX-XX or 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 "Błędna suma kontrolna numeru 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 "Numer REGON składa się z 7 lub 9 cyfr." @@ -2598,7 +2735,7 @@ msgstr "Numer REGON składa się z 7 lub 9 cyfr." msgid "Wrong checksum for the National Business Register Number (REGON)." msgstr "Błędna suma kontrolna numeru REGON" -#: contrib/localflavor/pl/forms.py:148 +#: contrib/localflavor/pl/forms.py:156 msgid "Enter a postal code in the format XX-XXX." msgstr "Wpisz kod pocztowy w formacie XX-XXX." @@ -2666,7 +2803,7 @@ msgstr "Wielkopolskie" msgid "West Pomerania" msgstr "Zachodniopomorskie" -#: 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 "Wpisz kod pocztowy w formacie XXXXX or XXX XX." @@ -3029,19 +3166,360 @@ msgstr "" msgid "Zilina region" msgstr "" -#: contrib/localflavor/uk/forms.py:18 -msgid "Enter a postcode. A space is required between the two postcode parts." -msgstr "" -"Wpisz kod pocztowy. Biały znak pomiędzy dwiema częściami kodu jest wymagany." +#: contrib/localflavor/uk/forms.py:21 +msgid "Enter a valid postcode." +msgstr "Wpisz poprawny kod pocztowy." -#: 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 +#, fuzzy +msgid "Cumbria" +msgstr "Kataloński" + +#: contrib/localflavor/uk/uk_regions.py:17 +msgid "Derbyshire" +msgstr "" + +#: contrib/localflavor/uk/uk_regions.py:18 +#, fuzzy +msgid "Devon" +msgstr "Zaloguj się" + +#: contrib/localflavor/uk/uk_regions.py:19 +#, fuzzy +msgid "Dorset" +msgstr "Usuń" + +#: 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 +#, fuzzy +msgid "Greater London" +msgstr "Wielkopolskie" + +#: contrib/localflavor/uk/uk_regions.py:25 +#, fuzzy +msgid "Greater Manchester" +msgstr "Wielkopolskie" + +#: 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 +#, fuzzy +msgid "Kent" +msgstr "Koreański" + +#: 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 +#, fuzzy +msgid "Surrey" +msgstr "Teraz:" + +#: 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 +msgid "County Down" +msgstr "" + +#: contrib/localflavor/uk/uk_regions.py:58 +msgid "County Fermanagh" +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 +#, fuzzy +msgid "West Glamorgan" +msgstr "Zachodniopomorskie" + +#: contrib/localflavor/uk/uk_regions.py:75 +#, fuzzy +msgid "Borders" +msgstr "Porządek:" + +#: contrib/localflavor/uk/uk_regions.py:76 +#, fuzzy +msgid "Central Scotland" +msgstr "Wielkopolskie" + +#: contrib/localflavor/uk/uk_regions.py:77 +msgid "Dumfries and Galloway" +msgstr "" + +#: contrib/localflavor/uk/uk_regions.py:78 +#, fuzzy +msgid "Fife" +msgstr "Filtr" + +#: contrib/localflavor/uk/uk_regions.py:79 +#, fuzzy +msgid "Grampian" +msgstr "Niemiecki" + +#: contrib/localflavor/uk/uk_regions.py:80 +msgid "Highland" +msgstr "" + +#: contrib/localflavor/uk/uk_regions.py:81 +#, fuzzy +msgid "Lothian" +msgstr "Łotewski" + +#: 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 "Anglia" + +#: contrib/localflavor/uk/uk_regions.py:91 +msgid "Northern Ireland" +msgstr "Irlandia Północna" + +#: contrib/localflavor/uk/uk_regions.py:92 +msgid "Scotland" +msgstr "Szkocja" + +#: contrib/localflavor/uk/uk_regions.py:93 +msgid "Wales" +msgstr "Walia" + +#: contrib/localflavor/us/forms.py:16 msgid "Enter a zip code in the format XXXXX or XXXXX-XXXX." msgstr "Wpisz kod pocztowy w formacie XXXXX. lub 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 "Wpisz poprawny numer U.S. Social Security w formacie XXX-XX-XXXX." +#: contrib/localflavor/za/forms.py:20 +msgid "Enter a valid South African ID number" +msgstr "Wpisz poprawny południowoafrykański numer ID" + +#: contrib/localflavor/za/forms.py:54 +msgid "Enter a valid South African postal code" +msgstr "Wpisz poprawny południowoafrykański kod pocztowy" + +#: contrib/localflavor/za/za_provinces.py:4 +#, fuzzy +msgid "Eastern Cape" +msgstr "Nazwa użytkownika" + +#: contrib/localflavor/za/za_provinces.py:5 +#, fuzzy +msgid "Free State" +msgstr "data przyznania punktów" + +#: contrib/localflavor/za/za_provinces.py:6 +#, fuzzy +msgid "Gauteng" +msgstr "sier" + +#: 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 +#, fuzzy +msgid "North West" +msgstr "Nadrenia Północna-Westfalia" + +#: contrib/localflavor/za/za_provinces.py:12 +#, fuzzy +msgid "Western Cape" +msgstr "Zachodniopomorskie" + #: contrib/redirects/models.py:7 msgid "redirect from" msgstr "przekieruj z" @@ -3070,23 +3548,23 @@ msgstr "przekieruj" msgid "redirects" msgstr "przekierowania" -#: contrib/sessions/models.py:80 +#: contrib/sessions/models.py:46 msgid "session key" msgstr "klucz sesji" -#: contrib/sessions/models.py:81 +#: contrib/sessions/models.py:47 msgid "session data" msgstr "data sesji" -#: contrib/sessions/models.py:82 +#: contrib/sessions/models.py:48 msgid "expire date" msgstr "data wygaśnięcia sesji" -#: contrib/sessions/models.py:87 +#: contrib/sessions/models.py:53 msgid "session" msgstr "sesja" -#: contrib/sessions/models.py:88 +#: contrib/sessions/models.py:54 msgid "sessions" msgstr "sesje" @@ -3154,7 +3632,7 @@ msgstr "Tu mogą być tylko cyfry." msgid "This value can't be comprised solely of digits." msgstr "To pole nie może zawierać jedynie cyfr." -#: core/validators.py:128 newforms/fields.py:157 +#: core/validators.py:128 newforms/fields.py:151 msgid "Enter a whole number." msgstr "Wpisz liczbę całkowitą." @@ -3183,16 +3661,16 @@ msgstr "Proszę wpisać poprawną godzinę w formacie HH:MM." msgid "Enter a valid date/time in YYYY-MM-DD HH:MM format." msgstr "Wprowadź poprawną datę i godzinę w formacie RRRR-MM-DD GG:MM." -#: core/validators.py:170 newforms/fields.py:408 +#: core/validators.py:170 newforms/fields.py:402 msgid "Enter a valid e-mail address." msgstr "Wprowadź poprawny adres e-mail." -#: core/validators.py:182 core/validators.py:474 newforms/fields.py:438 +#: 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 "Nie wysłano żadnego pliku. Sprawdź typ kodowania formularza." -#: core/validators.py:193 newforms/fields.py:462 +#: core/validators.py:193 newforms/fields.py:458 msgid "" "Upload a valid image. The file you uploaded was either not an image or a " "corrupted image." @@ -3450,7 +3928,7 @@ msgstr "Już istnieje %(optname)s z %(fieldname)s." #: 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 newforms/models.py:220 oldforms/__init__.py:374 +#: newforms/fields.py:45 oldforms/__init__.py:374 msgid "This field is required." msgstr "To pole jest wymagane." @@ -3474,11 +3952,16 @@ msgstr "Ta wartość musi być liczbą dziesiętną." msgid "Enter a valid filename." msgstr "Wpisz poprawną nazwę pliku." -#: db/models/fields/__init__.py:904 +#: db/models/fields/__init__.py:908 msgid "This value must be either None, True or False." msgstr "" "Ta wartość musi być jedną z None (żadne), True (prawda) lub False (fałsz)." +#: db/models/fields/related.py:55 +#, python-format +msgid "Please enter a valid %s." +msgstr "Proszę wpisać poprawne %s." + #: db/models/fields/related.py:658 msgid "Separate multiple IDs with commas." msgstr "Oddziel identyfikatory przecinkami." @@ -3509,96 +3992,96 @@ msgstr[2] "" msgid "Enter a valid value." msgstr "Wpisz poprawną wartość." -#: newforms/fields.py:129 +#: newforms/fields.py:123 #, python-format msgid "Ensure this value has at most %(max)d characters (it has %(length)d)." msgstr "" "Upewnij się, że ta wartość ma co najwyżej %(max)d znaków (ma długość %" "(length)d)." -#: newforms/fields.py:130 +#: newforms/fields.py:124 #, python-format msgid "Ensure this value has at least %(min)d characters (it has %(length)d)." msgstr "" "Upewnij się, że ta wartość ma co najmniej %(min)d znaków (ma długość %" "(length)d)." -#: newforms/fields.py:158 newforms/fields.py:187 newforms/fields.py:216 +#: 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 "Upewnij się, że ta wartość jest mniejsza lub równa %s." -#: newforms/fields.py:159 newforms/fields.py:188 newforms/fields.py:217 +#: 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 "Upewnij się, że ta wartość jest większa lub równa %s." -#: newforms/fields.py:186 newforms/fields.py:215 +#: newforms/fields.py:180 newforms/fields.py:209 msgid "Enter a number." msgstr "Wpisz liczbę." -#: newforms/fields.py:218 +#: newforms/fields.py:212 #, python-format msgid "Ensure that there are no more than %s digits in total." msgstr "Upewnij się, że jest nie więcej niż %s cyfr." -#: newforms/fields.py:219 +#: newforms/fields.py:213 #, python-format msgid "Ensure that there are no more than %s decimal places." msgstr "Upewnij się, że jest nie więcej niż %s miejsc po przecinku." -#: newforms/fields.py:220 +#: newforms/fields.py:214 #, python-format msgid "Ensure that there are no more than %s digits before the decimal point." msgstr "Upewnij się, że jest nie więcej niż %s miejsc przed przecinkiem." -#: newforms/fields.py:268 newforms/fields.py:724 +#: newforms/fields.py:262 newforms/fields.py:723 msgid "Enter a valid date." msgstr "Wpisz poprawną datę." -#: newforms/fields.py:301 newforms/fields.py:725 +#: newforms/fields.py:295 newforms/fields.py:724 msgid "Enter a valid time." msgstr "Wpisz poprawną godzinę." -#: newforms/fields.py:340 +#: newforms/fields.py:334 msgid "Enter a valid date/time." msgstr "Wpisz poprawną datę/godzinę." -#: newforms/fields.py:439 +#: newforms/fields.py:433 msgid "No file was submitted." msgstr "Żaden plik nie został przesłany." -#: newforms/fields.py:440 oldforms/__init__.py:689 +#: newforms/fields.py:434 oldforms/__init__.py:689 msgid "The submitted file is empty." msgstr "Wysłany plik jest pusty." -#: newforms/fields.py:498 +#: newforms/fields.py:496 msgid "Enter a valid URL." msgstr "Wpisz poprawny URL." -#: newforms/fields.py:499 +#: newforms/fields.py:497 msgid "This URL appears to be a broken link." msgstr "Ten odnośnik jest nieprawidłowy." -#: newforms/fields.py:560 newforms/models.py:203 +#: newforms/fields.py:559 newforms/models.py:317 msgid "Select a valid choice. That choice is not one of the available choices." msgstr "Wybierz poprawną wartość. Podana nie jest jednym z dostępnych wyborów." -#: newforms/fields.py:599 +#: newforms/fields.py:598 #, python-format msgid "Select a valid choice. %(value)s is not one of the available choices." msgstr "" "Wybierz poprawną wartość. %(value)s nie jest jednym z dostępnych wyborów." -#: newforms/fields.py:600 newforms/fields.py:662 newforms/models.py:224 +#: newforms/fields.py:599 newforms/fields.py:661 newforms/models.py:377 msgid "Enter a list of values." msgstr "Podaj listę wartości." -#: newforms/fields.py:753 +#: newforms/fields.py:752 msgid "Enter a valid IPv4 address." msgstr "Wprowadź poprawny adres IPv4." -#: newforms/models.py:230 +#: newforms/models.py:378 #, python-format msgid "Select a valid choice. %s is not one of the available choices." msgstr "Wybierz poprawną wartość. %s nie jest jednym z dostępnych wyborów." @@ -3632,11 +4115,11 @@ msgstr "Proszę wpisać liczbę dodatnią." msgid "Enter a whole number between 0 and 32,767." msgstr "Proszę wpisać liczbę całkowitą z zakresu od 0 do 32 767" -#: template/defaultfilters.py:655 +#: template/defaultfilters.py:691 msgid "yes,no,maybe" msgstr "tak,nie,może" -#: template/defaultfilters.py:686 +#: template/defaultfilters.py:722 #, python-format msgid "%(size)d byte" msgid_plural "%(size)d bytes" @@ -3644,17 +4127,17 @@ msgstr[0] "%(size)d bajt" msgstr[1] "%(size)d bajty" msgstr[2] "%(size)d bajtów" -#: template/defaultfilters.py:688 +#: template/defaultfilters.py:724 #, python-format msgid "%.1f KB" msgstr "%.1f KB" -#: template/defaultfilters.py:690 +#: template/defaultfilters.py:726 #, python-format msgid "%.1f MB" msgstr "%.1f MB" -#: template/defaultfilters.py:691 +#: template/defaultfilters.py:727 #, python-format msgid "%.1f GB" msgstr "%.1f GB" @@ -3923,23 +4406,23 @@ msgstr "%(number)d %(type)s" msgid ", %(number)d %(type)s" msgstr ", %(number)d %(type)s" -#: utils/translation/trans_real.py:395 +#: utils/translation/trans_real.py:404 msgid "DATE_FORMAT" msgstr "Y-m-d" -#: utils/translation/trans_real.py:396 +#: utils/translation/trans_real.py:405 msgid "DATETIME_FORMAT" msgstr "Y-m-d H:i:s" -#: utils/translation/trans_real.py:397 +#: utils/translation/trans_real.py:406 msgid "TIME_FORMAT" msgstr "H:i:s" -#: utils/translation/trans_real.py:413 +#: utils/translation/trans_real.py:422 msgid "YEAR_MONTH_FORMAT" msgstr "Y-m" -#: utils/translation/trans_real.py:414 +#: utils/translation/trans_real.py:423 msgid "MONTH_DAY_FORMAT" msgstr "m-d" @@ -3958,6 +4441,12 @@ msgstr "%(verbose_name)s zostało pomyślnie zmienione." msgid "The %(verbose_name)s was deleted." msgstr "%(verbose_name)s zostało usunięte." +#~ msgid "" +#~ "Enter a postcode. A space is required between the two postcode parts." +#~ msgstr "" +#~ "Wpisz kod pocztowy. Biały znak pomiędzy dwiema częściami kodu jest " +#~ "wymagany." + #~ msgid "AnonymousUser" #~ msgstr "UżytkownikAnonimowy" diff --git a/django/conf/locale/pt/LC_MESSAGES/django.mo b/django/conf/locale/pt/LC_MESSAGES/django.mo index 7adc41be5b09b085c493cfae6e9851dd140b0600..179119b8a1cb4a23b734bb6bf198f312b35bb1f2 100644 GIT binary patch delta 9540 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 delta 10233 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 diff --git a/django/conf/locale/pt/LC_MESSAGES/django.po b/django/conf/locale/pt/LC_MESSAGES/django.po index d99f51d78b..ba306541e8 100644 --- a/django/conf/locale/pt/LC_MESSAGES/django.po +++ b/django/conf/locale/pt/LC_MESSAGES/django.po @@ -851,6 +851,7 @@ msgstr "Remover" #: contrib/admin/templates/admin/delete_confirmation.html:14 #, python-format +#, fuzzy 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 " @@ -1933,6 +1934,7 @@ msgstr[1] "Por favor introduza um número décimal com um máximo de %s digitos. #: core/validators.py:381 #, python-format +#, fuzzy msgid "" "Please enter a valid decimal number with a whole part of at most %s digit." msgid_plural "" @@ -1973,6 +1975,7 @@ msgstr "Não foi possível extrair nada de %s." #: core/validators.py:466 #, python-format +#, fuzzy msgid "" "The URL %(url)s returned the invalid Content-Type header '%(contenttype)s'." msgstr "O URL %(url)s devolveu um tipo de conteúdo inválido no header: '%s(contenttype)s'." diff --git a/django/db/models/base.py b/django/db/models/base.py index 7bb4ad44f1..c04a6affb7 100644 --- a/django/db/models/base.py +++ b/django/db/models/base.py @@ -24,7 +24,8 @@ class ModelBase(type): def __new__(cls, name, bases, attrs): # If this isn't a subclass of Model, don't do anything special. try: - if not filter(lambda b: issubclass(b, Model), bases): + parents = [b for b in bases if issubclass(b, Model)] + if not parents: return super(ModelBase, cls).__new__(cls, name, bases, attrs) except NameError: # 'Model' isn't defined yet, meaning we're looking at Django's own @@ -39,9 +40,8 @@ class ModelBase(type): types.ClassType('MultipleObjectsReturned', (MultipleObjectsReturned, ), {})) # Build complete list of parents - for base in bases: - # TODO: Checking for the presence of '_meta' is hackish. - if '_meta' in dir(base): + for base in parents: + if base is not Model: new_class._meta.parents.append(base) new_class._meta.parents.extend(base._meta.parents) @@ -79,6 +79,35 @@ class ModelBase(type): # registered version. return get_model(new_class._meta.app_label, name, False) + def add_to_class(cls, name, value): + if name == 'Admin': + assert type(value) == types.ClassType, "%r attribute of %s model must be a class, not a %s object" % (name, cls.__name__, type(value)) + value = AdminOptions(**dict([(k, v) for k, v in value.__dict__.items() if not k.startswith('_')])) + if hasattr(value, 'contribute_to_class'): + value.contribute_to_class(cls, name) + else: + setattr(cls, name, value) + + def _prepare(cls): + # Creates some methods once self._meta has been populated. + opts = cls._meta + opts._prepare(cls) + + if opts.order_with_respect_to: + cls.get_next_in_order = curry(cls._get_next_or_previous_in_order, is_next=True) + cls.get_previous_in_order = curry(cls._get_next_or_previous_in_order, is_next=False) + setattr(opts.order_with_respect_to.rel.to, 'get_%s_order' % cls.__name__.lower(), curry(method_get_order, cls)) + setattr(opts.order_with_respect_to.rel.to, 'set_%s_order' % cls.__name__.lower(), curry(method_set_order, cls)) + + # Give the class a docstring -- its definition. + if cls.__doc__ is None: + cls.__doc__ = "%s(%s)" % (cls.__name__, ", ".join([f.attname for f in opts.fields])) + + if hasattr(cls, 'get_absolute_url'): + cls.get_absolute_url = curry(get_absolute_url, opts, cls.get_absolute_url) + + dispatcher.send(signal=signals.class_prepared, sender=cls) + class Model(object): __metaclass__ = ModelBase @@ -176,38 +205,6 @@ class Model(object): raise TypeError, "'%s' is an invalid keyword argument for this function" % kwargs.keys()[0] dispatcher.send(signal=signals.post_init, sender=self.__class__, instance=self) - def add_to_class(cls, name, value): - if name == 'Admin': - assert type(value) == types.ClassType, "%r attribute of %s model must be a class, not a %s object" % (name, cls.__name__, type(value)) - value = AdminOptions(**dict([(k, v) for k, v in value.__dict__.items() if not k.startswith('_')])) - if hasattr(value, 'contribute_to_class'): - value.contribute_to_class(cls, name) - else: - setattr(cls, name, value) - add_to_class = classmethod(add_to_class) - - def _prepare(cls): - # Creates some methods once self._meta has been populated. - opts = cls._meta - opts._prepare(cls) - - if opts.order_with_respect_to: - cls.get_next_in_order = curry(cls._get_next_or_previous_in_order, is_next=True) - cls.get_previous_in_order = curry(cls._get_next_or_previous_in_order, is_next=False) - setattr(opts.order_with_respect_to.rel.to, 'get_%s_order' % cls.__name__.lower(), curry(method_get_order, cls)) - setattr(opts.order_with_respect_to.rel.to, 'set_%s_order' % cls.__name__.lower(), curry(method_set_order, cls)) - - # Give the class a docstring -- its definition. - if cls.__doc__ is None: - cls.__doc__ = "%s(%s)" % (cls.__name__, ", ".join([f.attname for f in opts.fields])) - - if hasattr(cls, 'get_absolute_url'): - cls.get_absolute_url = curry(get_absolute_url, opts, cls.get_absolute_url) - - dispatcher.send(signal=signals.class_prepared, sender=cls) - - _prepare = classmethod(_prepare) - def save(self, raw=False): dispatcher.send(signal=signals.pre_save, sender=self.__class__, instance=self, raw=raw) diff --git a/django/utils/translation/trans_real.py b/django/utils/translation/trans_real.py index a7259b3ce5..f8a39710b4 100644 --- a/django/utils/translation/trans_real.py +++ b/django/utils/translation/trans_real.py @@ -42,7 +42,10 @@ accept_language_re = re.compile(r''' ''', re.VERBOSE) def to_locale(language, to_lower=False): - "Turns a language name (en-us) into a locale name (en_US)." + """ + Turns a language name (en-us) into a locale name (en_US). If 'to_lower' is + True, the last component is lower-cased (en_us). + """ p = language.find('-') if p >= 0: if to_lower: @@ -357,19 +360,20 @@ def get_language_from_request(request): return lang_code accept = request.META.get('HTTP_ACCEPT_LANGUAGE', '') - for lang, unused in parse_accept_lang_header(accept): - if lang == '*': + for accept_lang, unused in parse_accept_lang_header(accept): + if accept_lang == '*': break # We have a very restricted form for our language files (no encoding # specifier, since they all must be UTF-8 and only one possible # language each time. So we avoid the overhead of gettext.find() and - # look up the MO file manually. + # work out the MO file manually. - normalized = locale.locale_alias.get(to_locale(lang, True)) + # 'normalized' is the root name of the locale in POSIX format (which is + # the format used for the directories holding the MO files). + normalized = locale.locale_alias.get(to_locale(accept_lang, True)) if not normalized: continue - # Remove the default encoding from locale_alias normalized = normalized.split('.')[0] @@ -378,10 +382,11 @@ def get_language_from_request(request): # need to check again. return _accepted[normalized] - for lang in (normalized, normalized.split('_')[0]): + for lang, dirname in ((accept_lang, normalized), + (accept_lang.split('-')[0], normalized.split('_')[0])): if lang not in supported: continue - langfile = os.path.join(globalpath, lang, 'LC_MESSAGES', + langfile = os.path.join(globalpath, dirname, 'LC_MESSAGES', 'django.mo') if os.path.exists(langfile): _accepted[normalized] = lang diff --git a/tests/regressiontests/i18n/misc.py b/tests/regressiontests/i18n/misc.py index fa22fd05d3..eb64263799 100644 --- a/tests/regressiontests/i18n/misc.py +++ b/tests/regressiontests/i18n/misc.py @@ -2,6 +2,11 @@ tests = """ >>> from django.utils.translation.trans_real import parse_accept_lang_header >>> p = parse_accept_lang_header +# +# Testing HTTP header parsing. First, we test that we can parse the values +# according to the spec (and that we extract all the pieces in the right order). +# + Good headers. >>> p('de') [('de', 1.0)] @@ -54,4 +59,44 @@ Bad headers; should always return []. >>> p('') [] +# +# Now test that we parse a literal HTTP header correctly. +# + +>>> from django.utils.translation.trans_real import get_language_from_request +>>> g = get_language_from_request +>>> from django.http import HttpRequest +>>> r = HttpRequest +>>> r.COOKIES = {} + +These tests assumes the es, es_AR, pt and pt_BR translations exit in the Django +source tree. +>>> r.META = {'HTTP_ACCEPT_LANGUAGE': 'pt-br'} +>>> g(r) +'pt-br' +>>> r.META = {'HTTP_ACCEPT_LANGUAGE': 'pt'} +>>> g(r) +'pt' +>>> r.META = {'HTTP_ACCEPT_LANGUAGE': 'es,de'} +>>> g(r) +'es' +>>> r.META = {'HTTP_ACCEPT_LANGUAGE': 'es-ar,de'} +>>> g(r) +'es-ar' + +This test assumes there won't be a Django translation to a US variation +of the Spanish language, a safe assumption. When the user sets it +as the preferred language, the main 'es' translation should be selected +instead. +>>> r.META = {'HTTP_ACCEPT_LANGUAGE': 'es-us'} +>>> g(r) +'es' + +This tests the following scenario: there isn't a main language (zh) +translation of Django but there is a translation to variation (zh_CN) +the user sets zh-cn as the preferred language, it should be selected by +Django without falling back nor ignoring it. +>>> r.META = {'HTTP_ACCEPT_LANGUAGE': 'zh-cn,de'} +>>> g(r) +'zh-cn' """