<?xml version="1.0" encoding="UTF-8"?>
<commit>
  <added type="array">
    <added>
      <filename>django/contrib/admin/templates/admin/auth/user/add_form.html</filename>
    </added>
    <added>
      <filename>django/contrib/admin/views/auth.py</filename>
    </added>
    <added>
      <filename>docs/documentation.txt</filename>
    </added>
    <added>
      <filename>docs/release_notes_0.95.txt</filename>
    </added>
    <added>
      <filename>tests/othertests/urlpatterns_reverse.py</filename>
    </added>
  </added>
  <modified type="array">
    <modified>
      <diff>@@ -16,12 +16,23 @@ before Simon departed and currently oversees things with Adrian.
 
 Wilson Miner &lt;http://www.wilsonminer.com/&gt;, who designed Django's admin
 interface, pretty error pages, official Web site (djangoproject.com) and has
-made many other contributions.
+made many other contributions. He makes us look good.
+
+Malcolm Tredinnick &lt;http://www.pointy-stick.com/blog/&gt;, who has made
+significant contributions to all levels of the framework, from its database
+layer to template system and documentation.
 
 Georg &quot;Hugo&quot; Bauer &lt;http://hugo.muensterland.org/&gt;, who added
 internationalization support, manages i18n contributions and has made a ton
 of excellent tweaks, feature additions and bug fixes.
 
+Luke Plant &lt;http://lukeplant.me.uk/&gt;, who has contributed many excellent
+improvements, including database-level improvements, the CSRF middleware and
+unit tests.
+
+Russell Keith-Magee &lt;freakboy@iinet.net.au&gt;, who has contributed many excellent
+improvements, including refactoring of the Django ORM code and unit tests.
+
 Robert Wittams &lt;http://robert.wittams.com/&gt;, who majorly refactored the Django
 admin application to allow for easier reuse and has made a ton of excellent
 tweaks, feature additions and bug fixes.
@@ -49,6 +60,7 @@ answer newbie questions, and generally made Django that much better:
     Amit Chakradeo &lt;http://amit.chakradeo.net/&gt;
     ChaosKCW
     Ian Clelland &lt;clelland@gmail.com&gt;
+    crankycoder@gmail.com
     Matt Croydon &lt;http://www.postneo.com/&gt;
     Jonathan Daugherty (cygnus) &lt;http://www.cprogrammer.org/&gt;
     Jason Davies (Esaj) &lt;http://www.jasondavies.com/&gt;
@@ -59,6 +71,8 @@ answer newbie questions, and generally made Django that much better:
     Clint Ecker
     gandalf@owca.info
     Baishampayan Ghose
+    martin.glueck@gmail.com
+    Simon Greenhill &lt;dev@simon.net.nz&gt;
     Espen Grindhaug &lt;http://grindhaug.org/&gt;
     Brant Harris
     hipertracker@gmail.com
@@ -70,7 +84,6 @@ answer newbie questions, and generally made Django that much better:
     Michael Josephson &lt;http://www.sdjournal.com/&gt;
     jpellerin@gmail.com
     junzhang.jn@gmail.com
-    Russell Keith-Magee &lt;freakboy@iinet.net.au&gt;
     Garth Kidd &lt;http://www.deadlybloodyserious.com/&gt;
     kilian &lt;kilian.cavalotti@lip6.fr&gt;
     Sune Kirkeby &lt;http://ibofobi.dk/&gt;
@@ -98,6 +111,7 @@ answer newbie questions, and generally made Django that much better:
     Sam Newman &lt;http://www.magpiebrain.com/&gt;
     Neal Norwitz &lt;nnorwitz@google.com&gt;
     oggie rob &lt;oz.robharvey@gmail.com&gt;
+    Jay Parlar &lt;parlar@gmail.com&gt;
     pgross@thoughtworks.com
     phaedo &lt;http://phaedo.cx/&gt;
     phil@produxion.net
@@ -112,13 +126,14 @@ answer newbie questions, and generally made Django that much better:
     Ivan Sagalaev (Maniac) &lt;http://www.softwaremaniacs.org/&gt;
     David Schein
     sopel
+    Thomas Steinacher &lt;tom@eggdrop.ch&gt;
     Radek &#352;varz &lt;http://www.svarz.cz/translate/&gt;
     Swaroop C H &lt;http://www.swaroopch.info&gt;
     Aaron Swartz &lt;http://www.aaronsw.com/&gt;
     Tom Tobin
     Tom Insam
     Joe Topjian &lt;http://joe.terrarum.net/geek/code/python/django/&gt;
-    Malcolm Tredinnick
+    Karen Tracey &lt;graybark@bellsouth.net&gt;
     Amit Upadhyay
     Geert Vanderkelen
     Milton Waddams</diff>
      <filename>AUTHORS</filename>
    </modified>
    <modified>
      <diff>@@ -1,7 +1,22 @@
 Thanks for downloading Django.
 
-To install it, make sure you have Python 2.3 or greater installed. Then run this command:
+To install it, make sure you have Python 2.3 or greater installed. Then run
+this command from the command prompt:
 
-python setup.py install
+    python setup.py install
+
+Note this requires a working Internet connection if you don't already have the
+Python utility &quot;setuptools&quot; installed.
+
+AS AN ALTERNATIVE, you can just copy the entire &quot;django&quot; directory to Python's
+site-packages directory, which is located wherever your Python installation
+lives. Some places you might check are:
+
+    /usr/lib/python2.4/site-packages (Unix, Python 2.4)
+    /usr/lib/python2.3/site-packages (Unix, Python 2.3)
+    C:\\PYTHON\site-packages         (Windows)
+
+This second solution does not require a working Internet connection; it
+bypasses &quot;setuptools&quot; entirely.
 
 For more detailed instructions, see docs/install.txt.</diff>
      <filename>INSTALL</filename>
    </modified>
    <modified>
      <diff>@@ -1 +1 @@
-VERSION = (0, 95, 'post-magic-removal')
+VERSION = (0, 96, 'pre')</diff>
      <filename>django/__init__.py</filename>
    </modified>
    <modified>
      <diff>@@ -14,7 +14,7 @@ def compile_messages():
         print &quot;this script should be run from the django svn tree or your project or app tree&quot;
         sys.exit(1)
 
-    for (dirpath, dirnames, filenames) in os.walk(basedir):
+    for dirpath, dirnames, filenames in os.walk(basedir):
         for f in filenames:
             if f.endswith('.po'):
                 sys.stderr.write('processing file %s in %s\n' % (f, dirpath))</diff>
      <filename>django/bin/compile-messages.py</filename>
    </modified>
    <modified>
      <diff>@@ -252,6 +252,7 @@ MIDDLEWARE_CLASSES = (
 SESSION_COOKIE_NAME = 'sessionid'         # Cookie name. This can be whatever you want.
 SESSION_COOKIE_AGE = 60 * 60 * 24 * 7 * 2 # Age of cookie, in seconds (default: 2 weeks).
 SESSION_COOKIE_DOMAIN = None              # A string like &quot;.lawrence.com&quot;, or None for standard domain cookie.
+SESSION_COOKIE_SECURE = False             # Whether the session cookie should be secure (https:// only).
 SESSION_SAVE_EVERY_REQUEST = False        # Whether to save the session data on every request.
 SESSION_EXPIRE_AT_BROWSER_CLOSE = False   # Whether sessions expire when a user closes his browser.
 </diff>
      <filename>django/conf/global_settings.py</filename>
    </modified>
    <modified>
      <diff></diff>
      <filename>django/conf/locale/ru/LC_MESSAGES/django.mo</filename>
    </modified>
    <modified>
      <diff>@@ -5,17 +5,21 @@
 #
 msgid &quot;&quot;
 msgstr &quot;&quot;
-&quot;Project-Id-Version: django\n&quot;
+&quot;Project-Id-Version: django 0.95\n&quot;
 &quot;Report-Msgid-Bugs-To: \n&quot;
 &quot;POT-Creation-Date: 2006-05-16 10:11+0200\n&quot;
-&quot;PO-Revision-Date: 2005-11-26 00:00\n&quot;
-&quot;Last-Translator: Dmitry Sorokin &lt;ds@dial.com.ru&gt;\n&quot;
-&quot;Language-Team: LANGUAGE &lt;LL@li.org&gt;\n&quot;
+&quot;PO-Revision-Date: 2006-08-14 18:08+0300\n&quot;
+&quot;Last-Translator: Grigory Fateyev &lt;greg@dial.com.ru&gt;\n&quot;
+&quot;Language-Team: Dialcom Services &lt;greg@dial.com.ru&gt;\n&quot;
 &quot;MIME-Version: 1.0\n&quot;
 &quot;Content-Type: text/plain; charset=utf-8\n&quot;
 &quot;Content-Transfer-Encoding: 8bit\n&quot;
+&quot;X-Poedit-Language: Russian\n&quot;
+&quot;X-Poedit-Country: RUSSIAN FEDERATION\n&quot;
+&quot;X-Poedit-SourceCharset: utf-8\n&quot;
 
-#: contrib/comments/models.py:67 contrib/comments/models.py:166
+#: contrib/comments/models.py:67
+#: contrib/comments/models.py:166
 msgid &quot;object ID&quot;
 msgstr &quot;ID &#1086;&#1073;&#1098;&#1077;&#1082;&#1090;&#1072;&quot;
 
@@ -23,7 +27,8 @@ msgstr &quot;ID &#1086;&#1073;&#1098;&#1077;&#1082;&#1090;&#1072;&quot;
 msgid &quot;headline&quot;
 msgstr &quot;&#1079;&#1072;&#1075;&#1086;&#1083;&#1086;&#1074;&#1086;&#1082;&quot;
 
-#: contrib/comments/models.py:69 contrib/comments/models.py:90
+#: contrib/comments/models.py:69
+#: contrib/comments/models.py:90
 #: contrib/comments/models.py:167
 msgid &quot;comment&quot;
 msgstr &quot;&#1082;&#1086;&#1084;&#1084;&#1077;&#1085;&#1090;&#1072;&#1088;&#1080;&#1081;&quot;
@@ -64,15 +69,18 @@ msgstr &quot;&#1088;&#1077;&#1081;&#1090;&#1080;&#1085;&#1075; #8&quot;
 msgid &quot;is valid rating&quot;
 msgstr &quot;&#1076;&#1086;&#1089;&#1090;&#1091;&#1087;&#1085;&#1099;&#1081; &#1088;&#1077;&#1081;&#1090;&#1080;&#1085;&#1075;&quot;
 
-#: contrib/comments/models.py:83 contrib/comments/models.py:169
+#: contrib/comments/models.py:83
+#: contrib/comments/models.py:169
 msgid &quot;date/time submitted&quot;
 msgstr &quot;&#1076;&#1072;&#1090;&#1072;/&#1074;&#1088;&#1077;&#1084;&#1103; &#1076;&#1086;&#1073;&#1072;&#1074;&#1083;&#1077;&#1085;&#1080;&#1103;&quot;
 
-#: contrib/comments/models.py:84 contrib/comments/models.py:170
+#: contrib/comments/models.py:84
+#: contrib/comments/models.py:170
 msgid &quot;is public&quot;
 msgstr &quot;&#1087;&#1091;&#1073;&#1083;&#1080;&#1095;&#1085;&#1099;&#1081;&quot;
 
-#: contrib/comments/models.py:85 contrib/admin/views/doc.py:289
+#: contrib/comments/models.py:85
+#: contrib/admin/views/doc.py:289
 msgid &quot;IP address&quot;
 msgstr &quot;IP &#1072;&#1076;&#1088;&#1077;&#1089;&quot;
 
@@ -81,19 +89,15 @@ msgid &quot;is removed&quot;
 msgstr &quot;&#1091;&#1076;&#1072;&#1083;&#1077;&#1085;&quot;
 
 #: contrib/comments/models.py:86
-msgid &quot;&quot;
-&quot;Check this box if the comment is inappropriate. A \&quot;This comment has been &quot;
-&quot;removed\&quot; message will be displayed instead.&quot;
-msgstr &quot;&quot;
-&quot;&#1054;&#1090;&#1084;&#1077;&#1090;&#1090;&#1077;, &#1077;&#1089;&#1083;&#1080; &#1082;&#1086;&#1084;&#1084;&#1077;&#1085;&#1090;&#1072;&#1088;&#1080;&#1081; &#1085;&#1077;&#1078;&#1077;&#1083;&#1072;&#1090;&#1077;&#1083;&#1077;&#1085;. &#1057;&#1086;&#1086;&#1073;&#1097;&#1077;&#1085;&#1080;&#1077; \&quot;&#1069;&#1090;&#1086;&#1090; &#1082;&#1086;&#1084;&#1084;&#1077;&#1085;&#1090;&#1072;&#1088;&#1080;&#1081; &#1073;&#1099;&#1083; &quot;
-&quot;&#1091;&#1076;&#1072;&#1083;&#1105;&#1085;\&quot; &#1073;&#1091;&#1076;&#1077;&#1090; &#1087;&#1086;&#1082;&#1072;&#1079;&#1072;&#1085;&#1086; &#1074;&#1079;&#1072;&#1084;&#1077;&#1085;.&quot;
+msgid &quot;Check this box if the comment is inappropriate. A \&quot;This comment has been removed\&quot; message will be displayed instead.&quot;
+msgstr &quot;&#1054;&#1090;&#1084;&#1077;&#1090;&#1090;&#1077;, &#1077;&#1089;&#1083;&#1080; &#1082;&#1086;&#1084;&#1084;&#1077;&#1085;&#1090;&#1072;&#1088;&#1080;&#1081; &#1085;&#1077;&#1078;&#1077;&#1083;&#1072;&#1090;&#1077;&#1083;&#1077;&#1085;. &#1057;&#1086;&#1086;&#1073;&#1097;&#1077;&#1085;&#1080;&#1077; \&quot;&#1069;&#1090;&#1086;&#1090; &#1082;&#1086;&#1084;&#1084;&#1077;&#1085;&#1090;&#1072;&#1088;&#1080;&#1081; &#1073;&#1099;&#1083; &#1091;&#1076;&#1072;&#1083;&#1105;&#1085;\&quot; &#1073;&#1091;&#1076;&#1077;&#1090; &#1087;&#1086;&#1082;&#1072;&#1079;&#1072;&#1085;&#1086; &#1074;&#1079;&#1072;&#1084;&#1077;&#1085;.&quot;
 
 #: contrib/comments/models.py:91
-#, fuzzy
 msgid &quot;comments&quot;
-msgstr &quot;&#1082;&#1086;&#1084;&#1084;&#1077;&#1085;&#1090;&#1072;&#1088;&#1080;&#1081;&quot;
+msgstr &quot;&#1082;&#1086;&#1084;&#1084;&#1077;&#1085;&#1090;&#1072;&#1088;&#1080;&#1080;&quot;
 
-#: contrib/comments/models.py:131 contrib/comments/models.py:207
+#: contrib/comments/models.py:131
+#: contrib/comments/models.py:207
 msgid &quot;Content object&quot;
 msgstr &quot;&#1054;&#1073;&#1098;&#1077;&#1082;&#1090; &#1085;&#1072;&#1087;&#1086;&#1083;&#1085;&#1077;&#1085;&#1080;&#1103;&quot;
 
@@ -151,7 +155,7 @@ msgstr &quot;&#1050;&#1072;&#1088;&#1084;&#1072; &#1089;&#1095;&#1077;&#1090;&#1072;&quot;
 #: contrib/comments/models.py:242
 #, python-format
 msgid &quot;%(score)d rating by %(user)s&quot;
-msgstr &quot;&quot;
+msgstr &quot;%(score)d &#1088;&#1077;&#1081;&#1090;&#1080;&#1085;&#1075; %(user)s&quot;
 
 #: contrib/comments/models.py:258
 #, python-format
@@ -196,7 +200,7 @@ msgstr &quot;&#1059;&#1076;&#1072;&#1083;&#1077;&#1085;&#1080;&#1103; &#1084;&#1086;&#1076;&#1077;&#1088;&#1072;&#1090;&#1086;&#1088;&#1086;&#1084;&quot;
 #: contrib/comments/models.py:285
 #, python-format
 msgid &quot;Moderator deletion by %r&quot;
-msgstr &quot;&quot;
+msgstr &quot;&#1059;&#1076;&#1072;&#1083;&#1077;&#1085;&#1080;&#1103; &#1084;&#1086;&#1076;&#1077;&#1088;&#1072;&#1090;&#1086;&#1088;&#1072; %r&quot;
 
 #: contrib/comments/views/karma.py:19
 msgid &quot;Anonymous users cannot vote&quot;
@@ -211,20 +215,17 @@ msgid &quot;No voting for yourself&quot;
 msgstr &quot;&#1053;&#1077;&#1083;&#1100;&#1079;&#1103; &#1075;&#1086;&#1083;&#1086;&#1089;&#1086;&#1074;&#1072;&#1090;&#1100; &#1079;&#1072; &#1089;&#1077;&#1073;&#1103;&quot;
 
 #: contrib/comments/views/comments.py:28
-msgid &quot;&quot;
-&quot;This rating is required because you've entered at least one other rating.&quot;
-msgstr &quot;&quot;
+msgid &quot;This rating is required because you've entered at least one other rating.&quot;
+msgstr &quot;&#1069;&#1090;&#1086;&#1090; &#1088;&#1077;&#1081;&#1090;&#1080;&#1085;&#1075; &#1085;&#1077;&#1086;&#1073;&#1093;&#1086;&#1076;&#1080;&#1084;, &#1090;&#1072;&#1082; &#1082;&#1072;&#1082; &#1074;&#1099; &#1074;&#1093;&#1086;&#1076;&#1080;&#1083;&#1080; &#1093;&#1086;&#1090;&#1100; &#1086;&#1076;&#1085;&#1072;&#1078;&#1076;&#1099; &#1074; &#1076;&#1088;&#1091;&#1075;&#1080;&#1077; &#1088;&#1077;&#1081;&#1090;&#1080;&#1085;&#1075;&#1080;.&quot;
 
 #: contrib/comments/views/comments.py:112
 #, python-format
 msgid &quot;&quot;
-&quot;This comment was posted by a user who has posted fewer than %(count)s &quot;
-&quot;comment:\n&quot;
+&quot;This comment was posted by a user who has posted fewer than %(count)s comment:\n&quot;
 &quot;\n&quot;
 &quot;%(text)s&quot;
 msgid_plural &quot;&quot;
-&quot;This comment was posted by a user who has posted fewer than %(count)s &quot;
-&quot;comments:\n&quot;
+&quot;This comment was posted by a user who has posted fewer than %(count)s comments:\n&quot;
 &quot;\n&quot;
 &quot;%(text)s&quot;
 msgstr[0] &quot;&quot;
@@ -258,11 +259,8 @@ msgstr &quot;&#1050;&#1090;&#1086;-&#1090;&#1086; &#1074;&#1084;&#1077;&#1096;&#1080;&#1074;&#1072;&#1077;&#1090;&#1089;&#1103; &#1074; &#1092;&#1086;&#1088;&#1084;&#1091; &#1082;&#1086;&#1084;&#1084;&#1077;&#1085;&#1090;&#1072;&#1088;&#1080;&#1103;
 
 #: contrib/comments/views/comments.py:207
 #: contrib/comments/views/comments.py:292
-msgid &quot;&quot;
-&quot;The comment form had an invalid 'target' parameter -- the object ID was &quot;
-&quot;invalid&quot;
-msgstr &quot;&quot;
-&quot;&#1060;&#1086;&#1088;&#1084;&#1072; &#1082;&#1086;&#1084;&#1084;&#1077;&#1085;&#1090;&#1072;&#1088;&#1080;&#1103; &#1080;&#1084;&#1077;&#1077;&#1090; &#1085;&#1077;&#1074;&#1077;&#1088;&#1085;&#1099;&#1081; 'target' &#1087;&#1072;&#1088;&#1072;&#1084;&#1077;&#1090;&#1088; -- ID &#1086;&#1073;&#1098;&#1077;&#1082;&#1090;&#1072; &#1085;&#1077;&#1074;&#1077;&#1088;&#1085;&#1086;&quot;
+msgid &quot;The comment form had an invalid 'target' parameter -- the object ID was invalid&quot;
+msgstr &quot;&#1060;&#1086;&#1088;&#1084;&#1072; &#1082;&#1086;&#1084;&#1084;&#1077;&#1085;&#1090;&#1072;&#1088;&#1080;&#1103; &#1080;&#1084;&#1077;&#1077;&#1090; &#1085;&#1077;&#1074;&#1077;&#1088;&#1085;&#1099;&#1081; 'target' &#1087;&#1072;&#1088;&#1072;&#1084;&#1077;&#1090;&#1088; -- ID &#1086;&#1073;&#1098;&#1077;&#1082;&#1090;&#1072; &#1085;&#1077;&#1074;&#1077;&#1088;&#1085;&#1086;&quot;
 
 #: contrib/comments/views/comments.py:257
 #: contrib/comments/views/comments.py:321
@@ -343,8 +341,11 @@ msgid &quot;&quot;
 &quot;&lt;h3&gt;By %s:&lt;/h3&gt;\n&quot;
 &quot;&lt;ul&gt;\n&quot;
 msgstr &quot;&quot;
+&quot;&lt;h3&gt;&#1050; %s:&lt;/h3&gt;\n&quot;
+&quot;&lt;ul&gt;\n&quot;
 
-#: contrib/admin/filterspecs.py:70 contrib/admin/filterspecs.py:88
+#: contrib/admin/filterspecs.py:70
+#: contrib/admin/filterspecs.py:88
 #: contrib/admin/filterspecs.py:143
 msgid &quot;All&quot;
 msgstr &quot;&#1042;&#1089;&#1077;&quot;
@@ -413,14 +414,11 @@ msgstr &quot;&#1078;&#1091;&#1088;&#1085;&#1072;&#1083;&#1100;&#1085;&#1099;&#1077; &#1079;&#1072;&#1087;&#1080;&#1089;&#1080;&quot;
 msgid &quot;All dates&quot;
 msgstr &quot;&#1042;&#1089;&#1077; &#1076;&#1072;&#1090;&#1099;&quot;
 
-#: contrib/admin/views/decorators.py:9 contrib/auth/forms.py:36
+#: contrib/admin/views/decorators.py:9
+#: contrib/auth/forms.py:36
 #: contrib/auth/forms.py:41
-msgid &quot;&quot;
-&quot;Please enter a correct username and password. Note that both fields are case-&quot;
-&quot;sensitive.&quot;
-msgstr &quot;&quot;
-&quot;&#1055;&#1086;&#1078;&#1072;&#1083;&#1091;&#1081;&#1089;&#1090;&#1072;, &#1074;&#1074;&#1086;&#1076;&#1080;&#1090;&#1077; &#1074;&#1077;&#1088;&#1085;&#1099;&#1077; &#1076;&#1072;&#1085;&#1085;&#1099;&#1077; &#1080;&#1084;&#1077;&#1085;&#1103; &#1087;&#1086;&#1083;&#1100;&#1079;&#1086;&#1074;&#1072;&#1090;&#1077;&#1083;&#1103; &#1080; &#1087;&#1072;&#1088;&#1086;&#1083;&#1100;. &#1055;&#1086;&#1084;&#1085;&#1080;&#1090;&#1077;, &#1086;&#1073;&#1072; &quot;
-&quot;&#1087;&#1086;&#1083;&#1103; &#1095;&#1091;&#1074;&#1089;&#1090;&#1074;&#1080;&#1090;&#1077;&#1083;&#1100;&#1085;&#1099; &#1082; &#1088;&#1077;&#1075;&#1080;&#1089;&#1090;&#1088;&#1091;.&quot;
+msgid &quot;Please enter a correct username and password. Note that both fields are case-sensitive.&quot;
+msgstr &quot;&#1055;&#1086;&#1078;&#1072;&#1083;&#1091;&#1081;&#1089;&#1090;&#1072;, &#1074;&#1074;&#1086;&#1076;&#1080;&#1090;&#1077; &#1074;&#1077;&#1088;&#1085;&#1099;&#1077; &#1076;&#1072;&#1085;&#1085;&#1099;&#1077; &#1080;&#1084;&#1077;&#1085;&#1103; &#1087;&#1086;&#1083;&#1100;&#1079;&#1086;&#1074;&#1072;&#1090;&#1077;&#1083;&#1103; &#1080; &#1087;&#1072;&#1088;&#1086;&#1083;&#1100;. &#1055;&#1086;&#1084;&#1085;&#1080;&#1090;&#1077;, &#1086;&#1073;&#1072; &#1087;&#1086;&#1083;&#1103; &#1095;&#1091;&#1074;&#1089;&#1090;&#1074;&#1080;&#1090;&#1077;&#1083;&#1100;&#1085;&#1099; &#1082; &#1088;&#1077;&#1075;&#1080;&#1089;&#1090;&#1088;&#1091;.&quot;
 
 #: contrib/admin/views/decorators.py:23
 #: contrib/admin/templates/admin/login.html:25
@@ -428,20 +426,12 @@ msgid &quot;Log in&quot;
 msgstr &quot;&#1042;&#1093;&#1086;&#1076;&quot;
 
 #: contrib/admin/views/decorators.py:61
-msgid &quot;&quot;
-&quot;Please log in again, because your session has expired. Don't worry: Your &quot;
-&quot;submission has been saved.&quot;
-msgstr &quot;&quot;
-&quot;&#1055;&#1086;&#1078;&#1072;&#1083;&#1091;&#1081;&#1089;&#1090;&#1072; &#1074;&#1086;&#1081;&#1076;&#1080;&#1090;&#1077; &#1089;&#1085;&#1086;&#1074;&#1072;, &#1087;&#1086;&#1089;&#1082;&#1086;&#1083;&#1100;&#1082;&#1091;&#1082; &#1074;&#1072;&#1096;&#1072; &#1089;&#1077;&#1089;&#1089;&#1080;&#1103; &#1091;&#1089;&#1090;&#1072;&#1088;&#1077;&#1083;&#1072;. &#1053;&#1077; &#1073;&#1077;&#1089;&#1087;&#1086;&#1082;&#1086;&#1081;&#1090;&#1077;&#1089;&#1100;:&quot;
-&quot;&#1074;&#1074;&#1077;&#1076;&#1077;&#1085;&#1085;&#1099;&#1077; &#1074;&#1072;&#1084;&#1080; &#1076;&#1072;&#1085;&#1085;&#1099;&#1077; &#1089;&#1086;&#1093;&#1088;&#1072;&#1085;&#1077;&#1085;&#1099;.&quot;
+msgid &quot;Please log in again, because your session has expired. Don't worry: Your submission has been saved.&quot;
+msgstr &quot;&#1055;&#1086;&#1078;&#1072;&#1083;&#1091;&#1081;&#1089;&#1090;&#1072; &#1074;&#1086;&#1081;&#1076;&#1080;&#1090;&#1077; &#1089;&#1085;&#1086;&#1074;&#1072;, &#1087;&#1086;&#1089;&#1082;&#1086;&#1083;&#1100;&#1082;&#1091;&#1082; &#1074;&#1072;&#1096;&#1072; &#1089;&#1077;&#1089;&#1089;&#1080;&#1103; &#1091;&#1089;&#1090;&#1072;&#1088;&#1077;&#1083;&#1072;. &#1053;&#1077; &#1073;&#1077;&#1089;&#1087;&#1086;&#1082;&#1086;&#1081;&#1090;&#1077;&#1089;&#1100;:&#1074;&#1074;&#1077;&#1076;&#1077;&#1085;&#1085;&#1099;&#1077; &#1074;&#1072;&#1084;&#1080; &#1076;&#1072;&#1085;&#1085;&#1099;&#1077; &#1089;&#1086;&#1093;&#1088;&#1072;&#1085;&#1077;&#1085;&#1099;.&quot;
 
 #: contrib/admin/views/decorators.py:68
-msgid &quot;&quot;
-&quot;Looks like your browser isn't configured to accept cookies. Please enable &quot;
-&quot;cookies, reload this page, and try again.&quot;
-msgstr &quot;&quot;
-&quot;&#1055;&#1086;&#1093;&#1086;&#1078;&#1077;, &#1095;&#1090;&#1086; &#1074;&#1072;&#1096; &#1073;&#1088;&#1086;&#1091;&#1079;&#1077;&#1088; &#1085;&#1077; &#1085;&#1072;&#1089;&#1090;&#1088;&#1086;&#1077;&#1085; &#1085;&#1072; &#1087;&#1088;&#1080;&#1077;&#1084; cookies. &#1055;&#1086;&#1078;&#1072;&#1083;&#1091;&#1081;&#1089;&#1090;&#1074;&#1072; &#1074;&#1082;&#1083;&#1102;&#1095;&#1080;&#1090;&#1077; &quot;
-&quot;cookie, &#1087;&#1077;&#1088;&#1077;&#1079;&#1072;&#1075;&#1088;&#1091;&#1079;&#1080;&#1090;&#1077; &#1089;&#1090;&#1088;&#1072;&#1085;&#1080;&#1094;&#1091; &#1080; &#1087;&#1086;&#1087;&#1099;&#1090;&#1072;&#1081;&#1090;&#1077;&#1089;&#1100; &#1089;&#1085;&#1086;&#1074;&#1072;. &quot;
+msgid &quot;Looks like your browser isn't configured to accept cookies. Please enable cookies, reload this page, and try again.&quot;
+msgstr &quot;&#1055;&#1086;&#1093;&#1086;&#1078;&#1077;, &#1095;&#1090;&#1086; &#1074;&#1072;&#1096; &#1073;&#1088;&#1086;&#1091;&#1079;&#1077;&#1088; &#1085;&#1077; &#1085;&#1072;&#1089;&#1090;&#1088;&#1086;&#1077;&#1085; &#1085;&#1072; &#1087;&#1088;&#1080;&#1077;&#1084; cookies. &#1055;&#1086;&#1078;&#1072;&#1083;&#1091;&#1081;&#1089;&#1090;&#1074;&#1072; &#1074;&#1082;&#1083;&#1102;&#1095;&#1080;&#1090;&#1077; cookie, &#1087;&#1077;&#1088;&#1077;&#1079;&#1072;&#1075;&#1088;&#1091;&#1079;&#1080;&#1090;&#1077; &#1089;&#1090;&#1088;&#1072;&#1085;&#1080;&#1094;&#1091; &#1080; &#1087;&#1086;&#1087;&#1099;&#1090;&#1072;&#1081;&#1090;&#1077;&#1089;&#1100; &#1089;&#1085;&#1086;&#1074;&#1072;. &quot;
 
 #: contrib/admin/views/decorators.py:82
 msgid &quot;Usernames cannot contain the '@' character.&quot;
@@ -450,7 +440,7 @@ msgstr &quot;&#1048;&#1084;&#1103; &#1087;&#1086;&#1083;&#1100;&#1079;&#1086;&#1074;&#1072;&#1090;&#1077;&#1083;&#1103; &#1085;&#1077; &#1084;&#1086;&#1078;&#1077;&#1090; &#1074;&#1082;&#1083;&#1102;&#1095;&#1072;&#1090;&#1100; &#1089;&#1080;&#1084;
 #: contrib/admin/views/decorators.py:84
 #, python-format
 msgid &quot;Your e-mail address is not your username. Try '%s' instead.&quot;
-msgstr &quot;&quot;
+msgstr &quot;&#1042;&#1072;&#1096; e-mail &#1072;&#1076;&#1088;&#1077;&#1089; &#1085;&#1077; &#1074;&#1072;&#1096;&#1077; &#1080;&#1084;&#1103;. &#1055;&#1086;&#1087;&#1088;&#1086;&#1073;&#1091;&#1081;&#1090;&#1077; '%s' &#1074; &#1079;&#1072;&#1084;&#1077;&#1085;.&quot;
 
 #: contrib/admin/views/main.py:226
 msgid &quot;Site administration&quot;
@@ -461,11 +451,13 @@ msgstr &quot;&#1040;&#1076;&#1084;&#1080;&#1085;&#1080;&#1089;&#1090;&#1088;&#1080;&#1088;&#1086;&#1074;&#1072;&#1085;&#1080;&#1077; &#1089;&#1072;&#1081;&#1090;&#1072;&quot;
 msgid &quot;The %(name)s \&quot;%(obj)s\&quot; was added successfully.&quot;
 msgstr &quot;%(name)s \&quot;%(obj)s\&quot; &#1073;&#1099;&#1083;&#1080; &#1091;&#1089;&#1087;&#1077;&#1096;&#1085;&#1086; &#1076;&#1086;&#1073;&#1072;&#1074;&#1083;&#1077;&#1085;&#1099;.&quot;
 
-#: contrib/admin/views/main.py:264 contrib/admin/views/main.py:348
+#: contrib/admin/views/main.py:264
+#: contrib/admin/views/main.py:348
 msgid &quot;You may edit it again below.&quot;
 msgstr &quot;&#1042;&#1099; &#1089;&#1085;&#1086;&#1074;&#1072; &#1084;&#1086;&#1078;&#1077;&#1090;&#1077; &#1088;&#1077;&#1076;&#1072;&#1082;&#1090;&#1080;&#1088;&#1086;&#1074;&#1072;&#1090;&#1100; &#1080;&#1093; &#1074;&#1085;&#1080;&#1079;&#1091;&quot;
 
-#: contrib/admin/views/main.py:272 contrib/admin/views/main.py:357
+#: contrib/admin/views/main.py:272
+#: contrib/admin/views/main.py:357
 #, python-format
 msgid &quot;You may add another %s below.&quot;
 msgstr &quot;&#1042;&#1099; &#1084;&#1086;&#1078;&#1077;&#1090;&#1077; &#1076;&#1086;&#1073;&#1072;&#1074;&#1080;&#1090;&#1100; %s &#1074;&#1085;&#1080;&#1079;&#1091;.&quot;
@@ -480,7 +472,8 @@ msgstr &quot;&#1044;&#1086;&#1073;&#1072;&#1074;&#1080;&#1090;&#1100; %s&quot;
 msgid &quot;Added %s.&quot;
 msgstr &quot;&#1044;&#1086;&#1073;&#1072;&#1074;&#1083;&#1077;&#1085;&#1086; %s&quot;
 
-#: contrib/admin/views/main.py:336 contrib/admin/views/main.py:338
+#: contrib/admin/views/main.py:336
+#: contrib/admin/views/main.py:338
 #: contrib/admin/views/main.py:340
 msgid &quot;and&quot;
 msgstr &quot;&#1080;&quot;
@@ -497,18 +490,17 @@ msgstr &quot;&#1059;&#1076;&#1072;&#1083;&#1077;&#1085;&#1086; %s.&quot;
 
 #: contrib/admin/views/main.py:343
 msgid &quot;No fields changed.&quot;
-msgstr &quot;&quot;
+msgstr &quot;&#1053;&#1080; &#1086;&#1076;&#1085;&#1086; &#1087;&#1086;&#1083;&#1077; &#1085;&#1077; &#1080;&#1079;&#1084;&#1077;&#1085;&#1077;&#1085;&#1086;.&quot;
 
 #: contrib/admin/views/main.py:346
 #, python-format
 msgid &quot;The %(name)s \&quot;%(obj)s\&quot; was changed successfully.&quot;
-msgstr &quot;&quot;
+msgstr &quot;%(name)s \&quot;%(obj)s\&quot; &#1073;&#1099;&#1083;&#1086; &#1091;&#1089;&#1087;&#1077;&#1096;&#1085;&#1086; &#1080;&#1079;&#1084;&#1077;&#1085;&#1077;&#1085;&#1086;&quot;
 
 #: contrib/admin/views/main.py:354
 #, python-format
-msgid &quot;&quot;
-&quot;The %(name)s \&quot;%(obj)s\&quot; was added successfully. You may edit it again below.&quot;
-msgstr &quot;&quot;
+msgid &quot;The %(name)s \&quot;%(obj)s\&quot; was added successfully. You may edit it again below.&quot;
+msgstr &quot;%(name)s \&quot;%(obj)s\&quot; &#1073;&#1099;&#1083;&#1086; &#1091;&#1089;&#1087;&#1077;&#1096;&#1085;&#1086; &#1080;&#1079;&#1084;&#1077;&#1085;&#1077;&#1085;&#1086;. &#1042;&#1099; &#1084;&#1086;&#1078;&#1077;&#1090;&#1077; &#1088;&#1077;&#1076;&#1072;&#1082;&#1090;&#1080;&#1088;&#1086;&#1074;&#1072;&#1090;&#1100; &#1077;&#1075;&#1086; &#1089;&#1085;&#1086;&#1074;&#1072;.&quot;
 
 #: contrib/admin/views/main.py:392
 #, python-format
@@ -549,9 +541,12 @@ msgstr &quot;&#1042;&#1099;&#1073;&#1077;&#1088;&#1080;&#1090;&#1077; %s&quot;
 msgid &quot;Select %s to change&quot;
 msgstr &quot;&#1042;&#1099;&#1073;&#1077;&#1088;&#1080;&#1090;&#1077; %s &#1076;&#1083;&#1103; &#1080;&#1079;&#1084;&#1077;&#1085;&#1077;&#1085;&#1080;&#1103;&quot;
 
-#: contrib/admin/views/doc.py:277 contrib/admin/views/doc.py:286
-#: contrib/admin/views/doc.py:288 contrib/admin/views/doc.py:294
-#: contrib/admin/views/doc.py:295 contrib/admin/views/doc.py:297
+#: contrib/admin/views/doc.py:277
+#: contrib/admin/views/doc.py:286
+#: contrib/admin/views/doc.py:288
+#: contrib/admin/views/doc.py:294
+#: contrib/admin/views/doc.py:295
+#: contrib/admin/views/doc.py:297
 msgid &quot;Integer&quot;
 msgstr &quot;&#1062;&#1077;&#1083;&#1086;&#1077;&quot;
 
@@ -559,7 +554,8 @@ msgstr &quot;&#1062;&#1077;&#1083;&#1086;&#1077;&quot;
 msgid &quot;Boolean (Either True or False)&quot;
 msgstr &quot;&#1051;&#1086;&#1075;&#1080;&#1095;&#1077;&#1089;&#1082;&#1086;&#1077; (True &#1080;&#1083;&#1080; False)&quot;
 
-#: contrib/admin/views/doc.py:279 contrib/admin/views/doc.py:296
+#: contrib/admin/views/doc.py:279
+#: contrib/admin/views/doc.py:296
 #, python-format
 msgid &quot;String (up to %(maxlength)s)&quot;
 msgstr &quot;&#1057;&#1090;&#1088;&#1086;&#1082;&#1072; (&#1076;&#1086; %(maxlength)s &#1089;&#1080;&#1084;&#1074;&#1086;&#1083;&#1086;&#1074;)&quot;
@@ -580,7 +576,8 @@ msgstr &quot;&#1044;&#1072;&#1090;&#1072; (&#1089; &#1091;&#1082;&#1072;&#1079;&#1072;&#1085;&#1080;&#1077;&#1084; &#1074;&#1088;&#1077;&#1084;&#1077;&#1085;&#1080;)&quot;
 msgid &quot;E-mail address&quot;
 msgstr &quot;E-mail &#1072;&#1076;&#1088;&#1077;&#1089;&quot;
 
-#: contrib/admin/views/doc.py:284 contrib/admin/views/doc.py:287
+#: contrib/admin/views/doc.py:284
+#: contrib/admin/views/doc.py:287
 msgid &quot;File path&quot;
 msgstr &quot;&#1055;&#1091;&#1090;&#1100; &#1082; &#1092;&#1072;&#1081;&#1083;&#1091;&quot;
 
@@ -594,7 +591,7 @@ msgstr &quot;&#1051;&#1086;&#1075;&#1080;&#1095;&#1077;&#1089;&#1082;&#1086;&#1077; (True, False &#1080;&#1083;&#1080; None)&quot;
 
 #: contrib/admin/views/doc.py:292
 msgid &quot;Relation to parent model&quot;
-msgstr &quot;&quot;
+msgstr &quot;&#1047;&#1072;&#1074;&#1080;&#1089;&#1080;&#1084;&#1086;&#1089;&#1090;&#1100; &#1085;&#1072; &#1088;&#1086;&#1076;&#1080;&#1090;&#1077;&#1083;&#1100;&#1089;&#1082;&#1091;&#1102; &#1084;&#1086;&#1076;&#1077;&#1083;&#1100;.&quot;
 
 #: contrib/admin/views/doc.py:293
 msgid &quot;Phone number&quot;
@@ -608,7 +605,8 @@ msgstr &quot;&#1058;&#1077;&#1082;&#1089;&#1090;&quot;
 msgid &quot;Time&quot;
 msgstr &quot;&#1042;&#1088;&#1077;&#1084;&#1103;&quot;
 
-#: contrib/admin/views/doc.py:300 contrib/flatpages/models.py:7
+#: contrib/admin/views/doc.py:300
+#: contrib/flatpages/models.py:7
 msgid &quot;URL&quot;
 msgstr &quot;URL&quot;
 
@@ -688,12 +686,8 @@ msgid &quot;DATE_WITH_TIME_FULL&quot;
 msgstr &quot;j. N Y, H:i&quot;
 
 #: contrib/admin/templates/admin/object_history.html:36
-msgid &quot;&quot;
-&quot;This object doesn't have a change history. It probably wasn't added via this &quot;
-&quot;admin site.&quot;
-msgstr &quot;&quot;
-&quot;&#1044;&#1072;&#1085;&#1085;&#1099;&#1081; &#1086;&#1073;&#1100;&#1077;&#1082;&#1090; &#1085;&#1077; &#1080;&#1084;&#1077;&#1077;&#1090; &#1080;&#1089;&#1090;&#1086;&#1088;&#1080;&#1080; &#1080;&#1079;&#1084;&#1077;&#1085;&#1077;&#1085;&#1080;&#1103;. &#1042;&#1086;&#1079;&#1084;&#1086;&#1078;&#1085;&#1086; &#1086;&#1085; &#1085;&#1077; &#1073;&#1099;&#1083; &#1076;&#1086;&#1073;&#1072;&#1074;&#1083;&#1077;&#1085; &#1095;&#1077;&#1088;&#1077;&#1079; &quot;
-&quot;&#1076;&#1072;&#1085;&#1085;&#1099;&#1081; &#1072;&#1076;&#1084;&#1080;&#1085;&#1080;&#1089;&#1090;&#1088;&#1072;&#1090;&#1080;&#1074;&#1085;&#1099;&#1081; &#1089;&#1072;&#1081;&#1090;.&quot;
+msgid &quot;This object doesn't have a change history. It probably wasn't added via this admin site.&quot;
+msgstr &quot;&#1044;&#1072;&#1085;&#1085;&#1099;&#1081; &#1086;&#1073;&#1100;&#1077;&#1082;&#1090; &#1085;&#1077; &#1080;&#1084;&#1077;&#1077;&#1090; &#1080;&#1089;&#1090;&#1086;&#1088;&#1080;&#1080; &#1080;&#1079;&#1084;&#1077;&#1085;&#1077;&#1085;&#1080;&#1103;. &#1042;&#1086;&#1079;&#1084;&#1086;&#1078;&#1085;&#1086; &#1086;&#1085; &#1085;&#1077; &#1073;&#1099;&#1083; &#1076;&#1086;&#1073;&#1072;&#1074;&#1083;&#1077;&#1085; &#1095;&#1077;&#1088;&#1077;&#1079; &#1076;&#1072;&#1085;&#1085;&#1099;&#1081; &#1072;&#1076;&#1084;&#1080;&#1085;&#1080;&#1089;&#1090;&#1088;&#1072;&#1090;&#1080;&#1074;&#1085;&#1099;&#1081; &#1089;&#1072;&#1081;&#1090;.&quot;
 
 #: contrib/admin/templates/admin/base_site.html:4
 msgid &quot;Django site admin&quot;
@@ -716,12 +710,8 @@ msgid &quot;Server Error &lt;em&gt;(500)&lt;/em&gt;&quot;
 msgstr &quot;&#1054;&#1096;&#1080;&#1073;&#1082;&#1072; &#1089;&#1077;&#1088;&#1074;&#1077;&#1088;&#1072; &lt;em&gt;(500)&lt;/em&gt;&quot;
 
 #: contrib/admin/templates/admin/500.html:10
-msgid &quot;&quot;
-&quot;There's been an error. It's been reported to the site administrators via e-&quot;
-&quot;mail and should be fixed shortly. Thanks for your patience.&quot;
-msgstr &quot;&quot;
-&quot;&#1055;&#1088;&#1086;&#1080;&#1079;&#1086;&#1096;&#1083;&#1072; &#1086;&#1096;&#1080;&#1073;&#1082;&#1072;. &#1054;&#1090;&#1095;&#1077;&#1090; &#1086;&#1073; &#1086;&#1096;&#1080;&#1073;&#1082;&#1077; &#1086;&#1090;&#1087;&#1088;&#1072;&#1074;&#1083;&#1077;&#1085; &#1072;&#1076;&#1084;&#1080;&#1085;&#1080;&#1089;&#1090;&#1088;&#1072;&#1090;&#1086;&#1088;&#1072;&#1084; &#1089;&#1072;&#1081;&#1090;&#1072; &#1087;&#1086; e-mail&#1080; &quot;
-&quot;&#1086;&#1085;&#1072; &#1076;&#1086;&#1083;&#1078;&#1085;&#1072; &#1073;&#1099;&#1090;&#1100; &#1074;&#1089;&#1082;&#1086;&#1088;&#1077; &#1080;&#1089;&#1087;&#1088;&#1072;&#1074;&#1083;&#1077;&#1085;&#1072;. &#1041;&#1083;&#1072;&#1075;&#1086;&#1076;&#1072;&#1088;&#1080;&#1084; &#1074;&#1072;&#1089; &#1085;&#1072; &#1090;&#1077;&#1088;&#1087;&#1077;&#1085;&#1080;&#1077; &#1080; &#1087;&#1086;&#1084;&#1086;&#1097;&#1100;.&quot;
+msgid &quot;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.&quot;
+msgstr &quot;&#1055;&#1088;&#1086;&#1080;&#1079;&#1086;&#1096;&#1083;&#1072; &#1086;&#1096;&#1080;&#1073;&#1082;&#1072;. &#1054;&#1090;&#1095;&#1077;&#1090; &#1086;&#1073; &#1086;&#1096;&#1080;&#1073;&#1082;&#1077; &#1086;&#1090;&#1087;&#1088;&#1072;&#1074;&#1083;&#1077;&#1085; &#1072;&#1076;&#1084;&#1080;&#1085;&#1080;&#1089;&#1090;&#1088;&#1072;&#1090;&#1086;&#1088;&#1072;&#1084; &#1089;&#1072;&#1081;&#1090;&#1072; &#1087;&#1086; e-mail&#1080; &#1086;&#1085;&#1072; &#1076;&#1086;&#1083;&#1078;&#1085;&#1072; &#1073;&#1099;&#1090;&#1100; &#1074;&#1089;&#1082;&#1086;&#1088;&#1077; &#1080;&#1089;&#1087;&#1088;&#1072;&#1074;&#1083;&#1077;&#1085;&#1072;. &#1041;&#1083;&#1072;&#1075;&#1086;&#1076;&#1072;&#1088;&#1080;&#1084; &#1074;&#1072;&#1089; &#1085;&#1072; &#1090;&#1077;&#1088;&#1087;&#1077;&#1085;&#1080;&#1077; &#1080; &#1087;&#1086;&#1084;&#1086;&#1097;&#1100;.&quot;
 
 #: contrib/admin/templates/admin/404.html:4
 #: contrib/admin/templates/admin/404.html:8
@@ -782,23 +772,13 @@ msgstr &quot;&#1059;&#1076;&#1072;&#1083;&#1080;&#1090;&#1100;&quot;
 
 #: contrib/admin/templates/admin/delete_confirmation.html:14
 #, python-format
-msgid &quot;&quot;
-&quot;Deleting the %(object_name)s '%(object)s' would result in deleting related &quot;
-&quot;objects, but your account doesn't have permission to delete the following &quot;
-&quot;types of objects:&quot;
-msgstr &quot;&quot;
-&quot;&#1059;&#1076;&#1072;&#1083;&#1077;&#1085;&#1080;&#1077; &#1086;&#1073;&#1098;&#1077;&#1082;&#1090;&#1072; %(object_name)s '%(object)s' &#1087;&#1088;&#1080;&#1074;&#1077;&#1076;&#1077;&#1090; &#1082; &#1091;&#1076;&#1072;&#1083;&#1077;&#1085;&#1080;&#1102; &#1079;&#1072;&#1074;&#1080;&#1089;&#1080;&#1084;&#1099;&#1093;  &quot;
-&quot;&#1101;&#1083;&#1077;&#1084;&#1077;&#1085;&#1090;&#1086;&#1074;, &#1085;&#1086; &#1087;&#1088;&#1077;&#1076;&#1086;&#1089;&#1090;&#1072;&#1074;&#1083;&#1077;&#1085;&#1085;&#1099;&#1093; &#1074;&#1072;&#1084; &#1087;&#1088;&#1072;&#1074; &#1085;&#1077;&#1076;&#1086;&#1089;&#1090;&#1072;&#1090;&#1086;&#1095;&#1085;&#1086; &#1076;&#1083;&#1103; &#1091;&#1076;&#1072;&#1083;&#1077;&#1085;&#1080;&#1103; &#1089;&#1083;&#1077;&#1076;&#1091;&#1102;&#1097;&#1080;&#1093; &quot;
-&quot;&#1090;&#1080;&#1087;&#1086;&#1074; &#1086;&#1073;&#1098;&#1077;&#1082;&#1090;&#1086;&#1074;:&quot;
+msgid &quot;Deleting the %(object_name)s '%(object)s' would result in deleting related objects, but your account doesn't have permission to delete the following types of objects:&quot;
+msgstr &quot;&#1059;&#1076;&#1072;&#1083;&#1077;&#1085;&#1080;&#1077; &#1086;&#1073;&#1098;&#1077;&#1082;&#1090;&#1072; %(object_name)s '%(object)s' &#1087;&#1088;&#1080;&#1074;&#1077;&#1076;&#1077;&#1090; &#1082; &#1091;&#1076;&#1072;&#1083;&#1077;&#1085;&#1080;&#1102; &#1079;&#1072;&#1074;&#1080;&#1089;&#1080;&#1084;&#1099;&#1093;  &#1101;&#1083;&#1077;&#1084;&#1077;&#1085;&#1090;&#1086;&#1074;, &#1085;&#1086; &#1087;&#1088;&#1077;&#1076;&#1086;&#1089;&#1090;&#1072;&#1074;&#1083;&#1077;&#1085;&#1085;&#1099;&#1093; &#1074;&#1072;&#1084; &#1087;&#1088;&#1072;&#1074; &#1085;&#1077;&#1076;&#1086;&#1089;&#1090;&#1072;&#1090;&#1086;&#1095;&#1085;&#1086; &#1076;&#1083;&#1103; &#1091;&#1076;&#1072;&#1083;&#1077;&#1085;&#1080;&#1103; &#1089;&#1083;&#1077;&#1076;&#1091;&#1102;&#1097;&#1080;&#1093; &#1090;&#1080;&#1087;&#1086;&#1074; &#1086;&#1073;&#1098;&#1077;&#1082;&#1090;&#1086;&#1074;:&quot;
 
 #: contrib/admin/templates/admin/delete_confirmation.html:21
 #, python-format
-msgid &quot;&quot;
-&quot;Are you sure you want to delete the %(object_name)s \&quot;%(object)s\&quot;? All of &quot;
-&quot;the following related items will be deleted:&quot;
-msgstr &quot;&quot;
-&quot;&#1042;&#1099; &#1091;&#1074;&#1077;&#1088;&#1077;&#1085;&#1099;, &#1095;&#1090;&#1086; &#1093;&#1086;&#1090;&#1080;&#1090;&#1077; &#1091;&#1076;&#1072;&#1083;&#1080;&#1090;&#1100;  %(object_name)s \&quot;%(object)s\&quot;? &#1042;&#1089;&#1077; &quot;
-&quot;&#1089;&#1083;&#1077;&#1076;&#1091;&#1102;&#1097;&#1080;&#1077; &#1086;&#1073;&#1098;&#1077;&#1082;&#1090;&#1099; &#1090;&#1072;&#1082;&#1078;&#1077; &#1073;&#1091;&#1076;&#1091;&#1090; &#1091;&#1076;&#1072;&#1083;&#1077;&#1085;&#1099;:&quot;
+msgid &quot;Are you sure you want to delete the %(object_name)s \&quot;%(object)s\&quot;? All of the following related items will be deleted:&quot;
+msgstr &quot;&#1042;&#1099; &#1091;&#1074;&#1077;&#1088;&#1077;&#1085;&#1099;, &#1095;&#1090;&#1086; &#1093;&#1086;&#1090;&#1080;&#1090;&#1077; &#1091;&#1076;&#1072;&#1083;&#1080;&#1090;&#1100;  %(object_name)s \&quot;%(object)s\&quot;? &#1042;&#1089;&#1077; &#1089;&#1083;&#1077;&#1076;&#1091;&#1102;&#1097;&#1080;&#1077; &#1086;&#1073;&#1098;&#1077;&#1082;&#1090;&#1099; &#1090;&#1072;&#1082;&#1078;&#1077; &#1073;&#1091;&#1076;&#1091;&#1090; &#1091;&#1076;&#1072;&#1083;&#1077;&#1085;&#1099;:&quot;
 
 #: contrib/admin/templates/admin/delete_confirmation.html:26
 msgid &quot;Yes, I'm sure&quot;
@@ -807,7 +787,7 @@ msgstr &quot;&#1044;&#1072;, &#1103; &#1091;&#1074;&#1077;&#1088;&#1077;&#1085;&quot;
 #: contrib/admin/templates/admin/filter.html:2
 #, python-format
 msgid &quot; By %(title)s &quot;
-msgstr &quot;&quot;
+msgstr &quot;&#1050;%(title)s &quot;
 
 #: contrib/admin/templates/admin/search_form.html:8
 msgid &quot;Go&quot;
@@ -871,12 +851,8 @@ msgid &quot;Password reset&quot;
 msgstr &quot;&#1057;&#1073;&#1088;&#1086;&#1089; &#1087;&#1072;&#1088;&#1086;&#1083;&#1103;&quot;
 
 #: contrib/admin/templates/registration/password_reset_form.html:12
-msgid &quot;&quot;
-&quot;Forgotten your password? Enter your e-mail address below, and we'll reset &quot;
-&quot;your password and e-mail the new one to you.&quot;
-msgstr &quot;&quot;
-&quot;&#1047;&#1072;&#1073;&#1099;&#1083;&#1080; &#1087;&#1072;&#1088;&#1086;&#1083;&#1100;? &#1042;&#1074;&#1077;&#1076;&#1080;&#1090;&#1077; &#1074;&#1072;&#1096; e-mail &#1072;&#1076;&#1088;&#1077;&#1089; &#1085;&#1080;&#1078;&#1077; &#1080; &#1084;&#1099; &#1086;&#1095;&#1080;&#1089;&#1090;&#1080;&#1084; &#1074;&#1072;&#1096; &#1089;&#1090;&#1072;&#1088;&#1099;&#1081; &#1087;&#1072;&#1088;&#1086;&#1083;&#1100;, &quot;
-&quot;&#1080; &#1074;&#1099;&#1096;&#1083;&#1077;&#1084; &#1074;&#1072;&#1084; &#1087;&#1086; e-mail &#1085;&#1086;&#1074;&#1099;&#1081;.&quot;
+msgid &quot;Forgotten your password? Enter your e-mail address below, and we'll reset your password and e-mail the new one to you.&quot;
+msgstr &quot;&#1047;&#1072;&#1073;&#1099;&#1083;&#1080; &#1087;&#1072;&#1088;&#1086;&#1083;&#1100;? &#1042;&#1074;&#1077;&#1076;&#1080;&#1090;&#1077; &#1074;&#1072;&#1096; e-mail &#1072;&#1076;&#1088;&#1077;&#1089; &#1085;&#1080;&#1078;&#1077; &#1080; &#1084;&#1099; &#1086;&#1095;&#1080;&#1089;&#1090;&#1080;&#1084; &#1074;&#1072;&#1096; &#1089;&#1090;&#1072;&#1088;&#1099;&#1081; &#1087;&#1072;&#1088;&#1086;&#1083;&#1100;, &#1080; &#1074;&#1099;&#1096;&#1083;&#1077;&#1084; &#1074;&#1072;&#1084; &#1087;&#1086; e-mail &#1085;&#1086;&#1074;&#1099;&#1081;.&quot;
 
 #: contrib/admin/templates/registration/password_reset_form.html:16
 msgid &quot;E-mail address:&quot;
@@ -900,20 +876,12 @@ msgid &quot;Password reset successful&quot;
 msgstr &quot;&#1059;&#1089;&#1087;&#1077;&#1096;&#1085;&#1072;&#1103; &#1086;&#1095;&#1080;&#1089;&#1090;&#1082;&#1072; &#1087;&#1072;&#1088;&#1086;&#1083;&#1103;&quot;
 
 #: contrib/admin/templates/registration/password_reset_done.html:12
-msgid &quot;&quot;
-&quot;We've e-mailed a new password to the e-mail address you submitted. You &quot;
-&quot;should be receiving it shortly.&quot;
-msgstr &quot;&quot;
-&quot;&#1052;&#1099; &#1086;&#1090;&#1087;&#1088;&#1072;&#1074;&#1080;&#1083;&#1080; &#1085;&#1086;&#1074;&#1099;&#1081; &#1087;&#1072;&#1088;&#1086;&#1083;&#1100; &#1087;&#1086; &#1091;&#1082;&#1072;&#1079;&#1072;&#1085;&#1085;&#1086;&#1084;&#1091; &#1074;&#1072;&#1084;&#1080; &#1072;&#1076;&#1088;&#1077;&#1089;&#1091; &#1101;&#1083;&#1077;&#1082;&#1090;&#1088;&#1086;&#1085;&#1085;&#1086;&#1081; &#1087;&#1086;&#1095;&#1090;&#1099;. &#1042;&#1099; &quot;
-&quot;&#1076;&#1086;&#1083;&#1078;&#1085;&#1099; &#1077;&#1075;&#1086; &#1074;&#1089;&#1082;&#1086;&#1088;&#1077; &#1087;&#1086;&#1083;&#1091;&#1095;&#1080;&#1090;&#1100;.&quot;
+msgid &quot;We've e-mailed a new password to the e-mail address you submitted. You should be receiving it shortly.&quot;
+msgstr &quot;&#1052;&#1099; &#1086;&#1090;&#1087;&#1088;&#1072;&#1074;&#1080;&#1083;&#1080; &#1085;&#1086;&#1074;&#1099;&#1081; &#1087;&#1072;&#1088;&#1086;&#1083;&#1100; &#1087;&#1086; &#1091;&#1082;&#1072;&#1079;&#1072;&#1085;&#1085;&#1086;&#1084;&#1091; &#1074;&#1072;&#1084;&#1080; &#1072;&#1076;&#1088;&#1077;&#1089;&#1091; &#1101;&#1083;&#1077;&#1082;&#1090;&#1088;&#1086;&#1085;&#1085;&#1086;&#1081; &#1087;&#1086;&#1095;&#1090;&#1099;. &#1042;&#1099; &#1076;&#1086;&#1083;&#1078;&#1085;&#1099; &#1077;&#1075;&#1086; &#1074;&#1089;&#1082;&#1086;&#1088;&#1077; &#1087;&#1086;&#1083;&#1091;&#1095;&#1080;&#1090;&#1100;.&quot;
 
 #: contrib/admin/templates/registration/password_change_form.html:12
-msgid &quot;&quot;
-&quot;Please enter your old password, for security's sake, and then enter your new &quot;
-&quot;password twice so we can verify you typed it in correctly.&quot;
-msgstr &quot;&quot;
-&quot;&#1042; &#1094;&#1077;&#1083;&#1103;&#1093; &#1073;&#1077;&#1079;&#1086;&#1087;&#1072;&#1089;&#1085;&#1086;&#1089;&#1090;&#1080;, &#1087;&#1086;&#1078;&#1072;&#1083;&#1091;&#1081;&#1089;&#1090;&#1072;, &#1074;&#1074;&#1077;&#1076;&#1080;&#1090;&#1077; &#1074;&#1072;&#1096; &#1089;&#1090;&#1072;&#1088;&#1099;&#1081; &#1087;&#1072;&#1088;&#1086;&#1083;&#1100;, &#1079;&#1072;&#1090;&#1077;&#1084; - &#1085;&#1086;&#1074;&#1099;&#1081; &quot;
-&quot;&#1087;&#1072;&#1088;&#1086;&#1083;&#1100; &#1076;&#1074;&#1072;&#1078;&#1076;&#1099;, &#1089; &#1090;&#1077;&#1084;, &#1095;&#1090;&#1086;&#1073;&#1099; &#1084;&#1099; &#1084;&#1086;&#1075;&#1083;&#1080; &#1091;&#1073;&#1077;&#1076;&#1080;&#1090;&#1100;&#1089;&#1103; &#1074; &#1087;&#1088;&#1072;&#1074;&#1080;&#1083;&#1100;&#1085;&#1086;&#1089;&#1090;&#1080; &#1085;&#1072;&#1087;&#1080;&#1089;&#1072;&#1085;&#1080;&#1103;.&quot;
+msgid &quot;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.&quot;
+msgstr &quot;&#1042; &#1094;&#1077;&#1083;&#1103;&#1093; &#1073;&#1077;&#1079;&#1086;&#1087;&#1072;&#1089;&#1085;&#1086;&#1089;&#1090;&#1080;, &#1087;&#1086;&#1078;&#1072;&#1083;&#1091;&#1081;&#1089;&#1090;&#1072;, &#1074;&#1074;&#1077;&#1076;&#1080;&#1090;&#1077; &#1074;&#1072;&#1096; &#1089;&#1090;&#1072;&#1088;&#1099;&#1081; &#1087;&#1072;&#1088;&#1086;&#1083;&#1100;, &#1079;&#1072;&#1090;&#1077;&#1084; - &#1085;&#1086;&#1074;&#1099;&#1081; &#1087;&#1072;&#1088;&#1086;&#1083;&#1100; &#1076;&#1074;&#1072;&#1078;&#1076;&#1099;, &#1089; &#1090;&#1077;&#1084;, &#1095;&#1090;&#1086;&#1073;&#1099; &#1084;&#1099; &#1084;&#1086;&#1075;&#1083;&#1080; &#1091;&#1073;&#1077;&#1076;&#1080;&#1090;&#1100;&#1089;&#1103; &#1074; &#1087;&#1088;&#1072;&#1074;&#1080;&#1083;&#1100;&#1085;&#1086;&#1089;&#1090;&#1080; &#1085;&#1072;&#1087;&#1080;&#1089;&#1072;&#1085;&#1080;&#1103;.&quot;
 
 #: contrib/admin/templates/registration/password_change_form.html:17
 msgid &quot;Old password:&quot;
@@ -986,24 +954,16 @@ msgid &quot;Documentation for this page&quot;
 msgstr &quot;&#1044;&#1086;&#1082;&#1091;&#1084;&#1077;&#1085;&#1090;&#1072;&#1094;&#1080;&#1103; &#1087;&#1086; &#1076;&#1072;&#1085;&#1085;&#1086;&#1081; &#1089;&#1090;&#1088;&#1072;&#1085;&#1080;&#1094;&#1077;&quot;
 
 #: contrib/admin/templates/admin_doc/bookmarklets.html:20
-msgid &quot;&quot;
-&quot;Jumps you from any page to the documentation for the view that generates &quot;
-&quot;that page.&quot;
-msgstr &quot;&quot;
-&quot;&#1055;&#1077;&#1088;&#1077;&#1085;&#1072;&#1087;&#1088;&#1072;&#1074;&#1080;&#1090; &#1074;&#1072;&#1089; &#1089; &#1083;&#1102;&#1073;&#1086;&#1081; &#1089;&#1090;&#1088;&#1072;&#1085;&#1080;&#1094;&#1099; &#1082; &#1087;&#1088;&#1086;&#1089;&#1084;&#1086;&#1090;&#1088;&#1091; &#1076;&#1086;&#1082;&#1091;&#1084;&#1077;&#1085;&#1090;&#1072;, &#1082;&#1086;&#1090;&#1086;&#1088;&#1099;&#1081; &#1075;&#1077;&#1085;&#1077;&#1088;&#1080;&#1088;&#1091;&#1077;&#1090; &quot;
-&quot;&#1101;&#1090;&#1091; &#1089;&#1090;&#1088;&#1072;&#1085;&#1080;&#1094;&#1091;.&quot;
+msgid &quot;Jumps you from any page to the documentation for the view that generates that page.&quot;
+msgstr &quot;&#1055;&#1077;&#1088;&#1077;&#1085;&#1072;&#1087;&#1088;&#1072;&#1074;&#1080;&#1090; &#1074;&#1072;&#1089; &#1089; &#1083;&#1102;&#1073;&#1086;&#1081; &#1089;&#1090;&#1088;&#1072;&#1085;&#1080;&#1094;&#1099; &#1082; &#1087;&#1088;&#1086;&#1089;&#1084;&#1086;&#1090;&#1088;&#1091; &#1076;&#1086;&#1082;&#1091;&#1084;&#1077;&#1085;&#1090;&#1072;, &#1082;&#1086;&#1090;&#1086;&#1088;&#1099;&#1081; &#1075;&#1077;&#1085;&#1077;&#1088;&#1080;&#1088;&#1091;&#1077;&#1090; &#1101;&#1090;&#1091; &#1089;&#1090;&#1088;&#1072;&#1085;&#1080;&#1094;&#1091;.&quot;
 
 #: contrib/admin/templates/admin_doc/bookmarklets.html:22
 msgid &quot;Show object ID&quot;
 msgstr &quot;&#1055;&#1086;&#1082;&#1072;&#1079;&#1072;&#1090;&#1100; ID &#1086;&#1073;&#1100;&#1077;&#1082;&#1090;&#1072;&quot;
 
 #: contrib/admin/templates/admin_doc/bookmarklets.html:23
-msgid &quot;&quot;
-&quot;Shows the content-type and unique ID for pages that represent a single &quot;
-&quot;object.&quot;
-msgstr &quot;&quot;
-&quot;&#1055;&#1086;&#1082;&#1072;&#1079;&#1099;&#1074;&#1072;&#1077;&#1090; &#1090;&#1080;&#1087; &#1085;&#1072;&#1087;&#1086;&#1083;&#1085;&#1077;&#1085;&#1080;&#1103; &#1080; &#1091;&#1085;&#1080;&#1082;&#1072;&#1083;&#1100;&#1085;&#1099;&#1081; ID &#1076;&#1083;&#1103; &#1089;&#1090;&#1088;&#1072;&#1085;&#1080;&#1094;, &#1082;&#1086;&#1090;&#1086;&#1088;&#1099;&#1077; &#1086;&#1079;&#1085;&#1072;&#1095;&#1072;&#1102;&#1090; &quot;
-&quot;&#1086;&#1076;&#1080;&#1085;&#1086;&#1082;&#1080;&#1081; &#1086;&#1073;&#1098;&#1077;&#1082;&#1090;.&quot;
+msgid &quot;Shows the content-type and unique ID for pages that represent a single object.&quot;
+msgstr &quot;&#1055;&#1086;&#1082;&#1072;&#1079;&#1099;&#1074;&#1072;&#1077;&#1090; &#1090;&#1080;&#1087; &#1085;&#1072;&#1087;&#1086;&#1083;&#1085;&#1077;&#1085;&#1080;&#1103; &#1080; &#1091;&#1085;&#1080;&#1082;&#1072;&#1083;&#1100;&#1085;&#1099;&#1081; ID &#1076;&#1083;&#1103; &#1089;&#1090;&#1088;&#1072;&#1085;&#1080;&#1094;, &#1082;&#1086;&#1090;&#1086;&#1088;&#1099;&#1077; &#1086;&#1079;&#1085;&#1072;&#1095;&#1072;&#1102;&#1090; &#1086;&#1076;&#1080;&#1085;&#1086;&#1082;&#1080;&#1081; &#1086;&#1073;&#1098;&#1077;&#1082;&#1090;.&quot;
 
 #: contrib/admin/templates/admin_doc/bookmarklets.html:25
 msgid &quot;Edit this object (current window)&quot;
@@ -1042,24 +1002,16 @@ msgid &quot;redirect from&quot;
 msgstr &quot;&#1087;&#1077;&#1088;&#1077;&#1085;&#1072;&#1087;&#1088;&#1072;&#1074;&#1080;&#1090;&#1100; &#1080;&#1079;&quot;
 
 #: contrib/redirects/models.py:8
-msgid &quot;&quot;
-&quot;This should be an absolute path, excluding the domain name. Example: '/&quot;
-&quot;events/search/'.&quot;
-msgstr &quot;&quot;
-&quot;&#1069;&#1090;&#1086; &#1076;&#1086;&#1083;&#1078;&#1077;&#1085; &#1073;&#1099;&#1090;&#1100; &#1072;&#1073;&#1089;&#1086;&#1083;&#1102;&#1090;&#1085;&#1099;&#1081; &#1087;&#1091;&#1090;&#1100;, &#1080;&#1089;&#1082;&#1083;&#1102;&#1095;&#1072;&#1103; &#1076;&#1086;&#1084;&#1077;&#1085;&#1085;&#1086;&#1077; &#1080;&#1084;&#1103;. &#1055;&#1088;&#1080;&#1084;&#1077;&#1088;: '/events/&quot;
-&quot;search/'.&quot;
+msgid &quot;This should be an absolute path, excluding the domain name. Example: '/events/search/'.&quot;
+msgstr &quot;&#1069;&#1090;&#1086; &#1076;&#1086;&#1083;&#1078;&#1077;&#1085; &#1073;&#1099;&#1090;&#1100; &#1072;&#1073;&#1089;&#1086;&#1083;&#1102;&#1090;&#1085;&#1099;&#1081; &#1087;&#1091;&#1090;&#1100;, &#1080;&#1089;&#1082;&#1083;&#1102;&#1095;&#1072;&#1103; &#1076;&#1086;&#1084;&#1077;&#1085;&#1085;&#1086;&#1077; &#1080;&#1084;&#1103;. &#1055;&#1088;&#1080;&#1084;&#1077;&#1088;: '/events/search/'.&quot;
 
 #: contrib/redirects/models.py:9
 msgid &quot;redirect to&quot;
 msgstr &quot;&#1087;&#1077;&#1088;&#1077;&#1085;&#1072;&#1087;&#1088;&#1072;&#1074;&#1080;&#1090;&#1100; &#1085;&#1072;&quot;
 
 #: contrib/redirects/models.py:10
-msgid &quot;&quot;
-&quot;This can be either an absolute path (as above) or a full URL starting with &quot;
-&quot;'http://'.&quot;
-msgstr &quot;&quot;
-&quot;&#1069;&#1090;&#1086; &#1076;&#1086;&#1083;&#1078;&#1077;&#1085; &#1073;&#1099;&#1090;&#1100;, &#1083;&#1080;&#1073;&#1086; &#1072;&#1073;&#1089;&#1086;&#1083;&#1102;&#1090;&#1085;&#1099;&#1081; &#1087;&#1091;&#1090;&#1100; (&#1082;&#1072;&#1082; &#1074;&#1099;&#1096;&#1077;) &#1080;&#1083;&#1080; &#1087;&#1086;&#1083;&#1085;&#1099;&#1081; URL &#1085;&#1072;&#1095;&#1080;&#1085;&#1072;&#1102;&#1097;&#1080;&#1081;&#1089;&#1103; &quot;
-&quot;&#1089; 'http://'.&quot;
+msgid &quot;This can be either an absolute path (as above) or a full URL starting with 'http://'.&quot;
+msgstr &quot;&#1069;&#1090;&#1086; &#1076;&#1086;&#1083;&#1078;&#1077;&#1085; &#1073;&#1099;&#1090;&#1100;, &#1083;&#1080;&#1073;&#1086; &#1072;&#1073;&#1089;&#1086;&#1083;&#1102;&#1090;&#1085;&#1099;&#1081; &#1087;&#1091;&#1090;&#1100; (&#1082;&#1072;&#1082; &#1074;&#1099;&#1096;&#1077;) &#1080;&#1083;&#1080; &#1087;&#1086;&#1083;&#1085;&#1099;&#1081; URL &#1085;&#1072;&#1095;&#1080;&#1085;&#1072;&#1102;&#1097;&#1080;&#1081;&#1089;&#1103; &#1089; 'http://'.&quot;
 
 #: contrib/redirects/models.py:12
 msgid &quot;redirect&quot;
@@ -1070,10 +1022,8 @@ msgid &quot;redirects&quot;
 msgstr &quot;&#1087;&#1077;&#1088;&#1077;&#1085;&#1072;&#1087;&#1088;&#1072;&#1074;&#1083;&#1077;&#1085;&#1080;&#1103;&quot;
 
 #: contrib/flatpages/models.py:8
-msgid &quot;&quot;
-&quot;Example: '/about/contact/'. Make sure to have leading and trailing slashes.&quot;
-msgstr &quot;&quot;
-&quot;&#1055;&#1088;&#1080;&#1084;&#1077;&#1088;: '/about/contact/'. &#1041;&#1091;&#1076;&#1100;&#1090;&#1077; &#1091;&#1074;&#1077;&#1088;&#1077;&#1085;&#1085;&#1099;, &#1095;&#1090;&#1086; &#1074;&#1089;&#1090;&#1072;&#1074;&#1080;&#1083;&#1080; &#1079;&#1072;&#1074;&#1077;&#1087;&#1088;&#1096;&#1072;&#1102;&#1097;&#1080;&#1081; &#1089;&#1083;&#1101;&#1096;.&quot;
+msgid &quot;Example: '/about/contact/'. Make sure to have leading and trailing slashes.&quot;
+msgstr &quot;&#1055;&#1088;&#1080;&#1084;&#1077;&#1088;: '/about/contact/'. &#1041;&#1091;&#1076;&#1100;&#1090;&#1077; &#1091;&#1074;&#1077;&#1088;&#1077;&#1085;&#1085;&#1099;, &#1095;&#1090;&#1086; &#1074;&#1089;&#1090;&#1072;&#1074;&#1080;&#1083;&#1080; &#1079;&#1072;&#1074;&#1077;&#1087;&#1088;&#1096;&#1072;&#1102;&#1097;&#1080;&#1081; &#1089;&#1083;&#1101;&#1096;.&quot;
 
 #: contrib/flatpages/models.py:9
 msgid &quot;title&quot;
@@ -1092,10 +1042,8 @@ msgid &quot;template name&quot;
 msgstr &quot;&#1080;&#1084;&#1103; &#1096;&#1072;&#1073;&#1083;&#1086;&#1085;&#1072;&quot;
 
 #: contrib/flatpages/models.py:13
-msgid &quot;&quot;
-&quot;Example: 'flatpages/contact_page'. If this isn't provided, the system will &quot;
-&quot;use 'flatpages/default'.&quot;
-msgstr &quot;&quot;
+msgid &quot;Example: 'flatpages/contact_page'. If this isn't provided, the system will use 'flatpages/default'.&quot;
+msgstr &quot;&#1055;&#1088;&#1080;&#1084;&#1077;&#1088;: 'flatpages/contact_page'. &#1045;&#1089;&#1083;&#1080; &#1101;&#1090;&#1086;&#1090; &#1092;&#1072;&#1081;&#1083; &#1085;&#1077; &#1087;&#1088;&#1080;&#1089;&#1091;&#1090;&#1089;&#1090;&#1074;&#1091;&#1077;&#1090;, &#1089;&#1080;&#1089;&#1090;&#1077;&#1084;&#1072; &#1073;&#1091;&#1076;&#1077;&#1090; &#1080;&#1089;&#1087;&#1086;&#1083;&#1100;&#1079;&#1086;&#1074;&#1072;&#1090;&#1100; 'flatpages/default'.&quot;
 
 #: contrib/flatpages/models.py:14
 msgid &quot;registration required&quot;
@@ -1113,7 +1061,8 @@ msgstr &quot;&#1087;&#1088;&#1086;&#1089;&#1090;&#1072;&#1103; &#1089;&#1090;&#1088;&#1072;&#1085;&#1080;&#1094;&#1072;&quot;
 msgid &quot;flat pages&quot;
 msgstr &quot;&#1087;&#1088;&#1086;&#1089;&#1090;&#1099;&#1077; &#1089;&#1090;&#1088;&#1072;&#1085;&#1080;&#1094;&#1099;&quot;
 
-#: contrib/auth/models.py:13 contrib/auth/models.py:26
+#: contrib/auth/models.py:13
+#: contrib/auth/models.py:26
 msgid &quot;name&quot;
 msgstr &quot;&#1080;&#1084;&#1103;&quot;
 
@@ -1125,7 +1074,8 @@ msgstr &quot;&#1082;&#1086;&#1076;&quot;
 msgid &quot;permission&quot;
 msgstr &quot;&#1055;&#1088;&#1072;&#1074;&#1072;&quot;
 
-#: contrib/auth/models.py:18 contrib/auth/models.py:27
+#: contrib/auth/models.py:18
+#: contrib/auth/models.py:27
 msgid &quot;permissions&quot;
 msgstr &quot;&#1055;&#1088;&#1072;&#1074;&#1072;&quot;
 
@@ -1133,7 +1083,8 @@ msgstr &quot;&#1055;&#1088;&#1072;&#1074;&#1072;&quot;
 msgid &quot;group&quot;
 msgstr &quot;&#1043;&#1088;&#1091;&#1087;&#1087;&#1072;&quot;
 
-#: contrib/auth/models.py:30 contrib/auth/models.py:65
+#: contrib/auth/models.py:30
+#: contrib/auth/models.py:65
 msgid &quot;groups&quot;
 msgstr &quot;&#1043;&#1088;&#1091;&#1087;&#1087;&#1099;&quot;
 
@@ -1159,7 +1110,7 @@ msgstr &quot;&#1087;&#1072;&#1088;&#1086;&#1083;&#1100;&quot;
 
 #: contrib/auth/models.py:59
 msgid &quot;Use '[algo]$[salt]$[hexdigest]'&quot;
-msgstr &quot;&quot;
+msgstr &quot;&#1048;&#1089;&#1087;&#1086;&#1083;&#1100;&#1079;&#1091;&#1081;&#1090;&#1077; '[algo]$[salt]$[hexdigest]'&quot;
 
 #: contrib/auth/models.py:60
 msgid &quot;staff status&quot;
@@ -1186,12 +1137,8 @@ msgid &quot;date joined&quot;
 msgstr &quot;&#1076;&#1072;&#1090;&#1072; &#1088;&#1077;&#1075;&#1080;&#1089;&#1090;&#1088;&#1072;&#1094;&#1080;&#1080;&quot;
 
 #: contrib/auth/models.py:66
-msgid &quot;&quot;
-&quot;In addition to the permissions manually assigned, this user will also get &quot;
-&quot;all permissions granted to each group he/she is in.&quot;
-msgstr &quot;&quot;
-&quot;&#1050; &#1076;&#1086;&#1073;&#1072;&#1074;&#1083;&#1077;&#1085;&#1080;&#1102; &#1082; &#1087;&#1077;&#1088;&#1072;&#1074;&#1072;&#1084; &#1074;&#1099;&#1073;&#1088;&#1085;&#1072;&#1085;&#1085;&#1099;&#1084; &#1074;&#1091;&#1088;&#1091;&#1095;&#1085;&#1091;&#1102;, &#1101;&#1090;&#1086;&#1090; &#1087;&#1086;&#1083;&#1100;&#1079;&#1086;&#1074;&#1072;&#1090;&#1077;&#1083;&#1100; &#1084;&#1086;&#1078;&#1077;&#1090; &#1087;&#1086;&#1083;&#1091;&#1095;&#1080;&#1090;&#1100; &quot;
-&quot;&#1074;&#1089;&#1077; &#1087;&#1088;&#1072;&#1074;&#1072; &#1075;&#1088;&#1091;&#1087;&#1087;&#1099;, &#1082; &#1082;&#1086;&#1090;&#1086;&#1088;&#1086;&#1081; &#1086;&#1085; &#1087;&#1088;&#1080;&#1085;&#1072;&#1076;&#1083;&#1077;&#1078;&#1080;&#1090;.&quot;
+msgid &quot;In addition to the permissions manually assigned, this user will also get all permissions granted to each group he/she is in.&quot;
+msgstr &quot;&#1050; &#1076;&#1086;&#1073;&#1072;&#1074;&#1083;&#1077;&#1085;&#1080;&#1102; &#1082; &#1087;&#1077;&#1088;&#1072;&#1074;&#1072;&#1084; &#1074;&#1099;&#1073;&#1088;&#1085;&#1072;&#1085;&#1085;&#1099;&#1084; &#1074;&#1091;&#1088;&#1091;&#1095;&#1085;&#1091;&#1102;, &#1101;&#1090;&#1086;&#1090; &#1087;&#1086;&#1083;&#1100;&#1079;&#1086;&#1074;&#1072;&#1090;&#1077;&#1083;&#1100; &#1084;&#1086;&#1078;&#1077;&#1090; &#1087;&#1086;&#1083;&#1091;&#1095;&#1080;&#1090;&#1100; &#1074;&#1089;&#1077; &#1087;&#1088;&#1072;&#1074;&#1072; &#1075;&#1088;&#1091;&#1087;&#1087;&#1099;, &#1082; &#1082;&#1086;&#1090;&#1086;&#1088;&#1086;&#1081; &#1086;&#1085; &#1087;&#1088;&#1080;&#1085;&#1072;&#1076;&#1083;&#1077;&#1078;&#1080;&#1090;.&quot;
 
 #: contrib/auth/models.py:67
 msgid &quot;user permissions&quot;
@@ -1226,10 +1173,8 @@ msgid &quot;message&quot;
 msgstr &quot;&#1057;&#1086;&#1086;&#1073;&#1097;&#1077;&#1085;&#1080;&#1077;&quot;
 
 #: contrib/auth/forms.py:30
-msgid &quot;&quot;
-&quot;Your Web browser doesn't appear to have cookies enabled. Cookies are &quot;
-&quot;required for logging in.&quot;
-msgstr &quot;&quot;
+msgid &quot;Your Web browser doesn't appear to have cookies enabled. Cookies are required for logging in.&quot;
+msgstr &quot;&#1059; &#1074;&#1072;&#1096;&#1077;&#1075;&#1086; &#1073;&#1088;&#1072;&#1091;&#1079;&#1077;&#1088;&#1072; &#1085;&#1077; &#1074;&#1082;&#1083;&#1102;&#1095;&#1077;&#1085;&#1099; cookies. Cookies &#1085;&#1077;&#1086;&#1073;&#1093;&#1086;&#1076;&#1080;&#1084;&#1099; &#1076;&#1083;&#1103; &#1074;&#1093;&#1086;&#1076;&#1072;.&quot;
 
 #: contrib/contenttypes/models.py:25
 msgid &quot;python model class name&quot;
@@ -1327,23 +1272,28 @@ msgstr &quot;&#1071;&#1085;&#1074;&#1072;&#1088;&#1100;&quot;
 msgid &quot;February&quot;
 msgstr &quot;&#1060;&#1077;&#1074;&#1088;&#1072;&#1083;&#1100;&quot;
 
-#: utils/dates.py:14 utils/dates.py:27
+#: utils/dates.py:14
+#: utils/dates.py:27
 msgid &quot;March&quot;
 msgstr &quot;&#1052;&#1072;&#1088;&#1090;&quot;
 
-#: utils/dates.py:14 utils/dates.py:27
+#: utils/dates.py:14
+#: utils/dates.py:27
 msgid &quot;April&quot;
 msgstr &quot;&#1040;&#1087;&#1088;&#1077;&#1083;&#1100;&quot;
 
-#: utils/dates.py:14 utils/dates.py:27
+#: utils/dates.py:14
+#: utils/dates.py:27
 msgid &quot;May&quot;
 msgstr &quot;&#1052;&#1072;&#1081;&quot;
 
-#: utils/dates.py:14 utils/dates.py:27
+#: utils/dates.py:14
+#: utils/dates.py:27
 msgid &quot;June&quot;
 msgstr &quot;&#1048;&#1102;&#1085;&#1100;&quot;
 
-#: utils/dates.py:15 utils/dates.py:27
+#: utils/dates.py:15
+#: utils/dates.py:27
 msgid &quot;July&quot;
 msgstr &quot;&#1048;&#1102;&#1083;&#1100;&quot;
 
@@ -1592,11 +1542,8 @@ msgid &quot;This value must contain only letters, numbers and underscores.&quot;
 msgstr &quot;&#1047;&#1085;&#1072;&#1095;&#1077;&#1085;&#1080;&#1077; &#1084;&#1086;&#1078;&#1077;&#1090; &#1089;&#1086;&#1076;&#1077;&#1088;&#1078;&#1072;&#1090;&#1100; &#1090;&#1086;&#1083;&#1100;&#1082;&#1086; &#1073;&#1091;&#1082;&#1074;&#1099;, &#1094;&#1080;&#1092;&#1088;&#1099; &#1080; &#1087;&#1086;&#1076;&#1095;&#1077;&#1088;&#1082;&#1080;&#1074;&#1072;&#1085;&#1080;&#1103;.&quot;
 
 #: core/validators.py:64
-msgid &quot;&quot;
-&quot;This value must contain only letters, numbers, underscores, dashes or &quot;
-&quot;slashes.&quot;
-msgstr &quot;&#1047;&#1085;&#1072;&#1095;&#1077;&#1085;&#1080;&#1077; &#1084;&#1086;&#1078;&#1077;&#1090; &#1089;&#1086;&#1076;&#1077;&#1088;&#1078;&#1072;&#1090;&#1100; &#1090;&#1086;&#1083;&#1100;&#1082;&#1086; &#1073;&#1091;&#1082;&#1074;&#1099;, &#1094;&#1080;&#1092;&#1088;&#1099;, &#1087;&#1086;&#1076;&#1095;&#1077;&#1088;&#1082;&#1080;&#1074;&#1072;&#1085;&#1080;&#1103;, &#1076;&#1080;&#1092;&#1080;&#1089;&#1099; &#1080;&#1083;&#1080; &quot;
-&quot;&#1090;&#1077;&#1088;&#1077;.&quot;
+msgid &quot;This value must contain only letters, numbers, underscores, dashes or slashes.&quot;
+msgstr &quot;&#1047;&#1085;&#1072;&#1095;&#1077;&#1085;&#1080;&#1077; &#1084;&#1086;&#1078;&#1077;&#1090; &#1089;&#1086;&#1076;&#1077;&#1088;&#1078;&#1072;&#1090;&#1100; &#1090;&#1086;&#1083;&#1100;&#1082;&#1086; &#1073;&#1091;&#1082;&#1074;&#1099;, &#1094;&#1080;&#1092;&#1088;&#1099;, &#1087;&#1086;&#1076;&#1095;&#1077;&#1088;&#1082;&#1080;&#1074;&#1072;&#1085;&#1080;&#1103;, &#1076;&#1080;&#1092;&#1080;&#1089;&#1099; &#1080;&#1083;&#1080; &#1090;&#1077;&#1088;&#1077;.&quot;
 
 #: core/validators.py:72
 msgid &quot;Uppercase letters are not allowed here.&quot;
@@ -1646,7 +1593,8 @@ msgstr &quot;&#1042;&#1074;&#1086;&#1076;&#1080;&#1090;&#1077; &#1088;&#1077;&#1072;&#1083;&#1100;&#1085;&#1091;&#1102; &#1076;&#1072;&#1090;&#1091; &#1074; &#1092;&#1086;&#1088;&#1084;&#1072;&#1090;&#1077; YYYY-MM-DD.&quot;
 msgid &quot;Enter a valid time in HH:MM format.&quot;
 msgstr &quot;&#1042;&#1074;&#1086;&#1076;&#1080;&#1090;&#1077; &#1088;&#1077;&#1072;&#1083;&#1100;&#1085;&#1086;&#1077; &#1074;&#1088;&#1077;&#1084;&#1103; &#1074; &#1092;&#1086;&#1088;&#1084;&#1072;&#1090;&#1077; HH:MM.&quot;
 
-#: core/validators.py:132 db/models/fields/__init__.py:468
+#: core/validators.py:132
+#: db/models/fields/__init__.py:468
 msgid &quot;Enter a valid date/time in YYYY-MM-DD HH:MM format.&quot;
 msgstr &quot;&#1042;&#1074;&#1086;&#1076;&#1080;&#1090;&#1077; &#1088;&#1077;&#1072;&#1083;&#1100;&#1085;&#1099;&#1077; &#1076;&#1072;&#1090;&#1072;/&#1074;&#1088;&#1077;&#1084;&#1103; &#1074; &#1092;&#1086;&#1088;&#1084;&#1072;&#1090;&#1077; YYYY-MM-DD HH:MM.&quot;
 
@@ -1655,12 +1603,8 @@ msgid &quot;Enter a valid e-mail address.&quot;
 msgstr &quot;&#1059;&#1082;&#1072;&#1078;&#1080;&#1090;&#1077; &#1088;&#1077;&#1072;&#1083;&#1100;&#1085;&#1099;&#1081; e-mail &#1072;&#1076;&#1088;&#1077;&#1089;.&quot;
 
 #: core/validators.py:148
-msgid &quot;&quot;
-&quot;Upload a valid image. The file you uploaded was either not an image or a &quot;
-&quot;corrupted image.&quot;
-msgstr &quot;&quot;
-&quot;&#1047;&#1072;&#1075;&#1088;&#1091;&#1079;&#1080;&#1090;&#1077; &#1088;&#1077;&#1072;&#1083;&#1100;&#1085;&#1086;&#1077; &#1080;&#1079;&#1086;&#1073;&#1088;&#1072;&#1078;&#1077;&#1085;&#1080;&#1077;. &#1060;&#1072;&#1081;&#1083;, &#1082;&#1086;&#1090;&#1086;&#1088;&#1099;&#1081; &#1074;&#1099; &#1079;&#1072;&#1075;&#1088;&#1091;&#1078;&#1072;&#1083;&#1080;, &#1085;&#1077; &#1073;&#1099;&#1083; &quot;
-&quot;&#1080;&#1079;&#1086;&#1073;&#1088;&#1072;&#1078;&#1077;&#1085;&#1080;&#1077;&#1084; &#1080;&#1083;&#1080; &#1073;&#1099;&#1083; &#1087;&#1086;&#1074;&#1088;&#1077;&#1078;&#1076;&#1077;&#1085;.&quot;
+msgid &quot;Upload a valid image. The file you uploaded was either not an image or a corrupted image.&quot;
+msgstr &quot;&#1047;&#1072;&#1075;&#1088;&#1091;&#1079;&#1080;&#1090;&#1077; &#1088;&#1077;&#1072;&#1083;&#1100;&#1085;&#1086;&#1077; &#1080;&#1079;&#1086;&#1073;&#1088;&#1072;&#1078;&#1077;&#1085;&#1080;&#1077;. &#1060;&#1072;&#1081;&#1083;, &#1082;&#1086;&#1090;&#1086;&#1088;&#1099;&#1081; &#1074;&#1099; &#1079;&#1072;&#1075;&#1088;&#1091;&#1078;&#1072;&#1083;&#1080;, &#1085;&#1077; &#1073;&#1099;&#1083; &#1080;&#1079;&#1086;&#1073;&#1088;&#1072;&#1078;&#1077;&#1085;&#1080;&#1077;&#1084; &#1080;&#1083;&#1080; &#1073;&#1099;&#1083; &#1087;&#1086;&#1074;&#1088;&#1077;&#1078;&#1076;&#1077;&#1085;.&quot;
 
 #: core/validators.py:155
 #, python-format
@@ -1700,7 +1644,8 @@ msgstr &quot;&#1053;&#1077;&#1074;&#1077;&#1088;&#1085;&#1099;&#1081; &#1092;&#1086;&#1088;&#1084;&#1072;&#1090; XML: %s&quot;
 msgid &quot;Invalid URL: %s&quot;
 msgstr &quot;&#1053;&#1077;&#1074;&#1077;&#1088;&#1085;&#1099;&#1081; URL: %s&quot;
 
-#: core/validators.py:206 core/validators.py:208
+#: core/validators.py:206
+#: core/validators.py:208
 #, python-format
 msgid &quot;The URL %s is a broken link.&quot;
 msgstr &quot;URL %s &#1089;&#1083;&#1086;&#1084;&#1072;&#1085;&#1085;&#1072;&#1103; &#1089;&#1089;&#1099;&#1083;&#1082;&#1072;.&quot;
@@ -1725,7 +1670,8 @@ msgstr &quot;&#1069;&#1090;&#1086; &#1087;&#1086;&#1083;&#1077; &#1076;&#1086;&#1083;&#1078;&#1085;&#1086; &#1089;&#1086;&#1074;&#1087;&#1072;&#1076;&#1072;&#1090;&#1100; &#1089; &#1087;&#1086;&#1083;&#1077;&#1084; '%s'.&quot;
 msgid &quot;Please enter something for at least one field.&quot;
 msgstr &quot;&#1055;&#1086;&#1078;&#1072;&#1083;&#1091;&#1081;&#1089;&#1090;&#1072;, &#1079;&#1072;&#1087;&#1086;&#1083;&#1085;&#1080;&#1090;&#1077; &#1093;&#1086;&#1090;&#1103; &#1073;&#1099; &#1086;&#1076;&#1085;&#1086; &#1087;&#1086;&#1083;&#1077;.&quot;
 
-#: core/validators.py:264 core/validators.py:275
+#: core/validators.py:264
+#: core/validators.py:275
 msgid &quot;Please enter both fields or leave them both empty.&quot;
 msgstr &quot;&#1055;&#1086;&#1078;&#1072;&#1083;&#1091;&#1081;&#1089;&#1090;&#1072;, &#1079;&#1072;&#1087;&#1086;&#1083;&#1085;&#1080;&#1090;&#1077; &#1086;&#1073;&#1072; &#1087;&#1086;&#1083;&#1103; &#1083;&#1080;&#1073;&#1086; &#1086;&#1089;&#1090;&#1072;&#1074;&#1100;&#1090;&#1077; &#1080;&#1093; &#1087;&#1091;&#1089;&#1090;&#1099;&#1084;&#1080;.&quot;
 
@@ -1755,26 +1701,16 @@ msgstr &quot;&#1055;&#1086;&#1078;&#1072;&#1083;&#1091;&#1081;&#1089;&#1090;&#1072;, &#1074;&#1074;&#1086;&#1076;&#1080;&#1090;&#1077; &#1082;&#1086;&#1088;&#1088;&#1077;&#1082;&#1090;&#1085;&#1086;&#1077; &#1076;&#1077;&#1089;&#1103;&#1090;&#1080;&#1095;
 #: core/validators.py:349
 #, python-format
 msgid &quot;Please enter a valid decimal number with at most %s total digit.&quot;
-msgid_plural &quot;&quot;
-&quot;Please enter a valid decimal number with at most %s total digits.&quot;
-msgstr[0] &quot;&quot;
-&quot;&#1055;&#1086;&#1078;&#1072;&#1083;&#1091;&#1081;&#1089;&#1090;&#1072;, &#1074;&#1074;&#1086;&#1076;&#1080;&#1090;&#1077; &#1082;&#1086;&#1088;&#1088;&#1077;&#1082;&#1090;&#1085;&#1086;&#1077; &#1076;&#1077;&#1089;&#1103;&#1090;&#1080;&#1095;&#1085;&#1086;&#1077; &#1095;&#1080;&#1089;&#1083;&#1086; &#1089; &#1084;&#1072;&#1082;&#1089;&#1080;&#1084;&#1072;&#1083;&#1100;&#1085;&#1099;&#1084; &#1082;&#1086;&#1083;&#1080;&#1095;&#1077;&#1089;&#1090;&#1074;&#1086;&#1084; &quot;
-&quot;&#1079;&#1085;&#1072;&#1082;&#1086;&#1074; %s.&quot;
-msgstr[1] &quot;&quot;
-&quot;&#1055;&#1086;&#1078;&#1072;&#1083;&#1091;&#1081;&#1089;&#1090;&#1072;, &#1074;&#1074;&#1086;&#1076;&#1080;&#1090;&#1077; &#1082;&#1086;&#1088;&#1088;&#1077;&#1082;&#1090;&#1085;&#1086;&#1077; &#1076;&#1077;&#1089;&#1103;&#1090;&#1080;&#1095;&#1085;&#1086;&#1077; &#1095;&#1080;&#1089;&#1083;&#1086; &#1089; &#1084;&#1072;&#1082;&#1089;&#1080;&#1084;&#1072;&#1083;&#1100;&#1085;&#1099;&#1084; &#1082;&#1086;&#1083;&#1080;&#1095;&#1077;&#1089;&#1090;&#1074;&#1086;&#1084; &quot;
-&quot;&#1079;&#1085;&#1072;&#1082;&#1086;&#1074; %s.&quot;
+msgid_plural &quot;Please enter a valid decimal number with at most %s total digits.&quot;
+msgstr[0] &quot;&#1055;&#1086;&#1078;&#1072;&#1083;&#1091;&#1081;&#1089;&#1090;&#1072;, &#1074;&#1074;&#1086;&#1076;&#1080;&#1090;&#1077; &#1082;&#1086;&#1088;&#1088;&#1077;&#1082;&#1090;&#1085;&#1086;&#1077; &#1076;&#1077;&#1089;&#1103;&#1090;&#1080;&#1095;&#1085;&#1086;&#1077; &#1095;&#1080;&#1089;&#1083;&#1086; &#1089; &#1084;&#1072;&#1082;&#1089;&#1080;&#1084;&#1072;&#1083;&#1100;&#1085;&#1099;&#1084; &#1082;&#1086;&#1083;&#1080;&#1095;&#1077;&#1089;&#1090;&#1074;&#1086;&#1084; &#1079;&#1085;&#1072;&#1082;&#1086;&#1074; %s.&quot;
+msgstr[1] &quot;&#1055;&#1086;&#1078;&#1072;&#1083;&#1091;&#1081;&#1089;&#1090;&#1072;, &#1074;&#1074;&#1086;&#1076;&#1080;&#1090;&#1077; &#1082;&#1086;&#1088;&#1088;&#1077;&#1082;&#1090;&#1085;&#1086;&#1077; &#1076;&#1077;&#1089;&#1103;&#1090;&#1080;&#1095;&#1085;&#1086;&#1077; &#1095;&#1080;&#1089;&#1083;&#1086; &#1089; &#1084;&#1072;&#1082;&#1089;&#1080;&#1084;&#1072;&#1083;&#1100;&#1085;&#1099;&#1084; &#1082;&#1086;&#1083;&#1080;&#1095;&#1077;&#1089;&#1090;&#1074;&#1086;&#1084; &#1079;&#1085;&#1072;&#1082;&#1086;&#1074; %s.&quot;
 
 #: core/validators.py:352
 #, python-format
 msgid &quot;Please enter a valid decimal number with at most %s decimal place.&quot;
-msgid_plural &quot;&quot;
-&quot;Please enter a valid decimal number with at most %s decimal places.&quot;
-msgstr[0] &quot;&quot;
-&quot;&#1055;&#1086;&#1078;&#1072;&#1083;&#1091;&#1081;&#1089;&#1090;&#1072;, &#1074;&#1074;&#1086;&#1076;&#1080;&#1090;&#1077; &#1082;&#1086;&#1088;&#1088;&#1077;&#1082;&#1090;&#1085;&#1086;&#1077; &#1076;&#1077;&#1089;&#1103;&#1090;&#1080;&#1095;&#1085;&#1086;&#1077; &#1095;&#1080;&#1089;&#1083;&#1086; &#1089; &#1084;&#1072;&#1082;&#1089;&#1080;&#1084;&#1072;&#1083;&#1100;&#1085;&#1099;&#1084; &#1082;&#1086;&#1083;&#1080;&#1095;&#1077;&#1089;&#1090;&#1074;&#1086;&#1084; &quot;
-&quot;&#1079;&#1085;&#1072;&#1082;&#1086;&#1074; &#1087;&#1086;&#1089;&#1083;&#1077; &#1079;&#1072;&#1087;&#1103;&#1090;&#1086;&#1081; %s.&quot;
-msgstr[1] &quot;&quot;
-&quot;&#1055;&#1086;&#1078;&#1072;&#1083;&#1091;&#1081;&#1089;&#1090;&#1072;, &#1074;&#1074;&#1086;&#1076;&#1080;&#1090;&#1077; &#1082;&#1086;&#1088;&#1088;&#1077;&#1082;&#1090;&#1085;&#1086;&#1077; &#1076;&#1077;&#1089;&#1103;&#1090;&#1080;&#1095;&#1085;&#1086;&#1077; &#1095;&#1080;&#1089;&#1083;&#1086; &#1089; &#1084;&#1072;&#1082;&#1089;&#1080;&#1084;&#1072;&#1083;&#1100;&#1085;&#1099;&#1084; &#1082;&#1086;&#1083;&#1080;&#1095;&#1077;&#1089;&#1090;&#1074;&#1086;&#1084; &quot;
-&quot;&#1079;&#1085;&#1072;&#1082;&#1086;&#1074; &#1087;&#1086;&#1089;&#1083;&#1077; &#1079;&#1072;&#1087;&#1103;&#1090;&#1086;&#1081; %s.&quot;
+msgid_plural &quot;Please enter a valid decimal number with at most %s decimal places.&quot;
+msgstr[0] &quot;&#1055;&#1086;&#1078;&#1072;&#1083;&#1091;&#1081;&#1089;&#1090;&#1072;, &#1074;&#1074;&#1086;&#1076;&#1080;&#1090;&#1077; &#1082;&#1086;&#1088;&#1088;&#1077;&#1082;&#1090;&#1085;&#1086;&#1077; &#1076;&#1077;&#1089;&#1103;&#1090;&#1080;&#1095;&#1085;&#1086;&#1077; &#1095;&#1080;&#1089;&#1083;&#1086; &#1089; &#1084;&#1072;&#1082;&#1089;&#1080;&#1084;&#1072;&#1083;&#1100;&#1085;&#1099;&#1084; &#1082;&#1086;&#1083;&#1080;&#1095;&#1077;&#1089;&#1090;&#1074;&#1086;&#1084; &#1079;&#1085;&#1072;&#1082;&#1086;&#1074; &#1087;&#1086;&#1089;&#1083;&#1077; &#1079;&#1072;&#1087;&#1103;&#1090;&#1086;&#1081; %s.&quot;
+msgstr[1] &quot;&#1055;&#1086;&#1078;&#1072;&#1083;&#1091;&#1081;&#1089;&#1090;&#1072;, &#1074;&#1074;&#1086;&#1076;&#1080;&#1090;&#1077; &#1082;&#1086;&#1088;&#1088;&#1077;&#1082;&#1090;&#1085;&#1086;&#1077; &#1076;&#1077;&#1089;&#1103;&#1090;&#1080;&#1095;&#1085;&#1086;&#1077; &#1095;&#1080;&#1089;&#1083;&#1086; &#1089; &#1084;&#1072;&#1082;&#1089;&#1080;&#1084;&#1072;&#1083;&#1100;&#1085;&#1099;&#1084; &#1082;&#1086;&#1083;&#1080;&#1095;&#1077;&#1089;&#1090;&#1074;&#1086;&#1084; &#1079;&#1085;&#1072;&#1082;&#1086;&#1074; &#1087;&#1086;&#1089;&#1083;&#1077; &#1079;&#1072;&#1087;&#1103;&#1090;&#1086;&#1081; %s.&quot;
 
 #: core/validators.py:362
 #, python-format
@@ -1801,50 +1737,37 @@ msgstr &quot;&#1053;&#1077;&#1074;&#1086;&#1079;&#1084;&#1086;&#1078;&#1085;&#1086; &#1087;&#1086;&#1083;&#1091;&#1095;&#1080;&#1090;&#1100; &#1095;&#1090;&#1086;-&#1083;&#1080;&#1073;&#1086; &#1089; %s.&quot;
 
 #: core/validators.py:429
 #, python-format
-msgid &quot;&quot;
-&quot;The URL %(url)s returned the invalid Content-Type header '%(contenttype)s'.&quot;
-msgstr &quot;URL %(url) &#1074;&#1077;&#1088;&#1085;&#1091;&#1083; &#1085;&#1077;&#1074;&#1077;&#1088;&#1085;&#1099;&#1081; &#1079;&#1072;&#1075;&#1086;&#1083;&#1086;&#1074;&#1086;&#1082; Content-Type '%(contenttype)'.&quot;
+msgid &quot;The URL %(url)s returned the invalid Content-Type header '%(contenttype)s'.&quot;
+msgstr &quot;URL %(url)s &#1074;&#1077;&#1088;&#1085;&#1091;&#1083; &#1085;&#1077;&#1074;&#1077;&#1088;&#1085;&#1099;&#1081; &#1079;&#1072;&#1075;&#1086;&#1083;&#1086;&#1074;&#1086;&#1082; Content-Type '%(contenttype)s'.&quot;
 
 #: core/validators.py:462
 #, python-format
-msgid &quot;&quot;
-&quot;Please close the unclosed %(tag)s tag from line %(line)s. (Line starts with &quot;
-&quot;\&quot;%(start)s\&quot;.)&quot;
+msgid &quot;Please close the unclosed %(tag)s tag from line %(line)s. (Line starts with \&quot;%(start)s\&quot;.)&quot;
 msgstr &quot;&quot;
 
 #: core/validators.py:466
 #, python-format
-msgid &quot;&quot;
-&quot;Some text starting on line %(line)s is not allowed in that context. (Line &quot;
-&quot;starts with \&quot;%(start)s\&quot;.)&quot;
+msgid &quot;Some text starting on line %(line)s is not allowed in that context. (Line starts with \&quot;%(start)s\&quot;.)&quot;
 msgstr &quot;&quot;
 
 #: core/validators.py:471
 #, python-format
-msgid &quot;&quot;
-&quot;\&quot;%(attr)s\&quot; on line %(line)s is an invalid attribute. (Line starts with \&quot;%&quot;
-&quot;(start)s\&quot;.)&quot;
+msgid &quot;\&quot;%(attr)s\&quot; on line %(line)s is an invalid attribute. (Line starts with \&quot;%(start)s\&quot;.)&quot;
 msgstr &quot;&quot;
 
 #: core/validators.py:476
 #, python-format
-msgid &quot;&quot;
-&quot;\&quot;&lt;%(tag)s&gt;\&quot; on line %(line)s is an invalid tag. (Line starts with \&quot;%&quot;
-&quot;(start)s\&quot;.)&quot;
+msgid &quot;\&quot;&lt;%(tag)s&gt;\&quot; on line %(line)s is an invalid tag. (Line starts with \&quot;%(start)s\&quot;.)&quot;
 msgstr &quot;&quot;
 
 #: core/validators.py:480
 #, python-format
-msgid &quot;&quot;
-&quot;A tag on line %(line)s is missing one or more required attributes. (Line &quot;
-&quot;starts with \&quot;%(start)s\&quot;.)&quot;
+msgid &quot;A tag on line %(line)s is missing one or more required attributes. (Line starts with \&quot;%(start)s\&quot;.)&quot;
 msgstr &quot;&quot;
 
 #: core/validators.py:485
 #, python-format
-msgid &quot;&quot;
-&quot;The \&quot;%(attr)s\&quot; attribute on line %(line)s has an invalid value. (Line &quot;
-&quot;starts with \&quot;%(start)s\&quot;.)&quot;
+msgid &quot;The \&quot;%(attr)s\&quot; attribute on line %(line)s has an invalid value. (Line starts with \&quot;%(start)s\&quot;.)&quot;
 msgstr &quot;&quot;
 
 #: db/models/manipulators.py:302
@@ -1857,8 +1780,10 @@ msgstr &quot;&quot;
 msgid &quot;%(optname)s with this %(fieldname)s already exists.&quot;
 msgstr &quot;&quot;
 
-#: db/models/fields/__init__.py:114 db/models/fields/__init__.py:265
-#: db/models/fields/__init__.py:542 db/models/fields/__init__.py:553
+#: db/models/fields/__init__.py:114
+#: db/models/fields/__init__.py:265
+#: db/models/fields/__init__.py:542
+#: db/models/fields/__init__.py:553
 #: forms/__init__.py:346
 msgid &quot;This field is required.&quot;
 msgstr &quot;&#1054;&#1073;&#1103;&#1079;&#1072;&#1090;&#1077;&#1083;&#1100;&#1085;&#1086;&#1077; &#1087;&#1086;&#1083;&#1077;.&quot;
@@ -1868,14 +1793,12 @@ msgid &quot;This value must be an integer.&quot;
 msgstr &quot;&quot;
 
 #: db/models/fields/__init__.py:369
-#, fuzzy
 msgid &quot;This value must be either True or False.&quot;
-msgstr &quot;&#1051;&#1086;&#1075;&#1080;&#1095;&#1077;&#1089;&#1082;&#1086;&#1077; (True &#1080;&#1083;&#1080; False)&quot;
+msgstr &quot;&#1047;&#1085;&#1072;&#1095;&#1077;&#1085;&#1080;&#1077; &#1076;&#1086;&#1083;&#1078;&#1085;&#1086; &#1083;&#1080;&#1073;&#1086; True &#1083;&#1080;&#1073;&#1086; False.&quot;
 
 #: db/models/fields/__init__.py:385
-#, fuzzy
 msgid &quot;This field cannot be null.&quot;
-msgstr &quot;&#1069;&#1090;&#1086; &#1087;&#1086;&#1083;&#1077; &#1085;&#1077;&#1074;&#1077;&#1088;&#1085;&#1086;.&quot;
+msgstr &quot;&#1069;&#1090;&#1086; &#1087;&#1086;&#1083;&#1077; &#1085;&#1077; &#1084;&#1086;&#1078;&#1077;&#1090; &#1073;&#1099;&#1090;&#1100; &#1085;&#1091;&#1083;&#1077;&#1074;&#1099;&#1084;.&quot;
 
 #: db/models/fields/__init__.py:562
 msgid &quot;Enter a valid filename.&quot;
@@ -1887,23 +1810,17 @@ msgid &quot;Please enter a valid %s.&quot;
 msgstr &quot;&quot;
 
 #: db/models/fields/related.py:579
-#, fuzzy
 msgid &quot;Separate multiple IDs with commas.&quot;
 msgstr &quot;&#1053;&#1077;&#1089;&#1082;&#1086;&#1083;&#1100;&#1082;&#1086; &#1079;&#1085;&#1072;&#1095;&#1077;&#1085;&#1080;&#1081; ID &#1088;&#1072;&#1079;&#1076;&#1077;&#1083;&#1103;&#1081;&#1090;&#1077; &#1079;&#1072;&#1087;&#1103;&#1090;&#1099;&#1084;&#1080;.&quot;
 
 #: db/models/fields/related.py:581
-#, fuzzy
-msgid &quot;&quot;
-&quot;Hold down \&quot;Control\&quot;, or \&quot;Command\&quot; on a Mac, to select more than one.&quot;
-msgstr &quot;&quot;
-&quot; &#1059;&#1076;&#1077;&#1088;&#1078;&#1080;&#1074;&#1072;&#1081;&#1090;&#1077; \&quot;Control\&quot;, &#1080;&#1083;&#1080; \&quot;Command\&quot; &#1085;&#1072; &#1052;&#1072;&#1082;&#1080;&#1085;&#1090;&#1086;&#1096;, &#1076;&#1083;&#1103; &#1074;&#1099;&#1073;&#1086;&#1088;&#1072; &#1073;&#1086;&#1083;&#1100;&#1096;&#1077; &#1095;&#1077;&#1084; &quot;
-&quot;&#1086;&#1076;&#1085;&#1086;&#1075;&#1086;.&quot;
+msgid &quot;Hold down \&quot;Control\&quot;, or \&quot;Command\&quot; on a Mac, to select more than one.&quot;
+msgstr &quot; &#1059;&#1076;&#1077;&#1088;&#1078;&#1080;&#1074;&#1072;&#1081;&#1090;&#1077; \&quot;Control\&quot;, &#1080;&#1083;&#1080; \&quot;Command\&quot; &#1085;&#1072; &#1052;&#1072;&#1082;&#1080;&#1085;&#1090;&#1086;&#1096;, &#1076;&#1083;&#1103; &#1074;&#1099;&#1073;&#1086;&#1088;&#1072; &#1073;&#1086;&#1083;&#1100;&#1096;&#1077; &#1095;&#1077;&#1084; &#1086;&#1076;&#1085;&#1086;&#1075;&#1086;.&quot;
 
 #: db/models/fields/related.py:625
 #, python-format
 msgid &quot;Please enter valid %(self)s IDs. The value %(value)r is invalid.&quot;
-msgid_plural &quot;&quot;
-&quot;Please enter valid %(self)s IDs. The values %(value)r are invalid.&quot;
+msgid_plural &quot;Please enter valid %(self)s IDs. The values %(value)r are invalid.&quot;
 msgstr[0] &quot;&quot;
 msgstr[1] &quot;&quot;
 
@@ -1918,7 +1835,9 @@ msgstr[1] &quot;&quot;
 msgid &quot;Line breaks are not allowed here.&quot;
 msgstr &quot;&#1055;&#1077;&#1088;&#1077;&#1085;&#1086;&#1089;&#1099; &#1089;&#1090;&#1088;&#1086;&#1082; &#1085;&#1077; &#1076;&#1086;&#1087;&#1091;&#1089;&#1082;&#1072;&#1102;&#1090;&#1089;&#1103; &#1079;&#1076;&#1077;&#1089;&#1100;.&quot;
 
-#: forms/__init__.py:480 forms/__init__.py:551 forms/__init__.py:589
+#: forms/__init__.py:480
+#: forms/__init__.py:551
+#: forms/__init__.py:589
 #, python-format
 msgid &quot;Select a valid choice; '%(data)s' is not in %(choices)s.&quot;
 msgstr &quot;&quot;
@@ -1943,30 +1862,3 @@ msgstr &quot;&#1042;&#1074;&#1077;&#1076;&#1080;&#1090;&#1077; &#1094;&#1077;&#1083;&#1086;&#1077; &#1095;&#1080;&#1089;&#1083;&#1086; &#1074; &#1076;&#1080;&#1072;&#1087;&#1072;&#1079;&#1086;&#1085;&#1077; &#1086;&#1090; 0 &#1076;&#1086; 3
 msgid &quot;yes,no,maybe&quot;
 msgstr &quot;&#1076;&#1072;,&#1085;&#1077;&#1090;,&#1084;&#1086;&#1078;&#1077;&#1090; &#1073;&#1099;&#1090;&#1100;&quot;
 
-#~ msgid &quot;Comment&quot;
-#~ msgstr &quot;&#1050;&#1086;&#1084;&#1084;&#1077;&#1085;&#1090;&#1072;&#1088;&#1080;&#1081;&quot;
-
-#~ msgid &quot;Comments&quot;
-#~ msgstr &quot;&#1050;&#1086;&#1084;&#1084;&#1077;&#1085;&#1090;&#1072;&#1088;&#1080;&#1080;&quot;
-
-#~ msgid &quot;label&quot;
-#~ msgstr &quot;&#1084;&#1077;&#1090;&#1082;&#1072;&quot;
-
-#~ msgid &quot;package&quot;
-#~ msgstr &quot;&#1087;&#1072;&#1082;&#1077;&#1090;&quot;
-
-#~ msgid &quot;packages&quot;
-#~ msgstr &quot;&#1087;&#1072;&#1082;&#1077;&#1090;&#1099;&quot;
-
-#~ msgid &quot;String (up to 50)&quot;
-#~ msgstr &quot;&#1057;&#1090;&#1088;&#1086;&#1082;&#1072; (&#1076;&#1086; 50 &#1089;&#1080;&#1084;&#1074;&#1086;&#1083;&#1086;&#1074;)&quot;
-
-#~ msgid &quot;&quot;
-#~ &quot;Example: 'flatfiles/contact_page'. If this isn't provided, the system &quot;
-#~ &quot;will use 'flatfiles/default'.&quot;
-#~ msgstr &quot;&quot;
-#~ &quot;&#1055;&#1088;&#1080;&#1084;&#1077;&#1088;: 'flatfiles/contact_page'. &#1045;&#1089;&#1083;&#1080; &#1085;&#1077; &#1087;&#1088;&#1077;&#1076;&#1091;&#1089;&#1084;&#1086;&#1090;&#1088;&#1077;&#1085;&#1072;, &#1089;&#1080;&#1089;&#1090;&#1077;&#1084;&#1072; &#1073;&#1091;&#1076;&#1077;&#1090; &quot;
-#~ &quot;&#1080;&#1089;&#1087;&#1086;&#1083;&#1100;&#1079;&#1086;&#1074;&#1072;&#1090;&#1100; 'flatfiles/default'.&quot;
-
-#~ msgid &quot;Server error &lt;em&gt;(500)&lt;/em&gt;&quot;
-#~ msgstr &quot;&#1054;&#1096;&#1080;&#1073;&#1082;&#1072; &#1089;&#1077;&#1088;&#1074;&#1077;&#1088;&#1072; &lt;em&gt;(500)&lt;/em&gt;&quot;</diff>
      <filename>django/conf/locale/ru/LC_MESSAGES/django.po</filename>
    </modified>
    <modified>
      <diff></diff>
      <filename>django/conf/locale/sl/LC_MESSAGES/django.mo</filename>
    </modified>
    <modified>
      <diff>@@ -1,21 +1,25 @@
-# SOME DESCRIPTIVE TITLE.
+# translation of django.po to Slovenian
+# Igor Kolar &lt;ike@email.si), 2006.
+# Nena Kojadin &lt;nena@kiberpipa.org), 2006.
+# Jure Cuhalev &lt;gandalf@owca.info&gt;, 2006.
 # Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER
 # This file is distributed under the same license as the PACKAGE package.
-# Igor Kolar &lt;ike@email.si), 2006.
-# Nena Kojadin &lt;nena@kiberpipa.org), 2006
 msgid &quot;&quot;
 msgstr &quot;&quot;
-&quot;Project-Id-Version: Django Slovenian 0.92+svn translation\n&quot;
+&quot;Project-Id-Version: django\n&quot;
 &quot;Report-Msgid-Bugs-To: \n&quot;
 &quot;POT-Creation-Date: 2006-05-16 10:13+0200\n&quot;
-&quot;PO-Revision-Date: 2006-03-19 17:30+0100\n&quot;
+&quot;PO-Revision-Date: 2006-07-29 11:52+0100\n&quot;
 &quot;Last-Translator: Jure &#268;uhalev &lt;gandalf@owca.info&gt;\n&quot;
-&quot;Language-Team: Slovenian &lt;sl@li.org&gt;\n&quot;
+&quot;Language-Team: Slovenian &lt;lugos-slo@lugos.si&gt;\n&quot;
 &quot;MIME-Version: 1.0\n&quot;
-&quot;Content-Type: text/plain; charset=utf-8\n&quot;
+&quot;Content-Type: text/plain; charset=UTF-8\n&quot;
 &quot;Content-Transfer-Encoding: 8bit\n&quot;
+&quot;X-Generator: KBabel 1.11.2\n&quot;
+&quot;Plural-Forms: nplurals=4; plural=(n%100==1 ? 0 : n%100==2 ? 1 : n%100==3 || n%100==4 ? 2 : 3);\n&quot;
 
-#: contrib/comments/models.py:67 contrib/comments/models.py:166
+#: contrib/comments/models.py:67
+#: contrib/comments/models.py:166
 msgid &quot;object ID&quot;
 msgstr &quot;ID objekta&quot;
 
@@ -23,7 +27,8 @@ msgstr &quot;ID objekta&quot;
 msgid &quot;headline&quot;
 msgstr &quot;naslov&quot;
 
-#: contrib/comments/models.py:69 contrib/comments/models.py:90
+#: contrib/comments/models.py:69
+#: contrib/comments/models.py:90
 #: contrib/comments/models.py:167
 msgid &quot;comment&quot;
 msgstr &quot;komentar&quot;
@@ -64,15 +69,18 @@ msgstr &quot;rating #8&quot;
 msgid &quot;is valid rating&quot;
 msgstr &quot;je veljavni rating&quot;
 
-#: contrib/comments/models.py:83 contrib/comments/models.py:169
+#: contrib/comments/models.py:83
+#: contrib/comments/models.py:169
 msgid &quot;date/time submitted&quot;
-msgstr &quot;podatek datum/&#269;as poslan&quot;
+msgstr &quot;datum/&#269;as vnosa&quot;
 
-#: contrib/comments/models.py:84 contrib/comments/models.py:170
+#: contrib/comments/models.py:84
+#: contrib/comments/models.py:170
 msgid &quot;is public&quot;
 msgstr &quot;je javno&quot;
 
-#: contrib/comments/models.py:85 contrib/admin/views/doc.py:289
+#: contrib/comments/models.py:85
+#: contrib/admin/views/doc.py:289
 msgid &quot;IP address&quot;
 msgstr &quot;IP naslov&quot;
 
@@ -81,21 +89,17 @@ msgid &quot;is removed&quot;
 msgstr &quot;je odstranjen/-a&quot;
 
 #: contrib/comments/models.py:86
-msgid &quot;&quot;
-&quot;Check this box if the comment is inappropriate. A \&quot;This comment has been &quot;
-&quot;removed\&quot; message will be displayed instead.&quot;
-msgstr &quot;&quot;
-&quot;Odkljukaj, &#269;e je komntar neprimeren. Namesto komentarja bo vidno obvestilo &quot;
-&quot;\&quot;Ta komentar je bil odstranjen\&quot;.&quot;
+msgid &quot;Check this box if the comment is inappropriate. A \&quot;This comment has been removed\&quot; message will be displayed instead.&quot;
+msgstr &quot;Odkljukaj, &#269;e je komntar neprimeren. Namesto komentarja bo vidno obvestilo \&quot;Ta komentar je bil odstranjen\&quot;.&quot;
 
 #: contrib/comments/models.py:91
-#, fuzzy
 msgid &quot;comments&quot;
-msgstr &quot;komentar&quot;
+msgstr &quot;komentarji&quot;
 
-#: contrib/comments/models.py:131 contrib/comments/models.py:207
+#: contrib/comments/models.py:131
+#: contrib/comments/models.py:207
 msgid &quot;Content object&quot;
-msgstr &quot;Objekt s vsebino&quot;
+msgstr &quot;Objekt z vsebino&quot;
 
 #: contrib/comments/models.py:159
 #, python-format
@@ -125,14 +129,12 @@ msgid &quot;approved by staff&quot;
 msgstr &quot;potrjeno s strani osebja&quot;
 
 #: contrib/comments/models.py:176
-#, fuzzy
 msgid &quot;free comment&quot;
-msgstr &quot;Zastonj komentar&quot;
+msgstr &quot;anonimen komentar&quot;
 
 #: contrib/comments/models.py:177
-#, fuzzy
 msgid &quot;free comments&quot;
-msgstr &quot;Zastonj komentarji&quot;
+msgstr &quot;anonimni komentarji&quot;
 
 #: contrib/comments/models.py:233
 msgid &quot;score&quot;
@@ -143,14 +145,12 @@ msgid &quot;score date&quot;
 msgstr &quot;datum ocene&quot;
 
 #: contrib/comments/models.py:237
-#, fuzzy
 msgid &quot;karma score&quot;
-msgstr &quot;Karma&quot;
+msgstr &quot;karma to&#269;ke&quot;
 
 #: contrib/comments/models.py:238
-#, fuzzy
 msgid &quot;karma scores&quot;
-msgstr &quot;Skrivnosti karme&quot;
+msgstr &quot;karma to&#269;ke&quot;
 
 #: contrib/comments/models.py:242
 #, python-format
@@ -173,14 +173,12 @@ msgid &quot;flag date&quot;
 msgstr &quot;datum ozna&#269;itve (zastavice)&quot;
 
 #: contrib/comments/models.py:268
-#, fuzzy
 msgid &quot;user flag&quot;
-msgstr &quot;Uporabni&#353;ka zastavica&quot;
+msgstr &quot;uporabnikova zastavica&quot;
 
 #: contrib/comments/models.py:269
-#, fuzzy
 msgid &quot;user flags&quot;
-msgstr &quot;Uporabni&#353;ke zastavice&quot;
+msgstr &quot;uporabni&#353;ke zastavice&quot;
 
 #: contrib/comments/models.py:273
 #, python-format
@@ -192,14 +190,12 @@ msgid &quot;deletion date&quot;
 msgstr &quot;datum izbrisa&quot;
 
 #: contrib/comments/models.py:280
-#, fuzzy
 msgid &quot;moderator deletion&quot;
-msgstr &quot;Izbris s strani moderatorja&quot;
+msgstr &quot;izbris s strani moderatorja&quot;
 
 #: contrib/comments/models.py:281
-#, fuzzy
 msgid &quot;moderator deletions&quot;
-msgstr &quot;Izbrisi s strani moderatorja&quot;
+msgstr &quot;izbrisi s strani moderatorja&quot;
 
 #: contrib/comments/models.py:285
 #, python-format
@@ -219,30 +215,33 @@ msgid &quot;No voting for yourself&quot;
 msgstr &quot;Ni mogo&#269;e glasovati zase&quot;
 
 #: contrib/comments/views/comments.py:28
-msgid &quot;&quot;
-&quot;This rating is required because you've entered at least one other rating.&quot;
+msgid &quot;This rating is required because you've entered at least one other rating.&quot;
 msgstr &quot;Mora&#353; podati tole oceno, ker si podal vsaj &#353;e eno drugo oceno.&quot;
 
 #: contrib/comments/views/comments.py:112
 #, python-format
 msgid &quot;&quot;
-&quot;This comment was posted by a user who has posted fewer than %(count)s &quot;
-&quot;comment:\n&quot;
+&quot;This comment was posted by a user who has posted fewer than %(count)s comment:\n&quot;
 &quot;\n&quot;
 &quot;%(text)s&quot;
 msgid_plural &quot;&quot;
-&quot;This comment was posted by a user who has posted fewer than %(count)s &quot;
-&quot;comments:\n&quot;
+&quot;This comment was posted by a user who has posted fewer than %(count)s comments:\n&quot;
 &quot;\n&quot;
 &quot;%(text)s&quot;
 msgstr[0] &quot;&quot;
-&quot;Ta komentar je poslal uporabnik, ki je do zdaj poslal manj kot %(count)s &quot;
-&quot;komentarjev Komentar:\n&quot;
+&quot;Ta komentar je poslal uporabnik, ki je do zdaj poslal manj kot %(count)s komentarjev:\n&quot;
 &quot;\n&quot;
 &quot;%(text)s&quot;
 msgstr[1] &quot;&quot;
-&quot;Ta komentar je poslal uporabnik, ki je do zdaj poslal manj kot %(count)s &quot;
-&quot;komentarjev Komentar:\n&quot;
+&quot;Ta komentar je poslal uporabnik, ki je do zdaj poslal manj kot %(count)s komentar:\n&quot;
+&quot;\n&quot;
+&quot;%(text)s&quot;
+msgstr[2] &quot;&quot;
+&quot;Ta komentar je poslal uporabnik, ki je do zdaj poslal manj kot %(count)s komentarja:\n&quot;
+&quot;\n&quot;
+&quot;%(text)s&quot;
+msgstr[3] &quot;&quot;
+&quot;Ta komentar je poslal uporabnik, ki je do zdaj poslal manj kot %(count)s komentarje:\n&quot;
 &quot;\n&quot;
 &quot;%(text)s&quot;
 
@@ -260,12 +259,12 @@ msgstr &quot;&quot;
 #: contrib/comments/views/comments.py:189
 #: contrib/comments/views/comments.py:280
 msgid &quot;Only POSTs are allowed&quot;
-msgstr &quot;Dovoljena je le metoda HTTP POST&quot;
+msgstr &quot;Dovoljena je le metoda POST&quot;
 
 #: contrib/comments/views/comments.py:193
 #: contrib/comments/views/comments.py:284
 msgid &quot;One or more of the required fields wasn't submitted&quot;
-msgstr &quot;Eden ali ve&#269; obveznih polj ni vpisanih&quot;
+msgstr &quot;Eno ali ve&#269; obveznih polj ni vpisanih&quot;
 
 #: contrib/comments/views/comments.py:197
 #: contrib/comments/views/comments.py:286
@@ -274,17 +273,13 @@ msgstr &quot;Nekdo se je poigraval z obrazcem za komentarje (varnostna kr&#353;itev)&quot;
 
 #: contrib/comments/views/comments.py:207
 #: contrib/comments/views/comments.py:292
-msgid &quot;&quot;
-&quot;The comment form had an invalid 'target' parameter -- the object ID was &quot;
-&quot;invalid&quot;
-msgstr &quot;&quot;
-&quot;Obrazec s komentarji ima neveljavni parameter 'target' -- ID objekta je &quot;
-&quot;neveljaven.&quot;
+msgid &quot;The comment form had an invalid 'target' parameter -- the object ID was invalid&quot;
+msgstr &quot;Obrazec s komentarji ima neveljavni parameter 'target' -- ID objekta je neveljaven.&quot;
 
 #: contrib/comments/views/comments.py:257
 #: contrib/comments/views/comments.py:321
 msgid &quot;The comment form didn't provide either 'preview' or 'post'&quot;
-msgstr &quot;Obrazec s komentarji ne zahteva niti 'preview' niti 'post' akcije.&quot;
+msgstr &quot;Obrazec s komentarji ni podal niti 'preview' niti 'post' akcije.&quot;
 
 #: contrib/comments/templates/comments/form.html:6
 #: contrib/comments/templates/comments/form.html:8
@@ -363,7 +358,8 @@ msgstr &quot;&quot;
 &quot;&lt;h3&gt;Avtor: %s&lt;/h3&gt;\n&quot;
 &quot;&lt;ul&gt;\n&quot;
 
-#: contrib/admin/filterspecs.py:70 contrib/admin/filterspecs.py:88
+#: contrib/admin/filterspecs.py:70
+#: contrib/admin/filterspecs.py:88
 #: contrib/admin/filterspecs.py:143
 msgid &quot;All&quot;
 msgstr &quot;Vse&quot;
@@ -390,7 +386,7 @@ msgstr &quot;Letos&quot;
 
 #: contrib/admin/filterspecs.py:143
 msgid &quot;Yes&quot;
-msgstr &quot;Ja&quot;
+msgstr &quot;Da&quot;
 
 #: contrib/admin/filterspecs.py:143
 msgid &quot;No&quot;
@@ -432,46 +428,33 @@ msgstr &quot;vnosi v dnevniku&quot;
 msgid &quot;All dates&quot;
 msgstr &quot;Vsi datumi&quot;
 
-#: contrib/admin/views/decorators.py:9 contrib/auth/forms.py:36
+#: contrib/admin/views/decorators.py:9
+#: contrib/auth/forms.py:36
 #: contrib/auth/forms.py:41
-msgid &quot;&quot;
-&quot;Please enter a correct username and password. Note that both fields are case-&quot;
-&quot;sensitive.&quot;
-msgstr &quot;&quot;
-&quot;Prosimo, vnesite veljavno uporabni&#353;ko ime in geslo. Opomba: obe polji sta &quot;
-&quot;ob&#269;utljivi na velikost &#269;rk&quot;
+msgid &quot;Please enter a correct username and password. Note that both fields are case-sensitive.&quot;
+msgstr &quot;Prosimo, vnesite veljavno uporabni&#353;ko ime in geslo. Opomba: obe polji sta ob&#269;utljivi na velikost &#269;rk&quot;
 
 #: contrib/admin/views/decorators.py:23
 #: contrib/admin/templates/admin/login.html:25
 msgid &quot;Log in&quot;
-msgstr &quot;Prijate se&quot;
+msgstr &quot;Prijavite se&quot;
 
 #: contrib/admin/views/decorators.py:61
-msgid &quot;&quot;
-&quot;Please log in again, because your session has expired. Don't worry: Your &quot;
-&quot;submission has been saved.&quot;
-msgstr &quot;&quot;
-&quot;Va&#353;a seja je pretekla; prosimo, prijavite se znova. Opomba: Vse va&#353;e objave &quot;
-&quot;so varno shranjene.&quot;
+msgid &quot;Please log in again, because your session has expired. Don't worry: Your submission has been saved.&quot;
+msgstr &quot;Va&#353;a seja je pretekla; prosimo, prijavite se znova. Ne skrbite, va&#353;e objave so varno shranjene.&quot;
 
 #: contrib/admin/views/decorators.py:68
-msgid &quot;&quot;
-&quot;Looks like your browser isn't configured to accept cookies. Please enable &quot;
-&quot;cookies, reload this page, and try again.&quot;
-msgstr &quot;&quot;
-&quot;Izgleda, da va&#353; brskalnik nima podpore za pi&#353;kotke. Prosimo, vklju&#269;ite &quot;
-&quot;pi&#353;kotke, znova nalo&#382;ite to stran in poskusite &#353;e enkrat.&quot;
+msgid &quot;Looks like your browser isn't configured to accept cookies. Please enable cookies, reload this page, and try again.&quot;
+msgstr &quot;Izgleda, da va&#353; brskalnik nima podpore za pi&#353;kotke. Prosimo, vklju&#269;ite pi&#353;kotke, znova nalo&#382;ite to stran in poskusite &#353;e enkrat.&quot;
 
 #: contrib/admin/views/decorators.py:82
 msgid &quot;Usernames cannot contain the '@' character.&quot;
-msgstr &quot;Uporabni&#353;ka imena ne smejo vsebovati znaka '@'&quot;
+msgstr &quot;Uporabni&#353;ka imena ne smejo vsebovati znaka '@'.&quot;
 
 #: contrib/admin/views/decorators.py:84
 #, python-format
 msgid &quot;Your e-mail address is not your username. Try '%s' instead.&quot;
-msgstr &quot;&quot;
-&quot;Va&#353; e-mail naslov ne morete uporabljati kot uporabni&#353;ko ime. Namesto tega &quot;
-&quot;uporabite '%s'&quot;
+msgstr &quot;Va&#353; e-mail naslov ne morete uporabljati kot uporabni&#353;ko ime. Namesto tega uporabite '%s'.&quot;
 
 #: contrib/admin/views/main.py:226
 msgid &quot;Site administration&quot;
@@ -482,11 +465,13 @@ msgstr &quot;Administracija strani&quot;
 msgid &quot;The %(name)s \&quot;%(obj)s\&quot; was added successfully.&quot;
 msgstr &quot;%(name)s \&quot;%(obj)s\&quot; je bil uspe&#353;no dodan.&quot;
 
-#: contrib/admin/views/main.py:264 contrib/admin/views/main.py:348
+#: contrib/admin/views/main.py:264
+#: contrib/admin/views/main.py:348
 msgid &quot;You may edit it again below.&quot;
 msgstr &quot;Vsebino lahko znova uredite spodaj.&quot;
 
-#: contrib/admin/views/main.py:272 contrib/admin/views/main.py:357
+#: contrib/admin/views/main.py:272
+#: contrib/admin/views/main.py:357
 #, python-format
 msgid &quot;You may add another %s below.&quot;
 msgstr &quot;Spodaj lahko dodate &#353;e en %s.&quot;
@@ -501,7 +486,8 @@ msgstr &quot;Dodaj %s&quot;
 msgid &quot;Added %s.&quot;
 msgstr &quot;Dodal %s.&quot;
 
-#: contrib/admin/views/main.py:336 contrib/admin/views/main.py:338
+#: contrib/admin/views/main.py:336
+#: contrib/admin/views/main.py:338
 #: contrib/admin/views/main.py:340
 msgid &quot;and&quot;
 msgstr &quot;in&quot;
@@ -509,7 +495,7 @@ msgstr &quot;in&quot;
 #: contrib/admin/views/main.py:338
 #, python-format
 msgid &quot;Changed %s.&quot;
-msgstr &quot;Spremenil %s&quot;
+msgstr &quot;Spremenil %s.&quot;
 
 #: contrib/admin/views/main.py:340
 #, python-format
@@ -527,10 +513,8 @@ msgstr &quot;%(name)s \&quot;%(obj)s\&quot; je bilo uspe&#353;no spremenjeno.&quot;
 
 #: contrib/admin/views/main.py:354
 #, python-format
-msgid &quot;&quot;
-&quot;The %(name)s \&quot;%(obj)s\&quot; was added successfully. You may edit it again below.&quot;
-msgstr &quot;&quot;
-&quot;%(name)s \&quot;%(obj)s\&quot; je bilo uspe&#353;no dodano. Znova ga lahko urejate spodaj.&quot;
+msgid &quot;The %(name)s \&quot;%(obj)s\&quot; was added successfully. You may edit it again below.&quot;
+msgstr &quot;%(name)s \&quot;%(obj)s\&quot; je bilo uspe&#353;no dodano. Znova ga lahko urejate spodaj.&quot;
 
 #: contrib/admin/views/main.py:392
 #, python-format
@@ -564,24 +548,28 @@ msgstr &quot;Zgodovina sprememb: %s&quot;
 #: contrib/admin/views/main.py:565
 #, python-format
 msgid &quot;Select %s&quot;
-msgstr &quot;Izberi %s&quot;
+msgstr &quot;Izberite %s&quot;
 
 #: contrib/admin/views/main.py:565
 #, python-format
 msgid &quot;Select %s to change&quot;
-msgstr &quot;Izberi %s, ki ga &#382;elite spremeniti&quot;
-
-#: contrib/admin/views/doc.py:277 contrib/admin/views/doc.py:286
-#: contrib/admin/views/doc.py:288 contrib/admin/views/doc.py:294
-#: contrib/admin/views/doc.py:295 contrib/admin/views/doc.py:297
+msgstr &quot;Izberite %s, ki ga &#382;elite spremeniti&quot;
+
+#: contrib/admin/views/doc.py:277
+#: contrib/admin/views/doc.py:286
+#: contrib/admin/views/doc.py:288
+#: contrib/admin/views/doc.py:294
+#: contrib/admin/views/doc.py:295
+#: contrib/admin/views/doc.py:297
 msgid &quot;Integer&quot;
-msgstr &quot;Integer (&#353;tevilo)&quot;
+msgstr &quot;&#352;tevilo (integer)&quot;
 
 #: contrib/admin/views/doc.py:278
 msgid &quot;Boolean (Either True or False)&quot;
 msgstr &quot;Boolean (ali True ali False)&quot;
 
-#: contrib/admin/views/doc.py:279 contrib/admin/views/doc.py:296
+#: contrib/admin/views/doc.py:279
+#: contrib/admin/views/doc.py:296
 #, python-format
 msgid &quot;String (up to %(maxlength)s)&quot;
 msgstr &quot;Niz (vse do %(maxlength)s)&quot;
@@ -602,7 +590,8 @@ msgstr &quot;Datum (s &#269;asom)&quot;
 msgid &quot;E-mail address&quot;
 msgstr &quot;E-naslov&quot;
 
-#: contrib/admin/views/doc.py:284 contrib/admin/views/doc.py:287
+#: contrib/admin/views/doc.py:284
+#: contrib/admin/views/doc.py:287
 msgid &quot;File path&quot;
 msgstr &quot;Pot do datoteke&quot;
 
@@ -616,7 +605,7 @@ msgstr &quot;Boolean (ali True ali False ali None)&quot;
 
 #: contrib/admin/views/doc.py:292
 msgid &quot;Relation to parent model&quot;
-msgstr &quot;Razmerje z star&#353;evskim modelom&quot;
+msgstr &quot;Razmerje s star&#353;evskim modelom&quot;
 
 #: contrib/admin/views/doc.py:293
 msgid &quot;Phone number&quot;
@@ -630,7 +619,8 @@ msgstr &quot;Besedilo&quot;
 msgid &quot;Time&quot;
 msgstr &quot;&#268;as&quot;
 
-#: contrib/admin/views/doc.py:300 contrib/flatpages/models.py:7
+#: contrib/admin/views/doc.py:300
+#: contrib/flatpages/models.py:7
 msgid &quot;URL&quot;
 msgstr &quot;URL (spletni naslov)&quot;
 
@@ -707,15 +697,11 @@ msgstr &quot;Dejanje&quot;
 
 #: contrib/admin/templates/admin/object_history.html:26
 msgid &quot;DATE_WITH_TIME_FULL&quot;
-msgstr &quot;N j, Y, P&quot;
+msgstr &quot;N j, Y, H:i&quot;
 
 #: contrib/admin/templates/admin/object_history.html:36
-msgid &quot;&quot;
-&quot;This object doesn't have a change history. It probably wasn't added via this &quot;
-&quot;admin site.&quot;
-msgstr &quot;&quot;
-&quot;Ta objekt nima zgodovine. Verjetno ni bil dodan preko te administratorske &quot;
-&quot;strani.&quot;
+msgid &quot;This object doesn't have a change history. It probably wasn't added via this admin site.&quot;
+msgstr &quot;Ta objekt nima zgodovine. Verjetno ni bil dodan preko te administratorske strani.&quot;
 
 #: contrib/admin/templates/admin/base_site.html:4
 msgid &quot;Django site admin&quot;
@@ -738,12 +724,8 @@ msgid &quot;Server Error &lt;em&gt;(500)&lt;/em&gt;&quot;
 msgstr &quot;Napaka stre&#382;nika &lt;em&gt;(500)&lt;/em&gt;&quot;
 
 #: contrib/admin/templates/admin/500.html:10
-msgid &quot;&quot;
-&quot;There's been an error. It's been reported to the site administrators via e-&quot;
-&quot;mail and should be fixed shortly. Thanks for your patience.&quot;
-msgstr &quot;&quot;
-&quot;Pri&#353;lo je do nepri&#269;akovane napake. Administratorji strani so &#382;e obve&#353;&#269;eni &quot;
-&quot;prekoe-po&#353;te in naj bi jo v kratkem odpravili. Hvala za va&#353;e potrpljenje.&quot;
+msgid &quot;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.&quot;
+msgstr &quot;Pri&#353;lo je do nepri&#269;akovane napake. Administratorji strani so &#382;e obve&#353;&#269;eni prekoe-po&#353;te in naj bi jo v kratkem odpravili. Hvala za va&#353;e potrpljenje.&quot;
 
 #: contrib/admin/templates/admin/404.html:4
 #: contrib/admin/templates/admin/404.html:8
@@ -752,12 +734,12 @@ msgstr &quot;Strani ni mogo&#269;e najti&quot;
 
 #: contrib/admin/templates/admin/404.html:10
 msgid &quot;We're sorry, but the requested page could not be found.&quot;
-msgstr &quot;Se opraiv&#269;ujemo, a zahtevane strani ni mogo&#269;e najti.&quot;
+msgstr &quot;Se opravi&#269;ujemo, a zahtevane strani ni mogo&#269;e najti.&quot;
 
 #: contrib/admin/templates/admin/index.html:17
 #, python-format
 msgid &quot;Models available in the %(name)s application.&quot;
-msgstr &quot;&quot;
+msgstr &quot;Modeli na voljo v %(name)s aplikaciji&quot;
 
 #: contrib/admin/templates/admin/index.html:28
 #: contrib/admin/templates/admin/change_form.html:15
@@ -776,7 +758,7 @@ msgstr &quot;Nimate dovoljenja za urejanje &#269;esar koli.&quot;
 msgid &quot;Recent Actions&quot;
 msgstr &quot;Zadnja dejanja&quot;
 
-#: contrib/admin/templates/admin/index.html:53
+#: contrib/admin/tempalates/admin/index.html:53
 msgid &quot;My Actions&quot;
 msgstr &quot;Moja dejanja&quot;
 
@@ -804,22 +786,13 @@ msgstr &quot;Izbri&#353;i&quot;
 
 #: contrib/admin/templates/admin/delete_confirmation.html:14
 #, python-format
-msgid &quot;&quot;
-&quot;Deleting the %(object_name)s '%(object)s' would result in deleting related &quot;
-&quot;objects, but your account doesn't have permission to delete the following &quot;
-&quot;types of objects:&quot;
-msgstr &quot;&quot;
-&quot;Izbris %(object_name)s '%(object)s' bi pomenil izbris povezanih objektov, &quot;
-&quot;vendarvi nimate dovoljenja za izbris naslednjih tipov objektov:&quot;
+msgid &quot;Deleting the %(object_name)s '%(object)s' would result in deleting related objects, but your account doesn't have permission to delete the following types of objects:&quot;
+msgstr &quot;Izbris %(object_name)s '%(object)s' bi pomenil izbris povezanih objektov, vendarvi nimate dovoljenja za izbris naslednjih tipov objektov:&quot;
 
 #: contrib/admin/templates/admin/delete_confirmation.html:21
 #, python-format
-msgid &quot;&quot;
-&quot;Are you sure you want to delete the %(object_name)s \&quot;%(object)s\&quot;? All of &quot;
-&quot;the following related items will be deleted:&quot;
-msgstr &quot;&quot;
-&quot;Ste prepri&#269;ani, da &#382;elite izbrisati %(object_name)s \&quot;%(object)s\&quot;?Vsi &quot;
-&quot;naslednji povezani elementi bodo izbrisani:&quot;
+msgid &quot;Are you sure you want to delete the %(object_name)s \&quot;%(object)s\&quot;? All of the following related items will be deleted:&quot;
+msgstr &quot;Ste prepri&#269;ani, da &#382;elite izbrisati %(object_name)s \&quot;%(object)s\&quot;?Vsi naslednji povezani elementi bodo izbrisani:&quot;
 
 #: contrib/admin/templates/admin/delete_confirmation.html:26
 msgid &quot;Yes, I'm sure&quot;
@@ -843,6 +816,8 @@ msgid &quot;Please correct the error below.&quot;
 msgid_plural &quot;Please correct the errors below.&quot;
 msgstr[0] &quot;Prosimo, odpravite slede&#269;o napako.&quot;
 msgstr[1] &quot;Prosimo, odpravite slede&#269;e napake.&quot;
+msgstr[2] &quot;Prosimo, odpravite slede&#269;i napaki.&quot;
+msgstr[3] &quot;Prosimo, odpravite slede&#269;e napake.&quot;
 
 #: contrib/admin/templates/admin/change_form.html:48
 msgid &quot;Ordering&quot;
@@ -892,12 +867,8 @@ msgid &quot;Password reset&quot;
 msgstr &quot;Obnova gesla&quot;
 
 #: contrib/admin/templates/registration/password_reset_form.html:12
-msgid &quot;&quot;
-&quot;Forgotten your password? Enter your e-mail address below, and we'll reset &quot;
-&quot;your password and e-mail the new one to you.&quot;
-msgstr &quot;&quot;
-&quot;Ste pozabili geslo? Vnesite va&#353; e-naslov spodaj in mi vam bomo poslali novo &quot;
-&quot;geslo.&quot;
+msgid &quot;Forgotten your password? Enter your e-mail address below, and we'll reset your password and e-mail the new one to you.&quot;
+msgstr &quot;Ste pozabili geslo? Vnesite va&#353; e-naslov spodaj in mi vam bomo poslali novo geslo.&quot;
 
 #: contrib/admin/templates/registration/password_reset_form.html:16
 msgid &quot;E-mail address:&quot;
@@ -921,18 +892,12 @@ msgid &quot;Password reset successful&quot;
 msgstr &quot;Geslo je bilo uspe&#353;no obnovljeno&quot;
 
 #: contrib/admin/templates/registration/password_reset_done.html:12
-msgid &quot;&quot;
-&quot;We've e-mailed a new password to the e-mail address you submitted. You &quot;
-&quot;should be receiving it shortly.&quot;
+msgid &quot;We've e-mailed a new password to the e-mail address you submitted. You should be receiving it shortly.&quot;
 msgstr &quot;Po e-po&#353;ti smo vam poslali novo geslo.Morali bi ga prejeti v kratkem&quot;
 
 #: contrib/admin/templates/registration/password_change_form.html:12
-msgid &quot;&quot;
-&quot;Please enter your old password, for security's sake, and then enter your new &quot;
-&quot;password twice so we can verify you typed it in correctly.&quot;
-msgstr &quot;&quot;
-&quot;Prosim, vnesite va&#353;e staro geslo (zaradi varnosti) in nato &#353;e dvakrat novo&quot;
-&quot;(da preverimo, da se niste zatipkali)&quot;
+msgid &quot;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.&quot;
+msgstr &quot;Prosim, vnesite va&#353;e staro geslo (zaradi varnosti) in nato &#353;e dvakrat novo(da preverimo, da se niste zatipkali)&quot;
 
 #: contrib/admin/templates/registration/password_change_form.html:17
 msgid &quot;Old password:&quot;
@@ -1000,34 +965,24 @@ msgid &quot;&quot;
 &quot;your computer is \&quot;internal\&quot;).&lt;/p&gt;\n&quot;
 msgstr &quot;&quot;
 &quot;\n&quot;
-&quot;&lt;p class=\&quot;help\&quot;&gt;Za in&#353;talacijo zaznamkic povle&#269;ite povezavo v orodno &quot;
-&quot;vrstico\n&quot;
-&quot;z zaznamki, ali kliknite z desno mi&#353;kino tipko na povezavo in jo dodajte med &quot;
-&quot;zaznamkeZdaj lahko uporabite zaznamek s katere koli strani. Opomba: nekatere &quot;
-&quot;teh stranilahko gledate le z internega ra&#269;unalnika (preverite s sistemskim &quot;
-&quot;administratorjem)&lt;/p&gt;\n&quot;
+&quot;&lt;p class=\&quot;help\&quot;&gt;Za in&#353;talacijo zaznamkic povle&#269;ite povezavo v orodno vrstico\n&quot;
+&quot;z zaznamki, ali kliknite z desno mi&#353;kino tipko na povezavo in jo dodajte med zaznamkeZdaj lahko uporabite zaznamek s katere koli strani. Opomba: nekatere teh stranilahko gledate le z internega ra&#269;unalnika (preverite s sistemskim administratorjem)&lt;/p&gt;\n&quot;
 
 #: contrib/admin/templates/admin_doc/bookmarklets.html:19
 msgid &quot;Documentation for this page&quot;
 msgstr &quot;Dokumentacija za to stran&quot;
 
 #: contrib/admin/templates/admin_doc/bookmarklets.html:20
-msgid &quot;&quot;
-&quot;Jumps you from any page to the documentation for the view that generates &quot;
-&quot;that page.&quot;
-msgstr &quot;&quot;
-&quot;Skok na stran z dokumentacijo za pogled (view), ki generira trenutno stran.&quot;
+msgid &quot;Jumps you from any page to the documentation for the view that generates that page.&quot;
+msgstr &quot;Skok na stran z dokumentacijo za pogled (view), ki generira trenutno stran.&quot;
 
 #: contrib/admin/templates/admin_doc/bookmarklets.html:22
 msgid &quot;Show object ID&quot;
 msgstr &quot;Poka&#382;i ID objekta&quot;
 
 #: contrib/admin/templates/admin_doc/bookmarklets.html:23
-msgid &quot;&quot;
-&quot;Shows the content-type and unique ID for pages that represent a single &quot;
-&quot;object.&quot;
-msgstr &quot;&quot;
-&quot;Poka&#382;e content-type in unikatni ID za strani, ki predstavljajo en objekt.&quot;
+msgid &quot;Shows the content-type and unique ID for pages that represent a single object.&quot;
+msgstr &quot;Poka&#382;e content-type in unikatni ID za strani, ki predstavljajo en objekt.&quot;
 
 #: contrib/admin/templates/admin_doc/bookmarklets.html:25
 msgid &quot;Edit this object (current window)&quot;
@@ -1035,8 +990,7 @@ msgstr &quot;Uredi trenutni objekt (v trenutnem oknu)&quot;
 
 #: contrib/admin/templates/admin_doc/bookmarklets.html:26
 msgid &quot;Jumps to the admin page for pages that represent a single object.&quot;
-msgstr &quot;&quot;
-&quot;Skok na administracijsko stran za vse strani, ki predstavljajo en objekt.&quot;
+msgstr &quot;Skok na administracijsko stran za vse strani, ki predstavljajo en objekt.&quot;
 
 #: contrib/admin/templates/admin_doc/bookmarklets.html:28
 msgid &quot;Edit this object (new window)&quot;
@@ -1067,23 +1021,16 @@ msgid &quot;redirect from&quot;
 msgstr &quot;preusmeritev iz&quot;
 
 #: contrib/redirects/models.py:8
-msgid &quot;&quot;
-&quot;This should be an absolute path, excluding the domain name. Example: '/&quot;
-&quot;events/search/'.&quot;
-msgstr &quot;&quot;
-&quot;To mora biti absolutna pot, izklju&#269;ujo&#269; domeno. Primer: '/events/search'-&quot;
+msgid &quot;This should be an absolute path, excluding the domain name. Example: '/events/search/'.&quot;
+msgstr &quot;To mora biti absolutna pot, izklju&#269;ujo&#269; domeno. Primer: '/events/search'-&quot;
 
 #: contrib/redirects/models.py:9
 msgid &quot;redirect to&quot;
 msgstr &quot;preusmeri na&quot;
 
 #: contrib/redirects/models.py:10
-msgid &quot;&quot;
-&quot;This can be either an absolute path (as above) or a full URL starting with &quot;
-&quot;'http://'.&quot;
-msgstr &quot;&quot;
-&quot;To je ali absolutna pot (kot zgoraj) ali popoln URL naslov (za&#269;ne se z &quot;
-&quot;'http://')&quot;
+msgid &quot;This can be either an absolute path (as above) or a full URL starting with 'http://'.&quot;
+msgstr &quot;To je ali absolutna pot (kot zgoraj) ali popoln URL naslov (za&#269;ne se z 'http://')&quot;
 
 #: contrib/redirects/models.py:12
 msgid &quot;redirect&quot;
@@ -1094,10 +1041,8 @@ msgid &quot;redirects&quot;
 msgstr &quot;preusmeritve&quot;
 
 #: contrib/flatpages/models.py:8
-msgid &quot;&quot;
-&quot;Example: '/about/contact/'. Make sure to have leading and trailing slashes.&quot;
-msgstr &quot;&quot;
-&quot;Primer: '/about/contact/'. Mora vsebovati / (po&#353;evnico) na za&#269;etku in koncu.&quot;
+msgid &quot;Example: '/about/contact/'. Make sure to have leading and trailing slashes.&quot;
+msgstr &quot;Primer: '/about/contact/'. Mora vsebovati / (po&#353;evnico) na za&#269;etku in koncu.&quot;
 
 #: contrib/flatpages/models.py:9
 msgid &quot;title&quot;
@@ -1116,12 +1061,8 @@ msgid &quot;template name&quot;
 msgstr &quot;ime predloge&quot;
 
 #: contrib/flatpages/models.py:13
-msgid &quot;&quot;
-&quot;Example: 'flatpages/contact_page'. If this isn't provided, the system will &quot;
-&quot;use 'flatpages/default'.&quot;
-msgstr &quot;&quot;
-&quot;Primer: 'flatpages/contact_page'. &#268;e to polje ni izpolnjeno, bo sistem &quot;
-&quot;uporabil 'flatpages/default'.&quot;
+msgid &quot;Example: 'flatpages/contact_page'. If this isn't provided, the system will use 'flatpages/default'.&quot;
+msgstr &quot;Primer: 'flatpages/contact_page'. &#268;e to polje ni izpolnjeno, bo sistem uporabil 'flatpages/default'.&quot;
 
 #: contrib/flatpages/models.py:14
 msgid &quot;registration required&quot;
@@ -1129,19 +1070,18 @@ msgstr &quot;obvezna registracija&quot;
 
 #: contrib/flatpages/models.py:14
 msgid &quot;If this is checked, only logged-in users will be able to view the page.&quot;
-msgstr &quot;&quot;
-&quot;&#268;e je to polje odkljukano, si lahko to stran ogledajo le registrirani &quot;
-&quot;uporabniki.&quot;
+msgstr &quot;&#268;e je to polje odkljukano, si lahko to stran ogledajo le registrirani uporabniki.&quot;
 
 #: contrib/flatpages/models.py:18
 msgid &quot;flat page&quot;
-msgstr &quot;ploh stran :)&quot;
+msgstr &quot;enostavna stran&quot;
 
 #: contrib/flatpages/models.py:19
 msgid &quot;flat pages&quot;
-msgstr &quot;ploh strani :)&quot;
+msgstr &quot;enostavne strani&quot;
 
-#: contrib/auth/models.py:13 contrib/auth/models.py:26
+#: contrib/auth/models.py:13
+#: contrib/auth/models.py:26
 msgid &quot;name&quot;
 msgstr &quot;ime&quot;
 
@@ -1150,24 +1090,22 @@ msgid &quot;codename&quot;
 msgstr &quot;kodno ime&quot;
 
 #: contrib/auth/models.py:17
-#, fuzzy
 msgid &quot;permission&quot;
-msgstr &quot;Dovoljenje&quot;
+msgstr &quot;dovoljenje&quot;
 
-#: contrib/auth/models.py:18 contrib/auth/models.py:27
-#, fuzzy
+#: contrib/auth/models.py:18
+#: contrib/auth/models.py:27
 msgid &quot;permissions&quot;
-msgstr &quot;Dovoljenja&quot;
+msgstr &quot;dovoljenja&quot;
 
 #: contrib/auth/models.py:29
-#, fuzzy
 msgid &quot;group&quot;
-msgstr &quot;Skupina&quot;
+msgstr &quot;skupina&quot;
 
-#: contrib/auth/models.py:30 contrib/auth/models.py:65
-#, fuzzy
+#: contrib/auth/models.py:30
+#: contrib/auth/models.py:65
 msgid &quot;groups&quot;
-msgstr &quot;Skupine&quot;
+msgstr &quot;skupine&quot;
 
 #: contrib/auth/models.py:55
 msgid &quot;username&quot;
@@ -1218,27 +1156,20 @@ msgid &quot;date joined&quot;
 msgstr &quot;&#269;lan od&quot;
 
 #: contrib/auth/models.py:66
-msgid &quot;&quot;
-&quot;In addition to the permissions manually assigned, this user will also get &quot;
-&quot;all permissions granted to each group he/she is in.&quot;
-msgstr &quot;&quot;
-&quot;Polek ro&#269;no dolo&#269;enih dovoljenj bo ta uporabnik dobil tudi vsa dovoljenja,ki &quot;
-&quot;pripadajo vsem skupinah, v katerih je.&quot;
+msgid &quot;In addition to the permissions manually assigned, this user will also get all permissions granted to each group he/she is in.&quot;
+msgstr &quot;Polek ro&#269;no dolo&#269;enih dovoljenj bo ta uporabnik dobil tudi vsa dovoljenja,ki pripadajo vsem skupinah, v katerih je.&quot;
 
 #: contrib/auth/models.py:67
-#, fuzzy
 msgid &quot;user permissions&quot;
-msgstr &quot;Dovoljenja&quot;
+msgstr &quot;uporabni&#353;ka dovoljenja&quot;
 
 #: contrib/auth/models.py:70
-#, fuzzy
 msgid &quot;user&quot;
-msgstr &quot;Uporabnik&quot;
+msgstr &quot;uporabnik&quot;
 
 #: contrib/auth/models.py:71
-#, fuzzy
 msgid &quot;users&quot;
-msgstr &quot;Uporabniki&quot;
+msgstr &quot;uporabniki&quot;
 
 #: contrib/auth/models.py:76
 msgid &quot;Personal info&quot;
@@ -1257,22 +1188,16 @@ msgid &quot;Groups&quot;
 msgstr &quot;Skupine&quot;
 
 #: contrib/auth/models.py:219
-#, fuzzy
 msgid &quot;message&quot;
-msgstr &quot;Sporo&#269;ilo&quot;
+msgstr &quot;sporo&#269;ilo&quot;
 
 #: contrib/auth/forms.py:30
-msgid &quot;&quot;
-&quot;Your Web browser doesn't appear to have cookies enabled. Cookies are &quot;
-&quot;required for logging in.&quot;
-msgstr &quot;&quot;
-&quot;Izgleda, da va&#353; brskalnik nima omogo&#269;enih pi&#353;kotkov. Pi&#353;kotki so potrebni za &quot;
-&quot;prijavo.&quot;
+msgid &quot;Your Web browser doesn't appear to have cookies enabled. Cookies are required for logging in.&quot;
+msgstr &quot;Izgleda, da va&#353; brskalnik nima omogo&#269;enih pi&#353;kotkov. Pi&#353;kotki so potrebni za prijavo.&quot;
 
 #: contrib/contenttypes/models.py:25
-#, fuzzy
 msgid &quot;python model class name&quot;
-msgstr &quot;python ime modula&quot;
+msgstr &quot;python ime razreda modela&quot;
 
 #: contrib/contenttypes/models.py:28
 msgid &quot;content type&quot;
@@ -1366,23 +1291,28 @@ msgstr &quot;januar&quot;
 msgid &quot;February&quot;
 msgstr &quot;februar&quot;
 
-#: utils/dates.py:14 utils/dates.py:27
+#: utils/dates.py:14
+#: utils/dates.py:27
 msgid &quot;March&quot;
 msgstr &quot;marec&quot;
 
-#: utils/dates.py:14 utils/dates.py:27
+#: utils/dates.py:14
+#: utils/dates.py:27
 msgid &quot;April&quot;
 msgstr &quot;april&quot;
 
-#: utils/dates.py:14 utils/dates.py:27
+#: utils/dates.py:14
+#: utils/dates.py:27
 msgid &quot;May&quot;
 msgstr &quot;maj&quot;
 
-#: utils/dates.py:14 utils/dates.py:27
+#: utils/dates.py:14
+#: utils/dates.py:27
 msgid &quot;June&quot;
 msgstr &quot;junij&quot;
 
-#: utils/dates.py:15 utils/dates.py:27
+#: utils/dates.py:15
+#: utils/dates.py:27
 msgid &quot;July&quot;
 msgstr &quot;julij&quot;
 
@@ -1407,62 +1337,58 @@ msgid &quot;December&quot;
 msgstr &quot;december&quot;
 
 #: utils/dates.py:19
-#, fuzzy
 msgid &quot;jan&quot;
-msgstr &quot;in&quot;
+msgstr &quot;jan&quot;
 
 #: utils/dates.py:19
-#, fuzzy
 msgid &quot;feb&quot;
-msgstr &quot;feb.&quot;
+msgstr &quot;feb&quot;
 
 #: utils/dates.py:19
 msgid &quot;mar&quot;
-msgstr &quot;&quot;
+msgstr &quot;mar&quot;
 
 #: utils/dates.py:19
 msgid &quot;apr&quot;
-msgstr &quot;&quot;
+msgstr &quot;apr&quot;
 
 #: utils/dates.py:19
-#, fuzzy
 msgid &quot;may&quot;
-msgstr &quot;dan&quot;
+msgstr &quot;maj&quot;
 
 #: utils/dates.py:19
 msgid &quot;jun&quot;
-msgstr &quot;&quot;
+msgstr &quot;jun&quot;
 
 #: utils/dates.py:20
 msgid &quot;jul&quot;
-msgstr &quot;&quot;
+msgstr &quot;jul&quot;
 
 #: utils/dates.py:20
 msgid &quot;aug&quot;
-msgstr &quot;&quot;
+msgstr &quot;avg&quot;
 
 #: utils/dates.py:20
 msgid &quot;sep&quot;
-msgstr &quot;&quot;
+msgstr &quot;sep&quot;
 
 #: utils/dates.py:20
 msgid &quot;oct&quot;
-msgstr &quot;&quot;
+msgstr &quot;okt&quot;
 
 #: utils/dates.py:20
 msgid &quot;nov&quot;
-msgstr &quot;&quot;
+msgstr &quot;nov&quot;
 
 #: utils/dates.py:20
 msgid &quot;dec&quot;
-msgstr &quot;&quot;
+msgstr &quot;dec&quot;
 
 #: utils/dates.py:27
 msgid &quot;Jan.&quot;
 msgstr &quot;jan.&quot;
 
 #: utils/dates.py:27
-#, fuzzy
 msgid &quot;Feb.&quot;
 msgstr &quot;feb.&quot;
 
@@ -1489,38 +1415,50 @@ msgstr &quot;dec.&quot;
 #: utils/timesince.py:12
 msgid &quot;year&quot;
 msgid_plural &quot;years&quot;
-msgstr[0] &quot;leto&quot;
-msgstr[1] &quot;let&quot;
+msgstr[0] &quot;let&quot;
+msgstr[1] &quot;leto&quot;
+msgstr[2] &quot;leti&quot;
+msgstr[3] &quot;leta&quot;
 
 #: utils/timesince.py:13
 msgid &quot;month&quot;
 msgid_plural &quot;months&quot;
-msgstr[0] &quot;mesec&quot;
-msgstr[1] &quot;mesecev&quot;
+msgstr[0] &quot;mesecev&quot;
+msgstr[1] &quot;mesec&quot;
+msgstr[2] &quot;meseca&quot;
+msgstr[3] &quot;meseci&quot;
 
 #: utils/timesince.py:14
 msgid &quot;week&quot;
 msgid_plural &quot;weeks&quot;
-msgstr[0] &quot;&quot;
-msgstr[1] &quot;&quot;
+msgstr[0] &quot;tednov&quot;
+msgstr[1] &quot;teden&quot;
+msgstr[2] &quot;tedna&quot;
+msgstr[3] &quot;tednov&quot;
 
 #: utils/timesince.py:15
 msgid &quot;day&quot;
 msgid_plural &quot;days&quot;
-msgstr[0] &quot;dan&quot;
-msgstr[1] &quot;dni&quot;
+msgstr[0] &quot;dni&quot;
+msgstr[1] &quot;dan&quot;
+msgstr[2] &quot;dneva&quot;
+msgstr[3] &quot;dni&quot;
 
 #: utils/timesince.py:16
 msgid &quot;hour&quot;
 msgid_plural &quot;hours&quot;
-msgstr[0] &quot;ura&quot;
-msgstr[1] &quot;ur&quot;
+msgstr[0] &quot;ur&quot;
+msgstr[1] &quot;ura&quot;
+msgstr[2] &quot;uri&quot;
+msgstr[3] &quot;ure&quot;
 
 #: utils/timesince.py:17
 msgid &quot;minute&quot;
 msgid_plural &quot;minutes&quot;
-msgstr[0] &quot;minuta&quot;
-msgstr[1] &quot;minut&quot;
+msgstr[0] &quot;minut&quot;
+msgstr[1] &quot;minuta&quot;
+msgstr[2] &quot;minuti&quot;
+msgstr[3] &quot;minute&quot;
 
 #: conf/global_settings.py:37
 msgid &quot;Bengali&quot;
@@ -1544,7 +1482,7 @@ msgstr &quot;Nem&#353;ki&quot;
 
 #: conf/global_settings.py:42
 msgid &quot;Greek&quot;
-msgstr &quot;&quot;
+msgstr &quot;Gr&#353;ki&quot;
 
 #: conf/global_settings.py:43
 msgid &quot;English&quot;
@@ -1564,11 +1502,11 @@ msgstr &quot;Gali&#269;anski&quot;
 
 #: conf/global_settings.py:47
 msgid &quot;Hungarian&quot;
-msgstr &quot;&quot;
+msgstr &quot;Mad&#382;arski&quot;
 
 #: conf/global_settings.py:48
 msgid &quot;Hebrew&quot;
-msgstr &quot;&quot;
+msgstr &quot;Hebrejski&quot;
 
 #: conf/global_settings.py:49
 msgid &quot;Icelandic&quot;
@@ -1619,9 +1557,8 @@ msgid &quot;Swedish&quot;
 msgstr &quot;&#352;vedski&quot;
 
 #: conf/global_settings.py:61
-#, fuzzy
 msgid &quot;Ukrainian&quot;
-msgstr &quot;Brazilski&quot;
+msgstr &quot;Ukrajinski&quot;
 
 #: conf/global_settings.py:62
 msgid &quot;Simplified Chinese&quot;
@@ -1636,12 +1573,8 @@ msgid &quot;This value must contain only letters, numbers and underscores.&quot;
 msgstr &quot;To polje lahko vsebuje le &#269;rke, &#353;tevila in pod&#269;rtaje (_).&quot;
 
 #: core/validators.py:64
-#, fuzzy
-msgid &quot;&quot;
-&quot;This value must contain only letters, numbers, underscores, dashes or &quot;
-&quot;slashes.&quot;
-msgstr &quot;&quot;
-&quot;To polje lahko vsebuje le &#269;rke, &#353;tevila, pod&#269;rtaje (_) in po&#353;evnice (/).&quot;
+msgid &quot;This value must contain only letters, numbers, underscores, dashes or slashes.&quot;
+msgstr &quot;To polje lahko vsebuje le &#269;rke, &#353;tevila, pod&#269;rtaje, po&#353;evnice ali pomi&#353;ljaje.&quot;
 
 #: core/validators.py:72
 msgid &quot;Uppercase letters are not allowed here.&quot;
@@ -1691,23 +1624,18 @@ msgstr &quot;Vnesite veljavni datum v zapisu YYYY-MM-DD (leto-mesec-dan).&quot;
 msgid &quot;Enter a valid time in HH:MM format.&quot;
 msgstr &quot;Vnesite veljavni &#269;as v zapisu HH:MM (ura:minuta).&quot;
 
-#: core/validators.py:132 db/models/fields/__init__.py:468
+#: core/validators.py:132
+#: db/models/fields/__init__.py:468
 msgid &quot;Enter a valid date/time in YYYY-MM-DD HH:MM format.&quot;
-msgstr &quot;&quot;
-&quot;Vnesite veljavni datum/&#269;as v zapisu YYYY-MM-DD HH:MM (leto-mesec-dan ura:&quot;
-&quot;minuta)&quot;
+msgstr &quot;Vnesite veljavni datum/&#269;as v zapisu YYYY-MM-DD HH:MM (leto-mesec-dan ura:minuta)&quot;
 
 #: core/validators.py:136
 msgid &quot;Enter a valid e-mail address.&quot;
 msgstr &quot;Vnesite veljavni e-naslov.&quot;
 
 #: core/validators.py:148
-msgid &quot;&quot;
-&quot;Upload a valid image. The file you uploaded was either not an image or a &quot;
-&quot;corrupted image.&quot;
-msgstr &quot;&quot;
-&quot;Uploadjate veljavno sliko. Trenutna datoteka ni bila niti slika niti &quot;
-&quot;okvarjena slika.&quot;
+msgid &quot;Upload a valid image. The file you uploaded was either not an image or a corrupted image.&quot;
+msgstr &quot;Uploadjate veljavno sliko. Trenutna datoteka ni bila niti slika niti okvarjena slika.&quot;
 
 #: core/validators.py:155
 #, python-format
@@ -1747,7 +1675,8 @@ msgstr &quot;Pokvarjen XML: %s&quot;
 msgid &quot;Invalid URL: %s&quot;
 msgstr &quot;Neveljavni URL naslov: %s&quot;
 
-#: core/validators.py:206 core/validators.py:208
+#: core/validators.py:206
+#: core/validators.py:208
 #, python-format
 msgid &quot;The URL %s is a broken link.&quot;
 msgstr &quot;URL povezava %s je polomljena.&quot;
@@ -1762,6 +1691,8 @@ msgid &quot;Watch your mouth! The word %s is not allowed here.&quot;
 msgid_plural &quot;Watch your mouth! The words %s are not allowed here.&quot;
 msgstr[0] &quot;Pazite na jezik! Beseda %s tu ni dovoljena.&quot;
 msgstr[1] &quot;Pazite na jezik! Besede %s tu niso dovoljene.&quot;
+msgstr[2] &quot;Pazite na jezik! Besede %s tu niso dovoljene.&quot;
+msgstr[3] &quot;Pazite na jezik! Besede %s tu niso dovoljene.&quot;
 
 #: core/validators.py:236
 #, python-format
@@ -1772,7 +1703,8 @@ msgstr &quot;To polje mora ustrezati polju '%s'.&quot;
 msgid &quot;Please enter something for at least one field.&quot;
 msgstr &quot;Prosim, vnesite nekaj v vsaj eno od polj.&quot;
 
-#: core/validators.py:264 core/validators.py:275
+#: core/validators.py:264
+#: core/validators.py:275
 msgid &quot;Please enter both fields or leave them both empty.&quot;
 msgstr &quot;Prosimo, izpolnite obe polji ali ju pustite obe prazni.&quot;
 
@@ -1802,20 +1734,20 @@ msgstr &quot;Prosim vnesite decimalno &#353;tevilo.&quot;
 #: core/validators.py:349
 #, python-format
 msgid &quot;Please enter a valid decimal number with at most %s total digit.&quot;
-msgid_plural &quot;&quot;
-&quot;Please enter a valid decimal number with at most %s total digits.&quot;
-msgstr[0] &quot;Prosimo, vnesite veljavno decimalno &#353;tevilo z najve&#269; %s &#353;tevkami.&quot;
-msgstr[1] &quot;Prosimo, vnesite veljavno decimalno &#353;tevilo z najve&#269; %s &#353;tevkami.&quot;
+msgid_plural &quot;Please enter a valid decimal number with at most %s total digits.&quot;
+msgstr[0] &quot;Prosimo, vnesite veljavno decimalno &#353;tevilo z najve&#269; %s &#353;tevko.&quot;
+msgstr[1] &quot;Prosimo, vnesite veljavno decimalno &#353;tevilo z najve&#269; %s &#353;tevkama.&quot;
+msgstr[2] &quot;Prosimo, vnesite veljavno decimalno &#353;tevilo z najve&#269; %s &#353;tevkami.&quot;
+msgstr[3] &quot;Prosimo, vnesite veljavno decimalno &#353;tevilo z najve&#269; %s &#353;tevkami.&quot;
 
 #: core/validators.py:352
 #, python-format
 msgid &quot;Please enter a valid decimal number with at most %s decimal place.&quot;
-msgid_plural &quot;&quot;
-&quot;Please enter a valid decimal number with at most %s decimal places.&quot;
-msgstr[0] &quot;&quot;
-&quot;Prosimo, vnesite veljavno decimalno &#353;tevilo z najve&#269; %s decimalnimi mesti.&quot;
-msgstr[1] &quot;&quot;
-&quot;Prosimo, vnesite veljavno decimalno &#353;tevilo z najve&#269; %s decimalnimi mesti.&quot;
+msgid_plural &quot;Please enter a valid decimal number with at most %s decimal places.&quot;
+msgstr[0] &quot;Prosimo, vnesite veljavno decimalno &#353;tevilo z najve&#269; %s decimalnim mestom.&quot;
+msgstr[1] &quot;Prosimo, vnesite veljavno decimalno &#353;tevilo z najve&#269; %s decimalnimi mesti.&quot;
+msgstr[2] &quot;Prosimo, vnesite veljavno decimalno &#353;tevilo z najve&#269; %s decimalnimi mesti.&quot;
+msgstr[3] &quot;Prosimo, vnesite veljavno decimalno &#353;tevilo z najve&#269; %s decimalnimi mesti.&quot;
 
 #: core/validators.py:362
 #, python-format
@@ -1842,94 +1774,68 @@ msgstr &quot;Iz %s nisem mogel izlo&#269;iti ni&#269;esar.&quot;
 
 #: core/validators.py:429
 #, python-format
-msgid &quot;&quot;
-&quot;The URL %(url)s returned the invalid Content-Type header '%(contenttype)s'.&quot;
+msgid &quot;The URL %(url)s returned the invalid Content-Type header '%(contenttype)s'.&quot;
 msgstr &quot;URL %(url)s je vrnil neveljavni Content-Type '%(contenttype)s'.&quot;
 
 #: core/validators.py:462
 #, python-format
-msgid &quot;&quot;
-&quot;Please close the unclosed %(tag)s tag from line %(line)s. (Line starts with &quot;
-&quot;\&quot;%(start)s\&quot;.)&quot;
-msgstr &quot;&quot;
-&quot;Prosimo, zaprite nezaprto %(tag)s oznako v vrstici %(line)s. (Vrstica se &quot;
-&quot;za&#269;ne z \&quot;%(start)s\&quot;.)&quot;
+msgid &quot;Please close the unclosed %(tag)s tag from line %(line)s. (Line starts with \&quot;%(start)s\&quot;.)&quot;
+msgstr &quot;Prosimo, zaprite nezaprto %(tag)s oznako v vrstici %(line)s. (Vrstica se za&#269;ne z \&quot;%(start)s\&quot;.)&quot;
 
 #: core/validators.py:466
 #, python-format
-msgid &quot;&quot;
-&quot;Some text starting on line %(line)s is not allowed in that context. (Line &quot;
-&quot;starts with \&quot;%(start)s\&quot;.)&quot;
-msgstr &quot;&quot;
-&quot;Tekst z za&#269;etka vrstice %(line)s ni dovoljen v tem kontekstu. (Vrstica se &quot;
-&quot;za&#269;ne z \&quot;%(start)s\&quot;.)&quot;
+msgid &quot;Some text starting on line %(line)s is not allowed in that context. (Line starts with \&quot;%(start)s\&quot;.)&quot;
+msgstr &quot;Tekst z za&#269;etka vrstice %(line)s ni dovoljen v tem kontekstu. (Vrstica se za&#269;ne z \&quot;%(start)s\&quot;.)&quot;
 
 #: core/validators.py:471
-#, fuzzy, python-format
-msgid &quot;&quot;
-&quot;\&quot;%(attr)s\&quot; on line %(line)s is an invalid attribute. (Line starts with \&quot;%&quot;
-&quot;(start)s\&quot;.)&quot;
-msgstr &quot;&quot;
-&quot;\&quot;&lt;%(tag)s&gt;\&quot; v vrstici %(line)s je neveljavna oznaka. (Vrstica se za&#269;ne z &quot;
-&quot;\&quot;%(start)s\&quot;.)&quot;
+#, python-format
+msgid &quot;\&quot;%(attr)s\&quot; on line %(line)s is an invalid attribute. (Line starts with \&quot;%(start)s\&quot;.)&quot;
+msgstr &quot;\&quot;%(attr)s\&quot; v vrstici %(line)s je neveljavna oznaka. (Vrstica se za&#269;ne z \&quot;%(start)s\&quot;.)&quot;
 
 #: core/validators.py:476
 #, python-format
-msgid &quot;&quot;
-&quot;\&quot;&lt;%(tag)s&gt;\&quot; on line %(line)s is an invalid tag. (Line starts with \&quot;%&quot;
-&quot;(start)s\&quot;.)&quot;
-msgstr &quot;&quot;
-&quot;\&quot;&lt;%(tag)s&gt;\&quot; v vrstici %(line)s je neveljavna oznaka. (Vrstica se za&#269;ne z &quot;
-&quot;\&quot;%(start)s\&quot;.)&quot;
+msgid &quot;\&quot;&lt;%(tag)s&gt;\&quot; on line %(line)s is an invalid tag. (Line starts with \&quot;%(start)s\&quot;.)&quot;
+msgstr &quot;\&quot;&lt;%(tag)s&gt;\&quot; v vrstici %(line)s je neveljavna oznaka. (Vrstica se za&#269;ne z \&quot;%(start)s\&quot;.)&quot;
 
 #: core/validators.py:480
 #, python-format
-msgid &quot;&quot;
-&quot;A tag on line %(line)s is missing one or more required attributes. (Line &quot;
-&quot;starts with \&quot;%(start)s\&quot;.)&quot;
-msgstr &quot;&quot;
-&quot;Oznaki v vrstici %(line)s manjka eden ali ve&#269; nujnih atributov (Vrstica se &quot;
-&quot;za&#269;ne z \&quot;%(start)s\&quot;.)&quot;
+msgid &quot;A tag on line %(line)s is missing one or more required attributes. (Line starts with \&quot;%(start)s\&quot;.)&quot;
+msgstr &quot;Oznaki na vrstici %(line)s manjka eden ali ve&#269; zahtevanih parametrov. (Vrstica se za&#269;ne z \&quot;%(start)s\&quot;.)&quot;
 
 #: core/validators.py:485
 #, python-format
-msgid &quot;&quot;
-&quot;The \&quot;%(attr)s\&quot; attribute on line %(line)s has an invalid value. (Line &quot;
-&quot;starts with \&quot;%(start)s\&quot;.)&quot;
-msgstr &quot;&quot;
-&quot;Atribut \&quot;%(attr)s\&quot; v vrstici %(line)s vsebuje neveljavno vrednost. &quot;
-&quot;(Vrstica se za&#269;ne z \&quot;%(start)s\&quot;.)&quot;
+msgid &quot;The \&quot;%(attr)s\&quot; attribute on line %(line)s has an invalid value. (Line starts with \&quot;%(start)s\&quot;.)&quot;
+msgstr &quot;Atribut \&quot;%(attr)s\&quot; v vrstici %(line)s vsebuje neveljavno vrednost. (Vrstica se za&#269;ne z \&quot;%(start)s\&quot;.)&quot;
 
 #: db/models/manipulators.py:302
 #, python-format
 msgid &quot;%(object)s with this %(type)s already exists for the given %(field)s.&quot;
-msgstr &quot;%(object)s s tem %(type)s &#382;e obstaja za veljavno (%field)s.&quot;
+msgstr &quot;%(object)s s tem %(type)s &#382;e obstaja za dane %(field)s.&quot;
 
 #: db/models/fields/__init__.py:40
 #, python-format
 msgid &quot;%(optname)s with this %(fieldname)s already exists.&quot;
 msgstr &quot;%(optname)s s tem %(fieldname)s &#382;e obstaja.&quot;
 
-#: db/models/fields/__init__.py:114 db/models/fields/__init__.py:265
-#: db/models/fields/__init__.py:542 db/models/fields/__init__.py:553
+#: db/models/fields/__init__.py:114
+#: db/models/fields/__init__.py:265
+#: db/models/fields/__init__.py:542
+#: db/models/fields/__init__.py:553
 #: forms/__init__.py:346
 msgid &quot;This field is required.&quot;
 msgstr &quot;To polje je obvezno&quot;
 
 #: db/models/fields/__init__.py:337
-#, fuzzy
 msgid &quot;This value must be an integer.&quot;
-msgstr &quot;Ta vrednost mora biti potenca od %s.&quot;
+msgstr &quot;Ta vrednost mora biti &#353;tevilo.&quot;
 
 #: db/models/fields/__init__.py:369
-#, fuzzy
 msgid &quot;This value must be either True or False.&quot;
-msgstr &quot;Ta vrednost mora biti potenca od %s.&quot;
+msgstr &quot;Ta vrednost mora biti \&quot;True\&quot; ali \&quot;False\&quot;.&quot;
 
 #: db/models/fields/__init__.py:385
-#, fuzzy
 msgid &quot;This field cannot be null.&quot;
-msgstr &quot;To polje ni veljavno.&quot;
+msgstr &quot;To polje ne more biti prazno.&quot;
 
 #: db/models/fields/__init__.py:562
 msgid &quot;Enter a valid filename.&quot;
@@ -1941,39 +1847,38 @@ msgid &quot;Please enter a valid %s.&quot;
 msgstr &quot;Prosimo, vnesite veljaven %s.&quot;
 
 #: db/models/fields/related.py:579
-#, fuzzy
 msgid &quot;Separate multiple IDs with commas.&quot;
 msgstr &quot;Ve&#269; ID-jev lo&#269;ite z vejicami.&quot;
 
 #: db/models/fields/related.py:581
-#, fuzzy
-msgid &quot;&quot;
-&quot;Hold down \&quot;Control\&quot;, or \&quot;Command\&quot; on a Mac, to select more than one.&quot;
-msgstr &quot;&quot;
-&quot; Stisni \&quot;Control\&quot; (ali \&quot;Command\&quot; na Mac-u), da izbere&#353; ve&#269; kot enega.&quot;
+msgid &quot;Hold down \&quot;Control\&quot;, or \&quot;Command\&quot; on a Mac, to select more than one.&quot;
+msgstr &quot;Dr&#382;ite \&quot;Control\&quot; (ali \&quot;Command\&quot; na Mac-u), za izbiro ve&#269; kot enega.&quot;
 
 #: db/models/fields/related.py:625
 #, python-format
 msgid &quot;Please enter valid %(self)s IDs. The value %(value)r is invalid.&quot;
-msgid_plural &quot;&quot;
-&quot;Please enter valid %(self)s IDs. The values %(value)r are invalid.&quot;
-msgstr[0] &quot;&quot;
-&quot;Prosimo, vnesite veljavni %(self)s ID-je. Vrednost %(value)r ni veljavna.&quot;
-msgstr[1] &quot;&quot;
-&quot;Prosimo, vnesite veljavni %(self)s ID-je. Vrednosti %(value)r niso veljavne.&quot;
+msgid_plural &quot;Please enter valid %(self)s IDs. The values %(value)r are invalid.&quot;
+msgstr[0] &quot;Prosimo, vnesite veljavne %(self)s ID-je. Vrednost %(value)r ni veljavna.&quot;
+msgstr[1] &quot;Prosimo, vnesite veljavni %(self)s ID. Vrednosti %(value)r niso veljavne.&quot;
+msgstr[2] &quot;Prosimo, vnesite veljavne %(self)s ID-je. Vrednosti %(value)r niso veljavne.&quot;
+msgstr[3] &quot;Prosimo, vnesite veljavne %(self)s ID-je. Vrednosti %(value)r niso veljavne.&quot;
 
 #: forms/__init__.py:380
 #, python-format
 msgid &quot;Ensure your text is less than %s character.&quot;
 msgid_plural &quot;Ensure your text is less than %s characters.&quot;
-msgstr[0] &quot;Poskrbite, da bo tekst kraj&#353;i do %s znakov.&quot;
-msgstr[1] &quot;Poskrbite, da bo tekst kraj&#353;i od %s znakov.&quot;
+msgstr[0] &quot;Poskrbite, da bo tekst kraj&#353;i od %s znakov.&quot;
+msgstr[1] &quot;Poskrbite, da bo tekst kraj&#353;i od %s znaka.&quot;
+msgstr[2] &quot;Poskrbite, da bo tekst kraj&#353;i od %s znakov.&quot;
+msgstr[3] &quot;Poskrbite, da bo tekst kraj&#353;i od %s znakov.&quot;
 
 #: forms/__init__.py:385
 msgid &quot;Line breaks are not allowed here.&quot;
 msgstr &quot;Prelomi vrstice tu niso dovoljeni.&quot;
 
-#: forms/__init__.py:480 forms/__init__.py:551 forms/__init__.py:589
+#: forms/__init__.py:480
+#: forms/__init__.py:551
+#: forms/__init__.py:589
 #, python-format
 msgid &quot;Select a valid choice; '%(data)s' is not in %(choices)s.&quot;
 msgstr &quot;Izberite veljavno mo&#382;nost; '%(data)s' ni v %(choices)s.&quot;
@@ -1998,23 +1903,24 @@ msgstr &quot;Vnesite celo &#353;tevilo med 0 in 32,767.&quot;
 msgid &quot;yes,no,maybe&quot;
 msgstr &quot;ja,ne,morda&quot;
 
-#~ msgid &quot;Comment&quot;
-#~ msgstr &quot;Komentar&quot;
+msgid &quot;Comment&quot;
+msgstr &quot;Komentar&quot;
+
+msgid &quot;Comments&quot;
+msgstr &quot;Komentarji&quot;
 
-#~ msgid &quot;Comments&quot;
-#~ msgstr &quot;Komentarji&quot;
+msgid &quot;String (up to 50)&quot;
+msgstr &quot;Niz (do 50 znakov)&quot;
 
-#~ msgid &quot;String (up to 50)&quot;
-#~ msgstr &quot;Niz (do 50 znakov)&quot;
+msgid &quot;label&quot;
+msgstr &quot;oznaka&quot;
 
-#~ msgid &quot;label&quot;
-#~ msgstr &quot;oznaka&quot;
+msgid &quot;package&quot;
+msgstr &quot;paket&quot;
 
-#~ msgid &quot;package&quot;
-#~ msgstr &quot;paket&quot;
+msgid &quot;packages&quot;
+msgstr &quot;paketi&quot;
 
-#~ msgid &quot;packages&quot;
-#~ msgstr &quot;paketi&quot;
+msgid &quot;Slovene&quot;
+msgstr &quot;Slovensko&quot;
 
-#~ msgid &quot;Slovene&quot;
-#~ msgstr &quot;Slovenski&quot;</diff>
      <filename>django/conf/locale/sl/LC_MESSAGES/django.po</filename>
    </modified>
    <modified>
      <diff>@@ -60,8 +60,9 @@ MIDDLEWARE_CLASSES = (
 ROOT_URLCONF = '{{ project_name }}.urls'
 
 TEMPLATE_DIRS = (
-    # Put strings here, like &quot;/home/html/django_templates&quot;.
+    # Put strings here, like &quot;/home/html/django_templates&quot; or &quot;C:/www/django/templates&quot;.
     # Always use forward slashes, even on Windows.
+    # Don't forget to use absolute paths, not relative paths.
 )
 
 INSTALLED_APPS = (</diff>
      <filename>django/conf/project_template/settings.py</filename>
    </modified>
    <modified>
      <diff>@@ -10,8 +10,10 @@ include = lambda urlconf_module: [urlconf_module]
 def patterns(prefix, *tuples):
     pattern_list = []
     for t in tuples:
-        if type(t[1]) == list:
-            pattern_list.append(RegexURLResolver(t[0], t[1][0]))
+        regex, view_or_include = t[:2]
+        default_kwargs = t[2:]
+        if type(view_or_include) == list:
+            pattern_list.append(RegexURLResolver(regex, view_or_include[0], *default_kwargs))
         else:
-            pattern_list.append(RegexURLPattern(t[0], prefix and (prefix + '.' + t[1]) or t[1], *t[2:]))
+            pattern_list.append(RegexURLPattern(regex, prefix and (prefix + '.' + view_or_include) or view_or_include, *default_kwargs))
     return pattern_list</diff>
      <filename>django/conf/urls/defaults.py</filename>
    </modified>
    <modified>
      <diff>@@ -8,7 +8,9 @@ var DateTimeShortcuts = {
     clockInputs: [],
     calendarDivName1: 'calendarbox', // name of calendar &lt;div&gt; that gets toggled
     calendarDivName2: 'calendarin',  // name of &lt;div&gt; that contains calendar
+    calendarLinkName: 'calendarlink',// name of the link that is used to toggle
     clockDivName: 'clockbox',        // name of clock &lt;div&gt; that gets toggled
+    clockLinkName: 'clocklink',      // name of the link that is used to toggle
     admin_media_prefix: '',
     init: function() {
         // Deduce admin_media_prefix by looking at the &lt;script&gt;s in the
@@ -46,6 +48,7 @@ var DateTimeShortcuts = {
         now_link.appendChild(document.createTextNode(gettext('Now')));
         var clock_link = document.createElement('a');
         clock_link.setAttribute('href', 'javascript:DateTimeShortcuts.openClock(' + num + ');');
+        clock_link.id = DateTimeShortcuts.clockLinkName + num;
         quickElement('img', clock_link, '', 'src', DateTimeShortcuts.admin_media_prefix + 'img/admin/icon_clock.gif', 'alt', gettext('Clock'));
         shortcuts_span.appendChild(document.createTextNode('\240'));
         shortcuts_span.appendChild(now_link);
@@ -69,17 +72,6 @@ var DateTimeShortcuts = {
         var clock_box = document.createElement('div');
         clock_box.style.display = 'none';
         clock_box.style.position = 'absolute';
-        if (getStyle(document.body,'direction')!='rtl') {
-            clock_box.style.left = findPosX(clock_link) + 17 + 'px';
-        }
-        else {
-            // since style's width is in em, it'd be tough to calculate
-            // px value of it. let's use an estimated px for now
-            // TODO: IE returns wrong value for findPosX when in rtl mode
-            //       (it returns as it was left aligned), needs to be fixed.
-            clock_box.style.left = findPosX(clock_link) - 110 + 'px';
-        }
-        clock_box.style.top = findPosY(clock_link) - 30 + 'px';
         clock_box.className = 'clockbox module';
         clock_box.setAttribute('id', DateTimeShortcuts.clockDivName + num);
         document.body.appendChild(clock_box);
@@ -98,7 +90,25 @@ var DateTimeShortcuts = {
         quickElement('a', cancel_p, gettext('Cancel'), 'href', 'javascript:DateTimeShortcuts.dismissClock(' + num + ');');
     },
     openClock: function(num) {
-        document.getElementById(DateTimeShortcuts.clockDivName + num).style.display = 'block';
+        var clock_box = document.getElementById(DateTimeShortcuts.clockDivName+num)
+        var clock_link = document.getElementById(DateTimeShortcuts.clockLinkName+num)
+    
+        // Recalculate the clockbox position
+        // is it left-to-right or right-to-left layout ?
+        if (getStyle(document.body,'direction')!='rtl') {
+            clock_box.style.left = findPosX(clock_link) + 17 + 'px';
+        }
+        else {
+            // since style's width is in em, it'd be tough to calculate
+            // px value of it. let's use an estimated px for now
+            // TODO: IE returns wrong value for findPosX when in rtl mode
+            //       (it returns as it was left aligned), needs to be fixed.
+            clock_box.style.left = findPosX(clock_link) - 110 + 'px';
+        }
+        clock_box.style.top = findPosY(clock_link) - 30 + 'px';
+    
+        // Show the clock box
+        clock_box.style.display = 'block';
         addEvent(window, 'click', function() { DateTimeShortcuts.dismissClock(num); return true; });
     },
     dismissClock: function(num) {
@@ -123,6 +133,7 @@ var DateTimeShortcuts = {
         today_link.appendChild(document.createTextNode(gettext('Today')));
         var cal_link = document.createElement('a');
         cal_link.setAttribute('href', 'javascript:DateTimeShortcuts.openCalendar(' + num + ');');
+        cal_link.id = DateTimeShortcuts.calendarLinkName + num;
         quickElement('img', cal_link, '', 'src', DateTimeShortcuts.admin_media_prefix + 'img/admin/icon_calendar.gif', 'alt', gettext('Calendar'));
         shortcuts_span.appendChild(document.createTextNode('\240'));
         shortcuts_span.appendChild(today_link);
@@ -149,18 +160,6 @@ var DateTimeShortcuts = {
         var cal_box = document.createElement('div');
         cal_box.style.display = 'none';
         cal_box.style.position = 'absolute';
-        // is it left-to-right or right-to-left layout ?
-        if (getStyle(document.body,'direction')!='rtl') {
-            cal_box.style.left = findPosX(cal_link) + 17 + 'px';
-        }
-        else {
-            // since style's width is in em, it'd be tough to calculate
-            // px value of it. let's use an estimated px for now
-            // TODO: IE returns wrong value for findPosX when in rtl mode
-            //       (it returns as it was left aligned), needs to be fixed.
-            cal_box.style.left = findPosX(cal_link) - 180 + 'px';
-        }
-        cal_box.style.top = findPosY(cal_link) - 75 + 'px';
         cal_box.className = 'calendarbox module';
         cal_box.setAttribute('id', DateTimeShortcuts.calendarDivName1 + num);
         document.body.appendChild(cal_box);
@@ -195,7 +194,24 @@ var DateTimeShortcuts = {
         quickElement('a', cancel_p, gettext('Cancel'), 'href', 'javascript:DateTimeShortcuts.dismissCalendar(' + num + ');');
     },
     openCalendar: function(num) {
-        document.getElementById(DateTimeShortcuts.calendarDivName1+num).style.display = 'block';
+        var cal_box = document.getElementById(DateTimeShortcuts.calendarDivName1+num)
+        var cal_link = document.getElementById(DateTimeShortcuts.calendarLinkName+num)
+    
+        // Recalculate the clockbox position
+        // is it left-to-right or right-to-left layout ?
+        if (getStyle(document.body,'direction')!='rtl') {
+            cal_box.style.left = findPosX(cal_link) + 17 + 'px';
+        }
+        else {
+            // since style's width is in em, it'd be tough to calculate
+            // px value of it. let's use an estimated px for now
+            // TODO: IE returns wrong value for findPosX when in rtl mode
+            //       (it returns as it was left aligned), needs to be fixed.
+            cal_box.style.left = findPosX(cal_link) - 180 + 'px';
+        }
+        cal_box.style.top = findPosY(cal_link) - 75 + 'px';
+    
+        cal_box.style.display = 'block';
         addEvent(window, 'click', function() { DateTimeShortcuts.dismissCalendar(num); return true; });
     },
     dismissCalendar: function(num) {</diff>
      <filename>django/contrib/admin/media/js/admin/DateTimeShortcuts.js</filename>
    </modified>
    <modified>
      <diff>@@ -11,7 +11,7 @@ function showRelatedObjectLookupPopup(triggeringLink) {
     } else {
         href = triggeringLink.href + '?pop=1';
     }
-    var win = window.open(href, name, 'height=500,width=740,resizable=yes,scrollbars=yes');
+    var win = window.open(href, name, 'height=500,width=800,resizable=yes,scrollbars=yes');
     win.focus();
     return false;
 }</diff>
      <filename>django/contrib/admin/media/js/admin/RelatedObjectLookups.js</filename>
    </modified>
    <modified>
      <diff>@@ -21,7 +21,7 @@
   {% if has_absolute_url %}&lt;li&gt;&lt;a href=&quot;../../../r/{{ content_type_id }}/{{ object_id }}/&quot; class=&quot;viewsitelink&quot;&gt;{% trans &quot;View on site&quot; %}&lt;/a&gt;&lt;/li&gt;{% endif%}
   &lt;/ul&gt;
 {% endif %}{% endif %}
-&lt;form {% if has_file_field %}enctype=&quot;multipart/form-data&quot; {% endif %}action=&quot;{{ form_url }}&quot; method=&quot;post&quot;&gt;{% block form_top %}{% endblock %}
+&lt;form {% if has_file_field %}enctype=&quot;multipart/form-data&quot; {% endif %}action=&quot;{{ form_url }}&quot; method=&quot;post&quot; id=&quot;{{ opts.module_name }}_form&quot;&gt;{% block form_top %}{% endblock %}
 &lt;div&gt;
 {% if is_popup %}&lt;input type=&quot;hidden&quot; name=&quot;_popup&quot; value=&quot;1&quot; /&gt;{% endif %}
 {% if opts.admin.save_on_top %}{% submit_row %}{% endif %}</diff>
      <filename>django/contrib/admin/templates/admin/change_form.html</filename>
    </modified>
    <modified>
      <diff>@@ -7,6 +7,7 @@
          &lt;th{{ fw.header_class_attribute }}&gt;{{ fw.field.verbose_name|capfirst|escape }}&lt;/th&gt;
       {% endif %}
    {% endfor %}
+   &lt;/tr&gt;&lt;/thead&gt;
    {% for fcw in bound_related_object.form_field_collection_wrappers %}
       {% if change %}{% if original_row_needed %}
          {% if fcw.obj.original %}</diff>
      <filename>django/contrib/admin/templates/admin/edit_inline_tabular.html</filename>
    </modified>
    <modified>
      <diff>@@ -43,11 +43,11 @@ def template_tag_index(request):
         for tag_name, tag_func in library.tags.items():
             title, body, metadata = utils.parse_docstring(tag_func.__doc__)
             if title:
-                title = utils.parse_rst(title, 'tag', 'tag:' + tag_name)
+                title = utils.parse_rst(title, 'tag', _('tag:') + tag_name)
             if body:
-                body = utils.parse_rst(body, 'tag', 'tag:' + tag_name)
+                body = utils.parse_rst(body, 'tag', _('tag:') + tag_name)
             for key in metadata:
-                metadata[key] = utils.parse_rst(metadata[key], 'tag', 'tag:' + tag_name)
+                metadata[key] = utils.parse_rst(metadata[key], 'tag', _('tag:') + tag_name)
             if library in template.builtins:
                 tag_library = None
             else:
@@ -74,11 +74,11 @@ def template_filter_index(request):
         for filter_name, filter_func in library.filters.items():
             title, body, metadata = utils.parse_docstring(filter_func.__doc__)
             if title:
-                title = utils.parse_rst(title, 'filter', 'filter:' + filter_name)
+                title = utils.parse_rst(title, 'filter', _('filter:') + filter_name)
             if body:
-                body = utils.parse_rst(body, 'filter', 'filter:' + filter_name)
+                body = utils.parse_rst(body, 'filter', _('filter:') + filter_name)
             for key in metadata:
-                metadata[key] = utils.parse_rst(metadata[key], 'filter', 'filter:' + filter_name)
+                metadata[key] = utils.parse_rst(metadata[key], 'filter', _('filter:') + filter_name)
             if library in template.builtins:
                 tag_library = None
             else:
@@ -132,11 +132,11 @@ def view_detail(request, view):
         raise Http404
     title, body, metadata = utils.parse_docstring(view_func.__doc__)
     if title:
-        title = utils.parse_rst(title, 'view', 'view:' + view)
+        title = utils.parse_rst(title, 'view', _('view:') + view)
     if body:
-        body = utils.parse_rst(body, 'view', 'view:' + view)
+        body = utils.parse_rst(body, 'view', _('view:') + view)
     for key in metadata:
-        metadata[key] = utils.parse_rst(metadata[key], 'model', 'view:' + view)
+        metadata[key] = utils.parse_rst(metadata[key], 'model', _('view:') + view)
     return render_to_response('admin_doc/view_detail.html', {
         'name': view,
         'summary': title,
@@ -161,14 +161,14 @@ def model_detail(request, app_label, model_name):
     try:
         app_mod = models.get_app(app_label)
     except ImproperlyConfigured:
-        raise Http404, &quot;App %r not found&quot; % app_label
+        raise Http404, _(&quot;App %r not found&quot;) % app_label
     model = None
     for m in models.get_models(app_mod):
         if m._meta.object_name.lower() == model_name:
             model = m
             break
     if model is None:
-        raise Http404, &quot;Model %r not found in app %r&quot; % (model_name, app_label)
+        raise Http404, _(&quot;Model %r not found in app %r&quot;) % (model_name, app_label)
 
     opts = model._meta
 
@@ -180,7 +180,7 @@ def model_detail(request, app_label, model_name):
         if isinstance(field, models.ForeignKey):
             data_type = related_object_name = field.rel.to.__name__
             app_label = field.rel.to._meta.app_label
-            verbose = utils.parse_rst((&quot;the related `%s.%s` object&quot;  % (app_label, data_type)), 'model', 'model:' + data_type)
+            verbose = utils.parse_rst((_(&quot;the related `%s.%s` object&quot;)  % (app_label, data_type)), 'model', _('model:') + data_type)
         else:
             data_type = get_readable_field_data_type(field)
             verbose = field.verbose_name
@@ -202,7 +202,7 @@ def model_detail(request, app_label, model_name):
                 continue
             verbose = func.__doc__
             if verbose:
-                verbose = utils.parse_rst(utils.trim_docstring(verbose), 'model', 'model:' + opts.module_name)
+                verbose = utils.parse_rst(utils.trim_docstring(verbose), 'model', _('model:') + opts.module_name)
             fields.append({
                 'name': func_name,
                 'data_type': get_return_data_type(func_name),
@@ -211,17 +211,17 @@ def model_detail(request, app_label, model_name):
 
     # Gather related objects
     for rel in opts.get_all_related_objects():
-        verbose = &quot;related `%s.%s` objects&quot; % (rel.opts.app_label, rel.opts.object_name)
+        verbose = _(&quot;related `%s.%s` objects&quot;) % (rel.opts.app_label, rel.opts.object_name)
         accessor = rel.get_accessor_name()
         fields.append({
             'name'      : &quot;%s.all&quot; % accessor,
             'data_type' : 'List',
-            'verbose'   : utils.parse_rst(&quot;all &quot; + verbose , 'model', 'model:' + opts.module_name),
+            'verbose'   : utils.parse_rst(_(&quot;all %s&quot;) % verbose , 'model', _('model:') + opts.module_name),
         })
         fields.append({
             'name'      : &quot;%s.count&quot; % accessor,
             'data_type' : 'Integer',
-            'verbose'   : utils.parse_rst(&quot;number of &quot; + verbose , 'model', 'model:' + opts.module_name),
+            'verbose'   : utils.parse_rst(_(&quot;number of %s&quot;) % verbose , 'model', _('model:') + opts.module_name),
         })
 
     return render_to_response('admin_doc/model_detail.html', {
@@ -336,7 +336,7 @@ def extract_views_from_urlpatterns(urlpatterns, base=''):
         elif hasattr(p, '_get_url_patterns'):
             views.extend(extract_views_from_urlpatterns(p.url_patterns, base + p.regex.pattern))
         else:
-            raise TypeError, &quot;%s does not appear to be a urlpattern object&quot; % p
+            raise TypeError, _(&quot;%s does not appear to be a urlpattern object&quot;) % p
     return views
 
 named_group_matcher = re.compile(r'\(\?P(&lt;\w+&gt;).+?\)')</diff>
      <filename>django/contrib/admin/views/doc.py</filename>
    </modified>
    <modified>
      <diff>@@ -263,7 +263,7 @@ def add_stage(request, app_label, model_name, show_delete=False, form_url='', po
                     post_url_continue += &quot;?_popup=1&quot;
                 return HttpResponseRedirect(post_url_continue % pk_value)
             if request.POST.has_key(&quot;_popup&quot;):
-                return HttpResponse('&lt;script type=&quot;text/javascript&quot;&gt;opener.dismissAddAnotherPopup(window, %s, &quot;%s&quot;);&lt;/script&gt;' % \
+                return HttpResponse('&lt;script type=&quot;text/javascript&quot;&gt;opener.dismissAddAnotherPopup(window, %r, &quot;%s&quot;);&lt;/script&gt;' % \
                     (pk_value, str(new_object).replace('&quot;', '\\&quot;')))
             elif request.POST.has_key(&quot;_addanother&quot;):
                 request.user.message_set.create(message=msg + ' ' + (_(&quot;You may add another %s below.&quot;) % opts.verbose_name))</diff>
      <filename>django/contrib/admin/views/main.py</filename>
    </modified>
    <modified>
      <diff>@@ -15,7 +15,6 @@ def user_passes_test(test_func, login_url=LOGIN_URL):
             return HttpResponseRedirect('%s?%s=%s' % (login_url, REDIRECT_FIELD_NAME, quote(request.get_full_path())))
         _checklogin.__doc__ = view_func.__doc__
         _checklogin.__dict__ = view_func.__dict__
-        _checklogin.__name__ = view_func.__name__
 
         return _checklogin
     return _dec</diff>
      <filename>django/contrib/auth/decorators.py</filename>
    </modified>
    <modified>
      <diff>@@ -5,6 +5,28 @@ from django.template import Context, loader
 from django.core import validators
 from django import forms
 
+class UserCreationForm(forms.Manipulator):
+    &quot;A form that creates a user, with no privileges, from the given username and password.&quot;
+    def __init__(self):
+        self.fields = (
+            forms.TextField(field_name='username', length=30, maxlength=30, is_required=True,
+                validator_list=[validators.isAlphaNumeric, self.isValidUsername]),
+            forms.PasswordField(field_name='password1', length=30, maxlength=60, is_required=True),
+            forms.PasswordField(field_name='password2', length=30, maxlength=60, is_required=True,
+                validator_list=[validators.AlwaysMatchesOtherField('password1', &quot;The two password fields didn't match.&quot;)]),
+        )
+
+    def isValidUsername(self, field_data, all_data):
+        try:
+            User.objects.get(username=field_data)
+        except User.DoesNotExist:
+            return
+        raise validators.ValidationError, 'A user with that username already exists.'
+
+    def save(self, new_data):
+        &quot;Creates the user.&quot;
+        return User.objects.create_user(new_data['username'], '', new_data['password1'])
+
 class AuthenticationForm(forms.Manipulator):
     &quot;&quot;&quot;
     Base class for authenticating users. Extend this to get a form that accepts</diff>
      <filename>django/contrib/auth/forms.py</filename>
    </modified>
    <modified>
      <diff>@@ -2,7 +2,7 @@ This is an optional add-on app, flatpages.
 
 For full documentation, see either of these:
 
-    * The file django/docs/flatpages.txt in the Django distribution
+    * The file docs/flatpages.txt in the Django distribution
     * http://www.djangoproject.com/documentation/flatpages/ on the Web
 
-Both have identical content.
\ No newline at end of file
+Both have identical content.</diff>
      <filename>django/contrib/flatpages/README.TXT</filename>
    </modified>
    <modified>
      <diff>@@ -88,5 +88,6 @@ class SessionMiddleware(object):
                 new_session = Session.objects.save(session_key, request.session._session,
                     datetime.datetime.now() + datetime.timedelta(seconds=settings.SESSION_COOKIE_AGE))
                 response.set_cookie(settings.SESSION_COOKIE_NAME, session_key,
-                    max_age=max_age, expires=expires, domain=settings.SESSION_COOKIE_DOMAIN)
+                    max_age=max_age, expires=expires, domain=settings.SESSION_COOKIE_DOMAIN,
+                    secure=settings.SESSION_COOKIE_SECURE or None)
         return response</diff>
      <filename>django/contrib/sessions/middleware.py</filename>
    </modified>
    <modified>
      <diff>@@ -94,12 +94,15 @@ def get_sql_create(app):
             &quot;Edit your settings file and change DATABASE_ENGINE to something like 'postgresql' or 'mysql'.\n&quot;))
         sys.exit(1)
 
-    # Get installed models, so we generate REFERENCES right
+    # Get installed models, so we generate REFERENCES right.
+    # We trim models from the current app so that the sqlreset command does not
+    # generate invalid SQL (leaving models out of known_models is harmless, so
+    # we can be conservative).
+    app_models = models.get_models(app)
     final_output = []
-    known_models = set(_get_installed_models(_get_table_list()))
+    known_models = set([model for model in _get_installed_models(_get_table_list()) if model not in app_models])
     pending_references = {}
 
-    app_models = models.get_models(app)
 
     for model in app_models:
         output, references = _get_sql_model_create(model, known_models)
@@ -118,10 +121,13 @@ def get_sql_create(app):
     # but don't exist physically
     not_installed_models = set(pending_references.keys())
     if not_installed_models:
-        final_output.append('-- The following references should be added but depend on non-existant tables:')
+        alter_sql = []
         for model in not_installed_models:
-            final_output.extend(['-- ' + sql for sql in
+            alter_sql.extend(['-- ' + sql for sql in
                 _get_sql_for_pending_references(model, pending_references)])
+        if alter_sql:
+            final_output.append('-- The following references should be added but depend on non-existent tables:')
+            final_output.extend(alter_sql)
 
     return final_output
 get_sql_create.help_doc = &quot;Prints the CREATE TABLE SQL statements for the given app name(s).&quot;
@@ -192,7 +198,6 @@ def _get_sql_for_pending_references(model, pending_references):
     data_types = get_creation_module().DATA_TYPES
 
     final_output = []
-    reference_names = {}
     if backend.supports_constraints:
         opts = model._meta
         if model in pending_references:
@@ -202,12 +207,9 @@ def _get_sql_for_pending_references(model, pending_references):
                 r_col = f.column
                 table = opts.db_table
                 col = opts.get_field(f.rel.field_name).column
-                r_name = '%s_referencing_%s_%s' % (r_col, table, col)
-                if r_name in reference_names:
-                    reference_names[r_name] += 1
-                    r_name += '_%s' % reference_names[r_name]
-                else:
-                    reference_names[r_name] = 0
+                # For MySQL, r_name must be unique in the first 64 characters.
+                # So we are careful with character usage here.
+                r_name = '%s_refs_%s_%x' % (r_col, col, abs(hash((r_table, table))))
                 final_output.append(style.SQL_KEYWORD('ALTER TABLE') + ' %s ADD CONSTRAINT %s FOREIGN KEY (%s) REFERENCES %s (%s);' % \
                     (backend.quote_name(r_table), r_name,
                     backend.quote_name(r_col), backend.quote_name(table), backend.quote_name(col)))
@@ -299,7 +301,7 @@ def get_sql_delete(app):
                         (style.SQL_KEYWORD('ALTER TABLE'),
                         style.SQL_TABLE(backend.quote_name(table)),
                         style.SQL_KEYWORD(backend.get_drop_foreignkey_sql()),
-                        style.SQL_FIELD(backend.quote_name(&quot;%s_referencing_%s_%s&quot; % (col, r_table, r_col)))))
+                        style.SQL_FIELD(backend.quote_name('%s_refs_%s_%x' % (col, r_col, abs(hash((table, r_table))))))))
                 del references_to_delete[model]
 
     # Output DROP TABLE statements for many-to-many tables.
@@ -696,9 +698,7 @@ def inspectdb():
 
     introspection_module = get_introspection_module()
 
-    def table2model(table_name):
-        object_name = table_name.title().replace('_', '')
-        return object_name.endswith('s') and object_name[:-1] or object_name
+    table2model = lambda table_name: table_name.title().replace('_', '')
 
     cursor = connection.cursor()
     yield &quot;# This is an auto-generated Django model module.&quot;
@@ -727,6 +727,10 @@ def inspectdb():
             comment_notes = [] # Holds Field notes, to be displayed in a Python comment.
             extra_params = {}  # Holds Field parameters such as 'db_column'.
 
+            if ' ' in att_name:
+                extra_params['db_column'] = att_name
+                att_name = att_name.replace(' ', '')
+                comment_notes.append('Field renamed to remove spaces.')
             if keyword.iskeyword(att_name):
                 extra_params['db_column'] = att_name
                 att_name += '_field'
@@ -957,6 +961,12 @@ def get_validation_errors(outfile, app=None):
                             f = opts.get_field(fn)
                         except models.FieldDoesNotExist:
                             e.add(opts, '&quot;admin.list_filter&quot; refers to %r, which isn\'t a field.' % fn)
+                # date_hierarchy
+                if opts.admin.date_hierarchy:
+                    try:
+                        f = opts.get_field(opts.admin.date_hierarchy)
+                    except models.FieldDoesNotExist:
+                        e.add(opts, '&quot;admin.date_hierarchy&quot; refers to %r, which isn\'t a field.' % opts.admin.date_hierarchy)
 
         # Check ordering attribute.
         if opts.ordering:
@@ -1132,7 +1142,14 @@ def dbshell():
 dbshell.args = &quot;&quot;
 
 def runfcgi(args):
-    &quot;&quot;&quot;Run this project as a FastCGI application. requires flup.&quot;&quot;&quot;
+    &quot;Runs this project as a FastCGI application. Requires flup.&quot;
+    from django.conf import settings
+    from django.utils import translation
+    # Activate the current language, because it won't get activated later.
+    try:
+        translation.activate(settings.LANGUAGE_CODE)
+    except AttributeError:
+        pass
     from django.core.servers.fastcgi import runfastcgi
     runfastcgi(args)
 runfcgi.args = '[various KEY=val options, use `runfcgi help` for help]'
@@ -1289,7 +1306,11 @@ def execute_from_command_line(action_mapping=DEFAULT_ACTION_MAPPING, argv=None):
         if action not in NO_SQL_TRANSACTION:
             print style.SQL_KEYWORD(&quot;COMMIT;&quot;)
 
-def execute_manager(settings_mod, argv=None):
+def setup_environ(settings_mod):
+    &quot;&quot;&quot;
+    Configure the runtime environment. This can also be used by external
+    scripts wanting to set up a similar environment to manage.py.
+    &quot;&quot;&quot;
     # Add this project to sys.path so that it's importable in the conventional
     # way. For example, if this file (manage.py) lives in a directory
     # &quot;myproject&quot;, this code would add &quot;/path/to/myproject&quot; to sys.path.
@@ -1301,7 +1322,10 @@ def execute_manager(settings_mod, argv=None):
 
     # Set DJANGO_SETTINGS_MODULE appropriately.
     os.environ['DJANGO_SETTINGS_MODULE'] = '%s.settings' % project_name
+    return project_directory
 
+def execute_manager(settings_mod, argv=None):
+    project_directory = setup_environ(settings_mod)
     action_mapping = DEFAULT_ACTION_MAPPING.copy()
 
     # Remove the &quot;startproject&quot; command from the action_mapping, because that's</diff>
      <filename>django/core/management.py</filename>
    </modified>
    <modified>
      <diff>@@ -41,11 +41,11 @@ class DateTimeAwareJSONEncoder(simplejson.JSONEncoder):
     TIME_FORMAT = &quot;%H:%M:%S&quot;
     
     def default(self, o):
-        if isinstance(o, datetime.date):
+        if isinstance(o, datetime.datetime):
+            return o.strftime(&quot;%s %s&quot; % (self.DATE_FORMAT, self.TIME_FORMAT))
+        elif isinstance(o, datetime.date):
             return o.strftime(self.DATE_FORMAT)
         elif isinstance(o, datetime.time):
             return o.strftime(self.TIME_FORMAT)
-        elif isinstance(o, datetime.datetime):
-            return o.strftime(&quot;%s %s&quot; % (self.DATE_FORMAT, self.TIME_FORMAT))
         else:
             return super(self, DateTimeAwareJSONEncoder).default(o)
\ No newline at end of file</diff>
      <filename>django/core/serializers/json.py</filename>
    </modified>
    <modified>
      <diff>@@ -547,10 +547,6 @@ class WSGIRequestHandler(BaseHTTPRequestHandler):
 
         env['PATH_INFO'] = urllib.unquote(path)
         env['QUERY_STRING'] = query
-
-        host = self.address_string()
-        if host != self.client_address[0]:
-            env['REMOTE_HOST'] = host
         env['REMOTE_ADDR'] = self.client_address[0]
 
         if self.headers.typeheader is None:</diff>
      <filename>django/core/servers/basehttp.py</filename>
    </modified>
    <modified>
      <diff>@@ -86,10 +86,15 @@ class MatchChecker(object):
 class RegexURLPattern(object):
     def __init__(self, regex, callback, default_args=None):
         # regex is a string representing a regular expression.
-        # callback is something like 'foo.views.news.stories.story_detail',
-        # which represents the path to a module and a view function name.
+        # callback is either a string like 'foo.views.news.stories.story_detail'
+        # which represents the path to a module and a view function name, or a
+        # callable object (view).
         self.regex = re.compile(regex)
-        self.callback = callback
+        if callable(callback):
+            self._callback = callback
+        else:
+            self._callback = None
+            self._callback_str = callback
         self.default_args = default_args or {}
 
     def resolve(self, path):
@@ -106,23 +111,28 @@ class RegexURLPattern(object):
             # In both cases, pass any extra_kwargs as **kwargs.
             kwargs.update(self.default_args)
 
-            try: # Lazily load self.func.
-                return self.func, args, kwargs
-            except AttributeError:
-                self.func = self.get_callback()
-            return self.func, args, kwargs
+            return self.callback, args, kwargs
 
-    def get_callback(self):
-        mod_name, func_name = get_mod_func(self.callback)
+    def _get_callback(self):
+        if self._callback is not None:
+            return self._callback
+        mod_name, func_name = get_mod_func(self._callback_str)
         try:
-            return getattr(__import__(mod_name, '', '', ['']), func_name)
+            self._callback = getattr(__import__(mod_name, '', '', ['']), func_name)
         except ImportError, e:
             raise ViewDoesNotExist, &quot;Could not import %s. Error was: %s&quot; % (mod_name, str(e))
         except AttributeError, e:
             raise ViewDoesNotExist, &quot;Tried %s in module %s. Error was: %s&quot; % (func_name, mod_name, str(e))
+        return self._callback
+    callback = property(_get_callback)
 
     def reverse(self, viewname, *args, **kwargs):
-        if viewname != self.callback:
+        mod_name, func_name = get_mod_func(viewname)
+        try:
+            lookup_view = getattr(__import__(mod_name, '', '', ['']), func_name)
+        except (ImportError, AttributeError):
+            raise NoReverseMatch
+        if lookup_view != self.callback:
             raise NoReverseMatch
         return self.reverse_helper(*args, **kwargs)
 
@@ -130,12 +140,13 @@ class RegexURLPattern(object):
         return reverse_helper(self.regex, *args, **kwargs)
 
 class RegexURLResolver(object):
-    def __init__(self, regex, urlconf_name):
+    def __init__(self, regex, urlconf_name, default_kwargs=None):
         # regex is a string representing a regular expression.
         # urlconf_name is a string representing the module containing urlconfs.
         self.regex = re.compile(regex)
         self.urlconf_name = urlconf_name
         self.callback = None
+        self.default_kwargs = default_kwargs or {}
 
     def resolve(self, path):
         tried = []
@@ -149,7 +160,8 @@ class RegexURLResolver(object):
                     tried.extend([(pattern.regex.pattern + '   ' + t) for t in e.args[0]['tried']])
                 else:
                     if sub_match:
-                        return sub_match[0], sub_match[1], dict(match.groupdict(), **sub_match[2])
+                        sub_match_dict = dict(self.default_kwargs, **sub_match[2])
+                        return sub_match[0], sub_match[1], dict(match.groupdict(), **sub_match_dict)
                     tried.append(pattern.regex.pattern)
             raise Resolver404, {'tried': tried, 'path': new_path}
 
@@ -183,22 +195,28 @@ class RegexURLResolver(object):
     def resolve500(self):
         return self._resolve_special('500')
 
-    def reverse(self, viewname, *args, **kwargs):
+    def reverse(self, lookup_view, *args, **kwargs):
+        if not callable(lookup_view):
+            mod_name, func_name = get_mod_func(lookup_view)
+            try:
+                lookup_view = getattr(__import__(mod_name, '', '', ['']), func_name)
+            except (ImportError, AttributeError):
+                raise NoReverseMatch
         for pattern in self.urlconf_module.urlpatterns:
             if isinstance(pattern, RegexURLResolver):
                 try:
-                    return pattern.reverse_helper(viewname, *args, **kwargs)
+                    return pattern.reverse_helper(lookup_view, *args, **kwargs)
                 except NoReverseMatch:
                     continue
-            elif pattern.callback == viewname:
+            elif pattern.callback == lookup_view:
                 try:
                     return pattern.reverse_helper(*args, **kwargs)
                 except NoReverseMatch:
                     continue
         raise NoReverseMatch
 
-    def reverse_helper(self, viewname, *args, **kwargs):
-        sub_match = self.reverse(viewname, *args, **kwargs)
+    def reverse_helper(self, lookup_view, *args, **kwargs):
+        sub_match = self.reverse(lookup_view, *args, **kwargs)
         result = reverse_helper(self.regex, *args, **kwargs)
         return result + sub_match
 
@@ -209,11 +227,11 @@ def resolve(path, urlconf=None):
     resolver = RegexURLResolver(r'^/', urlconf)
     return resolver.resolve(path)
 
-def reverse(viewname, urlconf, args=None, kwargs=None):
+def reverse(viewname, urlconf=None, args=None, kwargs=None):
     args = args or []
     kwargs = kwargs or {}
     if urlconf is None:
         from django.conf import settings
         urlconf = settings.ROOT_URLCONF
     resolver = RegexURLResolver(r'^/', urlconf)
-    return resolver.reverse(viewname, *args, **kwargs)
+    return '/' + resolver.reverse(viewname, *args, **kwargs)</diff>
      <filename>django/core/urlresolvers.py</filename>
    </modified>
    <modified>
      <diff>@@ -11,6 +11,10 @@ except ImportError, e:
     from django.core.exceptions import ImproperlyConfigured
     raise ImproperlyConfigured, &quot;Error loading psycopg2 module: %s&quot; % e
 
+# Register Unicode conversions
+import psycopg2.extensions
+psycopg2.extensions.register_type(psycopg2.extensions.UNICODE)
+
 DatabaseError = Database.DatabaseError
 
 try:</diff>
      <filename>django/db/backends/postgresql_psycopg2/base.py</filename>
    </modified>
    <modified>
      <diff>@@ -16,6 +16,18 @@ from django.utils.text import capfirst
 # Admin stages.
 ADD, CHANGE, BOTH = 1, 2, 3
 
+# Decorator. Takes a function that returns a tuple in this format:
+#     (viewname, viewargs, viewkwargs)
+# Returns a function that calls urlresolvers.reverse() on that data, to return
+# the URL for those parameters.
+def permalink(func):
+    from django.core.urlresolvers import reverse
+    def inner(*args, **kwargs):
+        bits = func(*args, **kwargs)
+        viewname = bits[0]
+        return reverse(bits[0], None, *bits[1:3])
+    return inner
+
 class LazyDate(object):
     &quot;&quot;&quot;
     Use in limit_choices_to to compare the field to dates calculated at run time
@@ -35,7 +47,7 @@ class LazyDate(object):
         return &quot;&lt;LazyDate: %s&gt;&quot; % self.delta
 
     def __get_value__(self):
-        return datetime.datetime.now() + self.delta
+        return (datetime.datetime.now() + self.delta).date()
 
     def __getattr__(self, attr):
         return getattr(self.__get_value__(), attr)</diff>
      <filename>django/db/models/__init__.py</filename>
    </modified>
    <modified>
      <diff>@@ -44,7 +44,7 @@ class ModelBase(type):
             new_class._meta.app_label = model_module.__name__.split('.')[-2]
 
         # Bail out early if we have already created this class.
-        m = get_model(new_class._meta.app_label, name)
+        m = get_model(new_class._meta.app_label, name, False)
         if m is not None:
             return m
 
@@ -73,7 +73,7 @@ class ModelBase(type):
         # the first class for this model to register with the framework. There
         # should only be one class for each model, so we must always return the
         # registered version.
-        return get_model(new_class._meta.app_label, name)
+        return get_model(new_class._meta.app_label, name, False)
 
 class Model(object):
     __metaclass__ = ModelBase
@@ -181,11 +181,12 @@ class Model(object):
             # If it does already exist, do an UPDATE.
             if cursor.fetchone():
                 db_values = [f.get_db_prep_save(f.pre_save(self, False)) for f in non_pks]
-                cursor.execute(&quot;UPDATE %s SET %s WHERE %s=%%s&quot; % \
-                    (backend.quote_name(self._meta.db_table),
-                    ','.join(['%s=%%s' % backend.quote_name(f.column) for f in non_pks]),
-                    backend.quote_name(self._meta.pk.column)),
-                    db_values + [pk_val])
+                if db_values:
+                    cursor.execute(&quot;UPDATE %s SET %s WHERE %s=%%s&quot; % \
+                        (backend.quote_name(self._meta.db_table),
+                        ','.join(['%s=%%s' % backend.quote_name(f.column) for f in non_pks]),
+                        backend.quote_name(self._meta.pk.column)),
+                        db_values + [pk_val])
             else:
                 record_exists = False
         if not pk_set or not record_exists:</diff>
      <filename>django/db/models/base.py</filename>
    </modified>
    <modified>
      <diff>@@ -20,7 +20,7 @@ BLANK_CHOICE_DASH = [(&quot;&quot;, &quot;---------&quot;)]
 BLANK_CHOICE_NONE = [(&quot;&quot;, &quot;None&quot;)]
 
 # prepares a value for use in a LIKE query
-prep_for_like_query = lambda x: str(x).replace(&quot;%&quot;, &quot;\%&quot;).replace(&quot;_&quot;, &quot;\_&quot;)
+prep_for_like_query = lambda x: str(x).replace(&quot;\\&quot;, &quot;\\\\&quot;).replace(&quot;%&quot;, &quot;\%&quot;).replace(&quot;_&quot;, &quot;\_&quot;)
 
 # returns the &lt;ul&gt; class for a given radio_admin value
 get_ul_class = lambda x: 'radiolist%s' % ((x == HORIZONTAL) and ' inline' or '')
@@ -247,9 +247,9 @@ class Field(object):
         params['is_required'] = not self.blank and not self.primary_key and not rel
 
         # BooleanFields (CheckboxFields) are a special case. They don't take
-        # is_required or validator_list.
+        # is_required.
         if isinstance(self, BooleanField):
-            del params['validator_list'], params['is_required']
+            del params['is_required']
 
         # If this field is in a related context, check whether any other fields
         # in the related object have core=True. If so, add a validator --
@@ -289,8 +289,11 @@ class Field(object):
         if self.choices:
             return first_choice + list(self.choices)
         rel_model = self.rel.to
-        return first_choice + [(x._get_pk_val(), str(x))
-                               for x in rel_model._default_manager.complex_filter(self.rel.limit_choices_to)]
+        if hasattr(self.rel, 'get_related_field'):
+            lst = [(getattr(x, self.rel.get_related_field().attname), str(x)) for x in rel_model._default_manager.complex_filter(self.rel.limit_choices_to)]
+        else:
+            lst = [(x._get_pk_val(), str(x)) for x in rel_model._default_manager.complex_filter(self.rel.limit_choices_to)]
+        return first_choice + lst
 
     def get_choices_default(self):
         if self.radio_admin:</diff>
      <filename>django/db/models/fields/__init__.py</filename>
    </modified>
    <modified>
      <diff>@@ -25,7 +25,7 @@ def add_lookup(rel_cls, field):
     key = (module, name)
     # Has the model already been loaded?
     # If so, resolve the string reference right away
-    model = get_model(rel_cls._meta.app_label,field.rel.to)
+    model = get_model(rel_cls._meta.app_label, field.rel.to, False)
     if model:
         field.rel.to = model
         field.do_related_class(model, rel_cls)</diff>
      <filename>django/db/models/fields/related.py</filename>
    </modified>
    <modified>
      <diff>@@ -32,7 +32,7 @@ def get_apps():
                 _app_errors[app_name] = e
     return _app_list
 
-def get_app(app_label, emptyOK = False):
+def get_app(app_label, emptyOK=False):
     &quot;Returns the module containing the models for the given app_label. If the app has no models in it and 'emptyOK' is True, returns None.&quot;
     get_apps() # Run get_apps() to populate the _app_list cache. Slightly hackish.
     for app_name in settings.INSTALLED_APPS:
@@ -75,11 +75,15 @@ def get_models(app_mod=None):
             model_list.extend(get_models(app_mod))
         return model_list
 
-def get_model(app_label, model_name):
+def get_model(app_label, model_name, seed_cache=True):
     &quot;&quot;&quot;
-    Returns the model matching the given app_label and case-insensitive model_name.
+    Returns the model matching the given app_label and case-insensitive
+    model_name.
+
     Returns None if no model is found.
     &quot;&quot;&quot;
+    if seed_cache:
+        get_apps()
     try:
         model_dict = _app_models[app_label]
     except KeyError:</diff>
      <filename>django/db/models/loading.py</filename>
    </modified>
    <modified>
      <diff>@@ -138,7 +138,7 @@ class AutomaticManipulator(forms.Manipulator):
             child_follow = self.follow.get(related.name, None)
 
             if child_follow:
-                obj_list = expanded_data[related.var_name].items()
+                obj_list = expanded_data.get(related.var_name, {}).items()
                 if not obj_list:
                     continue
 </diff>
      <filename>django/db/models/manipulators.py</filename>
    </modified>
    <modified>
      <diff>@@ -434,10 +434,12 @@ class HiddenField(FormField):
             (self.get_id(), self.field_name, escape(data))
 
 class CheckboxField(FormField):
-    def __init__(self, field_name, checked_by_default=False):
+    def __init__(self, field_name, checked_by_default=False, validator_list=None):
+        if validator_list is None: validator_list = []
         self.field_name = field_name
         self.checked_by_default = checked_by_default
-        self.is_required, self.validator_list = False, [] # because the validator looks for these
+        self.is_required = False # because the validator looks for these
+        self.validator_list = validator_list[:]
 
     def render(self, data):
         checked_html = ''</diff>
      <filename>django/forms/__init__.py</filename>
    </modified>
    <modified>
      <diff>@@ -38,7 +38,7 @@ class HttpRequest(object):
 
     def get_full_path(self):
         return ''
-        
+
     def is_secure(self):
         return os.environ.get(&quot;HTTPS&quot;) == &quot;on&quot;
 
@@ -203,11 +203,14 @@ class HttpResponse(object):
             if val is not None:
                 self.cookies[key][var.replace('_', '-')] = val
 
-    def delete_cookie(self, key):
-        try:
-            self.cookies[key]['max_age'] = 0
-        except KeyError:
-            pass
+    def delete_cookie(self, key, path='/', domain=None):
+        self.cookies[key] = ''
+        if path is not None:
+            self.cookies[key]['path'] = path
+        if domain is not None:
+            self.cookies[key]['domain'] = path
+        self.cookies[key]['expires'] = 0
+        self.cookies[key]['max-age'] = 0
 
     def _get_content(self):
         content = ''.join(self._iterator)</diff>
      <filename>django/http/__init__.py</filename>
    </modified>
    <modified>
      <diff>@@ -12,7 +12,11 @@ class GZipMiddleware(object):
     &quot;&quot;&quot;
     def process_response(self, request, response):
         patch_vary_headers(response, ('Accept-Encoding',))
-        if response.has_header('Content-Encoding'):
+        
+        # Avoid gzipping if we've already got a content-encoding or if the
+        # content-type is Javascript (silly IE...)
+        is_js = &quot;javascript&quot; in response.headers.get('Content-Type', '').lower()
+        if response.has_header('Content-Encoding') or is_js:
             return response
 
         ae = request.META.get('HTTP_ACCEPT_ENCODING', '')</diff>
      <filename>django/middleware/gzip.py</filename>
    </modified>
    <modified>
      <diff>@@ -339,7 +339,7 @@ def date(value, arg=None):
 def time(value, arg=None):
     &quot;Formats a time according to the given format&quot;
     from django.utils.dateformat import time_format
-    if not value:
+    if value in (None, ''):
         return ''
     if arg is None:
         arg = settings.TIME_FORMAT
@@ -437,7 +437,7 @@ def pluralize(value, arg='s'):
     is used instead. If the provided argument contains a comma, the text before
     the comma is used for the singular case.
     &quot;&quot;&quot;
-    if not ',' in arg: 
+    if not ',' in arg:
         arg = ',' + arg
     bits = arg.split(',')
     if len(bits) &gt; 2:</diff>
      <filename>django/template/defaultfilters.py</filename>
    </modified>
    <modified>
      <diff>@@ -50,6 +50,8 @@ class ExtendsNode(Node):
             if self.parent_name_expr:
                 error_msg += &quot; Got this from the %r variable.&quot; % self.parent_name_expr #TODO nice repr.
             raise TemplateSyntaxError, error_msg
+        if hasattr(parent, 'render'):
+            return parent
         try:
             source, origin = find_template_source(parent, self.template_dirs)
         except TemplateDoesNotExist:
@@ -137,8 +139,9 @@ def do_extends(parser, token):
 
     This tag may be used in two ways: ``{% extends &quot;base&quot; %}`` (with quotes)
     uses the literal value &quot;base&quot; as the name of the parent template to extend,
-    or ``{% extends variable %}`` uses the value of ``variable`` as the name
-    of the parent template to extend.
+    or ``{% extends variable %}`` uses the value of ``variable`` as either the
+    name of the parent template to extend (if it evaluates to a string,) or as
+    the parent tempate itelf (if it evaluates to a Template object).
     &quot;&quot;&quot;
     bits = token.contents.split()
     if len(bits) != 2:</diff>
      <filename>django/template/loader_tags.py</filename>
    </modified>
    <modified>
      <diff>@@ -17,7 +17,7 @@ def load_template_source(template_name, template_dirs=None):
             return (open(filepath).read(), filepath)
         except IOError:
             tried.append(filepath)
-    if template_dirs:
+    if tried:
         error_msg = &quot;Tried %s&quot; % tried
     else:
         error_msg = &quot;Your TEMPLATE_DIRS setting is empty. Change it to point to at least one template directory.&quot;</diff>
      <filename>django/template/loaders/filesystem.py</filename>
    </modified>
    <modified>
      <diff>@@ -35,6 +35,14 @@ try:
 except ImportError:
     import dummy_thread as thread
 
+# This import does nothing, but it's necessary to avoid some race conditions
+# in the threading module. See http://code.djangoproject.com/ticket/2330 .
+try:
+    import threading
+except ImportError:
+    pass
+
+
 RUN_RELOADER = True
 
 def reloader_thread():</diff>
      <filename>django/utils/autoreload.py</filename>
    </modified>
    <modified>
      <diff>@@ -6,6 +6,7 @@ from django.contrib.auth.views import redirect_to_login
 from django.template import RequestContext
 from django.http import Http404, HttpResponse, HttpResponseRedirect
 from django.core.exceptions import ObjectDoesNotExist, ImproperlyConfigured
+from django.utils.translation import gettext
 
 def create_object(request, model, template_name=None,
         template_loader=loader, extra_context=None, post_save_redirect=None,
@@ -39,7 +40,7 @@ def create_object(request, model, template_name=None,
             new_object = manipulator.save(new_data)
 
             if request.user.is_authenticated():
-                request.user.message_set.create(message=&quot;The %s was created successfully.&quot; % model._meta.verbose_name)
+                request.user.message_set.create(message=gettext(&quot;The %(verbose_name)s was created successfully.&quot;) % {&quot;verbose_name&quot;: model._meta.verbose_name})
 
             # Redirect to the new object: first by trying post_save_redirect,
             # then by obj.get_absolute_url; fail if neither works.
@@ -113,7 +114,7 @@ def update_object(request, model, object_id=None, slug=None,
             object = manipulator.save(new_data)
 
             if request.user.is_authenticated():
-                request.user.message_set.create(message=&quot;The %s was updated successfully.&quot; % model._meta.verbose_name)
+                request.user.message_set.create(message=gettext(&quot;The %(verbose_name)s was updated successfully.&quot;) % {&quot;verbose_name&quot;: model._meta.verbose_name})
 
             # Do a post-after-redirect so that reload works, etc.
             if post_save_redirect:
@@ -180,7 +181,7 @@ def delete_object(request, model, post_delete_redirect,
     if request.method == 'POST':
         object.delete()
         if request.user.is_authenticated():
-            request.user.message_set.create(message=&quot;The %s was deleted.&quot; % model._meta.verbose_name)
+            request.user.message_set.create(message=gettext(&quot;The %(verbose_name)s was deleted.&quot;) % {&quot;verbose_name&quot;: model._meta.verbose_name})
         return HttpResponseRedirect(post_delete_redirect)
     else:
         if not template_name:</diff>
      <filename>django/views/generic/create_update.py</filename>
    </modified>
    <modified>
      <diff>@@ -2,12 +2,15 @@
 The &quot;contrib&quot; add-ons
 =====================
 
-Django aims to follow Python's &quot;batteries included&quot; philosophy. It ships with a
-variety of extra, optional tools that solve common Web-development problems.
+Django aims to follow Python's `&quot;batteries included&quot; philosophy`_. It ships
+with a variety of extra, optional tools that solve common Web-development
+problems.
 
 This code lives in ``django/contrib`` in the Django distribution. Here's a
 rundown of the packages in ``contrib``:
 
+.. _&quot;batteries included&quot; philosophy: http://docs.python.org/tut/node12.html#batteries-included
+
 admin
 =====
 </diff>
      <filename>docs/add_ons.txt</filename>
    </modified>
    <modified>
      <diff>@@ -6,6 +6,9 @@ Although Django has not reached a 1.0 release, the bulk of Django's public APIs
 stable as of the 0.95 release. This document explains which APIs will and will not
 change before the 1.0 release.
 
+What &quot;stable&quot; means
+===================
+
 In this context, stable means:
 
    - All the public APIs -- everything documented in the linked documents, and
@@ -24,6 +27,9 @@ In this context, stable means:
    - We'll only break backwards compatibility of these APIs if a bug or
      security hole makes it completely unavoidable.
 
+Stable APIs
+===========
+
 These APIs are stable:
 
    - `Caching`_.
@@ -114,4 +120,4 @@ change:
 .. _url dispatch: http://www.djangoproject.com/documentation/url_dispatch/
 .. _forms and validation: http://www.djangoproject.com/documentation/forms/
 .. _serialization: http://www.djangoproject.com/documentation/serialization/
-.. _authentication: http://www.djangoproject.com/documentation/authentication/
\ No newline at end of file
+.. _authentication: http://www.djangoproject.com/documentation/authentication/</diff>
      <filename>docs/api_stability.txt</filename>
    </modified>
    <modified>
      <diff>@@ -578,6 +578,9 @@ related ``Person`` *and* the related ``City``::
     p = b.author         # Hits the database.
     c = p.hometown       # Hits the database.
 
+Note that ``select_related()`` does not follow foreign keys that have
+``null=True``.
+
 ``extra(select=None, where=None, params=None, tables=None)``
 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 
@@ -715,12 +718,12 @@ The ``DoesNotExist`` exception inherits from
 A convenience method for creating an object and saving it all in one step.  Thus::
 
     p = Person.objects.create(first_name=&quot;Bruce&quot;, last_name=&quot;Springsteen&quot;)
-    
+
 and::
 
     p = Person(first_name=&quot;Bruce&quot;, last_name=&quot;Springsteen&quot;)
     p.save()
-    
+
 are equivalent.
 
 ``get_or_create(**kwargs)``
@@ -1468,11 +1471,12 @@ the ``ForeignKey`` ``Manager`` has these additional methods:
           b.entry_set.remove(e) # Disassociates Entry e from Blog b.
 
       In order to prevent database inconsistency, this method only exists on
-      ``ForeignKey``s where ``null=True``. If the related field can't be set to
-      ``None`` (``NULL``), then an object can't be removed from a relation
-      without being added to another. In the above example, removing ``e`` from
-      ``b.entry_set()`` is equivalent to doing ``e.blog = None``, and because
-      the ``blog`` ``ForeignKey`` doesn't have ``null=True``, this is invalid.
+      ``ForeignKey`` objects where ``null=True``. If the related field can't be
+      set to ``None`` (``NULL``), then an object can't be removed from a
+      relation without being added to another. In the above example, removing
+      ``e`` from ``b.entry_set()`` is equivalent to doing ``e.blog = None``,
+      and because the ``blog`` ``ForeignKey`` doesn't have ``null=True``, this
+      is invalid.
 
     * ``clear()``: Removes all objects from the related object set.
 
@@ -1556,13 +1560,13 @@ Queries over related objects
 ----------------------------
 
 Queries involving related objects follow the same rules as queries involving
-normal value fields. When specifying the the value for a query to match, you 
-may use either an object instance itself, or the primary key value for the 
+normal value fields. When specifying the the value for a query to match, you
+may use either an object instance itself, or the primary key value for the
 object.
 
 For example, if you have a Blog object ``b`` with ``id=5``, the following
 three queries would be identical::
-     
+
     Entry.objects.filter(blog=b) # Query using object instance
     Entry.objects.filter(blog=b.id) # Query using id from instance
     Entry.objects.filter(blog=5) # Query using id directly</diff>
      <filename>docs/db-api.txt</filename>
    </modified>
    <modified>
      <diff>@@ -251,6 +251,16 @@ information than the docs that come with the latest Django release.
 
 .. _stored in revision control: http://code.djangoproject.com/browser/django/trunk/docs
 
+Where can I find Django developers for hire?
+--------------------------------------------
+
+Consult our `developers for hire page`_ for a list of Django developers who
+would be happy to help you.
+
+You might also be interested in posting a job to http://www.gypsyjobs.com/ .
+
+.. _developers for hire page: http://code.djangoproject.com/wiki/DevelopersForHire
+
 Installation questions
 ======================
 
@@ -610,13 +620,10 @@ like to make should be possible by editing the stylesheet. We've got a
 How do I create users without having to edit password hashes?
 -------------------------------------------------------------
 
-We don't recommend you create users via the admin interface, because at the
-moment it requires you to edit password hashes manually. (Passwords are hashed
-using one-way hash algorithms for security; there's currently no Web interface
-for changing passwords by entering the actual password rather than the hash.)
+If you'd like to use the admin site to create users, upgrade to the Django
+development version, where this problem was fixed on Aug. 4, 2006.
 
-To create a user, you'll have to use the Python API. See `creating users`_ for
-full info.
+You can also use the Python API. See `creating users`_ for full info.
 
 .. _creating users: http://www.djangoproject.com/documentation/authentication/#creating-users
 </diff>
      <filename>docs/faq.txt</filename>
    </modified>
    <modified>
      <diff>@@ -404,6 +404,43 @@ Here's a simple function that might drive the above form::
             errors = new_data = {}
         form = forms.FormWrapper(manipulator, new_data, errors)
         return render_to_response('contact_form.html', {'form': form})
+        
+``FileField`` and ``ImageField`` special cases
+==============================================
+
+Dealing with ``FileField`` and ``ImageField`` objects is a little more
+complicated.
+
+First, you'll need to make sure that your ``&lt;form&gt;`` element correctly defines
+the ``enctype`` as ``&quot;multipart/form-data&quot;``, in order to upload files::
+
+  &lt;form enctype=&quot;multipart/form-data&quot; method=&quot;post&quot; action=&quot;/foo/&quot;&gt;
+
+Next, you'll need to treat the field in the template slightly differently. A
+``FileField`` or ``ImageField`` is represented by *two* HTML form elements.
+
+For example, given this field in a model::
+
+   photo = model.ImageField('/path/to/upload/location')
+
+You'd need to display two formfields in the template::
+
+   &lt;p&gt;&lt;label for=&quot;id_photo&quot;&gt;Photo:&lt;/label&gt; {{ form.photo }}{{ form.photo_file }}&lt;/p&gt;
+
+The first bit (``{{ form.photo }}``) displays the currently-selected file,
+while the second (``{{ form.photo_file }}``) actually contains the file upload
+form field. Thus, at the validation layer you need to check the ``photo_file``
+key.
+
+Finally, in your view, make sure to access ``request.FILES``, rather than
+``request.POST``, for the uploaded files. This is necessary because
+``request.POST`` does not contain file-upload data.
+
+For example, following the ``new_data`` convention, you might do something like
+this::
+
+   new_data = request.POST.copy()
+   new_data.update(request.FILES)
 
 Validators
 ==========</diff>
      <filename>docs/forms.txt</filename>
    </modified>
    <modified>
      <diff>@@ -127,7 +127,7 @@ If the given URL is ``None``, Django will return an ``HttpResponseGone`` (410).
 This example redirects from ``/foo/&lt;id&gt;/`` to ``/bar/&lt;id&gt;/``::
 
     urlpatterns = patterns('django.views.generic.simple',
-        ('^foo/(?p&lt;id&gt;\d+)/$', 'redirect_to', {'url': '/bar/%(id)s/'}),
+        ('^foo/(?P&lt;id&gt;\d+)/$', 'redirect_to', {'url': '/bar/%(id)s/'}),
     )
 
 This example returns a 410 HTTP error for requests to ``/bar/``::</diff>
      <filename>docs/generic_views.txt</filename>
    </modified>
    <modified>
      <diff>@@ -77,9 +77,9 @@ It's easy either way.
 Installing the official version
 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 
-1. Download Django-0.91.tar.gz from our `download page`_.
-2. ``tar xzvf Django-0.91.tar.gz``
-3. ``cd Django-0.91``
+1. Download Django-0.95.tar.gz from our `download page`_.
+2. ``tar xzvf Django-0.95.tar.gz``
+3. ``cd Django-0.95``
 4. ``sudo python setup.py install``
 
 Note that the last command will automatically download and install setuptools_
@@ -89,14 +89,6 @@ connection.
 This will install Django in your Python installation's ``site-packages``
 directory.
 
-.. note::
-
-    Due to recent backwards-incompatible changes, it is strongly recommended
-    that you use the development version (below) for any new applications or
-    if you are just starting to work with Django. The 0.91 release is a
-    dead-end branch that is primarily of use for supporting legacy Django
-    applications.
-
 .. _setuptools: http://peak.telecommunity.com/DevCenter/setuptools
 
 Installing the development version</diff>
      <filename>docs/install.txt</filename>
    </modified>
    <modified>
      <diff>@@ -223,6 +223,13 @@ steps:
        the absolute URL to your image in a template with ``{{
        object.get_mug_shot_url }}``.
 
+For example, say your ``MEDIA_ROOT`` is set to ``'/home/media'``, and
+``upload_to`` is set to ``'photos/%Y/%m/%d'``. The ``'%Y/%m/%d'`` part of
+``upload_to`` is strftime formatting; ``'%Y'`` is the four-digit year,
+``'%m'`` is the two-digit month and ``'%d'`` is the two-digit day. If you
+upload a file on Jan. 15, 2007, it will be saved in the directory
+``/home/media/photos/2007/01/15``.
+
 .. _`strftime formatting`: http://docs.python.org/lib/module-time.html#l2h-1941
 
 ``FilePathField``</diff>
      <filename>docs/model-api.txt</filename>
    </modified>
    <modified>
      <diff>@@ -149,7 +149,7 @@ Methods
    Returns the ``path``, plus an appended query string, if applicable.
 
    Example: ``&quot;/music/bands/the_beatles/?print=true&quot;``
-    
+
 ``is_secure()``
    Returns ``True`` if the request is secure; that is, if it was made with
    HTTPS.
@@ -380,10 +380,14 @@ Methods
 
     .. _`cookie Morsel`: http://www.python.org/doc/current/lib/morsel-objects.html
 
-``delete_cookie(key)``
+``delete_cookie(key, path='/', domain=None)``
     Deletes the cookie with the given key. Fails silently if the key doesn't
     exist.
 
+    The ``path`` and ``domain`` arguments are new in the Django development version.
+    Due to the way cookies work, ``path`` and ``domain`` should be the same
+    values you used in ``set_cookie()`` -- otherwise the cookie may not be deleted.
+
 ``content``
     Returns the content as a Python string, encoding it from a Unicode object
     if necessary. Note this is a property, not a method, so use ``r.content``</diff>
      <filename>docs/request_response.txt</filename>
    </modified>
    <modified>
      <diff>@@ -245,6 +245,17 @@ Default: ``'sessionid'``
 
 The name of the cookie to use for sessions. This can be whatever you want.
 
+SESSION_COOKIE_SECURE
+---------------------
+
+**New in Django development version**
+
+Default: ``False``
+
+Whether to use a secure cookie for the session cookie. If this is set to
+``True``, the cookie will be marked as &quot;secure,&quot; which means browsers may
+ensure that the cookie is only sent under an HTTPS connection.
+
 SESSION_EXPIRE_AT_BROWSER_CLOSE
 -------------------------------
 </diff>
      <filename>docs/sessions.txt</filename>
    </modified>
    <modified>
      <diff>@@ -647,6 +647,18 @@ Default: ``'sessionid'``
 The name of the cookie to use for sessions. This can be whatever you want.
 See the `session docs`_.
 
+SESSION_COOKIE_SECURE
+---------------------
+
+**New in Django development version**
+
+Default: ``False``
+
+Whether to use a secure cookie for the session cookie. If this is set to
+``True``, the cookie will be marked as &quot;secure,&quot; which means browsers may
+ensure that the cookie is only sent under an HTTPS connection.
+See the `session docs`_.
+
 SESSION_EXPIRE_AT_BROWSER_CLOSE
 -------------------------------
 </diff>
      <filename>docs/settings.txt</filename>
    </modified>
    <modified>
      <diff>@@ -363,10 +363,15 @@ extends
 
 Signal that this template extends a parent template.
 
-This tag may be used in two ways: ``{% extends &quot;base.html&quot; %}`` (with quotes)
-uses the literal value &quot;base.html&quot; as the name of the parent template to
-extend, or ``{% extends variable %}`` uses the value of ``variable`` as the
-name of the parent template to extend.
+This tag can be used in two ways: 
+
+   * ``{% extends &quot;base.html&quot; %}`` (with quotes) uses the literal value
+     ``&quot;base.html&quot;`` as the name of the parent template to extend.
+
+   * ``{% extends variable %}`` uses the value of ``variable``. If the variable
+     evaluates to a string, Django will use that string as the name of the
+     parent template. If the variable evaluates to a ``Template`` object,
+     Django will use that object as the parent template.
 
 See `Template inheritance`_ for more information.
 
@@ -493,6 +498,11 @@ If you need to combine ``and`` and ``or`` to do advanced logic, just use nested
         {% endif %}
     {% endif %}
 
+Multiple uses of the same logical operator are fine, as long as you use the
+same operator. For example, this is valid::
+
+    {% if athlete_list or coach_list or parent_list or teacher_list %}
+
 ifchanged
 ~~~~~~~~~
 </diff>
      <filename>docs/templates.txt</filename>
    </modified>
    <modified>
      <diff>@@ -198,21 +198,6 @@ some things to keep in mind:
 How invalid variables are handled
 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 
-In Django 0.91, if a variable doesn't exist, the template system fails
-silently. The variable is replaced with an empty string::
-
-    &gt;&gt;&gt; t = Template(&quot;My name is {{ my_name }}.&quot;)
-    &gt;&gt;&gt; c = Context({&quot;foo&quot;: &quot;bar&quot;})
-    &gt;&gt;&gt; t.render(c)
-    &quot;My name is .&quot;
-
-This applies to any level of lookup::
-
-    &gt;&gt;&gt; t = Template(&quot;My name is {{ person.fname }} {{ person.lname }}.&quot;)
-    &gt;&gt;&gt; c = Context({&quot;person&quot;: {&quot;fname&quot;: &quot;Stan&quot;}})
-    &gt;&gt;&gt; t.render(c)
-    &quot;My name is Stan .&quot;
-
 If a variable doesn't exist, the template system inserts the value of the
 ``TEMPLATE_STRING_IF_INVALID`` setting, which is set to ``''`` (the empty
 string) by default.</diff>
      <filename>docs/templates_python.txt</filename>
    </modified>
    <modified>
      <diff>@@ -81,7 +81,7 @@ the following output on the command line::
     Validating models...
     0 errors found.
 
-    Django version 0.95 (post-magic-removal), using settings 'mysite.settings'
+    Django version 0.95, using settings 'mysite.settings'
     Development server is running at http://127.0.0.1:8000/
     Quit the server with CONTROL-C (Unix) or CTRL-BREAK (Windows).
 </diff>
      <filename>docs/tutorial01.txt</filename>
    </modified>
    <modified>
      <diff>@@ -263,12 +263,12 @@ Here's the example URLconf from the `Django overview`_::
     from django.conf.urls.defaults import *
 
     urlpatterns = patterns('',
-        (r'^articles/(\d{4})/$', 'myproject.news.views.year_archive'),
-        (r'^articles/(\d{4})/(\d{2})/$', 'myproject.news.views.month_archive'),
-        (r'^articles/(\d{4})/(\d{2})/(\d+)/$', 'myproject.news.views.article_detail'),
+        (r'^articles/(\d{4})/$', 'mysite.news.views.year_archive'),
+        (r'^articles/(\d{4})/(\d{2})/$', 'mysite.news.views.month_archive'),
+        (r'^articles/(\d{4})/(\d{2})/(\d+)/$', 'mysite.news.views.article_detail'),
     )
 
-In this example, each view has a common prefix -- ``'myproject.news.views'``.
+In this example, each view has a common prefix -- ``'mysite.news.views'``.
 Instead of typing that out for each entry in ``urlpatterns``, you can use the
 first argument to the ``patterns()`` function to specify a prefix to apply to
 each view function.
@@ -277,7 +277,7 @@ With this in mind, the above example can be written more concisely as::
 
     from django.conf.urls.defaults import *
 
-    urlpatterns = patterns('myproject.news.views',
+    urlpatterns = patterns('mysite.news.views',
         (r'^articles/(\d{4})/$', 'year_archive'),
         (r'^articles/(\d{4})/(\d{2})/$', 'month_archive'),
         (r'^articles/(\d{4})/(\d{2})/(\d+)/$', 'article_detail'),
@@ -389,3 +389,90 @@ to pass metadata and options to views.
 
 .. _generic views: http://www.djangoproject.com/documentation/generic_views/
 .. _syndication framework: http://www.djangoproject.com/documentation/syndication/
+
+Passing extra options to ``include()``
+--------------------------------------
+
+**New in the Django development version.**
+
+Similarly, you can pass extra options to ``include()``. When you pass extra
+options to ``include()``, *each* line in the included URLconf will be passed
+the extra options.
+
+For example, these two URLconf sets are functionally identical:
+
+Set one::
+
+    # main.py
+    urlpatterns = patterns('',
+        (r'^blog/', include('inner'), {'blogid': 3}),
+    )
+
+    # inner.py
+    urlpatterns = patterns('',
+        (r'^archive/$', 'mysite.views.archive'),
+        (r'^about/$', 'mysite.views.about'),
+    )
+
+Set two::
+
+    # main.py
+    urlpatterns = patterns('',
+        (r'^blog/', include('inner')),
+    )
+
+    # inner.py
+    urlpatterns = patterns('',
+        (r'^archive/$', 'mysite.views.archive', {'blogid': 3}),
+        (r'^about/$', 'mysite.views.about', {'blogid': 3}),
+    )
+
+Note that extra options will *always* be passed to *every* line in the included
+URLconf, regardless of whether the line's view actually accepts those options
+as valid. For this reason, this technique is only useful if you're certain that
+every view in the the included URLconf accepts the extra options you're passing.
+
+Passing callable objects instead of strings
+===========================================
+
+**New in the Django development version.**
+
+Some developers find it more natural to pass the actual Python function object
+rather than a string containing the path to its module. This alternative is
+supported -- you can pass any callable object as the view.
+
+For example, given this URLconf in &quot;string&quot; notation::
+
+    urlpatterns = patterns('',
+        (r'^archive/$', 'mysite.views.archive'),
+        (r'^about/$', 'mysite.views.about'),
+        (r'^contact/$', 'mysite.views.contact'),
+    )
+
+You can accomplish the same thing by passing objects rather than strings. Just
+be sure to import the objects::
+
+    from mysite.views import archive, about, contact
+
+    urlpatterns = patterns('',
+        (r'^archive/$', archive),
+        (r'^about/$', about),
+        (r'^contact/$', contact),
+    )
+
+The following example is functionally identical. It's just a bit more compact
+because it imports the module that contains the views, rather than importing
+each view individually::
+
+    from mysite import views
+
+    urlpatterns = patterns('',
+        (r'^archive/$', views.archive),
+        (r'^about/$', views.about),
+        (r'^contact/$', views.contact),
+    )
+
+The style you use is up to you.
+
+Note that if you use this technique -- passing objects rather than strings --
+the view prefix (as explained in &quot;The view prefix&quot; above) will have no effect.</diff>
      <filename>docs/url_dispatch.txt</filename>
    </modified>
    <modified>
      <diff>@@ -14,38 +14,9 @@ setup(
     packages = find_packages(exclude=['examples', 'examples.*']),
     package_data = {
         '': ['*.TXT'],
-        'django.conf': ['locale/ar/LC_MESSAGES/*',
-                        'locale/bn/LC_MESSAGES/*',
-                        'locale/cs/LC_MESSAGES/*',
-                        'locale/cy/LC_MESSAGES/*',
-                        'locale/da/LC_MESSAGES/*',
-                        'locale/de/LC_MESSAGES/*',
-                        'locale/el/LC_MESSAGES/*',
-                        'locale/en/LC_MESSAGES/*',
-                        'locale/es/LC_MESSAGES/*',
-                        'locale/es_AR/LC_MESSAGES/*',
-                        'locale/fr/LC_MESSAGES/*',
-                        'locale/gl/LC_MESSAGES/*',
-                        'locale/hu/LC_MESSAGES/*',
-                        'locale/he/LC_MESSAGES/*',
-                        'locale/is/LC_MESSAGES/*',
-                        'locale/it/LC_MESSAGES/*',
-                        'locale/ja/LC_MESSAGES/*',
-                        'locale/nl/LC_MESSAGES/*',
-                        'locale/no/LC_MESSAGES/*',
-                        'locale/pl/LC_MESSAGES/*',
-                        'locale/pt_BR/LC_MESSAGES/*',
-                        'locale/ro/LC_MESSAGES/*',
-                        'locale/ru/LC_MESSAGES/*',
-                        'locale/sk/LC_MESSAGES/*',
-                        'locale/sl/LC_MESSAGES/*',
-                        'locale/sr/LC_MESSAGES/*',
-                        'locale/sv/LC_MESSAGES/*',
-                        'locale/ta/LC_MESSAGES/*',
-                        'locale/uk/LC_MESSAGES/*',
-                        'locale/zh_CN/LC_MESSAGES/*',
-                        'locale/zh_TW/LC_MESSAGES/*'],
+        'django.conf': ['locale/*/LC_MESSAGES/*'],
         'django.contrib.admin': ['templates/admin/*.html',
+                                 'templates/admin/auth/user/*.html',
                                  'templates/admin_doc/*.html',
                                  'templates/registration/*.html',
                                  'templates/widget/*.html',</diff>
      <filename>setup.py</filename>
    </modified>
    <modified>
      <diff>@@ -20,5 +20,7 @@ API_TESTS = &quot;&quot;&quot;
 2
 &gt;&gt;&gt; m.id is not None
 True
+&gt;&gt;&gt; existing = Empty(m.id)
+&gt;&gt;&gt; existing.save()
 
 &quot;&quot;&quot;</diff>
      <filename>tests/modeltests/empty/models.py</filename>
    </modified>
    <modified>
      <diff>@@ -15,7 +15,7 @@ class Article(models.Model):
     def __str__(self):
         return self.headline
 
-API_TESTS = &quot;&quot;&quot;
+API_TESTS = r&quot;&quot;&quot;
 # Create a couple of Articles.
 &gt;&gt;&gt; from datetime import datetime
 &gt;&gt;&gt; a1 = Article(headline='Article 1', pub_date=datetime(2005, 7, 26))
@@ -161,13 +161,14 @@ DoesNotExist: Article matching query does not exist.
 &lt;Article: Article 1&gt;
 
 # Underscores and percent signs have special meaning in the underlying
-# database library, but Django handles the quoting of them automatically.
+# SQL code, but Django handles the quoting of them automatically.
 &gt;&gt;&gt; a8 = Article(headline='Article_ with underscore', pub_date=datetime(2005, 11, 20))
 &gt;&gt;&gt; a8.save()
 &gt;&gt;&gt; Article.objects.filter(headline__startswith='Article')
 [&lt;Article: Article_ with underscore&gt;, &lt;Article: Article 5&gt;, &lt;Article: Article 6&gt;, &lt;Article: Article 4&gt;, &lt;Article: Article 2&gt;, &lt;Article: Article 3&gt;, &lt;Article: Article 7&gt;, &lt;Article: Article 1&gt;]
 &gt;&gt;&gt; Article.objects.filter(headline__startswith='Article_')
 [&lt;Article: Article_ with underscore&gt;]
+
 &gt;&gt;&gt; a9 = Article(headline='Article% with percent sign', pub_date=datetime(2005, 11, 21))
 &gt;&gt;&gt; a9.save()
 &gt;&gt;&gt; Article.objects.filter(headline__startswith='Article')
@@ -182,4 +183,12 @@ DoesNotExist: Article matching query does not exist.
 [&lt;Article: Article% with percent sign&gt;, &lt;Article: Article 5&gt;, &lt;Article: Article 6&gt;, &lt;Article: Article 4&gt;, &lt;Article: Article 2&gt;, &lt;Article: Article 3&gt;, &lt;Article: Article 7&gt;, &lt;Article: Article 1&gt;]
 &gt;&gt;&gt; Article.objects.exclude(headline=&quot;Article 7&quot;)
 [&lt;Article: Article% with percent sign&gt;, &lt;Article: Article_ with underscore&gt;, &lt;Article: Article 5&gt;, &lt;Article: Article 6&gt;, &lt;Article: Article 4&gt;, &lt;Article: Article 2&gt;, &lt;Article: Article 3&gt;, &lt;Article: Article 1&gt;]
+
+# Backslashes also have special meaning in the underlying SQL code, but Django
+# automatically quotes them appropriately.
+&gt;&gt;&gt; a10 = Article(headline='Article with \\ backslash', pub_date=datetime(2005, 11, 22))
+&gt;&gt;&gt; a10.save()
+&gt;&gt;&gt; Article.objects.filter(headline__contains='\\')
+[&lt;Article: Article with \ backslash&gt;]
+
 &quot;&quot;&quot;</diff>
      <filename>tests/modeltests/lookup/models.py</filename>
    </modified>
    <modified>
      <diff>@@ -231,6 +231,9 @@ False
 &gt;&gt;&gt; time(datetime.time(13), &quot;h&quot;)
 '01'
 
+&gt;&gt;&gt; time(datetime.time(0), &quot;h&quot;)
+'12'
+
 # real testing is done in timesince.py, where we can provide our own 'now'
 &gt;&gt;&gt; timesince(datetime.datetime.now() - datetime.timedelta(1))
 '1 day'</diff>
      <filename>tests/othertests/defaultfilters.py</filename>
    </modified>
    <modified>
      <diff>@@ -410,6 +410,12 @@ TEMPLATE_TESTS = {
     # Three-level inheritance with {{ block.super }} from parent and grandparent
     'inheritance23': (&quot;{% extends 'inheritance20' %}{% block first %}{{ block.super }}b{% endblock %}&quot;, {}, '1_ab3_'),
 
+    # Inheritance from local context without use of template loader
+    'inheritance24': (&quot;{% extends context_template %}{% block first %}2{% endblock %}{% block second %}4{% endblock %}&quot;, {'context_template': template.Template(&quot;1{% block first %}_{% endblock %}3{% block second %}_{% endblock %}&quot;)}, '1234'),
+
+    # Inheritance from local context with variable parent template
+    'inheritance25': (&quot;{% extends context_template.1 %}{% block first %}2{% endblock %}{% block second %}4{% endblock %}&quot;, {'context_template': [template.Template(&quot;Wrong&quot;), template.Template(&quot;1{% block first %}_{% endblock %}3{% block second %}_{% endblock %}&quot;)]}, '1234'),
+
     ### I18N ##################################################################
 
     # {% spaceless %} tag</diff>
      <filename>tests/othertests/templates.py</filename>
    </modified>
  </modified>
  <removed type="array"/>
  <parents type="array">
    <parent>
      <id>f5555b20bc8a0ff41a50fc4531069db97cf6337c</id>
    </parent>
  </parents>
  <author>
    <name>clong</name>
    <email>clong@bcc190cf-cafb-0310-a4f2-bffc1f526a37</email>
  </author>
  <url>http://github.com/dcramer/django-compositepks/commit/67e8197bc32857a4b2fc5633646d842570d46b9d</url>
  <id>67e8197bc32857a4b2fc5633646d842570d46b9d</id>
  <committed-date>2006-08-14T11:52:03-07:00</committed-date>
  <authored-date>2006-08-14T11:52:03-07:00</authored-date>
  <message>[per-object-permissions] Merged to revision 3582

git-svn-id: http://code.djangoproject.com/svn/django/branches/per-object-permissions@3583 bcc190cf-cafb-0310-a4f2-bffc1f526a37</message>
  <tree>0b8ed10b392cdf17b218aab3a0856f2ba58160ad</tree>
  <committer>
    <name>clong</name>
    <email>clong@bcc190cf-cafb-0310-a4f2-bffc1f526a37</email>
  </committer>
</commit>
